專利名稱:訪問非易失性計算機存儲器的系統(tǒng)和方法
訪問非易失性計對幾存儲器的系統(tǒng)和方法技術(shù)領域本公開總體上涉及非易失性存儲系統(tǒng)。
技術(shù)背景消費電子裝置,比如蜂窩電話,數(shù)字音樂播放器,拇指驅(qū)動和其它手持設 備,執(zhí)行不斷復雜的算法,比如解碼壓縮的數(shù)字音頻和視頻數(shù)據(jù)的算法和用戶 界面算法。隨著這些算法復雜度的增加,存儲這些算法的存儲器用量也在增加。制造商正在越來越多地轉(zhuǎn)向非易失性存儲器,比如包括NAND快閃和NOR 快閃存^^置的快閃存儲裝置。典型地,非易失性存儲裝置將數(shù)據(jù)存儲在邏輯 單元中,比如存儲頁面和存儲i央。 一組存儲頁面形鵬儲塊。通常,數(shù)據(jù)被寫 入頁面并可被從該頁面內(nèi)的位置讀出。典型地,塊是可擦除的最小數(shù)據(jù)量。在 典型的閃存裝置中,每個頁面具有數(shù)據(jù)區(qū)和冗余存儲區(qū),有時叫作開銷區(qū) (overhead,) i數(shù)據(jù)區(qū)。頁面中的冗余存儲區(qū)存儲關于頁面的信息、關于 ,內(nèi)數(shù)據(jù)的信息、和與針對頁面的糾錯程序相關聯(lián)的數(shù)據(jù)。在非易失性存{,置,比如快閃存儲器上存取和存儲數(shù)據(jù)利用的是虛擬尋 址。非易失性存儲裝置易于因頻繁使用而壞損,這樣,固態(tài)存儲裝置內(nèi)的扇區(qū) 可能會失去存儲體錯數(shù)據(jù)的能力。為了M^固態(tài)存儲器壞損的問題,微控制 器通常平衡存儲器的扇區(qū)之間的〗頓。例如,當 被衝共給快閃存麟置時, 可以將它存儲在第一扇區(qū),并且M數(shù)據(jù)進行更新時,微控制器可以將該 存儲在第二扇區(qū)中,以減少第一扇區(qū)上的壞損。結(jié)果,數(shù)據(jù)塊的物理位置可能 改變。為便于進t說種平衡和尋址變化著的物理地址,微控制器通常倉犍一個 表,該表用于將由計算機系統(tǒng)使用的基于位置的地址轉(zhuǎn)換成在快閃存儲裝置內(nèi) 使用的虛擬地址。按照這種方式,系統(tǒng)可以使用同一基于位置的地址尋址一組 數(shù)據(jù),同時微控制器可以依據(jù)平衡協(xié)議將該信息存儲在快閃存儲器的變化著的 扇區(qū)中或者存儲在決閃存儲器內(nèi)的不同地址處。當快閃存,置內(nèi)的扇區(qū)壞掉 時,微控制器可以創(chuàng)建壞 扇區(qū)的日鄉(xiāng),以防止將數(shù)據(jù)存儲在這樣的壞數(shù)據(jù) 扇區(qū)內(nèi)。
壞扇區(qū)的編目和扇區(qū)映射的創(chuàng)建典型地通過讀取 扇區(qū)并且檢查系統(tǒng)數(shù)據(jù)中的特定代蹄Bl6t行。 一般來說,將與數(shù)據(jù)扇區(qū)的所有數(shù)據(jù)相關聯(lián)的ECC 包括在麵扇區(qū)中,以用來校正和檢査 中的噪聲。例如,ECC是在存儲數(shù) 據(jù)曰 據(jù)該 計算出來的,并且將該ECC與該i^一起存儲。當存取該 時,由該 計算出新的ECC,并將其與和該麵一起存儲的ECC比較。如果 新ECC和存儲的ECC之間有差別,則該數(shù)據(jù)可能被破壞且扇區(qū)可能壞了。在 許多例子中,可以^S ECC來在將 傳送給隨后的存儲系統(tǒng)或處理器之前對 該 進行校正。不過,讀取非易失性存儲器中的翻和對遭破壞的數(shù)據(jù)進行糾錯的過程是 耗時的過程。這樣,對改進的用于讀取非易失性存儲器的系統(tǒng)和方法存在需求。
圖1是包括非易失性存儲器的系統(tǒng)的示范性實施方式的框亂 圖2是可存儲在圖1所示的非易失性存儲器中的娜結(jié)構(gòu)的說明性實施方 式的框圖;圖3是可存儲在圖1所示的非易失性存儲器中的娜結(jié)構(gòu)的另一種特定實 施方式的框圖;圖4是組織圖1糊頃失性存儲器的方法的流程圖;圖5飄圖1的非易失性存儲器進行清除操作的方法的流程圖;和圖6魏圖1糊賜失性存儲器進行糾錯的方法的流程圖。
具體實施方式
公開了一種組帛非易失性存儲器的系統(tǒng)和方法。該系統(tǒng)包括非易失性存儲 器,該非易失性存儲器具有第一數(shù)據(jù)區(qū)域和與第一數(shù)據(jù)區(qū)域相關聯(lián)的第一冗余 存儲區(qū)。該第一冗余存儲區(qū)包括與第一數(shù)據(jù)扇區(qū)相關聯(lián)的第一部分。該冗余存 儲區(qū)的第一部^S括相對扇區(qū)索引(sector index)和塊編號。該冗余存儲區(qū)也 包括包含糾錯碼(ECC)數(shù)據(jù)的第二部分。該方 ^S皿取非易失性計算,儲器的數(shù)據(jù)扇區(qū)的冗余存儲區(qū)的第一部 分。該冗余存儲區(qū)包括所述第一部分和第二部分。該冗余存儲區(qū)的第一部分包 括與數(shù)據(jù)扇區(qū)相關聯(lián)的數(shù)據(jù)并包括相對扇區(qū)索弓l和塊編號。在特定的實施方式 中,讀取該第一部分而不讀取冗余存儲區(qū)的第二部分。參考圖l,示出了包括非易失性存儲器的系統(tǒng)。該系統(tǒng)包括處理器102和
非易失性存儲器104。該非易失性存儲器104可對處理器102做出響應。該非 易失性存儲器104包括系統(tǒng)聽區(qū)域106。該系統(tǒng),區(qū)域106包括系統(tǒng)繊 區(qū)103和系統(tǒng)冗余存儲區(qū)105。該非易失性存儲器104還包括第一用戶娜區(qū) 域107、第二用戶數(shù)據(jù)區(qū)域110、以及直到第N用戶數(shù)據(jù)區(qū)域112的附加用戶 數(shù)據(jù)區(qū)域。該第一數(shù)據(jù)區(qū)域107包括第一用戶數(shù)據(jù)區(qū)108和第一冗余存儲區(qū) 109。其它數(shù)據(jù)區(qū)域,比如第二用戶數(shù)據(jù)區(qū)域110,也包括用戶 區(qū)和冗余存 儲區(qū)。該非易失性存儲器104還包括更新麵區(qū)域114,該區(qū)域包括更新M區(qū) 113和^f 冗余存儲區(qū)114。該非易失性存儲器也包括替換麵區(qū)域116,該區(qū) 域包括替換 區(qū)130和替換冗余存儲區(qū)132。在操作期間,處理器102訪問非易失性存儲器104。處理器102可以存取 系統(tǒng) 106來執(zhí)行系統(tǒng)操作。處理器102可以禾,更新 區(qū)域114來存儲 稍后在更新操作期間被重新組織的數(shù)據(jù)。處理器102可以在替換操作期間使用 替換娜區(qū)域116來存儲用于娜區(qū)域比如第一娜區(qū)域107的替換 。 區(qū)域,比如第一數(shù)據(jù)區(qū)域107、系統(tǒng) 區(qū)103、 ^§ 區(qū)113、或 者替換數(shù)據(jù)區(qū)130,存儲與數(shù)據(jù)區(qū)嫩目關聯(lián)的數(shù)據(jù)。冗余存儲區(qū),比如第一冗 余存儲區(qū)109,可以存儲多種信息,包括相對扇區(qū)索引、塊編號或者糾錯碼 (ECC) 。存儲在第一冗余存儲區(qū)109中的相對扇區(qū)索弓l和塊編號可以用 于組織存儲在第一用戶數(shù)據(jù)區(qū)108中的數(shù)據(jù),并且可以用作用于非易失性存儲 器104的組織方案的一部分。第一冗余存儲區(qū)109的不同部分可被^5i也訪問。 因此,可以在不存取ECC數(shù)據(jù)的情況下存取存儲在第一冗余存儲區(qū)109中的相 對扇區(qū)索引和塊編號。M僅存取相對扇區(qū)索弓l和塊編號,在不訪問ECCi^ 或者第一用戶數(shù)據(jù)區(qū)108的情況下,可以更加快速iiMa織非易失性存儲器104。雖然上面討論的保護和組織方案是參考用戶數(shù)據(jù)區(qū)比如第一數(shù)據(jù)區(qū)域107 來描述的,但是也可以對所有數(shù)據(jù)區(qū)域使用同樣的方案,包括系統(tǒng)數(shù)據(jù)區(qū)域 106、更新數(shù)據(jù)區(qū)域114和替換數(shù)據(jù)區(qū)域116。這樣,系統(tǒng)冗余存儲區(qū)105、更 新冗余存儲區(qū)114和替換冗余存儲區(qū)132均包括多種信息,包括相對扇區(qū)索引、 i央編號或糾錯碼(ECC)數(shù)據(jù)。存儲在^冗余存儲區(qū)中的相對扇區(qū)索弓l和塊 編號可以用于組織與該區(qū)^+目關聯(lián)的 區(qū)域。參考圖2,示出了非易失性存儲器的,區(qū)域比如圖1中所示的第一M區(qū)域107的 結(jié)構(gòu)。娜區(qū)域107包括數(shù)據(jù)區(qū)108和冗余存儲區(qū)109。冗余 存儲區(qū)109包括第一部分220和第二部分230。在特定的實施方式中,冗余存 儲區(qū)109的第一部分220長度為大約7字節(jié)。在另一特定的實施方式中,第二 部分230長度為大約9字節(jié)。第一部分220包括相對扇區(qū)索弓1 202、±央編號 204、M^ (spare data) 206、塊狀^ 208和循環(huán)冗余校驗(CRC) 210。第二部分230 包括ECC娜212。在操作期間,第一部分220可以由處理器讀取而不讀取第二部分230???以存取相對扇區(qū)索引數(shù)據(jù)202和±央編號 204以組織與特定存儲塊相關聯(lián)的 數(shù)據(jù),而不用存取存儲在第二部分230中的ECC數(shù)據(jù)212。這允許存儲塊的更 鵬的組織。此外,可以使用塊狀 據(jù)208來確定與特定±央相關聯(lián)的數(shù)據(jù)是否是有效 數(shù)據(jù)。可以^M盾環(huán)冗余校驗數(shù)據(jù)210來確定是否存在與用戶數(shù)據(jù)區(qū)108相關 聯(lián)的fti可錯誤。在檢測到與用戶數(shù)據(jù)區(qū)108相關聯(lián)的錯誤的情況下,可以存取 存儲在第二部分230中的糾錯碼數(shù)據(jù)212以執(zhí)行糾錯程序。因為除非CRCi^ 210表明,狀態(tài),否則就不存取糾錯碼數(shù)據(jù)212,所以在不存在錯誤的時候, 可以避,時的ECC操作。參考圖3,示出了用在非易失性存儲器104中的數(shù)據(jù)結(jié)構(gòu)的替換實施方式。 該數(shù)據(jù)結(jié)構(gòu)包括第一數(shù)據(jù)區(qū)域304和第一冗余存儲區(qū)322。第一數(shù)據(jù)區(qū)域包括 多個子區(qū)域,其包括數(shù)據(jù)區(qū)306、數(shù)據(jù)區(qū)308、 區(qū)310和數(shù)據(jù)區(qū)312。冗余 存儲區(qū)322包括相對扇區(qū)索引314、 ±央編號316、塊狀態(tài)318、循環(huán)冗余校驗 (CRC) 320、糾錯碼數(shù)據(jù)324和備份數(shù)據(jù)326。在特定實施方式中,冗余 存儲區(qū)322具有大于或等于64字節(jié)的大小。在操作期間,可以將用戶 存儲在第一數(shù)據(jù)區(qū)域304中,而冗余存儲區(qū) 322存儲與第一數(shù)據(jù)區(qū)域304相關聯(lián)的系統(tǒng) 。冗余存儲區(qū)322的不同段 (section)可以被3te訪問。因此,可以i頓相對扇區(qū)索引314和塊編號316 來組織第一數(shù)據(jù)區(qū)域304中的數(shù)據(jù),而不用存取糾錯石^ 324。類似地,CRC 數(shù)據(jù)320可以用于第一數(shù)據(jù)區(qū)域304的錯誤校驗,而不用存取ECC數(shù)據(jù)324。 如果CRC數(shù)據(jù)320表明了第一娜區(qū)域304內(nèi)的錯誤,貝何以^頓糾錯碼麵 324來校正與第一M區(qū)域304相關聯(lián)的^。因為在表明錯誤狀態(tài)之前不存
取ECC數(shù)據(jù)324,所以第一娜區(qū)域304的更快的組織和觀校驗是可能的。參考圖4,說明了組織非易失性計#^幾存儲器的方法。在步驟402,讀取非 易失性計#+幾存儲器的數(shù)據(jù)扇區(qū)的冗余存儲區(qū)的第一部分。讀取該第一部分而 不讀取冗余存儲區(qū)的第二部分。冗余存儲區(qū)的第一部分包括與數(shù)據(jù)扇區(qū)相關聯(lián) 的 。在特定的實施方式中,冗余存儲區(qū)的第一部分具有小于8字節(jié)的大小。 在另一,定實施方式中,冗余存儲區(qū)的第一部分具有7字節(jié)的大小。冗余存 儲區(qū)的第一部M括相對扇區(qū)索弓l和塊編號。繼續(xù)進行到步驟404,對存儲在冗余存儲區(qū)的第一部分中的循環(huán)冗余校驗 (CRC)碼進行估計。在步驟406,根據(jù)相對扇區(qū)索引和±央編號對與冗余存儲 區(qū)相關聯(lián)的存儲區(qū),行組織。參考圖5,說明了執(zhí)行存儲,除操作的方法。在步驟502,接收存儲, 除信號。移動至步驟506,讀取非易失性計算機存儲器的多個冗余存儲區(qū)中的 每一個的第一部分,而不讀取第二部分。該多個冗余存儲區(qū)中的每一個的第一 部分包括與數(shù)據(jù)扇區(qū)相關聯(lián)的數(shù)據(jù)。該多個冗余存儲區(qū)中的每一個的第一部分 包括相對扇區(qū)索弓l和塊編號。第二部分包括ECC娜。在特定的實施方式中, 存儲,除信號是響應于系統(tǒng)加電來Bt的。移動到步驟508,使用相對扇區(qū)索弓l和i央編號對存儲在非易失性計穀幾存儲器中的 進行組織。在步驟510,提f^a備就緒指示,以表明非易失性計^m存儲器已準備好進行操作。在特定實施方式中,接收存儲器清除信號與提 微隹備就緒指示之間的時間小于大約30微秒。在另—待定的實施方式中,接收 存儲麟除信號與樹對隹備就緒指示之間的時間小于大約26微秒。參考圖6,說明了對非易失性計穀幾存儲器執(zhí)行糾錯的方法。在步驟602, 讀取該非易失性計穀幾存儲器的頁面的娜扇區(qū)的冗余存儲區(qū)的第一部分,但 不是全部。冗余存儲區(qū)的第一部她括相對扇區(qū)索引、i央編號和CRC麵。移 動至步驟604,對CRC數(shù)據(jù)進行估計。移動至判定步驟606,確定CRC數(shù)據(jù)是 否有效。如果CRC麵有效,則該方法移動至步驟608且^柳相對扇區(qū)索引和 塊編號5^且織非易失性計tm存儲器的頁面。如果CRC無效,則該方法移 動至步驟610并且讀取冗余存儲區(qū)的包括糾錯碼(ECC)數(shù)據(jù)的第二部分。繼 續(xù)進行到步驟612, {頓ECC 對頁面進行一個或多個糾錯操作。然后該方 法移動至步驟608。
應當將上面公開的主題看作是說明性的且非限定性的,并且所附權(quán)利要求 旨在覆蓋落在本發(fā)明范圍之內(nèi)的所有這些修改、增強和其它實施方式。因此, 在法律允許的最大程度上,本發(fā)明的范圍將由所附權(quán)禾腰求及其等效物的最寬 泛的可允許的解釋來確定,并且不應受到前面詳細描述的約束或限制。
權(quán)利要求
1、 一種非易失性計^m存儲器,包括.-第一數(shù)據(jù)區(qū)域;第一冗余存儲區(qū),該第一冗余存儲區(qū)與所述第一數(shù)據(jù)區(qū)域相關聯(lián),該第一冗余存儲區(qū)包括與第一數(shù)據(jù)扇區(qū)相關聯(lián)的第一部分,該第一部^S括相對扇區(qū)索弓l和塊編 號;和包括糾錯碼(ECC),的第二部分。
2、 如權(quán)利要求1戶腿糊賜失性計穀幾存儲器,其中戶腿第一部分還包括 循環(huán)冗余校驗(CRC) 。
3、 如權(quán)利要求1戶腿糊賜失性計穀幾存儲器,其中戶腿第一部他括±央
4、 如權(quán)利要求1戶腿糊賜失性計對幾存儲器,其中戶脫第一部分為大約 7字節(jié)并且第二部分為大約9字節(jié)。
5、 如權(quán)利要求1所述的非易失性計算機存儲器,還包括 第二數(shù)據(jù)區(qū)域;與戶誠第二繊區(qū)嫩目關聯(lián)的第二冗余存儲區(qū),該第二冗余存儲區(qū)包括-與第二數(shù)據(jù)扇區(qū)相關聯(lián)的第一部分,其包括相對扇區(qū)索弓l和塊編號;和 包括糾錯碼(ECC)數(shù)據(jù)的第二部分。
6、 一種讀取非易失性計^m存儲器的方法,該方^^括 讀取該非易失性計穀幾存儲器的麵扇區(qū)的冗余存儲區(qū)的第一部分,該冗余存儲區(qū)包括該第一部分和第二部分,該冗余存儲區(qū)的第一部分包括與所述數(shù) 據(jù)扇區(qū)相關聯(lián)的數(shù)據(jù);以及其中該冗余存儲區(qū)的第一部^括相對扇區(qū)索弓i和塊編號。
7、 如權(quán)利要求6所述的方法,其中讀取該冗余存儲區(qū)的第一部分,而不讀 取該冗余存儲區(qū)的第二部分。
8、 如權(quán)利要求7所述的方法,其中該冗余存儲區(qū)的第一部分具有小于8 字節(jié)的大小。
9、 如權(quán)利要求8所述的方法,其中該冗余存儲區(qū)的第一部分具有7字節(jié)的 大小。
10、 如權(quán)利要求6戶腐的方法,還包括基于該相對扇區(qū)索弓l和塊編號組織與該冗余存儲區(qū)相關聯(lián)的存儲區(qū)域。
11、 如權(quán)利要求6所述的方法,還包括估計存儲在該冗余存儲區(qū)的第一部分中的循環(huán)冗余校驗碼,以確定是否相 對于i貌余存儲區(qū)的第一部分檢測到存儲器l^。
12、 一種方法,包括 接收存儲,除信號;讀取非易失性計^m存儲器的多個冗余存儲區(qū)中的每一個的第一部分而不 讀取第二部分,該多個冗余存儲區(qū)中的每一個的第一部分包括與數(shù)據(jù)扇區(qū)相關 聯(lián)的數(shù)據(jù),其中該多個冗余存儲區(qū)中的每一個的第一部分包括相對扇區(qū)索弓l和 塊編號;組織存儲在非易失性計穀幾存儲器中的,以及^f,備就緒指示,以表明該非易失性計^M存儲器已準備好進行操作。
13、 如權(quán)禾腰求12戶服的方法,其中存儲麟除信號響應于系鄉(xiāng)n電而被縱。
14、 如權(quán)利要求12所述的方法,其中接收存儲t^青除信號與提^r隹備就緒 指示之間的時間小于大約30毫秒。
15、 如權(quán)禾頓求12戶脫的方法,其中接收存儲織除信號與提f離備就緒 指示之間的時間小于大約26毫秒。
16、 一種對非易失性計對幾存儲器進行糾錯的方法,該方t跑括-讀取該非易失性計算機存儲器的頁面的數(shù)據(jù)扇區(qū)的冗余存儲區(qū)的第一部分,但不是全部,該冗余存儲區(qū)的第一部分包括與 扇區(qū)相關聯(lián)的數(shù)據(jù),其 中該冗余存儲區(qū)的第一部^括相對扇區(qū)索弓I、塊編號和循環(huán)冗余校驗數(shù)據(jù); 估計該循環(huán)冗余校驗 ;以及響應于循環(huán)冗余校驗麵表明有效狀態(tài)的確定,艦相對扇區(qū)索弓鵬編 號來組織銜賜失性計穀幾存儲器的頁面。
17、 如權(quán)利要求16戶腿的方法,還包括 確定循環(huán)冗余校驗數(shù)據(jù)表明無效狀態(tài);讀取該冗余存儲區(qū)的第二部分,該冗余存儲區(qū)的第二部分包括糾錯碼 CECC)麵;根據(jù)該ECC 對頁面進行一個或多個糾錯操作;以及使用相對扇區(qū)索弓i和塊編號來組織該非易失性計^m存儲器的頁面。
18、 一種非易失性計^t幾存儲器,包括 包括多個子區(qū)域的第一數(shù)據(jù)區(qū)域;與第一數(shù)據(jù)區(qū)嫩目關聯(lián)的第一冗余存儲區(qū),織一冗余存儲區(qū)包括 與所述子區(qū)域中的第一個相關聯(lián)的第一部分,其中該冗余存儲區(qū)的第一部他括相對扇區(qū)索弓1和±央編號;和包括多個糾錯碼(ECC)區(qū)域的第二部分,該多個糾錯碼(ECC)區(qū)域與該多^ 區(qū)嫩目關聯(lián)。
19、 如權(quán)禾腰求18戶腿的非易失性計嶽幾存儲器,其中該冗余存儲區(qū)具有 大于或等于64字節(jié)的大小。
20、 如權(quán)利要求18戶脫糊一易失性計對幾存儲器,其中戶腿第一 區(qū)域 包括4個子區(qū)域。
21、 如權(quán)利要求18戶腿糊賜失性計嶽幾存儲器,其中戶腿第一部他括 循環(huán)冗余校驗娜。
22、 如權(quán)禾腰求18戶脫糊賜失性計輒存儲器,其中戶腿第一部分包括
全文摘要
公開了用于組織非易失性存儲器的系統(tǒng)和方法。該系統(tǒng)包括具有第一數(shù)據(jù)區(qū)域和與該第一數(shù)據(jù)區(qū)域相關聯(lián)的第一冗余存儲區(qū)的非易失性存儲器。第一冗余存儲區(qū)包括與第一數(shù)據(jù)扇區(qū)相關聯(lián)的第一部分。該冗余存儲區(qū)的第一部分包括相對扇區(qū)索引和塊編號。該冗余存儲區(qū)也包括第二部分,該第二部分包括糾錯碼(ECC)數(shù)據(jù)。
文檔編號G11C29/00GK101124639SQ200580020291
公開日2008年2月13日 申請日期2005年12月2日 優(yōu)先權(quán)日2005年9月30日
發(fā)明者J·澤維 申請人:西格馬特爾公司