本發(fā)明涉及混合內(nèi)存領(lǐng)域,尤其涉及一種解決混合內(nèi)存讀延遲不確定性的方法。
背景技術(shù):
現(xiàn)有技術(shù)中采用混合內(nèi)存的方式提高DRAM的性能,降低刷新功耗,方法是為DRAM添加非易失性的新型存儲器(New Concept Memory, NCM)。在DRAM非繁忙狀態(tài)下將存儲在 DRAM尾端分布區(qū)的存儲單元中的數(shù)據(jù)轉(zhuǎn)移至新型存儲器中,然后提高DRAM刷新周期,從而能夠大大降低DRAM的刷新功耗,提高DRAM的性能。對混合存儲器讀操作的實現(xiàn)方式可通過地址查找轉(zhuǎn)換表來存儲DRAM地址和NCM地址的映射關(guān)系,通過對DRAM讀操作地址的匹配查找,根據(jù)匹配結(jié)果控制數(shù)據(jù)輸出來自DRAM或NCM。申請?zhí)枮镃N201510808165.6的發(fā)明申請公開的技術(shù)方案解決了如何對混合內(nèi)存中的NCM進(jìn)行寫操作。
由于存儲級存儲器(Storage Class Memory,SCM)的讀延遲與DRAM有非常大的不同,實際上,SCM的讀延遲是DRAM的4倍,這使得SCM的讀取無法兼容原始的DDR協(xié)議,因此,在LPDDR和移動設(shè)備的應(yīng)用場景中,必須考慮如何解決SCM的讀延遲太大的問題。另一個問題是讀延遲的不確定性,在讀操作中,如果被讀取的數(shù)據(jù)來自SCM,那么,常規(guī)的DRAM時序是無法滿足的,因為當(dāng)前的DDR協(xié)議只支持確定的讀取和寫入的時序,這種不確定的讀延遲將會在數(shù)據(jù)總線上造成沖突。
因此,本領(lǐng)域的技術(shù)人員致力于開發(fā)一種解決混合內(nèi)存讀延遲不確定性的方法。
技術(shù)實現(xiàn)要素:
有鑒于現(xiàn)有技術(shù)的上述缺陷,本發(fā)明所要解決的技術(shù)問題是如何解決SCM的讀延遲太大和不確定性問題。
為實現(xiàn)上述目的,本發(fā)明提供了一種解決混合內(nèi)存讀延遲不確定性的方法,包括提供一包括通信連接的DRAM和SCM的混合內(nèi)存,所述DRAM按照存儲單元保持時間包括主要分布區(qū)和尾端分布區(qū),將暴讀(Read-heavy)數(shù)據(jù)放入將被SCM替換的DRAM尾端分布區(qū),且所述混合內(nèi)存中預(yù)存有地址查找轉(zhuǎn)換表,所述地址查找轉(zhuǎn)換表中包括發(fā)生替換存儲的所述 DRAM地址和所述SCM地址的映射項。
進(jìn)一步地,所述SCM采用兩個單元每位技術(shù)。
進(jìn)一步地,所述兩個單元每位技術(shù)采用差分讀取,SCM編程過程被配置為使得兩個差分單元的表征相反邏輯狀態(tài)的物理狀態(tài)盡可能地區(qū)分開,以便加速存儲位邏輯值的獲得。
進(jìn)一步地,所述SCM為PCM或ReRAM或MRAM。
本發(fā)明還提供了一種解決混合內(nèi)存讀延遲不確定性的方法,包括提供一包括通信連接的DRAM和SCM的混合內(nèi)存,所述DRAM按照存儲單元保持時間包括主要分布區(qū)和尾端分布區(qū),將暴寫(Write-heavy)數(shù)據(jù)放入將被SCM替換的DRAM尾端分布區(qū),且所述混合內(nèi)存中預(yù)存有地址查找轉(zhuǎn)換表,所述地址查找轉(zhuǎn)換表中包括發(fā)生替換存儲的所述 DRAM地址和所述SCM地址的映射項。
進(jìn)一步地,所述PCM為基于Ge-Sb-Te技術(shù),并通過提高Sb的百分比來提高PCM的轉(zhuǎn)換速度。
進(jìn)一步地,在數(shù)據(jù)中心服務(wù)器的空閑狀態(tài)時,周期性地恢復(fù)SCM數(shù)據(jù)。
進(jìn)一步地于,如果SCM必須被讀,則可以重用“頁錯誤中斷”,帶尾端存儲位的地址將被MMU識別成“頁丟失”,從而產(chǎn)生一個特定的中斷。
進(jìn)一步地,在中斷處理程序中,特定的tRAS將被配置在存儲控制器的參數(shù)寄存器中替代默認(rèn)值,然后在SCM上的那個頁地址將被訪問,訪問結(jié)束后,默認(rèn)的tRAS將被重新配置回去進(jìn)行后續(xù)的DRAM訪問。
解決內(nèi)存瓶頸和功耗瓶頸不是一件容易的事情,但是通過各個方面的交叉努力,如工藝配方,存儲器新型設(shè)計,結(jié)構(gòu)創(chuàng)新,系統(tǒng)支持等,還是存在可能的機會,甚至無需更改DRAM,存儲控制器和操作系統(tǒng)。隨著DRAM和SCM在頁讀延遲上的差別減小,在一個固定周期內(nèi)的PCM訪問差別將會消失。
具體實施方式
為了讓具備本項發(fā)明所屬領(lǐng)域常規(guī)知識的人員輕松實施本項發(fā)明,對本項發(fā)明的實例進(jìn)行詳細(xì)說明。但本項發(fā)明可按照不同的形態(tài)實施,不僅僅局限于在此說明的實例。
在本項發(fā)明的整個說明書中,某一個部分與另一個部分的“連接”,不僅包括“直接連接”,還包括通過其他元器件相連的“電氣性連接”。
在本項發(fā)明的整個說明書中,某一個部件位于另一個部件的“上方”,不僅包括某一個部件與另一個部件相接處的狀態(tài),還包括兩個部件之間還設(shè)有另一個部件的狀態(tài)。
在本項發(fā)明的整個說明書中,某個部分“包括”某個構(gòu)成要素是指,在沒有特別禁止器材的前提下,并不是排除其他構(gòu)成要素,而是還能包括其他構(gòu)成要素。
在本項發(fā)明的整個說明書中采用的程度用語“約”、“實質(zhì)上”等, 如果提示有制造及物質(zhì)容許誤差,就表示相應(yīng)數(shù)值或接近該數(shù)值;其目的是,防止不良人員將涉及準(zhǔn)確數(shù)值或絕對數(shù)值的公開內(nèi)容用于不當(dāng)用途。在本項發(fā)明的整個說明書中使用的程度用語“~(中的)階段”或“~的階段”,并不是“為了~的階段”。
本說明書中的‘部件’是指,由硬件構(gòu)成的單元(unit)、由軟件構(gòu)成的單元、由軟件和硬件構(gòu)成的單元。
另外,一個單元可由兩個以上的硬件構(gòu)成或者兩個以上的單元由一個硬件構(gòu)成。本說明書中,通過終端、裝置或設(shè)備實施的操作或功能,其中的一部分可利用與相應(yīng)終端、裝置或設(shè)備相連的服務(wù)器代替實施。同樣,通過服務(wù)器實施的操作或功能,其中的一部分也可以利用與該服務(wù)器相連的終端、裝置或設(shè)備代替實施。
下面對本發(fā)明做進(jìn)一步詳細(xì)的闡述:
由于SCM的訪問延遲比DRAM大,因此,無論串行還是并行,存儲控制器必須重新設(shè)計來支持混合存儲器構(gòu)架。舉例來說,和DDR4標(biāo)準(zhǔn)協(xié)議并不完全兼容的DDR4擴展協(xié)議據(jù)說用來支持3DxPoint作為主存儲器。當(dāng)然,混合存儲器要被工業(yè)界接受還存在很大障礙,但是,由于基于多DRAM少SCM的混合存儲器,超高容量的SCM并不是目標(biāo)。如果尾端存儲單元的IO級數(shù)據(jù)已經(jīng)存在于SCM的讀緩存中,這便不會影響保持時間敏感的混合存儲器(Retention-Aware Hybrid Main Memory, RAHMM)的性能,也就是說在DRAM的某一行上的要被SCM替代的尾端存儲單元的IO級數(shù)據(jù)必須全部被分配在SCM中的某一頁上。如果超出了SCM的頁長度,則DRAM的那行應(yīng)當(dāng)被無效。于是在RAHMM的優(yōu)點和DRAM的無效行中存在一個平衡點,這個數(shù)字將會非常小。
最壞情況是被訪問的尾端存儲單元的IO級數(shù)據(jù)都不在SCM的讀緩存中。因此,對于最壞情況,需要更長的tRAS或頁讀延遲。比如,對于一個8Gb DDR SDRAM,最小的tRAS是32ns,而對于一個4GB PCM,頁讀延遲是50ns。因此,基于這兩個工業(yè)界的數(shù)據(jù),下面來解釋,在暴讀和暴寫的情況下,如何在不改變存儲控制器的情況下支持RAHMM:
暴讀(read-heavy)情況:
當(dāng)使用兩單元每位(2 cell per bit)技術(shù)設(shè)計小密度SCM時,對兩個單元采用差分讀取將大大提高SCM的讀取性能。舉例來說,如果兩個PCM或ReRAM單元被設(shè)計成表示一個存儲位,在任何時候,一個單元被編程處于高阻態(tài),如1M歐,而另一個為低阻態(tài),如3k歐。在差分讀取的過程中,兩個單元上的巨大的電流差將很快被翻譯成這個存儲位的邏輯值。于此同時,利用隱藏緩存策略(Hidden Buffer Strategy)的優(yōu)勢,在SCM編程上可以花費更多時間來使得兩個差分單元的阻值盡可能地區(qū)分開,以便加速差分讀取的操作。1.56x的頁讀延遲可以縮減幾乎一半,如減至32ns。同時,利用“數(shù)據(jù)重排”技術(shù),將“比較暴讀”的數(shù)據(jù)移出SCM,把它們分配到尾端存儲單元的DRAM行中,因此寫SCM的可能性將大大下降,甚至沒有?!白畋┳x”的數(shù)據(jù)仍存儲和安排在沒有尾端存儲單元的DRAM行中。結(jié)合兩單元每位技術(shù)、隱藏緩存策略以及“數(shù)據(jù)重排”,可以提高RAHMM的性能,減小RAHMM的功耗,甚至不改變當(dāng)前主內(nèi)存接口協(xié)議。另外,讀延遲幾乎和DRAM一樣的MRAM,也可以被用來作為SCM使用。
暴寫(write-heavy)情況:
總所周知,SCM的寫延遲是個大問題,但是這樣的結(jié)論是基于SCM的數(shù)據(jù)保持必須像傳統(tǒng)的Flash(10年)?;贕e-Sb-Te的PCM中增加Sb的比例將極大地加快轉(zhuǎn)換速度??焖俚木幊趟俣纫馕吨^低的寫功耗,但是數(shù)據(jù)保持將變得非常短,如6個月,但這不是個大問題,在數(shù)據(jù)中心服務(wù)器的空閑狀態(tài)時,可以周期性地恢復(fù)SCM數(shù)據(jù)。將“比較暴寫”的數(shù)據(jù)分配到尾端存儲單元的DRAM行中,因此讀SCM的可能性將大大下降,甚至沒有?!白畋憽钡臄?shù)據(jù)仍存儲和安排在沒有尾端存儲單元的DRAM行中。如果SCM必須被讀,則可以重用“頁錯誤中斷”,這些帶尾端存儲位的地址將被MMU識別成“頁丟失”,從而產(chǎn)生一個特定的中斷。在中斷處理程序中,如50ns tRAS,將被配置在存儲控制器的參數(shù)寄存器中替代默認(rèn)值,然后在RAHMM上的那個頁地址將被訪問,訪問結(jié)束后,默認(rèn)的 32ns tRAS將被重新配置回去進(jìn)行后續(xù)的DRAM訪問。由于讀SCM的機會非常低,因此對性能的影響可以被忽略。
前面所述的本項發(fā)明相關(guān)說明只限于某一個實例;只要是具備本項發(fā)明所屬技術(shù)領(lǐng)域的常規(guī)知識,在無需變更本項發(fā)明技術(shù)性思想或者必要特點,就能將本項發(fā)明變更為其他形態(tài)。因此,前面所述的實例涵蓋本項發(fā)明的任何一種實施形態(tài),并不僅僅局限于本說明書中的形態(tài)。例如,定義為單一型的各構(gòu)成要素可分散實施;同樣,定義為分散的構(gòu)成要素,也能以結(jié)合形態(tài)實施。
本項發(fā)明的范疇并不局限于上述詳細(xì)說明,可涵蓋后面所述的專利申請范圍;從專利申請范圍的定義、范圍以及同等概念中導(dǎo)出的所有變更或者變更形態(tài)均包括在本項發(fā)明的范疇內(nèi)。