專利名稱:一種適用于軟件無(wú)線電技術(shù)實(shí)現(xiàn)的迭代運(yùn)算結(jié)構(gòu)及方法
技術(shù)領(lǐng)域:
本發(fā)明涉及無(wú)線通信中的迭代運(yùn)算技術(shù),特別是指一種適用于軟件無(wú)線電技術(shù)的,對(duì)多個(gè)處理器并行工作時(shí)多步迭代之間具有多個(gè)公共因子的迭代運(yùn)算進(jìn)行處理的結(jié)構(gòu)及方法。
在許多公開發(fā)表的技術(shù)文獻(xiàn)中,都涉及到對(duì)智能天線中波束賦形算法的研究,其研究結(jié)論是功能越強(qiáng)算法越復(fù)雜。然而在移動(dòng)通信環(huán)境下,聯(lián)合檢測(cè)技術(shù)和波束賦形是必須實(shí)時(shí)完成的,且完成算法的時(shí)間只能以微秒計(jì)算。而受現(xiàn)代微電子技術(shù)水平的限制,在如此短的時(shí)間內(nèi),數(shù)字信號(hào)處理器(DSP)或?qū)S眯酒?ASIC)還不能實(shí)現(xiàn)過(guò)于復(fù)雜的實(shí)時(shí)處理。
另一方面,移動(dòng)通信的技術(shù)和標(biāo)準(zhǔn)還在不斷提出和更新,軟件無(wú)線電技術(shù)日益受到高度重視。如何利用數(shù)字信號(hào)處理器(DSP)或可編程邏輯陣列(FPGA)等其它可編程器件,在公共硬件平臺(tái)上解決各種不同制式的空間接口問(wèn)題已成為世界各國(guó)眾多通信公司的主要研究課題。而且,軟件無(wú)線電不僅可用于用戶終端,解決多模手持機(jī)的問(wèn)題,它還將使用于無(wú)線基站。特別是在第三代移動(dòng)通信技術(shù)和標(biāo)準(zhǔn)都還在不斷更新的情況下,只有使用軟件無(wú)線電技術(shù),才可能使產(chǎn)品跟上技術(shù)的發(fā)展。
在軟件無(wú)線電技術(shù)的實(shí)現(xiàn)技術(shù)中,已有研究表明可編程邏輯器件具有較好的性能,尤其是針對(duì)高并行性運(yùn)算比目前廣泛使用的DSP在性能上具有明顯的優(yōu)勢(shì),前者不但可以提高運(yùn)算速度,更重要的是,它可通過(guò)有效而靈活的設(shè)計(jì)方法提高系統(tǒng)硬件的整體工作效率,即盡可能使系統(tǒng)中所有邏輯資源處于有效工作狀態(tài),降低系統(tǒng)功率。這是目前一些專用芯片以至DSP都無(wú)法比擬的。然而,對(duì)于迭代性較高的運(yùn)算,人們一般認(rèn)為較難在FPGA中以較高的性能價(jià)格比來(lái)實(shí)現(xiàn)。以方程求解為例,比如已知向量e和矩陣A,由式(1)求解向量d,其中,A為m×m維非負(fù)定Hermite陣。
e=A·d(1)那么,用傳統(tǒng)方法求解時(shí)一般需要以下的三個(gè)迭代運(yùn)算步驟步驟一對(duì)矩陣A進(jìn)行公式(2)所示的分解運(yùn)算A=L*TL (2)其中,L為下三角陣,L*T是L的共軛轉(zhuǎn)置矩陣。
步驟二完成公式(3)所示的迭代運(yùn)算L*Ty=e (3)其中,y為待求解的中間變量。
步驟三完成公式(4)所示的迭代運(yùn)算Ld=y(tǒng) (4)在上述求解過(guò)程中,當(dāng)A矩陣的數(shù)據(jù)量很大時(shí),為了提高處理速度,往往需要多個(gè)處理器(Processor)并行工作來(lái)完成上述各步驟。對(duì)于步驟一的運(yùn)算來(lái)說(shuō),當(dāng)采用N個(gè)處理器并行完成時(shí),會(huì)得到如圖2所示的結(jié)果,即在最初的運(yùn)算時(shí)間T1內(nèi),所有的處理器Processor1,Processor2,…,ProcessorN均處于有效工作狀態(tài),而在T1<t<Tn時(shí)間段內(nèi),Processor1處于空閑狀態(tài),在T2<t<Tn時(shí)間段內(nèi),Processor2處于空閑狀態(tài),…,到Tn時(shí)間步驟一的運(yùn)算完成??梢钥闯?,處理器1壽命周期為T1,處理器2壽命周期為T2,處理器3壽命周期為T3,處理器4壽命周期為T4,…,處理器N-1壽命周期為T(n-1),處理器N壽命周期為Tn。當(dāng)采用多處理器進(jìn)行迭代運(yùn)算時(shí),如果各處理器的結(jié)構(gòu)具有如圖2所示的性能結(jié)構(gòu),則稱這種運(yùn)算特性為階梯狀運(yùn)算特性。如果以Tn作為整個(gè)迭代運(yùn)算的計(jì)算時(shí)間,則對(duì)于處理器1來(lái)說(shuō),其空閑時(shí)間為Tn-T1;對(duì)于處理器2來(lái)說(shuō),其空閑時(shí)間為Tn-T2;對(duì)于處理器3來(lái)說(shuō),其空閑時(shí)間為Tn-T3;對(duì)于處理器4來(lái)說(shuō),其空閑時(shí)間為Tn-T4;…;對(duì)于處理器N-1來(lái)說(shuō),其空閑時(shí)間為Tn-T(n-1)。由此,對(duì)于該迭代運(yùn)算單元而言,所浪費(fèi)掉的硬件資源為N×Tn-(T1+T2+T3+T4+…+T(n-1))的處理器時(shí)間。這意味著,采用越多的處理器來(lái)完成,在提高處理速度的同時(shí)可能會(huì)帶來(lái)更多的硬件資源浪費(fèi)。對(duì)于步驟二和步驟三的處理運(yùn)算也具備類似的問(wèn)題。
基于上述分析,人們?cè)趯?shí)現(xiàn)這類迭代運(yùn)算時(shí)多傾向于用DSP來(lái)實(shí)現(xiàn),由此,人們不得不將一個(gè)完整的運(yùn)算模塊劃分成多個(gè)運(yùn)算子模塊,即對(duì)性能要求較高的并行性運(yùn)算放在FPGA中實(shí)現(xiàn),而將迭代性較高的運(yùn)算放在DSP中實(shí)現(xiàn)。但是,由此帶來(lái)了一系列負(fù)效應(yīng),最突出的就是增加了模塊間數(shù)據(jù)通訊所帶來(lái)的開銷,降低了系統(tǒng)整體性能。由于不斷改進(jìn)的性能更高的智能天線和聯(lián)合檢測(cè)算法要求更高的基帶處理能力和速度,目前性能最高的DSP或ASIC還不能實(shí)現(xiàn)過(guò)于復(fù)雜的實(shí)時(shí)處理。因而有必要尋求性能更高的處理方法。
為達(dá)到上述目的,本發(fā)明的技術(shù)方案具體是這樣實(shí)現(xiàn)的一種適用于軟件無(wú)線電技術(shù)實(shí)現(xiàn)的迭代運(yùn)算結(jié)構(gòu),至少包括用于數(shù)據(jù)處理和計(jì)算的處理器模塊;用于控制協(xié)調(diào)各模塊工作的中央控制單元;用于存儲(chǔ)系統(tǒng)矩陣數(shù)據(jù)的系統(tǒng)矩陣存儲(chǔ)器;用于提取主公共因子的主公共因子發(fā)生器單元;用于產(chǎn)生從運(yùn)算因子的從公共因子發(fā)生器單元;存儲(chǔ)主運(yùn)算因子的主公共因子存儲(chǔ)器;存儲(chǔ)從運(yùn)算因子的從公共因子存儲(chǔ)器;中央控制單元控制主公共因子發(fā)生器單元、從公共因子發(fā)生器單元和處理器模塊;系統(tǒng)矩陣存儲(chǔ)器的存儲(chǔ)數(shù)據(jù)作為輸入送至從公共因子發(fā)生器單元,從公共因子發(fā)生器單元與從公共因子存儲(chǔ)器相連,從公共因子存儲(chǔ)器的輸出又與系統(tǒng)矩陣存儲(chǔ)器的輸入相連,主公共因子發(fā)生器單元與主公共因子存儲(chǔ)器相連,主公共因子存儲(chǔ)器的輸出又連至從公共因子發(fā)生器單元的輸入;關(guān)鍵在于該處理器模塊進(jìn)一步包括一個(gè)以上結(jié)構(gòu)相同的子處理模塊;每個(gè)子處理模塊主要由子處理器單元、存儲(chǔ)器及復(fù)用單元構(gòu)成,待處理數(shù)據(jù)經(jīng)存儲(chǔ)器、復(fù)用單元輸入至子處理器單元處理,子處理器單元處理后的數(shù)據(jù)作為下一步待處理數(shù)據(jù)輸入存儲(chǔ)器;中央控制單元通過(guò)總線與每個(gè)子處理模塊的復(fù)用單元相連;數(shù)據(jù)分別由系統(tǒng)矩陣存儲(chǔ)器、從公共因子發(fā)生器單元、從公共因子存儲(chǔ)器、主公共因子發(fā)生器單元以及主公共因子存儲(chǔ)器通過(guò)總線輸入至所有子處理模塊的子處理器單元處理。
所述子處理模塊的個(gè)數(shù)根據(jù)待處理數(shù)據(jù)量的大小、完成相應(yīng)運(yùn)算所規(guī)定的時(shí)間以及可利用的硬件資源數(shù)量而定。
所述的子處理器單元進(jìn)一步包括主運(yùn)算模塊和從運(yùn)算模塊,中央控制單元根據(jù)一定條件控制選擇主運(yùn)算模塊或從運(yùn)算模塊工作。該一定條件是指當(dāng)主運(yùn)算模塊或從運(yùn)算模塊進(jìn)行計(jì)算所需的數(shù)據(jù)已全部產(chǎn)生。
一種利用上述迭代運(yùn)算結(jié)構(gòu)實(shí)現(xiàn)迭代運(yùn)算的方法,其關(guān)鍵在于當(dāng)需要一個(gè)以上處理器作迭代運(yùn)算處理時(shí),具有互補(bǔ)階梯狀運(yùn)算特性的迭代運(yùn)算在一定條件下由至少兩個(gè)處理器在同一時(shí)間片內(nèi)完成。
所述的互補(bǔ)階梯狀運(yùn)算是指兩個(gè)迭代運(yùn)算步驟之間具有一個(gè)以上公共因子,且在以處理器為縱軸,時(shí)間片為橫軸所形成的計(jì)算架構(gòu)中,兩個(gè)迭代運(yùn)算每步子運(yùn)算的計(jì)算結(jié)果之間呈互補(bǔ)階梯形。所述的迭代運(yùn)算為一個(gè)以上不同的迭代運(yùn)算步驟;或?yàn)橥坏\(yùn)算步驟的不同層迭代。所述的一定條件是指后一步迭代運(yùn)算所需的所有數(shù)據(jù)已全部由前一步迭代運(yùn)算產(chǎn)生;或是當(dāng)前迭代運(yùn)算步驟處理下一個(gè)數(shù)據(jù)所需的所有數(shù)據(jù)已全部由自身產(chǎn)生。
因此,本發(fā)明所提供的適用于軟件無(wú)線電技術(shù)實(shí)現(xiàn)的迭代運(yùn)算結(jié)構(gòu)及方法,其具有以下的優(yōu)點(diǎn)和特點(diǎn)1)由于iP結(jié)構(gòu)和pP結(jié)構(gòu)包含多個(gè)復(fù)用模塊,可對(duì)可編程門陣列的邏輯資源進(jìn)行復(fù)用,以達(dá)到在任一時(shí)間片上,能最大限度地利用可使用的邏輯資源,從而在最優(yōu)利用資源的同時(shí),可以獲取最好的性能,即達(dá)到硬件使用極限。
2)iP結(jié)構(gòu)中各子處理器同時(shí)并行工作,使得iP結(jié)構(gòu)中各子處理器單元的壽命周期相同,從而使其能充分利用當(dāng)前的硬件資源,提高資源利用率;并以較高的性能完成系統(tǒng)所要求的迭代運(yùn)算,為用FPGA或其它類似器實(shí)現(xiàn)軟件無(wú)線電提供了解決方案。
3)由于本發(fā)明只是針對(duì)整個(gè)運(yùn)算結(jié)構(gòu)的迭代部分進(jìn)行了部分改進(jìn),而沒有改變整體結(jié)構(gòu),因此實(shí)現(xiàn)起來(lái)簡(jiǎn)單方便且便于實(shí)時(shí)計(jì)算。
4)由于本發(fā)明在完成迭代運(yùn)算時(shí),針對(duì)迭代運(yùn)算中所包含的多個(gè)迭代子運(yùn)算抽取了公共因子,主運(yùn)算模塊和從運(yùn)算模塊在邏輯上分別是針對(duì)不同的迭代子運(yùn)算,但硬件資源是復(fù)用在一起的,因此,采用這個(gè)方案占用資源少,計(jì)算效率高,且在完成迭代運(yùn)算時(shí)可實(shí)現(xiàn)比目前性能最高的DSP更高的性能。
5)本發(fā)明用于移動(dòng)通信系統(tǒng)中,將使其具有更高的容量和更好的性能,且大幅度提高基帶處理能力,更有利于復(fù)雜基帶算法的實(shí)現(xiàn)。
圖1為一個(gè)迭代運(yùn)算器的組成結(jié)構(gòu)示意圖,主要包括本發(fā)明的迭代運(yùn)算結(jié)構(gòu),即iP結(jié)構(gòu)10和pP結(jié)構(gòu)30。其中,iP結(jié)構(gòu)10是用于完成迭代運(yùn)算的模塊,pP結(jié)構(gòu)30是用于完成扁平運(yùn)算,即非迭代性運(yùn)算的模塊。如圖1所示,iP結(jié)構(gòu)10迭代運(yùn)算出來(lái)的結(jié)果,即信號(hào)S101,作為pP結(jié)構(gòu)30的輸入;同時(shí),信號(hào)S100為iP結(jié)構(gòu)內(nèi)中央處理器輸出的控制信號(hào),可用于控制啟動(dòng)pP結(jié)構(gòu)30中的模塊進(jìn)行相應(yīng)的信號(hào)處理和計(jì)算,進(jìn)而完成用戶所要求的運(yùn)算過(guò)程。
在無(wú)線通信系統(tǒng)中,每個(gè)用戶傳輸?shù)臄?shù)據(jù)符號(hào)序列d,一般是在信道估計(jì)的基礎(chǔ)上根據(jù)接收信號(hào) 恢復(fù)出來(lái)的。通常,信道估計(jì)是在信道估計(jì)模塊中進(jìn)行的,并在系統(tǒng)其它前序模塊作用后得出相應(yīng)的信道沖激響應(yīng),基于該信道沖激響應(yīng)可得出系統(tǒng)矩陣 ,本實(shí)施例正是利用該系統(tǒng)矩陣 ,由接收信號(hào) 恢復(fù)出每個(gè)用戶傳輸?shù)臄?shù)據(jù)符號(hào)序列d的運(yùn)算結(jié)構(gòu)。
利用已得到的接收信號(hào)和系統(tǒng)矩陣來(lái)恢復(fù)用戶傳輸數(shù)據(jù)符號(hào)序列,是采用下面方程實(shí)現(xiàn)的e(ka)=A‾(ka)·d‾+n‾(ka)ka=OKKa-1]]>其中, 就是特定天線所對(duì)應(yīng)的信道沖激響應(yīng)矩陣,d是發(fā)送端所發(fā)送的符號(hào)矢量, 是對(duì)應(yīng)特定天線ka的干擾矢量, 即是對(duì)應(yīng)特定天線ka所接收到的信號(hào)。本實(shí)施例的目的是要根據(jù)此方程求解出d,相應(yīng)地,可對(duì)所有Ka根天線求解。
為了簡(jiǎn)單說(shuō)明算法結(jié)構(gòu),可暫不考慮參數(shù) ,則上述方程式可簡(jiǎn)化為e=A·d(5)假定式(5)中A是非負(fù)定Hermite陣,如果用傳統(tǒng)方法求解同樣需要三步迭代運(yùn)算,而采用含有本發(fā)明iP結(jié)構(gòu)的迭代運(yùn)算結(jié)構(gòu)求解,就只需一步迭代運(yùn)算和兩步扁平運(yùn)算即可完成。本實(shí)施例采用一個(gè)復(fù)用的iP結(jié)構(gòu)和一個(gè)復(fù)用的pP結(jié)構(gòu),其具體的實(shí)現(xiàn)過(guò)程、原理及達(dá)到效果同時(shí)參見圖3、圖4和圖5所示詳述如下。
如圖3所示,采用本發(fā)明迭代運(yùn)算結(jié)構(gòu)求解方程的過(guò)程是這樣的圖3中的iP結(jié)構(gòu)10主要包括中央控制單元100、系統(tǒng)矩陣存儲(chǔ)器102、主公共因子發(fā)生器單元104、從公共因子發(fā)生器單元101,主公共因子存儲(chǔ)器103、從公共因子存儲(chǔ)器105和處理器模塊106。中央控制單元100控制主公共因子發(fā)生器單元104、從公共因子發(fā)生器單元101和處理器模塊106;系統(tǒng)矩陣存儲(chǔ)器102中的存儲(chǔ)數(shù)據(jù)作為輸入送至從公共因子發(fā)生器單元101;從公共因子發(fā)生器單元101與從公共因子存儲(chǔ)器105相連;從公共因子存儲(chǔ)器105的輸出又與系統(tǒng)矩陣存儲(chǔ)器102的輸入相連,因?yàn)橄到y(tǒng)矩陣存儲(chǔ)器102的存儲(chǔ)空間比從公共因子存儲(chǔ)器105大很多,因此,從公共因子存儲(chǔ)器105處理后的一些數(shù)據(jù)也會(huì)存儲(chǔ)于系統(tǒng)矩陣存儲(chǔ)器102中;主公共因子發(fā)生器單元104與主公共因子存儲(chǔ)器103相連;主公共因子存儲(chǔ)器103的輸出又連至從公共因子發(fā)生器單元101的輸入。
處理器模塊106進(jìn)一步包括U1、U2、…,Un等多個(gè)子處理模塊,各個(gè)子處理模塊又分別由子處理器單元P1、P2、…,Pn、存儲(chǔ)器M1、M2、…,Mn及復(fù)用單元X1、X2、…,Xn構(gòu)成,待處理數(shù)據(jù)經(jīng)存儲(chǔ)器M1、M2、…,Mn、復(fù)用單元X1、X2、…,Xn輸入至子處理器單元P1、P2、…,Pn處理,子處理器單元P1、P2、…,Pn處理后的數(shù)據(jù)又作為下一步待處理數(shù)據(jù)輸入存儲(chǔ)器M1、M2、…,Mn;中央控制單元100通過(guò)總線與每個(gè)子處理模塊的復(fù)用單元相連。對(duì)于每個(gè)子處理器單元P1、P2、…,Pn,輸入數(shù)據(jù)來(lái)源于以下的幾個(gè)部分從系統(tǒng)矩陣存儲(chǔ)器102來(lái)的待處理數(shù)據(jù);來(lái)自從公共因子存儲(chǔ)器105處理輸出的數(shù)據(jù);來(lái)自主公共因子存儲(chǔ)器103的存儲(chǔ)數(shù)據(jù);以及來(lái)自存儲(chǔ)器M1、M2、…,Mn的數(shù)據(jù),這些數(shù)據(jù)均通過(guò)總線傳輸。子處理模塊的具體個(gè)數(shù)是根據(jù)待處理數(shù)據(jù)量的大小、所要求的運(yùn)算性能以及可利用的硬件資源的數(shù)量而定。各個(gè)子處理模塊可以在中央控制單元100的調(diào)度和控制下并行工作,且各子處理模塊的結(jié)構(gòu)組成是相同的。
iP結(jié)構(gòu)中的迭代運(yùn)算至少包括以下三個(gè)步驟a)假定 為已知的系統(tǒng)矩陣,并按照預(yù)定的方式存儲(chǔ)于系統(tǒng)矩陣存儲(chǔ)器102中,在中央控制單元100的控制下,系統(tǒng)矩陣存儲(chǔ)器102根據(jù)系統(tǒng)矩陣 ,向從公共因子發(fā)生器單元101及處理器模塊106中的各子處理器單元P1、P2、…,Pn提供輸入?yún)?shù)aij;與此同時(shí),主公共因子存儲(chǔ)器103向從公共因子發(fā)生器單元101提供參數(shù)lij,該lij的初始值設(shè)為0,則從公共因子發(fā)生器單元101根據(jù)式(6)運(yùn)算得到從運(yùn)算因子qjqj=(ajj-Σk=1j-1ljkljk*)-1/2j=1,2...m---(6)]]>其中,aij是系統(tǒng)矩陣 中的元素, 是ljk的共軛復(fù)數(shù)。
b)在中央控制單元100的控制下,從運(yùn)算因子qj經(jīng)中間從公共因子存儲(chǔ)器105存儲(chǔ)后被提供給每個(gè)子處理器單元P1、P2、…,Pn,同時(shí),主公共因子存儲(chǔ)器103向每個(gè)子處理器單元P1、P2、…,Pn提供主運(yùn)算因子(pi1,pi2,…,pik),系統(tǒng)矩陣存儲(chǔ)器102根據(jù)系統(tǒng)矩陣 向子處理器單元P1、P2、…,Pn提供輸入?yún)?shù)aij,進(jìn)而計(jì)算中間結(jié)果lij和tij。
以子處理模塊200A為例,從運(yùn)算因子qj、主運(yùn)算因子pik以及系統(tǒng)矩陣元素aij輸入到子處理模塊200A后,存儲(chǔ)器M1中的迭代數(shù)據(jù)進(jìn)一步通過(guò)復(fù)用單元X1向子處理器單元P1內(nèi)部的主運(yùn)算模塊或從運(yùn)算模塊輸入?yún)?shù),進(jìn)而計(jì)算中間結(jié)果lij和tij。其中,子處理器單元P1中的主運(yùn)算模塊與從運(yùn)算模塊是復(fù)用模塊。
子處理器單元P1中的主運(yùn)算模塊是根據(jù)式(7),主要用于計(jì)算中間結(jié)果lijlij=qj(aij-Σk=1j-1pikljk*)i=1,2,...m;j=1,2,...m---(7)]]>式(7)中,aij是系統(tǒng)矩陣 中的元素,qj是從運(yùn)算因子,pik是主運(yùn)算因子, 是ljk的共軛復(fù)數(shù), 和ljk是iP結(jié)構(gòu)的中間運(yùn)算結(jié)果。
子處理器單元P1中的從運(yùn)算模塊是根據(jù)式(8),主要用于計(jì)算中間結(jié)果tijtij=-qjΣk=ji-1(piktkj)i=1,2,...m;j=1,2,...m---(8)]]>式(8)中,qj是從運(yùn)算因子,pik是主運(yùn)算因子,tij是iP運(yùn)算模塊的運(yùn)算結(jié)果,且滿足tjj=qj。
c)經(jīng)過(guò)上述運(yùn)算,由各子處理器計(jì)算得到的lij,和tij被發(fā)送并存儲(chǔ)于存儲(chǔ)器M1、M2、…,Mn中。同時(shí),主公共因子發(fā)生器單元104也將提取P1、P2、…,Pn的輸出結(jié)果,作為其輸入,用以產(chǎn)生下一次迭代運(yùn)算所需的主運(yùn)算因子pik。主公共因子存儲(chǔ)器103一方面為從公共因子發(fā)生器單元101提供輸入?yún)?shù)lij,用以產(chǎn)生下一次迭代運(yùn)算所需的從運(yùn)算因子qj;另一方面為處理器模塊106中的各子處理器單元P1、P2、…,Pn提供輸入?yún)?shù),即主運(yùn)算因子pik。
重復(fù)步驟a)至步驟c),直到系統(tǒng)矩陣存儲(chǔ)器102中的所有數(shù)據(jù)被處理完畢,并被存儲(chǔ)于M1、M2、…,Mn中。至此,在iP結(jié)構(gòu)中的運(yùn)算就全部結(jié)束,系統(tǒng)可進(jìn)一步啟動(dòng)pP結(jié)構(gòu)中下面的操作。當(dāng)然,系統(tǒng)也可以在iP結(jié)構(gòu)中所有操作尚未全部完成時(shí),就開始pP結(jié)構(gòu)的操作,如果采用此操作方式,則需要滿足一定的條件,該條件就是當(dāng)pP結(jié)構(gòu)所需要的參數(shù)已經(jīng)產(chǎn)生后即可啟動(dòng)pP結(jié)構(gòu)的運(yùn)算。
在中央控制單元100的控制下,主公共因子發(fā)生器單元104、主公共因子存儲(chǔ)器103、從公共因子發(fā)生器單元101、從公共因子存儲(chǔ)器105與處理器模塊106構(gòu)成流水運(yùn)算結(jié)構(gòu),即幾個(gè)部分的數(shù)據(jù)流形成一條流水線似的運(yùn)算結(jié)構(gòu)。在所有運(yùn)算時(shí)間段內(nèi),各硬件模塊協(xié)同工作,有效地利用了硬件資源,并滿足了系統(tǒng)對(duì)實(shí)時(shí)性的要求。
iP結(jié)構(gòu)中的運(yùn)算結(jié)束后,其最終的運(yùn)算結(jié)果作為輸入信號(hào)送至pP結(jié)構(gòu)中,對(duì)式(5)進(jìn)行最終求解。pP運(yùn)算結(jié)構(gòu)是一個(gè)扁平結(jié)構(gòu),所謂扁平結(jié)構(gòu)就是待求解向量中的所有元素都有均等的機(jī)會(huì)被求解,而沒有求解先后次序的優(yōu)先級(jí),也就是說(shuō),該結(jié)構(gòu)沒有迭代性。
pP運(yùn)算結(jié)構(gòu)主要包括本地控制器302,復(fù)用的處理模塊303,復(fù)用器305和306,共軛轉(zhuǎn)置模塊301和存儲(chǔ)器304;S100、S101、S102是三個(gè)輸入信號(hào)。本地控制器302同時(shí)控制復(fù)用的處理模塊303、復(fù)用器305和306、共軛轉(zhuǎn)置模塊301和存儲(chǔ)器304,處理模塊303的輸出通過(guò)存儲(chǔ)器304輸入至復(fù)用器306,iP結(jié)構(gòu)的輸出信號(hào)S101直接或通過(guò)共軛轉(zhuǎn)置模塊301輸入復(fù)用器305,復(fù)用器305的輸出連至復(fù)用的處理模塊303,iP結(jié)構(gòu)的控制信號(hào)S100直接連入本地控制器302。如圖4所示,S100是iP結(jié)構(gòu)內(nèi)中央控制器100輸出的控制信號(hào),用來(lái)啟動(dòng)pP結(jié)構(gòu)中的本地控制器302;S101為iP結(jié)構(gòu)的計(jì)算結(jié)果tij;S102是由系統(tǒng)輸入的已知接收信號(hào)數(shù)據(jù)e(k,a)。pP結(jié)構(gòu)所完成的功能操作主要包括以下兩個(gè)步驟第一步ri=Σk=1itikeki=1,2,...m---(9)]]>式(9)中,tik是由iP結(jié)構(gòu)得出的結(jié)果向量,即圖4中的信號(hào)S101;ek是接收數(shù)據(jù)向量e(k,a)中的元素,即圖4中的信號(hào)S102;通過(guò)這一步驟所得出的結(jié)果是ri,即圖4中的信號(hào)S105,它被存儲(chǔ)于存儲(chǔ)器304中,并進(jìn)一步被用于下一步運(yùn)算。
第二步di=Σk=1mtik*rki=1,2,...m---(10)]]>式(10)中, 是tik的共軛轉(zhuǎn)置,即圖4中的信號(hào)S106;di是發(fā)送端所發(fā)送的符號(hào)矢量d中的元素,即圖4中的信號(hào)S107;m是ri的長(zhǎng)度。
在本地控制器302的控制下,復(fù)用器305和306分別選擇信號(hào)S101、S106或S102、S105,并輸出S103、S104,S103和S104是處理模塊303的輸入?yún)?shù)。經(jīng)由上述兩個(gè)步驟的運(yùn)算,得到最終的輸出結(jié)果--信號(hào)S107,即本實(shí)施例所求的用戶傳輸數(shù)據(jù)符號(hào)序列d。
本實(shí)施例雖然只求解出對(duì)應(yīng)天線ka的d,同樣地,可按本發(fā)明的結(jié)構(gòu)與方法對(duì)所有Ka根天線求解。另外,在本實(shí)施例中,A矩陣被假定為非負(fù)定Hermite陣,在實(shí)際應(yīng)用中,只要是A矩陣的順序主子式不為零的情況下,均可利用類似的體系結(jié)構(gòu)來(lái)實(shí)現(xiàn),并達(dá)到較高的性能。
本發(fā)明所提出的迭代運(yùn)算結(jié)構(gòu)實(shí)現(xiàn)多處理器并行工作時(shí),如圖3所示的n個(gè)子處理器采用并行處理,從公式(7)和公式(8)所代表的迭代運(yùn)算可以看出,由于本迭代結(jié)構(gòu)針對(duì)兩個(gè)迭代運(yùn)算抽取了公共因子qj和pik,并復(fù)用了公共運(yùn)算模塊,即子處理器單元P1、P2、…,Pn中的主運(yùn)算模塊和從運(yùn)算模塊,便可達(dá)到如圖5所示的性能,即各子處理器的壽命周期基本相同。舉例而言,在上述利用方程系數(shù)矩陣求解方程的過(guò)程中,假定系數(shù)矩陣A為m×m維Hermite陣,采用m個(gè)處理器并行處理,在本實(shí)例中n=m。由于矩陣A為Hermite陣,因此,該矩陣能夠通過(guò)三角分解生成兩個(gè)共扼矩陣,且所生成矩陣的第i列(或行)元素與第i-1列元素具有特定的相關(guān)性,即處理第2列(或行)的元素必須在第1列(或行)元素全部處理完畢的基礎(chǔ)上,處理第3列(或行)的元素必須在第2列(或行)的元素全部處理完畢的基礎(chǔ)上,…,以此類推。同時(shí),處理公式(7)和(8)具有兩個(gè)公共因子。那么,在t1時(shí)刻,m個(gè)處理器并行工作根據(jù)公式(7)處理矩陣A第1列(或行)的m個(gè)元素,得到m個(gè)非零元素;到t2時(shí)刻,m-1個(gè)處理器并行工作根據(jù)公式(7)處理矩陣A第2列(或行)的元素,得到m-1個(gè)非零元素,而與此同時(shí),公式(8)的輸入數(shù)據(jù)已經(jīng)具備,此時(shí)處理器1根據(jù)公式(8)進(jìn)行處理;到t3時(shí)刻,m-2個(gè)處理器并行工作根據(jù)公式(7)處理矩陣A第3列(或行)的元素,得到m-2個(gè)非零元素,處理器1、2根據(jù)公式(8)對(duì)第3列的元素進(jìn)行處理;…;以此類推。當(dāng)m=5時(shí),可得如圖6所示的情況,其中,P1至P5代表5個(gè)處理器,T1至T5代表5個(gè)時(shí)刻,正斜線填充的部分為公式(7)所代表的迭代子運(yùn)算的計(jì)算結(jié)果,反斜線填充的部分為公式(8)所代表的迭代子運(yùn)算的計(jì)算結(jié)果,正斜線部分與反斜線部分具有互補(bǔ)的階梯狀運(yùn)算特性,也就是說(shuō)公式(7)、公式(8)所有迭代子運(yùn)算的計(jì)算結(jié)果分別呈階梯形,且兩個(gè)階梯形互補(bǔ),即兩個(gè)階梯形能夠互相填充形成一矩形。其中網(wǎng)格線填充部分的元素是在本發(fā)明所示的實(shí)施例中由從公共因子發(fā)生器單元101完成的,從而計(jì)算出公式(7)和(8)所需的運(yùn)算因子。如此,各子處理器的壽命周期都接近Tn,這意味著,硬件資源被充分利用,不僅可提高運(yùn)算效率,而且可極大地提高資源利用率。
上述實(shí)施例主要是應(yīng)用于無(wú)線通信系統(tǒng)軟件無(wú)線電算法的迭代算法實(shí)現(xiàn)中,本發(fā)明所涉及的運(yùn)算結(jié)構(gòu)及實(shí)現(xiàn)方法,為在單片大規(guī)??删幊踢壿嬈骷蠈?shí)現(xiàn)軟件無(wú)線電提供了高性能的解決方案,由于該方案充分利用了硬件邏輯資源,因而具有很高的性能價(jià)格比。同時(shí),本發(fā)明只要在輸入信號(hào)和組成結(jié)構(gòu)上略加改動(dòng),可適用于其它多種需要求解多元線性方程的場(chǎng)合,如圖像處理系統(tǒng)、模式識(shí)別系統(tǒng)等,只要在多元線性方程所對(duì)應(yīng)的系數(shù)矩陣的順序主子式不為零的情況下,或是某種運(yùn)算具有如圖2所示的階梯狀運(yùn)算特性,則多個(gè)互補(bǔ)的階梯狀運(yùn)算特性的運(yùn)算均可利用類似的體系結(jié)構(gòu)來(lái)實(shí)現(xiàn),并達(dá)到較高的性能,從而獲得更高的性價(jià)比。
本發(fā)明所涉及的硬件體系結(jié)構(gòu)完全可用于基于迭代運(yùn)算硬核和軟核的設(shè)計(jì)中,這種硬件結(jié)構(gòu)為高性能專用芯片的設(shè)計(jì)提供了解決方案。
總之,以上所述,僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范圍。
權(quán)利要求
1.一種適用于軟件無(wú)線電技術(shù)實(shí)現(xiàn)的迭代運(yùn)算結(jié)構(gòu),至少包括用于數(shù)據(jù)處理和計(jì)算的處理器模塊;用于控制協(xié)調(diào)各模塊工作的中央控制單元;用于存儲(chǔ)系統(tǒng)矩陣數(shù)據(jù)的系統(tǒng)矩陣存儲(chǔ)器;用于提取主公共因子的主公共因子發(fā)生器單元;用于產(chǎn)生從運(yùn)算因子的從公共因子發(fā)生器單元;存儲(chǔ)主運(yùn)算因子的主公共因子存儲(chǔ)器;存儲(chǔ)從運(yùn)算因子的從公共因子存儲(chǔ)器;中央控制單元控制主公共因子發(fā)生器單元、從公共因子發(fā)生器單元和處理器模塊;系統(tǒng)矩陣存儲(chǔ)器的存儲(chǔ)數(shù)據(jù)作為輸入送至從公共因子發(fā)生器單元,從公共因子發(fā)生器單元與從公共因子存儲(chǔ)器相連,從公共因子存儲(chǔ)器的輸出又與系統(tǒng)矩陣存儲(chǔ)器的輸入相連,主公共因子發(fā)生器單元與主公共因子存儲(chǔ)器相連,主公共因子存儲(chǔ)器的輸出又連至從公共因子發(fā)生器單元的輸入;其特征在于該處理器模塊進(jìn)一步包括一個(gè)以上結(jié)構(gòu)相同的子處理模塊;每個(gè)子處理模塊主要由子處理器單元、存儲(chǔ)器及復(fù)用單元構(gòu)成,待處理數(shù)據(jù)經(jīng)存儲(chǔ)器、復(fù)用單元輸入至子處理器單元處理,子處理器單元處理后的數(shù)據(jù)作為下一步待處理數(shù)據(jù)輸入存儲(chǔ)器;中央控制單元通過(guò)總線與每個(gè)子處理模塊的復(fù)用單元相連;數(shù)據(jù)分別由系統(tǒng)矩陣存儲(chǔ)器、從公共因子發(fā)生器單元、從公共因子存儲(chǔ)器、主公共因子發(fā)生器單元以及主公共因子存儲(chǔ)器通過(guò)總線輸入至所有子處理模塊的子處理器單元處理。
2.根據(jù)權(quán)利要求1所述的結(jié)構(gòu),其特征在于所述子處理模塊的個(gè)數(shù)根據(jù)待處理數(shù)據(jù)量的大小、完成相應(yīng)運(yùn)算所規(guī)定的時(shí)間以及可利用的硬件資源數(shù)量而定。
3.根據(jù)權(quán)利要求1所述的結(jié)構(gòu),其特征在于所述的子處理器單元進(jìn)一步包括主運(yùn)算模塊和從運(yùn)算模塊,中央控制單元根據(jù)一定條件控制選擇主運(yùn)算模塊或從運(yùn)算模塊工作。
4.根據(jù)權(quán)利要求3所述的結(jié)構(gòu),其特征在于所述的一定條件是指當(dāng)主運(yùn)算模塊或從運(yùn)算模塊進(jìn)行計(jì)算所需的數(shù)據(jù)已全部產(chǎn)生。
5.一種利用上述迭代運(yùn)算結(jié)構(gòu)實(shí)現(xiàn)迭代運(yùn)算的方法,其特征在于當(dāng)需要一個(gè)以上處理器作迭代運(yùn)算處理時(shí),具有互補(bǔ)階梯狀運(yùn)算特性的迭代運(yùn)算在一定條件下由至少兩個(gè)處理器在同一時(shí)間片內(nèi)完成。
6.根據(jù)權(quán)利要求5所述的結(jié)構(gòu),其特征在于所述的迭代運(yùn)算為一個(gè)以上不同的迭代運(yùn)算步驟;或?yàn)橥坏\(yùn)算步驟的不同層迭代。
7.根據(jù)權(quán)利要求5或6所述的結(jié)構(gòu),其特征在于所述的一定條件是指后一步迭代運(yùn)算所需的所有數(shù)據(jù)已全部由前一步迭代運(yùn)算產(chǎn)生;或是當(dāng)前迭代運(yùn)算步驟處理下一個(gè)數(shù)據(jù)所需的所有數(shù)據(jù)已全部由自身產(chǎn)生。
8.根據(jù)權(quán)利要求5所述的結(jié)構(gòu),其特征在于所述的互補(bǔ)階梯狀運(yùn)算是指兩個(gè)迭代運(yùn)算步驟之間具有一個(gè)以上公共因子,且在以處理器為縱軸,時(shí)間片為橫軸所形成的計(jì)算架構(gòu)中,兩個(gè)迭代運(yùn)算每步子運(yùn)算的計(jì)算結(jié)果之間呈互補(bǔ)階梯形。
全文摘要
本發(fā)明公開了一種適用于軟件無(wú)線電技術(shù)實(shí)現(xiàn)的迭代運(yùn)算結(jié)構(gòu),至少包括處理器模塊、中央控制單元、系統(tǒng)矩陣存儲(chǔ)器、主/從公共因子發(fā)生器單元、主/從公共因子存儲(chǔ)器;關(guān)鍵是該處理器模塊還包括一個(gè)以上結(jié)構(gòu)相同的子處理模塊,各子處理模塊通過(guò)多根總線分別與上述各單元相連;每個(gè)子處理模塊包括子處理器單元、存儲(chǔ)器及復(fù)用單元,待處理數(shù)據(jù)經(jīng)存儲(chǔ)器、復(fù)用單元輸入至子處理器單元處理,子處理器單元處理后的數(shù)據(jù)又作為下一步待處理數(shù)據(jù)輸入存儲(chǔ)器。本發(fā)明還同時(shí)公開了一種實(shí)現(xiàn)迭代運(yùn)算的方法,采用上述方法和結(jié)構(gòu),能充分利用硬件資源,提高計(jì)算效率,減少硬件資源占用,加快運(yùn)算處理速度,提高基帶處理能力,且實(shí)現(xiàn)簡(jiǎn)單方便,具有良好的性能。
文檔編號(hào)H04B1/707GK1437417SQ0210391
公開日2003年8月20日 申請(qǐng)日期2002年2月7日 優(yōu)先權(quán)日2002年2月7日
發(fā)明者汪東艷 申請(qǐng)人:大唐移動(dòng)通信設(shè)備有限公司