NAND閃存深入解析
為了提供指令,處理器在數(shù)據(jù)總線上輸出想要的指令,并輸出地址0010h;為了輸出任意數(shù)量的地址周期,處理器僅僅要依次在處理器地址0020h之后輸出想要的NAND地址。注意,許多處理器能在處理器的寫(xiě)信號(hào)周?chē)付ㄈ舾蓵r(shí)序參數(shù),這對(duì)于建立合適的時(shí)序是至關(guān)重要的。利用該技術(shù),你不必采用任何粘接邏輯,就可以直接從處理器存取指令、地址和數(shù)據(jù)。
多層單元
多層單元(MLC)的每一個(gè)單元存儲(chǔ)兩位,而傳統(tǒng)的SLC僅僅能存儲(chǔ)一位。MLC技術(shù)有顯著的密度優(yōu)越性,然而,與SLC相比(表3),其速度或可靠性稍遜。因此,SLC被用于大多數(shù)媒體卡和無(wú)線應(yīng)用,而MLC器件通常被用于消費(fèi)電子和其它低成本產(chǎn)品。
如上所述,NAND需要ECC以確保數(shù)據(jù)完整性。NAND閃存的每一個(gè)頁(yè)面上都包括額外的存儲(chǔ)空間,它就是6?個(gè)字節(jié)的空閑區(qū)(每512字節(jié)的扇區(qū)有16字節(jié))。該區(qū)能存儲(chǔ)ECC代碼及其它像磨損評(píng)級(jí)或邏輯到物理塊映射之類(lèi)的信息。ECC能在硬件或軟件中執(zhí)行,但是,硬件執(zhí)行有明顯的性能優(yōu)勢(shì)。在編程操作期間,ECC單元根據(jù)扇區(qū)中存儲(chǔ)的數(shù)據(jù)來(lái)計(jì)算誤碼校正代碼。數(shù)據(jù)區(qū)的ECC代碼然后被分別寫(xiě)入到各自的空閑區(qū)。當(dāng)數(shù)據(jù)被讀出時(shí),ECC代碼也被讀出;運(yùn)用反操作可以核查讀出的數(shù)據(jù)是否正確。
有可能采用ECC算法來(lái)校正數(shù)據(jù)錯(cuò)誤。能校正的錯(cuò)誤的數(shù)量取決于所用算法的校正強(qiáng)度。在硬件或軟件中包含ECC,就提供了強(qiáng)大的系統(tǒng)級(jí)解決方案。最簡(jiǎn)單的硬件實(shí)現(xiàn)方案是采用簡(jiǎn)單的漢明(Simple Hamming)碼,但是,只能校正單一位錯(cuò)誤。瑞德索羅門(mén)(Reed-Solomon)碼提供更為強(qiáng)大的糾錯(cuò),并被目前的控制器廣為采用。此外,BCH碼由于比瑞德索羅門(mén)方法的效率高,應(yīng)用也日益普及。
要用軟件執(zhí)行NAND閃存的區(qū)塊管理。該軟件負(fù)責(zé)磨損評(píng)級(jí)或邏輯到物理映射。該軟件還提供ECC碼,如果處理器不包含ECC硬件的話。
編程或擦除操作之后,重要的是讀狀態(tài)寄存器,因?yàn)樗_認(rèn)是否成功地完成了編程或擦除操作。如果操作失敗,要把該區(qū)塊標(biāo)記為損壞且不能再使用。以前已編寫(xiě)進(jìn)去的數(shù)據(jù)要從損壞的區(qū)塊中搬出,轉(zhuǎn)移到新的(好的)存儲(chǔ)塊之中。2Gb NAND的規(guī)范規(guī)定,它可以最多有40個(gè)壞的區(qū)塊,這個(gè)數(shù)字在器件的生命周期(額定壽命為10萬(wàn)次編程/擦除周期)內(nèi)都適用。一些有壞塊的NAND器件能夠出廠,主要就歸根于其裸片面積大。管理器件的軟件負(fù)責(zé)映射壞塊并由好的存儲(chǔ)塊取而代之。
利用工廠對(duì)這些區(qū)塊的標(biāo)記,軟件通過(guò)掃描塊可以確定區(qū)塊的好壞。壞塊標(biāo)記被固定在空閑區(qū)的第一個(gè)位置(列地址2048)。如果在0或1頁(yè)的列地址2048上的數(shù)據(jù)是“non-FF”,那么,該塊要標(biāo)記為壞,并映射出系統(tǒng)。初始化軟件僅僅需要掃描所有區(qū)塊確定以確定哪個(gè)為壞,然后建一個(gè)壞塊表供將來(lái)參考。
小心不要擦除壞塊標(biāo)記,這一點(diǎn)很重要。工廠在寬溫和寬電壓范圍內(nèi)測(cè)試了NAND;一些由工廠標(biāo)記為壞的區(qū)塊可能在一定的溫度或電壓條件下仍然能工作,但是,將來(lái)可能會(huì)失效。如果壞塊信息被擦除,就無(wú)法再恢復(fù)。
評(píng)論