專利名稱:一種協(xié)處理器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及集成電路設(shè)計領(lǐng)域,具體涉及一種實現(xiàn)可重構(gòu)浮點(diǎn)矩陣算法的協(xié)處理器。
背景技術(shù):
隨著科學(xué)技術(shù)的進(jìn)步,人們對計算性能的要求越來越高,高性能浮點(diǎn)矩陣算法越來越廣泛地應(yīng)用于媒體處理、科學(xué)計算以及工業(yè)控制等領(lǐng)域。針對高性能浮點(diǎn)矩陣算法的ASIC (Application Specific Integrated Circuit,專用集成電路)設(shè)計,存在設(shè)計周期 長、成本高、靈活性和可擴(kuò)展性差的問題?,F(xiàn)有的通用處理器,包括CPU (Central Processing Unit,中央處理器)和DSP (Digital Signal Processing,數(shù)字信號處理),也可以完成高性能浮點(diǎn)矩陣算法的實現(xiàn),但是存在兩個方面的問題第一是通用處理器為了實現(xiàn)通用性,結(jié)構(gòu)較為復(fù)雜,用于浮點(diǎn)矩陣運(yùn)算需要付出較大的功耗和面積代價;第二是通用處理器主要面向標(biāo)量計算設(shè)計,同時由于“存儲墻”問題的存在,使得浮點(diǎn)矩陣算法在通用處理器的運(yùn)算需要付出較長的時間代價。
發(fā)明內(nèi)容
為了克服現(xiàn)有處理器在浮點(diǎn)矩陣運(yùn)算領(lǐng)域的不足,本發(fā)明旨在提出了一種結(jié)構(gòu)簡單、配置靈活、擴(kuò)展性強(qiáng)的可應(yīng)用于重構(gòu)浮點(diǎn)矩陣算法的協(xié)處理器。根據(jù)本發(fā)明實施例的協(xié)處理器,包括以下部分外部設(shè)備接口,用于連接外部設(shè)備;以及協(xié)處理器電路,用于進(jìn)行協(xié)處理操作,其中,協(xié)處理器電路進(jìn)一步包括輸入輸出控制模塊,用于通過外部設(shè)備接口與外部設(shè)備進(jìn)行數(shù)據(jù)交互;存儲模塊,用于數(shù)據(jù)存儲;可重構(gòu)協(xié)處理器控制器模塊,用于根據(jù)存儲模塊內(nèi)的指令產(chǎn)生控制信號,控制浮點(diǎn)運(yùn)算單元陣列進(jìn)行操作;以及浮點(diǎn)運(yùn)算單元陣列,用于接收控制信號,并根據(jù)控制信號從存儲模塊中讀入源操作數(shù),并將計算結(jié)果存入存儲模塊中。另外,根據(jù)本發(fā)明上述實施例的協(xié)處理器還可以具有如下附加的技術(shù)特征在本發(fā)明的一個實施例中,夕卜部設(shè)備接口進(jìn)一步包括輸入時鐘信號端,用于為協(xié)處理器提供工作時鐘;輸入復(fù)位信號端,用于為協(xié)處理器的存儲模塊恢復(fù)初始狀態(tài);數(shù)據(jù)輸入輸出總線端,用于統(tǒng)一的模塊內(nèi)外數(shù)據(jù)交互;DMA輸入輸出總線端,用于集中的模塊內(nèi)外數(shù)據(jù)交互;以及輸出中斷信號端,用于協(xié)處理器向外部設(shè)備發(fā)送中斷請求。在本發(fā)明的一個實施例中,輸入輸出控制模塊進(jìn)一步包括總線控制器模塊,用于解析數(shù)據(jù)輸入輸出總線信號協(xié)議,通過外部總線進(jìn)行統(tǒng)一的模塊內(nèi)外數(shù)據(jù)交互;DMA控制器模塊,用于直接存儲器數(shù)據(jù)存取,通過DMA總線進(jìn)行集中的模塊內(nèi)外數(shù)據(jù)交互;以及中斷信號產(chǎn)生模塊,用于判斷浮點(diǎn)矩陣算法執(zhí)行完畢,向外部設(shè)備發(fā)送中斷請求信號。在本發(fā)明的一個實施例中,存儲模塊進(jìn)一步包括可重構(gòu)指令隊列存儲模塊,用于存儲描述浮點(diǎn)矩陣算法執(zhí)行的二進(jìn)制指令;局部寄存器堆模塊,用于存儲浮點(diǎn)運(yùn)算單元陣列中運(yùn)算單元計算所需的源操作數(shù)以及計算結(jié)果數(shù)據(jù);控制寄存器,用于存儲外部設(shè)備對協(xié)處理器的控制信息;以及狀態(tài)寄存器,用于存儲協(xié)處理器的狀態(tài)信息。在本發(fā)明的一個實施例中,可重構(gòu)協(xié)處理器控制器模塊,用于從可重構(gòu)指令隊列存儲模塊中依次讀取指令,對指令進(jìn)行譯碼產(chǎn)生控制信號,并將控制信號發(fā)送到浮點(diǎn)運(yùn)算單元陣列,控制運(yùn)算單元進(jìn)行運(yùn)算操作;可重構(gòu)協(xié)處理器控制器模塊從控制寄存器中讀出外部設(shè)備對協(xié)處理器的控制信息,并控制協(xié)處理器執(zhí)行浮點(diǎn)矩陣算法二進(jìn)制程序的開始、中間狀態(tài)、結(jié)束以及產(chǎn)生中斷等過程;可重構(gòu)協(xié)處理器控制器模塊監(jiān)控協(xié)處理器執(zhí)行浮點(diǎn)矩陣算法二進(jìn)制程序的狀態(tài),并將狀態(tài)信息存儲到狀態(tài)寄存器中。 在本發(fā)明的一個實施例中,浮點(diǎn)運(yùn)算單元陣列進(jìn)一步包括第一浮點(diǎn)乘加單元,用于完成浮點(diǎn)操作數(shù)加減類型的運(yùn)算;第二浮點(diǎn)乘加單元,用于完成浮點(diǎn)操作數(shù)乘法類型的運(yùn)算;第三浮點(diǎn)乘加單元,用于完成浮點(diǎn)操作數(shù)絕對值類型的運(yùn)算;第四浮點(diǎn)乘加單元,用 于完成浮點(diǎn)操作數(shù)乘加類型的運(yùn)算;浮點(diǎn)除法單元,用于完成浮點(diǎn)操作數(shù)除法類型的運(yùn)算;浮點(diǎn)開方單元,用于完成浮點(diǎn)操作數(shù)開方類型的運(yùn)算;浮點(diǎn)比較單元,用于完成浮點(diǎn)操作數(shù)比較大小類型的運(yùn)算;以及選擇單元,用于根據(jù)控制信號在兩個浮點(diǎn)操作數(shù)中選擇其中一個輸出類型的運(yùn)算。在本發(fā)明的一個實施例中,協(xié)處理器還包括交叉互連開關(guān),浮點(diǎn)運(yùn)算單元陣列與局部寄存器堆模塊通過交叉互連開關(guān)相連接;交叉互連開關(guān)包括與可重構(gòu)協(xié)處理器控制器相連接的第一讀寫端口,當(dāng)運(yùn)算中需要常數(shù)量或者立即數(shù)量作為浮點(diǎn)運(yùn)算單元的源操作數(shù)時,由可重構(gòu)協(xié)處理器控制器通過第一讀寫端口寫入局部寄存器堆中,可重構(gòu)協(xié)處理器控制器可以通過第一讀寫端口讀出浮點(diǎn)運(yùn)算單元計算的結(jié)果值;交叉互連開關(guān)包括與輸入輸出控制模塊相連接的第二讀寫端口,外部設(shè)備可以通過第二讀寫端口將數(shù)據(jù)寫入局部寄存器堆中,也可以通過第二讀寫端口讀出浮點(diǎn)運(yùn)算單元計算的結(jié)果值。本發(fā)明所述的可重構(gòu)浮點(diǎn)矩陣算法的協(xié)處理器電路與現(xiàn)有技術(shù)相比較具有以下優(yōu)點(diǎn)和有益效果(I)相比于定點(diǎn)數(shù)據(jù),浮點(diǎn)數(shù)據(jù)支持的數(shù)據(jù)動態(tài)范圍更大,能夠提供更高的計算精度,所述可重構(gòu)浮點(diǎn)矩陣算法協(xié)處理器可以根據(jù)要求配置支持的數(shù)據(jù)類型為單精度或者雙精度浮點(diǎn)操作數(shù);(2)浮點(diǎn)矩陣算法運(yùn)算速度快,可重構(gòu)浮點(diǎn)矩陣算法協(xié)處理器針對浮點(diǎn)矩陣算法的特點(diǎn),采用并行計算的方式來加速浮點(diǎn)矩陣算法的執(zhí)行;(3)具有較大的靈活性,可重構(gòu)浮點(diǎn)矩陣算法協(xié)處理器可以面向各種不同的浮點(diǎn)矩陣算法,用戶在需要更換算法時,只需將算法編碼成協(xié)處理器可執(zhí)行的二進(jìn)制代碼并通過外部接口輸入進(jìn)協(xié)處理器即可,而不必更換芯片;(4)具有較強(qiáng)的擴(kuò)展性,在需要提升可重構(gòu)浮點(diǎn)矩陣算法協(xié)處理器的性能時,可以通過增加浮點(diǎn)運(yùn)算單元陣列中的運(yùn)算部件的數(shù)量實現(xiàn),無需變更整個協(xié)處理器電路的體系結(jié)構(gòu),只需對其他相關(guān)部件進(jìn)行簡單擴(kuò)展即可。本發(fā)明的附加方面和優(yōu)點(diǎn)將在下面的描述中部分給出,部分將從下面的描述中變得明顯,或通過本發(fā)明的實踐了解到。
本發(fā)明的上述和/或附加的方面和優(yōu)點(diǎn)從結(jié)合下面附圖對實施例的描述中將變得明顯和容易理解,其中圖I是本發(fā)明的協(xié)處理器的結(jié)構(gòu)框圖;圖2是本發(fā)明的協(xié)處理器的結(jié)構(gòu)示意圖;圖3是本發(fā)明的浮點(diǎn)運(yùn)算單元陣列及局部寄存器堆模塊互連結(jié)構(gòu)圖;圖4是本發(fā)明的控制寄存器區(qū)段示意圖;以及圖5是本發(fā)明的狀態(tài)寄存器區(qū)段示意圖。
具體實施方式
下面詳細(xì)描述本發(fā)明的實施例,所述實施例的示例在附圖中示出,其中自始至終相同或類似的標(biāo)號表示相同或類似的元件或具有相同或類似功能的元件。下面通過參考附圖描述的實施例是示例性的,旨在用于解釋本發(fā)明,而不能理解為對本發(fā)明的限制。在本發(fā)明的描述中,需要理解的是,術(shù)語“中心”、“縱向”、“橫向”、“長度”、“寬度”、“厚度”、“上”、“下”、“前”、“后”、“左”、“右”、“豎直”、“水平”、“頂”、“底” “內(nèi)”、“外”、“順時針”、“逆時針”等指示的方位或位置關(guān)系為基于附圖所示的方位或位置關(guān)系,僅是為了便于描述本發(fā)明和簡化描述,而不是指示或暗示所指的裝置或元件必須具有特定的方位、以特定的方位構(gòu)造和操作,因此不能理解為對本發(fā)明的限制。此外,術(shù)語“第一”、“第二”僅用于描述目的,而不能理解為指示或暗示相對重要性或者隱含指明所指示的技術(shù)特征的數(shù)量。由此,限定有“第一”、“第二”的特征可以明示或者隱含地包括一個或者更多個該特征。在本發(fā)明的描述中,“多個”的含義是兩個或兩個以上,除非另有明確具體的限定。在本發(fā)明中,除非另有明確的規(guī)定和限定,術(shù)語“安裝”、“相連”、“連接”、“固定”等術(shù)語應(yīng)做廣義理解,例如,可以是固定連接,也可以是可拆卸連接,或一體地連接;可以是機(jī)械連接,也可以是電連接;可以是直接相連,也可以通過中間媒介間接相連,可以是兩個元件內(nèi)部的連通。對于本領(lǐng)域的普通技術(shù)人員而言,可以根據(jù)具體情況理解上述術(shù)語在本發(fā)明中的具體含義。在本發(fā)明中,除非另有明確的規(guī)定和限定,第一特征在第二特征之“上”或之“下”可以包括第一和第二特征直接接觸,也可以包括第一和第二特征不是直接接觸而是通過它們之間的另外的特征接觸。而且,第一特征在第二特征“之上”、“上方”和“上面”包括第一特征在第二特征正上方和斜上方,或僅僅表示第一特征水平高度高于第二特征。第一特征在第二特征“之下”、“下方”和“下面”包括第一特征在第二特征正下方和斜下方,或僅僅表示第一特征水平高度小于第二特征。如圖I所示,本發(fā)明的協(xié)處理器包括用于連接外部設(shè)備的外部設(shè)備接口 I和用于進(jìn)行協(xié)處理操作的協(xié)處理器電路2。其中,協(xié)處理器電路2進(jìn)一步包括輸入輸出控制模塊21、存儲模塊22、可重構(gòu)協(xié)處理器控制器模塊23以及運(yùn)算單元陣列24。圖2中顯示了本發(fā)明的協(xié)處理器的更多細(xì)節(jié)。本發(fā)明的協(xié)處理器中,具體地,外部設(shè)備接口 I進(jìn)一步包括輸入時鐘信號端11,用于為協(xié)處理器提供工作時鐘;輸入復(fù)位信號端12,用于為協(xié)處理器的存儲模塊22恢復(fù)初始狀態(tài);數(shù)據(jù)輸入輸出總線端13,用于統(tǒng)一的模塊內(nèi)外數(shù)據(jù)交互,包括內(nèi)部寄存器和外部存儲器、外部處理設(shè)備之間的數(shù)據(jù)交互;DMA輸入輸出總線端14,用于集中的模塊內(nèi)外數(shù)據(jù)交互,包括內(nèi)部存儲器和外部存儲器之間大塊連續(xù)的數(shù)據(jù)交互;以及輸出中斷信號端15,用于協(xié)處理器向外部設(shè)備發(fā)送中斷請求。輸入輸出控制模塊21用于通過外部設(shè)備接口 I與外部設(shè)備進(jìn)行數(shù)據(jù)交互。輸入輸出控制模塊21包括總線控制器模塊211、DMA控制器模塊212和中斷信號產(chǎn)生模塊213 ;其中總線控制器模塊211用于解析數(shù)據(jù)輸入輸出總線13的信號協(xié)議,通過外部總線進(jìn)行統(tǒng)一的模塊內(nèi)外數(shù)據(jù)交互,包括內(nèi)部寄存器和外部存儲器、外部處理設(shè)備之間的數(shù)據(jù)交互;DMA控制器模塊212用于直接存儲器數(shù)據(jù)存取,用于集中的模塊內(nèi)外數(shù)據(jù)交互,包括內(nèi)部存儲器和外部存儲器之間大塊連續(xù)的數(shù)據(jù)交互。DMA控制器模塊212中包含有源地 址寄存器、目標(biāo)地址寄存器和數(shù)據(jù)大小寄存器。外部設(shè)備通過將外部存儲器中數(shù)據(jù)起始地址寫入源地址寄存器,將數(shù)據(jù)在存儲模塊22中的地址寫入目標(biāo)地址寄存器,數(shù)據(jù)大小寫入數(shù)據(jù)大小寄存器,并發(fā)起DMA請求來啟動并完成數(shù)據(jù)從外部存儲器到協(xié)處理器中存儲模塊22的傳輸;協(xié)處理器將計算結(jié)果在存儲模塊22中存儲的起始地址寫入源地址寄存器,將數(shù)據(jù)將要傳輸?shù)酵獠看鎯ζ髦械牡刂穼懭肽繕?biāo)地址寄存器,將結(jié)果數(shù)據(jù)大小寫入數(shù)據(jù)大小寄存器,并發(fā)起DMA請求來啟動并完成結(jié)果數(shù)據(jù)從協(xié)處理器到外部存儲器的傳輸;中斷信號產(chǎn)生模塊213用于判斷浮點(diǎn)矩陣算法執(zhí)行完畢,向外部設(shè)備發(fā)送中斷請求信號;描述浮點(diǎn)矩陣算法的二進(jìn)制指令隊列的最后一條指令必須是結(jié)束指令,當(dāng)可重構(gòu)協(xié)處理器控制器模塊23執(zhí)行到本條指令時,將計算結(jié)束狀態(tài)位寫入存儲模塊22中的狀態(tài)寄存器224中;中斷信號產(chǎn)生模塊213通過判斷狀態(tài)寄存器224中的計算結(jié)束狀態(tài)位來判斷浮點(diǎn)矩陣算法是否執(zhí)行完畢,當(dāng)判斷浮點(diǎn)矩陣算法執(zhí)行完畢時,產(chǎn)生中斷請求信號發(fā)送到外部設(shè)備。存儲模塊22用于浮點(diǎn)矩陣算法協(xié)處理器的數(shù)據(jù)存儲,存儲模塊22中的存儲空間都是統(tǒng)一編址,便于和外部設(shè)備之間的數(shù)據(jù)交互;存儲模塊22包括可重構(gòu)指令隊列存儲模塊221、局部寄存器堆模塊222、控制寄存器223和狀態(tài)寄存器224 ;其中,可重構(gòu)指令隊列存儲模塊221用于存儲描述浮點(diǎn)矩陣算法執(zhí)行的二進(jìn)制指令,采用FIFO (First In Fist Out,先進(jìn)先出)的隊列形式;協(xié)處理器通過控制浮點(diǎn)運(yùn)算單元陣列執(zhí)行二進(jìn)制指令隊列完成浮點(diǎn)矩陣算法的運(yùn)算;二進(jìn)制指令初始存儲在系統(tǒng)中的外部存儲器中,有兩種方法輸入到可重構(gòu)指令隊列存儲模塊221中第一種方法是外部設(shè)備通過數(shù)據(jù)輸入輸出總線13將描述浮點(diǎn)矩陣算法執(zhí)行的二進(jìn)制指令輸入到可重構(gòu)指令隊列存儲模塊221中;第二種方法是外部設(shè)備將描述浮點(diǎn)矩陣算法執(zhí)行的二進(jìn)制指令在外部存儲器空間中的存儲地址和存儲長度輸入到DMA控制器模塊212中,由DMA控制器通過DMA輸入輸出總線14將描述浮點(diǎn)矩陣算法執(zhí)行的二進(jìn)制指令從外部存儲器輸入到可重構(gòu)指令隊列存儲模塊221中;當(dāng)需要轉(zhuǎn)換算法的時候,只需通過上述兩種方法將描述新算法的二進(jìn)制代碼輸入到可重構(gòu)指令隊列存儲模塊221即可;局部寄存器堆模塊222用于存儲浮點(diǎn)運(yùn)算單元陣列24中運(yùn)算單元計算所需的源操作數(shù)以及計算結(jié)果數(shù)據(jù);如圖3所示,局部寄存器堆模塊222由20個分布式寄存器堆組成,分布式寄存器堆的寫端口連接到互連交叉開關(guān)網(wǎng)絡(luò),在每一個時鐘周期由可重構(gòu)協(xié)處理器控制器模塊23控制寫入的數(shù)據(jù);分布式寄存器堆的讀端口連接到浮點(diǎn)運(yùn)算單元陣列24中的運(yùn)算模塊,其中,LRFOl、LRF02、LRF03連接到第一浮點(diǎn)乘加單元241,為第一浮點(diǎn)乘加單元241提供三個源操作數(shù);LRF04、LRF05、LRF06連接到第二浮點(diǎn)乘加單元242,為第二浮點(diǎn)乘加單元242提供三個源操作數(shù);LRF07、LRF08、LRF09連接到第三浮點(diǎn)乘加單元243,為第三浮點(diǎn)乘加單元243提供三個源操作數(shù);LRF10、LRFlI、LRF12連接到第四浮點(diǎn)乘加單元244,為第四浮點(diǎn)乘加單元244提供三個源操作數(shù);LRF13、LRF14連接到浮點(diǎn)除法單元245,為浮點(diǎn)除法單元245提供兩個源操作數(shù);LRF15連接到浮點(diǎn)開方單元246,為浮點(diǎn)開方單元246提供一個源操作數(shù);LRF16、LRF17連接到浮點(diǎn)比較單元247,為浮點(diǎn)比較單元247提供兩個源操作數(shù);LRF18、LRF19、LRF20連接到選擇單元248,為選擇單元248提供三個源操作數(shù);分布式寄存器堆的大小可以根據(jù)算法的需要配置,在協(xié)處理器的一種實現(xiàn)中,單個分布式寄存器堆設(shè)計容量為1024位,配置成雙精度浮點(diǎn)算法的組織形式為16 X 64位,配置成單精度浮點(diǎn)算法的組織形式為32X32位;當(dāng)需要對浮點(diǎn)運(yùn)算單元陣列進(jìn)行擴(kuò)展時,相應(yīng)的局部寄存器堆模塊也需要進(jìn)行擴(kuò)展,通過增加分布式寄存器堆的數(shù)量和擴(kuò)展交叉開關(guān)網(wǎng)絡(luò)的網(wǎng)格數(shù)目來實現(xiàn);控制寄存器223用于存儲外部設(shè)備對協(xié)處理器的控制信息;控制寄存器223是一 個32位寄存器,外部設(shè)備可通過數(shù)據(jù)輸入輸出總線13進(jìn)行讀寫操作;控制寄存器223域描述如圖4所示,在協(xié)處理器的一種實現(xiàn)中,各個域參數(shù)及功能描述如下表所示
權(quán)利要求
1.一種協(xié)處理器,其特征在于,包括 外部設(shè)備接口,用于連接外部設(shè)備;以及 協(xié)處理器電路,用于進(jìn)行協(xié)處理操作,其中,所述協(xié)處理器電路進(jìn)一步包括 輸入輸出控制模塊,用于通過外部設(shè)備接口與外部設(shè)備進(jìn)行數(shù)據(jù)交互; 存儲模塊,用于數(shù)據(jù)存儲; 可重構(gòu)協(xié)處理器控制器模塊,用于根據(jù)所述存儲模塊內(nèi)的指令產(chǎn)生控制信號,控制浮點(diǎn)運(yùn)算單元陣列進(jìn)行操作;以及 所述浮點(diǎn)運(yùn)算單元陣列,用于接收所述控制信號,并根據(jù)所述控制信號從所述存儲模塊中讀入源操作數(shù),并將計算結(jié)果存入所述存儲模塊中。
2.如權(quán)利要求I所述的可重構(gòu)浮點(diǎn)矩陣算法協(xié)處理器,其特征在于,所述外部設(shè)備接口進(jìn)一步包括 輸入時鐘信號端,用于為所述協(xié)處理器提供工作時鐘; 輸入復(fù)位信號端,用于為所述協(xié)處理器的所述存儲模塊恢復(fù)初始狀態(tài); 數(shù)據(jù)輸入輸出總線端,用于統(tǒng)一的模塊內(nèi)外數(shù)據(jù)交互; DMA輸入輸出總線端,用于集中的模塊內(nèi)外數(shù)據(jù)交互;以及 輸出中斷信號端,用于所述協(xié)處理器向所述外部設(shè)備發(fā)送中斷請求。
3.如權(quán)利要求2所述的協(xié)處理器,其特征在于,所述輸入輸出控制模塊進(jìn)一步包括 總線控制器模塊,用于解析數(shù)據(jù)輸入輸出總線信號協(xié)議,通過外部總線進(jìn)行統(tǒng)一的模塊內(nèi)外數(shù)據(jù)交互; DMA控制器模塊,用于直接存儲器數(shù)據(jù)存取,通過DMA總線進(jìn)行集中的模塊內(nèi)外數(shù)據(jù)交互;以及 中斷信號產(chǎn)生模塊,用于判斷浮點(diǎn)矩陣算法執(zhí)行完畢,向所述外部設(shè)備發(fā)送中斷請求信號。
4.如權(quán)利要求3所述的協(xié)處理器,其特征在于,所述存儲模塊進(jìn)一步包括 可重構(gòu)指令隊列存儲模塊,用于存儲描述浮點(diǎn)矩陣算法執(zhí)行的二進(jìn)制指令; 局部寄存器堆模塊,用于存儲所述浮點(diǎn)運(yùn)算單元陣列中運(yùn)算單元計算所需的源操作數(shù)以及計算結(jié)果數(shù)據(jù); 控制寄存器,用于存儲所述外部設(shè)備對所述協(xié)處理器的控制信息;以及 狀態(tài)寄存器,用于存儲所述協(xié)處理器的狀態(tài)信息。
5.如權(quán)利要求4所述的協(xié)處理器,其特征在于,所述可重構(gòu)協(xié)處理器控制器模塊,用于從所述可重構(gòu)指令隊列存儲模塊中依次讀取指令,對所述指令進(jìn)行譯碼產(chǎn)生控制信號,并將所述控制信號發(fā)送到所述浮點(diǎn)運(yùn)算單元陣列,控制運(yùn)算單元進(jìn)行運(yùn)算操作;所述可重構(gòu)協(xié)處理器控制器模塊從所述控制寄存器中讀出所述外部設(shè)備對所述協(xié)處理器的控制信息,并控制所述協(xié)處理器執(zhí)行浮點(diǎn)矩陣算法二進(jìn)制程序的開始、中間狀態(tài)、結(jié)束以及產(chǎn)生中斷等過程;所述可重構(gòu)協(xié)處理器控制器模塊監(jiān)控所述協(xié)處理器執(zhí)行浮點(diǎn)矩陣算法二進(jìn)制程序的狀態(tài),并將狀態(tài)信息存儲到所述狀態(tài)寄存器中。
6.如權(quán)利要求5所述的協(xié)處理器,其特征在于,所述浮點(diǎn)運(yùn)算單元陣列進(jìn)一步包括 第一浮點(diǎn)乘加單元,用于完成浮點(diǎn)操作數(shù)加減類型的運(yùn)算; 第二浮點(diǎn)乘加單元,用于完成浮點(diǎn)操作數(shù)乘法類型的運(yùn)算;第三浮點(diǎn)乘加單元,用于完成浮點(diǎn)操作數(shù)絕對值類型的運(yùn)算; 第四浮點(diǎn)乘加單元,用于完成浮點(diǎn)操作數(shù)乘加類型的運(yùn)算; 浮點(diǎn)除法單元,用于完成浮點(diǎn)操作數(shù)除法類型的運(yùn)算; 浮點(diǎn)開方單元,用于完成浮點(diǎn)操作數(shù)開方類型的運(yùn)算; 浮點(diǎn)比較單元,用于完成浮點(diǎn)操作數(shù)比較大小類型的運(yùn)算;以及 選擇單元,用于根據(jù)所述控制信號在兩個浮點(diǎn)操作數(shù)中選擇其中一個輸出類型的運(yùn)笪
7.如權(quán)利要求6所述的協(xié)處理器,其特征在于,還包括交叉互連開關(guān),所述浮點(diǎn)運(yùn)算單元陣列與所述局部寄存器堆模塊通過所述交叉互連開關(guān)相連接;所述交叉互連開關(guān)包括與所述可重構(gòu)協(xié)處理器控制器相連接的第一讀寫端口,當(dāng)運(yùn)算中需要常數(shù)量或者立即數(shù)量作為浮點(diǎn)運(yùn)算單元的源操作數(shù)時,由可重構(gòu)協(xié)處理器控制器通過所述第一讀寫端口寫入局部寄存器堆中,可重構(gòu)協(xié)處理器控制器可以通過所述第一讀寫端口讀出浮點(diǎn)運(yùn)算單元計算的結(jié)果值;所述交叉互連開關(guān)包括與所述輸入輸出控制模塊相連接的第二讀寫端口,所述外部設(shè)備可以通過所述第二讀寫端口將數(shù)據(jù)寫入局部寄存器堆中,也可以通過所述第二讀寫端口讀出浮點(diǎn)運(yùn)算單元計算的結(jié)果值。
全文摘要
本發(fā)明提出一種協(xié)處理器,包括外部設(shè)備接口,用于連接外部設(shè)備;以及協(xié)處理器電路,用于進(jìn)行協(xié)處理操作,其中,協(xié)處理器電路進(jìn)一步包括輸入輸出控制模塊,用于通過外部設(shè)備接口與外部設(shè)備進(jìn)行數(shù)據(jù)交互;存儲模塊,用于數(shù)據(jù)存儲;可重構(gòu)協(xié)處理器控制器模塊,用于根據(jù)存儲模塊內(nèi)的指令產(chǎn)生控制信號,控制運(yùn)算單元陣列進(jìn)行操作;以及運(yùn)算單元陣列,用于接收可重構(gòu)協(xié)處理器控制器模塊產(chǎn)生的控制信號,并根據(jù)控制信號從存儲模塊中讀入源操作數(shù),并將計算結(jié)果存入存儲模塊中。根據(jù)本發(fā)明的協(xié)處理器可應(yīng)用于浮點(diǎn)矩陣運(yùn)算,具有運(yùn)算速度快、結(jié)構(gòu)相對簡單、配置靈活、擴(kuò)展性強(qiáng)的優(yōu)點(diǎn)。
文檔編號G06F7/57GK102750127SQ201210193758
公開日2012年10月24日 申請日期2012年6月12日 優(yōu)先權(quán)日2012年6月12日
發(fā)明者李兆麟, 李圣龍, 王芳 申請人:清華大學(xué)