♦ Конвейерные запросы не гарантируют когерентность памяти и кэша. Для операций, требующих когерентности, должны использоваться транзакции PCI.
Возможны
♦ Запросы вводятся по шине AD[31:0]
С/BE[3:0]
с помощью сигнала PIPE#
, по каждому фронту CLK
ведущее устройство передает очередное двойное слово запроса вместе с кодом команды.♦ Команды подаются через внеполосные (sideband) линии адреса SBA[7:0]
AD
. Синхронизация подачи запросов зависит от режима (1х, 2х или 4х).PIPE#
код команды AGP (CCCC) кодируется сигналами С/BE[3:0]
, при этом на шине AD
помещается начальный адрес (на AD[31:3]) и длина n (на AD[2:0]) запрашиваемого блока данных. Определены следующие команды:♦ 0000 (Read) — чтение из памяти (n+1) учетверенных слов (по 8 байт) данных, начиная с указанного адреса;
♦ 0001 (HP Read) — чтение с высоким приоритетом;
♦ 0100 (Write) — запись в память;
♦ 0101 (HP Write) — запись с высоким приоритетом;
♦ 1000 (Long Read) — «длинное» чтение (n+1)×4 учетверенных слов (до 256 байт данных);
♦ 1001 (HP Long Read) — «длинное» чтение с высоким приоритетом;
♦ 1010 (Flush) — очистка, выгрузка данных всех предыдущих команд записи по адресам назначения (на порте AGP выглядит как чтение, возвращающее произвольное учетверенное слово в качестве подтверждения исполнения; адрес и длина, указанные в запросе, значения не имеют);
♦ 1100 (Fence) — установка «ограждений», позволяющих низкоприоритетному потоку записей не пропускать чтения;
♦ 1101 (Dual Address Cycle, DAC) — двухадресный цикл для 64-битной адресации: в первом такте по AD
AD
) и код исполняемой команды (по С/BE[3:0]
).♦ тип 1: 0
ААА AAAA AAAA ALLL — поле длины (LLL) и младшие биты адреса (А[14:03]);♦ тип 2: 10
СС CCRA AAAA АААА — код команды (CCCC) и средние биты адреса (А[23:15]);♦ тип 3: 110
R AAAA АААА AAAA — старшие биты адреса (А [35:24]);♦ тип 4: 1110
AAAA АААА AAAA — дополнительные старшие биты адреса, если требуется 64-битная адресация.Посылка из всех единиц является пустой командой (NOP
♦ В режиме 1х каждая часть передается по фронту CLK; начало посылки (старшая часть) определяется по получению байта, отличного от 11111111b, по последующему фронту передается младшая часть. Очередная команда может вводиться
♦ В режиме 2х для SBA используется отдельный строб SB_STB
♦ В режиме 4х используется еще и дополнительный (инверсный) строб SB_STB#
SB_STB
, а младшая — по последующему спаду SB_STB#
. Частота стробов в два раза выше, чем CLK, так что в каждом такте CLK может вводиться Конечно, полный цикл введения команд (с посылками всех четырех типов) с учетом посылки NOP оказывается больше — 10, 5 и 2,5 тактов частоты CLK для режимов 1х, 2х и 4х соответственно.
В ответ на полученные команды порт AGP выполняет
ST[2:0]
(действительны только во время сигнала GNT#
, коды 100–110 зарезервированы):