El CPI es el promedio de ciclos de reloj por instrucción. Cuando distintas clases de instrucciones tardan distintos números de ciclos, usamos el CPI ponderado del formulario: cada CPI pesa según cuántas instrucciones de esa clase ejecuta realmente el programa.
Enunciado
Un programa que procesa datos de sensores ejecuta 1 000 000 de instrucciones en un procesador de 2 GHz. Al analizar las instrucciones ejecutadas se observa lo siguiente:
- El 50 % son accesos a memoria; cada uno tarda 2 ciclos.
- El 30 % son operaciones aritméticas; cada una tarda 1 ciclo.
- El 20 % son saltos; cada uno tarda 3 ciclos.
Preguntas: ¿cuál es el CPI promedio del programa? ¿Cuánto tiempo de CPU tarda en ejecutarse, según este modelo?
1. Extraer los datos del enunciado
El formulario define:
En esta fórmula, es el número de ciclos de una instrucción de la clase , mientras que es la cantidad de instrucciones ejecutadas de esa clase. El denominador es el total de instrucciones ejecutadas. Los porcentajes del enunciado todavía no son cantidades: hay que aplicarlos al millón de instrucciones.
- Accesos a memoria: instrucciones; ciclos por instrucción.
- Operaciones aritméticas: instrucciones; ciclo por instrucción.
- Saltos: instrucciones; ciclos por instrucción.
- Total: . Comprobación: .
Los 2 GHz no se necesitan para hallar el CPI. Son un dato para calcular después el tiempo de CPU: .
2. Calcular los ciclos que aporta cada clase
Cada producto indica los ciclos consumidos por todas las instrucciones de esa clase:
- Accesos a memoria: ciclos.
- Operaciones aritméticas: ciclos.
- Saltos: ciclos.
Por tanto, ciclos.
3. Sustituir en la fórmula de CPI ponderado
Respuesta: el programa emplea en promedio 1,9 ciclos por instrucción. Esto no significa que exista una instrucción que tarde 1,9 ciclos: las clases tardan 1, 2 o 3 ciclos y el promedio refleja cuántas hay de cada una.
Forma rápida cuando entregan porcentajes
Como cada es una fracción del total, el millón de instrucciones se cancela en el cociente. Se puede comprobar directamente: . No promediamos simplemente : cada clase aparece con distinta frecuencia.
4. Usar el CPI para obtener el tiempo de CPU
Ahora sí utilizamos los 2 GHz del enunciado. La fórmula de tiempo de CPU del formulario es:
Sustituimos el total de instrucciones, el CPI obtenido y la frecuencia expresada en hercios:
También se puede comprobar con la fórmula del formulario : los ciclos calculados antes, divididos por ciclos por segundo, dan los mismos 0,95 ms.
