專利名稱:存儲器控制器飛速映射的制作方法
技術(shù)領(lǐng)域:
本申請一般涉及存儲器管理技術(shù),更特別地,涉及用于存儲器飛速映射(memorymapping on-the-fly)的技術(shù)。
背景技術(shù):
本部分要向讀者介紹與以下描述和/或要求權(quán)利的本公開的各方面有關(guān)的現(xiàn)有技術(shù)的各方面。可以認(rèn)為,該討論有助于向讀者提供背景信息以有利于更好地理解本公開 的各方面。因此,應(yīng)當(dāng)理解,在閱讀這些說明時要考慮這一點(diǎn),并且不應(yīng)將其視為承認(rèn)現(xiàn)有技術(shù)。諸如便攜式和臺式計算機(jī)的電子設(shè)備對于高性能圖形和其它特征越來越多地使用更多的存儲器。在許多情況下,由于存儲器的很大的部分僅在諸如呈現(xiàn)高性能圖形的存儲器密集操作中使用,因此存儲器的這種很大的部分會在給定的時間處于空閑狀態(tài)。但是,即使在空閑時,存儲器和附帶的電路也會消耗電力。已開發(fā)了各種技術(shù)以減少空閑存儲器設(shè)備的功率消耗。例如,根據(jù)電子設(shè)備的性能需要,存儲器和/或存儲器總線可以較低頻率被計時,但會繼續(xù)消耗操作電力。并且,雖然某些技術(shù)可包含關(guān)斷便攜式電子設(shè)備的一個或多個存儲器設(shè)備的電力以節(jié)省電力,但是這些技術(shù)不提供飛速(on-the-fly)存儲器重新映射和/或會低效率地將數(shù)據(jù)從斷電的存儲器復(fù)制到保持的存儲器。事實上,這些技術(shù)可使用諸如轉(zhuǎn)換后備緩沖器(TLB)的低效率存儲器映射結(jié)構(gòu),和/或可包含從存儲器的要被斷電的部分以外的各部分復(fù)制數(shù)據(jù)。
發(fā)明內(nèi)容
以下闡述這里公開的某些實施例的概要。應(yīng)當(dāng)理解,給出這些方面僅是為了向讀者提供這樣特定實施例的簡要概述,并且這些方面不是要限制本公開的范圍。事實上,該公開可包含以下可能沒有闡述的各種方面。這些實施例涉及用于在存儲器的一部分被激活或去活時動態(tài)映射和重新映射存儲器的系統(tǒng)、方法和設(shè)備。根據(jù)一個實施例,電子設(shè)備可包含幾個存儲體、一個或多個處理器和存儲器控制器。存儲體可在硬件存儲單元中存儲數(shù)據(jù)并且可被獨(dú)立地去活。處理器可使用物理存儲地址請求數(shù)據(jù),并且存儲器控制器可將物理地址轉(zhuǎn)換成硬件存儲單元。存儲器控制器可在第一數(shù)量的存儲體活動時使用第一存儲器映射函數(shù),并在第二數(shù)量的存儲體活動時使用第二存儲器映射函數(shù)。當(dāng)存儲體中的一個被去活時,存儲器控制器可將僅僅來自要被去活的存儲體的數(shù)據(jù)復(fù)制到存儲體的活動的剩余存儲體。關(guān)于當(dāng)前公開的實施例,可存在以上提到的特征的各種改良。也可在這樣的各種實施例中加入附加的特征。這些改良和附加的特征可單獨(dú)地或以任意的組合存在。例如,以下關(guān)于一個或多個實施例討論的各種特征可單獨(dú)地或以任意的組合被加入其它的公開的實施例中。并且,以上給出的簡要概述僅是要使讀者熟悉本公開的實施例的某些方面和背景而不限于要求的主題。
參照附圖閱讀以下的詳細(xì)的說明,可以更好地理解本公開的各方面,其中,圖I是根據(jù)一個實施例的被配置為執(zhí)行這里公開的技術(shù)的電子設(shè)備的框圖;圖2是筆記本計算機(jī)形式的圖I的電子設(shè)備的實施例的透視圖;圖3是根據(jù)一個實施例的由圖I的電子設(shè)備使用的存儲器管理系統(tǒng)的框圖;圖4是根據(jù)一個實施例的跨著三個存儲體的動態(tài)存儲器映射的處理的示意圖;
圖5和圖6是根據(jù)某些實施例的存儲器分配圖;圖7是代表可在決定是將存儲體通電還是斷電時考慮的各種因素的存儲器管理因素圖;圖8是描述用于基于在圖7的因素圖中給出的準(zhǔn)則來平衡電力管理和性能考慮的方法的實施例的流程圖;圖9是根據(jù)一個實施例將存儲器的一個存儲體及其相關(guān)的存儲器總線斷電時的圖3的存儲器管理系統(tǒng)的框圖;圖10是描述用于將存儲器的一個存儲體斷電的方法的實施例的流程圖;圖11是示出根據(jù)一個實施例用于從存儲器的三個存儲體到存儲器的兩個存儲體的動態(tài)存儲器重新映射的處理的示意圖;圖12是描述用于執(zhí)行圖11的處理的方法的實施例的流程圖;圖13是示出根據(jù)一個實施例用于從存儲器的兩個存儲體到存儲器的一個存儲體的動態(tài)存儲器重新映射的處理的示意圖;圖14是描述圖I的電子設(shè)備處于空閑或者考慮熱限制時的功率管理方法的實施例的流程圖;圖15和圖16分別是根據(jù)實施例從存儲器的一個存儲體到存儲器的兩個存儲體和從存儲器的兩個存儲體到存儲器的三個存儲體的動態(tài)存儲器重新映射的處理的示意圖;圖17是描述用于根據(jù)性能和存儲器考慮將存儲器通電或斷電的方法的實施例的流程圖;圖18是通過圖3的存儲器管理系統(tǒng)映射的高速緩存線地址的示意圖;圖19A C是在存儲器的各種段被斷電到二分之一和四分之一時由圖3的存儲器管理系統(tǒng)使用的高速緩存線地址重新映射方案的示意圖;圖20是描述以圖19A C所示的方式將包含重新映射高速緩存線地址的存儲器斷電的方法的實施例的流程圖;圖21A E是在存儲器的各種段被斷電到三分之二和三分之一時由圖3的存儲器管理系統(tǒng)使用的高速緩存線地址重新映射方案的示意圖;圖22A B是示出僅包含兩個位變化的圖21A E的高速緩存線地址重新映射方案的高速緩存線地址的示意圖23是描述以圖21A E所示的方式將包含重新映射高速緩存線地址的存儲器斷電的方法的實施例的流程圖;圖24和圖25分別是示出根據(jù)實施例的用于從2存儲體存儲器映射讀取并寫入到2存儲體存儲器映射和3存儲體存儲器映射的處理的示意圖。
具體實施例方式以下描述一個或多個特定的實施例。為了簡潔地描述這些實施例,不在說明書中描述實際實現(xiàn)的所有特征。應(yīng)當(dāng)理解,在任意這種實現(xiàn)的開發(fā)中,諸如在任何工程或設(shè)計項目中,必須進(jìn)行大量的特定實現(xiàn)的決定,以實現(xiàn)開發(fā)人員的特定目的,諸如服從會在實現(xiàn)之間改變的系統(tǒng)相關(guān)和業(yè)務(wù)相關(guān)的約束。并且,應(yīng)當(dāng)理解,這種開發(fā)工作會是復(fù)雜和耗時的,但是對于受益于本公開的本領(lǐng)域技術(shù)人員來說,這會是設(shè)計、制作和制造的例行任務(wù)。本實施例涉及用于電子設(shè)備的功率和存儲器管理。特別地,本公開描述了用于飛速存儲器映射和重新映射并用于將全部的存儲器的一個或多個部分通電或斷電的技術(shù),在·某些實施例中,所述一個或多個部分可以是一個或多個存儲體。如這里使用的那樣,術(shù)語“斷電”、“關(guān)斷”和“去活”指的是將存儲器置于任何低電力條件,諸如關(guān)斷存儲器、將存儲器置于自刷新模式或者將存儲器設(shè)定于任何其它的低功率消耗模式。另外,當(dāng)前公開的技術(shù)描述了使用某些公開的映射函數(shù)將可用的存儲器的一部分?jǐn)嚯姇r的飛速存儲器重新映射的方式。例如,在某些實施例中,電子設(shè)備可具有三個存儲體,其中的每一個可具有特定的存儲器總線。當(dāng)希望更高水平的性能時,存儲器控制器可將某些物理地址映射到大致跨著所有三個存儲體均勻分配的硬件存儲單元(這里,也稱為“存儲位置”或“雙內(nèi)嵌存儲器模塊(DIMM)地址”)。應(yīng)當(dāng)理解,這里使用的術(shù)語“物理地址”指的是可由存儲器控制器操縱并且可具有任何適當(dāng)大小的存儲器塊。例如,當(dāng)參照映射或重新映射存儲器使用術(shù)語“物理地址”時,即使存儲器控制器能夠操縱更小的塊,該術(shù)語也可指可被映射或重新映射的存儲器的高速緩存線或頁。即,在一些實施例中,當(dāng)參照這里的公開使用的術(shù)語“物理地址”可指存儲器的頁的重新映射時,甚至頁的高速緩存線也可通過存儲器控制器被單獨(dú)地訪問。當(dāng)與物理地址相關(guān)的數(shù)據(jù)被訪問時,可立即在所有三個存儲器總線上以最大化的帶寬傳送數(shù)據(jù)。在這種實施例中,當(dāng)希望節(jié)省電力時,作為替代方案,或者除了簡單地減少存儲體和/或存儲器總線的時鐘頻率以外,可以將存儲體和/或總線中的一個或多個斷電(例如,關(guān)掉、置于自刷新模式中、置于低功率消耗模式,等等)。存儲器控制器可通過數(shù)學(xué)存儲器映射函數(shù)飛速將剩余的物理地址重新映射到前兩個存儲體上的DIMM地址。在開始關(guān)斷第三存儲體之前,存儲器控制器可將與重新映射的物理地址相關(guān)的數(shù)據(jù)直接從第三存儲體復(fù)制到前兩個存儲體。因而,在一些實施例中,在重新映射處理中,沒有數(shù)據(jù)可從第一存儲體被復(fù)制到第二存儲體,或者從第二存儲體被復(fù)制到第一存儲體。在來自第三存儲體的數(shù)據(jù)被復(fù)制到前兩個存儲體之后,存儲器控制器可使第三存儲體和/或存儲器總線被關(guān)斷。應(yīng)當(dāng)理解,本技術(shù)也可被應(yīng)用于任意數(shù)量的存儲體和/或全部存儲器的多個部分。記住,以下提供能夠使用公開的存儲器管理技術(shù)的適當(dāng)?shù)碾娮釉O(shè)備的一般描述。在圖I中,提供示出可存在于適于供本技術(shù)使用的電子設(shè)備中的各種部件的框圖。在圖2中,示出這里作為筆記本計算機(jī)系統(tǒng)提供的適當(dāng)?shù)碾娮釉O(shè)備的一個例子??梢耘c本技術(shù)結(jié)合使用具有相當(dāng)?shù)拇鎯ζ鞴芾砟芰Φ倪@些類型的電子設(shè)備和其它的電子設(shè)備。圖I是示出能夠執(zhí)行這里公開的技術(shù)的電子設(shè)備10的各種部件和特征的框圖。在當(dāng)前示出的實施例中,這種部件可包含一個或多個處理器12、存儲器14、非易失性存儲設(shè)備16、顯示器18、輸入結(jié)構(gòu)20、輸入/輸出(I/O)端口 22、網(wǎng)絡(luò)設(shè)備24和電源26。圖I所示的各種功能塊可包含硬件元件(包含電路)、軟件元件(包含存儲于非暫時性計算機(jī)可讀介質(zhì)上的計算機(jī)代碼)或硬件元件和軟件元件的組合。還應(yīng)注意,圖I僅是特定實現(xiàn)的一個例子,并且是要示出可在電子設(shè)備10中存在的部件的類型。處理器12可使得能夠操作操作系統(tǒng)(OS),該操作系統(tǒng)自身可使得能夠使用各種軟件以在非易失性存儲器14中暫時存儲信息。特別地,在處理器12上運(yùn)行的OS可使用可由處理器12轉(zhuǎn)換成物理地址的邏輯存儲地址操作,并且處理器12可基于這些物理地址通過存儲器14請求某些存儲器操作。如后面更詳細(xì)地討論的那樣,當(dāng)存儲器14從處理器12接收物理地址時,存儲器14的存儲器控制器可將物理地址轉(zhuǎn)換成諸如例如雙內(nèi)嵌存儲器模塊(DIMM)地址的任意適當(dāng)大小的硬件存儲單元(例如,行或頁)。DIMM地址可代表與物 理地址并由此也與邏輯地址對應(yīng)的存儲的數(shù)據(jù)的實際物理位置。并且,如后面更詳細(xì)地討論的那樣,存儲器14能夠通過將操作DIMM的數(shù)量減少約三分之一或更多并在飛速重新映射剩余物理地址與剩余DIMM地址的對應(yīng)關(guān)系節(jié)省電力。操作DIMM的數(shù)量可進(jìn)一步減少,在這種情況下,剩余物理地址也可被重新映射到剩余DIMM地址。存儲器14可存儲用于實施這里描述的本技術(shù)的某些方面的指令。例如,在處理器12上運(yùn)行的OS和/或在OS上運(yùn)行的軟件可執(zhí)行與本技術(shù)有關(guān)的某些算法(例如,當(dāng)進(jìn)入低功率模式等時)。用于實施這些指令的指令可至少被暫時存儲于存儲器14中。這些指令也可被存儲于可包含例如硬盤驅(qū)動或閃速存儲器的非易失性存儲設(shè)備16中。顯示器18可顯示OS或軟件的元件,諸如電子設(shè)備10的用戶界面(UI)。用戶可通過可包含鍵盤和/或鼠標(biāo)或觸摸板的輸入結(jié)構(gòu)20與電子設(shè)備10交互。在某些實施例中,顯示器18可以是用作輸入結(jié)構(gòu)20中的一個的觸摸屏顯示器。電子設(shè)備10的I/O端口 22可使得電子設(shè)備10能夠向其它電子設(shè)備10和/或諸如外部鍵盤或鼠標(biāo)的各種外圍設(shè)備傳送數(shù)據(jù)并從中接收數(shù)據(jù)。網(wǎng)絡(luò)設(shè)備24可使得能夠?qū)崿F(xiàn)個人區(qū)域網(wǎng)絡(luò)(PAN)集成(例如,Bluetooth)、局域網(wǎng)絡(luò)(LAN)集成(例如,Wi-Fi)和/或廣域網(wǎng)絡(luò)(WAN)集成(例如,蜂窩3G或4G)。電子設(shè)備10的電源26可以是任意適當(dāng)?shù)碾娫矗T如可更充電鋰聚合物(Li-poly)電池和/或標(biāo)準(zhǔn)交流(AC)功率轉(zhuǎn)換器。電子設(shè)備10可采用計算機(jī)或其它類型的電子設(shè)備的形式。這些計算機(jī)可包含一般便攜的計算機(jī)(諸如膝上型、筆記本和板式計算機(jī))以及一般在一個位置使用的計算機(jī)(諸如常規(guī)的臺式計算機(jī)、工作站和/或服務(wù)器)。在某些實施例中,計算機(jī)形式的電子設(shè)備10可以為可從蘋果公司得到的MacBook 、MacBook Pro、MacBook Air 、iMac 、Mac min域MacPro 的型號。在其它實施例中,電子設(shè)備io可采用手持或板式設(shè)備的形式,諸如可從蘋果公司得到的iPod 、iPhone 或iPad 的型號。作為例子,根據(jù)本公開的一個實施例,在圖2中示出采取筆記本計算機(jī)28的形式的電子設(shè)備10。示出的計算機(jī)28可包含外殼30、顯示器18、輸入結(jié)構(gòu)20和1/0端口 22。在一個實施例中,輸入結(jié)構(gòu)20(諸如鍵盤和/或觸摸板)可被用于與計算機(jī)28交互,以諸如開始、控制或操作在計算機(jī)28上運(yùn)行的GUI或應(yīng)用。例如,鍵盤和/或觸摸板可允許用戶導(dǎo)航在顯示器18上顯示的用戶界面或應(yīng)用界面。在一些實施例中,電子設(shè)備10能夠在顯示器18上顯示高性能圖形,這可包括在某些時間以高帶寬訪問大量的存儲器14。但是,在其它的時間,電子設(shè)備10可不明顯受益于這種大量的存儲器14或這種高帶寬。因而,電子設(shè)備10可包含圖3所示的存儲器管理系統(tǒng)34,該存儲器管理系統(tǒng)34使得能夠關(guān)斷(例如,關(guān)掉、置于自刷新模式、置于低功率消耗模式等)存儲器14的某些部分以節(jié)省電力。如圖3所示,處理器12可通過存儲器控制器36和總線38與存儲器14通信。一般地,在處理器12上運(yùn)行的操作系統(tǒng)(OS)可在邏輯地址上分配和去分配存儲器。在一些實施例中,處理器12的存儲器管理單元(MMU) 39可將由OS使用的邏輯地址轉(zhuǎn)換成一般與存儲器控制器36理解的存儲地址對應(yīng)的物理地址。MMU 39可使用一個或多個轉(zhuǎn)換后備緩沖器(TLB)或任何其它適當(dāng)?shù)挠布?zhí)行該轉(zhuǎn)換。在一些其它的實施例中,處理器12的OS可將邏輯地址轉(zhuǎn)換成物理地址。存儲器控制器36可從處理器12接收用于從物理地址中的一個讀取數(shù)據(jù)或者將數(shù)據(jù)寫入其中的指令。 由處理器12請求的鄰接的物理地址可以不直接與在圖3中示為存儲體O、存儲體I和存儲體2的位于存儲體40A、40B和40C上的鄰接的硬件存儲單元對應(yīng)。而是,存儲器控制器36可將由處理器12請求的物理地址映射到可跨著所有的存儲體40A、40B和40C大致均勻分布的這里也稱為“存儲單元”或“雙內(nèi)嵌存儲器模塊(DIMM)地址”的某此硬件存儲單元。存儲體40A、40B和40C可包含任意適當(dāng)?shù)拇鎯ζ髟O(shè)備,諸如雙數(shù)據(jù)率三同步動態(tài)隨機(jī)存取存儲器(DDR3SDRAM)、雙數(shù)據(jù)率三同步動態(tài)隨機(jī)存取存儲器(DDR4SDRAM)和/或圖形雙數(shù)據(jù)率五同步動態(tài)隨機(jī)存取存儲器(⑶DR5SDRAM)。存儲器控制器36可通過可分別互連存儲器控制器36與存儲體0、1和2的存儲器總線42、44和46與三個存儲體40A、40B和40C通信。在替代性的實施例中,存儲器管理系統(tǒng)34可包含更多或更少的存儲器總線和存儲體40。如上所述,物理地址可以不跨著DI麗地址存儲體40A、40B和40C被鄰接映射,而是可被映射使得沒有兩個“相關(guān)的”或“鄰接的”物理地址被映射到同一存儲體40。如這里使用的那樣,術(shù)語“相關(guān)的”或“鄰接的”物理地址指可能被連續(xù)訪問的物理地址(例如,通過OS被映射到鄰接的軟件邏輯存儲地址的物理地址),即使物理地址不是嚴(yán)格數(shù)字鄰接的。S卩,根據(jù)存儲體40A、40B和40C在沒有進(jìn)一步延遲的情況下提供對于連續(xù)的DIMM地址的訪問的能力,第一物理地址可被映射到存儲體O上的DIMM地址,第二物理地址可被映射到存儲體I上的DMM地址,等等。當(dāng)存儲體40A、40B和40C具有不同的帶寬特性時,該方案可改變,使得更高帶寬存儲體可能已被映射到多于一個的相關(guān)的物理地址。例如,一些實施例可包含分別將第一和第二物理地址映射到存儲體O和存儲體I上的DIMM地址并將第三和第四物理地址映射到存儲體2。一般地,物理地址可被分配給存儲體40A、40B和/或40C的DIMM地址以減少延遲(latency) “低點(diǎn)”。當(dāng)處理器12請求大段的物理地址時,存儲器控制器36在某些實施例中可通過三個存儲器總線42、44和46 —次獲得對于三個物理地址的訪問,這會有效地使數(shù)據(jù)傳送帶寬最大化。存儲器控制器36 —般可將由處理器12請求的物理地址映射到存儲體40A、40B和40C的DIMM地址,使得各存儲體40在不招致過分的延遲的情況下包含盡可能多的相關(guān)物理地址。因此,如上面討論的那樣,如果各存儲體40能夠在不招致附加的延遲的情況下一次僅提供對一個物理地址的訪問,那么物理地址可被分配,使得沒有兩個相關(guān)的物理地址映射到同一存儲體40上的兩個DIMM地址。如果各存儲體40能夠在不招致附加的延遲的情況下一次提供對不多于兩個的物理地址的訪問,那么物理地址可被分配,使得沒有三個相關(guān)的物理地址映射到同一存儲體40上的三個DMM地址。在一些替代性的實施例中,如以上簡要討論的那樣,存儲器控制器36可能不將由處理器12請求的物理地址映射到存儲體40A、40B和40C的DIMM地址,使得各存儲體40在不招致過分的延遲的情況下包含盡可能多的相關(guān)物理地址。事實上,存儲器控制器36可將物理地址映射到DIMM地址,使得存儲體40可在沒有延遲的情況下包含比最大可能少的相關(guān)的物理地址。然后,當(dāng)存儲器控制器36使存儲體40和/或存儲器總線42、44和/或46被關(guān)斷以節(jié)省電力時,通過將剩余的物理地址重新映射到剩余存儲體40的DIMM地址,即使兩個相關(guān)的物理地址被映射到同一存儲體40,也不會招致附加的延遲。換句話說,如果各存儲體40能夠在不招致附加的延遲的情況下一次提供對于不多于兩個物理地址的訪問,那么物理地址可被分配使得沒有兩個相關(guān)的物理地址映射到同一存儲體40上的三個DIMM地 址。因此,如后面更詳細(xì)地討論的那樣,當(dāng)存儲器控制器36減少活動的存儲體40A、40B和40C的數(shù)量并且兩個相關(guān)的物理地址然后可被映射到同一存儲體40時,存儲體40不會招致附加的延遲。并且,在某些實施例中,不是所有的存儲器總線42、44和46會具有相同的帶寬能力,并且不是所有的存儲體40A、40B和40C會以相同的延遲操作。事實上,存儲體40A、40B和40C可具有不同的信令特性或不同的大小。在一些實施例中,至少一個存儲體40可以是DDR存儲器,而另一存儲體40可以是閃速存儲器。在這些條件下,雖然對于DIMM地址的物理地址的映射分布可能不均勻分布,但是存儲器控制器36可通過將物理地址映射到存儲體40A、40B和40C的DIMM地址解決這種不對稱性,使得每一個在不招致過度的延遲的情況下包含盡可能多的相關(guān)的物理地址(或者,如在上述的替代性實施例中那樣,更少)。如下面討論的那樣,存儲器控制器36可控制存儲體存儲體40A、40B和40C和/或存儲器總線42、44和46中的一個或多個什么時候被關(guān)斷(例如,通過關(guān)斷存儲器、將存儲器置于自刷新模式中或者將存儲器設(shè)定于任何其它低功率消耗模式)以節(jié)省電力。當(dāng)存儲器控制器36采取步驟以關(guān)斷存儲體40A、40B或40C和/或存儲器總線42、44和46時,存儲器控制器36可飛速將減少的一組物理地址動態(tài)重新映射到剩余存儲體40的DIMM地址。當(dāng)所有的存儲體40A、40B和40C活動時,存儲器控制器36可將處理器12請求的物理地址動態(tài)映射到存儲器14中的某些存儲器存儲單元或DIMM地址。圖4示出這種動態(tài)映射方案的一個實施例。在圖4的實施例中,存儲器映射圖48示出根據(jù)由存儲器控制器36使用的動態(tài)映射函數(shù)或等式的可大致均勻地跨著存儲體40A、40B和40C分配相關(guān)的物理地址的方式。雖然本公開描述實現(xiàn)在存儲器映射圖48中示出的結(jié)果的特定存儲器映射函數(shù),但是存儲器控制器36可使用以上述的方式中的一種跨著三個存儲體40A、40B和40C將物理地址動態(tài)映射到DIMM地址的任何映射函數(shù)。并且,雖然本公開一般提到將物理地址映射到某些硬件存儲單元,但是應(yīng)當(dāng)理解,其它的存儲器映射配置可包含跨著多個存儲體40分配頁或存儲器的任意其它適當(dāng)?shù)牧6?。在存儲器映射圖48中,標(biāo)有“物理地址”的最左面的列表示可由處理器12請求存儲器控制器36的物理地址。標(biāo)有“存儲體”的列列出各存儲體40A、40B和40C(存儲體O、存儲體I和存儲體2)。僅出于解釋性的目的,各存儲體40保持八個存儲地址。實際上,應(yīng)當(dāng)理解,存儲體40的大小和它們的存儲地址可大得多,并且可代表可由存儲器控制器36操縱的存儲器的任何大小的塊(例如,高速緩存線或頁)。標(biāo)有“DIMM地址”的列示出物理地址對于三個存儲體40A、40B和40C上的某些硬件存儲單元或DIMM地址的映射。因此,DIMM地址O可保持與物理地址O相關(guān)的數(shù)據(jù),DMM地址I可保持與物理地址3相關(guān)的數(shù)據(jù),等等。并且,如上所述,物理地址可以不直接鄰接地映射到DIMM地址。但是,為了清楚起見,物理地址可被理解為依次與每個存儲體40可保持的一定數(shù)量的存儲地址對應(yīng)。即,通過第一陰影表示前八個物理地址,通過第二陰影表示第二組的八個物理地址,并且,通過第三陰影表示第三組的八個物理地址。這些陰影是要更清楚地示出存儲器控制器36可如何跨著存儲體40A、40B和40C將這些物理地址映射和重新映射到DIMM地址。當(dāng)處理器12指示存儲器控制器36訪問物理地址時,存儲器控制器36可根據(jù)存儲器映射函數(shù)將物理地址動態(tài)映射到其在存儲體40A、40B和40C中的相應(yīng)的DIMM地址。為了實現(xiàn)存儲器映射圖48的結(jié)果,可以使用以下的存儲器映射函數(shù)Banklndex = Floor (PAddr/TotalBanks) (I)和 DIMMAddr = MOD(PAddr*BankSize, TotalMemory)+Banklndex (2)在上式(I)和⑵中,變量PAddr代表在存儲器映射圖48的最左面的列中列出的物理地址,變量DIMMAddr代表映射物理地址的DI麗地址。變量Banklndex代表用于改變將物理地址映射到存儲體40的DIMM地址中的哪一個的偏移值。變量BankSize代表每個存儲體40的物理地址的量。變量TotalBanks代表存儲體40A、40B和40C的總數(shù)量,以及變量TotalMemroy代表DIMM地址的總數(shù)。這可被稱為微帶存儲器,該微帶存儲器通過它們的原始存儲體纏繞在物理地址周圍但偏移它們以避免依次映射到同一 DIMM地址。在一個例子中,存儲器控制器36可將物理地址“4”映射到DI麗地址“9”如下MOD (PAddr*BankSize, TotalMemory) +BanklndexMOD (4*8,24)+Floor (4/3)MOD (32,24)+18+19在另一例子中,存儲器控制器36可將物理地址“2”映射到DI麗地址“ 16”如下MOD (PAddr*BankSize, TotalMemory) +BanklndexMOD (2*8,24)+Floor (2/3)MOD (16,24)+016+016以這種方式,存儲器控制器36可根據(jù)由式(I)和(2)描述的映射函數(shù)將物理地址動態(tài)映射到DMM地址。在存儲器映射圖48的實施例中,基于式(I)和(2)的存儲器映射函數(shù),物理地址可以以防止依次的相關(guān)的物理地址被映射到同一存儲體40的方式被映射到DIMM地址。當(dāng)存儲體能夠在沒有延遲的情況下一次訪問一個DIMM地址時,該配置一般可使當(dāng)處理器12請求一系列的依次的物理地址時可用的帶寬最大化。在其它的實施例中,如果特定的存儲體40能夠在沒有延遲的情況在給定的時間訪問兩個或更多個DIMM地址,那么映射函數(shù)可適于分配物理地址,使得兩個或更多個依次的物理地址映射到同一存儲體40上的DMM地址。在某些實施例中,盡管存儲體40A、40B和40C可能能夠在沒有延遲的情況在給定的時間訪問兩個或更多個DIMM地址,但是存儲器控制器36仍可使用上述的映射函數(shù)。這樣,當(dāng)存儲器控制器36使存儲體40A、40B和40C中的一個和/或存儲器總線42、44和46中的一個被關(guān)斷以節(jié)省電力并將剩余的物理地址重新映射到剩余的存儲體40A、40B和40C的DIMM地址時,即使當(dāng)兩個相關(guān)的物理地址被隨后映射到同一存儲體40時,也不會明顯增加延遲。電子設(shè)備10可在不同的時間點(diǎn)上使用各種量的存儲器14。特別地,與圖形相關(guān)的存儲器會是非常易失的,在不同的時間用于高度可變的量。圖5和圖6代表示出存儲器使用的這種變化的示意圖。首先轉(zhuǎn)到圖5,存儲器使用圖50代表跨著三個存儲體40A、40B和 40C可用的存儲器的總量。使用中存儲器52可存儲與顯示器18上的畫面、光標(biāo)、可具有動畫的窗口和組件緩沖器等相關(guān)的數(shù)據(jù)。但是,由于會在存儲體40A、40B和40C中保持一定量的未使用的存儲器54,因此使用中存儲器52可以不占據(jù)所有全部的可用存儲器。如存儲器使用圖50所示,當(dāng)前活動或者被電子設(shè)備10頻繁使用的存儲器的總量可不止跨越存儲體40A、40B和40C中的兩個可用的存儲器的總量。因而,可以使用所有的三個存儲體40A、40B和40C。在存儲器使用如圖5所示的那樣的情況下,由存儲器控制器36使用的存儲器映射函數(shù)可將物理地址映射到位置跨著三個存儲體40A、40B和40C的DIMM地址。在電子設(shè)備操作期間的其它時間,會使用很少的存儲器。例如,如圖6所示,存儲器使用圖56可包含少量的使用中存儲器52和大量的未使用存儲器54。在存儲器使用圖56中,使用中存儲器52的量可跨越多于一個的存儲體40但少于所有的三個存儲體40A、40B和 40C。隨著電子設(shè)備10的存儲器使用改變,電子設(shè)備10可通過更少的存儲器帶寬和/或通過更少的總存儲器充分操作。因此,基于某些準(zhǔn)則,電子設(shè)備存儲器管理系統(tǒng)34可采取步驟以減少存儲器14消耗的電力的量。圖7的存儲器管理因素圖58示出幾個這種設(shè)備存儲器操作準(zhǔn)則60,這些設(shè)備存儲器操作準(zhǔn)則60可包含性能計數(shù)器62、電子設(shè)備10的操作狀態(tài)64、電子設(shè)備10的存儲器使用歷史66、電子設(shè)備10的期望存儲器使用68、電子設(shè)備10的熱限制70、GPU存儲器停頓72、分頁活動74和/或用戶偏好的指示等。作為可指示是否更多或更少的存儲器應(yīng)可用于電子設(shè)備10的一個代表性準(zhǔn)則,性能計數(shù)器62可代表通過電子設(shè)備10的系統(tǒng)性能的操作系統(tǒng)(OS)的連續(xù)監(jiān)視。例如,性能計數(shù)器62可指示在給定時間出現(xiàn)多少處理和/或可提供已如何消耗系統(tǒng)資源的最近的歷史。如果可能的話,性能計數(shù)器62所示的處理資源的消耗增加可通知應(yīng)增加可用的存儲器資源。類似地,如果可能的話,處理資源的消耗減少可通知應(yīng)減少可用的存儲器資源??芍甘臼欠窀嗷蚋俚拇鎯ζ鲬?yīng)可用于電子設(shè)備10的另一準(zhǔn)則可以是電子設(shè)備10的操作狀態(tài)64。在一些實施例中,操作狀態(tài)64可基于性能計數(shù)器62被確定,并且可代表例如電子設(shè)備10是否在活動、高性能或空閑的狀態(tài)中操作。另外,或者,作為替代方案,操作狀態(tài)64可表示電子設(shè)備10是否例如由于電源26從外部AC源變?yōu)殡姵卦椿蛘哂捎陔姵仉娏^低而在低功率狀態(tài)下操作。如果可能的話,某些操作狀態(tài)64(例如,活動狀態(tài))可通知應(yīng)增加可用的存儲器資源。如果可能的話,其它的操作狀態(tài)64(例如,空閑狀態(tài))可通知應(yīng)減少可用的存儲器資源。由于過去存儲器使用可指示可能的將來的存儲器使用,因此存儲器使用歷史66和期望存儲器使用68可代表用于確定是否應(yīng)使得更多或更少的存儲器可用于電子設(shè)備10的準(zhǔn)則。存儲器使用歷史66可代表最近的歷史存儲器使用(例如,前I分鐘、2分鐘、5分鐘、10分鐘、20分鐘、I小時等的存儲器使用),和/或可代表用于期望的時間周期的存儲器使用模式(例如,前幾天、幾星期、幾個月和/或電子設(shè)備10的壽命上的存儲器使用)。期望存儲器使用68可從存儲器使用歷史66得到,或者可基于電子設(shè)備10的存儲器使用的典型模式。存儲器使用歷史66和/或期望存儲器使用68可根據(jù)是否更多或更少的存儲器處于使用中或者可望處于使用中通知是應(yīng)增加還是應(yīng)減少可用的存儲器資源??赏ㄟ^以下的例子示出存儲器使用歷史66和/或期望存儲器使用68。在第一例子中,電子設(shè)備10的操作系統(tǒng)(OS)可識別什么時候啟動具有已知的存儲器消耗歷史的某些應(yīng)用程序。當(dāng)歷史上消耗了大量存儲器的應(yīng)用被啟動時,OS或應(yīng)用可提供會在不久的將 來消耗相對大量的存儲器的指示。在另一例子中,電子設(shè)備10可基于用戶的歷史使用模式預(yù)測用戶一般什么時候需要大量的存儲器。例如,電子設(shè)備10可識別在星期二早晨電子設(shè)備10—般執(zhí)行明顯大量的圖像處理,或者在星期四晚上,電子設(shè)備10被用于播放存儲器密集的3D游戲。因而,在星期二早晨和星期四晚上,存儲器使用歷史66和期望存儲器使用68會在有利于增加可用的存儲器資源方面明顯增加權(quán)重。在第三例子中,當(dāng)前在電子設(shè)備10上運(yùn)行的應(yīng)用可提供指示大約在不久的將來需要相對大量的存儲器或者大約在不久的將來需要相對少量的存儲器的暗示?;谶@種暗示,期望存儲器使用68 (例如,由電子設(shè)備10的OS確定)可根據(jù)需要在有利于增加或減少當(dāng)前可用的存儲器方面增加權(quán)重。在第四例子中,OS會遵循存儲器的分配模式以確定過去什么時候出現(xiàn)了以及可能會在將來出現(xiàn)存儲器分配的大的模式??芍甘臼欠駪?yīng)使得更多或更少的存儲器可用于電子設(shè)備10的另一準(zhǔn)則可以是置于電子設(shè)備10上的熱限制70。由于來自環(huán)境的外部熱和由電子設(shè)備10的部件產(chǎn)生的內(nèi)部熱,特別是在高性能操作的期望周期之后,電子設(shè)備10會接近熱限制70。如果接近這種熱限制70,那么電子設(shè)備10更可能確定是否應(yīng)減少可用的存儲器資源。伴隨更少的存儲器資源產(chǎn)生熱,因此會減少內(nèi)部產(chǎn)生的熱的量,并且電子設(shè)備10可規(guī)避熱限制70。在一些實施例中,諸如CPU或GPU存儲器停頓72或通過電子設(shè)備10的任何其它數(shù)據(jù)處理電路的存儲器停頓的設(shè)備存儲器停頓和存儲器分頁活動74可指示是否應(yīng)使得更多或更少的存儲器可用于電子設(shè)備10。GPU存儲器停頓72的存在可指示應(yīng)使得更多的存儲器可用,而這種GPU存儲器停頓72的缺少可指示電子設(shè)備10當(dāng)前具有過量的存儲器供給。類似地,存儲器分頁活動74可指示可用的存儲器處于或不處于活動或頻繁使用中的程度。可指示是否應(yīng)增加或減少電子設(shè)備10的可用存儲器資源的另一準(zhǔn)則可以是用戶偏好76。例如,電子設(shè)備10的用戶可指示比高性能更偏好增加電池壽命,或者相反。類似地,用戶可選擇使電子設(shè)備10進(jìn)入更低或更低高的存儲器消耗模式。在另一例子中,電子設(shè)備10可能能夠被多個用戶使用,并且不同的用戶可以不同的方式操作電子設(shè)備10。SP,一些用戶一般會使用存儲器密集應(yīng)用,而其它的用戶一般會使用消耗相對很少的存儲器的應(yīng)用。通過跟蹤用戶存儲器-消耗行為,電子設(shè)備10可確定各用戶的偏好76。然后,當(dāng)用戶使用電子設(shè)備10時,用戶偏好76可關(guān)于增加或減少可用的存儲器增加權(quán)重。如上所述,電子設(shè)備10可在確定如何管理電子設(shè)備10的存儲器14時考慮存儲器操作準(zhǔn)則60。在圖8的流程圖80中,出現(xiàn)用于基于這種準(zhǔn)則60管理存儲器14的方法的一個實施例。在第一框82中,電子設(shè)備10 (例如,存儲器控制器36、處理器12、在處理器12上運(yùn)行的OS和/或在OS上運(yùn)行的軟件)可考慮存儲器操作準(zhǔn)則60中的一些或全部。在一些實施例中,準(zhǔn)則60可相對于彼此被加權(quán),以查明電子設(shè)備10存儲器使用總體是過量還是不足或者可望在將來在變得過量或不足。在一些實施例中,某些準(zhǔn)則60可被賦予不同的權(quán)重和/或一定的準(zhǔn)則60可優(yōu)先于所有其它(例如,當(dāng)熱變得過量時,熱限制70可優(yōu)先)。如判定框84所示,如果可用的存儲器被確定為過量或者可望在不久的將來過量(例如,關(guān)于重新映射和去活過量存儲器所需要的時間),那么電子設(shè)備10可在判定框86中考慮存儲器使用的過量經(jīng)過證明存儲器14的一個或多個部分的去活的閾值。作為例子,當(dāng)用戶選擇關(guān)閉高存儲器消耗應(yīng)用時,電子設(shè)備10可確定一旦關(guān)閉當(dāng)前可用的存儲器就·可望過量。閾值可包含可代表存儲器使用過量的時間長度的時間成分,和/或可包含可代表存儲器使用被視為過量的程度的定量成分。在一些實施例中,閾值可代表總過量存儲器使用的量和/或使用中存儲器保持低于存儲器14的一定數(shù)量的部分(例如,如圖6所示,使用少于2個的存儲體40)的時間量。如果在判定框86中沒有達(dá)到閾值,那么電子設(shè)備10可在框88中通過降低存儲體40A、40B和/或40C和/或它們的相關(guān)存儲器總線42、44和/或46的時鐘速度和/或操作電壓以將它們置于低功率消耗模式來減少一些功率消耗。如果在判定框86中達(dá)到閾值,那么電子設(shè)備10在框90中通過去活存儲體40A、40B和/或40C和/或它們的相關(guān)存儲器總線42、44和/或46中的一個來減少附加的功率消耗。以下描述可如何出現(xiàn)這種去活的更詳細(xì)的描述。可以以各種其它方式實施一個或多個存儲體40被斷電時的判定框84和86 框90的處理。在一些實施例中,當(dāng)電子設(shè)備10的存儲器使用減少到可映射到數(shù)量比當(dāng)前使用中少的存儲體40A、40B和40C中的DMM地址的物理地址的總數(shù)時,與存儲器控制器36相關(guān)的邏輯可啟動關(guān)斷處理。這樣,在某些實施例中,在處理器12上運(yùn)行的操作系統(tǒng)(OS)或在OS上運(yùn)行的軟件可遵循以上的判定框84和86,以決定什么時候?qū)⒋鎯w40斷電。OS可然后指示處理器12向存儲器控制器36發(fā)送控制信號,從而導(dǎo)致在框90中開始關(guān)斷處理。在其它的實施例中,處理器12可自動檢測存儲器使用什么時候下降以包括比當(dāng)前使用少的存儲體40A、40B和40C。例如,MMU 39可周期性地或連續(xù)地向處理器12提供當(dāng)前使用和/或被映射到物理地址的邏輯地址的總數(shù)的指示。然后,處理器12可向存儲器控制器36發(fā)送控制信號以啟動關(guān)斷處理。在某些其它的實施例中,與存儲器控制器36相關(guān)的邏輯可通過監(jiān)視處理器12請求哪些物理地址來自動檢測什么時候應(yīng)使用更少的存儲體40A、40B和40C。例如,如果處理器12對于閾值時間周期(例如,10秒、20秒、I分鐘、2分鐘、5分鐘、10分鐘、20分鐘等)沒有請求超出存儲體I的物理地址,那么存儲器控制器36可理解不需要這些物理地址,并且可因此自動啟動關(guān)斷處理。返回判定框84,如果電子設(shè)備10的存儲器使用不被確定為過量,那么電子設(shè)備10可在判定框92中確定當(dāng)前可用的總存儲器按照存儲器操作準(zhǔn)則60是否不足。在判定框94中,電子設(shè)備10可考慮是否存儲器使用的不足經(jīng)過判斷事先關(guān)斷的存儲器14的一個或多個部分的去活的閾值。這種閾值可包含可代表存儲器使用不足的時間長度的時間成分,和/或可包含可代表存儲器使用被視為不足的程度的定量成分。在一些實施例中,閾值可代表總存儲器使用量和/或使用中存儲器保持高于接近存儲器14的一定數(shù)量的部分的限制的時間量(例如,當(dāng)一個存儲體40已被關(guān)斷時,為幾乎所有的2個存儲體40的使用)。如果在判定框94中沒有達(dá)到閾值,那么在框96中,可通過增加存儲體40A、40B和/或40C和/或它們的相關(guān)存儲器總線42、44和/或46的時鐘速度和/或操作電壓,在不明顯增加功率消耗的情況下增加電子設(shè)備10的性能。如果在判定框94中達(dá)到了閾值,那么電子設(shè)備10可在框98中重新激活事先被關(guān)斷的存儲體40A、40B和/或40C和它們的相關(guān)存儲器總線42、44和/或46中的一個。如果準(zhǔn)則60指示在判定框84中存儲器使用不過量并且在框92中存儲器使用沒有不足,那么如框100所示,電子設(shè)備10可以不明顯地改變存儲器14的配置。如上所述,存儲器14的一個或多個部分可被去活以節(jié)省電力。在一些實施例中,如圖9所示,存儲器14的這些部分可包含一個或多個存儲體40。特別地,圖9示出存儲器 管理系統(tǒng)34可在將某些物理地址從存儲體40C重新映射和復(fù)制到剩余的存儲體40A和40B之后通過使存儲體40C(存儲體2)和/或相關(guān)的存儲器總線46關(guān)斷來節(jié)省電力的方式。在圖9中,存儲器控制器36被示為導(dǎo)致存儲體40C (存儲體2)和/或相關(guān)的存儲器總線46關(guān)斷。但是,應(yīng)當(dāng)理解,根據(jù)設(shè)計考慮和/或電子設(shè)備10的操作狀態(tài),存儲器控制器36可替代性地使存儲體40A或40B和/或存儲器總線42或44中的任一個關(guān)斷。并且,雖然一整個存儲體40C被示為被關(guān)斷,但是在一些實施例中,存儲器控制器36可僅使存儲體40C的一部分關(guān)斷。存儲器控制器36可使選擇的存儲體40C和/或存儲器總線46以任意適當(dāng)?shù)姆绞疥P(guān)斷。例如,在一個實施例中,存儲體40C可能能夠在從存儲器控制器36接收特定的控制信號或指令時關(guān)斷。另外,或者作為替代方案,存儲器控制器36可通過例如引導(dǎo)開關(guān)(未示出)切斷電力使對于選擇的存儲體40的電源被切斷。通過圖10的流程圖11示出用于實施存儲器關(guān)斷處理的方法的一個實施例。在第一框112中,存儲器控制器36可開始將存儲體40A、40B或40C和/或存儲器總線42、44或46中的一個斷電的處理。如以上參照圖8所示的那樣,存儲器控制器36、處理器12、在處理器12上運(yùn)行的OS和/或在OS上運(yùn)行的軟件可基于存儲器操作準(zhǔn)則60中的一個或多個確定是否要關(guān)斷存儲體40A、40B或40C中的一個。作為例子,可在OS確定其存儲器的工作組足夠小或可使得其足夠小以不使用來自存儲體40A、40B或40C中的一個的存儲器之后進(jìn)行框112。在一些實施例中,OS然后可停止使用等于存儲體40A、40B或40C中的一個的存儲器量。例如,如果存儲體40A、40B和40C中的每一個具有相同的容量,那么OS可停止使用三分之一的存儲器。在在框112中確定開始關(guān)斷處理之后,存儲器控制器36可在框114中選擇關(guān)斷存儲體40A、40B或40C中的哪一個。在一些實施例中,存儲器控制器36、處理器12、在處理器12上運(yùn)行的OS和/或在OS上運(yùn)行的軟件可選擇以一定的次序關(guān)斷存儲體40A、40B和40C中的一個。例如,如果所有的存儲體40A、40B和40C當(dāng)前是活動的,那么存儲體2可被選擇關(guān)斷;如果存儲體40A、40B和40C中的兩個當(dāng)前是活動的,那么存儲體I可被選擇關(guān)斷。作為例子,OS可呼叫存儲器控制器36以使存儲體40A、40B或40C被關(guān)斷(例如,關(guān)掉或者置于自刷新模式中)。作為替代方案,在框114中,存儲器控制器36、處理器12、在處理器12上運(yùn)行的OS和/或在OS上運(yùn)行的軟件可基于與帶寬因素平衡的功率消耗因素確定哪個存儲體40和/或存儲器總線42、44或46關(guān)斷。例如,存儲體40A、40B和40C和/或存儲器總線42、44和46中的某些可具有更高的帶寬能力,但會消耗更多的電力。當(dāng)帶寬問題比功率消耗問題重要時,存儲器控制器36可選擇關(guān)斷低帶寬存儲體40和/或存儲器總線42、44或46,從而節(jié)省一些電力但保持更大量的存儲器帶寬。當(dāng)功率消耗問題比帶寬問題重要時,存儲器控制器36可選擇關(guān)斷更高帶寬存儲體40和/或存儲器總線42、44或46。如后面更詳細(xì)地描述的那樣,在框116中,存儲器控制器36可將剩余的或活動的物理地址重新映射到DIMM地址并在關(guān)斷選擇的存儲體40之前從被選擇要被關(guān)斷的存儲體40復(fù)制數(shù)據(jù)。在重新映射和復(fù)制之后,在框118中,存儲器控制器36可以以任意適當(dāng)?shù)姆绞绞惯x擇的存儲體40和/或存儲器總線42、44或46關(guān)斷。例如,在一個實施例中,存儲體40可能能夠在從存儲器控制器36接收特定的控制信號或指令時關(guān)斷。另外,或者作為替代方案,存儲器控制器36可通過例如引導(dǎo)開關(guān)(未示出)切斷電力來切斷對于選擇的存儲體 40的電力。轉(zhuǎn)到圖11,存儲器映射圖120示出在圖10的框116中使用的從3存儲體映射方案動態(tài)重新映射為2存儲體映射方案的方式。標(biāo)有“物理地址”的列列出物理地址。以虛線的格式示出不再使用的物理地址(例如,16 23),該不再使用的物理地址可被稱為“不活動物理地址”。標(biāo)有“存儲體”的列列出僅出于示例性的目的被示為保持八個DIMM地址的存儲體40A、40B和40C(存儲體O、存儲體I和存儲體2)。實際上,應(yīng)當(dāng)理解,存儲體40和它們的存儲地址的大小可大得多,并且可代表可由存儲器控制器36操縱的存儲器的任何大小塊(例如,高速緩存線或頁)。以虛線格式示出要被關(guān)斷的存儲體40 (例如,存儲體2)。標(biāo)有“DI麗地址(3個存儲體)”的列示出物理地址對于三個存儲體40A、40B和40C上的某些硬件存儲器存儲位置或DIMM地址的原始映射。標(biāo)有“DIMM地址(2個存儲體)”的列示出在活動存儲體40的數(shù)量從3個減少到2個時將活動物理地址重新映射到某些硬件存儲器存儲位置或DIMM地址。在重新映射之前,在處理器12上運(yùn)行的OS、在操作系統(tǒng)(OS)上運(yùn)行的軟件或處理器12 (例如,在一些實施例中,為MMU 39)可配置使用中物理地址,使得使用中物理地址處于要被斷電的存儲器的區(qū)域外面。例如,某些有線物理地址或頁可被清除。然后,OS、軟件和/或處理器12可使存儲器控制器36接收命令以開始動態(tài)重新映射處理。另外,或者作為替代方案,存儲器控制器36可如上面討論的那樣自動地確定開始動態(tài)重新映射處理。存儲器控制器36可使用替代性的動態(tài)存儲器映射函數(shù)以將在3存儲體映射方案中映射的使用中物理地址重新映射到第三存儲體40的DIMM地址。替代性的存儲器映射函數(shù)可以是在重新映射在3存儲體方案中映射到不活動物理地址的DIMM地址的同時,保持映射位于保持使用的存儲體40A、40B和40C上的活動物理地址的任何適當(dāng)?shù)暮瘮?shù)。在存儲器重新映射圖120的例子中,存儲體O和I保持活動,并且映射到存儲體O和I上的DMM地址的活動物理地址(例如,O 15)不會變。當(dāng)活動存儲體40A、40B和40C中的一個的DIMM地址被映射到不活動物理地址(例如,16 23)時,存儲器控制器36可飛速重新映射這些DIMM地址。用于剩余的物理地址的替代性的存儲器映射函數(shù)可包含以下的關(guān)系
ALT_DIMMAddr3_2 =如果(DIMMAddr < ReducedMemory3_2,則DIMMAddr,否則如果(BankReindex3_2 < Fir stBankEntr ies3_2則FirstBankOffset3_2+BankReindex3_2·否則Se oondBank0ffset3_2+BankRaindex3_2)) (3),其中,BankReindex3_2 =如果(DIMMAddr < ReducedMemory3_2,則-1,否則DIMMAddr-ReducedMemory3_2) (4);FirstBankEntries3_2 = Floor (BankSize/TotalBanks) (5);FirstBankOffset3_2 =Floor(ReducedBanks3_2*BankSize/TotalBanks) (6);和SecondBankOffset3_2 = FirstBankEntries3_2+BankSize (7)-Floor(BanSize/TotalBanks) +3在以上的式(3) (7)中,變量ALT_DIMMAddr3_2代表2存儲體映射方案的替代性的DI麗地址映射,變量DIMMAddr代表3存儲體映射方案的DI麗地址映射,以及ReducedMemroy3_2代表跨著剩余的活動的存儲體40A、40B和40C可用的DIMM地址的新減少的量。與變量 FirstBankEntries3_2、Fir stBankOff set3_2 和 SecondBank0ffset3_2 組合使用變量BankReindeX3_2,以查明替代性的DMM地址映射。在確定這些變量時使用的變量BankSize代表每個存儲體40的物理地址的量,變量TotalBanks代表存儲體40A、40B和40C的總數(shù),以及變量ReduCeBanks3_2代表一旦選擇的存儲體40被關(guān)斷時保持的存儲體40A、40B和40C的數(shù)量。如上面參照圖4描述的那樣,并且如圖11所示,在3存儲體存儲器映射方案中,物理地址“4”映射到DMM地址“9”。在2存儲體存儲器映射模式中,使用式(3) (7)的替代性的存儲器映射函數(shù),物理地址“4”可繼續(xù)被映射到DMM地址“9”。相反,物理地址“2”可從位于要被關(guān)斷的存儲體40 (例如,存儲體2)上的DMM地址“ 16”被重新映射到DMM地址“6”。存儲器控制器36可使用復(fù)制函數(shù)122以將數(shù)據(jù)從即將關(guān)斷存儲體40 (例如,存儲體2)復(fù)制到新重新映射的存儲體O和I中。在復(fù)制存儲器數(shù)據(jù)時,存儲器控制器36可簡單地重寫存儲體O和I的重新映射的地址中的數(shù)據(jù)。作為例子,存儲器控制器36可從與剩余的活動物理地址對應(yīng)的即將關(guān)斷存儲體40的DIMM地址讀取數(shù)據(jù)。存儲器控制器36可然后將數(shù)據(jù)寫入到替代性的DIMM地址或替代性的DIMM地址和原始DIMM地址。應(yīng)當(dāng)注意,復(fù)制函數(shù)122可在沒有諸如從活動存儲體O或I中的任一個的復(fù)制的其它中間復(fù)制步驟的情況下,有效地將數(shù)據(jù)從存儲體2傳送到存儲體O和I。最后,應(yīng)當(dāng)注意,可如在存儲器重新映射圖120表示的那樣進(jìn)行存儲器重新映射處理可能不包含處理器12的MMU 39的轉(zhuǎn)換后備緩沖器(TLB)的一部分上的任何活動,而可僅通過以迅速、有效的方式執(zhí)行重新映射和復(fù)制的存儲器控制器36動態(tài)地進(jìn)行。在出現(xiàn)重新映射的同時,要被關(guān)斷的存儲體40 (例如,存儲體2)可繼續(xù)是可訪問的。由于存儲于要被關(guān)斷的存儲體40 (例如,存儲體2)上的數(shù)據(jù)被寫入到3存儲體DMM地址映射和2存儲體DIMM地址映射中(例如,寫入到存儲體O、存儲體I和存儲體2上的硬件存儲單元),因此要被關(guān)斷的存儲體40上的數(shù)據(jù)將在3存儲體DIMM地址上保持可訪問,直到存儲體40被實際關(guān)斷。并且,應(yīng)當(dāng)理解,該重新映射的原理可擴(kuò)展到任何更少數(shù)量的存儲體40,不僅僅是從3個存儲體40到2個存儲體40的情況。即,在最終關(guān)斷要被關(guān)斷的存儲體40 (例如,存儲體2)之前,存儲器控制器36可繼續(xù)以2存儲體DIMM地址映射操作。由于存儲器控制器36繼續(xù)以2存儲體DIMM地址映射操作,因此可在最終關(guān)斷要被關(guān)斷的存儲體40(例如,存儲體2)之前的任何時間中止重新映射操作。在某些實施例中,存儲器控制器36可將數(shù)據(jù)從即將關(guān)斷存儲體40 (例如,存儲體2)交換而不是破壞性地復(fù)制到新重新映射的存儲體O和I中。作為例子,物理地址2可與物理地址18交換,物理地址5與21交換,等等。雖然執(zhí)行這種交換功能而不是復(fù)制功能可包含附加的存儲器緩沖器以在出現(xiàn)交換的同時保持正在交換的物理地址,但是交換可使得來自當(dāng)前沒有使用的物理地址的數(shù)據(jù)可用于將來。特別地,要被關(guān)斷的存儲體40可被置于 可消耗相對很少的電力但可保留在存儲體40內(nèi)存儲的數(shù)據(jù)的自刷新模式中。在晚些時候,當(dāng)存儲體40要被重新激活并出現(xiàn)重新映射時,原始交換的物理地址可被交換回。并且,如上所述,在一些實施例中,式(I)和式(2)的原始3存儲體存儲器映射函數(shù)可被計算以跨著DIMM地址分配物理存儲地址,使得各存儲體40包含比沒有延遲的最大可能少的相關(guān)物理地址。然后,使用式(3) (7)的替代性的映射函數(shù),即使兩個相關(guān)的物理地址被映射到同一存儲體40,存儲體40也不會招致附加的延遲。因此,兩個相關(guān)的物理地址可基于替代性的映射函數(shù)被映射到同一存儲體40,但不會明顯增加存儲器14的延遲。返回圖12,流程圖124描述用于實施在存儲器重新映射圖120中表示的處理的方法的實施例。在第一框126中,存儲器管理系統(tǒng)34可開始進(jìn)入2存儲體存儲器映射模式。在框128中,當(dāng)從處理器12接收物理地址時,存儲器控制器36可使用式(3) (7)的替代性的存儲器映射函數(shù)。在框130中,如存儲器映射圖120所示,存儲體2上的剩余的活動物理地址的存儲器數(shù)據(jù)可被復(fù)制到存儲體O和I的新重新映射的存儲地址上。在一個實施例中,存儲器控制器36可僅從要被關(guān)斷的存儲體40的DIMM地址讀取數(shù)據(jù),但可將數(shù)據(jù)寫回3存儲體DIMM地址和2存儲體DIMM地址。在出現(xiàn)這種復(fù)制時,假定各復(fù)制是原子的(即,給定的DIMM地址的各讀取伴隨向兩個DIMM地址的寫回),存儲器控制器36可繼續(xù)以3存儲體存儲器映射模式操作,異步地向2存儲體存儲器映射模式轉(zhuǎn)變。即,從操作系統(tǒng)(OS)的角度,存儲器控制器36表現(xiàn)為以2存儲體存儲器映射操作。從OS的觀點(diǎn),OS僅使用更少的地址空間。事實上,在出現(xiàn)從3存儲體存儲器映射到2存儲體存儲器映射的轉(zhuǎn)變的同時,所有的讀取和寫入會如期望的那樣出現(xiàn)。以這種方式,存儲器可在沒有過量復(fù)制的情況下被動態(tài)地飛速重新映射。因此,如果存儲器控制器36出于另一目的需要在存儲于存儲體40中的存儲器上執(zhí)行其它的操作時,在存儲器控制器36執(zhí)行這些其它的操作的同時,框130的復(fù)制可暫停。當(dāng)其它的操作結(jié)束時,框130的原子復(fù)制可繼續(xù),直到完成。然后,如上面參照圖10的框118討論的那樣,選擇的存儲體40可被關(guān)斷。在某些實施例中,存儲器控制器36可以以處理器12或操作系統(tǒng)(OS)未見的方式實施這些技術(shù)。在一些實施例中,OS可使存儲器控制器36執(zhí)行框126、128和130中的某些或全部(例如,OS可導(dǎo)致框130中的原子復(fù)制)。在一個實施例中,存儲器控制器36可通過應(yīng)用以下的關(guān)系識別映射到要被關(guān)斷的存儲體40中的DIMM地址的物理地址DIMMAddrBank = Floor(DIMMAddr/BankSize) (8)和PAddr = MOD(DIMMAddr*TotalBanks, TotalMemory) (9),+DIMMAddrBank其中,變量DIMMAddr代表映射物理地址的DMM地址,變量PAddr代表物理地址。變量DIMMAddrBank代表偏移值。變量BankSize代表每個存儲體40的物理地址的量,變量TotalBanks代表存儲體40A、40B和40C的總數(shù),以及變量TotalMemory代表DIMM地址的總數(shù)。作為例子,根據(jù)上式(8)和(9),存儲體2上的DMM地址“16”映射到物理地址“2”。由于DMM地址“ 16”保持與處于保持活動的物理地址之中的物理地址“2”相關(guān)的數(shù)據(jù),因此存儲器控制器36可讀取DMM地址“16”并且將存儲于其中的數(shù)據(jù)復(fù)制到對于物理 地址“2”的替代性DI麗地址映射以及對于物理地址“2”的原始DI麗地址映射。存儲器控制器36可繼續(xù)評價要被關(guān)斷的存儲體40 (例如,存儲體2)的DMM地址中的每一個,直到確定不活動的物理地址(例如,“17”)。并且,在出現(xiàn)重新映射的同時,要被關(guān)斷的存儲體40(例如,存儲體2)可繼續(xù)可訪問。由于存儲于要被關(guān)斷的存儲體40 (例如,存儲體2)上的數(shù)據(jù)被破壞性地復(fù)制和寫入到替代性的DIMM地址映射和原始DIMM地址映射中,因此要被關(guān)斷的存儲體40上的數(shù)據(jù)將在該原始DIMM地址映射上保持可訪問,直到存儲體40被實際關(guān)斷,其中,存儲器控制器36可遵循替代性DIMM地址映射方案。還應(yīng)理解,該重新映射的原理可擴(kuò)展到任何更少數(shù)量的存儲體40。一般地,在從包含更多的存儲體40的存儲器映射轉(zhuǎn)變到包含更少的存儲體40的存儲器映射之后,諸如在從3存儲體存儲器映射轉(zhuǎn)變到2存儲體存儲器映射之后,一個或多個存儲體40可以是不活動的。但是,在諸如圖24和圖25所示的實施例的某些實施例中,先前關(guān)斷的存儲體40 (例如,存儲體2)可簡單地在某些時間被通電。特別地,數(shù)據(jù)可從由2存儲體存儲器映射限定的DIMM地址被讀取,但可被寫入到由3存儲體存儲器映射和2存儲體存儲器映射限定的DIMM地址。以這種方式,至少在一些時間(例如,在自刷新模式中,同時不被寫入)第三存儲體會是不活動的,從而節(jié)省電力。但是,當(dāng)存儲器控制器36切換回3存儲體映射時,已出現(xiàn)數(shù)據(jù)向DMM地址的3存儲體映射的反向復(fù)制,從而節(jié)省時間。這種實施例對于非對稱的讀取主導(dǎo)的情況是特別有用的。圖24和圖25示出以上參照圖10更詳細(xì)地描述的替代性存儲器映射120。因而,這里不再現(xiàn)該討論。在圖24和圖25所示的實施例中,僅存儲體O和存儲體I是活動的,并且存儲器控制器36 —般以2存儲體存儲器映射操作。即,在圖24所示的例子中,當(dāng)存儲器控制器36選擇執(zhí)行讀取操作244以讀取物理地址“2”時,存儲器控制器僅從在2存儲體存儲器映射中映射到物理地址“2”的DMM地址“6”讀取。當(dāng)數(shù)據(jù)被讀取時,存儲體2可保持不活動,從而節(jié)省電力。如圖25所示,當(dāng)存儲器控制器36選擇向存儲體40寫入數(shù)據(jù)時,存儲器控制器36可不僅向2存儲體存儲器映射而且向3存儲體存儲器映射寫入數(shù)據(jù)。這樣,存儲體2可至少暫時被激活。在圖25的例子中,當(dāng)存儲器控制器36選擇執(zhí)行寫入物理地址“2”的寫入操作246時,存儲器控制器可不僅寫入到存儲體O上的DIMM地址“6””而且寫入到存儲體2上的DIMM地址“ 16”。如果存儲器控制器36在后來從2存儲體存儲器映射轉(zhuǎn)變到3存儲體存儲器映射,那么由于物理地址“2”的內(nèi)容已位于DMM地址“ 16”中,因此來自DMM地址“6”的數(shù)據(jù)不需要被復(fù)制到DMM地址“16”。如圖13的存儲器映射圖140所示,圖11所示的動態(tài)存儲器重新映射的處理可被擴(kuò)展以進(jìn)一步減少活動存儲器的量。存儲器映射圖140示出從兩個存儲體40A、40B和40C到一個存儲體40的存儲器使用的減少。標(biāo)有“物理地址”的列列出物理地址。以虛線格式示出不再使用的物理地址(例如,8 24),該不再使用的物理地址可被稱為“不活動物理地址”。標(biāo)有“存儲體”的列列出僅出于示例性的目的分別被示為保持八個DIMM地址的存儲體40A、40B和40C。實際上,應(yīng)當(dāng)理解,存儲體40和它們的存儲地址的大小可大得多,并且可代表可由存儲器控制器36操縱的存儲器的任何大小塊(例如,高速緩存線或頁)。以虛線格式示出要被關(guān)斷的存儲體40(例如,存儲體I)和事先被關(guān)斷的存儲體40。標(biāo)有“DIMM地址(2個存儲體)”的列示出圖11的2存儲體存儲器映射方案。標(biāo)有“DMM地址(I個存儲體)”的列示出在活動存儲體40A、40B和40C的數(shù)量從2個減少到I個時將活動物理地 址重新映射到某些DIMM地址。存儲器控制器36可以以與以上參照圖10和圖12討論的方法類似的方式實施在存儲器映射圖140中概括的存儲器映射過程。存儲器控制器36可使用另一替代性的動態(tài)存儲器映射函數(shù),以將在2存儲體映射方案中映射的使用中物理地址重新映射到要被關(guān)斷的第2存儲體40的DIMM地址。替代性的存儲器映射函數(shù)可以是在重新映射在2存儲體方案中映射到不活動物理地址的DMM地址的同時,保持映射位于保持使用的存儲體40上的活動物理地址的任何適當(dāng)?shù)暮瘮?shù)。在存儲器重新映射圖140的例子中,存儲體O和I保持活動,并且映射到存儲體O上的DIMM地址的那些活動物理地址(例如,O 7)不會變。當(dāng)活動存儲體40的DIMM地址被映射到不活動物理地址(例如,8 23)時,存儲器控制器36可飛速重新映射這些DIMM地址。用于剩余的物理地址的第二替代性的存儲器映射函數(shù)可包含以下的關(guān)系A(chǔ)LT_DIMMAddr2_l =如果(ALT_DIMMAddr3_2 < ReducedMemory2_l,則ALT_DIMMAddr3_2,否則如果(BankReindex2_l< FirstBankEntries2_l,則FirstBank0ffset2_l+Bank_Reindex2_l,否則BankReindex2_l)) (10),其中,BankReindex2_l =如果(ALT_DIMMAddr3_2 < ReducedMemory2_l,則-1,否則ALT_DIMMAddr3_2-ReducedMemory2_l) (11);FirstBankEntries2_l = Floor(BankSize/TotalBanks)+1 (12);和FirstBankOffset2_I = Floor(ReducedBanks2_l*BankSize/TotalBanks)+1
(13)在以上的式(10) (13)中,變量ALT_DIMMAddr2_l代表I存儲體映射方案的替代性的DI麗地址映射,變量ALT_DIMMAddr3_2代表2存儲體映射方案的替代性的DI麗地址映射,以及ReducedMemroy2_l代表跨著剩余的活動存儲體40A、40B和40C可用的DIMM地址的新減少的量。與變量FirstBankEntries2_l和FirstBank0ffset2_l組合使用變量BankReindex2_l,以查明替代性的DIMM地址映射。在確定這些變量時使用的變量BankSize代表每個存儲體40的物理地址的量,變量TotalBanks代表存儲體40A、40B和40C的總數(shù),以及變量ReducedBankS2_l代表一旦選擇的存儲體40 (例如,存儲體I)被關(guān)斷時保持的存儲體40A、40B和40C的數(shù)量。如上面參照圖11描述的那樣,在二存儲體存儲器映射方案下,物理地址“4”仍可映射到DMM地址“9”。基于式(10) (13),如圖11所示,在I存儲體存儲器映射方案中,物理地址“4”可被重新映射到DMM地址“4”。類似地,在2存儲體存儲器映射方案中被映射到DIMM地址“6”的物理地址“2”可保持在I存儲體存儲器映射方案中映射到DIMM地址“6”。在進(jìn)入I存儲體存儲器映射模式之后,存儲器控制器36可執(zhí)行復(fù)制功能142以在I存儲體存儲器映射方案中將剩余的活動存儲地址傳送到重新映射的地址。復(fù)制功能142可以以與以上討論的復(fù)制功能122類似的方式出現(xiàn)。存儲器關(guān)斷處理在某些實施例中可被電子設(shè)備10用于特定情況下的電力管理和/或熱管理。特別地,圖14示出描述用于電力管理和/或熱管理的這種方法的實施例的流程圖150。在框152中,電子設(shè)備10可進(jìn)入空閑狀態(tài)或者會超出溫度閾值。在任一種情況·下,存儲器控制器36、處理器12、在處理器12上運(yùn)行的OS和/或在OS上運(yùn)行的軟件可確定應(yīng)減少功率消耗以節(jié)省電力和/或防止產(chǎn)生附加的熱。因而,在框154中,OS可使用可包括限制顯示器18上的圖形的幀速率、合并存儲器的工作組以適合存儲器的更小的區(qū)域和/或減少無約束存儲器的各種措施中的任一種來減少存儲器使用。另外,或者作為替代方案,當(dāng)電源26從AC電力切換到電池電力時,電子設(shè)備10可進(jìn)入空閑狀態(tài)或低存儲器使用狀態(tài),這可包含自動降低視頻幀速率。在某些實施例中,電子設(shè)備10可通過將存儲器數(shù)據(jù)備份到非易失性存儲設(shè)備16上并然后指示不再使用與數(shù)據(jù)對應(yīng)的高次物理地址來減少存儲器使用。然后,在框156中,存儲器控制器36可執(zhí)行上述的存儲器重新映射過程中的一個并關(guān)斷存儲器14的一部分(例如,存儲體2),從而節(jié)省電力和/或減少熱量。在一些實施例中,在存儲體40被關(guān)斷之前,要被關(guān)斷的存儲體40 (例如,存儲體2)上的某些DIMM地址可被用作高速緩存。如以上參照圖8討論的那樣,除了被去活以節(jié)省電力以外,存儲體40A、40B和40C也可被重新激活以增加可用的存儲器。圖15和圖16示出用于飛速從更少的存儲體40A、40B和40C重新映射到更多的存儲體40A、40B和40C的存儲器重新映射圖。首先轉(zhuǎn)到圖15,存儲器重新映射圖160示出用于從I存儲體存儲器映射方案轉(zhuǎn)變到2存儲體存儲器映射方案的過程。標(biāo)有“物理地址”的列列出物理地址。以虛線的格式示出不再使用的物理地址(例如,16 23),該不再使用的物理地址可被稱為“不活動物理地址”。標(biāo)有“存儲體”的列列出僅出于示例性的目的被示為分別保持八個DIMM地址的存儲體40A、40B和40C。實際上,應(yīng)當(dāng)理解,存儲體40和它們的存儲地址的大小可大得多,并且可代表可由存儲器控制器36操縱的存儲器的任何大小塊(例如,高速緩存線或頁)。標(biāo)有“DMM地址(2個存儲體)”的列示出2存儲體存儲器映射方案,以及標(biāo)有“DMM地址(I個存儲體)”的列示出I存儲體存儲器映射方案。當(dāng)電子設(shè)備10從I存儲體存儲器映射方案轉(zhuǎn)變到2存儲體存儲器映射方案時,存儲器控制器36可執(zhí)行復(fù)制功能162。存儲器控制器36可確定存儲體O的哪個DIMM地址當(dāng)前存儲與在2存儲體存儲器映射方案中映射到存儲體I的DIMM地址的物理地址相關(guān)的數(shù)據(jù)。存儲器控制器36可從這些DIMM地址讀取并且可將它們的內(nèi)容至少寫入與2存儲體存儲器映射方案的這些物理地址相關(guān)的DIMM地址。在某些實施例中,存儲器控制器36可將這些數(shù)據(jù)寫入I存儲體存儲器映射方案和2存儲體存儲器映射方案的DIMM地址上。然后轉(zhuǎn)到圖16,存儲器重新映射圖170示出用于從2存儲體存儲器映射方案轉(zhuǎn)變到3存儲體存儲器映射方案的過程。標(biāo)有“物理地址”的列列出物理地址。標(biāo)有“存儲體”的列列出僅出于示例性的目的被示為分別保持八個DIMM地址的存儲體40A、40B和40C。實際上,應(yīng)當(dāng)理解,存儲體40和它們的存儲地址的大小可大得多,并且可代表可由存儲器控制器36操縱的存儲器的任何大小塊(例如,高速緩存線或頁)。標(biāo)有“DIMM地址(3個存儲體)”的列示出3存儲體存儲器映射方案,以及標(biāo)有“DMM地址(2個存儲體)”的列示出2存儲體存儲器映射方案。 在上述的方式中,當(dāng)電子設(shè)備10從2存儲體存儲器映射方案轉(zhuǎn)變到3存儲體存儲器映射方案時,存儲器控制器36可執(zhí)行復(fù)制功能172。存儲器控制器36可確定存儲體O和I的哪些DIMM地址當(dāng)前存儲與在3存儲體存儲器映射方案中映射到存儲體2的DIMM地址的物理地址相關(guān)的數(shù)據(jù)。存儲器控制器36可從這些DIMM地址讀取并且可將它們的內(nèi)容至少寫入與3存儲體存儲器映射方案的這些物理地址相關(guān)的DIMM地址。在某些實施例中,存儲器控制器36可將這些數(shù)據(jù)寫入與2存儲體存儲器映射方案和3存儲體存儲器映射方案的這些物理地址相關(guān)的DIMM地址上。參照圖15和圖16,應(yīng)當(dāng)想起,在某些實施例中,存儲器控制器36可將數(shù)據(jù)從關(guān)斷的存儲體40 (例如,存儲體2或存儲體I)交換而不是破壞性性地復(fù)制到新重新映射的存儲體O和/或I中。對于這些實施例,被關(guān)斷的存儲體40可能被置于低電力自刷新模式中。因而,關(guān)斷的存儲體40可能已保存存儲于其物理地址中的數(shù)據(jù)。當(dāng)關(guān)斷的存儲體40被重新激活和重新映射(例如,根據(jù)圖15或圖16)時,該數(shù)據(jù)可被恢復(fù)。不是將某些物理地址從例如存儲體O或I上的硬件存儲單元破壞性地復(fù)制到存儲體I或2上,這些數(shù)據(jù)事實上可被交換。雖然執(zhí)行這種交換功能而不是破壞性的復(fù)制功能可包含用于在出現(xiàn)交換時保持被交換的物理地址的附加的存儲器緩沖器,但是,交換可使得能夠重新訪問先前不可訪問的數(shù)據(jù),而不需要從非易失性存儲設(shè)備16恢復(fù)這種數(shù)據(jù)。在一些實施例中,如圖17的流程圖180所示,電子設(shè)備10可平衡性能需要與存儲器使用需要,以減少在某些情況下由電子設(shè)備10使用的電力量。在第一框182中,存儲器控制器36、處理器12、在處理器12上運(yùn)行的OS和/或在OS上運(yùn)行的軟件可評價電子設(shè)備10的存儲器使用和性能需要。可例如通過監(jiān)視當(dāng)前使用的存儲器量和/或使用由電子設(shè)備10跟蹤的性能計數(shù)器實現(xiàn)這一點(diǎn)。如判定框184和186所示,如果性能需要較低并且存儲器使用較低,那么電子設(shè)備10可采取重新映射過程以根據(jù)以上在框188中描述的技術(shù)將存儲體40A、40B和40C中的一個或多個斷電。如果性能需要較低并且存儲器需要較高,那么電子設(shè)備10可在框190中降低存儲體40A、40B和40C和/或存儲器總線42、44和46的時鐘頻率。另外,或者作為替代方案,在執(zhí)行上述的重新映射和存儲器關(guān)斷技術(shù)中的一種之前,電子設(shè)備10可執(zhí)行以上參照圖14描述的系統(tǒng)空閑過程,以減少使用存儲器的量。如果如判定框184和192所示的那樣,電子設(shè)備10的性能需要較高但存儲器使用較低,那么如框194所示,存儲器14可被重新映射并且附加的存儲體40A、40B或40C可被重新激活。雖然不是所有的附加的DIMM地址可被電子設(shè)備10使用,但是通過跨著附加的存儲體40分配存儲器數(shù)據(jù),可以增加存儲器訪問帶寬。存儲器控制器36可以以諸如以上參照圖15和/或圖16描述的方式執(zhí)行重新映射過程。如果如判定框184和192所示的那樣,性能需要較高并且存儲器使用較高,那么如框196所示,可使得所有的存儲體40A、40B和40C活動并處于使用中。可通過減少對于存儲體40的某些類型的訪問的數(shù)量來進(jìn)一步提高性能。特別地,可通過行地址選擇(RAS)、列地址選擇(CAS)和設(shè)備選擇(DEV)訪問DIMM地址。由于通過RAS的變化改變存儲器行會產(chǎn)生比通過CAS的變化改變存儲器列大的延遲,因此可以使用減少RAS變化的數(shù)量并增加CAS變化的數(shù)量的飛速存儲器重新映射技術(shù)。以下更詳細(xì)地描述用于執(zhí)行這種存儲器重新映射的技術(shù)。為了在存儲體40中的一個或多個被關(guān)斷時減少行變化和存儲體40之間的不必要的復(fù)制,存儲器控制器36可在處理器12請求某些存儲器時重新映射某些地址位。僅作為例子,如圖18所示,與256個高速緩存線地址的地址空間對應(yīng)的高速緩存線地址200可包含以重要性的次序標(biāo)有AO A7的8個位。應(yīng)當(dāng)理解,實際中,高速緩存線地址可更長或更 短。事實上,圖18、圖19A C、圖2IA E和圖22A B所示的這些實施例僅出于便于解釋的目的被示為包含用于將256個高速緩存線的地址空間編碼的8個位。對于允許一個或兩個存儲體40被斷電的系統(tǒng),應(yīng)減少DRAM設(shè)備之間的數(shù)據(jù)復(fù)制。例如,如果存儲體40的存儲器中的一半要被斷電,那么應(yīng)在出現(xiàn)斷電時重新定位不多于一半的存儲器。例如,電子設(shè)備10可以在3種不同的配置中操作,其中,1、2或4個存儲體40保持通電,并且各配置將可用的存儲器的量加倍(例如,各存儲體40具有相同的大小)。在各配置中,可通過應(yīng)用三種不同的地址映射方案避免不必要的復(fù)制操作。這些方案可在各模式中實現(xiàn)高度的存儲體40交錯,同時與模式無關(guān)減少行變化。在一個實施例中,存儲器控制器36可以以每次配置變化將映射變化限制到僅兩個位的方式,映射高速緩存線地址200。圖19 C代表以具有相同大小的四個存儲體40開始的配置的重新映射。僅作為例子,如圖19A C所示,與256個高速緩存線地址的地址空間對應(yīng)的高速緩存線地址200可包含以重要性的次序標(biāo)有AO A7的8個位。應(yīng)當(dāng)理解,實際中,高速緩存線地址可更長或更短。事實上,圖18、圖19A C、圖21A E和圖22A B所示的這些實施例僅出于便于解釋的目的被示為包含用于將256個高速緩存線的地址空間編碼的8個位。并且,僅僅為便于解釋,圖21A C的高速緩存線地址200分別映射64個高速緩存地址。圖19代表所有的四個存儲體40活動時的配置,圖19B代表存儲體40中的兩個活動時的配置,以及圖19C代表只有一個存儲體40活動時的配置。在圖19A C中,RO R2與RAS位對應(yīng),CO C2與CAS位對應(yīng),以及DO和Dl與DEV位對應(yīng)。在某些實施例中,當(dāng)所有的四個存儲體40活動時,用于模式的系統(tǒng)存儲器映射可將高速緩存地址128 255映射到兩個最快的存儲體40并分別將高速緩存地址O 63和64 127映射到較慢的存儲體40。當(dāng)在具有相同大小的四個存儲體40中只有兩個活動時,用于模式的系統(tǒng)存儲器映射可分別將高速緩存地址O 63和64 127映射到較慢的存儲體40,并且當(dāng)在四個存儲體40中只有一個活動時,用于模式的系統(tǒng)存儲器映射可將高速緩存地址O 63映射到存儲體40中的最慢的一個。
從圖19A C的映射可以看出,在各配置變化中,位中的一個可被重新定位到將被斷電的系統(tǒng)地址映射的一部分。由于當(dāng)所有的四個存儲體40活動時DEV位DO和Dl駐留于低次位中以實現(xiàn)最大化的存儲體40交錯(圖19A),并且存儲體40的斷電意味著存儲體40不能再被訪問,因此為了導(dǎo)致不出現(xiàn)對于禁用的存儲體40的訪問,DEV位中的一個可從低次位被重新定位于將不再被訪問的高次位中的一個(圖19B)。為了減少行變化,應(yīng)與DEV位交換的位應(yīng)是CAS位,從而意味著CAS位以前使用高速緩存地址的高次位。因此,為了減少復(fù)制,RAS必須在會另外實現(xiàn)的啟用多個存儲體40的流動中更頻繁地改變,但是在任何情況下,其變化頻率不應(yīng)比僅啟用單個存儲體40時高。因此,在從圖19A的4存儲體配置變?yōu)閳D19B的2存儲體配置時,高速緩存線地址位Al A7被交換。在從19B的2存儲體配置變?yōu)閳D19C的一存儲體配置時,高速緩存線地址位Al和A6被交換。因此,圖19A C的映射導(dǎo)致高速緩存線地址與系統(tǒng)地址之間的以下的轉(zhuǎn)換,其 中,表示法([#], [#],[#])[#]與([RAS], [CAS],[DEV])[系統(tǒng)地址]對應(yīng):
權(quán)利要求
1.一種電子設(shè)備,包括 能夠在硬件存儲單元中存儲數(shù)據(jù)的多個存儲體,其中所述多個存儲體中的至少一個存儲體能夠在所述多個存儲體中的至少另一個存儲體保持活動的同時被去活; 能夠通過對于物理存儲地址的存儲請求來請求數(shù)據(jù)的一個或多個處理器;和 以可通信的方式被插入在所述多個存儲體與所述一個或多個處理器之間的存儲器控制器,其中所述存儲器控制器能夠從所述一個或多個處理器接收對于物理存儲地址的存儲請求、當(dāng)?shù)谝粩?shù)量的多個存儲體活動時使用第一存儲器映射函數(shù)將物理存儲地址轉(zhuǎn)換成硬件存儲單元、當(dāng)?shù)诙?shù)量的多個存儲體活動時使用第二存儲器映射函數(shù)將物理存儲地址轉(zhuǎn)換成硬件存儲單元、并且當(dāng)所述多個存儲體中的一個存儲體要被去活時,將數(shù)據(jù)從所述多個存儲體中要被去活的一個存儲體復(fù)制到所述多個存儲體中活動的剩余存儲體中,但不在所述多個存儲體的活動的剩余存儲體中的任意兩個存儲體之間復(fù)制數(shù)據(jù)。
2.根據(jù)權(quán)利要求1所述的電子設(shè)備,其中,所述第一數(shù)量的多個存儲體包含多個三個存儲體,并且所述第一存儲器映射函數(shù)被配置為將物理地址映射到硬件存儲單元,使得與鄰接邏輯存儲地址相關(guān)的兩個物理地址不被映射到所述多個存儲體中的單一的一個存儲體。
3.根據(jù)權(quán)利要求1所述的電子設(shè)備,其中,所述第二數(shù)量的多個存儲體包含比所述第一數(shù)量的多個存儲體少的存儲體,并且所述第二存儲器映射函數(shù)被配置為將物理地址映射到硬件存儲單元,使得所述多個存儲體中每一個活動的剩余存儲體的至少一個硬件存儲單元映射到在第一存儲器映射函數(shù)下會被映射到所述多個存儲體中要被去活的一個存儲體的硬件存儲單元的至少一個物理地址。
4.根據(jù)權(quán)利要求1所述的電子設(shè)備,其中,所述第二數(shù)量的多個存儲體包含比所述第一數(shù)量的多個存儲體少的存儲體,并且所述第二存儲器映射函數(shù)被配置為將物理地址映射到硬件存儲單元,使得所述多個存儲體中的一個活動的剩余存儲體的硬件存儲單元不映射到在第一存儲器映射函數(shù)下會被映射到所述多個存儲體中不同的一個活動的剩余存儲體的硬件存儲單元的物理地址。
5.根據(jù)權(quán)利要求1所述的電子設(shè)備,其中,所述存儲器控制器被配置為將數(shù)據(jù)從所述多個存儲體中要被去活的一個存儲體的硬件存儲單元復(fù)制到所述多個存儲體中活動的剩余存儲體的硬件存儲單元并復(fù)制回從中復(fù)制數(shù)據(jù)的、所述多個存儲體中要被去活的一個存儲體的硬件存儲單元。
6.根據(jù)權(quán)利要求1所述的電子設(shè)備,其中,所述存儲器控制器被配置為在所述多個存儲體中要被去活的一個存儲體與所述多個存儲體中活動的剩余存儲體之間交換數(shù)據(jù),并通過使所述多個存儲體中要被去活的一個存儲體進(jìn)入自刷新模式來去活所述多個存儲體中要被去活的一個存儲體。
7.根據(jù)權(quán)利要求1所述的電子設(shè)備,其中,活動的第二數(shù)量的多個存儲體包含比活動的第一數(shù)量的多個存儲體少一個存儲體。
8.—種管理電子設(shè)備中的功率消耗的方法,包括 使用存儲器控制器、一個或多個處理器、在所述一個或多個處理器上運(yùn)行的操作系統(tǒng)或在所述操作系統(tǒng)上運(yùn)行的軟件或它們的任意組合,至少部分地基于電子設(shè)備的存儲器操作準(zhǔn)則,確定電子設(shè)備是否以過量存儲器使用操作;當(dāng)電子設(shè)備在過量存儲器使用的閾值內(nèi)操作時,使用存儲器控制器降低電子設(shè)備的存儲器的時鐘速度或操作電壓或者它們的組合;和 當(dāng)電子設(shè)備在過量存儲器使用的閾值之上操作時,使用存儲器控制器去活電子設(shè)備的存儲器的多個部分中的一個部分并動態(tài)重新映射存儲器的多個部分的剩余部分。
9.根據(jù)權(quán)利要求8所述的方法,其中,所述存儲器操作準(zhǔn)則包含性能計數(shù)器、電子設(shè)備的操作狀態(tài)、電子設(shè)備的存儲器使用歷史、電子設(shè)備的期望存儲器使用、電子設(shè)備的熱限制、存儲器停頓或分頁活動或它們的任意的組合。
10.根據(jù)權(quán)利要求8所述的方法,包括 使用存儲器控制器、一個或多個處理器、在所述一個或多個處理器上運(yùn)行的操作系統(tǒng)或在所述操作系統(tǒng)上運(yùn)行的軟件或它們的任意的組合,至少部分地基于所述存儲器操作準(zhǔn)貝U,確定電子設(shè)備是否以不足存儲器使用操作; 當(dāng)電子設(shè)備在不足存儲器使用的閾值內(nèi)操作時,使用存儲器控制器增加電子設(shè)備的存儲器的時鐘速度或操作電壓或者它們的組合;和 當(dāng)電子設(shè)備在不足存儲器使用的閾值之上操作時,使用存儲器控制器重新激活電子設(shè)備的存儲器的所述多個部分中的先前被去活的一個部分并動態(tài)重新映射存儲器的所述多個部分中的被重新激活的一個部分。
11.根據(jù)權(quán)利要求8所述的方法,其中,過量存儲器使用的閾值包含過量存儲器使用的閾值時間量或過量存儲器使用的閾值數(shù)值或它們的組合。
12.根據(jù)權(quán)利要求8所述的方法,其中,過量存儲器使用的閾值包含物理存儲地址的范圍內(nèi)的物理存儲地址還沒有被電子設(shè)備請求訪問的閾值時間量。
13.—種電子設(shè)備,包括 具有硬件存儲單元的多個存儲體,其中所述多個存儲體中的至少一個存儲體被配置為被選擇性地去活; 能夠通過物理存儲地址發(fā)出存儲請求的一個或多個處理器;和被配置為在三個存儲體活動時使用第一映射等式并在兩個存儲體活動時使用第二映射等式,將物理存儲地址動態(tài)映射到硬件存儲單元的存儲器控制器,其中所述第一映射等式包含以下的關(guān)系BankIndex = Floor (PAddr/TotalBanks)和 DIMMAddr =MOD (PAddr*BankSize, TotalMemory)+Banklndex,其中 PAddr 代表物理存儲地址,DIMMAddr代表當(dāng)所述多個存儲體中的三個存儲體活動時映射物理存儲地址的硬件存儲單元,BankSize代表所述多個存儲體中每一個的物理存儲地址的量,TotalBanks代表所述多個存儲體中活動存儲體的總數(shù),以及TotalMemory代表所述多個存儲體的活動存儲體之中的硬件存儲單元的總數(shù)。
14.根據(jù)權(quán)利要求13所述的電子設(shè)備,其中,所述第二映射等式包含以下的關(guān)系 ALT_DIMMAddr3_2 =如果(DIMMAddr < ReducedMemory3_2,則 DIMMAddr, 否則如果(BankReindex3_2 < FirstBankEntries3_2,則 FirstBankOffset3_2+BankReindex3_2,9否則 SecondBank0ffset3—2+BankReindex3—2))其中, BankReindex3_2 =如果(DIMMAddr < ReducedMemory3_2, 則-1, 否則 DIMMAddr-ReducedMemory3_2);FirstBankEntries3_2 = Floor(BankSize/TotalBanks); FirstBankOffset3_2 =Floor(ReducedBanks3_2*BankSize/TotalBanks);和SecondBankOffset3_2 = FirstBankEntries3_2+BankSize,-Floor(BankSize/TotalBanks) +3 其中,ALT_DIMMAddr3_2代表當(dāng)兩個存儲體活動時映射物理地址的存儲單元,ReducedMemory3_2代表跨著活動的兩個存儲體可用的硬件存儲單元的量,以及ReduCedBanks3_2代表活動的兩個存儲體的數(shù)量。
15.根據(jù)權(quán)利要求13所述的電子設(shè)備,其中,所述第二映射等式包含以下的關(guān)系 DIMMAddrBank = Floor(DIMMAddr/BankSize);和PAddr = MOD(DIMMAddr*TotalBanks, TotalMemory)。+DIMMAddrBank
16.根據(jù)權(quán)利要求13所述的電子設(shè)備,其中,所述存儲器控制器被配置為在一個存儲體活動時使用第三映射等式將物理存儲地址動態(tài)映射到硬件存儲單元,其中所述第三映射等式包含以下的關(guān)系 ALT_DIMMAddr2_l =如果(ALT_DIMMAddr3_2 < ReducedMemory2_l,則 ALT_DIMMAddr3_2, 否則如果(BankReindex2_l < FirstBankEntries2_l,則 FirstBank0ffset2_l+Bank_Reindex2_l, 否則 BankReindex2_l)), 其中, BankReindex2_l =如果(ALT_DIMMAddr3_2 < ReducedMemory2_l, 則-1, 否則 ALT_DIMMAddr3_2_ReducedMemory2_l);FirstBankEntries2_l = Floor (BankSize/TotalBanks)+1 ;和FirstBankOffset2_l = Floor(ReducedBanks2_l*BankSize/TotalBanks)+1, 其中,ALT_DIMMAddr2_l代表在一個存儲體活動時映射物理地址的硬件存儲單元,ReducedMemory2_l代表跨著所述一個活動的存儲體可用的硬件存儲單元的量,以及ReducedBanks2_l代表所述一個活動的存儲體的數(shù)量。
17.—種方法,包括 至少部分地基于電子設(shè)備的存儲器操作準(zhǔn)則確定去活電子設(shè)備的活動存儲器的一部分; 選擇活動存儲器要被去活的部分; 使用存儲器控制器至少部分地基于使用存儲器控制器的存儲器映射等式,將數(shù)據(jù)從活動存儲器的被選擇為要被去活的部分上的硬件存儲單元復(fù)制到活動存儲器的其它部分上的硬件存儲單元;和 使用存儲器控制器去活活動存儲器的被選擇為要被去活的部分; 其中,至少在活動存儲器的被選擇為要被去活的部分被去活之前,活動存儲器的被選擇為要被去活的部分上的硬件存儲單元保持可訪問。
18.根據(jù)權(quán)利要求17所述的方法,其中,基于一個或多個處理器最后請求與活動存儲器的要被去活的部分相關(guān)的物理地址的時間,由存儲器控制器確定活動存儲器的要被去活的部分。
19.根據(jù)權(quán)利要求17所述的方法,其中,基于從一個或多個處理器到存儲器控制器的存儲器部分關(guān)斷命令,選擇活動存儲器的要被去活的部分。
20.根據(jù)權(quán)利要求17所述的方法,其中,至少部分地基于帶寬和功率消耗因素的平衡,選擇活動存儲器的要被去活的部分。
21.根據(jù)權(quán)利要求17所述的方法,其中,至少部分地基于來自操作系統(tǒng)或軟件的指令,由存儲器控制器復(fù)制數(shù)據(jù)以執(zhí)行一個或多個原子復(fù)制。
22.—種電子設(shè)備,包括 具有被配置為被單獨(dú)地去活的多個部分的存儲器; 被配置為確定存儲器的多個部分中的一個部分要被去活的時間的數(shù)據(jù)處理電路;和 被配置為在存儲器的多個部分中的一個部分要被去活時,重新映射與存儲器相關(guān)的高速緩存線地址使得高速緩存線地址的不多于兩個的位改變的存儲器控制器。
23.根據(jù)權(quán)利要求22所述的電子設(shè)備,其中,所述存儲器包含四個存儲段,所述四個存儲段中的至少兩個段被配置為形成所述存儲器的多個部分中要被去活的一個部分,其中所述存儲器控制器被配置為通過同與存儲器列相關(guān)的高速緩存線地址位交換與存儲段相關(guān)的高速緩存線地址位來重新映射高速緩存線地址。
24.根據(jù)權(quán)利要求23所述的電子設(shè)備,其中,所述與存儲段相關(guān)的高速緩存線地址位是與形成存儲器的要被去活的部分的兩個存儲段相關(guān)的位,并且所述與存儲器列相關(guān)的高速緩存線地址位是次最低次序的列地址選擇位。
25.根據(jù)權(quán)利要求22所述的電子設(shè)備,其中,所述存儲器包含兩個存儲段,所述兩個存儲段中的至少一個段被配置為形成所述存儲器的多個部分中要被去活的一個部分,其中所述存儲器控制器被配置為通過同與存儲器列相關(guān)的高速緩存線地址位交換與存儲段相關(guān)的高速緩存線地址位來重新映射高速緩存線地址,其中所述與存儲段相關(guān)的高速緩存線地址位是與形成存儲器的多個部分中要被去活的一個的存儲段相關(guān)的位,并且所述與存儲器列相關(guān)的高速緩存線地址位是最低次序的列地址選擇位。
26.—種方法,包括 使用數(shù)據(jù)處理電路確定將代表存儲器的三分之一的存儲段斷電; 使用存儲器控制器重新映射與存儲器相關(guān)的高速緩存線地址,使得高速緩存線地址的不多于兩個的位改變; 使用存儲器控制器將數(shù)據(jù)從要被斷電的存儲段的硬件存儲單元復(fù)制到存儲器的剩余三分之二的硬件存儲單元;和 使用存儲器控制器將存儲段斷電。
27.根據(jù)權(quán)利要求26所述的方法,其中,使用數(shù)據(jù)處理電路確定所述存儲段要被斷電,其中所述存儲器控制器包含數(shù)據(jù)處理電路。
28.根據(jù)權(quán)利要求26所述的方法,其中,所述高速緩存線地址被重新映射,使得列地址選擇位變?yōu)榇鎯Χ芜x擇位。
29.根據(jù)權(quán)利要求26所述的方法,其中,所述高速緩存線地址被重新映射,使得存儲段選擇位變?yōu)榱械刂愤x擇位。
30.根據(jù)權(quán)利要求26所述的方法,其中,所述高速緩存線地址從根據(jù)高速緩存線地址位的狀態(tài)改變的兩個或更多個同時映射被重新映射為與高速緩存線地址位的狀態(tài)無關(guān)的單個映射。
全文摘要
本發(fā)明涉及存儲器控制器飛速映射。提供用于在存儲器的一部分被激活或去活時動態(tài)映射和重新映射存儲器的系統(tǒng)、方法和設(shè)備。根據(jù)實施例,電子設(shè)備可包含幾個存儲體、一個或多個處理器和存儲器控制器。存儲體可在硬件存儲單元中存儲數(shù)據(jù)并且可被獨(dú)立地去活。處理器可使用物理存儲地址換數(shù)據(jù),并且存儲器控制器可將物理地址轉(zhuǎn)換成硬件存儲單元。存儲器控制器可在第一數(shù)量的存儲體活動時使用第一存儲器映射函數(shù),并在第二數(shù)量的存儲體活動時使用第二存儲器映射函數(shù)。當(dāng)存儲體中的一個存儲體被去活時,存儲器控制器可將僅僅來自要被去活的存儲體的數(shù)據(jù)復(fù)制到存儲體的活動的剩余存儲體。
文檔編號G06F12/02GK102893266SQ201180023741
公開日2013年1月23日 申請日期2011年4月11日 優(yōu)先權(quán)日2010年4月13日
發(fā)明者I·亨德利, R·科杜里, J·格尼恩 申請人:蘋果公司