主页(http://www.kuwanit.com):流水线与 CPU 时钟频率(四)
∫虼耍绻导噬喜⒉荒芨欤敲次颐堑背跷裁匆焉窭瓷杓屏魉吣兀?br>
首先,它或许确实不会更快,但我们可以在包装盒上写上“4 Hz”而不是“1 Hz”。很不幸,数字是一个卖点。给一个电脑盲出示一个
4 Hz 的处理器和一个 1 Hz 的处理器,他将认为 4 Hz 的那一个更快,即使事实并非如此。
其次,也是更重要的,我们实际上还是能够利用流水线的优势,因此,毕竟能够使处理器运行的更快。但是怎么做呢?
装配线
举个例子,我们考虑一下汽车工厂的装配线。首先我们要做的就是把钢架焊接到一起。一旦焊接完毕之后,钢架向前传递,我们可以开始安装侧面板。完成之后,车身可以继续向前传递进行其它处理。
现在,让我们联系汽车装配线来类推一下,我们前面的那个四-段流水线模型有点小小的失误。这个错误就是:我们假定我们的处理器同时只能处理提取、译码、执行“或者”存储中的一项工作。因此,它首先提取,然后译码,接着执行,最后存储。这就好比是我们的汽车车间只有一名工人,他跑来跑去,先焊接,再上螺丝,接着安装轮胎,等等。
实际上,我们的处理器能够同时处理提取、译码、执行“以及”存储 —— 就象是在一个汽车车间,同时有许多工人在不断地焊接、上螺丝、安装轮胎。一旦第一个工人焊好了钢架(提取指令),他会坐在那里发呆,直到这辆车装好侧面板(译码)等等工作吗?他一完成,就把这辆车传给下一个工人,并且马上开始焊接“下一辆”车的骨架。
事实上,流水线的不同段更象是工人们本身。这就是说,有一个提取单元,一个译码单元,一个执行单元,等等,每一个操作都占用处理器的一个时钟频率。没有哪一个单元做全部四件事情,一个接一个,每一段都是一个独立的单元。在前面,我们假设提取单元在一个时钟周期内提取指令,然后在其它每个单元完成它们那部分工作时什么事都没做。但是,就象装配线上焊钢架的工人,提取单元并没有在那儿发呆直到执行和存储单元工作完毕,它立刻开始提取下一条指令了!看一看下面这张图表:
提取单元 译码单元 执行单元 存储单元
时钟周期一 指令1
时钟周期二 指令2 指令1
时钟周期三 指令3 指令2 指令1
时钟周期四 指令4 指令3 指令2 指令1
时钟周期五 指令5 指令4 指令3 指令2
第一个时钟周期之后(1/4 秒,@ 4 Hz),提取 瓿闪说谝惶踔噶畹墓ぷ鳎阉桓肼氲ピ谙乱桓鍪敝又芷诮写怼5牵崛〉ピ⒚挥性谀嵌却⒓纯继崛〉诙踔噶睢U庋龅慕峁牵谝惶踔噶钊匀恍枰母鍪敝又芷诓拍芡瓿桑且院笕茨苊恳桓鍪敝又芷诙纪瓿梢惶踔噶睢#ǖ比唬导是榭鲆日飧丛拥亩?..)
因此,在 10 秒钟时间段里(40 个时钟周期),我们的 4 Hz、4-段流水线处理器实际上将处理完 37
条指令(四个周期完成第一条指令,后来的 36 个周期每个周期完成一条指令),并不是我们前面预测的 10 条指令。这实际上是说,我们的四-段流水线处理器的
IPC 大约是每个时钟周期 0.9 条指令,比我们前面说的0.25 要大得多(显然比无流水线处理器的 1.0
IPC 还是要小一点)。虽然 IPC 要比 1 Hz 无流水线处理器低 10%,但是时钟频率要快上 400%,因此我们的四-段流水线处理器实际上还是一个快的多的设计。
(作者:萧恩责任编辑:)
扫码赢大奖
评论
* 网友发言均非本站立场,本站不在评论栏推荐任何网店、经销商,谨防上当受骗!
发表评论愿您的每句评论,都能给大家的生活添色彩,带来共鸣,带来思索,带来快乐。