專利名稱:一種行列式分組交織器的并行實現(xiàn)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信技術(shù)領(lǐng)域,尤其涉及一種行列式分組交織器的并行實現(xiàn)方法。
背景技術(shù):
行列式分組交織是交織器中最直觀也最簡單的一種交織方式,其基本原理是將輸
入的比特數(shù)據(jù)逐行填充入"X"個矩陣單元中,如圖1中所示;當(dāng)填充完所有矩陣單元
后,則逐列讀出矩陣單元中的內(nèi)容,如圖2中所示。其中,d和n是行列式分組交織
器的兩個參數(shù),分別稱為交織深度與交織寬度。從交織功能上講,行列式分組交織器 的功能是將輸入的比特數(shù)據(jù)順序打亂后再重新輸出,行列式分組交織器是以幀長為 的比特數(shù)據(jù)為交織單位,對每幀數(shù)據(jù)進(jìn)行相同的交織操作。
行列式分組交織器的串行實現(xiàn)方法較為簡單。使用一塊容量為(c/x")xl比特的雙 口隨機(jī)存取存儲器(RAM)對比特數(shù)據(jù)進(jìn)行寫、讀存儲,雙口RAM的寫地址由模為c/xn 的加1計數(shù)器產(chǎn)生,當(dāng)往雙口 RAM中寫滿個數(shù)據(jù)后,則開始從雙口 RAM中讀 出數(shù)據(jù),雙口 RAM的讀地址的產(chǎn)生由C"Q和Q^兩部分相加構(gòu)成,C/7Q是一個模 為的加 計數(shù)器,當(dāng)CWR的計算值由("-l)x"跳轉(zhuǎn)為0時,Q^則進(jìn)行模為"的 加1計數(shù),兩計數(shù)器的初值都為0。
顯然,串行方法實現(xiàn)的行列式分組交織器的數(shù)據(jù)處理速度瓶頸受限于雙口 RAM 的寫、讀速度。為了能提高行列式分組交織器的數(shù)據(jù)處理速度,可采取并行實現(xiàn)方法。 發(fā)明名稱為"Block interleave circuit"的已授權(quán)專利US6476738中給出了行列式分組 交織器的一種并行實現(xiàn)方法,其主要是出于避免雙口 RAM較為繁瑣的讀寫控制邏輯 的目的而提出的。實現(xiàn)時先用移位寄存器將An個比特數(shù)據(jù)進(jìn)行串行/并行轉(zhuǎn)換,接 著用個寄存器寄存轉(zhuǎn)換后的并行數(shù)據(jù),之后將這個寄存器的輸出數(shù)據(jù)按照 行列式分組交織器的功能所要求的數(shù)據(jù)打亂順序并行存入數(shù)據(jù)輸出移位寄存器進(jìn)行 并行/串行轉(zhuǎn)換。雖然在發(fā)明專利US6476738中,行列式分組交織器輸出的數(shù)據(jù)是串
行方式,但若去掉數(shù)據(jù)輸出移位寄存器,該發(fā)明可看作是行列式分組交織器的并行度 為"M的并行實現(xiàn)方法。
上述發(fā)明的缺點是只適用d和"值較小的情況,當(dāng)c/與"較大時,該發(fā)明需要大 量的寄存器資源,因而不實用;此外該發(fā)明的并行度固定,不能夠根據(jù)實際需求進(jìn)行 靈活改變。
發(fā)明內(nèi)容
本發(fā)明針對行列式分組交織器的并行實現(xiàn),為提高行列式分組交織器的數(shù)據(jù)處理 速度,提出了一種行列式分組交織器的并行實現(xiàn)方法。 本發(fā)明通過以下技術(shù)方案實現(xiàn)
令行列式分組交織器的交織深度為",交織寬度為W,一幀比特數(shù)據(jù)的個數(shù)為"x , 選取w的任意因數(shù)作為并行度p, n = wxp,其中w為正整數(shù),行列式分組交織器的 輸入為經(jīng)串行/并行轉(zhuǎn)換后數(shù)據(jù)寬度為p比特的并行數(shù)據(jù),其輸出也為數(shù)據(jù)寬度為p 比特的并行數(shù)據(jù), 一幀交織的數(shù)據(jù)為Aw個數(shù)據(jù)寬度為p比特的并行數(shù)據(jù)。其步驟 如下
(1) 用順序交換器對輸入的p比特數(shù)據(jù)進(jìn)行順序交換。順序交換器是根據(jù)交換順 序?qū)?7比特數(shù)據(jù)進(jìn)行比特順序交換的一個數(shù)據(jù)通道,每個p比特數(shù)據(jù)的交換順序都相 同,給定J, ", /7值,交換順序也就確定,其計算方法為取/為0到,l上的整數(shù), 首先計算出索引Indx值,其中Indx與/之間的關(guān)系如下
Indx = mod()',w)X(i +如w(〃
其中mod"";)表示/整除"得到的余數(shù),;fow(V/";)表示/整除"得到的商,然后,
根據(jù)計算出的Indx值,計算出Shuf值,Shuf值為位于0到/>1上的整數(shù),其中Shuf 與Indx之間的關(guān)系如下
Shuf = mod (Indx + mod (_/7oo, (Indx /1cm ((i,/))),gcd(d, 其中l(wèi)cm(義p)表示求d和p的最小公倍數(shù),gcd(cf,/ )則表示求d和;?的最大公約數(shù), y oor (Indx/lcm (t/,p)) 表示Indx整除 lcm(V,p) 得至ij 的商 ,
(Indx / 1cm (J,/7)),gcd (d,p》表示/Zoor (Indx / 1cm(d,p))整除gcd(t/,得 到的余數(shù),mod(Indx + m。d(/7oo"Indx/lcm(y,; )),gcd(y,; )),; )則表示Indx與 mod(77oo"Indx/lcm(i/,p)),gcd(Ap》的和值整除p得到的余數(shù),取Z值依次為從0 到p-1的整數(shù),依次計算可得p個Shuf值,從0到p-1的;7個整數(shù)和計算出的p個 Shuf值之間的對應(yīng)關(guān)系即為交換順序;
(2) 將經(jīng)步驟(l)交換順序后得到的的數(shù)據(jù)輸入右移循環(huán)移位器進(jìn)行右移循環(huán)移 位,右移循環(huán)移位器對交換順序后的每個p比特數(shù)據(jù)進(jìn)行向右循環(huán)移位(數(shù)據(jù)高位在 左,低位在右),移位的次數(shù)SR的計算方法如下
SR =如or(4/w)
其屮A表示p比特數(shù)據(jù)在一幀p比特并行數(shù)據(jù)中的序號,取值為從0到上的整
數(shù),/00r(/fc/w)表示求/t整除W得到的商;
(3) 根據(jù)寫地址產(chǎn)生器產(chǎn)生的p個寫地址,將經(jīng)步驟(2)右移循環(huán)移位后得到的p 比特數(shù)據(jù)的各比特分別寫入戶個雙口 RAM中。寫地址產(chǎn)生器用于產(chǎn)生每個/7比特數(shù)
據(jù)往/7個雙口RAM寫入時分別對應(yīng)的p個寫地址,其產(chǎn)生方法為對于第l個/ 比 特數(shù)據(jù)(序號/t為0),從只讀存儲器(ROM)的O地址存儲單元中讀出的內(nèi)容即為第 I個/ 比特數(shù)據(jù)的/7個寫地址,其后續(xù)的(w-l)個; 比特數(shù)據(jù)的寫地址的產(chǎn)生方法是后 一個p比特數(shù)據(jù)的p個寫地址由前一個p比特數(shù)據(jù)的p個寫地址累加1得到,對于第 —十l)個p比特數(shù)據(jù)(序號A:為w),從ROM的1地址存儲單元中讀出的內(nèi)容即為第(w+l) 個p比特數(shù)據(jù)的p個寫地址,其后續(xù)的(w-l)個p比特數(shù)據(jù)的寫地址的產(chǎn)生方法是后 一個戶比特數(shù)據(jù)的p個寫地址由前一個p比特數(shù)據(jù)的p個寫地址累加1得到,依此類 推,^xw)個p比特數(shù)據(jù)所對應(yīng)的寫地址按照此方法產(chǎn)生得到。
ROM中存儲的內(nèi)容的產(chǎn)生方法為對于第l個p比特數(shù)據(jù)(序號yt為O),取f為 從0到p-l的整數(shù),首先,計算出p個Indx值,然后,根據(jù)Indx值計算出/7個初始 寫地址v4c/AWR ,其中AW^r與Indx之間的關(guān)系如下
其中^ow(Indx/; )表示Indx整除得到的商,mod(/ oor(Indx/; )表示求 y/oo"Indx/p)整除d得到的余數(shù),yfeo"Indx/(t/x;^則表示Indx整除c/x^得到的
商,根據(jù)比特數(shù)據(jù)的交換順序,先對p個初始寫地址進(jìn)行順序交換,再根據(jù)第1 個/7比特數(shù)據(jù)的右移循環(huán)移位的操作對順序交換后的p個初始寫地址進(jìn)行相同的右移 循環(huán)移位操作,得到的p個寫地址進(jìn)行二進(jìn)制比特數(shù)據(jù)鏈接(按順序高位在左,低位 在右)存入ROM的0地址指示的存儲單元中,對于第(w+l)個p比特數(shù)據(jù)(序號A為 w),取/為從(w,)到(w+l)xp-l的整數(shù),先計算出p個Indx值,然后,根據(jù)Indx值 計算出p個初始寫地址^Wr,,根據(jù)p比特數(shù)據(jù)的交換順序,先對p個初始寫地址 進(jìn)行順序交換,再根據(jù)第w個/7比特數(shù)據(jù)的右移循環(huán)移位的操作對順序交換后的p 個初始寫地址進(jìn)行相同的右移循環(huán)移位操作,得到的p個寫地址二進(jìn)制比特數(shù)據(jù)鏈接 存入ROM的1地址指示的存儲單元中,依此類推,ROM中J個存儲單元的內(nèi)容按 此方法產(chǎn)生得到,ROM的容量為Jx(px叫)比特,其中,"=「lb(("-l)xw",其中「, 表示向上取整運算,即需要w個比特來表示OM)xw值;
(4) 在步驟(3)完成將一幀數(shù)據(jù)全部寫入p個雙口 RAM之后,根據(jù)讀地址產(chǎn)生器 產(chǎn)生的讀地址,從p個雙口 RAM中并行讀出i 比特數(shù)據(jù),p個雙口 RAM的讀地址 均相同,其產(chǎn)生由0^和C"^兩部分相加構(gòu)成,C"^是一個模為dxw的加w計數(shù)器, 當(dāng)O^計算值由W-l)xw跳轉(zhuǎn)為0時,0^則進(jìn)行模為w的加l計數(shù),兩計數(shù)器的初 值都為0;
(5) 左移循環(huán)移位器對由步驟(4)讀出的每個比特數(shù)據(jù)進(jìn)行向左循環(huán)移位(數(shù)據(jù) 高位在左,低位在右),左移循環(huán)移位后得到的p比特數(shù)據(jù)即為行列式分組交織器的 輸出,向左循環(huán)移位的次數(shù)SL的計算方法如下其中y表示從p個雙口 RAM中讀出的j 比特數(shù)據(jù)的序號,取值為從0到^xw-l上的 整數(shù),gcd^,p)則表示求d和/7的最大公約數(shù),_/700"http://^/^<1(^;7)))表示/'整除 (d/gcd(c/,/ ))得到的商,mod(/7。w(j7(J/gcd(J,p)》,gcd(c/,/ ))表示 T7離(/ / (d / gcd (A力))整除gcd (A p)得到的余數(shù)。
本發(fā)明的有益效果
本發(fā)明通過靈活地選取并行度p的方式,將行列式分組交織器的數(shù)據(jù)處理速率提 高P倍,滿足了高速數(shù)據(jù)傳輸?shù)膽?yīng)用。
圖1為行列式分組交織器的寫示意圖2為行列式分組交織器的讀示意圖3為行列式分組交織器的并行實現(xiàn)結(jié)構(gòu)圖4為圖3中的寫地址產(chǎn)生器的結(jié)構(gòu)圖5為圖3中的讀地址產(chǎn)生器的結(jié)構(gòu)圖6為雙口 RAM寫入時,圖3中的控制器產(chǎn)生的控制信號的時序圖7為雙口 RAM讀出時,圖3中的控制器產(chǎn)生的控制信號的時序圖8為根據(jù)本發(fā)明的一個實施例的一組數(shù)據(jù)的順序交換及右移循環(huán)移位圖9為根據(jù)本發(fā)明的一個實施例的又一組數(shù)據(jù)的順序交換及右移循環(huán)移位圖10為根據(jù)本發(fā)明的一個實施例的一幀交織數(shù)據(jù)寫完后雙口 RAM中的存儲內(nèi) 容示意圖。
具體實施例方式
本發(fā)明提出了一種行列式分組交織器的并行實現(xiàn)方法。行列式分組交織器的交織 深度為",交織寬度為", 一幀比特數(shù)據(jù)的個數(shù)為"xm,選取w的任意因數(shù)作為并行
度p, " = WXp, W為正整數(shù)。
將c/x 個比特數(shù)據(jù)每連續(xù);7個比特數(shù)據(jù)串行/并行轉(zhuǎn)換成一個數(shù)據(jù)寬度為p比特 的并行數(shù)據(jù)。交織過程需用戶個容量為(dx—xl比特的雙口 RAM(RAM。,RAMp…,RAM^)對數(shù)據(jù)進(jìn)行寫、讀存儲。每個p比特數(shù)據(jù)并不是按照 并行數(shù)據(jù)內(nèi)的比特順序分別寫入RAM。,RAM,,…,RAM^中,而需要將這p比特數(shù)據(jù) 先進(jìn)行順序交換后,再經(jīng)循環(huán)移位,然后根據(jù)寫地址將各比特分別寫入 RAM。,RAMp…,RAMH這p個雙口 RAM中。
行列式分組交織器的并行實現(xiàn)結(jié)構(gòu)框圖如圖3中所示。順序交換器3001的功能是將行列式分組交織器輸入的p比特數(shù)據(jù)進(jìn)行順序交換。 對于給定的A ", /7值,交換順序確定,其計算方法為取/為0到/M上的整數(shù), 首先根據(jù)式(l)計算出索引Indx值。
Indx = mod w) x " t o。/" (〃 (1)
其中mod(i,")表示/整除"得到的余數(shù),^ ow(〃")表示z'整除"得到的商。
根據(jù)計算出的Indx值,根據(jù)式(2)計算出Shuf值,Shuf值為位于0到p-1上的整數(shù)。
Shuf = mod(Indx + mod(_/7ow(IndxZlcm(t/,; )),gcd(£/,p)),;7) (2) 其中,lcm(《;^表示求(/和/j的最小公倍數(shù),gcd(d,; )則表示求d和;7的最大公約 數(shù),yZoo/"(Indx/lcmO/,; ))表示求Indx整除lcm(d,p)得到的商,
m。d(/o。r(Indx/lcm(t/,p)),gcd((i,;7)) 表示y7ow(Indx/lcm((i,/j)) 整除 gcd (d,; )得到的余數(shù),mod (Indx + mod (yZoo" Indx / 1cm (d, p)), gcd (d, p)), 則表示 Indx與m。d(y7oo;^Indx/lcm(^; 》,gcd(Ap))的和值整除p得到的余數(shù)。
取/值依次為從0到p-l的整數(shù),依次計算可得p個Shuf值,從0到,1的p個 整數(shù)和計算出的p個Shuf值之間的對應(yīng)關(guān)系即為交換順序。
本發(fā)明中的順序交換器僅僅是數(shù)據(jù)通路的交叉轉(zhuǎn)換,不消耗任何電路資源。
圖3中右移循環(huán)移位器3002的功能是完成對每個/7比特數(shù)據(jù)向右循環(huán)移位的操 作。數(shù)據(jù)高位在左,低位在右,由控制器3008產(chǎn)生的C五2信號表示的是每個p比特 數(shù)據(jù)向右循環(huán)移位的次數(shù)SR,其可根據(jù)式(3)計算出。
SR = _/7—yt/w) (3) 其中A表示p比特數(shù)據(jù)在一幀p比特并行數(shù)據(jù)中的序號,取值為從0到^w-l上的整 數(shù),力ow(/t/w;)表示求yt整除w得到的商。
圖3中,只讀存儲器(ROM)3003共J個存儲單元,其存儲內(nèi)容產(chǎn)生方法如下 對于第1個P比特數(shù)據(jù)(序號A為0),取/為從0到/7-l的整數(shù),首先,根據(jù)式(l)計 算出尸個Indx值,然后,根據(jù)Indx值由式(4)計算出個初始寫地址」^^WR ,
^必r抓=mod (y/ow (Indx//>),rf)xw + y 離(Indx/(yxp)) (4) 其中;7oor(Indx/p)表示Indx整除;?得到的商,mod(yZ(w(Indx/p),rf)表示求 y/oor(Indx/p)整除d得到的余數(shù),yfow(Indx/(c/x; ))則表示Indx整除&p得到的 商,根據(jù)p比特數(shù)據(jù)的交換順序,先對p個初始寫地址進(jìn)行順序交換,再根據(jù)第1 個/;比特數(shù)據(jù)的右移循環(huán)移位的操作對順序交換后的p個初始寫地址進(jìn)行相同的右移 循環(huán)移位操作,得到的p個寫地址進(jìn)行二進(jìn)制比特數(shù)據(jù)鏈接(按順序高位在左,低位 在右)存入ROM的0地址指示的存儲單元中,對于第(w+l)個p比特數(shù)據(jù)(序號&為 w),取f為從0^)到(w+l)^-l的整數(shù),先計算出p個Indx值,然后,根據(jù)Indx值 計算出p個初始寫地址^""rWR ,根據(jù)p比特數(shù)據(jù)的交換順序,先對/7個初始寫地址
進(jìn)行順序交換,再根據(jù)第w個/7比特數(shù)據(jù)的右移循環(huán)移位的操作對順序交換后的 個初始寫地址進(jìn)行相同的右移循環(huán)移位操作,得到的p個寫地址進(jìn)行二進(jìn)制比特數(shù)據(jù) 鏈接存入ROM的1地址指示的存儲單元中,由此類推,ROM中存儲的c/個寫地址 按照此方法產(chǎn)生得到,ROM的容量大小為^x(px附,)比特,其中,^ =「lb((d —l)xw)"l,
其中「 l表示向上取整運算,即需要叫個比特來表示(y-i)xw值;
圖3中,ROM的讀地址C4每w個時鐘周期自加l(初始值為0),只讀存儲器的 p個位寬為w比特的輸出分別對應(yīng)到p個寫地址產(chǎn)生器3004上。
寫地址產(chǎn)生器3004用于產(chǎn)生雙口 RAM的寫地址,其產(chǎn)生方法為對于第1個戶 比特數(shù)據(jù)(序號A為0),從ROM的0地址存儲單元中讀出的內(nèi)容即為第1個p比特 數(shù)據(jù)的p個寫地址,其后續(xù)的(w-l)個;?比特數(shù)據(jù)的寫地址的產(chǎn)生方法是后一個/7比 特數(shù)據(jù)的p個寫地址由前一個p比特數(shù)據(jù)的p個寫地址累加1得到,對于第(vv+l)個 p比特數(shù)據(jù)(序號A為w),從ROM的1地址存儲單元中讀出的內(nèi)容即為第0+l)個p 比特數(shù)據(jù)的i 個寫地址,其后續(xù)的(w-l)個p比特數(shù)據(jù)的寫地址的產(chǎn)生方法是后一個p 比特數(shù)據(jù)的p個寫地址由前一個p比特數(shù)據(jù)的p個寫地址累加l得到,由此類推,(^MO 個p比特數(shù)據(jù)所對應(yīng)的寫地址按照此方法產(chǎn)生得到。
寫地址產(chǎn)生器3004的詳細(xì)結(jié)構(gòu)如圖4中所示。令^二「lb(rfxw-l)1,即需要 附2個比特來表示^,-1)值。C&信號有效時,將從只讀存儲器3003中讀出的內(nèi)容的 數(shù)據(jù)寬度從,擴(kuò)展為附2(高位補0)。
信號無效時,寫地址累加1 。
p個寫地址產(chǎn)生器3004輸出的p個寫地址分別對應(yīng)到p個雙口 RAM3005的;7 個寫地址端口上,將p比特數(shù)據(jù)的各比特寫入p個雙U RAM的由p個寫地址所指示 的存儲單元中。
讀地址產(chǎn)生器3006用于產(chǎn)生雙口 RAM的讀地址,p個雙口 RAM的讀地址均相 同,其產(chǎn)生由C《和C頭兩部分相加構(gòu)成,C《是一個模為"xw的加w計數(shù)器,當(dāng) 0^計算值由W-l)xw跳轉(zhuǎn)為0時,C加e則進(jìn)行模為w的加1計數(shù),兩計數(shù)器的初值 都為0。讀地址產(chǎn)生器3006的詳細(xì)結(jié)構(gòu)如圖5中所示。C&信號有效時,C"&被置0, C 加l計數(shù);否則,Q^加w計數(shù),0^則維持原值不變。
讀地址產(chǎn)生器3006產(chǎn)生的讀地址對應(yīng)到了 p個雙口 RAM 3005的p個讀地址端 口上,用于并行讀出p比特數(shù)據(jù)。
左移循環(huán)移位器3007對讀出的每個p比特數(shù)據(jù)進(jìn)行左移循環(huán)移位,數(shù)據(jù)高位在 左,低位在右,向左循環(huán)移位后得到的p比特數(shù)據(jù)即為行列式分組交織器的輸出,由 控制器3008產(chǎn)生的C五4信號表示的是每個p比特數(shù)據(jù)向左循環(huán)移位的次數(shù)SL,其可 根據(jù)式(5)計算出。
控制器3008用于產(chǎn)生控制信號C4, C^, C&, C&和CE
往雙口RAM中寫入數(shù)據(jù)時,需要產(chǎn)生控制信號C4, C^和C&,其時序圖如圖 6中所示。當(dāng)一幀數(shù)據(jù)全部寫入p個雙口 RAM后,才開始從;?個雙口 RAM中讀取 數(shù)據(jù),讀數(shù)據(jù)時,需要產(chǎn)生控制信號C&和C&,其時序圖如圖7中所示。圖7中只 給出了前d個時鐘周期內(nèi)的時序關(guān)系,后續(xù)的時序關(guān)系則是圖7中的(w-l)次重復(fù)。
下面以具體實例來加以說明。 實例
設(shè)交織深度"=6,交織寬度"=12,并行度; = 4,根據(jù)公式"=^><; ,則w二3。
設(shè)一幀72個比特數(shù)據(jù)為x。,w71 。
分別取/等于0, 1, 2, 3,按式(l)計算出Indx值分別為(O, 6, 12, 18),按式(2) 計算出Shuf值分別為(O, 2, 1, 3)。
對于4比特數(shù)據(jù)(jc。,x,,^,xj,序號A;等于O,按式(3)計算出SR值為0,因此, 經(jīng)順序交換及向右循環(huán)移位0次后的4比特數(shù)據(jù)為(;c。,X2,XpX》,此4比特數(shù)據(jù)的順 序交換及右移循環(huán)移位圖如圖8中所示。
再如對于4比特數(shù)據(jù)(^,^37,^,139),序號A等于9,按式(3)計算出SR值為3, 因此,經(jīng)順序交換及向右循環(huán)移位3次后的4比特數(shù)據(jù)為(;c38,x37 ,x39,x36),此4比特 數(shù)據(jù)的順序交換及右移循環(huán)移位圖如圖9中所示。
由式(4)計算出的6組初始寫地址JfiWrWR為(O, 3, 9, 12); (0, 3, 9, 12); (0, 6, 9, 15); (0, 6, 9, 15); (3, 6, 12, 15); (3, 6, 12, 15)。經(jīng)順序交換以及右移循環(huán)移位后,得6組寫地址 為(O, 9, 3, 12); (12, 0, 9, 3); (6, 15, 0, 9); (9, 6, 15, 0); (3, 12, 6, 15); (15, 3, 12, 6)。
將每組寫地址鏈接存入容量為6x16比特的ROM中,從0地址開始,存儲的內(nèi) 容依次為 0000100100111100; 1100000010010011; 0110111100001001; 1001011011110000; 0011110001101111; 1111001111000110。
此實例中,當(dāng)一幀交織數(shù)據(jù)寫完后,4個雙口 RAM(RAM。,RAMpRAM2,RAM3) 中存儲的內(nèi)容如圖IO中所示。
一幀交織數(shù)據(jù)寫完后,需耍根據(jù)讀地址從4個雙口RAM中將數(shù)據(jù)讀出,并將每 次讀出4比特數(shù)據(jù)進(jìn)行左移循環(huán)移位。
如讀第1個4比特數(shù)據(jù)的讀地址為(O, 0, 0, 0),從4個雙口 RAM中讀出的第1個 4比特數(shù)據(jù)為(x。,x12,x24,x36) , / = 0,按式(5)計算出SL值為0。此4比特數(shù)據(jù)需經(jīng)向 左循環(huán)移位0次,也即行列式分組交織器輸出的第1個4比特數(shù)據(jù)為(x。,x12,x24,;c36)。
再如讀第5個4比特數(shù)據(jù)的讀地址為(12, 12, 12, 12),從4個雙口 RAM中讀出的 第5個4比特數(shù)據(jù)為015,15。,162,;0, 乂 = 4,按式(6)計算出SL值為1。此4比特數(shù)據(jù) 經(jīng)向左循環(huán)移位1次后得行列式分組交織器的輸出為(^5。^62,13,、)。
權(quán)利要求
1.一種行列式分組交織器的并行實現(xiàn)方法,其特征在于,選取n的任意因數(shù)作為并行度p,n=w×p,其中,行列式分組交織器的交織深度為d,交織寬度為n,一幀比特數(shù)據(jù)的個數(shù)為d×n,w為正整數(shù),具體步驟包括(1)用順序交換器對輸入的p比特數(shù)據(jù)進(jìn)行順序交換,順序交換器是根據(jù)交換順序?qū)比特數(shù)據(jù)進(jìn)行比特順序交換的一個數(shù)據(jù)通道,每個p比特數(shù)據(jù)的交換順序都相同,給定d,n,p值,交換順序也就確定,其計算方法為取i為0到p-1上的整數(shù),首先計算出索引Indx值,其中Indx與i之間的關(guān)系如下Indx=mod(i,n)×d+floor(i/n)其中mod(i,n)表示i整除n得到的余數(shù),floor(i/n)表示i整除n得到的商,然后,根據(jù)計算出的Indx值,計算出Shuf值,Shuf值為位于0到p-1上的整數(shù),其中Shuf與Indx之間的關(guān)系如下Shuf=mod(Indx+mod(floor(Indx/1cm(d,p)),gcd(d,p)),p)其中1cm(d,p)表示求d和p的最小公倍數(shù),gcd(d,p)則表示求d和p的最大公約數(shù),floor(Indx/1cm(d,p))表示Indx整除1cm(d,p)得到的商,mod(floor(Indx/1cm(d,p)),gcd(d,p))表示floor(Indx/1cm(d,p))整除gcd(d,p)得到的余數(shù),mod(Indx+mod(floor(Indx/1cm(d,p)),gcd(d,p)),p)則表示Indx與mod(floor(Indx/1cm(d,p)),gcd(d,p))的和值整除p得到的余數(shù),取i值依次為從0到p-1的整數(shù),依次計算可得p個Shuf值,從0到p-1的p個整數(shù)和計算出的p個Shuf值之間的對應(yīng)關(guān)系即為交換順序;(2)將經(jīng)步驟(1)交換順序后得到的的數(shù)據(jù)輸入右移循環(huán)移位器進(jìn)行右移循環(huán)移位,右移循環(huán)移位器對交換順序后的每個p比特數(shù)據(jù)按照數(shù)據(jù)高位在左,低位在右進(jìn)行向右循環(huán)移位,移位的次數(shù)SR的計算方法如下SR=floor(k/w)其中k表示p比特數(shù)據(jù)在一幀p比特并行數(shù)據(jù)中的序號,取值為從0到d×w-1上的整數(shù),floor(k/w)表示求k整除w得到的商;(3)根據(jù)寫地址產(chǎn)生器產(chǎn)生的p個寫地址,將經(jīng)步驟(2)右移循環(huán)移位得到的p比特數(shù)據(jù)的各比特分別寫入p個雙口RAM中,寫地址產(chǎn)生器用于產(chǎn)生每個p比特數(shù)據(jù)往p個雙口RAM寫入時分別對應(yīng)的p個寫地址,其產(chǎn)生方法為對于第1個p比特數(shù)據(jù),其序號k為0,從只讀存儲器(ROM)的0地址存儲單元中讀出的內(nèi)容即為第1個p比特數(shù)據(jù)的p個寫地址,其后續(xù)的(w-1)個p比特數(shù)據(jù)的寫地址的產(chǎn)生方法是后一個p比特數(shù)據(jù)的p個寫地址由前一個p比特數(shù)據(jù)的p個寫地址累加1得到,對于第(w+1)個p比特數(shù)據(jù),其序號k為w,從ROM的1地址存儲單元中讀出的內(nèi)容即為第(w+1)個p比特數(shù)據(jù)的p個寫地址,其后續(xù)的(w-1)個p比特數(shù)據(jù)的寫地址的產(chǎn)生方法是后一個p比特數(shù)據(jù)的p個寫地址由前一個p比特數(shù)據(jù)的p個寫地址累加1得到,依此類推,(d×w)個p比特數(shù)據(jù)所對應(yīng)的寫地址按照此方法產(chǎn)生得到;ROM中存儲的內(nèi)容的產(chǎn)生方法為對于第1個p比特數(shù)據(jù),其序號k為0,取i為從0到p-1的整數(shù),首先,計算出p個Indx值,然后,根據(jù)Indx值計算出p個初始寫地址AddrWR,其中AddrWR與Indx之間的關(guān)系如下AddrWR=mod(floor(Indx/p),d)×w+floor(Indx/(d×p))其中floor(Indx/p)表示Indx整除p得到的商,mod(floor(Indx/p),d)表示求floor(Indx/p)整除d得到的余數(shù),floor(Indx/(d×p))則表示Indx整除d×p得到的商,根據(jù)p比特數(shù)據(jù)的交換順序,先對p個初始寫地址進(jìn)行順序交換,再根據(jù)第1個p比特數(shù)據(jù)的右移循環(huán)移位的操作對順序交換后的p個初始寫地址進(jìn)行相同的右移循環(huán)移位操作,得到的p個寫地址按順序高位在左,低位在右進(jìn)行二進(jìn)制比特數(shù)據(jù)鏈接存入ROM的0地址指示的存儲單元中,對于第(w+1)個p比特數(shù)據(jù)(序號k為w),取i為從(w×p)到(w+1)×p-1的整數(shù),先計算出p個Indx值,然后,根據(jù)Indx值計算出p個初始寫地址AddrWR,根據(jù)p比特數(shù)據(jù)的交換順序,先對p個初始寫地址進(jìn)行順序交換,再根據(jù)第w個p比特數(shù)據(jù)的右移循環(huán)移位的操作對順序交換后的p個初始寫地址進(jìn)行相同的右移循環(huán)移位操作,得到的p個寫地址二進(jìn)制比特數(shù)據(jù)鏈接存入ROM的1地址指示的存儲單元中,依此類推,ROM中d個存儲單元的內(nèi)容按此方法產(chǎn)生得到,ROM的容量為d×(p×m1)比特,其中, id="icf0001" file="A2008101179300003C1.tif" wi="38" he="6" top= "167" left = "64" img-content="drawing" img-format="tif" orientation="portrait" inline="yes"/>其中 id="icf0002" file="A2008101179300003C2.tif" wi="5" he="5" top= "167" left = "115" img-content="drawing" img-format="tif" orientation="portrait" inline="yes"/>表示向上取整運算,即需要m1個比特來表示(d-1)×w值;(4)在步驟(3)完成將一幀數(shù)據(jù)全部寫入p個雙口RAM后,根據(jù)讀地址產(chǎn)生器產(chǎn)生的讀地址,從p個雙口RAM中并行讀出p比特數(shù)據(jù),p個雙口RAM的讀地址均相同,其產(chǎn)生由CntR和CntC兩部分相加構(gòu)成,CntR是一個模為d×w的加w計數(shù)器,當(dāng)CntR計算值由(d-1)×w跳轉(zhuǎn)為0時,CntC則進(jìn)行模為w的加1計數(shù),兩計數(shù)器的初值都為0;(5)左移循環(huán)移位器對由步驟(4)讀出的每個p比特數(shù)據(jù)按照數(shù)據(jù)高位在左,低位在右進(jìn)行向左循環(huán)移位,左移循環(huán)移位后得到的p比特數(shù)據(jù)即為行列式分組交織器的輸出,向左循環(huán)移位的次數(shù)SL的計算方法如下SL=mod(floor(j/(d/gcd(d,p))),gcd(d,p))其中j表示從p個雙口RAM中讀出的p比特數(shù)據(jù)的序號,取值為從0到d×w-1上的整數(shù),gcd(d,p)則表示求d和p的最大公約數(shù),floor(j/(d/gcd(d,p)))表示j整除(d/gcd(d,p))得到的商,mod(floor(j/(d/gcd(d,p))),gcd(d,p))表示floor(j/(d/gcd(d,p)))整除gcd(d,p)得到的余數(shù)。
全文摘要
本發(fā)明是一種行列式分組交織器的并行實現(xiàn)方法,涉及通信技術(shù)領(lǐng)域。令行列式分組交織器交織深度為d,交織寬度為n,選取n的任意因數(shù)作為并行度p,n=w×p,w為正整數(shù)。先用順序交換器對輸入的p比特數(shù)據(jù)進(jìn)行順序交換,接著進(jìn)行右移循環(huán)移位,然后根據(jù)寫地址產(chǎn)生器產(chǎn)生的p個寫地址,將經(jīng)順序交換和右移循環(huán)移位得到的p比特數(shù)據(jù)分別寫入p個雙口RAM(隨機(jī)存取存儲器)中,寫完一幀數(shù)據(jù)后,根據(jù)讀地址產(chǎn)生器產(chǎn)生的讀地址從p個雙口RAM中并行讀出p比特數(shù)據(jù),并對讀出的p比特數(shù)據(jù)進(jìn)行左移循環(huán)移位以得到交織后的數(shù)據(jù)。本發(fā)明可靈活選取并行度p實現(xiàn)并行的行列式分組交織器,從而將數(shù)據(jù)處理速率提高p倍以滿足高速數(shù)據(jù)傳輸?shù)膽?yīng)用。
文檔編號H04L12/56GK101345604SQ200810117930
公開日2009年1月14日 申請日期2008年8月15日 優(yōu)先權(quán)日2008年8月15日
發(fā)明者匡鏡明, 楊德偉, 楠 武, 華 王, 范光榮 申請人:北京理工大學(xué)