Dlaczego wszędzie stosowana jest cyfrowa transmisja szeregowa? tj. SATA, PCIe, USB

47

Patrząc na SATA, PCIe, USB, SD UHS-II, uderzyło mnie, że wszystkie są takie same: cyfrowy szeregowy strumień bitów, przesyłany za pomocą par różnicowych (zwykle kodowanych 8b / 10b), z pewnymi różnicami w warstwach łącza / protokołu.
Dlaczego tak? Dlaczego stało się to standardem?
Dlaczego nie ma szeroko rozpowszechnionych protokołów komunikacji systemowej, które mocno wykorzystują niektóre zaawansowane metody modulacji w celu uzyskania lepszej szybkości transmisji symboli? Czy coś brakuje? To nie jest kwestia „szeregowej kontra równoległej”, ale kwestia „cyfrowej sygnalizacji vs modulowanego analogu”

artemonster
źródło
7
Jakie są alternatywy?
PlasmaHH
27
Cóż, kiedyś były równoległe, ale potrzebujesz dużo miedzi i bardzo szerokich kabli.
Jeroen3,
7
I tak oczywiście działa dziś DDR.
MSalters
10
I szeregowy wyprzedził równolegle kable drukarki i tak dalej, gdy elektronika stała się tak tania, że ​​konwerter szeregowo-równoległy był tańszy niż drut.
Hot Licks
4
Dlaczego nie zaproponujesz „niektórych zaawansowanych metod modulacji”, abyśmy mogli zrozumieć, co masz na myśli i porównać z „szeregowymi strumieniami bitów”?
Ale..chenski

Odpowiedzi:

30

Dlaczego nie ma szeroko rozpowszechnionych protokołów komunikacji systemowej, które mocno wykorzystują niektóre zaawansowane metody modulacji w celu uzyskania lepszej szybkości transmisji symboli?

Jeśli podstawowe połączenie miedziane między dwoma punktami obsługuje cyfrową przepływność przekraczającą szybkość przesyłania danych potrzebną do przesłania przez „aplikację”, to po co zawracać sobie głowę czymkolwiek innym niż standardową różnicową szybką sygnalizacją?

Zastosowanie zaawansowanego schematu modulacji jest zwykle wykonywane, gdy „kanał” ma przepustowość znacznie bardziej ograniczoną niż miedź lub światłowód.

Andy aka
źródło
dzięki! chociaż były naprawdę dobre odpowiedzi, tego szukałem!
artemonster
3
Proste pytanie wymaga prostej odpowiedzi, ale nie można powstrzymać ludzi chcących objąć więcej gruntów niż to, czego wymagało pierwotne pytanie.
Andy aka
1
i to dobrze :) Wiele się nauczyłem z innych odpowiedzi, ponieważ były one dość pouczające.
artemonster
68

Istnieją dwa główne powody powstania serialu

1) Jest to możliwe. Niskokosztowe tranzystory są w stanie zarządzać przełączaniem GHz już od dekady, wystarczająco długo, aby można było z niego korzystać i stać się standardem.

2) Jest to konieczne. Jeśli chcesz przenieść dane o bardzo dużej prędkości na więcej niż kilka cali. Ta odległość zaczyna wykluczać połączenia mobo z kartami PCI i zdecydowanie wyklucza mobo na dysk twardy lub mobo / settopbox do wyświetlania połączeń.

Powodem tego jest przekrzywienie. Jeśli przesyłasz kilka równoległych sygnałów wzdłuż kabla, muszą one dotrzeć w niewielkiej części tego samego okresu zegarowego. To powoduje obniżenie częstotliwości taktowania, więc szerokość kabla musi wzrosnąć. Wraz ze wzrostem prędkości przesyłu danych staje się to coraz trudniejsze. Perspektywa zwiększenia stawki w przyszłości jest nieistniejąca, ATA o podwójnej lub poczwórnej szerokości czy ktoś?

Sposobem na zabicie skośnego demona jest przejście do szeregu. Jedna linia jest zawsze zsynchronizowana ze sobą, nie ma nic, co można by było przekrzywić. Linia przenosi dane, które są sam taktowane. Oznacza to, że stosuje schemat kodowania danych (często 8b / 10b, czasem znacznie wyższy), który zapewnia minimalną gwarantowaną gęstość przejścia, która umożliwia ekstrakcję zegara.

Perspektywa zwiększenia szybkości przesyłania danych lub odległości w przyszłości jest doskonała. Każda generacja przynosi szybsze tranzystory i więcej doświadczenia w tworzeniu mediium. Widzieliśmy, jak to się grało z SATA, która zaczęła się od 1,5 Gb / s, a następnie przeszła przez 3 i teraz ma 6 Gb / s. Nawet tanie kable mogą zapewnić wystarczająco spójną impedancję i rozsądną stratę, a korektory wbudowane są w krzem interfejsu, aby poradzić sobie z utratą zależną od częstotliwości. Światłowód jest dostępny dla bardzo długich serii.

W przypadku wyższych szybkości transmisji danych kilka łączy szeregowych może być obsługiwanych równolegle. To nie jest to samo, co układanie przewodów równolegle, które muszą być dopasowane w czasie do mniej niż cyklu zegarowego. Te linie szeregowe muszą być tylko dopasowane do ramki danych wysokiego poziomu, która może mieć długość µs lub nawet ms.

Oczywiście przewaga w szerokości danych dotyczy nie tylko kabli i złączy. Szeregowy ma również zalety w obszarze płytki drukowanej między złączami a układem, pinoucie chipa i obszarze krzemowym chipa.

Mam do tego osobisty punkt widzenia. Jako projektant pracujący nad oprogramowaniem zdefiniowanym w radiu (SDR) od lat 90., szydziłem z ludźmi takimi jak Analog Devices i Xilinx (i wszystkimi innymi firmami ADC i FPGA) (odwiedzali nas od czasu do czasu i pytali) o zmuszając mnie do uruchomienia tak wielu równoległych połączeń różnicowych między ADC o częstotliwości 100 MHz i FPGA, kiedy dopiero zaczynaliśmy widzieć, jak SATA wypiera ATA. W końcu dostaliśmy JESD204x, więc teraz możemy podłączyć konwertery i układy FPGA za pomocą tylko kilku linii szeregowych.

Neil_UK
źródło
7
PCI express 3 i 4 używają kodowania 128b / 130b.
Peter Smith,
11
Jaka jest tutaj Nb/(N+2)bnomenklatura?
detly
17
@detly 8b / 10b , 64b / 66b to obie formy kodowania Line-Code . W kontekście komunikacji szeregowej konieczne jest kodowanie linii, aby zapewnić odzyskanie zegara] ( en.wikipedia.org/wiki/Clock_recovery ).
Trevor Boyd Smith
4
@tolos - współczynnik prędkości dla większości smaków zwykłych materiałów PCB wynosi około 50% (6 cali / ns).
Peter Smith,
4
@supercat to dokładnie tak, jak obsługiwane jest wiele pasów, każdy pas ma swoje niezależne taktowanie. Dane są kadrowane i rozmieszczone na wszystkich pasach. Gdy odbiornik ma wszystkie ramki, działa na dane. Pozwala to na pochylenie związane z długością ramki danych, którą może być my, a nawet ms, jak powiedziałem w mojej odpowiedzi. Jest to znaczenie liczby linii w PCIe i sposobu, w jaki 2xHDMI są obsługiwane do wyświetlania o wysokiej wydajności.
Neil_UK
24

Jeśli chcesz zobaczyć przykład czegoś, co jest szeroko stosowane, ale inne, spójrz na Gigabit Ethernet 1000BASE-T. Wykorzystuje kable równoległe i nieskrywalne kodowanie sygnału.

Najczęściej ludzie używają magistrali szeregowych, ponieważ są proste. Równoległe magistrale wykorzystują więcej kabli i cierpią na zniekształcenie sygnału przy dużych prędkościach transmisji danych przez długie kable.

Simon B.
źródło
9
GbE zostało stworzone przez rzucanie pieniędzy na problem przepychania większej ilości danych przez ogromne ilości istniejącego okablowania Cat 5. Prawdopodobnie nie wyglądałoby to tak, jak gdyby zaprojektowano nowy interfejs bez obaw o kompatybilność wsteczną. Zobacz, jak 10GbE nie robi poważnych inwazji w komercyjnych / domowych warunkach, ponieważ wymaga zainstalowania nowego okablowania Cat 6a.
Barleyman
10GbE może nadal działać na cat5e lub cat5 w zależności od długości kabla i / lub jakości.
user3549596,
12

Aby dodać do innych drobnych odpowiedzi:

Problemy odnotowane w innych odpowiedziach (zwłaszcza przesunięcie między równoległymi sygnałami i koszty dodatkowych przewodów w kablu) rosną wraz ze wzrostem odległości sygnałów. Tak więc istnieje odległość, w której szereg staje się lepszy od równoległej, i odległość ta maleje wraz ze wzrostem szybkości przesyłania danych.

Nadal odbywa się równoległy transfer danych: wewnątrz układów scalonych, a także większości sygnałów w obwodach drukowanych. Jednak odległości potrzebne zewnętrznym urządzeniom peryferyjnym - a nawet napędom wewnętrznym - są teraz zbyt duże i zbyt duże, aby interfejsy równoległe pozostały praktyczne. Zatem sygnały, na które będzie teraz narażony użytkownik końcowy, są w dużej mierze szeregowe.

DrSheldon
źródło
4
Prawdopodobnie najlepszym przykładem szybkiej równoległej sygnalizacji jest pamięć RAM, szczególnie w komputerach PC.
Jan Dorniak
Doskonała odpowiedź, wskazuje bezpośrednio na główny problem synchronizacji czasu w domenach przestrzennych. Należy zauważyć, że nadal można mieć więcej niż 2 symbole na łączu szeregowym, dzięki czemu uzyskuje się pewne korzyści z komunikacji równoległej za pomocą modulacji do kodowania większej liczby bitów na baud
ważne
@JanDorniak, warto zauważyć, że pamięć DDR * ma bity stroboskopowe wykorzystywane do synchronizacji. Umożliwia to podział szerokiej magistrali na wiele mniejszych. Łatwiej jest trasować wiele 8-bitowych magistral równoległych niż trasować jedną 32-bitową magistralę.
Caleb Reister
@CalebReister nie wiedział o tym. Nadal jest równoległy. Osobiście miałem sytuację, w której nowoczesny komputer działałby lub nie, w zależności od tego, które gniazdo DDR4 zostało włożone. Skończyło się na tym, że UEFI wymusiło mniejsze opóźnienie niż pamięć była w stanie.
Jan Dorniak,
11

Zaawansowane techniki modulacji wymagałyby nadawania i odbierania sygnałów analogowych. Przetworniki ADC i DAC pracujące z częstotliwością setek MHz są zwykle drogie i zużywają sporo energii. Przetwarzanie sygnału wymagane do dekodowania jest również kosztowne pod względem krzemu i mocy.

Po prostu taniej jest stworzyć lepszy środek komunikacji, który może obsługiwać sygnały binarne.

Dmitrij Grigoriew
źródło
1
Słuszna uwaga. спасибо за ответ :)
artemonster
8

Dlaczego szeregowy strumień bitów stał się tak popularny?

Korzystanie z łączy szeregowych ma tę zaletę, że zmniejsza fizyczny rozmiar połączenia. Nowoczesne architektury układów scalonych mają na sobie tak wiele styków, że stworzyło to silną potrzebę zminimalizowania fizycznych wymagań dotyczących ich wzajemnego połączenia. Doprowadziło to do opracowania obwodów działających przy ekstremalnych prędkościach na interfejsach tych obwodów przy użyciu protokołów szeregowych. Z tego samego powodu naturalne jest zminimalizowanie fizycznych wymagań dotyczących połączeń w innym miejscu w dowolnym innym łączu danych.

Pierwotne zapotrzebowanie na tego rodzaju technologię może mieć swoje źródło także w projektach transmisji danych światłowodowych.

Gdy technologia obsługująca łącza o dużej prędkości stała się bardzo popularna, było naturalne zastosowanie jej w wielu innych miejscach, ponieważ fizyczny rozmiar połączeń szeregowych jest znacznie mniejszy niż połączenia równoległe.

Dlaczego nie ma szeroko rozpowszechnionych protokołów komunikacji systemowej, które mocno wykorzystują niektóre zaawansowane metody modulacji w celu uzyskania lepszej szybkości transmisji symboli?

Na poziomie kodowania schematy kodowania komunikacji cyfrowej mogą być tak proste, jak NRZ (Non-Return to Zero) , nieco bardziej skomplikowany kod linii (np. 8B / 10B) lub znacznie bardziej skomplikowany, jak QAM (kwadraturowa modulacja amplitudy) .

Złożoność zwiększa koszty, ale wybory zależą także od czynników, które ostatecznie opierają się na teorii informacji i limitach przepustowości łącza. Prawo Shannona, z twierdzenia Shannona-Hartleya, opisuje maksymalną pojemność kanału (pomyśl o tym jako o „połączeniu” lub „łączu”):

Maksymalna pojemność w bitach / sekundę = przepustowość * Log2 (1 + sygnał / szum)

W przypadku łączy radiowych (coś w rodzaju LTE lub WiFi) przepustowość będzie ograniczona, często na podstawie przepisów prawnych. W takich przypadkach można zastosować QAM i podobnie złożone protokoły, aby uzyskać najwyższą możliwą szybkość transmisji danych. W takich przypadkach stosunek sygnału do szumu jest często dość niski (od 10 do 100 lub w decybelach od 10 do 20 dB). Może wzrosnąć tak wysoko, zanim zostanie osiągnięta górna granica przy danej szerokości pasma i stosunku sygnału do szumu.

W przypadku łącza przewodowego przepustowość nie jest regulowana przez nic oprócz praktycznej implementacji. Łącza drutowe mogą mieć bardzo wysoki stosunek sygnału do szumu, większy niż 1000 (30 dB). Jak wspomniano w innych odpowiedziach, szerokość pasma jest ograniczona przez konstrukcję tranzystorów napędzających drut i odbierających sygnał oraz w konstrukcji samego drutu (linii transmisyjnej).

Kiedy przepustowość staje się czynnikiem ograniczającym, ale stosunek sygnału do szumu nie jest, projektant znajduje inne sposoby na zwiększenie szybkości przesyłania danych. Staje się decyzją ekonomiczną, czy przejść do bardziej złożonego schematu kodowania, czy przejść do bardziej drutu:

Rzeczywiście zobaczysz protokoły szeregowe / równoległe używane, gdy pojedynczy drut jest nadal zbyt wolny. PCI-Express robi to, aby przezwyciężyć ograniczenia przepustowości sprzętu za pomocą wielu linii.

W transmisjach światłowodowych nie muszą dodawać więcej włókien (chociaż mogą użyć innych, jeśli są już na miejscu i nie są używane). Może korzystać z multipleksowania z podziałem fal . Zasadniczo odbywa się to w celu zapewnienia wielu niezależnych równoległych kanałów, a kwestia pochylenia wspomniana w innych odpowiedziach nie dotyczy kanałów niezależnych.

Jim
źródło
1
Niezła odpowiedź. To mnie ciekawi, czy ktoś mógłby (lub już ma?) Zrobić coś takiego jak implementacja 256-QAM przy prędkościach USB3 dla naprawdę niesamowitych prędkości transferu ...
mbrig 30.08.18
FWIW, świat światłowodów zaczyna opracowywać i wdrażać bardziej złożone schematy modulacji. PAM-4 będzie dostępny w sieciach Ethernet 100 i 400 G, a systemy telekomunikacyjne (chyba, ale to nie moja dziedzina) zaczynają używać spójnej modulacji QAM.
Photon
ale tak naprawdę, jeśli SNR linii przewodowej jest tak dobry, dlaczego nie wycisnąć każdej możliwej przepustowości? Po co naciskać na częstotliwości GHZ (ze wszystkimi istotnymi problemami), gdzie można iść znacznie wolniej i zastosować modulację / kodowanie. Czy nie byłoby to wygodniejsze?
artemonster
Możesz to zrobić. Staje się decyzją ekonomiczną.
Jim
1
QAM wymaga nośnika, więc nie ma sensu robić niczego innego niż PAM dla „pasma podstawowego” cyfrowego. Jest on stosowany w dziedzinie optycznej, wykorzystując światło jako nośnik. W przypadku miedzi w zasadzie wystarczy zbudować nadajnik-odbiornik radiowy. Wymagałoby to znacznie większej prędkości obwodów analogowych, a także całej złożoności i zwiększonego zużycia energii. Serializatory i deserializatory są stosunkowo proste w porównaniu. IMHO, bardziej prawdopodobne jest, że zobaczymy zintegrowane krzemowe modulatory fotoniczne i detektory niż przejście do QAM na miedzi.
alex.forencich,
1

Weź cztery półciężarówki z ładunkiem. Cztery pasy z każdej strony autostrady. Aby ciężarówki z powodzeniem przewoziły ładunek równolegle, muszą być idealnie ustawione obok siebie, nie można wyprzedzać ani wyprzedzać innych o więcej niż jeden cal. Wzgórza, zakręty, nie ma znaczenia. Zmieniaj zbyt wiele, a to totalna porażka.

Ale niech poprowadzą jeden pas, a odległość między nimi może się różnić. Chociaż prawdą jest, że liniowo zajmuje on czterokrotnie większą odległość od przodu pierwszej ciężarówki do tyłu ostatniej, aby przenieść ładunki, ale nie muszą być idealnie rozmieszczone. Prawie na długość jednej ciężarówki musi mieć kabinę i ładunek oraz długość ładunku, aby być odpowiednio ustawione i rozmieszczone.

Idą nawet tak daleko, że są równoległe, pcie, sieciowe itp., Ale chociaż są to technicznie liczne osobne ścieżki danych, nie są one równoległe, ponieważ muszą opuścić i przybyć w tym samym czasie, używając analogii ciężarówki czterech ciężarówek mogą jeździć na czterech pasach z grubsza równolegle, ale mogą się różnić, ciężarówki są oznaczone tym, na którym to pasie się znaleźli, dzięki czemu po dotarciu na drugi koniec ładunki można połączyć z powrotem w oryginalny zestaw danych. I / lub każdy pas może być jednym zestawem danych szeregowo, a mając więcej pasów, możesz przenosić więcej zestawów danych jednocześnie.

old_timer
źródło
Pasy nie muszą być idealnie „wyrównane”. Współczesne interfejsy wielopasmowe wykorzystują bardziej wyrafinowane metody wyrównywania symboli niż bycie idealnie obok siebie.
Ale..chenski
1
Właśnie tak powiedziałem.
old_timer
1

Jako dodatek do komentarza Dmitrija Grigoryeva .

Transmisja analogowa jest zawsze bardziej podatna na błędy niż transmisja cyfrowa. Na przykład cyfrowa transmisja szeregowa ma taktowane boki, w których sygnał analogowy w jakiś sposób płynie między 0 V a VDD. Dlatego zakłócenia są znacznie trudniejsze do wykrycia. Można to wziąć pod uwagę i zastosować sygnalizację różnicową, jak to zrobiono w Audio.

Ale potem natrafisz na tę szybkość vs. dokładność handlu przetworników D / A / ADC. Jeśli musisz rozmawiać ze sobą w systemach cyfrowych, sensowniejsze jest zastosowanie transmisji cyfrowej, ponieważ nie potrzebujesz czasu na tłumaczenie DA-AD.

Jednak jeśli masz komputer analogowy działający na analogowych napięciach sterujących, nadal jest kilka takich, które wyglądają jak analogowe syntezatory modułowe, zasadniczo są różne i zwykle możesz budować komputery analogowe tylko do określonych zadań. Zabawna prezentacja w języku niemieckim na temat informatyki analogowej.

Mówiąc o analogowych syntezatorach modułowych, są także pewnego rodzaju komputerami analogowymi, specjalnie zaprojektowanymi do wykonywania obliczeń na zmieniających się sygnałach.

Zatem w obliczeniach występuje transmisja analogowa, ale ograniczona do bardzo specyficznych dziedzin.

Tillo Reilly
źródło