亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

在固態(tài)存儲器設備中的解碼的制作方法

文檔序號:6361851閱讀:213來源:國知局
專利名稱:在固態(tài)存儲器設備中的解碼的制作方法
技術領域
本發(fā)明總體上涉及包括固態(tài)存儲器設備(諸如,基于閃存的存儲器設備)的存儲系統(tǒng),以及涉及用于控制這種固態(tài)存儲器設備的技術,特別是關注于用于這種固態(tài)存儲器設備的解碼機制。
背景技術
固態(tài)存儲器設備包括使用電子電路來存儲數(shù)據(jù)的可重寫非易失性存儲器設備。目前,固態(tài)存儲器設備開始在某些領域(諸如,在針對筆記本電腦或臺式機的大容量存儲應用中)取代諸如硬盤驅動和光盤驅動的常規(guī)存儲設備。還對固態(tài)存儲器設備進行了研究,以在其他領域中諸如在企業(yè)存儲系統(tǒng)中取代常規(guī)存儲設備。這是因為固態(tài)存儲器設備提供了超常的帶寬以及突出的隨機1/0(輸入/輸出)性能,和歸因于缺少可移動部件而帶來的值得重視的魯棒性。目前發(fā)展水平的固態(tài)驅動裝置(SSD)(該術語與術語“固態(tài)存儲器設備”等同使用)可以利用單層單元(SCL)(針對其執(zhí)行二進制量化以產生一個信息位)實現(xiàn),或者可以利用多層單元(MLC)(針對若干層(通常是4或8)的一層執(zhí)行量化,以產生不止一個信息位)實現(xiàn)。糾錯碼(ECC)可以應用于固態(tài)驅動裝置,以實現(xiàn)數(shù)據(jù)取回過程的所需可靠性。典型地,里得-所羅門(Reed-Solomon,RS)碼或博斯-查德胡里-霍昆格姆(Bose-Chaudhur1-Hocquenghem, BCH)碼與硬解碼算法一起用于上述目的。硬解碼算法的主要問題在于,無論何時對從存儲器單元讀回的物理值執(zhí)行量化時,都會出現(xiàn)不可恢復性的信息損失。為了克服由硬解碼技術引起的信息損失,最近已經提出了針對SSD的ECC軟解碼。軟解碼技術的特征在于在多個迭代中對碼字進行解碼。已知的是,軟解碼較之于RS碼會產生較大的編碼增益。然而,迭代解碼引入了與解碼過程相關聯(lián)的延遲,這可能會不利地影響SSD應用的響應時間。在W02007/084751A2中,將迭代解碼技術用于固態(tài)存儲器設備,其中該設備部分包括編碼器,適用于存儲由編碼器編碼的數(shù)據(jù)的多層固態(tài)非易失性存儲器陣列,和適用于對從存儲器陣列取回的數(shù)據(jù)進行解碼的解碼器。該存儲器陣列可以是閃速EEPROM陣列。存儲器單元可選地包括調制器和解調器。由調制器調制的數(shù)據(jù)存儲在存儲器陣列中。解調器對從存儲器陣列取回的調制數(shù)據(jù)進行解調。另一迭代解碼器在US2009/0024905A1中示出,其中,用于操作存儲器設備的相應方法包括使用糾錯碼(ECC)來對數(shù)據(jù)進行編碼,以及將編碼數(shù)據(jù)作為第一模擬值存儲在存儲器設備的相應模擬存儲器單元中。在存儲了編碼數(shù)據(jù)之后,從其中存儲器設備中存儲有編碼數(shù)據(jù)的相應存儲器單元讀取第二模擬值。第二模擬值的至少某些值不同于相應的第一模擬值。對第二模擬值中存在的失真進行估計。響應于估計的失真,針對第二模擬值來計算糾錯度量。在ECC解碼過程中使用糾錯度量來處理第二模擬值,以便重建數(shù)據(jù)。

發(fā)明內容
根據(jù)本發(fā)明第一方面的實施方式,提供了一種用于控制固態(tài)存儲器設備的方法,該方法包括步驟:借助于糾錯迭代解碼過程來對所述存儲器設備的單元中存儲的碼字進行解碼,確定成功解碼所述單元的碼字所需的平均迭代次數(shù),以及監(jiān)測所述平均迭代次數(shù)。在實施方式中,該方法可以包括以下一個或多個特征:-依據(jù)所述平均迭代次數(shù),觸發(fā)下述動作的至少一個:-修改操作所述單元的模式;-應用損耗均衡例程;-不再操作所述單元;-針對所述單元應用避免數(shù)據(jù)損失的措施;-修改在所述解碼過程中使用的一個或多個參數(shù),以及繼續(xù)利用經過修改的參數(shù)來運行所述解碼過程;-監(jiān)測所述平均迭代次數(shù)的步驟包括:將所述平均迭代次數(shù)與閾值進行比較,以及當所述平均迭代次數(shù)超過所述閾值時,觸發(fā)至少一個動作;-當所述平均迭代次數(shù)超過所述閾值時,標記所述單元;-在所述解碼過程中,限定最大延遲和最大迭代次數(shù)中的一個,最遲在此之后終止用于解碼碼字的所述解碼過程,以及當所述平均迭代次數(shù)超過所述閾值時,分別增大所述最大延遲或所述最大迭代次數(shù);-限定最大用戶比特誤碼率,其中所述用戶比特誤碼率是在已應用所述糾錯迭代解碼過程之后的碼字的錯誤比特率,以及當所述平均迭代次數(shù)超過所述閾值時,增大所述最大用戶比特誤碼率;-在所述解碼過程中,在迭代中應用若干量化級別以確定由在所述存儲器設備的單元中存儲的物理值所代表的碼符號的后驗概率,其中量化級別的數(shù)目超出針對每個單元可用的碼符號的數(shù)目;-單元的所述平均迭代次數(shù)通過針對來自所述塊的預定數(shù)目讀取而累計成功解碼單元碼字所需的所述迭代次數(shù)并將所述累計的迭代次數(shù)除以預定讀取數(shù)目而確定;-監(jiān)測所述預定數(shù)目讀取所需的所述時間;-所述存儲器設備包括多個單元;針對每個單元確定所述平均迭代次數(shù);以及通過累計所述單元的每個單元的所述平均迭代次數(shù)并將所述累計的平均次數(shù)除以所述單元的數(shù)目,來確定平均迭代次數(shù);-該設備包括單個單元。根據(jù)本發(fā)明另一方面的實施方式,提供了一種計算機程序產品,其包括計算機可讀介質,其上包含有計算機可讀程序代碼,所述計算機可讀程序代碼包括配置用于執(zhí)行根據(jù)任一前述實施方式所述的方法的計算機可讀程序代碼。根據(jù)本發(fā)明另一方面的實施方式,提供了一種用于控制固態(tài)存儲器設備的存儲控制器,該存儲控制器包括:軟解碼器,用于借助于糾錯迭代解碼過程來解碼在所述存儲器設備的單元中存儲的碼字,計算單元,用于確定成功解碼所述單元的碼字所需的平均迭代次數(shù),以及監(jiān)測單元,用于監(jiān)測所述平均迭代次數(shù)。在實施方式中,存儲控制器可以包括下述一個或多個特征:
-軟解碼器包括:多個解碼單元,用于借助于糾錯迭代解碼過程,對在所述存儲器設備的單元中存儲的多個碼字并行地進行解碼;-所述軟解碼器包括:單個解碼單元,用于借助于糾錯迭代解碼過程對所述存儲器設備的單元中存儲的碼字進行解碼,以及隊列,用于存儲待解碼的連續(xù)碼字。根據(jù)本發(fā)明另一方面的實施方式,提供了一種存儲器設備,包括固態(tài)存儲器以及根據(jù)本發(fā)明的存儲控制器方面的用于控制所述固態(tài)存儲器的存儲控制器。應當理解,方法步驟可以以不同于方法權利要求列出的順序執(zhí)行。這種不同順序也將與目前列出的步驟順序一樣包括在這種權利要求的范圍內。與該方法方面關聯(lián)描述的實施方式也將被視作結合任何其他種類(諸如,設備、計算機程序產品等)所公開的實施方式,反之亦然。


將結合附圖來參考目前而言是優(yōu)選的但仍是示意性的根據(jù)本發(fā)明的實施方式的下述詳細描述,來更全面地理解本發(fā)明及其實施方式。附圖示出了:圖1為根據(jù)本發(fā)明的實施方式用于控制固態(tài)存儲器設備的方法的流程圖;圖2為根據(jù)本發(fā)明的實施方式用于控制固態(tài)存儲器設備的方法的流程圖;圖3為示出了在圖2的方法中使用的各種計數(shù)器的示例性狀態(tài)的兩個表格;圖4為示出了解碼過程中的延遲/迭代、原始比特錯誤率和用戶比特錯誤率之間關系的圖不;圖5為根據(jù)本發(fā)明實施方式的存儲設備的框圖;圖6為根據(jù)本發(fā)明實施方式的存儲器控制器的框圖;圖7為基于閃存的存儲器設備的存儲器空間的一部分的示意圖示。
具體實施例方式作為下述描述的引言而首先指出的是,本發(fā)明的整體方面涉及控制固態(tài)存儲器設備的方式,典型地借助于存儲控制器來控制。存儲在存儲器設備的單元中的碼字借助于糾錯迭代解碼過程來解碼。確定成功解碼單元的碼字所需的平均迭代次數(shù)。監(jiān)測這種平均迭代次數(shù)。該想法是基于這樣的認知,S卩,可以從針對損耗(wear)的固態(tài)存儲器設備中非常不同的主體的解碼操作,來推導何時借助于適當糾錯碼向存儲器設備中存儲的碼字應用允許迭代地解碼有意義信息的軟解碼過程。閃速存儲器設備和諸如相變存儲器設備的其他固態(tài)存儲器設備因損耗形式的設備物理現(xiàn)象而具有有限的壽命。特別地,閃速存儲器設備具有有限次數(shù)的寫入-擦除周期,之后存儲完整性開始降低且數(shù)據(jù)可能既不能安全讀取也不能安全寫入。這種在每個塊用壞之前可以對其執(zhí)行的最大寫入-擦除周期次數(shù)被稱為耐受時間。在塊經歷一定水平的損耗(這可能因塊而異)之后,性能快速下降。假設數(shù)據(jù)保留期為10年,則針對SLC的耐受時間可以典型地處于100000的量級,而對于MLC處于10000的量級,其中數(shù)據(jù)保留期表示是指可以從設備讀出數(shù)據(jù)的最大時間段(可能伴有可糾正的錯誤)。
另外,固態(tài)存儲器設備的損耗會歸因于操作這些設備的方式而部分地加速。例如,NAND閃存以塊的單元和頁面的子單元來組織。多個頁面形成塊。盡管讀取和寫入操作可以應用于作為這種操作最小單元的頁面,但是擦除操作僅可以應用于整個塊。并且在其他存儲技術中,過時的數(shù)據(jù)可以簡單地由新數(shù)據(jù)覆寫,閃速技術需要在新數(shù)據(jù)可以寫入已擦除塊之前進行擦除操作。出于閃速技術中擦除操作比讀取和寫入操作耗時要長的原因,所以應用稱為“非原址寫入”的寫入技術,其中將新的或更新的數(shù)據(jù)寫入空閑頁面分配器提供的某個空閑頁面,而不是寫入過時數(shù)據(jù)所駐留的相同頁面。包含過時數(shù)據(jù)的頁面是無效頁面。在某個時間點,稱為“垃圾收集”的過程通過將塊的所有有效頁面的內容移動至處于不同塊的空閑頁面從而釋放這些塊以便執(zhí)行新寫入。結果,主體塊最終僅包括無效頁面,并且可以擦除。顯然,此非原址寫入過程需要某些附加的內部寫入操作,其效果被稱為“寫入放大”,其轉而放大了設備的損耗。對固態(tài)存儲器設備的損耗進行監(jiān)測對于避免數(shù)據(jù)因塊用壞而丟失是非常重要的。已發(fā)現(xiàn),在應用迭代糾錯解碼過程時對碼字進行解碼所需的平均迭代次數(shù)代表了相應單元展現(xiàn)出的損耗水平。換言之,成功解碼碼字所需的平均迭代次數(shù)是針對單元損耗的度量。借助于監(jiān)測平均迭代次數(shù),可以監(jiān)測單元的損耗,以及依據(jù)平均迭代次數(shù),可以采取確定的動作。對于正常使用下的低損耗水平,良好的塊/單元性能轉化為宣稱成功解碼所需的非常少的迭代次數(shù),且因此還經歷較低的解碼延遲。隨著自塊的上一次寫入操作的時間段或損耗的增大,性能會下降,并且成功解碼會需要更多次的迭代。因而將對存儲在塊中的碼字成功進行解碼的平均迭代次數(shù)用作對損耗水平的測量。在針對糾錯碼(ECC)的解碼算法(其中,使用硬決策形式的硬解碼來替代軟解碼)中,對存儲器設備的單元中存儲的物理值(其代表并且應當譯成碼符號)執(zhí)行量化。假設例如物理值是存儲在單元中的電壓,量化級別可能是代表在單元中編碼的碼符號所采用的可能二進制值其中之一的某個電壓。因此,用于硬解碼的量化級別數(shù)目典型地等于碼符號所采用的可能二進制值的數(shù)目。例如,在閃速存儲器設備的四層單元中,典型地對兩個二進制碼符號進行編碼,以及將四級量化器用于硬檢測。通過量化獲得的碼符號的恢復序列應當代表信息位的原始序列。例如,里得-所羅門RS碼或博斯-查德胡里-霍昆格姆BCH碼通常在閃速存儲器中結合硬解碼算法一起使用。硬解碼的主要問題在于:無論何時在可能代表一個或多個碼符號的物理值上執(zhí)行硬量化都會發(fā)生不可恢復的信息損失。為了克服這個問題,可以應用ECC的軟解碼。在軟解碼算法中,將可能代表一個或多個碼符號的物理值理想地輸入至解碼器,而無需本著硬編碼的精神進行先量化,在硬編碼中針對給定的幾個量化級別采取最終決策。在實施軟解碼時,利用若干量化級別來應用量化,量化級別的數(shù)目顯著大于由物理值代表的碼符號所采用的可能二進制值的數(shù)目,例如,大8倍。因此,軟解碼的特征在于通過使用顯著增大碼符號數(shù)目的大量量化級別,來迭代地接近物理值代表哪個碼符號二進制值的決策。對于某一類編碼,如果應用迭代軟解碼算法的話,則可獲得的編碼增益顯著增加。迭代軟解碼機制通常在兩個軟解碼部件/邏輯之間應用消息傳遞過程,從而使得每個部件使用來自另一部件的軟信息來產生更可靠的決策。通過應用軟解碼過程,不可恢復的信息損失較之于硬解碼可以得以避免。
因此,在本發(fā)明的上下文中,軟解碼涉及這樣的解碼過程,其在各種迭代中使用大量量化級別來確定由存儲在存儲器設備的單元中的物理值所代表的碼符號二進制值。在這種過程中,量化級別的數(shù)目超過由每單元可用的碼符號所采用的可能二進制值的數(shù)目。優(yōu)選地,量化級別的數(shù)目至少超過由每單元可用的碼符號所采用的可能二進制值的數(shù)目的8倍。在優(yōu)選實施方式中,應用用于解碼turbo碼或低密度奇偶校驗(LDPC)碼的軟解碼器。優(yōu)選地,在向設備寫入數(shù)據(jù)時,利用對應的糾錯碼(優(yōu)選地可以由軟解碼器解碼的turbo碼或低密度奇偶校驗(LDPC)碼)對數(shù)據(jù)進行編碼。為了緩解固態(tài)存儲器設備中的損耗問題,已經提出針對具有不同損耗水平的塊進行不等同的錯誤保護。不再需要這樣的方式,原因在于借助于軟解碼,所有的塊都可以由作為建議的迭代碼的相同糾錯碼來處理,因為損耗的水平可以較早推導出或者在平均迭代次數(shù)中暗示。依據(jù)平均迭代次數(shù),可以應用由閃速控制器執(zhí)行的內部管理過程,稱為損耗均衡。該過程旨在解決存儲器設備的用壞特征。損耗均衡涉及各種數(shù)據(jù)放置和移動功能,其旨在在所有可用的單元間均勻地分布寫入擦除周期以避免不均勻的用壞,從而延長整體壽命。具體地,損耗均衡功能控制對應當向其寫入新數(shù)據(jù)的塊的選擇以及移動閃速存儲器內存儲的數(shù)據(jù)以釋放具有較低周期計數(shù)乃至用壞的塊。這種損耗均衡過程可以由所識別平均迭代的特定次數(shù)或范圍來觸發(fā)。不再需要單獨建立用于諸如通過針對每個單元對寫入-擦除周期進行計數(shù)而確定損耗的手段。在平均迭代次數(shù)中暗示的損耗的度量可以視為針對損耗均衡過程的損耗估計輸入和/或觸發(fā)??傊?,監(jiān)測使用諸如turbo碼或LDPC碼的迭代碼對存儲在單元中的碼字進行軟解碼所需的迭代次數(shù)。對于正常使用下的低損耗水平,良好的單元性能轉化成宣稱成功解碼所需的非常少迭代,并且因此經歷非常低的解碼延遲。隨著自塊的最后寫入操作起的時間段或損耗的增大,性能會下降,并且成功解碼需要更多次的迭代。因而將對存儲在塊中的碼字進行成功軟解碼的平均迭代次數(shù)用作對損耗水平的度量。圖1示出了根據(jù)本發(fā)明的實施方式用于控制固態(tài)存儲器設備的方法的流程圖。在步驟10中,利用糾錯迭代解碼過程,對存儲在單元(例如,基于閃存的存儲器設備的塊)中的碼字進行解碼。在步驟11中,基于步驟10中對多個碼字的解碼(等同于多個讀取過程)來確定對該單元中的碼字進行成功解碼所需的平均迭代次數(shù)。在步驟12,監(jiān)測平均迭代次數(shù),即將其與閾值的比較。如果平均迭代次數(shù)低于閾值(N),則該過程重新從步驟10開始,直到根據(jù)步驟11的要求執(zhí)行了能夠構建平均迭代次數(shù)的足夠次數(shù)的讀取。如果在步驟12中,平均迭代次數(shù)高于閾值(Y),則可以在步驟13中應用一個或多個動作:這種動作可以包括下述一個或多個:-修改操作該單元的模式;-應用損耗均衡例程;-使得單元不再被操作;-啟動用于針對該單元避免數(shù)據(jù)損失的措施;-修改在解碼過程中使用的一個或多個參數(shù),以及繼續(xù)利用新參數(shù)來運行解碼過程。上述列表既不是窮盡的,也不是需要在設備中同時提供的全部不同動作。
依據(jù)平均迭代次數(shù)(優(yōu)選地,當平均次數(shù)超過閾值時)而發(fā)起的動作的特定示例可以如下:針對平均次數(shù)超過損耗均衡閾值,可以啟動損耗均衡過程,以跨包括當前塊的多個塊來均衡損耗分布。如果,例如平均迭代次數(shù)和對應的損耗均衡閾值指示本塊中相對高水平的損耗,則可以使得任何新到達的數(shù)據(jù)被寫入展現(xiàn)較低損耗水平的不同塊。還可以理解,作為一種操作模式(如果例如通過超過閾值而觸發(fā)),可以僅允許將來對當前塊的只讀操作而不允許寫入或擦除操作。作為監(jiān)測平均迭代次數(shù)結果而對操作模式的改變可能影響例如數(shù)據(jù)的讀取、數(shù)據(jù)的寫入、擦除操作、編碼和/或解碼操作、垃圾收集、其他管理性任務等??傊?,可能就所識別損耗而言發(fā)生偏離和/或改變的任何當前操作過程都應當落入操作模式的改變的范圍。如果例如平均迭代次數(shù)超過指示非常高水平損耗的停止閾值,則可以例如在應用了故障保護例程以防止來自當前塊的有效數(shù)據(jù)損失之后,對當前塊停止所有操作,且該塊不再使用。在優(yōu)選實施方式中,以上給出的某些動作可以相繼發(fā)起或者并行發(fā)起;針對不同動作的閾值,它們的值可能不同。根據(jù)圖1中的優(yōu)選方法,將平均迭代次數(shù)超過閾值的塊標記為不再可用和/或不可靠。在這種情況中,或者在步驟14中,可以停止對當前塊的任何操作。在除了停止操作之外的動作(諸如,例如修改解碼參數(shù))作為優(yōu)選選擇時,解碼過程可以在步驟10繼續(xù),參見虛線,并且運行包括關聯(lián)解碼的新讀取操作周期,以便在步驟11中確定新的平均迭代次數(shù),然而,現(xiàn)在應用的是修改過的解碼參數(shù)。圖1的流程圖示出了隨著塊損耗的增大,單元性能下降,且針對成功解碼需要更多次的迭代。當成功解碼所需的平均迭代次數(shù)超過閾值(其可以相對于在單元未耗盡期間初始階段處的正常操作進行設置)時,可以將該塊聲明為不可靠的以及不再使用。圖2示出了根據(jù)本發(fā)明另一實施方式的流程圖,其中再次監(jiān)測軟解碼算法在讀取請求后生成其輸出所需的迭代次數(shù)。在塊級別(塊可以是本方法適用的閃速存儲器設備的單元),該操作在步驟20中開始,以及各種計數(shù)器<k>、〈r>和<i>被設置為0,統(tǒng)一參見步驟21。引入了大小“w”的預定窗口,其考慮在塊中的“w”次連續(xù)讀取。這可以通過針對每個塊的寄存器中的計數(shù)器<r>實現(xiàn),該計數(shù)器可以在塊中的每次讀取操作后遞增,以及當在步驟24中“r”達到“w”時,在步驟21中重置。在重置之后,計數(shù)器<k> (代表窗口 “w”的索引)在針對每個塊的寄存器中遞增。另一寄存器<i>在針對每個塊的寄存器中實現(xiàn),其在步驟23中根據(jù)在步驟22中塊的讀取操作之后產生輸出結果所需的迭代次數(shù)“m”來遞增。在這種情況下,計數(shù)器<i>累計解碼過程中支持各種讀取操作所需的迭代次數(shù)。當“r”達到“w”時,此計數(shù)器<i>被重置,參見步驟21。在重置之前,計數(shù)器<i>的值可以存儲在針對每個塊的寄存器中的另一計數(shù)器位置〈^previous〉,其未在圖2的流程圖中示出。由此,第一“w”讀取形成第一窗口(由w_l指代),隨后的“w”讀取形成第二窗口(由w_2指代),等等。因此,窗口 w_k包含w次連續(xù)讀取的序列(k-l)*w+l, (k-l)*w+2,...., k*Wo在“r”達到“w”之后, 在步驟25中基于上文按下述公式來計算所需的平均迭代次數(shù)n_k:在窗口 w_k中的平均迭代次數(shù)n_k:n_k = i/w。
在步驟26中,借助于與閾值“thres”的比較來監(jiān)測這種平均迭代次數(shù)n_k。在平均次數(shù)n_k高于閾值“thresh” (是)的情況下,該過程在步驟27中停止,以及在本實施方式中,將相應的塊標記為不可用。也可以適當?shù)亟Y合步驟27來發(fā)起其他動作。在步驟26中平均迭代次數(shù)n_k低于閩值“thresh”的情況下,該過程再次在步驟21中針對“w”個讀取的新窗口 k+Ι開始,針對該新窗口在步驟25中確定平均迭代次數(shù)以及在步驟26中對其進行監(jiān)測??蛇x地,結合確定平均迭代次數(shù)n_k,可以計算平均迭代次數(shù)的改變速率如下:窗口w_(k_l)中的平均迭代次數(shù):n_(k_l) = i_previous/w。窗口 w_k中的平均迭代次數(shù)d_k的變化:d_k = n_k-n_(k_l)。序列d_k可以用于估計設備中的損耗改變速率。如果d_k超過預定閾值,則可以附加地采取適當動作??梢愿鶕?jù)另一實施方式還可以解決數(shù)據(jù)保留的問題。數(shù)據(jù)保留是指存儲的數(shù)據(jù)可被讀出(可能帶有可糾正的錯誤)的最大時間段?;叵胱x取問題可能歸因于數(shù)據(jù)損壞而產生,不是因為損耗而是歸因于數(shù)據(jù)已被存儲較長時段但未被更新。具體地,參考上述方法,典型的窗口包含w個讀取操作,帶有關于已針對解碼執(zhí)行的迭代次數(shù)的信息,而不具有時間的概念。為了將保留與耗盡區(qū)分,可以提供附加的計數(shù)器以指示對應窗口的年齡,即,窗口活躍的時間。在窗口的年齡超過保留閩值以及平均迭代次數(shù)超過該指派閾值的情況下,可以假設在這種塊中的數(shù)據(jù)可能損失不會是起源于損耗而是起源于數(shù)據(jù)保留??梢宰鳛楸O(jiān)測窗口活躍多久的結果而實現(xiàn)其他或附加的措施,例如,在窗口年齡超過保留閾值的情況下重新定位塊的有效數(shù)據(jù)。圖2中示出的方式還可以擴展,以檢測整個存儲器設備何時用壞。一種可能的實現(xiàn)在下文描述,并且構成了在塊級別確定平均迭代次數(shù)的等同,然而該實現(xiàn)轉為設備級別,其中實現(xiàn)計數(shù)器以對設備中任何讀取過程的迭代進行計數(shù)。因此,在設備級別的迭代次數(shù)通過針對設備的計數(shù)器進行計數(shù)。具體地,引入了大小“W”的窗口,其考慮設備中的W個連續(xù)讀取。這可以通過針對設備的寄存器中的計數(shù)器<R>實現(xiàn),在設備中的每次讀取操作之后將其遞增,以及在“R”達到“W”時將其重置。在重置后,代表窗口索引的另一計數(shù)器〈K〉在針對每個設備的寄存器中遞增。在針對每個設備的寄存器中實現(xiàn)另一計數(shù)器〈1>,該計數(shù)器根據(jù)在任何塊中的讀取操作之后產生結果所需的迭代次數(shù)而進行遞增。當“R”達到“W”時,對此計數(shù)器〈I〉進行重置。在重置該計數(shù)器之前,計數(shù)器〈I〉的值可以存儲在針對每個設備的寄存器中的另一計數(shù)器位置<I_preViouS>中。由此,第一 W個讀取形成由W_1代表的第一窗口,隨后的W個讀取形成由W_2代表的第二窗口,等等。因此,窗口 W_K包含W個連續(xù)讀取的序列(K-1)*W+1,(K-1)*W+2,...,K*W。基于上文并按照下述來計算所需的平均迭代次數(shù)及其改變速率: ff_K中的平均迭代次數(shù)N_K:N_K = I/W。ff_ (K-1)中的平均迭代次數(shù):N_ (K-1) = I_previous/W。ff_K中的平均迭代次數(shù)變化D_K:D_K = N_K-N_ (K-1)。針對在設備級別對平均迭代次數(shù)的確定可以作為在塊級別上的確定的補充或者替代。在設備級別觀察到用壞時,在設備級別的平均迭代次數(shù)超過閾值后發(fā)起的任何動作都可以是設備特定的,例如通過將設備標記為用壞和/或避免對該設備應用任何其他寫入和/或擦除操作而實現(xiàn)。在另一實施方式中,可以在設備的每個塊上執(zhí)行針對平均迭代次數(shù)的確定。此外,針對在設備級別確定平均迭代次數(shù),可以累計針對所有塊確定的平均迭代次數(shù)。在一個實施方式中,如果針對特定塊的平均迭代次數(shù)超過了閾值,則可以停止或者修改在每個個體塊上的操作,以及如果累計的迭代次數(shù)超過閾值,則可以停止或修改在整個設備上的操作,該閾值可以設置為與塊級別閾值相同的值,或者設置為不同的值,特別是設置為較低的值。如果被聲明為不可用的塊的數(shù)量超過閩值,則也可以停止在整個設備上的操作。在圖3的表格中針對采樣塊ID和采樣設備ID示出了針對每個塊的和針對每個設備的寄存器的內容的典型快照。示出了計數(shù)器k,r,i,K,R,I (對應于針對圖2介紹的計數(shù)器)的采樣計數(shù)器值。圖4借助于3D圖示出了本方法和設備的更廣的上下文,其中在X軸上描述原始比特誤碼率,在y軸上描述延遲/迭代,以及在z軸上描述用戶比特誤碼率。原始比特誤碼率表征存儲在存儲器中的數(shù)據(jù)的比特誤碼率,即如果不應用糾錯則存儲的碼字將表現(xiàn)出的比特誤碼率。出于應用糾錯碼的原因,可以借助于糾錯碼來改進比特誤碼率,而用戶比特誤碼率代表在對糾錯編碼的數(shù)據(jù)進行解碼之后仍會留下的誤碼率。出于使用利用迭代解碼過程的碼的原因,延遲/迭代可以代表對碼字進行成功解碼所需的時間長度或者對碼字進行成功解碼所需的迭代次數(shù)。注意,在本圖示中,迭代次數(shù)代表對個體碼字進行解碼所需的次數(shù),而不是對多次解碼確定的平均次數(shù)。假定在本示例中,固態(tài)存儲器設備是閃速存儲器設備,所提議的方法的實施方式利用從閃速存儲器設備中的單元讀回的模擬信號采樣V(T),即隨時間改變的電壓。隨著相應塊損耗的增加,原始比特誤碼率(即,在糾錯之前應用于個體符號決策的誤碼率)也增力口,導致解碼所需迭代次數(shù)的增加。為了在即使碼符號不能成功解碼時也維持有限的延遲以允許設備繼續(xù)操作,則優(yōu)選地對用于解碼碼字所執(zhí)行的迭代次數(shù)加以界限。因此,對于所允許的給定延遲或最大迭代次數(shù),對于增大的損耗,用戶比特誤碼率會隨著原始比特錯誤的增加而增加。注意,當原始比特誤碼率增加時,可以以增大迭代次數(shù)以及因此增大解碼延遲為代價維持指定的用戶比特誤碼率。在接近設備壽命的終止時,用于成功解碼碼字所需的迭代次數(shù)會接近于所允許的最大迭代次數(shù)。在該時刻,即例如當平均迭代次數(shù)超過第一閩值(其中第一閩值低于所允許的最大迭代次數(shù))時,可以將允許的最大迭代次數(shù)設置為較高的值并由此超常增加允許的最大迭代次數(shù)以維護可靠性,即維護特定的用戶比特誤碼率。在第二步驟中,當平均迭代次數(shù)超過第二閾值(其優(yōu)選地可以超過第一閾值)時,該塊或設備可以標記為且在這樣做時聲明為不可靠的以及不再可用的。如果第二閾值設置為等于所允許的最初最大迭代次數(shù)的值,則可以當在最大允許的解碼器迭代的平均數(shù)目內不能達到目標用戶比特誤碼率時,將塊聲明為不可靠。在圖4的圖示中,在設備的壽命期間,主體塊的損耗增加,這會導致原始比特誤碼率從RBl增加到RB2。假設,將在原始比特誤碼率為RBl的情況下對碼字進行成功解碼所需的迭代次數(shù)限制為IT1,從圖中可以變得顯然的是,與RBl和ITl相關聯(lián)的用戶比特誤碼率UBl (其是對即使存在糾錯碼也不能糾正的比特錯誤的度量)增加至UB2。然而,在允許的最大迭代次數(shù)ITM具有比ITl高的值的情況下,存在通過運行超過ITl但小于ITM次數(shù)的迭代而遵守用戶比特誤碼率UBl的機會,其中UBl可以是針對設備操作指定的目標用戶比特誤碼率。假設,如果平均迭代次數(shù)超過閾值,則可例外地允許將最大迭代次數(shù)設置為超過ITM的IT2,以允許至少針對低于RB3的原始比特誤碼率而將目標用戶比特誤碼率保持在UBl。換言之,可以在塊壽命和解碼延遲之間選擇各種平衡,如圖4量化地所示。圖5示出了根據(jù)本發(fā)明實施方式的存儲設備的框圖。存儲器設備I包括具有塊/頁存儲器空間結構的基于閃存的固態(tài)存儲器2。若干塊指示為21。存儲器控制器3控制閃速存儲器2的動作,由此可以將存儲器描述為計算化的存儲器。存儲器控制器3也可以標記為存儲控制器。存儲器控制器3特別適用于從存儲器2讀取數(shù)據(jù)和向其寫入數(shù)據(jù)(包括編碼和解碼),以及結合數(shù)據(jù)的讀取和寫入而執(zhí)行所有管理任務。存儲器控制器3進一步連接至主機4,其利用存儲設備I來存儲數(shù)據(jù)。因此,主機4向存儲設備I發(fā)布讀取和/或寫入命令。為了實現(xiàn)根據(jù)上述實施方式的任一的方法,存儲器控制器3優(yōu)選地提供優(yōu)選存儲在諸如R0M31(參見圖6)的非易失性、非可重寫存儲介質中的計算機程序代碼。存儲器控制器進一步提供RAM32以向其加載程序代碼,以及處理單元33,用于執(zhí)行RAM32中的程序代碼。處理單元33包括功能單元,諸如軟解碼器331,用于根據(jù)上述方法進行軟解碼,計算單元332,用于確定在若干讀取命令的解碼過程中所需的平均迭代次數(shù),和監(jiān)測單元333,在其中例如將平均迭代次數(shù)與閾值進行比較。本處理單元33包括單個軟解碼器,其由隊列334饋送待解碼的碼字。此外,提供了內部通信系統(tǒng)34,以用于在存儲器控制器3的部件之間通信,并且提供了接口 35,以用于與閃速存儲器通信,而另一接口 36可被提供以用于與主機的任何通信。在優(yōu)選實施方式中,LDPC碼實現(xiàn)為糾錯碼,以及迭代軟解碼應用于軟解碼器31中的數(shù)據(jù)取回。關鍵參數(shù)是與解碼過程相關聯(lián)的延遲。監(jiān)測用于解碼碼字(存儲在塊中)的平均迭代次數(shù)。對于可接受的損耗水平,預期針對高達5000比特的碼字長度在20次迭代之內提供響應。假設每個迭代在Ius中執(zhí)行,則響應時間將至多為20us,其位于針對適當SSD操作的可接受界限內。作為使用僅一個邏輯用于迭代解碼加上一個隊列用于存儲連續(xù)讀取請求的針對軟解碼器331的上述硬件設置(其中以更大的延遲為代價降低了實現(xiàn)復雜度)的備選,可選地可以存在通過一次復制解碼η個碼字所需的邏輯來實現(xiàn)的設置,從而使得可以并行地處理讀取請求,由此導致較低的延遲。最后,圖7示出了在塊21中組織的閃速存儲器的一部分,若干個塊131-138被明確地示出。頁面被示出為在以方塊示出的欄中的水平條帶。所有塊131-138是適用于保有用戶數(shù)據(jù)的數(shù)據(jù)塊。在本示例中,假設,塊133被確定為表現(xiàn)出高于可接受閾值的損耗。結果以及如圖7的箭頭60所示,該塊的有效頁面被拷貝至另一塊,即在本示例中的塊135,該塊目前支持寫入新的或更新的數(shù)據(jù)。在這種數(shù)據(jù)保存之后,塊133被標記為不再被使用。所屬技術領域的技術人員知道,本發(fā)明可以實現(xiàn)為系統(tǒng)、方法或計算機程序產品。因此,本公開可以具體實現(xiàn)為以下形式,即:可以是完全的硬件、也可以是完全的軟件(包括固件、駐留軟件、微代碼等),還可以是硬件和軟件結合的形式,本文一般稱為“電路”、“模塊”或“系統(tǒng)”。此外,在一些實施例中,本發(fā)明還可以實現(xiàn)為在一個或多個計算機可讀介質中的計算機程序產品的形式,該計算機可讀介質中包含計算機可讀的程序代碼??梢圆捎靡粋€或多個計算機可讀的介質的任意組合。計算機可讀介質可以是計算機可讀信號介質或者計算機可讀存儲介質。計算機可讀存儲介質例如可以是一但不限于一電、磁、光、電磁、紅外線、或半導體的系統(tǒng)、裝置或器件,或者任意以上的組合。計算機可讀存儲介質的更具體的例子(非窮舉的列表)包括:具有一個或多個導線的電連接、便攜式計算機磁盤、硬盤、隨機存取存儲器(RAM)、只讀存儲器(ROM)、可擦式可編程只讀存儲器(EPR0M或閃存)、光纖、便攜式緊湊磁盤只讀存儲器(CD-ROM)、光存儲器件、磁存儲器件、或者上述的任意合適的組合。在本文件中,計算機可讀存儲介質可以是任何包含或存儲程序的有形介質,該程序可以被指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結合使用。計算機可讀的信號介質可以包括在基帶中或者作為載波一部分傳播的數(shù)據(jù)信號,其中承載了計算機可讀的程序代碼。這種傳播的數(shù)據(jù)信號可以采用多種形式,包括——但不限于——電磁信號、光信號或上述的任意合適的組合。計算機可讀的信號介質還可以是計算機可讀存儲介質以外的任何計算機可讀介質,該計算機可讀介質可以發(fā)送、傳播或者傳輸用于由指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結合使用的程序。計算機可讀介質上包含的程序代碼可以用任何適當?shù)慕橘|傳輸,包括一但不限于一無線、電線、光纜、RF等等,或者上述的任意合適的組合??梢砸砸环N或多種程序設計語言或其組合來編寫用于執(zhí)行本發(fā)明操作的計算機程序代碼,所述程序設計語言包括面向對象的程序設計語言-諸如Java、Smalltalk、C++,還包括常規(guī)的過程式程序設計語言-諸如”C”語言或類似的程序設計語言。程序代碼可以完全地在用戶計算機上執(zhí)行、部分地在用戶計算機上執(zhí)行、作為一個獨立的軟件包執(zhí)行、部分在用戶計算機上部分在遠程計算機上執(zhí)行、或者完全在遠程計算機或服務器上執(zhí)行。在涉及遠程計算機的情形中,遠程計算機可以通過任意種類的網(wǎng)絡一包括局域網(wǎng)(LAN)或廣域網(wǎng)(WAN)-連接到用戶計算機,或者,可以連接到外部計算機(例如利用因特網(wǎng)服務提供商來通過因特網(wǎng)連接)。下面將參照本發(fā)明實施例的方法、裝置(系統(tǒng))和計算機程序產品的流程圖和/或框圖描述本發(fā)明。應當理解,流程圖和/或框圖的每個方框以及流程圖和/或框圖中各方框的組合,都可以由計算機程序指令實現(xiàn)。這些計算機程序指令可以提供給通用計算機、專用計算機或其它可編程數(shù)據(jù)處理裝置的處理器,從而生產出一種機器,這些計算機程序指令通過計算機或其它可編程數(shù)據(jù)處理裝置執(zhí)行,產生了實現(xiàn)流程圖和/或框圖中的方框中規(guī)定的功能/操作的裝置。也可以把這些計算機程序指令存儲在能使得計算機或其它可編程數(shù)據(jù)處理裝置以特定方式工作的計算機可讀介質中,這樣,存儲在計算機可讀介質中的指令就產生出一個包括實現(xiàn)流程圖和/或框圖中的方框中規(guī)定的功能/操作的指令裝置(instructionmeans)的制造品(manufacture)。也可以把計算機程序指令加載到計算機、其它可編程數(shù)據(jù)處理裝置、或其它設備上,使得在計算機、其它可編程數(shù)據(jù)處理裝置或其它設備上執(zhí)行一系列操作步驟,以產生計算機實現(xiàn)的過程,從而使得在計算機或其它可編程裝置上執(zhí)行的指令能夠提供實現(xiàn)流程圖和/或框圖中的方框中規(guī)定的功能/操作的過程。附圖中的流程圖和框圖顯示了根據(jù)本發(fā)明的多個實施例的系統(tǒng)、方法和計算機程序產品的可能實現(xiàn)的體系架構、功能和操作。在這點上,流程圖或框圖中的每個方框可以代表一個模塊、程序段或代碼的一部分,所述模塊、程序段或代碼的一部分包含一個或多個用于實現(xiàn)規(guī)定的邏輯功能的可執(zhí)行指令。也應當注意,在有些作為替換的實現(xiàn)中,方框中所標注的功能也可以以不同于附圖中所標注的順序發(fā)生。例如,兩個連續(xù)的方框實際上可以基本并行地執(zhí)行,它們有時也可以按相反的順序執(zhí)行,這依所涉及的功能而定。也要注意的是,框圖和/或流程圖中的每個方框、以及框圖和/或流程圖中的方框的組合,可以用執(zhí)行規(guī)定的功能或操作的專用的基于硬件的系統(tǒng)來實現(xiàn),或者可以用專用硬件與計算機指令的組合來實現(xiàn)。
權利要求
1.一種用于控制固態(tài)存儲器設備的方法,包括步驟: 借助于糾錯迭代解碼過程對所述存儲器設備(I)的單元中存儲的碼字進行解碼, 確定成功解碼所述單元的碼字所需的平均迭代次數(shù)(n_k),以及監(jiān)測所述平均迭代次數(shù)(n_k)。
2.根據(jù)權利要求1所述的方法,其中依據(jù)所述平均迭代次數(shù)(n_k),觸發(fā)下述動作的至少一個: 修改在其中操作所述單元的模式; 應用損耗均衡例程; 不再操作所述單元; 針對所述單元避免數(shù)據(jù)損失; 修改在所述解碼過程中使用的一個或多個參數(shù),以及利用修改后的所述參數(shù)來繼續(xù)運行所述解碼過程。
3.根據(jù)權利要求1或2所述的方法, 其中所述監(jiān)測所述平均迭代次數(shù)(n_k)的步驟包括:將所述平均迭代次數(shù)與閾值進行比較,以及 其中當所述平均迭代次數(shù)(n_k)超過所述閾值時,觸發(fā)至少一個動作。
4.根據(jù)權利要求3所述的方法,其中當所述平均迭代次數(shù)(n_k)超過所述閾值時,標記所述單元。
5.根據(jù)權利要求3所述的方法, 其中限定最大延遲和最大迭代次數(shù)(ITM)中的一個,最遲在此之后終止用于解碼碼字的所述解碼過程,以及 其中當所述平均迭代次數(shù)(n_k)超過所述閾值時,分別增大所述最大延遲或所述最大迭代次數(shù)(ITM)。
6.根據(jù)前述任一權利要求3所述的方法, 其中限定最大用戶比特誤碼率,所述用戶比特誤碼率是在已應用所述糾錯迭代解碼過程之后的碼字的錯誤比特率, 以及其中當所述平均迭代次增大時,增大所述最大用戶比特誤碼率。
7.根據(jù)前述任一權利要求所述的方法,其中在所述解碼過程中,在迭代中應用多個量化級別以確定由在所述存儲器設備的單元中存儲的物理值所代表的碼符號二進制值的后驗概率,所述量化級別的數(shù)目超出每個單元可用的碼符號的數(shù)目。
8.根據(jù)前述任一權利要求所述的方法,其中通過針對從一個單元的預定數(shù)目(w)的讀取而累計成功解碼單元的碼字所需的迭代次數(shù)并且將累計的所述迭代次數(shù)除以所述讀取的預定數(shù)目(《),來確定所述單元的所述平均迭代次數(shù)(n_k)。
9.根據(jù)權利要求8所述的方法,其中監(jiān)測所述預定數(shù)目(w)的讀取所需的時間。
10.根據(jù)前述任一權利要求所述的方法, 其中所述存儲器設備包括多個單元, 其中針對每個單元確定所述平均迭代次數(shù)(n_k),以及 其中通過累計所述單元中的每個單元的所述平均迭代次數(shù)(n_k)并且將累計的所述平均次數(shù)除以所述單元的數(shù)目,來確定針對所述設備的平均迭代次數(shù)(n_K)。
11.根據(jù)前述任一權利要求所述的方法,其中所述設備包括單個單元。
12.—種計算機程序產品,包括計算機可讀介質,其上包含有計算機可讀程序代碼,所述計算機可讀程序代碼包括配置用于執(zhí)行根據(jù)前述權利要求ι-1i的任一項所述的方法的計算機可讀程序代碼。
13.一種用于控制固態(tài)存儲器設備的存儲控制器,包括: 解碼器(331),用于借助于糾錯迭代解碼過程對所述存儲器設備(I)的單元中存儲的碼字進行解碼, 計算單元(332),用于確定成功解碼所述單元的碼字所需的平均迭代次數(shù)(n_k),以及 監(jiān)測單元(333),用于監(jiān)測所述平均迭代次數(shù)(n_k)。
14.根據(jù)權利要求13所述的存儲控制器,其中所述解碼器(331)包括多個解碼單元,用于每個借助于糾錯迭代解碼過程針對在所述存儲器設備(I)的單元中存儲的多個碼字并行地進行解碼。
15.根據(jù)權利要求13所述的存儲控制器, 其中所述解碼器(331)包括單個解碼單元,用于借助于糾錯迭代解碼過程對所述存儲器設備(1)的單元中存儲的碼字進行解碼,以及 其中提供隊列(334)以用于存儲將要由所述解碼器(331)解碼的連續(xù)碼字。
16.一種存儲器設備,包括固態(tài)存儲器和根據(jù)權利要求13-15中任一項所述的用于控制所述固態(tài)存儲器的存儲控制器。
全文摘要
在固態(tài)存儲器設備中,借助于糾錯迭代解碼過程來對存儲器設備(1)的單元中存儲的碼字進行解碼。確定成功解碼所述單元的碼字所需的平均迭代次數(shù)(n_k),以及特別地出于平均迭代次數(shù)(n_k)可以用作主體單元損耗的度量這樣的原因,而監(jiān)測所述平均迭代次數(shù)(n_k)。
文檔編號G06F11/10GK103119563SQ201180046175
公開日2013年5月22日 申請日期2011年9月22日 優(yōu)先權日2010年9月29日
發(fā)明者G·切魯比尼, I·伊利亞迪斯 申請人:國際商業(yè)機器公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1