專利名稱:用于使用依賴于生命周期的編碼方案在存儲設(shè)備上進(jìn)行操作的系統(tǒng)和方法
技術(shù)領(lǐng)域:
本發(fā)明涉及用于自適應(yīng)地操作存儲設(shè)備的系統(tǒng)和方法。
背景技術(shù):
這里提供的背景描述是為了一般性地給出本公開內(nèi)容的上下文的目的。就本背景技術(shù)部分中所描述的工作的程度而言的其發(fā)明人的工作以及在遞交時不以其他方式屬于現(xiàn)有技術(shù)的描述的方面,不被明確地或隱含地承認(rèn)為對于本公開內(nèi)容的現(xiàn)有技術(shù)。傳統(tǒng)閃存設(shè)備中的數(shù)據(jù)錯誤率依賴于存儲器的生命周期。具體而言,存儲器的數(shù)據(jù)完整性依賴于數(shù)據(jù)保存在存儲器中的持續(xù)時間以及數(shù)據(jù)所位于的塊、頁面或位置的編程-擦除(PE)周期的數(shù)量以及許多其他因素。傳統(tǒng)系統(tǒng)使用糾錯碼電路(ECC)和編碼/解碼引擎來檢測/糾正當(dāng)向/從閃存設(shè)備寫入/讀取數(shù)據(jù)時所遇到的數(shù)據(jù)錯誤。傳統(tǒng)系統(tǒng)也可以重映射塊或存儲位置以跨設(shè)備擴(kuò)展寫操作或者將塊標(biāo)記為壞的以避免到那些塊的未來寫操作。雖然這些系統(tǒng)成功地處理閃存數(shù)據(jù)存儲完整性,但是通過在較不復(fù)雜的編碼方案將足夠滿足要求時使用復(fù)雜編碼方案,這些方法時常浪費(fèi)資源來解碼并且編碼數(shù)據(jù),并且因此缺乏效率(即浪費(fèi)資源、消耗大量功率并且通過花費(fèi)更多時間來解碼而增加解碼延遲)。
發(fā)明內(nèi)容
提供了用于自適應(yīng)地操作電子存儲設(shè)備的系統(tǒng)和方法。確定存儲設(shè)備中的存儲數(shù)據(jù)的完整性等級。基于該存儲設(shè)備的所確定的生命周期選擇編碼方案。使用所選擇的編碼方案在該存儲設(shè)備上執(zhí)行操作。在一些實(shí)現(xiàn)中,該完整性等級指示與該存儲設(shè)備相關(guān)聯(lián)的編程-擦除周期的數(shù)量。在一些實(shí)現(xiàn)中,該完整性等級指示該存儲設(shè)備上的操作所導(dǎo)致的錯誤的數(shù)量。在一些實(shí)現(xiàn)中,該生命周期指示基于該存儲設(shè)備上的初始操作所導(dǎo)致的錯誤數(shù)量所確定的值。在一些實(shí)施方式中,通過識別具有第一復(fù)雜度的第一編碼方案和具有第二復(fù)雜度的第二編碼方案來選擇該編碼方案。做出關(guān)于該完整性等級是否超過閾值的確定。響應(yīng)于確定該完整性等級超過該閾值,選擇該第一編碼方案和該第二編碼方案作為所選擇的編碼方案。否則,選擇該第一編碼方案而不是該第二編碼方案作為所選擇的編碼方案。在一些實(shí)現(xiàn)中,該第二復(fù)雜度大于該第一復(fù)雜度。在一些實(shí)現(xiàn)中,該第一編碼方案是BCH編碼方案并且該第二編碼方案是LDPC編碼方案。在一些實(shí)施方式中,操作該存儲設(shè)備包括使用所選擇的編碼方案來編碼數(shù)據(jù)。將經(jīng)編碼數(shù)據(jù)寫入該存儲設(shè)備。在一些實(shí)施方式中,在該存儲設(shè)備上進(jìn)行操作包括從該存儲設(shè)備讀取數(shù)據(jù)。使用所選擇的編碼方案來解碼所讀取的數(shù)據(jù)。在一些實(shí)施方式中,將該經(jīng)編碼數(shù)據(jù)的存儲位置與和存儲位置相關(guān)聯(lián)的編碼方案交叉引用以選擇解碼方案。在一些實(shí)現(xiàn)中,該存儲設(shè)備是固態(tài)存儲設(shè)備。在一些實(shí)現(xiàn)中,用于編碼該數(shù)據(jù)的所選擇的編碼方案包括多個編碼方案的組合并且用于解碼該數(shù)據(jù)的所選擇的編碼方案包括該多個編碼方案的子集。在一些實(shí)現(xiàn)中,該多個編碼方案的子集包括系統(tǒng)編碼方案。
在結(jié)合附圖來考慮下文的詳細(xì)描述之后,本公開內(nèi)容的以上以及其他目的和優(yōu)點(diǎn)將變得顯而易見,其中在附圖中相似的附圖標(biāo)記始終指相似的部分,并且其中圖I示出了根據(jù)本公開內(nèi)容的一些實(shí)施方式的使用依賴于生命周期的編碼方案來在存儲設(shè)備上進(jìn)行操作的示例性系統(tǒng);·
圖2示出了根據(jù)本公開內(nèi)容的一些實(shí)施方式的示例性的依賴于生命周期的編碼電路;圖3示出了根據(jù)本公開內(nèi)容的一些實(shí)施方式的示例性編碼映射;以及圖4示出了根據(jù)本公開內(nèi)容的一些實(shí)施方式的用于使用依賴于生命周期的編碼方案來在存儲設(shè)備上進(jìn)行操作的過程的示例性流程圖。
具體實(shí)施例方式本公開內(nèi)容一般性地涉及使用依賴于生命周期的編碼方案來在存儲設(shè)備上進(jìn)行操作(讀/寫)。出于示例性目的,在這樣一種電子存儲系統(tǒng)的上下文中描述本公開內(nèi)容,其中在該電子存儲系統(tǒng)中所使用的存儲器是固態(tài)存儲器設(shè)備(例如,閃存設(shè)備)。但是,應(yīng)當(dāng)理解本公開內(nèi)容的教導(dǎo)同樣適用于任意其他電子存儲系統(tǒng),其中在該任意電子存儲系統(tǒng)中寫入到該存儲系統(tǒng)的數(shù)據(jù)基于該存儲系統(tǒng)(例如,隨機(jī)存取存儲器設(shè)備、可編程邏輯器件、非易失性存儲器、易失性存儲器46狀1^81^1^狀1、30勵3、1 ^1、賽道(Racetrack)存儲器、NRAM和千足蟲(Millipede)存儲設(shè)備)的生命周期而易于有讀取錯誤。圖I示出了根據(jù)本公開內(nèi)容的一些實(shí)施方式的使用依賴于生命周期的編碼方案來在存儲設(shè)備上進(jìn)行操作的示例性系統(tǒng)100。系統(tǒng)100包括控制電路110、編碼映射存儲電路120、存儲設(shè)備130、自適應(yīng)編碼電路140和利用電路150。存儲設(shè)備130可以包括電子存儲設(shè)備(例如,閃存設(shè)備、隨機(jī)存取存儲器、可編程邏輯器件、非易失性存儲器、易失性存儲器46狀1、08狀1^狀1、30顯3、1 ^1、賽道存儲器和/或NRAM和千足蟲存儲設(shè)備)。利用電路150電路可以包括各種模擬或數(shù)字處理電路。例如,利用可以是數(shù)字信號處理器或微處理器或中央處理器(CPU)。在一些實(shí)現(xiàn)中,利用電路150可以包括發(fā)射器/接收器電路。在一些實(shí)施方式中,利用電路150可以向系統(tǒng)100中的任意一個組件提供控制信號以執(zhí)行、改變或修改編碼/解碼、存儲和獲取存儲器操作。利用電路150可以向/從系統(tǒng)100中的任意一個組件提供或接收用戶或系統(tǒng)數(shù)據(jù),以向/從存儲設(shè)備130進(jìn)行存儲/讀取。
在一些實(shí)施方式中,控制電路110可以從利用電路150接收指令以在存儲設(shè)備130上進(jìn)行操作(例如,從/向存儲設(shè)備130讀/寫數(shù)據(jù))??刂齐娐?10可以指示存儲設(shè)備130向/從由利用電路150供應(yīng)的地址位置存儲或輸出數(shù)據(jù)。例如,控制電路110可以指示存儲設(shè)備130獲取數(shù)據(jù)塊或頁面。 在一些實(shí) 施方式中,控制電路110可以響應(yīng)于從利用電路150接收指示,來確定存儲設(shè)備130的生命周期,以將數(shù)據(jù)152存儲到存儲設(shè)備130。存儲設(shè)備130的計算的生命周期可以表示可以將數(shù)據(jù)存儲在存儲設(shè)備130的具體部分中的完整性。例如,低的生命周期值可以指示對于該存儲設(shè)備的高的完整性等級,而高的生命周期值可以指示低的完整性等級。在一些實(shí)現(xiàn)中,編碼方案復(fù)雜度隨著完整性等級的增加而降低。具體而言,當(dāng)完整性等級低時,控制電路110可以控制自適應(yīng)編碼電路140用更復(fù)雜的編碼器來編碼數(shù)據(jù)152。但是,當(dāng)完整性等級高時,控制電路110可以控制自適應(yīng)編碼電路140用更不復(fù)雜的編碼器來編碼數(shù)據(jù)152。類似地,控制電路110可以使用存儲在編碼映射存儲電路120中的信息來確定用于編碼存儲在存儲設(shè)備130中的具體部分中的數(shù)據(jù)的解碼復(fù)雜度,并且可以指示自適應(yīng)編碼電路140基于用于編碼該數(shù)據(jù)的復(fù)雜度來解碼所讀取的數(shù)據(jù)。在一些實(shí)現(xiàn)中,控制電路110可以計算存儲設(shè)備130的塊、頁面、存儲位置、或扇區(qū)等級上的生命周期。具體而言,對于存儲設(shè)備130的每個存儲位置,生命周期可以不同。因此,控制電路110可以在逐部分(例如,逐頁面)的基礎(chǔ)上修改用于編碼數(shù)據(jù)的編碼復(fù)雜度。例如,存儲設(shè)備130的對應(yīng)于第一數(shù)據(jù)頁面的一個存儲位置可以存儲用第一編碼方案來編碼的數(shù)據(jù),而存儲設(shè)備130的對應(yīng)于第二數(shù)據(jù)頁面的第二頁面可以存儲用不同的第二編碼方案來編碼的數(shù)據(jù)。在一些實(shí)現(xiàn)中,控制電路110可以通過測量在存儲設(shè)備130的要執(zhí)行所請求的操作(讀/寫)的給定存儲位置中已經(jīng)執(zhí)行了多少擦除(或PE周期),來計算存儲設(shè)備130的給定部分的生命周期。在一些實(shí)現(xiàn)中,控制電路110可以通過測量數(shù)據(jù)已經(jīng)被存儲在存儲設(shè)備130的要執(zhí)行所請求的操作(讀/寫)的給定存儲位置中的時間長度或者該給定存儲位置的年齡,來計算生命周期??刂齐娐?10可以通過從存儲設(shè)備130讀取用于維持存儲設(shè)備130的一個或多個存儲位置的生命周期的專用存儲位置,來確定生命周期。在一些實(shí)現(xiàn)中,控制電路110可以指示存儲設(shè)備130計算它自己的生命周期并且向控制電路110輸出回計算的生命周期。在一些實(shí)現(xiàn)中,控制電路110可以基于從在存儲設(shè)備130上的以前操作所得的初始判決,來確定生命周期并且控制編碼方案選擇。例如,LDPC解碼器可以用于基于從存儲設(shè)備130讀取的數(shù)據(jù)上的初始判決來計算生命周期。具體而言,LDPC解碼器可以從存儲設(shè)備130讀取數(shù)據(jù)并且在所讀取的數(shù)據(jù)上執(zhí)行解碼操作。控制電路110可以分析LDPC解碼器的輸出來確定是否出現(xiàn)或檢測到任何錯誤。響應(yīng)于檢測到錯誤的數(shù)量大于閾值,控制電路110可以分配作為存儲設(shè)備130的對應(yīng)存儲位置的生命周期值的數(shù),該數(shù)導(dǎo)致選擇更復(fù)雜的編碼方案。類似地,如果對于對應(yīng)存儲位置已經(jīng)分配了生命周期值,則控制電路110可以增加該生命周期的值。響應(yīng)于檢測到錯誤的數(shù)量小于閾值或?yàn)榱?,控制電?10可以保持該生命周期值不變或者分配作為存儲設(shè)備130的對應(yīng)存儲位置的生命周期值的數(shù),該數(shù)導(dǎo)致選擇更不復(fù)雜的編碼方案。控制電路110可以使用計算的生命周期來確定應(yīng)用哪種類型的編碼方案(例如,用于編碼數(shù)據(jù)的復(fù)雜度等級)來在存儲設(shè)備130上進(jìn)行操作(向/從其存儲/讀取)??刂齐娐?10可以基于擦除的數(shù)量、數(shù)據(jù)已經(jīng)被存儲的時間長度、存儲器設(shè)備的年齡和/或其他合適的標(biāo)準(zhǔn),來向生命周期分配值。例如,控制電路110向計算的生命周期分配與存儲位置的PE周期和/或年齡成 正比或反比的值。在一些實(shí)施方式中,控制電路110可以基于該生命周期的分配的值,確定用于存儲數(shù)據(jù)的編碼方案的等級(例如,用于編碼數(shù)據(jù)的復(fù)雜度等級)。在一些實(shí)現(xiàn)中,控制電路110可以將分配的生命周期值與一個或多個閾值進(jìn)行比較。用于與該生命周期進(jìn)行比較的閾值的數(shù)量可以對應(yīng)于在自適應(yīng)編碼電路140中的可用編碼方案的數(shù)量(例如,可用編碼器或編碼器組合的數(shù)量)。例如,當(dāng)自適應(yīng)編碼電路140包括兩個編碼器電路時,閾值的數(shù)量可以是兩個。具體而言,閾值的數(shù)量可以等于N-1,其中N是自適應(yīng)編碼電路140中的可用編碼器電路的數(shù)量。在一些實(shí)施方式中,當(dāng)使用兩個閾值時并且當(dāng)自適應(yīng)編碼電路140包括兩個編碼器210和220時,控制電路110可以將分配給生命周期的值與該兩個閾值中與較低的閾值相對應(yīng)的第一閾值進(jìn)行比較。當(dāng)分配給生命周期的值低于第一閾值時,控制電路110可生成選擇信號112,其中選擇信號112對應(yīng)于選擇和使用最不復(fù)雜的編碼方案(例如,使用第一編碼器電路210)。當(dāng)分配給生命周期的值高于第一閾值時,控制電路110可以將分配給生命周期的值與第二閾值進(jìn)行比較。當(dāng)分配給生命周期的值高于第一閾值但低于第二閾值時,控制電路110可生成選擇信號112,其中選擇信號112對應(yīng)于選擇和使用更高復(fù)雜度的編碼方案(例如,使用第二編碼器電路220)。當(dāng)分配給生命周期的值高于第一閾值并且高于第二閾值時,控制電路110可生成選擇信號112,其中選擇信號112對應(yīng)于選擇和使用最高復(fù)雜度的編碼方案(例如,使用第一編碼器電路210和第二編碼器220的級聯(lián))。在一些實(shí)施方式中,可以基于給定應(yīng)用的希望的功率消耗和延時和/或用于存儲數(shù)據(jù)所需要的可靠性和完整性的等級來設(shè)置閾值。具體而言,閾值可以指示需要什么編碼復(fù)雜度等級來確保高的數(shù)據(jù)完整性以便將數(shù)據(jù)存儲在具有給定分配生命周期(例如,特定數(shù)量的PE周期)的存儲器的部分中。具體而言,對于第一較低閾值所設(shè)置的值越低,則越有可能對計算的生命周期使用更復(fù)雜的編碼方案。例如,可以將用于存儲設(shè)備130的部分的第一閾值設(shè)置為10000個擦除周期或15%錯誤/頁面的生命周期。在這樣的情況中,只要存儲設(shè)備130的該部分的生命周期小于第一閾值,就可以用第一編碼方案來編碼將要存儲在存儲設(shè)備130的該部分中的數(shù)據(jù)??梢詫⒂糜诖鎯υO(shè)備130的部分的第二閾值設(shè)置為20000個擦除周期或40%錯誤/頁面的生命周期。在這樣的情況中,當(dāng)存儲設(shè)備130的該部分的生命周期大于第一閾值但小于第二閾值時,可以用第二編碼方案來編碼將要存儲在存儲設(shè)備130的該部分中的數(shù)據(jù)。在一些實(shí)現(xiàn)中,在控制電路110基于存儲設(shè)備130的該部分的生命周期確定用于編碼數(shù)據(jù)的編碼方案之后或者響應(yīng)于此,控制電路110可以將所確定的編碼方案的指示存儲在編碼映射存儲器120中。具體而言,編碼映射存儲器120可以包括用于將存儲設(shè)備130的段映射到用于編碼該段中的數(shù)據(jù)的編碼復(fù)雜度的類型或等級的表格。例如,控制電路110可以確定存儲設(shè)備130的塊0-100具有低的生命周期值并且因此僅需要第一編碼方案來編碼用于在塊0-100中存儲的數(shù)據(jù)。在這樣的情況中,控制電路110可以更新編碼映射存儲器120中的表格以指示已經(jīng)僅使用了第一編碼方案而非第二編碼方案來編碼了在存儲設(shè)備130的塊0-100中存儲的數(shù)據(jù)。類似地,控制電路110可以確定存儲設(shè)備130的存儲器的塊201-結(jié)尾具有高的生命周期值并且因此需要第一編碼方案和第二編碼方案的級聯(lián)編碼方案來編碼用于存儲在那些塊中的數(shù)據(jù)。在這樣的情況中,控制電路110可以更新編碼映射存儲器120中的該表格,以指示已使用第一編碼方案和第二編碼方案的級聯(lián)編碼方案來編碼了存儲在存儲設(shè)備130的存儲器的塊201-結(jié)尾中的數(shù)據(jù)。在一些實(shí)施方式中,控制電路110可以使用編碼映射存儲器120將從其請求讀取數(shù)據(jù)的具體的存儲位置與編碼方案交叉引用??刂齐娐?10可以響應(yīng)于控制電路110從利用電路150接收用于從存儲設(shè)備130的具體存儲位置讀取數(shù)據(jù)的指令,而執(zhí)行該交叉引用。例如,控制電路110可以從利用電路150接收用于從存儲設(shè)備130的塊120-130讀取數(shù)據(jù)的指令。作為響應(yīng),控制電路110可以使用編碼映射存儲器120來交叉引用請求的存儲器位置(例如,塊120-130),以識別所使用的對應(yīng)編碼方案。例如,控制電路110可以使用編碼映射存儲器120來交叉引用塊120-130,并且確定對于這些塊使用了組合第一編碼方案 和第二編碼方案的級聯(lián)編碼方案。因此,控制電路110可以指示自適應(yīng)編碼電路140使用組合第一編碼方案和第二編碼方案的級聯(lián)編碼方案來解碼從該存儲器部分(例如,存儲設(shè)備130的塊120-130)讀取的數(shù)據(jù)(例如,首先使用第二編碼方案進(jìn)行解碼并且隨后使用第一解碼方案解碼經(jīng)解碼的數(shù)據(jù))??梢韵蚶秒娐?50提供經(jīng)解碼的數(shù)據(jù)。圖2示出了根據(jù)本公開內(nèi)容的一些實(shí)施方式的示例性的依賴于生命周期的編碼電路140。依賴于生命周期的編碼電路140可以包括第一選擇電路250 (mux I)、第二選擇電路260(mux 2)、第三選擇電路270 (mux 3)、第四選擇電路280 (mux 4)、編碼器電路210和220以及解碼器電路230和240。雖然結(jié)合圖2僅僅示出并且描述了兩個編碼器電路210和220以及兩個解碼器電路230和240,但是依賴于生命周期的編碼電路140可以包括任意數(shù)量的附加或更少的解碼器電路和選擇電路。具體而言,在可以由一個或兩個編碼方案來編碼/解碼數(shù)據(jù)的兩級級聯(lián)編碼方案的上下文中描述本公開內(nèi)容。但是,應(yīng)該理解,在不脫離本公開內(nèi)容的范圍的前提下,本公開內(nèi)容適用于以由任意數(shù)量的合適的編碼方案來編碼/解碼數(shù)據(jù)的任意級級聯(lián)編碼方案。編碼器電路210和220中的每一個可以被配置為使用不同的編碼技術(shù)或方案來編碼數(shù)據(jù)。在一些實(shí)現(xiàn)中,第一編碼器電路210可以被配置為使用比第二編碼器電路220更不強(qiáng)大并且更不復(fù)雜的編碼技術(shù)來編碼數(shù)據(jù)。例如,第一編碼器電路210可以是BCH編碼器并且第二編碼器電路220可以是LDPC編碼器。在一些實(shí)現(xiàn)中,第一編碼器電路210可以是第一卷積碼編碼器并且第二編碼器電路220可以是第二卷積碼編碼器。在一些實(shí)現(xiàn)中,第一編碼器電路210可以是里德所羅門編碼器并且第二編碼器電路220可以是Turbo碼編碼器。解碼器電路230和240中的每一個可以被配置為使用不同的解碼技術(shù)或方案來解碼數(shù)據(jù)。在一些實(shí)現(xiàn)中,第一解碼器電路230可以被配置為使用比第二解碼器電路240更強(qiáng)大并且更復(fù)雜的解碼技術(shù)來解碼數(shù)據(jù)。例如,第一解碼器電路230可以是LDPC解碼器并且第二解碼器電路240可以是BCH解碼器。在一些實(shí)現(xiàn)中,第一解碼器電路230可以是第一卷積碼解碼器并且第二解碼器電路240可以是第二卷積碼解碼器。在一些實(shí)現(xiàn)中,第一解碼器電路230可以是Turbo碼解碼器并且第二解碼器電路240可以是里德所羅門解碼器。選擇電路250、260、270和280中的每一個可以包括復(fù)用器或解復(fù)用器電路。選擇電路250、260、270和280中的每一個可以包括多個輸入(例如,兩個輸入)、控制輸入以及輸出。選擇電路250、260、270和280中的每一個將由該控制輸入選擇的輸入之一耦合到該輸出。例如,第一選擇電路250可以包括兩個輸入,其中,該兩個輸入中的一個輸入耦合到編碼器電路210的輸出,并且將該兩個輸入中的另一個耦合為接收來自利用電路150的數(shù)據(jù)信號152。第一選擇電路250可以從控制電路110接收控制信號112b作為控制輸入。第一選擇電路250的輸出可以耦合到第二編碼器220的輸入。在一些實(shí)現(xiàn)中,第一選擇電路250接收與第四選擇電路280相同的控制信號112b。在一些實(shí)施方式中,第二選擇電路260可以包括兩個輸入,其中,該兩個輸入中的一個輸入耦合到第二編碼器電路220的輸出,并且將該兩個輸入中的另一個耦合為接收第一編碼器電路210的輸出。第二選擇電路260可以從控制電路110接收控制信號112a作為控制輸入。第二選擇電路260的輸出可以耦合到存儲設(shè)備130并且向存儲設(shè)備130提供經(jīng)編碼數(shù)據(jù)作為信號142。在一些實(shí)現(xiàn)中,第二選擇電路260接收與第三選擇電路270相同的控制信號112a。
在一些實(shí)施方式中,第三選擇電路270可以包括兩個輸入,其中,該兩個輸入中的一個輸入稱合到第一編碼器電路230的輸出,并且將該兩個輸入中的另一個稱合為接收從存儲設(shè)備130讀取的經(jīng)編碼數(shù)據(jù)信號142。第三選擇電路270可以從控制電路110接收控制信號112a作為控制輸入??梢詫⒌谌x擇電路270的輸出耦合到第二解碼器電路240的輸入。在一些實(shí)施方式中,第四選擇電路280可以包括兩個輸入,其中,該兩個輸入中的一個輸入耦合到第二解碼器電路240的輸出,并且將該兩個輸入中的另一個耦合為接收第一解碼器電路230的輸出。第四選擇電路280可以從控制電路110接收控制信號112b作為控制輸入??梢詫⒌谒倪x擇電路280的輸出耦合到利用電路150并且向利用電路150提供經(jīng)解碼數(shù)據(jù)作為信號152。在一些實(shí)施方式中,在存儲操作期間,控制電路110可以接收來自利用電路150的存儲或者寫入命令。作為響應(yīng),控制電路110可以確定存儲設(shè)備130中將要寫入由利用電路150在信號152上提供的數(shù)據(jù)的存儲位置的生命周期值?;谒_定的生命周期值,控制電路110可以在存儲在指定位置之前確定在由利用電路150提供的數(shù)據(jù)上執(zhí)行的編碼的等級。例如,控制電路110可以將分配的生命周期值與一個或多個閾值進(jìn)行比較。響應(yīng)于確定分配的生命周期值超過第一閾值,控制電路110可以確定需要第一編碼方案(例如,級聯(lián)編碼方案,諸如BCH與LDPC編碼的組合)來編碼該數(shù)據(jù)。類似地,響應(yīng)于確定分配的生命周期值未超過第一閾值,控制電路110可以確定需要第二編碼方案來編碼該數(shù)據(jù),其中該第二編碼方案(例如,BCH編碼)不如該第一編碼方案復(fù)雜??刂齐娐?10可以生成控制選擇電路250和260的控制信號112a和112b。例如,控制電路110可以基于存儲位置的生命周期值,確定僅需要第一編碼方案來可靠地向存儲設(shè)備130寫入數(shù)據(jù)。作為響應(yīng),控制電路110可以生成控制信號112a并且向第二選擇電路260提供控制信號112a,其中控制信號112a指示第二選擇電路260選擇第一編碼器210的輸出作為到存儲設(shè)備130的輸出信號142。在一些實(shí)現(xiàn)中,控制電路110可以基于存儲位置的生命周期,確定僅需要(由第二編碼器220而不是第一編碼器210實(shí)現(xiàn)的)第二編碼方案來可靠地向存儲設(shè)備130寫入數(shù)據(jù)。作為響應(yīng),控制電路110可以生成控制信號112a和112b并且向第一選擇電路250和第二選擇電路260提供控制信號112a。控制信號112a可以指示第一選擇電路250選擇來自利用電路150的輸入數(shù)據(jù)信號152作為到第二編碼器220的輸出。控制信號112b可以指示第二選擇電路260選擇第二編碼器220的輸出作為到存儲設(shè)備130的輸出信號142。在一些實(shí)施方式中,控制電路110可以基于存儲位置的生命周期,確定需要組合第一編碼方案和第二編碼方案的級聯(lián)編碼方案來可靠地向存儲設(shè)備130寫入數(shù)據(jù)。作為響應(yīng),控制電路110可以生成控制信號112a和112b并且向第一選擇電路250和第二選擇電路260提供控制信號112a和112b。控制信號112a可以指示第一選擇電路250選擇來自第一編碼器210的輸出作為到第二編碼器220的輸出??刂菩盘?12b可以指示第二選擇電路260選擇第二編碼器220的輸出作為到存儲設(shè)備130的輸出信號142。因此,由于在該情況中第二編碼器220從第一編碼器210接收經(jīng)編碼數(shù)據(jù),所以第二編碼器220編碼已編碼數(shù)據(jù)并且向第二選擇電路260提供該輸出以便輸出到存儲設(shè)備130?!?br>
在一些實(shí)施方式中,除了通過改變選擇電路250、260、270和280的選擇輸入來選擇通過編碼器和解碼器進(jìn)行的路徑數(shù)據(jù)之外或取而代之,控制電路110可以使能/禁用(加電或斷電)合適的編碼器/解碼器以用具體的編碼方案來編碼/解碼數(shù)據(jù)。例如,可以將來自利用電路150的數(shù)據(jù)直接或間接耦合到多個編碼器電路,其中每個編碼器電路實(shí)現(xiàn)不同的編碼方案??梢詫⒚總€編碼器電路耦合到向存儲設(shè)備130輸出數(shù)據(jù)的單個選擇電路。控制電路110可以基于分配的生命周期值,確定需要用由第一編碼器電路實(shí)現(xiàn)的第一編碼方案來編碼數(shù)據(jù)。因此,控制電路110可以發(fā)射控制信號112,其中控制信號112指示第一編碼器電路變得被使能(例如,加電或者退出休眠模式)并且指示其余的編碼器保持處于他們的初始禁用(斷電或休眠)狀態(tài)??刂齐娐?10可以控制選擇電路選擇并且輸出由第一編碼器輸出的數(shù)據(jù)。在第一編碼器完成給定數(shù)據(jù)集合的編碼之后,第一編碼器可以返回到它的初始禁用(斷電或休眠)狀態(tài)。在一些實(shí)施方式中,可以將來自存儲設(shè)備130的數(shù)據(jù)直接或間接耦合到多個解碼器電路,其中每個解碼器電路實(shí)現(xiàn)不同的解碼方案。可以將每個解碼器電路耦合到向利用電路150輸出經(jīng)解碼數(shù)據(jù)的單個選擇電路??刂齐娐?10可以基于分配的生命周期值(或編碼映射存儲器120中存儲的值或指示),確定需要用由第一解碼器電路實(shí)現(xiàn)的第一解碼方案來解碼數(shù)據(jù)。因此,控制電路110可以發(fā)射控制信號112,其中控制信號112指示第一解碼器電路變得被使能(例如,加電或者退出休眠模式)并且指示其余的解碼器保持處于它們的初始禁用(斷電或休眠)狀態(tài)??刂齐娐?10可以控制選擇電路選擇并且輸出由第一解碼器輸出的經(jīng)解碼數(shù)據(jù)。在第一解碼器完成給定數(shù)據(jù)集合的解碼之后,第一解碼器可以返回到它的初始禁用(斷電或休眠)狀態(tài)。在一些實(shí)施方式中,控制電路110可以將用于控制選擇電路250和260以用所選擇的編碼方案來編碼存儲設(shè)備130的具體存儲位置的數(shù)據(jù)的控制信號112a和112b的一個或多個值存儲在編碼映射存儲器120中。在這樣的情況中,在讀取操作期間,控制電路110可以用將被請求執(zhí)行讀取操作的存儲位置與存儲在編碼映射存儲器120中的控制信號值交叉引用。通過獲取編碼映射存儲器120中存儲的用于該存儲位置的控制信號值,控制電路110可以向自適應(yīng)編碼電路140提供回相同的控制信號,以控制第三選擇電路270和第四280并且按照與用于編碼所讀取的數(shù)據(jù)的方式相對應(yīng)的(相同的或相反的)方式解碼所讀取的數(shù)據(jù)。在一些實(shí)現(xiàn)中,控制電路110可以從編碼映射存儲器120獲取控制信號值,并且可以重新計算與該具體存儲位置相關(guān)聯(lián)的生命周期,以確定需要什么類型的編碼方案來解碼所讀取的數(shù)據(jù)??刂齐娐?10可以生成對應(yīng)的控制信號112a和112b以便提供給選擇電路270和280。在一些實(shí)現(xiàn)中,控制電路110可以確定所讀取的數(shù)據(jù)是使用第一編碼器210和第二編碼器220來編碼的。在這樣的情況中,第一編碼器210和第二編碼器220中的一個或兩個可以使用系統(tǒng)編碼方案??刂齐娐?10可以確定用于對應(yīng)的存儲位置的生命周期,并且基于生命周期來指示選擇電路270和280僅導(dǎo)致使用第一解碼器電路230或第二解碼器電路240來解碼所讀取的數(shù)據(jù)。具體而言,即使使用兩個編碼器或兩個編碼方案來編碼存儲在具體存儲位置中的數(shù)據(jù),但是控制電路110可以僅使用一個解碼器或一個編碼方案來解碼該數(shù)據(jù)以便旁路另一個解碼器??梢灾甘驹撆月返慕獯a器直接向利用電路或其他解碼器輸出用戶比特。具體而言,當(dāng)僅使用一個解碼器來解碼使用兩個編碼器來編碼的所讀取的數(shù)據(jù)時,可以從所讀取的數(shù)據(jù)剝除與第二編碼方案相對應(yīng)的奇偶校驗(yàn)位并且將其提供給·將要與第一編碼方案組合的第一解碼器??刂齐娐?10可以生成對應(yīng)的控制信號112a和112b以提供給選擇電路270和280以執(zhí)行此方式的解碼。在一些實(shí)施方式中,控制電路110可以代替計算的生命周期而基于解碼錯誤歷史來生成控制信號112a和112b或者控制使用什么解碼器來解碼所讀取的數(shù)據(jù)。例如,控制電路110可以僅使用第一解碼器電路或第一編碼方案,開始在存儲設(shè)備130上進(jìn)行操作(例如,解碼從存儲設(shè)備130讀取的數(shù)據(jù))。控制電路110可以監(jiān)視由解碼器電路或者使用該編碼方案所糾正的錯誤的數(shù)量。響應(yīng)于確定錯誤的數(shù)量大于閾值,控制電路110可以前進(jìn)以使用第二解碼器電路(例如,比第一解碼器電路更復(fù)雜的解碼器電路)或第二編碼方案(例如,比第一編碼方案更復(fù)雜的編碼方案),來在存儲設(shè)備130上進(jìn)行解碼或操作??刂齐娐?10可以生成對應(yīng)的控制信號112a和112b以便提供給選擇電路270和280以執(zhí)行此方式的解碼。在一些實(shí)施方式中,在讀取操作期間,控制電路110可以從利用電路150接收讀取命令。作為響應(yīng),控制電路110可以獲取與存儲設(shè)備130的從其將要讀取由利用電路150在信號152上提供的數(shù)據(jù)的存儲位置相關(guān)聯(lián)的存儲在編碼映射存儲器120中的控制信號值。在一些實(shí)現(xiàn)中,控制電路110可以確定該存儲位置的生命周期值并且計算合適的編碼方案以生成合適的控制信號112a和112b。在一些實(shí)現(xiàn)中,控制電路110可以基于存儲在編碼映射存儲器120中的信息確定用于編碼該指定存儲位置中的數(shù)據(jù)的編碼方案,并且生成合適的控制信號112a和112b來解碼從該位置讀取的數(shù)據(jù)??刂齐娐?10可以生成控制選擇電路270和280的控制信號112a和112b。例如,控制電路110可以確定僅需要第一解碼方案(例如,由第二解碼器240實(shí)現(xiàn)的BCH解碼方案)來解碼從存儲設(shè)備130讀取的數(shù)據(jù)。作為響應(yīng),控制電路110可以生成控制信號112a和112b并且向第三選擇電路270和第四280提供控制信號112a和112b。作為響應(yīng),第三選擇電路270可以選擇所讀取的數(shù)據(jù)信號142作為到第二解碼器240的輸入,并且第四選擇電路280可以選擇第二解碼器240的輸出作為提供給利用電路150的信號152。在一些實(shí)現(xiàn)中,控制電路110可以確定僅需要(由第一解碼器230而非第二解碼器240實(shí)現(xiàn)的)第二解碼方案來解碼從存儲設(shè)備130讀取的數(shù)據(jù)。作為響應(yīng),控制電路110可以生成控制信號112a并且向第四選擇電路280提供控制信號112b??刂菩盘?12b可以指示第四選擇電路280選擇來自第一解碼器230的輸出作為到利用電路150的輸出。在一些實(shí)現(xiàn)中,控制電路110可以基于存儲位置的生命周期值,確定需要組合第一解碼方案和第二解碼方案的級聯(lián)解碼方案來從存儲設(shè)備130讀取數(shù)據(jù)。作為響應(yīng),控制電路110可以生成控制信號112a和112b,并且向第三選擇電路270和第四選擇電路280提供控制信號112a和112b??刂菩盘?12a可以指示第三選擇電路270選擇來自第一解碼器230的輸出作為到第二解碼器240的輸入。控制信號112b可以指示第四選擇電路280選擇第二解碼器240的輸出作為到利用電路150的輸出信號152。因此,由于在這樣的情況中第二解碼器240從第一解碼器230接收經(jīng)解碼數(shù)據(jù),所以第二解碼器240 (例如,使用不同的解碼方案)解碼已解碼數(shù)據(jù)并且將該輸出提供給第四選擇電路280以便輸出到利用電路150。 在一些實(shí)施方式中,第二編碼器220可以實(shí)現(xiàn)多個可選擇的編碼方案。在這樣的情況中,控制電路110可以向第二編碼器220提供控制信號112中的附加控制信號,該附加控制信號指示第二編碼器220使用可選擇的編碼方案中的哪個編碼方案來編碼從利用電路150接收的數(shù)據(jù)信號152。在一些實(shí)施方式中,第一解碼器230可以實(shí)現(xiàn)多個可選擇的解碼方案。在這樣的情況中,控制電路110可以向第一解碼器230提供控制信號112中的附加控制信號,該附加控制信號指示第一解碼器230使用可選擇的解碼方案中的哪個解碼方案來解碼從存儲設(shè)備130讀取的經(jīng)編碼數(shù)據(jù)信號142。圖3示出了根據(jù)本公開內(nèi)容的一些實(shí)施方式的示例性編碼映射300。編碼映射300可以包括存儲位置部分310和所用編碼方案部分320。存儲位置部分310可以識別存儲設(shè)備130的與具體地址相對應(yīng)的塊、頁面、比特或其他段。所用編碼方案部分320可以包括識別對應(yīng)的存儲位置的生命周期的信息。例如,所用編碼方案部分320可以包括與存儲位置相關(guān)聯(lián)的編程/擦除周期的數(shù)量、存儲位置的年齡、用于編碼該存儲位置中的數(shù)據(jù)的編碼方案,用于控制信號112a和112b的控制信號值或任意其他合適的信息。例如,第一存儲位置部分330可以識別或?qū)?yīng)于存儲設(shè)備130的塊0_100。與該部分相關(guān)聯(lián)的生命周期可以將用于編碼那些塊中的數(shù)據(jù)的編碼方案指示為僅使用第一編碼方案而不使用第二編碼方案。類似地,第二存儲位置部分340可以識別或?qū)?yīng)于存儲設(shè)備130的塊101-110。與該部分相關(guān)聯(lián)的生命周期可以將用于編碼那些塊中的數(shù)據(jù)的編碼方案指示為僅使用第二編碼方案而不使用第一編碼方案。類似地,第三存儲位置部分350可以識別或?qū)?yīng)于存儲設(shè)備130的塊201到最后存儲位置。與該部分相關(guān)聯(lián)的生命周期可以將用于編碼那些塊中的數(shù)據(jù)的編碼方案指示為使用組合第一編碼方案和第二編碼方案的級聯(lián)編碼方案??刂齐娐?10可以將存儲在編碼映射300中的數(shù)據(jù)或信息更新為存儲設(shè)備300年齡并且具有與各種存儲位置相關(guān)聯(lián)的更多編程/擦除周期。圖4示出了根據(jù)本公開內(nèi)容的一些實(shí)施方式的用于使用依賴于生命周期的編碼方案來操作存儲設(shè)備的過程的示例性流程圖400。在410處,確定存儲設(shè)備中的存儲數(shù)據(jù)的完整性等級。例如,控制電路110可以基于與存儲設(shè)備130的存儲位置相關(guān)聯(lián)的P/E(編程/擦除)周期的數(shù)量,來計算存儲設(shè)備130的生命周期。在420處,基于該存儲設(shè)備的所確定的完整性等級選擇編碼方案。例如,控制電路110可以向自適應(yīng)編碼電路140提供表示生命周期的信號,以導(dǎo)致自適應(yīng)編碼電路140選擇具體的編碼/解碼方案(例如,使用一個或多個編碼器/解碼器)來向存儲設(shè)備130操作(讀/寫)數(shù)據(jù)。控制電路110可以通過例如將生命周期與一個或多個閾值比較來生成表示生命周期的信號。在430處,使用所選擇的編碼方案在存儲設(shè)備上執(zhí)行操作。例如,自適應(yīng)編碼電路140可以基于從控制電路110接收的表示生命周期的信號,使用所選擇的編碼方案(例如,僅第一編碼器,僅第二編碼器或者第一編碼器和第二編碼器兩者的級聯(lián))來編碼從利用電路150接收的數(shù)據(jù)以便存儲在存儲設(shè)備130中。類似地,自適應(yīng)編碼電路140可以基于從控制電路110接收的表示生命周期的信號,使用所選擇的編碼方案(例如,僅第一解碼器,僅第二解碼器或者第一解碼器和第二解碼器兩者的級聯(lián))來解碼從存儲設(shè)備130接收的數(shù)據(jù)以便提供給利用電路150。前文描述了用于基于電子存儲設(shè)備的生命周期來在該電子存儲設(shè)備上自適應(yīng)地進(jìn)行操作的系統(tǒng)和方法。本領(lǐng)域技術(shù)人員將明白,可以通過除了僅出于說明而不是限制的目的而提供的所描述的實(shí)施方式之外的其他實(shí)施方式來實(shí)踐本公開內(nèi)容的所描述的實(shí)施 方式。此外,本公開內(nèi)容不限于具體的實(shí)現(xiàn)。例如,可以按照不同的次序(或同時地)執(zhí)行上述方法的一個或多個步驟并且仍然實(shí)現(xiàn)希望的結(jié)果。另外,可以將本公開內(nèi)容實(shí)現(xiàn)在硬件中,諸如專用集成電路(ASIC)或現(xiàn)場可編程門陣列(FPGA)中,其中ASIC和FPGA兩者都可以包括附加的通信電路(例如,射頻電路)。備選地,也可以將本公開內(nèi)容實(shí)現(xiàn)在運(yùn)行在任意合適的硬件處理器上的軟件中。因此,在不脫離如所附權(quán)利要求中所述的本公開內(nèi)容的范圍的前提下,本領(lǐng)域技術(shù)人員在適當(dāng)?shù)那闆r下可以應(yīng)用等效物并且做出替換。
權(quán)利要求
1.一種用于自適應(yīng)地操作存儲設(shè)備的方法,所述方法包括 確定所述存儲設(shè)備中的存儲數(shù)據(jù)的完整性等級; 基于所述存儲設(shè)備的所確定的完整性等級選擇編碼方案;以及 使用所選擇的編碼方案在所述存儲設(shè)備上進(jìn)行操作。
2.如權(quán)利要求I所述的方法,其中,所述完整性等級指示與所述存儲設(shè)備相關(guān)聯(lián)的編程-擦除周期的數(shù)量或者所述電子存儲設(shè)備上的操作所導(dǎo)致的錯誤的數(shù)量。
3.如權(quán)利要求I所述的方法,其中,所述完整性等級指示基于所述存儲設(shè)備上的初始操作所導(dǎo)致的錯誤的數(shù)量所確定的值。
4.如權(quán)利要求I所述的方法,其中,選擇編碼方案包括 識別具有第一復(fù)雜度的第一編碼方案和具有第二復(fù)雜度的第二編碼方案; 確定所述完整性等級是否超過閾值; 響應(yīng)于確定所述完整性等級超過所述閾值,選擇所述第一編碼方案和所述第二編碼方案作為所選擇的編碼方案;以及 否則,選擇所述第一編碼方案而不是所述第二編碼方案作為所述所選擇的編碼方案。
5.如權(quán)利要求4所述的方法,其中,所述第二復(fù)雜度大于所述第一復(fù)雜度。
6.如權(quán)利要求4所述的方法,其中,所述第一編碼方案是BCH編碼方案并且所述第二編碼方案是低密度奇偶校驗(yàn)碼(LDPC)編碼方案。
7.如權(quán)利要求I所述的方法,其中,操作所述存儲設(shè)備包括 使用所選擇的編碼方案來編碼數(shù)據(jù);以及 將經(jīng)編碼數(shù)據(jù)寫入所述存儲設(shè)備。
8.如權(quán)利要求I所述的方法,其中,操作所述存儲設(shè)備包括 從所述存儲設(shè)備讀取數(shù)據(jù);以及 使用所選擇的編碼方案來解碼所讀取的數(shù)據(jù)。
9.如權(quán)利要求8所述的方法,還包括將經(jīng)編碼數(shù)據(jù)的存儲位置與和所述存儲位置相關(guān)聯(lián)的編碼方案交叉引用以選擇所述編碼方案。
10.如權(quán)利要求I所述的方法,其中,用于編碼所述數(shù)據(jù)的所選擇的編碼方案包括多個編碼方案的組合并且用于解碼所述數(shù)據(jù)的所選擇的編碼方案包括所述多個編碼方案的子集。
11.一種用于自適應(yīng)地操作存儲設(shè)備的系統(tǒng),所述系統(tǒng)包括 存儲設(shè)備;以及 控制電路,所述控制電路被配置為 確定所述存儲設(shè)備中的存儲數(shù)據(jù)的完整性等級; 基于所述存儲設(shè)備的所確定的完整性等級選擇編碼方案;以及 使用所選擇的編碼方案在所述存儲設(shè)備上進(jìn)行操作。
12.如權(quán)利要求11所述的系統(tǒng),其中,所述完整性等級指示與所述存儲設(shè)備相關(guān)聯(lián)的編程-擦除周期的數(shù)量或者所述存儲設(shè)備上的操作所導(dǎo)致的錯誤的數(shù)量。
13.如權(quán)利要求11所述的系統(tǒng),其中,所述完整性等級指示基于所述存儲設(shè)備上的初始操作所導(dǎo)致的錯誤的數(shù)量所確定的值。
14.如權(quán)利要求11所述的系統(tǒng),其中,所述控制電路進(jìn)一步被配置為識別具有第一復(fù)雜度的第一編碼方案和具有第二復(fù)雜度的第二編碼方案; 確定所述完整性等級是否超過閾值; 響應(yīng)于確定所述完整性等級超過所述閾值,選擇所述第一編碼方案和所述第二編碼方案作為所選擇的編碼方案;以及 否則,選擇所述第一編碼方案而不是所述第二編碼方案作為所選擇的所述編碼方案。
15.如權(quán)利要求14所述的系統(tǒng),其中,所述第二復(fù)雜度大于所述第一復(fù)雜度。
16.如權(quán)利要求14所述的系統(tǒng),其中,所述第一編碼方案是BCH編碼方案并且所述第二編碼方案是低密度奇偶校驗(yàn)碼(LDPC)編碼方案。
17.如權(quán)利要求11所述的系統(tǒng),其中,所述控制電路進(jìn)一步被配置為 使用所選擇的編碼方案來編碼數(shù)據(jù);以及 將經(jīng)編碼數(shù)據(jù)寫入所述存儲設(shè)備。
18.如權(quán)利要求11所述的系統(tǒng),其中,所述控制電路進(jìn)一步被配置為 從所述存儲設(shè)備讀取數(shù)據(jù);以及 使用所選擇的編碼方案來解碼所讀取的數(shù)據(jù)。
19.如權(quán)利要求18所述的系統(tǒng),其中所述控制電路進(jìn)一步被配置為將經(jīng)編碼數(shù)據(jù)的存儲位置與和所述存儲位置相關(guān)聯(lián)的編碼方案交叉引用以選擇所述編碼方案。
20.如權(quán)利要求11所述的系統(tǒng),其中,用于編碼所述數(shù)據(jù)的所選擇的編碼方案包括多個編碼方案的組合并且用于解碼所述數(shù)據(jù)的所選擇的編碼方案包括所述多個編碼方案的子集。
全文摘要
提供了用于使用依賴于生命周期的編碼方案在存儲設(shè)備上進(jìn)行操作的系統(tǒng)和方法。提供了用于自適應(yīng)地操作存儲設(shè)備的系統(tǒng)和方法。確定存儲設(shè)備中的存儲數(shù)據(jù)的完整性等級?;谠摯鎯υO(shè)備的所確定的完整性等級選擇編碼方案。使用所選擇的編碼方案在該存儲設(shè)備上執(zhí)行操作。
文檔編號G11C29/42GK102915766SQ20121019929
公開日2013年2月6日 申請日期2012年6月12日 優(yōu)先權(quán)日2011年6月13日
發(fā)明者姚恩齡, 吳子寧 申請人:馬維爾國際貿(mào)易有限公司