專利名稱:基于矢量運算的矢量浮點運算裝置的制作方法
技術(shù)領(lǐng)域:
本實用新型公開一種基于矢量運算的矢量浮點運算裝置及方法,提高了浮點運算的速度和精度。
背景技術(shù):
處理器為數(shù)字信號處理所做的運算主要分為兩大類定點和浮點。一般而言,先進的定點運算速度快,功耗小,成本低,但矢量浮點運算器能夠在硬件方面提供更高的精度和更廣的動態(tài)范圍。所以在面對要求更大的數(shù)字范圍或更高的分辨率的情況,就需要矢量浮點運算器。浮點運算現(xiàn)有方案是英特爾公司的《用于矢量處理的可擴展并行流水線浮點單元》專利,如圖1,該實用新型輸入隊列210從處理器單元、圖形控制器或存儲矢量輸入的數(shù)據(jù)存儲器獲取或者存儲被處理的矢量輸入。每個矢量輸入包括FP指令和該指令關(guān)聯(lián)的矢
量數(shù)據(jù)。矢量輸入選擇器220從輸入隊列210選擇矢量輸入來發(fā)送到輸入隊列210的一個或者多個輸出的多個輸入。調(diào)度器230接收矢量輸入選擇器220選擇的矢量輸入,并分配所述調(diào)度器分配的矢量輸入,把矢量分配為多個標量來處理。現(xiàn)有技術(shù)方案存在的不足之處為1、把矢量輸入分配為多個標量處理,多個浮點(FP)流水線根據(jù)所述調(diào)度器分配的矢量輸入的標量分量的運算來產(chǎn)生FP結(jié)果,之后再把FP結(jié)果組裝成矢量送入輸出緩沖區(qū)。在這一系列過程中,即每一個FP流水線中都必須支持浮點的所有運算。如FP加法器、 FP減法器、FP除法器、FP乘法器、FP復(fù)雜數(shù)學(xué)運算函數(shù)等。這種設(shè)計增加了設(shè)計的復(fù)雜度。2、每個矢量輸入對應(yīng)一次浮點運算指令,每個矢量輸入包括FP指令和該指令相關(guān)聯(lián)的矢量數(shù)據(jù)。所述FP指令可以是任何FP運算,諸如FP加法、FP減法、FP乘法、FP除法、FP三角函數(shù)等。其中在處理本次浮點運算指令時,不能再次響應(yīng)矢量輸入,并等待本次運算結(jié)束后才能相應(yīng)其他的操作。這勢必降低了浮點的運算速度。為了降低矢量處理器的復(fù)雜度,本實用新型的矢量浮點運算裝置采用協(xié)處理器的方式。協(xié)處理器是一個處理單元,該處理單元與一個主處理單元一起使用來承擔通常由主處理單元執(zhí)行的運算。通常協(xié)處理器在硬件中能夠替代幾種軟件指令,從而實現(xiàn)代碼加速。為了提高運算速度及運算精度,在許多應(yīng)用領(lǐng)域中,都會涉及到浮點的并行處理, 因此本實用新型公開一種基于矢量運算的浮點運算裝置。
實用新型內(nèi)容本實用新型的基于矢量運算的浮點運算裝置,提出一種新的硬件結(jié)構(gòu),采用協(xié)處理器的方式,在保證浮點所有運算的基礎(chǔ)上,提高了浮點的運算速度及降低了設(shè)計的復(fù)雜度。本實用新型的基于矢量運算的浮點運算裝置,如圖2所示,包括一個矢量處理器、 一個存儲器、一個矢量浮點協(xié)處理器和一個矢量浮點協(xié)處理器存儲器,矢量處理器與矢量浮點協(xié)處理器之間的總線接口可以采用通用的協(xié)處理器總線結(jié)構(gòu)。其中,矢量處理器,用于執(zhí)行指令代碼中的矢量處理指令,解析指令代碼并執(zhí)行相應(yīng)的運算,矢量處理器還用于把不能執(zhí)行的矢量浮點協(xié)處理器指令通過矢量浮點協(xié)處理器接口總線傳送給矢量浮點協(xié)處理器。存儲器,用于存儲矢量處理器的指令代碼及執(zhí)行指令代碼所需的數(shù)據(jù)。矢量浮點協(xié)處理器,用于執(zhí)行指令代碼中的矢量浮點協(xié)處理指令,解析指令代碼并執(zhí)行相應(yīng)的矢量浮點運算。矢量浮點協(xié)處理器存儲器,用于在本地存儲作為與被加載的數(shù)據(jù)字組合在一起而加以使用操作數(shù)的數(shù)據(jù)字。這種方案是考慮到許多現(xiàn)實中的計算情況。本特性通過在本地存儲頻繁需要的數(shù)據(jù)字而將其拓展,從而使得在矢量處理器和矢量浮點協(xié)處理之間所需要的數(shù)據(jù)通道容量被有益的減少。所述的矢量處理器包括指令存儲單元、數(shù)據(jù)存儲單元、指令讀取和分發(fā)單元、矢量數(shù)據(jù)處理單元、矢量寄存器組;所述的矢量浮點協(xié)處理器,如圖3所示,包括矢量浮點協(xié)處理器接口、指令隊列和分發(fā)單元、矢量數(shù)據(jù)處理單元、矢量浮點寄存器組及轉(zhuǎn)發(fā)單元,其中矢量浮點協(xié)處理器接口,用于把矢量處理器與矢量浮點協(xié)處理器連接起來,本接口可以采用局部總線協(xié)議,如AMBA(高級微控制器總線結(jié)構(gòu))總線、APU(高級外設(shè)總線)總線等。指令隊列和分發(fā)單元,用于將接收矢量處理器送來的指令代碼,解析指令代碼并發(fā)送給所有的矢量數(shù)據(jù)處理單元;矢量數(shù)據(jù)處理單元,用于執(zhí)行矢量浮點的各種運算,由矢量浮點加減法處理單元, 矢量浮點乘法處理單元,矢量浮點除法單元,矢量浮點三角函數(shù)處理單元組成。矢量浮點加減法處理單元,該單元用來執(zhí)行浮點的加減法運算;矢量浮點乘法處理單元,該單元用來執(zhí)行浮點的乘法運算;矢量浮點除法處理單元,該單元用來執(zhí)行浮點的除法運算;矢量浮點三角函數(shù)單元,該單元用于執(zhí)行浮點的三角函數(shù)運算;矢量浮點寄存器組及轉(zhuǎn)發(fā)單元,包含矢量浮點寄存器VRSO,VRSl,…VRSn,用于存放來自矢量浮點加減法處理單元、矢量浮點乘法處理單元、矢量浮點除法處理單元、矢量浮點三角函數(shù)單元的運算數(shù)據(jù)及運算結(jié)果數(shù)據(jù),其轉(zhuǎn)發(fā)單元則從矢量浮點寄存器組中讀寫數(shù)據(jù)并傳遞到矢量處理器的矢量寄存器組中;下面詳細介紹每個單元的具體功能所述指令隊列和分發(fā)單元,其中,所述指令隊列接收矢量處理器送來的指令代碼, 所述分發(fā)單元把指令代碼分發(fā)給所有的執(zhí)行單元。所述指令代碼包括把矢量寄存器中的數(shù)據(jù)傳送到矢量浮點寄存器中;把矢量浮點寄存器中的數(shù)據(jù)加載到矢量浮點協(xié)處理器中;[0032]把矢量浮點寄存器中的數(shù)據(jù)傳送到矢量寄存器中;矢量浮點的加減法指令;矢量浮點的減法指令;矢量浮點的乘法指令;矢量浮點的除法指令;矢量浮點的三角函數(shù)指令;所述矢量浮點加減法處理單元,是當指令隊列和分發(fā)單元接收矢量處理器送來的矢量浮點指令代碼,如矢量浮點的加法和減法指令,讀取矢量浮點加減法指令,然后分發(fā)給所述矢量浮點加減法處理單元;所述矢量浮點加減法處理單元根據(jù)所述矢量浮點加或減指令將矢量浮點寄存器組中源的寄存器的內(nèi)容相加減,結(jié)果存入目的寄存器中,所述矢量浮點寄存器組源的寄存器為矢量浮點寄存器組中的一個或者幾個寄存器,所述目的寄存器為矢量浮點寄存器組的一個或者幾個寄存器。所述矢量浮點乘法處理單元,是當指令隊列和分發(fā)單元接收矢量處理器送來的矢量浮點指令代碼,讀取矢量浮點乘法指令,然后分發(fā)給所述矢量浮點乘法處理單元;所述矢量浮點乘法處理單元根據(jù)所述矢量浮點乘法指令將矢量寄存器組中源的寄存器的內(nèi)容相乘,結(jié)果存入目的寄存器中,所述矢量浮點寄存器組中源的寄存器為矢量浮點寄存器組中的一個或者幾個寄存器,所述目的寄存器為矢量浮點寄存器組的一個或者幾個寄存器。所述矢量浮點除法處理單元,指令隊列和分發(fā)單元接收矢量處理器送來的矢量浮點指令代碼,讀取矢量浮點除法指令,然后分發(fā)給所述矢量浮點除法處理單元;所述矢量浮點除法處理單元根據(jù)所述矢量浮點除法指令將矢量寄存器組中源的寄存器的內(nèi)容相除,結(jié)果存入目的寄存器中,所述矢量浮點寄存器組中源的寄存器為矢量浮點寄存器組中的一個或者幾個寄存器,所述目的寄存器為矢量浮點寄存器組的一個或者幾個寄存器。所述矢量浮點三角函數(shù)單元,指令隊列和分發(fā)單元接收矢量處理器送來的矢量浮點指令代碼,讀取矢量浮點三角指令,然后分發(fā)給所述矢量浮點三角函數(shù)處理單元;所述矢量浮點三角函數(shù)處理單元根據(jù)所述矢量浮點三角函數(shù)指令將矢量寄存器組中源的寄存器的內(nèi)容做三角運算,結(jié)果存入目的寄存器中,所述矢量浮點寄存器組中源的寄存器為矢量浮點寄存器組中的一個或者幾個寄存器,所述目的寄存器為矢量浮點寄存器組的一個或者幾個寄存器。所述矢量浮點寄存器組及轉(zhuǎn)發(fā)單元,包含矢量浮點寄存器VRS0,VRS1,’"VRSn,用于存放來自矢量數(shù)據(jù)處理單元的運算數(shù)據(jù)及運算結(jié)果數(shù)據(jù),其轉(zhuǎn)發(fā)單元則從矢量寄存器組中讀寫數(shù)據(jù)并傳遞到矢量處理器的矢量寄存器組中;矢量浮點寄存器組的內(nèi)容可以通過矢量寄存器轉(zhuǎn)發(fā),或者通過矢量浮點寄存器加載。在轉(zhuǎn)發(fā)時,矢量浮點寄存器組的內(nèi)容可以通過特定指令,把矢量浮點寄存器中的數(shù)據(jù)傳送到矢量處理器的矢量寄存器中,或者存入矢量浮點寄存器中。
圖1為現(xiàn)有技術(shù)英特爾方案;圖2為本實用新型基于矢量運算的矢量浮點運算裝置的系統(tǒng)圖;圖3為本實用新型矢量浮點協(xié)處理器的結(jié)構(gòu)圖;[0046]圖4為本實用新型基于矢量運算的浮點運算裝置的流程圖;圖5為本實用新型基于矢量運算的浮點運算裝置的并行浮點乘法運算的流程圖;圖6為本實用新型矢量處理器與矢量浮點協(xié)處理器之間的連接方式示意圖;圖7為矢量浮點加法的示意圖Q56BIT);圖8為矢量浮點減法的示意圖Q56BIT);圖9為矢量浮點乘法的示意圖Q56BIT)。
具體實施方式
本實用新型提供一種基于矢量運算的浮點運算裝置,如圖2所示,包括一個矢量處理器、一個存儲器、一個矢量浮點協(xié)處理器和一個矢量浮點協(xié)處理器存儲器。該裝置通過協(xié)處理器總線把矢量處理器與矢量浮點協(xié)處理器連接起來。所述的矢量浮點協(xié)處理器存儲器,用于在本地存儲作為與被加載的數(shù)據(jù)字組合在一起而加以使用操作數(shù)的數(shù)據(jù)字。這種方案是考慮到許多現(xiàn)實中的計算情況。本特性通過在本地存儲頻繁需要的數(shù)據(jù)字而將其拓展,從而使得在矢量處理器和矢量浮點協(xié)處理之間所需要的數(shù)據(jù)通道容量被有益的減少。所述的矢量處理器包括指令存儲單元、數(shù)據(jù)存儲單元、指令讀取和分發(fā)單元、矢量數(shù)據(jù)處理單元、矢量寄存器組;所述的矢量浮點協(xié)處理器,如圖3所示,包括矢量浮點協(xié)處理器接口、指令隊列和分發(fā)單元、矢量數(shù)據(jù)處理單元、矢量浮點寄存器組及轉(zhuǎn)發(fā)單元,其中矢量浮點協(xié)處理器接口,用于把矢量處理器與矢量浮點協(xié)處理器連接起來,本接口可以采用局部總線協(xié)議,如AMBA總線,APU總線等。指令隊列和分發(fā)單元,該單元將接收矢量處理器送來的指令代碼,解析指令代碼并發(fā)送給所有的矢量數(shù)據(jù)處理單元;矢量浮點加減法處理單元,該單元用來執(zhí)行浮點的加減法運算;矢量浮點乘法處理單元,該單元用來執(zhí)行浮點的乘法運算;矢量浮點除法處理單元,該單元用來執(zhí)行浮點的除法運算;矢量浮點三角函數(shù)單元,該單元用于執(zhí)行浮點的三角函數(shù)運算;矢量浮點加減法處理單元,矢量浮點乘法處理單元,矢量浮點除法單元組成矢量數(shù)據(jù)處理單元。矢量浮點寄存器組及轉(zhuǎn)發(fā)單元,包含矢量浮點寄存器VRSO,VRSl,…VRSn,用于存放來自矢量數(shù)據(jù)處理單元的運算數(shù)據(jù)及運算結(jié)果數(shù)據(jù),其轉(zhuǎn)發(fā)單元則從矢量浮點寄存器組中讀寫數(shù)據(jù)并傳遞到矢量處理器的矢量寄存器中;當然在本實用新型的矢量浮點運算裝置中還可以加入其他的浮點協(xié)處理器等,如濾波協(xié)處理器等。該裝置設(shè)計的數(shù)據(jù)位寬可以是64bit,128bit,256bit,512bit, 1024bit, 2048bit,4096bit 等?;谑噶刻幚砥髋c矢量浮點協(xié)處理器之間的連接有很多種方案,本實用新型基于矢量運算的浮點運算裝置,著重講解矢量浮點協(xié)處理器,矢量處理器與矢量浮點協(xié)處理器之間的連接不在本實用新型之列,但為了大家容易理解,本實用新型給出其中的2種連接方案,如圖2、圖6所示。[0066]本實用新型提供的基于矢量運算的浮點運算裝置,以浮點乘法、矢量寬度為 256BIT為例,如圖5所示,具體說明如下一、完成矢量寄存器到矢量浮點協(xié)處理器的數(shù)據(jù)傳送A)在矢量處理器中,從存儲器把參與運算的矢量數(shù)據(jù)A加載到矢量寄存器VRO中, 矢量寄存器都是256BIT ;指令隊列和分發(fā)單元從所述矢量處理器的矢量寄存器中讀取矢量加載指令,然后分發(fā)給所述矢量數(shù)據(jù)處理單元,所述矢量數(shù)據(jù)處理單元根據(jù)所述矢量加載指令執(zhí)行矢量加載操作;即所述矢量數(shù)據(jù)處理單元根據(jù)所述矢量加載指令將待加載數(shù)據(jù)隊列從所述矢量處理器的數(shù)據(jù)存儲單元,加載到源矢量寄存器組VRO中,所述源的寄存器指定是由所述矢量加載存儲指令決定的,所述矢量數(shù)據(jù)處理單元存儲參與運算的數(shù)據(jù),可以通過加載及存儲指令把數(shù)據(jù)處理單元的數(shù)據(jù)加載到矢量寄存器組當中;B)在矢量處理器中,把參與運算的矢量數(shù)據(jù)B加載到矢量寄存器VRl中,矢量寄存器都是256BIT ;指令隊列和分發(fā)單元從所述矢量處理器的矢量寄存器中讀取矢量加載指令,然后分發(fā)給所述矢量數(shù)據(jù)處理單元,所述矢量數(shù)據(jù)處理單元根據(jù)所述矢量加載指令執(zhí)行矢量加載操作;即所述矢量數(shù)據(jù)處理單元根據(jù)所述矢量加載指令將待加載數(shù)據(jù)隊列從所述矢量處理器的數(shù)據(jù)存儲單元加載到源的矢量寄存器組中,所述源的寄存器的指定是由所述矢量加載存儲指令決定的,所述矢量數(shù)據(jù)處理單元存儲參與運算的數(shù)據(jù),可以通過加載及存儲指令把數(shù)據(jù)處理單元的數(shù)據(jù)加載到矢量寄存器組當中;C)完成矢量寄存器到矢量浮點協(xié)處理器的數(shù)據(jù)傳送通過矢量寄存器到矢量浮點協(xié)處理器的數(shù)據(jù)傳送指令,分別把矢量處理器中矢量寄存器VR0,VR1中的數(shù)據(jù)傳送到矢量浮點協(xié)處理器的矢量浮點寄存器VRSO,VRSl中。二、把浮點指令傳送到矢量浮點協(xié)處理器中A)把矢量浮點乘法指令傳送到矢量浮點協(xié)處理器中的指令隊列和分發(fā)單元矢量處理器不能執(zhí)行矢量浮點指令,通過數(shù)據(jù)總線傳送到矢量浮點協(xié)處理器的指令隊列及分發(fā)單元。所述指令隊列及分發(fā)單元對指令代碼進行解析,分發(fā)給所述矢量浮點乘法處理單元;B)所述矢量浮點乘法處理單元根據(jù)所述浮點運算指令完成矢量浮點的乘法運算, 256BIT的矢量浮點寄存器,可以看作為8個32位標量寄存器,結(jié)果存入目的寄存器即矢量浮點協(xié)處理器的矢量浮點寄存器VRS2中,所述目的寄存器的指定是由所述矢量浮點運算指令中的目的寄存器決定的。矢量浮點乘法運算單元根據(jù)其內(nèi)部的單元完成矢量浮點乘法運算。兩浮點數(shù)相乘,其乘積的階碼應(yīng)為相乘兩數(shù)的階碼之和,其乘積的尾數(shù)應(yīng)為兩相乘兩數(shù)的尾數(shù)之積。 即1.階碼相加,階碼補碼相加;2.尾數(shù)相乘,若VRSO,VRSl寄存器的尾數(shù)值不為0,則對其尾數(shù)相乘;3.尾數(shù)結(jié)果規(guī)格化。三、把矢量浮點協(xié)處理器的矢量浮點寄存器的數(shù)據(jù)傳送到矢量處理器的矢量寄存器中。[0083]通過矢量浮點協(xié)處理器的矢量浮點寄存器傳送到矢量處理器的矢量寄存器指令, 把矢量浮點協(xié)處理的矢量浮點寄存器VRS2的內(nèi)容傳送到到矢量處理器的矢量寄存器VR2 中。四、把矢量處理器的矢量寄存器中的數(shù)據(jù)存入存儲器中。以矢量浮點寄存器為256BIT為例,所述矢量浮點乘法的運算中可以看出,一次可以完成8個32位浮點乘法運算,4個雙精度浮點乘法運算。同時在執(zhí)行矢量浮點乘法運算中,還可以執(zhí)行其他的矢量浮點運算,即浮點運算可以并行處理,這種矢量浮點單元協(xié)處理器的架構(gòu)為浮點的并行運算及浮點指令的并行運算提供的基礎(chǔ)。以浮點加法、矢量寬度為256BIT為例,如圖7所示一、完成矢量寄存器到矢量浮點協(xié)處理器的數(shù)據(jù)傳送A)在矢量處理器中,從存儲器把參與運算的矢量數(shù)據(jù)A加載到矢量寄存器VRO中, 矢量寄存器都是256BIT ;指令隊列和分發(fā)單元從所述矢量處理器的矢量寄存器中讀取矢量加載指令,然后分發(fā)給所述矢量數(shù)據(jù)處理單元,所述矢量數(shù)據(jù)處理單元根據(jù)所述矢量加載指令執(zhí)行矢量加載操作;即所述矢量數(shù)據(jù)處理單元根據(jù)所述矢量加載指令將待加載數(shù)據(jù)隊列從所述矢量處理器的數(shù)據(jù)存儲單元,加載到源的矢量寄存器組VRO中,所述源的寄存器指定是由所述矢量加載存儲指令決定的,所述矢量數(shù)據(jù)處理單元存儲參與運算的數(shù)據(jù),可以通過加載及存儲指令把數(shù)據(jù)處理單元的數(shù)據(jù)加載到矢量寄存器組當中;B)在矢量處理器中,把參與運算的矢量數(shù)據(jù)B加載到矢量寄存器VRl中,矢量寄存器都是256BIT ;指令隊列和分發(fā)單元從所述矢量處理器的矢量寄存器中讀取矢量加載指令,然后分發(fā)給所述矢量數(shù)據(jù)處理單元,所述矢量數(shù)據(jù)處理單元根據(jù)所述矢量加載指令執(zhí)行矢量加載操作;即所述矢量數(shù)據(jù)處理單元根據(jù)所述矢量加載指令將待加載數(shù)據(jù)隊列從所述矢量處理器的數(shù)據(jù)存儲單元加載到源的矢量寄存器組中,所述源的寄存器的指定是由所述矢量加載存儲指令決定的,所述矢量數(shù)據(jù)處理單元存儲參與運算的數(shù)據(jù),可以通過加載及存儲指令把數(shù)據(jù)處理單元的數(shù)據(jù)加載到矢量寄存器組當中;C)完成矢量寄存器到矢量浮點協(xié)處理器的數(shù)據(jù)傳送通過矢量寄存器到矢量浮點協(xié)處理器的數(shù)據(jù)傳送指令,分別把矢量處理器中矢量寄存器VR0,VR1中的數(shù)據(jù)傳送到矢量浮點協(xié)處理器的矢量浮點寄存器VRSO,VRSl中。二、把浮點指令傳送到矢量浮點協(xié)處理器中A)把矢量浮點加法指令傳送到矢量浮點協(xié)處理器中的指令隊列和分發(fā)單元矢量處理器不能執(zhí)行矢量浮點指令,通過數(shù)據(jù)總線傳送到矢量浮點協(xié)處理器的指令隊列及分發(fā)單元。所述指令隊列及分發(fā)單元對指令代碼進行解析,分發(fā)給所述矢量浮點加法處理單元;B)所述矢量浮點加法處理單元根據(jù)所述浮點運算指令完成矢量浮點的加法運算, 256BIT的矢量浮點寄存器,可以看作為8個32位標量寄存器,結(jié)果存入目的寄存器即矢量浮點協(xié)處理器的矢量浮點寄存器VRS2中,所述目的寄存器的指定是由所述矢量浮點運算指令中的目的寄存器決定的。矢量浮點加法運算單元根據(jù)其內(nèi)部的單元完成矢量浮點加法運算。兩浮點數(shù)相加,1、0操作數(shù)的檢查判斷兩個操作數(shù)中是否有一個為0,即可得知運算結(jié)果而沒有必要再進行后續(xù)的一系列操作以節(jié)省時間。2、比較階碼大小并完成對階3、尾數(shù)求和運算4、結(jié)果規(guī)格化三、把矢量浮點協(xié)處理器的矢量浮點寄存器的數(shù)據(jù)傳送到矢量處理器的矢量寄存器中。通過矢量浮點協(xié)處理器的矢量浮點寄存器傳送到矢量處理器的矢量寄存器指令, 把矢量浮點協(xié)處理的矢量浮點寄存器VRS2的內(nèi)容傳送到到矢量處理器的矢量寄存器VR2 中。四、把矢量處理器的矢量寄存器中的數(shù)據(jù)存入存儲器中。以浮點減法、矢量寬度為256BIT為例,如圖8所示一、完成矢量寄存器到矢量浮點協(xié)處理器的數(shù)據(jù)傳送A)在矢量處理器中,從存儲器把參與運算的矢量數(shù)據(jù)A加載到矢量寄存器VRO中, 矢量寄存器都是256BIT ;指令隊列和分發(fā)單元從所述矢量處理器的矢量寄存器中讀取矢量加載指令,然后分發(fā)給所述矢量數(shù)據(jù)處理單元,所述矢量數(shù)據(jù)處理單元根據(jù)所述矢量加載指令執(zhí)行矢量加載操作;即所述矢量數(shù)據(jù)處理單元根據(jù)所述矢量加載指令將待加載數(shù)據(jù)隊列從所述矢量處理器的數(shù)據(jù)存儲單元,加載到源的矢量寄存器組VRO中,所述源的寄存器指定是由所述矢量加載存儲指令決定的,所述矢量數(shù)據(jù)處理單元存儲參與運算的數(shù)據(jù),可以通過加載及存儲指令把數(shù)據(jù)處理單元的數(shù)據(jù)加載到矢量寄存器組當中;B)在矢量處理器中,把參與運算的矢量數(shù)據(jù)B加載到矢量寄存器VRl中,矢量寄存器都是256BIT ;指令隊列和分發(fā)單元從所述矢量處理器的矢量寄存器中讀取矢量加載指令,然后分發(fā)給所述矢量數(shù)據(jù)處理單元,所述矢量數(shù)據(jù)處理單元根據(jù)所述矢量加載指令執(zhí)行矢量加載操作;即所述矢量數(shù)據(jù)處理單元根據(jù)所述矢量加載指令將待加載數(shù)據(jù)隊列從所述矢量處理器的數(shù)據(jù)存儲單元加載到源矢量寄存器組中,所述源寄存器的指定是由所述矢量加載存儲指令決定的,所述矢量數(shù)據(jù)處理單元存儲參與運算的數(shù)據(jù),可以通過加載及存儲指令把數(shù)據(jù)處理單元的數(shù)據(jù)加載到矢量寄存器組當中;C)完成矢量寄存器到矢量浮點協(xié)處理器的數(shù)據(jù)傳送通過矢量寄存器到矢量浮點協(xié)處理器的數(shù)據(jù)傳送指令,分別把矢量處理器中矢量寄存器VR0,VR1中的數(shù)據(jù)傳送到矢量浮點協(xié)處理器的矢量浮點寄存器VRSO,VRSl中。二、把浮點指令傳送到矢量浮點協(xié)處理器中A)把矢量浮點減法指令傳送到矢量浮點協(xié)處理器中的指令隊列和分發(fā)單元矢量處理器不能執(zhí)行矢量浮點指令,通過數(shù)據(jù)總線傳送到矢量浮點協(xié)處理器的指令隊列及分發(fā)單元。所述指令隊列及分發(fā)單元對指令代碼進行解析,分發(fā)給所述矢量浮點減法處理單元;B)所述矢量浮點減法處理單元根據(jù)所述浮點運算指令完成矢量浮點的減法運算,256BIT的矢量浮點寄存器,可以看作為8個32位標量寄存器,結(jié)果存入目的寄存器即矢量浮點協(xié)處理器的矢量浮點寄存器VRS2中,所述目的寄存器的指定是由所述矢量浮點運算指令中的目的寄存器決定的。矢量浮點加法運算單元根據(jù)其內(nèi)部的單元完成矢量浮點減法運算。兩浮點數(shù)相減,1、0操作數(shù)的檢查判斷兩個操作數(shù)中是否有一個為0,即可得知運算結(jié)果而沒有必要再進行后續(xù)的一系列操作以節(jié)省時間。2、比較階碼大小并完成對階3、尾數(shù)求減運算4、結(jié)果規(guī)格化三、把矢量浮點協(xié)處理器的矢量浮點寄存器的數(shù)據(jù)傳送到矢量處理器的矢量寄存器中。通過矢量浮點協(xié)處理器的矢量浮點寄存器傳送到矢量處理器的矢量寄存器指令, 把矢量浮點協(xié)處理的矢量浮點寄存器VRS2的內(nèi)容傳送到到矢量處理器的矢量寄存器VR2 中。四、把矢量處理器的矢量寄存器中的數(shù)據(jù)存入存儲器中。以浮點除法、矢量寬度為256BIT為例,如圖9所示一、完成矢量寄存器到矢量浮點協(xié)處理器的數(shù)據(jù)傳送A)在矢量處理器中,從存儲器把參與運算的矢量數(shù)據(jù)A加載到矢量寄存器VRO中, 矢量寄存器都是256BIT ;指令隊列和分發(fā)單元從所述矢量處理器的矢量寄存器中讀取矢量加載指令,然后分發(fā)給所述矢量數(shù)據(jù)處理單元,所述矢量數(shù)據(jù)處理單元根據(jù)所述矢量加載指令執(zhí)行矢量加載操作;即所述矢量數(shù)據(jù)處理單元根據(jù)所述矢量加載指令將待加載數(shù)據(jù)隊列從所述矢量處理器的數(shù)據(jù)存儲單元,加載到源的矢量寄存器組VRO中,所述源的寄存器指定是由所述矢量加載存儲指令決定的,所述矢量數(shù)據(jù)處理單元存儲參與運算的數(shù)據(jù),可以通過加載及存儲指令把數(shù)據(jù)處理單元的數(shù)據(jù)加載到矢量寄存器組當中;B)在矢量處理器中,把參與運算的矢量數(shù)據(jù)B加載到矢量寄存器VRl中,矢量寄存器都是256BIT ;指令隊列和分發(fā)單元從所述矢量處理器的矢量寄存器中讀取矢量加載指令,然后分發(fā)給所述矢量數(shù)據(jù)處理單元,所述矢量數(shù)據(jù)處理單元根據(jù)所述矢量加載指令執(zhí)行矢量加載操作;即所述矢量數(shù)據(jù)處理單元根據(jù)所述矢量加載指令將待加載數(shù)據(jù)隊列從所述矢量處理器的數(shù)據(jù)存儲單元加載到源矢量寄存器組中,所述源寄存器的指定是由所述矢量加載存儲指令決定的,所述矢量數(shù)據(jù)處理單元存儲參與運算的數(shù)據(jù),可以通過加載及存儲指令把數(shù)據(jù)處理單元的數(shù)據(jù)加載到矢量寄存器組當中;C)完成矢量寄存器到矢量浮點協(xié)處理器的數(shù)據(jù)傳送通過矢量寄存器到矢量浮點協(xié)處理器的數(shù)據(jù)傳送指令,分別把矢量處理器中矢量寄存器VR0,VR1中的數(shù)據(jù)傳送到矢量浮點協(xié)處理器的矢量浮點寄存器VRSO,VRSl中。二、把浮點指令傳送到矢量浮點協(xié)處理器中A)把矢量浮點減法指令傳送到矢量浮點協(xié)處理器中的指令隊列和分發(fā)單元[0136]矢量處理器不能執(zhí)行矢量浮點指令,通過數(shù)據(jù)總線傳送到矢量浮點協(xié)處理器的指令隊列及分發(fā)單元。所述指令隊列及分發(fā)單元對指令代碼進行解析,分發(fā)給所述矢量浮點除法處理單元;B)所述矢量浮點除法處理單元根據(jù)所述浮點運算指令完成矢量浮點的除法運算, 256BIT的矢量浮點寄存器,可以看作為8個32位標量寄存器,結(jié)果存入目的寄存器即矢量浮點協(xié)處理器的矢量浮點寄存器VRS2中,所述目的寄存器的指定是由所述矢量浮點運算指令中的目的寄存器決定的。矢量浮點除法運算單元根據(jù)其內(nèi)部的單元完成矢量浮點除法運算。兩浮點數(shù)相除,1、檢測操作數(shù)是否為0,并置結(jié)果符合為兩個操作數(shù)的異或。2、尾數(shù)調(diào)整,使I被除數(shù)尾數(shù)I < I除數(shù)尾數(shù)3、減階兩數(shù)階碼相減得商的階碼。4、兩數(shù)的尾數(shù)做定點除法,得到商的尾數(shù)。5、結(jié)果規(guī)格化三、把矢量浮點協(xié)處理器的矢量浮點寄存器的數(shù)據(jù)傳送到矢量處理器的矢量寄存器中。通過矢量浮點協(xié)處理器的矢量浮點寄存器傳送到矢量處理器的矢量寄存器指令, 把矢量浮點協(xié)處理的矢量浮點寄存器VRS2的內(nèi)容傳送到到矢量處理器的矢量寄存器VR2 中。四、把矢量處理器的矢量寄存器中的數(shù)據(jù)存入存儲器中。基于浮點并行運算的矢量浮點協(xié)處理單元中,還涉及到一些矢量浮點協(xié)處理器指令代碼,具體如下所示把矢量浮點協(xié)處理存儲器中的數(shù)據(jù)加載到矢量浮點協(xié)處理器中;把矢量處理器中的矢量寄存器數(shù)據(jù)傳送到矢量浮點協(xié)處理的矢量浮點寄存器中;把矢量浮點協(xié)處理中的矢量浮點寄存器的數(shù)據(jù)傳送到矢量處理器中矢量寄存器;矢量浮點的加法指令;矢量浮點的減法指令;矢量浮點的乘法指令;矢量浮點的除法指令;矢量浮點的三角函數(shù)指令。上述實施例是以浮點乘法、矢量寬度256BIT為例進行的矢量浮點運算,但所述256BIT,只是為了在舉例中容易說明,但不僅限于256BIT,也可以為64bit,U8bit, 256bit,512bit,1024bit, 2048bit,4096bit 等。
權(quán)利要求1.一種基于矢量運算的浮點運算裝置,其特征在于,包括一個矢量處理器、一個存儲器、一個矢量浮點協(xié)處理器和一個矢量浮點協(xié)處理器存儲器,其中矢量處理器與矢量浮點協(xié)處理器之間的總線接口采用通用的協(xié)處理器總線結(jié)構(gòu)。
2.根據(jù)權(quán)利要求1所述的基于矢量運算的浮點運算裝置,其特征在于,所述的矢量處理器,用于執(zhí)行指令代碼中的矢量處理指令,解析指令代碼并執(zhí)行相應(yīng)的運算,以及把不能執(zhí)行的矢量浮點協(xié)處理器指令通過矢量浮點協(xié)處理器接口總線傳送給矢量浮點協(xié)處理器;所述的存儲器,用于存儲矢量處理器的指令代碼及執(zhí)行指令代碼所需的數(shù)據(jù);所述的矢量浮點協(xié)處理器,用于執(zhí)行指令代碼中的矢量浮點協(xié)處理指令,解析指令代碼并執(zhí)行相應(yīng)的矢量浮點運算;所述的矢量浮點協(xié)處理器存儲器,用于在本地存儲作為與被加載的數(shù)據(jù)字組合在一起而加以使用操作數(shù)的數(shù)據(jù)字;通過在本地存儲頻繁需要的數(shù)據(jù)字而將其拓展,從而使得在矢量處理器和矢量浮點協(xié)處理之間所需要的數(shù)據(jù)通道容量被有益的減少。
3.根據(jù)權(quán)利要求1或2所述的基于矢量運算的浮點運算裝置,其特征在于所述的矢量處理器包括指令存儲單元、數(shù)據(jù)存儲單元、指令讀取和分發(fā)單元、矢量數(shù)據(jù)處理單元、矢量寄存器組。
4.根據(jù)權(quán)利要求1或2所述的基于矢量運算的浮點運算裝置,其特征在于所述的矢量浮點協(xié)處理器,包括矢量浮點協(xié)處理器接口、指令隊列和分發(fā)單元、矢量數(shù)據(jù)處理單元、矢量浮點寄存器組及轉(zhuǎn)發(fā)單元。
5.根據(jù)權(quán)利要求4所述的基于矢量運算的浮點運算裝置,其特征在于,所述的矢量浮點協(xié)處理器接口,用于把矢量處理器與矢量浮點協(xié)處理器連接起來,本接口采用局部總線協(xié)議;所述的指令隊列和分發(fā)單元,用于將接收矢量處理器送來的指令代碼,解析指令代碼并發(fā)送給所有的矢量數(shù)據(jù)處理單元;所述的矢量數(shù)據(jù)處理單元,用于執(zhí)行矢量浮點的各種運算,由矢量浮點加減法處理單元,矢量浮點乘法處理單元,矢量浮點除法單元,矢量浮點三角函數(shù)處理單元組成;所述的矢量浮點寄存器組及轉(zhuǎn)發(fā)單元,包含矢量浮點寄存器VRS0,VRS1,’"VRSn,用于存放來自矢量浮點加減法處理單元、矢量浮點乘法處理單元、矢量浮點除法處理單元、矢量浮點三角函數(shù)單元的運算數(shù)據(jù)及運算結(jié)果數(shù)據(jù),其轉(zhuǎn)發(fā)單元則從矢量浮點寄存器組中讀寫數(shù)據(jù)并傳遞到矢量處理器的矢量寄存器組中。
6.根據(jù)權(quán)利要求5所述的基于矢量運算的浮點運算裝置,其特征在于所述的矢量浮點協(xié)處理器接口采用的局部總線協(xié)議為高級局部總線總線或APU總線。
7.根據(jù)權(quán)利要求1所述的基于矢量運算的浮點運算裝置,其中所述的浮點運算裝置中加入濾波協(xié)處理器。
專利摘要本實用新型提出的基于矢量運算的浮點運算裝置,是一種新的硬件結(jié)構(gòu),包括一個矢量處理器、一個存儲器、一個矢量浮點協(xié)處理器和一個矢量浮點協(xié)處理器存儲器,矢量處理器與矢量浮點協(xié)處理器之間的總線接口可以采用通用的協(xié)處理器總線結(jié)構(gòu)。通過采用協(xié)處理器的方式,在保證浮點所有運算的基礎(chǔ)上,提高了浮點的運算速度及降低了設(shè)計的復(fù)雜度。
文檔編號G06F9/38GK202331425SQ20112031891
公開日2012年7月11日 申請日期2011年8月29日 優(yōu)先權(quán)日2011年8月29日
發(fā)明者孫瑞琛 申請人:江蘇中科芯核電子科技有限公司