Avdeev
.pdf110 |
|
|
|
|
|
|
|
|
|
PAR# |
CK |
CLK |
|
P1 |
ЧтР1 |
|
|
PERR# |
|
|
|
||
|
|
|
|
|
E |
|
|
|
|
|
|
|
|
в ВУ |
|
AD(31-0) |
|
|
|
|
|
|
|
|
|
|
|
|
STB |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ЗпР1 |
ФОР |
|
РА |
A(31-3) |
|
ДшА ВыбВУ |
|
||
|
|
|
|
||||
|
|
A2 |
|
|
|
||
|
|
|
|
|
|
|
|
|
C |
A1,A0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ФОР |
|
РК |
|
|
ДшНБ |
|
Р2 |
|
C/BE(3-0)# |
|
|
|
E |
|
||
|
|
|
|
|
в ВУ |
||
|
|
|
|
|
|
|
|
|
C |
|
|
|
|
STB |
ЧтР2 |
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
Стр А/К |
|
|
|
|
ЗпР2 |
|
|
|
|
ДшК |
|
ДшУС |
ЗпР1 |
|
FRAME# |
БУ |
|
|
ЧтВв/Выв |
|||
|
|
|
|
ЧтР1 |
|||
CLK |
|
|
|
|
ЗпВв/Выв |
|
ЗпР2 |
IRDY# |
|
|
|
|
|
ЧтР2 |
|
|
|
|
|
|
|
||
|
|
|
|
|
|
ОбЧт |
|
TRDY# |
|
|
|
|
|
|
|
|
|
|
|
|
|
ОбЗп |
|
DEVSEL# |
|
|
|
Стр Зп/Чт |
|
|
|
|
|
|
|
|
|
Рис. 5.7. Структурная схема исполнителя шины PCI
блок управления (БУ). БУ формирует сигнал строб адреса/команды (СтрА/К) по положительному фронту первого CLK установленного FRAME#, т.е. когда сигналы адреса на линиях AD(31-0) и команды на линиях C/BE(3-0)# являются стабильными. По сигналу СтрА/К происходит запоминание адреса в регистре адреса (РА) и команды в регистре команды (РК). Запоминание этой информации связано с тем, что минимальный период такта CLK равен 30 нс и для гарантированной дешифрации адреса его не хватает. Обычно на “медленных” мультиплексированных системных шинах A/D сначала дешифруют адрес, а затем запоминают результат дешифрации и младшие биты адреса, выбирающие нужные регистры в исполнителе. В схеме исполнителя дешифратор адреса (ДША) декодирует общую старшую часть адреса и формирует сигнал выбора (ВыбВУ). Кроме того, значения (0 и 1) бита адреса А2 осуществляют соответствующий выбор регистров Р1 и Р2. Биты адреса А1 и А0 с помощью дешифратора номера байта (ДшНБ) управляют разрешением передачи соответствующего байта в формате данных. Кроме того, дешифратор команд (ДшК)
111
декодирует 4-битный код команды и формирует сигнал чтения ввода/вывода (ЧтВв/Выв) или запись ввода/вывода (ЗпВв/Выв). Дешифратор управляющих сигналов (ДшУс) в соответствии с входной информацией формирует сигнал записи в Р1 (ЗпР1), чтения Р1 (ЧтР1) , ЗпР2, ЧтР2, общего чтения (ОбЧт) или общей записи (ОБЗп). Сигнал ОбЧт вырабатывается, если установлен ЧтР1 или ЧтР2. Для формированиясигналовЧтР1,ЧтР2,ЗпР1,ЗпР2внужныймоментвремениБУвырабатывает сигнал строб записи/чтения (СтрЗп/Чт), если установлены сигналы ВыбВУ, IRDY# и соответствующий импульс CLK. Передний фронт сигнала DEVSEL# устанавливаетсяодновременносфронтомсигналаВыбВУ,азаднийфронтснимается,кактолько будет снят сигнал IRDY# (см. рис. 5.2 и 5.3). При выполнении операции чтения данных сигнал TRDY# устанавливается одновременно с передачей данных от исполнителя к инициатору и сбрасывается после снятия инициатором сигнала IRDY#.
Если выполняется операция записи данных в какой-либо регистр исполнителя, то необходимо за 30 нс (до прихода данных) выполнить дешифрацию адреса (сформировать сигнал ВыбВУ).
При отсутствии возможности выполнить это условие следует на один такт задержать формирование TRDY#, т.е. ввести такт ожидания в работе инициатора. В схеме не используется приемопередатчик данных, вносящий задержку как, например, в контроллерах шины ISA, здесь вместо него применяются два формирователя (ФОР) с тремя состояниями. Кроме того, при чтении данных схема контроля (СК) формирует выходной сигнал PAR# , а при записи данных она сравнивает входной сигнал PAR# с результатом проверки принимаемых данных на четность. Если обнаружена ошибка, то устанавливается сигнал PERR#.
Стандарт шины PCI предусматривает наличие отдельного адресного пространства конфигурации, используемого специальными программами. Для выполнения автоконфигурации, обработки катастрофических ошибок, инициализации устройств и мостов, подключенных к шине PCI, каждому устройству отводится 256байтная память, имеющая следующий формат заголовка конфигурации (рис. 5.8).
В формате заголовка первые 16 байтов являются стандартными для PCI устройств, а следующие 48 байтов могут иметь различные размещения в зависимости от базовых функций этих устройств. Специфические (произвольные) сведения об устройствах записываются в байтах памяти конфигурации в диапазоне 64-256.
112
31 |
|
|
16 |
15 |
|
|
|
0 |
||
|
Идентификатор устройства |
Идентификатор изготовителя |
00h |
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
Состояние |
|
|
Команда |
04h |
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
Код класса устройства |
|
Номер версии |
08h |
|||||
|
|
|
|
|
|
|
|
|
|
|
|
Встроенный |
Тип заголовка |
Таймер |
|
Размер КЭШ |
0Ch |
||||
|
тест |
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10h |
|
|
|
|
|
|
|
|
|
|
14h |
|
|
|
|
БАЗОВЫЕ |
АДРЕСА |
|
|
18h |
||
|
|
|
|
|
|
|
|
|
|
1Ch |
|
|
|
|
|
|
|
|
|
|
20h |
|
|
|
|
|
|
|
|
|
|
24h |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
РЕЗЕРВ |
|
|
28h |
||
|
|
|
|
|
|
|
|
|
|
2Ch |
|
|
|
|
|
|
|
||||
|
|
|
Базовый адрес расширения ПЗУ |
30h |
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
РЕЗЕРВ |
|
|
34h |
||
|
|
|
|
|
|
|
|
|
|
38h |
|
|
|
|
|
|
|
||||
|
Установка таймера |
|
Вывод прерывания |
|
Линия прерывания |
3Ch |
||||
|
|
|
|
|
|
|
|
|
|
|
Рис. 5.8. Формат заголовка конфигурации
Идентификаторы устройства и изготовителя определяют соответственно тип (номер) устройства и его изготовителя.
В поле состояния (16-битном регистре состояния) отмечаются события, происходящие на шине PCI, например, установка устройством сигнала SERR# (системная ошибка), обнаружение устройством ошибки паритета (PAR), завершение целью транзакции с ошибкой (адресат-аборт), завершение мастером операции, на которую не отвечает цель (мастер-аборт) и т.д. Транзакция – событие на шине, состоящее из фазы адреса и одной или нескольких фаз данных.
113
Поле команды (16-битный регистр команды) выполняет некоторое управление работой устройства и использует младшие 10 битов, в которых разрешаются или запрещаются доступы к вводу-выводу, шине PCI, памяти, регистрам палитры видеоадаптера типа VGA и задаются другие функции управления.
Кодыклассаустройствсодержаткодыбазовогокласса(старшиебайтысосмещением 0Bh), которые на крупном уровне определяют классы устройств.
Различают следующие классы устройств и их коды: контроллеры запоминающих устройств (01h), сетевые контроллеры (02h), дисплейные адаптеры (03h), мультимедийные устройства (04h), контроллеры памяти (05h) и мосты (06h).
Средний байт (смещение 0Аh) кода класса содержиткод подклассаустройств. Например, для базового класса 01h контроллеру SCSI соответствует подкласс 00h, контроллеру IDE – подкласс 01h, контроллеру гибкого диска – подкласс 02h и т.д.
Младший бит (смещение 09h) определяет интерфейс программирования на уровне регистра. Обычно этот байт равен 00h.
Базовый класс мостов (код 06h) имеет следующие подклассы: главный мост
(00h), ISA мост (01h), EISA мост (02h), MC мост (03h), PCI-PCI мост (04h) и пр.
Номер версии задается изготовителем и может рассматриваться расширением номера устройства. Управление встроенным тестом, если он есть, осуществляется содержимым соответствующего регистра формата заголовка конфигурации. Кроме того, в этом регистре отмечаются результаты тестирования (биты завершения).
Тип заголовка указывает, является ли данное устройство однофункциональным или многофункциональным и определяет структуру всех остальных байтов формата заголовка, начиная с адреса 10h. Для приведенного формата заголовка код типа заголовка равен 00h.
Таймер, входящий в состав заголовка, подсчитывает число тактов шины PCI и определяет время, выделенное мастеру, для освобождения шины при наличии других запросов на захват шины.
Размер КЭШ задается числом 32-битных данных и необходим с целью определения границы пакетной передачи данных.
Базовые адреса позволяют определить наличие различных устройств, присоединяемых к шине PCI, объем используемой памяти, адресное пространство контроллеров ввода/вывода. Шесть 32-битных регистров отведены под базовые адреса,
114
начиная со смещения 10h. Бит 0 в базовых регистрах указывает на его отношение к памяти (0) или вводу/выводу (1). В базовом регистре памяти указывается расположение базового адреса, например, в 32-битных или 64-битных адресных пространствах и значение базового адреса. Значение базового адреса ввода/вывода хранится в соответствующем регистре базового адреса с битом 0, равным 1.
Смещение 30h указывает на базовый адрес расширения ПЗУ и разрешение дешифрации адреса.
Регистр установки таймера (2 байта) предназначен для задания длительности пакетного периода и частоты доступа к шине PCI. В регистре вывод прерывания (8 бит) определяется, какой сигнал прерывания используется устройством, например, значение 1 соответствует сигналу INTA#, значение 2 – сигналу INTB# и т.д. Регистр линии прерывания хранит информацию о соединении вывода прерывания устройства со входом системного контроллера прерывания, т.е. сообщается номер запроса системного контроллера прерывания.
Выбор адресного пространства конфигурации любого устройства PCI выполняется с помощью интерфейсного сигнала IDSEL. Сигнал IDSEL формирует главный мост (дизайнер системы) или мост PCI-PCI и этот сигнал достоверен (устойчив) только в первом такте CLK установки сигнала FRAME# (в фазе адреса) при выполнении команды конфигурации. Для расширения числа подключаемых к шине устройств предусмотрена возможность соединения вывода IDSEL через резистор с одной из старших адресных линий (не используемых при доступе к памяти конфигурации) для выбора соответствующего устройства PCI. Каждый сигнал IDSEL выбирает соответствующее ему устройство PCI.
Временная диаграмма чтения памяти конфигурации представлена на рис. 5.9.
115
CLK
FRAME#
AD
IDSEL |
* |
* |
C/BE#
IRDY#
TRDY#
* - неопределенное состояние
Рис. 5.9. Чтение памяти конфигурации
ТаккакшиныPCIмогутбытьиерархическоготипа,состоящегоизнескольких шин, разделенных мостами, то предусмотрены 2 типа доступа (041) со стороны моста (главного или PCI-PCI) к устройствам (целям) PCI. При доступе типа 0 (в пределах одной шины PCI) мост содержит два порта: 32-битный регистр адреса конфигурации (CF8h) и 32-битный регистр данных конфигурации (CFCh), с помощью которых выполняется обращение к памяти конфигурации устройства PCI. В регистре адреса конфигурации биты D1D0, равные значениям 00, определяют тип доступа 0. Биты D7-D2 задают номер регистра памяти конфигурации, биты D10-D8 – номер функции, если устройство PCI многофункциональное, и биты D15-D11 – номер устройства PCI, который может быть преобразован только в одно единичное значение в фазе адреса на одной из линий AD31-AD11 (сигнал IDSEL). На рис. 5.10 представлена схема трансляции содержимого регистра адреса конфигурации (РАК) на линии AD(31-0) шины PCI.
Доступтипа1(доступкустройству надругойшине)определяетсязначениями битов D1 D0, равными 01. При этом обращении используются в регистре PAR биты D23-D16, предназначенные для выбора одной из 128 шин системы.
116
РАК
D31 D30 |
D24 D23 |
D16 |
D15 |
D11 D10 |
D8 D7 |
D2 D1 D0 |
|||||||
|
1 |
|
Резерв |
|
Номер |
|
|
Номер |
|
Номер |
|
Номер |
00 |
|
|
|
|
|
шины |
|
устройства |
|
функции |
|
регистра |
|
бит разрешения
31 |
11 |
10 |
8 7 |
2 |
1 |
0 |
|
|
Значение 1 |
|
|
|
|
|
00 |
Шина AD PCI
Рис 5.10. Схема трансляции содержимого РАК на шину AD
Разъем шины PCI показан на рис. 5.11, в котором для удобства размещения номера выводов представлены в двух колонках.
117
Ряд В |
Номер |
Ряд А |
Ряд В |
Номер |
Ряд А |
-12 В |
1 |
-TSTRES |
-C/BE 3 |
26 |
IDSEL |
Test Clock |
2 |
+12 B |
AD 23 |
27 |
+3,3 B |
GND |
3 |
TSTMSLCT |
GND |
28 |
AD 22 |
Test DO |
4 |
Test DO |
AD 21 |
29 |
AD 20 |
+5 B |
5 |
+5 B |
AD 19 |
30 |
GND |
+5 B |
6 |
-INTR A |
+3,3 B |
31 |
AD 18 |
-INTR B |
7 |
-INTR C |
AD 17 |
32 |
AD 16 |
-INTR D |
8 |
+5 B |
-C/BE 2 |
33 |
+3,3 B |
-PRSNT 1 |
9 |
Reserved |
GND |
34 |
-FRAME |
Reserved |
10 |
+V I/O |
-IRDY |
35 |
GND |
-PRSNT 2 |
11 |
Reserved |
+3,3 B |
36 |
-TRDY |
GND / Ключ |
12 |
GND / Ключ |
-DEVSEL |
37 |
GND |
GND / Ключ |
13 |
GND / Ключ |
GND |
38 |
-STOP |
Reserved |
14 |
Reserved |
-Lock |
39 |
+3,3 B |
GND |
15 |
-RST |
ParityER |
40 |
SDONE |
Clock |
16 |
+V I/O |
+3,3 B |
41 |
-SBOFF |
GND |
17 |
-GNT |
SysERR |
42 |
GND |
-REQ |
18 |
GND |
+3,3 B |
43 |
PAR |
+V I/O |
19 |
Reserved |
-C/BE 1 |
44 |
AD 15 |
AD 31 |
20 |
AD 30 |
AD 14 |
45 |
+3,3 B |
AD 29 |
21 |
+3,3 B |
GND |
46 |
AD 13 |
GND |
22 |
AD 28 |
AD 12 |
47 |
AD 11 |
AD 27 |
23 |
AD 26 |
AD 10 |
48 |
GND |
AD 25 |
24 |
GND |
GND |
49 |
AD 9 |
+3,3 B |
25 |
AD 24 |
GND / Ключ |
50** |
GND / Ключ |
GND / Ключ |
51**** |
GND / Ключ |
GND |
73 |
AD 56 |
AD 8 |
52 |
-C/BE |
AD 55 |
74 |
AD 54 |
AD 7 |
53 |
+3,3 B |
AD 53 |
75 |
+V I/O |
+3,3 B |
54 |
AD 6 |
GND |
76 |
AD 52 |
AD 5 |
55 |
AD 4 |
AD 51 |
77 |
AD 50 |
AD 3 |
56 |
GND |
AD 49 |
78 |
GND |
GND |
57 |
AD 2 |
+V I/O |
79 |
AD 48 |
AD1 |
58 |
AD 0 |
AD 47 |
80 |
AD 46 |
+V I/O |
59 |
+V I/O |
AD 45 |
81 |
GND |
-ACK 64 |
60 |
-REQ 64 |
GND |
82 |
AD 44 |
+5 B |
61 |
+5 B |
AD 43 |
83 |
AD 42 |
+5 B |
62 |
+5 B |
AD 41 |
84 |
+V I/O |
|
|
|
GND |
85 |
AD 40 |
|
|
|
AD 39 |
86 |
AD 38 |
Reserved |
63 |
GND |
AD 37 |
87 |
GND |
GND |
64 |
-C/BE 7 |
+V I/O |
88 |
AD 36 |
-C/BE |
65 |
-C/BE 5 |
AD 35 |
89 |
AD 34 |
-C/BE |
66 |
+V I/O |
AD 33 |
90 |
GND |
GND |
67 |
PAR 64 |
GND |
91 |
AD 32 |
AD 63 |
68 |
AD 62 |
Reserved |
92 |
Reserved |
AD 61 |
69 |
GND |
Reserved |
93 |
GND |
+V I/O |
70 |
AD 60 |
GND |
94 |
Reserved |
AD 59 |
71 |
AD 58 |
|
|
|
AD 57 |
72 |
GND |
|
|
|
Примечание: *12,13 – ключ для 3,3 В; **50,51 – ключ для 5 В. Рис. 5.11. Разъем шины PCI
118
5.3. Контроллер PCI 9060
Для подключения ПУ к шине PCI фирмой PLX Technology разработан однокристальный контроллер PCI9060 широкого назначения. На рис. 5.12 показана общая схема подключения необходимых компонентов к PCI 9060.
Шина PCI
КОНТРОЛЛЕР |
ПУ |
PCI 9060 |
ППЗУ
Рис. 5.12. Общая схема подключения компонентов к PCI 9060
PCI 9060 выполняет режим мастера или исполнителя и предназначен для сопряжения с ПУ, в качестве которых могут быть использованы адаптеры (периферийные процессорные системы). Скорость передачи данных в режиме мастер равна 132 Мбайт/с.
PCI 9060 поддерживает 32-, 16или 8- битные раздельные или мультиплексные локальные шины. К шине PCI контроллер подключается без использования внешних формирователей и может устанавливать от нескольких источников запрос на прерывание по шине PCI или по локальной шине, работающей асинхронно по отношению к шине PCI, кроме того, к контроллеру через последовательный интерфейс подключается ППЗУ для передачи информации о конфигурации и инициализации микросхемы PCI 9060, выполненной по технологии КМОП и имеющей 208выводной пластиковый корпус типа QFP.
На рис. 5.13 изображена структурная схема контроллера PCI 9060. Структурная схема содержит два независимых каналов DMA (канал 0 и канал
1), предназначенных для взаимодействия с периферийной памятью. PCI 9060 ис-
119
пользует четыре двунаправленных FIFO для обеспечения пакетного режима без затраты времени на ожидание очереди, причем возможно управление передачей данных со стороны мастера прямого доступа и со стороны исполнителя прямого доступа. Кроме того, в состав оборудования контроллера входят: восемь 32-битных регистров сообщений и два 32-битных регистра прерываний («дверных звонков»), регистры локальной конфигурации, регистры PCI и DMA.
Микропроцессор
809060
Регистры PCI
Регистры локальной конфигурации
Регистры DMA
Регистры
прерывания
Регистры
сообщений
|
|
PCI 9060 |
|
|
|
Интерфейс |
|
Канал 0 |
исполнителя |
|
DMA |
прямого |
|
|
доступа |
|
|
Двунаправлен- |
|
|
ный FIFO |
|
|
исролнителя |
|
Двунаправлен- |
прямого |
|
ный FIFO |
доступа |
|
|
|
|
|
Интерфейс |
|
|
мастера |
|
Канал 1 |
прямого |
|
DMA |
доступа |
|
|
|
|
|
|
|
|
Двунаправлен- |
|
|
ный |
|
Двунаправлен- |
FIFO |
|
ный FIFO |
мастера прямого |
|
|
доступа |
|
|
|
|
|
Рис. 5.13. Структурная схема контроллера PCI 9060
Доступ к перечисленным регистрам контроллера PCI 9060 возможен как со стороны мастера шины PCI, так и со стороны мастера локальной шины путем использования внутренних или внешних схем декодирования адреса. Первый регистр