以下為演講實(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ā)展,對于存儲(chǔ)的需求是越來越大,據(jù)統(tǒng)計(jì)到今年應(yīng)該是規(guī)模將達(dá)到40ZB。這么多數(shù)據(jù)首先要存下來,要高性能大容量還要低功耗價(jià)格便宜存下來。當(dāng)前的幾種存儲(chǔ)介質(zhì),應(yīng)該說有硬盤閃存,還有一些新的存儲(chǔ)介質(zhì),比如英特爾講的傲騰。目前來說用的量非常大的閃存技術(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è)問題,一個(gè)是性能的問題,大家都知道容量大了之后,單個(gè)顆粒達(dá)到TB級,甚至10個(gè)TB的時(shí)候,管理的這個(gè)力度快大小就越來越大,文件系統(tǒng)塊有很多頁組成的,頁越來越大,從514個(gè)字節(jié)的力度,到現(xiàn)在16K甚至32K。這是閃存頁,我們知道頁是我們基本的讀寫的單元。增大了頁的容量就會(huì)導(dǎo)致一個(gè)問題的出現(xiàn),現(xiàn)在的文件系統(tǒng),上傳的應(yīng)用都基于硬盤管理而來的。我們系統(tǒng)最基本塊大小是4GB,頁面大小達(dá)到了34K,遠(yuǎn)遠(yuǎn)大于上層,就會(huì)導(dǎo)致大量小寫的產(chǎn)生,性能會(huì)受到影響。
第二個(gè)在頁速度增多,塊的容量越來越大,SSD里邊有一個(gè)我們要做擦除操作,有效的頁移出來,移出來這樣開銷也會(huì)增大,這都是整體性能的影響。
到了3D閃存,垂直方向的對角性方向都會(huì)加劇比特的出錯(cuò)率。我們系統(tǒng)上有很多解決方案,能不能減少這個(gè)出錯(cuò)率這是最根本的問題。我們做了這兩個(gè)工作。
第一個(gè)工作就是性能的問題,我們文件系統(tǒng)有4K這樣一個(gè)修改,那么對于閃存的操作就會(huì)流出這一頁,這一頁大小16K,先讀到主機(jī)里面修改,再寫下去,異地寫,然后把這一頁作廢。標(biāo)志為無效頁,寫這4K數(shù)據(jù),讀了一個(gè)16K在寫4K,800%的傳輸放大,只要寫4K,頁大小16K,寫放大400%,大大影響性能,而現(xiàn)在的一些工作就是用一個(gè)緩存,把這個(gè)小于1頁寫,拼湊成1頁之后寫下去,我們發(fā)現(xiàn)一個(gè)什么問題,閃存有這樣一個(gè)問題,可以重新編程這樣一個(gè)特性,可以對于不滿一頁寫了之后,還有空閑的地方,下次在寫,寫多個(gè)紙頁。閃存編成的特性,SLC編程很好用,對于SLC首先塊擦除全1的過程。
還有一個(gè)問題就是說對于這種MLC來說,多個(gè)多位這樣來說都有一個(gè)要求可靠性,就是要求平均寫0、1個(gè)數(shù)最好是平均的,為了達(dá)到平均的目的,所以一般說主流的廠商都用數(shù)據(jù)隨機(jī)化達(dá)到這樣一個(gè)要求。我們發(fā)現(xiàn)現(xiàn)在很多閃存芯片實(shí)際上是提供了兩種模式,可以在MLC兩種模式之間切換的,SLC重新編程寫子頁,提高容量的使用率。MLC可以大大延續(xù)這些數(shù)據(jù)的存儲(chǔ),這樣可以把兩者結(jié)合起來。結(jié)合起來有一個(gè)問題,一個(gè)顆粒本來工作在SLC下面,到底哪一部分支持了MSL,哪一部分支持SLC,就要記住,否則就會(huì)出現(xiàn)問題,導(dǎo)致數(shù)據(jù)崩潰就亂套了。
我們自主研發(fā)的DSAL-V7固態(tài)存儲(chǔ)平臺,使用SLC、MLC閃存子卡進(jìn)行重復(fù)編程方法的驗(yàn)證。對于SLC來說,可以把一個(gè)頁分成很多子頁來使用,從而解決小寫的問題。這樣就會(huì)也有相應(yīng)的問題出現(xiàn),只使用子頁級映射表會(huì)成倍增加映射表占用DRAM的開銷, 1 TB SSD會(huì)變成2GB mapping tables。當(dāng)它滿頁寫的時(shí)候,只要一個(gè)大的頁表,這樣子頁只是增加了16.5%就可以了。我們整個(gè)閃存頁狀態(tài)轉(zhuǎn)化從原來有效以及無效頁三個(gè)狀態(tài)變成了七個(gè)狀態(tài),完全孔隙、完全有效、完全無效,還有部分有效,部分有效有子頁,在這個(gè)過程中間,到底怎么樣來分配,分配有兩種策略,一種獨(dú)占式分配還有一個(gè)共享式分配。獨(dú)占式分配相同的邏輯頁的數(shù)據(jù)是放在一個(gè)頁里面,而共享頁分配只要有貢獻(xiàn)就插進(jìn)去,一個(gè)是省空間,另外一個(gè)延續(xù)性比較好。
剛才講了MLC、SLC,用的結(jié)合,部分工作在SLC工作下面,SLC主要應(yīng)對連續(xù)的讀寫,然后SLC就是小塊的,在這個(gè)里頭就有一個(gè)問題,因?yàn)槲覀円魂P(guān)電之后,再起來默認(rèn)工作在SLC下面,不能亂,一些工作在MLC進(jìn)行管理。SLC工作狀態(tài)下的接源的時(shí)候,以塊為單位轉(zhuǎn)化,做一個(gè)原子操作,保證不要這個(gè)工作模式毀滅了,做了碎片管理,主要面向不密集型的請求,提高性能,也存在一個(gè)問題,有可能就是我一次的讀變成了多次到處去找,就會(huì)導(dǎo)致性能下降,讀密集型我們還做碎片管理,最后達(dá)到的效果平均響應(yīng)時(shí)間可以達(dá)到57%以上。今年最新的成果也發(fā)表了相應(yīng)的論文。減少了寫的擦除次數(shù),還有寫放大。效果都不錯(cuò)。
第二個(gè)就是我們做的可靠性工作,2D閃存容量的發(fā)展已經(jīng)接近其物理極限。三維堆疊結(jié)構(gòu)閃存陣列被認(rèn)為是閃存持續(xù)發(fā)展的可行方案。3D閃存中未完全補(bǔ)償?shù)捻摂?shù)目急劇增加,影響設(shè)備可靠性,需要針對其提出可靠性保障方法。對于未完全補(bǔ)償閃存頁出錯(cuò)的情況,根據(jù)出錯(cuò)頁號可知其缺少的補(bǔ)償類型及補(bǔ)償次數(shù),需要采取讀電壓偏移策略。由于數(shù)據(jù)模式不同以及read-Retry不能完全匹配缺失的電壓量,若仍發(fā)生讀錯(cuò)誤的情況,對此要有人工補(bǔ)償策略。
(以上文字未經(jīng)審核,如有紕漏,歡迎指正)
———————— END ———————
查看中國數(shù)據(jù)與存儲(chǔ)峰會(huì)專題報(bào)道:http://gensurebio.cn/subject/DSS19/