Графические устройства

         

Видеокарты и стандарты

Видеокарты воспринимают цифровую информацию, поступающую от ЦП, и вырабатывают сигналы, управляющие работой монитора. Ядром видеокарты является специализированный микропроцессор, выполняющий все необходимые функции. От него зависят такие технические характеристики, как производительность (или быстродействие), предельно допустимый объем памяти, конкретные особенности программирования. Кроме того, на любой видеокарте расположена оперативная память (RAM), предназначенная для хранения цифрового образа, выводимого на экран изображения. Наконец, на видеокарте находится постоянная память (ком), содержащая фрагмент базовой системы ввода-вывода (BIOS).

Системные шины

Конструктивное исполнение видеокарт соответствует определенным техническим стандартам. Каждая из них способна взаимодействовать только с конкретным типом системной шины. Внешним признаком этого является форма разъема (гнезда) материнской платы, в которое устанавливается видеокарта. Системная шина расположена на материнской плате и представляет собой совокупность проводящих линий, по которым передаются данные, адреса и управляющие сигналы. От


нее зависит такая важная характеристика, как скорость передачи данных, а следовательно, и время, затрачиваемое на построение изображения на экране.

На материнских платах компьютеров, собранных на базе процессоров Intel 80286 и Intel 80386 применялась шина ISA (industry standard Architecture), при использовании которой обмен данными между видеокартой и процессором производится словами или байтами. Для процессора Intel 486 была разработана новая системная шина VLB (VESA Local BUS), но ее очень скоро вытеснила шина PCI (Peripheral Component Interconnect). Обе шины позволяли передавать данные двойными словами. Большинство имеющихся в продаже современных видеокарт выполнено в стандарте PCI. С выпуском процессоров Pentium ll на системной плате появилась специальная 128-разрядная шина для обмена данными с видеокартой. Она заканчивается гнездом AGP (Accelerated Graphics Port). В Настоящее Время видеокарты, выполненные в стандарте AGP, преобладают на компьютерном рынке.

Для каждого типа шин выпускались и продолжают выпускаться не только видеокарты, но и платы различного назначения. Поэтому на материнских платах обычно имеются разъемы для установки карт, выполненных в стандартах ISA и PCI. Например, одна из современных материнских плат фирмы Intel (ее тип AL 440 LX) содержит 2 разъема ISA, 4 разъема PCI и 1 разъем AGP. Вполне возможно, что на современном ПК с процессором Pentium вы обнаружите видеокарту, выполненную в стандарте PCI и даже в устаревшем стандарте ISA.

Описанные различия видеокарт учитываются при их программировании лишь в особых случаях, когда требуется максимальная производительность видеосистемы. Большинство прикладных задач в этом не нуждается. Поэтому для нас более важно знать тип монитора, для обслуживания которого предназначена видеокарта, поскольку от этого зависят основные особенности ее программирования и структура графических задач.

Стандарты IBM

Свой первый персональный компьютер американская фирма IBM (International Business Machines) выпустила в 1981 году. В то время основным производителем персональных компьютеров была другая американская фирма DEC (Digital Equipment Corporation). IBM не входила даже в тройку лидеров, но за короткий отрезок времени она стала "законодателем мод" в сфере производства ПК. Этому, в немалой степени, способствовало то, что IBM публиковала подробную информацию о своих новых разработках, и ее могли использовать другие фирмы, занимающиеся производством компьютеров, совместимых с IBM PC, дополнительных плат различного назначения и разработкой программного обеспечения.

Впервые за всю историю существования IBM применила в своем изделии компоненты, изготовленные другими фирмами. В частности, в IBM PC использовался микропроцессор Intel 8086. С тех пор все семейство IBM PC базируется на микропроцессорах фирмы Intel. Кроме них могут применяться совместимые микропроцессоры фирм AMD и Cyrix.
Первая модель ПК выпускалась недолго, на смену ей пришел компьютер второго поколения PC хт, аббревиатура хт расшифровывается как extended Technology (расширенная технология). В нем по-прежнему использовался микропроцессор Intel 8086, но пространство оперативной памяти было увеличено до 640 Кбайт. Кроме того, были разработаны новые видеокарты, предназначенные для работы с монитором CGA и позволявшие отобразить 8 цветов. Объем видеопамяти у них достигал 4 Кбайт, а разрешающая способность составляла 320x200 точек.

Следующая модель компьютера была создана на базе микропроцессора Intel 80286, она называлась PC AT, аббревиатура AT расшифровывается как Advanced Technology (прогрессивная технология). При разработке PC AT в качестве стандарта был принят монитор EGA. На видеокартах появился новый разъем для подключения монитора. Количество разных цветов точки возросло до 16-ти, а объем видеопамяти до 64 Кбайт. Такой объем видеопамяти и разрешающая способность монитора позволяли создавать на экране изображение размером 640x350 точек.

К этому времени производство видеокарт и мониторов освоили разные фирмы, и их продукция существенно различалась по техническим характеристикам. Выпускались карты, которые позволяли использовать 64 цвета и имели объем видеопамяти больше, чем 64 Кбайт. Однако для использования таких карт требовалось описание способов их программирования, которое в большинстве случаев недоступно для программистов.
Для стандартов CGA и EGA характерна сложная организация видеопамяти. Простая запись кода точки в видеопамять или чтение кода из нее невозможны, для этого требуется около десятка команд и приходится работать с портами видеокарты.

Стандарт на монитор VGA был опубликован при выпуске новой серии IBM PS (персональные системы) на базе процессора Intel 80386. Эта серия компьютеров не получила широкого распространения. Стандарт был принят, но в стремлении вырваться вперед IBM выпустила недоработанный продукт, чем и не замедлили воспользоваться конкуренты.

Стандарт VGA предусматривал новый трехрядный 15-контактный разъем для подключения монитора. Пожалуй, это наиболее продуманная часть стандарта. В разъеме были оставлены свободные (зарезервированные) контакты для будущих расширений. Поэтому его форма не изменилась до настоящего времени. При подключении современных SVGA-мониторов используются некоторые из ранее зарезервированных контактов разъема. Следует отметить, что такой стандарт разъема распространяется только на видеокарты, предназначенные для семейства IBM PC.

Стандарт VGA был шагом вперед по количеству цветов, которое возросло с 16 до 256. Объем видеопамяти увеличился до 256 Кбайт, и упростилась ее организация. В отличие от стандартов CGA и EGA, запись и чтение кода точки теперь производились одной командой, как при работе с обычной (оперативной) памятью компьютера. Однако стандарт VGA имел следующий существенный недостаток. Видеопамять, как и обычная память, делится на сегменты размером по 64 Кбайт. Стандарт VGA не предусматривал механизм переключения сегментов, поэтому на экране можно было отобразить содержимое только одного из них. Соответственно размер максимально возможного изображения составлял 320x200 точек (320x200 = 64 000, что немного меньше, чем 64 Кбайт).

Стандарты IBM и BIOS

Для программирования конкретной видеокарты надо знать назначение ее внутренних регистров, их размерность (байты, слова и пр.), способ записи или чтения данных и расположение величин в разрядах регистров. Первый стандарт IBM регламентировал назначение, состав и способы работы с внутренними регистрами, что исключало несовместимость видеокарт. Но скоро стало очевидно, что это плохой способ решения проблемы совместимости и в стандартах EGA и VGA указанные требования распространялись только на основную часть регистров.

Для решения проблемы совместимости были стандартизированы функции BIOS. IBM выпустила описание базового набора, содержащее перечень основных функций, способ их вызова, назначение и размещение входных и выходных параметров. Так появилась группа функций BIOS с названием "video Services". Образующие ее подпрограммы и данные не входят в основную часть BIOS, они хранятся в специальной микросхеме, расположенной на видеокарте. Поэтому, устанавливая новую видеокарту, вы одновременно устанавливаете новую реализацию функций указанной группы. У современных моделей видеокарт эта группа может занимать полный сегмент памяти, т. е. 64 Кбайт. Это свидетельствует о сложности и разнообразии выполняемых действий и о большом объеме используемых при этом данных.

Именно благодаря наличию функций "video Services" вы можете быть уверены в том, что после смены видеокарты ваш ПК сохранит свою работоспособность. Программисты получили существенное упрощение структуры прикладных задач и их независимость от моделей видеокарт. А разработчики получили возможность изменять программную реализацию функций BIOS для учета конкретных особенностей видеокарты.
Перед выводом на экран монитора текста или графических изображений должен быть установлен соответствующий видеорежим. В частности, при первоначальной загрузке ПК BIOS устанавливает текстовый режим работы, при котором на экране можно расположить 25 строк, каждая из которых содержит не более чем 80 символов. DOS обычно не изменяет этот режим, а прикладные задачи могут выполняться в текстовых или в графических режимах.

В группу "video services" обязательно входит функция, выполняющая установку видеорежима. При ее вызове указывается код видеорежима, а данные, необходимые для его установки, хранятся в области BIOS. IBM ввела стандартные значения кодов для 20-ти видеорежимов, значения которых изменяются от о до I3h (буква h — признак шестнадцатеричного числа). Разработчики видеокарт могут вводить новые режимы по своему усмотрению, чем они обычно и пользуются.

Стандарты были не всегда

После неудачи со стандартом VGA IBM прекратила работы по стандартизации видеооборудования. А поскольку никто этим не занимался, то наступил период "разброда и шатаний". Каждая фирма проектировала платы по своему усмотрению, не заботясь о каком-либо общем стандарте, кроме собственного. В результате было выпущено много хороших, но не совместимых друг с другом видеокарт, поддерживающих видеорежимы с более высоким, по сравнению с VGA, геометрическим и цветовым разрешением. Коды и характеристики режимов существенно различались и программы, рассчитанные на работу с одной видеокартой, не могли работать с другими или, в лучшем случае, требовали дополнительной настройки. Разумеется, что программисты нашли выход и в системных библиотеках появились модули для определения типа установленной на компьютере видеокарты и настройки программы на ее параметры, но это были полумеры, требовалось радикальное решение.

При этом следует отметить, что отсутствие стандартов имело и свою положительную сторону. Именно в это время разработчиками видеооборудования был накоплен практический опыт использования различных видеорежимов. Трудно себе представить специалистов, которые могли бы предусмотреть все возможные случаи, не опираясь на существующий опыт. Намного проще обобщить достигнутые результаты, оставить главное и отбросить ненужное.

Необходимость стандартизации понимали не только программисты, но и производители видеооборудования. Благодаря объединению их усилий и была создана специализированная ассоциация VESA, которая до настоящего времени занимается вопросами стандартизации видеооборудования (не только для IBM PC). Все ведущие производители придерживаются этих стандартов и проблема несовместимости мониторов или видеокарт в наше время не столь актуальна, но технический прогресс вынуждает, время от времени, вновь возвращаться к проблеме стандартизации, уже на более высоком уровне работы с графикой.

Подведем итог сказанному в данном разделе. В современных видеокартах используется различная элементная база, поэтому они могут существенно различаться по своим техническим характеристикам. Но при использовании функций BIOS все они без исключения совместимы на программном уровне видеорежимами VGA IBM и VESA. Сказанное распространяется не только а обычные видеокарты, но и на акселераторы.


Содержание раздела