国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

非易失性存儲(chǔ)器件的性能、可靠性及應(yīng)用

2022-05-28 07:54:42杜亞娟金凱倫王子燁寧新杰
集成技術(shù) 2022年3期
關(guān)鍵詞:失性存儲(chǔ)器比特

杜亞娟 金凱倫 王子燁 寧新杰

1(武漢理工大學(xué)計(jì)算機(jī)與人工智能學(xué)院 武漢 430070)

2(武漢適庫(kù)科技有限公司 武漢 430065)

1 引 言

隨著大數(shù)據(jù)和人工智能時(shí)代的到來(lái),數(shù)據(jù)呈現(xiàn)爆發(fā)式增長(zhǎng),對(duì)數(shù)據(jù)存儲(chǔ)的需求日益加劇?,F(xiàn)有的內(nèi)存技術(shù)已逐漸趨于集成密度的極限,在現(xiàn)有技術(shù)基礎(chǔ)上,無(wú)法持續(xù)擴(kuò)展內(nèi)存容量。此外,若要提升存儲(chǔ)系統(tǒng)性能,須重點(diǎn)考慮現(xiàn)有外存技術(shù)與內(nèi)存技術(shù)之間巨大的性能差異。非易失性存儲(chǔ)器件(Non-Volatile Memory,NVM)的出現(xiàn),使容量密度和性能差異的問(wèn)題有望得到解決。非易失性存儲(chǔ)是一種斷電后數(shù)據(jù)不會(huì)丟失的新型存儲(chǔ)技術(shù)。它具有可按字節(jié)尋址、能耗低、讀寫速度快等優(yōu)良特性,被廣泛研究的 NVM 有相變存儲(chǔ)器(Phase Change Memory,PCM/PRAM)、自旋轉(zhuǎn)移力矩存儲(chǔ)器(Spin Torque Transfer Memory,STT-RAM)、阻變存儲(chǔ)器(Resistive Memory,ReRAM)、鐵電存儲(chǔ)器(Ferroelectric Memory,F(xiàn)eRAM)等。這些存儲(chǔ)器有望替代傳統(tǒng)的動(dòng)態(tài)隨機(jī)存儲(chǔ)器(Dynamic Random Access Memory,DRAM)內(nèi)存技術(shù)。閃存作為固態(tài)硬盤的主要介質(zhì),通常也被歸結(jié)為非易失性存儲(chǔ)器的一種。

但是,非易失性存儲(chǔ)器件還存在一些由介質(zhì)本身引起的不足,例如:(1)使用壽命有限,當(dāng)寫操作達(dá)到一定次數(shù)后,存儲(chǔ)的數(shù)據(jù)就不再可靠;(2)讀寫速度不對(duì)稱,讀速度往往大于寫速度;(3)存儲(chǔ)單元或存儲(chǔ)塊磨損不均衡,由于單元間的讀寫次數(shù)不同,引起磨損不均的問(wèn)題;(4)當(dāng)存儲(chǔ)器損壞時(shí),會(huì)卡在某個(gè)固定數(shù)值上,但由于存儲(chǔ)器的材料限制,有些錯(cuò)誤不能修復(fù),因此,需要針對(duì)不同錯(cuò)誤設(shè)計(jì)糾錯(cuò)或降低錯(cuò)誤的算法。

本文首先闡述了幾種常見(jiàn)的非易失性存儲(chǔ)器的存儲(chǔ)原理;其次,根據(jù)其特點(diǎn)對(duì)現(xiàn)有的一些改進(jìn)技術(shù)進(jìn)行討論;再次,討論它們?cè)?3 種典型場(chǎng)景中的應(yīng)用情況;最后,對(duì)非易失性存儲(chǔ)器件的應(yīng)用前景進(jìn)行總結(jié)與展望。

2 非易失性存儲(chǔ)器件的存儲(chǔ)原理

本節(jié)將對(duì)幾種 NVM 的存儲(chǔ)原理進(jìn)行介紹,主要包括 PCM、STT-RAM、ReRAM、FeRAM和閃存存儲(chǔ)器。

2.1 相變存儲(chǔ)器

PCM 由加熱器、硫化物和兩個(gè)電極組成,底層電極連接加熱器,加熱器連接硫化物(一般為 Ge2Sb2Te5[1]),硫化物再與頂層電極連接(如圖 1 所示)。硫化物經(jīng)過(guò)不同的加熱過(guò)程會(huì)得到兩個(gè)不同狀態(tài):當(dāng)對(duì)需要寫入的單元施加一個(gè)短卻高的電壓時(shí),該硫化物會(huì)加熱到非晶體的狀態(tài)(600 ℃),此時(shí),硫化物的電阻率較高,該過(guò)程對(duì)應(yīng)寫 0(重置操作);當(dāng)對(duì)硫化物施加一個(gè)長(zhǎng)卻低的電壓時(shí),該硫化物會(huì)轉(zhuǎn)化為晶體狀態(tài)(300 ℃),此時(shí),硫化物的電阻率較低,該過(guò)程對(duì)應(yīng)寫 1(寫1 操作)。在兩種狀態(tài)之間,硫化物的電阻為102~104[1]。由于硫化物在兩個(gè)狀態(tài)下的阻值差異較大,當(dāng)選取其間不同的阻值時(shí),就可以使用一個(gè)單元來(lái)存儲(chǔ)多于一個(gè)比特的數(shù)值。如選取其間的 4 個(gè)電阻值,就可以用來(lái)表示 00、01、10、11 這 4 個(gè)數(shù)值。由于 PCM 存在電阻漂移現(xiàn)象,所以選取的電阻值越多,電阻值之間的差異就越小,就越易發(fā)生錯(cuò)誤。

圖1 PCM 構(gòu)造原理圖[1]Fig. 1 PCM structure schematic diagram[1]

與其他非易失性存儲(chǔ)器相比,PCM 的單元最小、擴(kuò)展性最好,但是其壽命卻不是最好的。由于重置操作的高溫會(huì)使相變材料的體積發(fā)生變化,連續(xù)發(fā)生膨脹或收縮會(huì)導(dǎo)致接觸面不平,電極的接觸面積變小(接觸不好)。相變材料還可能與電極材料相互作用形成多余的化合物,從而導(dǎo)致相變材料被污染,縮短存儲(chǔ)器的壽命,即寫操作次數(shù)在 108~109之間。而 PCM 的寫入過(guò)程主要受寫 1 操作的影響,當(dāng)一個(gè)單元中存儲(chǔ)多個(gè)邏輯值時(shí),需要進(jìn)行多次迭代,不同的迭代次數(shù)也會(huì)影響寫入時(shí)間。PCM 的讀延時(shí)在 20~60 ns 之間,寫延時(shí)在 20~150 ns 之間[1]。雖然 PCM 的功耗相對(duì)較低,但是讀寫動(dòng)態(tài)能量較高,尤其是寫能量。

2.2 自旋轉(zhuǎn)移力矩存儲(chǔ)器

SST-RAM 由兩個(gè)磁鐵層和一個(gè)氧化物層組成,其中,兩個(gè)磁鐵層被氧化物層分開(kāi)(如圖 2所示)。下方的磁鐵層有固定的磁化方向,一般將該層稱為參考層;上方的磁鐵層磁化方向可根據(jù)施加在比特線與源線之間的電壓改變,稱為自由層。當(dāng)需要寫入 0 時(shí),在源線與比特線之間施加高正向電壓,導(dǎo)致自由層和參考層的磁化方向相同,呈現(xiàn)低電阻率;當(dāng)需要寫入 1 時(shí),在源線與比特線之間施加高負(fù)向電壓,導(dǎo)致自由層和參考層的磁化方向相反,呈現(xiàn)高電阻率。

圖2 STT-RAM 構(gòu)造原理圖[1]Fig. 2 STT-RAM structure schematic diagram[1]

與其他技術(shù)相比,該技術(shù)更加成熟,且密度高、讀寫速度快、泄漏低、壽命長(zhǎng),寫操作次數(shù)可達(dá) 1012~1016。后續(xù)的自旋軌道矩存儲(chǔ)器(Spin Orbit Torque RAM,SOT-RAM)使用垂直翻轉(zhuǎn),并增加端分隔讀取和寫入操作的途徑,使得讀寫速度更快(讀延遲在 2~35 ns 之間,寫延時(shí)在 3~50 ns之間[1])。雖然 SOT-RAM 的靜態(tài)能耗較低、讀取時(shí)的動(dòng)態(tài)能耗也低,但是寫入時(shí)的能耗很高。

STT-RAM 被視為最有可能替代緩存的技術(shù)。但仍有兩個(gè)不足之處,一是所使用材料具有熱不穩(wěn)定性,易造成數(shù)據(jù)丟失,這可能受連接、溫度、從寫入到最后一次讀取的時(shí)間、內(nèi)存單元數(shù)等因素的影響;二是高寫入電流會(huì)降低交合處的接觸程度,使得接觸面發(fā)生變形,限制 STT-RAM單元結(jié)構(gòu)的完整性。在對(duì)該設(shè)備進(jìn)行讀取時(shí),需要注入一定的電流,故會(huì)對(duì)設(shè)備磁性有所影響。

2.3 阻變存儲(chǔ)器

ReRAM 屬于憶阻器設(shè)備,憶阻器可以根據(jù)施加電壓的大小、極性和持續(xù)時(shí)間改變它的阻值,在斷電時(shí)其阻值不會(huì)發(fā)生改變。當(dāng)憶阻器呈現(xiàn)低阻值時(shí),認(rèn)為此時(shí)存儲(chǔ)的是 1;反之,存儲(chǔ)的是 0。ReRAM 的單元由兩個(gè)金屬導(dǎo)體和夾在導(dǎo)體之間的絕緣體或電阻材料構(gòu)成。其中,頂部和底部的兩個(gè)金屬導(dǎo)體一般使用 TiOx材料,也可使用如 ZrOx和 NiO 之類的材料。當(dāng)施加電壓會(huì)使單元中的絕緣體和電阻材料之間形成導(dǎo)電絲時(shí),該單元為低電阻,即邏輯 1;當(dāng)連接頂部和底部的導(dǎo)電絲中斷時(shí),該單元為高電阻,即邏輯0。ReRAM 構(gòu)造原理圖如圖 3 所示。

圖3 ReRAM 構(gòu)造原理圖[1]Fig. 3 ReRAM structure schematic diagram[1]

ReRAM 的能耗比 PCM 低,尤其是寫入時(shí)的能耗,集成的密度比 STT-RAM 高,且穩(wěn)定性好,最大寫入次數(shù)在 108~1011之間,其讀取速度也很快,讀取延遲近 10 ns,與 SRAM 相似,但其寫入性能較差,寫入延時(shí)近 50 ns[1]。

2.4 鐵電存儲(chǔ)器

組成 FeRAM 的材料是一個(gè)晶體管和鐵電容器。其中,鐵電容器是由兩個(gè)金屬電極和Pb(Zrx,Ti1-x)O3(鋯鈦酸鉛薄膜)組成,鋯鈦酸鉛薄膜在兩個(gè)電極之間,用于存儲(chǔ)電荷。鋯鈦酸鉛薄膜具有鐵磁性,無(wú)須電荷即可保持極性,不同的極性可表示不同的邏輯值,故它具有非易失性。當(dāng)寫入 0 時(shí),需要對(duì)板線施加強(qiáng)制脈沖;當(dāng)寫入 1 時(shí),對(duì)位線施加強(qiáng)制脈沖。施加脈沖時(shí),只須提供與電路供電電壓相同的電壓即可,可減小能耗。FeRAM 構(gòu)造原理圖如圖 4 所示。

圖4 FeRAM 構(gòu)造原理圖[1]Fig. 4 FeRAM structure schematic diagram[1]

FeRAM 比其他 NVM 提前進(jìn)入量產(chǎn),其讀取速度幾乎和 DRAM 相同,在 20~80 ns 之間;寫入速度較慢,在 50~75 ns 之間;能耗校低;不需要先擦除再進(jìn)行寫操作,且無(wú)須進(jìn)行刷新操作,最大寫入次數(shù)為 1014~1015[1]。由于該設(shè)備難以拓展,所以更適用于嵌入式設(shè)備。

2.5 閃存存儲(chǔ)器

閃存存儲(chǔ)器是所有 NVM 中最早投入使用的設(shè)備,也是最早研究、使用的設(shè)備。閃存存儲(chǔ)器的存儲(chǔ)單元由 PNP 型三極管組成,如圖 5 所示。

圖5 閃存存儲(chǔ)器構(gòu)造原理圖[1]Fig. 5 Flash structure schematic diagram[1]

理論上閃存存儲(chǔ)器可讀寫的次數(shù)為 106,其中,與非門閃存的讀寫次數(shù)在 104~105之間,讀速度在 15~34 μs 之間,寫速度在 200~500 μs之間,動(dòng)態(tài)能量和泄漏功率都很低[1]。

3 非易失性存儲(chǔ)器性能

由第 2 節(jié)可知,許多 NVM 的讀寫性能都具有不對(duì)稱性——讀取速度比寫入速度快很多,且讀寫能耗也不同。所以針對(duì) NVM 的讀寫不對(duì)稱問(wèn)題,有研究對(duì) NVM 的讀寫性能進(jìn)行了改進(jìn)。NVM 的讀寫速度比傳統(tǒng)外存快,所以也有研究將NVM 集成到存儲(chǔ)系統(tǒng)中,以提升存儲(chǔ)器的整體讀寫性能。本節(jié)將對(duì) NVM 的讀寫性能進(jìn)行介紹。

3.1 基于存儲(chǔ)介質(zhì)特征的改進(jìn)技術(shù)

增加性能最直接的方法是一次性讀寫多條緩存行,但是一味地增加帶寬不僅會(huì)產(chǎn)生大量能量消耗,而且會(huì)增加硬件成本,壓縮/壓實(shí)能很好地解決這一問(wèn)題。Palangappa 等[2]發(fā)現(xiàn)多級(jí)單元(一個(gè)單元里存放兩個(gè)比特)/三級(jí)單元(一個(gè)單元里存放 3 個(gè)比特)NVM 編程需要進(jìn)行迭代,造成了高能耗和高延遲,故提出壓縮擴(kuò)展編碼技術(shù)。該編碼技術(shù)將頻繁模式壓縮(Frequently Pattern Compression,F(xiàn)PC)/基數(shù)-偏移量-立即數(shù)壓縮與(k,m)q擴(kuò)展碼技術(shù)相結(jié)合,選擇性地將壓縮后的數(shù)據(jù)進(jìn)行拓展,確保拓展后的數(shù)據(jù)對(duì)應(yīng) MLC/TLC 單元的低編碼能量,以減少能量消耗和延時(shí)。(k,m)q擴(kuò)展碼將一組占據(jù)m個(gè)存儲(chǔ)單元的信息(原始信息)映射為一組占據(jù)k個(gè)存儲(chǔ)單元的信息(映射后信息),k大于m。其中,原始信息中每個(gè)單元可以表示q個(gè)狀態(tài),映射后的信息只能表示q個(gè)狀態(tài)中p個(gè)能量較低的狀態(tài)。

Chen 等[3]將 NVM 作為塊設(shè)備使用。他們發(fā)現(xiàn)使用壓縮技術(shù)可以減少成本,但會(huì)增加延遲,而 NVM 具有細(xì)粒度讀寫這一優(yōu)勢(shì),可根據(jù)這一優(yōu)勢(shì)優(yōu)化解壓縮、截?cái)嗉m錯(cuò)碼(Error Correction Codes,ECC)、基于數(shù)據(jù)訪問(wèn)位置的壓實(shí)、頁(yè)內(nèi)增量編碼 4 種技術(shù)。優(yōu)化解壓縮就是對(duì)壓縮與BCD 的解碼完整性檢查并行執(zhí)行,以隱藏解壓縮延遲。在 NVM 中,單個(gè)頁(yè)面受到單個(gè)長(zhǎng) ECC碼的保護(hù),但在訪問(wèn)數(shù)據(jù)時(shí),需要先根據(jù) ECC碼對(duì)數(shù)據(jù)進(jìn)行解碼或者編碼,導(dǎo)致 NVM 無(wú)法進(jìn)行細(xì)粒度的數(shù)據(jù)訪問(wèn),這消除了壓縮帶來(lái)的好處,為此截?cái)?ECC 被提出。截?cái)?ECC 就是截?cái)郋CC 中的無(wú)效部分(假設(shè)系統(tǒng)使用n位 ECC 碼保護(hù)k位的數(shù)據(jù),但是使用n位 ECC 碼的前m位也能保護(hù)k位數(shù)據(jù),那么后面的n-m位就是無(wú)效部分),使 NVM 能進(jìn)行細(xì)粒度讀寫,從而減少延遲。Chen 等[3]發(fā)現(xiàn)壓實(shí)過(guò)程中的數(shù)據(jù)打包和垃圾回收會(huì)增加性能開(kāi)銷,所以提出利用數(shù)據(jù)訪問(wèn)的局部性,只將冷數(shù)據(jù)打包得較為緊湊,而熱數(shù)據(jù)打包得相對(duì)不那么緊湊。Chen 等[3]還發(fā)現(xiàn),數(shù)據(jù)塊的重寫有很強(qiáng)的相似性,而細(xì)粒度的寫可以減少寫的范圍,因此,提出了頁(yè)內(nèi)增量編碼。

Guo 等[4]利用數(shù)據(jù)分布特性獲取的動(dòng)態(tài)模式來(lái)進(jìn)一步加大壓縮率,并借助多級(jí)單元/三級(jí)單元NVM 的不同數(shù)值寫入特性改進(jìn)寫入機(jī)制。利用該方法對(duì)運(yùn)行時(shí)提取到的模式進(jìn)行分析,得到最常用的模式,將這些模式替換 FPC 的靜態(tài)模式,可提高壓縮算法的壓縮率。此外,該方法還拓展了數(shù)據(jù)模式的大小,即加大單個(gè)壓縮的粒度,以減少全 0 行的寫入比特?cái)?shù),并根據(jù)拓展模式選擇合適的壓縮算法。對(duì)于三級(jí)單元 NVM,該方法在一個(gè)單元中存儲(chǔ)兩比特有效數(shù)據(jù),并在每?jī)杀忍赜行?shù)據(jù)的最高位前添加 0 或 1,從而擴(kuò)展為三比特?cái)?shù)據(jù)。加 0 還是加 1 取決于擴(kuò)展后的三比特?cái)?shù)據(jù)所需的編程能量大小,選取能量較小的三比特?cái)?shù)據(jù)作為擴(kuò)展數(shù)據(jù),由此減少寫入能量。

但也有一些技術(shù)會(huì)產(chǎn)生額外的延遲。低密度奇偶校驗(yàn)(Low-Density Parity-Check,LDPC)是一種被廣泛應(yīng)用于閃存以提高糾錯(cuò)能力的技術(shù),然而,LDPC 會(huì)導(dǎo)致讀取性能下降。有研究[5-8]針對(duì) LDPC 進(jìn)行改進(jìn),通過(guò)減少解碼時(shí)間來(lái)提升性能。Du 等[9]發(fā)現(xiàn) LDPC 的讀取級(jí)別與延遲成正比,提出了一種多粒度 LDPC 讀取方法,來(lái)適應(yīng)每一層讀取級(jí)別的增加速度。Du 等[10]考慮將用于提高閃存壽命的刷新概念用來(lái)優(yōu)化閃存讀取性能。該方法利用數(shù)據(jù)讀取特性,提出了一種輕量級(jí)數(shù)據(jù)刷新方法輕量級(jí)數(shù)據(jù)刷新(Lightweight Data Refresh,LDR)——可以積極糾正讀取延遲較長(zhǎng)的讀取熱點(diǎn)頁(yè)面中的錯(cuò)誤,并將無(wú)錯(cuò)誤數(shù)據(jù)重新編程到新頁(yè)面中。Du 等[11]為了避免不必要的重試讀取操作提出了延遲感應(yīng)的低密度奇偶校驗(yàn)(Latency-aware Low-Density Parity-Check,LaLDPC)。由于在 SSD 中會(huì)在相當(dāng)長(zhǎng)的一段時(shí)間內(nèi)都使用相同的讀等級(jí),在此期間,同一頁(yè)中的所有讀取具有相同的讀取級(jí)別,LaLDPC 可利用讀取級(jí)別估計(jì)起始讀取電壓電平,并將其存儲(chǔ)在控制器的閃存轉(zhuǎn)換層中。Du 等[11]還提出一種新的緩存驅(qū)逐算法,以盡可能長(zhǎng)時(shí)間地將具有高讀取級(jí)別的條目留在緩存中。還有一些研究[12-14]針對(duì)垃圾回收算法進(jìn)行改進(jìn),通過(guò)減少垃圾回收時(shí)某些操作的時(shí)間,來(lái)提升性能。

以上研究表明,當(dāng)使用不同的技術(shù)時(shí),會(huì)伴隨多種性能降低的可能,如壓縮帶來(lái)的額外數(shù)據(jù)讀取和解壓縮延遲。當(dāng) NVM 作為內(nèi)存使用時(shí)有容量和持久性的優(yōu)勢(shì),內(nèi)存缺頁(yè)的情況會(huì)減少,可以縮短下一級(jí)向內(nèi)存?zhèn)鬏敂?shù)據(jù)的時(shí)間;NVM作為外存時(shí)可以進(jìn)行細(xì)粒度訪問(wèn)和達(dá)到較快的讀寫速度,來(lái)抵消壓縮帶來(lái)的負(fù)面影響。

3.2 存儲(chǔ)器架構(gòu)集成技術(shù)

由于 NVM 的性能介于 DRAM 內(nèi)存與外部存儲(chǔ)器之間,所以將 NVM 集成到存儲(chǔ)體系結(jié)構(gòu)中可提升存儲(chǔ)系統(tǒng)整體的性能[15-18]。Korgaonkar等[15]發(fā)現(xiàn)增加最后一級(jí)緩存的容量,可減少CPU 和內(nèi)存之間的性能差距,所以將 STT-RAM作為最后一級(jí)緩存,并設(shè)計(jì)了寫擁塞感知繞過(guò)和虛擬混合混存來(lái)消除大部分的正常寫和全部的冗余寫。Kommareddy 等[16]考慮到現(xiàn)在的應(yīng)用對(duì)內(nèi)存的需求很大,而 NVM 的速度不如傳統(tǒng)內(nèi)存,故設(shè)計(jì)了一個(gè)分片式 NVM 內(nèi)存——在每個(gè)計(jì)算節(jié)點(diǎn)中設(shè)置小型的基于高帶寬存儲(chǔ)器或者 DRAM的局部?jī)?nèi)存,而這些節(jié)點(diǎn)共享一個(gè)大的 NVM 內(nèi)存。在分片式 NVM 的基礎(chǔ)上,系統(tǒng)管理方法也進(jìn)行了優(yōu)化,優(yōu)化后會(huì)將盡可能多的熱數(shù)據(jù)停留在局部?jī)?nèi)存中,減少數(shù)據(jù)遷移時(shí)的沖突。Xu 等[19]研究了速度變化對(duì) SSD 并行性能的影響,并建立一種新的具有閃存層信息意識(shí)的排隊(duì)時(shí)間估計(jì)模型,該模型評(píng)估 SSD 各個(gè)芯片的排隊(duì)時(shí)間,從而將請(qǐng)求定向到排隊(duì)時(shí)間最少的芯片。

Patil 等[20]比較了 4 種不同的 DRAM-NVM混合內(nèi)存系統(tǒng),其中,NVM 使用的是基于 PCM的設(shè)備。第一種是將 NVM 作為主存,并未用到 NVM 的非易失性;第二種是將 NVM 作為持久性存儲(chǔ)設(shè)備,DRAM 作為主存;第三種將DRAM 和 NVM 作為混存,一部分 NVM 作為主存,而 NVM 剩下的部分作為持久性存儲(chǔ)設(shè)備;第四種將 NVM 與 DRAM 都作為內(nèi)存,并統(tǒng)一尋址。最終發(fā)現(xiàn),當(dāng) DRAM 和 NVM 一起作為混存使用時(shí),既可以保證 DRAM-NVM 混合內(nèi)存系統(tǒng)具有與傳統(tǒng)系統(tǒng)一樣的性能,又可以增加內(nèi)存容量。當(dāng) NVM 作為主存時(shí)(例如第一種和第三種情況),雖然會(huì)降低讀寫速度,但是能夠大量減少能量消耗。

Park 等[21]提出了一種基于多分區(qū)新內(nèi)存控制器和子系統(tǒng):將 DRAM 與 PCM 進(jìn)行集成,其中 DRAM 作為緩存以隱藏底層 PCM 模塊所施加的長(zhǎng)延時(shí),且支持持久性操作,分區(qū)的設(shè)計(jì)提供了非阻塞讀服務(wù)(允許在寫入內(nèi)存的同時(shí)進(jìn)行多個(gè)讀取操作,以減少讀寫延遲)。Li 等[22]將多級(jí)單元 PCM 作為塊設(shè)備集成到系統(tǒng)中,多級(jí)單元PCM 有兩種寫入操作,一種是快速但易失的寫入,另一種是慢速但非易失的寫入。該文基于這兩種寫入模式提出了一種編譯器定向雙寫方案。該方案首先對(duì)每個(gè)內(nèi)存寫入指令的壽命(從該指令寫入內(nèi)存到最后一次讀取所經(jīng)過(guò)的時(shí)間)進(jìn)行分析,然后根據(jù)分析結(jié)果選擇寫入模式,并根據(jù)寫入模式將指令插入要編譯的代碼,為每個(gè)內(nèi)存寫入指令選擇最佳寫入模式,以權(quán)衡寫入延時(shí)和停留時(shí)間。

Zhang 等[23]提出了一種原始誤碼率感知的多傳感方案,該方案可用于減少傳感和傳輸延遲,從而提高讀取性能。Li 等[24]發(fā)現(xiàn)選擇性地降低電壓可以減少讀取干擾,所以提出了一種讀取熱度感知降低電壓的方案,該方案在不違反可靠性要求的前提下,可提高存儲(chǔ)器性能。

上述研究表明,無(wú)論是將 NVM 集成作為混存還是主存,都會(huì)面臨性能上的挑戰(zhàn),在設(shè)計(jì)系統(tǒng)時(shí),如何利用混合內(nèi)存或者混合緩存避免增加延時(shí)是關(guān)鍵。此外,在設(shè)計(jì)系統(tǒng)時(shí),可以考慮利用 NVM 的非易失性、能耗低、易于集成等優(yōu)點(diǎn)來(lái)減少系統(tǒng)的性能開(kāi)銷。

4 非易失性存儲(chǔ)器壽命及可靠性

如第 1 節(jié)所述,每次寫入時(shí),NVM 都會(huì)產(chǎn)生磨損,所以 NVM 的寫入次數(shù)有限,這是一個(gè)急需解決的問(wèn)題。本節(jié)將從減少比特翻轉(zhuǎn)、減少寫入次數(shù)、糾錯(cuò)碼、磨損均衡和其他技術(shù)這 5 個(gè)方面進(jìn)行討論。

4.1 減少比特翻轉(zhuǎn)

根據(jù)不同 NVM 的寫入原理可以發(fā)現(xiàn),每次寫入都會(huì)對(duì)構(gòu)成 NVM 的寫入單元造成破壞,所以在單次寫入時(shí),若能減少對(duì)每個(gè)單元的比特翻轉(zhuǎn)(置 0 或者置 1 操作),就可以增加 NVM 的壽命。Cho 等[25]提出的 Flip-N-Write 主要利用“讀-修改-寫”替換寫操作和選擇性翻轉(zhuǎn)?!白x-修改-寫”操作可以在舊數(shù)據(jù)和新數(shù)據(jù)的位邏輯值相同時(shí),跳過(guò)寫入。在進(jìn)行選擇性翻轉(zhuǎn)時(shí),統(tǒng)計(jì)在“讀-修改-寫”操作后寫入新數(shù)據(jù)時(shí)必須翻轉(zhuǎn)的位的數(shù)量,當(dāng)翻轉(zhuǎn)的位數(shù)超過(guò)存儲(chǔ)器字寬的一半時(shí),就翻轉(zhuǎn)要寫入的新數(shù)據(jù),這樣位翻轉(zhuǎn)的數(shù)量就永遠(yuǎn)小于字寬的一半。改變字寬可以在不同程度上減少位翻轉(zhuǎn),字寬越小,減少效果越好。Chen 等[26]提出了一種壓縮技術(shù)——基于算術(shù)編碼的技術(shù),用合適的浮點(diǎn)數(shù)替換需要存儲(chǔ)的數(shù)據(jù),有效地減少了比特翻轉(zhuǎn)。即先統(tǒng)計(jì)寫入中不同字符出現(xiàn)的次數(shù),計(jì)算出現(xiàn)的概率,隨后在[0,1)區(qū)間內(nèi)尋找概率相應(yīng)的子區(qū)間,只需從子區(qū)間選擇一個(gè)浮點(diǎn)數(shù)表示該輸入即可。由此,算法可以從中挑選與舊數(shù)據(jù)相比翻轉(zhuǎn)位數(shù)最少的浮點(diǎn)數(shù)來(lái)替換輸入的新數(shù)據(jù),從而減少比特翻轉(zhuǎn)。

Dgien 等[27]提出的架構(gòu)使用 FPC 壓縮算法、一個(gè)比較器來(lái)減少比特寫入。首先使用 FPC 對(duì)寫入的數(shù)據(jù)進(jìn)行壓縮的同時(shí),內(nèi)存控制器會(huì)讀取當(dāng)前位于內(nèi)存中目標(biāo)地址處的舊數(shù)據(jù)。然后當(dāng)壓縮完成時(shí),比較器逐位對(duì)新舊數(shù)據(jù)進(jìn)行對(duì)比,以確定數(shù)據(jù)會(huì)發(fā)生翻轉(zhuǎn)的比特,寫入時(shí)只更新發(fā)生翻轉(zhuǎn)的比特的位置,以此減少位的寫入。Kargar等[28]提出將 DRAM 與 NVM 集成作為混合內(nèi)存的漢明樹(shù),這是一種使用現(xiàn)有索引進(jìn)行擴(kuò)充的輔助數(shù)據(jù)結(jié)構(gòu),可用于任何一種基于樹(shù)的數(shù)據(jù)結(jié)構(gòu)。該結(jié)構(gòu)將兩種內(nèi)存映射到單個(gè)物理地址空間上,尋找與要寫入的新數(shù)據(jù)最相似的舊數(shù)據(jù)的位置,將寫操作定向到內(nèi)存位置,從而最大限度地減少位翻轉(zhuǎn)次數(shù)。

Bittman 等[29]分析了減少位翻轉(zhuǎn)對(duì) NVM 性能的影響,并根據(jù)這些影響對(duì)異或鏈表、異或哈希表、異或紅黑樹(shù)這幾種減少位翻轉(zhuǎn)的技術(shù)進(jìn)行測(cè)試,并作討論。Bittman 等通過(guò)研究發(fā)現(xiàn),減少位翻轉(zhuǎn)可以對(duì)數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)、程序操作、混存層產(chǎn)生影響。異或鏈表是一種雙向鏈表設(shè)計(jì),每個(gè)節(jié)點(diǎn)不存儲(chǔ)前一個(gè)節(jié)點(diǎn)和下一個(gè)節(jié)點(diǎn)的位置,而是存儲(chǔ)前一節(jié)點(diǎn)位置和下一節(jié)點(diǎn)位置的異或(頭尾節(jié)點(diǎn)存儲(chǔ)相鄰節(jié)點(diǎn)完整的指針值),可以利用異或結(jié)果減少位翻轉(zhuǎn)。異或哈希表是將異或鏈表運(yùn)用到哈希的同列表中,此時(shí)運(yùn)用的異或鏈表不存儲(chǔ)上一個(gè)節(jié)點(diǎn)和下一個(gè)節(jié)點(diǎn)的異或值,而是存儲(chǔ)當(dāng)前節(jié)點(diǎn)和下一個(gè)節(jié)點(diǎn)的異或值。此外,異或哈希表還允許下一個(gè)指針的最低有效位為 1 或者將數(shù)據(jù)指針設(shè)置為空來(lái)標(biāo)記空鏈表。異或紅黑樹(shù)與異或鏈表使用相同技術(shù)來(lái)減少位翻轉(zhuǎn)。

已有的減少位翻轉(zhuǎn)的技術(shù)都是先利用“讀-修改-寫”技術(shù),再通過(guò)改變寫入的數(shù)據(jù)或位置以減少位翻轉(zhuǎn)次數(shù)。如使用壓縮、擴(kuò)展數(shù)據(jù)、翻轉(zhuǎn)數(shù)據(jù)、對(duì)特殊結(jié)構(gòu)進(jìn)行特定操作等技術(shù)改變寫入的數(shù)據(jù)?;蛟S還可以利用其他技術(shù)對(duì)數(shù)據(jù)進(jìn)行改變,從而減少位翻轉(zhuǎn)。鑒于 MLC NVM 的寫入特性,也有研究甚至忽略位翻轉(zhuǎn)數(shù)量,而是選擇幾個(gè)能量低的狀態(tài)進(jìn)行寫入,以減少寫入能量。

4.2 減少寫入次數(shù)

除減少每次寫入時(shí)需要修改的比特?cái)?shù)之外,減少整體的寫入次數(shù)也是一種增加 NVM 壽命的方法。在 NVM 進(jìn)行集成時(shí),許多研究都使用了緩存技術(shù)和寫回技術(shù),當(dāng)中央處理器發(fā)出存儲(chǔ)指令時(shí),指令中要存儲(chǔ)的數(shù)據(jù)不會(huì)直接寫入 NVM,而是先將數(shù)據(jù)寫回緩存,等緩存溢出時(shí),再寫回 NVM。由于數(shù)據(jù)的局部性,許多寫入都是對(duì)同一個(gè)緩存行進(jìn)行的,所以在該緩存行被驅(qū)逐出緩存前,所有對(duì)該緩存行的寫入都會(huì)在緩存中進(jìn)行合并,這樣可大量減少 NVM 的寫入次數(shù)。Qureshi 等[30]提出了將 DRAM 與 NVM 集成作為混合內(nèi)存的模型:將 DRAM 作為 NVM的緩沖,負(fù)責(zé)存儲(chǔ)熱頁(yè),當(dāng)觸發(fā)缺頁(yè)時(shí),處理程序只把獲取的頁(yè)面發(fā)送到 DRAM。只有當(dāng)頁(yè)面從DRAM 中被驅(qū)逐時(shí),才會(huì)被寫入 NVM 中,并且該模型還在 DRAM 與 NVM 之間增加了寫緩存,當(dāng)數(shù)據(jù)從 DRAM 寫入 NVM 時(shí),該模型使用緩存行粒度,僅將修改過(guò)的緩存行寫回 NVM,從而進(jìn)一步減少了寫次數(shù)。此外,還設(shè)計(jì)了頁(yè)面級(jí)的繞過(guò)技術(shù),當(dāng)頁(yè)面重用性很差時(shí),不會(huì)被寫入NVM。

Ni 等[31]發(fā)現(xiàn),為了保證正常關(guān)機(jī)后系統(tǒng)的一致性而使用的日志記錄和影子分頁(yè)技術(shù),都會(huì)記錄同一頁(yè)面中不進(jìn)行操作的緩存行,會(huì)對(duì)NVM 造成額外的寫,所以提出了優(yōu)化的影子分頁(yè)技術(shù)——利用虛擬內(nèi)存的間接性來(lái)避免記錄實(shí)際數(shù)據(jù)。該技術(shù)在每個(gè)有效頁(yè)面都使用緊湊的緩存行級(jí)別的映射,使每個(gè)虛擬頁(yè)面與兩個(gè)物理頁(yè)面相關(guān)聯(lián),當(dāng)進(jìn)行寫入時(shí),其中一個(gè)物理頁(yè)面存儲(chǔ)的是相關(guān)聯(lián)的虛擬頁(yè)面修改前的一致?tīng)顟B(tài),而另一個(gè)物理頁(yè)面存儲(chǔ)的是相關(guān)聯(lián)的虛擬頁(yè)面在緩存行修改后的狀態(tài)。優(yōu)化后的影子分頁(yè)技術(shù),會(huì)大大減少額外寫操作。

Zhang 等[32]發(fā)現(xiàn)多級(jí)單元相變存儲(chǔ)器會(huì)出現(xiàn)電阻漂移現(xiàn)象,不同的寫入次數(shù)會(huì)產(chǎn)生不同的延遲和不同的停留時(shí)間。迭代次數(shù)越少,延時(shí)越短,出現(xiàn)電阻漂移的時(shí)間越短,停留時(shí)間也越短。對(duì)于頻繁寫入的區(qū)域而言,更新數(shù)據(jù)的時(shí)間短、次數(shù)多,所以僅需數(shù)據(jù)短時(shí)間的停留和快速地寫入。基于此,該文章分區(qū)域?qū)Φ螖?shù)進(jìn)行了研究,對(duì)于頻繁寫入的區(qū)域進(jìn)行迭代次數(shù)較少的寫入,對(duì)于不頻繁寫入的區(qū)域進(jìn)行迭代次數(shù)較多的寫入。

減少寫入次數(shù)的方法多種多樣,合并寫入就是常見(jiàn)的一種。除了減少正常寫入,有時(shí)系統(tǒng)和運(yùn)行的程序中也會(huì)存在不需要的寫入,如果能探測(cè)到這種寫入并刪除,就可以減少寫入次數(shù)。

4.3 糾錯(cuò)碼技術(shù)

對(duì)于已經(jīng)出錯(cuò)的單元,使用 ECC 技術(shù)能夠在一定錯(cuò)誤率范圍內(nèi)進(jìn)行修正,從而使這些出錯(cuò)的單元能夠重用,延長(zhǎng) NVM 的壽命,最常用的為BCH 碼。若要檢驗(yàn)的錯(cuò)誤數(shù)量為n,BCH 碼需要 1 個(gè)不會(huì)被分解的多項(xiàng)式(本原多項(xiàng)式p(x))和(n-1)個(gè)其余多項(xiàng)式(p3(x),p5(x)…p2n-3(x)),其余多項(xiàng)式在賦值xn后要能整除本原多項(xiàng)式,n對(duì)應(yīng)其余多項(xiàng)式的底標(biāo),即pn(xn)對(duì)本原多項(xiàng)式取余為 0,將本原多項(xiàng)式和其余多項(xiàng)式相乘就能得到編碼多項(xiàng)式。在發(fā)出信息時(shí),發(fā)送的信息需要乘以編碼多項(xiàng)式,然后將相乘后的結(jié)果發(fā)出,需要檢驗(yàn)時(shí),將接收到的信息除以本原多項(xiàng)式,若余數(shù)為 0,就表明沒(méi)有出錯(cuò)。根據(jù)余數(shù)的狀態(tài),進(jìn)行一系列較為復(fù)雜的運(yùn)算,就可以檢測(cè)出具體出錯(cuò)的地方。奇偶檢驗(yàn)也是較常用的一種技術(shù),它利用冗余位(會(huì)根據(jù)數(shù)據(jù)位的數(shù)量而改變)進(jìn)行糾錯(cuò)。奇校驗(yàn)就是檢查發(fā)送信息中 1 的個(gè)數(shù),當(dāng)1 的個(gè)數(shù)為奇數(shù)時(shí),就將冗余位設(shè)置為 0,否則設(shè)置為 1。漢明碼作為奇偶校驗(yàn)的升級(jí)版,在編碼后的數(shù)據(jù)中,2 的冪次位上的數(shù)據(jù)為奇偶校驗(yàn)位,其根據(jù)數(shù)據(jù)的二進(jìn)制索引位置,將數(shù)據(jù)與奇偶校驗(yàn)位進(jìn)行對(duì)應(yīng),奇偶校驗(yàn)針對(duì)分到數(shù)據(jù)中 1的個(gè)數(shù)置 1 或置 0。在檢驗(yàn)錯(cuò)誤時(shí),只需要再次對(duì)數(shù)據(jù)進(jìn)行奇偶校驗(yàn),就可得到錯(cuò)誤的位置。但是,使用 ECC 技術(shù)會(huì)帶來(lái)一些開(kāi)銷,所以有研究利用 NVM 的特性對(duì) ECC 進(jìn)行改進(jìn)。

Kwon 等[33]發(fā)現(xiàn)多級(jí)單元 NVM 由于電阻漂移會(huì)引入許多軟錯(cuò)誤,所以需要 ECC 來(lái)進(jìn)行糾正。該文提出了一個(gè)可靠的多級(jí)單元 PCM 架構(gòu),其利用電阻漂移產(chǎn)生的數(shù)據(jù)相關(guān)性來(lái)減少ECC 開(kāi)銷,并與 BCH 編碼技術(shù)相結(jié)合?;诙嗉?jí) PCM 電阻漂移的特點(diǎn)——電阻漂移引起的狀態(tài)變化只會(huì)有一比特,且能確定是由什么狀態(tài)漂移成的什么狀態(tài)(通常電阻高的漂移稱作比它電阻低一級(jí)的狀態(tài)),該架構(gòu)生成 BCH 碼時(shí)只需要考慮其中一位。該架構(gòu)使用簡(jiǎn)單的 2 比特到 1 比特狀態(tài)映射生成虛擬數(shù)據(jù),生成的數(shù)據(jù)大小僅為原始數(shù)據(jù)的一半,將生成的數(shù)據(jù)用于校驗(yàn),減少了由 BCH 碼產(chǎn)生的附加位。在進(jìn)行數(shù)據(jù)讀取時(shí),BCH 碼會(huì)檢驗(yàn)數(shù)據(jù),當(dāng)發(fā)現(xiàn)錯(cuò)誤時(shí),就可根據(jù)漂移的屬性來(lái)進(jìn)行還原。

Lu 等[34]發(fā)現(xiàn)使用 ECC 會(huì)產(chǎn)生大量的存儲(chǔ)空間,提出了漸進(jìn)式 ECC 技術(shù)。該技術(shù)只為每個(gè)數(shù)據(jù)字配備奇偶校驗(yàn)位以檢測(cè)故障,當(dāng)檢查到數(shù)據(jù)字中第一個(gè)錯(cuò)誤位時(shí),才會(huì)對(duì)數(shù)據(jù)字配備ECC,并使用糾錯(cuò)技術(shù)修復(fù)錯(cuò)誤位,然后在 ECC DRAM 中分配該校驗(yàn)條目。Kim 等[35]發(fā)現(xiàn)當(dāng)重復(fù)讀取 PCM 單元時(shí),會(huì)發(fā)生讀取干擾,常規(guī)的解決方法是定期清理單元,但這種方式需要讀取計(jì)數(shù)器來(lái)計(jì)算每個(gè)字的讀取次,較為費(fèi)時(shí)。針對(duì)常規(guī)解決方法的缺陷,該文提出了一種按需清理技術(shù),不需讀取計(jì)數(shù)器,可利用 ECC 來(lái)觀察單詞中發(fā)生錯(cuò)誤的次數(shù),當(dāng)且僅當(dāng)錯(cuò)誤的次數(shù)大于閾值時(shí),才執(zhí)行清理來(lái)修復(fù)錯(cuò)誤。

與其他技術(shù)相比,ECC 技術(shù)發(fā)展得較為完善,可在 SSD 中運(yùn)用的 ECC 相關(guān)技術(shù)也可直接用于 NVM。對(duì) NVM 而言,ECC 的問(wèn)題就是占用內(nèi)存較多,或許可以考慮結(jié)合壓縮技術(shù)解決該問(wèn)題。

4.4 磨損均衡技術(shù)

在一個(gè)存儲(chǔ)部件中,不同單元的寫入次數(shù)是不一樣的,這取決于該單元中存儲(chǔ)數(shù)據(jù)的熱度。存儲(chǔ)熱數(shù)據(jù)的單元由于讀寫次數(shù)明顯高于存儲(chǔ)冷數(shù)據(jù)的單元,所以受到的磨損程度更大,損壞也越快。當(dāng)損壞塊超過(guò)一定數(shù)量時(shí),該存儲(chǔ)器隨之損壞。磨損均衡技術(shù)就是盡可能地平均每一個(gè)單元的損壞程度,從而避免有的單元已經(jīng)損壞,但是仍有單元進(jìn)行讀寫的次數(shù)很少。磨損均衡算法的大體思想就是避免一直對(duì)同一個(gè)地址進(jìn)行數(shù)據(jù)寫入,該算法一般與壓縮技術(shù)相結(jié)合。Dgien 等[27]提出利用機(jī)會(huì)主義磨損均衡器來(lái)減少 NVM 單元的峰值位寫入,該方法通過(guò)壓縮技術(shù)獲得額外空間,并有條件地將壓縮數(shù)據(jù)寫入 NVM 整列字的另一端來(lái)減少磨損。

Liu 等[36]提出了一種基于空間遺忘壓縮和磨損均衡的內(nèi)存框架,通過(guò)壓縮后的可用內(nèi)存空間來(lái)實(shí)現(xiàn)塊內(nèi)磨損均衡策略。該框架在數(shù)據(jù)的初始存儲(chǔ)空間內(nèi),輪換壓縮數(shù)據(jù)塊的寫入位置,從而均衡每個(gè) NVM 單元的寫入。其首先將內(nèi)存塊均勻地劃分為 4 個(gè)部分——“00”、“01”、“11”、“10”,然后利用地址旋轉(zhuǎn)算法從不同部分的起始字節(jié)開(kāi)始存儲(chǔ),從而達(dá)到均衡磨損的目的。具體存儲(chǔ)的開(kāi)始位置由是否壓縮、前一個(gè)地址標(biāo)簽和壓縮數(shù)據(jù)的大小決定。該算法的原理是在上述 4 個(gè)開(kāi)始地址之間迭代旋轉(zhuǎn)地址標(biāo)簽,為了減少磨損,迭代的順序?yàn)?00-01-11-10。

4.5 其他技術(shù)

除上述方法外,還有一些可增加 NVM 設(shè)備壽命的方法。Soltani 等[37]提出了一種用于容忍 PCM 存儲(chǔ)加密數(shù)據(jù)時(shí)卡住故障的方法。該方法利用由高級(jí)加密標(biāo)準(zhǔn)(AES)編碼的加密數(shù)據(jù)的隨機(jī)特性以及旋轉(zhuǎn)移位操作,可使大量具有固定故障的存儲(chǔ)位置來(lái)正確存儲(chǔ)數(shù)據(jù)。一般地,若 PCM 已經(jīng)磨損,那么就會(huì)永久停留在 0 或1 上,而 AES 數(shù)據(jù)之間的隨機(jī)性很高,數(shù)據(jù)經(jīng)AES 加密后,就能將數(shù)據(jù)進(jìn)行循環(huán)移位或翻轉(zhuǎn),大概率地匹配已經(jīng)磨損單元的值。若生成的加密數(shù)據(jù)無(wú)法與磨損單元進(jìn)行匹配,也可以重新生成加密數(shù)據(jù)。

Liu 等[36]發(fā)現(xiàn)許多應(yīng)用程序的內(nèi)存塊通常包含大量的 0 字節(jié)和頻繁值,所以提出先將都是 0的重復(fù)數(shù)據(jù)刪除,再進(jìn)行頻繁值壓縮,以減少NVM 單個(gè)單元上的寫入次數(shù)。0 重復(fù)數(shù)據(jù)刪除就是使用比特圖去編碼和定位全是 0 的內(nèi)存塊,當(dāng)對(duì)應(yīng)塊全是 0 時(shí),就將比特圖中對(duì)應(yīng)的位置置為 1。頻繁值壓縮就是找到內(nèi)存中應(yīng)用較頻繁的值,利用值碼對(duì)應(yīng)表對(duì)其進(jìn)行編碼(編碼長(zhǎng)度小于值長(zhǎng)度),當(dāng)進(jìn)行解壓縮時(shí),就從值碼對(duì)應(yīng)表中尋找編碼對(duì)應(yīng)的值,從而進(jìn)行還原。

5 產(chǎn)業(yè)應(yīng)用

NVM 已經(jīng)被運(yùn)用在多種應(yīng)用場(chǎng)景中。本節(jié)將對(duì) NVM 的 3 種應(yīng)用場(chǎng)景進(jìn)行介紹,分別是日志結(jié)構(gòu)合并樹(shù)(Log Structured Merge Tree,LSMtree)、神經(jīng)網(wǎng)絡(luò)和語(yǔ)意事務(wù)。

5.1 在日志結(jié)構(gòu)合并樹(shù)上的應(yīng)用

Yao 等[38]使用 DRAM-NVM-SSD 的存儲(chǔ)結(jié)構(gòu),根據(jù) NVM 的特性,對(duì)基于 LSM-tree 的鍵值存儲(chǔ)進(jìn)行了改進(jìn)。LSM-tree 可存儲(chǔ)多級(jí)的鍵值項(xiàng),每一級(jí)的數(shù)量呈指數(shù)增加。但是,基于LSM-tree 的鍵值存儲(chǔ)存在兩個(gè)明顯的缺陷,一是在 L0和 L1(最上面兩層)之間存在寫入停頓的現(xiàn)象,二是寫放大會(huì)隨著 LSM-tree 深度的增加而增加。寫入停頓會(huì)導(dǎo)致應(yīng)用層序吞吐量周期性地下降,直至接近于 0,導(dǎo)致長(zhǎng)尾延時(shí),降低用戶體驗(yàn)感。產(chǎn)生寫入停頓的主要原因是 L0沒(méi)有排序,所以 L0與 L1之間的壓縮會(huì)涉及兩層的所有數(shù)據(jù)。針對(duì)該問(wèn)題,Yao 等[38]提出了 4 種新的技術(shù):(1)將 L0從 SSD 移至 NVM 中,提出用矩陣容器重新定位和管理 NVM 中的 L0,由于 NVM具有按字節(jié)尋址和快速隨機(jī)訪問(wèn)的能力,而改進(jìn)后的行表使用 NVM 頁(yè)作為基本單元,所以該結(jié)構(gòu)允許 L0和 L1之間更細(xì)粒度的數(shù)據(jù)遷移;(2)設(shè)計(jì)了新的列壓縮,通過(guò)在細(xì)粒度的鍵范圍內(nèi)壓縮 L0至 L1的數(shù)據(jù),減少壓縮的數(shù)據(jù)量;(3)增加每個(gè)級(jí)別的寬度,以減小 LSM-tree 的深度,從而減小了寫入放大;(4)針對(duì)矩陣容器引入跨行提示搜索,即在 L0對(duì)行表進(jìn)行排序,不同的行表使用不同的鍵范圍進(jìn)行覆蓋,在構(gòu)建行表時(shí),為元數(shù)據(jù)排序數(shù)組中的每個(gè)元素添加向前指針,以保證足夠的讀取性能。改進(jìn)本身結(jié)構(gòu)后,利用NVM 的非易失性,將寫前日志寫入 NVM,數(shù)據(jù)寫入 DRAM。當(dāng)讀取數(shù)據(jù)時(shí),由于 NVM 比傳統(tǒng)的外存設(shè)備的讀寫速度更快,所以讀取數(shù)據(jù)的時(shí)間也更短。Hu 等[39]針對(duì)壓縮給 LSM-tree 帶來(lái)的尾延遲進(jìn)行改進(jìn)分析,提出有限壓縮,即只允許部分層級(jí)參與壓縮來(lái)改善性能。

5.2 NVM 在神經(jīng)網(wǎng)絡(luò)上的應(yīng)用

Yu 等[40]總結(jié)了利用 NVM 設(shè)備進(jìn)行神經(jīng)啟發(fā)計(jì)算的最新技術(shù)、挑戰(zhàn)和前景。神經(jīng)啟發(fā)架構(gòu)能夠有效解決片上存儲(chǔ)和片外存儲(chǔ)之間顯著的性能差異。神經(jīng)網(wǎng)絡(luò)的訓(xùn)練分為離線訓(xùn)練(使用軟件進(jìn)行訓(xùn)練,利用一次性編程,將訓(xùn)練好的權(quán)重加載到神經(jīng)形態(tài)硬件的突觸陣列中,然后僅在硬件上進(jìn)行推理或分類)和在線訓(xùn)練(運(yùn)行時(shí),在神經(jīng)形態(tài)硬件上完成訓(xùn)練,權(quán)重是動(dòng)態(tài)的)。NVM的集成密度高,利用它替代 SRAM,可將更多權(quán)重存儲(chǔ)在片上,從而減少對(duì)片外存儲(chǔ)器的訪問(wèn)。利用 NVM 的電阻交叉桿替換 SRAM 陣列,還可進(jìn)行并行編程和加權(quán)求和,使存儲(chǔ)進(jìn)一步加速,從而有可能實(shí)現(xiàn)在線訓(xùn)練。PCM 在 0 和 1 兩種狀態(tài)下的電阻差異較大,所以可以充當(dāng)模擬突觸,該模型存在的問(wèn)題是重置操作過(guò)程快,難以控制。由于 ReRAM 的寫 1 和寫 0 操作與 PCM相反,所以寫操作需要漸進(jìn)。FeRAM 組成的突觸件是一種三端結(jié)構(gòu),可將權(quán)重調(diào)諧和權(quán)重讀取路徑解耦,與 ReRAM 的模擬突觸器件相比,它有更大的開(kāi)/關(guān)比、更短的編程脈沖寬度,以及更小的權(quán)重更新曲線變化。

5.3 結(jié)合語(yǔ)義事務(wù)的應(yīng)用

Ramalhete 等[41]發(fā)現(xiàn)當(dāng)出現(xiàn)非破壞性故障時(shí),將事物語(yǔ)義與持久技術(shù)相結(jié)合,數(shù)據(jù)能始終保持在持久性內(nèi)存中。Ramalhete 等[41]對(duì)柵欄、刷新的數(shù)量和內(nèi)存使用進(jìn)行了權(quán)衡,提出兩種新算法(Trinity 和 Quadra)用于持久性內(nèi)存上的持久事物。Quadra 將持久性柵欄數(shù)量的下限變低,并為每個(gè)修改的緩存線執(zhí)行一條刷新指令。Trinity為每個(gè)事物執(zhí)行兩條 Fences 操作,該算法易與基于細(xì)粒度鎖定的并發(fā)控制技術(shù)相結(jié)合,將其與事務(wù)鎖 II 算法適配集成在一起,可實(shí)現(xiàn)急切鎖定和直寫更新策略。此外,將 Trinity 和事務(wù)鎖 II 算法組合到持久性事物內(nèi)存中,從而為具有不相交訪問(wèn)模式的數(shù)據(jù)結(jié)構(gòu)和工作負(fù)載提供了良好的可擴(kuò)展性,并能對(duì)持久化線性事務(wù)實(shí)現(xiàn)鍵值存儲(chǔ)。

6 總結(jié)與展望

通過(guò)相關(guān)調(diào)查研究發(fā)現(xiàn),NVM 技術(shù)的應(yīng)用前景十分廣闊。然而,由于 NVM 的介質(zhì)特性、可靠性、持久性等特性,直接使用 NVM 或?qū)⑵渑c其他存儲(chǔ)設(shè)備進(jìn)行集成時(shí),仍存在一定挑戰(zhàn)。此外,現(xiàn)有應(yīng)用大多基于傳統(tǒng)存儲(chǔ)器設(shè)計(jì),更適用于傳統(tǒng)存儲(chǔ)系統(tǒng)。如何基于 NVM 的特性,設(shè)計(jì)適用于該硬件的應(yīng)用或軟件系統(tǒng),是當(dāng)前亟須考慮的問(wèn)題。本文闡述了 NVM 的技術(shù)背景、現(xiàn)有優(yōu)化工作和應(yīng)用前景,為促進(jìn) NVM 的廣泛應(yīng)用和量產(chǎn)提供了強(qiáng)有力的支撐。

NVM 相關(guān)技術(shù)的未來(lái)發(fā)展趨勢(shì)主要總結(jié)為3 個(gè)方面:(1)新型或改進(jìn)后的 NVM 技術(shù)將大量涌現(xiàn)。在具體應(yīng)用中,由于現(xiàn)有的 NVM 技術(shù)仍存在一些不足,其發(fā)展之路任重道遠(yuǎn)。(2)結(jié)合NVM 設(shè)備特點(diǎn),應(yīng)用應(yīng)針對(duì) NVM 的特有訪問(wèn)模式進(jìn)行革新。在讀寫延遲和功耗等方面,由于新型 NVM 技術(shù)與傳統(tǒng)存儲(chǔ)技術(shù)存在較大差異,改進(jìn)應(yīng)用訪問(wèn)模式或?qū)O大挖掘 NVM 技術(shù)潛力。(3)存儲(chǔ)架構(gòu)的革新。當(dāng) NVM 技術(shù)發(fā)展到一定階段后,其性能和存儲(chǔ)容量?jī)?yōu)勢(shì)極大凸顯,存儲(chǔ)架構(gòu)也將進(jìn)一步突破現(xiàn)有的馮·諾伊曼系統(tǒng)架構(gòu),如內(nèi)外存一體化技術(shù)、存算一體技術(shù)和內(nèi)存計(jì)算技術(shù)等新型存儲(chǔ)架構(gòu)將取得進(jìn)一步的發(fā)展。

猜你喜歡
失性存儲(chǔ)器比特
面向非易失性內(nèi)存的持久索引數(shù)據(jù)結(jié)構(gòu)研究綜述
一種面向非易失性內(nèi)存文件系統(tǒng)的數(shù)據(jù)讀寫粒度控制策略
靜態(tài)隨機(jī)存儲(chǔ)器在軌自檢算法
比特幣還能投資嗎
海峽姐妹(2017年10期)2017-12-19 12:26:20
比特幣分裂
比特幣一年漲135%重回5530元
銀行家(2017年1期)2017-02-15 20:27:20
非易失性納米晶存儲(chǔ)器的研究
詩(shī)性
——史性——失性——試論《白鹿原》及其話劇和電影改編
大眾文藝(2016年7期)2016-01-27 11:18:22
存儲(chǔ)器——安格爾(墨西哥)▲
蘋果封殺比特幣應(yīng)用另有隱情?
大宁县| 广安市| 赞皇县| 宝清县| 宜兴市| 顺义区| 都安| 华亭县| 江山市| 阿克苏市| 汕头市| 康保县| 林周县| 融水| 昌邑市| 连州市| 博乐市| 阿合奇县| 海门市| 黑河市| 临清市| 韶关市| 得荣县| 勐海县| 南丹县| 平阴县| 分宜县| 成安县| 柞水县| 盐亭县| 林口县| 宜川县| 肥东县| 晴隆县| 庆元县| 仁怀市| 郯城县| 隆子县| 乐都县| 敦化市| 大洼县|