Помощничек
Главная | Обратная связь


Археология
Архитектура
Астрономия
Аудит
Биология
Ботаника
Бухгалтерский учёт
Войное дело
Генетика
География
Геология
Дизайн
Искусство
История
Кино
Кулинария
Культура
Литература
Математика
Медицина
Металлургия
Мифология
Музыка
Психология
Религия
Спорт
Строительство
Техника
Транспорт
Туризм
Усадьба
Физика
Фотография
Химия
Экология
Электричество
Электроника
Энергетика

Порт графического акселератора — AGP



Порт AGP (Accelerated Graphic Port — порт ускоренной графики) был введен для подключения графических адаптеров с 3D-акселераторами. Такой адаптер содержит: акселератор — специализированный графический процессор; локаль­ную память, используемую и как видеопамять, и как локальное ОЗУ графиче­ского процессора; управляющие и конфигурационные регистры, доступные как локальному, так и центральному процессорам. Акселератор может обращаться и к локальной памяти, и к системному ОЗУ, в котором для него могут хранить­ся наборы данных, не умещающиеся в локальной памяти (как правило, текстуры большого объема). Основная идея порта AGP заключается в предоставлении акселератору максимально быстрого доступа к системной памяти (локальная ему и так близка), более приоритетного, чем доступ к ОЗУ со стороны других устройств.

Порт AGP представляет собой 32-разрядный параллельный синхронный интер­фейс с тактовой частотой 66 МГц; большая часть сигналов позаимствована с шины PCI. Однако, в отличие от PCI, интерфейс порта AGP двухточечный, соединяющий графический акселератор с памятью и системной шиной процес­сора каналами данных чипсета системной платы, не пересекаясь с «узким ме­стом» — шиной PCI. Обмен через порт может происходить как по протоколу PCI, так и по протоколу AGP. Отличительные особенности порта AGP:

♦ конвейеризация обращений к памяти;

♦ умноженная относительно тактовой частоты порта частота передачи данных
(2х/4х/8х);

♦ «внеполосная» подача команд (SBA), обеспеченная демультиплексировани­
ем шин адреса и данных.

Идею конвейеризации обращений к памяти иллюстрирует рис. 14.3, где сравни­ваются обращения к памяти по шине PCI и через порт AGP. В PCI во время ре­акции памяти на запрос шина простаивает (но не свободна). Конвейерный до­ступ AGP позволяет в это время передавать следующие запросы, а потом полу­чать поток ответов.

Умножение частоты передачи данных обеспечивает при частоте 66 МГц пико­вую пропускную способность до 533 Мбайт/с в режиме 2х, до 1066 при 4х и до 2132 Мбайт/с при 8х. Выше 66 МГц тактовую частоту официально не поднимают.

Демультиплексирование (разделение) шины адреса и данных реализовано не­сколько необычно. С целью экономии числа интерфейсных линий шину адреса и команды в демультиплексированном режиме AGP представляют всего 8 ли­ний SB A (SideBand Address), по которым команда, адрес и значение длины пе­редачи передаются последовательно за несколько тактов. Поддержка демульти­плексированной адресации не являлась обязательной для устройства AGP 1.0, поскольку имеется альтернативный способ передачи адреса по шине AD. В вер­сии AGP 2.0 она стала обязательной, а в 3.0 — это уже единственный способ пе­редачи адреса.

Отметим, что порт AGP обеспечивает только потенциальные преимущества, ко­торые могут быть реализованы лишь при поддержке аппаратными средствами графического адаптера и специального ПО. Графический адаптер с интерфей­сом AGP может реально вести себя по-разному:

♦ не задействовать конвейеризацию, а использовать только быструю запись PCI (Fast Write);

♦ не работать с текстурами, расположенными в системной памяти, но обеспе­
чивать более быстрый обмен данными между памятью и локальным буфе­
ром;

♦ использовать все возможности порта, когда акселератор получает быстрый
доступ к системной памяти, а центральный процессор может быстро закачи­
вать данные в локальную память адаптера.

Порт AGP содержит практически полный набор сигналов шины PCI и допол­нительные сигналы AGP. Устройство, подключаемое к порту AGP, может пред­назначаться как исключительно для операций AGP, так и для комбинирован­ных операций AGP и PCI. Акселератор адаптера является мастером (ведущим устройством) порта AGP, свои запросы он может выполнять как в режиме AGP, так и в режиме PCI. В режиме AGP обмены выполняются с поддержкой (или без поддержки) таких свойств, как внеполосная адресация (SBA) и скоро­сти 2х/4х/8х. Для транзакций в режиме AGP ему доступно только системное ОЗУ (но не локальная память устройств PCI). Кроме того, адаптер является целевым устройством PCI, для которого, помимо обычных команд PCI, может поддерживаться (или не поддерживаться) быстрая запись (Fast write) со скоро­стью 2х/4х/8х стороны процессора. В качестве целевого устройства адаптер вы­ступает при обращениях ЦП к его локальной памяти, регистрам ввода-вывода и конфигурационного пространства.

Порт AGP позволяет акселератору работать в двух режимах — DMA и DIME (Direct Memory Execute). В режиме DMA акселератор при вычислениях рас­сматривает локальную память как первичную, а когда ее недостаточно, подка­чивает в нее данные из основной памяти. В режиме DIME, он же режим испол­нения (executive mode), локальная и основная память для акселератора логи­чески равнозначны и располагаются в едином адресном пространстве. В режи­ме DMA для трафика порта характерны длительные блочные передачи, в режи­ме DIME трафик порта насыщен короткими произвольными запросами.

Спецификации AGP разрабатывались фирмой Intel на базе шины PCI 2.1 с час­тотой 66 МГц; пока имеется три основные версии спецификаций:

♦ AGP 1.0 (1996 г.) — определен порт с конвейерным обращением к памяти и
двумя альтернативными способами подачи команд: внеполосной (по шине
SBA) и внутриполосной (по сигналу Р1РЕ#). Режимы передачи — 1х/2х, пита­
ние интерфейса — 3,3 В.

♦ AGP 2.0 (1998 г.) — добавлена возможность быстрой записи в режиме PCI
(Fast Writes), а также режим 4х с питанием 1,5 В.

AGP 3.0 (2002 г., проект назывался AGP8X) — добавлен режим 8х с питани­
ем 0,8 В и динамическим инвертированием байтов, отменены скорости 1х
и 2х; оставлен один способ подачи команд — внеполосный (SBA); исключе­
ны некоторые команды AGP; введены команды изохронного обмена; введена
возможность выбора размера страниц, описанных в таблице GART; введена
селективная поддержка когерентности при обращениях к разным страницам
в пределах GART.

Порт AGP предназначен только для подключения интеллектуального графиче­ского адаптера (причем только одного), имеющего SD-акселератор. Системная логика порта AGP отличается сложным контроллером памяти, который выпол­няет глубокую буферизацию и высокопроизводительное обслуживание запро­сов AGP (от адаптера) и других своих клиентов — центрального процессора (одного или нескольких) и шины PCI. Единственный вариант подключения не­скольких адаптеров с AGP — организация на системной плате нескольких пор­тов AGP, что вряд ли когда-нибудь будет применяться.

AGP может реализовать всю пропускную способность 64-битной системы па­мяти современного компьютера. При этом возможны конкурирующие обраще­ния к памяти со стороны как процессора, так и мостов шин PCI. Фирма Intel впервые ввела поддержку AGP в чипсеты для процессоров Р6, конкуренты ис­пользуют AGP и в системных платах для процессоров с интерфейсом Pentium (сокет Super 7). В настоящее время порт AGP имеется во многих системных платах для PC-совместимых компьютеров и других платформ (даже Macin­tosh). Однако в перспективе его, похоже, заменит PCI Express.

Протоколы транзакций

Транзакции в режиме PCI, инициируемые акселератором, выполняются обыч­ным для PCI способом. Заметим, что при этом на все время транзакции шина AD занята, причем транзакции чтения памяти занимают шину на большее число тактов, чем транзакции записи, — после подачи адреса неизбежны такты ожида­ния на время доступа к памяти. Запись на шине происходит быстрее — данные записи задатчик посылает сразу за адресом, а на время доступа к памяти они «оседают» в буфере контроллера памяти. Контроллер памяти позволяет завер­шить транзакцию и освободить шину до физической записи в память.

Конвейерные транзакции AGP (команды AGP) инициируются только акселерато­ром; логикой AGP они ставятся в очередь на обслуживание и исполняются в зави­симости от приоритета, порядка поступления запросов и готовности данных. Эти транзакции могут быть адресованы акселератором только к системному ОЗУ.

Обращения со стороны процессора (или задатчиков шины PCI), адресованные к устройству на AGP, отрабатываются им как ведомым устройством PCI, одна­ко имеется возможность быстрой записи в локальную память irW(Fast Write), в которой данные передаются на скорости AGP (2х/4х/8х), и управление пото­ком их передач ближе к протоколу AGP, нежели к PCI. Транзакции FW ини­циируются процессором и предназначены для принудительного «заталкива­ния» данных в локальную память акселератора.

Концепцию конвейера AGP иллюстрирует рис. 14.4. Порт AGP может находить­ся в одном из четырех состояний:

IDLE — покой;

DATA — передача данных конвейеризированных транзакций;

AGP — постановка в очередь команды AGP;

PCI — выполнение транзакции в режиме PCI.

Из состояния покоя IDLE порт может вывести запрос транзакции PCI (как от акселератора, так и с системной стороны) или запрос AGP (только от акселера­тора). В состоянии PCI транзакция PCI выполняется целиком, от подачи адреса и команды до завершения передачи данных. В состоянии AGP ведущее устрой­ство передает только команду и адрес для транзакции (по сигналу Р1РЕ# или че­рез шину SBA), ставящейся в очередь; несколько запросов могут следовать друг за другом. В состояние DATA порт переходит, когда у него в очереди имеется необслуженная команда, готовая к исполнению. В этом состоянии происходит передача данных для команд, стоящих в очереди. Данное состояние может пре­рываться вторжением запросов PCI (для выполнения целой транзакции) или AGP (для постановки в очередь новой команды), но прерывание1 возможно только на границах данных транзакций AGP. Когда порт AGP обслужит все ко­манды, он снова переходит в состояние покоя. Все переходы происходят под управлением арбитра порта AGP, реагирующего на поступающие запросы (сиг­нал REQ# от акселератора и внешние обращения от процессора или других уст­ройств PCI) и ответы контроллера памяти.

Транзакции AGP отличаются от транзакций PCI:

♦ фаза данных отделена от фазы адреса, чем и обеспечивается конвейериза­
ция;

♦ используется собственный набор команд;

♦ транзакции адресуются только к системной памяти;

♦ длина транзакции явно указывается в запросе;

♦ конвейерные запросы не гарантируют когерентность памяти и кэша.

Существует два способа подачи команд AGP (постановки запросов в очередь), из которых в текущей конфигурации выбирается один, причем изменение спо­соба «на ходу» не допускается:

♦ запросы вводятся по шине AD[31:0] и С/ВЕ[3:0] с помощью сигнала Р1РЕ#, по
каждому фронту CLK ведущее устройство передает очередное двойное слово
запроса вместе с кодом команды;

команды подаются через внеполоспые (sideband) линии адреса SBA[7:0]
(«внеполосность» означает, что эти сигналы используются независимо от занятости шины AD), причем синхронизация подачи запросов зависит от ре­жима (1х/2х/4х/8х).

При внеполосной подаче команд по шине SBA[7:0] передаются 16-битные посыл­ки четырех типов:

♦ тип 1 — поле длины и младшие биты адреса;

♦ тип 2 — код команды и средние биты адреса;

♦ тип 3 — старшие биты адреса;

♦ тип 4 — дополнительные старшие биты адреса для 64-битной адресации.

Посылки типов 2, 3 и 4 являются «липкими» (sticky) — значения, ими опреде­ляемые, сохраняются до введения новой посылки того же типа. Постановку ко­манды в очередь инициирует посылка типа 1, задающая длину транзакции и ее младшие адреса. Такой способ очень экономно использует такты шины для по­дачи команд при пересылках массивов. Каждая двухбайтная посылка передает­ся по 8-битной шине SBA в два приема (сначала старший, потом младший байт). Синхронизация байтов зависит от режима порта:

♦ в режиме 1х каждый байт передается по фронту CLK; очередная команда (по­
сылкой типа 1) может вводиться за каждую пару тактов CLK, полный цикл
ввода команды занимает 10 тактов;

♦ в режиме 2х для SBA используется двойная синхронизация (по фронту и спа­
ду SB_STB), очередная команда может вводиться в каждом такте CLK;

♦ в режиме 4х частота стробов в два раза выше, чем CLK, в каждом такте CLK мо­
жет вводиться пара посылок, но мастер AGP может ставить в очередь не бо­
лее одного запроса за такт;

♦ в режиме 8х частота стробов в 4 раза выше CLK, в каждом такте CLK умещают­
ся уже 4 посылки, но в очередь ставится не более одной команды за такт CLK.

В ответ на полученные команды порт AGP выполняет передачи данных, причем фаза данных AGP явно не привязана к фазе команды/адреса. Фаза данных вво­дится портом AGP по готовности системной памяти к запрашиваемому обмену.

Передачи данных AGP выполняются, когда шина находится в состоянии DATA. Фазы данных вводит порт AGP (системная логика), исходя из очередности ра­нее пришедших к нему команд от акселератора. Акселератор узнает о назначе­нии шины AD в последующей транзакции по сигналам ST[2:0], причем узнает лишь тип и приоритет команды, результаты которой последуют в данной тран­закции. Какую именно команду из очереди отрабатывает порт, акселератор оп­ределяет сам, так как именно он ставит их в очередь (ему известен порядок). Никаких тегов транзакций (как, например, в системной шине процессоров Р6 или в PCI-X) в интерфейсе AGP нет. Имеются только независимые очереди для каждого типа команд (чтение низкоприоритетное, чтение высокоприори­тетное, запись низкоприоритетная, запись высокоприоритетная). Фазы испол­нения команд разных очередей могут чередоваться произвольным образом; порт имеет право исполнять их в порядке, оптимальном с точки зрения произ­водительности. Реальный порядок исполнения команд (чтения и записи памя­ти) тоже может меняться. Однако для каждой очереди порядок выполнения всегда совпадает с порядком подачи команд (об этом знают и акселератор, и порт). В AGP 3.0 приоритеты очередей отменили, но ввели возможность изо­хронных транзакций.

Арбитр системной платы в первую очередь обслуживает высокоприоритетные запросы AGP, затем запросы от центрального процессора и мастеров шины PCI и в последнюю очередь — низкоприоритетные запросы AGP.

При передаче данных AGP управляющие сигналы, заимствованные от PCI, имеют почти такое же назначение, что и в PCI. Передача данных AGP в режиме 1х очень похожа на циклы PCI, но немного упрощена процедура квитирования (поскольку это выделенный порт, и обмен выполняется только с быстрым кон­троллером системной памяти). В режимах 2х/4х/8х имеется специфика стро-бирования:

в режиме 1х данные фиксируются получателем по положительному пе­
репаду каждого такта CLK, что обеспечивает пиковую скорость 66,6 х 4 в

- 266 Мбайт/с;

в режиме 2х используются стробы, формируемые источником данных, при­
емник фиксирует данные и по спаду, и по фронту строба, частота стробов
совпадает с частотой CLK, что и обеспечивает пиковую скорость 66,6 х 2 х 4 в

- 533 Мбайт/с;

в режиме 4х частота стробов в два раза выше, чем CLK, что и обеспечивает пи­
ковую скорость 66,6 х 2 х 2 х 4 в 1066 Мбайт/с;

в режиме 8х пары стробов переключаются с частотой в четыре раза выше
CLK, стробы сдвинуты относительно друг друга на половину своего периода,
чем и обеспечивается пиковая скорость 66,6 х4х2х4в2132 Мбайт/с.

 




Поиск по сайту:

©2015-2020 studopedya.ru Все права принадлежат авторам размещенных материалов.