¿Por qué los chips contienen más y más núcleos? ¿Por qué no fabricar un procesador de un solo núcleo más grande? ¿Es más fácil de fabricar? ¿Es para permitir que los programas multiprocesen usando núcleos separados?
¿Por qué los chips contienen más y más núcleos? ¿Por qué no fabricar un procesador de un solo núcleo más grande? ¿Es más fácil de fabricar? ¿Es para permitir que los programas multiprocesen usando núcleos separados?
Respuestas:
La tendencia hacia múltiples núcleos es un enfoque de ingeniería que ayuda a los diseñadores de CPU a evitar el problema del consumo de energía que surgió con el aumento progresivo de la frecuencia. A medida que las velocidades de la CPU subieron al rango de 3-4 Ghz, la cantidad de energía eléctrica requerida para ir más rápido comenzó a ser prohibitiva. Las razones técnicas para esto son complejas, pero factores como las pérdidas de calor y la corriente de fuga (potencia que simplemente atraviesa los circuitos sin hacer nada útil) aumentan más rápidamente a medida que aumentan las frecuencias. Si bien es ciertamente posible construir una CPU x86 de propósito general de 6 GHz, no se ha demostrado que sea económico hacerlo de manera eficiente. Es por eso que comenzó el movimiento hacia los núcleos múltiples y es por eso que veremos que esa tendencia continúa al menos hasta que los problemas de paralelización se vuelvan insuperables.
Como ejemplo práctico, el E5640 Xeon (4 núcleos a 2,66 GHz) tiene una envolvente de potencia de 95 vatios, mientras que el L5630 (4 núcleos a 2,13 GHz) requiere solo 40 vatios. Eso es un 137% más de energía eléctrica para un 24% más de potencia de CPU para CPU que son en su mayor parte compatibles con funciones. El X5677 aumenta la velocidad a 3.46 GHz con algunas características más, pero eso es solo un 60% más de potencia de procesamiento para un 225% más de potencia eléctrica.
Ahora compare el X5560 (2.8 GHz, 4 núcleos, 95 vatios) con el nuevo X5660 (2.8 GHz, 6 núcleos, 95 vatios) y hay un 50% de potencia de cómputo adicional en el zócalo (potencialmente, suponiendo que la ley de Amdahl sea amable con nosotros para ahora) sin requerir ninguna energía eléctrica adicional. Las CPU de la serie 6100 de AMD ven ganancias similares en el rendimiento agregado con respecto a la serie 2400 \ 8400 mientras mantienen el consumo de energía eléctrica estable.
Para las tareas de subproceso único, este es un problema, pero si sus requisitos son entregar grandes cantidades de potencia de CPU agregada a un clúster de procesamiento distribuido o un clúster de virtualización, entonces este es un enfoque razonable. Esto significa que para la mayoría de los entornos de servidores actuales, escalar el número de núcleos en cada CPU es un enfoque mucho mejor que tratar de construir CPU de un solo núcleo más rápidas y mejores.
La tendencia continuará por un tiempo, pero hay desafíos y escalar continuamente el número de núcleos no es fácil (mantener el ancho de banda de memoria lo suficientemente alto y administrar cachés se vuelve mucho más difícil a medida que crece el número de núcleos). Eso significa que el actual crecimiento bastante explosivo en el número de núcleos por zócalo tendrá que disminuir en un par de generaciones y veremos algún otro enfoque.
Se estaba volviendo demasiado difícil hacerlos útilmente más rápidos.
El problema es que debes trabajar en un montón de instrucciones a la vez, la CPU x86 actual tiene 80 o más instrucciones trabajando a la vez, y parece que ese es el límite, ya que fue golpeado con el P4, diablos , el Pentium Pro hizo 40 en 1995. Las secuencias de instrucciones típicas no son predecibles más allá de eso (tiene que adivinar ramas, acceso a memoria, etc.) para ejecutar más de unas pocas instrucciones a la vez (486 hizo 5, Pentium hizo 10, apenas) .
Entonces, si bien puede hacerlos más anchos (unidades más funcionales para hacer cada parte de la instrucción), más largos (tuberías más profundas para ocultar la latencia), no parece hacer mucho bien. Y parece que también hemos golpeado una pared con la velocidad del reloj. Y todavía estamos superando la memoria. Por lo tanto, dividirse en muchas CPU parece ser una victoria. Además, pueden compartir cachés.
Hay mucho más en esto, pero se reduce a que los programas convencionales no se pueden ejecutar significativamente más rápido en cualquier hardware que podamos imaginar cómo diseñar y construir.
Ahora, si la previsibilidad no es un problema, por ejemplo, muchos problemas científicos y gráficos (a menudo se reducen para multiplicar este conjunto de números por ese conjunto de números), este no es el caso, y por lo tanto la popularidad del IA64 de Intel ( Itanium) y GPU, que simplemente se vuelven cada vez más rápidos, pero no lo ayudarán a ejecutar Word mejor.
La potencia informática y la frecuencia de reloj de un único procesador alcanzaron su punto máximo hace unos años, simplemente no es fácil crear procesadores más potentes y / o más rápidos que los actuales; así que los principales fabricantes de CPU (Intel, AMD) cambiaron de estrategia y se volvieron multinúcleo. Por supuesto, esto requiere mucho más trabajo por parte de los desarrolladores de aplicaciones para aprovechar todo el poder de la multitarea: un programa que se ejecuta en una sola tarea simplemente no obtiene ningún beneficio de una CPU de múltiples núcleos (aunque el sistema obtiene un bonificación general porque no se bloquea si un solo proceso lleva una sola CPU al 100% de uso).
Acerca de la arquitectura física (procesadores de múltiples núcleos en lugar de múltiples de un solo núcleo) ... debe preguntarle a Intel. Pero estoy bastante seguro de que esto tiene algo que ver con las placas base con un solo zócalo de CPU que es mucho más fácil de diseñar y fabricar que las placas con múltiples.
Para aumentar las velocidades de reloj, los transistores de silicio en el chip deben poder cambiar más rápido. Estas velocidades más altas requieren voltajes de entrada más altos y procesos de fabricación de semiconductores que resultan en una mayor fuga , lo que aumenta el consumo de energía y la producción de calor. Eventualmente, llega a un punto en el que ya no puede aumentar las velocidades de reloj sin requerir cantidades excesivas de energía o usar soluciones de enfriamiento exóticas.
Para ilustrar este problema, compararé dos procesadores AMD modernos. El AMD FX-9590 es capaz de alcanzar velocidades de reloj de hasta 5 GHz de fábrica, pero funciona con voltajes de núcleo de hasta 1.912 V, que es extremadamente alto para un chip de 32 nm, y disipa unos increíbles 220 vatios de calor. El FX-8350, que se basa en el mismo troquel, funciona a un máximo de 4.2 GHz pero funciona a un máximo de 1.4 V y disipa 125 vatios.
Como resultado, en lugar de tratar de aumentar aún más los relojes, los ingenieros han tratado de hacer que los chips trabajen más rápido de otras maneras, incluido el diseño de ellos para ejecutar múltiples procesos simultáneamente, por lo tanto, procesadores de múltiples núcleos.
La ley de Moore . Básicamente, los procesadores no se pueden hacer más rápido (la frecuencia alcanzó 3 GHz hace 5 años y nunca pasó mucho de eso), por lo que se hacen más potentes al obtener más núcleos.