專利名稱:在陣列處理器上的劃分的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)字信號(hào)處理,并且尤其涉及優(yōu)化在集成電路中的數(shù)字信號(hào)處理操作。在一個(gè)優(yōu)選實(shí)施例中,本發(fā)明涉及一種對(duì)二維處理器陣列執(zhí)行劃分的算法的使用。
在數(shù)字信號(hào)處理中卷積是通用的,其通常被應(yīng)用來實(shí)現(xiàn)有限脈沖響應(yīng)(FIR)過濾器。下面是數(shù)據(jù)信號(hào)X與系數(shù)向量C的卷積的通式y(tǒng)n=Σi=0NCi×xn-i]]>其中假定所述數(shù)據(jù)信號(hào)X和所述系統(tǒng)響應(yīng)或過濾系數(shù)向量C兩個(gè)都是自變量。
對(duì)于每個(gè)輸出數(shù)據(jù),從存儲(chǔ)器中取數(shù)據(jù)yn、2N,必須執(zhí)行N次乘法和求N次乘積和。通常從兩個(gè)獨(dú)立的存儲(chǔ)單元執(zhí)行存儲(chǔ)器事務(wù),其分別對(duì)應(yīng)所述系數(shù)Ci和數(shù)據(jù)Xn-i。在實(shí)時(shí)自適應(yīng)過濾器情況下,其中在穩(wěn)態(tài)運(yùn)行期間常常更新所述系數(shù),因此必須執(zhí)行附加的存儲(chǔ)器事務(wù)和算術(shù)計(jì)算以便更新并存儲(chǔ)所述系數(shù)。特別地是,已經(jīng)優(yōu)化通用數(shù)字信號(hào)處理器來對(duì)馮·諾依曼類型處理器高效地執(zhí)行這種計(jì)算。然而在某些應(yīng)用中,其中會(huì)遇到高的信號(hào)處理速率和嚴(yán)格的功耗約束,所述通用數(shù)字信號(hào)處理器仍然是不切實(shí)際的。
劃分是可以在DSP算法中要求的另一種操作。在通用的數(shù)字信號(hào)處理器上每秒執(zhí)行數(shù)目巨大的劃分對(duì)帶寬要求相對(duì)較高的算法來說仍然是不切實(shí)際的。
為了應(yīng)對(duì)這種約束,已經(jīng)應(yīng)用了大量算法和體系結(jié)構(gòu)的方法。一個(gè)通用的方法是在頻率域內(nèi)實(shí)現(xiàn)所述處理。從而,從算法上講,可以使用例如傅立葉變換之類的給定變換來把所述卷積變換為頻譜乘積,然后逆變換可以生成所希望的和。在多數(shù)情況下,高效的快速傅立葉變換技術(shù)實(shí)際上往往把總的計(jì)算負(fù)荷降低在所述時(shí)間域內(nèi)原始卷積的總計(jì)算負(fù)荷之下。在單載波地面信道譯碼的情景下,為部分實(shí)現(xiàn)ATSC 8-VSB均衡器的剛好提出這樣的一種技術(shù),這種技術(shù)在申請(qǐng)人Dagnachew Birru的美國專利申請(qǐng)09/840,203和09/840,200中給出了更充分的描述,其中的每一件申請(qǐng)均給予了共同的轉(zhuǎn)讓。在此將這些申請(qǐng)中的每一個(gè)全文引用以供參考。
在由于算法需求或存儲(chǔ)器約束的原因?qū)е虏蝗菀装阉鼍矸e變換到所述頻率域的情況下,已經(jīng)提出專門的ASIC處理器來實(shí)現(xiàn)所述卷積,并在自適應(yīng)系數(shù)更新算法中支持具體選擇,這在Vol.18,No.11(十一月,2000)IEEE Journal on Selected Areas inCommunications中Grayver的“A Reconfigurable 8 GOP ASICArchitecture for high-speed data communication”;和在themono-carrier study,ISPACS 2000,檀香山,2000年11月中E.Dujardin與O.Gay-Bellile的“A Programmable Architecturefor digital communications”給出了描述。
這種ASIC模式的重要特征包括(1)包含計(jì)算硬件和存儲(chǔ)器的專門單元,用于使與系數(shù)和狀態(tài)存儲(chǔ)之間的所有抽頭(tap)計(jì)算都本地化;和(2)在本地編程并通過各個(gè)單元復(fù)制所述單元功能的事實(shí)。
已經(jīng)成功地把在高級(jí)可重構(gòu)的多處理器系統(tǒng)上的研究應(yīng)用于復(fù)雜的工作站站處理系統(tǒng)。Michael Taylor,在2001年1月,MIT計(jì)算機(jī)科學(xué)實(shí)驗(yàn)室,撰寫了原型設(shè)計(jì)文檔,例如描述了使用靜態(tài)可編程網(wǎng)絡(luò)以及動(dòng)態(tài)可編程通信網(wǎng)絡(luò)來通信的可編程處理器“格片”(tiles)陣列。所述靜態(tài)網(wǎng)絡(luò)使用可重構(gòu)的縱橫式網(wǎng)絡(luò)連接到任意的處理器,在配置期間定義互連,而所述動(dòng)態(tài)網(wǎng)絡(luò)使用動(dòng)態(tài)路由來實(shí)現(xiàn)分組交付模式。在所有情況下,都從源單元編程互連性。
然而在上述所有體系結(jié)構(gòu)解決方案中,不是靈活性因?yàn)榘堰^濾器限制到線性鏈而大打折扣(與在所述Grayver的參考文獻(xiàn)中的一樣),就是復(fù)雜性太高,因?yàn)閷⒁獙ぶ返奶幚矸秶^卷積(與在Dujardin&Gay-Bellile和Taylor的參考文獻(xiàn)中的一樣;在Taylor的參考文獻(xiàn)中,例如描述了復(fù)雜處理器陣列,以致工作站可以建立于其中描述的系統(tǒng)上)。因此,當(dāng)前還沒有任何系統(tǒng)能夠單純以高效率來提供這兩種靈活性,當(dāng)然不管這種系統(tǒng)是被提議的還是現(xiàn)有的。
因此,在這些模式的有利的改進(jìn)往往會(huì)增強(qiáng)針對(duì)所述卷積問題的靈活性,并且還保持簡單的編程和通信控制。
在此給出實(shí)現(xiàn)卷積函數(shù)和其他數(shù)字信號(hào)處理操作的組件體系結(jié)構(gòu)。其中的每個(gè)處理器均與其最近鄰居相通信的一個(gè)二維相同處理器陣列,提供了一個(gè)卷積、有限脈沖響應(yīng)(“FIR”)過濾器以及自適應(yīng)有限脈沖響應(yīng)過濾器可被映射到的簡單而高效的平臺(tái)??梢酝ㄟ^向每個(gè)單元下載簡單程序來實(shí)現(xiàn)自適應(yīng)FIR。每個(gè)程序?yàn)榫植砍轭^更新、系數(shù)更新和與最近鄰居通信指定了循環(huán)算術(shù)運(yùn)算處理。還可以使用迭代和自限制算法來在相同平臺(tái)上實(shí)現(xiàn)劃分,劃分可以跨獨(dú)立的單元而被映射。在穩(wěn)態(tài)處理期間,不要求與存儲(chǔ)器之間通信的高帶寬。
該組件體系結(jié)構(gòu)可以與外部控制器或通用數(shù)字信號(hào)處理器相互連接,以便提供靜態(tài)配置或補(bǔ)充所述穩(wěn)態(tài)處理。
在一個(gè)優(yōu)選實(shí)施例中,可以把附加的陣列結(jié)構(gòu)疊加在原始陣列上,附加的陣列結(jié)構(gòu)的構(gòu)件由位于部分和匯合點(diǎn)(convergencepoint)的陣列元件組成,目的在于最大化資源利用效率。
圖1描述了一個(gè)依照本發(fā)明的相同處理器陣列;圖2描述了在所述陣列中的每個(gè)處理器可以與其最近鄰居通信的事實(shí);圖3描述了依照本發(fā)明用于把最近鄰居輸出端口的任意組合加載到邏輯鄰居輸入端口的可編程靜態(tài)模式;圖4描述了依照本發(fā)明的單元的運(yùn)算控制體系結(jié)構(gòu);圖5到11依照本發(fā)明舉例說明了32抽頭的實(shí)FIR到4×8處理器陣列的映射;圖12到圖14舉例說明了依照本發(fā)明的優(yōu)選實(shí)施例的和組合到最終結(jié)果的加速;圖15舉例說明了依照本發(fā)明優(yōu)選實(shí)施例的具有疊加了3×3陣列的9×9抽頭陣列;圖16描述了具有外部微控制器和隨機(jī)訪問配置總線的陣列的實(shí)現(xiàn)方式;圖17舉例說明了用于在所述陣列和外部過程之間正式地交換數(shù)據(jù)流的可擴(kuò)展的方法;圖18描述了在圖17中舉例說明的所述抽頭陣列元件的框圖;和圖19依照本發(fā)明描述了示例性的應(yīng)用。
提議了一種陣列體系結(jié)構(gòu),用于通過提供下列特征來改進(jìn)上述現(xiàn)有技術(shù),所述特征包括新穎的單元間通信模式,其允許單元之間狀態(tài)的進(jìn)展,如增加新數(shù)據(jù);新穎的串行加法模式,其實(shí)現(xiàn)所述積的求和,和由外部設(shè)備所進(jìn)行的單元編程和狀態(tài)和系數(shù)的訪問。
本發(fā)明的基本思想純粹就是有一個(gè)。給出一種用于實(shí)現(xiàn)DSP操作的更高效的并且更靈活的平臺(tái),其是與最近鄰居通信的處理器陣列,并且局部程序控制。參考所示出的附圖下面將要描述在現(xiàn)有技術(shù)基礎(chǔ)上本發(fā)明的優(yōu)勢及細(xì)節(jié)。
如圖1中舉例說明,描述了一個(gè)二維相同處理器陣列(在所描述的示例性實(shí)施例中是4×8網(wǎng)格),每一個(gè)處理器均包含運(yùn)算處理硬件110、控制120、寄存器堆130和通信控制功能140??梢苑謩e編程每個(gè)處理器以便對(duì)局部存儲(chǔ)的數(shù)據(jù)或?qū)碜云渌幚砥鞯妮斎霐?shù)據(jù)執(zhí)行運(yùn)算操作。
理論上,在啟動(dòng)期間靜態(tài)配置所述處理器,并且在穩(wěn)態(tài)操作期間所述處理器對(duì)周期進(jìn)度表操作。該體系結(jié)構(gòu)選擇的優(yōu)勢將使?fàn)顟B(tài)和系數(shù)存儲(chǔ)與運(yùn)算處理協(xié)同定位,目的在于消除與存儲(chǔ)器設(shè)備之間通信的高帶寬。
以下是由本發(fā)明實(shí)現(xiàn)的有益目標(biāo)A.保持一致的單元和陣列結(jié)構(gòu),以便使最優(yōu)化更容易;B.為更大的陣列提供可擴(kuò)展性;C.在可能的程度上,保持本地化的通信,以便最小化功耗并且避免通信瓶頸;D.清楚明了的編程;和E.如果需要,允許靈活開發(fā)映射方法和工具。
圖2描述了所述處理器相互通信體系結(jié)構(gòu)。為了保持編程和路由簡單化,而且為了最小化通信距離,所述通信被限制在最近鄰居之間。這樣,一個(gè)給定的處理器201可以只與其最近鄰居210、220、230和240通信。
如圖3所示,通過把邊界輸入端口當(dāng)作一個(gè)通信目標(biāo)來引用,而為每個(gè)處理器定義與最近鄰居之間的通信。邊界輸入端口只不過是特定的最近鄰居物理輸出端口310到給定處理器的邏輯輸入端口320的映射。然后所述邏輯輸入端口320變?yōu)樵谏鲜鎏幚砥髦杏糜诰植窟\(yùn)算處理的對(duì)象。在一個(gè)優(yōu)選實(shí)施例中,無條件地把每個(gè)處理器輸出端口連線到其最近鄰居的可配置輸入端口。處理器的運(yùn)算過程可以寫入這些物理輸出端口,并且如果要求的話可以編程所述處理器或陣列元件的最近鄰居,以便接受所述數(shù)據(jù)。
依照在圖3中描述的隨機(jī)訪問配置330,靜態(tài)配置步驟可以加載最近鄰居輸出端口310到邏輯輸入端口320的任意組合的映射。所述映射存儲(chǔ)在Bind_inx寄存器340中,這些寄存器作為選擇信號(hào)連線到配置多路復(fù)用器350,這些寄存器實(shí)現(xiàn)了陣列元件或處理器的輸入最近鄰居數(shù)據(jù)到內(nèi)部邏輯輸入端口的實(shí)際連接。
盡管圖3的示例性實(shí)施描述了每個(gè)單元四個(gè)輸出端口,然而在可替換實(shí)施例中,可以實(shí)現(xiàn)每個(gè)單元一個(gè)輸出端口的簡化體系結(jié)構(gòu)以便降低或消除可配置輸入端口的復(fù)雜性。這種措施往往基本上把任務(wù)放在內(nèi)部運(yùn)算程序上來選擇希望其輸出作為輸入的最近鄰居,在這種情況下其往往被連線到物理輸入端口。
換句話說,在圖3中描述的特征允許特定單元到一個(gè)輸入端口的固定映射,這往往在配置模式之下執(zhí)行。在所述簡化方法中,消除該輸入綁定硬件和相應(yīng)的配置步驟,并且運(yùn)行時(shí)間控制選擇要訪問哪個(gè)單元輸出。這種接線與在所述簡化實(shí)施例中是相同的,但簡化了單元設(shè)計(jì)和程序的復(fù)雜性。
當(dāng)共享單元之間的控制器時(shí),在圖3中描述的更復(fù)雜的綁定機(jī)制是很有益的特征,從而產(chǎn)生了單指令多數(shù)據(jù)或“SIMD”機(jī)器。
圖4舉例說明了用于運(yùn)算控制的體系結(jié)構(gòu)。可編程的數(shù)據(jù)路徑(datapath)元件410對(duì)內(nèi)部存儲(chǔ)寄存器420或輸入數(shù)據(jù)端口430的任何組合操作??梢园阉鰯?shù)據(jù)路徑結(jié)果440寫入到選擇的局部寄存器450或一個(gè)所述輸出端口460中。所述數(shù)據(jù)路徑元件410依照一致的操作碼通過像RISC的操作碼控制,所述操作碼編碼操作,源操作數(shù)(srcx)和目的操作數(shù)(dstx)。可以把映射單循環(huán)程序的自適應(yīng)FIR過濾器下載到每個(gè)單元。所述控制器由尋址程序存儲(chǔ)設(shè)備的簡單程序計(jì)數(shù)器組成,作為結(jié)果的操作碼被施加到所述數(shù)據(jù)路徑。在局部寄存器堆中存儲(chǔ)系數(shù)和狀態(tài)。在所描述的實(shí)施例中所述抽頭計(jì)算需要兩次乘法,后面是一系列最近鄰居積的相加,目的在于實(shí)現(xiàn)所述過濾器的求和。此外,通過穿過最近鄰居的寄存器移動(dòng)來實(shí)現(xiàn)沿著所述過濾延遲線狀態(tài)的進(jìn)展。
可以用多個(gè)數(shù)據(jù)路徑元件定義更復(fù)雜的陣列單元,所述多個(gè)數(shù)據(jù)路徑元件由相關(guān)聯(lián)的超長指令字或“VLIW”控制器加以控制??梢允褂美缦裼捎芍T如AR|T設(shè)計(jì)者之類的體系結(jié)構(gòu)合成工具產(chǎn)生的應(yīng)用專用指令處理器(ASIP)來實(shí)現(xiàn)這些復(fù)雜的陣列處理元件。
在本發(fā)明示例性的實(shí)施中,圖5到11舉例說明了32抽頭實(shí)FIR過濾器到4×8處理器陣列的映射,依照如上面詳述的本發(fā)明的體系結(jié)構(gòu)排列并編程這些處理器。如在圖5中所描述,實(shí)現(xiàn)狀態(tài)流和后續(xù)的抽頭計(jì)算,其中在第一步,32個(gè)單元中的每一個(gè)計(jì)算所述過濾器的一個(gè)抽頭,并且在隨后的步驟中(六個(gè)處理器周期,如在圖6-11中描述)求和所述積而得到一個(gè)最終結(jié)果。為便于論述,以下將指定單獨(dú)的陣列元件為陣列的(i,j)元件,其中i給出行,并且j給出列,并且所述陣列左上方元件被定義為所述原點(diǎn),即(1,1)元件。
因此,圖6-11詳述了穿過所述陣列部分乘積的求和,并且示出了在初始求和階段期間最近鄰居通信方案的效率。在圖6描述的步驟中,沿著所述陣列的每個(gè)行,列1-3正在實(shí)現(xiàn)3∶1加法,把結(jié)果存儲(chǔ)在列2中,列4-6正在實(shí)現(xiàn)3∶1加法,把結(jié)果存儲(chǔ)在列5中,以及列7-8正在實(shí)現(xiàn)2∶1的加法,把結(jié)果存儲(chǔ)在列8中。在圖7所描述的步驟中,把在所述陣列的列2、5和8中的每一個(gè)中的行1-2與行3-4的中間和相組合,現(xiàn)在把結(jié)果分別存儲(chǔ)在元件(2,2)、(2,5)和(2,8),以及(3,2)、(3,5)和(3,8)中。在這些步驟期間,充分利用所述處理器硬件和互連網(wǎng)絡(luò)以便把所述積項(xiàng)相組合,從而有效地利用了所述可用資源。
然而通過在圖8中描述的所述步驟,在如下的一個(gè)加法步驟中,必須占用整個(gè)陣列,所述加法步驟涉及三對(duì)陣列元件,在這三對(duì)陣列元件中存儲(chǔ)了在圖7中描述的步驟的結(jié)果。在圖9到10描述的步驟中,包括把這三個(gè)部分和移動(dòng)到鄰近的單元以便用最終3∶1相加(如圖11所示)來組合它們稱為最終結(jié)果的過程中涉及到了所述整個(gè)陣列,把所述最終結(jié)果存儲(chǔ)在陣列元件(3,5)中。
可以看出,為了組合遠(yuǎn)程部分和而使陣列的其余部分空閑是有些低效的。為了便于與資源充分利用相結(jié)合,體系結(jié)構(gòu)增強(qiáng)理論上應(yīng)該保持單陣列結(jié)構(gòu),程序設(shè)計(jì)模型,并且保持可擴(kuò)展。放松對(duì)所述最近鄰居需求以便允許與附加的鄰居通信往往使路由和處理器設(shè)計(jì)復(fù)雜化,并且在更大規(guī)模的陣列中不會(huì)消除近似的問題。從而,在一個(gè)優(yōu)選實(shí)施例中,可以在原始陣列結(jié)構(gòu)上疊加附加的陣列結(jié)構(gòu),構(gòu)件由位于在兩個(gè)3∶1最近鄰居相加之后(在所描述的例子中,即在圖6所描述的階段之后)的部分和匯合點(diǎn)的陣列元件組成。這為部分和聚集提供了顯著的增強(qiáng)。
在圖12中舉例說明了所疊加的陣列。所述疊加的陣列除每個(gè)元件具有最近部分和匯合點(diǎn)作為其最近鄰居以外,均保持與下面的陣列相同的體系結(jié)構(gòu)。所述兩個(gè)陣列之間的交點(diǎn)同樣出現(xiàn)在所述部分和匯合點(diǎn)上。從而在所述優(yōu)選實(shí)施例中,使用所存在的陣列執(zhí)行部分求和的第一階段,其中保持良好的資源利用,并且在所疊加的陣列中實(shí)現(xiàn)部分求和的后面階段,有著相同的最近鄰居通信,但是其節(jié)點(diǎn)在原始的部分和匯合點(diǎn),即在圖12中的列2、5和8。圖12到14舉例說明了和組合到最終結(jié)果的加速。
圖15舉例說明了9×9抽頭陣列,具有一個(gè)疊加的3×3陣列。從而所述疊加的陣列在所述9×9陣列每個(gè)3×3塊的中心具有匯合點(diǎn)。通過增加附加的匯合點(diǎn)陣列可能獲得具有高效的部分乘積組合的更大陣列。高效地加以支持的、作為結(jié)果的陣列大小為9N-1,其中N是陣列層的數(shù)目。從而,對(duì)于N層,可以使用最近鄰居通信高效地組合多達(dá)9N個(gè)單元輸出;即,在不隔離部分和的情況下,這些部分和往往要只被移動(dòng)穿過單元來完成過濾相加樹。
根據(jù)上述例子可以容易地遞推出當(dāng)所述陣列大小變大時(shí)的情況。圖12-14示出了怎樣使用最近鄰居通信來使用另一陣列等級(jí)從而加速抽頭積求和。第二等級(jí)除在×3周期之外與所述原始的下面的等級(jí)相同,并且所述單元與下面的單元相連接,所述下面的單元根據(jù)9個(gè)等級(jí)為0的單元的簇生成部分和。
所需要等級(jí)的數(shù)目取決于所希望處于所述陣列的單元的數(shù)目。如果在正方形中有一個(gè)九抽頭的簇,那么最近鄰居通信就能夠用僅僅一個(gè)陣列等級(jí)來對(duì)所有項(xiàng)進(jìn)行求和,并把結(jié)果累積在中央單元中。
對(duì)于多達(dá)81單元的更大的陣列,人們往往在9單元的簇中組織所述單元,在每個(gè)簇中心上放置等級(jí)1的單元以便接收所述部分和,并且在等級(jí)0和等級(jí)1上把每個(gè)簇連接在一起。在等級(jí)1,所述最近鄰居是所述鄰近簇的輸出(現(xiàn)在包含所述部分和,其往往在沒有等級(jí)1陣列的情況下被另外隔離)。對(duì)于此具有9個(gè)等級(jí)0單元的3×3的超簇,所述結(jié)果將在組合等級(jí)1的部分和之后出現(xiàn)在中央的等級(jí)1的單元。
對(duì)于比81大并且比729(93)小的陣列,人們往往用所述3×3等級(jí)1的單元來裝配81個(gè)等級(jí)0的單元的超簇,于是在所述簇的中央單元上放置等級(jí)2的單元,以便接收等級(jí)1的部分和。所有的三個(gè)等級(jí)被連接在一起,這樣所述等級(jí)2的單元現(xiàn)在可以使用最近鄰居通信從鄰近的超簇來組合部分積,結(jié)果出現(xiàn)在所述中央等級(jí)2的單元。
還可以通過遞歸地應(yīng)用所述超簇來生長所述陣列。當(dāng)然,在某點(diǎn)上,當(dāng)上面的等級(jí)單元在物理上相隔很遠(yuǎn)時(shí),VLSI線路延遲限制成為一個(gè)因素,從而最終限制陣列的擴(kuò)展性。
接下來將描述用于將配置數(shù)據(jù)傳送到陣列元件的方法,以及用于在所述陣列和外部過程之間交換采樣流的方法。在圖16中舉例說明了適用于配置,以及與小陣列的采樣交換的一個(gè)方法。這里總線1610把所有陣列元件與外部控制器1620相連接。所述外部控制器可以使用地址廣播和局部單元譯碼機(jī)制,甚至是類似于RAM的行和列預(yù)譯碼和選擇方法,來選擇用于配置或數(shù)據(jù)交換的單元。該技術(shù)的好處是它很簡單;然而,其用于較大陣列尺寸缺乏可伸展性,并且對(duì)大采樣交換率而言就變?yōu)橥ㄐ牌款i。
圖17舉例說明了用于在所述陣列和外部過程之間高效地交換數(shù)據(jù)流的更加可擴(kuò)展的方法。在陣列層次結(jié)構(gòu)的每個(gè)等級(jí),在所述陣列邊緣的出局I/O端口可以在不使陣列路由和控制復(fù)雜的情況下方便地路由到邊界單元。所述邊界單元或許可以遵循如在所述陣列單元中利用的單個(gè)程序設(shè)計(jì)模型,不過在這里其便于增加任意功能和與所述陣列的連通性。因而,所述任意功能可用于插入過濾之間的操作,諸如判定反饋均衡器的限幅器。此外,所述邊界單元可以在幾乎沒有控制器介入的情況下提供外部流I/O。在一個(gè)優(yōu)選實(shí)施例中,把為靜態(tài)配置目的的圖16中的總線與為穩(wěn)態(tài)通信的圖17中描述的邊界處理器組合在一起,從而支持大多數(shù)或所有的應(yīng)用。
如上所述,在圖18中描述了用于所述抽頭陣列元件的、舉例說明數(shù)據(jù)流的框圖。
最后,在具體應(yīng)用的情景下內(nèi)舉例說明本發(fā)明,圖19描述了多重標(biāo)準(zhǔn)信道譯碼器,其中已經(jīng)對(duì)本發(fā)明的可重構(gòu)的處理器陣列進(jìn)行了定位,用于自適應(yīng)過濾,該處理器陳列起自適應(yīng)過濾器陣列1901的作用。在前端(即數(shù)字前端1902)的數(shù)字過濾器還可以被映射到相同或某個(gè)別的本發(fā)明設(shè)備的優(yōu)化版。可以把FFT(快速傅立葉變換)模塊1903以及FEC(前向糾錯(cuò))模塊1904映射到本發(fā)明的處理陣列。
從而本發(fā)明增強(qiáng)了卷積問題的靈活性而保持簡單程序和通信控制。同樣,可以通過把簡單程序下載到每個(gè)單元來實(shí)現(xiàn)自適應(yīng)的FIR。每個(gè)程序?yàn)榫植砍轭^更新、系數(shù)更新和與最近鄰居通信指定了循環(huán)算術(shù)運(yùn)算處理。在穩(wěn)態(tài)處理期間,不要求與存儲(chǔ)器之間通信的高帶寬。
在一個(gè)附加實(shí)施例中,對(duì)這里描述的處理器陣列可以高效地執(zhí)行牛頓-拉夫森(Newton-Raphson)算法。在所述牛頓-拉夫森算法中,通過迭代過程精化對(duì)函數(shù)值的估計(jì),從而收斂與正確的值。所述算法用于一些復(fù)雜計(jì)算的計(jì)算機(jī)運(yùn)算硬件,所述復(fù)雜算法包括劃分、平方根和對(duì)數(shù)計(jì)算。特別對(duì)于劃分,所述牛頓-拉夫森算法計(jì)算除數(shù)的倒數(shù)。把被除數(shù)乘以所述倒數(shù)來完成商的計(jì)算。在所述算法中第一步是把所述輸入除數(shù)規(guī)格化到該算法正常運(yùn)轉(zhuǎn)的范圍內(nèi),在我們的例子中所述范圍為值1和2之間,以便使得倒數(shù)在1和1/2之間。
此外,用來移動(dòng)數(shù)以便完成規(guī)格化的因數(shù)還必須存儲(chǔ)起來以供為隨后的操作使用。從而所產(chǎn)生的數(shù)目對(duì)由規(guī)格化的數(shù)和該因數(shù)組成,它們一起構(gòu)成該數(shù)目的浮點(diǎn)表示e ss1.0bbbbbbbbbbbbbbbbbbbb其中對(duì)于該浮點(diǎn)數(shù)表示,e是指數(shù),用整數(shù)表示。S是符號(hào),b是任意的二進(jìn)制位值。
可以使用專用規(guī)格化單元來實(shí)現(xiàn)規(guī)格化,所述專用規(guī)格化單元在一個(gè)處理器指令周期內(nèi)生成一個(gè)規(guī)格化的值。這種單元往往給所述陣列體系結(jié)構(gòu)中的每個(gè)處理器單元增加了顯著的復(fù)雜性,因此作為替代定義部分規(guī)格化指令。所述部分規(guī)格化指令允許在所述單元中以完成所述完全規(guī)格化所要求的附加指令周期為代價(jià)用最少的附加硬件來實(shí)現(xiàn)這一功能。對(duì)于那些其絕對(duì)值小于1或大于2的數(shù)目而言,通過按照要求進(jìn)行左移或右移,就能夠使所述輸入除數(shù)介于1和2范圍之中。根本不必對(duì)范圍在1和2之內(nèi)的任何數(shù)目作任何修改,原因在于它們已經(jīng)在所希望的范圍內(nèi)之內(nèi)了。
上述移動(dòng)操作處于一個(gè)或多個(gè)移位寄存器,其中每個(gè)操作移動(dòng)被限制于一個(gè)比特位置。要注意的是,可以在單個(gè)單元上執(zhí)行每個(gè)操作,以致所述單元只需要很少智能或不需要任何高深的智能。作為替代,所述單元只對(duì)小于或等于1的數(shù)目左移一個(gè)位置,對(duì)大于2的數(shù)目右移一個(gè)位置,并且使在1和2之間的未改變的任何數(shù)目保持不動(dòng)。
舉例來說,我們具有輸入值0.125,其應(yīng)該被規(guī)格化到為1*2-3。使用上述的部分規(guī)格化,把所述除數(shù)規(guī)格化在2個(gè)部分規(guī)格化指令內(nèi)。
存儲(chǔ)的非規(guī)格化的0b000.0010000000000000000001遍規(guī)格化0b000.0100000000000000000002遍規(guī)格化0b000.1000000000000000000002遍規(guī)格化0b001.000000000000000000000規(guī)格化的尾數(shù)0b001.000000000000000000000指數(shù)(-3)0b 111101被期望->0b111101作為分解該規(guī)格化程序到上述原始步驟的結(jié)果,所述總體算法不必關(guān)注對(duì)于要規(guī)格化的任何特定數(shù)目要求移動(dòng)多少次。作為替代,通過任何潛在的輸入所要求的最大迭代次數(shù)來饋送要加以規(guī)格化的任何數(shù)。對(duì)于那些要求較少移動(dòng)的數(shù)目,其往往在不被移動(dòng)的情況下簡單地通過下次迭代來饋送。這是因?yàn)樵诎阉鼈円苿?dòng)次數(shù)足夠多多能夠使其位于所要求的范圍之后,它們往往已經(jīng)在所要求的邊界為1和2的范圍之間了,并且任何更進(jìn)一步的基本移位過程迭代會(huì)導(dǎo)致沒有任何移動(dòng)。因此,所述算法自限制的這一事實(shí)允許每次迭代在幾乎不花費(fèi)智能的情況下就能夠在單個(gè)單元上加以執(zhí)行了。
一旦如所描述部分地規(guī)格化該數(shù)目,就達(dá)到了值Xnorm。該值Xnorm按照如下用于牛頓-拉夫森算法中Yn+1=2yn-yn2Xnorm其中Y0最初設(shè)置成一個(gè)隨機(jī)的推測值,比如說5。一旦所述牛頓-拉夫森算法收斂,就可以應(yīng)用一個(gè)適當(dāng)?shù)囊驍?shù)來考慮在計(jì)算Xnorm的過程中發(fā)生的移動(dòng)。
例如可以根據(jù)圖20理解到可以在獨(dú)立的一個(gè)單元上執(zhí)行所述算法的每次迭代,以致實(shí)現(xiàn)速度和簡化。通過利用自限制算法,所述單元不必具有確定對(duì)于任何特定的數(shù)目是否按照要求的數(shù)目來移動(dòng)的任何智能,對(duì)于任何特定的數(shù)目不管所要求移動(dòng)的次數(shù)是小還是大,都可以同等地操作。這種屬性允許更簡單地制造并更經(jīng)濟(jì)地生產(chǎn)所述單元。
按要求,過濾器大小或者要映射的過濾器的大小在本發(fā)明中可擴(kuò)展到大多數(shù)信道解碼應(yīng)用所要求的值之外。此外,在不干擾所述陣列結(jié)構(gòu)或不使單元和路由選擇優(yōu)化復(fù)雜化的情況下,所述組件體系結(jié)構(gòu)提供了無過濾功能、控制和外部I/O的插入。
這種結(jié)構(gòu)用于容納變化多的信號(hào)處理功能通過多單元映射-的靈活性性,還導(dǎo)致在相同陣列上鏈鎖多功能的可能性。在這種模式中,映射到單元組的功能可以使用由所述體系結(jié)構(gòu)提供的最近鄰居通信模式來交換數(shù)據(jù)。因此可以把完全的信號(hào)處理鏈都映射到這種體系結(jié)構(gòu)。
雖然上文描述了本發(fā)明的優(yōu)選實(shí)施例,應(yīng)當(dāng)理解,那些本領(lǐng)域內(nèi)普通技術(shù)人員可以做出各種修改和添加。這種添加和修改旨在由以下權(quán)利要求所涵蓋。
權(quán)利要求
1.一種用于實(shí)現(xiàn)數(shù)字信號(hào)處理操作的設(shè)備,包括二維的處理單元陣列;其中每個(gè)單元與其最近鄰居通信并且實(shí)現(xiàn)一個(gè)迭代算法的至少一次迭代,其中所述迭代算法是自限制的。
2.如權(quán)利要求1所述的設(shè)備,其中單元間的通信被限制在所述最近鄰居。
3.如權(quán)利要求2所述的設(shè)備,其中所述最近鄰居通信是依照可編程的靜態(tài)模式。
4.如權(quán)利要求2所述的設(shè)備,其中所述迭代算法實(shí)現(xiàn)劃分。
5.如權(quán)利要求4所述的設(shè)備,其中每個(gè)單元具有四個(gè)輸出端口。
6.如權(quán)利要求5所述的設(shè)備,其中每個(gè)單元把來自其每個(gè)最近鄰居的輸出端口、內(nèi)部存儲(chǔ)的數(shù)據(jù)或其任意組合中的一個(gè)作為輸入。
7.如權(quán)利要求6所述的設(shè)備,其中每個(gè)處理單元具有用于存儲(chǔ)把最近鄰居輸出端口的各種組合映射到其邏輯輸入端口的映射的存儲(chǔ)器。
8.如權(quán)利要求1所述的設(shè)備,其中所述存儲(chǔ)器包括寄存器。
9.如權(quán)利要求8所述的設(shè)備,其中每個(gè)單元實(shí)現(xiàn)一次牛頓-拉夫森算法迭代。
10.如權(quán)利要求9所述的設(shè)備,其中所述運(yùn)算控制體系結(jié)構(gòu)包括局部控制器;內(nèi)部存儲(chǔ)寄存器;和數(shù)據(jù)路徑元件。
11.如權(quán)利要求10所述的設(shè)備,其中所述數(shù)據(jù)路徑元件至少可以實(shí)現(xiàn)加、乘和移動(dòng)操作。
12.如權(quán)利要求11所述的設(shè)備,其中由所述局部控制器給所述數(shù)據(jù)路徑元件提供像操作碼之類的RISC。
13.如權(quán)利要求9所述的設(shè)備,其中所述運(yùn)算控制體系結(jié)構(gòu)包括局部VLIW控制器;內(nèi)部存儲(chǔ)寄存器;和多個(gè)數(shù)據(jù)路徑元件。
14.如權(quán)利要求13所述的設(shè)備,其中所述數(shù)據(jù)路徑元件均至少可以實(shí)現(xiàn)加、乘和移動(dòng)操作。
15.如權(quán)利要求13所述的設(shè)備,其中所述處理單元作為ASIP加以實(shí)現(xiàn)。
16.如權(quán)利要求15所述的設(shè)備,其中所述ASIP由體系結(jié)構(gòu)合成工具產(chǎn)生。
17.如權(quán)利要求9所述的設(shè)備,還包括一個(gè)或多個(gè)疊加的、更小的二維陣列,每個(gè)這種疊加的陣列都與所述一層較低的陣列在指定匯合點(diǎn)通信。
18.如權(quán)利要求13所述的設(shè)備,還包括一個(gè)或多個(gè)疊加的、更小的二維陣列,每個(gè)這種疊加的陣列都與所述一層較低的陣列在指定匯合點(diǎn)通信。
19.如權(quán)利要求17所述的設(shè)備,還包括可編程的邊界單元,該邊界單元連接于所有陣列層次結(jié)構(gòu)中可利用的端口,并且使與外部過程之間的通信方便進(jìn)行。
20.如權(quán)利要求19所述的設(shè)備,還包括可編程的邊界單元,該邊界單元連接于所有陣列層次結(jié)構(gòu)中可利用的端口,并且使與外部過程之間的通信方便進(jìn)行。
21.一種高效地執(zhí)行劃分算法的方法,所述方法包括把所述劃分算法分成多次自限制算法的迭代,所述多次迭代的每次迭代可以在單元矩陣的單個(gè)單元上執(zhí)行;以及執(zhí)行相同次數(shù)的迭代,而不管一個(gè)數(shù)目是否要被劃分。
22.如權(quán)利要求21所述的方法,其中在單元矩陣的獨(dú)立單元上執(zhí)行每次迭代。
23.如權(quán)利要求22所述的方法,每次迭代包括一個(gè)數(shù)目在預(yù)先確定的范圍之外的情況下把該數(shù)目向右或左移,并且該數(shù)目在所述預(yù)先確定的范圍之內(nèi)的情況下,不移動(dòng)所述數(shù)目。
24.如權(quán)利要求3所述的設(shè)備,其中利用所述迭代算法來實(shí)現(xiàn)平方根函數(shù)。
25.如權(quán)利要求3所述的設(shè)備,其中單元子集均實(shí)現(xiàn)不同的算法,并且其中通過把多個(gè)子集鏈鎖在一起來實(shí)現(xiàn)一個(gè)完全的信號(hào)鏈。
全文摘要
呈送了一種用于數(shù)字信號(hào)處理的組件體系結(jié)構(gòu)。其中的每個(gè)處理器均與其最近鄰居相通信的一個(gè)可配置的二維相同處理器陣列,提供了一個(gè)卷積、有限脈沖響應(yīng)(“FIR”)過濾器以及自適應(yīng)有限脈沖響應(yīng)過濾器可被映射到的簡單而高效的平臺(tái)??梢酝ㄟ^向每個(gè)單元下載簡單程序來實(shí)現(xiàn)自適應(yīng)FIR。每個(gè)程序?yàn)榫植砍轭^更新、系數(shù)更新和與最近鄰居通信指定了循環(huán)運(yùn)算處理。在穩(wěn)態(tài)處理期間,不要求與存儲(chǔ)器之間通信的高帶寬。該組件體系結(jié)構(gòu)可以與外部控制器或通用數(shù)字信號(hào)處理器相互連接,以便提供靜態(tài)配置或補(bǔ)充所述穩(wěn)態(tài)處理。
文檔編號(hào)G06F17/15GK1729464SQ03815225
公開日2006年2月1日 申請(qǐng)日期2003年6月5日 優(yōu)先權(quán)日2002年6月28日
發(fā)明者G·博恩斯, O·蓋伊-貝利爾 申請(qǐng)人:皇家飛利浦電子股份有限公司