專利名稱:讀取非易失性計算機存儲器的系統(tǒng)和方法
技術(shù)領(lǐng)域:
本公開一i^涉及用于讀取非易失性計算機存儲器的系統(tǒng)和方法。
背景技術(shù):
用戶對像個人數(shù)字助理(PDA)、 MP3播放器、便攜式存儲系統(tǒng)、增強型 手機(cell phone)系統(tǒng)、以及照相機這樣一類的便攜式設(shè)備的需求日益增加。 傳統(tǒng)的非易失性儲存器存儲系統(tǒng)(例如軟磁盤、硬盤驅(qū)動器、以及光驅(qū)動)一 般不適合在便攜式設(shè)備中使用,原因在于它們遭受機械故障、超重、大尺寸以 及高能量消耗。結(jié)果,便攜式設(shè)備的制造致力于固態(tài)存儲系統(tǒng),例如閃存以及 電可擦除可編程只讀存儲器(EEPROM)。
在固態(tài)存儲設(shè)備(例如閃存)上對數(shù)據(jù)的存取以及存儲利用虛擬化的地址。 固態(tài)存儲設(shè)備易于隨著使用而耗損,并且同樣,固態(tài)存儲設(shè)備內(nèi)部的扇區(qū)可能 失去存儲無誤差數(shù)據(jù)的能力。為了減少固態(tài)存儲設(shè)備耗損的問題,微控制器通 常會平衡存儲器扇區(qū)之間的f好目。例如,當(dāng) 被提供給閃存設(shè)備時,該數(shù)據(jù) 可以被存儲在第一扇區(qū),并且當(dāng)數(shù)據(jù)被更新時,微控制器可以將數(shù)據(jù)存儲在第 二扇區(qū),從而M^、了第一扇區(qū)的耗損。因此,數(shù)據(jù)塊的物理位置可能變化。為 了促進(jìn)這種平衡且為了尋址變化的物理地址,微控制器通常生成一種列表,該 列表被用來把由計算系統(tǒng)使用的基于位置的地址轉(zhuǎn)換為閃存設(shè)備內(nèi)部所使用的 虛擬地址。通31i^種方式,系統(tǒng)可以利用基于相同位置的地址來尋址一組 , 同時微控制器可以根據(jù)平衡助、議將該信息存儲在閃存的變化扇區(qū)內(nèi)或者閃存內(nèi) 部的不同地址上。當(dāng)扇區(qū)在閃存設(shè)備內(nèi)部是壞的時,微控制器可以生成壞數(shù)據(jù) 扇區(qū)的日劃寸以阻止 存儲在這種壞數(shù)據(jù)扇區(qū)內(nèi)。
典型地通過讀取婁娥扇區(qū)和校驗系統(tǒng)數(shù)據(jù)內(nèi)特定的代石別直 行壞扇區(qū)的 編目以及扇區(qū)日則t的生成。 一般,與數(shù)據(jù)扇區(qū)的所有數(shù)據(jù)有關(guān)的ECC被包含 在用于糾正和校驗數(shù)據(jù)中的噪聲的數(shù)據(jù)扇區(qū)內(nèi)。例如,當(dāng)存儲數(shù)據(jù)時基于數(shù)據(jù) 來計算ECC并隨 —起存儲。當(dāng)存取類娜時,從數(shù)據(jù)中計算新的ECC并與 隨數(shù)據(jù)一起被存儲的ECC進(jìn)行比較。如果新的ECC和所存儲的ECC之間存
5在差別,則數(shù)撤艮可能被破壞并且扇區(qū)可能是壞的。在許多例子中,ECC可以 ICT來在傳輸給隨后的存儲系統(tǒng)或處理器之前糾正數(shù)據(jù)。
這種檢錯、糾錯、以及壞 塊的編目對于多級單元閃存變得愈發(fā)重要。
多級單元(MLC)閃存比傳統(tǒng)的單級單元閃存具有更大的存儲密度。但是,多 級單元閃存典型地具有更高的差錯率且可能耗損更決。同樣,糾錯以及扇區(qū)編 目對刊頃失性固態(tài)存儲設(shè)備而言鵬越有用。
但是,讀取數(shù)據(jù)、計算ECC以及糾正受破壞的數(shù)據(jù)的過程是漫長的過程。 同樣,執(zhí)行任務(wù)(例如日劃寸數(shù)據(jù)扇區(qū))消耗系統(tǒng)資源。在一個例子中,日劃寸任 務(wù)可能降低戶,接的存儲器總線的性能。同樣,需要用于讀取非易失性存儲器 的改進(jìn)的系統(tǒng)和方法。
圖1是示出示例性存儲系統(tǒng)的框圖。 圖2是示出示例性存儲器的框圖。
圖3、 4和5是示出象在圖1中戶^的存儲系統(tǒng)這樣一類存儲系統(tǒng)使用的 示例性方法的流程圖。
具體實施例方式
在特定的實施例中,本公開涉及具有處理器和非易失性存儲設(shè)備的存儲系 統(tǒng)。非易失性存儲設(shè)備被配置用于存儲具有數(shù)據(jù)扇區(qū)或頁面的數(shù)據(jù)塊。數(shù)據(jù)的 每個扇區(qū)或頁面都包括用戶數(shù)據(jù)區(qū)和冗余存儲區(qū)。每個冗余存儲區(qū)都包括具有 循環(huán)冗余校驗碼(CRC)的第一部分以及具有糾錯碼(ECC)的第二部分。當(dāng) 生成閃存日劃寸時,系統(tǒng)可以讀取每個冗余存儲區(qū)的第一部分并利用有關(guān)的循環(huán) 冗余校驗碼(CRC)來校驗差錯。如果發(fā)現(xiàn)冗余部分的數(shù)據(jù)出錯,系統(tǒng)可以利 用在冗余存儲區(qū)或*數(shù)據(jù)扇區(qū)上所存儲的ECC碼來執(zhí)行數(shù)據(jù)糾正。
例如,冗余存儲區(qū)的第一部分可以包括系統(tǒng)數(shù)據(jù)和對數(shù)據(jù)塊編目有用的數(shù) 據(jù),例如一個或多個重寫標(biāo)記、邏輯地址數(shù)據(jù)、格式預(yù)定數(shù)據(jù)、安全碼、數(shù)據(jù) 管理標(biāo)記、以及識別扇區(qū)內(nèi)數(shù)據(jù)類別的標(biāo)記。在一個示范性實施例中,系統(tǒng)掃 描所有塊內(nèi)的所有數(shù)據(jù)扇區(qū)或特定扇區(qū)的第一部^*校驗±央偏區(qū)狀態(tài)以建立好 的或壞的扇區(qū)或塊的列表。在另一例子中,系統(tǒng)掃描一組用于邏輯地址信息的 扇區(qū)來建立邏輯到物理的地址映射。在另一的例子中,系統(tǒng)掃描扇區(qū)來搜索特 定的標(biāo)記。在另一例子中,系統(tǒng)在允許扇區(qū)被復(fù)帝倒另一個存儲器(即,畐體保護(hù))之前校驗安全碼。例如,CRC代碼可以與第一部分一起被包括以有助于 測試第一部分來確定*新己,據(jù)中是否具有差錯或噪聲。
在一示范性實施例中,本公開涉及一種讀取非易失性計算機存儲器的一部 分的方法,其包J舌讀取與非易失性計算機存儲器的數(shù)據(jù)扇區(qū)相關(guān)聯(lián)的冗余存儲 區(qū)的第一部分。冗余存儲區(qū)的第一部分包括與數(shù)據(jù)扇區(qū)相關(guān)聯(lián)的數(shù)據(jù)。冗余存 儲區(qū)的第一部分包括循環(huán)冗余校驗碼。
在另一示范性實施例中,本公開涉及一種讀取非易失性計^m存儲器的方 法。該方^^皿取非易失性計算機存儲器的第一數(shù)據(jù)扇區(qū)的第一冗余存儲區(qū) 的第一部分,以及讀取第二冗余存儲區(qū)的第一部分。該第一冗余存儲區(qū)包括與 第一數(shù)據(jù)扇區(qū)相關(guān)聯(lián)的數(shù)據(jù)。該第一冗余存儲區(qū)的第一部分包括與第一冗余存 儲區(qū)的第一部分相關(guān)聯(lián)的第一循環(huán)冗余校驗碼。該方法也包括讀取非易失性計 算機存儲器的第二數(shù)據(jù)扇區(qū)的第二冗余存儲區(qū)的第一部分。該第二冗余存儲區(qū) 包括與第二數(shù)據(jù)扇區(qū)相關(guān)聯(lián)的數(shù)據(jù)。該第二冗余存儲區(qū)的第一部分包括第二循 環(huán)冗余校驗碼。
在另一示范性實施例中,本公開涉及一種非易失性計算機存儲設(shè)備,其包 括具有第一用戶數(shù)據(jù)和第一冗余存儲器的第一存儲元件。該第一冗余存儲器包 括第一部分和第二部分。該第一冗余存儲器的第一部分包括第一循環(huán)冗余校驗 碼,且該第一冗余存儲器的第二部分包括第一糾錯碼。該非易失性計算機存儲 設(shè)備也包括具有第二用戶數(shù)據(jù)和第二冗余存儲器的第二存儲元件。該第二冗余 存儲器包括第一部分和第二部分。該第二冗余存儲器的第一部分包括第二循環(huán) 冗余校驗碼,且該第二冗余存儲器的第二部分包括第二糾錯碼。
在另一示范性實施例中,本公開涉及一種具有處理器、可存取處理器的動 態(tài)存儲器和可存取處理器的非易失性存儲器的系統(tǒng)。該非易失性存儲器包括具 有第一用戶數(shù)據(jù)和第一冗余存儲器的第一存儲元件。該第一冗余存儲器包括第 一部分和第二部分。該第一冗余存儲器的第一部分包括第一循環(huán)冗余校驗碼, 且該第一冗余存儲器的第二部分包括第一糾錯碼。該非易失性存儲器也包括具 有第二用戶數(shù)據(jù)和第二冗余存儲器的第二存儲元件。該第二冗余存儲器包括第 一部分和第二部分。該第二冗余存儲器的第一部分包括第二循環(huán)冗余校驗碼, 且該第二冗余存儲器的第二部分包括第二糾錯碼。
圖i示出了示范性的存儲系統(tǒng)ioo。該示范性的存儲系統(tǒng)100包括處理器102和非易失性存儲設(shè)備106 (例如閃存)。閃存的示范性實施例包括單級單元 閃存以及多級單元閃存。處理器102可以被連接到動態(tài)存儲器,例如隨機存取 存儲器(RAM) 104,其可以存儲閃存日則寸140、壞i央數(shù)據(jù)150、 CRC估計程 序160、以及可選地存儲ECC程序。閃存日劃寸140、壞塊數(shù)據(jù)150、和CRC 估計禾旨160可以被存儲在RAM 104中或可以合并到處理器102中。
存儲設(shè)備106被配置用于存儲數(shù)據(jù)塊,所述 ±央包括頁面或扇區(qū),例如 示出的扇區(qū)108、 110和112。數(shù)據(jù)的4^扇區(qū)(例如108、 110和112)都具 有用戶 區(qū)(120、 124和128)以及冗余存儲區(qū)(122、 126和130)。在一 個示范性實施例中,用戶數(shù)據(jù)區(qū)(120、 124和128)包括用戶數(shù)據(jù)并且冗余存 儲區(qū)(122、 126和130)包括系統(tǒng) 。當(dāng)處理器102正生成閃存日鄉(xiāng)140時, 處理器可以存取冗余存儲器的第一部分并且禾傭CRC估計禾號160來確定冗 余存儲器的第一部分內(nèi)部是否存在差錯。如果不存在差錯,處理器可以繼續(xù)估 計存儲器隨后的塊。如果存在差錯,處理器可以存取冗余存儲器的包括ECC 代碼的第二部分,皿行ECC校驗,或者在冗余存儲器或旨 扇區(qū)上執(zhí) 行糾錯。
在一個示范性實施例中,動態(tài)存儲器包括指令和邏輯來執(zhí)行CRC和ECC 操作,并且執(zhí)行用于日鄉(xiāng)以艦存儲塊進(jìn)行編目的日劃寸和編目操作。例如,動 態(tài)存儲器可以包 腿輯以及可由處理器操作附旨姊執(zhí)行CRC操作,比較ECC 代碼,或利用ECC碼執(zhí)行糾錯。在另一個例子中,系統(tǒng)可以存儲識別所使用 的塊的數(shù)據(jù),例如地址換算表。在另一個例子中,動態(tài)存儲器包括可由處理器 執(zhí)行的映射f,邏輯來產(chǎn)生表示非易失性存儲器的區(qū)域的日劃寸的數(shù)據(jù)。響應(yīng)于 讀取第一冗余存儲區(qū)的第一部分而不是讀取數(shù)據(jù)扇區(qū)來產(chǎn)生該映射。
圖2描述了一種示范性存儲設(shè)備,其包含非易失性存儲器的數(shù)據(jù)的兩種代 表性的扇區(qū)或頁面。數(shù)據(jù)的第一扇區(qū)包括第一用戶數(shù)據(jù)區(qū)120和冗余存儲區(qū) 122。冗余存儲區(qū)122被進(jìn)一步分,一部分202和第二部分204。第一部分202 包括第一 CRC代碼220和其他的冗余數(shù)據(jù)222。第二部分204包括第一糾錯碼 (ECC) 224。類似地,第二扇區(qū)包括第二用戶數(shù)據(jù)區(qū)124和第二冗余存儲區(qū) 126。第二冗余存儲區(qū)126被進(jìn)一步分成第一部分212和第二部分214。第^ 分212包括第二 CRC代碼230和其他的冗余數(shù)據(jù)232。第二部分214可以包括 糾錯碼(ECC) 206和其他的冗余數(shù)據(jù)234。通常,其他的冗余數(shù)據(jù)區(qū)(222,232,和234)可以包括系統(tǒng)數(shù)據(jù)和對編目i^:t^W用的數(shù)據(jù),例如重寫,射己、 邏輯地址數(shù)據(jù)、格式預(yù)定數(shù)據(jù)、安全碼、數(shù)據(jù)管理標(biāo)記、以及識別扇區(qū)中數(shù)據(jù) 類別的標(biāo)己。在一個示范性實施例中,重寫fei己包括指示塊狀態(tài)、頁面狀態(tài)、 和更新狀態(tài)的^i己。在一個特定的實施例中,CRC代碼220和230與重寫^i己 并且尤其與土央狀態(tài)、頁面狀態(tài)、以及更新狀態(tài)l斜己有關(guān)。例如,CRC代碼(220 和230)可以被用來校驗重寫fei己、諸如塊狀態(tài)、頁面狀態(tài)、以及更新狀態(tài)標(biāo) 記中的噪聲或差錯。
當(dāng)估計扇區(qū)差錯時,系統(tǒng)可以讀取冗余存儲器的第一部分,例如第一部分 202。系統(tǒng)可以估計與第一部分202有關(guān)的第一 CRC代碼220來確定是否存在 差錯。 一檢測至嗟錯,系統(tǒng)就可以存取第一冗余存儲器122的第二部分204來 獲得第一糾錯碼(ECC) 224并在包括第一用戶數(shù)據(jù)區(qū)120的齡數(shù)據(jù)i央上執(zhí) 行ECC操作,例如ECC校驗或糾錯。
為了生;^儲設(shè)備的映射,系統(tǒng)可以讀取非易失性存儲器的被選部分。在 一個示范性實施例中,存儲設(shè)備是閃存設(shè)備,例如多級單元閃存設(shè)備。圖3是 說明用于讀取非易失性存儲器的被選部分的示范性方法的流程圖。方法300包 括讀取非易失性計算機存儲器的頁面或扇區(qū)的冗余存儲區(qū)的第一部分,如步驟 302所示。第一部分可以包括與非易失性計算機存儲器內(nèi)部的數(shù)據(jù)扇區(qū)相關(guān)聯(lián)
的數(shù)據(jù),例如系統(tǒng)數(shù)據(jù)。冗余存儲區(qū)的第一部分可以包括循環(huán)冗余校驗碼 (CRC)代碼。在特定的實施例中,冗余區(qū)為16字節(jié)且冗余存儲區(qū)的第一部 分為7字節(jié)。在另一個示范性實施例中,用戶數(shù)據(jù)區(qū)為2048字節(jié),冗余區(qū)為64 字節(jié),以及冗余區(qū)的第一部分為28字節(jié)。冗余區(qū)也可以包括具有糾錯碼(ECC) 的第二部分。如步驟304所示,例如通過估計與第一部分的數(shù)據(jù)有關(guān)的循環(huán)冗 余校驗(CRC)代碼,系統(tǒng)確定是否檢測到存儲器差錯。
在另一示范性實施例中,系統(tǒng)可以響應(yīng)于檢測存儲器差錯來執(zhí)行糾錯例行 程序。例如,如步驟306所示,存儲設(shè)備可以讀取旨數(shù)據(jù)扇區(qū),如步驟308 所示,產(chǎn)生糾錯碼用于和所存儲的與冗余數(shù)據(jù)的部分有關(guān)的糾錯碼進(jìn)行比較或 者在,數(shù)據(jù)扇區(qū)上執(zhí)行ECC糾正。可選地,ECC操作可以在冗余存儲區(qū)上 被執(zhí)行。通常,用來讀取冗余區(qū)的第一部分和校驗CRC的時間比讀取和執(zhí)行 旨數(shù)據(jù)扇區(qū)的ECC操作的時間要少的多。
作為這,作的結(jié)果,系統(tǒng)可以產(chǎn)生存儲器扇區(qū)布局表,如步驟310所示。存儲器扇區(qū)布局表可以被存儲在微處理器中或隨機存取存儲器(RAM)設(shè)備
中??蛇x地,這些操作可以被用來校驗安全碼的值,識別具有特定標(biāo)簽(例如 識別在扇區(qū)中所存儲的數(shù)據(jù)類型的標(biāo)簽)的扇區(qū),或者產(chǎn)生壞的或好的數(shù)據(jù)扇 區(qū)或塊的映射。
在一個示范性實施例中,非易失性存儲器包括多個頁面。在一個例子中, 每個頁面都包括用戶數(shù)據(jù)區(qū)和冗余存儲區(qū)。例如,多個頁面中的第一個包括第 一用戶數(shù)據(jù)區(qū)和第一冗余存儲區(qū),并且多個頁面中的第二個包括第二用戶數(shù)據(jù) 區(qū)和第二冗余存儲區(qū)。在一個t寺定的實施例中,第一冗余存儲區(qū)和第二冗余存 儲區(qū)包括系統(tǒng)數(shù)據(jù),并且第一用戶數(shù)據(jù)區(qū)和第二用戶數(shù)據(jù)區(qū)包括用戶數(shù)據(jù)。
如圖4所示的方fe^括i賣取非易失性計算l幾存儲器的第一數(shù)據(jù)扇區(qū)的第一
冗余存儲區(qū)的第一部分,以及讀取非易失性計算機存儲器的第二數(shù)據(jù)扇區(qū)的第 二冗余存儲區(qū)的第一部分。第一冗余存儲區(qū)包括與非易失性存儲器內(nèi)部的第一 數(shù)據(jù)扇區(qū)相關(guān)聯(lián)的系統(tǒng)數(shù)據(jù)并且第二冗余存儲區(qū)包括與非易失性存儲器內(nèi)部的 第二數(shù)據(jù)扇區(qū)相關(guān)聯(lián)的系統(tǒng)數(shù)據(jù)。第一冗余存儲區(qū)的第一部分包括與第一冗余
存儲區(qū)的第一部分相關(guān)聯(lián)的第一循環(huán)冗余校驗(CRC)碼。第二冗余存儲區(qū)的 第一部分包括與第二冗余存儲區(qū)的第一部分相關(guān)聯(lián)的第二循環(huán)冗余校驗碼。在 一個示范性實施例中,第一冗余存儲區(qū)的第一部分以及第二冗余存儲區(qū)的第二 部分可以進(jìn)一步包S^輯地址數(shù)據(jù)、格式預(yù)定數(shù)據(jù)、和數(shù)據(jù)管理l射己。
系統(tǒng)可以讀取第一冗余存儲區(qū)的第一部分,如圖4的步驟402所示,并確 定存儲器是否有差錯,如步驟404所示。例如,系統(tǒng)可以估計第一 CRC代碼 來確定第一冗余存儲區(qū)的第一部分是否有差錯。另外,系統(tǒng)可以讀取第二冗余 存儲區(qū)的第一部分,如步驟406所示,確定在第二冗余存儲區(qū)中是否檢測到存 儲器差錯,如步驟408所示。
圖5描述了示出用于讀取非易失性存儲器的附加方法的流程圖。方法500 包括讀取非易失性計算機存儲器的扇區(qū)或頁面的冗余存儲區(qū)的第一部分,如步 驟502所示。該冗余存儲區(qū)與非易失性計^m存儲器內(nèi)部的扇區(qū)相關(guān)聯(lián)。冗余 存儲區(qū)的第一部分包括與冗余存儲區(qū)第一部分相關(guān)聯(lián)的第一糾錯碼(ECC), 且第二部分包括與數(shù)據(jù)扇區(qū)相關(guān)聯(lián)的第二糾錯碼(ECC)。在一個特定的實施 例中,冗余存儲區(qū)的第一部分包括重寫標(biāo)記,例如塊狀態(tài)、頁面狀態(tài)和更新狀 態(tài)標(biāo)記。該第一 ECC可被用來檢測差錯和噪聲以及糾正重寫*斜己中的差錯和
10噪聲。在另一個示范性實施例中,冗余存儲區(qū)的第一部分包括一個或多個重寫 標(biāo)記、管理標(biāo)記、邏輯地址信息、安全碼和識別扇區(qū)內(nèi)數(shù)據(jù)類別的標(biāo)簽。第一
ECC可IOT來檢測和糾正第一部分中的差錯。
該方法進(jìn)一步包擬,第一糾錯碼來執(zhí)行檢差或糾錯,如步驟504所示。 例如檢錯可以利用第一 ECC在冗余存儲區(qū)或其部分區(qū)域(例如在第一部分) 上執(zhí)行。當(dāng)檢測到差錯狀況,該第一 ECC可以被用來糾正冗余存儲區(qū),或者 在冗余存儲區(qū)的第二部分中所存儲的第二 ECC被用于在數(shù)據(jù)扇區(qū)上執(zhí)行檢錯 和/或糾錯,如步驟506所示。
上述主題應(yīng)被認(rèn)為是示范性的,而非限制性的,并且所附的權(quán)利要求旨在 覆蓋所有落入本發(fā)明的真實范圍的這種修改、改進(jìn)、及其他實施例。因此,在 化法律所允許的最大程度上,本發(fā)明的范圍應(yīng)當(dāng)由接下來的權(quán)利要求書及其等 同物所允許的最寬解釋來確定,并不受到前述詳細(xì)說明的約束或限制。
權(quán)利要求
1、讀取非易失性計算機存儲器的一部分的方法,該方法包括讀取非易失性計算機存儲器的數(shù)據(jù)扇區(qū)的冗余存儲區(qū)的第一部分,所述冗余存儲區(qū)的第一部分包括與數(shù)據(jù)扇區(qū)相關(guān)聯(lián)的數(shù)據(jù);其中,冗余存儲區(qū)的第一部分包括循環(huán)冗余校驗碼。
2、 權(quán)利要求1的方法,其中冗余存儲區(qū)包括冗余存儲區(qū)的第二部分中所存儲的糾錯碼。
3、 權(quán)利要求2的方法,進(jìn)一步包括估計循環(huán)冗余校驗碼,以關(guān)于冗余存 儲區(qū)的第一部分來確定是否檢測到存儲器差錯。
4、 權(quán)利要求3的方法,進(jìn)一步包括在檢測存儲器差錯之后讀取數(shù)據(jù)扇區(qū)并且響應(yīng)于檢測到存儲器差錯來執(zhí)行糾錯例衍聘。
5、 權(quán)利要求4的方法,進(jìn)一步包括在執(zhí)行糾錯例行,歸之前從冗余存儲區(qū)的第二部分讀取糾錯碼。
6、 權(quán)利要求3的方法,進(jìn)一步包括基于冗余存儲區(qū)的第一部分內(nèi)部所包含的所述數(shù)據(jù)來產(chǎn)生存儲器扇區(qū)布局表。
7、 權(quán)利要求3的方法,進(jìn)一步包括基于冗余存儲區(qū)的第一部分內(nèi)部所包含的戶;M數(shù)據(jù)來建立壞扇區(qū)日,。
8、 權(quán)利要求3的方法,進(jìn)一步包括基于冗余存儲區(qū)的第一部分內(nèi)部所包含的戶,類媚來識別在扇區(qū)中所存儲的數(shù)據(jù)類型。
9、 權(quán)利要求3的方法,進(jìn)一步包括基于冗余存儲區(qū)的第一部分內(nèi)部所包含的所述數(shù)據(jù)來校驗安全碼的值。
10、 權(quán)利要求1的方法,其中冗余存儲區(qū)的第一部分包括從由重寫*斜己、 邏輯地址數(shù)據(jù)、格式預(yù)定數(shù)據(jù)、安全碼、數(shù)據(jù)管理標(biāo)記以及識別扇區(qū)內(nèi)數(shù)據(jù)類 別的標(biāo)簽組成的組中所選擇的 。
11、 權(quán)利要求6的方法,其中存儲器扇區(qū)布局表被存儲在隨機存取存儲設(shè) 備中。
12、 權(quán)利要求1的方法,其中非易失性計算機存儲器為閃存設(shè)備。
13、 權(quán)利要求12的方法,其中閃存設(shè)備為多級單元閃存設(shè)備。
14、 權(quán)利要求1的方法,其中冗余區(qū)為16字節(jié),并且其中冗余存儲區(qū)的第一部分為7字節(jié)。
15、 權(quán)利要求1的方法,其中冗余區(qū)為64字節(jié),并且其中冗余存儲區(qū)的 第一部分為28字節(jié)。
16、 權(quán)利要求1的方法,其中用來讀取冗余區(qū)的第一部分和估計循環(huán)冗余 校驗的時間小于讀取數(shù)據(jù)扇區(qū)和禾傭糾錯5辣執(zhí)行糾錯碼操作的時間。
17、 讀取非易失性計穀幾存儲器的方法,該方 跑括 讀取非易失性計算機存儲器的第一數(shù)據(jù)扇區(qū)的第一冗余存儲區(qū)的第一部分,第一冗余存儲區(qū)包括與第一數(shù)據(jù)扇區(qū)相關(guān)聯(lián)的數(shù)據(jù),第一冗余存儲區(qū)的第 一部分包括與第一冗余存儲區(qū)的第一部分相關(guān)聯(lián)的第一循環(huán)冗余校驗碼;以及 讀取非易失性計算機存儲器的第二數(shù)據(jù)扇區(qū)的第二冗余存儲區(qū)的第一部 分,第二冗余存儲區(qū)包括與第二數(shù)據(jù)扇區(qū)相關(guān)聯(lián)的數(shù)據(jù),第二冗余存儲區(qū)的第 一部分包括第二循環(huán)冗余校驗碼。
18、 權(quán)利要求17的方法,其中第一冗余存儲區(qū)包括第一冗余存儲區(qū)的第二部分中所存儲的第一糾錯碼,并且其中第二冗余存儲區(qū)包括第二冗余存儲區(qū) 的第二部分中所存儲的第二糾錯碼。
19、 權(quán)利要求18的方法,進(jìn)一步包括估計第一循環(huán)冗余校驗碼來關(guān)于第一冗余存儲區(qū)的第一部分確定是否檢測到存儲器差錯,以及估計第二循環(huán)冗余 校驗碼來關(guān)于第二冗余存儲區(qū)的第一部分確定是否檢觀倒存儲器差錯。
20、 權(quán)利要求17的方法,其中與第一數(shù)據(jù)扇區(qū)相關(guān)聯(lián)的數(shù)據(jù)以及與第二 數(shù)據(jù)扇區(qū)相關(guān)聯(lián)的數(shù)據(jù)包括從由邏輯地址數(shù)據(jù)、格式預(yù)定數(shù)據(jù)、和數(shù)據(jù)管理標(biāo) 記組成的組中所選擇的數(shù)據(jù)。
21、 權(quán)利要求17的方法,其中非易失性存儲器包括多個塊,多個塊中的 第一個包括第一數(shù)據(jù)扇區(qū)并且多個塊中第二個包括第二數(shù)據(jù)扇區(qū)。
22、 權(quán)利要求17的方法,其中第一冗余存儲區(qū)和第二冗余區(qū)包括系統(tǒng)數(shù) 據(jù),并且其中第一數(shù)據(jù)扇區(qū)和第二麵扇區(qū)進(jìn)一步包括用戶數(shù)據(jù)。
23、 一種非易失性計算機存儲設(shè)備包括具有第一用戶數(shù)據(jù)和第一冗余存儲器的第一存儲元件,第一冗余存儲器包 括第一部分和第二部分,第一冗余存儲器的第一部分包括第一循環(huán)冗余校驗碼 且第一冗余存儲器的第二部分包括第一糾錯碼;具有第二用戶數(shù)據(jù)和第二冗余存儲器的第二存儲元件,第二冗余存儲器包括第一部分和第二部分,第二冗余存儲器的第一部分包括第二循環(huán)冗余校驗碼 且第二冗余存儲器的第二部分包括第二糾錯碼。
24、 權(quán)利要求23的非易失性計算機存儲設(shè)備,其中第一循環(huán)冗余碼與第一冗余存儲器的第一部分內(nèi)所存儲的數(shù)據(jù)的檢錯相關(guān)聯(lián)。
25、 權(quán)利要求24的非易失性計算機存儲設(shè)備,其中第二循環(huán)冗余碼與第 二冗余存儲器的第一部分內(nèi)所存儲的數(shù)據(jù)的檢錯相關(guān)聯(lián)。
26、 權(quán)利要求23的非易失性計^a存儲設(shè)備,其中第一糾錯碼與在第一 用戶數(shù)據(jù)內(nèi)以及第一冗余存儲器內(nèi)所存儲的數(shù)據(jù)的糾錯相關(guān)聯(lián)。
27、 一種系統(tǒng)包括;處理器;可存取處理器的動態(tài)存儲器;以及可存取處理器的非易失性存儲器,戶服非易失性存儲器包括 具有第一用戶數(shù)據(jù)和第一冗余存儲器的第一存儲元件,第一冗余存儲器包括第一部分和第二部分,第一冗余存儲器的第一部分包括第一循環(huán)冗余校驗碼且第一冗余存儲器的第二部分包括第一糾錯碼;以及具有第二用戶數(shù)據(jù)和第二冗余存儲器的第二存儲元件,第二冗余存儲器包括第一部分和第二部分,第二冗余存儲器的第一部分包括第二循環(huán)冗余校驗碼且第二冗余存儲器的第二部分包括第二糾錯碼。
28、 權(quán)利要求27的系統(tǒng),其中動態(tài)存儲器包括表示非易失性存儲器的區(qū) 土或的映射的數(shù)據(jù),非易失性存儲器的區(qū)±或包括第一存儲元件和第二存儲元件。
29、 權(quán)利要求27的系統(tǒng),其中動態(tài)存儲器包括可由處理器執(zhí)行來估計第一循環(huán)冗余校驗碼以檢測第一存儲元件內(nèi)部的差錯的程序邏輯,并且其中動態(tài) 存儲器進(jìn)一步包括可由處理器執(zhí)行來利用第一糾錯碼糾正第一存儲元件內(nèi)部的 差錯的程序邏輯。
30、 權(quán)利要求28的系統(tǒng),其中動態(tài)存儲器包括可由處理器執(zhí)行的日劃訴呈 序邏輯來產(chǎn)生表示非易失性存儲器的區(qū)域的映射的數(shù)據(jù),并且其中響應(yīng)于讀取 第一冗余存儲器的第一部分以及響應(yīng)于讀取第二冗余存儲器的第一部分、而不 讀取第一用戶數(shù)據(jù)以及不讀取第二用戶數(shù)據(jù)來產(chǎn)生日劃寸。
全文摘要
本公開涉及一種讀取非易失性計算機存儲器的一部分的方法,該方法包括讀取非易失性計算機存儲器的數(shù)據(jù)扇區(qū)的冗余存儲區(qū)的第一部分。冗余存儲區(qū)的第一部分包括與數(shù)據(jù)扇區(qū)相關(guān)聯(lián)的數(shù)據(jù)。冗余存儲區(qū)的第一部分包括循環(huán)冗余校驗碼。
文檔編號G06F11/10GK101427323SQ200580017567
公開日2009年5月6日 申請日期2005年9月20日 優(yōu)先權(quán)日2004年11月4日
發(fā)明者D·C·貝克, G·D·阿博特, J·澤維 申請人:西格馬特爾公司