Смекни!
smekni.com

Развитие видеоподсистем (стр. 1 из 3)

Введение

Сейчас развитие видеоподсистемы идет су­масшедшими темпами, и зачастую видеоа­даптеры диктуют моду мониторам, однако на рассвете компьютерной эпохи все было совсем наоборот. Так откуда же «выросла» эта же­лезка, которая в настоящее время по стоимости мо­жет поспорить с процом?

Первые мониторы, являвшиеся наследни­ками осциллографов, были векторными и не предполагали наличие видеоадаптера, ведь в них изображение строилось не посредством последовательного облуче­ния электронным пучком экрана строка за строкой, а, так сказать, «от точки до точки». Компьютер управлял отклоняю­щей системой дисплея напрямую. Однако когда вывод на монитор пришел на смену выводу на телетайп, и сложность изобра­жения увеличилась, целесообразнее ста­ло подключить компьютер к телевизору. По этому пути развития и пошли дальше мониторы. Телевизионное изображение - растровое, поэтому возникла необходи­мость в промежуточных блоках для под­готовки графической информации к отоб­ражению. Для построения картинки те­перь требовались специализированные довольно ресурсоемкие вычисления, поэтому понадобились специальные устрой­ства, ориентированные на работу с раст­ровыми мониторами, которые могли бы хранить в себе видеоинформацию, обра­батывать ее и переводить в аналоговую форму для отображения на дисплее. Основной технологией здесь можно счи­тать frame-buffer technology[1]. Изна­чально в задачу видеокарты входило только сохранение и регенерация кадра, и построение целиком ложилось на центральный процессор и программу. Процес­сор рассчитывал кадр и помещал его в память видеоадаптера, который преобра­зовывал данные из видеопамяти в анало­говый вид.


Основные узлы

Чтобы не запутаться в дальнейшем, кратко рассмотрим основные узлы ви­деоадаптера. Видеоадаптеры состояли из следующих основных частей: графического преобразователя, контроллера атри­бутов, контроллера CRT, ПЗУ[2], видеопа­мяти и синхронизатора. В первых символьных версиях видеоа­даптеров ПЗУ отсутствовало. Оно было добавлено несколько позже, и предназ­началось для хранения экранных шриф­тов, служебных таблиц и т.п. ПЗУ не ис­пользуется видеоконтроллером напря­мую - к нему обращается только цент­ральный процессор, и в результате выполнения им программ из ПЗУ происходят обращения к видеоконтроллеру и видеопамяти. ПЗУ необходимо только для первоначального запуска адаптера и работы в режиме DOS[3] - операцион­ные системы с графическим интерфейсом его практически не используют. В целом в ходе истории ПЗУ глобально не изменялось. Обновлялись и добавля­лись лишь данные, хранящиеся в нем. Графический контроллер - устройство, которое отвечает за обмен данными между CPU и видеопамятью, регенера­цию ее содержимого, и обработку зап­росов центрального процессора. Для исключения конфликтов при обращении к памяти со стороны видеоконтроллера и центрального процессора первый име­ет отдельный буфер, который в свобод­ное от обращений ЦП время заполняется данными из видеопамяти. Если конфликта избежать не удается - видеоконт­роллеру приходится задерживать обра­щение ЦП к видеопамяти, что снижает производительность системы. Для иск­лючения подобных конфликтов в ряде карт применялась так называемая двух­портовая память, допускающая однов­ременные обращения со стороны двух устройств.

Последовательный преобразователь – выбирает данные из памяти и преобра­зует их в поток битов. Контроллер атрибутов - преобразует информацию о цвете в вид для отобра­жения монитором.

Контроллер CRT - генерирует синхро­сигналы, управляющие монитором. Видеопамять - используется как буфер видеоконтроллера для промежуточного хранения и модификации изображения. Синхронизатор - обеспечивает синхрон­ную работу всех узлов адаптера, задает временные параметры и управляет дос­тупом CPU к видеопамяти.

MDA

Видеокарты стандарта MDA[4] использо­вались в IBM PC[5] самыми первыми, они были представлены IBM в 1981 году. MDA-адаптеры были монохромными и работали в текстовом режиме. По сути, задача сводилась к тому, чтобы «распе­чатать» на мониторе текст, как на прин­тере. Экран монитора условно был «разбит» на определенное количество строк и столбцов. В каждой позиции мог выводиться только один символ. В ПЗУ видеоадаптера хранились символы в ви­де двоичных матриц соответственно яр­ких и неярких точек. Символ представ­лялся в виде матрицы 9x14 точек. Мони­тор, однако, облучает строчку экрана за строчкой, поэтому адаптер сохранял в память всю символьную строку, транс­лировал отдельные символы в матрицы и преобразовывал их в матрицу строки. Для преобразования кодов символов в двоичные матрицы служил так называе­мый знакогенератор. При получении ко­да символа знакогенератор формиро­вал на своем выходе соответствующий двоичный код. Дальше каждая строчка матрицы символьной строки передава­лась в монитор, который засвечивал со­ответствующие точки люминофора. Что­бы построение изображения было воз­можным, видеоадаптер также генериро­вал синхросигнал, который задавал час­тоту строчной развертки. Однако, в от­личие от принтера, на мониторе изобра­жение необходимо регенерировать, поэ­тому программе постоянно приходилось посылать страницу «на печать» в порт монитора.

Текстовый режим в современных опера­ционных системах используется только на этапе начальной загрузки. Но именно MDA мы обязаны текстовому режиму 80 столбцов на 25 строк, который исполь­зуется и до сих пор. Это соответствова­ло разрешению 720x350 точек, частота регенерации кадра составляла 50 Гц. Стандартный набор состоял из 256 сим­волов, очертания которых хранились в ПЗУ, с помощью платы расширения па­мяти фирмы IBM можно было расши­рить набор до 512 символов. IBM graph­ics memory module kit позволял увели­чить его до 1024 символов.

Hercules

В то же время выпускается монохром­ный адаптер высокого разрешения – Hercules. Это первый графический адаптер, то есть кадр строится в видеопамяти, а адресация осуществляется к каждой точке. HOC[6], так же, как и MDA, поддерживал текстовый режим. Этот адаптер получил большое распространение при работе с электрон­ными таблицами для построения графи­ков и диаграмм, но в силу своей монохромности дальше не поддерживался. Од­нако очень долгое время данный адаптер

к одному компьютеру. Так, поставив CGA/EGA/VGA и Hercules, можно было работать с двумя мониторами. Актуально это было до 1996 года, пока не появились видеокарты, поддерживающие два мони­тора.

CGA

На смену MDA в 1982 году пришел стан­дарт CGA[7] и при­вел за собой жесткую стандартизацию. Это была первая революция в видеоадап­терах. Видеоадаптеры CGA были цветны­ми и графическими (если быть точнее, они поддерживали как символьный, так и графический вывод). Графический кадр сохранялся в видеопамяти, а затем транс­лировался в монитор. Цвет пикселя зада­вался цифровыми сигналами, определяв­шими уровень яркости для соответствую­щих RGB-пушек, а уже логика монитора преобразовывала их в аналоговую фор­му. Палитра CGA состояла из 1 6 цветов. При разработке CGA главной задачей была универсальность, а потому исполь­зовалась стандартная частота развертки - 60 Гц.

Камнем преткновения на этом этапе была видеопамять, точнее, ее объем. Дело в том, что модули памяти в то время были дико дорогими, поэтому CGA-адаптеры стандартно комплектова­лись 16 Кб видеопамяти. И ес­ли в текстовом режиме 80x25 символов (то есть 640x200 пикселей) видеокарта могла вы­водить все 16 цветов, то в графическом хватало лишь на то, чтобы одновремен­но выводить только 4 цвета, причем не любые, а только стандартные палитры. С этого момента все узлы адаптера ста­ли работать на частоте кадровой разве­ртки, так как возникали конфликты с ви­деопамятью, проявляющиеся в виде «снега» на экране.

В текстовом режиме размер матрицы символа был 9x14 точек, однако можно было установить размер матрицы 8x8, что хотя и ухудшало восприятие текста, но зато позволяло разместить на экра­не больше информации.

EGA

Однако первой видеокартой, способной воспроизводить нормальное цветное изображение, был EGA-адаптер[8], представлен­ный IBM в 1984 году. EGA поддерживал 16 цветов и разрешение до 640x350 точек. Также поддержива­лись CGA режимы: 640x200 и 320x200. Первые карты могли работать с монито­рами обоих типов. Переключение между режимами осуществлялось при помощи dip-переключателей на задней планке видеоадаптера. Также поддержи­вались и текстовые режимы. Стандарт­ный объем видеопамяти составлял 64 Кб. В более поздних EGA-клонах фирм ATI Technologies и Paradise с объемом памяти 256 Кб были доступны режи­мы: 640x400, 640x480 и 720x540. Видеопамять была разделена на четыре банка (четыре цветовых слоя). Таким образом, по од­ному адресу располагалось четыре бай­та. Процессор мог заполнять их однов­ременно. В результате скорость запол­нения кадра значительно увеличилась. Отличительной чертой от предыдущих видеоадаптеров было добавление в ПЗУ видеокарты не графических прими­тивов, а наборов инструкций для их построения, что ознаменовало зарожде­ние ускорителей. Частота регенерации кадра осталась 60 Гц. Интерфейс с мо­нитором по-прежнему цифровой.

MCGA

Сейчас мало кто знает про Multi Colour Graphics Array. Этот тип видеоадаптеров не был особо распространен. Причиной тому явилась политика IBM, которая изобрела и ввела этот стандарт в рам­ках стандарта PS/2. Лицензии на произ­водство данного типа карт компания не давала, поэтому MCGA не стал общим стандартом. Список поддерживаемых

640x400 (текст). Количество воспроизводимых оттенков в текстовом режиме составило 262144. Графи­ческий режим характеризовался разрешением 320x200 пикселей при 64 Кб видеопамяти.

VCA

Поистине революционным стандартом можно считать стандарт VGA[9], представленный все той же IBM в 1987 году. Революцией явля­лось появление цифро-аналогового пре­образователя в VGA-адаптерах. Это бы­ло связано с переходом от цифрового управления монитором к аналоговому. Все дело в том, что VGA-видеокарта могла отображать значительно больше оттенков, чем видеоадаптеры всех пре­дыдущих стандартов: теперь для кодиро­вания каждого цвета требовалось не 2 бита, а целых 6, то есть 18 проводов на цвета, плюс один провод на сигнал синх­ронизации, что, согласись, нецелесооб­разно. Поэтому в монитор стали передавать аналоговый сигнал, от уровня которого зависел уровень яркости соответ­ствующей RGB-пушки. В связи с этим возникла необходимость установить на видеоадаптер цифро-аналоговый преоб­разователь. Вместе с VGA появилось несколько более знакомое всем сокра­щение RAMDAC[10]. VGA-адаптеры комплектовались 256 Кб видеопамяти и поддерживали следую­щие режимы: 640x480 - 16 цветов, 640x400 - 16 цветов, 320x200 - 16 цве­тов и 320x200 - 256 цветов. Палитра VGA составляла 262144 оттенков (2Л18, по 64 уровня яркости на каж­дый RGB-цвет). Начиная с этого адаптера, применяются разрешения с соотношением сторон 4:3.