En este artículo, sabremos cómo calcular la tasa promedio de obtención de operandos de la máquina cuando la máquina utiliza diferentes modos de acceso a operandos.
Ejemplo-1:
considere una máquina hipotética que utiliza un modo de acceso de operando diferente que se muestra a continuación. Suponga que se consumen 3 ciclos de reloj para el acceso a la memoria, 2 ciclos de reloj consumidos para el cálculo aritmético, 0 ciclos de reloj consumidos cuando los datos están presentes en el registro o la instrucción misma. ¿Cuál es la tasa promedio de obtención de operandos de la máquina?
Modo de acceso al operando | Frecuencia% (probabilidad) |
---|---|
Modo de acceso inmediato | 25 |
Registrar Modo de Acceso | 28 |
Modo de acceso directo | 18 |
Modo de acceso indirecto a la memoria | 14 |
Modo de acceso indexado | 15 |
Solución:
en el modo de direccionamiento indexado, si no se especifica nada, asumimos que » la dirección base se proporciona directamente en la instrucción y el valor del índice se almacena en el registro de índice «. Ahora, si observamos el modo de acceso del operando dado con su número de ciclo requerido para ejecutarse de acuerdo con la pregunta dada, podemos ver que:
El modo de acceso inmediato no necesita referencia ni 0 ciclos.
El modo de acceso al registro necesita una referencia de 0 registros o 0 ciclos.
El modo de acceso directo necesita una referencia de 1 memoria o 3 ciclos.
El modo de acceso indirecto a la memoria necesita una referencia de 2 memorias.
O
3*2 ciclos (la referencia de 1 memoria tiene 3 ciclos, por lo que la referencia de 2 memorias tiene 3*2 ciclos).
El modo de acceso indexado necesita una referencia de 1 registro, una referencia de 1 memoria y un cálculo aritmético.
O
5 ciclos (1-referencia de memoria tiene 3 ciclos y 1-cálculo aritmético tiene 2 ciclos).
Modo de acceso al operando | Frecuencia% (probabilidad) | Nº de ciclos |
---|---|---|
Modo de acceso inmediato | 25 | sin referencia (ciclo 0) |
Registrar Modo de Acceso | 28 | Referencia 0-reg (ciclo 0) |
Modo de acceso directo | 18 | Referencia de 1 memoria (3 ciclos) |
Modo de acceso indirecto a la memoria | 14 | Referencia de 2 mem (ciclo 3*2) |
Modo de acceso indexado | 15 | 1 referencia de registro y 1 referencia de memoria y 1 cálculo aritmético (0+3+2 ciclos) |
Podemos obtener el promedio total de ciclos necesarios para ejecutar una instrucción sumando los productos de la frecuencia y el número de ciclos.
El promedio total de ciclos necesarios para ejecutar una instrucción
= (0.25\times0) + (0.28\times0) + (0.18\times3) + (0.14\times6) + (0.15\times5) = 2.13 Cycles
Ahora se sabe que el tiempo necesario para completar un ciclo es
= 1/1GHz = 1 nanosecond
Tiempo promedio requerido para ejecutar una instrucción
= 2.13 ∗ 1 = 2.13 nanosecond
Entonces, se requieren 2.13 nanosegundos para = 1 instrucción.
1 segundo es necesario para
= 1 / (2.13 * 10^(-9)) = 0.469483568 * 10^9 Instructions = 469.483568 MIPS (Million Instructions Per Second). In general we take operation fetch rate in MIPS.
Ejemplo-2:
considere una máquina hipotética que utiliza un modo de acceso de operando diferente que se muestra a continuación. Calcular Ciclo por Instrucciones o CPI.
Tipo de instrucción | Frecuencia | Ciclos consumidos para instrucción |
---|---|---|
Instrucción ALU | 45% | 4 |
Instrucción de carga | 35% | 3 |
Almacenar instrucción | 10% | 2 |
Instrucción de rama | 10% | 2 |
Solución:
en la arquitectura de computadoras, los ciclos por instrucción 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. Es el inverso multiplicativo de instrucciones por ciclo.
Se da que –
ALU Instruction consumes 4 cycles Load Instruction consumes 3 cycles Store Instruction consumes 2 cycles Branch Instruction consumes 2 cycles
Entonces, podemos obtener el CPI tomando el producto de los ciclos y la frecuencia.
CPI = 4*0.45 + 3*0.35 + 2*0.1 + 2*0.1 = 3.25 Cycles/Instruction