專利名稱:一種用于可重構(gòu)計(jì)算陣列的數(shù)據(jù)耦合器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種用于可重構(gòu)計(jì)算陣列的數(shù)據(jù)耦合器。
背景技術(shù):
目前的通用處理器,DSP等多采用指令驅(qū)動(dòng),處理器工作時(shí)一般要經(jīng)過取指令,譯碼,執(zhí)行,返回結(jié)果等階段。對(duì)于計(jì)算密集型任務(wù),數(shù)據(jù)吞吐量一般都很大,因此采用數(shù)據(jù)流驅(qū)動(dòng)計(jì)算部件完成計(jì)算任務(wù)是一種比較合適的方法。數(shù)據(jù)通過一定的組織,以一定的模式通過處理器的數(shù)據(jù)通路即可以被處理,而指令集處理器要執(zhí)行多條指令才能從存儲(chǔ)器取得相應(yīng)數(shù)據(jù)并進(jìn)行處理,相比之下,數(shù)據(jù)驅(qū)動(dòng)方式在計(jì)算密集型任務(wù)方面,具有一定優(yōu)勢(shì),可以大大提高吞吐率。
數(shù)據(jù)驅(qū)動(dòng)方式以前多出現(xiàn)在專用集成電路中。但是,專用集成電路靈活性不足,一個(gè)電路一般只能實(shí)現(xiàn)固定幾種算法,對(duì)于數(shù)據(jù)處理也就只有幾種有限的模式。對(duì)于可重構(gòu)硬件電路,由于電路實(shí)現(xiàn)功能可變,因此需要對(duì)數(shù)據(jù)組織模式也進(jìn)行相應(yīng)改變,通過不同尋址模式的支持,能夠快速從存儲(chǔ)器取得數(shù)據(jù)提供給可重構(gòu)硬件處理,從而既達(dá)到很高的數(shù)據(jù)吞吐率,又能保證硬件的靈活性。基于可重構(gòu)計(jì)算硬件的特點(diǎn),傳統(tǒng)的固定數(shù)據(jù)產(chǎn)生模式缺乏靈活性。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種適用于數(shù)據(jù)驅(qū)動(dòng)的計(jì)算密集型且具有較高靈活性的可重構(gòu)計(jì)算陣列的數(shù)據(jù)耦合器。
本發(fā)明的用于可重構(gòu)計(jì)算陣列的數(shù)據(jù)耦合器包括用于設(shè)置和輸出數(shù)據(jù)耦合器工作狀態(tài)的數(shù)據(jù)耦合器控制單元,按照尋址模式產(chǎn)生地址的地址生成器,用于存儲(chǔ)計(jì)算過程中的輸入輸出數(shù)據(jù)的計(jì)算高速緩存,總線接口單元,控制寄存器,輸入端口,輸出端口和內(nèi)部總線,總線接口單元的一端與外部總線相連接,另一端與內(nèi)部總線相連,數(shù)據(jù)耦合器控制單元的一端與外部總線連接,另一端與控制寄存器連接,地址生成器與內(nèi)部總線以及計(jì)算高速緩存的一個(gè)輸入端相連接,計(jì)算高速緩存與內(nèi)部總線連接,并有兩組傳輸端口,其中一組傳輸端口與內(nèi)部總線相連接,另一組傳輸端口的輸入端與輸入端口的輸出端相連,輸出端與輸出端口的輸入端相連接,輸入端口和輸出端口分別和內(nèi)部總線連接,輸入端口的輸入端和可重構(gòu)陣列的輸出端相連接,輸出端口的輸出端和可重構(gòu)陣列的輸入端相連接。
本發(fā)明的用于可重構(gòu)計(jì)算陣列的數(shù)據(jù)耦合器工作流程如下外部控制器根據(jù)本次計(jì)算的特點(diǎn)選擇相應(yīng)的數(shù)據(jù)尋址模式,對(duì)地址生成器進(jìn)行參數(shù)配置,并將要處理的數(shù)據(jù)按照一定規(guī)則寫入到耦合器的計(jì)算高速緩存中。地址生成器和計(jì)算高速緩存的配置數(shù)據(jù)都是經(jīng)過總線接口單元傳輸?shù)綌?shù)據(jù)耦合器內(nèi)部總線,根據(jù)地址線的地址,將數(shù)據(jù)分別送至地址參數(shù)緩存和計(jì)算數(shù)據(jù)緩存。啟動(dòng)后,地址生成器開始按照預(yù)定的模式產(chǎn)生訪問計(jì)算高速緩存的地址,根據(jù)產(chǎn)生的地址和讀寫控制信號(hào),數(shù)據(jù)耦合器可以通過輸入和輸出端口同可重構(gòu)陣列進(jìn)行數(shù)據(jù)傳輸。當(dāng)前工作結(jié)束后,數(shù)據(jù)耦合器會(huì)向外部控制器發(fā)送相應(yīng)的通知信號(hào),外部控制器接收到數(shù)據(jù)耦合器的信號(hào)后,會(huì)通過設(shè)置在數(shù)據(jù)耦合器的控制單元來停止它的工作或者開始新一輪的工作。
本發(fā)明具有以下有益技術(shù)效果1.支持多種數(shù)據(jù)尋址模式。地址生成器支持線性尋址模式和復(fù)雜非線性尋址模式,再輔以位反轉(zhuǎn)機(jī)構(gòu)和循環(huán)控制機(jī)構(gòu),既保證了通用性靈活性也兼顧特定應(yīng)用的專用性能。該地址生成器在具備高性能的同時(shí)也為可重構(gòu)陣列的應(yīng)用擴(kuò)展提供了余地。
2.能夠良好的協(xié)調(diào)可重構(gòu)陣列和其它外圍單元之間的數(shù)據(jù)傳輸,同時(shí)支持同步和異步傳輸模式。在異步通信模式下,耦合器設(shè)置有專門的通信接口,通過數(shù)據(jù)擴(kuò)展單元,以雙軌編碼方式實(shí)現(xiàn)與異步可重構(gòu)陣列的通信,保證了傳輸?shù)目煽啃浴?br>
3.這個(gè)部件的邏輯并不復(fù)雜,整個(gè)邏輯面積很小。
4.良好的擴(kuò)展性能,可伸縮性強(qiáng)。耦合器地址空間中留有足夠的擴(kuò)展資源,使得一個(gè)陣列最多可以支持擁有16個(gè)數(shù)據(jù)耦合器。
5.良好的通用性。所述數(shù)據(jù)耦合器不僅僅適用于可重構(gòu)陣列處理器,還可以用于其它的專用數(shù)據(jù)處理電路。
圖1是本發(fā)明的用于可重構(gòu)計(jì)算陣列的數(shù)據(jù)耦合器的構(gòu)成示意框圖;圖2是地址生成器的構(gòu)成圖;圖3是數(shù)據(jù)耦合器輸入端口構(gòu)成圖;
圖4是數(shù)據(jù)耦合器輸出端口構(gòu)成圖;圖5是本發(fā)明的數(shù)據(jù)耦合器接口信號(hào)圖;圖6是本發(fā)明的數(shù)據(jù)耦合器工作流程圖。
具體實(shí)施例方式
下面結(jié)合附圖詳細(xì)說明本發(fā)明。
參照?qǐng)D1,本發(fā)明的用于可重構(gòu)計(jì)算陣列的數(shù)據(jù)耦合器包括用于設(shè)置和輸出數(shù)據(jù)耦合器工作狀態(tài)的數(shù)據(jù)耦合器控制單元1,按照尋址模式產(chǎn)生地址的地址生成器2,用于存儲(chǔ)計(jì)算過程中的輸入輸出數(shù)據(jù)的計(jì)算高速緩存3,總線接口單元4,控制寄存器5,輸入端口6,輸出端口7和內(nèi)部總線8,總線接口單元4的一端與外部總線相連接,另一端與內(nèi)部總線8相連,數(shù)據(jù)耦合器控制單元1的一端與外部總線連接,另一端與控制寄存器5連接,地址生成器2與內(nèi)部總線8以及計(jì)算高速緩存3的一個(gè)輸入端相連接,根據(jù)內(nèi)部總線傳入的地址參數(shù),地址生成器2會(huì)生成一系列的地址來訪問計(jì)算高速緩存3,計(jì)算高速緩存3與內(nèi)部總線8連接,并有兩組傳輸端口,其中一組傳輸端口與內(nèi)部總線8相連接,另一組傳輸端口的輸入端與輸入端口6的輸出端相連,輸出端與輸出端口7的輸入端相連接,輸入端口6和輸出端口7分別和內(nèi)部總線8連接,輸入端口6的輸入端和可重構(gòu)陣列的輸出端相連接,輸出端口7的輸出端和可重構(gòu)陣列的輸入端相連接。
圖2所示是地址生成器。地址生成器由地址參數(shù)高速緩存9、地址計(jì)算單元10、協(xié)處理單元11、計(jì)數(shù)器12和計(jì)數(shù)允許信號(hào)產(chǎn)生邏輯13組成。圖中,RST是協(xié)處理單元11對(duì)地址計(jì)算單元10的重置信號(hào);AE是地址計(jì)算單元10的計(jì)算允許信號(hào),同時(shí)也作為數(shù)據(jù)耦合器輸入/輸出端口重置信號(hào);CE是地址計(jì)算單元10計(jì)算完一個(gè)地址參數(shù)后發(fā)出的指示信號(hào);PWE是錯(cuò)誤地址參數(shù)指示信號(hào),當(dāng)?shù)刂酚?jì)算單元10遇到的地址參數(shù)是結(jié)束參數(shù)時(shí),那么會(huì)發(fā)出EOP信號(hào)。當(dāng)計(jì)數(shù)器12越界時(shí)會(huì)發(fā)出OF有效信號(hào),計(jì)數(shù)器12存放的是地址參數(shù)緩存9的指針,通過這個(gè)指針獲得地址計(jì)算單元10的下一次計(jì)算所需要的地址參數(shù),根據(jù)計(jì)數(shù)器12從地址計(jì)算緩存9中取出的地址參數(shù)將送往地址計(jì)算單元10。
圖3所示是數(shù)據(jù)耦合器輸入端口。輸入端口由64位有效位寄存器14,64位有效位備份寄存器15,定時(shí)器16,有效位檢查單元17和比較邏輯18組成。輸入端口負(fù)責(zé)將計(jì)算數(shù)據(jù)從可重構(gòu)陣列中讀出,輸往計(jì)算高速緩存。輸入端口同時(shí)支持同步和異步工作模式,在異步工作模式下,要將陣列按雙軌編碼方式擴(kuò)展的2位數(shù)據(jù)還原為1位有效數(shù)據(jù),然后根據(jù)地址生成器生成的地址,將計(jì)算結(jié)果寫回計(jì)算數(shù)據(jù)緩存中。如果同步模式,則不進(jìn)行數(shù)據(jù)格式轉(zhuǎn)換。
同步工作模式下,輸入數(shù)據(jù)直接輸入到計(jì)算高速緩存;在異步工作模式下,輸入數(shù)據(jù)需要按照雙軌編碼方式處理。其中有效位寄存器14和有效位備份寄存器15用于標(biāo)記每次輸出數(shù)據(jù)中有效的位,該位為1表示數(shù)據(jù)中相同位序位數(shù)據(jù)有效。有效位檢查單元17根據(jù)來自陣列的數(shù)據(jù)檢查每對(duì)數(shù)據(jù)是否兩兩互補(bǔ),是否符合雙軌編碼格式,從而按位判斷當(dāng)前輸入數(shù)據(jù)是否有效,并將判斷結(jié)果寫入有效位寄存器14。這里,有效位檢查單元17由異或門組成。定時(shí)器16用于防止工作超時(shí)。
圖4所示是數(shù)據(jù)耦合器輸出端口。輸出端口負(fù)責(zé)將數(shù)據(jù)輸出到可重構(gòu)陣列中。輸出端口同時(shí)支持同步和異步工作模式,在異步工作模式下數(shù)據(jù)要通過其內(nèi)部的數(shù)據(jù)擴(kuò)展單元將數(shù)據(jù)(這里原數(shù)據(jù)寬度為64位)按照雙軌編碼互補(bǔ)格式擴(kuò)充原來兩倍(這里是128位),再輸出給可重構(gòu)陣列做計(jì)算。如果是同步模式,則不作擴(kuò)充,輸出的數(shù)據(jù)和從緩存讀出的數(shù)據(jù)寬度相同(仍為64位)。
輸出端口主要由64位數(shù)據(jù)寄存器19、64位有效位寄存器20、64位有效位備份寄存器21、64位回應(yīng)寄存器22、定時(shí)器23、比較邏輯24、數(shù)據(jù)擴(kuò)展單元25和數(shù)據(jù)輸出邏輯26組成。
數(shù)據(jù)寄存器19存放的是要輸出的計(jì)算數(shù)據(jù)。輸出端口同時(shí)支持同步和異步工作模式。同步工作模式下,數(shù)據(jù)寄存器19中的數(shù)據(jù)直接輸出給可重構(gòu)陣列。異步模式下,數(shù)據(jù)要按照雙軌編碼方式進(jìn)行處理。其中,有效位寄存器20和有效位備份寄存器21功能與輸入端口相應(yīng)寄存器相同?;貞?yīng)答寄存器22負(fù)責(zé)實(shí)現(xiàn)與陣列異步通信時(shí)的應(yīng)答信號(hào)接收,若檢測(cè)到陣列邊緣單元“獲得數(shù)據(jù)確認(rèn)”信號(hào)則置相應(yīng)位為1。在進(jìn)行每一字傳輸時(shí),由計(jì)數(shù)器23對(duì)過去的時(shí)鐘數(shù)進(jìn)行計(jì)數(shù),當(dāng)計(jì)數(shù)值減到0時(shí)若還未完成字傳輸則認(rèn)為輸出端口或陣列發(fā)生錯(cuò)誤。比較邏輯24將回應(yīng)寄存器22和有效位備份寄存器21中相對(duì)應(yīng)的每位數(shù)據(jù)進(jìn)行比較,判斷當(dāng)前數(shù)據(jù)寄存器中的各位數(shù)據(jù)是否已被陣列接受。若該位被接受,則相應(yīng)位輸出為1,有效位寄存器中相應(yīng)位被清。如果所有數(shù)據(jù)都被陣列接收,則輸出端口繼續(xù)傳送下一個(gè)計(jì)算數(shù)據(jù),如果還有某些位沒有被接收,則保持?jǐn)?shù)據(jù)寄存器中數(shù)據(jù)直到陣列接收。數(shù)據(jù)擴(kuò)展單元25將數(shù)據(jù)寄存器和有效位寄存器20中相對(duì)應(yīng)的每位數(shù)據(jù)相互作用,把原來計(jì)算數(shù)據(jù)按位擴(kuò)展(即原1位數(shù)據(jù)擴(kuò)充成為互補(bǔ)兩位)。數(shù)據(jù)輸出邏輯26根據(jù)當(dāng)前輸出端口數(shù)據(jù)準(zhǔn)備情況和陣列數(shù)據(jù)接收情況,確定是否需要繼續(xù)向陣列輸出數(shù)據(jù)。如果沒有這個(gè)邏輯的控制,陣列可能會(huì)重復(fù)接收同樣的數(shù)據(jù),從而導(dǎo)致計(jì)算結(jié)果的錯(cuò)誤。
圖5所示是耦合器的接口信號(hào)。在和控制器連接方向,有DS_RST信號(hào),用于重置耦合器工作狀態(tài);NREQ信號(hào)用于耦合器通知控制器計(jì)算任務(wù)完成;EREQ信號(hào)用于耦合器通知控制器計(jì)算出錯(cuò)。在和陣列連接方向,分別有兩組數(shù)據(jù)線DATO_O、DATO_I負(fù)責(zé)數(shù)據(jù)的輸入輸出和兩組傳輸確認(rèn)信號(hào)線ACK。
參照?qǐng)D6是數(shù)據(jù)耦合器的工作流程。工作流程分為以下步驟第一步,由外部控制器對(duì)數(shù)據(jù)耦合器進(jìn)行配置。配置內(nèi)容包括選擇地址生成器地址產(chǎn)生模式,寫入地址參數(shù),配置輸入/輸出端口的工作模式。特殊地址產(chǎn)生模式的配置通過寫數(shù)據(jù)耦合器控制寄存器完成。該寄存器各位定義如表1所示。
表1
第二步,外部控制器通過總線控制邏輯向數(shù)據(jù)耦合器內(nèi)部的計(jì)算高速緩存寫入數(shù)據(jù)。
第三步,外部控制器通過控制引腳,發(fā)出DS_RST信號(hào),重置整個(gè)數(shù)據(jù)耦合器狀態(tài)。
第四步,外部控制器通過設(shè)置數(shù)據(jù)耦合器控制寄存器(表1)向數(shù)據(jù)耦合器控制單元發(fā)出開始工作信號(hào),啟動(dòng)整個(gè)耦合器的工作。
第五步,數(shù)據(jù)耦合器開始工作,地址生成器開始按照預(yù)定模式產(chǎn)生訪問計(jì)算高速緩存的地址。根據(jù)這個(gè)地址和讀寫信號(hào)控制,數(shù)據(jù)耦合器通過輸入和輸出端口與可重構(gòu)陣列之間進(jìn)行數(shù)據(jù)傳輸。地址生成器產(chǎn)生地址時(shí),從地址參數(shù)高速緩存中取得地址參數(shù),然后將參數(shù)送入地址計(jì)算單元進(jìn)行計(jì)算,同時(shí),還要將參數(shù)字的讀寫控制位輸入到協(xié)調(diào)工作單元,協(xié)調(diào)工作單元負(fù)責(zé)查詢輸入/輸出端口的工作狀態(tài),從而進(jìn)行數(shù)據(jù)的輸入/輸出。在一次地址生成之后,生成的結(jié)果還要輸入到計(jì)數(shù)允許信號(hào)產(chǎn)生邏輯,根據(jù)產(chǎn)生結(jié)果判斷是否需要讀出下一個(gè)地址。
第六步,完成地址計(jì)算過程,結(jié)束數(shù)據(jù)傳輸。如果需要下一次傳輸,則數(shù)據(jù)耦合器令NREQ信號(hào)有效,表明下一次傳輸請(qǐng)求;如果出錯(cuò),則數(shù)據(jù)耦合器令NERR信號(hào)有效,表明傳輸出錯(cuò),出錯(cuò)時(shí),外部控制器可以通過查詢數(shù)據(jù)耦合器狀態(tài)寄存器來得知出現(xiàn)哪種錯(cuò)誤。狀態(tài)寄存器各位定義見表2。
表2
第七步,外部控制器接收到數(shù)據(jù)耦合器的通知信號(hào)。接收到信號(hào)后,控制器通過向數(shù)據(jù)耦合器控制寄存器發(fā)送停止工作信號(hào)來中止數(shù)據(jù)耦合器當(dāng)前工作。然后根據(jù)數(shù)據(jù)耦合器的通知信號(hào)類型來做相應(yīng)處理。如果結(jié)束當(dāng)前計(jì)算,則退出。如果需要對(duì)新數(shù)據(jù)進(jìn)行處理,則轉(zhuǎn)向第二步。如果對(duì)原有數(shù)據(jù)進(jìn)行新一輪循環(huán)處理,則轉(zhuǎn)向第三步。
綜上所述,采用本發(fā)明的設(shè)計(jì)方法可以滿足可重構(gòu)陣列對(duì)于數(shù)據(jù)流模式靈活多變的需求,同時(shí)還可以根據(jù)需求擴(kuò)展到其他專用數(shù)據(jù)處理器上。
上述實(shí)施例用來解釋說明本發(fā)明,而不是對(duì)本發(fā)明進(jìn)行限制,在本發(fā)明的精神和權(quán)利要求的保護(hù)范圍內(nèi),對(duì)本發(fā)明作出的任何修改和改變,都落入本發(fā)明的保護(hù)范圍。
權(quán)利要求
1.用于可重構(gòu)計(jì)算陣列的數(shù)據(jù)耦合器,其特征是包括用于設(shè)置和輸出數(shù)據(jù)耦合器工作狀態(tài)的數(shù)據(jù)耦合器控制單元(1),按照尋址模式產(chǎn)生地址的地址生成器(2),用于存儲(chǔ)計(jì)算過程中的輸入輸出數(shù)據(jù)的計(jì)算高速緩存(3),總線接口單元(4),控制寄存器(5),輸入端口(6),輸出端口(7)和內(nèi)部總線(8),總線接口單元(4)的一端與外部總線相連接,另一端與內(nèi)部總線(8)相連,數(shù)據(jù)耦合器控制單元(1)的一端與外部總線連接,另一端與控制寄存器(5)連接,地址生成器(2)與內(nèi)部總線(8)以及計(jì)算高速緩存(3)的一個(gè)輸入端相連接,計(jì)算高速緩存(3)與內(nèi)部總線(8)連接,并有兩組傳輸端口,其中一組傳輸端口與內(nèi)部總線(8)相連接,另一組傳輸端口的輸入端與輸入端口(6)的輸出端相連,輸出端與輸出端口(7)的輸入端相連接,輸入端口(6)和輸出端口(7)分別和內(nèi)部總線(8)連接,輸入端口(6)的輸入端和可重構(gòu)陣列的輸出端相連接,輸出端口(7)的輸出端和可重構(gòu)陣列的輸入端相連接。
2.根據(jù)權(quán)利要求1所述的用于可重構(gòu)計(jì)算陣列的數(shù)據(jù)耦合器,其特征是地址生成器(2)由地址參數(shù)高速緩存(9)、地址計(jì)算單元(10)、協(xié)處理單元(11)、計(jì)數(shù)器(12)和計(jì)數(shù)允許信號(hào)產(chǎn)生邏輯(13)組成。
3.根據(jù)權(quán)利要求1所述的用于可重構(gòu)計(jì)算陣列的數(shù)據(jù)耦合器,其特征是輸入端口(6)由64位有效位寄存器(14),64位有效位備份寄存器(15),定時(shí)器(16),有效位檢查單元(17)和比較邏輯(18)組成。
4.根據(jù)權(quán)利要求1所述的用于可重構(gòu)計(jì)算陣列的數(shù)據(jù)耦合器,其特征是輸出端口(7)由64位數(shù)據(jù)寄存器(19)、64位有效位寄存器(20)、64位有效位備份寄存器(21)、64位回應(yīng)寄存器(22)、定時(shí)器(23)、比較邏輯(24)、數(shù)據(jù)擴(kuò)展單元(25)和數(shù)據(jù)輸出邏輯(26)組成。
全文摘要
本發(fā)明公開的用于可重構(gòu)計(jì)算陣列的數(shù)據(jù)耦合器包括用于設(shè)置和輸出數(shù)據(jù)耦合器工作狀態(tài)的數(shù)據(jù)耦合器控制單元,按照尋址模式產(chǎn)生地址的地址生成器,用于存儲(chǔ)計(jì)算過程中的輸入輸出數(shù)據(jù)的計(jì)算高速緩存,總線接口單元,控制寄存器,輸入端口,輸出端口和內(nèi)部總線。該數(shù)據(jù)耦合器可根據(jù)控制信息,按照一定的尋址模式產(chǎn)生高速緩存的地址,通過輸入/輸出端口協(xié)調(diào)與可重構(gòu)計(jì)算陣列之間的數(shù)據(jù)傳輸,支持同步和異步兩種通訊方式,應(yīng)用方式靈活。
文檔編號(hào)G06F15/76GK1776660SQ20051006177
公開日2006年5月24日 申請(qǐng)日期2005年12月2日 優(yōu)先權(quán)日2005年12月2日
發(fā)明者沈海斌, 季愛明 申請(qǐng)人:浙江大學(xué)