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



Відеоадаптер

Що таке відеоадаптер і для чого він потрібен? Оскільки максимум інформації про зовнішній  світ більшість з нас отримує  візуально, ніхто не ризикне заперечувати, що відеопідсистема – один з найважливіших  компонентів персонального комп'ютера. Відеопідсистема, в свою чергу, складається з двох основних частин: монітора й відеоадаптера. Створенням зображення на моніторі управляє звичайно аналоговий відеосигнал, формований відеоадаптером.

А як виходить відеосигнал? Комп'ютер формує цифрові дані про  зображення, які з оперативної пам'яті поступають в спеціалізований процесор відеоплати, де обробляються і зберігаються у відеопам'яті Паралельно з накопиченням у відеопам'яті повного цифрового «зліпка» зображення на екрані дані прочитуються цифро-аналоговим перетворювачем (Digital Analog Converter, DAC). Оскільки DAC звичайно (хоч і не завжди) включає власну пам'ять довільного доступу (Random Access Memory, RAM) для зберігання палітри кольорів в 8-розрядних режимах, його ще називають RAMDAC. На останньому етапі DAC перетворює цифрові дані в аналогові і посилає їх на монітор. Ця операція виконується DAC декілька десятків разів за одну секунду; дана характеристика називається частотою оновлення (або регенерації) екрану.

Згідно сучасним ергономічним стандартам, частота оновлення екрану повинна складати не менше 85 Гц, інакше людське око помічає мерехтіння, що негативно впливає на зір. Навіть подібна спрощена схема, що описує механізм роботи універсального відеоадаптера, дозволяє зрозуміти, чим керуються розробники графічних прискорювачів і плат, коли приймають ті чи інші технологічні рішення. Очевидно, що тут, як і в будь-якій обчислювальній системі, є вузькі місця, що обмежують загальну продуктивність. Де вони і як їх намагаються усунути?

По-перше, продуктивність тракту передачі даних між пам'яттю на системній плат і графічним прискорювачем. Ця характеристика залежить в основному від розрядності, тактової частоти і організації роботи шини даних, що використовується для обміну між центральним процесором, розташованим на системній платі комп'ютера, і графічним прискорювачем, встановленим на платі відеоадаптера (втім, іноді графічний процесор інтегрується в системну плату). В даний час шина (а точніше, порт, оскільки до нього можна підключити тільки один пристрій) AGP забезпечує цілком достатню і навіть надмірну для більшості додатків продуктивність.

По-друге, обробка даних, що надходять, графічним прискорювачем. Підвищити швидкість цієї операції можна, вдосконалюючи архітектуру  графічного процесора, наприклад, упровадивши конвеєрну обробку, коли нова команда починає виконуватися ще до завершення виконання попередньої. Виробники збільшують розрядність процесорів і розширюють перелік функцій, підтримуваних на апаратному рівні; підвищують тактові частоти. Всі ці вдосконалення дозволяють значно прискорити заповнення відеопам'яті графічними даними, готовими для відображення на екрані.

І, по-третє, обмін даними в підсистемі «графічний процесор –  відеопам'ять – RAMDAC». Тут також  існує декілька шляхів розвитку.

Один з них – використання спеціальної двохпортової пам'яті, VRAM, до якої можна одночасно звертатися з двох пристроїв: записувати дані з графічного процесора і читати з RAMDAC. Пам'ять VRAM досить складна у виготовленні і, отже, дорожча за інші типи. (Є ще один варіант двохпортової пам'яті, вперше застосований компанією Matrox – Window RAM, WRAM, – що забезпечує дещо більш високу продуктивність при собівартості на 20% нижче.) Оскільки використання двохпортової пам'яті дає відчутний приріст продуктивності лише в режимах з високими дозволами (1600×1200 і вище), цей шлях можна вважати перспективним лише для відеоприскорювачів вищого класу.

Ще один спосіб – збільшити  розрядність шини даних. У більшості  виробників розрядність шини даних  досягла 128 біт, тобто за один раз по такій шині можна передати 16 байт даних. Ще одне, досить очевидне рішення, – підвищити частоту звернення до відеопам'яті. Стандартна для сучасних відеоадаптерів пам'ять SGRAM працює на тактовій частоті 100 Мгц, а у деяких виробників вже використовуються частоти 125 і навіть 133 Мгц. Для чого все це потрібно? Чим швидше підготовлені графічним процесором дані поступають в RAMDAC і перетворяться в аналоговий сигнал, тим більший їх об'єм за одиницю часу буде «конвертований» в зображення, що дозволяє підвищити його реалістичність і деталізацію.

Продуктивність відеоадаптера  характеризується багатьма показниками, серед яких можна виділити декілька груп:

  • DOS реrformance – продуктивність виведення символів або пікселів. Використання локальних шин VLB, PCI і AGP, застосування спеціальної відеопам'яті великої розрядності, тіньової відеопам'яті і BIOS при високопродуктивному CPU забезпечують істотне підвищення продуктивності відеосистеми.
  • GUI (Graphic User Interface) реrformance (2D або Windows реrformance) – продуктивність при виведенні примітивів Windows GUI. Окрім вищенаведених чинників, залежить і від ефективності акселератора (Video chipset).
  • 3D реrfomance – продуктивність тривимірних побудов (швидкість обробки полігонів, з яких збираються тривимірні поверхні).
  • Video Display реrformance – продуктивність виведення «живого» відео, підвищується застосуванням апаратних кодеків (MPEG та ін.). Підвищення продуктивності виражається в підвищенні якості декодування, зменшенні числа пропущених кадрів і зниженні завантаження процесора (актуально для багатозадачних ОС).

Продуктивність конкретного  адаптера залежить від вибраного  дозволу, кількості кольорів, частоти  і режиму розгортки. Вплив параметрів розгортки на продуктивність може й  не очевидний, але пригадаємо, що відеопам'ять сильно завантажена постійним зчитуванням даних для регенерації зображення. Доступ до неї для побудови зображень відбувається у вільний від регенерації час, і чим вище частота сканування, тим менше у відеопам'яті цього вільного часу і тим нижча продуктивність. Сучасні графічні чіпсети в поєднанні із застосуванням спеціалізованої відеопам'яті дозволяють зменшити цей вплив на продуктивність комп'ютера.

 

2. Будова, принцип організації,  функціонування

Між центральним процесором персонального комп'ютера і монітором розташований чіп (чіпсет), який перетворює машинні команди з даними про те, що повинно бути відображене на екрані, в три роздільні сигнали, несучі інформацію про яскравість і кольоровість кожної точки на екрані монітора. На цьому чіпові, в даний час званому відеопроцесором, який по складності і продуктивності мало поступається найпродуктивнішому процесору Pentium, створюються мультимедійні відеоадаптери, що дозволяють утілювати для людини віртуальну реальність.

Відеоадаптер частіше  за все виконується у вигляді окремої печатної плати, яка встановлюється в слот ISA, PCI або AGP, причому останній варіант став для сучасних комп'ютерів PC стандартним. Відмітимо, що в ряді материнських плат чіп відеопроцесора інтегрований безпосередньо на ній, дозволяючи відмовитися від установки окремого відеоадаптера.

На рис. 1 показаний  типовий представник сучасного  відеоадаптера, який може працювати  не тільки з традиційним монітором, але й має новий цифровий інтерфейс  для рідкокристалічного або плазмового монітора, а також роз'єм для з'єднання з побутовою відеоапаратурою. В якості приклад на рис. 3 показано, що можна підключити до відеоадаптера Abit Siluro GeForce 3. Відмітимо, що подібна плата коштує значно дорожче, ніж відеоадаптер для звичайного комп'ютера, призначеного для роботи в офісі.

Рис. 1. Відеоадаптер GeForce 4 Titanium 4600 виробництва компанії Chaintech

Традиційні ж для  архітектури IBM PC відеоадаптери, як це видно на рис. 2, завжди мали лише один роз'єм для підключення монітора (виключення були, але надто рідко). Відповідно до стандарту VGA через цей 15-контактний роз'єм подається аналоговий відеосигнал на монітор з електронно-вакуумною трубкою. В більш давніх відеоадаптерах, які іноді можна зустріти на ринках, використовувався 9-контактний роз'єм, до якого підключалися монітори MDA (Monochrome Display Adapter), Hercules1 (Hercules Graphics Card), CGA (Color Graphics Adapter) і EGA (Enhanced Graphics Adapter).

Рис. 2. Відеоадаптер 3D Prophet 4000XT виробництва компанії Hercules

Поширення рідкокристалічних  і газорозрядних плоских панелей  привело до тому, що в даний час  на відеоадаптерах почав з'являтися другий роз'єм, призначений для роботи з цифровими пристроями виведення  інформації. Внаслідок того, що плоскі монітори по самій суті є цифровими пристроями, на цей роз'єм виводиться інформація про яскравість і колір точки в двійковому форматі (приблизно так, як колись було в моніторах EGA). Таким чином, розробники відмовилися від двох зайвих перетворень відеосигналу - спочатку в відеоадаптері цифровий сигнал перетвориться в аналоговий, а потім в моніторі все робиться навпаки. На жаль, не дивлячись на зручності, які обіцяє новий варіант підключення моніторів, не обійшлося без великої ложки дьогтю - на відеоадаптері і плоскому моніторі можуть бути встановлені роз'єми різних стандартів, що зажадає пошуку перехідника.

Рис. 3. Підключення моніторів і відеоапаратури до відеоадаптера  
Abit Siluro GeForce 3

На відміну від процесорів і системної плати, відеоадаптери, з одного боку, більш універсальні пристрої, оскільки їх можна встановлювати на будь-яку системну плату, в якої є відповідний слот розширення, але, з другого боку, розробники безтрепетно змінюють архітектуру відеоадаптера, вводячи, наприклад, 128-розрядну шину відеопам'яті, і розробляють нові системи команд побудови зображень, для використання яких потрібні вже нові версії програм. Відповідно, кількість типів відеоадаптерів велика, а їх номенклатура щороку практично повністю замінюється. Для прикладу в табл. 1 наведені дані по виробників і типи відеоадаптерів, які в середині 2003 р. продавались в інтернет-магазині Amazon.com (http://www.amazon.com). Через деякий час список буде вже іншим, а самий "просунутий" відеоадаптер, швидше за все, стане "безнадійний застарілим".

Таблиця 1

Відеоадаптери, що продавались  в середині 2003 р. в магазині Amazon.corn

Компанія

Продукція

3Dfx

Voodoo3, Voodoo4

Abit

Geforce2, GeforceS, Geforce4

Aopen

Geforce2, GeforceS, Geforce4, TNT2

Asus

Geforce2, GeforceS, Geforce4

ATI

All In Wonder, Radeon, Xpert, Rage

Creative

Geforce2, Geforce4, TNT2

Hercules

3D Prophet 8500, 7500, 4500, 4000

Matrox

G200, G450, G550


 

Розглянемо функціональну  схему графічного адаптера (рис. 4), яка  з деякими добавками або винятками застосовна практично до всіх адаптерів, вживаних в PC.

Рис. 4. Функціональна схема графічного адаптера

Оскільки адаптер призначений  для підключення монітора, його обов'язковим  елементом буде контроллер ЕПТ (CRT Controller). В задачу цього контроллера входить злагоджене формування сигналів сканування відеопам'яті (адреса і строби читання) і сигналів вертикальної і горизонтальної синхронізації монітора. Контроллер ЕПТ повинен забезпечувати необхідні частоти розгортки і режими сканування відеопам'яті, які залежать від режиму відображення (графічний чи текстовий) і організації відеопам'яті. Опорною частотою для роботи контроллера є DotCLK – частота виведення пікселів у графічних режимах або точок розкладання символів в текстовому режимі. В самих перших моделях адаптерів в якості контроллера ЕПТ застосовувалася мікросхема Motorola 6845, і її регістрова модель підтримується сучасними адаптерами при емуляції адаптерів CGA і MDA. В текстовому режимі цей же вузол формує і апаратний курсор.

Відеопам'ять є спеціальною областю пам'яті, з якої контроллер ЕПТ організовує циклічне читання вмісту для регенерації зображення. Традиційно для відеопам'яті в карті розподілу пам'яті PC була виділена область адрес A0000-BFFFFh, безпосередньо доступна будь-якому процесору х86. Першим адаптерам (MDA, CGA) цієї області було більш, ніж достатньо. Адаптери EGA ці 128 Кбайт використовували вже повністю, а для подальшого збільшення об'єму, потрібного адаптерам VGA і SVGA, довелося застосовувати техніку перемикання банків. Цей вимушений захід ускладнює програмне формування зображення, яке в режимах високого дозволу з великою кількістю кольорів вже не поміщається в один банк. Сучасні графічні адаптери мають нагоду переадресації відеопам'яті в область старших адрес (вище за межу 16 Мбайт), що дозволяє в захищеному режимі процесорів 386+ працювати з суцільними образами екранів. Окрім апаратно-виділеної відеопам'яті, встановлюваної на графічних адаптерах, існує й архітектура уніфікованої пам'яті UMA (Unified Memory Architecture). При такому підході під відеобуфер виділяється область системного ОЗУ, що дозволяє дещо здешевити комп'ютер. Ця «економія на сірниках» приводить до зниження продуктивності як графічної підсистеми, так і комп'ютера в цілому, і перспективи розвитку UMA сумнівні. Діаметрально протилежним підходом, націленим на підвищення продуктивності, є не просто виділення відеопам'яті, а ще і використання в ній мікросхем зі спеціальною архітектурою – VRAM, WRAM, MDRAM, RDRAM, SGRAM.

Необхідний об'єм відеопам'яті визначається бажаним графічним режимом (в текстовому режимі буде потрібно всього декілька кілобайтів, які «погоду не роблять»). Необхідні об'єми для однієї сторінки різних відеорежимів наведені в табл. 2. Якщо взяти подвоєне значення цього об'єму, то багато адаптерів дозволять організувати двохсторінковий режим з перемиканням буферів, що іноді корисне для виведення динамічних зображень.

Таблиця 2

Дозвіл і необхідний об'єм відеопам'яті

Біт/піксель

Кількість кольорів

640×480

800×600

1024×768

1280×1024

4

16

150 Кбайт

234 Кбайт

384 Кбайт

640 Кбайт

8

256

300 Кбайт

469 Кбайт

768 Кбайт

1,25 Мбайт

15

32 768

600 Кбайт

938 Кбайт

1,5 Мбайт

2,5 Мбайт

16

65 536

600 Кбайт

938 Кбайт

1,5 Мбайт

2,5 Мбайт

24

16 777 216

900 Кбайт

1,37 Мбайт

2,25 Мбайт

3,75 Мбайт

32

16 777 216

1,172 Мбайт

1,83 Мбайт

3,0 Мбайт

5,0 Мбайт


 

Трактування даних відеопам'яті  залежить від відеорежиму, що використовується. В текстовому режимі кожному знакомісцю екрану відповідає слово відеопам'яті, розташоване за парною адресою. При цьому молодший байт слова (байт з парною адресою) містить ASCII-код символу, а старший байт – його атрибути. Організація пам'яті в цьому випадку є лінійною: ланцюжок слів відповідає зібраній в ланцюг послідовності рядків символів. В графічному режимі можливі різноманітні варіанти організації відеопам'яті.

У відеорежимах з одним  бітом на піксель (6h, 11h) використовується лінійне відображення (рис. 5, а), але в режимі 6 через архітектурні особливості адаптера CGA рядка пікселів чергують: за базовою адресою відеобуфера розташовуються елементи пам'яті, відповідні ланцюжкам парних рядків пікселів, а непарні рядки відображає область із зміщенням 2000h. В адаптерах HGC в чергуванні беруть участь вже не пари, а четвірки рядків, і їх образи також мають зміщення в 2000h.

Рис. 5. Лінійне відображення пікселів в відеопам'яті:

а – 1 біт на піксель, б - 2 біта на піксель

У відеорежимах 4 і 5 з  двома бітами на піксель використовується лінійне відображення (рис. 5, б) і таке ж чергування рядків. В режимі Fh використовується багатоплощинна модель пам'яті (рис. 6), але з чотирьох шарів використовуються тільки два (0 і 1). Те ж відноситься і до режиму 10h, коли він використовується в двохбітному варіанті.

Рис. 6. Багатошарове відображення пікселів у відеопам'яті

У відеорежимах з чотирма  бітами на піксель використовується чотирьохплощинна модель пам'яті (див. рис. 6) в повному об'ємі.

При 8, 16 (15), 24 і 32 бітах на піксель  в графічних адаптерах застосовується тільки лінійна організація пам'яті, де за кожний піксель відповідає 1-4 суміжні байти. При режимах High Color і True Color вміст цих байтів безпосередньо задає колір через двійкові коди рівнів інтенсивності базисних кольорів RGB. Формати байт (молодший біт – справа) виглядають таким чином:

15 біт/піксель: URRR RRGG GGGB ВВВВ (5-5-5)

16 біт/піксель: RRRR RGGG GGGB ВВВВ (5-6-5)

24 біт/піксель: RRRR RRRR GGGG GGGG ВВВВ ВВВВ (8-8-8)

32 біт/піксель: UUUU UUUU RRRR RRRR GGGG GGGG ВВВВ  ВВВВ (8-8-8)

Тут U позначає біти, що не використовуються для формування кольору, а в ланцюжках біт базисних кольорів (R, G, В) молодший біт розташований справа.

Контроллер атрибутів управляє трактуванням колірної інформації, що зберігається у відеопам'яті. В текстовому режимі він обробляє інформацію з байт атрибутів знакомісць (звідки й пішла його назва), в графічному – з біт поточного пікселя, що виводиться. Контроллер атрибутів дозволяє пов'язати об'єм збереженої колірної інформації з можливостями монітора. Для монохромних (не півтонових) моніторів частина колірної інформації може перетворюватися в такі елементи оформлення, як мигання, підкреслення і інверсія знакомісця. До складу контроллера атрибутів входять регістри палітр, які служать для перетворення кольорів, закодованих бітами відеопам'яті, в реальні кольори на екрані. В адаптері CGA колірна палітра міняється зовсім просто: у вихідний сигнал додається (або не додається) один із базисних кольорів (синій), внаслідок чого управління двома іншими кольорами даватиме по чотири кольори в двох різних палітрах. В адаптері EGA застосовані вже справжні програмовані регістри палітр, що дозволяють кожному з 16 можливих кодів поставити у відповідність один з 64 можливих кольорів, що відображаються монітором EGA. З появою адаптерів, здатних задавати велику (256 і більше) кількість кольорів, на плату графічного адаптера з монітора «переїхали» і цифро-аналогові перетворювачі (ЦАП) сигналів базисних кольорів. Функціонально виявилося доцільним об'єднати ці перетворювачі разом з регістрами палітр, які були невеликим (спочатку) швидкодійним ОЗП (RAM). Ця функціональна збірка в даний час виконується у вигляді мікросхем RAMDAC (Digital-to-Analog Converter – цифро-аналоговий перетворювач). Мікросхеми RAMDAC характеризуються розрядністю перетворювачів, яка може доходить до 8 біт на колір, і граничною частотою вибірки точок (DotCLK), з якою вони здатні працювати. Природно, що чим точнішим повинно бути перетворення, тим важче його виконати швидко. Труднощі і висока вартість досягнення високого дозволу при високій частоті відрядкової розгортки (ці фактори вимагають високої швидкодії RAMDAC) з великою глибиною кольору (потребуючої високої точності перетворення) пов'язані і з цією причиною.

Знакогенератор призначений для формування растрового зображення символів в текстовому режимі екрану. Знакогенератори адаптерів MDA/HGC і CGA програмно недоступні; вони виконані у вигляді мікросхем ПЗП, що ніяк не відображаються в адресному просторі процесора. Ці знакогенератори визначають фіксований набір з 256 відображуваних символів, і з їх «начинкою» доводиться стикатися при «русифікації» адаптерів даного класу. Знакогенератор CGA має формат 8х8 і найпростішу дуже наочну організацію: біт 7 відповідає найлівішій точці рядка розкладання, а біт 0 – правій. Кожному символу відводиться по 8 байт (рядків його розкладання), об'єм ПЗП рівний 2 Кбайт. Знакогенератор MDA/HGC має формат 8×14 (при знакомісці 9×14) з тим же розташуванням біт у рядку, і для нього потрібен ПЗП місткістю 4 Кбайт. Проте в розташуванні рядків трапляються різноманітні варіанти. Це може бути і виділення для кожного символу по 16 суміжних байт ПЗП з ігноруванням двох останніх, і більш хитромудрі варіанти, включаючи чергування рядків. Поширений, наприклад, варіант, коли в першій половині ПЗП розташовані по 8 перших рядків для кожного символу, а їх нижня частина (по чотири використовуваних і чотири фіктивні рядки) розташовується в другій половині. Хоча для даного знакогенератора потрібно всього 4 Кбайт, часто використовують більш поширені мікросхеми 2764 (8Кх8). Іноді в них поміщають два знакогенератори, і адаптер дозволяє вибирати таблицю програмно (звичайно нікому не відомим способом). Для визначеності, при програмуванні можна в обидві половини записати однакові таблиці. Самі таблиці для русифікації можна запозичити, наприклад, із завантажуваних русифікованих фонтів для адаптера EGA.

Знакогенератори адаптерів EGA і VGA розміщуються в другому шарі відеопам'яті і  тому програмно доступні. При ініціалізації  адаптера вони завантажуються з образів, що зберігаються в ПЗП розширення BIOS, встановлених на плати графічних адаптерів. Адаптер EGA дозволяє одночасно зберігати до чотири таблиць по 256 символів, а VGA – до восьми. Активною (використовуваною для відображення) може бути або одна з них, або відразу дві. В останньому випадку набір символів, що одночасно відображаються, розширяється до 512, а одна з двох таблиць, що використовуються для конкретного символу, визначається бітом 3 його байта атрибутів.

Таблиці мають 32-байтну розгортку  кожного символу в форматі 16×16, з якої в EGA використовується матриця 8×14, а в VGA – 9×16. Якщо таблицю знакогенератора (фонти) для EGA завантажити в VGA, символи виглядатимуть дрібнувато, а в лініях, намальованих символами псевдографіки, з'являться розриви. Якщо ж фонти для VGA завантажити в EGA, то символи виглядатимуть усіченими (особливо знизу). Програмна доступність знакогенератора знімає необхідність апаратної русифікації адаптера, але при бажанні можна переписати русифіковані фонти в BIOS графічного адаптера (не забувши виправити контрольну суму в останньому байті ПЗП). Така процедура позбавить від необхідності завантаження резидентного русифікатора, що займає місце в пам'яті. Оскільки знакогенератор розташований в одному з шарів відеопам'яті, після використання більшості графічних режимів його вміст доводиться перезавантажувати, а вбудований драйвер BIOS за умовчанням візьме образ, що зберігався в ПЗП адаптера. Якщо туди підставити потрібний фонт, то додатковий драйвер екрану не буде потрібний.

Графічний контроллер є засобом підвищення продуктивності програмної побудови зображень, точніше їх образів, у відеопам'яті. В перших графічних адаптерах (CGA і HGC) цей блок фактично був відсутній. Він оформився в адаптері EGA, звідки перекочував і в VGA. В цих адаптерах його функції реалізовані апаратними засобами спеціалізованих мікросхем. Розглянемо функції графічного контроллера адаптерів EGA і VGA. Він працює з чотиришаровою моделлю організації відеопам'яті (див. рис. 6). Адаптери EGA і VGA мають чотири 8-бітні регістри-клямки, в яких фіксуються дані з відповідних їм колірних шарів при виконанні будь-якої операції читання відеопам'яті. В подальших операціях запису у формуванні даних для кожного шару можуть брати участь дані від процесора (1 байт) і дані з регістрів-клямок відповідних шарів (рис. 7). Дані від процесора можуть бути заздалегідь циклічно зсунуті. Над даними від процесора (можливо, зсунутими) і з регістрів-клямок можуть виконуватися логічні операції І, АБО і ВИКЛЮЧНЕ АБО. Крім того, замість результатів цих операцій в деякі шари можуть бути записані байти нулів або одиниць. Регістр бітної маски дозволяє побітно управляти джерелом записуваних даних: якщо біт регістра маски має нульове значення, то у відеопам'ять цей біт у всіх шарах буде записаний з регістра-клямки. Дані від процесора (логічно оброблені) поступатимуть тільки для біт з одиничним значенням маски. І нарешті, запис проводитиметься тільки в дозволені шари, правда, функція дозволу шарів відноситься вже до синхронізатора.

Рис. 7. Тракт запису графічного контроллера

При читанні графічний  контроллер може задати номер читаного шару. Можливе і читання з порівнянням  кольорів. В цьому випадку вказується код шуканого кольору (значення біт  для відповідних шарів) і результатом  читання відразу всіх шарів стане байт, в якого одиничне значення приймуть біти пікселів, колір яких співпадає із зразком (рис. 8). В порівнянні кольорів можуть брати участь і не всі шари.

Рис. 8. Зчитування з порівнянням кольору

Всіма функціями графічного контроллера управляють через його регістри. Звичайно, можливе і пряме звернення до окремого колірного шару як по читанню, так і по запису. Але знання можливостей графічного контроллера дозволяє багато часто використовуваних функцій покласти на його апаратні засоби. Проте якщо такий апаратний графічний контроллер ще прийнятний для чотиришарової організації (4 біти на піксель), то для більш глибоких кольорів (8 біт на піксель і більше) він буде вже дуже громіздким. В сучасних адаптерах функції графічного контроллера суттєво розширені в порівнянні з EGA і VGA, виконуються вбудованим мікропроцесором – графічним акселератором.

Синхронізатор, що з'явився з адаптером EGA, дозволяє синхронізувати цикли звертання процесора до відеопам'яті з процесом регенерації зображення. Адаптери мають власні кварцовані генератори синхронізації (іноді й по декілька). Від внутрішнього генератора виробляється частота виведення пікселів DotCLock (DotCLK), щодо якої будуються всі тимчасові послідовності сканування відеопам'яті, формування відеосигналів і синхронізації монітора. В той же час процесор звертається до відеопам'яті асихронно щодо процесу регенерації. В задачу синхронізатора входить узгодження цих асинхронних процесів. В адаптерах SVGA для шини PCI в якості опорної для деяких відеорежимів може використовуватися і частота 33 Мгц прямо з шини, а цикли звертання процесора і так вже прив'язані до цього синхросигналу. Таким чином, задача синхронізатора спрощується. Шина PCI допускає частоти і 30 і 25 Мгц, а при частоті системної шини 83 Мгц частота PCI буде вже 41,5 Мгц. Отже не варто дивуватися, коли зміна процесора (при якій іноді доводиться міняти і системну частоту) приводить до зміни геометрії зображення на екрані монітора. Правда, монітор з хорошим автоматичним підстроюванням генераторів зміни частот синхронізації може і компенсувати.

Внутрішня шина адаптера призначена для високопродуктивного обміну даними між відеопам'яттю, графічним акселератором і зовнішнім інтерфейсом. Типова розрядність каналу даних у цієї шини зараз складає 32 біт, не рідкість адаптери і з 64-бітною шиною. Проте реально розрядність, що використовується, може виявитися меншою, якщо встановлені не всі передбачені мікросхеми відеопам'яті.

Блок зовнішнього інтерфейсу пов'язує адаптер з однією з шин комп'ютера. Якщо раніше для графічних адаптерів використовували шину ISA (8 або 16 біт), то сучасні графічні адаптери використовують в основному високопродуктивні шини. Локальна шина VLB досить швидко зійшла з сцени разом з процесорами класу 486. В даний час для цих цілей використовується канал AGP.

Блок інтерфейсу монітора формує вихідні сигнали відповідного типу (RGB-TTL, RGB-Analog, композитне відео або S-Video). Цей же блок відповідає і за діалог з монітором: в найпростішому випадку – читання біт ідентифікації (для VGA-моніторів), а в складнішому – обмін даними по каналу DDC. Ідентифікація типу підключеного монітора VGA може проводитися і по рівню відеосигналу на виходах червоного або синього кольору: монітор має термінатори (75 Ом) на кожному з аналогових входів. Таке навантаження при підключенні знижує напругу вихідного сигналу. В монохромного монітора використовується тільки канал зеленого кольору – лінії червоного і синього залишаються без навантаження. Цей факт і може зафіксувати інтерфейсний блок і повідомити систему про виявлення монохромного монітора. Правда, буває і конфуз: якщо в кольорового монітора відключити термінатори (деякі великі монітори дозволяють це зробити), то його приймуть за монохромний.

Модуль розширення BIOS (Video BIOS) зберігає код драйверів відеосервісу (INT10h) і таблиці знакогенераторів. Цей модуль з'явився з адаптерами EGA і VGA і забезпечує можливість установки будь-якої карти, не замислюючись про проблеми програмної сумісності. Модуль розширення отримує управління для ініціалізації графічного адаптера майже на самому початку POST (до тестування основної пам'яті), і його заставка з'являється на екрані до заставки системної BIOS. Модуль має початкову адресу C0000h, його розмір залежить від моделі адаптера: кінцева адреса EGA BIOS – C3FFFh, VGA BIOS – C7FFFh. Оскільки для розширення BIOS застосовують 8-розрядні мікросхеми ПЗП, час доступу до яких суттєво перевищує час доступу мікросхем ОЗП, для підвищення продуктивності відеопобудов застосовують тіньову пам'ять (Video BIOS Shadowing) або кешування (Video BIOS Caching). Драйвери для адаптерів MDA і CGA вбудовані в системну BIOS. Природно, що для графічних адаптерів, інтегрованих в системну плату, програмна підтримка також вбудована в системну BIOS.

Відеокомпоненти поки що не стали обов'язковими обладнаннями дисплейного адаптера. Вони можуть включати апаратну підтримку різних кодеків (частіше всього – MPEG-плейєр), засоби підтримки відеооверлеїв, фрейм-граббер, TV-тюнер.

Перші графічні адаптери будувалися на базі контроллера ЕПТ (6845), обрамованого масою мікросхем середнього ступеня інтеграції. В сучасних дисплейних адаптерах застосовуються набори спеціалізованих інтегральних схем високого ступеня інтеграції - графічні і відеочіпсети. Ці мікросхеми разом з вживаними мікросхемами відеопам'яті визначають основні характеристики адаптерів.

В якості відеопам'яті  дисплейних адаптерів звичайно застосовується динамічна пам'ять, що зумовлено  необхідним об'ємом (до декілька мегабайт) і обмеженнями на ціну, швидкодію  й енергоспоживання. Специфіка використання пам'яті в даному вузлі зумовлена необхідністю регулярного послідовного зчитування її даних в RAMDAC (або на елементи вихідної логіки адаптерів MDA, CGA, EGA). Період зчитування, відповідний частоті кадрової розгортки монітора, звичайно дозволяє не застосовувати спеціальних схем регенерації пам'яті. Проте постійна зайнятість відеопам'яті регенерацією зображення суттєво гальмує процес обміну даними з центральним процесором або графічним акселератором. Паузи у видачі даних в процесі регенерації чреваті «снігом» на екрані, очікування зворотного ходу променя (коли відеопам'ять «відпочиває» від регенерації) для обміну даними сильно знижують продуктивність графічної системи і, отже, комп'ютера в цілому.

В найпростіших моделях  графічних адаптерів застосовується стандартна динамічна пам'ять, велику продуктивність мають графічні адаптери з EDO DRAM.

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