PCI & CompactPCI (Peripheral Component Interconnect bus)Рефераты >> Программирование и компьютеры >> PCI & CompactPCI (Peripheral Component Interconnect bus)
*12, 13 - ключ для 3,3V
**50,51 - ключ для 5V
Циклы шины
По сигналам C/BE (от C/BE3 до C/BE0) во время фазы передачи адреса определяется тип цикла передачи данных.
C/BE |
Команда |
0000 |
Interrupt Acknowledge (подтверждение прерывания) |
0001 |
Special Cycle (специальный цикл) |
0010 |
I/O Read (чтение порта) |
0011 |
I/O Write (запись в порт) |
0100 |
Reserved (резервировано) |
0101 |
Reserved (резервировано) |
0110 |
Memory Read (чтение памяти) |
0111 |
Memory Write (запись в память) |
1000 |
Reserved (резервировано) |
1001 |
Reserved (резервировано) |
1010 |
Configuration Read (чтение конфигурации) |
1011 |
Configuration Write (запись конфигурации) |
1100 |
Multiple Memory Read (множественное чтение памяти) |
1101 |
Dual Address Cycle (двойной цикл адреса) |
1110 |
Memory-Read Line (чтение памяти) |
1111 |
Memory Write and Invalidate (запись в память и проверка) |
Подтверждение прерывания (0000)
Контроллер прерываний автоматически распознает сигнал INTA и реагирует на него передачей вектора прерывания по шине AD.
Специальный цикл (0001)
AD15-AD0 |
Описание |
0x0000 |
Processor Shutdown (процессор прекращает работу) |
0x0001 |
Processor Halt (останов процессора) |
0x0002 |
x86 Specific Code (специальный код для машин на архитектуре Intel x86) |
0x0003 to 0xFFFF |
Reserved (зарезервировано) |
Чтение порта (0010) и запись в порт (0011)
Порты ввода/вывода на шине PCI могут быть 8 или 16-ти разрядными, хотя собственно стандарт на шину PCI позволяет иметь 32-х разрядное адресное пространство. Это вызвано тем, что на компьютерах с архитектурой Intel x86, адрес порта может иметь не более 16 разрядов. Пока и 16-ти разрядный адрес порта не может быть использован, так как карты на шине ISA могут декодировать только 10 разрядов.
Адресное пространство конфигурации доступно по адресам портов 0x0CF8 (Адрес) и 0x0CFC (Данные), причем адрес должен быть записан первым.
Чтение памяти (0110) и запись в память (0111)
По шинам AD передается адрес двойным словом (четыре байта). Сигналы AD0 и AD1 декодировать не требуется. Истинность данных определяется сигналами C/BE.
Чтение конфигурации (1010) и запись конфигурационных данных (1011)
Эти операции выполняются для конфигурационного пространства PCI карты. Размер области конфигурации составляет 256 байт, причем читать/записывать в нее можно только в 32-х разрядной сетке, т.е. двойными словами. Поэтому AD0 и AD1 должны быть установлены в 0, AD2-7 содержать адрес двойного слова, AD8-10 используются для выбора адресуемого устройства, а оставшиеся шины адреса игнорируются.
Адрес/Бит 32 16 15 0
00 Unit ID | Manufacturer ID
04 Status | Command
08 Class Code | Revision
0C BIST | Header | Latency | CLS
10-24 Регистр адреса
28 Резерв
2C Резерв
30 Базовый адрес ПЗУ устройства
34 Резерв
38 Резерв
3C MaxLat|MnGNT | INT-pin | INT-line
40-FF Используется самим устройством
Примечания:
Unit ID - идентификационный номер устройства
Manufacturer ID - идентификатор производителя устройства
Status - состояние
Class Code - код класса устройства
BIST - Built-In Self Test - встроенный тест
Множественное чтение памяти (1100)
Это расширение обычного цикла чтения памяти. Используется для чтения больших блоков памяти без кэширования.
Двойной цикл адреса (1101)
Двойной цикл адреса необходим в том случае, если необходимо передать 64-х разрядный адрес в версии PCI с 32-х разрядной адресной сетке. В первом цикле передаются четыре младших байта адреса, затем четыре старших байта. Во втором цикле необходимо также передать команду, определяющую тип устройства, чей адрес выставлен (порт ввода/вывода, память и т.д.). Собственно PCI поддерживает 64 разряда адреса для портов ввода/вывода, но в PC на процессорах архитектуры от Intel такое адресное пространство не поддерживается (не позволяет сам процессор).
Временные диаграммы шины PCI
_ _ _ _ _ _
CLK _| | _| | _| | _| | _| | _| | _
_ _
FRAME | _|
_
AD -------< >< _>< >< >< >---
Адрес Данные1 Данные2 Данные3 Данные4
_
C/BE -------< >< _>---
Команда Сигнал разрешения передачи байта
_
IRDY | _|
_ _
TRDY | |
_
DEVSEL | _|
Цикл передачи данных на PCI, включает 4 фазы передачи данных, без тактов ожидания. Данные передаются по переднему фронту сигнала CLK.
[1] [2] [3]
_ _ _ _ _ _ _ _
CLK _| | _| | _| | _| | _| | _| | _| | _| |_
_
FRAME | |
A B C
_
AD -----< >---------< >< >< _>--
Адрес Данные1 Данные2 Данные3
C/BE -----< >< >--
Команда Сигнал разрешения передачи байта
Ожидание
_
IRDY | | | _|
Ожидание Ожидание
TRDY | _| | _|
_
DEVSEL | |
Цикл передачи данных на PCI включает 3 фазы передачи данных с тактами ожидания. Данные передаются по переднему фронту сигнала CLK.
PCI-X
Летом 1999 года консорциум SIG по PCI принял спецификацию принципиально нового варианта шины PCI - PCI-X. Несмотря на превосходные технические параметры, новая шина разрабатывалась под скептическим взглядом Intel, которая активно ведет разработку собственной шины NGIO. До настоящего времени практически все интерфейсы, разрабатываемые Intel (AGP,PCI, USB) принимались компьютерной индустрией Официальный взгляд Intel на PCI-X выглядит так: PCI-X хорошая шина, но жизнь ее будет недолговечной, так как когда мы разработаем и утвердим NGIO, PCI-X уйдет с рынка, проиграв NGIO по переспективности и производительности. Время покажет, кто победит, но очевидно, что только при поддержке PCI-X Intel в своих chipset она может найти широкое распространение.