Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Avdeev

.pdf
Скачиваний:
158
Добавлен:
01.06.2015
Размер:
1.99 Mб
Скачать

100

(31-0), определяет группу линий (сигналов) с номерами от 31 до 0, t/s- двунаправленный сигнал ввода-вывода с тремя состояниями, s/t/s – активный по низкому уровню активный сигнал с тремя состояниями, in – стандартный сигнал ввода, out – стандартный активный формирователь, o/d – открытый сток для объединения сигналов (ИЛИ).

AD(31-0) t/s – мультиплексированная шина адреса/данных. Шинное событие (транзакция) состоит из одной фазы адреса и одной или нескольких следующих фаз данных.

C/BE(3-0)# t/s – мультиплексированная шина команды/разрешения байтов. Во время фазы адреса выполняется передача команды (чтение или запись ввода/вывода, чтение или запись в память и т.д.), а во время фазы данных – битов, указывающих назначимые(разрешенные)байтынашинеAD,например,C/BE(3)#определяет байт

3 (AD31-AD24), C/BE(0)# - байт 0 (AD7-AD0).

PAR t/s – четный паритет сигналов AD(31-0) и C/BE(3-0)# для всех агентов шины PCI.

Линии AD(31-0), C/BE(3-0)# и PAR относятся к линиям адреса и данных. Следующую группу линий соответствующих сигналов составляют линии сигналов управления интерфейсом.

FRAME# t/s – цикл кадра. Этот сигнал устанавливается инициатором и указывает на начало транзакции шины , снятие сигнала означает заключительную (финальную) фазу данных.

IRDY# s/t/s – готовность инициатора. Мастер формирует этот сигнал, если способен передать или принять данные. Сигнал IRDY# употребляется совместно с сигналом TRDY#. Фаза данных выполняется при наличии активных (низких) уровней сигналов IRDY# и TRDY#.Если хотя бы один из этих сигналов имеет пассивный (высокий) уровень, в работе инициатора вставляются такты ожидания.

TRDY# s/t/s – готовность цели показывает возможность выбранного устройства закончить текущую фазу данных. При чтении TRDY# указывает на достоверность передаваемых данных, а при записи – на готовность цели принять данные.

STOP# s/t/s – стоп. Сигнал цели сообщает мастеру о приостановке текущего события.

101

LOCK# s/t/s – блокировка. Когда LOCK# установлен мастером, операции могут происходить по любым адресам, кроме заблокированных.

IDSEL# in – выбор устройства инициализации. Сигнал формируется главным мостом или мостом PCI-PCI для выбора устройства при записи или чтении его памяти конфигурации.

DEVSEL# s/t/s – выбор устройства, для мастера этот сигнал показывает, что устройство (цель) на шине выбрано, а для цели - что мастер декодировал адрес и выбрал цель.

Следующая группа сигналов связана с арбитражем и используется только инициаторами для захвата шины.

REQ# t/s – запрос. Показывает арбитру, что инициатор требует шину PCI. Каждый инициатор устанавливает собственный REQ#.

GNT# t/s – разрешение, устанавливается арбитром и поступает на вход соответствующего инициатора, которому этот сигнал принадлежит.

К сигналам, сообщающим об ошибках, относятся сигналы PERR# и SERR#. PERR# s/t/s – ошибка четности формируется агентом, обнаружившим ошибку паритета. Минимальная продолжительность этого сигнала – один такт для каждой

фазы данных.

SERR# o/d – системная ошибка, сообщает об ошибке паритета адреса, данных при выполнении на шине PCI специального цикла (передачи кодов сообщений, указывающих на состояние процессора (агента шины PCI)).

Системную группу сигналов составляют сигналы CLK и RST#.

CLK in – тактовые импульсы, которые управляют по переднему фронту формированием всех сигналов шины PCI, кроме сигналов сброса и прерывания.

RST# in – сброс, устанавливает регистры в начальное состояние.

Вкачественеобязательныхсигналоврассмотримтолькосигналыпрерывания. INTA# o/d – прерывание А. Сигнал запроса прерывания для однофункцио-

нальных агентов.

INTB# - INTD# o/d – запросы прерываний только для многофункциональных агентов шины PCI.

Команды шины, передаваемые во время адресной фазы по линиям C/BE#, показаны в табл. 5.1.

102

 

Таблица 5.1

 

 

КОД (C/BE)

НАЗНАЧЕНИЕ КОМАНДЫ

0000

Подтверждение прерывания

0001

Специальный цикл

0010

Чтение ввода/вывода

0011

Запись ввода/вывода

0100

Резерв

0101

Резерв

0110

Чтение памяти

0111

Запись в память

1000

Резерв

1001

Резерв

1010

Чтение конфигурации

1011

Запись конфигурации

1100

Многократное чтение памяти

1101

Цикл двойного адреса

1110

Линейное чтение памяти

1111

Запись в память и обнуление

Подтверждениепрерывания– чтение(неявноадресованного)системногоконтроллера прерывания. При выполнении команды адрес в соответствующей фазе не используется, а во время фазы данных сигналы разрешения байтов показывают размер возвращаемого вектора.

Специальный цикл обеспечивает простой механизм передачи сообщений на PCI, например, состояния процессора или дополнительной сигнализации между агентами шины PCI. Команда не содержит явного адреса и передает сообщение всем агентам, среди которых находятся заинтересованные агенты, обрабатывающие полученную информацию. Чтение ввода/вывода – команда чтения данных агента, находящегося в адресном пространстве ввода/вывода. При выполнении команды все 32 бита адреса должны быть дешифрированы и сигналы C/BE(3-0)# указывают на размер передаваемых данных.

Запись ввода/вывода – эта команда выполняет запись данных в выбранное устройство на шине PCI и в остальном совпадает с командой чтения ввода/вывода. Здесь следует отметить, что большинство плат ввода/вывода шины ISA используют 10-битный адрес.

Чтение памяти– чтение данных агента,расположенного в адресном пространстве памяти.

103

Запись в память – команда, употребляющая адресное пространство памяти. Чтение конфигурации осуществляется из области конфигурации требуемого

агента. Агент выбран, если его IDSEL активен.

Запись конфигурации заключается в передаче данных в конфигурационную память, выбранную сигналом IDSEL соответствующего агента.

Многократное чтение памяти используется мастером для частой передачи больших массивов данных, если есть программно доступный буфер данных (КЭШ).

Цикл двойного адреса необходим для выполнения передачи 64-битного адреса соответствующих агентов.

Линейное чтение памяти – команда, аналогичная команде чтения памяти, за исключением того, что мастер реализует больше, чем две 32-битные фазы данных. Эта команда применяется при частой передаче больших массивов данных.

Запись в память и обнуление позволяет оптимально использовать память, гарантируя минимум передач для заполнения одной КЭШ, и требует размера КЭШ, заданного в конфигурационном регистре.

На шине PCI используется пакетный основной принцип передачи данных, состоящий из фазы адреса и одной или более фаз данных и применяемый в пространстве памяти или ввода/вывода.

Формирование пакетов выполняет шлюз, стоящий между процессором и шиной PCI, так как процессор в настоящее время реализует только одну фазу данных. Если к шине PCI подключено устройство с одной фазой данных, то оно (в случае многофазовой передачи) после первой фазы прерывает к себе доступ. Для корректной работы устройства все доступы ввода/вывода появляются на шине PCI, как только процессор сгенерирует их.

В пространстве ввода/вывода дешифрация адреса выполняется каждым устройством PCI, причем младшие разряды адреса AD1 и AD0 позволяют заранее (без задержки) определить разрешенный байт данных (табл. 5.2).

 

 

 

 

 

Таблица 5.2

AD1

AD0

C/BE3#

C/BE2#

C/BE1#

C/BE0#

0

0

*

*

*

0

0

1

*

*

0

1

104

1

0

*

0

1

1

1

1

0

1

1

1

Примечание: 0 – сигнал C/BE#

активен,

 

 

* - безразличное состояние.

Устройства PCI , использующие адресное пространство памяти, должны проверять младшие биты адреса AD1 и AD0, чтобы обеспечить нужный пакетный порядок. Для доступа к 32-битным данным (DW) памяти употребляются разряды адреса AD(31-2). При пакетной передаче необходимо после каждой фазы данных выполнять линейный инкремент адреса, если биты AD1 и AD0 равны 0. Кроме того, значение 01 соответственно этих же битов задает определенный режим переключения ячеек КЭШ.

Управление пересылкой данных выполняется с помощью трех сигналов: FRAME#, IRDY#, TRDY#. Сигнал FRAME# формируется мастером и указывает начало и конец события на шине. Если сигналы FRAME# и IRDY# сняты (высокие уровни), то интерфейс свободен (находится в пассивном состоянии).

Первый положительный (передний) фронт такта CLK определяет фазу адреса, вовремякоторойнаправляетсяадресикодкомандыотмастерак исполнителю.Если сигналы IRDY# и TRDY# имеют низкие (активные) уровни, то в соответствующем такте CLK выполняется передача данных. Снятие любого из этих сигналов вызывает появление тактов ожидания в работе мастера (приостанавливается передача данных). Кроме того, следует отметить, что все сигналы выбираются по переднему фронту сигнала CLK.

На рис. 5.2 представлена временная диаграмма чтения, в которой для упрощения рисунка показаны две фазы передачи (ПЕР) данных (ДАН1 и ДАН2) и один такт ожидания (ОЖИД), устанавливаемый мастером с помощью сигнала TRDY#.

Обозначение ‘ x ‘ на диаграмме указывает на переключение сигнала на соответствующей линии шины PCI, т.е. один агент прекращает управление сигналом, а другой начинает. Исполнитель, опознав собственный адрес , устанавливает сигнал DEVSEL# и затем направляет данные по шине AD(31-0) к мастеру. Сигнал DEVSEL# может быть установлен перед передачей данных или одновременно с ними. Сброс сигнала DEVSEL# совпадает со снятием сигнала TRDY#. В фазе данных сигналы C/BE# показывают разрешенные (РАЗР) байты на шине AD(31-0). По

105

данным пакета мастер узнает, что следующая фаза последняя, и снимает сигнал FRAME#. Событие на шине завершается, если FRAME# и IRDY# неактивны.

CLK

FRAME#

AD(31-0) АДР ДАН1 ДАН2

C/BE(3-0)#

 

 

КОМ

 

 

 

РАЗР. БАЙТОВ (BE#)

 

 

 

 

 

IRDY#

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

TRDY#

 

 

 

 

 

 

 

ПЕР ОЖИД

 

ПЕР

 

 

DEVSEL#

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ФАЗА

 

 

ФАЗА

 

ФАЗА

 

 

 

 

 

АДР

 

 

ДАН1

 

ДАН2

 

 

СОБЫТИЕ НА ШИНЕ

Рис. 5.2. Временная диаграмма чтения

Событие на шине может быть прекращено по инициативе мастера или цели. Если событие завершается мастером, то он снимает сигнал FRAME# при активном сигнале IRDY#, сообщая цели о предстоящей финальной фазе данных. Эта последняя фаза данных происходит при активных сигналах IRDY# и TRDY#. После чего сбрасывается сигнал IRDY# и вместе с сигналом FRAME# он приобретает неактивный уровень, что означает пустое состояние шины.

Для прекращения события на шине со стороны цели используется сигнал STOP#, который должен быть активным, пока FRAME# не станет пассивным.

В случае, когда ни один исполнитель не отвечает мастеру, то он, если снят сигнал DEVSEL#, завершает событие на шине, которое называется мастер-аборт, приэтомсбрасываютсясигналыFRAME#иDEVSEL#.Временнаядиаграммазаписи данных изображена на рис. 5.3.

106

Запись начинается установкой сигнала FRAME#. На рис. 5.3 показаны две фазы данных и один такт ожидания, который устанавливается путем снятия мастером сигнала IRDY#.

CLK

FRAME#

AD(31-0) АДР ДАН1 ДАН2

C/BE(3-0)#

КОМ

BE#1

BE#2

IRDY#

 

ПЕР ОЖИД

ПЕР

TRDY#

 

 

 

DEVSEL#

 

 

 

 

ФАЗА

ФАЗА

ФАЗА

 

АДР

ДАН1

ДАН2

СОБЫТИЕ НАШИНЕ

Рис. 5.3. Временная диаграмма запись

В основном операция записи аналогична операции чтения за исключением того, что адрес и данные устанавливаются мастером. Последняя фаза данных определяется тем, что FRAME# пассивен, а IRDY# активен.

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

На рис. 5.4 показана временная диаграмма арбитража.

Диаграмма иллюстрирует взаимодействие двух агентов А и В на шине PCI. Вначале агент А устанавливает первым запрос REQ#A на управление шиной, поступающий в арбитр, и получает к ней доступ с приходом сигнала GNT#A от арбитра. С этого момента времени агент А формирует FRAME# и начинает передачу данных на шине. Сигнал REQ#A удерживается агентом, который желает продол-

107

CLK

REQ#A

REQ#B

GNT#A

GNT#B

FRAME#

AD(31-0)

АДР ДАН

АДР ДАН

 

ДОСТУП А

ДОСТУП В

Рис. 5.4. Временная диаграмма арбитража

жить событие на шине. Когда FRAME# агента А установлен, арбитр принимает запрос REQ#B агента В и сбрасывает сигнал GNT#A . С поступлением этого сигнала агент А заканчивает передачу данных на шине и снимает сигналы FRAME# и IRDY# (освобождает интерфейс).

При наличии сигнала арбитра GNT#B активного (низкого) уровня и при выполнении условия освобождения интерфейса агентом А (сигналы FRAME# и IRDY# имеют пассивный уровень) управление интерфейсом получает агент В. Если запрос REQ#B агента В снят, то это указывает арбитру на завершение события на шине агентом В и арбитр обслуживает запрос агента А. Арбитр может снять GNT# какоголибо агента В в любое время, если установлен более приоритетный запрос REQ# другого агента.

Шина PCI реализует циклы подтверждения прерывания. Временная диаграмма цикла подтверждения прерывания показана на рис. 5.5.

Временная диаграмма выполняется при реализации инициатором команды подтверждения прерывания (0000) после получения сигнала запрета прерывания. В фазе адреса инициатор передает произвольное значение адреса и код команды

108

(0000), а в фазе данных исполнитель устанавливает вектор (младший байт), разрешение которого определяется инициатором (1000). Исполнитель должен направить вектор инициатору, когда установлены TRDY# и DEVSEL#.

CLK

FRAME#

AD(31-0)

C/BE(3-0)#

IRDY#

TRDY#

Рис. 5.5. Временная диаграмма подтверждения прерывания

На шине PCI выполняется контроль четности всеми агентами в фазах адреса и данных, причем сигналы C/BE(3-0)# участвуют также при контроле. Сигнал PAR формируетсяагентом,которыйуправляетAD(31-0),и отстаетнаодинтактотадреса или данных. На рис. 5.6 изображена временная диаграмма контроля четности при выполнении операций чтения и записи данных.

t1

t2

t3

t4

t5

t6

t7

t8

t9

CLK

FRAME#

AD(31-0)

АДР

ДАН

АДР

ДАН

PAR#

PERR#

Рис. 5.6. Временная диаграмма контроля четности

Во время выполнения операции чтения инициатор вырабатывает сигнал PAR# для информации, устанавливаемой во время фазы адреса (t3), и при записи для

109

информациифазыадреса(t7)иданных(t8),аисполнительформируетPAR#вовремя ввода данных (t5) в инициатор. В случае обнаружения ошибки паритета агент устанавливает сигнал PERR#.

Рассмотрим некоторые требования, предъявляемые к устройствам шины PCI.Вкачествеформирователей(приемников)сигналовшиныследуетиспользовать элементы, которые не потребляют ток в статическом состоянии, а потребляют его в моменты переключения. К таким элементам относятся КМОП (комплиментарные полевые кремниевые элементы), позволяющие существенно снизить потребление устройством энергии. Для построения интерфейсных схем (контроллеров) можно использовать программируемые логические интегральные схемы (ПЛИС), изготовленные по технологии КМОП, например ПЛИС фирмы Xilinx, или отечественные аналоги, выпускаемые Воронежским НИИЭТ.

Во внешней плате, подключаемой через слот (разъем) к шине PCI, большую часть тока потребляют подтягивающие резисторы (2.7К при напряжении 5V), стабилизирующиезначениясигналовшиныPCI.ВслотешиныPCI имеютсядваконтакта: PRSNT1# и PRSNT2#, коды на входах которых используются для индикации внешней платы в слоте и определения потребляемой мощности платой. Например, код 00 указывает, что внешняя плата присутствует и потребляемая ею мощность 7.5W максимум. Таким образом, внешняя плата должна указывать максимальную потребляемую мощность. Слоты подключаются к четырем шинам питания: 5V, 3.3V, 12V и – 12V. Максимальная потребляемая мощность каждой внешней платой равна 25W. Формирователи должны иметь выходной ток низкого уровня (без резистора) – 3 мА или 6 мА с резистором. Максимальная емкость вывода компонента равна 10 пФ и максимальная длина дорожки от соединителя платы до элемента не более 3.8 см. Шинный сигнал должен быть ограничен одной нагрузкой.

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

Режим чтения регистров Р1 и Р2 не является основным, а предусмотрен для проверки работы регистров. Работа схемы описывается в соответствии с временными диаграммами записи и чтения с одной фазой данных. Вначале инициатор устанавливает адрес на шину AD(31-0), а затем – сигнал FRAME#, поступающий в

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]