Хроника 2D-видеоадаптеров

    aufmacher_6_grafikkarten_ab_70_euro-e1471556323312.jpg

    Скоро трудно представить себе домашний компьютер без видеокарты — конечно, он без нее опустится, но будет представлять из себя шумящий черный ящик. Но если мы отхлынемся на 40 лет назад, в 70ые годы, то такой проблемы не было — по причине избитого отсутствия отдельных видеокарт для ПК, их роль выполняли центральные процессоры. 

    Все переворотила компания IBM, представившая в 1981 году компьютер IBM PC. Он работал на процессоре Intel 8088 с частотой до 5 МГц, мера оперативной памяти мог составлять до 256 КБ, но самое главное — он поддерживал платы расширения, и одними из подобных плат и были видеокарты.

    Каменный век: видеоадаптеры MDA и CGA



    Всего было презентовано две видеокарты — MDA (Monochrome Display Adapter) и CGA (Color Graphics Adapter). Как легко догадаться, первая умела работать только с текстом, вторая же владела цветной режим. Оба они строились на чипе Motorola 6845, но первый адаптер имел 4 КБ памяти, а второй — 16. Поддерживаемая частота развертки находилась 50 Гц. 

    MDA работал очень хитро — для отображения каждого знака использовалась матрица 9х14 пикселов, при этом сам символ имел размеры 7х11 — другое отводилось для отступов. При этом максимально можно было вывести 80 столбиков и 25 строк, что в теории давало разрешение 720х350. Все-таки на практике это было не совсем так — видеоадаптер не умел адресовать отдельные пикселы, он лишь только умел поместить в каждое из знакомест по 9х14 пикселов один из 256 знаков. Да, примитивно, но IBM PC разрабатывался все же для бизнес-пользователей, так что возможности работы с текстом им полностью брало.

    color_graphics_adapter_3.jpg

    CGA же мало отличалась по своим возможностям от видеочипов в приставках: она могла вручать до 16 цветов, а максимальное разрешение было 640х200 пикселов. Все-таки в цвете она могла работать с разрешением вдвое меньше, всего 320х200, да и то, исключительно с 4 цветами за раз. А вот в текстовом режиме разрешение могло быть и максимальным, но все же в результате с текстом CGA работал хуже MDA из-за того, что последний умел подвизаться с нестандартной вертикальной и горизонтальной частотой развертки, поэтому зачастую контент на нем выглядел четче. Увы — это не единственная проблема сего видеоадаптера: он не поддерживал одновременное чтение и запись в видеопамять, из-за чего на экране временами дозволительно было наблюдать «снег»: когда микропроцессор записывал данные в память в то время, когда ее пытался прочесть видеопроцессор — на экране выводились ненамеренные пиксели. В итоге продажи CGA были невелики, но самое главное — настроение пути было дано, дальше — только развитие цветных видеокарт.

    В лад, у IBM PC были интересная возможность — он мог работать с двумя CGA одновременно и выводить лик сразу на 2 монитора. Да, до SLI и CrossFire далеко, но для 1981 года это было крайне здорово.

    Все еще каменный век: видеоадаптер EGA



    ibm_ega.jpg

    Поняв, что рынок видеокарт для ПК пуст, IBM не застопорилась на достигнутом и стала развивать видеокарты дальше. И ожидаемой эволюцией встал EGA (Enhanced Graphics Adapter) в 1984 году — заглавие очень точно указывает на то, что по сути это был усовершенствованный CGA: тут было столько же памяти, 16 КБ, а видеочип был назад совместим с Motorola 6845. Поддерживаемая частота развертки была уже обыкновенные нам 60 Гц. При максимальном разрешении в 640х350 можно было строить умозаключение 16 из 64 цветов — зато в разрешении 320х200 дозволено было выводить или все 64, или 16 цветов, которые были в CGA. Как и MDA и CGA, видео-карточка использовала шину ISA — спасибо IBM за совместимость. Однако для EGA были сделаны отдельные доработки — так, была удвоена разрядность данных, что повлекло за собой дублирование пропускной способности, так что в итоге скорость передачи данных составила аж 8 МБ/с — большие цифры по меркам 1984 года.

    Бронзовый век — видеоадаптер VGA



    В 1987 г наконец-то появляется первый относительно современный видеоадаптер — VGA (Video Graphics Array). Наиболее основное нововведение — это переход от цифрового интерфейса для передачи данных (какой позволял передавать всего 2 бита на цвет) к аналоговому (до 262144 расцветок). С одной стороны, это выглядит как шаг назад, с другой — хороший задел на будущность: одноименный разъем был актуальным порядка 15 лет до прихода DVI: простонар самые простые VGA-мониторы могли выдавать картинку в разрешении 800х600, что по тем денькам было очень здорово.

    Видеоадаптер имел 256 КБ памяти, и в наибольшем разрешении 640х480 мог выдавать 16 цветов. К слову — это главный видеоадаптер, который работал с квадратными пикселами: раньше они были выужены по вертикали. Так что в итоге именно VGA заставил производителей делать мониторы с балансом сторон 4:3 (так как 640 к 480 и есть 4 к 3). Также благодаря нового аналогового разъема цвета в палитре была 18-битными в обмен 6-битных: это позволяло реализовать такие эффекты как ночь, плохую погоду и сияния одной палитрой.

    Compaq_VGA_109360-001-640.jpg

    Разумеется, не была забыта совместимость — так, VGA умел заниматься в 640х350, а также умел работать и в текстовых режимах с «дозволением» 80х25 символов — как MDA.

    В те времена IBM не лицензировала свои видеоадаптеры, за что ей большое благодарю — и разъем, и сам видеоадаптер VGA стали клонировать другие компании, что в итоге ввергло к быстрому развитию стандарта — до сих пор на многих материнских платах и старых ноутбуках употреблять этот разъем, а разрешение 640х480 зачастую называют VGA.

    Все еще медно-бронзовый век: видеоадаптеры XGA и SVGA



    После выхода VGA все стало понятно, что этот ост будет жить долго, поэтому вышедший в 1990 году XGA (eXtended Graphics Array) был только лишь развитием VGA. Из основных изменений — XGA-видеоадаптеры теперь комплектовались не DRAM-память, а VRAM — прапрадедушкой GDDR, какая была существенно быстрее DRAM (из которой потом выросла обыкновенная на DDR-память). Объем мог составлять или 512 КБ в версии за 1095 долларов, или 1 МБ в версии за 1445 баксов (чтобы было понятнее — с учетом инфляции за такие деньги скоро можно собрать Triple-SLI из 1080 Ti). 

    XGA поддерживал два режима — или 640х480 и 64к расцветок, или 1024х768 и 256 цветов. Забавно, но разрешение 800х600 он не удерживал. Также исчезла поддержка текстового режима — в 1990 году он был уже не необходим. Основной упор был сделан на ускорение отрисовки: так, поддерживался алгоритм Брезенхэма (какой определял, какие точки двумерного растра нужно замалевать, чтобы получить близкое приближение прямой линии между 2 заданными точками), функцию BitBlT (которая выполняет передачу битовых устройств данных о цвете, соответствующих прямоугольнику пикселей из заданного исходного контекста гаджеты в целевой контекст устройства), а также заливку прямоугольников и рисование предметов произвольной формы.

    Основным недостатком XGA было то, что видеоадаптер использовал развертку с чередованием в возвышенном разрешении. Это приводило к тому, что на мониторе было заметно мерцание благодаря снижения частоты регенерации.

    В 1992 году IBM выпустила стандарт XGA-2, что в принципе ничего нового не привнес: теперь 1 МБ памяти был по умолчанию, VRAM начала еще быстрее. Наконец-то добавили разрешение 800х600, а в 1024х768 не грех было работать с полным 16-битным цветом. 

    cl5402.jpg

    То, что IBM разрешала употреблять свои стандарты всем, кто захочет, сыграло с ними злую шуточку: после выхода VGA конкуренты поняли, что больше следовать канонам IBM резона нет, и стали делать свои видеоадаптеры кто во что горазд. В итоге это привело к этому, что появилась целая куча несовместимых друг с другом видеоадаптеров, и, конец — они временами даже нормально с VGA не работали! Понимая, что так дальше работать имелось нельзя, в 1989 году ассоциация производителей VESA (Video Electronic Standards Association) завела единый программный интерфейс для всех видеоадаптеров SVGA, который заметано было назвать VESA BIOS Extentions (VBE). Суть этого интерфейса содержалась в том, что в Video BIOS теперь прописывалось, с какими параметрами (разрешения, тона, способы адресации, развёртка) мог работать конкретный видеоадаптер, и дозволительно было их менять для согласования адаптера с конкретным монитором.

    К тексту — стандарт VESA предусматривал разрешения вплоть до 1280х1024 с 16 миллионами цветков (и это в 1989 году!) — мониторы с такими параметрами появились более чем 10 лет спустя. Также новый стандарт подразумевал использование интегрированного акселератора, который был нужен для обработки GUI операционных систем — к примеру, для раскручивающейся тогда Windows.

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