指令平均周期数

指令平均周期数(),也称每指令周期,即执行在计算机体系结构中一条指令所需要的平均时钟周期(机器主频的倒数)数。

其方程为:
CPI = \frac{\Sigma_i(IC_i)(CC_i)}{IC}

其中IC_i是第i种指令的数量,CC_i是第i种指令的时钟周期数,IC=\Sigma_i(IC_i)是总的指令数,对于一个给定的基准测试过程,总和为所有指令类型。

一个完整的计算机系统执行时间,即指令周期指从内存中取出并执行该条指令所用的全部时间,它取决于硬件结构和各部件的性能。

解释
假设目前为,执行一条指令一般分为五个阶段:
#取指周期
#译码周期
#执行周期
#访问内存
#写回周期

每一条指令都需要顺序经过这五个步骤,每个需要一个时钟周期,如果在一个没有流水线技术的处理器中,只有当前一条指令的第五阶段执行完,下一条指令的第一阶段才会开始运行,因此,每执行一条指令的时钟周期就是5(CPI=5),这种情况下,处理器被称为亚标量的。在有流水线技术的处理器中,通过利用指令级并行,每一个时钟周期,都有一条指令被取得。因此,因为在理论上同一时刻,在流水线的五个周期上有五个不同的指令,所以在每一个时钟周期中,都会有一个指令完成第五阶段,所以平均执行每一条指令的时钟周期就是1(CPI=1),这样的处理器称为标量处理器

示例
示例1
对于多周期MIPS架构,有以下五种指令:
*Load(5周期)
*Store(4周期)
*R_type(4周期)
*Branch(3周期)
*Jump(3周期)

如果程序中有

*50% load 指令
*25% store 指令
*15% R-type 指令
*8% branch 指令
*2% jump 指令

其CPI为

\text{CPI} = \frac{5 \times 50 + 4 \times 25 + 4 \times 15 + 3 \times 8 + 3 \times 2}{100} = 4.4

参考

评论 (0)

  • 还没有评论,来抢沙发吧。