Чому послідовна передача даних швидша, ніж паралельна?


133

Інтуїтивно ви думаєте, що паралельна передача даних повинна бути швидшою, ніж послідовна передача даних; паралельно ви переносите багато бітів одночасно, тоді як в серіалі ви робите по одному біту за один раз.

Отже, що робить інтерфейси SATA швидшими за PATA, пристрої PCI-e швидше, ніж PCI, а послідовні порти швидші, ніж паралельні?


Можливо, це так, але якщо так, то як я бачу всі ці intel.com/content/www/us/en/chipsets/performance-chipsets/… там написано кілька смуг для PCIe, і я подивився ПІІ на wikipedia, і він сказав " 2 незалежних 4-бітових фіксованих частотних ліній / каналів / труб "та DMI-розмовляння 4-х посилань. (додано - відповідь Скотта може частково покрити це)
барлоп

2
Це все зводиться до тактової частоти.
Даніель Р Хікс

36
У існуючих трьох відповідях не згадується економіка, тобто вартість . Зробити дуже швидкий послідовний інтерфейс просто дешевше, ніж дуже швидкий паралельний інтерфейс. Для ліній електропередач послідовний кабель, який використовує лише кілька проводів, дешевший, ніж паралельний кабель, який буде важко і дорого екранувати.
тирса

13
Ще за часів з'єднань DB25 та DB9 вам пощастило просунути 115 кбіт / с через послідовне використання, а паралельно отримали 12 Мбіт / с з вісьмома паралельними штифтами даних.
CVn

Відповіді:


145

Ви не можете сформулювати це так.

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

Причина, по якій сучасні пристрої використовують послідовну передачу, полягає в наступному:

  • Ви не можете збільшити частоту сигналу для паралельної передачі без обмежень, так як , за визначенням, всі сигнали від передавача повинні надходять на приймач в той же час . Це не може бути гарантовано для високих частот, оскільки ви не можете гарантувати, що час транзиту сигналу є рівним для всіх сигнальних ліній (придумайте різні шляхи на материнській платі). Чим вище частота, тим менше крихітних відмінностей має значення. Отже, приймач повинен чекати, поки всі сигнальні лінії не будуть влаштовані - очевидно, очікування знижує швидкість передачі.

  • Ще один хороший момент (з цієї публікації ) полягає в тому, що потрібно розглянути перехресні розмови з паралельними сигнальними лініями. Чим більша частота, тим виразніше стає перехресне слово, а з ним вища ймовірність зіпсованого слова та необхідність його повторної передачі. 1

Отже, навіть якщо ви передаєте менше даних за цикл з послідовною передачею, ви можете перейти на набагато більші частоти, що призводить до більш високої чистої швидкості передачі.


1 Це також пояснює, чому UDMA-кабелі (паралельні ATA зі збільшеною швидкістю передачі) мали вдвічі більше проводів, ніж штирі. Кожен другий провід був заземлений, щоб зменшити перехресну розмову.


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

Ваша розробка суперечить вашій заяві. Ви починаєте констатувати, що серійний процес проходить повільніше і пояснюєте, чому це швидше. Я думаю, що це джерело плутанини і цікаво, як можна відповісти.
Val

11
@Val Ви не читаєте всієї відповіді. Автобус рухається більше людей , ніж в машині , коли вони йдуть з тією ж швидкістю - але через способом фізичних робіт, ці автомобілі можуть йти шлях швидше , ніж на автобусі, так що швидше для переміщення людей за допомогою машин , ніж автобуси. Те ж саме стосується каналів передачі даних: з однаковою швидкістю паралельні кабелі переміщують більше даних, ніж послідовний кабель; проте ми можемо натиснути послідовний кабель для роботи набагато швидше, ніж ми можемо паралельний кабель. Якщо ми спробуємо пришвидшити паралельний кабель, фізика спричиняє, що дані стають сміттям.
Darth Android

1
Насправді я бачу догори ногами. Це пасажирський (громадський) транспорт, який має більшу віддачу, оскільки ви не перевозите автомобіль з усіма, хоча люди вважають за краще рухатись індивідуально, паралельними автомобілями і, отже, розвивають розгалужену інфраструктуру передмістя, а не перебирати людей у ​​компактні, 3d міста. Я бачу сплеск серійних бітів як потяг. Грубо, надсилання пакета коштує дорого, але не важливо, скільки даних ви надсилаєте за пакет. Тому в 1000 разів дешевше відправляти поїзд у 1000 біт, а не 1000 паралельних вагонів.
Вал

1
@Val Так працює транспорт, але це не так, як працює фізика електромагнетизму, і це не відповідає аналогії. Тут ніхто не говорить про ефективність, просто швидкість і пропускну здатність. Навіть незважаючи на те, що паралельна ланка може переміщувати більше даних за тактовий цикл, послідовна ланка може переміщувати менше даних за тактовий цикл, але має стільки більше тактових циклів за той самий часовий проміжок, що вона все ж має більшу пропускну здатність.
Darth Android

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" Wireless Ethernet ". Хоча це, безумовно, летить перед будь-якими технологічними аргументами (він навіть не використовує той же формат кадру, як IEEE 802.3), я можу жити з ним під час розмови людям, для яких різниця в технологіях неважлива ". <- його слова. Я прочитав кілька років тому, що він крісла та редагував 802.3x та керував Ethernet II (мабуть, DIX Ethernet, очевидно, 10 Мбіт / с Ethernet), - і читав, що він "активний учасник гігабітної Ethernet цільової групи IEEE 802.3z". Отже, досить повноваження сказати, що 802.11 - це не Ethernet.
барлоп

1
1000BASE-T Ethernet (802.3ab, "гігабітний Ethernet") паралельно використовує 4 дротяні пари.
MSalters

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

19

Паралель за своєю суттю не повільніша, але вона створює проблеми, які не мають серійні комунікації.

Але багато з найшвидших посилань все ще паралельні: шина переднього боку на вашому комп'ютері, як правило, високопаралельна і зазвичай є однією з найшвидших зв’язків на комп'ютері. Волоконно-оптичні з'єднання також можуть бути високопаралельними, несучи кілька довжин хвиль над одним волокном. Це дорого і, отже, не типово. Найпоширенішою формою Gigabit Ethernet є фактично 4 паралельних каналу 250Mbit Ethernet в одному проводі.

Найбільш яскраво виражене завдання, яке вводиться паралелізмом, - це "перехресне переслідування": коли сигнальний струм починається або припиняється, він на мить індукує невеликий струм на дротах поруч. Чим швидше сигнал, тим частіше це відбувається, і тим складніше відфільтрувати. Паралельна IDE намагалася мінімізувати цю проблему, подвоївши кількість проводів у стрічковому кабелі та підключивши кожен інший провід до заземлення. Але це рішення тільки отримує вас поки що. Довгі кабелі, складки та петлі, а також близькість до інших стрічкових кабелів роблять це ненадійним рішенням для дуже швидких сигналів.

Але якщо ви їдете лише з однією сигнальною лінією, тоді ви можете переключити її так швидко, як це дозволить обладнання. Він також вирішує тонкі проблеми синхронізації, коли деякі сигнали рухаються швидше, ніж інші.

Два дроти завжди теоретично вдвічі швидші, ніж один, але кожна сигнальна лінія, яку ви додаєте, тонко ускладнює фізику, чого, можливо, краще уникати.


FSB не була частиною основних процесорних процесорів з епохи Intel Core 2, AMD залишила його за кілька років раніше за допомогою дизайну AMD64. Натомість обидва перемістили контролер пам'яті на сам процесор і підключили все інше до процесора швидкими / вузькими шинами замість (відносно) широкої / повільної конструкції FSB.
Дан Нілі

Техніки зменшення крос-розмов відомі десятиліттями, але, як зазначається в коментарях до питань, вони вводять додаткові витрати, і деякі з них погіршують проблему синхронізації (кручені пари з різними коефіцієнтами повороту мають незначні зміни в опорі, що означає незначне коливання швидкостей передачі та ...).
dmckee

13

Послідовна передача даних не швидша, ніж паралельна. Це зручніше, і тому розвиток пішов у створення швидкої зовнішньої послідовної взаємодії між обладнаннями. Ніхто не хоче мати справу з стрічковими кабелями, які мають 50 і більше провідників.

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

Але є чимало прикладів у вашому комп’ютері, де паралелізм використовується для масового збільшення пропускної здатності. Наприклад, слова не читаються по черзі з пам'яті. А насправді кеші поповнюються великими блоками. Растрові дисплеї - ще один приклад: паралельний доступ до декількох банків пам'яті, щоб швидше, паралельно отримувати пікселі. Пропускна здатність пам'яті критично залежить від паралелізму.

Цей DAC-пристрій, оголошений Tektronix як "найшвидший у продажу 10-бітовий високошвидкісний ЦАП", використовує паралелізм для введення даних, які надходять у ЦАП за 320 рядків, які скорочуються до 10 через два етапи мультиплексування керуються різними підрозділами головного годинника 12 ГГц. Якби найшвидший у світі 10-бітний ЦАП міг бути зроблений за допомогою однієї послідовної лінії введення, то, ймовірно, це було б.


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

11

Паралель була очевидним способом збільшення швидкості, коли логічні ворота були досить повільними, що можна було використовувати подібні електричні прийоми для автобусів / кабелів та передачі на мікросхемі. Якщо ви вже перемикаєте провід так швидко, як дозволяє транзистор, то єдиний спосіб масштабування - це використання більшої кількості проводів.

З часом закон Мура випереджав електромагнітні обмеження, тому передачі по кабелях, або навіть бортовим автобусам, стали вузьким місцем порівняно зі швидкістю на мікросхемі. ОТОН, нерівномірність швидкості дозволяє витонченій обробці на кінцях, щоб більш ефективно використовувати канал.

  • Як тільки затримка випромінювання наближається до порядку декількох годин, ви починаєте турбуватися про аналогові ефекти, як відбиття => вам потрібні відповідні імпеданси по дорозі (особливо складні для з'єднувачів) і віддаєте перевагу точкових проводів над багатоточковими шинами. Ось чому SCSI потрібно було припинення, і саме тому USB потрібні концентратори замість простих розгалужувачів.

  • На більш високих швидкостях у вас є кілька бітів у польоті в будь-який момент по дроту => вам потрібно використовувати конвеєрні протоколи (саме тому протоколи FSB від Intel стали відверто складними; я думаю, що пакетизовані протоколи на зразок 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.