一種用于Turbo碼和LDPC碼譯碼器的地址生成器的制造方法【
技術(shù)領(lǐng)域:
】[0001]本發(fā)明涉及專用指令集處理器
技術(shù)領(lǐng)域:
,具體的說,涉及一種用于Turbo碼和LDPC碼譯碼器的地址生成器?!?br>背景技術(shù):
】[0002]Turbo碼是一種具有較強糾錯性能的糾錯碼,廣泛應(yīng)用于無線通信中。相關(guān)的標(biāo)準(zhǔn)包括全球移動通信系統(tǒng)(UMTS)[1]、長期演進(LTE)[2]、全球微波互聯(lián)接入(WiMAX)[3][0003]LDPC碼是無線通信中廣泛應(yīng)用的一種糾錯碼。相關(guān)的標(biāo)準(zhǔn)包括全球微波互聯(lián)接入(WiMAX)[3]、無線局域網(wǎng)(WIFI)[4]。[0004]在目前已有的地址生成器中,主要是針對Turbo碼地址生成器的ASIC設(shè)計【5】,無法通過指令對譯碼過程進行控制,且在靈活性方面比較受限。而且現(xiàn)有技術(shù)中一般都是采用專用電路來實現(xiàn)地址生成?!?br/>發(fā)明內(nèi)容】[0005]本發(fā)明的目的在于提供一種用于Turbo碼和LDPC碼譯碼器的地址生成器,該生成器能夠支持多種主流無線通信標(biāo)準(zhǔn)中的Turbo碼和LDPC碼譯碼過程中的實時地址生成,并且能夠支持未定義標(biāo)準(zhǔn)中的Turbo碼和LDPC碼譯碼過程中的地址生成。[0006]本發(fā)明提供一種用于Turbo碼和LDPC碼譯碼器的地址生成器,其采用混合式結(jié)構(gòu),包括指令存儲器、取指令模塊、預(yù)譯碼模塊、取操作數(shù)數(shù)模塊、多模式地址計算數(shù)據(jù)通路、通用寄存器、地址寄存器、LTE專用寄存器、配置寄存器和遞交模塊;其中:所述多模式地址計算數(shù)據(jù)通路包括查找表一乘法模塊、除法模塊、加比選模塊、取模模塊、數(shù)據(jù)存儲器和加比選1模塊,它們由配置寄存器進行配置,在不同的配置條件下這些計算數(shù)據(jù)通路形成不同的連接關(guān)系,從而完成不同的地址計算功能;多模式地址計算數(shù)據(jù)通路的連接具體為:查找表一乘法模塊的數(shù)據(jù)和指令被發(fā)送到除法模塊、加比選模塊和取模模塊,除法模塊的數(shù)據(jù)和指令被發(fā)送到加比選模塊和遞交模塊,加比選模塊的數(shù)據(jù)和指令被發(fā)送到取模模塊、除法模塊和遞交模塊,取模模塊的數(shù)據(jù)被發(fā)送到加比選模塊、遞交模塊、預(yù)譯碼模塊、通用寄存器、地址寄存器和取操作數(shù)模塊,數(shù)據(jù)存儲器模塊的數(shù)據(jù)被發(fā)送到查找表一乘法模塊、取模模塊、加比選模塊和遞交模塊,加比選1模塊的輸出發(fā)送到通用寄存器、LTE專用地址寄存器、地址寄存器、除法模塊和取操作數(shù)模塊;[0007]所述地址生成器中,取指令模塊從指令存儲器中獲取指令,并將指令發(fā)送給預(yù)譯碼模塊;預(yù)譯碼模塊對指令進行預(yù)譯碼,檢測跳轉(zhuǎn)之類的指令,并將其他指令發(fā)送給取操作數(shù)模塊;取操作數(shù)模塊根據(jù)指令從通用寄存器和地址寄存器中獲取操作數(shù),并根據(jù)配置寄存器中的內(nèi)容將所獲取的操作數(shù)以及指令發(fā)往查找表一乘法模塊、地址寄存器以及數(shù)據(jù)存儲器;所述遞交模塊和指令存儲器、取指令模塊、預(yù)譯碼模塊、取操作數(shù)模塊以及多模式地址計算數(shù)據(jù)通路相連。[0008]本發(fā)明中,指令存儲器中存有同步指令SYNC和ADRGEN_SYNC,通過這兩條指令可以保證在Turbo和LDPC的譯碼過程中的數(shù)據(jù)一致性。[0009]本發(fā)明的有益效果在于:本發(fā)明采用同一套硬件完成多種標(biāo)準(zhǔn)中Turbo碼和LDPC譯碼器的地址生成;本發(fā)明采用指令集架構(gòu)實現(xiàn)地址生成,具有比較高的靈活性;本發(fā)明可以工作在多種模式,為不同的標(biāo)準(zhǔn)實時生成Turbo譯碼的地址和LDPC譯碼的地址?!靖綀D說明】[0010]圖1是多模式的Turbo碼和LDPC碼譯碼器的整體架構(gòu)圖。[0011]圖2是單核專用處理器的結(jié)構(gòu)圖。[0012]圖3是地址生成器的結(jié)構(gòu)圖。[0013]圖4是地址生成器在UMTS模式下的流水線示意圖。[0014]圖5是地址生成器在UMTS模式下交織地址非法時的修正圖。[0015]圖6是地址生成器在LTE模式下的流水線示意圖。[0016]圖7是地址生成器在WiMAX的Turbo模式下的流水線示意圖。[0017]圖8是地址生成器在QC-LDPC模式下的流水線示意圖。[0018]圖9是QC-LDPC第一種讀模式中數(shù)據(jù)存儲示意圖和子矩陣示意圖。[0019]圖10是QC-LDPC第二種讀模式中數(shù)據(jù)存儲示意圖和子矩陣示意圖。[0020]圖11是未定義標(biāo)準(zhǔn)模式下的流水線示意圖?!揪唧w實施方式】[0021]下面結(jié)合附圖詳細闡述本發(fā)明技術(shù)方案。[0022]本發(fā)明所提出的地址生成器用于多模式的Turbo碼和LDPC碼譯碼器中,圖1是多模式的Turbo碼和LDPC碼譯碼器的整體架構(gòu)圖。該譯碼器能夠用Turbo碼和LDPC碼的糾錯譯碼。輸入接口負(fù)責(zé)各種數(shù)據(jù)輸入,包括控制處理器和專用處理器的指令/數(shù)據(jù)存儲器的初始化,信道信息存儲單元中信道LLR的輸入,各種糾錯碼信息的輸入??刂铺幚砥魇且粋€自定義指令集的RISC處理器,負(fù)責(zé)監(jiān)控整個譯碼過程、計算配置信息、配置專用處理器等。信道信息存儲單元用于存儲信道LLR和LE。片上網(wǎng)絡(luò)模塊負(fù)責(zé)專用處理器和信道信息存儲器以及專用處理器和專用處理器之間的數(shù)據(jù)傳輸。專用處理器負(fù)責(zé)處理具體的地址和算法運算,一共有P個并行的專用處理器。校驗處理器對譯碼的硬判決結(jié)果進行校驗,判斷譯碼是否可以結(jié)束,并輸出譯碼結(jié)果。[0023]圖2是單核專用處理器的結(jié)構(gòu)圖。圖中的地址生成器負(fù)責(zé)讀寫地址的生成,讀地址被送入網(wǎng)絡(luò)接口模塊,寫地址則送入寫出模塊中;MAP處理器從互連網(wǎng)絡(luò)中獲得數(shù)據(jù)(信道LLR和LE),進行Turbo和LDPC碼的MAP算法計算,并將計算得到的LE發(fā)送給寫出模塊;寫出模塊緩存從地址生成器來的寫地址,當(dāng)MAP處理器計算完LE之后,寫成模塊將該LE的值和緩存的地址一同發(fā)送給網(wǎng)絡(luò)接口模塊;網(wǎng)絡(luò)接口模塊負(fù)責(zé)將地址和數(shù)據(jù)打包成片上網(wǎng)絡(luò)中的數(shù)據(jù)格式,如果片上網(wǎng)絡(luò)指示要對當(dāng)前的專用處理器進行流控制(流控制信號為高),那么網(wǎng)絡(luò)接口模塊就進入等待狀態(tài),并通知數(shù)據(jù)源(地址生成器或?qū)懗瞿K)暫停,否則網(wǎng)絡(luò)接口模塊就將打好的包發(fā)射到互連網(wǎng)絡(luò)中;狀態(tài)度量存儲器模塊用于存儲Turbo/LDPC譯碼過程中的狀態(tài)度量、信道LLR和LE,采用LIFO(LastInFirstOut)的結(jié)構(gòu),并且包含了對Turbo碼狀態(tài)度量的壓縮和解壓縮電路。地址生成器在LDPC的工作模式下通過消息隊列會發(fā)送消息給MAP處理器,為MAP處理器的譯碼提供動態(tài)信息。[0024]圖3是地址生成器的電路結(jié)構(gòu)圖。地址生成器采用混合式結(jié)構(gòu),包括指令存儲器、取指令模塊、預(yù)譯碼模塊、取操作數(shù)模塊、多模式地址計算數(shù)據(jù)通路、通用寄存器、地址寄存器、LTE專用寄存器、配置寄存器和遞交模塊等。其中:[0025]指令存儲器,由輸入接口進行初始化,位寬為18位。在一般情況下,Turbo譯碼所需的指令大約為40條,LDPC譯碼所需的指令約為15條。考慮到對于比較復(fù)雜譯碼情況的支持,本文將指令Memory的深度設(shè)置為128。[0026]取指令模塊,每周期取出兩條連續(xù)的指令,并在該模塊中對控制類指令進行識別和條件判斷,并執(zhí)行控制指令。由于跳轉(zhuǎn)都是在該模塊中完成,而且每周期取出兩條指令,從而保證了REPEAT指令不會對流水線造成任何"氣泡"。對于其他的跳轉(zhuǎn)指令,當(dāng)跳轉(zhuǎn)條件滿足時,跳轉(zhuǎn)所付出的代價僅為1個周期,而當(dāng)跳轉(zhuǎn)條件不滿足時,下一條合法指令將會被直接送入下一級流水線,不會造成任何的流水線停頓,保證了指令可以被高效執(zhí)行。[0027]預(yù)譯碼模塊對指令進行初步譯碼,取出指令可尋址的配置寄存器中的值。[0028]取操作數(shù)模塊對指令進行二次譯碼,為下一級流水線準(zhǔn)備操作數(shù)。[0029]多模式地址計算數(shù)據(jù)通路包括查找表和乘法模塊、除法模塊、加比選模塊、取模模塊、數(shù)據(jù)存儲器模塊、加比選1模塊,它們由配置寄存器進行配置,在不同的配置條件下這些計算數(shù)據(jù)通路會形成不同的連接關(guān)系,從而可以完成不同的地址計算功能;多模式地址計算數(shù)據(jù)通路的連接具體為:查找表和乘法模塊的數(shù)據(jù)和指令將被發(fā)送到除法模塊、加比選模塊和取模模塊,除法模塊的數(shù)據(jù)和指令將被發(fā)送到加比選模塊和遞交模塊,加比選模塊的數(shù)據(jù)和指令將被發(fā)送到取模模塊、除法模塊和遞交模塊,取模模塊的數(shù)據(jù)將被發(fā)送到加比選模塊、遞交模塊、預(yù)譯碼模塊、通用寄存器、地址寄存器和取操作數(shù)模塊,數(shù)據(jù)存儲器模塊的數(shù)據(jù)將被發(fā)送到查找表一乘法模塊、取模模塊、加比選模塊和遞交模塊,加比選1模塊的輸出發(fā)送到通用寄存器、LTE專用地址寄存器、地址寄存器、除法模塊和取操作數(shù)模塊。[0030]其中:[0031]查找表一乘法模塊中包含了一個小型的查找表(LUT,lookuptable)以及一個乘加單元陣列。查找表一乘法模塊中的乘加單元一共有6個,每個乘加單元的輸入位寬為13比特,輸出位寬為16比特,加法也可以執(zhí)行減法操作。查找表是一個深度為20、寬度為7比特的小型寄存器堆,提供UMTS算法中的查找表操作。[0032]除法模塊是一個由乘法器組成的除法器陣列,在交織地址的計算中經(jīng)常涉及到除法和取模操作,而這些除法或取模的除數(shù)一般變化比較小,可以通過用被除數(shù)乘以除數(shù)的倒數(shù)來求取。除法模塊模塊中一共有6個這樣的除法器,每個除法器的輸入和輸出的位寬都為15比特。[0033]加比選模塊和加比選1模塊都是加比選(Add-Compare-Select)單元陣列。[0034]數(shù)據(jù)存儲器用于存儲各類數(shù)據(jù),包括地址和配當(dāng)前第1頁1 2