¿Cómo es físicamente posible 10G Ethernet? [cerrado]

22

Ethernet de 10 gigabits significa que se transmiten 10 mil millones de bits por segundo, pero no entiendo cómo esto es físicamente posible (y mucho menos Ethernet de 100G). Las CPU más rápidas de la actualidad solo funcionan a ~ 8 GHz, pero incluso si la transmisión no requiere una CPU, todavía parece problemático.

Con 10G, cada bit dura solo 100 picosegundos, y en ese lapso de tiempo, creo que los retrasos en las puertas se convierten en un problema. No es tan simple como establecer una línea alta o baja para cada bit, seguramente se requieren cientos de transistores para generar la complicada forma de onda de Ethernet.

Esto parece un problema aún mayor en el extremo receptor, ya que la forma de onda debe muestrearse a una velocidad muy alta, y si esto usa ADC, eso introduce aún más demora.

HaLailah HaZeh
fuente
66
Supongo que la mejor opción sería ir a revisar los documentos técnicos.
Eugene Sh.
66
Eche un vistazo a cómo se codifican los datos, pista: el uso de PAM16 "mágicamente" hace que necesite muchas menos transiciones.
PlasmaHH
10
8GHz * 64bit = 512Gbps. Entonces, realmente 10 Gbps no es tan rápido como la CPU.
Tom Carpenter
55
La mayoría de sus suposiciones sobre cómo funciona son bastante erróneas: si funcionó como se imagina, probablemente no sería posible. Pero no lo hace, y lo es.
Chris Stratton
8
@ChrisStratton No estoy de acuerdo con que esto esté fuera de tema. Tenemos un montón de "¿Cómo funciona X?" preguntas en los archivos, y esta es razonablemente estrecha.
Adam Haun

Respuestas:

25

La búsqueda de esta respuesta tomó algunos enlaces diferentes, pero parece reducirse a esto:
1. 4 pares diferenciales (8 cables en total, pero solo 4 carriles).
2. 800 Mega Símbolos por segundo.
3. Usando PAM16, se usan 16 símbolos que se traducen en 4 bits por baudios por línea.

Dada esa información, usted obtiene 4 bits * 800 Mhz * 4 carriles, lo que da como resultado 12800 Mb / so 12.8 Gb / s. Debido a la codificación de la corrección de errores y otros gastos generales, solo esperan que obtenga 10 Gb / s de ella.

Observe que los cables en sí solo están cambiando símbolos o amplitud a una frecuencia de 800 MHz. Eso es bastante bueno, en términos de velocidades de conmutación para transistores.


Ahora eso es todo por 10 Gb Ethernet. Cómo lo hacen para Ethernet de 100 Gb es un poco más alucinante. Para eso, parece que realmente aumentan la frecuencia a 10.3 GHz o 25GHz . ¿Qué diablos? Ver aquípara esa mesa La diferencia en la frecuencia se debe a la cantidad de líneas de datos de pares de cobre que elige tener. Sería interesante saber si alguien ha hecho o no esta red Ethernet de 25 GHz en cobre. Es posible que solo lo hayan especificado. Cuando empiezas a llegar a esas frecuencias, tus cables deben ser realmente cortos o simplemente cambiar a fibra óptica donde puedes enviar cientos de haces de luz por una sola fibra. De esa manera, no tiene que ir a velocidades locas, simplemente paraleliza sus datos en la fuente y los desparaleliza en el destino.

Referencias si quieres verlo más: https://en.wikipedia.org/wiki/10_Gigabit_Ethernet#Copper
https://en.wikipedia.org/wiki/Pulse-amplitude_modulation
http://www.cablinginstall.com/ articles / print / volume-15 / issue-7 / features / technology / twisted-pair-options-for-10-gigabit-ethernet.html
https://en.wikipedia.org/wiki/Differential_signaling

Horta
fuente
1
@HaLailahHaZeh Incluso si no han encontrado una manera de codificar esa frecuencia efectiva. 12,8 GHz no es desconocido en los canales de comunicación entre CPU en un sistema.
horta
2
@HaLailahHaZeh Por cierto, tu comentario anterior va en contra de ese documento que vinculaste: la velocidad de modulación es de 800Mbaudios, por lo tanto, la frecuencia de Nyquist es de 400 MHz . No multiplicas la frecuencia por el número de niveles de voltaje. Esto significa que un cableado capaz de transportar frecuencias de hasta ~ 500 MHz será suficiente.
uint128_t
1
@HaLailahHaZeh 16 voltajes separados son 4 bits, no 16 bits.
user253751
2
Maldición Verifiqué todos los tipos -CX4 y -KX4 antes de publicar. No me di cuenta de que había un 10GBase-T.
The Photon
1
@HaLailahHaZeh: PAM-16 usa 16 voltajes separados, pero solo se transmite un voltaje durante cada tiempo de símbolo. Con 10GBASE-T, los 800 MSymbols / sec significan que el voltaje de cada cable cambia cada 1.25 nanosegundos. Gracias por el documento técnico; es útil.
davidcary
14

Ethernet 10G (como se describe en otras respuestas) no realiza transiciones de señal a 10 GHz, utiliza codificación de nivel múltiple distribuida en 4 pares para lograr 10 Gb / s.

Sin embargo, los transceptores seriales de más de 10 gigabits son bastante comunes en los chips de alta velocidad. Por ejemplo, PCIe, USB3.1, thunderbolt y protocolos similares utilizan una velocidad de serie de 10 gbit / s en pares individuales.

Tiene razón en que la lógica "masiva" no puede mantenerse al día con esa velocidad de datos. Ciertamente, los núcleos de CPU no funcionan a esa frecuencia, pero incluso la lógica que implementa cosas como las interfaces PCIe no puede funcionar a esa velocidad. En su lugar, utilizan SERDES de alta velocidad dedicadas.

Los datos se enrutan con el IC en buses paralelos anchos. Una pieza de hardware dedicada realiza la conversión de serie a paralelo o de paralelo a serie justo cerca de la entrada / salida. El SERDES hace un mínimo absoluto de lógica real. Los transmisores son muy simples. Tendrá un PLL para generar el reloj de datos en serie de alta velocidad y el paralelo a la lógica en serie. Los receptores son más complicados, necesitan recuperar el reloj de los datos entrantes y también detectar el encuadre para asegurarse de que los bits estén agrupados correctamente. Con todo, solo una pequeña parte de la lógica tiene que operar a la velocidad ultra alta. Sí, los retrasos de propagación a través de las transiciones son extremadamente importantes, y el circuito debe diseñarse cuidadosamente para que todas las señales se alineen correctamente.

Evan
fuente
Y Thunderbolt solo funciona 20-40 gbit / s en alambres de cobre delgados porque los cables están activos para amplificar las señales débiles y, como tal, bastante caros.
chx
2

Muchos enlaces Ethernet de 10 GBit / s son realmente ópticos (por ejemplo, 10GBASE-SR o 10GBASE-LR, consulte https://en.wikipedia.org/wiki/10_Gigabit_Ethernet ) aunque también hay 10GBASE-T sobre cables de par trenzado con 8P8C ( 'RJ45') según lo descrito por @horta. Por lo que sé, es bastante hambriento de energía en comparación con las variantes ópticas.

La transferencia de datos desde la CPU (o más bien la memoria) a la tarjeta Ethernet ocurre generalmente a través del bus PCIe en una computadora basada en x86. Los carriles PCIe Gen 1 tienen una velocidad de transferencia de datos utilizable de 2 Gbit / s por segundo (después de la codificación de 8/10 bits). Con 8 carriles, el máximo teórico es de 16 GBit / s (por dirección), suficiente para manejar un solo puerto de 10 GBit / s Ethernet.

La CPU deposita los datos que se transmitirán en la RAM y luego le indica a la tarjeta de red dónde recoger (DMA) y, de manera similar, para la recepción, la CPU asigna búferes e informa a la tarjeta de red cuando normalmente genera una interrupción cuando el búfer (s) ) fueron llenados. Tenga en cuenta que el ancho de banda a la RAM suele ser mucho mayor que el del bus PCIe.

Hoy tenemos PCIe Gen 3 ampliamente disponible que tiene una velocidad de datos utilizable de aproximadamente 8 GBit / s por carril y dirección. Una ranura de 16 carriles teóricamente puede manejar 128 GBit / s, suficiente para 100 GBit / s Ethernet (PCIe Gen 4 se ha anunciado oficialmente recientemente).

Entonces, el 'truco' para lograr un alto rendimiento dentro de la PC (sin tener que ir a velocidades de señalización exorbitantes) es usar buses paralelos (RAM) o múltiples carriles seriales (PCIe).

Para Ethernet de 100 Gbit / s, uno normalmente tiene cuatro enlaces con una velocidad de señalización de 25 GBaud (100GBASE-SR4, 100GBASE-LR4, 100GBASE-CR4), también hay estándares para cables con diez enlaces (por ejemplo, pares de fibra) de 10 Gbit / s (100GBASE-CR10, 100GBASE-SR10, 100GBASE-CR10). Para enlaces de mayor distancia, también hay estándares que usan una sola fibra, ya sea usando cuatro longitudes de onda (100GBASE-CWDM4) o usando dos modos de polarización y QPSK (100GBASE-ZR).

Para velocidades de enlace extremadamente altas en enlaces de larga distancia (como el cable transatlántico Marea con 20 Terabit / s por par de fibras), se empacan tantos transmisores en diferentes longitudes de onda como sea posible en la banda de longitud de onda utilizable de las fibras y amplificadores, también conocido como Denso Multiplexación por división de longitud de onda (DWDM). Tenga en cuenta que dicho multiplexor / demultiplexor es típicamente un dispositivo óptico únicamente en su núcleo y se alimenta de múltiples flujos de ancho de banda inferior que pueden procesarse electrónicamente en paralelo.

Para lograr 20 TBit / s, uno también ha utilizado técnicas de modulación avanzadas donde en cada ciclo de reloj se pueden transmitir múltiples amplitudes y fases (he visto 64QAM en un documento técnico ), por lo tanto, transmitiendo múltiples bits por ciclo de reloj, similar al estándar 10GBASE-T descrito por @horta.

Andre Holzner
fuente