stringtranslate.com

Ciclos por instrucción

En arquitectura informática , los ciclos por instrucción (también conocidos como ciclos de reloj por instrucción , relojes por instrucción o CPI ) son un aspecto del rendimiento de un procesador : el número promedio de ciclos de reloj por instrucción para un programa o fragmento de programa. [1] Es el inverso multiplicativo de instrucciones por ciclo .

Definición

El promedio de Ciclos Por Instrucción en un proceso determinado ( CPI ) se define mediante el siguiente promedio ponderado :

¿Dónde está el número de instrucciones para un tipo de instrucción determinado , son los ciclos de reloj para ese tipo de instrucción y es el recuento total de instrucciones? La suma suma todos los tipos de instrucción para un proceso de evaluación comparativa determinado.

Explicación

Supongamos un pipeline RISC clásico , con las siguientes cinco etapas:

  1. Ciclo de búsqueda de instrucciones (IF).
  2. Decodificación de instrucciones/ciclo de recuperación de registros (ID).
  3. Ejecución/Ciclo de dirección efectiva (EX).
  4. Acceso a memoria (MEM).
  5. Ciclo de reescritura (WB).

Cada etapa requiere un ciclo de reloj y una instrucción pasa por las etapas secuencialmente. Sin canalización , en un procesador de ciclos múltiples , se recupera una nueva instrucción en la etapa 1 solo después de que la instrucción anterior finaliza en la etapa 5, por lo tanto, la cantidad de ciclos de reloj que se necesitan para ejecutar una instrucción es cinco (CPI = 5 > 1). En este caso se dice que el procesador es subescalar . Con la canalización, se obtiene una nueva instrucción en cada ciclo de reloj aprovechando el paralelismo a nivel de instrucción ; por lo tanto, dado que teóricamente se podrían tener cinco instrucciones en las cinco etapas de la canalización a la vez (una instrucción por etapa), una instrucción diferente completaría la etapa 5 en cada ciclo de reloj y en promedio el número de ciclos de reloj que se necesitan para ejecutar una instrucción es 1 (CPI = 1). En este caso se dice que el procesador es escalar .

Con un procesador de una sola unidad de ejecución , el mejor CPI alcanzable es 1. Sin embargo, con un procesador de múltiples unidades de ejecución, se pueden lograr valores de CPI aún mejores (CPI < 1). En este caso se dice que el procesador es superescalar . Para obtener mejores valores de IPC sin canalización, el número de unidades de ejecución debe ser mayor que el número de etapas. Por ejemplo, con seis unidades de ejecución, se obtienen seis nuevas instrucciones en la etapa 1 solo después de que las seis instrucciones anteriores finalizan en la etapa 5, por lo tanto, en promedio, el número de ciclos de reloj que se necesitan para ejecutar una instrucción es 5/6 (CPI = 5/ 6 < 1). Para obtener mejores valores de IPC con canalización, debe haber al menos dos unidades de ejecución. Por ejemplo, con dos unidades de ejecución, se obtienen dos nuevas instrucciones en cada ciclo de reloj aprovechando el paralelismo a nivel de instrucción; por lo tanto, dos instrucciones diferentes completarían la etapa 5 en cada ciclo de reloj y, en promedio, el número de ciclos de reloj necesarios para ejecutar una instrucción es 1/2 (IPC = 1/2 < 1).

Ejemplos

Ejemplo 1

Para MIPS de ciclos múltiples , existen cinco tipos de instrucciones:

Si un programa tiene:

entonces el IPC es:

Ejemplo 2

[2] Se utilizó un procesador de 400 MHz para ejecutar un programa de referencia con la siguiente combinación de instrucciones y recuento de ciclos de reloj :

Determine el CPI efectivo, la tasa MIPS (millones de instrucciones por segundo) y el tiempo de ejecución para este programa.

desde: y

Por lo tanto:

Ver también

Referencias

  1. ^ Patterson, David A.; Hennessy, John L. (1994). Organización y diseño de computadoras: la interfaz hardware/software . ISBN 9781558602816.
  2. ^ Arquitectura informática avanzada por Kai Hwang, Capítulo 1, Problema de ejercicio 1.1