閃存的形態(tài)很多時(shí)就存在著很多問(wèn)題,比如可靠性,比如壽命,如何對(duì)閃存進(jìn)行評(píng)測(cè)和標(biāo)準(zhǔn)制定呢?
首先,為什么要制定標(biāo)準(zhǔn)?所有信息產(chǎn)業(yè)的發(fā)展歷程是一條線路——第一階段是解決從無(wú)到有的問(wèn)題,沒(méi)有CPU就造CPU。第二階段是滿足基本需求,產(chǎn)品能投入應(yīng)用。第三階段,掌握核心技術(shù),參與標(biāo)準(zhǔn)制定,最后就是形成完整的產(chǎn)業(yè)鏈。
而形成完整的產(chǎn)業(yè)鏈一定是標(biāo)準(zhǔn)先行。
閃存的發(fā)展歷程中,早期是各國(guó)亂戰(zhàn)局面。2006年,由于接口不同,接口命令也不同,彼此之間無(wú)法兼容,六家廠商成立聯(lián)盟——開(kāi)放式NAND閃存接口,即ONFI。2007年,三星和東芝聯(lián)手推出了Toggle接口標(biāo)準(zhǔn)。好處是后端使用芯片可以快速開(kāi)發(fā),真正落地到產(chǎn)品。ONFI和Toggle也就是我們現(xiàn)在用的閃存接口標(biāo)準(zhǔn)。
對(duì)國(guó)內(nèi)的存儲(chǔ),從介質(zhì)到控制器到設(shè)備及各類存儲(chǔ)軟件,我們已經(jīng)有了一定的生態(tài)系統(tǒng)和產(chǎn)業(yè)鏈。圍繞從下層到上層的過(guò)程也在制定不同的存儲(chǔ)類標(biāo)準(zhǔn),比如云存儲(chǔ)標(biāo)準(zhǔn),閃存標(biāo)準(zhǔn)等。
但協(xié)議和標(biāo)準(zhǔn)也存在一些問(wèn)題。很多來(lái)自國(guó)外直接翻譯,并且為了保證兼容性,我們無(wú)法加入自主協(xié)議。此外還存在測(cè)評(píng)體系不完善的問(wèn)題,說(shuō)明評(píng)價(jià)標(biāo)準(zhǔn)還沒(méi)有評(píng)價(jià)起來(lái)。
比如我們有很多的SSD廠商,如何比較各個(gè)盤?這不是簡(jiǎn)單的0和1的過(guò)程,不同的SSD本來(lái)應(yīng)用不一樣,一個(gè)是消費(fèi)級(jí)的SSD或企業(yè)級(jí)的SSD,或者軍工級(jí)的SSD級(jí),一開(kāi)始針對(duì)不同應(yīng)用時(shí),設(shè)計(jì)主控的體系架構(gòu)完全不同,比如用到軍工時(shí)考慮的最關(guān)鍵因素是環(huán)境適應(yīng)性,這時(shí)候需要犧牲性能,降低讀寫性能保證寬溫的特性。閃存介質(zhì)本身并不完美,因此我們要制定一系列的標(biāo)準(zhǔn)。
閃存是什么樣的介質(zhì)?
對(duì)于閃存來(lái)講,增加容量有三種技術(shù):
首先把樓蓋高,采用堆疊方式提高容量。
第二是讓房間里坐得“人”越多越好,采用了多位方式。
第三是房間里做得“人”越瘦越好,可以放得更多。
用這三種方式提高容量,我們看到的是“人”擠“人”,會(huì)導(dǎo)致數(shù)據(jù)存進(jìn)去之后彼此之間的串?dāng)_增大,導(dǎo)致可靠性降低。
另外一個(gè)問(wèn)題在于閃存的機(jī)理決定了會(huì)有壽命受限問(wèn)題。對(duì)閃存來(lái)講,存數(shù)據(jù)靠得是三層,寫時(shí)把電荷往里寫,會(huì)導(dǎo)致相關(guān)漏洞,存儲(chǔ)電荷能力變?nèi)?,這是閃存存在的壽命問(wèn)題。
多值存儲(chǔ)時(shí),讓閾值電壓分布變得很窄。寫入次數(shù)增多,即PE增加時(shí),閾值電壓的分布在展寬,這時(shí)面臨的問(wèn)題是,兩個(gè)數(shù)據(jù)之間進(jìn)行交叉,數(shù)據(jù)會(huì)出錯(cuò),其實(shí)是氧化層的磨損和退化造成的。
另外一個(gè)問(wèn)題是,當(dāng)采用3D方式時(shí),單元間耦合電容變大,這就存在可靠性的問(wèn)題。
到底如何衡量閃存的壽命?
閃存是數(shù)據(jù)存儲(chǔ)的基石或存儲(chǔ)的單元。硬盤唯一的缺點(diǎn)是數(shù)據(jù)能存就存,不能存就報(bào)錯(cuò)。而閃存是漸變退化的方式。何時(shí)芯片壽命終止?當(dāng)PE次數(shù)增加時(shí),PE的可靠性越來(lái)越低,閾值電壓的展寬變大。當(dāng)錯(cuò)誤率隨閾值電壓漂移增加時(shí),誤碼率越來(lái)越嚴(yán)重,當(dāng)達(dá)到ECC糾錯(cuò)能力時(shí)就被認(rèn)為是壽命終止。
ECC做糾錯(cuò)時(shí)有一個(gè)最大糾錯(cuò)能力,當(dāng)達(dá)到最大糾錯(cuò)能力時(shí)會(huì)輸出錯(cuò)誤數(shù)據(jù),這時(shí)輸出的數(shù)據(jù)不可用,可以從這個(gè)角度判斷芯片的壽命終止。
整個(gè)誤碼率最后和哪幾個(gè)因素有關(guān)?和PE有關(guān),但和讀的次數(shù)也有關(guān)系。為什么會(huì)這樣?從這些方面來(lái)看,我們是否有辦法對(duì)閃存芯片進(jìn)行快速測(cè)試,告訴大家閃存的壽命或?qū)儆谀膫€(gè)級(jí)別的閃存,給哪一類用戶使用,這是我們想要做的一件事情。
我們發(fā)現(xiàn),如果能建立一個(gè)規(guī)則的模型做這件事情很難,因?yàn)楸緛?lái)所呈現(xiàn)出來(lái)的所有的數(shù)據(jù)關(guān)系都是非線性關(guān)系。第二,不同批次的閃存,不同廠家的閃存所面臨的現(xiàn)象完全不一樣,沒(méi)有辦法統(tǒng)一建模。最簡(jiǎn)單的方法是機(jī)器學(xué)習(xí)的方法,可以用黑盒的方式進(jìn)行表示。
除了編程延遲和擦除延遲可以判斷壽命,還可以用原始誤碼率的總數(shù),原始錯(cuò)誤調(diào)和平均值等多元化數(shù)據(jù)的方式。
基于AI對(duì)閃存的數(shù)據(jù)進(jìn)行預(yù)測(cè),首先對(duì)閃存芯片進(jìn)行測(cè)試?;谀承┕潭≒E的周期實(shí)驗(yàn)獲取序列數(shù)據(jù)集。我們采用的方式是每一個(gè)PE周期記錄數(shù)據(jù)。這時(shí)候?qū)懭胧裁礃拥哪J剑缓蟛杉卣鲾?shù)據(jù)集,在這個(gè)過(guò)程中,特征數(shù)據(jù)集采用得是剛才分析的數(shù)據(jù),然后基于機(jī)器學(xué)習(xí)訓(xùn)練方法進(jìn)行訓(xùn)練,在訓(xùn)練過(guò)程中采用GP(遺傳編程)的算法和人工神經(jīng)網(wǎng)絡(luò)的方法,其實(shí)有更多AI的方面可以嘗試。
關(guān)于輸出,基于AI計(jì)算時(shí)輸出可以選擇,在輸出過(guò)程中選了兩類,一類是剩余壽命一類是百分比,進(jìn)行動(dòng)態(tài)學(xué)習(xí)的過(guò)程。
還有采用的另一種方法是CNN(卷積神經(jīng)網(wǎng)絡(luò))的方法,好處是自學(xué)習(xí)、自適應(yīng)、自組織,比較適合用非線性系統(tǒng)進(jìn)行建模。關(guān)于如何對(duì)閃存壽命進(jìn)行評(píng)測(cè),我們寫了一個(gè)基本框架,即對(duì)于閃存壽命測(cè)試的基本框架。我們也有不同的測(cè)試方式,這不一定完善,今天拋出來(lái),希望各個(gè)廠商可以給更多指導(dǎo)意見(jiàn)。在試驗(yàn)方法方面,對(duì)故障的類型以及耐久力等進(jìn)行測(cè)試,最后會(huì)形成一套評(píng)估方法給出對(duì)于該閃存屬于什么樣的等級(jí)和壽命,給大家做指導(dǎo)性的標(biāo)準(zhǔn)。
今天主要是拋磚引玉大家一起討論,謝謝各位同行,請(qǐng)批評(píng)指正。
(本文未經(jīng)演講人審核)