ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 24.12.2021

Просмотров: 6731

Скачиваний: 8

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
background image

Примеры шин

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 МГц)


background image

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# до тех пор, пока не сможет передать данные.

При такой процедуре вводится один или несколько периодов ожидания.


background image

Примеры шин 215

Чтение

Цикл шины

Пустой

цикл

Реверсирование передачи

Адрес >< >< Данные

-Запись

. , — т.—•.

Ф

Адрес

С/ВЕ#

FRAMES

IRDY#

DEVSEL#

TRDY#

Рис. 3.49.

 Примеры 32-битных транзакций в шине PCI. Во время первых трех циклов

происходит операция чтения, затем идет пустой цикл, а следующие

три цикла — операция записи

В нашем примере (часто это бывает и в действительности) следующий цикл

пустой. Мы видим, что в цикле Т

5

 то же самое задающее устройство иницииру-

ет процесс записи. Сначала оно, как обычно, помещает адрес и команду на шину.

В следующем цикле оно выдает данные. Поскольку линиями AD управляет одно

и то же устройство, цикл реверсирования передачи не требуется. В цикле Т

7

 память

принимает данные.

Команда-^Разрешающий

чтения X сигнал

Шина USB

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

Изначально каждое стандартное устройство ввода-вывода подсоединялось к ком-

пьютеру особым образом, при этом для добавления новых устройств использова-

лись свободные слоты ISA и PCI. К сожалению, такая схема имеет некоторые

недостатки. Например, каждое новое устройство ввода-вывода часто снабжено
собственной платой ISA или PCI. Пользователь при этом должен сам установить
переключатели и перемычки на плате и увериться, что установленные параметры
не конфликтуют с другими платами. Затем пользователь должен открыть систем-

ный блок, аккуратно вставить плату, закрыть системный блок, а затем включить

компьютер. Для многих этот процесс очень сложен и часто приводит к ошибкам.


background image

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 -

 концентратор. —

 Примеч. пер.


background image

Примеры шин

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 передает кадры каждую миллисекунду