在本文中,我们将知道当计算机使用不同的操作数访问模式时,如何计算计算机的平均操作数提取率。
示例1:
考虑下面假设的使用不同操作数访问模式的机器。假设内存访问消耗了3个时钟周期,算术计算消耗了2个时钟周期,寄存器或指令本身中存在数据时消耗了0个时钟周期,那么计算机的平均操作数提取率是多少?
Operand Accessing Mode | Frequency%(Probability) |
---|---|
Immediate Accessing Mode | 25 |
Register Accessing Mode | 28 |
Direct Accessing Mode | 18 |
Memory Indirect Accessing Mode | 14 |
Indexed Accessing Mode | 15 |
解决方案 :
在变址寻址模式下,如果未指定任何内容,则假定“直接在指令中给出基地址,而变址值存储在变址寄存器中”。现在,如果我们根据给定的问题查看给定的操作数访问模式及其执行所需的周期数,我们可以看到–
立即访问模式不需要参考或需要0个周期。
寄存器访问模式需要一个0寄存器参考或0个周期。
直接访问模式需要1个存储器参考或3个周期。
内存间接访问模式需要2个内存引用。
或者
3 * 2个周期(1个内存参考具有3个周期,因此2个内存参考具有3 * 2个周期)。
索引访问模式需要1-reg参考和1-mem参考以及1-算术计算。
或者
5个周期(1个内存参考具有3个周期,而1个算术计算具有2个周期)。
Operand Accessing Mode | Frequency%(Probability) | No of Cycles |
---|---|---|
Immediate Accessing Mode | 25 | no reference (0 cycle) |
Register Accessing Mode | 28 | 0-reg reference (0 cycle) |
Direct Accessing Mode | 18 | 1-mem reference (3 Cycle) |
Memory Indirect Accessing Mode | 14 | 2-mem reference (3*2 Cycle) |
Indexed Accessing Mode | 15 | 1 -reg reference and 1-mem reference and 1-arithmetic calculation (0+3+2 Cycle) |
通过取频率与周期数的乘积之和,可以得出执行一条指令所需的总平均周期数。
执行一条指令所需的平均总周期数
= (0.25\times0) + (0.28\times0) + (0.18\times3) + (0.14\times6) + (0.15\times5)
= 2.13 Cycles
现在知道完成一个周期所花费的时间是
= 1/1GHz = 1 nanosecond
执行一条指令所需的平均时间
= 2.13 ∗ 1 = 2.13 nanosecond
因此,= 1条指令需要2.13纳秒。
需要1秒
= 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.
示例2:
考虑下面假设的使用不同操作数访问模式的机器。根据指令或CPI计算周期。
Instruction Type | Frequency | Cycles Consumed for Instruction |
---|---|---|
ALU Instruction | 45% | 4 |
Load Instruction | 35% | 3 |
Store instruction | 10% | 2 |
Branch instruction | 10% | 2 |
解决方案 :
在计算机体系结构中,每条指令的周期是处理器性能的一个方面:程序或程序片段的每条指令的平均时钟周期数。它是每个周期指令的乘法逆。
据认为–
ALU指令消耗4个周期。
加载指令消耗3个周期。
存储指令消耗2个周期。
分支指令消耗2个周期。
因此,我们可以通过获取周期和频率的乘积来获得CPI。
CPI = 4*0.45 + 3*0.35 + 2*0.1 + 2*0.1
= 6.85 Cycles/Instruction