两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

一種存儲設(shè)備中實現(xiàn)損耗均衡的方法及存儲設(shè)備的制作方法

文檔序號:6340898閱讀:153來源:國知局
專利名稱:一種存儲設(shè)備中實現(xiàn)損耗均衡的方法及存儲設(shè)備的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及通信技術(shù)領(lǐng)域,特別涉及一種存儲設(shè)備中實現(xiàn)損耗均衡的方法及存儲 設(shè)備。
背景技術(shù)
NOR Flash技術(shù)是目前常用的一種閃存技術(shù),采用該技術(shù)可以按字節(jié)快速讀寫,但 是,每個字節(jié)在寫入數(shù)據(jù)之后,不能直接再次寫入,而必須先將之前寫入的數(shù)據(jù)擦除。采用 NOR Flash技術(shù)進行擦除時,只能以頁為單位進行擦除操作,一般頁的大小為256字節(jié)。從 上層來看,擦除所完成的功能就是把擦除的這一頁內(nèi)的每一位都重新設(shè)置成邏輯1。NOR Flash的使用壽命是非常有限的,由NOR Flash中頁的最大可擦除次數(shù)決定, 隨著擦除次數(shù)的增加,該頁最終會變成只讀狀態(tài),成為壞頁。通常NOR Flash中每頁的最 大可擦除次數(shù)為10萬次。當(dāng)在智能卡領(lǐng)域中使用NORFlash技術(shù)時,由于智能卡對于文件 系統(tǒng)的存儲介質(zhì)不僅要求讀寫速度快、數(shù)據(jù)準確、有掉電保護功能,而且對于存儲介質(zhì)的使 用壽命要求也比較高,例如,智能卡中的某些數(shù)據(jù)需要修改200萬次左右,遠遠超過了 NOR Flash的最大可擦除次數(shù)。因此,迫切需要提高NOR Flash的使用壽命,為此,需要平衡使用 NOR Flash中所有的頁,而不讓某一頁過度使用。這種技術(shù)就是損耗均衡技術(shù)。目前,在NOR Flash中應(yīng)用損耗均衡技術(shù)時主要有兩種實現(xiàn)方式。第一種實現(xiàn)方 式的核心思想在于將NOR Flash中的整個存儲空間劃分為若干個大小相等的存儲單元, 每個存儲單元的大小為256+4個字節(jié),其中后四個字節(jié)用來存放校驗碼和存儲單元號,然 后再利用存儲單元映射等算法實現(xiàn)損耗均衡。但是,由于NOR Flash技術(shù)中是將256個字 節(jié)作為一頁,而采用上述存儲單元劃分方法勢必會出現(xiàn)跨頁的情況,當(dāng)需要擦除時,還需要 判斷跨頁情況,造成NOR Flash擦除相對緩慢。第二種實現(xiàn)方式的核心思想在于從整個存 儲空間中劃分出部分存儲單元作為管理存儲單元,用于記錄物理存儲單元與邏輯存儲單元 的對應(yīng)關(guān)系,對于上層文件系統(tǒng)只提供邏輯存儲單元的讀寫函數(shù)。對于擦寫次數(shù)較多的存 儲單元,將其數(shù)據(jù)寫入某空閑存儲單元,并修改物理存儲單元與邏輯存儲單元的對應(yīng)關(guān)系, 以實現(xiàn)各個存儲單元的均衡使用。其中,物理存儲單元和邏輯存儲單元的關(guān)系如下每個 存儲單元都有其對應(yīng)的物理地址和邏輯地址,且每個存儲單元對應(yīng)的物理地址是固定不變 的,用于唯一的標識一個存儲單元,而存儲單元對應(yīng)的邏輯地址則是可以改變的,物理地址 所對應(yīng)的存儲單元稱為物理存儲單元,邏輯地址所對應(yīng)的存儲單元稱為邏輯存儲單元。具 體實現(xiàn)時,在NOR Flash上開辟一段空間作為統(tǒng)計區(qū),用于記錄最近一段時間操作的存儲 單元對應(yīng)的擦除次數(shù),由于統(tǒng)計區(qū)的空間有限,只能記錄一小部分存儲單元的擦寫次數(shù),因 此,在內(nèi)存中還要開辟同樣大小的一段空間作為統(tǒng)計數(shù)據(jù)的臨時記錄,用于輔助記錄擦寫 次數(shù)。但是,采用這種方式,并不能準確判斷哪個存儲單元的擦除次數(shù)頻繁,而且,在統(tǒng)計擦 寫次數(shù)時,統(tǒng)計區(qū)由于擦寫頻繁很容易被寫壞。以上以NOR Flash為例說明,但并不對存儲 設(shè)備構(gòu)成限制,除了 NOR Flash之外,其他的很多存儲設(shè)備也會遇到類似的問題。由此可見,現(xiàn)有技術(shù)主要存在以下缺點某些存儲單元因擦寫次數(shù)過多很容易被寫壞,導(dǎo)致NOR Flash等存儲設(shè)備的使用壽命非常有限。

發(fā)明內(nèi)容
本發(fā)明提供了一種存儲設(shè)備中實現(xiàn)損耗均衡的方法及存儲設(shè)備,用以解決現(xiàn)有技 術(shù)中某些存儲單元因擦寫次數(shù)過多容易被寫壞,導(dǎo)致存儲設(shè)備的使用壽命非常有限的問 題?!N存儲設(shè)備中實現(xiàn)損耗均衡的方法,包括確定存儲單元出現(xiàn)壞塊并記錄下出現(xiàn)壞塊的存儲單元出現(xiàn)壞塊時對應(yīng)的邏輯地 址后,或者,每次將記錄的第一擦寫次數(shù)清零后,開始記錄所述邏輯地址當(dāng)前對應(yīng)的物理地 址所標識的存儲單元的第一擦寫次數(shù),其中,所述存儲設(shè)備中存儲有存儲單元的物理地址 與邏輯地址的當(dāng)前對應(yīng)關(guān)系;當(dāng)記錄的第一擦寫次數(shù)達到設(shè)定閾值時,從沒有出現(xiàn)壞塊的存儲單元中選擇一個 存儲單元,將所述邏輯地址當(dāng)前對應(yīng)的物理地址更新為從沒有出現(xiàn)壞塊的存儲單元中選擇 的存儲單元的物理地址,并將記錄的第一擦寫次數(shù)清零。一種實現(xiàn)損耗均衡的存儲設(shè)備,包括記錄模塊,用于確定存儲單元出現(xiàn)壞塊并記錄下出現(xiàn)壞塊的存儲單元出現(xiàn)壞塊時 對應(yīng)的邏輯地址后,或者,每次將記錄的第一擦寫次數(shù)清零后,開始記錄所述邏輯地址當(dāng)前 對應(yīng)的物理地址所標識的存儲單元的第一擦寫次數(shù);更新模塊,用于當(dāng)記錄的第一擦寫次數(shù)達到設(shè)定閾值時,從沒有出現(xiàn)壞塊的存儲 單元中選擇一個存儲單元,將所述邏輯地址當(dāng)前對應(yīng)的物理地址更新為從沒有出現(xiàn)壞塊的 存儲單元中選擇的存儲單元的物理地址,并將記錄的第一擦寫次數(shù)清零;存儲模塊,用于存儲各個存儲單元的物理地址與邏輯地址的當(dāng)前對應(yīng)關(guān)系。本發(fā)明實施例中通過記錄出現(xiàn)壞塊的存儲單元出現(xiàn)壞塊時對應(yīng)的邏輯地址以及 該邏輯地址當(dāng)前對應(yīng)的物理地址所標識的存儲單元的擦寫次數(shù),可以有效防止擦寫次數(shù)過 多的存儲單元被寫壞,實現(xiàn)損耗均衡,從而顯著提高了存儲設(shè)備的使用壽命。


圖1為本發(fā)明實施例中的一種存儲設(shè)備中實現(xiàn)損耗均衡的方法流程圖;圖2為本發(fā)明實施例中實現(xiàn)損耗均衡的存儲設(shè)備的結(jié)構(gòu)示意圖。
具體實施例方式本發(fā)明實施例提供了一種存儲設(shè)備中實現(xiàn)損耗均衡的方法及存儲設(shè)備,可以有效 防止擦寫次數(shù)過多的存儲單元被寫壞,從而顯著提高存儲設(shè)備的使用壽命。本發(fā)明實施例提供了一種存儲設(shè)備中實現(xiàn)損耗均衡的方法,如圖1所示,包括SlOl 確定存儲單元出現(xiàn)壞塊并記錄下出現(xiàn)壞塊的存儲單元出現(xiàn)壞塊時對應(yīng)的邏 輯地址后,或者,每次將記錄的第一擦寫次數(shù)清零后,開始記錄所述邏輯地址當(dāng)前對應(yīng)的物 理地址所標識的存儲單元的第一擦寫次數(shù),其中,所述存儲設(shè)備中存儲有存儲單元的物理 地址與邏輯地址的當(dāng)前對應(yīng)關(guān)系。這里,存儲單元出現(xiàn)壞塊,具體指該存儲單元損壞,即無論該壞塊僅僅位于存儲單元的某個局部,還是覆蓋了整個存儲單元,都說明該存儲單元已經(jīng)損壞,無法再次使用。其中,所述確定存儲單元出現(xiàn)壞塊,并記錄下出現(xiàn)壞塊的存儲單元出現(xiàn)壞塊時對 應(yīng)的邏輯地址后,還可以進一步包括從預(yù)留的空閑存儲單元中選擇一個存儲單元,將所 述邏輯地址當(dāng)前對應(yīng)的物理地址更新為從預(yù)留的空閑存儲單元中選擇的存儲單元的物理 地址,并將所述出現(xiàn)壞塊的存儲單元中的數(shù)據(jù)寫入從預(yù)留的空閑存儲單元中選擇的存儲單 元。并且,所述預(yù)留的空閑存儲單元的個數(shù)大于等于出現(xiàn)壞塊的存儲單元的個數(shù)。S102:當(dāng)記錄的第一擦寫次數(shù)達到設(shè)定閾值時,從沒有出現(xiàn)壞塊的存儲單元中選 擇一個存儲單元,將所述邏輯地址當(dāng)前對應(yīng)的物理地址更新為從沒有出現(xiàn)壞塊的存儲單元 中選擇的存儲單元的物理地址,并將記錄的第一擦寫次數(shù)清零。為了實現(xiàn)數(shù)據(jù)的可靠備份,所述將所述邏輯地址當(dāng)前對應(yīng)的物理地址更新為從沒 有出現(xiàn)壞塊的存儲單元中選擇的存儲單元的物理地址的步驟之前,還可以進一步包括將 所述邏輯地址當(dāng)前對應(yīng)的物理地址所標識的存儲單元中的數(shù)據(jù)寫入備份存儲單元,并在更 新記錄存儲單元中記錄寫入備份存儲單元的操作;將寫入備份存儲單元中的數(shù)據(jù)寫入從沒 有出現(xiàn)壞塊的存儲單元中選擇的存儲單元,并在更新記錄存儲單元中記錄寫入選擇的存儲 單元的操作。其中,每當(dāng)需要對數(shù)據(jù)區(qū)中的某個存儲單元進行數(shù)據(jù)更新時,或者,對數(shù)據(jù)區(qū) 中出現(xiàn)壞塊的存儲單元進行替換時,備份存儲單元和更新記錄存儲單元分別用于保存當(dāng)前 操作所對應(yīng)的原始數(shù)據(jù)以及更新操作信息,以便在突然斷電后根據(jù)備份存儲單元和更新記 錄存儲單元中保存的內(nèi)容繼續(xù)完成更新或替換操作。當(dāng)下次再需要對某個存儲單元進行數(shù) 據(jù)更新或替換時,則需要先擦除備份存儲單元和更新記錄存儲單元中的內(nèi)容,然后再通過 備份存儲單元和更新記錄存儲單元保存當(dāng)前操作所對應(yīng)的原始數(shù)據(jù)以及更新操作信息???之,通常情況下,備份存儲單元和更新記錄存儲單元是配合在一起使用的,共同完成數(shù)據(jù)更 新時的掉電保護功能,每當(dāng)出現(xiàn)某個存儲單元需要進行更新或替換時,備份存儲單元和更 新記錄存儲單元都要擦除一次,且二者的擦除次數(shù)相同。當(dāng)然,具體實現(xiàn)時,也可以為備份 存儲單元或更新記錄存儲單元預(yù)留較大的存儲容量,使得備份存儲單元或更新記錄存儲單 元可以在完成多次存儲單元的更新或替換操作之后再進行擦除,但是,這樣還需要額外記 錄備份存儲單元或更新記錄存儲單元的已用空間及可用空間,并且,還需要分別記錄備份 存儲單元以及更新記錄存儲單元的擦除次數(shù),需要額外占用存儲空間且增加了管理的復(fù)雜 度,因此,在本實施例中,備份存儲單元和更新記錄存儲單元都在每次執(zhí)行存儲單元的更新 或替換操作之前進行擦除。由此可以看出,備份存儲單元和更新記錄存儲單元擦除次數(shù)相同且擦寫頻繁,為 了防止備份存儲單元和更新記錄存儲單元因擦寫次數(shù)過多而損壞,本方法還可以包括以下 步驟確定所述備份存儲單元和更新記錄存儲單元對應(yīng)的邏輯地址后,或者,每當(dāng)記錄的第 二擦寫次數(shù)清零后,開始記錄所述備份存儲單元或更新記錄存儲單元對應(yīng)的邏輯地址當(dāng)前 對應(yīng)的物理地址所標識的存儲單元的第二擦寫次數(shù);當(dāng)記錄的第二擦寫次數(shù)達到設(shè)定閾值 時,從沒有出現(xiàn)壞塊的存儲單元中選擇兩個存儲單元,并將所述備份存儲單元和更新記錄 存儲單元對應(yīng)的邏輯地址當(dāng)前對應(yīng)的物理地址分別更新為所述兩個存儲單元的物理地址, 并將記錄的第二擦寫次數(shù)清零。這里,由于備份存儲單元和更新記錄存儲單元的擦寫次數(shù) 相同,因此,為了節(jié)約存儲空間,簡化管理操作,可以只對備份存儲單元和更新記錄存儲單 元中的任意一個的擦寫次數(shù)進行記錄。
在本方法中,在將所述邏輯地址當(dāng)前對應(yīng)的物理地址更新為從沒有出現(xiàn)壞塊的存 儲單元中選擇的存儲單元的物理地址之后,如果接收到攜帶所述邏輯地址的數(shù)據(jù)擦寫指 令,則根據(jù)該數(shù)據(jù)擦寫指令對所述邏輯地址當(dāng)前對應(yīng)的物理地址所標識的存儲單元進行擦寫。通過采用本發(fā)明實施例提供的方法,通過記錄出現(xiàn)壞塊的邏輯存儲單元的擦寫次 數(shù),可以有效避免擦寫次數(shù)過多的存儲單元被寫壞,合理實現(xiàn)損耗均衡,從而提高存儲設(shè)備 的使用壽命。下面以一個優(yōu)選實施例詳細描述一下本發(fā)明提供的實現(xiàn)損耗均衡的方法。在本實 施例中,以NOR Flash為例進行介紹,當(dāng)然,本發(fā)明提供的方法還可以應(yīng)用于其他存儲設(shè)備 上,如NAND FLASH或EEPROM等。NOR Flash上的存儲單元也稱為扇區(qū),為了操作方便,本實 施例中的一個存儲單元的大小為256個字節(jié),與NOR Flash中的一頁的大小一致,因此,操 作時不會出現(xiàn)跨頁的現(xiàn)象。當(dāng)然,也可以將存儲單元的大小劃分為256個字節(jié)的整數(shù)倍,同 樣可以防止跨頁情況。本發(fā)明實施例提供的方案,僅記錄擦寫頻繁的部分存儲單元的擦寫次數(shù),對這些 存儲單元進行損耗均衡處理。由于NOR Flash中的每頁,也就是本發(fā)明實施例中提到的每 個存儲單元都受到擦除次數(shù)10萬次的限制,所以經(jīng)常擦寫的存儲單元應(yīng)該參與均衡操作。 但是,損耗均衡的處理,是建立在明確參與均衡的存儲單元的擦寫次數(shù)之上的,如果每個存 儲單元的擦寫次數(shù)都要明確記錄,勢必會在空間、時間上占用很大資源,且記錄擦寫次數(shù)的 存儲單元也會頻繁擦寫。由于本發(fā)明為了防止操作過程中因斷電所導(dǎo)致的操作錯誤,在對某個存儲單元中 的數(shù)據(jù)進行修改之前,需要先將該存儲單元原來存儲的數(shù)據(jù)寫到備份存儲單元中,然后再 將修改之后的數(shù)據(jù)寫入該存儲單元,并且,在此過程中,還需要在更新記錄存儲單元中記錄 每一步所執(zhí)行的操作,以便于斷電后根據(jù)更新記錄存儲單元中記錄的操作步驟以及備份存 儲單元中存儲的數(shù)據(jù)進行數(shù)據(jù)恢復(fù)。因此,備份存儲單元和更新記錄存儲單元在每次修改 數(shù)據(jù)時都要進行擦寫,所以,首先確定這兩個存儲單元擦寫頻繁,應(yīng)該記錄擦寫次數(shù)。另外, 數(shù)據(jù)區(qū)的存儲單元,即用于存儲數(shù)據(jù)的存儲單元中哪些存儲單元擦寫頻繁是無法事先得知 的,因此,可以在某個存儲單元出現(xiàn)壞塊,即損壞之后對其進行記錄。當(dāng)某個存儲單元出現(xiàn) 壞塊時,則說明該存儲單元出現(xiàn)壞塊時對應(yīng)的邏輯地址當(dāng)前對應(yīng)的物理地址所標識的存儲 單元擦寫頻繁,因此,需要對該邏輯地址當(dāng)前對應(yīng)的物理地址所標識的存儲單元的擦寫次 數(shù)進行記錄。為此,本發(fā)明將所有的存儲單元分為兩部分,一部分用于存儲管理信息,另外一部 分用于存儲數(shù)據(jù)信息。其中,管理信息對應(yīng)的全部存儲單元可以進一步分為以下7部分,即啟動存儲單元用于在磁盤格式化后記錄各個部分的大小及產(chǎn)品的相關(guān)信息,上 電后作為全局變量讀出,只有格式化時會擦寫一次。壞塊地址用于當(dāng)數(shù)據(jù)區(qū)有存儲單元出現(xiàn)壞塊時,在此記錄相關(guān)信息。每條信息的 內(nèi)容包括壞塊所在存儲單元的物理地址、壞塊所在存儲單元出現(xiàn)壞塊時的邏輯地址、保留 區(qū)用于替換的存儲單元的物理地址。該部分的每個存儲單元可以記錄多條信息,且只有當(dāng) 數(shù)據(jù)區(qū)有存儲單元出現(xiàn)壞塊時,才需要記錄一條,以后不會重復(fù)擦寫。
壞塊替換記錄由于當(dāng)存儲單元出現(xiàn)壞塊后,需要從保留區(qū)找到空閑的存儲單 元替代出現(xiàn)壞塊的存儲單元,涉及到記錄壞塊所在存儲單元的地址、修改頁訪問表O^age Access Table,PAT)等操作,為了防止在這一處理過程中掉電,需要在壞塊替換記錄中記錄 已完成的步驟,以便上電后繼續(xù)完成壞塊的替換過程。每出現(xiàn)一個壞塊,該部分所對應(yīng)的存 儲單元將會擦除一次。PAT:即頁訪問表,在該表中記錄了每個存儲單元的邏輯地址與物理地址的當(dāng)前對 應(yīng)關(guān)系,當(dāng)對應(yīng)關(guān)系改變時,需要修改該表中的記錄。其中,物理地址,也叫硬件地址,用于 唯一的標識各個存儲單元;邏輯地址,用于提供給上層文件系統(tǒng),上層文件系統(tǒng)在寫入數(shù)據(jù) 時,根據(jù)邏輯地址對相應(yīng)的存儲單元進行操作。數(shù)據(jù)區(qū)部分存儲單元的擦除次數(shù)用N個存儲單元記錄數(shù)據(jù)區(qū)前N個出現(xiàn)壞塊的 存儲單元在出現(xiàn)壞塊時對應(yīng)的邏輯地址當(dāng)前對應(yīng)的物理地址所標識的存儲單元的擦寫次 數(shù)。其中,N的具體數(shù)值由保留區(qū)的存儲單元個數(shù)決定。更新記錄存儲單元地址用于存儲更新記錄存儲單元的物理地址,地址記錄只需 要4字節(jié),而本存儲單元的大小為256字節(jié),因此,本存儲單元可寫入64次地址,以最后一 條記錄作為當(dāng)前更新記錄存儲單元的物理地址。當(dāng)更新記錄存儲單元的擦除次數(shù)達到設(shè)定 閾值后,需要參與均衡,此時會改變更新記錄存儲單元的地址,同時相應(yīng)的在該存儲單元中 記錄當(dāng)前更新記錄存儲單元的物理地址。備份存儲單元地址用于存儲備份存儲單元的物理地址,由于備份存儲單元和更 新記錄存儲單元的擦除次數(shù)相同,因此,當(dāng)更新記錄存儲單元改變地址時,也需要修改備份 存儲單元的地址,此時,需要相應(yīng)修改該存儲單元的記錄。數(shù)據(jù)信息對應(yīng)的全部存儲單元可以進一步分為以下4個部分,即保留區(qū)在保留區(qū)中預(yù)留了一些空閑存儲單元用于替換損壞的存儲單元。當(dāng)數(shù)據(jù) 區(qū)有存儲單元出現(xiàn)壞塊,需要替換時,從保留區(qū)中找到一個空閑存儲單元,代替出現(xiàn)壞塊的 存儲單元,同時修改邏輯地址與物理地址的對應(yīng)關(guān)系。其中,保留區(qū)中的存儲單元個數(shù)可以 由系統(tǒng)在格式化時進行設(shè)置。數(shù)據(jù)區(qū)提供給上層文件系統(tǒng)的區(qū)域,即用于存儲數(shù)據(jù)的存儲單元,利用PAT將物 理地址轉(zhuǎn)換為邏輯地址,供文件系統(tǒng)使用。更新記錄存儲單元為防止寫NOR Flash過程中掉電,每次進行寫操作前,都要將 欲操作的步驟寫入此存儲單元,以便上電恢復(fù)后繼續(xù)完成操作,保證磁盤數(shù)據(jù)正確性。備份存儲單元N0R Flash執(zhí)行寫操作時,需要先對操作的存儲單元進行擦除,再 寫入。為防止這一過程中掉電,在更新某存儲單元中的數(shù)據(jù)時,先將舊數(shù)據(jù),即原始數(shù)據(jù)寫 入備份存儲單元,擦除該存儲單元中的數(shù)據(jù),再將欲寫入的內(nèi)容與備份存儲單元中的內(nèi)容 合并,寫回該存儲單元。上述每一部分都是頁的整數(shù)倍,不會出現(xiàn)跨頁情況,便于操作。當(dāng)數(shù)據(jù)區(qū)有存儲單元出現(xiàn)壞塊后,先以保留區(qū)中的一存儲單元替換該出現(xiàn)壞塊的 存儲單元,然后開始記錄出現(xiàn)壞塊的存儲單元出現(xiàn)壞塊時對應(yīng)的邏輯地址當(dāng)前對應(yīng)的物理 地址所標識的存儲單元的擦寫次數(shù)。每擦除一次,在其記錄擦除次數(shù)的存儲單元中的相 應(yīng)偏移寫入1字節(jié)數(shù)據(jù),例如第一次擦除,在O偏移寫入0X5A,第二次擦除,在1偏移寫入 0x5A.......當(dāng)記錄的存儲單元擦除次數(shù)達到設(shè)定閾值,如256時,將在數(shù)據(jù)區(qū)找到一個不需要記錄擦除次數(shù)的存儲單元,與達到次數(shù)的存儲單元進行替換。每次寫數(shù)據(jù)區(qū)前,查看是 否有需要均衡的區(qū)域,如果有,先進行損耗均衡替換,然后才進行數(shù)據(jù)區(qū)內(nèi)容的更新。損耗 均衡替換可以按照備份存儲單元、更新記錄存儲單元、數(shù)據(jù)區(qū)的順序進行,當(dāng)然也可以采用 其他順序,此處不作限定。由于備份存儲單元、更新記錄存儲單元相對擦除次數(shù)更多,所以 可以先替換,每次只替換一個存儲單元,可以提高處理速度。下面詳細介紹一下備份存儲單元、更新記錄存儲單元以及數(shù)據(jù)區(qū)的替換過程當(dāng)備份存儲單元的擦除次數(shù)達到設(shè)定閾值后,從不需要記錄擦除次數(shù)的存儲單元 中選擇一個存儲單元與備份存儲單元進行替換,替換后選擇的這一存儲單元即成為新的備 份存儲單元。具體替換過程為將選擇的這一存儲單元中的數(shù)據(jù)寫入備份存儲單元,并將選 擇的這一存儲單元的當(dāng)前邏輯地址與備份存儲單元的當(dāng)前邏輯地址進行替換,假設(shè)本實施 例中備份存儲單元對應(yīng)的邏輯地址為0001,每當(dāng)需要向備份存儲單元寫入數(shù)據(jù)時,也就是 向邏輯地址0001當(dāng)前對應(yīng)的物理地址所標識的存儲單元寫入數(shù)據(jù)。因此,初始狀態(tài)時,備 份存儲單元的邏輯地址為0001,物理地址也為0001,選擇的存儲單元的邏輯地址為0003, 物理地址也為0003,當(dāng)確定物理地址為0001的備份存儲單元的擦除次數(shù)達到設(shè)定閾值后, 將選擇的物理地址為0003的存儲單元中的數(shù)據(jù)寫入物理地址為0001的備份存儲單元中, 然后擦除物理地址為0003的存儲單元中的數(shù)據(jù),同時,將邏輯地址0001當(dāng)前對應(yīng)的物理地 址修改為0003,并在備份存儲單元地址中記錄新的備份存儲單元的物理地址,即物理地址 0003。而且,還要在PAT中將邏輯地址為0003的存儲單元對應(yīng)的物理地址修改為0001,具 體的,在修改PAT中的數(shù)據(jù)時,為了防止斷電,可以先將PAT中存儲該數(shù)據(jù)的存儲單元中的 原始內(nèi)容寫入物理地址為0003的新的備份存儲單元中,然后再擦除PAT中存儲該數(shù)據(jù)的存 儲單元中的內(nèi)容,再將修改后的內(nèi)容與物理地址為0003的新的備份存儲單元中的內(nèi)容合 并,寫回PAT中存儲該數(shù)據(jù)的存儲單元中,實現(xiàn)對PAT的修改。在執(zhí)行上述每一步驟之后, 都需要在更新記錄存儲單元中記錄相關(guān)的操作,以防止因斷電而丟失數(shù)據(jù)。通過上述操作, 即把邏輯地址0001對應(yīng)的物理地址修改為0003,因此,下次再需要向備份存儲單元中寫入 數(shù)據(jù)時,則直接寫入邏輯地址0001當(dāng)前對應(yīng)的物理地址0003所標識的存儲單元,從而使得 物理地址為0003的存儲單元成為新的備份存儲單元,實現(xiàn)了備份存儲單元的均衡處理。當(dāng)更新記錄存儲單元的擦除次數(shù)達到設(shè)定閾值后,從不需要記錄擦除次數(shù)的存儲 單元中選擇一個存儲單元與更新記錄存儲單元進行替換,替換后選擇的這一存儲單元即成 為新的更新記錄存儲單元。具體替換過程為將選擇的這一存儲單元中的數(shù)據(jù)寫入備份存 儲單元,并將選擇的這一存儲單元的當(dāng)前邏輯地址與更新記錄存儲單元的當(dāng)前邏輯地址進 行替換,假設(shè)本實施例中更新記錄存儲單元對應(yīng)的邏輯地址為0002,每當(dāng)需要向更新記錄 存儲單元寫入數(shù)據(jù)時,也就是向邏輯地址0002當(dāng)前對應(yīng)的物理地址所標識的存儲單元寫 入數(shù)據(jù)。因此,初始狀態(tài)時,更新記錄存儲單元的邏輯地址為0002,物理地址也為0002,選 擇的存儲單元的邏輯地址為0005,物理地址為0005,當(dāng)確定物理地址為0002的更新記錄存 儲單元的擦除次數(shù)達到設(shè)定閾值后,將選擇的物理地址為0005的存儲單元中的數(shù)據(jù)先寫 入備份存儲單元中,然后擦除物理地址為0005的存儲單元中的數(shù)據(jù),然后,將物理地址為 0002的原更新記錄存儲單元中的內(nèi)容,即已經(jīng)記錄的與該替換更新記錄存儲單元的操作有 關(guān)的更新數(shù)據(jù)寫入物理地址為0005的存儲單元中,即物理地址為0005的存儲單元成為新 的更新記錄存儲單元,之后再向更新記錄存儲單元中寫入更新操作時,則寫入物理地址為0005的新的更新記錄存儲單元中,并且,擦除物理地址為0002的原更新記錄存儲單元中的 內(nèi)容,將之前寫入備份存儲單元中的數(shù)據(jù)寫入物理地址為0002的存儲單元中,即將物理地 址為0005的存儲單元中的原始數(shù)據(jù)保存在了物理地址為0002的存儲單元中,同時,將邏輯 地址0002當(dāng)前對應(yīng)的物理地址修改為0005,并在更新記錄存儲單元地址中記錄新的更新 記錄存儲單元的物理地址,即物理地址0005,而且,還要在PAT中將邏輯地址為0005的存儲 單元對應(yīng)的物理地址修改為0002。在執(zhí)行上述每一步驟之后,都需要在更新記錄存儲單元 中記錄相關(guān)的操作,以防止因斷電而丟失數(shù)據(jù)。通過上述操作,即把邏輯地址0002對應(yīng)的 物理地址修改為0005,因此,下次再需要向更新記錄存儲單元中寫入數(shù)據(jù)時,則直接寫入邏 輯地址0002當(dāng)前對應(yīng)的物理地址0005所標識的存儲單元,從而使得物理地址為0005的存 儲單元成為新的更新記錄存儲單元,實現(xiàn)了更新記錄存儲單元的均衡處理。當(dāng)數(shù)據(jù)區(qū)有存儲單元出現(xiàn)壞塊時,需要從保留區(qū)中選擇一個存儲單元與出現(xiàn)壞塊 的存儲單元進行替換即將數(shù)據(jù)區(qū)出現(xiàn)壞塊的存儲單元中的數(shù)據(jù)寫入保留區(qū)中所選擇的存 儲單元,并在壞塊地址中記錄出現(xiàn)壞塊的存儲單元的物理地址、出現(xiàn)壞塊的存儲單元的邏 輯地址以及從保留區(qū)選擇的存儲單元的物理地址。假設(shè)數(shù)據(jù)區(qū)出現(xiàn)壞塊的存儲單元出現(xiàn)壞 塊時的邏輯地址為0003,該出現(xiàn)壞塊的存儲單元的物理地址也為0003,假設(shè)從保留區(qū)選擇 的這一存儲單元的物理地址為0006,將選擇的這一存儲單元與出現(xiàn)壞塊的存儲單元進行替 換,即將邏輯地址0003對應(yīng)的物理地址修改為0006,并開始記錄物理地址為0006的這一 存儲單元,即出現(xiàn)壞塊的存儲單元出現(xiàn)壞塊時的邏輯地址0003當(dāng)前對應(yīng)物理地址所標識 的存儲單元的擦除次數(shù),當(dāng)物理地址為0006的存儲單元的擦除次數(shù)達到設(shè)定閾值時,從不 需要記錄擦除次數(shù)的存儲單元中選擇一個存儲單元,假設(shè)選擇的不需記錄擦除次數(shù)的存儲 單元的邏輯地址為0008,其所對應(yīng)的物理地址為0008,將物理地址為0008的存儲單元當(dāng)前 對應(yīng)的邏輯地址與物理地址為0006的存儲單元當(dāng)前對應(yīng)的邏輯地址0003進行替換,則替 換后邏輯地址0003當(dāng)前對應(yīng)存儲單元的物理地址為0008,并開始記錄物理地址為0008的 存儲單元的擦除次數(shù)。具體替換過程為將物理地址為0006的存儲單元中的數(shù)據(jù)寫入備份 存儲單元,并擦除該存儲單元中的數(shù)據(jù),然后,將物理地址為0008的存儲單元中的數(shù)據(jù)寫 入物理地址為0006的存儲單元,然后,再將備份存儲單元中的數(shù)據(jù)寫入物理地址為0008的 存儲單元中,同時,還要在PAT中將邏輯地址為0003的存儲單元所對應(yīng)的物理地址修改為 0008,將邏輯地址為0008的存儲單元所對應(yīng)的物理地址修改為0006。在執(zhí)行上述每一步驟 之后,都需要在更新記錄存儲單元中記錄相關(guān)的操作,以防止因斷電而丟失數(shù)據(jù)。當(dāng)下次再 需要對邏輯地址0003進行操作時,則會相應(yīng)的操作該邏輯地址當(dāng)前對應(yīng)的物理地址所標 識的存儲單元,即物理地址為0008的存儲單元,從而實現(xiàn)了數(shù)據(jù)區(qū)的損耗均衡處理。在本實施例中,之所以要單獨記錄更新記錄存儲單元地址,是因為當(dāng)更新記錄存 儲單元進行替換時,需要修改PAT,而所修改的PAT地址又需要記錄在更新記錄存儲單元 中,如果更新記錄存儲單元的地址沒有單獨存儲,就無法找到需要修改的PAT 了,單獨記錄 備份存儲單元地址的原因與之類似。通過采用上述方法,可以大大降低各個存儲單元的總擦寫次數(shù),以記錄PAT的存 儲單元為例只有當(dāng)某個存儲單元參與均衡或者出現(xiàn)壞塊后進行替換時,存儲單元的邏輯 地址和物理地址的對應(yīng)關(guān)系才會發(fā)生變化,此時才會更新PAT。因此,如果PAT出現(xiàn)壞塊,即 擦除達到10萬次,假設(shè)保留區(qū)的存儲單元個數(shù)為10個,也就是說記錄數(shù)據(jù)區(qū)中10個存儲單元的擦除次數(shù),最壞情況為這10個存儲單元的邏輯地址都在PAT的同一存儲單元中,即 數(shù)據(jù)區(qū)這10個存儲單元中的每個存儲單元平均修改PATl萬次,而每個存儲單元的數(shù)據(jù)擦 除次數(shù)達到256次后才會修改PAT —次,再加上一開始不記錄擦除次數(shù),即存儲單元出現(xiàn)壞 塊前的擦除次數(shù)10萬次,則PAT中的每個存儲單元平均可擦除10000X256+100000 = 266 萬次,遠遠超過擦寫200萬次的要求。其他存儲單元的計算方法類似,當(dāng)磁盤達到壽命時,各部分擦寫次數(shù)統(tǒng)計如表1 所示表 權(quán)利要求
1.一種存儲設(shè)備中實現(xiàn)損耗均衡的方法,其特征在于,包括確定存儲單元出現(xiàn)壞塊并記錄下出現(xiàn)壞塊的存儲單元出現(xiàn)壞塊時對應(yīng)的邏輯地址后, 或者,每次將記錄的第一擦寫次數(shù)清零后,開始記錄所述邏輯地址當(dāng)前對應(yīng)的物理地址所 標識的存儲單元的第一擦寫次數(shù),其中,所述存儲設(shè)備中存儲有存儲單元的物理地址與邏 輯地址的當(dāng)前對應(yīng)關(guān)系;當(dāng)記錄的第一擦寫次數(shù)達到設(shè)定閾值時,從沒有出現(xiàn)壞塊的存儲單元中選擇一個存儲 單元,將所述邏輯地址當(dāng)前對應(yīng)的物理地址更新為從沒有出現(xiàn)壞塊的存儲單元中選擇的存 儲單元的物理地址,并將記錄的第一擦寫次數(shù)清零。
2.如權(quán)利要求1所述的方法,其特征在于,所述確定存儲單元出現(xiàn)壞塊,并記錄下出現(xiàn) 壞塊的存儲單元出現(xiàn)壞塊時對應(yīng)的邏輯地址后,進一步包括從預(yù)留的空閑存儲單元中選 擇一個存儲單元,將所述邏輯地址當(dāng)前對應(yīng)的物理地址更新為從預(yù)留的空閑存儲單元中選 擇的存儲單元的物理地址,并將所述出現(xiàn)壞塊的存儲單元中的數(shù)據(jù)寫入從預(yù)留的空閑存儲 單元中選擇的存儲單元。
3.如權(quán)利要求2所述的方法,其特征在于,所述預(yù)留的空閑存儲單元的個數(shù)大于等于 出現(xiàn)壞塊的存儲單元的個數(shù)。
4.如權(quán)利要求1所述的方法,其特征在于,所述將所述邏輯地址當(dāng)前對應(yīng)的物理地址 更新為從沒有出現(xiàn)壞塊的存儲單元中選擇的存儲單元的物理地址的步驟之前,進一步包 括將所述邏輯地址當(dāng)前對應(yīng)的物理地址所標識的存儲單元中的數(shù)據(jù)寫入備份存儲單元, 并在更新記錄存儲單元中記錄寫入備份存儲單元的操作;將寫入備份存儲單元中的數(shù)據(jù)寫入從沒有出現(xiàn)壞塊的存儲單元中選擇的存儲單元,并 在更新記錄存儲單元中記錄寫入選擇的存儲單元的操作。
5.如權(quán)利要求4所述的方法,其特征在于,還包括確定所述備份存儲單元和所述更新記錄存儲單元對應(yīng)的邏輯地址后,或者,每當(dāng)記錄 的第二擦寫次數(shù)清零后,開始記錄所述備份存儲單元或更新記錄存儲單元對應(yīng)的邏輯地址 當(dāng)前對應(yīng)的物理地址所標識的存儲單元的第二擦寫次數(shù);當(dāng)記錄的第二擦寫次數(shù)達到設(shè)定閾值時,從沒有出現(xiàn)壞塊的存儲單元中選擇兩個存儲 單元,并將所述備份存儲單元和更新記錄存儲單元對應(yīng)的邏輯地址當(dāng)前對應(yīng)的物理地址分 別更新為所述兩個存儲單元的物理地址,并將記錄的第二擦寫次數(shù)清零。
6.如權(quán)利要求1所述的方法,其特征在于,所述將所述邏輯地址當(dāng)前對應(yīng)的物理地址 更新為從沒有出現(xiàn)壞塊的存儲單元中選擇的存儲單元的物理地址的步驟之后,進一步包 括接收到攜帶所述邏輯地址的數(shù)據(jù)擦寫指令后,對所述邏輯地址當(dāng)前對應(yīng)的物理地址所 標識的存儲單元進行擦寫。
7.一種實現(xiàn)損耗均衡的存儲設(shè)備,其特征在于,包括記錄模塊,用于確定存儲單元出現(xiàn)壞塊并記錄下出現(xiàn)壞塊的存儲單元出現(xiàn)壞塊時對應(yīng) 的邏輯地址后,或者,每次將記錄的第一擦寫次數(shù)清零后,開始記錄所述邏輯地址當(dāng)前對應(yīng) 的物理地址所標識的存儲單元的第一擦寫次數(shù);更新模塊,用于當(dāng)記錄的第一擦寫次數(shù)達到設(shè)定閾值時,從沒有出現(xiàn)壞塊的存儲單元中選擇一個存儲單元,將所述邏輯地址當(dāng)前對應(yīng)的物理地址更新為從沒有出現(xiàn)壞塊的存儲 單元中選擇的存儲單元的物理地址,并將記錄的第一擦寫次數(shù)清零;存儲模塊,用于存儲各個存儲單元的物理地址與邏輯地址的當(dāng)前對應(yīng)關(guān)系。
8.如權(quán)利要求7所述的存儲設(shè)備,其特征在于,所述更新模塊,進一步用于確定出現(xiàn) 壞塊的存儲單元出現(xiàn)壞塊時對應(yīng)的邏輯地址之后,從預(yù)留的空閑存儲單元中選擇一個存儲 單元,將所述邏輯地址當(dāng)前對應(yīng)的物理地址更新為從預(yù)留的空閑存儲單元中選擇的存儲單 元的物理地址,并將所述出現(xiàn)壞塊的存儲單元中的數(shù)據(jù)寫入從預(yù)留的空閑存儲單元中選擇 的存儲單元。
9.如權(quán)利要求7所述的存儲設(shè)備,其特征在于,所述更新模塊,具體用于將所述邏輯地址當(dāng)前對應(yīng)的物理地址所標識的存儲單元中的數(shù)據(jù)寫入備份存儲單元, 并在更新記錄存儲單元中記錄寫入備份存儲單元的操作;將寫入備份存儲單元中的數(shù)據(jù)寫入從沒有出現(xiàn)壞塊的存儲單元中選擇的存儲單元,并 在更新記錄存儲單元中記錄寫入選擇的存儲單元的操作。
10.如權(quán)利要求9所述的存儲設(shè)備,其特征在于,所述更新模塊,進一步用于 確定所述備份存儲單元和所述更新記錄存儲單元對應(yīng)的邏輯地址后,或者,每當(dāng)記錄的第二擦寫次數(shù)清零后,開始記錄所述備份存儲單元或更新記錄存儲單元對應(yīng)的邏輯地址 當(dāng)前對應(yīng)的物理地址所標識的存儲單元的第二擦寫次數(shù);當(dāng)記錄的第二擦寫次數(shù)達到設(shè)定閾值時,從沒有出現(xiàn)壞塊的存儲單元中選擇兩個存儲 單元,并將所述備份存儲單元和更新記錄存儲單元對應(yīng)的邏輯地址當(dāng)前對應(yīng)的物理地址分 別更新為所述兩個存儲單元的物理地址,并將記錄的第二擦寫次數(shù)清零。
11.如權(quán)利要求7所述的存儲設(shè)備,其特征在于,還包括接收模塊,用于接收到攜帶所述邏輯地址的數(shù)據(jù)擦寫指令后,對所述邏輯地址當(dāng)前對 應(yīng)的物理地址所標識的存儲單元進行擦寫。
全文摘要
本發(fā)明公開了一種存儲設(shè)備中實現(xiàn)損耗均衡的方法及存儲設(shè)備,該方法包括確定存儲單元出現(xiàn)壞塊并記錄下出現(xiàn)壞塊的存儲單元出現(xiàn)壞塊時對應(yīng)的邏輯地址后,或者,每次將記錄的擦寫次數(shù)清零后,開始記錄該邏輯地址當(dāng)前對應(yīng)的物理地址所標識的存儲單元的擦寫次數(shù),其中,存儲設(shè)備中存儲有存儲單元的物理地址與邏輯地址的當(dāng)前對應(yīng)關(guān)系;當(dāng)記錄的擦寫次數(shù)達到設(shè)定閾值時,從沒有出現(xiàn)壞塊的存儲單元中選擇一個存儲單元,將該邏輯地址當(dāng)前對應(yīng)的物理地址更新為從沒有出現(xiàn)壞塊的存儲單元中選擇的存儲單元的物理地址,并將記錄的擦寫次數(shù)清零。通過記錄出現(xiàn)壞塊的邏輯存儲單元擦寫次數(shù),可有效避免擦寫次數(shù)過多的存儲單元被寫壞,提高存儲設(shè)備的使用壽命。
文檔編號G06F12/02GK102135942SQ20101061731
公開日2011年7月27日 申請日期2010年12月31日 優(yōu)先權(quán)日2010年12月31日
發(fā)明者薛晗 申請人:北京握奇數(shù)據(jù)系統(tǒng)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
栖霞市| 启东市| 连南| 论坛| 上饶县| 酉阳| 永靖县| 渝北区| 松阳县| 辽中县| 沽源县| 五常市| 长泰县| 克东县| 东平县| 涟源市| 星子县| 延安市| 双流县| 黑河市| 久治县| 新绛县| 乾安县| 津南区| 磐安县| 新建县| 历史| 武隆县| 兰考县| 屯留县| 进贤县| 永济市| 东明县| 鄂尔多斯市| 西和县| 安庆市| 广安市| 慈利县| 塘沽区| 循化| 历史|