馬永飛,高成振,黃金明,李 研
(上海高性能集成電路設(shè)計(jì)中心,上海 201204)
目前,主流高性能微處理器基于同步時(shí)鐘系統(tǒng)進(jìn)行設(shè)計(jì)開發(fā)。時(shí)鐘信號(hào)為芯片內(nèi)同步系統(tǒng)提供參考時(shí)間,是同步時(shí)序邏輯運(yùn)行的基礎(chǔ)[1-3]。時(shí)鐘信號(hào)通常是芯片中扇出最大、負(fù)載最重、傳輸距離和覆蓋面最廣的信號(hào)。時(shí)鐘偏斜對(duì)時(shí)序邏輯電路正確運(yùn)行性能具有重要的制約作用。在通常情況下,時(shí)鐘網(wǎng)絡(luò)的偏斜由設(shè)計(jì)及工藝與應(yīng)用環(huán)境兩方面因素影響決定。設(shè)計(jì)因素包括各時(shí)鐘節(jié)點(diǎn)負(fù)載平衡性以及從時(shí)鐘源端輸出的傳輸距離、傳輸級(jí)數(shù)與布線方式。工藝與應(yīng)用環(huán)境因素包括工藝角、片上工藝偏差、工作電壓與溫度[4-5]。為保證芯片內(nèi)同步時(shí)序邏輯在各種不同的工藝角下均能正常穩(wěn)定工作,在傳統(tǒng)的高性能處理器設(shè)計(jì)中,設(shè)計(jì)人員通常致力于開發(fā)時(shí)鐘偏斜更小、抗工藝偏差能力更強(qiáng)的平衡時(shí)鐘網(wǎng)絡(luò),以獲得較高的工作頻率[6-8]。
高性能眾核處理器芯片中通常包含多個(gè)不同的時(shí)鐘域,且隨著系統(tǒng)對(duì)性能要求的日益提高,高性能眾核處理器芯片規(guī)模不斷提高,時(shí)鐘網(wǎng)絡(luò)規(guī)模越來越大,使得芯片時(shí)序收斂及功耗優(yōu)化的壓力日益凸顯[9-11]。如何降低芯片時(shí)鐘網(wǎng)絡(luò)功耗并克服時(shí)鐘網(wǎng)絡(luò)分布受片上偏差(On-Chip Variation,OCV)影響而導(dǎo)致的時(shí)鐘偏斜(clock skew)問題,從而加速設(shè)計(jì)時(shí)序收斂,成為高性能眾核處理器芯片設(shè)計(jì)中的重要研究方向[12-13]。本文在傳統(tǒng)時(shí)鐘網(wǎng)絡(luò)結(jié)構(gòu)及混合時(shí)鐘網(wǎng)絡(luò)結(jié)構(gòu)的基礎(chǔ)上,構(gòu)建一種新型的多源時(shí)鐘樹綜合(Multi-Root Clock Tree Synthesize,MRCTS)結(jié)構(gòu),并通過實(shí)驗(yàn)探究MRCTS 設(shè)計(jì)對(duì)時(shí)鐘系統(tǒng)的功耗優(yōu)化作用。
根據(jù)時(shí)鐘網(wǎng)絡(luò)的結(jié)構(gòu)特點(diǎn),傳統(tǒng)的時(shí)鐘網(wǎng)絡(luò)設(shè)計(jì)主要有樹狀和網(wǎng)狀兩種結(jié)構(gòu)。
常見的時(shí)鐘樹結(jié)構(gòu)包括:H-Tree,F(xiàn)anout Balance Tree,Binary Tree 和Fishbone[14-16]。H-Tree 時(shí)鐘樹的skew 小,抗OCV 能力強(qiáng),但設(shè)計(jì)要求嚴(yán)格,通常作為芯片核心高頻時(shí)鐘的全局互連[17]?;贓DA 工具時(shí)鐘樹綜合(Clock Tree Synthesis,CTS)的時(shí)鐘樹通常為Fanout Balance Tree 結(jié)構(gòu),其作為芯片內(nèi)模塊級(jí)時(shí)鐘互連。Binary Tree 時(shí)鐘樹相比H-Tree 時(shí)鐘樹的設(shè)計(jì)要求低,但仍存在較為嚴(yán)格的負(fù)載平衡要求,通常作為芯片時(shí)鐘的全局互連。Fishbone 時(shí)鐘樹的長度短、延時(shí)小,受OCV影響小,通常作為芯片內(nèi)模塊級(jí)時(shí)鐘互連。圖1為4 種常見的時(shí)鐘樹結(jié)構(gòu)。
圖1 常見的時(shí)鐘樹結(jié)構(gòu)Fig.1 Common clock tree structure
一個(gè)完整的時(shí)鐘網(wǎng)狀結(jié)構(gòu)(MESH)包含前驅(qū)層、短接層以及負(fù)載層,如圖2 所示。MESH 時(shí)鐘結(jié)構(gòu)與時(shí)鐘樹結(jié)構(gòu)的根本區(qū)別在于存在時(shí)鐘短接層。通過前驅(qū)層所有驅(qū)動(dòng)單元的輸出短接以及大量冗余的時(shí)鐘連線,MESH 時(shí)鐘結(jié)構(gòu)確保了負(fù)載層的各負(fù)載單元可以就近連接到短接層MESH 網(wǎng),有效降低了時(shí)鐘網(wǎng)絡(luò)的延時(shí)偏差,消除了時(shí)鐘傳播的延時(shí)奇異點(diǎn)。然而,為了有效控制MESH 網(wǎng)的時(shí)鐘延時(shí),必須提供充足甚至遠(yuǎn)超負(fù)載規(guī)模需要的前驅(qū)層驅(qū)動(dòng)器和驅(qū)動(dòng)點(diǎn),同時(shí)為保證短接層的時(shí)鐘MESH 網(wǎng)的平衡與完整,需要添加大量冗余的時(shí)鐘線,這會(huì)造成布線資源浪費(fèi)的同時(shí)增加時(shí)鐘網(wǎng)絡(luò)的負(fù)載和時(shí)鐘功耗,此外前驅(qū)層驅(qū)動(dòng)器間的延時(shí)偏差帶來的短路直通同樣會(huì)帶來大量的時(shí)鐘功耗損失。
圖2 MESH 時(shí)鐘結(jié)構(gòu)Fig.2 MESH clock structure
隨著集成電路設(shè)計(jì)規(guī)模的不斷提高,片上時(shí)鐘網(wǎng)絡(luò)規(guī)模、時(shí)鐘類型和復(fù)雜的時(shí)鐘結(jié)構(gòu)使得單一網(wǎng)絡(luò)結(jié)構(gòu)的時(shí)鐘設(shè)計(jì)遇到了嚴(yán)峻挑戰(zhàn),設(shè)計(jì)人員開始尋求在性能、功耗等方面進(jìn)行折中,提出了混合結(jié)構(gòu)的時(shí)鐘設(shè)計(jì)方法[18-19]。在借鑒樹狀和網(wǎng)狀兩種時(shí)鐘網(wǎng)絡(luò)結(jié)構(gòu)特點(diǎn)的基礎(chǔ)上,根據(jù)芯片不同時(shí)鐘域的特點(diǎn)與設(shè)計(jì)需要,構(gòu)建多種不同的混合時(shí)鐘網(wǎng)絡(luò)結(jié)構(gòu)以應(yīng)對(duì)特定的設(shè)計(jì)需求。以FINFET 工藝下,ChipA眾核處理器芯片為例,其運(yùn)算核心SCORE(約含88 000 個(gè)觸發(fā)器)的時(shí)鐘網(wǎng)絡(luò)設(shè)計(jì)采用H-Tree+MESH 混合時(shí)鐘網(wǎng)絡(luò)結(jié)構(gòu)。
在該芯片設(shè)計(jì)中,SCORE 采用層次化設(shè)計(jì)方案,包含3 個(gè)綜合子模塊(ES、MUX、EMDIS)及2 個(gè)定制SRAM 陣列(LDM、L1IC)。核心時(shí)鐘域SClk 分兩層實(shí)現(xiàn):第一層是SCORE 上層的H-Tree 及類H-Tree 的多級(jí)時(shí)鐘樹;等二層是模塊內(nèi)的MESH 時(shí)鐘網(wǎng)。采用MESH時(shí)鐘結(jié)構(gòu),保證了運(yùn)算部件內(nèi)的時(shí)鐘延時(shí)平衡,利用具有高度一致性的H-Tree及類H-Tree時(shí)鐘樹兼顧運(yùn)算核心簇內(nèi)和簇間的時(shí)鐘網(wǎng)絡(luò)偏斜,并最終確保SCORE 乃至芯片內(nèi)SClk 時(shí)鐘域的整個(gè)時(shí)鐘網(wǎng)絡(luò)具有較高的抗工藝波動(dòng)與片上工藝偏差的能力,為時(shí)序收斂設(shè)計(jì)及芯片穩(wěn)定運(yùn)行提供重要支撐。
在MESH 時(shí)鐘網(wǎng)絡(luò)設(shè)計(jì)中,針對(duì)相關(guān)時(shí)鐘驅(qū)動(dòng)點(diǎn)(Tap)至?xí)r鐘驅(qū)動(dòng)單元(Gater)輸入端以及Gater單元輸出至負(fù)載觸發(fā)器(或Latch)時(shí)鐘端的延時(shí)分別制定設(shè)計(jì)目標(biāo),并通過對(duì)時(shí)鐘網(wǎng)絡(luò)進(jìn)行Hspice 仿真分析驗(yàn)證時(shí)鐘樹設(shè)計(jì)是否達(dá)到預(yù)期指標(biāo)要求。SCORE 最終設(shè)計(jì)結(jié)果顯示,雖然部分Tap 點(diǎn)至Gater 驅(qū)動(dòng)的延時(shí)略有超標(biāo),但整個(gè)時(shí)鐘網(wǎng)絡(luò)的設(shè)計(jì)質(zhì)量高于既定指標(biāo)要求,Tap 點(diǎn)輸入至負(fù)載單元的最大延時(shí)僅為85.8 ps,時(shí)鐘延時(shí)偏差少于12 ps(僅占時(shí)鐘周期的2.5%)。
圖3 為SCORE 上層最后一級(jí)H-Tree 時(shí)鐘樹以及相關(guān)時(shí)鐘驅(qū)動(dòng)點(diǎn)的分布情況。圖4 為SCORE 綜合子模塊內(nèi)部門控時(shí)鐘的MESH 網(wǎng)絡(luò)分布情況。雖然基于MESH 的模塊級(jí)時(shí)鐘網(wǎng)絡(luò)設(shè)計(jì)可以實(shí)現(xiàn)極低的時(shí)鐘偏差,具有極高的抗工藝偏差的能力,但是各主流EDA 工具對(duì)于MESH 時(shí)鐘網(wǎng)絡(luò)的設(shè)計(jì)支持度不夠,需要精細(xì)的人工定制設(shè)計(jì),耗費(fèi)大量的人力和時(shí)間。定制化時(shí)鐘樹設(shè)計(jì)方法難以適應(yīng)芯片設(shè)計(jì)周期的需要,更無法有效利用useful skew 實(shí)現(xiàn)對(duì)關(guān)鍵路徑的優(yōu)化。此外,隨著集成電路設(shè)計(jì)工藝提高,為追求更高的性能,片上集成度進(jìn)一步提升,芯片時(shí)鐘網(wǎng)絡(luò)規(guī)模進(jìn)一步增加。仿真結(jié)果顯示,模塊級(jí)時(shí)鐘樹設(shè)計(jì)面臨布線資源需求大幅增加的嚴(yán)峻挑戰(zhàn)。為滿足項(xiàng)目進(jìn)度、布線資源、時(shí)序及功耗優(yōu)化等多方面的需求,亟需研究新型時(shí)鐘網(wǎng)絡(luò)結(jié)構(gòu)。
圖3 SCORE 上層H-Tree 及時(shí)鐘驅(qū)動(dòng)點(diǎn)分布Fig.3 H-Tree and clock driver point distribution above SCORE
圖4 SCORE 中的MESH 時(shí)鐘網(wǎng)絡(luò)Fig.4 MESH clock network in SCORE
Synopsys 公司的布局布線工具ICC2 針對(duì)FINFET工藝下的時(shí)鐘網(wǎng)絡(luò)設(shè)計(jì)多源時(shí)鐘樹結(jié)構(gòu)(Multi-Source Clock Tree Structure,MSCTS)[20-21],如圖5 所示。全局(Global)網(wǎng)絡(luò)包含全定制實(shí)現(xiàn)的H-Tree 時(shí)鐘樹、全局Tap 驅(qū)動(dòng)器及其驅(qū)動(dòng)的MESH 網(wǎng),局部(Local)時(shí)鐘樹包含與MESH 相連的各子模塊的Tap 點(diǎn)及其驅(qū)動(dòng)的標(biāo)準(zhǔn)CTS 時(shí)鐘樹。相比于傳統(tǒng)的CTS 時(shí)鐘樹結(jié)構(gòu),多源時(shí)鐘樹結(jié)構(gòu)具有更高的抗片上工藝偏差能力并可實(shí)現(xiàn)更高的時(shí)鐘性能。
圖5 MSCTS 時(shí)鐘網(wǎng)絡(luò)結(jié)構(gòu)Fig.5 MSCTS clock network structure
在MSCTS 中,以MESH 時(shí)鐘結(jié)構(gòu)作為全局與各子模塊時(shí)鐘的互連通道,為提供較為充足與分布合理的Tap驅(qū)動(dòng)點(diǎn),全局時(shí)鐘上MESH結(jié)構(gòu)的密集度要求較高,占用較多的高層金屬資源,大幅壓縮了各綜合子模塊的布線資源,降低了模塊的設(shè)計(jì)繞通性。同時(shí),大量冗余的MESH 時(shí)鐘網(wǎng)絡(luò)極大地提高了時(shí)鐘網(wǎng)絡(luò)的負(fù)載,產(chǎn)生了較大的時(shí)鐘功耗。本文在H-Tree+MESH 混合時(shí)鐘網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計(jì)的基礎(chǔ)上,通過對(duì)標(biāo)準(zhǔn)多源時(shí)鐘樹設(shè)計(jì)策略的深入研究,結(jié)合新一代眾核處理器芯片面積大、核心時(shí)鐘網(wǎng)絡(luò)分布廣的特點(diǎn),對(duì)多源時(shí)鐘樹結(jié)構(gòu)進(jìn)行改進(jìn),改進(jìn)的時(shí)鐘網(wǎng)絡(luò)結(jié)構(gòu)如圖6 所示。
圖6 MRCTS 時(shí)鐘網(wǎng)絡(luò)結(jié)構(gòu)Fig.6 MRCTS clock network structure
改進(jìn)的時(shí)鐘網(wǎng)絡(luò)結(jié)構(gòu)同樣分為全局和局部兩個(gè)部分:全局網(wǎng)絡(luò)包含全定制實(shí)現(xiàn)的H-Tree 時(shí)鐘樹及全局Tap 驅(qū)動(dòng)器;局部時(shí)鐘樹基于MSCTS 流程以各子模塊Tap 點(diǎn)為時(shí)鐘輸入源進(jìn)行多源時(shí)鐘樹綜合。將改進(jìn)后的網(wǎng)絡(luò)結(jié)構(gòu)稱為多源時(shí)鐘樹綜合(MRCTS)結(jié)構(gòu),其與MSCTS 的顯著區(qū)別在于取消了全局時(shí)鐘網(wǎng)絡(luò)末端的MESH 時(shí)鐘,局部時(shí)鐘與全局時(shí)鐘通過Tap 點(diǎn)直接相連。在設(shè)計(jì)時(shí)可以根據(jù)不同底層模塊的規(guī)模大小和各自特征,確定各自模塊Tap 點(diǎn)的數(shù)量和分布位置,從而達(dá)到控制局部時(shí)鐘樹的規(guī)模,實(shí)現(xiàn)各局部時(shí)鐘樹的延時(shí)基本相當(dāng),達(dá)到控制整個(gè)時(shí)鐘網(wǎng)絡(luò)skew 的目的。
采用改進(jìn)的網(wǎng)絡(luò)結(jié)構(gòu)可以降低中間的MESH 網(wǎng)帶來的大量時(shí)鐘功耗和對(duì)布線資源的額外占用,同時(shí)仍保有MSCTS 時(shí)鐘結(jié)構(gòu)的優(yōu)點(diǎn):全局的H-Tree 時(shí)鐘樹保證了全芯片不同區(qū)域間clock skew 穩(wěn)定可控,局部的CTS 時(shí)鐘樹可以合理利用useful skew 進(jìn)行關(guān)鍵路徑的時(shí)序優(yōu)化,實(shí)現(xiàn)時(shí)序收斂。全局和局部設(shè)計(jì)者的分工更加明確,在保證質(zhì)量的同時(shí),有利于縮短設(shè)計(jì)迭代周期,提高設(shè)計(jì)效率。
為探究MRCTS 時(shí)鐘結(jié)構(gòu)的可行性及其對(duì)時(shí)鐘網(wǎng)絡(luò)的影響,基于SCORE 的設(shè)計(jì)代碼、布局規(guī)劃和Tap 點(diǎn)分布,采用MRCTS 時(shí)鐘樹設(shè)計(jì)策略,分別進(jìn)行3 個(gè)子模塊的綜合實(shí)驗(yàn)。在采用MRCTS 時(shí)鐘樹設(shè)計(jì)策略進(jìn)行SCORE 的時(shí)鐘樹綜合設(shè)計(jì)時(shí),首先設(shè)置時(shí)鐘樹的主體級(jí)數(shù),然后根據(jù)模塊中利用useful skew 進(jìn)行時(shí)序收斂的需要,對(duì)不同的時(shí)序分組分別調(diào)整時(shí)鐘樹的目標(biāo)級(jí)數(shù),在合理利用useful skew 的同時(shí)實(shí)現(xiàn)對(duì)時(shí)鐘樹延時(shí)和級(jí)數(shù)的有效控制。表1 為SCORE 中子模塊采用MRCTS 時(shí)鐘設(shè)計(jì)的基本數(shù)據(jù)。
表1 SCORE 時(shí)鐘網(wǎng)絡(luò)基本數(shù)據(jù)設(shè)置Table 1 Setting of basic data of SCORE clock network
圖7為SCORE中基于MRCTS的時(shí)鐘樹布線規(guī)劃,其中從每個(gè)Tap 點(diǎn)發(fā)出的放射狀線條表示每個(gè)Tap 點(diǎn)到對(duì)應(yīng)負(fù)載端(包括觸發(fā)器、Latch、定制Latch 陣列時(shí)鐘端)的連接關(guān)系。圖8 為SCORE 中的MRCTS 時(shí)鐘網(wǎng)絡(luò),可以看出與圖4中的MESH時(shí)鐘網(wǎng)絡(luò)相比,MRCTS時(shí)鐘網(wǎng)絡(luò)對(duì)布線資源的占用大幅減少。
圖7 SCORE 中基于MRCTS 的時(shí)鐘樹布線規(guī)劃Fig.7 Clock tree route planning based on MRCTS in SCORE
圖8 SCORE 中的MRCTS 時(shí)鐘網(wǎng)絡(luò)Fig.8 MRCTS clock network in SCORE
時(shí)鐘網(wǎng)絡(luò)的功耗由靜態(tài)功耗、短路功耗和翻轉(zhuǎn)功耗三部分組成[22],分別來自時(shí)鐘驅(qū)動(dòng)單元、時(shí)鐘互連線以及時(shí)鐘負(fù)載三方面,而影響時(shí)鐘網(wǎng)絡(luò)功耗的因素包含電源電壓、時(shí)鐘頻率、時(shí)鐘信號(hào)的跳變時(shí)間、門控方案、門控單元插入位置、時(shí)鐘網(wǎng)絡(luò)負(fù)載等。表2 對(duì)比了SCORE signoff 版(MESH 結(jié)構(gòu))與綜合實(shí)驗(yàn)版(MRCTS 結(jié)構(gòu))時(shí)鐘網(wǎng)絡(luò)負(fù)載情況。
表2 時(shí)鐘網(wǎng)絡(luò)負(fù)載統(tǒng)計(jì)Table 2 Clock network load statistics
考慮到時(shí)鐘網(wǎng)絡(luò)功耗主要由動(dòng)態(tài)功耗組成,而動(dòng)態(tài)功耗的主體是開關(guān)功耗(Pswitch)。Pswitch計(jì)算公式如下:
其中:α為翻轉(zhuǎn)率;Cload為負(fù)載電容;VDD為電源電壓;f為時(shí)鐘頻率。開關(guān)功耗與時(shí)鐘網(wǎng)絡(luò)的負(fù)載電容、時(shí)鐘頻率成正比,與電源電壓的平方成正比,即在電源電壓和時(shí)鐘頻率相同時(shí),時(shí)鐘網(wǎng)絡(luò)的功耗與時(shí)鐘網(wǎng)絡(luò)負(fù)載電容成正相關(guān)。
由此可以看出,基于相同代碼與布局規(guī)劃進(jìn)行MRCTS 時(shí)鐘樹設(shè)計(jì)后,SCORE 時(shí)鐘網(wǎng)絡(luò)的總負(fù)載下降約11%,根據(jù)式(1)可以簡單推算出,SClk 時(shí)鐘域的模塊級(jí)時(shí)鐘網(wǎng)絡(luò)功耗可以獲得約11%的優(yōu)化。
新一代ChipB 芯片設(shè)計(jì)采用更先進(jìn)的第二代FINFET 工藝,同時(shí)為獲得更優(yōu)的能效,在SCORE 的設(shè)計(jì)中應(yīng)用了MRCTS 時(shí)鐘結(jié)構(gòu)。相比于ChipA,SCORE的有效晶體管數(shù)由2.58×107增至3.33×107,增長了約28.9%,觸發(fā)器數(shù)由8.77×104增至10.80×104,增長了約23.3%。為驗(yàn)證新型時(shí)鐘網(wǎng)絡(luò)設(shè)計(jì)對(duì)功耗優(yōu)化的效果,分別選取5 顆ChipA 和ChipB 芯片進(jìn)行時(shí)鐘功耗測試,并將電源電壓與時(shí)鐘頻率進(jìn)行一致性折算,對(duì)比結(jié)果如表3 所示。從表3 數(shù)據(jù)分析結(jié)果可以看出,在觸發(fā)器總量增加23.3%的情況下,采用MRCTS 時(shí)鐘結(jié)構(gòu),SCORE 時(shí)鐘網(wǎng)絡(luò)功耗約降低了22.15%(折算相同電源電壓和時(shí)鐘頻率)。
表3 ChipA 與ChipB 的SCORE 時(shí)鐘網(wǎng)絡(luò)功耗對(duì)比Table 3 Comparison of clock network power consumption of SCORE between ChipA and ChipB
本文分析高性能眾核處理器芯片設(shè)計(jì)中的H-Tree+MESH 混合時(shí)鐘網(wǎng)絡(luò)結(jié)構(gòu),構(gòu)建新型多源時(shí)鐘樹綜合(MRCTS)結(jié)構(gòu)并研究其對(duì)模塊時(shí)鐘網(wǎng)絡(luò)功耗的優(yōu)化作用。兩款處理器芯片實(shí)測功耗的對(duì)比結(jié)果顯示,在相同電源電壓和時(shí)鐘頻率條件下,基于MRCTS的ChipB運(yùn)算部件SCORE 的時(shí)鐘網(wǎng)絡(luò)功耗較ChipA 下降約22.15%。但由于新型MRCTS 時(shí)鐘樹結(jié)構(gòu)中Tap 點(diǎn)的位置受限于H-Tree 時(shí)鐘樹結(jié)構(gòu),分布一般比較均勻且位置相對(duì)固定,Tap點(diǎn)位置調(diào)整對(duì)全局布線的影響較大,然而在實(shí)際設(shè)計(jì)中時(shí)序單元的分布不均勻,受邏輯設(shè)計(jì)和物理布局規(guī)劃影響,相對(duì)分布均勻的Tap 點(diǎn)會(huì)導(dǎo)致各Tap 點(diǎn)驅(qū)動(dòng)的Local 時(shí)鐘網(wǎng)絡(luò)負(fù)載不均衡,在部分情況下可能會(huì)嚴(yán)重影響最終的時(shí)鐘樹設(shè)計(jì)及模塊時(shí)序收斂,因此后續(xù)將通過實(shí)時(shí)分析與調(diào)整Tap 點(diǎn)的分布和數(shù)量進(jìn)一步優(yōu)化時(shí)鐘網(wǎng)絡(luò)設(shè)計(jì)。