新四季網

處理器的製作方法

2023-07-22 07:14:56 2

專利名稱:處理器的製作方法
技術領域:
本發明涉及DSP或CPU等處理器,尤其是涉及執行SIMD型命令的處理器。
背景技術:
以前,作為支持SIMD(Single Instruction Multiple Data單命令多數據流)型命令的處理器,有美國因特爾公司的Pentium(R)/Pentium(R)III/Pentium(R)4的MMX/SSE/SSE2等。
例如,若是MMX,則以64比特長的MMX寄存器中存儲的最大8個整數為對象,可由1個命令來執行相同的操作。
但是,在上述現有處理器中,存在對作為SIMD運算對象的操作數(operand)位置的約束多的問題。
例如,在第1寄存器的上位數位和下位數位中分別存儲數值A及B、在第2寄存器的上位數位和下位數位中分別存儲數值C及D的狀態下,在由現有處理器執行將第1寄存器和第2寄存器設為操作數的SIMD型加法命令的情況下,得到的加法值為A+C及B+D。即,得到存儲在兩寄存器的上位數位中的數據彼此的加法值和存儲在兩寄存器的下位數位中的數據彼此的加法值,由數據在寄存器中的存儲位置來唯一確定運算對象。
因此,例如在對上述第1寄存器及第2寄存器求出A+D、及B+C的加法值的情況下,需要在調換存儲在一方寄存器中的上位數位的數據與下位數位的數據的存儲位置後,執行SIMD型的加法命令,或不使用SIMD型加法命令,而執行兩次通常的SISD(Single InstructionSingle Data單命令單數據流)型加法命令。
但是,隨著近年來的通信數位化,在需要博立葉變換或濾波處理等數位訊號處理的圖像處理或聲音處理領域中,必需對多個數據實施相同的運算處理,但此時,例如必需對位於距數據排列中的中心位置左右對稱的數據實施相同運算等處理的情況多。在這種情況下,需要反序排列作為運算對象的兩種操作數,例如,將存儲在兩個寄存器中一方上位數位中的數據與存儲在另一方下位數位中的數據作為對象,進行運算。
但是,在現有處理器的SIMD運算中,如上所述,因為必需按相同順序排列作為運算對象的操作數,所以必需操作數的重新排列等,存在數位訊號處理需要很多時間的問題。

發明內容
因此,鑑於這種狀況,本發明的目的在於提供一種處理器,執行對作為SIMD運算對象的操作數位置的約束少、適應性強的SIMD運算。具體而言,提供一種例如適於高速執行數位訊號處理的多媒體用途的處理器。
為了實現上述目的,本發明的處理器,執行由1個命令來運算多個數據的SIMD型命令,其特徵在於具備解碼單元,解碼命令;和執行單元,根據解碼單元的解碼結果,執行命令;上述執行單元在通過上述解碼單元解碼SIMD型命令的情況下,其中,SIMD型命令包含指定運算種類的命令代碼、指定n(≥2)組數據的第1操作數、和指定存儲運算結果用數據的第2操作數,對上述n組數據進行上述命令代碼指定的運算,將對所得n個運算結果分別僅移位一定位數後得到的n個值,存儲在上述第2操作數指定的第2數據中。
本發明的處理器,執行由1個命令來運算多個數據的SIMD型命令,其特徵在於具備解碼單元,解碼命令;和執行單元,根據解碼單元的解碼結果,執行命令;上述執行單元在通過上述解碼單元解碼SIMD型命令的情況下,其中,SIMD型命令包含指定運算種類的命令代碼、指定n(≥2)個數據的第1操作數、和指定存儲運算結果用數據的第2操作數,通過對上述n個數據進行上述命令代碼指定的運算,算出小於n的個數的運算結果,並將所得的運算結果存儲在上述第2操作數指定的第2數據中。
本發明的處理器,執行由1個命令來運算多個數據的SIMD型命令,其特徵在於具備解碼單元,解碼命令;和執行單元,根據解碼單元的解碼結果,執行命令;上述執行單元在通過上述解碼單元解碼SIMD型命令的情況下,其中,SIMD型命令包含指定運算種類的命令代碼、指定n(≥2)×m(≥2)個數據的第1操作數、和指定存儲運算結果用數據的第2操作數,對以n個數據為1組的各m組進行上述命令代碼指定的運算,將所得的m個運算結果存儲在上述第2操作數指定的第2數據中。
本發明的處理器,執行由1個命令來運算多個數據的SIMD型命令,其特徵在於具備解碼單元,解碼命令;和執行單元,根據解碼單元的解碼結果,執行命令;上述執行單元在通過上述解碼單元解碼SIMD型命令的情況下,其中,SIMD型命令包含指示數據擴展的命令代碼和指定n(≥2)個數據的第1操作數,對上述n個數據中的至少1個進行位寬度擴展,將所得的結果存儲在預定的寄存器中。
本發明的處理器,其特徵在於具備解碼單元,解碼命令;和執行單元,根據解碼單元的解碼結果,執行命令;上述執行單元在通過上述解碼單元解碼包含指定運算的命令代碼、n比特的第1操作數、和第2操作數的命令的情況下,對將上述第1操作數的上位m(<n)位屏蔽(mask)為0所得的值和上述第2操作數進行上述命令代碼指定的運算。
本發明的處理器,其特徵在於具備解碼單元,解碼命令;和執行單元,根據解碼單元的解碼結果,執行命令;上述執行單元在通過上述解碼單元解碼包含確定命令種類的命令代碼、n比特的第1操作數、和第2操作數的命令的情況下,連接將上述第1操作數的下位m(<n)位排列反序後的位列和上述第2操作數的一部分位。
本發明的處理器,其特徵在於具備解碼單元,解碼命令;和執行單元,根據解碼單元的解碼結果,執行命令;上述執行單元在通過上述解碼單元解碼包含確定命令種類的命令代碼和n比特的第1操作數的命令的情況下,將上述第1操作數的下位m(<n)位排列反序,並且將上述第1操作數中的除上述m位的區域的至少一部分屏蔽為0。
本發明的處理器,其特徵在於具備解碼單元,解碼命令;和執行單元,根據解碼單元的解碼結果,執行命令,上述執行單元在通過上述解碼單元解碼包含確定命令種類的命令代碼、第1操作數和第2操作數的命令的情況下,將上述第1操作數中由上述第2操作數表示的兩個位位置確定的區域屏蔽為0。
本發明的處理器,其特徵在於具備解碼單元,解碼命令;和執行單元,根據解碼單元的解碼結果,執行命令;上述執行單元在通過上述解碼單元解碼包含確定命令種類的命令代碼、第1操作數和第2操作數的命令的情況下,對上述第1操作數計數從MSB的1比特之下開始連續的符號位數的數量,並將該結果存儲在上述第2操作數中。
本發明的處理器,執行由1個命令來運算多個數據的SIMD型命令,其特徵在於具備多個寄存器;解碼單元,解碼命令;和執行單元,根據解碼單元的解碼結果,執行命令;上述執行單元在通過上述解碼單元解碼SIMD型命令的情況下,其中,SIMD型命令包含指定運算種類的命令代碼、指定n(≥2)組第1數據群的第1操作數、和指定由n個數據排列構成的第2數據群的第2操作數,對以屬於上述第1數據群的1個數據和屬於上述第2數據群的1個數據為1組的n組分別進行由上述命令代碼指示的運算的結果,將得到的n個符號位存儲在預定的寄存器中。
本發明的處理器,執行由1個命令來運算多個數據的SIMD型命令,其特徵在於具備多個寄存器;解碼單元,解碼命令;和執行單元,根據解碼單元的解碼結果,執行命令;上述執行單元在通過上述解碼單元解碼SIMD型命令的情況下,其中,SIMD型命令包含指定運算種類的命令代碼、和指定n(≥2)個數據排列構成的第1數據群的第1操作數,對以屬於上述第1數據群的1個數據和存儲在預定的寄存器中的n個符號位的1個為1組的n組分別進行由上述命令代碼指示的運算。
本發明的處理器,執行由1個命令來運算多個數據的SIMD型命令,其特徵在於具備多個寄存器;解碼單元,解碼命令;和執行單元,根據解碼單元的解碼結果,執行命令,上述執行單元在通過上述解碼單元解碼第1個SIMD型命令的情況下,其中,該第1SIMD型命令包含指示減法的命令代碼、指定n(≥2)組第1數據群的第1操作數、和指定由n個數據排列構成的第2數據群的第2操作數,對以屬於上述第1數據群的1個數據和屬於上述第2數據群的1個數據為1組的n組分別進行減法運算的結果,將得到的n個符號位存儲在預定的寄存器中,並且,在通過上述解碼單元解碼第2個SIMD型命令的情況下,其中,該第2SIMD型命令包含預定的命令代碼、和指定由n個數據排列構成的第3數據群的第3操作數,在上述預定的寄存器中存儲的n個符號位的對應的1個表示負數的情況下,對屬於上述第3數據群的n個各數據進行絕對值化。
本發明的處理器,其特徵在於具備多個寄存器;解碼單元,解碼命令;和執行單元,根據解碼單元的解碼結果,執行命令;上述執行單元在通過上述解碼單元解碼命令的情況下,其中,該命令包含指示從存儲器中讀取的命令代碼、指定存儲器上地址的第1操作數、和指定存儲讀取數據用寄存器的第2操作數,讀取從上述第1操作數指定的地址開始的存儲器區域中存儲的兩個字節數據,在將各字節數據進行位寬度擴展後,分別存儲在由上述第2操作數確定的兩個寄存器中。
本發明的處理器,其特徵在於具備多個寄存器;解碼單元,解碼命令;和執行單元,根據解碼單元的解碼結果,執行命令;上述執行單元在上述解碼單元解碼命令的情況下,其中,該命令包含指示從存儲器中讀取的命令代碼、指定存儲器上地址的第1操作數、和指定存儲讀取數據用寄存器的第2操作數,讀取從上述第1操作數指定的地址開始的存儲器區域中存儲的兩個字節數據,在將各字節數據進行位寬度擴展後,分別存儲在由上述第2操作數確定的寄存器的上位數位和下位數位中。
本發明的處理器,其特徵在於具備解碼單元,解碼命令;和執行單元,根據解碼單元的解碼結果,執行命令,上述執行單元在上述解碼單元解碼命令的情況下,其中,該命令包含指示從外部讀取數據的命令代碼、和指定讀取目的地的第1操作數,嘗試從上述第1操作數指定的外部讀取數據,在讀取失敗的情況下,將錯誤信息存儲在預定的寄存器中。
本發明的處理器,其特徵在於具備解碼單元,解碼命令;和執行單元,根據解碼單元的解碼結果,執行命令,上述執行單元在上述解碼單元解碼命令的情況下,其中,該命令包含指示向外部寫入數據的命令代碼、和指定寫入目的地的第1操作數,嘗試向上述第1操作數指定的外部寫入數據,在寫入失敗的情況下,將錯誤信息存儲在預定的寄存器中。
本發明的處理器,其特徵在於具備解碼單元,解碼命令;和執行單元,根據解碼單元的解碼結果,執行命令,上述執行單元在上述解碼單元解碼命令的情況下,其中,該命令包含指示絕對值捨入運算的命令代碼、和指定作為運算對象的1組數據的操作數,運算上述操作數指定的1組數據,在運算結果為正的情況下,進位預定的數位,在運算結果為負的情況下,捨去預定數位,由此進行絕對值捨入。
本發明的處理器執行由1個命令來運算多個數據的SIMD型命令,其特徵在於具備解碼單元,解碼命令;和執行單元,根據解碼單元的解碼結果,執行命令,上述執行單元在上述解碼單元解碼SIMD型命令的情況下,其中,SIMD型命令包含指定運算種類的命令代碼、指定由n(≥2)個數據排列構成的第1數據群的第1操作數、和指定由n個數據排列構成的第2數據群的第2操作數,對以屬於上述第1數據群的1個數據和屬於上述第2數據群的1個數據為1組的n組進行由上述命令代碼指定的運算,上述n組的至少1組由構成上述第1數據群的n個數據排列中的第i個數據和構成上述第2數據群的n個數據排列中的第j(≠i)個數據構成。
例如,上述n為2,上述第1數據群由第1個數據和第2個數據構成,上述第2數據群由第1個數據和第2個數據構成,上述執行單元在對上述第1數據群的第1個數據和第2數據群的第2個數據組成的組進行上述運算的同時,對上述第1數據群的第2個數據和第2數據群的第1個數據組成的組進行上述運算。即,運算處於交叉位置關係的各個數據。
這裡,在運算種類是乘法、積和或積差的情況下,也可僅輸出所得各運算結果的下位部分,或僅輸出上位部分,或僅輸出部分運算結果。
另外,例如,也可是上述n為2,上述第1數據群由第1個數據和第2個數據構成,上述第2數據群由第1個數據和第2個數據構成,上述執行單元在對上述第1數據群的第1個數據和第2數據群的第1個數據組成的組進行上述運算的同時,對上述第1數據群的第2個數據和第2數據群的第1個數據組成的組進行上述運算,上述執行單元又在對上述第1數據群的第1個數據和第2數據群的第2個數據組成的組進行上述運算的同時,對上述第1數據群的第2個數據和第2數據群的第2個數據組成的組進行上述運算。即,也可執行將一方的數據排列中的對象固定為特定數據的SIMD型命令。
另外,也可執行移位執行SIMD型運算所得結果後輸出、或累計n排列(矢量)數據後算出標量值、或符號擴展n個數據每個的SIMD型命令。
另外,本發明不僅可實現為執行這種特徵命令的處理器,也可實現為對多個數據等的運算處理方法,或可實現為包含特徵命令的程序。另外,不用說,這種程序可經CD-ROM等記錄媒體或網際網路等傳輸媒體進行流通。


圖1是本發明處理器的示意框圖。
圖2是該處理器的算術邏輯、比較運算器的示意圖。
圖3是表示該處理器的桶形(barrel)シタ構成的框圖。
圖4是表示該處理器的變換器構成的框圖。
圖5是表示該處理器的除法器構成的框圖。
圖6是表示該處理器的乘法、積和運算器構成的框圖。
圖7是表示該處理器的命令控制部構成的框圖。
圖8是表示該處理器的通用寄存器(R0-R31)構造的圖。
圖9是表示該處理器的連接寄存器(LR)構造的圖。
圖10是表示該處理器的分支寄存器(TAR)構造的圖。
圖11是表示該處理器的程序狀態寄存器(PSR)構造的圖。
圖12是表示該處理器的條件標誌寄存器(CFR)構造的圖。
圖13是表示該處理器的累加器(M0、M1)構造的圖。
圖14是表示該處理器的程序計數器(PC)構造的圖。
圖15是表示該處理器的PC保存用寄存器(IPC)構造的圖。
圖16是表示該處理器的PSR保存用寄存器(IPSR)構造的圖。
圖17是表示該處理器的管道(pipe-line)動作的時間圖。
圖18是表示該處理器執行命令時各管道動作的時間圖。
圖19是表示該處理器的排列動作的圖。
圖20是表示該處理器執行的命令格式的圖。
圖21是說明屬於分類[ALUadd(加法)類]的命令的圖。
圖22是說明屬於分類[ALUsub(減法)類]的命令的圖。
圖23是說明屬於分類[ALUlogic(邏輯運算)類]的命令的圖。
圖24是說明屬於分類[CMP(比較運算)類]的命令的圖。
圖25是說明屬於分類[mul(乘法)類]的命令的圖。
圖26是說明屬於分類[mac(積和運算)類]的命令的圖。
圖27是說明屬於分類[msu(積差運算)類]的命令的圖。
圖28是說明屬於分類[MEMld(存儲器讀取)類]的命令的圖。
圖29是說明屬於分類[MEMstore(存儲器寫出)類]的命令的圖。
圖30是說明屬於分類[BRA(分支)類]的命令的圖。
圖31是說明屬於分類[BSasl(算術桶形移位(barrel shift))類]的命令的圖。
圖32是說明屬於分類[BSlsr(邏輯桶形移位)類]的命令的圖。
圖33是說明屬於分類[CNVvaln(算術變換)類]的命令的圖。
圖34是說明屬於分類[CNV(一般變換)類]的命令的圖。
圖35是說明屬於分類[SATvlpk(飽和處理)類]的命令的圖。
圖36是說明屬於分類[ETC(其他)類]的命令的圖。
圖37是說明命令[ld Rb,(Ra,D10)]的圖。
圖38是說明命令[ld Rb3,(Ra3,D5)]的圖。
圖39是說明命令[ld Rb,(GP,D13)]的圖。
圖40是說明命令[ld Rb2,(GP,D6)]的圖。
圖41是說明命令[ld Rb2,(GP)]的圖。
圖42是說明命令[ld Rb,(SP,D13)]的圖。
圖43是說明命令[ld Rb2,(SP,D6)]的圖。
圖44是說明命令[ld Rb2,(SP)]的圖。
圖45是說明命令[ld Rb,(Ra+)I10]的圖。
圖46是說明命令[ld Rb,(Ra+)]的圖。
圖47是說明命令[ld Rb2,(Ra2+)]的圖。
圖48是說明命令[ld Rb,(Ra)]的圖。
圖49是說明命令[ld Rb2,(Ra2)]的圖。
圖50是說明命令[ldh Rb,(Ra,D9)]的圖。
圖51是說明命令[ldh Rb3,(Ra3,D4)]的圖。
圖52是說明命令[ldh Rb,(GP,D12)]的圖。
圖53是說明命令[ldh Rb2,(GP,D5)]的圖。
圖54是說明命令[ldh Rb2,(GP)]的圖。
圖55是說明命令[ldh Rb,(SP,D12)]的圖。
圖56是說明命令[ldh Rb2,(SP,D5)]的圖。
圖57是說明命令[ldh Rb2,(SP)]的圖。
圖58是說明命令[ldh Rb,(Ra+)I9]的圖。
圖59是說明命令[ldh Rb,(Ra+)]的圖。
圖60是說明命令[ldh Rb2,(Ra2+)]的圖。
圖61是說明命令[ldh Rb,(Ra)]的圖。
圖62是說明命令[ldh Rb2,(Ra2)]的圖。
圖63是說明命令[ldhu Rb,(Ra,D9)]的圖。
圖64是說明命令[ldhu Rb,(GP,D12)]的圖。
圖65是說明命令[ldhu Rb,(SP,D12)]的圖。
圖66是說明命令[ldhu Rb,(Ra+)I9]的圖。
圖67是說明命令[ldhu Rb,(Ra+)]的圖。
圖68是說明命令[ldhu Rb,(Ra)]的圖。
圖69是說明命令[ldb Rb,(Ra,D8)]的圖。
圖70是說明命令[ldb Rb,(GP,D11)]的圖。
圖71是說明命令[ldb Rb,(SP,D11)]的圖。
圖72是說明命令[ldb Rb,(Ra+)I8]的圖。
圖73是說明命令[ldb Rb,(Ra+)]的圖。
圖74是說明命令[ldb Rb,(Ra)]的圖。
圖75是說明命令[ldbu Rb,(Ra,D8)]的圖。
圖76是說明命令[ldbu Rb,(GP,D11)]的圖。
圖77是說明命令[ldbu Rb,(SP,D11)]的圖。
圖78是說明命令[ldbu Rb,(Ra+)I8]的圖。
圖79是說明命令[ldbu Rb,(Ra+)]的圖。
圖80是說明命令[ldbu Rb,(Ra)]的圖。
圖81是說明命令[ldp Rb:Rb+1,(Ra,D11)]的圖。
圖82是說明命令[ldp Rb:Rb+1,(GP,D14)]的圖。
圖83是說明命令[ldp Rb:Rb+1,(SP,D14)]的圖。
圖84是說明命令[ldp Rb:Rb+1,(SP,D7)]的圖。
圖85是說明命令[ldp Rb:Rb+1,(SP)]的圖。
圖86是說明命令[ldp Rb:Rb+1,(Ra+)I11]的圖。
圖87是說明命令[ldp Rb2:Rb2+1,(Ra2+)]的圖。
圖88是說明命令[ldp Rb:Rb+1,(Ra+)]的圖。
圖89是說明命令[ldp Rb:Rb+1,(Ra)]的圖。
圖90是說明命令[ldp LR:SVR,(Ra,D14)]的圖。
圖91是說明命令[ldp LR:SVR,(Ra)]的圖。
圖92是說明命令[ldp LR:SVR,(GP,D14)]的圖。
圖93是說明命令[ldp LR:SVR,(SP,D14)]的圖。
圖94是說明命令[ldp LR:SVR,(SP,D7)]的圖。
圖95是說明命令[ldp LR:SVR,(SP)]的圖。
圖96是說明命令[ldp TAR:UDR,(Ra,D11)]的圖。
圖97是說明命令[ldp TAR:UDR,(GP,D14)]的圖。
圖98是說明命令[ldp TAR:UDR,(SP,D14)]的圖。
圖99是說明命令[ldhp Rb:Rb+1,(Ra,D10)]的圖。
圖100是說明命令[ldhp Rb:Rb+1,(Ra+)I10]的圖。
圖101是說明命令[ldhp Rb2:Rb2+1,(Ra2+)]的圖。
圖102是說明命令[ldhp Rb:Rb+1,(Ra+)]的圖。
圖103是說明命令[ldhp Rb:Rb+1,(Ra)]的圖。
圖104是說明命令[ldbp Rb:Rb+1,(Ra,D9)]的圖。
圖105是說明命令[ldbp Rb:Rb+1,(Ra+)I9]的圖。
圖106是說明命令[ldbp Rb:Rb+1,(Ra+)]的圖。
圖107是說明命令[ldbp Rb:Rb+1,(Ra)]的圖。
圖108是說明命令[ldbh Rb,(Ra+)I7]的圖。
圖109是說明命令[ldbh Rb,(Ra+)]的圖。
圖110是說明命令[ldbh Rb,(Ra)]的圖。
圖111是說明命令[ldbuh Rb,(Ra+)I7]的圖。
圖112是說明命令[ldbuh Rb,(Ra+)]的圖。
圖113是說明命令[ldbuh Rb,(Ra)]的圖。
圖114是說明命令[ldbhp Rb:Rb+1,(Ra+)I7]的圖。
圖115是說明命令[ldbhp Rb:Rb+1,(Ra+)]的圖。
圖116是說明命令[ldbhp Rb:Rb+1,(Ra)]的圖。
圖117是說明命令[ldbuhp Rb:Rb+1,(Ra+)I7]的圖。
圖118是說明命令[ldbuhp Rb:Rb+1,(Ra+)]的圖。
圖119是說明命令[ldbuhp Rb:Rb+1,(Ra)]的圖。
圖120是說明命令[st(Ra,D10),Rb]的圖。
圖121是說明命令[st(Ra3,D5),Rb3]的圖。
圖122是說明命令[st(GP,D13),Rb]的圖。
圖123是說明命令[st(GP,D6),Rb2]的圖。
圖124是說明命令[st(GP),Rb2]的圖。
圖125是說明命令[st(SP,D13),Rb]的圖。
圖126是說明命令[st(SP,D6),Rb2]的圖。
圖127是說明命令[st(SP),Rb2]的圖。
圖128是說明命令[st(Ra+)I10,Rb]的圖。
圖129是說明命令[st(Ra+),Rb]的圖。
圖130是說明命令[st(Ra2+),Rb]的圖。
圖131是說明命令[st(Ra),Rb]的圖。
圖132是說明命令[st(Ra2),Rb2]的圖。
圖133是說明命令[sth(Ra,D9),Rb]的圖。
圖134是說明命令[sth(Ra3,D4),Rb3]的圖。
圖135是說明命令[sth(GP,D12),Rb]的圖。
圖136是說明命令[sth(GP,D5),Rb2]的圖。
圖137是說明命令[sth(GP),Rb2]的圖。
圖138是說明命令[sth(SP,D12),Rb]的圖。
圖139是說明命令[sth(SP,D5),Rb2]的圖。
圖140是說明命令[sth(SP),Rb2]的圖。
圖141是說明命令[sth(Ra+)I9,Rb]的圖。
圖142是說明命令[sth(Ra+),Rb]的圖。
圖143是說明命令[sth(Ra2+),Rb2]的圖。
圖144是說明命令[sth(Ra),Rb]的圖。
圖145是說明命令[st(Ra2),Rb2]的圖。
圖146是說明命令[stb(Ra,D8),Rb]的圖。
圖147是說明命令[stb(GP,D11),Rb]的圖。
圖148是說明命令[stb(SP,D11),Rb]的圖。
圖149是說明命令[stb(Ra+)I8,Rb]的圖。
圖150是說明命令[stb(Ra+),Rb]的圖。
圖151是說明命令[stb(Ra),Rb]的圖。
圖152是說明命令[stp(Ra,D11),Rb:Rb+1]的圖。
圖153是說明命令[stp(GP,D14),Rb:Rb+1]的圖。
圖154是說明命令[stp(SP,D14),Rb:Rb+1]的圖。
圖155是說明命令[stp(SP,D7),Rb:Rb+1]的圖。
圖156是說明命令[stp(SP),Rb:Rb+1]的圖。
圖157是說明命令[stp(Ra+)I11,Rb:Rb+1]的圖。
圖158是說明命令[stp(Ra+),Rb:Rb+1]的圖。
圖159是說明命令[stp(Ra2+),Rb2:Rb2+1]的圖。
圖160是說明命令[stp(Ra),Rb:Rb+1]的圖。
圖161是說明命令[stp(Ra,D11),LR:SVR]的圖。
圖162是說明命令[stp(Ra),LR:SVR]的圖。
圖163是說明命令[stp(GP,D14),LR:SVR]的圖。
圖164是說明命令[stp(SP,D14),LR:SVR]的圖。
圖165是說明命令[stp(SP,D7),LR:SVR]的圖。
圖166是說明命令[stp(SP),LR:SVR]的圖。
圖167是說明命令[stp(Ra,D11),TAR:UDR]的圖。
圖168是說明命令[stp(GP,D14),TAR:UDR]的圖。
圖169是說明命令[stp(SP,D14),TAR:UDR]的圖。
圖170是說明命令[sthp(Ra,D10),Rb:Rb+1]的圖。
圖171是說明命令[sthp(Ra+)I10,Rb:Rb+1]的圖。
圖172是說明命令[sthp(Ra+),Rb:Rb+1]的圖。
圖173是說明命令[sthp(Ra2+)I10,Rb2:Rb2+1]的圖。
圖174是說明命令[sthp(Ra),Rb:Rb+1]的圖。
圖175是說明命令[stbp(Ra,D9),Rb:Rb+1]的圖。
圖176是說明命令[stbp(Ra+)I9,Rb:Rb+1]的圖。
圖177是說明命令[stbp(Ra+),Rb:Rb+1]的圖。
圖178是說明命令[stbp(Ra),Rb:Rb+1]的圖。
圖179是說明命令[stbp(Ra+)I7,Rb]的圖。
圖180是說明命令[stbp(Ra+),Rb]的圖。
圖181是說明命令[stbp(Ra),Rb]的圖。
圖182是說明命令[stbhp(Ra+)I7,Rb:Rb+1]的圖。
圖183是說明命令[stbhp(Ra+),Rb:Rb+1]的圖。
圖184是說明命令[stbhp(Ra),Rb:Rb+1]的圖。
圖185是說明命令[dpref(Ra,D8)]的圖。
圖186是說明命令[1dstb Rb,(Ra)]的圖。
圖187是說明命令[rd C0:C1,Rb,(D11)]的圖。
圖188是說明命令[rd C0:C1,Rb,(Ra,D5)]的圖。
圖189是說明命令[rd C0:C1,Rb,(Ra)]的圖。
圖190是說明命令[rd C0:C1,Rb2,(Ra2)]的圖。
圖191是說明命令[rd C2:C3,Rb,(Ra,D5)]的圖。
圖192是說明命令[rd C2:C3,Rb,(Ra)]的圖。
圖193是說明命令[rde C0:C1,Rb,(Ra,D5)]的圖。
圖194是說明命令[rde C0:C1,Rb,(Ra)]的圖。
圖195是說明命令[rde C2:C3,Rb,(Ra,D5)]的圖。
圖196是說明命令[rde C2:C3,Rb,(Ra)]的圖。
圖197是說明命令[wt C0:C1,(D11),Rb]的圖。
圖198是說明命令[wt C0:C1,(Ra,D5),Rb]的圖。
圖199是說明命令[wt C0:C1,(Ra),Rb]的圖。
圖200是說明命令[wt C0:C1,(Ra2),Rb2]的圖。
圖201是說明命令[wt C2:C3,(Ra,D5),Rb]的圖。
圖202是說明命令[wt C2:C3,(Ra),Rb]的圖。
圖203是說明命令[wte C0:C1,(Ra,D5),Rb]的圖。
圖204是說明命令[wte C0:C1,(Ra),Rb]的圖。
圖205是說明命令[wte C2:C3,(Ra,D5),Rb]的圖。
圖206是說明命令[wte C2:C3,(Ra),Rb]的圖。
圖207是說明命令[br D20]的圖。
圖208是說明命令[br D9]的圖。
圖209是說明命令[brl D20]的圖。
圖210是說明命令[call D20]的圖。
圖211是說明命令[brl D9]的圖。
圖212是說明命令[call D9]的圖。
圖213是說明命令[jmp LR]的圖。
圖214是說明命令[jmp TAR]的圖。
圖215是說明命令[jmpl LR]的圖。
圖216是說明命令[call LR]的圖。
圖217是說明命令[jmpl TAR]的圖。
圖218是說明命令[call TAR]的圖。
圖219是說明命令[jmpr LR]的圖。
圖220是說明命令[ret]的圖。
圖221是說明命令[jmpf LR]的圖。
圖222是說明命令[jmpf C6,C2:C4,TAR]的圖。
圖223是說明命令[jmpf Cm,TAR]的圖。
圖224是說明命令[jmpf TAR]的圖。
圖225是說明命令[jloop C6,TAR,Ra,I8]的圖。
圖226是說明命令[jloop C6,TAR,Ra]的圖。
圖227是說明命令[jloop C6,TAR,Ra2]的圖。
圖228是說明命令[jloop C6,TAR,Ra2,1]的圖。
圖229是說明命令[jloop C6,Cm,TAR,Ra,I8]的圖。
圖230是說明命令[jloop C6,Cm,TAR,Ra]的圖。
圖231是說明命令[jloop C6,Cm,TAR,Ra2]的圖。
圖232是說明命令[jloop C6,Cm,TAR,Ra2,1]的圖。
圖233是說明命令[jloop C6,C2:C4,TAR,Ra,I8]的圖。
圖234是說明命令[jloop C6,C2:C4,TAR,Ra]的圖。
圖235是說明命令[jloop C6,C2:C4,TAR,Ra2]的圖。
圖236是說明命令[jloop C6,C2:C4,TAR,Ra2,1]的圖。
圖237是說明命令[jloop C5,LR,Ra,I8]的圖。
圖238是說明命令[jloop C5,LR,Ra]的圖。
圖239是說明命令[settar D9]的圖。
圖240是說明命令[settar C6,Cm,D9]的圖。
圖241是說明命令[settar C6,D9]的圖。
圖242是說明命令[settar C6,C2:C4,D9]的圖。
圖243是說明命令[settar C6,C4,D9]的圖。
圖244是說明命令[setlr D9]的圖。
圖245是說明命令[setlr C5,D9]的圖。
圖246是說明命令[setbb TAR]的圖。
圖247是說明命令[setbb LR]的圖。
圖248是說明命令[intd]的圖。
圖249是說明命令[inte]的圖。
圖250是說明命令[vmpswd]的圖。
圖251是說明命令[vmpswe]的圖。
圖252是說明命令[vmpsleep]的圖。
圖253是說明命令[vmpwait]的圖。
圖254是說明命令[vmpsus]的圖。
圖255是說明命令[rti]的圖。
圖256是說明命令[piN1(pi01,pi11,pi21,pi31,pi41,pi51,pi61,pi71]的圖。
圖257是說明命令[piN(pi0,pi1,pi2,pi3,pi4,pi5,pi6,pi7]的圖。
圖258是說明命令[scN(sc0,sc1,sc2,sc3,sc4,sc5,sc6,sc7]的圖。
圖259是說明命令[add Rc,Ra,Rb]的圖。
圖260是說明命令[add Rc3,Ra3,Rb3]的圖。
圖261是說明命令[add Ra2,Rb2]的圖。
圖262是說明命令[add Rb,Ra2,I12]的圖。
圖263是說明命令[add Ra2,I5]的圖。
圖264是說明命令[add SP,I19]的圖。
圖265是說明命令[add SP,I11]的圖。
圖266是說明命令[addu Rb,GP,I13]的圖。
圖267是說明命令[addu Rb,SP,I13]的圖。
圖268是說明命令[addu Ra3,SP,I6]的圖。
圖269是說明命令[addvw Rc,Ra,Rb]的圖。
圖270是說明命令[addvh Rc,Ra,Rb]的圖。
圖271是說明命令[addc Rc,Ra,Rb]的圖。
圖272是說明命令[adds Rc,Ra,Rb]的圖。
圖273是說明命令[addsr Rc,Ra,Rb]的圖。
圖274是說明命令[sladd Rc,Ra,Rb]的圖。
圖275是說明命令[sladd Rc3,Ra3,Rb3]的圖。
圖276是說明命令[s2add Rc,Ra,Rb]的圖。
圖277是說明命令[s2add Rc3,Ra3,Rb3]的圖。
圖278是說明命令[addmsk Rc,Ra,Rb]的圖。
圖279是說明命令[addarvw Rc,Ra,Rb]的圖。
圖280是說明命令[sub Rc,Rb,Ra]的圖。
圖281是說明命令[sub Rc3,Rb3,Ra3]的圖。
圖282是說明命令[sub Rb2,Ra2]的圖。
圖283是說明命令[sub Rb2,Ra2,I12]的圖。
圖284是說明命令[sub Ra2,I5]的圖。
圖285是說明命令[sub SP,I19]的圖。
圖286是說明命令[sub SP,I11]的圖。
圖287是說明命令[subc Rc,Rb,Ra]的圖。
圖288是說明命令[subvw Rc,Rb,Ra]的圖。
圖289是說明命令[subvh Rc,Rb,Ra]的圖。
圖290是說明命令[subs Rc,Rb,Ra]的圖。
圖291是說明命令[submsk Rc,Rb,Ra]的圖。
圖292是說明命令[rsub Rb,Ra,I8]的圖。
圖293是說明命令[rsub Ra2,I4]的圖。
圖294是說明命令[rsub Ra2,Rb2]的圖。
圖295是說明命令[neg Rb,Ra]的圖。
圖296是說明命令[neg Ra2]的圖。
圖297是說明命令[negvh Rb,Ra]的圖。
圖298是說明命令[negvw Rb,Ra]的圖。
圖299是說明命令[abs Rb,Ra]的圖。
圖300是說明命令[absvw Rb,Ra]的圖。
圖301是說明命令[absvh Rb,Ra]的圖。
圖302是說明命令[max Rc,Ra,Rb]的圖。
圖303是說明命令[min Rc,Ra,Rb]的圖。
圖304是說明命令[and Rc,Ra,Rb]的圖。
圖305是說明命令[and Ra2,Rb2]的圖。
圖306是說明命令[and Rb,Ra,I8]的圖。
圖307是說明命令[andn Rc,Ra,Rb]的圖。
圖308是說明命令[andn Ra2,Rb2]的圖。
圖309是說明命令[andn Rb,Ra,I8]的圖。
圖310是說明命令[or Rc,Ra,Rb]的圖。
圖311是說明命令[or Ra2,Rb2]的圖。
圖312是說明命令[or Rb,Ra,I8]的圖。
圖313是說明命令[xor Rc,Ra,Rb]的圖。
圖314是說明命令[xor Ra2,Rb2]的圖。
圖315是說明命令[xor Rb,Ra,I8]的圖。
圖316是說明命令[not Rb,Ra]的圖。
圖317是說明命令[not Ra2]的圖。
圖318是說明命令[cmpCC Rm,Ra,Rb]的圖。
圖319是說明命令[cmpCC C6,Ra2,Rb2]的圖。
圖320是說明命令[cmpCC]的圖。
圖321是說明命令[cmpCC R6,Ra2,I4]的圖。
圖322是說明命令[cmpCC]的圖。
圖323是說明命令[cmpCC]的圖。
圖324是說明命令[cmpCCn Cm,Ra,Rb,Cn]的圖。
圖325是說明命令[cmpCCn Cm,Ra,I5,Cn]的圖。
圖326是說明命令[cmpCCn Cm:Cm+1,Ra,Rb,Cn]的圖。
圖327是說明命令[cmpCCn Cm:Cm+1,Ra,I5,Cn]的圖。
圖328是說明命令[cmpCCa Cm:Cm+1,Ra,Rb,Cn]的圖。
圖329是說明命令[cmpCCa Cm:Cm+1,Ra,I5,Cn]的圖。
圖330是說明命令[cmpCCo Cm:Cm+1,Ra,Rb,Cn]的圖。
圖331是說明命令[cmpCCo Cm:Cm+1,Ra,I5,Cn]的圖。
圖332是說明命令[tstz Cm,Ra,Rb]的圖。
圖333是說明命令[tstz C6,Ra2,Rb2]的圖。
圖334是說明命令[tstz Cm,Ra,I5]的圖。
圖335是說明命令[tstz C6,Ra2,I4]的圖。
圖336是說明命令[tstz Cm:Cm+1,Ra,Rb]的圖。
圖337是說明命令[tstz Cm:Cm+1,Ra,I5]的圖。
圖338是說明命令[tstzn Cm,Ra,Rb,Cn]的圖。
圖339是說明命令[tstzn Cm,Ra,I5,Cn]的圖。
圖340是說明命令[tstzn Cm:Cm+1,Ra,Rb,Cn]的圖。
圖341是說明命令[tstzn Cm:Cm+1,Ra,I5,Cn]的圖。
圖342是說明命令[tstza Cm:Cm+1,Ra,Rb,Cn]的圖。
圖343是說明命令[tstza Cm:Cm+1,Ra,I5,Cn]的圖。
圖344是說明命令[tstzo Cm:Cm+1,Ra,Rb,Cn]的圖。
圖345是說明命令[tstzo Cm:Cm+1,Ra,I5,Cn]的圖。
圖346是說明命令[tstn Cm,Ra,Rb]的圖。
圖347是說明命令[tstn C6,Ra2,Rb2]的圖。
圖348是說明命令[tstn Cm,Ra,I5]的圖。
圖349是說明命令[tstn C6,Ra2,I4]的圖。
圖350是說明命令[tstn Cm:Cm+1,Ra,Rb]的圖。
圖351是說明命令[tstn Cm:Cm+1,Ra,I5]的圖。
圖352是說明命令[tstnn Cm,Ra,Rb,Cn]的圖。
圖353是說明命令[tstnn Cm,Ra,I5,Cn]的圖。
圖354是說明命令[tstnn Cm:Cm+1,Ra,Rb,Cn]的圖。
圖355是說明命令[tstnn Cm:Cm+1,Ra,I5,Cn]的圖。
圖356是說明命令[tstna Cm:Cm+1,Ra,Rb,Cn]的圖。
圖357是說明命令[tstna Cm:Cm+1,Ra,I5,Cn]的圖。
圖358是說明命令[tstno Cm:Cm+1,Ra,Rb,Cn]的圖。
圖359是說明命令[tstno Cm:Cm+1,Ra,I5,Cn]的圖。
圖360是說明命令[mov Rb,Ra]的圖。
圖361是說明命令[mov Ra2,Rb]的圖。
圖362是說明命令[mov Ra,I16]的圖。
圖363是說明命令[mov Ra2,I8]的圖。
圖364是說明命令[mov Rb,TAR]的圖。
圖365是說明命令[mov Rb2,TAR]的圖。
圖366是說明命令[mov Rb,LR]的圖。
圖367是說明命令[mov Rb2,LR]的圖。
圖368是說明命令[mov Rb,SVR]的圖。
圖369是說明命令[mov Rb,PSR]的圖。
圖370是說明命令[mov Rb,CFR]的圖。
圖371是說明命令[mov Rb,MH0]的圖。
圖372是說明命令[mov Rb2,MH0]的圖。
圖373是說明命令[mov Rb,MH1]的圖。
圖374是說明命令[mov Rb2,MH1]的圖。
圖375是說明命令[mov Rb,ML0]的圖。
圖376是說明命令[mov Rb,ML1]的圖。
圖377是說明命令[mov Rb,IPC]的圖。
圖378是說明命令[mov Rb,IPSR]的圖。
圖379是說明命令[mov Rb,PC]的圖。
圖380是說明命令[mov Rb,EPC]的圖。
圖381是說明命令[mov Rb,EPSR]的圖。
圖382是說明命令[mov Rb,PSR0]的圖。
圖383是說明命令[mov Rb,PSR1]的圖。
圖384是說明命令[mov Rb,PSR2]的圖。
圖385是說明命令[mov Rb,PSR3]的圖。
圖386是說明命令[mov Rb,CFR0]的圖。
圖387是說明命令[mov Rb,CFR1]的圖。
圖388是說明命令[mov Rb,CFR2]的圖。
圖389是說明命令[mov Rb,CFR3]的圖。
圖390是說明命令[mov LR,Rb]的圖。
圖391是說明命令[mov LR,Rb2]的圖。
圖392是說明命令[mov TAR,Rb]的圖。
圖393是說明命令[mov TAR,Rb2]的圖。
圖394是說明命令[mov SVR,Rb]的圖。
圖395是說明命令[mov PSR,Rb]的圖。
圖396是說明命令[mov CFR,Rb]的圖。
圖397是說明命令[mov MH0,Rb]的圖。
圖398是說明命令[mov MH0,Rb2]的圖。
圖399是說明命令[mov MH1,Rb]的圖。
圖400是說明命令[mov MH1,Rb2]的圖。
圖401是說明命令[mov ML0,Rb]的圖。
圖402是說明命令[mov ML1,Rb2]的圖。
圖403是說明命令[mov IPC,Rb]的圖。
圖404是說明命令[mov IPSR,Rb]的圖。
圖405是說明命令[mov EPC,Rb]的圖。
圖406是說明命令[mov EPSR,Rb]的圖。
圖407是說明命令[mov PSR0,Rb]的圖。
圖408是說明命令[mov PSR1,Rb]的圖。
圖409是說明命令[mov PSR2,Rb]的圖。
圖410是說明命令[mov PSR3,Rb]的圖。
圖411是說明命令[mov CFR0,Rb]的圖。
圖412是說明命令[mov CFR1,Rb]的圖。
圖413是說明命令[mov CFR2,Rb]的圖。
圖414是說明命令[mov CFR3,Rb]的圖。
圖415是說明命令[mvclovs Cm:Cm+1]的圖。
圖416是說明命令[movcf Ci,Cj,Cm,Cn]的圖。
圖417是說明命令[mvclcas Cm:Cm+1]的圖。
圖418是說明命令[sethi Ra,I16]的圖。
圖419是說明命令[setlo Ra,I16]的圖。
圖420是說明命令[vcchk]的圖。
圖421是說明命令[nop]的圖。
圖422是說明命令[asl Rc,Ra,Rb]的圖。
圖423是說明命令[asl Rc,Ra,I5]的圖。
圖424是說明命令[asl Ra2,I4]的圖。
圖425是說明命令[aslvw Rc,Ra,Rb]的圖。
圖426是說明命令[aslvw Rb,Ra,I5]的圖。
圖427是說明命令[aslvh Rc,Ra,Rb]的圖。
圖428是說明命令[aslvh Rb,Ra,I5]的圖。
圖429是說明命令[asr Rc,Ra,Rb]的圖。
圖430是說明命令[asr Rb,Ra,I5]的圖。
圖431是說明命令[aslvh Ra2,I4]的圖。
圖432是說明命令[asrvw Rc,Ra,Rb]的圖。
圖433是說明命令[asrvh Rc,Ra,Rb]的圖。
圖434是說明命令[lsl Rc,Ra,Rb]的圖。
圖435是說明命令[lsl Rc,Ra,I5]的圖。
圖436是說明命令[lsl Ra2,I4]的圖。
圖437是說明命令[lsr Rc,Ra,Rb]的圖。
圖438是說明命令[lsr Rb,Ra,I5]的圖。
圖439是說明命令[rol Rc,Ra,Rb]的圖。
圖440是說明命令[rol Rb,Ra,I5]的圖。
圖441是說明命令[ror Rb,Ra,I5]的圖。
圖442是說明命令[aslp Mm,Ra,Mn,Rb]的圖。
圖443是說明命令[aslp Mm,Rb,Mn,I6]的圖。
圖444是說明命令[aslp Mm,Rc,MHn,Ra,Rb]的圖。
圖445是說明命令[aslp Mm,Rb,MHn,Ra,I6]的圖。
圖446是說明命令[aslpvw Mm,Ra,Mn,Rb]的圖。
圖447是說明命令[aslpvw Mm,Rb,Mn,I6]的圖。
圖448是說明命令[asrp Mm,Ra,Mn,Rb]的圖。
圖449是說明命令[asrp Mm,Rb,Mn,I6]的圖。
圖450是說明命令[asrp Mm,Rc,MHn,Ra,Rb]的圖。
圖451是說明命令[asrp Mm,Rb,MHn,Ra,I6]的圖。
圖452是說明命令[asrpvw Mm,Ra,Mn,Rb]的圖。
圖453是說明命令[lslp Mm,Ra,Mn,Rb]的圖。
圖454是說明命令[lslp Mm,Rb,Mn,I6]的圖。
圖455是說明命令[lslp Mm,Rc,MHn,Ra,Rb]的圖。
圖456是說明命令[lslp Mm,Rc,MHn,Ra,I6]的圖。
圖457是說明命令[lsrp Mm,Ra,Mn,Rb]的圖。
圖458是說明命令[lsrp Mm,Ra,Mn,I6]的圖。
圖459是說明命令[lsrp Mm,Rc,MHn,Ra,Rb]的圖。
圖460是說明命令[lslp Mm,Rc,MHn,Ra,I6]的圖。
圖461是說明命令[extr Rc,Ra,Rb]的圖。
圖462是說明命令[extr Rb,Ra,Ib5,Ia5]的圖。
圖463是說明命令[ext Rb,Ra,I5]的圖。
圖464是說明命令[exth Ra2]的圖。
圖465是說明命令[extb Ra2]的圖。
圖466是說明命令[extru Rc,Ra,Rb]的圖。
圖467是說明命令[extru Rb,Ra,Ib5,Ia5]的圖。
圖468是說明命令[extu Rb,Ra,I5]的圖。
圖469是說明命令[exthu Ra2]的圖。
圖470是說明命令[extbu Ra2]的圖。
圖471是說明命令[mskgen Rc,Rb]的圖。
圖472是說明命令[mskgen Rb,Ib5,Ia5]的圖。
圖473是說明命令[msk Rc,Ra,Rb]的圖。
圖474是說明命令[msk Rb,Ra,Ib5,Ia5]的圖。
圖475是說明命令[satw Mm,Rb,Mn]的圖。
圖476是說明命令[sath Rb,Ra]的圖。
圖477是說明命令[sat12 Rb,Ra]的圖。
圖478是說明命令[sat9 Rb,Ra]的圖。
圖479是說明命令[satb Rb,Ra]的圖。
圖480是說明命令[satbu Rb,Ra]的圖。
圖481是說明命令[extw Mm,Rb,Ra]的圖。
圖482是說明命令[vintllh Rc,Ra,Rb]的圖。
圖483是說明命令[vintlhh Rc,Ra,Rb]的圖。
圖484是說明命令[vintllb Rc,Ra,Rb]的圖。
圖485是說明命令[vintlhb Rc,Ra,Rb]的圖。
圖486是說明命令[valn Rc,Ra,Rb]的圖。
圖487是說明命令[valn1 Rc,Ra,Rb]的圖。
圖488是說明命令[valn2 Rc,Ra,Rb]的圖。
圖489是說明命令[valn3 Rc,Ra,Rb]的圖。
圖490是說明命令[valnvc1 Rc,Ra,Rb]的圖。
圖491是說明命令[valnvc2 Rc,Ra,Rb]的圖。
圖492是說明命令[valnvc3 Rc,Ra,Rb]的圖。
圖493是說明命令[valnvc4 Rc,Ra,Rb]的圖。
圖494是說明命令[vxchngh Rb,Ra]的圖。
圖495是說明命令[byterev Rb,Ra]的圖。
圖496是說明命令[vstovb Rb,Ra]的圖。
圖497是說明命令[vstovh Rb,Ra]的圖。
圖498是說明命令[vlunpkh Rb:Rb+1,Ra]的圖。
圖499是說明命令[vlunpkhu Rb:Rb+1,Ra]的圖。
圖500是說明命令[vlunpkb Rb:Rb+1,Ra]的圖。
圖501是說明命令[vlunpkbu Rb:Rb+1,Ra]的圖。
圖502是說明命令[vhunpkh Rb:Rb+1,Ra]的圖。
圖503是說明命令[vhunpkb Rb:Rb+1,Ra]的圖。
圖504是說明命令[vunpk1 Rb,Mn]的圖。
圖505是說明命令[vunpk2 Rb,Mn]的圖。
圖506是說明命令[vlpkh Rc,Ra,Rb]的圖。
圖507是說明命令[vlpkhu Rc,Ra,Rb]的圖。
圖508是說明命令[vlpkb Rc,Ra,Rb]的圖。
圖509是說明命令[vlpkbu Rc,Ra,Rb]的圖。
圖510是說明命令[vhpkh Rc,Ra,Rb]的圖。
圖511是說明命令[vhpkb Rc,Ra,Rb]的圖。
圖512是說明命令[vexth Mm,Rb,Ra]的圖。
圖513是說明命令[bseq0 Rb,Ra]的圖。
圖514是說明命令[bseq1 Rb,Ra]的圖。
圖515是說明命令[bseq Rb,Ra]的圖。
圖516是說明命令[bcnt1 Rb,Ra]的圖。
圖517是說明命令[rndvh Rb,Ra]的圖。
圖517是說明命令[rndvh Rc,Ra,Rb]的圖。
圖518是說明命令[mskbrvb Rc,Ra,Rb]的圖。
圖519是說明命令[mskbrvh Rc,Ra,Rb]的圖。
圖520是說明命令[movp Rc:Rc+1,Ra,Rb]的圖。
圖521是說明命令[hmul Mm,Rc,Ra,Rb]的圖。
圖522是說明命令[lmul Mm,Rc,Ra,Rb]的圖。
圖523是說明命令[fmulhh Mm,Rc,Ra,Rb]的圖。
圖524是說明命令[fmulhhr Mm,Rc,Ra,Rb]的圖。
圖525是說明命令[fmulhw Mm,Rc,Ra,Rb]的圖。
圖526是說明命令[fmulhww Mm,Rc,Ra,Rb]的圖。
圖527是說明命令[mul Mm,Rc,Ra,Rb]的圖。
圖528是說明命令[mul Mm,Rc,Ra,I8]的圖。
圖529是說明命令[mulu Mm,Rc,Ra,Rb]的圖。
圖530是說明命令[mulu Mm,Rc,Ra,I8]的圖。
圖531是說明命令[fmulww Mm,Rc,Ra,Rb]的圖。
圖532是說明命令[hmac Mm,Rc,Ra,Rb,Mn]的圖。
圖533是說明命令[hmac M0,Rc,Ra,Rb,Rx]的圖。
圖534是說明命令[lmac Mm,Rc,Ra,Rb,Mn]的圖。
圖535是說明命令[lmac M0,Rc,Ra,Rb,Rx]的圖。
圖536是說明命令[fmachh Mm,Rc,Ra,Rb,Mn]的圖。
圖537是說明命令[fmachh M0,Rc,Ra,Rb,Rx]的圖。
圖538是說明命令[fmachhr Mm,Rc,Ra,Rb,Mn]的圖。
圖539是說明命令[fmachhr M0,Rc,Ra,Rb,Rx]的圖。
圖540是說明命令[fmachw Mm,Rc,Ra,Rb,Mn]的圖。
圖541是說明命令[fmachw M0,Rc,Ra,Rb,Rx]的圖。
圖542是說明命令[fmachww Mm,Rc,Ra,Rb,Mn]的圖。
圖543是說明命令[fmachww M0,Rc,Ra,Rb,Rx]的圖。
圖544是說明命令[mac Mm,Rc,Ra,Rb,Mn]的圖。
圖545是說明命令[mac M0,Rc,Ra,Rb,Rx]的圖。
圖546是說明命令[fmacww Mm,Rc,Ra,Rb,Mn]的圖。
圖547是說明命令[fmacww M0,Rc,Ra,Rb,Rx]的圖。
圖548是說明命令[hmsu Mm,Rc,Ra,Rb,Mn]的圖。
圖549是說明命令[hmsu M0,Rc,Ra,Rb,Rx]的圖。
圖550是說明命令[lmsu Mm,Rc,Ra,Rb,Mn]的圖。
圖551是說明命令[lmsu M0,Rc,Ra,Rb,Rx]的圖。
圖552是說明命令[fmsuhh Mm,Rc,Ra,Rb,Mn]的圖。
圖553是說明命令[fmsuhh M0,Rc,Ra,Rb,Rx]的圖。
圖554是說明命令[fmsuhhr Mm,Rc,Ra,Rb,Mn]的圖。
圖555是說明命令[fmsuhhr M0,Rc,Ra,Rb,Rx]的圖。
圖556是說明命令[fmsuhw Mm,Rc,Ra,Rb,Mn]的圖。
圖557是說明命令[fmsuhw M0,Rc,Ra,Rb,Rx]的圖。
圖558是說明命令[fmsuhww Mm,Rc,Ra,Rb,Mn]的圖。
圖559是說明命令[fmsuhww M0,Rc,Ra,Rb,Rx]的圖。
圖560是說明命令[msu Mm,Rc,Ra,Rb,Mn]的圖。
圖561是說明命令[msu M0,Rc,Ra,Rb,Rx]的圖。
圖562是說明命令[fmsuww Mm,Rc,Ra,Rb,Mn]的圖。
圖563是說明命令[fmsuww M0,Rc,Ra,Rb,Rx]的圖。
圖564是說明命令[div MHm,Rc,MHn,Ra,Rb]的圖。
圖565是說明命令[divu MHm,Rc,MHn,Ra,Rb]的圖。
圖566是說明命令[dbgm0]的圖。
圖567是說明命令[dbgm1]的圖。
圖568是說明命令[dbgm2 I15]的圖。
圖569是說明命令[dbgm3 I15]的圖。
圖570是說明命令[vaddh Rc,Ra,Rb]的圖。
圖571是說明命令[vxaddh Rc,Ra,Rb]的圖。
圖572是說明命令[vhaddh Rc,Ra,Rb]的圖。
圖573是說明命令[vladdh Rc,Ra,Rb]的圖。
圖574是說明命令[vaddhvh Rc,Ra,Rb]的圖。
圖575是說明命令[vxaddhvh Rc,Ra,Rb]的圖。
圖576是說明命令[vhaddhvh Rc,Ra,Rb]的圖。
圖577是說明命令[vladdhvh Rc,Ra,Rb]的圖。
圖578是說明命令[vsaddh Rb,Ra,I8]的圖。
圖579是說明命令[vaddsh Rc,Ra,Rb]的圖。
圖580是說明命令[vaddsrh Rc,Ra,Rb]的圖。
圖581是說明命令[vaddhvc Rc,Ra,Rb]的圖。
圖582是說明命令[vaddrhvc Rc,Ra,Rb]的圖。
圖583是說明命令[vaddb Rc,Ra,Rb]的圖。
圖584是說明命令[vsaddb Rb,Ra,I8]的圖。
圖585是說明命令[vaddsb Rc,Ra,Rb]的圖。
圖586是說明命令[vaddsrb Rc,Ra,Rb]的圖。
圖587是說明命令[vsubh Rc,Rb,Ra]的圖。
圖588是說明命令[vxsubh Rc,Rb,Ra]的圖。
圖589是說明命令[vhsubh Rc,Rb,Ra]的圖。
圖590是說明命令[vlsubh Rc,Rb,Ra]的圖。
圖591是說明命令[vsubhvh Rc,Rb,Ra]的圖。
圖592是說明命令[vxsubhvh Rc,Rb,Ra]的圖。
圖593是說明命令[vhsubhvh Rc,Rb,Ra]的圖。
圖594是說明命令[vlsubhvh Rc,Rb,Ra]的圖。
圖595是說明命令[vssubh Rb,Ra,I8]的圖。
圖596是說明命令[vsubb Rc,Rb,Ra]的圖。
圖597是說明命令[vssubb Rb,Ra,I8]的圖。
圖598是說明命令[vsubsh Rc,Rb,Ra]的圖。
圖599是說明命令[vsrsubh Rb,Ra,I8]的圖。
圖600是說明命令[vsrsubb Rb,Ra,I8]的圖。
圖601是說明命令[vsumh Rb,Ra]的圖。
圖602是說明命令[vsumh2 Rb,Ra]的圖。
圖603是說明命令[vsumrh2 Rb,Ra]的圖。
圖604是說明命令[vnegh Rb,Ra]的圖。
圖605是說明命令[vneghvh Rb,Ra]的圖。
圖606是說明命令[vnegb Rb,Ra]的圖。
圖607是說明命令[vabshvh Rb,Ra]的圖。
圖608是說明命令[vasubb Rc,Rb,Ra]的圖。
圖609是說明命令[vsgnh Rb,Ra]的圖。
圖610是說明命令[vmaxh Rc,Ra,Rb]的圖。
圖611是說明命令[vmaxb Rc,Ra,Rb]的圖。
圖612是說明命令[vminh Rc,Ra,Rb]的圖。
圖613是說明命令[vminb Rc,Ra,Rb]的圖。
圖614是說明命令[vsel Rc,Ra,Rb]的圖。
圖615是說明命令[vmovt Rb,Ra]的圖。
圖616是說明命令[vscmpeqb Ra,I5]的圖。
圖617是說明命令[vscmpneb Ra,I5]的圖。
圖618是說明命令[vscmpgtb Ra,I5]的圖。
圖619是說明命令[vscmpleb Ra,I5]的圖。
圖620是說明命令[vscmpgeb Ra,I5]的圖。
圖621是說明命令[vscmpltb Ra,I5]的圖。
圖622是說明命令[vscmpeqh Ra,I5]的圖。
圖623是說明命令[vscmpneh Ra,I5]的圖。
圖624是說明命令[vscmpgth Ra,I5]的圖。
圖625是說明命令[vscmpleh Ra,I5]的圖。
圖626是說明命令[vscmpgeh Ra,I5]的圖。
圖627是說明命令[vscmplth Ra,I5]的圖。
圖628是說明命令[vcmpeqh Ra,Rb]的圖。
圖629是說明命令[vcmpneh Ra,Rb]的圖。
圖630是說明命令[vcmpgth Ra,Rb]的圖。
圖631是說明命令[vcmpleh Ra,Rb]的圖。
圖632是說明命令[vcmpgeh Ra,Rb]的圖。
圖633是說明命令[vcmplth Ra,Rb]的圖。
圖634是說明命令[vcmpeqb Ra,Rb]的圖。
圖635是說明命令[vcmpneb Ra,Rb]的圖。
圖636是說明命令[vcmpgtb Ra,Rb]的圖。
圖637是說明命令[vcmpleb Ra,Rb]的圖。
圖638是說明命令[vcmpgeb Ra,Rb]的圖。
圖639是說明命令[vcmpltb Ra,Rb]的圖。
圖640是說明命令[vaslh Rc,Ra,Rb]的圖。
圖641是說明命令[vaslh Rb,Ra,I4]的圖。
圖642是說明命令[vaslvh Rc,Ra,Rb]的圖。
圖643是說明命令[vaslvh Rb,Ra,I4]的圖。
圖644是說明命令[vasrh Rb,Ra,I4]的圖。
圖645是說明命令[vasrvh Rc,Ra,Rb]的圖。
圖646是說明命令[vlslh Rc,Ra,Rb]的圖。
圖647是說明命令[vlslh Rb,Ra,I4]的圖。
圖648是說明命令[vlsrh Rc,Ra,Rb]的圖。
圖649是說明命令[vlsrh Rb,Ra,I4]的圖。
圖650是說明命令[vrolh Rc,Ra,Rb]的圖。
圖651是說明命令[vrolh Rb,Ra,I4]的圖。
圖652是說明命令[vrorh Rb,Ra,I4]的圖。
圖653是說明命令[vasrh Rc,Ra,Rb]的圖。
圖654是說明命令[vaslb Rc,Ra,Rb]的圖。
圖655是說明命令[vaslb Rb,Ra,I3]的圖。
圖656是說明命令[vasrb Rc,Ra,Rb]的圖。
圖657是說明命令[vasrb Rb,Ra,I3]的圖。
圖658是說明命令[vlslb Rc,Ra,Rb]的圖。
圖659是說明命令[vlslb Rb,Ra,I3]的圖。
圖660是說明命令[vlsrb Rc,Ra,Rb]的圖。
圖661是說明命令[vlsrb Rb,Ra,I3]的圖。
圖662是說明命令[vrolb Rc,Ra,Rb]的圖。
圖663是說明命令[vrolb Rb,Ra,I3]的圖。
圖664是說明命令[vrorb Rb,Ra,I3]的圖。
圖665是說明命令[vasl Mm,Ra,Mn,Rb]的圖。
圖666是說明命令[vasl Mm,Rb,Mn,I5]的圖。
圖667是說明命令[vaslvw Mm,Ra,Mn,Rb]的圖。
圖668是說明命令[vaslvw Mm,Rb,Mn,I5]的圖。
圖669是說明命令[vasr Mm,Ra,Mn,Rb]的圖。
圖670是說明命令[vasr Mm,Rb,Mn,I5]的圖。
圖671是說明命令[vasrvw Mm,Ra,Mn,Rb]的圖。
圖672是說明命令[vlsl Mm,Ra,Mn,Rb]的圖。
圖673是說明命令[vlsl Mm,Rb,Mn,I5]的圖。
圖674是說明命令[vlsr Mm,Ra,Mn,Rb]的圖。
圖675是說明命令[vlsr Mm,Rb,Mn,I5]的圖。
圖676是說明命令[vsath Mm,Rb,Mn]的圖。
圖677是說明命令[vsath12 Rb,Ra]的圖。
圖678是說明命令[vsath9 Rb,Ra]的圖。
圖679是說明命令[vsath8 Rb,Ra]的圖。
圖680是說明命令[vsath8u Rb,Ra]的圖。
圖681是說明命令[vrndvh Rb,Mn]的圖。
圖682是說明命令[vabssumb Rc,Ra,Rb]的圖。
圖683是說明命令[vmul Mm,Rc,Ra,Rb]的圖。
圖684是說明命令[vxmul Mm,Rc,Ra,Rb]的圖。
圖685是說明命令[vhmul Mm,Rc,Ra,Rb]的圖。
圖686是說明命令[vlmul Mm,Rc,Ra,Rb]的圖。
圖687是說明命令[vfmulh Mm,Rc,Ra,Rb]的圖。
圖688是說明命令[vxfmulh Mm,Rc,Ra,Rb]的圖。
圖689是說明命令[vhfmulh Mm,Rc,Ra,Rb]的圖。
圖690是說明命令[vlfmulh Mm,Rc,Ra,Rb]的圖。
圖691是說明命令[vfmulhr Mm,Rc,Ra,Rb]的圖。
圖692是說明命令[vxfmulhr Mm,Rc,Ra,Rb]的圖。
圖693是說明命令[vhfmulhr Mm,Rc,Ra,Rb]的圖。
圖694是說明命令[vlfmulhr Mm,Rc,Ra,Rb]的圖。
圖695是說明命令[vfmulw Mm,Rc,Ra,Rb]的圖。
圖696是說明命令[vxfmulw Mm,Rc,Ra,Rb]的圖。
圖697是說明命令[vhfmulw Mm,Rc,Ra,Rb]的圖。
圖698是說明命令[vlfmulw Mm,Rc,Ra,Rb]的圖。
圖699是說明命令[vpfmulhww Mm,Rc:Rc+1,Ra,Rb]的圖。
圖700是說明命令[vmac Mm,Rc,Ra,Rb,Mn]的圖。
圖701是說明命令[vmac M0,Rc,Ra,Rb,Rx]的圖。
圖702是說明命令[vxmac Mm,Rc,Ra,Rb,Mn]的圖。
圖703是說明命令[vxmac M0,Rc,Ra,Rb,Rx]的圖。
圖704是說明命令[vhmac Mm,Rc,Ra,Rb,Mn]的圖。
圖705是說明命令[vhmac M0,Rc,Ra,Rb,Rx]的圖。
圖706是說明命令[vlmac Mm,Rc,Ra,Rb,Mn]的圖。
圖707是說明命令[vlmac M0,Rc,Ra,Rb,Rx]的圖。
圖708是說明命令[vfmach Mm,Rc,Ra,Rb,Mn]的圖。
圖709是說明命令[vfmach M0,Rc,Ra,Rb,Rx]的圖。
圖710是說明命令[vxfmach Mm,Rc,Ra,Rb,Mn]的圖。
圖711是說明命令[vxfmach M0,Rc,Ra,Rb,Rx]的圖。
圖712是說明命令[vhfmach Mm,Rc,Ra,Rb,Mn]的圖。
圖713是說明命令[vhfmach M0,Rc,Ra,Rb,Rx]的圖。
圖714是說明命令[vlfmach Mm,Rc,Ra,Rb,Mn]的圖。
圖715是說明命令[vlfmach M0,Rc,Ra,Rb,Rx]的圖。
圖716是說明命令[vfmachr Mm,Rc,Ra,Rb,Mn]的圖。
圖717是說明命令[vfmachr M0,Rc,Ra,Rb,Rx]的圖。
圖718是說明命令[vxfmachr Mm,Rc,Ra,Rb,Mn]的圖。
圖719是說明命令[vxfmachr M0,Rc,Ra,Rb,Rx]的圖。
圖720是說明命令[vhfmachr Mm,Rc,Ra,Rb,Mn]的圖。
圖721是說明命令[vhfmachr M0,Rc,Ra,Rb,Rx]的圖。
圖722是說明命令[vlfmachr Mm,Rc,Ra,Rb,Mn]的圖。
圖723是說明命令[vlfmachr M0,Rc,Ra,Rb,Rx]的圖。
圖724是說明命令[vfmacw Mm,Rc,Ra,Rb,Mn]的圖。
圖725是說明命令[vxfmacw Mm,Rc,Ra,Rb,Mn]的圖。
圖726是說明命令[vhfmacw Mm,Rc,Ra,Rb,Mn]的圖。
圖727是說明命令[vlfmacw Mm,Rc,Ra,Rb,Mn]的圖。
圖728是說明命令[vpfmachww Mm,Rc:Rc+1,Ra,Rb,Mn]的圖。
圖729是說明命令[vmsu Mm,Rc,Ra,Rb,Mn]的圖。
圖730是說明命令[vmsu M0,Rc,Ra,Rb,Rx]的圖。
圖731是說明命令[vxmsu Mm,Rc,Ra,Rb,Mn]的圖。
圖732是說明命令[vxmsu M0,Rc,Ra,Rb,Rx]的圖。
圖733是說明命令[vhmsu Mm,Rc,Ra,Rb,Mn]的圖。
圖734是說明命令[vhmsu M0,Rc,Ra,Rb,Rx]的圖。
圖735是說明命令[vlmsu Mm,Rc,Ra,Rb,Mn]的圖。
圖736是說明命令[vlmsu M0,Rc,Ra,Rb,Rx]的圖。
圖737是說明命令[vfmsuh Mm,Rc,Ra,Rb,Mn]的圖。
圖738是說明命令[vfmsuh M0,Rc,Ra,Rb,Rx]的圖。
圖739是說明命令[vxfmsuh Mm,Rc,Ra,Rb,Mn]的圖。
圖740是說明命令[vxfmsuh M0,Rc,Ra,Rb,Rx]的圖。
圖741是說明命令[vhfmsuh Mm,Rc,Ra,Rb,Mn]的圖。
圖742是說明命令[vhfmsuh M0,Rc,Ra,Rb,Rx]的圖。
圖743是說明命令[vlfmsuh Mm,Rc,Ra,Rb,Mn]的圖。
圖744是說明命令[vlfmsuh M0,Rc,Ra,Rb,Rx]的圖。
圖745是說明命令[vfmsuw Mm,Rc,Ra,Rb,Mn]的圖。
圖746是說明命令[vxfmsuw Mm,Rc,Ra,Rb,Mn]的圖。
圖747是說明命令[vhfmsuw Mm,Rc,Ra,Rb,Mn]的圖。
圖748是說明命令[vlfmsuw Mm,Rc,Ra,Rb,Mn]的圖。
發明的實施形態說明本發明處理器的結構。本處理器的命令與通常的微型計算機相比,排列性高,是將AV媒體類信號處理技術領域作為目標來開發的通用處理器。通過在便攜電話、移動AV設備、數字TV、DVD等中使用共同晶片,可提高軟體再利用性。另外,本處理器可以高性能、高性價比實現許多媒體處理,並且,提供將提高開發效率為目的的高級語言開發環境。
圖1是本處理器的示意框圖。本處理器1包括命令控制部10、解碼部20、寄存器文件30、運算部40、I/F部50、命令存儲部60、數據存儲部70、擴展寄存器部80和I/O接口部90。運算部40由執行SIMD型命令運算的算術邏輯、比較運算器41-43、乘法、積和運算器44、桶形移位器45、除法器46及變換器47構成。乘法、積和運算器44以最長65比特累計,以便不使比特精度下降。另外,乘法、積和運算器44與算術邏輯、比較運算器41-43一樣,可執行SIMD型命令。另外,處理器1最大可並行執行3個算術邏輯、比較運算命令。
圖2是算術邏輯、比較運算器41-43的示意圖。算術邏輯、比較運算器41-43分別由ALU部41a、飽和處理部41b、及標誌部41c構成。ALU部41a由算術運算器、邏輯運算器、比較器、TST器構成。對應的運算數據的位寬度為8位(並排使用4個運算器)、16比特(並排使用2個運算器)、32比特(所有運算器進行32比特數據處理)。由標誌部41c等對算術運算結果進行溢出檢測和條件標誌生成。各運算器、比較器、TST器的結果,進行算術右移位、飽和處理部41b的飽和、最大、最小值檢測、絕對值生成處理。
圖3是表示桶形移位器(バレルシフト)45構成的框圖。桶形移位器45由選擇器45a、45b、上位桶形移位器45c、下位桶形移位器45d及飽和處理部45e構成,執行數據的算術移位(shift)(2的補數體系的移位)或邏輯移位(無符號移位)。通常,以32比特或64比特的數據作為輸入輸出。由其它寄存器或當前值對存儲在寄存器32a、32b中的被移位數據指定移位量。對數據進行左63比特-右63比特的算術或邏輯移位,以輸入比特長度進行輸出。
另外,桶形移位器45可對SIMD型命令移位8、16、32、64比特的數據。例如,可並排處理4個8位數據的移位。
算術移位是2的補碼體系的移位,用於加法或減法時的小數點位置的一致或2的指數乘法(2、2的2次方、2的(-1)次方、2的(-2)次方等)。
圖4是表示變換器47構成的框圖。變換器47由飽和功能塊(SAT)47a、BSEQ功能塊47b、MSKGEN功能塊47c、VSUMB功能塊47d、BCNT功能塊47e、IL功能塊47f構成。
飽和功能塊(SAT)47a對輸入數據進行飽和處理。通過具有兩個飽和處理32比特數據的功能塊,支持兩排的SIMD型命令。
BSEQ功能塊47b從MSB開始計數連續的0或1。
MSKGEN功能塊47c將指定比特區間輸出為1,將此外的區間輸出為0。
VSUMB功能塊47d將輸入數據區分成指定的位寬度,輸出其總和。
BCNT功能塊47e計數輸入數據中變為1的比特數。
IL功能塊47f將輸入數據區分成指定的位寬度,輸出替換各數據塊的值。
圖5是表示除法器46構成的框圖。除法器46將被除數作為64比特,將除數作為32比特,以每32比特輸出商和餘數。在求出商和餘數之前,必需循環34次。可處理有符號、無符號兩種數據。有無符號的設定對被除數和除數一樣。另外,具有輸出溢出標誌、0除法標誌的功能。
圖6是表示乘法、積和運算器44構成的框圖。乘法、積和運算器44由兩個32位乘法器(MUL)44a、44b、3個64位加法器(Adder)44c-44e、選擇器44f及飽和處理部(Saturation)44g構成,進行如下的乘法、積和運算。
·32×32比特的signed的乘法、積和、積差運算·32×32比特的unsigned的乘法·16×16比特的2排signed的乘法、積和、積差運算·32×16比特的2排signed的乘法、積和、積差運算對整數、固定小數點格式(h1、h2、w1、w2)的數據進行這些運算。另外,對這些運算進行捨入、飽和。
圖7是表示命令控制部10構成的框圖。命令控制部10由命令高速緩衝存儲器10a、地址管理部10b、命令緩衝器10c-10e、轉移緩衝器10f及旋轉部(rotation)10g構成,在平常和分支時提供命令。通過具有3個128位的命令緩衝器(命令緩衝器10c-10e),對應於最大排列執行數。就分支處理而言,在分支執行前,經轉移緩衝器10f等,事先將分支目的地地址存儲在後述的TAR寄存器中(settar命令)。使用存儲在TAR寄存器中的分支目的地地址進行分支。
本處理器1是具有VLIW結構的處理器。這裡,所謂VLIW結構是在1個指令字中存儲多個命令(加載、存儲、運算、分支等),並同時執行所有這些命令的結構。編程器通過將可並排執行的命令記述為1個發行組,可並排處理該發行組。在本說明書中,用「;;」表示發行組的區分。下面示出表述例。
(例1)mov r1,0x223;;mov該命令記述表示僅執行命令mov。
(例2)mov r1,0x38add r0,r1,r2sub r3,r1,r2;;這些命令記述表示並列執行3個命令mov、add、sub。
命令控制部10識別發行組,發送給解碼部20。解碼部20分析發行組的命令,控制必要的資源。
下面,說明本處理器1具備的寄存器。
本處理器1的寄存器組如下表1所示。
表1另外,本處理器1的標誌組(由後述條件標誌寄存器等管理的標誌)如下表2所示。
表2
圖8是表示通用寄存器(R0-R31)30a構造的圖。通用寄存器(R0-R31)30a構成作為執行對象的任務的上下文(context)的一部分,是存儲數據或地址的32比特的寄存器群。通常寄存器R30和R31分別作為全程(global)指示器、堆棧指示器,硬體使用。
圖9是表示連接寄存器(LR)30c構造的圖。與該連接寄存器(LR)30c關聯,本處理器1還具備未圖示的保存寄存器(SVR)。連接寄存器(LR)30c是存儲函數調用時的返回地址的32比特的寄存器。保存寄存器(SVR)是保存函數調用時的條件標誌寄存器的條件標誌(CFR.CF)的16比特的寄存器。連接寄存器(LR)30c與後述的分支寄存器(TAR)一樣,也用於循環高速化中。下位1位總是讀取0,但在寫入時必需寫入0。
例如,在執行call(brl,jmpl)命令的情況下,本處理器1返回連接寄存器(LR)30c,保存地址,將條件標誌(CFR.CF)保存在保存寄存器(SVR)中。另外,在執行jmp命令的情況下,從連接寄存器(LR)30c中取出返回地址(分支目的地地址),使程序計數器(PC)返回。另外,在執行ret(jmpr)命令的情況下,從連接寄存器(LR)30c中取出分支目的地地址(返回地址),存儲(返回)到程序計數器(PC)中。另外,從保存寄存器(SVR)中取出條件標誌,存儲(返回)到條件標誌寄存器(CFR)32的條件標誌區域CFR.CF中。
圖10是表示分支寄存器(TAR)30d構造的圖。分支寄存器(TAR)30d是存儲分支目標地址的32位的寄存器。主要用於迴路的高速化。下位1位總是讀取0,但在寫入時必需寫入0。
例如,在執行jmp,jloop命令的情況下,本處理器1從分支寄存器(TAR)30d中取出分支目的地地址,存儲在程序計數器(PC)中。在存儲在分支寄存器(TAR)30d中的地址命令被存儲在分支用命令緩衝器中的情況下,分支損失(penalty)變為0。通過將迴路的開頭地址存儲在分支寄存器(TAR)30d中,可高速化迴路。
圖11是表示程序狀態寄存器(PSR)31構造的圖。程序狀態寄存器(PSR)31構成作為執行對象的任務上下文的一部分,是存儲如下示出的處理器狀態信息的32比特的寄存器。
比特SWE表示VMP(Virtual Multi-Processor)的LP(LogicalProcessor)切換激活。
表示不允許LP切換,[1]表示允許LP切換。
比特FXP表示固定小數點模式。
表示模式0,[1]表示模式1。
比特IH是中斷處理標誌,表示在可屏蔽(maskabke)的中斷處理中。[1]表示中斷處理中,
表示不在中斷處理中。若發生中斷,則自動設置。為了知道通過rti命令從中斷後到返回,是到其它中斷處理中還是到程序處理中而使用該標誌。
比特EH是表示錯誤或NMI在處理中的標誌。
表示不在錯誤/NMI中斷處理中,[1]表示錯誤/NMI中斷處理中。EH=1時,在發生非同步錯誤或NMI的情況下,進行屏蔽。另外,在激活VMP時,屏蔽VMP的板極切換。
比特PL[1:0]表示特權電平。
表示特權電平0,即,表示處理器抽象電平,
表示特權電平1(不能設定),[10]表示特權電平2,即,系統程序電平,[11]表示特權電平3,即用戶程序電平。
比特LPIE3表示LP固有中斷3激活。[1]表示允許中斷,
表示不允許中斷。
比特LPIE2表示LP固有中斷2激活。[1]表示允許中斷,
表示不允許中斷。
比特LPIE1表示LP固有中斷1激活。[1]表示允許中斷,
表示不允許中斷。
比特LPIE0表示LP固有中斷0激活。[1]表示允許中斷,
表示不允許中斷。
比特AEE表示未對齊(misalignment)例外激活。[1]表示允許未對齊例外,
表示不允許未對齊例外。
比特IE表示電平中斷激活。[1]表示允許電平中斷,
表示不允許電平中斷。
比特IM[7:0]表示中斷屏蔽。可定義到電平0-7,由各電平進行屏蔽。電平0是最高的電平。處理器1僅受理未由IM屏蔽的中斷請求中具有最高電平的中斷請求。一旦受理中斷請求,則硬體自動屏蔽小於受理電平的電平。IM
是電平0的屏蔽,IM[1]是電平1的屏蔽,IM[2]是電平2的屏蔽,IM[3]是電平3的屏蔽,IM[4]是電平4的屏蔽,IM[5]是電平5的屏蔽,IM[6]是電平6的屏蔽,IM[7]是電平7的屏蔽。
reserved表示預約比特。總是讀取0。在寫入時必需寫入0。
圖12是表示條件標誌寄存器(CFR)32構造的圖。條件標誌寄存器(CFR)32是構成作為執行對象的任務上下文的一部分的32比特的寄存器,由條件標誌(condition標誌)、運算標誌(operation標誌)、矢量條件標誌(矢量condition標誌)、運算命令用位位置指定欄位、SIMD數據調整(data alignment)信息欄位構成。
比特ALN[1:0]表示調整(align)模式。設定valnvc命令的調整模式。
比特BP0[4:0]表示位位置。由必需指定位位置的命令使用。
比特VC0-VC3是矢量條件標誌。從LSB側的字節或半字開始依次對應於VC0,MSB側對應於VC3。
比特OVS是溢出標誌(匯總)。在發生飽和或檢測溢出中進行設置。在未檢測的情況下,保持命令執行前的值。必需由軟體進行清除。
比特CAS進位標誌(匯總)。由addc命令發生進位、或由subc命令發生借位的情況下,進行設置。在addc命令未發生進位、或subc命令未發生借位的情況下,保持命令執行前的值。必需由軟體進行清除。
比特C0-C7是條件標誌。標誌C7的值總為1。忽視FALSE條件對標誌C7的反映(寫入0)。
reserved表示預約比特。總是讀取0。在寫入時必需寫入0。
圖13是表示累加器(M0、M1)30b構造的圖。累加器(M0、M1)30b構成作為執行對象任務的上下文一部分,並由在圖13(a)中示出的32比特寄存器MH0-MH1(乘除法、積和用寄存器(上位32比特))、和圖13(b)中示出的32比特寄存器ML0-ML1乘除法、積和用寄存器(下位32比特)構成。
寄存器MH0-MH1用於在乘法命令中存儲結果的上位32比特。在積和命令中用作累加器的上位32比特。另外,在處理比特流的情況下,可與通用寄存器組合來使用。寄存器ML0-ML1用於在乘法命令中存儲結果的下位32比特。在積和命令中用作累加器的下位32比特。
圖14是表示程序計數器(PC)33構造的圖。程序計數器(PC)33構成作為執行對象的任務上下文的一部分,是保持執行中命令地址的32比特的計數器。
圖15是表示PC保存用寄存器(IPC)34構造的圖。PC保存用寄存器(IPC)34是構成作為執行對象的任務上下文一部分的32比特的寄存器。
圖16是表示PSR保存用寄存器(IPSR)35構造的圖。PSR保存用寄存器(IPSR)35構成作為執行對象的任務上下文一部分,是保存程序狀態寄存器(PSR)31用的32比特的寄存器,對應於程序狀態寄存器(PSR)31的預約比特的部分總是讀取0,但在寫入時必需寫入0。
下面,說明本處理器1的存儲器空間。在本處理器1中,將4GB的線性存儲器空間分割32份,對128MB單位的空間分配命令SRAM(Static RAM)和數據SRAM。將該128MB的空間作為1個塊,設定想訪問SAR(SRAM Area Register)的塊。在訪問的地址是由SAR設定的空間的情況下,直接對命令SRAM/數據SRAM進行訪問,但在不是由SAR設定的空間的情況下,對總線控制器(BCU)發出訪問請求。在BCU上連接單片存儲器(OCM)、外部存儲器、外部設備、I/O端子等,可對這些設備進行讀寫。
圖17是表示本處理器1的管道動作的時間圖。如圖17所示,本處理器1基本上由命令取出、命令分配(分派)、解碼、執行、寫入5段管道構成。
圖18是表示本處理器1執行命令時各管道動作的時間圖。在命令取出階段,訪問由程序計數器(PC)33指定地址的命令存儲器,將命令傳送給命令緩衝器10c-10e等。在命令分配階段,對分支類命令輸出分支目的地地址信息,輸出輸入寄存器控制信號,分配可變長命令,將命令傳送到指令寄存器(IR)。在解碼階段,將IR輸入解碼部20,輸出運算器控制信號、存儲器訪問信號。在執行階段,執行運算,將運算結果輸出到數據存儲器或通用寄存器(R0-R31)30a。在寫入階段,將數據傳送、運算結果存儲在通用寄存器中。
處理器1通過VLIW結構,最高可並排進行3個上述處理。因此,在圖18所示動作中,處理器1在圖19的定時下並排執行。
下面,說明如上構成的處理器1的命令組。
下表3-表5是將處理器1執行的命令分類成不同類別的表。
表3表4表5表中的[運算器]表示該命令使用的運算器。運算器的略號含義如下。即,[A]表示ALU命令,[B]表示分支命令,[C]表示變換命令,[DIV]表示除法命令,[DBGM]表示調試命令,[M]表示存儲器訪問命令,[S1]、[S2]表示移位命令,[X1]、[X2]表示乘法命令。
圖20是表示本處理器1執行的命令格式的圖。
圖中略號的含義如下。即,[P]表示判定(predicate)(執行條件指定8個條件標誌C0-C7之一),[OP]表示操作碼欄位,[R]表示寄存器欄位,[I]表示當前值欄位,[D]表示置換欄位(デイスプ-スメント)。
圖21-圖36是說明處理器1執行的命令的示意功能圖。即,圖21是說明屬於分類[ALUadd(加法)類]的命令的圖,圖22是說明屬於分類[ALUsub(減法)類]的命令的圖,圖23是說明屬於分類[ALUlogic(邏輯運算)類]的命令的圖,圖24是說明屬於分類[CMP(比較運算)類]的命令的圖,圖25是說明屬於分類[mul(乘法)類]的命令的圖,圖26是說明屬於分類[mac(積和運算)類]的命令的圖,圖27是說明屬於分類[msu(積差運算)類]的命令的圖,圖28是說明屬於分類[MEMld(存儲器讀取)類]的命令的圖,圖29是說明屬於分類[MEMstore(存儲器寫出)類]的命令的圖,圖30是說明屬於分類[BRA(分支)類]的命令的圖,圖31是說明屬於分類[BSasl(算術桶形移位(barrel shift))類]的命令的圖,圖32是說明屬於分類[BSlsr(邏輯桶形移位)類]的命令的圖,圖33是說明屬於分類[CNVvaln(算術變換)類]的命令的圖,圖34是說明屬於分類[CNV(一般變換)類]的命令的圖,圖35是說明屬於分類[SATvlpk(飽和處理)類]的命令的圖,圖36是說明屬於分類[ETC(其他)類]的命令的圖。
在這些圖中,項目[SIMD]表示該命令類型(SISD(SINGLE)或SIMD的區別),項目[尺寸]表示作為運算對象的各操作數的尺寸(size),項目[命令]表示該命令的操作碼,項目[操作數]表示該命令的操作數,項目[CFR]表示條件標誌寄存器的變化,項目[PSR]表示處理器狀態寄存器的變化,項目[代表動作]表示動作示意,項目[運算器]表示使用的運算器,項目 表示命令尺寸。
圖37-圖748是說明本處理器1執行的命令的詳細功能的圖。命令說明中使用的各種記號的含義如下表6-表10。
表6表7表8表9表10圖37-圖119是說明[load]關聯命令的圖。
圖120-圖184是說明[store]關聯命令的圖。
圖185-圖186是說明[memory(etc)]關聯命令的圖。
圖187-圖206是說明[external register]關聯命令的圖。
圖207-圖247是說明[branch]關聯命令的圖。
圖248-圖264是說明[VMP/interupt]關聯命令的圖。
圖265-圖258是說明[program interrupt]關聯命令的圖。
圖259-圖303是說明[arithmetic]關聯命令的圖。
圖304-圖317是說明[logic]關聯命令的圖。
圖318-圖359是說明[compare]關聯命令的圖。
圖360-圖420是說明[move]關聯命令的圖。
圖421是說明[nop]關聯命令的圖。
圖422-圖441是說明[shift(S1)]關聯命令的圖。
圖442-圖460是說明[shift(S2)]關聯命令的圖。
圖461-圖470是說明[extract]關聯命令的圖。
圖471-圖474是說明[mask]關聯命令的圖。
圖475-圖480是說明[shaturation]關聯命令的圖。
圖481-圖512是說明[conversion]關聯命令的圖。
圖513-圖516是說明[bit count]關聯命令的圖。
圖517-圖520是說明[etc]關聯命令的圖。
圖521-圖526是說明[mul(X1)]關聯命令的圖。
圖527-圖531是說明[mul(X2)]關聯命令的圖。
圖532-圖543是說明[mac(X1)]關聯命令的圖。
圖544-圖547是說明[mac(X2)]關聯命令的圖。
圖548-圖559是說明[msu(X1)]關聯命令的圖。
圖560-圖563是說明[msu(X2)]關聯命令的圖。
圖564-圖565是說明[divide]關聯命令的圖。
圖566-圖569是說明[debug]關聯命令的圖。
圖570-圖615是說明[SIMD arithmetic]關聯命令的圖。
圖616-圖639是說明[SIMD compare]關聯命令的圖。
圖640-圖664是說明[SIMD shift(S1)]關聯命令的圖。
圖665-圖675是說明[SIMD shift(S2)]關聯命令的圖。
圖676-圖680是說明[SIMD saturation]關聯命令的圖。
圖681-圖682是說明[SIMD etc]關聯命令的圖。
圖683-圖699是說明[SIMD mul(X2)]關聯命令的圖。
圖700-圖728是說明[SIMD mac(X2)]關聯命令的圖。
圖729-圖748是說明[SIMD msu(X2)]關聯命令的圖。
下面,說明本處理器1在幾個特徵命令中的動作。
(1)交叉操作數來進行SIMD2項運算的命令首先,說明在兩排SIMD運算中,將位於交叉位置關係上的操作數作為對象進行運算的命令。
命令vxaddh是以半字(16比特)單位將位於交叉位置關係上的兩組操作數相加的SIMD型命令。例如,若為vxaddhRc,Ra,Rb,則處理器1通過算術邏輯、比較運算器41,(i)將寄存器Ra的上位16位與寄存器Rb的下位16位相加,將結果存儲在寄存器Rc的上位16位中,與之並行,(ii)將寄存器Ra的下位16位與寄存器Rb的上位16位相加,將結果存儲在寄存器Rc的下位16位中。
這種命令在為了由對稱型濾波器(距中心左右對稱的係數)減去乘法,而將事先乘以相同係數的值彼此相加(或相減)的情況下有效。
另外,本處理器1即使對減法命令(vxsubh等)也執行與該加法命令一樣的處理。
命令vxmul是以半字(16比特)單位將位於交叉位置關係上的兩組操作數相乘、並分別保留(SIMD存儲)這些結果的下位半字的SIMD型命令。例如,若為vxmul Rc,Ra,Rb,則處理器1通過算術邏輯、比較運算器41,(i)將寄存器Ra的上位16位與寄存器Rb的下位16位相乘,將該乘法結果存儲在運算寄存器MHm的上位16位和運算寄存器MLm的上位16位中,同時,將該乘法結果的下位16位存儲在寄存器Rc的上位16位中,與之並行,(ii)將寄存器Ra的下位16位與寄存器Rb的上位16位相乘,將該乘法結果存儲在運算寄存器MHm的下位16位和運算寄存器MLm的下位16位中,同時,將該乘法結果的下位16位存儲在寄存器Rc的下位16位中。
這種命令對複數的內積有效。取出結果的下位在處理整數數據的情況下有效(主要是圖像)。
命令vxfmulh是以半字(16比特)單位將位於交叉位置關係上的兩組操作數相乘、並分別保留(SIMD存儲)這些結果的上位半字的SIMD型命令。例如,若為vxfmulh Rc,Ra,Rb,則處理器1通過乘法、積和運算器44,(i)將寄存器Ra的上位16位與寄存器Rb的下位16位相乘,將該乘法結果存儲在運算寄存器MHm的上位16位和運算寄存器MLm的上位16位中,同時,將該乘法結果的下位16位存儲在寄存器Rc的上位16位中,同時,(ii)將寄存器Ra的下位16位與寄存器Rb的上位16位相乘,將該乘法結果存儲在運算寄存器MHm的下位16位和運算寄存器MLm的下位16位中,同時,將該乘法結果的上位16位存儲在寄存器Rc的下位16位中。
這種命令對複數的內積有效。取出結果的上位在處理固定小數點數據的情況下有效。可適用於稱為Q31/Q15的標準格式(MSB裝入)中。
命令vxfmulw是以半字(16比特)單位將位於交叉位置關係上的兩組操作數相乘、並僅保留(非SIMD存儲)一方乘法結果的SIMD型命令。例如,若為vxfmulw Rc,Ra,Rb,則處理器1通過乘法、積和運算器44,(i)將寄存器Ra的上位16位與寄存器Rb的下位16位相乘,將該乘法結果存儲在運算寄存器MHm的上位16位和運算寄存器MLm的上位16位中,同時,將該乘法結果(字)存儲在寄存器Rc中,同時,(ii)將寄存器Ra的下位16位與寄存器Rb的上位16位相乘,將該乘法結果存儲在運算寄存器MHm的下位16位和運算寄存器MLm的下位16位中(不存儲在寄存器Rc中)。
這種命令在精度不足16比特、不能維持SIMD的情況下有效(音頻等)。
命令vxmac是以半字(16比特)單位進行位於交叉位置關係上的兩組操作數的積和運算、並分別保留(SIMD存儲)這些結果的下位半字的SIMD型命令。例如,若為vxmac Mm,Rc,Ra,Rb,Mn,則處理器1通過乘法、積和運算器44,(i)將寄存器Ra的上位16位與寄存器Rb的下位16位相乘,將該乘法結果與由運算寄存器MHn及MLn的上位16位構成的32位相加,將加法結果的32比特存儲在由運算寄存器MHm及MLm的上位16位構成的32位區域中,同時,將該加法結果的下位16位存儲在寄存器Rc的上位16位中,與之並行,(ii)將寄存器Ra的下位16位與寄存器Rb的上位16位相乘,將該乘法結果與由運算寄存器MHn及MLn的下位16位構成的32位相加,將加法結果的32比特存儲在由運算寄存器MHm及MLm的上位16位構成的32位區域中,同時,將該加法結果的下位16位存儲在寄存器Rc的下位16位中。
這種命令對複數的內積有效。取出結果的下位在處理整數數據的情況下有效(主要是圖像)。
命令vxfmach是以半字(16比特)單位進行位於交叉位置關係上的兩組操作數的積和運算、並分別保留(SIMD存儲)這些結果的上位半字的SIMD型命令。例如,若為vxfmach Mm,Rc,Ra,Rb,Mn,則處理器1通過乘法、積和運算器44,(i)將寄存器Ra的上位16位與寄存器Rb的下位16位相乘,將該乘法結果與由運算寄存器MHn及MLn的上位16位構成的32位相加,將加法結果的32比特存儲在由運算寄存器MHm及MLm的上位16位構成的32位區域中,同時,將該加法結果的上位16位存儲在寄存器Rc的上位16位中,同時,(ii)將寄存器Ra的下位16位與寄存器Rb的上位16位相乘,將該乘法結果與由運算寄存器MHn及MLn的下位16位構成的32位相加,將加法結果的32比特存儲在由運算寄存器MHm及MLm的下位16位構成的32位區域中,同時,將該加法結果的上位16位存儲在寄存器Rc的下位16位中。
這種命令對複數的內積有效。取出結果的上位在處理固定小數點數據的情況下有效。可適用於稱為Q31/Q15的標準格式(MSB裝入)中。
命令vxfmacw是以半字(16比特)單位,將位於交叉位置關係上的兩組操作數相乘、並僅保留(非SIMD存儲)一方乘法結果的SIMD型命令。例如,若為vxfmacw Mm,Rc,Ra,Rb,Mn,則處理器1通過乘法、積和運算器44,(i)將寄存器Ra的上位16位與寄存器Rb的下位16位相乘,將該乘法結果與由運算寄存器MHn及MLn的上位16位構成的32位相加,將加法結果的32比特存儲在由運算寄存器MHm及MLm的上位16位構成的32位區域中,同時,將該加法結果的32比特存儲在寄存器Rc中,同時,(ii)將寄存器Ra的下位16位與寄存器Rb的上位16位相乘,將該乘法結果與由運算寄存器MHn及MLn的下位16位構成的32位相加,將加法結果的32比特存儲在由運算寄存器MHm及MLm的下位16位構成的32位區域中(不存儲在寄存器Rc中)。
這種命令在精度不足16比特、不能維持SIMD的情況下有效(音頻等)。
另外,本處理器1即使對積差命令(vxmsu、vxmsuh、vxmsuw等)也執行與這些積和命令一樣的處理。
另外,本處理器1也可具備不僅執行對以上處於交叉位置關係的兩組操作數的運算(兩排SIMD的加法、減法、乘法、積和、積差)、而且還執行對擴展其的n組操作數的運算(4排、8排SIMD運算等)的功能。
例如,在設寄存器Ra中存儲的4個字節數據從上位開始為Ra1、Ra2、Ra3、Ra4,設寄存器Rb中存儲的4個字節數據從上位開始為Rb1、Rb2、Rb3、Rb4的情況下,作為將寄存器Ra與寄存器Rb作為操作數的SIMD運算命令,也可具備對處於以下交叉位置關係上的字節數據並行執行運算的命令。即(i)1對稱交叉命令也可具備分別將Ra1與Rb4、Ra2與Rb3、Ra3與Rb2、Ra4與Rb1作為運算對象的4排SIMD型運算命令。
(ii)2對稱交叉命令也可具備分別將Ra1與Rb2、Ra2與Rb1、Ra3與Rb4、Ra4與Rb3作為運算對象的4排SIMD型運算命令。
(iii)雙重交叉命令也可具備分別將Ra1與Rb3、Ra2與Rb4、Ra3與Rb1、Ra4與Rb2作為運算對象的4排SIMD型運算命令。
另外,這些4排SIMD型運算的種類與上述2排SIMD型運算一樣,也可適用於加法、減法、乘法、積和、積差之一。並且,對乘法、積和、積差而言,與上述2排SIMD型運算命令(vxmul、vxfmulh、vxfmulw等)一樣,也可具備僅將4個運算結果各自的下位字節SIMD存儲在寄存器Rc等中、又僅將4個運算結果各自的上位字節SIMD存儲在寄存器Rc等中、又僅將4個運算結果中的兩個SIMD存儲在寄存器Rc等中的命令。
對處於上述交叉位置關係的數據的3種運算一般化時,可表現如下。即,若設作為運算對象的數據組為構成第1數據群的n個數據排列中的第i個數據和構成第2數據群的n個數據排列中的第j個數據時,則在上述(i)1對稱交叉命令中,j=n-i+1成立,在上述(ii)2對稱交叉命令中,j=i-(-1)^(i mod 2)成立,在上述(iii)雙重交叉命令中,j=n-i+1+(-1)^(i mod 2)。這裡,[^]表示指數,[mod]表示餘數。
以上命令在複數的內積等同時運算兩個複數的情況下有效。
(2)固定一方操作數來進行SIMD2項運算的命令接著,說明在兩排SIMD運算中,固定一方操作數來進行(設一方的操作數為共同的)運算命令。
命令vhaddh是以半字(16比特)單位將設一方操作數(寄存器中的上位16位)為共同的兩組操作數相加的SIMD型命令。例如,若為vhaddh Rc,Ra,Rb,則處理器1通過算術邏輯、比較運算器41,(i)將寄存器Ra的上位16位與寄存器Rb的上位16位相加,將結果存儲在寄存器Rc的上位16位中,同時,(ii)將寄存器Ra的下位16位與寄存器Rb的上位16位相加,將結果存儲在寄存器Rc的下位16位中。
這種命令在由於兩個排列的要素間的加減法、使兩個排列的對齊錯位、難以適用SIMD的情況下有效。
另外,本處理器1即使對減法命令(vhsubh等)也執行與該加法命令一樣的處理。
命令vhmul是以半字(16比特)單位將設一方操作數(寄存器中的上位16位)為共同的兩組操作數相乘、並保留(SIMD存儲)這些結果的各下位半字的SIMD型命令。例如,若為vhmul Rc,Ra,Rb,則處理器1通過乘法、積和運算器44等,(i)將寄存器Ra的上位16位與寄存器Rb的上位16位相乘,將該乘法結果存儲在運算寄存器MHm的上位16位和運算寄存器MLm的上位16位中,同時,將該乘法結果的下位16位存儲在寄存器Rc的上位16位中,同時,(ii)將寄存器Ra的下位16位與寄存器Rb的上位16位相乘,將該乘法結果存儲在運算寄存器MHm的下位16位和運算寄存器MLm的下位16位中,同時,將該乘法結果的下位16位存儲在寄存器Rc的下位16位中。
這種命令在增益控制等向所有要素乘以係數的情況下,通過迭代展開循環,並由SIMD進行並列處理時,要素錯位而難以適用SIMD的情況下有效。基本上,與下述下位固定命令成對使用。取出結果的下位在處理整數數據的情況下有效(主要是圖像)。
命令vhfmulh是以半字(16比特)單位將設一方操作數(寄存器中的上位16位)為共同的兩組操作數相乘、並保留(SIMD存儲)這些結果的各H位半字的SIMD型命令。例如,若為vhfmulh Rc,Ra,Rb,則處理器1通過乘法、積和運算器44等,(i)將寄存器Ra的上位16位與寄存器Rb的上位16位相乘,將該乘法結果存儲在運算寄存器MHm的上位16位和運算寄存器MLm的上位16位中,同時,將該乘法結果的上位16位存儲在寄存器Rc的上位16位中,與之並行,(ii)將寄存器Ra的下位16位與寄存器Rb的上位16位相乘,將該乘法結果存儲在運算寄存器MHm的下位16位和運算寄存器MLm的下位16位中,同時,將該乘法結果的上位16位存儲在寄存器Rc的下位16位中。
這種命令與上述一樣有效。取出結果的上位在處理固定小數點數據的情況下有效。可適用於稱為Q31/Q15的標準格式(MSB裝入)中。
命令vhfmulw是以半字(16比特)單位將設一方操作數(寄存器中的上位16位)為共同的兩組操作數相乘、並僅保留(非SIMD存儲)一方乘法結果的SIMD型命令。例如,若為vhfmulw Rc,Ra,Rb,則處理器1通過乘法、積和運算器44等,(i)將寄存器Ra的上位16位與寄存器Rb的上位16位相乘,將該乘法結果存儲在運算寄存器MHm的上位16位和運算寄存器MLm的上位16位中,同時,將該乘法結果(字)存儲在寄存器Rc中,同時,(ii)將寄存器Ra的下位16位與寄存器Rb的上位16位相乘,將該乘法結果存儲在運算寄存器MHm的下位16位和運算寄存器MLm的下位16位中(不存儲在寄存器Rc中)。
這種命令對確保精度有效。
命令vhmac是以半字(16比特)單位進行設一方操作數(寄存器中的上位16位)為共同的兩組操作數的積和運算、並分別保留(SIMD存儲)這些結果的下位半字的SIMD型命令。例如,若為vhmac Mm,Rc,Ra,Rb,Mn,則處理器1通過乘法、積和運算器44,(i)將寄存器Ra的上位16位與寄存器Rb的上位16位相乘,將該乘法結果與由運算寄存器MHn及MLn的上位16位構成的32位相加,將加法結果的32比特存儲在由運算寄存器MHm及MLm的上位16位構成的32位區域中,同時,將該加法結果的下位16位存儲在寄存器Rc的上位16位中,同時,(ii)將寄存器Ra的下位16位與寄存器Rb的上位16位相乘,將該乘法結果與由運算寄存器MHn及MLn的下位16位構成的32位相加,將加法結果的32比特存儲在由運算寄存器MHm及MLm的下位16位構成的32位區域中,同時,將該加法結果的下位16位存儲在寄存器Rc的下位16位中。
這種命令在由FIR(濾波器)等通過迭代展開循環,並由SIMD進行並列處理時,要素錯位而難以適用SIMD的情況下有效。基本上,與下述下位固定命令成對(交互)使用。取出結果的下位在處理整數數據的情況下有效(主要是圖像)。
命令vhfmach是以半字(16比特)單位進行設一方操作數(寄存器中的上位16位)為共同的兩組操作數的積和運算、並分別保留(SIMD存儲)這些結果的上位半字的SIMD型命令。例如,若為vhfmach Mm,Rc,Ra,Rb,Mn,則處理器1通過乘法、積和運算器44,(i)將寄存器Ra的上位16位與寄存器Rb的上位16位相乘,將該乘法結果與由運算寄存器MHn及MLn的上位16位構成的32位相加,將加法結果的32比特存儲在由運算寄存器MHm及MLm的上位16位構成的32位區域中,同時,將該加法結果的上位16位存儲在寄存器Rc的上位16位中,同時,(ii)將寄存器Ra的下位16位與寄存器Rb的上位16位相乘,將該乘法結果與由運算寄存器MHn及MLn的下位16位構成的32位相加,將加法結果的32比特存儲在由運算寄存器MHm及MLm的下位16位構成的32位區域中,同時,將該加法結果的上位16位存儲在寄存器Rc的下位16位中。
這種命令與上述一樣有效。取出結果的上位在處理固定小數點數據的情況下有效。可適用於稱為Q31/Q15的標準格式(MSB裝入)中。
命令vhfmacw是以半字(16比特)單位將設一方操作數(寄存器中的上位16位)為共同的兩組操作數相乘、並僅保留(非SIMD存儲)一方乘法結果的SIMD型命令。例如,若為vhfmacw Mm,Rc,Ra,Rb,Mn,則處理器1通過乘法、積和運算器44,
(i)將寄存器Ra的上位16位與寄存器Rb的上位16位相乘,將該乘法結果與由運算寄存器MHn及MLn的上位16位構成的32位相加,將加法結果的32比特存儲在由運算寄存器MHm及MLm的上位16位構成的32位區域中,同時,將該加法結果的32比特存儲在寄存器Rc中,同時,(ii)將寄存器Ra的下位16位與寄存器Rb的上位16位相乘,將該乘法結果與由運算寄存器MHn及MLn的下位16位構成的32位相加,將加法結果的32比特存儲在由運算寄存器MHm及MLm的下位16位構成的32位區域中(不存儲在寄存器Rc中)。
這種命令對確保精度有效。
另外,本處理器1即使對積差命令(vhmsu、vhmsuh、vhmsuw等)也執行與這些積和命令一樣的處理。
另外,在這些命令中,固定(共同化)寄存器中的上位16位,但即使對固定(共同化)寄存器中下位16位的命令(vladdh,vlsubh,vlmul,vlfmulh,vlfmulw,vlmac,vlmsu,vlfmach,vlmsuh,vlfmacw,vlmsuw等),本處理器1也可執行與這些運算命令一樣的處理。這種命令與上述上位固定命令成對使用時有效。
另外,本處理器1也可具備不僅執行對以上設一方操作數(寄存器中的上位16位)共同的兩組操作數的運算(兩排SIMD的加法、減法、乘法、積和、積差)、而且還執行對擴展其的n組操作數的運算(4排、8排SIMD運算等)的功能。
例如,在設寄存器Ra中存儲的4個字節數據從上位開始為Ra1、Ra2、Ra3、Ra4,設寄存器Rb中存儲的4個字節數據從上位開始為Rb1、Rb2、Rb3、Rb4的情況下,作為將寄存器Ra與寄存器Rb作為操作數的SIMD運算命令,也可具備對以下設一方操作數(寄存器中的1位元組)共同的字節數據並行執行運算的命令。即(i)最上位固定命令也可具備分別將Ra1與Rb1、Ra2與Rb1、Ra3與Rb1、Ra4與Rb1作為運算對象的4排SIMD型運算命令。
(ii)中上位固定命令也可具備分別將Ra1與Rb2、Ra2與Rb2、Ra3與Rb2、Ra4與Rb2作為運算對象的4排SIMD型運算命令。
(iii)中下位固定命令也可具備分別將Ra1與Rb3、Ra2與Rb3、Ra3與Rb3、Ra4與Rb3作為運算對象的4排SIMD型運算命令。
(iv)最下位固定命令也可具備分別將Ra1與Rb4、Ra2與Rb4、Ra3與Rb4、Ra4與Rb4作為運算對象的4排SIMD型運算命令。
另外,這些4排SIMD型運算的種類與上述2排SIMD型運算一樣,也可適用於加法、減法、乘法、積和、積差之一。並且,對乘法、積和、積差而言,與上述2排SIMD型運算命令(vhmul、vhfmulh、vhfmulw等)一樣,也可具備僅將4個運算結果各自的下位字節SIMD存儲在寄存器Rc等中、又僅將4個運算結果各自的上位字節SIMD存儲在寄存器Rc等中、又僅將4個運算結果中的兩個SIMD存儲在寄存器Rc等中的命令。這種命令對以下情況有效。即,在將兩個要素每錯1要素並對每個要素進行運算的情況下有效。這是因為必需錯位1個、錯位2個、錯位3個的運算。
若一般化表現以上固定操作數一方的運算時,則如下所述。即,本處理器1也可對於包含指定由n(≥2)個數據排列構成的第1數據群的第1操作數、和指定由n個數據排列構成的第2數據群的第2操作數的SIMD型命令,分別對i=1、2、…、n、上述j=恆定值的情況下的第1數據群的第i個數據和第2數據組的第j個數據組成組所構成的n組進行運算。
(3)執行SIMD2項運算、並位移位其結果的命令下面,說明在兩排SIMD運算中,將位於交叉位置關係上的操作數作為對象進行運算的命令。
命令vaddsh是以半字(16比特)單位將兩組操作數相加、並將結果僅算術右移位1位的SIMD型命令。例如,若為vaddshRc,Ra,Rb,則處理器1通過算術邏輯、比較運算器41,(i)將寄存器Ra的上位16位與寄存器Rb的上位16位相加,將結果算術右移位1位後的值存儲在寄存器Rc的上位16位中,同時,(ii)將寄存器Ra的下位16位與寄存器Rb的上位16位相加,將結果算術右移位1位後的值存儲在寄存器Rc的下位16位中。
這種命令在通過加法未達到16比特精度之前下移以確保精度時有效。根據情況需要捨入。在FFT(蝶形)中,由於反覆加減法各複數,而被較多使用。
另外,本處理器1即使對減法(vsubsh等)也執行與該加法命令一樣的處理。
另外,本處理器1也可具備不僅執行對以上兩組操作數的運算(兩排SIMD的加法、減法)、而且還執行對擴展其的n組操作數的運算(4排、8排SIMD運算等)的功能。
例如,在設寄存器Ra中存儲的4個字節數據從上位開始為Ra1、Ra2、Ra3、Ra4,設寄存器Rb中存儲的4個字節數據從上位開始為Rb1、Rb2、Rb3、Rb4的情況下,作為將寄存器Ra與寄存器Rb作為操作數的SIMD運算命令,也可具備進行以下運算和位移位的命令。即,也可具備分別將Ra1與Rb1、Ra2與Rb2、Ra3與Rb3、Ra4與Rb4作為運算對象的4排SIMD型運算命令。例如,是以字節單位將4組操作數相加,將結果僅算術右移1位的命令vaddsb等。
這種命令同樣對確保精度有效。主要用於取平均的情況(縱向平均)。
另外,進行這種SIMD運算和移位的特徵命令不限於上述向右僅移位1位的命令。即,移位量也可是固定及可變之一,也可是向右及向左之一。另外,也可在右移位時捨入溢出的比特(例如命令vaddsrh或命令vaddsrb等)。
(4)累加SIMD(矢量)數據後進行標量化或矢量低維化的命令下面,說明對矢量數據進行標量化或矢量低維化的SIMD型命令。
命令vsumh是以半字(16比特)單位將兩個SIMD數據(矢量數據)相加、並標量化的SIMD型命令。例如,若為vsumh Rb,Ra,則處理器1通過算術邏輯、比較運算器41,將寄存器Ra的上位16位與寄存器Rb的上位16位相加,將結果存儲在寄存器Rb中。
這種命令可用於各種用途。可使平均(橫向平均)、單獨運算(積和、加法)的結果一致等。
命令vsumh2是以半字單位、對設兩個SIMD數據(矢量數據)為1組的兩組分別進行要素累加、並標量化的SIMD型命令。例如,若為vsumh2 Rb,Ra,則處理器1通過算術邏輯、比較運算器41,(i)將寄存器Ra的最上位字節與中上位字節累加,將結果存儲在寄存器Rb的上位16位中,同時,(ii)將寄存器Ra的中下位字節與最下位字節累加,將結果存儲在寄存器Rb的下位16位中。
這種命令作為圖像處理、動作補償(MC)、半對(ペル)用命令是有效的。
另外,本處理器1也可具備不僅執行對以上兩排SIMD數據標量化的運算、而且還執行標量化擴展其的n(4、8等)個要素構成的n排SIMD數據運算的功能。
例如,也可具備在設寄存器Ra中存儲的4個字節數據從上位開始為Ra1、Ra2、Ra3、Ra4的情況下,累加這些Ra1、Ra2、Ra3、Ra4,將結果存儲在寄存器Rb中的命令。
另外,本處理器1不僅將由多個要素數據構成的矢量變換為由1個要素數據構成的標量,而且也可進行使要素數據的個數減少的矢量低維化。
另外,運算的種類不僅限於加法,也可是算出平均值的運算。這種命令對平均、運算結果的一致等有效。
(5)其它關於SIMD的命令下面,說明不屬於以上分類的其它SIMD型命令。
命令vexth是以半字(16比特)單位、分別符號擴展兩個SIMD數據的SIMD型命令。例如,若為vexth Mm,Rb,Ra,則處理器1通過變換器47的飽和功能塊(SAT)47a等,(i)將寄存器Ra的上位16位符號擴展為32比特,將結果存儲在運算寄存器MHm的上位16位和運算寄存器MLm的上位16位中,與之並行,(iii)將寄存器Ra的上位16位符號擴展為32比特,將結果存儲在運算寄存器MHm的下位16位和運算寄存器MLm的下位16位中,與之並行,(iii)將寄存器Ra的32比特存儲在寄存器Rb中。
所謂符號擴展是維持原樣延長符號信息的數據長度,例如,將由半字表現的帶符號數值變換為由字表現的相同數值。具體而言,是埋盡由原始數據的符號位(最上位位)值擴展的上位位的處理。
這種命令對向累加器傳送SIMD數據(必需精度的情況下)有效。
命令vasubb是以字節單位、分別減去4組SIMD數據、並將結果得到的4個符號存儲在條件標誌寄存器中的SIMD型命令。例如,若為vasubb Rc,Rb,Ra,則處理器1通過算術邏輯、比較運算器41等,(i)從寄存器Rb的最上位8位中減去寄存器Ra的最上位8位,將結果存儲在寄存器Rc的最上位8位中,同時,將其符號存儲在條件標誌寄存器(CFR)32的VC3中,與之並行,(ii)從寄存器Rb的中上位8位中減去寄存器Ra的中上位8位,將結果存儲在寄存器Rc的中上位8位中,同時,將其符號存儲在條件標誌寄存器(CFR)32的VC2中,與之並行,(iii)從寄存器Rb的中下位8位中減去寄存器Ra的中下位8位,將結果存儲在寄存器Rc的中下位8位中,同時,將其符號存儲在條件標誌寄存器(CFR)32的VC1中,與之並行,(iv)從寄存器Rb的最下位8位中減去寄存器Ra的最下位8位,將結果存儲在寄存器Rc的最下位8位中,同時,將其符號存儲在條件標誌寄存器(CFR)32的VC0中。
這種命令在每次得到絕對值差的和時暫時需要9比特精度的情況下有效。
命令vabssumb是以字節單位、分別相加4組SIMD數據的絕對值、並將其結果與其它4位元組數據相加的SIMD型命令。例如,若為vabssumb Rc,Rb,Ra,則處理器1通過算術邏輯、比較運算器41等,將寄存器Ra的最上位8位的絕對值、中上位8位的絕對值、中下位8位的絕對值和最下位8位的絕對值相加,並將其結果與寄存器Rb的32比特相加,將所得結果存儲在寄存器Rc中。另外,本處理器1通過條件標誌寄存器(CFR)32的標誌VC0-VC3,特定存儲在寄存器Ra中的各字節的絕對值。
這種命令通過與上述命令vasubb組合使用,在對多組數據算出各組的差後,得到合計各差絕對值的值,算出圖像處理動作預測的差分絕對值等情況下有效。
(6)其它關於屏蔽運算等的命令下面,說明不是SIMD型命令、但進行特徵處理的命令。
命令addmsk是屏蔽兩個操作字一方的部分比特(上位)後相加的命令。例如,若為addmsk Rc,Rb,Ra,則處理器1通過算術邏輯、比較運算器41或變換器47等,僅在由條件標誌寄存器(CFR)32的BP0指定的範圍(下位比特)中存儲在寄存器Ra和寄存器Rb中的數據相加後存儲在寄存器Rc中,同時,對未指定的範圍(上位位),將寄存器Ra的值原樣存儲在寄存器Rc中。
這種命令作為與模數尋址(在DSP中一般)的對應有效。由於蝶形運算的準備而事先將數據重新排列為特定圖案中,必需該命令。
本處理器1即使對減法命令(submsk)也可執行與該加法命令一樣的處理。
命令mskbrvh是顛倒(將比特的排列變為反序)兩個操作字一方的部分比特(下位)後、與另一方操作數進行比特連接的命令。例如,若為mskbrvh Rc,Rb,Ra,則處理器1通過變換器47等,在對寄存器Rb的下位16位進行反序後,在由條件標誌寄存器(CFR)32的BP0指定的位位置上,連接寄存器Ra的數據和寄存器Rb的數據,將結果存儲在寄存器Rc中。此時,將寄存器Rb的上位16位中、比BP0指定的位置靠下位部分屏蔽為0。
這種命令在對應於顛倒尋址,由於蝶形運算的準備而事先將數據重新排列為特定圖案中,需要該命令。
另外,本處理器1不僅對16比特進行反序,即使對將1位元組等區域反序的命令(mskbrvb等),也可執行與該命令一樣的處理。
命令msk是將構成操作數的比特中、由指定的兩個位位置夾持的區域屏蔽(為0)、或屏蔽該區域之外的命令。例如,若為mskRc,Rb,Ra,則處理器1通過變換器47等,(i)在Rb[12:8]≥Rb[4:0]的情況下,將寄存器Ra中存儲的32比特中,將從由寄存器Rb的第0-4的5比特Rb[4:0]指定的位位置開始由寄存器Rb的第8-12的5比特Rb[12:8]指定的位位置保持原樣不變,將其它位屏蔽(為0),存儲在寄存器Rc中。
(i)在Rb[12:8]<Rb[4:0]的情況下,將寄存器Ra中存儲的32比特中,將從由寄存器Rb的第8-12的5比特Rb[12:8]指定的位位置開始由寄存器Rb的第0-4的5比特Rb[4:0]指定的位位置屏蔽(為0),將其它比特保持原樣不變,存儲在寄存器Rc中。
這種命令可用於比特欄位的抽取、插入(組裝)中。可用於由軟體進行VLD/VLC的情況。
命令bseq是從操作數的MSB的下一比特開始計數連接的符號位數的命令。例如,若為bseq Rb,Ra,則處理器1通過變換器47的BSEQ功能塊47b等,從寄存器Ra的下一比特中計數連續的符號位數,並將結果存儲在寄存器Rb中。另外,在寄存器Ra的值為0的情況下,將0存儲在寄存器Rb中。
這種命令可用於檢測有效進位。因為動態範圍取得大,所以有時進行部分浮動小數點運算。例如,在每次與排列內最有效進位多的數據一致標準化所有數據並進行運算時,可使用該命令。
命令ldbq是符號擴展2位元組數據後從存儲器下載到寄存器中的命令。例如,若為ldbq Rb:Rb+1,(Ra,D9),則處理器1通過I/F部50等,根據將位移值(D9)加到寄存器Ra的值上的地址,符號擴展兩個字節數據,分別下載到寄存器Ra和寄存器(Ra+1)中。
這種命令高速提供數據。
另外,本處理器1不僅對兩個寄存器下載,即使對下載到1個寄存器的上位半字和下位半字等(lbdh等),也可執行與該下載命令一樣的處理(伴隨符號擴展的下載)。
命令rde是讀入外部寄存器的值、在讀入失敗時發生錯誤例外的命令。例如,若為rde C0:C1,Rb,(Ra,D5),則處理器1通過I/F部50等,將位移值(D5)加到寄存器Ra的值上的值作為外部寄存器序號,將該外部寄存器(擴展寄存器部80)的值讀入寄存器Rb中,同時,將讀入成功、失敗輸出到條件標誌寄存器(CFR)32的條件標誌C0及C1。在失敗時,發生擴展寄存器錯誤例外。
這種命令作為控制硬體累加器的命令是有效的。硬體一返回錯誤,則發生例外,並反映到標誌中。
另外,本處理器1不僅對從外部寄存器讀入,即使寫出到外部寄存器(命令wte),也可執行與該讀取命令一樣的處理(標誌的設置、例外的發生)。
命令addarvw是進行絕對值捨入(向離開零的方向捨入)相加的命令。例如,若為addarvw Rc,Rb,Ra,則處理器1通過算術邏輯、比較運算器41等,將寄存器Ra的32比特與寄存器Rb的32比特相加,若結果為正,則進行進位捨去比特的處理,若結果為負,則進行捨去捨入比特的處理。具體而言,將寄存器Ra和Rb的值相加,在寄存器Ra的值為正的情況下,加1。另外,在進行絕對值捨入的情況下,將由1埋置比捨入比特下位的比特的值加入寄存器Rb中。
這種命令對絕對值捨入(在離開零的方向上捨入)的加法IDCT(Inverse Discrete Cosine Transform)有效。
發明效果如上所述,可知,本發明的處理器是執行由1個命令來運算多個數據的SIMD型命令的處理器,不僅對兩個數據排列中同一順序的數據彼此、而且對處於交叉位置關係上的數據彼此或處於對稱位置關係上的數據彼此並列執行運算。因此,可高速化對數字濾波器等處於對稱位置關係上的數據實施相同運算的處理,實現適於多媒體處理等的處理器。
這裡,在運算的種類是乘法、積和或積差的情況下,也可又僅輸出所得運算結果各自的下位部分、又僅輸出上位部分、又僅輸出部分運算結果。由此,對於複數的內積等,因為在運算的同時執行處理整數數據的情況或處理固定小數點數據情況下必需的比特捨去處理,所以高速化使用複數等2維數據的運算、例如使用2維坐標的圖像處理或使用振幅和相位等二維表現的聲音信號的處理等。
如上所述,本發明的處理器與通常的微型計算機相比,排列性高,AV媒體類信號處理高速,可作為共同的晶片處理器用作便攜電話、移動AV設備、數字TV、DVD等中,在期望高性能、高性價比的多媒體設備出現的今天,實用價值極高。
表1

表2

表3

表4

表3


此外,在此例中,在進行標準化時,作為基準值的一例使用表4的值。
表4


另外,來自消化道的葡萄糖的吸收速度,使用圖10所示的值。
在上述條件下模擬的結果,將血糖值6的時序變動示於圖11,將血胰島素濃度49的時序變動示於圖12,將肝糖攝取的時序變動示於圖13,而將肝糖釋放的時序變動示於圖14。另外,將參照用的血糖值示於圖15,而將參照用的血胰島素濃度示於圖16。
圖6

表7

表8

表9

表10

權利要求
1.一種處理器,執行由1個命令來運算多個數據的SIMD型命令,其特徵在於具備解碼單元,解碼命令;和執行單元,根據解碼單元的解碼結果,執行命令;上述執行單元在通過上述解碼單元解碼SIMD型命令的情況下,其中,SIMD型命令包含指定運算種類的命令代碼、指定n(≥2)組數據的第1操作數、和指定存儲運算結果用數據的第2操作數,對上述n組數據進行上述命令代碼指定的運算,將對所得n個運算結果分別僅移位一定位數後得到的n個值,存儲在上述第2操作數指定的第2數據中。
2.根據權利要求1所述的處理器,其特徵在於上述命令代碼指定的運算種類中包含加法及減法。
3.根據權利要求1所述的處理器,其特徵在於上述一定位數是包含在上述命令中的操作數或預定的寄存器指定的可變值。
4.根據權利要求1所述的處理器,其特徵在於上述一定位數是對應於包含在上述命令中的命令代碼所預定的固定值。
5.根據權利要求1所述的處理器,其特徵在於由包含在上述命令中的操作數或預定的寄存器來指定移位上述運算結果的方向。
6.根據權利要求1所述的處理器,其特徵在於對應於包含在上述命令中的命令代碼來預定移位上述運算結果的方向。
7.一種處理器,執行由1個命令來運算多個數據的SIMD型命令,其特徵在於具備解碼單元,解碼命令;和執行單元,根據解碼單元的解碼結果,執行命令;上述執行單元在通過上述解碼單元解碼SIMD型命令的情況下,其中,SIMD型命令包含指定運算種類的命令代碼、指定n(≥2)個數據的第1操作數、和指定存儲運算結果用數據的第2操作數,通過對上述n個數據進行上述命令代碼指定的運算,算出小於n的個數的運算結果,並將所得的運算結果存儲在上述第2操作數指定的第2數據中。
8.根據權利要求7所述的處理器,其特徵在於上述小於n的個數是1個。
9.一種處理器,執行由1個命令來運算多個數據的SIMD型命令,其特徵在於具備解碼單元,解碼命令;和執行單元,根據解碼單元的解碼結果,執行命令;上述執行單元在通過上述解碼單元解碼SIMD型命令的情況下,其中,SIMD型命令包含指定運算種類的命令代碼、指定n(≥2)×m(≥2)個數據的第1操作數、和指定存儲運算結果用數據的第2操作數,對以n個數據為1組的各m組進行上述命令代碼指定的運算,將所得的m個運算結果存儲在上述第2操作數指定的第2數據中。
10.根據權利要求7-9之任一項所述的處理器,其特徵在於上述命令代碼指定的運算種類中包含加法及積和。
11.一種處理器,執行由1個命令來運算多個數據的SIMD型命令,其特徵在於具備解碼單元,解碼命令;和執行單元,根據解碼單元的解碼結果,執行命令;上述執行單元在通過上述解碼單元解碼SIMD型命令的情況下,其中,SIMD型命令包含指示數據擴展的命令代碼和指定n(≥2)個數據的第1操作數,對上述n個數據中的至少1個進行位寬度擴展,將所得的結果存儲在預定的寄存器中。
12.根據權利要求11所述的處理器,其特徵在於上述執行單元在解碼上述命令的情況下,對上述n個數據的每個都進行位寬度擴展,並將所得的n個擴展部分存儲在預定的寄存器中。
13.一種處理器,其特徵在於具備解碼單元,解碼命令;和執行單元,根據解碼單元的解碼結果,執行命令;上述執行單元在通過上述解碼單元解碼包含指定運算的命令代碼、n比特的第1操作數、和第2操作數的命令的情況下,對將上述第1操作數的上位m(<n)位屏蔽(mask)為0所得的值和上述第2操作數進行上述命令代碼指定的運算。
14.根據權利要求13所述的處理器,其特徵在於上述處理器還具備指定上述m的寄存器。
15.一種處理器,其特徵在於具備解碼單元,解碼命令;和執行單元,根據解碼單元的解碼結果,執行命令;上述執行單元在通過上述解碼單元解碼包含確定命令種類的命令代碼、n比特的第1操作數、和第2操作數的命令的情況下,連接將上述第1操作數的下位m(<n)位排列反序後的位列和上述第2操作數的一部分位。
16.一種處理器,其特徵在於具備解碼單元,解碼命令;和執行單元,根據解碼單元的解碼結果,執行命令;上述執行單元在通過上述解碼單元解碼包含確定命令種類的命令代碼和n比特的第1操作數的命令的情況下,將上述第1操作數的下位m(<n)位排列反序,並且將上述第1操作數中的除上述m位的區域的至少一部分屏蔽為0。
17.一種處理器,其特徵在於具備解碼單元,解碼命令;和執行單元,根據解碼單元的解碼結果,執行命令,上述執行單元在通過上述解碼單元解碼包含確定命令種類的命令代碼、第1操作數和第2操作數的命令的情況下,將上述第1操作數中由上述第2操作數表示的兩個位位置確定的區域屏蔽為0。
18.根據權利要求17所述的處理器,其特徵在於上述第2操作數存儲指定上述第1操作數中兩個位位置每個的兩個數據,上述執行單元將上述第1操作數中、由上述第2操作數表示的兩個位位置夾持的位屏蔽為0,或將上述第1操作數中、比上述第2操作數表示的兩個位位置中上位的位位置還上位的位和比上述兩個位位置中下位的位位置還下位的位屏蔽為0。
19.根據權利要求18所述的處理器,其特徵在於上述第2操作數中存儲的兩個數據中、第1數據表示第1位位置,第2數據表示第2位位置,上述執行單元根據上述第1位位置與上述第2位位置的位置關係,對將上述第1操作數中由上述第2位位置與上述第1位位置夾持的位屏蔽為0、或將上述第1操作數中比上述第2位位置上位的位和比第1位位置下位的位屏蔽為0進行切換。
20.根據權利要求19所述的處理器,其特徵在於上述執行單元在上述第1位位置是比上述第2位位置上位位的情況下,將上述第1操作數中由上述第2位位置與上述第1位位置夾持的位屏蔽為0,在上述第1位位置是比上述第2位位置下位位的情況下,將上述第1操作數中比上述第2位位置上位的位和比第1位位置下位的位屏蔽為0。
21.一種處理器,其特徵在於具備解碼單元,解碼命令;和執行單元,根據解碼單元的解碼結果,執行命令;上述執行單元在通過上述解碼單元解碼包含確定命令種類的命令代碼、第1操作數和第2操作數的命令的情況下,對上述第1操作數計數從MSB的1比特之下開始連續的符號位數的數量,並將該結果存儲在上述第2操作數中。
22.一種處理器,執行由1個命令來運算多個數據的SIMD型命令,其特徵在於具備多個寄存器;解碼單元,解碼命令;和執行單元,根據解碼單元的解碼結果,執行命令;上述執行單元在通過上述解碼單元解碼SIMD型命令的情況下,其中,SIMD型命令包含指定運算種類的命令代碼、指定n(≥2)組第1數據群的第1操作數、和指定由n個數據排列構成的第2數據群的第2操作數,對以屬於上述第1數據群的1個數據和屬於上述第2數據群的1個數據為1組的n組分別進行由上述命令代碼指示的運算的結果,將得到的n個符號位存儲在預定的寄存器中。
23.一種處理器,執行由1個命令來運算多個數據的SIMD型命令,其特徵在於具備多個寄存器;解碼單元,解碼命令;和執行單元,根據解碼單元的解碼結果,執行命令;上述執行單元在通過上述解碼單元解碼SIMD型命令的情況下,其中,SIMD型命令包含指定運算種類的命令代碼、和指定n(≥2)個數據排列構成的第1數據群的第1操作數,對以屬於上述第1數據群的1個數據和存儲在預定的寄存器中的n個符號位的1個為1組的n組分別進行由上述命令代碼指示的運算。
24.一種處理器,執行由1個命令來運算多個數據的SIMD型命令,其特徵在於具備多個寄存器;解碼單元,解碼命令;和執行單元,根據解碼單元的解碼結果,執行命令,上述執行單元在通過上述解碼單元解碼第1個SIMD型命令的情況下,其中,該第1SIMD型命令包含指示減法的命令代碼、指定n(≥2)組第1數據群的第1操作數、和指定由n個數據排列構成的第2數據群的第2操作數,對以屬於上述第1數據群的1個數據和屬於上述第2數據群的1個數據為1組的n組分別進行減法運算的結果,將得到的n個符號位存儲在預定的寄存器中,並且,在通過上述解碼單元解碼第2個SIMD型命令的情況下,其中,該第2SIMD型命令包含預定的命令代碼、和指定由n個數據排列構成的第3數據群的第3操作數,在上述預定的寄存器中存儲的n個符號位的對應的1個表示負數的情況下,對屬於上述第3數據群的n個各數據進行絕對值化。
25.根據權利要求24所述的處理器,其特徵在於上述第3操作數指定執行上述第1個SIMD型命令所得到的n個減法運算結果的數據排列構成的數據群,在上述第1個SIMD型命令後,執行上述第2個SIMD型命令,由此,對以屬於上述第1數據群的1個數據和屬於上述第2數據群的1個數據為1組的n組分別求出差的絕對值。
26.一種處理器,其特徵在於具備多個寄存器;解碼單元,解碼命令;和執行單元,根據解碼單元的解碼結果,執行命令;上述執行單元在通過上述解碼單元解碼命令的情況下,其中,該命令包含指示從存儲器中讀取的命令代碼、指定存儲器上地址的第1操作數、和指定存儲讀取數據用寄存器的第2操作數,讀取從上述第1操作數指定的地址開始的存儲器區域中存儲的兩個字節數據,在將各字節數據進行位寬度擴展後,分別存儲在由上述第2操作數確定的兩個寄存器中。
27.一種處理器,其特徵在於具備多個寄存器;解碼單元,解碼命令;和執行單元,根據解碼單元的解碼結果,執行命令;上述執行單元在上述解碼單元解碼命令的情況下,其中,該命令包含指示從存儲器中讀取的命令代碼、指定存儲器上地址的第1操作數、和指定存儲讀取數據用寄存器的第2操作數,讀取從上述第1操作數指定的地址開始的存儲器區域中存儲的兩個字節數據,在將各字節數據進行位寬度擴展後,分別存儲在由上述第2操作數確定的寄存器的上位數位和下位數位中。
28.一種處理器,其特徵在於具備解碼單元,解碼命令;和執行單元,根據解碼單元的解碼結果,執行命令,上述執行單元在上述解碼單元解碼命令的情況下,其中,該命令包含指示從外部讀取數據的命令代碼、和指定讀取目的地的第1操作數,嘗試從上述第1操作數指定的外部讀取數據,在讀取失敗的情況下,將錯誤信息存儲在預定的寄存器中。
29.一種處理器,其特徵在於具備解碼單元,解碼命令;和執行單元,根據解碼單元的解碼結果,執行命令,上述執行單元在上述解碼單元解碼命令的情況下,其中,該命令包含指示向外部寫入數據的命令代碼、和指定寫入目的地的第1操作數,嘗試向上述第1操作數指定的外部寫入數據,在寫入失敗的情況下,將錯誤信息存儲在預定的寄存器中。
30.一種處理器,其特徵在於具備解碼單元,解碼命令;和執行單元,根據解碼單元的解碼結果,執行命令,上述執行單元在上述解碼單元解碼命令的情況下,其中,該命令包含指示絕對值捨入運算的命令代碼、和指定作為運算對象的1組數據的操作數,運算上述操作數指定的1組數據,在運算結果為正的情況下,進位預定的數位,在運算結果為負的情況下,捨去預定數位,由此進行絕對值捨入。
全文摘要
提供一種執行對作為SIMD運算對象的操作數位置的約束少、彈性高的SIMD運算的處理器。具備解碼部(20)和運算部(40)等,若解碼部(20)解碼命令[vxaddh Rc,Ra,Rb],則算術邏輯、比較運算器(41)等(i)將寄存器Ra的上位16位與寄存器Rb的下位16位相加,將結果存儲在寄存器Rc的上位16位中,同時,(ii)將寄存器Ra的下位16位與寄存器Rb的上位16位相加,將結果存儲在寄存器Rc的下位16位中。
文檔編號G06F9/38GK1862521SQ20051009246
公開日2006年11月15日 申請日期2003年6月3日 優先權日2002年6月3日
發明者田中哲也, 岡林羽月, 瓶子嶽人, 小川一, 古賀義宏, 黑田學, 鈴木正人, 清原督三, 田中健, 西田英志, 宮阪修二 申請人:松下電器產業株式會社

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀