一種混合內(nèi)存寫操作的實(shí)現(xiàn)方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及內(nèi)存寫操作技術(shù)領(lǐng)域,尤其涉及一種混合內(nèi)存寫操作的實(shí)現(xiàn)方法。
【背景技術(shù)】
[0002]在過去幾十年,動(dòng)態(tài)隨機(jī)存儲(chǔ)器(DRAM)成本隨著摩爾定律不斷降低變得越來越普遍。但隨著特征尺寸越來越小,芯片對(duì)功耗的要求越來越高,DRAM存儲(chǔ)電容漏電現(xiàn)象導(dǎo)致每隔一段時(shí)間就必須刷新一次,刷新功耗越來越大,如圖1所示,DRAM的刷新功耗隨著DRAM容量的增加而進(jìn)一步增加。而DRAM的刷新周期是由其存儲(chǔ)單元中電荷的保持時(shí)間決定的,保持時(shí)間分布主要包括兩部分,參見圖2所示結(jié)構(gòu),一部分是主要分布區(qū)(maindistribut1n),另一部分為尾端分布區(qū)(tail distribut1n),從圖中可以看出,大多數(shù)存儲(chǔ)單元的保持時(shí)間可以達(dá)到Is甚至更長時(shí)間,而只有不足1%的存儲(chǔ)單元分布在尾端,它們的保持時(shí)間低于ls,甚至不到100ms。然而決定DRAM刷新時(shí)間的恰恰是分布在尾端的保持?jǐn)?shù)據(jù)能力最差的存儲(chǔ)單元(tail bit)。目前,DRAM存儲(chǔ)芯片的刷新周期為64ms,128ms,256ms等。由于執(zhí)行刷新操作時(shí)操作系統(tǒng)時(shí)不能夠?qū)RAM進(jìn)行訪問,因此,刷新操作不僅會(huì)產(chǎn)生刷新功耗,同時(shí)也會(huì)降低DRAM性能。
[0003]為了解決這個(gè)問題,現(xiàn)有技術(shù)中采用混合內(nèi)存的方式,添加非易失性的新型存儲(chǔ)器,如圖3所示,在DRAM非繁忙狀態(tài)下將存儲(chǔ)在DRAM尾端分布區(qū)的存儲(chǔ)單元中的數(shù)據(jù)轉(zhuǎn)移至新型存儲(chǔ)器中,然后提高DRAM刷新周期,從而能夠大大降低DRAM的刷新功耗,提高DRAM的性能。對(duì)混合存儲(chǔ)器讀操作的實(shí)現(xiàn)方式可通過地址查找轉(zhuǎn)換表來存儲(chǔ)DRAM地址和NCM(新型存儲(chǔ)器)地址的映射關(guān)系,參見圖4所示結(jié)構(gòu)示意圖,通過對(duì)DRAM讀操作地址的匹配查找,根據(jù)匹配結(jié)果控制數(shù)據(jù)輸出來自DRAM或NCM。美中不足的是,這種技術(shù)方案仍需解決的一個(gè)問題是如何對(duì)混合內(nèi)存中的NCM進(jìn)行寫操作。由于NCM的寫操作遠(yuǎn)遠(yuǎn)慢于DRAM,如果由操作系統(tǒng)執(zhí)行對(duì)NCM寫操作會(huì)使混合內(nèi)存整體性能降低。
[0004]為了提高NCM的寫操作速度,目前的一種解決辦法就是為NCM添加寫緩沖器(buffer)。如果采用獨(dú)立式的寫緩沖器芯片,好處是對(duì)NCM寫操作不受時(shí)間限制,而且緩沖的數(shù)據(jù)深度也沒有限制,但缺點(diǎn)是成本太高,存儲(chǔ)在NCM中數(shù)據(jù)很少,寫操作也很少,因此在性能上也是一種浪費(fèi)。如果NCM芯片內(nèi)部集成一定容量的寫緩沖器,NCM芯片成本會(huì)上升,同時(shí)緩沖器數(shù)據(jù)深度也會(huì)受到限制。
[0005]因此,如何在不影響緩沖器數(shù)據(jù)深度的前提下提高混合內(nèi)存的寫操作速度,同時(shí)不增加NCM芯片的成本成為本領(lǐng)域技術(shù)人員面臨的一大難題。
【發(fā)明內(nèi)容】
[0006]鑒于上述問題,本發(fā)明提出了一種混合內(nèi)存寫操作的實(shí)現(xiàn)方法,通過重復(fù)使用DRAM被替換的尾端分布區(qū)的存儲(chǔ)空間,將其作為NCM的寫緩沖器,極大簡化了電路設(shè)計(jì)與實(shí)現(xiàn),并且能夠避免操作系統(tǒng)直接對(duì)NCM進(jìn)行寫操作,也就是隱藏了 NCM寫操作,因而避免了由NCM寫操作帶來的混合內(nèi)存的系統(tǒng)性能的降低,該技術(shù)方案具體為:
[0007]一種混合內(nèi)存寫操作的實(shí)現(xiàn)方法,所述實(shí)現(xiàn)方法包括:
[0008]提供一包括通信連接的DRAM和NCM的混合內(nèi)存,所述DRAM按照存儲(chǔ)單元保持時(shí)間包括主要分布區(qū)和尾端分布區(qū),DRAM尾端分布區(qū)存儲(chǔ)單元中的數(shù)據(jù)由NCM替換存儲(chǔ),且所述混合內(nèi)存中預(yù)存有地址查找轉(zhuǎn)換表,所述地址查找轉(zhuǎn)換表中包括發(fā)生替換存儲(chǔ)的所述DRAM地址和所述NCM地址的映射項(xiàng);
[0009]所述混合內(nèi)存接收寫數(shù)據(jù)指令,首先將所述寫數(shù)據(jù)寫入所述DRAM的第一地址中,并將所述DRAM的第一地址傳送至所述地址查找轉(zhuǎn)換表中,并判斷所述DRAM的第一地址是否存在于所述地址查找轉(zhuǎn)換表中映射項(xiàng)標(biāo)識(shí)位為有效的對(duì)應(yīng)于DRAM的地址列表中;如果不存在,則結(jié)束寫操作;如果存在,繼續(xù)下面的操作;
[0010]根據(jù)所述地址查找轉(zhuǎn)換表判斷所述第一地址對(duì)應(yīng)的第一映射項(xiàng)的讀狀態(tài)是否有效,若有效,控制模塊將所述地址查找轉(zhuǎn)換表中的所述DRAM的第一地址和NCM的第二地址所在的映射項(xiàng)的讀狀態(tài)設(shè)置為無效,且添加寫標(biāo)識(shí)位,并將對(duì)所述NCM的第二地址的寫操作添加到NCM的寫操作隊(duì)列中;
[0011]在設(shè)定的時(shí)間段內(nèi),將DRAM的第一地址中的數(shù)據(jù)寫入NCM的第二地址中的存儲(chǔ)單元中;
[0012]將所述地址查找轉(zhuǎn)換表中的DRAM的第一地址和NCM的第二地址所在映射項(xiàng)的讀狀態(tài)設(shè)置為有效,去除寫狀態(tài)標(biāo)識(shí)信息。
[0013]優(yōu)選的,所述實(shí)現(xiàn)方法中,若所述第一地址對(duì)應(yīng)的第一映射項(xiàng)的讀狀態(tài)無效,則放棄此次寫操作之前對(duì)所述NCM的第二地址的寫操作。
[0014]優(yōu)選的,所述實(shí)現(xiàn)方法中,判斷得出DRAM的地址對(duì)應(yīng)的第一映射項(xiàng)的讀狀態(tài)無效后的操作還包括:
[0015]更新所述映射項(xiàng)的寫狀態(tài)標(biāo)識(shí)位,將所述NCM的第二地址的寫操作設(shè)置為較低優(yōu)先級(jí)。
[0016]優(yōu)選的,所述實(shí)現(xiàn)方法中,將所述第二NCM的地址的寫操作設(shè)置為較低優(yōu)先級(jí)后的步驟還包括:
[0017]在預(yù)定的時(shí)間段內(nèi),將DRAM的第一地址中的數(shù)據(jù)寫入NCM的第二地址中的存儲(chǔ)單元中。
[0018]優(yōu)選的,所述實(shí)現(xiàn)方法中,將DRAM的第一地址中的數(shù)據(jù)寫入NCM的第二地址中的存儲(chǔ)單元后的步驟還包括:
[0019]將所述地址查找轉(zhuǎn)換表中配置有DRAM的第一地址和NCM的第二地址的映射項(xiàng),所述映射項(xiàng)的讀狀態(tài)設(shè)置為有效,去除寫狀態(tài)標(biāo)識(shí)信息。
[0020]上述技術(shù)方案具有如下優(yōu)點(diǎn)或有益效果:
[0021]通過本技術(shù)方案,有效實(shí)現(xiàn)了在不影響緩沖器數(shù)據(jù)深度的前提下提高混合內(nèi)存的寫操作速度,同時(shí)不增加NCM芯片的成本,節(jié)約了操作系統(tǒng)開支,利于量產(chǎn)。
【附圖說明】
[0022]參考所附附圖,以更加充分的描述本發(fā)明的實(shí)施例。然而,所附附圖僅用于說明和闡述,并不構(gòu)成對(duì)本發(fā)明范圍的限制。
[0023]圖1為DRAM刷新功耗的比重及趨勢示意圖;
[0024]圖2a_2b為DRAM保持時(shí)間分布示意圖;
[0025]圖3為混合內(nèi)存結(jié)構(gòu)示意圖;
[0026]圖4為現(xiàn)有技術(shù)中混合內(nèi)存讀操作的實(shí)現(xiàn)結(jié)構(gòu)示意圖;
[0027]圖5本本發(fā)明實(shí)施例中混合內(nèi)存寫操作實(shí)現(xiàn)的流程圖;
[0028]圖6為本發(fā)明實(shí)施例中混合內(nèi)存寫操作的實(shí)現(xiàn)結(jié)構(gòu)示意圖;
[0029]圖7本本發(fā)明實(shí)施例中地址查找轉(zhuǎn)化表示意圖;
[0030]圖8-11本發(fā)明一具體實(shí)施例實(shí)現(xiàn)混合內(nèi)存寫造成的過程結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0031]為了讓具備本項(xiàng)發(fā)明所屬領(lǐng)域常規(guī)知識(shí)的人員輕松實(shí)施本項(xiàng)發(fā)明,參照下面所示的附圖,對(duì)本項(xiàng)發(fā)明的實(shí)例進(jìn)行詳細(xì)說明。但,本項(xiàng)發(fā)明可按照不同的形態(tài)實(shí)施,不僅僅局限于在此說明的實(shí)例。為了更加明確地說明本項(xiàng)發(fā)明,省略了圖紙中與說明無關(guān)的部分;而且,在整個(gè)說明書中,向類似部分賦予類似的圖紙符號(hào)。
[0032]在本項(xiàng)發(fā)明的整個(gè)說明書中,某一個(gè)部分與另一個(gè)部分的“連接”,不僅包括“直接連接”,還包括通過其他元器件相連的“電氣性連接”。
[0033]在本項(xiàng)發(fā)明的整個(gè)說明書中,某一個(gè)部件位于另一個(gè)部件的“上方”,不僅包括某一個(gè)部件與另一個(gè)部件相接處的狀態(tài),還包括兩個(gè)部件之間還設(shè)有另一個(gè)部件的狀態(tài)。
[0034]在本項(xiàng)發(fā)明的整個(gè)說明書中,某個(gè)部分“包括”某個(gè)構(gòu)成要素是指,在沒有特別禁止器材的前提下,并不是排除其他構(gòu)成要素,而是還能包括其他構(gòu)成要素。
[0035]在本項(xiàng)發(fā)明的整個(gè)說明書中采用的程度用語“約”、“實(shí)質(zhì)上”等,如果提示有制造及物質(zhì)容許誤差,就表示相應(yīng)數(shù)值或接近該數(shù)值;其目的是,防止不良人員將涉及準(zhǔn)確數(shù)值或絕對(duì)數(shù)值的公開內(nèi)容用于不當(dāng)用途。在本項(xiàng)發(fā)明的整個(gè)說明書中使用的程度用語“?(中的)階段”或“?的階段”,并不是“為了?的階段”。
[0036]本說明書中的‘部件’是指,由硬件構(gòu)成的單元(unit )、由軟件構(gòu)成的單元、由軟件和硬件構(gòu)成的單元。
[0037]另外,一個(gè)單元可由兩個(gè)以上的硬件構(gòu)成或者兩個(gè)以上的單元由一個(gè)硬件構(gòu)成。本說明書中,通過終端、裝置或設(shè)備實(shí)施的操作或功能,其中的一部分可利用與相應(yīng)終端、裝置或設(shè)備相連的服務(wù)器代替實(shí)施。同樣,通過服務(wù)器實(shí)施的操作或功能,其中的一部分也可以利用與該服務(wù)器相連的終端、裝置或設(shè)備代替實(shí)施。接下來,參照附圖,對(duì)本項(xiàng)發(fā)明的實(shí)例進(jìn)行詳細(xì)說明。
[0038]如下根據(jù)附圖對(duì)本發(fā)明做進(jìn)一步詳細(xì)的闡述:
[0039]本發(fā)明對(duì)混合內(nèi)存的寫操作具體實(shí)現(xiàn)如圖5所示:
[0040]步驟1:操作系統(tǒng)向混合內(nèi)存發(fā)送寫數(shù)據(jù)命令,寫數(shù)據(jù)地址為addrl_X,一方面,數(shù)據(jù)直接寫至DRAM地址為addrl_x中的存儲(chǔ)單元中,另一方面寫數(shù)據(jù)地址addrl_x傳送到地址查找轉(zhuǎn)換表中。執(zhí)行步驟2。
[0041 ]步驟2:判斷地址addrl_x是否存在于地址查找轉(zhuǎn)換表(1)中映射項(xiàng)標(biāo)識(shí)位為有效的對(duì)應(yīng)于DRAM的地址列表:如果是,執(zhí)行步驟4;如果否,執(zhí)行步驟3。
[0042]步驟3:寫操作結(jié)束,控制模塊(2)對(duì)NCM不進(jìn)行寫操作操作。
[0043]步驟4:判斷地址addrl_x所對(duì)應(yīng)的映射項(xiàng)X的讀狀態(tài)位是否為有效:如果是,執(zhí)行步驟6;如果否,執(zhí)行步驟5。
[0044]步驟5:放棄此前對(duì)地址查找轉(zhuǎn)換表(1)中對(duì)應(yīng)于DRAM地址addrl_x的NCM地址為addr2_x的寫操作,更新映射項(xiàng)x的寫狀態(tài)標(biāo)識(shí)位,將對(duì)NCM地址為addr2_x的寫操作設(shè)置為較低優(yōu)先級(jí)。執(zhí)行步驟7。
[0045]步驟6:控制模塊(2)將地址查找轉(zhuǎn)換表中DRAM地址為addrl_x和NCM地址為addr2_X所在映射項(xiàng)X的讀狀態(tài)位設(shè)置為無效,添加寫狀態(tài)標(biāo)識(shí)位,即將對(duì)NCM地址為addr2_x的寫操作添加到NCM寫操作隊(duì)列中。
[0046]步驟7:在Trrf(即DRAM地址addrl_x所對(duì)應(yīng)的最小刷新周期)時(shí)間范圍內(nèi),控制模塊
(2)將DRAM地址為addrl_x中的數(shù)據(jù)寫至NCM地址為addr2_x中的存儲(chǔ)單元中,一旦成功寫入,那么重新將地址查找轉(zhuǎn)換表(1)中DRAM地址為addrl_x和NCM地址為addr2_x所在映射項(xiàng)X的讀狀態(tài)位設(shè)置為有效,并且可以去除寫狀態(tài)標(biāo)識(shí)位信息。
[0047]本發(fā)明上述混合內(nèi)存寫操作的實(shí)現(xiàn)方法中,實(shí)際上是復(fù)用了DRAM被替換的尾端分布區(qū)的存儲(chǔ)空間來充當(dāng)NCM的“寫緩存器”,因而避免了操作系統(tǒng)直接對(duì)NCM直接進(jìn)行寫操作,又不增加額外的硬件開銷成本。本發(fā)明可以利用DRAM被替換的尾端分布區(qū)的存儲(chǔ)空間來作為寫緩沖器,一個(gè)前提條件就是對(duì)NCM—次寫操作的延遲時(shí)間T?要小于DRAM的最小刷新周期Tref。這個(gè)條件一般是能夠滿足的,以相