24 votos

¿Por qué las CPU suelen conectarse a un solo bus?

He encontrado una arquitectura de placa base aquí:

enter image description here

Esta parece ser la disposición típica de las placas base. EDITAR: Bueno, aparentemente ya no es tan típico.

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

Imagino que un bus para la RAM, otro para la tarjeta gráfica y otro para algún tipo de puente hacia el disco duro, los puertos usb y todo lo demás. La razón por la que lo divido 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 de hacer de esta manera? No veo cómo el costo podría entrar en él, porque los diagramas existentes ya tienen no menos de siete autobuses. De hecho, utilizando más autobuses directos, podríamos reducir el número total de autobuses e incluso uno de los puentes.

Entonces, ¿hay algo de malo en esto? ¿Hay alguna desventaja importante en alguna parte? Lo único que se me ocurre es quizás una mayor complejidad en la CPU y el kernel, lo que me hace pensar que esta arquitectura de bus con cuello de botella es como se hacía antiguamente cuando las cosas eran menos sofisticadas, y el diseño se mantiene igual para la estandarización.

EDITAR: Me olvidé de mencionar el monitor de vigilancia . Sé que lo he visto en algunos diagramas. Es de suponer que un bus con cuello de botella facilitaría al watchdog el control de todo. ¿Podría eso tener algo que ver?

9 votos

Es un enfoque muy antiguo. Hoy en día, la CPU tiene el complejo raíz y el controlador de memoria incorporados, por lo que se conecta directamente a los dispositivos PCIe, a la RAM y a lo que es efectivamente el puente sur. Por ejemplo este

0 votos

@TomCarpenter Sí eso empieza a parecerse más. El diagrama que he publicado es lo que he visto "en todas partes", incluyendo la escuela, así que me imaginé que era más típico.

7 votos

El diagrama anterior sigue siendo relevante. Hoy en día no es un diagrama de una placa base, sino de la propia CPU. Sustituye "CPU" por "núcleo" y "chipset" por "CPU".

43voto

Tom Carpenter Puntos 7192

El enfoque que muestras es una topología bastante antigua para las placas base, es anterior a PCIe, lo que la sitúa en algún momento 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 una sola matriz era prácticamente inexistente desde el punto de vista comercial, y hacerlo era increíblemente difícil. Integrar todo daría como resultado troqueles de silicio de gran tamaño, lo que a su vez conduce a un rendimiento mucho menor. El rendimiento es esencialmente el número de troqueles que se pierden en una oblea debido a los defectos: cuanto más grande es el troquel, mayor es la probabilidad de que haya un defecto.

Para combatirlo, basta con dividir el diseño en varios chips, que en el caso de las placas base acabaron siendo la CPU, el puente norte y el puente sur. La CPU se limita al procesador con una interconexión de alta velocidad (denominada bus frontal, si no recuerdo mal). Luego está el puente norte, que integra el controlador de memoria, la conexión de gráficos (por ejemplo, AGP, una tecnología antigua en términos informáticos) y otro enlace más lento con el puente sur. El puente sur se utilizaba para gestionar las tarjetas de expansión, los discos duros, las unidades de CD, el audio, etc.


En los últimos 20 años, la capacidad de fabricar semiconductores en nodos de proceso cada vez más pequeños y con una fiabilidad cada vez mayor hace posible la integración de todo en un solo chip. Los transistores más pequeños suponen una mayor densidad, por lo que caben más cosas, y la mejora de los procesos de fabricación se traduce en un mayor rendimiento. De hecho, no sólo es más rentable, sino que se ha convertido en algo vital para mantener los aumentos de velocidad en los ordenadores modernos.

Como bien señalas, tener una interconexión a un puente norte se convierte en un cuello de botella. Si se puede integrar todo en la CPU, incluido el complejo raíz PCIe y el controlador de la memoria del sistema, de repente se dispone de un enlace de altísima velocidad entre los dispositivos clave para los gráficos y la computación: en la placa de circuito impreso se puede hablar de velocidades del orden de los Gbps, en la matriz se pueden alcanzar velocidades del orden de los Tbps.

Esta nueva topología se refleja en este diagrama:

New Topology

Fuente de la imagen

En este caso, como puedes ver, los controladores de gráficos y de memoria están integrados en la matriz de la CPU. Mientras que todavía tienes un enlace hacia lo que es efectivamente un único conjunto de chips hecho de algunas partes del puente norte y el puente sur (el conjunto de chips en el diagrama), esto hoy en día en una interconexión increíblemente rápida - tal vez 100+Gbps. Sigue siendo más lenta que en la matriz, pero mucho más rápida que los antiguos buses frontales.

¿Por qué no integrar absolutamente todo? Bueno, los fabricantes de placas base siguen queriendo cierta personalización: cuántas ranuras PCIe, cuántas conexiones SATA, qué controlador de audio, etc.

De hecho, algunos procesadores móviles integran aún más en la matriz de la CPU: piense en los ordenadores de placa única que utilizan variantes del procesador ARM. En este caso, como ARM alquila el diseño de la CPU, los fabricantes pueden personalizar sus troqueles como consideren oportuno e integrar los controladores/interfaces que deseen.

0 votos

+1, te has adelantado :) Buena respuesta, sobre todo por las razones históricas del diseño de la arquitectura.

0 votos

Gracias, sobre todo el segundo párrafo ha dado en el clavo. Sin embargo, on the die you can achieve speeds on the order of Tbps! Vaya, ¿eso no empieza a superar la capacidad de la CPU para procesarlo con la suficiente rapidez?

0 votos

@DrZ214 Toma un procesador moderno de 4 GHz, 64 bits y cuatro núcleos. Eso es 4*64*4=1024Gbps. QPI que es el último enlace de Intel entre la CPU y el Chipset es 307Gbps . Así que, aunque chocante, en realidad no es tan descabellado. Es increíble lo rápido que se están haciendo las cosas.

9voto

Tachyons Puntos 10001

No puedo decir que sea un experto en arquitectura informática, pero voy a intentar responder a tus preguntas.

Esta parece ser la disposición típica de las placas base.

Como mencionó Tom, esto ya no es cierto. La mayoría de las CPU modernas tienen un puente norte integrado. El puente sur suele estar integrado o ser innecesario gracias a la nueva arquitectura; los conjuntos de chips de Intel "sustituyen" el puente sur por 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 un solo bus? Ese bus frontal parece un gran cuello de botella. ¿No sería mejor dar 2 o 3 buses directamente a la CPU?

Los buses anchos (64 bits) son caros, requieren un gran número de transceptores de bus y muchos pines de E/S. Los únicos dispositivos que requieren un enorme gritando rápido bus son la tarjeta gráfica y la memoria RAM. Todo lo demás (SATA, PCI, USB, serie y demás) es comparativamente lento, y no se accede a él constantemente. De ahí que, en la arquitectura anterior, todos esos periféricos "más lentos" se agrupen a través del puente sur como un único dispositivo de bus: el procesador no quiere tener que arbitrar cada pequeña transacción del bus, por lo que todas las transacciones lentas/infrecuentes del bus pueden ser agregadas y gestionadas por el puente sur, que luego se conecta a los demás 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 en día. Con la adopción de SSDs sobre discos giratorios 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á convirtiendo rápidamente en algo muy significativo. Antes, el bus entre el northbridge y el southbridge no suponía un gran 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 de hacer de esta manera? No veo cómo podría entrar en juego el coste, porque los diagramas existentes ya tienen nada menos que siete autobuses.

Serían más buses que el procesador tendría que gestionar, y más silicio del procesador para ocuparse de los buses. Lo cual es caro. En el diagrama anterior, no todos los buses son iguales. El FSB es muy rápido, el LPC no. Los buses rápidos requieren silicio rápido, los buses lentos no, así que si puedes mover los buses lentos de la CPU a otro chip, te facilita la vida.

Sin embargo, como ya se ha mencionado, con la creciente popularidad de los dispositivos de gran ancho de banda, cada vez hay más buses que se conectan directamente al procesador, sobre todo en las arquitecturas SoC/más integradas. Al colocar cada vez más controladores en el troquel de la CPU, es más fácil conseguir un ancho de banda muy elevado.

EDIT: Me olvidé de mencionar el monitor de vigilancia. Sé que lo he visto en algunos diagramas. Es de suponer que un bus con cuello de botella facilitaría que el watchdog monitorizara todo. ¿Podría eso tener algo que ver?

No, eso no es realmente lo que hace un perro guardián. Un watchdog es simplemente para reiniciar varias cosas cuando/si se bloquean; realmente no mira todo lo que se mueve a través del bus (¡es mucho menos sofisticado que eso!).

2 votos

Fast buses require fast silicon, slow buses don't ¿Qué significa exactamente el silicio rápido? ¿Silicio de mayor pureza? ¿O está diciendo que los autobuses lentos pueden utilizar un elemento diferente al silicio? En cualquier caso, creía que el silicio era un material bastante barato. También es interesante lo del perro guardián. Puede que haga una pregunta relacionada con ello.

1 votos

Un bus rápido suele formar parte de un dispositivo de alto rendimiento, por ejemplo, una CPU. La interfaz del bus requiere espacio y conexiones con otras partes del chip. El área de silicio de una matriz de procesador es mucho más cara que la de un chip mucho más lento, porque el tamaño del proceso es menor y la fabricación/embalaje es más difícil. Por tanto, es más barato restringir los dispositivos en el FSB a sólo aquellos que realmente requieren ese ancho de banda. Sin embargo, a medida que se integran más controladores con la CPU en la misma matriz (un SoC), esto ya no es tan cierto.

0 votos

Aunque los autobuses lentos no requiere silicio rápido, no es raro encontrar muy rápido en interfaces lentas, lo que puede crear un gran dolor de cabeza para el diseño de la PCB. He visto PCI ordinario (velocidad máxima de 133MHz en PCI-X) con tiempos de subida y bajada de menos de 300 ps, ya que los vendedores están utilizando una célula de E/S estándar. Sé que PCI, como interfaz, no suele estar disponible en los nuevos procesadores, pero este problema es aplicable a otros lugares.

6voto

Alex Andronov Puntos 178

El número de buses a los que se conectará directamente una CPU estará generalmente limitado al número de partes distintas de la CPU que puedan acceder a cosas simultáneamente. No es raro, especialmente en el mundo de los procesadores embebidos y los DSP, que una CPU tenga un bus para programas y otro para datos, y que permita que ambos funcionen simultáneamente. Sin embargo, un uniprocesador típico sólo se beneficiará de la obtención de una instrucción por ciclo de instrucción, y sólo podrá acceder a una posición de memoria de datos por ciclo de instrucción, por lo que no habrá mucho beneficio en ir más allá de un bus de memoria de programa y un bus de memoria de datos. Para permitir que ciertos tipos de matemáticas se realicen a partir de datos obtenidos de dos flujos diferentes, los DSPs a menudo tienen instrucciones especiales que utilizan 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 otro).

Con procesadores que tienen múltiples unidades de ejecución, puede ser útil tener un bus separado para cada una, de modo que si hay múltiples buses "externos" las unidades que necesitan obtener cosas de diferentes buses "externos" puedan hacerlo sin interferencias. Sin embargo, a menos que haya una razón lógica por la que las cosas a las que acceden las diferentes unidades de ejecución sean accesibles a través de diferentes buses fuera de la CPU, tener buses separados de la CPU que alimenten a una unidad de arbitraje que sólo pueda transmitir una petición a la vez a un dispositivo externo en particular no ayudará nada. Los buses son caros, así que tener dos unidades de ejecución en un solo bus es generalmente más barato que usar buses separados. Si el uso de buses separados permite una mejora importante del rendimiento, eso puede justificar el coste, pero de otro modo cualquier recurso (área del chip, etc.) que se consumiría con un bus separado podría utilizarse mejor para otros fines.

0voto

Jeffrey Adams Puntos 814

Tenga en cuenta el número de pines necesarios en los paquetes de la CPU para tener varios buses anchos. Por ejemplo, ocho núcleos de CPU con un bus de datos de 64 bits cada uno, además de otros pines para otros fines. ¿Hay paquetes de CPU disponibles hoy en día con quizás 800 pines?

0 votos

¿Por qué no lo habría? Una matriz de bolas de 32x32 y una placa de circuito impreso de varias capas no parece un problema difícil (a escala relativa). Los ingenieros de hardware son increíbles. // Piensa en lo anchas y torpes que pueden ser las tarjetas de memoria RAM y, aun así, marcar el reloj a 1,6 GHz (625 picosegundos). Si las señales eléctricas viajan a 2/3 c, la traza más larga sólo puede tener 6 cm de longitud, y sólo unos pocos mm de diferencia en la longitud causarán desviaciones de tiempo notables. // Y supongo que la diafonía entre capas no será mucho peor que entre trazas de la misma capa.

0 votos

"¿Hay paquetes de CPU disponibles hoy en día con quizás 800 pines?" Oh, sí. Los paquetes con más de 1100 pines ya eran habituales cuando se escribió esta respuesta. Y hoy en día, hay LGA3647 para algunas CPU de servidor Skylake-EX

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X