AGP

Трансляция адресов — GART и апертура AGP

Порт AGP обеспечивает трансляцию логических адресов, фигурирующих в запросах акселератора к системной памяти, в физические адреса, согласуя видение ОЗУ программой, выполняемой акселератором, и программой, выполняемой на центральном процессоре. Трансляция осуществляется в постраничном базисе (по умолчанию размер страницы — 4 Кбайт), принятом в системе виртуальной памяти с подкачкой страниц по запросу, используемой в процессорах x86 (и других современных процессорах). Трансляции подлежат обращения, попадающие в апертуру AGP, — область физических адресов памяти, лежащую выше границы ОЗУ и, как правило, примыкающую к области локальной памяти адаптера (см. рисунок ниже). Таким образом, при работе в режиме DIME акселератору доступна непрерывная область памяти, часть которой составляет локальная память адаптера. Остальная часть адресуемой им памяти отображается на системное ОЗУ через апертуру с помощью таблицы GART (Graphics Address Remapping Table — таблица переопределения графических адресов). Каждый элемент этой таблицы описывает свою страницу в области апертуры. В каждом элементе GART есть признак его действительности; в действительных элементах указывается адрес страницы физической памяти, на которую отображается соответствующая область апертуры. Таблица GART физически находится в системном ОЗУ, она выровнена по границе 4-килобайтовой страницы, на ее начало указывают конфигурационные регистры порта AGP.

Размер апертуры AGP (определяющий и размер таблицы GART) задается программированием регистров чипсета. Путем настройки параметров CMOS Setup или внешних утилит его можно задать размером 8, 16, 32...256 и более Мбайт. Оптимальное значение апертуры зависит от объема памяти и используемых программ, но можно ориентироваться на половину объема системного ОЗУ. Заметим, что назначение размера апертуры в большинстве случаев еще не означает отчуждения указанного объема ОЗУ от системного ОЗУ — это лишь предельный размер памяти, которую ОС будет выделять акселератору по его запросам. Пока акселератору хватает своей локальной памяти, он не запрашивает память в системном ОЗУ. Только при нехватке локальной памяти он будет динамически запрашивать дополнительную, и эти запросы будут удовлетворяться в пределах установленной апертуры. По мере уменьшения потребности в дополнительной памяти она будет динамически высвобождаться для обычных нужд операционной системы. Правда, если у графического акселератора локальной памяти нет вообще (в дешевых интегрированных адаптерах), то от ОЗУ статически (на все время работы) отчуждается часть памяти (хотя бы под экранный буфер). Это видно по уменьшенному размеру памяти, который POST показывает в начале процесса загрузки.

Логика порта обеспечивает когерентность всех кэш-памятей системы для обращений мастера AGP вне диапазона адресов апертуры. В AGP 3.0 введена возможность выборочного обеспечения когерентности для обращений внутри апертуры. В предыдущих версиях предполагалось, что область памяти внутри апертуры должна быть просто некэшируемой. Поскольку эту память предполагалось использовать для хранения текстур (они достаточно статичны), такое упрощение вполне приемлемо.



Sitelinkx by eXtro-media.de
Яндекс.Метрика