• / 24
  • 下載費用:30 金幣  

對存儲在固態存儲器中的數據進行解碼.pdf

摘要
申請專利號:

CN201480021715.3

申請日:

2014.03.11

公開號:

CN105164649A

公開日:

2015.12.16

當前法律狀態:

授權

有效性:

有權

法律詳情: 授權|||實質審查的生效IPC(主分類):G06F 12/00申請日:20140311|||公開
IPC分類號: G06F12/00; G06F13/00 主分類號: G06F12/00
申請人: 西部數據技術公司
發明人: A·R·克里希南; S·S·加拉尼; K·D·安德森
地址: 美國加利福尼亞
優先權: 13/829,904 2013.03.14 US
專利代理機構: 永新專利商標代理有限公司72002 代理人: 劉瑜; 王英
PDF完整版下載: PDF下載
法律狀態
申請(專利)號:

CN201480021715.3

授權公告號:

||||||

法律狀態公告日:

2018.07.03|||2016.03.30|||2015.12.16

法律狀態類型:

授權|||實質審查的生效|||公開

摘要

公開了對存儲在固態存儲器陣列中的數據進行解碼的實施例。在一個實施例中,在考慮到單元間干涉(ICI)的同時來執行多個讀取操作。通過利用已知數據及其對應的多次讀取輸出來確定諸如對數似然比(LLR)的軟決策信息。軟決策信息被提供給檢測器。改進了可靠性,提高了性能。

權利要求書

權利要求書
1.  一種數據存儲系統,包括:
非易失性固態存儲器陣列,其包括被配置為存儲數據的多個存儲器單元;以及
控制器,其被配置為:
在參考存儲器單元上執行多個讀取操作以獲得多個數據模式;
至少部分地基于所述數據模式和所述參考存儲器單元上的已知數據來分配概率值;以及
基于分配的概率值來確定存儲在目標存儲器單元中的數據。

2.  如權利要求1所述的存儲系統,其中,所述控制器進一步被配置為利用多個電壓閾值來對所述參考存儲器單元執行所述多個讀取操作。

3.  如權利要求1所述的存儲系統,其中,所述控制器進一步被配置為基于所述數據模式的出現數目來分配所述概率值。

4.  如權利要求3所述的存儲系統,其中:
所述參考存儲器單元存儲位值X0至XN-1;以及
所述分配的概率值包括基于所述數據模式的出現數目確定的概率值,所述概率值:(1)與Xi相關聯,以及(2)與包括Xi和與Xi相鄰的一個或多個位值的位序列相關。

5.  如權利要求1所述的存儲系統,其中,所述控制器被配置為通過將BCJR算法或SOVA算法應用于所述分配的概率值來取得軟信息。

6.  如權利要求5所述的存儲系統,其中,所述控制器被配置為利用取得的軟信息來對存儲在所述目標存儲器單元上的數據進行解碼。

7.  如權利要求5所述的存儲系統,其中,所述軟信息包括對數似然比 (LLR)。

8.  如權利要求1所述的存儲系統,其中,所述控制器進一步被配置為對所述目標存儲器單元執行多個讀取操作以確定存儲在所述目標存儲器單元中的數據。

9.  如權利要求1所述的存儲系統,其中,所述已知數據包括在讀取所述目標存儲器單元之前存儲在所述參考存儲器單元中的訓練數據。

10.  如權利要求1所述的存儲系統,其中,所述目標存儲器單元具有與所述參考存儲器單元的一個或多個屬性類似的一個或多個屬性。

11.  一種在包括非易失性固態存儲器陣列和控制器的數據存儲系統中讀取數據的方法,所述非易失性固態存儲器陣列具有被配置為存儲數據的多個存儲器單元,所述方法包括:
對參考存儲器單元執行多個讀取操作以獲得多個數據模式;
至少部分地基于所述數據模式和所述參考存儲器單元中的已知數據來分配概率值;
讀取目標存儲器單元;以及
基于分配的概率值來確定存儲在所述目標存儲器單元中的數據,
其中,所述方法是在所述控制器的控制下執行的。

12.  如權利要求11所述的方法,其中,對所述存儲器單元執行所述多個讀取操作包括使用多個電壓閾值。

13.  如權利要求11所述的方法,還包括:基于所述數據模式的出現數目來分配所述概率值。

14.  如權利要求13所述的方法,其中:
所述參考存儲器單元存儲位值X0至XN-1;以及
所述分配的概率值包括基于所述數據模式的出現數目確定的概率值,所述概率值:(1)與Xi相關聯,以及(2)與包括Xi和與Xi相鄰的一個或多個位值的位序列相關。

15.  如權利要求11所述的方法,還包括:通過將BCJR算法或SOVA算法應用于所述分配的概率值來取得軟信息。

16.  如權利要求15所述的方法,還包括:利用所取得的軟信息來對存儲在所述目標存儲器單元中的數據進行解碼。

17.  如權利要求15所述的方法,其中,所述軟信息包括對數似然比(LLR)。

18.  如權利要求11所述的方法,還包括:對所述目標存儲器單元執行多個讀取操作以確定存儲在所述目標存儲器單元中的數據。

19.  如權利要求11所述的方法,其中,所述已知數據包括在讀取所述目標存儲器單元之前存儲在所述參考存儲器單元中的訓練數據。

20.  如權利要求11所述的方法,其中,所述目標存儲器單元具有與所述參考存儲器單元的一個或多個屬性類似的一個或多個屬性。

21.  一種數據存儲系統,包括:
非易失性固態存儲器陣列,其包括被配置為存儲數據的多個存儲器單元;以及
控制器,其被配置為確定與存儲在所述非易失性存儲器陣列中的數據對應的對數似然比,所述控制器進一步被配置為:
對第一存儲器單元執行多個讀取操作,多個讀取的數據值形成多個數據模式;
基于所述數據模式來分配概率值;
利用分配的概率值來更新多個先前確定的概率值;以及
利用更新的概率值來讀取第二存儲器單元。

22.  如權利要求21所述的存儲系統,其中:
所述第一存儲器單元存儲位值X1至XN;以及
所述分配的概率值包括基于所述數據模式的出現數目確定的概率值,所述概率值:(1)與Xi相關聯,以及(2)與包括Xi和與Xi相鄰的一個或多個位值的位序列相關。

23.  如權利要求21所述的存儲系統,其中,所述控制器進一步被配置為利用多個電壓閾值來對所述第一存儲器單元執行所述多個讀取操作。

24.  如權利要求21所述的存儲系統,其中,所述第一存儲器單元包括第一存儲器頁面,以及第二存儲器單元包括與所述第一存儲器頁面相鄰的第二存儲器頁面。

25.  如權利要求21所述的存儲系統,其中,所述控制器被配置為在不使用從存儲于所述非易失性固態存儲器陣列中的訓練數據取得的信息的情況下來讀取所述第二存儲器單元。

26.  一種在包括非易失性固態存儲器陣列和控制器的數據存儲系統中讀取數據的方法,所述非易失性固態存儲器陣列具有被配置為存儲數據的多個存儲器單元,所述方法包括:
對第一存儲器單元執行多個讀取操作,多個讀取的數據值形成多個數據模式;
基于所述數據模式來分配概率值;
利用分配的概率值來更新多個先前確定的概率值;以及
利用更新的概率值來讀取第二存儲器單元,
其中,所述方法是在所述控制器的控制下執行的。

27.  如權利要求26所述的方法,其中:
所述第一存儲器單元存儲位值X1至XN;以及
所分配的概率值包括基于所述數據模式的出現數目確定的概率值,所述概率值:(1)與Xi相關聯,以及(2)與包括Xi和與Xi相鄰的一個或多個位值的位序列相關。

28.  如權利要求26所述的方法,還包括:利用多個電壓閾值來對所述第一存儲器單元執行所述多個讀取操作。

29.  如權利要求26所述的方法,其中,所述第一存儲器單元包括第一存儲器頁面,以及第二存儲器單元包括與所述第一存儲器頁面相鄰的第二存儲器頁面。

30.  如權利要求26所述的方法,其中,讀取所述第二存儲器單元包括在不使用從存儲于所述非易失性固態存儲器陣列中的訓練數據取得的信息的情況下來進行讀取。

說明書

說明書對存儲在固態存儲器中的數據進行解碼
技術領域
本公開涉及用于計算機系統的數據存儲系統。更特別地,本公開涉及對存儲在固態存儲器中的數據進行解碼。
背景技術
存儲在數據存儲系統中的數據通常被編碼以確保可靠性。當編碼的數據從存儲介質中取回時,解碼器用來從編碼的數據中獲得原始數據。軟決策解碼器能夠提高數據存儲系統的可靠性,并且減少數據出錯的數目。諸如對數似然比(LLR)信息的軟決策信息的生成具有挑戰性并且是耗時的。因此,期望的是提供用于生成軟決策信息的更高效的機制。
附圖說明
現在將參考附圖來描述實施本發明的各特征的系統和方法,在附圖中:
圖1A示出了根據本發明的一個實施例的主機系統和數據存儲系統的組合。
圖1B示出了根據本發明的另一實施例的主機系統和數據存儲系統的組合。
圖2示出了根據本發明的一個實施例的用戶數據的編碼器和解碼器。
圖3示出了根據本發明的一個實施例的數據檢測器和解碼器。
圖4示出了根據本發明的一個實施例的用于生成軟決策信息的表格。
圖5示出了根據本發明的一個實施例的用于生成軟決策信息的框架圖。
圖6A-6D是示出了根據本發明的一些實施例的讀取所存儲的數據的過程的流程圖。
圖7是示出了根據本發明的另一實施例的讀取所存儲的數據的過程的流程圖。
具體實施方式
雖然描述了一些實施例,但是這些實施例僅通過示例的方式提出,而不是要限制保護范圍。事實上,本文所描述的新穎的方法和系統可以以各種其他方式來實施。此外,本文所描述的方法和系統的形式上的各種省略、替代和改變可以不偏離保護范圍而做出。
概述
數據存儲系統能夠使用固態閃速存儲器以用于存儲數據。隨著數據存儲系統容量的增加,閃速存儲器的密度也在增大。隨著閃速存儲器的尺寸減小以及密度增大,單元間干涉可能不利地影響所存儲的數據的可靠性,并且增加數據出錯的數目。誤差校正碼能夠用來在將數據存儲在數據存儲系統中之前對數據進行編碼。然而,由于固態存儲器在使用過程中經過編程/擦除循環以及降級,所以變得更加難以正確地提取存儲在存儲器中的數據。數據出錯的一個原因在于,固態存儲器單元的不同存儲器狀態之間的裕度的減小,以及伴隨的困難在于難以設置用于讀取的適當的電壓閾值以便正確地取回所存儲的數據。將關于所存儲的數據的軟決策信息或軟信息提供給解碼器能夠提高數據存儲系統的可靠性并且減少數據出錯的數目。由于例如變化的P/E循環數目、變化的讀取數目以及變化的工作溫度,為針對固態存儲器生成諸如對數似然比(LLR)的軟決策信息帶來了挑戰。
本發明的一些實施例涉及通過執行多次讀取操作并且考慮到單元間干涉(ICI)來對存儲在固態存儲器陣列中的數據進行解碼。在一些實施例中,針對具有單元間干涉的固態存儲器生成諸如LLR的軟決策信息。軟決策信息能夠指示存儲器的可靠性。將軟決策信息提供給檢測器,檢測器進一步增強軟決策信息。在一個實施例中,軟決策信息是利用已知數據及其對應的多次讀取輸出而確定的。在一些實施例中,這是通過將已知的測試數據寫入存儲器的一部分,并且此后對已知數據進行檢測和解碼來實現的。在其他實施例中,這是通過對存儲在存儲器的部分中的先前未知的數據進行成功地檢測以及解碼來實現的。因此,改進了可靠性,并且提高了性能。
系統概述
圖1A示出了根據本發明的一個實施例的主機系統和數據存儲系統的組合100A。如圖所示,數據存儲系統120A(例如,固態驅動器)包括控制器130和非易失性固態存儲器陣列150。固態存儲器陣列150可以包括閃速集成電路、硫屬化物RAM(C-RAM)、相變存儲器(PC-RAM或PRAM)、可編程金屬單元RAM(PMC-RAM或PMCm)、雙向聯合存儲器(OUM)、阻變式RAM(RRAM)、NAND存儲器(例如,單級單元(SLC)存儲器、多級單元(MLC)存儲器、或其任意組合)、NOR存儲器、EEPROM、鐵電存儲器(FeRAM)、磁阻RAM(MRAM)、其他離散NVM(非易失性存儲器)芯片、或其任意組合。在一個實施例中,存儲器陣列150包括兩位MLCNAND存儲器。數據存儲系統120A可以進一步包括其他類型的存儲設備。
控制器130可以被配置為從主機系統110的存儲接口模塊112(例如,設備驅動器)接收數據和/或存儲存取命令。由存儲接口112傳送的存儲存取命令可以包括由主機系統110發布的寫數據命令和讀取數據命令。讀取命令和寫命令能夠指定用來訪問數據存儲系統120A的邏輯地址(例如,邏輯塊地址或LBA)。控制器130能夠執行固態存儲器陣列150中的所接收到的命令。
數據存儲系統120A能夠存儲由主機系統110傳送的數據。換言之,數據存儲系統120A能夠充當用于主機系統110的存儲器存儲設備。為便于該功能,控制器130能夠實現邏輯接口。邏輯接口能夠將數據存儲系統的存儲器作為能夠存儲用戶數據的一組邏輯地址(例如,連續地址)而呈現給主機系統110。在內部,控制器130能夠將邏輯地址映射到固態存儲器陣列150和/或其他存儲模塊中的各物理位置或地址。控制器130包括數據存儲與誤差校正模塊132,其被配置為將數據存儲在固態存儲器陣列150中并且從固態存儲器陣列150中取回數據,對數據進行編碼,對數據進行檢測以及解碼,確定從固態存儲器陣列取回的數據的完整性,如果需要,執行對所取回的數據進行誤差校正,并且執行數據存儲系統120A與主機系統110之間的數據傳輸。
圖1B示出了根據本發明的另一實施例的主機系統和數據存儲系統的組合100B。如圖所示,數據存儲系統120B(例如,混合磁盤驅動器)包括 控制器130、固態存儲器陣列150、以及包括磁介質164的磁存儲設備160。組合100B的這些組件以及其他組件在上文進行了描述。
對所存儲的數據進行解碼
圖2示出了根據本發明的一個實施例的編碼器和解碼器200。在一個實施例中,編碼和解碼是通過控制器130來執行的,諸如例如通過數據存儲與誤差校正模塊132。從主機系統110接收到的用戶數據由編碼器210進行編碼。在一個實施例中,編碼器210使用低密度奇偶校驗(LDPC)碼以用于編碼。在塊212中,被編碼的數據存儲在存儲器陣列150中。被編碼的數據可以被稱為碼字。此外,使用在信道上傳送數據的類比,存儲器陣列可以被視為通信信道,并且存儲數據可以被視為在信道上傳輸數據。存儲器陣列信道特征在于各種參數,例如單元間干涉、頁面間干涉、P/E循環的數目、磨損、工作溫度等。這些參數中的一個或多個將噪聲(或數據錯誤)引入到所存儲的數據中。
在塊220中對所存儲的數據進行檢測以及解碼。在一個實施例中,塊220是LDPC解碼器。在檢測器222中檢測從存儲器陣列150(或碼字)取回的數據。由于存儲器陣列150信道能夠將存儲在存儲器中的碼字變換成信道所使用的格式,所以檢測器222用來檢測從存儲器陣列信道取回的數據(即,檢測信道輸出),并且將取回的數據轉換回與當提供碼字用于存儲在存儲器陣列中時所使用的相同的格式。檢測器222使用由信道估計器226所取得的信息。信道估計器226能夠生成統計信息。檢測器222能夠使用來自信道估計器226的信息來生成軟決策信息,例如LLR。軟決策信息由解碼器224使用來對碼字進行解碼并且獲得用戶數據。
圖3示出了根據本發明的一個實施例的數據檢測器和解碼器300。在一個實施例中,通過控制器130來執行數據檢測和解碼,例如通過數據存儲與誤差校正模塊132來執行。數據檢測器和解碼器300接收從存儲器陣列150取回的編碼數據。檢測器310使用由統計模塊316和概率模塊314生成的諸如LLR的軟決策信息。軟決策信息被提供給解碼器312,解碼器可以是LDPC解碼器。解碼器312將檢測到的編碼數據(或碼字)進行解碼。統計模塊316基于對解碼的數據和/或其他數據的分析來生成概率信息。如 下面進一步描述的,在一個實施例中,統計模塊316通過分析在多次讀取方案中獲得的值中出現的位模式來生成概率信息,并且概率模塊314繼而基于統計模塊316的輸出來生成軟決策信息。
軟決策信息生成-由統計信息來生成概率信息
圖4示出了根據本發明的一個實施例的用于生成軟決策信息的表格400。在一個實施例中,表格400是由控制器130生成的,諸如例如通過數據存儲與誤差校正模塊132生成。在一個實施例中,通過利用變化的讀取電壓來在參考存儲器單元執行多次讀取,由統計模塊316來生成表格400,取決于實施例,參考存儲器位置可以是指存儲器陣列的不同部分。例如,存儲器陣列可以被劃分成塊,塊進一步被劃分成頁面。在一個實施例中,參考存儲器位置是存儲有已知數據的存儲器頁面。在其他實施例中,參考存儲器位置可以指單元、部分頁面、部分頁面的集合、頁面集合、塊、塊的集合、和/或存儲有已知數據的存儲器陣列位置的任何其他適合的群組。在一個實施例中,已知的數據對應于存儲在存儲器頁面中的訓練數據。在另一實施例中,已知的數據對應于成功解碼的數據。例如,數據存儲系統120A或120B可以讀取存儲器頁面的集合,并且已知數據可以對應于從集合中的一個頁面成功讀取的數據。在又一實施例中,訓練數據和成功解碼數據的組合能夠用作已知數據。
作為一個示例,統計模塊316所分析的存儲器位置可以是具有已知位值的參考頁面或者是被成功解碼的頁面。根據頁面的大小,可以有大約512個、1024個、2048個或更多的存儲器單元,每個單元與多個值相關聯,除了其原始已知值之外,多次讀取中的每一個有一個值。在一個實施例中,這些值可以對應于位,而在其他實施例中,值可以對應于兩個以上的位。這在下面的示例表格(表格1)中示出。
單元0單元1單元2單元3單元4單元5單元N已知值0001110讀取第1次0000010
讀取第2次0001010讀取第3次0101111
表格1
返回圖4,表格400的列1中的圖例對應于存儲器陣列150位置的近鄰,例如,存儲器單元及其相鄰的單元。例如,存儲器陣列位置Xi(例如,一個單元)可以具有與Xi-1和Xi+1緊近鄰。例如,在上表中,單元0-2中的加粗位可以被視為三元組{Xi-1,Xi,Xi+1},Xi對應于單元1。符號L表示與信道參數有關的信息,在該情況下所述信道參數集中于相鄰單元對所討論的單元(Xi)所產生的影響。在一個實施例中,存儲器陣列位置是存儲二進制數據的單一位的單元,該二進制數據的單一位取0或1中的一個值。因此,對于相鄰存儲器位置的序列{Xi-1,Xi,Xi+1}(或X,L),存在不同位值或模式的八個(或23)組合。在表格400的列1中反映了這些不同的組合。上面的單元0-2(值為“000”)是在表格400的單元A-1中所反映的組合的一個實例。
存儲器位置Xi可以被多次讀取。在一個實施例中,針對讀取固態存儲器,存儲器位置可以在多個電壓閾值下讀取三次。三次讀取的閾值可以不同、相同,或者一個閾值能夠用于三次讀取中的兩次讀取,而另一閾值能夠用于其余的讀取操作。對于存儲在{Xi-1,Xi,Xi+1}中的各個位模式,在多次讀取期間獲得的值的總計數顯示在表格400的列3至列10中。列3至列10中的每個框指示從多次讀取獲得的值內的特定位模式出現數目的計數。例如,表格400的行A、列4中的值“1”指示,在從多次讀取返回的值中,對于中間位(Xi)三次讀取的相鄰位“000”的模式,對于第一次讀取、第二次讀取和第三次讀取(例如,使用三個讀取閾值),出現一次返回值0、0和1。如在模式“000”中所反映的,中間存儲器位置(或Xi)存儲值0。這對應于上述示例表格中的單元0-2,并且單元1的多次讀取讀取數值對于三次讀取分別為0、0、1。換言之,表格400的行A、列4中的值“1”指示,在所讀取的存儲器頁面中數百位或數千位中,該特定模式僅在單元1中出現一次。在一個實施例中,列3至列10中的位可以被排序以分別指示第三次讀取、第二次讀取和第一次讀取,或者任何其他適合的次序。
表格400的列2對應于存儲在存儲器位置序列{Xi-1,Xi,Xi+1}中的列1中已知數據的特定位模式出現的總數。例如,表格400的行A、列2中的值“2”指示,相鄰位“000”的模式在該已知數據中出現了兩次。作為另一示例,表格400的行F、列2中的值“9”指示,相鄰位“101”的模式在已知數據中出現了九次。
在一個實施例中,表格400中的數據用來生成用于生成軟決策信息的概率信息。與Li={Xi-1,Xi+1}相鄰的存儲器位置Xi的多次讀取輸出Yi的概率根據下式確定:
P(Yi|Xi,Li)=#(Yi,Xi,Li)#(Xi,Li)---(1)]]>
其中,#(Yi,Xi,Li)是存儲在(Xi,Li)中的位出現的總數,對應的多次讀取值為Yi(即,如列3-10中所指示),而#(Xi,Li)是模式(Xi,Li)出現的總數(如列2所指示)。例如,假設相鄰位{Xi-1,Xi,Xi+1}的存儲數據模式為“000”的情況下存儲器Xi位置的多次讀取輸出Y為“001”的概率能夠確定如下。表格400的行A、列4對應于三次讀取存儲器位置Xi的序列“001”。如表格中的值“1”所指示的,序列“001”出現一次。在存儲器頁面的已知位序列中相鄰位“000”的模式出現兩次,如行A、列2中的“2”所指示的。因此,P(Yi=001|Xi=0,[Xi-1=0,Xi+1=0])是1/2(或0.5)。
在一些實施例中,使用不是存儲器位置Xi的緊近鄰的相鄰存儲器位置。可以使用任何適當數量的相鄰存儲器位置。在一些實施例中,使用非相鄰位置。在一些實施例中,對存儲器位置Xi執行的讀取的次數是任意整數值,例如小于三或大于三的值。在一些實施例中,對于所有的讀取操作使用相同的讀取閾值,或者對于多個讀取操作使用相同的電壓閾值,同時對于其他讀取操作使用一個或多個不同的電壓閾值。
軟決策信息生成-利用基于框架的算法由概率信息來生成軟決策信息
在一個實施例中,一旦由統計模塊316生成概率值,則概率模塊314計算用于解碼的軟決策信息(例如LLR)。圖5示出了根據本發明的一個實施例的用于生成軟決策信息的框架圖500。框架500能夠由控制器130生成,諸如例如通過數據存儲與誤差校正模塊132來生成。在一個實施例中,框 架500由檢測器310使用。框架500能夠用來利用軟輸出維特比算法(SOVA)、BCJR算法等來得到軟決策信息。
在一個實施例中,框架500能夠用來找到最可能的路徑,其對應于存儲在例如存儲器頁面的存儲器位置中的最可能的值序列。如圖5所示,狀態510對應于在時刻k存儲在(Xi,Li)(或{Xi-1,Xi,Xi+1})中的位,而狀態530對應于在時刻k+1存儲在(Xi+1,Li+1)(或{Xi,Xi+1,Xi+2})中的位。轉換520對應于當從存儲器中讀取下一位(或數據值)時從狀態510到狀態520所做的轉換。例如,假設數據存儲系統120A或120B讀取包括存儲有單獨的數據位的多個存儲器位置的存儲器頁面。存儲器頁面可以是存儲已知數據的參考頁面或者是其數據要被檢測和解碼的目標頁面。數據存儲系統讀取與存儲在單獨的存儲器位置中的數據對應的位序列b0,b1,b2,...,bM-1。然后,通過例如檢測器310來檢測該原始位序列,檢測器310能夠將位序列轉換成解碼器312使用的軟決策信息,解碼器312能夠將軟決策信息轉換成存儲于存儲器頁面中的用戶數據。利用由統計模塊316生成的概率信息,檢測器310能夠找到使得諸如讀取錯誤的一個或多個存儲器錯誤的概率最小化的路徑。
例如,假設在給定時刻k,對諸如存儲器單元的存儲器位置讀取三次,并且通過讀取操作來返回序列“111”。也即,第一讀取操作、第二讀取操作和第三讀取操作返回值“1”作為存儲在存儲器位置上的值。框架500能夠用來找到位序列{Xi-1,Xi,Xi+1}和{Xi,Xi+1,Xi+2},它們對應于時刻k和時刻k+1的參考存儲器位置(Xi)及其近鄰。來自群組510和530的起始狀態和結束狀態能夠被確定而使得讀取出錯的概率被降低或最小化。起始狀態510基于初始值以及基于下面引入的前向概率α和后向概率β而被分配概率。在一個實施例中,初始地(例如,在時刻0處),所有起始狀態510可以被分配相等的概率。假設在時刻k,具有最高概率的起始狀態是狀態512,其與位模式“100”相關聯。下一狀態(在時刻k+1)能夠通過遵循具有最高概率的路徑來確定。參考表格400,列10對應于存儲器單元Xi的“111”多次讀取序列的信息。最大概率是與行C、列10相關聯的3/8(即,行C、列10存儲“3”,而且行C、列2存儲“8”),其對應于存儲在相鄰存儲器位置{Xi,Xi+1,Xi+2}上的位模式“010”。因此,下一狀態是“010”或狀 態532,因為與轉換522相關聯的概率是3/8。注意的是,在圖示的實施例中,新的位(Xi+2)被附加在位序列的最左側。在另一實施例中,新的位可以被附加在最右側、中間等。
在一個實施例中,對于M單元存儲器頁面的存儲器單元X0,X1,X2,...,XM-1,可以生成框架500。在該情況下,框架500可以具有M+1狀態組以及狀態組之間的M個轉換。每個存儲器單元Xi可以被讀取多次以產生多次讀取值。利用表格400中的信息將權重分配給轉換530。例如,如上所說明的,權重3/8被分配給狀態512與532之間的轉換522。在另一實施例中,按權重標定的0與1之間的值被分配給狀態512與532之間的轉換522。
在一個實施例中,BCJR算法能夠用于取得軟決策信息,例如LLR。BCJR算法使用表格400和框架500中的信息。使s為時刻‘t’的框架狀態,s’為時刻‘t+1’的框架狀態,其中s’通過轉換連接到s。使γt(s,s')表示分配給轉換520的分支度量或權重。給定利用表格400按經驗計算的狀態對(s,s’)的轉換位,分支度量可以是接收的樣本Y(t)的條件概率。例如,分配給轉換522的分支度量或權重是3/8。前向概率(α)和后向概率(β)可以被遞歸地計算如下:
αt+1(s)=Σsαt(s)γt(s,s)---(2)]]>
βt(s)=Σsβt+1(s)γt(s,s)---(3)]]>
γt(s,s')=Pr(Y(t)|X(t))(4)
LLR可以被計算如下:
LLR(Xk)=log10(Pr(Xk=0)Pr(Xk=1))=Σ(s,s)=0αk+1(s)γk(s,s)βk(s)Σ(s,s)=1αk+1(s)γk(s,s)βk(s)---(5)]]>
在一個實施例中,諸如LLR的軟決策信息用作解碼器的輸入,解碼器對存儲在例如目標存儲器頁面的目標存儲器位置上的數據進行解碼。例如,LLR(Xk)可以由解碼器312來使用。通過讀取和檢測存儲在具有與目標存儲器位置的屬性類似的屬性的參考存儲器位置上的已知數據,來生成軟決策信息。例如,同一存儲器塊中的存儲器頁面很可能具有與這些已經經歷過相同或相似P/E循環數、磨損、單元間干涉、頁面間干涉、工作或環境溫 度等的頁面具有相似的屬性。作為另一示例,在第一頁面和第二頁面(可以是相鄰頁面或者可以不是相鄰頁面)內具有相同位置的存儲器位置很可能具有相似的屬性。
軟決策信息生成和應用過程
圖6A-6D是示出了根據本發明的一些實施例的讀取所存儲的數據的過程的流程圖。圖示的過程可以由控制器130和/或數據存儲與誤差校正模塊132來執行。圖6A是示出了在塊602中將已知的訓練數據存儲在存儲器陣列150中的過程600A的流程圖。已知的訓練數據可以存儲在一個或多個存儲器位置上。例如,已知的訓練數據可以存儲在存儲器陣列150中的每個塊的一個或多個頁面中。作為另一示例,已知的訓練數據可以存儲在從每N個塊中選出的一個或多個頁面中,其中N是整數。例如,已知的訓練數據可以存儲在從三個相鄰塊中選出的頁面中。
圖6B是示出了使用根據過程600A存儲的已知訓練數據或者使用已經被成功解碼的數據來讀取所存儲的數據的過程600B的流程圖。在一個實施例中,過程600B對存儲在目標存儲器位置上的數據進行檢測以及解碼。在塊604中,過程600B對參考存儲器位置執行多次讀取操作。參考存儲器位置可以存儲已知的訓練數據(例如,其可以根據過程600A來存儲)。在一個實施例中,參考存儲器位置可以是存儲器頁面。在另一實施例中,參考存儲器位置可以是部分頁面、頁面、頁面數、塊、塊數和類似物或者其任意組合。過程600B對參考存儲器位置執行多次讀取操作,從而獲得存儲在存儲器位置上的多個數據模式。例如,過程600B針對參考存儲器頁面的存儲器單元X0至XM-1獲得多次讀取值。因為參考數據是已知的,所以過程600B能夠構造類似于表格400的表格。過程600B轉換到塊606,在塊606中該過程基于已知的訓練數據并且基于數據模式來分配概率值。在一個實施例中,過程600B生成類似于框架500的框架并且將權重分配給框架。根據來自表格的概率值來確定權重。利用該框架,過程600B能夠確定軟決策信息,例如LLR。
過程600B轉換到塊608,在塊608中,該過程對目標存儲器位置執行一個或多個讀取操作。在一個實施例中,在塊608中執行一次或多次讀取 操作之前,能夠執行塊604和606中的操作。目標存儲器位置可以是存儲器頁面。在另一實施例中,目標存儲器位置可以是部分頁面、頁面、頁面數、塊、塊數和類似物或其任意組合。在一個實施例中,目標存儲器位置可以是具有與參考存儲器頁面的屬性類似的屬性的存儲器頁面。在一個實施例中,過程600B在塊608中執行單次讀取操作,并且判定該操作是否導致發生讀取錯誤。如果沒有發生錯誤,則過程600B不執行多次讀取。另一方面,如果發生一個或多個錯誤,則過程600B對目標存儲器位置執行多次讀取操作。例如,過程600B能夠利用不同的電壓閾值來若干次(例如,三次)地讀取目標存儲器頁面中的每個單元。
過程600B轉換到塊610,其中其基于在塊606中分配的概率值來確定所存儲的數據。在一個實施例中,過程600B利用在塊606中生成的LLR來對所存儲的數據進行檢測和解碼。過程600B轉換到塊612,其中其將存儲在目標存儲器位置上的用戶數據提供給主機系統110。任選地,在轉換到塊610之前,過程600B能夠判定在讀取目標存儲器位置的同時是否發生一個或多個讀取錯誤。任選的對讀取錯誤的檢查尤其適用于目標存儲器位置被讀取多次的情況。如果沒有遇到讀取錯誤,則過程600B能夠轉換到塊612,其中其將存儲在目標存儲器位置上的用戶數據返回到主機系統110。如果過程600B確定在讀取目標存儲器位置期間已經發生了一個或多個讀取錯誤,則過程可以轉換到塊610。在一些實施例中,過程600B能夠生成并且使用用于生成與執行對存儲器位置的單次讀取和多次讀取對應的軟決策信息的表格。例如,可以生成并且使用類似于表格400的多個表格。
圖6C是示出了用于執行塊612的操作(即,確定存儲在目標存儲器位置上的數據)的過程600C的流程圖。在塊612A中,過程600C通過再次對已經取得的數據應用檢測來確定所存儲的數據。例如,在塊608中已經讀取了存儲的數據,并且基于概率值的檢測和/或解碼可以再次應用于該數據。另一方面,在塊612B中,過程600C、600D可以再次讀取存儲在目標存儲器位置上的數據,并且將檢測和/或解碼應用于再次讀取的數據。在一個實施例中,過程600C試圖在轉換到塊612B之前執行塊612A中的操作,其中過程再次讀取目標存儲器位置。
圖6D是示出了利用根據過程600A的已知訓練數據或者使用已經成功 解碼的數據來讀取存儲數據的過程600D的流程圖。在一個實施例中,過程600D對存儲在諸如存儲器頁面的目標存儲器位置上的數據進行檢測和解碼。在塊620中,過程600D讀取目標存儲器位置。在塊622中,過程600D判定在讀取目標存儲器位置的同時是否發生一次或多次讀取錯誤。如果尚未遇到讀取錯誤,則過程600D已經成功地對存儲在目標存儲器位置上的數據進行了檢測和解碼。過程600D轉換到塊632,在塊632中所取得的數據被返回到主機系統110。
如果過程600D在塊622中遇到一個或多個讀取錯誤,則過程轉換到塊624和626,在這些塊中執行與圖6B的塊604和608中執行操作相似的操作。過程600D隨后轉換到塊628,在該塊中,該過程對目標存儲器位置執行多次讀取操作。在一個實施例中,在過程執行塊624和626的操作的同時,過程600D執行塊628的操作。在另一實施例中,在過程執行塊624和626的操作之前,過程600D執行塊628的操作。過程600D轉換到塊630,在該塊中基于在塊626中分配的概率值和在塊628中確定的多次讀取值來確定存儲在目標存儲器位置上的數據。在塊632中,該過程將取回的數據返回到主機系統。
圖7是示出了根據本發明的另一實施例的讀取所存儲的數據的過程700的流程圖。圖示的過程可以由控制器130和/或數據存儲與誤差校正模塊132來執行。在一個實施例中,過程700對存儲在諸如存儲器頁面的存儲器位置上的數據進行檢測和解碼,作為對多個存儲器位置執行讀取命令的部分。存儲器位置可以是相鄰的,例如連續的,或者可以隨機地定位在存儲器陣列150中。
在塊702中,過程700對諸如存儲器頁面的第一存儲器位置執行讀取操作。過程700轉換到塊704,在該塊中該過程對第一存儲器位置執行多次讀取操作并且確定多個數據模式。這些操作可以類似于如上所述的塊604中執行的那些操作。過程700轉換到塊706,在該塊中,該過程基于在塊704中確定的數據模式來分配概率值。在一個實施例中,在塊704中已經對存儲在第一存儲器位置上的數據進行成功地檢測和解碼。在塊706中,過程700能夠基于數據模式以及基于成功解碼的數據(或已知數據)來分配概率值。在塊706中執行的操作可以類似于如上所述在塊606中執行的那 些操作。
過程700轉換到塊708,在該塊中,該過程利用在塊706中分配的概率值來更新先前確定的概率值。在一個實施例中,過程700能夠對多個存儲器位置執行讀取操作,并且,每當該過程對所存儲的數據進行成功地解碼和檢測時,該過程都能夠更新概率值,例如軟決策數據(例如,LLR)。這樣,最新的概率值用于對存儲在當前被讀取的存儲器位置中的數據進行檢測和/或解碼。在另一實施例中,過程700在任何適當的時機,例如在對多個存儲器位置進行了成功地檢測和解碼之后,更新概率值。
過程700轉換到塊710,在該塊中,該過程讀取第二存儲器位置。在一個實施例中,第二存儲器位置是作為第一存儲器頁面的近鄰的第二存儲器頁面。在另一實施例中,第二存儲器位置是存儲器陣列150中的任意位置。利用更新的概率值來對第二存儲器位置進行檢測和解碼。概率值可以是軟決策數據,例如LLR。
在一個實施例中,過程700能夠將存儲在第一存儲器位置上的被成功解碼和/或檢測的數據作為已知數據。這樣,該過程不使用存儲在存儲器陣列150中的已知訓練數據或者不依賴于從該數據取得的信息。在另一實施例中,除了被成功解碼和/或檢測的數據之外或者作為其替代,過程700使用已知的訓練數據。
結論
公開的實施例能夠用于估計存儲在固態存儲器陣列單元中的電荷量,而不需要在存儲器陣列中安裝額外的傳感器、模數轉換器等。增加這樣的額外組件與存儲器陣列的成本的增加和容量的降低相關聯。對存儲器單元執行多次讀取操作以及基于讀取操作的結果來計算概率能夠提供用于對所存儲的數據進行檢測和解碼的軟決策信息。因此,改進了可靠性,提高了性能。
其他變型例
本領域的技術人員將理解的是,在一些實施例中,除了LDPC解碼器之外和/或作為LDPC解碼器的替代,可以使用其他適合的解碼器。例如, 能夠使用turbo解碼器、Hamming解碼器、Reed-Solomon解碼器、BCH解碼器等等。除了LLR之外的或者連同LLR一起的軟決策信息能夠被生成并且提供給解碼器。任何適當的方法,例如馬爾科夫模型、隱馬爾科夫模型、Viterbi算法、SBGTBCJR、log-mapBCJR、max-log-mapBCJR等能夠用來取得軟決策信息。除了單元間干涉之外或者作為單元間干涉的替代,本公開應用于考慮到針對以下特性中的一個或多個的統計值和/或概率值解碼并且生成針對以下特性中的一個或多個的統計值和/或概率值,所述以下特性中的一個或多個為頁面間干涉、塊間干涉、P/E計數、磨損級別、工作溫度,等等。用戶數據能夠涵蓋由主機系統提供的數據、通過數據存儲系統在內部生成的數據等、和/或其組合。在公開的過程中例如在圖6A-6D和圖7中所示的過程中所采取的實際步驟可以不同于圖中所示的那些步驟。可以使用額外的系統組件,并且可以組合或省略公開的系統組件。根據實施例,可以去除上述一些步驟,添加其他步驟。因此,本公開的范圍旨在僅參考隨附的權利要求書來進行限定。
雖然已經描述了一些實施例,但是這些實施例僅通過示例的方式來提供,而不意在限制保護范圍。事實上,本文所描述的新穎的方法和系統可以通過其他多種方式來實施。此外,本文所描述的方法和系統的形式上的各種省略、替代和改變可以在不偏離保護思想的情況下做出。隨附的權利要求及其等同布置意在涵蓋落入保護范圍和保護思想內的這些形式或改進。例如,本文所公開的系統和方法能夠應用于硬盤驅動器、混合硬盤驅動器等。此外,可以另外地或者可替代地使用其他存儲形式(例如,DRAM或SRAM、電池備份的易失性DRAM或SRAM設備、EPROM、EEPROM存儲器等)。作為另一示例,在圖中示出的各組件可以被實現為處理器上的軟件和/或固件、ASIC/FPGA、或專用硬件。而且,上述公開的具體實施例的特征和屬性可以以多種方式組合而形成額外的實施例,所有這些都落在本公開的范圍內。雖然本公開提供了一些優選的實施例和應用,但是對于本領域的普通技術人員而言顯而易見的是其他實施例,包括沒有提供本文闡述的所有特征和優點的實施例,也落在本公開的范圍內。因此,本公開的范圍旨在僅參考隨附權利要求書來進行限定。

關 鍵 詞:
存儲 固態 存儲器 中的 數據 進行 解碼
  專利查詢網所有資源均是用戶自行上傳分享,僅供網友學習交流,未經上傳用戶書面授權,請勿作他用。
關于本文
本文標題:對存儲在固態存儲器中的數據進行解碼.pdf
鏈接地址:http://www.rgyfuv.icu/p-6409628.html
關于我們 - 網站聲明 - 網站地圖 - 資源地圖 - 友情鏈接 - 網站客服客服 - 聯系我們

[email protected] 2017-2018 zhuanlichaxun.net網站版權所有
經營許可證編號:粵ICP備17046363號-1 
 


收起
展開
山东11选5中奖结果走势图