Сегодня 19 апреля 2024
18+
MWC 2018 2018 Computex IFA 2018
реклама
Материнские платы

IEEE 1394

⇣ Содержание

1394а

Ничего принципиально нового в этой версии стандарта не появилось, но множество небольших улучшений, которые он вобрал в себя, позволяют говорить о следующем шаге в развитии стандарта. Изменения коснулись как физической составляющей, так и логической. Рассмотрим их подробнее:

Connection Hysteresis (debouncing). Как уже было описано выше, каждый раз при подключении или отключении нового устройства происходит сброс шины. Проблема в том, что, при подключении нового устройства, устойчивая электрическая связь образовывается не сразу, что приводило к целому циклу сбросов шины, пока всё не успокоится, и будет установлено устойчивое соединение. Для решения этой проблемы в 1394а появился time-out (время ожидания 1/3 секунды - пока не будет установлено устойчивое соединение или произойдет потеря контакта) на подключение/отключение нового устройства, что гарантирует только один сброс шины при каждом подключении/отключении.

Arbitrated (Short) Bus Reset. В IEEE 1394 устройство, которое передаёт данные, не может обнаружить сигнал на сброс пока не закончит передавать текущий пакет. Поэтому сброс шины должен длиться дольше, чем максимальное время передачи одного пакета. Однако, если сброс шины происходит сразу после того, как одно из устройств выигрывает арбитраж, то в этом нет никакой необходимости (всё равно никто другой не начнёт передачу), и сброс шины можно произвести гораздо быстрее. Это позволило уменьшить время, затрачиваемое на сброс шины, с 300 миллисекунд до 100 в худшем случае, и с 165 до 5 миллисекунд в обычном случае.

Transmission Delay Calculation (PHY Pinging). В первой версии стандарта такой простой команды как ping вообще не было предусмотрено. Любое устройство должно было ответить не больше, чем через 144 наносекунды, в противном случае считалось, что оно недоступно. Именно это ограничение и определило максимальную длину кабеля в IEEE 1394 в 4.5 метра. Введение такой простой команды (одно устройство отсылает пакеты, другое отвечает, а время отклика замеряется) позволяет соседним устройствам точно знать, когда следует ждать ответа. Это дало возможность преодолеть ограничение в обязательные 144 наносекунды и использовать кабели большей длины.

Multi-Speed Packet Concatenation. Одной из причин, почему IEEE 1394 устройства разных производителей, выпущенные в соответствии с первой версией протокола, могли быть не совместимы друг с другом, это чёрная дыра в спецификации, связанная с сериями из нескольких пакетов. Сигнал, определяющий скорость, требовался только для первого пакета, но в серии могли присутствовать пакеты, передаваемые с другой скоростью. Для решения этого бага разные производители шли на ухищрения, что и приводило к несовместимости. В 1394а версии спецификации предусмотрен стандартный механизм решения этой проблемы - сигнал скорости добавляется в каждый пакет, передаваемый на скорости, отличной от предыдущего.

Port Disable (Per Port Software Disconnect). Возможность отключать IEEE 1394 порт программно - отключенный порт перестаёт реагировать на какой-либо трафик, и не мешает остальным устройствам. Это может оказаться весьма удобным, особенно в компьютерном окружении. Кроме того, для работы в компьютерной среде, в 1394а появились функции управления питанием (устройство может быть переведено в спячку и выведено из неё через IEEE 1394 интерфейс).

Повышение эффективности

Как уже писалось, главным инструментом в контроле над шиной и передачей в IEEE 1394 является промежуток в передаче (gap), отделяющий друг от друга каждый пакет. Gap сбрасывает шину, позволяет определить тип передаваемых данных (асинхронные, синхронные), но он же является и источником проблем с эффективностью. Первая версия спецификации обеспечивала великолепную эффективность с пакетами большого размера. Но стоило уменьшать размер пакета или увеличь скорость шины, как количество пакетов на один и тот же объём данных (или на один и тот же промежуток времени) возрастало, а длина gap оставалась прежней. Таким образом, чем больше количество передаваемых пакетов, тем больше времени шина просто простаивает в молчании, и тем меньше времени остаётся на передачу непосредственно данных. С этим надо было что то делать, что и потребовало изменений в протоколе на логическом уровне.

Ack acceleration. Как известно, любой пакет в IEEE 1394 должен отделяться от другого промежутком называемым subaction gap. Одна из причин, почему нужен этот промежуток - это убедиться, что пакет, подтверждающий получение данных не затеряется. Однако, если пакет, подтверждающий получение имеется, то следующий пакет таким же (ack packet) быть не может (подтверждение уже получено, второй раз подтверждать не надо), и надобности в subaction gap нет. В 1394а предусмотрено обнаружение ack packet, и как только такой пакет обнаружен, после него передача не останавливается на subaction gap, а продолжается дальше.

Flt-by arbitration. Так называется возможность "прицепить" на лету какой-либо пакет к уже передающемуся. Это позволяет сэкономить время и канал, ведь для прикреплённого пакета не требуется дополнительный арбитраж. Но, нам же надо не просто прицепить пакет, надо, чтобы он обязательно дошёл до адресата. Для этой цели подходят пакеты, полученные через дочерний порт, которые должны "размножиться" по пути к корневому устройству. Это ограничивает применение fly-by arbitration всего двумя случаями. Во первых, если пакет полученный на дочерний слот - это acknowledge packet, то к нему на лету может быть прикреплён любой асинхронный пакет. Либо, если на дочерний порт получен синхронный пакет, то к нему может быть прикреплён любой другой синхронный пакет.

Arbitration Improvements (Fairness Optimization). Как уже говорилось, fairness interval это отрезок, во время которого одно устройство может выиграть шину только один раз. Даже если всё остальное время шина никому не нужна, оно вынуждено ждать начала следующего цикла, чтобы продолжить передачу. А потом ещё выжидать reset gap, самые длинные промежутки, предусмотренные стандартом. Поэтому, в версии 1394а протокола появилась возможность одному устройству запрашивать (и получать) право на передачу несколько раз (до 63) в течении одного fairness interval.

Что дальше? 1394b

В настоящее время полным ходом идут работы над 1394b версией стандарта, которая должна стать большим шагом вперёд в его развитии. Изменения коснутся всего, в том числе физической составляющей (кабелей и разъёмов).

Главное, что обещают в 1394b, это появление новых скоростей, в 800 и 1600 мегабит в секунду (возможно, и 3200 мбит/сек), и увеличение максимальной длины кабеля до 50, 70 и даже до 100 метров. Изменились разъёмы, которые могут использоваться, и кабели. В 1394b могут применяться даже простые UTP кабели 5 категории, но только на скоростях до 100 мбит/сек. Для достижения максимальных скоростей на максимальных расстояниях предусмотрено использование оптики (fiber optics), пластмассовой - для длины до 50 метров, и стеклянной - для длин до 100 метров. Архитектура 1394b устройства выглядит так:


Разъёмы

Для обеспечения обратной совместимости, в 1394b устройствах возможно использование старых разъёмов, но "чистое" 1394b устройство будет использовать свой, новый разъём, который не похож ни на один из используемых ранее. Означает ли это, что не будет никакой возможности подключить устройство со старым интерфейсом к новому? Не думаю. Подобные опасения уже высказывались с появлением четырёхконтактных фишек для IEEE 1395. Тем не менее, ничего подобного не произошло, появились 4 на 6 IEEE 1394 кабеля, которые полностью решали проблему. Логически и электрически 1394b устройства должны быть обратно совместимыми с своими предшественниками, поэтому никаких проблем в кабеле новый разъём/старый разъём я не вижу. Тем не менее, разъёмы изменились. Фотографий новых разъёмов у меня нет, поэтому придётся ограничится их чертежами, взятыми из драфта спецификации.


Кроме этого, 1394b будет full-duplex стандартом (в отличии от теперешнего 1394), поэтому в нём будет использоваться новый метод арбитража. В отличии от 1394 и 1394а, где главным арбитром во всех спорах из за шины было корневое устройство в дереве, в 1394b такие права может получить то устройство, которому они наиболее нужны. Новый метод арбитража называется BOSS (Bus Owner/Supervisor/Selector). Конечно же, наряду с этим, поддерживаются и методы арбитража из 1394 и 1394а. Рассмотрим новый метод подробнее.

Знакомьтесь, Bus Owner/Supervisor/Selector. Или просто BOSS

Этот метод арбитража может работать только в 1394b среде. То есть, если в сети есть хоть одно старое устройство, для арбитража будет применяться старый метод. Принципиальная схема BOSS метода выглядит так:


Принцип работы прост до безобразия: устройство, которому требуется переслать данные, постоянно шлёт запросы. В результате, когда предыдущий BOSS заканчивает передачу, то ждущее и шлющее запросы устройство оказывается последним, пославшим запрос (все остальные либо уже закончили либо ещё не начали передачу), и получает права BOSS. Что означает, что пока передаёт данные - оно контролирует шину. Как только передача закончена, то устройство остаётся BOSS до тех пор, пока кто-то ещё не пошлёт запрос на передачу. Как только запрос послан - пославшее его устройство немедленно становится BOSS. Эта схема может работать только благодаря full-duplex природе 1394b, ибо, в противном случае, постоянно гуляющие по сети запросы помешали бы передаваемым данным.

Заключение

IEEE 1394 один из наиболее динамично развивающихся стандартов в индустрии. Это просто удобный транспорт, который можно использовать для всего чего угодно. Причём, он относится к одному из тех редких случаев, когда технология, изначально разрабатывавшаяся для компьютеров, вышла за рамки своего прародителя и широко (действительно широко) используется в смежных, не имеющих прямого отношения к компьютерной технике, областях. В этом легко убедиться, достаточно взглянуть на любую цифровую видеокамеру. Конечно, IEEE 1394 не идеален, и не стоит прочить ему роль убийцы всего и вся, от USB до Ethernet. Думаю, это не под силу даже версии 1394b, которая обещает быть гораздо универсальное теперешней. Но свою нишу на рынке IEEE 1394 занял прочно, и не похоже, что хоть что-то из существующего сегодня способно его с этой ниши выбить. Сумеет ли 1394b занять новую нишу и будут ли оправданы все те изменения, которые в него вводят (например, другие разъёмы)? Поживём - увидим.

 
← Предыдущая страница
⇣ Содержание
Если Вы заметили ошибку — выделите ее мышью и нажмите CTRL+ENTER.
Вечерний 3DNews
Каждый будний вечер мы рассылаем сводку новостей без белиберды и рекламы. Две минуты на чтение — и вы в курсе главных событий.

window-new
Soft
Hard
Тренды 🔥