內(nèi)容提要:
首先,數(shù)據(jù)爆炸性增長使當(dāng)今的存儲(chǔ)系統(tǒng)面臨嚴(yán)峻挑戰(zhàn)。圖靈獎(jiǎng)獲得者Gim Gray曾提出“數(shù)據(jù)摩爾定律”,即“人類每18個(gè)月產(chǎn)生的信息量,是人類之前全部信息量的總和”。隨著大數(shù)據(jù)和云計(jì)算的發(fā)展,我們對(duì)存儲(chǔ)的需求量也非常之大。根據(jù)統(tǒng)計(jì),2019年全球產(chǎn)生的數(shù)據(jù)量已經(jīng)達(dá)到了41ZB,2025年預(yù)計(jì)將達(dá)到175ZB(1ZB=1百萬PB=10億TB=1021字節(jié))。如此多的數(shù)據(jù),如何存儲(chǔ)以及快速訪問是數(shù)據(jù)存儲(chǔ)領(lǐng)域亟待解決的問題。
其次,從國家需求來看,數(shù)據(jù)存儲(chǔ)也需要自主創(chuàng)新。作為數(shù)據(jù)的載體,數(shù)據(jù)存儲(chǔ)是新基建中最為基本的組成部分,也是關(guān)系國計(jì)民生和國家戰(zhàn)略安全的關(guān)鍵基礎(chǔ)設(shè)施。但目前國內(nèi)的存儲(chǔ)系統(tǒng)98%以上都是采用國外的存儲(chǔ)芯片和硬盤,如Seagate,Western Digital的硬盤和Samsung,Micron的存儲(chǔ)芯片。最近幾年,包括長江存儲(chǔ)等國內(nèi)企業(yè)都在部署存儲(chǔ)芯片,如長江存儲(chǔ)今年推出了128層的閃存等。這些產(chǎn)業(yè)化發(fā)展的突破和進(jìn)展,也讓我們看到了我國數(shù)據(jù)存儲(chǔ)領(lǐng)域自主可控的希望。
第三,從全球存儲(chǔ)市場(chǎng)來看,數(shù)據(jù)存儲(chǔ)產(chǎn)業(yè)市場(chǎng)龐大。根據(jù)Gartner發(fā)布的相關(guān)統(tǒng)計(jì)數(shù)據(jù),如圖1所示為全球半導(dǎo)體存儲(chǔ)器的市場(chǎng)營收狀況。圖2所示為全球半導(dǎo)體細(xì)分市場(chǎng)狀況。
圖1 全球半導(dǎo)體存儲(chǔ)器市場(chǎng)營收狀況(單位:億美元)Figure 1 Revenue of the global semiconductor memory market(unit:US$100 million)
圖2 全球半導(dǎo)體市場(chǎng)細(xì)分狀況Figure 2 Segmentation of the global semiconductor market
可以看出,存儲(chǔ)器是全球最大的半導(dǎo)體細(xì)分市場(chǎng)。2016年~2018年全球半導(dǎo)體存儲(chǔ)器市場(chǎng)營收的年均復(fù)合增長率為40%。2018年市場(chǎng)營收超過1500億美元,其中中國的市場(chǎng)規(guī)模超過4000億人民幣(進(jìn)口)。受中美貿(mào)易爭端及存儲(chǔ)器價(jià)格下降影響,2019年全球半導(dǎo)體市場(chǎng)營收出現(xiàn)暫時(shí)萎縮。根據(jù)統(tǒng)計(jì),中國占有全球超過40%的半導(dǎo)體存儲(chǔ)器市場(chǎng),但存儲(chǔ)芯片的自給率只有8%。2020年長江存儲(chǔ)的64層256Gb 3D NAND已經(jīng)開始量產(chǎn),未來希望有更多的自主芯片。
大數(shù)據(jù)時(shí)代,對(duì)存儲(chǔ)的要求是高性能、可擴(kuò)展、低能耗、低延遲、高安全、高可靠以及數(shù)據(jù)長久保存。大數(shù)據(jù)時(shí)代對(duì)存儲(chǔ)的需求推動(dòng)了存儲(chǔ)技術(shù)發(fā)展。
1.2.1 專用大數(shù)據(jù)存儲(chǔ)系統(tǒng)
如谷歌的GFS(Google File System)系統(tǒng),容量達(dá)1EB,客戶端超10億;國內(nèi)如騰訊的TFS(Tencent File System)系統(tǒng),容量達(dá)800PB,有8億QQ用戶和6億微信用戶。還有Facebook的專用對(duì)象存儲(chǔ)系統(tǒng)HayStack,用于保存圖片視頻等,支持海量小文件。
1.2.2 通用大數(shù)據(jù)存儲(chǔ)系統(tǒng)
由于目前做研究主要針對(duì)開源系統(tǒng),所以在此僅列舉一些典型的開源大數(shù)據(jù)存儲(chǔ)系統(tǒng)。如充分利用集群的能力進(jìn)行高速運(yùn)算和存儲(chǔ)(Map Reduce)的HDFS(Hadoop Distribute File System)系統(tǒng)。
在高性能計(jì)算中用得比較多的Lustre系統(tǒng),是第一個(gè)基于對(duì)象存儲(chǔ)設(shè)備的、開源并行文件系統(tǒng),提供POSIX文件接口。目前該系統(tǒng)已被Intel收購,由Intel進(jìn)行維護(hù),并作為Intel在2020年前達(dá)成百億億次計(jì)算工程的一部分。目前,全球TOP100的高性能計(jì)算機(jī)70%都是采用Lustre系統(tǒng),基于其開源文件系統(tǒng),再加入自己的特色,如國內(nèi)的“天河”超級(jí)計(jì)算機(jī)等。
還有一類就是我們通常所說的云存儲(chǔ),運(yùn)用最廣泛的就是Ceph系統(tǒng),它是一個(gè)高可靠、可擴(kuò)展的分布式文件系統(tǒng),提供Object、Block和File三種接口方式。該存儲(chǔ)系統(tǒng)是博士生Sage Weil在圣塔克魯茲加利福尼亞大學(xué)(University of California,Santa Cruz,UCSC)實(shí)施開發(fā)的。雅虎的PB級(jí)云對(duì)象存儲(chǔ)COS就選擇了Ceph系統(tǒng)。
最后一個(gè)就是OpenStack系統(tǒng),這是國際上的一個(gè)開源組織,最早是由美國國家航空航天局(National Aeronautics and Space Administration,NASA)和Rackspace(一家托管服務(wù)器及云計(jì)算提供商)合作研發(fā)、并聯(lián)合全球的計(jì)算機(jī)廠商共同發(fā)起,是一個(gè)開源的云計(jì)算管理平臺(tái),它的底層采用Ceph的架構(gòu)。
近幾年,存儲(chǔ)系統(tǒng)在國內(nèi)蓬勃發(fā)展,對(duì)存儲(chǔ)系統(tǒng)的相關(guān)研究比較多,這也是因?yàn)橛斜容^多的開源系統(tǒng)可以利用,包括不少計(jì)算機(jī)廠商也在用開源存儲(chǔ)系統(tǒng)進(jìn)行研發(fā)。
新型存儲(chǔ)器件的出現(xiàn)給大數(shù)據(jù)存儲(chǔ)系統(tǒng)帶來了新的發(fā)展機(jī)遇。特別是新型非易失存儲(chǔ)技術(shù),如PCM(Phase-Change Memory)、MRAM(Magnetoresistive Random Access Memory)、STT-MRAM(Spin-Transfer Torque-Magnetoresistive Random-Access Memory)、3D NAND Flash、3D XPoint等存儲(chǔ)技術(shù)。但如何形成與之相適應(yīng)的新的器件、芯片和設(shè)備,最后運(yùn)用到大數(shù)據(jù)存儲(chǔ)系統(tǒng)中,使之發(fā)揮作用,滿足大數(shù)據(jù)存儲(chǔ)高性能、高可靠、高安全、低能耗和數(shù)據(jù)長期保存等方面的需要,是未來研究和發(fā)展的趨勢(shì)。所以本次講座也將圍繞非易失存儲(chǔ)器以及怎樣構(gòu)成存儲(chǔ)系統(tǒng)展開。
Wikibon公司在2015年就做過一個(gè)統(tǒng)計(jì)和預(yù)測(cè),認(rèn)為未來閃存將會(huì)逐步取代硬盤。目前,SSD(Solid State Disk)的應(yīng)用也越來越多。主流的閃存單元分為浮柵單元和電荷俘獲單元,通過一定外加電場(chǎng)作用,使閃存單元俘獲/排出電荷,改變存儲(chǔ)單元閾值電壓的高低,表示邏輯0和1。其存儲(chǔ)過程先是進(jìn)行擦除,以塊為單位;然后再進(jìn)行讀寫,讀寫過程中以Page為單位,由若干個(gè)Page構(gòu)成塊。
當(dāng)前,閃存技術(shù)正處于2D陣列轉(zhuǎn)向3D堆疊陣列的階段。其工藝尺寸縮小到達(dá)物理極限后,通過垂直堆疊進(jìn)一步增加了存儲(chǔ)密度,堆疊層數(shù)也逐年增加。比如長江存儲(chǔ),2019年推出了64層的閃存,今年則推出了128層閃存,就是通過堆疊進(jìn)一步提高存儲(chǔ)容量。除了工藝和堆疊提高存儲(chǔ)容量,還有一個(gè)途徑是使單元存儲(chǔ)更多邏輯比特,存儲(chǔ)密度進(jìn)一步提高:使1個(gè)單元存儲(chǔ)(Cell)從存儲(chǔ)單個(gè)邏輯比特到存儲(chǔ)多個(gè)邏輯比特,從SLC(Single-Level Cell)發(fā) 展 到MLC(Multi-Level Cell)、TLC(Trinary-Level Cell)和QLC(Quad-Level Cell)。但工藝上的3D堆疊陣列,以及由于存儲(chǔ)密度提高,閾值電壓區(qū)間被壓縮,可靠性和編程速度都需要進(jìn)一步研究和優(yōu)化。
國際上對(duì)閃存的研究主要集中在可靠性、大頁問題、垃圾回收優(yōu)化、Open Channel和系統(tǒng)應(yīng)用性能優(yōu)化等幾個(gè)方面。其中在可靠性問題研究上,包括硬件減少編程干擾、軟件優(yōu)化可靠性,如錯(cuò)誤數(shù)據(jù)分散到無效數(shù)據(jù);同時(shí),當(dāng)單顆芯片容量到達(dá)一定程度后,其管理的Page也慢慢從2kB發(fā)展到4kB、16kB、32kB甚至更大,也就是大頁問題,主要研究如何提升大頁使用效率。垃圾回收研究,如分離Flash頁基于Buffer中的臟位。還有由閃存構(gòu)成的Open Channel SSD的管理問題,如light NVM的研究;以及面向應(yīng)用的系統(tǒng)性能優(yōu)化問題,如KV(Key Value)SSD的多日志結(jié)構(gòu)和可變大小記錄數(shù)據(jù)等。
從閃存芯片的技術(shù)發(fā)展來看,2014年是閃存從2D到3D的一個(gè)拐點(diǎn)。從市場(chǎng)來看,2018年以前閃存主要被閃迪、東芝、三星、鎂光、西數(shù)等國際性大企業(yè)所把控;2019年之后,才出現(xiàn)長江存儲(chǔ)的閃存芯片。
我們基于閃存也開展了相關(guān)研究,但由于前期沒有國產(chǎn)閃存芯片支持,所以都是利用國外閃存芯片開展研究。主要包括:PCIe接口SSD,支持NVMe協(xié)議;設(shè)計(jì)多款開發(fā)板;Flash子卡(3D NAND Flash,1.5TB,6顆芯片,3通道);Flash控制器,達(dá)到芯片理論速度11MB/s寫入,45MB/s讀取,并支持高級(jí)命令I(lǐng)nterleave、Multiplane操作和Copyback,采用Interleave、Multiplane后速度可達(dá)50MB/s寫入以及60MB/s讀??;針對(duì)Flash大頁,運(yùn)用基于重復(fù)編程特性的多次閃存子頁寫入技術(shù)①Feng Y,F(xiàn)eng D,Tong W,et al.Multiple Subpage Writing FTL in MLC by Exploiting Dual Mode operations[J].IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems,2019,39(3):599-612.;針對(duì)垃圾回收,使用SLC塊加速3D MLC閃存的垃圾回收②Li S,Tong W,Liu J,et al.Accelerating garbage collection for 3D MLC flash memory with SLC blocks[C]//2019 IEEE/ACM International Conference on Computer-Aided Design(ICCAD).ACM,2019.;針對(duì)Open-Channel SSD,提出了QBLK,充分利用開放通道SSD的并行性③Qin H,F(xiàn)eng D,Tong W,et al.QBLK:Towards Fully Exploiting the Parallelism of Open-Channel SSDs[C]//2019 Design,Automation&Test in Europe Conference&Exhibition(DATE).2019.。
2.2.1異構(gòu)融合存儲(chǔ)設(shè)備
我們?cè)?0年以前就開始研究SSD控制器(Controller)技術(shù),開發(fā)的第一款SSDsim到現(xiàn)在還在被全球?qū)W界和廠商用來做SSD控制器的模擬仿真。我們的思路就是用FPGA(Field Programmable Gate Array)來做SSD控制器,包括從最早最低端的FPGA芯片,到現(xiàn)在用Kintex 7的芯片,原因是我們做的這個(gè)控制器一方面是為SSD,另一方面也是為下一代非易失內(nèi)存的研發(fā)考慮。如圖3所示,為異構(gòu)融合存儲(chǔ)設(shè)備硬件結(jié)構(gòu)。
圖3 異構(gòu)融合存儲(chǔ)設(shè)備硬件結(jié)構(gòu)Figure 3 Hardware structure of heterogeneous converged storage devices
該平臺(tái)與主機(jī)通過PCI-E接口連接,采用NVMe協(xié)議,中間是一塊FPGA芯片,用子母卡方式,子卡可以是PCM、閃存、MRAM等子卡。如圖3左邊所示,有一系列調(diào)試接口,PCM板也可以做內(nèi)存訪問方式,測(cè)試其訪問速度。該異構(gòu)融合存儲(chǔ)平臺(tái)可支持Flash和PCM,我們利用其開展了基于閃存的SSD研究、基于PCM的內(nèi)存研究以及相變存儲(chǔ)器與閃存的混合存儲(chǔ)研究。
如圖4所示是融合存儲(chǔ)設(shè)備原型。之所以將其稱之為融合存儲(chǔ)設(shè)備,是因?yàn)槲覀兛梢詫?duì)其進(jìn)行配置,如在FPGA中配置SSD的控制器(Controller),那么它就可以成為一個(gè)PCI-E的SSD;如果我們將其作為一個(gè)高速擴(kuò)展內(nèi)存,那么就可以將PCM或者M(jìn)RAM作為擴(kuò)展內(nèi)存方式進(jìn)行訪問。設(shè)備中的子卡看起來像內(nèi)存條,實(shí)際上物理接口是類似內(nèi)存的自定義接口,同時(shí)FPGA里面也有CPU和微內(nèi)核,可以以內(nèi)存方式訪問子卡。但Flash控制不是用內(nèi)存訪問方式。Flash子卡不支持原地修改及字節(jié)操作,磨損次數(shù)有限;而PCM或MRAM的子卡支持原地修改和字節(jié)操作,同時(shí)就有耐磨損和低能耗的特點(diǎn)。
圖4 融合存儲(chǔ)設(shè)備原型Figure 4 Prototype of converged storage device
融合存儲(chǔ)控制器采用的FPGA芯片是Kintex 7系列,處理器是ARM CortexTM-A9雙核處理器;PCIe接口使用gen2.0×8,理論帶寬可達(dá)5Gbps×8=40Gbps;有4個(gè)DDR3 DIMM(Dual Inline Memory Module,雙列直插內(nèi)存模塊),采用了鎂光的LPDDR2-PCM芯片,直接用內(nèi)存方式訪問,F(xiàn)lash與PCM配置更加靈活。
該設(shè)備具有停電數(shù)據(jù)不丟失,支持系統(tǒng)快速啟動(dòng)、關(guān)機(jī)、恢復(fù),可作為固態(tài)盤或擴(kuò)展內(nèi)存使用;低能耗,可以降低存儲(chǔ)系統(tǒng)能耗;大容量,融合存儲(chǔ)容量最高達(dá)TB級(jí);高性能,支持NVMe協(xié)議。
2.2.2 異構(gòu)混合內(nèi)存體系結(jié)構(gòu)研究與開發(fā)
我們和浪潮合作,利用Intel主板做了一個(gè)TB級(jí)的異構(gòu)混合主存硬件,提出了TB級(jí)NVM和DRAM融合主存體系結(jié)構(gòu);用Intel的QPI(Quick Path Interconnect)總線實(shí)現(xiàn)多核共享,采用高速FPGA硬件控制互連邏輯;同時(shí)具有靈活可擴(kuò)展NVM架構(gòu);實(shí)現(xiàn)多粒度、并行訪問的PCM控制器以及實(shí)現(xiàn)支持高級(jí)命令的3D NAND Flash讀寫優(yōu)化控制器。
在TB級(jí)異構(gòu)混合主存軟件調(diào)度方面,提出了異構(gòu)混合主存系統(tǒng)地址映射方案,動(dòng)態(tài)內(nèi)存分區(qū)調(diào)整方案,面積優(yōu)化的BCH(Bose,Ray-Chaudhuri,Hocquenghem)編譯碼器糾錯(cuò)方案及并行流水線LDPC碼(Low-Density Parity-Check Codes)編譯碼器方案,自適應(yīng)負(fù)載的垃圾回收方案及磨損均衡、壞塊管理,提出了異構(gòu)混合主存緩存數(shù)據(jù)一致性方案,并在ISCA(The International Symposium on Computer Architecture)、ICCD(International Conference on Computer Design)、DAC(Design Automation Conference)、DATE(Design,Automation and Test in Europe)、ICPP(International Conference on Parallel Processing)、TACO(Transactions on Architecture and Code Optimization)、TOC(Transactions on Computer)、JSA(Journal of Systems Architecture)等會(huì)議和期刊發(fā)表12篇論文和申請(qǐng)發(fā)明專利16項(xiàng)。
2.2.3 面向3D閃存的性能優(yōu)化
閃存芯片的容量隨著工藝進(jìn)步成倍增長,閃存塊容量也隨之成倍增長,頁大小從2kB不斷增長到16kB,甚至更大。但在文件系統(tǒng)層,文件系統(tǒng)塊大小仍然以4kB為主。這樣的優(yōu)勢(shì)是降低了存儲(chǔ)成本和具有更大吞吐量,但劣勢(shì)是會(huì)造成上下層存儲(chǔ)單元大小不匹配、存儲(chǔ)空間與傳輸時(shí)間浪費(fèi)。上下層存儲(chǔ)單元大小不匹配問題,比如進(jìn)行一個(gè)4kB的數(shù)據(jù)修改(update),首先要讀閃存一頁16kB,然后對(duì)其修改;修改完成后,再將其異地寫回去,并將原頁面作廢,才完成1次update的操作。在此過程中,傳輸放大倍數(shù)為(16kB+16kB)/4kB×100%=800%,傳輸放大了8倍;而寫放大為16kB/4kB×100%=400%,寫放大了4倍。除了性能下降、存儲(chǔ)空間浪費(fèi)外,還要考慮閃存的壽命問題,因此需要減少寫放大和寫的次數(shù),才能更好地利用于大容量閃存。
為了解決這個(gè)問題,現(xiàn)有的工作主要從優(yōu)化緩存角度出發(fā),如利用緩存進(jìn)行小寫合并,合并成閃存頁大小后再寫入閃存中,需要額外子頁映射表存儲(chǔ)這部分元數(shù)據(jù)信息,并且引入額外數(shù)據(jù)整理開銷;優(yōu)化傳統(tǒng)LRU(Least Recently Used)算法,以閃存塊為粒度將數(shù)據(jù)刷回介質(zhì),并且在刷回時(shí)進(jìn)行頁合并,最后采用LRU補(bǔ)償方案提升順序?qū)懭霑r(shí)LRU的效率等。
但是由于負(fù)載的時(shí)間、空間局部性不同,設(shè)備DRAM容量限制,引入的額外管理和數(shù)據(jù)遷移開銷等原因,優(yōu)化的程度會(huì)受限。而基于閃存重復(fù)編程特性來解決不匹配的問題,則可以避免額外寫放大和對(duì)緩存大小的依賴。但同時(shí)也存在對(duì)子頁管理的問題:在SLC模式時(shí),可以很好地去寫;但當(dāng)MLC模式時(shí),有些模式不能轉(zhuǎn)換過去,是不能寫的??紤]到SLC模式很好地支持單元狀態(tài)單向從“1”到“0”的轉(zhuǎn)化,繞開了隨機(jī)化模塊、用戶寫入的數(shù)據(jù)即是存儲(chǔ)到陣列的數(shù)據(jù),有性能和可靠性的優(yōu)勢(shì),我們?cè)O(shè)計(jì)了MLC閃存的重復(fù)編程方法,利用閃存的雙模特性,即閃存芯片可以在默認(rèn)模式(MLC/TLC模式)和SLC模式之間進(jìn)行切換。而雙模式轉(zhuǎn)換不當(dāng)會(huì)導(dǎo)致數(shù)據(jù)崩潰,且?guī)頂?shù)據(jù)碎片化的問題和降低讀性能。對(duì)此,我們采取了以下技術(shù)。
(1)采用面向SLC閃存的映射粒度自適應(yīng)FTL(MGA-FTL)技術(shù)
核心思想是:采用更細(xì)粒度的子頁響應(yīng)小寫請(qǐng)求,擦除之前寫多次的頁。FTL模塊采用兩級(jí)映射表,對(duì)閃存頁狀態(tài)進(jìn)行轉(zhuǎn)化和采取相應(yīng)的分配策略。
第一,兩級(jí)映射表。由于只使用子頁級(jí)映射表會(huì)成倍增加映射表占用DRAM的開銷,因此采用頁級(jí)和子頁級(jí)混合的兩級(jí)映射表方案,初始只創(chuàng)建頁映射表,只在進(jìn)行了子頁小寫時(shí)才創(chuàng)建對(duì)應(yīng)子頁表項(xiàng)。
第二,閃存頁狀態(tài)轉(zhuǎn)換。由于已有的3種閃存頁狀態(tài)(free/valid/invalid)不能表示一個(gè)閃存頁中部分子頁被寫入的情況,因此增加一個(gè)新的頁狀態(tài),即部分有效(Partially Valid,PV),原先3種狀態(tài)隨之變化為:完全空閑(Fully Free,F(xiàn)F)、完全有效(Fully Valid,F(xiàn)V)、完全無效(Fully Invalid,F(xiàn)I)以及新添加的部分有效PV。
第三,分配策略。根據(jù)狀態(tài)采用相應(yīng)的分配策略。由于一個(gè)物理頁中的數(shù)據(jù)并不是邏輯連續(xù)的,為了減少冗余數(shù)據(jù)傳輸,分配策略的主要思想是使用子頁響應(yīng)小寫請(qǐng)求。具體策略包括:獨(dú)占式分配,即一個(gè)物理頁只能存儲(chǔ)屬于相同邏輯頁的數(shù)據(jù),實(shí)現(xiàn)更少的數(shù)據(jù)碎片化;共享式分配,即一個(gè)物理頁可以存儲(chǔ)不同邏輯頁的數(shù)據(jù),獲得更高的空間利用率。
實(shí)驗(yàn)表明,通過此技術(shù)的優(yōu)化,真實(shí)負(fù)載可以降低8%~53%的平均響應(yīng)時(shí)間,合成負(fù)載降低72%的平均響應(yīng)時(shí)間且小請(qǐng)求為主的負(fù)載效果更加顯著;對(duì)于8kB大小的閃存頁,減少了7.42%的寫放大,對(duì)于16kB大小的閃存頁,減少了30.83%的寫放大,有利于提高閃存壽命。④Feng Y,F(xiàn)eng D,Yu C,et al.Mapping granularity adaptive FTL based on flash page re-programming[C]//Design,Automation&Test in Europe Conference&Exhibition(DATE),2017.IEEE,2017.
(2)面向MLC閃存的多次子頁寫入(MSPWFTL)技術(shù)
核心是想是:使用SLC模式塊響應(yīng)小請(qǐng)求,進(jìn)行多次子頁寫入;使用MLC模式響應(yīng)連續(xù)的大塊請(qǐng)求。仍沿用兩級(jí)映射表等對(duì)子頁元數(shù)據(jù)進(jìn)行管理,并采用SLC模式管理模塊和碎片化管理模塊。
1)SLC模式管理模塊設(shè)計(jì)
首先,為閃存控制器添加2種模式轉(zhuǎn)換接口:Erase to SLCMode(E2S),以塊為轉(zhuǎn)換粒度,但開銷大;set Feature SLC enable(sFSe),以晶圓為轉(zhuǎn)換粒度,開銷小。
其次是元數(shù)據(jù)管理,記錄每個(gè)閃存塊當(dāng)前模式以及存儲(chǔ)的數(shù)據(jù)模式,防止SLC/MLC混用導(dǎo)致數(shù)據(jù)崩潰。系統(tǒng)斷電重啟后,原本SLC模式塊會(huì)恢復(fù)到默認(rèn)MLC模式,但其內(nèi)存儲(chǔ)的是SLC數(shù)據(jù),因此:
第一步:判定當(dāng)前閃存塊模式與數(shù)據(jù)模式是否一致;若不一致,使用sFSe轉(zhuǎn)換閃存塊工作模式;
第二步:進(jìn)行子頁數(shù)據(jù)讀寫;
第三步:為避免影響晶圓其他數(shù)據(jù),使用sFSe轉(zhuǎn)回原工作模式。
以上通過原子操作,可以防止數(shù)據(jù)丟失。
2)碎片化管理模塊設(shè)計(jì)
碎片化產(chǎn)生的原因是:使用子頁響應(yīng)小寫請(qǐng)求,相同邏輯頁數(shù)據(jù)寫入不同物理頁中,或者原本是整頁寫入,但發(fā)生小寫更新,數(shù)據(jù)存儲(chǔ)在不同物理頁中。子頁分配引起的數(shù)據(jù)碎片化,會(huì)導(dǎo)致實(shí)際讀取的閃存頁數(shù)目大于邏輯頁數(shù),影響讀性能。因此需要對(duì)讀密集型應(yīng)用進(jìn)行碎片化數(shù)據(jù)管理,提高設(shè)備性能。
在具體設(shè)計(jì)時(shí),首先根據(jù)碎片整理收益臨界值和平均讀間隔判斷是否屬于讀密集的數(shù)據(jù)。
第一,碎片整理收益臨界值判斷。根據(jù)所使用的閃存參數(shù)以及劃分的子頁數(shù)目,計(jì)算整理碎片收益,當(dāng)邏輯頁讀次數(shù)大于n時(shí)進(jìn)行碎片整理將獲得優(yōu)勢(shì):
第二,平均讀間隔判斷。在某一負(fù)載中,讀密集的數(shù)據(jù)(讀次數(shù)大于n)其平均讀間隔較小,讀松弛的數(shù)據(jù)讀間隔較大,兩者差距明顯。
其次對(duì)讀密集的碎片數(shù)據(jù)進(jìn)行整理,針對(duì)以上兩個(gè)方面分別采用讀密集感知的更新方法和子頁合并方法,將邏輯頁遷移至同一個(gè)物理頁中。
實(shí)驗(yàn)驗(yàn)證表明,對(duì)于讀密集型負(fù)載,讀服務(wù)時(shí)間可以降低35%,有效降低了平均響應(yīng)時(shí)間。對(duì)比其他方案性能,也有明顯優(yōu)勢(shì),響應(yīng)時(shí)間平均減少了57%;劃分更多子頁可以獲得更好的性能,但也要考慮到碎片化問題對(duì)平均響應(yīng)時(shí)間的影響。擦除次數(shù)則平均減少了34.1%,寫放大平均減少了52.1%。⑤Feng Y,F(xiàn)eng D,Tong W,et al.Multiple Subpage Writing FTL in MLC by Exploiting Dual Mode operations[J].IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems,2019.
2.2.4 面向3D閃存的可靠性技術(shù)
三維堆疊結(jié)構(gòu)閃存陣列被認(rèn)為是閃存持續(xù)發(fā)展的可行方案,其優(yōu)勢(shì)是存儲(chǔ)容量提升、更好的耐久性等,但也存在更大的單元間干擾、大頁問題等。
單元間編程干擾是由于單元間的耦合作用所產(chǎn)生。對(duì)于2D結(jié)構(gòu)來說,鄰位之間的影響,只需要考慮相鄰位線(X-direction)以及相同層中的相鄰字線(Y-direction);但對(duì)3D結(jié)構(gòu)來說,還需要考慮相鄰層中的字線(Z-direction)以及相鄰層中的對(duì)角線方向的干擾。
分析一款鎂光的3D閃存,發(fā)現(xiàn)它在邊界用的是SLC模式,在中間用的是MLC模式,已經(jīng)考慮了可靠性的問題,但我們發(fā)現(xiàn)仍存在鄰位之間的影響。通過抽象Y-Z視圖和閃存高低頁關(guān)系,得到三維陣列中的閃存頁排布,如圖5所示是其閃存頁的排布情況。
圖5 三維陣列結(jié)構(gòu)中閃存頁排布(Y-Z方向)Figure 5 Flash memory page layout in three-dimensional array structure(Y-Z direction)
從Page1,Page2,Page3,Page4一直寫到Page31。到Page32之后,先寫低頁再寫高頁,以Page33為例,當(dāng)對(duì)Page34進(jìn)行寫入時(shí),電壓加強(qiáng),產(chǎn)生漂移;繼續(xù)往下寫,寫到Page67的時(shí)候也會(huì)對(duì)Page33有影響。而從高頁來看,Page68和Page67、Page130都會(huì)對(duì)Page66產(chǎn)生影響。也就是說,低頁受到2次干擾,而高頁會(huì)受到3次干擾。而單元間耦合次數(shù)的增加,會(huì)產(chǎn)生更加嚴(yán)重的干擾,導(dǎo)致更高的比特出錯(cuò)率。
為了解決這個(gè)問題,可以利用單元間編程干擾與寫入操作都對(duì)單元閾值電壓起到增加的一致效果,緩解編程干擾帶來的可靠性問題。因此我們?cè)O(shè)計(jì)了干擾補(bǔ)償編程方法。根據(jù)低頁、高頁分別受到2次和3次干擾,列出高低頁受到總干擾量的公式如下。單元受到干擾量F(n,m)=
(1)干擾補(bǔ)償?shù)木幊谭椒?/p>
首先,通過計(jì)算得到高低頁隨后受到的編程干擾平均大??;然后,在編程寫入時(shí)判定電壓值對(duì)應(yīng)減小編程干擾的大小,經(jīng)過后續(xù)干擾后閾值電壓達(dá)到預(yù)期狀態(tài)。每頁具體補(bǔ)償多少電壓可以通過模擬進(jìn)行計(jì)算。
根據(jù)干擾補(bǔ)充編程方法,經(jīng)過“完全補(bǔ)償”后的單元Vth狀態(tài)是預(yù)期的理想狀態(tài)。但只寫入部分閃存頁的閃存塊中,最新寫入的若干閃存頁還“未完全補(bǔ)償”,比特出錯(cuò)率高,特別是在3D閃存中未完全補(bǔ)償?shù)捻摂?shù)目急劇增加,影響設(shè)備可靠性。因此,需要提出針對(duì)性的可靠性保障方法,對(duì)邊界頁進(jìn)行補(bǔ)償。
(2)讀電壓偏移策略
對(duì)于未完全補(bǔ)償閃存頁出錯(cuò)的情況,根據(jù)出錯(cuò)頁號(hào)可知其缺少的補(bǔ)償類型及補(bǔ)償次數(shù)。因此,可根據(jù)出錯(cuò)頁號(hào)得到其閾值電壓缺少量,讀操作時(shí)對(duì)應(yīng)降低其讀判定電壓,獲得更優(yōu)的讀窗口,然后使用不同read-Retry參數(shù)調(diào)整讀窗口。
(3)人工補(bǔ)償策略
由于數(shù)據(jù)模式不同以及read-Retry不能完全匹配缺失的電壓量,若仍發(fā)生讀錯(cuò)誤的情況,向可以為出錯(cuò)頁進(jìn)行補(bǔ)償?shù)目臻e閃存頁寫入隨機(jī)數(shù)據(jù),以犧牲較少空間的方式提升可靠性。
可靠性保障的總體方案如圖6所示。
圖6 可靠性保障的總體方案Figure 6 Overall scheme of reliability guarantee
經(jīng)過實(shí)驗(yàn)驗(yàn)證,干擾補(bǔ)償編程(DCPS)方法有效緩解了由于單元間編程干擾對(duì)原始比特出錯(cuò)率的影響;由于“未完全補(bǔ)償”頁的可靠性隱患,只使用DCPS方法效果提升有限,整體比特出錯(cuò)率降低了17%;結(jié)合可靠性保障方案后,比特出錯(cuò)率至少降低了82%。⑥Feng Y,F(xiàn)eng D,Tong W,et al.Using Disturbance Compensation and Data Clustering(DC)2 to Improve Reliability and Performance of 3D MLC Flash Memory[C]//2017 IEEE 35th International Conference on Computer Design(ICCD).IEEE,2017.
(未完待續(xù))