控制存儲陣列裝置以節(jié)省更多功率的方法及其相關(guān)裝置的制造方法【專利摘要】一種存儲陣列裝置管理方法,包含:執(zhí)行存儲陣列裝置的內(nèi)存池中第一存儲單元的第一級收集操作;以及在該第一級收集操作處理該第一存儲單元后,執(zhí)行該存儲陣列裝置的該內(nèi)存池中第二存儲單元的第二級收集操作;其中該第一級收集操作與該第二級收集操作中的一個操作為頁級收集操作,并且該第一級收集操作與該第二級收集操作中的另一個操作為塊級收集操作?!緦@f明】控制存儲陣列裝置以節(jié)省更多功率的方法及其相關(guān)裝置[0001]交叉引用[0002]本發(fā)明要求如下優(yōu)先權(quán):編號為61/952,549,申請日為2014年3月13日的美國臨時專利申請。上述美國臨時專利申請在此一并作為參考。
技術(shù)領(lǐng)域:
[0003]本發(fā)明涉及控制存儲陣列裝置(memorydevice)。特別地,本發(fā)明涉及一種控制存儲陣列裝置(例如,動態(tài)隨機存取存儲陣列或任意其他存儲陣列裝置)的以節(jié)省更多功率的方法及其相關(guān)裝置?!?br>背景技術(shù):
】[0004]根據(jù)一般發(fā)展趨勢,處理系統(tǒng)中使用的處理器速度、存儲陣列裝置速度以及存儲容量都隨著每代新處理系統(tǒng)而增加。例如,嵌入式系統(tǒng)中使用的存儲陣列容量/尺寸持續(xù)增大從而滿足性能需求。然而,隨著存儲陣列容量/尺寸的增大,存儲陣列功率消耗的副作用也會加大。例如,存儲陣列最低電流可為系統(tǒng)電量消耗的最大貢獻者。當處理系統(tǒng)為移動平臺時,使用存儲陣列的移動平臺的電池使用時間將縮短。[0005]為了解決上述問題,發(fā)展出了幾種低功耗功能。例如,雙倍速率(DoubleDataRate,DDR)存儲陣列的低功耗功能包含全陣列自動更新(FullArraySelf-Refresh,F(xiàn)ASR)功能、部分陣列自動更新(PartialArraySelf-Refresh,PASR)功能、深度功率下降(DeepPowerDown,DPD)功能以及功率下降功能。對于PASR功能,其可通過禁能某些存儲區(qū)段(塊)的自動更新從而節(jié)省功率。與PASR相比,DPD功能是一種禁止向DDR存儲陣列供應大部分電量的改進機制。對于功率下降功能,直接切斷對至少部分DDR存儲陣列的外部供電。[0006]當處理系統(tǒng)進入掛起模式(suspendmode)時,DDR存儲陣列可通過上述低功耗功能中的一種功能取得較低功率消耗。然而,低功耗功能的電量節(jié)省性能取決于DDR存儲陣列中空閑塊的分布與數(shù)量。因此,需要一種具有更大電量節(jié)省的空閑存儲陣列(例如,動態(tài)隨機存取存儲陣列或任意其他存儲陣列裝置)的新穎設計。【
發(fā)明內(nèi)容】[0007]本發(fā)明的一個目的是提供控制存儲陣列裝置(例如,動態(tài)隨機存取存儲陣列或任意其他存儲陣列裝置)以節(jié)省更多功率的方法及其相關(guān)裝置。[0008]根據(jù)本發(fā)明第一方面,揭露一種示例存儲陣列管理方法。該示例存儲陣列管理方法包含:利用處理器執(zhí)行存儲陣列裝置的內(nèi)存池中第一存儲單元的第一級收集操作;以及在該第一級收集操作處理該第一存儲單元后,執(zhí)行該存儲陣列裝置的該內(nèi)存池中第二存儲單元的第二級收集操作;其中該第一級收集操作與該第二級收集操作中的一個操作為頁級收集操作,并且該第一級收集操作與該第二級收集操作中的另一個操作為塊級收集操作。[0009]根據(jù)本發(fā)明第二方面,揭露一種存儲陣列裝置的示例功率管理方法。該存儲陣列裝置的示例功率管理方法包含:當處理器處于休眠模式時,利用功率管理代理器實時監(jiān)測該存儲陣列裝置的存儲陣列存取需求;以及根據(jù)該存儲陣列裝置的該存儲陣列存取需求的實時監(jiān)測結(jié)果,控制該存儲陣列裝置從第一模式切換至第二模式;其中在該第一模式與該第二模式中的一種模式下該存儲陣列裝置的功率消耗低于在該第一模式與該第二模式中的另一種模式下該存儲陣列裝置的功率消耗。[0010]根據(jù)本發(fā)明第三方面,揭露一種存儲程序代碼的計算機可讀媒介。當處理器執(zhí)行時,該程序代碼指示該處理器執(zhí)行如下步驟:執(zhí)行存儲陣列裝置的內(nèi)存池中第一存儲單元的第一級收集操作;以及在該第一級收集操作處理該第一存儲單元后,執(zhí)行該存儲陣列裝置的該內(nèi)存池中第二存儲單元的第二級收集操作;其中該第一級收集操作與該第二級收集操作中的一個操作為頁級收集操作,并且該第一級收集操作與該第二級收集操作中的另一個操作為塊級收集操作。[0011]根據(jù)本發(fā)明第四方面,揭露一種示例電子裝置。該示例電子裝置包含存儲陣列裝置以及功率管理代理器。當處理器處于休眠模式時,配置該功率管理代理器實時監(jiān)測該存儲陣列裝置的存儲陣列存取需求,并且根據(jù)該存儲陣列裝置的該存儲陣列存取需求的實時監(jiān)測結(jié)果,控制該存儲陣列裝置從第一模式切換至第二模式;其中在該第一模式與該第二模式中的一種模式下該存儲陣列裝置的功率消耗低于在該第一模式與該第二模式中的另一種模式下該存儲陣列裝置的功率消耗。[0012]對于本領(lǐng)域技術(shù)人員來說,在讀完下列各種圖描述的較佳實施例的細節(jié)描述后,能夠容易理解本發(fā)明的這些以及其他目的。【附圖說明】[0013]圖1是根據(jù)本發(fā)明實施例描述的電子裝置的區(qū)塊圖;[0014]圖2顯示在開始空閑塊收集前執(zhí)行的步驟;[0015]圖3顯示頁級收集操作執(zhí)行的步驟;[0016]圖4是塊級收集操作執(zhí)行的步驟;[0017]圖5是根據(jù)本發(fā)明實施例描述的不可收回頁及/或不可移動頁的分配示意圖;[0018]圖6是描述的收縮(丟棄)支持文件頁(例如,支持文件用戶頁)的示意圖;[0019]圖7是描述控制支持文件頁(例如,支持文件用戶頁)移動的示意圖;[0020]圖8是描述對存儲陣列裝置進行壓縮以產(chǎn)生一個或多個空閑塊的示意圖;[0021]圖9顯示執(zhí)行具有存儲陣列壓縮的頁級收集操作的步驟;[0022]圖10顯示執(zhí)行具有所用壓縮指標的塊級收集操作的步驟;[0023]圖11是使用交換池壓縮操作以收縮(丟棄)支持交換頁(例如,支持交換用戶頁)的示意圖;[0024]圖12是使用壓縮內(nèi)存池操作從而收縮(丟棄)不可收回頁及/或不可移動頁的示意圖;[0025]圖13是根據(jù)本發(fā)明實施例描述的存儲陣列裝置的功率管理方法流程圖。【具體實施方式】[0026]在說明書及權(quán)利要求書當中使用了某些詞匯來指稱特定的元件。所屬
技術(shù)領(lǐng)域:
的技術(shù)人員應可理解,硬件制造商可能會用不同的名詞來稱呼同一個元件。本說明書及權(quán)利要求書并不以名稱的差異作為區(qū)分元件的方式,而是以元件在功能上的差異作為區(qū)分的準貝1J。在通篇說明書及權(quán)利要求項中所提及的“包含”為一開放式的用語,故應解釋成“包含但不限定于”。此外,“耦接”一詞在此包含任何直接及間接的電氣連接手段。因此,若文中描述一個裝置耦接于另一裝置,則該連接代表可直接電氣連接,或通過其它裝置與連接手段間接地電氣連接。[0027]圖1是根據(jù)本發(fā)明實施例描述的電子裝置的區(qū)塊圖。電子裝置100可為移動裝置的至少一部分(即,部分或全部),例如移動電話、平板電腦、可穿戴裝置等。在本實施例中,電子裝置100包含存儲裝置102、一個或多個主裝置104_1-104_M、應用處理器(AP)106、功率管理(PM)代理器108以及存儲陣列裝置110。存儲裝置102可為非易失性存儲器(例如,閃存)、硬盤等。存儲陣列裝置110可為動態(tài)隨機存取存儲器(DRAM),例如低功耗DDR(LPDDR)存儲陣列或任何其他存儲陣列裝置。存儲陣列裝置110具有多個塊(bank),其中每塊具有多個頁(例如,緩存頁)。此外,存儲陣列裝置110可分為多個存儲空間,至少包含第一存儲空間112與第二存儲空間114,其中每個存儲空間具有一個或多個塊,其中可配置第一存儲空間112作為內(nèi)存池(memorypool)113,并且可配置第二存儲空間114作為交換池(swappool)115。可將程序代碼PROG存入存儲裝置102中。當電子裝置100通電時,可將程序代碼PROG加載入存儲陣列裝置110中用于執(zhí)行。例如,程序代碼PROG可為電子裝置100的操作系統(tǒng)。因此,應用處理器106執(zhí)行從存儲陣列裝置110加載的程序代碼PROG以控制電子裝置100的操作。例如,應用處理器106執(zhí)行程序代碼PROG以運行核心功率管理,從而基于軟件管理存儲陣列裝置110的功率消耗。主裝置104_1-104_M可為電子裝置100中的子系統(tǒng),并且可發(fā)出存儲陣列存取請求(例如,讀請求與寫請求),用于存取存儲陣列裝置110中的數(shù)據(jù)。與應用處理器106運行的軟件所執(zhí)行的核心功率管理相比,功率管理代理器108可為硬件電路,用以基于硬件方式管理存儲陣列裝置110的功率消耗。在本實施例中,運行在應用處理器106中的核心功率管理與功率管理代理器108協(xié)作以將功率管理應用于存儲陣列裝置110,從而取得更大電量節(jié)省及/或更長電池使用時間。接下來將詳細描述應用處理器106運行的核心功率管理以及使用功率管理代理器108實現(xiàn)的輔助功率管理硬件。[0028]應用處理器106(尤其是,運行在應用處理器106上的核心功率管理)可執(zhí)行具有/不具有存儲陣列壓縮(memorycompress1n)的兩階段收集進程,以收集存儲陣列裝置110中的空閑塊。在本實施例中,所提的兩階段收集進程包含第一級收集操作以及第二別收集操作??稍诘谝淮鎯卧獔?zhí)行第一級收集操作,例如在存儲陣列裝置110的內(nèi)存池113中的頁(或塊)。在第一級收集操作處理第一存儲單元后,在第二存儲單元執(zhí)行第二級收集操作,例如在存儲陣列裝置110的內(nèi)存池113中的頁(或塊)。第一級收集操作與第二級收集操作中的一個操作可為頁上的頁級收集操作,以及第一級收集操作與第二級收集操作中的另一個操作可為塊上的塊級收集操作。在兩階段收集進程的示例設計中,在頁級收集操作開始前,可執(zhí)行塊級收集操作。在兩階段收集進程的另一示例設計中,在完成頁級收集操作后可執(zhí)行塊級收集操作。即,可根據(jù)實際設計考慮,調(diào)整頁級收集操作與塊級收集操作的執(zhí)行順序。[0029]接下來,假設應用處理器106(尤其是,應用處理器106上運行的核心功率管理)執(zhí)行的兩階段收集進程包含按順序執(zhí)行的頁級收集操作以及塊級收集操作。然而,這僅是為了描述的目的,并不意味著對本發(fā)明的限制。在閱讀所提兩階段收集進程段落后,本領(lǐng)域技術(shù)人員應當容易理解顛倒頁級收集操作與塊級收集操作的執(zhí)行順序是可行的。上述皆可取得更大電量節(jié)省及/或更長電池使用時間的相同目標。這樣也落入本發(fā)明的保護范圍。[0030]例如,可配置運行在應用處理器106中的核心功率管理在內(nèi)存池113中的至少一個塊,執(zhí)行頁上的頁級收集操作,并且在頁級收集處理上述至少一個塊后,在多個塊上執(zhí)行塊級收集操作,其中至少部分基于頁屬性,在多個頁上執(zhí)行頁級收集操作。[0031]圖2-4是根據(jù)本發(fā)明實施例描述的收集空閑塊以縮短喚醒時間以及降低功率消耗的存儲陣列管理方法流程圖。圖2顯示在開始空閑塊收集前執(zhí)行的步驟。圖3顯示頁級收集操作執(zhí)行的步驟。圖4是塊級收集操作執(zhí)行的步驟。上述步驟無需按照圖2-4中顯示的特定順序執(zhí)行。此外,可省略圖2-4中的一個或多個步驟,并且可增加一個或多個步驟。[0032]應用處理器106可執(zhí)行程序代碼PROG(例如,電子裝置100的操作系統(tǒng))以指導不可收回頁及/或不可移動頁(unevictableand/orunmovablepage)的分配,從而使用內(nèi)存池113中的特定存儲范圍。例如,內(nèi)核直接使用的大部分頁皆不可移動,以及不可收回頁是不能因為各種原因調(diào)出(即,可收回)的頁。本領(lǐng)域技術(shù)人員應該容易理解不可收回頁與不可移動頁的定義,為了簡化起見,省略進一步的描述。當在至少部分存儲陣列裝置110上執(zhí)行全陣列自動更新(FASR)功能、部分陣列自動更新(PASR)功能、深度功率下降(DPD)功能以及功率下降功能(其切斷外部電供應)中的至少一個功能時,在特定存儲范圍不禁能自更新操作。因此,當由于電子裝置100進入掛起模式,存儲陣列裝置(例如,LTODR內(nèi)存)110離開正常狀態(tài)并且進入自更新狀態(tài)時,不會丟失特定存儲范圍中的頁數(shù)據(jù)。[0033]圖5是根據(jù)本發(fā)明實施例描述的不可收回頁及/或不可移動頁的分配示意圖??膳渲么鎯臻g112中定義的內(nèi)存池113具有特定存儲范圍502,其中可在特定存儲范圍502中安排不可收回頁及/或不可移動頁。不管使用FASR功能、PASR功能、DH)功能以及功率下降功能(切斷外部電供應)中的哪一個,可保持存儲在特定存儲范圍502中的頁數(shù)據(jù)。既然不可收回頁及/或不可移動頁的部分或全部分布在特定存儲范圍502中,接下來收集空閑塊的操作會更容易并且更有效。對于內(nèi)存池113中的剩余存儲范圍504,當在存儲范圍504中執(zhí)行PASR功能、DPD功能以及功率下降功能(切斷外部電供應)中的至少一個功能時,至少在存儲范圍504的部分禁能自更新操作。[0034]運行在應用處理器106上的核心功率管理可丟出/釋放存儲陣列裝置110中的干凈頁,以收集更多空閑頁(步驟202),其中干凈頁意味著頁數(shù)據(jù)為存儲在存儲裝置102中的相應文件數(shù)據(jù)。此外,運行在應用處理器106上的核心功率管理可將存儲陣列裝置110中的臟頁回寫(writeback)入存儲裝置102中的文件,從而將臟頁轉(zhuǎn)變?yōu)楦蓛繇?,接著丟出/釋放干凈頁以收集更多空閑頁(步驟204),其中臟頁意味著頁數(shù)據(jù)不同于存儲在存儲裝置102中的相應文件數(shù)據(jù)。[0035]當開始頁級收集操作時,運行在應用處理器106上的核心功率管理掃描存儲陣列裝置110的內(nèi)存池113的每個塊中的頁。在步驟302中,運行在應用處理器106上的核心功率管理檢查存儲陣列裝置110是否具有等待頁級收集操作的包含頁的塊。當找到具有等待頁級收集操作的頁的塊時,流程可進入步驟304對塊中的頁進行掃描。每塊中的頁可按照頁分配方向排布。因此,考慮塊具有空閑頁(即,未使用的頁)情況,根據(jù)頁分配方向,已使用頁將安排在塊的前部分(例如,塊中的較低存儲地址),并且根據(jù)頁分配方向,空閑頁將安排在塊的后部分(例如,塊中的較高存儲地址)。在本實施例中,運行在應用處理器106上的核心功率管理根據(jù)頁掃描方向掃描塊中的頁,其中頁掃描方向與頁分配方向相反。請再次參考圖5。存儲范圍504具有多個塊,并且存儲范圍504中的頁可按照頁分配方向Dl從較低存儲地址到較高存儲地址排布?;趫D5中所示的頁掃描方向D2執(zhí)行步驟304中的頁掃描操作。當頁為空閑頁時,可忽略接下來的頁級收集操作步驟。因此,按照頁分配的反方向掃描頁可方便頁級收集操作。[0036]運行在應用處理器106上的核心功率管理檢查頁屬性以決定頁的頁類型。在步驟306,運行在應用處理器106上的核心功率管理檢查特定頁的屬性是否指示特定頁是支持文件頁(file-backedpage)(例如,包含存儲裝置102中文件支持的用戶數(shù)據(jù)的支持文件用戶頁)。如果特定頁不是支持文件頁,則流程進入步驟314以檢查是否存在等待頁級收集操作的塊中頁。然而,如果特定頁是支持文件頁,則流程進入步驟308。[0037]支持文件頁意味著存儲裝置102中的文件支持該頁。既然存儲陣列裝置110中支持文件頁的數(shù)據(jù)也保存在存儲裝置102中,所以收縮(例如,丟棄)存儲陣列裝置110中的支持文件頁并不會丟失電子裝置100中的數(shù)據(jù)?;谌绱擞^察,本發(fā)明提出收縮(丟棄)存儲陣列裝置110中一個或多個支持文件頁以產(chǎn)生存儲陣列裝置110中一個或多個額外空閑頁。在本實施例中,可編程頁收縮設置可控制收縮(丟棄)支持文件頁。例如,基于可編程頁收縮設置取得具有適當配置與強度的收縮(丟棄)支持文件頁。因此,可能的情況是允許收縮(丟棄)塊中的許多支持文件頁,并且不允許收縮(丟棄)相同塊中的許多支持文件頁。[0038]在步驟308,運行在應用處理器106上的核心功率管理檢查是否允許支持文件頁(例如,支持文件用戶頁)收縮。如果允許支持文件頁(例如,支持文件用戶頁)收縮,則流程進入步驟310。在步驟310,運行在應用處理器106上的核心功率管理收縮(丟棄)支持文件頁(例如,支持文件用戶頁)。圖6是描述的收縮(丟棄)支持文件頁(例如,支持文件用戶頁)的示例。在本示例中,一個塊BK具有多頁,包含Page_N、Page_N_l、Page_N_2等。假設頁Page_N-2為允許收縮的支持文件頁(例如,支持文件用戶頁),則運行在應用處理器106上的核心功率管理收縮(丟棄)支持文件頁(例如,支持文件用戶頁)以將頁Page_N_2轉(zhuǎn)化為空閑頁Page—Free0[0039]然而,如果不允許收縮支持文件頁(例如,支持文件用戶頁),則流程進入步驟312。在步驟312,運行在應用處理器106上的核心功率管理控制支持文件頁(例如,支持文件用戶頁)從當前存儲地址移動至存儲陣列裝置110的上述特定存儲范圍502,其中上述特定存儲范圍502位于存儲陣列裝置110中。圖7是描述控制支持文件頁(例如,支持文件用戶頁)移動的示意圖。在本示例中,一個塊BK為上述存儲范圍504的一部分,并且具有多頁,包含Page_N、Page_N_l、Page_N_2等。假設頁Page_N_2為不允許收縮的支持文件頁(例如,支持文件用戶頁),則運行在應用處理器106上的核心功率管理控制該支持文件頁(例如,支持文件用戶頁)從當前存儲地址移動至存儲范圍502中的空閑存儲地址。如上所示,不可收回頁及/或不可移動頁會被安排在特定存儲范圍502,并且當FASR功能、PASR功能、DPD功能以及PD功能(其切斷外部電量供應)中的其中至少一個功能在至少部分存儲陣列裝置110中執(zhí)行時,特定存儲范圍502上不禁能自動更新操作。因此,運行在應用處理器106上的核心功率管理將頁Page_N_2轉(zhuǎn)變?yōu)榭臻e頁Page_Free,其通過將頁迀移應用于不允許收縮的支持文件頁來達成。[0040]當步驟302發(fā)現(xiàn)不存在仍然具有等待頁級收集操作的頁的塊時,運行在應用處理器106上的核心功率管理完成頁級收集操作,接著開始塊級收集操作。在步驟402,運行在應用處理器106上的核心功率管理基于使用計數(shù)將內(nèi)存池113中的塊進行分類。例如,運行在應用處理器106上的核心功率管理基于使用計數(shù)將內(nèi)存池113中的特定塊分類,其中每個特定塊僅具有可移動頁??赏ㄟ^計數(shù)塊中的已使用頁獲取塊的使用計數(shù)。因此,較大的是已使用頁的數(shù)量,通過較大值設定使用計數(shù)。基于塊的使用計數(shù)的分類結(jié)果,運行在應用處理器106上的核心功率管理區(qū)分具有較大使用計數(shù)的塊與具有較小使用計數(shù)的塊。[0041]接著,流程進入步驟404。在步驟404,運行在應用處理器106上的核心功率管理運用壓縮內(nèi)存池113中的至少部分塊以集合更多空閑塊。例如,運行在應用處理器106上的核心功率管理將使用中的至少一個頁從具有第一使用計數(shù)的第一塊移動至具有第二使用計數(shù)的第二塊,其中該第二使用計數(shù)大于該第一使用計數(shù)。因此,可通過存儲陣列壓縮操作減少第一塊中的使用頁數(shù)量。換句話說,由于將具有較小使用計數(shù)的一個塊中的所有使用頁移動至具有較大使用計數(shù)的一個或多個塊,存儲陣列壓縮操作使得內(nèi)存池113具有更多空閑塊。圖8是描述對存儲裝置進行壓縮以產(chǎn)生一個或多個空閑塊的示意圖。在本示例中,塊BKO與BKl中的每一個塊具有六頁,其中塊BKO具有兩個使用頁Page_Used以及四個空閑頁Page_Free。因此,塊BKO的使用計數(shù)CNTO設定為2,并且塊BKl的使用計數(shù)CNTl設定為4。既然塊BKO的使用計數(shù)CNTO小于塊BKI的使用計數(shù)CNTI,因此存儲陣列壓縮操作將至少一個使用頁從塊BKO移動至塊BKl。在本示例中,將塊BKO中的所有使用頁Page_Used移動至塊BKl。如圖8所示,塊BKO中的使用頁Page_Used將替換塊BKl中的空閑頁Page_Free。因此,在執(zhí)行存儲陣列壓縮操作后,塊BKO將變?yōu)閮H具有空閑頁Page_Free的空閑塊。[0042]在步驟406,運行在應用處理器106上的核心功率管理可操縱(例如,構(gòu)造或更新)塊級信息列表LINF以追蹤內(nèi)存池113中的塊使用情況。例如,塊級信息列表LINF可記錄內(nèi)存池113中空閑塊的存儲位置。在本實施例中,除非需要更多的頁面安排,否則不釋放空閑塊或不將空閑塊返回系統(tǒng)核心。因此,在當前兩級收集進程的塊級收集操作生成的塊級信息列表LINF可協(xié)助下一個兩級收集進程的塊級收集操作。例如,當塊級信息列表LINF指示一個塊為空閑塊時,對該空閑塊無需執(zhí)行頁級收集操作與塊級收集操作。這樣,可避免不必要的頁級操作與塊級操作,從而改善性能。[0043]在完成具有所述兩級收集進程用于收集空閑塊的存儲陣列管理方法后,AP106進入休眠模式,并且控制存儲陣列裝置110進入低功耗模式(例如,自更新狀態(tài))。在本實施例中,存儲陣列裝置110支持低功耗模式下的低功耗功能。例如,存儲陣列裝置110通過啟動FASR功能、PASR功能、DPD功能以及功率下降功能(其切斷外部電供應)中的至少一個功能,從而進入低功耗模式,其中存儲陣列裝置110在低功耗模式(例如,自更新狀態(tài))下的功率消耗低于存儲陣列裝置110在正常模式(例如,正常存儲陣列讀/寫狀態(tài))下的功率消耗。而且,當存儲陣列裝置110離開低功耗模式時,可恢復存儲陣列管理方法收縮或移動的頁面,以重新開始存儲陣列裝置110的正常模式,其與AP106—樣。在本實施例中,可使用快速喚醒進程。當再次參考收縮(丟棄)支持文件頁(例如,支持文件用戶頁)時,發(fā)生頁面故障。因此,通過請求分頁(demandpaging)可將收縮(丟棄)支持文件頁(例如,支持文件用戶頁)加載入內(nèi)存池113。換句話說,在喚醒進程期間,無需立即加載收縮(丟棄)支持文件頁(例如,支持文件用戶頁)。[0044]對于圖2-4所示的存儲陣列管理方法,可增加額外步驟以改善空閑塊收集進程。例如,可在頁級收集操作中加入存儲陣列壓縮操作。使用存儲陣列壓縮可在塊級收集操作中提高收集連續(xù)空閑塊的概率。圖2、9以及10顯示根據(jù)本發(fā)明實施例描述的收集具有存儲陣列壓縮的空閑塊的存儲陣列管理方法流程圖。圖9顯示執(zhí)行具有存儲陣列壓縮的頁級收集操作的步驟。圖10顯示執(zhí)行具有所用壓縮指標的塊級收集操作的步驟。圖2、9、10中所示的執(zhí)行步驟無需按照特定順序執(zhí)行。此外,可忽略圖2、9、10中所示的一個或多個步驟,并且可增加一個或多個步驟。[0045]如上所述,步驟306可檢查特定頁的屬性是否指示該特定頁是支持文件頁(例如,包含存儲裝置102中文件支持的用戶數(shù)據(jù)的支持文件用戶頁)。在本實施例中,當步驟306發(fā)現(xiàn)特定頁并不是支持文件頁時,流程進入步驟902。在步驟902,運行在AP106中的核心PM檢查特定頁的屬性是否指示該特定頁是支持交換頁(例如,包含交換池115中的用戶數(shù)據(jù)的支持交換用戶頁,而不是存儲裝置102)。如果特定頁是支持交換頁,則流程進入步驟904以及接著進入步驟314。在步驟904,運行在AP106中的核心PM使用交換池115上的壓縮操作,收縮(或丟棄)特定頁。即,運行在AP106中的核心PM收縮(或丟棄)存儲陣列裝置110中分配的內(nèi)存池113中的支持交換頁,并且壓縮存儲陣列裝置110的交換池115中儲存的對應頁。圖11是使用交換池壓縮操作以收縮(丟棄)支持交換頁的示意圖。在本示例中,內(nèi)存池113中的一個塊BK具有多頁,包含?&86_1?&86_^1、?&86_^2等。假設頁面?886_^1是支持交換頁(例如,支持交換用戶頁),則運行在AP106中的核心PM收縮(丟棄)支持交換頁(例如,支持交換用戶頁)以將內(nèi)存池113中的頁Page_N_l變?yōu)榭臻e頁Page_Free,并且進一步對交換池115中支持的對應頁Page_N_l實施壓縮,從而將已壓縮頁Page_N-l’存儲在交換池115中。[0046]如果步驟902發(fā)現(xiàn)特定頁不是支持交換頁,則流程進進入步驟906。在步驟906,運行在AP106中的核心PM檢查特定頁的屬性是否指示該特定頁是不可收回頁/不可移動頁。如上所述,可控制部分或全部不可收回頁及/或不可移動頁,將其安排至圖5所示的特定存儲范圍502。然而,為了特定原因,也可將一個或多個不可收回頁及/或不可移動頁安排至內(nèi)存池113的存儲范圍504。在發(fā)現(xiàn)不可收回頁及/或不可移動頁位于屬于存儲范圍504的塊中情況下,流程進入步驟908。在步驟908,運行在AP106中的核心PM壓縮特定頁以生成壓縮頁,將壓縮頁存入特定存儲范圍502,并且收縮(丟棄)特定頁。圖12是使用壓縮內(nèi)存池操作從而收縮(丟棄)不可收回頁及/或不可移動頁的示意圖。在本示例中,塊BK具有多頁,包含Page_N、Page_N-l、Page_N_2等。假設頁Page_N是不可收回頁及/或不可移動頁,則運行在AP106中的核心PM壓縮頁Page_N以生成壓縮頁Page_N’并將該壓縮頁Page_N’存入特定存儲范圍502的空閑存儲地址。如上所述,可將未壓縮的不可收回頁及/或不可移動頁安排至特定存儲范圍502,并且當FASR功能、PASR功能、DH)功能以及功率下降功能(其切斷外部電供應)中的至少一個功能在至少部分存儲陣列裝置110上執(zhí)行時,不禁能特定存儲范圍502上的自更新操作。此外,運行在AP106中的核心PM可收縮(丟棄)頁Page_N以將頁為空閑頁Page_Free。[0047]接著,流程進入步驟910并且接著進入步驟314。在步驟910,運行在AP106中的核心PM為步驟906中指示的每個特定頁生成壓縮指標IND,其中壓縮指標IND包含壓縮相關(guān)信息(例如,壓縮源地址、壓縮目標地址等),并且如圖10所示的塊級收集操作參考該壓縮指標IND。在不同的時刻,系統(tǒng)核心需要不可收回頁及/或不可移動頁。因此,在壓縮特定頁生成壓縮頁并且將其存入特定存儲范圍502后,系統(tǒng)核心可能需要特定頁(其為不可收回頁及/或不可移動頁)。在這種情況下,可將壓縮頁解壓縮并且重新存入存儲范圍504。既然特定頁是不可收回頁及/或不可移動頁,則在塊級收集進程中不應移動該特定頁。因此,塊級收集進程可參考特定頁的壓縮指標IND以避免不必要的頁面移動。[0048]關(guān)于圖2、9、10所示的收集具有存儲陣列壓縮的空閑塊的存儲陣列管理方法,頁級收集操作使用兩種技術(shù),包含頁收縮及迀移(步驟308-312)以及存儲陣列壓縮(步驟902-910)。然而,這僅是為了描述的目的,并不意味著對本發(fā)明的限制。例如,使用所述頁收縮及迀移(步驟308-312)以及存儲陣列壓縮(步驟902-910)中的一個或兩個的任意兩階段收集進程皆落入本發(fā)明的包含范圍。[0049]例如,但不限于,當電子裝置100的操作系統(tǒng)決定進入掛起模式時,可執(zhí)行收集空閑塊的存儲陣列管理方法(例如,圖2-4或圖2、9、10所示的示例流程)。因此,在完成收集空閑塊的存儲陣列管理方法后,AP106進入休眠模式,并且控制存儲陣列裝置110進入低功耗模式(例如,自更新狀態(tài)),其中,存儲陣列裝置110可通過啟動FASR功能、PASR功能、DTO功能以及功率下降功能(其切斷外部電供應)中的至少一個功能,從而進入低功耗模式。當運行在正常模式中時,AP106從存儲陣列裝置110獲取指令與數(shù)據(jù),并且執(zhí)行獲取的指令以處理獲取的數(shù)據(jù)??稍诖鎯﹃嚵醒b置110進入低功耗模式之前配置AP106進入休眠模式。如果使用AP106管理存儲陣列裝置110的低功耗模式入口以及低功耗模式出口,則AP106需要運行未關(guān)閉存儲器中的程序代碼,例如內(nèi)部靜態(tài)隨機存儲器,其不可避免地提高了硬件成本。在本實施例中,使用輔助硬件模塊(例如,PM代理器108)管理存儲陣列裝置110的低功耗模式入口以及低功耗模式出口。這樣,AP106無需額外的未關(guān)閉存儲器,并可節(jié)省硬件成本。而且,PM代理器108容易監(jiān)測主裝置104_1-104_M發(fā)出的存儲陣列存取請求并且執(zhí)行適當操作以響應存儲陣列裝置110的存儲陣列存取需求的實時監(jiān)測結(jié)果。接下來將描述存儲陣列裝置110的功率管理細節(jié)。[0050]圖13是根據(jù)本發(fā)明實施例描述的存儲陣列裝置的功率管理方法流程圖。圖13中所示的步驟無需按照特定順序執(zhí)行。此外,可省略圖13所示的一個或多個步驟,并且可增加一個或多個步驟。當電子裝置100的操作系統(tǒng)決定進入掛起模式(步驟1301)時,AP106中運行的核心PM執(zhí)行存儲陣列數(shù)據(jù)重排任務(例如,圖2-4或圖2、9、10所示的示例流程)以收集空閑塊(步驟1302),接著移交存儲陣列裝置110的控制權(quán)給輔助硬件模塊(例如,PM代理器108)用于進入休眠模式(步驟1303)。例如,AP106指示PM代理器108開始實時監(jiān)測存儲陣列裝置110的存儲陣列存取需求,然后進入休眠模式,例如等待中斷(WaitForInterrupt,WFI)模式。[0051]當AP106處于休眠模式時,PM代理器108通過檢測任意主裝置104_1-104_M發(fā)出的存儲陣列存取請求,實時監(jiān)測存儲陣列裝置110的存儲陣列存取需求,并且進一步根據(jù)存儲陣列裝置110的存儲陣列存取需求的實時監(jiān)測結(jié)果控制存儲陣列裝置110從第一模式轉(zhuǎn)變?yōu)榈诙J?,其中處于第一模式與第二模式中一種模式的存儲陣列裝置110的功率消耗低于處于另一模式中的存儲陣列裝置110的功率消耗。在本實施例中,第一模式為低功耗模式(例如,自更新狀態(tài)),并且第二模式為正常模式(例如,正常存儲陣列讀/寫狀態(tài))。值得注意的是,控制存儲陣列裝置110在第一模式與第二模式之間進行切換僅是為了描述的目的,并不意味著對本發(fā)明的限制。例如,可配置存儲陣列裝置110支持大于兩種不同操作模式的模式切換。[0052]在本實施例中,當實時監(jiān)測結(jié)果指示存儲陣列裝置110的存儲陣列存取需求不存在時,PM代理器108通過啟動FASR功能、PASR功能、DH)功能以及功率下降功能(其切斷外部電供應)中的至少一個功能,控制存儲陣列裝置110從第二模式(例如,正常模式)切換至第一模式(例如,低功耗模式),從而使得至少部分存儲陣列裝置110處于第一模式下的FASR狀態(tài)、PASR狀態(tài)、DPD狀態(tài)以及外部供電切斷狀態(tài)中的至少一種狀態(tài)(步驟1305)。基于步驟1302中收集的空閑塊的分布與數(shù)量,PM代理器108決定是否啟動FASR功能、PASR功能、DH)功能以及功率下降功能(其切斷外部電供應)中的一個或多個功能以節(jié)省功率。如果選擇DPD功能,則PM代理器108開啟DH)進入流程,使得特定存儲陣列塊/片進入DPD狀態(tài)(步驟1304_I)。如果選擇PASR功能,則PM代理器108開啟PASR進入流程,以編碼一個或多個模式寄存器(例如,MR16及/或MR17),從而啟動存儲陣列裝置110的一個或多個片段/塊上的PASR功能(步驟1304_2)。如果選擇功率下降功能,則PM代理108開啟功率下降進入流程,以對特定存儲陣列塊/片切斷外面供電(步驟1304_3)。如果選擇FASR功能,則PM代理108開啟FASR進入流程,以在存儲陣列裝置110的所有片段/塊上啟動FASR功能(步驟1304_4)。因此,存儲陣列裝置110進入具有低功耗功能的低功耗模式(步驟1306)。[0053]值得注意的是,在存儲陣列裝置110處于低功耗模式后,PM代理器108保持監(jiān)測存儲陣列裝置110的存儲陣列存取需求,例如通過實時檢測任意主裝置104_1-104_1發(fā)出的存儲陣列存取請求(步驟1307)。當實時監(jiān)測結(jié)果指示存儲陣列裝置110的存儲陣列存取需求存在(例如,特定主裝置發(fā)出存儲陣列存取請求)時,PM代理器108控制存儲陣列裝置110從第一模式(例如,低功耗模式)切換至第二模式(例如,正常模式),從而離開低功耗模式以處理存儲陣列存取請求,并且進一步將存儲陣列裝置110現(xiàn)在可用通知給特定主裝置(步驟1308)。值得注意的是,低功耗功能的設定可保持不動。因此,當存儲陣列裝置110再次進入低功耗模式時,將恢復低功耗功能。[0054]在特定主裝置完成存取存儲陣列裝置110后,特定主裝置釋放存儲陣列存取請求。在這時,實時監(jiān)測結(jié)果指示存儲陣列裝置110的存儲陣列存取需求不存在,PM代理器108控制存儲陣列裝置110從第二模式(例如,正常模式)切換至第一模式(例如,低功耗模式)從而重新進入低功耗模式(步驟1306)。[0055]進一步地,當事件觸發(fā)操作系統(tǒng)離開掛起模式時,PM代理器108通過將存儲陣列裝置110從第一模式(例如,低功耗模式)切換至第二模式(例如,正常模式),開始控制存儲陣列裝置110離開低功耗模式(步驟1309與1311)。在步驟1305啟動PDP功能情況下,PM代理器108開啟DPD離開流程,以執(zhí)行存儲陣列復位初始化使得特定存儲陣列塊/片離開DPD狀態(tài)(步驟1310_1)。在步驟1305啟動PASR功能的另一情況下,則PM代理108開啟PASR離開流程,以編碼一個或多個模式寄存器(例如,MR16及/或MR17),從而禁能存儲陣列裝置110的特定片段/塊上的PASR功能(步驟1310_2)。在步驟1305啟動功率下降功能的另一情況下,則PM代理器108開啟功率下降離開流程,以對特定存儲陣列塊/片執(zhí)行存儲陣列復位初始化并且允許外面供電(步驟1310_3)。在步驟1305啟動FASR功能的另一情況下,則PM代理器108開啟FASR離開流程,以在存儲陣列裝置110的所有片段/塊上禁能FASR功能(步驟1310_4)。接著,例如,PM代理器108將AP106從休眠模式中喚醒。PM代理器108將對存儲陣列裝置110的控制權(quán)移交至正常模式中的AP106,并且停止實時監(jiān)測存儲陣列裝置110的存儲陣列存取需求(步驟1312)。[0056]在步驟1313,AP106執(zhí)行步驟1302中執(zhí)行的存儲陣列數(shù)據(jù)重排任務所對應的存儲陣列數(shù)據(jù)恢復。例如,解壓縮并恢復壓縮頁。最后,電子裝置100的操作系統(tǒng)離開掛起模式并進入正常模式(步驟1314)。[0057]在保持本發(fā)明精神的情況下,本領(lǐng)域技術(shù)人員容易觀察到裝置與方法的修改與替換。因此,上述揭露書皆應限定于權(quán)利要求書的保護范圍?!局鳈?quán)項】1.一種存儲陣列裝置管理方法,包含:利用處理器執(zhí)行存儲陣列裝置的內(nèi)存池中第一存儲單元的第一級收集操作;以及在該第一級收集操作處理該第一存儲單元后,執(zhí)行該存儲陣列裝置的該內(nèi)存池中第二存儲單元的第二級收集操作;其中該第一級收集操作與該第二級收集操作中的一個操作為頁級收集操作,并且該第一級收集操作與該第二級收集操作中的另一個操作為塊級收集操作。2.如權(quán)利要求1所述的存儲陣列裝置管理方法,其特征在于,按照頁分配方向安排該內(nèi)存池中至少一個塊中的頁,并且執(zhí)行該頁級收集操作的步驟包含:根據(jù)頁掃描方向掃描該頁,其中該頁掃描方向與該頁分配方向相反。3.如權(quán)利要求1所述的存儲陣列裝置管理方法,其特征在于,該內(nèi)存池的至少一個塊中存在頁,并且執(zhí)行該頁級收集操作的步驟包含:至少部分基于該頁的屬性,執(zhí)行該頁的該頁級收集操作。4.如權(quán)利要求3所述的存儲陣列裝置管理方法,其特征在于,至少部分基于該頁的該屬性執(zhí)行該頁的該頁級收集操作的步驟包含:當特定頁的屬性指示該特定頁為支持文件頁并且允許該特定頁收縮時,收縮該特定頁。5.如權(quán)利要求4所述的存儲陣列裝置管理方法,其特征在于,在收縮該特定頁后,通過請求分頁將該特定頁加載入該內(nèi)存池。6.如權(quán)利要求3所述的存儲陣列裝置管理方法,其特征在于,至少部分基于該頁的該屬性執(zhí)行該頁的該頁級收集操作的步驟包含:當特定頁的屬性指示該特定頁為支持文件頁并且不允許該特定頁收縮時,控制該特定頁迀移至該內(nèi)存池的特定存儲范圍。7.如權(quán)利要求6所述的存儲陣列裝置管理方法,其特征在于,當在至少部分該存儲陣列裝置中執(zhí)行全陣列自動更新(FASR)功能、部分陣列自動更新(PASR)功能、深度功率下降(DPD)功能以及切斷外部供電功能中的至少一個功能時,在該特定存儲范圍不禁能自更新操作。8.如權(quán)利要求6所述的存儲陣列裝置管理方法,其特征在于,在該特定存儲范圍安排不可收回頁及/或不可移動頁。9.如權(quán)利要求3所述的存儲陣列裝置管理方法,其特征在于,至少部分基于該頁的該屬性執(zhí)行該頁的該頁級收集操作的步驟包含:當特定頁的屬性指示該特定頁為支持交換頁時,收縮該內(nèi)存池中的該特定頁并且壓縮存儲在該存儲陣列裝置的交換池中的對應頁。10.如權(quán)利要求3所述的存儲陣列裝置管理方法,其特征在于,至少部分基于該頁的該屬性執(zhí)行該頁的該頁級收集操作的步驟包含:當特定頁的屬性指示該特定頁為不可收回頁及/或不可移動頁時,壓縮該特定頁以生成壓縮頁,將該壓縮頁存入該內(nèi)存池的特定存儲范圍,并且收縮該特定頁。11.如權(quán)利要求10所述的存儲陣列裝置管理方法,其特征在于,當在至少部分該存儲陣列裝置中執(zhí)行全陣列自動更新(FASR)功能、部分陣列自動更新(PASR)功能、深度功率下降(DPD)功能以及切斷外部供電功能中的至少一個功能時,在該特定存儲范圍不禁能自更新操作。12.如權(quán)利要求10所述的存儲陣列裝置管理方法,其特征在于,至少部分基于該頁的該屬性執(zhí)行該頁的該頁級收集操作的步驟進一步包含:生成該特定頁的壓縮指標,其中該壓縮指標包含該特定頁的壓縮相關(guān)信息,并且該塊級收集操作參考該壓縮指標。13.如權(quán)利要求1所述的存儲陣列裝置管理方法,其特征在于,在該內(nèi)存池中存在多個塊,并且執(zhí)行該塊級收集操作的步驟包含:對該多個塊的至少部分塊執(zhí)行壓縮,包含:將使用的至少一個頁從具有第一使用計數(shù)的第一塊移動至具有第二使用計數(shù)的第二塊,其中該第二使用計數(shù)大于該第一使用計數(shù)。14.如權(quán)利要求13所述的存儲陣列裝置管理方法,其特征在于,執(zhí)行該塊級收集操作的步驟包含:操縱塊級信息列表以追蹤該多個塊的使用情況。15.一種存儲陣列裝置的功率管理方法,包含:當處理器處于休眠模式時:利用功率管理代理器實時監(jiān)測該存儲陣列裝置的存儲陣列存取需求;以及根據(jù)該存儲陣列裝置的該存儲陣列存取需求的實時監(jiān)測結(jié)果,控制該存儲陣列裝置從第一模式切換至第二模式;其中在該第一模式與該第二模式中的一種模式下該存儲陣列裝置的功率消耗低于在該第一模式與該第二模式中的另一種模式下該存儲陣列裝置的功率消耗。16.如權(quán)利要求15所述的功率管理方法,其特征在于,進一步包含:使用該處理器命令該功率管理代理器開始實時監(jiān)測該存儲陣列裝置的該存儲陣列存取需求;以及配置該處理器進入該休眠模式。17.如權(quán)利要求15所述的功率管理方法,其特征在于,進一步包含:使用該功率管理代理器喚醒該處理器;以及配置該功率管理代理器停止實時監(jiān)測該存儲陣列裝置的該存儲陣列存取需求。18.如權(quán)利要求15所述的功率管理方法,其特征在于,進一步包含:當該實時監(jiān)測結(jié)果指示不存在該存儲陣列裝置的該存儲陣列存取需求時,控制該存儲陣列裝置從該第二模式切換至該第一模式,其中該存儲陣列裝置的至少部分處于該第一模式下的全陣列自動更新(FASR)功能、部分陣列自動更新(PASR)功能、深度功率下降(DPD)功能以及切斷外部供電功能中的至少一種功能。19.如權(quán)利要求15所述的功率管理方法,其特征在于,控制該存儲陣列裝置從該第一模式切換至該第二模式的步驟包含:當該實時監(jiān)測結(jié)果指示存在該存儲陣列裝置的該存儲陣列存取需求時,控制該存儲陣列裝置從該第一模式切換至該第二模式,其中在處于該第一模式下的該存儲陣列裝置的至少部分執(zhí)行全陣列自動更新(FASR)功能、部分陣列自動更新(PASR)功能、深度功率下降(DPD)功能以及切斷外部供電功能中的至少一種功能。20.一種存儲程序代碼的計算機可讀媒介,其中當處理器執(zhí)行時,該程序代碼指示該處理器執(zhí)行如下步驟:執(zhí)行存儲陣列裝置的內(nèi)存池中第一存儲單元的第一級收集操作;以及在該第一級收集操作處理該第一存儲單元后,執(zhí)行該存儲陣列裝置的該內(nèi)存池中第二存儲單元的第二級收集操作;其中該第一級收集操作與該第二級收集操作中的一個操作為頁級收集操作,并且該第一級收集操作與該第二級收集操作中的另一個操作為塊級收集操作。21.—種電子裝置,包含:存儲陣列裝置;以及功率管理代理器,其中當處理器處于休眠模式時,配置該功率管理代理器實時監(jiān)測該存儲陣列裝置的存儲陣列存取需求,并且根據(jù)該存儲陣列裝置的該存儲陣列存取需求的實時監(jiān)測結(jié)果,控制該存儲陣列裝置從第一模式切換至第二模式;其中在該第一模式與該第二模式中的一種模式下該存儲陣列裝置的功率消耗低于在該第一模式與該第二模式中的另一種模式下該存儲陣列裝置的功率消耗?!疚臋n編號】G06F1/32GK105917289SQ201580002574【公開日】2016年8月31日【申請日】2015年3月13日【發(fā)明人】張錦文,閻學斌,周宏霖,呂國賢,簡光廷,劉志杰,尼古拉斯·秦輝·鄭【申請人】聯(lián)發(fā)科技股份有限公司