專利名稱:一種基于cordic單元的陣列式可重構(gòu)dsp引擎芯片結(jié)構(gòu)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種以CORDIC算法為核心的粗顆粒度基本單元組成的可重構(gòu)(硬件可編程)陣列式芯片內(nèi)部結(jié)構(gòu),該結(jié)構(gòu)主要應用于DSP領(lǐng)域。通過對芯片內(nèi)的硬件可重構(gòu)資源的配置,可以高效地執(zhí)行絕大多數(shù)DSP算法中的核心環(huán)節(jié),可以用做DSP系統(tǒng)中的加速引擎。
背景技術(shù):
CORDIC(COordinate Rotation DIgital Computing)又稱為坐標旋轉(zhuǎn)數(shù)字計算方法,是用于計算廣義矢量旋轉(zhuǎn)的一種迭代方法。通過設置CORDIC單元中為數(shù)不多的幾個參數(shù),它可以用簡單的“移位——加”迭代實現(xiàn)多種基本函數(shù)和運算,如三角函數(shù)、反三角函數(shù)、雙曲函數(shù)、反雙曲函數(shù)、對數(shù)運算、指數(shù)運算、開方運算、乘法運算、除法運算,這些特性表明CORDIC算法本身具有很好的可重構(gòu)性(硬件可編程性)。這些函數(shù)和運算中有很多是用其他方法不容易實現(xiàn)的,也是一些DSP算法中經(jīng)常遇到的。以往的可重構(gòu)器件分為細顆粒度和粗顆粒度兩大類。我們對現(xiàn)有的粗顆粒度陣列芯片的總結(jié)發(fā)現(xiàn),他們的數(shù)據(jù)字寬都是固定的,只能適應數(shù)據(jù)字寬相同的一類應用。我們認為如果芯片能夠具有數(shù)據(jù)字寬可重構(gòu)的功能,將會大大增強芯片的適應性,使芯片資源浪費少,形成功能模塊的性能較高,功耗較低,而且配置數(shù)據(jù)相比之下要少的多,有利于動態(tài)應用。
發(fā)明內(nèi)容
為了解決已有的粗顆粒度DSP陣列芯片數(shù)據(jù)字寬固定的問題,提供一種能通過把相鄰單元的基本運算部件重構(gòu)以改變數(shù)據(jù)字寬的陣列式可重構(gòu)DSP芯片。本發(fā)明的技術(shù)方案如下一種基于CORDIC單元的陣列式可重構(gòu)DSP引擎芯片結(jié)構(gòu),排成陣列的若干個可重構(gòu)處理單元1之間設置有互連總線2,縱向的互連總線2-1與橫向的互連總線2-2通過可重構(gòu)開關(guān)網(wǎng)絡3互相連接,在同一縱向排列方向上的每個相鄰的可重構(gòu)處理單元1通過基本單元數(shù)據(jù)線4縱向相連接,基本單元數(shù)據(jù)線4與橫向的互連總線2-2通過可重構(gòu)開關(guān)網(wǎng)絡3相連接,可重構(gòu)處理單元1是cordic算法的若干級流水結(jié)構(gòu),橫向相鄰的可重構(gòu)處理單元1的同一級流水中的加法器與相對應位置的加法器、移位器與相對應位置的移位器、累加器與相對應位置的累加器、寄存器與相對應位置的寄存器之間分別通過包括有控制開關(guān)5的互連線7相連接。本發(fā)明的DSP引擎芯片,為實現(xiàn)相鄰單元之間的可重構(gòu),主要在相鄰單元中處于同一流水級的兩個運算部件如移位器、加法器、累加器、寄存器之間建立可重構(gòu)通路,當該通路連通時兩個移位器、加法器、累加器、寄存器可以組成一個數(shù)據(jù)字寬為原來2倍的功能模塊。我們?yōu)閱卧械囊莆黄?、加法器、累加器和寄存器增加了可重?gòu)功能,使橫向相鄰的兩個單元之間同一級流水的移位器、加法器和寄存器通過配置,可以連接成為字寬為原來2倍的相應功能單元。該可重構(gòu)功能讓我們可以實現(xiàn)將版圖位置相鄰的4/9/16個8-bit CORDIC單元組成一個16/24/32-bit的CORDIC單元。由于本發(fā)明的DSP引擎芯片的移位器、加法器、寄存器和累加器的數(shù)據(jù)字寬都能通過重構(gòu)發(fā)生變化,因此芯片的通用性和適應性大大增強,使芯片資源浪費少,形成功能模塊的性能高、功耗低,有利于動態(tài)應用。使用COROIC算法的可重構(gòu)處理單元1自身具有很強的可重構(gòu)性,能夠高效地實現(xiàn)相當廣泛的DSP類算法,而且結(jié)構(gòu)簡單規(guī)則,易于實現(xiàn)模塊化,非常適合作為可重構(gòu)芯片的核心單元。本發(fā)明設計新穎、工作可靠,具有較大的推廣價值。
圖1是本發(fā)明的結(jié)構(gòu)示意圖,圖2是本發(fā)明實施方式二中可重構(gòu)開關(guān)網(wǎng)絡3的結(jié)構(gòu)示意圖,圖3是實施方式一中可重構(gòu)處理單元1的結(jié)構(gòu)示意圖,圖4是實施方式一中移位器重構(gòu)的示意圖,圖5是加法器重構(gòu)的示意圖,圖6是相鄰可重構(gòu)處理單元1中第一級流水的連接結(jié)構(gòu)示意圖。
具體實施例方式具體實施方式
一下面結(jié)合圖1、圖3至圖6具體說明本實施方式。排成陣列的若干個可重構(gòu)處理單元1之間設置有互連總線2,縱向的互連總線2-1與橫向的互連總線2-2通過可重構(gòu)開關(guān)網(wǎng)絡3互相連接,在同一縱向排列方向上的每個相鄰的可重構(gòu)處理單元1通過基本單元數(shù)據(jù)線4縱向相連接,基本單元數(shù)據(jù)線4與橫向的互連總線2-2通過可重構(gòu)開關(guān)網(wǎng)絡3相連接,可重構(gòu)處理單元1是cordic算法的若干級流水結(jié)構(gòu),橫向相鄰的可重構(gòu)處理單元1的同一級流水中的加法器與相對應位置的加法器、移位器與相對應位置的移位器、累加器與相對應位置的累加器、寄存器與相對應位置的寄存器之間分別通過包括有控制開關(guān)5的互連線7相連接。
如圖4所示,分屬兩個相鄰可重構(gòu)處理單元1中的移位器1-1-1和移位器1-1-2,都是右移三位的移位器,當想得到較長數(shù)據(jù)字寬時,通過指令讓控制開關(guān)5接通,互連線7就成為通路,使移位器1-1-1和移位器1-1-2就合成為一數(shù)據(jù)字寬為原來2倍的移位器。加法器也能通過相同方法進行重構(gòu),加長數(shù)據(jù)字寬。如圖5所示,分屬兩個相鄰可重構(gòu)處理單元1中相同位置的超前進位加法器1-2-1和超前進位加法器1-2-2,通過控制開關(guān)5的接通,就能得到數(shù)據(jù)字寬為原來2倍的一個超前進位加法器,從而實現(xiàn)重構(gòu)功能。累加器和寄存器也能通過相同方法進行重構(gòu)??刂崎_關(guān)5選用場效應管來實現(xiàn)。圖6中示出橫向相鄰的兩個可重構(gòu)處理單元1中第一級流水中相同位置的移位器、加法器、寄存器和累加器的連接結(jié)構(gòu)示意圖,加法器1-2-1和加法器1-2-2之間,加法器1-3-1和加法器1-3-2之間,加法器1-4-1和加法器1-4-2之間,寄存器1-5-1和寄存器1-5-2之間、寄存器1-6-1和寄存器1-6-2之間,寄存器1-7-1和寄存器1-7-2之間,移位器1-8-1和移位器1-8-2之間、移位器1-9-1和移位器1-9-2之間,標志寄存器1-10-1和標志寄存器1-10-2之間都通過包括有開關(guān)5的互連線7相連接。
如圖3和圖6所示,芯片的工作過程主要分為兩個階段重構(gòu)階段和工作階段。在重構(gòu)階段,上面結(jié)構(gòu)中帶有可重構(gòu)功能的部分,即圖中圓圈代表的可預置存儲單元,被寫入預置的配置數(shù)據(jù)。此時該芯片的功能已經(jīng)被固定下來,相當于一個只能完成某一特定功能的硬件電路,隨時可以加載被處理數(shù)據(jù)開始工作。進入工作階段以后,每一個時鐘節(jié)拍有一組數(shù)據(jù)從單元的頂部進入處理引擎,以流水的方式逐級向下運行,到達算法結(jié)束的位置以后通過互連總線連接到某一芯片端口。
下面以計算某一角度α的正弦和余弦為例說明8位CORDIC單元內(nèi)部工作過程。單元入口有三路數(shù)據(jù)輸入(X0,Y0,Z0),初始值取(1、0、α),前十級流水的移位序列為(0,0,1,2,3,4,5,6,7,8),3級模校正流水的移位序列(2,5,8)。X0進入第一級流水后分為兩路,一路直接作為第一個加法器的被加數(shù),另一路經(jīng)過“右移0位”后作為第二個加發(fā)器的加數(shù);Y0進入第一級流水后分為三路,一路直接作為第二個加法器的被加數(shù),第二路經(jīng)過“右移0位”后作為第一個加發(fā)器的加數(shù),第三路送入符號判斷模塊;Z0進入第一級后分為兩路,一路送入加發(fā)器與±arctan(2-0)做和,另一路則進入符號判斷模塊。符號判斷模塊根據(jù)Zi的正負產(chǎn)生一個符號位分別送入三路加法器,控制他們做和或做差。三個加法器產(chǎn)生的結(jié)果在下一個時鐘到來時存入該級流水的寄存器中,供第二級流水操作使用。以此類推,直到第十級,各級之間操作的不同點在于移位位數(shù)(如移位序列描述的)。從第十一級到第十三級流水為模校正操作,該操作中X0分為兩路,一路直接作為第一個加法器的被加數(shù),另一路經(jīng)過右移后作為這個加法器的加數(shù);Y0與X0的模校正操作相同;Z0無操作,只做三級寄存。三級模校正操作的移位序列為(2,5,8),各級加法器的加減操作由一個預置存儲位控制。最終第十三級流水寄存器中的數(shù)據(jù)就是本次計算的結(jié)果X13=Cosα,Y13=Sinα,Z13=0。這兩個正弦和余弦值可以通過互連總線輸出或傳給其他功能模塊使用。
具體實施方式
二下面結(jié)合圖1和圖2具體說明本實施方式。本實施方式與實施方式一的不同點是所述互連總線2為64-bit互連總線,可重構(gòu)開關(guān)網(wǎng)絡3由若干個開關(guān)管3-1組成,開關(guān)管3-1設置在縱向的64根互連總線2-1與橫向的64根互連總線2-2的交叉點處,開關(guān)管3-1的兩個主工作極分別連接縱向的互連總線2-1和橫向的互連總線2-2,開關(guān)管3-1的控制極連接控制開關(guān)管的預置存儲器3-2。本實施方式工作時,通過編程在預置存器3-2中設定開關(guān)管3-1是連通還是關(guān)斷,從而決定本芯片的構(gòu)成方式。開關(guān)管3-1既可以選用CMOS管也可以選用NMOS管。
權(quán)利要求
1.一種基于CORDIC單元的陣列式可重構(gòu)DSP引擎芯片結(jié)構(gòu),排成陣列的若干個可重構(gòu)處理單元(1)之間設置有互連總線(2),縱向的互連總線(2-1)與橫向的互連總線(2-2)通過可重構(gòu)開關(guān)網(wǎng)絡(3)互相連接,在同一縱向排列方向的每個相鄰的可重構(gòu)處理單元(1)通過基本單元數(shù)據(jù)線(4)縱向相連接,基本單元數(shù)據(jù)線(4)與橫向的互連總線(2-2)通過可重構(gòu)開關(guān)網(wǎng)絡(3)相連接,其特征是可重構(gòu)處理單元(1)是cordic算法的若干級流水結(jié)構(gòu),橫向相鄰的可重構(gòu)處理單元(1)的同一級流水中的加法器與相對應位置的加法器、移位器與相對應位置的移位器、累加器與相對應位置的累加器、寄存器與相對應位置的寄存器之間分別通過包括有控制開關(guān)(5)的互連線(7)相連接。
2.根據(jù)權(quán)利要求1所述的一種基于CORDIC單元的陣列式可重構(gòu)DSP引擎芯片結(jié)構(gòu),其特征是所述互連總線(2)為64-bit互連總線,可重構(gòu)開關(guān)網(wǎng)絡(3)由若干個開關(guān)管(3-1)組成,開關(guān)管(3-1)設置在縱向的64根互連總線(2-1)與橫向的64根互連總線(2-2)的交叉點處,開關(guān)管(3-1)的兩個主工作極分別連接縱向的互連總線(2-1)和橫向的互連總線(2-2),開關(guān)管(3-1)的控制極連接控制開關(guān)管的預置存儲器(3-2)。
全文摘要
本發(fā)明公開一種以CORDIC算法為核心的粗顆粒度基本單元組成的可重構(gòu)(硬件可編程)陣列式芯片內(nèi)部結(jié)構(gòu)。排成陣列的若干個可重構(gòu)處理單元(1)之間設置有互連總線(2),縱向的互連總線(2-1)與橫向的互連總線(2-2)通過可重構(gòu)開關(guān)網(wǎng)絡(3)互相連接,(1)通過基本單元數(shù)據(jù)線(4)縱向相連接,(4)與橫向的(2)通過(3)相連接,橫向相鄰的(1)的同一級流水中的加法器與相對應位置的加法器、移位器與相對應位置的移位器、累加器與累加器、寄存器與相對應位置的寄存器之間分別通過包括有控制開關(guān)(5)的互連線(7)相連接。使用COROIC算法的(1)自身具有很強的可重構(gòu)性,能夠高效地實現(xiàn)相當廣泛的DSP類算法,而且結(jié)構(gòu)簡單規(guī)則,易于實現(xiàn)模塊化,非常適合作為可重構(gòu)芯片的核心單元。
文檔編號G06F7/48GK1564125SQ200410013670
公開日2005年1月12日 申請日期2004年4月9日 優(yōu)先權(quán)日2004年4月9日
發(fā)明者楊宇, 毛志剛 申請人:哈爾濱工業(yè)大學