以下為演講實錄:

我今天給大家介紹一下最近做的一點工作,面向3D閃存性能和可靠性優(yōu)化技術(shù),主要介紹三個點,一個就是3D閃存背景還有我們做的兩項工作。一個是性能優(yōu)化還有一個就是可靠性的保障技術(shù)。

大家都知道隨著大數(shù)據(jù)邊緣計算網(wǎng)絡(luò)這樣一些發(fā)展,對于存儲的需求是越來越大,據(jù)統(tǒng)計到今年應(yīng)該是規(guī)模將達到40ZB。這么多數(shù)據(jù)首先要存下來,要高性能大容量還要低功耗價格便宜存下來。當前的幾種存儲介質(zhì),應(yīng)該說有硬盤閃存,還有一些新的存儲介質(zhì),比如英特爾講的傲騰。目前來說用的量非常大的閃存技術(shù)從2D全面轉(zhuǎn)向3D,主要的原因是追求高密度大容量,高密度大容量,實際上是兩個技術(shù),一個就是從到QLC,還有英特爾介紹的PLC,另外一個就是3D,從2014年之后基本上全部轉(zhuǎn)向3D,現(xiàn)在已經(jīng)達到了128層,444層的高度,這就導致有兩個問題,一個是性能的問題,大家都知道容量大了之后,單個顆粒達到TB級,甚至10個TB的時候,管理的這個力度快大小就越來越大,文件系統(tǒng)塊有很多頁組成的,頁越來越大,從514個字節(jié)的力度,到現(xiàn)在16K甚至32K。這是閃存頁,我們知道頁是我們基本的讀寫的單元。增大了頁的容量就會導致一個問題的出現(xiàn),現(xiàn)在的文件系統(tǒng),上傳的應(yīng)用都基于硬盤管理而來的。我們系統(tǒng)最基本塊大小是4GB,頁面大小達到了34K,遠遠大于上層,就會導致大量小寫的產(chǎn)生,性能會受到影響。

第二個在頁速度增多,塊的容量越來越大,SSD里邊有一個我們要做擦除操作,有效的頁移出來,移出來這樣開銷也會增大,這都是整體性能的影響。

到了3D閃存,垂直方向的對角性方向都會加劇比特的出錯率。我們系統(tǒng)上有很多解決方案,能不能減少這個出錯率這是最根本的問題。我們做了這兩個工作。

第一個工作就是性能的問題,我們文件系統(tǒng)有4K這樣一個修改,那么對于閃存的操作就會流出這一頁,這一頁大小16K,先讀到主機里面修改,再寫下去,異地寫,然后把這一頁作廢。標志為無效頁,寫這4K數(shù)據(jù),讀了一個16K在寫4K,800%的傳輸放大,只要寫4K,頁大小16K,寫放大400%,大大影響性能,而現(xiàn)在的一些工作就是用一個緩存,把這個小于1頁寫,拼湊成1頁之后寫下去,我們發(fā)現(xiàn)一個什么問題,閃存有這樣一個問題,可以重新編程這樣一個特性,可以對于不滿一頁寫了之后,還有空閑的地方,下次在寫,寫多個紙頁。閃存編成的特性,SLC編程很好用,對于SLC首先塊擦除全1的過程。

還有一個問題就是說對于這種MLC來說,多個多位這樣來說都有一個要求可靠性,就是要求平均寫0、1個數(shù)最好是平均的,為了達到平均的目的,所以一般說主流的廠商都用數(shù)據(jù)隨機化達到這樣一個要求。我們發(fā)現(xiàn)現(xiàn)在很多閃存芯片實際上是提供了兩種模式,可以在MLC兩種模式之間切換的,SLC重新編程寫子頁,提高容量的使用率。MLC可以大大延續(xù)這些數(shù)據(jù)的存儲,這樣可以把兩者結(jié)合起來。結(jié)合起來有一個問題,一個顆粒本來工作在SLC下面,到底哪一部分支持了MSL,哪一部分支持SLC,就要記住,否則就會出現(xiàn)問題,導致數(shù)據(jù)崩潰就亂套了。

我們自主研發(fā)的DSAL-V7固態(tài)存儲平臺,使用SLC、MLC閃存子卡進行重復編程方法的驗證。對于SLC來說,可以把一個頁分成很多子頁來使用,從而解決小寫的問題。這樣就會也有相應(yīng)的問題出現(xiàn),只使用子頁級映射表會成倍增加映射表占用DRAM的開銷, 1 TB SSD會變成2GB mapping tables。當它滿頁寫的時候,只要一個大的頁表,這樣子頁只是增加了16.5%就可以了。我們整個閃存頁狀態(tài)轉(zhuǎn)化從原來有效以及無效頁三個狀態(tài)變成了七個狀態(tài),完全孔隙、完全有效、完全無效,還有部分有效,部分有效有子頁,在這個過程中間,到底怎么樣來分配,分配有兩種策略,一種獨占式分配還有一個共享式分配。獨占式分配相同的邏輯頁的數(shù)據(jù)是放在一個頁里面,而共享頁分配只要有貢獻就插進去,一個是省空間,另外一個延續(xù)性比較好。

剛才講了MLC、SLC,用的結(jié)合,部分工作在SLC工作下面,SLC主要應(yīng)對連續(xù)的讀寫,然后SLC就是小塊的,在這個里頭就有一個問題,因為我們一關(guān)電之后,再起來默認工作在SLC下面,不能亂,一些工作在MLC進行管理。SLC工作狀態(tài)下的接源的時候,以塊為單位轉(zhuǎn)化,做一個原子操作,保證不要這個工作模式毀滅了,做了碎片管理,主要面向不密集型的請求,提高性能,也存在一個問題,有可能就是我一次的讀變成了多次到處去找,就會導致性能下降,讀密集型我們還做碎片管理,最后達到的效果平均響應(yīng)時間可以達到57%以上。今年最新的成果也發(fā)表了相應(yīng)的論文。減少了寫的擦除次數(shù),還有寫放大。效果都不錯。

第二個就是我們做的可靠性工作,2D閃存容量的發(fā)展已經(jīng)接近其物理極限。三維堆疊結(jié)構(gòu)閃存陣列被認為是閃存持續(xù)發(fā)展的可行方案。3D閃存中未完全補償?shù)捻摂?shù)目急劇增加,影響設(shè)備可靠性,需要針對其提出可靠性保障方法。對于未完全補償閃存頁出錯的情況,根據(jù)出錯頁號可知其缺少的補償類型及補償次數(shù),需要采取讀電壓偏移策略。由于數(shù)據(jù)模式不同以及read-Retry不能完全匹配缺失的電壓量,若仍發(fā)生讀錯誤的情況,對此要有人工補償策略。

(以上文字未經(jīng)審核,如有紕漏,歡迎指正)

———————— END ———————

查看中國數(shù)據(jù)與存儲峰會專題報道:http://m.gensurebio.cn/subject/DSS19/

分享到

zhangnn

相關(guān)推薦