假设M5是一个的五阶段流水线实现。
我知道五级管道有以下几个步骤:
IF -- instruction fetch (and PC update)
ID -- instruction decode (and get operands from registers)
EX -- ALU operation (can be effective address calculation)
MA -- memory access
WB -- write back (results written to register(s))
假设有100条MIPS指令,指令混合如下:
Loads 23%, Stores 12%, Conditional Branches 12%, Jumps
8% and R-type instructions 45%.
The CPU clock frequency is 1.2 GHz
我正在计算执行这100条指令的时间。我知道如何使用这个公式计算非管道的时间。
ExTime = Instruction count * CPI * Clock period in seconds
我使用1/f = 8.33 * 10^-10 seconds
将频率转换为周期,但我不确定如何计算此管道的执行时间,我是否需要知道管道实现的周期?
请帮帮我,因为我在网上找不到像样的例子。谢谢
编辑
我想我找到答案了!
我发现了一些信息
INSTRUCTION LATENCY = 5 time units THEREFORE
INSTRUCTION THROUGHPUT = 5 * (1 / 5) = 1 instruction per time unit
So in this case it would be:
ExTime in seconds = Number of instructions * clock cycle period in seconds
发布于 2014-10-08 01:55:12
忽略分支/跳转刷新所用的时间:
给定指令混合中的指令占用的平均周期数=
(0.23)*5 + (0.12)*4 + (0.12)*4 + (0.08)*4 + (0.45)*4 = 4.23个时钟周期
(加载需要5个周期,存储: 4,R: 4,跳转/分支: 4)
现在,
平均一条指令占用的周期数= 4.23
=>平均100条指令占用的周期数= 423
时钟频率=1.2
1个周期所用的=>时间=8.33×10^-10
423周期所用的=>时间= 3.5236 * 10^-7 = Ans
https://stackoverflow.com/questions/12404140
复制相似问题