Вызывает ли последовательное соединение FireWire 800 и 400 на всех устройствах 400 скоростей?

8

Недавно я приобрел Drobo, и, просматривая некоторую онлайн-документацию, я наткнулся на эту статью поддержки, в которой говорится:

Если устройство FireWire 400 также подключено, оно снизит общую производительность, чтобы соответствовать FireWire 400 (FW400) вместо скоростей FireWire 800.

Я понимаю, что если бы я подключил устройство FireWire 800 к устройству 400, а затем это устройство 400 к моему компьютеру, то, очевидно, я бы видел только 400 скоростей от устройства 800, но эта статья в базе знаний, кажется, подразумевает, что подключение устройства 400 к другой порт FW на моем Drobo и подключение моего Drobo через 800 к моему Mac, заставит Drobo обмениваться данными на 400 скоростях.

Это правда? Является ли это ограничением протокола FireWire, практическим ограничением, общим для многих реализаций FireWire, или ограничением, характерным для самого Drobo?

Кайл Кронин
источник
Канонический ответ на это был бы хорошо; Я нашел много постов на различных веб-сайтах, посвященных техническим дискуссиям, в которых утверждается, что обе стороны аргументированы, и что они подтверждаются личным тестированием.
Даниил
Это должно быть легко проверить с передачей данных большого файла (скажем, всей папки VIDEO_TS) с A / B-тестированием, когда к A подключено устройство FW400, но оно находится в режиме ожидания. Я никогда не видел, чтобы подключение устройства FW400 приводило к значительным замедлениям, поэтому это может быть конкретная реализация типа drobo или просто CYA в случае, если кабель 400 расположен между хостом и drobo.
bmike

Ответы:

4

Это зависит прежде всего от того, как устройства подключены.

Скажем, у нас есть три устройства:

A(400) <--> B(800) <--> C(800)

Firewire обрабатывается в чипах. Чипсеты FireWire с 800 скоростями будут передавать 400 скоростей по шине 800 с 400 скоростями при передаче данных по цепочке. Поэтому все , что Cпосылы будет видно Bи Aв 400 скорости, и она будет существовать как 400 скорости на 800 автобусе между Aи B. Это не увеличивает общую пропускную способность 400, но для передачи по шине 800 требуется вдвое больше, чем если бы она Bбыла отправлена ​​изначально.

Когда Bотправляет на Aнего будет на 800 скоростях.

Проблема в том, что если Aон особенно коммуникативный, то он снизит общую пропускную способность шины 800 между Bи C. Если Aпередача осуществляется на полной скорости, шина 800 превращается в шину 400. Если Aпередает 25% времени, то его данные 100 Мбит / с потребляют 200 Мбит / с времени на шине 800.

Когда Cданные отправляются A, они будут работать на 400 скоростях и использовать в два раза большую полосу пропускания на шине 800, чем при передаче собственных 800.

Это называется многоскоростной конкатенацией.

Когда Bуведомления Cотправляют данные о скорости 400, он просто передает эти данные по шине 800 с 400 скоростями. Когда этот пакет готов, он может немедленно отправить следующий пакет на 800. Переход происходит мгновенно, поэтому дополнительная пропускная способность не теряется, но, опять же, если Aмного говорят, это может значительно уменьшить общую пропускную способность на шине 800.

B(800) <--> A(400) <--> C(800)

Эта конфигурация уменьшит общую пропускную способность всей шины до 400, независимо от набора микросхем, используемых в каждом устройстве.

Адам Дэвис
источник
Это то, что я подозревал - протокол не указывает ни один из способов, поэтому он становится деталью реализации. Полезно знать, но все же досадно, что скорость устройств в цепочке зависит от положения этих устройств в цепочке.
Кайл Кронин
Я хотел бы указать на спецификацию, но это спецификация IEEE, для доступа к которой требуется $$$.
Адам Дэвис
@AdamDavis, у тебя есть источники по этому поводу? Я спрашиваю, потому что я прочитал вашу позицию на ряде веб-сайтов, но я также читал довольно много людей, утверждающих, что их личное тестирование показывает, что FW400 где-нибудь в цепочке замедляет всю цепочку до скорости FW400.
Даниэль
1
Просто поместите все медленные кабели и устройства в конце цепи. Поскольку большинство чипсетов, по-видимому, соблюдают ограничение на 63 устройства, потери накладных расходов незначительны, и я только видел, как это влияет на вещи с незначительными (от 5 до 10%) замедлениями, в худшем случае, когда ваша цепочка вырастет до 17 устройств или около того.
bmike
1
Это фантастический ответ. Большое спасибо за работу, которую вы вложили в это!
Кайл Кронин
5

FireWire - это протокол точка-точка, и контроллеры, как правило, полностью работоспособны и могут использовать полную емкость между двумя смежными микросхемами контроллера по кабелю FireWire. Поэтому на практике просто не прокладывайте скоростной кабель FireWire 400 между устройствами, поддерживающими FireWire 800, и компьютером. Поместите свой первый кабель FireWire 400 и устройство в конец цепочки устройств с поддержкой FireWire 800.


В основном кабель FireWire 400 имеет шесть проводников - два для питания и четыре для передачи данных. Кабель FireWire 800 имеет восемь (или двойных) проводников данных и те же две линии электропередач.

Подумайте об аналогии с системой межгосударственных шоссе. Здесь у вас есть компьютер, подключенный через пожарный провод 800 к Drobo и пожарный провод 400 к чему-то еще. Это то же самое, что три выезда на шоссе с четырьмя полосами движения между серединой и последним выездом и восемь полос движения между первым и средним съездом. Предполагая, что нет никаких задержек при входе и выходе из шоссе (что верно для FireWire, но не в действительности), не должно иметь значения, что трафик между первыми двумя выходами будет замедлен только потому, что позже шоссе сливается до четырех полос. ,

Конечно, когда у вас есть одновременный трафик, некоторые идут до конца цепочки на скорости 400, что влияет на пропускную способность, доступную для трафика между двумя 800 скоростными портами.

Именно по этой причине протокол FireWire быстр , в то время как цепочка USB всегда замедляется для всей «шины». С инженерной точки зрения проще и дешевле просто замедлить весь транспорт, чтобы избежать необходимости иметь дело с топологией сети и различными скоростями соединения из-за условий прокладки кабелей в цепи.

bmike
источник
На самом деле, шина USB ВСЕГДА высокоскоростная между высокоскоростным концентратором и высокоскоростным хостом и выполняет преобразование для изменения скорости. Firewire нет.
Адам Дэвис
Пожалуйста, измените мой ответ на техническую правильность на передней панели USB по мере необходимости - я всегда видел более медленные скорости, когда медленная мышь была подключена к клавиатуре (тот же концентратор, что и диск), например, по USB. У меня большой практический опыт, но нет глубокого понимания протоколов и деталей реализации. Я знаю достаточно, чтобы быть опасным с предположениями, основанными на измерениях больших объемов передачи данных.
bmike
Эх, так как вопрос не о firewire vs usb, я не склонен исправлять это за пределами моего комментария.
Адам Дэвис