Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
290
Добавлен:
30.03.2015
Размер:
9.07 Mб
Скачать

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

Главным инструментом в контроле над шиной и передачей в 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 устройства выглядит так:

Соседние файлы в папке Для Скрипко