Скорость, экономичность, простота доступа - благодаря этим качествам последовательная шина P1394 имеет все предпосылки для того, чтобы стать законодательницей мод в передаче больших объемов данных в сетевых устройствах.
На долю компьютерных сетей выпадают те же проблемы, с какими сталкиваются и все прочие участники движения на информационной магистрали: заторы, нехватка пропускной способности, аварии. В последнее время появились некоторые решения на уровне устройств. Часто, правда, плата за улучшение условий движения оказывается чересчур высокой.
Частота процессоров достигла 100 МГц, появились накопители на много гигабайт информации, поэтому существенно повысились требования к устройствам ввода/вывода для персональных компьютеров, рабочих станций и серверов. Однако высокоскоростные технологии ввода/вывода, разработанные для мэйнфреймов и супер-ЭВМ слишком дороги и громоздки для маленьких систем.
Вот почему такой интерес вызвала проблема разработки высокоскоростной альтернативы для SCSI и других интерфейсов ввода/вывода для малых компьютеров. В результате был предложен стандарт ANSI P1394 для высокопроизводительной последовательной шины, которую часто называют firewire (в вольном переводе на русский - "огненный провод").
ПАРКУЙТЕСЬ В ОДИН РЯД!
Стандарт P1439 часто может оказаться более удобным, чем SCSI и другие интерфейсы ввода/вывода. Он очень быстрый, экономичный и простой в реализации. Именно поэтому данный стандарт интересен не только для компьютерных систем, но и для изделий бытовой электроники: для цифровых видеокамер, видеомагнитофонов, телевизоров и проч. В этих изделиях P1439 используется для передачи цифровых изображений, а они в бытовой электронике встречаются все чаще.
Одна из сильных сторон P1394 - использование последовательной (то есть один байт за один раз), а не параллельной передачи данных. Параллельные интерфейсы (например SCSI) требуют использования нескольких проводов, а следовательно, возникает необходимость в широких и дорогих кабелях и разъемах (а чем шире разъем, тем больше в нем контактов, которые могут погнуться и поломаться). Кабели с большим количеством проводов требуют экранирования для предотвращения взаимных наводок между проводами. Кроме того, использование параллельных интерфейсов требует синхронизации между проводами. Данная проблема тем сложнее, чем длиннее кабель.
Кроме того, компьютеры становятся все меньше и меньше по размеру, а их мощность и, соответственно, требования к вводу/выводу все растут и растут. Портативные и карманные компьютеры, в которых совсем мало места для разъемов, требуют высоких скоростей передачи данных для работы с изображениями и видео.
Назначение стандарта P1394 - обеспечить единый интерфейс ввода/вывода с простым разъемом для работы с различными устройствами через один порт. Тем самым удастся заменить порты мыши, лазерного принтера, SCSI, внешнего дисковода, звуковой платы и сетевого адаптера одним-единственным разъемом, созданным по мотивам разъема игровой приставки Gameboy. Этот разъем настолько удобен, что пользователь может не глядя протянуть руку к задней стенке машины и подключить нужное ему устройство.
ОСТАНОВКИ В ПУТИ
При разработке P1394 предполагалось, что шина будет работать в одном из трех качеств: как альтернатива параллельной магистральной шине, как недорогая шина периферийных устройств и как мост между архитектурно совместимыми 32-разрядными шинами.
В качестве альтернативы параллельной магистрали, интерфейс P1394 может выступать как единственная шина в новой системе или как дополнительная шина в уже готовой архитектуре. При использовании в качестве дополнения, интерфейс P1394 может применяться для поддержки модулей, несовместимых с изначальной магистральной шиной. Он, кроме того, обеспечивает избыточность и позволяет сэкономить на подсоединении модулей, не требующих подключения к основной магистрали.
Пожалуй, основное назначение интерфейса P1394 - это недорогая периферийная шина. Компактные кабель и разъем интерфейса P1394 обеспечивают пропускную способность, соответствующую современным стандартам соединения устройств ввода/вывода, при более низкой стоимости, более простой схеме и более удобных инсталляции и обслуживании.
При использовании в качестве моста, шина P1394 способна связывать между собой другие шины. Например, на самой шине P1394 может быть не больше 63 узлов, но при этом поддерживаются многошинные системы с мостами между отдельными шинами. По существу, межшинный мост представляет собой "жучок" для "прослушивания" трафика по связываемым шинам. Все транзакции между локальными адресами игнорируются, передаются только транзакции к удаленным адресам.
ВЫГОДЫ ДЛЯ ПАССАЖИРОВ
Последовательная шина P1394 имеет следующие возможности:
МОДЕЛИ ЭТОГО ГОДА
В данном разделе мы рассмотрим различные конфигурации шины P1394.
Используя шлейфовое подключение устройств (до 63 на один порт), интерфейс P1394 позволяет соединить между собой до 1022 шин P1394 при помощи мостов. Таким образом можно организовать поддержку практически неограниченного количества периферийных устройств.
Шина P1394 обеспечивает "горячее" подключение, поэтому можно подсоединять и отсоединять периферийные устройства, не выключая питание и не переконфигурируя систему. Кроме того, система конфигурируется автоматически, поэтому не надо устанавливать вручную номера устройств или следить за их взаимным расположением.
На рисунке 1 приведены примерные конфигурации шин P1394 и SCSI. Оба конца шины SCSI заглушены терминаторами, а каждому устройству присвоен уникальный адрес, составляющий неотъемлемую часть данной конкретной конфигурации.
(1х1)
Рисунок 1.
Как показывает сравнение между P1394 и SCSI, конфигурация Р1394 не
требует использования терминаторов. Система автоматически выполняет конфигурацию
с присвоением адресов.
В стандарте P1394 терминаторы не предусмотрены, а адреса присваиваются автоматически при самоконфигурировании системы. Шлейфовая структура для шины P1394 не обязательна, возможно также древовидное подключение устройств.
ШИНА С ТРЕХСЛОЙНЫМ ПРОТЕКТОРОМ
Важной особенностью стандарта P1394 является набор из протоколов трех уровней, определяющих способы взаимодействия базовой системы с периферийными устройствами через последовательную шину. На рисунке 2 изображен трехуровневый стек протоколов шины P1394.
(1x1)
Рисунок 2.
Трехуровневый стек протоколов З1394 определяет способ, которым основная
система взаимодействует с периферийными устройствами по последовательной
шине.
На физическом уровне стандарта P1394 задаются несколько разных носителей и используемые с ними разъемы. Носители отличаются физическими свойствами и параметрами передачи данных. Допустимые скорости передачи данных - от 25 до 400 Мбит/с.
Стандартом P1394 предусмотрены две формы арбитража. Простейшая из них основана на том, что узлы на шине P1394 составляют древовидную структуру, одной из форм которой является линейная цепочка.
Схемные решения физического уровня обеспечивают следующую конфигурацию подключенных к шине устройств: один узел рассматривается как корневой, а все остальные организованы по принципу предок/потомок, так что в целом шина имеет древовидную структуру.
Когда структура сформирована, корневой узел выступает в роли главного арбитра, а запросы на доступ к шине обслуживаются в порядке поступления. При одновременном поступлении запросов доступ получает узел с наивысшим естественным приоритетом. Как правило, это ближайший к корневому узлу узел, а при равенстве расстояний - узел с минимальным идентификационным номером.
В дополнение к этому методу арбитража имеются еще два: равноправный арбитраж и арбитраж по срочности. В рамках первого метода шинное время разбивается на равноправные интервалы. В начале каждого интервала все узлы выставляют флаг ENABLE_ARBITRATION. Во время интервала узлы конкурируют между собой за обращение к шине.
Получив доступ к шине, узел снимает флаг ENABLE_ARBITRATION и лишается права доступа к шине на протяжении данного равноправного интервала. Такая схема обеспечивает равноправие всех узлов, что предотвращает захват шины сильнозагруженными устройствами с высоким приоритетом.
ГЛАВНОЕ - СОБЛЮСТИ РАСПИСАНИЕ
На канальном уровне определяется передача данных в виде пакетов. Поддерживаются два вида передачи.
При асинхронной передаче пакеты содержат переменное количество данных плюс несколько байт информации канального уровня. Пакет передается по указанному в явном виде адресу, и о его получении источник извещается посылкой подтверждения приема. При изохронной передаче, напротив, информация передается пакетами фиксированной длины, следующими друг за другом через равные промежутки времени. При этом используется упрощенная форма адресации, а квитанции не высылаются.
Асинхронный режим используется в тех случаях, когда не требуется выдерживать постоянную скорость передачи данных. Здесь могут использоваться как равноправный арбитраж, так и арбитраж по срочности, причем по умолчанию используется первый метод.
Для устройств, требующих значительной части пропускной способности шины или не допускающих больших задержек при передаче данных, следует использовать арбитраж по срочности. Например, высокоскоростной узел сбора данных реального времени может использовать арбитраж по срочности, когда буферы данных (переполнение коих может привести к невосполнимым потерям) заполняются более чем наполовину.
На рисунке 3а приведена примерная схема асинхронной передачи. Процесс доставки одного пакета, называемый поддействием, состоит из пяти интервалов.
(1x1)
Рисунок 3.
Асинхронное, сцепленное асинхронное и изохронное поддействия - три
режима транзакции пакетов в интерфейсе Р1394.
Поддействия при асинхронной передаче, как правило, разделяются периодами бездействия шины, именуемыми задержкой поддействия. Однако при передаче подтверждения приема управление шиной принадлежит узлу, высылающему подтверждение. Поэтому при обмене типа "запрос-ответ" пакет с ответом на запрос может быть передан сразу же после высылки подтверждения, без всякой процедуры арбитража (см. рисунок 3б).
Для устройств, генерирующих или получающих данные через регулярные интервалы, например аудио- или видео-контроллеров, предпочтительно использовать изохронную передачу. Этот метод обеспечивает доставку данных с предопределенной задержкой и с гарантированной скоростью.
Чтобы обеспечить сосуществование трафика изохронной и асинхронной передачи в одной шине, один из узлов назначается организатором цикла. Организатор цикла периодически генерирует пакет CYCLE_START для оповещения всех узлов о начале изохронного цикла. Во время этого цикла могут посылаться только изохронные пакеты (рисунок 3в). Все источники изохронных данных начинают процедуру арбитража. Узел, получивший управление шиной, немедленно передает пакет.
Квитанция о приеме пакета не высылается, поэтому остальные источники изохронных данных начинают процедуру арбитража немедленно по завершении передачи предыдущего изохронного пакета. В результате уменьшается задержка между окончанием передачи одного пакета и началом процедуры арбитража для другого; величина этой задержки определяется характеристиками шины. Временной промежуток, именуемый изохронной задержкой, меньше, чем задержка поддействия.
После завершения передачи всеми источниками изохронных данных наступает период бездействия шины, продолжительность которого в некоторый момент сравнивается с задержкой поддействия. Это служит всем источникам асинхронных данных сигналом к началу процедуры арбитража; источники используют шину до начала следующего изохронного цикла.
Изохронные пакеты помечаются восьмибитными номерами каналов. Номера устанавливаются в ходе диалога между двумя узлами, которые собираются обмениваться изохронными данными. Заголовок, длина которого меньше, чем в случае с асинхронными пакетами, также содержит поле длины блока данных и контрольную сумму заголовка.
СИГНАЛЫ СЕМАФОРА
Основные функции обмена запросами и ответами на уровне транзакций используются на более высоких уровнях. В интерфейсе P1394 основная единица обмена - поддействие, состоящее из передачи пакета и приема подтверждения.
Транзакция состоит либо из одного поддействия (запрос без ответа), либо из пары поддействий (запрос с ответом). Таким образом, транзакция представляет собой либо только пакет с запросом, либо пакеты с запросом и последующим ответом.
Транзакция может быть раздельной, сцепленной, объединенной или широковещательной.
В раздельной транзакции ответ на запрос посылается с некоторой задержкой, продолжитель- ность которой может меняться. Приняв запрос, отвечающий узел возвращает управление шиной и спустя некоторое время начинает процедуру арбитража для передачи второй части транзакции, ответа на запрос. Между запросом и ответом шина может использоваться для других поддействий.
Запрос и ответ представляют собой законченные поддействия. Вот почему запрос состоит из передачи пакета от источника запроса к источнику ответа, вслед за этим немедленно следует отправка подтверждения. Обратный процесс - передача пакета от источника ответа к источнику запроса, а затем, опять-таки, немедленная отправка подтверждения.
В сцепленных транзакциях поддействие ответа немедленно следует за поддействием запроса. Здесь нет никакой задержки между посылкой подтверждения о получении запроса и передачей пакета, составляющего первую половину поддействия ответа.
Объединенная транзакция осуществляется в одно поддействие. Ответ на запрос должен включаться в подтверждающую часть поддействия запроса.
Широковещательная транзакция содержит только поддействие запроса, подтверждение на который не посылается. Такая транзакция может посылаться одновременно нескольким устройствам на шине.
В стандарте P1394 поддерживаются транзакции трех видов: чтение, запись и блокировка. В таблице 1 сведены типы транзакций, используемые в каждом из этих видов обслуживания.
В транзакциях чтения данные, находящиеся по определенному адресу в пределах источника ответа, передаются источнику запроса. Пакет запроса содержит адрес и длину блока данных, которые необходимо считать. Если чтение прошло успешно, пакет ответа возвращает запрошенные данные. Чтение производится только при помощи раздельных или сцепленных транзакций, причем сцепленная транзакция используется, когда нижележащие уровни стека протоколов обеспечивают достаточно быстрый ответ и шина "не подвисает".
При транзакции записи данные передаются от источника запроса по адресу, принадлежащему одному или нескольким источникам ответа. Пакет запроса содержит адрес назначения, записываемые данные и длину блока данных. Здесь могут использоваться транзакции любых типов.
При использовании раздельной или сцепленной транзакции, пакет ответа содержит код результата операции, указывающий на успех или неудачу. В объединенной транзакции код результата включается в подтверждение приема.
В блокирующих транзакциях данные передаются от источника запроса к источнику ответа, обрабатываются совместно с данными, содержащимися в источнике ответа по указанному адресу, и результат возвращается к источнику запроса. Пакет запроса содержит адрес в узле назначения, к которому следует осуществить блокирующий доступ, тип блокирующего доступа, данные для записи и длину блока данных для записи.
При таком типе обслуживания используются только раздельные или сцепленные транзакции. Блокирующая транзакция запрещает одновременный доступ к перекрывающимся адресным пространствам. Если узел получает новую транзакцию запроса до завершения блокирующей транзакции, причем обращение происходит к перекрывающейся области адресов, то следует либо закончить незавершенную транзакцию до начала обработки следующей, либо выполнить запрос по вновь поступившей транзакции до начала обработки стоящей в очереди транзакции.
ЧТО ВПЕРЕДИ?
Перспективы интерфейса P1394 представляются нам самыми радужными. Эта шина относительно проста в реализации, конфигурации и использовании, она обеспечивает высокую производительность при умеренной цене. В ближайшие годы P1394 прочно займет место в устройствах бытовой электроники, на рабочих станциях, серверах и домашних ПК.
Уильям Сталлингс - президент консультативной компании Comp-Comm Consulting (Брюстер, шт. Массачусетс). С ним можно связаться через Internet по адресу: stallings@acm.org.
ТАБЛИЦА 1 - СООТНОШЕНИЕ МЕЖДУ ТИПАМИ ТРАНЗАКЦИЙ И ВИДАМИ ОБСЛУЖИВАНИЯ
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|