AGP
AGP (от англ. Accelerated Graphics Port, порт графического ускорителя) — специализированная 32-разрядная системная шина для видеокарты, разработанная в 1996 году компанией Intel. Появилась одновременно с чипсетами для процессора Intel Pentium MMX; у сторонних производителей появилась в чипсетах VIA Apollo MVP3 и MVP5 c Super Socket 7. Основной задачей разработчиков было увеличение производительности и уменьшение стоимости видеокарты за счёт уменьшения количества встроенной видеопамяти. По замыслу Intel, большие объёмы видеопамяти для AGP-карт были бы не нужны, поскольку технология предусматривала высокоскоростной доступ к общей памяти. Её отличия от предшественницы, шины PCI:
Модификации AGPПервая версия (спецификация AGP 1.0) AGP 1x используется редко, поскольку не обеспечивает необходимой скорости работы с памятью в режиме DME. Сразу же при проектировании была добавлена возможность посылать 2 блока данных за один такт — это AGP 2x. Многие видеокарты имели двойные ключи, а часть материнских плат производилась с универсальными слотами AGP, позволяющими подключить карту к слоту, не поддерживающему правильное напряжение питания. Некоторые старые видеокарты, рассчитанные на напряжение 3,3 В, имеют ключ для 1,5 В. Это может повредить карту или материнскую плату, поэтому от универсальных слотов впоследствии отказались[1]. AGP 4xВ 1998 году вышла вторая версия (спецификация AGP 2.0) — AGP 4x, которая могла пересылать уже 4 блока за один такт и обладала пропускной способностью около 1 ГБ/с. Уровень напряжения вместо обычных 3,3 В был понижен до 1,5 В. AGP 8xШина AGP 8x (спецификация AGP 3.0) передаёт уже 8 блоков за один такт, таким образом, пропускная способность шины достигает 2 ГБ/с. Также в стандарте была заложена возможность использования двух видеокарт (аналогично AMD CrossFireX, Nvidia SLI), однако эта возможность не была использована производителями. Современные видеокарты требуют большой мощности, более 40 Вт, которую шина AGP дать не может, так появилась спецификация AGP Pro с дополнительными шинами питания на разъёме. Если поддержка режима AGP 8x не обеспечивалась чипсетом, производители материнских плат реализовывали поддержку этого режима, для Socket 478, разными путями (например, компания ASRock представила технологию A.G.I. 8x, реализующую поддержку AGP 8x через слот PCI). По мере появления решений для платформы LGA 775 проблема преемственности графических интерфейсов стала ещё острее — чипсеты Intel серии i9xx поддержки AGP 8x стандартными средствами не обеспечивали. Одной из первых эту проблему решила компания ECS[англ.] на своей материнской плате 915P-A, оснащенной слотом AGP Express и слотом PCI Express x16 (при этом первый не только позволял устанавливать видеокарты класса AGP 8x, но и допускал одновременное использование двух видеокарт с разными интерфейсами), однако видеокарты заметно теряли в производительности при установке в слот AGP Express (ведь он на уровне пропускной способности был эквивалентен слоту PCI), на слабых видеокартах потери достигали 48 %, на мощных — до 20 % производительности. Gigabyte для решения проблемы разработала собственную технологию G.E.A.R. (Gigabyte Enhance AGP Riser), которая также слот AGP 8x реализует средствами PCI. Производитель особо подчеркивает, что это временное решение, предназначенное для непродолжительного замещения видеокарты с интерфейсом PCI Express x16, при этом официально уточняет, что интерфейс G.E.A.R. реализован за счет переключения команд и напряжений PCI на шину AGP, и неизбежное различие в их спецификациях может заметно сократить срок службы установленной в подобный разъем видеокарты класса AGP 8x или AGP 4x[2].
Доступ к памятиDMA (англ. Direct Memory Access) — прямой доступ к оперативной памяти компьютера, минуя центральный процессор. AGP GART: вспомогательное, предназначенное для DMA/DME аппаратное устройство в межшинном мосту от AGP слота к вышестоящим шинам на материнской плате (и внутри северного моста чипсета), разновидность IOMMU. Цель GART, как и всех IOMMU, заключается в том, что bitmap текстуры формируется кодом, исполняющимся под управлением ОС со страничной виртуальной памятью, и при этом может быть много больше 1 страницы, что означает — текстура непрерывна в памяти по виртуальным адресам, и совсем не обязательно непрерывна по физическим. Поскольку PCI/AGP/PCIx-контроллер ничего не знает о виртуальных адресах процессора, в простейшем случае его DMA engine увидит массив разрозненных физических страниц. В дисковых/Ethernet/USB/1394/звуковых контроллерах это не является большой проблемой, поскольку ввод-вывод на них последователен и не использует произвольный доступ к произвольным адресам памяти, потому можно применить chain DMA — создать список структур в DMA common buffer, ссылающихся друг на друга (и на страницы самих данных буфера-ввода-вывода) по шинным («физическим») адресам, и заставить контроллер поэтапно читать это список через тот же DMA и исполнять его (именно так проектируются практически все мало-мальски известные PCI/PCIx-контроллеры). Однако 3D-процессор видеокарты обращается к текстуре именно что по разрозненным адресам, и, дабы избежать усложнения самих 3D-видеопроцессоров, в самой шине AGP была реализована таблица трансляции адресов страниц с тех, что контроллер выставил по DMA («шинные») — на физические. Такая технология называется IOMMU. Для ознакомления с данной технологией можно попытаться отыскать в Интернете старый Windows DDK для Windows 2000 или XP, содержащий в разделе «примеры» исходный текст драйвера agp440.sys, который занимался именно программированием AGP GART (и при этом нарушал некоторые правила, изложенные в документации этого же DDK). DME (англ. Direct in Memory Execute) — доступ со стороны видеокарты через DMA уже не к текстурам, а к execute buffer, в котором драйвер видеокарты строил программу для 3D-процессора, ссылающуюся на текстуры. (ДАЛЕЕ НЕВЕРНО) в этом режиме основная и видеопамять находятся как бы в общем адресном пространстве (неверно: за исключением плоскостной видеопамяти EGA конца 80ых годов для 16цветных режимов графики видеопамять всегда находилась и находится в том же пространстве физических адресов, что и основная память, к DMA/DME это отношения не имеет. Другое дело, что доступ процессора к памяти видеокарты — медленный, по очевидным причинам много медленнее, чем доступ 3D-видеопроцессора, находящегося на той же карте, а также — см. выше про PCI burst mode — намного медленнее, чем доступ 3D-видеопроцессора через DMA к памяти на материнской плате). Общее пространство эмулируется с помощью таблицы отображения адресов (англ. Graphic Address Remapping Table, GART) блоками по 4 Кб (неверно, см. выше). Таким образом копировать данные из основной памяти в видеопамять уже не требуется (неверно: хотя Direct3D и дает такую возможность для приложений и игр, этого практически никто и никогда не делал, см. выше), этот процесс называют AGP-текстурированием. Очередь запросовПередача данных из основной памяти в видеопамять карты осуществляется в два этапа, сначала передаётся 64-битный адрес, откуда данные нужно считать, затем идут сами данные. Шина AGP предусматривает два варианта передачи:
РазвитиеС середины 2000-х материнские платы со слотами AGP практически не выпускаются; стандарт AGP был повсеместно вытеснен на рынке более быстрым и универсальным PCI Express[3][4]. Массовая замена разъема AGP на PCI-express в новых продуктах началась с середины 2004 года, и уже в 2006 году процесс перехода был, в целом, завершен[5]. Последними материнскими платами с AGP стали платы на чипсетах Intel поколения 8xx, Socket 775 и nForce 3 от nVidia, Socket 939 и AM2. Некоторое время в малом количестве выпускались видеокарты с подключением AGP для установки в более старые материнские платы. Они стоили дороже аналогичных карт PCI-E из-за использования микросхемы-переходника PCI-E → AGP. Последней серийно выпускавшейся видеокартой NVIDIA для шины AGP была GeForce 7800gs (XFX, nVidia, 2007 год)[6][7], позже компанией XFX была выпущена модель 7900GS на 256 и 512 Мб, а также самая мощная AGP-видеокарта на чипе от NVIDIA — 7950GT AGP. Помимо XFX, выпуском AGP версий 7900GS и 7950GT занимался ряд китайских компаний, у которых остались запасы чипов G71: Axle, Galaxy, Palit, Gainward. Для мирового рынка компания Gainward выпускала модели Bliss 7800GS с 20-пиксельными конвейерами (аналог 7900GS) и Bliss 7800GS+ с 24-пиксельными конвейерами (аналог 7950GT, но с немного меньшей частотой). Последними AGP-видеокартами от ATI были Radeon HD4650 и Radeon HD4670 (PowerColor, HIS, AMD, представлены летом 2009 года), первая видеокарта использовала видеопамять типа DDR2, вторая же имела более быструю память типа GDDR3. Несмотря на новизну, HD4670 уступала более старой HD3850 из-за того, что имела вдвое более узкую шину — 128 бит против 256 бит у предшественника. См. такжеСсылки
Примечания
|