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