本技術涉及存儲器,尤其涉及一種存儲器系統(tǒng)的糾錯方法、存儲器系統(tǒng)及存儲器控制器。
背景技術:
1、隨著存儲技術的發(fā)展,3d?nand閃存(flash)從能夠存儲1比特(bit)信息的單層級單元(slc,singe?level?cell)、能夠存儲2bit信息的雙層級單元(dlc,double?levelcell)類型發(fā)展到能夠存儲3bit信息的三層級單元(tlc,triple?level?cell),甚至能夠存儲4bit信息的四層級單元(qlc,quadruple?level?cell);并且堆疊層數(shù)也越來越多。面對層數(shù)及存儲位數(shù)越來越多的存儲器裝置,為了增強存儲器裝置存儲的數(shù)據(jù)的可靠性,在讀取數(shù)據(jù)時通常采用低密度奇偶校驗(ldpc,low?density?parity?code)進行糾錯。但隨著3dnand?flash的結構的復雜及存儲更多的數(shù)據(jù),其包含的錯誤類型越來越復雜,采樣目前的糾錯方式,糾錯速度慢,效率降低,嚴重影響讀取速率。
技術實現(xiàn)思路
1、有鑒于此,本技術實施例提供一種存儲器系統(tǒng)的糾錯方法、存儲器系統(tǒng)及存儲器控制器,能夠提升糾錯的速率。
2、第一方面,本技術實施例提供一種存儲器系統(tǒng)的糾錯方法,所述方法包括:
3、在對第一硬讀取數(shù)據(jù)進行硬判決譯碼失敗后,根據(jù)所述第一硬讀取數(shù)據(jù)和緩存的第二硬讀取數(shù)據(jù)獲得對應的第一軟數(shù)據(jù);其中,所述第一硬讀取數(shù)據(jù)為所述存儲器系統(tǒng)根據(jù)第一硬讀取電壓讀取的;所述第二硬讀取數(shù)據(jù)是在讀取所述第一硬讀取數(shù)據(jù)前所述存儲器系統(tǒng)根據(jù)第二硬讀取電壓讀取的;
4、根據(jù)所述第一軟數(shù)據(jù)和所述第一硬讀取數(shù)據(jù)進行第一軟判決譯碼,或根據(jù)所述第一軟數(shù)據(jù)和所述第二硬讀取數(shù)據(jù)進行第一軟判決譯碼;
5、其中,所述第一硬讀取電壓為與初始讀取電壓具有一定偏移量的多個重讀電壓中的一個;所述第二硬讀取電壓為所述初始讀取電壓或所述多個重讀電壓中除所述第一硬讀取電壓之外的重讀電壓。
6、在上述方案中,所述方法還包括:
7、緩存所述第一硬讀取數(shù)據(jù);
8、在所述第一軟判決譯碼失敗后,根據(jù)第三硬讀取電壓讀取第三硬讀取數(shù)據(jù);并對所述第三硬讀取數(shù)據(jù)進行所述硬判決譯碼;
9、在對所述第三硬讀取數(shù)據(jù)進行所述硬判決譯碼失敗后,根據(jù)緩存的所述第一硬讀取數(shù)據(jù)和所述第三硬讀取數(shù)據(jù)獲得對應的第二軟數(shù)據(jù);
10、根據(jù)所述第二軟數(shù)據(jù)和所述第一硬讀取數(shù)據(jù)進行所述第一軟判決譯碼,或根據(jù)所述第二軟數(shù)據(jù)和所述第三硬讀取數(shù)據(jù)進行所述第一軟判決譯碼;
11、其中,所述第三硬讀取電壓為所述多個重讀電壓中除所述第一硬讀取電壓和所述第二硬讀取電壓之外的一個。
12、在上述方案中,所述方法還包括:在出現(xiàn)以下之一的情況:所述硬判決譯碼成功、所述第一軟判決譯碼成功、硬讀取重試次數(shù)達到第一設定閾值,結束第一階段的錯誤糾正碼ecc糾錯。
13、在上述方案中,所述根據(jù)所述第一硬讀取數(shù)據(jù)和緩存的第二硬讀取數(shù)據(jù)獲得對應的第一軟數(shù)據(jù),包括:將所述第一硬讀取數(shù)據(jù)與所述第二硬讀取數(shù)據(jù)進行異或運算,獲得所述第一軟數(shù)據(jù)。
14、在上述方案中,所述方法還包括:
15、根據(jù)所述第一硬讀取數(shù)據(jù)包含錯誤位的第一數(shù)量和所述第二硬讀取數(shù)據(jù)包含錯誤位的第二數(shù)量選擇是根據(jù)所述第一軟數(shù)據(jù)和所述第一硬讀取數(shù)據(jù)進行第一軟判決譯碼,還是根據(jù)所述第一軟數(shù)據(jù)和所述第二硬讀取數(shù)據(jù)進行第一軟判決譯碼。
16、在上述方案中,硬讀取數(shù)據(jù)包含的錯誤位的數(shù)量用綜合權值來衡量,且所述綜合權值越大,所述硬讀取數(shù)據(jù)包含的錯誤位的數(shù)量越多;所述根據(jù)所述第一硬讀取數(shù)據(jù)包含錯誤位的第一數(shù)量和所述第二硬讀取數(shù)據(jù)包含錯誤位的第二數(shù)量選擇是根據(jù)所述第一軟數(shù)據(jù)和所述第一硬讀取數(shù)據(jù)進行第一軟判決譯碼,還是根據(jù)所述第一軟數(shù)據(jù)和所述第二硬讀取數(shù)據(jù)進行第一軟判決譯碼,包括:
17、獲得所述第一硬讀取數(shù)據(jù)對應的第一綜合權值;
18、獲得所述第二硬讀取數(shù)據(jù)對應的第二綜合權值;
19、比較所述第一硬讀取數(shù)據(jù)對應的第一綜合權值與所述第二硬讀取數(shù)據(jù)對應的第二綜合權值;
20、在比較結果包括所述第一綜合權值小于所述第二綜合權值時,根據(jù)所述第一軟數(shù)據(jù)和所述第一硬讀取數(shù)據(jù)進行第一軟判決譯碼;
21、在所述比較結果包括所述第一綜合權值大于所述第二綜合權值時,根據(jù)所述第一軟數(shù)據(jù)和所述第二硬讀取數(shù)據(jù)進行第一軟判決譯碼;
22、在所述比較結果包括所述第一綜合權值等于所述第二綜合權值時,根據(jù)所述第一軟數(shù)據(jù)和所述第一硬讀取數(shù)據(jù)進行第一軟判決譯碼,或根據(jù)所述第一軟數(shù)據(jù)和所述第二硬讀取數(shù)據(jù)進行第一軟判決譯碼。
23、在上述方案中,所述方法還包括:
24、在根據(jù)所述第一軟數(shù)據(jù)和所述第一硬讀取數(shù)據(jù)進行第一軟判決譯碼或根據(jù)所述第一軟數(shù)據(jù)和所述第二硬讀取數(shù)據(jù)進行第一軟判決譯碼后,刪除緩存的所述第二硬讀取數(shù)據(jù);
25、在根據(jù)所述第二軟數(shù)據(jù)和所述第一硬讀取數(shù)據(jù)進行所述第一軟判決譯碼,或根據(jù)所述第二軟數(shù)據(jù)和所述第三硬讀取數(shù)據(jù)進行所述第一軟判決譯碼后,刪除緩存的所述第一硬讀取數(shù)據(jù)。
26、在上述方案中,所述方法還包括:
27、在所述第一階段的ecc糾錯失敗后,執(zhí)行第二階段的ecc糾錯,其中,
28、所述第二階段的ecc糾錯包括:執(zhí)行至少一次第二軟判決譯碼。
29、在上述方案中,所述方法還包括:
30、確定一組軟讀取電壓;所述一組軟讀取電壓包括最優(yōu)讀取電壓和相對于最優(yōu)讀取電壓具有一定偏移的多個軟重讀電壓;
31、根據(jù)所述一組軟讀取電壓中的軟讀取電壓讀取第四硬讀取數(shù)據(jù)和第三軟數(shù)據(jù);且根據(jù)所述第四硬讀取數(shù)據(jù)和第三軟數(shù)據(jù)進行所述第二軟判決譯碼;
32、其中,在出現(xiàn)以下之一的情況:所述第二軟判決譯碼成功、軟讀取重試次數(shù)達到第二設定閾值,結束所述第二階段的ecc糾錯。
33、在上述方案中,所述方法還包括:
34、在所述第二階段的ecc糾錯失敗后,執(zhí)行第三階段的獨立nand冗余陣列rain糾錯。
35、在上述方案中,所述方法還包括:
36、在所述第三階段的rain糾錯失敗后,輸出用于表征糾錯失敗的指示信息。
37、在上述方案中,所述方法還包括:
38、在出現(xiàn)以下之一的情況:所述第一階段的ecc糾錯成功、所述第二階段的ecc糾錯成功、所述第三階段的rain糾錯成功時,輸出被成功糾錯的讀取數(shù)據(jù)。
39、在上述方案中,所述一組軟讀取電壓中各讀取電壓之間的電壓間隔與執(zhí)行所述硬判決譯碼所采用的一組硬讀取電壓中的硬讀取電壓之間的電壓間隔相同,其中,所述一組硬讀取電壓包括所述初始讀取電壓和所述多個重讀電壓。
40、第二方面,本技術實施例還提供一種存儲器系統(tǒng),包括:存儲器裝置,用于存儲數(shù)據(jù);
41、存儲器控制器,與所述存儲器裝置耦接,用于:在對第一硬讀取數(shù)據(jù)進行硬判決譯碼失敗后,根據(jù)所述第一硬讀取數(shù)據(jù)和緩存的第二硬讀取數(shù)據(jù)獲得對應的第一軟數(shù)據(jù);其中,所述第一硬讀取數(shù)據(jù)為所述存儲器系統(tǒng)根據(jù)第一硬讀取電壓讀取的;所述第二硬讀取數(shù)據(jù)是在讀取所述第一硬讀取數(shù)據(jù)前所述存儲器系統(tǒng)根據(jù)第二硬讀取電壓讀取的;
42、根據(jù)所述第一軟數(shù)據(jù)和所述第一硬讀取數(shù)據(jù)進行第一軟判決譯碼,或根據(jù)所述第一軟數(shù)據(jù)和所述第二硬讀取數(shù)據(jù)進行第一軟判決譯碼;
43、其中,所述第一硬讀取電壓為與初始讀取電壓具有一定偏移量的多個重讀電壓中的一個;所述第二硬讀取電壓為所述初始讀取電壓或所述多個重讀電壓中除所述第一硬讀取電壓之外的重讀電壓。
44、在上述方案中,所述存儲器控制器,包括:處理器、內(nèi)存、硬譯碼器和軟譯碼器,其中;
45、所述處理器,用于:根據(jù)所述第一硬讀取電壓從所述存儲器裝置中讀取所述第一硬讀取數(shù)據(jù);在讀取所述第一硬讀取數(shù)據(jù)前,根據(jù)所述第二硬讀取電壓讀取所述第二硬讀取數(shù)據(jù);并將所述第二硬讀取數(shù)據(jù)緩存到所述內(nèi)存;
46、所述硬譯碼器,用于:對所述第一硬讀取數(shù)據(jù)進行所述硬判決譯碼;
47、所述處理器,還用于:在對第一硬讀取數(shù)據(jù)進行所述硬判決譯碼失敗后,根據(jù)所述第一硬讀取數(shù)據(jù)和緩存的第二硬讀取數(shù)據(jù)獲得對應的第一軟數(shù)據(jù);向所述軟譯碼器發(fā)送所述第一硬讀取數(shù)據(jù)或所述第二硬讀取數(shù)據(jù);向所述軟譯碼器發(fā)送所述第一軟數(shù)據(jù);
48、所述軟譯碼器,用于:根據(jù)所述第一軟數(shù)據(jù)和所述第一硬讀取數(shù)據(jù)進行第一軟判決譯碼,或根據(jù)所述第一軟數(shù)據(jù)和所述第二硬讀取數(shù)據(jù)進行第一軟判決譯碼。
49、在上述方案中,所述內(nèi)存,還用于緩存所述第一硬讀取數(shù)據(jù);
50、所述處理器,還用于:在所述第一軟判決譯碼失敗后,根據(jù)第三硬讀取電壓讀取第三硬讀取數(shù)據(jù);
51、所述硬譯碼器,還用于:對所述第三硬讀取數(shù)據(jù)進行所述硬判決譯碼;
52、所述處理器,還用于:在對所述第三硬讀取數(shù)據(jù)進行所述硬判決譯碼失敗后,根據(jù)緩存的所述第一硬讀取數(shù)據(jù)和所述第三硬讀取數(shù)據(jù)獲得對應的第二軟數(shù)據(jù);
53、所述軟譯碼器,還用于:根據(jù)所述第二軟數(shù)據(jù)和所述第一硬讀取數(shù)據(jù)進行所述第一軟判決譯碼,或根據(jù)所述第二軟數(shù)據(jù)和所述第三硬讀取數(shù)據(jù)進行所述第一軟判決譯碼。
54、在上述方案中,所述處理器,還用于:判斷是否出現(xiàn)包括以下之一的情況:所述硬判決譯碼成功、所述第一軟判決譯碼成功、硬讀取重試次數(shù)達到第一設定閾值;若出現(xiàn),結束第一階段的錯誤糾正碼ecc糾錯。
55、在上述方案中,所述軟譯碼器,還用于:在所述第一階段的ecc糾錯失敗后,執(zhí)行第二階段的ecc糾錯,其中,所述第二階段的ecc糾錯包括:執(zhí)行至少一次第二軟判決譯碼;其中,在出現(xiàn)以下之一的情況:所述第二軟判決譯碼成功、軟讀取重試次數(shù)達到第二設定閾值,結束所述第二階段的ecc糾錯。
56、在上述方案中,所述存儲器控制器,還包括:rain糾錯器,用于:在所述第二階段的ecc糾錯失敗后,執(zhí)行第三階段的獨立nand冗余陣列rain糾錯;
57、所述處理器,還用于:在所述第三階段的rain糾錯失敗后,輸出用于表征譯碼失敗的指示信息;在出現(xiàn)以下之一的情況:所述第一階段的ecc糾錯成功、所述第二階段的ecc糾錯成功、所述第三階段的rain糾錯成功,輸出被成功譯碼的讀取數(shù)據(jù)。
58、第三方面,本技術實施例還提供一種存儲器控制器,包括:處理器、內(nèi)存、硬譯碼器和軟譯碼器,其中;
59、所述處理器,用于:根據(jù)第一硬讀取電壓從與所述存儲器控制器耦接的存儲器裝置中讀取第一硬讀取數(shù)據(jù);在讀取所述第一硬讀取數(shù)據(jù)前,根據(jù)第二硬讀取電壓從所述存儲器裝置讀取第二硬讀取數(shù)據(jù);并將所述第二硬讀取數(shù)據(jù)緩存到所述內(nèi)存;
60、所述硬譯碼器,用于:對所述第一硬讀取數(shù)據(jù)進行硬判決譯碼;
61、所述處理器,還用于:在對第一硬讀取數(shù)據(jù)進行所述硬判決譯碼失敗后,根據(jù)所述第一硬讀取數(shù)據(jù)和緩存的第二硬讀取數(shù)據(jù)獲得對應的第一軟數(shù)據(jù);向所述軟譯碼器發(fā)送所述第一硬讀取數(shù)據(jù)或所述第二硬讀取數(shù)據(jù);向所述軟譯碼器發(fā)送所述第一軟數(shù)據(jù);
62、所述軟譯碼器,用于:根據(jù)所述第一軟數(shù)據(jù)和所述第一硬讀取數(shù)據(jù)進行第一軟判決譯碼,或根據(jù)所述第一軟數(shù)據(jù)和所述第二硬讀取數(shù)據(jù)進行第一軟判決譯碼;
63、所述處理器,還用于:判斷是否出現(xiàn)包括以下之一的情況:所述硬判決譯碼成功、所述第一軟判決譯碼成功、硬讀取重試次數(shù)達到第一設定閾值;若出現(xiàn),結束第一階段的錯誤糾正碼ecc糾錯;
64、其中,所述第一硬讀取電壓為與初始讀取電壓具有一定偏移量的多個重讀電壓中的一個;所述第二硬讀取電壓為所述初始讀取電壓或所述多個重讀電壓中除所述第一硬讀取電壓之外的重讀電壓。
65、本技術實施例提供一種存儲器系統(tǒng)的糾錯方法、存儲器系統(tǒng)及存儲器控制器。其中,該糾錯方法包括:在對第一硬讀取數(shù)據(jù)進行硬判決譯碼失敗后,根據(jù)所述第一硬讀取數(shù)據(jù)和緩存的第二硬讀取數(shù)據(jù)獲得對應的第一軟數(shù)據(jù);其中,所述第一硬讀取數(shù)據(jù)為所述存儲器系統(tǒng)根據(jù)第一硬讀取電壓讀取的;所述第二硬讀取數(shù)據(jù)是在讀取所述第一硬讀取數(shù)據(jù)前所述存儲器系統(tǒng)根據(jù)第二硬讀取電壓讀取的;根據(jù)所述第一軟數(shù)據(jù)和所述第一硬讀取數(shù)據(jù)進行第一軟判決譯碼,或根據(jù)所述第一軟數(shù)據(jù)和所述第二硬讀取數(shù)據(jù)進行第一軟判決譯碼;其中,所述第一硬讀取電壓為與初始讀取電壓具有一定偏移量的多個重讀電壓中的一個;所述第二硬讀取電壓為所述初始讀取電壓或所述多個重讀電壓中除所述第一硬讀取電壓之外的重讀電壓。本技術實施例提供的糾錯方法,在對存儲器系統(tǒng)執(zhí)行讀取操作時,通過在重讀的硬判決譯碼失敗后,增加一個第一軟判決譯碼,以此,利用軟判決譯碼的高糾錯能力,以提高糾錯速度,進而提高讀取速度。