Развитие видеоподсистемыРефераты >> Программирование и компьютеры >> Развитие видеоподсистемы
Сейчас развитие видеоподсистемы идет сумасшедшими темпами, и зачастую видеоадаптеры диктуют моду мониторам, однако на рассвете компьютерной эпохи все было совсем наоборот. Так откуда же «выросла» эта железка, которая в настоящее время по стоимости может поспорить с процом?
Первые мониторы, являвшиеся наследниками осциллографов, были векторными и не предполагали наличие видеоадаптера, ведь в них изображение строилось не посредством последовательного облучения электронным пучком экрана строка за строкой, а, так сказать, «от точки до точки». Компьютер управлял отклоняющей системой дисплея напрямую. Однако когда вывод на монитор пришел на смену выводу на телетайп, и сложность изображения увеличилась, целесообразнее стало подключить компьютер к телевизору. По этому пути развития и пошли дальше мониторы. Телевизионное изображение - растровое, поэтому возникла необходимость в промежуточных блоках для подготовки графической информации к отображению. Для построения картинки теперь требовались специализированные довольно ресурсоемкие вычисления, поэтому понадобились специальные устройства, ориентированные на работу с растровыми мониторами, которые могли бы хранить в себе видеоинформацию, обрабатывать ее и переводить в аналоговую форму для отображения на дисплее. Основной технологией здесь можно считать 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 graphics 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 Гц.