¿Qué estamos diciendo realmente cuando un procesador es más rápido que otro? Existen muchos mitos y falacias a la hora de realizar dicha afirmación tan a la ligera. Sin embargo, entender un concepto tan básico puede llegar a ser algo confuso, en especial por la existencia del mito del MHz.
El usuario sin conocimientos se puede encontrar con dos procesadores iguales en lo que son sus especificaciones básicas. Mismo número de núcleos, misma velocidad de reloj medida en MHz o GHz. En ese momento es cuando ante la enorme cantidad de modelos en el mercado se pierde por no entender la información.
¿Cuándo es más rápido un procesador?
Cuando se dan varios factores, pero especialmente son tres: arquitectura, velocidad de reloj y número de núcleos. Aunque en general se suele obviar la primera por el hecho que no es cuantificable. Lo que lleva a confusiones sobre lo rápido que es un procesador.
Solemos pensar que lo rápido que es un procesador viene marcada por la velocidad de reloj, cuando está lo que marca es la cantidad de pulsos que se realizan por segundo. A día de hoy, tanto una CPU como una GPU trabajan por etapas para ejecutar una instrucción de un programa. Además, dependiendo del tipo de instrucción, el número de etapas varias. Pensad en ello en una factoría donde cada uno de los elementos de la cadena de montaje o ensamblaje se mueven a la velocidad de un tic de reloj.
Es decir, cuando la primera instrucción está en la segunda etapa, la segunda entra en la primera y así sucesivamente hasta que esta se resuelve. Por lo que se busca es medir la cantidad de instrucciones de media que se completan por ciclo de reloj. El procesador más rápido será el que tenga la cifra más alta de todos. Obviamente, el hecho de tener una mejor velocidad de reloj y una mayor cantidad de núcleos ayuda. Aunque, de la misma manera que no todos los coches a 110 CV son igual de rápidos, no todas las CPU a 3 GHz son igual de rápidas.
Cuellos de botella
Sin embargo, se ha de tener en cuenta que dichas mediciones no son siempre del todo exactas, ya que nos podemos encontrar con los siguientes tres problemas, los cuales afectan a lo rápido que irá el procesador.
- Las unidades encargadas de solventar ciertas instrucciones se encuentran total o parcialmente ocupadas.
- Los datos que requiere una o varias instrucciones no se encuentran en los registros o en las memorias caché más cercanas. Por lo que hay un retraso adicional.
- El programa tiene una selección de instrucciones concreta que perjudica o beneficia a dicho modelo de procesador.
El cuello de botella más problemático es el de la memoria, dado que la velocidad de esta no ha evolucionado de la misma manera se ha tenido que tirar del parche de la memoria caché a diferentes niveles. Inicialmente, esta era de un solo nivel, pero a medida que la latencia entre CPU y RAM ha ido aumentando se han ido añadiendo nuevos niveles. Hace unos años llegar a pensar que un procesador tenga 3 niveles de caché era impensable, a día de hoy es una norma general, hasta en los chips gráficos o GPU. No en vano, la arquitectura RDNA 2 de AMD en PC ya usa caché L3.
Otro problema es el de la contención, esta se da cuando dos instrucciones que se están operando en paralelo han de compartir los mismos recursos del procesador. Durante el diseño de un procesador con tal de ahorrar espacio y en transistores ocurre que algunas instrucciones comparten recursos y combinarlas, al mismo tiempo supone que se resuelven en más ciclos de lo que es habitual. A la hora de diseñar una CPU, los ingenieros procuran que dicho problema no ocurran con las combinaciones de instrucciones más comunes.