專(zhuān)利名稱(chēng):一種存儲(chǔ)管理的方法、系統(tǒng)和存儲(chǔ)設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及存儲(chǔ)技術(shù)領(lǐng)域,特別涉及一種存儲(chǔ)管理的方法、系統(tǒng)和存儲(chǔ) 設(shè)備。
背景技術(shù):
SSD ( Solid State Disk,固態(tài)硬盤(pán))是由控制單元與存儲(chǔ)單元組成的硬盤(pán)。 控制單元負(fù)責(zé)讀取、寫(xiě)入數(shù)據(jù),存儲(chǔ)單元負(fù)責(zé)存儲(chǔ)數(shù)據(jù)。存儲(chǔ)單元多采用非 易失性的Flash (閃存)芯片作為存儲(chǔ)介質(zhì)。閃存具有特殊的寫(xiě)和擦除特征, 從而導(dǎo)致存儲(chǔ)器具有一些特殊的操作, 一般操作流程為首先將該次操作目 標(biāo)塊的數(shù)據(jù)拷貝至RAM (Random-AccessMemory,隨機(jī)存取存儲(chǔ)器)中,然 后擦除該塊,再更新RAM中的數(shù)據(jù),最后回寫(xiě)到目標(biāo)塊中。現(xiàn)有技術(shù)中,典 型的算法是維護(hù)對(duì)每塊的擦寫(xiě)計(jì)數(shù),并利用計(jì)數(shù)來(lái)定義冷熱數(shù)據(jù)塊并進(jìn)行交 換。
在實(shí)現(xiàn)本發(fā)明的過(guò)程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)至少存在以下問(wèn)題 其一,由于閃存的最小擦除單位為塊,而最小寫(xiě)單位為頁(yè)?;陂W存的 該特性,閃存的寫(xiě)速度較低。另外,大多算法是在接收到新數(shù)據(jù)寫(xiě)指令時(shí)才 進(jìn)行Flash管理,回收分配空白塊,這樣也使寫(xiě)操作時(shí)間增多。其二,算法過(guò) 于復(fù)雜,數(shù)據(jù)結(jié)構(gòu)過(guò)多,致使系統(tǒng)開(kāi)銷(xiāo)過(guò)大。其三,閃存可分為SLC (Single Level Cell,單層單元)單層式存儲(chǔ)與MLC (Multi Level Cell,多層單元)多 層式存儲(chǔ)兩種。兩種介質(zhì)的擦寫(xiě)壽命分別為SLC大約10萬(wàn)次,MLC大約1萬(wàn) 次。由于閃存的擦除次數(shù)有限,因此,如何均衡擦除閃存塊,平均每塊的擦 除次數(shù)成為延長(zhǎng)SSD使用壽命的關(guān)鍵問(wèn)題。
發(fā)明內(nèi)容
本發(fā)明實(shí)施例提供一種存儲(chǔ)管理的方法、系統(tǒng)和存儲(chǔ)設(shè)備,以實(shí)現(xiàn)對(duì)存儲(chǔ)器中物理塊的有效管理,提高寫(xiě)入數(shù)據(jù)的操作效率,節(jié)約系統(tǒng)開(kāi)銷(xiāo),保證 存儲(chǔ)器中物理塊使用的均衡性,從而延長(zhǎng)存儲(chǔ)器的使用壽命。
為達(dá)到上述目的,本發(fā)明實(shí)施例一方面提供一種存儲(chǔ)管理的方法,包括
以下步驟
從根據(jù)預(yù)設(shè)的分組規(guī)則建立的空白塊集合中選出一個(gè)或多個(gè)空白塊; 在所述選出的一個(gè)或多個(gè)空白塊上寫(xiě)入原目標(biāo)塊數(shù)據(jù)和更新數(shù)據(jù); 將所述原目標(biāo)塊放入根據(jù)所述預(yù)設(shè)的分組規(guī)則建立的未擦除塊集合中,
將所述寫(xiě)入原目標(biāo)塊數(shù)據(jù)和更新數(shù)據(jù)的空白塊放到根據(jù)所述預(yù)設(shè)的分組規(guī)則
建立的映射表集合中。
另一方面,本發(fā)明實(shí)施例還提供一種存儲(chǔ)設(shè)備,包括
選擇模塊,用于從根據(jù)預(yù)設(shè)的分組規(guī)則建立的空白塊集合中選出 一個(gè)或
多個(gè)空白塊;
輸入模塊,用于在所述選擇模塊選出的一個(gè)或多個(gè)空白塊上寫(xiě)入原目標(biāo)
塊數(shù)據(jù)和更新數(shù)據(jù);
歸類(lèi)模塊,用于將所述原目標(biāo)塊放入根據(jù)所述預(yù)設(shè)的分組規(guī)則建立的未
擦除塊集合中,將所述寫(xiě)入原目標(biāo)塊數(shù)據(jù)和更新數(shù)據(jù)的空白塊放到根據(jù)所述
預(yù)設(shè)的分組規(guī)則建立的映射表集合中。
本發(fā)明實(shí)施例還提供一種存儲(chǔ)管理系統(tǒng),包括控制設(shè)備和存儲(chǔ)設(shè)備, 所述控制設(shè)備,用于將任務(wù)命令向所述存儲(chǔ)設(shè)備發(fā)送; 所述存儲(chǔ)設(shè)備,用于執(zhí)行所述控制設(shè)備發(fā)送的任務(wù)命令,包括 選捧模塊,用于從根據(jù)預(yù)設(shè)的分組規(guī)則建立的空白塊集合中選出 一個(gè)或
多個(gè)空白塊;
輸入模塊,用于在所述選擇模塊選出的一個(gè)或多個(gè)空白塊上寫(xiě)入原目標(biāo) 塊數(shù)據(jù)和更新數(shù)據(jù);
歸類(lèi)模塊,用于將所述原目標(biāo)塊放入根據(jù)所述預(yù)設(shè)的分組規(guī)則建立的未 擦除塊集合中,將所述寫(xiě)入原目標(biāo)塊數(shù)據(jù)和更新數(shù)據(jù)的空白塊放到根據(jù)所述 預(yù)設(shè)的分組規(guī)則建立的映射表集合中。
與現(xiàn)有技術(shù)相比,本發(fā)明實(shí)施例具有以下優(yōu)點(diǎn)通過(guò)根據(jù)預(yù)設(shè)的分組規(guī)則對(duì)存儲(chǔ)器物理塊進(jìn)行分組,在每次執(zhí)行寫(xiě)入數(shù) 據(jù)任務(wù)時(shí),到建立的空白塊集合中選取一個(gè)或多個(gè)空白塊,然后在選出的空 白塊上寫(xiě)入數(shù)據(jù),減少寫(xiě)操作時(shí)間,有效保證了每次寫(xiě)入數(shù)據(jù)操作的快速執(zhí)
行;通過(guò)及時(shí)對(duì)無(wú)效數(shù)據(jù)塊的擦除和搜索空白塊,保證空白塊數(shù)量滿足寫(xiě)入 大量數(shù)據(jù)的要求,另外,通過(guò)對(duì)物理塊的靜態(tài)均衡操作,保證對(duì)所有物理塊 擦除次數(shù)的均衡性,從而延長(zhǎng)存儲(chǔ)器的使用壽命。
為了更清楚地說(shuō)明本發(fā)明實(shí)施例的技術(shù)方案,下面將對(duì)實(shí)施例描述中所 需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā) 明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前 提下,還可以才艮據(jù)這些附圖獲得其他的附圖。
圖l是本發(fā)明實(shí)施例提供的一種存儲(chǔ)管理方法的流程圖2是本發(fā)明實(shí)施例中另 一種數(shù)據(jù)寫(xiě)入流程圖3是本發(fā)明實(shí)施例中塊組間轉(zhuǎn)換示意圖4是本發(fā)明實(shí)施例中物理塊靜態(tài)均衡過(guò)程示意圖5是本發(fā)明實(shí)施例中存儲(chǔ)設(shè)備的結(jié)構(gòu)示意圖6是本發(fā)明實(shí)施例中存儲(chǔ)管理系統(tǒng)的結(jié)構(gòu)示意圖
具體實(shí)施例方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行 清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明的一部分實(shí)施例,而不 是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出 創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
在本發(fā)明各個(gè)實(shí)施例中,有效數(shù)據(jù)塊、空白塊、未擦除塊和原目標(biāo)塊等 指的是存儲(chǔ)介質(zhì)上的物理塊,也就是存儲(chǔ)介質(zhì)上的物理塊包括有效數(shù)據(jù)塊、 空白塊、未擦除塊和原目標(biāo)塊等。
本發(fā)明實(shí)施例提供一種存儲(chǔ)管理的方法,如圖1所示,可以包括以下步驟S101 、從根據(jù)預(yù)設(shè)的分組規(guī)則建立的空白塊集合中選出一個(gè)或多個(gè)空白塊。
其中,預(yù)設(shè)的分組規(guī)則具體可以包括將已經(jīng)被寫(xiě)入數(shù)據(jù)的有效數(shù)據(jù)塊 組成映射表集合,該映射表集合中的成員通過(guò)邏輯地址映射表中的邏輯地址 讀出;將未被寫(xiě)入數(shù)據(jù)的空白塊組成空白塊集合,該空白塊集合中的成員通 過(guò)對(duì)存儲(chǔ)介質(zhì)上至少一個(gè)物理塊遍歷獲得;將已經(jīng)被寫(xiě)入但未被擦除的無(wú)效 數(shù)據(jù)塊組成未擦除塊集合,等等。
具體的,首先^^艮據(jù)塊擦除次數(shù)列表計(jì)算存儲(chǔ)介質(zhì)上至少一個(gè)物理塊的平 均擦除次數(shù),然后在空白塊集合中查找小于所述平均擦除次數(shù)的空白塊,從 小于所述平均擦除次數(shù)的空白塊中選出一個(gè)或多個(gè)空白塊。
5102、 在所述選出的一個(gè)或多個(gè)空白塊上寫(xiě)入原目標(biāo)塊數(shù)據(jù)和更新數(shù)據(jù)。 在空白塊上寫(xiě)入原目標(biāo)塊數(shù)據(jù)和更新數(shù)據(jù)之后,將寫(xiě)入原目標(biāo)塊數(shù)據(jù)和
更新數(shù)據(jù)的空白塊的邏輯地址設(shè)置為原目標(biāo)塊的邏輯地址。
當(dāng)所述空白塊集合中的空白塊被用完,暫停寫(xiě)入數(shù)據(jù),搜索空白塊和無(wú) 效數(shù)據(jù)塊;將搜索到的所述無(wú)效數(shù)據(jù)塊進(jìn)行擦除,使得所述無(wú)效數(shù)據(jù)塊成為 空白塊;將擦除后的所述空白塊和搜索到的所述空白塊放入所述空白塊集合 中。
5103、 將所述原目標(biāo)塊放入根據(jù)所述預(yù)設(shè)的分組規(guī)則建立的未擦除塊集 合中,將所述寫(xiě)入原目標(biāo)塊數(shù)據(jù)和更新數(shù)據(jù)的空白塊放到根據(jù)所述預(yù)設(shè)的分 組規(guī)則建立的映射表集合中。
另外,本發(fā)明實(shí)施例提供的存儲(chǔ)管理的方法,還可以包括以下步驟 根據(jù)塊擦除次數(shù)列表計(jì)算存儲(chǔ)介質(zhì)上至少一個(gè)物理塊的平均擦除次數(shù);
在所述空白塊集合中查找小于所述平均擦除次數(shù)的空白塊;從所述小于所述
平均擦除次數(shù)的空白塊中選出一個(gè)或多個(gè)空白塊。
本發(fā)明實(shí)施例提供的存儲(chǔ)管理的方法,還可以包括以下步驟 在所述邏輯地址映射表中查找所述映射表集合中擦除次數(shù)小于所述平均
擦除次數(shù)的靜態(tài)數(shù)據(jù)塊;在所述空白塊集合中查找一個(gè)擦除次數(shù)最多的空白
塊;在所述擦除次數(shù)最多的空白塊上寫(xiě)入所述靜態(tài)數(shù)據(jù)塊數(shù)據(jù);將所述靜態(tài)數(shù)據(jù)塊放入所述未擦除塊集合中。
通過(guò)采用本發(fā)明實(shí)施例,在每次執(zhí)行寫(xiě)入數(shù)據(jù)任務(wù)時(shí),到建立的空白塊 集合中選取一個(gè)或多個(gè)空白塊,然后在選出的空白塊上寫(xiě)入數(shù)據(jù),減少寫(xiě)操 作時(shí)間,有效保證了每次寫(xiě)入數(shù)據(jù)的操作效率,節(jié)約系統(tǒng)開(kāi)銷(xiāo),實(shí)現(xiàn)對(duì)存儲(chǔ)
器中物理塊的有效管理;通過(guò)及時(shí)對(duì)無(wú)效數(shù)據(jù)塊的擦除和搜索空白塊,保證 空白塊數(shù)量滿足寫(xiě)入大量數(shù)據(jù)的要求;另外,通過(guò)對(duì)物理塊的靜態(tài)均衡操作, 保證對(duì)所有物理塊擦除次數(shù)的均衡性,從而延長(zhǎng)存儲(chǔ)器的使用壽命。
為了更清楚地說(shuō)明本發(fā)明實(shí)施例,建立以下列表 邏輯地址映射表用于記錄被寫(xiě)入數(shù)據(jù)的物理塊的邏輯地址和該物理塊 的物理地址間基本的邏輯映射關(guān)系,物理塊的邏輯地址和物理地址——對(duì)應(yīng)。 塊擦除次數(shù)列表用于記錄存儲(chǔ)介質(zhì)上至少一個(gè)物理塊被擦除的次數(shù)。 未擦除塊列表用于記錄未被擦除的物理塊。
根據(jù)以上列表,將固態(tài)硬盤(pán)SSD裝置的Flash芯片上現(xiàn)有物理塊分為三組 映射表組、空白塊組和未擦除塊組。 其中,
映射表組用于管理已經(jīng)被寫(xiě)入了數(shù)據(jù)的物理塊,該組的成員可直接從 邏輯地址映射表中讀出,不需要再申請(qǐng)其他存儲(chǔ)資源記錄該部分內(nèi)容。
空白塊組用于管理被擦除過(guò)的空白塊,該組成員主要是在上電時(shí)通過(guò) 對(duì)存儲(chǔ)介質(zhì)上至少一個(gè)物理塊遍歷獲得。該組成員的多少可根據(jù)需要而定, 一般要求比較多,以滿足大量數(shù)據(jù)寫(xiě)入時(shí)的需要。在運(yùn)行時(shí),由擦除任務(wù)提 供或空白塊搜索任務(wù)提供。
未擦除塊組用于管理未被擦除的物理塊,該組成員被記錄在未擦除塊 列表中。在運(yùn)行時(shí),每次寫(xiě)入數(shù)據(jù)完成后,都有可能產(chǎn)生一個(gè)未擦除塊。等 待空閑時(shí),將未擦除塊進(jìn)行擦除,然后放入空白塊組中。
當(dāng)有數(shù)據(jù)寫(xiě)入時(shí),本發(fā)明實(shí)施例提供的具體實(shí)施方案如圖2所示,可以 包括以下步驟
S201、從空白塊組中選出一塊空白塊,將原目標(biāo)塊數(shù)據(jù)和更新數(shù)據(jù)寫(xiě)入 該空白塊中。如果當(dāng)空白塊組中的空白塊使用完后,而寫(xiě)數(shù)據(jù)的任務(wù)還在繼續(xù)時(shí),要 先暫停寫(xiě)任務(wù),搜索一定數(shù)量的空白塊放入空白塊組中,或者搜索到一定數(shù) 量的無(wú)效數(shù)據(jù)塊,將無(wú)效數(shù)據(jù)塊擦除放入空白塊組中之后再繼續(xù)執(zhí)行寫(xiě)數(shù)據(jù) 的任務(wù)。
5202、 將該空白塊放入映射表組,更新邏輯地址映射表,將該空白塊的 邏輯地址設(shè)置為前目標(biāo)快邏輯地址,完成新的地址映射。
5203、 將原目標(biāo)塊放入未擦除塊組,等待空閑時(shí)間擦除該目標(biāo)塊上的數(shù)據(jù)。
利用空閑時(shí)間對(duì)無(wú)效數(shù)據(jù)塊上的數(shù)據(jù)進(jìn)行擦除,保證了在寫(xiě)入數(shù)據(jù)時(shí)提 高寫(xiě)操作的效率。
在寫(xiě)入數(shù)據(jù)過(guò)程中, 一些物理塊在空白塊組、映射表組和未擦除塊組間 發(fā)生了身份轉(zhuǎn)換,具體轉(zhuǎn)換過(guò)程如圖3所示
301、 在空白塊組中選出一塊空白塊并寫(xiě)入數(shù)據(jù)。
302、 將寫(xiě)入數(shù)據(jù)后的該空白塊放入映射表組中,并更新邏輯地址映射表。
303、 數(shù)據(jù)寫(xiě)入后,映射表組中原目標(biāo)塊中的數(shù)據(jù)不再有效,將該目標(biāo)塊 放入未擦除塊組中。
304、 在空閑時(shí),擦除未擦除塊組中的無(wú)效數(shù)據(jù)塊,將擦除后的物理塊放 入空白塊組中。
305、 當(dāng)空閑時(shí)或空白塊組中的空白塊個(gè)數(shù)少于門(mén)限n (n可以根據(jù)存儲(chǔ) 介質(zhì)的性質(zhì)自行設(shè)定)時(shí),通過(guò)對(duì)存儲(chǔ)介質(zhì)上至少一個(gè)物理塊遍歷搜索空白 塊,將搜索到的空白塊放入空白塊組中。
當(dāng)所有任務(wù)處于空閑狀態(tài)且離上一次靜態(tài)均衡時(shí)間已經(jīng)足夠長(zhǎng)的時(shí)候執(zhí) 行靜態(tài)均衡任務(wù),將映射表組中的靜態(tài)數(shù)據(jù)塊與空白塊組中的擦除次數(shù)最多 的空白塊進(jìn)行交換。靜態(tài)數(shù)據(jù)塊的條件為EBC<AVC-th,其中,EBC為塊擦 除次數(shù),AVC為塊平均擦除次數(shù),AVC根據(jù)塊擦除次數(shù)列表計(jì)算得到,th根 據(jù)不同的Flash而定,如1000。如圖4所示,為閃存物理塊靜態(tài)均衡過(guò)程示 意圖。
在映射表列表中搜索有效數(shù)據(jù)塊,同時(shí),在空白塊組中查找一個(gè)擦除次數(shù)最多的空白塊。當(dāng)查到的有效數(shù)據(jù)塊被擦除次數(shù)EBC小于塊平均擦除次數(shù) AVC-th時(shí),將靜態(tài)數(shù)據(jù)塊上的數(shù)據(jù)寫(xiě)入該空白塊,然后將兩個(gè)物理塊的數(shù)據(jù) 地址進(jìn)行交換,更新映射表列表。然后再繼續(xù)查找靜態(tài)數(shù)據(jù)塊,直至上述映 射表組中再?zèng)]有擦除次數(shù)EBC小于AVC-th的有效數(shù)據(jù)塊。
通過(guò)本發(fā)明實(shí)施例,充分利用了空閑時(shí)間對(duì)閃存進(jìn)行管理,減少了每次 寫(xiě)操作的時(shí)間,有效保證了寫(xiě)操作的快速執(zhí)行;所有的空白塊輪番操作,保 證所有塊被擦除的次數(shù)相近,空閑時(shí)的靜態(tài)均衡操作,進(jìn)一步保證所有塊被 擦除的均衡性,從而延長(zhǎng)固態(tài)硬盤(pán)SSD的使用壽命。
本發(fā)明實(shí)施例方法的各個(gè)步驟可以根據(jù)實(shí)際需要對(duì)順序進(jìn)行調(diào)整。
需要說(shuō)明的是,本發(fā)明實(shí)施例中提供的對(duì)閃存Flash管理方式,并不局限 于單片F(xiàn)lash情況,可運(yùn)用于多個(gè)Flash,或Flash陣列;另外,本發(fā)明實(shí)施例 中提出將物理塊分幾個(gè)組,以及建幾張表只為了說(shuō)明本發(fā)明的原理,本發(fā)明 并不局限于該情況。
本發(fā)明實(shí)施例還提供了一種存儲(chǔ)設(shè)備,如圖5所示,可以包括選擇模 塊501、輸入模塊503以及歸類(lèi)模塊505,
其中,選擇模塊501用于從根據(jù)預(yù)設(shè)的分組規(guī)則建立的空白塊集合中選 出一個(gè)或多個(gè)空白塊;
輸入模塊503用于在選擇才莫塊501選出的一個(gè)或多個(gè)空白塊上寫(xiě)入原目 標(biāo)塊數(shù)據(jù)和更新數(shù)據(jù);
歸類(lèi)模塊505用于將所述原目標(biāo)塊放入根據(jù)所述預(yù)設(shè)的分組規(guī)則建立的 未擦除塊集合中,將所述寫(xiě)入原目標(biāo)塊數(shù)據(jù)和更新數(shù)據(jù)的空白塊放到根據(jù)所 述預(yù)設(shè)的分組規(guī)則建立的映射表集合中。
另夕卜,存儲(chǔ)設(shè)備還可以包括映射表管理模塊507、空白塊管理模塊509、 未擦除塊管理模塊511和地址更新模塊513。
其中,映射表管理模塊507用于將已經(jīng)被寫(xiě)入數(shù)據(jù)的有效數(shù)據(jù)塊組成所 述映射表集合,所述映射表集合中的成員通過(guò)邏輯地址映射表中的邏輯地址 讀出;空白塊管理模塊509用于將未被寫(xiě)入數(shù)據(jù)的空白塊組成所述空白塊集合,所述空白塊集合中的成員通過(guò)對(duì)存儲(chǔ)介質(zhì)上至少一個(gè)物理塊遍歷獲得; 未擦除塊管理模塊511用于將已經(jīng)被寫(xiě)入但未被擦除的無(wú)效數(shù)據(jù)塊組成所述 未擦除塊集合。
地址更新模塊513,用于將通過(guò)輸入模塊503寫(xiě)入原目標(biāo)塊數(shù)據(jù)和更新數(shù) 據(jù)的空白塊的邏輯地址設(shè)置為所述原目標(biāo)塊的邏輯地址。
另外,存儲(chǔ)設(shè)備還可以包括搜索模塊515,用于搜索空白塊和無(wú)效數(shù)據(jù) 塊;擦除模塊517,用于將搜索模塊515搜索到的所述無(wú)效數(shù)據(jù)塊進(jìn)行擦除, 使得所述無(wú)效數(shù)據(jù)塊成為空白塊;歸類(lèi)模塊505還用于將擦除模塊517擦除 后的所述空白塊和搜索模塊515搜索到的所述空白塊放入空白塊管理模塊509 所管理的空白塊集合中。
本發(fā)明實(shí)施例提供的存儲(chǔ)設(shè)備還可以包括計(jì)算模塊519,用于根據(jù)塊擦除 次數(shù)列表計(jì)算存儲(chǔ)介質(zhì)上至少一個(gè)物理塊的平均擦除次數(shù)。
則選擇模塊501還可以包括查找子模塊5011,用于在空白塊管理模塊 509所管理的空白塊集合中查找小于通過(guò)計(jì)算模塊519計(jì)算得到的平均擦除次 數(shù)的空白塊;挑選子模塊5013,用于從根據(jù)查找子模塊5011查找的小于所述 平均擦除次數(shù)的空白塊中選出一個(gè)或多個(gè)空白塊。
該存儲(chǔ)設(shè)備還可以包括查找模塊521,用于查找映射表管理模塊507的 映射表集合中擦除次數(shù)小于計(jì)算模塊519計(jì)算得到的平均擦除次數(shù)的靜態(tài)數(shù) 據(jù)塊,還用于在空白塊管理模塊509的空白塊集合中查找一個(gè)擦除次數(shù)最多 的空白塊。
其中,輸入模塊503還用于在查找模塊521查找的擦除次數(shù)最多的空白 塊上寫(xiě)入所述靜態(tài)數(shù)據(jù)塊數(shù)據(jù);歸類(lèi)模塊505還用于將查找模塊521查找到 的靜態(tài)數(shù)據(jù)塊放入未擦除塊管理模塊511所管理的未擦除塊集合中。
本發(fā)明實(shí)施例設(shè)備的各個(gè)模塊可以集成于一體,也可以分離部署。上述 模塊可以合并為一個(gè)模塊,也可以進(jìn)一步拆分成多個(gè)子模塊。
本發(fā)明實(shí)施例還提供一種存儲(chǔ)管理系統(tǒng),如圖6所示,可以包括控制 設(shè)備61和存儲(chǔ)設(shè)備63,其中,控制設(shè)備61用于將任務(wù)命令向存儲(chǔ)設(shè)備63發(fā)送;存儲(chǔ)設(shè)備63用 于執(zhí)行控制設(shè)備61發(fā)送的任務(wù)命令,包括選擇模塊631,用于從根據(jù)預(yù)設(shè) 的分組規(guī)則建立的空白塊集合中選出一個(gè)或多個(gè)空白塊;輸入模塊633,用于 在選擇模塊631選出的一個(gè)或多個(gè)空白塊上寫(xiě)入原目標(biāo)塊數(shù)據(jù)和更新數(shù)據(jù); 歸類(lèi)模塊635,用于將所述原目標(biāo)塊》t^根據(jù)所述預(yù)設(shè)的分組規(guī)則建立的未擦 除塊集合中,將所述寫(xiě)入原目標(biāo)塊數(shù)據(jù)和更新數(shù)據(jù)的空白塊放到根據(jù)所述預(yù) 設(shè)的分組規(guī)則建立的映射表集合中。
其中,上述任務(wù)命令包括寫(xiě)入數(shù)據(jù)任務(wù)、或空白塊搜索任務(wù)、或擦除 任務(wù)的執(zhí)行和終止、或靜態(tài)均衡任務(wù)的執(zhí)行和終止。
則控制設(shè)備61還可以包括
寫(xiě)入數(shù)據(jù)控制模塊611 ,用于將所述寫(xiě)入數(shù)據(jù)任務(wù)命令向存儲(chǔ)設(shè)備63發(fā) 送;空白塊搜索控制模塊613,用于將所述空白塊搜索任務(wù)命令向存儲(chǔ)設(shè)備 63發(fā)送;擦除控制模塊615,用于將所述擦除任務(wù)向存儲(chǔ)設(shè)備63發(fā)送;靜態(tài) 均衡控制模塊617,用于將所述靜態(tài)均衡任務(wù)向存儲(chǔ)設(shè)備63發(fā)送。
本發(fā)明實(shí)施例系統(tǒng)的各個(gè)模塊可以集成于一個(gè)裝置,也可以分布于多個(gè) 裝置。上述模塊可以合并為一個(gè)模塊,也可以進(jìn)一步拆分成多個(gè)子模塊。
通過(guò)本發(fā)明實(shí)施例提供的存儲(chǔ)設(shè)備和存儲(chǔ)管理系統(tǒng),在每次執(zhí)行寫(xiě)入數(shù) 據(jù)任務(wù)時(shí),到建立的空白塊組中選取一個(gè)或多個(gè)空白塊,然后在選出的空白 塊上寫(xiě)入數(shù)據(jù),減少寫(xiě)操作時(shí)間,有效保證了每次寫(xiě)入數(shù)據(jù)操作的快速執(zhí)行; 通過(guò)及時(shí)對(duì)無(wú)效數(shù)據(jù)塊的擦除和搜索空白塊,保證空白塊數(shù)量滿足寫(xiě)入大量 數(shù)據(jù)的要求,另外,通過(guò)對(duì)物理塊的靜態(tài)均衡操作,保證對(duì)所有物理塊擦除 次數(shù)的均衡性,從而延長(zhǎng)存儲(chǔ)器的使用壽命。
本領(lǐng)域技術(shù)人員可以理解附圖只是一個(gè)優(yōu)選實(shí)施例的示意圖,附圖中的 模塊或流程并不 一定是實(shí)施本發(fā)明所必須的。
本領(lǐng)域技術(shù)人員可以理解實(shí)施例中的裝置中的模塊可以按照實(shí)施例描述 進(jìn)行分布于實(shí)施例的裝置中,也可以進(jìn)行相應(yīng)變化位于不同于本實(shí)施例的一 個(gè)或多個(gè)裝置中。上述實(shí)施例的模塊可以合并為一個(gè)模塊,也可以進(jìn)一步拆分成多個(gè)子模塊。
上述本發(fā)明實(shí)施例序號(hào)僅僅為了描述,不代表實(shí)施例的優(yōu)劣。 通過(guò)以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā) 明實(shí)施例可以通過(guò)硬件實(shí)現(xiàn),也可以借助軟件加必要的通用硬件平臺(tái)的方式 來(lái)實(shí)現(xiàn)?;谶@樣的理解,本發(fā)明實(shí)施例的技術(shù)方案可以以軟件產(chǎn)品的形式
體現(xiàn)出來(lái),該軟件產(chǎn)品可以存儲(chǔ)在一個(gè)非易失性存儲(chǔ)介質(zhì)(可以是CD-ROM, U盤(pán),移動(dòng)硬盤(pán)等)中,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè) 人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述的方法。
以上公開(kāi)的僅為本發(fā)明的幾個(gè)具體實(shí)施例,但是,本發(fā)明并非局限于此, 任何本領(lǐng)域的技術(shù)人員能思之的變化都應(yīng)落入本發(fā)明的保護(hù)范圍。
權(quán)利要求
1、一種存儲(chǔ)管理的方法,其特征在于,包括從根據(jù)預(yù)設(shè)的分組規(guī)則建立的空白塊集合中選出一個(gè)或多個(gè)空白塊;在所述選出的一個(gè)或多個(gè)空白塊上寫(xiě)入原目標(biāo)塊數(shù)據(jù)和更新數(shù)據(jù);將所述原目標(biāo)塊放入根據(jù)所述預(yù)設(shè)的分組規(guī)則建立的未擦除塊集合中,將所述寫(xiě)入原目標(biāo)塊數(shù)據(jù)和更新數(shù)據(jù)的空白塊放到根據(jù)所述預(yù)設(shè)的分組規(guī)則建立的映射表集合中。
2、 如權(quán)利要求1所述存儲(chǔ)管理的方法,其特征在于,在所述選出的一個(gè) 或多個(gè)空白塊上寫(xiě)入原目標(biāo)塊數(shù)據(jù)和更新數(shù)據(jù)之后,還包括將所述寫(xiě)入原目標(biāo)塊數(shù)據(jù)和更新數(shù)據(jù)的空白塊的邏輯地址設(shè)置為所述原 目標(biāo)塊的邏輯地址。
3、 如權(quán)利要求1所述存儲(chǔ)管理的方法,其特征在于,當(dāng)所述空白塊集合 中的空白塊被用完,暫停寫(xiě)入數(shù)據(jù)時(shí),所述方法還包括搜索空白塊和無(wú)效數(shù)據(jù)塊;將搜索到的所述無(wú)效數(shù)據(jù)塊進(jìn)行擦除,使得所述無(wú)效數(shù)據(jù)塊成為空白塊; 將擦除后的所述空白塊和搜索到的所述空白塊放入所述空白塊集合中。
4、 如權(quán)利要求1所述存儲(chǔ)管理的方法,其特征在于,還包括 根據(jù)塊擦除次數(shù)列表計(jì)算所述存儲(chǔ)介質(zhì)上至少一個(gè)物理塊的平均擦除次數(shù)。
5、 如權(quán)利要求4所述存儲(chǔ)管理的方法,其特征在于,所述從根據(jù)預(yù)設(shè)的 分組規(guī)則建立的空白塊集合中選出一個(gè)或多個(gè)空白塊,還包括在所述空白塊集合中查找擦除次數(shù)小于所述平均擦除次數(shù)的空白塊; 從所述擦除次數(shù)小于所述平均擦除次數(shù)的空白塊中選出一個(gè)或多個(gè)空白塊。
6、 如權(quán)利要求4所述存儲(chǔ)管理的方法,其特征在于,還包括 在所述邏輯地址映射表中查找所述映射表集合中擦除次數(shù)小于所述平均擦除次數(shù)的靜態(tài)數(shù)據(jù)塊;在所述空白塊集合中查找擦除次數(shù)最多的空白塊;在所述擦除次數(shù)最多的空白塊上寫(xiě)入所述靜態(tài)數(shù)據(jù)塊數(shù)據(jù); 將所述寫(xiě)入所述靜態(tài)數(shù)據(jù)塊數(shù)據(jù)的空白塊放入所述映射表集合中; 將所述靜態(tài)數(shù)據(jù)塊放入所述未擦除塊集合中。
7、 一種存儲(chǔ)設(shè)備,其特征在于,包括選擇模塊,用于從根據(jù)預(yù)設(shè)的分組規(guī)則建立的空白塊集合中選出 一個(gè)或 多個(gè)空白塊;輸入模塊,用于在所述選擇模塊選出的一個(gè)或多個(gè)空白塊上寫(xiě)入原目標(biāo) 塊數(shù)據(jù)和更新數(shù)據(jù);歸類(lèi)模塊,用于將所述原目標(biāo)塊放入根據(jù)所述預(yù)設(shè)的分組規(guī)則建立的未 擦除塊集合中,將所述寫(xiě)入原目標(biāo)塊數(shù)據(jù)和更新數(shù)據(jù)的空白塊放到根據(jù)所述 預(yù)設(shè)的分組規(guī)則建立的映射表集合中。
8、 如權(quán)利要求7所述的存儲(chǔ)設(shè)備,其特征在于,還包括 映射表管理模塊,用于將已經(jīng)被寫(xiě)入數(shù)據(jù)的有效數(shù)據(jù)塊組成所述映射表集合,所述映射表集合中的成員通過(guò)邏輯地址映射表中的邏輯地址讀出; 空白塊管理模塊,用于將未被寫(xiě)入數(shù)據(jù)的空白塊組成所述空白塊集合,所述空白塊集合中的成員通過(guò)對(duì)存儲(chǔ)介質(zhì)上至少一個(gè)物理塊遍歷獲得;未擦除塊管理模塊,用于將已經(jīng)被寫(xiě)入但未被擦除的無(wú)效數(shù)據(jù)塊組成所述未擦除塊集合。
9、 如權(quán)利要求7所述的存儲(chǔ)設(shè)備,其特征在于,還包括 地址更新模塊,用于將所述寫(xiě)入原目標(biāo)塊數(shù)據(jù)和更新數(shù)據(jù)的空白塊的邏 輯地址設(shè)置為所述原目標(biāo)塊的邏輯地址。
10、 如權(quán)利要求7所述的存儲(chǔ)設(shè)備,其特征在于,還包括 搜索模塊,用于搜索空白塊和無(wú)效數(shù)據(jù)塊;擦除模塊,用于將所述搜索模塊搜索到的所述無(wú)效數(shù)據(jù)塊進(jìn)行擦除,使 得所述無(wú)效數(shù)據(jù)塊成為空白塊;所述歸類(lèi)模塊還用于,將所述擦除模塊擦除后的所述空白塊和所述搜索 模塊搜索到的所述空白塊放入所述空白塊集合中。
11、 如權(quán)利要求7所述的存儲(chǔ)設(shè)備,其特征在于,還包括計(jì)算模塊,用于根據(jù)塊擦除次數(shù)列表計(jì)算所述存儲(chǔ)介質(zhì)上至少一個(gè)物理 塊的平均擦除次凄欠。
12、 如權(quán)利要求ll所述的存儲(chǔ)設(shè)備,其特征在于,所述選擇模塊包括 查找子模塊,用于在所述空白塊集合中查找擦除次數(shù)小于所述計(jì)算模塊計(jì)算得到的平均擦除次數(shù)的空白塊;挑選子模塊,用于從根據(jù)所述查找子模塊查找到的空白塊中選出一個(gè)或 多個(gè)空白塊。
13、 如權(quán)利要求11所述的存儲(chǔ)設(shè)備,其特征在于,還包括查找模塊,用于在所述映射表管理模塊的映射表集合中查找擦除次數(shù)小 于所述計(jì)算模塊計(jì)算得到的平均擦除次數(shù)的靜態(tài)數(shù)據(jù)塊。
14、 如權(quán)利要求13所述的存儲(chǔ)設(shè)備,其特征在于,所述查找模塊,還用 于在所述空白塊管理才莫塊的空白塊集合中,查找擦除次數(shù)最多的空白塊。
15、 如權(quán)利要求13或14所述的存儲(chǔ)設(shè)備,其特征在于, 所述輸入才莫塊,還用于在所述查找模塊查找到的擦除次數(shù)最多的空白塊上寫(xiě)入所述靜態(tài)數(shù)據(jù)塊數(shù)據(jù);所迷歸類(lèi)模塊,還用于將所述查找模塊查找到的靜態(tài)數(shù)據(jù)塊放入所述未 擦除塊集合中。
16、 如權(quán)利要求7-15任意一項(xiàng)所述的存儲(chǔ)設(shè)備,其特征在于,所述設(shè)備 的類(lèi)型包括硬盤(pán)、或flash 。
17、 一種存儲(chǔ)管理系統(tǒng),其特征在于,包括控制設(shè)備和存儲(chǔ)設(shè)備, 所述控制i殳備,用于將任務(wù)命令向所述存儲(chǔ)i殳備發(fā)送; 所述存儲(chǔ)設(shè)備,用于執(zhí)行所述控制設(shè)備發(fā)送的任務(wù)命令,包括 選擇模塊,用于從根據(jù)預(yù)設(shè)的分組規(guī)則建立的空白塊集合中選出 一個(gè)或多個(gè)空白塊;輸入模塊,用于在所述選擇模塊選出的一個(gè)或多個(gè)空白塊上寫(xiě)入原目標(biāo) 塊數(shù)據(jù)和更新數(shù)據(jù);歸類(lèi)模塊,用于將所述原目標(biāo)塊放入根據(jù)所述預(yù)設(shè)的分組規(guī)則建立的未擦除塊集合中,將所述寫(xiě)入原目標(biāo)塊數(shù)據(jù)和更新數(shù)據(jù)的空白塊放到根據(jù)所述 預(yù)設(shè)的分組規(guī)則建立的映射表集合中。
18、 如權(quán)利要求17所述存儲(chǔ)管理的系統(tǒng),其特征在于,所述任M令包 括寫(xiě)入數(shù)據(jù)任務(wù)、或空白塊搜索任務(wù)、或擦除任務(wù)的執(zhí)行和終止、或靜態(tài) 均衡任務(wù)的執(zhí)行和終止。
19、 如權(quán)利要求17或18所述存儲(chǔ)管理的系統(tǒng),其特征在于,所述控制 設(shè)備包括寫(xiě)入數(shù)據(jù)控制模塊,用于將所述寫(xiě)入數(shù)據(jù)任務(wù)命令向所述存儲(chǔ)設(shè)備發(fā)送; 空白塊搜索控制模塊,用于將所述空白塊搜索任務(wù)命令向所述存儲(chǔ)設(shè)備 發(fā)送;擦除控制才莫塊,用于將所述擦除任務(wù)向所述存儲(chǔ)設(shè)備發(fā)送; 靜態(tài)均衡控制模塊,用于將所述靜態(tài)均衡任務(wù)向所述存儲(chǔ)設(shè)備發(fā)送。
全文摘要
本發(fā)明實(shí)施例公開(kāi)了一種存儲(chǔ)管理的方法、系統(tǒng)和存儲(chǔ)設(shè)備,所述存儲(chǔ)管理的方法包括從根據(jù)預(yù)設(shè)的分組規(guī)則建立的空白塊集合中選出一個(gè)或多個(gè)空白塊;在所述選出的一個(gè)或多個(gè)空白塊上寫(xiě)入原目標(biāo)塊數(shù)據(jù)和更新數(shù)據(jù);將所述原目標(biāo)塊放入根據(jù)所述預(yù)設(shè)的分組規(guī)則建立的未擦除塊集合中,將所述寫(xiě)入原目標(biāo)塊數(shù)據(jù)和更新數(shù)據(jù)的空白塊放到根據(jù)所述預(yù)設(shè)的分組規(guī)則建立的映射表集合中。通過(guò)本發(fā)明實(shí)施例,能夠?qū)崿F(xiàn)對(duì)存儲(chǔ)設(shè)備中物理塊的有效管理,提高寫(xiě)入數(shù)據(jù)的操作效率,節(jié)約系統(tǒng)開(kāi)銷(xiāo),保證存儲(chǔ)設(shè)備中物理塊使用的均衡性,從而延長(zhǎng)存儲(chǔ)器的使用壽命。
文檔編號(hào)G06F12/06GK101419573SQ200810180148
公開(kāi)日2009年4月29日 申請(qǐng)日期2008年12月1日 優(yōu)先權(quán)日2008年12月1日
發(fā)明者張宗全 申請(qǐng)人:成都市華為賽門(mén)鐵克科技有限公司