вторник, 25 февраля 2014 г.

Эволюция дискретных видеокарт

Не секрет, что видеокарта — едва ли не самый важный компонент любой системы (особенно геймерской). Мы решили проследить за развитием ускорителей графики на протяжении нескольких десятилетий и рассказать вам об этом. В первой части нашего материала речь пойдет о раннем, но в то же время значимом этапе — 80-х годах XX века.
В 70-е годы компьютеры даже не считались роскошью — они банально были недоступны массовому потребителю. Примерно в это же время компанией IBM было принято решение о создании «массового» компьютера. В 1981 году увидел свет первый персональный компьютер IBM PC. Несмотря на то, что прежде известнейшая корпорация предпочитала использовать комплектующие собственного производства, этот десктоп состоял в основном из деталей сторонних производителей. В роли центрального процессора выступил кристалл Intel 8088 с тактовой частотой 4,77 МГц, объем оперативной памяти составлял от 16 до 256 Кбайт. Базовая версия компьютера поставлялась без флоппи-дисководов, жесткого диска и монитора, их необходимо было приобретать отдельно. Кроме этого, отдельно приобретались различные платы расширения, среди которых были и видеоадаптеры.

Начало эры IBM. Видеоадаптеры MDA и CGA

Покупателю предлагались на выбор два видеоадаптера: MDA (Monochrome Display Adapter) и CGA (Color Graphics Adapter). Как показало время, первый акселератор оказался более популярным, нежели второй. Его особенностью была работа с монохромными (одноцветными) мониторами. Он поддерживал исключительно текстовый режим (80 столбцов на 25 строк) и не имел графических режимов. Ядром видеоадаптера служил чип Motorola MC6845, а объем памяти составлял 4 Кбайт. Максимальное рабочее разрешении составляло 720x350 пикселей, или, вернее, 80x25 символов. Тем не менее стоит отметить, что из-за текстового режима MDA не умел работать с отдельными пикселями. Видеоадаптер банально помещал в определенное знакоместо один из 256 символов. Каждый из этих символов мог обладать некоторыми атрибутами. Например, он мог быть невидимым, подчеркнутым, обычным, жирным, инвертированным или мигающим. При этом была возможность комбинировать атрибуты. Цвет символов зависел исключительно от монитора. В зависимости от типа дисплея буквы могли быть белого, изумрудного или янтарного цвета.
Кстати, интересной архитектурной особенностью видеоадаптера MDA являлось то, что сама плата, помимо видеоядра, содержала контроллер параллельного порта, который отвечал за работу с принтером.
Видеоадаптер CGA считался своего рода противоположностью MDA. Помимо работы в текстовом режиме, он также мог функционировать в графическом режиме, причем поддерживалось как черно-белое, так и цветное изображение. В роли ядра адаптера выступал все тот же чип Motorola MC6845, но объем памяти был больше в четыре раза. В режиме работы с цветной графикой максимальное разрешение составляло 320x200 пикселов, с монохромной — 640x200 точек. При этом была возможность обращения к отдельно взятому пикселу. Цветовая глубина адаптера составляла 4 бита. Это позволяло использовать палитру из 16 цветов.
Так же, как и MDA, видеоадаптер CGA поддерживал стандартный текстовый режим. Его разрешение составляло 40x25/80x25 символов, где тоже не было возможности обращения к отдельным пикселам. Может возникнуть вопрос: зачем нужен был видеоадаптер MDA, если CGA поддерживает такие же режимы и к тому же имеет более богатый функционал? Все дело в том, что MDA изначально ориентировался на бизнес-потребителя и «затачивался» под работу с текстом. Поэтому он работал с нестандартными вертикальными и горизонтальными частотами, обеспечивая более четкое изображение символов. CGA же поддерживал только стандартные частоты и заметно проигрывал MDA в качестве выводимого на экран текста.
Работали адаптеры стабильно, однако в случае с CGA известны некоторые баги. Так, временами на экране появлялись рандомные короткие горизонтальные линии, также известные как «снег». Возникали они из-за того, что CGA не поддерживал одновременное чтение и запись в память. Также известно, что цветной графический адаптер не полностью использовал видеопамять.
Очень интересно, что в IBM PC была возможность использования двух адаптеров одновременно. Само собой, эта технология ни в коем случае не была прародителем сложных графических подсистем SLI и CrossFire — она предназначалась для одновременной работы двух мониторов. В ту эпоху адаптеры имели лишь один порт вывода. Забегая вперед, скажем, что ситуация изменилась лишь в 1996 году.

Видеоадаптер EGA

Логическим продолжением MDA и CGA стало тоже решение IBM под названием EGA (Enhanced Graphics Adapter), представленное в сентябре 1984 года для нового персонального компьютера IBM PC/AT. По своей сути новый видеоадаптер стал первым в своем роде решением, способным воспроизводить нормальное цветное изображение. Так же как и CGA, EGA поддерживал текстовый и графический режимы, при этом максимальное разрешение составляло 640x350 пикселов при использовании 16 цветов из 64 возможных. На архитектурном уровне EGA был схож со своими предшественниками: он также использовал видеоконтроллер Motorola MC6845, оснащался увеличенным объемом памяти, равным 64 Кбайт. Для передачи данных применялась шина ISA. Со временем объем памяти был увеличен до внушительных 256 Кбайт. Вся память подразделялась на 4 сегмента (4 цветовых слоя). Процессор умел заполнять сегменты параллельно, что значительно повысило скорость заполнения кадра. Кстати, адаптер дополнительно оснащался 16 Кбайт памяти для расширения графических функций BIOS.
EGA поддерживал три типа текстовых режимов. В первом случае разрешение составляло 80x25 символов и 640x350 пикселов, где каждая ячейка имела размер 8x14 пикселов. Во втором случае разрешение составляло 40x25 символов и 320x200 пикселов с ячейкой 8x8 пикселов. Третий режим не являлся стандартным. Его разрешение равнялось 80x43 символов и 640x350 пикселов, причем использовалась ячейка 8x8 пикселов. Что касается графических режимов, то их также было три: с разрешениями 320x200, 640x200 и 640x350 пикселов. Частота развертки составляла 60 Гц.
Архитектурно адаптер EGA не был полностью совместим с MDA и CGA, однако ограниченно поддерживал работу этих стандартов. Например, к EGA можно было подключить MDA-монитор, но в таком случае поддерживался только один режим работы с разрешением 640x350 пикселов и монохромной графикой.
Занимательно и то, что в то время компания IBM не регистрировала никакие патенты на свои графические разработки. Это означало, что на рынке видеоадаптеров появлялось большое количество «клонов» решений IBM. В наше время такое попросту невозможно! Клоны адаптеров отличались улучшенными характеристиками и порой были избавлены от редких глюков в работе, свойственных адаптерам IBM. К примеру, некоторые клоны были обучены работе в более высоком разрешении 720x540 пикселов. Выпуском клонов занимались многие компании. В их число входили и такие известные производители, как ATI Technologies и подразделение компании Western Digital — Paradise.

Видеоадаптер MCGA

Принято считать, что эра EGA продолжалась вплоть до выпуска адаптера VGA (Video Graphics Array), то есть до 1987 году. Однако в этом году было выпущено еще одно графическое решение — MCGA (Multi Colour Graphics Array). Оно было представлено как видеоадаптер для ранних моделей компьютера IBM PS/2, причем он был встроен в чипсет — дискретных решений MCGA не было выпущено вовсе. Объем его памяти составлял 64 Кбайт, а количество поддерживаемых цветов было увеличено до 262 144 за счет 64 уровней яркости для каждого цвета. MCGA обладал полной поддержкой всех режимов CGA. Вдобавок, адаптер мог работать в монохромном режиме с разрешением 640x480 пикселов и частотой обновления 60 Гц. Кроме того, поддерживался 256-цветной режим с разрешением 320x200 и частотой развертки 70 Гц. 256-цветной режим впоследствии стал очень популярным среди игр. Однако во время появления MCGA многие игры еще не поддерживали такой режим и работали лишь в 4-цветном режиме CGA.
Кстати, именно из-за этого ограничения возникла необходимость использования аналогового сигнала. В качестве разъема MCGA использовал DB-15 семейства D-Sub, в то время как все предшественники использовали цифровой сигнал 9-контактного разъема.
Стандарт MCGA так и не стал таким же распространенным, как предыдущие решения IBM. В первую очередь, это случилось из-за политики самой компании: IBM не предоставляла лицензии на производство адаптеров данного типа сторонним производителям.

Небольшая революция. VGA

Однако в том же 1987 году IBM представила в своем роде революционный продукт на базе стандарта VGA. Так же как и MCGA, адаптеры использовались в новейших на то время компьютерах IBM PS/2. В плане архитектуры VGA схож со своим предшественником EGA. Он состоит из следующих основных подсистем: графического контроллера, памяти, секвенсора, контроллера атрибутов, синхронизатора и контроллера ЭЛТ. Что касается их функционала, то графический контроллер отвечал за обмен данными между центральным процессором и видеопамятью. Между прочим, объем видеопамяти в адаптерах VGA составлял уже 256 Кбайт — по 64 Кбайт на каждый цветовой слой. Секвенсор, или, как его еще называют, сериализатор, преобразует данные из памяти в поток битов, которые впоследствии передаются контроллеру атрибутов. Контроллер атрибутов, в свою очередь, преобразует входные данные в цветовые значения. Синхронизатор управляет временными параметрами адаптера, а также переключает цветовые слои. Ну а контроллер ЭЛТ генерирует сигналы синхронизации для дисплея. Интересно, что основные подсистемы стали располагаться на одной микросхеме. Это позволило уменьшить размеры видеоадаптера. Однако тут стоит отметить, что дискретные VGA-ускорители выпускали лишь сторонние производители. Так, IBM в своих компьютерах встраивала адаптеры в материнскую плату.
Как и в случае с MCGA, видеоадаптер VGA использовал не цифровой, но аналоговый интерфейс. Выбор в пользу D-Sub пал из-за возросшего количества отображаемых цветов. Так, цифровой интерфейс передавал RGB-сигналы управления тремя основными цветами, а с использованием аналогового варианта появилась возможность присвоить каждому сигнал определенный уровень яркости. В результате количество отображаемых цветов возросло до отметки в 262 144. На то время это был большой шаг вперед в плане увеличения реалистичности изображения.
Само собой, из-за увеличения количества отображаемых цветов появились новые графические режимы. Стандартными для VGA являлись режимы: с разрешением 640x480 пикселов и 16 цветами; с разрешением 640x350 и 16 цветами (режим обратной совместимости с EGA); с разрешением 320x200 точек и 16 цветами; с разрешением 320x200 точек и 256 цветами. Последний режим допускал хранение в памяти до 4 страниц одновременно, каждая из которых весила чуть менее 64 Кбайт. В 1991 году программист Майкл Абраш сумел запустить на видеоадаптере VGA режим с разрешением 320x240 и 360x480 пикселов и 256 цветами. При этом использовалась более эффективная организация работы с памятью.
Интересно, что VGA стал первым видеоадаптером, который работал с разрешениями с отношением сторон 4:3 (прежде пикселы растягивалась по вертикали).
Что касается текстовых режимов, то в VGA поддерживались несколько видов шрифтов и режимов, что позволяло использовать различные их комбинации. Стандартный шрифт VGA имеет разрешение 8x16 пикселов. Также поддерживаются шрифты с разрешением 8x14 и 8x8 точек для обратной совместимости с EGA и CGA соответственно.
Стандарт развивался очень быстро. На рынке появилось множество различных клонов видеоадаптеров от сторонних производителей. В отношении VGA компания IBM проводила такую же политику, как и с адаптерами MDA, CGA и EGA, предоставляя другим компаниям лицензию на производство доработанных решений.
В целом VGA стал первым «народным» адаптером, аббревиатуру которого используют и по сей день. А под разрешением VGA подразумевается разрешение 640x480 точек.

Видеоадаптер 8514/A

В 1987 году IBM представила еще один, но уже «профессиональный» видеоадаптер 8514/A. В отличие от других решений, данный ускоритель не был совместим ни с одним из предыдущих решений компании. На выбор пользователю предоставлялись две версии 8514/A с различным объемом видеопамяти: 512 Кбайт или 1 Мбайт. Поддерживались только два разрешения: 640x480 и 1024x768 точек, причем младшая версия адаптера работала с 16 цветами, а старшая поддерживала все 256 цветов. В высоком разрешении адаптер функционировал с малой частотой развертки (43 Гц), что привело к проблеме мерцания изображения. Однако дело было совсем не в ускорителе: возможности 8514/A позволяли работать и с более высокой частотой обновления экрана. Инженеры IBM запрограммировали адаптер таким образом, чтобы использовать в системе более дешевые мониторы, ведь в то время дисплеи с поддержкой высокого разрешения и высокой частоты развертки стоили очень дорого. Тем не менее стоит отметить, что у многочисленных клонов 8514/A данное ограничение было снято.
Важной особенностью 8514/A считалась поддержка аппаратного ускорения рисования. Так, 2D-акселератор ускорял рисование линий, прямоугольников, заливку различных фигур, а также поддерживал функцию BitBLT.
Стоимость IBM 8514/A составляла 1290 долларов США за версию с объемом памяти 512 Кбайт. Для того, чтобы приобрести мегабайтное решение покупателю необходимо было доплатить еще 270 долларов. Однако на низком распространении адаптера сказывалась не столько цена, сколько его работа лишь в системах с шиной MCA (Micro Channel Architecture). Однако к концу 80-х годов появилось большое количество клонов. Многие из них имели поддержку шины ISA, а также дополнительных разрешений (800x600 и даже 1280x1024 точек). Среди видеоадаптеров-близнецов опять выделялись решения компаний Western Digital и ATI. Особенно популярны стали решения Mach 8 и Mach 32.
8514/A никогда не был коммерчески успешным, однако он внес большой вклад в развитие аппаратного ускорения графики, «бум» которого пришелся на 90-е годы.

Развитие VGA. Стандарты XGA и SVGA

Развитием стандарта VGA стали адаптеры SVGA (Super Video Graphics Array) и XGA (Extended Graphics Array). Вторые по списку ускорители впервые были представлены в октябре 1990 года и использовались в компьютерах IBM PS/2. Они устанавливались в Model 90 и 90 XP, но также были доступны в качестве комплектующих. По большому счету, XGA представлял собой расширение стандарта VGA, то есть был своеобразным гибридом 8514/A.
XGA выгодно отличало использование видеопамяти типа VRAM — она была быстрее, чем применявшаяся в VGA DRAM. Ее объем составлял 512 Кбайт. Стоил ускоритель 1095 долларов США. Интересно, что за дополнительную плату в 350 долларов пользователь получал модель с увеличенным до 1 Мбайт объемом видеопамяти. XGA поддерживал разрешение 640x480 точек с 16-битным цветом (всего 65 536 оттенков). Помимо этого, была поддержка 256-цветного изображения с разрешением 1024x768 точек. Интересно, что не поддерживалось промежуточное разрешение 800x600 точек. Поскольку XGA частично перенял функции 8514/A, он также был способен аппаратно ускорять рисование. Графический ускоритель поддерживал алгоритм Брезенхэма (алгоритм, определяющий, какие точки двумерного растра нужно закрасить, чтобы получить близкое приближение прямой линии между двумя заданными точками), заливку прямоугольников, а также операцию BitBLT. Отличительной от 8514/A особенностью стала возможность рисования объектов произвольной формы.
Что касается недостатков XGA, то одним из них являлось то, что адаптер использовал развертку с чередованием в высоком разрешении. Это приводило к тому, что на мониторе было заметно мерцание из-за снижения частоты регенерации.
В сентябре 1992 года был представлен обновленный стандарт XGA с индексом 2. XGA-2 не претерпел никаких кардинальных изменений. Объем памяти был увеличен до 1 Мбайт, причем использовалась еще более быстрая VRAM. Вкупе с движком, отвечающим за аппаратное ускорение рисования, это дало значительную прибавку производительности в некоторых задачах. Видеоадаптер научился работать в высоком разрешении 1024x768 точек с 16-битным цветом и высокой частотой развертки — так была решена проблема мерцающего экрана. Наконец, была добавлена поддержка разрешения 800x600.
Однако с выходом стандарта XGA конкуренты IBM решили не копировать эти устройства, а производить более дешевые видеоадаптеры, но способные функционировать в более высоком разрешении и/или с большим количеством цветов. Эти адаптеры и образовали новый класс устройств под названием SVGA.
Изначально SVGA не являлся стандартом — уж больно различны были все устройства, поскольку для них не существовало четких спецификаций. Само собой, такое положение дел привело к сложности программирования. В 1989 году ассоциация производителей VESA (Video Electronic Standards Association) предложила ввести единый программный интерфейс для всех видеоадаптеров SVGA. Этот интерфейс получил название VESA BIOS Extention. С его помощью программисты могли определять специфические соответствия и использовать их в дальнейшем. При этом для работы с любым SVGA-устройством использовался единый драйвер. Стандарт VESA предусматривал использование всех разрешений, включая самое высокое 1280x1024 точек с 16777216 оттенками (24-разрядное кодирование цвета). Отличительной чертой решений SVGA стал встроенный акселератор, появление которого было связано с необходимостью качественной обработки графической составляющей новых ОС. Например, только набирающей в то время обороты Microsoft Windows.

Вместо заключения

Время шло, и качеством двухмерной графики уже было не удивить. В какой-то степени она себя исчерпала. Вполне естественно, что инженеры начали делать упор на обработку трехмерного изображения. Изначально 3D-ускорители представляли собой отдельные платы, вставляемые в свободные разъемы на материнской плате. Однако со временем микросхемы 3D-ускорителя перекочевали в графический чип, и одна плата отвечала за ускорение как двухмерной, так и трехмерной графики.
Но что-то мы ускорились. О том, как развивалась индустрия 3D-ускорителей в 1990-е годы, мы расскажем в следующий раз. Не пропустите!
Время шло, и качеством двухмерной графики уже было не удивить. В какой-то степени она себя исчерпала. Вполне естественно, что инженеры начали делать упор на обработку трехмерного изображения. Изначально 3D-ускорители представляли собой отдельные платы, вставляемые в свободные разъемы на материнской плате. Однако со временем микросхемы 3D-ускорителя перекочевали в графический чип, и одна плата отвечала за ускорение как двухмерной, так и трехмерной графики.
В прошлой части цикла материалов, посвященных развитию дискретных видеокарт, мы поговорили о графических 2D-ускорителях, которые только-только начинали свой путь. 1990-е можно смело назвать эрой 3D-видеокарт. Именно в этот период времени происходило становление и развитие тех компаний, которые по сей день задают темп всей отрасли. Впрочем, обо все по порядку.

Переход к 3D. S3 ViRGE

Развитие трехмерной графики и ее аппаратного ускорения существенно перекроили весь рынок видеокарт. IBM больше не являлась ведущим производителем. Так, на первый план вышли устройства сторонних разработчиков. Многие из них, кстати, прежде занимались копированием адаптеров IBM.
Принято считать, что одним из первопроходцев среди 3D-ускорителей для массового рынка стала видеокарта компании S3 под названием ViRGE (Virtual Reality Graphics Engine), выпущенная в 1995 году. В этом же году была представлена консоль Sony PlayStation, поэтому рынок персональных компьютеров, можно сказать, уже был в ожидании устройств, которые позволили бы ускорять трехмерную графику в реальном времени. S3 выпускала ViRGE именно для этой задачи. В сравнении с сегодняшними видеокартами характеристики S3 ViRGE могут лишь вызвать улыбку. Частота графического процессора составляла всего-навсего 66 МГц. Шина памяти — 64-бит, объем — 8 Мбайт. В качестве интерфейса использовался PCI.
Несмотря на то, что S3 ViRGE был выпущен как 3D-ускоритель, лучше всего он работал в режиме 2D. С задачами обработки трехмерного изображения он справлялся значительно хуже. Например, его производительность сильно проседала при применении билинейной фильтрации. Из-за своей скорости S3 ViRGE даже получил среди пользователей прозвище «деселератора» (от англ. decelerator — тормоз). Тем не менее видеокарта отлично справлялась с 2D-контентом. Например, с обработкой графического интерфейса Windows. А для комфортной игры многие пользователи использовали связку S3 ViRGE и вышедшую несколько позже 3Dfx Voodoo Graphics.
Стоит отметить, что, несмотря на все свои недостатки, она стала довольно популярной видеокартой. На фоне других устройств ее выгодно отличала цена. Кстати, в продаже появлялись не только референсные видеокарты. Например, производством ViRGE занимались известные и по сей день компании ASUS и AOpen.

ATI Rage

Годом позже канадская компания ATI представила собственную разработку — 3D-акселератор Rage. В основе первого поколения этой видеокарты лежал чип Mach64, который был заточен под ускорение двухмерной графики. Для использования в Rage он был немного доработан, а именно обзавелся поддержкой 3D и функцией ускорения видео формата MPEG-1.
Однако в истории оставило след второе поколение устройств ATI — Rage II. В его основе лежало все то же ядро Mach64, но значительно переработанное. Чип работал с различными типами памяти: EDO, SDRAM и SGRAM. Ее объем мог составлять 2, 4 или 8 Мбайт. В случае использования памяти типа SGRAM ее частота составляла 83 МГц, в то время как графическое ядро функционировало на частоте 60 МГц. В целом оптимизация архитектуры графического процессора позволила повысить производительность второго поколения видеокарт Rage примерно на 20% в двухмерном режиме в сравнении с первым поколением. Rage II поддерживал библиотеки Direct3D и OpenGL. Также была добавлена поддержка формата MPEG-2 и некоторых полезных функций для рендеринга: фильтрации текстур, альфа-смешения и некоторых других возможностей. Интересно, что на видеокартах Rage II также располагался специальный чип ImpacTV для оцифровки ТВ-сигнала. Помимо использования в IBM-совместимых компьютерах, она использовалась в некоторых компьютерах Apple Macintosh, а именно в моделях G3 и Power Mac 6500.
Сама линейка видеокарт Rage II была представлена тремя моделями: IIC, II+, II+DVD. Различались они частотой процессора и памяти, а также ее типом. Производительность каждой из моделей разнилась, но даже 2-мегабайтная версия Rage II в среднем была на 20% производительнее ViRGE при обработке трехмерного изображения. Тем не менее продукты ATI уступали в объеме продаж адаптерам S3. Более того, у видеокарт Rage II были проблемы с драйверами для ОС Windows. Как видите, распространенное мнение о нестабильности драйверов ATI (а теперь и AMD) берет свое начало в 90-х годах.

Voodoo Graphics — первая ласточка 3Dfx

А в 1996 году свет увидела легендарная видеокарта Voodoo Graphics (или Voodoo1) от компании 3Dfx. В то время фирма являлась самой молодой на рынке графических ускорителей. Она была основана только в 1994 году тремя выходцами из компании Silicon Graphics. На первых порах 3Dfx занималась созданием чипов для игровых автоматов. Первым таким устройством стал симулятор бейсбола ICE Home Run Derby, а затем появились и другие игровые решения, среди которых были San Francisco Rush и 3D Hockey. Чипы 3Dfx обеспечивали великолепную на то время графику — разработки компании заинтересовали даже производителей приставок.
Изначально в планах 3Dfx не значился выход на рынок персональных компьютеров. Однако в 1996 году цены на производительную память типа EDO сильно упали. Это позволило 3Dfx создать высокопроизводительное решение с умеренной ценой. Так, была выпущена видеокарта Voodoo Graphics. К выпуску видеокарты приложила руку также компания Diamond Multimedia, которая обеспечивала 3Dfx своими производственными мощностями. Графический процессор и память Voodoo Graphics работали на частоте 50 МГц, объем памяти типа EDO составлял 4 Мбайт. Интерфейс памяти был 64-битным. Интересно, что Voodoo обладала отдельным текстурным модулем. Такая архитектура позволила видеокарте работать быстро и показывать картинку очень высокого качества.
Недостатком Voodoo являлось то, что видеокарта работала исключительно с трехмерным контентом. Для обработки 2D в системе требовалось наличие еще одного ускорителя. Поэтому в середине 90-х годов была особенно распространена связка из видеокарт Voodoo и ViRGE. Первая имела потрясающую производительность в играх и иных приложениях, связанных с обработкой трехмерной картинки, вторая — в программах с двухмерным изображением.
Похожие на Voodoo 3D-ускорители в то время выпускали компании PowerVR и Rendition, но они значительно уступали продукту 3Dfx как в качестве отображаемой картинки, так и в скорости. Поэтому конкуренцию Voodoo составляли уже упомянутые Rage и ViRGE.
Вместе с Voodoo компания 3Dfx представила программный интерфейс Glide — альтернативу другим API в лице Direct3D и OpenGL. Glide основывался на библиотеке OpenGL. По своей сути, он был урезанной версией OpenGL. Данный стандарт содержал огромное количество различных функций, Инженеры 3Dfx собрали в Glide только самое необходимое для визуализации трехмерных игр в реальном времени, причем все функции их библиотеки в полной мере поддерживались видеокартами Voodoo, что значительно облегчало программирование. В то же время это накладывало определенные ограничения на разработчиков: к примеру, максимальная глубина цвета в приложениях составляла лишь 16 бит.
Сотрудничество 3Dfx с разработчиками игр привело к тому, что видеокарты Voodoo доминировали на рынке игровых продуктов для персональных компьютеров. Так, под работу с Voodoo были заточены игры серии Tomb Raider от Eidos.
Еще больше упрочил лидирующие позиции Voodoo выпуск драйвера MiniGL. Он предназначался исключительно для аппаратного ускорения новейшей игры Quake.

Voodoo Rush

В августе 1997 года 3Dfx представила еще одну разработку — Voodoo Rush. В общем и целом, она представляла собой видеокарту Voodoo Graphics, имеющую, помимо 3D-процессора, и 2D-ускоритель. В качестве чипа, отвечающего за обработку двухмерной графики, использовались решения от Alliance Semiconductor и Macronix. Voodoo Rush имела такие же характеристики, как и его предшественник, однако на деле производительность была заметно ниже. Прежде всего, это было обусловлено тем, что оба чипа использовали общую память и «конфликтовали» при обращении к ней. Также принцип работы устройства заключался в том, что обращение к основному процессору происходило через «двухмерный» чип.
Если говорить о конкретных цифрах, то производительность Voodoo Rush в среднем была на 10% ниже, чем у Voodoo Graphics, причем в отдельных случаях провалы в скорости были еще более значительны. Второе поколение видеокарт 3Dfx не снискало коммерческого успеха и в течение года была убрано с прилавков магазинов. А компания сосредоточилась на выпуске видеокарт, ускоряющих исключительно трехмерный контент.

Ответ NVIDIA. RIVA 128

Сегодня трудно представить рынок видеокарт без компании NVIDIA. Но в середине 90-х годов она только начинала набирать свои обороты. Ее восхождение началось с выпущенной все в том же 1997 году видеокарты RIVA 128 (Real-time Interactive Video and Animation accelerator).
Самая компания была основана в 1993 году, но в первые годы ее устройства не снискали никакого успеха. Так, выпущенный в 1995 году чип NVIDIA NV1 использовал иную технологию рендеринга, основанную на квадратичном маппинге текстур. Такой тип рендеринга был несовместим с библиотекой Direct3D, и чип NV1 так и остался непопулярным среди пользователей. RIVA 128 стала первым успешным продуктом NVIDIA.
RIVA 128 во многом была полной противоположностью NV1. Она была заточена под работу с Direct3D и стандартом OpenGL. Сам графический процессор RIVA 128 изготавливался по (!) 350-нм технологическим нормам и содержал 3,5 миллиона транзисторов. Его частота составляла 100 МГц. Видеокарта использовала память SGRAM, объем которой составлял 4 Мбайт, а частота — 100 МГц. Ширина шины памяти составляла 128 бит. В отличие от видеокарты Voodoo Graphics, RIVA 128 работала не только через интерфейс PCI, но и новейший на то время порт AGP 1x. Главным качественным отличием RIVA 128 являлось то, что видеокарта сочетала в себе функции как 2D-, так и 3D-ускорителя.
3D-ускоритель использовал прогрессивную разделяемую память. Это обеспечило поддержку высоких разрешений (800x600, 960x720 точек) в трехмерном режиме. Для сравнения: видеокарта Voodoo в режиме 3D работала с максимальным разрешением 640x480 пикселов. В плане производительности и качества изображения RIVA 128 немного уступала Voodoo, но и цена устройства NVIDIA была ниже. Кстати, благодаря низкой стоимости и одновременной поддержке 2D и 3D многие OEM-производители делали выбор в пользу решения NVIDIA.
В начале 1998 года NVIDIA выпустила небольшую модификацию видеокарты с индексом ZX. RIVA 128ZX поддерживала интерфейс AGP 2x, а объем ее видеопамяти составлял 8 Мбайт вместо прежних 4. Плюс ко всему, чип RAMDAC работал на частоте 250 МГц, в то время как у RIVA 128 частота RAMDAC составляла 206 МГц.
Недостатки RIVA 128 заключались скорее в программной составляющей. Во-первых, видеокарта изначально не поддерживала библиотеку OpenGL. Забегая вперед, скажем, что будущие продукты NVIDIA стали работать с OpenGL наилучшим образом. Во-вторых, дела RIVA 128 в играх были подпорчены тем, что многие игровые приложения использовали библиотеку 3Dfx Glide. А ее официальной поддержкой обладали лишь видеокарты Voodoo. Также чип RIVA 128 не умел аппаратно ускорять движок Unreal Engine.
Однако RIVA 128 являлась на то время единственным прямым конкурентом Voodoo. Соперничество NVIDIA и 3Dfx в сегменте производительных видеокарт только началось.

3Dfx: Voodoo2, Banshee, Voodoo3

В феврале 1998 года на рынок был выведен новый графический ускоритель Voodoo2, который стал логическим продолжением адаптера Voodoo Graphics. После провала Voodoo Rush в 3Dfx решили остаться верными собственной философии. Поэтому чип Voodoo2, как и Voodoo Graphics, работал только с трехмерным изображением. Был добавлен еще один отдельный текстурный модуль, что значительно увеличило производительность видеокарты. Особенно это было заметно в играх Quake II и Unreal. В остальном Voodoo2 не преподнес никаких сюрпризов, хотя его заявленные характеристики были более чем впечатляющие. Частота чипа составляла 90-100 МГц, в качестве памяти использовалась EDO DRAM. Voodoo2 выпускалась в двух версиях: с 8 и 12 Мбайт «мозгов». На практике объем памяти несильно сказывался на производительности — оба устройства были очень быстры. Каждый из чипов имел 64-разрядную шину памяти. Максимальное разрешение в режиме 3D было увеличено до 800x600 точек. Поддерживалась трилинейная фильтрация. Что касается интерфейса, то Voodoo2 использовал уже уходящий в прошлое PCI.
Вместе с Voodoo2 компания 3Dfx представила нам знакомую и эффективную по сей день технологию SLI (Scan-Line Interleave). SLI, как и в настоящее время, обеспечивала одновременную работу двух графических ускорителей Voodoo2 в системе. Ускорители распределяли всю нагрузку по обработке изображения между собой: одна карта обрабатывала верхнюю часть картинки, другая — нижнюю. Это позволило увеличить максимальное разрешение в 3D-режиме до 1024x768 точек. Само собой, теоретически вырастала и производительность всей системы. На практике же дела обстояли не так хорошо. Во-первых, учитывая 3D-ориентированность видеокарт Voodoo2, в системе необходимо было обеспечить стабильную работу сразу трех видеоадаптеров. Элементарно не все материнские платы имели столько свободных портов. Во-вторых, проблемы возникали на программном уровне: далеко не все приложения корректно работали при использовании SLI. По этим причинам SLI не получил в то время должного распространения. Однако уже в двухтысячных годах под крылом компании NVIDIA технология раскрыла весь свой потенциал.
К концу 1998 года 3Dfx выпустила еще одну видеокарту — Voodoo Banshee. Адаптер стал логическим продолжением Voodoo Rush. На этот раз устройство получилось намного удачнее. Voodoo Banshee представляла из себя видеокарту Voodoo2, в которой вместо одного текстурного модуля был добавлен чип, отвечающий за обработку 2D-изображения. Из-за отсутствия второго текстурного модуля Banshee проигрывал в производительности Voodoo2 в тех трехмерных сценах, где использовались несколько текстур на один полигон. Но в сценах, где это не требовалось, Banshee показывал схожую с Voodoo2 производительность за счет чуть более высокой тактовой частоты процессора. Что касается 2D-ускорителя, то он отлично управлялся со своими задачи и по производительности мало в чем уступал решениям от ATI, NVIDIA и Matrox.
Banshee стал не последним продуктом 3Dfx в 90-х годах. В 1999 году свет увидело третье поколение видеокарт Voodoo. Нужно отметить, что Voodoo2 все еще обеспечивал приемлемый уровень производительности в играх и других приложениях, поэтому 3Dfx оставили второе поколение видеокарты в продаже, снизив на него цены. Voodoo3 по своей архитектуре больше напоминал решения Rush и Banshee, потому как совмещал 2D и 3D-ускорители на одной плате. Графический процессор Voodoo3 изготавливался по 250-нм нормам, частота ядра и памяти составляла 143 МГц. Объем «мозгов» составлял 32 Мбайт, причем использовались чипы типа SGRAM. Видеокарта поддерживала лишь 16-битный цвет, хотя к моменту запуска Voodoo3 уже было выпущено несколько игр, работающих в 32-битном режиме. Максимальное разрешение в режиме 3D составляло 1600x1200 пикселов, а видео можно было воспроизводить в разрешении вплоть до 2046x1536 при частоте развертки 75 Гц. В качестве интерфейса использовались порты PCI или AGP 2x. Как и предшественники, Voodoo3 поддерживал режим SLI — всего в систему можно было установить до четырех видеоадаптеров для совместной работы!
Интересно, что в третьем поколении видеокарт Voodoo произошла своеобразная дифференциация: существовало три версии Voodoo3 с индексами 2000, 3000 и 3500. Различались они частотой ядра, памяти и блока RAMDAC. Так, Voodoo3 2000 функционировал на частоте 143 МГц (ядро и память) и 300 МГц (RAMDAC). Модель с индексом 3000 имела частоты 166 МГц и 350 МГц для ядра/памяти и RAMDAC. Частоты топовой версии Voodoo3 3500 составляли 183 МГц и 350 МГц соответственно.
К сожалению, видеокарта Voodoo3 стала последним успешным решением 3Dfx. После этого эпоха компании начала стремительно приближаться к своему завершению.

NVIDIA: RIVA TNT, TNT2

Что касается компании NVIDIA, то после успешного запуска RIVA 128 они ничуть не думали снижать обороты. На выход Voodoo2 NVIDIA подготовила достойный ответ в лице Riva TNT. Новый чип, имеющий кодовое название NV4, был изготовлен по 350-нм технологическому процессу, содержал 7 миллионов транзисторов, а его частота составила 90 МГц. Изначально NVIDIA планировала установить частоту на отметке 110 МГц, но из-за большого нагрева тестовых образцов было решено немного опустить эту планку. В качестве чипов памяти использовались модули SDRAM, их суммарный объем составлял 16 Мбайт. Частота памяти равнялась 110 МГц, а ширина шины памяти — 128 бит. В сравнении с Voodoo2, RIVA TNT поддерживала больше функций: например, 32-битный цвет и текстуры с разрешением 1024x1024 точек. Также видеокарта обзавелась поддержкой интересной технологии Twin-Texel, которая позволяла накладывать две текстуры на один пиксел за такт в режиме мультитекстурирования. Благодаря Twin-Texel скорость заполнения выросла примерно на 40%. Также RIVA TNT поддерживала три типа фильтрации: билинейную, трилинейную и анизотропную.
Несмотря на выдающиеся характеристики, RIVA TNT оказалась чуть медленнее, чем Voodoo2. Более того, популярность устройства NVIDIA также была ниже. Ситуация во многом повторяла таковую с RIVA 128. Большинство игр работали посредством библиотеки Glide, а ее официально поддерживали лишь видеокарты Voodoo. Однако в других приложениях RIVA TNT совсем чуть-чуть уступала Voodoo2, а благодаря поддержке 32-битного цвета порой выигрывала у нее в качестве изображения.
На рынке также появилась менее производительная версия RIVA TNT под названием Vanta. По характеристикам она, естественно, уступала RIVA TNT: были снижены частоты ядра и памяти, а также урезана до 64 бит шина памяти (использовались дефектные чипы, которые не могли стабильно работать на более высоких скоростях). Это позволило NVIDIA занять нишу менее производительных продуктов. В пользу Vanta выбор делали производители OEM-компьютеров.
Еще одним интересным нововведением стало то, что NVIDIA начала выпускать собственные драйверы Detonator для линейки RIVA TNT. В то время видеокарты «зеленых» отлично работали в связке с системами Intel, однако не могли проявить себя с лучшей стороны в системах AMD (в отличие от адаптеров Voodoo). Драйверы Detonator включали в себя определенные оптимизации, которые позволили поднять производительность RIVA TNT в системах AMD на 30% в игре Quake II. Да и в целом драйверы повысили скорость видеокарт NVIDIA в различных OpenGL- и DirectX-приложениях. Также Detonator решал вопрос совместимости RIVA TNT с различными материнскими платами.
В 1999 году NVIDIA выпустила видеокарту TNT2. Инженеры «зеленых» не преследовали цель сделать абсолютно новое устройство. TNT2 был своего рода ремейком RIVA TNT, работой над ошибками. Так, чип NV5 изготавливался уже в соответствии с 250-нм технологическими нормами, что позволило поднять его частоту до 150 МГц. Был доработан блок рендеринга и поднята частота RAMDAC до 300 МГц, что обеспечило работу видеокарты в сверхвысоких разрешениях. Также добавилась поддержка интерфейса AGP 4x. В остальном TNT2 была схожа со своим предшественником. Объем SDRAM составлял до 32 Мбайт, использовалась 128-битная шина памяти. Видеокарта поддерживала 32-битный цвет, а также текстуры с разрешением 2048x2048.
Всего на рынок было выведено четыре модификации TNT2. Одна из них являлась стандартной, вторая — топовой (с приставкой Ultra), третья и четвертая — урезанные (Vanta и M64). TNT2 Ultra отличалась от стандартной версии лишь повышенными частотами. Так, скорость работы ядра и памяти у нее составляли 150 МГц и 183 МГц против 125 МГц и 150 МГц у TNT2.
Что касается версий Vanta и M64, то так же, как и в предыдущем поколении видеокарт TNT, у этих модификаций была урезана шина памяти до 64 бит, но и снижены частоты ядра и памяти. Различия между ними заключается в том, что Vanta — еще более упрощенный вариант видеокарты с более низкими частотами. Опять же, эти устройства стали крайне популярны в OEM-сегменте.
В целом видеокарта TNT2 стала самым успешным продуктом NVIDIA на то время. Да, в 1999 году большую роль все еще играла библиотека Glide, за счет чего Voodoo3 еще удерживала лидирующие позиции. Однако становилось очевидным то, что продукты NVIDIA проигрывают в производительности решениям 3Dfx лишь самую малость, предлагая при этом более богатую функциональность.

ATI Rage 128, Matrox G200, S3 Savage

Пока 3Dfx и NVIDIA боролись за лидирующие позиции, несколько компаний тихо создавали и выпускали свои графические решения, пытаясь противостоять топовым устройствам.
В 1999 году ATI выпустила видеокарту Rage 128, которая должна была стать конкурентом RIVA TNT. Чип изготавливался по 350-нм техпроцессу и имел 128-битную шину памяти. Частоты ядра и памяти составляли 103 МГц, RAMDAC — 250 МГц. Объем памяти составлял до 32 Мбайт. Видеокарта имела очень богатую функциональность. Поддерживалась однопроходная трилинейная фильтрация и аппаратное ускорение DVD-видео. Rage 128, как и RIVA TNT, поддерживал 32-битный цветовой режим. Более того, он успешно конкурировал с видеокартой NVIDIA в этом режиме. Также Rage 128 обладала поддержкой технологии Twin Cache Architecture. Она объединяла кэш-память пикселов и текстур для увеличения полосы пропускания. Тем не менее, видеокарту ATI в худшую сторону отличало качество изображения.
Годом ранее канадская компания Matrox также представила свой 3D-ускоритель G200. В первой половине 90-х годов Matrox являлась одним из лидеров по производству 2D-ускорителей, однако затем отстала от своих новоиспеченных конкурентов. В архитектуре G200 использовалось множество интересных технологий. Так, одной из них являлась SRA (Symmetric Rendering Architecture). Она обеспечивала чтение и запись графических данных в системную память, что обеспечивало очень высокую скорость работы. Также видеокарта поддерживала технологию VCQ (Vibrant Color Quality). Ее суть заключалась в том, что при визуализации использовался 32-битный цвет вне зависимости от глубины цвета окончательного изображения. Например, даже если конечная картинка является 16-битной, все операции все равно проводятся с использованием 32-битного цвета, и лишь в конце палитра сжимается. Считается, что G200 выдавала самую качественную картинку среди всех графических ускорителей того времени. Для высокой производительности в двухмерном режиме использовалась архитектура шины памяти под названием DualBus. Она предусматривала использование двух 64-битных шин и двух командных конвейеров. G200 использовала шину AGP и память типа SGRAM, объем которой составлял 8 или 16 Мбайт. Поддерживались очень высокие разрешения. Например, в режиме 3D G200 мог функционировать с разрешением 1280x1024 точек и 32-битным цветом. Производительность видеокарты находилась на высоком уровне: G200 лишь немного уступала лидерам в лице RIVA TNT и Voodoo2.
Пожалуй, единственной проблемой Matrox G200 являлось ПО. Для запуска многих популярных игр видеокарта использовала специальный OpenGL-to-Direct3D драйвер, который значительно снижал производительность адаптера. Несмотря на обещания программистов Matrox, проблема была решена лишь в следующем поколении видеокарт G400, вышедшем в 2000 году.
Однако серия G200 успела пережить небольшой апгрейд. Графический процессор перевели на новый 250-нм техпроцесс, что позволило снизить тепловыделение и энергопотребление. Обновленные видеокарты получили название G200A. Также появилась версия G200A с повышенными частотами, получившая название G250.
Наконец, выйти на рынок производительных 3D-ускорителей пыталась и компания S3 Graphics. Хоть она и явилась «первопроходцем» данного сегмента, но всегда оставалась в тени других производителей. В 1998 году на конференции E3 была анонсирована видеокарта Savage3D. По сути, этот 3D-ускоритель являлся первым созданным с нуля устройством S3, начиная с адаптера ViRGE. Среди возможностей Savage3D выделялись однопроходная трилинейная фильтрация, поддержка алгоритма компрессии текстур S3TC, видео стандарта MPEG-2 и наличие ТВ-выхода. По своим характеристикам видеокарта уступала топовым решениям. Savage3D использовала 64-битную шину, объем памяти составлял всего 8 Мбайт. Ядро функционировало на частоте 125 МГц. Ускоритель поддерживал прогрессивный интерфейс AGP 2x, а в режиме 2D работала с разрешением 1600x1200 пикселов с частотой обновления экрана 85 Гц. Со столь скромными характеристиками глупо было ожидать от видеокарты высокой производительности. На практике она уступала даже Voodoo Banshee. Однако Savage3D все-таки нашла свою нишу в сегменте бюджетных решений. А в 1999 году S3 выпустила Savage4.
Чип Savage4 производился по 250-нм техпроцессу и работал на прежней частоте 125 МГц. Объем памяти составлял до 32 Мбайт, причем использовалась память типа SDRAM. «Мозги» функционировали со скоростью 125 МГц или 140 МГц. К сожалению, шина памяти так и осталась 64-битной. В Savage4 появилась поддержка однопроходного мультитекстурирования и интерфейса AGP 4x. Как и прежде, видеокарта поддерживала однопроходную трилинейную фильтрацию и технологию сжатия текстур S3TC. В отличие от Savage3D, Savage4 не обладала ТВ-декодером — его место занял контроллер DVI. Зато в видеокарте присутствовал DVD-декодер.
По производительности Savage4 опять осталась далеко позади лидеров. Ее скорость была примерно в четыре раза ниже, чем у TNT2 и Voodoo3.

Вместо заключения

1990-е породили большое количество компаний, производящих дискретные видеокарты. Однако с ростом темпа развития 3D-технологий многим из них пришлось предпринять невероятные усилия, чтобы хотя бы просто удержаться в «седле»: кто-то полностью осел в бюджетном сегменте, кто-то попросту сгинул, а кто-то, наоборот, на фоне осечек конкурентов стал сильнее. Начало третьего тысячелетия оказалось для ряда производителей судьбоносным. Но об этом мы поговорим в следующий раз.

Комментариев нет:

Отправить комментарий