取指、译码、执行这只需要一个时钟周期就能完成吗?不应该是一个机器周期吗?
先问是不是,再问为什么。
比如Pentium 4,其alu是以2倍时钟运作的,所以每个时钟,可以执行2个stage(简单指令发射)
也有处理器是一个stage超过一个时钟的。
注意,这里说的是一个stage,比如Pentium 4,有20级流水线,执行一条指令就需要起码20个时钟/2,只是流水线隐藏掉延迟而已。
以上还没有考虑乱序执行,IO的延迟,考虑了情况就更复杂了。
流水线的引入提高的只是得系统的Throughput (吞吐率),即全速工作时候,单位时间内执行的指令数目增加了。但是如果仅看单条指令的绝对执行时间,这个量必然是增加的:因为 每多插入一级D flip-flop必然引入sequencing overhead