最初設計的CPU結構簡單,內部不復雜。之所以制造它是為了讓機器自動跑程序,算數。
早期CPU都是單周期的,人們沒考慮那么多,性能啥的。就讓CPU每個時鍾周期跑一個指令,這些時鍾周期等長。這樣下來,有的指令跑完耗時長,有的指令跑完耗時短, 而CPU是走完一條指令再處理下一條的,給每個指令的時鍾周期都是相同的,那么木桶原理,時鍾周期肯定就是耗時最長的指令所需的時間。后來人們意識到了計算機的巨大威力,便開始專心制造更強的電子計算機。這時,為了提升CPU的速度,優化CPU的結構,有人設計了一套多周期CPU結構。對指令集的所有指令作分析,可以發現它們處理過程有相同的地方,那這下好了,我把所有的指令切成幾段基本操作(換句話說,所有的指令都可以看成是幾個基本操作的序列組成),例如:指令1可以看成{opA——>opC——>opV},指令2可以看成{opA——>opK——>opV——>opT}。然后讓時鍾周期適配op,而不是單條指令。每個指令需要多個周期(周期值較小)。這里的多周期CPU依然是逐條執行每個指令。下圖為一個多周期CPU的控制器狀態自動機。
舉例對比上面所述單周期CPU和多周期CPU的耗時:
CPU的指令集Ins中有多條指令,指令4耗時最長,執行一次它需要800ps。
單周期CPU的時鍾周期最少設為800ps。此時假如我們要執行指令1,2,3,4,5,6,那么總共耗時6x800ps=4800ps。
多周期CPU,分別可以把指令123456分解為3個op,2個op,4個op,8個op,3個op,5個op。每個op延時為100ps。那么假如我們要執行指令1,2,3,4,5,6,則總共耗時為(3+2+4+8+3+5)x100ps=2500ps。
這樣一對比多周期CPU相較於單周期CPU的優勢是不是很明顯啦。
在這之后,有人發現了上面所說的多周期CPU還可以改進優化提速,他把流水線的思想拿到了CPU設計上,允許指令並行執行,這樣一來速度又得到了提升。現在的CPU基本都是使用流水線技術設計的CPU。