Dlaczego szeregowa transmisja danych jest szybsza niż równoległa?

133

Intuicyjnie można by pomyśleć, że równoległa transmisja danych powinna być szybsza niż szeregowa transmisja danych; równolegle przesyłasz wiele bitów jednocześnie, podczas gdy szeregowo robisz po jednym bicie.

Co więc sprawia, że ​​interfejsy SATA są szybsze niż PATA, urządzenia PCI-e szybsze niż PCI, a porty szeregowe szybsze niż równoległe?

skromny
źródło
Być może tak jest, ale jeśli tak, Jak to możliwe widzę tych wszystkich intel.com/content/www/us/en/chipsets/performance-chipsets/... mówi wiele pasów ruchu dla PCIe i spojrzałem w górę BIZ na wikipedii i powiedział " 2 niezależne 4-bitowe łącza / kanały / rury o stałej częstotliwości ”i DMI mówi o 4 łączach. (dodano - odpowiedź Scotta może częściowo to pokryć)
barlop
2
Wszystko sprowadza się do częstotliwości zegara.
Daniel R Hicks
36
Istniejące trzy odpowiedzi nie wspominają o ekonomii, tj . Koszcie . Wykonanie bardzo szybkiego interfejsu szeregowego jest po prostu tańsze niż bardzo szybkiego interfejsu równoległego. W przypadku linii przesyłowych kabel szeregowy, który wykorzystuje tylko kilka przewodów, jest tańszy niż kabel równoległy, którego ekranowanie będzie trudne i kosztowne.
trociny
13
W czasach połączeń DB25 i DB9 miałeś szczęście przepchnąć 115 kbit / s przez port szeregowy, a równoległy dostał 12 Mbit / s z ośmioma równoległymi pinami danych.
CVn

Odpowiedzi:

145

Nie możesz sformułować tego w ten sposób.

Transmisja szeregowa jest wolniejsza niż transmisja równoległa przy tej samej częstotliwości sygnału . Przy transmisji równoległej możesz przesłać jedno słowo na cykl (np. 1 bajt = 8 bitów), ale przy transmisji szeregowej tylko jego część (np. 1 bit).

Powód, dla którego nowoczesne urządzenia korzystają z transmisji szeregowej, jest następujący:

  • Nie można zwiększyć częstotliwości sygnału dla transmisji równoległej bez ograniczeń, ponieważ z założenia wszystkie sygnały z nadajnika muszą docierać do odbiornika w tym samym czasie . Nie można tego zagwarantować dla wysokich częstotliwości, ponieważ nie można zagwarantować, że czas przejścia sygnału jest równy dla wszystkich linii sygnałowych (pomyśl o różnych ścieżkach na płycie głównej). Im wyższa częstotliwość, tym mniejsze różnice mają znaczenie. Dlatego odbiornik musi poczekać, aż wszystkie linie sygnałowe zostaną ustalone - oczywiście oczekiwanie obniża szybkość transferu.

  • Kolejną dobrą rzeczą (z tego postu ) jest to, że należy rozważyć przesłuch z równoległymi liniami sygnałowymi. Im wyższa częstotliwość, tym bardziej wyraźny jest przesłuch, a wraz z nim wyższe prawdopodobieństwo uszkodzenia słowa i potrzeba jego ponownej transmisji. 1

Tak więc, nawet jeśli przesyłasz mniej danych na cykl za pomocą transmisji szeregowej, możesz przejść na znacznie wyższe częstotliwości, co skutkuje wyższą szybkością transferu netto.


1 Wyjaśnia to również, dlaczego kable UDMA (równoległy ATA ze zwiększoną prędkością transferu) miały dwa razy więcej przewodów niż pinów. Co drugi drut był uziemiony w celu zmniejszenia przesłuchu.

mpy
źródło
9
Odbiornik nie musi czekać na ustabilizowanie się wszystkich linii w tym samym czasie - szybka transmisja równoległa w dzisiejszych czasach wymaga pomiaru, a następnie kompensacji opóźnienia przybycia na każdym przewodzie osobno . Dotyczy to nawet krótkich linków na pokładzie, takich jak CPU <-> DRAM! Stało się to możliwe dzięki przyjęciu niektórych technik szeregowych, takich jak wbudowane zegary (np. Kodowanie 8b / 10b) i / lub sekwencji treningowych.
Beni Cherniavsky-Paskin
Twoje opracowanie jest sprzeczne z twoim oświadczeniem. Zaczynasz stwierdzać, że serial jest wolniejszy i wyjaśniasz, dlaczego jest on szybszy. Myślę, że jest to źródłem zamieszania i zastanawiam się, jak można na nie odpowiedzieć.
Val
11
@Val Nie czytasz całej odpowiedzi. Autobus porusza więcej ludzi niż samochód, gdy jadą z tą samą prędkością - ale ze względu na sposób działania fizyki samochody te mogą jechać znacznie szybciej niż autobus, więc szybsze przemieszczanie się ludzi odbywa się przy użyciu samochodów niż autobusów. To samo dotyczy łączy danych: przy tej samej prędkości kable równoległe przenoszą więcej danych niż kabel szeregowy; możemy jednak popchnąć kabel szeregowy, aby działać znacznie, znacznie szybciej niż kabel równoległy. Jeśli spróbujemy przyspieszyć kabel równoległy, fizyka powoduje, że dane stają się śmieciami.
Darth Android
1
W rzeczywistości widzę do góry nogami. Jest to transport pasażerski (publiczny), który ma większą przepustowość, ponieważ nie przewozisz samochodu ze wszystkimi, chociaż ludzie wolą poruszać się indywidualnie, w równoległych samochodach, dlatego rozwijają rozległą infrastrukturę na przedmieściach zamiast pakować ludzi do kompaktowych, trójwymiarowych miast. Widzę serię bitów seryjnych jak pociąg. Z grubsza wysyłanie pakietu jest drogie, ale nie ma znaczenia, ile danych wysyłasz w pakiecie. Dlatego 1000 razy taniej jest wysłać pociąg 1000 bitów niż 1000 równoległych wagonów.
Val
1
@Val Tak działa transport, tak, ale nie tak działa fizyka elektromagnetyzmu i nie pasuje jako analogia. Nikt nie mówi tutaj o wydajności, tylko o szybkości i przepustowości. Chociaż łącze równoległe może przenosić więcej danych na cykl zegara, łącze szeregowe może przenosić mniej danych na cykl zegara, ale ma o wiele więcej cykli zegara w tym samym przedziale czasowym, że nadal ma większą przepustowość.
Darth Android
70

Problemem jest synchronizacja.

Kiedy wysyłasz równolegle, musisz zmierzyć wszystkie linie dokładnie w tym samym momencie, ponieważ im szybciej jedziesz, rozmiar okna w tym momencie staje się coraz mniejszy, w końcu może być tak mały, że niektóre druty mogą się nadal stabilizować podczas gdy inni są skończeni, zanim skończy Ci się czas.

Wysyłając szeregowo, nie musisz się już martwić o stabilizację wszystkich linii, tylko jedną linię. Bardziej opłacalne jest 10-krotnie szybsze stabilizowanie jednej linii niż dodawanie 10 linii przy tej samej prędkości.

Niektóre rzeczy, takie jak PCI Express, działają najlepiej z obu światów, wykonują równoległy zestaw połączeń szeregowych (port 16x na płycie głównej ma 16 połączeń szeregowych). Dzięki temu każda linia nie musi być idealnie zsynchronizowana z innymi liniami, pod warunkiem, że kontroler na drugim końcu może zmienić kolejność „pakietów” danych, gdy przychodzą w prawidłowej kolejności.

Strona How Stuff działa dla PCI-Express bardzo dokładnie wyjaśnia, w jaki sposób PCI Express w trybie szeregowym może być szybszy niż PCI lub PCI-X równolegle.


Wersja TL; DR: Łatwiej jest zrobić jedno połączenie 16 razy szybciej niż 8 połączeń 2 razy szybciej, gdy dojdziesz do bardzo wysokich częstotliwości.

Scott Chamberlain
źródło
1
@barlop Możesz robić równolegle w sieci Ethernet, ale nie jest to zbyt powszechne w zastosowaniach konsumenckich, termin ten nazywa się łączeniem kanałów . - korekta : Stało się powszechne w użyciu przez konsumentów, wykorzystując łączenie częstotliwości bezprzewodowej. w ten sposób 802.11n może uzyskać prędkości do 600 Mbit / s , używają do 4 jednoczesnych strumieni szeregowych.
Scott Chamberlain
1
@barlop Podałem ci niewłaściwy termin, łączenie kanałów to szerszy termin ogólny, szczególnie w przypadku Ethernetu poprawny termin, o który pytasz, nazywa się agregacją łączy .
Scott Chamberlain
2
Rich Seifert napisał „Rzeczywiście, wiele osób nazywa IEEE 802.11„ Wireless Ethernet ”. Chociaż z pewnością jest to sprzeczne z argumentem technologicznym (nawet nie używa tego samego formatu ramki, co IEEE 802.3), mogę z tym żyć, mówiąc dla ludzi, dla których różnica technologii jest nieistotna ”. <- jego słowa. Czytałem kilka lat temu, że przewodniczy i edytuje 802.3x i przewodniczy Ethernet II (to najwyraźniej DIX Ethernet, Ethernet 10 Mb / s) - i czytam, że jest „aktywnym uczestnikiem grupy zadaniowej IEEE 802.3z Gigabit Ethernet”. Więc dość autorytetem, by powiedzieć, że 802.11 nie jest Ethernetem.
barlop
1
1000BASE-T Ethernet (802.3ab, „gigabit Ethernet”) wykorzystuje równolegle 4 pary przewodów.
MSalters
4
Ekonomika Ethernetu różni się od magistrali takich jak SATA - kable są bardzo długie i kosztowne w wymianie, więc na końcu skupiasz się na ulepszaniu elektroniki. Wczesny Ethernet wykorzystywał 1 parę drutów, ale był standaryzowany na 4 parach kabli, przewidując przyszłe użycie (w tamtych czasach równoległe było oczywiste podejście do szybszej transmisji). Okazało się to trudne ze względu na przesłuch, ale ponieważ kable już tam są, szkoda było ich nie używać. W końcu stało się możliwe anulowanie przesłuchu przy bardzo skomplikowanym przetwarzaniu DSP-> D2A-> ... kablowym ... -> A2D-> przetwarzaniu DSP.
Beni Cherniavsky-Paskin
19

Równoległość nie jest z natury wolniejsza, ale wprowadza wyzwania, których nie zapewnia komunikacja szeregowa.

Ale wiele najszybszych łączy jest nadal równoległych: szyna frontowa komputera jest zwykle bardzo równoległa i zwykle należy do najszybszych połączeń wewnętrznych w komputerze. Połączenia światłowodowe mogą być również wysoce równoległe, przenosząc wiele długości fal przez pojedyncze włókno. Jest to jednak drogie i dlatego nietypowe. Najpopularniejszą formą Gigabit Ethernet są w rzeczywistości 4 równoległe kanały 250Mbit Ethernet w jednym przewodzie.

Najbardziej wyraźnym wyzwaniem wprowadzonym przez równoległość jest „przesłuch”: gdy prąd sygnału zaczyna się lub zatrzymuje, chwilowo indukuje mały prąd na przewodach obok niego. Im szybszy sygnał, tym częściej tak się dzieje i tym trudniej jest go odfiltrować. Równoległe IDE próbowało zminimalizować ten problem poprzez podwojenie liczby drutów w kablu taśmowym i podłączenie każdego innego drutu do uziemienia. Ale to rozwiązanie prowadzi cię tylko do tej pory. Długie kable, zagięcia i pętle oraz bliskość innych kabli wstążkowych sprawiają, że jest to niewiarygodne rozwiązanie dla sygnałów o bardzo dużej prędkości.

Ale jeśli wybierzesz tylko jedną linię sygnałową, to możesz ją zmienić tak szybko, jak pozwala na to sprzęt. Rozwiązuje również subtelne problemy z synchronizacją z niektórymi sygnałami podróżującymi szybciej niż inne.

Dwa przewody są zawsze teoretycznie dwa razy szybsze niż jeden, ale każda dodana linia sygnału subtelnie komplikuje fizykę, której lepiej unikać.

tylerl
źródło
FSB nie był częścią głównego nurtu procesorów od czasów Intel Core 2, AMD pozostawił go kilka lat wcześniej z projektowaniem AMD64. Zamiast tego obaj przenieśli kontroler pamięci na sam procesor i połączyli wszystko inne z procesorem szybkimi / wąskimi szynami zamiast (względnie) szerokiej / wolnej konstrukcji FSB.
Dan Neely
Techniki redukcji przenikania są znane od dziesięcioleci, ale jak zauważono w komentarzach do pytań, wprowadzają one dodatkowe koszty, a niektóre z nich pogarszają problem synchronizacji (pary skręcone o różnych stosunkach skrętu mają niewielkie zmiany impedancji, co oznacza niewielkie zmiany prędkości transmisji i ...).
dmckee
13

Szeregowa transmisja danych nie jest szybsza niż równoległa. Jest to wygodniejsze i dlatego opracowano szybkie zewnętrzne połączenie szeregowe między urządzeniami. Nikt nie chce zajmować się kablami wstążkowymi, które mają 50 lub więcej przewodów.

Pomiędzy układami scalonymi na płytce drukowanej łatwiej jest sobie poradzić z szeregowym protokołem, takim jak I2C, który wymaga tylko dwóch przewodów, niż routing wielu równoległych ścieżek.

Ale istnieje wiele przykładów w twoim komputerze, w których równoległość jest używana do znacznego zwiększenia przepustowości. Na przykład słowa nie są odczytywane pojedynczo z pamięci. W rzeczywistości pamięci podręczne są napełniane w dużych blokach. Wyświetlacze rastrowe to kolejny przykład: równoległy dostęp do wielu banków pamięci, aby uzyskać piksele szybciej, równolegle. Pasmo pamięci zależy krytycznie od równoległości.

To urządzenie DAC reklamowane przez Tektronix jako „najszybszy dostępny na rynku 10-bitowy szybki przetwornik cyfrowo-analogowy” korzysta z równoległości w celu wprowadzenia danych, które trafiają do przetwornika DAC przez 320 linii, które są zredukowane do 10 dzięki dwóm etapom multipleksowania napędzany przez różne działy głównego zegara 12 GHZ. Jeśli najszybszy na świecie 10-bitowy przetwornik cyfrowo-analogowy mógłby zostać wykonany przy użyciu pojedynczej linii szeregowej, prawdopodobnie tak by było.

Kaz
źródło
1
+1 za wzmiankę o 50-pinowych kablach taśmowych. Jedną z motywacji do przejścia na kable SAS / SATA było to, że szerokie kable wpływały na przepływ powietrza wewnątrz skrzynki.
jqa
11

Równoległość była oczywistym sposobem na zwiększenie prędkości, gdy bramki logiczne były wystarczająco wolne, aby można było zastosować podobne techniki elektryczne w autobusach / kablach i transmisji na chipie. Jeśli już przełączasz drut tak szybko, jak pozwala na to twój tranzystor, więc jedynym sposobem na skalowanie jest użycie większej liczby drutów.

Z czasem prawo Moore'a wyprzedziło ograniczenia elektromagnetyczne, dlatego transmisje kablami, a nawet autobusami pokładowymi, stały się wąskim gardłem w porównaniu do prędkości na chipie. OTOH, rozbieżność prędkości pozwala na zaawansowane przetwarzanie na końcach w celu bardziej efektywnego wykorzystania kanału.

  • Gdy opóźnienie propagacji zbliża się do rzędu kilku zegarów, zaczynasz martwić się efektami analogowymi, takimi jak odbicia => potrzebujesz po drodze dopasowanych impedancji (szczególnie trudnych dla złączy) i wolisz przewody punkt-punkt niż magistrale wielopunktowe. Dlatego SCSI potrzebowało terminacji i dlatego USB wymaga koncentratorów zamiast prostych rozgałęźników.

  • Przy wyższych prędkościach masz wiele bitów w locie w danym momencie wzdłuż drutu => musisz użyć protokołów potokowych (dlatego właśnie protokoły FSB Intela stały się strasznie skomplikowane; myślę, że pakiety spakowane, takie jak PCIe, były reakcją na tę złożoność).

    Kolejnym efektem jest kara za wiele cykli za zmianę kierunku przepływu sygnału - dlatego Firewire oraz SATA i PCIe za pomocą dedykowanych przewodów w każdym kierunku przewyższają USB 2.0.

  • Hałas indukowany, inaczej przesłuch, wzrasta wraz z częstotliwością. Największy wzrost prędkości nastąpił po przyjęciu sygnalizacji różnicowej, która radykalnie zmniejszyła przesłuch (matematycznie pole niezrównoważonego ładunku spada jako R ^ 2, ale pole dipola spada jako R ^ 3).

    Myślę, że to właśnie spowodowało wrażenie, że „serial jest szybszy niż równoległy” - skok był tak duży, że można było zejść do 1 lub 2 par różnicowych i nadal być szybszy niż kable LPT lub IDE . Wygrano również przesłuch z posiadania tylko jednej pary sygnałów w kablu, ale to niewielkie.

  • Opóźnienie propagacji drutu jest różne (zarówno dlatego, że długości drutu są trudne do dopasowania w zwojach 90º, złączach itp., A także z powodu pasożytniczych efektów innych przewodów), co spowodowało, że synchronizacja była problemem.

    Rozwiązaniem było dostrojenie opóźnień w każdym odbiorniku i dostrojenie ich przy uruchamianiu i / lub w sposób ciągły na podstawie samych danych. Kodowanie danych w celu uniknięcia zera lub zera wiąże się z niewielkim obciążeniem, ale ma zalety elektryczne (pozwala uniknąć dryftu prądu stałego, kontroluje widmo) i, co najważniejsze, pozwala całkowicie upuścić przewody zegarowe (co nie jest niczym więcej niż 40 sygnały, ale to wielka sprawa, że ​​kabel szeregowy ma 1 lub 2 pary zamiast 2 lub 3).

Zauważ, że rzucanie równoległość w wąskim gardłem - Dzisiejsze chipy BGA mieć setki lub tysiące szpilek, PCB mieć więcej i więcej warstw. Porównaj to ze starymi 40-pinowymi mikrokontrolerami i 2-warstwowymi płytkami drukowanymi ...

Większość z wyżej wymienionych technik się niezbędne dla zarówno równoległej i transmisji szeregowej. Tyle, że im dłuższe są druty, tym bardziej atrakcyjne staje się przepychanie wyższych prędkości przez mniejszą liczbę drutów.

Beni Cherniavsky-Paskin
źródło