克服嵌入式CPU性能瓶頸
過去幾年,采用多線程或多內(nèi)核CPU的微處理器架構(gòu)有了長(zhǎng)足的發(fā)展?,F(xiàn)在它們已經(jīng)成為臺(tái)式電腦的標(biāo)準(zhǔn)配置,并且在高端嵌入式市場(chǎng)的CPU中也已非常普及。這種發(fā)展是想要獲得更高性能的處理器設(shè)計(jì)師推動(dòng)的結(jié)果。但硅片技術(shù)已經(jīng)達(dá)到性能極限。滿足不斷提高的處理能力需求的解決方案,高度依賴于像在基于微處理器的系統(tǒng)級(jí)芯片(SoC)中復(fù)制內(nèi)核處理器這樣的架構(gòu)化解決方案。
戈登·摩爾在1965年提出的摩爾定律指出,隨著晶體管尺寸的縮小,每平方英寸硅片面積上可以集成的晶體管數(shù)量每?jī)赡陼?huì)翻一番。當(dāng)然,這個(gè)“定律”并不是一種物理規(guī)律,而是根據(jù)60年代和70年代對(duì)技術(shù)的觀察經(jīng)驗(yàn)得出的一個(gè)猜想。但它從第一次被提出到現(xiàn)在都非常準(zhǔn)確——并且至少在下一個(gè)十年中有望延續(xù)其正確性。
摩爾定律一直能保持正確性的原因是,縮小芯片上元件尺寸的能力使得設(shè)計(jì)師能夠不斷提高處理器、存儲(chǔ)器等器件中的晶體管密度。由于晶體管越來越小,設(shè)計(jì)師可以在處理器中增加更多的功能單元,并在相同面積上實(shí)現(xiàn)更加復(fù)雜的架構(gòu)。
由于這種更高的密度,像分支預(yù)測(cè)或亂序執(zhí)行等技術(shù)在現(xiàn)代處理器中已經(jīng)很普及,雖然它們非常耗用資源。這些技術(shù)提高了每周期執(zhí)行指令數(shù)(IPC),即提高了指令吞吐量,這是影響處理器總體性能的兩大基本根源之一。更小的晶體管尺寸還可以支持更高的時(shí)鐘速率。當(dāng)晶體管的柵極長(zhǎng)度縮短1/k時(shí),電路延時(shí)也可以減少同樣的量。隨著電路延時(shí)的減少,晶體管開關(guān)時(shí)間也相應(yīng)縮短,因此時(shí)鐘速率可以提高k倍。處理器工作在更高頻率可以提供更高的性能,但需要付出一定的代價(jià)。
然而,現(xiàn)在設(shè)計(jì)遇到了一些實(shí)際的限制。隨著晶體管尺寸的進(jìn)一步縮小,晶體管密度和芯片頻率的提高顯得非常有限,而影響越來越大。其中更高的功耗和更大的傳輸延時(shí)是最令人擔(dān)心的兩大因素,也是影響進(jìn)一步發(fā)展的主要障礙。
芯片功耗
芯片功耗和相關(guān)的散熱問題正在成為硬件設(shè)計(jì)師面臨的一個(gè)巨大障礙。隨著晶體管數(shù)量的不斷增加,當(dāng)前處理器在很小的面積上就需要相當(dāng)大的能量。這意味著需要散發(fā)很高的功率密度。問題不僅在于晶體管的數(shù)量,高的工作頻率對(duì)功耗也有很大的影響,下面還會(huì)討論到。
為了對(duì)過去幾十年中這些參數(shù)的演變有一個(gè)印象,圖1顯示了在20年時(shí)間內(nèi)Intel的x86架構(gòu)中晶體管數(shù)量和工作頻率的增加情況,最早的數(shù)據(jù)來自80386架構(gòu)——第一個(gè)32位x86處理器。
圖1:X86架構(gòu)中的晶體管數(shù)量和頻率演變。
注意,上述兩個(gè)參數(shù)都是用對(duì)數(shù)刻度標(biāo)示的,這也表明了它們進(jìn)步幅度之大。在功耗方面,圖2顯示了這些處理器的典型功耗演變情況,這次采用的是線性刻度。
圖2:不同代X86處理器的功耗演變。
晶體管數(shù)量在持續(xù)增加,一些最新的Intel Core i7處理器中的晶體管數(shù)量已經(jīng)超過22億個(gè)。功耗也在緩慢增加,高的可達(dá)130W,當(dāng)然這取決于具體型號(hào)。然而,這些新處理器的時(shí)鐘頻率卻不再增加,保持在3.5GHz左右。
時(shí)鐘頻率停滯不前的原因之一是目前的集成電路已經(jīng)達(dá)到功率密度的物理極限,產(chǎn)生的熱量已經(jīng)達(dá)到芯片封裝能夠散發(fā)的極限,因此硬件設(shè)計(jì)師必須限制頻率的提高。Intel的確從未為功效而犧牲性能,但如今的物理限制使得他們只能在功耗上面做文章。
一些公式可以更好地展示頻率和晶體管數(shù)量是如何影響芯片功耗的。一些簡(jiǎn)單的數(shù)學(xué)關(guān)系可以讓我們清楚地看出為什么這些參數(shù)在當(dāng)前設(shè)計(jì)中是如此重要。
下列公式顯示了芯片功耗與工作頻率和其它系數(shù)的關(guān)系。
這是用于當(dāng)前集成電路的主流半導(dǎo)體技術(shù)——CMOS技術(shù)的功耗表達(dá)式。公式的第一部分(加數(shù))是芯片的動(dòng)態(tài)功耗(也就是晶體管開關(guān)時(shí)由容性負(fù)載充放電引起的功耗),代表芯片執(zhí)行的有用工作。A是活躍系數(shù),代表每個(gè)時(shí)鐘周期中進(jìn)行開關(guān)的晶體管比例(因?yàn)槊總€(gè)時(shí)鐘周期中并不是所有晶體管都必須開關(guān));C是晶體管的容性負(fù)載;V是電壓;f是頻率。
公式中的第2個(gè)加數(shù)是由于短時(shí)間短路電流(ISC)引起的少量動(dòng)態(tài)功耗,這個(gè)電流是在有限的上升或下降時(shí)間t內(nèi)從晶體管電壓源流到地的電流。最后一個(gè)加數(shù)是靜態(tài)功耗,即由于漏電流(Ileak)引起的功耗,這也是唯一在加電,但不活動(dòng)的電路中存在的功耗。這種功耗適用于整個(gè)電路,與晶體管狀態(tài)無關(guān),因此該項(xiàng)中沒有活躍系數(shù)。
從公式的第一項(xiàng)可以看出為何功耗只是呈線性增加,而頻率呈對(duì)數(shù)增加,這是因?yàn)殡妷菏嵌畏降年P(guān)系。
工程師能夠?qū)⑦@個(gè)電壓從5V減小到1V以下,從而幫助他們控制住功耗同時(shí)不降低性能。遺憾的是,許多因素是相互影響的,工程師必須不斷進(jìn)行折衷。例如,想象一下我們想要通過降低最初設(shè)置在2V的電源電壓來減小芯片的動(dòng)態(tài)功耗(只考慮公式中的第一項(xiàng))。如果我們能夠?qū)㈦娫措妷航档偷?.7V,雖然電壓只下降了15%,但功耗可以顯著下降28%。然而,降低電源電壓對(duì)電路的最大頻率和晶體管的閾值電壓(晶體管的導(dǎo)通電壓)有副作用。
在我們這個(gè)例子中,如果閾值電壓為0.5V,電路工作頻率為4GHz,那么為了保持相同的工作頻率,必須將閾值電壓降低到大約0.32V。然而,這樣做也許是不可行的,因?yàn)殚撝惦妷阂蕾囉谝恍┘夹g(shù)參數(shù),當(dāng)超出一定的范圍時(shí),不改變半導(dǎo)體制造工藝是不可能繼續(xù)減小的。如果不改變閾值電壓,最大頻率將降低到3GHz,降幅為25%。
另一方面,即使你能夠降低電源電壓和閾值電壓并且不影響性能,但漏電流與閾值電壓呈指數(shù)依賴關(guān)系:
電壓VT是熱電壓,取決于絕對(duì)溫度T。k是玻爾茲曼常數(shù),q是電子上的電荷量。在常溫時(shí)熱電壓值大約為30mV。當(dāng)相比于熱電壓有較大的閾值電壓時(shí),漏電流效應(yīng)可以忽略,但當(dāng)閾值電壓較小——大約在100mV左右時(shí),漏電流效應(yīng)就變得突出了。
評(píng)論