克服嵌入式CPU性能瓶頸
過去幾年,采用多線程或多內(nèi)核CPU的微處理器架構(gòu)有了長足的發(fā)展?,F(xiàn)在它們已經(jīng)成為臺式電腦的標(biāo)準(zhǔn)配置,并且在高端嵌入式市場的CPU中也已非常普及。這種發(fā)展是想要獲得更高性能的處理器設(shè)計師推動的結(jié)果。但硅片技術(shù)已經(jīng)達(dá)到性能極限。滿足不斷提高的處理能力需求的解決方案,高度依賴于像在基于微處理器的系統(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億個。功耗也在緩慢增加,高的可達(dá)130W,當(dāng)然這取決于具體型號。然而,這些新處理器的時鐘頻率卻不再增加,保持在3.5GHz左右。
時鐘頻率停滯不前的原因之一是目前的集成電路已經(jīng)達(dá)到功率密度的物理極限,產(chǎn)生的熱量已經(jīng)達(dá)到芯片封裝能夠散發(fā)的極限,因此硬件設(shè)計師必須限制頻率的提高。Intel的確從未為功效而犧牲性能,但如今的物理限制使得他們只能在功耗上面做文章。
一些公式可以更好地展示頻率和晶體管數(shù)量是如何影響芯片功耗的。一些簡單的數(shù)學(xué)關(guān)系可以讓我們清楚地看出為什么這些參數(shù)在當(dāng)前設(shè)計中是如此重要。
下列公式顯示了芯片功耗與工作頻率和其它系數(shù)的關(guān)系。
這是用于當(dāng)前集成電路的主流半導(dǎo)體技術(shù)——CMOS技術(shù)的功耗表達(dá)式。公式的第一部分(加數(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)就變得突出了。
評論