以下內(nèi)容根據(jù)現(xiàn)場(chǎng)演講速記整理(未經(jīng)演講人嚴(yán)格校對(duì),僅供參考學(xué)習(xí)):
今天,我想分享的主題是“固態(tài)存儲(chǔ)系統(tǒng)中ECC的演進(jìn)與優(yōu)化”。ECC在通信信號(hào)處理和數(shù)據(jù)存儲(chǔ)領(lǐng)域都非常關(guān)鍵,特別是在主控芯片中,ECC功能實(shí)現(xiàn)占據(jù)了大量芯片面積。
我們首先關(guān)注數(shù)據(jù)存儲(chǔ)所面臨的挑戰(zhàn)。
第一個(gè)挑戰(zhàn)是數(shù)據(jù)存不下的問題。數(shù)據(jù)爆炸式增長(zhǎng),現(xiàn)有存儲(chǔ)的容量增速跟不上這種增長(zhǎng)速度。雖然當(dāng)前存儲(chǔ)尚可應(yīng)對(duì),但長(zhǎng)遠(yuǎn)來看,存儲(chǔ)容量不足是一個(gè)必然的問題。
第二個(gè)挑戰(zhàn)是如何在不可靠的存儲(chǔ)介質(zhì)上實(shí)現(xiàn)可靠的數(shù)據(jù)存儲(chǔ)。不同類型的存儲(chǔ)介質(zhì),如固態(tài)存儲(chǔ)、磁存儲(chǔ)和光存儲(chǔ),它們的可靠性都不是絕對(duì)的。我們需要從器件底層和信號(hào)處理(包括ECC)等方面來提高數(shù)據(jù)存儲(chǔ)的可靠性。
第三個(gè)挑戰(zhàn)是滿足復(fù)雜業(yè)務(wù)需求下對(duì)存儲(chǔ)性能的要求,如低延時(shí)、高并發(fā)性和安全性等。
最后一個(gè)挑戰(zhàn)是持續(xù)追求綠色低碳的目標(biāo),特別是如何用較低的能耗存儲(chǔ)大量數(shù)據(jù)。
如今固態(tài)存儲(chǔ)被廣泛應(yīng)用,但由于NAND可靠性相對(duì)較低,我們?cè)谘邪l(fā)SSD主控時(shí),不得不尋求從不同層面提升其存儲(chǔ)可靠性。
過去多年以來,為了追求更高的存儲(chǔ)容量,我們不斷縮小芯片制程尺寸,并采用多電平技術(shù),采用3D垂直存儲(chǔ)。這種技術(shù)雖然提升了存儲(chǔ)容量,但同時(shí)也降低了存儲(chǔ)可靠性。
在信道分析方面,我們觀察到,在不斷的擦寫(P/E)過程中,原始誤碼率不斷增加,導(dǎo)致閃存信道不斷惡化。這種情況下,如何設(shè)計(jì)更加適合的ECC成為一個(gè)挑戰(zhàn)。
由于存儲(chǔ)內(nèi)部結(jié)構(gòu)的復(fù)雜性,我們需要考慮不同層次的原始誤碼率。在通信領(lǐng)域,信道相對(duì)簡(jiǎn)單,但在flash存儲(chǔ)中,不同層的特性不一,這導(dǎo)致傳統(tǒng)的信道編碼方法不再適用。
為了提高可靠性,我們采用了先進(jìn)的信號(hào)處理技術(shù)(DSP)來提升信道檢測(cè)的性能,在前期檢測(cè)階段可以大幅降低原始誤碼率。另外,還采用ECC差錯(cuò)控制編碼技術(shù),來糾正更多的錯(cuò)誤。
主控芯片內(nèi)部的數(shù)據(jù)流涉及多個(gè)ECC環(huán)節(jié),這些ECC環(huán)節(jié)在數(shù)據(jù)傳輸和存儲(chǔ)的不同階段有不同的要求。
對(duì)固態(tài)數(shù)據(jù)存儲(chǔ)而言,隨著從單層SLC到多層閃存的發(fā)展,誤碼率增加的同時(shí),對(duì)ECC的要求也隨之提升。最初我們使用的是BCH碼,這是一種代數(shù)碼。隨著原始誤碼率的增加,我們改進(jìn)了BCH碼,并開始使用LDPC碼,從短碼發(fā)展到更長(zhǎng)的碼,以提升糾錯(cuò)性能。
對(duì)于LDPC碼,我們采用了硬判決和軟判決的方法。在初期,可以使用硬判決,而后期則需要使用軟判決。
我們對(duì)ECC的優(yōu)化設(shè)計(jì)需要考慮到信道動(dòng)態(tài)匹配,也要考慮譯碼結(jié)構(gòu),好的譯碼結(jié)構(gòu)對(duì)于高吞吐量非常重要。此外,還要考慮實(shí)現(xiàn)的復(fù)雜度,要能夠快速收斂,如果迭代的次數(shù)過多,那就會(huì)對(duì)時(shí)延帶來很大影響。
我曾經(jīng)從事通信領(lǐng)域的研究,后來轉(zhuǎn)向存儲(chǔ)領(lǐng)域。我發(fā)現(xiàn),無論是通信還是存儲(chǔ),它們的本質(zhì)都是實(shí)現(xiàn)信息的傳輸,區(qū)別僅在于通信是在空間上進(jìn)行信息傳輸,而存儲(chǔ)則是在時(shí)間軸上進(jìn)行。因此,通信領(lǐng)域的技術(shù)同樣適用于數(shù)據(jù)存儲(chǔ)。
ECC的發(fā)展歷史悠久,從最早的糾錯(cuò)碼、格雷碼、漢明碼、卷積碼,到BCH碼和RS碼,這些都是很好的代數(shù)碼,但代數(shù)碼缺乏好的譯碼算法,所以,在閃存的應(yīng)用中逐步被LDPC碼替代了。
LDPC碼在60年代就出現(xiàn)了,但由于算力有限,它的譯碼就沒有辦法來實(shí)現(xiàn)。隨著計(jì)算處理能力的提升,LDPC碼的譯碼成為可能。隨著糾錯(cuò)碼的發(fā)展,譯碼算法也在不斷優(yōu)化和進(jìn)步,我們看到,第五代通信中開始使用極化碼。
我們通過圖表展示了不同編碼的糾錯(cuò)能力和容量線逼近程度。從圖中可以看出,不同碼的糾錯(cuò)能力不同,左側(cè)漢明碼的糾錯(cuò)能力很差,越靠右,糾錯(cuò)能力越強(qiáng)。
前面對(duì)LDPC做了介紹,最近,全局耦合LDPC碼(GC-LDPC碼)在通信和存儲(chǔ)領(lǐng)域都顯示出了良好的應(yīng)用前景。
它最大的特點(diǎn)是可以并行譯碼,以提高譯碼速度,這樣一來,在閃存使用的初期僅使用短碼就可以。到后期,隨著誤碼率增加,就可以用全局耦合的LDPC碼,它有很高的吞吐率,并行度和收斂方面也有很好的性能,可以提升它的糾錯(cuò)能力
然而,全局耦合的LDPC碼也有一些問題。首先,在編碼時(shí)的復(fù)雜度會(huì)有些提高。而且,譯碼過程中如有全局譯碼不通過的情況,它需要把前面所有的譯碼塊都帶進(jìn)來,重新進(jìn)行譯碼,這樣會(huì)造成時(shí)延的增加。
因此,我們提出了改進(jìn)型的GC-LDPC碼,對(duì)它的較驗(yàn)矩陣進(jìn)行了全新的優(yōu)化。優(yōu)化后降低了編碼復(fù)雜度,同時(shí),在全局譯碼過程中,碼塊譯碼成功后,就不需要重新譯碼了。經(jīng)測(cè)試發(fā)現(xiàn),到跟傳統(tǒng)的碼相比來說,改進(jìn)后的GC-LDPC性能有一個(gè)比較大的提升。
總的來說,隨著閃存容量的增加,它對(duì)ECC提出了更高要求。而新型的GC-LDPC碼能夠很好地適應(yīng)這些要求,提高存儲(chǔ)系統(tǒng)的可靠性和性能。前期可以通過并行分布進(jìn)行譯碼,后期,當(dāng)信道比較差的時(shí)候,則通過引入全局迭代來提升糾錯(cuò)能力。
最后,我想簡(jiǎn)單介紹一下我們的團(tuán)隊(duì)。我們的團(tuán)隊(duì)包括十多名老師和60至70名學(xué)生,我們不僅研究通信,還研究數(shù)據(jù)存儲(chǔ)。
我們的研究方向包括器件特性分析、信道建模、LDPC硬件實(shí)現(xiàn)和DNA數(shù)據(jù)存儲(chǔ)等。在DNA數(shù)據(jù)存儲(chǔ)領(lǐng)域,ECC需要解決的錯(cuò)誤類型與傳統(tǒng)通信領(lǐng)域不同,這也是我們研究的重點(diǎn)之一。
感謝大家的聆聽,這就是我的分享。
以上內(nèi)容根據(jù)現(xiàn)場(chǎng)速記整理,由于內(nèi)容涉及較多專業(yè)內(nèi)容,如有錯(cuò)誤歡迎指出。