何小威
(國防科技大學(xué)計算機(jī)學(xué)院 長沙 410073)
高性能CPU 核的物理實現(xiàn)一直是微處理器設(shè)計的難點,CPU核實現(xiàn)頻率的高低直接影響到微處理器的性能好壞[1~2]。隨著芯片工藝進(jìn)入到超深亞微米階段,工藝參數(shù)對器件延時的影響日益凸顯,先進(jìn)工藝下的金屬線寬度降低到只有幾十納米,同時線電阻急劇增大,這給高性能CPU核的時序收斂帶來不小的麻煩[3],必須從流程和設(shè)計方法學(xué)上進(jìn)行改進(jìn)[4],如何從物理設(shè)計方法學(xué)的角度實現(xiàn)將CPU 核的頻率提升是一個值得研究的課題。近年來,為了提升高性能CPU核的頻率涌現(xiàn)出不少新的實現(xiàn)技術(shù),例如定制部分?jǐn)?shù)據(jù)通道[2],網(wǎng)格(Mesh)時鐘樹或者混合時鐘樹[5]等,這些新技術(shù)難免有實現(xiàn)上的困難和局限性,很少有研究從布局布線流程和物理設(shè)計方法學(xué)本身的角度以最小的代價、最大限度地提升頻率的同時保持實現(xiàn)面積和功耗可控。而且,高性能CPU核的隨著頻率的提升功耗問題變得愈發(fā)突出,近年來不少文獻(xiàn)對物理設(shè)計的功耗優(yōu)化進(jìn)行了研究[6~7]。在不關(guān)斷時鐘的情況下,如何既保持性能又能最大化地降低功耗也是非常有挑戰(zhàn)性的課題。對此,本文從物理設(shè)計流程的角度提出了提升頻率或者降低功耗的物理設(shè)計方法。流程上,在布局階段就進(jìn)行時鐘樹預(yù)綜合,在布線完之后進(jìn)行電阻電容系數(shù)(RC Factor)校正,然后重新執(zhí)行帶時鐘樹預(yù)綜合的布局-時鐘樹綜合-布線。方法上,在布局布線過程(帶時鐘樹預(yù)綜合的布局、時鐘樹綜合、布線)中均使用有用偏斜(Useful Skew)和 先 進(jìn) 片 上 變 化(Advanced On-Chip-Variation,AOCV),并且全流程都不修復(fù)保持時間(hold)違例。實驗結(jié)果顯示,采用新的物理設(shè)計流程和方法可以實現(xiàn)CPU 核更高的頻率或者更低的功耗,加快多模式多端角下的時序收斂速度,同時滿足其他簽核(Signoff)條件。
原有的設(shè)計模塊采用先進(jìn)工藝節(jié)點流片之后,經(jīng)過測試模塊的頻率可達(dá)2.2GHz,模塊布局分布如圖1(a)所示,模塊總單元數(shù)目為1.7M。而相同的面積下使用本文所提的物理設(shè)計方法經(jīng)過頻率提升之后的設(shè)計如圖1(b)所示??梢钥闯?,在module 的布局分布上二者基本一致,但是圖1(b)的設(shè)計signoff頻率卻提升到2.4GHz。
圖1 模塊布局
為了解決一般的布局布線流程和方法難以最大化提升CPU核的頻率問題,本文基于業(yè)界主流的EDA 布局布線工具提出了一種適用于CPU 核頻率提升的物理設(shè)計方法。主要包括以下內(nèi)容。
1)采用Extreme 流程。對高性能CPU 核的設(shè)計來講,一般的流程難以實現(xiàn)出極限性能。必須打開布局布線工具的Extreme 屬性,能將核的時序優(yōu)化到極致。
2)布局(Placement)階段采取high effort 布局策略,讓工具最大限度優(yōu)化時序,這個和打開Extreme屬性是同一個道理。
3)整個物理設(shè)計流程均使用Useful Skew。當(dāng)前高性能CPU 核的設(shè)計由于要追求性能一般都會想方設(shè)法將時鐘頻率提升,如果物理實現(xiàn)還是采用傳統(tǒng)的布局布線方法把時鐘樹做平衡,勢必會限制頻率的提升。隨著EDA 工具的發(fā)展,使用Useful Skew 來提升頻率的技術(shù)越來越成熟,主流的EDA工具都具備這種技術(shù)。CPU 核有些寄存器之間的邏輯非常多,路徑延時較大,必須借助Useful Skew來滿足高性能實現(xiàn)要求,即Placement/CTS/PostRoute全程使用Useful Skew。
4)EarlyClock流程助力頻率提升。時鐘樹綜合(CTS)作為物理設(shè)計中非常重要的一個步驟,通常在布局完成之后才開始進(jìn)行。CPU 核的物理設(shè)計頻率高、密度大,傳統(tǒng)的物理設(shè)計流程在布局階段并不考慮時鐘樹單元插入對布局位置和繞線資源的影響,因而布局階段的時序結(jié)果和時鐘樹綜合階段的時序結(jié)果并不完全一致,很有可能在布局階段發(fā)現(xiàn)時序已經(jīng)收斂,但是等執(zhí)行完時鐘樹綜合之后發(fā)現(xiàn)時序惡化不少,因此EarlyClock 流程正好解決了布局和CTS之間的時序一致性問題,即在布局階段就進(jìn)行時鐘樹預(yù)綜合,得到更加準(zhǔn)確的時序信息。
5)整個物理設(shè)計階段全程使用AOCV,避免時序過優(yōu)化導(dǎo)致密度過大。早期工藝下物理設(shè)計都采用固定的值來反映片上工藝變化(On-Chip-Variation,OCV)對單元和線延時的影響。當(dāng)前主流工藝已經(jīng)進(jìn)入納米階段,采用固定的片上變化值來約束時序進(jìn)行布局布線會導(dǎo)致時序過度悲觀,從而影響CPU核頻率突破。
6)CTS 和Route 階段都不修hold 違例,避免過修而導(dǎo)致密度過大。傳統(tǒng)的布局布線流程除了集中修復(fù)建立時間(setup)違例之外,在執(zhí)行完時鐘樹綜合之后、或者布線時一般都會修復(fù)保持時間(hold)違例。先進(jìn)工藝下hold 的不確定性隨著單元閾值的變化而變化,一般布局布線工具所報出的hold 違例和時序簽核工具報出的hold 違例存在不小的差異,因此在時鐘樹綜合或布線階段修復(fù)hold可能會導(dǎo)致過修、布局布線密度過大、功耗過大等一系列問題。
7)布線完成之后,提取繞線后金屬線的RC 值并和繞線前的RC 值進(jìn)行比較產(chǎn)生RC Factor,將RC Factor 反標(biāo)到設(shè)計輸入上,重新開始執(zhí)行帶時鐘樹預(yù)綜合的布局、時鐘樹綜合和布線,這樣EDA工具在時序優(yōu)化時更加精準(zhǔn),也就能達(dá)到頻率提升的效果。RC factor的校正對16nm 及以下工藝的時序收斂非常有幫助。
8)細(xì)分更多的Path Group。將影響頻率提升的關(guān)鍵路徑提煉出來形成多個PathGroup,設(shè)置適當(dāng)?shù)臋?quán)重,這樣布局布線工具能加大優(yōu)化這些關(guān)鍵路徑的力度,這對提升頻率非常有幫助。
將上述方法融合到傳統(tǒng)的物理設(shè)計流程中,我們可以得到如圖2 所示的提升頻率的優(yōu)化設(shè)計流程。這些物理設(shè)計方法可將原來的設(shè)計模塊在實現(xiàn)面積不變的情況下頻率提升10%。
圖2 CPU核頻率提升的物理設(shè)計流程和方法
對于多核微處理器來講,CPU核的功耗大小直接關(guān)系到整個微處理器的功耗大小。維持CPU 核的頻率不變,最大化地降低CPU核的功耗是非常值得研究的方向。如上節(jié)所述,原來設(shè)計模塊CPU核的頻率可再提高10%,這說明原來的設(shè)計中時序是有余量的,挖掘這些余量從而降低核的功耗是切實可行的。我們從以下幾個方面對原來設(shè)計的CPU核的功耗進(jìn)行了優(yōu)化改進(jìn)。
1)開啟功耗優(yōu)化選項(動態(tài)功耗+靜態(tài)功耗)。原有的設(shè)計為了追求CPU核的頻率,在物理實現(xiàn)流程中并沒有打開功耗優(yōu)化選項,由于時序有余量,有些時序路徑并不需要工具費多大精力就可以滿足時序要求,所以打開功耗優(yōu)化選項能夠讓工具從布局布線一開始就兼顧頻率達(dá)標(biāo)和功耗優(yōu)化,能夠更好地降低動態(tài)功耗和靜態(tài)功耗。
2)在整個布局布線階段全程使用AOCV,避免時序過優(yōu)化導(dǎo)致密度過大。如果還是采用固定的OCV值來約束必然導(dǎo)致大部分時序路徑過度約束,工具會插入更多的單元來修復(fù)時序,這必然不利于整體功耗的優(yōu)化。
3)在整個布局布線階段全程使用Useful Skew。如上節(jié)所述,為追求高性能CPU 核的頻率提升,我們在整個布局布線階段均使用Useful Skew。為了降低功耗,我們同樣在整個布局布線階段全程使用Useful Skew,目的是通過借Useful Skew來盡快達(dá)成時序收斂從而不插入過多的邏輯單元。插入的單元數(shù)目減少了,功耗相應(yīng)地就降低了。由于Useful Skew 并不會對所有的時序路徑起作用,所以由Useful Skew所引起的hold違例并不會比不使用Useful Skew 的多太多,可通過插入功耗較低的延時單元來修復(fù)。
4)在布局布線工具中不修復(fù)hold 違例。如上節(jié)所述,傳統(tǒng)的布局布線流程除了集中修復(fù)建立時間(setup)違例之外,在執(zhí)行完時鐘樹綜合之后、或者布線時一般都會修復(fù)保持時間(hold)違例。先進(jìn)工藝下hold 的不確定性隨著單元閾值的變化而變化,一般的布局布線工具所報的hold違例和時序簽核工具報出的hold違例存在不小的差異,因此在時鐘樹綜合或布線階段修復(fù)hold可能會導(dǎo)致過修、布局布線密度過大、功耗過大等一系列問題。我們的功耗流程在整個布局布線階段都不修復(fù)hold 違例,只是將局部密度控制適當(dāng),待簽核工具報出hold違例之后再通過時序收斂工具一次性修復(fù),這樣不會出現(xiàn)過修而插入過多的單元,相應(yīng)地就達(dá)到了降低功耗的目的。
根據(jù)同樣條件生成的VCD 文件,原來設(shè)計核的功耗為1.061W@dhrystone64 VCD,如圖3(a)所示。采用上述功耗優(yōu)化方法之后,核的功耗降低為0.855W@dhrystone64 VCD,如圖3(b)所示??梢钥闯?,無論是漏流功耗(leakage power),還是開關(guān)功耗(switching power)和內(nèi)部功耗(internal power)都有了明顯的降低,其中漏流功耗幾乎降低了一半。
圖3 CPU核的功耗
本文針對高性能CPU 核的物理設(shè)計提出了一種提升頻率或者降低功耗的物理設(shè)計方法,能最大化地提升CPU核的實現(xiàn)頻率,或者在保持頻率不變的前提下最大化地降低CPU核的功耗,同時保持實現(xiàn)面積不變。該方法易于集成到傳統(tǒng)的物理設(shè)計流程中,可操作性強(qiáng),具有較強(qiáng)的工程實踐意義。