Дисплеи для IBM PC относятся к растровым дисплеям. Их специальное рассмотрение делается в связи с тем, что в настоящее время они наиболее распространенны, хотя вряд ли могут служить примером изящных технических решений.
Дисплейная подсистема IBM PC состоит из двух основных компонент:
· видеоадаптера,
· монитора.
В свою очередь и видеоадаптеры и мониторы разделяются на несколько различных типов. Допускаются определенные (не произвольные) их комбинации.
Первоначально IBM PC выпускались с черно-белым адаптером MDA (Monochrome Display Adapter). Максимальное разрешение составляло 640×350 точек, графические возможности отсутствовали. Следующим был также черно-белый видеоадаптер "Геркулес", выпущенный фирмой Hercules Computer Technology, Inc. Этот адаптер обеспечивает разрешение 720×350 с графическими возможностями.
Первым цветным видеоадаптером фирмы IBM стал CGA (Color Graphics Adapter). Разрешение его мало (320×200), цветов мало (до 4), программирование противоестественное. Максимальное разрешение составляет 640×200.
Затем был выпущен видеоадаптер EGA - (Enhanced Graphics Adapter). Он обеспечивает разрешение 640×200 при 16 цветах из 64. Максимальное разрешение 640×350.
Первым видеоадаптером со сравнительно приемлемыми характеристиками стал VGA (Video Graphics Array) с максимальным разрешением до 800×600 при 256 цветах.
Затем фирма IBM разработала видеоадаптер 8514/A, имевшего параметры более соответствующие сложившимся потребностям - 1024×768 при 256 цветах.
Последняя разработка фирмы IBM - видеоадаптер XGA (eXtended Graphics Array) с не самыми современными возможностями 1024×768 при 256 цветах. Он на уровне регистров совместим с VGA.
Многие фирмы выпускают улучшенные версии VGA под названиями Super VGA и Ultra VGA, но общий стандарт отсутствует.
Фирма Texas Instruments предложила стандарт на программный интерфейс с интеллектуальными видеоадаптерами, использующими графические процессоры TMS 340xx (TIGA-стандарт, Texas Instruments Graphics Architecture). В настоящее это самые мощные видеоадаптеры для IBM PC.
Сводка основных параметров упомянутых видеоадаптеров приведена в таблице 0.11.1.
Адап- | Подклю- | Разре- | Развертки | Цве- | |
тер | чение | шение | Кадр., | Строчн., | тов |
Гц | кГц | ||||
MDA | TTL | 720×350 | 50 | 18.43 | - |
HGC | TTL | 720×348 | 50 | 18.43 | - |
CGA | RGB/TTL | 640×200 | 60 | 15.75 | 4 |
EGA | RGB/TTL | 640×350 | 60 | 21.85 | 16 |
EGA+ | RGB/TTL | 640×480 | 60 | 30.50 | 16 |
VGA | RGB | 640×480 | 60/70 | 31.47 | 16 |
аналог | |||||
8514/A | -||- | 1024×768 | 87 | 35.50 | 256 |
черес. | |||||
XGA | -||- | 1024×768 | 72 | 37.50 | 256 |
SVGA-1 | -||- | 800×600 | 56 | 35.20 | 256 |
SVGA-2 | -||- | 800×600 | 60 | 37.80 | 256 |
SVGA-3 | -||- | 800×600 | 72 | 48.30 | 256 |
UVGA-1 | -||- | 1024×768 | 60 | 48.40 | 256 |
UVGA-2 | -||- | 1024×768 | 70 | 56.50 | 256 |
UVGA-3 | -||- | 1280×960 | 60 | 64.00 | 256 |
TIGA | -||- | 1280×1024 | 60 | 64.00 | 64 млн |
Для отображения текста и графики используется несколько типов мониторов:
· композитный монитор, на вход которого подается композитный сигнал системы NTSC (National Television System Committee), применяемой в телевидении. Используется с видеоадаптером CGA;
· цифровой монитор, на вход которого по N проводам подается сигнал в цифровой форме. Цифро-аналоговое преобразование выполняется монитором. На таком дисплее можно получить до 2N оттенков. Используется с видеоадаптерами CGA, EGA. Первоначально выпускался CD (Color Display) - простой 16-ти цветный (4 провода), затем ECD (улучшенный цветной дисплей) с 16-ю оттенками из 64, затем многочастотный цифровой, позволяющий работать с различными частотами кадров, и отображающий 16 оттенков из 64. Используется с видеоадаптерами EGA, VGA;
· аналоговый дисплей, на вход которого подаются готовые RGB-сигналы, сформированные видеоадаптером. Используется с видеоадаптерами VGA, SVGA, XGA.
Это замечание предназначено для тех, кто не знаком с обозначением адресов для IBM PC, так как при рассмотрении видеоадаптеров будет применяться именно оно.
Микропроцессор, используемый в IBM PC, может адресовать до 1 Мбайта памяти (220 байт). Вместе с тем 16-ю разрядами можно адресовать только 64 Кбайт (216), поэтому используются два типа адресов: физический и логический. Физический адрес - 20-битное значение от 0h до FFFFFh. Аппаратура при передаче информации между процессором и памятью использует физический адрес. Память разбита на логические сегменты, имеющими длину до 64 Кбайт (FFFFh байт). Каждому сегменту программно назначается базовый адрес, являющийся адресом первого байта в сегменте. Эти адреса кратны 16. Других ограничений на размещение сегментов нет. Логический адрес байта состоит из сегментного значения и значения относительного адреса в сегменте. Записывается логический адрес в виде: BBBB:OOOO. Где BBBB - базовый адрес сегмента, деленный на 16, а OOOO - относительный адрес в сегменте. Физический адрес генерируется сдвигом влево на 4 разряда базового адреса и сложением его со значением относительного адреса.
Все видеоадаптеры содержат в себе видеопамять и видеоконтроллер (см. рис. 0.9.1). Видеопамять доступна процессору как обычная оперативная память и, в зависимости от типа видеоадаптера, занимает или часть или всю память, отводимую в адресном пространстве IBM PC под экранный буфер (128 Кбайт от адреса A000:0000 до B000:FFFF).
Предусмотрено две группы взаимоисключающих режимов работы видеоадаптеров - символьные и графические.
В символьных режимах видеопамять интерпретируется как последовательность байт, содержащая байты коды отображаемых знаков и байты атрибутов, задающих цвета.
В графических режимах видеопамять интерпретируется самым различным образом, в основном, как некоторым образом упорядоченная последовательность битовых значений. Начало экрана - точка (0,0) расположена в левом верхнем углу. X-координата нарастает слева-направо, а Y-координата - сверху-вниз.
Содержит 16 Кбайт видеопамяти, начинающейся с адреса B800:0000, и контроллер электронно-лучевой трубки.
В символьных режимах отображается 25 строк по 40 или 80 символов. Для кодирования каждого знакоместа экрана используется 2 байта. 1-й байт - код отображаемого знака, второй байт - байт атрибута, задающий цвета символа и фона, мерцание. Размер знакоместа 8×8, таблица знакогенератора "зашита" в ПЗУ и, следовательно, не может быть изменена.
В графических режимах видеопямять интерпретируется или как последовательность двухбитовых значений при разрешении 320×200 с четырьмя цветами, или как последовательность однобитовых значений при разрешении 640×200 и черно-белом изображении. Видеопамять делится на две части: в первой половине, начинающейся с адреса B800:0000, содержатся описания всех нечетных строк, во второй, начинающейся с адреса B800:2000. Левому верхнему углу экрана отвечают два старших бита начального байта видеопамяти при разрешении 320×200 и старший бит - при разрешении 640×200. Структура видеопамяти CGA проиллюстрирована на рис. 0.11.1.
Видеоадаптеры EGA и VGA - более совершенные устройства, более напоминаюшие уже рассмотренные нами растровые дисплеи. На рис. 0.11.2 показана блок-схема, общая для этих двух адаптеров, на рис. 0.11.3 - блок схема, демонстрирующая отличия для VGA, связанные с использованием не цифрового, а аналогового дисплея.
Графический контроллер обеспечивает обмен между центральным процессором и видеопамятью, которая так же как и в CGA находится в адресном пространстве для экранного буфера.
Видеопамять имеет объем, как правило 256 Кбайт, но для EGA может быть и 64 Кбайт. Видеопамять разбита на 4 банка (цветовых слоя). Банки занимают одно адресное пространство таким образом, что по каждому адресу расположено сразу 4 байта по одному байту в каждом слое. Можно запрещать или разрешать запись в отдельные слои памяти при помощи регистра разрешения записи цветового слоя. Для операции чтения в каждый данный момент времени может быть доступен только один слой, задаваемый с помощью регистра выбора читаемого слоя. В большинстве режимов работы видеопамять разделена несколько страниц. При этом одна из них активна и отображается на экране. Запись информации возможна как на активную, так и на неактивные страницы.
Преобразователь последовательности выбирает данные из памяти, требуемым для того или иного режима образом, и формирует последовательный поток бит, передаваемый контроллеру атрибутов.
Контроллер атрибутов, используя таблицу цветности, преобразует информацию о цветах, полученную из видеопамяти, в информацию для ЭЛТ.
Контроллер ЭЛТ генерирует синхроимпульсы управления ЭЛТ.
Тактовый генератор управляет временными параметрами видеоадаптера и доступом от процессора в слоям видеопамяти.
Показанный на рис. 0.11.3 ЦАП преобразует цифровые сигналы яркостей в аналоговые значения, необходимые аналоговому монитору.
Большое количество различных регистров у адаптеров позволяет гибко регулировать режимы работы, управлять сигналами синхронизации, определять формат экрана и т.д.
В текстовом режиме можно вывести на экран 25 строк по 40 или 80 символов. Перепрограммировав некоторые регистры адаптера можно получить для EGA до 43 строк, а для VGA - до 50.
Также как для CGA для кодирования символа используется два байта. Первый из них содержит код символа и заносится в нулевой цветовой слой, второй байт содержит атрибут символа и заносится во второй цветовой слой.
Таблицы знакогенератора, задающие внешний вид символов, размещаются во втором слое видеопамяти. Всего может быть загружено 4 таблицы для EGA и 8 - для VGA. Одновременно могут быть активными две таблицы, что дает возможность отобразить на экране до 512 различных конфигураций знакомест одновременно. Возможные размеры символов приведены в таблице 0.11.1.
Байт атрибута задает цвета символа и фона, мерцание и одну из двух активных таблиц знакогенератора.
Имеется большой набор графических режимов. В режимах, совместимых с CGA используется только 0-й слой памяти, распределение которого по адресному пространству и интерпретация значений бит такая же как и для CGA (см. рис. 0.11.1).
В части графических режимов память интерпретируется как послойная с использованием одного, двух или всех четырех слоев. Если используется, например, 4 слоя, то изображение будет с 4-мя битами на пиксел - по биту из каждого слоя. В этом случае имеется 16 оттенков одновременно. При использовании одного слоя, естественно, получаем черно-белое изображение. В режиме с двумя слоями поддерживается три уровня черно-белого (черный, белый, ярко-белый) и мерцание.
В одном из режимов, применимом только для VGA, память интерпретируется как линейная последовательность всех четырех слоев (см. рис. 0.11.4). Это режим с разрешением 320×200 с байтом на пиксел, т.е. с 256 градациями.
Для повышения быстродействия графических подсистем IBM PC выпускаются специальные типы адаптеров - графические акселераторы. Графические акселераторы содержат собственные процессоры, которые специализированы для выполнения графических преобразований, поэтому изображения обрабатываются быстрее, чем с использованием универсального ЦП ПЭВМ.
Акселераторы, кроме типа и возможностей графического процессора, различаются по следующим основным параметрам:
· памятью для сохранения изображений. В некоторых случаях используется обычная динамическая память DRAM, но обычно используется специализированная видеопамять VRAM;
· используемой шиной. В настоящее время обычно используется PCI;
· шириной регистров. Чем шире регистр, тем большее число пикселов можно обработать за олну команду. В настоящее время обычная ширина - 64 бита. В ближайшее время на рынке появятся акселераторы с шириной регистров в 128 бит.