Відеопам'ять (video RAM, VRAM) — внутрішня оперативна пам'ять графічного контролера, в якій розміщені дані, що відповідають зображенню на екрані монітора. Відеопам'ять може бути виділена з основної оперативної пам'яті системи, в цьому випадку говорять про розділювану (shared) пам'ять.

У відеопам'яті може міститися як безпосередньо растровий образ зображення (екранний кадр), так і окремі фрагменти як в растровій (текстури), так і у векторній (багатокутники, зокрема трикутник) формах.

Поява та розвитокРедагувати

До кінця 1970-х років не існувало окремого обчислювального блоку, відповідального за розрахунки для виведення на екран. Всі необхідні операції виконувалися безпосередньо центральним процесором і кешувалися в основній пам'яті комп'ютера. Вперше окрему пам'ять для збереження кадрового буфера застосували в 1980 році Ф.Ділл, Д. Лінг і Р.Матік в дослідницькому підрозділі IBM Research. П'ятьма роками пізніше вони отримали патент на винахід (US Patent 4,541,075). У комерційних цілях окрему відеопам'ять вперше застосували в графічному адаптері нового покоління, виготовленого в 1986 році для системи PC/RT, яка задала новий стандарт для графічного дисплея. До створення VRAM двухпортова пам'ять була досить дорогою, що обмежувало більш високу роздільну здатність зображень. Відеопам'ять поліпшило загальну продуктивність кадрового буфера, що дозволило домогтися зниження вартості при високій швидкості і високої роздільної здатності.

Перше поколінняРедагувати

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

Графічний стандарт MDA CGA EGA VGA SVGA XGA
Рік розробки 1981 1981 1984 1987 1989 1990
Типова

конфігурація пам'яті

4 кБ 16 кБ 64-256 кБ 256 кБ 256-1024 кБ 512-2048 кБ

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

Роздільність 4 кольори 16 кольорів 256 кольорів High Color Справжній колір
320 × 200 16 кБ 32 кБ 64 кБ 128 кБ 192 кБ
640 × 480 75 кБ 150 кБ 300 кБ 600 кБ 900 кБ
800 × 600 117 кБ 234 кБ 468 кБ 938 кБ 1406 кБ
1024 × 768 192 кБ 384 кБ 768 кБ 1536 кБ 2304 кБ
1280 × 960 300 кБ 600 кБ 1200 кБ 2400 кБ 3600 кБ
1280 × 1024 320 кБ 640 кБ 1280 кБ 2560 кБ 3840 кБ
1600 × 1200 480 кБ 960 кБ 1920 кБ 3840 кБ 5760 кБ

Графічні прискорювачі WindowsРедагувати

Графічні процесори цієї категорії змогли виконати кілька команд (наприклад, намалювати квадрат) самостійно. Локальна графічна пам’ять, переважно від 1 МБ до 8 МБ, була реалізована за допомогою DRAM, EDO RAM, VRAM або MDRAM . Останні дві - це напівпровідникові технології пам'яті, спеціально розроблені для відеокарт.

3D-прискорювачРедагувати

Перші справжні 3D-прискорювачі з’явились на ринку в середині 1990-х. Перетворення трикутників та відображення текстур були розраховані незалежно від цих карт. Першим представником серії стала Voodoo Graphics з 4 МБ або 6 МБ EDO RAM в 1996 році.

Наприкінці 1999 року GeForce256 від Nvidia з'явився з 32 МБ SGRAM - першою графічною картою в бізнесі кінцевих споживачів з інтегрованим модулем T&L .

Radeon 9700 Pro від ATI із 128 МБ DDR-SDRAM з’явилася в середині 2002 року - перша повністю сумісна з DirectX 9.0 відеокарта.

Поточний станРедагувати

У сучасних системах графічний процесор розміщений на окремій платі, яка підключена до центрального процесора та основної пам'яті через шинну систему (переважно PCI Express або AGP, рідше PCI ). На платі є напівпровідникова пам’ять, спеціально пристосована для графічних операцій, яка безпосередньо доступна для графічного процесора. Нові розробки в режимі реального часу рендеринга і падіння цін в сегменті напівпровідникової пам'яті сприяють зростанню постійної графічної пам'яті. Доступні відеокарти з об'ємом пам'яті GDDR 6-SDRAM до 48 ГБ.

Ще однією можливістю є інтеграція графічного процесора в центральний процесор (тоді він також називається APU ) і використовується в додатках, де продуктивність 3D не є основною (наприклад, у більшості комп’ютерів робочих станцій). Цей дешевий і менш потужний варіант не має власної графічної пам’яті; натомість частина основної пам’яті системи ( спільна пам’ять ) надається для зберігання даних.

Параметри відеопам'ятіРедагувати

Пропускна здатність шини пам'ятіРедагувати

Пропускна здатність шини пам'яті визначає кількість переданих даних в одиницю часу. Вона визначається розрядністю шини і тактовою частотою роботи пам'яті.

Відповідно, чим більше буде розрядність, тим ефективніше буде робота всієї відеосистеми. В сучасних системах розрядність шини коливається від 64 біт до 768 біт. Частота пам'яті сучасних відеокарт перевищує позначку в 1300 МГц.

Пропускна здатність шини пам'яті = тактова частота пам'яті х розрядність шини.

Тип відеопам'ятіРедагувати

В сучасних відкритих використовується тип пам'яті GDDR5, до цього були відповідно GDDR4, GDDR3, GDDR2. Типи мікросхем відеопам'яті дуже схожі з назви типів оперативної пам'яті (DDR2, DDR3), до них лише додалася літера "G" (GDDR5 - Graphics Double Data Rate 5). Але якщо назви схожі, то структура і функціональність істотно відрізняється. Варто розуміти, що оперативну пам'ять типу DDR3 по структурі і функціональним можливостям можна прирівнювати до GDDR3, її скоріше можна поставити в одну нішу з GDDR5  (і то частково) 

Об'єм відеопам'ятіРедагувати

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

ЛатентністьРедагувати

Латентність - це час вибірки даних з пам'яті, чим менше цей параметр, тим краще, тому що не будуть спостерігатися значні затримки при зверненні до пам'яті. У сучасних відеокарт латентність схем пам'яті становить менше 1-2 нс.

 
Модуль графічної пам'яті

Дані, що зберігаються у відеопам’ятіРедагувати

  • Фреймбуфер У цій області пам'яті, яку регулярно зчитує RAMDAC, обчислення для синтезу зображень відбуваються постійно. Розмір буфера кадру залежить від використовуваної роздільної здатності (наприклад, 1024 × 768), використовуваної глибини кольору (наприклад, 16 біт на піксель), режиму згладжування та використовуваної концепції буфера кадру ( наприклад, подвійна буферизація, потрійна буферизація ).
  • z-буфер Тут зберігається значення інформації про глибину для кожного пікселя екрана. Розмір в свою чергу залежить від обраної точності значень; 24 і 32 біти є загальними.
  • Програми вершинних шейдерів та піксельних шейдерів Починаючи з DirectX 8.0, розробникам ігор пропонуються операції, подібні до машинного коду, для деформації об'єктів або для реалізації певних графічних ефектів (наприклад, тіней, відображень). Ці в основному дуже маленькі програми зберігаються безпосередньо в графічній пам'яті.
  • Дані геометрії З появою DirectX трикутник був визначений як стандартний примітив для тривимірного подання. Це означає, що майже кожна сцена, яка може відображатися в графічному режимі, складається з об’єктів ( багатокутників ), що складаються з трикутників. Дані геометрії упорядковують u. a. призначити кутові точки кожному трикутнику і зберегти вектор нормалі для кожної кутової точки. Розмір цієї області пам'яті залежить від складності обчислюваної сцени (в даний час до 500 000 трикутників), тобто чим більше трикутників підлягає обробці, тим більші дані геометрії.
  • Дані текстур З міркувань простору всі текстури, що використовуються в сцені, зазвичай зберігаються стислими в графічній пам'яті; Прикладами алгоритмів стиснення є FXT1 та S3TC . Ця область займає найбільшу частину графічної пам'яті і залежить від багатьох факторів, наприклад, кількості, розміру (до 8192 × 8192 пікселів) та глибини кольору використовуваних текстур.

Вузьке місце системної шиниРедагувати

Старі відеокарти надсилають графічні розрахунки на центральний процесор. Завдяки більш високій роздільній здатності та більш відтворюваним кольорам, потік даних між графічним процесором та центральним процесором з часом зростав, доки його не уповільнила робота системної шини. Ще однією проблемою була використана графічна пам’ять. Це не дозволяє одночасний доступ до читання та запису. RAMDAC повинен зачекати з зчитуванням, поки процесор записується в пам’ять, і навпаки. На сучасних комп’ютерах системна шина є найважливішим компонентом, що визначає продуктивність; це особливо видно в сучасній 3D графіці. Наступний приклад розрахунку повинен це пояснити.

  • Відображення сцени з роздільною здатністю 1280 × 1024 пікселів із 32-бітною глибиною кольору та 50 зображеннями в секунду
1280 × 1024 × 32 біт × 50 1 / с = 2097,152 Мбіт/с

Ці приблизно 2100 Мбіт на секунду враховують лише потік даних, необхідний для виведення монітора. Повна передача даних, яка може відбуватися для синтезу зображень, не сприяє збільшенню вартості. Як наслідок, використання системної шини слід звести до мінімуму.

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

Виділена графічна пам’ятьРедагувати

Багато графічних карт використовують виділену графічну пам’ять (також її називають відеопам’яттю ). Він знаходиться в ексклюзивному модулі пам'яті і фізично відокремлений від основної пам'яті .

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

Незважаючи на багато в чому схожу технологію з чіпами пам'яті DRAM, можна визначити більш швидкий час доступу до пам'яті. Технологія цих мікросхем отримала назву VRAM, внаслідок подальшого розвитку VRAM сьогодні відноситься лише до мікросхем з окремими лініями введення та виведення цієї технології.

ПриміткиРедагувати

ДжерелоРедагувати