[go: up one dir, main page]

TWI863310B - Speedy decoder of qc ldpc codes - Google Patents

Speedy decoder of qc ldpc codes Download PDF

Info

Publication number
TWI863310B
TWI863310B TW112119743A TW112119743A TWI863310B TW I863310 B TWI863310 B TW I863310B TW 112119743 A TW112119743 A TW 112119743A TW 112119743 A TW112119743 A TW 112119743A TW I863310 B TWI863310 B TW I863310B
Authority
TW
Taiwan
Prior art keywords
flip
update module
register
symptom
bit
Prior art date
Application number
TW112119743A
Other languages
Chinese (zh)
Other versions
TW202448131A (en
Inventor
施沛渝
Original Assignee
睿寬智能科技有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 睿寬智能科技有限公司 filed Critical 睿寬智能科技有限公司
Priority to TW112119743A priority Critical patent/TWI863310B/en
Application granted granted Critical
Publication of TWI863310B publication Critical patent/TWI863310B/en
Publication of TW202448131A publication Critical patent/TW202448131A/en

Links

Images

Landscapes

  • Error Detection And Correction (AREA)

Abstract

本發明係指一種準循環低密度奇偶校驗碼的快速解碼器,包括輸入暫存器、資料選取多工器、位元翻轉及症狀值更新模組、症狀值暫存器、資料暫存器、翻轉狀態更新模組、解碼終止模組。該位元翻轉及症狀值更新模組包括翻轉閾值選擇邏輯電路、部分翻轉函數值的對應及翻轉函數值的運算邏輯電路及翻轉向量的判斷邏輯電路。 The present invention refers to a fast decoder for quasi-cyclic low-density parity check codes, including an input register, a data selection multiplexer, a bit flip and symptom value update module, a symptom value register, a data register, a flip state update module, and a decoding termination module. The bit flip and symptom value update module includes a flip threshold value selection logic circuit, a partial flip function value correspondence and flip function value operation logic circuit, and a flip vector judgment logic circuit.

Description

準循環低密度奇偶校驗碼的快速解碼器 Fast decoder for quasi-cyclic low-density parity-check codes

本發明關於解碼器(Decoder),特別是準循環低密度奇偶校驗碼(QC LDPC Codes)的解碼器。 The present invention relates to a decoder, in particular a decoder for quasi-cyclic low-density parity-check codes (QC LDPC Codes).

傳統位元翻轉(bit flipping:BF)解碼器有幾個主要模組:資料暫存器、症狀值計算模組、位移器、翻轉函數值的計算模組、翻轉閾值的決定模組、位元翻轉決定模組。以上模組在每次遞迴都須運行。 Traditional bit flipping (BF) decoders have several main modules: data register, symptom value calculation module, shifter, flip function value calculation module, flip threshold value determination module, bit flip determination module. The above modules must be run in each loop.

如何在解碼器的速度、面積、功耗與解碼的效果間達到一個平衡或在增加些許面積下提高解碼器的速度、不增加功耗的條件下提高解碼能力,乃業界亟待解決的問題。 How to strike a balance between the decoder's speed, area, power consumption and decoding effect, or to increase the decoder's speed while slightly increasing the area and improve the decoding capability without increasing power consumption, is an issue that the industry needs to solve urgently.

有鑑於上述習知技藝之問題,本發明之目的是提供一種正確、快速且低功耗的準循環低密度奇偶校驗碼的翻轉解碼器。 In view of the above problems of the prior art, the purpose of the present invention is to provide an accurate, fast and low-power quasi-cyclic low-density parity check code flip decoder.

為達成上述目的,該解碼器包括輸入暫存器、症狀值暫存器、資料暫存器、資料選取多工器、位元翻轉及症狀值更新模組、翻轉狀態更新模組、解碼終止模組。該位元翻轉及症狀值更新 模組包括翻轉閾值選擇邏輯電路、部分翻轉函數值的對應及翻轉函數值的運算邏輯電路及翻轉向量的判斷邏輯電路。 To achieve the above purpose, the decoder includes an input register, a symptom value register, a data register, a data selection multiplexer, a bit flip and symptom value update module, a flip state update module, and a decoding termination module. The bit flip and symptom value update module includes a flip threshold selection logic circuit, a partial flip function value correspondence and a flip function value operation logic circuit, and a flip vector judgment logic circuit.

10:輸入暫存器 10: Input register

20:資料選取多工器 20: Data selection multiplexer

30:位元翻轉及症狀值更新模組 30: Bit flip and symptom value update module

31:翻轉閾值選取邏輯電路 31: Flip threshold to select logic circuit

32:症狀值

Figure 112119743-A0101-12-0011-85
的翻轉函數值計算與對應邏輯電路 32: Symptom value
Figure 112119743-A0101-12-0011-85
Calculation of flip function value and corresponding logic circuit

33:症狀值

Figure 112119743-A0101-12-0011-86
的翻轉函數值計算與對應邏輯電路 33: Symptom value
Figure 112119743-A0101-12-0011-86
Calculation of flip function value and corresponding logic circuit

34:最終翻轉函數運算與最大翻轉函數值搜尋邏輯電路 34: Final flip function operation and maximum flip function value search logic circuit

35:翻轉位元邏輯電路 35: Bit flip logic circuit

36:第一互斥或邏輯電路 36: First Mutex OR Logic Circuit

37:第二互斥或邏輯電路 37: Second mutex or logic circuit

39:第一桶式移位器 39: The first barrel shifter

38:第二桶式移位器 38: Second barrel shifter

40:症狀值暫存器 40: Symptom value register

50:資料暫存器 50: Data register

60:翻轉狀態更新模組 60: Flip status update module

70:解碼終止模組 70: Decoding termination module

[圖1]是本發明之一個實施例之準循環低密度奇偶校驗碼的快速解碼器的電路的方塊圖。 [Figure 1] is a block diagram of a circuit of a fast decoder of a quasi-cyclic low-density parity-check code according to an embodiment of the present invention.

[圖2]為圖1中翻轉位元與症狀值更新模組的電路的方塊圖。 [Figure 2] is a block diagram of the circuit of the flip bit and symptom value update module in Figure 1.

[圖3]為向量F的示意圖。 [Figure 3] is a schematic diagram of vector F.

[圖4]為將向量F以位址與w個位元為單元表示。 [Figure 4] shows the vector F represented by the address and w bits.

[圖5]為僅取出向量F中的五個單元表示。 [Figure 5] shows the representation of only five units in vector F.

(N,K)準循環低密度奇偶校驗碼(Quasi-Cyclic Low Density Parity Check codes:QC LDPC codes)是一種線性碼,N為碼字的長度,K為傳輸資訊長度。我們藉由一個奇偶校驗矩陣(parity check matrix)H定義一個LDPC碼,H的維度是M×N。 (N,K) Quasi-Cyclic Low Density Parity Check codes (QC LDPC codes) are a type of linear code, where N is the length of the codeword and K is the length of the transmitted information. We define an LDPC code by a parity check matrix H, where the dimension of H is M×N.

收到的碼字(received word)R有長度N,R=[r0,r1,r2,…,rN-1]。翻轉向量(flipped vector)

Figure 112119743-A0101-12-0002-1
而得症狀值(syndrome)
Figure 112119743-A0101-12-0002-2
RT,RT是R的轉置矩陣(transpose matrix),
Figure 112119743-A0101-12-0002-3
且它的維度是M×1。 The received codeword R has length N, R = [r 0 ,r 1 ,r 2 ,…,r N-1 ]. Flipped vector
Figure 112119743-A0101-12-0002-1
The symptom value (syndrome)
Figure 112119743-A0101-12-0002-2
RT , RT is the transpose matrix of R,
Figure 112119743-A0101-12-0002-3
And its dimension is M×1.

對每個位元j,常見的翻轉函數如下: For each bit j, the common flip function is as follows:

Figure 112119743-A0101-12-0002-4
;或
Figure 112119743-A0101-12-0002-4
;or

Figure 112119743-A0101-12-0002-5
Figure 112119743-A0101-12-0002-5
.

在上述二式,M(n)為H中第n行中1所在位置,Wk,n是權重。在本發明的一個實施例,權重Wk,n=1,翻轉函數可被簡化為: In the above two equations, M(n) is the position of 1 in the nth row of H, and W k,n is the weight. In one embodiment of the present invention, the weight W k,n = 1, and the inversion function can be simplified as:

Figure 112119743-A0101-12-0003-6
Figure 112119743-A0101-12-0003-6

在本實施例,準循環低密度奇偶校驗碼的行權重(column weight)是3或4,即col_wt(n)=3或4,n=0,1,…,N-1。 In this embodiment, the column weight of the quasi-cyclic LDPC code is 3 or 4, that is, col_wt(n)=3 or 4, n=0,1,…,N-1.

為了增加解碼的速度與解碼的能力,我們把初始收到的碼字的症狀值與前次翻轉向量的影響加入翻轉函數的計算。因此,須貯存初次收到的碼字的症狀值及數組翻轉向量。如此,增加解碼速度與解碼能力。 In order to increase the decoding speed and decoding capability, we add the symptom value of the initially received codeword and the influence of the previous flip vector to the calculation of the flip function. Therefore, it is necessary to store the symptom value of the initially received codeword and the array flip vector. In this way, the decoding speed and decoding capability are increased.

把初次收到的碼字的症狀值

Figure 112119743-A0101-12-0003-7
輸入應用公式(1),得到
Figure 112119743-A0101-12-0003-8
。把
Figure 112119743-A0101-12-0003-9
數值依大小分成數個不相交的區間,使這些區間分別對應輸入給定的數值表。在本實施例,
Figure 112119743-A0101-12-0003-10
{-4,-3,-2,-1,0,1,2,3,4}。我們給定對應輸入數值表為[-4,-4,-2,-1,0,1,2,3,3]。收到的
Figure 112119743-A0101-12-0003-11
經公式(1)運算而得到
Figure 112119743-A0101-12-0003-12
。然後,依對應數值表,輸出對應數值
Figure 112119743-A0101-12-0003-13
。 The symptom value of the first received codeword
Figure 112119743-A0101-12-0003-7
Enter the application formula (1) and get
Figure 112119743-A0101-12-0003-8
.Bundle
Figure 112119743-A0101-12-0003-9
The values are divided into several non-overlapping intervals according to their size, so that these intervals correspond to the given input value table. In this embodiment,
Figure 112119743-A0101-12-0003-10
{-4,-3,-2,-1,0,1,2,3,4}. We give the corresponding input value table as [-4,-4,-2,-1,0,1,2,3,3].
Figure 112119743-A0101-12-0003-11
The formula (1) is used to calculate
Figure 112119743-A0101-12-0003-12
Then, according to the corresponding value table, output the corresponding value
Figure 112119743-A0101-12-0003-13
.

初始化翻轉向量為全零。在第一次遞迴,用公式(1)計算翻轉函數值。 Initialize the flip vector to all zeros. In the first iteration, use formula (1) to calculate the flip function value.

第二次遞迴起,若症狀值位元總和小於給定值D,則翻轉函數值E' (t)合併考量初次症狀值產生的

Figure 112119743-A0101-12-0003-14
與前次的翻轉向量
Figure 112119743-A0101-12-0003-15
,即 In the second recursion, if the sum of the symptom value bits is less than the given value D, the flip function value E ' (t) is combined with the value generated by the initial symptom value
Figure 112119743-A0101-12-0003-14
Flip vector from last time
Figure 112119743-A0101-12-0003-15
,Right now

Figure 112119743-A0101-12-0003-16
Figure 112119743-A0101-12-0003-16

若症狀值位元總和大於或等於給定值D,則翻轉函數值E' (t)僅考量前次的翻轉向量

Figure 112119743-A0101-12-0004-17
的影響,即 If the sum of the symptom value bits is greater than or equal to the given value D, the flip function value E ' (t) only considers the previous flip vector
Figure 112119743-A0101-12-0004-17
The impact of

Figure 112119743-A0101-12-0004-18
Figure 112119743-A0101-12-0004-18

在本實施例,D=20。20是經測試而得之數值,D可能是其他合適的數值。 In this embodiment, D=20. 20 is a value obtained through testing, and D may be other appropriate values.

在本實施例,貯存四組翻轉向量

Figure 112119743-A0101-12-0004-19
Figure 112119743-A0101-12-0004-20
Figure 112119743-A0101-12-0004-21
Figure 112119743-A0101-12-0004-22
與些許運算邏輯。 In this embodiment, four sets of flip vectors are stored
Figure 112119743-A0101-12-0004-19
,
Figure 112119743-A0101-12-0004-20
,
Figure 112119743-A0101-12-0004-21
,
Figure 112119743-A0101-12-0004-22
and a little bit of computational logic.

決定每一區塊的翻轉向量後,暫存翻轉向量

Figure 112119743-A0101-12-0004-24
Figure 112119743-A0101-12-0004-25
中任一個位元為1,即有位元翻轉,更新三組翻轉向量
Figure 112119743-A0101-12-0004-26
Figure 112119743-A0101-12-0004-27
Figure 112119743-A0101-12-0004-28
。令
Figure 112119743-A0101-12-0004-29
Figure 112119743-A0101-12-0004-30
Figure 112119743-A0101-12-0004-31
。 After determining the flip vector for each block, temporarily store the flip vector
Figure 112119743-A0101-12-0004-24
.
Figure 112119743-A0101-12-0004-25
If any bit in the bit is 1, there is a bit flip, and the three sets of flip vectors are updated.
Figure 112119743-A0101-12-0004-26
,
Figure 112119743-A0101-12-0004-27
,
Figure 112119743-A0101-12-0004-28
.make
Figure 112119743-A0101-12-0004-29
,
Figure 112119743-A0101-12-0004-30
,
Figure 112119743-A0101-12-0004-31
.

比較

Figure 112119743-A0101-12-0004-32
是否與
Figure 112119743-A0101-12-0004-33
完全相同。 compare
Figure 112119743-A0101-12-0004-32
Whether
Figure 112119743-A0101-12-0004-33
Exactly the same.

Figure 112119743-A0101-12-0004-34
,則全等訊號(all_eq)=1,否則全等訊號=0-(4) like
Figure 112119743-A0101-12-0004-34
, then the congruence signal (all_eq) = 1, otherwise the congruence signal = 0-(4)

Figure 112119743-A0101-12-0004-35
Figure 112119743-A0101-12-0004-36
進行及(and)運算,並對
Figure 112119743-A0101-12-0004-37
Figure 112119743-A0101-12-0004-38
進行及(and)運算。另外,計算
Figure 112119743-A0101-12-0004-39
的位元總和。 right
Figure 112119743-A0101-12-0004-35
and
Figure 112119743-A0101-12-0004-36
Perform and operation and
Figure 112119743-A0101-12-0004-37
and
Figure 112119743-A0101-12-0004-38
Perform and operation. In addition, calculate
Figure 112119743-A0101-12-0004-39
The sum of the bits.

振盪訊號1

Figure 112119743-A0101-12-0004-40
Oscillation signal 1
Figure 112119743-A0101-12-0004-40

振盪訊號2

Figure 112119743-A0101-12-0004-41
Oscillation signal 2
Figure 112119743-A0101-12-0004-41

振盪訊號為振盪訊號1或振盪訊號2------------------------------(7) The oscillation signal is oscillation signal 1 or oscillation signal 2------------------------------(7)

可依通道狀態與LDPC碼的構造調整變數d與數組比較先前翻轉向量。在本實施例,d=5,並採用三組先前翻轉向量。 The variable d and the array of previous flip vectors can be adjusted according to the channel state and the structure of the LDPC code. In this embodiment, d=5, and three sets of previous flip vectors are used.

用全等訊號及振盪訊號與

Figure 112119743-A0101-12-0004-42
更新症狀值。 Use congruent signals and oscillating signals with
Figure 112119743-A0101-12-0004-42
Updates symptom values.

前次翻轉訊號(bit_pre_flip)記錄前次遞迴是否翻轉任何位元。本實施例預設bit_pre_flip=1,每次決定完整翻轉向量後,若有 翻轉的位元,則bit_pre_flip=0,否則bit_pre_flip=1。 The previous flip signal (bit_pre_flip) records whether any bit was flipped in the previous pass. In this embodiment, bit_pre_flip=1 by default. After each complete flip vector is determined, if there is a flipped bit, bit_pre_flip=0, otherwise bit_pre_flip=1.

關於翻轉閾值(E_th),若En

Figure 112119743-A0101-12-0005-93
E_th,則翻轉第n位元。 Regarding the flip threshold (E_th), if En
Figure 112119743-A0101-12-0005-93
E_th, then flip the nth bit.

可動態或依矩陣特性,給定E_th值。 The E_th value can be given dynamically or according to matrix characteristics.

基於硬體實現的最佳化考量,在本實施例,在奇偶校驗矩陣的行權重(column weight)分布為四或三的狀況下,給定E_th值的方式如下: Based on the optimization considerations of hardware implementation, in this embodiment, when the column weight distribution of the parity check matrix is four or three, the E_th value is given as follows:

若遞迴數(iteration)=1,則E_th=4; If the iteration number = 1, then E_th = 4;

若遞迴數iteration>1,且前次翻轉訊號=0,則分為三種情況判斷: If the iteration count>1, and the previous flip signal = 0, there are three situations to judge:

若全等訊號為1,則E_th=E_th-2。若全等訊號為0,則振盪訊號為1,且E_th=2。否則E_th=3。 If the congruent signal is 1, then E_th=E_th-2. If the congruent signal is 0, then the oscillation signal is 1, and E_th=2. Otherwise, E_th=3.

若遞迴數iteration>1,且前次翻轉訊號bit_pre_flip=1,則E_th=max_EnIf the iteration number>1, and the previous flip signal bit_pre_flip=1, then E_th=max_E n .

關於翻轉向量

Figure 112119743-A0101-12-0005-43
,如上述,若En
Figure 112119743-A0101-12-0005-94
E_th,則翻轉第n個位元,即fn=1。 About flipping vectors
Figure 112119743-A0101-12-0005-43
As mentioned above, if E n
Figure 112119743-A0101-12-0005-94
E_th, then flip the nth bit, that is, f n =1.

為執行上述任務,本發明提供一種準循環低密度奇偶校驗碼的快速解碼器。參考圖1,依本發明之較佳實施例,該解碼器包括輸入暫存器10、資料選取多工器20、位元翻轉及症狀值更新模組30、症狀值暫存器40、資料暫存器50、翻轉狀態更新模組60及解碼終止模組70。輸入暫存器10連接資料選取多工器20。資料選取多工器20還連接位元翻轉及症狀值更新模組30。位元翻轉及症狀值更新模組30還連接症狀值暫存器40、資料暫存器50及 翻轉狀態更新模組60。解碼終止模組70連接症狀值暫存器40。 To perform the above tasks, the present invention provides a fast decoder for quasi-cyclic low-density parity check codes. Referring to FIG. 1 , according to a preferred embodiment of the present invention, the decoder includes an input register 10, a data selection multiplexer 20, a bit flip and symptom value update module 30, a symptom value register 40, a data register 50, a flip state update module 60, and a decoding termination module 70. The input register 10 is connected to the data selection multiplexer 20. The data selection multiplexer 20 is also connected to the bit flip and symptom value update module 30. The bit flip and symptom value update module 30 is also connected to the symptom value register 40, the data register 50, and the flip state update module 60. The decoding termination module 70 is connected to the symptom value register 40.

運作時,輸入暫存器10接收碼字,貯存收到的碼字,並把收到的碼字傳至資料選取多工器20。 During operation, the input register 10 receives a codeword, stores the received codeword, and transmits the received codeword to the data selection multiplexer 20.

若遞迴數=1,則資料選取多工器20把輸入暫存器10的資料傳至位元翻轉及症狀值更新模組30,否則把資料暫存器50的資料傳至位元翻轉及症狀值更新模組30。 If the recursive number = 1, the data selection multiplexer 20 transmits the data of the input register 10 to the bit flip and symptom value update module 30, otherwise, the data of the data register 50 is transmitted to the bit flip and symptom value update module 30.

位元翻轉及症狀值更新模組30經由選定的翻轉閾值與計算的翻轉函數比較後,產生翻轉向量、翻轉後資料、更新症狀值。位元翻轉及症狀值更新模組30從症狀值暫存器40接收首次產生的症狀值與更新後症狀值。然後,位元翻轉及症狀值更新模組30把首次產生的症狀值、更新後症狀值及翻轉後資料傳至資料暫存器50。另外,位元翻轉及症狀值更新模組30把前次翻轉訊號與翻轉向量傳至翻轉狀態更新模組60。 The bit flip and symptom value update module 30 generates a flip vector, flipped data, and updated symptom value after comparing the selected flip threshold with the calculated flip function. The bit flip and symptom value update module 30 receives the first generated symptom value and the updated symptom value from the symptom value register 40. Then, the bit flip and symptom value update module 30 transmits the first generated symptom value, the updated symptom value, and the flipped data to the data register 50. In addition, the bit flip and symptom value update module 30 transmits the previous flip signal and the flip vector to the flip state update module 60.

另外,資料暫存器50把翻轉後的資料傳至資料選取多工器20,致允許資料選取多工器20選擇。 In addition, the data register 50 transmits the flipped data to the data selection multiplexer 20, thereby allowing the data selection multiplexer 20 to select.

翻轉狀態更新模組60執行公式(4)、(5)、(6)、(7)而更新全等訊號、振盪訊號與

Figure 112119743-A0101-12-0006-44
,並把這些訊號傳至位元翻轉及症狀值更新模組30。 The flip state update module 60 executes formulas (4), (5), (6), and (7) to update the congruent signal, the oscillation signal, and
Figure 112119743-A0101-12-0006-44
, and transmit these signals to the bit flip and symptom value update module 30.

解碼終止模組70從症狀值暫存器40接收症狀值位元總和並據以產生解碼狀態輸出訊號。解碼狀態輸出訊號代表繼續解碼、解碼成功、解碼幾乎成功、解碼失敗。把輸出訊號供外部解碼流程狀態機模組控制解碼流程。 The decoding termination module 70 receives the bit sum of the symptom value from the symptom value register 40 and generates a decoding status output signal accordingly. The decoding status output signal represents continued decoding, successful decoding, almost successful decoding, and failed decoding. The output signal is provided to the external decoding process state machine module to control the decoding process.

為執行上述任務,位元翻轉及症狀值更新模組30,位元翻轉及症狀值更新模組30包括翻轉閾值選取邏輯電路31、症狀值

Figure 112119743-A0101-12-0007-45
的翻轉函數值計算與對應邏輯電路32、症狀值
Figure 112119743-A0101-12-0007-46
的翻轉函數值計算與對應邏輯電路33、最終翻轉函數運算與最大翻轉函數值搜尋邏輯電路34、翻轉位元邏輯電路35、第一互斥或邏輯電路36、第二互斥或邏輯電路37、第一桶式移位器39及第二桶式移位器38。 To perform the above tasks, a bit flip and symptom value update module 30 is provided. The bit flip and symptom value update module 30 includes a flip threshold value selection logic circuit 31, a symptom value
Figure 112119743-A0101-12-0007-45
Calculation of flip function value and corresponding logic circuit 32, symptom value
Figure 112119743-A0101-12-0007-46
The flip function value calculation and corresponding logic circuit 33, the final flip function operation and maximum flip function value search logic circuit 34, the flip bit logic circuit 35, the first exclusive OR logic circuit 36, the second exclusive OR logic circuit 37, the first barrel shifter 39 and the second barrel shifter 38.

翻轉閾值選取邏輯電路31於輸入端連接資料選取多工器20與最終翻轉函數運算邏輯電路34,並於輸出端連接翻轉位元邏輯電路35。 The flip threshold selection logic circuit 31 is connected to the data selection multiplexer 20 and the final flip function operation logic circuit 34 at the input end, and is connected to the flip bit logic circuit 35 at the output end.

症狀值

Figure 112119743-A0101-12-0007-47
的翻轉函數值計算與對應邏輯電路32於輸入端連接第一桶式移位器39,並於輸出端連接最終翻轉函數運算與最大翻轉函數值搜尋邏輯電路34的輸入端。 Symptom value
Figure 112119743-A0101-12-0007-47
The flip function value calculation and corresponding logic circuit 32 is connected to the first barrel shifter 39 at the input end, and is connected to the input end of the final flip function operation and maximum flip function value search logic circuit 34 at the output end.

同樣地,症狀值

Figure 112119743-A0101-12-0007-48
的翻轉函數值計算與對應邏輯電路33於輸入端連接第一桶式移位器39,並於輸出端連接最終翻轉函數運算與最大翻轉函數值搜尋邏輯電路34的輸入端。 Similarly, symptom values
Figure 112119743-A0101-12-0007-48
The flip function value calculation and corresponding logic circuit 33 is connected to the first barrel shifter 39 at the input end, and is connected to the input end of the final flip function operation and maximum flip function value search logic circuit 34 at the output end.

最終翻轉函數運算與最大翻轉函數值搜尋邏輯電路34於輸入端還連接翻轉狀態更新模組60,並於輸出端連接翻轉位元邏輯電路35與翻轉閾值選取模組31的輸入端。 The final flip function operation and maximum flip function value search logic circuit 34 is also connected to the flip state update module 60 at the input end, and is connected to the input end of the flip bit logic circuit 35 and the flip threshold value selection module 31 at the output end.

翻轉位元邏輯電路35的輸出端連接翻轉狀態更新模組60的輸入端。 The output end of the flip bit logic circuit 35 is connected to the input end of the flip state update module 60.

第一互斥或邏輯電路36於輸入端連接第一桶式移位器39的輸出端及翻轉位元邏輯電路35的輸出端。 The first mutex or logic circuit 36 is connected to the output of the first barrel shifter 39 and the output of the flip bit logic circuit 35 at the input end.

第二互斥或邏輯電路37於輸入端連接翻轉位元邏輯電路35與資料選取多工器20,並於輸出端連接資料暫存器50。 The second mutex OR logic circuit 37 is connected to the flip bit logic circuit 35 and the data selection multiplexer 20 at the input end, and is connected to the data register 50 at the output end.

第二桶式移位器38於輸入端連接第一互斥或邏輯電路36,並於輸出端連接症狀值暫存器40。 The second barrel shifter 38 is connected to the first mutex or logic circuit 36 at the input end and is connected to the symptom value register 40 at the output end.

運作時,翻轉閾值選取邏輯電路31依輸入遞迴次數與前次翻轉訊號、全等訊號、振盪訊號與最大翻轉函數值(max_En),選取翻轉閾值E_th。 During operation, the flip threshold selection logic circuit 31 selects the flip threshold E_th according to the number of input loops and the previous flip signal, the congruent signal, the oscillation signal and the maximum flip function value (max_En).

症狀值

Figure 112119743-A0101-12-0008-49
的翻轉函數值計算與對應邏輯電路32接收位移後的症狀值
Figure 112119743-A0101-12-0008-50
,並如上述地產生
Figure 112119743-A0101-12-0008-51
。 Symptom value
Figure 112119743-A0101-12-0008-49
The flip function value is calculated and the corresponding logic circuit 32 receives the symptom value after displacement.
Figure 112119743-A0101-12-0008-50
, and as aforesaid
Figure 112119743-A0101-12-0008-51
.

症狀值

Figure 112119743-A0101-12-0008-52
的翻轉函數值計算與對應邏輯電路33接收位移後的症狀值
Figure 112119743-A0101-12-0008-53
,並依公式(1)產生
Figure 112119743-A0101-12-0008-54
。 Symptom value
Figure 112119743-A0101-12-0008-52
The flip function value is calculated and the corresponding logic circuit 33 receives the symptom value after displacement.
Figure 112119743-A0101-12-0008-53
, and according to formula (1)
Figure 112119743-A0101-12-0008-54
.

最終翻轉函數運算與最大翻轉函數值搜尋邏輯電路34接收翻轉向量、前症狀值部分翻轉函數值

Figure 112119743-A0101-12-0008-56
及初次症狀值部分翻轉函數值
Figure 112119743-A0101-12-0008-55
,並由公式(1)、公式(2)、公式(3)產生翻轉函數值
Figure 112119743-A0101-12-0008-57
。所有位元的翻轉函數值產生後,既可用比較電路得知max_En。 The final flip function operation and maximum flip function value search logic circuit 34 receives the flip vector, the previous symptom value, and the partial flip function value.
Figure 112119743-A0101-12-0008-56
and the initial symptom value partial reversal function value
Figure 112119743-A0101-12-0008-55
, and generate the flip function value by formula (1), formula (2), and formula (3)
Figure 112119743-A0101-12-0008-57
After the flip function values of all bits are generated, the comparison circuit can be used to obtain max_E n .

翻轉位元邏輯電路35接收翻轉閾值E_th與翻轉函數值

Figure 112119743-A0101-12-0008-58
,並決定翻轉位元向量每一位元為0或1。 The flip bit logic circuit 35 receives the flip threshold value E_th and the flip function value
Figure 112119743-A0101-12-0008-58
, and decides whether to flip each bit of the bit vector to 0 or 1.

第一互斥或邏輯電路36接收位移後的症狀值與翻轉位元向量進行互斥或運算獲得位移的更新症狀值。 The first exclusive OR logic circuit 36 receives the shifted symptom value and performs an exclusive OR operation with the flipped bit vector to obtain the updated symptom value of the shift.

第二互斥或邏輯電路37接收資料與翻轉位元向量進行互斥或運算而獲得翻轉後資料。 The second exclusive OR logic circuit 37 receives the data and performs an exclusive OR operation with the flip bit vector to obtain the flipped data.

第一桶式移位器39接收症狀值,並使其位移。 The first barrel shifter 39 receives the symptom value and shifts it.

第二桶式移位器38接收位移的更新症狀值,並使其反向位移。如此,第二桶式移位器38產生更新的症狀值。 The second barrel shifter 38 receives the displaced updated symptom value and displaces it in the reverse direction. In this way, the second barrel shifter 38 generates an updated symptom value.

如上述,翻轉狀態更新模組60執行公式(4)、(5)、(6)、(7)處理

Figure 112119743-A0305-02-0011-23
Figure 112119743-A0305-02-0011-21
Figure 112119743-A0305-02-0011-22
而產生全等訊號及振盪訊號。然後,翻轉狀態更新模組60把全等訊號、振盪訊號與
Figure 112119743-A0305-02-0011-25
傳至位元翻轉及症狀值更新模組30。 As described above, the flip state update module 60 executes equations (4), (5), (6), and (7) to process
Figure 112119743-A0305-02-0011-23
,
Figure 112119743-A0305-02-0011-21
,
Figure 112119743-A0305-02-0011-22
Then, the flip state update module 60 converts the congruent signal and the oscillation signal into
Figure 112119743-A0305-02-0011-25
The data is transmitted to the bit flipping and symptom value updating module 30.

三個翻轉向量

Figure 112119743-A0305-02-0011-26
Figure 112119743-A0305-02-0011-27
Figure 112119743-A0305-02-0011-28
的長度皆為N,所以共需3*N位元紀錄其資訊。另外,在執行公式(4)、(5)、(6)時,需要較多的邏輯閘數完成運算。因此,在此提出僅儲存部分的翻轉向量,並調整公式(4)、(5)、(6)以達到降低記憶體空間(memory)、降低邏輯閘數(gate count)、獲得更好的時序(timing)與功耗的優點。 Three flip vectors
Figure 112119743-A0305-02-0011-26
,
Figure 112119743-A0305-02-0011-27
,
Figure 112119743-A0305-02-0011-28
The length of is N, so a total of 3*N bits are needed to record its information. In addition, when executing formulas (4), (5), and (6), more logic gates are required to complete the calculation. Therefore, it is proposed to store only part of the flip vector and adjust formulas (4), (5), and (6) to achieve the advantages of reducing memory space, reducing logic gate count, and obtaining better timing and power consumption.

首先改變翻轉向量的表示方式。圖3呈現一個向量F,配合資料傳遞的寬度W,其長度N為(q+1)*w。在本實施例,W=256位元。參考圖4,把翻轉向量切割成多個單元,每一個單元有256位元,定義位址標記為第幾個256單元。因此,每一個單元有兩個特徵:位址(address)與二元序列(binary sequence)。 First, change the representation of the flip vector. Figure 3 shows a vector F, with a length N of (q+1)*w in accordance with the data transmission width W. In this embodiment, W=256 bits. Referring to Figure 4, the flip vector is cut into multiple units, each unit has 256 bits, and the address is defined as the number of 256 units. Therefore, each unit has two characteristics: address and binary sequence.

F={f 0,f 1,...,f 255,f 256,...,f 511,f 512,...,f 767,f 768,...,f N-1}。 F ={ f 0 , f 1 ,..., f 255 , f 256 ,..., f 511 , f 512 ,..., f 767 , f 768 ,..., f N -1 }.

經改寫,F={F 0,F 1,F 2,...,F q },F 0={f 0,f 1,...,f 255},F 1={f 1*256,...,f 2*256-1},…,F q ={f q*256,...,f (q+1)*256-1}。F 0 F q 都是二元序列,它們的寬度(或長度)都是256,其下標為每一個二元序列的位址(address)。 After rewriting, F ={ F 0 , F 1 , F 2 ,..., F q }, F 0 ={ f 0 , f 1 ,..., f 255 }, F 1 ={ f 1*256 ,..., f 2*256-1 },…, F q ={ f q *256 ,..., f ( q +1)*256-1 }. F 0 to F q are all binary sequences, their width (or length) is 256, and their subscripts are the addresses of each binary sequence.

參考圖5,紀錄前L筆有翻轉的位址及其對應的翻轉二 元序列,在本實施例,L=5。沿用符號上標(T 0),(T -1),(T -2)表示第T 0 次與前兩次遞迴的結果。令

Figure 112119743-A0305-02-0012-7
為(T 0)次 遞迴翻轉向量的5個位址,
Figure 112119743-A0305-02-0012-8
為 (T -1)次遞迴翻轉向量的5個位址,
Figure 112119743-A0305-02-0012-30
Figure 112119743-A0305-02-0012-10
為(T -2)次遞迴翻轉向量的5個位址。其對 應的五個二元序列分別為
Figure 112119743-A0305-02-0012-12
,
Figure 112119743-A0305-02-0012-13
Figure 112119743-A0305-02-0012-31
Figure 112119743-A0305-02-0012-14
Figure 112119743-A0305-02-0012-11
皆是256位元的二元序列。 Referring to FIG5 , the addresses with flipped addresses and their corresponding flipped binary sequences are recorded. In this embodiment, L=5. The superscript symbols ( T 0 ), ( T -1 ), ( T -2 ) are used to represent the results of the T 0th and the previous two recursions.
Figure 112119743-A0305-02-0012-7
The 5 addresses of the ( T 0 )th recursive flip vector,
Figure 112119743-A0305-02-0012-8
The 5 addresses of the ( T -1 )th recursive flip vector,
Figure 112119743-A0305-02-0012-30
Figure 112119743-A0305-02-0012-10
are the 5 addresses of the ( T -2 )-times recursive flip vector. The corresponding five binary sequences are
Figure 112119743-A0305-02-0012-12
,
Figure 112119743-A0305-02-0012-13
and
Figure 112119743-A0305-02-0012-31
Figure 112119743-A0305-02-0012-14
.
Figure 112119743-A0305-02-0012-11
They are all 256-bit binary sequences.

基於翻轉位址與翻轉二元序列的架構,本專利把下列公式(a)取代公式(4):

Figure 112119743-A0305-02-0012-15
Based on the structure of flipping addresses and flipping binary sequences, the patent replaces formula (4) with the following formula (a):
Figure 112119743-A0305-02-0012-15

針對公式(5)與公式(6),首先判斷位置是否有重複。定義交集函數intersect(A,B)=A∩B。 For formula (5) and formula (6), first determine whether there is duplication in the position. Define the intersection function intersection (A,B)=A∩B.

Figure 112119743-A0305-02-0012-16
Figure 112119743-A0305-02-0012-16

分別在

Figure 112119743-A0305-02-0012-32
Figure 112119743-A0305-02-0012-33
中,對應addr={d 0,...,d k }位置的二元序列為:
Figure 112119743-A0305-02-0012-18
Respectively in
Figure 112119743-A0305-02-0012-32
and
Figure 112119743-A0305-02-0012-33
In , the binary sequence corresponding to the position addr ={ d 0 ,..., d k } is:
Figure 112119743-A0305-02-0012-18

用公式(b)取代公式(5),並用公式(c)取代公式(6):

Figure 112119743-A0305-02-0012-19
Substitute formula (b) for formula (5) and replace formula (6) with formula (c):
Figure 112119743-A0305-02-0012-19

用AWGN錯誤通道模擬解碼,結果顯示解碼的碼字錯誤率(FER)效果與使用公式(4)、(5)、(6)、(7)的效果無異。 Using AWGN error channel to simulate decoding, the results show that the decoding codeword error rate (FER) effect is the same as that using formulas (4), (5), (6), and (7).

可用至少兩組先前翻轉向量當翻轉狀態的依據。若採用兩組先前翻轉向量,則振盪訊號2為0。 At least two sets of previous flip vectors can be used as the basis for the flip state. If two sets of previous flip vectors are used, the oscillation signal 2 is 0.

因儲存不同資料,輸入暫存器10、症狀值暫存器40及資料暫存器50被描述為3個暫存器,但實務上它們可被整合為一個暫存器。因處理不同資料,症狀值

Figure 112119743-A0101-12-0011-83
的翻轉函數值計算與對應邏輯電路32及33症狀值
Figure 112119743-A0101-12-0011-84
的翻轉函數值計算與對應邏輯電路33被描述為2個邏輯電路,但實務上它們可被整合為一個邏輯電路。 Since the input register 10, the symptom value register 40 and the data register 50 store different data, they are described as three registers, but in practice they can be integrated into one register.
Figure 112119743-A0101-12-0011-83
The flip function value is calculated and the corresponding logic circuit 32 and 33 symptom value is calculated.
Figure 112119743-A0101-12-0011-84
The flip function value calculation and the corresponding logic circuit 33 are described as two logic circuits, but in practice they can be integrated into one logic circuit.

以上僅為描述本發明的較佳實施方式,非用以限定本發明的範圍。本技術領域內的一般技術人員依上述實施例所作的均等變化,以及本領域內技術人員熟知的改變,仍在本發明的範圍內。 The above is only to describe the preferred implementation of the present invention, and is not intended to limit the scope of the present invention. Equal changes made by ordinary technicians in the technical field based on the above embodiments, as well as changes known to technicians in the technical field, are still within the scope of the present invention.

10:輸入暫存器 10: Input register

20:資料選取多工器 20: Data selection multiplexer

30:位元翻轉及症狀值更新模組 30: Bit flip and symptom value update module

40:症狀值暫存器 40: Symptom value register

50:資料暫存器 50: Data register

60:翻轉狀態更新模組 60: Flip status update module

70:解碼終止模組 70: Decoding termination module

Claims (2)

一種準循環低密度奇偶校驗碼的快速解碼器,包括暫存器(10、40、50)、資料選取多工器(20)、位元翻轉及症狀值更新模組(30)、翻轉狀態更新模組(60)及解碼終止模組(70),其中: A fast decoder for a quasi-cyclic low-density parity check code comprises a register (10, 40, 50), a data selection multiplexer (20), a bit flip and symptom value update module (30), a flip state update module (60) and a decoding termination module (70), wherein: 該暫存器(10、40、50)接收並貯存碼字、症狀值、翻轉向量、翻轉後資料; The register (10, 40, 50) receives and stores code words, symptom values, flip vectors, and flipped data; 該資料選取多工器選擇由該暫存器(10、40、50)接收該碼字或接收翻轉後資料傳至該位元翻轉及症狀值更新模組(30); The data selection multiplexer selects the register (10, 40, 50) to receive the codeword or receive the flipped data and transmits it to the bit flip and symptom value update module (30); 該位元翻轉及症狀值更新模組(30)接收該症狀值、該碼字、前次翻轉向量及翻轉狀態相關訊號,並產生翻轉向量、翻轉後資料、更新症狀值,且把它們傳送至該暫存器(10、40、50)儲存; The bit flip and symptom value update module (30) receives the symptom value, the codeword, the previous flip vector and flip state related signals, and generates a flip vector, flipped data, and an updated symptom value, and transmits them to the register (10, 40, 50) for storage; 該暫存器(10、40、50)把翻轉後的資料傳至資料多工器(20),供資料多工器(20)選擇; The register (10, 40, 50) transmits the flipped data to the data multiplexer (20) for selection by the data multiplexer (20); 該暫存器(10、40、50)將前次翻轉向量、儲存症狀值傳至位元翻轉及症狀值更新模組(30); The register (10, 40, 50) transmits the last flip vector and stored symptom value to the bit flip and symptom value update module (30); 該翻轉狀態更新模組(60)接收每次位元翻轉及症狀值更新模組(30)的翻轉向量,用數組先前翻轉向量運算後獲得全等訊號及振盪訊號,並用至少兩組先前翻轉向量分別比較後產生翻轉狀態訊號,且把該翻轉狀態訊號傳至該位元翻轉及症狀值更新模組(30);且 The flip state update module (60) receives the flip vector of each bit flip and symptom value update module (30), obtains a congruent signal and an oscillation signal after calculating with a set of previous flip vectors, and generates a flip state signal after comparing with at least two sets of previous flip vectors, and transmits the flip state signal to the bit flip and symptom value update module (30); and 該解碼終止模組從該暫存器(10、40、50)接收症狀值總和,加上遞迴數以產生解碼狀態輸出訊號。 The decoding termination module receives the sum of the symptom values from the register (10, 40, 50) and adds the recursive number to generate a decoding status output signal. 如請求項1所述之準循環低密度奇偶校驗碼的快速解碼器,其中該翻轉狀態更新模組(60)用上述每一組先前翻轉向量的部分或全部運算,將向量分段以位址與二元序列的表示方式,分別比較數個位址與其二元序列,進而獲得該全等訊號及該振盪訊號並判斷翻轉狀態。 A fast decoder for quasi-cyclic low-density parity check codes as described in claim 1, wherein the flip state update module (60) uses part or all of each set of previously flipped vectors to segment the vectors in the form of addresses and binary sequences, and compares several addresses with their binary sequences respectively, thereby obtaining the congruent signal and the oscillation signal and determining the flip state.
TW112119743A 2023-05-26 2023-05-26 Speedy decoder of qc ldpc codes TWI863310B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
TW112119743A TWI863310B (en) 2023-05-26 2023-05-26 Speedy decoder of qc ldpc codes

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW112119743A TWI863310B (en) 2023-05-26 2023-05-26 Speedy decoder of qc ldpc codes

Publications (2)

Publication Number Publication Date
TWI863310B true TWI863310B (en) 2024-11-21
TW202448131A TW202448131A (en) 2024-12-01

Family

ID=94379916

Family Applications (1)

Application Number Title Priority Date Filing Date
TW112119743A TWI863310B (en) 2023-05-26 2023-05-26 Speedy decoder of qc ldpc codes

Country Status (1)

Country Link
TW (1) TWI863310B (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106160752A (en) * 2015-05-11 2016-11-23 联芸科技(杭州)有限公司 For being layered the system and method exited ahead of time of ldpc decoder
TW201926911A (en) * 2017-11-21 2019-07-01 慧榮科技股份有限公司 Method employed in LDPC decoder and the decoder
US11146289B2 (en) * 2019-03-29 2021-10-12 Intel Corporation Techniques to use intrinsic information for a bit-flipping error correction control decoder
CN114598330A (en) * 2022-03-28 2022-06-07 山东岱微电子有限公司 Quasi-cyclic low-density parity-check code decoding method, system, device and equipment
CN114745005A (en) * 2022-03-28 2022-07-12 山东岱微电子有限公司 Quasi-cyclic low-density parity-check code decoding method, system, device and medium

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106160752A (en) * 2015-05-11 2016-11-23 联芸科技(杭州)有限公司 For being layered the system and method exited ahead of time of ldpc decoder
TW201926911A (en) * 2017-11-21 2019-07-01 慧榮科技股份有限公司 Method employed in LDPC decoder and the decoder
US11146289B2 (en) * 2019-03-29 2021-10-12 Intel Corporation Techniques to use intrinsic information for a bit-flipping error correction control decoder
CN114598330A (en) * 2022-03-28 2022-06-07 山东岱微电子有限公司 Quasi-cyclic low-density parity-check code decoding method, system, device and equipment
CN114745005A (en) * 2022-03-28 2022-07-12 山东岱微电子有限公司 Quasi-cyclic low-density parity-check code decoding method, system, device and medium

Also Published As

Publication number Publication date
TW202448131A (en) 2024-12-01

Similar Documents

Publication Publication Date Title
TWI758748B (en) Method employed in ldpc decoder and the decoder
US8566666B2 (en) Min-sum based non-binary LDPC decoder
US7631241B2 (en) Apparatus and method for decoding low density parity check codes
US10425107B2 (en) Partial sum computation for polar code decoding
US8510641B2 (en) Circuit and technique for reducing parity bit-widths for check bit and syndrome generation for data blocks through the use of additional check bits to increase the number of minimum weighted codes in the hamming code H-matrix
US20130275827A1 (en) Multi-Section Non-Binary LDPC Decoder
CN100425000C (en) Twin-turbo structure low-density parity-check code decoder and decoding method
JP2011205578A (en) Error detection/correction circuit, memory controller and semiconductor memory device
TW201417514A (en) LDPC decoder with fractional local iterations
CN112134570A (en) A multi-mode LDPC decoder for deep space communication
KR100779782B1 (en) High Speed ACS Unit for Viterbi Decoder
US8078933B2 (en) Decoder for low-density parity-check convolutional codes
JP5333233B2 (en) Decoding device, data storage device, data communication system, and decoding method
JP2004510380A (en) Method and apparatus for encoding a linear block code
CN106708654A (en) Circuit structure for BCH error correcting code of NAND flash
CN100589357C (en) LDPC code vector decode translator and method based on unit array and its circulation shift array
TWI863310B (en) Speedy decoder of qc ldpc codes
KR100785671B1 (en) Method and apparatus for effectively reading and storing state metrics in memory for high speed AC Viterbi decoder implementation
CN106856406A (en) The update method and decoder of check-node in a kind of interpretation method
TWI858704B (en) Decoder of qc ldpc codes
US20100185913A1 (en) Method for decoding ldpc code and the circuit thereof
CN112242851B (en) Iterative data processing method and decoder system in layered decoding of LDPC code
TWI810872B (en) Fast decoder for quasi-cyclic low density parity check codes
TW202303625A (en) Method of selecting decoding strategy for data storage system comprising comparing a syndrome sum with thresholds of a number of decoders in order to select one of the decoders
CN113271109A (en) Iterative cycle data storage method and system in LDPC decoding process