1.一種NOR-Flash哈希表存儲方法,其特征在于:該方法包括如下步驟:
步驟一:建立鏈表頭數(shù)組,存儲每一條哈希鏈的頭部;
步驟二:定義哈希鏈表的基本數(shù)據(jù)源格式;
步驟三:掃描用戶第一次開機(jī)時Flash芯片中的數(shù)據(jù),構(gòu)建鏈表基礎(chǔ)數(shù)據(jù);
步驟四:按順序直接存放用戶添加的數(shù)據(jù),將下一元素地址作為內(nèi)存中的鏈表頭,添加完后新的鏈表頭作為新的元素地址;
步驟五:當(dāng)空間剩余1個塊即最小擦除單元時,回收作業(yè)把鏈表前面的數(shù)據(jù)進(jìn)行刪除,并掛載到鏈表后面,當(dāng)騰出一個塊的垃圾數(shù)據(jù)時,將單塊的垃圾數(shù)據(jù)擦除。
2.根據(jù)權(quán)利要求1所述的NOR-Flash哈希表存儲方法,其特征在于:步驟一中所述的建立鏈表頭數(shù)組具體包括:采用預(yù)設(shè)的哈希函數(shù)構(gòu)建鏈表號、鏈表塊頭、鏈表塊尾、鏈表起始位置。
3.根據(jù)權(quán)利要求1所述的NOR-Flash哈希表存儲方法,其特征在于:步驟二中所述的哈希鏈表的基本數(shù)據(jù)源格式至少包括可用標(biāo)記、摘要、下一元素地址、數(shù)據(jù)長度、數(shù)據(jù)、循環(huán)冗余校驗(yàn)碼中的一項(xiàng)。
4.根據(jù)權(quán)利要求1所述的NOR-Flash哈希表存儲方法,其特征在于:步驟三中所述的構(gòu)建鏈表基礎(chǔ)數(shù)據(jù)包括鏈表空白尾地址、有效記錄數(shù)、無效記錄數(shù)。
5.根據(jù)權(quán)利要求1所述的NOR-Flash哈希表存儲方法,其特征在于:所述步驟五中鏈表數(shù)據(jù)的刪除、掛載、擦除具體指:
將有效元素轉(zhuǎn)移到已擦除的空白區(qū)域;
騰出一塊完整的標(biāo)記無效的區(qū)域;
將無效區(qū)域進(jìn)行塊擦除變?yōu)榭瞻讌^(qū)域。
6.一種NOR-Flash哈希表存儲裝置,其特征在于:所述裝置包括:
鏈表構(gòu)建模塊,用于建立鏈表頭數(shù)組,存儲每一條哈希鏈的頭部,同時掃描用戶第一次開機(jī)時Flash芯片中的數(shù)據(jù),構(gòu)建鏈表基礎(chǔ)數(shù)據(jù);
格式定義模塊,用于定義哈希鏈表的基本數(shù)據(jù)源格式;
數(shù)據(jù)存儲模塊,用于存放用戶添加的數(shù)據(jù);
數(shù)據(jù)整理模塊,用于當(dāng)空間剩余1個塊即最小擦除單元時,對鏈表前面的數(shù)據(jù)進(jìn)行刪除、掛載、擦除。
7.根據(jù)權(quán)利要求6所述的一種NOR-Flash哈希表存儲裝置,其特征在于:所述格式定義模塊中基本數(shù)據(jù)源格式至少包括可用標(biāo)記、摘要、下一元素地址、數(shù)據(jù)長度、數(shù)據(jù)、循環(huán)冗余校驗(yàn)碼中的一項(xiàng)。
8.根據(jù)權(quán)利要求6所述的一種NOR-Flash哈希表存儲裝置,其特征在于:所述數(shù)據(jù)存儲模塊存儲的數(shù)據(jù)將下一元素地址作為內(nèi)存中的鏈表頭,添加完后新的鏈表頭作為新的元素地址。
9.根據(jù)權(quán)利要求6所述的一種NOR-Flash哈希表存儲裝置,其特征在于:所述數(shù)據(jù)整理模塊具體包括數(shù)據(jù)刪除子模塊、數(shù)據(jù)掛載子模塊、數(shù)據(jù)擦除子模塊:
數(shù)據(jù)刪除子模塊,用于當(dāng)存儲空間剩余最小擦除單元時,對鏈表前面的數(shù)據(jù)進(jìn)行刪除;
數(shù)據(jù)掛載子模塊,用于當(dāng)存儲空間剩余最小擦除單元時,將鏈表前面刪除的數(shù)據(jù),掛載到鏈表后面;
數(shù)據(jù)擦除子模塊,用于當(dāng)騰出垃圾數(shù)據(jù)占據(jù)一個塊時,將單塊的垃圾數(shù)據(jù)擦除。