以下為演講實(shí)錄:

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

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

第二個(gè)在頁(yè)速度增多,塊的容量越來(lái)越大,SSD里邊有一個(gè)我們要做擦除操作,有效的頁(yè)移出來(lái),移出來(lái)這樣開(kāi)銷(xiāo)也會(huì)增大,這都是整體性能的影響。

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

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

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

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

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

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

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

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

查看中國(guó)數(shù)據(jù)與存儲(chǔ)峰會(huì)專(zhuān)題報(bào)道:http://www.gensurebio.cn/subject/DSS19/

分享到

zhangnn

相關(guān)推薦