Михаил Гук - Аппаратные интерфейсы ПК. Энциклопедия
- Название:Аппаратные интерфейсы ПК. Энциклопедия
- Автор:
- Жанр:
- Издательство:Издательский дом «Питер»
- Год:2002
- Город:Санкт-Петербург
- ISBN:5-94723-180-8
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Михаил Гук - Аппаратные интерфейсы ПК. Энциклопедия краткое содержание
Книга посвящена аппаратным интерфейсам, использующимся в современных персональных компьютерах и окружающих их устройствах. В ней подробно рассмотрены универсальные внешние интерфейсы, специализированные интерфейсы периферийных устройств, интерфейсы устройств хранения данных, электронной памяти, шины расширения, аудио и видеоинтерфейсы, беспроводные интерфейсы, коммуникационные интерфейсы, вспомогательные последовательные интерфейсы. Сведения по интерфейсам включают состав, описание сигналов и их расположение на разъемах, временные диаграммы, регистровые модели интерфейсных адаптеров, способы использования в самостоятельно разрабатываемых устройствах. Книга адресована широкому кругу специалистов, связанных с эксплуатацией ПК, а также разработчикам аппаратных средств компьютеризированной аппаратуры и их программной поддержки.
Аппаратные интерфейсы ПК. Энциклопедия - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
Адресация памяти, портов и конфигурационных регистров различна.
♦ В циклах обращения к памяти адрес, выровненный по границе двойного слова, передается по линиям AD[31:2]
; линии AD[1:0]
задают порядок адресов в пакете:
• 00 — линейное инкрементирование; адрес последующей фазы отличается от предыдущего на число байтов шины (4 для 32-битной и 8 для 64-битной шины).
• 10 — Cache line Wrap mode, сворачивание адресов с учетом длины строки кэш-памяти. В транзакции адрес для очередной фазы увеличивается до достижения границы строки кэша, после чего переходит на начало этой строки и увеличивается до адреса, предшествующего начальному. Если транзакция длиннее строки кэша, то она продолжится в следующей строке с того же смещения, что и началась. Так, при длине строки 16 байт и 32-битной шине транзакция, начавшаяся с адреса xxxxxx08h, будет иметь последующие фазы данных, относящиеся к адресам xxxxxx0Ch, xxxxxx00h, xxxxxx04h; и далее к xxxxxx18h, xxxxxx1Ch, xxxxxx10h, xxxxxx14h. Длина строки кэша прописывается в конфигурационном пространстве устройства (см. п. 6.2.12). Если устройства не имеет регистра Cache Line Size
, то оно должно прекратить транзакцию после первой фазы данных;
• 01 и 11 — зарезервировано, может использоваться как указание на отключение (Disconnect) после первой фазы данных.
♦ В циклах обращения к портам ввода-вывода для адресации любого байта используются все линии AD[31:0]
. При этом биты адреса AD[31:2]
указывают на адрес двойного слова, к которому принадлежат передаваемые данные, а младшие биты адреса AD[1:0]
должны соответствовать байтам, которые могут быть разрешены сигналами С/BE[3:0]#
. При AD[1:0]
=00 допустимо С/BE[3:0]#
=xxx0 или 1111, при AD[1:0]
=01 — С/BE[3:0]#
=xx01 или 1111, при AD[1:0]
=10 — С/BE[3:0]#
=х011 или 1111, при AD[1:0]
=11 — С/BE[3:0]#
=0111 (передается лишь байт 3) или 1111 (ни один байт не разрешен). Эти циклы тоже могут быть пакетными, хотя на практике эта возможность используется редко.
♦ В циклах конфигурационной записи/считывания устройство (карта расширения) выбирается индивидуальным сигналом IDSEL
; функция адресуется битами AD[10:8]
, а конфигурационные регистры (только двойные слова) адресуются битами AD[7:2]
, при этом AD[1:0]
=00.
Команды шины PCI определяются значениями бит С/BE#
в фазе адреса (табл. 6.12).
♦ Команда подтверждения прерывания предназначена для чтения вектора прерываний. По протоколу она выглядит как команда чтения, неявно адресованная к системному контроллеру прерываний. Здесь в фазе адреса по шине AD
полезная информация не передается, но ее инициатор (главный мост) должен обеспечить стабильность сигналов и корректность паритета. В PC 8-битный вектор передается в байте 0 по готовности контроллера прерываний (по сигналу TRDY#
). Подтверждение прерываний выполняется за один цикл (первый холостой цикл, который процессоры х86 делают в дань совместимости со стариной, мостом подавляется).
♦ Специальный цикл отличается от всех других тем, что является широковещательным. Однако ни один агент на него не отвечает, а главный мост или иное устройство, вводящее этот цикл, всегда завершает его способом Master Abort (на него требуется 6 тактов шины). Специальный цикл предназначен для генерации широковещательных сообщений — их могут читать любые «заинтересованные» агенты шины. Тип сообщения декодируется содержимым линий AD[15:0]
, на линиях AD[31:16]
могут помещаться данные, передаваемые в сообщении. Фаза адреса в этом цикле для обычных устройств отсутствует, но мосты используют ее информацию для управления распространением сообщения. Сообщения с кодами 0000h, 0001h и 0002h требуются для указания на отключение ( Shutdown
), остановку ( Halt
) процессора или специфические функции процессора x86, связанные с кэшем и трассировкой. Коды 0003-FFFFh зарезервированы. Специальный цикл может генерироваться тем же аппаратно-программным механизмом, что и конфигурационные циклы (см. п. 6.2.11), но со специфическим значением адреса.
♦ Команды чтения и записи ввода-вывода служат для обращения к пространству портов. Линии AD
содержат адрес байта, причем декодированию подлежат и биты AD0
и AD1
(несмотря на то, что имеются сигналы ВЕх#
). Порты PCI могут быть 16- или 32-битными. Для адресации портов на шине PCI доступны все 32 бита адреса, но процессоры х86 могут использовать только младшие 16 бит.
♦ Команды обращения к памяти , кроме обычного чтения и записи, включают чтение строк кэш-памяти, множественное чтение (нескольких строк), запись с инвалидацией.
♦ Команды конфигурационного чтения и записи адресуются к конфигурационному пространству устройств (см. п. 6.2.12). Обращение производится только двойными словами. Структура содержит идентификатор устройства и производите для, состояние и команду, информацию о занимаемых ресурсах и ограничения на использование шины. Для генерации данных команд требуется специальный аппаратно-программный механизм (см. п. 6.2.11).
♦ Чтение строк памяти применяется, когда в транзакции планируется более двух 32-битных передач (обычно это чтение до конца строки кэша).
♦ Множественное чтение памяти используется для транзакций, пересекающих границы строк кэш-памяти.
♦ Запись с инвалидацией применяется к целым строкам кэша и позволяет оптимизировать циклы обратной записи «грязных» строк кэша.
♦ Двухадресный цикл позволяет по 32-битной шине обращаться к устройствам с 64-битной адресацией. В этом случае младшие 32 бита адреса передаются в цикле данного типа, а за ним следует обычный цикл, определяющий тип обмена и несущий старшие 32 бита адреса. Шина PCI допускает 64-битную адресацию портов ввода-вывода (для х86 это бесполезно, но PCI существует и на других платформах).
Таблица 6.12. Декодирование команд шины PCI
С/BE[3:0] | Тип команды |
---|---|
0000 | Interrupt Acknowledge — подтверждение прерывания |
0001 | Special Cycle — специальный цикл |
0010 | I/O Read — чтение порта ввода-вывода |
0011 | I/O Write — запись в порт ввода-вывода |
0100 | Зарезервировано |
0101 | Зарезервировано |
0110 | Memory Read — чтение памяти |
0111 | Memory Write — запись в память |
1000 | Зарезервировано |
1001 | Зарезервировано |
1010 | Configuration Read — конфигурационное считывание |
1011 | Configuration Write — конфигурационная запись |
1100 | Multiple Memory Read — множественное чтение памяти |
1101 | Dual Address Cycle (DAC) — двухадресный цикл |
1110 | Memory-Read Line — чтение строки памяти |
1111 | Memory Write and Invalidate — запись с инвалидацией |
6.2.5. Пропускная способность шины
Интервал:
Закладка: