本發(fā)明涉及計算機存儲技術(shù)領(lǐng)域,特別是涉及一種固態(tài)硬盤SSD存儲系統(tǒng)及方法。
背景技術(shù):
隨著計算機存儲技術(shù)的快速發(fā)展,SSD(Solid State Drives,固態(tài)硬盤)已逐步取代傳統(tǒng)的機械硬盤。SSD具有超大容量、超高速等特性,其依靠NAND Flash芯片存儲數(shù)據(jù),幾十片或者上百片的NAND Flash芯片可以組成大容量的SSD。
隨著NAND Flash芯片的高速發(fā)展,NAND Flash芯片從2D NAND Flash發(fā)展到3D NAND Flash,容量更大、讀寫速度更快,從而對于3D NAND Flash的控制技術(shù)要求更高才能保證操作無誤。傳統(tǒng)的控制技術(shù)已經(jīng)無法滿足NAND Flash芯片發(fā)展的需求,亟需一種新的訪問控制技術(shù),增強數(shù)據(jù)安全性,提高糾錯能力。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的是提供一種固態(tài)硬盤SSD存儲系統(tǒng)及方法,以增強數(shù)據(jù)安全性,提高數(shù)據(jù)糾錯能力,進(jìn)而延長SSD的使用壽命。
一種固態(tài)硬盤SSD存儲系統(tǒng),包括寫隨機化模塊、循環(huán)冗余校驗CRC產(chǎn)生模塊、低密度奇偶校驗碼LDPC編碼模塊、BCH編碼模塊和Flash通道控制模塊,其中,
所述寫隨機化模塊,用于利用第一隨機種子對待寫入到所述NAND Flash芯片的頁面存儲中的第一數(shù)據(jù)進(jìn)行隨機化處理,獲得第一隨機數(shù)據(jù);并將所述第一隨機種子和所述第一隨機數(shù)據(jù)輸入到所述CRC產(chǎn)生模塊中;
所述CRC產(chǎn)生模塊,用于根據(jù)所述第一隨機種子和所述第一隨機數(shù)據(jù),生成第一CRC校驗位信息;并將所述第一隨機種子、所述第一隨機數(shù)據(jù)和所述第一CRC校驗位信息輸入到所述LDPC編碼模塊中;
所述LDPC編碼模塊,用于根據(jù)所述第一隨機種子、所述第一隨機數(shù)據(jù)和所述第一CRC校驗位信息,生成第一LDPC校驗位信息;并將所述第一隨機種子、所述第一隨機數(shù)據(jù)、所述第一CRC校驗位信息和所述第一LDPC校驗位信息輸入到所述BCH編碼模塊中;
所述BCH編碼模塊,用于對所述第一LDPC校驗位信息進(jìn)行BCH編碼,生成第一BCH校驗位信息;并通過所述Flash通道控制模塊將所述第一隨機種子、所述第一隨機數(shù)據(jù)、所述第一CRC校驗位信息、所述第一LDPC校驗位信息和所述第一BCH校驗位信息存放到所述NAND Flash芯片的頁面存儲中。
在本發(fā)明的一種具體實施方式中,還包括BCH解碼模塊、LDPC解碼模塊、CRC確認(rèn)模塊和讀去隨機化模塊,其中,
所述BCH解碼模塊,用于通過所述Flash通道控制模塊從所述NAND Flash芯片的頁面存儲中讀取第二數(shù)據(jù)對應(yīng)的第二BCH校驗位信息和第二LDPC校驗位信息;對所述第二BCH校驗位信息進(jìn)行BCH解碼,并根據(jù)第二LDPC校驗位信息確定正確的LDPC校驗位信息,將所述正確的LDPC校驗位信息輸出給所述LDPC解碼模塊;
所述LDPC解碼模塊,用于通過所述Flash通道控制模塊從所述NAND Flash芯片的頁面存儲中讀取所述第二數(shù)據(jù)對應(yīng)的第二隨機數(shù)據(jù)、第二CRC校驗位信息和第二隨機種子;根據(jù)所述正確的LDPC校驗位信息,還原LDPC原數(shù)據(jù);
所述CRC確認(rèn)模塊,用于根據(jù)所述第二CRC校驗信息確認(rèn)第二隨機數(shù)據(jù);
所述讀去隨機化模塊,用于對所述第二隨機數(shù)據(jù)進(jìn)行去隨機化處理,將其還原成打亂之前的所述第二數(shù)據(jù),待直接存儲器訪問DMA讀取。
在本發(fā)明的一種具體實施方式中,
所述BCH解碼模塊,具體用于在對所述第二BCH校驗位信息進(jìn)行BCH解碼之后,確定所述第二LDPC校驗位信息是否正確,如果是,則確定所述第二LDPC校驗位信息為正確的LDPC校驗位信息,如果否,則對所述第二LDPC校驗位信息進(jìn)行糾錯處理,獲得正確的LDPC校驗位信息。
在本發(fā)明的一種具體實施方式中,
所述寫隨機化模塊,具體用于利用所述第一隨機種子將所述第一數(shù)據(jù)與設(shè)定比特數(shù)的線性反饋移位寄存器LFSR進(jìn)行隨機化操作。
在本發(fā)明的一種具體實施方式中,所述LFSR由所述第一隨機種子擴展而成。
在本發(fā)明的一種具體實施方式中,所述NAND Flash芯片的頁面存儲包括Flash頁區(qū)域和Flash備用區(qū)域,
所述Flash通道控制模塊,具體用于將所述第一隨機數(shù)據(jù)存放到所述Flash頁區(qū)域中,將所述第一隨機種子、所述第一CRC校驗位信息、所述第一LDPC校驗位信息和所述第一BCH校驗位信息存放到所述Flash備用區(qū)域中。
在本發(fā)明的一種具體實施方式中,還包括:
緩存模塊,用于緩存待寫入到所述NAND Flash芯片的頁面存儲中的第一數(shù)據(jù),或者,緩存經(jīng)過所述讀去隨機化模塊處理后的待所述DMA讀取的第二數(shù)據(jù)。
一種固態(tài)硬盤SSD存儲方法,包括:
利用第一隨機種子對待寫入到所述NAND Flash芯片的頁面存儲中的第一數(shù)據(jù)進(jìn)行隨機化處理,獲得第一隨機數(shù)據(jù);
根據(jù)所述第一隨機種子和所述第一隨機數(shù)據(jù),生成第一CRC校驗位信息;
根據(jù)所述第一隨機種子、所述第一隨機數(shù)據(jù)和所述第一CRC校驗位信息,生成第一LDPC校驗位信息;
對所述第一LDPC校驗位信息進(jìn)行BCH編碼,生成第一BCH校驗位信息;
將所述第一隨機種子、所述第一隨機數(shù)據(jù)、所述第一CRC校驗位信息、所述第一LDPC校驗位信息和所述第一BCH校驗位信息存放到所述NAND Flash芯片的頁面存儲中。
在本發(fā)明的一種具體實施方式中,還包括:
從所述NAND Flash芯片的頁面存儲中讀取第二數(shù)據(jù)對應(yīng)的第二BCH校驗位信息和第二LDPC校驗位信息;
對所述第二BCH校驗位信息進(jìn)行BCH解碼,并根據(jù)第二LDPC校驗位信息確定正確的LDPC校驗位信息;
讀取所述第二數(shù)據(jù)對應(yīng)的第二隨機數(shù)據(jù)、第二CRC校驗位信息和第二隨機種子;
根據(jù)所述正確的LDPC校驗位信息,還原LDPC原數(shù)據(jù);
根據(jù)所述第二CRC校驗信息確認(rèn)第二隨機數(shù)據(jù);
對所述第二隨機數(shù)據(jù)進(jìn)行去隨機化處理,將其還原成打亂之前的所述第二數(shù)據(jù),待直接存儲器訪問DMA讀取。
在本發(fā)明的一種具體實施方式中,所述根據(jù)第二LDPC校驗位信息確定正確的LDPC校驗位信息,包括:
在對所述第二BCH校驗位信息進(jìn)行BCH解碼之后,確定所述第二LDPC校驗位信息是否正確;
如果是,則確定所述第二LDPC校驗位信息為正確的LDPC校驗位信息;
如果否,則對所述第二LDPC校驗位信息進(jìn)行糾錯處理,獲得正確的LDPC校驗位信息。
應(yīng)用本發(fā)明實施例所提供的技術(shù)方案,對于待寫入到NAND Flash芯片的頁面存儲中的第一數(shù)據(jù),首先寫隨機化模塊利用第一隨機種子對其進(jìn)行隨機化處理,獲得第一隨機數(shù)據(jù),CRC產(chǎn)生模塊根據(jù)第一隨機數(shù)據(jù)生成第一CRC校驗位信息,LDPC編碼模塊根據(jù)前面操作產(chǎn)生的數(shù)據(jù)生成第一LDPC校驗位信息,BCH編碼模塊對第一LDPC校驗位信息進(jìn)行BCH編碼,生成第一BCH校驗位信息,通過Flash通道控制模塊將第一隨機種子、第一隨機數(shù)據(jù)、第一CRC校驗位信息、第一LDPC校驗位信息和第一BCH校驗位信息存放到NAND Flash芯片的頁面存儲中。對第一數(shù)據(jù)進(jìn)行隨機化處理,增強了數(shù)據(jù)安全性,使得存儲在NAND Flash芯片的頁面存儲中的數(shù)據(jù)不容易被竊取,同時,采用LDPC編碼模塊對LDPC原數(shù)據(jù)進(jìn)行編碼產(chǎn)生第一LDPC校驗位信息,采用BCH編碼對第一LDPC校驗位信息進(jìn)行編碼得到第一BCH校驗位信息,增強了數(shù)據(jù)糾錯能力。
附圖說明
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明實施例中一種固態(tài)硬盤SSD存儲系統(tǒng)的結(jié)構(gòu)示意圖;
圖2為本發(fā)明實施例中SSD控制器與NAND Flash芯片互連的結(jié)構(gòu)示意圖;
圖3為本發(fā)明實施例中隨機化處理過程示意圖;
圖4為本發(fā)明實施例中CRC校驗位信息生成過程示意圖;
圖5為本發(fā)明實施例中LDPC校驗位信息生成過程示意圖;
圖6為本發(fā)明實施例中BCH校驗位信息生成過程示意圖;
圖7為本發(fā)明實施例中NAND Flash芯片的頁面存儲數(shù)據(jù)格式示意圖;
圖8為本發(fā)明實施例中一種固態(tài)硬盤SSD存儲方法的實施流程圖。
具體實施方式
為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明方案,下面結(jié)合附圖和具體實施方式對本發(fā)明作進(jìn)一步的詳細(xì)說明。顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
參見圖1所示,為本發(fā)明實施例所提供的一種固態(tài)硬盤SSD存儲系統(tǒng)的結(jié)構(gòu)示意圖,該系統(tǒng)包括寫隨機化模塊、循環(huán)冗余校驗CRC產(chǎn)生模塊、低密度奇偶校驗碼LDPC編碼模塊、BCH編碼模塊和Flash通道控制模塊,其中,
所述寫隨機化模塊,用于利用第一隨機種子對待寫入到所述NAND Flash芯片的頁面存儲中的第一數(shù)據(jù)進(jìn)行隨機化處理,獲得第一隨機數(shù)據(jù);并將所述第一隨機種子和所述第一隨機數(shù)據(jù)輸入到所述CRC產(chǎn)生模塊中;
所述CRC產(chǎn)生模塊,用于根據(jù)所述第一隨機種子和所述第一隨機數(shù)據(jù),生成第一CRC校驗位信息;并將所述第一隨機種子、所述第一隨機數(shù)據(jù)和所述第一CRC校驗位信息輸入到所述LDPC編碼模塊中;
所述LDPC編碼模塊,用于根據(jù)所述第一隨機種子、所述第一隨機數(shù)據(jù)和所述第一CRC校驗位信息,生成第一LDPC校驗位信息;并將所述第一隨機種子、所述第一隨機數(shù)據(jù)、所述第一CRC校驗位信息和所述第一LDPC校驗位信息輸入到所述BCH編碼模塊中;
所述BCH編碼模塊,用于對所述第一LDPC校驗位信息進(jìn)行BCH編碼,生成第一BCH校驗位信息;并通過所述Flash通道控制模塊將所述第一隨機種子、所述第一隨機數(shù)據(jù)、所述第一CRC校驗位信息、所述第一LDPC校驗位信息和所述第一BCH校驗位信息存放到所述NAND Flash芯片的頁面存儲中。
本發(fā)明實施例所提供的技術(shù)方案適合對2D NAND Flash芯片和3D NAND Flash芯片進(jìn)行訪問控制。
參見圖2所示,為SSD控制器與NAND Flash芯片互連的結(jié)構(gòu)示意圖,SSD控制器通過PCIe(最新的總線和接口標(biāo)準(zhǔn))與外界連接,NAND Flash芯片的訪問控制系統(tǒng)一共有N個通道,每個通道最多有8個Flash Target(目標(biāo)),每個Flash Target有獨立的片選信號。每個通道的Flash Target控制信號共享使用,數(shù)據(jù)總線也是共享使用。片選信號、控制信號、數(shù)據(jù)總線由NAND Flash芯片訪問控制系統(tǒng)發(fā)出給相應(yīng)的Flash Target,以對該Flash Target進(jìn)行正確的訪問。
在本發(fā)明實施例中,固態(tài)硬盤SSD存儲系統(tǒng)包括寫隨機化模塊、CRC(Cyclic Redundancy check,循環(huán)冗余校驗)產(chǎn)生模塊、LDPC(Low Density Parity Check Code,低密度奇偶校驗碼)編碼模塊、BCH(Bose、Ray-Chaudhuri與Hocquenghem的縮寫)編碼模塊和Flash通道控制模塊。
當(dāng)存在待寫入到NAND Flash芯片的頁面存儲中的第一數(shù)據(jù)時,寫隨機化模塊可以利用第一隨機種子對第一數(shù)據(jù)進(jìn)行隨機化處理,獲得第一隨機數(shù)據(jù)。第一數(shù)據(jù)為待寫入到NAND Flash芯片的頁面存儲中的任意一個數(shù)據(jù)。
具體的,寫隨機化模塊可以利用第一隨機種子將第一數(shù)據(jù)與設(shè)定比特數(shù)的LFSR(Linear Feedback Shift Register,線性反饋移位寄存器)進(jìn)行隨機化操作。LFSR由第一隨機種子擴展而成。
如圖3所示,2Byte(16bit)隨機種子可以擴展成32bit LFSR數(shù)據(jù),16Kbyte第一數(shù)據(jù)通過32bit LFSR本原多項式進(jìn)行隨機化操作后,得到16Kbyte第一隨機數(shù)據(jù),也即為16Kbyte保護數(shù)據(jù)。
LFSR本原多項式為x32+x22+x2+x+1。
寫隨機化模塊獲得第一隨機數(shù)據(jù)后,可以將第一隨機種子和第一隨機數(shù)據(jù)輸入到CRC產(chǎn)生模塊中。
CRC產(chǎn)生模塊根據(jù)第一隨機種子和第一隨機數(shù)據(jù),可以生成第一CRC校驗位信息。具體如圖4所示,圖3中的2Byte隨機種子和16Kbyte保護數(shù)據(jù)作為CRC保護數(shù)據(jù),該CRC保護數(shù)據(jù)通過CRC產(chǎn)生模塊可以生成第一CRC校驗位信息,即6Byte CRC校驗位信息。
CRC本原多項式可以為:x48+x44+x42+x39+x37+x35+x34+x31+x28+x23+x19+x18+x17+x15+x14+x12+x11+x9+x8+x6+x4+x2+x+1。
CRC產(chǎn)生模塊生成第一CRC校驗位信息后,將第一隨機種子、第一隨機數(shù)據(jù)和第一CRC校驗位信息輸入到LDPC編碼模塊中。
LDPC編碼模塊可以根據(jù)第一隨機種子、第一隨機數(shù)據(jù)和第一CRC校驗為信息,生成第一LDPC校驗位信息。具體如圖5所示,圖4中的2Byte隨機種子、16Kbyte保護數(shù)據(jù)和6Byte CRC校驗位信息作為LDPC原數(shù)據(jù),該LDPC原數(shù)據(jù)通過LDPC編碼模塊可以生成第一LDPC校驗位信息,即N-Byte LDPC校驗位信息。N值可以根據(jù)實際情況確定。
LDPC編碼模塊生成第一LDPC校驗位信息后,可以將第一隨機種子、第一隨機數(shù)據(jù)、第一CRC校驗位信息和第一LDPC校驗位信息輸入到BCH編碼模塊中。
BCH碼是一類重要的循環(huán)碼。BCH編碼模塊對第一LDPC校驗位信息進(jìn)行BCH編碼,可以生成第一BCH校驗位信息。具體如圖6所示,圖5中的N-Byte LDPC校驗位信息通過BCH編碼模塊可以生成第一BCH校驗位信息,即M-Byte BCH校驗位信息。M值根據(jù)實際情況確定。
BCH編碼模塊生成第一BCH校驗位信息后,可以通過Flash通道控制模塊將第一隨機種子、第一隨機數(shù)據(jù)、第一CRC校驗位信息、第一LDPC校驗位信息和第一BCH校驗位信息存放到NAND Flash芯片的頁面存儲中。如圖1所示,F(xiàn)lash通道控制模塊通過通道將相關(guān)信息存放到3D NAND Flash中。
在本發(fā)明實施例中,NAND Flash芯片的頁面存儲可以包括Flash page(頁)區(qū)域和Flash spare(備用)區(qū)域。
Flash通道控制模塊,具體可以用于將第一隨機數(shù)據(jù)存放到Flash page區(qū)域中,將第一隨機種子、第一CRC校驗位信息、第一LDPC校驗位信息和第一BCH校驗位信息存放到Flash spare區(qū)域中。
如圖7所示,F(xiàn)lash page區(qū)域存放的是16Kbyte保護數(shù)據(jù),F(xiàn)lash spare區(qū)域存放的是2Byte隨機種子、6Byte CRC校驗位信息、N-Byte LDPC校驗位信息和M-Byte BCH校驗位信息。
在本發(fā)明的一種具體實施方式中,參見圖1所示,該系統(tǒng)還可以包括緩存模塊,該緩存模塊用于緩存待寫入到NAND Flash芯片的頁面存儲中的第一數(shù)據(jù),寫隨機化模塊可以從緩存模塊中獲取第一數(shù)據(jù)。
應(yīng)用本發(fā)明實施例所提供的系統(tǒng),對于待寫入到NAND Flash芯片的頁面存儲中的第一數(shù)據(jù),首先寫隨機化模塊利用第一隨機種子對其進(jìn)行隨機化處理,獲得第一隨機數(shù)據(jù),CRC產(chǎn)生模塊根據(jù)第一隨機數(shù)據(jù)生成第一CRC校驗位信息,LDPC編碼模塊根據(jù)前面操作產(chǎn)生的數(shù)據(jù)生成第一LDPC校驗位信息,BCH編碼模塊對第一LDPC校驗位信息進(jìn)行BCH編碼,生成第一BCH校驗位信息,通過Flash通道控制模塊將第一隨機種子、第一隨機數(shù)據(jù)、第一CRC校驗位信息、第一LDPC校驗位信息和第一BCH校驗位信息存放到NAND Flash芯片的頁面存儲中。對第一數(shù)據(jù)進(jìn)行隨機化處理,增強了數(shù)據(jù)安全性,使得存儲在NAND Flash芯片的頁面存儲中的數(shù)據(jù)不容易被竊取,同時,采用LDPC編碼模塊對LDPC原數(shù)據(jù)進(jìn)行編碼產(chǎn)生第一LDPC校驗位信息,采用BCH編碼對第一LDPC校驗位信息進(jìn)行編碼得到第一BCH校驗位信息,增強了數(shù)據(jù)糾錯能力。
參見圖1所示,該系統(tǒng)還可以包括BCH解碼模塊、LDPC解碼模塊、CRC確認(rèn)模塊和讀去隨機化模塊,其中,
所述BCH解碼模塊,用于通過所述Flash通道控制模塊從所述NAND Flash芯片的頁面存儲中讀取第二數(shù)據(jù)對應(yīng)的第二BCH校驗位信息和第二LDPC校驗位信息;對所述第二BCH校驗位信息進(jìn)行BCH解碼,并根據(jù)第二LDPC校驗位信息確定正確的LDPC校驗位信息,將所述正確的LDPC校驗位信息輸出給所述LDPC解碼模塊;
所述LDPC解碼模塊,用于通過所述Flash通道控制模塊從所述NAND Flash芯片的頁面存儲中讀取所述第二數(shù)據(jù)對應(yīng)的第二隨機數(shù)據(jù)、第二CRC校驗位信息和第二隨機種子;根據(jù)所述正確的LDPC校驗位信息,還原LDPC原數(shù)據(jù);
所述CRC確認(rèn)模塊,用于根據(jù)所述第二CRC校驗信息確認(rèn)第二隨機數(shù)據(jù);
所述讀去隨機化模塊,用于對所述第二隨機數(shù)據(jù)進(jìn)行去隨機化處理,將其還原成打亂之前的所述第二數(shù)據(jù),待直接存儲器訪問DMA讀取。
在本發(fā)明實施例中,當(dāng)存在從NAND Flash芯片的頁面存儲中讀取第二數(shù)據(jù)的請求時,BCH解碼模塊可以通過Flash通道控制模塊從NAND Flash芯片的頁面存儲中讀取第二數(shù)據(jù)對應(yīng)的第二BCH校驗位信息和第二LDPC校驗位信息,對第二BCH校驗位信息進(jìn)行BCH編碼,并根據(jù)第二LDPC校驗位信息確定正確的LDPC校驗位信息。將正確的LDPC校驗位信息輸出給LDPC解碼模塊。
具體的,BCH解碼模塊可以在對第二BCH校驗位信息進(jìn)行BCH解碼之后,確定第二LDPC校驗位信息是否正確,如果是,則將該第二LDPC校驗位信息確定為正確的LDPC校驗位信息,如果否,則對該第二LDPC校驗位信息進(jìn)行糾錯處理,獲得正確的LDPC校驗位信息。
LDPC解碼模塊可以通過Flash通道控制模塊從NAND Flash芯片的頁面存儲中讀取第二數(shù)據(jù)對應(yīng)的第二隨機數(shù)據(jù)、第二CRC校驗位信息和第二隨機種子。根據(jù)正確的LDPC校驗位信息,可以還原LDPC原數(shù)據(jù)。LDPC原數(shù)據(jù)包括第二數(shù)據(jù)對應(yīng)的第二隨機種子、第二隨機數(shù)據(jù)和第二CRC校驗位信息。
CRC確認(rèn)模塊可以根據(jù)第二CRC校驗位信息確認(rèn)第二隨機數(shù)據(jù)。
讀去隨機化模塊可以對該第二隨機數(shù)據(jù)進(jìn)行去隨機化處理,將其還原成打亂之前的第二數(shù)據(jù),待直接存儲器訪問DMA讀取。具體的,讀去隨機化模塊可以將第二數(shù)據(jù)緩存到緩存模塊中,再由DMA讀取。即緩存模塊還用于緩存經(jīng)過讀去隨機化模塊處理后的待DMA讀取的第二數(shù)據(jù)。
在本發(fā)明實施例中,應(yīng)用了雙重糾錯技術(shù),如果存儲在Flash spare區(qū)域的LDPC校驗位信息出錯,采用BCH糾錯技術(shù)能對其LDPC校驗位信息進(jìn)行糾錯,得到正確的LDPC校驗位信息,使用正確的LDPC校驗位信息即可通過LDPC糾錯技術(shù)把LDPC原數(shù)據(jù)還原出來,減少數(shù)據(jù)的損失。
相應(yīng)于上面的方法實施例,本發(fā)明實施例還提供了一種固態(tài)硬盤SSD存儲方法,下文描述的一種固態(tài)硬盤SSD存儲方法與上文描述的一種固態(tài)硬盤SSD存儲系統(tǒng)可相互對應(yīng)參照。
參見圖8所示,該方法可以包括以下步驟:
S110:利用第一隨機種子對待寫入到所述NAND Flash芯片的頁面存儲中的第一數(shù)據(jù)進(jìn)行隨機化處理,獲得第一隨機數(shù)據(jù);
S120:根據(jù)所述第一隨機種子和所述第一隨機數(shù)據(jù),生成第一CRC校驗位信息;
S130:根據(jù)所述第一隨機種子、所述第一隨機數(shù)據(jù)和所述第一CRC校驗位信息,生成第一LDPC校驗位信息;
S140:對所述第一LDPC校驗位信息進(jìn)行BCH編碼,生成第一BCH校驗位信息;
S150:將所述第一隨機種子、所述第一隨機數(shù)據(jù)、所述第一CRC校驗位信息、所述第一LDPC校驗位信息和所述第一BCH校驗位信息存放到所述NAND Flash芯片的頁面存儲中。
應(yīng)用本發(fā)明實施例所提供的方法,對于待寫入到NAND Flash芯片的頁面存儲中的第一數(shù)據(jù),首先利用第一隨機種子對其進(jìn)行隨機化處理,獲得第一隨機數(shù)據(jù),根據(jù)第一隨機數(shù)據(jù)生成第一CRC校驗位信息,根據(jù)前面操作產(chǎn)生的數(shù)據(jù)生成第一LDPC校驗位信息,對第一LDPC校驗位信息進(jìn)行BCH編碼,生成第一BCH校驗位信息,將第一隨機種子、第一隨機數(shù)據(jù)、第一CRC校驗位信息、第一LDPC校驗位信息和第一BCH校驗位信息存放到NAND Flash芯片的頁面存儲中。對第一數(shù)據(jù)進(jìn)行隨機化處理,增強了數(shù)據(jù)安全性,使得存儲在NAND Flash芯片的頁面存儲中的數(shù)據(jù)不容易被竊取,同時,對LDPC原數(shù)據(jù)進(jìn)行編碼產(chǎn)生第一LDPC校驗位信息,對第一LDPC校驗位信息進(jìn)行編碼得到第一BCH校驗位信息,增強了數(shù)據(jù)糾錯能力。
在本發(fā)明的一種具體實施方式中,還包括以下步驟:
步驟一:從所述NAND Flash芯片的頁面存儲中讀取第二數(shù)據(jù)對應(yīng)的第二BCH校驗位信息和第二LDPC校驗位信息;
步驟二:對所述第二BCH校驗位信息進(jìn)行BCH解碼,并根據(jù)第二LDPC校驗位信息確定正確的LDPC校驗位信息;
步驟三:讀取所述第二數(shù)據(jù)對應(yīng)的第二隨機數(shù)據(jù)、第二CRC校驗位信息和第二隨機種子;
步驟四:根據(jù)所述正確的LDPC校驗位信息,還原LDPC原數(shù)據(jù);
步驟五:根據(jù)所述第二CRC校驗信息確認(rèn)第二隨機數(shù)據(jù);
步驟六:對所述第二隨機數(shù)據(jù)進(jìn)行去隨機化處理,將其還原成打亂之前的所述第二數(shù)據(jù),待直接存儲器訪問DMA讀取。
在本發(fā)明的一種具體實施方式中,所述根據(jù)第二LDPC校驗位信息確定正確的LDPC校驗位信息,包括:
在對所述第二BCH校驗位信息進(jìn)行BCH解碼之后,確定所述第二LDPC校驗位信息是否正確;
如果是,則確定所述第二LDPC校驗位信息為正確的LDPC校驗位信息;
如果否,則對所述第二LDPC校驗位信息進(jìn)行糾錯處理,獲得正確的LDPC校驗位信息。
在本發(fā)明實施例中,應(yīng)用了雙重糾錯技術(shù),如果存儲在Flash spare區(qū)域的LDPC校驗位信息出錯,采用BCH糾錯技術(shù)能對其LDPC校驗位信息進(jìn)行糾錯,得到正確的LDPC校驗位信息,使用正確的LDPC校驗位信息即可通過LDPC糾錯技術(shù)把LDPC原數(shù)據(jù)還原出來,減少數(shù)據(jù)的損失。
本說明書中各個實施例采用遞進(jìn)的方式描述,每個實施例重點說明的都是與其它實施例的不同之處,各個實施例之間相同或相似部分互相參見即可。對于實施例公開的方法而言,由于其與實施例公開的系統(tǒng)相對應(yīng),所以描述的比較簡單,相關(guān)之處參見系統(tǒng)部分說明即可。
專業(yè)人員還可以進(jìn)一步意識到,結(jié)合本文中所公開的實施例描述的各示例的單元及算法步驟,能夠以電子硬件、計算機軟件或者二者的結(jié)合來實現(xiàn),為了清楚地說明硬件和軟件的可互換性,在上述說明中已經(jīng)按照功能一般性地描述了各示例的組成及步驟。這些功能究竟以硬件還是軟件方式來執(zhí)行,取決于技術(shù)方案的特定應(yīng)用和設(shè)計約束條件。專業(yè)技術(shù)人員可以對每個特定的應(yīng)用來使用不同方法來實現(xiàn)所描述的功能,但是這種實現(xiàn)不應(yīng)認(rèn)為超出本發(fā)明的范圍。
結(jié)合本文中所公開的實施例描述的方法或算法的步驟可以直接用硬件、處理器執(zhí)行的軟件模塊,或者二者的結(jié)合來實施。軟件模塊可以置于隨機存儲器(RAM)、內(nèi)存、只讀存儲器(ROM)、電可編程ROM、電可擦除可編程ROM、寄存器、硬盤、可移動磁盤、CD-ROM、或技術(shù)領(lǐng)域內(nèi)所公知的任意其它形式的存儲介質(zhì)中。
本文中應(yīng)用了具體個例對本發(fā)明的原理及實施方式進(jìn)行了闡述,以上實施例的說明只是用于幫助理解本發(fā)明的技術(shù)方案及其核心思想。應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以對本發(fā)明進(jìn)行若干改進(jìn)和修飾,這些改進(jìn)和修飾也落入本發(fā)明權(quán)利要求的保護范圍內(nèi)。