Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Магистральный интерфейс AGP.doc
Скачиваний:
4
Добавлен:
28.07.2019
Размер:
264.7 Кб
Скачать

3. Физический и электрический принципы функционирования интерфейса

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

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

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

При подаче команд по шине AD во время активности сигнала PIPE* код команды AGP (СССС) кодируется сигналами С/ВЕ[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) и код исполняемой команды (по С/ВЕ[3:0]).

При внеполосной подаче команд по шине SBA[7:0] передаются 16-битные посылки четырех типов. Каждая посылка передается за два приема, по фронту и спаду синхросигнала. Тип посылки кодируется старшими битами:

  • тип 1: ОААА АААА АААА ALLL — поле длины (LLL) и младшие биты адреса (А[14:03]);

  • тип 2:10СС CCRA АААА АААА — код команды (СССС) и средние биты адреса (А[23:15]);

  • тип 3: 110R АААА АААА АААА — старшие биты адреса (А[35:24]);

  • тип 4:1110 АААА АААА АААА — дополнительные старшие биты адреса, если требуется 64-битная адресация.

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

  • В режиме 1х каждая часть передается по фронту CLK; начало посылки (старшая часть) определяется по получению байта, отличного от 11111111b, по последующему фронту передается младшая часть. Очередная команда может вводиться за каждую пару тактов CLK (когда код команды и старший адрес уже введены).

  • В режиме 2х для SBA используется отдельный строб SB_STB, по его спаду передается старшая часть, а по последующему фронту — младшая. Частота этого строба (но не фаза) совпадает с CLK, так что очередная команда может вводиться в каждом такте CLK.

  • В режиме 4х используется еще и дополнительный (инверсный) строб SB_STB#.Старшая часть фиксируется по спаду SB_STB, а младшая — по последующему спаду SB_STB#. Частота стробов в два раза выше, чем CLK, так что в каждом такте CLK может вводиться пара команд.

Конечно, полный цикл введения команд (с посылками всех четырех типов) с учетом посылки NOP оказывается больше — 10, 5 и 2,5 тактов частоты CLK для режимов 1х, 2х и 4х соответственно.

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

Передачи данных AGP выполняются, когда шина находится в состоянии DATA. Как говорилось выше, фаза данных AGP явно не привязана к фазе команды/адреса. Фазы данных вводит порт AGP (системная логика), исходя из порядка ранее пришедших к нему команд от ускорителя. Ускоритель узнает о назначении шины AD в последующей транзакции по сигналам ST[2:0] (действительны только во время сигнала GNT#, коды 100-110 зарезервированы):

  • 000 — ведущему устройству будут передаваться данные низкоприоритетного запроса чтения, ранее поставленного в очередь (или выполняется очистка);

  • 001 — ведущему устройству будут передаваться данные высокоприоритетного запроса чтения;

  • 010 — ведущее устройство должно будет предоставлять данные низкоприори­тетного запроса записи;

  • 011 — ведущее устройство должно будет предоставлять данные высокоприоритетного запроса записи;

  • 111 — ведущему устройству разрешается поставить в очередь команду AGP (сигналом Р1РЕ#) или начать транзакцию PCI (сигналом FRAME*).

Ускоритель узнает лишь тип и приоритет команды, результаты которой последуют в данной транзакции. Какую именно команду из очереди отрабатывает порт, ускоритель определяет сам, так как именно он ставил их в очередь (ему известен порядок). Никаких тегов транзакций (как, например, в системной шине процессоров Р6) в интерфейсе AGP нет. Имеется только 4 независимых очереди для каждого типа команд (чтение низкоприоритетное, чтение высокоприоритетное, запись низкоприоритетная, запись высокоприоритетная). Фазы исполнения команд разных очередей могут чередоваться произвольным образом; порт имеет право исполнять их в порядке, оптимальном с точки зрения производительности. Реальный порядок исполнения команд (чтения и записи памяти) тоже может изменяться. Однако для каждой очереди порядок выполнения всегда совпадает с порядком подачи команд (об этом знают и ускоритель, и порт).

Запросы AGP с высоким приоритетом для арбитра системной логики являются более приоритетными, чем запросы от центрального процессора и ведущих устройств шины PCI. Запросы AGP с низким приоритетом для арбитра имеют приоритет ниже, чем от процессора, но выше, чем от остальных ведущих устройств. Хотя принятый протокол никак явно не ограничивает глубину очередей, спецификация AGP формально ее ограничивает до 256 запросов. На этапе конфигурирования устройства система PnP устанавливает реальное ограничение (в конфигурационном регистре ускорителя) в соответствии с его возможностями и возможностями системной платы. Программы, работающие с ускорителем (исполняемые и локальным, и центральным процессорами), не должны допускать превышения числа необслуженных команд в очереди (у них для этого имеется вся необходимая информация).

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

  • В режиме 1х данные (4 байта на AD[31:0]) фиксируются получателем по положительному перепаду каждого такта CLK, что обеспечивает пиковую пропускную способность 66,6 х 4 = 266 Мбайт/с.

  • В режиме 2х используются стробы данных AD_STBO и AD_STB1 для линий AD[0:15] и AD [16:31] соответственно. Стробы формируются источником данных, приемник фиксирует данные и по спаду, и по фронту строба. Частота стробов совпадает с частотой CLK, что и обеспечивает пиковую пропускную способ­ность 66,6 х 2 х 4 = 533 Мбайт/с.

  • В режиме 4х используются еще и дополнительные (инверсные) стробы AD_STBO# и AD_STB1#. Данные фиксируются по спадам и прямых, и инверсных стробов. Частота стробов в два раза выше, чем CLK, что и обеспечивает пиковую пропускную способность 66,6 х 2 х 2 х 4 = 1066 Мбайт/с.

Порт AGP должен отслеживать состояние готовности буферов ускорителя к посылке или получению данных транзакций, поставленных в очередь. Сигналом RBF# (Read Buffer Full) ускоритель может информировать порт о неготовности к приему данных низкоприоритетных транзакций чтения (к приему высокоприоритетных он должен быть всегда готов). Сигналом WBF# (Write Buffer Full) он информирует о неспособности принять первую порцию данных быстрой записи (Fast Write, FW).

Конфигурирование устройств с интерфейсом AGP выполняется так же, как и обычных устройств PCI, — через обращения к регистрам конфигурационного пространства. При этом AGP-устройства не требуют внешней линии IDSEL — у них внутренний сигнал разрешения доступа к конфигурационным регистрам соединен с линией AD16, так что обращение к конфигурационным регистрам AGP обеспечивается при AD16=1.

В процессе инициализации процедура POST только распределяет системные ресурсы, но операции AGP оставляет запрещенными. Работу AGP разрешает загруженная ОС, предварительно установив требуемые параметры AGP: режим обмена, поддержку быстрой записи, адресации свыше 4 Гбайт, способ подачи и допустимое число запросов. Для этого параметры устройств считываются из регистра состояния AGP, а согласованные параметры записываются в регистр команд AGP, расположенный в конфигурационном пространстве. Параметры настройки порта зада­ются через конфигурационные регистры чипсета системной платы (главного моста).

Регистр состояния AGP сообщает свойства порта: допустимое число запросов в очередях, поддержку внеполосной адресации, быстрой записи, адресации свы­ше 4 Гбайт, режимы 1х, 2х, 4х. В конфигурационном пространстве устройства AGP регистр, на который указывает CAP_PTR, содержит CAP_ID=02 (биты [7:0]) и но­мер версии спецификации AGP (биты [23:20] — старшая цифра, биты [19:16] — младшая).

Регистр состояния AGP (адрес CAP_PTR+4) содержит следующие поля:

  • биты [31:24] — RQ, допустимое суммарное число запросов, находящихся в оче­редях: 0 — 1 команда, 255 — 256 команд;

  • биты [23:10] - резерв (0);

  • бит 9 — SB A, поддержка внеполосной подачи команд;

  • биты [8:6] — резерв (0);

  • бит 5 — 4G, поддержка адресации памяти свыше 4 Гбайт;

  • бит 4 — FW, поддержка быстрой записи;

  • биты 3 — резерв (0);

  • биты [2:0] — RATE, поддерживаемые режимы обмена по AD и SBA: бит 0 — 1х, бит 1 — 2х, бит 2 — 4х.

Регистр команд AGP служит для разрешения этих свойств. Регистр команд AGP (адрес CAP_PTR+8) содержит следующие поля:

  • биты [31:24] — RQ_DEPTH, глубина очереди команд;

  • биты [23:10] - резерв (0);

  • бит 9 — 5BA_ENABLE, установка внеполосной подачи команд;

  • бит 8 — AGP_ENABLE, разрешение операций AGP;

  • биты [7:6] — резерв (0);

  • бит 5 — 4G, разрешение адресации памяти свыше 4 Гбайт (двухадресных циклов и посылок 4-го типа по SBA);

  • бит 4 — FW_Enable, разрешение быстрой записи;

  • биты 3 — резерв (0);

  • биты [2:0] — DATA_RATE, установка режима обмена: бит 0 — 1х, бит 1 — 2х, бит 2 — 4х (должен быть установлен лишь один бит).

Графический адаптер с интерфейсом AGP может быть встроен в системную пла­ту, а может располагаться и на карте расширения, установленной в слот AGP. Внешне карты с портом AGP похожи на PCI (рисунок 3), но у них используется разъем повышенной плотности с «двухэтажным» (как у EISA) расположением ламелей. Сам разъем находится дальше от задней кромки платы, чем разъем PCI.

Порт AGP может использовать два возможных номинала питания интерфейсных схем: 3,3 В и 1,5 В (уровни сигналов RST# и CLK всегда равны 3,3 В). Снижение напряжения питания буферных схем позволяет повысить достижимую частоту пе­реключений. Для режимов 1х и 2х может использоваться любой из номиналов питания буферов, для режима 4х — только 1,5 В. Для работы в режимах 2х и 4х приемникам требуется опорное напряжение Vref. Его номинал для 3,3 В составляет 0,4xVddq, для 1,5 В — 0,5xVddq. Опорное напряжение для приемников генерирует­ся на стороне передатчиков. На контакт А66 (Vrefgc) графическое устройство подает сигнал для порта, на контакт В66 (Vrefcg) порт (чипсет) подает напряже­ние для устройства AGP.

Рисунок 3. Слоты AGP: а — 3,3 В,б—1,5В,в — универсальные

По уровню питания буферов карты и порты AGP могут быть трех типов: 3,3 В, 1,5 В и универсальные, причем имеются механические ключи, предотвращающие ошибочные подключения. Слот и карта 3,3 В имеют ключи на месте контактов 22-25 (перегородка в слоте, см. рисунок 3, а, вырез на разъеме карты); слот и карта 1,5 В — на месте контактов 42-45. Универсальный слот не имеет перегородок, а универсальная карта имеет оба выреза. Универсальная системная плата узна­ет о номинале питания буферов установленной карты по сигналу TYPEDET* — на картах 3,3 В контакт свободен, на картах 1,5 В и универсальных — заземлен. Уни­версальная карта узнает о номинале питания буферов по уровню напряжения на контактах Vddq (3,3 или 1,5 В). Таким образом и обеспечивается согласование.

Назначение контактов слота AGP приведено в таблице 1, в позициях ключей через дробь указано назначение для карт 3,3/1,5 В. На универсальном слоте присут­ствуют все эти цепи, на универсальных картах все цепи, назначенные ключам, от­сутствуют. Из-за двух ключей на универсальной карте теряется пара контактов для подачи питания VCC3.3, и их остается только 4, что ограничивает потребля­емый ток (допустимый ток для каждого контакта — 1 А). На универсальной карте также нет дополнительного питания 3,3Vaux, используемого для питания цепей формирования сигнала РМЕ# в режиме «сна».

Таблица 1. Сигналы порта AGP

РядА

Ряд В

РядА

Ряд В

Spare

1

12V

Vddq3.3

34

Vddq3.3

5.0V

2

Spare

AD21

35

AD22

5.0V

3

Reserved

AD19

36

AD20

USB+

4

USB-

GND

37

GND

GND

5

GND

AD17

38

AD18

INTB#

6

1NTA#

C/BE2#

39

AD16

CLK

7

RST#

Vddq3.3

40

Vddq3.3

REQ#

8

GNT#

IRDY#

41

FRAME*

VCC3.3

9

VCC3.3

42

STO

10

ST1

GND

43

GND

ST2

11

Reserved

44

RBF#

12

PiPE#

VCC3.3

45

VCC3.3

GND

13

GND

DEVSEL*

46

TRDY#

Spare

14

Spare

Vddq3.3

47

STOP#

SBAO

15

SBA1

PERR#

48

Spare

VCC3.3

16

VCC3.3

GND

49

GND

SBA2

17

SBA3

SERR#

50

PAR

SB STB

18

Reserved

C/BE1#

51

AD 15

GND

19

GND

Vddq3.3

52

Vddq3.3

SBA4

20

SBA5

AD14

53

AD13

SBA6

21

SBA7

AD12

54

AD11

KEY

22

KEY

GND

55

GND

KEY

23

KEY

AD10

56

AD9

KEY

24

KEY

AD8

57

C/BE0#

KEY

25

KEY

Vddq3.3

58

Vddq3.3

AD31

26

AD30

AD STB0

59

Reserved

AD29

27

AD28

AD7

60

AD6

VCC3.3

28

VCC3.3

GND

61

GND

AD27

29

AD26

AD5

62

AD4

AD25

30

AD24

AD3

63

AD2

GND

31

GND

Vddq3.3

64

Vddq3.3

AD STB1

32

Reserved

AD1

65

ADO

AD23

33

C/BE3#

SMBO

66

SMB1

Кроме собственно AGP, в порте AGP заложены сигналы шины USB, которую предполагается заводить в монитор (линии USB+, USB- и сигнал OVRCNT*, которым сообщается о перегрузке по току линии питания +5 В, выводимой в монитор).

Сигнал РМЕ# относится к интерфейсу управления энергопотреблением (Power Management Interface). При наличии дополнительного питания 3,3Vaux этим сиг­налом карта может инициировать «пробуждение».

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

Рисунок 4. Коннектор карты AGP Pro (показан ключ питания карты 1,5 В): а—вид сверху, б — профиль ключей

В совокупности карта AGP Pro может потреблять до 110 Вт мощности, забирая ее по шинам питания 3,3 В (до 7,6 А) и 12 В (до 9,2 А) с основного разъема AGP, до­полнительного разъема питания AGP Pro и одного-двух разъемов PCI. Карты AGP Pro большой мощности (High Power, 50-110 Вт) занимают 2 слота PCI, малой (Low Power, 25-50 Вт) — 1 слот. Соответственно скобка крепления к задней пане­ли ПК у них имеет утроенную или удвоенную ширину. Кроме того, карты имеют крепеж к передней стенке ПК. На дополнительном разъеме цепь PRSNT1 # служит признаком наличия карты (контакт заземлен), a PRSNT2* — признаком потреб­ляемой мощности (до 50 Вт — контакт свободен, до 110 Вт — заземлен).

В спецификации AGP8X предполагаются следующие основные отличия:

  • введен новый режим передачи по шинам AD и SBA — 8х, обеспечивающий пиковую производительность 2,132 Гбайт/с;

  • исключены команды длинного чтения и записи;

  • исключены команды высокого приоритета (и упразднены сами понятия низкого и высокого приоритета);

  • исключена возможность подачи команд с помощью сигнала Р1РЕ#;

  • предпринимаются меры по обеспечению когерентности при обращениях к па­мяти, не лежащей в области GART;

  • несколько изменены протоколы передачи данных, применяется динамическое инвертирование шины данных для минимизации переключений.

Дополнительно предполагается введение поддержки изохронных передач; воз­можность установки нескольких портов AGP; возможность поддержки разных размеров страниц, описанных в GART; обеспечение когерентности при обраще­ниях к определенным страницам.