《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 電源技術(shù) > 設(shè)計(jì)應(yīng)用 > 動(dòng)態(tài)時(shí)鐘配置下的SoC低功耗管理研究
動(dòng)態(tài)時(shí)鐘配置下的SoC低功耗管理研究
摘要: 隨著集成電路技術(shù)的飛速發(fā)展和對(duì)消費(fèi)類電子產(chǎn)品的需求,,推動(dòng)了SoC的飛速發(fā)展,,也給人們提出了許多新的課題。對(duì)于電池驅(qū)動(dòng)的SoC芯片,,已不能再只考慮它優(yōu)化空間的兩個(gè)方面——速度和面積,,而必須要注意它已經(jīng)表現(xiàn)出來(lái)的且變得越來(lái)越重要的第三個(gè)方面——功耗。
Abstract:
Key words :

  引言

  隨著集成電路技術(shù)的飛速發(fā)展和對(duì)消費(fèi)類電子產(chǎn)品——特別是便攜式(移動(dòng))面向客戶的電子產(chǎn)品的需求,,推動(dòng)了SoC(System on Chip)的飛速發(fā)展,,也給人們提出了許多新的課題[1]。對(duì)于電池驅(qū)動(dòng)的SoC芯片,,已不能再只考慮它優(yōu)化空間的兩個(gè)方面——速度(performance)和面積(cost),,而必須要注意它已經(jīng)表現(xiàn)出來(lái)的且變得越來(lái)越重要的第三個(gè)方面——功耗[1],這樣才能延長(zhǎng)電池的壽命和電子產(chǎn)品的運(yùn)行時(shí)間,。

  SoC中CMOS電路功耗有:一是靜態(tài)功耗,,主要是由靜電流、漏電流等因素造成的;二是動(dòng)態(tài)功耗,,主要是由電路中信號(hào)變換時(shí)造成的瞬態(tài)開(kāi)路電流(crowbar current)和負(fù)載電流(load current)等因素造成的[2],,它是SoC芯片中功耗的主要來(lái)源[3]。因此,,解決好SoC中的動(dòng)態(tài)功耗是降低整個(gè)SoC芯片功耗的關(guān)鍵,。本文后面所提到的功耗就是指SoC芯片中的動(dòng)態(tài)功耗。

  如何降低SoC中的功耗,,從不同的層面分析會(huì)得出不同的解決方案,。從芯片的系統(tǒng)級(jí)(architecture)角度考慮,,有低功耗總線設(shè)計(jì)、低功耗存儲(chǔ)系統(tǒng)設(shè)計(jì),、低功耗時(shí)鐘網(wǎng)絡(luò)設(shè)計(jì),、開(kāi)發(fā)系統(tǒng)的休息模式、時(shí)鐘門(mén)控等技術(shù);從芯片的行為級(jí)(RTL)角度考慮,,有信號(hào)門(mén)控,、預(yù)前計(jì)算、操作數(shù)分離,、狀態(tài)機(jī)優(yōu)化,、并行和流水結(jié)構(gòu)等技術(shù);從芯片的門(mén)級(jí)(gate)角度考慮,有緩沖插入,、提取因子,、單元縮放、管腳交換,、相位配置等技術(shù)[4],。從越高的抽象層次去考慮功耗問(wèn)題,芯片功耗優(yōu)化的幅度就越顯著,。

  本文所提出的基于動(dòng)態(tài)配置時(shí)鐘的SoC低功耗管理是從芯片的系統(tǒng)級(jí)角度考慮的,。在最后的實(shí)驗(yàn)中,它非常明顯地降低了整個(gè)芯片的功耗,。

 

  1 動(dòng)態(tài)配置時(shí)鐘的SoC低功耗管理原理

 

  基于微處理器應(yīng)用的SoC設(shè)計(jì),,其復(fù)雜程度變化很大:在一些應(yīng)用中可能需要用到所有的硬件資源,但是在其它的一些應(yīng)用中可能只需要用到其中一部分硬件資源;在一些應(yīng)用中可能需要很高的工作頻率,,而在其它的一些應(yīng)用中卻可以大大降低工作頻率,。動(dòng)態(tài)管理SoC系統(tǒng)時(shí)鐘的思想就是:不僅動(dòng)態(tài)地管理SoC內(nèi)部模塊的時(shí)鐘源供給,還可以動(dòng)態(tài)地配置SoC系統(tǒng)的時(shí)鐘頻率,。

  動(dòng)態(tài)地管理SoC內(nèi)部模塊的時(shí)鐘源供給就是,,根據(jù)不同的應(yīng)用,管理SoC內(nèi)部的硬件資源,。簡(jiǎn)而言之,,就是進(jìn)行內(nèi)部模塊的開(kāi)和關(guān)的操作。關(guān)閉單個(gè)模塊,,可以通過(guò)對(duì)每個(gè)模塊設(shè)置一個(gè)使能位,,然后對(duì)這個(gè)使能位編程做到關(guān)閉或打開(kāi)那個(gè)模塊。但這樣做不是最佳的,,原因有二:其一,,每個(gè)模塊的接口部分必須是始終打開(kāi)的,否則,,CPU核無(wú)法隨時(shí)對(duì)它的內(nèi)部寄存器進(jìn)行編程;其二,,通過(guò)模塊使能位只是關(guān)閉了它的功能操作,,而并沒(méi)有把它模塊內(nèi)的時(shí)鐘樹(shù)關(guān)閉掉,也就是說(shuō)它里面的時(shí)鐘樹(shù)依然處于激活狀態(tài),,而時(shí)鐘樹(shù)所造成的功耗占單個(gè)模塊功耗的很大一部分。其實(shí)大多數(shù)模塊都是同步系統(tǒng),,系統(tǒng)的所有操作都是在時(shí)鐘信號(hào)的節(jié)拍下進(jìn)行的[5],,關(guān)閉時(shí)鐘源能同時(shí)達(dá)到關(guān)閉模塊和降低功耗的目的。

  動(dòng)態(tài)地配置SoC系統(tǒng)的時(shí)鐘頻率則是以不犧牲系統(tǒng)的性能為前提,,動(dòng)態(tài)地管理系統(tǒng)的工作頻率來(lái)降低SoC的功耗,。時(shí)鐘頻率是影響動(dòng)態(tài)功耗的重要因素:[3]。它的工作頻率越高,,功耗也就越大,。但在很多時(shí)候,所有的模塊并不是工作在同一時(shí)鐘頻率,,或者同一個(gè)模塊在不同的時(shí)段可以工作在不同的時(shí)鐘頻率,。這些就是動(dòng)態(tài)地配置SoC系統(tǒng)的時(shí)鐘頻率的前提。

  圖1是整個(gè)SoC中的時(shí)鐘網(wǎng)絡(luò)(時(shí)鐘樹(shù)),。圖中的功耗管理模塊(power management module)完成這種功能,。

 

  

  圖1 SoC時(shí)鐘網(wǎng)絡(luò)

 

  2 芯片的低功耗工作管理模式

 

  為了更好地實(shí)現(xiàn)動(dòng)態(tài)配置時(shí)鐘的SoC低功耗管理策略,芯片在其工作中開(kāi)發(fā)出了其低功耗管理機(jī)制中的四種工作模式:Slow,、Normal,、Idle和Sleep。下面結(jié)合圖2所示的工作模式流程圖來(lái)說(shuō)明它的工作機(jī)制,。

 

  

  圖2 工作模式流程

 

  表1為四種工作模式的狀態(tài),。

  表1

  

 

  (1) Slow模式

  當(dāng)系統(tǒng)復(fù)位以后或當(dāng)系統(tǒng)關(guān)掉PLL不需要高速時(shí)鐘運(yùn)行時(shí),,系統(tǒng)進(jìn)入到Slow模式,。在Slow模式下,系統(tǒng)中的CPU核和所有模塊的時(shí)鐘源都來(lái)自晶振,。如果這時(shí)系統(tǒng)認(rèn)為有必要關(guān)掉某些模塊,,那么,就可以通過(guò)配置功耗管理模塊內(nèi)部的寄存器,,把相應(yīng)模塊的時(shí)鐘源使能位關(guān)掉,。

  (2) Normal模式

  如果在某些應(yīng)用中需要高速時(shí)鐘,,那么就應(yīng)該切換到Normal模式,。在Normal模式下,系統(tǒng)中的CPU核和所有模塊的時(shí)鐘源都來(lái)自PLL,。當(dāng)然,,在這種模式下也可以根據(jù)系統(tǒng)的應(yīng)用關(guān)掉某些模塊,。如果系統(tǒng)需要調(diào)整時(shí)鐘的頻率,可以通過(guò)動(dòng)態(tài)配置PLL來(lái)實(shí)現(xiàn),。但是在動(dòng)態(tài)配置PLL過(guò)程中,,要注意這樣一個(gè)問(wèn)題:因?yàn)镻LL有一個(gè)時(shí)鐘鎖定的時(shí)間,在這段時(shí)間內(nèi),,它輸出的時(shí)鐘波形是不規(guī)則的,,此時(shí)不能使用它作為芯片的時(shí)鐘源。為了保證系統(tǒng)的正常運(yùn)行,,可以暫時(shí)把系統(tǒng)的時(shí)鐘源切換到晶振狀態(tài),,待PLL的時(shí)鐘輸出穩(wěn)定以后再把系統(tǒng)的時(shí)鐘源切換到PLL狀態(tài)。

 ?。?) Idle模式

  如果CPU核在當(dāng)前狀態(tài)下已經(jīng)處理完所有任務(wù),,在很長(zhǎng)一段時(shí)間內(nèi)都將處于空閑狀態(tài),那么系統(tǒng)應(yīng)該進(jìn)入到Idle模式,。在Idle模式下,,只會(huì)關(guān)閉CPU核的時(shí)鐘源,而所有的模塊都保持原狀,。但在這種模式下,,不可動(dòng)態(tài)配置PLL,以得到不同的時(shí)鐘頻率;也不可以動(dòng)態(tài)地管理各模塊的時(shí)鐘源,,因?yàn)檫@個(gè)時(shí)鐘Core已經(jīng)休眠了,,它沒(méi)辦法對(duì)功耗管理模塊內(nèi)部的寄存器進(jìn)行配置。無(wú)論前一個(gè)狀態(tài)是Slow模式還是Normal模式,,系統(tǒng)都可以進(jìn)入到Idle模式下;而當(dāng)系統(tǒng)退出Idle模式時(shí),,它應(yīng)該退回到前一個(gè)工作模式。當(dāng)系統(tǒng)重新需要CPU核進(jìn)行事務(wù)處理時(shí),,可以通過(guò)一個(gè)喚醒信號(hào)讓系統(tǒng)退回到Slow模式或Normal模式,。

  (4) Sleep模式

  如果整個(gè)系統(tǒng)都已經(jīng)處理完所有的事務(wù),,并且在很長(zhǎng)的一段時(shí)間內(nèi)都將處于空閑狀態(tài),,那么系統(tǒng)應(yīng)該進(jìn)入到Sleep模式。在Sleep模式下,,關(guān)閉CPU核和所有模塊的時(shí)鐘源,。雖然可以從Slow模式或Normal模式切換到Sleep模式,但是當(dāng)它退出Sleep模式時(shí),,系統(tǒng)只能回到Slow模式,。因?yàn)闉榱诉M(jìn)一步降低整個(gè)芯片的功耗,在Sleep模式時(shí)會(huì)同時(shí)關(guān)閉PLL,所以在它退出時(shí)只能回到Slow模式,,然后根據(jù)當(dāng)前的應(yīng)用決定有沒(méi)有再切換到Normal模式的必要,。當(dāng)系統(tǒng)需要再次進(jìn)行事務(wù)處理時(shí),可以通過(guò)一個(gè)喚醒信號(hào)喚醒整個(gè)SoC芯片系統(tǒng),。

 

  3 功耗管理模塊的實(shí)現(xiàn)

 

  功耗管理模塊主要由一個(gè)狀態(tài)機(jī),、一些多路選擇器和一些門(mén)控時(shí)鐘電路組成。狀態(tài)機(jī)的責(zé)職就是完成各種模式之間的切換和送出PLL的控制信號(hào),。多路選擇器主要完成各種時(shí)鐘源之間的選擇,,而門(mén)控時(shí)鐘電路則完成CPU核和各模塊時(shí)鐘源的打開(kāi)和關(guān)閉功能。圖3是功耗管理模塊中時(shí)鐘源路線,。

  從圖3中可以清楚地看出,,在功耗管理模塊中例示了兩個(gè)PLL:一個(gè)是主PLL(MPLL),,它提供整個(gè)SoC中除USB模塊以外的所有模塊的時(shí)鐘源;另一個(gè)是次PLL(UPLL),,它只對(duì)USB提供時(shí)鐘源。MUX完成晶振時(shí)鐘和PLL時(shí)鐘的選擇,,被選中的時(shí)鐘(FCLK)同時(shí)送到CPU核,、HCLK和PCLK,然后根據(jù)各個(gè)模塊的需要門(mén)控地送出時(shí)鐘源,。這是基于AMBA總線結(jié)構(gòu)的SoC,。根據(jù)AMBA總線的協(xié)議,CPU核,、AHB上的模塊和APB上的模塊的時(shí)鐘頻率可以配置成倍比關(guān)系[6],。經(jīng)過(guò)HCLK分頻的時(shí)鐘源只提供給AHB上的模塊,而經(jīng)過(guò)PCLK分頻的時(shí)鐘源只提供給APB上的模塊,。AHB_con ,、APB_con、Core_con和USB_con一起管理SoC內(nèi)部模塊的時(shí)鐘源供給,。

 

  

  圖3 時(shí)鐘源路線

 

  4 動(dòng)態(tài)時(shí)鐘管理中的問(wèn)題及消除方法

 

  動(dòng)態(tài)地配置整個(gè)系統(tǒng)的時(shí)鐘頻率,,雖然可以很方便地控制好整個(gè)SoC芯片的功耗,但同時(shí)也帶來(lái)了一些負(fù)面影響,。功耗管理單元中的多路選擇器和門(mén)控時(shí)鐘電路是最有可能產(chǎn)生毛刺的,,而毛刺對(duì)同步數(shù)字系統(tǒng)是致命的。它會(huì)導(dǎo)致同步的失敗,、數(shù)據(jù)的丟失,、寄存器進(jìn)入亞穩(wěn)態(tài),更為嚴(yán)重的是,,使整個(gè)同步系統(tǒng)的功能失敗,。毛刺的產(chǎn)生是因?yàn)槟切┹斎胄盘?hào)的時(shí)序匹配出現(xiàn)了問(wèn)題,沒(méi)有按照既定的順序出現(xiàn),或者說(shuō)那些信號(hào)裝轉(zhuǎn)換的時(shí)機(jī)不合適,。因此在RTL設(shè)計(jì)時(shí)要保證做到時(shí)序的匹配,,以降低毛刺產(chǎn)生的可能性。

  在功耗管理模塊中有三種情況需要用到多路選擇器:

  a. 由Slow模式切換到Normal模式;

  b. 在Normal模式下重新配置PLL;

  c. 由Normal模式切換到Slow模式,。

  圖4是功耗管理模塊中的一個(gè)二選一MUX,。它的控制信號(hào)是OscillatorOrMPLL,兩個(gè)選擇源是clk_MPLL和clk_Osci,,輸出是out_ClockSource,。當(dāng)OscillatorOrMPLL為“1”時(shí),MUX選中clk_Osci;當(dāng)OscillatorOrMPLL為“0”時(shí),,MUX選中clk_MPLL,。在MUX選擇其中任何一個(gè)時(shí)鐘信號(hào)之前,clk_MPLL或clk_Osci必須已經(jīng)穩(wěn)定下來(lái)了,。強(qiáng)調(diào)一下,,這里的穩(wěn)定不是指已經(jīng)輸送出完整的時(shí)鐘信號(hào),而是輸送出高電平或低電平,。這樣當(dāng)選擇開(kāi)關(guān)達(dá)到它們那一方時(shí),,接受到的是沒(méi)有毛刺的且對(duì)整個(gè)SoC不會(huì)產(chǎn)生操作的時(shí)鐘信號(hào)。雖然在這時(shí)因?yàn)檫@種操作把SoC的頻率降了下來(lái),,但這是暫時(shí)的(大約2~3個(gè)晶振時(shí)鐘周期),,因此對(duì)整個(gè)SoC性能的影響是微乎其微的。接下來(lái)被選中的信號(hào)(clk_MPLL或clk_Osci)才開(kāi)始輸送出沒(méi)有毛刺的時(shí)鐘信號(hào),,從而最終送出的時(shí)鐘信號(hào)是去除了毛刺的,。

 

  

  圖4 MUX結(jié)構(gòu)

 

  圖5是系統(tǒng)從Slow模式切換到Normal模式時(shí)的時(shí)序圖。通過(guò)配置功耗管理模塊的內(nèi)部寄存器打開(kāi)PLL,,即in_PLLStartOrStop信號(hào),,由它觸發(fā)Slow2Normal_r信號(hào),表明當(dāng)前將要從Slow模式過(guò)渡到Normal模式,。然后,,由這個(gè)信號(hào)觸發(fā)Lock Time 計(jì)數(shù)器開(kāi)始計(jì)數(shù)(計(jì)數(shù)值由PLL的IP提供商所給的公式中確定),接著先把晶振時(shí)鐘的使能信號(hào)關(guān)掉,,再把多路選擇器打到MPLL那一方,。最后,把PLL時(shí)鐘的使能信號(hào)打開(kāi),,這時(shí)得到的就是經(jīng)過(guò)倍頻的PLL時(shí)鐘,。

 

  

  圖5 Slow到Normal的切換時(shí)序

 

  從時(shí)序圖可以清晰看出,在時(shí)鐘源切換的過(guò)程中,,最終送出的時(shí)鐘(out_ClockSource)頻率會(huì)很明顯地降低下來(lái)(大約是晶振時(shí)鐘頻率的1/3或1/2);但是如果選擇的晶振時(shí)鐘頻率在10MHz以上,,則不會(huì)對(duì)整個(gè)SoC芯片的性能產(chǎn)生影響。

  至于門(mén)控時(shí)鐘電路,已經(jīng)有許多人在這方面作了很廣泛的研究,,本文不再對(duì)此作過(guò)多的解釋[7],。

 

  5 結(jié)論

 

  本文提出了一種SoC芯片的低功耗管理策略。其基本思想是,,首先從全局考慮,,在滿足性能的前提下,根據(jù)各種應(yīng)用環(huán)境動(dòng)態(tài)地配置SoC芯片的時(shí)鐘頻率,。然后,,從局部單獨(dú)考慮單個(gè)模塊,通過(guò)判斷它當(dāng)前的工作狀態(tài)決定是否打開(kāi)其時(shí)鐘源,。

  該低功耗管理方案已經(jīng)應(yīng)用于我們?cè)O(shè)計(jì)的一款SoC芯片——Garfield,。經(jīng)過(guò)表2所列Power Compiler的功耗分析,可以清晰地看出:在Slow模式下的功耗僅為Normal模式下功耗的17%左右,,而在Sleep模式下的功耗更低,。

 

  表2 功耗分析結(jié)果

  

 

  參考文獻(xiàn)

  1 Bill Moyer. Low-Power Design for Embedded Processors

  2 Jerry Frenkil, Sequence Design Inc. Santa Clara,, CA A multi-level approach to low-power IC design. IEEE Spectrum (Volume 35,, Number 2,, February 1998)

  3 Secareanu Radu M. David Albonesi and Friedman Eby G. A Dynamic Reconfigurable Clock Generator. Motorola,, Inc, Semiconductor Products Sector,, Digital DNA Laborites,, Tempe, AZ 85284 University of Rochester,, Department of Electrical and Computer Engineering,, Rochester, NY 14627-0231

  4 Nassiri Hamid R. Low power design. Synopsys SUNG

  5 Rabaey Jan M. A Design Perspective——數(shù)字集成電路設(shè)計(jì)透視,。 1999

  6 Caldari M,, Conti M, Crippa P,, et al. Dynamic Power Management in an AMBA-Based Battery-Powered System. Departimento di Elettronica e Automatia,, University of Ancona Via Brecce Bianche, I-60131 Ancona,, ITALY

  7 Sujit Dey,, Anand Raghunathan, Jha Niraj K,, et al. Controller-based power management for control-flow intensive designs. 1999

  8 MIPS Technologies Inc. Darren Jones. How to Successfully Use Gated Clocking in an ASIC Design

  9 AMBA Specification 2.0 ,。 ARM corporation

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。