История развития видеокарт для настольных ПК. Часть 1: Эволюция двухмерной графики.
Видеокарта является одним из важнейших компонентов персонального компьютера. В этом материале вы узнаете о том, какими были первые видеоадаптеры в настольных ПК и как развивалась двухмерная компьютерная графика в 80-ых годах прошлого столетия.
Оглавление
- Введение
- Эра IBM PC. Видеоадаптеры CGA и MDA
- Эра IBM PC AT. Видеоадаптер EGA
- Видеоадаптер MCGA
- Эра IBM PS/2. Видеоадаптер VGA
- Видеоадаптер 8514/A
- Видеоадаптер XGA
- Видеоадаптер SVGA
- Заключение
Введение
Настольный компьютер состоит из нескольких основных компонентов, среди которых: процессор, системная плата, модули оперативной памяти, жесткий диск и другие. Все они являются важными и неотъемлемыми частями любого ПК, без которых его работа была бы невозможной. Но, не смотря на значимость каждой детали компьютера, наибольшее внимание пользователей, пожалуй, привлекает именно видеокарта. И это вполне объяснимый факт. Ведь графический адаптер отвечает за очень значимую для нас, визуальную составляющую - вывод изображения на экран, а значит, является важным связующим звеном между человеком и машиной.
На сегодняшний день, благодаря современным видеокартам, мы имеем возможность управлять компьютером с помощью операционных систем и программ, имеющих красивый графический интерфейс. Так же не секрет, что многие люди с большим удовольствием используют ПК для развлечений. Просмотр фильмов, включая видео высокой четкости (HD), интерактивный интернет, работа с красочными мультимедийными приложениями, возможность создавать и редактировать изображения – все это стало возможным благодаря видеоадаптерам. И что уж говорить про поклонников современных трехмерных видеоигр, для которых графический адаптер является самым главным компонентом в системе.
Сегодня, мощный ускоритель графики, представляет собой сложное вычислительное устройство, по сути, являющееся небольшим компьютером с собственным графическим процессором, памятью и системой питания. Но так было не всегда и на заре 90-ых о нынешних возможностях видеокарт можно было только мечтать. Мы решили рассказать вам, как же происходила эволюция дискретных графических адаптеров, проследив за их ключевыми этапами развития на протяжении последних десятилетий.
Эра IBM PC. Видеоадаптеры CGA и MDA
В 70-е годы прошлого столетия компьютеры нельзя было назвать роскошью, потому что они просто были недоступны массовому потребителю. Но именно в это время, небезызвестная ныне компания IBM, которая успешно развивалась в данном направлении, приняла решение создать «массовый» компьютер. И уже в августе 1981 года она смогла похвастаться своим первым персональным компьютером – IBM PC с модельным номером 5150.
Примечательно, что в то время компания предпочитала использовать в своих разработках только комплектующие собственного производства, но, несмотря на это, новый компьютер был укомплектован практически полностью компонентами сторонних производителей. В частности в системе был использован центральный процессор Intel 8088, тактовая частота которого составила 4,77 МГц, а так же установлена оперативная память, объемом от 16 до 256 Кб. В базовой комплектации компьютер поставлялся без жесткого диска, флоппи-дисковода и монитора. Их нужно было покупать по отдельности. Также, отдельно приходилось покупать и различные платы расширения, включая и графические адаптеры.
На тот момент покупатель мог выбрать один из двух адаптеров – либо Monochrome Display Adapter (MDA) либо Color Graphics Adapter (CGA). В последствии видеоадаптер MDA оказался более популярным, нежели другой представитель – CGA.
Видеоадаптер Monochrome Display Adapter (MDA)
Особенностью первого ускорителя была поддержка монохромных (одноцветных) мониторов. Он мог поддерживать только текстовый режим (80х25 символов) и не поддерживал ни один из графических режимов, так как попросту не умел работать с отдельными пикселями. В качестве ядра видеоадаптера использовался чип Motorola MC6845, а объем видеопамяти составлял всего 4 Кб. Максимальное разрешение, которое мог выдать ускоритель, составляло 720x350 пикселей, или что более правильно для данного случая - 80x25 символов.
Как уже было сказано, MDA работал только в текстовом режиме, принцип работы которого заключался в том, что видеоускоритель просто помещал в определенное место один из 256 символов, каждый из которых мог иметь некоторые определенные атрибуты. К примеру, это мог быть невидимый, подчеркнутый, обычный, жирный, мигающий либо инвертированный символ. Также устройство могло комбинировать атрибуты. Цвет так называемых пикселей-символов зависел от монитора.
В зависимости от типа экрана символы были белого, янтарного либо изумрудного цветов. Кстати, видеоадаптер MDA обладал интересной архитектурной особенностью – кроме видеоядра, плата имела контроллер параллельного порта, отвечающий за работу с принтером.
Видеоадаптер Color Graphics Adapter (CGA)
Видеоускоритель CGA можно назвать своего рода противоположностью ускорителю MDA. Кроме текстового режима работы он мог поддерживать и графический режим, причем как черно-белый, так и цветной. Ядром адаптера был все тот же чип Motorola MC6845. А размер памяти уже был не 4 Кб, а 16 Кб. В цветном режиме максимальное разрешение выходного изображения составляло 320x200 пикселей, а монохромного – 640x200. При этом поддерживалось обращение к отдельному пикселю. Цветовая глубина ускорителя была очень небольшой и составляла 4 бит. Исходя из этого в формировании изображения могло быть использовано только 16 цветов.
Также видеоадаптер CGA мог поддерживать еще и стандартные текстовые режимы: 40x25 и 80x25 символов, в которых не было возможности обращения к отдельному пикселю. Здесь напрашивается вполне логический вопрос: зачем тогда вообще был нужен видеоускоритель MDA, если CGA может поддерживать оба режима и при этом имеет больший функционал? Дело в том, что изначально адаптер MDA был ориентирован на бизнес-потребителей, «разрабатывался» для работы с текстом и работал с нестандартными горизонтальными и вертикальными частотами, что обеспечивало более четкое изображение. А вот адаптер CGA мог работать только на стандартных частотах и поэтому заметно уступал MDA в качестве выводимого текста.
Более того, особых нареканий к стабильности работы MDA не было, в то время как за CGA были замечены некоторые «глюки». К примеру, иногда на экране можно было видеть произвольные короткие горизонтальные линии, известные как «снег». Их появление обуславливалось тем, что в CGA не поддерживалось одновременное чтение и запись в память. Так же есть информация, что цветной графический ускоритель использовал видеопамять не полностью, что негативно сказывалось на быстродействии.
Игра PC-Man (адаптер CGA)
Примечательно, что в компьютере IBM PC можно было использовать одновременно два адаптера. Конечно, эта технология не была прародителем сложных нынешних видеоподсистем SLI и CrossFire. В первую очередь она использовалась для работы двух мониторов, так как в то время у адаптеров было всего по одному разъему для вывода сигнала. А изменилась эта ситуация только лишь в 1996 0году.
Эра IBM PC AT. Видеоадаптер EGA
На смену адаптерам MDA и CGA пришло решение Enhanced Graphics Adapter (EGA). Данное устройство было представлено осенью 1984 года и предназначалось для нового персонального компьютера IBM PC AT.
Видеоадаптер Enhanced Graphics Adapter (EGA)
Новый видеоускоритель стал первым решением в своем роде, с помощью которого на мониторе можно было видеть нормальное цветное изображение. В EGA, так же как и в CGA, была заложена продержка текстового и графического режимов. При этом разрешение достигало 640x350 пикселей с 16 цветами из 64 возможных.
С точки зрения архитектуры, EGA не очень отличался от своих предшественников: в нем использовался контроллер Motorola MC6845, увеличенный до 64 Кб объем памяти и шина ISA для передачи данных. Спустя некоторое время память расширилась до 256 Кб, которая подразделялась на четыре сегмента (четыре цветовых слоя). Процессор заполнял сегменты параллельно, поэтому это значительно отражалось на скорости заполнения кадра в положительную сторону. Кроме того, у адаптера дополнительно присутствовало 16 Кб памяти, которые способствовали расширению графических функций BIOS.
Игра The Catacomb Abyss (EGA)
Адаптер EGA мог поддерживать три текстовых режима. Для первого было характерно разрешение 80x25 символов и 640x350 пикселей (размер каждой ячейки 8x14 пикселей), а для второго – разрешение 40x25 символов и 320x200 пикселей (размер ячеек 8x8 пикселей). Третий режим был не стандартным. Его разрешение составляло 80x43 символов и 640x350 пикселей. При этом использовались ячейки размером 8x8 пикселей. Следует отметить, что графических режимов также было три: 320x200 пикселей, 640x200 пикселей и 640x350 пикселей. Частота развертки равнялась 60 Гц.
Текстовый режим на компьютере IBM PC AT
Конструктивно адаптер EGA не был совместим с адаптерами MDA и CGA, но мог поддерживать работу данных стандартов. К примеру, к EGA можно было подключать MDA-монитор, но в этом случае работал только один режим с разрешением 640x350 пикселей и монохромной графикой.
Интересен тот факт, что в то время на свои графические разработки компания IBM вовсе не регистрировала патенты. Это значило, что на рынке видеоускорителей появлялось множество «клонов» IBM. Сегодня это просто невозможно! Клоны видеоадаптеров имели улучшенные характеристики и в некоторых случаях были лишены глюков в работе, свойственных ускорителям компании IBM. К примеру, некоторые модели-клоны могли работать в режиме с более высоким разрешением – 720x540 пикселей. Выпускали клонов многие компании. Среди них были и такие известные, как ATI Technologies, Paradise (подразделение компании Western Digital) и другие.
Видеоадаптер EGA Paradise
Видеоадаптер MCGA
1987 год стал поистине переломным в судьбе графических систем для настольных компьютеров. Все началось с далеко не самой известной инженерной разработки IBM - Multi Colour Graphics Array (MCGA). Решение было представлено в очень ограниченном количестве ранних моделей компьютера IBM PS/2.
Главной особенностью видеоподсистемы MCGA стал тот факт, что она была интегрирована в материнскую плату – дискретных решений не было вовсе. Что же касается технических характеристик, то размер памяти составлял, как и у EGA, 64 Кб, а вот количество выводимых цветов выросло до 256. При этом общая цветовая палитра, откуда выбирались эти цвета, была значительно расширена и достигла 262 144 оттенков за счет введения 64 уровней яркости для каждого цвета.
В 256-цветном режиме MCGA работал с разрешением 320x200 точек и частотой обновления 70 Гц. Кроме этого адаптер мог поддерживать все режимы CGA и работать в монохромном режиме. При этом разрешение составляло уже 640x480 пикселей, а частота обновления – 60 Гц. Кстати, когда только появился MCGA, большинство игр не поддерживали 256-цветный режим, а работали только в четырехцветном режиме CGA.
Для сохранения совместимости со старыми режимами, а так же возросшего количества отображаемых цветов, в адаптере нового поколения возникла необходимость использования аналогового сигнала. В качестве соединительного интерфейса было принято решение использовать 15-контактный разъем D-Sub, хорошо знакомый, даже нынешнему поколению пользователей. При этом напомним, что все предшественники использовали цифровой интерфейс передачи сигнала и оснащались 9-контактными разъемами.
15-контактный разъем D-Sub
В конечном итоге MCGA так и не получил распространение, как предыдущие решения IBM. Возможно, в большей степени на это повлияла ее политика: компания не предоставляла лицензий на производство ускорителей этого типа другим производителям.
Эра IBM PS/2. Видеоадаптер VGA
В 1987 году в свет вышла еще одна инженерная разработка IBM – Video Graphics Array (VGA). В своем роде это был революционный продукт. Так же как и предшественник MCGA, VGA использовался в новейших на то время персональных компьютерах IBM PS/2.
С точки зрения архитектуры VGA был похож на EGA. В его конструкцию входил графический контроллер, память, секвенсор, контроллер атрибутов, синхронизатор и контроллер ЭЛТ. Графический контроллер использовался в основном для обмена данными между видеопамятью и центральным процессором. Следует отметить, что в адаптерах VGA объем видеопамяти был увеличен уже до 256 Кб (64 Кб у каждого цветового слоя). Секвенсор (сериализатор) использовался для преобразования данных из памяти в поток битов и их передачи контроллеру атрибутов, задача которого заключалась в преобразовании входных данных в цветовые значения. Синхронизатор управлял временными параметрами и переключал цветовые слои. Контроллер ЭЛТ использовался для генерации сигналов синхронизации для дисплея.
Отметим, что все основные элементы стали размещаться на одной микросхеме, благодаря чему удалось значительно уменьшить размеры видеоадаптера. Интересно, что дискретные VGA-карты выпускались только сторонними производителями, а IBM в своих компьютерах адаптеры интегрировала в материнскую плату.
Как и в MCGA, в адаптере VGA использовался аналоговый интерфейс и разъем подключения D-Sub (многие пользователи называют его VGA). Причиной этому стало возросшее количество отображаемых цветов. К примеру, цифровой интерфейс мог передавать RGB-сигналы тремя основными цветами – красным, зеленым и синим. С использованием аналогового интерфейса каждому сигналу можно было присвоить еще и определенный уровень яркости. В итоге адаптер был способен работать с палитрой 262 144 цвета. На то время это можно было считать прорывом в увеличении реалистичности изображения.
Из-за увеличения количества цветов появились и новые графические режимы. Для VGA стандартными были четыре режима:
- 640x480 пикселей, 16 цветов;
- 640x350 пикселей, 16 цветов (обратная совместимость с EGA);
- 320x200 пикселей, 16 цветов;
- 320x200 пикселей, 256 цветов.
Четвертый режим предполагал хранение в памяти до четырех страниц одновременно, размер каждой из которых составлял около 64 Кб. Но в 1991 году программисту Майклу Абрашу удалось организовать работу с памятью более эффективным образом и запустить на адаптере VGA режимы 320x240 и 360x480 пикселей с 256 цветами. Таким образом, VGA стал первым в своем роде адаптером, полноценно работающим в разрешениях с соотношением сторон 4:3 (640x480 и 320х240), которое использовалось во всех мониторах того времени. В более же ранних графических решениях для формирования изображения на экране пиксели приходилось растягивать по вертикали.
Для работы с текстом в VGA использовались различные комбинации из нескольких режимов и видов шрифтов. Разрешение стандартного шрифта у VGA составляло 8x16 точек. Помимо этого поддерживались и режимы с разрешением 8x8 и 8x14 пикселей для совместимости со стандартами, использовавшимися соответственно в CGA и EGA.
Стандарт VGA развивался довольно быстро, так как в его отношении компанией IBM проводилась такая же политика, как и в отношении MDA, CGA и EGA, позволяющая другим производителям выпускать собственные доработанные решения. Поэтому на рынке было доступно большое количество клонов от различных производителей. Впоследствии стандарт VGA стал первым «народным» адаптером, аббревиатура которого используется и в наше время. Например, разрешение 640x480 пикселей называют аббревиатурой VGA.
Видеоадаптер 8514/A
В том же 1987 году компанией IBM был представлен первый «профессиональный» графический адаптер - 8514/A. В отличие от всех выпущенных решений, это устройство не было совместимо ни с одним из своих предшественников. Пользователям предлагалось на выбор два варианта 8514/A с разным размером видеопамяти: 512 Кб либо 1 Мб.
Видеоадаптер 8514/A (сверху) с дочерней платой для размещения памяти (снизу)
Адаптер поддерживал только два режима: 640x480 и 1024x768 пикселей, причем младший представитель работал с 16 цветами, а старший – с 256 цветами. В режиме с высоким разрешением адаптер работал на малой частоте обновления – 43 Гц. Именно такая частота была причиной мерцания изображения на экране. Но, дело было вовсе не в самом ускорителе: возможности адаптера 8514/A позволяли работать и с более высокими частотами регенерации экрана. Просто инженеры компании IBM запрограммировали ускоритель таким образом, чтобы в компьютере можно было использовать более дешевые мониторы, так как на то время стоимость дисплеев, поддерживающих высокое разрешение и высокие частоты обновления, была очень высокой. Тем не менее, у большинства клонов адаптера 8514/A подобные ограничения были сняты.
Главная особенность адаптера 8514/A заключалась в поддержке аппаратного ускорения рисования. Так, видеоадаптер ускорял создание линий и прямоугольников, заливку фигур и поддерживал технологию BitBLT.
Несмотря на свои передовые характеристики, широкого применения оригинальный видеоадаптер от IBM не получил. В Соединенных Штатах его стоимость с памятью 512 Кб составляла 1290 долларов. Пользователи, желавшие приобрести модель с 1 Мб памяти, должны были заплатить 1560 долларов. Но, на слабое распространение адаптера повлияла не только высокая цена, но и его работа только в системах с интерфейсом Micro Channel Architecture (MCA), вместо общепринятой на тот момент шины Intel ISA.
Клон 8514/A – видеоадаптер ATI Mach 32
Негативную ситуацию с распространением 8514/A несколько скрасили сторонние производители. К концу 80-х годов на рынке было доступно множество клонов этого адаптера. В большинстве из них имелась поддержка интерфейса ISA и таких режимов, как 800x600 и 1280x1024 пикселей. Среди видеоадаптеров-клонов опять доминировали решения компаний ATI Technologies и Western Digital. Наиболее популярными из них были адаптеры Mach 8 и Mach 32.
Несмотря на то, что модель 8514/A не стала коммерчески успешным продуктом, ее вклад в развитие аппаратного ускорения компьютерной графики был неоценим. Однако серьезные шаги в этом направлении были сделаны только в начале 90-х годов.
Видеоадаптер XGA
Продолжил развитие стандарта VGA ускоритель Extended Graphics Array (XGA). Адаптер XGA компания IBM представила осенью 1990 года опять же в компьютерах PS/2. Он был установлен в моделях 90 и 90 XP, а также был доступен в виде отдельных комплектующих. По сути XGA был расширением стандарта VGA и являлся своеобразным гибридом адаптера 8514/A.
Выгодным отличием адаптеров XGA стало использование видеопамяти типа VRAM, которая была быстрее памяти DRAM, применявшейся в адаптерах VGA. Объем VRAM составлял 512 Кб. Стоимость модели XGA с 512 Кб памяти составляла на то время 1095 долларов. Доплатив 350 долларов, пользователь мог получить видеокарту с 1 Мб видеопамяти.
В данных видеокартах поддерживался режим 640x480 пикселей с глубиной цвета 16-бит (всего 65 536 оттенков). Также ускоритель поддерживал 256-цветное изображение с разрешением 1024x768 пикселей. А вот промежуточное разрешение 800x600 пикселей не поддерживалось. Кстати, в компьютерной терминологии под разрешением XGAпонимается значение равное 1024x768 точек.
Так как адаптер XGA частично получил функции 8514/A, то он также мог аппаратно ускорять процесс рисования. Кроме того, ускоритель получил поддержку технологии Брезенхэма (алгоритм автоматически определяет точки двумерного растра, которые необходимо закрасить, чтобы получилось близкое приближение линии между двумя точками), заливку прямоугольников, функцию BitBLT. А так же возможность рисования объектов произвольной формы.
Из недостатков XGA можно отметить то, что в адаптере использовалась развертка с чередованием в высоком разрешении, что приводило к низкой частоте регенерации. Из-за этого на мониторе было заметно сильное мерцание изображения.
Через два года, в сентябре 92-ого, появился обновленный вариант XGA – XGA-2. В новом решении каких-либо кардинальных изменений не было, а были лишь некоторые улучшения. Так, минимальный размер памяти был увеличен до 1 Мб, а использование более быстрой памяти VRAM вместе с алгоритмом, отвечающим за аппаратное ускорение процесса рисования, позволило получить значительное повышение производительности в некоторых задачах. Новый видеоускоритель теперь мог работать в режимах 800x600 пикселей и 1024x768 пикселей с 16-битным цветом и высокими частотами обновления. Благодаря этому, наконец, удалось избавиться от сильного мерцания изображения на экране.
С появлением стандарта XGA конкуренты компании IBM не стали создавать клоны этих устройств, а решили выпускать более дешевые видеоускорители, но при этом способные работать в режимах с более высоким разрешением и/или имеющих более богатую цветовую палитру. Именно они и образовали новый класс видеоускорителей, который был назван SVGA.
Видеоадаптер SVGA
Изначально SVGA (Super Video Graphics Array) нельзя было назвать стандартом, так как все устройства сильно отличались друг от друга, и для них не существовало точных спецификаций. Из-за этого разработчики ПО постоянно сталкивались со сложностями программирования. Для нормализации возникшей ситуации в 1989 году ассоциацией производителей Video Electronic Standards Association (VESA) было предложено ввести единый интерфейс для всех адаптеров SVGA. Интерфейс был назван VESA BIOS Extention. Благодаря ему программисты определяли специфическое соответствие адаптеров установленным стандартам и использовали их в дальнейшем. Боле того, для работы с любым адаптером SVGA необходимо было использовать единый драйвер.
Стандартом VESA предусматривалась работа во всех указанных ранее режимах, в том числе с самым высоким на тот момент разрешением 1280x1024 пикселей с 16 миллионами цветов (24-бит кодирование цвета). Примечательно что, несмотря на такие возможности, под разрешением SVGA в компьютерной терминологии подразумевается разрешение равное 800х600 пикселям.
Отличительная особенность решений SVGA заключалась в наличии интегрированного контроллера, предназначенного для более качественной обработки графических элементов новых операционных систем, к примеру, набирающей популярность в то время Microsoft Windows.
Заключение
К началу 90-ых годов разработчиками было сделано столько шагов в улучшении качества двухмерной графики (2D), что какие-либо изменения уже не вызывали сильного удивления у пользователей. Поэтому, в какой-то степени эта технология исчерпала себя. В развитии графики требовались кардинальные изменения. Поэтому, вполне естественно, что инженеры стали делать упор на новое направление – обработку трехмерной графики (3D).
Сперва трехмерные ускорители были выполнены в виде отдельных плат, которые вставлялись в свободные слоты на материнской плате рядом с 2D-видеокартой. Но со временем их микросхемы были перемещены в графические чипы, после чего одна плата получила возможность обрабатывать как двухмерное, так и трехмерное изображение. Но о том, как появлялись и развивались первые 3D-акселераторы, мы расскажем уже в следующем материале.