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