處理單元、圖形處理單元、內(nèi)核、主內(nèi)核、子內(nèi)核、處理區(qū)域、硬件引擎等或可以駐留在便攜式計(jì)算設(shè)備內(nèi)的集成電路內(nèi)部或外部的任意組件,并且可以進(jìn)入睡眠、空閑或待機(jī)狀態(tài)。
[0027]在示例性P⑶中,全部1.3mA的睡眠電流的整整0.6mA都是由一對(duì)512MB的易失性存儲(chǔ)器組件的自刷新循環(huán)導(dǎo)致的。如上所描述的,當(dāng)PCD處于睡眠模式時(shí),用于存儲(chǔ)器的自刷新的功耗是支配電池的頻繁充電的電池上的顯著消耗。因此,與存儲(chǔ)器的自刷新操作相關(guān)聯(lián)的電流的任意降低都將有效地提尚電池壽命,從而也提尚QoS0在不例性“尚性能T3CD中,全部的睡眠電流可以是2.5mA的量級(jí),其中顯著的1.5mA是由存儲(chǔ)器的自刷新操作導(dǎo)致的。無(wú)疑,跨存儲(chǔ)器組件來(lái)維持必要的數(shù)據(jù)完整性所需要的電流的降低表示了延長(zhǎng)電池壽命和提尚QoS的可能性。
[0028]出于說(shuō)明性目的,假設(shè)512MB的存儲(chǔ)器組件被劃分成了上部存儲(chǔ)器存儲(chǔ)體和下部存儲(chǔ)器存儲(chǔ)體(每個(gè)256MB)。通過(guò)在PCD處于空閑模式時(shí)將兩個(gè)存儲(chǔ)器存儲(chǔ)體中的一個(gè)存儲(chǔ)體斷電(例如通過(guò)將上部存儲(chǔ)體斷電),可以將與整個(gè)存儲(chǔ)器組件的自刷新相關(guān)聯(lián)的功耗削減一半。以這種方式,可以將必要的數(shù)據(jù)內(nèi)容保持在一直通電的下部存儲(chǔ)器存儲(chǔ)體中,而通過(guò)將上部存儲(chǔ)器存儲(chǔ)體掉線來(lái)實(shí)現(xiàn)功耗節(jié)省。然而,這樣一種簡(jiǎn)單的功率節(jié)省方法的問(wèn)題是:必要的數(shù)據(jù)內(nèi)容是跨上部存儲(chǔ)體和下部存儲(chǔ)體隨機(jī)分布的,因此,簡(jiǎn)單地將上部存儲(chǔ)體斷電將會(huì)導(dǎo)致存儲(chǔ)在存儲(chǔ)體中的數(shù)據(jù)丟失。
[0029]就以上示例進(jìn)一步說(shuō),在上部存儲(chǔ)體被斷電之前來(lái)保留上部存儲(chǔ)體的數(shù)據(jù)內(nèi)容的方法包括:將內(nèi)容頁(yè)面從上部存儲(chǔ)體迀移到下部存儲(chǔ)體內(nèi)的未被使用的并且是可用的存儲(chǔ)空間。完成這之后,就可以對(duì)上部存儲(chǔ)體進(jìn)行斷電,而不會(huì)丟失必要的數(shù)據(jù)內(nèi)容,從而實(shí)現(xiàn)PCD睡眠電流的功率節(jié)省,所述功率本來(lái)是要由上部存儲(chǔ)體的自刷新操作所消耗的。
[0030]用于頁(yè)面迀移的一種方法是軟件(“SW”)驅(qū)動(dòng)方法,所述軟件驅(qū)動(dòng)方法要求對(duì)上部存儲(chǔ)體和下部存儲(chǔ)體的每一個(gè)頁(yè)面進(jìn)行個(gè)別檢查,以判斷其中是否存儲(chǔ)有內(nèi)容。如上所述,數(shù)據(jù)內(nèi)容可以是跨上部存儲(chǔ)體和下部存儲(chǔ)體而隨機(jī)保存的,因此每一個(gè)存儲(chǔ)體中僅有一些頁(yè)面包含有數(shù)據(jù)。因此,以“逐頁(yè)面”或“反復(fù)試驗(yàn)”的方式來(lái)檢查所述頁(yè)面。例如,如果在上部存儲(chǔ)體的頁(yè)面地址處發(fā)現(xiàn)了內(nèi)容,那么可以將所述內(nèi)容迀移到下部存儲(chǔ)體的頁(yè)面地址處。特別地,提到數(shù)據(jù)內(nèi)容從上部存儲(chǔ)體迀移到下部存儲(chǔ)體的本描述和本說(shuō)明書的其它描述本質(zhì)上是示例性的,并且不旨在將本實(shí)施例的范圍限制為僅包括從“上部”存儲(chǔ)體到“下部”存儲(chǔ)體的迀移?;旧项A(yù)想到了從任意存儲(chǔ)位置到任何其它存儲(chǔ)位置的迀移。本領(lǐng)域的普通技術(shù)人員將會(huì)認(rèn)識(shí)到,雖然沒(méi)有任何相反的配置,但是可以將數(shù)據(jù)從存儲(chǔ)器組件中的任意位置迀移到同一個(gè)存儲(chǔ)器組件或另一個(gè)存儲(chǔ)器組件中的任意其它位置。
[0031]返回到示例性SW驅(qū)動(dòng)頁(yè)面迀移,數(shù)據(jù)內(nèi)容從上部存儲(chǔ)體頁(yè)面地址的迀移可以給出對(duì)存儲(chǔ)在下部存儲(chǔ)體的接收地址中的數(shù)據(jù)進(jìn)行重寫(因此,為了保存尋求從上部存儲(chǔ)體地址進(jìn)行迀移的數(shù)據(jù),丟掉下部存儲(chǔ)地址中已有的數(shù)據(jù))或?yàn)榱税l(fā)現(xiàn)可用存儲(chǔ)空間而檢查下一個(gè)下部存儲(chǔ)體地址的選擇。
[0032]與SW方法的實(shí)施例相關(guān)聯(lián)的功耗開銷可能是過(guò)量的,其中反復(fù)進(jìn)行逐頁(yè)面檢查過(guò)程所需要的時(shí)間在持續(xù)時(shí)間上相對(duì)較長(zhǎng)。因此,在頁(yè)面迀移期間所消耗的功率可能超出在迀移完成之后通過(guò)將上部存儲(chǔ)體斷電所最終節(jié)省的功率。換句話說(shuō),由反復(fù)劇烈的逐頁(yè)面SW迀移所導(dǎo)致的功耗確定了在一段時(shí)間上所節(jié)省的功率量中所測(cè)量的“投資回報(bào)”,在所述一段時(shí)間期間,PCD保持在睡眠模式。
[0033]出于說(shuō)明性目的,在將易失性存儲(chǔ)器的部分?jǐn)嚯娭埃梢匀缦掠?jì)算利用示例性的基于SW的頁(yè)面迀移的回報(bào)。假設(shè)需要保留的穩(wěn)定存儲(chǔ)內(nèi)容不大于半個(gè)存儲(chǔ)密度,即,假設(shè)512MB存儲(chǔ)器組件中的256MB的頁(yè)面迀移大小,可以將代價(jià)估算為2 (針對(duì)2個(gè)256MB存儲(chǔ)器存儲(chǔ)體)X 10秒(完成反復(fù)的SW頁(yè)面迀移所用的時(shí)間)X 250mA(每秒所汲取的電流量)X3.7V = 5.14mffH的功耗。作為示例性迀移的結(jié)果,由于迀移之后對(duì)上部存儲(chǔ)體進(jìn)行斷電,所以可以在睡眠基數(shù)中實(shí)現(xiàn)0.3mA的降低。以0.3mA的功率節(jié)省,在P⑶中將用4.6小時(shí)的空閑時(shí)間來(lái)補(bǔ)償在對(duì)256MB上部存儲(chǔ)體[(5.14mffH/3.7V)/0.3mA = 4.6小時(shí)]斷電之前為了維持存儲(chǔ)器內(nèi)容的完整性所消耗的能量。特別地,該示例性計(jì)算甚至沒(méi)有考慮與為了進(jìn)行基于SW的迀移而“喚醒"PCD相關(guān)聯(lián)的額外的功率代價(jià),所述功率代價(jià)將有效地將4.6小時(shí)增加到9.2小時(shí)以上,其中需要9.2小時(shí)的空閑時(shí)間來(lái)調(diào)整基于SW的迀移的開銷成本。
[0034]相對(duì)于與典型的基于SW的解決方案(例如以上所概述的一個(gè))相關(guān)聯(lián)的開銷成本,基于硬件(“服”)的動(dòng)態(tài)存儲(chǔ)器管理(“DMM”)系統(tǒng)和方法可以降低進(jìn)行頁(yè)面迀移的開銷成本。通過(guò)使用存儲(chǔ)在非易失性存儲(chǔ)器資源(或在一些實(shí)施例中,存儲(chǔ)在易失性存儲(chǔ)器資源的專門部分)中的查找表(“LUT”),可以追蹤存儲(chǔ)內(nèi)容的具體頁(yè)面地址,并且最終在目標(biāo)頁(yè)面迀移中進(jìn)行查詢使用。因?yàn)閷?shí)施例可以快速地識(shí)別例如上部存儲(chǔ)體中的內(nèi)容的位置以及例如下部存儲(chǔ)體中的可用存儲(chǔ)空間的位置,所以可以避免以上所概述的基于SW的方法的迭代方法,從而大大減少在將上部存儲(chǔ)體斷電之前進(jìn)行的頁(yè)面迀移所需要的時(shí)間量(并且從而節(jié)省功率)。
[0035]一種示例性的基于HW的DMM實(shí)施例在閃存組件中創(chuàng)建了 LUT。LUT包含與一個(gè)或多個(gè)存儲(chǔ)器組件(例如DRAM存儲(chǔ)器組件)中的每個(gè)頁(yè)面地址個(gè)別地相關(guān)聯(lián)的記錄。向回參照以上的示例性情形,LUT可以包括針對(duì)512MB的DRAM存儲(chǔ)器組件的上部存儲(chǔ)體和下部存儲(chǔ)體中的每個(gè)頁(yè)面地址的記錄。
[0036]在PCD的正常操作期間,可以利用進(jìn)程或應(yīng)用程序?qū)Υ鎯?chǔ)器頁(yè)面的每次訪問(wèn)來(lái)更新LUT。當(dāng)給定頁(yè)面被訪問(wèn)時(shí),從而迫使數(shù)據(jù)內(nèi)容被存儲(chǔ)在給定頁(yè)面中,可以利用二進(jìn)制中的“O”來(lái)標(biāo)記與所訪問(wèn)的頁(yè)面地址相關(guān)聯(lián)的LUT中的記錄,從而在LUT中編制給定地址包含內(nèi)容。類似地,如果記錄被標(biāo)記為“ 1”,那么相關(guān)聯(lián)的頁(yè)面被假定為空,或至少可用于重寫(視情況而定)。特別地,在本說(shuō)明書中,使用二進(jìn)制的“O”以在LUT中指示頁(yè)面包含數(shù)據(jù),以及類似地使用“I”來(lái)指示頁(yè)面可用于接收數(shù)據(jù),所述使用僅用于說(shuō)明性目的而不是將實(shí)施例僅僅限制為該配置。也就是說(shuō),本領(lǐng)域的普通技術(shù)人員將會(huì)認(rèn)識(shí)到,可以以與所描述的相反的方式來(lái)利用二進(jìn)制指示。對(duì)本領(lǐng)域的普通技術(shù)人員來(lái)說(shuō),存在其它的在LUT中編制記錄的方式。
[0037]返回到基于HW的示例性DDM實(shí)施例,假設(shè)易失性存儲(chǔ)器組件包含512MB的存儲(chǔ)空間(被劃分為256MB的上部存儲(chǔ)體和下部存儲(chǔ)體)。此外,假設(shè)512MB的每個(gè)存儲(chǔ)器頁(yè)面表示4KB的容量(即,0.004MB)。例如,對(duì)于具有2GB的eMMC或閃存的PCD,被基于HW的DMM實(shí)施例所利用的得到的LUT將包含500,000個(gè)記錄(2000MB/0.004MB = 500, 000存儲(chǔ)器頁(yè)面)。有利的是,將僅需要大約64KB的非易失性閃存來(lái)維持LUT—需要很少量的功率來(lái)更新的微小的存儲(chǔ)量。特別地,雖然本文中所描述的示例性實(shí)施例包括閃存中的LUT的位置,但是應(yīng)當(dāng)預(yù)想到LUT可以位于與PCD相關(guān)聯(lián)的任意存儲(chǔ)器組件中。例如,可以預(yù)想到一些實(shí)施例可以將LUT定位在DRAM中的專用存儲(chǔ)空間中,例如在以上說(shuō)明中的下部存儲(chǔ)體的部分中(因?yàn)樵谒稣f(shuō)明中,下部存儲(chǔ)體是被標(biāo)記來(lái)進(jìn)行保存和自刷新的存儲(chǔ)器組件的部分)。
[0038]還可以進(jìn)一步預(yù)想到:在一些實(shí)施例中,每次頁(yè)面被訪問(wèn)時(shí)都可以更新LUT,而在其它實(shí)施例中,可以以分批方式對(duì)LUT進(jìn)行定期的更新。在其它實(shí)施例中,特別是當(dāng)所述實(shí)施例包括易失性存儲(chǔ)空間中的LUT的位置時(shí),可以將所述更新定時(shí)到存儲(chǔ)事項(xiàng)之間來(lái)進(jìn)行。例如,如上所述,在一些實(shí)施例中,可以在小型、專用空間量中來(lái)維持LUT,所述小型、專用空間量是從給定DRAM存儲(chǔ)器組件的下部存儲(chǔ)體或上部存儲(chǔ)體中(即,在被指定用于保存的存儲(chǔ)體中)分配的。
[0039]此外,還可以預(yù)想到基于HW的DMM解決方案的一些實(shí)施例可以考慮自從給定頁(yè)面被訪問(wèn)之后所流逝的持續(xù)時(shí)間。基于所述時(shí)間量,可以假定包含在給定頁(yè)面中的數(shù)據(jù)是陳舊的,從而觸發(fā)LUT進(jìn)行相應(yīng)的更新。例如,LUT可以包含針對(duì)每個(gè)記錄的額外指定,所述額外指定將特定的存儲(chǔ)器頁(yè)面標(biāo)記為符合重寫,或者在其它實(shí)施例中,可以將內(nèi)容的二進(jìn)制指示符從“O”變?yōu)椤癐”(擴(kuò)展以上的例子)以將給定的存儲(chǔ)器頁(yè)面標(biāo)記為可用于頁(yè)面迀移中的新內(nèi)容的接收的空間。
[0040]特別地,為了便于說(shuō)明,本說(shuō)明書中給出的示例是在被劃分為每個(gè)為256MB的上部存儲(chǔ)體和下部存儲(chǔ)體的512MB的DRAM存儲(chǔ)器組件的上下文中提供的,其中從上部存儲(chǔ)體到下部存儲(chǔ)體的頁(yè)面迀移是理想的,從而當(dāng)PCD處于待機(jī)模式時(shí)可以將上部存儲(chǔ)體斷電。如上所述,本公開內(nèi)容的范圍并不被局限于僅是這種配置。此外,應(yīng)當(dāng)預(yù)想到:在一些實(shí)施例中,可以在將存儲(chǔ)器存儲(chǔ)體的較小部分(例如示例性上部存儲(chǔ)器存儲(chǔ)體)斷電之前,將它迀移。通過(guò)示例性而非限制性的方式,可以利用LUT來(lái)追蹤256MB上部存儲(chǔ)體的128MB中的頁(yè)面,從而在迀移之后,僅有128MB被斷電。
[0041 ] 返回到包括LUT的基于HW的示例性DMM實(shí)施例,所述LUT被配置為對(duì)存儲(chǔ)在存儲(chǔ)器頁(yè)面中的內(nèi)容的相對(duì)“陳舊度”進(jìn)行編制,即:自從上一次訪問(wèn)存儲(chǔ)在某個(gè)存儲(chǔ)器頁(yè)面中的內(nèi)容之后的持續(xù)時(shí)間,預(yù)想該實(shí)施例在要被迀移的頁(yè)面的數(shù)量超出已知的可用于內(nèi)容的接收的頁(yè)面的數(shù)量時(shí)是有用的。如上所述,包含在某個(gè)持續(xù)時(shí)間內(nèi)都沒(méi)有被訪問(wèn)的數(shù)據(jù)內(nèi)容的、被指定用于持續(xù)自刷新的存儲(chǔ)器的部分中的頁(yè)面,可以在LUT中被標(biāo)記為符合重寫。預(yù)想到的將LUT中的存儲(chǔ)器頁(yè)面標(biāo)記為符合重寫的其它方法包括但不限于:辨認(rèn)出被某些應(yīng)用程序所使用的、比被其它較不重要的應(yīng)用程序(例如郵件應(yīng)用相比于游戲應(yīng)用)所使用的內(nèi)容具有用于維持的更高優(yōu)先級(jí)的內(nèi)容;允許用戶對(duì)應(yīng)用程序進(jìn)行優(yōu)先級(jí)排序,從而對(duì)與所述應(yīng)用程序相關(guān)聯(lián)的數(shù)據(jù)內(nèi)容的重要性進(jìn)行優(yōu)先級(jí)排序;以及將存儲(chǔ)器組件的某個(gè)部分中所存儲(chǔ)的內(nèi)容指定為比其它部分中所存儲(chǔ)的內(nèi)容更重要,當(dāng)所述部分專用于某些功能時(shí)(即:應(yīng)用程序堆部分、視頻RAM部分、內(nèi)核部分等,其中可以在用于重寫的隊(duì)列中將應(yīng)用程序堆標(biāo)記為第一)。
[0042]還可以預(yù)想到,其它實(shí)施例可以包括與基于SW的DMM實(shí)施例結(jié)合的基于HW的DMM實(shí)施例的混合解決方案。例如,在如下情況下:其中所有可用于內(nèi)容的接收的空間都已經(jīng)被利用,并且在LUT中被標(biāo)記為符合重寫的所有頁(yè)面都已經(jīng)被重寫了,而且仍然有必要的內(nèi)容需要被迀移,那么可以繼續(xù)混合解決方案以利用基于SW的解決方案,該方案選擇用于重寫的額外的存儲(chǔ)器頁(yè)面或選擇不去迀移某些頁(yè)面。也就是說(shuō),所述實(shí)施例可以在基于HW的解決方案完成它的工作之后,提出基于SW的解決方案來(lái)結(jié)束任意進(jìn)程以完成頁(yè)面迀移。特別地,因?yàn)榛贖W的方法將已經(jīng)迀移了一些頁(yè)面,所以基于SW的迀移的應(yīng)用將不可避免地占用較少的時(shí)間(雖然可能仍然是顯著的),并且因此,混合實(shí)施例相比只基于純SW的DMM方法消耗較少的功率??梢灶A(yù)想到:HW/SW混合DMM方法可以方便地用于高性能的P⑶,其中所述高性能的PCD的用戶運(yùn)行給整個(gè)存儲(chǔ)器容量造成很重負(fù)擔(dān)的許多應(yīng)用程序和任務(wù)。
[0043]圖1是示出了片上系統(tǒng)的實(shí)施例的功能框圖,所述片上系統(tǒng)通過(guò)基于硬件(“HW”)和/或軟件(“SW”)的頁(yè)面迀移,用于便攜式計(jì)算設(shè)備(“PCD”)中的動(dòng)態(tài)存儲(chǔ)器功率管理。如在附圖中可以看出的,動(dòng)態(tài)存儲(chǔ)器管理(“DMM”)模塊101與集成電路102的中央處理單元(“CPU”)110通信。DMM模塊101可以包括存儲(chǔ)器控制器功能,所述功能用于管理數(shù)據(jù)內(nèi)容的存儲(chǔ)和取回,這是為了 P⑶100在使用中時(shí)的處理器222、處理器224、處理器22