Видеоконтроллер

Видеоконтроллер (англ. Video Display Controller, VDC) — специализированная микросхема, являющаяся главным компонентом схемы формирования видеоизображения в компьютерах и игровых консолях. Некоторые видеоконтроллеры также имеют дополнительные возможности, например, генератор звука. Микросхемы видеоконтроллеров применялись в основном в домашних компьютерах и игровых системах 1980-х годов.

До появления микросхем видеоконтроллеров схемы формирования изображения полностью строились на дискретной логике. К середине 1970-х годов ЭЛТ-дисплеи стали популярным устройством вывода информации для микрокомпьютеров (до этого часто информация выводилась только на печатающее устройство), а развитие технологии производства микросхем позволило реализовать основную часть схемы формирования изображения в виде отдельной микросхемы. Это упрощало разработку подобных схем, уменьшало габариты печатных плат и потребление энергии, снижало стоимость конечных устройств. Дальнейшее развитие видеоконтроллеров привело к появлению более сложных и многофункциональных устройств — видеопроцессоров (графический процессор).

Главным компонентом схемы формирования изображения всегда является видеоконтроллер, но могут использоваться и дополнительные микросхемы — ОЗУ для хранения изображения, ПЗУ для хранения графики символов, и дополнительная дискретная логика (например, сдвиговые регистры), для построения законченной схемы. В любом случае, видеоконтроллер отвечает за генерацию необходимых синхросигналов, таких как сигналы вертикальной и горизонтальной синхронизации, сигнал обратного хода луча.

Типы видеоконтроллеров

Микросхемы видеоконтроллеров можно разделить на четыре группы по принципу их работы.

Video shift register — простейший тип видеоконтроллера. Генерирует синхросигналы и преобразует получаемые байты видеоданных (от процессора или контроллера ПДП) в последовательность бит, которая вместе с синхросигналами формирует выходной видеосигнал. Видеоконтроллеры этого типа обычно поддерживают только растровые видеорежимы очень низкого разрешения. Единственным примером подобного видеоконтроллера общего назначения, использовавшегося в домашних компьютерах, является микросхема RCA CDP1861. В других домашних системах, также использующих видеоконтроллеры этого типа, применялись заказные микросхемы — например, Television Interface Adaptor[англ.] (TIA) в игровой консоли Atari 2600, или выполненный на БМК для компьютера Sinclair ZX81.

CRTC (Cathode Ray Tube Controller, контроллер ЭЛТ) генерируют синхросигналы и выполняют чтение ОЗУ, используемого в качестве видеопамяти. Прочитанные данные используются для формирования адреса в ПЗУ знакогенератора (для текстовых видеорежимов) или непосредственно (для графических режимов высокого разрешения)[1]. Видеоконтроллеры этого типа требуют большого количества внешних компонентов, выполняющих формирование видеосигнала, что позволяет им иметь широкий диапазон возможностей, от простейших текстовых режимов до цветной графики высокого разрешения. Такие видеоконтроллеры обычно не имеют поддержки аппаратных спрайтов. Среди наиболее известных видеоконтроллеров этого типа — микросхемы Intel 8275 и Motorola 6845.

Video interface controller — следующий шаг развития видеоконтроллеров. Практически все компоненты схемы генерации видеосигнала интегрированы в одну микросхему. Из внешних элементов требуются только аналоговые цепи формирования видеосигнала. К этой категории относятся микросхема Signetics 2636[англ.] и микросхемы, использовавшиеся в 8-разрядных компьютерах компании Commodore (наиболее известная микросхема — MOS Technology VIC-II, использовавшаяся в Commodore 64).

Video co-processor — более сложные устройства, использующие отдельное ОЗУ в качестве видеопамяти и способные не только отображать, но и самостоятельно обрабатывать данные в ней. Среди примеров этого типа видеоконтроллеров — микросхема ANTIC[англ.], применявшаяся в 8-разрядных системах Atari, и микросхемы Texas Instruments TMS9918, Yamaha V9938 и V9958, применявшиеся в компьютерах стандарта MSX. К этой категории также относят видеоконтроллеры 8-разрядных и 16-разрядных игровых консолей.

Примечания

  1. M. Rasch, B. Bertelsons. PC Underground: Unconventional Programming Topics / Scott Slaughter. — US : Abacus Software Inc, 1995. — P. 58-68. — ISBN 978-1557552754. «Cathode Ray Tube Controller (CRTC) is responsible for generating the video signal and is programmable. CRTC-Registers bit meaning tables for VGA, EGA, CGA, Hercules, SVGA, Mode X[англ.] (альтернатива 256-цветовому режиму IBM VGA).»