TWI407703B - Multi-code ldpc (low density parity check) decoder - Google Patents

Multi-code ldpc (low density parity check) decoder Download PDF

Info

Publication number
TWI407703B
TWI407703B TW097129862A TW97129862A TWI407703B TW I407703 B TWI407703 B TW I407703B TW 097129862 A TW097129862 A TW 097129862A TW 97129862 A TW97129862 A TW 97129862A TW I407703 B TWI407703 B TW I407703B
Authority
TW
Taiwan
Prior art keywords
code
density parity
parity check
memories
bit
Prior art date
Application number
TW097129862A
Other languages
Chinese (zh)
Other versions
TW200926615A (en
Inventor
Blanksby Andrew
Lai Lin Alvin
Original Assignee
Broadcom Corp
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
Priority claimed from US11/843,553 external-priority patent/US8010881B2/en
Application filed by Broadcom Corp filed Critical Broadcom Corp
Publication of TW200926615A publication Critical patent/TW200926615A/en
Application granted granted Critical
Publication of TWI407703B publication Critical patent/TWI407703B/en

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/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/1105Decoding
    • H03M13/1131Scheduling of bit node or check node processing
    • H03M13/114Shuffled, staggered, layered or turbo decoding schedules
    • 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/116Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices
    • 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/6508Flexibility, adaptability, parametrability and configurability of the implementation
    • H03M13/6516Support of multiple code parameters, e.g. generalized Reed-Solomon decoder for a variety of generator polynomials or Galois fields
    • 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/6522Intended application, e.g. transmission or communication standard
    • H03M13/6527IEEE 802.11 [WLAN]
    • 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/6522Intended application, e.g. transmission or communication standard
    • H03M13/6544IEEE 802.16 (WIMAX and broadband wireless access)
    • 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/6566Implementations concerning memory access contentions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0045Arrangements at the receiver end
    • H04L1/0052Realisations of complexity reduction techniques, e.g. pipelining or use of look-up tables

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Error Detection And Correction (AREA)

Abstract

A decoder for decoding low density parity check coding signal is provided to perform a decoding by a minimum hardware by selecting a plurality of bit engines and check engines by a multiplexer. Each bit engine of a plurality of bit engines(931, 932) is coupled in at least one or more memory among a plurality of memories(811, 812, 813). Each check engine of a plurality of check engines(921, 922) is coupled in at least one or more memory among a plurality of memories. A plurality of multiplexers (991, 992) selectively connects a plurality of bit engines and a plurality of check engines to first selected memories for decoding processing of a first LDPC(Low Density Parity Check) coding signal. A plurality of multiplexers selectively connects a plurality of bit engines and a plurality of check engines to second selected memories for the decoding processing of a second LDPC coding signal.

Description

解碼器decoder

本發明涉及通信系統,更具體地說,涉及通信系統內低密度奇偶校驗(Low Density Parity Check,簡稱LDPC)編碼信號的解碼技術。The present invention relates to communication systems, and more particularly to a decoding technique for Low Density Parity Check (LDPC) coded signals in a communication system.

資料通信系統已經持續發展了多年,近年來,採用疊代改錯碼的通信系統是研究者們關注的焦點。其中最受關注的是採用LDPC碼的通信系統。在同一信噪比情況下,使用疊代碼的通信系統的誤碼率通常低於使用其他編碼的通信系統。The data communication system has been continuously developed for many years. In recent years, the communication system using the iterative error correction code has been the focus of researchers. The most interesting of these is the communication system using LDPC codes. In the case of the same signal to noise ratio, the bit error rate of a communication system using stacked codes is generally lower than that of a communication system using other codes.

該領域的一個持續和主要的發展方向是降低通信系統中的信噪比以達到特定的誤碼率。理想的目標是嘗試研究通信通道中的山農限度(Shannon’s limit),山農限度可以看作是用在具有特定信噪比的通道中使用的資料傳輸率,通過該通道可實現無誤碼傳輸。換句話說,山農限度是在給定調製和編碼率情況下通道容量的理論限度。A continuing and major development in this area is to reduce the signal-to-noise ratio in communication systems to achieve a specific bit error rate. The ideal goal is to try to study the Shannon’s limit in the communication channel. The Shannon limit can be seen as the data transmission rate used in the channel with a specific signal-to-noise ratio, through which the error-free transmission can be realized. In other words, the Shannon limit is the theoretical limit of channel capacity for a given modulation and coding rate.

LDPC碼已被證實在某些情況下可以提供接近山農限度的非常好的解碼性能。理論上,某些LDPC解碼器被證實可以達到離山農限度0.3分貝的性能。長度為一百萬的不規則LDPC碼曾達到該性能,它證實了在通信系統中應用LDPC碼是非常有希望的。The LDPC code has been proven to provide very good decoding performance close to the Shannon limit in some cases. In theory, some LDPC decoders have been shown to achieve a performance of 0.3 dB from the Shannon limit. This performance has been achieved with an irregular LDPC code of one million in length, which confirms that it is highly promising to apply LDPC codes in communication systems.

LDPC編碼信號的使用繼續被應用於許多新的領域。可採用LDPC編碼信號的幾種可能的通信系統的例子包括用於高速乙太網應用的採用4對雙絞線電纜的通信系統(例如依據IEEE 802.3an的10Gbps(吉位元/秒)乙太網操作(10GBASE-T))以及無線環境內 運行的通信系統(例如在包括IEEE 802.11n新興標準的IEEE 802.11環境空間內)。The use of LDPC coded signals continues to be used in many new areas. Examples of several possible communication systems that can employ LDPC coded signals include communication systems employing four pairs of twisted pair cables for high speed Ethernet applications (eg, 10 Gbps (gigabits per second) Ethernet according to IEEE 802.3an) Network operation (10GBASE-T) and wireless environment Operating communication systems (eg, within the IEEE 802.11 environmental space including the IEEE 802.11n emerging standard).

對於這些特殊的通信系統應用領域,非常期望有能夠實現接近容量的改錯碼。因使用傳統的鏈結碼而引入的潛在限制(latency constraints),妨礙了他們在高資料率通信系統應用領域內的使用。For these special communication system applications, it is highly desirable to have an error correction code that enables near capacity. The latency constraints introduced by the use of traditional link codes prevent their use in high data rate communication system applications.

一般來講,在採用LDPC碼的通信系統環境內,在通信通道的一端有一個具有編碼器能力的第一通信設備,在通信通道的另一端有一個具有解碼器能力的第二通信設備。多數情況下,這兩個通信設備其一或兩者都具有編碼器和解碼器能力(例如在雙向通信系統內)。LDPC碼還可以應用于各種其他應用中,包括那些採用某種形式的資料存儲(例如,硬碟驅動器HDD應用和其他存儲設備)的應用,其中資料在寫入存儲媒介之前被編碼,然後資料在從該資料媒介中讀出/取出後被解碼。Generally, in a communication system environment employing an LDPC code, there is a first communication device having an encoder capability at one end of the communication channel and a second communication device having a decoder capability at the other end of the communication channel. In most cases, one or both of the two communication devices have encoder and decoder capabilities (e.g., within a two-way communication system). LDPC codes can also be used in a variety of other applications, including those that use some form of data storage (eg, hard disk drive HDD applications and other storage devices) where the data is encoded before being written to the storage medium, and then the data is It is decoded after being read/removed from the data medium.

在許多這樣的現有通信設備中,設計解碼LDPC編碼信號的有效設備和/或通信設備的一個最大的困難在於存儲和管理在疊代解碼過程中(例如,在校驗引擎和位元引擎之間來回存儲和傳遞校驗邊消息和位元邊消息時)被更新和使用的所有位元邊消息(bit edge message)和校驗邊消息(check edge message)所需的大面積和記憶體。在LDPC碼環境中處理相對較大的塊尺寸時,處理這些校驗邊消息和位元邊消息所需的記憶體要求和記憶體管理將是非常難於處理的。因而本技術領域需要並將繼續需要有一種更好的手段來解碼LDPC編碼信號以提取出編碼在其內的資訊。In many such existing communication devices, one of the greatest difficulties in designing efficient devices and/or communication devices for decoding LDPC coded signals is storage and management during the iterative decoding process (eg, between the check engine and the bit engine). The large area and memory required for all bit edge messages and check edge messages that are updated and used when storing and passing check edge messages and bit side messages. When dealing with relatively large block sizes in an LDPC code environment, the memory requirements and memory management required to process these check edge messages and bit side messages will be very difficult to handle. Thus, there is a need in the art and will continue to require a better means of decoding LDPC coded signals to extract information encoded therein.

此外,當用於解碼LDPC編碼信號的低密度奇偶校驗矩陣H的大小達到預定的某大小時,第一處理模組與第二處理模組(例如,校驗引擎和位元引擎)之間的互聯性將會顯著增加。In addition, when the size of the low density parity check matrix H for decoding the LDPC coded signal reaches a predetermined size, between the first processing module and the second processing module (for example, the check engine and the bit engine) The interconnectivity will increase significantly.

本發明涉及的設備和方法在以下的附圖說明、具體實施方式和權利要求中有進一步的描述。The apparatus and method of the present invention are further described in the following description of the drawings, specific embodiments, and claims.

根據本發明的一方面,提供了一種解碼器,用於解碼LDPC(低密度奇偶校驗)編碼信號,所述解碼器包括:多個記憶體;多個位元引擎,且所述多個位元引擎中的每一個位元引擎都用於連接到所述多個記憶體中的至少一個記憶體;多個校驗引擎,所述多個校驗引擎中的每一個校驗引擎都用於連接到所述多個記憶體中的至少一個記憶體;以及多個複用器(MUX),用於:在第一LDPC編碼信號的解碼處理過程中,選擇性地將所述多個位元引擎和所述多個校驗引擎連接到所述多個記憶體中的第一選定記憶體;以及在第二LDPC編碼信號的解碼處理過程中,選擇性地將所述多個位元引擎和所述多個校驗引擎連接到所述多個記憶體中的第二選定記憶體;且其中:所述多個記憶體包括預定數量的記憶體,所述預定數量的記憶體用於表示對應多個LDPC編碼的多個LDPC矩陣中的多個非零子矩陣;所述解碼器用於解碼所述第一LDPC編碼信號,所述第一LDPC編碼信號對應於所述多個LDPC矩陣的第一LDPC矩陣,從而生成在第一LDPC編碼信號內被編碼的位元的最佳估計;以及所述解碼器用於解碼所述第二LDPC編碼信號,所述第二LDPC編碼信號對應於所述多個LDPC矩陣的第二LDPC矩陣,從而生成在第二LDPC編碼信號內被編碼的位元的最佳估計。According to an aspect of the present invention, there is provided a decoder for decoding an LDPC (Low Density Parity Check) encoded signal, the decoder comprising: a plurality of memories; a plurality of bit engines, and the plurality of bits Each bit engine in the meta engine is configured to connect to at least one of the plurality of memories; a plurality of check engines, each of the plurality of check engines being used for Connecting to at least one of the plurality of memories; and a plurality of multiplexers (MUXs) for selectively selecting the plurality of bits during a decoding process of the first LDPC coded signal An engine and the plurality of check engines are coupled to the first selected one of the plurality of memories; and selectively selecting the plurality of bit engines and during the decoding process of the second LDPC encoded signal The plurality of verification engines are coupled to a second selected one of the plurality of memories; and wherein: the plurality of memories comprise a predetermined number of memories, the predetermined number of memories being used to represent correspondence Multiple of multiple LDPC matrices of multiple LDPC codes a zero submatrix; the decoder is configured to decode the first LDPC coded signal, the first LDPC coded signal corresponding to a first LDPC matrix of the plurality of LDPC matrices, thereby generating a coded within the first LDPC coded signal a best estimate of the bit; and the decoder is configured to decode the second LDPC coded signal, the second LDPC coded signal corresponding to a second LDPC matrix of the plurality of LDPC matrices, thereby generating a second LDPC The best estimate of the encoded bit within the encoded signal.

優選地,通過彼此疊加對應多個LDPC編碼的多個LDPC矩陣中的多個非零子矩陣,確定所述多個記憶體內的一部分記憶體。Preferably, a part of the memory in the plurality of memories is determined by superimposing a plurality of non-zero sub-matrices in the plurality of LDPC matrices corresponding to the plurality of LDPC codes.

優選地,通過對對應多個LDPC編碼的多個LDPC矩陣中的多個非零子矩陣的疊加執行第一貪心(greedy)、深度(depth)搜索, 確定所述多個記憶體內的一部分記憶體。Preferably, performing a first greedy, depth search by superimposing a plurality of non-zero sub-matrices in a plurality of LDPC matrices corresponding to the plurality of LDPC codes, A portion of the memory in the plurality of memories is determined.

優選地,通過對對應多個LDPC編碼的多個LDPC矩陣中的多個非零子矩陣的疊加執行第一貪心、深度搜索,確定所述多個記憶體內的一部分記憶體;且所述第一貪心、深度搜索至少部分考慮列仿射度量(column affinity matric),所述列仿射度量表示所述第一LDPC矩陣中的列與所述第一LDPC矩陣中的至少另一列以及所述第二LDPC矩陣中的列的連通性(connectedness)。Preferably, a part of the memory in the plurality of memories is determined by performing a first greedy, deep search on a superposition of a plurality of non-zero sub-matrices in the plurality of LDPC matrices corresponding to the plurality of LDPC codes; and the first Greedy, deep search at least partially considers column affinity matrics, the column affine metrics representing columns in the first LDPC matrix and at least another column in the first LDPC matrix and the second The connectedness of the columns in the LDPC matrix.

優選地,所述通信設備內的多個記憶體的佈局基於合併模式(merge pattern),通過至少部分考慮列仿射度量生成所述合併模式,所述列仿射度量表示所述第一LDPC矩陣中的列與所述第一LDPC矩陣中的至少另一列以及所述第二LDPC矩陣中的列的連通性。Advantageously, the layout of the plurality of memories within the communication device is based on a merge pattern, the merge mode being generated by at least partially considering a column affine metric representing the first LDPC matrix The connectivity of the column in the column with at least one other column of the first LDPC matrix and the column in the second LDPC matrix.

優選地,所述多個記憶體包括多個合併記憶體,所述多個合併記憶體中的一個合併記憶體對應所述第一LDPC矩陣中的第一非零子矩陣,也對應所述第二LDPC矩陣中的第二非零子矩陣。Preferably, the plurality of memories comprise a plurality of merged memories, and one of the plurality of merged memories corresponds to a first non-zero submatrix in the first LDPC matrix, and corresponds to the first A second non-zero submatrix in the two LDPC matrix.

優選地,所述多個LDPC矩陣的所述第一LDPC矩陣包括第一多個非零子矩陣;所述多個LDPC矩陣的所述第二LDPC矩陣包括第二多個非零子矩陣;以及在所述第一LDPC編碼信號的解碼過程中,當處理所述第一多個非零子矩陣的第一非零子矩陣時,使用所述多個記憶體中的一個記憶體;在所述第二LDPC編碼信號的解碼過程中,當處理所述第二多個非零子矩陣的第一非零子矩陣時,也使用所述多個記憶體中的所述一個記憶體。Advantageously, said first LDPC matrix of said plurality of LDPC matrices comprises a first plurality of non-zero sub-matrices; said second LDPC matrix of said plurality of LDPC matrices comprising a second plurality of non-zero sub-matrices; In the decoding process of the first LDPC coded signal, when processing the first non-zero sub-matrix of the first plurality of non-zero sub-matrices, using one of the plurality of memories; In the decoding process of the second LDPC coded signal, when processing the first non-zero sub-matrix of the second plurality of non-zero sub-matrices, the one of the plurality of memories is also used.

優選地,所述多個LDPC矩陣的所述第一LDPC矩陣包括所述多個非零子矩陣的子集;以及所述多個LDPC矩陣的所述第二LDPC矩陣包括所述多個非 零子矩陣的所述子集和至少一個附加的非零子矩陣。Advantageously, said first LDPC matrix of said plurality of LDPC matrices comprises a subset of said plurality of non-zero sub-matrices; and said second LDPC matrix of said plurality of LDPC matrices comprises said plurality of non- The subset of zero submatrices and at least one additional non-zero submatrix.

優選地,在所述第一LDPC編碼信號的解碼過程中,當使用所述第一LDPC矩陣的第一非零子矩陣時,以及在所述第二LDPC編碼信號的解碼過程中,當使用所述第二LDPC矩陣的第二非零子矩陣時,使用所述多個記憶體中的一個記憶體;以及所述第一LDPC矩陣中的第一非零子矩陣的行和列的位置與所述第二LDPC矩陣中的第二非零子矩陣的行和列的位置相同。Preferably, in the decoding process of the first LDPC coded signal, when the first non-zero sub-matrix of the first LDPC matrix is used, and during the decoding process of the second LDPC coded signal, when used When the second non-zero submatrix of the second LDPC matrix is used, one of the plurality of memories is used; and the positions and rows of the rows and columns of the first non-zero submatrix in the first LDPC matrix The positions of the rows and columns of the second non-zero submatrix in the second LDPC matrix are the same.

優選地,當解碼所述第一LDPC編碼信號、使用所述第一LDPC矩陣中的第一非零子矩陣時,以及當解碼所述第二LDPC編碼信號、使用所述第二LDPC矩陣中的第二非零子矩陣時,使用所述多個記憶體中的一個記憶體;所述第一非零子矩陣包括位於所述第一LDPC矩陣中的第一行和第一列;以及所述第二非零子矩陣包括位於所述第二LDPC矩陣中的第二行和第二列。Advantageously, when decoding said first LDPC coded signal, using a first non-zero submatrix in said first LDPC matrix, and when decoding said second LDPC coded signal, using said second LDPC matrix a second non-zero submatrix, using one of the plurality of memories; the first non-zero submatrix comprising a first row and a first column in the first LDPC matrix; The second non-zero submatrix includes a second row and a second column located in the second LDPC matrix.

優選地,在位元節點的處理過程中,多個複用器中的一個複用器將所述多個位元引擎的一個位元引擎連接到所述多個記憶體中的一個記憶體;以及在校驗節點的處理過程中,多個複用器中的所述一個複用器將所述多個校驗引擎的一個校驗引擎連接到所述多個記憶體中的所述一個記憶體。Preferably, during processing of the bit node, one of the plurality of multiplexers connects a bit engine of the plurality of bit engines to one of the plurality of memories; And in the processing of the check node, the one of the plurality of multiplexers connects one of the plurality of check engines to the one of the plurality of memories body.

優選地,所述解碼器在積體電路中實施。Preferably, the decoder is implemented in an integrated circuit.

優選地,所述解碼器在通信設備中實施,所述通信設備用於從通信通道接收所述第一LDPC編碼信號或所述第二LDPC編碼信號;以及所述通信設備在以下中的至少一個中實施:衛星通信系統、無線通信系統、有線通信系統、以及光纖通信系統。Advantageously, said decoder is implemented in a communication device for receiving said first LDPC coded signal or said second LDPC coded signal from a communication channel; and said communication device is in at least one of Implementation: satellite communication systems, wireless communication systems, wired communication systems, and fiber-optic communication systems.

根據本發明的一個方面,提供了一種解碼器,用於解碼 LDPC(低密度奇偶校驗)編碼信號,所述解碼器包括:多個記憶體;多個位元引擎,且所述多個位元引擎中的每一個位元引擎都連接到所述多個記憶體中的至少一個記憶體;多個校驗引擎,所述多個校驗引擎中的每一個校驗引擎都連接到所述多個記憶體中的至少一個記憶體;以及多個複用器(MUX),用於:當解碼第一LDPC編碼信號時,在位元節點處理的過程中,將所述多個位元引擎中的第一選定位元引擎連接到所述多個記憶體中的第一選定記憶體;當解碼所述第一LDPC編碼信號時,在校驗節點處理的過程中,將所述多個校驗引擎中的第一選定校驗引擎連接到所述多個記憶體中的所述第一選定記憶體;當解碼第二LDPC編碼信號時,在位元節點處理的過程中,將所述多個位元引擎中的第二選定位元引擎連接到所述多個記憶體中的第二選定記憶體;以及當解碼所述第二LDPC編碼信號時,在校驗節點處理的過程中,將所述多個校驗引擎中的第二選定校驗引擎連接到所述多個記憶體中的所述第二選定記憶體;其中;所述多個記憶體包括預定數量的記憶體,所述預定數量的記憶體用於表示對應多個LDPC編碼的多個LDPC矩陣中的多個非零子矩陣;所述解碼器用於解碼所述第一LDPC編碼信號,所述第一LDPC編碼信號對應於所述多個LDPC矩陣的第一LDPC矩陣,從而生成在第一LDPC編碼信號內被編碼的位元的最佳估計;以及所述解碼器用於解碼所述第二LDPC編碼信號,所述第二LDPC編碼信號對應於所述多個LDPC矩陣的第二LDPC矩陣,從而生成在第二LDPC編碼信號內被編碼的位元的最佳估計。According to an aspect of the present invention, a decoder is provided for decoding LDPC (Low Density Parity Check) encoding a signal, the decoder comprising: a plurality of memory; a plurality of bit engines, and each of the plurality of bit engines is connected to the plurality of At least one memory in the memory; a plurality of verification engines, each of the plurality of verification engines being coupled to at least one of the plurality of memories; and a plurality of multiplexing And (MUX), configured to: when decoding the first LDPC coded signal, connect a first selected one of the plurality of bit engines to the plurality of memorys during bit node processing a first selected memory; when decoding the first LDPC encoded signal, connecting a first selected one of the plurality of verify engines to the plurality of check engines during processing of the check node The first selected memory in the memory; when decoding the second LDPC encoded signal, connecting the second selected positioning meta engine of the plurality of bit engines to the a second selected one of the plurality of memories; and when decoding said When the LDPC encodes the signal, in the process of the check node processing, the second selected check engine of the plurality of check engines is connected to the second selected one of the plurality of memories; wherein The plurality of memories include a predetermined number of memories for indicating a plurality of non-zero sub-matrices of the plurality of LDPC matrices corresponding to the plurality of LDPC codes; the decoder is for decoding Determining a first LDPC coded signal, the first LDPC coded signal corresponding to a first LDPC matrix of the plurality of LDPC matrices, thereby generating a best estimate of a bit coded within the first LDPC coded signal; Decoder for decoding the second LDPC coded signal, the second LDPC coded signal corresponding to a second LDPC matrix of the plurality of LDPC matrices, thereby generating an optimum of the bit coded in the second LDPC coded signal estimate.

優選地,所述多個位元引擎的所述第一選定位元引擎是所述多個位元引擎的所述第二選定位元引擎;以及所述多個校驗引擎的所述第一選定校驗引擎是所述多個校驗引擎的所述第二選定校驗引擎。Advantageously, said first selected positioning meta engine of said plurality of bit engines is said second selected positioning meta engine of said plurality of bit engines; and said first of said plurality of check engines The selected verification engine is the second selected verification engine of the plurality of verification engines.

優選地,所述多個位元引擎的所述第一選定位元引擎是所述多個位元引擎的所有位元引擎;以及所述多個校驗引擎的所述第一選定校驗引擎是所述多個校驗引擎的所有校驗引擎。Advantageously, said first selected positioning meta engine of said plurality of bit engines is all bit engines of said plurality of bit engines; and said first selected check engine of said plurality of check engines Is all of the check engines of the plurality of check engines.

優選地,在所述第一LDPC編碼信號的解碼過程中,所述第一LDPC編碼信號從所述多個位元引擎的所有位元引擎以及所述校驗引擎的所有校驗引擎斷開。Preferably, in the decoding process of the first LDPC coded signal, the first LDPC coded signal is disconnected from all bit engines of the plurality of bit-rate engines and all check engines of the check engine.

優選地,在所述第一LDPC編碼信號的解碼過程中,所述多個複用器中的一個複用器用於將所述多個記憶體中的一個記憶體連接到至少一個位元引擎;在所述第一LDPC編碼信號的解碼過程中,所述多個複用器中的所述複用器用於將所述多個複用器中的所述記憶體連接到至少一個校驗引擎;以及在所述第二LDPC編碼信號的解碼過程中,所述多個複用器中的所述複用器用於將所述多個記憶體中的所述記憶體從所述多個位元引擎的所有位元引擎以及所述校驗引擎的所有校驗引擎斷開。Preferably, in the decoding process of the first LDPC coded signal, one of the plurality of multiplexers is configured to connect one of the plurality of memories to at least one bit engine; In the decoding process of the first LDPC coded signal, the multiplexer of the plurality of multiplexers is configured to connect the memory of the plurality of multiplexers to at least one check engine; And in the decoding process of the second LDPC coded signal, the multiplexer of the plurality of multiplexers is configured to use the memory in the plurality of memories from the plurality of bit engines All of the bit engines and all of the check engines of the check engine are disconnected.

優選地,通過彼此疊加對應所述多個LDPC編碼的多個LDPC矩陣中的所述多個非零子矩陣,確定所述多個記憶體內的一部分記憶體。Preferably, a part of the memory in the plurality of memories is determined by superimposing the plurality of non-zero sub-matrices in the plurality of LDPC matrices corresponding to the plurality of LDPC codes.

優選地,通過對對應所述多個LDPC編碼的多個LDPC矩陣中的所述多個非零子矩陣的疊加執行第一貪心、深度搜索,確定所述多個記憶體內的一部分記憶體。Preferably, a part of the memory in the plurality of memories is determined by performing a first greedy, deep search on the superposition of the plurality of non-zero sub-matrices in the plurality of LDPC matrices corresponding to the plurality of LDPC codes.

優選地,通過對對應所述多個LDPC編碼的多個LDPC矩陣 中的所述多個非零子矩陣的疊加執行第一貪心、深度搜索,確定所述多個記憶體內的一部分記憶體;且所述第一貪心、深度搜索至少部分考慮列仿射度量,所述列仿射度量表示所述第一LDPC矩陣中的列與所述第一LDPC矩陣中的至少另一列以及所述第二LDPC矩陣中的列的連通性。Preferably, by using a plurality of LDPC matrices corresponding to the plurality of LDPC codes The superposition of the plurality of non-zero sub-matrices performs a first greedy, deep search to determine a portion of the memory in the plurality of memories; and the first greedy, depth search at least partially considers the column affine metric, The listed affine metrics represent connectivity of columns in the first LDPC matrix to at least one other column in the first LDPC matrix and columns in the second LDPC matrix.

優選地,所述通信設備內的所述多個記憶體的佈局基於合併模式,通過至少部分考慮列仿射度量生成所述合併模式,所述列仿射度量表示所述第一LDPC矩陣中的列與所述第一LDPC矩陣中的至少另一列以及所述第二LDPC矩陣中的列的連通性。Advantageously, the layout of said plurality of memories within said communication device is based on a merge mode, said merge mode being generated by at least partially considering a column affine metric, said column affine metric representing said first LDPC matrix The column is connected to at least one other column of the first LDPC matrix and columns in the second LDPC matrix.

優選地,所述多個記憶體包括多個合併記憶體,所述多個合併記憶體中的一個合併記憶體對應所述第一LDPC矩陣中的第一非零子矩陣,也對應所述第二LDPC矩陣中的第二非零子矩陣。Preferably, the plurality of memories comprise a plurality of merged memories, and one of the plurality of merged memories corresponds to a first non-zero submatrix in the first LDPC matrix, and corresponds to the first A second non-zero submatrix in the two LDPC matrix.

優選地,所述多個LDPC矩陣的所述第一LDPC矩陣包括第一多個非零子矩陣;所述多個LDPC矩陣的所述第二LDPC矩陣包括第二多個非零子矩陣;以及在所述第一LDPC編碼信號的解碼過程中,當處理所述第一多個非零子矩陣的第一非零子矩陣時,使用所述多個記憶體中的一個記憶體;在所述第二LDPC編碼信號的解碼過程中,當處理所述第二多個非零子矩陣的第一非零子矩陣時,也使用所述多個記憶體中的所述一個記憶體。Advantageously, said first LDPC matrix of said plurality of LDPC matrices comprises a first plurality of non-zero sub-matrices; said second LDPC matrix of said plurality of LDPC matrices comprising a second plurality of non-zero sub-matrices; In the decoding process of the first LDPC coded signal, when processing the first non-zero sub-matrix of the first plurality of non-zero sub-matrices, using one of the plurality of memories; In the decoding process of the second LDPC coded signal, when processing the first non-zero sub-matrix of the second plurality of non-zero sub-matrices, the one of the plurality of memories is also used.

優選地,所述多個LDPC矩陣的所述第一LDPC矩陣包括所述多個非零子矩陣的子集;以及所述多個LDPC矩陣的所述第二LDPC矩陣包括所述多個非零子矩陣的所述子集和至少一個附加的非零子矩陣。Advantageously, said first LDPC matrix of said plurality of LDPC matrices comprises a subset of said plurality of non-zero sub-matrices; and said second LDPC matrix of said plurality of LDPC matrices comprises said plurality of non-zero The subset of sub-matrices and at least one additional non-zero sub-matrix.

優選地,在所述第一LDPC編碼信號的解碼過程中,當使用所述第一LDPC矩陣的第一非零子矩陣時,以及在所述第二LDPC編碼信號的解碼過程中,當使用所述第二LDPC矩陣的第二非零 子矩陣時,使用所述多個記憶體中的一個記憶體;以及所述第一LDPC矩陣中的第一非零子矩陣的行和列的位置與所述第二LDPC矩陣中的第二非零子矩陣的行和列的位置相同。Preferably, in the decoding process of the first LDPC coded signal, when the first non-zero sub-matrix of the first LDPC matrix is used, and during the decoding process of the second LDPC coded signal, when used The second non-zero of the second LDPC matrix a sub-matrix, using one of the plurality of memories; and a position of a row and a column of the first non-zero submatrix in the first LDPC matrix and a second non in the second LDPC matrix The rows and columns of the zero submatrix have the same position.

優選地,當解碼所述第一LDPC編碼信號、使用所述第一LDPC矩陣中的第一非零子矩陣時,以及當解碼所述第二LDPC編碼信號、使用所述第二LDPC矩陣中的第二非零子矩陣時,使用所述多個記憶體中的一個記憶體;所述第一非零子矩陣包括位於所述第一LDPC矩陣中的第一行和第一列;以及所述第二非零子矩陣包括位於所述第二LDPC矩陣中的第二行和第二列。Advantageously, when decoding said first LDPC coded signal, using a first non-zero submatrix in said first LDPC matrix, and when decoding said second LDPC coded signal, using said second LDPC matrix a second non-zero submatrix, using one of the plurality of memories; the first non-zero submatrix comprising a first row and a first column in the first LDPC matrix; The second non-zero submatrix includes a second row and a second column located in the second LDPC matrix.

優選地,在位元節點的處理過程中,多個複用器中的一個複用器將所述多個位元引擎的一個位元引擎連接到所述多個記憶體中的一個記憶體;以及在校驗節點的處理過程中,多個複用器中的所述一個複用器將所述多個校驗引擎的一個校驗引擎連接到所述多個記憶體中的所述一個記憶體。Preferably, during processing of the bit node, one of the plurality of multiplexers connects a bit engine of the plurality of bit engines to one of the plurality of memories; And in the processing of the check node, the one of the plurality of multiplexers connects one of the plurality of check engines to the one of the plurality of memories body.

優選地,所述解碼器在積體電路中實施。Preferably, the decoder is implemented in an integrated circuit.

優選地,所述解碼器在通信設備中實施,所述通信設備用於從通信通道接收所述第一LDPC編碼信號或所述第二LDPC編碼信號;以及所述通信設備在以下中的至少一個中實施:衛星通信系統、無線通信系統、有線通信系統、以及光纖通信系統。Advantageously, said decoder is implemented in a communication device for receiving said first LDPC coded signal or said second LDPC coded signal from a communication channel; and said communication device is in at least one of Implementation: satellite communication systems, wireless communication systems, wired communication systems, and fiber-optic communication systems.

根據本發明的一個方面,提供了一種解碼器,用於解碼LDPC(低密度奇偶校驗)編碼信號,所述解碼器包括:多個記憶體;多個位元引擎,且所述多個位元引引中的每一個位元引擎都連接到所述多個記憶體中的至少一個記憶體; 多個校驗引擎,所述多個校驗引擎中的每一個校驗引擎都連接到所述多個記憶體中的至少一個記憶體;以及多個複用器(MUX),用於:當解碼第一LDPC編碼信號時,在位元節點處理的過程中,將所述多個位元引擎連接到所述多個記憶體中的第一選定記憶體;當解碼所述第一LDPC編碼信號時,在校驗節點處理的過程中,將所述多個校驗引擎連接到所述多個記憶體中的所述第一選定記憶體;當解碼第二LDPC編碼信號時,在位元節點處理的過程中,將所述多個位元引擎連接到所述多個記憶體中的第二選定記憶體;當解碼所述第二LDPC編碼信號時,在校驗節點處理的過程中,將所述多個校驗引擎連接到所述多個記憶體中的所述第二選定記憶體;當解碼第三LDPC編碼信號時,在位元節點處理的過程中,將所述多個位元引擎連接到所述多個記憶體中的第三選定記憶體;以及當解碼所述第三LDPC編碼信號時,在校驗節點處理的過程中,將所述多個校驗引擎連接到所述多個記憶體中的所述第三選定記憶體;其中:所述多個記憶體包括預定數量的記憶體,所述預定數量的記憶體用於表示對應多個LDPC編碼的多個LDPC矩陣中的多個非零子矩陣;所述解碼器用於解碼所述第一LDPC編碼信號,所述第一LDPC編碼信號對應於所述多個LDPC矩陣的第一LDPC矩陣,從而生成在第一LDPC編碼信號內被編碼的位元的最佳估計;所述解碼器用於解碼所述第二LDPC編碼信號,所述第二 LDPC編碼信號對應於所述多個LDPC矩陣的第二LDPC矩陣,從而生成在第二LDPC編碼信號內被編碼的位元的最佳估計;以及所述解碼器用於解碼所述第三LDPC編碼信號,所述第三LDPC編碼信號對應於所述多個LDPC矩陣的第三LDPC矩陣,從而生成在第三LDPC編碼信號內被編碼的位元的最佳估計。According to an aspect of the present invention, there is provided a decoder for decoding an LDPC (Low Density Parity Check) encoded signal, the decoder comprising: a plurality of memories; a plurality of bit engines, and the plurality of bits Each bit engine in the meta-induction is connected to at least one of the plurality of memories; a plurality of check engines, each of the plurality of check engines being connected to at least one of the plurality of memories; and a plurality of multiplexers (MUXs) for: when Decoding the first LDPC encoded signal, connecting the plurality of bit engines to the first selected one of the plurality of memories during processing of the bit node; and decoding the first LDPC encoded signal And in the process of verifying node processing, connecting the plurality of check engines to the first selected memory of the plurality of memories; when decoding the second LDPC coded signal, at a bit node In the process of processing, connecting the plurality of bit engines to the second selected one of the plurality of memories; when decoding the second LDPC coded signals, during the process of verifying the nodes, The plurality of check engines are coupled to the second selected one of the plurality of memories; when the third LDPC coded signal is decoded, the plurality of bits are processed during bit node processing An engine is coupled to the third selected one of the plurality of memories; And when decoding the third LDPC coded signal, in the process of verifying node processing, connecting the plurality of check engines to the third selected one of the plurality of memories; The plurality of memories includes a predetermined number of memories, the predetermined number of memories being used to represent a plurality of non-zero sub-matrices in a plurality of LDPC matrices corresponding to the plurality of LDPC codes; the decoder is configured to decode the An LDPC coded signal, the first LDPC coded signal corresponding to a first LDPC matrix of the plurality of LDPC matrices, thereby generating a best estimate of a bit coded within the first LDPC coded signal; the decoder is for Decoding the second LDPC coded signal, the second An LDPC coded signal corresponding to a second LDPC matrix of the plurality of LDPC matrices, thereby generating a best estimate of a bit coded within the second LDPC coded signal; and the decoder for decoding the third LDPC coded signal And the third LDPC coded signal corresponds to a third LDPC matrix of the plurality of LDPC matrices, thereby generating a best estimate of the bit coded within the third LDPC coded signal.

優選地,通過彼此疊加對應所述多個LDPC編碼的多個LDPC矩陣中的所述多個非零子矩陣,確定所述多個記憶體內的一部分記憶體。Preferably, a part of the memory in the plurality of memories is determined by superimposing the plurality of non-zero sub-matrices in the plurality of LDPC matrices corresponding to the plurality of LDPC codes.

優選地,通過對對應所述多個LDPC編碼的多個LDPC矩陣中的所述多個非零子矩陣的疊加執行第一貪心、深度搜索,確定所述多個記憶體內的一部分記憶體。Preferably, a part of the memory in the plurality of memories is determined by performing a first greedy, deep search on the superposition of the plurality of non-zero sub-matrices in the plurality of LDPC matrices corresponding to the plurality of LDPC codes.

優選地,通過對對應所述多個LDPC編碼的多個LDPC矩陣中的所述多個非零子矩陣的疊加執行第一貪心、深度搜索,確定所述多個記憶體內的一部分記憶體;且所述第一貪心、深度搜索至少部分考慮列仿射度量,所述列仿射度量表示所述第一LDPC矩陣中的列與所述第一LDPC矩陣中的至少另一列、所述第二LDPC矩陣中的列、以及所述第三LDPC矩陣中的列的連通性。Preferably, a part of the memory in the plurality of memories is determined by performing a first greedy, deep search on a superposition of the plurality of non-zero sub-matrices in the plurality of LDPC matrices corresponding to the plurality of LDPC codes; and The first greedy, depth search at least partially considers a column affine metric, the column affine metric representing a column in the first LDPC matrix and at least another column in the first LDPC matrix, the second LDPC The columns in the matrix, and the connectivity of the columns in the third LDPC matrix.

優選地,所述通信設備內的所述多個記憶體的佈局基於合併模式,通過至少部分考慮列仿射度量生成所述合併模式,所述列仿射度量表示所述第一LDPC矩陣中的列與所述第一LDPC矩陣中的至少另一列、所述第二LDPC矩陣中的列、以及所述第三LDPC矩陣中的列的連通性。Advantageously, the layout of said plurality of memories within said communication device is based on a merge mode, said merge mode being generated by at least partially considering a column affine metric, said column affine metric representing said first LDPC matrix The column is connected to at least one other column of the first LDPC matrix, a column in the second LDPC matrix, and a column in the third LDPC matrix.

優選地,所述多個記憶體包括多個合併記憶體,所述多個合併記憶體中的一個合併記憶體對應所述第一LDPC矩陣中的第一非零子矩陣,也對應所述第二LDPC矩陣中的第二非零子矩陣,也對應所述第三LDPC矩陣中的第三非零子矩陣。Preferably, the plurality of memories comprise a plurality of merged memories, and one of the plurality of merged memories corresponds to a first non-zero submatrix in the first LDPC matrix, and corresponds to the first The second non-zero submatrix in the two LDPC matrix also corresponds to the third non-zero submatrix in the third LDPC matrix.

優選地,所述多個LDPC矩陣的所述第一LDPC矩陣包括所 述多個非零子矩陣的子集;以及所述多個LDPC矩陣的所述第二LDPC矩陣包括所述多個非零子矩陣的子集和至少一個附加的非零子矩陣。Advantageously, said first LDPC matrix of said plurality of LDPC matrices comprises A subset of the plurality of non-zero sub-matrices; and the second LDPC matrix of the plurality of LDPC matrices includes a subset of the plurality of non-zero sub-matrices and at least one additional non-zero sub-matrix.

優選地,當解碼所述第一LDPC編碼信號、使用所述第一LDPC矩陣中的第一非零子矩陣時,以及當解碼所述第二LDPC編碼信號、使用所述第二LDPC矩陣中的第二非零子矩陣時,使用所述多個記憶體中的一個記憶體;所述第一非零子矩陣包括位於所述第一LDPC矩陣中的第一行和第一列;以及所述第二非零子矩陣包括位於所述第二LDPC矩陣中的第二行和第二列。Advantageously, when decoding said first LDPC coded signal, using a first non-zero submatrix in said first LDPC matrix, and when decoding said second LDPC coded signal, using said second LDPC matrix a second non-zero submatrix, using one of the plurality of memories; the first non-zero submatrix comprising a first row and a first column in the first LDPC matrix; The second non-zero submatrix includes a second row and a second column located in the second LDPC matrix.

優選地,所述解碼器在積體電路中實施。Preferably, the decoder is implemented in an integrated circuit.

優選地,所述解碼器在通信設備中實施,所述通信設備用於從通信通道接收所述第一LDPC編碼信號或所述第二LDPC編碼信號;以及所述通信設備在以下中的至少一個中實施:衛星通信系統、無線通信系統、有線通信系統、以及光纖通信系統。Advantageously, said decoder is implemented in a communication device for receiving said first LDPC coded signal or said second LDPC coded signal from a communication channel; and said communication device is in at least one of Implementation: satellite communication systems, wireless communication systems, wired communication systems, and fiber-optic communication systems.

本發明的各種優點、各個方面和創新特徵,以及其中所示例的實施例的細節,將在以下的描述和附圖中進行詳細介紹。The various advantages, aspects, and novel features of the invention, as well as the details of the embodiments illustrated herein, are described in the following description and drawings.

100‧‧‧通信系統100‧‧‧Communication system

110‧‧‧通信設備110‧‧‧Communication equipment

112‧‧‧發送器112‧‧‧transmitter

114‧‧‧編碼器114‧‧‧Encoder

116‧‧‧接收器116‧‧‧ Receiver

118‧‧‧解碼器118‧‧‧Decoder

120‧‧‧通信設備120‧‧‧Communication equipment

122‧‧‧接收器122‧‧‧ Receiver

124‧‧‧解碼器124‧‧‧Decoder

126‧‧‧發送器126‧‧‧transmitter

128‧‧‧編碼器128‧‧‧Encoder

130‧‧‧衛星通信通道130‧‧‧ Satellite communication channel

132、134‧‧‧圓盤式衛星接收天線132, 134‧‧‧ disc satellite receiving antenna

140‧‧‧無線通信通道140‧‧‧Wireless communication channel

142、144‧‧‧塔142, 144‧‧ ‧ tower

150‧‧‧有線通信通道150‧‧‧Wired communication channel

152、154‧‧‧本地天線152, 154‧‧‧Local antenna

160‧‧‧光纖通信通道160‧‧‧Fiber communication channel

162‧‧‧電-光(E/O)介面162‧‧‧Electrical-optical (E/O) interface

164‧‧‧光-電(O/E)介面164‧‧‧Optical-Electric (O/E) interface

199‧‧‧通信通道199‧‧‧Communication channel

200‧‧‧通信系統200‧‧‧Communication system

200‧‧‧編碼器和符號映射器200‧‧‧Encoder and symbol mapper

201‧‧‧資訊位元201‧‧‧Information Bits

203‧‧‧離散值調製符號序列203‧‧‧Discrete value modulation symbol sequence

204‧‧‧連續時間發送信號204‧‧‧Send time signal

205‧‧‧濾波後連續時間發送信號205‧‧‧Send signal after continuous filtering

206‧‧‧連續時間接收信號206‧‧‧Received signals in continuous time

207‧‧‧濾波後連續時間接收信號207‧‧‧Received signals after continuous filtering

208‧‧‧離散時間接收信號208‧‧‧Discrete time receiving signal

209‧‧‧符號量度(symbol metrics)209‧‧‧symbol metrics

210‧‧‧最佳估算210‧‧‧ best estimate

222、224‧‧‧功能塊222, 224‧‧‧ functional blocks

230‧‧‧發送驅動器230‧‧‧Send drive

232‧‧‧數模轉換器(DAC)232‧‧‧Digital-to-Analog Converter (DAC)

234‧‧‧發送濾波器234‧‧‧Transmission filter

260‧‧‧模擬前端(AFE)260‧‧‧Analog Front End (AFE)

262‧‧‧接收濾波器262‧‧‧ Receive Filter

264‧‧‧模數轉換器(ADC)264‧‧• Analog to Digital Converter (ADC)

270‧‧‧量度生成器(metric generator)270‧‧‧metric generator

280‧‧‧解碼器280‧‧‧Decoder

297‧‧‧發送器297‧‧‧transmitter

299‧‧‧通信通道299‧‧‧Communication channel

300‧‧‧裝置300‧‧‧ device

310‧‧‧記憶體310‧‧‧ memory

320‧‧‧處理模組320‧‧‧Processing module

330‧‧‧通信設備330‧‧‧Communication equipment

340‧‧‧通信系統340‧‧‧Communication system

400‧‧‧裝置400‧‧‧ device

410‧‧‧記憶體410‧‧‧ memory

420‧‧‧處理模組420‧‧‧Processing module

430‧‧‧通信設備430‧‧‧Communication equipment

440‧‧‧通信系統440‧‧‧Communication system

500‧‧‧LDPC碼二分圖500‧‧‧LDPC code bipartite graph

510‧‧‧位元節點510‧‧‧ bit nodes

512‧‧‧位元節點512‧‧‧ bit nodes

520‧‧‧校驗節點520‧‧‧Check node

522‧‧‧校驗節點522‧‧‧Check node

524‧‧‧邊524‧‧‧ side

530‧‧‧邊530‧‧‧

600‧‧‧LDPC解碼功能600‧‧‧LDPC decoding function

610‧‧‧模擬前端(AFE)610‧‧‧Analog Front End (AFE)

611‧‧‧離散時間信號611‧‧‧Discrete time signal

620‧‧‧度量生成器620‧‧‧Metric Generator

621‧‧‧位元度量和/或對數似然比(LLR)621‧‧‧ bit metric and/or log likelihood ratio (LLR)

630‧‧‧位元引擎630‧‧‧ bit engine

632‧‧‧軟資訊632‧‧‧Soft Information

635‧‧‧迭代解碼處理635‧‧‧ Iterative decoding processing

640‧‧‧校驗引擎640‧‧‧Check engine

641‧‧‧校驗邊消息641‧‧‧Check side messages

650‧‧‧硬限幅器(hard limiter)650‧‧‧hard limiter

651‧‧‧硬/最佳估計值651‧‧‧hard/best estimate

660‧‧‧校正子計算器660‧‧‧Calculator

700‧‧‧實施例700‧‧‧Examples

710、720‧‧‧LDPC矩陣710, 720‧‧‧LDPC matrix

711‧‧‧非零子矩陣711‧‧‧Non-zero submatrix

712‧‧‧非零子矩陣712‧‧‧Non-zero submatrix

721‧‧‧非零子矩陣721‧‧‧Non-zero submatrix

722‧‧‧非零子矩陣722‧‧‧Non-zero submatrix

730‧‧‧疊加LDPC矩陣730‧‧‧Overlay LDPC matrix

810‧‧‧三記憶體構造810‧‧‧Three memory structures

811‧‧‧記憶體811‧‧‧ memory

812‧‧‧記憶體812‧‧‧ memory

813‧‧‧記憶體813‧‧‧ memory

821‧‧‧記憶體821‧‧‧ memory

822‧‧‧記憶體822‧‧‧ memory

901、902‧‧‧實施例901, 902‧‧‧Examples

921‧‧‧校驗引擎921‧‧‧Check Engine

922‧‧‧校驗引擎922‧‧‧Check engine

931‧‧‧位元引擎931‧‧‧ bit engine

932‧‧‧位元引擎932‧‧‧ bit engine

991‧‧‧切換模組991‧‧‧Switch Module

992‧‧‧切換引擎992‧‧‧Switching engine

1011‧‧‧記憶體1011‧‧‧ memory

1012‧‧‧記憶體1012‧‧‧ memory

1021‧‧‧校驗引擎1021‧‧‧Check Engine

1022‧‧‧校驗引擎1022‧‧‧Check Engine

1031‧‧‧位元引擎1031‧‧‧ bit engine

1032‧‧‧位元引擎1032‧‧‧ bit engine

1091‧‧‧切換模組1091‧‧‧Switching module

1092‧‧‧切換引擎1092‧‧‧Switching engine

1110‧‧‧多個記憶體1110‧‧‧Multiple memories

1111-1113‧‧‧記憶體1111-1113‧‧‧ memory

1121‧‧‧校驗引擎1121‧‧‧Check engine

1123‧‧‧校驗引擎1123‧‧‧Check engine

1131‧‧‧位元引擎1131‧‧‧ bit engine

1133‧‧‧位元引擎1133‧‧‧ bit engine

1191‧‧‧切換模組1191‧‧‧Switching Module

1192‧‧‧切換引擎1192‧‧‧Switching engine

1210‧‧‧多個記憶體1210‧‧‧Multiple memories

1211-1213‧‧‧記憶體1211-1213‧‧‧Memory

1221‧‧‧校驗引擎1221‧‧‧Check Engine

1223‧‧‧校驗引擎1223‧‧‧Check Engine

1231‧‧‧位元引擎1231‧‧‧ bit engine

1233‧‧‧位元引擎1233‧‧‧ bit engine

1291‧‧‧切換模組1291‧‧‧Switching Module

圖1和圖2示出了通信系統的不同實施例;圖3示出了用於執行LDPC解碼處理的設備的實施例;圖4示出了用於執行LDPC解碼處理的設備的選擇性實施例;圖5示出了LDPC編碼二分圖的實施例;圖6示出了LDPC解碼功能的實施例;圖7示出了多個LDPC矩陣的非零子矩陣疊加的實施例;圖8示出了提供記憶體、以適應對圖7中疊加的LDPC矩陣的非零子矩陣的處理的實施例; 圖9A和圖9B示出了解碼架構的實施例,用於適應對圖7中疊加的LDPC矩陣的非零子矩陣的處理;圖10示出了解碼架構的實施例,用於適應對圖7中疊加的LDPC矩陣的非零子矩陣的處理;圖11示出了解碼架構的實施例,用於適應對疊加的LDPC矩陣的非零子矩陣的處理;圖12示出了解碼架構的選擇性實施例,用於適應對疊加的LDPC矩陣的非零子矩陣的處理;圖13和圖14示出了為解碼疊加LDPC矩陣的非零子矩陣提供硬體的實施例;圖15示出了2個相互獨立的記憶體之間的連接的實施例,所述記憶體用於LDPC解碼處理過程中的校驗節點處理;圖16示出了合併記憶體的連接性的實施例,所述合併記憶體用於LDPC解碼處理過程中的校驗節點處理;圖17示出了處理LDPC編碼信號的方法的實施例;圖18示出了處理LDPC編碼信號的方法的實施例;圖19示出了為處理各種LDPC編碼信號提供硬體的方法的實施例;圖20示出了疊加LDPC矩陣的選擇性實施例。1 and 2 illustrate different embodiments of a communication system; FIG. 3 illustrates an embodiment of an apparatus for performing LDPC decoding processing; and FIG. 4 illustrates an alternative embodiment of an apparatus for performing LDPC decoding processing Figure 5 shows an embodiment of an LDPC coded bipartite graph; Figure 6 shows an embodiment of an LDPC decoding function; Figure 7 shows an embodiment of a non-zero sub-matrix superposition of a plurality of LDPC matrices; Figure 8 shows An embodiment of providing memory to accommodate processing of non-zero sub-matrices of the LDPC matrix superimposed in FIG. 7; 9A and 9B illustrate an embodiment of a decoding architecture for adapting the processing of the non-zero sub-matrices of the LDPC matrix superimposed in FIG. 7; FIG. 10 shows an embodiment of a decoding architecture for adapting to FIG. Processing of non-zero sub-matrices of LDPC matrices superimposed; Figure 11 shows an embodiment of a decoding architecture for adapting the processing of non-zero sub-matrices of superimposed LDPC matrices; Figure 12 shows the selectivity of the decoding architecture Embodiments for adapting processing of non-zero sub-matrices of superimposed LDPC matrices; Figures 13 and 14 show an embodiment of providing hardware for decoding non-zero sub-matrices of superimposed LDPC matrices; Figure 15 shows 2 An embodiment of a connection between mutually independent memories for use in check node processing during LDPC decoding processing; FIG. 16 illustrates an embodiment of merged memory connectivity, the merged memory The body is used for check node processing in the LDPC decoding process; FIG. 17 shows an embodiment of a method of processing an LDPC coded signal; FIG. 18 shows an embodiment of a method of processing an LDPC coded signal; Handling various LDPC coded signals to provide hardware An embodiment of the method; Figure 20 shows an alternative embodiment of a superimposed LDPC matrix.

LDPC(低密度奇偶校驗)碼是容量逼近前向改錯碼(ECC),正被大量通信標準(例如IEEE 802.3an、IEEE 802.11n、802.20、DVB-S2)所採用。相關的應用領域包括磁記錄、無線、通過銅纜和光纖的高速資料傳輸。The LDPC (Low Density Parity Check) code is a capacity approximation forward error correction code (ECC) that is being adopted by a large number of communication standards (eg, IEEE 802.3an, IEEE 802.11n, 802.20, DVB-S2). Related application areas include magnetic recording, wireless, and high-speed data transmission over copper and fiber.

一個實施例中,使用疊代解碼方法來執行LDPC解碼處理,其中,在執行校驗節點處理(有時也稱為檢驗引擎處理)和位元節點處理(有時也稱為位元引擎處理)時將來回傳遞消息(例如,校驗邊消息和位元邊消息(有是也稱為變數邊消息))。某些時候,這被稱 為消息傳遞解碼處理,在編碼的圖形標示上(例如,LDPC二分圖,業內有時也稱為“Tanner”圖)操作。In one embodiment, an LDPC decoding process is performed using an iterative decoding method in which check node processing (sometimes referred to as check engine processing) and bit node processing (sometimes referred to as bit engine processing) are performed. Messages are passed back and forth (for example, check edge messages and bit edge messages (also known as variable edge messages). Sometimes this is called For message passing decoding processing, operations are performed on encoded graphical indications (eg, LDPC bipartite graphs, sometimes referred to in the industry as "Tanner" maps).

在多數使用LDPC編碼信號的通信應用中,必需和/或期望支援多種編碼。這裏包含各種理由。一方面,各種不同的編碼可以用於不同的雜訊環境和/或資料特性。例如,當通信系統的操作環境發生變化時(例如SNR改變),則正在使用的特定編碼也可能自適應地改變,以適應環境的變化,保持一種可接受的性能水平(例如可接受的低誤碼率下的可接受高吞吐量)。另一方面,收發器可以設計成能夠支援不同通信協定的多種編碼方式的多協定收發器。許多應用也使用LDPC編碼進行操作,該LDPC編碼對應的LDPC矩陣是基於子矩陣的,且其中一些LDPC矩陣使用次序改變的子矩陣。In most communication applications that use LDPC coded signals, it is necessary and/or desirable to support multiple codes. There are various reasons for this. On the one hand, various codes can be used for different noise environments and/or data characteristics. For example, when the operating environment of the communication system changes (eg, SNR changes), the particular code being used may also be adaptively changed to accommodate changes in the environment, maintaining an acceptable level of performance (eg, acceptable low errors) Acceptable high throughput at bit rate). On the other hand, the transceiver can be designed as a multi-protocol transceiver capable of supporting multiple encoding schemes of different communication protocols. Many applications also operate using LDPC encoding, which corresponds to sub-matrix based LDPC matrices, and some of which use sub-matrices with order changes.

例如,IEEE 802.11n標準規定了12種不同的LDPC編碼,這些LDPC編碼基於子矩陣結構。同樣,IEEE 802.16a標準規定了24種不同的LDPC編碼,它們也基於子矩陣結構。本發明的一些方面可使用于這些應用示例中。For example, the IEEE 802.11n standard specifies 12 different LDPC codes based on a sub-matrix structure. Similarly, the IEEE 802.16a standard specifies 24 different LDPC codes, which are also based on sub-matrix structures. Some aspects of the invention may be used in these application examples.

本發明提供的方法使用解碼器所支援的LDPC編碼族的子矩陣結構是降低解碼器的實施複雜度的有效方式。一般情況下,在任何時刻解碼器僅需支援LDPC編碼族中的一種編碼方案(例如當解碼使用特定LDPC編碼生成的特定編碼信號時),本發明的解碼器構造使得記憶體件和計算單元能夠高效共用。這可以在很大程度上降低解碼器對存儲空間和計算單元的需求從而減小解碼器的體積。The method provided by the present invention uses the sub-matrix structure of the LDPC coding family supported by the decoder as an effective way to reduce the implementation complexity of the decoder. In general, at any time the decoder only needs to support one of the LDPC coding families (eg, when decoding a particular coded signal generated using a particular LDPC code), the decoder construction of the present invention enables the memory and computational units to Efficient sharing. This can greatly reduce the decoder's need for memory space and computational units to reduce the size of the decoder.

此外,本發明還提供使用多種相關技術從LDPC編碼族中的所有PDPC編碼疊合(super-position)(必須由特定應用所支援)來獲得“合併”解碼器構造的方法。這一合併技術在個別編碼結構中使用零子矩陣,並在LDPC編碼的圖形標示中基於接近度量(metrics based on proximity)。In addition, the present invention also provides a method for obtaining a "merged" decoder configuration from all PDPC code super-positions in the LDPC coding family (which must be supported by a particular application) using a variety of related techniques. This merging technique uses a zero submatrix in the individual coding structure and is based on metrics based on proximity in the graphical representation of the LDPC encoding.

需要注意的是,本發明提供的方法還可應用到其他LDPC解碼構造中,包括前述的美國臨時專利申請60/958,014和美國實用新型專利申請11/828,532,其名稱均為“Distributed processing LEPC(Low Density Parity Check)decoder”的LDPC解碼構造中。It is to be noted that the method provided by the present invention is also applicable to other LDPC decoding configurations, including the aforementioned U.S. Provisional Patent Application No. 60/958,014, and U.S. Utility Model Application Serial No. 11/828,532, the entire disclosure of which is assigned to Density Parity Check) coder in the LDPC decoding structure.

本發明提供的新穎方法使用單個通信設備和/或硬體來執行各種LDPC編碼信號的解碼操作。這些LDPC編碼信號中的每一編碼信號都具有對應的可用於執行解碼處理的LDPC矩陣。在一些實施例中,對應於每個LDPC編碼的每個LDPC矩陣可能具有相同數量的子矩陣。在其他實施例中,每個LDPC編碼矩陣中的子矩陣的數量可能需要不相同。該方法的目標是最小化通信設備的面積開銷,同時降低其中的路徑擁塞。The novel method provided by the present invention uses a single communication device and/or hardware to perform decoding operations of various LDPC encoded signals. Each of these LDPC coded signals has a corresponding LDPC matrix that can be used to perform decoding processing. In some embodiments, each LDPC matrix corresponding to each LDPC encoding may have the same number of sub-matrices. In other embodiments, the number of sub-matrices in each LDPC coding matrix may need to be different. The goal of the method is to minimize the area overhead of the communication device while reducing path congestion therein.

該方法還可用來設計用於解碼多個LDPC編碼信號的通信設備。例如,可使用一個實施例來得到用於解碼根據IEEE802.11n標準使用的12種編碼方案中任一種生成的LDPC編碼信號的通信設備。此外,本發明的方法可使用合併記憶體(例如在解碼不同LDPC矩陣的互斥子矩陣時使用)的方式進行優化。The method can also be used to design a communication device for decoding a plurality of LDPC coded signals. For example, an embodiment may be used to obtain a communication device for decoding an LDPC coded signal generated according to any of the 12 coding schemes used in the IEEE 802.11n standard. Moreover, the method of the present invention can be optimized in a manner that combines memory (eg, when decoding mutually exclusive sub-matrices of different LDPC matrices).

有各種方法可以最小化通信設備中用於解碼多個LDPC編碼信號的硬體的數量。例如,一種直接簡單的方法包括相互疊加對應於每個LDPC編碼的每一個LDPC矩陣。無論何時子矩陣位置得到結果,疊加後的LDPC矩陣包括非零元素(non-null entry),之後記憶體用於存儲該子矩陣位置。這種直接疊加方法能夠為解碼多個LDPC編碼信號提供足夠的硬體環境。另外,從這種直接疊加方法獲得的硬體部分的額外節省在後面的實施例中將進行描述。There are various ways to minimize the number of hardware used to decode multiple LDPC coded signals in a communication device. For example, a straightforward method involves superimposing each LDPC matrix corresponding to each LDPC code. Whenever the submatrix position results, the superimposed LDPC matrix includes a non-null entry, after which the memory is used to store the submatrix position. This direct superposition method can provide a sufficient hardware environment for decoding multiple LDPC coded signals. In addition, the additional savings of the hardware portion obtained from this direct superposition method will be described in the following embodiments.

數位通信系統的目標是從一個位置或子系統無錯地或以可接受的低錯誤率發送數位資料到另一個位置或子系統。如圖1所示,資料可通過多種通信系統內的各種通信通道來傳輸:磁媒介、有線、無線、光纖、銅纜和其他類型的媒介。The goal of a digital communication system is to transmit digital data to another location or subsystem from one location or subsystem without error or at an acceptable low error rate. As shown in Figure 1, data can be transmitted over a variety of communication channels within a variety of communication systems: magnetic media, wired, wireless, fiber optic, copper, and other types of media.

圖1和圖2分別是根據本發明不同實施例的通信系統的100和200的示意圖。1 and 2 are schematic illustrations of communication systems 100 and 200, respectively, in accordance with various embodiments of the present invention.

如圖1所示,通信系統100包括一個通信通道199,將位於通信通道199一端的通信設備110(包括帶有編碼器114的發送器112和帶有解碼器118的接收器116)與位於通信通道199另一端的另一個通信設備120(包括帶有編碼器128的發送器126和帶有解碼器124的接收器122)通信連接。在某些實施例中,通信設備110和120均可僅包括一個發送器或一個接收器。通信通道199可通過各種不同類型的媒介來實現(例如,利用圓盤式衛星接收天線132和134的衛星通信通道130、利用塔142與144和/或本地天線152和154的無線通信通道140、有線通信通道150和/或利用電-光(E/O)介面162和光-電(O/E)介面164的光纖通信通道160)。另外,可以通過一種以上的媒介連接在一起從而形成通信通道199。As shown in FIG. 1, communication system 100 includes a communication channel 199 for communicating communications device 110 (including transmitter 112 with encoder 114 and receiver 116 with decoder 118) at one end of communication channel 199. Another communication device 120 at the other end of the channel 199 (including the transmitter 126 with the encoder 128 and the receiver 122 with the decoder 124) is communicatively coupled. In some embodiments, communication devices 110 and 120 can each include only one transmitter or one receiver. Communication channel 199 can be implemented by a variety of different types of media (e.g., satellite communication channel 130 utilizing satellite dish receiving antennas 132 and 134, wireless communication channel 140 utilizing towers 142 and 144 and/or local antennas 152 and 154, Wired communication channel 150 and/or fiber optic communication channel 160 utilizing an electro-optic (E/O) interface 162 and an opto-electric (O/E) interface 164). Additionally, communication channels 199 may be formed by more than one medium being coupled together.

為了減少通信系統內不期望出現的傳輸錯誤,通常採用糾錯和通道編碼方案。一般,這些糾錯和通道編碼方案包括發送器端編碼器的使用以及接收器端解碼器的使用。In order to reduce undesired transmission errors within the communication system, error correction and channel coding schemes are typically employed. In general, these error correction and channel coding schemes include the use of a transmitter-side encoder and the use of a receiver-side decoder.

如圖2所示的通信系統200中,在通信通道299的發送端,資訊位元201被提供給發送器297,發送器297可使用編碼器和符號映射器220(可分別視為是不同的功能塊222和224)執行對這些資訊位元201的編碼,從而生成一個離散值調製符號序列203,然後提供給發送驅動器230。發送驅動器230使用DAC(數模轉換器)232生成一個連續時間發送信號204,然後通過發送濾波器234,生成充分適合通信通道299的濾波後連續時間發送信號205。在通信通道299的接收端,連續時間接收信號206被提供給AFE(類比前端)260,AFE 260包括接收濾波器262(生成濾波後連續時間接收信號207)和ADC(模數轉換器)264(生成離散時間接收信號208)。量度生成器(metric generator)270計算符號量度(symbol metrics)209,解碼器280使用符號量度209做出對離散值調製符 號和編碼在其內的資訊位元的最佳估算210。In the communication system 200 shown in FIG. 2, at the transmitting end of the communication channel 299, the information bit 201 is supplied to the transmitter 297, and the transmitter 297 can use the encoder and the symbol mapper 220 (which can be regarded as different respectively). Function blocks 222 and 224) perform encoding of these information bits 201 to generate a discrete value modulation symbol sequence 203 which is then provided to transmit driver 230. Transmit driver 230 generates a continuous time transmit signal 204 using a DAC (Digital to Analog Converter) 232 and then, through transmit filter 234, generates a filtered continuous time transmit signal 205 that is sufficiently suitable for communication channel 299. At the receiving end of communication channel 299, continuous time received signal 206 is provided to an AFE (analog front end) 260, which includes receive filter 262 (which generates filtered continuous time received signal 207) and an ADC (analog to digital converter) 264 ( A discrete time received signal 208) is generated. A metric generator 270 calculates symbol metrics 209, and decoder 280 uses symbol metrics 209 to make discrete value modulators The number and the best estimate 210 of the information bits encoded within it.

前述實施例中的解碼器具有本發明的各種特徵。另外,以下的一些附圖和相關的描述將介紹支援本發明的設備、系統、功能性和/或方法的其他和特定實施例(某些實施例的介紹更加詳細)。根據本發明處理的一種特定類型的信號是LDPC編碼信號。在給出更詳細的介紹之前,先對LDPC碼進行概要描述。The decoder in the foregoing embodiments has various features of the present invention. In addition, some of the following figures and related descriptions will introduce other and specific embodiments that support the devices, systems, functionality, and/or methods of the present invention (the description of some embodiments is more detailed). One particular type of signal processed in accordance with the present invention is an LDPC encoded signal. Before giving a more detailed introduction, the LDPC code is briefly described.

圖3示出了執行LDPC解碼處理的裝置300的一個實施例。裝置300包括處理模組320和記憶體310。記憶體310連接至處理模組320,並且記憶體310用於存儲能使處理模組320執行各種功能的操作指令。處理模組320用於執行和/或控制依據本申請中所描述的任一實施例或其等效實施例執行的LDPC解碼處理的方式。FIG. 3 illustrates one embodiment of an apparatus 300 that performs LDPC decoding processing. The device 300 includes a processing module 320 and a memory 310. The memory 310 is coupled to the processing module 320, and the memory 310 is used to store operational instructions that enable the processing module 320 to perform various functions. The processing module 320 is configured to perform and/or control the manner of LDPC decoding processing performed in accordance with any of the embodiments described herein or its equivalent embodiments.

處理模組320可使用共用的處理設備、單個的處理設備或多個處理設備來實現。這樣的處理器可以是微處理器、微控制器、數位信號處理器、微型電腦、中央處理單元、現場可編程閘陣列、可編程邏輯器件、狀態機、邏輯電路、類比電路、數位電路和/或基於操作指令處理信號(類比的和/或數位的)的任何器件。記憶體310可以是單個存儲設備或多個存儲設備。這樣的存儲設備可以是唯讀記憶體、隨機訪問記憶體、易失記憶體、非易失記憶體、靜態記憶體、動態記憶體、快閃記憶體和/或存儲數位資訊的任何設備。注意,當處理設備320通過狀態機、類比電路、數位電路和/或邏輯電路執行其一種或多種功能時,存儲對應操作指令的記憶體嵌入在包括狀態機、類比電路、數位電路和/或邏輯電路的電路內。The processing module 320 can be implemented using a shared processing device, a single processing device, or multiple processing devices. Such processors may be microprocessors, microcontrollers, digital signal processors, microcomputers, central processing units, field programmable gate arrays, programmable logic devices, state machines, logic circuits, analog circuits, digital circuits, and/or Or any device that processes signals (analogous and/or digital) based on operational instructions. Memory 310 can be a single storage device or multiple storage devices. Such storage devices may be read-only memory, random access memory, volatile memory, non-volatile memory, static memory, dynamic memory, flash memory, and/or any device that stores digital information. Note that when the processing device 320 performs one or more of its functions through a state machine, an analog circuit, a digital circuit, and/or a logic circuit, the memory storing the corresponding operational command is embedded in a state machine, analog circuit, digital circuit, and/or logic. Inside the circuit of the circuit.

某些實施例中若期望如此,執行LDPC解碼處理的方式(例如,從校驗引擎移動到位元引擎的部分、模組和/或功能模組)可從裝置300提供給使用預期的LDPC碼執行LDPC編碼的通信系統340。例如,對應於被使用的LDPC碼的資訊(例如,LDPC碼的奇偶校驗矩陣)也可從處理模組320提供給通信系統340內的任意通 信設備330。此外,通信系統340內的任一通信設備330內將執行的LDPC碼將以哪種方式執行,也可從處理模組320提供。In some embodiments, if desired, the manner in which the LDPC decoding process is performed (e.g., the portion of the bit engine from the check engine, the module, and/or the functional module) may be provided from device 300 for execution using the expected LDPC code. LDPC encoded communication system 340. For example, information corresponding to the LDPC code being used (e.g., a parity check matrix of the LDPC code) may also be provided from the processing module 320 to any of the communications system 340. Letter device 330. Moreover, the manner in which the LDPC code to be executed within any of the communication devices 330 within the communication system 340 will be performed may also be provided from the processing module 320.

若想要,處理模組320可被設計成生成依據多個需求和/或預期生成多種執行LDPC解碼的方式。某些實施例中,處理模組320選擇性的提供不同的資訊(例如,對應於不同LDPC碼等的資訊)給不同的通信設備和/或通信系統。因而,不同通信設備之間的不同通信鏈結可採用不同的LDPC碼和/或執行LDPC解碼的方式。顯然,處理模組320還能提供相同的資訊給每個不同的通信設備和/或通信系統而不會脫離本發明的保護範圍和精神實質。If desired, the processing module 320 can be designed to generate a plurality of ways to perform LDPC decoding in accordance with a plurality of requirements and/or expectations. In some embodiments, the processing module 320 selectively provides different information (eg, information corresponding to different LDPC codes, etc.) to different communication devices and/or communication systems. Thus, different communication links between different communication devices may employ different LDPC codes and/or perform LDPC decoding. It will be apparent that the processing module 320 can provide the same information to each of the various communication devices and/or communication systems without departing from the scope and spirit of the invention.

圖4示出了另一實施例的執行LDPC解碼處理的裝置400。裝置400包括處理模組420和記憶體410。記憶體410連接至處理模組420,並且記憶體410用於存儲能使處理模組420執行各種功能的操作指令。處理模組420(由記憶體410服務的)可實現為能夠執行此處所描述的各種模組和/或功能塊的任意功能的設備。例如,處理模組420(由記憶體410服務的)可實現為用於執行和/或控制依據本申請中所描述的任一實施例或其等效實施例執行的LDPC解碼處理的方式的設備。FIG. 4 shows an apparatus 400 for performing an LDPC decoding process of another embodiment. The device 400 includes a processing module 420 and a memory 410. The memory 410 is coupled to the processing module 420, and the memory 410 is used to store operational instructions that enable the processing module 420 to perform various functions. Processing module 420 (served by memory 410) can be implemented as a device capable of performing any of the various modules and/or functional blocks described herein. For example, the processing module 420 (served by the memory 410) can be implemented as a device for performing and/or controlling the manner of LDPC decoding processing performed in accordance with any of the embodiments described herein or its equivalent embodiments. .

處理模組420可使用共用的處理設備、單個的處理設備或多個處理設備來實現。這樣的處理器可以是微處理器、微控制器、數位信號處理器、微型電腦、中央處理單元、現場可編程閘陣列、可編程邏輯器件、狀態機、邏輯電路、類比電路、數位電路和/或基於操作指令處理信號(類比的和/或數位的)的任何器件。記憶體410可以是單個存儲設備或多個存儲設備。這樣的存儲設備可以是唯讀記憶體、隨機訪問記憶體、易失記憶體、非易失記憶體、靜態記憶體、動態記憶體、快閃記憶體和/或存儲數位資訊的任何設備。注意,當處理設備420通過狀態機、類比電路、數位電路和/或邏輯電路執行其一種或多種功能時,存儲對應操作指令的記憶體嵌入在包括狀態機、類比電路、數位電路和/或邏輯電路的電路 內。The processing module 420 can be implemented using a shared processing device, a single processing device, or multiple processing devices. Such processors may be microprocessors, microcontrollers, digital signal processors, microcomputers, central processing units, field programmable gate arrays, programmable logic devices, state machines, logic circuits, analog circuits, digital circuits, and/or Or any device that processes signals (analogous and/or digital) based on operational instructions. Memory 410 can be a single storage device or multiple storage devices. Such storage devices may be read-only memory, random access memory, volatile memory, non-volatile memory, static memory, dynamic memory, flash memory, and/or any device that stores digital information. Note that when the processing device 420 performs one or more of its functions through a state machine, an analog circuit, a digital circuit, and/or a logic circuit, the memory storing the corresponding operational command is embedded in a state machine, analog circuit, digital circuit, and/or logic. Circuit circuit Inside.

某些實施例中若期望如此,裝置400可以是任意一種通信設備430,或這樣的通信設備430中的任意部分。包括有處理模組420和記憶體410的通信設備430可實現在任意通信系統440內。還要注意,本申請中的LDPC解碼處理和/或依據LDPC解碼處理進行的操作參數修改的各個實施例及其各種等效實施例,可應用於多種類型的通信系統和/或通信設備。In some embodiments, if desired, device 400 can be any type of communication device 430, or any portion of such communication device 430. Communication device 430, including processing module 420 and memory 410, can be implemented within any communication system 440. It is also noted that the various embodiments of the LDPC decoding process and/or the operational parameter modification in accordance with the LDPC decoding process and various equivalent embodiments thereof in the present application are applicable to various types of communication systems and/or communication devices.

圖5是LDPC碼二分圖500的示意圖。在業內,LDPC二分圖也被稱為Tanner圖(坦納圖)。LDPC碼被看作是具有二進位奇偶校驗矩陣從而使矩陣的幾乎所有元素都為零值(例如,該二進位奇偶校驗矩陣是稀疏矩陣)的代碼。例如,H=(hi,j)MxN被看作是區塊長度為N的LDPC碼奇偶校驗矩陣。FIG. 5 is a schematic diagram of an LDPC code bipartite graph 500. In the industry, the LDPC bipartite graph is also known as the Tanner graph (tanner graph). The LDPC code is treated as a code having a binary parity check matrix such that almost all elements of the matrix are zero (for example, the binary parity check matrix is a sparse matrix). For example, H = (hi, j) MxN is regarded as an LDPC code parity check matrix having a block length of N.

LDPC碼是線性區塊碼,因此所有碼字的集合xC分佈在奇偶校驗矩陣H的零空間內。The LDPC code is a linear block code, so the set xC of all codewords is distributed within the null space of the parity check matrix H.

對於LDPC碼,H是m×n維的稀疏二進位矩陣。H的每行對應於一個奇偶校驗,一組元素hij表示資料符號j參與奇偶校驗i。H的每列對應於碼字元號。For an LDPC code, H is a sparse binary matrix of m x n dimensions. Each row of H corresponds to one parity, and a set of elements hij indicates that data symbol j participates in parity i. Each column of H corresponds to a code character number.

對於每個碼字x,有n個符號,其中m個是奇偶符號。因此,編碼率r給定為:r=(n-m)/n (2)For each codeword x, there are n symbols, where m are parity symbols. Therefore, the coding rate r is given as: r = (n - m) / n (2)

行和列的權重分別定義為H 的給定行或列的集合元素的數量。H 的集合元素選定為滿足編碼的性能需求。奇偶校驗矩陣的第i 列中1的數量表示為d v (i) ,奇偶校驗矩陣的第j 行中的1的數量表示為d c (j) 。如果對所有的id v (i) =d v ,對所有的jd c (j) =d c ,那麼這種LDPC碼被稱為(d v ,d c ) 規則LDPC碼,否則被稱為不規則LDPC碼。The weights of rows and columns are defined as the number of collection elements for a given row or column of H , respectively. The set elements of H are selected to meet the performance requirements of the encoding. The number of 1 in the i-th column of the parity check matrix is represented as d v (i) , and the number of 1 in the j-th row of the parity check matrix is represented as d c (j) . If for all i , d v (i) = d v , for all j , d c (j) = d c , then this LDPC code is called (d v , d c ) regular LDPC code, otherwise it is It is called an irregular LDPC code.

關於LDPC碼的介紹請參考以下參考文件:For an introduction to the LDPC code, please refer to the following reference documents:

[1] R. Gallager,Low-Dentisy Parity-Check Codes,Cambridge,MA:MITT Press,1963.[1] R. Gallager, Low-Dentisy Parity-Check Codes, Cambridge, MA: MITT Press, 1963.

[2] R. G. Gallager,“Low dentisyparity check codes,”IRETrans. Info. Theory. Vol. IT-8,Jan. 1962,pp. 21-28.[2] R. G. Gallager, “Low dentisyparity check codes,” IRE Trans. Info. Theory. Vol. IT-8, Jan. 1962, pp. 21-28.

[3] M. G. Luby,M. Mitzenmacher,M. A. Shokrollahi,D. A. Spielman,and V. Stemann,“Practical Loss-Resilient Codes”,Proc. 29th Symp. On Theory of Computing,1997,pp. 150-159.[3] MG Luby, M. Mitzenmacher, MA Shokrollahi, DA Spielman, and V. Stemann, "Practical Loss-Resilient Codes", Proc. 29 th Symp. On Theory of Computing, 1997, pp. 150-159.

規則LDPC碼可表示為二分圖500,其奇偶校驗矩陣的左側節點為代碼位元變數(或為解碼LDPC編碼信號的位元解碼方法中的“變數節點”(或“位元節點”)510),右側節點為校驗方程(或“校驗節點”520)。由H 定義的LDPC碼的二分圖500(或稱為坦納圖500)可由N 個變數節點(例如,N 個位元節點)和M 個校驗節點來定義。N 個變數節點510中的每個變數節點都具有精確的d v (i) 個邊(如邊530),連接位元節點例如v i 512與一個或多個校驗節點(M 個校驗節點內)。圖中所示的邊530連接位節點v i 512與校驗節點c j 522。該d v 個邊(如d v 514所示)的數量d v 被稱為變數節點的度i 。類似地,M 個校驗節點520中的每個校驗節點都有精確的d c ( j) 個邊(如d c 524所示),連接該節點與一個或多個變數節點(或位元節點)510。該邊的數量d c 被稱為校驗節點的度jThe regular LDPC code can be represented as a bipartite graph 500, with the left node of the parity check matrix being a code bit variable (or a "variable node" (or "bit node") 510 in the bit decoding method for decoding the LDPC encoded signal) ), the right node is the check equation (or "check node" 520). A bipartite graph 500 (or referred to as a Tanner graph 500) of the LDPC code defined by H may be defined by N variable nodes (eg, N bit nodes) and M check nodes. Each of the N variable nodes 510 has an exact d v (i) edges (such as edge 530), and a connected bit node such as v i 512 and one or more check nodes ( M check nodes) Inside). The edge 530 shown in the figure is connected to the bit node v i 512 and the check node c j 522. D v of the sides (shown as d v 514) is referred to as d v the number of variable node i. Similarly, each of the M check nodes 520 has an exact d c ( j ) edge (as indicated by d c 524 ) that connects the node to one or more variable nodes (or bits) Node) 510. The number d c of the edges is called the degree j of the check node.

變數節點v i (或位元節點b i )512與校驗節點c j 522之間的邊530可被定義為e =(i,j) 。但是,另一方面,給定邊e =(i,j) ,則該邊的節點可表示為e =(v(e),c(e)) (或e=(b(e),c(e)) 。或者,二分圖中的邊對應于H 的集合元素,其中,集合元素h ji 表示一條邊連接位元(例如,變數)節點i 和奇偶校驗節點jThe edge 530 between the variable node v i (or the bit node b i ) 512 and the check node c j 522 may be defined as e = (i, j) . However, on the other hand, given the edge e = (i, j) , the node of the edge can be represented as e = (v(e), c(e)) (or e = (b(e), c( e)) Or, the edge in the bipartite graph corresponds to the set element of H , wherein the set element h ji represents an edge-connected bit (eg, variable) node i and parity node j .

假定給出變數節點v i (或位元節點b i ),可將從節點v i (或位元節點b i )發射出的一組邊定義為E v (i) ={e |v(e) =i} (或E b (i) ={e |b(e) =i}) 。這些邊被稱為位元邊,而對應於這些位元邊的消息被稱為位元邊消息。Assuming that the variable node v i (or the bit node b i ) is given, a set of edges emitted from the node v i (or the bit node b i ) can be defined as E v (i) = {e | v(e ) = i} (or E b (i) = {e | b(e) = i}) . These edges are referred to as bit edges, and messages corresponding to these bit edges are referred to as bit edge messages.

假定給出校驗節點c j ,可將從節點c j 發射出的一組邊定義為E c (j) ={e |c(e) =j} 。這些邊被稱為校驗邊,而對應于這些校驗邊的消息被稱為校驗邊消息。接著,導出的結果是|E v (i) |=d v (或|E b (i) |=d b )以及|E c (j) |=d c Assuming that the check node c j is given, a set of edges emitted from the node c j can be defined as E c (j) = {e | c(e) = j} . These edges are called check edges, and messages corresponding to these check edges are called check edge messages. Next, the result of the derivation is | E v (i) |= d v (or | E b (i) |= d b ) and | E c (j) |= d c .

一般說來,任何可用二分圖表示的代碼,其特徵都是圖形碼。要注意的是,不規則LDPC碼也可用二分圖表示。但是,不規則LDPC碼內的每組節點的度可根據某些分佈進行選擇。因此,對於不規則LDPC碼的兩個不同變數節點和,|E v (i 1 ) |可能會不等於|E v (i 2 ) |。對於兩個校驗節點也是這種關係。不規則LDPC碼的概念最早在上述的參考文件[3]中給出了介紹。In general, any code that can be represented by a bipartite graph is characterized by a graphic code. It should be noted that the irregular LDPC code can also be represented by a bipartite graph. However, the degree of each set of nodes within the irregular LDPC code can be selected according to certain distributions. Therefore, for two different variable node sums of the irregular LDPC code, | E v (i 1 ) | may not be equal to | E v (i 2 ) |. This relationship is also true for two check nodes. The concept of irregular LDPC codes was first introduced in the above referenced document [3].

總之,通過LDPC碼的圖示,LDPC碼的參數可由分佈的度來定義,如M.Luby等在上述參考文件[3]中所述,以下的參考文件中也有相關的描述:In summary, through the illustration of the LDPC code, the parameters of the LDPC code can be defined by the degree of distribution, as described by M. Luby et al. in the above referenced document [3], and the following reference documents also have related descriptions:

[4] T. J. Richardson and R. L. Urbanke,“The capacity of low-density parity-check code under message-passing decoding”,IEEE Trans. Inform. Theory,Vol. 47,No.2,Feb. 2001,pp. 599-618.[4] TJ Richardson and RL Urbanke, "The capacity of low-density parity-check code under message-passing decoding", IEEE Trans. Inform. Theory, Vol. 47, No. 2, Feb. 2001, pp. 599- 618.

這種分佈可描述如下:用λ i 表示從度為i 的變數節點發射的邊的分數,ρ i 表示從度為i 的校驗節點發射的邊的分數,則度分佈對(λ,ρ) 定義如下: ,其中Mv和Mc分別表示變數節點和校驗節點的最大度。This distribution can be described as follows: λ i represents the fraction of the edge emitted from the variable node of degree i , ρ i represents the fraction of the edge emitted from the check node of degree i , then the degree distribution pair (λ, ρ) The definition is as follows: , where Mv and Mc represent the maximum degree of the variable node and the check node, respectively.

雖然在此描述的多個實施例採用規則LDPC碼,但是要注意的是本發明的特徵既適用於規則LDPC碼,也適用於不規則LDPC碼。Although the various embodiments described herein employ a regular LDPC code, it is noted that the features of the present invention are applicable to both regular LDPC codes and irregular LDPC codes.

還要注意的是,本申請中描述的多數實施例採用“位元節點”和“位元邊消息”或等效的表述這樣的命名。但是通常在LDPC解碼的現有技術中,“位元節點”和“位元邊消息”又被稱 為“變數節點”和“變數邊消息”,因此,位元值(或變數值)是那些試圖被估算的值。這兩種命名都可以被本申請所採用。It is also noted that most of the embodiments described in this application employ "bit node" and "bit side message" or equivalent expressions. But usually in the prior art of LDPC decoding, "bit node" and "bit side message" are also called The "variable nodes" and "variable side messages", therefore, the bit values (or variable values) are those that are attempted to be estimated. Both of these nomenclatures can be used in this application.

圖6示出了LDPC解碼功能600的一個實施例。為了執行具有m 位元信號序列的LDPC編碼信號的解碼,採用了圖6所示的功能塊。一般來說,從通信通道接收到連續時間信號(continuous-time signal),如附圖標號601所示。該通信通道可以是任何類型的通道,包括但不限於有線通信通道、無線通信通道、光纖通信通道、HDD的讀通道或能夠傳送已使用LDPC碼編碼的連續時間信號的其他類型的通信通道。FIG. 6 illustrates one embodiment of an LDPC decoding function 600. In order to perform decoding of an LDPC coded signal having an m- bit signal sequence, the functional blocks shown in FIG. 6 are employed. In general, a continuous-time signal is received from the communication channel, as indicated by reference numeral 601. The communication channel can be any type of channel including, but not limited to, a wired communication channel, a wireless communication channel, a fiber optic communication channel, a read channel of an HDD, or other type of communication channel capable of transmitting continuous time signals that have been encoded using LDPC codes.

類比前端(AFE)610對該連續時間信號執行任何初始處理(例如,通過執行濾波(類比和/或數位濾波)、增益調節等一種或多種處理)並進行數位採樣,從而生成離散時間信號611。該離散時間信號611又被稱為數位信號、基帶信號或現有技術中已知的其他命名。通常,離散時間信號611被分成信號的I、Q(同相、正交)值。The analog front end (AFE) 610 performs any initial processing on the continuous time signal (eg, by performing one or more processes of filtering (analog and/or digital filtering), gain adjustment, etc.) and performs digital sampling to generate a discrete time signal 611. The discrete time signal 611 is also referred to as a digital signal, a baseband signal, or other designation known in the art. Typically, the discrete time signal 611 is divided into I, Q (in-phase, quadrature) values of the signal.

度量生成器620接收離散時間信號611(例如,其包括有I、Q值),並計算對應的位元度量和/或對數似然比(LLR)621,其對應於離散時間信號611內的接收值。某些實施例中,這些位元度量/LLR符號度量621的計算是兩個步驟的處理,其中,度量生成器620首先計算對應於離散時間信號611的符號的符號度量,然後度量生成器再採用該符號度量來分解這些符號度量為位元度量/LLR 621。然後由位元引擎630使用這些位元度量/LLR 621來初始化位元邊消息(例如,如附圖標號629所示),在執行LDPC編碼信號的疊代解碼處理635(例如,如位元引擎630和校驗引擎640所執行的)時將使用該位元邊消息。Metric generator 620 receives discrete time signal 611 (eg, including I, Q values) and calculates a corresponding bit metric and/or log likelihood ratio (LLR) 621 that corresponds to receipt within discrete time signal 611 value. In some embodiments, the calculation of these bit metrics/LLR symbol metrics 621 is a two-step process in which metric generator 620 first calculates a symbol metric corresponding to the symbol of discrete time signal 611, and then the metric generator re-uses The symbol metric decomposes these symbol metrics into bit metrics / LLR 621. These bit metrics/LLRs 621 are then used by the bit engine 630 to initialize the bit side message (e.g., as indicated by reference numeral 629), and the iterative decoding process 635 of the LDPC coded signal is performed (e.g., as a bit engine) This bit side message will be used when 630 and check engine 640 are executed.

對數似然比(LLR)的值為λ i ,對應的接收符號的值為y i 的情況下,針對每個變數節點i 的位元邊消息的初始化可以定義為如下: In the case where the value of the log likelihood ratio (LLR) is λ i and the value of the corresponding received symbol is y i , the initialization of the bit side message for each variable node i can be defined as follows:

同樣,在位元節點處,位元引擎630使用最近更新的位元邊消息計算該位元的對應軟資訊(例如,如軟資訊632所示)。然而,通常要執行多次解碼疊代,因而經初始化的位元邊消息被傳送給校驗引擎640,在其中,第一次解碼疊代過程中,校驗引擎640採用該初始化的位元邊消息更新校驗邊消息。Similarly, at the bit node, bit engine 630 calculates the corresponding soft information for the bit using the most recently updated bit side message (e.g., as shown by soft message 632). However, it is common to perform multiple decoding iterations, so that the initialized bit side message is passed to the check engine 640, in which the check engine 640 uses the initialized bit side during the first decoding iteration. The message updates the check edge message.

在每個校驗節點處,LDPC解碼處理在入站消息的正負號(sign)上形成奇偶校驗結果(XOR)。這通過找出每個出站消息的正負號作為具有該奇偶校驗結果的對應入站消息的正負號的XOR來執行。At each check node, the LDPC decoding process forms a parity result (XOR) on the sign of the inbound message. This is performed by finding the sign of each outbound message as the XOR of the sign of the corresponding inbound message with the result of the parity.

然後,依據下式計算從校驗節點j 到位元(例如,變數)節點i 的出站消息可靠性: Then, the reliability of the outbound message from the check node j to the bit (eg, variable) node i is calculated according to the following formula:

某些期望的實施例中,這一計算在對數域內執行,以將乘法轉換成加法,如下: In some desirable embodiments, this calculation is performed in the logarithmic domain to convert the multiplication to addition as follows:

此後,位元引擎630從校驗引擎640接收經更新的邊消息(例如,如校驗邊消息641所示),並利用他們更新位元邊消息。同樣,位元引擎630還在依據LDPC解碼執行位元邊消息的更新時使用從度量生成器620接收的位元度量/LLR 621。然後,這些經更新的校驗邊消息641被傳送回位元節點(例如,位元引擎630),在此使用位元度量/LLR 621和校驗邊消息的當前疊代值計算出該位元的軟資訊632。在每個位元(例如,變數)節點處,軟資訊的計算包括形成來自校驗節點的入站消息(例如,校驗邊消息641)內的接收 符號的LLR的和。解碼出的位元由求出的總和的正負號_sign來給出。用於下一次解碼疊代的每個出站消息通過從該總和中減去對應的入站消息來計算得到。為了繼續疊代解碼處理635,這些位元邊消息631在被更新後,被傳送給校驗引擎640。Thereafter, bit engine 630 receives updated side messages from check engine 640 (e.g., as indicated by check edge message 641) and uses them to update the bit edge messages. Likewise, bit engine 630 also uses the bit metric/LLR 621 received from metric generator 620 when performing an update of the bit side message in accordance with LDPC decoding. These updated check edge messages 641 are then passed back to the bit node (e.g., bit engine 630) where the bit metric/LLR 621 and the current iteration value of the check edge message are used to calculate the bit. Soft information 632. At each bit (e.g., variable) node, the calculation of soft information includes forming an inbound message (e.g., check edge message 641) from the check node. The sum of the symbols of the LLR. The decoded bits are given by the sign of the summed _sign. Each outbound message for the next decoding iteration is calculated by subtracting the corresponding inbound message from the sum. To continue the iterative decoding process 635, these bit side messages 631 are passed to the check engine 640 after being updated.

然後執行再一次解碼疊代。在校驗節點處,校驗引擎640接收從位元節點(例如,從位元節點630)發送來的經更新的位元邊消息631,並據此更新校驗邊消息。然後,將經更新的校驗邊消息641傳送回位元節點(例如,位元引擎630),在此使用位元度量/LLR 621和校驗邊消息的當前疊代值計算出位元的軟資訊632。此後,使用這一剛剛計算出的位元的軟資訊632,位元引擎630再次使用校驗邊消息的前一值(來自剛剛的前次疊代)更新位元邊消息。依據編碼正被解碼的信號時所採用的LDPC碼二分圖,疊代處理635在位元節點和校驗節點之間繼續進行。Then perform the decoding of the iteration again. At the check node, the check engine 640 receives the updated bit edge message 631 sent from the bit node (e.g., from the bit node 630) and updates the check edge message accordingly. The updated check edge message 641 is then transmitted back to the bit node (e.g., bit engine 630) where the bit metric/LLR 621 and the current iteration value of the check edge message are used to calculate the softness of the bit. Information 632. Thereafter, using the soft information 632 of the just calculated bit, the bit engine 630 again updates the bit edge message using the previous value of the check edge message (from the previous iteration). The iterative process 635 continues between the bit node and the check node in accordance with the LDPC code bipartite graph employed in encoding the signal being decoded.

位元節點引擎630和校驗節點引擎640所執行的這些疊代解碼處理步驟重復進行,直到滿足停止標準,如附圖標號661所示(例如,已經執行了預定的或自適應確定的疊代次數後,LDPC碼的所有校正子都等於零後(例如,所有的奇偶校驗均滿足),和/或已經滿足其他的停止標準)。LDPC解碼停止的另一種方式是當LDPC碼字的當前估計值滿足以下關係時停止: These iterative decoding processing steps performed by the bit node engine 630 and the check node engine 640 are repeated until the stopping criteria are met, as indicated by reference numeral 661 (eg, a predetermined or adaptive determined iteration has been performed) After the number of times, all syndromes of the LDPC code are equal to zero (eg, all parity is satisfied), and/or other stop criteria have been met). Another way to stop LDPC decoding is to stop when the current estimate of the LDPC codeword satisfies the following relationship:

每次解碼疊代過程中,軟資訊632會在位元引擎630中生成。圖中所示的這個實施例中,可將軟資訊632提供給做出硬判決的硬限幅器(hard limiter)650,而且硬資訊(例如,硬/最佳估計值651)可提供給校正子計算器660以確定LDPC碼的校正子是否都等於零。也就是說,校正子計算器660基於LDPC碼字的當前估計值確定是否與LDPC碼相關的每個校正子都等於零。Soft information 632 is generated in bit engine 630 each time the iterative process is decoded. In the embodiment shown in the figure, soft information 632 can be provided to a hard limiter 650 that makes a hard decision, and hard information (e.g., hard/best estimate 651) can be provided for correction. Sub-calculator 660 determines if the syndromes of the LDPC code are all equal to zero. That is, the syndrome calculator 660 determines whether each syndrome associated with the LDPC code is equal to zero based on the current estimate of the LDPC codeword.

當校正子不等於零時,再繼續疊代解碼處理635,適當地在位元節點引擎630和校驗節點引擎640之間更新和傳遞位元邊消息 和校驗邊消息。執行完疊代解碼處理的所有步驟後,基於軟資訊632輸出該位元的硬/最佳估計值651。When the syndrome is not equal to zero, the iterative decoding process 635 is resumed, and the bit side message is updated and communicated between the bit node engine 630 and the check node engine 640 as appropriate. And check edge messages. After all the steps of the iterative decoding process have been performed, the hard/best estimate 651 of the bit is output based on the soft information 632.

還需要注意的是,為了很好的解碼性能,二分圖中迴圈周期的長度盡可能的長是很重要的。短的迴圈周期,例如4迴圈,可能會降低用於解碼LDPC編號信號的消息傳遞解碼方法的性能。It should also be noted that for good decoding performance, it is important that the length of the loop period in the bipartite graph is as long as possible. A short loop period, such as 4 loops, may degrade the performance of the message passing decoding method used to decode the LDPC numbered signal.

雖然消息傳遞解碼方法的數學計算包括雙曲線函數和對數函數(參見等式(5)),在硬體實現中,這些函數也可通過查找表(LUT)逼近或直接通過邏輯門實現。數學計算僅涉及加法、減法和XOR操作。固定點實現中所需的位元的數量由所需的編碼性能、解碼器收斂的速度以及是否必需壓制誤碼平層(error floor)(如參考文件[5]所描述)來確定。Although the mathematical calculations of the message passing decoding method include hyperbolic functions and logarithmic functions (see equation (5)), in hardware implementations, these functions can also be approximated by a lookup table (LUT) or directly through a logic gate. Mathematical calculations only involve addition, subtraction, and XOR operations. The number of bits required in a fixed point implementation is determined by the required coding performance, the speed at which the decoder converges, and whether it is necessary to suppress the error floor (as described in reference [5]).

[5] Zhang,T.,Wang,Z.,and Parhi,K.,“On finite precision implementation of low density parity check codes decoder”,Proceedings of ISCAS ,Sydney,Australia,May 2001,pp 202-205.[5] Zhang, T., Wang, Z., and Parhi, K., "On finite precision implementation of low density parity check codes decoder", Proceedings of ISCAS , Sydney, Australia, May 2001, pp 202-205.

圖7示出了多個LDPC矩陣的非零子矩陣疊加的實施例700。實施例700描述了對應於兩個單獨LDPC編碼的兩個單獨LDPC矩陣(編碼1、LDPC矩陣710和編碼2、LDPC矩陣720)。LDPC矩陣710和720中每個都包括4個子矩陣,其中兩個是零子矩陣、兩個是非零子矩陣(例如包含一個以上的非零元素)。FIG. 7 illustrates an embodiment 700 of non-zero sub-matrix superposition of a plurality of LDPC matrices. Embodiment 700 describes two separate LDPC matrices (code 1, LDPC matrix 710 and code 2, LDPC matrix 720) corresponding to two separate LDPC codes. Each of the LDPC matrices 710 and 720 includes four sub-matrices, two of which are zero sub-matrices and two of which are non-zero sub-matrices (eg, containing more than one non-zero element).

編碼1、LDPC矩陣710包括非零子矩陣711和非零子矩陣712;編碼2、LDPC矩陣720包括非零子矩陣721和非零子矩陣722。LDPC矩陣710和720疊加後生成疊加LDPC矩陣730。如圖所示,非零子矩陣711和非零子矩陣712在疊加LDPC中處於相同位置。在這個實施例中,疊加LDPC矩陣730中只留下一個非零子矩陣。The code 1, the LDPC matrix 710 includes a non-zero sub-matrix 711 and a non-zero sub-matrix 712; the code 2, the LDPC matrix 720 includes a non-zero sub-matrix 721 and a non-zero sub-matrix 722. The LDPC matrices 710 and 720 are superimposed to generate a superimposed LDPC matrix 730. As shown, the non-zero sub-matrices 711 and the non-zero sub-matrices 712 are in the same position in the superimposed LDPC. In this embodiment, only one non-zero submatrix is left in the superimposed LDPC matrix 730.

圖8所示為記憶體供應以適應圖7所示的疊加LDPC矩陣730的非零子矩陣的處理需求的實施例800。用於對疊加LDPC矩陣 730中的每個LDPC編碼執行解碼處理的單個記憶體構造可採用三記憶體810構造(圖中示為包括記憶體811、記憶體812和記憶體813)或二記憶體構造(圖中示為包括記憶體821和記憶體822)。在任何一個實施例中,每一個記憶體都可以選擇性連接至位元引擎和校驗引擎,用以分別執行位元節點處理和校驗節點處理,從而更新位元邊消息和校驗邊消息。FIG. 8 illustrates an embodiment 800 of memory processing to accommodate the processing requirements of the non-zero sub-matrices of the superimposed LDPC matrix 730 shown in FIG. Used for superimposing LDPC matrices A single memory structure in which each LDPC code in 730 performs a decoding process may employ a three-memory 810 configuration (shown as including memory 811, memory 812, and memory 813) or a two-memory configuration (shown as Including memory 821 and memory 822). In either embodiment, each memory can be selectively coupled to a bit engine and a check engine for performing bit node processing and check node processing, respectively, to update the bit side message and the check side message. .

圖9A和圖9B示出了解碼裝置的實施例901和902,用於處理圖7的疊加LDPC矩陣中的非零子矩陣。Figures 9A and 9B illustrate embodiments 901 and 902 of a decoding apparatus for processing non-zero sub-matrices in the superposed LDPC matrix of Figure 7.

參見圖9A,該實施例包括三個記憶體(即記憶體811、記憶體812和記憶體813)。位元度量/LLR提供給多個位元引擎(例如位元引擎931和位元引擎932)。切換模組991連接在位元引擎931-932和記憶體811-813之間。另一個切換引擎992連接在校驗引擎921-922和記憶體811-813之間。Referring to Figure 9A, this embodiment includes three memories (i.e., memory 811, memory 812, and memory 813). The bit metric/LLR is provided to a plurality of bit engines (eg, bit engine 931 and bit engine 932). The switching module 991 is connected between the bit engines 931-932 and the memories 811-813. Another switching engine 992 is coupled between the verification engines 921-922 and the memory 811-813.

需要注意切換模組991(以及本文中描述的其他切換模組)可使用具有多個輸入/輸出端的複用器(MUX)、多個MUX或允許在記憶體與位元引擎和記憶體與校驗引擎之間選擇連接的其他裝置來實現。Note that the switch module 991 (and the other switch modules described herein) can use a multiplexer (MUX) with multiple inputs/outputs, multiple MUXs, or allow memory and bit engine and memory with the school. It is implemented by checking other devices connected between the engines.

在對LDPC編碼1進行解碼的過程中,有一個記憶體未使用(例如圖中所示的記憶體812),並使用記憶體811處理子矩陣711、使用記憶體813處理子矩陣712,或反之。In the process of decoding LDPC code 1, one memory is not used (for example, memory 812 shown in the figure), and sub-matrix 711 is processed using memory 811, sub-matrix 712 is processed using memory 813, or vice versa. .

作為選擇,也可使用單個切換模組(例如可將校驗引擎921-922連接至切換模組991)。Alternatively, a single switching module can be used (e.g., check engine 921-922 can be coupled to switching module 991).

在執行完適當的位元節點處理和校驗節點處理並滿足停止標準之後,位元引擎931-932操作生成軟資訊,從該軟資訊中可以得到對於依據編碼1進行編碼的LDPC編碼信號中的編碼位元的最佳估算。After performing the appropriate bit node processing and check node processing and satisfying the stopping criteria, the bit engine 931-932 operates to generate soft information from which the LDPC encoded signal encoded according to the code 1 can be obtained. The best estimate of the coding bit.

參見圖9B,在對LDPC編碼2進行解碼的過程中,又是有一個記憶體未使用(例如圖中所示的記憶體813),並使用記憶體811 處理子矩陣721、使用記憶體812處理子矩陣722,或反之。Referring to FIG. 9B, in the process of decoding the LDPC code 2, another memory is not used (for example, the memory 813 shown in the figure), and the memory 811 is used. The sub-matrix 721 is processed, the sub-matrix 722 is processed using the memory 812, or vice versa.

同樣作為選擇,也可使用單個切換模組(例如可將校驗引擎921-922連接至切換模組991)。Also alternatively, a single switching module can be used (eg, the check engines 921-922 can be connected to the switching module 991).

在執行完適當的位元節點處理和校驗節點處理並滿足停止標準之後,位元引擎931-932操作生成軟資訊,從該軟資訊中可以得到對於依據編碼2進行編碼的LDPC編碼信號中的編碼位元的最佳估算。After performing the appropriate bit node processing and verifying the node processing and satisfying the stopping criteria, the bit engine 931-932 operates to generate soft information from which the LDPC encoded signal encoded according to the encoding 2 can be obtained. The best estimate of the coding bit.

圖9A和圖9B的實施例示出了直接簡單疊加方法,其中使用了三個單獨的記憶體。以下,依據相同的二個LDPC編碼進行編碼的LDPC編碼信號可以使用僅有二個記憶體的構造來進行解碼。The embodiment of Figures 9A and 9B shows a direct simple superposition method in which three separate memories are used. Hereinafter, an LDPC coded signal coded according to the same two LDPC codes can be decoded using a configuration of only two memories.

圖10示出了用於處理圖7中疊加LDPC矩陣730的非零子矩陣的解碼裝置的實施例的示意圖。該實施例示出了如何僅用二個記憶體來對相同的LDPC矩陣710和720進行解碼(相對使用三個記憶體而言)。如圖所示,(LDPC矩陣710的)子矩陣712和(LDPC矩陣720的)子矩陣722在每個LDPC矩陣710和720中沒有處於相同的子矩陣位置。在每個LDPC矩陣710和720中,這兩個子矩陣位置是互斥(mutually exclusive)的。因此,可以使用單獨的記憶體(例如合併記憶體),在對依據編碼1進行編碼的第一LDPC編碼信號進行解碼處理的過程中,執行對子矩陣712的解碼處理,並在對依據編碼2進行編碼的第一LDPC編碼信號進行解碼處理的過程中,執行對子矩陣722的解碼處理。FIG. 10 shows a schematic diagram of an embodiment of a decoding apparatus for processing a non-zero submatrix of the superimposed LDPC matrix 730 of FIG. This embodiment shows how the same LDPC matrices 710 and 720 can be decoded with only two memories (relatively using three memories). As shown, sub-matrix 712 (of LDPC matrix 710) and sub-matrix 722 (of LDPC matrix 720) are not in the same sub-matrix position in each LDPC matrix 710 and 720. In each LDPC matrix 710 and 720, the two sub-matrix locations are mutually exclusive. Therefore, a separate memory (for example, a merged memory) can be used, and in the process of decoding the first LDPC coded signal encoded according to the code 1, the decoding process of the sub-matrix 712 is performed, and the code 2 is encoded. The decoding process of the sub-matrix 722 is performed in the process of performing the decoding process on the encoded first LDPC coded signal.

關於合併記憶體,如果某個記憶體未被LDPC編碼使用,則顯然可以去除該記憶體。因此,記憶體僅需要提供給所得到的疊加LDPC中具有非零元素的那些子矩陣。而且,每個記憶體也有至少一個非零LDPC編碼在其中活動(例如用於解碼該LDPC編碼)。Regarding the merged memory, if a certain memory is not used by the LDPC encoding, it is apparent that the memory can be removed. Therefore, the memory only needs to be provided to those sub-matrices with non-zero elements in the resulting superimposed LDPC. Moreover, each memory also has at least one non-zero LDPC code active therein (e.g., for decoding the LDPC code).

如以上所提及,通過合併對應於互斥非零子矩陣的記憶體部件可以獲得更高效率。存儲有互斥活動編碼組的那組記憶體可以 合併成單個記憶體。存儲有互斥活動編碼組的記憶體數量越多(其能夠適當地確定出),則能夠達到的合併度越大且能節省更多的硬體(例如減少記憶體的使用量)。As mentioned above, higher efficiency can be obtained by merging memory components corresponding to mutually exclusive non-zero sub-matrices. The set of memory storing the mutually exclusive active encoding group can Merged into a single memory. The larger the number of memories in which the mutually exclusive active code group is stored (which can be appropriately determined), the greater the degree of integration that can be achieved and the ability to save more hardware (for example, reducing the amount of memory used).

參見圖10,該實施例僅包括二個記憶體(即記憶體1011和記憶體1012)。位元度量/LLR提供給多個位元引擎(例如位元引擎1031和位元引擎1032)。切換模組1091連接在位元引擎1031-1032和記憶體1011-1012之間。另一個切換引擎1092連接在校驗引擎1021-1022和記憶體1011-1012之間。Referring to Figure 10, this embodiment includes only two memories (i.e., memory 1011 and memory 1012). The bit metric/LLR is provided to a plurality of bit engines (e.g., bit engine 1031 and bit engine 1032). The switching module 1091 is connected between the bit engine 1031-1032 and the memory 1011-1012. Another switching engine 1092 is connected between the verification engines 1021-1022 and the memory 1011-1012.

如同另一個實施例,需要注意切換模組1091(以及本文中描述的其他切換模組)可使用具有多個輸入/輸出端的複用器(MUX)、多個MUX或允許在記憶體與位元引擎和記憶體與校驗引擎之間選擇連接的其他裝置來實現。As with another embodiment, it is noted that the switching module 1091 (and other switching modules described herein) can use a multiplexer (MUX) with multiple inputs/outputs, multiple MUXs, or allow memory and bits. The engine and the memory and the check engine are selected to connect to other devices.

在對LDPC編碼1進行解碼的過程中,兩個記憶體1011-1012都在使用。記憶體1011用於處理子矩陣711,記憶體1012用於處理子矩陣712,或反之。In the process of decoding LDPC code 1, both memories 1011-1012 are in use. The memory 1011 is for processing the sub-matrix 711, and the memory 1012 is for processing the sub-matrix 712, or vice versa.

在執行完適當的位元節點處理和校驗節點處理並滿足停止標準之後,位元引擎1031-1032操作生成軟資訊,從該軟資訊中可以得到對於依據編碼1進行編碼的LDPC編碼信號中的編碼位元的最佳估算。After performing the appropriate bit node processing and check node processing and satisfying the stopping criteria, the bit engine 1031-1032 operates to generate soft information from which the LDPC encoded signal encoded according to the code 1 can be obtained. The best estimate of the coding bit.

又,在對LDPC編碼2進行解碼的過程中,兩個記憶體1011-1012都在使用。記憶體1011用於處理子矩陣721,記憶體1012用於處理子矩陣722,或反之。Also, in the process of decoding LDPC code 2, both memories 1011-1012 are in use. The memory 1011 is for processing the sub-matrix 721, and the memory 1012 is for processing the sub-matrix 722, or vice versa.

在執行完適當的位元節點處理和校驗節點處理並滿足停止標準之後,位元引擎1031-1032操作生成軟資訊,從該軟資訊中可以得到對於依據編碼2進行編碼的LDPC編碼信號中的編碼位元的最佳估算。After performing the appropriate bit node processing and check node processing and satisfying the stopping criteria, the bit engine 1031-1032 operates to generate soft information from which the LDPC encoded signal encoded according to the code 2 can be obtained. The best estimate of the coding bit.

作為選擇,如同另一個實施例,也可使用單個切換模組(例如可將校驗引擎1021-1022連接至切換模組1091)。Alternatively, as with another embodiment, a single switching module can also be used (e.g., the verification engine 1021-1022 can be coupled to the switching module 1091).

如圖所示,合併記憶體(例如圖中所示的記憶體1012)可以用於執行對編碼1的非零子矩陣712的處理及用於執行對編碼2的非零子矩陣722的處理。使用合併記憶體來執行互斥非零子矩陣的解碼處理的原理也可擴展到更大的LDPC矩陣。As shown, merged memory (e.g., memory 1012 as shown in the figure) can be used to perform processing of non-zero sub-matrices 712 of code 1 and for performing processing of non-zero sub-matrices 722 of code 2. The principle of using merged memory to perform decoding processing of mutually exclusive non-zero sub-matrices can also be extended to larger LDPC matrices.

圖11示出了用於處理疊加LDPC矩陣的非零子矩陣的解碼裝置的實施例1100的示意圖。該實施例可以推廣,以適用於任意想要尺寸的LDPC矩陣的編碼信號的解碼處理。11 shows a schematic diagram of an embodiment 1100 of a decoding apparatus for processing a non-zero submatrix of a superimposed LDPC matrix. This embodiment can be generalized to be applied to the decoding process of an encoded signal of an LDPC matrix of any desired size.

參見圖11,該實施例包括多個記憶體1110(即記憶體1111-1113)。位元度量/LLR提供給多個位元引擎(例如位元引擎1131和位元引擎1133)。切換模組1191連接在位元引擎1131-1133和多個記憶體1110之間。另一個切換引擎1192連接在校驗引擎1121-1123和多個記憶體1110之間。Referring to Figure 11, this embodiment includes a plurality of memories 1110 (i.e., memories 1111-1113). The bit metric/LLR is provided to a plurality of bit engines (e.g., bit engine 1131 and bit engine 1133). The switching module 1191 is connected between the bit engines 1131-1133 and the plurality of memories 1110. Another switching engine 1192 is connected between the verification engines 1121-1123 and the plurality of memories 1110.

又,如同另一個實施例,需要注意切換模組1191(以及本文中描述的其他切換模組)可使用具有多個輸入/輸出端的複用器(MUX)、多個MUX或允許在多個記憶體1110與多個位元引擎1131-1133和這些記憶體1110與多個校驗引擎1121-1123之間選擇連接的其他裝置來實現。Again, as with another embodiment, it is noted that the switching module 1191 (and other switching modules described herein) can use a multiplexer (MUX) with multiple inputs/outputs, multiple MUXs, or allow multiple memories. The body 1110 is implemented with a plurality of bit engines 1131-1133 and other devices that are selectively connected between the memory 1110 and the plurality of check engines 1121-1123.

在對依據第一LDPC編碼得以編碼的第一信號進行解碼的過程中,記憶體1110的第一子集用於處理第一LDPC編碼的LDPC矩陣中的非零子矩陣。In decoding the first signal encoded according to the first LDPC encoding, the first subset of the memory 1110 is used to process the non-zero submatrices in the first LDPC encoded LDPC matrix.

在對依據第二LDPC編碼得以編碼的第二信號進行解碼的過程中,記憶體1110的第二子集用於處理第二LDPC編碼的LDPC矩陣中的非零子矩陣。In decoding the second signal encoded according to the second LDPC encoding, the second subset of the memory 1110 is for processing the non-zero submatrices in the second LDPC encoded LDPC matrix.

在對依據第三LDPC編碼得以編碼的第三信號進行解碼的過程中,記憶體1110的第三子集用於處理第二LDPC編碼的LDPC矩陣中的非零子矩陣。In decoding the third signal encoded according to the third LDPC encoding, a third subset of the memory 1110 is used to process the non-zero submatrices in the second LDPC encoded LDPC matrix.

如此類推......And so on......

在一些實施例中,在解碼每一個編碼信號時使用相同數量的 多個記憶體1110。在其他實施例中,在解碼不同的編碼信號時使用不同數量的多個記憶體。例如,在各種實施例中,上述第一子集、第二子集和第三子集的每一個可以包括相同數量的記憶體,或者包括不同數量的記憶體。In some embodiments, the same amount is used when decoding each encoded signal A plurality of memories 1110. In other embodiments, a different number of multiple memories are used in decoding different encoded signals. For example, in various embodiments, each of the first subset, the second subset, and the third subset described above may include the same amount of memory or include a different number of memories.

切換模組1191和1192用於保證在多個位元引擎1131-1133和多個記憶體1110之間的適當連通以獲取在更新位元邊消息的執行過程中所需的校驗邊消息,且切換模組1191和1192用於保證在多個校驗引擎1121-1123和多個記憶體1110之間的適當連通以獲取在更新校驗邊消息的執行過程中所需的位元邊消息。Switching modules 1191 and 1192 are used to ensure proper communication between the plurality of bit engines 1131-1133 and the plurality of memories 1110 to obtain the check edge messages required during the execution of the update bit side message, and Switching modules 1191 and 1192 are used to ensure proper communication between the plurality of check engines 1121-1123 and the plurality of memories 1110 to obtain the bit side messages required during the execution of the update check edge message.

在執行完適當的位元節點處理和校驗節點處理並滿足停止標準之後,位元引擎1131-1132操作生成軟資訊,從該軟資訊中可以得到對於依據該感興趣的特定LDPC編碼進行編碼的LDPC編碼信號中的編碼位元的最佳估算。After performing the appropriate bit node processing and check node processing and satisfying the stopping criteria, the bit engine 1131-1132 operates to generate soft information from which the encoding of the particular LDPC encoding according to the interest can be obtained. The best estimate of the coding bits in the LDPC coded signal.

圖12示出了用於處理疊加LDPC矩陣的非零子矩陣的解碼裝置的另一實施例1200的示意圖。FIG. 12 shows a schematic diagram of another embodiment 1200 of a decoding apparatus for processing a non-zero submatrix of a superimposed LDPC matrix.

參見圖12,該實施例包括多個記憶體1210(即記憶體1211-1213)。位元度量/LLR提供給多個位元引擎(例如位元引擎1231和位元引擎1233)。切換模組1291連接在多個位元引擎1231-1233和多個記憶體1210之間。同一個切換引擎1191還在校驗引擎1221-1223和多個記憶體1210之間提供可選擇的連通性。Referring to Figure 12, this embodiment includes a plurality of memories 1210 (i.e., memories 1211-1213). The bit metric/LLR is provided to a plurality of bit engines (eg, bit engine 1231 and bit engine 1233). The switching module 1291 is connected between the plurality of bit engines 1231-1233 and the plurality of memories 1210. The same switching engine 1191 also provides selectable connectivity between the verification engines 1221-1223 and the plurality of memories 1210.

在對依據第一LDPC編碼得以編碼的第一信號進行解碼的過程中,記憶體1210的第一子集用於處理第一LDPC編碼的LDPC矩陣中的非零子矩陣。In decoding the first signal encoded according to the first LDPC encoding, the first subset of the memory 1210 is used to process the non-zero submatrices in the first LDPC encoded LDPC matrix.

在對依據第二LDPC編碼得以編碼的第二信號進行解碼的過程中,記憶體1210的第二子集用於處理第二LDPC編碼的LDPC矩陣中的非零子矩陣。In decoding the second signal encoded according to the second LDPC encoding, a second subset of the memory 1210 is used to process the non-zero submatrices in the second LDPC encoded LDPC matrix.

在對依據第三LDPC編碼得以編碼的第三信號進行解碼的過程中,記憶體1210的第三子集用於處理第二LDPC編碼的LDPC 矩陣中的非零子矩陣。In the process of decoding the third signal encoded according to the third LDPC encoding, the third subset of the memory 1210 is used to process the second LDPC encoded LDPC A non-zero submatrix in a matrix.

如此類推......And so on......

在一些實施例中,在解碼每一個編碼信號時使用相同數量的多個記憶體1210。在其他實施例中,在解碼不同的編碼信號時使用不同數量的多個記憶體。例如,在各種實施例中,上述第一子集、第二子集和第三子集的每一個可以包括相同數量的記憶體,或者包括不同數量的記憶體。In some embodiments, the same number of multiple memories 1210 are used in decoding each encoded signal. In other embodiments, a different number of multiple memories are used in decoding different encoded signals. For example, in various embodiments, each of the first subset, the second subset, and the third subset described above may include the same amount of memory or include a different number of memories.

切換模組1291用於保證在多個位元引擎1231-1233和多個記憶體1210之間的適當連通以獲取在更新位元邊消息的執行過程中所需的校驗邊消息,且切換模組1291還用於保證在多個校驗引擎1221-1223和多個記憶體1210之間的適當連通以獲取在更新校驗邊消息的執行過程中所需的位元邊消息。The switching module 1291 is configured to ensure proper communication between the plurality of bit engines 1231-1233 and the plurality of memories 1210 to acquire a check edge message required during the execution of the update bit side message, and switch the mode Group 1291 is also used to ensure proper communication between the plurality of check engines 1221-1223 and the plurality of memories 1210 to obtain the bit side messages required during the execution of the update check edge message.

在執行合適的位元節點處理和節點校驗處理之後,並且遇到停止判據時After performing appropriate bit node processing and node verification processing, and encountering a stop criterion

位元引擎1231-1232將從最佳估計中生成軟資訊,所述最佳估計可以是根據特定興趣的LDPC碼編碼的LDPC編碼信號作出的。The bit engine 1231-1232 will generate soft information from the best estimate, which may be made based on the LDPC coded LDPC coded signal of the particular interest.

圖13和14示出了用於解碼疊加LDPC矩陣的非零子矩陣的硬體指令。Figures 13 and 14 illustrate hardware instructions for decoding non-zero sub-matrices of a superposed LDPC matrix.

參照圖13,依照實施例4300解碼的每個LDPC編碼信號具有相同數量的非零子矩陣。在解碼依照每個LDPC碼編碼的LDPC編碼信號過程中,唯一的區別是每個編碼信號採用的記憶體子集是不同的。Referring to Figure 13, each LDPC coded signal decoded in accordance with embodiment 4300 has the same number of non-zero sub-matrices. In decoding LDPC coded signals encoded in accordance with each LDPC code, the only difference is that the subset of memory employed by each coded signal is different.

例如,當解碼依照碼1編碼的信號時,對應的LDPC矩陣包括’X’非零子矩陣,所有提供的位元引擎(provisioned bit engines)可用於位元節點處理。所有的提供的校驗引擎用於校驗處理。記憶體的總數為’Y’,使用到其中’X’個記憶體,即使用到這些’Y’個記憶體中的子集1。For example, when decoding a signal encoded in accordance with code 1, the corresponding LDPC matrix includes an 'X' non-zero submatrix, and all provided bit engines are available for bit node processing. All provided check engines are used for verification processing. The total number of memories is 'Y', and the 'X' memories are used, that is, the subset 1 of these 'Y' memories is used.

當解碼依照碼2編碼的信號時,對應的LDPC矩陣包括’X’個非零子矩陣,所有提供的位元引擎可用於位元節點處理。所有提供的校驗引擎用於校驗處理。記憶體的總數為’Y’,使用到其中’X’個記憶體,即使用到這些’Y’個記憶體中的子集2。如此類推,如圖中所示。When decoding a signal encoded in accordance with code 2, the corresponding LDPC matrix includes 'X' non-zero sub-matrices, and all of the provided bit-element engines are available for bit-node processing. All provided check engines are used for verification processing. The total number of memories is 'Y', and to which 'X' memories are used, that is, subsets 2 of these 'Y' memories are used. And so on, as shown in the figure.

可見,在實施例1300中,在解碼不同的LDPC編碼信號時,其唯一的區別在於使用的記憶體的子集的不同。It can be seen that in embodiment 1300, the only difference in decoding different LDPC coded signals is the difference in the subset of memory used.

當解碼依照圖13中的每個LDPC碼編碼的每個LDPC編碼信號時,用到的位元引擎和校驗引擎的數量是一樣的。When decoding each LDPC coded signal encoded in accordance with each LDPC code in Fig. 13, the number of bit engines and check engines used is the same.

參照圖14,實施例1400示出了採用不同程度的平行度(various degrees of parallelism)的實施例。該實施例1400示出了在解碼不同的LDPC編碼信號時的較好的可變性和靈活性。Referring to Figure 14, an embodiment 1400 illustrates an embodiment employing varying degrees of parallelism. This embodiment 1400 illustrates better variability and flexibility in decoding different LDPC coded signals.

例如,當解碼依照碼a編碼的信號時,對應的LDPC矩陣包括’a1’個非零子矩陣。總數為’M’的提供的位元引擎中的a2子集可用於位元節點處理,總數為’L’的提供的校驗引擎中的a3子集可用於節點校驗處理,並可使用總數為’Z’的可用記憶體中的’a2’或’a3’個記憶體,即可使用’Z’個記憶體中的子集a4。For example, when decoding a signal encoded in accordance with code a, the corresponding LDPC matrix includes 'a1' non-zero sub-matrices. The a2 subset of the provided bit engine with a total of 'M' can be used for bit node processing, and the a3 subset of the provided check engines with a total of 'L' can be used for node check processing and can use the total number For the 'a2' or 'a3' memory in the available memory of 'Z', the subset a4 in the 'Z' memory can be used.

當解碼依照碼b編碼的信號時,對應的LDPC矩陣包括’b2’個非零子矩陣。總數為’M’的提供的位元引擎中的b2子集可用於位元節點處理,總數為’L’的提供的校驗引擎中的b3子集可用於節點校驗處理,並可使用總數為’Z’的可用記憶體中的’b2’或’b3’個記憶體,即可使用’Z’個記憶體中的子集b4。如此類推,如圖中所示。When decoding a signal encoded in accordance with code b, the corresponding LDPC matrix includes 'b2' non-zero sub-matrices. The b2 subset of the provided bit engine with a total of 'M' can be used for bit node processing, and the b3 subset of the provided check engines with a total of 'L' can be used for node check processing and can use the total number For the 'b2' or 'b3' memory in the available memory of 'Z', the subset b4 in the 'Z' memory can be used. And so on, as shown in the figure.

例如,在實施例1400中,可使用多次迴圈執行每個子疊代(舉例來說,位元節點處理或節點檢驗處理)。注意在一個例子中的位元節點處理,可在第一時間中,使用提供數量的位元引擎更新位元邊消息(bitedge messages)的前一半,並且可在第二時間中使用提供數量的位元引擎更新位元邊消息的後一半,這可看作是半平行度位元節點處理方法,這樣,在兩個步驟中分步完成解碼子疊代 (舉例來說,位元節點處理)。For example, in embodiment 1400, each sub-replacion (eg, bit node processing or node verification processing) can be performed using multiple loops. Note that in one example, the bit node processing can update the first half of the bit edge messages using the provided number of bit engines in the first time, and can use the number of bits provided in the second time. The meta engine updates the second half of the bit side message, which can be seen as a semi-parallel bit node processing method, so that the decoding sub-over generation is completed step by step in two steps. (for example, bit node processing).

在另一實施例中,注意在另一例子中的節點校驗處理,可在第一時間中使用提供數量的校驗引擎更新校驗邊消息的第一個三分之一,並在第二時間中,使用提供數量的校驗引擎更新校驗邊消息的第二個三分之一,並在第三時間中使用提供數量的校驗引擎更新校驗邊消息的最後一個三分之一。這可看作是平行度節點校驗處理方法,這樣,在三個步驟中分步完成解碼子疊代(舉例來說,節點校驗處理)。In another embodiment, note that in another example, the node check process may update the first one third of the check edge message using the provided number of check engines in the first time, and in the second In time, the second third of the check edge message is updated using the provided number of check engines, and the last one third of the check edge message is updated using the provided number of check engines in the third time. This can be regarded as a parallelism node check processing method, so that the decoding sub-health (for example, the node check processing) is completed step by step in three steps.

明顯地,在不偏離本發明的範圍和精神的情況下,可對本發明做出多種變換,因此,每個子疊代採用的迴圈次數可根據特定的實施例改變。It will be apparent that various modifications may be made to the invention without departing from the scope and spirit of the invention, and therefore, the number of loops employed per sub-replacion may vary depending on the particular embodiment.

回到實施例1400,每個LDPC矩陣無需包括相同數量的非零子矩陣。當解碼特定的LDPC編碼信號(無需所有的提供的記憶體時),用於特定的LDPC的對應零子矩陣的記憶體可以是斷開的。在特定信號的解碼過程中,當特定記憶體沒有使用時,可將該記憶體從與電路的其餘部分斷開(舉例來說,解除連接)以防止空閒記憶體干擾主動運算(active computation)並可節省能量。該記憶體的斷開可通過將每個可變節點和校驗節點對記憶體的輸入設置為0(或最大值“maxval”)來實現,這些可變節點和校驗節點分別與用於解碼該特定代碼的該特定未使用的子矩陣(零子矩陣)相連。Returning to embodiment 1400, each LDPC matrix need not include the same number of non-zero sub-matrices. When decoding a particular LDPC coded signal (when all of the provided memory is not required), the memory for the corresponding zero submatrix of a particular LDPC may be broken. During the decoding of a particular signal, when a particular memory is not in use, the memory can be disconnected from the rest of the circuit (for example, disconnected) to prevent idle memory from interfering with active computation and Save energy. The disconnection of the memory can be achieved by setting the input of each variable node and check node to the memory to 0 (or the maximum value "maxval"), which are used for decoding, respectively. The particular unused sub-matrices (zero sub-matrices) of the particular code are connected.

圖15和16示出了使用至少一個合併記憶體(merge memoty)的實施例。在這些實施例中,存在可如下使用的記憶體。Figures 15 and 16 illustrate an embodiment using at least one merge memoty. In these embodiments, there are memories that can be used as follows.

當解碼依照碼0和1編碼的信號時,記憶體A可用,並且當解碼其他碼時,記憶體A空閒。Memory A is available when decoding signals encoded in accordance with codes 0 and 1, and memory A is free when other codes are decoded.

當解碼依照碼2和3編碼的信號時,記憶體B可用,並且當解碼其他碼時,記憶體B為空閒。Memory B is available when decoding signals encoded in accordance with codes 2 and 3, and memory B is idle when other codes are decoded.

圖15示出了用於依照LDPC解碼處理校驗節點處理的2個互斥記憶體之間的連通性。該實施例示出了當解碼依照碼0和1編 碼的信號時怎樣使用記憶體A,並示出了當解碼其他碼的編碼的信號時,怎樣將記憶體A從硬體解除連接(舉例來說,斷開)。在解碼某些信號時,當記憶體A未使用時,記憶體A從硬體/電路的其餘部分有效地斷開(舉例來說,解除連接)以防止空閒記憶體干擾主動運算,並可節省能源。該記憶體的斷開可通過將每個可變節點和校驗節點對記憶體的輸入設置為0(或最大值“maxval”)來實現,這些可變節點和校驗節點分別與用於解碼該特定代碼的該特定未使用的子矩陣(零子矩陣)相連。Fig. 15 shows the connectivity between two mutually exclusive memories for the check node processing in accordance with the LDPC decoding process. This embodiment shows when decoding is coded according to codes 0 and 1. How to use the memory A in the signal of the code, and how to disconnect the memory A from the hardware (for example, disconnection) when decoding the encoded signal of the other code. When decoding certain signals, when memory A is not in use, memory A is effectively disconnected from the rest of the hardware/circuit (for example, disconnected) to prevent idle memory from interfering with active operations and saves energy. The disconnection of the memory can be achieved by setting the input of each variable node and check node to the memory to 0 (or the maximum value "maxval"), which are used for decoding, respectively. The particular unused sub-matrices (zero sub-matrices) of the particular code are connected.

該實施例還示出了當解碼依照碼2和3編碼的信號時怎樣使用記憶體B,並示出了當解碼其他碼的編碼信號時,怎樣將記憶體B從硬體解除連接(舉例來說,斷開)。在解碼某些信號時,當記憶體B未使用時,記憶體B從硬體/電路的其餘部分有效地斷開(舉例來說,解除連接)以防止空閒記憶體干擾主動運算,並可節省能源。該記憶體的斷開可通過將每個可變節點和校驗節點對記憶體的輸入設置為0(或最大值“maxval”)來實現,這些可變節點和校驗節點分別與用於解碼該特定代碼的該特定未使用的子矩陣(零子矩陣)相連。This embodiment also shows how to use the memory B when decoding the signals encoded in accordance with codes 2 and 3, and shows how to unlink the memory B from the hardware when decoding the encoded signals of other codes (for example Said, disconnected). When decoding certain signals, when memory B is not in use, memory B is effectively disconnected from the rest of the hardware/circuit (for example, disconnected) to prevent idle memory from interfering with active operations and saves energy. The disconnection of the memory can be achieved by setting the input of each variable node and check node to the memory to 0 (or the maximum value "maxval"), which are used for decoding, respectively. The particular unused sub-matrices (zero sub-matrices) of the particular code are connected.

應注意,圖中並未示出該可變/位元引擎到記憶體A和B的連接,在以下的圖中,也未示出該可變/位元引擎到記憶體C的連接。然而,對於本領域技術人員,當示出了校驗引擎的連通性以後,本領域技術人員可以理解相關可變/位元引擎的連通性。It should be noted that the connection of the variable/bit engine to the memories A and B is not shown in the figure, and the connection of the variable/bit engine to the memory C is not shown in the following figures. However, those skilled in the art will appreciate the connectivity of the associated variable/bit engine when the connectivity of the verification engine is shown.

可見,記憶體A和B可合併到單個記憶體C。接著,當解碼依照碼0、1、2和3編碼的信號時,記憶體C可用,並且當解碼其他碼編碼的信號時,所述記憶體C空閒。It can be seen that the memories A and B can be combined into a single memory C. Next, when the signals encoded in accordance with codes 0, 1, 2, and 3 are decoded, the memory C is available, and when the signals encoded by the other codes are decoded, the memory C is idle.

應注意,在此當合併記憶體是單獨提供時,其可維持所有的出現的連通性。在圖15和16示出的例子中,當使用記憶體C時(圖16),記憶體A和記憶體B(圖15)的原有連通性可得到維持。It should be noted that when the combined memory is provided separately, it maintains all of the emerging connectivity. In the example shown in Figs. 15 and 16, when the memory C is used (Fig. 16), the original connectivity of the memory A and the memory B (Fig. 15) can be maintained.

例如,考慮到在記憶體A和記憶體B具有互斥碼組,並且記 憶體A是在不同於記憶體B的子矩陣行中的實施例裏(舉例來說,記憶體A和記憶體B中的每個對應於在真個LDPC矩陣中不同位置的子矩陣),那麼記憶體A和B將與不同的校驗節點相連,並可合併到記憶體C中。同樣地,記憶體C可維持記憶體A到校驗節點的連通性,也可維持記憶體B到校驗節點的連通性。For example, consider that there is a mutually exclusive code group in memory A and memory B, and The memory A is in an embodiment different from the sub-matrix row of the memory B (for example, each of the memory A and the memory B corresponds to a sub-matrix at a different position in the true LDPC matrix), Then memory A and B will be connected to different check nodes and can be merged into memory C. Similarly, the memory C can maintain the connectivity of the memory A to the check node, and can also maintain the connectivity of the memory B to the check node.

圖16示出了用於依照LPDC解碼處理的校驗節點處理的合併記憶體的連通性的實施例1600。在兩步實施例中,採用3MUX以允許單個記憶體C取代記憶體A和B。Figure 16 illustrates an embodiment 1600 for the connectivity of merged memory processed by check nodes in accordance with LPDC decoding processing. In a two-step embodiment, 3MUX is employed to allow a single memory C to replace memory A and B.

圖17示出了用於處理LDPC編碼信號的方法1700的實施例。FIG. 17 illustrates an embodiment of a method 1700 for processing an LDPC coded signal.

參照圖17,如方框1710中所示,該方法1700最初包括接收連續時間信號。如方框1712中所示,該連續時間信號的接收和處理過程可包括對第一連續時間信號執行任何必要的下變頻以生成第二連續時間信號。可通過將載波頻率直接變頻為基帶頻率來實現頻率變換。可選地,該頻率變換可通過IF(中頻)實現。在任一實施例中,當執行該方法時,該接收到的連續時間信號一般下變頻到基帶連續時間信號。同樣地,可將某種類型的增益調節/增益控制應用到該接收到的連續時間信號。Referring to Figure 17, as shown in block 1710, the method 1700 initially includes receiving a continuous time signal. As shown in block 1712, the receiving and processing of the continuous time signal can include performing any necessary downconversion on the first continuous time signal to generate a second continuous time signal. The frequency conversion can be achieved by directly converting the carrier frequency to a baseband frequency. Alternatively, the frequency transform can be implemented by IF (Intermediate Frequency). In either embodiment, the received continuous time signal is typically downconverted to a baseband continuous time signal when the method is performed. Likewise, some type of gain adjustment/gain control can be applied to the received continuous time signal.

如方框1720中所示,該方法1700也可包括採樣第一(或第二)連續時間信號以生成離散信號並從中提取I、Q(同相、積分)分量。可使用ADC(模數轉換器)或類似裝置以從合適的下變頻(並且可以是經濾波的、增益調節的等處理的)的接收到的連續時間信號中生成離散信號。也可在這一步提取離散時間信號的單個採樣的I、Q分量。接著,如方框1730中所示,方法1700包括解調該I、Q分量,並可包括對該I、Q分量(舉例來說,對具有星座點的映射的星座圖)的符號映射,以生成離散值調製符號序列。As shown in block 1720, the method 1700 can also include sampling the first (or second) continuous time signal to generate a discrete signal and extracting I, Q (in-phase, integral) components therefrom. An ADC (analog to digital converter) or similar device can be used to generate the discrete signal from the received continuous time signal that is suitably downconverted (and can be processed by filtered, gain adjusted, etc.). It is also possible to extract the I, Q components of a single sample of the discrete time signal at this step. Next, as shown in block 1730, method 1700 includes demodulating the I, Q components and can include a symbol map of the I, Q components (for example, a constellation of maps with constellation points) to A sequence of discrete value modulation symbols is generated.

如方框1740中所示,方法1700的下一步包括執行邊消息更新直到遇到停止判據(舉例來說,預設的疊代數,直到所有符號等於0,或直到遇到其他停止判據)。該步驟可看作是執行依照上述 各種實施例的LPDC解碼。該LPDC解碼一般包括用於更新位元邊消息(舉例來說,可變邊消息)的位元引擎處理(如方框1742中所示),和用於更新校驗邊消息的校驗引擎處理(如方框1744中所示)。As shown in block 1740, the next step of method 1700 includes performing an edge message update until a stop criterion is encountered (for example, a preset iteration number until all symbols are equal to 0, or until other stop criteria are encountered) . This step can be seen as being performed in accordance with the above LPDC decoding of various embodiments. The LPDC decoding typically includes bit engine processing for updating bit side messages (e.g., variable edge messages) (as shown in block 1742), and check engine processing for updating check edge messages. (as shown in block 1744).

如方框1746中所示,方法1700也可包括當解碼感興趣的特定LPDC編碼信號時,採樣選定的硬體以提供給選定的LDPC碼。例如,該方法1700用於執行對不同的LDPC編碼信號的處理,這些LDPC編碼信號是使用不同的LDPC碼生成的(並因此分別具有不同的LDPC矩陣)。取決於被解碼的信號,方法1700用於選擇提供合適的硬體,以執行對感興趣的特定LPDC編碼信號的解碼。As shown in block 1746, method 1700 can also include sampling the selected hardware to provide for the selected LDPC code when decoding the particular LPDC encoded signal of interest. For example, the method 1700 is for performing processing of different LDPC coded signals that are generated using different LDPC codes (and thus having different LDPC matrices, respectively). Depending on the signal being decoded, method 1700 is for selecting to provide suitable hardware to perform decoding of the particular LPDC encoded signal of interest.

如方框1750中所示,在遇到停止判據以後,方法1700包括基於對應于最新更新的位元邊資訊的軟資訊以做出硬決策(hard decision)。該方法1700最後包括輸出從接收到的連續時間信號中提取的LDPC編碼位元(舉例來說,LDPC碼字或LDPC碼區)(包括資訊位元)的最佳估計。As shown in block 1750, after encountering the stop criterion, method 1700 includes making soft decisions based on soft information corresponding to the most recently updated bit side information. The method 1700 finally includes outputting a best estimate of the LDPC coded bits (eg, LDPC codewords or LDPC code regions) (including information bits) extracted from the received continuous time signal.

圖18示出了用於處理LDPC編碼信號的方法1800的實施例。FIG. 18 illustrates an embodiment of a method 1800 for processing an LDPC coded signal.

如方框1810中所示,該方法1800始於識別解碼所有LDPC編碼信號所需的所有LDPC矩陣。As shown in block 1810, the method 1800 begins by identifying all LDPC matrices required to decode all LDPC encoded signals.

接著如方框1820中所示,該方法1800生成所有LDPC矩陣的疊加結果(舉例來說,包括所有的LDPC矩陣的每個子矩陣位置的疊加)。Next, as shown in block 1820, the method 1800 generates superposition results for all LDPC matrices (for example, including superposition of each sub-matrix position of all LDPC matrices).

接著如方框1830中所示,該方法1800提供適應每個疊加結果的子矩陣的記憶體。這可通過多種方式來完成,並可包括任意個步驟。在一個實施例中,這包括對該最後疊加LDPC矩陣進行的第一貪心深度搜索,以確定所需的記憶體數(如方框1822中所示)。Next, as shown in block 1830, the method 1800 provides memory that accommodates the sub-matrices of each superposition result. This can be done in a number of ways and can include any number of steps. In one embodiment, this includes a first greedy depth search of the last superimposed LDPC matrix to determine the desired number of memories (as shown in block 1822).

雖然可採用多項式時間合併搜索演算法以獲得記憶體提供的解決方法,但其並不總是能提供從最少記憶體解決方法。在4節點實施例中,該節點可看作是按字母順序的。Although a polynomial time-combined search algorithm can be employed to obtain a solution provided by the memory, it does not always provide a minimum memory solution. In a 4-node embodiment, the node can be considered to be in alphabetical order.

記憶體A可與記憶體B合併,而不會發生更進一步的合併。該4節點的最少記憶體解決方案可合併記憶體A和記憶體B(舉例來說,合併到記憶體E),以及合併記憶體C和記憶體D(舉例來說,合併到記憶體F).Memory A can be merged with Memory B without further merging. The 4-node minimum memory solution combines memory A and memory B (for example, merged into memory E), and merges memory C and memory D (for example, merged into memory F) .

也可採用第一深度搜索以獲得最少記憶體解決方案,這樣一個第一全深度搜索是詳盡的,並可找到實際最少記憶體解決方案。然而,某些實施例顯示了在使用該方案時的困難。當考慮到可對解決方案的樹根進行調節以適應IEEE 802.11n標準以及此處所有的12個LDPC碼(每個碼具有自己對應的LDPC矩陣),接著用於IEEE 802.11n標準的樹根具有2041個分支。最大樹深度的結果約為105。(O(2041)105 )的搜索域不可能在不需要大量的處理和時間等條件的情況下完成全部搜索。A first depth search can also be employed to obtain the least memory solution, such that a first full depth search is exhaustive and an actual minimal memory solution can be found. However, certain embodiments show difficulties in using this approach. When considering that the root of the solution can be adjusted to accommodate the IEEE 802.11n standard and all 12 LDPC codes here (each code has its own corresponding LDPC matrix), then the root of the IEEE 802.11n standard has 2041 branches. The result of the maximum tree depth is approximately 105. The search field of (O(2041) 105 ) cannot complete all searches without requiring a large amount of processing and time.

可採用一個或多個探試方法(heuristic)來完成最少記憶體需求(或相對較少的記憶體需求)的搜索和在最後得到的疊加LDPC矩陣中的記憶體的合併變得簡單些。可采沿著列仿射的那些行的度量。另外,可用於管理合併搜索探試方法某些假設包括:(1)可變/位元節點可彼此相對進行壓縮,校驗節點可覆蓋最後得到的疊加LDPC矩陣中的相對較大區域,並且(2)將要提供的記憶體可以緊緊成串圍繞(tightly clustered)在可變/位元節點的周圍。The search for one or more heuristics to accomplish the minimum memory requirement (or relatively little memory requirement) and the merging of the memory in the resulting superimposed LDPC matrix becomes simpler. A measure of those rows along the column affine can be taken. In addition, some assumptions that can be used to manage the merge search heuristics include: (1) the variable/bit nodes can be compressed relative to each other, and the check nodes can cover a relatively large area of the resulting superimposed LDPC matrix, and 2) The memory to be provided can be tightly clustered around the variable/bit node.

該搜索可採樣這樣的探試方法,屬於最後得到的疊加LDPC矩陣的列的記憶體是緊緊成串的,並且校驗節點連接到該疊加 LDPC矩陣的不同列。The search can sample such a heuristic method, the memory belonging to the column of the finally obtained superimposed LDPC matrix is tightly packed, and the check node is connected to the superposition Different columns of the LDPC matrix.

接著可基於在最後得到的疊加LDPC矩陣中特定子矩陣和其他子矩陣的列與列之間的連接生成該列仿射度量。如下在另一個實施例中,該列仿射度量可用於控制/管理最後得到的疊加LDPC矩陣的第一貪心深度搜索。The column affine metric can then be generated based on the connections between the columns of the particular sub-matrices and other sub-matrices in the resulting superimposed LDPC matrix. As in another embodiment, the column affine metric can be used to control/manage the first greedy depth search of the resulting superimposed LDPC matrix.

如方框1824中所示,這也可包括將具有互斥主動代碼的記憶體組合並到合併記憶體中。如方框1826中所示,該方法1800也可包括生成記憶體的合併模式(舉例來說,基於第一貪心深度搜索和互斥合併),並基於此設置記憶體。As shown in block 1824, this may also include combining memory with mutually exclusive active code into the merged memory. As shown in block 1826, the method 1800 can also include generating a merge mode of memory (eg, based on a first greedy depth search and a mutually exclusive merge) and setting the memory based thereon.

接著,如方框1831中所示,方法1800使用提供的記憶體的第1子集解碼具有第一對應LDPC矩陣的第一LDPC編碼信號。Next, as shown in block 1831, method 1800 decodes the first LDPC encoded signal having the first corresponding LDPC matrix using the first subset of the provided memory.

如方框1832中所示,如果LDPC編碼信號將要被解碼,那麼,方法1800接著可使用提供的記憶體的第n子集解碼具有第n對應LDPC矩陣的第nLDPC編碼信號。As shown in block 1832, if the LDPC coded signal is to be decoded, then method 1800 can then decode the nth LDPC coded signal having the nth corresponding LDPC matrix using the nth subset of the provided memory.

圖19示出了用於為各種LDPC編碼信號處理提供硬體的方法1900。FIG. 19 illustrates a method 1900 for providing hardware for various LDPC coded signal processing.

如方框1910中所示,該方法1900始於基於每個列與其他列之間的連通性識別解碼所有的LDPC編碼信號所需要的所有LDPC矩陣。As shown in block 1910, the method 1900 begins by identifying all LDPC matrices needed to decode all LDPC coded signals based on connectivity between each column and other columns.

如方框1920中所示,該方法1900接著生成所有LDPC矩陣的疊加結果(舉例來說,包括所有的LDPC矩陣的每個子矩陣位置的疊加)。As shown in block 1920, the method 1900 then generates superposition results for all LDPC matrices (for example, including superposition of each sub-matrix position of all LDPC matrices).

如方框1930中所示,方法1900接著使用列仿射作為度量,執行疊加結果的第一貪心深度搜索以確定所需的記憶體數和合併的組(舉例來說,合併模式)。As shown in block 1930, method 1900 then uses the column affine as a metric to perform a first greedy depth search of the overlay results to determine the desired number of memory and the merged group (eg, merge mode).

如方框1940中所示,該方法1900接著基於合併模式向疊加結果的每個子矩陣提供合適的記憶體。As shown in block 1940, the method 1900 then provides appropriate memory to each sub-matrix of the overlay result based on the merge mode.

圖20示出了疊加LDPC矩陣的可選實施例2000。該實施例 2000對應於12個單獨LDPC矩陣的疊加以在IEEE 802.11n標準中執行採用12個代碼的解碼處理。當將12個單獨的LDPC矩陣進行疊加時(以及它們的每個子矩陣),在最後出現的疊加LDPC矩陣中總共具有205個非零子矩陣。Figure 20 illustrates an alternative embodiment 2000 of superimposing an LDPC matrix. This embodiment 2000 corresponds to the superposition of 12 individual LDPC matrices to perform decoding processing using 12 codes in the IEEE 802.11n standard. When 12 separate LDPC matrices are superimposed (and each of their sub-matrices), there are a total of 205 non-zero sub-matrices in the last appearing superposed LDPC matrix.

對應於每個非零子矩陣的消息可存儲在記憶體中。可運行校驗和位元引擎,這樣它們能合適地和選擇性地從運行的記憶體中讀取資訊或是向運行的記憶體中寫入資訊以提取每個可用於解碼特定信號的合適的非零子矩陣,這些特定信號根據IEEE 802.11n標準使用的12種編碼方案中任一種進行編碼的。Messages corresponding to each non-zero sub-matrix can be stored in memory. The checksum bit engine can be run so that they can properly and selectively read information from the running memory or write information to the running memory to extract each suitable one that can be used to decode a particular signal. Non-zero sub-matrices, these specific signals are encoded according to any of the 12 coding schemes used by the IEEE 802.11n standard.

在這一實施例中,這205個記憶體中只有88個記憶體是在任意時間均可用的。這205個記憶體中,至少有117個是一直空閒的。明顯地,當解碼第一編碼信號時,可使用這205個記憶體中的第一子集(88個記憶體),並當解碼第二編碼信號時,可使用這205個記憶體中的第二子集(88個記憶體)。In this embodiment, only 88 of the 205 memories are available at any time. At least 117 of the 205 memories are always free. Obviously, when decoding the first encoded signal, the first subset of the 205 memories (88 memories) can be used, and when decoding the second encoded signal, the first of the 205 memories can be used. Two subsets (88 memories).

可通過採樣合併模式顯著減少提供的這205個記憶體數量,並可通過使用最後的疊加LDPC矩陣的第一貪心深度搜索以確定所需記憶體的數量,來採用最少數量(可能並不是實際上真的最少)的記憶體。在附錄中示出了這樣一個合併模式,並且可通過使用列仿射作為度量的最後的疊加LDPC矩陣的第一貪心深度搜索來獲得這一特定合併模式。該合併模式僅僅需要提供102個記憶體(與205個相比)。可見記憶體可節省約50%,並且這也將使得相鄰路徑大為壓縮。而實際上,可找到一個解決方案,需要的記憶體量可少於102個記憶體(舉例來說,使用第一全面深度搜索),可以發現,使用102個提供的記憶體(舉例來說,使用第一貪心深度搜索所找到的)具有相對較好的區域權衡比和信號擁塞。The number of 205 memories provided can be significantly reduced by the sample merge mode, and the minimum amount can be used by using the first greedy depth search of the last stacked LDPC matrix to determine the amount of memory required (may not be practical) Really least) memory. Such a merge mode is shown in the appendix, and this particular merge mode can be obtained by using the column affine as the first greedy depth search of the last superimposed LDPC matrix of the metric. This merge mode only needs to provide 102 memories (compared to 205). Visible memory can save about 50%, and this will also make adjacent paths much more compressed. In fact, a solution can be found that requires less than 102 memories (for example, using the first full depth search) and can be found using 102 provided memories (for example, Using the first greedy depth search found) has a relatively good regional trade-off ratio and signal congestion.

在特定信號的解碼過程中,當特定記憶體沒有使用時,可將該記憶體從與電路的其餘部分斷開(舉例來說,解除連接)以防止空閒記憶體干擾主動運算並可節省能量。該記憶體的斷開可通過將 每個可變節點和校驗節點對記憶體的輸入設置為0(或最大值“maxval”)來實現,這些可變節點和校驗節點分別與用於解碼該特定代碼的該特定未使用的子矩陣(零子矩陣)相連。During the decoding of a particular signal, when a particular memory is not in use, the memory can be disconnected from the rest of the circuit (for example, disconnected) to prevent idle memory from interfering with active operations and saving energy. The disconnection of the memory can be passed Each variable node and check node is implemented with a memory input of 0 (or a maximum value "maxval"), respectively, with the particular unused one used to decode the particular code. Submatrices (zero submatrices) are connected.

應注意,此處出現的多代碼方法可在基於LDPC解碼器的任何子矩陣/子時鐘上使用,在此,對應子矩陣/子時鐘的消息存儲在某種類型的記憶體中(舉例來說,SRAM、寄存器集合等)。此外,當試圖獲得更有效的記憶體解決方案時,使用的探試方法可以是依據後端執行細節(backend implementation detail)進行更精確調諧的。換句話說,取決於多代碼LDPC解碼器需要執行的特定應用,那麼可依據該特定應用對該探試方法進行更精確的調諧。It should be noted that the multi-code approach presented here can be used on any sub-matrix/subclock based on an LDPC decoder, where the messages corresponding to the sub-matrix/sub-clock are stored in some type of memory (for example , SRAM, register set, etc.). In addition, when attempting to obtain a more efficient memory solution, the heuristics used can be more precisely tuned based on the backend implementation detail. In other words, depending on the particular application that the multi-code LDPC decoder needs to perform, the heuristics can be more accurately tuned depending on the particular application.

應注意,在此所述的各種模組(舉例來說,編碼器、解碼器、處理模組等)均可以是單獨的處理設備或多個處理設備。這樣一個處理設備可以是是微處理器、微控制器、數位信號處理器、微型計算器、中央處理單元、現場可編程閘陣列、可編程邏輯裝置、狀態機、類比電路、數位電路和/或任何根據操作指令處理信號(數位和/或類比)的裝置。該記憶體可以是單獨的存儲設備或是多個存儲設備。這樣一個存儲設備可以是唯讀記憶體、隨機訪問記憶體、靜態記憶體、動態記憶體、快閃記憶體和/或可存儲數位資訊的任何記憶體。應注意,當處理設備通過狀態機、類比電路、數位電路和/或邏輯電路執行一個或多個功能時,存儲對應的操作指令的記憶體可植入到包括該狀態機、類比電路、數位電路和/或邏輯電路的電路中。在這樣一個實施例中,記憶體存儲對應在此示出的至少某些步驟和/或指令,與所述記憶體相連的處理模組執行這些指令。It should be noted that the various modules (eg, encoders, decoders, processing modules, etc.) described herein can be separate processing devices or multiple processing devices. Such a processing device may be a microprocessor, a microcontroller, a digital signal processor, a micro-calculator, a central processing unit, a field programmable gate array, a programmable logic device, a state machine, an analog circuit, a digital circuit, and/or Any device that processes signals (digits and/or analogies) according to operational instructions. The memory can be a separate storage device or multiple storage devices. Such a storage device may be read only memory, random access memory, static memory, dynamic memory, flash memory, and/or any memory that can store digital information. It should be noted that when the processing device performs one or more functions through a state machine, an analog circuit, a digital circuit, and/or a logic circuit, a memory storing the corresponding operational command can be implanted into the state machine, the analog circuit, and the digital circuit. And / or logic circuit in the circuit. In such an embodiment, the memory stores at least some of the steps and/or instructions shown herein, and the processing module coupled to the memory executes the instructions.

以上借助於說明指定的功能和關係的方法步驟對本發明進行了描述。為了描述的方便,這些功能組成模組和方法步驟的界限和順序在此處被專門定義。然而,只要給定的功能和關係能夠適當地實現,界限和順序的變化是允許的。任何上述變化的界限或 順序應被視為在權利要求保護的範圍內。The invention has been described above by means of method steps illustrating the specified functions and relationships. For the convenience of description, the boundaries and order of these functional component modules and method steps are specifically defined herein. However, as long as a given function and relationship can be properly implemented, changes in boundaries and order are allowed. The boundaries of any of the above changes or The order should be considered to be within the scope of the claims.

以上還借助於說明某些重要功能的功能模組對本發明進行了描述。為了描述的方便,這些功能組成模組的界限在此處被專門定義。當這些重要的功能被適當地實現時,變化其界限是允許的。類似地,流程圖模組也在此處被專門定義來說明某些重要的功能,為廣泛應用,流程圖模組的界限和順序可以被另外定義,只要仍能實現這些重要功能。上述功能模組、流程圖功能模組的界限及順序的變化仍應被視為在權利要求保護範圍內。The invention has also been described above with the aid of functional modules that illustrate certain important functions. For the convenience of description, the boundaries of these functional component modules are specifically defined herein. When these important functions are properly implemented, it is permissible to change their boundaries. Similarly, flowchart modules are also specifically defined herein to illustrate certain important functions. For a wide range of applications, the boundaries and order of the flowchart modules can be additionally defined as long as these important functions are still implemented. Variations in the boundaries and sequence of the above-described functional modules and flow-through functional modules are still considered to be within the scope of the claims.

本領域技術人員也知悉此處所述的功能模組,和其他的說明性模組、模組和元件,可以如示例或由分立元件、特殊功能的積體電路、帶有適當軟體的處理器及類似的裝置組合而成。Those skilled in the art are also aware of the functional modules described herein, as well as other illustrative modules, modules, and components, which may be, for example, or by discrete components, special-purpose integrated circuits, processors with appropriate software. And a combination of similar devices.

此外,雖然描述細節的目的是清楚和明白上述實施例,本發明並不限於這些實施例。任何本領域技術人員知悉的、對這些特徵和實施例進行各種改變或等效替換而得的技術方案,都屬於本發明的保護範圍。Further, although the details are described in detail to understand and understand the above embodiments, the invention is not limited to the embodiments. Any technical solution known to those skilled in the art that makes various changes or equivalent substitutions to these features and embodiments is within the scope of the present invention.

附件介紹Attachment introduction

可採用多種方式和實施例來生成合併模式以指導在用於解碼多個LDPC編碼信號的設備的中硬體的提供。一個可能的實施例涉及根據IEEE 802.11n標準使用的12種編碼方案中任一種進行解碼。The merge mode can be generated in a variety of manners and embodiments to guide the provision of medium hardware in a device for decoding multiple LDPC coded signals. One possible embodiment involves decoding in accordance with any of the 12 coding schemes used in the IEEE 802.11n standard.

在這一實施例中,可見,當採樣合併搜索時,僅需102個記憶體,而當使用簡單的疊加方法時,需要205個記憶體。In this embodiment, it can be seen that only 102 memories are required when sampling the merge search, and 205 memories are required when using the simple overlay method.

附件(合併模式)Attachment (merger mode)

未合併記憶體,行0列0,編碼0(0,0)、編碼1(0,0)、碼2(0,0)、編碼3(0,0)、編碼4(0,0)、編碼5(0,0)、編碼6(0,0)、編碼7(0,0)、編碼8(0,0)、編碼9(0,0)、編碼10(0,0)、編碼11(0,0)Unmerge memory, row 0 column 0, code 0 (0,0), code 1 (0,0), code 2 (0,0), code 3 (0,0), code 4 (0,0), Encoding 5 (0,0), encoding 6 (0,0), encoding 7 (0,0), encoding 8 (0,0), encoding 9 (0,0), encoding 10 (0,0), encoding 11 (0,0)

未合併記憶體,行0列2,編碼1(0,2)、編碼2(0,2)、編碼3(0,2)、編碼4(0,2)、編碼5(0,2)、編碼6(0,2)、編碼7(0,2)、編碼8(0,2)、 編碼9(0,2)、編碼10(0,2)、編碼11(0,2)Uncombined memory, row 0 column 2, code 1 (0, 2), code 2 (0, 2), code 3 (0, 2), code 4 (0, 2), code 5 (0, 2), Code 6 (0, 2), code 7 (0, 2), code 8 (0, 2), Code 9 (0, 2), code 10 (0, 2), code 11 (0, 2)

未合併記憶體,行0列3,編碼1(0,3)、編碼2(0,3)、編碼3(0,3)、編碼5(0,3)、編碼6(0,3)、編碼7(0,3)、編碼9(0,3)、編碼10(0,3)、編碼11(0,3)Unmerge memory, row 0 column 3, code 1 (0, 3), code 2 (0, 3), code 3 (0, 3), code 5 (0, 3), code 6 (0, 3), Encoding 7 (0, 3), encoding 9 (0, 3), encoding 10 (0, 3), encoding 11 (0, 3)

未合併記憶體,行0列4,編碼0(0,4)、編碼2(0,4)、編碼3(0,4)、編碼4(0,4)、編碼5(0,4)、編碼6(0,4)、編碼7(0,4)、編碼8(0,4)、編碼9(0,4)、編碼10(0,4)、編碼11(0,4)Unmerge memory, row 0 column 4, code 0 (0, 4), code 2 (0, 4), code 3 (0, 4), code 4 (0, 4), code 5 (0, 4), Code 6 (0, 4), code 7 (0, 4), code 8 (0, 4), code 9 (0, 4), code 10 (0, 4), code 11 (0, 4)

未合併記憶體,行0列7,編碼0(0,7)、編碼1(0,7)、編碼2(0,7)、編碼3(0,7)、編碼7(0,7)、編碼8(0,7)、編碼9(0,7)、編碼10(0,7)、編碼11(0,7)Uncombined memory, row 0 column 7, code 0 (0,7), code 1 (0,7), code 2 (0,7), code 3 (0,7), code 7 (0,7), Encoding 8 (0, 7), encoding 9 (0, 7), encoding 10 (0, 7), encoding 11 (0, 7)

未合併記憶體,行0列8,編碼0(0,8)、編碼3(0,8)、編碼4(0,8)、編碼5(0,8)、編碼6(0,8)、編碼7(0,8)、編碼8(0,8)、編碼9(0,8)、編碼11(0,8)Unmerge memory, row 0 column 8, code 0 (0,8), code 3 (0,8), code 4 (0,8), code 5 (0,8), code 6 (0,8), Encoding 7 (0, 8), encoding 8 (0, 8), encoding 9 (0, 8), encoding 11 (0, 8)

未合併記憶體,行0列23,編碼0(0,23)、編碼1(0,23)、編碼2(0,23)、編碼3(0,23)、編碼4(0,23)、編碼5(0,23)、編碼6(0,23)、編碼7(0,23)、編碼8(0,23)、編碼9(0,23)、編碼10(0,23)、編碼11(0,23)Unconsolidated memory, row 0 column 23, code 0 (0, 23), code 1 (0, 23), code 2 (0, 23), code 3 (0, 23), code 4 (0, 23), Encoding 5 (0, 23), encoding 6 (0, 23), encoding 7 (0, 23), encoding 8 (0, 23), encoding 9 (0, 23), encoding 10 (0, 23), encoding 11 (0,23)

未合併記憶體,行1列0,編碼0(1,0)、編碼1(1,0)、編碼2(1,0)、編碼3(1,0)、編碼5(1,0)、編碼6(1,0)、編碼7(1,0)、編碼8(1,0)、編碼9(1,0)、編碼10(1,0)、編碼11(1,0)Unmerge memory, row 1 column 0, code 0 (1,0), code 1 (1,0), code 2 (1,0), code 3 (1,0), code 5 (1,0), Encoding 6 (1, 0), encoding 7 (1, 0), encoding 8 (1, 0), encoding 9 (1, 0), encoding 10 (1, 0), encoding 11 (1, 0)

未合併記憶體,行1列1,編碼1(1,1)、編碼2(1,1)、編碼3(1,1)、編碼4(1,1)、編碼5(1,1)、編碼6(1,1)、編碼7(1,1)、編碼8(1,1)、編碼9(1,1)、編碼10(1,1)、編碼11(1,1)Uncombined memory, row 1 column 1, code 1 (1, 1), code 2 (1, 1), code 3 (1, 1), code 4 (1, 1), code 5 (1, 1), Code 6 (1, 1), code 7 (1, 1), code 8 (1, 1), code 9 (1, 1), code 10 (1, 1), code 11 (1, 1)

未合併記憶體,行1列2,編碼0(1,2)、編碼1(1,2)、編碼2(1,2)、編碼3(1,2)、編碼5(1,2)、編碼6(1,2)、編碼7(1,2)、編碼9(1,2)、編碼10(1,2)、編碼11(1,2)Unconsolidated memory, row 1 column 2, code 0 (1, 2), code 1 (1, 2), code 2 (1, 2), code 3 (1, 2), code 5 (1, 2), Code 6 (1, 2), code 7 (1, 2), code 9 (1, 2), code 10 (1, 2), code 11 (1, 2)

未合併記憶體,行1列4,編碼0(1,4)、編碼1(1,4)、編碼2(1,4)、編碼3(1,4)、編碼4(1,4),編碼5(1,4)、編碼6(1,4)、編碼7(1,4)、 編碼8(1,4)、編碼9(1,4)、編碼10(1,4)、編碼11(1,4)Uncombined memory, row 1 column 4, code 0 (1, 4), code 1 (1, 4), code 2 (1, 4), code 3 (1, 4), code 4 (1, 4), Code 5 (1, 4), code 6 (1, 4), code 7 (1, 4), Code 8 (1, 4), code 9 (1, 4), code 10 (1, 4), code 11 (1, 4)

未合併記憶體,行1列5,編碼0(1,5)、編碼3(1,5)、編碼6(1,5)、編碼7(1,5)、編碼9(1,5)、編碼10(1,5)、編碼11(1,5)Uncombined memory, row 1 column 5, code 0 (1, 5), code 3 (1, 5), code 6 (1, 5), code 7 (1, 5), code 9 (1, 5), Code 10 (1, 5), code 11 (1, 5)

未合併記憶體,行1列7,編碼0(1,7)、編碼2(1,7)、編碼3(1,7)、編碼4(1,7)、編碼5(1,7)、編碼6(1,7)、編碼7(1,7)、編碼9(1,7)、編碼10(1,7)、編碼11(1,7)Unconsolidated memory, row 1 column 7, code 0 (1,7), code 2 (1,7), code 3 (1,7), code 4 (1,7), code 5 (1,7), Code 6 (1, 7), code 7 (1, 7), code 9 (1, 7), code 10 (1, 7), code 11 (1, 7)

未合併記憶體,行1列8,編碼0(1,8)、編碼1(1,8)、編碼2(1,8)、編碼3(1,8)、編碼4(1,8)、編碼7(1,8)、編碼10(1,8)、編碼11(1,8)Uncombined memory, row 1 column 8, code 0 (1, 8), code 1 (1, 8), code 2 (1, 8), code 3 (1, 8), code 4 (1, 8), Code 7 (1, 8), code 10 (1, 8), code 11 (1, 8)

未合併記憶體,行1列22,編碼0(1,22)、編碼1(1,22)、編碼2(1,22)、編碼3(1,22)、編碼4(1,22)、編碼5(1,22)、編碼6(1,22)、編碼7(1,22)、編碼8(1,22)、編碼9(1,22)、編碼10(1,22)、編碼11(1,22)Uncombined memory, row 1 column 22, code 0 (1, 22), code 1 (1, 22), code 2 (1, 22), code 3 (1, 22), code 4 (1, 22), Code 5 (1, 22), code 6 (1, 22), code 7 (1, 22), code 8 (1, 22), code 9 (1, 22), code 10 (1, 22), code 11 (1,22)

未合併記憶體,行1列23,編碼0(1,23)、編碼1(1,23)、編碼2(1,23)、編碼3(1,23)、編碼4(1,23)、編碼5(1,23)、編碼6(1,23)、編碼7(1,23)、編碼8(1,23)、編碼9(1,23)、編碼10(1,23)、編碼11(1,23)Uncombined memory, row 1 column 23, code 0 (1, 23), code 1 (1, 23), code 2 (1, 23), code 3 (1, 23), code 4 (1, 23), Code 5 (1, 23), code 6 (1, 23), code 7 (1, 23), code 8 (1, 23), code 9 (1, 23), code 10 (1, 23), code 11 (1,23)

未合併記憶體,行2列0,編碼0(2,0)、編碼1(2,0)、編碼2(2,0)、編碼3(2,0)、編碼4(2,0)、編碼5(2,0)、編碼6(2,0)、編碼7(2,0)、編碼9(2,0)、編碼10(2,0)、編碼11(2,0)Uncombined memory, row 2 column 0, code 0 (2,0), code 1 (2,0), code 2 (2,0), code 3 (2,0), code 4 (2,0), Encoding 5 (2,0), encoding 6 (2,0), encoding 7 (2,0), encoding 9 (2,0), encoding 10 (2,0), encoding 11 (2,0)

未合併記憶體,行2列1,編碼1(2,1)、編碼2(2,1)、編碼3(2,1)、編碼5(2,1)、編碼6(2,1)、編碼7(2,1)、編碼8(2,1)、編碼9(2,1)、編碼10(2,1)、編碼11(2,1)Unconsolidated memory, row 2 column 1, code 1 (2, 1), code 2 (2, 1), code 3 (2, 1), code 5 (2, 1), code 6 (2, 1), Code 7 (2, 1), code 8 (2, 1), code 9 (2, 1), code 10 (2, 1), code 11 (2, 1)

未合併記憶體,行2列2,編碼1(2,2)、編碼2(2,2)、編碼3(2,2)、編碼4(2,2)、編碼5(2,2)、編碼6(2,2)、編碼7(2,2)、編碼9(2,2)、編碼10(2,2)、編碼11(2,2)Uncombined memory, row 2 column 2, code 1 (2, 2), code 2 (2, 2), code 3 (2, 2), code 4 (2, 2), code 5 (2, 2), Code 6 (2, 2), code 7 (2, 2), code 9 (2, 2), code 10 (2, 2), code 11 (2, 2)

未合併記憶體,行2列3,編碼1(2,3)、編碼2(2,3)、編碼3(2,3)、編碼5(2,3)、編碼6(2,3)、編碼7(2,3)、編碼8(2,3)、編碼9(2,3)、編碼10(2,3)、編碼11(2,3)Uncombined memory, row 2 column 3, code 1 (2, 3), code 2 (2, 3), code 3 (2, 3), code 5 (2, 3), code 6 (2, 3), Code 7 (2, 3), code 8 (2, 3), code 9 (2, 3), code 10 (2, 3), code 11 (2, 3)

未合併記憶體,行2列4,編碼0(2,4)、編碼2(2,4)、編碼3(2,4)、編碼4(2,4)、編碼5(2,4)、編碼6(2,4)、編碼7(2,4)、編碼8(2,4)、編碼9(2,4)、編碼10(2,4)、編碼11(2,4)Unconsolidated memory, row 2, column 4, code 0 (2, 4), code 2 (2, 4), code 3 (2, 4), code 4 (2, 4), code 5 (2, 4), Code 6 (2, 4), code 7 (2, 4), code 8 (2, 4), code 9 (2, 4), code 10 (2, 4), code 11 (2, 4)

未合併記憶體,行2列8,編碼0(2,8)、編碼2(2,8)、編碼3(2,8)、編碼4(2,8)、編碼6(2,8)、編碼7(2,8)、編碼8(2,8)、編碼10(2,8)、編碼11(2,8)Uncombined memory, row 2 column 8, encoding 0 (2, 8), encoding 2 (2, 8), encoding 3 (2, 8), encoding 4 (2, 8), encoding 6 (2, 8), Code 7 (2, 8), code 8 (2, 8), code 10 (2, 8), code 11 (2, 8)

未合併記憶體,行2列21,編碼0(2,21)、編碼1(2,21)、編碼2(2,21)、編碼3(2,21)、編碼4(2,21)、編碼5(2,21)、編碼6(2,21)、編碼7(2,21)、編碼8(2,21)、編碼9(2,21)、編碼10(2,21)、編碼11(2,21)Uncombined memory, row 2 column 21, code 0 (2, 21), code 1 (2, 21), code 2 (2, 21), code 3 (2, 21), code 4 (2, 21), Code 5 (2, 21), code 6 (2, 21), code 7 (2, 21), code 8 (2, 21), code 9 (2, 21), code 10 (2, 21), code 11 (2,21)

未合併記憶體,行2列22,編碼0(2,22)、編碼1(2,22)、編碼2(2,22)、編碼3(2,22)、編碼4(2,22)、編碼5(2,22)、編碼6(2,22)、編碼7(2,22)、編碼8(2,22)、編碼9(2,22)、編碼10(2,22)、編碼11(2,22)Uncombined memory, row 2 column 22, code 0 (2, 22), code 1 (2, 22), code 2 (2, 22), code 3 (2, 22), code 4 (2, 22), Code 5 (2, 22), code 6 (2, 22), code 7 (2, 22), code 8 (2, 22), code 9 (2, 22), code 10 (2, 22), code 11 (2,22)

未合併記憶體,行3列0,編碼0(3,0)、編碼1(3,0)、編碼2(3,0)、編碼3(3,0)、編碼4(3,0)、編碼5(3,0)、編碼6(3,0)、編碼7(3,0)、編碼8(3,0)、編碼9(3,0)、編碼10(3,0)、編碼11(3,0)Uncombined memory, row 3 column 0, code 0 (3,0), code 1 (3,0), code 2 (3,0), code 3 (3,0), code 4 (3,0), Encoding 5 (3, 0), encoding 6 (3, 0), encoding 7 (3, 0), encoding 8 (3, 0), encoding 9 (3, 0), encoding 10 (3, 0), encoding 11 (3,0)

未合併記憶體,行3列1,編碼0(3,1)、編碼1(3,1)、編碼2(3,1)、編碼3(3,1)、編碼5(3,1)、編碼6(3,1)、編碼7(3,1)、編碼9(3,1)、編碼10(3,1)、編碼11(3,1)Uncombined memory, row 3 column 1, code 0 (3, 1), code 1 (3, 1), code 2 (3, 1), code 3 (3, 1), code 5 (3, 1), Code 6 (3, 1), code 7 (3, 1), code 9 (3, 1), code 10 (3, 1), code 11 (3, 1)

未合併記憶體,行3列2,編碼1(3,2)、編碼2(3,2)、編碼3(3,2)、編碼5(3,2)、編碼6(3,2)、編碼7(3,2)、編碼9(3,2)、編碼10(3,2)、編碼11(3,2)Uncombined memory, row 3 column 2, code 1 (3, 2), code 2 (3, 2), code 3 (3, 2), code 5 (3, 2), code 6 (3, 2), Code 7 (3, 2), code 9 (3, 2), code 10 (3, 2), code 11 (3, 2)

未合併記憶體,行3列3,編碼0(3,3)、編碼2(3,3)、編碼3(3,3)、編碼4(3,3)、編碼5(3,3)、編碼6(3,3)、編碼7(3,3)、編碼9(3,3)、編碼10(3,3)、編碼11(3,3)Uncombined memory, row 3 column 3, code 0 (3, 3), code 2 (3, 3), code 3 (3, 3), code 4 (3, 3), code 5 (3, 3), Code 6 (3, 3), code 7 (3, 3), code 9 (3, 3), code 10 (3, 3), code 11 (3, 3)

未合併記憶體,行3列4,編碼0(3,4)、編碼1(3,4)、編碼2(3,4)、編碼3(3,4)、編碼4(3,4)、編碼5(3,4)、編碼6(3,4)、編碼7(3,4)、 編碼8(3,4)、編碼10(3,4)、編碼11(3,4)Uncombined memory, row 3 column 4, code 0 (3, 4), code 1 (3, 4), code 2 (3, 4), code 3 (3, 4), code 4 (3, 4), Code 5 (3, 4), code 6 (3, 4), code 7 (3, 4), Code 8 (3, 4), code 10 (3, 4), code 11 (3, 4)

未合併記憶體,行3列5,編碼0(3,5)、編碼2(3,5)、編碼3(3,5)、編碼5(3,5)、編碼6(3,5),編碼7(3,5)、編碼8(3,5)、編碼9(3,5)、編碼10(3,5)、編碼11(3,5)Unconsolidated memory, row 3 column 5, code 0 (3, 5), code 2 (3, 5), code 3 (3, 5), code 5 (3, 5), code 6 (3, 5), Code 7 (3, 5), code 8 (3, 5), code 9 (3, 5), code 10 (3, 5), code 11 (3, 5)

未合併記憶體,行3列8,編碼0(3,8)、編碼1(3,8)、編碼2(3,8)、編碼3(3,8)、編碼4(3,8)、編碼7(3,8)、編碼8(3,8)、編碼9(3,8)、編碼10(3,8)、編碼11(3,8)Uncombined memory, row 3 column 8, code 0 (3, 8), code 1 (3, 8), code 2 (3, 8), code 3 (3, 8), code 4 (3, 8), Code 7 (3, 8), code 8 (3, 8), code 9 (3, 8), code 10 (3, 8), code 11 (3, 8)

未合併記憶體,行3列20,編碼0(3,20)、編碼1(3,20)、編碼2(3,20)、編碼3(3,20)、編碼4(3,20)、編碼5(3,20)、編碼6(3,20)、編碼7(3,20)、編碼8(3,20)、編碼9(3,20)、編碼10(3,20)、編碼11(3,20)Uncombined memory, row 3 column 20, code 0 (3, 20), code 1 (3, 20), code 2 (3, 20), code 3 (3, 20), code 4 (3, 20), Encoding 5 (3, 20), encoding 6 (3, 20), encoding 7 (3, 20), encoding 8 (3, 20), encoding 9 (3, 20), encoding 10 (3, 20), encoding 11 (3,20)

未合併記憶體,行3列21,編碼0(3,21)、編碼1(3,21)、編碼2(3,21)、編碼3(3,21)、編碼4(3,21)、編碼5(3,21)、編碼6(3,21)、編碼7(3,21)、編碼8(3,21)、編碼9(3,21)、編碼10(3,21),編碼11(3,21)Uncombined memory, row 3, column 21, code 0 (3, 21), code 1 (3, 21), code 2 (3, 21), code 3 (3, 21), code 4 (3, 21), Code 5 (3, 21), code 6 (3, 21), code 7 (3, 21), code 8 (3, 21), code 9 (3, 21), code 10 (3, 21), code 11 (3,21)

未合併記憶體,行4列1,編碼0(4,1)、編碼1(4,1)、編碼2(4,1)、編碼3(4,1)、編碼5(4,1)、編碼6(4,1)、編碼7(4,1)、編碼9(4,1)、編碼10(4,1)、編碼11(4,1)Uncombined memory, row 4 column 1, code 0 (4, 1), code 1 (4, 1), code 2 (4, 1), code 3 (4, 1), code 5 (4, 1), Code 6 (4, 1), code 7 (4, 1), code 9 (4, 1), code 10 (4, 1), code 11 (4, 1)

未合併記憶體,行4列2,編碼1(4,2)、編碼2(4,2)、編碼3(4,2)、編碼4(4,2),編碼5(4,2)、編碼6(4,2)、編碼7(4,2)、編碼9(4,2)、編碼10(4,2)、編碼11(4,2)Unconsolidated memory, row 4 column 2, code 1 (4, 2), code 2 (4, 2), code 3 (4, 2), code 4 (4, 2), code 5 (4, 2), Code 6 (4, 2), code 7 (4, 2), code 9 (4, 2), code 10 (4, 2), code 11 (4, 2)

未合併記憶體,行4列3,編碼1(4,3)、編碼2(4,3)、編碼3(4,3)、編碼6(4,3)、編碼7(4,3)、編碼9(4,3)、編碼10(4,3),編碼11(4,3)Uncombined memory, row 4 column 3, code 1 (4, 3), code 2 (4, 3), code 3 (4, 3), code 6 (4, 3), code 7 (4, 3), Code 9 (4, 3), code 10 (4, 3), code 11 (4, 3)

未合併記憶體,行4列4,編碼0(4,4)、編碼2(4,4)、編碼3(4,4)、編碼4(4,4)、編碼5(4,4)、編碼6(4,4)、編碼7(4,4)、編碼8(4,4)、編碼9(4,4)、編碼10(4,4)、編碼11(4,4)Unconsolidated memory, row 4, column 4, code 0 (4, 4), code 2 (4, 4), code 3 (4, 4), code 4 (4, 4), code 5 (4, 4), Code 6 (4, 4), code 7 (4, 4), code 8 (4, 4), code 9 (4, 4), code 10 (4, 4), code 11 (4, 4)

未合併記憶體,行4列5,編碼1(4,5)、編碼2(4,5)、編碼3(4,5)、編碼5(4,5)、編碼6(4,5)、編碼7(4,5)、編碼8(4,5)、編碼10(4,5)、編碼11(4,5)Unconsolidated memory, row 4 column 5, code 1 (4, 5), code 2 (4, 5), code 3 (4, 5), code 5 (4, 5), code 6 (4, 5), Code 7 (4, 5), code 8 (4, 5), code 10 (4, 5), code 11 (4, 5)

未合併記憶體,行5列0,編碼0(5,0)、編碼1(5,0)、編碼2(5,0)、編碼3(5,0)、編碼4(5,0)、編碼5(5,0)、編碼6(5,0)、編碼7(5,0)、編碼8(5,0)、編碼9(5,0)、編碼10(5,0)、編碼11(5,0)Uncombined memory, row 5 column 0, code 0 (5,0), code 1 (5,0), code 2 (5,0), code 3 (5,0), code 4 (5,0), Encoding 5 (5,0), encoding 6 (5,0), encoding 7 (5,0), encoding 8 (5,0), encoding 9 (5,0), encoding 10 (5,0), encoding 11 (5,0)

未合併記憶體,行5列1,編碼1(5,1)、編碼2(5,1)、編碼3(5,1)、編碼4(5,1)、編碼5(5,1)、編碼6(5,1)、編碼7(5,1)、編碼8(5,1)、編碼9(5,1)、編碼10(5,1)、編碼11(5,1)Unconsolidated memory, row 5 column 1, code 1 (5, 1), code 2 (5, 1), code 3 (5, 1), code 4 (5, 1), code 5 (5, 1), Code 6 (5, 1), code 7 (5, 1), code 8 (5, 1), code 9 (5, 1), code 10 (5, 1), code 11 (5, 1)

未合併記憶體,行5列2,編碼1(5,2)、編碼2(5,2)、編碼3(5,2)、編碼5(5,2)、編碼6(5,2)、編碼7(5,2)、編碼8(5,2)、編碼9(5,2)、編碼10(5,2)、編碼11(5,2)Unconsolidated memory, row 5 column 2, code 1 (5, 2), code 2 (5, 2), code 3 (5, 2), code 5 (5, 2), code 6 (5, 2), Code 7 (5, 2), code 8 (5, 2), code 9 (5, 2), code 10 (5, 2), code 11 (5, 2)

未合併記憶體,行5列4、編碼0(5,4)、編碼1(5,4)、編碼2(5,4)、編碼3(5,4)、編碼5(5,4)、編碼6(5,4)、編碼7(5,4)、編碼9(5,4)、編碼10(5,4)、編碼11(5,4)Uncombined memory, row 5 column 4, code 0 (5, 4), code 1 (5, 4), code 2 (5, 4), code 3 (5, 4), code 5 (5, 4), Code 6 (5, 4), code 7 (5, 4), code 9 (5, 4), code 10 (5, 4), code 11 (5, 4)

未合併記憶體,行5列6、編碼1(5,6)、編碼2(5,6)、編碼3(5,6)、編碼5(5,6)、編碼6(5,6)、編碼7(5,6)、編碼8(5,6)、編碼9(5,6)、編碼11(5,6)Uncombined memory, row 5 column 6, code 1 (5, 6), code 2 (5, 6), code 3 (5, 6), code 5 (5, 6), code 6 (5, 6), Code 7 (5, 6), code 8 (5, 6), code 9 (5, 6), code 11 (5, 6)

未合併記憶體,行5列8,編碼0(5,8)、編碼1(5,8)、編碼2(5,8)、編碼3(5,8)、編碼4(5,8)、編碼7(5,8)、編碼8(5,8)、編碼11(5,8)Unconsolidated memory, row 5, column 8, encoding 0 (5, 8), code 1 (5, 8), code 2 (5, 8), code 3 (5, 8), code 4 (5, 8), Code 7 (5, 8), code 8 (5, 8), code 11 (5, 8)

合併記憶體,編碼0(11,8)、編碼1(2,5)、編碼3(2,5)、編碼4(11,8)、編碼6(2,5)、編碼7(2,5)、編碼8(11,8)、編碼10(2,5)、編碼11(2,5)Merge memory, code 0 (11, 8), code 1 (2, 5), code 3 (2, 5), code 4 (11, 8), code 6 (2, 5), code 7 (2, 5) ), code 8 (11, 8), code 10 (2, 5), code 11 (2, 5)

合併記憶體,編碼0(8,3)、編碼1(1,3)、編碼2(1,3)、編碼3(1,3)、編碼4(8,3),、編碼5(1,3)、編碼6(1,3)、編碼7(1,3)、編碼8(1,3)、編碼9(1,3)、編碼10(1,3)、編碼11(1,3)Merge memory, code 0 (8, 3), code 1 (1, 3), code 2 (1, 3), code 3 (1, 3), code 4 (8, 3), code 5 (1, 3), code 6 (1, 3), code 7 (1, 3), code 8 (1, 3), code 9 (1, 3), code 10 (1, 3), code 11 (1, 3)

合併記憶體,編碼0(4,19)、編碼1(4,19)、編碼2(4,19)、編碼3(3,19)、編碼4(4,19)、編碼5(4,19)、編碼6(4,19)、編碼7(3,19)、編碼8(4,19)、編碼9(4,19)、編碼10(4,19)Merge memory, code 0 (4,19), code 1 (4,19), code 2 (4,19), code 3 (3,19), code 4 (4,19), code 5 (4,19 ), code 6 (4, 19), code 7 (3, 19), code 8 (4, 19), code 9 (4, 19), code 10 (4, 19)

合併記憶體,編碼0(10,0)、編碼1(7,2)、編碼2(4,17)、編碼3(3,17)、編碼4(10,0)、編碼5(7,2)、編碼6(3,17)、編碼8(10,0)、 編碼9(7,2)、編碼10(3,17)、編碼11(3,17)Merge memory, code 0 (10,0), code 1 (7,2), code 2 (4,17), code 3 (3,17), code 4 (10,0), code 5 (7,2 ), code 6 (3, 17), code 8 (10, 0), Code 9 (7, 2), code 10 (3, 17), code 11 (3, 17)

合併記憶體,編碼0(9,0)、編碼1(6,1)、編碼3(0,20)、編碼4(9,0)、編碼5(6,1)、編碼6(5,7)、編碼7(0,20)、編碼8(9,0)、編碼9(6,1)、編碼10(4,11)、編碼11(0,20)Merge memory, code 0 (9,0), code 1 (6,1), code 3 (0,20), code 4 (9,0), code 5 (6,1), code 6 (5,7 ), code 7 (0, 20), code 8 (9, 0), code 9 (6, 1), code 10 (4, 11), code 11 (0, 20)

合併記憶體,編碼0(6,18)、編碼1(6,18)、編碼2(2,18)、編碼3(2,18)、編碼4(6,18)、編碼5(6,18)、編碼6(2,18)、編碼7(2,18)、編碼8(6,18)、編碼9(6,18)、編碼10(2,18)、編碼11(2,18)Merge memory, code 0 (6, 18), code 1 (6, 18), code 2 (2, 18), code 3 (2, 18), code 4 (6, 18), code 5 (6, 18) ), code 6 (2, 18), code 7 (2, 18), code 8 (6, 18), code 9 (6, 18), code 10 (2, 18), code 11 (2, 18)

合併記憶體,編碼0(4,20)、編碼1(4,20)、編碼2(4,20)、編碼3(1,20)、編碼4(4,20)、編碼5(4,20)、編碼6(4,20)、編碼7(1,20)、編碼8(4,20)、編碼9(4,20)、編碼10(4,20)、編碼11(1,20)Merge memory, code 0 (4, 20), code 1 (4, 20), code 2 (4, 20), code 3 (1, 20), code 4 (4, 20), code 5 (4, 20) ), code 6 (4, 20), code 7 (1, 20), code 8 (4, 20), code 9 (4, 20), code 10 (4, 20), code 11 (1, 20)

合併記憶體,編碼0(7,0)、編碼1(7,0)、編碼2(0,18)、編碼3(0,18)、編碼4(7,0)、編碼5(7,0)、編碼6(0,18)、編碼8(7,0)、編碼9(7,0)、編碼10(0,18)、編碼11(0,18)Merge memory, code 0 (7,0), code 1 (7,0), code 2 (0,18), code 3 (0,18), code 4 (7,0), code 5 (7,0 ), code 6 (0, 18), code 8 (7, 0), code 9 (7, 0), code 10 (0, 18), code 11 (0, 18)

合併記憶體,編碼0(11,13)、編碼1(7,13)、編碼3(3,13)、編碼4(11,13)、編碼6(3,13)、編碼7(3,13)、編碼8(11,13)、編碼9(7,13)、編碼10(3,13)、編碼11(3,13)Merge memory, code 0 (11, 13), code 1 (7, 13), code 3 (3, 13), code 4 (11, 13), code 6 (3, 13), code 7 (3, 13 ), code 8 (11, 13), code 9 (7, 13), code 10 (3, 13), code 11 (3, 13)

合併記憶體,編碼0(8,0)、編碼1(7,1)、編碼2(2,16)、編碼3(2,16),編碼4(8,0)、編碼5(7,1)、編碼6(2,16)、編碼7(2,16)、編碼8(8,0)、編碼9(7,1)、編碼10(2,16)、編碼11(2,16)Merge memory, code 0 (8,0), code 1 (7,1), code 2 (2,16), code 3 (2,16), code 4 (8,0), code 5 (7,1 ), code 6 (2, 16), code 7 (2, 16), code 8 (8, 0), code 9 (7, 1), code 10 (2, 16), code 11 (2, 16)

合併記憶體,編碼0(11,0)、編碼1(5,3)、編碼2(5,3)、編碼3(2,19)、編碼4(11,0)、編碼5(5,3)、編碼6(5,3)、編碼8(11,0)、編碼9(5,3)、編碼10(5,3)、編碼11(2,19)Merge memory, code 0 (11,0), code 1 (5,3), code 2 (5,3), code 3 (2,19), code 4 (11,0), code 5 (5,3 ), code 6 (5, 3), code 8 (11, 0), code 9 (5, 3), code 10 (5, 3), code 11 (2, 19)

合併記憶體,編碼0(6,17)、編碼1(6,17)、編碼3(2,17)、編碼4(6,17)、編碼5(6,17)、編碼6(4,16)、編碼7(2,17)、編碼8(6,17)、編碼9(6,17)、編碼10(2,17)、編碼11(2,17)Merge memory, code 0 (6, 17), code 1 (6, 17), code 3 (2, 17), code 4 (6, 17), code 5 (6, 17), code 6 (4, 16 ), code 7 (2, 17), code 8 (6, 17), code 9 (6, 17), code 10 (2, 17), code 11 (2, 17)

合併記憶體,編碼0(4,0)、編碼1(4,0)、編碼2(4,0)、編碼3(1,19)、編碼4(4,0)、編碼5(4,0)、編碼6(4,0)、編碼7(1,19)、編碼8(4,0)、編碼9(4,0)、編碼10(4,0)、編碼11(1,19)Merge memory, code 0 (4,0), code 1 (4,0), code 2 (4,0), code 3 (1,19), code 4 (4,0), code 5 (4,0 ), code 6 (4,0), code 7 (1,19), code 8 (4,0), code 9 (4,0), code 10 (4,0), code 11 (1,19)

合併記憶體,編碼0(8,16)、編碼1(0,16)、編碼2(5,16)、編碼3(0,16)、編碼4(8,16)、編碼5(0,16)、編碼6(0,16)、編碼7(0,16)、編碼8(8,16)、編碼9(0,16)、編碼10(5,16)、編碼11(0,16)Merge memory, code 0 (8, 16), code 1 (0, 16), code 2 (5, 16), code 3 (0, 16), code 4 (8, 16), code 5 (0, 16 ), code 6 (0, 16), code 7 (0, 16), code 8 (8, 16), code 9 (0, 16), code 10 (5, 16), code 11 (0, 16)

合併記憶體,編碼0(5,19)、編碼1(5,19)、編碼2(5,19)、編碼3(0,19)、編碼4(5,19)、編碼5(5,19)、編碼6(5,19)、編碼7(0,19)、編碼8(5,19)、編碼9(5,19)、編碼10(5,19)、編碼11(0,19)Merge memory, code 0 (5,19), code 1 (5,19), code 2 (5,19), code 3 (0,19), code 4 (5,19), code 5 (5,19 ), code 6 (5, 19), code 7 (0, 19), code 8 (5, 19), code 9 (5, 19), code 10 (5, 19), code 11 (0, 19)

合併記憶體,編碼0(7,17)、編碼1(7,17)、編碼2(1,17)、編碼3(1,17)、編碼4(7,17)、編碼5(7,17)、編碼6(1,17)、編碼7(1,17)、編碼8(7,17)、編碼9(7,17)、編碼11(1,17)Merge memory, code 0 (7, 17), code 1 (7, 17), code 2 (1, 17), code 3 (1, 17), code 4 (7, 17), code 5 (7, 17) ), code 6 (1, 17), code 7 (1, 17), code 8 (7, 17), code 9 (7, 17), code 11 (1, 17)

合併記憶體,編碼0(5,12)、編碼1(6,5)、編碼2(5,12)、編碼3(2,12)、編碼4(5,12)、編碼5(5,12)、編碼6(2,12)、編碼7(2,12)、編碼8(5,12)、編碼9(2,12)、編碼10(2,12)、編碼11(2,12)Merge memory, code 0 (5, 12), code 1 (6, 5), code 2 (5, 12), code 3 (2, 12), code 4 (5, 12), code 5 (5, 12) ), code 6 (2, 12), code 7 (2, 12), code 8 (5, 12), code 9 (2, 12), code 10 (2, 12), code 11 (2, 12)

合併記憶體,編碼0(9,15)、編碼1(7,15)、編碼3(2,15)、編碼4(9,15)、編碼5(7,15)、編碼6(5,15)、編碼7(2,15)、編碼8(9,15)、編碼9(7,15)、編碼10(5,15)、編碼11(2,15)Merge memory, code 0 (9, 15), code 1 (7, 15), code 3 (2, 15), code 4 (9, 15), code 5 (7, 15), code 6 (5, 15 ), code 7 (2, 15), code 8 (9, 15), code 9 (7, 15), code 10 (5, 15), code 11 (2, 15)

合併記憶體,編碼0(11,12)、編碼1(7,6)、編碼2(4,12)、編碼3(3,1S)、編碼4(11,12)、編碼5(7,6)、編碼6(4,12)、編碼7(3,18)、編碼8(11,12)、編碼9(4,12)、編碼10(4,12)、編碼11(3,18)Merge memory, code 0 (11, 12), code 1 (7, 6), code 2 (4, 12), code 3 (3, 1S), code 4 (11, 12), code 5 (7, 6 ), code 6 (4, 12), code 7 (3, 18), code 8 (11, 12), code 9 (4, 12), code 10 (4, 12), code 11 (3, 18)

合併記憶體,編碼0(8,15)、編碼1(4,15)、編碼2(3,15)、編碼3(3,15)、編碼4(8,15)、編碼6(3,15)、編碼7(3,15)、編碼8(8,15)、編碼9(6,9)、編碼10(4,15)、編碼11(3,15)Merge memory, code 0 (8, 15), code 1 (4, 15), code 2 (3, 15), code 3 (3, 15), code 4 (8, 15), code 6 (3, 15 ), code 7 (3, 15), code 8 (8, 15), code 9 (6, 9), code 10 (4, 15), code 11 (3, 15)

合併記憶體,編碼0(9,2)、編碼1(6,12)、編碼4(9,1)、編碼5(6,12)、編碼6(5,13)、編碼7(1,12)、編碼8(10,2)、編碼9(6,12)、編碼10(1,12)、編碼11(1,12)Merge memory, code 0 (9, 2), code 1 (6, 12), code 4 (9, 1), code 5 (6, 12), code 6 (5, 13), code 7 (1, 12) ), code 8 (10, 2), code 9 (6, 12), code 10 (1, 12), code 11 (1, 12)

合併記憶體,編碼0(6,0)、編碼1(6,0)、編碼2(0,17)、編碼3(0,17)、編碼4(6,0)、編碼5(6,0)、編碼6(5,17)、編碼7(0,17)、編碼8(6,0)、編碼9(6,0)、編碼10(5,17)Merge memory, code 0 (6,0), code 1 (6,0), code 2 (0,17), code 3 (0,17), code 4 (6,0), code 5 (6,0 ), code 6 (5, 17), code 7 (0, 17), code 8 (6, 0), code 9 (6, 0), code 10 (5, 17)

合併記憶體,編碼0(8,4)、編碼1(3,12)、編碼2(3,12)、編碼 3(3,12)、編碼4(8,4)、編碼5(3,12)、編碼7(3,12)、編碼8(8,4)、編碼9(7,14)Merge memory, code 0 (8, 4), code 1 (3, 12), code 2 (3, 12), code 3 (3, 12), code 4 (8, 4), code 5 (3, 12), code 7 (3, 12), code 8 (8, 4), code 9 (7, 14)

合併記憶體,編碼0(9,4)、編碼1(1,15)、編碼2(1,15)、編碼3(1,15)、編碼4(9,4)、編碼5(1,15)、編碼6(1,15)、編碼7(1,19)、編碼8(9,4)、編碼9(1,15),編碼11(1,15)Merge memory, code 0 (9, 4), code 1 (1, 15), code 2 (1, 15), code 3 (1, 15), code 4 (9, 4), code 5 (1, 15 ), code 6 (1, 15), code 7 (1, 19), code 8 (9, 4), code 9 (1, 15), code 11 (1, 15)

合併記憶體,編碼0(0,12)、編碼1(0,12)、編碼2(5,10)、編碼3(0,12)、編碼4(0,12)、編碼6(0,12)、編碼7(0,12)、編碼8(0,12)、編碼9(5,10)、編碼10(5,10)、編碼11(0,12)Merge memory, code 0 (0, 12), code 1 (0, 12), code 2 (5, 10), code 3 (0, 12), code 4 (0, 12), code 6 (0, 12) ), code 7 (0, 12), code 8 (0, 12), code 9 (5, 10), code 10 (5, 10), code 11 (0, 12)

合併記憶體,編碼0(10,4)、編碼2(0,15)、編碼3(0,15)、編碼4(10,4)、編碼5(0,15)、編碼7(0,15)、編碼8(10,4)、編碼9(0,15)、編碼10(0,15)Merge memory, code 0 (10, 4), code 2 (0, 15), code 3 (0, 15), code 4 (10, 4), code 5 (0, 15), code 7 (0, 15 ), code 8 (10, 4), code 9 (0, 15), code 10 (0, 15)

合併記憶體,編碼0(5,18)、編碼1(5,18)、編碼2(5,18)、編碼3(1,18)、編碼4(5,18)、編碼5(5,18)、編碼6(5,18)、編碼7(1,18)、編碼8(5,18)、編碼9(5,18)、編碼10(5,18)Merge memory, code 0 (5,18), code 1 (5,18), code 2 (5,18), code 3 (1,18), code 4 (5,18), code 5 (5,18 ), code 6 (5, 18), code 7 (1, 18), code 8 (5, 18), code 9 (5, 18), code 10 (5, 18)

合併記憶體,編碼0(10,13)、編碼1(6,7)、編碼2(1,13)、編碼3(1,13)、編碼4(10,13)、編碼5(1,13)、編碼6(1,13)、編碼7(1,13)、編碼8(10,13)、編碼9(6,7)、編碼11(1,13)Merge memory, code 0 (10, 13), code 1 (6, 7), code 2 (1, 13), code 3 (1, 13), code 4 (10, 13), code 5 (1, 13 ), code 6 (1, 13), code 7 (1, 13), code 8 (10, 13), code 9 (6, 7), code 11 (1, 13)

合併記憶體,編碼0(7,16)、編碼1(7,16)、編碼3(1,16)、編碼4(7,16)、編碼5(7,16)、編碼8(7,16)、編碼9(7,16)、編碼10(1,16)Merge memory, code 0 (7, 16), code 1 (7, 16), code 3 (1, 16), code 4 (7, 16), code 5 (7, 16), code 8 (7, 16 ), code 9 (7, 16), code 10 (1, 16)

合併記憶體,編碼0(11,4)、編碼1(2,13)、編碼2(2,13)、編碼3(2,13)、編碼4(11,4)、編碼5(2,13)、編碼7(2,13)、編碼8(11,4)、編碼9(2,13)Merge memory, code 0 (11, 4), code 1 (2, 13), code 2 (2, 13), code 3 (2, 13), code 4 (11, 4), code 5 (2, 13 ), code 7 (2, 13), code 8 (11, 4), code 9 (2, 13)

合併記憶體,編碼0(9,8)、編碼1(3,16)、編碼2(3,16)、編碼3(3,16)、編碼4(10,5)、編碼5(3,16)、編碼7(3,16)、編碼8(9,8)、編碼9(3,16)、編碼11(3,16)Merge memory, code 0 (9, 8), code 1 (3, 16), code 2 (3, 16), code 3 (3, 16), code 4 (10, 5), code 5 (3, 16 ), code 7 (3, 16), code 8 (9, 8), code 9 (3, 16), code 11 (3, 16)

合併記憶體,編碼0(10,1)、編碼1(4,13)、編碼3(3,7)、編碼4(10,1)、編碼5(4,13)、編碼6(3,7)、編碼7(3,7)、編碼8(8,1)、編碼9(4,13)、編碼10(4,13)、編碼11(3,7)Merge memory, code 0 (10, 1), code 1 (4, 13), code 3 (3, 7), code 4 (10, 1), code 5 (4, 13), code 6 (3, 7 ), code 7 (3, 7), code 8 (8, 1), code 9 (4, 13), code 10 (4, 13), code 11 (3, 7)

合併記憶體,編碼0(10,14)、編碼1(6,14)、編碼3(2,14)、編碼4(10,1)、編碼5(6,14)、編碼6(2,14)、編碼7(2,14)、編碼8(10,14)、編碼9(2,14)、編碼11(2,14)Merge memory, code 0 (10, 14), code 1 (6, 14), code 3 (2, 14), code 4 (10, 1), code 5 (6, 14), code 6 (2, 14 ), code 7 (2, 14), code 8 (10, 14), code 9 (2, 14), code 11 (2, 14)

合併記憶體,編碼0(11,11)、編碼1(4,7)、編碼2(4,7)、編碼3(3,11)、編碼4(3,11)、編碼5(4,7)、編碼6(3,11)、編碼7(3,11)、編碼8(3,11)、編碼9(3,11)、編碼11(3,11)Merge memory, code 0 (11, 11), code 1 (4, 7), code 2 (4, 7), code 3 (3, 11), code 4 (3, 11), code 5 (4, 7 ), code 6 (3, 11), code 7 (3, 11), code 8 (3, 11), code 9 (3, 11), code 11 (3, 11)

合併記憶體,編碼0(9,14)、編碼2(4,14)、編碼3(1,14)、編碼4(9,14)、編碼5(4,14)、編碼6(4,14)、編碼7(1,14)、編碼8(9,14)、編碼10(1,14)Merge memory, code 0 (9, 14), code 2 (4, 14), code 3 (1, 14), code 4 (9, 14), code 5 (4, 14), code 6 (4, 14 ), code 7 (1, 14), code 8 (9, 14), code 10 (1, 14)

合併記憶體,編碼0(2,11)、編碼1(2,11)、編碼2(2,11)、編碼3(2,11)、編碼4(9,11)、編碼5(2,11)、編碼7(2,11)、編碼8(6,11)Merge memory, code 0 (2, 11), code 1 (2, 11), code 2 (2, 11), code 3 (2, 11), code 4 (9, 11), code 5 (2, 11 ), code 7 (2, 11), code 8 (6, 11)

合併記憶體,編碼0(11,5)、編碼1(0,14)、編碼2(5,14)、編碼3(0,14),編碼4(9,6),、編碼5(5,14)、編碼6(0,14)、編碼7(0,14)、編碼8(9,5)、編碼9(5,14)、編碼10(0,14)、編碼11(0,14)Merge memory, code 0 (11, 5), code 1 (0, 14), code 2 (5, 14), code 3 (0, 14), code 4 (9, 6), code 5 (5, 14), code 6 (0, 14), code 7 (0, 14), code 8 (9, 5), code 9 (5, 14), code 10 (0, 14), code 11 (0, 14)

合併記憶體,編碼0(7,11)、編碼1(7,11)、編碼2(0,13)、編碼3(0,13)、編碼4(11,6)、編碼5(7,11)、編碼7(0,13)、編碼8(11,6)、編碼9(7,11)、編碼10(0,13)、編碼11(0,13)Merge memory, code 0 (7, 11), code 1 (7, 11), code 2 (0, 13), code 3 (0, 13), code 4 (11, 6), code 5 (7, 11 ), code 7 (0, 13), code 8 (11, 6), code 9 (7, 11), code 10 (0, 13), code 11 (0, 13)

合併記憶體,編碼0(6,4)、編碼1(3,14)、編碼2(3,14)、編碼3(3,14)、編碼4(6,4)、編碼5(6,4)、編碼7(3,14)、編碼8(6,4)、編碼10(3,14)、編碼11(3,14)Merge memory, code 0 (6, 4), code 1 (3, 14), code 2 (3, 14), code 3 (3, 14), code 4 (6, 4), code 5 (6, 4 ), code 7 (3, 14), code 8 (6, 4), code 10 (3, 14), code 11 (3, 14)

合併記憶體,編碼0(10,6)、編碼1(5,11)、編碼2(3,10)、編碼3(3,10)、編碼4(11,7)、編碼5(7,3)、編碼6(5,11)、編碼7(3,10)、編碼8(7,3)、編碼9(7,3)、編碼10(5,11)、編碼11(3,10)Merge memory, code 0 (10,6), code 1 (5,11), code 2 (3,10), code 3 (3,10), code 4 (11,7), code 5 (7,3 ), code 6 (5, 11), code 7 (3, 10), code 8 (7, 3), code 9 (7, 3), code 10 (5, 11), code 11 (3, 10)

合併記憶體,編碼0(7,10)、編碼1(6,10)、編碼3(0,10)、編碼4(6,10)、編碼6(0,10)、編碼7(0,10)、編碼8(11,10)、編碼9(6,10)Merge memory, code 0 (7,10), code 1 (6,10), code 3 (0,10), code 4 (6,10), code 6 (0,10), code 7 (0,10 ), code 8 (11, 10), code 9 (6, 10)

合併記憶體,編碼0(10,7)、編碼2(1,11)、編碼3(1,11)、編碼4(7,5)、編碼5(7,5)、編碼6(1,11)、編碼7(1,11)、編碼8(7,7)、編碼9(1,11)、編碼11(1,11)Merge memory, code 0 (10,7), code 2 (1,11), code 3 (1,11), code 4 (7,5), code 5 (7,5), code 6 (1,11 ), code 7 (1, 11), code 8 (7, 7), code 9 (1, 11), code 11 (1, 11)

合併記憶體,編碼0(2,10)、編碼2(2,10)、編碼3(2,10)、編碼4(2,10)、編碼5(2,10)、編碼6(2,10)、編碼7(2,10)、編碼8(10,(3,6)、編碼4(8,8)、編碼6(3,6)、編碼7(3,6)、編碼8(8,8)、編碼9(3,6)、編碼10(3,6)、編碼11(3,6)Combined memory, code 0 (2, 10), code 2 (2, 10), code 3 (2, 10), code 4 (2, 10), code 5 (2, 10), code 6 (2, 10) ), code 7 (2, 10), code 8 (10, (3, 6), code 4 (8, 8), code 6 (3, 6), code 7 (3, 6), code 8 (8, 8), code 9 (3, 6), code 10 (3, 6), code 11 (3, 6)

合併記憶體,編碼1(2,9)、編碼2(5,5)、編碼3(2,9)、編碼4(5,5)、編碼6(5,5)、編碼7(2,9)、編碼8(2,9)、編碼9(5,5)、編碼10(5,5),、編碼11(2,9)Merge memory, code 1 (2, 9), code 2 (5, 5), code 3 (2, 9), code 4 (5, 5), code 6 (5, 5), code 7 (2, 9 ), code 8 (2, 9), code 9 (5, 5), code 10 (5, 5), code 11 (2, 9)

合併記憶體,編碼0(6,3)、編碼1(6,3)、編碼2(0,6)、編碼3(0,6)、編碼4(6,3)、編碼5(6,3)、編碼6(0,6)、編碼7(0,6)、編碼9(6,3)、編碼10(0,6)、編碼11(0,6)Merge memory, code 0 (6, 3), code 1 (6, 3), code 2 (0, 6), code 3 (0, 6), code 4 (6, 3), code 5 (6, 3 ), code 6 (0, 6), code 7 (0, 6), code 9 (6, 3), code 10 (0, 6), code 11 (0, 6)

合併記憶體,編碼0(4,8)、編碼1(2,7)、編碼2(2,7)、編碼3(2,7)、編碼4(4,8)、編碼5(2,7)、編碼6(4,8)、編碼7(2,7)、編碼8(4,8)、編碼10(2,7)、編碼11(2,7)Merge memory, code 0 (4, 8), code 1 (2, 7), code 2 (2, 7), code 3 (2, 7), code 4 (4, 8), code 5 (2, 7) ), code 6 (4, 8), code 7 (2, 7), code 8 (4, 8), code 10 (2, 7), code 11 (2, 7)

合併記憶體,編碼0(7,8)、編碼1(7,8)、編碼3(2,6)、編碼4(7,8)、編碼5(7,8)、編碼6(2,6)、編碼7(2,6)、編碼8(7,8)、編碼9(2,6)、編碼10(2,6)編碼11(2,6)Merge memory, code 0 (7,8), code 1 (7,8), code 3 (2,6), code 4 (7,8), code 5 (7,8), code 6 (2,6 ), code 7 (2, 6), code 8 (7, 8), code 9 (2, 6), code 10 (2, 6) code 11 (2, 6)

合併記憶體,編碼0(7,4)、編碼1(7,4)、編碼3(3,9)、編碼4(7,4)、編碼5(3,9)、編碼6(3,9)、編碼7(3,9)、編碼8(7,4)、編碼9(7,4)、編碼10(3,9)、編碼11(3,9)Merge memory, code 0 (7, 4), code 1 (7, 4), code 3 (3, 9), code 4 (7, 4), code 5 (3, 9), code 6 (3, 9 ), code 7 (3, 9), code 8 (7, 4), code 9 (7, 4), code 10 (3, 9), code 11 (3, 9)

合併記憶體,編碼0(6,8)、編碼1(0,5)、編碼2(0,5)、編碼3(0,5)、編碼4(6,8)、編碼5(6,8)、編碼6(0,5)、編碼7(0,5)、編碼8(6,8)、編碼9(6,8)、編碼10(0,5)、編碼11(0,5)Merge memory, code 0 (6, 8), code 1 (0, 5), code 2 (0, 5), code 3 (0, 5), code 4 (6, 8), code 5 (6, 8 ), code 6 (0, 5), code 7 (0, 5), code 8 (6, 8), code 9 (6, 8), code 10 (0, 5), code 11 (0, 5)

合併記憶體,編碼0(10,8)、編碼1(0,1)、編碼2(0,1)、編碼3(0,1)、編碼4(10,8)、編碼5(0,1)、編碼6(0,1)、編碼7(0,1)、編碼8(10,8)、編碼9(0,1)、編碼10(0,1),編碼11(0,1)Merge memory, code 0 (10,8), code 1 (0,1), code 2 (0,1), code 3 (0,1), code 4 (10,8), code 5 (0,1 ), code 6 (0, 1), code 7 (0, 1), code 8 (10, 8), code 9 (0, 1), code 10 (0, 1), code 11 (0, 1)

600‧‧‧LDPC解碼功能600‧‧‧LDPC decoding function

610‧‧‧模擬前端(AFE)610‧‧‧Analog Front End (AFE)

611‧‧‧離散時間信號611‧‧‧Discrete time signal

620‧‧‧度量生成器620‧‧‧Metric Generator

621‧‧‧位元度量和/或對數似然比(LLR)621‧‧‧ bit metric and/or log likelihood ratio (LLR)

630‧‧‧位元引擎630‧‧‧ bit engine

632‧‧‧軟資訊632‧‧‧Soft Information

635‧‧‧迭代解碼處理635‧‧‧ Iterative decoding processing

640‧‧‧校驗引擎640‧‧‧Check engine

641‧‧‧校驗邊消息641‧‧‧Check side messages

650‧‧‧硬限幅器(hard limiter)650‧‧‧hard limiter

651‧‧‧硬/最佳估計值651‧‧‧hard/best estimate

660‧‧‧校正子計算器660‧‧‧Calculator

Claims (10)

一種解碼器,用於解碼低密度奇偶校驗編碼信號,其特徵在於,所述解碼器包括:多個記憶體;多個位元引擎,且所述多個位元引擎中的每一個位元引擎都用於連接到所述多個記憶體中的至少一個記憶體;多個校驗引擎,所述多個校驗引擎中的每一個校驗引擎都用於連接到所述多個記憶體中的至少一個記憶體;以及多個複用器,用於:在第一低密度奇偶校驗編碼信號的解碼處理過程中,選擇性地將所述多個位元引擎和所述多個校驗引擎連接到所述多個記憶體中的第一選定記憶體;以及在第二低密度奇偶校驗編碼信號的解碼處理過程中,選擇性地將所述多個位元引擎和所述多個校驗引擎連接到所述多個記憶體中的第二選定記憶體;且其中:所述多個記憶體包括預定數量的記憶體,所述預定數量的記憶體用於表示對應多個低密度奇偶校驗編碼的多個低密度奇偶校驗矩陣中的多個非零子矩陣;所述解碼器用於解碼所述第一低密度奇偶校驗編碼信號,所述第一低密度奇偶校驗編碼信號對應於所述多個低密度奇偶校驗矩陣的第一低密度奇偶校驗矩陣,從而生成在第一低密度奇偶校驗編碼信號內被編碼的位元的最佳估計;以及所述解碼器用於解碼所述第二低密度奇偶校驗編碼信號,所述第二低密度奇偶校驗編碼信號對應於所述多個低密度奇偶校驗矩陣的第二低密度奇偶校驗矩陣,從而生成在第二低密度奇偶校驗編碼信號內被編碼的位元的最佳估計。 A decoder for decoding a low density parity check encoded signal, wherein the decoder comprises: a plurality of memories; a plurality of bit engines, and each of the plurality of bit engines An engine is used to connect to at least one of the plurality of memories; a plurality of verification engines, each of the plurality of verification engines for connecting to the plurality of memories And at least one memory; and a plurality of multiplexers for selectively selecting the plurality of bit engines and the plurality of schools during a decoding process of the first low density parity check coded signal The engine is coupled to the first selected one of the plurality of memories; and selectively, the plurality of bit engines and the plurality of bits during the decoding process of the second low density parity check encoded signal a check engine coupled to the second selected one of the plurality of memories; and wherein: the plurality of memories includes a predetermined number of memories, the predetermined number of memories being used to indicate corresponding plurality of low Multiple low density parity encoding a plurality of non-zero sub-matrices in the parity check matrix; the decoder is configured to decode the first low-density parity-check encoded signal, the first low-density parity-check encoded signal corresponding to the plurality of low a first low density parity check matrix of the density parity check matrix to generate a best estimate of the bit encoded within the first low density parity check encoded signal; and the decoder for decoding the second low a density parity check coded signal, the second low density parity check coded signal corresponding to a second low density parity check matrix of the plurality of low density parity check matrices, thereby generating a second low density parity check The best estimate of the encoded bit within the encoded signal. 如申請專利範圍第1項所述的解碼器,其中,通過彼此疊加對 應多個低密度奇偶校驗編碼的多個低密度奇偶校驗矩陣中的多個非零子矩陣,確定所述多個記憶體內的一部分記憶體。 The decoder according to claim 1, wherein the decoders are superimposed on each other A portion of the memory in the plurality of memories is determined by a plurality of non-zero sub-matrices of the plurality of low-density parity check matrices encoded by the plurality of low-density parity check codes. 如申請專利範圍第1項所述的解碼器,其中,通過對對應多個低密度奇偶校驗編碼的多個低密度奇偶校驗矩陣中的多個非零子矩陣的疊加執行第一貪心、深度搜索,確定所述多個記憶體內的一部分記憶體。 The decoder of claim 1, wherein the first greedy is performed by superimposing a plurality of non-zero sub-matrices in the plurality of low-density parity check matrices corresponding to the plurality of low-density parity check codes, A depth search determines a portion of the memory in the plurality of memories. 如申請專利範圍第1項所述的解碼器,其中,通過對對應多個低密度奇偶校驗編碼的多個低密度奇偶校驗矩陣中的多個非零子矩陣的疊加執行第一貪心、深度搜索,確定所述多個記憶體內的一部分記憶體;且所述第一貪心、深度搜索至少部分考慮列仿射度量,所述列仿射度量表示所述第一低密度奇偶校驗矩陣中的列與所述第一低密度奇偶校驗矩陣中的至少另一列以及所述第二低密度奇偶校驗矩陣中的列的連通性。 The decoder of claim 1, wherein the first greedy is performed by superimposing a plurality of non-zero sub-matrices in the plurality of low-density parity check matrices corresponding to the plurality of low-density parity check codes, a depth search to determine a portion of the memory in the plurality of memories; and the first greedy, depth search at least partially considers a column affine metric, the column affine metric representing the first low density parity check matrix The column is connected to at least one other column of the first low density parity check matrix and the columns of the second low density parity check matrix. 如申請專利範圍第1項所述的解碼器,其中,所述通信設備內的多個記憶體的佈局基於合併模式,通過至少部分考慮列仿射度量生成所述合併模式,所述列仿射度量表示所述第一低密度奇偶校驗矩陣中的列與所述第一低密度奇偶校驗矩陣中的至少另一列以及所述第二低密度奇偶校驗矩陣中的列的連通性。 The decoder of claim 1, wherein the layout of the plurality of memories within the communication device is based on a merge mode, the merge mode being generated by at least partially considering a column affine metric, the column affine The metric represents connectivity of a column in the first low density parity check matrix to at least one other column of the first low density parity check matrix and a column in the second low density parity check matrix. 如申請專利範圍第1項所述的解碼器,其中,所述多個記憶體包括多個合併記憶體,所述多個合併記憶體中的一個合併記憶體對應所述第一低密度奇偶校驗矩陣中的第一非零子矩陣,也對應所述第二低密度奇偶校驗矩陣中的第二非零子矩陣。 The decoder of claim 1, wherein the plurality of memories comprise a plurality of merged memories, and one of the plurality of merged memories corresponds to the first low-density parity The first non-zero submatrix in the matrix also corresponds to the second non-zero submatrix in the second low density parity check matrix. 一種解碼器,用於解碼低密度奇偶校驗編碼信號,其特徵在於,所述解碼器包括:多個記憶體;多個位元引擎,且所述多個位元引擎中的每一個位元引擎都用於連接到所述多個記憶體中的至少一個記憶體; 多個校驗引擎,所述多個校驗引擎中的每一個校驗引擎都用於連接到所述多個記憶體中的至少一個記憶體;以及多個複用器,用於:當解碼第一低密度奇偶校驗編碼信號時,在位元節點處理的過程中,將所述多個位元引擎中的第一選定位元引擎連接到所述多個記憶體中的第一選定記憶體;當解碼所述第一低密度奇偶校驗編碼信號時,在校驗節點處理的過程中,將所述多個校驗引擎中的第一選定校驗引擎連接到所述多個記憶體中的所述第一選定記憶體;當解碼第二低密度奇偶校驗編碼信號時,在位元節點處理的過程中,將所述多個位元引擎中的第二選定位元引擎連接到所述多個記憶體中的第二選定記憶體;以及當解碼所述第二低密度奇偶校驗編碼信號時,在校驗節點處理的過程中,將所述多個校驗引擎中的第二選定校驗引擎連接到所述多個記憶體中的所述第二選定記憶體;其中:所述多個記憶體包括預定數量的記憶體,所述預定數量的記憶體用於表示對應多個低密度奇偶校驗編碼的多個低密度奇偶校驗矩陣中的多個非零子矩陣;所述解碼器用於解碼第一低密度奇偶校驗編碼信號,所述第一低密度奇偶校驗編碼信號對應於所述多個低密度奇偶校驗矩陣的第一低密度奇偶校驗矩陣,從而生成在第一低密度奇偶校驗編碼信號內被編碼的位元的最佳估計;以及所述解碼器用於解碼第二低密度奇偶校驗編碼信號,所述第二低密度奇偶校驗編碼信號對應於所述多個低密度奇偶校驗矩陣的第二低密度奇偶校驗矩陣,從而生成在第二低密度奇偶校驗編碼信號內被編碼的位元的最佳估計。 A decoder for decoding a low density parity check encoded signal, wherein the decoder comprises: a plurality of memories; a plurality of bit engines, and each of the plurality of bit engines An engine is used to connect to at least one of the plurality of memories; a plurality of check engines, each of the plurality of check engines being configured to connect to at least one of the plurality of memories; and a plurality of multiplexers for: when decoding The first low-density parity-check coded signal, in the processing of the bit node, connecting the first selected one of the plurality of bit-level engines to the first selected one of the plurality of memories When decoding the first low density parity check coded signal, connecting a first selected check engine of the plurality of check engines to the plurality of memorys during check node processing The first selected memory; when decoding the second low density parity check encoded signal, connecting the second selected positioning meta engine of the plurality of bit engines to the bit node processing a second selected one of the plurality of memories; and when decoding the second low density parity check coded signal, in a process of verifying node processing, the first of the plurality of check engines Two selected verification engines are connected to the plurality of memories The second selected memory; wherein: the plurality of memories comprise a predetermined number of memories, the predetermined number of memories being used to represent a plurality of low density parity checks corresponding to a plurality of low density parity check codes a plurality of non-zero sub-matrices in the matrix; the decoder is configured to decode the first low-density parity-check encoded signal, the first low-density parity-check encoded signal corresponding to the plurality of low-density parity check matrices a first low density parity check matrix to generate a best estimate of the bit encoded within the first low density parity check encoded signal; and the decoder for decoding the second low density parity check encoded signal, The second low density parity check coded signal corresponds to the second low density parity check matrix of the plurality of low density parity check matrices, thereby generating a bit encoded in the second low density parity check coded signal The best estimate. 如申請專利範圍第7項所述的解碼器,其中,所述多個位元引擎的所述第一選定位元引擎是所述多個位元引擎的所述第二選定位元引擎;以及所述多個校驗引擎的所述第一選定校驗引擎是所述多個校驗引擎的所述第二選定校驗引擎。 The decoder of claim 7, wherein the first selected positioning meta engine of the plurality of bit engines is the second selected positioning meta engine of the plurality of bit engines; The first selected verification engine of the plurality of verification engines is the second selected verification engine of the plurality of verification engines. 如申請專利範圍第7項所述的解碼器,其中,所述多個位元引擎的所述第一選定位元引擎是所述多個位元引擎的所有位元引擎;以及所述多個校驗引擎的所述第一選定校驗引擎是所述多個校驗引擎的所有校驗引擎。 The decoder of claim 7, wherein the first selected positioning meta engine of the plurality of bit engines is all bit engines of the plurality of bit engines; and the plurality of The first selected verification engine of the verification engine is all of the verification engines of the plurality of verification engines. 一種解碼器,用於解碼低密度奇偶校驗編碼信號,其特徵在於,所述解碼器包括:多個記憶體;多個位元引擎,且所述多個位元引擎中的每一個位元引擎都連接到所述多個記憶體中的至少一個記憶體;多個校驗引擎,所述多個校驗引擎中的每一個校驗引擎都連接到所述多個記憶體中的至少一個記憶體;以及多個複用器,用於:當解碼第一低密度奇偶校驗編碼信號時,在位元節點處理的過程中,將所述多個位元引擎連接到所述多個記憶體中的第一選定記憶體;當解碼所述第一低密度奇偶校驗編碼信號時,在校驗節點處理的過程中,將所述多個校驗引擎連接到所述多個記憶體中的所述第一選定記憶體;當解碼第二低密度奇偶校驗編碼信號時,在位元節點處理的過程中,將所述多個位元引擎連接到所述多個記憶體中的第二選定記憶體;當解碼所述第二低密度奇偶校驗編碼信號時,在校 驗節點處理的過程中,將所述多個校驗引擎連接到所述多個記憶體中的所述第二選定記憶體;當解碼第三低密度奇偶校驗編碼信號時,在位元節點處理的過程中,將所述多個位元引擎連接到所述多個記憶體中的第三選定記憶體;以及當解碼所述第三低密度奇偶校驗編碼信號時,在校驗節點處理的過程中,將所述多個校驗引擎連接到所述多個記憶體中的所述第三選定記憶體;其中:所述多個記憶體包括預定數量的記憶體,所述預定數量的記憶體用於表示對應多個低密度奇偶校驗編碼的多個低密度奇偶校驗矩陣中的多個非零子矩陣;所述解碼器用於解碼所述第一低密度奇偶校驗編碼信號,所述第一低密度奇偶校驗編碼信號對應於所述多個低密度奇偶校驗矩陣的第一低密度奇偶校驗矩陣,從而生成在第一低密度奇偶校驗編碼信號內被編碼的位元的最佳估計;所述解碼器用於解碼所述第二低密度奇偶校驗編碼信號,所述第二低密度奇偶校驗編碼信號對應於所述多個低密度奇偶校驗矩陣的第二低密度奇偶校驗矩陣,從而生成在第二低密度奇偶校驗編碼信號內被編碼的位元的最佳估計;以及所述解碼器用於解碼所述第三低密度奇偶校驗編碼信號,所述第三低密度奇偶校驗編碼信號對應於所述多個低密度奇偶校驗矩陣的第三低密度奇偶校驗矩陣,從而生成在第三低密度奇偶校驗編碼信號內被編碼的位元的最佳估計。 A decoder for decoding a low density parity check encoded signal, wherein the decoder comprises: a plurality of memories; a plurality of bit engines, and each of the plurality of bit engines An engine is coupled to at least one of the plurality of memories; a plurality of verification engines, each of the plurality of verification engines being coupled to at least one of the plurality of memories a memory; and a plurality of multiplexers for: connecting the plurality of bit engines to the plurality of memories during bit node processing during decoding of the first low density parity check encoded signal a first selected memory in the body; when decoding the first low density parity check coded signal, connecting the plurality of check engines to the plurality of memories during check node processing The first selected memory; when decoding the second low density parity check encoded signal, connecting the plurality of bit engines to the first of the plurality of memories during bit node processing Second selected memory; when decoding the second low When the parity of the coded signal, school During the processing of the node, the plurality of check engines are connected to the second selected one of the plurality of memories; when the third low density parity check coded signal is decoded, at the bit node In the process of processing, connecting the plurality of bit engines to a third selected one of the plurality of memories; and processing the check nodes when decoding the third low density parity check coded signals Connecting the plurality of verification engines to the third selected one of the plurality of memories; wherein: the plurality of memories comprises a predetermined number of memories, the predetermined number of The memory is configured to represent a plurality of non-zero sub-matrices in the plurality of low-density parity check matrices corresponding to the plurality of low-density parity check codes; the decoder is configured to decode the first low-density parity-check encoded signals, The first low density parity check encoded signal corresponds to a first low density parity check matrix of the plurality of low density parity check matrices to generate a bit encoded in the first low density parity check encoded signal Best estimate of yuan The decoder is configured to decode the second low density parity check encoded signal, and the second low density parity check encoded signal corresponds to a second low density parity check of the plurality of low density parity check matrices a matrix to generate a best estimate of the bit encoded within the second low density parity check encoded signal; and the decoder for decoding the third low density parity check encoded signal, the third low density The parity encoded signal corresponds to a third low density parity check matrix of the plurality of low density parity check matrices to generate a best estimate of the bits encoded within the third low density parity check encoded signal.
TW097129862A 2007-08-06 2008-08-06 Multi-code ldpc (low density parity check) decoder TWI407703B (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US95418207P 2007-08-06 2007-08-06
US11/843,553 US8010881B2 (en) 2007-07-02 2007-08-22 Multi-code LDPC (low density parity check) decoder

Publications (2)

Publication Number Publication Date
TW200926615A TW200926615A (en) 2009-06-16
TWI407703B true TWI407703B (en) 2013-09-01

Family

ID=40391009

Family Applications (1)

Application Number Title Priority Date Filing Date
TW097129862A TWI407703B (en) 2007-08-06 2008-08-06 Multi-code ldpc (low density parity check) decoder

Country Status (4)

Country Link
KR (1) KR100992048B1 (en)
CN (1) CN101364809B (en)
HK (1) HK1129781A1 (en)
TW (1) TWI407703B (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102982849B (en) * 2012-12-05 2015-10-28 清华大学 For the ECC decode control method that data store
CN108540142B (en) * 2017-03-06 2021-11-12 瑞昱半导体股份有限公司 Receiving apparatus and control method thereof
TWI697907B (en) * 2020-01-14 2020-07-01 慧榮科技股份有限公司 Memory controller and method of accessing flash memory

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1494358A2 (en) * 2003-07-03 2005-01-05 The Directv Group, Inc. Method and system for generating parallel decodable low density parity check (LDPC) codes
KR20050111201A (en) * 2004-05-21 2005-11-24 삼성전자주식회사 Apparatus and method for decoding symbol with low density parity check code

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7237174B2 (en) * 2003-09-04 2007-06-26 The Directv Group, Inc. Method and system for providing short block length low density parity check (LDPC) codes in support of broadband satellite applications
CN1822509B (en) * 2004-10-04 2011-06-08 美国博通公司 Low density parity check decoder and its method

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1494358A2 (en) * 2003-07-03 2005-01-05 The Directv Group, Inc. Method and system for generating parallel decodable low density parity check (LDPC) codes
KR20050111201A (en) * 2004-05-21 2005-11-24 삼성전자주식회사 Apparatus and method for decoding symbol with low density parity check code

Also Published As

Publication number Publication date
CN101364809B (en) 2011-09-07
KR100992048B1 (en) 2010-11-05
KR20090014998A (en) 2009-02-11
CN101364809A (en) 2009-02-11
TW200926615A (en) 2009-06-16
HK1129781A1 (en) 2009-12-04

Similar Documents

Publication Publication Date Title
TWI406508B (en) Distributed processing ldpc (low density parity check) decoder
TWI400890B (en) Operational parameter adaptable ldpc (low density parity check)decoder
KR100915368B1 (en) Overlapping sub-matrix based ldpc(low density parity check) decoder
US8966336B2 (en) Selective merge and partial reuse LDPC (low density parity check) code construction for limited number of layers belief propagation (BP) decoding
JP4402699B2 (en) Node memory based LDPC decoder and decoding method
US9075738B2 (en) Efficient LDPC codes
US8341489B2 (en) Permuted accelerated LDPC (Low Density Parity Check) decoder
US7530002B2 (en) Sub-matrix-based implementation of LDPC (Low Density Parity Check) decoder
US8799736B2 (en) Communication device architecture for in-place constructed LDPC (low density parity check) code
US8091013B2 (en) Multi-code LDPC (low density parity check) decoder
US20070245217A1 (en) Low-density parity check decoding
US20090013239A1 (en) LDPC (Low Density Parity Check) decoder employing distributed check and/or variable node architecture
US8386906B2 (en) Multi-CSI (cyclic shifted identity) sub-matrix based LDPC (low density parity check) codes
CN116964945A (en) Quasi-cyclic polarization code for master pattern and related low-density generation matrix family
US7617433B2 (en) Implementation of LDPC (low density parity check) decoder by sweeping through sub-matrices
US20070127387A1 (en) Partial-parallel implementation of LDPC (low density parity check) decoders
TWI407703B (en) Multi-code ldpc (low density parity check) decoder
EP2023492A2 (en) Multi-code LDPC (low density parity check) decoder

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees