📜  计算机器的周期数和平均操作数获取率

📅  最后修改于: 2021-09-27 15:12:49             🧑  作者: Mango

在本文中,我们将了解当机器使用不同的操作数访问方式时如何计算机器的平均操作数获取率。

示例-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-reg 引用或 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