專利名稱:用于陣列處理的可編程的延遲指數(shù)的數(shù)據(jù)通路寄存器堆的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)字信號(hào)處理,并更加特別地涉及在陣列處理及其它多處理器系統(tǒng)中優(yōu)化數(shù)據(jù)存取。
背景技術(shù):
循環(huán)緩沖區(qū)通??梢栽跀?shù)字信號(hào)處理器中發(fā)現(xiàn),比如模擬裝置ADSP 2181或Philips REAL DSP,其中,在通過(guò)模操作修改地址之后,存儲(chǔ)段可以被編址。在此情況下,數(shù)據(jù)在一個(gè)循環(huán)中被取出,并且被存儲(chǔ)在寄存器中,以及在下一個(gè)循環(huán)中被用作操作對(duì)象。在這類實(shí)例中,循環(huán)緩沖區(qū)被保存在存儲(chǔ)器中,并且為了處理緩沖區(qū)中存儲(chǔ)的數(shù)據(jù)或恰當(dāng)?shù)叵蚓彌_區(qū)寫(xiě)入新的數(shù)據(jù),存儲(chǔ)器讀/寫(xiě)指令必須被使用。這類指令增加了計(jì)算開(kāi)銷、指令集的復(fù)雜度以及增加了額外的存儲(chǔ)處理時(shí)間。
除了循環(huán)緩沖區(qū)的這類常規(guī)應(yīng)用之外,不存在允許寄存器堆直接模編址或者在陣列處理器中使用模編址的已知設(shè)計(jì)。模編址允許簡(jiǎn)化數(shù)據(jù)元件系列的依次鏈接,其中,當(dāng)系列末尾被達(dá)到時(shí),序列折回到開(kāi)始。例如,在有用0到N編號(hào)的N個(gè)數(shù)據(jù)存儲(chǔ)單元的循環(huán)緩沖區(qū)中,其中,系統(tǒng)被這樣建立,因此給定存儲(chǔ)單元X的下一個(gè)存儲(chǔ)單元被定義為X+1,模編址允許(N-1)+1=0(mod N),從而實(shí)現(xiàn)環(huán)繞效應(yīng)。換言之,循環(huán)存儲(chǔ)器可以被這樣建立,因此給定存儲(chǔ)單元X的下一個(gè)存儲(chǔ)單元被定義為X-1,然后0-1=(N-1)(mod N),又實(shí)現(xiàn)了環(huán)繞效應(yīng)。
例如,在共同未決的美國(guó)專利申請(qǐng)序列號(hào)09/968,119的公開(kāi)內(nèi)容中,在被設(shè)計(jì)用于高通過(guò)量重復(fù)信號(hào)處理的多處理器或陣列處理器環(huán)境中,單獨(dú)的單元已經(jīng)被限制或者取消存儲(chǔ)器編址能力。在此情況下,在存儲(chǔ)器中保存一個(gè)循環(huán)緩沖區(qū)增加了處理的復(fù)雜度;這是根本不可能的。
等效于在存儲(chǔ)器中啟用循環(huán)緩沖區(qū),在處理中簡(jiǎn)化模編址數(shù)據(jù)被存儲(chǔ)于其中的當(dāng)前寄存器,從而簡(jiǎn)化了這類陣列處理器單元中的延遲線等等。不存在允許在數(shù)據(jù)通路指令中模編址的已知設(shè)計(jì)。
為了解決常規(guī)技術(shù)中的缺失,需要一個(gè)用數(shù)據(jù)通路指令來(lái)模編址寄存器的方法和設(shè)備。該方法將允許處理器在當(dāng)前寄存器中保存諸如延遲線之類的連續(xù)數(shù)據(jù)系列,從而排除了存儲(chǔ)器處理能力的需要。
發(fā)明內(nèi)容
一個(gè)延遲編址數(shù)據(jù)通路寄存器堆,其被設(shè)計(jì)用于組成多處理器或陣列信號(hào)處理系統(tǒng)中的單元的可編程處理器。對(duì)于濾波器更新延時(shí)為變量的自適應(yīng)濾波器,內(nèi)插因子必須是可編程的內(nèi)插濾波器,和抽取因子必須是可編程的抽取濾波器來(lái)說(shuō),該延遲可編址寄存器堆是特別有用的。通過(guò)減少執(zhí)行任務(wù)所需的循環(huán)次數(shù),該可編程性用這個(gè)有效方法而被實(shí)現(xiàn)。單個(gè)參數(shù),即″延遲限制″值在啟動(dòng)時(shí)被編程,從而在處理器的寄存器堆內(nèi)建立一個(gè)內(nèi)部延遲線。從而,通過(guò)在運(yùn)行時(shí)間中指定延遲指數(shù),任何延遲寄存器都可以被編址。當(dāng)處理回路開(kāi)始新的反復(fù)操作時(shí),延遲線前進(jìn)一個(gè)存儲(chǔ)單元,即?!逖舆t限制″。
圖例簡(jiǎn)要說(shuō)明
圖1-2說(shuō)明指針修改寄存器編址;圖1A和2A分別是具有數(shù)據(jù)寄存器的可仿效內(nèi)容的圖1和2;圖3描述一個(gè)根據(jù)本發(fā)明的延遲索引的寄存器組的實(shí)例;圖4描述圖3的寄存器被移位1的情況;圖5描述了一個(gè)作為均衡器的自適應(yīng)濾波器的典型結(jié)構(gòu);圖6描述了內(nèi)插濾波器的多相實(shí)施;圖7描述了一個(gè)抽取濾波器;和圖8描述了用于抽取濾波器的雙寄存器堆。
在本發(fā)明的一個(gè)或多個(gè)實(shí)施例被詳細(xì)說(shuō)明之前,應(yīng)當(dāng)理解本發(fā)明不受限于其申請(qǐng)書(shū)中的詳細(xì)結(jié)構(gòu)和在以下描述中闡述的或在附圖中說(shuō)明的元件安排。本發(fā)明能夠適用于其它實(shí)施例并且能夠用多種方式被實(shí)踐或執(zhí)行。此外,應(yīng)當(dāng)理解,在此使用的措詞和術(shù)語(yǔ)是為了描述的目的而不應(yīng)該被認(rèn)為是任何方式的限制。
最優(yōu)方案詳細(xì)說(shuō)明卷積是在許多申請(qǐng)中,特別是在數(shù)字濾波器中都能找到的基本的信號(hào)處理操作。數(shù)字濾波器可以使用陣列處理技術(shù)而被優(yōu)致地實(shí)現(xiàn),比如在上述共同未決的美國(guó)專利申請(qǐng)序列號(hào)09/968,119(″主申請(qǐng)″)中說(shuō)明的用于多標(biāo)準(zhǔn)信道解碼器(MSCD)的可重構(gòu)的自適應(yīng)濾波器陣列處理器。可重構(gòu)的處理器陣列由同樣的處理器單元組成,每個(gè)處理器單元都能夠與離它最新的處理器單元通信并且能夠被編程來(lái)分別執(zhí)行單個(gè)任務(wù)。由于需要支持高數(shù)據(jù)速率和約束成本,因此那些單元必須是簡(jiǎn)易和有效的。通過(guò)設(shè)計(jì)有效的指令集和支持實(shí)現(xiàn)指令的結(jié)構(gòu),單元的效率在某種程度上被確定。
本發(fā)明說(shuō)明了延遲地址寄存器的設(shè)計(jì)和相應(yīng)的指令。這類指令可以在各種濾波應(yīng)用中被充分利用,包括例如在陣列處理環(huán)境中的自適應(yīng)濾波和多速率濾波。延遲編址數(shù)據(jù)通路寄存器堆能夠被用于任何基于濾波器設(shè)計(jì)的陣列并且不受限于在主申請(qǐng)中說(shuō)明的二維陣列。
為了具體說(shuō)明本發(fā)明,先討論一下關(guān)于寄存器編址模式。讓給定的處理器具有標(biāo)號(hào)為RI_x的寄存器堆集,其中,x是0和N-1之間的一個(gè)值,和N是數(shù)據(jù)通路寄存器的總數(shù)。此外,讓處理器具有一個(gè)典型的類似于RISC的指令集和一個(gè)執(zhí)行指定回路的順序控制器。例如,一個(gè)加法指令的形式為ADD SRC1 SRC2 DST,其中,SRC1是源操作對(duì)象1,SRC2是源操作對(duì)象2和DST是目標(biāo)寄存器。三個(gè)操作對(duì)象都從寄存器堆提取。一般地,像ADD RI_0 RI_1 RI_2的指令將簡(jiǎn)單地合計(jì)寄存器堆的存儲(chǔ)單元0和1中的寄存器的內(nèi)容并且把結(jié)果存儲(chǔ)在存儲(chǔ)單元2中。在C語(yǔ)言注釋中,這將被寫(xiě)作RI[2]=RI
+RI[1]。在這些實(shí)例中,所有的編址都是內(nèi)含的和靜態(tài)的(按時(shí)改正)。
指針修改編址的工作原理略有不同。指針修改編址是一種間接編址形式。一個(gè)附加寄存器組、即指針寄存器組被保存,從而用相應(yīng)的指針寄存器組的內(nèi)容來(lái)映射數(shù)據(jù)通路寄存器的地址。從而,讓指針寄存器組被稱作RD_x。類似于ADD RI_0 RI_1 RI_2的指令被實(shí)際地轉(zhuǎn)換成方法RI[RD[2]]=RI[RD
]+RI[RD[1]]。從而,指令的操作對(duì)象是其地址被包含在RD_x寄存器組中的數(shù)據(jù)寄存器。如果指針寄存器組的內(nèi)容是這樣的以致RD_x=x,則指針修改編址的工作情況將正好和前一段落中說(shuō)明的隱含編址的工作情況一樣。
本發(fā)明使用延遲指數(shù)編址。延遲指數(shù)編址是指針修改編址的修改形式。它本質(zhì)上是寄存器堆的指針修改編址,其具有某些RD(指針)寄存器堆內(nèi)容的初始條件和每個(gè)數(shù)據(jù)周期自動(dòng)移位指針的機(jī)理。RD的內(nèi)容在啟動(dòng)時(shí)被依次增加,其意味著RD_0=0、RD_1=1,...,RD_N=N等等。然后,每當(dāng)處理循環(huán)重新開(kāi)始,即著每當(dāng)程序計(jì)數(shù)器變成0,指針寄存器組中的寄存器內(nèi)容就被移位到下一個(gè)寄存器中,其意味著(″下一個(gè)″被定義為后續(xù)的)RD_x(當(dāng)前的)=RD_(x-1)(先前的),并且第一寄存器的內(nèi)容被調(diào)入到最后一個(gè)。(如果″下一個(gè)″被定義為在前的,則等效移位能夠出現(xiàn),RD_x(當(dāng)前的)=RD_x+1(先前的),并且最后一個(gè)寄存器的內(nèi)容被調(diào)入到第一個(gè)寄存器中。)這可以通過(guò)參考圖1和圖2被說(shuō)明。在RD_x 110、210和RI_x 120、220的這些附圖描述的每一個(gè)中,寄存器組被示出。為了例證的目的,每組寄存器包括地址為0到3的4個(gè)寄存器。寄存器150、250的地址在每個(gè)寄存器的(輸出)端上被示出。下一個(gè)在此被定義為后續(xù)的,因此每次移位,給定的RD_x寄存器的內(nèi)容被轉(zhuǎn)入后續(xù)的寄存器,并且最后的寄存器的內(nèi)容被調(diào)入第一個(gè)寄存器。指針指出RD_x寄存器的內(nèi)容的在RI_x寄存器組中的指向。在圖1中,t=n 101,即啟動(dòng)情況在左邊被說(shuō)明,其中,RD_x=x。當(dāng)t=n+1 102時(shí),在圖1的右邊說(shuō)明的是,指針寄存器RD_x的內(nèi)容被移位,因此如上所述RD_x(當(dāng)前的)=RD_(x_1)(先前的)。這個(gè)加法被執(zhí)行模4,因此0-1=3(mod 4),并且從而當(dāng)t=n+1時(shí),包含在RD_0中的地址是3。圖2完成了時(shí)間序列,并且分別描述了t=n+2201和t=n+3 202時(shí)的寄存器組??梢钥吹?,對(duì)于四個(gè)的寄存器組來(lái)說(shuō),t=n+4和t=n一致。如下所述,這個(gè)編址系統(tǒng)將產(chǎn)生一個(gè)循環(huán)緩沖區(qū)。
RD_x寄存器的內(nèi)容是RI_x寄存器的地址。RI_x寄存器的內(nèi)容是處理器正在處理的數(shù)據(jù)。當(dāng)數(shù)據(jù)進(jìn)入和退出處理器時(shí),數(shù)據(jù)通常會(huì)隨著時(shí)間變化。很容易看出,如果每當(dāng)程序計(jì)數(shù)器重新設(shè)置進(jìn)入RI_x寄存器組120、220的新的數(shù)據(jù),則層數(shù)等于一個(gè)小于RD_x中的寄存器數(shù)目的延遲線被建立。在圖1-2的實(shí)例中,層數(shù)為3的延遲線從而可以被建立,處理器已經(jīng)訪問(wèn)了當(dāng)前數(shù)據(jù)(通常是在給定抽樣率取得的一部分模擬值的抽樣)和先前的三個(gè)數(shù)據(jù)或抽樣。換言之,處理器已經(jīng)訪問(wèn)了數(shù)據(jù)抽樣X(jué)n、Xn-1、Xn-2和Xn-3。
圖1A和2A分別對(duì)應(yīng)于圖1和圖2,它們彼此一致,只是添加了數(shù)據(jù)寄存器組RD_X的內(nèi)容實(shí)例。在任何給定時(shí)間的星號(hào)示出下一個(gè)輸入的抽樣(即在時(shí)間t=n時(shí)的抽樣X(jué)n+1;通常是在時(shí)間t=k時(shí)的抽樣X(jué)k+1等等)抽樣將被寫(xiě)入的位置??梢钥匆?jiàn),新的抽樣總是覆蓋存儲(chǔ)在寄存器組中的最舊的抽樣,或最延遲的抽樣。對(duì)于所描述的三個(gè)可仿效延遲,新的抽樣總是覆蓋當(dāng)前抽樣的三個(gè)抽樣周期后的抽樣,或者對(duì)于t=n,Xn+1抽樣覆蓋Xn-3數(shù)據(jù)抽樣。從而,在這個(gè)例子中,新的抽樣總是被寫(xiě)入在具有當(dāng)前抽樣的寄存器后的RI寄存器,或?qū)懭氲接蒖D_(0-1)寄存器、RI[RD_3]指向的RI_X寄存器。當(dāng)one從RI[RD_0]寄存器向前一次一個(gè)地通過(guò)所有的數(shù)據(jù)寄存器時(shí),模4(因此RI[RD_(3+1)]=RI[RD_0]),one發(fā)現(xiàn)增加了延遲的抽樣。RD_x寄存器從而產(chǎn)生循環(huán)緩沖區(qū),其元件由延遲索引(編址)。圖3說(shuō)明了這類對(duì)3層延遲緩沖區(qū)的延遲索引編址。在圖3中,只示出一部分可用的RD_x寄存器,從而存在著層數(shù)等于RDx組中的寄存器的實(shí)際數(shù)目的可能性。由于在RDx組中只有四個(gè)寄存器用于延遲線,所以只有RI_x組的0-4的寄存器涉及存儲(chǔ)延遲線數(shù)據(jù)。指令中的RD_0的操作對(duì)象指向在延遲緩沖區(qū)中有最新值的寄存器,RD3的操作對(duì)象指向延遲3的值,或Xn-3。從而,RD-x寄存器組的地址被實(shí)際地解釋為延遲。這些RD_x寄存器在RI_x組中指向的地點(diǎn)隨著時(shí)間改變。
圖4示出當(dāng)?shù)竭_(dá)新的狀態(tài)時(shí)寄存器指針的前進(jìn)。為了在一部分來(lái)自數(shù)據(jù)通路寄存器堆的寄存器組上實(shí)現(xiàn)循環(huán)緩沖區(qū),在圖3-4中稱作rlimit的延遲限制被引入并且指針寄存器移位被執(zhí)行,模(rlimit+1);從而,通過(guò)減1(模(rlimit+1)),每個(gè)RDx寄存器的內(nèi)容被改變。模是(rlimit+1),這是因?yàn)閞limit是存儲(chǔ)在RI x寄存器中的最大延遲,但是延遲線中的寄存器的實(shí)際數(shù)目是(rlimit+1)來(lái)包括零延遲,或當(dāng)前抽樣X(jué)n。
為了在循環(huán)緩沖區(qū)中保存三個(gè)最新的抽樣,延遲為零的新的抽樣被寫(xiě)入到不斷變化(模rlimit+1)的RI_x寄存器,該RI_x寄存器由RD-0寄存器指向。對(duì)于圖3和4的系統(tǒng),RDx寄存器的內(nèi)容會(huì)如圖1-2中描述的那樣按時(shí)循環(huán);圖3對(duì)應(yīng)于圖2中的t=n+2 201,和圖4對(duì)應(yīng)于圖2中的t=n+3 202。
通常,延遲指數(shù)指針寄存器允許處理器實(shí)現(xiàn)任何濾波或其它數(shù)據(jù)處理操作,其它數(shù)據(jù)處理操作的輸入是當(dāng)前數(shù)據(jù)和大量在一部分檢測(cè)中先于當(dāng)前數(shù)據(jù)的數(shù)據(jù)。如果數(shù)據(jù)按時(shí)彼此相對(duì)改變,則可以保存一個(gè)臨時(shí)的延遲線,其允許訪問(wèn)當(dāng)前抽樣和大量先前的抽樣,正如在FIR濾波器中通常需要的一樣。在這種情況下,存儲(chǔ)在延遲線中的抽樣數(shù)目會(huì)對(duì)應(yīng)于濾波公式中的或按照?qǐng)D3-4中描述的系統(tǒng)的延遲數(shù)目加上1,(rlimit+1)。通過(guò)預(yù)編程的變量rlimit,處理器知道延遲線中有多少數(shù)據(jù)抽樣,rlimit給出存儲(chǔ)在數(shù)據(jù)寄存器中的最大延遲。通過(guò)使用模運(yùn)算,索引寄存器被自動(dòng)地加1以便保存不停變化的數(shù)據(jù)之間的延遲關(guān)系。
換言之,″延遲線″可以被實(shí)現(xiàn),其中,抽樣不按時(shí)間而是按空間變化,比如在圖像處理操作中,其中,″先前的″在空間中對(duì)應(yīng)于先前的,這由一個(gè)圖像內(nèi)的一些方向來(lái)定義。
通過(guò)下列實(shí)例,這類延遲指數(shù)指針寄存器的用處將接著被說(shuō)明。
應(yīng)用1自適應(yīng)濾波器中的誤差延時(shí)調(diào)整延遲索引數(shù)據(jù)通路寄存器(RD_x)能夠被用來(lái)簡(jiǎn)化用于自適應(yīng)FIR濾波器的抽頭延遲線的編程。特別地,考慮最小均方(LMS)算法。濾波公式被提供如下Yn=Σi=0N1CiXXni---------(1)]]>其中,Xn是濾波狀態(tài)和Cn是濾波系數(shù)。濾波系數(shù)根據(jù)下列公式被更新Cn+=Cni-+μ*Xn-*ϵ----------(2)]]>其中,μ是恒定值,和E是由先前的濾波計(jì)算得出的已濾波的輸出誤差。圖5示出在信道均衡器中的這類濾波的應(yīng)用。實(shí)際上,存在一個(gè)按照輸入抽樣周期數(shù)目而可測(cè)量的有限延時(shí),這個(gè)有限延時(shí)是在給出的抽樣”Xn”在自適應(yīng)濾波器510的輸入端出現(xiàn)的出現(xiàn)時(shí)間和誤差”E”被計(jì)算和被適用到適配單元520的時(shí)間之間。如果濾波更新延時(shí)超過(guò)或等于一個(gè)抽樣周期,則更新方程必須被修改以使用相等延遲的狀態(tài)值x,比如Xn-d,其中,d是適當(dāng)?shù)难舆t。
如果自適應(yīng)濾波器被實(shí)現(xiàn)在陣列處理器上,則FIR濾波器的單個(gè)抽頭被映射到該陣列的一個(gè)單元,濾波更新延時(shí)是有重新計(jì)算的誤差到達(dá)單元的時(shí)間和濾波器抽頭輸出被調(diào)入該單元的時(shí)間之間的區(qū)別,其在輸入數(shù)據(jù)抽樣周期中被測(cè)量。為了取出延遲狀態(tài),單元需要延遲緩沖區(qū)。這個(gè)延遲緩沖區(qū)從存在的內(nèi)部寄存器的一個(gè)子集被構(gòu)成,如上所述,其每個(gè)元件通過(guò)它的相對(duì)延遲都被編址到最新到達(dá)的本地狀態(tài)d=0,被存儲(chǔ)在RI[(RD-0)]中。例如,如果延時(shí)是3,系數(shù)Cn+被存儲(chǔ)在寄存器RI_5中,則誤差被存儲(chǔ)在RI_4中,并且當(dāng)前狀態(tài)Xn被存儲(chǔ)在RI[RD_0]中。為了實(shí)現(xiàn)濾波更新公式,單元用延遲限制被編程,rlimit=3,并且更新公式變成RI5=RI5+RI4*RI[RD3]。因?yàn)檠舆t線的寄存器內(nèi)容被自動(dòng)地移位,所以在每個(gè)數(shù)據(jù)抽樣期間不需要附加的數(shù)據(jù)移動(dòng)。
處理器被編程以便自動(dòng)地把RI_X類型的指令中的操作對(duì)象解釋為RI[RD X]。從而,用戶根本無(wú)須考慮指針寄存器到數(shù)據(jù)寄存器的映射。因此,在下述的實(shí)例中,指令將按照RI_X的操作對(duì)象而被說(shuō)明,其被理解成處理器被編程來(lái)自動(dòng)地把那些操作對(duì)象轉(zhuǎn)換成RI[RD_X]操作對(duì)象。
應(yīng)用2可編程內(nèi)插濾波器的有效實(shí)施內(nèi)插濾波器是多速率濾波,其中,輸出數(shù)據(jù)速率是輸入數(shù)據(jù)速率的倍數(shù)。常常遇到此倍數(shù)是一個(gè)整數(shù)的情況。這類內(nèi)插濾波器執(zhí)行公式1,但是輸入序列x是之間插入零的實(shí)際輸入數(shù)據(jù)。例如,如果內(nèi)插倍數(shù)是3,則在施加濾波602之前,通過(guò)在每雙數(shù)據(jù)抽樣之間插入兩個(gè)零,輸入數(shù)據(jù)流601被修改。因?yàn)槿齻€(gè)數(shù)據(jù)值中的兩個(gè)是零,所以在任何時(shí)間點(diǎn)都只有三分之一的濾波抽頭制造非零輸出。多相濾波器使用這個(gè)事實(shí)以避免實(shí)現(xiàn)零輸出抽頭。在Proakis和Manolakis的Introduction to Digital Signal Processing(數(shù)字信號(hào)處理入門(mén))(紐約MacMillan出版社,I988)ISBN0-02-396810-9,pp662-670,第667和668頁(yè)分別完全說(shuō)明了這個(gè)事實(shí)。
圖6示出用作內(nèi)插倍數(shù)為3的內(nèi)插濾波器的多相濾波器的運(yùn)行。公式1然后被實(shí)現(xiàn)為三個(gè)濾波器,其采取一個(gè)公用輸入和它們的輸出被按時(shí)多路復(fù)用。濾波器抽頭到單元的映射也在圖中被示出。延遲限制寄存器rlimit被編程為2,例如通過(guò)專用的指令將其編程為2。系數(shù)0、1和2被分別存儲(chǔ)在RI_0、RI_1和RI_2中。系數(shù)從而被存儲(chǔ)在連續(xù)的被延遲編址的寄存器中。控制器程序在每個(gè)數(shù)據(jù)抽樣期間中執(zhí)行三個(gè)回路。讓一個(gè)單元中的輸入數(shù)據(jù)被存儲(chǔ)在RI3中。然后,一個(gè)FIR抽頭可以通過(guò)指令RI_4=RI_3*RI_2而被模式;因?yàn)檠舆t編址是有效的,所以在第一程序循環(huán)中RI_2有系數(shù)C0,在第二循環(huán)中RI_2有系數(shù)C1,和在第三循環(huán)中RI_2有系數(shù)C2。這等效于被重新配置的整個(gè)陣列,從而在第一循環(huán)中實(shí)現(xiàn)H1 605,在第二循環(huán)中實(shí)現(xiàn)H2 606,和在第三循環(huán)中實(shí)現(xiàn)H3 607。每個(gè)程序循環(huán)中的濾波器輸出對(duì)應(yīng)于內(nèi)插濾波器輸出,從而固有地實(shí)現(xiàn)輸出復(fù)用器。應(yīng)當(dāng)注意,該狀態(tài)在濾波器之間被分享;對(duì)于9個(gè)抽頭并且內(nèi)插因子為3的濾波器來(lái)說(shuō),只需要3個(gè)狀態(tài)。
應(yīng)用3可編程抽取濾波器的有效實(shí)施抽取濾波器只是雙內(nèi)插濾波器。這類抽取濾波器在圖7中被描述。對(duì)于3710的抽取因子,來(lái)自濾波后的三個(gè)輸出樣值中的兩個(gè)被丟棄。這意味著被丟棄的濾波器輸出不需要首先被計(jì)算。通過(guò)簡(jiǎn)單地反向圖6中描述的插補(bǔ)器的流向圖,這個(gè)結(jié)構(gòu)可以被導(dǎo)出,其產(chǎn)生圖7中示出的結(jié)構(gòu)。然而,不同于圖6的內(nèi)插結(jié)構(gòu),該狀態(tài)不被共享。系統(tǒng)中固有的兩個(gè)輸出延遲被顯示圖7中的720和730。為了保存獨(dú)立的狀態(tài)寄存器,需要一個(gè)第二延遲編址寄存器緩沖區(qū),由相同的指針寄存器RDX編址。這類系統(tǒng)實(shí)施例只在圖8中被示出。兩個(gè)延遲編址寄存器緩沖區(qū)用鎖定步驟被編址,取出相應(yīng)的一對(duì)系數(shù)和狀態(tài)。
為了說(shuō)明這個(gè),讓兩個(gè)延遲編址寄存器緩沖區(qū)被標(biāo)記為RI0_X 810和RI1_X 820。讓系數(shù)被存儲(chǔ)在RI0_X 810中;特別地,對(duì)于抽取3次的實(shí)例,讓RI0_0是C0,RI0_1是C1以及RI_2是C2。讓輸入數(shù)據(jù)被存儲(chǔ)在R11_X 820中。特別地,讓新的數(shù)據(jù)抽樣被存儲(chǔ)在R110中,因此RI1_0是Xn,RI1_1是Xn-1以及RI1_2是Xn-2。在上述的內(nèi)插器實(shí)例的情況下,讓參數(shù)rlimit是2(模3),建立有三個(gè)連續(xù)元件的延遲線。通常,(rlimit+1)是一個(gè)單元中正在被計(jì)算的FIR抽頭的數(shù)目。比如RI1_4=RI0_0*RI1_0的指令模式FIR抽頭計(jì)算。這實(shí)際上在三個(gè)連續(xù)循環(huán)中實(shí)現(xiàn)C2*Xn-2、C1*Xn-1、C0*Xn,產(chǎn)生時(shí)間多路復(fù)用輸出,其使用延遲720和730被同步并且被添加到單元的外部。這等價(jià)于正在被配置的整個(gè)陣列,從而在第一循環(huán)中執(zhí)行濾波器H3 770(關(guān)于圖7),在第二循環(huán)中執(zhí)行H2 760,在第三循環(huán)中執(zhí)行H1 750。在被新的數(shù)據(jù)Xn覆蓋之前,位于RI10的最舊的數(shù)據(jù)Xn-3被傳遞到陣列中的下一個(gè)單元。
雖然本發(fā)明已經(jīng)參照不同實(shí)施例被詳細(xì)地描述,但是應(yīng)當(dāng)理解,本領(lǐng)域技術(shù)人員可能在不背離本發(fā)明精神的前提下對(duì)其作出不同的改變和修改。例如,一個(gè)或多個(gè)數(shù)據(jù)寄存器組RI_X可以由相同的RD_X指針寄存器組索引,每個(gè)數(shù)據(jù)寄存器組用鎖定步驟來(lái)被編址。同樣,在其它實(shí)施例中,在不同于數(shù)據(jù)抽樣速率的速率,數(shù)據(jù)寄存器組和指針寄存器組可以分別被加1。從而,本發(fā)明范圍被單獨(dú)地定義在下列權(quán)利要求中。
權(quán)利要求
1.一個(gè)用于處理器的??删幹返臄?shù)據(jù)通路寄存器堆,包括第一組寄存器(RDX)(110、210、310、410)和第二組寄存器(RI_X)(120、220、320、420);其中,第一組寄存器(110、210、310、410)存儲(chǔ)第二組寄存器(120、220、320、420)的地址,并且其中,第二組寄存器(120、220)儲(chǔ)存數(shù)據(jù);和其中,第一組寄存器(110、210、310、410)中的兩個(gè)或更多的寄存器被順序排列在一個(gè)循環(huán)結(jié)構(gòu)中,因此第一寄存器依次向上一個(gè)后面的下一個(gè)傳遞。
2.權(quán)利要求1的寄存器堆,其中,每當(dāng)處理器回路開(kāi)始新的反復(fù)操作,循環(huán)結(jié)構(gòu)中的寄存器(110、210、310、410)就根據(jù)公式RDX=RD_(X+k)(模M)來(lái)改變它們的內(nèi)容,其中,k是一個(gè)整數(shù);和其中,模M等于來(lái)自用于循環(huán)結(jié)構(gòu)的第一組(110、210、310、410)的寄存器的數(shù)目乘以非零值|k|,和當(dāng)k=0時(shí)乘以1。
3.權(quán)利要求2的寄存器堆,其中,k是0、+/-1、+/-3或+/-4中的一個(gè)。
4.權(quán)利要求3的寄存器堆,其中,第一組(110、210、310、410)中的N個(gè)寄存器被編號(hào)為0到N-1。
5.權(quán)利要求4的寄存器堆,其中,該循環(huán)結(jié)構(gòu)被用來(lái)存儲(chǔ)N個(gè)數(shù)據(jù)抽樣序列,每個(gè)抽樣比序列中的先前抽樣延遲一個(gè)抽樣周期。
6.權(quán)利要求5的寄存器堆,其中,參數(shù)N在處理器操作啟動(dòng)時(shí)是可編程的,并且它是一個(gè)大于最大支持延遲的數(shù),表示為抽樣周期單元。
7.權(quán)利要求6的寄存器堆,其中,抽樣被存儲(chǔ)在RI_X寄存器組(120、220、320、420)中。
8.權(quán)利要求7的寄存器堆,其中,RI_X(120、220、320、420)寄存器由循環(huán)結(jié)構(gòu)中的RD_X寄存器指向。
9.權(quán)利要求8的寄存器堆,其中,抽樣被存儲(chǔ)在RIX寄存器組(120、220、320、420)中的連續(xù)存儲(chǔ)單元中。
10.一個(gè)多處理器系統(tǒng),包括多個(gè)單元,每個(gè)單元有一個(gè)單獨(dú)的處理器;其中,每個(gè)單元有權(quán)利要求6的寄存器堆,和其中,處理器能夠執(zhí)行操作對(duì)象是RD_X寄存器(110、210、310、410)的指令。
11.權(quán)利要求10的系統(tǒng),其中,每個(gè)單元有一個(gè)可編程參數(shù),該可編程參數(shù)為該單元設(shè)置N的值。
12.優(yōu)化數(shù)字信號(hào)處理的一個(gè)方法,包括在第一寄存器組(RDX)(110、210、310、410)中實(shí)現(xiàn)模編址;啟動(dòng)處理器,從而通過(guò)操作指向數(shù)據(jù)的寄存器來(lái)操作第二寄存器組(120、220、320、420)中的數(shù)據(jù)。
13.權(quán)利要求12的方法,其中,每當(dāng)處理器回路開(kāi)始一個(gè)新的反復(fù)操作,在第一寄存器組(110、210、310、410)中的寄存器就根據(jù)公式RD_X=RD_(X+k)(模M)來(lái)改變它們的內(nèi)容,其中,k是一個(gè)整數(shù);和其中,模M等于用來(lái)指向第二寄存器組(120、220、320、420)中的數(shù)據(jù)的第一寄存器組(110、210、310、410)中的寄存器數(shù)目乘以非零值|k|,和當(dāng)k=0時(shí)乘以1。
14.權(quán)利要求13的方法,其中,第一(110、210、310、410)或第二(120、220、320、420)寄存器組中未使用過(guò)的寄存器存儲(chǔ)M的值。
15.權(quán)利要求14的方法,其中,第一寄存器組(110、210、310、410)中的一個(gè)專用寄存器存儲(chǔ)M的值。
16.實(shí)現(xiàn)數(shù)字濾波的一個(gè)方法,包括把當(dāng)前數(shù)據(jù)抽樣和大量先前的數(shù)據(jù)抽樣存儲(chǔ)在第一寄存器組(120、220、320、420)中;通過(guò)相對(duì)當(dāng)前抽樣的延遲,索引所述的當(dāng)前抽樣和先前的數(shù)據(jù)抽樣;和通過(guò)用新的數(shù)據(jù)抽樣覆蓋寄存器組(120、220、320、420)中的最延遲抽樣,每個(gè)抽樣周期自動(dòng)更新第一寄存器組(120、220、320、420)的內(nèi)容。
17.權(quán)利要求16的方法,其中,在第一寄存器組(120、220、320、420)中的數(shù)據(jù)抽樣索引被第二寄存器組(RD_X)(110、210、310、410)保存,第二寄存器組存儲(chǔ)第一寄存器組(120、220、320、420)中寄存器的地址。
18.權(quán)利要求17的方法,其中,每當(dāng)處理器回路開(kāi)始一個(gè)反復(fù)操作,根據(jù)公式RDX=RD_(X+k)(模M),第二寄存器組(110、210、310、410)每個(gè)抽樣周期就被自動(dòng)加1,其中,k是一個(gè)整數(shù);其中,模M等于用來(lái)指向第二寄存器組(120、220、320、420)中的數(shù)據(jù)的第一寄存器組(110、210、310、310,410)中的寄存器數(shù)目乘以非零值|k|,和當(dāng)k=0時(shí)乘以1。
19.實(shí)現(xiàn)數(shù)字濾波的一個(gè)方法,包括把包含當(dāng)前數(shù)據(jù)抽樣和大量先前的數(shù)據(jù)抽樣的第一數(shù)據(jù)組存儲(chǔ)在第一寄存器組(810)中;把一個(gè)或多個(gè)附加數(shù)據(jù)組存儲(chǔ)在附加寄存器組(820)中,每個(gè)附加數(shù)據(jù)組包含一個(gè)當(dāng)前數(shù)據(jù)抽樣和大量先前的數(shù)據(jù)抽樣;通過(guò)相對(duì)當(dāng)前抽樣而延遲一個(gè)抽樣,索引每個(gè)所述的數(shù)據(jù)組(810、820);和通過(guò)用一個(gè)新的數(shù)據(jù)覆蓋存儲(chǔ)在每個(gè)寄存器組中的最延遲抽樣,每個(gè)抽樣周期自動(dòng)更新第一寄存器組(810)和附加寄存器組(820)中的每個(gè)寄存器的內(nèi)容。
20.權(quán)利要求19的方法,其中,在第一寄存器組(810)和附加寄存器組(820)的每個(gè)寄存器中的數(shù)據(jù)抽樣索引被指針寄存器組(RDX)(800)保存,指針寄存器組存儲(chǔ)第一寄存器組(810)和附加寄存器組(820)中每個(gè)寄存器的地址。
21.權(quán)利要求20的方法,其中,每當(dāng)處理器回路開(kāi)始一個(gè)反復(fù)操作,根據(jù)公式RDX=RD_(X+k)(模M),指針寄存器組(110、210、310、410)每個(gè)抽樣周期就被自動(dòng)加1,其中,k是一個(gè)整數(shù); 和其中,模M等于用來(lái)指向在第一組(810)和附加寄存器組(820)中每一個(gè)寄存器的指針寄存器組(800)中的寄存器乘以非零值|k|,和當(dāng)k=0時(shí)乘以1。
全文摘要
一個(gè)延遲編址數(shù)據(jù)通路的寄存器堆,其被設(shè)計(jì)用于組成多處理器或陣列信號(hào)處理系統(tǒng)中的單元的可編程處理器。對(duì)于濾波器更新延時(shí)為變量的自適應(yīng)濾波器,內(nèi)插因子必須是可編程的內(nèi)插濾波器,和抽取因子必須是可編程的抽取濾波器來(lái)說(shuō),該延遲可編址寄存器堆是特別有用的。通過(guò)減少執(zhí)行任務(wù)所需的循環(huán)次數(shù),該可編程性用這個(gè)有效的方法而被實(shí)現(xiàn)。一個(gè)參數(shù),即“延遲限制”值在啟動(dòng)時(shí)被編程,從而在處理器的寄存器堆內(nèi)建立一個(gè)內(nèi)部延遲線。從而,通過(guò)在運(yùn)行時(shí)間中指定延遲指數(shù),任何延遲寄存器都可以被編址。當(dāng)處理回路開(kāi)始新的反復(fù)操作時(shí),延遲線前進(jìn)一個(gè)存儲(chǔ)單元,即模“延遲限制”。
文檔編號(hào)G01R1/00GK1605061SQ02825338
公開(kāi)日2005年4月6日 申請(qǐng)日期2002年12月3日 優(yōu)先權(quán)日2001年12月21日
發(fā)明者K·維亞納坦, G·F·布恩斯 申請(qǐng)人:皇家飛利浦電子股份有限公司