過去幾年,采用多線程或多內(nèi)核CPU的微處理器架構(gòu)有了長足的發(fā)展?,F(xiàn)在它們已經(jīng)成為臺式電腦的標(biāo)準(zhǔn)配置,并且在高端嵌入式市場的CPU中也已非常普及。這種發(fā)展是想要獲得更高性能的處理器設(shè)計師推動的結(jié)果。但硅片技術(shù)已經(jīng)達到性能極限。滿足不斷提高的處理能力需求的解決方案,高度依賴于像在基于微處理器的系統(tǒng)級芯片(SoC)中復(fù)制內(nèi)核處理器這樣的架構(gòu)化解決方案。
戈登·摩爾在1965年提出的摩爾定律指出,隨著晶體管尺寸的縮小,每平方英寸硅片面積上可以集成的晶體管數(shù)量每兩年會翻一番。當(dāng)然,這個“定律”并不是一種物理規(guī)律,而是根據(jù)60年代和70年代對技術(shù)的觀察經(jīng)驗得出的一個猜想。但它從第一次被提出到現(xiàn)在都非常準(zhǔn)確——并且至少在下一個十年中有望延續(xù)其正確性。
摩爾定律一直能保持正確性的原因是,縮小芯片上元件尺寸的能力使得設(shè)計師能夠不斷提高處理器、存儲器等器件中的晶體管密度。由于晶體管越來越小,設(shè)計師可以在處理器中增加更多的功能單元,并在相同面積上實現(xiàn)更加復(fù)雜的架構(gòu)。
由于這種更高的密度,像分支預(yù)測或亂序執(zhí)行等技術(shù)在現(xiàn)代處理器中已經(jīng)很普及,雖然它們非常耗用資源。這些技術(shù)提高了每周期執(zhí)行指令數(shù)(IPC),即提高了指令吞吐量,這是影響處理器總體性能的兩大基本根源之一。更小的晶體管尺寸還可以支持更高的時鐘速率。當(dāng)晶體管的柵極長度縮短1/k時,電路延時也可以減少同樣的量。隨著電路延時的減少,晶體管開關(guān)時間也相應(yīng)縮短,因此時鐘速率可以提高k倍。處理器工作在更高頻率可以提供更高的性能,但需要付出一定的代價。
然而,現(xiàn)在設(shè)計遇到了一些實際的限制。隨著晶體管尺寸的進一步縮小,晶體管密度和芯片頻率的提高顯得非常有限,而影響越來越大。其中更高的功耗和更大的傳輸延時是最令人擔(dān)心的兩大因素,也是影響進一步發(fā)展的主要障礙。
芯片功耗
芯片功耗和相關(guān)的散熱問題正在成為硬件設(shè)計師面臨的一個巨大障礙。隨著晶體管數(shù)量的不斷增加,當(dāng)前處理器在很小的面積上就需要相當(dāng)大的能量。這意味著需要散發(fā)很高的功率密度。問題不僅在于晶體管的數(shù)量,高的工作頻率對功耗也有很大的影響,下面還會討論到。
為了對過去幾十年中這些參數(shù)的演變有一個印象,圖1顯示了在20年時間內(nèi)Intel的x86架構(gòu)中晶體管數(shù)量和工作頻率的增加情況,最早的數(shù)據(jù)來自80386架構(gòu)——第一個32位x86處理器。
圖1:X86架構(gòu)中的晶體管數(shù)量和頻率演變。
注意,上述兩個參數(shù)都是用對數(shù)刻度標(biāo)示的,這也表明了它們進步幅度之大。在功耗方面,圖2顯示了這些處理器的典型功耗演變情況,這次采用的是線性刻度。
圖2:不同代X86處理器的功耗演變。
晶體管數(shù)量在持續(xù)增加,一些最新的Intel Core i7處理器中的晶體管數(shù)量已經(jīng)超過22億個。功耗也在緩慢增加,高的可達130W,當(dāng)然這取決于具體型號。然而,這些新處理器的時鐘頻率卻不再增加,保持在3.5GHz左右。
時鐘頻率停滯不前的原因之一是目前的集成電路已經(jīng)達到功率密度的物理極限,產(chǎn)生的熱量已經(jīng)達到芯片封裝能夠散發(fā)的極限,因此硬件設(shè)計師必須限制頻率的提高。Intel的確從未為功效而犧牲性能,但如今的物理限制使得他們只能在功耗上面做文章。
一些公式可以更好地展示頻率和晶體管數(shù)量是如何影響芯片功耗的。一些簡單的數(shù)學(xué)關(guān)系可以讓我們清楚地看出為什么這些參數(shù)在當(dāng)前設(shè)計中是如此重要。
下列公式顯示了芯片功耗與工作頻率和其它系數(shù)的關(guān)系。
這是用于當(dāng)前集成電路的主流半導(dǎo)體技術(shù)——CMOS技術(shù)的功耗表達式。公式的第一部分(加數(shù))是芯片的動態(tài)功耗(也就是晶體管開關(guān)時由容性負(fù)載充放電引起的功耗),代表芯片執(zhí)行的有用工作。A是活躍系數(shù),代表每個時鐘周期中進行開關(guān)的晶體管比例(因為每個時鐘周期中并不是所有晶體管都必須開關(guān));C是晶體管的容性負(fù)載;V是電壓;f是頻率。
公式中的第2個加數(shù)是由于短時間短路電流(ISC)引起的少量動態(tài)功耗,這個電流是在有限的上升或下降時間t內(nèi)從晶體管電壓源流到地的電流。最后一個加數(shù)是靜態(tài)功耗,即由于漏電流(Ileak)引起的功耗,這也是唯一在加電,但不活動的電路中存在的功耗。這種功耗適用于整個電路,與晶體管狀態(tài)無關(guān),因此該項中沒有活躍系數(shù)。
從公式的第一項可以看出為何功耗只是呈線性增加,而頻率呈對數(shù)增加,這是因為電壓是二次方的關(guān)系。
工程師能夠?qū)⑦@個電壓從5V減小到1V以下,從而幫助他們控制住功耗同時不降低性能。遺憾的是,許多因素是相互影響的,工程師必須不斷進行折衷。例如,想象一下我們想要通過降低最初設(shè)置在2V的電源電壓來減小芯片的動態(tài)功耗(只考慮公式中的第一項)。如果我們能夠?qū)㈦娫措妷航档偷?.7V,雖然電壓只下降了15%,但功耗可以顯著下降28%。然而,降低電源電壓對電路的最大頻率和晶體管的閾值電壓(晶體管的導(dǎo)通電壓)有副作用。
在我們這個例子中,如果閾值電壓為0.5V,電路工作頻率為4GHz,那么為了保持相同的工作頻率,必須將閾值電壓降低到大約0.32V。然而,這樣做也許是不可行的,因為閾值電壓依賴于一些技術(shù)參數(shù),當(dāng)超出一定的范圍時,不改變半導(dǎo)體制造工藝是不可能繼續(xù)減小的。如果不改變閾值電壓,最大頻率將降低到3GHz,降幅為25%。
另一方面,即使你能夠降低電源電壓和閾值電壓并且不影響性能,但漏電流與閾值電壓呈指數(shù)依賴關(guān)系:
電壓VT是熱電壓,取決于絕對溫度T。k是玻爾茲曼常數(shù),q是電子上的電荷量。在常溫時熱電壓值大約為30mV。當(dāng)相比于熱電壓有較大的閾值電壓時,漏電流效應(yīng)可以忽略,但當(dāng)閾值電壓較小——大約在100mV左右時,漏電流效應(yīng)就變得突出了。
另外,不僅熱電壓與溫度有關(guān),閾值電壓通常也隨溫度變化而變化,這兩種變化將疊加在一起共同影響漏電流。漏電流增加意味著靜態(tài)功耗的增加,因此對于低電壓值而言,電壓降低技術(shù)存在一定的實用性限制。
圖3顯示了兩個不同溫度下的這些效應(yīng)。T=300K的第一條曲線顯示了與閾值電壓的指數(shù)關(guān)系。T=330K的第二條曲線是考慮了閾值電壓隨溫度變化因素下的估計數(shù)據(jù)。這樣,橫坐標(biāo)仍然代表標(biāo)稱閾值電壓,但晶體管的實際閾值電壓因溫度效應(yīng)而偏向更低的值,因此對漏電流有較大的影響。
圖3:閾值電壓和溫度對漏電流的影響。
漏電流還與絕緣柵厚度有關(guān)。當(dāng)采用非常薄的柵極電介質(zhì)時,電子可以穿過絕緣層形成隧道效應(yīng),進而形成隧道電流,導(dǎo)致高功耗。鑒于使用32nm及以下工藝時的實際柵極長度,這種效應(yīng)在當(dāng)前半導(dǎo)體技術(shù)工藝中是非常重要的。
當(dāng)然,處理器內(nèi)核并不是芯片中唯一耗能的器件。比如內(nèi)存也消耗相當(dāng)大的能量,現(xiàn)代處理器專門開辟了大塊裸片區(qū)域來集成多級緩存。
工程師通常會應(yīng)用多種設(shè)計技術(shù)來減少內(nèi)存的漏電流或活動系數(shù)(功耗公式中的A系數(shù)),進而達到降低功耗的目的。
例如,緩存等級的層次化組織不僅可以改善數(shù)據(jù)訪問時間,而且有助于降低消耗的功率,因為更小更近的緩存所需能量比更大更遠(yuǎn)的緩存要少。這種結(jié)構(gòu)化解決方案在降低功耗的同時能保持性能不變。與這種想法類似,另外一個常用的解決方案是將內(nèi)存組織成庫的形式來提高效率。這種情況下可以只激活正在訪問的庫,從而節(jié)省能量。
然而,追求更高性能并不總是正確的做事方式。有時以一定的吞吐量代價來降低功耗就足夠了。有些處理器專門用于特定的應(yīng)用,它們總是做相同類型的運算,比如DSP。音頻處理、數(shù)字濾波器或數(shù)據(jù)壓縮算法是這些器件的典型應(yīng)用,評估這些應(yīng)用的指標(biāo)是一次操作需要多少能量、這些處理器做這些運算需要花多長時間。
一個處理器如果在執(zhí)行算法時一開始就比其它處理器花更多的時間但消耗更少的功率,那么最終就具有更高的能效值。衡量這種效率的一個指標(biāo)是MIPS/W(每秒每瓦百萬指令數(shù))。雖然必須關(guān)注指標(biāo)MIPS,但一般來說具有更高MIPS/W的器件被認(rèn)為具有更高的效率,這對嵌入式設(shè)備特別是電池供電設(shè)備來說尤其讓人感興趣。事實上,如今在服務(wù)器和數(shù)據(jù)中心領(lǐng)域人們更樂意使用更高能效的處理器。
芯片的傳輸延時
限制晶體管密度提高和芯片工作頻率增加的另外一個主要因素是走線的傳輸延時?,F(xiàn)代處理器中使用的GHz數(shù)量級高頻時鐘意味著一個時鐘周期不到一個納秒。這么短的周期時間正在成為影響信號傳播的一個問題。
減小芯片的特征尺寸將造成柵極長度和晶體管電容減小,從而有利于提高時鐘速率,克服容量范圍限制。但芯片上的走線由于更高的電阻和電容而變得越來越慢。走線的寬度和高度變小是走線面積縮小的根本原因,并導(dǎo)致更高的電阻。
由于走線表面積變小,與表面積有關(guān)的電容跟著降低,但相鄰走線之間的距離也在縮小,最終形成更高的耦合電容。耦合電容增加的速度大于表面電容減小的速度,因此抵消了表面電容減少效應(yīng),并形成了更高總體走線電容的組合效應(yīng)。
走線傳輸延時直接正比于電阻與電容的乘積:Rw×Cw,因此隨著每一代縮小特征尺寸的新技術(shù)的推出,走線延時變得越來越長。隨著時鐘速率的加快和走線傳輸速度的變慢,信號可以傳輸?shù)木嚯x以及一個時鐘周期內(nèi)可以到達的芯片面積將變小,最終導(dǎo)致通信范圍成為約束條件的新情況。
對于具體的微架構(gòu)來說,這不會成為大問題,因為電路尺寸將以二次方的比例縮小。但為了充分利用更小的晶體管尺寸并獲得更高的IPC,設(shè)計師正在開發(fā)更為復(fù)雜的微架構(gòu),生成更深的流水線,增加更多的執(zhí)行單元,并使用大的微架構(gòu)化結(jié)構(gòu)?,F(xiàn)在,芯片上更高的通信延時將對尺寸甚至這些結(jié)構(gòu)的布局和最大工作頻率造成實際的限制。
舉個例子,Intel Pentium 4中使用的錯誤預(yù)測流水線設(shè)計要求的級數(shù)是Pentium Ⅲ流水線的兩倍。由于具有更高的時鐘速率和走線延時,流水線必須劃分為更小的段,并且在每級流水線中做更少的工作。但走線延時變得如此之大,以致于Pentium 4流水線中有兩級是額外增加的,用于將信號從一級驅(qū)動到下一級,以便有足夠的時間去執(zhí)行要求的運算,因為有很多的時鐘周期時間用在了信號抵達下一級上。
在ARM公司發(fā)布的高級微控制器總線架構(gòu)(AMBA)規(guī)范中,可以看到走線延時如何影響設(shè)計的另一個類似例子。在第一版AMBA規(guī)范中引入、設(shè)計用于互連高性能系統(tǒng)模塊的高級系統(tǒng)總線(ASB)使用了雙向總線和主/從架構(gòu)。
在第二版AMBA規(guī)范中,引入了高級高性能總線(AHB),用于改善對更高性能的支持,并替代ASB。在這個新的總線規(guī)范中,獨立于其它功能的雙向總線被替換為復(fù)用總線機制。這種修改初看起來似乎增加了不必要的走線和電路復(fù)雜性。但在很高性能系統(tǒng)中的走線延時效應(yīng)使得有必要引入中繼驅(qū)動器(與Pentium 4例子中看到的一樣)。這在形成組合式復(fù)用總線的單向總線中是可行的,但在雙向總線中很難實現(xiàn)。
面臨的挑戰(zhàn)
我們已經(jīng)看到有兩個主要的技術(shù)性限制在不斷影響摩爾定律和和處理器性能的持續(xù)改進。但技術(shù)在不斷發(fā)展??s小特征尺寸有助于提高晶體管密度和頻率,而設(shè)計師也仍在設(shè)法縮小晶體管尺寸,單顆芯片上的晶體管數(shù)量有望超過10億個。
業(yè)界預(yù)測,半導(dǎo)體技術(shù)工藝將在2014年達到35nm柵極長度,但實際上從2011年開始就已經(jīng)有人在用22nm工藝制造產(chǎn)品了。功耗和傳輸延時問題激勵著業(yè)界每個人去研究制造晶體管的新材料,而在現(xiàn)代處理器中已經(jīng)在應(yīng)用新的組織化和架構(gòu)化解決方案。高k值氧化柵(k指的是材料的介電常數(shù))正在替代用了幾十年的二氧化硅柵極電介質(zhì),它能實現(xiàn)更薄的絕緣層并更好地控制漏電流。
新的低k值電介質(zhì)的使用使得減小耦合電容以及傳輸延時成為可能。實現(xiàn)單個大型單片內(nèi)核的傳統(tǒng)微架構(gòu)正在演變?yōu)楦唵蔚亩鄡?nèi)核微架構(gòu),后者允許占大部分的局部通信,從而避免了大的延時。
最近一些芯片制造商,如Intel公司,發(fā)布了三維集成電路。Intel最新的Ivy Bridge系列處理器作為Sandy Bridge系列的后繼產(chǎn)品,采用了新的三柵極(tri-gate)晶體管技術(shù),在提升處理能力的同時可以降低所需的能耗。
使用3D晶體管替代以前的平面結(jié)構(gòu)晶體管后,各級流水線可以彼此垂直堆疊,從而能夠有效地縮短塊與塊之間的距離,消除走線延時效應(yīng)。據(jù)Intel介紹,公司的22nm 3D Tri-Gate晶體管功耗在相同時鐘頻率下不到32nm芯片上的平面晶體管的一半,超過了從一代工藝升級到下一代時通常所取得的效果。
多內(nèi)核架構(gòu)的發(fā)展非常迅速。例如,Tilera公司已經(jīng)在單顆芯片上成功開發(fā)出首個100內(nèi)核的處理器。為了達到這種集成度,Tilera將處理器與他們的設(shè)計師稱之為“瓦片(tile)”的通信開關(guān)組合在一起。通過組合這些瓦片,Tilera公司能夠搭建出一個形成網(wǎng)狀網(wǎng)的硅片。處理器一般通過總線互相連接,但隨著處理器數(shù)量的增加,這種總線很快變成了瓶頸。借助Tilera用瓦片平鋪出的網(wǎng),每個處理器連接一個開關(guān),它們可以像點到點網(wǎng)絡(luò)那樣相互通信。除此之外,每個瓦片可以獨立運行一個實時操作系統(tǒng)?;蛘吣阋部梢詫⒍鄠€瓦片組合在一起,運行像SMP Linux那樣的操作系統(tǒng)。
目前業(yè)內(nèi)正在研究開發(fā)令人稱奇的石墨烯晶體管,每個晶體管都是用一片僅一個原子厚度的碳制造的。理論上,這些晶體管支持非常高的工作頻率,可以高達1THz(1000GHz),甚至可以在柔性基板上制造這些晶體管。不過這種技術(shù)還面臨許多挑戰(zhàn),我們可能還要等幾年才能看到這些先進技術(shù)實用化。
本文小結(jié)
目前業(yè)界面臨的問題是如何充分發(fā)揮這種巨大的并行處理能力。但嵌入式軟件行業(yè)已經(jīng)在開發(fā)強大的工具來幫助構(gòu)建新的、復(fù)雜的許多內(nèi)核應(yīng)用世界。
針對共享和分布式存儲架構(gòu)的OpenMP和MPI建議、以及針對不同種類系統(tǒng)的并行編程制定的開放標(biāo)準(zhǔn)OpenCL(開放計算語言)都非常有前途。利用OpenGL可以為混合有多內(nèi)核CPU、GPU甚至DSP的系統(tǒng)開發(fā)出合適的軟件。但最大的挑戰(zhàn)可能是改變編程人員的想法,使他們學(xué)會如何編寫出適合在這些系統(tǒng)運行的高度并行和可靠的軟件。