¿Por qué las interfaces y los buses se vuelven más rápidos con cada versión si son físicamente iguales?

Un bus de expansión de interfaz o computadora se vuelve más rápido con cada versión, por ejemplo. PCI express 1.0 es de 4 GB/sm, PCI express 2.0 es de 8 GB/s, PCI express 3.0 es de 16 GB/s. Entiendo que cosas como los microprocesadores se vuelven más rápidos porque los más nuevos se fabrican de mejor manera, pero estos buses son todos físicamente iguales (al menos se parecen y son compatibles). Entonces, ¿cómo es que cada versión es 2 veces más rápida si es físicamente igual a la anterior? ¿Por qué no podría ser 16GB/s en primer lugar?

Porque la señalización.
a) Porque no son lo mismo, y solo son retrocompatibles. 3.0 es retrocompatible con 1.0, pero 1.0 no es compatible con versiones anteriores de 3.0. b) Porque no sabíamos hacerlo entonces. Aprendemos y crecemos y mejoramos con cada generación.

Respuestas (3)

Son múltiples formas de mejorar el ancho de banda de una interfaz o bus:

  • Codificación aérea: la mayoría de los buses antiguos usan codificación 8B/10B , mientras que las interfaces o versiones de bus más nuevas usarán 64B/66B y PCIe 3.0 incluso usarán codificación 128B/130B. Con 8B/10B envías un 20% más de datos que los útiles. Con 64/66B, la relación de gastos generales es solo del 3,125%. Qué significa eso ? En general hablamos de ancho de banda útil sobre buses. Entonces, para un bus de 1 Gbps, si usa 8B/10B, el ancho de banda real necesario es de 1,25 Gbps. Pero la codificación de cabecera depende de la siguiente evolución.

  • Factor de la Ley de Moore: a medida que pasa el tiempo, tendrá más poder de cómputo en un chip y podrá usar algoritmos más poderosos pero que necesitan más poder de cómputo. También podrá hacer que su chip consuma menos energía o tener transceptores más potentes. También podrás aumentar la frecuencia de tu autobús.

  • Transceptores: Incluso si hablamos de bus digital, la señal transmitida aún necesita una parte analógica. Esto se hace mediante transceptores. Son partes de un circuito integrado que consumen mucha energía y con la ley de Moore y la reducción, podrá tener transceptores más potentes que unos pocos años atrás. También dispondrá de algoritmos de ecualización y preénfasis más evolucionados que le permitirán enviar la señal a mayor distancia o a la misma distancia pero con mayor frecuencia)

  • Modulación: los estándares de Ethernet utilizan diferentes modulaciones de amplitud de pulso (PAM-5, PAM-16) para poder enviar más datos en el mismo cable de cuatro pares.

  • DDR : use ambos bordes del reloj para muestrear datos.

Estos son solo algunos datos que me vienen a la mente.

¿Por qué no podemos tener un ancho de banda muy alto al principio? Pruebe la ley de Moore. Creo que puede tener lo mejor de lo mejor en ecualización, codificación, modulación, pero necesitará un chip que será muy costoso y consumirá mucha energía.

Además, por ejemplo, PCI Express 1.0 comenzó en 2003 con un ancho de banda de 2 Gbit/s por carril. Diez años después, con PCI Express 4.0 tenemos casi 16 Gbit/s por carril. Pero, ¿necesitábamos un bus de 16 Gbit/s en 2003?

Los productos electrónicos de consumo necesitan soluciones asequibles para sus necesidades. Si intenta venderles un bus de 10 Gbps por $15 cuando solo necesitan 5 Gbps por $10, no lo comprarán. Pero los fabricantes de autobuses saben que existe una mayor necesidad de ancho de banda a medida que pasa el tiempo y preparan la evolución para que sea rentable.

Simplemente porque el autobús en sí es solo la mitad de la ecuación.

Como dijiste, los procesadores mejoran debido al procesamiento a menor escala y una mayor integración. Son exactamente estos procesadores los que impulsan las señales en esos buses. Si pueden manejar velocidades de rendimiento más altas y obtener una mejor inmunidad al ruido, el bus se vuelve más rápido.

Pero el bus está integrado con la placa base, no con el procesador. Puede tener el mismo procesador en la placa base con PCI 2 o en la placa base con PCI 3. Entonces, ¿cómo puede ser?
Porque la CPU en sí no maneja el bus PCI.
El coprocesador, el puente sur y el puente norte también son procesadores.
@Ignacio Vazquez-Abrams Entonces, ¿cuál fue la barrera para crear un bus tan rápido como 16GB/s en primer lugar?
@nhgtygbg Los cables de interconexión pueden ser los mismos, quizás con tolerancias más estrictas, pero lo que marca la diferencia son los controladores de bus, que requieren mucho tiempo y esfuerzo para diseñar y optimizar.
Además de los imperativos técnicos que otros han señalado, existen imperativos comerciales. Las empresas no pueden pasar 20 años perfeccionando una tecnología sin retorno financiero y sin garantía de que la tecnología será adoptada cuando la lancen. Se liberan por etapas para mitigar ambos riesgos.

La mayor parte de esto es una cuestión de equilibrar las necesidades con los gastos.

Por ejemplo, la PC IBM original tenía un bus de 8 bits que funcionaba a 4,77 MHz. ¿Por qué no tenía un autobús más ancho y rápido? Porque tenía una CPU con un bus de 8 bits funcionando a 4,77 MHz. Se podría haber construido un bus que fuera más ancho y/o más rápido, pero casi no tenía sentido hacerlo, porque la CPU no podía usar más que eso de todos modos. Para mantener los costos razonables, tampoco tenía muchos periféricos altamente inteligentes, por lo que, aunque sabían cómo construir autobuses más rápidos, usar uno habría resultado en costos sustancialmente más altos pero con poca o ninguna mejora en la velocidad: el sistema pasó poco tiempo esperando el bus, que incluso un bus de ancho de banda infinito y latencia cero no habría hecho que todo el sistema fuera mucho más rápido.

El PC/AT siguió prácticamente el mismo patrón: el ancho y la velocidad del reloj del bus de expansión coincidieron con precisión con el bus externo del procesador (16 bits de ancho, inicialmente 6 MHz, luego aumentó a 8 MHz).

El bus PCI se diseñó inicialmente de la misma manera. En ese momento, Intel estaba construyendo (en su mayoría) 486 CPU, con un bus externo de 32 bits de ancho, funcionando a 33 MHz. El bus PCI hizo lo mismo.

Luego, las cosas languidecieron por un tiempo, aunque los diseños de PCI (bajo el nombre de PCI-X) se ampliaron a 64 bits y las velocidades de reloj aumentaron a 66, 133, 266 y 533 MHz, estos (especialmente las variedades de 266 y 533 MHz) ) nunca llegó a ser muy popular. Algunas de las variantes se usaron en algunos servidores, pero incluso allí nunca se volvieron particularmente comunes.

Parte de eso fue impulsado por la política, pero gran parte fue una simple cuestión de costo y falta de necesidad: la mayoría de las personas simplemente no tenían mucha necesidad (o incluso uso) de un bus mucho más rápido que el básico de 32 bits. , PCI de 33 MHz en ese momento. Esencialmente, el único lugar en el que realmente ganaron mucho con un mayor ancho de banda fue en las tarjetas de video, para las cuales AGP proporcionó una mejora significativa en el ancho de banda a un costo mucho menor.

PCI Express es realmente de la misma manera. En general, el ancho de banda ha sido un poco mayor de lo que nadie tenía un uso real en ese momento (incluso en tarjetas de video de gama alta), por lo que construir un bus más costoso para obtener un mayor ancho de banda no tenía mucho sentido. En todo caso, probablemente tendría más sentido preguntar por qué se molestaron en construir tanto ancho de banda para empezar y/o por qué lo expandieron tan agresivamente, aunque casi nadie realmente necesita o usa el ancho de banda disponible.

Casi las únicas respuestas que tengo para eso probablemente suenen al menos un poco cínicas. La primera es la simple competencia: incluso si brinda pocos beneficios reales al consumidor promedio, Intel probablemente vea al menos alguna ventaja competitiva al poder anunciar números de ancho de banda mucho más grandes que su AMD, y al presionar a AMD para que gaste dinero en I + D para al menos acercarse a mantenerse al día.

El segundo se reduce a la utilización fabulosa. No estoy seguro, pero supongo que Intel básicamente construye CPU en sus fábricas más nuevas. Cuando una fábrica se vuelve obsoleta para ese propósito, (lo más probable) la usan para construir partes menos críticas, especialmente los puentes norte y sur. Dado que tienen fábricas que eran de última generación para usar hace solo unos años, su presupuesto de transistores para piezas de puentes es bastante grande, y probablemente les gustaría usar ese presupuesto para producir la mejor pieza que puedan y justificar el precio más alto que pueden pagar. puede (lo que nos lleva de vuelta al primer punto).

La otra cara de la moneda es que, si bien esto puede no proporcionar un gran beneficio para el consumidor, el costo real para el consumidor también es bastante bajo. Puede comprar una placa base completa ahora por menos de (por ejemplo) una vez pagué por una tarjeta Ethernet de 10 megabits/segundo, y la placa base incluye al menos una (y a menudo dos) conexiones Gigabit Ethernet, seis u ocho conexiones SATA, una docena de conexiones USB, etc. En resumen, incluso si construyeran una placa base actual con "solo" PCI-E 2.0, probablemente no conduciría a una reducción significativa de costos.

Por supuesto, una placa base más capaz también hace una inversión (ligeramente) mejor a largo plazo, incluso si no la usa de inmediato, es posible que (por ejemplo) continúe usando esa placa base por un tiempo y eventualmente actualice los gráficos tarjeta a algo lo suficientemente rápido como para que, incluso si no usa todo el ancho de banda disponible, podría usar un poco más de ancho de banda que el estándar anterior admitido.

Mirándolo desde la otra dirección por un momento: ¿cómo es que tener un mayor presupuesto de transistores y una fábrica más capaz conduce a un bus más rápido? Al menos dos puntos son inmediatamente obvios. Una es bastante simple: cuando reduce los transistores, la capacitancia de entrada de un transistor también se reduce. Aunque necesita (y usa) búferes de E/S, la capacitancia reducida conduce más o menos directamente a poder usar una señalización más rápida (es decir, se reducen el tiempo de subida y el tiempo de caída). En segundo lugar, cuando puede usar más lógica, se vuelve práctico usar esquemas de señalización más sofisticados. Por ejemplo, un esquema más antiguo podría haber transmitido 10 bits a través del cable por cada 8 bits de datos que deseaba transmitir. En cambio, uno más nuevo (que requiere una lógica más sofisticada) podría codificar 65 bits de datos que desea enviar como 66 bits a través del cable. El primero da como resultado una sobrecarga del 25 %, pero el segundo solo genera una sobrecarga del 3 %. Por supuesto, usted paga por esa mayor velocidad de transmisión en la forma de necesitar más transistores en cada extremo para realizar la codificación/descodificación.

Para resumir: el ancho de banda del bus en los dispositivos de consumo típicos depende en gran medida del costo. La tecnología para construir más rápido ciertamente existe, pero para la mayoría de las computadoras, simplemente no tiene mucho sentido.