專利名稱:帶條件矢量運(yùn)算方法和帶條件矢量運(yùn)算裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種帶條件矢量運(yùn)算方法和帶條件矢量運(yùn)算裝置,特別是,涉及謀求準(zhǔn)備在稱作微處理器、數(shù)字信號(hào)處理器(以下稱為DSP)等處理器或數(shù)據(jù)處理裝置中搭載指令系統(tǒng)的,運(yùn)算矢量指令、帶條件運(yùn)算指令的運(yùn)算方法,以及使用該運(yùn)算方法進(jìn)行運(yùn)算的運(yùn)算裝置的改進(jìn)。
圖4表示有關(guān)使用具備所謂微處理器、DSP的通用指令系統(tǒng)的數(shù)據(jù)處理裝置,或者搭載有這種數(shù)據(jù)處理裝置,稱作LSI系統(tǒng)的半導(dǎo)體集成電路裝置的運(yùn)算對(duì)象的數(shù)據(jù),例如根據(jù)運(yùn)算對(duì)象的數(shù)據(jù)為“0”之類,或條件是否成立,對(duì)運(yùn)算對(duì)象的數(shù)據(jù)要進(jìn)行不同的處理時(shí)的流程圖。
該圖4中,首先在步驟S401取得運(yùn)算對(duì)象的數(shù)據(jù)402。以后在步驟S403中,為了確定在前面的步驟S401中取得的數(shù)據(jù)402是否為“0”,就進(jìn)行“0”與數(shù)據(jù)402的比較處理。
接著在步驟S404,接收前面步驟S403的結(jié)果,當(dāng)該比較結(jié)果與“0”不一致(No)時(shí),轉(zhuǎn)移到步驟S406進(jìn)行處理B,而當(dāng)步驟S404的比較結(jié)果與“0”一致(Yes)時(shí),就在步驟S405對(duì)運(yùn)算對(duì)象的數(shù)據(jù)S402進(jìn)行處理A后,轉(zhuǎn)移到步驟S406。
在這里,所謂處理B,就是使用運(yùn)算對(duì)象的數(shù)據(jù),或?qū)\(yùn)算對(duì)象的數(shù)據(jù)施行處理A的運(yùn)算后的數(shù)據(jù)的處理。
這樣,在圖4的流程圖中,根據(jù)步驟S404的執(zhí)行結(jié)果,以下的處理順序,即數(shù)據(jù)處理流變成不同了。
盡管,一般地稱作微處理器、DSP等的處理器具備作為通用指令系統(tǒng)有指令之一為條件分支指令。所謂條件分支指令,就是在要執(zhí)行指令中,生成并保持根據(jù)以前用以表示運(yùn)算結(jié)果性質(zhì)信息稱作狀態(tài)碼的碼,該狀態(tài)碼如與條件分支指令的指定條件符合,則作為條件成立而進(jìn)行分支的指令,如不符合則作為條件不成立而不進(jìn)行分支的這種指令。因此,對(duì)象圖4的流程圖中步驟S404的這種執(zhí)行所謂條件判斷后的處理流的分支處理來(lái)說(shuō),一般是使用條件分支指令。
不過(guò),進(jìn)行如圖4所示的這種處理時(shí),成為必需的條件分支指令盡管對(duì)數(shù)據(jù)處理沒(méi)有直接給予什么動(dòng)作,需要用if~then~else語(yǔ)句等將其記述,但是本方法中在處理與1個(gè)條件分支對(duì)應(yīng)的if語(yǔ)句微碼的執(zhí)行上要求幾個(gè)周期的執(zhí)行周期,這就需要重復(fù)執(zhí)行幾個(gè)數(shù)據(jù),進(jìn)而,在流水線控制程序的這種LSI系統(tǒng)中流水線流就中斷,因此處理的額外開(kāi)銷增加了。
為了防止這種處理性能的降低,存在指令系統(tǒng)之中具有稱為帶條件運(yùn)算指令的指令機(jī)型。該帶條件運(yùn)算指令是在各種指令上附加與分支指令同樣的條件,只要在指定的條件成立時(shí)就執(zhí)行該指令,條件不成立時(shí)就不執(zhí)行指定的動(dòng)作,照舊轉(zhuǎn)移到下一個(gè)步驟的這種指令。通過(guò)使用這種指令,能夠從程序中排除圖4步驟404的這種條件分支指令,并可防止處理能力的下降。
不過(guò),在想要對(duì)某集中量的數(shù)據(jù)執(zhí)行該帶條件運(yùn)算時(shí),預(yù)先要算出有關(guān)各數(shù)據(jù)是否滿足條件,將其作為標(biāo)志保持在另外的屏蔽寄存器(maskregister)里,要邊參照該標(biāo)志邊判斷是否執(zhí)行運(yùn)算,然而作為該前處理的標(biāo)志算出就成了額外開(kāi)銷,而且有需要另外存放該標(biāo)志的屏蔽寄存器的問(wèn)題。
進(jìn)而,作為謀求這種帶條件運(yùn)算指令的改進(jìn)方法,例如象特開(kāi)平8-305563號(hào)公報(bào)所示的數(shù)據(jù)處理裝置的那樣,對(duì)運(yùn)算指令,或無(wú)條件執(zhí)行,或條件“真”時(shí)執(zhí)行或者條件“偽”時(shí)執(zhí)行之,通過(guò)選擇少數(shù)的比特附加到數(shù)據(jù)上,防止因帶條件運(yùn)算指令的指令種類、操作數(shù)自由度的限制而引起性能降低,就可能使程序存儲(chǔ)器小容量化。
但是,運(yùn)算對(duì)象的數(shù)據(jù)若為“0”,則作為處理A給運(yùn)算對(duì)象的數(shù)據(jù)加“1”,運(yùn)算對(duì)象的數(shù)據(jù)若不是“0”,則希望對(duì)象圖象數(shù)據(jù)的這種集中數(shù)據(jù)數(shù)的數(shù)據(jù),進(jìn)行轉(zhuǎn)移到下一次處理的這種處理時(shí)用現(xiàn)有的運(yùn)算方法或運(yùn)算裝置,如上所述,必須或以相當(dāng)于if~then~else語(yǔ)句等的微碼記述圖4的流程只重復(fù)其數(shù)據(jù)的幾個(gè),或使用帶條件運(yùn)算指令只重復(fù)數(shù)據(jù)的幾個(gè)從流程之中排除步驟S404運(yùn)算指令的任一種方法進(jìn)行處理,然而這些方法由于不能對(duì)指令進(jìn)行矢量運(yùn)算處理,因此只需要數(shù)據(jù)的幾個(gè)部分環(huán)重復(fù)處理,所以增加了該部分處理的額外開(kāi)銷。
一般地說(shuō),如執(zhí)行上述的帶條件運(yùn)算的這種處理模型頻繁出現(xiàn)的程序一點(diǎn)也不少,例如,在圖象CODEC信號(hào)處理的這種處理模型中,對(duì)龐大的數(shù)據(jù)大多重復(fù)執(zhí)行一定的處理程序包括在處理程序中的步數(shù),即使增減1步也對(duì)處理性能大有影響。
本發(fā)明鑒于這樣的情況而作出發(fā)明,其目的是提供一種帶條件矢量運(yùn)算方法和帶條件矢量運(yùn)算裝置,在對(duì)某集中數(shù)據(jù)量進(jìn)行包括如上所述的帶條件運(yùn)算的處理程序的處理時(shí),可以帶條件運(yùn)算矢量運(yùn)算處理而不需要另外的屏蔽寄存器,能夠削減要進(jìn)行重復(fù)處理的處理額外開(kāi)銷,并能提高處理性能。
為達(dá)成上述目的,根據(jù)本發(fā)明權(quán)利要求1的帶條件矢量運(yùn)算方法,是以包括在執(zhí)行運(yùn)算處理的運(yùn)算處理工序取得成為運(yùn)算處理對(duì)象的數(shù)據(jù)時(shí),與其并行算出并判斷是否要執(zhí)行該運(yùn)算的運(yùn)算判斷工序;和在進(jìn)行運(yùn)算控制以便上述運(yùn)算處理工序執(zhí)行矢量運(yùn)算時(shí),根據(jù)上述運(yùn)算判斷工序的判斷結(jié)果,進(jìn)行運(yùn)算控制以便對(duì)成為上述運(yùn)算處理對(duì)象的數(shù)據(jù)執(zhí)行運(yùn)算將其結(jié)果輸出,或不執(zhí)行運(yùn)算而輸出該數(shù)據(jù),可將帶條件運(yùn)算作為矢量運(yùn)算處理為特征。
按照這些處理工序,可將帶條件運(yùn)算分割為判斷是否應(yīng)進(jìn)行運(yùn)算并根據(jù)其判斷結(jié)果控制是否執(zhí)行運(yùn)算的處理,并能分割成對(duì)應(yīng)于這個(gè)處理進(jìn)行運(yùn)算的結(jié)果或輸出不進(jìn)行運(yùn)算的輸入數(shù)據(jù)本身的運(yùn)算處理,可將這些并行工作,而且,既在進(jìn)行運(yùn)算時(shí)又在不進(jìn)行時(shí),數(shù)據(jù)流都沿著同一路徑,所以就可能不中斷流水線處理流來(lái)處理帶條件運(yùn)算,并能夠在矢量運(yùn)算中高速執(zhí)行處理。
并且,為達(dá)成上述目的,根據(jù)本發(fā)明的權(quán)利要求2的帶條件矢量運(yùn)算方法,是以具備有第1步驟(stage)、第2步驟和第3步驟的流水線處理,該第1步驟具有通過(guò)發(fā)行矢量運(yùn)算指令開(kāi)始供給數(shù)據(jù)的源數(shù)據(jù)供給處理工序、和與其并行執(zhí)行,通過(guò)上述源數(shù)據(jù)處理工序?qū)τ晒┙o的數(shù)據(jù)之中規(guī)定的源所供給的數(shù)據(jù)依次保持其狀態(tài),作為狀態(tài)標(biāo)志輸出的狀態(tài)標(biāo)志保持處理工序;該第2步驟具有通過(guò)上述源數(shù)據(jù)供給處理,使用所供給的數(shù)據(jù)輸出進(jìn)行運(yùn)算的運(yùn)算結(jié)果的運(yùn)算處理工序、和與其并行執(zhí)行,根據(jù)上述狀態(tài)標(biāo)志和上述矢量運(yùn)算指令進(jìn)行與發(fā)行條件之間的條件判斷,給控制處理工序提供條件成立或不成立信息的條件判斷處理工序;及該第3步驟具有順序存儲(chǔ)由上述運(yùn)算處理工序獲得運(yùn)算結(jié)果的運(yùn)算結(jié)果存儲(chǔ)處理工序,還包括通過(guò)執(zhí)行上述流水線處理,進(jìn)行用于執(zhí)行矢量運(yùn)算處理的控制,同時(shí)進(jìn)行控制以便在上述條件判斷處理的輸出信息當(dāng)條件成立時(shí)執(zhí)行上述運(yùn)算處理,在條件不成立時(shí)作為上述運(yùn)算處理的運(yùn)算結(jié)果,把由上述源數(shù)據(jù)供給處理工序所供給的數(shù)據(jù)之中的上述規(guī)定的源所供給的數(shù)據(jù)原封不動(dòng)地輸出的控制處理工序?yàn)樘卣鳌?br>
按照這些工序,通過(guò)源數(shù)據(jù)供給處理以矢量指令形式對(duì)一個(gè)接一個(gè)供給的數(shù)據(jù),在流水線的第1步驟把數(shù)據(jù)的性質(zhì)(例如“0”還是非“0”)作為狀態(tài)標(biāo)志輸出,在第2步驟通過(guò)條件判斷處理工序,使用該狀態(tài)標(biāo)志的輸出和指令發(fā)行的條件進(jìn)行條件判斷,就可能將判斷結(jié)果用于運(yùn)算處理的控制。即,通過(guò)把帶條件運(yùn)算分成條件判斷和條件分支運(yùn)算的流水線步驟,可以用矢量運(yùn)算形式處理帶條件運(yùn)算。因此,將帶條件矢量運(yùn)算應(yīng)用于圖4所示的現(xiàn)有處理流程,步驟S401和步驟S403與步驟S404進(jìn)而步驟S405都變成流水線式處理,在連續(xù)處理多個(gè)數(shù)據(jù)時(shí),不需要重復(fù)(子)程序,并能提高處理性能。并且,既不要另外的屏蔽寄存器,而且又不需要事前判斷標(biāo)志。
為達(dá)成上述目的,本發(fā)明權(quán)利要求3的帶條件矢量運(yùn)算裝置,是以具備執(zhí)行運(yùn)算處理的運(yùn)算裝置;在上述運(yùn)算裝置取得成為運(yùn)算處理對(duì)象的數(shù)據(jù)時(shí),與其并行算出并判斷是否應(yīng)執(zhí)行該運(yùn)算的運(yùn)算判斷裝置;在上述運(yùn)算裝置執(zhí)行矢量運(yùn)算進(jìn)行運(yùn)算控制時(shí),根據(jù)上述運(yùn)算判斷裝置的判斷結(jié)果進(jìn)行運(yùn)算控制,以便對(duì)成為上述運(yùn)算處理的對(duì)象執(zhí)行運(yùn)算將其結(jié)果輸出,或不執(zhí)行運(yùn)算而將該數(shù)據(jù)輸出的運(yùn)算控制裝置,并可能使帶條件運(yùn)算作為矢量運(yùn)算處理為特征。
根據(jù)本結(jié)構(gòu),可把帶條件運(yùn)算分割成判斷是否要執(zhí)行運(yùn)算,根據(jù)該判斷結(jié)果控制是否執(zhí)行運(yùn)算的處理,和根據(jù)該處理輸出執(zhí)行該運(yùn)算的結(jié)果或輸出不進(jìn)行運(yùn)算的輸入數(shù)據(jù)本身的運(yùn)算處理,并可將這些并行進(jìn)行動(dòng)作,二且,不論進(jìn)行運(yùn)算時(shí)還是不進(jìn)行時(shí)數(shù)據(jù)流都沿著同一路徑,因此,能夠不中斷流水線流來(lái)處理帶條件運(yùn)算,并可在矢量運(yùn)算中高速執(zhí)行運(yùn)算處理。
為達(dá)成上述目的,本發(fā)明權(quán)利要求4的帶條件矢量運(yùn)算裝置,是以具備通過(guò)發(fā)行矢量運(yùn)算指令開(kāi)始供給第1到第N源數(shù)據(jù)(N為2以上的整數(shù))的源數(shù)據(jù)供給裝置;暫時(shí)保存由上述源數(shù)據(jù)供給裝置供給的第1到第N源數(shù)據(jù)的第1到第N寄存器;用上述第1到第N的寄存器的輸出進(jìn)行運(yùn)算的運(yùn)算裝置;暫時(shí)保存上述運(yùn)算裝置輸出的運(yùn)算結(jié)果的流水線寄存器;順次存儲(chǔ)上述流水線寄存器輸出的運(yùn)算結(jié)果存儲(chǔ)裝置;依次保持表示上述第1到第N之中規(guī)定的源數(shù)據(jù)性質(zhì)的狀態(tài)標(biāo)志信息的狀態(tài)標(biāo)志保持裝置;根據(jù)上述狀態(tài)標(biāo)志保持裝置輸出和上述矢量運(yùn)算指令,由指定的條件信息,輸出表示上述矢量運(yùn)算指令的條件成立或不成立的信息的條件判斷裝置;通過(guò)把上述源數(shù)據(jù)供給裝置供給源數(shù)據(jù)并存入上述第1到第N寄存器,同時(shí)與其并行直到上述狀態(tài)標(biāo)志保持裝置保持并輸出狀態(tài)標(biāo)志信息為止作為第1步驟、上述運(yùn)算裝置把對(duì)上述第1到第N寄存器的運(yùn)算處理結(jié)果輸出到上述流水線寄存器,同時(shí)與其并行把直到上述條件判斷裝置輸出表示上述矢量運(yùn)算指令的條件成立還是不成立的信息為止作為第2步驟、以及直到把上述流水線寄存器的輸出存入上述運(yùn)算結(jié)果存儲(chǔ)裝置為止作為第3步驟的流水線處理,生成用于執(zhí)行上述矢量運(yùn)算指令的控制信號(hào),同時(shí)接收上述條件判斷裝置的輸出信息,當(dāng)條件不成立時(shí)作為上述運(yùn)算裝置的輸出,將上述第1到第N寄存器中規(guī)定的源數(shù)據(jù)的值原封不動(dòng)地輸出,而當(dāng)條件成立時(shí)選擇由上述運(yùn)算裝置獲得的運(yùn)算結(jié)果進(jìn)行輸出的這種模式選擇信號(hào)的控制裝置為特征。
按照本構(gòu)成,可以對(duì)從源數(shù)據(jù)供給裝置以矢量指令形式一個(gè)接一個(gè)供給的數(shù)據(jù),在流水線的第1步驟把數(shù)據(jù)的性質(zhì)(例如“0”或者非“0”)存入狀態(tài)標(biāo)志保持裝置,在第2步驟就用條件判斷裝置,進(jìn)行其狀態(tài)標(biāo)志保持裝置的輸出指令發(fā)行的條件和條件判斷,并將判斷結(jié)果用于運(yùn)算裝置的控制。即通過(guò)將條件判斷和條件分支運(yùn)算的流水線步驟分成另外的流水線步驟,就能夠以矢量運(yùn)算形式處理帶條件運(yùn)算。因此,通過(guò)把該帶條件矢量運(yùn)算應(yīng)用于圖4所示的現(xiàn)有處理流程,步驟S401和步驟S403及步驟S404進(jìn)而步驟S405都變成流水線上的處理,在連續(xù)處理多個(gè)數(shù)據(jù)的情況下無(wú)須重復(fù)程序,提高了處理性能。并且,可見(jiàn)不要求另外的屏蔽寄存器,而且也不存在需要事前的標(biāo)志判斷的額外開(kāi)銷。
附圖的簡(jiǎn)單說(shuō)明
圖1是本發(fā)明實(shí)施例1的帶條件矢量運(yùn)算裝置的構(gòu)成圖,圖1(a)表示與權(quán)利要求3對(duì)應(yīng)的構(gòu)成圖,圖1(b)表示本發(fā)明實(shí)施例1的帶條件矢量運(yùn)算裝置的方框構(gòu)成圖。
圖2表示本發(fā)明實(shí)施例1的處理流程圖。
圖3表示本發(fā)明第1實(shí)施例的圖2流程圖所示的處理使用本發(fā)明第1實(shí)施例的帶條件矢量運(yùn)算裝置處理時(shí)的定時(shí)圖。
圖4表示包括現(xiàn)有帶條件運(yùn)算的處理流程圖。
圖5表示圖1(b)中狀態(tài)標(biāo)志檢測(cè)裝置的構(gòu)成例。
圖6表示圖1(b)所示的本發(fā)明實(shí)施例1的帶條件矢量運(yùn)算裝置的另一例方框構(gòu)成圖。
以下,用圖1至圖3說(shuō)明本發(fā)明的實(shí)施例。
(實(shí)施例1)本實(shí)施例1通過(guò)判斷要運(yùn)算處理的數(shù)據(jù)性質(zhì),根據(jù)該數(shù)據(jù)的性質(zhì)控制是否進(jìn)行運(yùn)算,使帶條件運(yùn)算執(zhí)行流水線處理,即,把一連串的處理分成多個(gè)步驟,在執(zhí)行某一連串處理的第1步驟結(jié)束后,在執(zhí)行第2步驟中,與其并行執(zhí)行下面的一連串處理的第1步驟,所謂不間斷處理就是可以編成重復(fù)矢量運(yùn)算處理,因此達(dá)到處理性能的提高。
圖1(a)表示本發(fā)明實(shí)施例1的帶條件矢量運(yùn)算裝置的示意構(gòu)成圖。
在圖1(a)中,10是執(zhí)行運(yùn)算處理的運(yùn)算裝置,20是運(yùn)算裝置10取得成為運(yùn)算處理對(duì)象的數(shù)據(jù)時(shí)與其并行算出并判斷是否要執(zhí)行該運(yùn)算的運(yùn)算判斷裝置,30是在運(yùn)算裝置10執(zhí)行矢量運(yùn)算進(jìn)行運(yùn)算控制時(shí),根據(jù)運(yùn)算判斷裝置20的判斷結(jié)果進(jìn)行運(yùn)算控制,是否對(duì)成為上述運(yùn)算處理對(duì)象的數(shù)據(jù)執(zhí)行運(yùn)算并輸出其結(jié)果,或不執(zhí)行該運(yùn)算而輸出該數(shù)據(jù)進(jìn)行運(yùn)算控制的運(yùn)算控制裝置。
而且,這些運(yùn)算裝置10、運(yùn)算判斷裝置20及運(yùn)算控制裝置30,是運(yùn)算裝置10在執(zhí)行運(yùn)算處理的運(yùn)算處理工序中,運(yùn)算判斷裝置20是在取得成為運(yùn)算處理對(duì)象的數(shù)據(jù)時(shí)與其并行算出并判斷是否要執(zhí)行該運(yùn)算的運(yùn)算判斷工序中,運(yùn)算控制裝置30是在運(yùn)算處理工序進(jìn)行運(yùn)算控制以便執(zhí)行矢量運(yùn)算時(shí),根據(jù)運(yùn)算判斷工序的判斷結(jié)果進(jìn)行運(yùn)算控制,是否要對(duì)成為上述運(yùn)算處理的對(duì)象的數(shù)據(jù)執(zhí)行運(yùn)算并將其結(jié)果輸出,或者不執(zhí)行運(yùn)算而將該數(shù)據(jù)輸出的運(yùn)算控制工序中分別進(jìn)行相應(yīng)的處理。
下面對(duì)工作進(jìn)行說(shuō)明。運(yùn)算裝置10假定從圖未示的存儲(chǔ)器取得成為運(yùn)算對(duì)象的數(shù)據(jù),并在這里進(jìn)行與運(yùn)算指令相應(yīng)的處理。這時(shí),運(yùn)算判斷裝置20在運(yùn)算裝置10取得數(shù)據(jù)之際,算出并判斷成為該運(yùn)算對(duì)象的數(shù)據(jù)是不是要運(yùn)算處理的數(shù)據(jù)。
而且基于該判斷結(jié)果決定運(yùn)算控制裝置30是否進(jìn)行運(yùn)算處理,并控制運(yùn)算裝置10在判斷為要進(jìn)行運(yùn)算的數(shù)據(jù)時(shí),根據(jù)指令處理該數(shù)據(jù),并且,在判斷為否時(shí),不進(jìn)行運(yùn)算而原封不動(dòng)輸出數(shù)據(jù)。
運(yùn)算控制裝置30進(jìn)行控制,使運(yùn)算裝置10對(duì)矢量運(yùn)算指令進(jìn)行流水線處理,即,通過(guò)在時(shí)間上邊錯(cuò)開(kāi)數(shù)據(jù)的供給、運(yùn)算、運(yùn)算結(jié)果的存儲(chǔ)的各步驟邊并行執(zhí)行的辦法,處理矢量指令,但如上所述的那樣,與本來(lái)的流水線處理并行進(jìn)行帶條件運(yùn)算指令的條件判斷,而且進(jìn)行運(yùn)算時(shí)或不進(jìn)行時(shí)都要使數(shù)據(jù)流沿著同一路徑,因而可能把帶條件運(yùn)算作為矢量運(yùn)算進(jìn)行處理,也能減輕通過(guò)不進(jìn)行矢量運(yùn)算化的帶條件運(yùn)算,重復(fù)運(yùn)算處理大量的數(shù)據(jù)時(shí)的額外開(kāi)銷。
圖1(b)是更具體地示出本實(shí)施例1的帶條件矢量運(yùn)算裝置的構(gòu)成圖。
圖1(b)中,100是在應(yīng)用本發(fā)明的帶條件矢量運(yùn)算裝置中執(zhí)行該運(yùn)算處理的ALU,并與圖1(a)的運(yùn)算裝置10對(duì)應(yīng)。101和102是作為源數(shù)據(jù)供給裝置的存儲(chǔ)器,103和04分別是暫時(shí)保存由存儲(chǔ)器101和102供給的源數(shù)據(jù)的寄存器,105是用于暫時(shí)性保存ALU100輸出的運(yùn)算結(jié)果的流水線寄存器,106是作為用于順序存儲(chǔ)流水線寄存器105輸出的運(yùn)算結(jié)果存儲(chǔ)裝置的存儲(chǔ)器,150是依次檢測(cè)從存儲(chǔ)器101讀出表示數(shù)據(jù)流性質(zhì)的狀態(tài)標(biāo)志檢測(cè)裝置,107是依次保持狀態(tài)標(biāo)志檢測(cè)裝置150檢測(cè)出的狀態(tài)標(biāo)志的狀態(tài)標(biāo)志保持裝置,108是狀態(tài)標(biāo)志保持裝置107輸出的狀態(tài)標(biāo)志,120是由這些狀態(tài)標(biāo)志檢測(cè)裝置150和狀態(tài)標(biāo)志保持裝置107構(gòu)成的運(yùn)算判斷裝置,與圖1(a)的運(yùn)算判斷裝置20對(duì)應(yīng),在運(yùn)算裝置取得成為運(yùn)算處理的對(duì)象的數(shù)據(jù)時(shí),與其并行算出并判斷是否要執(zhí)行該運(yùn)算。
并且,109是將狀態(tài)標(biāo)志108和后述的條件信息115作為輸入,進(jìn)行條件判斷而輸出表示條件的成立/不成立的信息114的條件判斷裝置,110是生成控制信號(hào),以便接收矢量運(yùn)算指令的發(fā)行,以矢量指令形式流水線控制本發(fā)明的整個(gè)運(yùn)算裝置的控制裝置,130是由這些條件判斷裝置109和控制裝置110構(gòu)成的運(yùn)算控制裝置,與圖1(a)的運(yùn)算控制裝置30對(duì)應(yīng),在運(yùn)算裝置進(jìn)行運(yùn)算控制使其執(zhí)行矢量運(yùn)算時(shí),根據(jù)上述運(yùn)算判斷裝置的判斷結(jié)果,對(duì)成為上述運(yùn)算處理的對(duì)象的數(shù)據(jù)進(jìn)行運(yùn)算控制,以便是否執(zhí)行運(yùn)算并輸出其結(jié)果,或不執(zhí)行運(yùn)算而輸出該數(shù)據(jù)。ALU100是根據(jù)這個(gè)算控制裝置130的控制,作為對(duì)要運(yùn)算處理的數(shù)據(jù)執(zhí)行運(yùn)算并輸出或不執(zhí)行運(yùn)算就輸出的運(yùn)算裝置140進(jìn)行工作。111是控制裝置110輸出的存儲(chǔ)器101、102、106的存儲(chǔ)器控制信號(hào),112是控制裝置110輸出的寄存器103、104的寫入允許信號(hào),113是控制裝置110輸出的ALU100的模式選擇信號(hào),114是條件判斷裝置109輸出表示條件成立/不成立的信息,115是控制裝置110輸出指令的條件信息。
在這里,將進(jìn)行圖2中示出流程圖的處理的情況作為例子,說(shuō)明使用本實(shí)施例1的帶條件矢量運(yùn)算裝置結(jié)構(gòu)時(shí)的工作。
圖2中,首先在步驟S200,使j初始化為“0”。其次在步驟S201,從將該j初始化為“0”的狀態(tài)開(kāi)始從存儲(chǔ)器101取得運(yùn)算對(duì)象的數(shù)據(jù)X(j)。該步驟S201對(duì)應(yīng)于源數(shù)據(jù)供給處理。接著在步驟S202,為了確定前面步驟S201中取得的X(j)是否為“0”,進(jìn)行“0”與數(shù)據(jù)X(j)的比較處理,并保持其比較結(jié)果。該步驟S202相當(dāng)于狀態(tài)標(biāo)志處理工序。實(shí)際上,這些步驟S201和步驟S202并行進(jìn)行處理,由這些步驟S201和步驟S202構(gòu)成從圖1(b)的存儲(chǔ)器101讀出成為運(yùn)算對(duì)象的數(shù)據(jù)的第1步驟310。該第1步驟310就是相當(dāng)于運(yùn)算判斷工序。
接著,在步驟S203使用帶條件運(yùn)算指令,與前面步驟S202中決定的狀態(tài)標(biāo)志比較其比較結(jié)果不符合(No)時(shí),通過(guò)步驟S204將X(j)原封不動(dòng)作為Y(j)進(jìn)行輸出,比較結(jié)果符合(Yes)時(shí),通過(guò)步驟S205,將X(j)加“1”作為Y(j)進(jìn)行輸出,并轉(zhuǎn)移到步驟S210。實(shí)際上這些步驟S203和步驟S204、S205并行進(jìn)行處理,由這些步驟S203和步驟S204、S205構(gòu)成進(jìn)行運(yùn)算處理的第2步驟311。該第2步驟311就相當(dāng)于運(yùn)算處理工序和運(yùn)算控制工序,步驟S203、步驟S204和步驟S205分別相當(dāng)于條件判斷處理工序、運(yùn)算處理工序。
接著,在步驟S210,這樣一來(lái),把得到的運(yùn)算結(jié)果存入存儲(chǔ)器106并轉(zhuǎn)移到步驟S206。由該步驟S210構(gòu)成將運(yùn)算結(jié)果寫入存儲(chǔ)器106的第3步驟312。
步驟S206是用于作為運(yùn)算對(duì)象的數(shù)據(jù)的8個(gè)數(shù)據(jù)的處理結(jié)束后,重復(fù)步驟S201到步驟S205的處理,在步驟S206,當(dāng)j的“8”未滿足(NO)時(shí),在步驟S207,將j加上1,重復(fù)步驟S201以后的處理。借助于這些步驟S206和步驟S207,并備有第1步驟310到第3步驟312的流水線處理,可以實(shí)現(xiàn)進(jìn)行控制的的控制處理工序,以便通過(guò)執(zhí)行上述流水線處理進(jìn)行用于執(zhí)行矢量運(yùn)算處理的控制,同時(shí)上述條件判斷處理的輸出信息在條件成立時(shí)執(zhí)行上述運(yùn)算處理,在條件不成立時(shí)作為上述運(yùn)算處理的運(yùn)算結(jié)果,原封不動(dòng)地輸出通過(guò)上述源數(shù)據(jù)供給處理由供給的數(shù)據(jù)之中上述規(guī)定的源所供給的數(shù)據(jù)。并且,在j變成“8”以上的值(Yes)時(shí),在步驟S208進(jìn)行累加Y(0)到Y(jié)(7)的值。
本流程圖對(duì)以X(j)表示的運(yùn)算對(duì)象數(shù)據(jù),進(jìn)行其值是否為“0”的條件分支,除“0”以外時(shí)(No)采用X(j)本身作為運(yùn)算結(jié)果,而為“0”時(shí)(Yes)采用X(j)+1作為Y(j),通過(guò)在j變成“8”的區(qū)間重復(fù)以上的處理,表示對(duì)8個(gè)運(yùn)算對(duì)象數(shù)據(jù)實(shí)行同樣的帶條件運(yùn)算的情況。
以上的處理中使用本實(shí)施例1的構(gòu)成,并將執(zhí)行帶條件矢量運(yùn)算時(shí)的定時(shí)圖示于圖3中。
圖3中,301作為第1源數(shù)據(jù)的是從存儲(chǔ)器101來(lái)的讀出數(shù)據(jù),302作為第2源數(shù)據(jù)的是設(shè)定于寄存器104內(nèi)的固定值“1”,303是寄存器103的輸出,304是作為狀態(tài)標(biāo)志保持裝置107輸出的狀態(tài)標(biāo)志108,305表示指令的條件信息115的值,306表示作為條件判斷裝置109輸出的條件成立/不成立的信息114,307是ALU100的模式選擇信號(hào)113,308是ALU100的輸出,309是流水線寄存器105的輸出。
并且,310、311、312分別是如上述的第1、第2、第3步驟。即,310是將按照矢量運(yùn)算指令的發(fā)行開(kāi)始供給源數(shù)據(jù)的源數(shù)據(jù)供給處理作為第1步驟;311是將使用按照上述源數(shù)據(jù)供給處理供給的數(shù)據(jù)的輸出進(jìn)行運(yùn)算的運(yùn)算結(jié)果的運(yùn)算處理作為第2步驟;312是將順序存儲(chǔ)上述運(yùn)算結(jié)果的運(yùn)算結(jié)果存儲(chǔ)處理作為第3步驟。圖1的控制裝置110生成控制信號(hào),以便作為流水線處理執(zhí)行這些第1步驟310、第2步驟311和第3步驟312。
在這里,圖3中的狀態(tài)標(biāo)志304為第1源數(shù)據(jù)301的數(shù)據(jù)性質(zhì)信息,并設(shè)定數(shù)據(jù)為“0”時(shí)輸出“1”的值,而數(shù)據(jù)為“0”以外時(shí)輸出“0”的值。作為指令的條件信息305就設(shè)定“作為0”這種條件的狀態(tài)碼為“1”。ALU100的模式選擇信號(hào)設(shè)定為,不進(jìn)行運(yùn)算處理的“通過(guò)”時(shí)把第1源數(shù)據(jù)301送給ALU100的輸出306,進(jìn)行“ADD”運(yùn)算時(shí)把第1源數(shù)據(jù)301和第2源數(shù)據(jù)的值相加的結(jié)果送給ALU100的輸出306。
即,在圖3的周期1,控制裝置110給圖1的寄存器104設(shè)定值“1”,同時(shí)作為指令的條件信息305也設(shè)定值“1”。接著,在周期2,控制裝置110從存儲(chǔ)器101讀出值“1”作為數(shù)據(jù)X(0),并將其傳送到寄存器103和狀態(tài)標(biāo)志檢測(cè)裝置150。狀態(tài)標(biāo)志保持裝置107保持由該狀態(tài)標(biāo)志檢測(cè)裝置150的檢測(cè)結(jié)果“0”。隨后,在周期3,條件判斷裝置109因該狀態(tài)標(biāo)志保持裝置107中保持著的值108為“0”,而且控制裝置110輸出根據(jù)指令的條件信息115值為“1”,將其進(jìn)行比較,把條件不成立的意旨條件成立/不成立信息114輸出給控制裝置110。因此,控制裝置110對(duì)ALU100輸出選擇“通過(guò)”的意旨ALU的模式選擇信號(hào)113。因此,ALU100對(duì)作為第1源數(shù)據(jù)的寄存器103輸出不進(jìn)行什么運(yùn)算,而原封不動(dòng)地輸出該值“1”。然后,在該周期4,ALU100的輸出“1”借助于控制裝置110被傳送給流水線寄存器105,該流水線寄存器105的輸出寫入存儲(chǔ)器106。
在這些周期2到4中,與數(shù)據(jù)X(0)進(jìn)行“通過(guò)”處理并行,在從這些每一周期偏移的周期3到5中,對(duì)具有值“2”的數(shù)據(jù)X(1)同樣進(jìn)行處理。這時(shí)也因條件不成立,所以ALU100照樣輸出該值“2”。
接著,在周期4,控制裝置110從存儲(chǔ)器101讀出作為數(shù)據(jù)X(0)的值“0”,并傳送給寄存器103和狀態(tài)標(biāo)志檢測(cè)裝置150。狀態(tài)標(biāo)志保持裝置107保持由該狀態(tài)標(biāo)志檢測(cè)裝置150的檢測(cè)結(jié)果。然后,在周期5,條件判斷裝置109因狀態(tài)標(biāo)志保持裝置107中保持著的值108為“1”,而且控制裝置110輸出指令的條件信息115值為“1”,將其進(jìn)行比較,把條件已成立的意旨的條件成立/不成立信息114送給控制裝置110。因此,控制裝置110對(duì)ALU100輸出意旨選擇加法運(yùn)算的ALU的模式選擇信號(hào)113。因此,ALU100對(duì)作為第1源數(shù)據(jù)的寄存器103輸出“0”進(jìn)行加上“1”的運(yùn)算并輸出該相加值“1”。隨后,在周期6,該ALU100的輸出“1”借助于控制裝置110傳送給流水線寄存器105,并將該流水線寄存器105的輸出寫入存儲(chǔ)器106。
以下,這樣的流水線工作對(duì)具有值“1”、“2”、“3”、“0”、“5”的數(shù)據(jù)X(3)、X(4)、X(5)、X(6)、X(7)也同樣進(jìn)行,作為流水線寄存器105的輸出分別得到值“1”、“2”、“3”、“1”、“5”。
按處理的流程陳述其工作,在第1步驟310,從存儲(chǔ)器101獲得作為第1源數(shù)據(jù)的讀出數(shù)據(jù)301,同時(shí)在寄存器104中設(shè)定固定值“1”作為第2源數(shù)據(jù),而且設(shè)定矢量運(yùn)算指令的條件信息115的值“1”。并且,把從存儲(chǔ)器101作為第1源數(shù)據(jù)的讀出數(shù)據(jù)301傳送到寄存器103,同時(shí)將其值用狀態(tài)標(biāo)志檢測(cè)裝置150判斷是否是“0”,若為“0”以外則將“0”,若為“0”則將“1”分別作為狀態(tài)標(biāo)志以狀態(tài)標(biāo)志保持裝置107保持。在這些的處理過(guò)程中,從存儲(chǔ)器101來(lái)的讀出數(shù)據(jù)的傳輸,相當(dāng)于源數(shù)據(jù)供給處理工序,狀態(tài)標(biāo)志檢測(cè)裝置150和狀態(tài)標(biāo)志保持裝置107的處理相當(dāng)于運(yùn)算判斷工序或狀態(tài)標(biāo)志保持處理工序。
接著,在第2步驟311,用條件判斷裝置109對(duì)以狀態(tài)標(biāo)志保持裝置107保持著的狀態(tài)標(biāo)志值與從控制裝置110輸出的根據(jù)矢量運(yùn)算指令的條件信息115值“1”進(jìn)行比較,將表示是否要進(jìn)行ALU100運(yùn)算的條件成立/不成立信息114輸出到控制裝置110。控制裝置110根據(jù)該條件成立/不成立信息114,對(duì)ALU100輸出ALU的模式選擇信號(hào)113,條件成立時(shí),ALU100進(jìn)行對(duì)寄存器103的輸出加上寄存器104輸出的固定值“1”的運(yùn)算,條件不成立時(shí)則進(jìn)行控制,以便對(duì)寄存器103的輸出不進(jìn)行任何運(yùn)算,按“通過(guò)”輸出,并向流水線寄存器105輸出該ALU100的輸出。在這些的處理過(guò)程中,條件判斷裝置109的處理相當(dāng)于條件判斷處理工序,ALU100的處理相當(dāng)于運(yùn)算處理工序,條件判斷裝置109和控制裝置110的處理相當(dāng)于運(yùn)算控制工序。
并且,在第3步驟312,把暫時(shí)存儲(chǔ)ALU100輸出的流水線寄存器105的輸出寫入用于獲得累加值的存儲(chǔ)器106。向存儲(chǔ)器106的寫入相當(dāng)于運(yùn)算結(jié)果存儲(chǔ)處理工序。
通過(guò)圖3所示的定時(shí)圖,可見(jiàn)對(duì)數(shù)據(jù)進(jìn)行運(yùn)算時(shí)或不進(jìn)行運(yùn)算時(shí)數(shù)據(jù)流都沿著同樣路徑,可以不中斷流水線處理流地執(zhí)行帶條件運(yùn)算,由此可見(jiàn),能夠以矢量運(yùn)算方式實(shí)現(xiàn)8次重復(fù)圖2的流程圖所述的處理中步驟S201到步驟S207部分的步驟。因?yàn)椋稍谑噶窟\(yùn)算中包括帶條件運(yùn)算,由此與通常的矢量運(yùn)算同樣,可以分配一個(gè)指令,用一個(gè)指令來(lái)實(shí)現(xiàn)相當(dāng)于這些周期1到周期11的流水線處理,而且可以用所謂(8周期)+(流水線延遲級(jí)數(shù))的處理量來(lái)實(shí)現(xiàn)該處理。
這樣,根據(jù)本實(shí)施例1,在處理子程序中,根據(jù)運(yùn)算對(duì)象的數(shù)據(jù)性質(zhì),包括象改變要處理的運(yùn)算內(nèi)容那樣的帶條件運(yùn)算,其運(yùn)算對(duì)象為多個(gè)數(shù)據(jù)連續(xù)時(shí),通過(guò)把帶條件運(yùn)算分成條件的判斷與條件分支和運(yùn)算的流水線步驟,即,用ALU進(jìn)行帶條件運(yùn)算時(shí),除執(zhí)行運(yùn)算的周期外,基于變成運(yùn)算源的第1源數(shù)據(jù),判斷進(jìn)行運(yùn)算的條件是否成立,通過(guò)基于該判斷結(jié)果決定是否執(zhí)行運(yùn)算,就可能以矢量運(yùn)算形式執(zhí)行帶條件運(yùn)算而不中斷處理流,因此,可能連續(xù)地處理運(yùn)算對(duì)象數(shù)據(jù),能夠達(dá)到減少處理步驟數(shù)提高處理器性能。并且,也不需要另外的屏蔽寄存器等硬件,對(duì)電力消耗有限制的機(jī)器中安裝處理器的情況下,變得很有利。進(jìn)而,也不會(huì)發(fā)生由于事先計(jì)算標(biāo)志的額外開(kāi)銷。
另外,以上的說(shuō)明,雖然使用存儲(chǔ)器101、102作為源數(shù)據(jù)供給裝置,即使把源數(shù)據(jù)供給裝置一方以寄存器構(gòu)成作為固定值,也可以實(shí)現(xiàn)同樣的帶條件矢量運(yùn)算裝置。
并且,通過(guò)以累加電路構(gòu)成作為運(yùn)算裝置的ALU100,削除作為運(yùn)算結(jié)果存儲(chǔ)裝置的存儲(chǔ)器106,通過(guò)構(gòu)成流水線寄存器105作為累加寄存器,也可以實(shí)現(xiàn)帶條件矢量運(yùn)算裝置。
并且,作為在依次保持表示源數(shù)據(jù)性質(zhì)信息的狀態(tài)標(biāo)志保持裝置107中保持的狀態(tài)標(biāo)志,存儲(chǔ)器101或102的一方除表示“0”或“0”以外的“0”標(biāo)志外,可以保持表示正、負(fù)的符號(hào)標(biāo)志,表示從存儲(chǔ)器101、102讀出數(shù)據(jù)是否一致的符合標(biāo)志,表示從存儲(chǔ)器101、102讀出數(shù)據(jù)的大小關(guān)系的標(biāo)志,即,表示從存儲(chǔ)器101的讀出數(shù)據(jù)與從存儲(chǔ)器102的讀出數(shù)據(jù)之間的大小關(guān)系是否為“≥”、“≤”、“>”、“<”任一狀態(tài)的標(biāo)志等,并可作成分支條件。
并且,如圖5所示,由設(shè)定寄存器150a和比較裝置150b構(gòu)成狀態(tài)標(biāo)志檢測(cè)裝置150,假定可給設(shè)定寄存器150a輸入規(guī)定的設(shè)定值A(chǔ),而且用比較裝置150b比較該設(shè)定寄存器150a的設(shè)定值A(chǔ)與從存儲(chǔ)器101、102的二者一方讀出的數(shù)據(jù),保持表示這些大小關(guān)系的標(biāo)志,即,保持表示設(shè)定值A(chǔ)與從存儲(chǔ)器101、102的二者一方讀出的數(shù)據(jù)之間的關(guān)系變成“≥”、“≤”、“>”、“<”任一種狀態(tài)的標(biāo)志等,也可以作為條件分支的條件。
進(jìn)而只要能夠納入第1步驟處理時(shí)間的范圍內(nèi)就能進(jìn)行處理,通過(guò)對(duì)比較邏輯進(jìn)行更復(fù)雜的運(yùn)算,也就可以與更復(fù)雜的分支條件對(duì)應(yīng)。
并且,如圖6所示的存儲(chǔ)器101a到101n,或102a到102n那樣,由多個(gè)存儲(chǔ)器構(gòu)成存儲(chǔ)器101、102的至少一方,將這些存儲(chǔ)器101、102作為源數(shù)據(jù)供給裝置運(yùn)算其輸出時(shí),對(duì)存儲(chǔ)器101、102二者一方的存儲(chǔ)器輸出與另一方的存儲(chǔ)器輸出進(jìn)行比較,保持上述那樣的各種標(biāo)志,也可以作為條件分支的條件。這時(shí),與存儲(chǔ)器的增加對(duì)應(yīng)需要增設(shè)寄存器103、104和ALU100的輸入。并且,需要將存儲(chǔ)器101、102的輸出二者一方的一個(gè)輸出作為第1源數(shù)據(jù),將另一方的多個(gè)輸出作為第2到第N(N為2以上的整數(shù))源數(shù)據(jù)并將其進(jìn)行比較。
另外,對(duì)龐大的數(shù)據(jù)要是重復(fù)執(zhí)行一定的處理子程序的處理模塊的話,即使對(duì)圖象數(shù)據(jù)以外的數(shù)據(jù)也可以使用于其處理。
根據(jù)權(quán)利要求1的帶條件矢量運(yùn)算方法,要做到在執(zhí)行運(yùn)算處理的運(yùn)算處理工序取得成為運(yùn)算處理對(duì)象的數(shù)據(jù)時(shí),與其并行算出同時(shí)判斷是否應(yīng)執(zhí)行該運(yùn)算,上述運(yùn)算處理工序在進(jìn)行執(zhí)行矢量運(yùn)算那樣的控制時(shí),根據(jù)上述判斷結(jié)果,要執(zhí)行運(yùn)算控制以便對(duì)上述運(yùn)算處理對(duì)象的數(shù)據(jù)進(jìn)行運(yùn)算并將其結(jié)果輸出,或不執(zhí)行運(yùn)算而輸出該數(shù)據(jù),因此可將帶條件運(yùn)算變成矢量運(yùn)算處理,并且能用矢量運(yùn)算法高速執(zhí)行。
根據(jù)本發(fā)明的權(quán)利要求2的帶條件矢量運(yùn)算方法,具備有第1步驟、第2步驟和第3步驟的流水線處理,該第1步驟具有通過(guò)發(fā)行矢量運(yùn)算指令開(kāi)始供給數(shù)據(jù)的源數(shù)據(jù)供給處理工序、和與其并行執(zhí)行,并通過(guò)上述源數(shù)據(jù)處理工序?qū)τ晒┙o的數(shù)據(jù)之中規(guī)定的源供給的數(shù)據(jù)依次保持其狀態(tài),作為狀態(tài)標(biāo)志輸出的狀態(tài)標(biāo)志保持處理工序;該第2步驟具有通過(guò)上述源數(shù)據(jù)供給處理使用所供給的數(shù)據(jù),并輸出進(jìn)行運(yùn)算的運(yùn)算結(jié)果的運(yùn)算處理工序、和與其并行執(zhí)行,根據(jù)上述狀態(tài)標(biāo)志和上述矢量運(yùn)算指令進(jìn)行與發(fā)行的條件的條件判斷,給控制處理工序提供條件成立或不成立信息的條件判斷處理工序;及該第3步驟具有順序存儲(chǔ)上述運(yùn)算處理工序產(chǎn)生運(yùn)算結(jié)果的運(yùn)算結(jié)果存儲(chǔ)處理工序,除通過(guò)執(zhí)行上述流水線處理執(zhí)行用于矢量運(yùn)算處理的控制外,要做到上述條件判斷處理的輸出信息當(dāng)條件成立時(shí)執(zhí)行上述運(yùn)算處理,條件不成立時(shí)作為上述運(yùn)算處理的運(yùn)算結(jié)果根據(jù)上述源數(shù)據(jù)供給處理工序?qū)⒂晒┙o的數(shù)據(jù)之中上述規(guī)定的源所供給的數(shù)據(jù)原封不動(dòng)輸出的方式進(jìn)行控制的控制處理工序,可將帶條件運(yùn)算分成條件判斷與條件分支運(yùn)算的流水線步驟,并能夠以矢量運(yùn)算形式處理帶條件運(yùn)算。因此,連續(xù)地處理多個(gè)數(shù)據(jù)時(shí)就不需要重復(fù)子程序,并提高了處理性能。也不需要另外的屏蔽寄存器等的硬件,也不會(huì)發(fā)生事先算出標(biāo)志的額外開(kāi)銷。
根據(jù)權(quán)利要求3的帶條件矢量運(yùn)算裝置,要做到在上述運(yùn)算裝置取得成為運(yùn)算處理對(duì)象的數(shù)據(jù)時(shí),與其并行用運(yùn)算判斷裝置算出同時(shí)判斷是否要執(zhí)行該運(yùn)算,在進(jìn)行運(yùn)算控制以便上述運(yùn)算裝置執(zhí)行矢量運(yùn)算時(shí),根據(jù)上述運(yùn)算判斷裝置的判斷結(jié)果進(jìn)行運(yùn)算控制以便對(duì)成為上述運(yùn)算處理的對(duì)象數(shù)據(jù)執(zhí)行運(yùn)算并將其結(jié)果輸出,或不執(zhí)行運(yùn)算而將該數(shù)據(jù)輸出,使用可將帶條件運(yùn)算變成矢量運(yùn)算處理,并能用矢量運(yùn)算法高速執(zhí)行。
根據(jù)權(quán)利要求4的帶條件矢量運(yùn)算裝置,它具備通過(guò)矢量運(yùn)算指令的發(fā)行開(kāi)始供給第1到第N源數(shù)據(jù)(N為2以上的整數(shù))的源數(shù)據(jù)供給裝置;暫時(shí)保存由上述源數(shù)據(jù)供給裝置供給的第1到第N源數(shù)據(jù)的第1到第N寄存器;用上述第1到第N的寄存器的輸出進(jìn)行運(yùn)算的運(yùn)算裝置;暫時(shí)保存上述運(yùn)算裝置輸出的運(yùn)算結(jié)果的流水線寄存器;順次存儲(chǔ)上述流水線寄存器輸出的運(yùn)算結(jié)果存儲(chǔ)裝置;依次保持表示上述第1到第N之中規(guī)定的源數(shù)據(jù)性質(zhì)的狀態(tài)標(biāo)志信息的狀態(tài)標(biāo)志保持裝置;根據(jù)上述狀態(tài)標(biāo)志保持裝置的輸出和上述矢量運(yùn)算指令,由指定的條件信息,輸出表示上述矢量運(yùn)算指令的條件成立或不成立的信息的條件判斷裝置;通過(guò)把上述源數(shù)據(jù)供給裝置供給源數(shù)據(jù)并存入上述第1到第N的寄存器,同時(shí)與其并行直到上述狀態(tài)標(biāo)志保持裝置保持并輸出狀態(tài)標(biāo)志信息為止作為第1步驟、上述運(yùn)算裝置把對(duì)上述第1到第N寄存器輸出的運(yùn)算處理結(jié)果輸出到上述流水線寄存器,同時(shí)與其并行把直到上述條件判斷裝置輸出表示上述矢量運(yùn)算指令的條件成立還是不成立的信息為止作為第2步驟、以及直到把上述流水線寄存器的輸出存入上述運(yùn)算結(jié)果存儲(chǔ)裝置為止作為第3步驟的流水線處理,生成用于執(zhí)行上述矢量運(yùn)算指令的控制信號(hào),同時(shí)生成接收上述條件判斷裝置的信息,當(dāng)條件不成立時(shí)作為上述運(yùn)算裝置的輸出,將上述第1到第N寄存器中規(guī)定的源數(shù)據(jù)的值原封不動(dòng)地輸出去,而當(dāng)條件成立時(shí)選擇由上述運(yùn)算裝置產(chǎn)生的運(yùn)算結(jié)果并輸出的這種模式選擇信號(hào)的控制裝置,可將帶條件運(yùn)算分成條件判斷和條件分支運(yùn)算的流水線步驟,可用矢量運(yùn)算形式處理帶條件運(yùn)算。因此,連續(xù)地處理多個(gè)數(shù)據(jù)時(shí)就不需要重復(fù)程序,并提高了處理性能。并且,也不需要另外的屏蔽寄存器等的硬件,也不會(huì)發(fā)生事先算出標(biāo)志的額外開(kāi)銷。
權(quán)利要求
1.一種帶條件矢量運(yùn)算方法,其特征是包括在執(zhí)行運(yùn)算處理的運(yùn)算處理工序取得成為運(yùn)算處理對(duì)象的數(shù)據(jù)時(shí),與其并行算出并判斷是否應(yīng)執(zhí)行該運(yùn)算的運(yùn)算判斷工序;和在進(jìn)行運(yùn)算控制使上述運(yùn)算處理工序執(zhí)行矢量運(yùn)算時(shí),根據(jù)上述運(yùn)算判斷工序的判斷結(jié)果,進(jìn)行運(yùn)算控制以便對(duì)成為上述運(yùn)算處理對(duì)象的數(shù)據(jù)執(zhí)行運(yùn)算將其結(jié)果輸出,或不執(zhí)行該數(shù)據(jù)運(yùn)算而輸出該數(shù)據(jù),可將帶條件運(yùn)算作為矢量運(yùn)算處理。
2.一種帶條件矢量運(yùn)算方法,其特征是具備有第1步驟、第2步驟和第3步驟的流水線處理該第1步驟具有通過(guò)發(fā)行矢量運(yùn)算指令開(kāi)始供給數(shù)據(jù)的源數(shù)據(jù)供給處理工序、和與其并行執(zhí)行,并通過(guò)上述源數(shù)據(jù)供給處理對(duì)由供給的數(shù)據(jù)之中規(guī)定的源所供給的數(shù)據(jù)依次保持其狀態(tài),作為狀態(tài)標(biāo)志輸出的狀態(tài)標(biāo)志保持處理工序;該第2步驟具有通過(guò)上述源數(shù)據(jù)供給處理工序使用所供給的數(shù)據(jù)輸出進(jìn)行運(yùn)算的運(yùn)算結(jié)果的運(yùn)算處理工序、和與其并行執(zhí)行,根據(jù)上述狀態(tài)標(biāo)志和上述矢量運(yùn)算指令進(jìn)行與發(fā)行條件的條件判斷,給控制處理工序提供條件成立或不成立信息的條件判斷處理工序;以及該第3步驟具有順序存儲(chǔ)由上述運(yùn)算處理工序產(chǎn)生的運(yùn)算結(jié)果的運(yùn)算結(jié)果存儲(chǔ)處理工序,通過(guò)執(zhí)行上述流水線處理,進(jìn)行用于執(zhí)行矢量運(yùn)算處理的控制,同時(shí)包括進(jìn)行控制的控制處理工序,以便上述條件判斷處理的輸出信息當(dāng)條件成立時(shí)執(zhí)行上述運(yùn)算處理,條件不成立時(shí)作為上述運(yùn)算處理的運(yùn)算結(jié)果,通過(guò)上述源數(shù)據(jù)供給處理工序?qū)⒂晒┙o的數(shù)據(jù)之中上述規(guī)定的源所供給的數(shù)據(jù)原封不動(dòng)地輸出。
3.一種帶條件矢量運(yùn)算裝置,其特征是具備執(zhí)行運(yùn)算處理的運(yùn)算裝置;在上述運(yùn)算裝置取得成為運(yùn)算處理對(duì)象的數(shù)據(jù)時(shí),應(yīng)該與其并行算出并判斷是否要執(zhí)行該運(yùn)算的運(yùn)算判斷裝置;進(jìn)行運(yùn)算控制以便上述運(yùn)算裝置執(zhí)行矢量運(yùn)算時(shí),根據(jù)上述運(yùn)算判斷裝置的判斷結(jié)果,進(jìn)行運(yùn)算控制以便對(duì)成為上述運(yùn)算處理對(duì)象的數(shù)據(jù)執(zhí)行運(yùn)算并將其結(jié)果輸出,或不執(zhí)行運(yùn)算而將該數(shù)據(jù)輸出的運(yùn)算控制裝置,可使帶條件運(yùn)算變成矢量運(yùn)算處理。
4.一種帶條件矢量運(yùn)算裝置,其特征是具備通過(guò)矢量運(yùn)算指令的發(fā)行開(kāi)始供給第1到第N源數(shù)據(jù)(N為2以上的整數(shù))的源數(shù)據(jù)供給裝置;暫時(shí)保存由上述源數(shù)據(jù)供給裝置所供給的第1到第N源數(shù)據(jù)的第1到第N寄存器;用上述第1到第N寄存器的輸出,進(jìn)行運(yùn)算的運(yùn)算裝置;暫時(shí)保存上述運(yùn)算裝置的輸出的運(yùn)算結(jié)果的流水線寄存器;順次存儲(chǔ)上述流水線寄存器的輸出的運(yùn)算結(jié)果存儲(chǔ)裝置;依次保持表示上述第1到第N之中規(guī)定的源數(shù)據(jù)性質(zhì)的狀態(tài)標(biāo)志信息的狀態(tài)標(biāo)志保持裝置;根據(jù)上述狀態(tài)標(biāo)志保持裝置的輸出和上述矢量運(yùn)算指令,由指定的條件信息,輸出表示上述矢量運(yùn)算指令的條件成立或不成立的信息的條件判斷裝置;通過(guò)把上述源數(shù)據(jù)供給裝置供給源數(shù)據(jù)并存入上述第1到第N寄存器,同時(shí)與其并行將直到上述狀態(tài)標(biāo)志保持裝置保持并輸出狀態(tài)標(biāo)志信息為止作為第1步驟、上述運(yùn)算裝置將對(duì)上述第1到第N寄存器的輸出的運(yùn)算處理結(jié)果輸出到上述流水線寄存器,同時(shí)與其并行將直到上述條件判斷裝置輸出表示上述矢量運(yùn)算指令的條件成立還是不成立的信息為止作為第2步驟、及直到將上述流水線寄存器的輸出存入上述運(yùn)算結(jié)果存儲(chǔ)裝置為止作為第3步驟的流水線處理,生成用于執(zhí)行上述矢量運(yùn)算指令的控制信號(hào),同時(shí)生成接收上述條件判斷裝置的信息,當(dāng)條件不成立時(shí)作為上述運(yùn)算裝置的輸出,將上述第1到第N寄存器中規(guī)定的源數(shù)據(jù)的值原封不動(dòng)地輸出,而當(dāng)條件成立時(shí)選擇由上述運(yùn)算裝置獲得的運(yùn)算結(jié)果并輸出的那種模式選擇信號(hào)的控制裝置。
全文摘要
判斷從存儲(chǔ)器101來(lái)的第1源數(shù)據(jù)是不是要用狀態(tài)標(biāo)志檢測(cè)裝置150進(jìn)行運(yùn)算的數(shù)據(jù),作為狀態(tài)標(biāo)志保持其判斷結(jié)果,用條件判斷裝置109判斷其狀態(tài)標(biāo)志要進(jìn)行運(yùn)算的條件是否成立。根據(jù)該條件成立/不成立信息,控制裝置110控制ALU100是否要進(jìn)行運(yùn)算。
文檔編號(hào)G06F17/16GK1330787SQ99814590
公開(kāi)日2002年1月9日 申請(qǐng)日期1999年12月15日 優(yōu)先權(quán)日1998年12月16日
發(fā)明者濱田真納, 九郎丸俊一, 米澤友紀(jì), 中村剛 申請(qǐng)人:松下電器產(chǎn)業(yè)株式會(huì)社