Desde mediados de la década de los 2000 dejamos de ver CPUs con un solo núcleo a ver CPUs con varios núcleos en nuestros PCs. Lo que empezaron a ser configuraciones de 2 núcleos actualmente lo son de hasta 16 núcleos en un PC estándar y con configuraciones de hasta 64 núcleos en estaciones de trabajo profesionales. ¿Pero existe un límite en la cantidad de núcleos? Sí es así, ¿cuál es dicho limite y cuáles son los factores?
Nuestros procesadores tienen cada vez más núcleos en su interior, no obstante, se va a llegar al punto en el que la cantidad de núcleos dejara de escalar. ¿pero cuáles son los factores que van a poner freno en cuanto a la cantidad de núcleos en una CPU?
¿Por qué utilizamos varios núcleos en una CPU?
Hasta mediados de los 2000, los procesadores de PC eran de un solo núcleo, pero llegada a esa fecha las CPUs pasaron a ser multinúcleo.
Para entenderlo tenemos que tener en cuenta lo que es la Escala de Dennard, cuya formula es la siguiente:
Consumo = Q*f*C*V2
Donde:
- Q es la cantidad de transistores activos.
- f es la frecuencia de reloj
- C es la Capacidad que tienen los transistores de mantener una carga
- V es el Voltaje
La magia de esta fórmula es que si se reduce el tamaño de los transistores no solo la densidad por área crece, sino que V y C se iban reduciendo. A este fenómeno se le dio el nombre de Escala de Dennard, porque fue acuñado por Robert H. Dennard, científico de IBM que entre otras cosas invento la memoria DRAM.
La Escala de Dennard utiliza el valor S como valor relativo entre el nuevo nodo y el anterior. Si por ejemplo el nodo anterior era de 10 nm y el nuevo es de 7 nm, entonces el calor de S va a ser 0.7.
Pero la escala de Dennard llego a su límite cuando se llegó al nodo de 65nm, con el cual se entró en la era Post-Dennard, siendo el motivo principal la existencia de una parte de la fórmula que hasta ese momento se había ignorado porque sus efectos eran descartables: la fuga de corriente.
Lo que hizo que la formula quedase de la siguiente manera:
Consumo = Q*f*C*V2+(V*Fuga de Corriente).
La consecuencia fue que Q, f y C mantuvieron sus valores de escala, pero el voltaje no lo mantuvo y paso a estar casi constante. Dado que la velocidad de reloj escala con el voltaje entonces los arquitectos tuvieron que empezar a buscar otras formas d sacar procesadores más rápidos y potentes.
Las consecuencia de ello fueron que la era en el que se hacían CPUs compuestas por un solo núcleo paso a mejor vida, y los grandes fabricantes de CPUs para PC como Intel y AMD empezaron a apostar por los procesadores multinúcleo.
¿Cuál es el límite en la cantidad de núcleos?
Hay varios factores que limitan la cantidad de núcleos con los que se construye un procesador, siendo la primera y más obvia la densidad en cuento a la cantidad de transistores por área, la cual va creciendo con cada nuevo nodo y por tanto permite sacar procesadores con cada vez más núcleos.
Pero no es así y os vamos a explicar cuáles son los retos con los que se encuentran los arquitectos a la hora de diseñar los nuevos procesadores.
Comunicación interna entre los diferentes núcleos
Existe un elemento muy importante que es la comunicación entre los diferentes núcleos, y de estos con la memoria, las cuales crecen de ,manera exponencial al número de elementos que tenemos en un sistema.
Esto ha hecho que los ingenieros hayan tenido que trabajar en estructuras de comunicación cada vez más complejas, todo ello para que los diferentes núcleos de un procesador reciban y envíen los datos en consonancia con otro procesador.
El problema del silicio oscuro
El Silicio Oscuro es la parte de la circuitería dentro de un circuito integrado que no puede recibir energía a un voltaje de operación normal (el determinado por el chip) para un límite de consumo energético dado.
La clave es que la cantidad de Silicio Oscuro de un nodo a otro aumenta en 1/S2 por lo que pese a que podemos poner físicamente el doble de transistores la cantidad útil de estos disminuye de una generación a otra.
El coste por área está aumentando, no disminuyendo
Hasta los 28 nm el coste por 1 mm2 de área fue disminuyendo, pero más allá de los 28 nm ha ido aumentando. Esto significa que, si se quieren mantener el coste de los procesadores, entonces estos han de disminuir el área y si en cambio quieren mantener el ritmo evolutivo entonces los procesadores serán cada vez más caros.
Esto que puede parecer que no es importante en lo que al número de núcleos. Si que lo es debido a que los arquitectos tienen en cuenta el presupuesto en lo que transistores se refiere, cuyo factor límite es el coste. Esto a su vez está relacionado con el coste por oblea.
La Ley de Amdahl: el software no escala con la cantidad de núcleos
La Ley de Amdahl fue acuñada por Gene Amdahl, científico informático famoso entre otras cosas por ser el arquitecto del IBM System/360. Aunque la ley de Amdahl no es un fenómeno físico nos viene a recordad que no toda la carga de trabajo de un programa informático se puede paralelizar.
Las consecuencias de ello es que mientras ciertas partes del trabajo aumentarán con el número de núcleos que haya en el sistema otras partes en cambio no pueden escalar en paralelo ya que funcionan de manera serial y dependen de la potencia de cada procesador en solitario para ir escalando. Por lo que las cargas de trabajo que no se pueden ejecutar en paralelo no aumentan en velocidad en lo que al número de núcleos se refiere.
Este es el motivo por el cual los arquitectos en vez de buscar poner cada vez más núcleos en los procesadores se diseñan nuevas arquitecturas, cada vez más eficientes. Siendo el principal objetivo de los diseños disminuir el tiempo en que los procesadores en solitario tardan en realizar ciertas instrucciones.
Por otro lado, hay que tener en cuenta que el software se diseña según el hardware que hay en el mercado, la mayoría del software actual esta optimizado para la media de núcleos que tiene la gente en sus PCs y aunque existe un grado de escalabilidad, esta no es nunca lineal sino más bien logarítmica, por lo que se llega al punto en que ciertas aplicaciones por muchos núcleos que tenga un procesador o incluso que lo rápido que sea este no van a escalar mucho más o lo harán de manera tan lenta que antes.
Fuente: hardzone.es/tutoriales/rendimiento/cantidad-nucleos-procesadores/