¿Por qué las CPU normalmente se conectan a un solo bus?

24

Encontré una arquitectura de placa base aquí:

ingrese la descripción de la imagen aquí

Este parece ser el diseño típico de las placas base. EDITAR: Bueno, aparentemente ya no es tan típico.

¿Por qué la CPU se conecta a solo 1 bus? Ese autobús frontal parece un gran cuello de botella. ¿No sería mejor dar 2 o 3 buses directamente a la CPU?

Me imagino un bus para la RAM, uno para la tarjeta gráfica y otro para algún tipo de puente al disco duro, puertos usb y todo lo demás. La razón por la que lo dividí de esta manera es porque las velocidades de datos del disco duro son lentas en comparación con la memoria.

¿Hay algo muy difícil en hacerlo de esta manera? No veo cómo podría entrar el costo, porque los diagramas existentes ya tienen no menos de siete autobuses. De hecho, al usar más autobuses directos, podríamos reducir el número total de autobuses y tal vez incluso uno de los puentes.

Entonces, ¿hay algo malo en esto? ¿Hay alguna desventaja importante en alguna parte? Lo único en lo que puedo pensar es quizás más complejidad en la CPU y el núcleo, lo que me hace pensar que esta arquitectura de bus de cuello de botella es cómo se hacía en los viejos tiempos cuando las cosas eran menos sofisticadas, y el diseño sigue siendo el mismo para la estandarización.

EDITAR: Olvidé mencionar el Monitor Watchdog . Sé que lo he visto en algunos diagramas. Presumiblemente, un autobús con cuello de botella facilitaría al vigilante monitorear todo. ¿Podría eso tener algo que ver con eso?

DrZ214
fuente
99
Ese es un enfoque muy antiguo. Hoy en día, la CPU tiene el complejo raíz y el controlador de memoria integrados, por lo que se conecta directamente a dispositivos PCIe, RAM y lo que efectivamente es el puente sur. Por ejemplo esto
Tom Carpenter
@TomCarpenter Sí, eso está empezando a parecerse más. El diagrama que publiqué es lo que he visto "en todas partes", incluida la escuela, así que pensé que era más típico.
DrZ214
77
Ese diagrama de arriba sigue siendo relevante. En estos días, eso no es un diagrama de una placa base, sino la propia CPU. Reemplace "CPU" con "core" y "chipset" con "CPU".
slebetman

Respuestas:

43

El enfoque que muestra es una topología bastante antigua para las placas base: es anterior a PCIe, lo que realmente lo ubica en algún lugar de los años '00. La razón se debe principalmente a las dificultades de integración.

Básicamente, hace 15 años, la tecnología para integrar todo en un solo dado era prácticamente inexistente desde un punto de vista comercial, y hacerlo era increíblemente difícil. Integrar todo daría como resultado tamaños de matriz de silicio muy grandes que a su vez conducen a un rendimiento mucho menor. El rendimiento es esencialmente la cantidad de dados que pierde en una oblea debido a defectos: cuanto mayor es el dado, mayor es la probabilidad de un defecto.

Para combatir esto, simplemente divide el diseño en múltiples chips; en el caso de las placas base, esto terminó siendo CPU, North Bridge y South Bridge. La CPU está limitada solo al procesador con una interconexión de alta velocidad (referido como el bus frontal por lo que recuerdo). Luego tiene el North Bridge que integra el controlador de memoria, la conexión de gráficos (por ejemplo, AGP, una tecnología antigua en términos de computación) y otro enlace más lento al South Bridge. South Bridge se utilizó para manejar tarjetas de expansión, discos duros, unidades de CD, audio, etc.


En los últimos 20 años, la capacidad de fabricar semiconductores en nodos de proceso cada vez más pequeños con una fiabilidad cada vez mayor significa que es posible integrar todo en un solo chip. Los transistores más pequeños significan una mayor densidad para que pueda caber más, y los procesos mejorados en la fabricación significan un mayor rendimiento. De hecho, no solo es más rentable, sino que también se ha vuelto vital mantener el aumento de la velocidad en las computadoras modernas.

Como señala correctamente, tener una interconexión a un puente norte se convierte en un cuello de botella. Si puede integrar todo en la CPU, incluido el PCIe Root Complex y el controlador de memoria del sistema, de repente tiene un enlace de velocidad extremadamente alta entre dispositivos clave para gráficos y computación: en la PCB puede estar hablando de velocidades del orden de Gbps, en ¡el dado puede alcanzar velocidades del orden de Tbps!

Esta nueva topología se refleja en este diagrama:

Nueva topología

Fuente de imagen

En este caso, como puede ver, los gráficos y los controladores de memoria están integrados en la matriz de la CPU. Si bien todavía tiene un enlace a lo que efectivamente es un conjunto de chips hecho de algunos bits del puente norte y el puente sur (el conjunto de chips en el diagrama), esto en la actualidad es una interconexión increíblemente rápida, tal vez 100 + Gbps. Todavía más lento que en el dado, pero mucho más rápido que los viejos autobuses frontales.

¿Por qué no simplemente integrar absolutamente todo? Bueno, los fabricantes de placas base todavía quieren personalización: cuántas ranuras PCIe, cuántas conexiones SATA, qué controlador de audio, etc.

De hecho, algunos procesadores móviles se integran aún más en la matriz de la CPU; piense en las computadoras de placa única que utilizan variantes de procesador ARM. En este caso, debido a que ARM alquila el diseño de la CPU, los fabricantes aún pueden personalizar sus troqueles como mejor les parezca e integrar los controladores / interfaces que deseen.

Tom Carpenter
fuente
+1, me ganaste :) Buena respuesta, especialmente por las razones históricas para el diseño de la arquitectura.
uint128_t
Gracias, especialmente el segundo párrafo llegó a casa. Sin embargo, on the die you can achieve speeds on the order of Tbps!Yikes, ¿no está comenzando a dejar atrás la capacidad de la CPU para procesarlo lo suficientemente rápido?
DrZ214
3
@ DrZ214 No son PCI, son PCIe, que es un bus serie en lugar de uno paralelo. PCIe es de 2.5Gbps, 5Gpbs u 8Gbps por carril en ambas direcciones (dúplex completo), con 16 carriles siendo el más ancho que generalmente se ve, dando un máximo teórico de 128Gbps en ambas direcciones. Y sí, el comentario anterior sobre las velocidades del procesador fue intencionalmente demasiado simplista, pero no poco realista: no estaba relacionado con las CPU, estoy trabajando en un diseño FPGA en este momento que procesa datos a 315 Gbps, y eso no está cerca del rendimiento total posible del FPGA, lo que limita eso es la falta de datos!
Tom Carpenter
1
Lo interesante es que esto representa un cambio hacia la arquitectura de sistemas aún más antiguos, donde los buses de memoria y almacenamiento (etc.) fueron directamente a la CPU.
Chris H
1
@ DrZ214 un "carril" es un solo bit de ancho, una señal de reloj / datos enviada como dos pares. La característica única de PCIe en comparación con, por ejemplo, el bus DDR es que PCIe puede agregar y desagregar libremente carriles, mientras que la mayoría de los buses tiene que tomar todo o nada.
pjc50
9

No puedo decir que soy un experto en arquitectura de computadoras, pero intentaré responder sus preguntas.

Este parece ser el diseño típico de las placas base.

Como Tom mencionó, esto ya no es cierto. La mayoría de las CPU modernas tienen un puente norte integrado. El southbridge generalmente está integrado o es innecesario por la nueva arquitectura; Los conjuntos de chips de Intel "reemplazan" el puente sur con el Hub del controlador de plataforma, que se comunica directamente con la CPU a través de un bus DMI.

¿Por qué la CPU se conecta a solo 1 bus? Ese autobús frontal parece un gran cuello de botella. ¿No sería mejor dar 2 o 3 buses directamente a la CPU?

Los buses anchos (de 64 bits) son caros, requieren una gran cantidad de transceptores de bus y muchos pines de E / S. Los únicos dispositivos que requieren un gran bus rápido son la tarjeta gráfica y la RAM. Todo lo demás (SATA, PCI, USB, serie, etc.) es relativamente lento y no se accede constantemente. Por lo tanto, en la arquitectura anterior, todos esos periféricos "más lentos" se agrupan a través del puente sur como un único dispositivo de bus: el procesador no quiere tener que arbitrar cada pequeña transacción de bus, por lo que todas las transacciones de bus lentas / poco frecuentes se pueden agregar y administrado por el puente sur, que luego se conecta a los otros periféricos a una velocidad mucho más pausada.

Ahora, es importante mencionar que cuando digo más arriba que SATA / PCI / USB / serial son "lentos", eso es principalmente un punto histórico, y se está volviendo menos cierto hoy en día. Con la adopción de SSD sobre discos espinosos y periféricos PCIe rápidos, así como USB 3.0, Thunderbolt y tal vez 10G ethernet (pronto), el ancho de banda periférico "lento" se está volviendo rápidamente muy significativo. En el pasado, el autobús entre el puente norte y el puente sur no tenía mucho cuello de botella, pero ahora eso ya no es cierto. Entonces, sí, las arquitecturas se están moviendo hacia más buses conectados directamente a la CPU.

¿Hay algo muy difícil en hacerlo de esta manera? No veo cómo podría entrar el costo, porque los diagramas existentes ya tienen no menos de siete autobuses.

Sería más buses para que los procese el procesador y más silicio de procesador para tratar con los buses. Lo cual es caro. En el diagrama anterior, no todos los autobuses son iguales. El FSB está gritando rápido, el LPC no. Los buses rápidos requieren silicio rápido, los buses lentos no, por lo que si puede mover los buses lentos desde la CPU a otro chip, le facilitará la vida.

Sin embargo, como se mencionó anteriormente, con la creciente popularidad de los dispositivos de alto ancho de banda, cada vez más buses se conectan directamente al procesador, particularmente en SoC / arquitecturas más altamente integradas. Al poner más y más controladores en la matriz de la CPU, es más fácil lograr un ancho de banda muy alto.

EDITAR: Olvidé mencionar el Monitor Watchdog. Sé que lo he visto en algunos diagramas. Presumiblemente, un autobús con cuello de botella facilitaría que el perro guardián monitoree todo. ¿Podría eso tener algo que ver con eso?

No, eso no es realmente lo que hace un perro guardián. Un perro guardián es simplemente reiniciar varias cosas cuando / si se bloquean; en realidad no mira todo lo que se mueve en el autobús (¡es mucho menos sofisticado que eso!).

uint128_t
fuente
2
Fast buses require fast silicon, slow buses don't¿Qué significa exactamente el silicio rápido? Silicio de mayor pureza? ¿O estás diciendo que los autobuses lentos pueden usar un elemento diferente al silicio? De cualquier manera, pensé que el silicio era un material bastante barato. Un poco interesante sobre el perro guardián también. Podría hacer una pregunta relacionada al respecto.
DrZ214
1
Un bus rápido normalmente sería parte de un dispositivo de alto rendimiento, por ejemplo, una CPU. La interfaz del bus requiere espacio y conexiones a otras partes del chip. El área de silicio en una matriz de procesador es mucho más costosa que un chip mucho más lento, porque el tamaño del proceso es más pequeño y la fabricación / embalaje es más difícil. Por lo tanto, es más económico restringir los dispositivos en el FSB a aquellos dispositivos que realmente requieren ese ancho de banda. Sin embargo, a medida que se integran más controladores con la CPU en el mismo dado (un SoC), esto ya no es tan cierto.
uint128_t
Aunque los buses lentos no requieren silicio rápido, no es raro encontrar controladores muy rápidos en interfaces lentas, lo que puede crear un gran dolor de cabeza para el diseño de PCB. He visto PCI normal (velocidad máxima 133MHz en PCI-X) con tiempos de subida y bajada de menos de 300 ps, ​​ya que los proveedores están utilizando una celda de E / S estándar. Sé que PCI, como interfaz, normalmente no está disponible en nuevos procesadores, pero este problema es aplicable en otros lugares.
Peter Smith
6

La cantidad de buses a los que una CPU se conectará directamente generalmente se limitará a la cantidad de partes distintas de la CPU que podrían acceder a las cosas simultáneamente. No es raro, especialmente en el mundo de los procesadores integrados y DSP, que una CPU tenga un bus para programas y un bus para datos, y permita que ambos funcionen simultáneamente. Sin embargo, un uniprocesador típico solo se beneficiará al obtener una instrucción por ciclo de instrucción, y solo podrá acceder a una ubicación de memoria de datos por ciclo de instrucción, por lo que no habrá mucho beneficio al ir más allá de un bus de memoria de programa y uno bus de memoria de datos. Para permitir que se realicen ciertos tipos de matemática sobre los datos obtenidos de dos flujos diferentes,

Con los procesadores que tienen múltiples unidades de ejecución, puede ser útil tener un bus separado para cada uno, de modo que si hay varias unidades de buses "externos" que necesiten buscar cosas de diferentes buses "externos", pueden hacerlo sin interferencia. A menos que haya una razón lógica por la cual las cosas a las que acceden las diferentes unidades de ejecución serán accesibles a través de diferentes buses fuera de la CPU, sin embargo, tener buses separados de la CPU alimentan una unidad de arbitraje que solo puede transmitir una solicitud a la vez a un un dispositivo externo en particular no ayudará en nada. Los autobuses son caros, por lo que tener dos unidades de ejecución sentadas en un autobús es generalmente más barato que usar autobuses separados. Si el uso de autobuses separados permitirá una mejora importante en el rendimiento, eso puede justificar el costo, pero de lo contrario cualquier recurso (área de chips, etc.)

Super gato
fuente
-1

Considere la cantidad de pines requeridos en los paquetes de CPU para tener múltiples buses anchos. Por ejemplo, ocho núcleos de CPU cada uno con un bus de datos de 64 bits, además de otros pines surtidos para otros fines. ¿Hay algún paquete de CPU disponible hoy con quizás 800 pines?

usuario6030
fuente
¿Por qué no habría? Una matriz de cuadrícula de bolas de 32x32 y una PCB de varias capas no parece un problema difícil (en una escala relativa). Los ingenieros de hardware son increíbles. // Piensa en lo anchas y torpes que pueden ser las tarjetas RAM, y sigue registrando a 1.6 GHz (625 picosegundos). Si las señales eléctricas viajan a 2/3 c, la traza más larga solo puede tener 6 cm de largo, y solo una diferencia de longitud de unos pocos mm provocará compensaciones de temporización notables. // Y supongo que la diafonía entre capas no sería mucho peor que entre trazas en la misma capa.
Oskar Skog
"¿Hay algún paquete de CPU disponible hoy con quizás 800 pines?" Oh si. Los paquetes con más de 1100 pines ya eran comunes cuando se escribió esta respuesta. Y hoy en día, hay LGA3647 para algunas CPU de servidor Skylake-EX ...
duskwuff