專利名稱:數(shù)學(xué)運(yùn)算處理裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)學(xué)運(yùn)算處理裝置,并且更具體地,涉及其中多個(gè)計(jì)算單元 彼此同步地單獨(dú)進(jìn)行數(shù)學(xué)運(yùn)算的數(shù)學(xué)運(yùn)算處理裝置。本發(fā)明還涉及用于這種 數(shù)學(xué)運(yùn)算的處理方法和使得計(jì)算機(jī)執(zhí)行該處理方法的程序。
背景技術(shù):
在近年來(lái)的處理器體系結(jié)構(gòu)中,經(jīng)常提出縮短機(jī)器周期并增加每個(gè)機(jī)器 周期所處理的指令數(shù),以實(shí)現(xiàn)有效性能的改進(jìn)。作為一種這樣的處理器體系結(jié)構(gòu),VLIW(極長(zhǎng)指令字)系統(tǒng)是公知的。在VUM系統(tǒng)中,將多個(gè)數(shù)學(xué)運(yùn) 算等分配在一個(gè)指令中,并同時(shí)執(zhí)行。
通常,當(dāng)處理器執(zhí)行數(shù)學(xué)運(yùn)算時(shí),與數(shù)學(xué)運(yùn)算的結(jié)果一起輸出數(shù)學(xué)運(yùn)算 的狀態(tài),作為條件代碼?;跅l件代碼(例如)可以檢測(cè)到數(shù)字值的一致性、 數(shù)學(xué)關(guān)系等。
根據(jù)以往的VLIM系統(tǒng)的處理器體系結(jié)構(gòu),選擇由多個(gè)指令處理部分的 一些生成的條件代碼,并基于所選擇的條件代碼執(zhí)行條件分支(bmnching)指令 或一些其他條件指令。例如,在日本專利特開(kāi)平9-91141中公開(kāi)了所述類型 的處理器體系結(jié)構(gòu)(圖1 )。
發(fā)明內(nèi)容
根據(jù)過(guò)去的VLIW系統(tǒng)的處理器體系結(jié)構(gòu),可以將同時(shí)執(zhí)行的數(shù)學(xué)運(yùn)算 的條件代碼之一用作執(zhí)行條件分支指令等的分支條件。
但是,當(dāng)涉及復(fù)雜的判斷條件時(shí),必須存儲(chǔ)各個(gè)數(shù)學(xué)運(yùn)算的條件代碼, 并單獨(dú)進(jìn)行組合條件代碼的數(shù)學(xué)運(yùn)算,然后產(chǎn)生后續(xù)指令的操作數(shù)。此外, 有時(shí)分支目標(biāo)地址視條件代碼而不同,并且在這種情況下,必須基于數(shù)學(xué)運(yùn) 算的條件代碼產(chǎn)生分支指令的操作數(shù),并確定所產(chǎn)生的分支指令的分支目標(biāo) 地址。當(dāng)提出這種附加的數(shù)學(xué)運(yùn)算時(shí),有可能損害VLIW系統(tǒng)的這種優(yōu)勢(shì) 同時(shí)執(zhí)行多個(gè)數(shù)學(xué)運(yùn)算, 以實(shí)現(xiàn)高速運(yùn)算。
因此,需要提供一種數(shù)學(xué)運(yùn)算處理裝置,通過(guò)該裝置,基于多個(gè)數(shù)學(xué)運(yùn) 算的條件代碼進(jìn)行的搡作數(shù)的供應(yīng)可以高速地執(zhí)行。
根據(jù)本發(fā)明的實(shí)施例,提供了一種數(shù)學(xué)運(yùn)算處理裝置,其包括多個(gè)計(jì) 算元件,被配置為彼此不同地進(jìn)行不同的數(shù)學(xué)運(yùn)算,并產(chǎn)生這些數(shù)學(xué)運(yùn)算的 數(shù)學(xué)運(yùn)算結(jié)果和條件代碼;條件代碼集合寄存器,被配置為保存由計(jì)算單元 同時(shí)產(chǎn)生的條件代碼,作為條件代碼集合;條件代碼轉(zhuǎn)換部分,被配置為對(duì) 條件代碼集合進(jìn)行預(yù)定轉(zhuǎn)換,并輸出轉(zhuǎn)換結(jié)果,作為轉(zhuǎn)換條件代碼集合;以 及操作數(shù)供應(yīng)部分,被配置為基于轉(zhuǎn)換條件代碼集合供應(yīng)用于計(jì)算元件中的 數(shù)學(xué)運(yùn)算的操作數(shù)。在該數(shù)學(xué)運(yùn)算處理裝置中,將由多個(gè)不同的數(shù)學(xué)運(yùn)算同時(shí)產(chǎn)生的條件代碼設(shè)置為條件代碼集合,并對(duì)該條件代碼集合進(jìn)行預(yù)定轉(zhuǎn)換。 然后,基于轉(zhuǎn)換結(jié)果供應(yīng)操作數(shù)。
根據(jù)本發(fā)明的另一實(shí)施例,提供了一種數(shù)學(xué)運(yùn)算處理裝置,其包括多 個(gè)計(jì)算元件,被配置為彼此不同地進(jìn)行不同的數(shù)學(xué)運(yùn)算,并產(chǎn)生這些數(shù)學(xué)運(yùn) 算的數(shù)學(xué)運(yùn)算結(jié)果和條件代碼;條件代碼集合寄存器,被配置為保存由計(jì)算 元件產(chǎn)生的條件代碼,作為條件代碼集合;條件代碼寫(xiě)入部分,被配置為使 得條件代碼集合寄存器保存在條件代碼集合寄存器中所保存的條件代碼集合 的 一 部分和由計(jì)算單元同時(shí)產(chǎn)生的條件代碼的 一 部分,作為新的條件代碼集 合;條件代碼轉(zhuǎn)換部分,被配置為對(duì)條件代碼集合進(jìn)行預(yù)定轉(zhuǎn)換,并輸出轉(zhuǎn) 換結(jié)果,作為轉(zhuǎn)換條件代碼集合;以及操作數(shù)供應(yīng)部分,被配置為基于轉(zhuǎn)換 條件代碼集合供應(yīng)用于計(jì)算單元中的數(shù)學(xué)運(yùn)算的操作數(shù)。在該數(shù)學(xué)運(yùn)算處理 裝置中,將由多個(gè)計(jì)算單元產(chǎn)生的條件代碼設(shè)置為條件代碼集合,并對(duì)該條 件代碼集合進(jìn)行預(yù)定轉(zhuǎn)換。然后,基于轉(zhuǎn)換結(jié)果供應(yīng)操作數(shù)。
根據(jù)本發(fā)明的另一實(shí)施例,提供了一種數(shù)學(xué)運(yùn)算處理裝置,其包括多 個(gè)計(jì)算元件,被配置為彼此不同地進(jìn)行不同的數(shù)學(xué)運(yùn)算,并產(chǎn)生這些數(shù)學(xué)運(yùn) 算的數(shù)學(xué)運(yùn)算結(jié)果和條件代碼;屏蔽寄存器,被配置為保存代表是否應(yīng)該對(duì) 每個(gè)條件代碼進(jìn)行屏蔽數(shù)學(xué)運(yùn)算的屏蔽位;屏蔽計(jì)算單元,被配置為根據(jù)屏 蔽寄存器對(duì)每個(gè)條件代碼進(jìn)行屏蔽計(jì)算運(yùn)算;反轉(zhuǎn)寄存器,被配置為保存代 表是否應(yīng)該對(duì)由屏蔽計(jì)算單元處理過(guò)的每個(gè)條件代碼進(jìn)行反轉(zhuǎn)處理的反轉(zhuǎn) 位;反轉(zhuǎn)處理器,被配置為根據(jù)反轉(zhuǎn)寄存器對(duì)每個(gè)由屏蔽計(jì)算單元處理的條 件代碼進(jìn)行反轉(zhuǎn)處理;比較樣式寄存器,被配置為比較由反轉(zhuǎn)處理器處理的 條件代碼和比較樣式寄存器中所保存的樣式;轉(zhuǎn)換表,被配置為保存與由反轉(zhuǎn)處理器處理的條件代碼的組合對(duì)應(yīng)的轉(zhuǎn)換條件代碼集合;選擇器,被配置 為響應(yīng)于所述比較器的比較結(jié)果、由所述反轉(zhuǎn)處理器處理過(guò)的條件代碼、或 由所述反轉(zhuǎn)處理器處理過(guò)的條件代碼的組合,而選擇從所述轉(zhuǎn)換表中讀出的 轉(zhuǎn)換條件代碼集合中的一個(gè);以及操作數(shù)供應(yīng)部分,被配置為基于比較器的 輸出供應(yīng)用于計(jì)算元件中的數(shù)學(xué)運(yùn)算的操作數(shù)。在該數(shù)學(xué)運(yùn)算處理裝置中, 將由多個(gè)不同的數(shù)學(xué)運(yùn)算產(chǎn)生的條件代碼設(shè)置為條件代碼集合,并對(duì)該條件 代碼集合進(jìn)行屏蔽運(yùn)算處理、反轉(zhuǎn)處理、比較處理和表格轉(zhuǎn)換處理。然后, 基于這些處理的一個(gè)得到的值供應(yīng)操作數(shù)。
根據(jù)本發(fā)明的另一實(shí)施例,提供了一種數(shù)學(xué)運(yùn)算處理裝置,其包括指 令存儲(chǔ)器,被配置為保存包括了多個(gè)指令的程序;指令抽取/解碼器,被配置 為從指令存儲(chǔ)器中提取指令,并解碼該指令;多個(gè)計(jì)算元件,被配置為基于 解碼結(jié)果彼此不同地進(jìn)行不同的數(shù)學(xué)運(yùn)算,并產(chǎn)生這些數(shù)學(xué)運(yùn)算的數(shù)學(xué)運(yùn)算 結(jié)果和條件代碼;分支處理部分,被配置為基于解碼結(jié)果確定將由指令抽取/ 解碼器提取的指令;數(shù)據(jù)存儲(chǔ)器;加載/存儲(chǔ)處理部分,被配置為訪問(wèn)數(shù)據(jù)存 儲(chǔ)器,以從數(shù)據(jù)存儲(chǔ)器加載必要數(shù)據(jù)或?qū)⒈匾獢?shù)據(jù)存儲(chǔ)到數(shù)據(jù)存儲(chǔ)器中;條 件代碼集合寄存器,被配置為保存由計(jì)算元件同時(shí)產(chǎn)生的條件代碼作為條件 代碼集合;條件代碼轉(zhuǎn)換部分,被配置為對(duì)條件代碼集合進(jìn)行預(yù)定轉(zhuǎn)換,并 輸出轉(zhuǎn)換結(jié)果作為轉(zhuǎn)換條件代碼集合;以及操作數(shù)供應(yīng)部分,被配置為基于 轉(zhuǎn)換條件代碼集合供應(yīng)用于計(jì)算單元中的數(shù)學(xué)運(yùn)算、由分支處理部分進(jìn)行的 確定、或由加載/存儲(chǔ)處理部分進(jìn)行的訪問(wèn)的操作數(shù)。在該數(shù)學(xué)運(yùn)算處理裝置 中,將基于從指令存儲(chǔ)器讀出的多個(gè)指令由多個(gè)不同的數(shù)學(xué)運(yùn)算同時(shí)產(chǎn)生的 條件代碼設(shè)置為條件代碼集合,并對(duì)該條件代碼集合進(jìn)行預(yù)定轉(zhuǎn)換。然后, 基于轉(zhuǎn)換結(jié)果供應(yīng)操作數(shù)。
根據(jù)本發(fā)明的數(shù)學(xué)運(yùn)算處理裝置的優(yōu)勢(shì)在于,基于多個(gè)數(shù)學(xué)運(yùn)算的條件 代碼進(jìn)行的操作數(shù)的供應(yīng)可以高速地執(zhí)行。
結(jié)合附圖,從以下的描述和所附的權(quán)利要求中,本發(fā)明的上述和其他目 標(biāo)、特征和優(yōu)勢(shì)將變得顯而易見(jiàn),在附圖中,由相同的參考標(biāo)號(hào)表示相同的 部分或元件。
圖1是示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的數(shù)學(xué)運(yùn)算處理裝置的結(jié)構(gòu)例子的方框圖2是示出了圖1所示的寄存器單元的結(jié)構(gòu)例子的方框圖3A和3B是圖示圖1所示的標(biāo)記寫(xiě)入部分的運(yùn)算模式的例子的視圖4是示出了圖2所示的設(shè)置寄存器和標(biāo)記轉(zhuǎn)換部分的結(jié)構(gòu)例子的方框
圖5是圖示數(shù)學(xué)運(yùn)算處理裝置中使用的指令格式的例子的視圖6是示出了圖1所示的操作數(shù)選擇器的第一操作數(shù)選擇器的結(jié)構(gòu)例子 的方框圖7是示出了圖1所示的操作數(shù)選擇器的第二操作數(shù)選擇器的結(jié)構(gòu)例子 的方框圖8A和8B是圖示了說(shuō)明數(shù)學(xué)運(yùn)算處理裝置的操作的程序的第一例子的 視圖9是圖示用于執(zhí)行圖8A和8B中的第一程序例的設(shè)置寄存器的設(shè)置例 子的方框圖IOA和IOB是圖示了說(shuō)明數(shù)學(xué)運(yùn)算處理裝置的操作的程序的第二例子 的視圖11是圖示用于執(zhí)行圖IOA和10B中的第二程序例的設(shè)置寄存器的設(shè) 置例子的方框圖12是圖示用于執(zhí)行圖IOA和10B中的第二程序例的標(biāo)記轉(zhuǎn)換表的設(shè) 置例子的視圖13A和13B是圖示了說(shuō)明數(shù)學(xué)運(yùn)算處理裝置的搡作的程序的第三例子 的視圖14是圖示用于執(zhí)行圖13A和13B中的第三程序例的設(shè)置寄存器的設(shè) 置例子的方框圖15是圖示用于執(zhí)行圖13A和13B中的第三程序例的標(biāo)記轉(zhuǎn)換表的設(shè) 置例子的方框圖16A和16B是圖示了說(shuō)明數(shù)學(xué)運(yùn)算處理裝置的操作的程序的第四例子 的浮見(jiàn)圖17是圖示用于執(zhí)行圖16A和16B中的第四程序例的設(shè)置寄存器的設(shè) 置例子的方框圖;以及
圖18是圖示用于執(zhí)行圖16A和16B中的第四程序例的標(biāo)記轉(zhuǎn)換表的設(shè)
置例子的方框圖。
具體實(shí)施例方式
圖1示出了應(yīng)用本發(fā)明的數(shù)學(xué)運(yùn)算處理裝置的結(jié)構(gòu)的例子。參考圖1,
所示的數(shù)學(xué)運(yùn)算處理裝置包括指令存儲(chǔ)器100、指令抽取/解碼器200、寄存 器單元300、操作數(shù)選擇器400、執(zhí)行單元組500和數(shù)據(jù)存儲(chǔ)器600。
指令存儲(chǔ)器IOO保存包括了多個(gè)指令的程序。該指令存儲(chǔ)器100可以是 主存儲(chǔ)裝置的一部分,或保持部分主存儲(chǔ)裝置的指令緩沖器的部分區(qū)域。
指令抽取/解碼器200從指令存儲(chǔ)器100抽取需要的指令,并解碼所抽取 的指令?;谥噶畛槿?解碼器200的解碼結(jié)果,確定要由執(zhí)行單元組500執(zhí) 行的處理內(nèi)容。在本實(shí)施例中,以根據(jù)VLIW系統(tǒng)的處理器體系結(jié)構(gòu)為前提, 并假定同時(shí)抽取并解碼了 32位寬度的六個(gè)指令。
寄存器單元300保存執(zhí)行單元組500的處理所需的數(shù)據(jù)。寄存器單元300 包括多個(gè)數(shù)據(jù)寄存器以及條件代碼集合寄存器,并且寄存器單元300基于指 令抽取/解碼器200的解碼結(jié)果而進(jìn)行讀取或?qū)懭搿?br>
操作數(shù)選擇器400將所需的操作數(shù)供應(yīng)至執(zhí)行單元組500。在本實(shí)施例 中,假定分別將第一和第二操作數(shù)供應(yīng)給執(zhí)行單元組的六個(gè)單元。
執(zhí)行單元組500進(jìn)行數(shù)學(xué)運(yùn)算處理裝置的實(shí)質(zhì)處理。在本實(shí)施例中,執(zhí) 行單元組500包括六個(gè)單元,該六個(gè)單元包括了計(jì)算單元弁A 501、計(jì)算單元 #B 511、計(jì)算單元#0 521、計(jì)算單元弁D531、加載/存儲(chǔ)單元541和分支單元 551。所提到的六個(gè)單元同時(shí)執(zhí)行操作。
計(jì)算單元弁A到弁D501、 511、 521和531對(duì)于從操作數(shù)選擇器400供應(yīng)來(lái) 的第一和第二操作數(shù)執(zhí)行四個(gè)基本數(shù)學(xué)運(yùn)算、邏輯運(yùn)算等,并將數(shù)學(xué)運(yùn)算結(jié) 果(rdO[31:0]、 rdl[31:0]、 rd2[31:0]和rd3[31:0])分別輸出到信號(hào)線509、 519、 529和539。在此,在數(shù)學(xué)運(yùn)算結(jié)果中,rdO[31:0]代表作為數(shù)學(xué)運(yùn)算單元弁A (501)的輸出的32位的數(shù)學(xué)運(yùn)算結(jié)果,其中MSB是第31位并且LSB是第 0位。同樣,其他數(shù)學(xué)運(yùn)算結(jié)果rdl[31:0]、 rd2[31:0]和rd3[31:0]類似地分別代 表數(shù)學(xué)運(yùn)算單元弁B ( 511 )、 #C ( 521 )和^D ( 531 )的32位的數(shù)學(xué)運(yùn)算結(jié)果。
此外,每個(gè)計(jì)算單元弁A到弁D501、 511、 521和531確定數(shù)學(xué)運(yùn)算處理時(shí) 的狀態(tài),作為條件代碼(rfO、 rfl、 rf2或rf3),并將其與數(shù)學(xué)運(yùn)算的結(jié)果一起 輸出。在該例子中,rfO是計(jì)算單元存A501的l位條件代碼,并且如果數(shù)學(xué)運(yùn)
算結(jié)果是真則指示“1”,,而如果數(shù)學(xué)運(yùn)算結(jié)果是假則指示"0"。這也類似地 適用于其他條件代碼rfl、 rf2和rf3,并且它們分別代表計(jì)算單元#B 511 、 #C 521和#D531的條件代碼。'
將數(shù)學(xué)運(yùn)算結(jié)果rd0[31:0]、 rdl[31:0]、 rd2[31:0]和rd3[31:0]以及條件代碼 rfO、 rfl、 rf2和rf3供應(yīng)至寄存器單元300。
加載/存儲(chǔ)單元541基于從操作數(shù)選擇器400供應(yīng)來(lái)的第一和第二操作數(shù) 來(lái)訪問(wèn)數(shù)據(jù)存儲(chǔ)器600。如果由指令抽取/解碼器200解碼的指令是加載指令, 那么加載/存儲(chǔ)單元541從數(shù)據(jù)存儲(chǔ)器600讀出數(shù)據(jù),并通過(guò)信號(hào)線549將加 載數(shù)據(jù)rd4[31:0]供應(yīng)至寄存器單元300。在本例中,rd4[31:0]代表32位的加 載數(shù)據(jù)。如果由指令抽取/解碼器200解碼的指令是存儲(chǔ)指令,那么加載/存儲(chǔ) 單元541將存儲(chǔ)數(shù)據(jù)寫(xiě)入數(shù)據(jù)存儲(chǔ)器600中。
分支單元551基于從操作數(shù)選擇器400供應(yīng)的第一和第二操作數(shù)判斷指 令序列是否包括分支。如果指令序列包括分支,那么分支單元551確定分支 目標(biāo)地址。將分支單元551的判斷結(jié)果供應(yīng)至指令抽取/解碼器200,并用于 下一指令的抽取和解碼。
數(shù)據(jù)存儲(chǔ)器600保存操作程序所需的數(shù)據(jù)。數(shù)據(jù)存儲(chǔ)器600可以是主存 儲(chǔ)裝置、或可以是用于部分保持主存儲(chǔ)裝置的數(shù)據(jù)高速緩存。
圖2示出了本實(shí)施例中的寄存器單元300的結(jié)構(gòu)的例子。參考圖2,所 示的寄存器單元300包括寄存器文件310、設(shè)置寄存器320、標(biāo)記寫(xiě)入部分 330和標(biāo)記轉(zhuǎn)換部分340。
寄存器文件310是包括多個(gè)字的寄存器組。將寄存器文件310的內(nèi)容劃 分成數(shù)據(jù)寄存器和條件代碼集合寄存器。數(shù)據(jù)寄存器保存用于執(zhí)行單元組500 的操作數(shù)數(shù)據(jù)。假定在本實(shí)施例中,提供了用于32位的16個(gè)字(r0到rl5) 的16個(gè)寄存器。條件代碼集合寄存器保存條件代碼集合。每個(gè)條件代碼集合 是與數(shù)學(xué)運(yùn)算單元的數(shù)量一樣多的多個(gè)條件代碼。在本實(shí)施例中,假定提供 了用于四個(gè)字的四個(gè)寄存器(rF[O]到rF[3]),用于保存每個(gè)字一位的標(biāo)記。
設(shè)置寄存器320用于設(shè)置控制寄存器單元300的操作的信息。在本實(shí)施 例中,設(shè)置寄存器320包括寫(xiě)模式寄存器Reg—WRMODE、屏蔽(mask)寄 存器Reg—MASK[3:0],反轉(zhuǎn)寄存器Reg_XOR[3:0]、比較樣式寄存器 Reg一MATCH[3:0]和功能寄存器Reg一FUNC[l:O]。將寫(xiě)模式寄存器的值供應(yīng)至 標(biāo)記寫(xiě)入部分330,而將其他四個(gè)寄存器的值供應(yīng)至標(biāo)記轉(zhuǎn)換部分340。在下
文中描述所提到的寄存器的內(nèi)容。
標(biāo)記寫(xiě)入部分330基于設(shè)置寄存器320的寫(xiě)模式寄存器Reg一WRMODE 的值執(zhí)行寫(xiě)入寄存器文件310的條件代碼集合寄存器的標(biāo)記。
標(biāo)記轉(zhuǎn)換部分340對(duì)寄存器文件310的條件代碼集合寄存器的標(biāo)記進(jìn)行 轉(zhuǎn)換,以產(chǎn)生轉(zhuǎn)換條件代碼集合rF_out[3:0]。將設(shè)置寄存器320的屏蔽寄存 器Reg—MASK[3:0],反轉(zhuǎn)寄存器Reg—XOR[3:0]、比較樣式寄存.器 Reg—MATCH[3:0]和功能寄存器Reg一FUNC[l:O]供應(yīng)至標(biāo)記轉(zhuǎn)換部分340。
要注意,在本實(shí)施例中,寫(xiě)入到數(shù)據(jù)寄存器中與普通的數(shù)學(xué)運(yùn)算處理裝 置的寫(xiě)入相似,因此,在此省略了相同的描述。
圖3A和3B圖示本實(shí)施例中的標(biāo)記寫(xiě)入部分330的操作模式的例子。如 上所述,標(biāo)記寫(xiě)入部分330基于設(shè)置寄存器320的寫(xiě)模式寄存器 Reg_WRMODE的值,執(zhí)行寫(xiě)入寄存器文件310的條件代碼集合寄存器的標(biāo) 記。當(dāng)寫(xiě)模式寄存器Reg—WRMODE的值指示"0"時(shí),如圖3A所示,將從 計(jì)算單元弁A 501輸出的條件代碼rfl保存到條件代碼集合寄存器的寄存器 rF[O]中。此外,將從計(jì)算單元弁B 511輸出的條件代碼rfl保存到條件代碼集 合寄存器的寄存器rF[l]中;將從計(jì)算單元弁C 521輸出的條件代碼rf2保存到 條件代碼集合寄存器的寄存器rF[2]中;并將從計(jì)算單元弁D 531輸出的條件代 碼rf3保存到條件代碼集合寄存器的寄存器rF[3]中。下文中將寫(xiě)模式寄存器 Reg一WRMODE指示"0"的狀態(tài)稱為直達(dá)模式(through-mode )。
另一方面,當(dāng)寫(xiě)模式寄存器Reg—WRMODE時(shí),如圖3B所示,將條件 代碼集合寄存器在朝向MSB的方向上向左移位。具體地,重新由寄存器rF[3] 保存條件代碼集合寄存器的寄存器rF[2]的值;重新由寄存器rF[2]保存條件代 碼集合寄存器的寄存器rF[l]的值;并重新由寄存器rF[l]保存條件代碼集合寄 存器的寄存器rF[O]的值。然后,由寄存器rF
保存從計(jì)算單元存A到弁D501、 511、 521和531中的一個(gè)輸出的條件代碼。盡管在此表示了其中由條件代碼 集合寄存器的寄存器rF
保存從計(jì)算單元弁A501輸出的寄存器rF[O]的例子, 但是可以由指令格式的某些字段來(lái)指定對(duì)象數(shù)學(xué)運(yùn)算單元。在下文中將寫(xiě)模 式寄存器Reg—WRMODE指示'T'的狀態(tài)稱為歷史模式。
圖4示出了本實(shí)施例中的設(shè)置寄存器320和標(biāo)記轉(zhuǎn)換部分340的結(jié)構(gòu)的 例子。
參考圖4,設(shè)置寄存器320包括寫(xiě)模式寄存器Reg一WRMODE321、屏蔽
寄存器Reg—MASK[3:0] 322,反轉(zhuǎn)寄存器Reg_XOR[3:0] 323、比較樣式寄存 器Reg—MATCH[3:0] 324和功能寄存器Reg—FUNC[1:0] 325。
寫(xiě)模式寄存器321在寫(xiě)入到條件代碼集合寄存器中時(shí)指定標(biāo)記寫(xiě)入部分 330的操作模式。在本實(shí)施例中,當(dāng)寫(xiě)模式寄存器321指示"0"時(shí),標(biāo)記寫(xiě) 入部分330以直達(dá)模式操作,而當(dāng)寫(xiě)模式寄存器321指示"1"時(shí),標(biāo)記寫(xiě)入 部分330以歷史模式操作。
屏蔽寄存器322保存是否應(yīng)該屏蔽條件代碼集合寄存器的標(biāo)記。
反轉(zhuǎn)寄存器323保存是否應(yīng)該反轉(zhuǎn)屏蔽數(shù)學(xué)運(yùn)算后的條件代碼集合寄存 器的標(biāo)記。
比較樣式寄存器324保存位樣式,應(yīng)該用該位樣式檢測(cè)反轉(zhuǎn)處理后的條 件代碼集合寄存器的標(biāo)記的一致性。
功能寄存器325保存代表標(biāo)記轉(zhuǎn)換部分340的功能的代碼。
標(biāo)記轉(zhuǎn)換部分340包括邏輯與(AND)單元、邏輯異或(XOR)單元343、比 較器344、標(biāo)記轉(zhuǎn)換表345和選擇器346。
邏輯與單元342進(jìn)行條件代碼集合寄存器的標(biāo)記和屏蔽寄存器 Reg一MASK[3:0] 322的相應(yīng)位之間的邏輯與運(yùn)算。具體地,如果屏蔽寄存器 Reg_MASK[3:0] 322的任意位是"0",那么將邏輯與單元342的相應(yīng)輸出屏 蔽為"0",而如果屏蔽寄存器Reg—MASK[3:0] 322的任意位是'T,,那么照 原樣從邏輯與單元342輸出條件代碼集合寄存器的相應(yīng)位的值。
邏輯異或單元343進(jìn)行邏輯與單元342的輸出位和反轉(zhuǎn)寄存器 Reg—XOR[3:0] 323的相應(yīng)位之間的異或運(yùn)算。具體地,如果反轉(zhuǎn)寄存器 Reg—XOR[3:0] 323的任意位是'T',那么將邏輯與單元342的輸出位的值反 轉(zhuǎn),然后從邏輯異或單元343輸出,而如果反轉(zhuǎn)寄存器Reg—XOR[3:0] 323的 任意位是"0",那么照原樣從邏輯異或單元343輸出邏輯與單元342的輸出 的相應(yīng)位的值。輸出邏輯異或單元343的輸出,作為信號(hào)rF—xor[3:0]。
比較器344比較邏輯異或單元343的輸出和比較樣式寄存器 Reg—MATCH[3:0] 324的位樣式,并輸出它們是否相互一致。具體地,如果它 們相互一致,那么信號(hào)rF—m[3:0]變?yōu)?0001" ( 二進(jìn)制數(shù)),并且信號(hào)l'F—nm[3:0] 變?yōu)?0000" ( 二進(jìn)制數(shù))。另 一方面,如果它們相互不一致,那么信號(hào)rF—m[3:0] 變?yōu)?0000" (二進(jìn)制數(shù)),并且信號(hào)rF—nm[3:0]變?yōu)?0001" (二進(jìn)制數(shù))。
標(biāo)記轉(zhuǎn)換表345包括多個(gè)項(xiàng)目,并輸出與邏輯異或單元343的輸出(信號(hào)rF—xor[3:0])對(duì)應(yīng)的值,作為信號(hào)rF一tbl[3:0]。標(biāo)記轉(zhuǎn)換表345具有預(yù)先設(shè) 置的期望的值。在本實(shí)施例中,假定保存了 4位的16個(gè)項(xiàng)目。
選擇器346選擇與功能寄存器Reg一FUNC[l:0] 325中保存的代碼對(duì)應(yīng)的 值。具體地,如果功能寄存器Reg—FUNC[1:0] 325中保存的代碼是"0"(十 進(jìn)制數(shù)),那么選擇信號(hào)rF—m[3:0],而如果代碼是"1"(十進(jìn)制數(shù)),那么選 擇信號(hào)rF一nm[3:0]。但是,如果代碼是"2"(十進(jìn)制數(shù)),那么選擇信號(hào) rF—xor[3:0],而如果代碼是"3",那么選擇信號(hào)rF—tbl[3:0]。然后,輸出所選 擇的信號(hào),作為轉(zhuǎn)換條件代碼集合rF一out[3:0]。
從而,對(duì)于每個(gè)位,將條件代碼集合寄存器的值rf[3:0]屏蔽或異或,以 產(chǎn)生信號(hào)rF—xor[3:0]。因此,從標(biāo)記轉(zhuǎn)換部分340輸出信號(hào)rF—xor[3:0]和其 他位樣式之間的一致性或不一致性、信號(hào)rF一xor[3:0]本身和與信號(hào)rF_xor[3:0] 對(duì)應(yīng)的標(biāo)記轉(zhuǎn)換表345中的值三者中的一個(gè)。
圖5圖示本實(shí)施例中使用的指令格式的例子。在本實(shí)施例中,假定同時(shí) 從指令存儲(chǔ)器100中讀出六個(gè)32位長(zhǎng)度的指令,并由指令抽取/解碼器200 對(duì)其解碼。圖5所示的是一個(gè)這樣的指令。
參考圖5,在所示的指令格式中,指令包括指令代碼字段701、標(biāo)記選擇 字段#0 702、標(biāo)記選擇字段#1 703、操作數(shù)字段#0 704、操作數(shù)字段#1 705和 目標(biāo)字段706。
指令代碼字段701保存代表指令類型的代碼,并且在本實(shí)施例中具有15 位寬度。
標(biāo)記選擇字段#0 702保存是否應(yīng)該選擇操作數(shù)字段#0 704作為第一操作 數(shù)的信息。同時(shí),標(biāo)記選擇字段#1 703保存是否應(yīng)該選擇操作數(shù)字段#1 705 作為第二操作數(shù)的信息。當(dāng)沒(méi)有選擇操作數(shù)字段#0 704和操作數(shù)字段#1 705 的任一個(gè)時(shí),使用標(biāo)記轉(zhuǎn)換部分340的輸出(轉(zhuǎn)換條件代碼集合rF一out[3:0])。 本實(shí)施例中的標(biāo)記選擇字段糾702和標(biāo)記選擇字段#1 703具有一位寬度。
操作數(shù)字段#0 704保存指令的第一操作數(shù)。同時(shí),操作數(shù)字段#1 705保 存指令的第二操作數(shù)。本實(shí)施例中的操作數(shù)字段糾704和操作數(shù)字段#1 705 具有5位寬度。
目標(biāo)字段706保存指令的目標(biāo),并且在本實(shí)施例中具有5位寬度。
圖6示出了本實(shí)施例中的操作數(shù)選擇器400的第一操作數(shù)逸捧器#0 410 的結(jié)構(gòu)的例子。第一操作數(shù)選擇器柳410供應(yīng)執(zhí)行單元組500的單元之一的第一操作數(shù)。第一操作數(shù)選擇器#0 410包括一對(duì)選擇器411和412。
選擇器411選擇響應(yīng)于標(biāo)記選擇字段#702,選擇操作數(shù)字段#704和標(biāo)記轉(zhuǎn)換部分340的輸出(轉(zhuǎn)換條件代碼集合rF—out[3:0])中的一個(gè)。在本實(shí)施例中,當(dāng)標(biāo)記選擇字段#702是"0"時(shí),選擇操作數(shù)字段#704的值, 而當(dāng)標(biāo)記選擇字段#0 702是"1"時(shí),選擇標(biāo)記轉(zhuǎn)換部分340的輸出。供應(yīng)選擇器411的輸出,作為選擇器412的選擇信號(hào)。
選擇器412響應(yīng)于選擇器411的輸出,選擇寄存器文件310的數(shù)據(jù)寄存 器r0到r15的值和標(biāo)記轉(zhuǎn)換部分340的輸出(轉(zhuǎn)換條件代碼集合rF_out[3:0]) 中的一個(gè)。在本實(shí)施例中,如果選擇器411的輸出具有從"0"到"15"(十進(jìn)制數(shù))的一個(gè)值,那么選擇與這個(gè)值對(duì)應(yīng)的數(shù)據(jù)寄存器的值,而如果選擇 器411的輸出具有值"16"(十進(jìn)制數(shù)),那么選擇標(biāo)記轉(zhuǎn)換部分340的輸出。
從而,如果標(biāo)記選擇字段#0 702是"0",則提供與由操作數(shù)字段#704 指示的值對(duì)應(yīng)的數(shù)據(jù)寄存器(r0到r15 )之一的值或標(biāo)記轉(zhuǎn)換部分340的輸出,作為操作數(shù)。另一方面,如果標(biāo)記選擇字段#0 702是“1”則提供由標(biāo)記轉(zhuǎn) 換部分340的輸出指示的數(shù)據(jù)寄存器(r0到rl5)之一的值,作為操作數(shù)。
圖7示出了本實(shí)施例中的操作數(shù)選擇器400的第二操作數(shù)選擇器#1 420 的結(jié)構(gòu)例子。參考圖7,第二搡作數(shù)選擇器#1 420供應(yīng)執(zhí)行單元組500的單 元中的一個(gè)的第二操作數(shù)。第二操作數(shù)選擇器#1 420的結(jié)構(gòu)與上文中參考圖 6所述的第一操作數(shù)選擇器糾410的結(jié)構(gòu)類似。但是,第二搡作數(shù)選擇器#1 420與第一操作數(shù)選擇器#410的不同之處在于,提供標(biāo)記選擇字段#1 703 作為選擇器421的選擇信號(hào),并提供操作數(shù)字段#1 705作為當(dāng)標(biāo)記選擇字段 #1 703是"0"時(shí)所選擇的操作數(shù)。
以這種方式,根據(jù)本實(shí)施例,將從計(jì)算單元存A到存D 501、 511、 521和 531輸出的條件代碼作為條件代碼集合保存到條件代碼集合寄存器中。然后,標(biāo)記轉(zhuǎn)換部分340轉(zhuǎn)換條件代碼集合寄存器中所保存的條件代碼集合,并將 .其供應(yīng)至操作數(shù)選擇器400。從而,可以以高速進(jìn)行基于條件代碼由多個(gè)數(shù) 學(xué)運(yùn)算而進(jìn)行的操作數(shù)的供應(yīng)。
現(xiàn)在,結(jié)合具體例子描述本發(fā)明的數(shù)學(xué)運(yùn)算處理裝置的操作。
圖8A和8B圖示了說(shuō)明本實(shí)施例的數(shù)學(xué)運(yùn)算處理裝置的操作的程序的第 一例子。第一程序例用于同時(shí)判斷四個(gè)條件,以確定是否應(yīng)該分支處理。
圖8A圖示了以由高級(jí)語(yǔ)言表示的這種形式的處理對(duì)象的程序。圖8A所示的程序表明,如果數(shù)據(jù)寄存器r0的值與數(shù)據(jù)寄存器rl的值彼此一致、如果 數(shù)據(jù)寄存器r2的值高于數(shù)據(jù)寄存器r3的值、如果數(shù)據(jù)寄存器r4的值與數(shù)據(jù) 寄存器r5的值彼此不一致、以及如果數(shù)據(jù)寄存器r6的值等于或小于數(shù)據(jù)寄存 器r7的值,那么應(yīng)該將處理分支到函數(shù)funcl。
圖8B表示以由匯編語(yǔ)言表示的這種形式處理對(duì)象的程序,并同時(shí)執(zhí)行在 水平方向上并列的六個(gè)指令。由計(jì)算單元弁A501執(zhí)行指令[EQrO,rl];由計(jì)算 單元^B 511執(zhí)行指令[GTr2,r3];由計(jì)算單元存C 521執(zhí)行指令[EQ r4, r5];以 及由計(jì)算單元弁D 531執(zhí)行指令[GT r6, r7]。此外,由分支單元551執(zhí)行指令 [BRffuncl]。
在此,指令[EQrs,rt]是條件判斷指令。如果數(shù)據(jù)寄存器rs的值與數(shù)據(jù)寄 存器rt的值彼此一致(相等),那么輸出'T'作為條件代碼,而在任何其他 情況下,輸出"0"作為條件代碼。同時(shí),指令[GTrs,rt]是另一條件判斷指令, 并且如果數(shù)據(jù)寄存器rs的值高于數(shù)據(jù)寄存器rt的值,則輸出"1"作為條件 代碼,而在任何其他情況下,輸出"0"。此外,指令[BRf funcl]是用于如果 i-F—out
是'T'則分支到函數(shù)ftmcl的條件分支指令。rF—out
是標(biāo)記轉(zhuǎn)換 部分340的LSB的值,并且foncl是表示函數(shù)的頂部地址的標(biāo)簽。同時(shí),指 令[nop]是用于什么都不執(zhí)行的不操作指令。
圖9圖示了用于執(zhí)行圖8所示的程序的設(shè)置寄存器320的設(shè)置的例子。 在圖9的例子中,預(yù)先將"0"設(shè)置在寫(xiě)模式寄存器Reg一WRMODE321中, 同時(shí)將"llll" (二進(jìn)制數(shù))設(shè)置在屏蔽寄存器Reg—MASK[3:0] 322中。此外, 將"1100" (二進(jìn)制數(shù))設(shè)置在反轉(zhuǎn)寄存器Reg—XOR[3:0] 323中,并將"1111" (二進(jìn)制數(shù))設(shè)置在比較樣式寄存器Reg一MATCH[3:0] 324中。此外,將"00" (二進(jìn)制數(shù))置于功能寄存器Reg一FUNC[l:O] 325中??梢杂绍浖噶钸M(jìn)行 集合值的設(shè)置?;蛘撸梢詫⑦@些值插入指令格式中。
在本例子中,由于寫(xiě)模式寄存器Reg—WRMODE 321是"0"(指示直達(dá) 模式),所以將用于計(jì)算單元弁A到弁D 501、 511、 521和531的數(shù)學(xué)運(yùn)算的條 件代碼保存在條件代碼集合寄存器的各個(gè)寄存器rF[O到3]中。
然后,進(jìn)行條件代碼集合寄存器的位的值和屏蔽寄存器Reg—MASK[3:0] 322的相應(yīng)位之間的邏輯與運(yùn)算。在本例中,由于屏蔽寄存器Reg_MASK[3:0] 322是"1111",因而沒(méi)有將任何位被屏蔽。
然后,由邏輯異或單元343進(jìn)行邏輯與單元342的輸出位和反轉(zhuǎn)寄存器Reg一XOR[3:0] 323的相應(yīng)位之間的異或運(yùn)算。在本例子中,由于反轉(zhuǎn)寄存器 Reg—XOR[3:0] 323是"1100",因而反轉(zhuǎn)高階2位。
此外,由比較器344相互比較邏輯異或單元343的輸出與比較樣式寄存 器Reg—MATCH[3:0] 324的位樣式。在本例子中,比較樣式寄存器 Reg—MATCH[3:0] 324的位樣式是"1111"。因此,如果滿足條件"數(shù)據(jù)寄存 器r0的值與數(shù)據(jù)寄存器rl的值彼此一致、數(shù)據(jù)寄存器r2的值高于數(shù)據(jù)寄存 器L-3的值、數(shù)據(jù)寄存器r4的值與數(shù)據(jù)寄存器r5的值彼此不一致、以及數(shù)據(jù) 寄存器r6的值等于或小于數(shù)據(jù)寄存器i'7的值,,,那么信號(hào)rFjn[3:0]變?yōu)?"0001"。但是,如果不滿足條件,那么信號(hào)rF—m[3:0]變?yōu)?0000"。在本例 子中,由于功能寄存器Reg—FUNC[1:0] 325是"00",所以選擇器346選擇信 號(hào)rF—m[3:0]的值,并將其輸出為標(biāo)簽rF—out[3:0]。
在指令[BRf funcl]中,由于標(biāo)記選擇字段#0 702指示"0",并且操作數(shù) 字段#0 704指示"16",所以將標(biāo)簽rF—out[3:0]的值供應(yīng)至分支單元551。如 果標(biāo)簽rF—out[3:0]是"0001",則分支單元551將處理分支到函數(shù)funcl,而 如果標(biāo)簽i'F一out[3:0]是"0000",則不分支處理。
以這種方式,在本實(shí)施例中,在兩個(gè)機(jī)器周期中執(zhí)行圖8所示的程序。 要注意,盡管這兩個(gè)機(jī)器周期不包括用于設(shè)置寄存器320的設(shè)置的時(shí)間,但 是,由于在實(shí)際的程序中,在大多數(shù)情況下,在一次設(shè)置了設(shè)置寄存器320 之后,重復(fù)執(zhí)行主要的數(shù)學(xué)運(yùn)算,因此,在該實(shí)例中,可以忽略用于設(shè)置的 時(shí)間。
圖1OA和10B圖示了說(shuō)明本實(shí)施例的數(shù)學(xué)運(yùn)算處理裝置的操作的程序的 第二例子。在第二程序例中,同時(shí)設(shè)置了四個(gè)條件,并且確定了分支目標(biāo)。
圖10A圖示了以由高級(jí)語(yǔ)言表示的這種形式的處理對(duì)象的程序。圖10A 中所示的程序表明,如果數(shù)據(jù)寄存器rlO的值高于數(shù)據(jù)寄存器rll的值,那么 應(yīng)該將處理分支到函數(shù)funcl,而在任何其他情況下,如果數(shù)據(jù)寄存器rlO的 值高于數(shù)據(jù)寄存器rl2的值,那么將處理分支到函數(shù)fUnc2,而在任何其他情 況下,如果數(shù)據(jù)寄存器rl0的值高于數(shù)據(jù)寄存器r13的值,那么將處理分支到 函數(shù)func3,而在任何其他情況下,如果數(shù)據(jù)寄存器rlO的值高于數(shù)據(jù)寄存器 r14的值,那么將處理分支到函數(shù)fonc4。
圖1OB表示以由匯編語(yǔ)言表示的這種形式的處理對(duì)象的程序,并同時(shí)執(zhí)行在水平方向上并列的六個(gè)指令。由計(jì)算單元弁A501執(zhí)行指令[GTrlO,rll];
由計(jì)算單元弁B 511執(zhí)行指令[GTrlO,rl2];由計(jì)算單元弁C 521執(zhí)行指令[GT r10, rl3];以及由計(jì)算單元弁D 531執(zhí)行指令[GTrlO, r14]。此外,由分支單元551 執(zhí)行指令[JMPf]。
在此,指令[JMPf]是寄存器跳轉(zhuǎn)指令,用于使處理跳轉(zhuǎn)到位于由標(biāo)簽 rF一out[3:0]指定的數(shù)據(jù)寄存器中的地址。其他的指令與上文中參考圖8所述的 指令相同。
圖11圖示了用于執(zhí)行圖10的第二程序例的設(shè)置寄存器320的設(shè)置的例 子。在圖11所示的例子中,預(yù)先將"0"設(shè)置在寫(xiě)模式寄存器Reg一WRMODE 321中;將"1111" (二進(jìn)制數(shù))設(shè)置在屏蔽寄存器Reg—MASK[3:0] 322中; 將"0000" (二進(jìn)制數(shù))設(shè)置在反轉(zhuǎn)寄存器Reg—XOR[3:0] 323中,并將"11" (二進(jìn)制數(shù))設(shè)置在功能寄存器Reg—FUNC[S:0] 3"中。
在本例子中,由于寫(xiě)模式寄存器Reg—WRMODE 321是"0"(指示直達(dá) 模式),因而將用于計(jì)算單元弁A到弁D501、 511、 521和531的數(shù)學(xué)運(yùn)算的條 件代碼保存在條件代碼集合寄存器的寄存器rF[O到3]中。
然后,由邏輯與單元342進(jìn)行條件代碼集合寄存器的標(biāo)記的值和屏蔽寄 存器Reg—MASK[3:0] 322的相應(yīng)位之間的邏輯與運(yùn)算。但是,在本例子中, 由于屏蔽寄存器Reg—MASK[3:0] 322是"1111",因而不將任何位屏蔽。
然后,由邏輯異或單元343進(jìn)行邏輯與單元342的輸出位和反轉(zhuǎn)寄存器 Reg—XOR[3:0] 323的相應(yīng)位之間的異或運(yùn)算。在本例子中,由于反轉(zhuǎn)寄存器 Reg—XOR[3:0] 323是"0000",因而任何位都反轉(zhuǎn)。
在本例子中,由于功能寄存器Reg—FUNC[3:0] 325是"11",因而由選擇 器346選擇標(biāo)記轉(zhuǎn)換表345的輸出rF一tbl[3:0]的值,并將其輸出作為標(biāo)簽 rF—out[3:0]。
圖12圖示了用于執(zhí)行圖10的第二程序例的標(biāo)記轉(zhuǎn)換表345的設(shè)置的例 子。參考圖12,在所示例子中,預(yù)先將值"3"(十進(jìn)制數(shù))置于標(biāo)記轉(zhuǎn)換表 345的地址"0001"中;將值"2"(十進(jìn)制數(shù))置于地址"0010"和"0011" 中;將值'T,(十進(jìn)制數(shù))放置在地址"0100"到"0111"中;并將值"0" (十進(jìn)制數(shù))置于地址"1000"到"1111"中。所放置的值表明了其中放置 了跳轉(zhuǎn)目標(biāo)的地址的數(shù)據(jù)寄存器的數(shù)量。
與之一起,將函數(shù)foncl的頂部地址設(shè)置在數(shù)據(jù)寄存器rO中;將函數(shù)ftmc2 的頂部地址設(shè)置在數(shù)據(jù)寄存器rl中;將函數(shù)fonc3的頂部地址設(shè)置在數(shù)據(jù)寄存器r2中;并將函數(shù)funcc4的頂部地址設(shè)置在數(shù)據(jù)寄存器r3中。
使用邏輯異或單元343的輸出rF_xor[O到3]作為讀取地址讀出標(biāo)記轉(zhuǎn)換 表345,并將信號(hào)rF—tbl[3:0]輸出到選擇器346。從而,如果數(shù)據(jù)寄存器r10 的值高于數(shù)據(jù)寄存器rll的值,則信號(hào)rF—xor[O]變?yōu)?1",并輸出值"0"(十 進(jìn)制數(shù))作為信號(hào)rF_tbl[3:0]。在任何其他情況下,如果數(shù)據(jù)寄存器r10的值 高于數(shù)據(jù)寄存器r12的值,則信號(hào)rF_xor[l]變?yōu)?1",并輸出值'1'(十進(jìn) 制數(shù))作為信號(hào)rF—tbi[3:0]。在任何其他情況下,如果數(shù)據(jù)寄存器r10的值高 于數(shù)據(jù)寄存器rl3的值,則信號(hào)rf_xor[2]變?yōu)?T,,并輸出值"2"(十進(jìn)制 數(shù))作為信號(hào)rF一tbl[3:0]。在任何其他情況下,如果數(shù)據(jù)寄存器r10的值高于 數(shù)據(jù)寄存器rl4的值,則信號(hào)rF—xor[3]變?yōu)?T',并輸出值"3"(十進(jìn)制數(shù)) 作為信號(hào)rF—tbl[3:0]。
在指令[JMPf]中,由于標(biāo)記選擇字段#0 702指示"1",因而將標(biāo)簽 rF—out[3:0]用作選擇器422(圖7)的選擇信號(hào),并將放置在由標(biāo)簽rF—out[3:0] 指示的數(shù)據(jù)寄存器中的地址作為操作數(shù)。從而,如果滿足條件之一,則通過(guò) 分支單元551將預(yù)先放置在數(shù)據(jù)寄存器中的地址之一供應(yīng)至指令抽取/解碼器 200,并執(zhí)行跳轉(zhuǎn)到相應(yīng)的函數(shù)。
以此方式,在本實(shí)施例中,在兩個(gè)機(jī)器周期中執(zhí)行圖10中的第二程序例。 圖13A和13B圖示了說(shuō)明本實(shí)施例的數(shù)學(xué)運(yùn)算處理裝置的操作的程序的 第三例子。第三程序例用于逐一判斷三個(gè)條件,以便選擇要被替換到寄存器 中的值。
圖13A圖示了以由高級(jí)語(yǔ)言表示的這種形式的處理對(duì)象的程序。圖13A 所示的程序表明,如果數(shù)據(jù)寄存器rlO的值高于數(shù)據(jù)寄存器dl的值,則將數(shù) 據(jù)寄存器r0的值替換到數(shù)據(jù)寄存器r5中,而在任何其他情況下,如果數(shù)據(jù)寄 存器i.lO的值高于數(shù)據(jù)寄存器r12的值,則將數(shù)據(jù)寄存器rl的值替換到數(shù)據(jù) 寄存器r5中,而在任何其他情況下,如果數(shù)據(jù)寄存器rlO的值高于數(shù)據(jù)寄存 器r13的值,則將數(shù)據(jù)寄存器r2的值替換到數(shù)據(jù)寄存器r5中。
圖13B表示了以由匯編語(yǔ)言表示的這種形式的處理對(duì)象的程序,并且同 時(shí)執(zhí)行在水平方向上并列的六個(gè)指令。在本例子中,實(shí)質(zhì)的指令都在計(jì)算單 元弁A 501上執(zhí)行,而其他單元執(zhí)行nop指令。
在此,指令[MVfr5]是轉(zhuǎn)移指令,用于將由標(biāo)簽rF—out[3:0]指示的數(shù)據(jù)寄 存器的值轉(zhuǎn)移(移動(dòng))到數(shù)據(jù)寄存器r5。其他的指令與上文中參考圖8所述的指令相同。
圖14示出了用于執(zhí)行圖13中的第三程序例的設(shè)置寄存器320的設(shè)置的 例子。在本例子中,預(yù)先將'T,設(shè)置在寫(xiě)模式寄存器Reg—WRMODE321中; 將"0111" (二進(jìn)制數(shù))設(shè)置在屏蔽寄存器Reg—MASK[3:0] 322中;將"0000"(二進(jìn)制數(shù))設(shè)置在反轉(zhuǎn)寄存器Reg_XOR[3:0] 323中;并將"11" ( 二進(jìn)制 數(shù))設(shè)置在功能寄存器Reg—FUNC[1:0] 325中。
參考圖14,在所示的例子中,由于寫(xiě)模式寄存器Reg—WRMODE321是"1"(指示歷史模式),因而將計(jì)算單元弁A501的數(shù)學(xué)運(yùn)算的條件代碼保存到 條件代碼集合寄存器的寄存器rFJ0]中,之后,將代碼相繼移位到寄存器 rF[l]、 rF[2]和rF[3]。從而,在本例子中,將"數(shù)據(jù)寄存器r10的值是否高于 數(shù)據(jù)寄存器rll的值"的條件代碼保存在寄存器rF[2]中;將"數(shù)據(jù)寄存器r10 的值是否高于數(shù)據(jù)寄存器r12的值"的條件代碼保存在寄存器rF[l]中;并將"數(shù)據(jù)寄存器r10的值是否高于數(shù)據(jù)寄存器r12的值"的條件代碼保存在寄存 器rF[O]中。
然后,由邏輯與單元342進(jìn)行條件代碼集合寄存器的標(biāo)記的值和屏蔽寄 存器Reg一MASK[3:0] 322的相應(yīng)位之間的邏輯與運(yùn)算。在本例子中,由于屏 蔽寄存器Reg—MASK[3:0] 322是"0111",因而僅將寄存器rF[3]屏蔽為"0"。
其后,由邏輯異或單元343進(jìn)行邏輯與單元342的輸出位和反轉(zhuǎn)寄存器 Reg—XOR[3:0] 323的相應(yīng)位之間的異或運(yùn)算。在本例子中,由于反轉(zhuǎn)寄存器 Reg_XOR[3:0] 323是"0000",因而不反轉(zhuǎn)任何一個(gè)位。
在本例子中,由于功能寄存器Reg—FUNC[l:0] 325是"11",因而由選擇 器346選擇標(biāo)記轉(zhuǎn)換表345的輸出rF一tbl[3:0]的值,并將其輸出作為標(biāo)簽 i-F—out[3:0]。
圖15圖示了用于執(zhí)行圖13中的第三程序例的標(biāo)記轉(zhuǎn)換表345的設(shè)置的 例子。在本例子中,預(yù)先幾值"2"(十進(jìn)制數(shù))放置在標(biāo)記轉(zhuǎn)換表345的地 址"0001"中;將值T (十進(jìn)制數(shù))放置在地址"0010"和"0011"中; 并將值"0"(十進(jìn)制數(shù))放置在地址"0100"到"0111"中。這些值表明其 中存儲(chǔ)了跳轉(zhuǎn)目標(biāo)的地址的數(shù)據(jù)寄存器的數(shù)量。
使用邏輯異或單元343的輸出rF—xor[O到3]作為讀取地址讀出標(biāo)記轉(zhuǎn)換 表345,并將信號(hào)rF—tbl[3:0]輸出到選擇器346。從而,如果數(shù)據(jù)寄存器r10 的值高于數(shù)據(jù)寄存器rll的值,則輸出i-F—xor[2]變?yōu)?1",并輸出值"0"(十進(jìn)制數(shù))作為信號(hào)rF一tbl[3:0]。在任何其他情況下,如果數(shù)據(jù)寄存器r10的值 高于數(shù)據(jù)寄存器r12的值,則輸出rF—xor[l]變?yōu)?T',并輸出值'T,(十進(jìn) 制數(shù))作為信號(hào)rF一tbl[3:0]。在任何其他情況下,如果數(shù)據(jù)寄存器r10的值高 于數(shù)據(jù)寄存器rl3的值,則輸出rF—xor[O]變?yōu)?T',并輸出值"2"(十進(jìn)制 數(shù))作為信號(hào)rF—tbl[3:0]。
在指令[MVf r5]中,由于標(biāo)記選擇字段糾702指示"1",因而將標(biāo)簽 rF—out[3:0]用作選擇器422的選棒信號(hào),并將由標(biāo)簽rF—out[3:0]指示的數(shù)據(jù)寄 存器的值作為操作數(shù)。從而,當(dāng)滿足任何一個(gè)條件時(shí),將由標(biāo)簽rF一out[3:0] 指示的數(shù)據(jù)寄存器的值轉(zhuǎn)移到數(shù)據(jù)寄存器r5。
以這種方式,在本例子中,,在四個(gè)機(jī)器周期中執(zhí)行圖13的第三程序例。
圖16A和16B圖示了說(shuō)明本實(shí)施例的數(shù)學(xué)運(yùn)算處理裝置的操作的程序的 第四例子。第四程序例用于同時(shí)判斷三個(gè)條件,并根據(jù)判斷結(jié)果執(zhí)行存儲(chǔ)器 加載。
圖16A圖示了以由高級(jí)語(yǔ)言表示的這種形式的處理對(duì)象的程序。圖16A 所示的程序表明,如果數(shù)據(jù)寄存器rlO的值高于數(shù)據(jù)寄存器rll的值,則將來(lái) 自存儲(chǔ)器的"基礎(chǔ)地址+8"地址的數(shù)據(jù)加載到數(shù)據(jù)寄存器r5中,而在任何其 他情況下,如果數(shù)據(jù)寄存器rl0的值高于數(shù)據(jù)寄存器rl2的值,則將來(lái)自存儲(chǔ) 器的"基礎(chǔ)地址+4"地址的數(shù)據(jù)加載到數(shù)據(jù)寄存器r5中,而在任何其他情況 下,如果數(shù)據(jù)寄存器rl0的值高于數(shù)據(jù)寄存器r13的值,則將來(lái)自存儲(chǔ)器的"基 礎(chǔ)地址+0"地址的數(shù)據(jù)加載到數(shù)據(jù)寄存器r5中。
圖16表示以由匯編語(yǔ)言表示的這種形式的處理對(duì)象的程序,并同時(shí)執(zhí)行 在水平方向上并列的六個(gè)指令。由計(jì)算單元^A501執(zhí)行指令[GTrlO,rll];由 計(jì)算單元弁B 511執(zhí)行指令[GTrlO, rl2];由計(jì)算單元弁C 521執(zhí)行指令[GTrlO, rl3];并由加載/存儲(chǔ)單元541執(zhí)行指令[LWf r5, r0]。
在此,指令[LWf r5, rO]是存儲(chǔ)器加載指令,用于基于地址從存儲(chǔ)器加載 數(shù)據(jù)并將該數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)寄存器r5中,其中該地址是通過(guò)將由rF_out[3:0] 指定的數(shù)據(jù)寄存器中所存儲(chǔ)的值作為地址偏移量添加到數(shù)據(jù)寄存器rO中所存 儲(chǔ)的地址上而得到的。其他的指令是諸如上文中參考圖8所述的那些指令。
圖17圖示了用于執(zhí)行圖16A和16B中的第四程序例的設(shè)置寄存器320 的設(shè)置的例子。在本例子中,預(yù)先將"0"設(shè)置在寫(xiě)模式寄存器Reg一WRMODE 321中;將"0111" (二進(jìn)制數(shù))設(shè)置在屏蔽寄存器Reg—MASK[3:0] 322中,
將"0000" (二進(jìn)制數(shù))設(shè)置在反轉(zhuǎn)寄存器Reg—XOR[3:0] 323中,并將"11" (二進(jìn)制數(shù))設(shè)置在功能寄存器Reg_FUNC[l:0] 325中。
在本例子中,由于寫(xiě)模式寄存器Reg—WRMODE 321是"0"(指示直達(dá) 模式),因而將計(jì)算單元弁A到弁C501、 511和521的值保存到條件代碼集合寄 存器的寄存器rF[O到2]中。
然后,由邏輯與單元342進(jìn)行條件代碼集合寄存器的標(biāo)記的值和屏蔽寄 存器Reg—MASK[3:0] 322的相應(yīng)位之間的邏輯與運(yùn)算。在本例子中,由于屏 蔽寄存器Reg—MASK[3:0] 322是"0111",因而僅將寄存器rF[3]屏蔽為"0"。
然后,由邏輯異或單元343進(jìn)行邏輯與單元342的輸出位和反轉(zhuǎn)寄存器 Reg—XOR[3:0] 323的相應(yīng)位之間的異或運(yùn)算。但是,在本例子中,由于反轉(zhuǎn) 寄存器Reg_XOR[3:0] 323是"0000",因而不反轉(zhuǎn)任何一個(gè)位。
在本例子中,由于功能寄存器Reg—FUNC[1:0] 325是"11",因而由選擇 器346選擇標(biāo)記轉(zhuǎn)換表345的輸出rFjbl[3:0]的值,并將其輸出作為標(biāo)簽 rF—out[3:0]。
圖18圖示了用于執(zhí)行圖16A和16B中的第四程序例的標(biāo)記轉(zhuǎn)換表345 的設(shè)置的例子。在該例子中,預(yù)先將值"0"(十進(jìn)制數(shù))放置在標(biāo)記轉(zhuǎn)換表 345的地址"0001"中;將值"4"(十進(jìn)制數(shù))放置在地址"0010"和"0011" 中;并將值"8"(十進(jìn)制數(shù))放置在地址"0100"到"0111"中。它們表明 地址偏移量的值。
使用邏輯異或單元343的輸出rF_xor
作為讀取地址讀出標(biāo)記轉(zhuǎn)換 表345,并將信號(hào)rFjbl[3:0]輸出到選擇器346。從而,如果數(shù)據(jù)寄存器r10 的值高于數(shù)據(jù)寄存器rll的值,則信號(hào)rF-Xor網(wǎng)變?yōu)?T,,并輸出值"8"(十 進(jìn)制數(shù))作為信號(hào)rF—tbl[3:0]。在任何其他情況下,如果數(shù)據(jù)寄存器r10的值 高于數(shù)據(jù)寄存器rl2的值,則rF—xor[l]變?yōu)?T',并輸出值"4"(十進(jìn)制數(shù)) 作為信號(hào)rF—tbl[3:0]。在任何其他情況下,如果數(shù)據(jù)寄存器r10的值高于數(shù)據(jù) 寄存器rl3的值,則rF—xor[2]變?yōu)?1",并輸出值"0"(十進(jìn)制數(shù))作為信 號(hào)號(hào)rF_tbl[3:0]。
在指令[LWf r5, r0]中,由于標(biāo)記選擇字段#0 702指示'T,因而將標(biāo)簽 rF—out[3:0]用作選擇器422的選擇信號(hào),并將由標(biāo)簽rF—out[3:0]指示的數(shù)據(jù)寄 存器的值作為操作數(shù)。從而,如果滿足任何一個(gè)條件,則將由標(biāo)簽rF—out[3:0]
指示的數(shù)據(jù)寄存器的值作為偏移量地址而提供給加載/存儲(chǔ)單元541 。
同時(shí),在指令"LWfr5,r0"中,由于標(biāo)記選擇字段#1 703指示"0",并 且操作數(shù)字段#1 705指示"0",因而將數(shù)據(jù)寄存器r0的值作為地址提供給加 載/存儲(chǔ)單元541。
從而,加載/存儲(chǔ)單元541將偏移量地址加上基礎(chǔ)地址,并基于得到的地 址從存儲(chǔ)器加載數(shù)據(jù)。然后,加載/存儲(chǔ)單元541將所加載的數(shù)據(jù)存儲(chǔ)到數(shù)據(jù) 寄存器r5中。
以這種方式,在本實(shí)施例中,在兩個(gè)機(jī)器周期中執(zhí)行圖16A和16B的第 四程序例。
具體地,根據(jù)本例子,將計(jì)算單元弁A到弁D501、 511、 521和531的條件 代碼適當(dāng)組合為條件代碼集合,并通過(guò)標(biāo)記轉(zhuǎn)換表部分340轉(zhuǎn)換,提供所得 到的數(shù)據(jù),作為不同指令的操作數(shù)。從而,基于多個(gè)數(shù)學(xué)運(yùn)算的條件代碼進(jìn) 行的操作數(shù)的供應(yīng)可以高速地執(zhí)行。
雖然已經(jīng)使用特定術(shù)語(yǔ)描述了本發(fā)明的優(yōu)選實(shí)施例,但是這種描述僅是 用于例示目的,應(yīng)該理解為,在不脫離以下權(quán)利要求的主旨或范圍內(nèi),可以 做出改變和變更。
具體地,根據(jù)本發(fā)明的實(shí)施例,計(jì)算元件對(duì)應(yīng)于(例如)計(jì)算單元弁A到 #D 501、 511、 521和531。條件代碼集合寄存器對(duì)應(yīng)于(例如)寄存器文件 310的條件代碼集合寄存器rF
。此外,條件代碼轉(zhuǎn)換部分對(duì)應(yīng)于(例 如)標(biāo)記轉(zhuǎn)換部分340。此外,操作數(shù)供應(yīng)部分對(duì)應(yīng)于(例如)操作數(shù)選擇 器400。
根據(jù)本發(fā)明的實(shí)施例,屏蔽操作對(duì)應(yīng)于(例如)邏輯與單元342的邏輯 與運(yùn)算。
根據(jù)本發(fā)明的實(shí)施例,反轉(zhuǎn)處理對(duì)應(yīng)于(例如)邏輯異或單元343的異 或運(yùn)算。
根據(jù)本發(fā)明的實(shí)施例,判斷基于條件代碼集合的值是否與預(yù)定值一致的 比較對(duì)應(yīng)于(例如)比較器344進(jìn)行的比較。
根據(jù)本發(fā)明的實(shí)施例,轉(zhuǎn)換表對(duì)應(yīng)于(例如)轉(zhuǎn)換表345。 根據(jù)本發(fā)明的實(shí)施例,數(shù)據(jù)寄存器對(duì)應(yīng)于(例如)寄存器文件310中的
數(shù)據(jù)寄存器。
根據(jù)本發(fā)明的實(shí)施例,計(jì)算元件對(duì)應(yīng)于(例如)計(jì)算單元弁A到弁D501、 511、 521和531。條件代碼集合寄存器對(duì)應(yīng)于(例如)寄存器文件310的條件代碼集合寄存器rF[O到3]。此外,條件代碼寫(xiě)入部分對(duì)應(yīng)于(例如)標(biāo)記寫(xiě)入部分330。此外,條件代碼轉(zhuǎn)換部分對(duì)應(yīng)于(例如)標(biāo)記轉(zhuǎn)換部分340。 此外,操作數(shù)供應(yīng)部分對(duì)應(yīng)于(例如)操作數(shù)選擇器400。
根據(jù)本發(fā)明的實(shí)施例,計(jì)算元件對(duì)應(yīng)于(例如)計(jì)算單元#A到#D501、 511、 521和531。屏蔽寄存器對(duì)應(yīng)于(例如)屏蔽寄存器322。屏蔽計(jì)算元件對(duì)應(yīng)于(例如)邏輯與單元342。反轉(zhuǎn)寄存器對(duì)應(yīng)于(例如)反轉(zhuǎn)寄存器 323。反轉(zhuǎn)處理器對(duì)應(yīng)于(例如)邏輯異或單元343。比較樣式寄存器對(duì)應(yīng)于 (例如)比較樣式寄存器324。比較器對(duì)應(yīng)于(例如)比較器344。轉(zhuǎn)換表對(duì)應(yīng)于(例如)標(biāo)記轉(zhuǎn)換表345。選擇器對(duì)應(yīng)于(例如)選擇器346。此外,操作數(shù)供應(yīng)部分對(duì)應(yīng)于.(例如)操作數(shù)選擇器400。
根據(jù)本發(fā)明的實(shí)施例,指令存儲(chǔ)器對(duì)應(yīng)于(例如)指令存儲(chǔ)器100。指令抽取/解碼器對(duì)應(yīng)于(例如)指令抽取/解碼器200。計(jì)算元件對(duì)應(yīng)于(例如)計(jì)算單元#A到#D501、 511、 521和531。分支處理部分對(duì)應(yīng)于(例如)分支單元551。數(shù)據(jù)存儲(chǔ)器對(duì)應(yīng)于(例如)數(shù)據(jù)存儲(chǔ)器600。加載/存儲(chǔ)處理部分對(duì)應(yīng)于(例如)加載/存儲(chǔ)單元541。條件代碼集合寄存器對(duì)應(yīng)于(例如)寄存器文件310的條件代碼集合寄存器rF
。此外,條件代碼轉(zhuǎn)換部分對(duì)應(yīng)于(例如)標(biāo)記轉(zhuǎn)換部分340。此外,操作數(shù)供應(yīng)部分對(duì)應(yīng)于(例如)操作數(shù)選擇器400。
應(yīng)注意,可以將以上在本發(fā)明的實(shí)施例的描述中所述的處理過(guò)程理解為具有該過(guò)程的方法、或用于使得計(jì)算機(jī)執(zhí)行該過(guò)程的程序、或用于存儲(chǔ)該程序的記錄介質(zhì)。
相關(guān)申請(qǐng)的交叉引用
本發(fā)明包括與2006年12月13日在日本專利局提交的日本專利申請(qǐng)JP 2006-335583相關(guān)的主題,通過(guò)引用將其全部?jī)?nèi)容合并于此。
權(quán)利要求
1.一種數(shù)學(xué)運(yùn)算處理裝置,包括多個(gè)計(jì)算元件,被配置為彼此不同地進(jìn)行不同的數(shù)學(xué)運(yùn)算,并產(chǎn)生所述數(shù)學(xué)運(yùn)算的數(shù)學(xué)運(yùn)算結(jié)果和條件代碼;條件代碼集合寄存器,被配置為保存由所述計(jì)算元件同時(shí)產(chǎn)生的條件代碼作為條件代碼集合;條件代碼轉(zhuǎn)換部分,被配置為對(duì)所述條件代碼集合進(jìn)行預(yù)定轉(zhuǎn)換,并輸出轉(zhuǎn)換結(jié)果,作為轉(zhuǎn)換條件代碼集合;以及操作數(shù)供應(yīng)部分,被配置為基于所述轉(zhuǎn)換條件代碼集合供應(yīng)用于所述計(jì)算元件中的數(shù)學(xué)運(yùn)算的操作數(shù)。
2. 如權(quán)利要求1所述的數(shù)學(xué)運(yùn)算處理裝置,其中,所述條件代碼轉(zhuǎn)換部 分對(duì)基于所述條件代碼集合的值的至少 一部分進(jìn)行屏蔽運(yùn)算,作為預(yù)定轉(zhuǎn)換。
3. 如權(quán)利要求1所述的數(shù)學(xué)運(yùn)算處理裝置,其中,所述條件代碼轉(zhuǎn)換部 分對(duì)基于所述條件代碼集合的值的至少一部分進(jìn)行反轉(zhuǎn)處理,作為預(yù)定轉(zhuǎn)換。
4. 如權(quán)利要求1所述的數(shù)學(xué)運(yùn)算處理裝置,其中,所述條件代碼轉(zhuǎn)換部 分進(jìn)行比較以判斷基于所述條件代碼集合的值是否與預(yù)定值一致,作為預(yù)定 轉(zhuǎn)換,并輸出轉(zhuǎn)換結(jié)果。
5. 如權(quán)利要求1所述的數(shù)學(xué)運(yùn)算處理裝置,還包括轉(zhuǎn)換表,該轉(zhuǎn)換表按 照與基于條件代碼集合的各個(gè)值的對(duì)應(yīng)關(guān)系來(lái)保存轉(zhuǎn)換條件代碼集合,所述 條件代碼轉(zhuǎn)換部分從所述轉(zhuǎn)換表中提取所述轉(zhuǎn)換條件代碼集合中與基于條件 代碼集合的值相對(duì)應(yīng)的那 一個(gè)。
6. 如權(quán)利要求1所述的數(shù)學(xué)運(yùn)算處理裝置,其中,所述操作數(shù)供應(yīng)部分 供應(yīng)所述轉(zhuǎn)換條件代碼集合,作為用于所述數(shù)學(xué)運(yùn)算的操作數(shù)。
7. 如權(quán)利要求1所述的數(shù)學(xué)運(yùn)算處理裝置,還包括數(shù)據(jù)寄存器,該數(shù)據(jù) 寄存器包括多個(gè)字,所述操作數(shù)供應(yīng)部分根據(jù)所述轉(zhuǎn)換條件代碼集合供應(yīng)從 所述數(shù)據(jù)寄存器中讀出的字,作為用于所述數(shù)學(xué)運(yùn)算的操作數(shù)。
8. —種數(shù)學(xué)運(yùn)算處理裝置,包括多個(gè)計(jì)算元件,被配置為彼此不同地進(jìn)行不同的數(shù)學(xué)運(yùn)算,并產(chǎn)生所述 數(shù)學(xué)運(yùn)算的數(shù)學(xué)運(yùn)算結(jié)果和條件代碼;條件代碼集合寄存器,被配置為保存由所述計(jì)算元件產(chǎn)生的條件代碼, 作為條件代碼集合;條件代碼寫(xiě)入部分,被配置為使得所述條件代碼集合寄存器保存在所述 條件代碼集合寄存器中所保存的條件代碼集合的 一部分和由所述計(jì)算元件同 時(shí)產(chǎn)生的條件代碼的 一部分,作為新的條件代碼集合;條件代碼轉(zhuǎn)換部分,被配置為對(duì)所述條件代碼集合進(jìn)行預(yù)定轉(zhuǎn)換,并輸 出轉(zhuǎn)換結(jié)果作為轉(zhuǎn)換條件代碼集合;以及操作數(shù)供應(yīng)部分,被配置為基于所述轉(zhuǎn)換條件代碼集合供應(yīng)用于所述計(jì) 算元件中的數(shù)學(xué)運(yùn)算的搡作數(shù)。
9. 一種數(shù)學(xué)運(yùn)算處理裝置,包括多個(gè)計(jì)算元件,被配置為彼此不同地進(jìn)行不同的數(shù)學(xué)運(yùn)算,并產(chǎn)生所述 數(shù)學(xué)運(yùn)算的數(shù)學(xué)運(yùn)算結(jié)果和條件代碼;屏蔽寄存器,被配置為保存代表了是否應(yīng)該對(duì)每個(gè)所述條件代碼進(jìn)行屏 蔽數(shù)學(xué)運(yùn)算的屏蔽位;屏蔽計(jì)算元件,被配置為根據(jù)所迷屏蔽寄存器對(duì)每個(gè)所述條件代碼進(jìn)行 屏蔽計(jì)算運(yùn)算;反轉(zhuǎn)寄存器,被配置為保存代表了是否應(yīng)該對(duì)由所述屏蔽計(jì)算元件處理 過(guò)的每個(gè)所述條件代碼進(jìn)行反轉(zhuǎn)處理的反轉(zhuǎn)位;反轉(zhuǎn)處理器,被配置為根據(jù)所述反轉(zhuǎn)寄存器對(duì)由所述屏蔽計(jì)算元件處理 過(guò)的每個(gè)條件代碼進(jìn)行反轉(zhuǎn)處理;比較樣式寄存器,被配置為保存將用作由所述反轉(zhuǎn)處理器處理過(guò)的每個(gè) 條件代碼的比較對(duì)象的樣式;比較器,被配置為比較由所述反轉(zhuǎn)處理器處理過(guò)的條件代碼和在所述比 較樣式寄存器中所保存的樣式;轉(zhuǎn)換表,被配置為保存與由所述反轉(zhuǎn)處理器處理過(guò)的條件代碼的組合對(duì) 應(yīng)的轉(zhuǎn)換條件代碼集合;選擇器,被配置為響應(yīng)于所述比較器的比較結(jié)果、由所述反轉(zhuǎn)處理器處 理過(guò)的條件代碼、或由所述反轉(zhuǎn)處理器處理過(guò)的條件代碼的組合,而選擇從 所述轉(zhuǎn)換表中讀出的轉(zhuǎn)換條件代碼集合中的一個(gè);以及操作數(shù)供應(yīng)部分,被配置為基于所述選擇器的輸出來(lái)供應(yīng)用于所述計(jì)算 元件中的數(shù)學(xué)運(yùn)算的操作數(shù)。指令存儲(chǔ)器,被配置為保存包括了多個(gè)指令的程序;指令抽取/解碼器,被配置為從所述指令存儲(chǔ)器中提取指令,并解碼該指令;多個(gè)計(jì)算元件,被配置為基于解碼結(jié)果彼此不同地進(jìn)行不同的數(shù)學(xué)運(yùn)算,并產(chǎn)生所述數(shù)學(xué)運(yùn)算的數(shù)學(xué)運(yùn)算結(jié)果和條件代碼;分支處理部分,被配置為基于解碼結(jié)果確定要由所述指令抽取/解碼器提 取的指令;數(shù)據(jù)存儲(chǔ)器;加載/存儲(chǔ)處理部分,被配置為訪問(wèn)所述數(shù)據(jù)存儲(chǔ)器,以從所述數(shù)據(jù)存儲(chǔ) 器加載必要的數(shù)據(jù),或?qū)⒈匾臄?shù)據(jù)存儲(chǔ)到所述數(shù)據(jù)存儲(chǔ)器中。條件代碼集合寄存器,被配置為保存由所述計(jì)算元件同時(shí)產(chǎn)生的條件代 碼,作為條件代碼集合;條件代碼轉(zhuǎn)換部分,被配置為對(duì)所述條件代碼集合進(jìn)行預(yù)定轉(zhuǎn)換,并輸 出轉(zhuǎn)換結(jié)果,作為轉(zhuǎn)換條件代碼集合;以及吣 操作數(shù)供應(yīng)部分,被配置為基于所述轉(zhuǎn)換條件代碼集合來(lái)供應(yīng)用于所述 計(jì)算元件中的數(shù)學(xué)運(yùn)算、由所述分支處理部分進(jìn)行的確定、或由所述加載/存 儲(chǔ)處理部分進(jìn)行的訪問(wèn)的操作數(shù)。
全文摘要
公開(kāi)了一種數(shù)學(xué)運(yùn)算處理裝置,通過(guò)其基于多個(gè)數(shù)學(xué)運(yùn)算的條件代碼進(jìn)行的操作數(shù)的供應(yīng)可以高速地執(zhí)行。該數(shù)學(xué)運(yùn)算處理裝置包括多個(gè)計(jì)算單元,被配置為彼此不同地進(jìn)行不同的數(shù)學(xué)運(yùn)算,并產(chǎn)生這些數(shù)學(xué)運(yùn)算的數(shù)學(xué)運(yùn)算結(jié)果和條件代碼。條件代碼集合寄存器由計(jì)算單元同時(shí)產(chǎn)生的條件代碼作為條件代碼集合。條件代碼轉(zhuǎn)換部分對(duì)條件代碼集合進(jìn)行預(yù)定轉(zhuǎn)換,并輸出轉(zhuǎn)換結(jié)果作為轉(zhuǎn)換條件代碼集合。操作數(shù)供應(yīng)部分基于轉(zhuǎn)換條件代碼集合供應(yīng)用于計(jì)算單元中的數(shù)學(xué)運(yùn)算的操作數(shù)。
文檔編號(hào)G06F9/38GK101201736SQ200710199439
公開(kāi)日2008年6月18日 申請(qǐng)日期2007年12月13日 優(yōu)先權(quán)日2006年12月13日
發(fā)明者三瓶賢一, 今孝安, 佐藤高弘, 森永英一郎, 飯塚恭弘 申請(qǐng)人:索尼株式會(huì)社