專利名稱:用于顯式存儲片上系統的結構化ldpc碼譯碼方法及裝置的制作方法
技術領域:
本發明屬于無線通信領域,特指無線通信中包含低密度奇偶校驗碼LDPC碼 (Low-DensityParity-Checks Codes)的信道編譯碼領域。 通信標準通常采用信道編譯碼技術以降低數據傳輸過程中的誤碼率BER(Bit ErrorRate)丄DPC碼作為一類性能逼近香農極限的線性分組糾錯碼,具有良好的應用前景。 目前DVB-S2 (Digital Video Broadcasting-Satellite 2)、 IEEE 802. lln、 IEEE 802. 16e 等標準都采用LDPC碼作為其核心信道編碼技術。 LDPC碼的奇偶校驗矩陣屬于稀疏矩陣,稀疏校驗矩陣可通過Tanner圖更為直觀 地表示。任何一種LDPC碼的Tanner圖表示中都包含變量節點和校驗節點兩類節點。根據 Tanner圖各類節點的連接關系的不同,LDPC碼可分為結構化LDPC碼和非結構化LDPC碼, 其中結構化LDPC碼應用廣泛。為了平衡硬件開銷和吞吐率,結構化LDPC碼的譯碼裝置通 常采用部分并行譯碼,每次對一定數量的變量節點或校驗節點進行更新,或者同時更新一 定數量的變量節點和校驗節點。參見圖1所示,為給出了規則LDPC碼(12,3,6)的校驗矩 陣和Tanner圖,其中每個變量節點(XI XI2)連接3個校驗節點(SI S6),每個校驗節 點連接6個變量節點。 LDPC碼譯碼裝置實現的核心技術之一是譯碼算法, 一般均采用基于置信傳播的迭 代譯碼算法,每次迭代包含校驗節點更新和變量節點更新兩類操作。當前主流LDPC碼譯 碼算法包括"和積算法SPA" (Sum Product Algorithm)以及"最小和算法MSA" (Min-Sum Algorithm) 。 SPA的校驗節點更新操作包含非線性運算,導致譯碼裝置的復雜度較高,而 MSA簡化了校驗節點更新操作,采用求最小值、次小值以及求和操作代替原有的非線性操 作,降低了譯碼裝置的實現開銷,但同時降低了譯碼性能。 LDPC碼譯碼裝置一般是由譯碼邏輯、存儲單元管理部件和譯碼控制器等組成。譯 碼裝置實現的關鍵技術之一是存儲單元管理,尤其對于碼長較長的LDPC碼,校驗矩陣的存 儲和譯碼過程迭代中間量的存儲面積開銷較大,一般占整個譯碼裝置面積開銷的50%以 上。此外,一個通信標準通常提供多種碼率和碼長,以滿足不同應用場合的需求。理論上, 實現支持多種碼率的譯碼裝置,需要存儲每種碼率的校驗矩陣,同時由于不同碼率的校驗 節點的度不同,造成譯碼中間結果的存儲的不規則性,也相應增加了譯碼裝置的面積開銷。
同時,在設計LDPC碼譯碼裝置時需考慮的另一個問題是譯碼控制器和處理單 元陣列之間的連接方式,該問題同樣關系到譯碼裝置的復雜度和面積開銷。例如,專利 (CN200710044715. 7)給出的LDPC碼譯碼裝置中的每個校驗節點處理單元或變量節點處理 單元都匹配有各自獨立的譯碼控制器,但是這種分布式控制方式實現復雜,面積開銷較大, 特別是對于碼長較大、并行度較高的譯碼裝置。
背景技術:
發明內容
本發明要解決的技術問題就在于針對現有技術存在的技術問題,本發明提供一
種結構簡單緊湊、成本低廉、操作方便、能夠降低硬件復雜度、支持多種碼率的用于顯式存
儲片上系統的結構化LDPC碼譯碼方法及裝置。
為解決上述技術問題,本發明采用以下技術方案 —種用于顯式存儲片上系統的結構化LDPC碼譯碼方法,其特征在于步驟為
(1)、譯碼的初始化該初始化過程包括將接收到的對數似然比 LLR(log-likelihood ratio)按特定的存儲方式存儲到變量節點存儲塊中、初始化校驗節 點存儲塊的值為0、預先設定一個最大迭代次數;
對n = 1,2,…,N,義 = A( 0),A(= = 0, m G M (n) (公式1) (2)、迭代過程啟動迭代次數計數器Iter ;即對每個校驗節點m = 1,2,
',M,依
次計算
<formula>formula see original document page 5</formula> (3)、輸出譯碼結果當迭代次數計數器Iter達到最大迭代數且完成最后一個校 驗節點的譯碼操作時,停止譯碼并輸出譯碼結果^=(^^0) 0:1,即將變量節點存儲塊中 所存儲的An值的符號位作為譯碼結果輸出;否則,轉到步驟(2)繼續迭代;
在上述譯碼過程中,An(Q)是接收到的對數似然比LLR, ^n是變量節點向校驗節點 傳遞的消息,A,(k)是第k次迭代中校驗節點向變量節點傳遞的消息,13是一個非負的修正 值,M(n)表示與變量節點Xn相連的變量節點集合,N(m)表示與校驗節點、相連的變量節 點集合,N(m) \n表示變量節點集合N(m)中去掉變量節點xn。
作為本發明的進一步改進 所述步驟(2)的迭代過程包括外層循環和內層循環,所述外層循環依次對每個校 驗節點進行計算,當所有的校驗節點計算完畢時,表示已完成一次迭代;所述內層循環采用 Offset修正最小和譯碼算法,對與校驗節點連接的變量節點依次進行處理。
所述內層循環中包括第一子循環和第二子循環,所述第一次子循環分別從變 量節點存儲塊和校驗節點存儲塊中讀取、和Amn(k-",將它們相減得到(An-Amn(k-"), 將此結果的絕對值送去與新的最小值進行比較,將符號位送去進行更新新的符號位集 合NewSignSet,并將所有符號位進行異或操作得到新的符號集異或結果NewSignM ; IndexCounter表示正在處理的當前校驗節點所連接的變量節點索引計數值,Shift表示桶 形移位器的移位值,Address表示訪問本地存儲器的訪問地址。根據IndexCounter、 Shift
和Address的值可以從校驗節點存儲塊中讀取A n ;由于",^&n)J;i"-八("l只有兩個值,在
校驗節點存儲塊中,只需存儲最小值01dMin,次小值Sec01dMin和最小值索引值01dlndex 以及(、-A (k—")的符號位集合01dSignSet ;根據IndexCounter和OldSignSet確定 A (k—D的符號位,以及根據IndexCounter是否等于Oldlndex確定A (k-"的絕對值是最 小值OldMin還是次小值Sec01dMin ;當對校驗節點所有相連的變量節點操作完之后,對新得到的最小值和次小值進行修正;所述第二子循環為分別讀取Amn(k)和A (k-D,并將它們 相減得到(A (k-Amn(k-D),將此結果送去變量節點功能單元,在變量節點功能單元中執行 加法操作^-^+A^-At",即完成了變量節點A。的更新;所述第二子循環完成之后,
對校驗節點存儲塊中的存儲單元進行更新,將A (k-D更新為A,(k),然后對下一個校驗節
點進行譯碼操作;當對所有校驗節點都完成一次譯碼操作時,表示已完成一次迭代譯碼。 —種用于顯式存儲片上系統的結構化LDPC碼譯碼裝置,其特征在于包括 碼率可重構存儲管理控制器,包括一組針對不同碼率條件下的狀態機,由譯碼控
制器配置重構,完成不同碼率條件下的二級存儲器和本地存儲器之間的數據加載; 譯碼控制器,包括表征校驗矩陣的地址序列存儲器和移位序列存儲器,所述地址
序列存儲器存儲不同碼率條件下譯碼過程所需的地址信息,所述移位序列存儲器存儲不同
碼率條件下譯碼過程所需的桶型移位器控制信息,所述譯碼控制器用于通過單控制流多數
據流SCMD控制通路產生不同碼率條件下譯碼控制信號,所述控制信號包括本地存儲器的
地址和讀寫信號和桶形移位器的移位控制信號; 處理陣列單元,包括一組以上的功能單元簇、功能單元數據交換網絡、一個以上的
本地存儲器、模式可重構存儲管理控制器以及校驗和變量中間量交換通路,所述功能單元
簇包括校驗節點功能單元、變量節點功能單元,校驗節點功能單元對應一組變量節點,變量
節點功能單元對應一組校驗節點,所述功能單元簇通過功能單元數據交換網絡與本地存儲
器進行數據交互,所述功能單元數據交換網絡包括一個多周期流水化桶形移位寄存器,所
述本地存儲器通過模式可重構存儲管理控制器以及校驗和變量中間量交換通路與碼率可
重構存儲管理控制器相連,所述模式可重構存儲管理控制器負責通過校驗和變量中間量交
換通路產生不同碼率條件下配置本地存儲器中所存儲的校驗節點信息和變量節點信息。 所述每一個本地存儲器中包括校驗節點存儲塊和變量節點存儲塊,構成乒乓緩沖
區,任何時刻均只有一個存儲塊處于譯碼狀態,另外一個存儲塊正在進行下一周期活躍中
間變量集的調入操作。 與現有技術相比,本發明的優點就在于 1、本發明采用改進分層調度最小和算法,利用該算法大幅降低譯碼器功能單元的 組合邏輯面積,同時降低譯碼裝置的硬件實現復雜度; 2、本發明利用多級顯式存儲系統優化LDPC譯碼裝置的數據組織方式,極大降低 譯碼裝置本地存儲器的面積開銷; 3、本發明根據不同碼率的編碼規則,采用模式可重構存儲管理技術對譯碼校驗節 點和信息節點的迭代中間量進行背靠背式存儲,進一步降低本地存儲器的面積開銷;
4、本發明鑒于LDPC碼譯碼過程各并行功能單元的工作時序相同而數據集不同的 特點,譯碼裝置采用單控制流多數據流(SCMD)結構,降低譯碼裝置的控制邏輯的復雜度和 開銷。 5、本發明適用于結構化LDPC碼的譯碼,特別適用于碼長較長,碼率種類繁多的 LDPC碼標準的譯碼,比如DVB-S2LDPC碼。該譯碼方法可在譯碼性能和復雜度之間取得較好 的折中,譯碼裝置具有譯碼結構和功能單元實現簡單、存儲面積和功能單元面積優化等優 點。
圖1是(12, 3, 6)規則LDPC碼的Tanner圖; 圖2是本發明用于LDPC碼譯碼方法的流程示意圖; 圖3是本發明中用于校驗節點更新CFU的實現步驟之一的示意圖; 圖4是本發明中用于校驗節點更新CFU的實現步驟之二的示意圖; 圖5是本發明中用于校驗節點更新CFU的實現步驟之三的示意圖; 圖6是本發明譯碼裝置在顯式存儲SoC結構中的位置關系示意圖; 圖7是本發明譯碼裝置的總體結構框架結構示意圖; 圖8是本發明用于并行度為P/N的LDPC碼譯碼處理單元的陣列結構框架示意圖;
圖9是本發明針對360/4并行DVB-S2LDPC碼普通幀1/2碼率的存儲單元組織方 式示意圖; 圖10是本發明針對360/4并行DVB-S2 LDPC碼普通幀1/2碼率下活躍中間量集和 非活躍中間量集在兩級存儲器的組織方式示意圖,其中圖10(a)為變量節點的調度狀態, 圖10(b)是和圖10(a)相對應的校驗中間量調度狀態; 圖11是本發明應用于DVB-S2標準普通幀1/2碼率下的誤碼性能示意圖。
-步詳細說明,
具體實施例方式
以下將結合具體實施例和說明書附圖對本發明做進-
如圖2所示,為本發明的譯碼流程示意圖。
(1)、譯碼的初始化該初始化過程包括將接收到的對數似然比 LLR(log-likelihood ratio)按特定的存儲方式存儲到"RAM V"中、初始化"RAM C"的值為 0 、預先設定一個最大迭代次數。
X寸n = 1,2,…,N,
義 =義r,八2 = 0, m e M (n)
(2)、迭代過程啟動迭代次數計數器Iter。 對每個校驗節點m二 1,2,…,M,依次計算
(公式i) A=
'maxl
min |義
—A 0 (公式2)
W(附)(公式3)
HAl-"《,
(3)、輸出譯碼結果當迭代次數計數器Iter達到最大迭代數且完成最后一個校 驗節點的譯碼操作時,停止譯碼并輸出譯碼結果^ =(義 S0) 0:1 ,即將"RAM V"中所存儲 的An值的符號位作為譯碼結果輸出;否則,轉到步驟(2)繼續迭代。 在上述譯碼過程中,"RAM C"為校驗節點存儲塊,用來保存校驗節點的信息,該"校 驗節點的信息"主要包含最小值、次小值以及最小值的位置。"RAM V"為變量節點存儲塊, 用來保存變量節點的信息。A n(°)是接收到的對數似然比LLR (log-likelihood ratio),、 是變量節點向校驗節點傳遞的消息,A (k)是第k次迭代中校驗節點向變量節點傳遞的消 息,P是一個非負的修正值,M(n)表示與變量節點Xn相連的變量節點集合,N(m)表示與校 驗節點sm相連的變量節點集合,N(m) \n表示變量節點集合N(m)中去掉變量節點xn。
7
本發明在實施過程中的每次迭代譯碼共包含兩重循環,外層循環依次對每個校驗 節點進行計算,當所有的校驗節點計算完畢時,表示已完成一次迭代;內層循環根據采用的 Of f set修正最小和譯碼算法,對與校驗節點連接的變量節點依次進行處理。
如圖3、圖4和圖5所示,為本發明中校驗節點功能單元"CFU"的實現步驟示意 圖,其所對應的是譯碼流程兩重循環中的內層循環。該內層循環根據采用的譯碼算法, 對與校驗節點連接的變量節點進行處理,其中又包括兩次循環——第一子循環和第二子 循環。第一子循環的目的是為了更新最小值和次小值,圖3對應對第i組校驗節點進行 更新的第一子循環。它需要分別從"RAM V"和"RAM C"中讀取A。和A (k-",將它們相 減得到(、-Amn(k—"),將此結果的絕對值送去與新的最小值進行比較,將符號位送去進 行更新新的符號位集合NewSignSet,并將所有符號位進行異或操作得到新的符號集異或 結果NewSignM。 IndexCounter表示正在處理的當前校驗節點所連接的變量節點索引計 數值,Shift表示桶形移位器的移位值,Address表示訪問本地存儲器的訪問地址。根據 IndexCounter、 Shift和Address的值可以從校驗節點存儲塊"RAM C"中讀取An ;由于
—八(^)l只有兩個值,在校驗節點存儲塊"RAM C"中,只需存儲最小值OldMin,次 小值Sec01dMin和最小值索引值01dlndex以及(A n_ Amn(k—")的符號位集合OldSignSet。 根據IndexCounter和OldSignSet確定Amn(k—"的符號位,以及根據IndexCounter是否等 于01dlndex確定Amn(k-"的絕對值是最小值OldMin還是次小值Sec01dMin。當對校驗節 點所有相連的變量節點操作完之后,對新得到的最小值和次小值進行修正。如圖4所示, 為完成對最小值和次小值的修正操作。第二子循環是為了讀取Ajk)和Amn(k-",并將它們 相減得到(A」k)-A」k-D),將此結果送去變量節點功能單元"VFU",在變量節點功能單元 "VFU"中執行加法操作^ =A + A= — At",即完成了變量節點A n的更新,圖5對應內層 循環中的第二子循環。本次循環中,A (k-D的讀取方式與前一次循環中的讀取方式一樣, A (k)的讀取方式與A (k-"的讀取方式的讀取方式類似,只是Ajk'最終的符號位還需 要由IndexCounter和NewSignSet確定的符號位與NewSignSet的值進一步異或得到。第 二次循環完成之后,對校驗節點存儲塊"RAM C"中的存儲單元進行更新,將A (k-"更新為 A,(k),然后對下一個校驗節點進行譯碼操作。當對所有校驗節點都完成一次譯碼操作時, 表示已完成一次迭代譯碼。變量節點功能單元"VFU"包括簡單的加法操作,在此就不再通 過示意圖加以說明。 上述譯碼流程中,采用的譯碼算法為"改進的分層Offset最小和譯碼算法"(公 式2),它能更好平衡LDPC譯碼算法實現復雜度以及誤碼率BER。與一般的SPA譯碼算法不 同,本發明譯碼算法的每次迭代過程中,分層調度譯碼算法依次對每個校驗節點進行更新, 和校驗節點相連的變量節點的更新可以使用本次迭代中已經更新過的消息,加快了譯碼收 斂速度;其次,本發明所采用譯碼算法采用Offset修正最小和算法,使譯碼性能相對最小 和算法MSA有所提高;此外,與一般的LDPC譯碼算法不同的是,本發明中的譯碼算法不需要 在每次迭代完成后計算碼字的估計值&是否滿足校驗方程^//7 =0 (H是校驗矩陣),而在 達到一個預先設定的最大迭代次數之后直接輸出譯碼結果。 正是由于上述譯碼算法采用分層調度方式,每次迭代過程中對校驗節點依次進行 更新,因此改進了消息傳遞的特性,加快了譯碼過程的收斂速度;同時,上述"Offset最小和譯碼算法"可在計算復雜度和譯碼性能之間取得較好的折中,并且該算法不需要存儲接 收到的對數似然比,且校驗節點存儲單元只需保存最小值、次小值的絕對值和符號位,以及 存儲每個校驗節點所連接的變量節點,降低了譯碼裝置的存儲需求。 如圖6所示,在應用實例中,本發明譯碼裝置在顯式存儲結構片上系統
SoC(System onChip)中的位置示意圖。本發明的LDPC譯碼裝置作為主設備通過互連接
口和SoC的其他組件相連。本發明采用DMA工作方式的互連接口為LDPC譯碼裝置提供數
據,以提供更好的實時性。結構中應包含分布式多體便簽式二級存儲器L2,二級存儲器L2
是SoC中除主存儲器和內存之外的所有可訪問存儲器,可提供大容量、高帶寬的存儲服務。
LDPC譯碼裝置和其他IP核通過核間互連網絡實現二級存儲器的共享訪問,互連網絡的實
現方式可根據各IP核帶寬的需求和實現復雜度確定。LDPC譯碼裝置所在的互連網絡片內
總線,交叉開關結構或者片上網絡等,具體實現根據其他應用的需求確定。 本發明適用于顯式存儲結構的SoC,所謂顯式存儲結構是和Cache存儲結構相區
別的存儲結構,所有存儲單元都單獨編址,不存在對上層應用透明的某個數據的多份拷貝,
不需要在各級存儲器之間維護數據的一致性協議。 一般地,該類結構的主設備(包括處理
器、具備訪存能力的IP核)通過DMA或者LD/ST指令訪問各級存儲器。對二級存儲器的訪
問一般采用DMA方式,該方式可以較小的代價完成大批量數據的搬移。 如圖7所示,本發明譯碼裝置為可應用于面向通信的顯式存儲片上系統(SoC)中
的超低復雜度譯碼裝置,它包括碼率可重構存儲管理控制器、譯碼控制器和處理陣列單元。
碼率可重構存儲管理控制器包括一組針對不同碼率條件下的狀態機,由譯碼控制器配置重
構,完成不同碼率條件下的二級存儲器和本地存儲器之間的數據加載。譯碼控制器包括表
征校驗矩陣的地址序列存儲器和移位序列存儲器,校驗矩陣更新通路負責寫入不同碼率條
件下的地址信息和移位信息,將對應的地址信息和移位信息寫入到地址序列存儲器和移位
序列存儲器。地址序列存儲器存儲不同碼率條件下譯碼過程所需的地址信息,移位序列存
儲器存儲不同碼率條件下譯碼過程所需的桶型移位器控制信息,譯碼控制器用于通過單控
制流多數據流SCMD控制通路產生不同碼率條件下譯碼控制信號,控制信號包括本地存儲
器的地址和讀寫信號和桶形移位器的移位控制信號。處理陣列單元包括一組以上的功能單
元簇、功能單元數據交換網絡、一個以上的本地存儲器、模式可重構存儲管理控制器以及校
驗和變量中間量交換通路,功能單元簇包括校驗節點功能單元、變量節點功能單元,校驗節
點功能單元對應Tanner圖中一組變量節點,變量節點功能單元對應Tanner圖中一組校驗
節點,校驗(變量)節點通過互連網絡找到與之相連的變量(校驗)節點。功能單元數據
交換網絡包括一個多周期流水化桶形移位寄存器,功能單元簇通過功能單元數據交換網絡
與本地存儲器進行數據交互,本地存儲器通過模式可重構存儲管理控制器以及校驗和變量
中間量交換通路與碼率可重構存儲管理控制器相連。模式可重構存儲管理控制器負責通過
校驗和變量中間量交換通路產生不同碼率條件下配置本地存儲器中所存儲的校驗節點信
息和變量節點信息。譯碼控制器根據譯碼算法的特點控制處理單元陣列工作的時序,模式
可重構存儲管理控制器根據當前的數據組織特點完成活躍數據集在本地存儲器的讀取和
存儲以及非活躍數據集到本地存儲器、活躍數據集譯碼周期結束后到二級存儲器的存儲每
一個本地存儲器中包括校驗節點存儲塊和變量節點存儲塊,構成乒乓緩沖區,任何時刻均
只有一個存儲塊處于譯碼狀態,另外一個存儲塊正在進行下一周期活躍中間變量集的調入操作。本發明在支持多種碼率時并不需要在本地存儲器中存儲每種碼率下的校驗矩陣,當 需要改變碼率時,提前從二級存儲器中調入新碼率的校驗矩陣,采用乒乓方式加快碼率更 新的速度。 本發明提供的譯碼裝置能有效地將二級存儲器用于譯碼中間量存儲,即采用活躍 中間量調度技術。具體實現時,該裝置將譯碼迭代中間量,包括校驗節點中間量和變量節點 中間量,劃分為活躍中間量集和非活躍中間量集,活躍中間量集存儲在譯碼裝置的本地存 儲器中用作當前譯碼周期的對象,非活躍中間量集存儲在SoC各IP節點(包括譯碼裝置IP 節點)共享的二級存儲器中等待譯碼裝置的調度。本發明譯碼裝置的本地存儲器采用乒乓 方式,下一譯碼周期將激活成活躍中間量集的非活躍中間量集的部分數據將在當前活躍中 間量集的譯碼周期中調度進入本地存儲器。假設目標LDPC碼的算法并行度為P,那么譯碼 裝置中將包含P/N個變量節點功能單元(Variable Function Unit, VFU)和P/N個校驗節 點功能單元(CheckFunction Unit, CFU) ,N可根據面積開銷和吞吐率的需求進行調整,在本 發明中N被稱為并行度縮減參數。當N = 4時,任何譯碼周期中只有1/4的變量節點和校 驗節點作為活躍中間量集在本地存儲器中進行譯碼,而其中3/4的變量節點和校驗節點將 作為非活躍中間量集保存在二級存儲器中等待調度,任何一個譯碼周期只有占中間量總量 的1/4的非活躍中間量進行數據調入操作等待譯碼,也就是說所有的中間量將被劃分成4 份,按照時分復用的方式進入譯碼裝置進行譯碼。采用P/N并行方式的譯碼裝置在SoC結 構中本地存儲器的面積開銷將是P并行方式的2/N(采用了乒乓方式),同時該譯碼裝置的 吞吐率同樣將是P并行方式下的1/N。 本發明的譯碼裝置中,變量節點中間量和校驗節點中間量的存儲單元組織方 式采用一種"背靠背存儲技術",支持多種碼率條件下降低存儲需求。由于每種碼率下 校驗節點的度可能會不相同,且每個校驗節點需要存儲每條邊的符號位,最小值對應的 下標以及最小值和次小值的絕對值,所以每個校驗節點Amn(k)所對應的存儲單元數為 (《+「l0g2《"|+22),其中d。是校驗節點的度,Q是量化實現時最小值和次小值的存儲位寬。 碼長相同但碼率不同的LDPC碼,對于存儲器的位寬和存儲器的深度需求不同,如果采用直 接存儲的方式,存儲器的位寬和深度均需按照最大值設計,增加了譯碼器的存儲開銷,本發 明利用碼率可重構的背靠背存儲技術,在某些碼率下當d。較小時,將兩個或多個A (k)的 值占用校驗節點存儲塊的一行,在對校驗節點存儲塊的Amn(k)進行讀操作或寫操作時,由碼 率可重構存儲管理控制器控制并通過簡單的地址產生邏輯完成數據的讀取和存儲,以保證 讀操作或寫操作的正確性。該方案降低了譯碼器的存儲面積,提高了存儲單元的利用率。
結構化LDPC碼存在譯碼并行度參數,比如DVB-S2標準(ETSI EN 302 307 VI. 1.1)中LDPC碼的并行度為360。根據本發明所提供的算法以及結構化LDPC碼存在的 并行度,結合DVB-S2標準中碼長為64800bit的LDPC碼,自頂向下解釋本發明優化實現的 譯碼裝置,方法同樣適用于其他結構化LDPC碼,任何采用本發明所提出的思想優化結構化 LDPC碼譯碼裝置的方法都屬本發明的保護范圍。 如圖8所示,為適用于DVB-S2以及其他結構化LDPC碼的處理單元陣列結構,不同 LDPC碼之間的主要區別在于功能單元的數量。圖8包含L個變量節點功能單元"VFU"和L 個校驗節點功能單元"CFU",其中L = P/N,P為該LDPC碼的算法并行度,N為并行度縮減參 數。對于DVB-S2 LDPC碼,算法并行度為360,最多可包含360組功能單元,即P二 360,N =
10l,采用活躍中間量調度技術進行譯碼時,N可取2K,其中K為1,2,...。當K為1時,由于 采用了雙緩沖的方式,本地存儲器面積沒有任何降低,同時由于本地存儲器和二級存儲器 之間的數據交換,增加了二級存儲器的帶寬壓力。當K為2時,可減少一半本地存儲器的面 積,同時增加一定數量的二級存儲器的訪問壓力,譯碼裝置的吞吐率將下降為原來的1/4,K 為其他數值時類似。 變量節點存儲塊"RAM V"存儲解調之后的對數似然比LLR(Log Likelihood Ratio)和迭代過程中變量節點操作的中間結果,校驗節點存儲塊"RAM C"存儲迭代過程中 校驗節點操作的中間量,變量節點存儲塊"RAM V"和校驗節點存儲塊"RAM C"中數據的存 儲方式是由LDPC碼得編碼規律得到,以便校驗節點能通過互連網絡找到與之相連的變量 節點。相鄰的功能單元之間可以直接相連,不相鄰的功能單元之間可以通過多周期流水化 桶形移位器交換信息;校驗節點通過桶形移位器找到與之相連的變量節點,桶形移位器的 移位值Shift、地址值Address由譯碼控制器產生。采用活躍中間量技術進行譯碼優化時, 每組功能單元對應的校驗節點存儲塊"RAM C"和變量節點存儲塊"RAM V"都包含兩個存儲 體,構成乒乓緩沖區,任何時刻只有一個存儲體處于譯碼狀態,另外一個存儲體正在進行下 一周期活躍中間變量集的調入操作。 以下將仍以DVB-S2標準中的LDPC碼為例,說明如何采用"背靠背存儲技術"以及 "活躍中間量調度技術",降低本地存儲器的存儲容量需求,以及兩種技術條件下的譯碼裝 置本地存儲的組織方式。 DVB-S2標準中的LDPC碼包含普通幀和短幀兩種幀模式,兩種幀下碼長分別為 64800和16200比特,并支持1/4、 l/3、2/5、 l/2、3/5、2/3、3/4、4/5、5/6、8/9、9/10共11種碼 率。根據標準中的編碼算法可知,DVB-S2標準中的LDPC碼具有并行度為360的特點,本發 明在介紹背靠背技術和活躍中間量調度技術時,假設譯碼裝置采用360/4的并行方案。在 該并行方式下,譯碼中間量被等分成4分,任何時刻只有1/4的中間量處于本地存儲器進行 譯碼,即活躍中間量占總的中間量的1/4。將LDPC碼的N個變量節點分成K個信息節點和 (N-K)個奇偶節點兩類,并將信息節點分成90組,每組包含的K/90個信息節點映射到VFUi 上;將奇偶節點也分成90組,每組包含扭q個奇偶節點,它們也映射到VFUi上。因此,每個 VFU包含一組信息節點和一組奇偶節點。將校驗節點也分成90組,每組包含扭q個校驗節 點,q是一個與碼率相關的常數。這樣分組之后,每組校驗節點通過移位值Shift和地址信 號值Address就可以找到一組相對應的信息節點。經過實驗,采用本發明提出的算法進行 DVB-S2LDPC碼的譯碼,RAM V中的數據量化方式為8bit, RAM C中最小值和次小值的量化方 式為5+lbit。如果采用直接的存儲方式,那么由于DVB-S2LDPC碼普通幀中,校驗節點的度 最大為30,每個單個RAM C的寬度必須為5 (最小值絕對值)+5 (次小值絕對值)+5 (最小 值位置)+30(各值符號)=45,如不采用活躍中間量存儲,則單個RAM (]的深度為90*4 = 360。 對于DVB-S2標準中LDPC碼,其校驗節點的度和RAM C的深度是負相關的,因此本 發明采用"背靠背"技術完成存儲優化。所謂"背靠背"技術是和順序按節點存儲相區別的 針對RAM C的存儲技術。傳統實現RAM C的存儲分配時,任何碼率條件下,校驗節點的信息 將獨占RAM C中的某一行,而不管該行的利用率。而背靠背存儲技術是一種利用率敏感的 存儲技術,如果某種條件下校驗節點的度足夠小,比如DVB-S2LDPC碼中的度為7的情況,一行中可以存儲兩個或兩個以上的校驗節點時,則將原先相繼存儲的兩個節點存儲在同一 RAM C行中,而具體選擇哪一行采用操作則由譯碼控制器確定。以DVB-S2 LDPC碼的普通幀 為例,當碼率為1/4, 1/3, 2/5, 1/2時,RAM C的每一行存儲兩個校驗節點的信息;當碼率為 3/5,2/3,3/4,4/5,5/6,8/9,9/10時,RAM C的每一行存儲一個校驗節點存儲單元。采用該 技術后,可將RAM C的深度減小到46*4。 如圖9所示,為譯碼器在普通幀1/2碼率下(q = 90, K = 32400)第i個存儲塊 RAM Vi和RAM &的存儲方式(沒有采用活躍中間量技術,因此所有中間量保存在本地存儲 器中)。RAMVi中包含信息節點的存儲和奇偶節點的存儲兩部分。圖中的數字表示該位置 存儲的信息對應于校驗節點或者信息節點的序列號。 如圖10所示,為給出了 1/2碼率條件下DVB-S2 LDPC碼譯碼過程中,采取1/4活 躍中間量調度技術后的存儲組織示意圖,其中圖10(a)為變量節點的調度狀態,圖10(b)是 和圖10(a)相對應的校驗中間量調度狀態。圖中顯示中間量的第一部分正在譯碼狀態,而 中間量的第2部分正在調入本地存儲器。值得注意的是,在第2部分調入本地存儲器之前, 必須先將本地存儲器中存儲的前一個譯碼周期完成譯碼的中間量的第4部分寫回二級存 儲器,該部分沒有顯示在圖中。 圖11是采用本發明提供的譯碼方法和譯碼裝置,將本發明應用于DVB-S2標準中 普通幀1/2碼率下,最大迭代次數為15時的誤碼性能。隨著信噪比Eb/No的提高,誤碼率 BER呈現下降趨勢,誤碼率在10-7時出現一個誤碼平臺,能滿足DVB-S2標準的應用需求。
以上所述僅是本發明的一種實施方式,本發明的保護范圍并不僅局限于上述實施 例,凡屬于本發明思路下的技術方案均屬于本發明的保護范圍。應當指出,對于本技術領域 的普通技術人員來說,在不脫離本發明原理前提下的若干改進和潤飾,這些改進和潤飾也 應視為本發明的保護范圍。
權利要求
一種用于顯式存儲片上系統的結構化LDPC碼譯碼方法,其特征在于步驟為(1)、譯碼的初始化該初始化過程包括將接收到的對數似然比LLR按特定的存儲方式存儲到變量節點存儲塊中、初始化校驗節點存儲塊的值為0、預先設定一個最大迭代次數;對n=1,2,…,N, <mrow><msub> <mi>λ</mi> <mi>n</mi></msub><mo>=</mo><msubsup> <mi>λ</mi> <mi>n</mi> <mrow><mo>(</mo><mn>0</mn><mo>)</mo> </mrow></msubsup><mo>,</mo> </mrow> <mrow><msubsup> <mi>Λ</mi> <mi>mn</mi> <mrow><mo>(</mo><mn>0</mn><mo>)</mo> </mrow></msubsup><mo>=</mo><mn>0</mn><mo>,</mo> </mrow>m∈M(n)(公式1)(2)、迭代過程啟動迭代次數計數器Iter;即對每個校驗節點m=1,2,…,M,依次計算 <mrow><msubsup> <mi>Λ</mi> <mi>mn</mi> <mrow><mo>(</mo><mi>k</mi><mo>)</mo> </mrow></msubsup><mo>=</mo><mrow> <mo>(</mo> <munder><mi>Π</mi><mrow> <msup><mi>n</mi><mo>′</mo> </msup> <mo>∈</mo> <mi>N</mi> <mrow><mo>(</mo><mi>m</mi><mo>)</mo> </mrow> <mo>\</mo> <mi>n</mi></mrow> </munder> <mi>sign</mi> <mrow><mo>(</mo><msub> <mi>λ</mi> <mi>n</mi></msub><mo>-</mo><msubsup> <mi>Λ</mi> <mi>mn</mi> <mrow><mo>(</mo><mi>k</mi><mo>-</mo><mn>1</mn><mo>)</mo> </mrow></msubsup><mo>)</mo> </mrow> <mo>)</mo></mrow><mo>·</mo><mi>max</mi><mrow> <mo>(</mo> <munder><mi>min</mi><mrow> <msup><mi>n</mi><mo>′</mo> </msup> <mo>∈</mo> <mi>N</mi> <mrow><mo>(</mo><mi>m</mi><mo>)</mo> </mrow> <mo>\</mo> <mi>n</mi></mrow> </munder> <mo>|</mo> <msub><mi>λ</mi><mi>n</mi> </msub> <mo>-</mo> <msubsup><mi>Λ</mi><mi>mn</mi><mrow> <mo>(</mo> <mi>k</mi> <mo>-</mo> <mn>1</mn> <mo>)</mo></mrow> </msubsup> <mo>|</mo> <mo>-</mo> <mi>β</mi> <mo>,</mo> <mn>0</mn> <mo>)</mo></mrow> </mrow>(公式2) <mrow><msub> <mi>λ</mi> <mi>n</mi></msub><mo>=</mo><msub> <mi>λ</mi> <mi>n</mi></msub><mo>-</mo><msubsup> <mi>Λ</mi> <mi>mn</mi> <mrow><mo>(</mo><mi>k</mi><mo>-</mo><mn>1</mn><mo>)</mo> </mrow></msubsup><mo>+</mo><msubsup> <mi>Λ</mi> <mi>mn</mi> <mrow><mo>(</mo><mi>k</mi><mo>)</mo> </mrow></msubsup><mo>,</mo> </mrow>n∈N(m)(公式3)(3)、輸出譯碼結果當迭代次數計數器Iter達到最大迭代數且完成最后一個校驗節點的譯碼操作時,停止譯碼并輸出譯碼結果即將變量節點存儲塊中所存儲的λn值的符號位作為譯碼結果輸出;否則,轉到步驟(2)繼續迭代;在上述譯碼過程中,λn(0)是接收到的對數似然比LLR,λn是變量節點向校驗節點傳遞的消息,Λmn(k)是第k次迭代中校驗節點向變量節點傳遞的消息,β是一個非負的修正值,M(n)表示與變量節點xn相連的變量節點集合,N(m)表示與校驗節點sm相連的變量節點集合,N(m)\n表示變量節點集合N(m)中去掉變量節點xn。FSA00000013950400015.tif
2. 根據權利要求1所述的用于顯式存儲片上系統的結構化LDPC碼譯碼方法,其特征在于所述步驟(2)的迭代過程包括外層循環和內層循環,所述外層循環依次對每個校驗節點進行計算,當所有的校驗節點計算完畢時,表示已完成一次迭代;所述內層循環采用Offset修正最小和譯碼算法,對與校驗節點連接的變量節點依次進行處理。
3. 根據權利要求2所述的用于顯式存儲片上系統的結構化LDPC碼譯碼方法,其特征在于所述內層循環中包括第一子循環和第二子循環,所述第一次子循環分別從變量節點存儲塊和校驗節點存儲塊中讀取、和Amn(k-",將它們相減得到(An-Amn(k-"),將此結果的絕對值送去與新的最小值進行比較,將符號位送去進行更新新的符號位集合NewSignSet,并將所有符號位進行異或操作得到新的符號集異或結果NewSignM ;IndexCo皿ter表示正在處理的當前校驗節點所連接的變量節點索引計數值,Shift表示桶形移位器的移位值,Address表示訪問本地存儲器的訪問地址;根據IndexCo皿ter、 Shift和Address的值可以從校驗節點存儲塊中讀取An ;由于 ,^^\"|入-AtDl只有兩個值,在校驗節點存儲塊中,只需存儲最小值OldMin,次小值SecOldMin和最小值索引值Oldlndex以及(A n-Amn(k-")的符號位集合OldSignSet ;根據IndexCounter和OldSignSet確定Amn(k—"的符號位,以及根據IndexCounter是否等于Oldlndex確定Amn(k-"的絕對值是最小值OldMin還是次小值SecOldMin ;當對校驗節點所有相連的變量節點操作完之后,對新得到的最小值和次小值進行修正;所述第二子循環為分別讀取Ajk)和Amn(k-",并將它們相減得到(Aj)-A,(k—D),將此結果送去變量節點功能單元,在變量節點功能單元中執行加法操作^=義 +八2-At",即完成了變量節點入n的更新;所述第二子循環完成之后,對校驗節點存儲塊中的存儲單元進行更新,將A -"更新為Ajk),然后對下一個校驗節點進行譯碼操作;當對所有校驗節點都完成一次譯碼操作時,表示已完成一次迭代譯碼。
4. 一種用于顯式存儲片上系統的結構化LDPC碼譯碼裝置,其特征在于包括 碼率可重構存儲管理控制器,包括一組針對不同碼率條件下的狀態機,由譯碼控制器配置重構,完成不同碼率條件下的二級存儲器和本地存儲器之間的數據加載;譯碼控制器,包括表征校驗矩陣的地址序列存儲器和移位序列存儲器,所述地址序列 存儲器存儲不同碼率條件下譯碼過程所需的地址信息,所述移位序列存儲器存儲不同碼率 條件下譯碼過程所需的桶型移位器控制信息,所述譯碼控制器用于通過單控制流多數據流 SCMD控制通路產生不同碼率條件下譯碼控制信號,所述控制信號包括本地存儲器的地址和 讀寫信號和桶形移位器的移位控制信號;處理陣列單元,包括一組以上的功能單元簇、功能單元數據交換網絡、一個以上的本地 存儲器、模式可重構存儲管理控制器以及校驗和變量中間量交換通路,所述功能單元簇包 括校驗節點功能單元和變量節點功能單元,校驗節點功能單元對應一組變量節點,變量節 點功能單元對應一組校驗節點,所述功能單元數據交換網絡包括一個多周期流水化桶形移 位寄存器,所述功能單元簇通過功能單元數據交換網絡與本地存儲器進行數據交互,所述 本地存儲器通過模式可重構存儲管理控制器以及校驗和變量中間量交換通路與碼率可重 構存儲管理控制器相連,所述模式可重構存儲管理控制器負責通過校驗和變量中間量交換 通路產生不同碼率條件下配置本地存儲器中所存儲的校驗節點信息和變量節點信息。
5. 根據權利要求4所述的用于顯式存儲片上系統的結構化LDPC碼譯碼裝置,其特征在 于所述每一個本地存儲器中包括校驗節點存儲塊和變量節點存儲塊,構成乒乓緩沖區,任 何時刻均只有一個存儲塊處于譯碼狀態,另外一個存儲塊正在進行下一周期活躍中間變量 集的調入操作。
全文摘要
一種用于顯式存儲片上系統的結構化LDPC碼譯碼方法及裝置,其步驟為(1)譯碼的初始化該初始化過程包括將接收到的對數似然比LLR按特定的存儲方式存儲到變量節點存儲塊中、初始化校驗節點存儲塊的值為0、預先設定一個最大迭代次數;(2)迭代過程啟動迭代次數計數器Iter,進行迭代操作;(3)輸出譯碼結果當迭代次數計數器Iter達到最大迭代數且完成最后一個校驗節點的譯碼操作時,停止譯碼并輸出譯碼結果;否則,轉到步驟(2)繼續迭代。該譯碼裝置包括碼率可重構存儲管理控制器、譯碼控制器和處理陣列單元。本發明具有結構簡單緊湊、成本低廉、操作方便、能夠降低硬件復雜度、可支持多種碼率等優點。
文檔編號H04M13/00GK101777921SQ20101010221
公開日2010年7月14日 申請日期2010年1月28日 優先權日2010年1月28日
發明者劉冬培, 劉衡竹, 周理, 張波濤, 陳書明, 陳躍躍 申請人:中國人民解放軍國防科學技術大學