專利名稱:一種控制存儲(chǔ)器進(jìn)入低功耗模式的控制器及控制方法
技術(shù)領(lǐng)域:
本發(fā)明涉及低功耗技術(shù),特別是涉及一種控制存儲(chǔ)器進(jìn)入低功耗模式的控制器及控制方法。
背景技術(shù):
由于受電池供電的限制,手機(jī)等移動(dòng)設(shè)備對(duì)存儲(chǔ)器,如同步動(dòng)態(tài)隨機(jī)存儲(chǔ)器(SDRAM)的功耗要求非常高。SDRAM是移動(dòng)設(shè)備中重要的存儲(chǔ)器件,可以提供特殊的省電模式或低功耗模式,比如電源關(guān)閉(POWERDOWN)模式、自刷新(Selfrefresh)模式等。
一般來(lái)說(shuō),SDRAM等具有低功耗功能的存儲(chǔ)器只提供低功耗模式,而控制存儲(chǔ)器進(jìn)入低功耗模式則需要由專門的軟件來(lái)實(shí)現(xiàn)。利用軟件控制存儲(chǔ)器進(jìn)入低功耗模式的基本思想是實(shí)時(shí)檢測(cè)移動(dòng)設(shè)備是否需要使用存儲(chǔ)器,如果需要,則控制存儲(chǔ)器進(jìn)入正常工作模式;否則,控制存儲(chǔ)器進(jìn)入低功耗模式。這里所述的使用存儲(chǔ)器是指移動(dòng)設(shè)備實(shí)現(xiàn)某功能的過(guò)程中,需要存儲(chǔ)器參與。比如MP4的視頻數(shù)據(jù)存儲(chǔ)在SDRAM中,當(dāng)移動(dòng)設(shè)備實(shí)現(xiàn)MP4功能時(shí),將不可避免地使用SDRAM,即需要SDRAM參與。此時(shí),當(dāng)軟件檢測(cè)到移動(dòng)設(shè)備啟動(dòng)MP4視頻功能時(shí),將向SDRAM發(fā)送一條進(jìn)入正常工作模式的指令;當(dāng)軟件檢測(cè)到移動(dòng)設(shè)備關(guān)閉MP4視頻功能時(shí),則向SDRAM發(fā)送一條進(jìn)入低功耗模式的指令。當(dāng)然,實(shí)際應(yīng)用中,軟件無(wú)法直接向SDRAM發(fā)送指令,一般是通過(guò)移動(dòng)設(shè)備的CPU執(zhí)行控制SDRAM進(jìn)入正常工作模式或進(jìn)入低功耗模式的指令,由CPU向SDRAM發(fā)送控制命令。
實(shí)際應(yīng)用中,當(dāng)移動(dòng)設(shè)備使用SDRAM時(shí),即軟件控制SDRAM進(jìn)入正常工作模式時(shí),CPU并不是一直對(duì)SDRAM進(jìn)行讀/寫操作,在連續(xù)兩次讀/寫操作之間一般會(huì)存在一定的空閑時(shí)間。比如移動(dòng)設(shè)備在播放MP4視頻節(jié)目的過(guò)程中,CPU從SDRAM讀取一批數(shù)據(jù),并將數(shù)據(jù)保存在緩存中。之后,CPU直接從緩存中讀取數(shù)據(jù)進(jìn)行播放,等到播放完緩存中的數(shù)據(jù)之后,才再次從SDRAM中讀取下一批數(shù)據(jù),并依此類推。
也就是說(shuō),現(xiàn)有技術(shù)中,當(dāng)CPU連續(xù)兩次從存儲(chǔ)器讀/寫數(shù)據(jù)之間,存儲(chǔ)器實(shí)際上處于空閑狀態(tài),但由于被軟件控制處于工作模式中,功耗仍然比較高。
由此可見(jiàn),當(dāng)移動(dòng)設(shè)備需要使用存儲(chǔ)器時(shí),現(xiàn)有技術(shù)還不能降低存儲(chǔ)器空閑時(shí)間的功耗。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明的主要目的在于提供一種控制存儲(chǔ)器進(jìn)入低功耗模式的控制器,可以在使用存儲(chǔ)器的過(guò)程中,使存儲(chǔ)器進(jìn)入低功耗模式,降低存儲(chǔ)器空閑時(shí)的功耗。
針對(duì)本發(fā)明提出的裝置,本發(fā)明還提供一種控制存儲(chǔ)器進(jìn)入低功耗模式的方法,可以在使用存儲(chǔ)器的過(guò)程中,使存儲(chǔ)器進(jìn)入低功耗模式,降低存儲(chǔ)器空閑時(shí)的功耗。
針對(duì)第一個(gè)發(fā)明目的,本發(fā)明提出的技術(shù)方案為一種控制存儲(chǔ)器進(jìn)入低功耗模式的控制器,該控制器至少包括中斷產(chǎn)生器,用于接收來(lái)自狀態(tài)控制器的復(fù)位信號(hào)并開(kāi)始計(jì)時(shí),在達(dá)到預(yù)設(shè)時(shí)間值時(shí)向狀態(tài)控制器輸出中斷信號(hào);狀態(tài)控制器,用于在存儲(chǔ)器讀寫操作結(jié)束時(shí)向中斷產(chǎn)生器輸出復(fù)位信號(hào),接收來(lái)自中斷產(chǎn)生器的中斷信號(hào),產(chǎn)生低功耗模式控制信號(hào)并輸出給存儲(chǔ)器。
較佳地,所述中斷產(chǎn)生器包括計(jì)時(shí)器,用于接收來(lái)自狀態(tài)控制器的復(fù)位信號(hào)并開(kāi)始計(jì)時(shí),并在達(dá)到由計(jì)時(shí)器配置寄存器提供的預(yù)設(shè)時(shí)間值時(shí)向狀態(tài)控制器輸出中斷信號(hào);計(jì)時(shí)器配置寄存器,用于保存事先固化在自身或由CPU寫入的預(yù)設(shè)時(shí)間值,并將預(yù)設(shè)時(shí)間值提供給計(jì)時(shí)器。
較佳地,所述計(jì)時(shí)器為包括一個(gè)或一個(gè)以上比較器的計(jì)時(shí)器;所述計(jì)時(shí)器配置寄存器為保存一個(gè)或一個(gè)以上預(yù)設(shè)時(shí)間值的計(jì)時(shí)器配置寄存器。
較佳地,所述狀態(tài)控制器包括核心控制器,用于向所述中斷產(chǎn)生器輸出復(fù)位信號(hào),接收所述中斷產(chǎn)生器輸入的中斷信號(hào),將存儲(chǔ)器要進(jìn)入低功耗模式的編號(hào)輸出給控制信號(hào)生成器;控制信號(hào)生成器,用于根據(jù)由核心控制器輸入的模式編號(hào)產(chǎn)生低功耗模式控制信號(hào),并輸出給存儲(chǔ)器。
較佳地,所述狀態(tài)控制器進(jìn)一步包括存儲(chǔ)器狀態(tài)寄存器,用于記錄存儲(chǔ)器當(dāng)前低功耗模式的模式編號(hào);所述核心控制器進(jìn)一步用于從存儲(chǔ)器狀態(tài)寄存器讀取存儲(chǔ)器當(dāng)前低功耗模式的模式編號(hào),確定存儲(chǔ)器要進(jìn)入低功耗模式的編號(hào),并將存儲(chǔ)器要進(jìn)入低功耗模式的編號(hào)輸出給存儲(chǔ)器狀態(tài)寄存器。
較佳地,所述存儲(chǔ)器為同步動(dòng)態(tài)隨機(jī)存儲(chǔ)器SDRAM。
針對(duì)第二個(gè)發(fā)明目的,本發(fā)明提出的技術(shù)方案為一種控制存儲(chǔ)器進(jìn)入低功耗模式的方法,先設(shè)置預(yù)設(shè)時(shí)間值,當(dāng)存儲(chǔ)器讀寫操作結(jié)束時(shí),該方法還包括以下步驟A、狀態(tài)控制器向中斷產(chǎn)生器發(fā)送復(fù)位信號(hào);B、中斷產(chǎn)生器根據(jù)復(fù)位信號(hào)開(kāi)始進(jìn)行計(jì)時(shí),并在到達(dá)預(yù)設(shè)時(shí)間值時(shí)向狀態(tài)控制器發(fā)送中斷信號(hào);C、狀態(tài)控制器根據(jù)中斷信號(hào)產(chǎn)生低功耗模式控制信號(hào),并發(fā)送給存儲(chǔ)器。
較佳地,所述預(yù)設(shè)時(shí)間值為一個(gè)或一個(gè)以上預(yù)設(shè)時(shí)間值。
較佳地,所述設(shè)置預(yù)設(shè)時(shí)間值的方法為將預(yù)設(shè)時(shí)間值固化在中斷產(chǎn)生器中,或者由CPU寫入中斷產(chǎn)生器。
較佳地,步驟C所述產(chǎn)生低功耗模式控制信號(hào)的方法為X1、確定存儲(chǔ)器下一次要進(jìn)入低功耗模式的編號(hào);
X2、根據(jù)步驟X1所述的模式編號(hào)生成低功耗模式控制信號(hào),并發(fā)送給存儲(chǔ)器。
較佳地,步驟X1所述確定存儲(chǔ)器下一次模式編號(hào)的方法為直接將事先保存在自身的模式編號(hào)作為存儲(chǔ)器下一次要進(jìn)入低功耗模式的編號(hào);或者,先查詢記錄存儲(chǔ)器當(dāng)前低功耗模式的模式編號(hào),再將當(dāng)前模式編號(hào)的下一個(gè)編號(hào)作為存儲(chǔ)器下一次要進(jìn)入低功耗模式的編號(hào)。
較佳地,所述存儲(chǔ)器為SDRAM。
綜上所述,本發(fā)明提出的一種控制存儲(chǔ)器進(jìn)入低功耗模式的控制器及控制方法具有以下優(yōu)點(diǎn)(1)由于狀態(tài)控制器可以在CPU完成對(duì)存儲(chǔ)器讀/寫操作之后,向存儲(chǔ)器發(fā)送低功耗模式控制信號(hào),即控制存儲(chǔ)器進(jìn)入低功耗模式,所以,即使存儲(chǔ)器正在被移動(dòng)設(shè)備使用,但只要連續(xù)兩次讀/寫操作之間空閑時(shí)間達(dá)到一定限度,就可以進(jìn)入低功耗模式,達(dá)到進(jìn)一步節(jié)省移動(dòng)設(shè)備電池能量的目的。
(2)本發(fā)明在中斷產(chǎn)生器中可以設(shè)置多個(gè)預(yù)設(shè)時(shí)間值,狀態(tài)控制器根據(jù)存儲(chǔ)器空閑時(shí)間的不同,控制存儲(chǔ)器進(jìn)入不同的低功耗模式??臻e時(shí)間短時(shí),存儲(chǔ)器進(jìn)入功耗較高但過(guò)程簡(jiǎn)單的低功耗模式,空閑時(shí)間越長(zhǎng),存儲(chǔ)器則進(jìn)入功耗更低但過(guò)程復(fù)雜的低功耗模式。這樣,如果存儲(chǔ)器經(jīng)過(guò)短暫空閑時(shí)間就需要進(jìn)行讀/寫操作,可以很快退出低功耗模式進(jìn)入正常工作模式;如果存儲(chǔ)器的空閑時(shí)間很長(zhǎng),就可以進(jìn)入功耗更低的低功耗模式,達(dá)到最大限度降低功耗的目的。
(3)中斷產(chǎn)生器中的預(yù)設(shè)時(shí)間值不但可以事先固化,還可以由CPU寫入,可以靈活設(shè)置控制存儲(chǔ)器進(jìn)入低功耗模式的條件。
圖1是控制存儲(chǔ)器進(jìn)入低功耗模式的控制器所在的系統(tǒng)結(jié)構(gòu)示意圖;圖2是本發(fā)明中控制存儲(chǔ)器進(jìn)入低功耗模式的控制器的基本結(jié)構(gòu)示意圖;圖3是裝置實(shí)施例一的基本結(jié)構(gòu)示意圖;圖4是本發(fā)明方案的流程圖;圖5是應(yīng)用本發(fā)明方案的方案實(shí)施例的流程圖。
具體實(shí)施例方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖及具體實(shí)施例對(duì)本發(fā)明作進(jìn)一步地詳細(xì)描述。
本發(fā)明中,低功耗模式控制器是在CPU完成對(duì)存儲(chǔ)器讀/寫操作之后,產(chǎn)生低功耗模式控制信號(hào),控制存儲(chǔ)器進(jìn)入相應(yīng)的低功耗模式。
圖1顯示了本發(fā)明中低功耗模式控制器所在的系統(tǒng)結(jié)構(gòu)示意圖。如圖1所示,該系統(tǒng)包括CPU、低功耗模式控制器、存儲(chǔ)器。實(shí)際應(yīng)用中,當(dāng)CPU要對(duì)存儲(chǔ)器進(jìn)行讀/寫時(shí),將向存儲(chǔ)器發(fā)讀/寫控制信號(hào),對(duì)存儲(chǔ)器進(jìn)行讀/寫操作,將數(shù)據(jù)從存儲(chǔ)器中讀出或?qū)?shù)據(jù)寫入存儲(chǔ)器中。由于讀/寫控制信號(hào)中會(huì)指定讀/寫的字節(jié)數(shù),而讀/寫一個(gè)字節(jié)的時(shí)間一般是固定的,大致幾個(gè)時(shí)鐘周期。所以,當(dāng)CPU對(duì)存儲(chǔ)器進(jìn)行讀/寫操作時(shí),低功耗模式控制器可以確定本次讀/寫操作結(jié)束的準(zhǔn)確時(shí)間,從而可以在讀/寫操作結(jié)束時(shí)控制存儲(chǔ)器進(jìn)入低功耗模式。
這里所述的存儲(chǔ)器為具有省電功能,即能夠提供低功耗功能的存儲(chǔ)器,如SDRAM、mobile RAM等。
其中,低功耗模式控制器的基本結(jié)構(gòu)如圖2所示。本發(fā)明中,低功耗模式控制器至少包括中斷產(chǎn)生器201和狀態(tài)控制器202。
中斷產(chǎn)生器201,用于接收來(lái)自狀態(tài)控制器202的復(fù)位信號(hào)并開(kāi)始計(jì)時(shí),在達(dá)到預(yù)設(shè)時(shí)間值時(shí)向狀態(tài)控制器202輸出中斷信號(hào)。
狀態(tài)控制器202,用于對(duì)存儲(chǔ)器讀/寫操作結(jié)束時(shí)向中斷產(chǎn)生器201輸出復(fù)位信號(hào),接收來(lái)自中斷產(chǎn)生器201的中斷信號(hào),產(chǎn)生低功耗模式控制信號(hào)并輸出給存儲(chǔ)器。
當(dāng)存儲(chǔ)器讀/寫操作結(jié)束時(shí),狀態(tài)控制器202向中斷產(chǎn)生器201輸出復(fù)位信號(hào);中斷產(chǎn)生器201接收到來(lái)自狀態(tài)控制器202的復(fù)位信號(hào)后就開(kāi)始計(jì)時(shí),并在達(dá)到預(yù)設(shè)時(shí)間值時(shí)向狀態(tài)控制器202輸出中斷信號(hào);狀態(tài)控制器202接收到來(lái)自中斷產(chǎn)生器201的中斷信號(hào)時(shí),產(chǎn)生低功耗模式控制信號(hào)并輸出給存儲(chǔ)器。當(dāng)狀態(tài)控制器202將低功耗模式控制信號(hào)發(fā)送給存儲(chǔ)器時(shí),存儲(chǔ)器就可以根據(jù)所述的低功耗模式控制信號(hào)進(jìn)入相應(yīng)的低功耗模式。
實(shí)際應(yīng)用中,具有低功耗功能的存儲(chǔ)器可能提供一種或一種以上低功耗模式。如果存儲(chǔ)器可以提供一種以上低功耗模式,則狀態(tài)控制器202將產(chǎn)生指示存儲(chǔ)器進(jìn)入某一種低功耗模式的控制信號(hào)。所述的低功耗模式控制信號(hào)的形式與具體的存儲(chǔ)器相關(guān),只要具有低功耗功能的存儲(chǔ)器能夠識(shí)別狀態(tài)控制器202發(fā)送的低功耗模式控制信號(hào)即可。
比如如果控制SDRAM進(jìn)入低功耗模式,則狀態(tài)控制器202向SDRAM發(fā)送的低功耗模式控制信號(hào)除了遵循電子元件工業(yè)聯(lián)合會(huì)JEDEC標(biāo)準(zhǔn),也支持所使用SDRAM的制造商提出的特定標(biāo)準(zhǔn)等。至于SDRAM如何進(jìn)入低功耗模式則屬于現(xiàn)有技術(shù),本發(fā)明不再詳細(xì)敘述。
圖3顯示了本發(fā)明的一種裝置實(shí)施例的基本結(jié)構(gòu)示意圖。本實(shí)施例中,低功耗模式控制器要控制SDRAM進(jìn)入低功耗模式。如圖3所示,中斷產(chǎn)生器201包括計(jì)時(shí)器配置寄存器301和計(jì)時(shí)器302,狀態(tài)控制器202包括核心控制器303、控制信號(hào)生成器304、SDRAM狀態(tài)寄存器305。其中,計(jì)時(shí)器配置寄存器301,用于保存由CPU寫入的預(yù)設(shè)時(shí)間值,并將預(yù)設(shè)時(shí)間值提供給計(jì)時(shí)器302。
計(jì)時(shí)器302,用于接收來(lái)自核心控制器303的復(fù)位信號(hào)并開(kāi)始計(jì)時(shí),并在達(dá)到由計(jì)時(shí)器配置寄存器301提供的預(yù)設(shè)時(shí)間值時(shí)向核心控制器303輸出中斷信號(hào)。
核心控制器303,用于向計(jì)時(shí)器302輸出復(fù)位信號(hào);接收計(jì)時(shí)器302輸入的中斷信號(hào),讀取SDRAM狀態(tài)寄存器305中SDRAM當(dāng)前低功耗模式的模式編號(hào),確定SDRAM下一次要進(jìn)入低功耗模式的模式編號(hào),將SDRAM下一次要進(jìn)入低功耗模式的模式編號(hào)輸出給控制信號(hào)生成器304,并將SDRAM下一次要進(jìn)入低功耗模式的模式編號(hào)作為SDRAM的當(dāng)前狀態(tài)記錄在SDRAM狀態(tài)寄存器305中。
控制信號(hào)生成器304,用于根據(jù)由核心控制器303輸入的模式編號(hào)產(chǎn)生低功耗模式控制信號(hào),并輸出給SDRAM。
這里所述低功耗模式控制信號(hào)是與模式編號(hào)一一對(duì)應(yīng)的,可以將模式編號(hào)與將要產(chǎn)生的低功耗模式控制信號(hào)之間的對(duì)應(yīng)關(guān)系事先保存在控制信號(hào)生成器304中。當(dāng)控制信號(hào)生成器304接收到核心控制器303輸入的模式編號(hào),可以直接根據(jù)對(duì)應(yīng)關(guān)系產(chǎn)生相應(yīng)的低功耗模式控制信號(hào)。
SDRAM狀態(tài)寄存器305,用于記錄SDRAM當(dāng)前低功耗模式的模式編號(hào)。
當(dāng)SDRAM讀寫操作結(jié)束時(shí),核心控制器303向計(jì)時(shí)器302輸出復(fù)位信號(hào);計(jì)時(shí)器302開(kāi)始計(jì)時(shí),并在達(dá)到預(yù)設(shè)時(shí)間值時(shí)向核心控制器303輸出中斷信號(hào);核心控制器303讀取SDRAM狀態(tài)寄存器305中SDRAM當(dāng)前低功耗模式的模式編號(hào),確定SDRAM下一次要進(jìn)入低功耗模式的模式編號(hào),將SDRAM下一次要進(jìn)入低功耗模式的模式編號(hào)輸出給控制信號(hào)生成器304,并將SDRAM下一次要進(jìn)入低功耗模式的模式編號(hào)作為SDRAM的當(dāng)前狀態(tài)記錄在SDRAM狀態(tài)寄存器305中;控制信號(hào)生成器304根據(jù)模式編號(hào)產(chǎn)生低功耗模式控制信號(hào),并輸出給SDRAM。
實(shí)際應(yīng)用中,中斷產(chǎn)生器201中可以有計(jì)時(shí)器配置寄存器301,也可以沒(méi)有計(jì)時(shí)器配置寄存器301。如果沒(méi)有計(jì)時(shí)器配置寄存器301,計(jì)時(shí)器302可以通過(guò)接地和接電源的方式來(lái)表示所述的預(yù)設(shè)時(shí)間值。比如接電源的位表示“1”,接地的位表示“0”。如果預(yù)設(shè)時(shí)間值為5,用二進(jìn)制表示為101,則可以將計(jì)時(shí)器輸入端的第2位和第0位接電源、第1位接地。此時(shí),計(jì)時(shí)器302本身就可以充當(dāng)一個(gè)中斷產(chǎn)生器。
如果有計(jì)時(shí)器配置寄存器301,可以事先將所述的預(yù)設(shè)時(shí)間值固化在計(jì)時(shí)器配置寄存器301中,并且在控制器工作期間都不改變預(yù)設(shè)時(shí)間值,也可以根據(jù)實(shí)際情況由CPU寫入預(yù)設(shè)時(shí)間值,計(jì)時(shí)器302根據(jù)CPU寫入的預(yù)設(shè)時(shí)間值進(jìn)行工作。之后,CPU還可以根據(jù)實(shí)際情況向計(jì)時(shí)器配置寄存器301寫入新的預(yù)設(shè)時(shí)間值,計(jì)時(shí)器302則根據(jù)新的預(yù)設(shè)時(shí)間值進(jìn)行工作。
實(shí)際應(yīng)用中,SDRAM可以提供一種或一種以上的低功耗模式。如果SDRAM提供一種低功耗模式,則計(jì)時(shí)器302中只有一個(gè)比較器,計(jì)時(shí)器配置寄存器301中也只有一個(gè)預(yù)設(shè)時(shí)間值,而且可以沒(méi)有SDRAM狀態(tài)寄存器305。也就是說(shuō),當(dāng)計(jì)時(shí)器302接收到核心控制器303的復(fù)位信號(hào)之后,計(jì)時(shí)器302開(kāi)始計(jì)時(shí),當(dāng)比較器確定當(dāng)前計(jì)時(shí)值與預(yù)設(shè)時(shí)間值相等時(shí),計(jì)時(shí)器302就向核心控制器303發(fā)送中斷信號(hào);核心控制器303直接將事先保存在自身中的SDRAM要進(jìn)入低功耗模式的模式編號(hào)輸出給控制信號(hào)生成器304;控制信號(hào)生成器304根據(jù)模式編號(hào)生成產(chǎn)生低功耗模式控制信號(hào),并輸出給SDRAM。這里,由于SDRAM只提供一種低功耗模式,則核心控制器303可以將固定的某個(gè)編號(hào)發(fā)送給控制信號(hào)生成器304,而控制信號(hào)生成器304也只生成一種低功耗模式控制信號(hào)。當(dāng)然,核心控制器303用什么編號(hào)表示低功耗模式可以由應(yīng)用本發(fā)明的用戶自行確定,只要控制信號(hào)生成器304可以識(shí)別即可。
如果SDRAM可以提供一種以上的低功耗模式,則計(jì)時(shí)器302中包括一個(gè)以上的比較器,計(jì)時(shí)器配置寄存器301中有一個(gè)以上的預(yù)設(shè)時(shí)間值,而且需要用于記錄SDRAM當(dāng)前狀態(tài)的SDRAM狀態(tài)寄存器305。這里,預(yù)設(shè)時(shí)間值、計(jì)時(shí)器302中的比較器和低功耗模式之間存在一一對(duì)應(yīng)的關(guān)系。以SDRAM可以提供三種低功耗模式為例計(jì)時(shí)器302中包括三個(gè)比較器,計(jì)時(shí)器配置寄存器301中有三個(gè)預(yù)設(shè)時(shí)間值Ta、Tb和Tc,并且Ta<Tb<Tc。假設(shè)預(yù)設(shè)時(shí)間值Ta、比較器1和低功耗模式一之間存在對(duì)應(yīng)關(guān)系;預(yù)設(shè)時(shí)間值Tb、比較器2和低功耗模式二之間存在對(duì)應(yīng)關(guān)系;預(yù)設(shè)時(shí)間值Tc、比較器3和低功耗模式三之間存在對(duì)應(yīng)關(guān)系。當(dāng)計(jì)時(shí)器302接收到核心控制器303的復(fù)位信號(hào)之后,計(jì)時(shí)器302開(kāi)始計(jì)時(shí),在計(jì)時(shí)的過(guò)程中,Ta提供給比較器1進(jìn)行比較,Tb提供給比較器2進(jìn)行比較,Tc提供給比較器3進(jìn)行比較。當(dāng)比較器1確定當(dāng)前計(jì)時(shí)值與Ta相等時(shí),計(jì)時(shí)器302就向核心控制器303發(fā)送中斷信號(hào),核心控制器303控制SDRAM進(jìn)入低功耗模式一。之后,計(jì)時(shí)器302仍然繼續(xù)計(jì)時(shí),當(dāng)比較器2確定當(dāng)前計(jì)時(shí)值與Tb相等時(shí),計(jì)時(shí)器302再向核心控制器303發(fā)送中斷信號(hào),核心控制器303控制SDRAM進(jìn)入低功耗模式二,并依次推類。
應(yīng)用本實(shí)施例方案,可以控制SDRAM進(jìn)入不同的低功耗模式。在實(shí)際應(yīng)用中,也可以控制mobile RAM等其它具有低功耗功能的存儲(chǔ)器進(jìn)入低功耗模式,從而達(dá)到進(jìn)一步節(jié)省移動(dòng)設(shè)備電池能量的目的。當(dāng)然,此時(shí)狀態(tài)控制器202就不是包括SDRAM狀態(tài)寄存器305,而是更換為記錄其它具有低功耗功能存儲(chǔ)器狀態(tài)的存儲(chǔ)器狀態(tài)寄存器305。
針對(duì)本發(fā)明提供的裝置,本發(fā)明還提出一種控制存儲(chǔ)器進(jìn)入低功耗模式的控制方法。
本發(fā)明的基本思想是狀態(tài)控制器在存儲(chǔ)器讀/寫操作結(jié)束后向存儲(chǔ)器發(fā)送低功耗模式控制信號(hào),控制存儲(chǔ)器進(jìn)入低功耗模式。
圖4顯示了本發(fā)明的流程圖。本發(fā)明中,先在中斷產(chǎn)生器中預(yù)先設(shè)置時(shí)間值,當(dāng)CPU對(duì)存儲(chǔ)器讀寫操作結(jié)束時(shí),本發(fā)明控制存儲(chǔ)器進(jìn)入低功耗模式的方法包括以下步驟步驟401狀態(tài)控制器向中斷產(chǎn)生器輸出復(fù)位信號(hào);步驟402中斷產(chǎn)生器接收到復(fù)位信號(hào)后開(kāi)始進(jìn)行計(jì)時(shí),并在到達(dá)預(yù)設(shè)時(shí)間值時(shí)向狀態(tài)控制器輸出中斷信號(hào);步驟403狀態(tài)控制器根據(jù)中斷信號(hào)產(chǎn)生低功耗模式控制信號(hào),并發(fā)送給存儲(chǔ)器。
本發(fā)明所述的存儲(chǔ)器為具有低功耗功能的存儲(chǔ)器,如SDRAM等。
實(shí)際應(yīng)用中,具有低功耗功能的存儲(chǔ)器可能提供一種或一種以上的低功耗模式,則本發(fā)明中,狀態(tài)控制器根據(jù)中斷信號(hào)產(chǎn)生對(duì)應(yīng)不同低功耗模式的控制信號(hào),存儲(chǔ)器可以根據(jù)不同的低功耗模式控制信號(hào)進(jìn)入不同的低功耗模式。所述的低功耗模式控制信號(hào)的形式與具體的存儲(chǔ)器相關(guān),只要具有低功耗功能的存儲(chǔ)器能夠識(shí)別該低功耗模式控制信號(hào)即可。
比如向SDRAM發(fā)送的低功耗模式控制信號(hào)除了遵循電子元件工業(yè)聯(lián)合會(huì)JEDEC標(biāo)準(zhǔn)外,還要遵循所使用的SDRAM廠商的標(biāo)準(zhǔn)。至于SDRAM等存儲(chǔ)器如何進(jìn)入低功耗模式則屬于現(xiàn)有技術(shù),本發(fā)明不再詳細(xì)敘述。
實(shí)際應(yīng)用中,事先設(shè)置的預(yù)設(shè)時(shí)間值的個(gè)數(shù)和大小可以由應(yīng)用本發(fā)明方案的用戶自行確定。一般來(lái)說(shuō),預(yù)設(shè)時(shí)間值的個(gè)數(shù)與存儲(chǔ)器提供低功耗模式的個(gè)數(shù)相等。如存儲(chǔ)器提供三種低功耗模式,則需要設(shè)置三個(gè)預(yù)設(shè)時(shí)間值,并且每一個(gè)預(yù)設(shè)時(shí)間值對(duì)應(yīng)一種低功耗模式。預(yù)設(shè)時(shí)間值的大小則可以根據(jù)CPU對(duì)存儲(chǔ)器相鄰兩次讀/寫操作時(shí)間間隔T等實(shí)際情況確定。一般來(lái)說(shuō),至少有一個(gè)預(yù)設(shè)時(shí)間值應(yīng)該小于存儲(chǔ)器相鄰兩次讀/寫操作時(shí)間間隔。當(dāng)然,如果存儲(chǔ)器相鄰兩次讀/寫操作時(shí)間間隔比較長(zhǎng),則可以將一個(gè)以上的時(shí)間預(yù)設(shè)值都設(shè)置為小于存儲(chǔ)器相鄰兩次讀/寫操作時(shí)間間隔的值。
圖5顯示了本發(fā)明方法的一種實(shí)施例的流程圖。本實(shí)施例中,低功耗模式控制器將向SDRAM發(fā)送低功耗模式控制信號(hào),即控制SDRAM進(jìn)入不同的低功耗模式。SDRAM可以提供三種低功耗模式,即模式一、模式二和模式三;CPU事先將三個(gè)預(yù)設(shè)時(shí)間值寫入中斷產(chǎn)生器,這三個(gè)預(yù)設(shè)時(shí)間值分別為Ta、Tb和Tc,并且Ta<Tb<Tc。本實(shí)施例中,Ta對(duì)應(yīng)模式一,Tb對(duì)應(yīng)模式二,Tc對(duì)應(yīng)模式三。也就是說(shuō),如果計(jì)時(shí)值達(dá)到Ta,狀態(tài)控制將控制SDRAM進(jìn)入第一種低功耗模式;如果計(jì)時(shí)值達(dá)到Tb,狀態(tài)控制將控制SDRAM進(jìn)入第二種低功耗模式;如果計(jì)時(shí)值達(dá)到Tc,狀態(tài)控制將控制SDRAM進(jìn)入第三種低功耗模式。
另外,本實(shí)施例中,SDRAM的低功耗模式用編號(hào)來(lái)表示,即用000表示正常工作模式,001表示模式一,010表示模式二,011表示模式三。當(dāng)CPU對(duì)SDRAM進(jìn)行讀/寫操作時(shí),狀態(tài)控制器將SDRAM的當(dāng)前狀態(tài)記錄為000;當(dāng)控制SDRAM進(jìn)入不同的低功耗模式時(shí),則將SDRAM的當(dāng)前狀態(tài)記錄為001、010或011。
如圖5所示,當(dāng)CPU對(duì)SDRAM的讀/寫結(jié)束時(shí),本實(shí)施例控制SDRAM進(jìn)入低功耗模式的方法包括以下步驟步驟501狀態(tài)控制器向中斷產(chǎn)生器發(fā)送復(fù)位信號(hào),中斷產(chǎn)生器開(kāi)始進(jìn)行計(jì)時(shí);步驟502中斷產(chǎn)生器在當(dāng)前計(jì)時(shí)值達(dá)到預(yù)設(shè)時(shí)間值時(shí)向狀態(tài)控制器發(fā)送中斷信號(hào);步驟503狀態(tài)控制器查詢記錄SDRAM當(dāng)前低功耗模式的模式編號(hào),再將當(dāng)前模式編號(hào)的下一個(gè)編號(hào)作為SDRAM下一次要進(jìn)入低功耗模式的模式編號(hào);步驟504狀態(tài)控制器根據(jù)模式編號(hào)生成低功耗模式控制信號(hào),并發(fā)送給SDRAM。
本實(shí)施例有三個(gè)不同的預(yù)設(shè)時(shí)間值Ta、Tb和Tc,根據(jù)CPU相鄰兩次對(duì)SDRAM進(jìn)行讀/寫操作時(shí)間的間隔T的大小,則控制SDRAM進(jìn)入低功耗模式有以下三種不同的情況如果Ta<T<Tb,只需執(zhí)行步驟502~步驟504一次。也就是說(shuō),中斷產(chǎn)生器在復(fù)位后開(kāi)始計(jì)時(shí),并在計(jì)時(shí)到達(dá)Ta時(shí)向狀態(tài)控制器發(fā)送中斷信號(hào);狀態(tài)控制器查詢記錄SDRAM當(dāng)前低功耗模式的模式編號(hào),確定SDRAM當(dāng)前模式編號(hào)為000,將當(dāng)前模式編號(hào)的下一個(gè)編號(hào),即001作為SDRAM下一次要進(jìn)入低功耗模式的模式編號(hào);狀態(tài)控制器根據(jù)模式編號(hào)001生成相應(yīng)的低功耗模式控制信號(hào),發(fā)送給SDRAM,控制SDRAM進(jìn)入模式一。當(dāng)SDRAM進(jìn)入模式一之后,中斷產(chǎn)生器將繼續(xù)計(jì)時(shí),但由于在未到達(dá)Tb時(shí)間時(shí)CPU向SDRAM發(fā)起讀/寫操作,則SARAM立即被控制進(jìn)入工作模式,SDRAM當(dāng)前模式編號(hào)重新被記錄為000。
如果Tb<T<Tc,則需要重復(fù)執(zhí)行步驟502~步驟504一次。也就是說(shuō),先按照上述第一種情況控制SDRAM進(jìn)入低功耗模式一以后,由于CPU還未發(fā)起對(duì)SDRAM的讀/寫操作,則中斷產(chǎn)生器將繼續(xù)計(jì)時(shí),等到計(jì)時(shí)到達(dá)Tb時(shí)再次向狀態(tài)控制器發(fā)送中斷信號(hào);狀態(tài)控制器再次查詢記錄SDRAM當(dāng)前低功耗模式的模式編號(hào),確定SDRAM當(dāng)前模式編號(hào)為001,并將下一個(gè)編號(hào),即010作為SDRAM下一次要進(jìn)入低功耗模式的模式編號(hào);狀態(tài)控制器根據(jù)模式編號(hào)010生成相應(yīng)的低功耗模式控制信號(hào),發(fā)送給SDRAM,控制SDRAM進(jìn)入模式二。當(dāng)SDRAM進(jìn)入模式二之后,中斷產(chǎn)生器將繼續(xù)計(jì)時(shí),但由于在未到達(dá)Tc時(shí)間時(shí)CPU向SDRAM發(fā)起讀/寫操作,則SARAM立即被控制進(jìn)入工作模式,SDRAM當(dāng)前模式編號(hào)又重新被記錄為000。
如果Tb<T<Tc,則需要重復(fù)執(zhí)行步驟502~步驟504兩次,即SDRAM將先進(jìn)入低功耗模式一,再進(jìn)入低功耗模式二,最后進(jìn)入低功耗模式三。也就是說(shuō),按照上述第二種情況控制SDRAM進(jìn)入低功耗模式二以后,由于CPU還未發(fā)起對(duì)SDRAM的讀/寫操作,則中斷產(chǎn)生器將繼續(xù)計(jì)時(shí),等到計(jì)時(shí)到達(dá)Tc時(shí)再次向狀態(tài)控制器發(fā)送中斷信號(hào);狀態(tài)控制器再次查詢記錄SDRAM當(dāng)前低功耗模式的模式編號(hào),確定SDRAM當(dāng)前模式編號(hào)為010,并將下一個(gè)編號(hào),即011作為SDRAM下一次要進(jìn)入低功耗模式的模式編號(hào);狀態(tài)控制器根據(jù)模式編號(hào)011生成相應(yīng)的低功耗模式控制信號(hào),發(fā)送給SDRAM,控制SDRAM進(jìn)入模式三。當(dāng)進(jìn)入模式三之后,SDRAM將一直處于低功耗狀態(tài),直到CPU對(duì)SDRAM發(fā)起讀/寫操作為止。
實(shí)際應(yīng)用中,各預(yù)設(shè)時(shí)間值對(duì)應(yīng)SDRAM的哪種低功耗模式,可以由應(yīng)用本發(fā)明方案的用戶自行確定。一般來(lái)說(shuō),耗能越少的模式越復(fù)雜,從低功耗模式退回正常模式也越耗時(shí)。所以,可以將耗能低的模式與比較大的預(yù)設(shè)時(shí)間值對(duì)應(yīng)。也就是說(shuō),SDRAM可以先進(jìn)入耗能高但比較簡(jiǎn)單的低功耗模式,等到較長(zhǎng)時(shí)間CPU仍然未進(jìn)行讀/寫時(shí),SDRAM再進(jìn)入耗能低但比較復(fù)雜的低功耗模式。這樣,如果SDRAM經(jīng)過(guò)短暫空閑時(shí)間就需要進(jìn)行讀/寫操作,可以很快退出低功耗模式進(jìn)入正常工作模式;如果SDRAM的空閑時(shí)間很長(zhǎng),就可以進(jìn)入功耗更低的低功耗模式,達(dá)到最大限度降低功耗的目的。
實(shí)際應(yīng)用中,如果SDRAM只提供一種低功耗模式,則狀態(tài)控制器無(wú)需記錄SDRAM當(dāng)前處于哪一種低功耗模式,只需要在接收到中斷信號(hào)后,直接向SDRAM發(fā)固定的模式編號(hào),即直接將事先保存在自身中的模式編號(hào)作為SDRAM下一次要進(jìn)入低功耗模式的編號(hào)。比如可以規(guī)定“1”為SDRAM的低功耗模式編號(hào),當(dāng)狀態(tài)控制器接收到中斷信號(hào)后,直接根據(jù)編號(hào)“1”產(chǎn)生低功耗模式控制信號(hào)。
另外,實(shí)際應(yīng)用中,當(dāng)狀態(tài)控制器接收到來(lái)自CPU的讀/寫控制信號(hào),可以立即向SDRAM發(fā)送退出低功耗模式的控制信號(hào),然后進(jìn)入正常工作模式控制信號(hào),控制對(duì)SDRAM的讀/寫操作。
綜上所述,以上僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范圍。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種控制存儲(chǔ)器進(jìn)入低功耗模式的控制器,其特征在于,該控制器至少包括中斷產(chǎn)生器,用于接收來(lái)自狀態(tài)控制器的復(fù)位信號(hào)并開(kāi)始計(jì)時(shí),在達(dá)到預(yù)設(shè)時(shí)間值時(shí)向狀態(tài)控制器輸出中斷信號(hào);狀態(tài)控制器,用于在存儲(chǔ)器讀寫操作結(jié)束時(shí)向中斷產(chǎn)生器輸出復(fù)位信號(hào),接收來(lái)自中斷產(chǎn)生器的中斷信號(hào),產(chǎn)生低功耗模式控制信號(hào)并輸出給存儲(chǔ)器。
2.根據(jù)權(quán)利要求1所述的控制器,其特征在于,所述中斷產(chǎn)生器包括計(jì)時(shí)器,用于接收來(lái)自狀態(tài)控制器的復(fù)位信號(hào)并開(kāi)始計(jì)時(shí),并在達(dá)到由計(jì)時(shí)器配置寄存器提供的預(yù)設(shè)時(shí)間值時(shí)向狀態(tài)控制器輸出中斷信號(hào);計(jì)時(shí)器配置寄存器,用于保存事先固化在自身或由CPU寫入的預(yù)設(shè)時(shí)間值,并將預(yù)設(shè)時(shí)間值提供給計(jì)時(shí)器。
3.根據(jù)權(quán)利要求2所述的控制器,其特征在于,所述計(jì)時(shí)器為包括一個(gè)或一個(gè)以上比較器的計(jì)時(shí)器;所述計(jì)時(shí)器配置寄存器為保存一個(gè)或一個(gè)以上預(yù)設(shè)時(shí)間值的計(jì)時(shí)器配置寄存器。
4.根據(jù)權(quán)利要求1所述的控制器,其特征在于,所述狀態(tài)控制器包括核心控制器,用于向所述中斷產(chǎn)生器輸出復(fù)位信號(hào),接收所述中斷產(chǎn)生器輸入的中斷信號(hào),將存儲(chǔ)器要進(jìn)入低功耗模式的編號(hào)輸出給控制信號(hào)生成器;控制信號(hào)生成器,用于根據(jù)由核心控制器輸入的模式編號(hào)產(chǎn)生低功耗模式控制信號(hào),并輸出給存儲(chǔ)器。
5.根據(jù)權(quán)利要求4所述的控制器,其特征在于,所述狀態(tài)控制器進(jìn)一步包括存儲(chǔ)器狀態(tài)寄存器,用于記錄存儲(chǔ)器當(dāng)前低功耗模式的模式編號(hào);所述核心控制器進(jìn)一步用于從存儲(chǔ)器狀態(tài)寄存器讀取存儲(chǔ)器當(dāng)前低功耗模式的模式編號(hào),確定存儲(chǔ)器要進(jìn)入低功耗模式的編號(hào),并將存儲(chǔ)器要進(jìn)入低功耗模式的編號(hào)輸出給存儲(chǔ)器狀態(tài)寄存器。
6.根據(jù)權(quán)利要求1至5任一項(xiàng)所述的控制器,其特征在于,所述存儲(chǔ)器為同步動(dòng)態(tài)隨機(jī)存儲(chǔ)器SDRAM。
7.一種控制存儲(chǔ)器進(jìn)入低功耗模式的方法,其特征在于,先設(shè)置預(yù)設(shè)時(shí)間值,當(dāng)存儲(chǔ)器讀寫操作結(jié)束時(shí),該方法還包括以下步驟A、狀態(tài)控制器向中斷產(chǎn)生器發(fā)送復(fù)位信號(hào);B、中斷產(chǎn)生器根據(jù)復(fù)位信號(hào)開(kāi)始進(jìn)行計(jì)時(shí),并在到達(dá)預(yù)設(shè)時(shí)間值時(shí)向狀態(tài)控制器發(fā)送中斷信號(hào);C、狀態(tài)控制器根據(jù)中斷信號(hào)產(chǎn)生低功耗模式控制信號(hào),并發(fā)送給存儲(chǔ)器。
8.根據(jù)權(quán)利要求7所述的方法,其特征在于,所述預(yù)設(shè)時(shí)間值為一個(gè)或一個(gè)以上預(yù)設(shè)時(shí)間值。
9.根據(jù)權(quán)利要求7所述的方法,其特征在于,所述設(shè)置預(yù)設(shè)時(shí)間值的方法為將預(yù)設(shè)時(shí)間值固化在中斷產(chǎn)生器中,或者由CPU寫入中斷產(chǎn)生器。
10.根據(jù)權(quán)利要求7所述的方法,其特征在于,步驟C所述產(chǎn)生低功耗模式控制信號(hào)的方法為X1、確定存儲(chǔ)器下一次要進(jìn)入低功耗模式的編號(hào);X2、根據(jù)步驟X1所述的模式編號(hào)生成低功耗模式控制信號(hào),并發(fā)送給存儲(chǔ)器。
11.根據(jù)權(quán)利要求10所述的方法,其特征在于,步驟X1所述確定SDRAM下一次模式編號(hào)的方法為直接將事先保存在自身的模式編號(hào)作為存儲(chǔ)器下一次要進(jìn)入低功耗模式的編號(hào);或者,先查詢記錄存儲(chǔ)器當(dāng)前低功耗模式的模式編號(hào),再將當(dāng)前模式編號(hào)的下一個(gè)編號(hào)作為存儲(chǔ)器下一次要進(jìn)入低功耗模式的編號(hào)。
12.根據(jù)權(quán)利要求7至11任一項(xiàng)所述的方法,其特征在于,所述存儲(chǔ)器為SDRAM。
全文摘要
本發(fā)明提供一種控制存儲(chǔ)器進(jìn)入低功耗模式的控制器和控制方法,其關(guān)鍵在于,狀態(tài)控制器可以在CPU完成對(duì)具有低功耗功能的存儲(chǔ)器讀/寫操作之后,自動(dòng)產(chǎn)生低功耗模式控制信號(hào),控制存儲(chǔ)器進(jìn)入低功耗模式。當(dāng)讀/寫操作結(jié)束之后,狀態(tài)控制器向中斷產(chǎn)生器輸出復(fù)位信號(hào),中斷產(chǎn)生器根據(jù)復(fù)位信號(hào)開(kāi)始進(jìn)行計(jì)時(shí),并在到達(dá)預(yù)設(shè)時(shí)間值時(shí)向狀態(tài)控制器輸出中斷信號(hào),狀態(tài)控制器根據(jù)中斷信號(hào)產(chǎn)生低功耗模式控制信號(hào),并發(fā)送給存儲(chǔ)器。應(yīng)用本發(fā)明方案,可以在使用存儲(chǔ)器的過(guò)程中,降低存儲(chǔ)器空閑時(shí)的功耗,進(jìn)一步節(jié)約移動(dòng)設(shè)備電池能量。
文檔編號(hào)G11C7/00GK1877493SQ200610090529
公開(kāi)日2006年12月13日 申請(qǐng)日期2006年6月27日 優(yōu)先權(quán)日2006年6月27日
發(fā)明者張怡浩 申請(qǐng)人:北京中星微電子有限公司