據(jù)消息104的估計值,在本文中也被稱為一個或多個硬判決。該檢測器120采樣所接收的 碼字118中的每個符號,并且基于符號值將每個符號分配給倉(bin)。在一些實(shí)施例中,倉 基于概率分布進(jìn)行分配。由檢測器120采樣的每個符號可以被分配給兩個以上的可能的倉 或狀態(tài)中的一個。對于檢測器樣本122而確定的狀態(tài)被存儲在存儲器中作為樣本碼字。該 存儲器被稱為"硬判決存儲器",其可以處于與所接收的碼字118不同的存儲位置。
[0030] 在一些實(shí)施例中,信道114被讀取多次,并且多次讀取可以由解調(diào)器116、檢測器 120、或兩者共同或單獨(dú)處理,以生成除了硬判決樣本碼字之外的可靠性數(shù)據(jù)。例如,為了確 定存儲在閃存存儲器設(shè)備中的給定符號的輸入狀態(tài),存儲符號的所接收的值的存儲器信元 (memory cell)可以被讀取多于一次。與相同符號相對應(yīng)的信道114的多次讀取可以由檢 測器120進(jìn)行處理,以生成以可靠性數(shù)據(jù)和硬判決數(shù)據(jù)形式的檢測器樣本122。例如,在二 進(jìn)制碼中,信道114的多次讀取可以由解調(diào)器116、檢測器120、或兩者進(jìn)行處理,以針對樣 本碼字中的每個比特生成一個比特硬判決數(shù)據(jù)和一個比特可靠性數(shù)據(jù)。在另一示例中,針 對樣本碼字中的每個比特,可以生成兩個比特的可靠性數(shù)據(jù)。一般而言,針對樣本碼字中的 每個比特,可以生成任何數(shù)目比特的可靠性數(shù)據(jù)。這樣的可靠性數(shù)據(jù)可以被存儲在與硬判 決存儲器分開的"可靠性數(shù)據(jù)存儲器"位置,或者可以與硬判決一起存儲在相同的存儲器位 置。檢測器樣本122形式的硬判決和可靠性數(shù)據(jù)兩者被傳送到解碼器124作為用于后續(xù)解 碼操作的輸入。
[0031] 解碼器124接收并且在多個階段迭代處理檢測器樣本122。檢測器120和解碼器 124可以是兩個分開的處理器,或單個處理器可以用作檢測器120和解碼器124這兩者。一 般而言,解碼器124包括用于迭代地糾正和/或檢測例如由于通過信道114的傳輸而存在 于檢測器樣本122中的錯誤的控制電路和/或解碼電路。在一些實(shí)施例中,解碼器124使用 奇偶校驗(yàn)矩陣H 126和解碼技術(shù)來產(chǎn)生解碼消息128。一般而言,LDPC解碼可以使用數(shù)學(xué) 矢量模型沒c g進(jìn)行描述,其中,c是長度為η的二進(jìn)制串并且H是奇偶校驗(yàn)矩陣H 126, 其是低密度的稀疏mXn矩陣,其中,如上所述,η是碼字中的符號的數(shù)目,m是滿足m多n-k 的校驗(yàn)節(jié)點(diǎn)的數(shù)目,k是消息中的符號的數(shù)目。僅當(dāng)二進(jìn)制串c是碼字£ 110時,滿足該模 型。奇偶校驗(yàn)矩陣H 126不一定是唯一的,并且為計算上方便,可以被選擇以減少由解碼器 124的解碼技術(shù)生成的錯誤的數(shù)目,或兩者。
[0032] 根據(jù)本公開,解碼器124所使用的多階段解碼技術(shù)包含:基于一個或多個"更新規(guī) 貝1J"通過更新符號、可靠性數(shù)據(jù)、或兩者來處理檢測器樣本122。在示例中,更新規(guī)則可以基 于是否滿足或未滿足符號的校驗(yàn)、符號基于可靠性數(shù)據(jù)的值或者其合適的組合是否先前已 經(jīng)被更新、翻轉(zhuǎn)、或切換(toggle)。一般地,如本文中所使用的,"翻轉(zhuǎn)"或"切換"符號意味 著將符號的值更新為與當(dāng)前值不同的值。用于執(zhí)行符號翻轉(zhuǎn)或切換的更新規(guī)則和系統(tǒng)架構(gòu) 在Varnica等人于2014年2月4日提交的美國專利申請?zhí)?4/172,420中進(jìn)行了描述,其 整體內(nèi)容通過引用并入本文。
[0033] 處理之后,解碼后的消息128中的每個符號應(yīng)該被分配作為一組可能狀態(tài)中的一 個狀態(tài)。當(dāng)輸入到作為c的模型飲寸,解碼后的消息128滿足該模型。參照圖3至圖 5,對用于執(zhí)行解碼的合適的系統(tǒng)和過程進(jìn)行描述。
[0034] 解碼后的消息128在被解碼器124處理之后,被遞送到接收用戶或應(yīng)用130。接 收用戶或應(yīng)用130可以與和發(fā)送用戶或應(yīng)用102相同的設(shè)備或?qū)嶓w相對應(yīng),或者接收用戶 或應(yīng)用130可以與不同的設(shè)備或?qū)嶓w相對應(yīng)。進(jìn)一步地,接收用戶或應(yīng)用130可以被共同 定位或與發(fā)送用戶或應(yīng)用102物理上分開。如果解碼器124糾正由信道114引起的所有 錯誤和通信系統(tǒng)100中的其它通信影響,則解碼后的消息128是消息104的邏輯復(fù)制品 (r印Iica)。否則,解碼后的消息128可以與消息104不同,并且相應(yīng)地解碼器124可以聲 明錯誤。
[0035] 圖2A和圖2B是根據(jù)本公開的實(shí)施例的代表示例碼字的變量節(jié)點(diǎn)220-234與使用 變量可靠性信息解碼碼字的校驗(yàn)節(jié)點(diǎn)200-210之間的通信的圖形說明。
[0036] 一旦初始化解碼過程,如參照圖1所描述的,使用檢測器120分配給變量節(jié)點(diǎn) 220-234輸入狀態(tài),其中,硬判決和可靠性信息兩者可以被考慮在內(nèi)。如本文中所討論的, "變量節(jié)點(diǎn)值"是指與變量節(jié)點(diǎn)相關(guān)聯(lián)的硬判決,而"變量可靠性數(shù)據(jù)"是指與變量節(jié)點(diǎn)或變 量節(jié)點(diǎn)值相關(guān)聯(lián)的可靠性數(shù)據(jù)。輸入狀態(tài)可以包括變量節(jié)點(diǎn)值和變量可靠性數(shù)據(jù)中的一個 或兩個。
[0037] 在一個說明性示例中,每個變量節(jié)點(diǎn)與由[hb。]表示的二比特輸入相關(guān)聯(lián),其中, 比特b。的值指示硬判決而且比特Id 1的值指示硬判決的可靠性。在二進(jìn)制碼中,b??梢匀≈?為〇或1,代表解碼后的比特的兩種可能的硬判決狀態(tài)。相應(yīng)地,h也可以取值為0或1,其 中,〇代表不可靠的硬判決,而1代表可靠硬判決。換句話說,輸入10到變量節(jié)點(diǎn)可以被解 釋為可靠判決為〇,輸入〇〇到變量節(jié)點(diǎn)可以被解釋為不可靠判決為〇,輸入01到變量節(jié)點(diǎn) 可以被解釋為不可靠判決為1,并且輸入11到變量節(jié)點(diǎn)可以被解釋為可靠判決為1。一般 而言,可以使用任何數(shù)目(k)的可靠性比特,并且(k+Ι)比特輸入可以表示為:[b k bkl… b1 b0] 〇
[0038] 硬解碼系統(tǒng)對硬判決數(shù)據(jù)執(zhí)行解碼,而軟解碼系統(tǒng)對硬判決數(shù)據(jù)以及可靠性數(shù)據(jù) 兩者執(zhí)行解碼。在本公開的多階段解碼器中,當(dāng)僅可以獲得硬判決數(shù)據(jù)時,解碼器可以執(zhí) 行硬解碼,并且當(dāng)可靠性數(shù)據(jù)變得可用時,執(zhí)行軟解碼。特別地,在一些系統(tǒng)(諸如某些閃 存單元)中,在獲得對應(yīng)的可靠性數(shù)據(jù)之前,解碼器可以獲得硬判決數(shù)據(jù)。其發(fā)生是因?yàn)樵?單次讀取信道114后,可以獲得硬判決,并且在多個附加的讀取之后,僅可以獲得可靠性數(shù) 據(jù)。在示例中,兩次附加的讀取可以足以渲染一個比特可靠性數(shù)據(jù),并且進(jìn)一步的,附加的 讀取可以渲染附加比特的可靠性數(shù)據(jù)。
[0039] 用于執(zhí)行每次讀取的系統(tǒng)要求可以與比執(zhí)行實(shí)際解碼更高的成本相關(guān)聯(lián)。例如, 執(zhí)行單次讀取所花費(fèi)的時間可以明顯長于執(zhí)行解碼所花費(fèi)的時間。因?yàn)樵诮邮諆H硬判決之 后和接收任何可靠性數(shù)據(jù)之前,硬解碼可以成功恢復(fù)有效碼字,所以在執(zhí)行任何附加的讀 取以恢復(fù)可靠性數(shù)據(jù)之前,可能需要確定硬解碼是否已成功。同樣,如果在一定數(shù)目的讀取 之后,軟解碼成功,則可能不需要執(zhí)行附加的不必要讀取。在具有吞吐量和功率約束的系統(tǒng) 中,本公開的多階段解碼器當(dāng)其被接收時,通過利用硬判決數(shù)據(jù)和可靠性數(shù)據(jù)提供有效解 碼。
[0040] 硬判決和可靠性數(shù)據(jù)輸入可以一起被存儲在一個存儲器位置中作為輸入狀態(tài),或 單獨(dú)被存儲在硬判決存儲器和可靠性數(shù)據(jù)存儲器中。如本文中所描述的,僅一個比特用于 代表硬判決,僅一個比特用于代表硬判決的可靠性。然而,一般而言,任何數(shù)目的比特可以 用于代表硬判決、可靠性、或兩者。特別地,對于非二進(jìn)制碼,硬判決可以取兩個以上的值, 并且可靠性消息可以攜帶一個或多個比特或符號。
[0041] 使用如參照圖1所描述的檢測器120分配給變量節(jié)點(diǎn)220-234輸入狀態(tài)之后,變 量節(jié)點(diǎn)的校驗(yàn)由多組變量節(jié)點(diǎn)上的解碼器124執(zhí)行。解碼器124使用處理規(guī)則來確定一組 變量節(jié)點(diǎn)的條件。所確定的條件的指示被存儲在校驗(yàn)節(jié)點(diǎn)(諸如校驗(yàn)節(jié)點(diǎn)200-210)處的 校正子存儲器(syndrome memory)。奇偶校驗(yàn)矩陣H 126 (圖1)標(biāo)識哪些校驗(yàn)節(jié)點(diǎn)存儲針 對哪些校驗(yàn)節(jié)點(diǎn)所確定的條件的指示。例如,對于如圖2A和圖2B所示的節(jié)點(diǎn)和對于二進(jìn) 制碼示例,奇偶校驗(yàn)矩陣H 126可以如下:
[0043] 每行與校驗(yàn)節(jié)點(diǎn)中的一個相對應(yīng),而每列與變量節(jié)點(diǎn)中的一個相對應(yīng)。如上所示, 在二進(jìn)制碼的情況下,奇偶校驗(yàn)矩陣的元素是〇或1。如本文中所使用的,變量節(jié)點(diǎn)的"相 鄰"校驗(yàn)節(jié)點(diǎn)是具有到變量節(jié)點(diǎn)連接的校驗(yàn)節(jié)點(diǎn)。同樣,校驗(yàn)節(jié)點(diǎn)的"相鄰"變量節(jié)點(diǎn)是具 有到校驗(yàn)節(jié)點(diǎn)連接的變量節(jié)點(diǎn)。上文所示的奇偶校驗(yàn)矩陣H 126提供指示校驗(yàn)節(jié)點(diǎn)和變量 節(jié)點(diǎn)之間的連接。特別地,如圖2A所示,變量節(jié)點(diǎn)222, 224, 230和234是校驗(yàn)節(jié)點(diǎn)206的鄰 點(diǎn),并且如圖2B所示,校驗(yàn)節(jié)點(diǎn)200,206和210是變量節(jié)點(diǎn)224的鄰點(diǎn)。此外,在二進(jìn)制碼 中,每個校驗(yàn)節(jié)點(diǎn)有兩種狀態(tài)中的一個,如果滿足校驗(yàn),則狀態(tài)為〇,并且如果未滿足校驗(yàn), 則狀態(tài)為1。對于非二進(jìn)制碼,奇偶校驗(yàn)矩陣的元素是非二進(jìn)制,并且每個校驗(yàn)節(jié)點(diǎn)是兩個 以上的狀態(tài)中的一個。奇偶校驗(yàn)矩陣的每行形成在非二進(jìn)制域