專利名稱:一種數(shù)據(jù)存儲的方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計算機及嵌入式領(lǐng)域,特別是涉及數(shù)據(jù)存儲的方法及裝置。
背景技術(shù):
NAND型閃存(Nandflash)是閃存的一種,其內(nèi)部采用非線性宏單元模式,為固態(tài)大容量內(nèi)存的實現(xiàn)提供了廉價有效的解決方案。Nandflash存儲器具有容量較大,改寫速度快等優(yōu)點,適用于大量數(shù)據(jù)的存儲,因而在業(yè)界得到了越來越廣泛的應(yīng)用,如嵌入式產(chǎn)品中包括數(shù)碼相機、隨身聽記憶卡、體積小巧的U盤等。Nandflash以塊為單位進行擦除操作。 閃存的寫入操作必須在空白區(qū)域進行,如果目標(biāo)區(qū)域已經(jīng)有數(shù)據(jù),必須先擦除后寫入,因此擦除操作是閃存的基本操作。由于Nand-flash中存放的資料較多,結(jié)構(gòu)相對復(fù)雜,出錯的幾率也相應(yīng)增加,這樣就會使程序和文件資源很容易遭到破壞?,F(xiàn)有技術(shù)中Nandflash在出廠時會對其進行檢測,根據(jù)塊中錯誤比特(bit)的數(shù)量,將塊分為好塊和壞塊。好塊是指可以用于存儲數(shù)據(jù)的塊,壞塊是指不能用于存儲數(shù)據(jù)的塊。用于區(qū)分好壞塊的錯誤比特數(shù)量門限值,如果設(shè)得較小,則好塊的數(shù)量會比較少,也就是可用的存儲空間將非常小,相當(dāng)一部分存儲空間無法使用,影響存儲空間的利用率。如果設(shè)得比較大,則在數(shù)據(jù)讀寫過程中會獲得錯誤的數(shù)據(jù),嚴(yán)重時將影響系統(tǒng)的運行。由于Nandflash在長時間的使用過程中,塊中錯誤比特的數(shù)量會增加,為了防止對數(shù)據(jù)的影響,錯誤比特數(shù)量門限值都設(shè)得明顯較低,影響存儲空間的利用率。
發(fā)明內(nèi)容
本發(fā)明實施例提供一種數(shù)據(jù)存儲的方法及裝置,用于提高存儲空間的利用率。一種數(shù)據(jù)存儲的方法,包括以下步驟接收存儲數(shù)據(jù)的請求,并從該請求中獲得需存儲的數(shù)據(jù);根據(jù)所述請求包括的需存儲的數(shù)據(jù)的邏輯存儲地址,及根據(jù)邏輯存儲地址與等級的對應(yīng)關(guān)系,確定需存儲的數(shù)據(jù)的數(shù)據(jù)等級;數(shù)據(jù)等級是依據(jù)數(shù)據(jù)的容錯能力設(shè)定的;將需存儲的數(shù)據(jù)存儲到與數(shù)據(jù)等級對應(yīng)的存儲塊。一種用于數(shù)據(jù)存儲的裝置,包括接口模塊,用于接收存儲數(shù)據(jù)的請求,并從該請求中獲得需存儲的數(shù)據(jù);處理模塊,用于根據(jù)所述請求包括的需存儲的數(shù)據(jù)的邏輯存儲地址,及根據(jù)邏輯存儲地址與等級的對應(yīng)關(guān)系,確定需存儲的數(shù)據(jù)的數(shù)據(jù)等級,并將需存儲的數(shù)據(jù)存儲到與數(shù)據(jù)等級對應(yīng)的存儲塊;數(shù)據(jù)等級是依據(jù)數(shù)據(jù)的容錯能力設(shè)定的;存儲模塊中的存儲塊用于存儲數(shù)據(jù)。一種用于數(shù)據(jù)存儲的裝置,包括文件管理器,用于接收存儲數(shù)據(jù)的請求,并從該請求中獲得需存儲的數(shù)據(jù),以及根據(jù)所述請求包括的需存儲的數(shù)據(jù)的邏輯存儲地址,及根據(jù)邏輯存儲地址與等級的對應(yīng)關(guān)系,確定需存儲的數(shù)據(jù)的數(shù)據(jù)等級;數(shù)據(jù)等級是依據(jù)數(shù)據(jù)的容錯能力設(shè)定的;驅(qū)動器,用于將需存儲的數(shù)據(jù)存儲到與數(shù)據(jù)等級對應(yīng)的存儲塊。本發(fā)明實施例將數(shù)據(jù)和存儲塊均分為多個等級,按照需存儲的數(shù)據(jù)的邏輯地址查找相應(yīng)的數(shù)據(jù)等級,再依據(jù)數(shù)據(jù)等級將數(shù)據(jù)存儲到對應(yīng)的存儲塊。根據(jù)數(shù)據(jù)的容錯能力,不同數(shù)據(jù)等級的數(shù)據(jù)存儲到不同的好塊中。由于對數(shù)據(jù)和存儲塊進行了分級,并做相應(yīng)的存儲,則可根據(jù)數(shù)據(jù)的最大容錯能力設(shè)置好塊與壞塊之間的門限值,而不是如現(xiàn)有技術(shù)中根據(jù)數(shù)據(jù)的容錯均衡能力設(shè)置好塊與壞塊之間的門限值,則本實施例可以將好塊與壞塊之間的門限值設(shè)得高一些,可高于現(xiàn)有技術(shù)中常用的門限值,以提高存儲塊的利用率。并且,根據(jù)數(shù)據(jù)的容錯能力,將不同的數(shù)據(jù)等級的數(shù)據(jù)存儲到相應(yīng)的存儲塊中,減少錯誤數(shù)據(jù)帶來的影響。
圖1為本發(fā)明實施例中數(shù)據(jù)存儲的主要方法流程圖;圖2為本發(fā)明實施例中數(shù)據(jù)存儲的詳細(xì)方法流程圖;圖3為本發(fā)明實施例中文件管理器和驅(qū)動器實現(xiàn)數(shù)據(jù)存儲的方法流程圖;圖4為本發(fā)明實施例中裝置400的結(jié)構(gòu)圖;圖5為本發(fā)明實施例中裝置500的主要結(jié)構(gòu)圖;圖6為本發(fā)明實施例中裝置500的詳細(xì)結(jié)構(gòu)圖。
具體實施例方式本發(fā)明實施例將數(shù)據(jù)和存儲塊均分為多個等級,按照需存儲的數(shù)據(jù)的邏輯地址查找相應(yīng)的數(shù)據(jù)等級,再依據(jù)數(shù)據(jù)等級將數(shù)據(jù)存儲到對應(yīng)的存儲塊。數(shù)據(jù)的數(shù)據(jù)等級至少包括兩個,存儲塊要至少三個等級,存儲塊的一個存儲等級對應(yīng)壞塊,至少兩個存儲等級對應(yīng)好塊。根據(jù)數(shù)據(jù)的容錯能力,不同數(shù)據(jù)等級的數(shù)據(jù)存儲到不同的好塊中,這樣可根據(jù)數(shù)據(jù)的最大容錯能力設(shè)置好塊與壞塊之間的門限值,而不是根據(jù)數(shù)據(jù)的容錯均衡能力設(shè)置好塊與壞塊之間的門限值,則本實施例可以將好塊與壞塊之間的門限值設(shè)得高一些,可高于現(xiàn)有技術(shù)中常用的門限值,以提高存儲塊的利用率。并且,根據(jù)數(shù)據(jù)的容錯能力,將不同的數(shù)據(jù)等級的數(shù)據(jù)存儲到相應(yīng)的存儲塊中,減少錯誤數(shù)據(jù)帶來的影響。參見圖1,本實施例中數(shù)據(jù)存儲的主要方法流程如下步驟101 接收存儲數(shù)據(jù)的請求,并從該請求中獲得需存儲的數(shù)據(jù)。步驟102 根據(jù)所述請求包括的需存儲的數(shù)據(jù)的邏輯存儲地址,及根據(jù)邏輯存儲地址與等級的對應(yīng)關(guān)系,確定需存儲的數(shù)據(jù)的數(shù)據(jù)等級。數(shù)據(jù)等級是依據(jù)數(shù)據(jù)的容錯能力設(shè)定的。本實施例中數(shù)據(jù)包括系統(tǒng)數(shù)據(jù)(如操作系統(tǒng)和其它軟件程序等)、文本數(shù)據(jù)(如短信和電話簿等)和多媒體數(shù)據(jù)(如圖片、音樂和視頻等)等。系統(tǒng)數(shù)據(jù)的容錯能力最低,多媒體數(shù)據(jù)的容錯能力最高。數(shù)據(jù)等級以3級為例,系統(tǒng)數(shù)據(jù)的數(shù)據(jù)等級為0,文本數(shù)據(jù)的數(shù)據(jù)等級為1,音視頻數(shù)據(jù)的數(shù)據(jù)等級為2。步驟103 將需存儲的數(shù)據(jù)存儲到與等級對應(yīng)的存儲塊。參見圖2,本實施例中數(shù)據(jù)存儲的詳細(xì)方法流程如下步驟201 獲得存儲數(shù)據(jù)的請求。
步驟202 從該請求中獲得需存儲的數(shù)據(jù)。步驟203 根據(jù)所述請求包括的需存儲的數(shù)據(jù)的邏輯存儲地址,及根據(jù)邏輯存儲地址與等級的對應(yīng)關(guān)系,確定需存儲數(shù)據(jù)的數(shù)據(jù)等級。在嵌入式系統(tǒng)中,不同類型的數(shù)據(jù)通常對應(yīng)不同的文件夾,也就是對應(yīng)不同的邏輯地址。對于用戶自建的文件夾,雖然其中存的數(shù)據(jù)的實際類型可能不同,但從邏輯上可以認(rèn)為是同一類型的數(shù)據(jù)。可為用戶自建的文件夾默認(rèn)配置一個數(shù)據(jù)等級,或者為用戶提供接口,由用戶選擇一個數(shù)據(jù)等級。步驟204 確定與數(shù)據(jù)等級對應(yīng)的存儲等級。存儲等級是依據(jù)存儲塊的錯誤比特數(shù)設(shè)定的;數(shù)據(jù)等級與存儲等級一一對應(yīng),且容錯能力最高的數(shù)據(jù)等級對應(yīng)錯誤比特數(shù)范圍次大的存儲等級。步驟205 將需存儲的數(shù)據(jù)存儲到對應(yīng)的存儲等級所對應(yīng)的存儲塊。較佳的,存儲等級的設(shè)定還要依據(jù)存儲塊所采用的糾錯算法的糾錯能力。錯誤比特數(shù)范圍次大與錯誤比特數(shù)范圍最大之間的錯誤比特數(shù)界值不超過存儲塊所采用的糾錯算法的糾正錯誤比特數(shù)的最大值。例如,糾錯算法的糾正錯誤比特數(shù)的最大值為16比特, 考慮到nandflash在長期使用過程中存儲塊的錯誤比特數(shù)會增多,為了減少這種情況對數(shù)據(jù)的影響,可將錯誤比特數(shù)范圍次大與錯誤比特數(shù)范圍最大之間的錯誤比特數(shù)界值設(shè)為12 比特。錯誤比特數(shù)范圍與存儲等級的對應(yīng)關(guān)系的一個實例如表1所示表 1
錯誤比特數(shù)范圍t存儲等級0 ^ t < 303<t<818 彡 t < 12212彡t3由于現(xiàn)有技術(shù)中只分好塊和壞塊,糾錯算法的糾正錯誤比特數(shù)的最大值以16比特為例,其好塊和壞塊之間的門限值通常設(shè)為8比特。采用本實施例提供的方案,可設(shè)到 10-14比特,明顯高于現(xiàn)有技術(shù)的8比特,提高了存儲塊的利用率。并且現(xiàn)有技術(shù)中將數(shù)據(jù)存儲到好塊中,且不做任何區(qū)分,存在將軟件數(shù)據(jù)這種容錯能力比較低的數(shù)據(jù)存儲到錯誤數(shù)在6、7比特這樣的存儲塊中,導(dǎo)致軟件運行出錯或無法運行。而本實施例將系統(tǒng)程序和軟件數(shù)據(jù)這種容錯能力比較低的數(shù)據(jù)存儲到0存儲等級的存儲塊,不超過2比特的錯誤數(shù), 明顯減少了對軟件和系統(tǒng)運行的影響。將視音頻這種容錯能力比較高的數(shù)據(jù)存儲到2存儲等級的存儲塊,即使有幾比特的數(shù)據(jù)未校驗正確,也不會對系統(tǒng)造成影響,用戶也很難察覺。一個數(shù)據(jù)等級與存儲等級的對應(yīng)關(guān)系的實例如表2所示表 權(quán)利要求
1.一種數(shù)據(jù)存儲的方法,其特征在于,包括以下步驟接收存儲數(shù)據(jù)的請求,并從該請求中獲得需存儲的數(shù)據(jù);根據(jù)所述請求包括的需存儲的數(shù)據(jù)的邏輯存儲地址,及根據(jù)邏輯存儲地址與等級的對應(yīng)關(guān)系,確定需存儲的數(shù)據(jù)的數(shù)據(jù)等級,數(shù)據(jù)等級是依據(jù)數(shù)據(jù)的容錯能力設(shè)定的;將需存儲的數(shù)據(jù)存儲到與數(shù)據(jù)等級對應(yīng)的存儲塊。
2.如權(quán)利要求1所述的方法,其特征在于,將需存儲的數(shù)據(jù)存儲到與所述數(shù)據(jù)等級對應(yīng)的存儲塊的步驟包括確定與數(shù)據(jù)等級對應(yīng)的存儲等級;將需存儲的數(shù)據(jù)存儲到確定出的存儲等級所對應(yīng)的存儲塊。
3.如權(quán)利要求2所述的方法,其特征在于,存儲等級是依據(jù)存儲塊的錯誤比特數(shù)設(shè)定的;數(shù)據(jù)等級與存儲等級逐級一一對應(yīng),且容錯能力最高的數(shù)據(jù)等級對應(yīng)錯誤比特數(shù)范圍次大的存儲等級。
4.如權(quán)利要求3所述的方法,其特征在于,錯誤比特數(shù)范圍次大與錯誤比特數(shù)范圍最大之間的錯誤比特數(shù)界值不超過存儲塊所采用的糾錯算法的糾正錯誤比特數(shù)的最大值。
5.如權(quán)利要求1至4中任一項所述的方法,其特征在于,還包括步驟對存儲的數(shù)據(jù)進行校驗,獲得存儲塊中錯誤比特數(shù),根據(jù)錯誤比特數(shù)判斷是否需要調(diào)整該存儲塊對應(yīng)的存儲等級,在判斷為是時,根據(jù)錯誤比特數(shù)調(diào)整該存儲塊對應(yīng)的存儲等級。
6.一種用于數(shù)據(jù)存儲的裝置,其特征在于,包括接口模塊,用于接收存儲數(shù)據(jù)的請求,并從該請求中獲得需存儲的數(shù)據(jù);處理模塊,用于根據(jù)所述請求包括的需存儲的數(shù)據(jù)的邏輯存儲地址,及根據(jù)邏輯存儲地址與等級的對應(yīng)關(guān)系,確定需存儲的數(shù)據(jù)的數(shù)據(jù)等級,并將需存儲的數(shù)據(jù)存儲到與數(shù)據(jù)等級對應(yīng)的存儲塊,數(shù)據(jù)等級是依據(jù)數(shù)據(jù)的容錯能力設(shè)定的;存儲模塊中的存儲塊用于存儲數(shù)據(jù)。
7.如權(quán)利要求6所述的裝置,其特征在于,處理模塊確定與數(shù)據(jù)等級對應(yīng)的存儲等級, 并將需存儲的數(shù)據(jù)存儲到確定出的存儲等級所對應(yīng)的存儲塊。
8.如權(quán)利要求7所述的裝置,其特征在于,存儲等級是依據(jù)存儲塊的錯誤比特數(shù)設(shè)定的;數(shù)據(jù)等級與存儲等級逐級一一對應(yīng),且容錯能力最高的數(shù)據(jù)等級對應(yīng)錯誤比特數(shù)范圍次大的存儲等級。
9.如權(quán)利要求8所述的裝置,其特征在于,錯誤比特數(shù)范圍次大與錯誤比特數(shù)范圍最大之間的錯誤比特數(shù)界值不超過存儲塊所采用的糾錯算法的糾正錯誤比特數(shù)的最大值。
10.如權(quán)利要求6所述的裝置,其特征在于,還包括控制模塊,用于對存儲的數(shù)據(jù)進行校驗,獲得存儲塊中錯誤比特數(shù);處理模塊還用于根據(jù)錯誤比特數(shù)判斷是否需要調(diào)整該存儲塊對應(yīng)的存儲等級,在判斷為是時,根據(jù)錯誤比特數(shù)調(diào)整該存儲塊對應(yīng)的存儲等級。
11.一種用于數(shù)據(jù)存儲的裝置,其特征在于,包括文件管理器,用于接收存儲數(shù)據(jù)的請求,并從該請求中獲得需存儲的數(shù)據(jù),以及根據(jù)所述請求包括的需存儲的數(shù)據(jù)的邏輯存儲地址,及根據(jù)邏輯存儲地址與等級的對應(yīng)關(guān)系,確定需存儲的數(shù)據(jù)的數(shù)據(jù)等級,數(shù)據(jù)等級是依據(jù)數(shù)據(jù)的容錯能力設(shè)定的;驅(qū)動器,用于將需存儲的數(shù)據(jù)存儲到與等級對應(yīng)的存儲塊。
全文摘要
本發(fā)明公開了一種數(shù)據(jù)存儲的方法,用于提高存儲空間的利用率。所述方法包括獲得存儲數(shù)據(jù)的請求,并從該請求中獲得需存儲的數(shù)據(jù);根據(jù)所述請求包括的需存儲的數(shù)據(jù)的邏輯存儲地址,及根據(jù)邏輯存儲地址與等級的對應(yīng)關(guān)系,確定需存儲的數(shù)據(jù)的數(shù)據(jù)等級;數(shù)據(jù)等級是依據(jù)數(shù)據(jù)的容錯能力設(shè)定的;將需存儲的數(shù)據(jù)存儲到與等級對應(yīng)的存儲塊。本發(fā)明還公開了用于實現(xiàn)所述方法的裝置。
文檔編號G06F12/02GK102419734SQ20101029457
公開日2012年4月18日 申請日期2010年9月27日 優(yōu)先權(quán)日2010年9月27日
發(fā)明者艾國 申請人:北京中星微電子有限公司