專利名稱:用于動(dòng)態(tài)隨機(jī)存儲(chǔ)器(dram)設(shè)備的帶有電源管理模式的計(jì)算機(jī)系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明通常涉及計(jì)算機(jī)系統(tǒng)領(lǐng)域,更明確地說,是在這樣系統(tǒng)中管理電源使用的方法和設(shè)備。
背景技術(shù):
對(duì)于更新更高性能的可提供大容量數(shù)據(jù)高速處理的計(jì)算機(jī)系統(tǒng)來說,無疑是需要更大的工作功率。在膝上電腦、筆記本電腦及其它便攜式電腦中,現(xiàn)代計(jì)算機(jī)系統(tǒng)中的這種較大功率需求很容易使可用電源變得緊張。因此,計(jì)算機(jī)工業(yè)的從業(yè)者針對(duì)計(jì)算機(jī)系統(tǒng)的電源管理研發(fā)了多種機(jī)制。
雖然在中央處理器(CPU)的電源使用管理中取得很多進(jìn)展,但是只有相對(duì)很少幾個(gè)系統(tǒng)設(shè)計(jì)致力于在計(jì)算機(jī)的內(nèi)存子系統(tǒng)水平上控制電源的問題。而且,新型的動(dòng)態(tài)隨機(jī)存儲(chǔ)器(DRAM)比傳統(tǒng)的DRAM設(shè)備(諸如FPM、EDO、SDRAM)有更高的功率需求。鑒于以上原因,在計(jì)算機(jī)芯片設(shè)計(jì)中必須包括一些用于這些新型DRAM設(shè)備的電源狀態(tài)管理機(jī)制。
發(fā)明概要本發(fā)明為在內(nèi)存子系統(tǒng)水平上采用DRAM設(shè)備的計(jì)算機(jī)系統(tǒng)提供了一種新穎的電源管理模式。在本發(fā)明中,根據(jù)DRAM的使用頻率,將其置于適當(dāng)?shù)碾娫聪臓顟B(tài)。這樣,最近被訪問的內(nèi)存設(shè)備將被設(shè)置在完全活躍狀態(tài),而在一段時(shí)期內(nèi)未被訪問的存儲(chǔ)設(shè)備,將保持在空閑或睡眠狀態(tài)。在一個(gè)實(shí)施例中,還包括一個(gè)中間備用狀態(tài)。
根據(jù)本發(fā)明的一個(gè)特定的實(shí)現(xiàn)方案,計(jì)算機(jī)系統(tǒng)包括一個(gè)處理器,該處理器對(duì)存貯在DRAM設(shè)備中的備選訪問數(shù)據(jù)或其它信息進(jìn)行操作。該計(jì)算機(jī)包括一個(gè)堆棧結(jié)構(gòu),并且按照不同的功率消耗狀態(tài)將各個(gè)設(shè)備指定到特定的池中。一個(gè)最近訪問(MRA)的設(shè)備將被指定到一個(gè)活動(dòng)池中,并且這個(gè)MRA設(shè)備也將被置于堆棧的頂端位置(TOS)?;顒?dòng)池有一個(gè)預(yù)定大小,并帶有一個(gè)代表活動(dòng)池中最早存取設(shè)備(LRA)的確定的堆棧位置。
當(dāng)活動(dòng)池已經(jīng)滿了而且處理器正訪問另一個(gè)尚未被指派到活動(dòng)池中的設(shè)備時(shí),LRA設(shè)備將從活動(dòng)池中被移出并置于備用池中。備用池中也有一個(gè)由指針標(biāo)識(shí)的LRA設(shè)備。當(dāng)超時(shí)條件產(chǎn)生時(shí),由指針標(biāo)識(shí)的LRA設(shè)備從備用池中被移出并被置于睡眠池中。
在一個(gè)實(shí)施例中,超時(shí)條件包括處理器的時(shí)鐘多個(gè)周期。另外,當(dāng)備用池和活動(dòng)池都滿時(shí),并且處理器正訪問另一現(xiàn)在既未被指派到活動(dòng)池又未被指派到備用池的設(shè)備時(shí),LRA設(shè)備可以從備用池移到睡眠池中。
附圖簡要說明本發(fā)明通過舉例的方式而不是限制的方式來說明,圖示如下
圖1表示用于本發(fā)明的一個(gè)具體實(shí)施例中的多種電源管理狀態(tài)。
圖2A-2H舉例說明用于本發(fā)明的一個(gè)具體實(shí)施例的堆棧結(jié)構(gòu)和移位操作。
圖3說明在本發(fā)明的一個(gè)具體實(shí)施例中,通用池結(jié)構(gòu)的詳細(xì)電路示意圖。
圖4表示依照本發(fā)明,實(shí)現(xiàn)LRA設(shè)備選擇的電路圖示。
具體詳細(xì)描述在下面的描述中,具體細(xì)節(jié)的闡述是為了更徹底地理解本發(fā)明。雖然,沒有這些細(xì)節(jié),本發(fā)明也可以實(shí)施。另一方面,為了避免對(duì)本發(fā)明不必要的混淆,眾所周知的元件沒有被顯示或詳細(xì)描述。因此,說明書和附圖只是一個(gè)說明性的,而不具有限制的意義。
圖1是一個(gè)狀態(tài)示意圖,它代表根據(jù)本發(fā)明構(gòu)造的計(jì)算機(jī)內(nèi)存子系統(tǒng)中適于DRAM設(shè)備的不同的電源狀態(tài)。依據(jù)各設(shè)備被計(jì)算機(jī)系統(tǒng)的內(nèi)存請(qǐng)求器(例如CPU)訪問的時(shí)間的遠(yuǎn)近,DRAM設(shè)備被安排在這些不同狀態(tài)或池中。(在文中,池pool和狀態(tài)state可以互換)在圖1中,示出三個(gè)設(shè)備池活動(dòng)池20,備用池21和睡眠池22。
當(dāng)計(jì)算機(jī)系統(tǒng)第一次被開機(jī)或重啟,沒有DRAM設(shè)備在活動(dòng)池中。相反地,所有DRAM設(shè)備在CPU(或多處理器系統(tǒng)中的處理器)訪問它們前都處于默認(rèn)池中。默認(rèn)狀態(tài)可以是備用狀態(tài)21也可以是睡眠狀態(tài)22。在本實(shí)例中,默認(rèn)狀態(tài)是睡眠狀態(tài)22。也就是說,所有DRAM設(shè)備在計(jì)算機(jī)系統(tǒng)的處理器訪問它們前全處于睡眠狀態(tài)。
當(dāng)處理器訪問一個(gè)設(shè)備時(shí),它將從睡眠池22中被取出,并放置于活動(dòng)池20中。這一過程由圖1中的線25表示。在當(dāng)前的一個(gè)實(shí)現(xiàn)方式中,睡眠池表示掉電操作模式,在這一模式中,只有DRAM設(shè)備中內(nèi)部環(huán)(ring)振蕩器繼續(xù)運(yùn)行。這個(gè)環(huán)振蕩器在核心內(nèi)存單元自動(dòng)恢復(fù)期間提供時(shí)基。
在備用池21中的DRAM設(shè)備處于中間的電源縮減狀態(tài)。在此備用狀態(tài),DRAM設(shè)備的某些管腳被關(guān)斷,但它仍響應(yīng)系統(tǒng)時(shí)鐘信號(hào)并對(duì)電路提供電源;設(shè)備內(nèi)部的時(shí)鐘發(fā)生器也一直保持運(yùn)行。DRAM設(shè)備的輸入/輸出(I/O)部分也消耗功率?;顒?dòng)池20代表DRAM設(shè)備的正?;驖M功率狀態(tài),在這其中所有的電路功能完全運(yùn)行。
如圖1所示,當(dāng)請(qǐng)求器訪問一個(gè)DRAM設(shè)備時(shí),它可以被置于備用池21或睡眠池22中。如圖1箭頭23所示,當(dāng)備用池21中的一個(gè)設(shè)備被訪問時(shí),該設(shè)備將被轉(zhuǎn)入活動(dòng)池20中。與隨后將被詳細(xì)描述的相同,在備用池21內(nèi)在一段特定的時(shí)問內(nèi)保持空閑(即未被訪問)的各設(shè)備,最終會(huì)返回睡眠池22。這個(gè)過程由箭頭24表示。
根據(jù)本發(fā)明,從睡眠池22取出并放置進(jìn)活動(dòng)池20的DRAM設(shè)備,依據(jù)它們到達(dá)池的次序進(jìn)行堆棧和移動(dòng)。圖2A是4個(gè)設(shè)備被訪問的例子。這4個(gè)DRAM設(shè)備按照設(shè)備1、設(shè)備2、設(shè)備3、設(shè)備4的次序被訪問。
在一個(gè)具體實(shí)施例中,活動(dòng)池20和備用池21都有預(yù)定大小。在圖2A的例子中,活動(dòng)池的大小置為4。這個(gè)值可用多種方法編程進(jìn)計(jì)算機(jī)系統(tǒng)中。例如,CPU的寄存器可用于設(shè)置活動(dòng)池20的最大值?;蛘撸瑢⒃O(shè)置活動(dòng)池大小的值寫入計(jì)算機(jī)基本輸入/輸出系統(tǒng)(BIOS)中一個(gè)不變的內(nèi)存單元。同樣地,另一個(gè)寄存器或內(nèi)存單元可用于設(shè)置備用池21的大小。
在一種程序模式中,兩個(gè)寄存器域被使用一個(gè)表示活動(dòng)池的大小,而另一個(gè)表示池的總?cè)萘?。在這個(gè)模式中,備用池大小等于池的總?cè)萘繙p去活動(dòng)池大小。在圖2A-2H的例中,池的總?cè)萘渴?而活動(dòng)池大小是4。相減后,備用池大小也等于4個(gè)設(shè)備。應(yīng)該注意到,在這里描述的實(shí)例中沒有設(shè)置和追蹤睡眠池22的大小。當(dāng)然,既不在活動(dòng)池20又不在備用池21中的設(shè)備則一定默認(rèn)(缺省)地位于睡眠池22中。
再看圖2A例子,最近被訪問(MRA)設(shè)備是設(shè)備4。計(jì)算機(jī)系統(tǒng)中最早被訪問(LRA)的DRAM設(shè)備是設(shè)備1。如果處理器向設(shè)備4發(fā)出另一個(gè)訪問信號(hào),則圖2A中顯示的堆棧不變。但是,如果另一個(gè)訪問設(shè)備2的信號(hào)發(fā)生了,則設(shè)備2將被移到堆棧的頂端并且代表活動(dòng)池的MRA。在這種情況下,設(shè)備4和設(shè)備3將在堆棧中下移一個(gè)位置,而設(shè)備1仍為活動(dòng)池的LRA設(shè)備。
應(yīng)當(dāng)明了,活動(dòng)池20中LRA設(shè)備是只由活動(dòng)池大小確定的。另一方面,MRA設(shè)備總是在堆棧的頂端位置。堆棧的底部總是LRA設(shè)備。并且,這也取決于活動(dòng)池大小。在圖2A例中,活動(dòng)池大小是4,所以4號(hào)位總是LRA位置。這意味著,直到活動(dòng)池滿了,才有設(shè)備被指定為活動(dòng)池的LRA設(shè)備。必須記住的是活動(dòng)池大小是可編程的,這意味著我們并不需要指針。例如,如果活動(dòng)池大小設(shè)置為2,則堆棧結(jié)構(gòu)的第二個(gè)槽或位置代表LRA設(shè)備。
技術(shù)操作者更傾向于根據(jù)系統(tǒng)的考慮來決定活動(dòng)池和備用池的大小。例如,不同的系統(tǒng)可以根據(jù)需要配置大一些或小一些的活動(dòng)池。各種電源或熱量的限制可確定活動(dòng)池的大小或池的總?cè)萘俊@?,一些系統(tǒng)有較好的熱量發(fā)散能力,因此允許更多的DRAM設(shè)備保持在活動(dòng)狀態(tài)。這樣的系統(tǒng)比有著相對(duì)較差的熱發(fā)散能力的其它系統(tǒng)有能力擁有更大的活動(dòng)池。所以各種池的大小主要取決于特定系統(tǒng)配置的熱和電源的封裝。
現(xiàn)在關(guān)注圖2B,在圖2A所示的堆棧結(jié)構(gòu)下加入對(duì)DRAM設(shè)備5的訪問。根據(jù)堆棧和移動(dòng)的操作規(guī)則,設(shè)備5被置于堆棧頂部位置。因此,它是活動(dòng)池中MRA設(shè)備。由于設(shè)備5被放入活動(dòng)池20,剩余的每一個(gè)設(shè)備在堆棧中都下移一個(gè)位置。但是,由于活動(dòng)池已先滿了,所以設(shè)備1從活動(dòng)池20中移出并被置于備用池21中。這是因?yàn)樵O(shè)備1是活動(dòng)池中在新的對(duì)設(shè)備5的訪問之前的LRA設(shè)備。換句話說,一旦活動(dòng)池滿了,LRA設(shè)備從活動(dòng)池20中移出并放進(jìn)備用池21中。這些DRAM設(shè)備將根據(jù)它們到達(dá)備用池21的次序進(jìn)行堆棧和移動(dòng)。備用池21對(duì)堆棧結(jié)構(gòu)進(jìn)行的操作同活動(dòng)池20一樣,不同之處在于備用池21中有一個(gè)用于移動(dòng)到當(dāng)前的LRA設(shè)備的指針。
圖2C所示的是在圖2B所示的堆棧結(jié)構(gòu)下再增加依次對(duì)設(shè)備6、設(shè)備7、設(shè)備8的訪問。隨著這三個(gè)附加的訪問,現(xiàn)在設(shè)備8變?yōu)榛顒?dòng)池中的MRA設(shè)備,設(shè)備5是活動(dòng)池中的LRA設(shè)備。設(shè)備1、設(shè)備2、設(shè)備3、設(shè)備4已被移到備用池21中。注意圖2C中例子,現(xiàn)時(shí)LRA指針指向設(shè)備1。因此圖2C所示是活動(dòng)池和備用池都被裝滿了的情況。在這種情況下,如果一個(gè)已位于活動(dòng)池中的DRAM設(shè)備又被訪問,例如設(shè)備6,則只要簡單地移動(dòng)活動(dòng)池的次序即可。
圖2D的例子說明了這種情況,設(shè)備6占據(jù)了MRA位置,設(shè)備8和設(shè)備7在活動(dòng)池中下移一個(gè)位置。注意設(shè)備5仍保持為活動(dòng)池中LRA設(shè)備。在這種情況下,備用池次序不受影響。如果一個(gè)新的DRAM設(shè)備被訪問并被置于活動(dòng)池中,例如設(shè)備9,則設(shè)備5將被移入備用池中。但因?yàn)榇藭r(shí)備用池是滿的,則意味著,在備用池的LRA設(shè)備將被移入睡眠池。在上述例子中,備用池的堆棧結(jié)被定序?yàn)樵O(shè)備5、設(shè)備4、設(shè)備3及設(shè)備2。
至此提供的例子,指明了活動(dòng)池和備用池是怎樣得到填充(裝載)的。如所述,一旦一個(gè)設(shè)備被訪問,它將從睡眠池或備用池中移出并被置于活動(dòng)池中。當(dāng)活動(dòng)池已滿并且發(fā)生了對(duì)不在活動(dòng)池中的設(shè)備的訪問,則LRA設(shè)備將從活動(dòng)池移進(jìn)備用池中。
與堆棧結(jié)構(gòu)相關(guān)聯(lián)的普通邏輯電路跟蹤著活動(dòng)池和備用池。任何最新被訪問的DRAM設(shè)備的標(biāo)識(shí)都將與已經(jīng)被置于活動(dòng)池和備用池的設(shè)備相比較。這樣做的原因是因?yàn)樽钚略L問的設(shè)備可能已經(jīng)存在于活動(dòng)池或備用池中。如果設(shè)備已在活動(dòng)池中,則只要簡單移動(dòng)活動(dòng)池中堆棧次序,而備用池中堆棧次序不變。另一種情況是,如果最新訪問的設(shè)備已在備用池中,它將從備用池中移到活動(dòng)池中去。而活動(dòng)池中的LRA設(shè)備被移進(jìn)備用池中。
當(dāng)下面兩種情況之一發(fā)生時(shí),設(shè)備將從備用池中移出并被放進(jìn)睡眠池中。第一,如果活動(dòng)池和備用池都滿了,并且一個(gè)新的設(shè)備(既不在活動(dòng)池也不在備用池中)被訪問,則位于備用池LRA位置的設(shè)備被移至睡眠池中。
DRAM設(shè)備從備用池中移出并置于睡眠池中的另一種情況是當(dāng)超時(shí)條件產(chǎn)生時(shí),如前所述,備用池LRA位置在堆棧中的上下移動(dòng)是依據(jù)池中發(fā)生事件的類型確定的?;谠O(shè)備放入備用池中的次序,用一個(gè)指針來標(biāo)識(shí)備用堆棧中的當(dāng)前LRA設(shè)備。一旦該指針標(biāo)識(shí)一個(gè)設(shè)備是備用池中當(dāng)前的LRA設(shè)備,記時(shí)器就開始記時(shí)。當(dāng)備用池靜止了一段預(yù)先確定的時(shí)期后,在備用池中的LRA設(shè)備被移送到睡眠池中。當(dāng)這種情況發(fā)生時(shí),指針在堆棧中上移,并重新開始記數(shù)。
圖2E說明了此操作,它表明在圖2D的堆棧內(nèi)容下發(fā)生了一個(gè)超時(shí)事件。在這一方案中,設(shè)備1從備用池移進(jìn)睡眠池。同時(shí),指針上移標(biāo)識(shí)設(shè)備2為當(dāng)前LRA設(shè)備。在這個(gè)實(shí)例中,當(dāng)每次超時(shí)事件發(fā)生時(shí),指針都不斷地在堆棧中上移。該指針還是譯碼公式的一部分,該公式為DRAM設(shè)備從備用池移進(jìn)睡眠池時(shí)產(chǎn)生一個(gè)無效位。只有當(dāng)設(shè)備從活動(dòng)池移進(jìn)備用池時(shí),該指針才在堆棧中下移。每次該情況發(fā)生時(shí),記時(shí)器都重新啟動(dòng)(回零)。一旦指達(dá)到最大LRA位置(這取決于備用池的大小)它將保持不動(dòng),直到超時(shí)事件發(fā)生。
還應(yīng)該明白的是,當(dāng)一個(gè)備用池中的設(shè)備升級(jí)到活動(dòng)池中時(shí),指針保持在非最大LRA位置的一個(gè)特定位置。這個(gè)事件重新啟動(dòng)計(jì)時(shí)器。在一個(gè)具體實(shí)施例中,超時(shí)事件是基于計(jì)算機(jī)系統(tǒng)的中央處理器的多個(gè)時(shí)鐘周期的。當(dāng)然,超時(shí)條件的時(shí)間長度、最大LRA位置、活動(dòng)池和備用池的大小等等,都是會(huì)因系統(tǒng)的不同而變化的細(xì)節(jié)。
圖2F說明了DRAM設(shè)備在備用池中的轉(zhuǎn)移,該轉(zhuǎn)移是基于多次重復(fù)超時(shí)事件的。圖2F表示圖2E中堆棧結(jié)構(gòu)再發(fā)生兩次超時(shí)事件,此時(shí)備用池中的設(shè)備沒有活動(dòng)發(fā)生。因此,圖2F的例子說明指針如何在備用池的堆棧中上移,隨著備用池中LRA設(shè)備標(biāo)識(shí)上移一個(gè)位置,每次有一個(gè)設(shè)備置為無效且被移動(dòng)到睡眠池中。
如上所述具體實(shí)施例中,計(jì)時(shí)器僅被用于將DRAM設(shè)備從備用池移至睡眠池,而不影響活動(dòng)池中設(shè)備。在其它實(shí)施例中,記時(shí)器可能用于同時(shí)影響活動(dòng)池和備用池中設(shè)備的狀態(tài)。例如,一旦備用池空了,指針可繼續(xù)上移堆棧至活動(dòng)池中,在超時(shí)情況發(fā)生時(shí),開始從活動(dòng)池向備用池驅(qū)逐設(shè)備。一旦被置于備用池,指針就能進(jìn)一步用于以上述方式將設(shè)備驅(qū)逐到睡眠池中。
另一可替換的實(shí)例是,記時(shí)器上升到活動(dòng)池,最終根據(jù)設(shè)備的無效和空閑直接將其從活動(dòng)池移入睡眠池中。
操作者可根據(jù)成本要求和相關(guān)電路的復(fù)雜性選擇以上不同情況。普通技術(shù)人員應(yīng)用眾所周知的寄存器重命名技術(shù)完成本發(fā)明。這個(gè)技術(shù)允許在活動(dòng)池中標(biāo)識(shí)設(shè)備的寄存器被簡單地重命名到備用池寄存器,從而超時(shí)技術(shù)被用于將設(shè)備從備用池移到睡眠池中。
另一種可能是把一個(gè)設(shè)備直接從活動(dòng)池移至睡眠池一實(shí)質(zhì)上是完全游離于備用池進(jìn)行操作。
圖2G表示圖2F所示情況下,隨后有兩個(gè)新設(shè)備9和設(shè)備10以此順序訪問。在處理器新的訪問后,設(shè)備10是活動(dòng)池中MRA設(shè)備,設(shè)備8是LRA設(shè)備。由于活動(dòng)池已滿,每次新的訪問都將引起DRAM設(shè)備從活動(dòng)池移進(jìn)備用池。因此,備用池有如圖2G所示的順序,使設(shè)備7和設(shè)備5占據(jù)備用池頂端兩個(gè)位置。
如前所述,當(dāng)一個(gè)新設(shè)備進(jìn)入備用池,記時(shí)器從新啟動(dòng)。這意味著,備用池指針仍將標(biāo)識(shí)設(shè)備4為LRA設(shè)備。備用池中被標(biāo)識(shí)為當(dāng)前LRA設(shè)備的該設(shè)備將一直保持為LRA設(shè)備,直到下列三種情況之一發(fā)生(1)由于休眠超時(shí)條件發(fā)生并且當(dāng)前LRA設(shè)備被移進(jìn)睡眠池;(2)當(dāng)備用池滿載而新的被訪問的設(shè)備既不在活動(dòng)池又不在備用池中;或者(3)備用池中當(dāng)前LRA設(shè)備被訪問并升級(jí)到活動(dòng)池中。
如圖2H所示最后一個(gè)實(shí)例顯示的是本發(fā)明的操作原理。圖2H是圖2G基礎(chǔ)上發(fā)生幾個(gè)新事件后的狀態(tài)。在圖2H中,處理器訪問了兩個(gè)新的DRAM設(shè)備設(shè)備11和設(shè)備12,設(shè)備12成為活動(dòng)池中MRA設(shè)備。因?yàn)榛顒?dòng)池先前已滿,設(shè)備8和設(shè)備6將下移到備用池的堆棧中。因?yàn)楦郊拥脑L問超出了池的總?cè)萘?活動(dòng)池和備用池的),設(shè)備4將從備用池中移出并被移進(jìn)睡眠池中。
在設(shè)備4移進(jìn)睡眠池后,備用池在超過兩個(gè)超時(shí)事件的時(shí)段內(nèi)保持靜止。這兩個(gè)超時(shí)事件使設(shè)備5和設(shè)備7無效,使其轉(zhuǎn)移到睡眠池中。該例顯示,指針在堆棧中上升,當(dāng)前指向設(shè)備8作為備用池中LRA設(shè)備。
圖3是一個(gè)詳細(xì)電路圖說明本發(fā)明的總的池結(jié)構(gòu)30。池30包括多路選擇器31,其存儲(chǔ)了從插槽1到插槽N的設(shè)備標(biāo)識(shí)符。每個(gè)插槽代表堆棧結(jié)構(gòu)的一個(gè)位置。每一個(gè)多路選擇器31都被耦合到一個(gè)數(shù)據(jù)鎖存器33上,該鎖存器33有一個(gè)輸出耦合饋回當(dāng)前插槽位置的多路選擇器31的一個(gè)輸入端。數(shù)據(jù)鎖存器33的輸出還耦合到下一插槽位置上的多路選擇器31的一個(gè)輸入端。使用一個(gè)有效裝入信號(hào)對(duì)出現(xiàn)在一個(gè)接一個(gè)插槽基面上的多路選擇器31的兩個(gè)輸入端進(jìn)行選擇。采用一個(gè)普通時(shí)鐘信號(hào)來將數(shù)據(jù)鎖存到每個(gè)數(shù)據(jù)鎖存器33。每個(gè)被耦合到多路選擇器31的有效裝入信號(hào)可由一個(gè)普通的狀態(tài)機(jī)產(chǎn)生,該狀態(tài)機(jī)可跟蹤活動(dòng)池和備用池,并且對(duì)該池中的設(shè)備標(biāo)識(shí)符與最新訪問的設(shè)備進(jìn)行比較。
圖4是依照本發(fā)明的一個(gè)具體實(shí)施例中在備用池中使用的實(shí)現(xiàn)LRA設(shè)備指針的一個(gè)電路示意圖。多路選擇器35有一個(gè)耦合到狀態(tài)機(jī)(沒有畫出)的選擇輸入信號(hào)36,該狀態(tài)機(jī)用來跟蹤活動(dòng)池和備用池。多路轉(zhuǎn)換器35的各個(gè)輸入代表鎖存在圖3所示的池電路30中的各個(gè)堆棧位置或插槽中的數(shù)據(jù)信息。當(dāng)前LRA設(shè)備表示基于選擇輸入信號(hào)36的多路選擇器35的輸出。
權(quán)利要求
1.一個(gè)計(jì)算機(jī)系統(tǒng)包括一個(gè)中央處理器(CPU);一個(gè)內(nèi)存子系統(tǒng),該子系統(tǒng)包括耦合到所述CPU的DRAM設(shè)備,所述CPU選擇性的訪問存儲(chǔ)于DRAM設(shè)備中的信息;邏輯電路,該電路根據(jù)CPU對(duì)每個(gè)DRAM設(shè)備當(dāng)時(shí)的訪問情況將設(shè)備分派給活動(dòng)池、備用池或睡眠池,所述活動(dòng)池、備用池和睡眠池相應(yīng)于DRAM設(shè)備的功率消耗狀態(tài);和用于儲(chǔ)存活動(dòng)池大小以確定活動(dòng)池中設(shè)備的最大數(shù)量,以及儲(chǔ)存?zhèn)溆贸卮笮∫源_定備用池中設(shè)備的最大數(shù)量的裝置;其中,所述邏輯電路中包括一個(gè)與活動(dòng)池和備用池相關(guān)的堆棧結(jié)構(gòu),在這堆棧結(jié)構(gòu)中,MRA設(shè)備被安置在活動(dòng)池中且處于堆棧頂部(TOS)位置,當(dāng)活動(dòng)池已滿且中央處理器訪問另一個(gè)位于備用池或睡眠池中的設(shè)備時(shí),在活動(dòng)池中的LRA設(shè)備將被移至備用池。
2.根據(jù)權(quán)利要求1的計(jì)算機(jī)系統(tǒng)還包括用于指向備用池中LRA設(shè)備的裝置,當(dāng)活動(dòng)池和備用池已滿且CPU訪問另一位于睡眠池中設(shè)備時(shí),備用池中的LRA設(shè)備將被移至睡眠池中。
3.根據(jù)權(quán)利要求1的計(jì)算機(jī)系統(tǒng),其中邏輯電路還包括用于在一段選定的靜止時(shí)段后把備用池中的LRA設(shè)備移至睡眠池中的記時(shí)器裝置。
4.根據(jù)權(quán)利要求1的計(jì)算機(jī)系統(tǒng),其中CPU對(duì)活動(dòng)池中一個(gè)設(shè)備的訪問不會(huì)影響備用池或睡眠池。
5.根據(jù)權(quán)利要求1的計(jì)算機(jī)系統(tǒng),其中選定的靜止時(shí)間段由若干CPU時(shí)鐘周期組成。
6.根據(jù)權(quán)利要求1的計(jì)算機(jī)系統(tǒng),其中當(dāng)備用池是空的且選定的靜止時(shí)間段已消耗完,所述記時(shí)器裝置將活動(dòng)池中的LRA移到備用池或睡眠池中。
7.根據(jù)權(quán)利要求1的計(jì)算機(jī)系統(tǒng),其中所述存儲(chǔ)裝置由一個(gè)或多個(gè)CPU的寄存器組成。
8.根據(jù)權(quán)利要求1的計(jì)算機(jī)系統(tǒng),其中所述存儲(chǔ)裝置由與一個(gè)基本輸入/輸出系統(tǒng)(BIOS)或計(jì)算機(jī)系統(tǒng)相關(guān)的內(nèi)存位置組成。
9.根據(jù)權(quán)利要求1的計(jì)算機(jī)系統(tǒng),其中存儲(chǔ)裝置是可編程的。
10.一個(gè)計(jì)算機(jī)系統(tǒng)包括一個(gè)總線;一個(gè)耦合到所述總線的處理器;多個(gè)耦合到所述總線上的DRAM設(shè)備,所述處理器經(jīng)過所述總線訪問這些DRAM設(shè)備;一個(gè)控制器,其根據(jù)DRAM設(shè)備的功率消耗狀態(tài)將每一個(gè)DRAM設(shè)備指派到多個(gè)池中的一個(gè)去,多個(gè)池包括一個(gè)保持設(shè)備的高功率消耗狀態(tài)的活動(dòng)池和一個(gè)保持設(shè)備的低功率消耗狀態(tài)的睡眠池,控制器還有一個(gè)堆棧,最近被訪問(MRA)的設(shè)備被指派到活動(dòng)池的堆棧頂端(TOS)位置,未被訪問的設(shè)備被指派到睡眠池中。
11.根據(jù)權(quán)利要求10的計(jì)算機(jī)系統(tǒng),其中所述多個(gè)池還包括一個(gè)備用池,它容納的設(shè)備的功率消耗處中間狀態(tài),當(dāng)活動(dòng)池是滿的,并且處理器正訪問另一個(gè)未被指派到備用池或睡眠池的設(shè)備時(shí),活動(dòng)池中的LRA設(shè)備將被移至備用池中。
12.根據(jù)權(quán)利要求11的計(jì)算機(jī)系統(tǒng)還包括一個(gè)第一存儲(chǔ)單元,它用來存儲(chǔ)活動(dòng)池大小以確定活動(dòng)池中設(shè)備的最大數(shù)量。
13.根據(jù)權(quán)利要求12的計(jì)算機(jī)系統(tǒng)還包括一個(gè)第二存儲(chǔ)單元,它用來存儲(chǔ)備用池大小以確定備用池設(shè)備中最大數(shù)量。
14.根據(jù)權(quán)利要求10的計(jì)算機(jī)系統(tǒng),其中當(dāng)計(jì)算機(jī)系統(tǒng)重啟時(shí),所有DRAM設(shè)備都被指派到睡眠池中。
15.根據(jù)權(quán)利要求13的計(jì)算機(jī)系統(tǒng)還包括一個(gè)指向備用池中的LRA設(shè)備的指針。
16.根據(jù)權(quán)利要求15的計(jì)算機(jī)系統(tǒng),其中當(dāng)活動(dòng)池和備用池都是滿的且處理器正訪問位于睡眠池中的另一設(shè)備時(shí),備用池中的LRA設(shè)備將被移至睡眠池。
17.根據(jù)權(quán)利要求15的計(jì)算機(jī)系統(tǒng)還包括一個(gè)計(jì)時(shí)器,它在一段選定的靜止時(shí)段后,把備用池中的LRA設(shè)備移至睡眠池中。
18.根據(jù)權(quán)利要求11的計(jì)算機(jī)系統(tǒng),其中處理器對(duì)活動(dòng)池中一個(gè)設(shè)備的訪問不影響備用池和睡眠池。
19.根據(jù)權(quán)利要求17和計(jì)算機(jī)系統(tǒng),其中當(dāng)備用池是空的并且被選定的靜止時(shí)段已經(jīng)被耗盡時(shí),計(jì)時(shí)器裝置將把活動(dòng)池中的LRA移至備用池或睡眠池中。
20.一種計(jì)算機(jī)系統(tǒng)的電源管理方法,該系統(tǒng)包括一個(gè)能訪問存儲(chǔ)在DRAM設(shè)備中的信息的處理器。,該方法包括以下步驟(a)將最近被訪問(MRA)設(shè)備指派到與一個(gè)堆棧相關(guān)的活動(dòng)池中,該MRA設(shè)備將處于堆棧頂端(TOS)位置,所述活動(dòng)池有一個(gè)預(yù)先設(shè)定的大小,并有一個(gè)表示活動(dòng)池中最早被訪問(LRA)設(shè)備的堆棧單元;(b)當(dāng)活動(dòng)池已滿并且處理器正訪問一個(gè)目前不在活動(dòng)池中的另一設(shè)備時(shí),LRA設(shè)備從活動(dòng)池被移至備用池;(c)標(biāo)識(shí)備用池中一個(gè)LRA設(shè)備;并且(d)當(dāng)超時(shí)條件發(fā)生時(shí),將LRA設(shè)備從備用池轉(zhuǎn)移到睡眠池。
21.根據(jù)權(quán)利要求20的方法,其中備用池也與堆棧相關(guān)聯(lián),而且活動(dòng)池、備用池和睡眠池對(duì)應(yīng)相應(yīng)的功率消耗狀態(tài),活動(dòng)池對(duì)應(yīng)于高功消耗狀態(tài),睡眠池對(duì)應(yīng)于低功消耗狀態(tài)。
22.根據(jù)權(quán)利要求20的方法,其中,超時(shí)條件包括處理器的若干個(gè)時(shí)鐘周期。
23.根據(jù)權(quán)利要求20的方法,還包括一個(gè)初始化步驟將預(yù)先設(shè)定的大小編程到寄存器中。
24.根據(jù)權(quán)利要求20的方法,其中備用池也有一個(gè)預(yù)先設(shè)定的大小,還進(jìn)一步包括如下步驟當(dāng)備用池和活動(dòng)池都已滿,并且處理器正訪問另一個(gè)當(dāng)前未在活動(dòng)池或備用池中的設(shè)備時(shí),將LRA設(shè)備從備用池轉(zhuǎn)移至睡眠池中。
全文摘要
一計(jì)算機(jī)系統(tǒng)在存儲(chǔ)器子系統(tǒng)中采用DRAM設(shè)備(設(shè)備1-12),這些DRAM設(shè)備被指派給相應(yīng)于不同功耗的池,且最近訪問的(MRA)被指派給活動(dòng)池(20)并置于一堆垛結(jié)構(gòu)的頂部。當(dāng)活動(dòng)池是滿的且處理器訪問另一個(gè)非當(dāng)時(shí)指定給活動(dòng)池(20)的設(shè)備時(shí),在活動(dòng)池中的一LRA設(shè)備從活動(dòng)池移到備用池(21)。在下述兩條件之一時(shí),備用池(21)中的一LRA設(shè)備移入睡眠池(22):超時(shí)出現(xiàn),或備用池和活動(dòng)池(20和21)是滿的且處理器訪問另一個(gè)非當(dāng)且處理器訪問另一個(gè)非當(dāng)時(shí)指定給活動(dòng)池或備用池(20和21)的設(shè)備時(shí)。
文檔編號(hào)G06F1/32GK1332862SQ99815142
公開日2002年1月23日 申請(qǐng)日期1999年11月1日 優(yōu)先權(quán)日1998年11月3日
發(fā)明者S·D·本恩, M·W·威廉斯 申請(qǐng)人:英特爾公司