專利名稱:一種高速Turbo譯碼方法和裝置的制作方法
技術領域:
本發明涉及通信領域,尤其是涉及一種高速Turbo譯碼方法和裝置。
背景技術:
目前,采用多入多出(MIMO, mult_in and mult_out)技術的HSPA+(high speed packet access plus,增強型高速分組接入技術)系統,其下行數據速率可以達到42Mbps。 這樣高的數據吞吐率對于下行譯碼鏈條中的關鍵環節-Turbo (特博)譯碼是一個巨大的挑 戰。 Turbo譯碼器是HSPA+相關協議3GPP TS 25. 212定義的差錯控制機 制-HARQ(hybrid automatic request equipment,混合型自動重傳請求機制)中的重要功 能部件,解調器中得到的軟比特數據往往要在Turbo譯碼器中經過多次迭代譯碼,其譯碼 延遲不僅取決于數據量,還取決于要求的譯碼性能和譯碼器結構。同時3GPP協議對數據在 下行譯碼鏈路上的總延遲是有嚴格限定的,因此Turbo譯碼器的譯碼延遲時間往往成為整 個HSDPA業務的瓶頸,要提升下行分組業務的數據吞吐率,首先就得降低Turbo譯碼器的譯 碼延遲。 現有Turbo譯碼方案中只將"后向狀態運算"和"前向狀態運算"做并行化操作, "訓練運算"與"后向狀態運算"由同一個運算單元完成。首先做"訓練運算",得到訓練結果 后啟動"后向狀態運算"。這樣,譯碼延遲時間必須將"訓練運算"周期運算在內。
在實現本發明過程中,發明人發現現有技術中至少存在如下問題訓練周期與狀 態運算周期串行排列,邏輯資源的使用效率低;譯碼周期與訓練長度直接相關,訓練長度加 大則直接導致譯碼延遲加長;當性能要求較長的訓練長度時,譯碼延遲變得很大;若要提 升譯碼器吞吐率則需要成倍數地增加邏輯資源,使成本明顯提高。
發明內容
本發明實施例提出一種高速Turbo譯碼方法和裝置,以縮短譯碼延遲。 —方面,本發明實施例提供一種高速Turbo譯碼方法,該方法包括接收待譯碼的
數據碼塊;將所述待譯碼的數據碼塊以滑動窗長度為單位分成多個子數據塊;對所述子數
據塊進行Turbo譯碼中訓練運算、后向狀態運算、前向狀態運算和外信息運算的并行操作
來得到譯碼結果。 另一方面,本發明實施例提供一種高速Turbo譯碼裝置,該裝置包括接收單元,
用于接收待譯碼的數據碼塊;碼塊劃分單元,用于將所述待譯碼的數據碼塊以滑動窗長度
為單位分成多個子數據塊;并行運算單元,用于對所述子數據塊進行Turbo譯碼中訓練運
算、后向狀態運算、前向狀態運算和外信息運算的并行操作來得到譯碼結果。 本發明實施例的有益效果在于,通過對子數據塊進行訓練運算、后向狀態運算、前
向狀態運算和外信息運算的并行操作,在保持高的譯碼性能的同時,縮短了譯碼延遲。
為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例描述
中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些 實施例,對于本領域普通技術人員來講,在不付出創造性勞動性的前提下,還可以根據這些 附圖獲得其他的附圖。
圖1為本發明實施例一提供的一種高速Turbo譯碼方法流程示意圖; 圖2為本發明實施例二提供的一種高速Turbo譯碼方法流程示意圖; 圖3為本發明實施例二提供的高速Turbo譯碼方法中的單次迭代周期內對存儲部
件以及運算部件的時間占用流圖; 圖4為本發明實施例三提供的一種高速Turbo譯碼裝置結構示意圖
圖5為本發明實施例四提供的一種高速Turbo譯碼裝置結構示意圖
圖6為本發明實施例五提供的一種高速Turbo譯碼器的結構示意圖
圖7為本發明實施例五提供的一種邏輯存儲單元的結構示意圖;
圖8為本發明實施例五提供的一種運算處理單元的結構示意圖;
圖9為本發明實施例五提供的一種運算處理單元和存儲單元的數據交互示意圖,
具體實施例方式
下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完 整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基于 本發明中的實施例,本領域普通技術人員在沒有作出創造性勞動前提下所獲得的所有其他 實施例,都屬于本發明保護的范圍。
實施例一 如圖1所示為本發明實施例一提供的一種高速Turbo譯碼方法流程示意圖,該方 法包括如下步驟 S101 :接收待譯碼的數據碼塊,該數據碼塊的接收步驟屬于現有技術,在此就不再 進行贅述了。 S102:將所述待譯碼的數據碼塊以滑動窗長度為單位分成多個子數據塊,該滑動 窗長度一般以比特(bit)為單位,其數值可以預先設定。在本實施例中,這些子數據塊需要 存儲于一存儲單元內,為后續的各種譯碼運算提供數據來源,該后續的譯碼運算比如訓練 運算、后向狀態運算、前向狀態運算和外信息運算所用到的是數據碼塊的系統位信息、校驗 位信息和外信息等軟信息。 S103 :對所述子數據塊進行Turbo譯碼中訓練運算、后向狀態運算、前向狀態運算 和外信息運算的并行操作來得到譯碼結果。 上述Turbo譯碼中的訓練運算、后向狀態運算、前向狀態運算和外信息運算需要
分別為各個運算模塊提供所需的輸入數據,這樣,如果僅通過一套存儲系統的話很難實現
上述四種運算的并行操作。因此,本發明實施例采用了多套存儲系統的方案來實現對上述
子數據塊進行Turbo譯碼中訓練運算、后向狀態運算、前向狀態運算和外信息運算的并行
操作,使得各個存儲系統可以獨立地為運算模塊提供所需的輸入數據。 當然,隨著存儲系統的不同選擇,本發明實施例的方法可以有多種不同的實現方法,在本實施例中并不限定以何種具體的多存儲系統來實現本發明。 本發明實施例通過對子數據塊進行訓練運算、后向狀態運算、前向狀態運算和外
信息運算的并行操作,在保持高的譯碼性能的同時,縮短了譯碼延遲。 實施例二 如圖2所示為本發明實施例二提供的一種高速Turbo譯碼方法流程示意圖,該方 法包括如下步驟 S201 :接收待譯碼的數據碼塊。 S202 :將所述待譯碼的數據碼塊以滑動窗長度為單位分成多個子數據塊。 步驟S201和S202和實施例一中相類似,在此就不再進行贅述了 。 S203:將所述子數據塊內的運算信息更替式地存儲于容量為滑動窗長度的三個鏡
像存儲器內。作為本發明的一個實施例,該運算信息是指該子數據塊內的系統位信息、校驗
位信息和外信息。 發明人在實現本發明的過程中發現,要以上述子數據塊為單位實現Turbo譯碼中 訓練運算、后向狀態運算、前向狀態運算和外信息運算的并行操作,每次并行操作需要涉及 到4個子數據塊內的運算信息,而最少通過3個鏡像存儲器的更替式存儲即可以實現為訓 練運算、后向狀態運算、前向狀態運算和外信息運算的并行操作提供所需的輸入數據。
作為本發明的一個實施例,上述將子數據塊內的運算信息更替式地存儲于容量為 滑動窗長度的三個鏡像存儲器內具體可以包括 將第N個子數據塊的運算信息存儲于第一鏡像存儲器或第二鏡像存儲器,N為正 整數; 將第N+2個子數據塊的運算信息存儲于所述第N個子數據塊的運算信息所在的鏡 像存儲器以替代其中的第N個子數據塊的運算信息; 將所述第N個子數據塊的運算信息存儲于第三鏡像存儲器以替代其中的運算信 息,并將該被替代的運算信息用于前向狀態運算及外信息運算。 需要指出的是,上述第一鏡像存儲器、第二鏡像存儲器和第三鏡像存儲器并不特 指存儲器的順序,而是為了方便將三個鏡像存儲器加以區分。 為了對該交替式存儲做進一步詳細說明,請參見圖3,其為本發明實施例二提供的 高速Turbo譯碼方法中的單次迭代周期內對存儲部件以及運算部件的時間占用流圖。
本發明實施例將接收到的數據碼塊的長度為5114bit,而滑動窗長度為128bit, 因此,該數據碼塊可以劃分成40個子數據塊,這些子數據塊的軟信息存儲于X_RAM、 Y_RAM 和Z_RAM中,其中,X_RAM用于存儲系統位信息,Y_RAM用于存儲校驗位信息,而Z_RAM用于 存儲外信息。 首先,在第1窗所在時間內,本發明實施例先從第l個子數據塊中讀取出該子數據 碼塊的系統位信息、校驗位信息和外信息,并將該些信息寫入第一鏡像存儲器(RAM_1)中。 由于訓練運算結果是為相鄰前面的子數據塊作后向狀態運算時提供輸入數據的,因此該第 1個子數據塊不需要進行訓練運算。 然后,在第2窗所在時間內,本發明實施例再從第2個子數據塊中讀取出該子數據 碼塊的軟信息,并將該軟信息寫入第二鏡像存儲器(RAM_2)中。當然本發明實施例如果將 第1個子數據塊存儲于RAM_2中,則該步驟中則將第2個子數據塊的上述軟信息寫入RAM_1中。需要指出的是,本發明實施例在存儲第2個子數據塊的軟信息的同時,還將將該軟信息 用于進行第2個子數據塊的訓練運算。 接著,在第3窗所在時間內,本發明實施例從第3個子數據塊中讀取出該子數據碼 塊的軟信息,并將該軟信息寫入RAM_1中以替代其中的第1個子數據塊的軟信息,而被替換 的第1個子數據塊的軟信息則被寫入第三鏡像存儲器(RAM_3)中,同時,該被替換的第1個 子數據塊的軟信息還用于進行第1個子數據塊的后向狀態運算。 在第4窗所在時間內,本發明實施例從第4個子數據塊中讀取出該子數據碼塊的
軟信息,并將該軟信息寫入RAM_2以替代其中的第2個子數據塊的軟信息,而被替換的第2
個子數據塊的軟信息則被寫入RAM_3中并替代了其中的第1個子數據塊的軟信息,而該第
1個子數據塊的軟信息則被用于進行前向狀態運算及外信息運算。 從第5窗開始,則重復進行上述RAM_1、 RAM_2、 RAM_3內數據的更替。 S204 :從所述鏡像存儲器內讀取所需的運算信息以進行Turbo譯碼中訓練運算、
后向狀態運算、前向狀態運算和外信息運算的并行操作。 由于Turbo譯碼中訓練運算、后向狀態運算、前向狀態運算和外信息運算中需要 用到4個子數據塊的運算信息,因此,如果上述并行運算的起始點應該是在第4個子數據 塊。 上述進行Turbo譯碼中訓練運算、后向狀態運算、前向狀態運算和外信息運算的 并行操作包括 根據第M個子數據塊的運算信息進行第M個子數據塊的訓練運算,M為大于等于4 的正整數; 根據第M-l個子數據塊的訓練運算結果、第M-2個子數據塊的運算信息進行第M-2 個子數據塊的后向狀態運算; 根據第M-3個子數據塊的運算信息進行第M-3個子數據塊的前向狀態運算;
根據第M-3個子數據塊的后向狀態運算結果、第M-3個子數據塊的運算信息和第 M-3個子數據塊的前向狀態運算結果來進行第M-3個子數據塊的外信息運算。
同樣的,在這里結合圖3對上述并行操作進行說明,如圖3中所示,上述4種運算 的并行操作始于第4個子數據塊511 384bit所對應的第4窗。在該第4窗所在時間內, 其通過如下方式完成了上述四種運算的并行操作 訓練運算從X_RAM、Y_RAM和Z_RAM中讀取出第4個子數據塊的系統位信息、校驗 位信息和外信息,然后根據該些信息進行第4個子數據塊的訓練運算。
后向狀態運算根據第3窗時對第3個子數據塊383 256bit的訓練運算結果、 以及從RAM_2中讀取的第2個子數據塊255 128bit的運算信息進行第2個子數據塊的 后向狀態運算,并將運算結果存儲至B—RAM中。 前向狀態運算根據從RAM_3中讀取的第1個子數據塊127 Obit的運算信息進 行第一個子數據塊的前向狀態運算; 外信息運算從B—RAM中讀取出第2個子數據塊的后向狀態運算結果、從RAM_3中 讀取的第1個子數據塊的運算信息、再根據前向狀態運算的結果進行第1個子數據塊的外 信息運算。然后,再將該外信息運算結果寫入Z—RAM,作為下一次迭代的外信息加以利用。
從第5窗開始,其并行操作是重復第4窗的操作步驟,只是利用的數據不一樣,比如,第5窗所涉及到的子數據塊為第2個子數據塊至第5個子數據塊。 本發明實施例通過3個鏡像存儲器交替存儲子數據塊運算信息的方式,使得單次
迭代周期在碼塊長度的基礎上僅增加了 3個滑窗的時間,而現有技術中僅將后向狀態計算
和前向運算并行化,其單次迭代周期需要在碼塊長度的基礎上增加39個滑動窗的時間;另
外,本發明實施例僅通過3個容量為滑窗長度的鏡像存儲器就完成了訓練運算、后向狀態
運算、前向狀態運算和外信息運算的并行操作,以增加最小存儲資源的代價就完成了上述4
種運算的并行操作。 實施例三 如圖4為本發明實施例三提供的一種高速Turbo譯碼裝置結構示意圖,該裝置包 括接收單元410、碼塊劃分單元420和并行運算單元430,其中,碼塊劃分單元420分別和 接收單元410及并行運算單元430相連,需要指出的是,本發明是從邏輯功能單元的角度對 Turbo譯碼裝置進行的描述,實際中的Turbo譯碼裝置并不限于具有該些單元,而只要具有 該些單元的功能即可。 接收單元410用于接收待譯碼的數據碼塊,該數據碼塊的接收屬于現有技術,在 此就不再進行贅述了。 碼塊劃分單元420用于將接收單元410接收的待譯碼的數據碼塊以滑動窗長度為 單位分成多個子數據塊,該滑動窗長度一般以比特(bit)為單位,其數值可以預先設定。
作為本發明的一個實施例,這些子數據塊需要存儲于一存儲單元內,為后續的各 種譯碼運算提供數據來源,由于后續的譯碼運算比如訓練運算、后向狀態運算、前向狀態運 算和外信息運算所用到的是數據碼塊的系統位信息、校驗位信息和外信息等軟信息,因此, 在本實施例中,也可以僅將上述軟信息存儲于一存儲單元內。 并行運算單元430用于對上述子數據塊進行Turbo譯碼中訓練運算、后向狀態運 算、前向狀態運算和外信息運算的并行操作來得到譯碼結果。 上述Turbo譯碼中的訓練運算、后向狀態運算、前向狀態運算和外信息運算需要 分別為各個運算模塊提供所需的輸入數據,這樣,如果僅通過一套存儲系統的話很難實現 上述四種運算的并行操作。因此,本發明實施例的高速Turbo譯碼裝置采用了多套存儲系 統的方案來實現對上述子數據塊進行Turbo譯碼中訓練運算、后向狀態運算、前向狀態運 算和外信息運算的并行操作,使得各個存儲系統可以獨立地為運算模塊提供所需的輸入數 據。 當然,隨著存儲系統的不同選擇,本發明實施例的高速Turbo譯碼裝置可以有多 種不同的實現方式,在本實施例中并不限定以何種具體的多存儲系統來實現本發明。
本發明實施例通過對子數據塊進行訓練運算、后向狀態運算、前向狀態運算和外 信息運算的并行操作,在保持高的譯碼性能的同時,縮短了譯碼延遲。
實施例四 如圖5為本發明實施例四提供的一種高速Turbo譯碼裝置結構示意圖,該裝置包 括接收單元510、碼塊劃分單元520和并行運算單元530,其中,碼塊劃分單元520分別和 接收單元510及并行運算單元530相連,需要指出的是,本發明也是從邏輯功能單元的角度 對Turbo譯碼裝置進行的描述,實際中的Turbo譯碼裝置并不限于具有該些單元,而只要具 有該些單元的功能即可。
接收單元510和碼塊劃分單元520的作用和實施例三中相類似,在此就不再進行 贅述了。 在本實施例中,并行運算單元530又具體包括交替存儲模塊531、讀取模塊532和 運算模塊533,其中,讀取模塊532和運算模塊533之間相互連接。 交替存儲模塊531用于將所述子數據塊內的運算信息更替式地存儲于容量為滑 動窗長度的三個鏡像存儲器內,在本實施例中,上述運算信息包括系統位信息、校驗位信息 和外信息。在本實施例的圖示中并未繪示該三個鏡像存儲器,在實際實現過程中,這三個鏡 像存儲器可以位于本發明實施例的譯碼裝置內部,當然其也可以位于譯碼裝置的外部作為 外部存儲器。 發明人在實現本發明的過程中發現,要以上述子數據塊為單位實現Turbo譯碼中
訓練運算、后向狀態運算、前向狀態運算和外信息運算的并行操作,每次并行操作需要涉及
到4個子數據塊內的運算信息,而最少通過3個鏡像存儲器的更替式存儲即可以實現為訓
練運算、后向狀態運算、前向狀態運算和外信息運算的并行操作提供所需的輸入數據。 作為本發明的一個實施例,該交替存儲模塊531具體還可以包括 第一存儲模塊,用于將第N個子數據塊的運算信息存儲于第一鏡像存儲器或第二
鏡像存儲器,N為正整數; 第二存儲模塊,用于將第N+2個子數據塊的運算信息存儲于所述第N個子數據塊
的運算信息所在的鏡像存儲器以替代其中的第N個子數據塊的運算信息; 第三存儲模塊,用于將所述第N個子數據塊的運算信息存儲于第三鏡像存儲器以
替代其中的運算信息,并將該被替代的運算信息用于前向狀態運算及外信息運算。 關于上述交替存儲模塊531內各子模塊的具體用途的說明可以參見實施例二,在
此就不再進行贅述了。 讀取模塊532用于從上述三個鏡像存儲器內讀取所需的運算信息,而運算模塊 533則用于根據讀取模塊532讀取的運算信息進行Turbo譯碼中訓練運算、后向狀態運算、 前向狀態運算和外信息運算的并行操作。 作為本發明的一個實施例,運算模塊533可以具體包括訓練運算子模塊、后向狀 態運算子模塊、前向狀態運算子模塊和外信息運算子模塊,在本實施例中該4種運算模塊 在一個滑動窗周期內可以進行并行計算,其中 訓練運算子模塊用于根據第M個子數據塊的運算信息進行第M個子數據塊的訓練 運算,M為大于等于4的正整數; 后向狀態運算子模塊用于根據第M-l個子數據塊的訓練運算結果、第M-2個子數 據塊的運算信息進行第M-2個子數據塊的后向狀態運算; 前向狀態運算子模塊用于根據第M-3個子數據塊的運算信息進行第M-3個子數據 塊的前向狀態運算; 外信息運算子模塊用于根據第M-3個子數據塊的后向狀態運算結果、第M-3個子 數據塊的運算信息和第M-3個子數據塊的前向狀態運算結果來進行第M-3個子數據塊的外 信息運算。 關于上述訓練運算子模塊、后向狀態運算子模塊、前向狀態運算子模塊和外信息 運算子模塊的具體的運算過程說明可以參見實施例二,在此也就不再進行贅述了。
本發明實施例通過3個鏡像存儲器交替存儲子數據塊運算信息的方式,使得單次 迭代周期在碼塊長度的基礎上僅增加了 3個滑窗的時間,另外,本發明實施例僅通過3個容 量為滑窗長度的鏡像存儲器就完成了訓練運算、后向狀態運算、前向狀態運算和外信息運 算的并行操作,以增加最小存儲資源的代價就完成了上述4種運算的并行操作。
實施例五 本發明實施例是通過一具體的產品實例來對本發明所作的闡述,如圖6所示為本
發明實施例五提供的一種高速Turbo譯碼器的結構示意圖,該高速Turbo譯碼器包括主控
單元610、交織地址存儲單元620、邏輯存儲單元630和運算處理單元640,主控單元610分
別和交織地址存儲單元620、邏輯存儲單元630及運算處理單元640相連。 主控單元610是本發明實施例中高速Turbo譯碼器的控制中心,其主要負責譯碼
器工作過程中的各種控制操作,比如,完成待譯碼數據塊的接收和存儲控制、將待譯碼數據
塊劃分成以滑動窗長度為單位分成多個子數據塊、對交織地址存儲單元620的預處理、根
據運算處理單元640的需求對邏輯存儲單元630的讀寫控制、譯碼整體流程的控制等,在本
實施例中,主控單元可以是一中央處理器(Central Processing Unit, CPU)。 交織地址存儲單元620用于完成待譯碼數據塊的交織地址存儲,所謂交織地址是
在奇次處理時為主控單元610提供交織地址,使得主控單元610可以根據該交織地址從邏
輯存儲單元630內讀取各種軟信息,該部分屬于現有技術,因此在本發明實施例中就不再
對其進行詳細描述了。 邏輯存儲單元630主要是用于存儲待譯碼數據塊的各種軟信息以及運算處理單 元640運算過程中的各種中間運算處理結果。在本實施例中,如圖7所示,邏輯存儲單元630 可以包括系統位存儲單元631、校驗位存儲單元632、第一鏡像存儲單元633、第二鏡像存儲 單元634、第三鏡像存儲單元635、后向狀態存儲單元636和外信息存儲單元637。在此,需 要指出的是,本發明所稱的邏輯存儲單元,并不意味著其中的各單元僅是邏輯單元,本發明 實施例中邏輯存儲單元630內的各存儲單元可以為物理上獨立的存儲單元,下面對其分別 進行說明 系統位存儲單元631、校驗位存儲單元632和外信息存儲單元637分別用于存儲待 譯碼子數據塊的軟信息中的系統位信息、校驗位信息和外信息,并在運算處理單元640工 作過程中為其提供所需的系統位信息、校驗位信息和外信息。 第一鏡像存儲單元633、第二鏡像存儲單元634、第三鏡像存儲單元635用于更替 式地存儲各個子數據塊的運算信息,并為運算處理單元640提供其所需的運算信息。在本 實施例中,該三個存儲單元的容量優選的等于子數據塊的大小,B卩和滑動窗長度(單位為 bit)相同。至于其更替式存儲方式的具體說明可以參見實施例二,在此就不再進行贅述了。
后向狀態存儲單元636用于存儲運算處理單元640在后向狀態運算過程中產生的 后向狀態運算結果,并被后續的外信息運算所讀取。 如圖8所示,運算處理單元640主要是完成譯碼過程中各種相關的運算處理,在本 實施例中,運算處理單元640又可以包括訓練運算模塊641、后向狀態運算模塊642、前向 狀態運算模塊643和外信息運算模塊644。 如圖9所示為本發明實施例五提供的一種運算處理單元和存儲單元的數據交互 示意圖。該圖式中,x—ram代表系統位存儲單元;y—ram代表校驗位存儲單元;intl_ram_pi禾P intl_ram_po代表交織地址存儲單元;z_ram代表外信息存儲單元;mirror_ram_l、 mirror_ram_2和mirror_ram_3分別代表第一鏡像存儲單元、第二鏡像存儲單元和第三鏡 像存儲單元;b—ram代表后向狀態存儲單元。 從圖9中可見,x—ram、y—ram、intl—ranu5i禾P intl_ram_po的數據是單向的,即它 們的數據僅被運算處理單元640所讀取,而mirror_ram_l、 mirror_ram_2、 mirror_ram_3、 z—ram和b_ram和運算處理單元640的數據流向是雙向的,即它們的數據既可以被運算處 理單元640所讀取,也可以被寫入。具體來說x_ram、y_ram和z_ram分別為運算處理單元 640中的訓練運算模塊641提供系統位信息、校驗位信息和外信息,其中z—ram還用于一次 迭代過程中存儲外信息運算模塊644的運算結果;intl_ram_pi和intl_ram_p0為運算處 理單元640提供交織地址;mirror—:ram—l、mirror—:ram—2禾口 mirror_:ram_3為后向狀態運算 模塊642、前向狀態運算模塊643和外信息運算模塊644提供運算信息,同時也接受運算信 息的寫入;而b_ram則用于對后向狀態運算模塊642的運算結果進行存儲并將其提供給外 信息運算模塊644。 本發明實施例通過3個鏡像存儲器交替存儲子數據塊運算信息的方式,使得單次 迭代周期在碼塊長度的基礎上僅增加了 3個滑窗的時間,另外,本發明實施例僅通過3個容 量為滑窗長度的鏡像存儲器就完成了訓練運算、后向狀態運算、前向狀態運算和外信息運 算的并行操作,以增加最小存儲資源的代價就完成了上述4種運算的并行操作。
本領域普通技術人員可以理解實現上述實施例方法中的全部或部分流程,可以通 過計算機程序來指令相關的硬件來完成,所述的程序可存儲于一計算機可讀取存儲介質 中,該程序在執行時,可包括如上述各方法的實施例的流程。其中,所述的存儲介質可為磁 碟、光盤、只讀存儲記憶體(Read-0nly Memory, ROM)或隨機存儲記憶體(Random Access Memory,廳)等。 以上所述的具體實施例,對本發明的目的、技術方案和有益效果進行了進一步詳 細說明,所應理解的是,以上所述僅為本發明的具體實施例而已,并不用于限定本發明的保 護范圍,凡在本發明的精神和原則之內,所做的任何修改、等同替換、改進等,均應包含在本 發明的保護范圍之內。
權利要求
一種高速Turbo譯碼方法,其特征在于,所述方法包括接收待譯碼的數據碼塊;將所述待譯碼的數據碼塊以滑動窗長度為單位分成多個子數據塊;對所述子數據塊進行Turbo譯碼中訓練運算、后向狀態運算、前向狀態運算和外信息運算的并行操作來得到譯碼結果。
2. 如權利要求1所述的高速Turbo譯碼方法,其特征在于,所述對所述子數據塊進行 Turbo譯碼中訓練運算、后向狀態運算、前向狀態運算和外信息運算的并行操作包括將所述子數據塊內的運算信息更替式地存儲于容量為滑動窗長度的三個鏡像存儲器內;從所述鏡像存儲器內讀取所需的運算信息以進行Turbo譯碼中訓練運算、后向狀態運 算、前向狀態運算和外信息運算的并行操作。
3. 如權利要求2所述的高速Turbo譯碼方法,其特征在于,所述將所述子數據塊內的運 算信息更替式地存儲于容量為滑動窗長度的三個鏡像存儲器內包括將第N個子數據塊的運算信息存儲于第一鏡像存儲器或第二鏡像存儲器,N為正整數; 將第N+2個子數據塊的運算信息存儲于所述第N個子數據塊的運算信息所在的鏡像存儲器以替代其中的第N個子數據塊的運算信息;將所述第N個子數據塊的運算信息存儲于第三鏡像存儲器以替代其中的運算信息,并將該被替代的運算信息用于前向狀態運算及外信息運算。
4. 如權利要求3所述的高速Turbo譯碼方法,其特征在于,所述進行Turbo譯碼中訓練 運算、后向狀態運算、前向狀態運算和外信息運算的并行操作包括根據第M個子數據塊的運算信息進行第M個子數據塊的訓練運算,M為大于等于4的 正整數;根據第M-l個子數據塊的訓練運算結果、第M-2個子數據塊的運算信息進行第M-2個子數據塊的后向狀態運算;根據第M-3個子數據塊的運算信息進行第M-3個子數據塊的前向狀態運算;根據第M-3個子數據塊的后向狀態運算結果、第M-3個子數據塊的運算信息和第M-3個子數據塊的前向狀態運算結果來進行第M-3個子數據塊的外信息運算。
5. 如權利要求2-4所述的高速Turbo譯碼方法,其特征在于,所述運算信息包括系統位 信息、校驗位信息和外信息。
6. —種高速Turbo譯碼裝置,其特征在于,所述裝置包括 接收單元,用于接收待譯碼的數據碼塊;碼塊劃分單元,用于將所述待譯碼的數據碼塊以滑動窗長度為單位分成多個子數據塊;并行運算單元,用于對所述子數據塊進行Turbo譯碼中訓練運算、后向狀態運算、前向 狀態運算和外信息運算的并行操作來得到譯碼結果。
7. 如權利要求6所述的高速Turbo譯碼裝置,其特征在于,所述并行運算單元包括 交替存儲模塊,用于將所述子數據塊內的運算信息更替式地存儲于容量為滑動窗長度的三個鏡像存儲器內;讀取模塊,用于從所述鏡像存儲器內讀取所需的運算信息;運算模塊,用于根據所述讀取模塊讀取的運算信息進行Turbo譯碼中訓練運算、后向 狀態運算、前向狀態運算和外信息運算的并行操作。
8. 如權利要求7所述的高速Turbo譯碼裝置,其特征在于,所述交替存儲模塊包括 第一存儲子模塊,用于將第N個子數據塊的運算信息存儲于第一鏡像存儲器或第二鏡像存儲器,N為正整數;第二存儲子模塊,用于將第N+2個子數據塊的運算信息存儲于所述第N個子數據塊的 運算信息所在的鏡像存儲器以替代其中的第N個子數據塊的運算信息;第三存儲子模塊,用于將所述第N個子數據塊的運算信息存儲于第三鏡像存儲器以替 代其中的運算信息,并將該被替代的運算信息用于前向狀態運算及外信息運算。
9. 如權利要求8所述的高速Turbo譯碼裝置,其特征在于,所述運算模塊具體包括 訓練運算子模塊,用于根據第M個子數據塊的運算信息進行第M個子數據塊的訓練運算,M為大于等于4的正整數;后向狀態運算子模塊,用于根據第M-l個子數據塊的訓練運算結果、第M-2個子數據塊 的運算信息進行第M-2個子數據塊的后向狀態運算;前向狀態運算子模塊,用于根據第M-3個子數據塊的運算信息進行第M-3個子數據塊 的前向狀態運算;外信息運算子模塊,用于根據第M-3個子數據塊的后向狀態運算結果、第M-3個子數據 塊的運算信息和第M-3個子數據塊的前向狀態運算結果來進行第M-3個子數據塊的外信息 運算。
10. 如權利要求7-9所述的高速Turbo譯碼裝置,其特征在于,所述運算信息包括系統 位信息、校驗位信息和外信息。
全文摘要
本發明實施例提供一種高速Turbo譯碼方法和裝置,該方法包括接收待譯碼的數據碼塊;將所述待譯碼的數據碼塊以滑動窗長度為單位分成多個子數據塊;對所述子數據塊進行Turbo譯碼中訓練運算、后向狀態運算、前向狀態運算和外信息運算的并行操作來得到譯碼結果。本發明實施例的有益效果在于,通過對子數據塊進行訓練運算、后向狀態運算、前向狀態運算和外信息運算的并行操作,在保持高的譯碼性能的同時,縮短了譯碼延遲。
文檔編號H04L1/00GK101707510SQ20091022308
公開日2010年5月12日 申請日期2009年11月18日 優先權日2009年11月18日
發明者張家佶, 朱芳菲, 游治, 范文奇 申請人:深圳華為通信技術有限公司