КОМПЬЮТЕРНОЕ ЖЕЛЕЗО
HARDWARE FOR PC

Шины и карты расширения



Рис. 6.12. Конвейер AGP
Из состояния покоя IDLE порт может вывести запрос транзакции PCI (как от ускорителя, так и с системной стороны) или запрос AGP (только от ускорителя). В состоянии PCI транзакция PCI выполняется целиком, от подачи адреса и коман¬ды до завершения передачи данных. В состоянии A GP ведущее устройство пере¬дает только команду и адрес для транзакции (по сигналу PIPE* или через порт SBA), ставящейся в очередь; несколько запросов могут следовать сразу друг за другом. В состояние DATA порт переходит, когда у него в очереди имеется необслуженная команда, готовая к исполнению. В этом состоянии происходит передача данных для команд, стоящих в очереди. Это состояние может прерываться запро-сами PCI (для выполнения целой транзакции) ил и Л GP (для постановки в очередь

6.3. Магистральный интерфейс AGP
215
новой команды), но прерывание возможно только на границах данных транзак¬ций AGP. Когда порт AGP обслужит все команды, он снова переходит в состояние покоя. Все переходы происходят под управлением арбитра порта AGP, реагиру¬ющего на поступающие запросы (REQ# от ускорителя и внешние обращения от процессора или других устройств PCI) и ответы контроллера памяти. Транзакции AGP некоторыми моментами отличаются от транзакций PCI.

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

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

Транзакции адресуются только к системной памяти, используя то же простран¬
ство физических адресов, что и PCI. Транзакции могут иметь длину, кратную 8 байтам, и начинаться только по 8-байтной границе. Транзакции чтения ино¬го размера должны выполняться только в режиме PCI; транзакции записи мо¬гут использовать сигналы С/ВЕ[3:0]# для маскирования лишних байтов.

Длина транзакции явно указывается в запросе.

Конвейерные запросы не гарантируют когерентность памяти и кэша. Для опе¬
раций, требующих когерентности, должны использоваться транзакции PCI.
Возможны два способа подачи команд AGP (постановки запросов в очередь), из которых в текущей конфигурации выбирается один, причем изменение способа «на ходу» не допускается.

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

Команды подаются через внеполосные (sideband) линии адреса SBA[7:0]. «Внеполосность» означает, что эти сигналы используются независимо от занятости шины AD.

Hosted by uCoz