Jak fizycznie jest możliwe 10G Ethernet? [Zamknięte]

22

10 Gigabit Ethernet oznacza, że ​​co sekundę przesyłanych jest 10 miliardów bitów, ale nie rozumiem, jak jest to fizycznie możliwe (nie mówiąc już o 100G Ethernet). Najszybsze procesory dzisiaj działają tylko przy ~ 8GHz, ale nawet jeśli transmisja nie wymaga procesora, nadal wydaje się to problematyczne.

Przy 10G każdy bit trwa tylko 100 pikosekund i w tym czasie wydaje mi się, że opóźnienia bram stają się problemem. Nie jest to tak proste, jak ustawienie linii wysokiej lub niskiej dla każdego bitu, z pewnością setki tranzystorów są potrzebne do uzyskania skomplikowanego przebiegu Ethernet.

Wydaje się, że jest to jeszcze większy problem na końcu odbiorczym, ponieważ kształt fali musi być próbkowany z bardzo dużą szybkością, a jeśli korzysta z przetworników ADC, powoduje to jeszcze większe opóźnienie.

HaLailah HaZeh
źródło
6
Chyba najlepszym rozwiązaniem byłoby przejrzenie dokumentów technicznych?
Eugene Sh.
6
Zobacz, jak kodowane są dane, wskazówka: użycie „magicznie” PAM16 sprawia, że ​​potrzebujesz znacznie mniej przejść.
PlasmaHH
10
8GHz * 64bit = 512Gbps. Tak naprawdę 10 Gb / s nie jest tak szybkie jak procesor.
Tom Carpenter
5
Większość twoich założeń dotyczących tego, jak to działa, jest całkiem błędna - jeśli zadziałałoby tak, jak sobie wyobrażasz, prawdopodobnie nie byłoby to możliwe. Ale tak nie jest i tak jest.
Chris Stratton
8
@ChrisStratton Nie zgadzam się, że jest to nie na temat. Mamy mnóstwo „Jak działa X?” pytania w archiwach, a to jest dość wąskie.
Adam Haun

Odpowiedzi:

25

Ściganie tej odpowiedzi wymagało kilku różnych linków, ale wydaje się, że sprowadza się do tego:
1. 4 pary różnicowe (łącznie 8 przewodów, ale tylko 4 linie).
2. 800 Mega symboli na sekundę.
3. Używając PAM16, stosuje się 16 symboli, co przekłada się na 4 bity na bod na linię.

Biorąc pod uwagę te informacje, masz 4 bity * 800 MHz * 4 linie, co daje 12800 Mb / s lub 12,8 Gb / s. Z powodu kodowania korekcji błędów i innych kosztów ogólnych oczekują tylko 10 Gb / s.

Zauważ, że same przewody zmieniają tylko symbole lub amplitudę na częstotliwości 800 MHz. To dość meh, jeśli chodzi o szybkość przełączania tranzystorów.


To wszystko dla Ethernet 10 Gb. Sposób, w jaki robią to dla sieci Ethernet 100 Gb, jest nieco bardziej zadziwiający. Do tego wydaje się, że oni faktycznie podkręcić częstotliwość 10,3 GHz lub 25GHz . CO ZA CHOLERA? Zobacz tutajdla tego stołu. Różnica częstotliwości wynika z liczby wybranych linii danych pary miedzi. Ciekawe, czy ktokolwiek rzeczywiście stworzył ten miedziany ethernet 25 GHz w miedzi. Możliwe, że tylko to sprecyzowali. Kiedy zaczniesz docierać do tych częstotliwości, twoje kable albo muszą być naprawdę krótkie, albo po prostu przełączasz się na światłowód, w którym możesz wysłać setki wiązek światła przez pojedyncze włókno. W ten sposób nie musisz jechać z szaloną prędkością, po prostu zrównoleglasz swoje dane u źródła i wyśrodkowujesz je w miejscu docelowym.

Odnośniki, jeśli chcesz przyjrzeć się temu więcej: https://en.wikipedia.org/wiki/10_Gigabit_Ethernet#Copper
https://en.wikipedia.org/wiki/Pulse-amplitude_modulation
http://www.cablinginstall.com/ artykuły / print / volume-15 / issue-7 / features / technology / twisted-pair-options-for-10-gigabit-ethernet.html
https://en.wikipedia.org/wiki/Differential_signaling

horta
źródło
1
@HaLailahHaZeh Nawet jeśli nie znaleźli sposobu na zakodowanie tej skutecznej częstotliwości. 12,8 GHz nie jest niespotykane w kanałach komunikacyjnych między procesorami w systemie.
horta
2
@HaLailahHaZeh BTW, powyższy komentarz jest sprzeczny z tym połączonym dokumentem: częstotliwość modulacji wynosi 800 Mb / s, dlatego częstotliwość Nyquista wynosi 400 MHz . Nie mnożysz częstotliwości przez liczbę poziomów napięcia. Oznacza to, że wystarczy okablowanie zdolne do przenoszenia częstotliwości do ~ 500 MHz.
uint128_t
1
@HaLailahHaZeh 16 oddzielnych napięć to 4 bity, a nie 16 bitów.
user253751
2
Cholera. Przed wysłaniem sprawdziłem wszystkie typy -CX4 i -KX4. Nie zdawałem sobie sprawy, że jest 10GBase-T.
Photon
1
@HaLailahHaZeh: PAM-16 używa 16 osobnych napięć, ale tylko jedno napięcie jest przesyłane podczas każdego czasu symbolu. Przy 10GBASE-T 800 MSymbols / s oznacza, że ​​napięcie każdego drutu zmienia się co 1,25 nanosekundy. Dzięki za oficjalny dokument; to jest pomocne.
davidcary
14

10G ethernet (jak opisano w innych odpowiedziach) nie wykonuje przejść sygnału przy 10 GHz, wykorzystuje kodowanie wielopoziomowe rozproszone na 4 pary, aby osiągnąć 10 Gb / s.

Jednak ponad 10-gigabitowe transceivery szeregowe są dość powszechne w szybkich układach scalonych. Na przykład protokoły PCIe, USB3.1, piorun i podobne używają szybkości szeregowej 10 Gbit / s dla poszczególnych par.

Masz rację, że logika „zbiorcza” nie nadąża za tą szybkością przesyłania danych. Z pewnością rdzenie procesora nie działają z tą częstotliwością, ale nawet logika, która implementuje takie rzeczy, jak interfejsy PCIe, nie może działać z tą prędkością. Zamiast tego używają dedykowanych szybkich SERDES.

Dane są przesyłane za pomocą układu scalonego w szerokich równoległych magistralach. Dedykowany element sprzętowy dokonuje konwersji szeregowej na równoległą lub równoległej do szeregowej bezpośrednio w pobliżu wejścia / wyjścia. SERDES robi absolutne minimum rzeczywistej logiki. Nadajniki są bardzo proste. Będzie miał PLL do generowania szybkiego zegara danych szeregowych i logiki równoległej do szeregowej. Odbiorniki są bardziej skomplikowane, muszą odzyskać zegar na przychodzących danych, a także wykrywanie ramek, aby upewnić się, że bity są odpowiednio zgrupowane. Podsumowując, tylko odrobina logiki musi działać z bardzo dużą prędkością. Tak, opóźnienia propagacji przez przejścia są niezwykle ważne, a obwód musi być starannie zaprojektowany, aby wszystkie sygnały były odpowiednio ustawione.

Evan
źródło
A Thunderbolt działa tylko z prędkością 20-40 Gbit / s na cienkich miedzianych drutach, ponieważ kable są aktywne w celu wzmocnienia słabych sygnałów i jako takie są dość drogie.
chx
2

Wiele łączy Ethernet 10 GBit / s jest w rzeczywistości optycznych (np. 10GBASE-SR lub 10GBASE-LR, patrz https://en.wikipedia.org/wiki/10_Gigabit_Ethernet ), chociaż istnieje również 10GBASE-T na skrętce z 8P8C ( Złącza „RJ45”) zgodnie z opisem @horta. O ile mi wiadomo, jest to dość energochłonne w porównaniu do wariantów optycznych.

Przesyłanie danych z procesora (a raczej pamięci) na kartę Ethernet odbywa się zwykle przez magistralę PCIe w komputerze z procesorem x86. Ścieżki PCIe Gen 1 mają użyteczną szybkość przesyłania danych 2 Gbit / s sekundę (po kodowaniu 8/10 bitów). Przy 8 liniach teoretyczne maksimum wynosi 16 GBit / s (na kierunek), co wystarcza do obsługi pojedynczego portu Ethernet 10 GBit / s.

CPU odkłada dane, które mają być przesłane do pamięci RAM, a następnie instruuje kartę sieciową, gdzie ma odebrać (DMA) i podobnie do odbioru, CPU przydziela bufory i informuje kartę sieciową o tym, kiedy wtedy zwykle generuje przerwanie, gdy bufor (s) ) były nadziane. Należy zauważyć, że przepustowość do pamięci RAM jest zwykle znacznie większa niż w przypadku magistrali PCIe.

Dzisiaj mamy powszechnie dostępną PCIe Gen 3, która ma użyteczną szybkość przesyłania danych około 8 GBit / s na linię i kierunek. 16-torowe gniazdo teoretycznie może obsługiwać 128 GBit / s, co wystarcza na 100 GBit / s Ethernet (PCIe Gen 4 został oficjalnie ogłoszony niedawno).

Tak więc „sztuczką” w celu uzyskania wysokiej przepustowości wewnątrz komputera (bez konieczności przechodzenia do nadmiernych prędkości sygnalizacyjnych) jest użycie magistrali równoległych (RAM) lub wielu linii szeregowych (PCIe).

Dla Ethernetu 100 Gbit / s jeden zwykle ma cztery łącza o prędkości sygnalizacji 25 GBaud (100 GBASE-SR4, 100GBASE-LR4, 100GBASE-CR4), istnieją również standardy dla kabli z dziesięcioma łączami (np. Parami światłowodów) 10 Gbit / s (100GBASE-CR10, 100GBASE-SR10, 100GBASE-CR10). W przypadku łączy o większych odległościach istnieją również standardy wykorzystujące tylko jedno włókno, albo przy użyciu czterech długości fali (100GBASE-CWDM4), albo przy użyciu dwóch trybów polaryzacji i QPSK (100GBASE-ZR).

W przypadku bardzo wysokich prędkości łącza w przypadku połączeń dalekiego zasięgu (takich jak kabel transatlantycki Marea z 20 terabitami / s na parę włókien) jeden pakuje tyle nadajników o różnych długościach fal, jak to możliwe, w użyteczne pasmo długości włókien i wzmacniaczy, znane również jako gęstość Multipleksowanie z podziałem długości fali (DWDM). Należy zauważyć, że taki multiplekser / demultiplekser jest typowo urządzeniem wyłącznie optycznym w jego rdzeniu i jest zasilany przez wiele strumieni o niższej przepustowości, które mogą być przetwarzane elektronicznie równolegle.

Aby osiągnąć 20 TBit / s, zastosowano także zaawansowane techniki modulacji, w których w każdym cyklu zegarowym można przesyłać wiele amplitud i faz (widziałem 64QAM w białej księdze ), a zatem przesyłam wiele bitów na cykl zegarowy, podobnie jak w przypadku standardu 10GBASE-T opisane przez @horta.

Andre Holzner
źródło