Почему последовательная передача данных быстрее параллельной?


133

Интуитивно понятно, что параллельная передача данных должна быть быстрее, чем последовательная передача данных; параллельно вы передаете много битов одновременно, тогда как в последовательном вы делаете один бит за раз.

Так что же делает интерфейсы SATA быстрее PATA, устройства PCI-e быстрее PCI и последовательные порты быстрее параллельных?


Возможно, это так, но если это так, то как же я вижу все эти intel.com/content/www/us/en/chipsets/performance-chipsets/… там написано несколько полос для PCIe, и я посмотрел FDI в википедии и сказал: " 2 независимых 4-битных канала / канала / канала с фиксированной частотой "и DMI говорят о 4 каналах. (добавлено - ответ Скотта может частично это охватить)
скачка

2
Все сводится к тактовой частоте.
Даниэль Р Хикс

36
В существующих трех ответах не упоминается экономика, то есть стоимость . Просто создать очень быстрый последовательный интерфейс дешевле, чем очень быстрый параллельный интерфейс. Для линий передачи последовательный кабель, который использует только несколько проводов, дешевле, чем параллельный кабель, который будет трудно и дорого экранировать.
опилки

13
Еще во времена соединений DB25 и DB9 вам посчастливилось протолкнуть 115 кбит / с через последовательный порт, в то время как параллельные получили 12 Мбит / с с восемью параллельными выводами данных.
CVn

Ответы:


145

Вы не можете сформулировать это так.

Последовательная передача медленнее, чем параллельная передача при той же частоте сигнала . При параллельной передаче вы можете передавать одно слово за цикл (например, 1 байт = 8 бит), но при последовательной передаче только его часть (например, 1 бит).

Причина, по которой современные устройства используют последовательную передачу, заключается в следующем:

  • Вы не можете увеличивать частоту сигнала для параллельной передачи без ограничений, потому что по конструкции все сигналы от передатчика должны поступать в приемник одновременно . Это не может быть гарантировано для высоких частот, так как вы не можете гарантировать, что время прохождения сигнала одинаково для всех сигнальных линий (представьте разные пути на материнской плате). Чем выше частота, тем более крошечные различия имеют значение. Следовательно, приемник должен ждать, пока все сигнальные линии не установятся - очевидно, ожидание снижает скорость передачи.

  • Еще один хороший момент (из этого поста ) заключается в том, что необходимо учитывать перекрестные помехи с параллельными сигнальными линиями. Чем выше частота, тем более выраженными будут перекрестные помехи, а вместе с тем и выше вероятность искажения слова и необходимости его повторной передачи. 1

Таким образом, даже если вы передаете меньше данных за цикл с последовательной передачей, вы можете перейти на гораздо более высокие частоты, что приводит к более высокой чистой скорости передачи.


1 Это также объясняет, почему кабели UDMA (Parallel ATA с увеличенной скоростью передачи) имели в два раза больше проводов, чем контактов. Каждый второй провод был заземлен для уменьшения перекрестных помех.


9
Приемнику не нужно ждать одновременного установления всех линий - быстрая параллельная передача в настоящее время включает измерение и последующую компенсацию задержки прихода по каждому проводу в отдельности . Это справедливо даже для коротких встроенных ссылок, таких как CPU <-> DRAM! Это стало возможным благодаря использованию некоторых последовательных методов, таких как встроенные часы (например, кодирование 8b / 10b) и / или обучающие последовательности.
Бени Чернявский-Паскин

Ваша разработка противоречит вашему утверждению. Вы начинаете утверждать, что сериал медленнее и объясняете, почему он быстрее. Я думаю, что это источник путаницы, и я удивляюсь, как это может быть ответом.
Val

11
@ Val Вы не читаете весь ответ. Автобус перемещает больше людей, чем автомобиль, когда они движутся с одинаковой скоростью - но из-за особенностей физики эти автомобили могут двигаться намного быстрее, чем автобус, поэтому быстрее передвигать людей на автомобилях, чем на автобусах. То же самое касается каналов передачи данных: с той же скоростью параллельные кабели передают больше данных, чем последовательный кабель; тем не менее, мы можем протолкнуть последовательный кабель, чтобы он работал намного быстрее, чем параллельный кабель. Если мы попытаемся ускорить параллельный кабель, физика заставит данные стать мусором.
Дарт Андроид

1
На самом деле я вижу с ног на голову. Это пассажирский (общественный) транспорт, который имеет более высокую пропускную способность, потому что вы не перевозите автомобиль всем, хотя люди предпочитают перемещаться по отдельности, параллельно, и поэтому развивают обширную инфраструктуру пригородов вместо того, чтобы собирать людей в компактные трехмерные города. Я вижу взрыв серийных битов как поезд. Грубо говоря, отправка пакета стоит дорого, но не имеет значения, сколько данных вы отправляете за пакет. Поэтому в 1000 раз дешевле отправить поезд из 1000 бит, а не из 1000 параллельных вагонов.
Val

1
@Val Вот как работает транспорт, да, но это не так, как работает физика электромагнетизма, и не подходит в качестве аналогии. Здесь никто не говорит об эффективности, только скорость и пропускная способность. Несмотря на то, что параллельное соединение может перемещать больше данных за такт, последовательное соединение может перемещать меньше данных за такт, но имеет столько же тактов за один и тот же период времени, что все равно имеет более высокую пропускную способность.
Дарт Андроид

70

Проблема в синхронизации.

Когда вы отправляете параллельно, вы должны измерить все линии в один и тот же момент, так как вы идете быстрее, размер окна в этот момент становится все меньше и меньше, в конечном итоге он может стать настолько маленьким, что некоторые из проводов все еще могут стабилизироваться. в то время как другие закончили, прежде чем у вас закончилось время.

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

Некоторые вещи, такие как PCI Express, делают лучшее из обоих миров, они выполняют параллельный набор последовательных соединений (16-кратный порт на материнской плате имеет 16 последовательных соединений). При этом каждая строка не обязательно должна быть идеально синхронизирована с другими строками, если только контроллер на другом конце может переупорядочивать «пакеты» данных, когда они поступают в правильном порядке.

Страница How Stuff Works для PCI-Express очень хорошо объясняет, как PCI Express в последовательном соединении может работать быстрее, чем PCI или PCI-X в параллельном режиме.


Версия TL; DR: проще установить одно соединение в 16 раз быстрее, чем 8 соединений в 2 раза быстрее, если вы достигнете очень высоких частот.


1
@barlop Вы можете проводить параллельные соединения в Ethernet, но это не очень распространено в потребительском использовании, термин для этого называется Channel Bonding . --коррекция : это стало обычным явлением для потребителей, использующих соединение беспроводной частоты. Так 802.11n может получать скорость до 600 Мбит / с , они используют до 4 последовательных последовательных потоков.
Скотт Чемберлен

1
@ barlop Я дал вам неправильный термин, объединение каналов - более общий термин, особенно для Ethernet, правильный термин для того, о чем вы спрашиваете, называется объединением каналов .
Скотт Чемберлен

2
Рич Сейферт написал: «Действительно, многие люди называют IEEE 802.11« Беспроводной Ethernet ». Хотя это, безусловно, противоречит любому технологическому аргументу (он даже не использует тот же формат кадра, что и IEEE 802.3), я могу с этим смириться, говоря». для людей, для которых технологические различия не важны ". <- его слова. Несколько лет назад я читал, что он возглавляет и редактирует 802.3x и председательствовал на Ethernet II (это, по-видимому, DIX Ethernet, 10 Мбит / с Ethernet) - и я прочитал, что он «активный участник IEEE 802.3z Gigabit Ethernet Task Force». Таким образом, вполне можно сказать, что 802.11 - это не Ethernet.
Бароп

1
Ethernet 1000BASE-T (802.3ab, «гигабитный Ethernet») использует 4 параллельные проводные пары.
MSalters

4
Экономика Ethernet отличается от шин типа SATA - кабели очень длинные и дорогие в замене, поэтому в конце вы сосредоточитесь на обновлении электроники. В раннем Ethernet использовалась 1 пара проводов, но стандартизировались на 4 пары кабелей, что предвосхитило будущее использование (в то время параллельный подход был очевидным подходом к более быстрой передаче). Это оказалось трудным из-за перекрестных помех, но поскольку кабели уже есть, было стыдно их не использовать. В конце концов стало возможным сделать подавление перекрестных помех с очень сложной обработкой DSP-> D2A-> ... cable ... -> A2D-> DSP.
Бени Чернявский-Паскин

19

Параллель не медленна по своей сути, но она создает проблемы, которых нет в последовательной связи.

Но многие из самых быстрых ссылок все еще параллельны: лицевая шина в вашем компьютере, как правило, является высокопараллельной и обычно является одной из самых быстрых взаимосвязей в компьютере. Волоконно-оптические соединения также могут быть высокопараллельными, передавая несколько длин волн по одному волокну. Это дорого и потому не типично. Наиболее распространенная форма Gigabit Ethernet - это 4 параллельных канала 250 Мбит Ethernet в одном проводе.

Наиболее выраженная проблема, связанная с параллелизмом, - это «перекрестные помехи»: когда ток сигнала начинается или прекращается, он на мгновение вызывает небольшой ток на проводах рядом с ним. Чем быстрее сигнал, тем чаще это происходит, и тем сложнее его отфильтровать. Параллельная IDE попыталась минимизировать эту проблему, удвоив количество проводов в ленточном кабеле и подключив каждый второй провод к земле. Но это решение только поможет вам. Длинные кабели, сгибы и петли, а также близость к другим ленточным кабелям делают это ненадежным решением для очень высокоскоростных сигналов.

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

Два провода всегда теоретически в два раза быстрее, чем один, но каждая добавляемая вами сигнальная линия слегка усложняет физику, чего может быть лучше избежать.


С эпохи Intel Core 2 FSB не входила в состав массовых процессоров, AMD несколько лет назад опередила ее с дизайном AMD64. Вместо этого оба переместили контроллер памяти на сам ЦП и подключили все остальное к ЦП с помощью быстрой / узкой шины вместо (относительно) широкой / медленной конструкции FSB.
Дэн Нили,

Методы уменьшения перекрестных помех известны на протяжении десятилетий, но, как отмечено в комментариях к вопросам, они приводят к дополнительным затратам, и некоторые из них усугубляют проблему синхронизации (витые пары с различными коэффициентами скручивания имеют небольшие изменения импеданса, что означает незначительные вариации скоростей передачи и ...).
dmckee

13

Последовательная передача данных не быстрее, чем параллельная. Это более удобно, и поэтому разработка направлена ​​на создание быстрого внешнего последовательного интерфейса между блоками оборудования. Никто не хочет иметь дело с ленточными кабелями, которые имеют 50 или более проводников.

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

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

Это устройство ЦАП, рекламируемое Tektronix, как «самый быстрый в мире коммерческий 10-разрядный высокоскоростной ЦАП», активно использует параллелизм для ввода данных, которые поступают в ЦАП более чем по 320 линиям, которые сокращаются до 10 благодаря двум этапам мультиплексирования. ведомые разными подразделениями мастера 12 ГГц, часы. Если бы самый быстрый в мире 10-битный ЦАП мог быть сделан с использованием одной последовательной входной линии, то, вероятно, так и было бы.


1
+1 за упоминание 50-контактных ленточных кабелей. Одним из мотивов перехода на кабели SAS / SATA было то, что широкие кабели влияли на воздушный поток внутри коробки.
JQA

11

Параллельно был очевидный способ увеличить скорость, когда логические элементы были достаточно медленными, чтобы можно было использовать аналогичные электрические методы для шин / кабелей и передачи на кристалле. Если вы уже переключаете провод так быстро, как позволяет ваш транзистор, то единственный способ масштабирования - использовать больше проводов.

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

  • Как только задержка распространения приближается к порядку нескольких часов, вы начинаете беспокоиться об аналоговых эффектах, таких как отражения =>, вам необходимо согласованное сопротивление по пути (особенно сложно для соединителей) и вы предпочитаете двухточечные провода многоточечным шинам. Вот почему SCSI требовался терминатор, и именно поэтому USB нужны концентраторы вместо простых сплиттеров.

  • На более высоких скоростях у вас есть несколько битов в полете в любой момент времени по проводной линии => вам нужно использовать конвейерные протоколы (именно поэтому протоколы Intel FSB стали ужасно сложными; я думаю, что пакетные протоколы, такие как PCIe, были реакцией на эту сложность).

    Другим эффектом является многоцикловый штраф за переключение направления потока сигнала, поэтому Firewire, SATA и PCIe с использованием выделенных проводов в каждом направлении превзошли USB 2.0.

  • Индуцированный шум, или перекрестные помехи, увеличивается с частотой. Самый большой прогресс в скорости произошел из-за принятия дифференциальной сигнализации, которая значительно уменьшила перекрестные помехи (математически поле несбалансированного заряда уменьшается как R ^ 2, а поле диполя уменьшается как R ^ 3).

    Я думаю, что именно это вызвало впечатление «последовательный быстрее, чем параллельный» - скачок был настолько велик, что вы могли спуститься до 1 или 2 дифференциальных пар и при этом быть быстрее, чем кабели LPT или IDE . Был также выигрыш от перекрестных помех из-за наличия только одной пары сигналов в кабеле, но это незначительно.

  • Задержка распространения провода варьируется (как из-за того, что длины проводов трудно согласовать при поворотах на 90º, разъемах и т. Д., Так и из-за паразитных эффектов от других проводников), что делает синхронизацию проблемой.

    Решение состояло в том, чтобы иметь настраиваемые задержки на каждом приемнике и настраивать их при запуске и / или постоянно из самих данных. Кодирование данных, чтобы избежать полос 0 или 1, приводит к небольшим накладным расходам, но имеет электрические преимущества (избегает дрейфа постоянного тока, контролирует спектр) и, что наиболее важно, позволяет полностью отключить провод (ы) синхросигнала (что не так уж сложно для 40 сигналы, но очень важно, чтобы последовательный кабель имел 1 или 2 пары вместо 2 или 3).

Обратите внимание , что мы являемся метание параллелизма в узком месте - современный BGA чипы имеют сотни или тысячи булавок, печатные платы имеют все больше и больше слоев. Сравните это со старыми 40-контактными микроконтроллерами и двухслойными печатными платами ...

Большинство из вышеперечисленных методов стали незаменимыми как для параллельной, так и для последовательной передачи. Просто чем длиннее провода, тем привлекательнее становится увеличение скорости через меньшее количество проводов.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.