摘 要: 針對SoC中時鐘網絡的自動門控時鐘技術進行應用方法的研究,主要以聚芯SoC1000C的CPU核為基礎,通過對其內部時序邏輯特點的分析,提出以精確可靠的時序分析為基礎的時鐘網絡設計方案,從而在不增加物理設計復雜度的情況下大大降低SoC的時鐘功耗,同時達到改善時序性能和芯片面積的效果。
關鍵詞: SoC1000C;單片機;門控時鐘
?
近年來,芯片的內部時鐘頻率飛速增長,由于其時鐘樹的翻轉率固定為時鐘頻率的2倍,而其他信號每個周期的平均翻轉率通常要遠小于1,因此時鐘樹以及觸發器單元的功耗消耗要比處理器中其他非時序單元的功耗消耗大得多。芯片中的時鐘網絡包括時鐘樹以及時鐘樹所驅動的觸發器兩大部分,這兩部分由于具有翻轉頻率高、分布廣、連線長等特點,所以不論從延遲、可靠性,還是從功耗的角度看,時鐘網絡都是處理器中需要細心考慮的關鍵部分。根據功耗分析的結果,由時鐘樹和觸發器組成的時鐘網絡雖然在單元數目上只占處理器所有單元數目的不到百分之十,但這部分的時鐘功耗卻通常占處理器總功耗的30%以上。例如在Alpha 21264中占總功耗的32%[1],Itanium2中占總功耗的33%[2],在龍芯2E處理器中達到47%[3]。
1 自動門控時鐘技術原理
門控時鐘技術是在寄存器排的時鐘網絡上插入門控電路,產生一個消除寄存器不必要活動的控制信號,減少了電路中不必要的信號翻轉,從而降低功耗。當前,支持自動門控時鐘技術的EDA工具,如Synopsys公司的Power Compiler,可以將以上三種類型的RTL代碼自動映射為如圖1所示的電路,觸發器原先的使能端EN同時關閉時鐘。為此,需要在時鐘樹上增加一個基本門控單元,它由一個邏輯與門(AND)和一個用來防止生成毛刺的鎖存器(LATCH)組成,從而保證時序的正確性。當EN端為低時,寄存器排的時鐘被自動關閉,有效降低了功耗;而當EN端為高時,寄存器排的時鐘被自動打開,從而確保了電路的正常工作。當EN越長時間為低時,功耗優化效果會越明顯。
?
根據門控時鐘原理不難看出,門控時鐘的引入可以帶來如下好處:首先門控使能關閉時,位于門控單元后面的時鐘不再翻轉,因此節省了相應的時鐘樹與觸發器上的時鐘功耗;其次,加入門控邏輯后,被門控的每個觸發器不再需要一個單獨的多路選擇器,因此進一步減少了功耗和面積;第三,面積的縮小可以降低物理設計時的布線擁塞度,對芯片的時序會有所改善,意味著芯片性能的提升。但與此同時會增加門控單元的代價以及時鐘線的負載,并且帶來了一系列與物理設計相關的問題,包括時序分析、可測性設計和驗證等[4]。
2 自動門控時鐘技術的應用問題與解決方法
雖然自動門控時鐘技術理論上可以有效降低芯片功耗,甚至同時達到提高性能和減少面積的效果,但在當今EDA工具發揮重要作用的芯片設計流程中,還缺乏完備的支持。例如在中科SoC和聚芯SoC1000A兩個版本中,都沒有采用這種方法。如果依靠全定制設計來解決,就限制了ASIC設計流程對自動門控方法的使用。
2.1 時序分析問題
時序問題是自動門控時鐘技術使用過程中最棘手的問題,其嚴重限制了這種技術的使用與推廣。本文分析了自動門控時鐘潛在的時序問題,并說明非理想時鐘情況下,傳統方法仍然可能導致門控后的時鐘產生毛刺并針對工程實現給出解決方法。
圖2所示是一個基本的門控單元。由于與門(AND)在時鐘樹上,CLK傳遞到ENCLK的延遲變大,因此DATAIN數據推遲到達寄存器排的Q端,DATAOUT后面的組合電路將要在不足一個時鐘周期內完成,從而造成時序緊張。這種時序緊張只可能導致性能的下降而不會造成錯誤,但性能的下降也會帶來嚴重的后果。如圖3所示,EN由于其之前組合邏輯的作用產生一個毛刺(不足一個時鐘周期),此時經過LATCH延遲delay時間后傳遞到ENL。假設CLK到達B點的延遲大于到達A點的延遲,即存在時鐘偏斜skew且大于delay,這樣ENCLK仍然會產生一個毛刺而不會被屏蔽,從而造成嚴重后果。
?
?
為了防止時鐘產生以上分析的毛刺,只要門控時鐘的建立時間和保持時間都得到滿足,ENCLK就不會出現毛刺,并且可以在理論上得到占空比為1的時鐘波形。因此只要對布線后網表的門控邏輯進行精確的靜態時序分析(簡稱STA)[4],就可以保證自動門控時鐘技術的可靠性。在一個電路中,門控時鐘的建立時間和保持時間如何計算是一個復雜的過程,本文將針對Artisan 0.18 μm工藝進行實驗和分析。
2.2 可測性設計問題
半導體在制造過程中可能帶入各類失效,例如材料的缺陷以及工藝偏差都可能導致芯片中電路的短路、斷路以及器件節點間穿通等問題,而這樣的物理失效必然導致電路功能或者性能方面的故障。結構化測試可以定位生產制造過程中的故障,并且確保連線、晶體管等基本成分生產制造的正確性。為此原始設計需要加入只在測試過程中才使用的測試邏輯,以便于高質量測試向量的自動產生,同時也提供診斷失效器件的高效率方法,通常稱這一過程為可測性設計(簡稱DFT)[5]。
本文關注的主要內容并不是DFT,但加入自動門控而不對原有DFT進行改動則會影響設計的可測性。例如,在沒有加入自動門控時鐘的設計中,所有觸發器鏈接成一條掃描鏈,它們的CLK端(時鐘端)與芯片時鐘直接相連,以促使測試數據的傳遞。而在加入自動門控時鐘之后(如圖4所示),門控觸發器的CLK端并不與時鐘直接相連,當其之前的門控使能信號EN為低時,深色區域的電路將不具有可測性,從而影響掃描鏈的正常工作。當然可以將這類觸發器從掃描鏈中刪除,但后果是部分電路的可控性和可觀察性都將降低,而當這類觸發器占有相當大數量時,芯片的故障覆蓋率(Fault Coverage)將會大幅度降低。
?
2.3 面積問題
自動門控時鐘方法除了可以降低時鐘網絡的功耗,還可以減少綜合后邏輯的面積,這是因為門控時鐘方法可以消除大量反饋電路的多選器,取而代之的是一個LATCH和一個與門。表1列出Artisan 0.18 μm工藝庫中的一組真實的多選器、LATCH以及與門的面積。數據表明,如果使用該工藝庫,兩個多選器的面積相當于一個門控單元(含一個LATCH和一個與門)的面積。因此當寄存器排中觸發器的數量即位寬(Bit Width)超過2時,使用門控時鐘方法將減少面積,而當位寬增大時,面積減小的效果會更加明顯。
EDA工具提供了靈活的選項供設計者使用,用戶可以選定當寄存器排中觸發器數量超過特定數值時,才自動插入門控時鐘單元。例如使用Artisan 0.18 μm庫時,可以選擇當寄存器排的位寬超過2時,對該寄存器排插入門控。
2.4 等價性驗證問題
等價性驗證比較RTL級與門級或門級與門級來保證設計沒有偏離初始的設計意圖。在一個典型的流程中,用戶經常使用等價性驗證比較RTL源碼與綜合后門級網表的邏輯功能等效性。這個過程通常用于整個設計周期,例如在掃描鏈插入、時鐘樹綜合、優化、手工網表編輯等流程中,以便在流程的每一階段都能在門級維持原始的功能。這樣,在整個設計周期中就不再需要耗時的門級仿真,大幅度提高了設計和驗證效率。
Formality是Synopsys公司推出的高性能、高速度的全芯片的形式驗證工具[6],但是在自動門控插入后,RTL源代碼與其門級網表不再等價。為此,需要在Formality環境中添加涉及門控時鐘插入的配置如下:
fm_shell>set verification_clock_Gate_hold_mode any
這樣,就可以精確得出RTL源代碼與其綜合而成的門級網表是否邏輯等價。
3 實驗結果與分析
3.1 自動門控時鐘技術的邏輯綜合與結果分析
選擇對聚芯SoC1000C的CPU核進行實驗,這是因為其功耗比重最大(原始方法達70%),時鐘單一(除接口模塊和EJTAG模塊之外整個CPU核只有一個時鐘),功耗優化過程易于實現且效果明顯。為保證功耗分析的精度,實驗采用Artisan公司0.18 μm工藝庫進行綜合并進行物理設計,對帶有電容和延遲信息的門級網表進行功耗計算。實驗工具選用了工業界主流的EDA軟件:綜合選用Synopsys公司內嵌Power Compiler的Design Compiler,仿真選用Cadence公司的NCVerilog,功耗計算選擇Synopsys公司的Power Compiler和Prime Power,物理設計選用Synopsys公司的Astro。
與自動門控時鐘技術實現相關的綜合腳本如圖5所示,包含門控時鐘單元風格的定義、最小位寬定義、門控相關的時序檢查、DFT信號的連接等命令。為保險起見,參考前述Hspice的仿真結果,將門控時鐘的建立時間和保持時間檢查保守地設為0.25 ns。
?
對聚芯SoC中除CPU核以外的其他部分的寄存器和可以門控的寄存器數量進行了統計。由于CPU核中觸發器數量占整個聚芯SoC的一半以上,甚至超過PowerPC 405LP的門控觸發器比例(Power PC 405LP中CPU和其他部分分別為80%與50%[Nowka02]),所以這種方法的效果將會非常明顯,甚至可以超過PowerPC 405LP。
為了分析自動門控時鐘技術芯片性能的影響,對比了原始版本和自動門控時鐘版本(分別采用test_mode和scan_enable兩種不同DFT方式),綜合后的時序結果如表2所示。保持時間(hold time)通常可以在后端物理設計時加以考慮和解決,因此可以暫時忽略。就建立時間(setup time)而言,門控的兩個版本的時序結果都會略優于不帶門控的原始版本,其主要原因是由于面積從原始的6 053 441μm2分別減少到5 690 474 μm2(test_mode)和5 527 114μm2(scan_enable),分別減少了6%和9%,從而使布線擁塞度顯著降低,更加便于物理上的布局布線。
3.2 功耗仿真與分析
本文最終利用test_mode的門控版本網表進行進一步的物理設計和功耗分析實驗。在運行Dhrystone測試下,整個聚芯SoC1000C功耗為0.564 W,內部各IP核功耗分布如圖6所示,其中CPU核功耗為0.252 W,其內部各模塊功耗分布如圖7所示。研究發現,即使在聚芯SoC1000C中添加了MAC和CAN等IP核,同聚芯SoC1000A的0.99 W功耗相比,整個芯片仍然降低了43%的功耗。由于CPU采用了自動門控時鐘技術,功耗比例降低為整個芯片的47%,而內部RAM所占的比例加大,這是由于自動門控時鐘技術降低帶有觸發器的時鐘網絡功耗,但并沒有能夠有效降低RAM功耗。
?
本文以降低SoC中的時鐘網絡功耗為出發點,分析了現有自動門控時鐘技術的工作原理,并提出該技術在ASIC設計應用過程中的困難,結合當今EDA廠商提供的軟件特性,提出了相應的解決方案,從事實上緩解了設計難度并提高了設計的可靠性。本文提出的解決方法在聚芯SoC1000C的CPU核中進行實驗,結果表明,該方法可以使整個芯片的功耗降低43%以上。在今后的工作中,將進一步考慮這種方法在復雜的多時鐘域設計中可能存在的問題,并有望在聚芯SoC2000中得到進一步應用,從而大大降低SoC的時鐘功耗。此外,由于RAM的功耗比例變大,已經成為功耗的瓶頸,因此下一步的工作將研究低功耗的RAM結構。
參考文獻
[1] GOWAN M K,BIRO L L,JACHSON D B.Power considerations in the design of the alpha 21264 microprocessor[J].In:Proceedings of the 35th Annual Design Automation?Conference(DAC′98),Los Alamitos USA,1998.
[2] NAFFZIGER S,Colon-Bonet G,FISCHER T,et al.The?implementation of the itanium 2 microprocessor[J].IEEE?Journal of Solid-State Circuits,2002,37(11).
[3] 張戈.高性能通用處理器核的低功耗技術研究[D].博士學位論文,中國科學院計算技術研究所,2006.
[4] Synopsys Prime Time User Guide[M].Release U-2005.06-QA,2005,6.
[5] BUSHNELL M L,AGRAWAL V D.Essentials of electronic?testing for digital,memory,and mixed-signal VLSI circuits[M].Kluwer Academic Publishers,2000.
[6] Synopsys Formality User Guide[M].Release U-2005.06-QA,2005,6.