TW201037529A - Belief propagation processor - Google Patents

Belief propagation processor Download PDF

Info

Publication number
TW201037529A
TW201037529A TW099105802A TW99105802A TW201037529A TW 201037529 A TW201037529 A TW 201037529A TW 099105802 A TW099105802 A TW 099105802A TW 99105802 A TW99105802 A TW 99105802A TW 201037529 A TW201037529 A TW 201037529A
Authority
TW
Taiwan
Prior art keywords
memory
processor
analog
module
output
Prior art date
Application number
TW099105802A
Other languages
English (en)
Inventor
David Reynolds
Benjamin Vigoda
Original Assignee
David Reynolds
Benjamin Vigoda
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by David Reynolds, Benjamin Vigoda filed Critical David Reynolds
Publication of TW201037529A publication Critical patent/TW201037529A/zh

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1111Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06GANALOGUE COMPUTERS
    • G06G7/00Devices in which the computing operation is performed by varying electric or magnetic quantities
    • G06G7/12Arrangements for performing computing operations, e.g. operational amplifiers
    • G06G7/122Arrangements for performing computing operations, e.g. operational amplifiers for optimisation, e.g. least square fitting, linear programming, critical path analysis, gradient method
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06GANALOGUE COMPUTERS
    • G06G7/00Devices in which the computing operation is performed by varying electric or magnetic quantities
    • G06G7/12Arrangements for performing computing operations, e.g. operational amplifiers
    • G06G7/19Arrangements for performing computing operations, e.g. operational amplifiers for forming integrals of products, e.g. Fourier integrals, Laplace integrals, correlation integrals; for analysis or synthesis of functions using orthogonal functions
    • G06G7/1942Arrangements for performing computing operations, e.g. operational amplifiers for forming integrals of products, e.g. Fourier integrals, Laplace integrals, correlation integrals; for analysis or synthesis of functions using orthogonal functions for forming other integrals of product, e.g. orthogonal functions, Laplace, Laguerre, Walsh, Hadamard, Hilbert
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1131Scheduling of bit node or check node processing
    • H03M13/1137Partly parallel processing, i.e. sub-blocks or sub-groups of nodes being processed in parallel
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1148Structural properties of the code parity-check or generator matrix
    • H03M13/118Parity check matrix structured for simplifying encoding, e.g. by having a triangular or an approximate triangular structure
    • H03M13/1185Parity check matrix structured for simplifying encoding, e.g. by having a triangular or an approximate triangular structure wherein the parity-check matrix comprises a part with a double-diagonal
    • H03M13/1188Parity check matrix structured for simplifying encoding, e.g. by having a triangular or an approximate triangular structure wherein the parity-check matrix comprises a part with a double-diagonal wherein in the part with the double-diagonal at least one column has an odd column weight equal or greater than three
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6597Implementations using analogue techniques for coding or decoding, e.g. analogue Viterbi decoder

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Error Detection And Correction (AREA)

Description

201037529 六、發明說明: I:發明戶斤屬之技術領域】 交錯參考相關申請案 此申請案主張2009年3月2日提出申請、名稱為“Belief Propagation Processor,,,的美國臨時申請案第61/156,792 號,與第2010年1月11日提出申請的美國臨時申請案第 61093,999號的利益,其以參照方式被併入本發明中。 此申請案係有關於2009年3月2日提出申請、名稱為 “Circuits for Soft Logical Functions,”的美國臨時專利申請 案序號第61/156,794號,及2009年3月2日提出申請、名稱 為“Signal Mapping”的美國臨時專利申請案序號第61/156 , 721號,及2009年3月2日提出申請、名稱為“—骱讀 Logical Functions ’ ”的美國臨時專利申請案序號第61/156, 735號。此申請案亦有關於2009年8月6日提出申請、名稱為 “Storage Device with Soft Pr〇cessing ’,,的美國中請案序號 第12/537,_號。上述巾請案的内容以參照方式被併入本 發明中。 【先前技術3 發明背景 此文件有關於一類比可信度傳播處理器。 「可信度傳播」(BP)是解決統計推理問題的一有效方 法。此方法利用一隨機元件之網路及其約束的底芦鲈 及貝氏(Bayesian)概率法則來找丨滿足約束及網路結構要 求之最佳有效輸出組。 3 201037529 可信度傳播包括一類杜 技術,係利用呈—圖形式的系統 柄型來執行統計推理。「 參一,A 圖」—詞這裡指數學定義之一圖, 表不一組抽象對象的連接 對象之^ 常被稱為「節點」且 -當」 稱為「邊」。此賴型中所使用的 一吊見類型的圖被稱為〜「 子圖(-特定形式的因子_被稱為(r:°r graph)」。在一因 狄 口被稱為一「Forney因子圖)中, 即點表示值之間的統計關_ ^ ^ . $係,廷些統計關係被表示為邊。 其匕類型的圖,諸如貝氏 ”、路’及馬可夫隨機場(Mark〇v random field)也經常用於统計推理。 可‘度傳播方法之麵例藉由在圖中的節點之間傳遞訊 操作’其中母―吼4表示經其連接至其他節點之該節 點已知資㈣-概要1類方法以各財同名稱為人所 知’包括可信度傳播、概率傳播、訊息傳遞、及概要積演 算法等。這些方法的特定形式包括和積、最大積、及最小 和。 、為碼仏號處理、及人工智慧的許多方法可被視作概 要積方法(或可信度/概率傳播方法)的實例,其藉由訊息在 一圖形模型中㈣而操作。此類方法_定實例包括卡爾 曼(Kalman)濾波與平滑、隱藏式馬可夫模型之前向後向演 算法、貝氏網路中的概率傳播、糾錯碼的解碼演算法,諸 如維特比(Viterbi)演算法、BCJR演算法,及渦輪碼、低密 度奇偶校驗碼、及類似的碼之送代解碼。 可信度傳播可操作的圖包括兩種類型:有迴路的圖(有 迴圈圖)及無迴路的圖(無迴圈圖)。無迴路的圖也被稱為 201037529 「樹」。可信度傳播程序在這兩種類型的圖之間基本上不 同。對於一樹,可信度方法能以一具有明確定義數目之步 驟以計算結果的明確定義順序進行且假定理想計算,此結 果總是被認為是正確的。另一方面,對於一有迴路的圖, 可信度傳播方法一般是迭代的,這就是說,同一組計算必 須依次重複直至達到一結果。在此情況中,計算典型地收 敛於一有用結果,但並非始終收欽於一有用結果。在一些 情況中,計算可能不收斂於一單一結果,或如果收斂,結 ® 果在一些情況中是不正確的。對於一有迴圈圖,可信度傳 播的性能可取決於計算執行的順序,其被稱為訊息傳遞‘排 程,。 " 在上述一特定應用中,可信度傳播已被用作一實施針
* 對各種前向糾錯碼之解碼器的有效方法。在此情況中,BP 使用碼與約束的結構從包含雜訊之輸入碼字推斷正確有效 的碼字,例如,輸入碼字的每一元件(例如,位元)被表示為 一分佈而非一離散值。在前向糾錯之可信度傳播之一些實 ❹ 施中,一數位信號處理器被用來執行演算法所需要的各不 同算術計算,同時所有的統計資料以數位格式被處理。 觀察一項事實,「軟」概率資料本質上是連續的,亦即 以一有限間隔用實值表示,使用類比電路實施可信度傳播 是可能的。由於僅一信號、而非表示同一資料之數位信號 的不同數位(例如,二元數位、位元)的多個信號與統計資料 單元相關聯,硬體及功率消耗上的節約可能非常顯著。 已提出幾種利用類比電路來執行對各種碼(包括捲積 5 201037529 ==r_pc)或線性區塊,有效率解碼 之架構。廷些包括使用一所謂的全平架構 中每一輸人資料料與專用的計算林相_現’其 【韻'明内容】 發明概要 在一層面,大體上,—類比處理 模組及-第二記憶體模組。該第-記憶體::::憶; -組儲存值儲存於各自的儲存肖於將-弟 一各自的#搜抑私 仵中母一儲存元件表示 各自的處理讀入。該第二記憶體· 儲存值以類比形式儲存於各自的儲存元件中。、兮弟一、且 存值包括在該處理器的操作期間決定的 Μ —組儲 理器也包括-輕接至該第一與該第己體。該類比處 算模組。此處理器可被组態使得在拉紐之類比計 操作週期中該類比模組基於該第一與該第二=期中的每一 至少-些儲存值來決定該第二組儲,存值中之 的值。一輸出模組用於自該第二⑽存些儲存值 值產生-組輸出。 储存值之至少-些儲存 層面可包括或更多的如下特徵。 存值該第-儲存模組被組態成以類比形式儲存該第一組儲 該該類比計算模組經_比錄路徑被鏈接至該第一 與該第二記憶體模組。 該第二記憶體模組。例如各類 該類比計算模組經由類比信號路徑被鏈接至該第一與 比信號路徑被組態成於一導 201037529 體體被—-之-電壓及 =^模組可„成錢—織數操作週期決定該第 一、儲存值之一不同子集的值。 成將=?器包括輸入選擇電路,該輸入選擇電路可組態 選定記憶體元件之輸卜 ,、以-㈣體模組之
匯、=處理㈣於每一類比計算模組進—步包括複數信號 切母—隨排提供—輸人值給該類比計算模組且可 '★接至該第二記憶體模組之該複數儲存元件。 件中件_接何切換地提供儲存於該儲存元 睹存值的-電流表示使得提供給該類比 的該輸入值被声干兔,^ D 輪、、且 n Γ 與料料元件提供之該等 € μ表不的一總和成比例之電流。 可進—步包括輪出選擇電路,該輪出選擇電路 了題成接收該第-與該第二記憶體模 件的輸出,並決定該魁處理器的輸出。以錢體元 該處理器包括多個類比計算模組,該等類 在各操作週期_時可操作來決定該第二組儲存值之^ 子集的值。 ° j第二記憶體模組包括複數區段每—區段與 莫組之一相對應的不同類比計算模組相關二用來 錯存__計算·所蚊的值。 w 6玄第二記憶體模組被組態使得在 早 操作週期,每 7 201037529 一儲存元件可提供一儲存值給一或一個以上的該等類比計 算模組且可接受一預定值儲存於該儲存元件中以提供於一 後續操作週期中。 每一儲存元件與兩儲存位置相關聯使得在任一週期 中,一儲存位置被用於接收一預定值而一儲存位置被用於 提供一值。 該第二記憶體模組包括複數記憶體區段,諸組該等區 段形成記憶庫,其中對於各該類比計算模組,至該模組的 每一該複數輸入與該等記憶體區段之一不同的記憶庫相關 聯。 該處理器是可組態的使得在每一週期,每一記憶體區 段包括提供值給一或一個以上的類比計算模組或用一或一 個以上類比計算模組的值來更新之記憶體元件。 該處理器被組態成實施一可信度傳播計算。 所述處理器被組態成實施一因子圖計算。 該類比計算模組被組態成接受及提供實質上為對概 率、似然、及似然比中之至少一者的對數表示之類比信號。 該處理器被組態實施一低密度奇偶校驗(L D P C)碼之解 碼器。 該處理器,其進一步包括:一控制器,其被組態成控 制該處理器的操作來執行計算的一組迭代,每一迭代包含 一組計算週期。 該組計算週期在每一迭代中實質上是相同的,每一週 期與該第一及該第二儲存模組之一組態相關聯以將輸入及 201037529 輸出提供給—或―個以上的類比計算模組。 錢理器被組態及/或可組態成實施—解瑪器奇偶校 焉且4週期與一或一個以上的奇偶校驗約束相關 聯及其中每一迭代的該等週期一同與該碼的所有該等奇 偶校驗約束相關聯。 該類比計算模㈣施類比處理元件的一網路。
該等類比處理元件包括表示軟邏輯操作之元件。例 如,該等軟邏輯操作包括軟XOR操作。 元件的該網路是無迴圈的。 牛的該網路包括至少—&件週期,細比計算模組 被組態成實施一鬆弛計算。 該類比計算模組包括用以在處理元件的該網路中組態 一或—個以上的增益特性之輸入。 在另—層面’大體上,—解碼器包括 :用傅存具有—以位元計的長度之碼資料之第一記憶 用於儲存類比形式之中間資料之第二記憶體;該 =器包括至該第-記憶體及該第二記憶體之類比 Μ解碼純心具有—小於該碼資料長度的輸 於在該碼資料中表示之-約束數的輸出長 i期將」㈣—步包括—控制器’其用於在每—該複數 :期將_抑碼的料輸4接至該第—與該第二記憶 疋值,並耦接該解碼器核心的輸出供儲存在該第二 、: 乂解碼器的—輸出區段被耗接至該第二記憶體 、土;儲存於4第—讀體巾儲存的值來提供解碼資料。 9 201037529 在另一層面,大體上,一方法被用於形成一類比處理 器的一資料表示。該方法包括形成:一第一記憶體模組的 一資料表示,該第一記憶體模組供在各自的儲存元件中儲 存一第一組儲存值,每一儲存值表示一各自的處理器輸 入;一第二記憶體模組的一資料表示,該第二記憶體模組 供在各自的儲存元件中以類比形式儲存一第二組儲存值, 該第二組儲存值包括在該處理器的操作期間所決定的中間 值;形成一耦接至該第一與該第二記憶體模組之類比計算 模組的一資料表示,該處理器是可組態的使得在每一該操 作週期該類比模組基於該第一與該第二組儲存值中之至少 一些儲存值來決定該第二組儲存值之至少一些儲存值的 值;及一輸出模組的一資料表示,該輸出模組供自該第二 組儲存值之至少一些儲存值產生一組輸出。 在一些範例中,形成該等資料表示包括形成該處理器 的Verilog表示。 該方法進一步包括依據該形成的資料表示來製作該類 比處理器的一積體電路實施。 在一些範例中,該方法進一步包括接收一奇偶校驗碼 的一規範;並形成該等資料表示以戈表該碼之一解碼器的 一實施。 在另一層面,大體上,儲存於一電腦可讀取媒體上的 軟體包括當應用在一設備之一電腦組件中形成任一上述類 比處理器之一積體電路實施時的資料賦予功能指令及/或 資料賦予功能。 10 201037529 在另一層面,大體上,解碼方法包括,在一解碼操作 之一系列週期的每一週期,應用一部分的碼資料及一部分 的中間值資料於一類比解碼器核心,並將該解碼器編碼器 之一輸出儲存於該中間資料的一類比儲存體中。包括該類 比儲存體的中間值資料之資料被結合形成表示該碼資料的 一糾錯之解碼資料。 在一些範例中,該系列週期的每一週期與少於碼的所 有複數奇偶校驗約束之一相對應子集相關聯。該中間值資 ^ 料可包括與碼的該等奇偶校驗約束之一不同的奇偶校驗約 束相關聯之各值。 在另一層面,大體上,一處理器包括用以儲存一第一 ' 組儲存值之一第一記憶體模組,每一儲存值表示一各自的 輸入,及用於儲存類比形式之一第二組儲存值之一第二記 憶體模組。一類比模組被耦接至該第一與該第二記憶體模 組。該類比模組被組態成,在至少一迭代的每一操作週期, 基於該第一與該第二組儲存值來更新該第二組儲存值中的 ❹ 至少一些儲存值。一輸出模組是用於自該第二組儲存值的 至少一些儲存值產生一組輸出。 該類比模組可被組態成在一迭代之至少兩操作週期中 的每一操作週期更新該第二組儲存值的一不同子集。 該類比模組可包括一組分佈組件,每一組件被組態成 使用該第一組儲存值與該第二組儲存值之一不同子集來更 新該第二組儲存值的一不同子集。 在另一層面,大體上,一解碼器包括一儲存具有一以 11 201037529 位元計長度之碼資料的第一記憶體,及一儲存類比形式中 間資料之第二記憶體。一類比解碼器核心被耦接至該第一 記憶體及該第二記憶體,該解碼器核心具有一小於該碼資 料長度的輸入長度及一小於碼資料中表示之一約束數的輸 出長度。一在該解碼器中的控制器是用於,在每一該複數 週期,將該解碼器碼的該等輸入耦接至該第一與該第二記 憶體的選定值,並耦接該解碼器核心的輸出供儲存在該第 二記憶體中。一輸出區段被耦接至該第二記憶體以基於該 第二記憶體中之儲存值來提供解碼資料。 在另一層面,大體上,一解碼方法包括,在一解碼操 作之一些週期的每一週期,應用一部分的碼資料及一部分 的中間值資料於一類比解碼器核心,並將該解碼器編碼器 之一輸出儲存於該中間資料的一類比儲存體中。包括該類 比儲存體的中間值資料之資料接著被結合以形成表示該碼 資料的一糾錯之解碼資料。 一或一個以上層面的優點可包括如下: 使用中間值的類比計算及/或類比儲存較之一數位實 施,例如在迭代解碼或糾錯碼的應用中,提供了較低功率 及/或較小電路區域。 迭代使用一或一個以上的計算核心較之類似解碼演算 法之完全平行鬆弛實施提供了較低功率及/或較小電路。在 一些範例中,一部分鬆弛實施,其中一計算的部分在一系 列週期的每一週期以鬆弛形式被實施,透過一完全平行關 係實施可提供類似的優點。 12 201037529 方法適用於區塊碼的解碼,無需實質上隨碼長度而增 加一實施的規模及/或功率需求。 本發明的其它特徵及優點由下面的說明,及申請專利 範圍是顯而易見的。 圖式簡單說明 第1圖是一長度為8LDPC碼的示範因子圖; 第2A圖是一說明一雙向鏈接的變數節點變換成一組定 向鏈接的變數節點之圖,且第2B圖是一說明一約束節點的 ^ 一類似轉換之圖; 第3圖是第1圖所示圖的一部分; 第4圖是對應於第3圖所示雙向圖部分之一定向圖的一 ' 部分; 第5圖是說明一對應於第4圖所示圖部分之一模組實施 的圖; 第6圖說明輸出計算的一圖; 第7A圖是繪示輸入與輸出之間的關係或一模組的一
Q 圖,及第7B圖說明相對應的碼矩陣。 第8圖是一使用一分享模組針對一長度為8 LDPC碼之 一解碼器的一實施之圖; 第9圖是一指定第8圖所示分享模組的輸入及輸出之表 格; 第10圖是一有兩分享模組的解碼器的方塊圖; 第11圖是一(1056,352) LDPC碼的一奇偶矩陣之一表格 表示; 13 201037529 第12圖是一與第11圖所示碼一起使用之分享模組的一 圖, 第13圖是一有八個分享模組(繪示其中二者)之一 (1056,352) LDPC碼的一解碼器之一方塊圖; 第14圖是一變數節點之一電路實施; 第15A圖是一約束節點之一電路實施; 第15B圖是一約束節點之一可選擇實施; 第16圖是一說明一變數節點的一分佈匯流排實施之 圖; 第Π圖是一可選擇分享模組的圖; 第18圖是一使用變數節點的分佈式匯流排實施之一解 碼器的方塊圖; 第19圖是一針對一(1056,352) LDPC碼的一解碼器的一 可選擇架構之方塊圖; 第20圖是一繪示第17圖所示架構中的多個更新模組之 方塊圖;及 第21A-B圖是一解碼器的一實施之一方塊圖。 【實施方式3 說明 參考第1圖,在一可信度傳播處理器之一基於類比實施 的一範例中,低密度奇偶校驗(LDPC)碼是基於一因子圖 (factor graph)100,其中一變數節點110與每一不同輸入位元 (~)相關聯,且一校驗(約束)節點120與每一約束相關聯。 在第1圖中,繪示一有八輸入位元有輸入位元上的四校驗 14 201037529 (約束)之範例。碼能以矩陣形式被表示,其中每一行與一不 同輸入位元相關聯,且每一列與„不同校驗或約束相關 聯。如果第j輸入被用於第i約束,一 (i,j)項為i,否則為〇。 在LDPC$i例中,、約束是,針對—約束之輸入的x〇R為〇。 依據下面%c驗矩陣可表示長度為8 LPDC的此範例(指出的 疋,在此忒明性範例中列依賴模數2,這通常未必為真): '01011001' 11100100 Ο
00100111 10011010 在第1圖中,每一邊是雙向的。參考第2A_b圖,藉由用 η獨立節點替換各n邊節點可形成一等效定向(單向)圖,各n 節點具有η-1個輸入及一輸出,及在節點之間形成單向邊來 實現原始圖的連接性。參考第2Α圖,例如,每一3邊變數節 點110可用三個2輸入/1輸出變數節點21〇、212來替換。參 考第2Β圖,每一4邊校驗節點12〇可用四個3輸入/丨輸出校驗 節點220來替換。 對應於第1圖所繪示的因子圖之一解碼器的類比實施 之一方法係對專效导向圖的每一節點實施一電路元件。參 考第3圖,闡述第1圖中所繪示圖的一部分,繪示校驗節點 0(120)、雙向邊及鏈接至此校驗節點之變數節點1、3、4及 7(110),以及鏈接至這些變數節點之其它校驗節點1、2及 3(120)。參考第4圖,繪示對應的定向圖的一部分,其中校 驗節點0(12〇)被擴充為四個3輪入Π輸出校驗節點220,例如 標為「0/1」係指示這是校驗節點〇之部分的擴充同時輸出 15 201037529 鏈接耦接至變數節點1。類似地,變數節點1(110)以其擴充 至三個2輸入/1輪出節點21()、212來被綠示,例如標為「1/〇」 係指示這是變數節點i之部分的#充同時輸出雜叙接至」 校驗節點0 ’或標為「1/GUt(輸出)」指示輪出鏈接提供因子 圖的一輸出。 ,在第4圖中部分說明的範例中,—完全實施對每一校驗 節點有四電路元件(即,總共丨6擴充單向校驗節點220),及 每-變數節點三電路元件(即,總共24擴充單向變數節點 210、212)。如下面將進_步描述,在—變數節點的三電路 元件中❿電路元件(即,所有變數節點中共Μ擴充變數節 點21〇)在解補作的-迭代階段被祕訊息傳遞,及—電 路元件(即,所有變數節點中共8擴充變數節點21〇)在解碼择 作的-㈣階段被用來產生解碼器輸出(亦即,「可信度」卜 操作中,輸入信號yi被用來判定輸入訊息之相對應的類 比表示,其可在—信號映射電路中被判定。在-些範例中, 輸入訊息形賴應純元k概率㈣,但讀者應該認識的 是下面針對涉及㈣概率㈣之計算的討論是說明在計算 期間被儲存或傳遞之-特㈣式的輸人及内部訊 息。這些 訊息被提供給變數節點210的輸入,例如,作為類比輸入暫 存器260的輸出。如下面進—步討論,在—些實施例中,位 兀概率之表讀提供為㈣—(優先)聽減比(LLR)之輪 入暫存器260的類比信號,該對數似然比典型地為如下形式 wi ^ = 〇\)^ lvPr(^· =1}¾)] ^ 16 201037529 在同等優先位元概率的情況下,Ρ〇=0)=(1^=1)等於 fPCM^o)!
1PGLi)J *' ο 在一些範例中,這些位元概率以單端或微分形式(例 如,對每一單向信號使用一對導通路徑)被編碼為電壓或電 流。
在第4圖中被部分闡述的方法是一些實施一對應於第1 圖所示之解碼器之方法中的一方法,涉及引入一類比記憶 體元件230來中斷定向圖中的一些或所有週期。在第4圖所 示的方法中,記憶體元件在校驗節點的輸出被引入。其它 版本具有此類取代或除開在校驗節點的輸出引入的記憶體 元件外而在變數節點的輸出引入之記憶體元件。指出的 是,在還有其它實施例中,一些或所有週期仍沒有記憶體 元件,且隨著信號傳播經過週期,操作至少部分地基於一 「鬆弛」形式的計算。在一些實施例中,作為基於鬆弛與 記憶體結合的計算被使用。 如第4圖中部分闡述之範例說明,記憶體元件230在此 實施例中以類比形式儲存值,且在校驗節點220的每一輸出 被引入;亦即,16記憶體元件被引入。爲了符號簡單,這 些位置對於被鏈接至變數節點j之校驗節點i的輸出被編索 引為(i,j)且標為「Ci,j」。指出的是,每一位置對應於碼的 校驗矩陣中之一非零項。(i,j)記憶體位置對應於碼之校驗 矩陣的非零項第i列,第j行。 在利用類比記憶體元件之一些方法中,記憶體被引入 17 201037529 圖的電路實施中使得藉由中斷定向圖中的所有週期而在定 向圖中不保留週期。電路實施接著在—系列計時週期中二 作’使得在每-週期’自-些或所有類比記憶體元件讀取 之類比值經過類比電㉟元件㈣播至—些或所有記憶體元 件的輸入而它們在時鐘週期的末端被儲存。如下詳細吋 論,此計時(「間斷時間」)實施可與—可由一鬆弛(「連續 時間」)實施而產生的相類似結果被用來解碼。 參考第5圖’第4_示_的另_部分說明包括與原 始校驗節點0(120)相關聯之四擴充校驗節點22〇的輸出。一 電路區塊39G形成-類比計算模組,其包括擴充變數節點 1/〇、3/〇、及7/〇(21〇)的實施,它們有到四擴充校驗節點22〇 的輸出。指出的是,校驗節點〇對應於碼的矩陣表示之列〇, 這在第7B圖中再現。指出的是,如第7A圖所示,電路區塊 390的輸出對應於矩陣表示的記憶體位置列〇。忽略在行〇中 的項,電路區塊390的輸入對應於在列〇有一非零項之矩陣 表示的每-行巾的非零項。在此_巾,輸人對應於⑴、 3、4及W、2及3巾的轉項。這除了輪人位元概率m、 B3、B4、及B7的輸人外產生四記憶體單元輸人α,卜c3,3、 C3,4及 C2,7。 對於-長度為8 LDPC之解碼器的—完全計時電路實 施之-範例在每-單向校驗節點22()的輸出具有—記憶體 元件230,及電路區塊390的四副本,—副本對應於碼矩陣 的每一列。在解碼操作的第—階段,每一單向變數節點 210(即,共16電路元件)自-記憶體元件⑽的—輸出及輸入 18 201037529 位元概率260之一取它的輪入。(指出的是,通常對於其他 尺寸碼’變數節點不只與兩校驗節點相關聯,且因此變數 節點將自多個記憶體元件取作輸入值)。記憶體單元23〇整 體形成一被組態成使得實際上所有值在每一時鐘週期的末 尾被立即更新之記憶體。這一記憶體的一實施使用一「雙 緩衝」方法,其中兩記憶體組被使用,及在每一時鐘週期, 一記憶庫被讀取而另一記憶庫被寫入,記憶庫在每一時鐘 週期之間切換作用。 在一些範例中,解碼器可在連續時鐘週期執行記憶體 更新,每一時鐘週期對應於對記憶體25〇之所有記憶體單元 的一完全更新。在解碼操作的第一階段要被執行之時鐘週 期數可以是預定的,例如,基於設計偏好或取決於某些收 敛條件的滿意度,例如,碼約束(即,完全糾錯)的滿意度或 基於迭代之間輸出值的改變率之一條件。 參考第6圖’在-些範例中,一旦記憶體更新的迭代被 完成,解碼H前進至解碼操作的輸出階段以產生表示位元 估计之解碼雜出。這裡,解碼器輸出被表示為 ,母一 輸出基於整個輸入信號為對_相對應輸入位元(bj)的一估 "十在二範例中,如第6圖所繪示,可用節點212在解碼 之後輸出-包括位元概率的_表示之訊息例如作為一 LLR,被考慮約為
lpC^ = ib\i) J 其中表不不包括yi的觀測。變數節點212的輸出與輸 19 201037529 入暫存™ 260的輪入位元概率表示被結合於一結合元件312 中’以基於所有輪入及解碼位元之間的約束形成位元概率 的表不。回想輪入暫存器260的輸出可被考慮表示 log 及因而結合元件312之結合的概率輸出被計算為一和 約為 i〇g vPr(^=ib) / 其中,y表示所有的輸入值。可取捨地,結合的位元概 率、”二過硬式決定,其在二元輸出及對數表示的情況下基 於大於或小於零之結合的對數似然比的一門椴判定&取〇 或1值。例如,使用記憶體元件co,i及ci,i與輪入B1產生位 =估汁的輸出元件。在一些實施中,該組八輸出元件可 、、'…、成以一平行方式操作來在一單一時鐘週期内產生全
•A 組位凡估計。指出的是,如第6圖所㈣,元件212與312 繪f為分離的。然:而,每—元件有效地計算其輸入之和, 及該兩總和可被結合於一單一電路元件315中。 參考第8圖,在一計時電路實施之另—範例中,定向圖 的各點並不要求職於—不同的電路元件。亦即,某 一電路元件形成類比計算模組(「核心、」),該等類比計算模 、”且在每次迭代中隨不同輸人及輸出連接(即分享的)被再使 用多次。多模組390在前一範例一時鐘週期中所執行的功能 係在—系列時鐘週期中被執行,使得在每—該序列時鐘週 20 201037529 期僅有一些記憶體元件230被更新,所有記憶體元件在該系 列時鐘週期的末尾被更新。類似地,在解碼操作的輪出階 段,一或一個以上分享電路元件(例如元件315)可在一輸出 區段395被再使用以在一系列時鐘週期之一週期中產生一 或一個以上位兀估計。在下面討論中,更新第3圖中所有記 憶體元件的整個系列時鐘週期被稱為一「迭代」。
繼續參考第8圖,-分享模組39〇被搞接至輸入選擇電 路370及輸出電路38〇,它們一同提供到記憶體中記憶體元 件230的介面。例如,輸入電路37()將_變數節點训的每一 輸入麵接至i當喊體單元23〇的輸A並祕至一適當 的輸入暫存II26G,它們共同形成—輸人記憶體模組265, 及輸出電路380將校驗節點22_輸出傳遞至適當記憶體單 元230的輸人’其共同形成—中間記髓模組,。在此範 例中”享的核組州包括被需要用來計算對應於在第】圖 闊述之因子®中的—雙向校驗節點12G之所有輸出的所有 I數即點21G與校驗節點22〇。在—迭代之每—連續時鐘週 期』間輸入電路370與輸出電路380被有效重新組態成改 艾變Ha 21 g與校驗節點2 2 Q對記憶體2 5 g及輸入位元的 連接。 ^為使用第8圖所閣述分享模組390之-多次循環迭代 的範例,第9圖所示的表格閣述一迭代的四時鐘週期期間 的’心扎出的疋,針對週期〇指示的組態對應於第5圖繪 不的組態。 在一些範例中 多個分享模組390在一單一積體電路中 21 201037529 如,在第Γ所示的_爾改為具有兩分享 t争Γ在每 期為記憶體單元23峨供八個新 四約ίΓ有記憶體單元的迭代共㈣兩週期(即,每迭代 2束除以每週期兩約束產生每迭代兩週期)。類似地,在 :些範例中’一分享模組可更新較少單元,例如,在每一 2週期僅更新-單-h(即,使用—單_校驗節點220 及二變數節點210)。 在上面第8圖所述的範例中,直到整個迭代被完成之 後,記憶體250的更新值並不經過記憶體的輸出。在一些範 例中,在-時鐘週射被決定的更新值可在同—迭代内的 後續時鐘週期期間在記憶體的輪出被呈現。在此類範例 中,校驗節點的輸出被計算(「排程」)的順序可能是重要的。 排程的範例包括對與各該校驗節點⑽相關聯之輸出(見第 1圓中的ϋ子圖)的-順序更新,及其中不同節點在每一時 鐘週期被更新之隨機更新。 參考第10圖,在一些範例中,多模組39〇被使用(但非 使知一迭代可在一單一週期中被完成的足夠數目”及輸 入選擇電路370 '輸出選擇電路380、及記憶體250被分佈在 組本地處理元件49〇中,且各本地處理元件49〇具有一分 旱模組390。各本地處理元件具有一本地輸出電路48〇及一 本地輸入選擇電路470。記憶體係被分佈使得在一本地處理 元件之記憶體450中的記憶體單元230為在一迭代之各不同 時知週期中被分享模組390更新之單元。如所說明,記憶體 單元之每一列在一時鐘週期中被更新。一控制輸入依據被 22 201037529 執行迭代中的週期來控制輸入與輸出電路的組態。指出的 是,一般地,在一本地處理元件490的一分享模組390需要 其自身本地處理元件及/或另一(或較一般地一或一個以上 其匕的)本地處理元件之一本地記憶體470中的記憶體單元 230的輸出。本地輸入選擇電路47〇選擇各該本地處理元件 所需要的s己憶體單元並將這些值傳遞到一全域選擇單元 440 ’其接著決定傳遞至各本地處理元件上之適當子集的記 憶體值。在輸出階段,記憶體單元被耦接經過選擇電路47〇 至輸出區段495來決定輸出。第1〇圖所示組態也可被理解為 第8圖所示輸入選擇邏輯370的功能被分佈在區塊47〇與442 之間’且輸出邏輯380被分佈在區塊480之間。 在一些範例中,全域選擇單元440可包括一組選擇單元 442,各耦接至一各自本地處理元件的輸入以提供相對應的 子集記憶體值給分享模組39〇。例如,一選擇單元442可接 收表示兩本地輸入選擇電路47〇提供的記憶體值之8信號來 產生表示被k供給第1〇圖左邊所示之本地處理元件的記憶 體值之四輸出信號。 再久參考第8圖,在一些範例中,整個記憶體25〇被組 態使得所有值正好在_迭代巾被有效更新。在這—使用一 又緩衝」方法之3己憶體的一實施中,兩記憶體組被使用。 在迭代k’寫入電路始終寫入記憶體組#1,及讀取電路始終 自《己隱體組取。在迭代k的末尾,記憶體組已實現一 完全更新。在下-迭代中k+1中,寫入電路切換為寫入記憶 體組#2中及取電路自在上次迭代中剛被更新之記憶體 23 201037529 賴讀取。在赠況巾,記憶體2轉需要兩倍於本地校驗 節點的輸出量之容量來保持分別供讀取與寫入操作之兩不 同副本。 在-些fc例中,使用-增量「排程」方法來組態系統, 這-子集的值被更新且在每-週期的末尾而非在由多個週 期構成之整個迭代的末尾可用。在一些此類範例中,例 如使用如第8圖所示的一單一區塊39〇,在—週期中被讀取 的記憶體單元與在一週期中被寫入的位置之間沒有衝突。 沒有衝突的原因可參考第7A-B圖來理解。例如,應用一對 應於列0的約束,對應於該列中非零項的記憶體單元被寫 入,而其它列中特別在列0有非零項之諸行中的記憶體單元 被讀取。 再次參考第10圖,當兩或兩個以上更新模組490被使用 時’可能的是’在一模組中被更新的一記憶體單元在同— 週期在另一模組中被讀取。這可又參考第7A-B圖來理解, 例如,在一模組正應用與列0相關聯的約束及另—正應用與 列1相關聯的一約束之一情況中。列0約束的應用寫入C〇 1 及讀取Cl,l,而列1約束的應用寫入Cl,l及C0,1。 在另一實施中,針對一增量方法之一記憶體250並不需 要整個記憶體容量的兩倍。這裡’在第一半時鐘週期k,讀 取電路自記憶體獲取一些值,其中之一些值在一前面時鐘 週期k-Ι已被更新。XOR閘的輸出在第2半時鐘週期k期間被 寫回至同一記憶體。在一些範例中,藉由使用邊敏感(取代 級敏感)記憶體’同一時鐘週期中的讀取及寫入操作將不互 24 201037529 相干擾。 上面在一長度為8碼的脈絡中所描述的方法適用於一 (1056,352)LDPC碼的-較大範{列,諸如在基於IEEE 8〇2 16 的通訊中使用。碼的校驗矩陣能以把〇,丨矩陣分解成44χ44 區塊之8列χ24行之表格形式來表示,每一區塊全為零,或 為在每列每行中具有一非零項之一移位對角線。碼的此表 格表示在第_中缘示,表格表示中的上左(〇〇)區塊(繪示 ❹ 數「〇」)是一對角矩陣,示為「8」的(〇,2)區塊是一非對 肖區塊Μ [山吏得若j=1+_mij=1否則為〇。全因子圖並 未緣示,但能以與第丨圖所闡述範例相同的方式自矩陣表示 來取4导。 參考第12圖,-模組590對於在_圖所示的碼被組態 . 成包括變數節點5職約束節點520。指出的是,在第12圖 中闡述的碼是單向節點,其中鏈接為輸入或輸出鍵接。對 於上面纣論長度為8碼而言,模組59〇類似於模組39〇。指出 〇 的是,第11圖所示碼矩陣之每—列在除了列區塊6以外的所 有列區塊中都有十非零項,列區塊6每區塊有十一非零項。 爲了實施列區塊6以外的約束,模組59〇有十(單向)變數節點 510及十(單向)約束節點52〇,且對於在列區塊6中的列有十 —(單向)變數節點510及十一單向)約束節點52〇。每一變數 節點接收對應於碼矩陣之一特定行中的非零項之記憶體單 凡的輸入。因此,對應於範圍〇至15中的行之變數節點有四 輸入(三輸人針對對應於碼矩陣中之項的記憶體單元且— ]、十對位7L概率)及―輸出崎16至23的變數節點具有兩 25 201037529 或二輪入,視行及區塊列而定。在一些範例中,模組59〇具 有最大數目的必需變數節點及輸入,並在不同週期期間是 可組態的以藉由例如忽略某些輸入來包括特定數目的需要 變數節點及輸入。 第13圖是一可操作來執行解碼操作的迭代階段供第^ 圖所示的(1 〇56,352)LDPC碼使用之解碼器的一種類型的實 施。在這一實施中,解碼器包括一類比輸入記憶體66〇,其 儲存對應於第11圖所闡述之LDPC碼的1056位元(即,44中 的24區塊)之輸入位元概率的表示(例如,如編碼對數似然比 的電壓)。這些輸入位元接著被記憶體選擇電路672分配以 在一組本地處理元件690中被處理。各本地處理元件69〇有 一分享模組590 ’該分享模組590包括被需要用來計算對應 於完全因子圖之一校驗節點的所有輸出之變數節點與校驗 節點。各處理元件690的結構類似於第10圖所示實施一長度 為8碼的解碼器之各處理元件490。 各本地處理元件690也包括一本地輸出電路680,該本 地輸出電路680將本地校驗節點的輸出導引至一記憶體650 的適當單元630。在此範例中,記憶體在作為一組本地記憶 體650之該組本地處理元件690間被分配,各本地處理元件 包括在一迭代之各不同時鐘週期中被其本地處理元件 69〇(非其它本地處理元件)之分享模組590更新之記憶體單 元630。如前所述,一般地,在一本地處理元件690的每一 分享模組590需要其自身的本地處理元件及/或一或一個以 上其它本地處理元件之一本地記憶體6 5 0中的記憶體單元 26 201037529 的輸出。這些輸出由一組本地讀取電路670獲得,該組本地 讀取電路670自本地記憶體650獲取值並將它們發送給一全 域選擇單元640,該全域選擇單元640接著決定在各不同時 鐘週期要被發送至個別本地處理元件690之輸出值的適當 組合。全域選擇單元640包括-與各該本地處理元件相關: 之單獨的輸入選擇單元642,並將儲存在記憶體65〇中、在 每一迭代需要用於輸入該單元之值提供作為輸出。
在第13圖所闡述類型的實施可具有不同的處理元件 數,並在一解碼迭代的不同週期使用應用各352約束的不同 排程。回參第11圖,在(l〇56,352)LDPC的矩陣表示中,在 共8列區塊當中,列區塊中的7列(即,列區塊〇,5,及7)包含 10非零項,而在一區塊的列(列區塊6)各包含U非零項。因 此,在項的192(即,24*8)區塊中,僅81區塊為非零,及各 非零區塊在共3564(44的81倍)項中恰有44非零項。 第13圖所示的示範安排使用一組8本地處理元件69〇, 每一本地處理元件690可組態成執行與校驗矩陣之列之一 相對應的區塊中一校驗節點(即一列)相關聯的計算。換言 之,每一本地處理元件690在44週期中被重複使用來計算被 相對應區塊巾碼矩_44列表示之44約束的輪出。例如, 該8元件在。第-週期分別應用約束〇、44、88、·.、谓,在 一迭代的最後週期分別應用約束1、45、89、. 、3〇9及最 後分別應用 43、87、131、...、351。 指出的是,由於碼矩陣各列方塊中的差異,每一本地 處理元件69G中的分享模組可有差異。考慮用以執行與 27 201037529 第一(列區塊〇)區塊中的一列相關聯的計算之一分享模組 590。在單向圖中之對應的校驗節點有10邊鏈接至變數節 點。各第一個8變數節點有五邊,四邊用於校驗節點及一邊 用於一位元輸入;第9個變數節點有四邊,三邊用於校驗節 點及一邊用於一位元輸入,及第10個變數節點有三邊,兩 邊用於校驗節點及一邊用於一位元輸入。分享模組590因而 有1〇(單向)校驗節點的電路,每一電路有9輸入及一輸出。 校驗節點的10輸出更新本地記憶體中的10位置。本地處理 器有1〇(單向)變數節點510的電路,每一電路有四、三或兩 輸入級一輸出。各節點510提供一輸入給10(單向)校驗節點 520中的9個。在每一變數的輸入中,一輸入是針對一輸入 位元概率且其餘是針對本地記憶體中的值。 其它本地處理元件中的分享模組590與與列區塊0相關 聯的模組具有相同的結構,不同包括列區塊6的分享模組 590具有11校驗節點、及11變數節點,而區塊1至5的分享模 組590各具有有兩輸入的兩變數節點而其它變數節點具有 四輸入。 操作中,在每一時鐘週期,列區塊0的分享模組590之 變數節點自輸入記憶體660讀取10組輸入,一組用於每一變 數節點及更新本地記憶體650的10位置。記憶體650的值傳 遞經過多個本地處理元件690的區塊670並經過與目的地處 理元件相關聯之控制單元642。超過一迭代的44時鐘週期, 分享模組590為本地記憶體中的所有440(10的44倍)位置提 供更新值。 28 201037529 如上概述 些實施例中,除了針對列區塊6作為一 nx韻組而實施之分享模組细外,各該分享模組谓 為1〇變數節點與Π)校驗節點之-組合(也稱為—iGxi〇分古 模組)而被實施。 予
-些不同電路㈣及錢編碼可在均方法中使用。 對於某些軟解碼應用,使用—軟相㈣可形成每一變數節 點,及-軟XOR閘可形成每—校驗節點電路。在第13圖的 範例中,每-變數節點採用一4輸入(或3輪入或2輸入)軟相 等閘的形式及每-校驗節點採用一 9輸入(或ι〇輸入)軟職 閘的形式。因此’對於每—分享模組59Q,除了自輸入記憶 體660讀取1〇(或U)輸入位元(各軟相等閘)外,也需要本地 記憶體650(每一軟相等閘一組)的1〇(或u)組值。指出的 是,在此範财,這些值來自其它本地處理元件中的記憶 體單元’而非來自同—處理元件巾的記憶體㈣。 提供輸入至分享模組59G所需要之適#組合的記憶體 值之一方法包括在全域控制單元540中形成一組8個個別選 擇單元642 ’各選擇單元642選擇或結合一相對應分享模組 590的輸入值所需要之本地處理元件69〇的輸出。在一些範 例中,每一讀取電路670選擇性地耦接至該組8個選擇單 兀,例如,使用一組8個匯流排,每一匯流排包含1〇(或u) 導線’用於在一時鐘週期將共1〇(或丨丨)輸出值發送至一個別 選擇單兀。選擇單元642接著選擇一組10x3(或11x3)輸出值 供輸入至分享模組690。 在一些實施例中,藉由將解碼器安排至本地處理元件 29 201037529 中’所有的XOR信號對它們所被形成的本地處理元件變成 本地的。相等閘的輸入變成來自多個本地處理元件之全域 路由信號。在一些範例中,本地處理元件69〇能以一方式被 組態’使得每一分享模組69〇僅需要一預定組的三其它本地 處理元件的輸出值。結果,每一本地處理元件至全域控制 單元640之間的耦接可被減小,例如,讀取電路67〇現在正 被耦接至僅3(非8)選擇單元。在一些範例中,本地處理元件 690可進一步被安排使得所有偶數(即,0、2、4及6)本地處 理元件彼此通訊但不與奇數(即,丨、3、5及7)本地處理元件 通訊(除了校驗矩陣的最後八區塊行外)。 指出的是’在一些有關於軟解碼的應用中,納入考量 滿足區塊的原始位元之約束’上面所述解碼器被用於將基 於每一位元個別量測之輸入「軟」位元轉換成各別基於軟 位元整體區塊的軟位元。這些輸出軟位元接著可進一步由 取值0或1硬式決定處理或轉換成輸出「硬」位元。輸入軟 位元可在概率域中提供,例如,作為是丨或〇值之一位元的 概率。可選擇地,輸入軟位元可在對數域中提供,例如, 作為一位元的對數似然比(例如,如下面定義 logi^ziMl 1^难=1 丨 j。 在任一情況中,使用一組執行適於特定應用的類比計算功 能之類比電路組件可實施分享模組590。在2009年3月2曰提 出申請、名稱為“Circuit for Soft Logical Functi〇ns”的美國 專利申请案序號第61/156,798號中詳細闡述了一些此類類 30 201037529 比電路組件(諸如,軟相等及軟XOR)的實施。 參考第14圖,在一些實施中,軟相等利用不同電壓輸 入,表示一對數似然比的每一電壓輸入產生與輪入和成比 例的一電壓。每一不同電壓輸入經過一電壓至電流轉換器 712,且生成電流在一匯流排714上被匯總。該匯流排上的 電流經過一電流電流至電壓轉換器716。輸出電壓接著支流 至需要此一相等節點之輸出的軟x〇R電路。示範電路實施 在圖中被繪示。各種可選擇電路可被使用,包括在美國專 利申請案序號第61/156,794中所描述之可選擇軟相等電路。 參考第15A圖,在一些實施中,軟x〇R電路利用第14 圖所不電路產生的對數域差動電壓。在第15A圖所示的軟 x〇R電路之示範實施(估算對數域處理的一理想軟XOR函 數)中,一差動電壓輸入被傳遞至一電路812。對軟乂〇11電 路之第二及進一步的輸入被傳遞至電路814 ,每一電路814 執行一類比計算,依據該輸入估算前面元件提供電流的乘 法運算。生成電流估算各輸入的理想軟X〇R函數並經過一 電流至電壓轉換器816來提供軟又〇11的差動電壓輸出。指出 的是,與第14圖所示的軟相等電路不同,總軟x〇R電路的 輸出在任—特定週期並不散開,因為軟XOR電路的輸出將 輸入僅提供給一單一記憶體單元。電路參數,例如電阻值、 電晶體尺寸、及電壓縮放,被選擇來最佳逼近一軟乂〇11的 理想函數及/或最佳化較高層次(例如,整體解碼)系統性能。 參考第15B圖,第15A圖所示電路元件至軟XOR電路 520之一可選擇安排820使用一分支樹結構、可取捨地分享 31 201037529 與一相同雙向校驗節點相關聯之不同樹之間的信號來實施 定向軟XOR電路。特定地’使用參考第ΜΑ圖而引入的電路 元件812、814、及816,諸組電路元件818有效地形成兩輪 入、一輸出、基於電壓的軟X〇r電路。這些組電路元件818 接著被安排於一樹結構中,較佳地為一盡可能平衡來形成 圖中所示電路安排820之二元樹結構。在一些實施中,第15B 圖所示之分支結構可有較佳特性,例如,用LLR表示提供 理想軟XOR函數的一更好估計。 此外’當多模組820針對一組單向XOR電路而被實施時,某 些計算可被分享,例如藉由將一信號825自一模組傳遞至另 一模組,其中該其它模組中樹的一部分可被消除。 參考第16圖,在一些實施中,與每一相等閘相關聯之 匯流排714被分配。每一個將其值以一差動電壓儲存之記憶 體單元230在其輸出具有一相應至電流轉換器912之電壓。 這些電壓至電流轉換器類似於第14圖所示的轉換器712。電 流輸出被傳遞至一組開關913,其中如果對應單元的值係作 為對應於開關913之一電流匯流排714上的一電流而被注 入,最多一開關被賦能。每一匯流排714類似地包括一部 分,在此部分上在每一週期與一適當輸入位元相關聯之電 流被注入來說明對應於位元輸入之相等閘的輸入。指出的 是,每一相等節點的匯流排714可具有一複雜結構,例如, 具有許多支路。然而,所有注入匯流排上的電流通行至相 等節點之電流至電壓轉換器716,由該處支流至需要此輸出 之早向XOR電路。 32 201037529 參考第17圖’在利用-分佈匯流排714來執行—電流求 和函數之-些實施巾,第12圖所述之模⑽峨替換為—模 組592聯同分佈匯流排714與電塵至電流轉換器712。在模組 592中,每一變數節點對應於—電流至電塵轉換器716,該 電流至電壓轉換器716輸出-與對應匯流排714上總注入電 流成比例之—電壓’且進_錢支流至適當的校驗節點 電路520。指出的是,在還有其它實施中,電流至電壓轉換 器716自身被分佈’及一模組593(即,模組592的一部分)接 收内部分配給適當校驗節點電路之電壓輸入。 參考第18圖,一可操作執行解碼操作的迭代階段供與 第11圖所示(1056,352)LDPC碼使用之解碼器之一實施的一 第二範例提供與第13圖所示實施相同或相似的功能。在此 範例中,如第17圖闡述,模組592被使用。實施與一變數節 點相關聯的每一軟相等電路之電路在模組5 92中包括一電 流至電壓轉換器,分佈式匯流排對應於被分佈之模組592的 10單向變數節點。每一記憶體652包括經由切換電路671將 電流注入至對應於不同變數節點的軟相等電路之適當匯流 排之電路。匯流排區段644有效地包括81匯流排,每一匯流 排在一模組592的輸入與一不同的電流至電壓轉換器716相 關聯。因此’軟相等電路以有效形成記憶體652與類比計算 模組592之間的互連路徑之一方式被分佈。 (1056,352) LDPC碼之一解碼器的另一實施使用一不同 記憶體單元安排,並利用分佈電流求和方法來實施基於對 數似然比之相等閘。該實施利用有多個約束應用在一迭代 33 201037529 的每一週期中的一排程,且更新值在迭代的下一週期被使 用。參考第π圖,一前面說明的方法在每一週期應用八約 束’每一約束與一不同列區塊相關聯。如下討論,存在同 一單元230在同一週期既被寫入又被讀取的情況,及因而諸 如每一週期雙緩衝及多個階段(更新、寫入等)之方法被使 用。在本實施中,在每一週期使用多個約束,且這些約束 被選擇使得在記憶體單元上沒有讀取與寫入衝突,允許一 排耘方法而無需諸如雙緩衝之方法。避免衝突的一方式是 對於在一週期中應用的各該約束來自同一列區塊。這避免 衝突的原因可參考有關於一較簡單長度8碼的第7A圖來理 解。如所闡述,一約束對應於碼矩陣的一列,及被更新的 單兀與該列中的非零項相關聯。被讀取的單元是在其中約 束列有非零項的行中。如果另一約束在同一週期被應用, 仁一 °亥約束相關聯之列與第一約束之列同樣在相同的行中 沒有非零項’則針對第二約束更新的單元不被讀取以供應 用第—約束,且被讀取以供應用第二約束之單元與針對第 一約束讀取的單元相分離。回到第11圖所述之碼矩陣,很 明顯由於每一非零區塊的偏移對角線結構,同一行區塊的 夕列有此性質:沒有兩列有列在相同行的任一行中。因此, 對應於一列區塊中多列之多個約束可在一週期中應用而沒 有項取7寫入衝突。作為另一觀測,一列在一偶數區塊2η及 列在奇數區塊2n+3 mod 8或(奇數區塊2n+5 mod 8)之兩 列由於碼矩陣的整體區塊結構類似地無法具有共有非零項 的任何行。 34 201037529 參考第19圖,此方法之一實例的一部分闊述將記憶體 950的記憶體單元230安排於44記憶體單元的組奶中。各該 組955對應於第丨丨所示碼矩陣之—不同的非零區^此外, 這些組被安排至記憶庫958中,每—組以它們被安排於碼矩 陣中相同的方式對應於-行。對於第一個24行,在每一行 區塊中恰有四記憶體群組955對應於四非輕塊。最後八行 每一行各具有兩或三記憶體群組。 〇 在第9圖中…單—模組物請示,表示更新邏輯在 -週期應用-單-約束。如前面討論,模組中每一相等節 點接收多達四輸入,最多三輸入來自記憶體95〇中的記憶體 #元及—輸人來自記《96㈣輪人暫存器,輸人暫存器亦 被安排於組965中,每-輸人與—不同行區塊相關聯。相等 . 冑點使用-分佈式電流匯流排方法,如上所述,電流編石馬 對數似然比被注入此分佈式電流匯流排上。第19圖說明第 一列區塊中一約束的應用。在記憶體群組955的第—記憶庫 〇 中,第一記憶體群組955中的一記憶體單元被更新,且各讀 其它記憶體群組955的一記憶體單元以及與該行區塊相關 聯之一暫存器組965之一輸入暫存器的一輸入被讀取。模級 590的1〇(或11 ’視列區塊而定)輸入中每一者皆來自記憶體 群組955的一記憶庫。 如下進一步討論,區塊的偏移對角線結構限制哪些組 合的記憶體單元在任一週期被耦接至電流匯流排。特定 地’組合的記憶體單元必須在校驗矩陣的同一行中被找 到。因此,如果記憶體955按區塊行中的行編索引,則在乜 35 201037529 一特定週期’ 一相同索引被應用於—記憶庫958中的每一記 憶體955及輸入記憶體群組965。亦指出的是,按行編索引 的一安排,相鄰行自然地被相鄰編索引,將最高索引(43) 至零的範圍當作相鄰的。 在一些範例中,在每一週期中應用一列區塊的多個約 束。例如,對應於四相鄰列的四約束可在每一週期被應用。 參考第20圖,與第19圖比較’這一範例有模組592的四副 本,及每一分佈式相等節點具有一單獨的輸入匯流排。為 更新一列區塊的四相鄰約束列’對於每一區塊行,在記憶 體群組955的每一記憶庫958中讀取或寫入四相鄰行。如在 第19圖所示的範例中,同一行中的記憶體位置被耦接至同 一匯流排,且因而一記憶體955之四相鄰行的輸出各被輸出 至一不同的四匯流排。類似地,對群組955之一的四記憶體 單元之相鄰群組中的記憶體群組955之更新的更新。每一記 憶體群組955被安排於記憶體單元的四組966中,每一 組966被耦接至四匯流排中之一相對應的匯流排。例如,一 έ己憶體群M966具有區塊内行指數〇、3、7、...40之記憶體 單兀(即,行指數〇 m〇d 4),一第二則具有行指數1、 4、...41(即’ 1 m〇d 4),等。在任一週期中,一組的一 單元被耦接至匯流排或該組的一單元被寫入至。在每一區 塊订中’與第一模組590相關聯被應用之行取決於被更新區 塊之區塊對角線的偏移。因此,如果第一約束列在指數i的 區塊行中有一非零項,一移位器970「旋轉」電流匯流排i m〇d 4至第0模組590,匯流排(i+l) m〇d 4至第1模組、(i+2) 36 201037529 mod 4至第2模組、(i+3) mod 4至第3模組。 在一些範例中,一軟相等電路的函數被分佈使得一記 憶體群組966的輸出是一如第20圖所述在一匯流排上求和 的電流。接著移位器970對於在其輸入的每一匯流排包括一 電流至電壓轉換電路,及進而當編碼輸入的每一電歷被應 用於適當選定的軟X〇R電路的輸入時將該生成電壓移炱模 〇 〇 指出的是,一些進一步的優化可被用來利用瑪的,结 構。例如’列區塊2n的四約束可隨列區塊(2n+3 mod 9)的四 約束同時應用,藉此允許在每一週期應用八約束。注意記 憶體群組955的第一個16記憶庫,在一偶數區塊列中的記憶 體基於一僅基於第一個16區塊行中的偶數區塊列及在最後 8區塊行中的奇區塊列之更新而被更新。類似地,在一奇數 區塊列中的記憶體僅基於第一個16區塊行中的奇數區塊列 及在最後8區塊行中的偶區塊列而被更新(用來更新區塊 (0,16)的區塊(6,16)除外),反之亦然。 在各不同範例中,將諸組約束與週期相關聯之不同排 耘可被使用。例如,用四模組590 ’應用於每一週期中的約 束在每一迭代的88週期中可作為{0、ι、2、3丨、{4、5、6、 7}、...{40、41、42、43}、{44、45、46、47}、 {施、 349、350、351}來進行。在使用十—模組的另一範例中, 諸週期在每一迭代的32週期中可按{〇、丨、.、1〇丨、(η、 12、…、21}、…{341、342、…、351\、乜> xu- ^ 進订。作為另一範 例,兩組四模組590(即,丘八,四牡非丄广 VI /、八四針對區塊2η及四針對區 37 201037529 132 塊2n+3),應用的約束在44週期中可按{〇、卜2、 133、134、135}、{4、5、6、7、136、137、138、139}、{4〇 4卜 42、43、172、173、174}、{88、89、9〇、9ι、22〇 221、222、223}、…進行。 參考第21A-B® ’針對第丨丨圖所示校驗矩陣的碼之一解 碼器之-實施的-整體圖被繪示。一輸入記憶體刪保存 1056=24x24輸入值,被表示為與匕匕尺輸入成比例的電壓。 在一些範例中,這些值在迭代階段開始之前以—申行方式 被載入,例如,一次四值。在一些範例中,LLR值是自一 接收一或一個以上的彳g號值yi並輸出一或一個以上的LLR 值之信號映射電路而獲得。在一些範例中,—信號輸入產 生一組LLR輸入,例如,當多級編碼被使用時,諸如當四 位元值在一十六級類比信號中被編碼時。一般地,第i2a_b 圖中所繪示的架構具有針對「偶數」與「奇數」區塊列的 單獨部分,其如上所述在沒有對記憶體單元的讀寫競爭的 情況下允許對不同區塊列中約束的同時處理^ —組記恨體 組1650包括記憶體1652,每一記憶體1652保存對應於校驗 矩陣一相對應區塊之44項。每一記憶庫在校驗矩陣的一特 定區塊行中僅包括奇數或偶數區塊列。兩奇偶校驗處理器 1590被闡述。每一奇偶校驗處理器159〇實施四類比計算模 組,通常為在第17圖中闡述之模組593的形式。記憶體組 1650經由旋轉模組1970被耦接至奇偶校驗處理器159〇。— 般地’每一旋轉模組1970包括一組四個旋轉器,每一旋轉 器與相對應奇偶校驗處理器1590中的四類比計算模組之— 38 201037529 相關聯。指出的阜、古+ # 路使得t流至電壓轉換電 $㈣隨始㈣與旋轉模組197 ==:轉模組197°與奇偶校驗處=:: 的記_15::=:=9°的咖 耦接、 皮儲存。—輸出區段1400被 关至δ己fe體魬1650及輸入記,丨 值的電路,該電路在每次多工=㈣ 是控制爲緩,# h十异多個輸出。未繪示的
二L 、協調記憶體組中旋轉器與讀取及寫入控制 邏輯的組態。 >應該明白的是,上面說明的解碼器應用只是一類比可 L度傳播處理器之—應用的-範例。在這些範例中使用的 技術適用於可信度傳播的其它使用。 可信度傳播處理器的實施對特定應用可具有不同程度 的客戶規格設定。一般地,一控制器(未繪示)排定一迭代的 不同週期中不同約束應用的順序,並定該系列迭代的順序 來完成一計算。控制器可以是針對一特定碼、一特定碼類 別、或一些其它計算類別而組態之一特定用途的控制器或 定序器。控制器也可是一可用來實施多種計算之通用控制 器。在一些實施中,包栝變數及約束節點的模組可有固定 的結構,或可是可組態的。電路組態可透過控制器的操作 而發生及/雜態料^齡可程式化方法而被實施’其 中電路元件之_料祕使賴用於處理11的個性化資 料而被啟用。在〆些情況中,控制器在實施處理器的類比 電路部分之同-裝置上實施,而在其它情況中,控制器在 39 201037529 一與實施類比處理的裝 實施。 置通訊之單獨裝置中被完全或部分 ㈣得賴心可用於許多應时一應用有關於 輕系統,其中可信度傳播處理器被用作在—軟解映 t後的—軟解碼器,該軟解映射器透過-雜訊通訊通道將 發射的信號轉換成軟位元。車欠位元可在概率域中表示(例 如’作為概率或差動概率)’或可選擇地,在對數域中(例如, 如對數似然比或對數勝算)。軟解映射的範例在美國專利申 請案序號第61/156,721號名稱為“細—㈣,,中被予以 詳細描述。 使用-類比可信度傳播處理器而實施之一解碼器的— 應用疋在-通訊系統中,其中已發射資訊的區塊被接收, 及解碼器執行對所接收到的資訊之—糾錯。這—解碼器的 另一應用是作為-資料儲存系統的—組件,例如—半導體 記憶體(例如,可包括多級單元齡之㈣記憶體)或_磁碟 儲存記憶體,其帽碼n對在儲存线巾擷取㈣訊執行 一糾錯,例如擷取為記憶體單元中的儲存級或為一磁碟儲 存系統中的磁化程度。在一些範例中,解碼器以一半導體 圯憶體被整合在相同裝置上,而在其它範例中,解碼器在 一單獨的裝置中被實施(例如,在一單獨的積體電路上)。可 如本申請案所述來利用解碼器實施之記憶體系統的一些範 例可得知於2009年8月6日提出申請、名稱為“STORAGE DEVICES WITH SOFT PROCESSING,,,的共同待決美國申 請案第12/537,060號,其被併入本文以供參考。 40 201037529 也應該明白的是’對所述方法的各種修改是可能的。 例如,記憶體元件未必類比及/或連續取值。例如,數位(例 如,二元(以2為基)數位儲存,可能地以「軟」形式)及/或 Ϊ化的儲存可被使用。節點間傳遞的值之其它表示可被使 用。在一些範例中,對數似然比被使用。其它可能性包括 傳遞線性概率。用不同的表示,相等及約束節點的不同電 路實施將被使用。表示的各不同編碼可被使用。在上述— 些範例中,差動電壓及差動電流編碼被使用。替代者包括 隨機(例如,抖動)表示、數位或量化表示。 上述範例以各不同方式來被實施。在一範例中,使用 一電腦實施(可取捨地,人類協助)的技術來轉換例如被表示 為一校驗矩陣之一特定矩陣,此技術可產生切換與互連電 路的一資料表示及可取捨地軟相等與軟X〇R電路之電路實 施的一資料表示。在一些範例中,此資料表示(例如,資料 結構或指令)被儲存於一機器可讀取媒體上且以後當被用 於一基於電腦的裝置佈局及構造系統中時被用來賦予功 能。換言之,當資料表示在這一系統中被使用時,其被讀 取而判定實體電路貫施。一資料表示的一範例包括一遵循 Verilog-A或Verilog-AMS規範的表示。在其它範例中,一特 定碼未被指定及生成結果裝置可被組態成適應各種不同 碼。此外,該方法並不限於用來解碼代碼的裝置,因為使 用如上所述之技術可實施許多其它基於類比圖形的計算。 在一些範例中,裝置略有點不可預測的特性,例如, 視特定的構造時間(處理)或運行時間條件而定的特性。例 201037529 如,電晶體的增益取決於處理特性或裝置的運作溫度。一 些設計例如包括可選擇的及/或可組態的增益元件,係用以 調整軟XOR電路的增益、電流至電壓轉換電路的增益、記 憶體單元之電流輸出的增益等。在一些範例中,增益是藉 由例如在兩輸入X 〇 R階段樹的最後階段控制電阻元件來調 整,諸如但不限於,電流至電壓轉換器716(見第14圖)或電 路812及814(見第15A圖)或電路816(見第15B圖)中的電阻元 件。增益控制能以數位形式來提供,並經過一數位至類比 轉換器至一類比可控制的電阻元件(例如,一適當偏移的電 晶體)。在一些範例中’這些增益被調整以優化整個系統性 能,例如,在運行使用之前的一系統校正階段或元件之一 正進行的(例如,回饋)適應以維持最優或接近最優的性能。 要明白的是,前面說明係欲說明而非限制本發明的範 圍,本發明的範圍由後附的申請專利範圍的範圍來界定。 其它實施例在後面申請專利範圍的範圍内。 I:圖式簡單說明3 第1圖是一長度為8LDPC碼的示範因子圖; 第2A圖是一說明一雙向鏈接的變數節點變換成一組定 向鏈接的變數節點之圖,且第2B圖是一說明—約束節點的 一類似轉換之圖; 第3圖是第1圖所示圖的一部分; 第4圖是對應於第3圖所示雙向圖部分之—定向圖的一 部分; 第5圖是說明一對應於第4圖所示圖部分之一模組實施 42 201037529 的圖; 第6圖說明輸出計算的一圖; 第7A圖是繪示輸入與輸出之間的關係或一模組的一 圖,及第7B圖說明相對應的碼矩陣。 第8圖是一使用一分享模組針對一長度為8 LDPC碼之 一解碼器的一實施之圖; 第9圖是一指定第8圖所示分享模組的輸入及輸出之表 格; 第10圖是一有兩分享模組的解碼器的方塊圖; 第11圖是一(1056,352) LDPC碼的一奇偶矩陣之一表格 表示; 第12圖是一與11圖所示碼一起使用之分享模組的一 圖, 第13圖是一有八個分享模組(繪示其中二者)之一 (1056,352) LDPC碼的一解碼器之一方塊圖,; 第14圖是一變數節點之一電路實施; 第15A圖是一約束節點之一電路實施; 第15B圖是一約束節點之一可供選擇實施; 第16圖是一說明一變數節點的一分佈匯流排實施之 圖, 第17圖是一可選擇分享模組的圖; 第18圖是一使用變數節點的分佈式匯流排實施之一解 碼器的方塊圖; 第19圖是一針對一(1056,352) LDPC碼的一解碼器的一 43 201037529 可選擇架構之方塊圖; 第20圖是一繪示第17圖所示架構中的多個更新模組之 方塊圖;及 第21A-B圖是一解碼器的一實施之一方塊圖。 【主要元件符號說明】 100.. .因子圖 110、210、212··.變數節點 120、220...校驗節點 230.. .記憶體元件、記憶體單 元 250.. .記憶體 260.. .輸入暫存器 265.. .記憶體模組 312.. .結合元件 315.. .電路元件 370…輸入電路、輸入選擇電 路、輸入選擇邏輯 380.. .輸出電路、輸出選擇電 路、輸出選擇邏輯 390.. ·電路區塊、分享模組 395.. .輸出區段 440.. .全域選擇單元 442.. .選擇單元 450.. .記憶體 470.. .輸入選擇電路 480.. .本地輸出電路 490.. .本地處理元件、更新元 件 495.. .輸出區段 510…變數節點 520.. .約束節點 590.. .模組、分享模組 592.. .模組 630…記憶體單元 640.. .全域選擇單元、全域控 制單元 642…選擇單元、控制單元 644.. .匯流排區段 650.. .本地記憶體、記憶體 652.. .記憶體 660…輸入記憶體 670.. .讀取電路 671.. .切換電路 680.. .本地輸出電路 690.. .本地處理元件 712.. .電壓至電流轉換器 714.. .匯流排 716.. .電流至電壓轉換器 812、814、816、818...電路 元件 820.. .電路安排、模組 912.. .電流轉換器 913…開關 950、960…記憶體 955.. .記憶體群組 958.. .記憶庫 965…暫存器組、輸入記憶體 群組 966…組、記憶體群組 970.. .移位器、旋轉模組 1400.. .輸出區段 44 201037529 1590…奇偶校驗處理器 1660…輸入記憶體 1650…記憶體組 1970…旋轉模組 1652...記憶體
45

Claims (1)

  1. 201037529 七、申請專利範圍: 1. 一種類比處理器,其包含: 一第一記憶體模組,其用於將一第一組的儲存值儲 存於各自的儲存元件中各自代表對該處理器之一各自 輸入; 一第二記憶體模組,其用於將一第二組的儲存值以 類比形式儲存於各自的儲存元件中,該第二組儲存值包 括在該處理器的操作期間決定的中間值; 一類比計算模組,其被耦接至該第一及第二記憶體 模組,該處理器是可組態的,使得在每一該複數操作週 期中該類比模組基於該第一與第二組儲存值中之至少 一些儲存值來決定針對該第二組儲存值中的至少一些 儲存值的值;及 一輸出模組,其用以自該第二組儲存值中之至少一 些儲存值產生一組輸出。 2. 如申請專利範圍第1項所述之處理器,其中該第一儲存 模組被組態成以類比形式儲存該第一組儲存值。 3. 如申請專利範圍第1項所述之處理器,其中該類比計算 模組經由類比信號路徑被鏈接至該第一與該第二記憶 體模組。 4. 如申請專利範圍第3項所述之處理器,其中該等類比信 號路徑各被組態成在一導體上承載一值,該導體被表示 為與該值成比例之一電壓及一電流的至少一者。 5. 如申請專利範圍第1項所述之處理器,其中該類比模組 46 201037529 可組態成在每一該複數操作週期決定該第二組儲存值 之一不同子集的值。 6. 如申請專利範圍第1項所述之處理器,其進一步包含輸 入選擇電路,該輸入選擇電路可組態成將該類比計算模 組耦接至該第一與該第二記憶體模組之選定記憶體元 件之輸出。 7. 如申請專利範圍第1項所述之處理器,其對於每一類比 計算模組進一步包含複數信號匯流排,每一匯流排提供 一輸入值給該類比計算模組且可切換地耦接至該第二 記憶體模組之該複數儲存元件。 8. 如申請專利範圍第7項所述之處理器,其中該等儲存元 件被耦接而可切換地提供儲存於該儲存元件中之一儲 存值的一電流表示,使得提供給該類比計算模組的該輸 入值被表示為一大體上與該等儲存元件提供之該等電 流表示的一總和成比例之電流。 9. 如申請專利範圍第1項所述之處理器,其進一步包含輸 出選擇電路,該輸出選擇電路可組態成接收該第一與該 第二記憶體模組之選定記憶體元件的輸出,並決定該類 比處理器的輸出。 10. 如申請專利範圍第1項所述之處理器,其包含複數類比 計算模組,該等模組在各操作週期係同時可操作來決定 該第二組儲存值之不同子集的值。 11. 如申請專利範圍第10項所述之處理器,其中該第二記憶 體模組包括複數區段,每一區段與該等類比計算模組之 47 201037529 一相對應的不同類比計算模組相關聯,用來儲存該相關 聯計算模組所決定的值。 12. 如申請專利範圍第丨〇項所述之處理器,其中該第二士己憶 體模組被組態使得在一單一操作週期,每一餘存元件可 提供一儲存值給一或一個以上的該等類比計算模組且 可接受一預定值儲存於該儲存元件中以提供於—後續 操作週期中。 13. 如申請專利範圍第12項所述之處理器,其中每—儲存元 件與兩儲存位置相關聯使得在任一週期中,一儲存位置 被用於接收一預定值而一儲存位置被用於提供一值。 14·如申请專利範圍第丨〇項所述之處理器,其中該第二記憶 體模組包括複數記憶體區段,諸組該等區段形成記憶 庫其中對於各该類比計鼻模組,該模組的每一該複數 輸入與該等記憶體區段之一不同的記憶庫相關聯。 15. 如申凊專利範圍第14項所述之處理器,其中該處理器是 可組態的使得在每一週期,每一記憶體區段包括提供值 給一或一個以上的類比計算模組或用一或一個以上類 比計算模組的值來更新之記憶體元件。 16. 如申請專利範圍第1項所述之處理器,其被組態成實施 一可信度傳播計算。 17·如申請專利範圍第1顿述之處理器,其被組態成實施 一因子圖計算。 18·如申請專利範圍第16或17項中任-項所述之處理器,其 中該類比計算模組被組態成接受及提供實質上為對概 48 201037529 率、似然、及似然比中之至少—者的對數表示之類比信 號。 19·如申請專利範圍第17項所述之處理器,其中該處理器被 組態成實施—低密度奇偶校驗(LDPC)碼之解碼器。 2〇·如申請專利範圍第1項所述之處理器,其進—步包含.
    Ο 一控制器,其被組態成控制該處理器的操作來執― 計算的複數迭代,每一迭代包含複數計算週期。仃 21.如申請專利範圍第2{)項所述之處理器,其中該複數計算 週期在每一迭代中實質上是相同的,每一週期與該第2 及该第二儲存模組之一組態相關聯以將輸入及輪出提 供給一或一個以上的類比計算模組。 22. 如申請專利範圍第2〇項所述之處理器,其中該處理器是 已、’且L、與可組態成實施一解碼器奇偶校驗碼中的至,1、 一者,且每一週期與一或一個以上的奇偶校驗約束相關 聯,及其中每一迭代的該等週期一同與該碼的所有該等 奇偶校驗約束相關聯。 23. 如申請專利範圍第1項所述之處理器,其中該類比計算 模組實施類比處理元件的一網路。 24.如申請專利範圍第24項所述之處理器,其中該等類比處 王里元件包括表示軟邏輯操作之元件。 25·如申請專利範圍第24項所述之處理器,其中該軟邏輯操 作包括軟XOR操作。 ' 26·如申請專利範圍第23項所述之處理器,其中該元件之網 路是無迴圈的。 49 201037529 27. 如申請專利範圍第23項所述之處理器,其中該元件之網 路包括至少一元件週期,該類比計算模組被組態成實施 一鬆弛計算。 28. 如申請專利範圍第23項所述之處理器,其中該類比計算 模組包括用以在處理元件網路中組態一或一個以上的 增益特性之輸入。 29. —種解碼器,其包含: 一第一記憶體,其用以儲存具有一以位元計的長度 之碼貢料, 一第二記憶體,其用以儲存類比形式之中間資料; 一類比解碼器核心,其耦接至該第一記憶體及該第 二記憶體,該解碼器核心具有一小於該碼資料長度的輸 入長度及一小於在該碼資料中所表示之一約束數的輸 出長度。 一控制器,其用於在每一該複數週期中將該解碼器 碼的該等輸入耦接至該第一與該第二記憶體的選定 值,並耦接該解碼器核心的輸出供儲存在該第二記憶體 中;及 一輸出區段,其被耦接至該第二記憶體以基於儲存 於該第二記憶體中的值來提供解碼資料。 30. 如申請專利範圍第29項所述之解碼器,其中該第一記憶 體被組態供以類比形式來儲存碼資料。 31. —種用以形成一類比處理器的一資料表示之方法,該方 法包含以下步驟: 50 201037529 形成一第一記憶體模組的一資料表示,該第一記 憶模組供在各自的儲存元件中儲存一第一組儲存值,每 一儲存值表示一各自的處理器輸入; 形成一第二記憶體模組的一資料表示,該第二記憶 體模組供在各自的儲存元件中以類比形式儲存一第二 組儲存值,該第二組儲存值包括在該處理器的操作期間 所決定的中間值; 形成一耦接至該第一與該第二記憶體模組之類比 計算模組的一資料表示,該處理器是可組態的使得在每 一操作週期該類比模組基於該第一與該第二組儲存值 中之至少一些儲存值來決定該第二組儲存值之至少一 些儲存值的值;及 形成一輸出模組的一資料表示,該輸出模組供自該 第二組儲存值之至少一些儲存值產生一組輸出。 32. 如申請專利範圍第31項所述之方法,其中形成該等資料 表示包括形成該處理器的Verilog表示。 33. 如申請專利範圍第31項所述之方法,其進一步包含依據 該形成的資料表示來製作該類比處理器的一積體電路 實施。 34. 如申請專利範圍第31項所述之方法,其進一步包含以下 步驟: 接收一奇偶校驗碼的一規範;及 形成該等資料表示以代表該碼之一解碼器的一實 施。 51 201037529 35. —種包含形成該類比處理器之一資料表示或申請專利 範圍第1至27項中任一項之方法。 36. —種儲存於一電腦可讀取媒體上的軟體,包含當被應用 在一設備之電腦組件中時形成申請專利範圍第1至27項 中任一項之該類比處理器之一積體電路實施的資料賦 予功能指令及/或資料賦予功能。 3 7. —種解瑪方法,其包含: 在一解碼操作的每一該複數週期,應用一部分的碼 資料及一部分的中間值資料於一類比解碼器核心,並將 該解碼器編碼器之一輸出儲存於該中間資料的一類比 儲存體中;及 結合包括該類比儲存體的中間值資料之資料以形 成表示該碼資料之一糾錯的解碼資料。 38. 如申請專利範圍第37項所述之方法,其中每一該複數週 期與一少於該碼的所有複數奇偶校驗約束之相對應子 集相關聯。 39. 如申請專利範圍第38項所述之方法,其中該中間值資料 包括各自與該碼的該奇偶校驗約束之一不同奇偶校驗 約束相關聯之值。 52
TW099105802A 2009-03-02 2010-03-01 Belief propagation processor TW201037529A (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15679209P 2009-03-02 2009-03-02
US29399910P 2010-01-11 2010-01-11

Publications (1)

Publication Number Publication Date
TW201037529A true TW201037529A (en) 2010-10-16

Family

ID=42709989

Family Applications (1)

Application Number Title Priority Date Filing Date
TW099105802A TW201037529A (en) 2009-03-02 2010-03-01 Belief propagation processor

Country Status (5)

Country Link
US (2) US8799346B2 (zh)
EP (1) EP2404382A4 (zh)
CN (1) CN102439853B (zh)
TW (1) TW201037529A (zh)
WO (1) WO2010101944A1 (zh)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW201037529A (en) 2009-03-02 2010-10-16 David Reynolds Belief propagation processor
US8115513B2 (en) 2009-03-02 2012-02-14 Mitsubishi Electric Research Laboratories, Inc. Circuits for soft logical functions
US8458114B2 (en) 2009-03-02 2013-06-04 Analog Devices, Inc. Analog computation using numerical representations with uncertainty
US8633732B2 (en) 2009-03-02 2014-01-21 Mitsubishi Electric Research Laboratories, Inc. Circuits for soft logical functions
US8972831B2 (en) 2010-01-11 2015-03-03 Analog Devices, Inc. Belief propagation processor
US8627246B2 (en) 2010-01-13 2014-01-07 Analog Devices, Inc. Implementation of factor graphs
WO2011152900A2 (en) * 2010-02-22 2011-12-08 Benjamin Vigoda Distributed factor graph system
WO2011103565A1 (en) 2010-02-22 2011-08-25 Lyric Semiconductor, Inc. Mixed signal stochastic belief propagation
US9047153B2 (en) 2010-02-22 2015-06-02 Analog Devices, Inc. Selective delay of data receipt in stochastic computation
US8862961B2 (en) * 2012-09-18 2014-10-14 Lsi Corporation LDPC decoder with dynamic graph modification
US20150149390A1 (en) * 2013-11-25 2015-05-28 Palo Alto Research Center Incorporated Method and system for creating an intelligent digital self representation
JP6290057B2 (ja) * 2014-09-22 2018-03-07 株式会社東芝 復号装置、復号方法およびメモリシステム
US11301467B2 (en) * 2018-06-29 2022-04-12 Security On-Demand, Inc. Systems and methods for intelligent capture and fast transformations of granulated data summaries in database engines
CN111158583A (zh) * 2019-11-25 2020-05-15 深圳壹账通智能科技有限公司 图计算的布尔型变量存储方法、装置、设备及存储介质
US20240014828A1 (en) * 2020-09-03 2024-01-11 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for improved belief propagation based decoding
DE102022210055A1 (de) 2022-09-23 2024-03-28 Technische Universität Dortmund, Körperschaft des öffentlichen Rechts Programmierbares integriertes analoges Schaltungsgitter

Family Cites Families (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4649515A (en) * 1984-04-30 1987-03-10 Westinghouse Electric Corp. Methods and apparatus for system fault diagnosis and control
US5243688A (en) 1990-05-22 1993-09-07 International Business Machines Corporation Virtual neurocomputer architectures for neural networks
US5539404A (en) * 1993-02-08 1996-07-23 Yasuo Nagazumi Digital to analog converter using recursive signal dividing charge coupled devices
TW230246B (zh) 1993-03-03 1994-09-11 Philips Electronics Nv
JPH0823874B2 (ja) * 1993-11-18 1996-03-06 株式会社ジーデイーエス シストリックアレイプロセサー
US5959871A (en) 1993-12-23 1999-09-28 Analogix/Portland State University Programmable analog array circuit
US5745382A (en) 1995-08-31 1998-04-28 Arch Development Corporation Neural network based system for equipment surveillance
EP0831394A1 (en) * 1996-02-29 1998-03-25 Co.Ri.M.Me. Consorzio Per La Ricerca Sulla Microelettronica Nel Mezzogiorno Method for memorizing membership functions and a fuzzy processor implementing the same
JPH1117557A (ja) * 1997-05-01 1999-01-22 Mitsubishi Electric Corp 誤り訂正方法及び誤り訂正装置
US6212654B1 (en) 1997-07-22 2001-04-03 Lucent Technologies Inc. Coded modulation for digital storage in analog memory devices
US6279133B1 (en) 1997-12-31 2001-08-21 Kawasaki Steel Corporation Method and apparatus for significantly improving the reliability of multilevel memory architecture
DE69935361T2 (de) 1998-02-17 2007-11-29 Anadec Gmbh Verfahren und elektronische Schaltung zur Datenverarbeitung, insbesondere für die Berechnung von Wahrscheinlichkeitsverteilungen
US6185331B1 (en) 1998-03-20 2001-02-06 United Microelectronics Corp. Switched-current fuzzy processor for pattern recognition
US6744299B2 (en) 1999-01-06 2004-06-01 Victorian Systems, Inc. Electronic array having nodes and methods
US6347125B1 (en) 1999-01-11 2002-02-12 Ericsson Inc. Reduced complexity demodulator for multi-bit symbols
DE10035183A1 (de) 1999-08-06 2001-02-15 Anadec Gmbh Cham Verfahren zur mathematischen Verarbeitung zweier Werte in einer elektrischen Schaltung
US6564194B1 (en) 1999-09-10 2003-05-13 John R. Koza Method and apparatus for automatic synthesis controllers
JP2001266498A (ja) 2000-03-23 2001-09-28 Sony Corp データ再生装置及びデータ再生方法、並びに、データ記録再生装置及びデータ記録再生方法
US7133568B2 (en) 2000-08-04 2006-11-07 Nikitin Alexei V Method and apparatus for analysis of variables
US6763340B1 (en) 2000-09-22 2004-07-13 The United States Of America As Represented By The Secretary Of The Air Force Microelectromechanical system artificial neural network device
US6633856B2 (en) 2001-06-15 2003-10-14 Flarion Technologies, Inc. Methods and apparatus for decoding LDPC codes
US6938196B2 (en) * 2001-06-15 2005-08-30 Flarion Technologies, Inc. Node processors for use in parity check decoders
CN1593012B (zh) 2002-07-03 2015-05-20 Dtvg许可公司 一种用于通信系统中编码信号的装置和方法
US7657861B2 (en) * 2002-08-07 2010-02-02 Pact Xpp Technologies Ag Method and device for processing data
US6762624B2 (en) 2002-09-03 2004-07-13 Agilent Technologies, Inc. Current mode logic family with bias current compensation
US7209867B2 (en) * 2002-10-15 2007-04-24 Massachusetts Institute Of Technology Analog continuous time statistical processing
US6957375B2 (en) 2003-02-26 2005-10-18 Flarion Technologies, Inc. Method and apparatus for performing low-density parity-check (LDPC) code operations using a multi-level permutation
US7139959B2 (en) * 2003-03-24 2006-11-21 Texas Instruments Incorporated Layered low density parity check decoding for digital communications
US6771197B1 (en) 2003-09-26 2004-08-03 Mitsubishi Electric Research Laboratories, Inc. Quantizing signals using sparse generator factor graph codes
US7418468B2 (en) 2004-02-13 2008-08-26 University Of Alberta Low-voltage CMOS circuits for analog decoders
US7071846B2 (en) 2004-02-24 2006-07-04 Lucent Technologies Inc. Analog decoding method and decoder
US7769798B2 (en) 2004-04-27 2010-08-03 Amir Banihashemi Full CMOS min-sum analog iterative decoders
WO2005112272A1 (en) 2004-05-14 2005-11-24 University Of Alberta Method and apparatus for digit-serial communications for iterative digital processing algorithms
US20060026224A1 (en) 2004-07-30 2006-02-02 Merkli Patrick P Method and circuit for combined multiplication and division
US7373585B2 (en) 2005-01-14 2008-05-13 Mitsubishi Electric Research Laboratories, Inc. Combined-replica group-shuffled iterative decoding for error-correcting codes
FR2883121B1 (fr) 2005-03-11 2007-04-27 France Telecom Procede et dispositif de decodage de codes a roulettes
US8078933B2 (en) 2005-05-18 2011-12-13 The Governors Of The University Of Alberta Decoder for low-density parity-check convolutional codes
US20070089016A1 (en) * 2005-10-18 2007-04-19 Nokia Corporation Block serial pipelined layered decoding architecture for structured low-density parity-check (LDPC) codes
US7292069B2 (en) 2005-12-30 2007-11-06 Intel Corporation Locally asynchronous, block-level synchronous, configurable logic blocks with sub-threshold analog circuits
KR100899738B1 (ko) * 2006-02-02 2009-05-27 삼성전자주식회사 노드 메모리 기반의 ldpc 복호기 및 복호방법
US7669106B1 (en) 2006-04-17 2010-02-23 Aquantia Corporation Optimization of low density parity check (LDPC) building blocks using multi-input Gilbert cells
US7877333B2 (en) 2006-09-06 2011-01-25 D-Wave Systems Inc. Method and system for solving integer programming and discrete optimization problems using analog processors
US8108758B2 (en) 2006-09-22 2012-01-31 Mcgill University Stochastic decoding of LDPC codes
US8504890B2 (en) * 2006-12-17 2013-08-06 Ramot At Tel Aviv University Ltd. Scheduling for LDPC decoding
US7788312B2 (en) * 2007-01-19 2010-08-31 Mitsubishi Electric Research Laboratories, Inc. Apparatus and method for reducing errors in analog circuits while processing signals
US20080256343A1 (en) 2007-04-11 2008-10-16 The Royal Institution For The Advancement Of Learning/Mcgill University Convergence determination and scaling factor estimation based on sensed switching activity or measured power consumption
WO2008141453A1 (en) 2007-05-23 2008-11-27 The Royal Institution For The Advancement Of Learning/Mcgill University Method for implementing stochastic equality nodes
US20090100313A1 (en) 2007-10-11 2009-04-16 The Royal Institution For The Advancement Of Learning/Mcgill University Methods and apparatuses of mathematical processing
US8775358B2 (en) 2007-11-30 2014-07-08 Massachusetts Institute Of Technology Method and apparatus for performing probabilistic inference and providing related solution methods
CN102016616B (zh) 2008-03-04 2015-11-25 麻省理工学院 组合的随机性逻辑
US8035414B2 (en) 2008-04-11 2011-10-11 Massachusetts Institute Of Technology Asynchronous logic automata
WO2010006430A1 (en) 2008-07-15 2010-01-21 The Royal Institution For The Decoding of linear codes with parity check matrix
US8190962B1 (en) * 2008-12-30 2012-05-29 Qualcomm Atheros, Inc. System and method for dynamic maximal iteration
TW201042549A (en) 2009-03-02 2010-12-01 Benjamin Vigoda Analog computation using numerical representations with uncertainty
TW201037529A (en) 2009-03-02 2010-10-16 David Reynolds Belief propagation processor
US8633732B2 (en) 2009-03-02 2014-01-21 Mitsubishi Electric Research Laboratories, Inc. Circuits for soft logical functions
US8115513B2 (en) 2009-03-02 2012-02-14 Mitsubishi Electric Research Laboratories, Inc. Circuits for soft logical functions
WO2010101941A1 (en) 2009-03-02 2010-09-10 David Reynolds Circuits for soft logical functions
WO2010111589A2 (en) 2009-03-27 2010-09-30 Benjamin Vigoda Storage devices with soft processing

Also Published As

Publication number Publication date
EP2404382A1 (en) 2012-01-11
CN102439853A (zh) 2012-05-02
US20110295786A1 (en) 2011-12-01
CN102439853B (zh) 2014-12-24
WO2010101944A1 (en) 2010-09-10
US8799346B2 (en) 2014-08-05
EP2404382A4 (en) 2013-02-27
US20150026546A1 (en) 2015-01-22

Similar Documents

Publication Publication Date Title
TW201037529A (en) Belief propagation processor
Mishra et al. A successive cancellation decoder ASIC for a 1024-bit polar code in 180nm CMOS
Black et al. A 1-Gb/s, four-state, sliding block Viterbi decoder
Tao et al. A configurable successive-cancellation list polar decoder using split-tree architecture
Zhang et al. Low-complexity reliability-based message-passing decoder architectures for non-binary LDPC codes
CN101036299B (zh) 用于实现可重构网格类型解码的方法和装置
KR101402392B1 (ko) 비트열 생성기
TW201123745A (en) Low density parity check codec and method of the same
KR20100022023A (ko) 메모리 효율적인 ldpc 디코딩
JPH0722967A (ja) ビタビ復号器の経路記憶装置
Joeressen et al. High-speed VLSI architectures for soft-output Viterbi decoding
Bengough et al. Sorting-based VLSI architectures for the M-algorithm and T-algorithm trellis decoders
He et al. An efficient 4-D 8PSK TCM decoder architecture
Rezaei et al. Low-latency multi-kernel polar decoders
CN114063973A (zh) 伽罗华域乘法器及纠删编解码系统
US8972831B2 (en) Belief propagation processor
US7958437B2 (en) MAP detector with a single state metric engine
Hocevar et al. Achieving flexibility in a Viterbi decoder DSP coprocessor
Shiau et al. An efficient VLSI architecture for convolutional code decoding
Lin et al. A 7.72 Gb/s LDPC-CC decoder with overlapped architecture for pre-5G wireless communications
Khan et al. Pipelined implementation of a real time programmable encoder for low density parity check code on a reconfigurable instruction cell architecture
Huang et al. A Markov chain model for edge memories in stochastic decoding of LDPC codes
Giard et al. Unrolled Hardware Architectures for Polar Decoders
JP2575854B2 (ja) ビタビ復号回路
KR102635135B1 (ko) 리드 솔로몬 디코더 및 이를 포함하는 반도체 장치