專利名稱::一種迭代算法的處理方法及裝置的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及數(shù)字通信領(lǐng)域,尤其涉及一種迭代算法的處理方法及裝置。
背景技術(shù):
:在數(shù)字信號(hào)處理中,常常需要對(duì)同一個(gè)或者幾個(gè)級(jí)聯(lián)在一起的運(yùn)算模塊進(jìn)行多次相同的運(yùn)算,并將本次迭代的輸出作為下次迭代的輸入(如基于多次迭代的削波算法),傳統(tǒng)的數(shù)字信號(hào)處理器(DigitalSignalProcessor,DSP)可以實(shí)現(xiàn)這類迭代算法。然而,隨著算法對(duì)于處理速度和帶寬要求的急劇增加,特別是需要進(jìn)行高速、大規(guī)模的快速傅里葉變換(FastFourierTransform,FFT)及其逆變換(InverseFastFourierTransform,IFFT)運(yùn)算的算法,對(duì)系統(tǒng)性能要求很高,通用DSP處理器難以實(shí)現(xiàn)這一要求,需要使用諸如現(xiàn)場(chǎng)可編程門陣列(FieldProgrammableGateArray,FPGA)或者專用集成電^各(Application-SpecificIntegratedCircuit,ASIC)這種全硬件并行處理的方式來(lái)進(jìn)行。在現(xiàn)有技術(shù)中,F(xiàn)PGA或ASIC器件主要是依靠有限狀態(tài)機(jī)來(lái)對(duì)迭代算法進(jìn)行控制,由主狀態(tài)機(jī)控制迭代循環(huán)的次數(shù),子狀態(tài)機(jī)控制一次迭代中不同算法模塊之間的切換順序和連接關(guān)系。當(dāng)增加或減少算法模塊時(shí),需要修改子狀態(tài)機(jī)中狀態(tài)的個(gè)數(shù),并且修改狀態(tài)之間的轉(zhuǎn)換關(guān)系;而當(dāng)增加或減少迭代次數(shù)時(shí),則需要修改主狀態(tài)機(jī)來(lái)達(dá)到要求。發(fā)明人在實(shí)施本發(fā)明的過(guò)程中,發(fā)現(xiàn)現(xiàn)有的實(shí)現(xiàn)迭代算法的方法具有如下缺點(diǎn)基于有限狀態(tài)機(jī)的控制模式,迭代邏輯架構(gòu)嚴(yán)重依賴于迭代算法的具體模塊結(jié)構(gòu)及迭代的次數(shù),缺乏通用性;并且,迭代算法模塊或迭代次數(shù)的增減,容易出現(xiàn)狀態(tài)機(jī)的狀態(tài)增減所帶來(lái)的潛在控制錯(cuò)誤
發(fā)明內(nèi)容本發(fā)明實(shí)施例提供一種迭代算法的處理方法及裝置,基于預(yù)存命令字的模式進(jìn)行迭代算法流程控制,使迭代邏輯架構(gòu)具有通用性。本發(fā)明實(shí)施例提供了一種迭代算法的處理方法,包括將迭代算法的各個(gè)運(yùn)算單元以串聯(lián)方式級(jí)聯(lián)成運(yùn)算鏈;根據(jù)預(yù)置的迭代算法流程控制命令字,從所述運(yùn)算鏈中選擇執(zhí)行運(yùn)算的運(yùn)算單元,并確定運(yùn)算過(guò)程中的數(shù)據(jù)流向;基于所確定的運(yùn)算單元及數(shù)據(jù)流向,對(duì)需要進(jìn)行迭代運(yùn)算的數(shù)據(jù)作運(yùn)算處理。相應(yīng)地,本發(fā)明實(shí)施例還提供了一種迭代算法的處理裝置,包括控制模塊及迭代環(huán)^^莫塊;所述控制模塊,用于根據(jù)預(yù)置的迭代算法流程控制命令字,從所述迭代環(huán)模塊的運(yùn)算鏈中選擇執(zhí)行運(yùn)算的運(yùn)算單元,并確定運(yùn)算過(guò)程中的數(shù)據(jù)流向;所述迭代環(huán)模塊的運(yùn)算鏈由迭代算法的各個(gè)運(yùn)算單元以串聯(lián)方式級(jí)聯(lián)而成;所述迭代環(huán)模塊,用于根據(jù)所述控制模塊所確定的運(yùn)算鏈中執(zhí)行運(yùn)算的運(yùn)算單元及數(shù)據(jù)流向,對(duì)需要進(jìn)行迭代運(yùn)算的數(shù)據(jù)作運(yùn)算處理。實(shí)施本發(fā)明實(shí)施例,具有如下有益效果本發(fā)明實(shí)施例提供的迭代算法的處理方法及裝置,才艮據(jù)迭代算法的運(yùn)算次序以及迭代次數(shù)配置命令字,由預(yù)存的命令字確定迭代運(yùn)算過(guò)程中的執(zhí)行運(yùn)算的運(yùn)算單元以及數(shù)據(jù)流向;基于預(yù)存命令字的迭代算法流程控制模式,使得迭代邏輯架構(gòu)與迭代算法模塊及迭代次數(shù)無(wú)關(guān),具有通用性;在簡(jiǎn)化設(shè)計(jì)的同時(shí)也降低了模塊之間的耦合度,使得模塊的獨(dú)立開發(fā)和驗(yàn)證更加容易。為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1是本發(fā)明實(shí)施例提供的迭代算法的處理裝置的結(jié)構(gòu)示意圖2是本發(fā)明實(shí)施例提供的數(shù)據(jù)流切換模塊的結(jié)構(gòu)示意圖3是本發(fā)明實(shí)施例提供的運(yùn)算單元的結(jié)構(gòu)示意圖;圖4是本發(fā)明實(shí)施例提供的運(yùn)算單元的信號(hào)時(shí)序圖;圖5是本發(fā)明實(shí)施例提供的運(yùn)算模塊的等效電路示意圖;圖6是本發(fā)明實(shí)施例提供的基于多次迭代的削波算法的處理裝置的結(jié)構(gòu)示意圖7是本發(fā)明實(shí)施例提供的迭代算法的處理方法的流程示意圖。具體實(shí)施例方式下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。本發(fā)明實(shí)施例提供的迭代算法的處理裝置,基于預(yù)存命令字的模式進(jìn)行迭代算法流程控制,使得迭代邏輯架構(gòu)與迭代算法模塊及迭代次數(shù)無(wú)關(guān),提供了一個(gè)通用的邏輯架構(gòu)以解決大部分類似迭代算法在FPGA或ASIC器件中的實(shí)現(xiàn)。所述迭代算法的處理裝置包括控制模塊及迭代環(huán)才莫塊,其中控制模塊用于根據(jù)預(yù)置的迭代算法流程控制命令,從所述迭代環(huán)模塊的運(yùn)算鏈中選擇執(zhí)行運(yùn)算的運(yùn)算單元,并確定運(yùn)算過(guò)程中的數(shù)據(jù)流向;所述迭代環(huán)模塊的運(yùn)算鏈由迭代算法的各個(gè)運(yùn)算單元以串聯(lián)方式級(jí)聯(lián)而成;迭代環(huán)模塊基于所述控制模塊所確定的運(yùn)算鏈中執(zhí)行運(yùn)算的運(yùn)算單元及數(shù)據(jù)流向,對(duì)需要進(jìn)行迭代運(yùn)算的數(shù)據(jù)作運(yùn)算處理。進(jìn)一步的,所述迭代環(huán)模塊具體包括數(shù)據(jù)流切換模塊及運(yùn)算模塊。參見(jiàn)圖1,是迭代算法的處理裝置的一個(gè)實(shí)施例的結(jié)構(gòu)示意圖,包括控制模塊1、數(shù)據(jù)流切換模塊2及運(yùn)算模塊3。具體的,控制模塊1用于根據(jù)預(yù)置的迭代算法流程控制命令字,確定所述運(yùn)算模塊3中的運(yùn)算鏈的工作模式以及所述數(shù)據(jù)流切換模塊2的數(shù)據(jù)流向;所述控制模塊1進(jìn)一步包括命令字存儲(chǔ)單元及控制執(zhí)行單元,其中所述命令字存儲(chǔ)單元用于保存迭代算法流程控制命令字,包括基于迭代算法執(zhí)行運(yùn)算的順序以及迭代次數(shù)配置的多組命令字,每一組命令字控制執(zhí)行迭代算法流程中的一部分的運(yùn)算處理。在本發(fā)明實(shí)施中,若對(duì)數(shù)據(jù)流切換模塊2進(jìn)行數(shù)據(jù)流向控制選擇需要m個(gè)控制位,運(yùn)算模塊具n個(gè)運(yùn)算單元,且每個(gè)運(yùn)算單元存在k個(gè)控制位,則本發(fā)明實(shí)施例的命令字的位寬為(m+nk)個(gè)比特位;而完成整個(gè)迭代算法流程控制,所需要的命令字的數(shù)目由具體的迭代算法模塊及迭代次數(shù)決定。所述控制執(zhí)行單元用于在迭代運(yùn)算過(guò)程中,通過(guò)讀取所述命令字存儲(chǔ)單元中的命令字來(lái)執(zhí)行迭代算法流程控制;完成一組命令字的控制任務(wù)后,由更新脈沖控制切換到下一組命令字,所述的多組命令字依次地執(zhí)行控制,以完成整個(gè)迭代算法處理流程。數(shù)據(jù)流切換模塊2用于根據(jù)所述控制模塊1所確定的數(shù)據(jù)流向,對(duì)數(shù)據(jù)流進(jìn)行切換,包括將需要進(jìn)行迭代運(yùn)算的數(shù)據(jù)傳送至所述運(yùn)算模塊3中進(jìn)行運(yùn)算處理;或者,將所述運(yùn)算模塊3輸出的數(shù)據(jù)再次傳送至所述運(yùn)算模塊3中進(jìn)行運(yùn)算處理;或者,將所述運(yùn)算模塊3輸出的數(shù)據(jù)作為最終的迭代運(yùn)算結(jié)果輸出。具體的,如圖2所示,是本發(fā)明實(shí)施例提供的數(shù)據(jù)流切換模塊2的結(jié)構(gòu)示意圖。如圖2所示的各數(shù)據(jù)通道標(biāo)志解釋如下數(shù)據(jù)輸入通道EX—DIN:用于接收需要進(jìn)行迭代運(yùn)算的數(shù)據(jù);循環(huán)數(shù)據(jù)輸入通道LOOP—DIN:用于接收運(yùn)算模塊輸出的數(shù)據(jù);循環(huán)數(shù)據(jù)輸出通道LOOP—DOUT:用于將數(shù)據(jù)傳送至運(yùn)算模塊中進(jìn)行循環(huán)運(yùn)算處理;數(shù)據(jù)輸出通道EX一DOUT:用于輸出最終的迭代運(yùn)算結(jié)果;命令字輸入通道Comd:用于接收控制模塊下發(fā)的數(shù)據(jù)流控制命令字。數(shù)據(jù)流切換模塊2根據(jù)Comd通道所接收到數(shù)據(jù)流切換命令字進(jìn)行數(shù)據(jù)流切才灸,例如當(dāng)數(shù)據(jù)流切換命令字為"01"時(shí),選擇器選擇EX—DIN通道的數(shù)據(jù)傳送至LOOP_DOUT通道,將需要進(jìn)行迭代運(yùn)算的數(shù)據(jù)傳送至運(yùn)算模塊進(jìn)行運(yùn)算處理;當(dāng)數(shù)據(jù)流切換命令字為"10"時(shí),選擇器選擇LOOP—DIN通道的數(shù)據(jù)傳送至LOOP—DOUT通道,將本次運(yùn)算^^塊的輸出數(shù)據(jù)作為下次迭代的輸入,再次傳送至所述運(yùn)算模塊進(jìn)行運(yùn)算處理;當(dāng)數(shù)據(jù)流切換命令字為"11"時(shí),將LOOP—DIN通道的數(shù)據(jù)傳送至EX—DOUT通道,通過(guò)EX—DOUT通道輸出最終的迭代運(yùn)算結(jié)果。其中,對(duì)于數(shù)據(jù)流切換命令為"00"的情況,由于"00"不執(zhí)行任何的控制任務(wù),因此,本實(shí)施例在配置命令字時(shí),"00"不作為數(shù)據(jù)流切換命令字出現(xiàn)。進(jìn)一步的,如圖1所示的運(yùn)算模塊3包括至少一個(gè)運(yùn)算單元,每個(gè)運(yùn)算單元執(zhí)行迭代算法中的一部分的運(yùn)算處理。各個(gè)運(yùn)算單元以串聯(lián)方式級(jí)聯(lián)成運(yùn)算鏈,在控制模塊1下發(fā)的命令字的控制下,運(yùn)算鏈上的各個(gè)運(yùn)算單元被置為運(yùn)算狀態(tài)或者旁路狀態(tài)。具體的,如圖3所示,是本發(fā)明實(shí)施例提供的運(yùn)算單元的結(jié)構(gòu)示意圖,圖3中所示的信號(hào)標(biāo)志解釋如下L—IN一SYNC:輸入數(shù)據(jù)開始標(biāo)志;L—OUT—SYNC:輸出數(shù)據(jù)開始標(biāo)志;L_IN—VALID:輸入數(shù)據(jù)有效標(biāo)志;L—OUT—VALID:輸出數(shù)據(jù)有效標(biāo)志;L—DIN:輸入數(shù)據(jù);L一DOUT:輸出數(shù)據(jù);Comd:控制命令字信號(hào)。具體的,如圖4所示,是本發(fā)明實(shí)施例提供的運(yùn)算單元的信號(hào)時(shí)序圖。運(yùn)算單元在接收到L—IN—SYNC及L—IN—VALID有效信號(hào)后,開始接收輸入數(shù)據(jù);在數(shù)據(jù)運(yùn)算處理完畢后產(chǎn)生L—OUT—SYNC及L—OUT—VALID有效信號(hào),并輸出運(yùn)算結(jié)果。進(jìn)一步的,所述運(yùn)算單元的狀態(tài)由控制模塊1下發(fā)的控制命令字Comd確定,當(dāng)命令字Comd有效時(shí)(假設(shè)Comd-'1,),運(yùn)算執(zhí)行單元對(duì)輸入數(shù)據(jù)進(jìn)行運(yùn)算處理,選擇器選擇運(yùn)算執(zhí)行單元的運(yùn)算結(jié)果進(jìn)行數(shù)據(jù)輸出;當(dāng)命令字Comd無(wú)效時(shí)(假設(shè)Comd='0,),則運(yùn)算執(zhí)行單元被旁路,不對(duì)輸入數(shù)據(jù)進(jìn)行運(yùn)算處理,選擇器選擇輸入數(shù)據(jù)直接輸出。下面僅以運(yùn)算模塊中的運(yùn)算鏈由三個(gè)運(yùn)算單元串聯(lián)組成為例,對(duì)運(yùn)算模塊的等效電路進(jìn)行說(shuō)明。如圖5所示,運(yùn)算模塊的運(yùn)算鏈由運(yùn)算單元IP1、IP2、IP3以串聯(lián)方式級(jí)聯(lián)而成,運(yùn)算鏈上的各個(gè)運(yùn)算單元在命令字的控制下,處于運(yùn)算狀態(tài)或旁路狀態(tài)。本實(shí)施例假設(shè)命令字Comd為'1,時(shí)有效,運(yùn)算單元處于運(yùn)算狀態(tài);假設(shè)命令字Comd為'0,時(shí)無(wú)效,運(yùn)算單元處于旁路狀態(tài)。如圖5所示當(dāng)Comd-《00U時(shí),運(yùn)算鏈上的運(yùn)算單元IP3及IP2處于旁3各狀態(tài),運(yùn)算單元IP1處于運(yùn)算狀態(tài),則運(yùn)算模塊等效于運(yùn)算單元IPl執(zhí)行運(yùn)算處理的電路;當(dāng)0)111(1={110},運(yùn)算鏈上的運(yùn)算單元IP3及IP2處于運(yùn)算狀態(tài),運(yùn)算單元IP1處于旁路狀態(tài),則運(yùn)算模塊等效于運(yùn)算單元IP2及IP3模塊串聯(lián)起來(lái)執(zhí)行運(yùn)算處理的電路。本發(fā)明實(shí)施例提供的迭代算法的處理裝置,根據(jù)迭代算法的運(yùn)算次序以及迭代次數(shù)配置命令字,由預(yù)存的命令字確定迭代運(yùn)算過(guò)程中的執(zhí)行運(yùn)算的運(yùn)算單元以及數(shù)據(jù)流向;基于預(yù)存命令字的迭代算法流程控制模式,使得迭代邏輯架構(gòu)與迭代算法模塊及迭代次數(shù)無(wú)關(guān),具有通用性;在簡(jiǎn)化設(shè)計(jì)的同時(shí)也降低了模塊之間的耦合度,使得模塊的獨(dú)立開發(fā)和驗(yàn)證更加容易。下面以基于多次迭代的削波算法為例,對(duì)本發(fā)明實(shí)施例提供的迭代算法的處理裝置進(jìn)行說(shuō)明。TR削波是具有典型迭代結(jié)構(gòu)的算法,其算法原理如下頻域信號(hào)先經(jīng)過(guò)相位旋轉(zhuǎn)單元(如復(fù)數(shù)乘法器)進(jìn)行相位旋轉(zhuǎn),然后通過(guò)快速傅里葉逆變換(InverseFastFourierTransform,IFFT)運(yùn)算獲得時(shí)域信號(hào),時(shí)域信號(hào)進(jìn)入噪聲^:取單元,將時(shí)域波形與門限值進(jìn)行比較后得到削波噪聲信號(hào),將削波噪聲信號(hào)進(jìn)行快速傅里葉變換(FastFourierTransform,FFT)后獲得其頻譜分布,進(jìn)行幅度調(diào)整產(chǎn)生對(duì)消信號(hào),再將原始的頻域數(shù)據(jù)和對(duì)消信號(hào)進(jìn)行對(duì)消運(yùn)算。需要進(jìn)行削波算法處理的數(shù)據(jù)依次經(jīng)過(guò)相位旋轉(zhuǎn)單元、快速傅里葉逆變換IFFT、噪聲提取單元、快速傅里葉變換FFT單元和噪聲對(duì)消單元運(yùn)算處理后,所得到的運(yùn)算結(jié)果再次反饋到上述削波運(yùn)算鏈進(jìn)行運(yùn)算處理,上述運(yùn)算經(jīng)過(guò)N次迭代后構(gòu)成完整的削波運(yùn)算(通常N=6或者8)。參見(jiàn)圖6,是本發(fā)明實(shí)施例提供的基于多次迭代的削波算法的處理裝置的示意圖,包括控制模塊50、數(shù)據(jù)流切換模塊51以及運(yùn)算模塊52,其中數(shù)據(jù)流切換模塊51在控制模塊50的命令字的控制下,從EX—DIN通道接收需要進(jìn)行削波運(yùn)算的數(shù)據(jù),通過(guò)LOOP—DOUT和LOOP—DIN在削波迭代環(huán)中進(jìn)行循環(huán)運(yùn)算,并將最終的削波運(yùn)算結(jié)果通過(guò)EX—DOUT通道輸出;運(yùn)算模塊52包括四個(gè)運(yùn)算單元,每個(gè)運(yùn)算單元進(jìn)行削波算法中的一類運(yùn)算處理,各個(gè)運(yùn)算單元以串聯(lián)方式級(jí)聯(lián)形成運(yùn)算鏈,在控制模塊50的命令字的控制下,運(yùn)算鏈上的各個(gè)運(yùn)算單元被置為運(yùn)算狀態(tài)或旁路狀態(tài)。所述的運(yùn)算單元相位旋轉(zhuǎn)單元IPO,用于進(jìn)行相位旋轉(zhuǎn);在本發(fā)明實(shí)施例中,相位旋轉(zhuǎn)單元可以采用復(fù)數(shù)乘法器,經(jīng)過(guò)相位旋轉(zhuǎn)后可改變?cè)驾斎霐?shù)據(jù)的相位信息;噪聲提取單元IP1,用于將時(shí)域波形與門限值進(jìn)行比較得到削波噪聲信號(hào);噪聲對(duì)消單元IP2,用于進(jìn)行對(duì)消運(yùn)算處理;FFT/IFFT單元IP3,用于進(jìn)行快速傅里葉變換FFT或快速傅里葉逆變換IFFT運(yùn)算;其中,F(xiàn)FT與IFFT的互變性原理,如下若定義FFT和IFFT變換對(duì)為如下關(guān)系<formula>formulaseeoriginaldocumentpage10</formula>則IFFT可以使用下面的結(jié)構(gòu)進(jìn)行計(jì)算<formula>formulaseeoriginaldocumentpage10</formula>計(jì)算交換實(shí)部和虛部后x'(n)的FFT:<table>tableseeoriginaldocumentpage11</column></row><table>再次交換上述的FFT實(shí)現(xiàn)結(jié)構(gòu)中輸出的實(shí)部和虛部,并將變量n替換為k,得到<table>tableseeoriginaldocumentpage11</column></row><table>綜上所述,有FFT^IFFT。在本實(shí)施例中,將FFT運(yùn)算及IFFT運(yùn)算合并在同一個(gè)運(yùn)算單元中實(shí)現(xiàn),當(dāng)輸入數(shù)據(jù)的I/Q對(duì)應(yīng)FFT本身的real/imag輸入端口,并且FFT的real/imag輸出端口對(duì)應(yīng)輸出數(shù)據(jù)的I/Q,那么就是正向FFT運(yùn)算。當(dāng)輸入數(shù)據(jù)的Q/I對(duì)應(yīng)FFT本身的real/imag輸入端口,并且FFT的real/imag輸出端口對(duì)應(yīng)輸出數(shù)據(jù)的Q/I,那么就是逆向FFT運(yùn)算。因此,通過(guò)進(jìn)行輸入輸出數(shù)據(jù)的I/Q交換,即可實(shí)現(xiàn)FFT或者IFFT操作。進(jìn)一步的,控制模塊50用于對(duì)所述數(shù)據(jù)流切換模塊51及運(yùn)算模塊52進(jìn)行控制,具體包括命令字存儲(chǔ)單元501和地址計(jì)數(shù)器502。其中,命令字存儲(chǔ)單元501存儲(chǔ)有多組命令字Comd,在所述數(shù)據(jù)流切換模塊51所產(chǎn)生的命令堆棧的更新脈沖的控制下,所述的多組命令字Comd依次地執(zhí)行削波算法流程控制;地址計(jì)數(shù)器502每接收到所述數(shù)據(jù)流切換模塊51發(fā)出的更新脈沖后,地址計(jì)數(shù)器加一,切換到下一組命令字。其中,數(shù)據(jù)流切換^^莫塊51通過(guò)LOOP—DOUT通道輸出數(shù)據(jù)時(shí),同時(shí)產(chǎn)生命令堆棧的更新脈沖,觸發(fā)控制模塊50切換至下一組命令字。具體的,削波算法流程控制命令字Comd的一個(gè)實(shí)施例的格式如下數(shù)據(jù)流向,』控制字段i^-^-^運(yùn)算單元狀態(tài)控制字段Comdb6b5b4b3b2blb0FFT/IFFT控制位運(yùn)算單元IP3狀態(tài)位.運(yùn)算單元IP2狀態(tài)位.運(yùn)算單元IPl狀態(tài)位-運(yùn)算單元IPO狀態(tài)位-命令字Comd的低5位(b4b0)為運(yùn)算單元狀態(tài)控制字段,用于控制運(yùn)算模塊52中的各個(gè)運(yùn)算單元的狀態(tài),如下b4為FFT/IFFT控制位,用于控制FFT/IFFT單元輸入輸出數(shù)據(jù)的I/Q交換,實(shí)現(xiàn)FFT或者IFFT操作。其中,當(dāng)b4為'1,時(shí),F(xiàn)FT/IFFT單元IP3實(shí)現(xiàn)FFT操作;當(dāng)b4為'0,時(shí),F(xiàn)FT/IFFT單元IP3實(shí)現(xiàn)IFFT操作;b3為FFT/IFFT單元IP3狀態(tài)位;b2為噪聲對(duì)消單元IP2狀態(tài)位;bl為噪聲提取單元IP1狀態(tài)位;b0為相位旋轉(zhuǎn)單元IP0狀態(tài)位。其中,若Comd的b3b0中的某一位為'1,,則指示該位所對(duì)應(yīng)的運(yùn)算單元處于運(yùn)算狀態(tài);若為'0,,則指示該位所對(duì)應(yīng)的運(yùn)算單元處于旁路狀態(tài);命令字Comd的b6、b5為數(shù)據(jù)流向控制字段,用于控制數(shù)據(jù)流切換模塊51進(jìn)行數(shù)據(jù)流切換,如下當(dāng)b6、b5為"01"時(shí),接收EX—DIN通道輸入的需要進(jìn)行削波運(yùn)算的數(shù)據(jù),通過(guò)LOOP—DIN通道傳送至運(yùn)算模塊52中作運(yùn)算處理;當(dāng)b6、b5為"10"時(shí),將LOOP_DIN通道的數(shù)據(jù)傳送至LOOP_DOUT通道,即將本次迭代的輸出作為下次迭代的輸入,進(jìn)行循環(huán)運(yùn)算;當(dāng)b6、b5為"11"時(shí),將LOOP—DIN通道的數(shù)據(jù)傳送至EX—DOUT通道,即將最終的迭代運(yùn)算結(jié)果通過(guò)EX_DOUT通道輸出。其中,對(duì)于命令字Comd的b6、b5為"00"的情況,由于"00"不執(zhí)行任何的控制任務(wù),因此,在本實(shí)施例中,b6、b5為"00"的情況不會(huì)在命令字中出現(xiàn)。為方便說(shuō)明,下面僅以削波算法為兩次迭代運(yùn)算為例(削波算法通常情況下需要進(jìn)行6或8次迭代),基于如圖6所示的削波算法邏輯架構(gòu),對(duì)削波算法的流程進(jìn)行說(shuō)明。根據(jù)削波算法中的各個(gè)運(yùn)算單元執(zhí)行運(yùn)算的順序及迭代次數(shù),配置并保存削波算法流程控制所需的命令字,所述的命令字Comd(b6b0)依次為{0101001}、{1011010}、{1010100}、{1001001}、{1011010}、{1010100}、{1110000}。需要說(shuō)明的是,若FFT/IFFT單元IP3狀態(tài)位b3為'0,(即FFT/IFFT單元處于旁路狀態(tài)),則FFT/IFFT控制位b4可以置為'1,或者'0,,兩者等效。上述所配置的命令字,-f又以b3為'0,時(shí),b4置為'1,為例進(jìn)行說(shuō)明。控制模塊50依次執(zhí)行預(yù)存的多組命令字的控制任務(wù),削波算法流程如下{0101001}:數(shù)據(jù)流切換模塊51從EX—DIN接收需要進(jìn)行削波運(yùn)算的數(shù)據(jù),通過(guò)LOOP—DOUT傳送至運(yùn)算模塊52,依次通過(guò)相位旋轉(zhuǎn)單元IP0、FFT/IFFT單元(作IFFT運(yùn)算)IP3進(jìn)行運(yùn)算處理;{1011010}:數(shù)據(jù)流切換模塊51從LOOP—DIN接收運(yùn)算模塊52的運(yùn)算結(jié)果,通過(guò)LOOP—DOUT再次傳送至運(yùn)算模塊52,依次通過(guò)噪聲提取羊元IPl、FFT/IFFT單元(作FFT運(yùn)算)IP3進(jìn)行運(yùn)算處理;{1010100}:數(shù)據(jù)流切換模塊51從LOOP—DIN接收運(yùn)算模塊52的運(yùn)算結(jié)果,通過(guò)LOOP—DOUT再次傳送至運(yùn)算模塊52,由噪聲對(duì)消單元IP2進(jìn)行運(yùn)算處理后,完成削波算法的一次迭代。{1001001}:數(shù)據(jù)流切換模塊51從LOOP—DIN接收削波算法的一次迭代的運(yùn)算結(jié)果作為下一次迭代的輸入,通過(guò)LOOP—DOUT再次傳送至運(yùn)算模塊52中,依次通過(guò)相位旋轉(zhuǎn)單元IP0、FFT/IFFT單元(作IFFT運(yùn)算)IP3進(jìn)行運(yùn)算處理;{1011010}:數(shù)據(jù)流切換模塊51從LOOP—DIN接收運(yùn)算模塊52的運(yùn)算結(jié)果,通過(guò)LOOP—DOUT再次傳送至運(yùn)算模塊52,依次通過(guò)噪聲提取單元IP1、FFT/IFFT單元(作FFT運(yùn)算)進(jìn)行運(yùn)算處理;{1010100}:數(shù)據(jù)流切換模塊51從LOOP—DIN接收運(yùn)算模塊52的運(yùn)算結(jié)果,通過(guò)LOOP一DOUT再次傳送至運(yùn)算模塊52,由噪聲對(duì)消單元IP2進(jìn)行運(yùn)算處理后,完成削波算法的二次迭代。U110000}:完成削波算法的二次迭代運(yùn)算后,數(shù)據(jù)流切換模塊51從LOOP—DIN接收運(yùn)算模塊52輸出的二次迭代運(yùn)算結(jié)果,通過(guò)EX_DOUT輸出,完成整個(gè)削波算法的處理流程。本發(fā)明實(shí)施例提供的基于多次迭代的削波算法的處理裝置,基于預(yù)存命令字的迭代算法流程控制模式,使得迭代架構(gòu)的工作模式完全由命令字存儲(chǔ)單元的內(nèi)容決定,而該存儲(chǔ)單元的內(nèi)容可以通過(guò)高軟(如MMU或者PC上運(yùn)行的應(yīng)用軟件),或者其它運(yùn)行于FPGA中的邏輯,進(jìn)行直接地、實(shí)時(shí)地修改,這就意味著可以直接地對(duì)一個(gè)實(shí)時(shí)運(yùn)行的迭代邏輯的功能進(jìn)行修改,使得迭代邏輯架構(gòu)與迭代算法模塊及迭代次數(shù)無(wú)關(guān),具有通用性;各個(gè)迭代運(yùn)算單元以"鏈"的方式串聯(lián)連接,在預(yù)置的命令字的控制下,任意的運(yùn)算單元組合均可以一個(gè)接一個(gè)地執(zhí)行運(yùn)算,不會(huì)產(chǎn)生多余的時(shí)鐘損耗,從而提高吞吐率;并且,將FFT及IFFT合并在同一個(gè)運(yùn)算單元中實(shí)現(xiàn),由命令字控制執(zhí)行FFT操作或IFFT操作,可提高資源利用率。上述僅以基于多次迭代的削波算法為例進(jìn)行說(shuō)明,本發(fā)明實(shí)施例提供的迭代算法的處理裝置同樣可以應(yīng)用于其它的具有迭代(類似迭代)或者時(shí)分復(fù)用系統(tǒng)。參見(jiàn)圖7,是本發(fā)明實(shí)施例提供的迭代算法的處理方法的流程示意圖。5100,將迭代算法的各個(gè)運(yùn)算單元以串聯(lián)方式級(jí)聯(lián)成運(yùn)算鏈;其中,每個(gè)運(yùn)算單元在命令字的控制下,可處于執(zhí)行運(yùn)算狀態(tài)或旁路狀態(tài);5101,根據(jù)預(yù)置的迭代算法流程控制命令,從所述運(yùn)算鏈中選擇執(zhí)行運(yùn)算的運(yùn)算單元;所述預(yù)置的迭代算法流程控制命令是基于迭代算法的運(yùn)算次序以及迭代次數(shù)配置的多組命令字,每一組命令字包括數(shù)據(jù)流向控制字段及運(yùn)算單元狀態(tài)控制字段;根據(jù)所述的多組命令字,依次地執(zhí)行迭代算法流程控制,在完成一組命令字的控制任務(wù)后,由更新脈沖控制切換到下一組命令字。進(jìn)一步的,在迭代運(yùn)算過(guò)程中,根據(jù)預(yù)置的迭代算法流程控制命令,確定迭代運(yùn)算模塊中的以串聯(lián)方式連接的各個(gè)運(yùn)算單元的狀態(tài),包括將運(yùn)算鏈上的需要執(zhí)行運(yùn)算操作的運(yùn)算單元置為運(yùn)算狀態(tài);將運(yùn)算鏈上的不需要執(zhí)行運(yùn)算操作的運(yùn)算單元置為旁路狀態(tài)。5102,根據(jù)預(yù)置的迭代算法流程控制命令,確定運(yùn)算過(guò)程中的數(shù)據(jù)流向;具體包括將需要進(jìn)行迭代運(yùn)算的數(shù)據(jù)傳送至運(yùn)算鏈中進(jìn)行運(yùn)算處理;或者,將運(yùn)算鏈輸出的數(shù)據(jù)再次傳送至所述運(yùn)算鏈中進(jìn)行運(yùn)算處理;或者,將運(yùn)算鏈輸出的數(shù)據(jù)作為迭代運(yùn)算結(jié)果輸出。S103,基于所確定的執(zhí)行運(yùn)算的運(yùn)算單元及數(shù)據(jù)流向,對(duì)需要進(jìn)行迭代運(yùn)算的數(shù)據(jù)作運(yùn)算處理。本發(fā)明實(shí)施例提供的迭代算法的處理方法及裝置,根據(jù)迭代算法的運(yùn)算次序以及迭代次數(shù)配置命令字,由預(yù)存的命令字確定迭代運(yùn)算過(guò)程中的執(zhí)行運(yùn)算的運(yùn)算單元以及數(shù)據(jù)流向;基于預(yù)存命令字的迭代算法流程控制方式,使得迭代邏輯架構(gòu)與迭代算法模塊及迭代次數(shù)無(wú)關(guān),具有通用性;在簡(jiǎn)化設(shè)計(jì)的同時(shí)也降低了模塊之間的耦合度,使得模塊的獨(dú)立開發(fā)和驗(yàn)證更加容易;并且,各個(gè)迭代運(yùn)算單元以"鏈"的方式串聯(lián)連接,在預(yù)置的命令字的控制下,任意的運(yùn)算單元組合均可以一個(gè)接一個(gè)地執(zhí)行運(yùn)算,不會(huì)產(chǎn)生多余的時(shí)鐘損耗,從而提高吞吐率。本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例方法中的全部或部分流程,是可以通過(guò)計(jì)算機(jī)程序來(lái)指令相關(guān)的硬件來(lái)完成,所述的程序可存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,該程序在執(zhí)行時(shí),可包括如上述各方法的實(shí)施例的流程。其中,所述的存儲(chǔ)介質(zhì)可為磁碟、光盤、只讀存儲(chǔ)記憶體(Read-OnlyMemory,ROM)或隨機(jī)存儲(chǔ)記憶體(RandomAccessMemory,RAM)等。以上所述是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對(duì)于本
技術(shù)領(lǐng)域:
的普通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤(rùn)飾,這些改進(jìn)和潤(rùn)飾也視為本發(fā)明的保護(hù)范圍。權(quán)利要求1、一種迭代算法的處理方法,其特征在于,包括將迭代算法的各個(gè)運(yùn)算單元以串聯(lián)方式級(jí)聯(lián)成運(yùn)算鏈;根據(jù)預(yù)置的迭代算法流程控制命令字,從所述運(yùn)算鏈中選擇執(zhí)行運(yùn)算的運(yùn)算單元,并確定運(yùn)算過(guò)程中的數(shù)據(jù)流向;基于所確定的運(yùn)算單元及數(shù)據(jù)流向,對(duì)需要進(jìn)行迭代運(yùn)算的數(shù)據(jù)作運(yùn)算處理。2、如權(quán)利要求1所述的迭代算法的處理方法,其特征在于,所述根據(jù)預(yù)置的迭代算法流程控制命令字,從所述運(yùn)算鏈中選擇執(zhí)行運(yùn)算的運(yùn)算單元,包括將運(yùn)算鏈上的需要執(zhí)行運(yùn)算操作的運(yùn)算單元置為運(yùn)算狀態(tài);將運(yùn)算鏈上的不需要執(zhí)行運(yùn)算操作的運(yùn)算單元置為旁路狀態(tài)。3、如權(quán)利要求1或2所述的迭代算法的處理方法,其特征在于,所述確定運(yùn)算過(guò)程中的數(shù)據(jù)流向,包括將需要進(jìn)行迭代運(yùn)算的數(shù)據(jù)傳送至運(yùn)算鏈中進(jìn)行運(yùn)算處理;或者,將運(yùn)算鏈輸出的數(shù)據(jù)再次傳送至所述運(yùn)算鏈中進(jìn)行運(yùn)算處理;或者,將運(yùn)算鏈輸出的數(shù)據(jù)作為迭代運(yùn)算結(jié)果輸出。4、如權(quán)利要求1所述的迭代算法的處理方法,其特征在于,所述迭代算法流程控制命令字是基于迭代算法執(zhí)行運(yùn)算的順序以及迭代次數(shù)配置的多組命令字。5、如權(quán)利要求4所述的迭代算法的處理方法,其特征在于,根據(jù)所述多組命令字依次地執(zhí)行迭代算法流程控制,完成一組命令字的控制任務(wù)后,在更新脈沖的控制下切換到下一組命令字。6、一種迭代算法的處理裝置,其特征在于,包括控制模塊及迭代環(huán)模塊;所述控制模塊,用于根據(jù)預(yù)置的迭代算法流程控制命令字,從所述迭代環(huán)模塊的運(yùn)算鏈中選擇執(zhí)行運(yùn)算的運(yùn)算單元,并確定運(yùn)算過(guò)程中的數(shù)據(jù)流向;所述迭代環(huán)模塊的運(yùn)算鏈由迭代算法的各個(gè)運(yùn)算單元以串聯(lián)方式級(jí)聯(lián)而成;所述迭代環(huán)模塊,用于根據(jù)所述控制模塊所確定的運(yùn)算鏈中執(zhí)行運(yùn)算的運(yùn)算單元及數(shù)據(jù)流向,對(duì)需要進(jìn)行迭代運(yùn)算的數(shù)據(jù)作運(yùn)算處理。7、如權(quán)利要求6所述的迭代算法的處理裝置,其特征在于,所述迭代環(huán)才莫塊包括運(yùn)算模塊,包括由迭代算法的各個(gè)運(yùn)算單元以串聯(lián)方式級(jí)聯(lián)而成的運(yùn)算鏈;用于根據(jù)所述控制模塊的命令字,將運(yùn)算鏈上的需要執(zhí)行運(yùn)算操作的運(yùn)算單元置為運(yùn)算狀態(tài);將不需要執(zhí)行運(yùn)算操作的運(yùn)算單元置為旁路狀態(tài);并基于所確定的執(zhí)行運(yùn)算的運(yùn)算單元,對(duì)數(shù)據(jù)進(jìn)行運(yùn)算處理;數(shù)據(jù)流切換模塊,用于根據(jù)所述控制模塊的命令字,對(duì)數(shù)據(jù)流進(jìn)行切換,包括將需要進(jìn)行迭代運(yùn)算的數(shù)據(jù)傳送至運(yùn)算鏈中進(jìn)行運(yùn)算處理;或者,將運(yùn)算鏈輸出的數(shù)據(jù)再次傳送至所述運(yùn)算鏈中進(jìn)行運(yùn)算處理;或者,將運(yùn)算鏈輸出的數(shù)據(jù)作為迭代運(yùn)算結(jié)果輸出。8、如權(quán)利要求6或7所述的迭代算法的處理裝置,其特征在于,所述控制模塊具體包括命令字存儲(chǔ)單元,用于保存迭代算法流程控制命令字,包括基于迭代算法執(zhí)行運(yùn)算的順序以及迭代次數(shù)配置的多組命令字;控制執(zhí)行單元,用于根據(jù)所述命令字存儲(chǔ)單元的多組命令字,依次地執(zhí)行迭代算法流程控制,完成一組命令字的控制任務(wù)后,在更新脈沖的控制下切換到下一組命令字。全文摘要本發(fā)明實(shí)施例公開了一種迭代算法的處理方法及裝置,所述方法包括將迭代算法的各個(gè)運(yùn)算單元以串聯(lián)方式級(jí)聯(lián)成運(yùn)算鏈;根據(jù)預(yù)置的迭代算法流程控制命令字,從所述運(yùn)算鏈中選擇執(zhí)行運(yùn)算的運(yùn)算單元,并確定運(yùn)算過(guò)程中的數(shù)據(jù)流向;基于所確定的運(yùn)算單元及數(shù)據(jù)流向,對(duì)需要進(jìn)行迭代運(yùn)算的數(shù)據(jù)作運(yùn)算處理。采用本發(fā)明實(shí)施例,基于預(yù)存命令字的模式進(jìn)行迭代算法流程控制,使迭代邏輯架構(gòu)具有通用性。文檔編號(hào)G06F17/10GK101436173SQ20081021937公開日2009年5月20日申請(qǐng)日期2008年11月25日優(yōu)先權(quán)日2008年11月25日發(fā)明者江朱申請(qǐng)人:華為技術(shù)有限公司