Интерфейсы и шины в вычислительной системе
Скачать 0.6 Mb.
|
Шина SCSIРис. 5. Арбитраж и выбор на шине SCSI ___ DB2 ___ DB5 ___ DB6 ___ BSY ___ SEL Арбитраж Выбор Целевые устройства анализируют номер устройства на шине Шина свободна В схеме представленной на Рис. 5, предполагается, что контроллер 6 является инициатором, желающим установить соединение с контроллером 5. Выиграв арбитраж у устройства 2, контроллер 6 переходит к фазе выбора и идентифицирует целевой контроллер. Контролер 6 сохраняет активными сигналы -BSY и -DB6 (свой адрес). Для того чтобы сообщить, что он хочет выбрать для соединения контроллер 5, он поочередно активизирует линии -SEL и -DB5. Как только активизируется сигнал -SEL, все остальные контроллеры, участвовавшие в арбитраже, снимают с линий данных свои адреса. Поместив на шину адрес целевого контроллера, инициатор освобождает линию -BSY. Выбранный целевой контроллер отвечает активизацией линии -BSY. Тем самым он сообщает инициатору, что запрошенное соединение установлено и что можно удалять с шины адрес целевого контроллера. На этом процесс выбора завершается, а целевой контроллер (контроллер 5) сохраняет линию -BSY активной. В схеме представленной на Рис. 5, предполагается, что контроллер 6 является инициатором, желающим установить соединение с контроллером 5. Выиграв арбитраж у устройства 2, контроллер 6 переходит к фазе выбора и идентифицирует целевой контроллер. Контролер 6 сохраняет активными сигналы -BSY и -DB6 (свой адрес). Для того чтобы сообщить, что он хочет выбрать для соединения контроллер 5, он поочередно активизирует линии -SEL и -DB5. Как только активизируется сигнал -SEL, все остальные контроллеры, участвовавшие в арбитраже, снимают с линий данных свои адреса. Поместив на шину адрес целевого контроллера, инициатор освобождает линию -BSY. Выбранный целевой контроллер отвечает активизацией линии -BSY. Тем самым он сообщает инициатору, что запрошенное соединение установлено и что можно удалять с шины адрес целевого контроллера. На этом процесс выбора завершается, а целевой контроллер (контроллер 5) сохраняет линию -BSY активной. С этого момента шиной управляет целевой контроллер, что необходимо для фазы пересылки информации. Для управления пересылкой информации предназначены сигналы квитирования. Процесс квитирования аналогичен описанному ранее, но в данном случае роль хозяина шины выполняет целевой контроллер. Сигналы -REQ и -АСК соответствуют сигналам Master-ready и Slave-ready Для выполнения операции ввода (пересылки данных от целевого контроллера к инициатору) целевой контроллер активизирует сигнал -I/O на все время этой операции. Кроме того, он может активизировать сигнал -C/D, указывающий, что пересылаются не данные, а команда или информация о состоянии. Асинхронные шиныПересылка выходных данных по шине с использованием квитирования (вывод) Время Адрес и команда Master-ready Slave-ready Данные Цикл шины t0 t1 t2 t3 t4 t5 Шина USBСовременные компьютерные системы включают множество устройств, таких как клавиатуры, микрофоны, цифровые видеокамеры, динамики, дисплеи. И почти все они имеют проводное или беспроводное соединение с Интернетом. Одним из важнейших требований к таким системам является наличие простого и недорогого механизма подключения к компьютеру внешних устройств. Одной из разработок в этой области стала универсальная последовательная шина – Universal Serial Bus (USB). USB является промышленным стандартом, разработанным объединенными усилиями ряда компьютерных и коммерческих компаний, к числу которых относятся Compaq, Hewlett-Packard, Intel, Lucent, Microsoft, Nortel Networks, Philips. USB поддерживает два режима функционирования, получивших названия низкоскоростной (1,5 Мбит/с) и полноскоростной (12 Мбит/с). В последних версиях этой спецификации, USB 2.0/ 3.0, введен третий режим, названный высокоскоростным (480Мбит/с и 5 Гбит/с). Разработчики USB ставили перед собой следующие задачи: создать простую, дешевую и удобную систему соединения, позволяющую преодолевать сложности, возникающие из-за ограниченного числа имеющихся в компьютерах портов ввода-вывода; учесть широкий диапазон параметров пересылаемых данных, присущих различным устройствам ввода-вывода, в том числе модемам; облегчить для пользователей процесс подключения устройств за счет поддержки режима plug-and-play. Для шины USB выбран последовательный формат пересылки данных, обеспечивающий малую стоимость и наибольшую гибкость. Тактирующий сигнал и данные кодируются вместе и передаются как единый сигнал. В результате нет никаких ограничений в отношении тактовой частоты или расстояний, связанных со сдвигом данных, в результате становится возможной высокая пропускная способность соединений с высокой тактовой частотой. Для того чтобы к шине USB можно было одновременно подключать большое количество устройств, удаляемых и подсоединяемых в любое время, эта шина имеет древовидную структуру и поддерживает технологию plug-and-play. Шина USBСтруктура дерева USB Хост-компьютер Корневой хаб Хаб Хаб Хаб Устройство ввода-вывода Устройство ввода-вывода Устройство ввода-вывода Устройство ввода-вывода Устройство ввода-вывода Устройство ввода-вывода Каждый хаб имеет ряд портов, к которым можно подключать любые устройства, в том числе и другие хабы. В нормальном режиме хаб копирует полученное входное сообщение в свои выходные порты. В результате посланное компьютером сообщение передается всем устройствам ввода-вывода, но отвечает на него только адресуемое устройство. Сообщение от устройства ввода-вывода пересылается только вверх, в направлении корневого узла, и другие устройства его не получают. Таким образом, USB дает возможность хосту взаимодействовать с устройствами ввода-вывода, но не позволяет им взаимодействовать друг с другом. В основе функционирования шины USB лежит принцип опроса устройств. Устройство может отослать сообщение только в ответ на запрос хоста. Поэтому передаваемые хосту сообщения не конфликтуют и не пересекаются друг с другом, и никакие два устройства не могут отослать сообщения одновременно. Это ограничение позволяет применять простые и недорогие хабы. Стандартом USB определяются особенности аппаратной реализации соединений USB, а также структура программного обеспечения хоста и требования к самому обеспечению. Последнее предназначено для поддержки двунаправленных коммуникационных соединений между прикладным программным обеспечением и устройствами ввода-вывода. Соединения называются каналами (pipe). Любые данные, входящие в канал с одного конца, обязательно достигают другого. Все вопросы, связанные с адресацией, тактированием, выявлением ошибок и восстановлением решаются посредством протоколов USB. Каждый драйвер разрабатывается для устройства с учетом характеристик того конкретного устройства, для которого он предназначен. Поэтому более точное определение канала USB таково: соединение устройства ввода-вывода с его драйвером. Это соединение устанавливается после подключения устройства и назначения ему программным обеспечением USB уникального адреса. При наличии соединения данные могут пересылаться по каналу по мере надобности. Адресация USBКаждому устройству на шине USB, будь то хаб или устройство ввода-вывода, назначается 7-битовый адрес. Этот адрес локален для дерева USB и никак не соотносится с адресами, используемыми на шине процессора. К хабу может быть подключено любое количество устройств и других хабов, адреса которых назначаются произвольным образом. Когда устройство активизируется или подключается к хабу, оно имеет адрес 0. Аппаратное обеспечение хаба обнаруживает новое устройство, о чем делает соответствующую пометку в своей информации о состоянии. Периодически хост опрашивает все хабы, собирая сведения об их состоянии, и узнает о добавленных или удаленных устройствах. Когда хост узнает о подключении нового устройства, он с помощью специальной последовательности команд направляет в порт хаба сигнал сброса, считывает из памяти устройства информацию о его возможностях, направляет этому устройству конфигурационную информацию и присваивает ему уникальный USB-адрес. После этого начинается обычное функционирование устройства, которое теперь имеет новый адрес. Описанная процедура инициализации подключения является основой реализации принципа plug-and-play. Ею управляет программное обеспечение хоста. Единственное, что при этом требуется от пользователя, – это подключить устройство к порту хаба и включить его питание. При выключении устройства выполняются аналогичные действия. Программное обеспечение USВ должно постоянно иметь полную картину топологии шины и подключенных к нему устройств. Такие места хранения информации, как регистры состояния, управления и данных, называются конечными точками. Пару конечных точек: одну для ввода данных, а другую – для их вывода идентифицирует 4-разрядное число. Таким образом, у устройства может быть до 16 входных-выходных пар конечных точек. Каждый канал USB, будучи двунаправленным, соединяется с одной такой парой. Один канал, под номером 0, соединенный с конечными точками, существует всегда и создается сразу после включения устройства. Это управляющий канал, который используется программным обеспечением USB в процессе инициализации устройства. В ходе этого процесса создаются другие каналы, количество которых зависит от потребностей и сложности устройства. Программное обеспечение USВ должно постоянно иметь полную картину топологии шины и подключенных к нему устройств. Такие места хранения информации, как регистры состояния, управления и данных, называются конечными точками. Пару конечных точек: одну для ввода данных, а другую – для их вывода идентифицирует 4-разрядное число. Таким образом, у устройства может быть до 16 входных-выходных пар конечных точек. Каждый канал USB, будучи двунаправленным, соединяется с одной такой парой. Один канал, под номером 0, соединенный с конечными точками, существует всегда и создается сразу после включения устройства. Это управляющий канал, который используется программным обеспечением USB в процессе инициализации устройства. В ходе этого процесса создаются другие каналы, количество которых зависит от потребностей и сложности устройства. Информация, пересылаемая через соединения USB, организуется в пакеты, каждый из которых включает один или несколько байтов данных. Пересылаемую по шине USB информацию можно разделить на две категории: управляющая информация и данные. Управляющие пакеты используются для адресации устройств при инициировании пересылки данных, а также для подтверждения факта получения правильных данных и сообщений об ошибках. Пакеты данных содержат входные и выходные данные, которыми хост обменивается с устройством, и некоторую другую информацию. Каждый пакет состоит из одного или нескольких полей, содержащих разные типы информации. Шина USBФорматы пакетов USB: поле идентификатора пакета (а); пакет маркера, IN или OUT (б); пакет данных (в) PID0 PID1 PID2 PID3 PID0 PID1 PID2 PID3 PID ADDR EDNP CRC16 8 7 4 5 Биты а б PID DATA CRC16 8 от 0 до 8192 16 Биты в Первое поле любого пакета называется идентификатором и обозначается как PID. Оно идентифицирует тип пакета. В этом поле четыре бита информации, которые передаются дважды. В первый раз пересылаются их реальные значения, а во второй – дополненные. Это позволяет устройству-получателю проверить достоверность полученного байта PID. Четыре бита PID идентифицируют один из 16 возможных типов пакетов. Некоторые управляющие пакеты, и в частности АСК (Acknowledge – подтверждение), состоят только из байта PID. Пакеты, используемые для управления операциями пересылки данных, называются пакетами маркера. Пакет маркера начинается с поля PID, в котором содержится одно из двух значений, идентифицирующих тип пакета, – IN или OUT. Пакеты типа IN предназначены для управления операциями ввода, а пакеты типа OUT – операциями вывода. За полем PID следует 7-разрядный адрес устройства и 4-разрядный номер конечной точки внутри этого устройства. Последние пять разрядов в пакете предназначены для его же проверки на наличие ошибок. Для этой цели предназначен метод, называемый циклическим контролем избыточности (Cyclic Redundancy Check, CRC). Биты CRC вычисляются на основе содержимого полей адреса и конечной точки. С помощью обратного вычисления устройство-получатель может определить наличие ошибок в пакете. В пакетах, содержащих входные и выходные данные за полем идентификатора пакета следуют не более 8192 бит данных, затем 16 контрольных битов. Для идентификации пакетов используются три разных значения PID, так что пакеты данных могут иметь номера 0, 1 и 2. Обратите внимание, что пакеты данных не содержат ни адреса устройства, ни номера конечной точки. Такого рода информация включается в пакет IN или OUT, инициировавший пересылку данных. Одной из задач USB является поддержка устройств для пересылки изохронных данных, например оцифрованного голоса. Устройствам для управления процессом дискретизации и восстановления сигнала необходима тактовая информация. С этой целью передача данных по шине USB осуществляется по кадрово. Ровно через каждую миллисекунду корневой хаб генерирует пакет SOF, отмечающий начало кадра. Момент прибытия пакета SOF устройство может воспринимать как тактовый сигнал. Для устройств, которым требуются более длительные такты, в пакет SOF включается 11-разрядный номер кадра. Вслед за отправкой пакетов SOF хост выполняет пересылку входных данных изохронным устройствам. Таким образом каждое из подключенных к шине изохронных устройств сможет каждую миллисекунду получать или отправлять данные. |