從4004到core i7:處理器的進(jìn)化史(3)-4-第一次加速
前面有位童鞋表示對POWER很感興趣,在這里現在不講,只貼一張7的die photo,上面已經(jīng)透露了很多有用的信息了~
本文引用地址:http://dyxdggzs.com/article/233547.htm
45nm
1,200,000 transistors
8 core-32 thread
32MB L3$
32 slot max
呼~(yú)終于忙得差不多鳥(niǎo)~
在這個(gè)帖子中,我們會(huì )看到處理器設計中的第一次重大飛躍:流水線(xiàn)(pipeline)
為了理解什么是流水線(xiàn),我們先來(lái)看一看一條汽車(chē)裝配線(xiàn)上的情況:
假設一輛汽車(chē)從無(wú)到有需要以下4個(gè)步驟:
焊接車(chē)身
底盤(pán)與車(chē)身結合
裝入發(fā)動(dòng)機
裝上輪子
我們再假設發(fā)動(dòng)機、車(chē)身的鋼板、輪子等等零件都是事先準備好的,它們的存儲量是充足的。
假設我們有一臺機床,上面有各種機械手,那么我們會(huì )怎么造汽車(chē)呢?
焊接車(chē)身-》底盤(pán)與車(chē)身結合-》裝入發(fā)動(dòng)機-》裝上輪子
假設上面每一個(gè)環(huán)節需要1分鐘,那么我們的生產(chǎn)速度是0.25輛/分鐘。
當然我們不會(huì )這么做,因為福特早就替我們想好了更高效的解決方案:
準備4臺機床,每臺機床都僅僅具備一個(gè)環(huán)節的工具即可。每臺車(chē)在完成一個(gè)環(huán)節的組裝后就立即流向下一個(gè)環(huán)節。
這樣我們可以保證4臺機床每一臺都不會(huì )空閑,并且得到了相當可觀(guān)的生產(chǎn)速度提升:1輛/分鐘。
我們終于有了第一個(gè)加速算法:
將整體工作分成N個(gè)環(huán)節。當這N個(gè)環(huán)節互相獨立的時(shí)候,最多可以獲得N倍的性能提升。
對于CPU來(lái)說(shuō),這就相當于主頻提升了N 倍!
你可能時(shí)常聽(tīng)到所謂的超流水線(xiàn),就是環(huán)節特別多的流水線(xiàn)。
現在你可能可以理解這些流水線(xiàn)被設計出來(lái)的初衷了:把任務(wù)分割的越細(流水線(xiàn)越深),主頻理論上來(lái)說(shuō)就越高。當然,我們會(huì )在后面看到,過(guò)深過(guò)細的流水線(xiàn)反而會(huì )損害性能。比如說(shuō),intel的netburst。
但是,當這N個(gè)環(huán)節互相之間產(chǎn)生相互依賴(lài)的時(shí)候該怎么辦呢?
看看以下的偽代碼:
...
mov reg1,0
nop(= no operation)
...
nop
mov reg1,1
mov reg2,reg1
nop
nop
...
再回憶一下我們前面說(shuō)過(guò)的指令執行的環(huán)節:
IF->ID->OC->EX->WB
評論