Видеокарта
Видеока́рта (также видеоада́птер[1], видеопла́та[2], графический ада́птер[1], графи́ческая пла́та, графи́ческая ка́рта, графи́ческий ускори́тель[3]) — устройство, преобразующее графический образ, хранящийся как содержимое памяти компьютера (или самого адаптера), в форму, пригодную для дальнейшего вывода на экран монитора. Обычно видеокарта выполнена в виде печатной платы (плата расширения) и вставляется в слот расширения материнской платы, универсальный либо специализированный (AGP[4], PCI Express)[5][6].
Также широко распространены и расположенные на системной плате видеокарты — как в виде дискретного отдельного чипа GPU, так и в качестве составляющей части северного моста чипсета или ЦПУ; в случае ЦПУ, встроенный (интегрированный[7]) GPU, строго говоря, не может быть назван видеокартой.
Видеокарты не ограничиваются простым выводом изображения, они имеют встроенный графический процессор, который может производить дополнительную обработку, снимая эту задачу с центрального процессора компьютера[8]. Например, видеокарты Nvidia и AMD (ATi) осуществляют рендеринг графического конвейера OpenGL и DirectX и Vulkan на аппаратном уровне[9].
Также имеет место тенденция использовать вычислительные возможности графического процессора для решения неграфических задач (например, добычи криптовалюты).
История
Первым компьютером, оснащённым устройством вывода изображения на экран считается Whirlwind, строившийся в период с 1944 по 1953 год. Видеоадаптер компьютера Whirlwind мог отображать до 6250 точек в секунду с адресацией 2048×2048 позиций, либо до 550 цифр, кроме того оснащался световым пером[10].
В марте 1973 года вышел мини-компьютер Xerox Alto, который можно назвать первым персональным компьютером[11]. Alto имел графический интерфейс с метафорой окон и рабочего стола, для этого он оснащался контроллером дисплея[12][значимость факта?], позволявшим выводить на экран монохромное изображение разрешением 606×808 пикселей и монитором портретной ориентации.
В 1975 году поступил в продажу Altair 8800. Изначально он не оснащался никакими средствами ввода-вывода, кроме набора тумблеров и светодиодов на передней панели. Предполагалось подключение его к телетайпу или текстовому терминалу. Однако в 1976 году в продажу поступила видеокарта[13] Cromemco Dazzler, позволявшая выводить на экран обычного бытового телевизора цветное изображение, сформированное в памяти компьютера[14]. Первая версия позволяла выводить изображение до 128×128 пикселей, следующее поколение — до 756×484.
Видеоадаптер MDA (англ. Monochrome Display Adapter) был выпущен IBM в 1981 году для IBM PC[15]. Он поддерживал разрешение 720х350 пикселей и работал только в текстовом режиме, выводя на экран до 25 строк. Никакой цветовой или графической информации он передавать не мог[1]. Фирма Hercules в 1982 году выпустила дальнейшее развитие адаптера MDA, видеоадаптер HGC (англ. Hercules Graphics Controller), который поддерживал две графические страницы, но всё же не позволял работать с цветом.
Первой цветной видеокартой для PC стала CGA (англ. Color Graphics Adapter), выпущенная IBM в 1981 году. Она могла работать либо в текстовом режиме, отображая 16 цветов символов, либо в графическом, выводя четырёхцветные изображения в низком (320×200) разрешении. Режим высокого разрешения 640×200 был монохромным. В развитие этой карты, в 1984 году, появился EGA (англ. Enhanced Graphics Adapter) — улучшенный графический адаптер, с расширенной до 64 цветов палитрой[1]. Разрешение было улучшено до 640×350. Особенностью данных адаптеров было то, что они использовали слот шины ISA, имеющий открытую архитектуру, в связи с чем пользователь мог самостоятельно менять видеокарту на желаемую[1].
Интерфейсы с монитором всех этих типов видеоадаптеров были цифровыми, MDA и HGC передавали только светится или не светится точка и дополнительный сигнал яркости для атрибута текста «яркий», аналогично CGA по трём каналам (красный, зелёный, синий) передавал основной видеосигнал, и мог дополнительно передавать сигнал яркости (всего получалось 16 цветов), EGA имел по две линии передачи на каждый из основных цветов, то есть каждый основной цвет мог отображаться с полной яркостью, 2/3 или 1/3 от полной яркости, что и давало в сумме максимум 64 цвета.
В 1987 году появляется новый графический адаптер MCGA (англ. Multicolor Graphics Adapter), в котором инженеры IBM сумели увеличили текстовый режим до 50 строк, а графический до 262 144 цветов, в связи с чем возникла необходимость перейти с цифрового на аналоговый сигнал для монитора. Потом IBM пошла ещё дальше и несколько месяцев спустя выпустила VGA (англ. Video Graphics Array), ставшей фактическим стандартом видеоадаптеров на многие годы. В графическом режиме её разрешение составляло 640x480 и было примечательно тем, что соотношение числа пикселей по горизонтали и вертикали совпадало со стандартным (для того времени) соотношением сторон экрана монитора — 4:3. С 1991 года появилось понятие SVGA (Super VGA) — расширение VGA с добавлением более высоких режимов. Число одновременно отображаемых цветов при разрешении 800х600 увеличивается до 65 536 (High Color, 16 бит) и 16 777 216 (True Color, 24 бита)[1]. Из сервисных функций появляется поддержка VBE (VESA BIOS Extention — расширение BIOS стандарта VESA). SVGA воспринимается как фактический стандарт видеоадаптера где-то с середины 1992 года, после принятия ассоциацией VESA стандарта VBE версии 1.0. До того момента практически все видеоадаптеры SVGA были несовместимы между собой.
Графический пользовательский интерфейс, появившийся во многих операционных системах, стимулировал новый этап развития видеоадаптеров[1]. Появляется понятие «графический ускоритель» (graphics accelerator). Это видеоадаптеры, которые производят выполнение некоторых графических функций на аппаратном уровне. К числу этих функций относятся: перемещение больших блоков изображения из одного участка экрана в другой (например, при перемещении окна), заливка участков изображения, рисование линий, дуг, шрифтов, поддержка аппаратного курсора и т. п. Прямым толчком к развитию столь специализированного устройства явилось то, что графический пользовательский интерфейс, несомненно, удобен, но его использование требует от центрального процессора немалых вычислительных ресурсов, и графический ускоритель как раз и призван снять с него львиную долю вычислений по окончательному выводу изображения на экран.
3D-ускорители
Сам термин 3D-ускоритель формально означает дополнительную плату расширения, выполняющую вспомогательные функции ускорения формирования трёхмерной графики. Отображение результата в виде 2D изображения и передача её на монитор не является задачей 3D-ускорителя. 3D-ускорители в виде отдельного устройства практически не встречаются. Почти любая (кроме узкоспециализированных) видеокарта, в том числе и интегрированные графические адаптеры в составе процессоров и системной логики, выполняют аппаратное ускорение отображения двухмерной и трёхмерной графики.
Аппаратное ускорение формирования графических изображений изначально входило в характеристики многих персональных компьютеров, однако первая модель IBM PC штатно располагала только текстовыми режимами и не имела возможности отображать графику. Однако первые видеокарты для IBM PC-совместимых компьютеров с поддержкой аппаратного ускорения 2D- и 3D-графики появились достаточно рано. Так IBM ещё в 1984 начала производство и продажу видеокарт стандарта PGC. PGC была создана для профессионального применения, выполняла аппаратное ускорение построения 2D- и 3D-примитивов и являлась решением в первую очередь для CAD-приложений. IBM PGC имела крайне высокую стоимость. Цена этой видеокарты была гораздо выше самого компьютера, поэтому существенного распространения такие решения не получили. На рынке профессиональных решений были видеокарты и 3D-ускорители других производителей.
Распространение доступных 3D-ускорителей для IBM PC-совместимых компьютеров началось в 1994 году. Первой видеокартой с поддержкой аппаратного ускорения отображения 3D-графики стала Matrox Impression Plus выпущенная в 1994 году (использовала чип Matrox Athena). Позже, в этом же году, Matrox представляет новый чип Matrox Storm и видеокарту на основе его Matrox Millennium.
В 1995 году компания S3 Graphics, являющаяся на тот момент признанным и перспективным производителем видеокарт с ускорением растровой 2D-графики, выпустила один из первых массовых 3D-ускорителей на чипсете S3 ViRGE. Однако, использование этих видеокарт в реальных сценариях, показывало посредственную производительность, в связи с чем, нельзя было назвать их ускорителями 3D-графики в буквальном понимании. В то же время видеокарты Matrox Mistique и ATI 3D Rage, показывали лучшие результаты[16].
В том же году уже несколько компаний выпускают новые графические чипы с поддержкой аппаратного ускорения формирования 3D-графики. Так, Matrox выпускает MGA-2064W, Number Nine Visual Technology отмечается выпуском графического процессора Imagine 128-II, Yamaha представляет чипы YGV611 и YGV612, компания 3DLabs выпускает Glint 300SX, а Nvidia — NV1 (который так же выпускается в рамках соглашения с SGS-THOMSON под именем STG2000). В этом же году на основе этих решений выходит большое число видеокарт от различных производителей с поддержкой ускорения 3D-графики.
Настоящим прорывом на рынке 3D-ускорителей и видеокарт с аппаратным ускорением 3D-графики стал 1996 год. Именно этот год стал годом массового внедрения и популяризации аппаратной 3D-графики на IBM PC-совместимых компьютерах. В этому году появляются новые графические решения от 3DLabs, Matrox, ATI Technologies, S3, Rendition, Chromatic Research, Number Nine Visual Technology, Trident Microsystems, PowerVR. И хотя на основе этих графических процессоров в этом году выходит множество как 3D-ускорителей, так и полноценных видеокарт с функций ускорения 3D-графики, главным событием становится выпуск 3D-ускорителей на основе набора чипов 3Dfx Voodoo Graphics. Компания 3dfx Interactive до этого производившая специализированные 3D-ускорители для аркадных автоматов представила набор чипов для рынка IBM PC-совместимых компьютеров. Скорость и качество рендеринга трёхмерных сцен выполненных картами Voodoo Graphics были на уровне игровых автоматов, и большинство производителей видеокарт начали выпуск 3D-ускорителей на основе набора Voodoo Graphics, а вскоре и большинство производителей компьютерных игр поддержали Voodoo Graphics и выпустили новые игры для IBM PC-совместимых компьютеров с совершенно новым уровнем 3D-графики. Произошёл взрыв интереса к 3D-играм и соответственно к 3D-ускорителям.
С 1998 года развивается (компания 3dfx, карта Voodoo2) технология SLI (англ. Scan Line Interleave — чередование строчек), позволяющая использовать мощности нескольких соединённых между собой видеокарт для обработки трёхмерного изображения.
Профессиональные видеоускорители
Профессиональные графические карты — видеокарты, ориентированные на работу в графических станциях и использования в математических и графических пакетах 2D- и 3D-моделирования (AutoCAD, MATLAB), на которые ложится значительная нагрузка при расчёте и прорисовке моделей проектируемых объектов.
Ядра профессиональных видеоускорителей основных производителей, AMD и NVIDIA, «изнутри» мало отличаются от их игровых аналогов. Они давно унифицировали свои GPU и используют их в разных областях. Именно такой ход и позволил этим фирмам вытеснить с рынка компании, занимавшиеся разработкой и продвижением специализированных графических чипов для профессиональных применений.
Особое внимание уделяется подсистеме видеопамяти, поскольку это — особо важная составляющая профессиональных ускорителей, на долю которой выпадает основная нагрузка при работе с моделями гигантского объёма; В частности, кроме заметно больших объёмов памяти у соотносимых по производительности карт, у видеокарт профессионального сегмента может использоваться ECC-память[17].
Отдельно стоит продукция фирмы Matrox, чьи узкоспециализированные ускорители по состоянию на 2017 год применялись для работ по кодированию видео, обработке TV-сигнала и работ со сложной 2D-графикой.
Устройство
Видеокарта состоит из следующих частей[3]:
Графический процессор
Графический процессор (англ. Graphics processing unit (GPU) — досл.: «графическое процессорное устройство») занимается расчётами выводимого изображения (рендеринг), производя обработку 2D и 3D графики[3]. Графические процессоры по сложности мало чем уступают центральному процессору компьютера, и зачастую превосходят его как по числу транзисторов, так и по вычислительной мощности, благодаря большому числу универсальных вычислительных блоков. Однако архитектура GPU прошлого поколения обычно предполагает наличие нескольких блоков обработки информации, а именно: блок обработки 2D-графики, блок обработки 3D-графики, в свою очередь, обычно разделяющийся на геометрическое ядро (плюс кэш вершин) и блок растеризации (плюс кэш текстур) и др.
Видеопамять
Кроме шины данных, второе узкое место любого видеоадаптера — это пропускная способность (англ. bandwidth) памяти самого видеоадаптера. Причём изначально проблема возникла даже не столько из-за скорости обработки видеоданных (часто стоит проблема информационного «голода» видеоконтроллера, когда он данные обрабатывает быстрее, чем успевает их читать/писать из/в видеопамять), сколько из-за необходимости доступа к ним со стороны видеопроцессора, центрального процессора и RAMDAC. Дело в том, что при высоких разрешениях и большой глубине цвета для отображения страницы экрана на мониторе необходимо прочитать все эти данные из видеопамяти и преобразовать в аналоговый сигнал, который и пойдёт на монитор, столько раз в секунду, сколько кадров в секунду показывает монитор. Возьмём объём одной страницы экрана при разрешении 1024x768 точек и глубине цвета 24 бит (True Color), это составляет 2,25 МБ. При частоте кадров 75 Гц необходимо считывать эту страницу из памяти видеоадаптера 75 раз в секунду (считываемые пикселы передаются в RAMDAC, и он преобразовывает цифровые данные о цвете пиксела в аналоговый сигнал, поступающий на монитор), причём ни задержаться, ни пропустить пиксел нельзя, следовательно, номинально потребная пропускная способность видеопамяти для данного разрешения составляет приблизительно 170 МБ/с, и это без учёта того, что необходимо и самому видеоконтроллеру писать и читать данные из этой памяти. Для разрешения 1600x1200x32 бит при той же частоте кадров 75 Гц номинально потребная пропускная составляет уже 550 МБ/с. Для сравнения, процессор Pentium II имел пиковую скорость работы с памятью 528 МБ/с. Проблему можно было решать двояко — либо использовать специальные типы памяти, которые позволяют одновременно двум устройствам читать из неё, либо ставить очень быструю память.
Типы видеопамяти[18]:
- Ранние видеокарты не предъявляли особых требований к быстродействию и использовали стандартные типы памяти типа — статические Static RAM (например, в адаптере MDA) или динамические Dynamic RAM.
- FPM DRAM (Fast Page Mode Dynamic RAM — динамическое ОЗУ с быстрым страничным доступом) — основной тип видеопамяти, идентичный используемой в системных платах. Использует асинхронный доступ, при котором управляющие сигналы не привязаны жёстко к тактовой частоте системы. Активно применялся примерно до 1996 года.
- VRAM (Video RAM — видео ОЗУ) — так называемая двухпортовая DRAM. Этот тип памяти обеспечивает доступ к данным со стороны сразу двух устройств, то есть имеется возможность одновременно писать данные в какую-либо ячейку памяти, и одновременно с этим читать данные из какой-нибудь соседней ячейки. За счёт этого позволяет совмещать во времени вывод изображения на экран и его обработку в видеопамяти, что сокращает задержки при доступе и увеличивает скорость работы. То есть RAMDAC может свободно выводить на экран монитора раз за разом экранный буфер, ничуть не мешая видеопроцессору осуществлять какие-либо манипуляции с данными. Но это всё та же DRAM, и скорость у неё не слишком высокая.
- WRAM (Window RAM) — вариант VRAM, с увеличенной на ~25 % пропускной способностью и поддержкой некоторых часто применяемых функций, таких, как отрисовка шрифтов, перемещение блоков изображения и т. п. Применяется практически только на акселераторах фирмы Matrox и Number Nine, поскольку требует специальных методов доступа и обработки данных. Наличие всего одного производителя данного типа памяти (Samsung) сильно сократило возможности её использования. Видеоадаптеры, построенные с использованием данного типа памяти, не имеют тенденции к падению производительности при установке больших разрешений и частот обновления экрана, на однопортовой же памяти в таких случаях RAMDAC всё большее время занимает шину доступа к видеопамяти, и производительность видеоадаптера может сильно упасть.
- EDO DRAM (Extended Data Out DRAM — динамическое ОЗУ с расширенным временем удержания данных на выходе) — тип памяти с элементами конвейеризации, позволяющий несколько ускорить обмен блоками данных с видеопамятью приблизительно на 25 %.
- SDRAM (Synchronous Dynamic RAM — синхронное динамическое ОЗУ) пришёл на замену EDO DRAM и других асинхронных однопортовых типов памяти. После того, как произведено первое чтение из памяти или первая запись в память, последующие операции чтения или записи происходят с нулевыми задержками. Этим достигается максимально возможная скорость чтения и записи данных.
- DDR SDRAM (Double Data Rate) — вариант SDRAM с передачей данных по двум срезам сигнала, получаемым в результате удвоения скорости работы. Дальнейшее развитие пока происходит в виде очередного уплотнения числа пакетов в одном такте шины — DDR2 SDRAM (GDDR2), DDR3 SDRAM и т. д.
- SGRAM (Synchronous Graphics RAM — синхронное графическое ОЗУ) вариант DRAM с синхронным доступом. В принципе, работа SGRAM полностью аналогична SDRAM, но дополнительно поддерживаются ещё некоторые специфические функции, типа блоковой и масочной записи. В отличие от VRAM и WRAM, SGRAM является однопортовой, однако может открывать две страницы памяти как одну, эмулируя двухпортовость других типов видеопамяти.
- MDRAM (Multibank DRAM — многобанковое ОЗУ) — вариант DRAM, разработанный фирмой MoSys, организованный в виде множества независимых банков объёмом по 32 КиБ каждый, работающих в конвейерном режиме.
- RDRAM (RAMBus DRAM) — память, использующая специальный канал передачи данных (Rambus Channel), представляющий собой шину данных шириной в один байт. По этому каналу удаётся передавать информацию очень большими потоками, наивысшая скорость передачи данных для одного канала на сегодняшний момент составляет 1600 МБ/с (частота 800 МГц, данные передаются по обоим срезам импульса). На один такой канал можно подключить несколько чипов памяти. Контроллер этой памяти работает с одним каналом Rambus, на одной микросхеме логики можно разместить четыре таких контроллера, значит, теоретически можно поддерживать до 4 таких каналов, обеспечивая максимальную пропускную способность в 6,4 Гб/с. Минус этой памяти — нужно читать информацию большими блоками, иначе её производительность резко падает.
Объём оперативной памяти видеокарт варьируется от 4 Кбайт (например, в MDA) до 48 Гб (например, NVIDIA Quadro RTX 8000)[19]. Поскольку доступ к видеопамяти GPU и другими электронным компонентами должен обеспечивать желаемую высокую производительность всей графической подсистемы в целом, используются специализированные высокоскоростные типы памяти, такие, как SGRAM, двухпортовые (англ. dual-port) VRAM, WRAM, другие. Приблизительно с 2003 года видеопамять, как правило, базировалась на основе DDR технологии памяти SDRAM, с удвоенной эффективной частотой (передача данных синхронизируется не только по нарастающему фронту тактового сигнала, но и ниспадающему). И в дальнейшем DDR2, GDDR3, GDDR4, GDDR5 и на момент 2016 года[20] GDDR5X. С выходом серии высокопроизводительных видеокарт AMD Fury совместно с уже устоявшейся на рынке памятью GDDR начала использоваться память нового типа HBM, предлагая значительно большую пропускную способность и упрощение самой платы видеокарты, за счёт отсутствия необходимости разводки и распайки чипов памяти. Пиковая скорость передачи данных (пропускная способность) памяти видеокарт достигает 480 Гб/с для типа памяти GDDR5X (например, у NVIDIA TITAN X Pascal[21]) и 672 Гб/с для типа памяти GDDR6 (например, у TITAN RTX[22]).
Видеопамять используется для временного сохранения, помимо непосредственно данных изображения, и другие: текстуры, шейдеры, вершинные буферы, Z-буфер (удалённость элементов изображения в 3D-графике), и тому подобные данные графической подсистемы (за исключением, по большей части данных Video BIOS, внутренней памяти графического процессора и т. п.) и коды.
Видео-ОЗУ
Видеопамять выполняет функцию кадрового буфера, в котором хранится изображение, генерируемое и постоянно изменяемое графическим процессором и выводимое на экран монитора (или нескольких мониторов). В видеопамяти хранятся также промежуточные невидимые на экране элементы изображения и другие данные. На данный момент (2021 год) существует 7 типов памяти для видеокарт: DDR, GDDR2, GDDR3, GDDR4, GDDR5, GDDR6 и HBM. Помимо видеопамяти, находящейся на видеокарте, графические процессоры обычно используют в своей работе часть общей системной памяти компьютера, прямой доступ к которой организуется драйвером видеоадаптера через шину AGP или PCI-e. В случае использования архитектуры Uniform Memory Access в качестве видеопамяти используется часть системной памяти компьютера.
Видеоконтроллер
Видеоконтроллер отвечает за формирование изображения в видеопамяти, даёт команды RAMDAC на формирование сигналов развёртки для монитора и осуществляет обработку запросов центрального процессора. Кроме этого, обычно присутствуют контроллер внешней шины данных (например, PCI или AGP), контроллер внутренней шины данных и контроллер видеопамяти. Ширина внутренней шины и шины видеопамяти обычно больше, чем внешней (64, 128 или 256 разрядов против 16 или 32), во многие видеоконтроллеры встраивается ещё и RAMDAC.
Графические адаптеры (AMD, nVidia) обычно имеют не менее двух видеоконтроллеров, работающих независимо друг от друга и управляющих одновременно одним или несколькими дисплеями каждый.
RAMDAC и TMDS
Цифро-аналоговый преобразователь (ЦАП; RAMDAC — Random Access Memory Digital-to-Analog Converter) служит для преобразования изображения, формируемого видеоконтроллером, в уровни интенсивности цвета, подаваемые на аналоговый монитор. Возможный диапазон цветности изображения определяется только параметрами RAMDAC. Чаще всего RAMDAC имеет четыре основных блока: три цифро-аналоговых преобразователя, по одному на каждый цветовой канал (красный, зелёный, синий — RGB), и SRAM для хранения данных о гамма-коррекции. Большинство ЦАП имеют разрядность 8 бит на канал — получается по 256 уровней яркости на каждый основной цвет, что в сумме даёт 16,7 млн цветов (а за счёт гамма-коррекции есть возможность отображать исходные 16,7 млн цветов в гораздо большее цветовое пространство). Некоторые RAMDAC имеют разрядность по каждому каналу 10 бит (1024 уровня яркости), что позволяет сразу отображать более 1 млрд цветов, но эта возможность практически не используется. Для поддержки второго монитора часто устанавливают второй ЦАП.
TMDS (Transition-minimized differential signaling — дифференциальная передача сигналов с минимизацией перепадов уровней) передатчик цифрового сигнала без ЦАП-преобразований. Используется при DVI-D, HDMI, DisplayPort подключениях. С распространением ЖК-мониторов и плазменных панелей нужда в передаче аналогового сигнала отпала — в отличие от ЭЛТ они уже не имеют аналоговую составляющую и работают внутри с цифровыми данными. Чтобы избежать лишних преобразований, Silicon Image разрабатывает TMDS.
Видео-ПЗУ
Видео-ПЗУ (Video ROM) — постоянное запоминающее устройство (ПЗУ), в которое записаны BIOS видеокарты, экранные шрифты, служебные таблицы и т. п. ПЗУ не используется видеоконтроллером напрямую — к нему обращается только центральный процессор.
BIOS обеспечивает инициализацию и работу видеокарты до загрузки основной операционной системы, задаёт все низкоуровневые параметры видеокарты, в том числе рабочие частоты и питающие напряжения графического процессора и видеопамяти, тайминги памяти. Также VBIOS содержит системные данные, которые могут читаться и интерпретироваться видеодрайвером в процессе работы (в зависимости от применяемого метода разделения ответственности между драйвером и BIOS). На многих картах устанавливаются электрически перепрограммируемые ПЗУ (EEPROM, Flash ROM), допускающие перезапись видео-BIOS самим пользователем при помощи специальной программы.
Интерфейс
Первое препятствие к повышению быстродействия видеосистемы — это интерфейс передачи данных, к которому подключён видеоадаптер. Как бы ни был быстр процессор видеоадаптера, большая часть его возможностей останется незадействованной, если не будут обеспечены соответствующие каналы обмена информацией между ним, центральным процессором, оперативной памятью компьютера и дополнительными видеоустройствами.
Основным каналом передачи данных является, конечно, интерфейсная шина материнской платы, через которую обеспечивается обмен данными с центральным процессором и оперативной памятью. Самой первой шиной, использовавшейся в IBM PC, была XT-Bus, она имела разрядность 8 бит данных и 20 бит адреса и работала на частоте 4,77 МГц. Далее появилась шина ISA (Industry Standart Architecture — архитектура промышленного стандарта), соответственно она имела разрядность 8/16 бит и работала на частоте 8 МГц. Пиковая пропускная способность составляла чуть больше 5,5 МиБ/с. Этого более чем хватало для отображения текстовой информации и игр с 16-цветной графикой.
Дальнейшим рывком явилось появление шины MCA (Micro Channel Architecture) в новой серии компьютеров PS/2 фирмы IBM. Она уже имела разрядность 32/32 бит и пиковую пропускную способность 40 Мб/с. Но то обстоятельство, что архитектура MCI являлась закрытой (собственностью IBM), побудило остальных производителей искать иные пути увеличения пропускной способности основного канала доступа к видеоадаптеру.
С появлением процессоров серии 486 было предложено использовать для подключения периферийных устройств локальную шину самого процессора, в результате родилась VLB (VESA Local Bus — локальная шина стандарта VESA). Работая на внешней тактовой частоте процессора, которая составляла от 25 МГц до 50 МГц, и имея разрядность 32 бит, шина VLB обеспечивала пиковую пропускную способность около 130 МиБ/с. Этого уже было более чем достаточно для всех существовавших приложений, помимо этого, возможность использования её не только для видеоадаптеров, наличие трёх слотов подключения и обеспечение обратной совместимости с ISA (VLB представляет собой просто ещё один 116 контактный разъём за слотом ISA) гарантировали ей достаточно долгую жизнь и поддержку многими производителями чипсетов для материнских плат и периферийных устройств, даже несмотря на то, что при частотах 40 МГц и 50 МГц обеспечить работу даже двух устройств, подключённых к ней, представлялось проблематичным из-за чрезмерно высокой нагрузки на каскады центрального процессора (ведь большинство управляющих цепей шло с VLB на процессор напрямую, безо всякой буферизации).
И всё-таки, с учётом того, что не только видеоадаптер стал требовать высокую скорость обмена информацией, и явной невозможности подключения к VLB всех устройств (и необходимостью наличия межплатформенного решения, не ограничивающегося только PC), была разработана шина PCI (Periferal Component Interconnect — объединение внешних компонентов) появившаяся, в первую очередь, на материнских платах для процессоров Pentium. С точки зрения производительности на платформе PC всё осталось по-прежнему — при тактовой частоте шины 33 МГц и разрядности 32/32 бит она обеспечивала пиковую пропускную способность 133 МиБ/с — столько же, сколько и VLB. Однако она была удобнее и, в конце концов, вытеснила шину VLB и на материнских платах для процессоров класса 486.
С появлением процессоров Pentium II и серьёзной заявкой PC на принадлежность к рынку высокопроизводительных рабочих станций, а также с появлением 3D-игр со сложной графикой стало ясно, что пропускной способности PCI в том виде, в каком она существовала на платформе PC (обычно частота 33 МГц и разрядность 32 бит), скоро не хватит на удовлетворение запросов системы. Поэтому фирма Intel решила сделать отдельную шину для графической подсистемы, несколько модернизировала шину PCI, обеспечила новой получившейся шине отдельный доступ к памяти с поддержкой некоторых специфических запросов видеоадаптеров и назвала это AGP (Accelerated Graphics Port — ускоренный графический порт). Разрядность шины AGP составляет 32 бит, рабочая частота — 66 МГц. Первая версия разъёма поддерживала режимы передачи данных 1x и 2x, вторая — 4x, третья — 8x. В этих режимах за один такт передаются соответственно одно, два, четыре или восемь 32-разрядных слов. Версии AGP не всегда были совместимы между собой в связи с использованием различных напряжений питания в разных версиях. Для предотвращения повреждения оборудования использовался ключ в разъёме. Пиковая пропускная способность в режиме 1x — 266 МиБ/с. Выпуск видеоадаптеров на базе шин PCI и AGP ничтожно мал, так как шина AGP перестала удовлетворять требованиям для мощности новых ПК, и, кроме того, не может обеспечить необходимую мощность питания. Для решения этих проблем создано расширение шины PCI — PCI Express версий 1.0, 1.1, 2.0, 2.1, 3.0 и новейший 4.0. Это последовательный, в отличие от AGP, интерфейс, его пропускная способность может достигать нескольких десятков Гб/с. На данный момент произошёл практически полный отказ от шины AGP в пользу PCI Express. Однако стоит отметить, что некоторые производители до сих пор предлагают видеоплаты с интерфейсами PCI и AGP — во многих случаях это достаточно простой путь резко повысить производительность морально устаревшего ПК в некоторых графических задачах.
Коннектор
Видеоадаптеры MDA, Hercules, EGA и CGA оснащались 9-контактным разъёмом типа D-Sub. Изредка также присутствовал коаксиальный разъём Composite Video, позволяющий вывести чёрно-белое изображение на телевизионный приёмник или монитор, оснащённый НЧ-видеовходом.
Видеоадаптеры VGA и более поздние обычно имели всего один разъём VGA (15-контактный D-Sub). Изредка ранние версии VGA-адаптеров имели также разъём предыдущего поколения (9-контактный) для совместимости со старыми мониторами. Выбор рабочего выхода задавался переключателями на плате видеоадаптера.
Платы оснащают разъёмами DVI или HDMI, либо DisplayPort в количестве от одного до трёх (некоторые видеокарты ATI последнего поколения оснащаются шестью коннекторами).
Порты DVI и HDMI являются эволюционными стадиями развития стандарта передачи видеосигнала, поэтому для соединения устройств с этими типами портов возможно использование переходников (разъём DVI к гнезду D-Sub — аналоговый сигнал, разъём HDMI к гнезду DVI-D — цифровой сигнал, который не поддерживает технические средства защиты авторских прав (англ. High Bandwidth Digital Copy Protection, HDCP), поэтому без возможности передачи многоканального звука и высококачественного изображения). Порт DVI-I также включает аналоговые сигналы, позволяющие подключить монитор через переходник на старый разъём D-SUB (DVI-D не позволяет этого сделать).
DisplayPort позволяет подключать до четырёх устройств, в том числе аудиоустройства, USB-концентраторы и иные устройства ввода-вывода.
Также на видеокарте могут быть размещены композитный и компонентный S-Video видеовыход; также видеовход (обозначаются, как ViVo)
Система охлаждения
Система охлаждения предназначена для сохранения температурного режима видеопроцессора и (зачастую) видеопамяти в допустимых пределах.
В спецификации видеокарты разработчик предусматривает возможности её кастомизации для производителей. Например, производители могут выбирать ёмкость и тип конденсаторов (POSCAP, SP-CAP, MLCC). Недостаточное тестирование или использование более дешевых компонентов может приводить к нестабильной работе видеокарт.[23]
Характеристики
- Ширина шины памяти, измеряется в битах — количество бит информации, передаваемой за такт. Важный параметр в производительности карты.
- Объём видеопамяти, измеряется в мегабайтах — объём собственной оперативной памяти видеокарты. Больший объём далеко не всегда означает большую производительность.
Видеокарты, интегрированные в набор системной логики материнской платы или являющиеся частью ЦПУ, обычно не имеют собственной видеопамяти и используют для своих нужд часть оперативной памяти компьютера (UMA — Unified Memory Access).
- частоты ядра и памяти — измеряются в мегагерцах, чем больше, тем быстрее видеокарта будет обрабатывать информацию.
- текстурная и пиксельная скорость заполнения, измеряется в млн. пикселей в секунду, показывает количество выводимой информации в единицу времени.
К важным техническим особенностям, характеризующим видеокарту, можно отнести встроенную систему охлаждения, если она реализована, и коннекторы интерфейсов передачи данных[24][25].
Типы графических карт
Дискретные видеокарты
Наиболее высокопроизводительный класс графических адаптеров. Как правило, подключается к высокоскоростной шине данных PCI Express. Ранее встречались видеокарты, подключаемые к шинам AGP (специализированная шина обмена данных для подключения только видеокарт), PCI, VESA и ISA. Видеокарты подключаются через шину PCI Express, а все прочие типы подключений являются устаревшими. В компьютерах с архитектурой, отличной от IBM-совместимой, встречались и другие типы подключения видеокарт.
Дискретная карта не обязательно может быть извлечена из устройства (например, на ноутбуках дискретная карта часто распаяна на материнской плате). Она называется дискретной из-за того, что выполнена в виде отдельного чипа (или набора микросхем) и не является частью других компонентов компьютера (в отличие от графических решений, встраиваемых в чипы системной логики материнских плат или непосредственно в центральный процессор). Большинство дискретных видеокарт обладает своей собственной оперативной памятью (VRAM), которая часто может обладать более высокой скоростью доступа или более скоростной шиной доступа, чем обычная оперативная память компьютера. Хотя ранее встречались видеокарты, которые полностью или частично использовали основную оперативную память для хранения и обработки графической информации, видеокарты используют собственную видеопамять. Также иногда (но достаточно редко) встречаются видеокарты, оперативная память которых не установлена в виде отдельных микросхем памяти, а входит в состав графического чипа (в виде отдельных кристаллов или же на одном кристалле с графическим процессором).
Выполненные в виде отдельного набора системной логики, а не в составе других микросхем, дискретные видеокарты могут быть достаточно сложными и гораздо более высокопроизводительными, чем встроенная графика. Кроме того, обладая собственной видеопамятью, дискретные видеокарты не должны делить оперативную память с другими компонентами компьютера (в первую очередь с центральным процессором). Собственная оперативная память позволяет не тратить основное ОЗУ для хранения информации, которая не нужна центральному процессору и другим компонентам компьютера. С другой стороны, видеопроцессору не приходится ожидать очереди на доступ к оперативной памяти компьютера, к которой может в данный момент обращаться как центральный процессор, так и другие компоненты. Все это положительно сказывается на производительности дискретных видеокарт по сравнению со встроенной графикой.
Такие технологии, как SLI от Nvidia и CrossFire от AMD позволяют задействовать несколько графических адаптеров параллельно для решения одной задачи.
Встроенная графика
Интегрированные графические адаптеры не имеют собственной памяти и используют оперативную память компьютера, что сказывается на производительности в худшую сторону. Хотя графические процессоры Intel Iris Graphics, начиная с поколения процессоров Broadwell, имеют в своём распоряжении 128 мегабайт кэша четвёртого уровня, остальную память они могут брать из оперативной памяти компьютера[26]. Встроенные графические решения находят применение в портативных устройствах ввиду низкого энергопотребления. Их производительность уже на достаточно высоком уровне и позволяет играть в несложные трёхмерные игры.
Встроенные графические процессоры расположены на одном чипе с центральным процессором (например, Intel HD Graphics или Intel Iris Graphics), предыдущие поколения (например, Intel GMA) располагались в виде отдельного чипа.
Гибридные решения
Гибридные решения находят применение там где требуется и энергоэффективность, и высокая графическая производительность, позволяя использовать встроенный графический адаптер в повседневных задачах, и задействовать дискретный графический адаптер только там, где он нужен.
До появления гибридной графики производители встраивали в дополнение к встроенному дискретный адаптер, для переключения между ними требовалась перезагрузка, что было не очень удобным для пользователя. Гибридные адаптеры для вывода на экран используют только встроенный графический адаптер, но некоторые вычисления способны передавать дискретной графической карте, а не выполнять самим. Для пользователя переключение между видеоадаптерами становится незаметным. Примерами таких решений являются технология Optimus от Nvidia и DualGraphics от AMD.
GPGPU
GPGPU (англ. General-purpose computing for graphics processing units, неспециализированные вычисления на графических процессорах) — использование графического процессора видеокарты для параллельных вычислений. Графические адаптеры могут иметь до нескольких тысяч процессоров, что позволяет решать некоторые задачи на графических картах на порядок быстрее, чем на центральных процессорах. Приложения, использующие данную технологию пишутся с помощью таких технологий как OpenCL или CUDA.
Внешняя видеокарта
Под термином eGPU понимают дискретную графическую карту, расположенную вне компьютера[27]. Может использоваться, например, для увеличения производительности в 3D приложениях на ноутбуках.
Как правило PCI Express является единственной пригодной шиной для этих целей. В качестве порта может использоваться ExpressCard, mPCIe (PCIe ×1, до 5 или 2.5 Гбит/с соответственно) или порт Thunderbolt 1, 2, или 3 (PCIe ×4, до 10, 20, или 40 Гбит/с соответственно)[28][29].
В 2016 AMD предприняла попытку стандартизировать внешние графические процессоры[30].
Программное обеспечение
На программном уровне видеопроцессор для своей организации вычислений (расчётов трёхмерной графики) использует тот или иной интерфейс прикладного программирования (API).
Самые первые массовые ускорители использовали Glide — API для трёхмерной графики, разработанный 3dfx Interactive для видеокарт на основе собственных графических процессоров Voodoo Graphics.
Затем поколения ускорителей в видеокартах можно считать по версии DirectX, которую они поддерживают. Различают следующие поколения:
- DirectX 7 — карта не поддерживает шейдеры, все картинки рисуются наложением текстур;
- DirectX 8 — поддержка пиксельных шейдеров версий 1.0, 1.1 и 1.2, в DX 8.1 ещё и версию 1.4, поддержка вершинных шейдеров версии 1.0;
- DirectX 9 — поддержка пиксельных шейдеров версий 2.0, 2.0a и 2.0b, 3.0;
- DirectX 10 — поддержка унифицированных шейдеров версии 4.0;
- DirectX 10.1 — поддержка унифицированных шейдеров версии 4.1;
- DirectX 11 — поддержка унифицированных шейдеров версии 5.0;
- DirectX 12 — поддержка унифицированных шейдеров версии 6.0;
С выходом DirectX 11 и появлением модели поддержки API Feature Level (FLxx), видеокарты в большинстве своём перестали быть привязаны к конкретной версии DirectX.
Драйвер устройства
Также правильная и полнофункциональная работа графического адаптера обеспечивается с помощью видеодрайвера — специального программного обеспечения, поставляемого производителем видеокарты и загружаемого в процессе запуска операционной системы. Видеодрайвер выполняет функции интерфейса между системой с запущенными в ней приложениями и видеоадаптером. Так же, как и видео-BIOS, видеодрайвер организует и программно контролирует работу всех частей видеоадаптера через специальные регистры управления, доступ к которым происходит через соответствующую шину.
Драйвер устройства обычно поддерживает одну или несколько карт, и должен быть написан специально для определённой операционной системы (ОС).
Большинство устройств требуют проприетарных драйверов для использования всей функциональности, эти драйвера для популярных ОС обычно поставляются с устройством и часто доступны для бесплатного скачивания с сайта производителя. Разрабатывается несколько драйверов видеокарт с открытым исходным кодом, но многие из них могут использовать лишь основную функциональность карт.
Использование видеокарт в майнинге криптовалют
Майнинг на видеокарте — это процесс добычи криптовалюты с помощью графических процессоров (GPU). Для майнинга криптовалют используют видеокарты взамен процессоров, т.к они осуществляют обработку большего количества информации за меньшее время. К их единственному недостатку относится большое потребление электроэнергии, но высокая отдача легко компенсирует подобную слабость[31].
Для майнинга используются полноценные дискретные видеокарты, интегрированные в процессор чипы не используются. В сети также встречаются статьи про майнинг на внешней видеокарте, но это также работает не во всех случаях и является не лучшим решением[32].
Примечания
- ComputerBild №11, 2011, с. 38.
- Видеоплаты: AMD и NVIDIA // Chip : журнал. — 2011. — Июль (№ 7). — С. 46. — ISSN 1609-4212.
- ComputerBild №11, 2011, с. 39.
- Intel Corporation. AGP V3.0 Interface Specification (англ.). — «graphics card, add-in card».
- Что нужно знать о видеокартах? Руководство THG для начинающих пользователей, часть I . THG.ru. Tom’s Hardware (24 августа 2006). Дата обращения: 22 июля 2021.
- Graphic Card Components (англ.), pctechguide.com (23 сентября 2011).
- What Is the Difference Between Integrated Graphics and Discrete Graphics? (англ.). Intel. Дата обращения: 2 сентября 2021.
- ExplainingComputers.com: Hardware (англ.). www.explainingcomputers.com. Дата обращения: 11 декабря 2017.
- OpenGL vs DirectX - Cprogramming.com . www.cprogramming.com. Дата обращения: 11 декабря 2017.
- Kent C. Redmond, Thomas M. Smith. Project Whirlwind. A Case History in Contemporary Technology. The MITRE Corporation, Bedford MA, USA. 1975
- History of Computers and Computing, Birth of the modern computer, Personal computer, Xerox Alto . Дата обращения: 19 апреля 2016.
- DISPLAY CONTROLLER. — В: 09aDISPL // xerox :: alto :: schematics.
- Kuhman, Robert The Cro's Nest RCP/M-RBBS . www.kuhmann.com. Дата обращения: 10 февраля 2012.
- Les Solomon, "Solomon's Memory" Архивировано 25 октября 2012 года., in Digital Deli, Workman Publications, 1984, ISBN 0-89480-591-6
- Михаил Гук. Аппаратные средства IBM PC. Энциклопедия, 2-е изд. — СПб.: Питер, 2002. — 928 с.: ил. — С. 530
- Ты помнишь, как все начиналось? 3D-ускорители . 3DNews (31 декабря 2017). Дата обращения: 17 июля 2021.
- Overview Quadro Fermi . www.nvidia.com. Дата обращения: 9 декабря 2018.
- Михаил Гук. Аппаратные средства IBM PC. Энциклопедия, 2-е изд. — СПб.: Питер, 2002. — 928 с.: ил. — С. 526—528, 542
- NVIDIA TITAN RTX is the fastest PC graphics card ever built | NVIDIA
- NVIDIA GeForce GTX 1080
- NVIDIA TITAN X Pascal
- TITAN RTX Ultimate PC Graphics Card with Turing | NVIDIA
- Manufacturers respond to GeForce RTX 3080/3090 crash to desktop issues (англ.). VideoCardz.com. Дата обращения: 25 февраля 2021.
- FAQ по видеокартам / Видеокарты
- Руководство покупателя видеокарты: основные характеристики видеокарт
- «A Survey Of Architectural Approaches for Managing Embedded DRAM and Non-volatile On-chip Caches», Mittal et al., IEEE TPDS, 2014
- Semit. Опыт сборки eGPU и его взаимодействие с ноутбуком .
- eGPU candidate system list . Tech-Inferno Forums.
- Neil Mohr. How to make an external laptop graphics adaptor . TechRadar.
- Mark Walton. AMD wants to standardize the external GPU .
- Как криптовалюта связана с видеокартой и особенности майнинга на видеокарте . kripto365.ru (8 октября 2018). Дата обращения: 4 октября 2019.
- Майнинг на видеокарте GPU – полное руководство . prostocoin.com. Дата обращения: 4 октября 2019.
Литература
- Скотт Мюллер. Модернизация и ремонт ПК = Upgrading and Repairing PCs. — 17 изд. — М.: «Вильямс», 2007. — С. 889—970. — ISBN 0-7897-3404-4.
- Юрий Валерианов. Графическая эволюция // Computer Bild : журнал. — 2011. — 23 мая (№ 11). — С. 38—41. — ISSN 2308-815X.
- Михаил Гук. Аппаратные средства IBM PC. Энциклопедия, 2-е изд. — СПб.: Питер, 2002. — 928 с.: ил.
- Stan Veit Stan Veit's history of the personal computer. — 1993. — ISBN 978-1566640237.
Ссылки
- Кирилл «gr1nder» Русаков. Как развивалась графика в играх — от линий на экране осциллографа до трассировки лучей . cybersport.ru (22 мая 2021).
- Видеокарты 3dnews.ru
- FAQ по видеокартам / Видеокарты
- Глоссарий современной 3D терминологии / Видеокарты
- 3D-видео и мониторы ixbt.com
- Руководство покупателя видеокарты: основные характеристики видеокарт
- Видеокарты | THG.RU THG
- Что нужно знать о видеокартах? Руководство THG для начинающих пользователей, часть I | THG.RU THG
- Что нужно знать о видеокартах? Руководство THG для начинающих пользователей, часть II | THG.RU THG
- Что нужно знать о видеокартах? Руководство THG для начинающих пользователей, часть III | THG.RU THG
- Эволюция дискретных видеокарт. Часть 1. 1980-е годы — Ferra.ru ferra.ru
- Эволюция видеокарт. Часть 2. 1990-е годы — Ferra.ru ferra.ru
- Игровые видеокарты GeForce | NVIDIA
- Видеокарты Radeon RX для геймеров | AMD