К. Хамахер, З. Вранешич, С. Заки - Организация ЭВМ - 5-е издание (2003) (1114649), страница 69
Текст из файла (страница 69)
В этом случае возможно использование двух уровней напряжения. В ранних версиях шины, получивших название Н1811 Чо1гайе Р1йегепт1а1 (НЧР), применялось напряжение 5 В (уровни ТТЕ). Более поздняя версия с напряжением 3,3 В называется Еов Чо(тайе Р1Яегепй1а( (1Л'Р). Для различных версий 5С51 используются разные разъемы; они могут быть 50-, 68- и 80-контактными.
Максимальная скорость передачи данных современных устройств варьируется от 5 до 60 Мбайт/с. Последняя версия стандарта поддерживает скорость передачи до 320 Мбайт/а, а на подходе версия с поддержкой 640 Мбайт/с. Максимальная скорость передачи по конкретной шине зависит от длины кабеля и количества подключенных к нему устройств. Но если говорить в общем, она тем выше, чем короче кабель и чем меньше устройств к нему подключено. Для достижения максимальной скорости обычно используют кабель длиной не более 1,6 м для сигнальной схемы 5Е и не более 12 м для сигнальной схемы 1Л'В.
Однако производители для подключения более удаленных устройств часто предоставляют специальные расширители шины. Максимальная «вместимость» шаны составляет 8 устройств для Маггов 5С51 и 16 устройств для ЖЫе 5С51. В отличие от устройств, подключаемых к шине процессора, устройства, подключаемые к шине 5СЯ1, не являются частью его адресного пространства. Шина 5С51 соединяется с шиной процессора через ЯС51-контроллер, как показано на 4.7.
Стандартные интерфейсы ввода-вывода 299 рис. 4.38. Для пересылки пакетов данных от главной памяти к устройству и в обратном направлении этот контроллер применяет технологию прямого доступа к памяти. Пакет может содержать блок данных, команды, направляемые процессором устройству, или информацию о состоянии устройства. Ниже функционирование шины 5С51 будет рассмотрено на примере ее использования с дисковым накопителем. Принцип взаимодействия с дисками очень отличается от принципа взаимодействия с основной памятью. Как рассказывается в главе 5, данные хранятся на диске блоками, называемыми секторами, каждый из которых может содержать несколько сот байтов. Данные не обязательно записываются в последовательно расположенные секторы.
Дело в том, что в одних секторах могут уже храниться ранее записанные данные; другие могут быть дефектными, а следовательно, должны быть пропущены. Поэтому для обслуживания запроса чтения или записи может потребоваться доступ к нескольким, не обязательно последовательным секторам диска. Из-за ограничений, связанных с механической природой диска, обращение к первому сектору, из которого считываются или в который записываются данные, выполняется с довольно значительной задержкой, порядка нескольких миллисекунд.
После этого некоторый объем данных пересылается с очень высокой скоростью, но затем может произойтн еще одна задержка и т. д. В ходе обслуживания одного запроса чтения или записи может произойти несколько таких задержек. Протокол БС51 ориентирован именно на такой режим работы. Контроллер, подключенный к шине 5СЯ?, может быть инициатором или целевым устлройстеом.
Инициатор обладает способностью выбирать конкретное целевое устройство и направлять ему команды, определяющие выполняемую операцию. Очевидно, что контроллер со стороны процессора (например, изображенный на рнс. 4.38 ЯСЯ?-контроллер) должен функционировать как инициатор. Дисковый контроллер является целевым устройством.
Он осуществляет команды, получаемые от инициатора. Инициатор устанавливает логическое соединение с выбранным целевым устройством. Соединение может временно разрываться н возобновляться по мере возникновения необходимости в пересылке команд и пакетов данных. Когда некоторое соединение временно разрывается, шина может быть использована для передачи информации другими устройствами.
Эта способность чередовать запросы пересылки данных является одной из важнейших особенностей шины 5С51, определяющих ее высокую производительность. Пересылка данных по шине 5С51 всегда управляется целевым контроллером. Для того чтобы отправить ему команду, инициатор запрашивает управление шиной, выиграв арбитраж, выбирает контроллер, с которым хочет взаимодействовать, и передает ему управление шиной. После этого целевой контроллер начинает операцию передачи данных для получения команды от инициатора. Давайте в качестве примера рассмотрим весь процесс выполнения операции чтения данных с диска.
Мы будем говорить о том, что инициирующий контроллер выполняет определенные действия, но читатель должен понимать, что он делает это только после получения соответствующих команд от процессора. Предположим, что процессор хочет прочитать с диска блок данных и что секторы, в которых хранится этот блок, расположены непоследовательно.
Процессор 300 Глава 4. Ввод-вывод направляет 5С51-контроллеру команду, в ответ на которую происходят следующие события. 1. Контроллер 5С51, как инициатор, запрашивает управление шиной. 2. Выиграв арбитраж, он выбирает целевой контроллер и передает ему управление шиной. 3. Целевой контроллер начинает операцию вывода, а инициатор направляет ему в ответ команду, определяющую операцию чтения.
4. Целевой контроллер, который вначале должен выполнить операцию поиска данных на диске, отсылает инициатору сообщение, указывающее, что он временно разрывает соединение. После этого он освобождает шину. 5. Целевой контроллер направляет диску команду переместить считывающую головку к первому сектору, содержащему запрошенные данные. Затем он считывает хранящиеся в этом секторе данные и сохраняет их в буфере данных.
Когда контроллер готов начать пересылку данных инициатору, он запрашивает управление шиной. Выиграв арбитраж, он снова выбирает инициирующий контроллер, возобновляя тем самым временно разорванное соединение. 6. Целевой контроллер пересылает инициатору содержимое буфера данных и еще раз временно разрывает соединение. Данные пересылаются параллельно по 8 или 16 бит, в зависимости от ширины шины. 7. Целевой контроллер направляет диску команду выполнить еще одну операцию поиска. Затем он пересылает инициатору содержимое второго сектора диска. Когда пересылка завершается, логическое соединение между двумя контроллерами разрывается. 8.
Получив данные, инициирующий контроллер сохраняет их в основной памяти с использованием ПДП. 9. Контроллер 5С51 направляет процессору запрос прерывания, для того чтобы проинформировать его о завершении операции. Обмен сообщениями по шине 5С51 выполняется на более высоком уровне, нежели обмен сообщениями по шине процессора.
В данном контексте слова «на более высоком уровне» означают, что сообщения относятся к операциям, которые в зависимости от устройства могут требовать выполнения целого ряда действий. Ни процессору, ни контроллеру 5С51 не нужно знать всех подробностей выполнения конкретным устройством операций, связанных с пересылкой данных. В нашем примере процессору незачем участвовать в операциях поиска данных на диске.
Стандартом 5 С51 определяется множество управляющих сообщений, которыми могут обмениваться контроллеры для управления различными типами устройств ввода-вывода. Кроме того, им определяются сообщения для обработки различных ошибок и нестандартных ситуаций, которые могут возникать в ходе работы устройств и пересылки данных. Сигналы шины Мы описали функционирование шины 5С51 с аппаратной точки зрения. Основные сигналы этой шины перечислены в табл.
4.4, правда, там указаны только сигналы для узкой шины (с 8 линиями данных). Обратите внимание, что имена всех 4.7. Стандартные интерфейсы ввода-вывода 301 Таблица 4.4. Сигналы шины ЯСВи' Категория Описание От — РВ(0) до -РВ(7) Линии данных: пересылка одного бита информации на фазе пересылки н идентификация устройства на фазах арбитража, выбора и повторного выбора Данные -РВ(Р) -ВБУ Бит четности для шины данных Действует, когда шина не свободна Фаза Действует во время выбора и повторного выбора Тлп информации — С/Р Устанавливается во время пересылки управляющей информации (команды, состояния или сообщения) Указывает, что пересылаемая информация представляет собой сообщение Кввтирование Устанавливается целевым устройством для запроса цикла пересылки данных -АСК Активизируется инициатором после завершения им операции пересылки данных Направление пересылки -1/О Активизируется для операции ввода (с точки зрения инициатора) Прочее Устанавливается инициатором при необходимости послать сообщение целевому устройству Вызывает отключение от шины всех контроллеров и их переход в исходное состояние сигналов начинаются со знака е — ь.