ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 24.12.2021
Просмотров: 6731
Скачиваний: 8
Примеры шин
213
Сигнал
IDSEL
связан с тем, что у каждого устройства PCI должно быть про-
странство конфигураций на 256 байтов, которое другие устройства могут считывать
(установив сигнал IDSEL). Это пространство конфигураций содержит характери-
стики устройства. В некоторых операционных системах структура Plug-and-Play
(Режим автоматического конфигурирования) использует это пространство кон-
фигураций, чтобы распознать, какие устройства подключены к шине.
А теперь рассмотрим сигналы, которые устанавливаются подчиненным устрой-
ством. Сигнал DEVSEL# означает, что подчиненное устройство распознало свой
адрес на линиях AD и готово участвовать в транзакции. Если сигнал DEVSEL# не
поступает в течение определенного промежутка времени, задающее устройство
предполагает, что подчиненное устройство, к которому направлено обращение, либо
отсутствует, либо неисправно.
Следующий сигнал — TRDY#. Его подчиненное устройство устанавливает при
чтении, чтобы сообщить, что данные находятся на линиях AD, и при записи, чтобы
сообщить, что оно готово принять данные.
Следующие три сигнала нужны для сообщения об ошибках. Один из них, сиг-
нал STOP#, устанавливается подчиненным устройством, если произошла какая-
нибудь неполадка и нужно прервать текущую транзакцию. Следующий сигнал,
PERR#, используется для сообщения об ошибке четности в данных в предыдущем
цикле. Для чтения этот сигнал устанавливается задающим устройством, для запи-
си — подчиненным устройством. Необходимые действия должно предпринимать
устройство, получившее этот сигнал. Наконец, сигнал SERR# нужен для сообще-
ния об адресных и системных ошибках.
Таблица 3.6.
Факультативные сигналы шины
PCI
Сигнал Количество Задающее Подчиненное Комментарий
линий устройство устройство
REQ64#
АСК64#
AD
PAR64
С/ВЕ#
1
32
1
4
LOCK
SBO#
SDONE
INTx
JTAG
M66EN
Запрос на осуществление 64-битной
транзакции
Разрешение 64-битной транзакции
Дополнительные 32 бита адреса
или данных
Проверка четности для дополнительных
32 битов адреса или данных
Дополнительные 4 бита для указания,
какие байты из слова нужно считать
(или записать)
В многопроцессорных системах:
блокировка шины при осуществлении
транзакции одним из процессоров
Обращение к кэш-памяти другого
процессора
Отслеживание адресов, по которым
произошли изменения, завершено.
Запрос прерывания
Сигналы тестирования IEEE 1149.1 JTAG
Сигнал связывается с источником
питания или с «землей» (66 МГц
или 33 МГц)
2 1 4 Глава 3. Цифровой логический уровень
Сигналы REQ# и GNT# предназначены для арбитража шины. Они устанавли-
ваются не тем устройством, которое является задающим в данный момент, а тем,
которому нужно стать задающим. Последний обязательный сигнал, RST#, исполь-
зуется для перезагрузки системы, которая происходит, либо если пользователь на-
жмет кнопку RESET, либо если какое-нибудь системное устройство обнаружит
фатальную ошибку. После установки этого сигнала компьютер перезагружается.
Перейдем к факультативным сигналам, большинство из которых связано с рас-
ширением разрядности с 32 до 64 битов. Сигналы REQ64# и АСК 64# позволяют
задающему устройству попросить разрешение осуществить 64-битную транзак-
цию, а подчиненному устройству принять эту транзакцию. Сигналы AD, PAR64
и С/ВЕ# являются расширениями соответствующих 32-битных сигналов.
Следующие три сигнала не связаны с противопоставлением 32 бита — 64 бита.
Они имеют отношение к многопроцессорным системам. Не все платы PCI поддер-
живают такие системы, поэтому эти сигналы являются факультативными. Сигнал
LOCK позволяет блокировать шину для параллельных транзакций. Следующие
два сигнала связаны с отслеживанием всех адресов, по которым происходит изме-
нение данных. Подобное отслеживание необходимо для того, чтобы сохранить не-
противоречивость кэш-памяти различных процессоров.
Сигналы INT* нужны для запроса прерываний. Плата PCI может содержать до
четырех логических устройств, каждое из которых имеет собственную линию за-
проса прерывания. Сигналы JTAG предназначены для процедуры тестирования
IEEE 1149.1 JTAG. Наконец, сигнал M66EN связывается либо с источником пита-
ния, либо с «землей», что определяет тактовую частоту. Она не должна меняться
во время работы системы.
Транзакции шины PCI
Шина PCI в действительности очень проста. Чтобы лучше понять это, рассмотрим
временную диаграмму на рис. 3.49. Здесь мы видим транзакцию чтения, за ней сле-
дует пустой цикл и транзакция записи, которая осуществляется тем же задающим
устройством.
Во время цикла Ti на заднем фронте синхронизирующего сигнала задающее
устройство помещает адрес на линии AD и команду на линии С/ВЕ#. Затем зада-
ющее устройство устанавливает сигнал FRAME#, чтобы начать транзакцию.
Во время цикла Т
2
задающее устройство переключает шину, чтобы подчинен-
ное устройство могло воспользоваться ею во время цикла Т
3
. Задающее устрой-
ство также изменяет сигнал С/ВЕ#, чтобы указать, какие байты в слове ему нужно
считать.
Во время цикла Т
3
подчиненное устройство устанавливает сигнал DEVSEL#.
Этот сигнал сообщает задающему устройству, что подчиненное устройство полу-
чило адрес и собирается ответить. Подчиненное устройство также помещает дан-
ные на линии AD и выдает сигнал TRDY#, который сообщает задающему устрой-
ству о данном действии. Если подчиненное устройство не может ответить быстро,
оно не снимает сигнал DEVSEL#, который сообщает о его присутствии, но при
этом не устанавливает сигнал TRDY# до тех пор, пока не сможет передать данные.
При такой процедуре вводится один или несколько периодов ожидания.
Примеры шин 215
Чтение
Цикл шины
Пустой
цикл
Реверсирование передачи
Адрес >< >< Данные
-Запись
. , — т.—•.
Ф
Адрес
С/ВЕ#
FRAMES
IRDY#
DEVSEL#
TRDY#
Рис. 3.49.
Примеры 32-битных транзакций в шине PCI. Во время первых трех циклов
происходит операция чтения, затем идет пустой цикл, а следующие
три цикла — операция записи
В нашем примере (часто это бывает и в действительности) следующий цикл
пустой. Мы видим, что в цикле Т
5
то же самое задающее устройство иницииру-
ет процесс записи. Сначала оно, как обычно, помещает адрес и команду на шину.
В следующем цикле оно выдает данные. Поскольку линиями AD управляет одно
и то же устройство, цикл реверсирования передачи не требуется. В цикле Т
7
память
принимает данные.
Команда-^Разрешающий
чтения X сигнал
Шина USB
Шина PCI очень хорошо подходит для подсоединения высокоскоростных пери-
ферических устройств, но использовать интерфейс PCI для низкоскоростных
устройств ввода-вывода (например, мыши и клавиатуры) было бы слишком дорого.
Изначально каждое стандартное устройство ввода-вывода подсоединялось к ком-
пьютеру особым образом, при этом для добавления новых устройств использова-
лись свободные слоты ISA и PCI. К сожалению, такая схема имеет некоторые
недостатки. Например, каждое новое устройство ввода-вывода часто снабжено
собственной платой ISA или PCI. Пользователь при этом должен сам установить
переключатели и перемычки на плате и увериться, что установленные параметры
не конфликтуют с другими платами. Затем пользователь должен открыть систем-
ный блок, аккуратно вставить плату, закрыть системный блок, а затем включить
компьютер. Для многих этот процесс очень сложен и часто приводит к ошибкам.
2 1 6 Глава 3. Цифровой логический уровень
Кроме того, число слотов ISA и PCI очень мало (обычно их два или три). Платы
Plug and Play исключают установку переключателей, но пользователь все равно
должен открывать компьютер и вставлять туда плату. К тому же количество сло-
тов шины ограничено.
В середине 90-х годов представители семи компаний (Compaq, DEC, IBM, Intel,
Microsoft, NEC и Nothern Telecom) собрались вместе, чтобы разработать шину,
оптимально подходящую для подсоединения низкоскоростных устройств. Потом
к ним примкнули сотни других компаний. Результатом их работы стала шина
USB
(Universal Serial Bus — универсальная последовательная шина),
которая сей-
час широко используется в персональных компьютерах. Она подробно описана
в книгах [7,144].
Некоторые требования, изначально составляющие основу проекта:
1. Пользователи не должны устанавливать переключатели и перемычки на
платах и устройствах.
2. Пользователи не должны открывать компьютер, чтобы установить новые
устройства ввода-вывода.
3. Должен существовать только один тип кабеля, подходящий для подсоеди-
нения всех устройств.
4. Устройства ввода-вывода должны получать питание через кабель.
5. Необходима возможность подсоединения к одному компьютеру до 127 устрой-
ств.
6. Система должна поддерживать устройства реального времени (например,
звук, телефон).
7. Должна быть возможность устанавливать устройства во время работы ком-
пьютера.
8. Должна отсутствовать необходимость перезагружать компьютер после уста-
новки нового устройства.
9. Производство новой шины и устройств ввода-вывода для нее не должно тре-
бовать больших затрат.
Шина USB удовлетворяет всем этим условиям. Она разработана для низко-
скоростных устройств (клавиатур, мышей, фотоаппаратов, сканеров, цифровых
телефонов и т. д.). Общая пропускная способность шины составляет 1,5 Мбайт/с.
Этого достаточно для большинства таких устройств. Предел был выбран для того,
чтобы снизить стоимость шины.
Шина USB состоит из центрального хаба
1
, который вставляется в разъем глав-
ной шины (см. рис. 3.47). Этот центральный хаб (часто называемый корневым кон-
центратором) содержит разъемы для кабелей, которые могут подсоединяться к
устройствам ввода-вывода или к дополнительным хабам, чтобы обеспечить боль-
шее количество разъемов. Таким образом, топология шины USB представляет со-
бой дерево с корнем в центральном хабе, который находится внутри компьютера.
Коннекторы кабеля со стороны устройства отличаются от коннекторов со сторо-
ны хаба, чтобы пользователь случайно не подсоединил кабель другой стороной.
1
От англ.
hub -
концентратор. —
Примеч. пер.
Примеры шин
217
Кабель состоит из четырех проводов: два из них предназначены для передачи
данных, один — для источника питания (+5 В) и один — для «земли». Система
передает 0 изменением напряжения, а 1 — отсутствием изменения напряжения, по-
этому длинная последовательность нулей порождает поток регулярных импульсов.
Когда подсоединяется новое устройство ввода-вывода, центральный хаб (кон-
центратор) распознает это и прерывает работу операционной системы. Затем
операционная система запрашивает новое устройство, что оно собой представляет
и какая пропускная способность шины для него требуется. Если операционная
система решает, что для этого устройства пропускной способности достаточно, она
приписывает ему уникальный адрес (1-127) и загружает этот адрес и другую ин-
формацию в регистры конфигурации внутри устройства. Таким образом, новые
устройства могут подсоединяться «на лету», при этом пользователю не нужно
устанавливать новые платы ISA или PCI. Неинициализированные платы начина-
ются с адреса 0, поэтому к ним можно обращаться. Многие устройства снабжены
встроенными сетевыми концентраторами для дополнительных устройств. Напри-
мер, монитор может содержать два хаба для правой и левой колонок.
Шина USB представляет собой ряд каналов от центрального хаба к устройствам
ввода-вывода. Каждое устройство может разбить свой канал максимум на 16 под-
каналов для различных типов данных (например, аудио и видео). В каждом кана-
ле или подканале данные перемещаются от центрального концентратора к устрой-
ству или обратно. Между двумя устройствами ввода-вывода обмена информацией
не происходит.
Ровно через каждую миллисекунду (±0,05 мс) центральный концентратор пере-
дает новый кадр, чтобы синхронизировать все устройства во времени. Кадр состоит
из пакетов, первый из которых передается от концентратора к устройству. Следу-
ющие пакеты кадра могут передаваться в том же направлении, а могут и в проти-
воположном (от устройства к хабу). На р№\ 3.50 показаны четыре последователь-
ных кадра.
Время, мс
*-
0
| Пустой цикл
Кадр 0
SOF
Пакет данных,
из устройства
SOF
• * •
Кадр1
Пакеты из \
центрального \
концентратора \
т ><
IN
DATA АСК
/
SYN PID PAYLOAD
\
CRC
Кадр 2
SOF
КадрЗ
Пакеты из
центрального
концентратора
ft Л
SOF OUT DATA ACK
/ ' О т устройства \
ч
SYN PID PAYLOAD CRC
Рис. 3.50. Центральный концентратор шины USB передает кадры каждую миллисекунду