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