CPU時鐘頻率在過去5年里沒有增加是很多不同類別的原因?qū)е碌?。?dāng)設(shè)計一個CPU的微架構(gòu)時,其中一個關(guān)鍵的設(shè)計決策就是如何實現(xiàn)更高的性能。在 奔騰4時代,英特爾選擇了具有非常高的時鐘頻率和相對較窄的管道。這種方法有很多優(yōu)點,其中之一就是它很容易加快單線程和串行代碼。軟件內(nèi)并不需要操作很 多的并行指令,因此大多數(shù)軟件會立刻見其好處。
一、功率
圖為時鐘頻率與功耗的關(guān)系
然而,這種方法也有它的缺點,它忽略奔騰4本身的執(zhí)行瑕疵。在這里,我們只講概念本身的缺陷。主要是CPU的微架構(gòu)一直與電墻沖突,并且,高頻的微架構(gòu)與很多已被發(fā)明出來用來處理功率問題的低功耗設(shè)計技術(shù)都不適合。此處,我將觸及兩個主要的低功耗設(shè)計方法。
一個是時鐘門控技術(shù),時鐘門控技術(shù)會在每個狀態(tài)元件(寄存器、鎖等)之前插入一個時鐘啟動系統(tǒng),以至于如果沒有新的數(shù)據(jù)寫入的話,元件將沒有時鐘控制。 這樣就可以節(jié)省大量因回寫相同的高速緩存而浪費(fèi)的充電/放電時間。這個方式也將一個附加延遲(門控功能)插入時鐘路徑。高頻率的設(shè)計一般是低利潤率運(yùn)行, 根本就不適合在最關(guān)鍵的信號(時鐘)插入附加可變延遲。
另一個常見的技巧是電源門控。這涉及到要在芯片不同部分的電壓源上放上晶體管。通常情況下,當(dāng)不使用時,那些不同的功能模塊和供電部分會關(guān)閉,但高頻設(shè) 計往往不會這樣做。電源控制晶體管不但需要添加一個額外的壓降,從而延緩晶體管開關(guān)速度,而且一個非常細(xì)的流水線處理器根本沒有多少部分可以在任何給定的 時間內(nèi)被關(guān)閉。
因此,從微架構(gòu)的角度來看,高頻和細(xì)的設(shè)計不只是智能power-wise。
二、晶體管縮放
處理器頻率沒有上漲的另一個主要原因很簡單,就是晶體管本身并沒有變得更快。
其他人提到了晶體管寬度尺寸的因素,但晶體管寬實際上是穩(wěn)步下降的,并且會繼續(xù)下去,摩爾定律在這方面還是很好地發(fā)揮作用的。
英特爾目前正在45納米的基礎(chǔ)上制造32納米的HKMG(high-k絕緣層+金屬閘極) 。兩年之前,它是65納米,再之前是90納米。TSMC, IBM and GlobalFoundries 公司今年開始生產(chǎn)28納米芯片。英特爾正計劃調(diào)整到22納米。 (更新:14nm已經(jīng)出來了)。
然而,問題是,當(dāng)晶體管的尺寸越來越小時他們卻沒有越來越快。要理解這一點,有點MOSFET(金氧半場效晶體管)的背景是必要的。
眾所周知,晶體管的開關(guān)速度取決于許多因素。其中一個主要因素是電場在閘極(控制到交換機(jī))中創(chuàng)建的強(qiáng)度。電場強(qiáng)度取決于閘極(其變小,晶體管收縮)的兩個區(qū)域,以及閘門厚度。
隨著晶體管的縮小,門的面積在減少。在過去,閘極區(qū)域面積的減少意味著一個晶體管的閘極也可以做得更薄。如果你知道基本的電容器是如何工作的,你 就會知道,兩個導(dǎo)電板之間距離越小,它們之間的電場就越強(qiáng)。這個工作原理在MOSFET上同樣通用。更薄的閘極電介質(zhì)導(dǎo)致有更強(qiáng)的電場通過晶體管溝道,這 意味著晶體管的切換速度更快。晶體管閘極面積減少意味著閘門可以做得更薄,并且對負(fù)載電容增加無害。
然而,至于45納米,現(xiàn)在的閘介質(zhì)約0.9納米厚——大約一個二氧化硅分子的大小,所以根本不可能做出更薄的了。因此,英特爾改用以鉿材料為基礎(chǔ)材料的High-K取代二氧化硅,成為閘極電介質(zhì)(許多人懷疑是硅酸鉿)。他們還把連接閘門的材料從多晶硅變成金屬材料。
這種方法有助于提高晶體管的速度,但它太昂貴了,只能是一個權(quán)宜之計。事情很簡單,每一次我們利用之前已有的簡單的縮放比例縮小晶體管,都會導(dǎo)致更快的晶體管結(jié)束。
三、芯片縮放
頻率斜升放緩的另一個主要原因是晶體管不再是唯一的——在某些情況下,即使是最大的——處理器可以運(yùn)行多快的關(guān)鍵?,F(xiàn)在,連接這些晶體管的電線成為延遲的主要因素。
隨著晶體管越來越小,連接它們的電線變得更細(xì)。細(xì)線意味著更高的阻力和更低的電流。事實是較小的晶體管能夠驅(qū)動少量的電流,很容易發(fā)現(xiàn),晶體管的開關(guān)速度只能部分確定電路的路徑延遲情況。
當(dāng)然,在芯片設(shè)計過程中可以使用許多技巧來對付這個問題。一個布局和布線良好的工程師將嘗試以類似的路徑來規(guī)劃其時鐘和數(shù)據(jù)信號的路線,這樣可以使兩個 信號同時傳送,并在同一時間到達(dá)目的地。對于數(shù)據(jù)密集型芯片,輕控設(shè)計會是一種非常有效的解決方案,例如固定功能的視頻編解碼引擎或網(wǎng)絡(luò)處理器。
然而,帶有web交互的微處理器是一個非常復(fù)雜的、非常規(guī)的設(shè)計,數(shù)據(jù)訪問多個地點時并不總是遵循時鐘規(guī)律,它有反饋路徑和循環(huán),有集中的資源,如風(fēng)險跟蹤,調(diào)度,分支預(yù)測,寄存器文件等等。另外,重控設(shè)計很容易被復(fù)制到更多的內(nèi)核,但要通過標(biāo)準(zhǔn)的方法提高處理器頻率的時候,其所要求的細(xì)線是很復(fù)雜的。