一種nand flash壞塊管理系統(tǒng)及方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于集成電路存儲(chǔ)技術(shù)領(lǐng)域,特別涉及一種NAND FLASH壞塊管理系統(tǒng)及方法。
【背景技術(shù)】
[0002]FLASH,是一種電子式可清除程序化只讀存儲(chǔ)器的形式,允許在操作中被多次擦或?qū)懙拇鎯?chǔ)器。這種科技主要用于一般性數(shù)據(jù)存儲(chǔ),以及在電腦與其他數(shù)字產(chǎn)品間交換傳輸數(shù)據(jù),如儲(chǔ)存卡與U盤。閃存是一種特殊的、以宏塊抹寫的EEPROM。早期的閃存進(jìn)行一次抹除掉就會(huì)清除掉整顆芯片上的數(shù)據(jù)。閃存是非易失性的存儲(chǔ)器。這表示單就保存數(shù)據(jù)而言,它是不需要消耗電力的。與硬盤相比,閃存也有更佳的動(dòng)態(tài)抗震性。這些特性正是閃存被移動(dòng)設(shè)備廣泛采用的原因。閃存將數(shù)據(jù)存儲(chǔ)在由浮閘晶體管組成的記憶單元數(shù)組內(nèi),在單階存儲(chǔ)單元(Single-level cell, SLC)設(shè)備中,每個(gè)單元只存儲(chǔ)I比特的信息。而多階存儲(chǔ)單元(Mult1-level cell, MLC)設(shè)備則利用多種電荷值的控制讓每個(gè)單元可以存儲(chǔ)I比特以上的數(shù)據(jù)。
[0003]NOR型閃存內(nèi)部記憶單元以平行方式連接到比特線,允許個(gè)別讀取與程序化記憶單元。這種記憶單元的平行連接類似于CMOS NOR閘中的晶體管平行連接。NOR型閃存面世后,成為比現(xiàn)有的EPROM與EEPROM存儲(chǔ)器更經(jīng)濟(jì)、更方便的復(fù)寫型只讀存儲(chǔ)器。NOR的傳輸效率很高,在I?4MB的小容量時(shí)具有很高的成本效益,但是很低的寫入和擦除速度大大影響了它的性能。
[0004]NAND型閃存內(nèi)部記憶單元以順序方式連接,類似于NAND閘。順序連接方式所占空間較平行連接方式為小,降低了 NAND型閃存的成本。因?yàn)椴捎庙樞蜻B接方式及去除字符組的接觸點(diǎn),NAND型閃存記憶單元的大型閘格所占面積只有NOR型記憶單元的60%。NAND結(jié)構(gòu)能提供極高的單元密度,可以達(dá)到高存儲(chǔ)密度,并且寫入和擦除的速度也很快。應(yīng)用NAND的困難在于flash的管理需要特殊的系統(tǒng)接口。為了能夠有效使用NAND FLASH,需要在讀寫操作前建立壞塊表,用于屏蔽壞塊,防止破壞數(shù)據(jù)有效性。
【發(fā)明內(nèi)容】
[0005]本發(fā)明的目的是提供一種NAND FLASH壞塊管理系統(tǒng)及方法。
[0006]本發(fā)明的技術(shù)方案是,一種NAND FLASH壞塊管理系統(tǒng),包括NAND FLASH接口控制單元、壞塊管理單元、非易失性存儲(chǔ)器接口控制單元和非易失性存儲(chǔ)器,
[0007]所述NAND FLASH接口控制單元連接NAND FLASH陣列,
[0008]所述NAND FLASH接口控制單元連接壞塊管理單元,
[0009]所述壞塊管理單元通過非易失性存儲(chǔ)器接口控制單元連接非易失性存儲(chǔ)器。
[0010]進(jìn)一步的,所述的非易失性存儲(chǔ)器是EEPR0M。
[0011]進(jìn)一步的,所述的壞塊管理單元基于FPGA。
[0012]一種NAND FLASH壞塊管理方法,所述的NAND FLASH壞塊管理方法包括更新壞塊表,具體步驟如下:
[0013]按照塊地址遞增的順序遍歷NAND FLASH陣列的每一個(gè)塊單元;
[0014]查看當(dāng)前塊的首個(gè)OOB區(qū)域,如果該區(qū)域的第一個(gè)字節(jié)為00H,表示該塊單元為壞塊,如果不為00H,那么對(duì)該塊進(jìn)行擦除操作,
[0015]如果狀態(tài)寄存器顯示擦除成功,則進(jìn)行誤碼檢測,否則將首個(gè)OOB區(qū)域的第一個(gè)字節(jié)數(shù)據(jù)編程為OOH用于標(biāo)記該壞塊,同時(shí)在壞塊表中將該地址代表的塊標(biāo)記為壞塊。
[0016]進(jìn)一步的,所述的誤碼檢測通過寫入全O數(shù)據(jù),再通過讀取操作檢驗(yàn)非O個(gè)數(shù)來判斷誤碼個(gè)數(shù),重復(fù)進(jìn)行若干次,若超過糾錯(cuò)性能則標(biāo)記為壞塊。
[0017]進(jìn)一步的,所述壞塊表保存在片上RAM中。
[0018]進(jìn)一步的,所述誤碼檢測完成后,將片上RAM保存的壞塊表寫入到非易失性存儲(chǔ)器的相應(yīng)存儲(chǔ)區(qū)域,用于更新壞塊表。
[0019]進(jìn)一步的,更新壞塊表時(shí),跳過當(dāng)前壞塊,對(duì)其余塊進(jìn)行包括擦除和誤碼檢測。
[0020]一種NAND FLASH壞塊管理方法,所述的NAND FLASH壞塊管理方法包括讀取壞塊表,當(dāng)讀取壞塊表時(shí),通過比較三份備份判斷是否發(fā)生掉電事件,
[0021]如果三份備份數(shù)據(jù)相同,則壞塊保存過程中過程完整,數(shù)據(jù)有效,如果不同,則選取壞塊數(shù)量最多的備份作為有效壞塊表,更新其余兩份備份。
[0022]進(jìn)一步的,進(jìn)行更新壞塊表操作。
[0023]本發(fā)明的技術(shù)方案在系統(tǒng)上電后,根據(jù)需求決定更新壞塊表或讀取壞塊表。系統(tǒng)更新壞塊表時(shí),跳過現(xiàn)有壞塊,對(duì)其余塊進(jìn)行壞塊檢測,包括擦除檢測以及誤碼檢測。檢測完成后更新壞塊表。
[0024]系統(tǒng)讀取壞塊表時(shí),通過比較三份備份判斷是否發(fā)生掉電事件。如果三份備份數(shù)據(jù)相同,則壞塊保存過程中過程完整,數(shù)據(jù)有效。如果不同,則選取壞塊數(shù)量最多的備份作為有效壞塊表,更新其余兩份備份,同時(shí)建議重新進(jìn)行壞塊檢測更新操作。
[0025]在上述實(shí)現(xiàn)NAND FLASH壞塊管理的方法中,對(duì)壞塊的檢測分為擦除檢測和誤碼檢測兩部分。擦除檢測通過對(duì)選中塊進(jìn)行擦除操作,根據(jù)擦除結(jié)果判斷選中塊的有效性。誤碼檢測通過對(duì)通過擦除檢測的塊進(jìn)行數(shù)據(jù)寫入和讀出比對(duì),判斷誤碼出現(xiàn)次數(shù),超過現(xiàn)有系統(tǒng)的誤碼校驗(yàn)?zāi)芰Γ瑒t標(biāo)記為壞塊。
[0026]在上述實(shí)現(xiàn)NAND FLASH壞塊管理的方法中,對(duì)壞塊的更新通過三次寫入來防止掉電等特殊情況帶來的數(shù)據(jù)有效性的破壞。
[0027]本發(fā)明提及的OOB區(qū)域,OOB是out of band縮寫,帶外的意思。最初基于NandFlash的硬件特性:數(shù)據(jù)在讀寫時(shí)候相對(duì)容易錯(cuò)誤,所以為了保證數(shù)據(jù)的正確性,必須要有對(duì)應(yīng)的檢測和糾錯(cuò)機(jī)制,此機(jī)制被叫做EDC(Error Detect1n Code)/ECC(Error CodeCorrect1n,錯(cuò)誤碼糾正,或者Error Checking and Correcting),所以設(shè)計(jì)了多余的區(qū)域,用于放置數(shù)據(jù)的校驗(yàn)值。
[0028]本發(fā)明可以提高壞塊表的有效性,提高NAND FLASH在使用過程中存儲(chǔ)讀取數(shù)據(jù)的準(zhǔn)確性,提高效率。
【附圖說明】
[0029]圖1是本發(fā)明的設(shè)計(jì)結(jié)構(gòu)示意圖;
[0030]圖2是本發(fā)明的NAND FLASH壞塊檢測程序流程圖;
[0031]圖3是本發(fā)明的在系統(tǒng)中的應(yīng)用示意圖。
【具體實(shí)施方式】
[0032]如圖1所示,本發(fā)明包括NAND FLASH的接口控制單元,非易失性存儲(chǔ)器的接口控制單元以及壞塊管理單元。非易失性存儲(chǔ)器可以為EEPROM,比常規(guī)的寫入在NAND FLASH的OOB區(qū)域帶來更高的數(shù)據(jù)有效性。
[0033]如圖2所示,按照塊地址(Block Address)遞增的順序遍歷NAND FLASH陣列的每一個(gè)塊(Block)單元,查看當(dāng)前塊(Block)的首個(gè)OOB區(qū)域,如果該區(qū)域的第一個(gè)字節(jié)(Byte)為8’h00,表示該Block單元為壞塊。如果不為8’h00,那么對(duì)該塊進(jìn)行擦除操作,如果狀態(tài)寄存器顯示擦除成功,則進(jìn)行誤碼檢測,否則將首個(gè)00B區(qū)域的第一個(gè)字節(jié)(Byte)數(shù)據(jù)編程為8’ h00用于標(biāo)記該壞塊,同時(shí)在嵌入式系統(tǒng)片上RAM的壞塊表中將該地址代表的塊(Block)標(biāo)記為壞塊。誤碼檢測通過寫入全O數(shù)據(jù),再通過讀取操作檢驗(yàn)非O個(gè)數(shù)來判斷誤碼個(gè)數(shù),重復(fù)進(jìn)行三次,若超過糾錯(cuò)性能則標(biāo)記為壞塊。在NAND FLASH陣列完成上述操作后,將片上RAM保存的壞塊表寫入到EEPROM的相應(yīng)存儲(chǔ)區(qū)域,用于更新壞塊表。
[0034]如圖3所示,系統(tǒng)中的FPGA通過本發(fā)明控制NAND FLASH,并將壞塊數(shù)據(jù)通過本發(fā)明與EEPROM進(jìn)行交互。
【主權(quán)項(xiàng)】
1.一種NAND FLASH壞塊管理系統(tǒng),其特征在于,包括NAND FLASH接口控制單元、壞塊管理單元、非易失性存儲(chǔ)器接口控制單元和非易失性存儲(chǔ)器, 所述NAND FLASH接口控制單元連接NAND FLASH陣列, 所述NAND FLASH接口控制單元連接壞塊管理單元, 所述壞塊管理單元通過非易失性存儲(chǔ)器接口控制單元連接非易失性存儲(chǔ)器。
2.如權(quán)利要求1所述的NANDFLASH壞塊管理系統(tǒng),其特征在于,所述的非易失性存儲(chǔ)器是 EEPROM。
3.如權(quán)利要求1所述的NANDFLASH壞塊管理系統(tǒng),其特征在于,所述的壞塊管理單元基于FPGA。
4.一種NAND FLASH壞塊管理方法,采用如權(quán)利要求1所述的NAND FLASH壞塊管理系統(tǒng),其特征在于,所述的NAND FLASH壞塊管理方法包括更新壞塊表,具體步驟如下: 按照塊地址遞增的順序遍歷NAND FLASH陣列的每一個(gè)塊單元; 查看當(dāng)前塊的首個(gè)OOB區(qū)域,如果該區(qū)域的第一個(gè)字節(jié)為00H,表示該塊單元為壞塊,如果不為00H,那么對(duì)該塊進(jìn)行擦除操作, 如果狀態(tài)寄存器顯示擦除成功,則進(jìn)行誤碼檢測,否則將首個(gè)OOB區(qū)域的第一個(gè)字節(jié)數(shù)據(jù)編程為OOH用于標(biāo)記該壞塊,同時(shí)在壞塊表中將該地址代表的塊標(biāo)記為壞塊。
5.如權(quán)利要求4所述的NANDFLASH壞塊管理方法,其特征在于,所述的誤碼檢測通過寫入全O數(shù)據(jù),再通過讀取操作檢驗(yàn)非O個(gè)數(shù)來判斷誤碼個(gè)數(shù),重復(fù)進(jìn)行若干次,若超過糾錯(cuò)性能則標(biāo)記為壞塊。
6.如權(quán)利要求4所述的NANDFLASH壞塊管理方法,其特征在于,所述壞塊表保存在片上RAM中。
7.如權(quán)利要求6所述的NANDFLASH壞塊管理方法,其特征在于,所述誤碼檢測完成后,將片上RAM保存的壞塊表寫入到非易失性存儲(chǔ)器的相應(yīng)存儲(chǔ)區(qū)域,用于更新壞塊表。
8.如權(quán)利要求4所述的NANDFLASH壞塊管理方法,其特征在于,更新壞塊表時(shí),跳過當(dāng)前壞塊,對(duì)其余塊進(jìn)行包括擦除和誤碼檢測。
9.一種NAND FLASH壞塊管理方法,采用如權(quán)利要求1所述的NAND FLASH壞塊管理系統(tǒng),其特征在于,所述的NAND FLASH壞塊管理方法包括讀取壞塊表,當(dāng)讀取壞塊表時(shí),通過比較三份備份判斷是否發(fā)生掉電事件, 如果三份備份數(shù)據(jù)相同,則壞塊保存過程中過程完整,數(shù)據(jù)有效,如果不同,則選取壞塊數(shù)量最多的備份作為有效壞塊表,更新其余兩份備份。
10.如權(quán)利要求9所述的NANDFLASH壞塊管理方法,其特征在于,進(jìn)行如權(quán)利要求4所述的更新壞塊表操作。
【專利摘要】本發(fā)明公開了一種NAND FLASH壞塊管理系統(tǒng),包括NAND FLASH接口控制單元、壞塊管理單元、非易失性存儲(chǔ)器接口控制單元和非易失性存儲(chǔ)器,所述NAND FLASH接口控制單元連接NAND FLASH陣列,所述NAND FLASH接口控制單元連接壞塊管理單元,所述壞塊管理單元通過非易失性存儲(chǔ)器接口控制單元連接非易失性存儲(chǔ)器。所述的非易失性存儲(chǔ)器是EEPROM。所述的壞塊管理單元基于FPGA。
【IPC分類】G06F12-02
【公開號(hào)】CN104765695
【申請?zhí)枴緾N201510158107
【發(fā)明人】周仕成, 殷科軍, 舒汀, 唐斌, 郁文賢, 黃飛
【申請人】上海交通大學(xué), 上海無線電設(shè)備研究所
【公開日】2015年7月8日
【申請日】2015年4月3日