指令平均周期数
外观
指令平均周期数(英語:Cycle Per Instruction, CPI),也称每指令周期,即执行在计算机体系结构中一条指令所需要的平均时钟周期(机器主频的倒数)数[1]。
其方程为:
其中是第i种指令的数量,是第i种指令的时钟周期数,是总的指令数,对于一个给定的基准测试过程,总和为所有指令类型。
一个完整的计算机系统执行时间,即指令周期指从内存中取出并执行该条指令所用的全部时间,它取决于硬件结构和各部件的性能[2]。
解释
[编辑]假设目前为经典RISC流水线,执行一条指令一般分为五个阶段:
- 取指周期
- 译码周期
- 执行周期
- 访问内存
- 写回周期
每一条指令都需要顺序经过这五个步骤,每个需要一个时钟周期,如果在一个没有流水线技术的处理器中,只有当前一条指令的第五阶段执行完,下一条指令的第一阶段才会开始运行,因此,每执行一条指令的时钟周期就是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为
参考
[编辑]- ^ 王换招编著. 计算机组成与设计. 北京:清华大学出版社. 2013.08: 28. ISBN 978-7-302-32884-1.
- ^ 王换招编著. 计算机组成与设计. 北京:清华大学出版社. 2013.08: 27. ISBN 978-7-302-32884-1.