1.一種Nand Flash塊管理方法,其特征在于,包括:
接收應(yīng)用層的訪問(wèn)指令,所述訪問(wèn)指令中包含邏輯塊地址;查詢預(yù)設(shè)的地址映射表,獲取所述邏輯塊地址對(duì)應(yīng)的物理塊地址,所述地址映射表中存儲(chǔ)有與各個(gè)邏輯塊地址對(duì)應(yīng)的Nand Flash物理塊地址;
查詢預(yù)設(shè)的壞塊列表,檢測(cè)所述物理塊地址指向的存儲(chǔ)塊是否可用;在所述壞塊列表中對(duì)所述Nand Flash中所有不可用的存儲(chǔ)塊進(jìn)行了標(biāo)記;
若所述物理存儲(chǔ)地址指向的存儲(chǔ)塊不可用,根據(jù)預(yù)設(shè)的地址映射算法重新確定與所述邏輯塊地址對(duì)應(yīng)的Nand Flash物理塊地址,更新所述地址映射表,并根據(jù)所述訪問(wèn)指令對(duì)重新確定的物理塊地址指向的存儲(chǔ)塊進(jìn)行操作。
2.根據(jù)權(quán)利要求1所述的Nand Flash塊管理方法,其特征在于,檢測(cè)所述物理存儲(chǔ)地址對(duì)應(yīng)的存儲(chǔ)塊是否可用之后,還包括:
若所述物理存儲(chǔ)地址指向的存儲(chǔ)塊為可用狀態(tài),根據(jù)所述訪問(wèn)指令對(duì)所述存儲(chǔ)塊進(jìn)行操作。
3.根據(jù)權(quán)利要求1所述的Nand Flash塊管理方法,其特征在于,查詢預(yù)設(shè)的壞塊列表之前,還包括:
掃描Nand Flash中的全部存儲(chǔ)塊,記錄所述Nand Flash中各存儲(chǔ)塊的狀態(tài),構(gòu)建所述Nand Flash對(duì)應(yīng)的壞塊列表。
4.根據(jù)權(quán)利要求3所述的Nand Flash塊管理方法,其特征在于,記錄所述Nand Flash中各存儲(chǔ)塊的狀態(tài),構(gòu)建所述Nand Flash對(duì)應(yīng)的壞塊列表,包括:
按位標(biāo)記Nand Flash中各存儲(chǔ)塊的狀態(tài),將可用存儲(chǔ)塊對(duì)應(yīng)位的值用1表示,將不可用存儲(chǔ)塊對(duì)應(yīng)位的值用0表示,構(gòu)建所述Nand Flash對(duì)應(yīng)的壞塊位圖。
5.根據(jù)權(quán)利要求1所述的Nand Flash塊管理方法,其特征在于,還包括初始化地址映射表的步驟,包括:獲取Nand Flash中非替換的可用存儲(chǔ)塊的物理塊地址,建立各邏輯塊地址與所述非替換的可用存儲(chǔ)塊的物理塊地址的一一對(duì)應(yīng)關(guān)系,根據(jù)所述對(duì)應(yīng)關(guān)系構(gòu)建地址映射表;
根據(jù)預(yù)設(shè)的地址映射算法重新確定與所述邏輯塊地址對(duì)應(yīng)的Nand Flash物理塊地址,包括:
隨機(jī)獲取Nand Flash中任一保留塊的物理塊地址,建立所述邏輯塊地址與所述任一保留塊的物理塊地址的對(duì)應(yīng)關(guān)系;
或者,獲取物理塊地址最小的保留塊,建立所述邏輯塊地址與該保留塊的物理塊地址的對(duì)應(yīng)關(guān)系;
其中,所述保留塊為Nand Flash中非替換的存儲(chǔ)塊之外的可用存儲(chǔ)塊。
6.根據(jù)權(quán)利要求5所述的Nand Flash塊管理方法,其特征在于,所述地址映射表中包含的最大邏輯塊地址小于所述保留塊的物理塊地址。
7.根據(jù)權(quán)利要求1所述的Nand Flash塊管理方法,其特征在于,還包括:
預(yù)先建立所述Nand Flash對(duì)應(yīng)的結(jié)構(gòu)常量,所述結(jié)構(gòu)常量中包含有所述壞塊列表的起始地址、所述地址映射表的起始地址以及用于描述所述Nand Flash的屬性信息;
將所述結(jié)構(gòu)常量存放在所述Nand Flash中的指定位置,將所述地址映射表以及所述壞塊列表存儲(chǔ)到所述Nand Flash之外的存儲(chǔ)單元。
8.一種Nand Flash塊管理系統(tǒng),其特征在于,包括:
指令及地址確認(rèn)模塊,用于接收應(yīng)用層的訪問(wèn)指令,所述訪問(wèn)指令中包含邏輯塊地址;查詢預(yù)設(shè)的地址映射表,獲取所述邏輯塊地址對(duì)應(yīng)的物理塊地址,所述地址映射表中存儲(chǔ)有與各個(gè)邏輯塊地址對(duì)應(yīng)的Nand Flash物理塊地址;
塊狀態(tài)檢測(cè)模塊,用于查詢預(yù)設(shè)的壞塊列表,檢測(cè)所述物理塊地址指向的存儲(chǔ)塊是否可用;在所述壞塊列表中對(duì)所述Nand Flash中所有不可用的存儲(chǔ)塊進(jìn)行了標(biāo)記;
映射管理模塊,用于若所述物理存儲(chǔ)地址指向的存儲(chǔ)塊不可用,根據(jù)預(yù)設(shè)的地址映射算法重新確定與所述邏輯塊地址對(duì)應(yīng)的Nand Flash物理塊地址,更新所述地址映射表,根據(jù)所述訪問(wèn)指令對(duì)重新確定的物理塊地址指向的存儲(chǔ)塊進(jìn)行操作。
9.根據(jù)權(quán)利要求8所述的Nand Flash塊管理系統(tǒng),其特征在于,還包括:壞塊列表建立模塊,用于在所述Nand Flash塊管理系統(tǒng)上電時(shí),掃描Nand Flash中的全部存儲(chǔ)塊,記錄所述Nand Flash中各存儲(chǔ)塊的狀態(tài),構(gòu)建所述Nand Flash對(duì)應(yīng)的壞塊列表;
和/或,地址映射表建立模塊,用于獲取Nand Flash中非替換的可用存儲(chǔ)塊的物理塊地址,建立各邏輯塊地址與所述非替換的可用存儲(chǔ)塊的物理塊地址的一一對(duì)應(yīng)關(guān)系,根據(jù)所述對(duì)應(yīng)關(guān)系構(gòu)建地址映射表。
10.根據(jù)權(quán)利要求8所述的Nand Flash塊管理系統(tǒng),其特征在于,還包括:
結(jié)構(gòu)常量建立模塊,用于預(yù)先建立所述Nand Flash對(duì)應(yīng)的結(jié)構(gòu)常量,所述結(jié)構(gòu)常量中包含有所述壞塊列表的起始地址、所述地址映射表的起始地址以及用于描述所述Nand Flash的屬性信息;
存儲(chǔ)管理模塊,用于將所述結(jié)構(gòu)常量存放在所述Nand Flash中的指定位置,將所述地址映射表以及所述壞塊列表存儲(chǔ)到所述Nand Flash之外的存儲(chǔ)單元。