两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

獨立于操作系統(tǒng)的存儲器功率管理的制作方法

文檔序號:6553414閱讀:226來源:國知局
專利名稱:獨立于操作系統(tǒng)的存儲器功率管理的制作方法
技術領域
本發(fā)明涉及功率管理領域。更具體地說,本發(fā)明涉及獨立于操作系統(tǒng)行為來管理存儲器功率。
背景技術
在許多計算機系統(tǒng)中,存儲器元件可消耗相對大量的功率。例如,存儲器占典型系統(tǒng)總功耗的20-30%是很常見的。對于大型服務器系統(tǒng),被存儲器消耗的總功率的百分比可能甚至更高。功耗可能是重要的考慮因素。例如,在移動設備(如筆記本式計算機、個人數(shù)據(jù)助理、蜂窩式電話等)中,功耗直接影響電池壽命。在固定設備(如臺式計算機、服務器、路由器等)中,它們消耗的功率值可能是昂貴的。


本發(fā)明的示例在附圖中描述。但是附圖并不限制本發(fā)明的范圍。圖中相似的引用表示相似的元件。
圖1描述了不具有獨立于操作系統(tǒng)的存儲器功率管理的計算機系統(tǒng)的示例。
圖2描述了根據(jù)本發(fā)明的一個實施例具有獨立于操作系統(tǒng)的存儲器功率管理的計算機系統(tǒng)的示例。
圖3描述了根據(jù)本發(fā)明的一個實施例具有多個操作系統(tǒng)的計算機系統(tǒng)的示例。
圖4A至4D描述了根據(jù)本發(fā)明的一個實施例在時間四個瞬間存儲器位置中的數(shù)據(jù)項的示例。
圖5描述了根據(jù)本發(fā)明的一個實施例的功能框圖。
圖6描述了重定位數(shù)據(jù)項的方法的一個實施例。
圖7描述了跟蹤數(shù)據(jù)項位置的方法的一個實施例。
圖8描述了跟蹤新數(shù)據(jù)項的方法的一個實施例。
圖9描述了跟蹤被刪除數(shù)據(jù)項的方法的一個實施例。
圖10描述了跟蹤被重定位的數(shù)據(jù)項的方法的一個實施例。
圖11描述了設置存儲器元件功率狀態(tài)的方法的一個實施例。
圖12描述了可執(zhí)行本發(fā)明各種功能的硬件系統(tǒng)的一個實施例。
圖13描述了用以存儲可實現(xiàn)本發(fā)明各種功能的指令的機器可讀介質(zhì)的一個實施例。
具體實施例方式
在以下描述中,大量特定細節(jié)被闡述以提供對本發(fā)明的透徹理解。然而,那些本領域的技術人員將會理解,本發(fā)明可沒有這些特定細節(jié)而被實現(xiàn),本發(fā)明不限于所描述的實施例,并且本發(fā)明可在各種備選實施例中被實現(xiàn)。在其它實例中,眾所周知的方法、程序、組件和電路沒有被詳細地描述。
說明的一部分將利用本領域技術人員將他們的工作內(nèi)容傳達給其他本領域技術人員時普遍使用的術語來呈現(xiàn)。還有,說明的一部分將依據(jù)通過編程指令的執(zhí)行而被執(zhí)行的操作來呈現(xiàn)。本領域技術人員將會較好地理解,這些操作通常采取以下形式電、磁、或者能被存儲、轉移、合并或以其它方式通過例如電子組件來操縱的光信號。
各種操作將以有助于理解本發(fā)明的方式被描述為依次執(zhí)行的多個離散步驟。然而,說明的順序不應該被解釋為暗示這些操作必須按照它們被呈現(xiàn)的順序來執(zhí)行,也不應當解釋為依賴于順序。最后,重復使用的短語“在一個實施例中”并不一定指同一實施例,盡管它可能是。
本發(fā)明的實施例能夠獨立于操作系統(tǒng)行為、通過降低存儲器的未使用部分的功率來減少存儲器系統(tǒng)的功耗。
圖1描述了不具備本發(fā)明的實施例提供的優(yōu)勢的典型計算設備100的示例。計算機設備100包括操作系統(tǒng)(OS)110和物理存儲器陣列130。存儲器陣列130能夠為OS 110提供隨機存取存儲器(RAM)。即,OS 110可將陣列130看作一組OS可全部連續(xù)地和平等地獲得以存儲數(shù)據(jù)的存儲器位置,并且OS可事實上在任意時間向任意的存儲器位置寫入數(shù)據(jù),或從中讀出數(shù)據(jù)。
OS 110可維護頁表120以跟蹤數(shù)據(jù)頁被存儲在存儲器陣列130中的哪里。頁表120可通過記錄存儲器陣列130中每個數(shù)據(jù)頁的物理地址來跟蹤位置。例如,這在圖1中通過從頁表120中的頁A、B、C、D和E指向存儲器陣列130中的相應位置的箭頭進行描述。實際上,頁表可在任意給定時間跟蹤存儲器陣列中成千上萬的頁。例如當應用關閉以及新的應用開始時,數(shù)據(jù)頁可不斷地從表和存儲器陣列中增加和移除。特別是服務器經(jīng)常快速連續(xù)地交換大量的數(shù)據(jù)。
大多數(shù)隨機存取存儲器技術趨向于動態(tài)的。在動態(tài)隨機存取存儲器(DRAM)中,數(shù)據(jù)快速地衰減且只在維持工作功率時才將被保留,并且數(shù)據(jù)被周期性地刷新。在這種情況下,為了使整個陣列130全部被OS 110可獲得用于隨機存取,在操作系統(tǒng)有效任意時候,整個陣列130通常被特別并完全供以功率并被快速刷新,即使很少或沒有數(shù)據(jù)被存儲。例如,所描述的實施例包括功率和刷新線路140,它能均勻地供應整個存儲器陣列130。
對比這個典型的計算系統(tǒng),本發(fā)明的實施例能夠在操作系統(tǒng)和存儲器資源之間插入抽象層。通過此抽象層,本發(fā)明的實施例能夠將數(shù)據(jù)打包到一部分可用存儲器中,從而存儲器的另一部分可被設在低功率狀態(tài),始終向操作系統(tǒng)提供完全操作的存儲器陣列的外貌。
例如,圖2描述了根據(jù)本發(fā)明的一個實施例包括存儲器功率管理特征的計算設備200。計算設備200可包括與圖1中計算設備100相同的操作系統(tǒng)(OS)110和頁表120。然而,在圖2的實施例中,重定位掩模225可在OS和存儲器陣列230之間提供抽象層。存儲器陣列230可被分成元件A、B、C和D,并且存儲器元件可通過線路280、282、284和286被單獨地供電和/或刷新。
重定位掩膜225可包括大量入口227,它能夠將頁表120中被OS110定義的數(shù)據(jù)頁的位置跟蹤到物理存儲器陣列230中數(shù)據(jù)頁的實際位置。例如在圖1中,頁表120將頁A定義在存儲器陣列的位置2。然而,重定位掩膜225映射位置2到元件A、存儲器陣列230中的位置1。同樣地,頁B被定義在位置4,它映射到元件A、位置2;頁C被定義在位置6,它映射到元件A、位置3;頁D被定義在位置7,它映射到元件B、位置1;以及頁E被定義在位置11,它映射到元件B、位置2。
如圖所示隨著數(shù)據(jù)頁被打包到存儲器陣列230的較低端,被打包數(shù)據(jù)的邊界232在元件B、位置3處,并且存儲器元件C和D沒有數(shù)據(jù)項。既然陣列230中的每個存儲器元件都可以被單獨地供電和刷新,則元件C和D可被設置成較低的、非有效的功率狀態(tài)以節(jié)省功率。例如,刷新率可被降低或完全停止,和/或功率電平可被降低或完全關掉。
然而由于OS 110可在任意時間將附加數(shù)據(jù)寫入到存儲器,并且由于返回非有效的存儲器元件給有效的功率狀態(tài)可能引起不希望的延遲,為了給OS 110提供快速存取存儲器236,所描述的實施例可保持一些空存儲器有效。各種技術中的任意一個可用于預計在任何給定時間可能需要多少存儲器。例如,例如那些用于為處理器將數(shù)據(jù)預取到高速緩沖存儲器中的統(tǒng)計學算法可類似地用于預計在給定的例如由一段時間后有效應用和/或過程的數(shù)量和類型定義的計算設備的某種狀態(tài)下OS可能需要多少存儲器。在所描述的實施例中,空存儲元件C可為快速存取存儲器236被保留有效,而存儲器元件D可能是唯一的非有效存儲器元件234。如果需要比預計更多的存儲器,則存儲器元件D可重新有效。另一方面,如果計算系統(tǒng)要進入備用模式,只有很少或沒有存儲器行為,則快速存取存儲器可能不需要并且存儲器元件C和D都可能被關掉。
對于OS 110,無論何時OS有效,整個存儲器陣列230可完全顯示并持續(xù)地有效。OS 110可定義陣列230中的任意存儲器位置以寫入、讀取或刪除數(shù)據(jù),并且掩膜225可指引每個存儲器訪問到相應的物理存儲器位置。新數(shù)據(jù)能夠被指引到快速存取存儲器位置236或陣列230的被打包末端由被刪除數(shù)據(jù)留下的孔。被打包位置和空位之間的邊界232可隨著數(shù)據(jù)被交換出入陣列230而移動??焖俅嫒〈鎯ζ?36的數(shù)量和非有效存儲器元件234的數(shù)量可隨著邊界232的移動和設備200的預計存儲器需求的改變而改變。
通過頁表120跟蹤的數(shù)據(jù)項可采取多種形式的任一種。在一個實施例中,每個數(shù)據(jù)項包括四千字節(jié)數(shù)據(jù)。在另一實施例中,每個數(shù)據(jù)項可能像單個數(shù)據(jù)位一樣小,或多至幾千字節(jié)及以上。在各種其它實施例中,數(shù)據(jù)項可每個都有不同的大小。
頁表120中被跟蹤的數(shù)據(jù)頁也可來自各種不同的源并且以各種不同的方式使用。例如,OS本身可產(chǎn)生并使用頁表120中跟蹤的數(shù)據(jù)。數(shù)據(jù)也可屬于任意在計算設備200上運行的各種應用或過程。在另一示例中,數(shù)據(jù)可包括頁式虛擬存儲器。
存儲器陣列230可按各種不同的方式設置。例如在一個實施例中,存儲器陣列230可代表單個的集成電路(IC)芯片或較大的IC芯片中的一個區(qū)域。在另一實施例中,每個元件A、B、C和D都可代表耦合到多于一個印制電路板(PCB)上的分離IC芯片,或分布在一個或多個較大IC芯片中的分離區(qū)域。各種存儲器技術中的任一種可用于存儲器陣列130。
備選實施例可包括更多或更少的具有單獨控制的功率狀態(tài)的存儲器元件,并且每個存儲器元件可包括更多或更少的存儲器位置。例如,每個存儲器元件可包括不同數(shù)量的存儲器位置。在另一示例中,每個存儲器位置可包括具有單獨控制的功率狀態(tài)的分離存儲器元件。
功率狀態(tài)能以各種不同的方式控制。例如,許多存儲器技術包括兩種刷新機制,即外部刷新和自刷新。外部刷新的刷新率通常較高并且一般消耗更多的能量。例如當計算設備處于有效狀態(tài)時,外部刷新通常設計用于提供更快的存儲器性能。自刷新的刷新率通常低得多并且一般消耗較少的能量。例如當計算行為被掛起持續(xù)很久時間時,自刷新通常被設計為將可安全保持存儲器中數(shù)據(jù)的最低可能刷新。在這種情況下,在本發(fā)明的一個實施例中,與其為每個存儲器元件單獨地控制功率和刷新,不如所有存儲器元件可共享共同的電源,但是獨立地可控制以在外部刷新和自刷新之間切換。
在其它實施例中,多種功率狀態(tài)可同時地或選擇性地使用。例如,一些存儲器元件可被完全關掉,一些可接收功率但不刷新,一些可接收功率和自刷新,而其它的可完全有效即接收功率并外部刷新。在另一示例中,當處于操作的備用模式下,甚至被占用的存儲器位置可被置在減少的功率狀態(tài),如較低的電源和/或自刷新。同時,空存儲器位置可被置在更低的功率狀態(tài),如沒有電源且沒有刷新。其它實施例可使用任意這些的組合以及其它功率狀態(tài)。
本發(fā)明的實施例實際上被用于包括操作系統(tǒng)和存儲器的任意電子設備。例如,本發(fā)明的實施例可用于筆記本式計算機、臺式計算機、服務器計算機、個人數(shù)據(jù)助理(PDA)、蜂窩式電話、博弈設備、全球定位系統(tǒng)(GPS)單元等。
此外,本發(fā)明的實施例可同時支持多個操作系統(tǒng)。例如,如圖3所示,操作系統(tǒng)1到N可維護頁表1到N。重定位掩膜320可將N個操作系統(tǒng)定義的數(shù)據(jù)頁的位置跟蹤到存儲器陣列330中的物理位置。如圖2中的實施例,數(shù)據(jù)可打包到存儲器陣列330的元件(未示出)中,而陣列330中的空存儲器元件可單獨進入較低功率狀態(tài)。
管理存儲器功率本身可消耗一定量的功率。在特定的有效計算系統(tǒng)中,管理存儲器的功率消耗可能比它節(jié)省的功率更多。例如,如果每次新數(shù)據(jù)項被寫入或刪除時存儲器都被重新打包,并且大量的數(shù)據(jù)被頻繁的交換出入存儲器同時非常少的未使用存儲器被留下,則由于管理存儲器的功率可有功耗的凈增加。在這種情況下,與其持續(xù)執(zhí)行各種功率管理功能,不如定期執(zhí)行一些功能或停止一些或全部功能,尤其在繁重的存儲器通信過程中。
圖4A至4D描述了根據(jù)本發(fā)明的一個實施例的激活并周期性執(zhí)行存儲器功率管理的各種功能的示例。圖4A描述了許多能被單獨控制進入較低功率狀態(tài)的存儲器位置410。然而在圖4A所示的瞬時,所有存儲器元件410都處在有效狀態(tài)。例如當機器開啟時,位置410可被初始有效,或者存儲器功率管理之前可能已被停止。
在某一實施例中,用戶可具有手動禁止或啟動存儲器功率管理的選擇權。在其它實施例中,存儲器功率管理可在一些事件發(fā)生時自動地激活或去激活,例如筆記本式計算機從AC電源轉換到電池供電、電池的功率電平縮小到某一電平,或者數(shù)據(jù)通信和自由存儲器空間達到某一界限。
在任意事件中,既然圖4A中所有的存儲器元件410都有效,則數(shù)據(jù)可被寫入任意位置。例如,重定位掩膜可簡單地將數(shù)據(jù)寫入操作系統(tǒng)定義的任意位置。在所描述的實施例中,有六個被占用的位置430和十二個空位置420。被占用的位置430被涂上陰影以代表存儲的數(shù)據(jù),并且顯然以隨機的方式被分布在低地址存儲器位置412和高地址存儲器位置414之間。
圖4B描述了存儲器功率管理激活之后的存儲器位置410。在所描述的實施例中,來自被占用位置430的數(shù)據(jù)被重定位以將數(shù)據(jù)打包到較低地址的位置。被打包數(shù)據(jù)的邊界440將被占用的位置430與空位置420隔開。
在其它實施例中,數(shù)據(jù)項可以各種其它方式進行打包。例如,數(shù)據(jù)項可打包到較高地址的位置,或者數(shù)據(jù)項可在某一地址開始打包并填充從那個地址向上和/或向下的每個地址位置。在最后這種情況下,將被打包位置和空位隔開的邊界可包括兩個地址,一個在被打包數(shù)據(jù)的低端而另一個在高端。然而在另一示例中,數(shù)據(jù)可被打包到地址位置的各個段,其中空地址位置分布在成對的打包段之間。在這種情況下,隔開打包位置和空位的邊界可包括很多地址位置,處于每個被打包段的低端和高端。
再次參考圖4B,所描述的實施例顯示出七個可為快速存取保留有效的存儲器位置450。例如,給定存儲器位置在其中使用的計算設備的當前狀態(tài),則七個存儲器位置可被預計滿足設備的存儲器需要。剩下的五個存儲器位置460可被置為非有效狀態(tài)以節(jié)省功率。
在圖4B和4C之間,數(shù)據(jù)從先前被占用的位置435中的兩個存儲器位置480被刪除,而新數(shù)據(jù)被寫入快速存取位置450中的四個存儲器位置485。自圖4B以后,除了記錄什么數(shù)據(jù)已被刪除并將新數(shù)據(jù)指引到快速存取位置,存儲器功率管理可做的其它工作很少。根據(jù)該低有效級,存儲器功率管理可消耗非常少的功率。同時,相同的五個存儲器位置460可保持非有效,潛在地導致顯著的凈功率節(jié)省。
在圖4C和圖4D之間,發(fā)生了打包和功率狀態(tài)設置的另一重復。這個重復可通過任意數(shù)量的事件觸發(fā)。例如,它可能僅僅是定期重復的時間,或者空的快速存取位置的數(shù)量可下降到某一等級,或者快速存取存儲器的預期數(shù)量可發(fā)生改變。無論是什么原因,較低地址的位置432被重打包為來自八個被占用的存儲器位置的數(shù)據(jù),快速存取位置452的數(shù)量由七個下降到五個,并且非有效位置462的數(shù)量由五個下降到四個。每次觸發(fā)事件發(fā)生,打包和功率狀態(tài)設置的相似重復可發(fā)生。
圖5描述了可實現(xiàn)如上所述本發(fā)明的各種實施例的存儲器功率管理器510的功能框圖。重定位邏輯520可將數(shù)據(jù)打包到部分存儲器。跟蹤邏輯530可管理重定位掩膜以指引和跟蹤存儲器存取來使存儲器位置有效。功率狀態(tài)邏輯540可為計算系統(tǒng)預計快速存取存儲器需要并減少任意剩余的空存儲器位置的功率狀態(tài)。這三項基礎功能可以許多不同方式實現(xiàn),包括硬件、軟件、固件或它們的任意組合。
圖6至11描述了根據(jù)本發(fā)明的各種實施例可被存儲器功率管理510執(zhí)行的方法的一些示例。
圖6描述了在存儲器陣列中重定位數(shù)據(jù)項的方法的一個實施例。在610,響應觸發(fā)事件方法可發(fā)起重定位。例如,重定位可周期性地、每次數(shù)據(jù)都被寫入存儲器陣列或從中刪除、當缺乏有效存儲器等時被觸發(fā)。
在620,該方法可選擇要被重定位的數(shù)據(jù)項。許多標準可用于決定選擇哪些數(shù)據(jù)項。例如,該方法可從存儲器陣列的高地址端或存儲器陣列中的有效存儲器元件開始,并向下掃描直到遇到數(shù)據(jù)項。在另一示例中,當響應被寫入存儲器的新數(shù)據(jù)項而發(fā)起重定位時,該方法可簡單地選擇最近寫入的數(shù)據(jù)項。然而在另一示例中,該方法可從預先設定好的打包數(shù)據(jù)和空存儲器位置之間的邊界開始,然后向上掃描直到遇到數(shù)據(jù)項。
在630,該方法可為數(shù)據(jù)項尋找打包地址位置。打包地址位置可能是比被選數(shù)據(jù)項的當前位置更接近一些目標位置的空位置。例如,當將數(shù)據(jù)項打包到存儲器陣列的低端時,目標位置可能是最低地址的位置。在這種情況下,該方法可能從最低地址的位置開始并向上掃描直到第一空位置。如果第一空位置比被選數(shù)據(jù)項的當前位置更低,則這個空位置可能是打包被選數(shù)據(jù)的好位置。通過選擇開始于620中最高地址位置的數(shù)據(jù)項并尋找從630中最低地址位置開始的打包地址位置,該方法能夠用來自高端的數(shù)據(jù)項填充存儲器陣列低端的空位置。
該方法可能并不能為被選數(shù)據(jù)項找到打包地址位置。例如,如果被選數(shù)據(jù)項恰巧被寫入打包數(shù)據(jù)和空存儲器位置之間的邊界處的快速存取存儲器的第一存儲器位置,則被選數(shù)據(jù)項可能已被打包。如另一示例,如果先前被打包的數(shù)據(jù)項從存儲器位置被刪除并且被選數(shù)據(jù)項恰巧被寫入相同的存儲器位置,則被選數(shù)據(jù)項可能已被打包。
在所有數(shù)據(jù)項有相同大小的地方,尋找打包地址位置可能和尋找空地址位置一樣簡單。在數(shù)據(jù)項可能有不同大小的地方,尋找打包地址位置也可包括比較空閑數(shù)據(jù)塊和被選數(shù)據(jù)項的大小。如果空閑數(shù)據(jù)塊比被選數(shù)據(jù)項小,本發(fā)明的一些實施例可跳過這些空塊并尋找更大的塊。本發(fā)明的其它實施例可分割被選數(shù)據(jù)項并使不同的分割適合不同存儲器空塊。在這種情況下,重定位掩膜可為數(shù)據(jù)項跟蹤多個存儲器位置。重定位掩膜或者可僅僅跟蹤每個數(shù)據(jù)項的第一分割并且每個分割可包括指向存儲在存儲器中的下一個分割的位置的指針。其它實施例可使用廣泛多樣的技術中的任一種來使數(shù)據(jù)項適應存儲器位置并跟蹤它們。
再次參考圖6,假定打包地址位置在630找到,則在640該方法可將被選數(shù)據(jù)項移動到打包地址位置。如果打包地址位置沒有找到,則該方法可將數(shù)據(jù)項留在它所在的位置。
在650,如果所有數(shù)據(jù)都被打包,方法可結束。如果沒有,該方法可繼續(xù)選擇另一數(shù)據(jù)項并設法打包它。識別何時打包完成可能依靠于數(shù)據(jù)怎樣被打包。例如,如果數(shù)據(jù)項正從存儲器陣列的低端被打包,則該方法可從低端向上掃描直到第一空地址位置。然后,方法可繼續(xù)掃描以發(fā)現(xiàn)是否比第一空位置更高的任意有效存儲器位置包括數(shù)據(jù)項。如果所有更高的位置都是空的,則所有的數(shù)據(jù)都可被打包。
圖7描述了跟蹤存儲器陣列中數(shù)據(jù)項的方法的一個實施例。在710,該方法可識別被改變的數(shù)據(jù)項。例如,被改變的數(shù)據(jù)項可能是被寫入存儲器陣列的數(shù)據(jù)項、從存儲器陣列中刪除的數(shù)據(jù)項、或者在存儲器陣列內(nèi)被重定位并打包的數(shù)據(jù)項。在720,方法可標識被改變的數(shù)據(jù)項關聯(lián)的地址位置,以及在730,方法可基于被標識的地址位置和操作系統(tǒng)定義的位置更新重定位掩膜中被改變的數(shù)據(jù)項的記錄。最后這兩種功能依賴于被改變的數(shù)據(jù)項的類型可采取各種不同的形式。圖8至圖10描述了最后這兩種功能可能伴有的一些示例。
圖8描述了包括正被寫入存儲器陣列的新數(shù)據(jù)項的一個實施例。在810,方法可利用重定位掩膜將有效存儲器元件定位到空地址位置。例如,方法可首先尋找存儲器陣列中的一段,它之前已被打包用于被刪除數(shù)據(jù)留下的孔。下一步,方法可在快速存取存儲器中尋找可用的位置。如果在存儲器陣列的這些段中沒有找到位置,則方法可能需要使一個存儲器元件重新激活并在那里選擇存儲器位置。
一旦空存儲器位置被定位,則方法可將新的數(shù)據(jù)項寫入820處的空存儲器位置。然后在830,方法可為數(shù)據(jù)項在重定位掩膜中記錄入口。入口可包括例如數(shù)據(jù)項在物理存儲器中的地址以及數(shù)據(jù)項被操作系統(tǒng)定義的位置。
圖9描述了涉及被刪除數(shù)據(jù)項的一個實施例。在910,方法可基于操作系統(tǒng)定義的位置為重定位掩膜中的數(shù)據(jù)項定位現(xiàn)有的地址位置。例如,操作系統(tǒng)可能指示數(shù)據(jù)項應被刪除。操作系統(tǒng)的頁表可定義操作系統(tǒng)認為數(shù)據(jù)項被存儲的特定地址位置。然而數(shù)據(jù)項可能已在物理存儲器陣列中被重定位。由操作系統(tǒng)提供的地址可用于重定位掩膜以尋找物理存儲器陣列中的實際地址位置。
在920,方法可從物理存儲器位置中刪除數(shù)據(jù)項,而在930,方法可從重定位掩膜中刪除數(shù)據(jù)項的入口。
圖10描述了涉及被重定位的數(shù)據(jù)項的一個實施例。在1010,方法可識別數(shù)據(jù)項被重定位的新地址位置。在1020,方法可將數(shù)據(jù)項先前的地址位置施加到重定位掩膜以尋找被重定位的數(shù)據(jù)項關聯(lián)的入口。然后在1030,方法可重記錄到重定位掩膜的入口,使用操作系統(tǒng)定義的地址位置為數(shù)據(jù)項匹配新的地址位置。
圖11描述了為存儲器元件設置功率狀態(tài)的一個實施例。在1110,方法可標識將打包數(shù)據(jù)與空存儲器位置隔開的打包數(shù)據(jù)邊界。例如,當數(shù)據(jù)被打包到存儲器陣列的低端時,方法可從低端向上掃描并標識第一空存儲器位置處的邊界。
在1120,方法可決定快速存取存儲器的數(shù)量。例如,各種統(tǒng)計學算法的任一種可用于為計算設備預計存儲器可能需要什么。如果計算設備處于低活動性狀態(tài)(如備用模式),則方法可決定很少或不需要快速存取。另一方面,如果計算設備處于特別高活動性狀態(tài),則方法可確定所有可用的存儲器都應為快速存取作準備。
在1130,方法確定是否打包數(shù)據(jù)邊界或快速存取存儲器的數(shù)量已改變。例如,如果存儲器陣列經(jīng)歷反復地打包,則邊界的位置可能改變。類似地,如果計算設備的狀態(tài)由于例如附加的應用被啟動或過程被完成而改變,則預計需要的快速存取存儲器的數(shù)量可能改變。如果在1130沒有檢測到改變,則方法可從1110到1120循環(huán)多次,監(jiān)控改變。
當并且如果在1130檢測到改變時,如果在1140需要任意快速存取存儲器,則方法可將一個或多個空存儲器元件設置為有效狀態(tài)。如果不需要快速存取存儲器,或者如果部分打包存儲器元件包括足夠的空存儲器位置來提供快速存取存儲器,則方法可不將任意空存儲器元件設置為有效狀態(tài)。
在1150,方法可將任意剩余的、空存儲器元件的功率狀態(tài)設置為減少的功率狀態(tài)。例如,方法可減少刷新率、禁止刷新率、降低電源電壓、和/或禁止一個或多個空存儲器元件的電源電壓。
圖2-11描述了大量實現(xiàn)的特定細節(jié)。其它實施例可不包括所有被描述的元件、可不同地排列元件、可結合一個或多個元件、可包括附加的元件等。此外,本發(fā)明的各種功能可以任意方式被實現(xiàn)。
圖12描述了可集合本發(fā)明的各種實施例的功能的一般硬件系統(tǒng)的一個實施例。在所描述的實施例中,硬件系統(tǒng)包括耦合到高速總線1205的處理器1210,它通過總線橋1230耦合到輸入/輸出(I/O)總線1215。臨時存儲器1220耦合到總線1205。永久存儲器1240耦合到總線1215。I/O設備1250也耦合到總線1215。I/O設備1250可包括顯示設備、鍵盤、一個或多個外部網(wǎng)絡接口等。
某些實施例可包括附加的組件,可不需要所有上述組件,或者可結合一個或多個組件。例如,臨時存儲器1220可在處理器1210芯片上。永久存儲器1240或者可被消除,并且臨時存儲器1220可被替換為電子可擦除可編程只讀存儲器(EEPROM),其中軟件程序在EEPROM的適當位置中執(zhí)行。某些實施可采用單總線,所有組件都耦合到其上,而其它實施可包括一個或多個附加總線和總線橋,各種附加組件可被耦合到其上。相似地,各種備選內(nèi)部網(wǎng)絡可被使用,包括例如基于帶有存儲器控制集線器和I/O控制集線器的高速系統(tǒng)總線的內(nèi)部網(wǎng)絡。附加組件可包括附加的處理器、帶有處理器1210的多個處理器核、CD ROM驅動器、附加存儲器和其它在本領域周知的外圍組件。
如上所述本發(fā)明的各種功能可利用一個或多個這種硬件系統(tǒng)被實現(xiàn)。在一個實施例中,該功能可被實現(xiàn)為能被硬件系統(tǒng)中一個或多個執(zhí)行單元(如的處理器1210)執(zhí)行的指令或例程。如圖13所示,這些機器可執(zhí)行指令1310能利用任意機器可讀存儲介質(zhì)1320而被存儲,該存儲介質(zhì)1320包括內(nèi)部存儲器,如圖12中的存儲器1220和1240,還有各種外部或遠程存儲器,如硬件驅動器、磁盤、CD-ROM、磁帶、數(shù)字視頻光盤(DVD)、激光盤、閃存、網(wǎng)絡服務器等。在一個實現(xiàn)中,這些軟件例程可用C編程語言編寫。然而可以理解,這些程序可以任意廣泛多樣的編成語言被實現(xiàn)。
在備選實施例中,本發(fā)明的各種功能可在分散的硬件或固件中實現(xiàn)。例如,一個或多個專用集成電路(ASIC)可編程為一個或多個上述功能。在另一示例中,本發(fā)明的一個或多個功能可實現(xiàn)在附加電路板上的一個或多個ASIC中并且電路板可被插入上述計算機。在另一示例中,一個或多個可編程門陣列(PGA)可用于實現(xiàn)本發(fā)明的一個或多個功能。然而在另一示例中,硬件和軟件的結合可用于實現(xiàn)本發(fā)明的一個或多個功能。
因此,獨立于操作系統(tǒng)的存儲器功率管理被描述。然而在閱讀過上述描述之后,本領域技術人員可領會到本發(fā)明的許多改變和修改,可以理解,通過描述方式說明和描述的特定實施例決不旨在用來限制。因此,對特定實施例細節(jié)的引用也不旨在限制權利要求的范圍。
權利要求
所要求的權利要求是1.一種方法,包括在包括物理存儲器陣列的多個存儲器元件中重定位數(shù)據(jù)項,以將所述數(shù)據(jù)項打包到所述多個存儲器元件的特定幾個中;關于操作系統(tǒng)定義的所述數(shù)據(jù)項的相應位置跟蹤所述物理存儲器陣列中所述數(shù)據(jù)項的位置;以及降低不包括所述數(shù)據(jù)項的所述多個存儲器元件中至少一個空存儲器元件的功率狀態(tài)。
2.如權利要求1所述的方法,還包括關于至少一個附加操作系統(tǒng)定義的所述數(shù)據(jù)項的附加相應位置跟蹤所述物理存儲器中所述數(shù)據(jù)項的位置。
3.如權利要求1所述的方法,其中重定位所述數(shù)據(jù)項包括響應選自包括時限到期、新的數(shù)據(jù)項被寫入所述物理存儲器陣列以及現(xiàn)有的數(shù)據(jù)項從所述物理存儲器陣列中被刪除的組的事件而發(fā)起所述數(shù)據(jù)項的重定位。
4.如權利要求1所述的方法,其中重定位所述數(shù)據(jù)項包括在所述多個數(shù)據(jù)項中選擇特定數(shù)據(jù)項;確定是否在所述物理存儲器陣列中可得到用于所述特定數(shù)據(jù)項的打包位置;以及如果打包位置可得到,則將所述特定數(shù)據(jù)項移動到所述打包位置。
5.如權利要求4所述的方法,其中重定位所述數(shù)據(jù)項還包括重復所述選擇、確定以及移動直到所述多個數(shù)據(jù)項被打包。
6.如權利要求4所述的方法,其中選擇所述特定數(shù)據(jù)項包括從包括來自所述物理存儲器陣列的最高地址位置向下的第一數(shù)據(jù)項、最近寫入所述物理存儲器陣列的數(shù)據(jù)項以及定義打包數(shù)據(jù)邊界的地址位置之外的第一數(shù)據(jù)項的組中選擇所述特定數(shù)據(jù)項。
7.如權利要求4所述的方法,其中確定是否可得到打包位置包括標識所述物理存儲器陣列中從最低地址位置向上的第一空地址位置;以及確定是否所述第一空地址位置低于所述特定數(shù)據(jù)項的地址位置。
8.如權利要求1所述的方法,其中跟蹤所述數(shù)據(jù)項的位置包括識別所述多個數(shù)據(jù)項中被改變的數(shù)據(jù)項;標識所述被改變的數(shù)據(jù)項在所述物理存儲器陣列中的地址位置;以及基于所述地址位置和所述操作系統(tǒng)定義的所述被改變的數(shù)據(jù)項的相應位置更新所述被改變的數(shù)據(jù)項的記錄。
9.如權利要求8所述的方法,其中識別所述被改變的數(shù)據(jù)項包括識別來自包括被寫入所述物理存儲器陣列的數(shù)據(jù)項、從所述物理存儲器陣列中刪除的數(shù)據(jù)項以及在所述物理存儲器陣列中重定位的數(shù)據(jù)項的組的所述被改變的數(shù)據(jù)項。
10.如權利要求8所述的方法,其中標識所述被改變的數(shù)據(jù)項在所述物理存儲器陣列中的地址位置包括在多個存儲器元件中定位具有空地址位置的有效存儲器元件;以及將所述被改變的數(shù)據(jù)項寫入所述空地址位置。
11.如權利要求10所述的方法,其中更新所述記錄包括記錄重定位掩膜的入口,包括所述空地址位置和所述操作系統(tǒng)定義的所述被改變的數(shù)據(jù)項的相應位置。
12.如權利要求8所述的方法,其中標識所述被改變的數(shù)據(jù)項在所述物理存儲器陣列中的地址位置包括基于所述操作系統(tǒng)定義的所述被改變的數(shù)據(jù)項的相應位置定位所述被改變的數(shù)據(jù)項在所述物理存儲器陣列中的現(xiàn)有地址位置;以及從所述現(xiàn)有的存儲器位置中刪除所述被改變的數(shù)據(jù)項。
13.如權利要求12所述的方法,其中更新所述記錄包括移除重定位掩膜的入口,包括所述現(xiàn)有的存儲器位置和所述操作系統(tǒng)定義的所述被改變的數(shù)據(jù)項的相應位置。
14.如權利要求8所述的方法,其中標識所述被改變的數(shù)據(jù)項在所述物理存儲器陣列中的地址位置包括識別所述物理存儲器陣列中所述被改變的數(shù)據(jù)項被重定位的新的地址位置。
15.如權利要求14所述的方法,其中更新所述記錄包括將所述被改變的數(shù)據(jù)項在所述物理存儲器陣列中先前的地址施加到重定位掩膜以尋找與所述被改變的數(shù)據(jù)項相關的入口;重記錄所述重定位掩膜的入口,包括新的地址位置和所述操作系統(tǒng)定義的所述被改變的數(shù)據(jù)項的相應位置。
16.如權利要求1所述的方法,其中降低功率狀態(tài)包括從含有降低刷新率、禁止刷新、降低電源電壓以及禁止電源電壓的組中選擇的動作。
17.如權利要求1所述的方法,其中降低功率狀態(tài)包括在所述多個存儲器元件中標識打包數(shù)據(jù)邊界,所述打包數(shù)據(jù)邊界用以將所述多個存儲器元件分隔成空存儲器元件和被占用的存儲器元件;確定快速存取存儲器的數(shù)量;將足夠的空存儲器元件設置到有效功率狀態(tài)以供應快速存取存儲器的數(shù)量;以及降低任意剩余空存儲器元件的功率狀態(tài)。
18.如權利要求17所述的方法,還包括響應所述打包數(shù)據(jù)邊界或快速存取存儲器數(shù)量的改變而重復所述設置和降低。
19.具有存儲在其上的機器可執(zhí)行指令的機器可讀介質(zhì),當所述指令被執(zhí)行時,實現(xiàn)包括以下步驟的方法在包括物理存儲器陣列的多個存儲器元件中重定位數(shù)據(jù)項,以將所述數(shù)據(jù)項打包到所述多個存儲器元件的特定幾個中。關于操作系統(tǒng)定義的所述數(shù)據(jù)項的相應位置跟蹤所述物理存儲器陣列中所述數(shù)據(jù)項的位置;以及降低不包括所述數(shù)據(jù)項的所述多個存儲器元件中至少一個空存儲器元件的功率狀態(tài)。
20.如權利要求19所述的機器可讀介質(zhì),其中重定位所述數(shù)據(jù)項包括在所述多個數(shù)據(jù)項中選擇特定數(shù)據(jù)項;確定是否在所述物理存儲器陣列中可得到用于所述特定數(shù)據(jù)項的打包位置;以及如果所述打包位置可得到,則將所述特定數(shù)據(jù)項移動到所述打包位置。
21.如權利要求19所述的機器可讀介質(zhì),其中跟蹤所述數(shù)據(jù)項的位置包括識別所述多個數(shù)據(jù)項中被改變的數(shù)據(jù)項;標識所述被改變的數(shù)據(jù)項在所述物理存儲器陣列中的地址位置;以及基于所述地址位置和所述操作系統(tǒng)定義的所述被改變的數(shù)據(jù)項的相應位置更新所述被改變的數(shù)據(jù)項的記錄。
22.如權利要求19所述的機器可讀介質(zhì),其中降低功率狀態(tài)包括在所述多個存儲器元件中標識打包數(shù)據(jù)邊界,所述打包數(shù)據(jù)邊界用以將所述多個存儲器元件分隔成空存儲器元件和被占用的存儲器元件;確定快速存取存儲器的數(shù)量;將足夠的空存儲器元件設置到有效功率狀態(tài)以供應快速存取存儲器的數(shù)量;以及降低任意剩余空存儲器元件的功率狀態(tài)。
23.一種裝置,包括在包括物理存儲器陣列的多個存儲器元件中重定位數(shù)據(jù)項的重定位邏輯,用以將所述數(shù)據(jù)項打包到所述多個存儲器元件的特定幾個中;關于操作系統(tǒng)定義的所述數(shù)據(jù)項的相應位置跟蹤所述物理存儲器陣列中所述數(shù)據(jù)項的位置的跟蹤邏輯;以及降低不包括所述數(shù)據(jù)項的所述多個存儲器元件中至少一個空存儲器元件的功率狀態(tài)的功率狀態(tài)邏輯。
24.如權利要求23所述的裝置,其中所述重定位邏輯進一步在所述多個數(shù)據(jù)項中選擇特定數(shù)據(jù)項,確定是否在所述物理存儲器陣列中可得到用于所述特定數(shù)據(jù)項的打包位置,以及如果所述打包位置可得到,則將所述特定數(shù)據(jù)項移動到所述打包位置。
25.如權利要求23所述的裝置,其中所述跟蹤邏輯進一步識別所述多個數(shù)據(jù)項中被改變的數(shù)據(jù)項,標識所述被改變數(shù)據(jù)項在所述物理存儲器陣列中的地址位置,以及基于所述地址位置和所述操作系統(tǒng)定義的所述被改變的數(shù)據(jù)項的相應位置更新所述被改變的數(shù)據(jù)項的記錄。
26.如權利要求23所述的裝置,其中所述功率狀態(tài)邏輯進一步標識所述多個存儲器元件中的打包數(shù)據(jù)邊界,所述打包數(shù)據(jù)邊界用以將所述多個存儲器元件分隔成空存儲器元件和被占用的存儲器元件,確定快速存取存儲器的數(shù)量,將足夠的空存儲器元件設置到有效功率狀態(tài)以供應快速存取存儲器的數(shù)量,以及降低任意剩余空存儲器元件的功率狀態(tài)。
27.一種系統(tǒng),包括筆記本式計算機;以及存儲器功率管理器,所述存儲器功率管理器包括重定位包括物理存儲器陣列的多個存儲器元件中的數(shù)據(jù)項的重定位邏輯,用以將所述數(shù)據(jù)項打包到所述多個存儲器元件的特定幾個中;關于操作系統(tǒng)定義的所述數(shù)據(jù)項的相應位置跟蹤所述物理存儲器陣列中所述數(shù)據(jù)項的位置的跟蹤邏輯;以及降低不包括所述數(shù)據(jù)項的所述多個存儲器元件中至少一個空存儲器元件的功率狀態(tài)的功率狀態(tài)邏輯。
28.如權利要求27所述的系統(tǒng),其中所述重定位邏輯進一步在所述多個數(shù)據(jù)項中選擇特定數(shù)據(jù)項,確定是否在所述物理存儲器陣列中可得到用于所述特定數(shù)據(jù)項的打包位置,以及如果所述打包位置可得到,則將所述特定數(shù)據(jù)項移動到所述打包位置。
29.如權利要求27所述的系統(tǒng),其中所述跟蹤邏輯進一步識別所述多個數(shù)據(jù)項中被改變的數(shù)據(jù)項,標識所述被改變的數(shù)據(jù)項在所述物理存儲器陣列中的地址位置,以及基于所述地址位置和所述操作系統(tǒng)定義的所述被改變的數(shù)據(jù)項的相應位置更新所述被改變的數(shù)據(jù)項的記錄。
30.如權利要求27所述的系統(tǒng),其中所述功率狀態(tài)進一步標識所述多個存儲器元件中的打包數(shù)據(jù)邊界,所述打包數(shù)據(jù)邊界用以將所述多個存儲器元件分隔成空存儲器元件和被占用的存儲器元件,確定快速存取存儲器的數(shù)量,將足夠的空存儲器元件設置到有效功率狀態(tài)以供應快速存取存儲器的數(shù)量,以及降低任意剩余空存儲器元件的功率狀態(tài)。
全文摘要
本發(fā)明的實施例能夠獨立于操作系統(tǒng)行為、通過降低存儲器的未使用部分的功率來減少存儲器系統(tǒng)的功耗。
文檔編號G06F12/02GK101088073SQ200580044656
公開日2007年12月12日 申請日期2005年12月29日 優(yōu)先權日2004年12月31日
發(fā)明者V·基尼 申請人:英特爾公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
东至县| 勐海县| 长治市| 斗六市| 盐城市| 中牟县| 丹凤县| 平昌县| 穆棱市| 嵩明县| 平顺县| 霸州市| 山东省| 富平县| 新宾| 南康市| 吴旗县| 长宁区| 郑州市| 绥芬河市| 岳西县| 肥城市| 揭东县| 长寿区| 大邑县| 乐山市| 钟山县| 湘阴县| 双牌县| 宁波市| 巴林左旗| 涞水县| 鲜城| 延庆县| 彰化县| 宣汉县| 阳朔县| 南昌县| 天气| 清镇市| 炉霍县|