비디오 디스플레이 컨트롤러

Video display controller
NEC © PD7220 그래픽스 디스플레이 컨트롤러 블록도

비디오 디스플레이 컨트롤러 또는 VDC(디스플레이 엔진 또는 디스플레이 인터페이스라고도 함)는 비디오 신호 발생기의 주요 구성요소인 집적회로이며 컴퓨터 또는 게임 시스템에서 TV 비디오 신호 생성을 담당하는 장치입니다.VDC에 따라서는 오디오 신호도 생성되지만 주요 기능은 아닙니다.

VDC는 1980년대 가정용 컴퓨터 및 일부 초기 비디오 영상 시스템에서 사용되었습니다.

VDC는 비디오 신호 발생 로직의 주요 컴포넌트로 수평 및 수직 동기 신호블랭크 간격 신호 등의 비디오 신호 타이밍을 생성합니다.픽셀 데이터를 저장하는 RAM, 문자 글꼴을 저장하는 ROM 또는 시프트 레지스터와 같은 일부 이산 로직과 같은 다른 지원 칩이 완전한 시스템을 구축하기 위해 필요할 수 있습니다.

대부분의 경우 VDC 칩은 메인 컴퓨터 시스템의 논리에 완전히 통합되어 있습니다(비디오 RAM은 메인 CPU의 메모리 맵에 표시되지만), 비디오 RAM의 내용을 독립적으로 조작할 수 있는 코프로세서로서 기능합니다.

비디오 디스플레이 컨트롤러와 그래픽 처리 장치

디스플레이 컨트롤러, 그래픽 액셀러레이터 및 비디오 압축/압축 해제 IC의 차이는 매우 크지만, 이 모든 논리는 보통 그래픽 처리 장치의 칩에서 발견되며, 일반적으로 최종 고객이 개별적으로 사용할 수 없기 때문에 이러한 매우 다른 기능 블록에 대해 많은 혼란이 발생합니다.

하드웨어 액셀러레이션 기능을 갖춘 GPU는 1990년대에 [citation needed]등장하기 시작했습니다.VDC는 종종 "스프라이트"를 생성하기 위한 특별한 하드웨어를 가지고 있었습니다. 이 기능은 현대의 VDP 칩이 "비트 블릿" 기능을 사용하여 "비트 블릿"을 사용하여 수행되는 기능입니다.

일반적인 비디오 디스플레이 프로세서의 예로는 Sega Saturn의 "VDP2 32비트 배경스크롤 플레인 비디오 디스플레이 프로세서"가 있습니다.또 다른 예로는 후세대 Amiga 컴퓨터의 개선된 그래픽에 사용된 Lisa(AGA) 칩이 있습니다.

다만, 「비디오 칩」이 「비디오 디스플레이 컨트롤러」인 경우와 「비디오 디스플레이 프로세서」인 경우는 완전하게 불명확합니다.예를 들어, TMS9918은 「비디오 디스플레이 컨트롤러」라고 불리기도 하고, 「비디오 디스플레이 프로세서」라고 불리기도 합니다.그러나 일반적으로 "비디오 표시 프로세서"는 비디오 RAM의 내용을 "처리"할 수 있는 힘이 있는 반면, "비디오 표시 컨트롤러"는 비디오 동기 신호의 타이밍과 비디오 RAM에 대한 액세스만 제어합니다.

GPU(그래픽 처리 장치)는 VDP보다 한 단계 더 발전하며 일반적으로 3D 기능도 지원합니다.이것은 현대의 개인용 컴퓨터에 사용되는 칩의 일종이다.

종류들

비디오 디스플레이 컨트롤러는 몇 가지 다른 타입으로 나눌 수 있습니다.여기서는 가장 단순한 것부터 가장 복잡한 것까지 나열하고 있습니다.

  • 비디오 시프터 또는 "비디오 시프트 레지스터 기반 시스템"은 가장 단순한 유형의 비디오 컨트롤러입니다.비디오 타이밍 신호는 직접 또는 간접적으로 담당하지만 일반적으로 비디오 RAM에 직접 액세스하지 않습니다.메인 CPU에서 비디오 데이터를 한 번에 1바이트씩 가져와 시리얼 비트스트림으로 변환하기 때문에 "비디오 시프터"라는 기술적 이름이 붙습니다.이 시리얼 데이터 스트림을 동기 신호와 함께 사용하여 비디오 신호를 출력합니다.메인 CPU가 대부분의 작업을 수행해야 합니다.일반적으로 이러한 칩은 매우 낮은 해상도의 래스터 그래픽스 모드만 지원합니다.
  • CRTC 또는 브라운관 컨트롤러는 비디오 타이밍을 생성하여 CRTC에 연결된 RAM에서 비디오 데이터를 읽어 외부 문자 발생기 ROM(텍스트 모드용)을 통해 또는 비디오 출력 시프트 레지스터(고해상도 [1]그래픽 모드용)에 직접 출력합니다.비디오 제너레이터의 실제 기능은 외부 로직에 크게 의존하기 때문에 CRTC 칩을 기반으로 한 비디오 제너레이터는 단순한 텍스트 모드 전용 시스템에서 다양한 색상을 지원하는 고해상도 시스템에 이르기까지 광범위한 기능을 가질 수 있습니다.그러나 스프라이트는 일반적으로 이러한 시스템에서 지원되지 않습니다.
  • 비디오 인터페이스 컨트롤러는 CRT 컨트롤러보다 훨씬 복잡하며, CRT에 필요한 외부 회로가 비디오 컨트롤러 칩에 내장되어 있습니다.스프라이트는 (RAM 기반) 문자 생성기 및 고해상도 또는 텍스트 모드용 색상 속성 및 팔레트 레지스터(컬러 룩업 테이블) 전용 비디오 RAM과 같이 종종 지원됩니다.
  • 비디오 코프로세서는, 전용의 내부 CPU를 탑재하고 있습니다(CPU와 공유되는 경우가 있습니다).또, 이 비디오 RAM 의 내용을 비디오 신호로 변환합니다.메인 CPU는 비디오모드를 변경하거나 비디오 RAM의 내용을 조작하는 등의 명령어를 코프로세서에 송신할 수 있습니다.비디오 코프로세서는 (대부분의 경우) RAM 기반의 문자 생성기, 색상 속성 RAM, 팔레트 레지스터 및 스프라이트 로직(물론 존재하는 한)도 제어합니다.

VDC 예시 목록

비디오 디스플레이 컨트롤러의 예는 다음과 같습니다.

비디오 시프터

  • RCA CDP 1861은 매우 단순한 칩으로, CMOS 테크놀로지(1970년대 중반에는 드물었지만)를 내장하여 RCA 1802 마이크로프로세서를 보완하여 주로 COSMAC VIP에 사용되었습니다.매우 낮은 해상도의 흑백 그래픽 모드만 지원할 수 있습니다.
  • TIA(Television Interface Adaptor)는 Atari 2600 게임 콘솔의 핵심인 커스텀 비디오 칩으로, 6502 마이크로프로세서에 의존하여 대부분의 작업을 수행했으며 오디오 생성에도 사용되었습니다.

CRT 컨트롤러

  • Intel 8275 CRT 컨트롤러는 일부 S-100 버스 시스템과 함께 Convergent Technologies AWS/Burroughs B20에서 사용되었습니다.
  • Motorola 6845(MC6845)는 Motorola가 최초로 도입하여 Amstrad CPC 및 BBC Micro에 사용하는 비디오 주소 생성기입니다.또한 MDA, CDAEGA 어댑터와 같은 PC용 초기 비디오 어댑터에도 사용되었습니다.MDA와 CDA는 실제 Motorola 칩을 사용하는 반면 EGA는 5개의 LSI 칩으로 구성된 커스텀 IBM 칩셋을 사용합니다. 이들 칩 중 하나는 IBM이 CRTC를 재실장하는 것을 포함합니다.CRTC는 MC6845처럼 동작하지만 일부 레지스터 주소 및 기능이 다르기 때문에 100% 호환되지는 않습니다.이후의 모든 VGA 호환 어댑터에서는 6845의 기능이 비디오 칩 안에서 그대로 재현되어 있기 때문에 어떤 의미에서 현재의 모든 IBM PC 호환 PC는 6845 CRTC의 논리를 채택하고 있습니다.

비디오 인터페이스 컨트롤러

비디오 코프로세서

  • ATCI(알파 수치 텔레비전 인터페이스 회로)는 Atari 8비트 마이크로컴퓨터 패밀리에 사용된 초기 비디오 시스템 칩입니다.CPU가 내장되어 있는 「디스플레이 리스트」를 읽어내, 이 데이터를 사용해 복잡한 비디오 신호를 생성할 수 있습니다.
  • TMS9918은 비디오 디스플레이 프로세서(VDP)로 알려져 있으며 Texas Instruments TI-99/4용으로 처음 설계되었지만 나중에 MSX(MSX-1), ColecoVision, Memotech MTX 시리즈Sega SG-1000SC-3000과 같은 시스템에도 사용되었습니다.마스터 시스템은 TMS9918을 기반으로 향상된 VDP를 사용하며, Sega Genesis 및 일부 아케이드 시스템에 사용된 Sega 315-5313(Yamaha YM7101) VDP는 원래 TMS9918 모드가 제거된 마스터 시스템 VDP보다 더 향상된 버전입니다.
  • 야마하 V9938은 TMS9918의 개량판으로 주로 MSX2에서 사용되었습니다.
  • Yamaha V9958은 주로 MSX2+MSX 터보R 컴퓨터에서 사용되는 비디오 디스플레이 프로세서(VDP)입니다.
  • VLSI VS21S010D-L은 128kB SPI/패럴렐 SRAM으로 내장 비디오 디스플레이 컨트롤러와 다양한 비트 심도의 픽셀 및 블록 무브 블리터를 갖추고 있습니다.
  • 초당 100만 픽셀의 그리기 속도와 최대 1024×512의 해상도를 제공하는 GPD(Graphic Display Processor)의 Thomson EF936x 시리즈입니다.

VDC 칩 대체 방법

많은 초기 가정용 컴퓨터는 VDP 칩을 사용하지 않고 많은 개별 로직 칩으로 비디오 디스플레이 컨트롤러 전체를 구축했습니다(예: Apple II, PETTRS-80).이러한 방법은 매우 유연하기 때문에 비디오 디스플레이 생성기는 매우 성능이 우수할 수 있지만(또는 설계의 품질에 따라서는 매우 원시적일 수 있습니다), 많은 컴포넌트가 필요했습니다.

많은 초기 시스템은 비디오 시스템을 만들기 위해 어떤 형태의 초기 프로그래머블 로직 어레이를 사용했습니다. 예를 들어 ZX Spectrum과 ZX81 시스템, Elektronika BK-0010 등이 있습니다.초기 구현은 매우 원시적인 경우가 많았지만 나중에 구현한 경우 SAM Coupé와 같은 상당히 고급 비디오 시스템이 만들어지기도 했습니다.ZX81과 마찬가지로 로우엔드에서는 하드웨어는 전기적인 기능만을 수행하며 비디오 스트림의 타이밍과 레벨은 마이크로프로세서에 의해 제공됩니다.비디오 데이터 레이트는 프로세서 속도에 비해 높기 때문에 컴퓨터는 디스플레이 프레임 간의 리트레이스 기간 동안 실제 디스플레이 이외의 계산만 실행할 수 있었습니다.이로 인해 퍼포먼스는 사용 가능한 전체 CPU 사이클의 최대 25%로 제한됩니다.

따라서 이들 시스템은 비교적 적은 컴포넌트로 매우 유능한 시스템을 구축할 수 있었지만 초기 프로그래머블 로직의 트랜지스터 수가 적다는 것은 초기 PLA 기반 시스템의 기능이 동시에 사용 가능한 비디오 인터페이스 컨트롤러 또는 비디오 코프로세서를 사용하는 시스템보다 종종 덜 인상적이라는 것을 의미합니다.CPLD 또는 FPGA사용하는 PLA 솔루션과 같은 이후의 솔루션은 시판 컴포넌트를 사용하여 구축된 것보다 훨씬 더 고급 비디오 시스템을 만들 수 있습니다.

자주 사용되는 하이브리드 솔루션은 비디오 인터페이스 컨트롤러(종종 Motorola 6845)를 기본으로 사용하여 프로그램 가능한 로직 또는 ASIC로 기능을 확장하는 것이었습니다.이러한 하이브리드 솔루션의 예로는 6845를 ASIC와 조합하여 사용한 오리지널 VGA 카드가 있습니다.이것이 현재의 모든 VGA 기반 비디오 시스템이 6845에서 제공되는 하드웨어 레지스터를 사용하는 이유입니다.

최신 솔루션

ATi R300 칩 블록도디스플레이 컨트롤러에는 "디스플레이 인터페이스"라는 라벨이 붙어 있습니다.

반도체 소자 제작이 발전함에 따라 점점 더 많은 기능이 집적회로로 구현되고 있으며, 종종 반도체 지적재산권 코어(SIP core)로서 라이센스가 부여됩니다.디스플레이 컨트롤러의 SIP 블록은 GPU, APUSoC 다이에서 찾을 수 있습니다.

VGA, DVI, HDMI, DisplayPort, VHDCI, DMS-59 등 다양한 인터페이스를 지원합니다.PHY에는 LVDS, TMDS플랫 패널 디스플레이 링크, OpenLDICML포함됩니다.

예를 들어 디스플레이 컨트롤러에 의해 생성된 VGA 신호는 VGA 케이블을 통해 디스플레이로 전송됩니다.케이블의 양끝은 VGA 커넥터에 접속되어 있습니다.노트북 및 기타 모바일 컴퓨터는 디스플레이 컨트롤러와 디스플레이 간에 서로 다른 인터페이스를 사용합니다.디스플레이 컨트롤러는 일반적으로 여러 컴퓨터 디스플레이 표준을 지원합니다.

KMS 드라이버는 디스플레이 컨트롤러용 디바이스 드라이버의 일례이며, AMD Eyefinity는 멀티 모니터를 지원하는 디스플레이 컨트롤러의 특수 브랜드입니다.

RandR(Resize and Rotate)은 각 출력의 화면 해상도와 새로 고침 속도를 개별적으로 구성하고 그에 따라 윈도우 시스템의 설정을 구성하는 방법입니다.

이분법의 예는 ARM Holdings가 제공하고 있습니다.이들은 3D 렌더링 가속용 SIP 코어와 디스플레이 컨트롤러를 독립적으로 제공합니다.전자는 말리-200 또는 말리-T880과 같은 마케팅 이름을 가지고 있으며, 후자는 말리-DP500, 말리-DP550,[2] 말리-DP650으로 판매되고 있다.

역사

1982년 NEC는 1980년대 개인용 컴퓨터에서 가장 널리 사용되는 비디오 디스플레이 컨트롤러 중 하나인 NEC μPD7220을 출시했습니다.NEC PC-9801, APC III, IBM PC 호환기, DEC Rainbow, Tulip System-1Epson QX-10에서 [3]사용되었습니다.인텔은 이 디자인을 라이선스하여 82720 그래픽스 디스플레이 [4]컨트롤러라고 불렀습니다.

이전에는 그래픽 카드를 그래픽 어댑터라고도 불렀습니다.이러한 ISA/EISA 카드에 사용되는 칩은 디스플레이 컨트롤러만으로 구성되어 있었습니다.컴퓨터를 디스플레이에 접속하는 데 필요한 기능은 이것뿐이었기 때문입니다.이후 카드에는 CPU와 병렬로 2D 렌더링과 관련된 계산을 수행하기 위한 IC가 포함되었습니다. 이 카드들은 그래픽 액셀러레이터 카드라고 불렸습니다.마찬가지로, 3D 렌더링을 위한 IC도 결국 그 뒤를 이었습니다.이러한 카드는 VLB, PCIAGP 인터페이스와 함께 사용할 수 있습니다.현대의 카드는 일반적으로 PCI Express 버스를 사용합니다.이는 ISA 버스가 제공할 수 있는 대역폭보다 훨씬 더 큰 대역폭이 필요하기 때문입니다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ M. Rasch, B. Bertelsons (1995). Scott Slaughter (ed.). PC Underground: Unconventional Programming Topics. US: Abacus Software Inc. p. 58-68. ISBN 978-1557552754. "Cathode Ray Tube Controller(CRTC)는 비디오 신호의 생성을 담당하며 프로그래밍이 가능합니다.CRTC-VGA, EGA, CGA, 헤라클레스, SVGA, Mode X를 위한 테이블을 의미하는 비트를 등록합니다."
  2. ^ "Initial support for ARM Mali Display Controller". Linux kernel mailing list. 2016-04-01.
  3. ^ Dampf, Guido (1986). "Graphics with the NEC 7220: Direct access with Turbo Pascal". Retrieved 27 July 2013. ("Grafik mit dem 7220 von NEC", mc, 1986, H11, 54-65 페이지 번역)
  4. ^ Changon Tsay (January 1, 1986). A graphics system design based on the INTEL 82720 graphics display controller. Dissertation. University of Texas at El Paso.

외부 링크