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

23

Encontré una arquitectura de placa base 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 bus frontal parece un cuello de botella importante. ¿No sería mejor dar 2 o 3 buses directamente a la CPU?

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 incurrir en 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, ¿algo malo con esto? ¿Hay alguna desventaja importante en algún lugar? Lo único en lo que puedo pensar es quizás más complejidad en la CPU y el kernel, lo que me hace pensar que esta arquitectura de bus de cuello de botella es la forma en que se hizo en la antigüedad cuando las cosas eran menos sofisticadas y el diseño sigue siendo el mismo para la estandarización. / p>

EDITAR: olvidé mencionar el Monitor de vigilancia . Sé que lo he visto en algunos diagramas. Presumiblemente, un bus de cuellos de botella facilitaría que el perro guardián controle todo. ¿Podría tener algo que ver con eso?

    
pregunta DrZ214

4 respuestas

43

El enfoque que se muestra es una topología bastante antigua para las placas base: es anterior a PCIe, que realmente lo vuelve a colocar en algún lugar en los 00s. 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 fue increíblemente difícil. Integrar todo resultaría en 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 se pierden en una oblea debido a defectos: cuanto mayor es la matriz, 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 (conocido 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. El 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 mayor y más alta confiabilidad significa que es posible integrar todo en un solo chip. Los transistores más pequeños significan una mayor densidad para que pueda adaptarse más y los procesos mejorados de fabricación significan un mayor rendimiento. De hecho, no solo es más rentable, sino que también se ha vuelto vital para mantener los aumentos de velocidad en las computadoras modernas.

Como señala correctamente, tener una interconexión con 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 tendrá un enlace de velocidad extremadamente alta entre los dispositivos clave para gráficos y computación. En la PCB es posible que esté 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:

Fuente de imagen

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

¿Por qué no simplemente integrar absolutamente todo? Bueno, los fabricantes de placas base todavía quieren cierta capacidad de 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 el troquel de la CPU. Piense en las computadoras de una sola placa que utilizan las variantes del procesador ARM. En este caso, debido a que ARM alquila el diseño de la CPU, los fabricantes aún pueden personalizar sus troqueles según lo deseen e integrar los controladores / interfaces que deseen.

    
respondido por el Tom Carpenter
9

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

  

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

Como mencionó Tom, esto ya no es cierto. La mayoría de las CPU modernas tienen un northbridge integrado. El southbridge es típicamente integrado o hecho innecesario por la nueva arquitectura; Los chipsets de Intel "reemplazan" el southbridge con el Platform Controller Hub, 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 de ancho (64 bits) son caros, requieren una gran cantidad de transceptores de bus y muchos pines de E / S. Los únicos dispositivos que requieren un bus enorme gritando rápido son la tarjeta gráfica y la RAM. Todo lo demás (SATA, PCI, USB, serie, etc.) es comparativamente lento y no se puede acceder a él constantemente. Por eso, en la arquitectura anterior, todos esos periféricos "más lentos" se agrupan a través del southbridge 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 / infrecuentes 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 arriba que SATA / PCI / USB / serial son "lentos", eso es principalmente un punto histórico y se está volviendo menos cierto hoy. Con la adopción de unidades SSD sobre discos pequeños y periféricos PCIe rápidos, así como con USB 3.0, Thunderbolt y quizás 10G Ethernet (pronto), el ancho de banda periférico "lento" se está convirtiendo rápidamente en algo muy significativo. En el pasado, el autobús entre el puente norte y el puente sur no era un cuello de botella, pero ahora eso ya no es cierto. Así que 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 incurrir en el costo, porque los diagramas existentes ya tienen no menos de siete buses.

Habría más buses para que el procesador los administre, y más procesador de silicio para tratar con los buses. Que es caro En el diagrama anterior, no todos los buses son iguales. El FSB está gritando rápido, el LPC no. Los buses rápidos requieren silicio rápido, los buses lentos no, así que si puede mover buses lentos de la CPU a otro chip, le hará la vida más fácil.

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 el troquel de la CPU, es más fácil obtener un ancho de banda muy alto.

  

EDITAR: Olvidé mencionar el Monitor Watchdog. Sé que lo he visto en algunos diagramas. Presumiblemente, un bus de cuellos de botella facilitaría que el perro guardián controle todo. ¿Podría 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 se ve a todo lo que se mueve en el bus (¡es mucho menos sofisticado que eso!).

    
respondido por el uint128_t
6

El número de buses a los que se conectará directamente una CPU se limitará generalmente al número de partes distintas de la CPU que podrían acceder a las cosas simultáneamente. No es infrecuente, especialmente en el mundo de los procesadores integrados y los 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á de 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 será muy beneficioso ir más allá de un bus de memoria de programa y uno bus de memoria de datos. Para permitir que ciertos tipos de operaciones matemáticas se realicen con datos obtenidos de dos flujos diferentes, los DSP a menudo tendrán instrucciones especiales que utilizarán el bus de memoria de programa para recibir algunos de sus datos, de modo que puedan obtener dos números por ciclo (o bien cargar uno y almacenar uno).

Con los procesadores que tienen unidades de ejecución múltiples, puede ser útil tener un bus separado para cada uno, de modo que si hay varias unidades de buses "externos" que necesitan buscar elementos de diferentes buses "externos" pueden hacerlo sin interferencia . Sin embargo, a menos que haya una razón lógica por la que se pueda acceder a las cosas a las que acceden diferentes unidades de ejecución a través de diferentes buses fuera de la CPU, sin embargo, tienen buses separados desde la fuente de CPU a una unidad de arbitraje que solo puede transmitir una solicitud a la vez Un dispositivo externo particular no ayudará en nada. Los autobuses son caros, por lo que tener dos unidades de ejecución en un autobús es generalmente más barato que usar autobuses separados. Si el uso de buses separados permitirá una mejora importante del rendimiento, eso puede justificar el costo, pero de lo contrario, cualquier recurso (área de chip, etc.) que se consumiría con un bus separado podría utilizarse mejor para otros propósitos.

    
respondido por el supercat
-1

Tenga en cuenta la cantidad de pines necesarios en los paquetes de la CPU para tener varios buses anchos. Por ejemplo, ocho núcleos de CPU cada uno con un bus de datos de 64 bits, además de una variedad de otros pines para otros fines. ¿Hay algún paquete de CPU disponible hoy con quizás 800 pines?

    
respondido por el user6030

Lea otras preguntas en las etiquetas