fbpx
Wikipedia

Ciclos por instrucción

En arquitectura de computadores, los ciclos por instrucción o CPI son una medida del rendimiento de un procesador: el número medio de ciclos de reloj por instrucción en un programa o fragmento.[1]​ Es el inverso multiplicativo de las instrucciones por ciclo.

Definición

Los ciclos por instrucción se definen como

 

donde   es el número de instrucciones de un tipo determinado  ,   es el número de ciclos de reloj que tarda en ejecutarse ese tipo de instrucciones y   es el número total de instrucciones. El sumatorio suma sobre todos los tipos de instrucción.

Explicación

Supongamos un procesador segmentado con las siguientes cinco etapas:

  1. Ciclo de búsqueda de instruction (IF).
  2. Ciclo de decodificación de instrucción/acceso a registros (ID).
  3. Ciclo de ejecución/dirección efectiva (EX).
  4. Acceso a memoria (MEM).
  5. Ciclo de escritura (WB).

Cada etapa necesita un ciclo de reloj y cada instrucción pasa secuencialmente por todas las etapas. Sin segmentación, se inicia la ejecución de una nueva instrucción en la primera etapa solo después de que la instrucción anterior termine en la última fase, por tanto el número de ciclos de reloj que se tarda en ejecutar cada instrucción es cinco (CPI = 5 > 1). En este caso, se dice que el procesador es subescalar. Con segmentación, se inicia una nueva instrucción cada ciclo de reloj para explotar el paralelismo a nivel de instrucción. Por tanto, dado que teóricamente se pueden tener cinco instrucciones en cada una de las cinco etapas del procesador, una instrucción diferente completaría su última etapa cada ciclo de reloj y por tanto idealmente el número de ciclos que se tarda en ejecutar cada instrucción es de media 1 (CPI = 1). En este caso, se dice que el procesador es escalar.

En un procesador con una sola unidad funcional, el mejor CPI alcanzable es 1. Sin embargo, en un procesador con varias unidades funcionales, se pueden conseguir incluso mejores valores de CPI (CPI < 1). En este caso, se dice que el procesador es superescalar. Para conseguir mejores valores de CPI sin segmentación, el número de unidades funcionales debe ser mayor que el número de etapas. Por ejemplo, con seis unidades funcionales, en la primera fase se inicia la ejecución den seis nuevas instrucciones solo después de que las seis instrucciones previas finalizan en la última fase, por tanto de media el número de ciclos que se tarda en ejecutar cada instrucción es 5/6 (CPI = 5/6 < 1). Para conseguir mejores valores de CPI con segmentación, debe haber al menos dos unidades funcionales. Por ejemplo, con dos unidades funcionales, se inician dos nuevas instrucciones cada ciclo explotando el paralelismo a nivel de instrucción, por tanto idealmente dos instrucciones diferentes completarían su última fase cada ciclo de reloj y de media el número de ciclos que se tarda en ejecutar cada instrucción es 1/2 (CPI = 1/2 < 1).

Ejemplos

Ejemplo 1

El procesador MIPS tiene cinco tipos de instrucciones:

  • Carga (5 ciclos)
  • Almacenamiento (4 ciclos)
  • Tipo R (4 ciclos)
  • Salto condicional (3 ciclos)
  • Salto incondicional (3 ciclos)

Si un programa tiene:

  • 50% de instrucciones de carga
  • 15% de instrucciones de tipo R
  • 25% de instrucciones de almacenamiento
  • 8% de instrucciones de salto condicional
  • 2% de instrucciones de salto incondicional

Entonces, el CPI es:

 

Ejemplo 2

Se usa un procesador de 400 MHz para ejecutar un benchmark con el siguiente número de instrucciones y su tiempo de ejecución en ciclos de reloj:[2]

Tipo de instrucción Número de instrucciones Número de ciclos
Aritmética entera 45000 1
Transferencia de datos 32000 2
Punto flotante 15000 2
Transferencia de control 8000 2

Vamos a determinar el CPI efectivo, los MIPS (millones de instrucciones por segundo), y el tiempo de ejecución del programa.

 

Dado que   y  

 

Por tanto, el tiempo de ejecución será:

 

Véase también

Referencias

  1. Patterson, David A.; Hennessy, John L. Computer Organization and Design: The Hardware/Software Interface (en inglés). 
  2. Hwang, Kai (1993). «1, Exercise Problem 1.1». Advanced Computer Architecture (en inglés). 
  •   Datos: Q3676413

ciclos, instrucción, arquitectura, computadores, ciclos, instrucción, medida, rendimiento, procesador, número, medio, ciclos, reloj, instrucción, programa, fragmento, inverso, multiplicativo, instrucciones, ciclo, Índice, definición, explicación, ejemplos, eje. En arquitectura de computadores los ciclos por instruccion o CPI son una medida del rendimiento de un procesador el numero medio de ciclos de reloj por instruccion en un programa o fragmento 1 Es el inverso multiplicativo de las instrucciones por ciclo Indice 1 Definicion 2 Explicacion 3 Ejemplos 3 1 Ejemplo 1 3 2 Ejemplo 2 4 Vease tambien 5 ReferenciasDefinicion EditarLos ciclos por instruccion se definen comoC P I S i I C i C C i I C displaystyle CPI frac Sigma i IC i CC i IC donde I C i displaystyle IC i es el numero de instrucciones de un tipo determinado i displaystyle i C C i displaystyle CC i es el numero de ciclos de reloj que tarda en ejecutarse ese tipo de instrucciones y I C S i I C i displaystyle IC Sigma i IC i es el numero total de instrucciones El sumatorio suma sobre todos los tipos de instruccion Explicacion EditarSupongamos un procesador segmentado con las siguientes cinco etapas Ciclo de busqueda de instruction IF Ciclo de decodificacion de instruccion acceso a registros ID Ciclo de ejecucion direccion efectiva EX Acceso a memoria MEM Ciclo de escritura WB Cada etapa necesita un ciclo de reloj y cada instruccion pasa secuencialmente por todas las etapas Sin segmentacion se inicia la ejecucion de una nueva instruccion en la primera etapa solo despues de que la instruccion anterior termine en la ultima fase por tanto el numero de ciclos de reloj que se tarda en ejecutar cada instruccion es cinco CPI 5 gt 1 En este caso se dice que el procesador es subescalar Con segmentacion se inicia una nueva instruccion cada ciclo de reloj para explotar el paralelismo a nivel de instruccion Por tanto dado que teoricamente se pueden tener cinco instrucciones en cada una de las cinco etapas del procesador una instruccion diferente completaria su ultima etapa cada ciclo de reloj y por tanto idealmente el numero de ciclos que se tarda en ejecutar cada instruccion es de media 1 CPI 1 En este caso se dice que el procesador es escalar En un procesador con una sola unidad funcional el mejor CPI alcanzable es 1 Sin embargo en un procesador con varias unidades funcionales se pueden conseguir incluso mejores valores de CPI CPI lt 1 En este caso se dice que el procesador es superescalar Para conseguir mejores valores de CPI sin segmentacion el numero de unidades funcionales debe ser mayor que el numero de etapas Por ejemplo con seis unidades funcionales en la primera fase se inicia la ejecucion den seis nuevas instrucciones solo despues de que las seis instrucciones previas finalizan en la ultima fase por tanto de media el numero de ciclos que se tarda en ejecutar cada instruccion es 5 6 CPI 5 6 lt 1 Para conseguir mejores valores de CPI con segmentacion debe haber al menos dos unidades funcionales Por ejemplo con dos unidades funcionales se inician dos nuevas instrucciones cada ciclo explotando el paralelismo a nivel de instruccion por tanto idealmente dos instrucciones diferentes completarian su ultima fase cada ciclo de reloj y de media el numero de ciclos que se tarda en ejecutar cada instruccion es 1 2 CPI 1 2 lt 1 Ejemplos EditarEjemplo 1 Editar El procesador MIPS tiene cinco tipos de instrucciones Carga 5 ciclos Almacenamiento 4 ciclos Tipo R 4 ciclos Salto condicional 3 ciclos Salto incondicional 3 ciclos Si un programa tiene 50 de instrucciones de carga 15 de instrucciones de tipo R 25 de instrucciones de almacenamiento 8 de instrucciones de salto condicional 2 de instrucciones de salto incondicionalEntonces el CPI es CPI 5 50 4 15 4 25 3 8 3 2 100 4 4 displaystyle text CPI frac 5 times 50 4 times 15 4 times 25 3 times 8 3 times 2 100 4 4 Ejemplo 2 Editar Se usa un procesador de 400 MHz para ejecutar un benchmark con el siguiente numero de instrucciones y su tiempo de ejecucion en ciclos de reloj 2 Tipo de instruccion Numero de instrucciones Numero de ciclosAritmetica entera 45000 1Transferencia de datos 32000 2Punto flotante 15000 2Transferencia de control 8000 2Vamos a determinar el CPI efectivo los MIPS millones de instrucciones por segundo y el tiempo de ejecucion del programa CPI 45000 1 32000 2 15000 2 8000 2 100000 155000 100000 1 55 displaystyle text CPI frac 45000 times 1 32000 times 2 15000 times 2 8000 times 2 100000 frac 155000 100000 1 55 Dado que M I P S 1 C P I displaystyle MIPS propto 1 CPI y M I P S f r e c u e n c i a d e r e l o j displaystyle MIPS propto frecuenciadereloj Rendimiento del procesador MIPS frecuencia de reloj CPI 1 1 000 000 400000000 1 55 1000000 400 1 55 258 MIPS displaystyle text Rendimiento del procesador text MIPS frac text frecuencia de reloj text CPI times frac 1 text 1 000 000 frac 400000000 1 55 times 1000000 frac 400 1 55 258 text MIPS Por tanto el tiempo de ejecucion sera T CPI Numero de instrucciones tiempo de reloj CPI Numero de instrucciones frecuencia 1 55 100000 400 1000000 1 55 4000 0 0003875 s 0 3875 ms displaystyle text T text CPI times text Numero de instrucciones times text tiempo de reloj frac text CPI times text Numero de instrucciones text frecuencia frac 1 55 times 100000 400 times 1000000 frac 1 55 4000 0 0003875 text s 0 3875 text ms Vease tambien EditarMillones de instrucciones por segundo Instrucciones por ciclo Ciclo de instruccion BenchmarkReferencias Editar Patterson David A Hennessy John L Computer Organization and Design The Hardware Software Interface en ingles Hwang Kai 1993 1 Exercise Problem 1 1 Advanced Computer Architecture en ingles Datos Q3676413 Obtenido de https es wikipedia org w index php title Ciclos por instruccion amp oldid 129993064, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos