TWI696962B - 訓練人工智慧執行低密度奇偶檢查碼的解碼程序的方法 - Google Patents
訓練人工智慧執行低密度奇偶檢查碼的解碼程序的方法 Download PDFInfo
- Publication number
- TWI696962B TWI696962B TW108101746A TW108101746A TWI696962B TW I696962 B TWI696962 B TW I696962B TW 108101746 A TW108101746 A TW 108101746A TW 108101746 A TW108101746 A TW 108101746A TW I696962 B TWI696962 B TW I696962B
- Authority
- TW
- Taiwan
- Prior art keywords
- decoding
- artificial intelligence
- node
- bit value
- parity check
- Prior art date
Links
Images
Landscapes
- Error Detection And Correction (AREA)
Abstract
本發明公開一種訓練人工智慧執行低密度奇偶檢查碼的解碼程序的方法,適用於儲存裝置,包含:配置檢驗節點以及變量節點;輸出記憶單元儲存的存取位元值至變量節點;提供初始對數概度比至變量節點;在變量節點基於初始對數概度比解碼存取位元值以輸出解碼位元值;在檢驗節點執行檢驗程序以檢驗解碼位元值與記憶單元欲儲存的數據位元值是否相同,若是,輸出正確訊息,若否,輸出錯誤訊息,接著執行下一步驟;啟動人工智慧類神經網路系統使用機器學習分析實作對數概度比;以及在變量節點基於實作對數概度比解碼存取位元值。
Description
本發明涉及一種解碼方法,特別是涉及一種訓練人工智慧執行低密度奇偶檢查碼的解碼程序的方法。
現在記憶體應用越來越普及化,在使用過程中會隨著抹除與寫入次數一些因素造成記憶體內部損傷,進而造成錯誤率上升,使得非揮發性記憶體(non-volatile memory)可靠度急遽下降,因此可以透過可靠性設計技術,特別是更正錯誤技術來提高非揮發性記憶體的可靠性,可以讓產品更為長壽與穩定。
為了確保延長非揮發性記憶體的使用壽命,控制電路中會設計錯誤更正模塊,對從非揮發性記憶體讀出來的數據進行錯誤糾正,消除非揮發性記憶體因為外在因素造成的錯誤。傳統上,主流的錯誤更正編碼都是採用BCH(Bose-Chaudhuri-Hochquenghem)Code,這種編碼的計算速度相當快,糾正能力隨著冗餘位元越多,更正能力會越強。但是隨著非揮發性記憶體製造技術越來越高,BCH編碼技術已經無法提供足夠的更正能力,所以開始轉向使用在通訊領域廣泛應用的低密度奇偶檢查碼(Low Density Parity Code,LDPC)糾錯技術,藉由強大的更正能力開始成為儲存領域中的新趨勢。
本發明所要解決的技術問題在於,針對現有技術的不足提供一種訓練人工智慧實現低密度奇偶檢查碼的解碼程序的方法,適用於儲存裝置。儲存裝置包含記憶單元。記憶單元儲存存取位元值。方法包含以下步驟:(a)設定檢驗節點以及變量節點;(b)連接檢驗節點至對應的變量節點;(c)輸出儲存裝置的記憶單元所儲存的存取位元值至變量節點;(d)提供初始對數概度比至變量節點;(e)在變量節點以基於初始對數概度比的初始解碼程序解碼接收到的存取位元值,以輸出解碼位元值至變量節點對應的檢驗節點;(f)在檢驗節點執行檢驗程序以檢驗解碼位元值與記憶單元欲儲存的數據位元值是否相同,若是,輸出檢驗正確訊息,若否,輸出檢驗錯誤訊息,接著執行下一步驟;(g)啟動人工智慧類神經網路系統,使用機器學習分析檢驗錯誤訊息以及從外部接收的參考對數概度比,以輸出實作對數概度比;以及(h)在變量節點接收到檢驗錯誤訊息時,以基於相對於初始對數概度比的實作對數概度比的實作解碼程序,重新解碼檢驗錯誤訊息指示的存取位元值以輸出解碼位元值,接著執行步驟(f)。
如上所述,本發明所提供的訓練人工智慧執行低密度奇偶檢查碼的解碼程序的方法,其使用低密度奇偶檢查碼,在每次執行疊代程序時,訓練人工智慧類神經網路系統使用機器學習,依據在變量節點解碼儲存裝置的記憶單元所儲存的位元值失敗的訊息和導致解碼失敗的初始對數概度比,以及從外部接收的參考對數概度比,以分析出實作對數概度比以及決定重新解碼位元值的順序,以在多個變量節點基於實作對數概度比,依序成功解碼取得正確位元值,使疊代的收歛效果更好、減少疊代時間。
為使能更進一步瞭解本發明的特徵及技術內容,請參閱以下有關本發明的詳細說明與圖式,然而所提供的圖式僅用於提供參考與說明,並
非用來對本發明加以限制。
S101~S123、S401~S415、S601~S617、S801~S811:步驟
C1、C2、C3、CN:檢驗節點
V1、V2、V3、V4、V5、V6、VM:變量節點
LLR1、LLR2、LLR3、LLR4、LLR5、LLR6、LLRM:初始對數概度比
LLRE:參考對數概度比
LLRP:實作對數概度比
AI-NN:人工智慧類神經網路系統
H:矩陣
圖1為本發明第一實施例的訓練人工智慧執行低密度奇偶檢查碼的解碼程序的方法的步驟流程圖。
圖2為本發明第一實施例的訓練人工智慧執行低密度奇偶檢查碼的解碼程序的方法的解碼流程的Tanner圖。
圖3為本發明第一實施例的訓練人工智慧執行低密度奇偶檢查碼的解碼程序的方法的訓練人工智慧執行解碼程序的Tanner圖。
圖4為本發明第二實施例的訓練人工智慧執行低密度奇偶檢查碼的解碼程序的方法的步驟流程圖。
圖5本發明第二實施例的訓練人工智慧執行低密度奇偶檢查碼的解碼程序的方法的訓練人工智慧執行解碼程序的Tanner圖。
圖6為本發明第三實施例的訓練人工智慧執行低密度奇偶檢查碼的解碼程序的方法的步驟流程圖。
圖7為本發明第三實施例的訓練人工智慧執行低密度奇偶檢查碼的解碼程序的方法的訓練人工智慧決定解碼順序的Tanner圖。
圖8為本發明第四實施例的訓練人工智慧執行低密度奇偶檢查碼的解碼程序的方法的步驟流程圖。
圖9為本發明第四實施例的訓練人工智慧執行低密度奇偶檢查碼的解碼程序的方法使用的奇偶檢驗矩陣的示意圖。
圖10為本發明第三實施例的訓練人工智慧執行低密度奇偶檢查碼的解碼程序的方法的決定解碼順序的Tanner圖。
以下是通過特定的具體實施例來說明本發明所公開的實施方式,本領域技術人員可由本說明書所公開的內容瞭解本發明的優點與效果。本發明可通過其他不同的具體實施例加以施行或應用,本說明書中的各項細節也可基於不同觀點與應用,在不悖離本發明的構思下進行各種修改與變更。另外,本發明的附圖僅為簡單示意說明,並非依實際尺寸的描繪,事先聲明。以下的實施方式將進一步詳細說明本發明的相關技術內容,但所公開的內容並非用以限制本發明的保護範圍。
應當可以理解的是,雖然本文中可能會使用到“第一”、“第二”、“第三”等術語來描述各種元件或者信號,但這些元件或者信號不應受這些術語的限制。這些術語主要是用以區分一元件與另一元件,或者一信號與另一信號。另外,本文中所使用的術語“或”,應視實際情況可能包括相關聯的列出項目中的任一個或者多個的組合。
請參閱圖1至圖3,圖1為本發明第一實施例的訓練人工智慧執行低密度奇偶檢查碼的解碼程序的方法的步驟流程圖;圖2為本發明第一實施例的訓練人工智慧執行低密度奇偶檢查碼的解碼程序的方法的解碼流程的Tanner圖;圖3為本發明第一實施例的訓練人工智慧執行低密度奇偶檢查碼的解碼程序的方法的訓練人工智慧執行解碼程序的Tanner圖。
如圖1所示,本實施例的訓練人工智慧執行低密度奇偶檢查碼的解碼程序的方法包含以下步驟S101~S123。如圖1所示的步驟S101~S113對應如圖2所示的解碼流程的Tanner圖。如圖1所示的步驟S115~S123對應如圖3所示的解碼失敗後的Tanner圖。
本實施例的訓練人工智慧執行低密度奇偶檢查碼的解碼程序的
方法適用於各種儲存裝置例如固態硬碟(Solid state drive)等。儲存裝置包含多個記憶單元例如記憶晶胞(memory cell),每個記憶單元可儲存一或多個存取位元值。依據記憶單元可存取的位元上限數量,多個記憶單元可分類為可存取1個位元值的單階記憶晶胞(Single-Level Cell,SLC)、可存取2個位元值的多階記憶晶胞(Multi-Level Cell,MLC)以及可存取4個位元值的四階記憶晶胞(Quad-Level Cell,QLC)等。
在步驟S101,利用儲存裝置的一或多個記憶單元儲存一或多個位元值。為方便說明,如本文所用,將記憶單元欲儲存的位元值稱為數據位元值,將記憶單元實際上已儲存的位元值稱為存取位元值,將解碼存取位元值後所產生的位元值稱為解碼位元值。
在步驟S103,配置多個檢驗節點(check node)以及多個變量節點(variable node)。變量節點的數量可取決於檢驗節點的數量。舉例來說,如圖2所示,配置N個檢驗節點以及M個檢驗節點,其中M大於N,但本發明不以此為限。實務上,檢驗節點的數量可小於或等於3個,而檢驗節點的數量可小於或等於6個。
在步驟S105,連接檢驗節點至對應的一或多個變量節點。舉例來說,如圖2所示,檢驗節點C1連接至變量節點V1、V2、V4、V5,檢驗節點C2連接至變量節點V1、V3、V5、V6,以及檢驗節點C3連接至變量節點V2、V3、V4、V6。相互連接的檢驗節點以及變量節點之間可進行位元值、訊息以及指令等的雙向傳輸作業。
換個角度說,不同的多個變量節點可連接至同一檢驗節點。舉例來說,如圖2所示,變量節點V1、V3、V5、V6可連接至同一檢驗節點C2,變量節點V2、V3、V4、V6可連接至同一檢驗節點C3。
在步驟S107,輸出儲存裝置的記憶單元所儲存的存取位元值至
變量節點。在多個變量節點可分別接收不同或相同數值的多個存取位元值,每一存取位元值為邏輯0或邏輯1。詳言之,在多個變量節點可依序或同時分別接收記憶單元所儲存的個別的多個存取位元值或同一數位位元串流的多個存取位元值。
舉例來說,若同一記憶單元儲存具有6個邏輯位元值的一個位元串流“001011”,則在變量節點V1接收邏輯0,在變量節點V2接收0,在變量節點V3接收邏輯1、在變量節點V4接收邏輯0,在變量節點V5接收邏輯1,在變量節點V6接收邏輯1。替換地,多個變量節點V1、V2、V3、V4、V5、V6可分別接收邏輯1、1、0、1、0、0。實務上,多個變量節點接收的數值不限於位元串流的數值排序。
或者,多個變量節點V1~V6可隨機接收所同一或不同記憶單元的多個位元值。又或者,若多個記憶單元在儲存裝置排列成儲存陣列,可依據多個記憶單元排列在儲存陣列中的行列位置,決定每一個變量節點V1~V6接收哪一個記憶單元的存取位元值。應理解,上述僅舉例說明,本發明不受限於上述多個記憶單元以及多個變量節點之間的配置關係和位元值傳輸路徑。
在步驟S109,提供初始對數概度比(log-likelihood ratio)至變量節點。例如,每一個變量節點接收一個初始對數概度比或接收由多個初始對數概度比組成的一個初始對數概度比群組。如圖2所示,不同的多個變量節點V1~VM分別接收相同或不同的多個初始對數概度比LLR1~LLRM。
在步驟S111,在每個變量節點以基於初始對數概度比的初始解碼程序解碼接收到的存取位元值,以輸出對應的解碼位元值至變量節點對應的檢驗節點。在多個變量節點分別的多個初始解碼程序可依序或同時執行。
若在多個變量節點分別接收到不同的多個初始對數概度比,則
分別執行不同的初始解碼程序。在此情況下,即使在多個變量節點解碼相同數值的存取位元值,可能輸出不同的解碼位元值。而初始解碼程序可例如使用一或多個解碼器或其他具有解碼功能的電子元件執行。
進一步,在檢驗節點以基於初始對數概度比的初始解碼程序解碼儲存裝置的記憶單元所存取的位元值之後,將取得與存取位元值相同或不同的解碼位元值。
在步驟S113,在檢驗節點執行檢驗程序,以檢驗執行解碼程序產生的解碼位元值與記憶單元欲儲存的數據位元值是否相同。
詳言之,當儲存裝置的記憶單元存取數據位元值時,可能發生誤判數據位元值的情況例如將位元值邏輯0誤判和誤存為邏輯1或將邏輯1誤判和誤存為邏輯0,甚至可能誤判和誤存為無效數據。
若在檢驗節點檢驗執行解碼程序產生的解碼位元值與記憶單元欲儲存的數據位元值相同時,直接執行步驟S123。相反地,若在檢驗節點檢驗執行解碼程序產生的解碼位元值與記憶單元欲儲存的數據位元值不同時,執行步驟S115。
在步驟S115,從檢驗節點輸出檢驗錯誤訊息至人工智慧類神經網路系統(Artificial Intelligence-Neural Network,AI-NN)以及對應的變量節點,接著執行下一步驟S117。如圖3所示,從檢驗節點C1輸出檢驗錯誤訊息至人工智慧類神經網路系統AI-NN以及對應的變量節點V1。
在步驟S117,若從檢驗節點輸出檢驗錯誤訊息指示儲存裝置的記憶單元儲存錯誤位元值時,啟動人工智慧類神經網路系統從外部例如額外的查表接收一或多個參考對數概度比。
在步驟S119,利用人工智慧類神經網路系統使用機器學習分析檢驗錯誤訊息以及參考對數概度比,以輸出不同於初始對數概度比的實作對
數概度比。
如圖3所示,當從檢驗節點C1輸出檢驗錯誤訊息至人工智慧類神經網路系統AI-NN以及變量節點V1時,啟動人工智慧類神經網路系統AINN。接著,人工智慧類神經網路系統AINN使用機器學習分析檢驗錯誤訊息指示的在變量節點V1產生的錯誤解碼位元值例如邏輯0、欲儲存的數據位元值例如邏輯1以及導致無法取得與數據位元值例如邏輯1相同的正確解碼位元值例如邏輯1的初始對數概度比LLR1。另外,人工智慧類神經網路系統AINN可依據分析結果取得對應的參考對數概度比LLRE,以輸出不同於初始對數概度比LLR1的實作對數概度比LLRP至變量節點V1。實作對數概度比可相同或不同於參考對數概度比。
在步驟S121,在變量節點從檢驗節點接收到檢驗錯誤訊息時,以基於相對於初始對數概度比的實作對數概度比的實作解碼程序,重新解碼檢驗錯誤訊息指示的存取位元值。此實作對數概度比為人工智慧類神經網路系統分析出可使在變量節點解碼存取位元值後產生與數據位元值相同的解碼位元值。
在步驟S123,若在變量節點基於初始對數概度比或實作對數概度解碼出與記憶單元欲儲存的數據位元值相同的解碼位元值時,從檢驗節點輸出檢驗正確訊息至儲存裝置。當儲存裝置接收到檢驗正確訊息指示記憶單元儲存正確的數據位元值,即存取位元值以及解碼位元值與數據位元值相同時,儲存裝置的儲存控制模組可指示記憶單元進一步存取新數據位元值。
如圖3所示,在變量節點V1以基於相對於初始對數概度比LLR1的實作對數概度比LLRP的實作解碼程序,成功解碼出與欲儲存的數據位元值相同的存取位元值時,從變量節點V1輸出檢驗正確訊息至下一檢驗節點C2。接著,同一變量節點V1或實務上為不同變量節點可接收儲存裝置的同一或不
同記憶單元所儲存的另一存取位元值,並以初始對數概度比LLR1或實作對數概度比解碼另一存取位元值。接著,在下一檢驗節點C2檢驗同一個變量節點V1或實務上為不同變量節點產生的另一解碼位元值。
請參閱圖4和圖5,圖4為本發明第二實施例的訓練人工智慧執行低密度奇偶檢查碼的解碼程序的方法的步驟流程圖;圖5本發明第二實施例的訓練人工智慧執行低密度奇偶檢查碼的解碼程序的方法的訓練人工智慧執行解碼程序的Tanner圖。如圖4所示,本實施例的訓練人工智慧執行低密度奇偶檢查碼的解碼程序的方法,包含以下步驟S401~S415,適用於儲存裝置。儲存裝置包含多個記憶單元,每個記憶單元儲存一或多個存取位元值。
在步驟S401,在變量節點以基於初始對數概度比的初始解碼程序解碼接收到的存取位元值。舉例來說,如圖5所示,配置一或多個例如5個變量節點V1~V5以及對應配置一或多個例如1個檢驗節點C1。檢驗節點C1連接變量節點V1~V5。
當變量節點V2接收到初始對數概度比以及從儲存裝置的記憶單元接收到存取位元值例如邏輯0或邏輯1時,在變量節點V2以基於初始對數概度比的初始解碼程序,解碼存取位元值以取得解碼位元值例如邏輯0或邏輯1。
在步驟S403,判斷在變量節點是否成功解碼所接收的記憶單元所儲存的存取位元值。若在變量節點成功解碼記憶單元所儲存的存取位元值,產生有效的解碼位元值例如邏輯0或邏輯1。執行步驟S405。相反地,若在變量節點解碼記憶單元所儲存的存取位元值失敗,產生無效的位元值或不產生任何位元值,執行步驟S407。
在步驟S405,從變量節點輸出成功解碼產生的解碼位元值至對
應的檢驗節點。在本實施例中,如圖5所示,從每一個變量節點V2~V5輸出解碼位元值至檢驗節點C1以及工智慧類神經網路系統AI-NN。
在步驟S407,從變量節點輸出解碼失敗訊息至變量節點以及人工智慧類神經網路系統。
舉例來說,如圖5所示,可配置在多個變量節點V1~V5依序地分別解碼記憶單元儲存的多個位元值。假設在變量節點V1解碼失敗時,變量節點V1可不傳輸任何位元值或訊息至檢驗節點C1,但檢驗節點C1接收到其他變量節點V2~V5依序或同時成功解碼產生的解碼位元值時,檢驗節點C1可選擇性輸出解碼結果詢問訊息至變量節點V1,以要求變量節點V1回應解碼結果給檢驗節點C1。如此,可在檢驗節點C1確認已在變量節點V1執行完解碼程序且解碼成功1,或未執行任何解碼程序。替換地,在變量節點V1解碼失敗時,可主動傳輸解碼失敗訊息至檢驗節點C1。
在步驟S409,通過變量節點輸出的解碼失敗訊息,啟動人工智慧類神經網路系統。如圖5所示,通過任一者或多個變量節點V2~V5輸出的解碼失敗訊息至人工智慧類神經網路系統AI-NN時,啟動人工智慧類神經網路系統AI-NN。
在步驟S411,利用人工智慧類神經網路系統使用機器學習分析解碼失敗訊息以輸出實作對數概度比。如圖5所示,利用人工智慧類神經網路系統AI-NN使用機器學習分析解碼失敗訊息以輸出實作對數概度比至檢驗節點C1。此解碼失敗訊息包含在哪一個變量節點執行解碼程序、解碼哪一儲存裝置的記憶單元所儲存的存取位元值、存取位元值為邏輯0或邏輯1、解碼存取位元值失敗訊息以及解碼失敗時使用的初始對數概度比例等相關訊息。
在步驟S413,在檢驗節點取得對應解碼失敗訊息的實作對數概度比,依據實作對數概度比以及解碼失敗訊息,以輸出重新解碼指示訊息至
變量節點。
在步驟S415,在變量節點依據來自檢驗節點的重新解碼指示訊息,在變量節點以基於實作對數概度比的實作解碼程序解碼存取位元值。
請參閱圖6和圖7,圖6為本發明第三實施例的訓練人工智慧執行低密度奇偶檢查碼的解碼程序的方法的步驟流程圖;圖7為本發明第三實施例的訓練人工智慧執行低密度奇偶檢查碼的解碼程序的方法的訓練人工智慧決定解碼順序的Tanner圖。如圖6所示,本實施例的訓練人工智慧執行低密度奇偶檢查碼的解碼程序的方法,包含以下步驟S601~S617,適用於儲存裝置。儲存裝置包含多個記憶單元,每個記憶單元儲存一或多個存取位元值。
在步驟S601,提供記憶單元已儲存的存取位元值至變量節點。
在步驟S603,在變量節點執行基於初始對數概度比的初始解碼程序或基於實作實作解碼程序解碼存取位元值,以產生解碼位元值。
在步驟S605,從變量節點輸出解碼位元值至檢驗節點。
在步驟S607,利用人工智慧類神經網路系統使用機器學習,分析記憶單元所儲存的存取位元值,與在變量節點基於初始對數概度比或實作對數概度比解碼存取位元值所產生的解碼位元值是否相同。
在步驟S609,若判斷記憶單元所儲存的存取位元值與解碼位元值相同時,判斷基於初始對數概度比或實作對數概度比可翻轉存取位元值,接著直接執行步驟S617。更精確地,結合上述步驟S113進一步檢驗解碼位元值與記憶單元欲儲存的數據位元值是否相同。以此方式,利用人工智慧類神經網路系統使用機器學習依據上述判斷和檢驗結果可分析出基於初始對數概度比或實作對數概度比的解碼程序是否可將記憶單元所儲存的錯誤位元值翻轉成與數據位元值相同的正確解碼位元值。
相反地,若記憶單元所儲存的存取位元值與解碼位元值不同
時,判斷基於初始對數概度比或實作對數概度比無法將錯誤存取位元值翻轉成數據位元值即正確的解碼位元值。也就是說,判定無法透過初始對數概度比或實作對數概度比更正儲存裝置的存取錯誤。在此情況下,接著執行步驟S611。
在步驟S611,若基於初始對數概度比無法解碼出與數據位元值相同的解碼位元值時,利用人工智慧類神經網路系統使用機器學習,依據參考對數概度比以及初始對數概度比,以分析出不同於初始對數概度比的實作對數概度比。替換地,若基於實作對數概度比無法解碼出與數據位元值相同的解碼位元值時,利用人工智慧類神經網路系統使用機器學習,依據另一參考對數概度比以及實作對數概度比,以分析出不同於實作對數概度比的另一實作對數概度比。
在步驟S613,利用人工智慧類神經網路系統使用機器學習分析未被初始解碼程序或實作解碼程序翻轉成與數據位元值相同的解碼位元值的存取位元值的解碼順序,即分析在上述步驟S115中所有檢驗錯誤訊息指示的存取位元值的解碼順序。
在步驟S615,依據解碼順序依序在多個變量節點解碼未被實作解碼程序翻轉的所有檢驗錯誤訊息指示的多個存取位元值。舉例來說,如圖7所示,利用人工智慧類神經網路系統AI-NN使用機器學習分析在變量節點V1執行完解碼程序後,接著在變量節點V4執行解碼程序。
在步驟S617,若基於人工智慧類神經網路系統產生的實作對數概度比或另一實作對數概度比解碼存取位元值,以產生與存取位元值不同且與數據位元值相同的解碼位元值時,判斷成功將存取位元值翻轉成正確的解碼位元值。
請一併參閱圖8至圖10,圖8為本發明第四實施例的訓練人工智
慧執行低密度奇偶檢查碼的解碼程序的方法的步驟流程圖;圖9為本發明第四實施例的訓練人工智慧執行低密度奇偶檢查碼的解碼程序的方法使用的奇偶檢驗矩陣的示意圖;圖10為本發明第三實施例的訓練人工智慧執行低密度奇偶檢查碼的解碼程序的方法的決定解碼順序的Tanner圖。
如圖8所示,本實施例的訓練人工智慧執行低密度奇偶檢查碼的解碼程序的方法,包含以下步驟S801~S811,適用於儲存裝置。儲存裝置包含多個記憶單元,每個記憶單元儲存一或多個存取位元值。
在步驟S801,設定奇偶檢驗矩陣。奇偶檢驗矩陣具有行列位置,行列位置上具有矩陣數值。舉例來說,如圖9所示,奇偶檢驗矩陣H具有3行6列,具有18個邏輯0或邏輯1的矩陣數值分別在18個行列位置上。應理解,本發明不受限於本實施例的奇偶檢驗矩陣的行列數量以及矩陣數值,實務上可依據實際需求設定不同的奇偶檢驗矩陣。
在步驟S803,配置奇偶檢驗矩陣中的列對應的檢驗節點以及行對應的變量節點。檢驗節點以及變量節點之間的連接關係和配置數量取決於奇偶檢驗矩陣。舉例來說,如圖9所示,奇偶檢驗矩陣H中具有3個列,如圖10所示對應配置3個檢驗節點C1~C3。如圖9所示,奇偶檢驗矩陣H中具有6個列,如圖10所示對應配置6個變量節點V1~V6。
在步驟S805,依據奇偶檢驗矩陣的矩陣數值,連接檢驗節點至對應的變量節點。舉例來說,如圖9所示,奇偶檢驗矩陣H的第1行第1、2、4、5列的矩陣數值為邏輯1。據此,如圖2所示,將對應第1行的第1個檢驗節點C1連接分別對應第1列、第2列、第4列、第5列的變量節點V1、V2、V4、V5。奇偶檢驗矩陣H的第1行第3、6列為邏輯0,故檢驗節點C1不連接變量節點V3、V6。
另外,如圖9所示,奇偶檢驗矩陣H的第2行第1、3、5、6列
的矩陣數值為邏輯1。據此,如圖2所示,將對應第2行的第2個檢驗節點C2連接分別對應第1列、第3列、第5列、第6列的變量節點V1、V3、V5、V6。奇偶檢驗矩陣H的第2行第2、4列為邏輯0,故檢驗節點C2不連接變量節點V2、V4。
另外,如圖9所示,奇偶檢驗矩陣H的第3行第2、3、4、6列的矩陣數值為邏輯1。據此,如圖2所示,將對應第3行的第3個檢驗節點C3連接分別對應第2列、第3列、第4列、第6列的變量節點V2、V3、V4、V6。奇偶檢驗矩陣H的第2行第1、5列為邏輯0,故檢驗節點C3不連接變量節點V1、V5。
在步驟S807,基於變量節點對應奇偶檢驗矩陣中的行位置順序,以決定在奇偶檢驗矩陣中的每一列的變量節點解碼存取位元值的先後順序。如圖8所示,變量節點V1對應奇偶檢驗矩陣H的第1列,變量節點V2對應奇偶檢驗矩陣H的第2列,變量節點V3對應奇偶檢驗矩陣H的第3列,變量節點V4對應奇偶檢驗矩陣H的第4列,變量節點V5對應奇偶檢驗矩陣H的第5列,變量節點V6對應奇偶檢驗矩陣H的第6列。據此,依序在多個變量節點V1、V2、V3、V4、V5、V6執行解碼程序。進一步,在檢驗節點檢驗在變量節點所產生的解碼位元值的檢驗順序可取決於解碼順序。
在步驟S809,在奇偶檢驗矩陣中具有矩陣數值為邏輯1的行列位置對應的變量節點執行初始解碼程序或實作解碼程序,以分別在多個變量節點依序解碼儲存裝置的多個記憶單元儲存的多個存取位元值。
在步驟S811,在奇偶檢驗矩陣中具有矩陣數值為邏輯1的行列位置對應的檢驗節點執行檢驗程序,以分別在多個檢驗節點分別檢驗多個變量節點產生的多個解碼位元值。
綜上所述,本發明所提供的訓練人工智慧執行低密度奇偶檢查
碼的解碼程序的方法,其使用低密度奇偶檢查碼,在每次執行疊代程序時,訓練人工智慧類神經網路系統使用機器學習,依據在變量節點解碼儲存裝置的記憶單元所儲存的位元值失敗的訊息和導致解碼失敗的初始對數概度比,以及從外部接收的參考對數概度比,以分析出實作對數概度比以及決定重新解碼位元值的順序,以在多個變量節點基於實作對數概度比,依序成功解碼取得正確位元值,使疊代的收歛效果更好、減少疊代時間。
以上所公開的內容僅為本發明的優選可行實施例,並非因此侷限本發明的申請專利範圍,所以凡是運用本發明說明書及圖式內容所做的等效技術變化,均包含於本發明的申請專利範圍內。
S101~S123:步驟
Claims (7)
- 一種訓練人工智慧執行低密度奇偶檢查碼的解碼程序的方法,適用於一儲存裝置,該儲存裝置包含多個記憶單元,各該記憶單元儲存一或多個存取位元值,該訓練人工智慧執行低密度奇偶檢查碼的解碼程序的方法包含以下步驟:(a)配置多個檢驗節點以及多個變量節點;(b)連接各該檢驗節點至該一或多個變量節點;(c)輸出該儲存裝置的該一或多個記憶單元所儲存的該多個存取位元值分別至該多個變量節點;(d)提供多個初始對數概度比分別至該多個變量節點;(e)在各該變量節點以基於該初始對數概度比的一初始解碼程序解碼接收到的各該存取位元值,以輸出一解碼位元值至各該變量節點對應的該檢驗節點;(f)在各該檢驗節點執行一檢驗程序以檢驗各該解碼位元值與各該記憶單元欲儲存的一數據位元值是否相同,若是,輸出一檢驗正確訊息至該變量節點,各該記憶單元儲存其他一或多個存取位元值,接著回到步驟(a),若否,輸出一檢驗錯誤訊息至該變量節點以及一人工智慧類神經網路系統,接著執行下一步驟(g);(g)啟動該人工智慧類神經網路系統,使用機器學習分析從該檢驗節點接收的各該檢驗錯誤訊息以及從外部接收的一參考對數概度比,以輸出一實作對數概度比至該變量節點,接著執行步驟(h);以及(h)在各該變量節點接收到該檢驗錯誤訊息時,以基於相對於該初始對數概度比的該實作對數概度比的一實作解碼程序,重新解碼該檢驗錯誤訊息指示的該存取位元值,以輸出該解碼位元值,接著執行步驟(f)。
- 如請求項1所述的訓練人工智慧執行低密度奇偶檢查碼的解碼程序的方法,更包含以下步驟:(i)在各該變量節點以基於該初始對數概度比的該初始解碼程序解碼接收到的各該存取位元值;(j)判斷在各該變量節點是否基於該初始對數概度比成功解碼所接收的該記憶單元所儲存的該存取位元值,若是,輸出該解碼位元值至對應的該檢驗節點,若否,輸出一解碼失敗訊息至該變量節點以及該人工智慧類神經網路系統;(k)啟動該人工智慧類神經網路系統使用機器學習分析各該解碼失敗訊息以及該參考對數概度比,以輸出對應的該實作對數概度比至該檢驗節點;(l)在該檢驗節點依據該實作對數概度比以及該解碼失敗訊息,以輸出一重新解碼指示訊息至該變量節點;以及(m)在該變量節點依據來自該檢驗節點的該重新解碼指示訊息,在該變量節點以基於該實作對數概度比的該實作解碼程序解碼各該存取位元值。
- 如請求項1所述的訓練人工智慧執行低密度奇偶檢查碼的解碼程序的方法,更包含以下步驟:(n)提供該多個記憶單元已儲存的該多個存取位元值分別至該多個檢驗節點;(o)從該變量節點輸出執行基於該初始對數概度比的該初始解碼程序所產生的該多個該解碼位元值分別至該多個檢驗節點;(p)利用該人工智慧類神經網路系統使用機器學習分析各該存取位元值與該解碼位元值是否相同,若否,判斷該初始解碼程序翻轉該存取位元值,若是,判斷該初始解碼程序 未翻轉該存取位元值;(q)利用該人工智慧類神經網路系統使用機器學習依據該參考對數概度比以及該初始對數概度比,以分析出該實作對數概度比;(r)利用該人工智慧類神經網路系統使用機器學習分析未被該初始解碼程序翻轉的所有該多個檢驗錯誤訊息指示的該多個存取位元值的一解碼順序;以及(s)依據該解碼順序依序在該多個變量節點解碼未被該初始解碼程序翻轉的所有該多個檢驗錯誤訊息指示的該多個存取位元值。
- 如請求項1所述的訓練人工智慧執行低密度奇偶檢查碼的解碼程序的方法,更包含以下步驟:(t)提供該多個記憶單元已儲存的該多個存取位元值分別至該多個檢驗節點;(u)從該變量節點輸出執行基於該實作對數概度比的該實作解碼程序所產生的該多個該解碼位元值分別至該多個檢驗節點;(v)利用該人工智慧類神經網路系統使用機器學習分析各該存取位元值與該解碼位元值是否相同,若否,判斷該實作解碼程序翻轉該存取位元值,若是,判斷該實作解碼程序未翻轉該存取位元值;(w)利用該人工智慧類神經網路系統使用機器學習依據該另一參考對數概度比以及該實作對數概度比,以分析出另一實作對數概度比;(x)利用該人工智慧類神經網路系統使用機器學習分析未被該實作解碼程序翻轉的所有該多個檢驗錯誤訊息指示的該多個存取位元值的一解碼順序;以及 (y)依據該解碼順序依序在該多個變量節點解碼未被該實作解碼程序翻轉的所有該多個檢驗錯誤訊息指示的該多個存取位元值。
- 如請求項1所述的訓練人工智慧執行低密度奇偶檢查碼的解碼程序的方法,更包含以下步驟:(z)設定一奇偶檢驗矩陣,該奇偶檢驗矩陣具有多個行列位置,各該行列位置上具有一矩陣數值,其中該奇偶檢驗矩陣中的多個列分別對應該多個檢驗節點以及多個行分別對應該多個變量節點;以及(aa)依據該奇偶檢驗矩陣的該多個矩陣數值,連接各該檢驗節點至對應的該一或多個變量節點。
- 如請求項5所述的訓練人工智慧執行低密度奇偶檢查碼的解碼程序的方法,更包含以下步驟:(bb)設定該奇偶檢驗矩陣的各該行列位置上的該矩陣數值為邏輯0或邏輯1;(cc)在該奇偶檢驗矩陣中具有邏輯1的該行列位置對應的該變量節點執行該初始解碼程序或該實作解碼程序;以及(dd)在該奇偶檢驗矩陣中具有邏輯1的該行列位置對應的該檢驗節點執行該檢驗程序。
- 如請求項5所述的訓練人工智慧執行低密度奇偶檢查碼的解碼程序的方法,更包含以下步驟:(ee)基於該多個變量節點分別對應該奇偶檢驗矩陣中的該多個行位置順序,以決定在該多個變量節點分別解碼該多個存取位元值的先後順序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW108101746A TWI696962B (zh) | 2019-01-17 | 2019-01-17 | 訓練人工智慧執行低密度奇偶檢查碼的解碼程序的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW108101746A TWI696962B (zh) | 2019-01-17 | 2019-01-17 | 訓練人工智慧執行低密度奇偶檢查碼的解碼程序的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI696962B true TWI696962B (zh) | 2020-06-21 |
TW202029068A TW202029068A (zh) | 2020-08-01 |
Family
ID=72176475
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW108101746A TWI696962B (zh) | 2019-01-17 | 2019-01-17 | 訓練人工智慧執行低密度奇偶檢查碼的解碼程序的方法 |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI696962B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112118015A (zh) * | 2020-09-11 | 2020-12-22 | 山东云海国创云计算装备产业创新中心有限公司 | 一种译码方法、装置、设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080028272A1 (en) * | 2003-02-26 | 2008-01-31 | Tom Richardson | Method and apparatus for performing low-density parity-check (ldpc) code operations using a multi-level permutation |
US8782489B2 (en) * | 2010-02-18 | 2014-07-15 | Hughes Network Systems, Llc | Method and system for providing Low Density Parity Check (LDPC) encoding and decoding |
EP2833553A1 (en) * | 2013-07-30 | 2015-02-04 | Alcatel Lucent | LDPC encoder and decoder |
CN108933602A (zh) * | 2017-05-26 | 2018-12-04 | 爱思开海力士有限公司 | 用于低密度奇偶校验解码的深度学习 |
-
2019
- 2019-01-17 TW TW108101746A patent/TWI696962B/zh active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080028272A1 (en) * | 2003-02-26 | 2008-01-31 | Tom Richardson | Method and apparatus for performing low-density parity-check (ldpc) code operations using a multi-level permutation |
US8782489B2 (en) * | 2010-02-18 | 2014-07-15 | Hughes Network Systems, Llc | Method and system for providing Low Density Parity Check (LDPC) encoding and decoding |
EP2833553A1 (en) * | 2013-07-30 | 2015-02-04 | Alcatel Lucent | LDPC encoder and decoder |
CN108933602A (zh) * | 2017-05-26 | 2018-12-04 | 爱思开海力士有限公司 | 用于低密度奇偶校验解码的深度学习 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112118015A (zh) * | 2020-09-11 | 2020-12-22 | 山东云海国创云计算装备产业创新中心有限公司 | 一种译码方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
TW202029068A (zh) | 2020-08-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101329916B (zh) | 闪存装置纠错码控制器以及相关方法和存储系统 | |
US8880987B2 (en) | Checksum using sums of permutation sub-matrices | |
TWI674767B (zh) | 用於nand快閃記憶體的渦輪乘積碼 | |
EP1160987B1 (en) | Method and apparatus for verifying error correcting codes | |
KR101750662B1 (ko) | 데이터 에러 교정용 회로, 장치, 및 방법 | |
CN107430540B (zh) | 用于硬件验证的运行时间ecc错误注入方案 | |
US8635508B2 (en) | Systems and methods for performing concatenated error correction | |
US8667365B2 (en) | Flash memory system that uses an interleaving scheme for increasing data transfer performance between a memory device and a controller and a method therof | |
TWI702606B (zh) | 具有階層式錯誤校正碼層的記憶體裝置 | |
US8918707B2 (en) | Codeword error injection via checkbit modification | |
CN103297061A (zh) | 决定同位元检查阵列的方法以及快闪存储器系统 | |
US11907062B2 (en) | Error check scrub operation method and semiconductor system using the same | |
US9836350B2 (en) | Joint decoding of rewriting NVM error sectors | |
US8595576B2 (en) | Systems and methods for evaluating and debugging LDPC iterative decoders | |
TWI696962B (zh) | 訓練人工智慧執行低密度奇偶檢查碼的解碼程序的方法 | |
US20200389187A1 (en) | Method of training artificial intelligence to execute decoding program of low density parity check code | |
JP2020046823A (ja) | メモリシステム | |
US11126500B2 (en) | Error detection and correction with integrity checking | |
US11962327B2 (en) | Iterative decoding technique for correcting DRAM device failures | |
CN111475326A (zh) | 训练人工智能执行低密度奇偶检查码的译码程序的方法 | |
US20170116060A1 (en) | Error location pointers for nvm | |
TWI812411B (zh) | 記憶體控制器及低密度同位元查核碼之位元翻轉方法 | |
TWI836558B (zh) | 記憶體控制器及解碼管線之資料控制方法 | |
US10628259B2 (en) | Bit determining method, memory control circuit unit and memory storage device | |
US20240106462A1 (en) | G-ldpc decoder and g-ldpc decoding method |