Este artículo necesita citas adicionales para su verificación . ( febrero de 2008 ) |
En arquitectura informática , las instrucciones por ciclo ( IPC ), comúnmente llamadas instrucciones por reloj , son un aspecto del rendimiento de un procesador : el número promedio de instrucciones ejecutadas por cada ciclo de reloj . Es el inverso multiplicativo de los ciclos por instrucción . [1] [2] [3]
Mientras que las primeras generaciones de CPU llevaban a cabo todos los pasos para ejecutar una instrucción de forma secuencial, las CPU modernas pueden hacer muchas cosas en paralelo. Como es imposible seguir duplicando la velocidad del reloj, la canalización de instrucciones y el diseño de procesadores superescalares han evolucionado de modo que las CPU pueden utilizar una variedad de unidades de ejecución en paralelo, mirando hacia delante a través de las instrucciones entrantes para optimizarlas. Esto hace que las instrucciones por ciclo completadas sean mucho mayores que 1 y es responsable de gran parte de las mejoras de velocidad en las generaciones de CPU posteriores.
El cálculo del IPC se realiza ejecutando un fragmento de código determinado, calculando la cantidad de instrucciones a nivel de máquina necesarias para completarlo y, a continuación, utilizando temporizadores de alto rendimiento para calcular la cantidad de ciclos de reloj necesarios para completarlo en el hardware real. El resultado final se obtiene dividiendo la cantidad de instrucciones por la cantidad de ciclos de reloj de la CPU.
La cantidad de instrucciones por segundo y de operaciones de coma flotante por segundo de un procesador se puede obtener multiplicando la cantidad de instrucciones por ciclo por la frecuencia de reloj (ciclos por segundo expresados en hercios ) del procesador en cuestión. La cantidad de instrucciones por segundo es un indicador aproximado del rendimiento probable del procesador.
El número de instrucciones ejecutadas por ciclo de reloj no es una constante para un procesador determinado; depende de cómo el software particular que se ejecuta interactúa con el procesador y, de hecho, con toda la máquina, en particular la jerarquía de memoria . Sin embargo, ciertas características del procesador tienden a conducir a diseños que tienen valores de IPC más altos que el promedio; la presencia de múltiples unidades lógicas aritméticas (una ALU es un subsistema del procesador que puede realizar operaciones lógicas y aritméticas elementales) y tuberías cortas. Al comparar diferentes conjuntos de instrucciones , un conjunto de instrucciones más simple puede conducir a una cifra de IPC más alta que una implementación de un conjunto de instrucciones más complejo que use la misma tecnología de chip; sin embargo, el conjunto de instrucciones más complejo puede lograr un trabajo más útil con menos instrucciones. Como tal, comparar cifras de IPC entre diferentes conjuntos de instrucciones (por ejemplo, x86 vs ARM) generalmente no tiene sentido.
El trabajo útil que se puede realizar con cualquier computadora depende de muchos factores además de la velocidad del procesador. Estos factores incluyen la arquitectura del conjunto de instrucciones , la microarquitectura del procesador y la organización del sistema informático (como el diseño del sistema de almacenamiento en disco y las capacidades y el rendimiento de otros dispositivos conectados), la eficiencia del sistema operativo y el diseño de alto nivel del software de aplicación .
Para los usuarios y compradores de computadoras, los puntos de referencia de las aplicaciones , en lugar de las instrucciones por ciclo, suelen ser una indicación mucho más útil del rendimiento del sistema. Sin embargo, IPC proporciona un ejemplo de por qué la velocidad del reloj no es el único factor relevante para el rendimiento de la computadora.