專利名稱:處理器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及SIMD(單指令多數(shù)據(jù))類型處理器,特別涉及處理三維向量或四元組的SIMD類型處理器。
背景技術(shù):
被稱作四元數(shù)的數(shù)字被用于執(zhí)行對象旋轉(zhuǎn)、球面插值和在三維圖像處理中的類似的東西。四元組是增加了標(biāo)量值的三維向量,表示在三維空間的軸線和在軸線上的旋轉(zhuǎn)。四元組P由如下的標(biāo)量值p和三維向量U表示。
P=[p;U]設(shè)置p=Aw和U=(Ax,Ay,Az),并且利用虛數(shù)單元i、j和k,四元組P同樣如下表示。
P=Aw+Axi+Ayj+Azk虛數(shù)單元i、j和k具有如下的關(guān)系。
ii=j(luò)j=kk=ijk=-1ij=kji=-k類似的,設(shè)置四元組Q為Q=[q;V],并設(shè)置q=Bw和V=(Bx,By,Bz),Q=Bw+Bxi+Byj+Bzk通過PQ=(-AxBx-AyBy-AzBz+AwBw)+(AxBw+AyBz-AzBy+AwBx)i+(-AxBz+AyBw+AzBx+AwBy)j+(AxBy-AyBx+AzBw+AwBz)k
=Mw+Mxi+Myj+Mzk …(等式1)獲得四元組P和四元組Q的四元組的乘積PQ。
要求16乘法和12加法和減法以獲得這樣的四元組乘積的分量(Mw,Mx,My和Mz)。當(dāng)同時執(zhí)行這些操作時,可以增加必要的電路標(biāo)量。
當(dāng)兩個四元組被當(dāng)作兩個四維向量時,每個四元組乘積的分量(Mw,Mx,My和Mz)以兩個四維向量的元素(Aw,Ax,Ay和Az和Bw,Bx,By和Bz)的乘積的求和的形式給出。然而,乘積求和的順序和符號對于每個分量都不同。因此,當(dāng)電路可以執(zhí)行四維向量的元素的重排列和在乘積求和操作的同時執(zhí)行符號反轉(zhuǎn)時,四元組乘積可以由四個乘積求和操作來表示。
然而使用32位指令代碼,在包括關(guān)于指令域中符號反轉(zhuǎn)和重排列的信息的同時,所述位數(shù)不足以表示具有三個操作數(shù)的向量操作指令。因此,經(jīng)常使用這樣的裝置,該裝置通過另一個指令實(shí)現(xiàn)向量重排列和符號反轉(zhuǎn),將由重排列和符號反轉(zhuǎn)所產(chǎn)生的新的向量存儲到另一個寄存器中,然后利用該寄存器執(zhí)行操作。
例如,提供指令來執(zhí)行這樣的向量重排列和符號反轉(zhuǎn),所述指令被提供于其中指令集已經(jīng)由Intel公司開發(fā)的用于多媒體的指令集SSE中(流SIMD擴(kuò)展)、和其中指令集已經(jīng)由Motorola公司開發(fā)的用于多媒體的指令集AltiVec等中(見非專利文獻(xiàn),Intel公司在2004年的“IA-32Intel(R)Architecture Software Developer’s Manual Volume 1BasicArchitecture”,和Motorola公司在1999年6月的“AltiVec TechnologyProgramming Interface Manual”)。
發(fā)明內(nèi)容
然而,在計(jì)算四元組乘積中,即使當(dāng)使用上述指令來執(zhí)行向量重排列和符號反轉(zhuǎn),也有必要應(yīng)用一個指令來進(jìn)一步在四個內(nèi)積的每一個上執(zhí)行向量重排列和符號反轉(zhuǎn),因此增加了程序的大小。
因此希望提供響應(yīng)單指令而計(jì)算四元組乘積的SIMD類型處理器。
根據(jù)本發(fā)明的第一實(shí)施例,提供一種處理器,包括生成第一輸入向量的元素和第二輸入向量的元素的任意組合的數(shù)據(jù)操作裝置,對所述組合執(zhí)行乘積求和操作的運(yùn)算裝置,和用于根據(jù)第一輸入向量和第二輸入向量的元素的數(shù)目,通過數(shù)據(jù)操作裝置控制組合的生成,和通過運(yùn)算裝置控制乘積求和操作的重復(fù)控制裝置。因此由于對第一輸入向量和第二輸入向量的元素的任意組合重復(fù)執(zhí)行乘積求和操作而提供了一種效果。也就是,即使象四元組乘積指令的情況下,當(dāng)向量的元素的乘積求和操作的組合是復(fù)雜的時候,例如,重復(fù)控制裝置的重復(fù)控制使得四元組乘積的計(jì)算響應(yīng)一個指令而作為處理被執(zhí)行。
在第一個實(shí)施例中,重復(fù)控制裝置可以包括用于在重復(fù)控制裝置的控制下,重排列第二輸入向量的元素的重排列裝置,以及在重復(fù)控制裝置的控制下,對重排列裝置的輸出的符號反轉(zhuǎn)的符號反轉(zhuǎn)裝置。因此依據(jù)順序和符號靈活地生成第一輸入向量和第二輸入向量的元素的任意組合,因而產(chǎn)生了一種效果。
此外,重復(fù)控制裝置可以包括計(jì)數(shù)裝置,用于對對應(yīng)元素的數(shù)目的次數(shù)進(jìn)行計(jì)數(shù);以及操作控制裝置,用于根據(jù)計(jì)數(shù)裝置的計(jì)數(shù)值,控制重排列裝置和符號反轉(zhuǎn)裝置。因此由于對向量的元素的任意組合重復(fù)執(zhí)行乘積求和操作而產(chǎn)生了一種效果。
在第一個實(shí)施例中,第二輸入向量可以具有四個元素(Bx,By,Bz和Bw),以及在重復(fù)控制裝置的控制下,數(shù)據(jù)操作裝置可以順序生成第一序列(Bw,Bz,-By和Bx)、第二序列(-Bz,Bw,Bx和By)、第三序列(By,-Bx,Bw和Bz)和第四序列(-Bx,-By,-Bz和Bw)。因此由于提供了計(jì)算四元組乘積的一個向量而產(chǎn)生了一種效果。
此外,第一輸入向量可以具有四個元素(Ax,Ay,Az和Aw),以及在重復(fù)控制裝置的控制下,運(yùn)算裝置可以順序執(zhí)行第一乘積求和操作(AxBw+AyBz-AzBy+AwBx)、第二乘積求和操作(-AxBz+AyBw+AzBx+AwBy)、第三乘積求和操作(AxBy-AyBx+AzBw+AwBz)和第四乘積求和操作(-AxBx-AyBy-AzBz+AwBw)。因此由于提供了四元組乘積中的每個元素而產(chǎn)生了一種效果。
在第一個實(shí)施例中,處理器可以進(jìn)一步包括大小處理裝置,用來設(shè)置超過每個第一輸入向量和第二輸入向量的元素的數(shù)目的元素為零。因此即使在第一輸入向量和第二輸入向量的元素的數(shù)目很小的時候,由于計(jì)算了乘積求和操作的正確結(jié)果而產(chǎn)生了一種效果。
根據(jù)本發(fā)明的第二實(shí)施例,提供了一種處理器,包括保存第一輸入向量和第二輸入向量的向量保存裝置,生成第一輸入向量的元素和第二輸入向量的元素的任意組合的數(shù)據(jù)操作裝置,對所述組合執(zhí)行乘積求和操作的運(yùn)算裝置,以及用于根據(jù)第一輸入向量和第二輸入向量的元素的數(shù)目,通過數(shù)據(jù)操作裝置控制組合的生成,和通過運(yùn)算裝置控制的乘積求和操作,并產(chǎn)生作為預(yù)定元素保存在向量保存裝置的輸出向量中的乘積求和操作的結(jié)果的重復(fù)控制裝置。因此由于對由向量保存裝置保存的第一輸入向量和第二輸入向量的元素的任意組合重復(fù)執(zhí)行乘積求和操作而提供了一種效果。
根據(jù)本發(fā)明的第三實(shí)施例,提供了一種處理器,包括保存具有四個元素(Ax,Ay,Az和Aw)的第一輸入向量和具有四個元素(Bx,By,Bz和Bw)的第二輸入向量的向量保存裝置,在執(zhí)行第一輸入向量和第二輸入向量之間操作的指令中提取第一輸入向量和第二輸入向量的元素的數(shù)目的提取裝置,用于供應(yīng)第一輸入向量的元素(Ax,Ay,Az和Aw)的第一供應(yīng)裝置,用于供應(yīng)第二輸入向量的元素的第一序列(Bw,Bz,-By和Bx)、第二序列(-Bz,Bw,Bx和By)、第三序列(By,-Bx,Bw和Bz)和第四序列(-Bx,-By,-Bz和Bw)的第二供應(yīng)裝置,當(dāng)元素的數(shù)目為4時,在第一輸入向量和第二輸入向量的元素的基礎(chǔ)上順序執(zhí)行第一乘積求和操作(AxBw+AyBz-AzBy+AwBx)、第二乘積求和操作(-AxBz+AyBw+AzBx+AwBy)、第三乘積求和操作(AxBy-AyBx+AzBw+AwBz)和第四乘積求和操作(-AxBx-AyBy-AzBz+AwBw)的運(yùn)算裝置,第一輸入向量和第二輸入向量的元素由第一供應(yīng)裝置和第二供應(yīng)裝置提供,使向量保存裝置保存乘積求和操作的結(jié)果。因此由于通過設(shè)置元素的數(shù)目為4,順序生成了四元組乘積的每個元素而提供了一種效果。
在第三實(shí)施例中,當(dāng)元素?cái)?shù)為3時,在第一輸入向量和第二輸入向量的元素的基礎(chǔ)上,運(yùn)算裝置可以順序生成第一外積元素(AyBz-AzBy)、第二外積元素(-AxBz+AzBx)和第三外積元素(AxBy-AyBx),第一輸入向量和第二輸入向量的元素由第一供應(yīng)裝置和第二供應(yīng)裝置提供,使得向量保存裝置保存外積元素。因此由于通過設(shè)置元素的數(shù)目為3,順序生成外積的每個元素而提供了一種效果。
根據(jù)本發(fā)明的第四實(shí)施例,提供了一種處理器,作為指令集,具有在具有四個元素(Ax,Ay,Az和Aw)的第一輸入向量和具有四個元素(Bx,By,Bz和Bw)的第二輸入向量之間執(zhí)行操作的指令。該處理器包括提取裝置,用于在執(zhí)行第一輸入向量和第二輸入向量之間操作的指令中提取第一輸入向量和第二輸入向量的元素的數(shù)目;以及運(yùn)算裝置,用于當(dāng)元素的數(shù)目為4時,在第一輸入向量和第二輸入向量的元素的基礎(chǔ)上順序執(zhí)行第一乘積求和操作(AxBw+AyBz-AzBy+AwBx)、第二乘積求和操作(-AxBz+AyBw+AzBx+AwBy)、第三乘積求和操作(AxBy-AyBx+AzBw+AwBz)和第四乘積求和操作(-AxBx-AyBy-AzBz+AwBw),并計(jì)算四元組乘積。因此由于通過設(shè)置元素的數(shù)目為4,使得處理器執(zhí)行指令來順序生成四元組乘積的每個元素而提供了一種效果。
在第四實(shí)施例中,當(dāng)元素的數(shù)目為3時,在第一輸入向量和第二輸入向量的元素的基礎(chǔ)上,運(yùn)算裝置可以順序生成第一外積元素(AyBz-AzBy)、第二外積元素(-AxBz+AzBx)和第三外積元素(AxBy-AyBx),并計(jì)算外積。因此由于通過設(shè)置元素的數(shù)目為3使得處理器執(zhí)行指令來順序生成外積的每個元素而提供了一種效果。
本發(fā)明可以響應(yīng)單指令而產(chǎn)生計(jì)算四元組乘積的很好的效果。
附圖1是示出了根據(jù)本發(fā)明實(shí)施例的SIMD類型計(jì)算機(jī)系統(tǒng)的配置實(shí)例圖;附圖2是示出了在本發(fā)明實(shí)施例中的指令格式的實(shí)例圖;附圖3是示出了在本發(fā)明實(shí)施例中的在函數(shù)代碼和大小之間關(guān)系的圖;附圖4是表示在本發(fā)明實(shí)施例中的由指令解碼器解碼的實(shí)例圖;附圖5是示出在本發(fā)明實(shí)施例中的重復(fù)控制電路的配置的實(shí)例圖;附圖6是在本發(fā)明實(shí)施例中的由重復(fù)控制電路執(zhí)行的用于四元組乘積指令控制的實(shí)例圖;附圖7A和7B是在本發(fā)明實(shí)施例中由重復(fù)控制電路執(zhí)行的用于另一個操作指令控制的實(shí)例圖;附圖8是在本發(fā)明實(shí)施例中由重復(fù)控制電路執(zhí)行的用于另一個操作指令控制的另一個實(shí)例圖;附圖9是示出了在本發(fā)明實(shí)施例中的寄存器文件的配置的實(shí)例圖;附圖10是示出了在本發(fā)明實(shí)施例中的大小處理電路的配置的實(shí)例圖;附圖11是示出了在本發(fā)明實(shí)施例中的大小處理電路中選擇信號的內(nèi)容的實(shí)例圖;附圖12是示出了在本發(fā)明實(shí)施例中的數(shù)據(jù)操作電路配置的實(shí)例圖;附圖13是示出了在本發(fā)明實(shí)施例中的運(yùn)算單元配置的實(shí)例圖。
具體實(shí)施例方式
以下將參照附圖詳細(xì)描述本發(fā)明的優(yōu)選實(shí)施例。
附圖1是示出了根據(jù)本發(fā)明實(shí)施例的SIMD類型計(jì)算機(jī)系統(tǒng)的配置實(shí)例圖。這個SIMD類型計(jì)算機(jī)系統(tǒng)包括處理器100和指令存儲器200。處理器100包括程序計(jì)數(shù)器110、指令解碼器130、寄存器文件140、重復(fù)控制電路150、大小處理電路161和162、數(shù)據(jù)操作電路170和運(yùn)算電路180。處理器100被連接到指令存儲器200,或者處理器100包括指令存儲器200。
程序計(jì)數(shù)器110計(jì)數(shù)在指令存儲器200中被讀取的指令的地址。通過信號線119,在由程序計(jì)數(shù)器110指定的地址的基礎(chǔ)上,從指令存儲器200中讀取指令,并通過信號線209提供到指令解碼器130。指令解碼器130解碼從指令存儲器200讀取的指令,來提取指令所必需的指令操作代碼和操作數(shù)。
寄存器文件140通過信號線139被由從指令解碼器130提供的操作數(shù)訪問,并在寄存器文件140中執(zhí)行讀和寫。寄存器文件140可以同時讀取兩組數(shù)據(jù)。寄存器文件140分別通過信號線148和149提供兩組數(shù)據(jù)到大小處理電路161和162。
重復(fù)控制電路150通過信號線138接收解碼的信號。根據(jù)該信號,重復(fù)控制電路150通過信號線151控制寄存器文件140,通過信號線154和155控制數(shù)據(jù)操作電路170,并通過信號線156控制運(yùn)算單元180。當(dāng)如在四元組乘積的情況下需要多次重復(fù)操作時,重復(fù)控制電路150控制該重復(fù)。
每個大小處理電路161和162接收從寄存器文件140讀取的操作數(shù)(數(shù)據(jù)),并執(zhí)行大小處理,其中在超過通過信號線137給出的元素的數(shù)目(大小)的輸入數(shù)據(jù)部分設(shè)置值為“0”。
通過信號線169,數(shù)據(jù)操作電路170接收由大小處理電路162的大小處理產(chǎn)生的操作數(shù),并執(zhí)行例如數(shù)據(jù)解碼、符號反轉(zhuǎn)等等的數(shù)據(jù)操作。由這樣的數(shù)據(jù)操作產(chǎn)生的操作數(shù)通過信號線179提供到運(yùn)算單元180。
通過信號線156在重復(fù)控制電路150的控制下,運(yùn)算單元180對通過信號線168和信號線179提供的操作數(shù)執(zhí)行預(yù)定操作。通過信號線156在重復(fù)控制電路150的控制下,運(yùn)算單元180的操作結(jié)果通過信號線189被寫到寄存器文件140。
附圖2是示出了在本發(fā)明實(shí)施例中的指令格式的實(shí)例圖。假定在這種情況下,32位定長指令具有三種操作數(shù)作為RISC(精簡指令集計(jì)算機(jī))結(jié)構(gòu)類型指令集。處理器100被實(shí)現(xiàn)為SIMD類型處理器,其在定長指令的基礎(chǔ)上并行執(zhí)行四種操作的最大值。要注意的是,當(dāng)在以下的描述中作為例子來假定同時執(zhí)行四種操作時,本發(fā)明不局限于此,可以同時執(zhí)行任意數(shù)目的操作。
這個指令格式具有函數(shù)代碼210、大小220、寫操作數(shù)230、第一讀操作數(shù)240和第二讀操作數(shù)250。函數(shù)代碼210表示指令的操作代碼,并表示本發(fā)明實(shí)施例的運(yùn)算單元180中的操作類型。大小220表示要被操作的數(shù)據(jù)元素的數(shù)目,并被用于根據(jù)函數(shù)代碼210的控制部分。特別的,根據(jù)由解碼器131解碼的結(jié)果,選擇器132選擇大小220的一個內(nèi)容和值“1”,由此確定寫元素的數(shù)目223、第一讀元素的數(shù)目224、第二讀元素的數(shù)目225和重復(fù)的數(shù)目226。寫元素的數(shù)目223是當(dāng)數(shù)據(jù)寫到寄存器文件140時的元素的數(shù)目。每個第一讀元素的數(shù)目224和第二讀元素的數(shù)目225是當(dāng)數(shù)據(jù)從寄存器文件140讀取時的元素的數(shù)目。重復(fù)的數(shù)目226是當(dāng)重復(fù)控制電路150執(zhí)行重復(fù)控制時的重復(fù)的數(shù)目。附圖3示出了由選擇器132選擇的內(nèi)容。
參照附圖3,與函數(shù)代碼210一致,示出了寫元素的數(shù)目223、第一讀元素的數(shù)目224、第二讀元素的數(shù)目225和重復(fù)的數(shù)目226的選擇內(nèi)容。在這種情況下,函數(shù)代碼210包括四元組乘積(qmul)、內(nèi)積(dot)、加法(add)、減法(sub)、乘法(mul)、除法(div)和比較(cmp)。
在四元組乘積的情況中,例如,值“1”被給出作為寫元素的數(shù)目223,大小的內(nèi)容220被給出作為第一讀元素的數(shù)目224、第二讀元素的數(shù)目225和重復(fù)的數(shù)目226。
再參照附圖2,寫操作數(shù)230表示在寄存器文件140中的寫地址,并保存寫寄存器說明231和寫元素說明232。當(dāng)在寄存器文件140中保存多個寄存器時,該多個寄存器的每一個寄存器結(jié)合多個元素為一組,通過寫寄存器說明231指定要被寫的寄存器,通過寫元素說明232指定在那個寄存器中的元素。
第一讀操作數(shù)240和第二讀操作數(shù)250表示從寄存器文件140中執(zhí)行讀取的讀地址,并分別包括第一讀寄存器說明241和第二讀寄存器說明251。在本發(fā)明的實(shí)施例中,足夠指定要被讀的寄存器,而且并不特別需要在那個寄存器中指定元素。因此沒有提供元素說明的字段。
假定結(jié)合四個元素為一組的32字寄存器,例如,被保存為寄存器文件140的配置,需要5位用于寄存器說明,2位用于元素說明。假定相等地分配字段到操作數(shù),分配7位到每個寫操作數(shù)230、第一讀操作數(shù)240和第二讀操作數(shù)250。因?yàn)榇笮?20表示在寄存器中的元素的數(shù)目,分配2位到大小220。因此,在這種情況中,可以分配32位的9位到函數(shù)代碼210。
附圖4是表示在本發(fā)明實(shí)施例中由指令解碼器130解碼的實(shí)例圖。指令解碼器130通過信號線209解碼從指令存儲器200讀取的指令來提取以下字段。特別地,指令解碼器130輸出函數(shù)代碼210、寫元素的數(shù)目223、寫元素說明232和重復(fù)的數(shù)目226到信號線138。另外,指令解碼器130輸出寫寄存器說明231、第一讀寄存器說明241和第二讀寄存器說明251到信號線139。此外,指令解碼器130輸出第一讀元素的數(shù)目224和第二讀元素的數(shù)目225到信號線137。
附圖5是示出了在本發(fā)明實(shí)施例中重復(fù)控制電路150的配置實(shí)例圖。重復(fù)控制電路150包括重復(fù)計(jì)數(shù)器510和操作控制電路520。
在信號線138中接收重復(fù)的數(shù)目226,重復(fù)計(jì)數(shù)器510以加1的形式從初始值“1”到重復(fù)的數(shù)目226計(jì)數(shù),并通過信號線519提供計(jì)數(shù)值給操作控制電路520。
操作控制電路520根據(jù)函數(shù)代碼210、寫元素的數(shù)目223以及在信號線138中的寫元素說明232和在信號線519中的重復(fù)計(jì)數(shù)輸出寫使能到信號線151、讀重排列到信號線154、讀符號反轉(zhuǎn)到信號線155和運(yùn)算單元說明到信號線156。
在信號線151中的寫使能具有提供給寄存器文件140中的每個元素位置的一個位。例如,當(dāng)結(jié)合例如四個元素為一組的寄存器被保存為寄存器文件140的配置時,在信號線151中的寫使能由四位1511到1514形成。在信號線151中的寫使能被提供到寄存器文件140。
在信號線154中的讀重排列和在信號線155中的讀符號反轉(zhuǎn)被提供到數(shù)據(jù)操作電路170。在信號線156中的運(yùn)算單元說明被提供給運(yùn)算單元180。
附圖6是在本發(fā)明實(shí)施例中由重復(fù)控制電路150執(zhí)行的用于四元組乘積指令控制的實(shí)例圖。當(dāng)函數(shù)代碼210表示四元組乘積(qmul)時,操作控制電路520根據(jù)在信號線519中的重復(fù)計(jì)數(shù)生成控制信號。
首先,關(guān)于在信號線151中的寫使能,當(dāng)在信號線519中的重復(fù)計(jì)數(shù)表示值“1”時,在信號線151中僅僅第一位是值“1”,其它位是值“0”。因此,當(dāng)在信號線519中的重復(fù)計(jì)數(shù)表示值“1”時,在運(yùn)算單元180中的操作結(jié)果僅僅被寫到寫寄存器中的第一元素。當(dāng)在信號線519中的重復(fù)計(jì)數(shù)表示值“2”時,僅僅在信號線151中的第二位是值“1”,其它位是值“0”。因此,當(dāng)在信號線519中的重復(fù)計(jì)數(shù)表示值“2”時,運(yùn)算單元180中的操作結(jié)果僅僅被寫到寫寄存器中的第二元素。類似的,當(dāng)在信號線519中的重復(fù)計(jì)數(shù)表示值“3”時,運(yùn)算單元180中操作結(jié)果僅僅被寫到寫寄存器中的第三元素。當(dāng)在信號線519中的重復(fù)計(jì)數(shù)表示值“4”時,運(yùn)算單元180中操作結(jié)果僅僅被寫到寫寄存器中的第四元素。
在信號線154中的讀重排列表示當(dāng)原始狀態(tài)是“XYZW,”時,讀數(shù)據(jù)在信號線154中被重排列為信號線154中由讀重排列指定的狀態(tài)。當(dāng)在信號線519中的重復(fù)計(jì)數(shù)表示值“1”時,在信號線154中的讀重排列表示“WZYX”,因此表示讀數(shù)據(jù)被重排列為與排列的原始順序相反的順序。當(dāng)在信號線519中的重復(fù)計(jì)數(shù)表示值“2”時,在信號線154中的讀重排列表示“ZWXY”,因此表示讀數(shù)據(jù)被重排列,以致于第一片數(shù)據(jù)成為第三片數(shù)據(jù)、第二片數(shù)據(jù)成為第四片數(shù)據(jù)、第三片數(shù)據(jù)成為第一片數(shù)據(jù)和第四片數(shù)據(jù)變成第二片數(shù)據(jù)。類似的,當(dāng)在信號線519中的重復(fù)計(jì)數(shù)表示值“3”時,讀數(shù)據(jù)被重排列為“YXWZ”。當(dāng)在信號線519中的重復(fù)計(jì)數(shù)表示值“4”時,讀數(shù)據(jù)以“XYZW”狀態(tài)被輸出(即,輸入實(shí)際上是輸出)。
在信號線155中的讀符號反轉(zhuǎn)表示,當(dāng)對應(yīng)符號為“P”時,在具有經(jīng)過上述重排列的數(shù)據(jù)上不執(zhí)行符號反轉(zhuǎn),當(dāng)對應(yīng)符號為“N”時在數(shù)據(jù)上執(zhí)行符號反轉(zhuǎn)。當(dāng)在信號線519中的重復(fù)計(jì)數(shù)表示值“1”時,在信號線155中的讀符號反轉(zhuǎn)表示“PPNP”,因此表示符號反轉(zhuǎn)僅僅在第三片數(shù)據(jù)上執(zhí)行。當(dāng)在信號線519中的重復(fù)計(jì)數(shù)表示值“2”時,在信號線155中的讀符號反轉(zhuǎn)表示“NPPP”,因此表示符號反轉(zhuǎn)僅僅在第一片數(shù)據(jù)上執(zhí)行。類似的,當(dāng)在信號線519中的重復(fù)計(jì)數(shù)表示值“3”時,符號反轉(zhuǎn)僅僅在第二片數(shù)據(jù)上執(zhí)行。當(dāng)在信號線519中的重復(fù)計(jì)數(shù)表示值“4”時,僅僅在除了第四片數(shù)據(jù)之外的數(shù)據(jù)上執(zhí)行符號反轉(zhuǎn)。
在信號線154中的讀重排列和在信號線155中的讀符號反轉(zhuǎn)對應(yīng)于上述等式1中的四元組乘積的元素的組合順序和符號。
表示內(nèi)積的值“5”被輸出作為信號線156中的運(yùn)算單元說明。這個值不依賴于信號線519中的重復(fù)計(jì)數(shù)。
附圖7A和7B是在本發(fā)明實(shí)施例中由重復(fù)控制電路150執(zhí)行的用于另一個操作指令控制的實(shí)例圖。附圖7A是當(dāng)函數(shù)代碼210代表加法(add)、減法(sub)、乘法(mul)、除法(div)或者比較(cmp)時,在信號線151中的寫使能內(nèi)容的圖。附圖7B是當(dāng)函數(shù)代碼210代表內(nèi)積(dot)時,在信號線151中的寫使能內(nèi)容的圖。
參照附圖7A,在函數(shù)代碼210代表加法等等的情況中,當(dāng)在信號線138中的寫元素的數(shù)目223為值“1”時,僅僅在信號線151中的寫使能信號的第一位是值“1”,寫使能的其它位是值“0”。當(dāng)在信號線138中的寫元素的數(shù)目223為值“2”時,在信號線151中的寫使能的第一位和第二位是值“1”,寫使能的其它位是值“0”。當(dāng)在信號線138中的寫元素的數(shù)目223為值“3”時,僅僅在信號線151中的寫使能的第四位是值“0”,寫使能的其它位是值“1”。當(dāng)在信號線138中的寫元素的數(shù)目223為值“4”時,在信號線151中的寫使能的所有位是值“1”。
參照附圖7B,在函數(shù)代碼210表示內(nèi)積的情況中,當(dāng)在信號線138中的寫元素說明232為值“X”時,僅僅在信號線151中的寫使能的第一位為值“1”,寫使能的其它位為值“0”。當(dāng)在信號線138中的寫元素說明232為值“Y”時,僅僅在信號線151中的寫使能的第二位為值“1”,寫使能的其它位為值“0”。當(dāng)在信號線138中的寫元素說明232為值“Z”時,僅僅在信號線151中的寫使能的第三位為值“1”,寫使能的其它位為值“0”。當(dāng)在信號線138中的寫元素說明232為值“W”時,僅僅在信號線151中的寫使能的第四位為值“1”,寫使能的其它位為值“0”。
附圖8是在本發(fā)明實(shí)施例中由重復(fù)控制電路150執(zhí)行的用于另一個操作指令控制的另一個實(shí)例圖。當(dāng)函數(shù)代碼210表示加法、減法、乘法、除法、比較或者內(nèi)積時,在信號線519中的重復(fù)計(jì)數(shù)始終表示值“1”,在信號線154中的讀重排列表示“XYZW”,在信號線155中的讀符號反轉(zhuǎn)表示“PPPP”。這意味著不在運(yùn)算單元180中執(zhí)行多個重復(fù),并且也不執(zhí)行讀數(shù)據(jù)的重排列和符號反轉(zhuǎn)。
然而,通過信號線156的用于運(yùn)算單元180的運(yùn)算單元說明是必要的。在加法的情況中,值“0”被指定。在減法的情況中,值“1”被指定。在乘法的情況中,值“2”被指定。在除法的情況中,值“3”被指定。在比較的情況中,值“4”被指定。在內(nèi)積的情況中,值“5”被指定。
附圖9是示出了在本發(fā)明實(shí)施例中寄存器文件140的配置實(shí)例圖。寄存器文件140在垂直方向被提供有地址,使得四個元素作為一個寄存器在水平方向被同時訪問。假定在這種情況中,四元組的x分量被保存在左起的第一元素中,四元組的y分量被保存在第二元素中,四元組的z分量被保存在第三元素中,以及四元組的w分量(標(biāo)量分量)被保存在第四元素中。
在寄存器140中的訪問地址通過信號線139由指令解碼器130提供。在信號線139中,第一讀寄存器說明241和第二讀寄存器說明251表示讀地址,以及寫寄存器說明231表示寫地址。保存在由第一讀寄存器說明241表示的地址處的數(shù)據(jù)從信號線148輸出。類似的,保存在由第二讀寄存器說明251表示的地址處的數(shù)據(jù)從信號線149輸出。
從信號線189提供的數(shù)據(jù)被保存在由寫寄存器說明231表示的地址。這時,根據(jù)在信號線151中的寫使能來控制是否保存對應(yīng)的數(shù)據(jù)。特別的,當(dāng)寫使能的第一位1511表示值“1”時,數(shù)據(jù)被寫到對應(yīng)的第一元素。當(dāng)寫使能的第一位1511表示值“0”時,數(shù)據(jù)沒有被寫到對應(yīng)的第一元素。其它位的情況也一樣,當(dāng)寫使能的第二位到第四位表示值“1”時,數(shù)據(jù)被寫到對應(yīng)的元素,當(dāng)寫使能的第二位到第四位表示值“0”時,數(shù)據(jù)沒有被寫到對應(yīng)的元素。
附圖10是示出了在本發(fā)明實(shí)施例中大小處理電路161或162的配置實(shí)例圖。大小處理電路161或162分別包括雙輸入選擇器611到614或621到624。
每個雙輸入選擇器611到614通過信號線148以及根據(jù)在信號線137中第一讀元素的數(shù)目224的值“0”,選擇由寄存器文件140提供的四片數(shù)據(jù)1481到1484的一個。類似的,雙輸入選擇器621到624通過信號線149以及根據(jù)在信號線137中第二讀元素的數(shù)目225的值“0”,選擇由寄存器文件140提供的四片數(shù)據(jù)1491到1494的一個。這時,第一讀元素的數(shù)目224和第二讀元素的數(shù)目225和到雙輸入選擇器611到614和621到624的選擇信號(讀使能)有關(guān),如附圖11所示。
附圖11是示出了在本發(fā)明實(shí)施例中大小處理電路161或162中的選擇信號的內(nèi)容的實(shí)例圖。
特別地,當(dāng)在信號線137中的第一讀元素的數(shù)目224為值“1”時,僅僅雙輸入選擇器611的讀使能2241為值“1”,其它的信號為值“0”。因此,信號線1481的值被輸出到信號線1681,值“0”被輸出到信號線1682到1684。當(dāng)在信號線137中的第一讀元素的數(shù)目224為值“2”時,雙輸入選擇器611和612的讀使能2241和2242為值“1”,其它的信號為值“0”。因此,信號線1481和信號線1482的值被分別輸出到信號線1681和1682,值“0”被輸出到信號線1683和1684。當(dāng)在信號線137中的第一讀元素的數(shù)目224為值“3”時,雙輸入選擇器614的讀使能2244為值“0”,其它的信號為值“1”。因此,信號線1481到1483的值被分別輸出到信號線1681到1683,值“0”被輸出到信號線1684。當(dāng)在信號線137中的第一讀元素的數(shù)目224為值“4”時,雙輸入選擇器611到614的所有讀使能2241到2244為值“1”。因此,信號線1481到1484的值被分別輸出到信號線1681到1684。
類似的,當(dāng)在信號線137中的第二讀元素的數(shù)目225為值“1”時,僅僅雙輸入選擇器621的讀使能2251為值“1”,其它的信號為值“0”。因此,信號線1491的值被輸出到信號線1691,值“0”被輸出到信號線1692到1694。當(dāng)在信號線137中的第二讀元素的數(shù)目225為值“2”時,雙輸入選擇器621和622的讀使能2251和2252為值“1”,其它的信號為值“0”。因此,信號線1491和信號線1492的值被分別輸出到信號線1691和1692,值“0”被輸出到信號線1693和1694。當(dāng)在信號線137中的第二讀元素的數(shù)目225為值“3”時,雙輸入選擇器624的讀使能2254為值“0”,其它的信號為值“1”。因此,信號線1491到1493的值被分別輸出到信號線1691到1693,值“0”被輸出到信號線1694。當(dāng)在信號線137中的第二讀元素的數(shù)目225為值“4”時,雙輸入選擇器621到624的所有讀使能2251到2254為值“1”。因此,信號線1491到1494的值被分別輸出到信號線1691到1694。
通過將大小處理電路161和162中超過元素?cái)?shù)目(大小)的部分設(shè)置值“0”,即使在元素的數(shù)目少于4的時候,仍可以產(chǎn)生四個元素乘積結(jié)果的求和來表示內(nèi)積。另外,通過在這種情況中設(shè)置不必要的元素為零,可以避免運(yùn)算單元的不必要操作,并因此減少功耗。
附圖12是示出了在本發(fā)明實(shí)施例中數(shù)據(jù)操作電路170的配置實(shí)例圖。數(shù)據(jù)操作電路170包括四個四輸入選擇器711到714、四個符號反相器721到724和四個雙輸入選擇器731到734。
每個四輸入選擇器711到714根據(jù)在信號線154中的讀重排列1541到1544,選擇通過信號線169由大小處理電路162提供的四片數(shù)據(jù)1691到1694的一個。在信號線154中的讀重排列1541到1544由重復(fù)控制電路150提供,每個表示選擇哪個分量,如參考附圖6和附圖8所述。因此,四輸入選擇器711到714重排列數(shù)據(jù)。
符號反相器721到724分別反轉(zhuǎn)四輸入選擇器711到714的輸出的符號。接著,雙輸入選擇器731到734根據(jù)在信號線155中的讀符號反轉(zhuǎn)1551到1554,分別選擇經(jīng)過符號反相器721到724的值,或者選擇沒有經(jīng)過符號反相器721到724的值。在信號線155中的讀符號反轉(zhuǎn)1551到1554由重復(fù)控制電路150提供,每個表示是否反轉(zhuǎn)符號,如參考附圖6和附圖8所述。因此,符號反相器721到724和雙輸入選擇器731到734反轉(zhuǎn)數(shù)據(jù)的符號,并接著通過信號線179輸出四片數(shù)據(jù)1791到1794。
附圖13是示出了在本發(fā)明實(shí)施例中運(yùn)算單元180的配置實(shí)例圖。運(yùn)算單元180包括四個運(yùn)算電路組810、加法器820和四個操作結(jié)果選擇器831到834。
提供運(yùn)算電路組810來對應(yīng)四對輸入操作數(shù)。例如,每個運(yùn)算電路組810包括加法器、減法器、乘法器、除法器和比較器。加法器820接收四個運(yùn)算電路組810中乘法器的各自輸出,并計(jì)算四個乘法結(jié)果的求和。即,加法器820的輸出表示乘積求和操作的結(jié)果。
操作結(jié)果選擇器831到834根據(jù)通過信號線156由重復(fù)控制電路150提供的運(yùn)算單元說明,選擇由運(yùn)算電路組810和加法器820操作的結(jié)果,并輸出選擇結(jié)果到信號線189(1891到1894)。例如,當(dāng)運(yùn)算單元說明為“0”時,操作結(jié)果選擇器831到834選擇由運(yùn)算電路組810進(jìn)行加法的結(jié)果。當(dāng)運(yùn)算單元說明為“1”時,操作結(jié)果選擇器831到834選擇由運(yùn)算電路組810進(jìn)行減法的結(jié)果。當(dāng)運(yùn)算單元說明為“2”時,操作結(jié)果選擇器831到834選擇由運(yùn)算電路組810進(jìn)行乘法的結(jié)果。當(dāng)運(yùn)算單元說明為“3”時,操作結(jié)果選擇器831到834選擇由運(yùn)算電路組810進(jìn)行除法的結(jié)果。當(dāng)運(yùn)算單元說明為“4”時,操作結(jié)果選擇器831到834選擇由運(yùn)算電路組810進(jìn)行比較的結(jié)果。當(dāng)運(yùn)算單元說明為“5”時,操作結(jié)果選擇器831到834選擇由加法器820進(jìn)行乘積求和操作的結(jié)果。
在如上所述形成的SIMD類型計(jì)算機(jī)系統(tǒng)中,四元組乘積指令(qmul)分配四元組P和Q的四個分量到各自四維向量的元素,并生成四元組乘積PQ。特別地,以Ax、Ay、Az和Aw的順序被保存在寄存器文件140中的分量X、Y、Z和W的四維向量由第一讀操作數(shù)240指定。以Bx、By、Bz和Bw的順序被保存在寄存器文件140中的分量X、Y、Z和W的四維向量由第二讀操作數(shù)250指定。接著,大小220被設(shè)置為值“4”。因此。在寄存器文件140中指定的寫操作數(shù)230的分量X、Y、Z和W中,以Mx、My、Mz和Mw的順序獲得四元組乘積PQ。
利用三維向量U和V的內(nèi)積和外積,四元組P和四元組Q的乘積PQ可以被表示為PQ=[pq-U·V;pV+qU+U×V]其中·表示內(nèi)積,×表示外積。
假定p=0且q=0,在這種情況中四元組P和Q的乘積是PQ=[-U·V;U×V]。
可以理解的是,這個乘積PQ的分量本身形成了U和V的外積。即PQ=(AyBz-AzBy)i+(-AxBz+AzBx)j+(AxBy-AyBx)k=Nxi+Nyj+Nzk特別的,當(dāng)大小220被設(shè)置為值“3”且一個四元組乘積指令被執(zhí)行時,由第一讀操作數(shù)240指定的寄存器和由第二讀操作數(shù)250指定的寄存器都具有由大小處理電路161和162設(shè)置到零的分量W。因?yàn)榇笮?20的值“3”同樣被設(shè)置作為重復(fù)的數(shù)目226,由重復(fù)計(jì)數(shù)器510的重復(fù)計(jì)數(shù)519是“1”、“2”或者最大為“3”。在各自的設(shè)置中對分量X、Y和Z執(zhí)行三次操作來計(jì)算Mx、My和Mz。在這種情況中對于系數(shù)(Nx、Ny和Nz),p=0且q=0,這是因?yàn)榉至縒都是零,且計(jì)算了三維向量(Ax、Ay、Az)和(Bx、By、Bz)的外積。
因此,根據(jù)本發(fā)明的實(shí)施例,可以通過利用重復(fù)控制電路150對兩個四維向量的乘積求和操作重復(fù)四次來計(jì)算四元組乘積,同時,在一個向量上執(zhí)行數(shù)據(jù)操作。因此不結(jié)合多個指令就能夠計(jì)算具有單四元組乘積指令的四元組乘積,因此減少了程序的大小,并提高了指令緩沖器的利用效率。另外,既然不需要提供用于保存經(jīng)過重排列和符號反轉(zhuǎn)的中間數(shù)據(jù)的寄存器,因此可以提高寄存器的利用效率。
另外,可以通過在與計(jì)算四元組乘積的配置相同的配置中應(yīng)用三維向量來計(jì)算外積。特別地,當(dāng)在函數(shù)代碼210中指定四元組乘積指令(qmul)時,可以通過設(shè)置大小220為值“4”來計(jì)算四元組乘積??梢酝ㄟ^設(shè)置大小220為值“3”來計(jì)算外積。
要注意的是,雖然本發(fā)明的實(shí)施例表示體現(xiàn)本發(fā)明的例子,并與隨后所說明的特定創(chuàng)造性的項(xiàng)目有關(guān),但本發(fā)明不局限于此,在不脫離本發(fā)明精神的情況下可以進(jìn)行各種修改。
例如,數(shù)據(jù)操作裝置對應(yīng)數(shù)據(jù)操作電路170。例如,運(yùn)算裝置對應(yīng)運(yùn)算單元180。例如,重復(fù)控制裝置對應(yīng)重復(fù)控制電路150。
例如,重排列裝置對應(yīng)選擇器711到714。例如,符號反轉(zhuǎn)裝置對應(yīng)符號反相器721到724和選擇器731到734。
例如,計(jì)數(shù)裝置對應(yīng)重復(fù)計(jì)數(shù)器510。例如,操作控制裝置對應(yīng)操作控制電路520。
例如,大小處理裝置對應(yīng)大小處理電路161和162。
例如,向量保存裝置對應(yīng)寄存器文件140。例如,數(shù)據(jù)操作裝置對應(yīng)數(shù)據(jù)操作電路170。例如,運(yùn)算裝置對應(yīng)運(yùn)算單元180。例如,重復(fù)控制裝置對應(yīng)重復(fù)控制電路150。
例如,向量保存裝置對應(yīng)寄存器文件140。例如,提取裝置對應(yīng)指令解碼器130。例如,第一供應(yīng)裝置對應(yīng)寄存器文件140。例如,第二供應(yīng)裝置對應(yīng)數(shù)據(jù)操作電路170。例如,運(yùn)算裝置對應(yīng)運(yùn)算單元180。
例如,提取裝置對應(yīng)指令解碼器130。例如,運(yùn)算裝置對應(yīng)運(yùn)算單元180。
要注意的是,在本發(fā)明實(shí)施例中所述的處理過程可以被解釋為具有一系列步驟的方法、或者解釋為使計(jì)算機(jī)執(zhí)行一系列程序的程序或存儲該程序的記錄介質(zhì)。
例如,作為本發(fā)明實(shí)際使用的例子,本發(fā)明可以應(yīng)用到執(zhí)行向量操作的SIMD類型處理器。
本領(lǐng)域技術(shù)人員可以理解的是,在附加的權(quán)利要求書或與之等價的范圍之內(nèi),可以根據(jù)設(shè)計(jì)要求和其它因素產(chǎn)生各種修改、組合、子組合和替換。
權(quán)利要求
1.一種處理器,包括數(shù)據(jù)操作裝置,用于生成第一輸入向量的元素和第二輸入向量的元素的任意組合;運(yùn)算裝置,用于對所述組合執(zhí)行乘積求和操作;以及重復(fù)控制裝置,用于根據(jù)所述第一輸入向量和所述第二輸入向量的元素的數(shù)目,通過所述數(shù)據(jù)操作裝置控制所述組合的生成,并通過所述運(yùn)算裝置控制所述乘積求和操作。
2.如權(quán)利要求1所述的處理器,其中所述重復(fù)控制裝置包括重排列裝置,用于在所述重復(fù)控制裝置的控制下,重排列所述第二輸入向量的元素;以及符號反轉(zhuǎn)裝置,用于在所述重復(fù)控制裝置的控制下,反轉(zhuǎn)所述重排列裝置輸出的符號。
3.如權(quán)利要求2所述的處理器,其中所述重復(fù)控制裝置包括計(jì)數(shù)裝置,用于對相應(yīng)于所述元素的數(shù)目的次數(shù)計(jì)數(shù);以及操作控制裝置,用于根據(jù)所述計(jì)數(shù)裝置的計(jì)數(shù)值,控制所述重排列裝置和所述符號反轉(zhuǎn)裝置。
4.如權(quán)利要求1所述的處理器,其中所述第二輸入向量具有四個元素(Bx,By,Bz和Bw),以及在所述重復(fù)控制裝置的控制下,所述數(shù)據(jù)操作裝置順序生成第一序列(Bw,Bz,-By和Bx)、第二序列(-Bz,Bw,Bx和By)、第三序列(By,-Bx,Bw和Bz)和第四序列(-Bx,-By,-Bz和Bw)。
5.如權(quán)利要求4所述的處理器,其中所述第一輸入向量具有四個元素(Ax,Ay,Az和Aw),以及在所述重復(fù)控制裝置的控制下,所述運(yùn)算裝置順序執(zhí)行第一乘積求和操作(AxBw+AyBz-AzBy+AwBx)、第二乘積求和操作(-AxBz+AyBw+AzBx+AwBy)、第三乘積求和操作(AxBy-AyBx+AzBw+AwBz)和第四乘積求和操作(-AxBx-AyBy-AzBz+AwBw)。
6.如權(quán)利要求1所述的處理器,進(jìn)一步包括大小處理裝置,用于設(shè)置超過每個所述第一輸入向量和所述第二輸入向量的所述元素的數(shù)目的元素為零。
7.一種處理器,包括向量保存裝置,用于保存第一輸入向量和第二輸入向量;數(shù)據(jù)操作裝置,用于生成所述第一輸入向量的元素和所述第二輸入向量的元素的任意組合;運(yùn)算裝置,用于對所述組合執(zhí)行乘積求和操作;以及重復(fù)控制裝置,用于根據(jù)所述第一輸入向量和所述第二輸入向量的元素的數(shù)目,通過所述數(shù)據(jù)操作裝置控制所述組合的生成,和通過所述運(yùn)算裝置控制所述乘積求和操作,并產(chǎn)生作為預(yù)定元素保存在所述向量保存裝置的輸出向量中的乘積求和操作的結(jié)果。
8.一種處理器,包括向量保存裝置,用于保存具有四個元素(Ax,Ay,Az和Aw)的第一輸入向量和具有四個元素(Bx,By,Bz和Bw)的第二輸入向量;提取裝置,在執(zhí)行所述第一輸入向量和所述第二輸入向量之間操作的指令中,用于提取所述第一輸入向量和所述第二輸入向量的元素的數(shù)目;第一供應(yīng)裝置,用于供應(yīng)所述第一輸入向量的元素(Ax,Ay,Az和Aw);第二供應(yīng)裝置,用于供應(yīng)所述第二輸入向量的元素的第一序列(Bw,Bz,-By和Bx)、第二序列(-Bz,Bw,Bx和By)、第三序列(By,-Bx,Bw和Bz)和第四序列(-Bx,-By,-Bz和Bw);以及運(yùn)算裝置,用于當(dāng)所述元素的數(shù)目為4時,在所述第一輸入向量和所述第二輸入向量的元素的基礎(chǔ)上順序執(zhí)行第一乘積求和操作(AxBw+AyBz-AzBy+AwBx)、第二乘積求和操作(-AxBz+AyBw+AzBx+AwBy)、第三乘積求和操作(AxBy-AyBx+AzBw+AwBz)和第四乘積求和操作(-AxBx-AyBy-AzBz+AwBw),所述第一輸入向量和所述第二輸入向量的元素由所述第一供應(yīng)裝置和所述第二供應(yīng)裝置提供,并使所述向量保存裝置保存乘積求和操作的結(jié)果。
9.如權(quán)利要求8所述的處理器,其中當(dāng)所述元素的數(shù)目為3時,在所述第一輸入向量和所述第二輸入向量的元素的基礎(chǔ)上,所述運(yùn)算裝置順序生成第一外積元素(AyBz-AzBy)、第二外積元素(-AxBz+AzBx)和第三外積元素(AxBy-AyBx),所述第一輸入向量和所述第二輸入向量的元素由所述第一供應(yīng)裝置和所述第二供應(yīng)裝置提供,并使所述向量保存裝置保存外積元素。
10.一種處理器,作為指令集,具有在具有四個元素(Ax,Ay,Az和Aw)的第一輸入向量和具有四個元素(Bx,By,Bz和Bw)的第二輸入向量之間執(zhí)行操作的指令,所述處理器包括提取裝置,在執(zhí)行所述第一輸入向量和所述第二輸入向量之間操作的指令中,用于提取所述第一輸入向量和所述第二輸入向量的元素的數(shù)目;以及運(yùn)算裝置,用于當(dāng)所述元素的數(shù)目為4時,在所述第一輸入向量和所述第二輸入向量的元素的基礎(chǔ)上順序執(zhí)行第一乘積求和操作(AxBw+AyBz-AzBy+AwBx)、第二乘積求和操作(-AxBz+AyBw+AzBx+AwBy)、第三乘積求和操作(AxBy-AyBx+AzBw+AwBz)和第四乘積求和操作(-AxBx-AyBy-AzBz+AwBw),并計(jì)算四元組乘積。
11.如權(quán)利要求10所述的處理器,其中當(dāng)所述元素的數(shù)目為3時,在所述第一輸入向量和所述第二輸入向量的元素的基礎(chǔ)上,所述運(yùn)算裝置順序生成第一外積元素(AyBz-AzBy)、第二外積元素(-AxBz+AzBx)和第三外積元素(AxBy-AyBx),并計(jì)算外積。
12.一種處理器,包括數(shù)據(jù)操作器,用于生成第一輸入向量的元素和第二輸入向量的元素的任意組合;運(yùn)算部分,用于對所述組合執(zhí)行乘積求和操作;以及重復(fù)控制器,用于根據(jù)所述第一輸入向量和所述第二輸入向量的元素的數(shù)目,通過所述數(shù)據(jù)操作器控制所述組合的生成,并通過所述運(yùn)算部分控制所述乘積求和操作。
13.一種處理器,包括向量保存器,用于保存第一輸入向量和第二輸入向量;數(shù)據(jù)操作器,用于生成所述第一輸入向量的元素和所述第二輸入向量的元素的任意組合;運(yùn)算部分,用于對所述組合執(zhí)行乘積求和操作;以及重復(fù)控制器,用于根據(jù)所述第一輸入向量和所述第二輸入向量的元素的數(shù)目,通過所述數(shù)據(jù)操作器控制所述組合的生成,和通過所述運(yùn)算部分控制所述乘積求和操作,并產(chǎn)生作為預(yù)定元素保存在所述向量保存器的輸出向量中的乘積求和操作的結(jié)果。
14.一種處理器,包括向量保存器,用于保存具有四個元素(Ax,Ay,Az和Aw)的第一輸入向量和具有四個元素(Bx,By,Bz和Bw)的第二輸入向量;提取器,在執(zhí)行所述第一輸入向量和所述第二輸入向量之間操作的指令中,用于提取所述第一輸入向量和所述第二輸入向量的元素的數(shù)目;第一供應(yīng)器,用于供應(yīng)所述第一輸入向量的元素(Ax,Ay,Az和Aw);第二供應(yīng)器,用于供應(yīng)所述第二輸入向量的元素的第一序列(Bw,Bz,-By和Bx)、第二序列(-Bz,Bw,Bx和By)、第三序列(By,-Bx,Bw和Bz)和第四序列(-Bx,-By,-Bz和Bw);以及運(yùn)算部分,用于當(dāng)所述元素的數(shù)目為4時,在所述第一輸入向量和所述第二輸入向量的元素的基礎(chǔ)上順序執(zhí)行第一乘積求和操作(AxBw+AyBz-AzBy+AwBx)、第二乘積求和操作(-AxBz+AyBw+AzBx+AwBy)、第三乘積求和操作(AxBy-AyBx+AzBw+AwBz)和第四乘積求和操作(-AxBx-AyBy-AzBz+AwBw),所述第一輸入向量和所述第二輸入向量的元素由所述第一供應(yīng)器和所述第二供應(yīng)器提供,并使所述向量保存器保存乘積求和操作的結(jié)果。
15.一種處理器,作為指令集,具有在具有四個元素(Ax,Ay,Az和Aw)的第一輸入向量和具有四個元素(Bx,By,Bz和Bw)的第二輸入向量之間執(zhí)行操作的指令,所述處理器包括提取器,在執(zhí)行所述第一輸入向量和所述第二輸入向量之間操作的指令中,用于提取所述第一輸入向量和所述第二輸入向量的元素的數(shù)目以及運(yùn)算部分,用于當(dāng)所述元素的數(shù)目為4時,在所述第一輸入向量和所述第二輸入向量的元素的基礎(chǔ)上順序執(zhí)行第一乘積求和操作(AxBw+AyBz-AzBy+AwBx)、第二乘積求和操作(-AxBz+AyBw+AzBx+AwBy)、第三乘積求和操作(AxBy-AyBx+AzBw+AwBz)和第四乘積求和操作(-AxBx-AyBy-AzBz+AwBw),并計(jì)算四元組乘積。
全文摘要
本發(fā)明提供一種處理器,包括數(shù)據(jù)操作裝置,用于生成第一輸入向量的元素和第二輸入向量的元素的任意組合;運(yùn)算裝置,用于對所述組合執(zhí)行乘積求和操作;和重復(fù)控制裝置,用于根據(jù)第一輸入向量和第二輸入向量的元素的數(shù)目,通過數(shù)據(jù)操作裝置控制組合的生成,和通過運(yùn)算裝置控制乘積求和操作。
文檔編號G06F15/80GK1783054SQ20051002303
公開日2006年6月7日 申請日期2005年11月22日 優(yōu)先權(quán)日2004年11月22日
發(fā)明者坂口浩章, 長谷川浩一 申請人:索尼株式會社