К. Хамахер, З. Вранешич, С. Заки - Организация ЭВМ - 5-е издание (2003) (1114649), страница 72
Текст из файла (страница 72)
В то же время каждое устройство подключается к компьютеру или хабу с помощью последовательного соединения «точка-точка». Как будет показано ниже, это обстоятельство играет очень важную роль в реализации принципа р1ий-апс?-р1ау. Кроме того, из-за некоторых особенностей электрического характера последовательная пересылка данных по таким шинам, как показано на рис. 4.1, выполняется гораздо проще параллельной пересылки. И при этом данные могут пересылаться гораздо быстрее, а кабели могут быть намного длиннее. В основе функционирования шины БЯВ лежит принцип опроса устройств, Устройство может отослать сообщение только в ответ на запрос хоста. Поэтому передаваемые хосту сообщения не конфликтуют и не пересекаются друг с другом, и никакие два устройства не могут отослать сообщения одновременно.
Это ограничение позволяет применять простые и недорогие хабы. Описанный выше режим функционирования пригоден для всех устройств, работающих на низкой или полной скорости. Однако с появлением высокоскоростной шины ПЯВ версии 2.0 связано одно исключение. Рассмотрим ситуацию, показанную на рис. 4.44. Хаб А подключен к корневому хабу через высокоскоростное соединение. Он обслуживает одно высокоскоростное устройство С и одно низкоскоростное устройство П. Как правило, сообщения устройству В от корневого хаба пересылаются на низкой скорости. Но при скорости 1,5 Мбит/с даже для пересылки короткого сообщения понадобится несколько десятков миллисекунд.
И все это время никакие другие данные пересылаться не могут, из-за чего снижается эффективность высокоскоростного соединения и происходят задержки, неприемлемые для высокоскоростных устройств. Для разрешения данной проблемы протокол ??ЯВ требует, чтобы сообщения, передаваемые через высокоскоростное соединение, всегда пересылались на высокой скорости, даже если их конечным получателем является низкоскоростное устройство. Таким образом, сообщение, предназначенное для устройства ?), пересылается от корневого хаба к хабу А на высокой скорости, а дальше, к устройству ?), — на низкой. Последний этап пересылки займет много времени, в течение которого разрешается производить высокоскоростной график к другим узлам.
Например, пока низкоскоростное сообщение проходит путь от хаба А к устройству?), корневой хаб может обменяться несколькими сообщениями с устройством С. В течение этого времени шина делится между высокоскоростным и низкоскоростным графиком. Сообщение, следующее к устройству П, предваряется и завершается специальными командами для хаба А перейти в режим разделения графика, а затем выйти из такового. Стандартом ПЯВ определяются особенности аппаратной реализации соединений ПЯВ, а также структура программного обеспечения хоста и требования к самому обеспечению. Последнее предназначено для поддержки двунаправленных коммуникационных соединений между прикладным программным обеспечением и устройствами ввода-вывода.
Эти соединения называются каналами (р1ре). Любые данные, входящие в канал с одного конца, обязательно достигают другого. Все вопросы, связанные с адресацией, тактированием, выявлением ошибок и восстановлением решаются посредством протоколов \?БВ. 31 О Глава 4. Ввод-вывод Рис. 4.44. Разделение шины Мы уже упоминали в разделе 4.2.6, что программное обеспечение, пересылающее данные от устройства к устройству ввода-вывода, называется драйвером этого устройства.
Каждый драйвер разрабатывается с учетом характеристик того конкретного устройства, для которого он предназначен. Поэтому более точное определение канала БЯВ таково: соединение устройства ввода-вывода с его драйвером. Это соединение устанавливается после подключения устройства и назначения ему программным обеспечением ПБВ уникального адреса. При наличии соединения данные могут пересылаться по каналу по мере надобности.
Далее будут рассмотрены принципы адресации устройств, подключаемых к шине 0ЯВ, после чего мы перейдем к описанию различных способов пересылки данных по шине. Адресация Когда в начале этой главы речь шла об операциях ввода-вывода, мы говорили, что устройства ввода-вывода обычно идентифицируются с помощью назначаемых нм уникальных адресов памяти. Одно устройство может содержать несколько адресуемых запоминающих элементов, позволяющих программному обеспечению направлять ему и получать от него управляющую информацию, информацию о со.
стоянии и данные. Корневой хаб ББВ соединяется с шиной процессора, которнй обращается к хабу как к единственному устройству. Программное обеспечение 4.7. Стандартные интерфейсы ввода-вывода 311 хост-компьютера взаимодействует с отдельными устройствами, подключенными к шине БЯВ, направляя им пакеты информации, которую корневой хаб перенаправляет по цепочке соединений П5В конкретному устройству. Каждому устройству на шине УЯВ, будь то хаб или устройство ввода-вывода, назначается 7-битовый адрес. Этот адрес локален для дерева 115В и никак не соотносится с адресами, используемыми на шине процессора.
К хабу может быть подключено любое количество устройств и других хабов, адреса которых назначаются произвольным образом. Когда устройство активизируется или подключается к хабу, оно имеет адрес О. Аппаратное обеспечение хаба обнаруживает новое устройство, о чем делает соответствующую пометку в своей информации о состоянии. Периодически хост опрашивает все хабы, собирая сведения об их состоянии, и узнает о добавленных или удаленных устройствах. Когда хост узнает о подключении нового устройства, он с помощью специальной последовательности команд направляет в порт хаба сигнал сброса, считывает из памяти устройства информацию о его возможностях, направляет этому устройству конфигурационную информацию и присваивает ему уникальный УЯВ-адрес.
После этого начинается обычное функционирование устройства, которое теперь имеет новый адрес. Описанная процедура инициализации подключения является основой реализации принципа р1ця-алб-р1ау. Ею всецело управляет программное обеспечение хоста. Оно имеет возможность узнать о подключении устройства, прочитать информацию об этом устройстве (которая обычно хранится в его встроенной памяти небольшого объема, доступной только для чтения), направить ему конфигурационные команды, необходимые для настройки параметров, и, наконец, присвоить ему уникальный ПЯВ-адрес.
Единственное, что при этом требуется от пользователя,— это подключить устройство к порту хаба и включить его питание. При выключении устройства выполняются аналогичные действия. Соответствующий хаб сообщает об этом факте программному обеспечению ПЯВ, которое обновляет свои таблицы. Если отключенное устройство само является хабом, программное обеспечение, конечно же, логически отсоединяет и все подключенные к нему устройства. Программное обеспечение П5В должно постоянно иметь полную картину топологии шины и подключенных к нему устройств.
Такие места хранения информации, как регистры состояния, управления н данных, называются конечными точками. Они идентифицируются 4-разрядными числами. Собственно говоря, 4-разрядное значение идентифицирует пару конечных точек: одну для ввода данных, а другую — для их вывода. Таким образом, у устройства может быть до 16 входных-выходных пар конечных точек. Каждый канал БЯВ, будучи двунаправленным, соединяется с одной такой парой.
Один канал, под номером О, соединенный с конечными точками, существует всегда и создается сразу после включения или перезапуска устройства. Это управляющий канал, который используется программным обеспечением 13ЯВ в процессе инициализации устройства. В ходе этого процесса создаются другие каналы, количество которых зависит от потребностей и сложности устрой..тва. Как рассказывается далее, 4-разрядный номер конечной точки является частью адресной информации, которую хост отправляет устройствам ввода-вывода. 312 Глава 4.
Ввод-вывод Р1Вз Р1В~ Р1Вз Р1Рз Р1Вз Р1Р, Р1Рз Р1Вз Биты ! 8 ! 7 ) 4 ) 5 Р1В А1НЖ ЕВЕР СКС16 Биты ! 8 16 от 0 до 8192 Р1В ВАТА СКС16 Рио. 4.45. Форматы пакетов ОВВ: поле идентификатора пакета (а); пакет маркера, ))Ч или 0()т (б); пакет данных (а) Четыре бита Р1Р идентифицируют один из 16 возможных типов пакетов. Некоторые управляющие пакеты, и в частности АСК (Ас(шозт1ес)йе — подтверждение), состоят только из байта Р1Р. Пакеты, используемые для управления операциями пересылки данных, называются пакетами маркера.
Их формат проиллюстрировав Протоколы УЗВ Информация, пересылаемая через соединения 1)5В, организуется в пакеты, каждый из которых включает один или несколько байтов данных. Существует множество типов пакетов, выполняющих разные управляющие функции. Рассматривая работу шины ПБВ на примерах, мы расскажем о нескольких важнейших типах пакетов и покажем, как они используются. Пересылаемую по шине ПБВ информацию можно разделить на две категории: управляющая информация и данные. Управляющие пакеты используются для адресации устройств при инициировании пересылки данных, а также для подтверждения факта получения правильных данных и сообщений об ошибках. Пакеты данных содержат входные и выходные данные, которыми хост обменивается с устройством, и некоторую другую информацию.
Каждый пакет состоит из одного или нескольких полей, содержащих разные типы информации. Первое поле любого пакета называется идентификатором к обозначается как Р1Р. Оно идентифицирует тип пакета. В атом поле четыре бита информации, которые передаются дважды. В первый раз пересылаются их реальные значения, а во второй — дополненные, как показано на рис. 4.45, а. Это позволяет устройству-получателю проверить достоверность полученного байта Р1Р. 4.7.
Стандартные интерфейсы ввода-вывода 313 на рис. 4А5, б. Пакет маркера начинается с поля Р10, в котором содержится одно из двух значений, идентифицирующих тип пакета, — 1М или ОПТ. Пакеты типа 1М предназначены для управления операциями ввода, а пакеты типа ОПТ вЂ” операциями вывода. За полем Р1О следует 7-разрядный адрес устройства и 4-разрядный номер конечной точки внутри этого устройства.