一種混合存儲(chǔ)器中數(shù)據(jù)遷移的自學(xué)習(xí)的方法
【專利摘要】本發(fā)明提供了一種混合存儲(chǔ)器中數(shù)據(jù)遷移的自學(xué)習(xí)的方法,系統(tǒng)通過(guò)一段時(shí)間自學(xué)習(xí)當(dāng)前用戶的使用習(xí)慣,對(duì)于特定的用戶,當(dāng)該用戶的混合內(nèi)存數(shù)據(jù)接口IO吞吐量滿足一定的條件時(shí),經(jīng)過(guò)一定的時(shí)間進(jìn)行數(shù)據(jù)的遷移,同時(shí)把用戶從滿足混合內(nèi)存數(shù)據(jù)接口IO吞吐量到進(jìn)入數(shù)據(jù)遷移所用的時(shí)間存儲(chǔ)在系統(tǒng)中的非易失性存儲(chǔ)器中,這樣下次用戶可以直接從非易失性存儲(chǔ)器中得到該用戶的從滿足混合內(nèi)存數(shù)據(jù)接口IO吞吐量到進(jìn)入數(shù)據(jù)遷移所要經(jīng)過(guò)的最優(yōu)時(shí)間。
【專利說(shuō)明】-種混合存儲(chǔ)器中數(shù)據(jù)遷移的自學(xué)習(xí)的方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及信息【技術(shù)領(lǐng)域】,具體涉及一種混合存儲(chǔ)器中數(shù)據(jù)遷移的自學(xué)習(xí)的方 法。
【背景技術(shù)】
[0002] 隨著信息技術(shù)的發(fā)展,產(chǎn)生了越來(lái)越多的數(shù)據(jù),而對(duì)數(shù)據(jù)存儲(chǔ)的需求也不斷的增 長(zhǎng),對(duì)于數(shù)據(jù)中心的服務(wù)器而言,傳統(tǒng)情況下服務(wù)器的內(nèi)存為動(dòng)態(tài)隨機(jī)存儲(chǔ)器(DRAM),對(duì)于 動(dòng)態(tài)隨機(jī)存儲(chǔ)器(DRAM)而言,數(shù)據(jù)的存儲(chǔ)需要大量的刷新,不斷的刷新消耗了系統(tǒng)巨大的 能耗,為了降低由于動(dòng)態(tài)隨機(jī)存儲(chǔ)器不斷刷新的功耗,目前使用混合存儲(chǔ)器做服務(wù)器的內(nèi) 存,混合存儲(chǔ)器由動(dòng)態(tài)隨機(jī)存儲(chǔ)器(DRAM)和新型存儲(chǔ)器(NCM)組成,具體結(jié)構(gòu)如附圖1所 示。為了降低動(dòng)態(tài)隨機(jī)存儲(chǔ)器(DRAM)不斷刷新的功耗,在低負(fù)載的時(shí)候需要數(shù)據(jù)遷移,所 謂數(shù)據(jù)遷移就是將數(shù)據(jù)從動(dòng)態(tài)隨機(jī)存儲(chǔ)器中放入新型存儲(chǔ)器中,在低負(fù)載的情況下,數(shù)據(jù) 的讀寫頻率下降,混合內(nèi)存數(shù)據(jù)接口 IO(input-output,輸入輸出)吞吐量下降,假設(shè)在NCM 中讀寫數(shù)據(jù)的功耗為Pkwjcm,在DRAM中讀寫數(shù)據(jù)的功耗為Pkw DEAM,DRAM中刷新數(shù)據(jù)的功耗為 Prefresh,數(shù)據(jù)從DRAM遷移至NCM的功耗為Ptranj臟_NCM,數(shù)據(jù)從NCM遷移至DRAM的功耗為P tran+ MLDEAM,有效的數(shù)據(jù)遷移應(yīng)滿足以下條件:
[0003] Prw-DRAM+Prefresh ^ PRW-NCM+Ptran-DRAM-NCM+Ptran-NCM-DRAM。
[0004] 目前的數(shù)據(jù)遷移的算法都是基于自啟發(fā)式動(dòng)態(tài)算法,這些算法都是基于數(shù)據(jù)使用 狀態(tài)的歷史記錄,也就是說(shuō)這些數(shù)據(jù)遷移的算法是被動(dòng)的,而且對(duì)于某種數(shù)據(jù)遷移的算法 而言,只能用于解決特定的情況,而不能用于解決所有情況下的數(shù)據(jù)遷移問(wèn)題,而且現(xiàn)在的 數(shù)據(jù)遷移的算法沒(méi)有考慮把數(shù)據(jù)從DRAM遷移至NCM的功耗P taan DEAMJCM和數(shù)據(jù)從NCM遷移至 DRAM的功耗PtMnJ〇L_,隨著數(shù)據(jù)量的增大,數(shù)據(jù)遷移所用的功耗也要相應(yīng)的增大,即PtMn_ rnMMjci和Ptaan_N〇LDKAM均增大,也就是說(shuō)這些功耗不能被忽略。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明提出了一種混合存儲(chǔ)器中數(shù)據(jù)遷移的自學(xué)習(xí)的方法,系統(tǒng)通過(guò)一段時(shí)間自 學(xué)習(xí)當(dāng)前用戶的使用習(xí)慣,對(duì)于特定的用戶,當(dāng)該用戶的混合內(nèi)存數(shù)據(jù)接口 IO吞吐量滿足 一定的條件時(shí),經(jīng)過(guò)一定的時(shí)間進(jìn)行數(shù)據(jù)的遷移,同時(shí)把用戶從滿足混合內(nèi)存數(shù)據(jù)接口 IO 吞吐量到進(jìn)入數(shù)據(jù)遷移所用的時(shí)間存儲(chǔ)在系統(tǒng)中的非易失性存儲(chǔ)器中,這樣下次用戶可以 直接從非易失性存儲(chǔ)器中得到該用戶的從滿足混合內(nèi)存數(shù)據(jù)接口 IO吞吐量到進(jìn)入數(shù)據(jù)遷 移所要經(jīng)過(guò)的最優(yōu)時(shí)間。
[0006] 為了實(shí)現(xiàn)上述技術(shù)效果,本發(fā)明采用的技術(shù)方案為:
[0007] 提供一混合存儲(chǔ)器,包括第一存儲(chǔ)器和第二存儲(chǔ)器,第二存儲(chǔ)器的擦寫速度小于 第一存儲(chǔ)器;
[0008] 當(dāng)混合存儲(chǔ)器數(shù)據(jù)接口 IO吞吐量小于用戶預(yù)設(shè)的混合存儲(chǔ)器數(shù)據(jù)接口 IO吞吐量 時(shí),在經(jīng)過(guò)時(shí)間t后才進(jìn)行數(shù)據(jù)遷移,將第一存儲(chǔ)器的數(shù)據(jù)轉(zhuǎn)入至第二存儲(chǔ)器中;
[0009] 其中,通過(guò)如下方式獲取t :
[0010] 選定一個(gè)起始時(shí)間tstart,當(dāng)t = tstart時(shí),混合存儲(chǔ)器的平均功耗Pt = Ptstart,選定 下一個(gè)時(shí)間tstart+ Λ t,當(dāng)t = tstart+ Λ t時(shí),混合存儲(chǔ)器的平均功耗Pt = Ptstart+At ;
[0011] 若 Ptstart+At>ptstart,令 t = tstart- Λ t,混合存儲(chǔ)器的平均功耗 Pt = Ptstart_At,如 果Ptstart^PPtstart,表示t = tstartW,混合存儲(chǔ)器的平均功耗最低;若ptstart_At〈p tstart,令 t = tstart-2 Λ t,混合存儲(chǔ)器的平均功耗Pt = Ptstart_2At ;若 ^tstart-2 Δ t^^tstart-Δ t? ^ ^ tstart-3 Λ t,混合存儲(chǔ)器的平均功耗Pt = Ptstart_3At......令t = tstart-NA t,混合存儲(chǔ)器的 平均功耗Pt = ^tstart-N Δ t? ^ ^tstart-N Δ t >Ptstart-(N-i) A t,表示在 t = tstart- (N-I) Λ t 時(shí),混合 存儲(chǔ)器的平均功耗最低;
[0012]當(dāng) Ptstart+At〈ptstart,令 t = tstart+2 Λ t,混合存儲(chǔ)器的平均功耗 Pt = Ptstart+2At ; 若 Ptstart+2 Λ t 〈Ptstart+Λ t,令 t = tstart+3 Λ t,混合存儲(chǔ)器的平均功耗 Pt = Ptstart+3 Λ t ;若 Ptstart+3 Λ t 〈Ptstart+2At,令 t = tstart+4 Λ t......若 t = tstart+NA t,混合存儲(chǔ)器的平均功耗 Pt ^tstart+Ν Δ t ;若?加啦+論>?加啦寺1^,表示在〖=%_+(^1)么〖時(shí),混合存儲(chǔ)器的平均 功耗最低;
[0013] N為正整數(shù),At為自然數(shù)。
[0014] 上述的方法,其中,所述第一存儲(chǔ)器為DRAM。
[0015] 上述的方法,其中,所述第二存儲(chǔ)器為NCM。
[0016] 上述的方法,其中,所述NCM包括磁隨機(jī)存儲(chǔ)器(MRAM)、鐵電隨機(jī)存儲(chǔ)器(FeRAM)、 相變存儲(chǔ)器(PCM)、分子存儲(chǔ)器(Molecular Memory)、聚合物存儲(chǔ)器(Polymer memory)、組 變隨機(jī)存儲(chǔ)器(RRAM)。
[0017] 上述的方法,其中,通過(guò)一功耗檢測(cè)模來(lái)得到當(dāng)前用戶的混合內(nèi)存的平均功耗。
[0018] 上述的方法,其中,通過(guò)一比較模塊來(lái)對(duì)不同時(shí)間段內(nèi)的混合內(nèi)存的平均功耗進(jìn) 行比較。
[0019] 上述的方法,其中,當(dāng)混合存儲(chǔ)器工作在基于之前自學(xué)習(xí)所得到的最優(yōu)t值狀態(tài) 下,當(dāng)功耗檢測(cè)模塊檢測(cè)到用戶的混合存儲(chǔ)器的在某一時(shí)間段內(nèi)的平均功耗發(fā)生改變,則 重新根據(jù)用戶新的使用習(xí)慣進(jìn)行自學(xué)習(xí)獲取最優(yōu)t值。
[0020] 上述的方法,其中,獲取t值之后,將t值存入系統(tǒng)中的非易失性存儲(chǔ)器中,每當(dāng) 不同用戶登陸系統(tǒng)后可以直接在系統(tǒng)中的非易失性存儲(chǔ)器中讀取對(duì)應(yīng)不同用戶的最優(yōu)的t 值,對(duì)混合存儲(chǔ)器加以控制。
[0021] 上述的方法,其中,根據(jù)在不同的時(shí)間段對(duì)于同一個(gè)用戶完全不同的使用習(xí)慣進(jìn) 行統(tǒng)計(jì)計(jì)算獲取不同的t值,以降低混合存儲(chǔ)器的使用功耗。
[0022] 上述的方法,其中,用戶為一個(gè)PC用戶、一個(gè)手機(jī)用戶或者一個(gè)數(shù)據(jù)中心的公司 用戶。
【專利附圖】
【附圖說(shuō)明】
[0023] 通過(guò)閱讀參照以下附圖對(duì)非限制性實(shí)施例所作的詳細(xì)描述,本發(fā)明及其特征、夕卜 形和優(yōu)點(diǎn)將會(huì)變得更明顯。在全部附圖中相同的標(biāo)記指示相同的部分。并未刻意按照比例 繪制附圖,重點(diǎn)在于示出本發(fā)明的主旨。
[0024] 附圖1為混合存儲(chǔ)器的組成圖;
[0025] 附圖2為混合內(nèi)存數(shù)據(jù)接口 IO吞吐量和統(tǒng)計(jì)時(shí)間的示意圖;
[0026] 附圖3為確定最優(yōu)的時(shí)間t的步驟圖;
[0027] 附圖4為確定最優(yōu)的時(shí)間t的步驟二種情況一的不意圖;
[0028] 附圖5為確定最優(yōu)的時(shí)間t的步驟三種情況二的示意圖1 ;
[0029] 附圖6為確定最優(yōu)的時(shí)間t的步驟二種情況_的不意圖2 ;
[0030] 附圖7為混合內(nèi)存的平均功耗和時(shí)間t的關(guān)系;
[0031] 附圖8為本發(fā)明一種實(shí)例的示意圖。
【具體實(shí)施方式】
[0032] 在下文的描述中,給出了大量具體的細(xì)節(jié)以便提供對(duì)本發(fā)明更為徹底的理解。然 而,對(duì)于本領(lǐng)域技術(shù)人員而言顯而易見的是,本發(fā)明可以無(wú)需一個(gè)或多個(gè)這些細(xì)節(jié)而得以 實(shí)施。在其他的例子中,為了避免與本發(fā)明發(fā)生混淆,對(duì)于本領(lǐng)域公知的一些技術(shù)特征未進(jìn) 行描述。
[0033] 為了徹底理解本發(fā)明,將在下列的描述中提出詳細(xì)的步驟以及詳細(xì)的結(jié)構(gòu),以便 闡釋本發(fā)明的技術(shù)方案。本發(fā)明的較佳實(shí)施例詳細(xì)描述如下,然而除了這些詳細(xì)描述外,本 發(fā)明還可以具有其他實(shí)施方式。
[0034] 在傳統(tǒng)的數(shù)據(jù)遷移的算法中,由于數(shù)據(jù)的遷移是被動(dòng)的,對(duì)于某用戶從小于設(shè)定 的混合內(nèi)存數(shù)據(jù)接口 IO吞吐量到進(jìn)行數(shù)據(jù)遷移的時(shí)間并不能準(zhǔn)確的確定,本發(fā)明提出一 種混合存儲(chǔ)器中數(shù)據(jù)遷移的自學(xué)習(xí)的方法,對(duì)某一用戶的使用習(xí)慣假設(shè)混合內(nèi)存數(shù)據(jù)接口 IO吞吐量和統(tǒng)計(jì)時(shí)間的關(guān)系如附圖2所示,圖中橫軸為統(tǒng)計(jì)時(shí)間,縱軸為混合內(nèi)存數(shù)據(jù)接 口 IO吞吐量。當(dāng)用戶X的混合內(nèi)存數(shù)據(jù)接口 IO吞吐量小于設(shè)定的混合內(nèi)存數(shù)據(jù)接口 IO 吞吐量時(shí),經(jīng)過(guò)時(shí)間t (t>0)后進(jìn)行數(shù)據(jù)遷移,即把數(shù)據(jù)從DRAM放入NCM中,這樣雖然數(shù)據(jù) 在NCM中讀寫的功耗Pkw NC:M大于數(shù)據(jù)在DRAM中的功耗Pkw DEAM,但是降低了 DRAM的刷新功耗 Prefresh,而且降低的Prefresh要比數(shù)據(jù)在NCM中讀寫增加的功耗(P冊(cè)_ NCM-P冊(cè)艦M)大。
[0035] 如果當(dāng)混合內(nèi)存數(shù)據(jù)接口 IO吞吐量小于設(shè)定的混合內(nèi)存數(shù)據(jù)接口 IO吞吐量時(shí)直 接進(jìn)行數(shù)據(jù)遷移,那么對(duì)于有些混合內(nèi)存數(shù)據(jù)接口 IO吞吐量小于設(shè)定的混合內(nèi)存數(shù)據(jù)接 口 IO吞吐量的區(qū)域比如圖2中的區(qū)域2,把數(shù)據(jù)從DRAM遷移到NCM中很快又要把數(shù)據(jù)從 NCM遷移到DRAM中,進(jìn)行數(shù)據(jù)遷移所消耗的功耗(P___ NC:M+Ptran_NaL_)比進(jìn)行數(shù)據(jù)遷移 節(jié)省的功耗P refresh大,所以這些區(qū)域不能進(jìn)行數(shù)據(jù)遷移,也就是說(shuō)不能在混合內(nèi)存數(shù)據(jù)接 口 IO吞吐量小于設(shè)定的混合內(nèi)存數(shù)據(jù)接口 IO吞吐量時(shí)直接進(jìn)行數(shù)據(jù)遷移,要經(jīng)過(guò)一定時(shí) 間t后才能進(jìn)行數(shù)據(jù)遷移。對(duì)于附圖2中的區(qū)域2來(lái)說(shuō),圖中c點(diǎn)為區(qū)域2中混合內(nèi)存數(shù) 據(jù)接口 IO吞吐量剛剛小于設(shè)定的混合內(nèi)存數(shù)據(jù)接口 IO吞吐量的點(diǎn),圖中d點(diǎn)為區(qū)域2中 混合內(nèi)存數(shù)據(jù)接口 IO吞吐量剛剛大于設(shè)定的混合內(nèi)存數(shù)據(jù)接口 IO吞吐量的點(diǎn),區(qū)域2中 的c點(diǎn)和d點(diǎn)的時(shí)間差值為Λ ted,如果Λ ted〈t,那么就不進(jìn)行數(shù)據(jù)遷移。
[0036] 當(dāng)用戶X的混合內(nèi)存數(shù)據(jù)接口 IO吞吐量大于設(shè)定的混合內(nèi)存數(shù)據(jù)接口 IO吞吐量 時(shí),要把數(shù)據(jù)從NCM遷移至DRAM中,因?yàn)楫?dāng)混合內(nèi)存數(shù)據(jù)接口 IO吞吐量超過(guò)設(shè)定的混合內(nèi) 存數(shù)據(jù)接口 IO吞吐量時(shí),在NCM中讀寫數(shù)據(jù)增加的功耗(Pkw ΝαΓΡΜ _)要大于DRAM的刷 新功耗PMfMsh,這樣就增加了混合內(nèi)存的功耗,起不到降低混合存儲(chǔ)器功耗的目的,而且在 NCM中讀寫數(shù)據(jù)的性能比在DRAM中讀寫數(shù)據(jù)的性能差。對(duì)于附圖2中的區(qū)域1,圖中e點(diǎn) 為區(qū)域1中混合內(nèi)存數(shù)據(jù)接口 IO吞吐量剛剛小于設(shè)定的混合內(nèi)存數(shù)據(jù)接口 IO吞吐量的 點(diǎn),圖中b點(diǎn)為區(qū)域1中混合內(nèi)存數(shù)據(jù)接口 IO吞吐量剛剛大于設(shè)定的混合內(nèi)存數(shù)據(jù)接口 IO 吞吐量的點(diǎn),因?yàn)槿绻趀點(diǎn)直接進(jìn)行數(shù)據(jù)遷移,就會(huì)使區(qū)域2也進(jìn)行數(shù)據(jù)遷移,所以要經(jīng) 過(guò)時(shí)間t后進(jìn)行數(shù)據(jù)遷移,即在圖中a點(diǎn)進(jìn)行數(shù)據(jù)遷移,從附圖2中b點(diǎn)開始混合內(nèi)存數(shù)據(jù) 接口 IO吞吐量大于設(shè)定的混合內(nèi)存數(shù)據(jù)接口 IO吞吐量,所以要把數(shù)據(jù)從NCM中放入DRAM 中。
[0037] 綜上所述,找到一個(gè)合理的時(shí)間t,從而使系統(tǒng)在整個(gè)混合內(nèi)存的訪問(wèn)過(guò)程中,盡 可能使如附圖2中的區(qū)域2不能進(jìn)入數(shù)據(jù)遷移狀態(tài),而使區(qū)域1更多地進(jìn)入數(shù)據(jù)遷移狀態(tài), 在不大量影響系統(tǒng)性能的前提下,降低整個(gè)混合內(nèi)存的功耗。
[0038] 對(duì)于某一用戶來(lái)說(shuō),此處用戶可定義為一個(gè)PC用戶、一個(gè)手機(jī)用戶或者一個(gè)數(shù)據(jù) 中心的公司用戶(比如某銀行,某醫(yī)院等),該用戶的使用習(xí)慣基本確定,也就是說(shuō)對(duì)于該 用戶來(lái)說(shuō)在一定時(shí)間內(nèi)(比如一天、三天或者一周等)其使用習(xí)慣導(dǎo)致系統(tǒng)對(duì)混合內(nèi)存的 訪問(wèn)情況大致相同,既基于用戶固定的特定使用習(xí)慣,混合內(nèi)存數(shù)據(jù)接口 IO吞吐量和統(tǒng)計(jì) 時(shí)間的曲線大致相同,亦可以說(shuō)得到的混合內(nèi)存的平均功耗基本大致相同。
[0039] 根據(jù)當(dāng)前用戶的使用習(xí)慣,假設(shè)在一段時(shí)間內(nèi),混合內(nèi)存數(shù)據(jù)接口 IO吞吐量和統(tǒng) 計(jì)時(shí)間的曲線如附圖2所示,使用本發(fā)明提出的方法,當(dāng)混合內(nèi)存數(shù)據(jù)接口 IO吞吐量小于 設(shè)定的混合內(nèi)存數(shù)據(jù)接口 IO吞吐量時(shí),經(jīng)時(shí)間t進(jìn)行數(shù)據(jù)遷移,最優(yōu)的t由以下步驟決定。
[0040] 參照附圖3所示,獲取最優(yōu)的時(shí)間t值包括如下步驟:
[0041] 步驟1、首先提供一混合存儲(chǔ)器,包括第一存儲(chǔ)器和第二存儲(chǔ)器,第二存儲(chǔ)器的擦 寫速度小于第一存儲(chǔ)器;當(dāng)混合存儲(chǔ)器數(shù)據(jù)接口 IO吞吐量小于預(yù)設(shè)的混合存儲(chǔ)器數(shù)據(jù)接 口 IO吞吐量時(shí),在經(jīng)過(guò)時(shí)間t后才進(jìn)行數(shù)據(jù)遷移,將第一存儲(chǔ)器的數(shù)據(jù)轉(zhuǎn)入至第二存儲(chǔ)器 中??蛇x的,第一存儲(chǔ)器為DRAM,第二存儲(chǔ)器為NCM。其中,NCM包括磁隨機(jī)存儲(chǔ)器(MRAM)、 鐵電隨機(jī)存儲(chǔ)器(FeRAM)、相變存儲(chǔ)器PCM、分子存儲(chǔ)器(Molecular Memory)、聚合物存儲(chǔ) 器(Polymer memory)、組變隨機(jī)存儲(chǔ)器(RRAM)等新型非易失性存儲(chǔ)器。
[0042] 選定一個(gè)起始時(shí)間tstart,即t = tstart時(shí),混合內(nèi)存的平均功耗Pt = Ptstart ;
[0043] 步驟2、選定下一個(gè)時(shí)間tstart+ Λ t( Λ t可以為正數(shù)或負(fù)數(shù)),即t = tstart+ Λ t 時(shí),混合內(nèi)存的平均功耗Pt = Ptstart+At ;
[0044] 步驟3、比較兩個(gè)不同起始時(shí)間下混合內(nèi)存的平均功耗Pt,來(lái)得出最有時(shí)間t,下面 我們從兩個(gè)方面來(lái)分析:
[0045] ①當(dāng) Ptstart+Λ t〈Ptstart ?
[0046] 這種情況下說(shuō)明當(dāng)t = tstart時(shí)混合內(nèi)存的平均功耗不是最小,因此再增加一個(gè) Λ t,即t = tstart+2 Λ t,混合內(nèi)存的平均功耗Pt = Ptstart+2zXt,如果 Ptstart+2 Λ t <Ptstart+At, 再增加一個(gè)Λ t,即t = tstart+3 Λ t,混合內(nèi)存的平均功耗Pt = Ptstart+3A t,如果 ^tstart+3 Δ t 〈Ptstart+;^t,再增加一個(gè)Δ t,......,如果當(dāng)t = tstart+N Λ t,混合內(nèi)存的平均功耗 Pt ^tstart+N Δ t? 如果 Ptstart+NAt>Ptst art+MAt,說(shuō)明在 t = tstart+(N-l) Λ t 時(shí),混合內(nèi)存的平 均功耗最低,即當(dāng)混合內(nèi)存數(shù)據(jù)接口 IO吞吐量小于設(shè)定的混合內(nèi)存數(shù)據(jù)接口 IO吞吐量時(shí), 經(jīng)時(shí)間tstart+(N-I) Λ t后進(jìn)行數(shù)據(jù)遷移,混合內(nèi)存的平均功耗最低,如附圖4所示。
[0047] ②當(dāng) Ptstart+At>Ptstart 時(shí)
[0048] 在這種情況下說(shuō)明當(dāng)t = tstart+ Λ t時(shí)混合內(nèi)存的平均功耗增大,因此我們要減去 兩個(gè)At,即t = tstart-At,混合內(nèi)存的平均功耗Pt = Ptstart_At,如果Ptstart-At>P tstart,說(shuō)明t =tstart時(shí),混合內(nèi)存的平均功耗最低,如附圖5所示;如果Ptstart_At〈P tstart,再減去一個(gè)Λ t, 艮P t = tstart-2A t,混合內(nèi)存的平均功耗Pt = Ptstart_2At,如果 Ptstart_2At〈Ptstart^t,再減去一 個(gè)Λ t,即t = tstart-3 Λ t,混合內(nèi)存的平均功耗Pt = Ptstart-3 Λ t ' 如果 Ptstart-3A t〈Pt start-2 Λ t ' 再減去一個(gè)Λ t,......,當(dāng)t = tstart_N Λ t,混合內(nèi)存的平均功耗Pt = Ptstart_Nλ t,如 ^tstart-N Δ t >PtstartKAt,說(shuō)明在t = tstart-(N-l) Λ t時(shí),混合內(nèi)存的平均功耗最低, 即當(dāng)混合內(nèi)存數(shù)據(jù)接口 IO吞吐量小于設(shè)定的混合內(nèi)存數(shù)據(jù)接口 IO吞吐量時(shí),經(jīng)時(shí)間 tstart-(N-I) Λ t后進(jìn)行數(shù)據(jù)遷移,混合內(nèi)存的平均功耗最低,如附圖6所示。
[0049] 混合內(nèi)存平均功耗和時(shí)間t的曲線如附圖7所示,圖中橫軸時(shí)間t為從混合內(nèi)存 數(shù)據(jù)接口 IO吞吐量小于設(shè)定的混合內(nèi)存數(shù)據(jù)接口 IO吞吐量到進(jìn)行數(shù)據(jù)遷移所用的時(shí)間, 乜為從混合內(nèi)存數(shù)據(jù)接口 IO吞吐量小于設(shè)定的混合內(nèi)存數(shù)據(jù)接口 IO吞吐量到進(jìn)行數(shù)據(jù)遷 移所用最優(yōu)的時(shí)間,此時(shí)混合內(nèi)存的平均功耗最小。乜把曲線分成了兩個(gè)區(qū)域,分別為區(qū)域 I和區(qū)域II,區(qū)域I說(shuō)明過(guò)早的進(jìn)行了數(shù)據(jù)遷移,對(duì)應(yīng)于附圖2中區(qū)域2,如果附圖2中區(qū)域 2也進(jìn)行了數(shù)據(jù)遷移,因?yàn)榘褦?shù)據(jù)從DRAM遷移到NCM中很快又要把數(shù)據(jù)從NCM遷移到DRAM 中,進(jìn)行數(shù)據(jù)遷移所消耗的功耗(Pt^DRAMjCM+Pt^jOLDRAM)比進(jìn)行數(shù)據(jù)遷移節(jié)省的功耗PMfMsh 大得多。區(qū)域II說(shuō)明過(guò)晚進(jìn)行數(shù)據(jù)遷移,對(duì)應(yīng)于附圖2中的區(qū)域1,如果附圖2中的區(qū)域1 過(guò)晚進(jìn)行數(shù)據(jù)遷移,此時(shí)數(shù)據(jù)在DRAM中的刷新功耗P MfMsh要大于數(shù)據(jù)在NCM中讀寫增加的 功耗(Pkwjcm-Pkwjkm)和進(jìn)行數(shù)據(jù)遷移的功耗,因此要提前進(jìn)行數(shù)據(jù)遷移,即時(shí)間t要減小, 降低混合內(nèi)存的平均功耗。
[0050] 雖然對(duì)于某用戶而言,該用戶的使用習(xí)慣基本不變,經(jīng)過(guò)一段時(shí)間統(tǒng)計(jì)得到的混 合內(nèi)存的平均功耗也基本不變,但是在這段時(shí)間比如一天內(nèi),該用戶在白天和晚上的使用 習(xí)慣可能存在很大的差異,因而在上述的統(tǒng)計(jì)過(guò)程中并不能把差異性區(qū)分開,從而根據(jù)在 不同的時(shí)間段對(duì)于同一個(gè)用戶完全不同的使用習(xí)慣進(jìn)行統(tǒng)計(jì)學(xué)習(xí)得出各自不同的最優(yōu)遷 徙時(shí)間t,進(jìn)而最大限度地降低混合存儲(chǔ)器的使用功耗。因此我們也可以根據(jù)不同的用戶各 自在不同時(shí)間段對(duì)應(yīng)的不同使用習(xí)慣進(jìn)行統(tǒng)計(jì),比如根據(jù)用戶白天的使用習(xí)慣統(tǒng)計(jì)白天基 于不同數(shù)據(jù)遷徙時(shí)間t產(chǎn)生的不同混合內(nèi)存的平均功耗,根據(jù)用戶晚上的使用習(xí)慣統(tǒng)計(jì)晚 上基于不同數(shù)據(jù)遷徙時(shí)間t產(chǎn)生的不同混合內(nèi)存的平均功耗,最后找出基于不同時(shí)間段的 各個(gè)最優(yōu)數(shù)據(jù)遷徙時(shí)間t。
[0051] 系統(tǒng)中的功耗檢測(cè)/比較模塊不僅可以通過(guò)一段時(shí)間統(tǒng)計(jì)得到當(dāng)前用戶的混合 內(nèi)存的平均功耗,而且當(dāng)功耗檢測(cè)模塊檢測(cè)到用戶的混合內(nèi)存的平均功耗發(fā)生改變,說(shuō)明 用戶的使用習(xí)慣發(fā)生了很大的變化,因此系統(tǒng)會(huì)進(jìn)行自學(xué)習(xí)用戶新的使用習(xí)慣,得到該用 戶在新的使用習(xí)慣下混合內(nèi)存從數(shù)據(jù)接口 IO吞吐量滿足設(shè)定的混合內(nèi)存數(shù)據(jù)接口 IO吞吐 量到進(jìn)行數(shù)據(jù)遷移的最優(yōu)時(shí)間tm。
[0052] 本發(fā)明提出的方法可以根據(jù)用戶的使用習(xí)慣通過(guò)自學(xué)習(xí)得到不同用戶經(jīng)過(guò)一定 時(shí)間統(tǒng)計(jì)得到的最低混合內(nèi)存平均功耗所對(duì)應(yīng)的t值,并存入系統(tǒng)中的非易失性存儲(chǔ)器 中,下次當(dāng)不同用戶登陸系統(tǒng)后可以直接在非易失性存儲(chǔ)器中讀取對(duì)應(yīng)不同用戶的最優(yōu)的 t值,對(duì)混合內(nèi)存加以控制。
[0053] 現(xiàn)在的數(shù)據(jù)遷移的算法和本發(fā)明提出的數(shù)據(jù)遷移的算法的比較如下表1所示:
[0054]
【權(quán)利要求】
1. 一種混合存儲(chǔ)器中數(shù)據(jù)遷移的自學(xué)習(xí)的方法,其特征在于, 提供一混合存儲(chǔ)器,包括第一存儲(chǔ)器和第二存儲(chǔ)器,第二存儲(chǔ)器的擦寫速度小于第一 存儲(chǔ)器; 當(dāng)混合存儲(chǔ)器數(shù)據(jù)接口 10吞吐量小于用戶預(yù)設(shè)的混合存儲(chǔ)器數(shù)據(jù)接口 10吞吐量時(shí), 在經(jīng)過(guò)時(shí)間t后才進(jìn)行數(shù)據(jù)遷移,將第一存儲(chǔ)器的數(shù)據(jù)轉(zhuǎn)入至第二存儲(chǔ)器中; 其中,通過(guò)如下方式獲取t: 選定一個(gè)起始時(shí)間心t。,"當(dāng)t = 時(shí),混合存儲(chǔ)器的平均功耗Pt = Ptstort,選定下一 個(gè)時(shí)間A t,當(dāng)t = A t時(shí),混合存儲(chǔ)器的平均功耗Pt = Pktart+At ; 若Ptstatt+At〉Ptst。^,令t = A t,混合存儲(chǔ)器的平均功耗Pt = 如果 Pt日tart-At〉Pt日tart,表示t=t日tart時(shí),混合存儲(chǔ)器的平均功耗最低;若Pt日tart-At<Pt日tart,令t=tstart-2 At,混合存儲(chǔ)器的平均功耗Pt=Ptstart-2 A t ;若Ptstart-2 A t<Ptstart-A t,令t= t日tart-3At,混合存儲(chǔ)器的平均功耗Pt=Pt日……令t=t日t"t-NAt,混合存儲(chǔ)器的 干均功耗 Pt - 日tart-N A t,右 日tart-N A t〉Pt日tart-(N-l) A t,表不在 t - t日1。。-(N-]_) A t 時(shí),t比合 存儲(chǔ)器的平均功耗最低; 當(dāng)Pt日tar" A t化日tart,令t = t日t"t巧A t,混合存儲(chǔ)器的平均功耗Pt = Pt日A t; 右Pt日tart+2 At〈Pt日t£irt+ A t,令t二t日A t,混合存儲(chǔ)盎的平均功耗Pt = Pt日tart+3 A t ;右 Ptstart巧A t<Pt日tarWAt,令t = t日t"t+4 A t,混合存儲(chǔ)器的平均功耗Pt = Pt日tarwAt……若t = t日t£irt+N A t,混合存儲(chǔ)盎的平均功耗Pt = Pt日t£irt+N A t;右Pt日tiirt+N At〉Pt日t£irt+(N-l) A t,表不在t二 tstsrt+(N-l) A t時(shí),混合存儲(chǔ)器的平均功耗最低; N為正整數(shù),At為自然數(shù)。
2. 如權(quán)利要求1所述的方法,其特征在于,所述第一存儲(chǔ)器為DRAM。
3. 如權(quán)利要求1所述的方法,其特征在于,所述第二存儲(chǔ)器為NCM。
4. 如權(quán)利要求3所述的方法,其特征在于,所述NCM包括磁隨機(jī)存儲(chǔ)器(MRAM)、鐵電 隨機(jī)存儲(chǔ)器(FeRAM)、相變存儲(chǔ)器(PCM)、分子存儲(chǔ)器(Molecular Memory)、聚合物存儲(chǔ)器 (Polymer memoir)、阻變隨機(jī)存儲(chǔ)器(RRAM)。
5. 如權(quán)利要求1所述的方法,其特征在于,通過(guò)一功耗檢測(cè)模來(lái)得到當(dāng)前用戶的混合 內(nèi)存的平均功耗。
6. 如權(quán)利要求1所述的方法,其特征在于,通過(guò)一比較模塊來(lái)對(duì)不同時(shí)間段內(nèi)的混合 內(nèi)存的平均功耗進(jìn)行比較。
7. 如權(quán)利要求5所述的方法,其特征在于,當(dāng)混合存儲(chǔ)器工作在基于之前自學(xué)習(xí)所得 到的最優(yōu)t值狀態(tài)下,當(dāng)功耗檢測(cè)模塊檢測(cè)到用戶的混合存儲(chǔ)器的在某一時(shí)間段內(nèi)的平均 功耗發(fā)生改變,則需重新根據(jù)用戶新的使用習(xí)慣進(jìn)行自學(xué)習(xí)獲取最優(yōu)t值。
8. 如權(quán)利要求1所述的方法,其特征在于,獲取t值之后,將t值存入系統(tǒng)中的非易失 性存儲(chǔ)器中,每當(dāng)不同用戶登陸系統(tǒng)后可W直接在系統(tǒng)中的非易失性存儲(chǔ)器中讀取對(duì)應(yīng)不 同用戶的最優(yōu)的t值,對(duì)混合存儲(chǔ)器加W控制。
9. 如權(quán)利要求1所述的方法,其特征在于,根據(jù)在不同的時(shí)間段對(duì)于同一個(gè)用戶完全 不同的使用習(xí)慣進(jìn)行統(tǒng)計(jì)計(jì)算獲取不同的t值,W降低混合存儲(chǔ)器的使用功耗。
10. 如權(quán)利要求1所述的方法,其特征在于,用戶為一個(gè)PC用戶、一個(gè)手機(jī)用戶或者一 個(gè)數(shù)據(jù)中也的公司用戶。
【文檔編號(hào)】G06F3/06GK104461389SQ201410729004
【公開日】2015年3月25日 申請(qǐng)日期:2014年12月3日 優(yōu)先權(quán)日:2014年12月3日
【發(fā)明者】亢勇, 陳邦明 申請(qǐng)人:上海新儲(chǔ)集成電路有限公司