專利名稱:Ldpc的存儲(chǔ)器使用方法、ldpc解碼方法及其裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及低密度奇偶校驗(yàn)碼(Low Density Parity Check Code,又稱為L(zhǎng)DPC) 的存儲(chǔ)器使用方法,特別是涉及一種在LDPC的存儲(chǔ)器使用方法、LDPC解碼方法及其裝置。
背景技術(shù):
目前低密度奇偶校驗(yàn)碼(Low Density Parity Check Code,以下簡(jiǎn)稱為L(zhǎng)DPC) 逐漸被廣泛應(yīng)用在無(wú)線通信技術(shù)中,且LDPC的表現(xiàn)比目前被廣泛應(yīng)用的特博碼(Turbo code)還好。例如,在歐洲電信標(biāo)準(zhǔn)協(xié)會(huì)(European Telecommunications Standards hstitute,簡(jiǎn)稱為ETSI)所制定的第二代數(shù)字視頻廣播系統(tǒng)(Digital VideoBroadcasting Second Generation,簡(jiǎn)稱為DVB-S》標(biāo)準(zhǔn)中,即大量采用LDPC在信道編碼上面。雖然LDPC在信道編碼上有相對(duì)較好的信道錯(cuò)誤檢查與校驗(yàn)?zāi)芰Γ獿DPC的解碼流程是采用軟判決(soft-decision)的方式進(jìn)行,一般來(lái)說(shuō)需要重復(fù)性的循環(huán)運(yùn)算來(lái)取得解碼結(jié)果。另外,LDPC的解碼流程需要較大尺寸的奇偶校驗(yàn)矩陣(Parity check matrix) 來(lái)協(xié)助解碼運(yùn)算,進(jìn)而需要較大容量的存儲(chǔ)器模塊來(lái)實(shí)現(xiàn)其解碼流程。所以在LDPC的解碼裝置的集成電路上面,通常存儲(chǔ)器占用大部分的芯片空間。傳統(tǒng)的LDPC的解碼方法或解碼裝置可以參考美國(guó)早期公開(kāi)案2008/0104474A1的技術(shù)內(nèi)容,其中有提到類(lèi)似使用變量節(jié)點(diǎn)流程(Variable node process,簡(jiǎn)稱為VNP)以及校驗(yàn)節(jié)點(diǎn)流程(Checknode process,簡(jiǎn)稱為CNP)的運(yùn)算方式來(lái)完成解碼流程。而VNP流程與CNP流程之間是采用一種雙向性圖形(bipartite graph,又稱為T(mén)anner graph)來(lái)連結(jié) VNP流程與CNP流程與對(duì)應(yīng)的暫存存儲(chǔ)器單元。圖IA為一種奇偶校驗(yàn)矩陣110的示意圖,而圖IB為奇偶校驗(yàn)矩陣110中變量節(jié)點(diǎn)(Variable nodes)與校驗(yàn)節(jié)點(diǎn)(Check nodes)之間關(guān)系的示意圖。如圖IA所示,奇偶校驗(yàn)矩陣110的7行各自對(duì)應(yīng)到變量節(jié)點(diǎn)x1,x2,x3>x4>x5>x6>x7 ;而奇偶校驗(yàn)矩陣110的3 列各自對(duì)應(yīng)到校驗(yàn)節(jié)點(diǎn)ci、c2、c3。LDPC的解碼流程將LDPC相關(guān)的機(jī)率信息(probability information)與奇偶校驗(yàn)矩陣110進(jìn)行矩陣乘法運(yùn)算來(lái)求得解碼結(jié)果。實(shí)際上,LDPC解碼裝置是將機(jī)率信息暫存到對(duì)應(yīng)至奇偶校驗(yàn)矩陣110中為“1”的位置的存儲(chǔ)器單元內(nèi),再由變量節(jié)點(diǎn)以及校驗(yàn)節(jié)點(diǎn)輪流對(duì)這些機(jī)率信息進(jìn)行運(yùn)算。圖IB所示,奇偶校驗(yàn)矩陣110中變量節(jié)點(diǎn)與校驗(yàn)節(jié)點(diǎn)之間有連線時(shí),才會(huì)由變量節(jié)點(diǎn)與校驗(yàn)節(jié)點(diǎn)輪流進(jìn)行運(yùn)算。圖IB所示具有相對(duì)應(yīng)關(guān)系的變量節(jié)點(diǎn)與校驗(yàn)節(jié)點(diǎn)(彼此在圖IB中有連線關(guān)系)各自運(yùn)算完成后,皆會(huì)將各自的運(yùn)算結(jié)果暫存入至相同的存儲(chǔ)器單元或存儲(chǔ)器位置中。變量節(jié)點(diǎn)與校驗(yàn)節(jié)點(diǎn)輪流運(yùn)算一次才算是完成一個(gè)運(yùn)算循環(huán) (computation cycle)。若對(duì)應(yīng)至奇偶校驗(yàn)矩陣110的變量節(jié)點(diǎn)與校驗(yàn)節(jié)點(diǎn)之間沒(méi)有對(duì)應(yīng)關(guān)系時(shí),則不需要進(jìn)行任何運(yùn)算。當(dāng)運(yùn)算循環(huán)越多次數(shù)時(shí),所取得的LDPC解碼結(jié)果也會(huì)越趨近正確結(jié)果。圖IC是一種LDPC解碼裝置的存儲(chǔ)器架構(gòu)130。此存儲(chǔ)器架構(gòu)130為使用部分并行(partially parallel)處理架構(gòu)的存儲(chǔ)器架構(gòu)。在圖IC中,存儲(chǔ)器單元132、134、136、138都是相同的存儲(chǔ)器單元,而存儲(chǔ)器架構(gòu)130對(duì)應(yīng)于LDPC的奇偶校驗(yàn)矩陣(Paritycheck matrix),且存儲(chǔ)器架構(gòu)130具有至少(m+1) X (n+1)個(gè)存儲(chǔ)器單元。每一個(gè)存儲(chǔ)器單元與其他存儲(chǔ)器單元的連結(jié),或是與VNP流程或CNP流程的連結(jié)還包括至少時(shí)鐘脈沖端口 Clock、 數(shù)據(jù)端口 Data、定址端口 Addr、寫(xiě)入使能端口 feen以及數(shù)據(jù)輸出端口 Q。因此,在LDPC的解碼流程中,尤其利用大尺寸的奇偶校驗(yàn)矩陣來(lái)協(xié)助解碼流程的狀況下,部分并行處理的存儲(chǔ)器架構(gòu)130顯然會(huì)有走線擁擠(routing congestion)問(wèn)題。例如DVB-S2標(biāo)準(zhǔn)要求必須有64,800區(qū)塊尺寸來(lái)進(jìn)行解碼流程。若每一信息是采用6個(gè)位來(lái)代表,則64,800個(gè)區(qū)塊總共會(huì)有大約1. 7百萬(wàn)個(gè)位需要暫存在存儲(chǔ)器模塊中。雖然存儲(chǔ)器架構(gòu)130可以將對(duì)應(yīng)到奇偶校驗(yàn)矩陣的存儲(chǔ)器模塊分成較小尺寸的存儲(chǔ)器單元來(lái)進(jìn)行運(yùn)算,但存儲(chǔ)器單元的數(shù)量變得龐大時(shí)(例如,數(shù)萬(wàn)個(gè)存儲(chǔ)器單元),相鄰近的存儲(chǔ)器單元之間的空間會(huì)變小。即使利用拉大存儲(chǔ)器單元之間的來(lái)解決走線擁擠問(wèn)題,走線復(fù)雜度仍相當(dāng)高(因?yàn)闋砍兜酱鎯?chǔ)器單元、VNP處理單元與CNP處理單元之間的連結(jié)關(guān)系),且所導(dǎo)致的存儲(chǔ)器面積會(huì)相當(dāng)大。另一種傳統(tǒng)的LDPC解碼方法或解碼裝置是將對(duì)應(yīng)到相同VNP流程或CNP流程的存儲(chǔ)器單元串聯(lián)在不同群組中。在進(jìn)行LDPC解碼運(yùn)算時(shí),對(duì)每一群組采用串行讀取/寫(xiě)入存儲(chǔ)器單元中信息的方式來(lái)進(jìn)行運(yùn)算。不過(guò),這種搭配VNP流程或CNP流程之串行讀取 /寫(xiě)入的解碼器架構(gòu)或解碼方法,僅解決走線擁擠或走線復(fù)雜度的問(wèn)題,所提供的解碼運(yùn)算速度過(guò)慢,進(jìn)而減少整體數(shù)據(jù)吞吐量(Data throughput)。
發(fā)明內(nèi)容
本發(fā)明的示范實(shí)施例提供一種低密度奇偶校驗(yàn)碼(LDPC)的存儲(chǔ)器運(yùn)用方法、一種低密度奇偶校驗(yàn)碼解碼方法及其裝置。本發(fā)明的示范實(shí)施例提供一種低密度奇偶校驗(yàn)碼(LDPC)的存儲(chǔ)器使用方法,適用于無(wú)線接收器中的解碼過(guò)程。低密度奇偶校驗(yàn)碼的存儲(chǔ)器使用方法包括以下步驟。首先, 決定解碼過(guò)程中要在相同時(shí)間階段進(jìn)行的變量節(jié)點(diǎn)流程(VNP)或校驗(yàn)節(jié)點(diǎn)流程(CNP)。接著,將在相同時(shí)間階段進(jìn)行的變量節(jié)點(diǎn)流程或校驗(yàn)節(jié)點(diǎn)流程分配在不同的變量節(jié)點(diǎn)流程群組或校驗(yàn)節(jié)點(diǎn)流程群組中。再者,根據(jù)預(yù)期數(shù)據(jù)吞吐量選擇存儲(chǔ)器單元的折疊因子。然后, 根據(jù)折疊因子與所分配的變量節(jié)點(diǎn)流程群組或校驗(yàn)節(jié)點(diǎn)流程群組,將多個(gè)存儲(chǔ)器單元串聯(lián)成多個(gè)并行處理存儲(chǔ)器模塊。本發(fā)明的示范實(shí)施例提供一種低密度奇偶校驗(yàn)碼解碼方法,適用于無(wú)線接收裝置的解碼過(guò)程。低密度奇偶校驗(yàn)碼解碼方法包括以下步驟。首先,對(duì)第一存儲(chǔ)器模塊中與第二存儲(chǔ)器模塊中的機(jī)率信息進(jìn)行一個(gè)變量節(jié)點(diǎn)流程或一個(gè)校驗(yàn)節(jié)點(diǎn)流程。然后,判斷第一存儲(chǔ)器模塊中與第二存儲(chǔ)器模塊中的機(jī)率信息是否滿足一個(gè)解碼終止條件。此外,將第一存儲(chǔ)器模塊的機(jī)率信息經(jīng)過(guò)一個(gè)硬判決轉(zhuǎn)換為一個(gè)低密度奇偶校驗(yàn)碼輸出數(shù)據(jù),并通過(guò)第二存儲(chǔ)器模塊進(jìn)行一個(gè)重新排序。本發(fā)明的示范實(shí)施例提供一種低密度奇偶校驗(yàn)碼解碼裝置,適用于無(wú)線接收裝置的解碼過(guò)程。低密度奇偶校驗(yàn)碼解碼裝置包括變量節(jié)點(diǎn)處理模塊、校驗(yàn)節(jié)點(diǎn)處理模塊、運(yùn)算終止判斷模塊與雙向限幅器。變量節(jié)點(diǎn)處理模塊,用以對(duì)第一存儲(chǔ)器模塊中與第二存儲(chǔ)器模塊中的機(jī)率信息進(jìn)行一個(gè)變量節(jié)點(diǎn)流程。校驗(yàn)節(jié)點(diǎn)處理模塊,用以對(duì)第一存儲(chǔ)器模塊中與第二存儲(chǔ)器模塊中的機(jī)率信息進(jìn)行一個(gè)校驗(yàn)節(jié)點(diǎn)流程。運(yùn)算終止判斷模塊,用以判斷第一存儲(chǔ)器模塊中與第二存儲(chǔ)器模塊中的機(jī)率信息是否滿足一個(gè)解碼終止條件。雙向限幅器,用以將第一存儲(chǔ)器模塊的機(jī)率信息,經(jīng)過(guò)一個(gè)硬判決轉(zhuǎn)換為一個(gè)低密度奇偶校驗(yàn)碼輸出數(shù)據(jù),并通過(guò)第二存儲(chǔ)器模塊進(jìn)行重新排序。 下文將結(jié)合附圖詳細(xì)描述本發(fā)明的示范實(shí)施例,以使上述特征和優(yōu)點(diǎn)能更明顯易懂。
架構(gòu)的示意圖<
圖IA為一種奇偶校驗(yàn)矩陣的示意圖。
圖IB為奇偶校驗(yàn)矩陣中變量節(jié)點(diǎn)與校驗(yàn)節(jié)點(diǎn)之間關(guān)系的示意圖。 圖IC是一種LDPC解碼裝置的存儲(chǔ)器架構(gòu)。
圖2是根據(jù)本發(fā)明的一示范實(shí)施例所繪示的一種LDPC解碼裝置的系統(tǒng)方塊圖。 圖3A為本發(fā)明的一示范實(shí)施例的奇偶校驗(yàn)矩陣的示意圖。 圖3B為本發(fā)明的一示范實(shí)施例的一子矩陣的示意圖。
圖3C為根據(jù)本發(fā)明的一示范實(shí)施例的一奇偶校驗(yàn)矩陣經(jīng)過(guò)重新排列的示意圖。 圖3D為根據(jù)本發(fā)明的另一示范實(shí)施例的一奇偶校驗(yàn)矩陣經(jīng)過(guò)分組的示意圖。 圖4是根據(jù)本發(fā)明的一示范實(shí)施例所繪示的一種改進(jìn)式部分并行處理的存儲(chǔ)器
圖5是根據(jù)本發(fā)明的一示范實(shí)施例所繪示的一種LDPC存儲(chǔ)器使用方法的流程圖。 圖6是根據(jù)本發(fā)明的一示范實(shí)施例所繪示的一種LDPC解碼方法的流程圖。 圖7是根據(jù)本發(fā)明的另一示范實(shí)施例所繪示的另一種LDPC解碼裝置的系統(tǒng)方塊
主要元件符號(hào)說(shuō)明
110、310 奇偶校驗(yàn)矩陣 130、400 存儲(chǔ)器架構(gòu) 132、134、136、138 存儲(chǔ)器單元
200、700 LDPC解碼裝置 202 信息存儲(chǔ)器模塊 204 第一變量節(jié)點(diǎn)處理模塊 206 第一存儲(chǔ)器模塊 208 第二變量節(jié)點(diǎn)處理模塊 210 第二存儲(chǔ)器模塊 212 校驗(yàn)節(jié)點(diǎn)處理模塊 214 存儲(chǔ)器定址存儲(chǔ)模塊 216 雙向限幅器 218 運(yùn)算終止判斷模塊 220 控制模塊
312,314 對(duì)角線 500 =LDPC存儲(chǔ)器使用方法 S502 S510、S602 S610 步驟 600 =LDPC解碼方法 742 第一處理網(wǎng)絡(luò)單元 744 第二處理網(wǎng)絡(luò)單元 746 第三處理網(wǎng)絡(luò)單元 748 第四處理網(wǎng)絡(luò)單元 320、330、340、A、B 子矩陣 Cp c2、C3 校驗(yàn)節(jié)點(diǎn) S1、S2、S3、S4 單元矩陣
Xl、Xg、Χ3、Χ4、義5、義6、Χ7
節(jié)點(diǎn)
具體實(shí)施例方式現(xiàn)在將詳細(xì)參照所揭露的示范實(shí)施例,所述的示范實(shí)施例大都繪示在附圖中,附帶一提的是,整個(gè)附圖中相同的附圖標(biāo)記用于表示相同或相似的元件。本發(fā)明的示范實(shí)施例提供一種LDPC的存儲(chǔ)器運(yùn)用方法、一種LDPC解碼方法及其裝置。LDPC的存儲(chǔ)器運(yùn)用方法是使用在LDPC的解碼流程中。以下將利用圖2與圖7來(lái)介紹LDPC解碼裝置200,利用圖5來(lái)介紹LDPC的存儲(chǔ)器使用方法,并且利用圖6來(lái)介紹LDPC 解碼方法。圖2是根據(jù)本發(fā)明的一示范實(shí)施例所繪示的一種LDPC解碼裝置200的系統(tǒng)方塊圖。LDPC解碼裝置200可以配置在無(wú)線通信接收裝置內(nèi),例如使用DVB-S2標(biāo)準(zhǔn)的接收器。在本示范實(shí)施例中,LDPC解碼裝置200包括至少信息(information)存儲(chǔ)器模塊 202、第一變量節(jié)點(diǎn)處理(Variable node process,簡(jiǎn)稱為VNP)模塊204、第一存儲(chǔ)器模塊 206、第二變量節(jié)點(diǎn)處理(VNP)模塊208、第二存儲(chǔ)器模塊210、校驗(yàn)節(jié)點(diǎn)處理(Check node process,簡(jiǎn)稱為CNP)模塊212、存儲(chǔ)器定址存儲(chǔ)模塊214、雙向限幅器(Slicer) 216、運(yùn)算終止判斷模塊(computation termination determination module) 218 與控制模塊(control module) 220 (未顯示)。在本示范實(shí)施例中,存儲(chǔ)器模塊例如第一存儲(chǔ)器模塊206與第二存儲(chǔ)器模塊 210可用以存儲(chǔ)程序模塊。所述程序模塊在由處理器模塊(例如第一 VNP模塊204、第二 VNP模塊208與CNP模塊21 執(zhí)行時(shí),執(zhí)行產(chǎn)生媒體程序的一或多個(gè)過(guò)程。另外,第一存儲(chǔ)器模塊206與第二存儲(chǔ)器模塊210可為一或多個(gè)存儲(chǔ)器裝置,用以存儲(chǔ)數(shù)據(jù)、運(yùn)算結(jié)果或機(jī)率信息。在本示范實(shí)施例中,第一存儲(chǔ)器模塊206與第二存儲(chǔ)器模塊210的存儲(chǔ)器裝置可以包括例如,磁性存儲(chǔ)設(shè)備、光學(xué)存儲(chǔ)設(shè)備、靜態(tài)隨機(jī)存取存儲(chǔ)器(StaticRandom Access Memory,又稱為SRAM)、相變存儲(chǔ)器(Phase changememory,又稱為PCM)或閃速存儲(chǔ)器(FLASH memory)裝置的其中之一或其組合。另外,第一存儲(chǔ)器模塊206與第二存儲(chǔ)器模塊210在本發(fā)明的其他實(shí)施例中,還可以整合在一起為一個(gè)存儲(chǔ)器模塊。在本示范實(shí)施例中,第一 VNP模塊204、第二 VNP模塊208與CNP模塊212可以各自包括多個(gè)處理器單元、處理器裝置或處理器芯片。請(qǐng)參照?qǐng)D2,在本示范實(shí)施例中,控制模塊220電性連接至信息存儲(chǔ)器模塊202、 第一 VNP模塊204、第一存儲(chǔ)器模塊206、第二 VNP模塊208、第二存儲(chǔ)器模塊210、CNP模塊 212、存儲(chǔ)器定址存儲(chǔ)模塊214、雙向限幅器216與運(yùn)算終止判斷模塊218。另外,控制模塊 220用以控制整個(gè)LDPC解碼裝置200的外部輸入流程(例如,接收LDPC輸入)的開(kāi)始與結(jié)束、外部輸出流程(例如,輸出LDPC輸出)的開(kāi)始與結(jié)束,以及控制上述各元件之間的信號(hào)傳遞,或控制各元件各自執(zhí)行運(yùn)算流程的開(kāi)始與結(jié)束。請(qǐng)參照?qǐng)D2,信息存儲(chǔ)器模塊202用以暫存由前段解調(diào)裝置(demodulator)所提供給LDPC解碼裝置200的機(jī)率信息(probabilityinformation),且通常機(jī)率信息被轉(zhuǎn)換為對(duì)數(shù)似然比(Log-LikelihoodRatio,簡(jiǎn)稱為L(zhǎng)LR)的模式,以利于后續(xù)的運(yùn)算。LDPC解碼裝置200要在一個(gè)固定周期或預(yù)設(shè)時(shí)間閾值內(nèi),例如一個(gè)幀周期(frameduration)內(nèi),完成 LDPC解碼流程。第一 VNP模塊204與第二 VNP模塊208在本發(fā)明的其他示范實(shí)施例中,可以整合為同一個(gè)節(jié)點(diǎn)處理模塊。在本示范實(shí)施例中,為了解說(shuō)清楚運(yùn)作原理,故采用分開(kāi)繪示第一 VNP模塊204與第二 VNP模塊208的方式,但第一 VNP模塊204與第二 VNP模塊208可以同步分工運(yùn)作,或協(xié)同(collaboratively)運(yùn)作。第一 VNP模塊204與第二 VNP模塊 208耦接至信息存儲(chǔ)器模塊202,并分別電性連接至第一存儲(chǔ)器模塊206與第二存儲(chǔ)器模塊 210,用以將信息存儲(chǔ)器模塊202中的機(jī)率信息,分別暫存至第一存儲(chǔ)器模塊206與第二存儲(chǔ)器模塊210中。另外,上述機(jī)率信息對(duì)應(yīng)至奇偶校驗(yàn)矩陣中數(shù)值為“1”的位置。圖3A為本發(fā)明的一示范實(shí)施例的奇偶校驗(yàn)矩陣310的示意圖。奇偶校驗(yàn)矩陣H(即圖3A中的奇偶校驗(yàn)矩陣310)的尺寸為nX(n-k),其中n>k,且η與k為正整數(shù)。奇偶校驗(yàn)矩陣H通常應(yīng)用在LDPC解碼流程時(shí),具有不規(guī)則重復(fù)累積(Irregular R印eatAccumulate,簡(jiǎn)稱為IRA)的特性,亦即為IRA-LDPC。在本發(fā)明的其他實(shí)施例中,奇偶校驗(yàn)矩陣H還可以具有準(zhǔn)循環(huán)(Quasi-Cyclic,簡(jiǎn)稱為QC)的特性,亦即為QC-LDPC。在實(shí)際 LDPC解碼流程中,為了解碼流程的便利性,可以將奇偶校驗(yàn)矩陣H分為一個(gè)子矩陣A與一個(gè)子矩陣B。如圖3A所示,子矩陣A的尺寸為kX(n-k),而子矩陣B的尺寸為(n_k) X (n_k)。 另外,子矩陣A中“1”的分布較不規(guī)則,而子矩陣B中“1”的分布較規(guī)則。圖:3B為本發(fā)明的一示范實(shí)施例的一子矩陣B的示意圖。子矩陣B為一個(gè)方矩陣,且子矩陣B為一種特殊的單位矩陣(identitymatrix),其具有皆為“1”的對(duì)角線312、314,而對(duì)角線312、314之間有一個(gè)固定的偏移(offset)。因此,參照?qǐng)D2與圖3A來(lái)進(jìn)一步說(shuō)明,第一 VNP模塊204將對(duì)應(yīng)至子矩陣A的機(jī)率信息暫存到第一存儲(chǔ)器模塊206,而第二 VNP模塊208將對(duì)應(yīng)至子矩陣B的機(jī)率信息暫存到第二存儲(chǔ)器模塊210。另外,CNP模塊212電性連接至第一存儲(chǔ)器模塊206與第二存儲(chǔ)器模塊210。第一 VNP模塊204與CNP模塊212,分別輪流對(duì)第一存儲(chǔ)器模塊206的機(jī)率信息進(jìn)行運(yùn)算,依照類(lèi)似圖IB所示的變量節(jié)點(diǎn)與校驗(yàn)節(jié)點(diǎn)的對(duì)應(yīng)關(guān)系(圖IB中的連線關(guān)系) 來(lái)輪流進(jìn)行運(yùn)算。第一 VNP模塊204與CNP模塊212完成各自運(yùn)算后,皆會(huì)將各自的運(yùn)算結(jié)果暫存入至第一存儲(chǔ)器模塊206中相同的存儲(chǔ)器位置,且第一 VNP模塊204與CNP模塊 212輪流運(yùn)算一次才算是完成一個(gè)運(yùn)算循環(huán)。相類(lèi)似地,第二 VNP模塊208與CNP模塊212, 分別輪流對(duì)第二存儲(chǔ)器模塊210的機(jī)率信息進(jìn)行運(yùn)算。第二 VNP模塊208與CNP模塊212 完成各自運(yùn)算后,皆會(huì)將各自的運(yùn)算結(jié)果暫存入至第二存儲(chǔ)器模塊210中相同的存儲(chǔ)器位置,且第二 VNP模塊208與CNP模塊212輪流運(yùn)算一次才算是完成一個(gè)運(yùn)算循環(huán)。請(qǐng)參照?qǐng)D2,CNP模塊212還耦接至運(yùn)算終止判斷模塊218。每完成一個(gè)運(yùn)算循環(huán), CNP模塊212將第一存儲(chǔ)器模塊206與第二存儲(chǔ)器模塊210的機(jī)率信息,傳送至運(yùn)算終止判斷模塊218,由運(yùn)算終止判斷模塊218判斷所得到的機(jī)率信息是否符合以下等式(1)的條件νΗτ = 0…等式(1)其中,ν為一向量,其代表LDPC解碼裝置200所接收的LDPC輸入,亦即經(jīng)過(guò)無(wú)線傳輸后所接收的LDPC碼字(codeword),且Ht為上述奇偶校驗(yàn)矩陣H的轉(zhuǎn)置矩陣(Transpose matrix)0假若第一存儲(chǔ)器模塊206與第二存儲(chǔ)器模塊210中的機(jī)率信息符合上述的等式 (1)的條件時(shí),則運(yùn)算終止判斷模塊218通過(guò)控制模塊220通知第一 VNP模塊204、第二 VNP 模塊208與CNP模塊212暫停目前的運(yùn)算。此時(shí),雙向限幅器216將第一存儲(chǔ)器模塊206 中對(duì)應(yīng)至子矩陣A的機(jī)率信息,暫存到第二存儲(chǔ)器模塊210,亦即覆寫(xiě)(overwrite)第二存儲(chǔ)器模塊210的內(nèi)容。第一存儲(chǔ)器模塊206中的機(jī)率信息經(jīng)過(guò)硬判決而產(chǎn)生LDPC輸出后, 在第二存儲(chǔ)器模塊210中重新排序(re-ordering)或重新整理(re-organization),由第二存儲(chǔ)器模塊210輸出LDPC輸出。雙向限幅器216電性連接至第一存儲(chǔ)器模塊206與第二存儲(chǔ)器模塊210,并在將第一存儲(chǔ)器模塊206中對(duì)應(yīng)至子矩陣A的機(jī)率信息暫存到第二存儲(chǔ)器模塊210時(shí),對(duì)子矩陣A的機(jī)率信息進(jìn)行硬判決(hard-decision),以產(chǎn)生確定的解碼結(jié)果。經(jīng)過(guò)重新排序或重新整理后,所產(chǎn)生的LDPC輸出的位排列順序?qū)?yīng)至LDPC解碼裝置200所接收的LDPC輸入的位排列順序。子矩陣B中的機(jī)率信息在輸出LDPC輸出的階段,可算為冗余的(redundant)且這也是區(qū)塊編碼(Block code)的特性。所以,本實(shí)施例通過(guò)第二存儲(chǔ)器模塊210來(lái)重新排序或重新整理確定的解碼結(jié)果。假若第一 VNP模塊204、第二 VNP模塊208與CNP模塊212所花費(fèi)的時(shí)間超過(guò)一個(gè)預(yù)設(shè)時(shí)間閾值,例如控制模塊220確認(rèn)已達(dá)到一個(gè)預(yù)設(shè)時(shí)間閾值,則控制模塊220暫停第一 VNP模塊204、第二 VNP模塊208與CNP模塊212目前的運(yùn)算。所述預(yù)設(shè)時(shí)間閾值可以為一個(gè)幀周期(frame duration) 0然后,控制模塊220通知雙向限幅器216將第一存儲(chǔ)器模塊 206中的機(jī)率信息,經(jīng)過(guò)硬判決轉(zhuǎn)換為L(zhǎng)DPC輸出后,暫存至第二存儲(chǔ)器模塊210以重新排序或重新整理,再由第二存儲(chǔ)器模塊210輸出LDPC輸出。假若第一存儲(chǔ)器模塊206與第二存儲(chǔ)器模塊210的機(jī)率信息沒(méi)有符合以上等式 ⑴的條件,且目前運(yùn)算所耗費(fèi)的時(shí)間沒(méi)有超過(guò)預(yù)設(shè)時(shí)間閾值時(shí),則第一 VNP模塊204、第二 VNP模塊208與CNP模塊212繼續(xù)進(jìn)行下一個(gè)運(yùn)算循環(huán)。另外,存儲(chǔ)器定址存儲(chǔ)模塊214耦接至第一存儲(chǔ)器模塊206,且在CNP模塊212對(duì)第一存儲(chǔ)器模塊206的機(jī)率信息進(jìn)行CNP流程時(shí),提供適當(dāng)?shù)拇鎯?chǔ)器定址給CNP模塊212,以確保所讀取或?qū)懭胝_的存儲(chǔ)器位置。圖3C為根據(jù)本發(fā)明的一示范實(shí)施例的一子矩陣A經(jīng)過(guò)重新排列的示意圖。假設(shè)子矩陣A(即子矩陣320)為一個(gè)IRA-LDPC矩陣的一部分,其包括多個(gè)較小尺寸的平移 (shifted)與偏移的單位矩陣(或可以分為子矩陣Al與A2),并且每一單位矩陣彼此之間具有隨機(jī)重復(fù)的模式(Randomly repeated patterns)。LDPC解碼裝置200還可以包括一個(gè)矩陣轉(zhuǎn)換單元230,用以將子矩陣A(包括行i、ii、iii、iv、v、vi與列a、b、C、d、e、f)經(jīng)過(guò)重新排列,轉(zhuǎn)換為另一種QC-LDPC矩陣的一部分的子矩陣A’。圖3D為根據(jù)本發(fā)明的另一示范實(shí)施例的一子矩陣A經(jīng)過(guò)分組的示意圖。假設(shè)另外,矩陣轉(zhuǎn)換單元230還可以進(jìn)一步將子矩陣A’經(jīng)過(guò)分組(grouping),分成如圖3D所示的四個(gè)單元矩陣(區(qū)塊)31、52、53、54。從另一角度來(lái)看,單元矩陣Si、S2、S3、S4可由獨(dú)立的存儲(chǔ)器單元來(lái)存儲(chǔ),并由第一 VNP模塊204與CNP模塊212分別存取對(duì)應(yīng)至單元矩陣Si、 S2、S3、S4的存儲(chǔ)器單元,來(lái)進(jìn)行VNP流程或CNP流程。不過(guò),圖3D所繪示的僅為示意之用, 在實(shí)際LDPC解碼流程中,可以將子矩陣A’分組成不同于尺寸3X3的更小單元矩陣,且對(duì)應(yīng)子矩陣A或子矩陣A’的所需要的存儲(chǔ)器單元數(shù)目可能是數(shù)萬(wàn)個(gè)或數(shù)十萬(wàn)個(gè)。另外,為了減少LDPC解碼裝置200的硬件成本,以及在維持并行處理存儲(chǔ)器單元的原則之下,處理器單元并未與存儲(chǔ)器單元數(shù)目相等。所以,第一 VNP模塊204、第二 VNP模塊208與CNP模塊 212中的處理器單元同時(shí)間僅能處理部分的存儲(chǔ)器單元內(nèi)的機(jī)率信息。因此,整體LDPC解碼流程所需的時(shí)間會(huì)提高,但是據(jù)此可以適度地減少整體硬件成本與電路所占用的面積。為了減少各存儲(chǔ)器單元之間的走線數(shù)目、走線復(fù)雜度或是存儲(chǔ)器單元與其他周邊裝置,例如第一 VNP模塊204、第二 VNP模塊208與CNP模塊212與存儲(chǔ)器單元之間的走線復(fù)雜度,以及維持部分并行處理的原則,本實(shí)施例將LDPC解碼流程中所需要的奇偶校驗(yàn)矩陣,分為第一子矩陣(此即,子矩陣A)與第二子矩陣(此即,子矩陣B)。另外,將對(duì)應(yīng)至第一子矩陣A的第一存儲(chǔ)器模塊206,采用改進(jìn)式(modified)部分并行存儲(chǔ)器架構(gòu)。亦即, 將第一存儲(chǔ)器模塊206中的多個(gè)存儲(chǔ)器單元適當(dāng)?shù)胤纸M并串聯(lián),以同時(shí)減少存儲(chǔ)器裝置整體所占用的面積。由此,可同時(shí)減少存儲(chǔ)器單元之間,以及存儲(chǔ)器單元與周邊其他裝置之間的走線復(fù)雜度。另外,將對(duì)應(yīng)至第二子矩陣B的第二存儲(chǔ)器模塊210,在不同階段中,用來(lái)進(jìn)行解碼運(yùn)算或用來(lái)重新排序第一存儲(chǔ)器模塊206的機(jī)率信息的解碼結(jié)果。圖4是根據(jù)本發(fā)明的一示范實(shí)施例所繪示的一種改進(jìn)式部分并行處理的存儲(chǔ)器架構(gòu)400的示意圖。存儲(chǔ)器架構(gòu)400可以被運(yùn)用在第一存儲(chǔ)器模塊206中。在存儲(chǔ)器架構(gòu) 400中,原本圖IC所示的存儲(chǔ)器單元被適當(dāng)?shù)胤纸M,并且分配在同一群組的存儲(chǔ)器單元會(huì)被串聯(lián)在一起。所以每一個(gè)串聯(lián)后的存儲(chǔ)器裝置(例如,存儲(chǔ)器裝置410將存儲(chǔ)器單元132、 134、136、…、138串聯(lián)在一起)僅會(huì)有一組輸入端口,其包括例如時(shí)鐘脈沖端口 Clock、數(shù)據(jù)端口 Data、定址端口 Addr與寫(xiě)入使能端口 Wren。另外,每一個(gè)串聯(lián)后的存儲(chǔ)器裝置僅會(huì)有一組輸出端口,其包括至少數(shù)據(jù)輸出端口 Q。據(jù)此,大幅度減少存儲(chǔ)器單元的端口數(shù)目,降低存儲(chǔ)器單元之間的走線數(shù)量與復(fù)雜度,以及減少額外負(fù)擔(dān)。介紹完存儲(chǔ)器架構(gòu)400之后, 以下將以上述的圖3C、圖3D與圖4來(lái)進(jìn)一步說(shuō)明存儲(chǔ)器定址存儲(chǔ)模塊214的功能。第一 VNP模塊204與CNP模塊212輪流處理第一存儲(chǔ)器模塊206的機(jī)率信息,而第二 VNP模塊208與CNP模塊212輪流處理第二存儲(chǔ)器模塊210的機(jī)率信息。請(qǐng)參見(jiàn)圖3C、 圖3D與圖4,因?yàn)榈诙鎯?chǔ)器模塊210的機(jī)率信息對(duì)應(yīng)至具有規(guī)律排列順序的第二子矩陣 B (所有機(jī)率信息皆在兩條對(duì)角線312、314上面),所以第二存儲(chǔ)器模塊210不需要存儲(chǔ)器定址存儲(chǔ)模塊214提供第一 VNP模塊204或CNP模塊212所需要的存儲(chǔ)器位置,只需找到目前第一 VNP模塊204或CNP模塊212所處理的機(jī)率信息對(duì)應(yīng)到第二子矩陣B的相關(guān)機(jī)率信息,以利于CNP流程或VNP流程的進(jìn)行。但是,第一存儲(chǔ)器模塊206的機(jī)率信息對(duì)應(yīng)到較不規(guī)律的第一子矩陣A,所以在第一 VNP模塊204與CNP模塊212之間切換運(yùn)算時(shí),需要存儲(chǔ)器定址存儲(chǔ)模塊214提供CNP模塊212所需要的存儲(chǔ)器位置。一般來(lái)說(shuō),經(jīng)過(guò)重新排列與分組后的第一子矩陣A,其內(nèi)部的單元矩陣?yán)鐔卧仃嘢i、S2、S3、S4是根據(jù)第一 VNP模塊204運(yùn)算所需要的順序來(lái)重新排序。所以對(duì)應(yīng)至單元矩陣Si、S2的存儲(chǔ)器單元可以串聯(lián)在一起以同時(shí)進(jìn)行VNP運(yùn)算,且單元矩陣S3、S4的存儲(chǔ)器單元可以串聯(lián)在一起以同時(shí)進(jìn)行VNP運(yùn)算。但是由第一 VNP模塊204切換至CNP模塊212來(lái)進(jìn)行CNP運(yùn)算時(shí),單元矩陣S1、S2的存儲(chǔ)器單元之間的校驗(yàn)節(jié)點(diǎn)順序(checknodes ordering)或存儲(chǔ)器位置存取順序可能會(huì)不相同,且單元矩陣S3、S4的存儲(chǔ)器單元之間的校驗(yàn)節(jié)點(diǎn)順序或存儲(chǔ)器位置存取順序可能會(huì)不相同。在圖3D中,單元矩陣S1、S2的存儲(chǔ)器單元各自的校驗(yàn)節(jié)點(diǎn)順序剛好相同,皆為依照行i、ii、iii (亦即,存儲(chǔ)器定址1、2、3)的順序來(lái)讀取與寫(xiě)入對(duì)應(yīng)的存儲(chǔ)器位置;而單元矩陣S3的存儲(chǔ)器單元之間的校驗(yàn)節(jié)點(diǎn)順序?yàn)橐勒読i、iii、i (亦即,存儲(chǔ)器定址2、3、1)的順序來(lái)讀取與寫(xiě)入對(duì)應(yīng)的存儲(chǔ)器位置;而矩陣 S4的存儲(chǔ)器單元之間的校驗(yàn)節(jié)點(diǎn)順序?yàn)橐勒読ii、i、ii (亦即,存儲(chǔ)器定址3、1、幻的順序來(lái)讀取與寫(xiě)入對(duì)應(yīng)的存儲(chǔ)器位置。因此當(dāng)CNP模塊212進(jìn)行CNP流程時(shí),需要存儲(chǔ)器定址存儲(chǔ)模塊214提供所需要的存儲(chǔ)器定址給CNP模塊212。因?yàn)榈谝蛔泳仃嘇經(jīng)過(guò)重新排序與分組,每一子矩陣具有循環(huán)單元矩陣的特性,實(shí)際上僅需要提供起始的存儲(chǔ)器位置給CNP模塊212。假設(shè)沒(méi)有提供起始的存儲(chǔ)器位置給CNP模塊212,最后的解碼流程的結(jié)果必然是錯(cuò)誤的。
圖5是根據(jù)本發(fā)明的一示范實(shí)施例所繪示的一種LDPC存儲(chǔ)器使用方法500的流程圖。所述的LDPC存儲(chǔ)器使用方法500(以下簡(jiǎn)稱為方法500)將存儲(chǔ)器單元分組后串聯(lián)在一起,對(duì)本領(lǐng)域技術(shù)人員來(lái)說(shuō)也可稱為折疊(folding)存儲(chǔ)器。方法500由步驟S502開(kāi)始,在步驟S502中,決定上述的奇偶校驗(yàn)矩陣H運(yùn)算所需要的存儲(chǔ)器單元數(shù)量。換言之,此即計(jì)算奇偶校驗(yàn)矩陣H分為第一子矩陣A與第二子矩陣B后,第一子矩陣A與第二子矩陣 B進(jìn)行VNP流程與CNP流程所需要的存儲(chǔ)器單元的數(shù)目的總合。另外,將第一子矩陣A分組為多個(gè)隨機(jī)重復(fù)模式單位矩陣(randomlyrepeated pattern identity matrix),而所需要的多個(gè)存儲(chǔ)器單元的一部分與這些隨機(jī)重復(fù)模式單位矩陣有一對(duì)一的對(duì)應(yīng)關(guān)系。在步驟 S502之后,繼續(xù)進(jìn)行步驟S504。在步驟S504中,決定要在相同時(shí)間階段一起進(jìn)行的VNP流程或CNP流程,并將在相同時(shí)間階段進(jìn)行的VNP流程或CNP流程分配在不同的VNP流程群組或CNP流程群組中。 參照在圖3D與之前所述的示范例,CNP模塊212中具有2個(gè)處理單元分別在對(duì)應(yīng)至單位矩陣Si、S2與單位矩陣S3、S4的存儲(chǔ)器單元內(nèi),因此可以分2個(gè)時(shí)間階段來(lái)進(jìn)行CNP流程。 更精確地說(shuō),在第一個(gè)時(shí)間階段時(shí),CNP模塊212的第一個(gè)處理單元,先對(duì)矩陣Sl的存儲(chǔ)器單元進(jìn)行CNP流程,而CNP模塊212的第二個(gè)處理單元,同時(shí)間對(duì)矩陣S3的存儲(chǔ)器單元進(jìn)行CNP流程。在第二個(gè)時(shí)間階段時(shí),CNP模塊212的第一個(gè)處理單元,對(duì)矩陣S2的存儲(chǔ)器單元進(jìn)行CNP流程,而CNP模塊212的第二個(gè)處理單元,同時(shí)間對(duì)矩陣S4的存儲(chǔ)器單元進(jìn)行CNP流程。然而,本發(fā)明并不限于此,在本發(fā)明的其他示范實(shí)施例中,CNP模塊212可以包括超過(guò)2個(gè)處理單元,第一子矩陣A可以包括超過(guò)4個(gè)子矩陣,且被分組的群組總數(shù)目可以超過(guò)2個(gè),CNP模塊212也可以在超過(guò)2個(gè)時(shí)間階段中逐次處理同一群組的存儲(chǔ)器單元中的機(jī)率信息。在步驟S504之后,繼續(xù)進(jìn)行步驟S506。在步驟S506中,根據(jù)在相同時(shí)間階段進(jìn)行的VNP流程或CNP流程,決定每一存儲(chǔ)器單元的存儲(chǔ)器位置存取順序。由此存儲(chǔ)器單元的存儲(chǔ)器位置存取順序,可以獲取存儲(chǔ)器單元的起始存取位置,并在串聯(lián)存儲(chǔ)器單元后,可以存儲(chǔ)到存儲(chǔ)器定址存儲(chǔ)模塊214中,以在適當(dāng)時(shí)間提供給第一 VNP模塊204或CNP模塊212。在步驟S506之后,繼續(xù)進(jìn)行步驟 S508。在步驟S508中,根據(jù)預(yù)期的數(shù)據(jù)吞吐量(Data throughput)來(lái)選擇存儲(chǔ)器的折疊因子(folding factor)。一般來(lái)說(shuō),數(shù)據(jù)吞吐量可以用每一幀周期內(nèi)所解碼的LDPC位數(shù)量來(lái)衡量,亦即單元為每秒位數(shù)(bits/second)或每幀位數(shù)(bits/frame)。另外,LDPC解碼流程所執(zhí)行的軟判決循環(huán)次數(shù)越多,則解碼結(jié)果越正確。但是每增加一個(gè)折疊因子,解碼運(yùn)算中的VNP流程或CNP流程就需要多一個(gè)時(shí)間階段,但相對(duì)地所需要的處理單元會(huì)減少, 同時(shí)存儲(chǔ)器單元的走線復(fù)雜度也會(huì)減少。所以,此步驟S508需要根據(jù)實(shí)際無(wú)線通信系統(tǒng)的需要,在數(shù)據(jù)吞吐量與走線可行性(routibility)中作一個(gè)權(quán)衡取舍(tradeoff)。在步驟 S508之后,繼續(xù)進(jìn)行步驟S510。在步驟S510中,根據(jù)折疊因子與所分配的VNP流程群組或CNP流程群組,將存儲(chǔ)器單元串聯(lián)成多個(gè)并行處理存儲(chǔ)器模塊。換言之,被分配在同一群組中所對(duì)應(yīng)的存儲(chǔ)器單元會(huì)被串聯(lián)在一起。將存儲(chǔ)器單元串聯(lián)后,每一并行處理存儲(chǔ)器模塊僅有第一個(gè)存儲(chǔ)器單元包括一個(gè)輸入端口組,且僅有最后一個(gè)存儲(chǔ)器單元包括一個(gè)輸出端口組。另外,每一存儲(chǔ)器單元用以存取一個(gè)機(jī)率信息,每一存儲(chǔ)器單元由VNP流程與CNP流程存取以進(jìn)行一個(gè)運(yùn)算循環(huán),并且在奇偶校驗(yàn)矩陣所對(duì)應(yīng)的每一存儲(chǔ)器單元中都完成一個(gè)運(yùn)算循環(huán)時(shí),解碼過(guò)程才完成一個(gè)解碼循環(huán)。在步驟S510之后,結(jié)束整個(gè)方法500。圖5中各步驟的順序并非用以限制本發(fā)明,也可以同時(shí)進(jìn)行部分的步驟。另外,圖2的LDPC解碼裝置200中的第一存儲(chǔ)器模塊206與第二存儲(chǔ)器模塊210可以使用方法500所建構(gòu)的存儲(chǔ)器架構(gòu)。介紹完LDPC 存儲(chǔ)器使用方法500之后,以下將參照?qǐng)D2與圖6來(lái)介紹一種LDPC解碼方法。圖6是根據(jù)本發(fā)明的一示范實(shí)施例所繪示的一種LDPC解碼方法600的流程圖。 請(qǐng)同時(shí)參照?qǐng)D2與圖6,在本示范實(shí)施例中,所述的LDPC解碼方法600,由步驟S602開(kāi)始, 在步驟S602中,LDPC解碼方法600將奇偶校驗(yàn)矩陣H的第一子矩陣A所對(duì)應(yīng)的機(jī)率信息暫存至第一存儲(chǔ)器模塊206內(nèi),并同時(shí)將奇偶校驗(yàn)矩陣H的第二子矩陣B所對(duì)應(yīng)的機(jī)率信息暫存至第二存儲(chǔ)器模塊210內(nèi)。另外,第一子矩陣A被分組為多個(gè)隨機(jī)重復(fù)模式單位矩陣。第一存儲(chǔ)器模塊206包括多個(gè)存儲(chǔ)器單元與這些隨機(jī)重復(fù)模式單位矩陣有一對(duì)一的一對(duì)應(yīng)關(guān)系。在步驟S602之后,繼續(xù)進(jìn)行步驟S604。接著,在步驟S604中,LDPC解碼方法600對(duì)第一存儲(chǔ)器模塊206與第二存儲(chǔ)器模塊210內(nèi)的機(jī)率信息進(jìn)行VNP流程或CNP流程。步驟S604之后,繼續(xù)進(jìn)行步驟S606。在步驟S606中,LDPC解碼方法600判斷第一存儲(chǔ)器模塊206與第二存儲(chǔ)器模塊210內(nèi)的機(jī)率信息是否滿足解碼終止條件,此即滿足前述的等式(1)的狀況。若滿足解碼終止條件,則在步驟S606之后,繼續(xù)進(jìn)行步驟S608。若沒(méi)有滿足解碼終止條件,則在步驟S606之后,繼續(xù)進(jìn)行步驟S610。在步驟S608中,LDPC解碼方法600確認(rèn)是否已達(dá)到預(yù)設(shè)時(shí)間閾值。一般來(lái)說(shuō),上述的預(yù)設(shè)時(shí)間閾值可以設(shè)定為一個(gè)幀周期。但是本發(fā)明并非限定于上述方式,還可以依據(jù)無(wú)線通信系統(tǒng)的需要,選擇適合的預(yù)設(shè)時(shí)間閾值。若是,則在步驟S608之后,繼續(xù)進(jìn)行步驟 S610。若否,則在步驟S610之后,返回進(jìn)行步驟S604。在步驟S610中,LDPC解碼方法600 將第一存儲(chǔ)器模塊206的機(jī)率信息經(jīng)過(guò)硬判決轉(zhuǎn)換為L(zhǎng)DPC輸出數(shù)據(jù),并通過(guò)第二存儲(chǔ)器模塊210重新排序。此即,在第二存儲(chǔ)器模塊210重新排序由第一存儲(chǔ)器模塊206的機(jī)率信息轉(zhuǎn)換后所取得的LDPC輸出數(shù)據(jù)。然后,將重新排序后的LDPC輸出數(shù)據(jù)輸出至下一階段, 例如源解碼(source decoding)階段。在步驟S610之后,結(jié)束整個(gè)LDPC解碼方法600。要說(shuō)明的是,圖6各步驟的順序并非用以限制本發(fā)明,也可以同時(shí)進(jìn)行部分的步驟。圖7是根據(jù)本發(fā)明的另一示范實(shí)施例所繪示的另一種LDPC解碼裝置700的系統(tǒng)方塊圖。LDPC解碼裝置700大致上與圖2的LDPC解碼裝置200相類(lèi)似,但是包括第一處理網(wǎng)絡(luò)(dealernetwork)單元742、第二處理網(wǎng)絡(luò)單元744、第三處理網(wǎng)絡(luò)單元746與第四處理網(wǎng)絡(luò)單元748。第一處理網(wǎng)絡(luò)單元742與第二處理網(wǎng)絡(luò)單元744各自耦接于第一 VNP模塊204與第一存儲(chǔ)器模塊206之間。第三處理網(wǎng)絡(luò)單元746與第四處理網(wǎng)絡(luò)單元748各自耦接于第二 VNP模塊208與第一存儲(chǔ)器模塊210之間。第一處理網(wǎng)絡(luò)單元742、第二處理網(wǎng)絡(luò)單元744、第三處理網(wǎng)絡(luò)單元746與第四處理網(wǎng)絡(luò)單元748在LDPC解碼裝置700中,提供不同碼率(code rate)的協(xié)調(diào)工作。例如,在DVB-S2標(biāo)準(zhǔn)中,LDPC解碼裝置需要處理大約 11種不同碼率的LDPC編碼,而每一種碼率所對(duì)應(yīng)的奇偶校驗(yàn)矩陣皆不相同。如果在第一 VNP模塊204與第一存儲(chǔ)器模塊206之間或第二 VNP模塊208與第一存儲(chǔ)器模塊210之間沒(méi)有適當(dāng)?shù)恼{(diào)整讀取或?qū)懭霗C(jī)率信息的方式,則在碼率變化時(shí)會(huì)造成LDPC解碼結(jié)果錯(cuò)誤。在本示范實(shí)施例中,第一處理網(wǎng)絡(luò)單元742、第二處理網(wǎng)絡(luò)單元744、第三處理網(wǎng)
14絡(luò)單元746與第四處理網(wǎng)絡(luò)單元748各自可以用多工器(multiplexer)來(lái)實(shí)現(xiàn)。但是本發(fā)明并不限定于此,在本發(fā)明的其他示范實(shí)施例中,第一處理網(wǎng)絡(luò)單元742、第二處理網(wǎng)絡(luò)單元744、第三處理網(wǎng)絡(luò)單元746與第四處理網(wǎng)絡(luò)單元748各自可以用其他方式來(lái)實(shí)現(xiàn)。另外,圖7的LDPC解碼裝置700中的第一存儲(chǔ)器模塊206與第二存儲(chǔ)器模塊210可以使用方法500所建構(gòu)的存儲(chǔ)器架構(gòu)。綜上所述,本發(fā)明的多個(gè)示范實(shí)施例提供LDPC的存儲(chǔ)器運(yùn)用方法、LDPC解碼方法及其裝置。LDPC的存儲(chǔ)器運(yùn)用方法是使用在LDPC的解碼流程中,其將解碼LDPC所需的奇偶校驗(yàn)矩陣,分為第一子矩陣與第二子矩陣。針對(duì)對(duì)應(yīng)至第一子矩陣的第一存儲(chǔ)器模塊,采用改進(jìn)式(modified)部分并行存儲(chǔ)器架構(gòu),將多個(gè)存儲(chǔ)器單元適當(dāng)?shù)胤纸M并串聯(lián),以同時(shí)減少存儲(chǔ)器裝置所占用面積與額外負(fù)擔(dān),以及降低存儲(chǔ)器單元之間、存儲(chǔ)器單元與周邊其他裝置之間的走線復(fù)雜度。另外,將對(duì)應(yīng)至第二子矩陣的第二存儲(chǔ)器模塊,在不同階段中用來(lái)進(jìn)行解碼運(yùn)算或用來(lái)重新排序第一存儲(chǔ)器模塊的機(jī)率信息的解碼結(jié)果,以提高存儲(chǔ)器使用效率。雖然已揭示了本發(fā)明的示范實(shí)施例,但是其并非用以限定本發(fā)明的可實(shí)施方式, 任何本領(lǐng)域技術(shù)人員在不脫離所揭示的實(shí)施例的精神和范圍的情況下,可進(jìn)行一些更動(dòng)與潤(rùn)飾,因此保護(hù)范圍應(yīng)以權(quán)利要求書(shū)所限定的范圍為準(zhǔn)。
權(quán)利要求
1.一種低密度奇偶校驗(yàn)碼的存儲(chǔ)器使用方法,適用于無(wú)線接收裝置的解碼過(guò)程,包括決定該解碼過(guò)程中要在一相同時(shí)間階段一起進(jìn)行的一或多個(gè)變量節(jié)點(diǎn)流程或一或多個(gè)校驗(yàn)節(jié)點(diǎn)流程;將在該相同時(shí)間階段進(jìn)行的該變量節(jié)點(diǎn)流程或該校驗(yàn)節(jié)點(diǎn)流程分配在不同的一變量節(jié)點(diǎn)流程群組或一校驗(yàn)節(jié)點(diǎn)流程群組中;根據(jù)一預(yù)期數(shù)據(jù)吞吐量選擇所述存儲(chǔ)器單元的一折疊因子;以及根據(jù)該折疊因子與所分配的該變量節(jié)點(diǎn)流程群組或該校驗(yàn)節(jié)點(diǎn)流程群組,將所述存儲(chǔ)器單元串聯(lián)成多個(gè)并行處理存儲(chǔ)器模塊。
2.根據(jù)權(quán)利要求1所述的低密度奇偶校驗(yàn)碼的存儲(chǔ)器使用方法還包括決定該解碼過(guò)程中一奇偶校驗(yàn)矩陣運(yùn)算所需的多個(gè)存儲(chǔ)器單元的一總數(shù);以及根據(jù)在該相同時(shí)間階段進(jìn)行的該變量節(jié)點(diǎn)流程或該校驗(yàn)節(jié)點(diǎn)流程,決定每一存儲(chǔ)器單元的一存儲(chǔ)器位置存取順序。
3.根據(jù)權(quán)利要求1所述的低密度奇偶校驗(yàn)碼的存儲(chǔ)器使用方法,其中每一并行處理存儲(chǔ)器模塊僅有一第一存儲(chǔ)器單元包括一輸入端口組,且僅有一最后存儲(chǔ)器單元包括一輸出端口組。
4.根據(jù)權(quán)利要求2所述的低密度奇偶校驗(yàn)碼的存儲(chǔ)器使用方法,其中決定該奇偶校驗(yàn)矩陣運(yùn)算所需的多個(gè)存儲(chǔ)器單元的該總數(shù)還包括以下步驟將該奇偶校驗(yàn)矩陣轉(zhuǎn)換為一準(zhǔn)循環(huán)矩陣;將該準(zhǔn)循環(huán)矩陣分為一第一子矩陣與一第二子矩陣,其中該第二子矩陣為一方矩陣, 該第二子矩陣包括二對(duì)角線,且該二對(duì)角線上皆包括一數(shù)值“ 1 ” ;以及將該第一子矩陣分組為多個(gè)隨機(jī)重復(fù)模式單位矩陣,其中,所述存儲(chǔ)器單元的一部分與所述隨機(jī)重復(fù)模式單位矩陣有一對(duì)一的一對(duì)應(yīng)關(guān)系。
5.根據(jù)權(quán)利要求2所述的低密度奇偶校驗(yàn)碼的存儲(chǔ)器使用方法,其中該折疊因子的數(shù)值越大,則每一并行處理存儲(chǔ)器模塊所包括的所述存儲(chǔ)器單元越多,所述存儲(chǔ)器單元的走線復(fù)雜度越低,且所得到的實(shí)際數(shù)據(jù)吞吐量越低。
6.根據(jù)權(quán)利要求1所述的低密度奇偶校驗(yàn)碼的存儲(chǔ)器使用方法,其中每一存儲(chǔ)器單元用以存取一機(jī)率信息;每一存儲(chǔ)器單元由該變量節(jié)點(diǎn)流程或該校驗(yàn)節(jié)點(diǎn)流程存取以進(jìn)行一運(yùn)算循環(huán);以及在該奇偶校驗(yàn)矩陣所對(duì)應(yīng)的每一存儲(chǔ)器單元上都完成該運(yùn)算循環(huán)時(shí),該解碼過(guò)程完成一解碼循環(huán)。
7.一種低密度奇偶校驗(yàn)碼解碼方法,適用于無(wú)線接收裝置中的解碼過(guò)程,該低密度奇偶校驗(yàn)碼解碼方法包括對(duì)一第一存儲(chǔ)器模塊中與一第二存儲(chǔ)器模塊中的機(jī)率信息進(jìn)行一變量節(jié)點(diǎn)流程或一校驗(yàn)節(jié)點(diǎn)流程;判斷該第一存儲(chǔ)器模塊中與該第二存儲(chǔ)器模塊中的機(jī)率信息是否滿足一解碼終止條件;將該第一存儲(chǔ)器模塊的機(jī)率信息經(jīng)過(guò)一硬判決轉(zhuǎn)換為一低密度奇偶校驗(yàn)碼輸出數(shù)據(jù), 并通過(guò)該第二存儲(chǔ)器模塊進(jìn)行一重新排序。
8.根據(jù)權(quán)利要求7所述的低密度奇偶校驗(yàn)碼解碼方法,其中在該解碼過(guò)程中,使用一奇偶校驗(yàn)矩陣來(lái)關(guān)聯(lián)該變量節(jié)點(diǎn)流程或該校驗(yàn)節(jié)點(diǎn)流程,該低密度奇偶校驗(yàn)碼解碼方法還包括將該奇偶校驗(yàn)矩陣分為一第一子矩陣與一第二子矩陣;以及將該第一子矩陣所對(duì)應(yīng)的機(jī)率信息與該第二子矩陣所對(duì)應(yīng)的機(jī)率信息分別暫存至一第一存儲(chǔ)器模塊內(nèi)與一第二存儲(chǔ)器模塊內(nèi)。
9.根據(jù)權(quán)利要求7所述的低密度奇偶校驗(yàn)碼解碼方法,其中該解碼終止條件為該第一存儲(chǔ)器模塊中與該第二存儲(chǔ)器模塊中的機(jī)率信息符合以下等式(1)的條件vHT = 0…等式(1)其中,ν為一向量,其代表所接收的一低密度奇偶校驗(yàn)碼輸入,或代表經(jīng)過(guò)一無(wú)線傳輸后所接收的一低密度奇偶校驗(yàn)碼碼字,而Ht為該解碼過(guò)程中所需要的該奇偶校驗(yàn)矩陣H的轉(zhuǎn)置矩陣。
10.根據(jù)權(quán)利要求7所述的低密度奇偶校驗(yàn)碼解碼方法還包括確認(rèn)是否已達(dá)到一預(yù)設(shè)時(shí)間閾值,其中,若否,則返回對(duì)該第一存儲(chǔ)器模塊中與該第二存儲(chǔ)器模塊中的機(jī)率信息進(jìn)行該變量節(jié)點(diǎn)流程或該校驗(yàn)節(jié)點(diǎn)流程;以及若是,將該第一存儲(chǔ)器模塊的機(jī)率信息經(jīng)過(guò)該硬判決轉(zhuǎn)換為該低密度奇偶校驗(yàn)碼輸出數(shù)據(jù),并通過(guò)該第二存儲(chǔ)器模塊進(jìn)行該重新排序。
11.根據(jù)權(quán)利要求10所述的低密度奇偶校驗(yàn)碼解碼方法,其中該預(yù)設(shè)時(shí)間閾值為一幀周期。
12.根據(jù)權(quán)利要求7所述的低密度奇偶校驗(yàn)碼解碼方法還包括在一運(yùn)算循環(huán)內(nèi),對(duì)該第一存儲(chǔ)器模塊中與該第二存儲(chǔ)器模塊中的全部機(jī)率信息進(jìn)行該變量節(jié)點(diǎn)流程與該校驗(yàn)節(jié)點(diǎn)流程;對(duì)該第一存儲(chǔ)器模塊中的機(jī)率信息進(jìn)行該變量節(jié)點(diǎn)流程后,將該變量節(jié)點(diǎn)流程的一第一運(yùn)算結(jié)果暫存回該第一存儲(chǔ)器模塊中,再進(jìn)行該校驗(yàn)節(jié)點(diǎn)流程;以及對(duì)該第二存儲(chǔ)器模塊中的機(jī)率信息進(jìn)行該變量節(jié)點(diǎn)流程后,將該變量節(jié)點(diǎn)流程的一第二運(yùn)算結(jié)果暫存回該第二存儲(chǔ)器模塊中,再進(jìn)行該校驗(yàn)節(jié)點(diǎn)流程。
13.根據(jù)權(quán)利要求8所述的低密度奇偶校驗(yàn)碼解碼方法在將該奇偶校驗(yàn)矩陣分為該第一子矩陣與該第二子矩陣之后,該低密度奇偶校驗(yàn)碼解碼方法還包括將該第一子矩陣分組為多個(gè)隨機(jī)重復(fù)模式單位矩陣,其中該第一存儲(chǔ)器模塊中包括多個(gè)存儲(chǔ)器單元與所述隨機(jī)重復(fù)模式單位矩陣有一對(duì)一的一對(duì)應(yīng)關(guān)系。
14.根據(jù)權(quán)利要求7所述的低密度奇偶校驗(yàn)碼解碼方法,其中該第二子矩陣為一單位矩陣,其包括二對(duì)角線的數(shù)值皆為“1”,且該二對(duì)角線之間有一固定偏移。
15.根據(jù)權(quán)利要求7所述的低密度奇偶校驗(yàn)碼解碼方法,其中第一存儲(chǔ)器模塊的多個(gè)存儲(chǔ)器單元具有一部分并行處理架構(gòu)。
16.一種低密度奇偶校驗(yàn)碼解碼裝置,適用于無(wú)線接收裝置中的解碼過(guò)程,該低密度奇偶校驗(yàn)碼解碼裝置包括一變量節(jié)點(diǎn)處理(VNP)模塊,用以對(duì)一第一存儲(chǔ)器模塊中與一第二存儲(chǔ)器模塊中的機(jī)率信息進(jìn)行一變量節(jié)點(diǎn)流程;一校驗(yàn)節(jié)點(diǎn)處理(CNP)模塊,用以對(duì)一第一存儲(chǔ)器模塊中與一第二存儲(chǔ)器模塊中的機(jī)率信息進(jìn)行一校驗(yàn)節(jié)點(diǎn)流程;一運(yùn)算終止判斷模塊,用以判斷該第一存儲(chǔ)器模塊中與該第二存儲(chǔ)器模塊中的機(jī)率信息是否滿足一解碼終止條件;一雙向限幅器,用以將該第一存儲(chǔ)器模塊的機(jī)率信息經(jīng)過(guò)一硬判決轉(zhuǎn)換為一低密度奇偶校驗(yàn)碼輸出數(shù)據(jù),并通過(guò)該第二存儲(chǔ)器模塊進(jìn)行一重新排序。
17.根據(jù)權(quán)利要求16所述的低密度奇偶校驗(yàn)碼解碼裝置,其中在解碼該低密度奇偶校驗(yàn)碼時(shí),使用該奇偶校驗(yàn)矩陣來(lái)關(guān)聯(lián)該變量節(jié)點(diǎn)流程或該校驗(yàn)節(jié)點(diǎn)流程。
18.根據(jù)權(quán)利要求17所述的低密度奇偶校驗(yàn)碼解碼裝置,其中該解碼終止條件為該第一存儲(chǔ)器模塊中與該第二存儲(chǔ)器模塊中的機(jī)率信息符合以下等式(1)的條件vHT = 0 …等式(1)其中,ν為一向量,其代表所接收的一低密度奇偶校驗(yàn)碼輸入,或代表經(jīng)過(guò)一無(wú)線傳輸后所接收的一低密度奇偶校驗(yàn)碼碼字,而Ht為解碼該低密度奇偶校驗(yàn)碼時(shí),所需要的一奇偶校驗(yàn)矩陣H的轉(zhuǎn)置矩陣。
19.根據(jù)權(quán)利要求17所述的低密度奇偶校驗(yàn)碼解碼裝置還包括一控制模塊,用以確認(rèn)是否已達(dá)到一預(yù)設(shè)時(shí)間閾值,其中,若否,則該控制模塊通知該變量節(jié)點(diǎn)處理模塊與該校驗(yàn)節(jié)點(diǎn)處理模塊繼續(xù)對(duì)該第一存儲(chǔ)器模塊中與該第二存儲(chǔ)器模塊中的機(jī)率信息進(jìn)行該變量節(jié)點(diǎn)流程或該校驗(yàn)節(jié)點(diǎn)流程;以及若是,則該控制模塊通知該雙向限幅器將該第一存儲(chǔ)器模塊的機(jī)率信息經(jīng)過(guò)該硬判決轉(zhuǎn)換為該低密度奇偶校驗(yàn)碼輸出數(shù)據(jù),并通過(guò)該第二存儲(chǔ)器模塊進(jìn)行該重新排序。
20.根據(jù)權(quán)利要求19所述的低密度奇偶校驗(yàn)碼解碼裝置,其中該預(yù)設(shè)時(shí)間閾值為一幀周期。
21.根據(jù)權(quán)利要求17所述的低密度奇偶校驗(yàn)碼解碼裝置,其中,在一運(yùn)算循環(huán)內(nèi),該變量節(jié)點(diǎn)處理模塊與該校驗(yàn)節(jié)點(diǎn)處理模塊對(duì)該第一存儲(chǔ)器模塊中與該第二存儲(chǔ)器模塊中的全部機(jī)率信息進(jìn)行該變量節(jié)點(diǎn)流程與該校驗(yàn)節(jié)點(diǎn)流程;該變量節(jié)點(diǎn)處理模塊對(duì)該第一存儲(chǔ)器模塊中的機(jī)率信息進(jìn)行該變量節(jié)點(diǎn)流程后,將該變量節(jié)點(diǎn)流程的一第一運(yùn)算結(jié)果暫存回該第一存儲(chǔ)器模塊中,再由該校驗(yàn)節(jié)點(diǎn)處理模塊進(jìn)行該校驗(yàn)節(jié)點(diǎn)流程;以及該變量節(jié)點(diǎn)處理模塊對(duì)該第二存儲(chǔ)器模塊中的機(jī)率信息進(jìn)行該變量節(jié)點(diǎn)流程后,將該變量節(jié)點(diǎn)流程的一第二運(yùn)算結(jié)果暫存回該第二存儲(chǔ)器模塊中,再由該校驗(yàn)節(jié)點(diǎn)處理模塊進(jìn)行該校驗(yàn)節(jié)點(diǎn)流程。
22.根據(jù)權(quán)利要求17所述的低密度奇偶校驗(yàn)碼解碼裝置還包括一矩陣轉(zhuǎn)換單元,用以將該奇偶校驗(yàn)矩陣分為一第一子矩陣與一第二子矩陣,并且將該第一子矩陣分組為多個(gè)隨機(jī)重復(fù)模式單位矩陣;以及該變量節(jié)點(diǎn)處理模塊與該校驗(yàn)節(jié)點(diǎn)處理模塊將該第一子矩陣所對(duì)應(yīng)的機(jī)率信息與該第二子矩陣所對(duì)應(yīng)的機(jī)率信息分別暫存至一第一存儲(chǔ)器模塊內(nèi)與一第二存儲(chǔ)器模塊內(nèi),其中該第一存儲(chǔ)器模塊中包括多個(gè)存儲(chǔ)器單元與所述隨機(jī)重復(fù)模式單位矩陣有一對(duì)一的一對(duì)應(yīng)關(guān)系。
23.根據(jù)權(quán)利要求17所述的低密度奇偶校驗(yàn)碼解碼裝置,其中該第二子矩陣為一單位矩陣,其包括二對(duì)角線的數(shù)值皆為“1”,且該二對(duì)角線之間有一固定偏移。
24.根據(jù)權(quán)利要求17項(xiàng)所述的低密度奇偶校驗(yàn)碼解碼裝置還包括一存儲(chǔ)器定址存儲(chǔ)模塊,用以在該校驗(yàn)節(jié)點(diǎn)處理模塊對(duì)該第一存儲(chǔ)器模塊中的機(jī)率信息進(jìn)行該校驗(yàn)節(jié)點(diǎn)流程時(shí),提供該第一存儲(chǔ)器模塊中每一存儲(chǔ)器單元的一起始存儲(chǔ)器位置至該校驗(yàn)節(jié)點(diǎn)處理模塊,其中所述存儲(chǔ)器單元各自的一存儲(chǔ)器位置存取順序不相同。
25.根據(jù)權(quán)利要求17所述的低密度奇偶校驗(yàn)碼解碼裝置,其中該第一存儲(chǔ)器模塊的多個(gè)存儲(chǔ)器單元具有一部分并行處理架構(gòu),并包括多組并行處理存儲(chǔ)器模塊。
26.根據(jù)權(quán)利要求16所述的低密度奇偶校驗(yàn)碼解碼裝置,其中該第一存儲(chǔ)器模塊的每一組并行處理存儲(chǔ)器模塊中的一第一存儲(chǔ)器單元包括一輸入端口組,以及一最后存儲(chǔ)器單元包括一輸出端口組。
全文摘要
一種低密度奇偶校驗(yàn)碼(LDPC)的存儲(chǔ)器使用方法、LDPC解碼方法及其裝置,適用于無(wú)線接收器中的解碼過(guò)程。LDPC的存儲(chǔ)器使用方法包括以下步驟。首先,決定解碼過(guò)程中要在相同時(shí)間階段進(jìn)行的變量節(jié)點(diǎn)流程(VNP)或校驗(yàn)節(jié)點(diǎn)流程(CNP)。接著,將在相同時(shí)間階段進(jìn)行的VNP或CNP分配在不同的VNP群組或CNP群組中。再者,根據(jù)預(yù)期數(shù)據(jù)吞吐量選擇存儲(chǔ)器單元的折疊因子。然后,根據(jù)折疊因子與所分配的VNP群組或CNP群組,將存儲(chǔ)器單元串聯(lián)成多個(gè)并行處理存儲(chǔ)器模塊。
文檔編號(hào)H03M13/11GK102158232SQ20101011529
公開(kāi)日2011年8月17日 申請(qǐng)日期2010年2月11日 優(yōu)先權(quán)日2010年2月11日
發(fā)明者巫秋田, 陳牧忠 申請(qǐng)人:凌陽(yáng)科技股份有限公司