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 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?
Respuestas:
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:
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.
fuente
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?No puedo decir que soy un experto en arquitectura de computadoras, pero intentaré responder sus preguntas.
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.
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.
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.
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!).
fuente
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.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.)
fuente
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?
fuente