本文所揭示的方面大體上涉及指令的結(jié)果的扇出,且更確切地說,涉及顯式數(shù)據(jù)圖形執(zhí)行(edge)指令集架構(gòu)的指令的結(jié)果的扇出。
背景技術(shù):
計算機程序表示作為指令序列的算法。序列的次序稱為程序次序。通常,在編程器可理解的源代碼中表示的計算機程序中的指令通過編譯器重組成由處理單元可執(zhí)行的機器代碼。隨著消費者為越來越多的應(yīng)用程序提供了市場,電子工業(yè)一直尋求提高處理單元的速度。
同時執(zhí)行多個指令(即,并行處理)的能力是提高處理單元的速度的一個方法。在并行處理中,處理單元包含多個執(zhí)行單元。在一個方法中,響應(yīng)于指令所需的所有操作數(shù)已通過執(zhí)行單元接收,通過所述執(zhí)行單元執(zhí)行指令。因為使用此方法,可在通過第二執(zhí)行單元執(zhí)行第二指令之前通過第一執(zhí)行單元執(zhí)行第一指令,即使第一指令在程序次序中的位置晚于第二指令,所以此處理單元可稱為亂序(ooo)處理單元。
然而,因為計算機程序通常包含第一指令(即,生產(chǎn)指令)的結(jié)果是第二指令(即,消費指令)的操作數(shù)的情況,所以ooo處理單元的實施方案需要考慮消費指令的操作數(shù)取決于生產(chǎn)指令的情況。當(dāng)消費指令等待生產(chǎn)指令使其結(jié)果可用于消費指令時出現(xiàn)的延遲(即,時延)可逐漸損壞并行處理的優(yōu)點。
解決時延問題的一個策略是具有經(jīng)配置以包含生產(chǎn)指令結(jié)果的目標(biāo)的標(biāo)識的生產(chǎn)指令及具有經(jīng)配置使得保留站的列陣中用于消費指令的操作數(shù)的記錄位置的標(biāo)識可為生產(chǎn)指令結(jié)果的目標(biāo)的標(biāo)識的微架構(gòu)。以此方式,響應(yīng)于用于生產(chǎn)指令的執(zhí)行單元生產(chǎn)生產(chǎn)指令的結(jié)果,用于消費指令的執(zhí)行單元可直接接收生產(chǎn)指令的結(jié)果作為操作數(shù)。顯式數(shù)據(jù)圖形執(zhí)行(edge)指令集架構(gòu)是經(jīng)設(shè)計以實施此并行處理方法的一組機器代碼指令。
技術(shù)實現(xiàn)要素:
示例性方面可涉及用于扇出第一指令的結(jié)果的設(shè)備。設(shè)備可包含存儲器單元及電路。存儲器單元可包含第一集合、第二集合、第三集合及第四集合。第一集合可經(jīng)配置以存儲第一指令的結(jié)果。第二集合可經(jīng)配置以存儲第二指令的操作代碼(即,操作碼)。第三集合可經(jīng)配置以存儲第二指令的信息。第四集合可經(jīng)配置以存儲第二指令的操作數(shù)。電路可經(jīng)配置以將第四集合連接到執(zhí)行單元,并且經(jīng)配置以響應(yīng)于第三集合中存在所述信息而使所述執(zhí)行單元經(jīng)配置以接收第一集合的內(nèi)容作為第二指令的操作數(shù)。第一集合、第二集合、第三集合及第四集合可不相交。第二指令的格式可包含指定用于操作代碼的位的集合及指定用于信息的位的集合。
另一示例性方面可涉及用于扇出第一指令的結(jié)果的另一設(shè)備。其它設(shè)備可包含:用于存儲第一指令的結(jié)果的裝置;用于存儲第二指令的操作代碼的裝置;用于存儲第二指令的信息的裝置;用于存儲第二指令的操作數(shù)的裝置;及用于響應(yīng)于在用于存儲所述信息的所述裝置中存在所述信息而使用于執(zhí)行所述第二指令的裝置經(jīng)配置以接收用于存儲所述結(jié)果的所述裝置的內(nèi)容作為所述第二指令的操作數(shù)的裝置。用于存儲結(jié)果的裝置、用于存儲操作代碼的裝置、用于存儲信息的裝置及用于存儲操作數(shù)的裝置可不相交。第二指令的格式可包含指定用于操作代碼的位的集合及指定用于信息的位的集合。
又另一示例性方面可涉及用于扇出第一指令的結(jié)果的方法。第一指令的結(jié)果可存儲在存儲器單元的第一集合中。第二指令的操作代碼可存儲在存儲器單元的第二集合中。第二指令的信息可存儲在存儲器單元的第三集合中??商峁┐鎯ζ鲉卧牡谒募稀4鎯ζ鲉卧牡谒募峡山?jīng)配置以存儲第二指令的操作數(shù)??身憫?yīng)于第三集合中存在所述信息而使執(zhí)行單元經(jīng)配置以接收第一集合的內(nèi)容作為第二指令的操作數(shù)。存儲器單元的第一集合、存儲器單元的第二集合、存儲器單元的第三集合及存儲器單元的第四集合可不相交。第二指令的格式可包含指定用于操作代碼的位的集合及指定用于信息的位的集合。
又另一示例性方面可涉及計算機處理器核心。計算機處理器核心可包含陣列及電路。陣列可具有保留站。保留站可具有記錄。所述記錄可具有存儲器單元的第一集合及存儲器單元的第二集合。存儲器單元的第一集合可經(jīng)配置以存儲指令的操作代碼。存儲器單元的第二集合可經(jīng)配置以存儲指令的信息。存儲器單元的第二集合及存儲器單元的第一集合可不相交。指令的格式可包含指定用于操作代碼的位的集合及指定用于信息的位的集合。指令可具有指令塊。指令塊可根據(jù)基于塊的指令集架構(gòu)進(jìn)行配置。電路可經(jīng)配置以確定存儲器單元的第二集合中存在所述信息。電路可經(jīng)配置以響應(yīng)于所述確定而選擇指令的操作數(shù)的源。電路可經(jīng)配置以執(zhí)行作為單元的指令塊。
附圖說明
在詳細(xì)描述、所附權(quán)利要求書及附圖中描述這些及其它樣本方面。
圖1是說明其中可操作基于塊的計算機處理單元的系統(tǒng)的實例的框圖。
圖2是說明基于塊的計算機處理器核心的實例的框圖。
圖3是說明用于扇出指令的結(jié)果的設(shè)備的實例的框圖。
圖4是說明圖3中所說明的設(shè)備的環(huán)境的實例的框圖。
圖5至16是說明圖3中所說明的設(shè)備的變化的實例的框圖。
圖17及18是說明可通過圖3至16中所說明的設(shè)備執(zhí)行的指令的格式的實例的圖式。
圖19至23是說明與用于描述系統(tǒng)的操作的實例情形相關(guān)聯(lián)的一些存儲器單元及開關(guān)的狀態(tài)的圖式,所述系統(tǒng)包含圖16中所說明的設(shè)備的方面。
圖24是說明用于扇出指令的結(jié)果的方法的實例的流程圖。
根據(jù)慣例,圖式中所說明的各種特征可能并非按比例繪制。因此,為了清晰起見,可任意擴大或減小各種特征的尺寸。另外,為了清楚起見,可簡化圖式中所說明的實施方案。因此,圖式可能并未說明給定設(shè)備或裝置的全部組件。最后,可貫穿說明書及圖式使用相同參考標(biāo)號來表示相同特征。
具體實施方式
本文所揭示的方面大體上涉及指令的結(jié)果的扇出,且更確切地說,涉及顯式數(shù)據(jù)圖形執(zhí)行(edge)指令集架構(gòu)的指令的結(jié)果的扇出。
在edge指令集架構(gòu)中,計算機程序中的指令可被分配到還可稱為塊的群組。edge指令集架構(gòu)可經(jīng)配置以通過根據(jù)基于塊的微架構(gòu)配置的亂序(ooo)計算機處理單元操作。在基于塊的微架構(gòu)中,計算機處理單元的計算機處理器核心可經(jīng)配置以執(zhí)行作為單元的指令塊。edge指令集架構(gòu)可為基于塊的指令集架構(gòu)的實例。
基于塊的計算機處理器核心可包含多個執(zhí)行單元。響應(yīng)于指令所需的所有操作數(shù)已通過執(zhí)行單元接收,可通過所述執(zhí)行單元執(zhí)行指令塊的指令。在可通過第二執(zhí)行單元執(zhí)行第二指令之前可通過第一執(zhí)行單元執(zhí)行第一指令是可能的,即使第一指令在程序次序中的位置晚于第二指令。
然而,一般來說,基于塊的計算機處理單元可經(jīng)配置,使得在第一指令塊在程序次序中的位置早于第二指令塊的情況下,在第二指令塊的指令開始執(zhí)行之前第一指令塊的指令開始執(zhí)行。
指令塊中的指令數(shù)可處于一至最大數(shù)目(包含地)的范圍內(nèi)??上鄬τ谟嬎銠C處理器核心的微架構(gòu)界定最大數(shù)目。舉例來說,最大數(shù)目可等于計算機處理器核心的保留站的陣列中的保留站數(shù)目。舉例來說,但非限制性地,如果計算機處理器核心的保留站的陣列具有32個保留站,那么指令塊中的指令數(shù)目可限制于最大數(shù)目32。
一般來說,編譯器可經(jīng)配置以根據(jù)指令的程序次序?qū)⒅噶罘峙涞街噶顗K。然而,編譯器還可經(jīng)配置以識別或預(yù)測指令之間的依賴性并且優(yōu)選地將指令分配到指令塊,使得相依指令被分配到相同指令塊。
指令塊可包含塊標(biāo)頭。塊標(biāo)頭可至少用于識別一個指令塊的指令及區(qū)分此指令塊與其它指令塊。在一個方面中,塊標(biāo)頭可包含用于識別指令塊中的多個指令的信息。
通常,計算機程序可包含源代碼中的指令序列,其中第一指令(即,原因指令)經(jīng)配置以確定條件的有效性,并且第二指令(即,有效指令)經(jīng)配置以基于原因指令(例如,分支指令(例如,如果x正確,那么y))的結(jié)果執(zhí)行。此外,有時可存在配置的有效指令的兩個集合,使得有效指令的第一集合(即,有效條件指令)經(jīng)配置以在原因指令的結(jié)果指示條件有效的情況下執(zhí)行,并且有效指令的第二集合(即,無效條件指令)經(jīng)配置以在原因指令的結(jié)果指示條件無效的情況下執(zhí)行(例如,如果x正確,那么y,否則z)。
然而,在基于塊的計算機處理器核心中,可在執(zhí)行原因指令之前(即,在已確定條件的有效性之前)執(zhí)行至少一個有效指令。
因為原因指令及有效指令兩者可被分配到相同指令塊,所以可配置基于塊的計算機處理器核心,使得給定指令塊的指令的結(jié)果是推測性結(jié)果,直到基于塊的計算機處理器核心確定哪些推測性結(jié)果是可靠結(jié)果。推測性結(jié)果可存儲在緩沖存儲器中。使基于塊的計算機處理器核心確定給定指令塊的哪些推測性結(jié)果是可靠結(jié)果的過程可稱為使指令塊提交可靠結(jié)果。
舉例來說,如果在執(zhí)行原因指令之前(即,在已確定條件的有效性之前)執(zhí)行有效條件指令、無效條件指令或兩者中的至少一者,這些有效指令的推測性結(jié)果可存儲在緩沖存儲器中。在原因指令執(zhí)行以確定條件的有效性之后,基于塊的計算機處理器核心可確定哪些推測性結(jié)果是可靠結(jié)果。舉例來說,如果原因指令的結(jié)果指示條件有效,那么基于塊的計算機處理器核心可提交有效條件指令的結(jié)果;如果原因指令的結(jié)果指示條件無效,那么基于塊的計算機處理器核心可提交無效條件指令的結(jié)果。
在一個方面中,基于塊的計算機處理器核心可經(jīng)配置以響應(yīng)于指令塊的指令的執(zhí)行處于特定狀態(tài)而使指令塊提交。在一個方面中,指令塊可響應(yīng)于以下各項中的至少一者的完成而提交:(1)指令塊中將信息寫入架構(gòu)寄存器的指令;(2)指令塊中將信息存儲在存儲器中的指令,或(3)指令塊中分叉到另一指令塊的指令。在一個方面中,塊標(biāo)頭可包含用于識別哪個架構(gòu)寄存器是指令塊的寫入指令的目標(biāo)的信息。在一個方面中,塊標(biāo)頭可包含用于識別指令塊中的哪些指令將信息存儲在存儲器中的信息。在一個方面中,塊標(biāo)頭可包含用于根據(jù)程序次序識別指令塊中將信息存儲在存儲器中的指令的次序的信息。
如上所述,可配置基于塊的計算機處理器核心,使得在執(zhí)行原因指令之前執(zhí)行至少一個有效指令。另外,可配置基于塊的架構(gòu),使得原因指令的結(jié)果可為有效指令的操作數(shù)。換句話說,原因指令可為生產(chǎn)指令并且有效指令可為消費指令。在這種情況下,此操作數(shù)可稱為謂詞。因為可配置基于塊的架構(gòu),使得直到指令所需的所有操作數(shù)已通過執(zhí)行單元接收才通過執(zhí)行單元執(zhí)行指令,所以使原因指令的結(jié)果作為有效指令的操作數(shù)可有利地防止基于塊的計算機處理器核心不必要地執(zhí)行有效指令。防止基于塊的計算機處理器核心不必要地執(zhí)行有效指令可有利地減少基于塊的計算機處理器核心所消耗的電量。
舉例來說,可配置基于塊的架構(gòu),使得如果原因指令的結(jié)果指示條件有效,那么此結(jié)果可為有效條件指令的謂詞操作數(shù),使得有效條件指令的執(zhí)行單元可經(jīng)配置以執(zhí)行有效條件指令;然而,此結(jié)果將不是無效條件指令的謂詞操作數(shù),使得可防止無效條件指令的執(zhí)行單元不必要地執(zhí)行無效條件指令。同樣,舉例來說,如果原因指令的結(jié)果指示條件無效,那么此結(jié)果可為無效條件指令的謂詞操作數(shù),使得無效條件指令的執(zhí)行單元可經(jīng)配置以執(zhí)行有效條件指令;然而,此結(jié)果將不是有效條件指令的謂詞操作數(shù),使得可防止有效條件指令的執(zhí)行單元不必要地執(zhí)行有效條件指令。
如上所述,原因指令及有效指令兩者可被分配到相同指令塊。另外,原因指令及有效指令中的至少一者可被分配到不同指令塊。因為原因指令及有效指令中的至少一者可被分配到不同指令塊,所以基于塊的計算機處理器核心可經(jīng)配置以包含塊預(yù)測器。塊預(yù)測器可經(jīng)配置以預(yù)測計算機程序中包含的指令塊之中的哪個指令塊包含可能基于當(dāng)前指令塊中包含的原因指令的結(jié)果而執(zhí)行的有效指令中的至少一者。在一個方面中,塊預(yù)測器可使用當(dāng)前指令塊的塊標(biāo)頭中的信息來預(yù)測計算機程序中包含的指令塊之中的哪個指令塊包含可能基于當(dāng)前指令塊中包含的原因指令的結(jié)果而執(zhí)行的有效指令中的至少一者。在一個方面中,可在已提取當(dāng)前指令塊的塊標(biāo)頭之后,但在當(dāng)前指令塊的指令開始執(zhí)行之前作出此預(yù)測。在一個方面中,由于此預(yù)測,在當(dāng)前指令塊的指令開始執(zhí)行之后,但在當(dāng)前指令塊的指令完成執(zhí)行之前,可提取指令塊的塊標(biāo)頭,所述指令塊包含可能基于原因指令的結(jié)果而執(zhí)行的有效指令中的所預(yù)測至少一者。在一個方面中,由于此預(yù)測,在當(dāng)前指令塊的指令開始執(zhí)行之后,但在當(dāng)前指令塊的指令完成執(zhí)行之前,包含可能基于原因指令的結(jié)果而執(zhí)行的有效指令中的所預(yù)測至少一者的指令塊的指令可開始執(zhí)行。
在一個方面中,塊預(yù)測器可經(jīng)配置以通過與常規(guī)ooo計算機處理單元中的分支預(yù)測器類似的方式預(yù)測執(zhí)行路徑。在一個方面中,基于塊的計算機處理單元的編譯器可經(jīng)配置以執(zhí)行數(shù)據(jù)流測試指令以將分支化指令轉(zhuǎn)換成謂詞的有向非循環(huán)圖(dag)。在一個方面中,塊預(yù)測器可經(jīng)配置以將預(yù)測存儲在預(yù)測表中并且跨越基于塊的計算機處理器核心分配這些預(yù)測表的至少部分。在一個方面中,塊預(yù)測器可經(jīng)配置以產(chǎn)生關(guān)于預(yù)測的可信度的信息。在一個方面中,塊預(yù)測器可經(jīng)配置以在基于通過謂詞確定的執(zhí)行路徑、先前執(zhí)行的指令塊的歷史或兩者而執(zhí)行當(dāng)前指令塊之后預(yù)測待執(zhí)行的下一指令塊。
圖1是說明其中可操作基于塊的計算機處理單元102的系統(tǒng)100的實例的框圖。系統(tǒng)100可包含(舉例來說,但非限制性地)至少一個基于塊的計算機處理單元102、系統(tǒng)總線104、至少一個存儲器系統(tǒng)106、至少一個網(wǎng)絡(luò)接口模塊108、至少一個輸入模塊110及至少一個輸出模塊112。
至少一個基于塊的計算機處理單元102可包含至少一個基于塊的計算機處理器核心114、二級(l2)緩存116,及任選地,核心互連網(wǎng)絡(luò)118。舉例來說,但非限制性地,圖1中說明八個基于塊的計算機處理器核心114-a、114-b、114-c、114-d、114-e、114-f、114-g及114-h。至少一個基于塊的計算機處理器核心114可經(jīng)配置以接入二級緩存116以接收待執(zhí)行的至少一個指令塊,存儲至少一個指令塊的執(zhí)行的結(jié)果或兩者。
在其中基于塊的計算機處理單元102包含多個基于塊的計算機處理器核心114的方面中,核心互連網(wǎng)絡(luò)118可用于促進(jìn)基于塊的計算機處理器核心114之間的通信。舉例來說,基于塊的計算機處理單元102可經(jīng)配置以經(jīng)由核心互連網(wǎng)絡(luò)118使至少一個基于塊的計算機處理器核心114經(jīng)配置以獨立地操作,經(jīng)配置以結(jié)合至少一個基于塊的計算機處理器核心114中的至少另一者操作,或前述內(nèi)容的組合。當(dāng)基于塊的計算機處理單元102經(jīng)配置以使至少一個基于塊的計算機處理器核心114結(jié)合至少一個基于塊的計算機處理器核心114中的至少另一者操作時,此配置可稱為核心合成或核心融合。
舉例來說,為了以并行方式在例如可通過圖形處理單元(gpu)或數(shù)字信號處理器(dsp)完成的多線程部分上執(zhí)行應(yīng)用程序,基于塊的計算機處理單元102可配置一個基于塊的計算機處理器核心114以在多線程部分中的一者上獨立地操作及至少另一個基于塊的計算機處理器核心114以在多線程部分中的至少另一者上操作。舉例來說,為了在例如可通過中央處理單元(cpu)完成的單一線程上有效地執(zhí)行應(yīng)用程序,基于塊的計算機處理單元102可配置一個基于塊的計算機處理器核心114以結(jié)合至少另一個基于塊的計算機處理器核心114操作。舉例來說,但非限制性地,圖1說明一種配置,其中:(1)基于塊的計算機處理器核心114-a、114-b、114-e及114-f中的每一者經(jīng)配置以與計算機處理器核心114-a、114-b、114-e及114-f彼此結(jié)合操作作為第一核心合成120;(2)基于塊的計算機處理器核心114-c經(jīng)配置以結(jié)合基于塊的計算機處理器核心114-d操作作為第二核心合成122;(3)基于塊的計算機處理器核心114-g經(jīng)配置以獨立地操作;及(4)基于塊的計算機處理器核心114-h經(jīng)配置以獨立地操作。第一核心合成120可經(jīng)配置以執(zhí)行第一應(yīng)用程序。第二核心合成122可經(jīng)配置以執(zhí)行第二應(yīng)用程序?;趬K的計算機處理器核心114-g可經(jīng)配置以執(zhí)行第三應(yīng)用程序的第一線程,并且基于塊的計算機處理器核心114-h可經(jīng)配置以執(zhí)行第三應(yīng)用程序的第三線程?;蛘撸趬K的計算機處理器核心114-g可經(jīng)配置以執(zhí)行第三應(yīng)用程序,并且基于塊的計算機處理器核心114-h可經(jīng)配置以執(zhí)行第四應(yīng)用程序。
至少一個基于塊的計算機處理單元102可耦合到系統(tǒng)總線104,并且經(jīng)由系統(tǒng)總線104通過交換地址、控制及數(shù)據(jù)信息與系統(tǒng)100的其它裝置通信。
至少一個存儲器系統(tǒng)106可包含至少一個存儲器控制器124及至少一個存儲器單元126。存儲器系統(tǒng)106可耦合到系統(tǒng)總線104。至少一個存儲器單元126可包含(舉例來說,但非限制性地)隨機存取存儲器(ram)單元。
至少一個網(wǎng)絡(luò)接口模塊108可包含經(jīng)配置以促進(jìn)至及從網(wǎng)絡(luò)128的數(shù)據(jù)的交換的硬件、軟件或兩者的組合。至少一個網(wǎng)絡(luò)接口模塊108可經(jīng)配置支持至少一個通信協(xié)議。至少一個網(wǎng)絡(luò)接口模塊108可耦合到系統(tǒng)總線104。網(wǎng)絡(luò)128可為任何類型的網(wǎng)絡(luò),包含但不限于,有線或無線網(wǎng)絡(luò)、公共或?qū)S镁W(wǎng)絡(luò)、個域網(wǎng)(pan)、局域網(wǎng)(lan)、廣局域網(wǎng)(wlan)、及因特網(wǎng)。
至少一個輸入模塊110可包含(舉例來說,但非限制性地)用戶接口、圖形用戶接口、鍵盤、指向裝置(例如,鼠標(biāo))、觸控板、觸摸屏、開關(guān)、按鈕、語音處理器、其類似者,或前述內(nèi)容的任何組合。至少一個輸入模塊110可耦合到系統(tǒng)總線104。
至少一個輸出模塊112可包含(舉例來說,但非限制性地)打印機、顯示器、音頻輸出裝置、圖形輸出裝置、視頻輸出裝置、另一視覺指示器、其類似者,或前述內(nèi)容的任何組合。至少一個輸出模塊112可耦合到系統(tǒng)總線104。在一個方面中,至少一個輸出模塊112可包含至少一個顯示器130。至少一個顯示器130可包含但不限于,陰極射線管、液晶顯示器、等離子顯示器、發(fā)光二極管顯示器、有機發(fā)光二極管顯示器、其類似者,或前述內(nèi)容的任何組合。系統(tǒng)100可進(jìn)一步包含經(jīng)配置以經(jīng)由系統(tǒng)總線104從至少一個基于塊的計算機處理單元102接收控制信息的至少一個顯示控制器132。至少一個顯示控制器132可經(jīng)配置以經(jīng)由至少一個視頻處理器134將信息發(fā)送到至少一個顯示器130。至少一個視頻處理器134可經(jīng)配置以從至少一個顯示控制器132接收信息,處理信息使得所述信息具有與至少一個顯示器130兼容的形式,及將經(jīng)處理信息發(fā)送到至少一個顯示器130。
系統(tǒng)100可并入(舉例來說,但非限制性地)到機頂盒、娛樂單元、導(dǎo)航裝置、通信裝置、固定位置數(shù)據(jù)單元、移動位置數(shù)據(jù)單元、移動電話、蜂窩電話、智能手機、計算機、桌上型計算機、便攜式計算機、膝上型計算機、平板計算機、個人數(shù)字助理(pda)、監(jiān)視器、計算機監(jiān)視器電視機、調(diào)諧器、無線電、衛(wèi)星無線電、音樂播放器、數(shù)字音樂播放器、便攜式音樂播放器、視頻播放器、數(shù)字視頻播放器、便攜式數(shù)字視頻播放器、數(shù)字視頻光盤(dvd)播放器、其類似者,或前述內(nèi)容的任何組合中。
圖2是說明基于塊的計算機處理器核心114的實例的框圖。基于塊的計算機處理器核心114可經(jīng)配置以耦合到二級緩存116。基于塊的計算機處理器核心114可經(jīng)配置以接入二級緩存116以接收待執(zhí)行的至少一個指令塊,存儲至少一個指令塊的執(zhí)行的結(jié)果或兩者。任選地,基于塊的計算機處理器核心114可經(jīng)配置以耦合到核心互連網(wǎng)絡(luò)118。在其中基于塊的計算機處理單元102包含多個基于塊的計算機處理器核心114的方面中,核心互連網(wǎng)絡(luò)118可用于促進(jìn)基于塊的計算機處理器核心114之間的通信。
基于塊的計算機處理器核心114可包含若干已知數(shù)字邏輯元件、半導(dǎo)體電路、處理核心、其它元件、其類似者,或其任何組合中的任一者。本文中所描述的各方面并不限于任何特定元件布置,且所揭示技術(shù)可在半導(dǎo)體裸片或封裝上以不同結(jié)構(gòu)或布局實現(xiàn)。
基于塊的計算機處理器核心114可包含(舉例來說,但非限制性地)一級(l1)指令緩存202、塊預(yù)測器204、塊定序器206、至少一個指令解碼級208、指令處理電路210、至少一個執(zhí)行單元212、加載/存儲單元214、一級(l1)數(shù)據(jù)緩存216,及物理寄存器組218。舉例來說,但非限制性地,指令處理電路210可包含指令緩沖器220及指令調(diào)度器222。在其中基于塊的計算機處理單元102包含多個基于塊的計算機處理器核心114的方面中,基于塊的計算機處理器核心114可包含核心合成接口224。舉例來說,但非限制性地,核心合成接口224可包含在物理寄存器組218中。
l1指令緩存202可經(jīng)配置以從l2緩存116接收指令塊226。l1指令緩存202可經(jīng)配置以將信息傳輸?shù)絣2緩存116。l1指令緩存202可經(jīng)配置以存儲指令塊226。l1指令緩存202可經(jīng)配置以將關(guān)于指令塊226的信息傳輸?shù)綁K定序器206。l1指令緩存202可經(jīng)配置以將指令塊226傳輸?shù)街辽僖粋€指令解碼級208。舉例來說,l1指令緩存202可經(jīng)配置以從l2緩存116接收指令塊226-a至226-n。
塊預(yù)測器204可經(jīng)配置以在執(zhí)行當(dāng)前指令塊226之后預(yù)測待執(zhí)行的下一指令塊226。在一個方面中,塊預(yù)測器204可經(jīng)配置以通過與常規(guī)ooo計算機處理單元中的分支預(yù)測器類似的方式預(yù)測執(zhí)行路徑。在一個方面中,塊預(yù)測器204可經(jīng)配置以在基于由通過執(zhí)行數(shù)據(jù)流測試指令以將分支化指令轉(zhuǎn)換成有向非循環(huán)圖(dag)所產(chǎn)生的謂詞確定的執(zhí)行路徑、先前執(zhí)行的指令塊226的歷史或兩者而執(zhí)行當(dāng)前指令塊226之后預(yù)測待執(zhí)行的下一指令塊226。塊預(yù)測器204可經(jīng)配置以從塊定序器206接收關(guān)于指令塊226的信息。塊預(yù)測器204可經(jīng)配置以將關(guān)于預(yù)測的信息傳輸?shù)綁K定序器206。
塊定序器206可經(jīng)配置以從l1指令緩存202接收關(guān)于指令塊226的信息及從塊預(yù)測器204接收關(guān)于預(yù)測的信息。塊定序器206可經(jīng)配置以確定指令塊226的次序。在其中基于塊的計算機處理單元102包含多個基于塊的計算機處理器核心114的方面中,塊定序器206可經(jīng)配置以與核心合成接口224交換信息。
至少一個指令解碼級208可經(jīng)配置以從l1指令緩存202接收指令塊226。至少一個指令解碼級208可經(jīng)配置以對指令塊226中的指令進(jìn)行解碼。舉例來說,至少一個指令解碼級208可經(jīng)配置以對指令塊226-a至226-n中的指令進(jìn)行解碼。至少一個指令解碼級208可經(jīng)配置以將指令塊226中的指令傳輸?shù)街噶钐幚黼娐?10。
指令處理電路210的指令緩沖器220可經(jīng)配置以從至少一個解碼級208接收指令塊226。指令緩沖器220可經(jīng)配置以在預(yù)期執(zhí)行指令塊226中的指令時存儲所述指令。
指令處理電路210的指令調(diào)度器222可經(jīng)配置以將已開始執(zhí)行指令的過程的指令塊226中的指令傳輸?shù)街辽僖粋€執(zhí)行單元212。可同時由單個基于塊的計算機處理器核心114執(zhí)行的指令塊226的數(shù)目可處于(包含地)一至最大數(shù)目的范圍內(nèi)。可相對于計算機處理器核心114的微架構(gòu)界定最大數(shù)目。舉例來說,可同時執(zhí)行的指令塊226的最大數(shù)目可等于計算機處理器核心114的保留站402的陣列(參看圖4)的數(shù)目。舉例來說,但非限制性地,如果計算機處理器核心114具有四個保留站陣列,那么可同時執(zhí)行的指令塊226的最大數(shù)目可限制于四個指令塊226。舉例來說,但非限制性地,如果可同時執(zhí)行的指令塊226的最大數(shù)目限制于四個指令塊,那么可同時執(zhí)行指令塊226-a、226-b、226-c(未說明)及226-d(未說明)。
至少一個執(zhí)行單元212的執(zhí)行單元212可經(jīng)配置以從指令調(diào)度器222接收指令。執(zhí)行單元212可經(jīng)配置以從以下各項中的至少一者接收操作數(shù):(1)經(jīng)由指令調(diào)度器222的另一指令的結(jié)果,(2)物理寄存器組218中的寄存器,或(3)經(jīng)由加載/存儲單元214的至少一個存儲器單元126。執(zhí)行單元212可經(jīng)配置以響應(yīng)于指令所需的所有操作數(shù)已通過執(zhí)行單元212接收而執(zhí)行從指令調(diào)度器222接收的指令。執(zhí)行單元212可經(jīng)配置以將指令的結(jié)果傳輸?shù)揭韵赂黜椫械闹辽僖徽撸?1)經(jīng)由指令調(diào)度器222的另一指令,(2)物理寄存器組218中的寄存器,或(3)經(jīng)由加載/存儲單元214的至少一個存儲器單元126。舉例來說,但非限制性地,執(zhí)行單元212可包含算術(shù)邏輯單元(alu)或浮點單元(fpu)中的至少一者。
加載/存儲單元214可經(jīng)配置以從至少一個執(zhí)行單元212接收數(shù)據(jù)。加載/存儲單元214可經(jīng)配置以經(jīng)由l2緩存116及l(fā)1數(shù)據(jù)緩存216從至少一個存儲器單元126接收數(shù)據(jù)。加載/存儲單元214可經(jīng)配置以將數(shù)據(jù)傳輸?shù)街辽僖粋€執(zhí)行單元212。加載/存儲單元214可經(jīng)配置以經(jīng)由l1數(shù)據(jù)緩存216及l(fā)2緩存116將數(shù)據(jù)傳輸?shù)街辽僖粋€存儲器單元126。
l1數(shù)據(jù)緩存216可經(jīng)配置以從加載/存儲單元214接收數(shù)據(jù)。l1數(shù)據(jù)緩存216可經(jīng)配置以從l2緩存116接收數(shù)據(jù)。l1數(shù)據(jù)緩存216可經(jīng)配置以存儲數(shù)據(jù)。l1數(shù)據(jù)緩存216可經(jīng)配置以將數(shù)據(jù)傳輸?shù)郊虞d/存儲單元214。l1數(shù)據(jù)緩存216可經(jīng)配置以將數(shù)據(jù)傳輸?shù)絣2緩存116。
物理寄存器組218可經(jīng)配置以從至少一個執(zhí)行單元212接收數(shù)據(jù)。物理寄存器組218可經(jīng)配置以存儲數(shù)據(jù)。物理寄存器組218可經(jīng)配置以將數(shù)據(jù)傳輸?shù)街辽僖粋€執(zhí)行單元212。舉例來說,但非限制性地,物理寄存器組218可包含隨機存取存儲器(ram)單元,例如,可具有至少一個專用讀取端口及至少一個專用寫入端口的快速靜態(tài)ram。
在其中基于塊的計算機處理單元102包含多個基于塊的計算機處理器核心114的方面中,核心合成接口224可經(jīng)配置以與塊定序器交換信息并且與核心互連網(wǎng)絡(luò)118交換信息以促進(jìn)基于塊的計算機處理器核心114之間的通信。
如上所述,生產(chǎn)指令的結(jié)果可為消費指令的操作數(shù),并且生產(chǎn)指令可經(jīng)配置以包含保留站的陣列中用于消費指令的操作數(shù)的記錄位置的標(biāo)識作為生產(chǎn)指令的結(jié)果的目標(biāo)的標(biāo)識。然而,單個生產(chǎn)指令的結(jié)果通??蔀槎鄠€消費指令的操作數(shù)。這可稱為生產(chǎn)指令的結(jié)果的扇出。因此,可需要經(jīng)配置以識別生產(chǎn)指令的結(jié)果的多于一個目標(biāo)的基于塊的微架構(gòu)。
在用于解決此需求的一個方法中,生產(chǎn)指令可經(jīng)配置以包含保留站的陣列中用于多于一個消費指令的操作數(shù)的保留站位置的標(biāo)識作為生產(chǎn)指令的結(jié)果的多于一個目標(biāo)的標(biāo)識。然而,此方法可消耗大量區(qū)域來獲得存儲生產(chǎn)指令的結(jié)果的多于一個目標(biāo)的標(biāo)識所需的額外存儲器單元。此外,此方法可僅提供受限程度的改進(jìn)。舉例來說,在生產(chǎn)指令的結(jié)果是多于兩個消費指令的操作數(shù)的情況下,其中每個記錄包含足以存儲生產(chǎn)指令的結(jié)果的兩個目標(biāo)的標(biāo)識的多個存儲器單元的保留站陣列可僅提供受限程度的改進(jìn)。
此問題可通過提供以下項解決:(1)存儲器單元的具體集合,使得存儲器單元的所述具體集合的位置的標(biāo)識可在生產(chǎn)指令中識別為生產(chǎn)指令的結(jié)果的目標(biāo);及(2)在指令的每一者中指定用于存儲信息的位的集合,使得信息在指令中的任一者中的存在可使對應(yīng)執(zhí)行單元接收存儲器單元的具體集合的內(nèi)容作為所述指令的操作數(shù)。以此方式,生產(chǎn)指令的結(jié)果可存儲在存儲器單元的具體集合中,并且每個消費指令可經(jīng)配置以包含信息以使對應(yīng)執(zhí)行單元接收存儲器單元的所述具體集合的內(nèi)容作為所述指令的操作數(shù)。
圖3是說明用于扇出指令的結(jié)果的設(shè)備300的實例的框圖。設(shè)備300可包含存儲器單元及第一電路302。存儲器單元可包含第一集合304、第二集合306、第三集合308及第四集合310。第一集合304可經(jīng)配置以存儲第一指令的結(jié)果。第一指令可為生產(chǎn)指令。第二集合306可經(jīng)配置以存儲第二指令的操作代碼(即,操作碼)。第二指令可為消費指令。第三集合308可經(jīng)配置以存儲第二指令的信息。第四集合310可經(jīng)配置以存儲第二指令的操作數(shù)。第一電路302可經(jīng)配置以將第四集合310連接到執(zhí)行單元312并且經(jīng)配置以響應(yīng)于第三集合308中存在所述信息而使執(zhí)行單元312經(jīng)配置以接收第一集合304的內(nèi)容作為第二指令的操作數(shù)。執(zhí)行單元312可為至少一個執(zhí)行單元212中的一者(參看圖2)。
舉例來說,第一電路302可經(jīng)配置以確定第三集合308中存在所述信息,及響應(yīng)于所述確定而選擇第二指令的操作數(shù)的源。舉例來說,可配置第一電路302,使得第四集合310可為第一指令的結(jié)果的目標(biāo)的第一候選者。舉例來說,可配置第一電路302,使得第一集合304可為第一指令的結(jié)果的目標(biāo)的第二候選者。舉例來說,第一電路302可經(jīng)配置以響應(yīng)于第三集合308中存在所述信息而選擇第一集合304的內(nèi)容作為第二指令的操作數(shù)的源。
第一集合304、第二集合306、第三集合308及第四集合310可不相交。第二指令的格式可包含指定用于操作代碼的位的集合及指定用于信息的位的集合。舉例來說,指定用于信息的位的集合可為單個位。信息可為位的值。
在一個方面中,第二集合306的每個存儲器單元可包含隨機存取存儲器單元。第三集合308的每個存儲器單元可包含觸發(fā)器。存儲于第三集合308中的信息可由單個位或若干數(shù)目個位表示。有利的是,觸發(fā)器可比常規(guī)隨機存取存儲器單元更塊地改變狀態(tài)。
在一個方面中,第一電路302可包含至少一個開關(guān)314。舉例來說,可配置至少一個開關(guān)314,使得執(zhí)行單元312可經(jīng)配置以接收第四集合310的內(nèi)容,而不管至少一個開關(guān)314的位置,但經(jīng)配置以僅當(dāng)至少一個開關(guān)314的位置閉合時才接收第一集合304的內(nèi)容。編譯器可經(jīng)配置以通過某種方式重組源程序,使得響應(yīng)于第三集合308中存在所述信息,生產(chǎn)指令的結(jié)果不存儲在第四集合310中。至少一個開關(guān)314可包含中繼器、微機電開關(guān)、半導(dǎo)體裝置、晶體管、多路復(fù)用器、導(dǎo)通門、其類似者,或前述內(nèi)容的任何組合。
圖4是說明設(shè)備300的環(huán)境400的實例的框圖。環(huán)境400可包含保留站402的陣列的集合。舉例來說,保留站402的陣列的集合可包含在指令調(diào)度器222(參看圖2)中。保留站402的陣列的集合可包含至少一個陣列404。舉例來說,但非限制性地,圖4中說明陣列404-a、404-b、404-c及404-d。每個陣列404可包含至少一個保留站記錄406。舉例來說,在圖4中的陣列404-a中說明n個記錄406-a、406-b、……、406-n。舉例來說,但非限制性地,n可為32。每個記錄406可包含第二集合306、第三集合308及第四集合310。每個記錄406可具有對應(yīng)第一電路302。舉例來說,如圖4中所說明,記錄406-a可具有對應(yīng)第一電路302-a,記錄406-b可具有對應(yīng)第一電路302-b,并且記錄406-n可具有對應(yīng)第一電路302-n。
每個第一電路302可具有對應(yīng)執(zhí)行單元312。舉例來說,如圖4中所說明,第一電路302-a可具有對應(yīng)執(zhí)行單元312-a,第一電路302-b可具有對應(yīng)執(zhí)行單元312-b,并且第一電路302-n可具有對應(yīng)執(zhí)行單元312-n?;蛘撸媸姑總€第一電路302具有對應(yīng)執(zhí)行單元312,另一電路(未說明)可耦合在每個第一電路302與較少數(shù)目的執(zhí)行單元312之間。另一電路可為優(yōu)先級編碼器或仲裁器。另一電路可經(jīng)配置以協(xié)調(diào)將已接收指令所需的所有操作數(shù)的每個指令路由到較少數(shù)目的執(zhí)行單元312中的一者。較少數(shù)目的執(zhí)行單元312可為只有兩個執(zhí)行單元312。較少數(shù)目的執(zhí)行單元312可為只有一個執(zhí)行單元312?;蛘撸褂幂^少數(shù)目的執(zhí)行單元312可允許另外消耗用于獲得大量執(zhí)行單元312的區(qū)域可用于另一電路。
保留站402的陣列的集合可不包括第一集合304。在一個方面中,第一集合304可配置為寄存器。舉例來說,寄存器可包含在物理寄存器組218(參看圖2)中。然而,第一集合304的函數(shù)可不同于物理寄存器組218中的常規(guī)寄存器的函數(shù)。在一個方面中,第一集合304可配置為基于塊的計算機處理器核心114(參看圖1及2)中的隨機存取存儲器,其中配置第一電路(例如,第一電路302-a、302-b、……、302-n),使得存儲在第一集合304中的數(shù)據(jù)可由對應(yīng)于陣列(例如,陣列404-a)的任何執(zhí)行單元(例如,執(zhí)行單元312-a、312-b、……、312-n中的任一者)訪問,而不要求數(shù)據(jù)穿過第一集合304與任何執(zhí)行單元(例如,執(zhí)行單元312-a、312-b、……、312-n中的任一者)之間的緩存(例如,l2緩存116)。
舉例來說,記錄406-a可經(jīng)配置以存儲第一指令,并且記錄406-b可經(jīng)配置以存儲第二指令。第一指令可為生產(chǎn)指令。第一指令的結(jié)果可存儲在第一集合302中。第二指令可為消費指令。響應(yīng)于第二指令的第三集合308中存在所述信息,第一電路302-b可使執(zhí)行單元312-b經(jīng)配置以接收第一集合304的內(nèi)容作為第二指令的操作數(shù)。另外,另一指令可為消費指令(例如,存儲在記錄406-n中的n指令)。響應(yīng)于另一指令(例如,n指令)的第三集合中存在所述信息,對應(yīng)第一電路(例如,第一電路302-n)可使對應(yīng)執(zhí)行單元(例如,執(zhí)行單元312-n)經(jīng)配置以接收第一集合304的內(nèi)容作為另一指令(例如,n指令)的操作數(shù)。以此方式,第一指令的結(jié)果可為第二指令及另一指令(例如,n指令)的操作數(shù)。換句話說,以此方式,可實現(xiàn)第一指令的結(jié)果的扇出。
圖5是說明設(shè)備300的變化的實例的框圖。在一個方面中,第一集合304可包含第一子集502及第二子集504。第四集合310可包含第三子集506及第四子集508。第三子集506可經(jīng)配置以存儲第二指令的第一操作數(shù)。第四子集508可經(jīng)配置以存儲第二指令的第二操作數(shù)。第一電路302可經(jīng)配置以響應(yīng)于第三集合308中存在所述信息而使執(zhí)行單元312經(jīng)配置以接收第一子集502的內(nèi)容作為第二指令的第一操作數(shù)。第一電路302可經(jīng)配置以響應(yīng)于第三集合308中存在所述信息而使執(zhí)行單元312經(jīng)配置以接收第二子集504的內(nèi)容作為第二指令的第二操作數(shù)。
舉例來說,至少一個開關(guān)314可包含第一開關(guān)510及第二開關(guān)512。舉例來說,可配置第一開關(guān)510,使得執(zhí)行單元312可經(jīng)配置以接收第三子集506的內(nèi)容,而不管第一開關(guān)510的位置,但經(jīng)配置以僅當(dāng)?shù)谝婚_關(guān)510的位置閉合時才接收第一子集502的內(nèi)容。舉例來說,可配置第二開關(guān)512,使得執(zhí)行單元312可經(jīng)配置以接收第四子集508的內(nèi)容,而不管第二開關(guān)512的位置,但經(jīng)配置以僅當(dāng)?shù)诙_關(guān)512的位置閉合時才接收第二子集504的內(nèi)容。編譯器可經(jīng)配置以通過某種方式重組源程序,使得響應(yīng)于第三集合308中存在所述信息,生產(chǎn)指令的結(jié)果不存儲在第三子集506、第四子集508或兩者中。
圖6是說明設(shè)備300的另一變化的實例的框圖。在一個方面中,第三集合308可包含第五子集602及第六子集604。第五子集602可經(jīng)配置以存儲第二指令的第一信息。第六子集604可經(jīng)配置以存儲第二指令的第二信息。第一電路302可經(jīng)配置以響應(yīng)于第五子集602中存在第一信息而使執(zhí)行單元312經(jīng)配置以接收第一子集502的內(nèi)容作為第二指令的第一操作數(shù)。第一電路302可經(jīng)配置以響應(yīng)于第六子集604中存在第二信息而使執(zhí)行單元312經(jīng)配置以接收第二子集504的內(nèi)容作為第二指令的第二操作數(shù)。以此方式,第一開關(guān)510及第二開關(guān)512可獨立于彼此操作。
或者,第一開關(guān)510、第二開關(guān)512或兩者可經(jīng)配置以具有兩個觸點。舉例來說,第一開關(guān)510可具有第一觸點(未說明)及第二觸點。第一觸點可經(jīng)配置以將執(zhí)行單元312連接到第三子集506。第二觸點可經(jīng)配置以將執(zhí)行單元312連接到第一子集502。舉例來說,第二開關(guān)512可具有第一觸點(未說明)及第二觸點。第一觸點可經(jīng)配置以將執(zhí)行單元312連接到第四子集508。第二觸點可經(jīng)配置以將執(zhí)行單元312連接到第二子集504。
圖7是說明設(shè)備300的另一變化的實例的框圖。在一個方面中,存儲器單元可進(jìn)一步包含經(jīng)配置以存儲第二指令的謂詞操作數(shù)的第五集合702。指令的格式可進(jìn)一步包含指定用于謂詞操作數(shù)的位的集合。第一集合304可包含第一子集704及第二子集706。第一電路302可經(jīng)配置以響應(yīng)于第三集合308中存在所述信息而使執(zhí)行單元312經(jīng)配置以接收第一子集704的內(nèi)容作為第二指令的操作數(shù)。第一電路302可經(jīng)配置以響應(yīng)于第三集合308中存在所述信息而使第五集合702經(jīng)配置以接收第二子集706的內(nèi)容作為第二指令的謂詞操作數(shù)。舉例來說,第一電路302可經(jīng)配置以響應(yīng)于第三集合308中存在所述信息而選擇第二子集706的內(nèi)容作為第二指令的謂詞操作數(shù)的源。
舉例來說,至少一個開關(guān)314可包含第一開關(guān)708及第二開關(guān)710。舉例來說,可配置第一開關(guān)708,使得執(zhí)行單元312可經(jīng)配置以接收第四集合310的內(nèi)容,而不管第一開關(guān)708的位置,但經(jīng)配置以僅當(dāng)?shù)谝婚_關(guān)708的位置閉合時才接收第一子集704的內(nèi)容。
圖8是說明設(shè)備300的另一變化的實例的框圖。在一個方面中,第三集合308可包含第三子集802及第四子集804。第三子集802可經(jīng)配置以存儲第二指令的第一信息。第四子集804可經(jīng)配置以存儲第二指令的第二信息。第一電路302可經(jīng)配置以響應(yīng)于第三子集802中存在第一信息而使執(zhí)行單元312經(jīng)配置以接收第一子集704的內(nèi)容作為第二指令的操作數(shù)。第一電路302可經(jīng)配置以響應(yīng)于第四子集804中存在第二信息而使第五集合702經(jīng)配置以接收第二子集706的內(nèi)容作為第二指令的謂詞操作數(shù)。舉例來說,第一電路302可經(jīng)配置以響應(yīng)于第三集合308中存在所述信息而選擇第二子集706的內(nèi)容作為第二指令的謂詞操作數(shù)的源。以此方式,第一開關(guān)708及第二開關(guān)710可獨立于彼此操作。
或者,第一開關(guān)708可經(jīng)配置以具有兩個觸點。舉例來說,第一開關(guān)708可具有第一觸點(未說明)及第二觸點。第一觸點可經(jīng)配置以將執(zhí)行單元312連接到第四集合310。第二觸點可經(jīng)配置以將執(zhí)行單元312連接到第一子集704。
圖9是說明設(shè)備300的另一變化的實例的框圖。在一個方面中,存儲器單元可進(jìn)一步包含經(jīng)配置以存儲第一指令(或另一指令)的結(jié)果的第五集合902。信息可經(jīng)配置以具有第一值或第二值。或者,信息可包含第一信息或第二信息。第一電路302可經(jīng)配置以響應(yīng)于第三集合308中存在具有第一值的信息而使執(zhí)行單元312經(jīng)配置以接收第一集合304的內(nèi)容作為第二指令的操作數(shù)。舉例來說,第一電路302可經(jīng)配置以響應(yīng)于第三集合308中存在第一信息而選擇第一集合304的內(nèi)容作為第二指令的操作數(shù)的源。第一電路302可經(jīng)配置以響應(yīng)于第三集合308中存在具有第二值的信息而使執(zhí)行單元312經(jīng)配置以接收第五集合902的內(nèi)容作為第二指令的操作數(shù)。舉例來說,第一電路302可經(jīng)配置以響應(yīng)于第三集合308中存在第二信息而選擇第五集合902的內(nèi)容作為第二指令的操作數(shù)的源。
舉例來說,至少一個開關(guān)314可包含第一開關(guān)904及第二開關(guān)906。舉例來說,可配置第一開關(guān)904,使得執(zhí)行單元312可經(jīng)配置以接收第四集合310的內(nèi)容,而不管第一開關(guān)904的位置,但經(jīng)配置以僅當(dāng)?shù)谝婚_關(guān)902的位置閉合時才接收第一集合304的內(nèi)容??膳渲玫诙_關(guān)906,使得執(zhí)行單元312可經(jīng)配置以接收第四集合310的內(nèi)容,而不管第二開關(guān)906的位置,但經(jīng)配置以僅當(dāng)?shù)诙_關(guān)904的位置閉合時才接收第五集合902的內(nèi)容。
或者,第一開關(guān)904、第二開關(guān)906或兩者可經(jīng)配置以具有兩個觸點。舉例來說,第一開關(guān)904可具有第一觸點(未說明)及第二觸點。第一觸點可經(jīng)配置以將執(zhí)行單元312連接到第四集合310。第二觸點可經(jīng)配置以將執(zhí)行單元312連接到第一集合304。舉例來說,第二開關(guān)906可具有第一觸點(未說明)及第二觸點。第一觸點可經(jīng)配置以將執(zhí)行單元312連接到第四集合310。第二觸點可經(jīng)配置以將執(zhí)行單元312連接到第五集合902。
或者,至少一個開關(guān)314可包含經(jīng)配置以具有兩個觸點的一個開關(guān)(未說明)。舉例來說,一個開關(guān)可具有第一觸點(未說明)及第二觸點(未說明)。一個開關(guān)可經(jīng)配置以響應(yīng)于第三集合308中存在具有第一值的信息而閉合到第一觸點,以將執(zhí)行單元312連接到第一集合304。一個開關(guān)可經(jīng)配置以響應(yīng)于第三集合308中存在具有第二值的信息而閉合到第二觸點,以將執(zhí)行單元312連接到第五集合902。
指定用于第二指令的信息的位的集合可經(jīng)配置以表示二進(jìn)制數(shù)。舉例來說,二進(jìn)制數(shù)00可指示第三集合308中不存在所述信息,使得執(zhí)行單元312可經(jīng)配置以接收第四集合310的內(nèi)容作為第二指令的操作數(shù)。舉例來說,二進(jìn)制數(shù)01可為第一值,使得執(zhí)行單元312可經(jīng)配置以接收第一集合304的內(nèi)容作為第二指令的操作數(shù)。舉例來說,二進(jìn)制數(shù)10可為第二值,使得執(zhí)行單元312可經(jīng)配置以接收第五集合902的內(nèi)容作為第二指令的操作數(shù)。如果配置設(shè)備,使得存儲器單元包含經(jīng)配置以存儲第一指令的結(jié)果的第六集合(未說明),那么二進(jìn)制數(shù)11可用作某一值,使得執(zhí)行單元312可經(jīng)配置以接收第六集合(未說明)的內(nèi)容作為第二指令的操作數(shù)。有利的是,如果指定用于第二指令的信息的位的集合經(jīng)配置以表示二進(jìn)制數(shù),那么可用兩個位表示三個不同集合。
或者,指定用于第二指令的信息的位的集合可配置為位圖。(參看圖6)。舉例來說,存儲在第五子集602中的位的集合可對應(yīng)于第一子集502,并且存儲在第六子集604中的位的集合可對應(yīng)于第二子集504。舉例來說,位圖中的00(0存儲在第五子集602中及0存儲在第六子集604中)可指示第三集合308中不存在所述信息,使得執(zhí)行單元312可經(jīng)配置以接收第四集合310的內(nèi)容(第三子集506及第四子集508)作為第二指令的操作數(shù)。舉例來說,位圖中的01(1存儲在第五子集602中及0存儲在第六子集604中)可使執(zhí)行單元312經(jīng)配置以接收第一子集502的內(nèi)容作為第二指令的第一操作數(shù)。舉例來說,位圖中的10(0存儲在第五子集602中及1存儲在第六子集604中)可使執(zhí)行單元312經(jīng)配置以接收第二子集504的內(nèi)容作為第二指令的第二操作數(shù)。舉例來說,位圖中的11(1存儲在第五子集602中及1存儲在第六子集604中)可使執(zhí)行單元312經(jīng)配置以接收第一子集502的內(nèi)容作為第二指令的第一操作數(shù)及接收第二子集504的內(nèi)容作為第二指令的第二操作數(shù)。有利的是,如果指定用于第二指令的信息的位的集合經(jīng)配置為位圖,使得位的集合中的每個位置對應(yīng)于經(jīng)配置以存儲第一指令(或另一指令)的結(jié)果的子集,那么兩個位可用于使執(zhí)行單元312經(jīng)配置以接收兩個子集的內(nèi)容。
圖10是說明設(shè)備300的另一變化的實例的框圖。在一個方面中,設(shè)備300可進(jìn)一步包含第二電路1002。第二電路1002可經(jīng)配置以防止執(zhí)行單元312經(jīng)配置以接收第一集合304的內(nèi)容,直到在第一指令的結(jié)果已存儲在第一集合304中之后。在一個方面中,第二電路1002可包含至少一個開關(guān)1004。至少一個開關(guān)1004可包含中繼器、微機電開關(guān)、半導(dǎo)體裝置、晶體管、多路復(fù)用器、導(dǎo)通門、其類似者,或前述內(nèi)容的任何組合。舉例來說,因為在計算機處理器核心114開始執(zhí)行當(dāng)前指令塊之前,第一集合304可具有存儲在其中的值,所以至少一個開關(guān)1004可經(jīng)配置以打開,直到在第一指令的結(jié)果已存儲在第一集合304中之后。以此方式,在第一指令的結(jié)果已存儲在第一集合304中之前,可防止執(zhí)行單元312錯誤地接收存儲在第一集合304中的值。至少一個開關(guān)1004可經(jīng)配置以響應(yīng)于第一指令的結(jié)果已存儲在第一集合304中而閉合。
圖11是說明設(shè)備300的另一變化的框圖。在一個方面中,存儲器單元可進(jìn)一步包含經(jīng)配置以存儲第一指令(或另一指令)的結(jié)果的第五集合902。第二電路1002可進(jìn)一步經(jīng)配置以防止執(zhí)行單元312經(jīng)配置以接收第五集合902的內(nèi)容,直到在第一指令(或另一指令)的結(jié)果已存儲在第五集合902中之后。舉例來說,至少一個開關(guān)1004可包含第一開關(guān)1102及第二開關(guān)1104。舉例來說,第一開關(guān)1102可經(jīng)配置以防止執(zhí)行單元312經(jīng)配置以接收第一集合304的內(nèi)容,直到在第一指令的結(jié)果已存儲在第一集合304中之后。舉例來說,第二開關(guān)1104可經(jīng)配置以防止執(zhí)行單元312經(jīng)配置以接收第五集合902的內(nèi)容,直到在第一指令(或另一指令)的結(jié)果已存儲在第五集合902中之后。
圖12是說明設(shè)備300的另一變化的框圖。在一個方面中,第一集合304可包含第一子集502及第二子集504。第二電路1002可經(jīng)配置以防止執(zhí)行單元312經(jīng)配置以接收第一集合304的內(nèi)容,直到在第一指令的結(jié)果已存儲在第一子集502、第二子集504或兩者中之后。舉例來說,至少一個開關(guān)1004可包含第一開關(guān)1202及第二開關(guān)1204。舉例來說,第一開關(guān)1202及第二開關(guān)1204可經(jīng)配置以防止執(zhí)行單元312經(jīng)配置以接收第一集合304的內(nèi)容,直到第一指令的結(jié)果已存儲在第一子集502、第二子集504或兩者中之后。舉例來說,響應(yīng)于第一指令的結(jié)果已存儲在第一子集502、第二子集504或兩者中,可閉合第一開關(guān)1202及第二開關(guān)1204兩者。
圖13是說明設(shè)備300的另一變化的框圖。在一個方面中,第一集合304可包含第一子集502及第二子集504。第二電路1002可經(jīng)配置以防止執(zhí)行單元312經(jīng)配置以接收第一子集502的內(nèi)容,直到在第一指令的結(jié)果已存儲在第一子集502中之后。第二電路1002可經(jīng)配置以防止執(zhí)行單元312經(jīng)配置以接收第二子集504的內(nèi)容,直到在第一指令的結(jié)果已存儲在第二子集504中之后。舉例來說,至少一個開關(guān)1004可包含第一開關(guān)1202及第二開關(guān)1204。舉例來說,第一開關(guān)1202可經(jīng)配置以防止執(zhí)行單元312經(jīng)配置以接收第一子集502的內(nèi)容,直到在第一指令的結(jié)果已存儲在第一子集502中之后。舉例來說,第二開關(guān)1204可經(jīng)配置以防止執(zhí)行單元312經(jīng)配置以接收第二子集504的內(nèi)容,直到在第一指令的結(jié)果已存儲在第二子集504中之后。以此方式,第一開關(guān)1202及第二開關(guān)1204可獨立于彼此操作。
圖14是說明設(shè)備300的另一變化的框圖。在一個方面中,第一集合304可包含第一子集704及第二子集706。存儲器單元可進(jìn)一步包含經(jīng)配置以存儲第二指令的謂詞操作數(shù)的第五集合702。第二指令的格式可進(jìn)一步包含指定用于謂詞操作數(shù)的位的集合。第二電路1002可經(jīng)配置以防止執(zhí)行單元312及第五集合702經(jīng)配置以接收第一集合304的內(nèi)容,直到在第一指令的結(jié)果已存儲在第一子集704、第二子集706或兩者中之后。舉例來說,至少一個開關(guān)1004可包含第一開關(guān)1402及第二開關(guān)1404。舉例來說,第一開關(guān)1402及第二開關(guān)1404可經(jīng)配置以防止執(zhí)行單元312及第五集合702經(jīng)配置以接收第一集合304的內(nèi)容,直到在第一指令的結(jié)果已存儲在第一子集704、第二子集706或兩者中之后。舉例來說,響應(yīng)于第一指令的結(jié)果已存儲在第一子集704、第二子集706或兩者中,可閉合第一開關(guān)1402及第二開關(guān)1404兩者。
圖15是說明設(shè)備300的另一變化的框圖。在一個方面中,第一集合304可包含第一子集704及第二子集706。存儲器單元可進(jìn)一步包含經(jīng)配置以存儲第二指令的謂詞操作數(shù)的第五集合702。第二指令的格式可進(jìn)一步包含指定用于謂詞操作數(shù)的位的集合。第二電路1002可經(jīng)配置以防止執(zhí)行單元312經(jīng)配置以接收第一子集704的內(nèi)容,直到在第一指令的結(jié)果已存儲在第一子集704中之后。第二電路1002可經(jīng)配置以防止第五集合702經(jīng)配置以接收第二子集706的內(nèi)容,直到在第一指令的結(jié)果已存儲在第二子集706中之后。舉例來說,至少一個開關(guān)1004可包含第一開關(guān)1402及第二開關(guān)1404。舉例來說,第一開關(guān)1402可經(jīng)配置以防止執(zhí)行單元312經(jīng)配置以接收第一子集704的內(nèi)容,直到在第一指令的結(jié)果已存儲在第一子集704中之后。舉例來說,第二開關(guān)1404可經(jīng)配置以防止第五集合702經(jīng)配置以接收第二子集706的內(nèi)容,直到在第一指令的結(jié)果已存儲在第二子集706中之后。以此方式,第一開關(guān)1402及第二開關(guān)1404可獨立于彼此操作。
本領(lǐng)域技術(shù)人員將理解,舉例來說在圖16中說明可通過上文參考圖3至15(例如)描述的方面的不同組合實現(xiàn)的其它方面。圖16是說明設(shè)備300的另一變化的框圖。在一個方面中,存儲器單元可進(jìn)一步包含集合702及集合902。集合902可包含子集1602、子集1604及子集1606。集合304可包含子集502、子集504及子集706。集合310可包含子集506及子集508。至少一個開關(guān)314可包含開關(guān)510、開關(guān)512、開關(guān)710、開關(guān)906、開關(guān)1608及開關(guān)1610。至少一個開關(guān)1004可包含開關(guān)1202、開關(guān)1204、開關(guān)1404、開關(guān)1104、開關(guān)1612及開關(guān)1614。可配置開關(guān)906,使得執(zhí)行單元312可經(jīng)配置以接收子集1602的內(nèi)容。可配置開關(guān)1608,使得執(zhí)行單元312可經(jīng)配置以接收子集1604的內(nèi)容。可配置開關(guān)1610,使得集合702可經(jīng)配置以接收子集1606的內(nèi)容。開關(guān)1104可經(jīng)配置以防止執(zhí)行單元312經(jīng)配置以接收子集1602的內(nèi)容,直到在第一指令(或另一指令)的結(jié)果已存儲在子集1602中之后。開關(guān)1612可經(jīng)配置以防止執(zhí)行單元312經(jīng)配置以接收子集1604的內(nèi)容,直到在第一指令(或另一指令)的結(jié)果已存儲在子集1604中之后。開關(guān)1614可經(jīng)配置以防止集合702接收子集1606的內(nèi)容,直到在第一指令(或另一指令)的結(jié)果已存儲在子集1606中之后。
圖17是說明可通過設(shè)備300執(zhí)行的指令的格式1700的實例的圖式。在一個方面中,格式1700可包含位1702的集合、位1704的集合、位1706的集合、位1708的集合、位1710的集合、位1712的集合、位1714的集合、位1716的集合、位1718的集合、位1720的集合、位1722的集合,及位1724的集合。
位1702的集合可指定用于操作代碼(即,操作碼)。舉例來說,位1702的集合可存儲在集合306中。位1704的集合可指定用于指令的第一信息。舉例來說,位1704的集合可存儲在集合308中。舉例來說,集合308中存在第一信息可致使第一電路302使執(zhí)行單元312經(jīng)配置以接收集合304或集合902的內(nèi)容。
位1706的集合可指定用于指令的第二信息。舉例來說,位1706的集合可存儲在存儲器單元的集合中。舉例來說,存儲器單元的此集合中存在第二信息可指示指令需要第一操作數(shù)。位1708的集合可指定用于指令的第三信息。舉例來說,位1708的集合可存儲在存儲器單元的集合中。舉例來說,存儲器單元的此集合中存在第三信息可指示執(zhí)行單元312已接收第一操作數(shù)。位1710的集合可指定用于指令的第四信息。舉例來說,位1710的集合可存儲在存儲器單元的集合中。舉例來說,存儲器單元的此集合中存在第四信息可指示指令需要第二操作數(shù)。位1712的集合可指定用于指令的第五信息。舉例來說,位1712的集合可存儲在存儲器單元的集合中。舉例來說,存儲器單元的此集合中存在第五信息可指示執(zhí)行單元312已接收第二操作數(shù)。
位1714的集合可指定用于指令的第六信息。舉例來說,位1714的集合可存儲在存儲器單元的集合中。舉例來說,存儲器單元的此集合中存在第六信息可指示指令需要謂詞操作數(shù)。位1716的集合可指定用于指令的謂詞操作數(shù)。舉例來說,謂詞操作數(shù)可存儲在集合702中。舉例來說,集合702中存在謂詞操作數(shù)可指示謂詞操作數(shù)已通過指令接收。位1718的集合可指定用于指令的第七信息。舉例來說,位1718的集合可存儲在存儲器單元的集合中。舉例來說,存儲器單元的此集合中存在第七信息可指示指令需要謂詞操作數(shù)具有真值。位1720的集合可指定用于指令的第八信息。舉例來說,位1720的集合可存儲在存儲器單元的集合中。舉例來說,存儲器單元的此集合中存在第八信息可指示通過指令接收的謂詞操作數(shù)具有真值。
舉例來說,位1718的集合可為“異或非”門1726的第一輸入,并且位1720的集合可為“異或非”門1726的第二輸入。如果位1718的集合中存在第七信息指示謂詞操作數(shù)需要具有真值并且位1720的集合中存在第八信息指示通過指令接收的謂詞操作數(shù)具有真值,那么“異或非”門1726的輸出具有真值。如果位1718的集合中不存在第七信息指示謂詞操作數(shù)需要具有虛值并且位1720的集合中不存在第八信息指示通過指令接收的謂詞操作數(shù)具有虛值,那么“異或非”門1726的輸出具有真值。舉例來說,位1716的集合可為“與”門1728的第一輸入,“異或非”門1726的輸出可為“與”門1728的第二輸入,并且“與”門1728的輸出可使執(zhí)行單元312能夠經(jīng)配置以執(zhí)行指令。集合702中存在謂詞操作數(shù)指示謂詞操作數(shù)已通過指令接收并且“異或非”門1726的輸出具有真值(指示通過指令接收的謂詞操作數(shù)的值與指令所需的謂詞操作數(shù)的值相同),隨后“與”門1728的輸出具有真值并且可使執(zhí)行單元312能夠經(jīng)配置以執(zhí)行指令。
位1722的集合可指定用于指令的結(jié)果的第一目標(biāo)的標(biāo)識。舉例來說,位1722的集合可存儲在存儲器單元的集合中。位1724的集合可指定用于指令的結(jié)果的第二目標(biāo)的標(biāo)識。舉例來說,位1724的集合可存儲在存儲器單元的集合中。
舉例來說,位1702的集合中的操作代碼、位1704的集合中的第一信息(致使第一電路302使執(zhí)行單元312經(jīng)配置以接收集合304的內(nèi)容)、位1706的集合中的第二信息(指示指令需要第一操作數(shù))、位1710的集合中的第四信息(指示指令需要第二操作數(shù))、位1714的集合中的第六信息(指示指令需要謂詞操作數(shù))、位1718的集合中的第七信息(指示指令需要謂詞操作數(shù)具有真值)、位1720的集合中的指令的結(jié)果的第一目標(biāo)的標(biāo)識,及位1722的集合中的指令的結(jié)果的第二目標(biāo)的標(biāo)識可在指令塊通過指令緩沖器220(參看圖2)接收時包含在所述指令中。
舉例來說,可將位1708的集合中的第三信息(指示執(zhí)行單元312已接收第一操作數(shù))、位1712的集合中的第五信息(指示執(zhí)行單元312已接收第二操作數(shù))、位1716的集合中的謂詞操作數(shù)、位1720的集合中的第八信息(指示通過指令接收的謂詞操作數(shù)具有真值)提供給指令,因為在執(zhí)行指令塊的過程中產(chǎn)生這些信息項。
舉例來說,如果不存在位1706的集合中的第二信息(指示指令需要第一操作數(shù)),這可指示指令不需要第一操作數(shù),那么位1708的集合中的第三信息(指示執(zhí)行單元312已接收第一操作數(shù))可默認(rèn)地設(shè)定成真值,使得當(dāng)不需要第一操作數(shù)時,在預(yù)期接收第一操作數(shù)時不延遲指令的執(zhí)行。舉例來說,如果不存在位1710的集合中的第四信息(指示指令需要第二操作數(shù)),這可指示指令不需要第二操作數(shù),那么位1712的集合中的第五信息(指示執(zhí)行單元312已接收第二操作數(shù))可默認(rèn)地設(shè)定成真值,使得當(dāng)不需要第二操作數(shù)時,在預(yù)期接收第二操作數(shù)時不延遲指令的執(zhí)行。舉例來說,如果不存在位1714的集合中的第六信息(指示指令需要謂詞操作數(shù)),這可指示指令不需要謂詞操作數(shù),那么位1716的所有集合(指示指令已接收謂詞操作數(shù))、位1718的的集合中的第七信息(指示指令需要謂詞操作數(shù)具有真值)及位1720的集合中的第八信息(指示通過指令接收的謂詞操作數(shù)具有真值)可默認(rèn)地設(shè)定成真值,使得當(dāng)不需要謂詞操作數(shù)時,在預(yù)期接收謂詞操作數(shù)時不延遲指令的執(zhí)行。
圖18是說明可通過設(shè)備300執(zhí)行的指令的另一格式1800的實例的圖式。在一個方面中,格式1800可包含位1702的集合、位1704的集合、位1706的集合、位1708的集合、位1710的集合、位1712的集合、位1714的集合、位1718的集合、位1722的集合、位1724的集合、位1802的集合,及位1804的集合。位1802的集合可指定用于第九信息。舉例來說,位1802的集合可存儲在存儲器單元的集合中。舉例來說,存儲器單元的此集合中存在第九信息可指示謂詞操作數(shù)已通過指令接收并且謂詞操作數(shù)具有真值。位1804的集合可指定用于第十信息。舉例來說,位1804的集合可存儲在存儲器單元的集合中。舉例來說,存儲器單元的此集合中存在第十信息可指示謂詞操作數(shù)已通過指令接收并且謂詞操作數(shù)具有虛值。
舉例來說,謂詞操作數(shù)可為位1802的集合及反相器1806的輸入。反相器1806的輸出可為位1804的集合的輸入。如果謂詞操作數(shù)已通過指令接收并且謂詞操作數(shù)具有真值,那么位1802的集合可具有真值。如果謂詞操作數(shù)已通過指令接收并且謂詞操作數(shù)具有虛值,那么位1804的集合可具有真值。舉例來說,位1802的集合可為多路復(fù)用器1808的第一輸入,位1804的集合可為多路復(fù)用器1808的第二輸入,位1718的集合可為多路復(fù)用器1808的選擇器輸入,并且多路復(fù)用器1808的輸出可使執(zhí)行單元312能夠經(jīng)配置以執(zhí)行指令。如果位1718的集合中存在第七信息指示謂詞操作數(shù)需要具有真值,那么多路復(fù)用器1808可經(jīng)配置以選擇位1802的集合以使執(zhí)行單元312能夠經(jīng)配置以執(zhí)行指令。如果位1718的集合中不存在第七信息指示謂詞操作數(shù)需要具有虛值,那么多路復(fù)用器1808可經(jīng)配置以選擇位1804的集合以使執(zhí)行單元312能夠經(jīng)配置以執(zhí)行指令。
下文展示用于描述包含圖16中所說明的設(shè)備300的方面的系統(tǒng)的操作的實例情形。在實例情形中,用于準(zhǔn)備納稅申報表的計算機程序可執(zhí)行指令i0至i7。在指令i0中,已婚夫婦支付的房屋貸款利息($10,000)從至少一個存儲器單元126(參看圖1)中的存儲器單元m1的集合中加載,并且存儲在指令i2的子集506中作為第一操作數(shù)。在指令i1中,夫妻支付的不動產(chǎn)稅($4,000)從至少一個存儲器單元126中的存儲器單元m2的集合中加載,并且存儲在指令i2的子集508中作為第二操作數(shù)。在指令i2中,分項扣除(支付的房屋貸款利息加上支付的不動產(chǎn)稅)進(jìn)行計算、存儲在指令i4的子集506中作為第一操作數(shù),及存儲在指令i6的子集508中作為第二操作數(shù)。在指令i3中,標(biāo)準(zhǔn)扣除的值($12,200)從物理寄存器組218(參看圖2)中的寄存器r0讀取,存儲在指令i4的子集508中作為第二操作數(shù),及存儲在指令i7的子集508中作為第二操作數(shù)。在指令i4中,如果分項扣除大于標(biāo)準(zhǔn)扣除且存儲在子集706中以作為謂詞操作數(shù)扇出,那么謂詞操作數(shù)設(shè)定成真實的。在指令i5中,夫妻的收入($60,000)從至少一個存儲器單元126的存儲器單元m0的集合中加載并且存儲在子集502中以作為謂詞操作數(shù)扇出。在指令i6中,如果謂詞操作數(shù)是真值,那么執(zhí)行可征稅收入的第一計算(從收入中減去分項扣除),并且第一計算的結(jié)果存儲在存儲器單元m3的集合中。在指令i7中,如果謂詞操作數(shù)是虛值,那么執(zhí)行可征稅收入的第二計算(從收入中減去標(biāo)準(zhǔn)扣除),并且第二計算的結(jié)果存儲在存儲器單元m3的集合中。
圖19至23是說明與用于描述包含圖16中所說明的設(shè)備300的方面的系統(tǒng)的操作的實例情形相關(guān)聯(lián)的一些存儲器單元及開關(guān)的狀態(tài)的圖式。在實例情形中,設(shè)備300執(zhí)行具有圖17中所說明的格式1700的指令。
圖19說明在時間t=0處,即指令塊通過指令緩沖器220(參看圖2)接收時,一些存儲器單元及開關(guān)的狀態(tài)。
在時間t=0處,開關(guān)1202、1204、1404、1104、1612及1614中的每一者打開。因為在指令i0、i1、i3及i5中的每一者中,位1706的集合(指示指令需要第一操作數(shù))設(shè)定成虛值(0),所以位1708的集合(指示對應(yīng)執(zhí)行單元312已接收第一操作數(shù))默認(rèn)地設(shè)定成真值(1)。因為在指令i0、i1、i3及i5中的每一者中,位1710的集合(指示指令需要第二操作數(shù))設(shè)定成虛值(0),所以位1712的集合(指示對應(yīng)執(zhí)行單元312已接收第二操作數(shù))默認(rèn)地設(shè)定成真值(1)。因為在指令i0、i1、i3及i5中的每一者中,位1714的集合(指示指令需要謂詞操作數(shù))設(shè)定成虛值(0),所以位1716的所有集合(指示指令已接收謂詞操作數(shù))、位1718的集合(指示指令需要謂詞操作數(shù)具有真值),及位1720的集合(指示通過指令接收的謂詞操作數(shù)具有真值)默認(rèn)地設(shè)定成真值(1)。因此,在指令i0、i1、i3及i5中的每一者中,對應(yīng)執(zhí)行單元312具有如通過位1708、1712及1716的對應(yīng)集合中的每一者中的真值及通過位1718的對應(yīng)集合中的值等于位1720的對應(yīng)集合中的值確定的所有其操作數(shù)。因此,對應(yīng)執(zhí)行單元312可執(zhí)行指令。
圖20說明在已執(zhí)行指令i0、i1、i3及i5中的每一者之后,在時間t=1處一些存儲器單元及開關(guān)的狀態(tài)。
在已執(zhí)行指令i0之后,如指令i0的位1722的集合(指定用于指令的結(jié)果的第一目標(biāo)的標(biāo)識)中所指示,存儲器單元m1的集合的值(10,000)存儲在指令i2的子集506中作為第一操作數(shù)。在存儲器單元m1的集合的值(10,000)已存儲作為指令i2的第一操作數(shù)之后,真值(1)存儲在指令i2的位1708的集合(指示對應(yīng)執(zhí)行單元312已接收第一操作數(shù))中。
在已執(zhí)行指令i1之后,如指令i1的位1722的集合(指定用于指令的結(jié)果的第一目標(biāo)的標(biāo)識)中所指示,存儲器單元m2的集合的值(4,000)存儲在指令i2的子集508中作為第二操作數(shù)。在存儲器單元m2的集合的值(4,000)已存儲作為指令i2的第二操作數(shù)之后,真值(1)存儲在指令i2的位1712的集合(指示對應(yīng)執(zhí)行單元312已接收第二操作數(shù))中。
因為在指令i2中,位1714的集合(指示指令需要謂詞操作數(shù))設(shè)定成虛值(0),所以位1716的所有集合(指示指令已接收謂詞操作數(shù))、位1718的集合(指示指令需要謂詞操作數(shù)具有真值),及位1720的集合(指示通過指令接收的謂詞操作數(shù)具有真值)默認(rèn)地設(shè)定成真值(1)。因此,在指令i2中,對應(yīng)執(zhí)行單元312具有如通過位1708、1712及1716的對應(yīng)集合中的每一者中的真值及通過位1718的對應(yīng)集合中的值等于位1720的對應(yīng)集合中的值確定的所有其操作數(shù)。因此,對應(yīng)執(zhí)行單元312可執(zhí)行指令。
在已執(zhí)行指令i3之后,寄存器r0的值(12,200):(1)如在指令i3的位1722的集合(指定用于指令的結(jié)果的第一目標(biāo)的標(biāo)識)中所指示,存儲在指令i4的子集508中作為第二操作數(shù);及(2)如在指令i3的位1724的集合(指定用于指令的結(jié)果的第二目標(biāo)的標(biāo)識)中所指示,存儲在指令i7的子集508中作為第二操作數(shù)。在寄存器r0的值(12,200)已存儲作為指令i4的第二操作數(shù)之后,真值(1)存儲在指令i4的位1712的集合(指示對應(yīng)執(zhí)行單元312已接收第二操作數(shù))中。在寄存器r0的值(12,200)已存儲作為指令i7的第二操作數(shù)之后,真值(1)存儲在指令i7的位1712的集合(指示對應(yīng)執(zhí)行單元312已接收第二操作數(shù))中。
在已執(zhí)行指令i5之后,如指令i5的位1722的集合(指定用于指令的結(jié)果的第一目標(biāo)的標(biāo)識)中所指示,存儲器單元m0的集合的值(60,000)存儲在集合304的子集502中作為第一操作數(shù)扇出。在存儲器單元m0的集合的值(60,000)已存儲在集合304的子集502中之后,開關(guān)1202閉合。
因為在指令i6中,位1704的集合中的第一信息(致使第一電路302使對應(yīng)執(zhí)行單元312經(jīng)配置以接收集合304或集合902的內(nèi)容)具有值01,所以對應(yīng)執(zhí)行單元312經(jīng)配置以接收集合304的內(nèi)容,所述內(nèi)容是配置用于作為第一操作數(shù)扇出的子集502的內(nèi)容。因此,真值(1)存儲在指令i6的位1708的集合(指示對應(yīng)執(zhí)行單元312已接收第一操作數(shù))中。
因為在指令i7中,位1704的集合中的第一信息(致使第一電路302使對應(yīng)執(zhí)行單元312經(jīng)配置以接收集合304或集合902的內(nèi)容)具有值01,所以對應(yīng)執(zhí)行單元312經(jīng)配置以接收集合304的內(nèi)容,所述內(nèi)容是配置用于作為第一操作數(shù)扇出的子集502的內(nèi)容。因此,真值(1)存儲在指令i7的位1708的集合(指示對應(yīng)執(zhí)行單元312已接收第一操作數(shù))中。
或者,對于指令i6、指令i7或兩者,代替響應(yīng)于位1704的集合中的第一信息具有值01而具有存儲在位1708的集合中的真值(1),位(未說明)的集合可指定用于關(guān)于集合304的內(nèi)容的信息。舉例來說,位的此集合可存儲在存儲器單元的集合中。舉例來說,存儲器單元的此集合中存在所述信息可指示集合304已接收所述內(nèi)容。舉例來說,位的此集合可為“或”門(未說明)的第一輸入,位1708的集合可為“或”門的第二輸入,并且“或”門的輸出可指示對應(yīng)執(zhí)行單元312已接收指令的第一操作數(shù)。在一個方面中,位(未說明)的另一集合可指定用于關(guān)于集合902的內(nèi)容的信息。舉例來說,位的此集合可存儲在存儲器單元的集合中。舉例來說,存儲器單元的此集合中存在所述信息可指示集合902已接收所述內(nèi)容。舉例來說,位的此集合可為“或”門的第三輸入。舉例來說,如果集合304的內(nèi)容及集合902的內(nèi)容都經(jīng)配置以通過對應(yīng)執(zhí)行單元312接收作為操作數(shù),那么其它電路(未說明)可指示誤差。
圖21說明在已執(zhí)行指令i2之后,在時間t=2處一些存儲器單元及開關(guān)的狀態(tài)。
在已執(zhí)行指令i2之后,第一操作數(shù)(10,000)加上第二操作數(shù)(4,000)的和的值(14,000):(1)如在指令i2的位1722的集合(指定用于指令的結(jié)果的第一目標(biāo)的標(biāo)識)中所指示,存儲在指令i4的子集506中作為第一操作數(shù);及(2)如在指令i2的位1724的集合(指定用于指令的結(jié)果的第二目標(biāo)的標(biāo)識)中所指示,存儲在指令i6的子集508中作為第二操作數(shù)。在和的值(14,000)已存儲作為指令i4的第一操作數(shù)之后,真值(1)存儲在指令i4的位1708的集合(指示對應(yīng)執(zhí)行單元312已接收第一操作數(shù))中。在和的值(14,000)已存儲作為指令i6的第二操作數(shù)之后,真值(1)存儲在指令i6的位1712的集合(指示對應(yīng)執(zhí)行單元312已接收第二操作數(shù))中。
因為在指令i4中,位1714的集合(指示指令需要謂詞操作數(shù))設(shè)定成虛值(0),所以位1716的所有集合(指示指令已接收謂詞操作數(shù))、位1718的集合(指示指令需要謂詞操作數(shù)具有真值),及位1720的集合(指示通過指令接收的謂詞操作數(shù)具有真值)默認(rèn)地設(shè)定成真值(1)。因此,在指令i4中,對應(yīng)執(zhí)行單元312具有如通過位1708、1712及1716的對應(yīng)集合中的每一者中的真值及通過位1718的對應(yīng)集合中的值等于位1720的對應(yīng)集合中的值確定的所有其操作數(shù)。因此,對應(yīng)執(zhí)行單元312可執(zhí)行指令。
圖22說明在已執(zhí)行指令i4之后,在時間t=3處一些存儲器單元及開關(guān)的狀態(tài)。
在已執(zhí)行指令i4之后,謂詞操作數(shù)的值設(shè)定成真值(1),因為第一操作數(shù)的值(14,000)大于第二操作數(shù)的值(12,200)。如在指令i4的位1722的集合(指定用于指令的結(jié)果的第一目標(biāo)的標(biāo)識)中所指示,謂詞操作數(shù)(1)的值存儲在集合304的子集706中以作為謂詞操作數(shù)扇出。在謂詞操作數(shù)的值(1)已存儲在集合304的子集706中之后,開關(guān)1404閉合。
因為在指令i6中,位1704的集合中的第一信息(致使第一電路302使對應(yīng)執(zhí)行單元312經(jīng)配置以接收集合304或集合902的內(nèi)容)具有值01,所以對應(yīng)執(zhí)行單元312經(jīng)配置以接收集合304的內(nèi)容,所述內(nèi)容是配置用于分別作為第一操作數(shù)及謂詞操作數(shù)扇出的子集502的內(nèi)容及子集706的內(nèi)容。因此,真值(1)存儲在指令i6的位1716的集合(指示對應(yīng)執(zhí)行單元312已接收謂詞操作數(shù))中。
或者,代替響應(yīng)于位1704的集合中的第一信息具有值01而具有存儲在位1716的集合中的真值(1),位(未說明)的集合可指定用于關(guān)于集合304的內(nèi)容的信息。舉例來說,位的此集合可存儲在存儲器單元的集合中。舉例來說,存儲器單元的此集合中存在所述信息可指示集合304已接收所述內(nèi)容。舉例來說,位的此集合可為“或”門(未說明)的第一輸入,位1716的集合可為“或”門的第二輸入,并且“或”門的輸出可指示對應(yīng)執(zhí)行單元312已接收指令的第一操作數(shù)。在一個方面中,位(未說明)的另一集合可指定用于關(guān)于集合902的內(nèi)容的信息。舉例來說,位的此集合可存儲在存儲器單元的集合中。舉例來說,存儲器單元的此集合中存在所述信息可指示集合902已接收所述內(nèi)容。舉例來說,位的此集合可為“或”門的第三輸入。舉例來說,如果集合304的內(nèi)容及集合902的內(nèi)容都經(jīng)配置以通過對應(yīng)執(zhí)行單元312接收作為操作數(shù),那么其它電路(未說明)可指示誤差。
因為謂詞操作數(shù)(存儲在子集706中)具有真值(1),所以真值(1)存儲在指令i6的位1720的集合(指示通過指令接收的謂詞操作數(shù)具有真值)中。因此,在指令i6中,對應(yīng)執(zhí)行單元312具有如通過位1708、1712及1716的對應(yīng)集合中的每一者中的真值及通過位1718的對應(yīng)集合中的值等于位1720的對應(yīng)集合中的值確定的所有其操作數(shù)。因此,對應(yīng)執(zhí)行單元312可執(zhí)行指令。
因為在指令i7中,位1704的集合中的第一信息(致使第一電路302使對應(yīng)執(zhí)行單元312經(jīng)配置以接收集合304或集合902的內(nèi)容)具有值01,對應(yīng)執(zhí)行單元312經(jīng)配置以接收集合304的內(nèi)容,所述內(nèi)容是配置用于分別作為第一操作數(shù)及謂詞操作數(shù)扇出的子集502的內(nèi)容及子集706的內(nèi)容。因此,真值(1)存儲在指令i7的位1716的集合(指示對應(yīng)執(zhí)行單元312已接收謂詞操作數(shù))中。
或者,代替響應(yīng)于位1704的集合中的第一信息具有值01而具有存儲在位1716的集合中的真值(1),位(未說明)的集合可指定用于關(guān)于集合304的內(nèi)容的信息。舉例來說,位的此集合可存儲在存儲器單元的集合中。舉例來說,存儲器單元的此集合中存在所述信息可指示集合304已接收所述內(nèi)容。舉例來說,位的此集合可為“或”門(未說明)的第一輸入,位1716的集合可為“或”門的第二輸入,并且“或”門的輸出可指示對應(yīng)執(zhí)行單元312已接收指令的第一操作數(shù)。在一個方面中,位(未說明)的另一集合可指定用于關(guān)于集合902的內(nèi)容的信息。舉例來說,位的此集合可存儲在存儲器單元的集合中。舉例來說,存儲器單元的此集合中存在所述信息可指示集合902已接收所述內(nèi)容。舉例來說,位的此集合可為“或”門的第三輸入。舉例來說,如果集合304的內(nèi)容及集合902的內(nèi)容都經(jīng)配置以通過對應(yīng)執(zhí)行單元312接收作為操作數(shù),那么其它電路(未說明)可指示誤差。
因為謂詞操作數(shù)(存儲在子集706中)具有真值(1),所以真值(1)存儲在指令i7的位1720的集合(指示通過指令接收的謂詞操作數(shù)具有真值)中。因此,在指令i7中,對應(yīng)執(zhí)行單元312不具有如通過位1718的對應(yīng)集合中的值不等于位1720的對應(yīng)集合中的值,即使位1708、1712及1716的對應(yīng)集合中的每一者具有對應(yīng)真值而確定的所有其操作數(shù)。因此,對應(yīng)執(zhí)行單元312無法執(zhí)行指令。
圖23說明在已執(zhí)行指令i6之后,在時間t=4處一些存儲器單元及開關(guān)的狀態(tài)。
在已執(zhí)行指令i6之后,如在指令i6的位1722的集合(指定用于指令的結(jié)果的第一目標(biāo)的標(biāo)識)中所指示,從第一操作數(shù)(60,000)減去第二操作數(shù)(14,000)的差值(46,000)存儲在存儲器單元m3的集合中。
圖24是說明用于扇出指令的結(jié)果的方法2400的實例的流程圖。在方法2400中,在操作2402處,第一指令的結(jié)果可存儲在存儲器單元的第一集合中。在操作2404處,第二指令的操作代碼(即,操作碼)可存儲在存儲器單元的第二集合中。在操作2406處,第二指令的信息可存儲在存儲器單元的第三集合中。第二指令的格式可包含指定用于操作代碼的位的集合及指定用于信息的位的集合。在操作2408處,可提供經(jīng)配置以存儲第二指令的操作數(shù)的存儲器單元的第四集合。存儲器單元的第一集合、存儲器單元的第二集合、存儲器單元的第三集合及存儲器單元的第四集合可不相交。在操作2410處,可響應(yīng)于存儲器單元的第三集合中存在所述信息而使執(zhí)行單元經(jīng)配置以接收存儲器單元的第一集合的內(nèi)容作為第二指令的操作數(shù)。
本領(lǐng)域技術(shù)人員將了解,可使用多種不同技術(shù)及技藝中的任一者來表示信息及信號。舉例來說,可通過電壓、電流、電磁波、磁場或磁粒子、光場或光粒子或其任何組合來表示在整個以上描述中參考的數(shù)據(jù)、指令、命令、信息、信號、位、符號及芯片。
盡管前述描述提供說明性方面,但應(yīng)注意,可在不脫離如由所附權(quán)利要求書所定義的范圍的情況下對這些說明性方面作出各種改變及修改。