假设:
所需的操作时间:
ps中的指令组合和操作时间:
25%负荷(600 ps)
10%存储(550 ps)
45%ALU指令(400 ps)
15%分支(350 ps)
5%跳跃(200 ps)
每条指令在1个时钟周期内执行
两种实施方式:固定长度和可变长度
哪种实施会更快,多少?
规则: CPU执行时间:IC * CPI * CCT
由于CPI = 1 ......
CPU执行时间:IC * CCT
我的问题是:
当实现具有可变/固定长度时,它意味着什么?
如何计算 CPU执行时间 singleclock 的值?
答案 0 :(得分:1)
当实现具有可变/固定长度时,它意味着什么?
固定长度时钟意味着每个时钟周期具有相同的周期,而与执行指令无关。可变长度时钟意味着不同的时钟周期可能具有不同的周期,具体取决于正在执行的指令。
因此,在固定时钟设计中,时钟周期必须至少为600 ps,这是执行任何指令所需的最长时间(加载指令)。在可变时钟设计中,我们可以按如下方式计算平均时钟周期:
Average CPU clock cycle = 600*25% + 550*10% + 400*45% + 350*15% + 200*5% = 447.5 ps
CPU执行时间的值 singleclock 计算
要确定哪个实施更快,您需要测量加速,定义为:
Speedup = CPU execution time(single) / CPU execution time(variable)
使用我们获得的CPU执行时间的定义(注意指令的数量是相同的):
Speedup = CPU execution time(single) / CPU execution time(variable)
= (Instruction count * Clock cycle time(single)) / (Instruction count * Clock cycle time(variable))
= Clock cycle time(single) / Clock cycle time(variable)
= 600 / 447.5 = 1.34
可变时钟设计的速度提高了1.34。
CPU执行时间变量在技术上等于每个执行指令的各个时钟周期时间之和。但我们使用平均时钟周期时间来计算加速。我们会以哪种方式获得相同的结果?让我们找出来吧!
假设有N个执行指令,让C1,C2,...,CN分别表示每个指令的循环时间。因此:
CPU execution time(variable) = C1 + C2 + ... + CN
= 600*25%*N + 550*10%*N + 400*45%*N + 350*15%*N + 200*5%*N
= N * average CPU clock cycle
所以他们是一样的。