Видеопамять

24.08.2021

Видеопамять также является частью современных видеокарт. Подробнее см. в статье «Видеокарта».

Видеопамять — это внутренняя оперативная память, отведённая для хранения данных, которые используются для формирования изображения на экране монитора.

Видеопамять относится к названиям англ. video memory, video Random-Access Memory (video RAM, VRAM — оперативная видеопамять, видео ОЗУ, видео RAM), video buffer — видеобуфер, refresh RAM — память регенерации, display memory — память дисплея, graphics memory, video storage, а также к названиям различных типов памяти. Термин «VRAM» иногда означает технологию двухпортовой DRAM, использовавшуюся в 1980-х годах.

Описание

В видеопамяти располагаются данные, отсылаемые затем на экран как изображение. При работе в текстовом режиме в видеопамяти находятся коды и атрибуты символов, в графическом режиме — битовая карта. Часть видеопамяти, используемая под изображение для вывода на экран называется буфером (кадра) изображения (frame buffer). В текстовом режиме изображение состоит из символьной матрицы и область видеопамяти под него называется видеостраницей (video page). В обычном представлении процессор записывает данные в буфер изображения, после чего его считывает видеоконтроллер. Характеристиками видеопамяти являются её объём (memory size (МБайт, ГБайт)), тип (memory type), разрядность шины памяти (memory interface width, memory bus width (бит)), и тактовая частота (frequency, memory clock speed (МГц, ГГц)). Пропускная способность (memory bandwidth (Гбайт/с)) вычисляется произведением разрядности шины на тактовую частоту.

GDDR5 имеет несколько обозначений частоты: опорная, реальная и эффективная. На опорной частоте (core clock) работают транзисторы в чипах памяти. Реальная — частота шины (I/O bus clock) на которой работают буферы чипов памяти и буферы контроллера памяти, она в два раза больше опорной. Эффективная — по технологии DDR скорость передачи данных в два раза больше частоты шины. Пропускная способность определяется по формуле (частота x разрядность / 8) x множитель, где 8 переводит биты в байты, множитель 2 для GDDR3, 4 для GDDR5. Скорость памяти (memory speed) также обозначают в битах в секунду (Gbps, Гбит/с) показывая скорость одной линии (пина) в чипе. Например, на видеокарте 8 чипов памяти, в одном чипе GDDR5 32 линии на 8 Gbps каждая, тогда 8x32x8 даст общую пропускную способность в 2048 Гбит/с или 256 ГБайт/с.

Видеопамять используется для временного хранения, помимо непосредственно буфера изображения, и другие: текстуры, шейдеры, полигональные сетки, вершинные буферы, Z-буфер (удалённость элементов изображения в 3D-графике), и тому подобные данные графической подсистемы (за исключением, по большей части данных Video BIOS, внутренней памяти графического процессора и т. п.) и коды. При этом в видеопамяти может содержаться как непосредственно растровый образ изображения (экранный кадр), так и отдельные фрагменты как в растровой (текстуры), так и в векторной (многоугольники, в частности треугольники) формах. Программы для мониторинга, например RivaTuner и MSI AfterBurner, могут показывать объём используемой видеопамяти, Intel VTune отслеживает использование GPU пропускной способности памяти на чтение и запись. Программы-просмотрщики (VRAM Viewer) позволяют определять точное местоположение, просматривать и сохранять графические элементы из видеопамяти, например в эмуляторах.

Чтобы уменьшить объём используемой VRAM, разработчики приложений могут выбрать как текстуры хранятся в VRAM. Кроме 32-битного описания пиксела в RGBA8, применяются 16- (RGB5_A1, RGBA4) и 8- битные (RGBA2) описания или сжатия (например, для S3TC есть аппаратная поддержка). Урезанные форматы файлов ухудшают качество, а при сжатии появляются артефакты. Спрайты плотно упаковываются в текстурный атлас (задача об упаковке в контейнеры). Несколько текстур представляется как одна текстура с палитрой. При использовании ресурсоёмких настроек или ошибках в играх иногда возникает ошибка «ran out of video memory». DirectDraw позволял разработчикам приложений прямой доступ к VRAM.

Процессор осуществляет запись по необходимости, а монитор обращается к ней непрерывно. При обновлении буфера в моменты, когда предыдущее изображение отрисовано на дисплее не до конца или при использовании видеопамяти больше чем физически доступно, появляется артефакт разрыва изображения (tearing, stuttering). Для более равномерного обновления буфера используют вертикальную синхронизацию.

Технологии

Унифицированная архитектура памяти en:Unified Memory Architecture (UMA) использует часть оперативной памяти как видеопамять. Под этим названием в разное время появлялись решения разных разработчиков. В технологии AGP-текстурирования графический процессор мог обращаться, помимо собственной памяти видеокарты, к файлам в оперативной памяти. В решениях Intel для встроенной графики объём видеопамяти выделяется динамически (Intel Dynamic video memory technology, DVMT) до половины системной памяти или меньше, а UEFI позволяет настраивать максимальный размер видеопамяти и апертуру. В решениях Nvidia и Apple графическая и системная память используют общее адресное пространство. В 2004 году ATI и Nvidia использовали HyperMemory и TurboCache для удешевления видеокарт.

Технологии Microsoft DirectStorage API и RTX IO позволяют загружать данные из NVMe SSD напрямую в VRAM без использования CPU и системной памяти.

В технологии объединения карт Nvidia SLI объём VRAM не удваивался, так как данные дублировались между VRAM двух карт. В начале, карта с большим объёмом подстраивалась под карту с меньшим и избыток объёма не использовался. С 100.xx версии драйверов в SLI объединялись только карты с совпадающим объёмом памяти.

Разгон

Разгон VRAM возможен через изменение параметров в BIOS видеокарты или используя специальные утилиты настройки видеокарты. Некоторые производители разрабатывают такие утилиты для собственных видеокарт, предоставляя возможность как ручного, так и автоматического разгона основанного на алгоритмах разработчика. Настройки VRAM позволяют кастомизировать тактовые частоты памяти и напряжения, а также тайминги для уменьшения задержек. В кастомизированных режимах работы ей требуется адекватный контроль и отвод тепла. В некоторых чипах GDDR встроены датчики температуры для защитных механизмов (downclocking). Micron для GDDR5, GDDR5X и GDDR6 указывает maximum junction temperature в 100°С.

История

В 1970-х в видеопамяти располагались данные текстового режима. После удешевления чипов памяти стало возможным хранить в видеопамяти графику в пикселях. В 80-90-х объём размещаемой на графических адаптерах VRAM быстро рос.

В 1981 году MDA имел 4 КБ VRAM и CGA — 16 КБ, Intel iSBX 275 в 1983 — 32 КБ, ATI Graphics Solution Rev 3 в 1986 — 64 КБ, VGA в 1986—256 КБ, NV1 в 1995 — 2 МБ, RIVA 128 в 1997 — 4 МБ, RIVA TNT в 1998 — 16 МБ, GeForce 256 в 1999 — 32 МБ. К концу 2000-х объём достиг 2 ГБ. В 2000 видеокарты в основном содержали 64 МБ (Radeon 7500 — 128 МБ), 2001—256 МБ, 2005—512 (GeForce 6600), 2007—1024 МБ (GeForce 8600 GT), 2008—2048 МБ (Radeon HD 4870). К 2015 объём достиг 8 ГБ. В 2011 — 3072 МБ (GeForce GT 440), 2012 — 4096 МБ (GeForce GTX 670), 2013 — 6144 МБ (GeForce GTX Titan), 2014 — 8192 МБ (Radeon R9 290X). Хотя в 2015 году вышла топовая модель видеокарты с 12 ГБ VRAM (GeForce Titan X), в 2018 — 24 ГБ (Titan RTX) и 32ГБ (Titan V CEO), к 2020 году в большинстве выпускаемых видеокарт предлагалось 2-8 ГБ VRAM.

В профессиональных вариантах видеокарт обычно добавляется больший объём видеопамяти. В 1980-х у IBM Professional Graphics Controller было 320 КБ из 40 чипов DRAM по 64 КБ. В 2020 у Quadro RTX 8000 было 48 ГБ, а с объединением карт через NVLink расширялось до 96 ГБ.

Типы видеопамяти: FPM DRAM (1990), VRAM, WRAM (1995), EDO DRAM (1995), SDRAM, MDRAM, SGRAM, DDR2 SDRAM, RDRAM, DRAM, CDRAM, Burst EDO, 3D RAM, Embedded RAM, FeRAM, DRDRAM, DDR SDRAM (DDR), ESDRAM, FCRAM, MRAM, GDDR (2000), GDDR2 (2003), GDDR3 (2004), GDDR4 (2006), GDDR5 (2008), GDDR6 (2017), HBM (2013), HBM2 (2016). Типы VRAM, WRAM — двухпортовая DRAM (двухпортовое видео-ОЗУ) позволяющая одновременно выполнять запись и чтение данных.

Для совместимости с 32-битными ОС объём VRAM, напрямую доступной CPU через PCI, был ограничен 256 Мбайтами. В 2008 году в стандарт PCI Express 3.0 была добавлена технология Resizable BAR, которая обеспечивает доступ ко всему объёму видеопамяти. В AMD технология называлась Smart Access Memory (SAM).

При изготовлении видеокарт уже достаточно давно используется память GDDR3. На смену ей пришла GDDR4, которая имеет более высокую пропускную способность, чем GDDR3; однако GDDR4 не получила широкого распространения вследствие плохого соотношения «Цена-производительность» и ограниченно использовалась лишь в некоторых видеокартах верхнего ценового сегмента (например Radeon X1950XTX, HD 2900 XT, HD3870). Далее появилась память GDDR5, которая по состоянию на 2012 год является наиболее массовой, GDDR3 используется в бюджетном сегменте. В 2018 году в топовых видеокартах устанавливается память типа HBM и HBM2, GDDR5X и GDDR6. По статистике Steam в 2018 году 2GB VRAM было у 32 % их игроков, 4GB — 19 % и 1GB — 17 %. В системных требованиях к играм часто указывают необходимый объём VRAM для разных уровней настроек.

Объём памяти большего количества современных видеокарт варьируется от 256 МБ (например, AMD Radeon HD 4350) до 48 ГБ (например, NVIDIA Quadro RTX 8000). Поскольку доступ к видеопамяти GPU и другими электронным компонентами должен обеспечивать желаемую высокую производительность всей графической подсистемы в целом, используются специализированные высокоскоростные типы памяти, такие, как SGRAM, двухпортовые (англ. dual-port) VRAM, WRAM, другие. Приблизительно с 2003 года видеопамять, как правило, базировалась на основе DDR технологии памяти SDRAM, с удвоенной эффективной частотой (передача данных синхронизируется не только по нарастающему фронту тактового сигнала, но и ниспадающему). И в дальнейшем DDR2, GDDR3, GDDR4, GDDR5 и на момент 2016 года GDDR5X. С выходом серии высокопроизводительных видеокарт AMD Fury совместно с уже устоявшейся на рынке памятью GDDR начала использоваться память нового типа HBM, предлагая значительно большую пропускную способность и упрощение самой платы видеокарты, за счёт отсутствия необходимости разводки и распайки чипов памяти. Пиковая скорость передачи данных (пропускная способность) памяти современных видеокарт достигает 480 ГБ/с для типа памяти GDDR5X (например, у NVIDIA TITAN X Pascal) и 672 ГБ/с для типа памяти GDDR6 (например, у TITAN RTX).

Устройство

Видеопамять располагается на видеоадаптере или выделяется как часть от оперативной памяти. Как правило, чипы оперативной памяти современной видеокарты припаяны прямо к текстолиту печатной платы, в отличие от съёмных модулей системной памяти, которые вставляются в стандартизированные разъёмы ранних видеоадаптеров.

  • Отдельная видеокарта с собственной памятью. Данные копируются через шину PCI Express

  • Отдельная видеокарта с общей памятью en:Heterogeneous System Architecture. Через PCI Express передаются указатели делая возможным zero-copy.

  • Интегрированной видеокарте выделяется системная память

  • Интегрированная видеокарта с общей памятью (HSA)

Шина данных

Видеопамять отличается от «обычной» системной ОЗУ более жёсткими требованиями к ширине шины. Графическая шина данных — это магистраль, связывающая графический процессор и память видеокарт.

Полоса пропускания шина данных видеопамяти бывает:

  • 32-битной.
  • 64-битной.
  • 128-битной.
  • 192-битной. (нестандартная шина памяти)
  • 256-битной.
  • 320-битной. (нестандартная шина памяти)
  • 384-битной. (нестандартная шина памяти)
  • 448-битной. (нестандартная шина памяти)
  • 512-битной.
  • 768-битной. (нестандартная шина памяти)
  • 896-битной. (нестандартная шина памяти)
  • 1024-битной.
  • 2048-битной (только HBM-память)
  • 3072-битной (только HBM2-память)
  • 4096-битной (только HBM2-память)

Имеет значение соотношение количества памяти, её типа и ширины шины данных: 512 МБ DDR2, при ширине шины данных в 128 бит, будет работать медленнее и гораздо менее эффективно, чем 256 МБ GDDR3 при ширине шины в 128 бит и т. п. По понятным причинам, 256 МБ GDDR3 с шириной шины 256 бит лучше, чем 256 МБ GDDR3 с шириной шины в 128 бит и т. п.

Производство

Производители видеокарт не изготавливают VRAM самостоятельно, а закупают её. Некоторые известные производители VRAM — Samsung, Micron, Elpida Memory и Hynix. Разработчик видеокарты предусматривает в дизайне несколько конфигураций и оставляет тип, количество и размещение компонентов на плате на выбор производителей. На разных моделях одного референсного дизайна видеокарты может быть установлено разное количество чипов памяти предусмотренных типов, а также они могут быть расположены как на верхней, так и на нижней стороне платы.

Также стоит учитывать, что из-за относительно невысокой стоимости видеопамяти многие производители видеокарт устанавливают избыточное количество видеопамяти (4, 6 и 8 Гбайт) на слабые видеокарты с целью повышения их маркетинговой привлекательности. На видеокартах чипы памяти обычно располагают вокруг видеопроцессора, чтобы отводить тепло от них общим с процессором кулером.



Имя:*
E-Mail:
Комментарий: