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