Як AGP революціонізувала графіку ПК до приходу PCIe

1

Ви натискаєте. Перетягуєте. Відпускаєте.

Відчиняються вікна. Відтворюються фільми. Відеоігри наповнюють екран тривимірними світами, які здаються живими. Це цифрове середовище, яке ми сприймаємо як належне. Нині це здається нормальним. Але так не завжди.

Зрушення почалося 1973 року. Компанія Xerox створила комп’ютер Alto. Це був перший комп’ютер з графічним інтерфейсом користувача. До цього ви вводили команди на чорному екрані. Alto змінив спосіб взаємодії людей із машинами. Він зробив комп’ютери інтуїтивно зрозумілими.

Сьогодні багато на ПК залежить від графіки. Обробка текстів. Електронна пошта. Анімація, розваги. Навіть базові завдання потребують візуальних підказок. Для цього потрібне апаратне забезпечення. Саме відеокарта.

Але відеокарта марна, якщо вона не може швидко обмінюватися даними з іншою системою. Найважливіше спосіб підключення. Тут на сцену виходить Accelerated Graphics Port (AGP).

AGP надала відеокарті виділену смугу пропускання. Це було не просто невелике доопрацювання. Це була фундаментальна зміна у тому, як дані переміщуються всередині комп’ютера. Це збільшило швидкість. Поліпшила якість зображення. Усунув вузьке місце, яке обмежувало продуктивність.

Погляньмо, чому старий підхід не працював і як AGP його виправив.

Вузьке місце шини PCI

Щоб зрозуміти AGP, слід зрозуміти, що було до неї: шину PCI.

PCI розшифровується як Peripheral Component Interconnect (Інтерконект периферійних компонентів). Це був стандарт для підключення додаткових карток до материнської плати. Звукові карти. Мережеві адаптери. Модеми. І, зрештою, відеокарти.

Для найпростіших завдань вона працювала нормально. Але графіка була іншою.

Відеокартам була потрібна величезна кількість даних. Текстура. Буфери кадрів. 3D моделі. Їм потрібно було постійно зчитувати дані із системної пам’яті та записувати їх у власну пам’ять карти.

Шина PCI була загальною магістраллю.

Коли ви запускаєте гру або 3D-програму, відеокарта повинна конкурувати з іншими пристроями за пропускну здатність. Процесор спілкується із жорстким диском. Мережна карта надсилає електронні листи. Звукова картка відтворює аудіо. Усі вони ділять одну шину PCI.

Це викликало затримки. Відеокарті доводилося чекати. Вона не могла отримати необхідні дані у потрібний час. Результат? Ривки. Низька частота кадрів. Рваний процес.

Шина PCI розроблена для периферійних пристроїв загального призначення. Вона не була створена для важкої роботи з 3D-рендерінгу.

«AGP була створена, тому що шина PCI просто не справлялася з вимогами сучасних графіків обсягу даних».

Необхідність виділеної смуги

Інженери зрозуміли, що щось має змінитись.

Їм потрібен був спосіб швидко передавати дані із системної пам’яті у відеокарту. Без пробок. Без очікування.

Рішенням стала AGP.

Accelerated Graphics Port (Прискорений графічний порт) було представлено компанією Intel у 1996 році. Він був розроблений спеціально для графіки. Не як післятеж. Чи не як універсальний слот. А як спеціалізований канал.

AGP працювала на вищій частоті, ніж PCI. Вона використовувала ширшу шину даних. І, що найважливіше, вона дозволяла пряме виконання операцій із пам’яттю (DME – Direct Memory Execution).

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

Це понизило затримки. Збільшило пропускну спроможність.

Вузьке місце шини PCI

Шина Peripheral Component Interconnect (PCI) протягом багатьох років була основою підключення периферійних пристроїв у настільних комп’ютерах. Вона обслуговувала все: від звукових карток до мережних адаптерів. Дані передавалися цим єдиним шляхом у вигляді пакетів. Процесор приймав їх усі та обробляв у черзі. Все досить просто. Але чи це було ефективно? Не завжди.

До середини 90-х інтернет ставав все більш «важким». Програмне забезпечення скидало текстову оболонку. 3D графіка перестала бути нішевим експериментом. Вона ставала центральною частиною досвіду користувача. Windows 95, ранні ігри, інструменти для САПР — це вимагало більше ресурсів від відеокарти.

Шина PCI не враховувала пріоритети. Вона обробляла мережевий пакет так само, як і текстуру високої роздільної здатності. Відеокарта була змушена стояти у черзі. А очікування вбивало продуктивність. Частота кадрів стрибала. Текстури завантажувалися повільно. Система задихалася від завдань, що накопичилися.

Поява AGP

Intel передбачила цей затор. Їй була потрібна виділена смуга для відеокарти, яка обходила б загальне завантаження шини PCI. Результатом став Accelerated Graphics Port (AGP). Представлений у 1996 році він був не просто ще одним слотом. Це була повна архітектурна розбудова.

AGP надав графічному процесору (GPU) власну швидкісну магістраль до процесора та пам’яті. Більше не потрібно було ділитися пропускною здатністю зі звуковою картою чи модемом. Прямий доступ означав швидшу доставку даних. Стало можливим рендеринг у реальному часі. Відеопотік, який раніше був смиканим кошмаром, почав виглядати плавним.

Але справа була не лише у швидкості. Йшлося про пріоритети. Відеокарта тепер могла отримати необхідні ресурси тоді, коли вони їй потрібні. Шину PCI залишили для виконання рутинних завдань. Ієрархія змінилася. Графіка перестала бути другорядним завданням та стала головним пріоритетом.

Чому це мало значення

Цей зсув дозволив комп’ютерам виконувати завдання, з якими раніше справлялися з працею. Відеомонтаж став можливим на споживчому обладнанні. 3D-ігри перемістилися з аркадних залів у вітальні. Інтернет, який раніше був статичним набором сторінок, почав здаватися динамічним.

AGP не просто покращив продуктивність. Він відкрив нову епоху обчислювальної техніки. Еру, у якій важлива візуальна точність. Еру, в якій екран – це не просто вікно, а полотно. Шина PCI не стала застарілою відразу. Але її домінування закінчилося. Смуга була вільна. І трафік потік.

AGP не просто змінила стандарт PCI. Вона перебудувала фундамент. Якщо PCI був загальною магістраллю, AGP став швидкісною смугою. Вона створила прямий виділений зв’язок між відеокартою та процесором. Ніякі інші пристрої неможливо створювати перешкоди. Цей виділений канал дозволяв системі отримувати складні дані, необхідні для рендерингу без очікування в черзі. Результатом стала швидкість. За нею була ефективність.

Як AGP вирішила проблему вузького місця

Intel розробила AGP, щоб усунути затори, властиві PCI. Усунувши вузькі місця, комп’ютер зміг швидше виконувати рендеринг графіки та економніше використовувати системні ресурси. Ось механіка цього вдосконалення.

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

Конвеєризація (pipelining) змінює спосіб обробки пакетів даних. Замість очікування на отримання однієї порції інформації, перш ніж запитувати наступну, відеокарта AGP запитує все необхідне зображення за один раз. Уявіть, що ви замовляєте повноцінний обід відразу, а не просите хліба, чекаєте, потім суп, а потім основну страву. PCI змушував чекати послідовно. AGP оптимізувала потік.

Бічна адресація (sideband addressing) – це те місце, де досягається реальна економія ефективності. У PCI адресна інформація (відправник та одержувач) була вбудована всередину пакета даних. Це було схоже на те, якби поштова адреса була приклеєна до внутрішньої сторони конверта. Поштовій службі доводилося розкривати його, щоб дізнатися, куди він іде. Це споживало час та пропускну спроможність. AGP додала вісім додаткових ліній адресації. Адреса знаходилася на зовнішньому боці. Решта пропускної спроможності залишалася вільною для фактичних даних. Системні ресурси перестали витрачати цикли декодування заголовків.

Проблема PCI: розтрата оперативної пам’яті

У рамках стандарту PCI відеокарта не могла безпосередньо звертатися до пам’яті для певних операцій. Їй доводилося використовувати основну оперативну пам’ять системи як буфер. Це було неефективно. Процесор мав керувати цим обміном даними. Це споживало обчислювальну потужність. Воно займало системну пам’ять, яка б використовуватися додатками. AGP усунула цю залежність. Відеокарта почала виконувати більше власної роботи. Система почала працювати «легше».

Текстурні карти – це незаслужено забуті герої вашого екрану. Вони перетворюють плоскі, нудні полігони на світи, якими можна ходити. Але доставка цих зображень із жорсткого диска на монітор завжди була логістичним кошмаром. AGP не просто прискорив цей шлях; вона повністю змінила правила гри.

Вузьке місце текстурних карт

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

Проблема полягає у зберіганні. Щоразу, коли ви завантажуєте нову текстуру, вона споживає пам’ять. І на старих системах використання пам’яті створює величезне вузьке місце.

Проблема подвійного проходу через PCI

З стандартною відеокартою PCI шлях текстурної карти виснажує. Це двоетапний танець, який витрачає час та пропускну спроможність.

  1. Завантаження в системну оперативну пам’ять (RAM): Текстура починається на жорсткому диску. Спочатку вона завантажується у основну системну пам’ять комп’ютера (RAM). Там вона чекає.
  2. Обробка та передача: Коли відеокарті вона потрібна, процесор (CPU) забирає її з оперативної пам’яті. Процесор обробляє дані, потім відправляє їх назад через шину PCI.
  3. Збереження у фреймбуфер: Тільки тоді текстура нарешті досягає своєї відеопам’яті (VRAM) відеокарти, зокрема фреймбуфера. Фреймбуфер зберігає відрендероване зображення, щоб картка могла постійно оновлювати екран.

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

Пряма лінія AGP

AGP змінила це, дозволивши відеокарті спілкуватися безпосередньо із системною пам’яттю без необхідності участі процесора як посередника при кожному завантаженні текстури.

Замість завантаження текстури в оперативну пам’ять з подальшим її пересиланням на карту, AGP дозволяє відеокарті безпосередньо звертатися до системної пам’яті. Карта може витягувати дані текстури прямо з RAM, коли це необхідно. Жодного вузького місця на процесорі. Жодного подвійного зберігання.

Саме це ми називаємо “покращення пам’яті AGP”. Відеокарта може використовувати частину вашої системної оперативної пам’яті як розширення власної відеопам’яті. Це називається апертурною пам’яттю. Йдеться як про швидкість; це про ефективність. Ви можете завантажувати більші текстури з високою роздільною здатністю, оскільки усувається вузьке місце, пов’язане з переміщенням даних туди-сюди.

Чому це важливо для вас

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

З AGP перехід відбувається більш плавно. Відеокарта безпосередньо забирає те, що їй потрібне.

Справжня магія AGP полягає не лише у швидкості; вона в тому, як AGP “обманює” систему, щоб виконати більше завдань. Дозволяючи операційній системі динамічно виділяти звичайну системну оперативну пам’ять для відеокарти, AGP створює так звану AGP-пам’ять або нелокальну відеопам’ять.

Чому це важливо? Тому що системна оперативна пам’ять значно об’ємніша і часто швидше, ніж виділена VRAM на відеокарті. Зберігання текстурних карток у цьому великому загальному пулі означає, що відеокарті не потрібно зберігати кожне зображення у своїй обмеженій пам’яті. Результат? Ваш комп’ютер може обробляти текстурні карти, які значно перевищують фізичні обмеження вбудованої пам’яті відеокарти.

Трюк з GART

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

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

Відеокарти AGP та стандарти

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

Технічні специфікації

  • Intel: Сторінка технічної інформації Accelerated Graphics Port пропонує обширні відомості про проектування, специфікації та посібники з технічної реалізації для AGP 2.0 та 3.0, включаючи корисний посібник для тих, хто хоче зрозуміти основи.
  • nVidia: Щоб дізнатися подробиці про AGP 8X, ознайомтесь з технічним бюлетенем на сайті nVidia. Він охоплює еволюцію нового стандарту AGP версії 3.0 з докладними специфікаціями.

Ринкове ціноутворення

  • HowStuffWorks Shopper: Ресурс для перевірки поточних цін та наявності відеокарт.

Додаткове читання

Якщо ви хочете зрозуміти ширшу екосистему, в якій працювали ці карти, розгляньте наступні статті:
– Як працює 3D-графіка
– Як працюють відеокарти
– Як працює PCI
– Як працює оперативна пам’ять
– Як працюють мікропроцесори

Важливі посилання

  • Sun Microsystems: Frame Buffer FAQ
  • Короткий посібник з прискореного графічного порту (AGP)
  • AnandTech: У чому різниця між AGP4X та AGP Pro?
  • Tom’s Hardware Guide: Майбутня обіцянка PCI Express для графіки – 10 березня 2004 року.