亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

基于多核塊的指令集架構(gòu)中的寄存器重命名的制作方法

文檔序號:11333680閱讀:273來源:國知局
基于多核塊的指令集架構(gòu)中的寄存器重命名的制造方法與工藝

本文所揭示的方面大體上涉及將架構(gòu)寄存器映射到物理寄存器,且明確地說,涉及在基于塊的指令集架構(gòu)的環(huán)境中,將架構(gòu)寄存器映射到物理寄存器。



背景技術(shù):

計算機程序表示作為指令序列的算法。序列的次序稱為程序次序。通常,在編程器可理解的源代碼中表示的計算機程序中的指令通過編譯器重組成由處理單元可執(zhí)行的機器代碼。隨著消費者為越來越多的應(yīng)用程序提供了市場,電子行業(yè)一直致力于提高處理單元的速度。

同時執(zhí)行多個指令(即,并行處理)的能力是提高處理單元的速度的一種方法。在并行處理中,處理單元包含多個執(zhí)行單元。超長指令字(vliw)是呈現(xiàn)用以并行處理的一種方法的處理器架構(gòu)設(shè)計。在vliw架構(gòu)中,將指令分組成集束。通常,所述集束內(nèi)的指令是彼此獨立的。另外,vliw架構(gòu)經(jīng)配置以使得通常獲取并調(diào)度所述集束中的指令來作為一個單元執(zhí)行。在用以并行處理的另一種方法中,執(zhí)行單元響應(yīng)于指令所需的所有操作數(shù)已由執(zhí)行單元接收而執(zhí)行指令塊。因為使用此方法,有可能在第二執(zhí)行單元執(zhí)行第二指令之前,第一執(zhí)行單元執(zhí)行第一指令,即使第一指令在程序次序中的位置晚于第二指令,所以此處理單元可稱為亂序(ooo)處理單元。

基于塊的指令集架構(gòu)可經(jīng)配置以結(jié)合根據(jù)基于塊的微架構(gòu)而配置的ooo處理單元來操作。在基于塊的指令集架構(gòu)中,計算機程序中的指令可被指派給還可稱為塊的群組。在基于塊的微架構(gòu)中,計算機處理單元的計算機處理器核心可經(jīng)配置以執(zhí)行作為一個單元的指令塊。

然而,因為計算機程序通常包含第一指令(即,生產(chǎn)指令)的結(jié)果是第二指令(即,消費指令)的操作數(shù)的情形,所以ooo處理單元的實施方案需要考慮消費指令的操作數(shù)取決于生產(chǎn)指令的情形。當(dāng)消費指令等待生產(chǎn)指令使其結(jié)果可用于消費指令時出現(xiàn)的延遲(即,等待時間)可漸漸損害并行處理的優(yōu)點。



技術(shù)實現(xiàn)要素:

示范性方面可針對一種用于將架構(gòu)寄存器映射到物理寄存器的設(shè)備。所述設(shè)備可包含存儲器和控制電路。所述存儲器可經(jīng)配置以存儲核內(nèi)寄存器重命名映射表和核間寄存器重命名映射表。所述核內(nèi)寄存器重命名映射表可經(jīng)配置以將架構(gòu)寄存器映射到多核處理器的核心的物理寄存器。所述核間寄存器重命名映射表可經(jīng)配置以響應(yīng)于確定物理寄存器是對已由第一核心執(zhí)行、正在第一核心上執(zhí)行,或預(yù)期在第一核心上執(zhí)行的架構(gòu)寄存器的最近寫入的位置,使所述架構(gòu)寄存器與第一核心的識別有關(guān),所述最近寫入是根據(jù)程序次序。所述控制電路可經(jīng)配置以維持所述核內(nèi)寄存器重命名映射表和所述核間寄存器重命名映射表。

另一示范性方面可針對用于將架構(gòu)寄存器映射到物理寄存器的另一設(shè)備。所述另一設(shè)備可包含:用于將架構(gòu)寄存器映射到多核處理器的核心的物理寄存器的裝置;以及用于響應(yīng)于確定物理寄存器是對已由所述核心執(zhí)行、正在所述核心上執(zhí)行,或預(yù)期在所述核心上執(zhí)行的架構(gòu)寄存器的最近寫入的位置而使架構(gòu)寄存器與所述核心的識別有關(guān)的裝置,所述最近寫入是根據(jù)程序次序。

又一示范性方面可針對一種用于在多核處理器上執(zhí)行讀取指令的方法??蓞⒖嫉谝恢噶顗K的核內(nèi)寄存器重命名映射表來確定多核處理器的第一核心的物理寄存器是否為已由所述第一核心執(zhí)行的向架構(gòu)寄存器的最近寫入的位置,所述最近寫入是根據(jù)程序次序。可參考所述第一核心的核間寄存器重命名映射表來確定多核處理器的第二核心是否包含物理寄存器,其為對已由第二核心執(zhí)行、正在第二核心上執(zhí)行,或預(yù)期在第二核心上執(zhí)行的架構(gòu)寄存器的最近寫入的位置。可響應(yīng)于所述第二核心包含作為向架構(gòu)寄存器的最近寫入的位置的物理寄存器,從第二核心的物理寄存器讀取值。

又另一示范性方面可針對一種用于在基于塊的處理器核心上執(zhí)行寫入指令的方法??蓪⒅祵懭氲交趬K的處理器核心的物理寄存器,其對應(yīng)于架構(gòu)寄存器。所述寫入指令可為第一指令塊的指令??纱_定包含用于架構(gòu)寄存器的后續(xù)寫入指令的第二指令塊。可確定第一指令塊與第二指令塊之間的中間指令塊。所述物理寄存器的識別可記錄在與所述中間指令塊相關(guān)聯(lián)的核內(nèi)寄存器重命名映射表的記錄的第一字段中??蓪⒂涗浀牡诙侄蔚闹翟O(shè)定成指示物理寄存器是已由基于塊的處理器核心執(zhí)行的對架構(gòu)寄存器的最近寫入的位置,所述最近寫入是根據(jù)程序次序。

附圖說明

在詳細(xì)描述、所附權(quán)利要求書和附圖中描述這些和其它樣本方面。

圖1是說明其中可操作基于塊的計算機處理單元的系統(tǒng)的實例的框圖。

圖2是說明基于塊的計算機處理器核心的實例的框圖。

圖3是說明一組保留站陣列的實例的框圖。

圖4到9是說明在圖1中說明的基于塊的計算機處理器核心上以一序列時間周期執(zhí)行的指令塊的實例的圖。

圖10是說明指令塊和相關(guān)聯(lián)的核內(nèi)寄存器重命名映射表的實例的圖。

圖11是說明核內(nèi)寄存器重命名映射表的實例的圖。

圖12是說明產(chǎn)生圖11中說明的核內(nèi)寄存器重命名映射表的過程的一部分的實例的圖。

圖13是說明指令塊和相關(guān)聯(lián)的實時寫入掩碼的實例的圖。

圖14是說明指令塊和相關(guān)聯(lián)的核間寄存器重命名映射表的實例的圖。

圖15是說明核間寄存器重命名映射表的實例的圖。

圖16和17是說明產(chǎn)生圖15中說明的核間寄存器重命名映射表的過程的實例的圖。

圖18是說明指令塊和相關(guān)聯(lián)的核間寫入圖的實例的圖。

圖19是說明產(chǎn)生核間寫入掩碼的過程的實例的圖。

圖20是說明產(chǎn)生與將在后續(xù)執(zhí)行階段在基于塊的計算機處理器核心上執(zhí)行的初始指令塊相關(guān)聯(lián)的輸出核內(nèi)寄存器重命名映射表的經(jīng)更改過程的一部分的實例的圖。

圖21是用于將架構(gòu)寄存器映射到物理寄存器的設(shè)備的框圖。

圖22到24是說明用于在多核處理器上執(zhí)行讀取指令的方法的實例的流程圖。

圖25是說明用于在基于塊的處理器核心上執(zhí)行寫入指令的方法的實例的流程圖。

圖26是說明用于確定圖25中參考的第一指令塊與第二指令塊之間的中間指令塊的方法的實例的流程圖。

根據(jù)慣例,圖式中所說明的各種特征可能并非按比例繪制。因此,為了清晰起見,可任意擴大或減小各種特征的尺寸。另外,為了清楚起見,可簡化圖式中所說明的實施方案。因此,圖式可能并未說明給定設(shè)備或裝置的全部組件。最后,可貫穿說明書和圖式使用相同參考標(biāo)號來表示相同特征。

具體實施方式

本文所揭示的方面大體上涉及將架構(gòu)寄存器映射到物理寄存器,且明確地說,涉及在基于塊的指令集架構(gòu)的環(huán)境中,將架構(gòu)寄存器映射到物理寄存器。

基于塊的指令集架構(gòu)可經(jīng)配置以通過根據(jù)基于塊的微架構(gòu)配置的亂序(ooo)計算機處理單元操作。在基于塊的指令集架構(gòu)中,計算機程序中的指令可被指派給還可稱為塊的群組。顯式數(shù)據(jù)圖執(zhí)行(edge)指令集架構(gòu)可為基于塊的指令集架構(gòu)的實例。在基于塊的微架構(gòu)中,計算機處理單元的計算機處理器核心可經(jīng)配置以執(zhí)行作為一個單元的指令塊。

基于塊的計算機處理器核心可包含多個執(zhí)行單元。執(zhí)行單元響應(yīng)于指令所需的所有操作數(shù)均已由執(zhí)行單元接收而執(zhí)行所述指令塊的指令。有可能在第二執(zhí)行單元可執(zhí)行第二指令之前,第一執(zhí)行單元可執(zhí)行第一指令,即使第一指令在程序次序中的位置晚于第二指令。

然而,一般來說,基于塊的計算機處理單元可經(jīng)配置,使得在第一指令塊在程序次序中的位置早于第二指令塊的情況下,在第二指令塊的指令開始執(zhí)行之前,第一指令塊的指令開始執(zhí)行。

指令塊中的指令數(shù)可處于一到最大數(shù)目(包含一和所述最大數(shù)目)的范圍內(nèi)??上鄬τ谟嬎銠C處理器核心的微架構(gòu)來定義所述最大數(shù)目。舉例來說,所述最大數(shù)目可等于計算機處理器核心的保留站陣列中的保留站的數(shù)目。舉例來說,但不作為限制,如果計算機處理器核心的保留站陣列具有32個保留站,那么指令塊中的指令數(shù)目可限制于最大數(shù)目32。

一般來說,編譯器可經(jīng)配置以根據(jù)指令的程序次序?qū)⒅噶钪概山o指令塊。然而,編譯器還可經(jīng)配置以識別或預(yù)測指令之間的依賴性并且優(yōu)選地將指令指派給指令塊,使得相依指令被指派給相同指令塊。

指令塊可包含塊標(biāo)頭。塊標(biāo)頭可至少用于識別一個指令塊的指令,且將此指令塊與其它指令塊區(qū)分開。在一方面,塊標(biāo)頭可包含用于識別指令塊中的若干指令的信息。

通常,計算機程序可包含源代碼中的指令序列,其中第一指令(即,原因指令)經(jīng)配置以確定條件的有效性,且第二指令(即,生效指令)經(jīng)配置以基于原因指令(例如,分支化指令(例如,如果x為真,那么y))的結(jié)果而執(zhí)行。此外,有時可存在兩個生效指令,其經(jīng)配置以使得:第一生效指令(即,有效條件指令)經(jīng)配置以在原因指令的結(jié)果指示條件有效的情況下執(zhí)行;第二生效指令(即,無效條件指令)經(jīng)配置以在原因指令的結(jié)果指示條件無效(例如如果x為真,那么y,否則z)的情況下執(zhí)行。

然而,在基于塊的計算機處理器核心中,可在執(zhí)行原因指令之前(即,在已確定條件的有效性之前)執(zhí)行至少一個生效指令。

因為原因指令和生效指令兩者可被指派給相同指令塊,所以可配置基于塊的計算機處理器核心,使得給定指令塊的指令的結(jié)果是推測性結(jié)果,直到基于塊的計算機處理器核心確定哪些推測性結(jié)果是可靠結(jié)果為止。推測性結(jié)果可存儲在緩沖存儲器中。使基于塊的計算機處理器核心確定給定指令塊的哪些推測性結(jié)果是可信結(jié)果的過程可稱為使指令塊交付于可信結(jié)果。

舉例來說,如果在執(zhí)行原因指令之前(即,在已確定條件的有效性之前)執(zhí)行至少一個有效條件指令,那么此生效指令的推測性結(jié)果可存儲在緩沖存儲器中。在所述原因指令執(zhí)行以確定條件的有效性之后,基于塊的計算機處理器核心可確定有效條件指令的推測性結(jié)果是否為可信結(jié)果。如果所述原因指令的結(jié)果指示條件有效,那么基于塊的計算機處理器核心可交付于有效條件指令的結(jié)果?;蛘撸e例來說,如果在執(zhí)行原因指令之前(即,在已確定條件的有效性之前)執(zhí)行至少一個無效條件指令,那么此生效指令的推測性結(jié)果可存儲在緩沖存儲器中。在所述原因指令執(zhí)行以確定條件的無效性之后,基于塊的計算機處理器核心可確定無效條件指令的推測性結(jié)果是否為可信結(jié)果。如果原因指令的結(jié)果指示條件無效,那么基于塊的計算機處理器核心可交付于無效條件指令的結(jié)果。盡管通常不是這樣的情形,但可能存在在執(zhí)行原因指令之前(即,在已確定所述條件的有效性或無效性之前),執(zhí)行至少一個有效條件指令和至少一個無效條件指令兩者的情況。在此情況下,這些生效指令的推測性結(jié)果可存儲在緩沖存儲器中。在原因指令執(zhí)行以確定條件的有效性或無效性之后,基于塊的計算機處理器核心可確定有效條件指令的推測性結(jié)果是否為可信結(jié)果,或無效條件指令的推測性結(jié)果是否為可信結(jié)果。如果原因指令的結(jié)果指示條件有效,那么基于塊的計算機處理器核心可交付于有效條件指令的結(jié)果;如果原因指令的結(jié)果指示條件無效,那么基于塊的計算機處理器核心可交付于無效條件指令的結(jié)果。

在一方面,基于塊的計算機處理器核心可經(jīng)配置以響應(yīng)于指令塊的指令的執(zhí)行處于特定狀態(tài)而使指令塊交付。在一方面,指令塊可響應(yīng)于以下各項中的至少一者的完成而交付:(1)指令塊中將信息寫入到架構(gòu)寄存器的指令,(2)指令塊中將信息存儲在存儲器中的指令,或(3)指令塊中分支到另一指令塊的指令。在一方面,塊標(biāo)頭可包含用來識別架構(gòu)寄存器中的哪些是對應(yīng)指令塊的寫入指令的目標(biāo)的信息,所述指令塊預(yù)期在基于塊的計算機處理器核心上執(zhí)行。在一方面,塊標(biāo)頭可包含用來執(zhí)行指令塊的指令中的哪些預(yù)期將信息存儲在存儲器中(即,存儲指令)的信息。在一方中,塊標(biāo)頭中用來識別存儲指令的信息可以對存儲指令中指示次序的識別的參考作索引,所述次序是根據(jù)其中可執(zhí)行存儲指令的程序次序。

如上文所描述,可配置基于塊的計算機處理器核心,使得在執(zhí)行原因指令之前執(zhí)行至少一個生效指令。另外,可配置基于塊的架構(gòu),使得原因指令的結(jié)果可為生效指令的操作數(shù)。換句話說,原因指令可為生產(chǎn)指令,且生效指令可為消費指令。在此情況下,此操作數(shù)可稱為預(yù)測。因為可配置基于塊的架構(gòu),使得直到指令所需的所有操作數(shù)已由執(zhí)行單元接收才通過執(zhí)行單元執(zhí)行指令,所以使原因指令的結(jié)果作為生效指令的操作數(shù)可有利地防止基于塊的計算機處理器核心不必要地執(zhí)行生效指令。防止基于塊的計算機處理器核心不必要地執(zhí)行生效指令可有利地減少基于塊的計算機處理器核心所消耗的電量。

舉例來說,可配置基于塊的架構(gòu),使得如果原因指令的結(jié)果指示條件有效,那么此結(jié)果可為有效條件指令的預(yù)測操作數(shù),使得有效條件指令的執(zhí)行單元可經(jīng)配置以執(zhí)行有效條件指令;然而,此結(jié)果將不是無效條件指令的預(yù)測操作數(shù),使得可防止無效條件指令的執(zhí)行單元不必要地執(zhí)行無效條件指令。同樣,舉例來說,如果原因指令的結(jié)果指示條件無效,那么此結(jié)果可為無效條件指令的預(yù)測操作數(shù),使得無效條件指令的執(zhí)行單元可經(jīng)配置以執(zhí)行有效條件指令;然而,此結(jié)果將不是有效條件指令的預(yù)測操作數(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)換成預(yù)測的有向非循環(huán)圖(dag)。在一個方面,塊預(yù)測器可經(jīng)配置以將預(yù)測存儲在預(yù)測表中,并且跨越基于塊的計算機處理器核心分配這些預(yù)測表的至少若干部分。在一個方面,塊預(yù)測器可經(jīng)配置以產(chǎn)生關(guān)于預(yù)測的置信度的信息。在一個方面,塊預(yù)測器可經(jīng)配置以在基于由預(yù)測確定的執(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)配置以存取l2高速緩沖存儲器116以接收待執(zhí)行的至少一個指令塊,存儲至少一個指令塊的執(zhí)行的結(jié)果,或這兩者。

在其中基于塊的計算機處理單元102包含多個基于塊的計算機處理器核心114的方面中,核心互連網(wǎng)絡(luò)118可用于促進基于塊的計算機處理器核心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)配置以促進去往和來自網(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)、按鈕、話音處理器等,或前述各項的任何組合。至少一個輸入模塊110可耦合到系統(tǒng)總線104。

至少一個輸出模塊112可包含(舉例來說,但不作為限制)打印機、顯示器、音頻輸出裝置、圖形輸出裝置、視頻輸出裝置、另一視覺指示器等,或前述各項的任何組合。至少一個輸出模塊112可耦合到系統(tǒng)總線104。在一個方面,至少一個輸出模塊112可包含至少一個顯示器130。至少一個顯示器130可包含但不限于,陰極射線管、液晶顯示器、等離子顯示器、發(fā)光二極管顯示器、有機發(fā)光二極管顯示器等,或前述各項的任何組合。系統(tǒng)100可進一步包含經(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的實例的框圖?;趬K的計算機處理器核心114可經(jīng)配置以耦合到l2高速緩沖存儲器116。基于塊的計算機處理器核心114可經(jīng)配置以存取l2高速緩沖存儲器116以接收待執(zhí)行的至少一個指令塊,存儲至少一個指令塊的執(zhí)行的結(jié)果,或這兩者。任選地,基于塊的計算機處理器核心114可經(jīng)配置以耦合到核心互連網(wǎng)絡(luò)118。在其中基于塊的計算機處理單元102包含多個基于塊的計算機處理器核心114的方面中,核心互連網(wǎng)絡(luò)118可用于促進基于塊的計算機處理器核心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)生的預(yù)測確定的執(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。在當(dāng)前指令塊226中,響應(yīng)于到實際下一指令塊226的分支指令的執(zhí)行,可將實際下一指令塊226與所預(yù)測的下一指令塊226進行比較。

塊定序器206可經(jīng)配置以從l1指令高速緩沖存儲器202接收關(guān)于指令塊226的信息,且從塊預(yù)測器204接收關(guān)于預(yù)測的信息。塊定序器206可經(jīng)配置以維持指令塊226的次序。塊定序器206可經(jīng)配置以一次獲取指令塊226的若干位。位的數(shù)目可在從一到最大數(shù)目(包含一和最大數(shù)目)的范圍內(nèi)。所述最大數(shù)目可例如為指令塊226的塊標(biāo)頭中的位數(shù)。舉例來說,且不作為限制,塊標(biāo)頭中的位數(shù)可為128。因為塊定序器206可獲取的位的數(shù)目可大于指令塊226的單個指令中的位的數(shù)目,所以塊定序器206可經(jīng)配置以在指令的獲取集束中獲取指令塊226中的指令。指令的獲取集束可為指令塊226的指令的子集。舉例來說,且不作為限制,指令塊226的單個指令中的位的數(shù)目可為32。舉例來說,且不作為限制,因為塊定序器206可經(jīng)配置以一次獲取最大數(shù)目的位,其可為128,且因為指令塊226的單個指令中的位數(shù)可為32,所以塊定序器206可經(jīng)配置以一次獲取指令塊226的指令的獲取集束,其中指令的所述獲取集束中的指令的數(shù)目可在從一到四(包含一和四)的范圍內(nèi)。(舉例來說,且不作為限制,如果指令塊226中的指令的數(shù)目為32,那么指令塊226可包含指令的八個獲取集束)。在其中基于塊的計算機處理單元102包含多個基于塊的計算機處理器核心114的方面中,塊定序器206可經(jīng)配置以與核心組合接口224交換信息。

至少一個指令解碼級208可經(jīng)配置以從l1指令高速緩沖存儲器202接收指令塊226。至少一個指令解碼級208可經(jīng)配置以對指令塊226中的指令進行解碼。舉例來說,至少一個指令解碼級208可經(jīng)配置以對指令塊226-a到226-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ù)目(包含一和最大數(shù)目)的范圍內(nèi)??上鄬τ谟嬎銠C處理器核心114的微架構(gòu)來定義所述最大數(shù)目。舉例來說,可同時執(zhí)行的指令塊226的最大數(shù)目可等于計算機處理器核心114的集合302(見圖3)的保留站306的陣列304的數(shù)目。舉例來說,但不作為限制,如果計算機處理器核心114具有四個保留站陣列,那么可同時執(zhí)行的指令塊226的最大數(shù)目可限制于四個指令塊226。舉例來說,但不作為限制,如果可同時執(zhí)行的指令塊226的最大數(shù)目限于四個指令塊,那么指令塊226-a、226-b、226-c(未示出),以及226-d(未示出)可同時在執(zhí)行指令的進程中。

至少一個執(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和l1數(shù)據(jù)高速緩沖存儲器216從至少一個存儲器單元126接收數(shù)據(jù)。加載/存儲單元214可經(jīng)配置以將數(shù)據(jù)傳輸?shù)街辽僖粋€執(zhí)行單元212。加載/存儲單元214可經(jīng)配置以經(jīng)由l1數(shù)據(jù)高速緩沖存儲器216和l2高速緩沖存儲器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可包含物理寄存器堆。寄存器單元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單元。舉例來說,但不作為限制,寄存器單元218可包含128個物理寄存器。

在其中基于塊的計算機處理單元102包含多個基于塊的計算機處理器核心114的方面中,核心組合接口224可經(jīng)配置以與塊定序器交換信息,且與核心互連網(wǎng)絡(luò)118交換信息以促進基于塊的計算機處理器核心114之間的通信。

圖3是說明保留站306的陣列304的集合302的實例的框圖。舉例來說,保留站306的陣列304的集合302可包含在指令調(diào)度器222(見圖2)中。保留站306的陣列304的集合302可包含至少一個陣列304。舉例來說,但不作為限制,圖3中說明陣列304-a、304-b、304-c和304-d。每一陣列304可包含至少一個保留站306。舉例來說,圖3中的陣列304-a中說明n個保留站306-a、306-b、...、306-n。舉例來說,但不作為限制,n可為32。每一保留站306可耦合到優(yōu)先權(quán)編碼器308(或仲裁器)。優(yōu)先權(quán)編碼器308(或仲裁器)可經(jīng)配置以將存儲在已接收到指令所需的所有操作數(shù)的保留站306中的每一指令坐標(biāo)投送到至少一個執(zhí)行單元212(見圖2)?;蛘撸⒎鞘姑恳槐A粽?06耦合到優(yōu)先權(quán)編碼器308(或仲裁器),而是每一保留站306可耦合到至少一個執(zhí)行單元212中的對應(yīng)一者。

基于塊的指令集架構(gòu)可定義將在計算機程序的執(zhí)行期間使用的一組架構(gòu)寄存器。具有由指令集架構(gòu)定義的所述組架構(gòu)寄存器可允許計算機程序經(jīng)編譯來參考架構(gòu)寄存器而不是參考寄存器單元218(見圖2)的物理寄存器來執(zhí)行指令。與寄存器單元218相關(guān)聯(lián)的控制電路可維持至少一個寄存器重命名映射表,以將計算機程序的指令所參考的每一架構(gòu)寄存器映射到寄存器單元218的對應(yīng)物理寄存器。然而,如上文所描述,在基于塊的指令集架構(gòu)中:(1)可將計算機程序中的指令指派給塊,(2)單個基于塊的計算機處理器核心114(見圖1和2)可同時執(zhí)行若干指令塊226(見圖2),且(3)所述基于塊的計算機處理單元102(見圖1)可經(jīng)配置以致使至少一個基于塊的計算機處理器核心114結(jié)合所述至少一個基于塊的計算機處理器核心114中的至少另一者操作,作為核心組合。指令跨指令塊226的分布以及指令塊226在基于塊的計算機處理器核心114之間的分布可使將架構(gòu)寄存器映射到物理寄存器的努力復(fù)雜,至少因為架構(gòu)寄存器是針對計算機程序的所有指令定義的,而物理寄存器駐存于基于塊的計算機處理器核心114中的每一者的寄存器單元218內(nèi)。

此外,基于塊的指令集架構(gòu)可經(jīng)配置以使得第一指令塊226的消費指令通過從第二指令226塊的生產(chǎn)指令已向其寫入生產(chǎn)指令的結(jié)果的架構(gòu)寄存器讀取來接收運算數(shù)。類似地,第一指令塊226的生產(chǎn)指令通過向第三指令塊226的消費指令從其讀取生產(chǎn)指令的結(jié)果作為消費指令的運算數(shù)的架構(gòu)寄存器寫入,來傳輸生產(chǎn)指令的結(jié)果。換句話說,基于塊的指令集架構(gòu)可經(jīng)配置以使用架構(gòu)寄存器來在不同指令塊226的指令之間傳送操作數(shù)和結(jié)果。

圖4到9是說明在基于塊的計算機處理器核心114上以一序列時間周期執(zhí)行的指令塊226的實例的圖。舉例來說,但不作為限制,圖4到9中說明的基于塊的計算機處理器核心114可包含圖3中說明的保留站306的陣列304的集合302:陣列304-a、304-b、304-c和304-d。如上文所描述,包含于計算機程序中的指令塊226之中的可由單個基于塊的計算機處理器核心114同時執(zhí)行的指令塊226(見圖2)的數(shù)目可等于計算機處理器核心114的保留站306的陣列304的數(shù)目。因此,圖4到9中說明的基于塊的計算機處理器核心114可同時執(zhí)行四個指令塊226。如果計算機程序中的指令塊226的數(shù)目大于可(由單個基于塊的計算機處理器核心114,或由若干基于塊的計算機處理器核心114,如果基于塊的計算機處理單元102(見圖1)已致使所述基于塊的計算機處理器核心114中的若干者作為核心組合來操作)同時執(zhí)行的指令塊226的數(shù)目,那么可在執(zhí)行階段執(zhí)行計算機程序中的指令塊226。

圖4說明在時間t=0時的基于塊的計算機處理器核心114。在時間t=0,塊定序器206可獲取包含于計算機程序中的指令塊226(見圖2)之中的第一指令塊404的塊標(biāo)頭402。塊預(yù)測器204(見圖2)可使用塊標(biāo)頭402中的信息來預(yù)測包含于計算機程序中的指令塊226之中的哪一指令塊226包含可能將基于包含于第一指令塊404中的原因指令的結(jié)果而執(zhí)行的至少一個生效指令。舉例來說,塊預(yù)測器204可預(yù)測第二指令塊502(見圖5)包含可能將基于包含于第一指令塊404中的原因指令的結(jié)果而執(zhí)行的至少一個生效指令。

圖5說明在時間t=1時的基于塊的計算機處理器核心114。在時間t=1,塊定序器206可獲取第二指令塊502的塊標(biāo)頭504。塊預(yù)測器204(見圖2)可使用塊標(biāo)頭504中的信息來預(yù)測包含于計算機程序中的指令塊226(見圖2)之中的哪一指令塊226包含可能基于包含于第二指令塊502中的原因指令的結(jié)果而執(zhí)行的至少一個生效指令。舉例來說,塊預(yù)測器204可預(yù)測第三指令塊602(見圖6)包含可能將基于包含于第二指令塊502中的原因指令的結(jié)果而執(zhí)行的至少一個生效指令。至少一個指令解碼級208可獲取并解碼第一指令塊404的第一指令集束506。因為陣列304中的一者可用于支持第一指令塊404的執(zhí)行,所以可將第一指令塊404的第一指令集束506傳達(dá)給可用陣列304中的一者,例如傳達(dá)給陣列304-a,以開始執(zhí)行。

圖6說明在時間t=2時的基于塊的計算機處理器核心114。在時間t=2,塊定序器206可獲取第三指令塊602的塊標(biāo)頭604。塊預(yù)測器204(見圖2)可使用塊標(biāo)頭604中的信息來預(yù)測包含于計算機程序中的指令塊226(見圖2)之中的哪一指令塊226包含可能基于包含于第三指令塊602中的原因指令的結(jié)果而執(zhí)行的至少一個生效指令。舉例來說,塊預(yù)測器204可預(yù)測第四指令塊702(見圖7)包含可能將基于包含于第三指令塊602中的原因指令的結(jié)果而執(zhí)行的至少一個生效指令。至少一個指令解碼級208可獲取并解碼第一指令塊404的第二獲取指令集束606,其可傳達(dá)給陣列304-a以開始執(zhí)行。至少一個指令解碼級208還可獲取并解碼第二指令塊502的第一獲取指令集束608。因為陣列304中的一者可用于支持第二指令塊502的執(zhí)行,所以可將第二指令塊502的第一獲取指令集束608傳達(dá)給可用陣列304中的一者,例如傳達(dá)給陣列304-b,以開始執(zhí)行。

圖7說明在時間t=3時的基于塊的計算機處理器核心114。在時間t=3,塊定序器206可獲取第四指令塊702的塊標(biāo)頭704。塊預(yù)測器204(見圖2)可使用塊標(biāo)頭704中的信息來預(yù)測包含于計算機程序中的指令塊226(見圖2)之中的哪一指令塊226包含可能基于包含于第四指令塊702中的原因指令的結(jié)果而執(zhí)行的至少一個生效指令。舉例來說,塊預(yù)測器204可預(yù)測第五指令塊802(見圖8)包含可能將基于包含于第四指令塊702中的原因指令的結(jié)果而執(zhí)行的至少一個生效指令。至少一個指令解碼級208可獲取并解碼第一指令塊404的第三獲取指令集束706,其可傳達(dá)給陣列304-a以開始執(zhí)行。至少一個指令解碼級208還可獲取并解碼第二指令塊502的第二獲取指令集束708,其可傳達(dá)給陣列304-b以開始執(zhí)行。至少一個指令解碼級208還可獲取并解碼第三指令塊602的第一獲取指令集束710。因為陣列304中的一者可用于支持第三指令塊602的執(zhí)行,所以塊定序器206還可獲取第三指令塊602的第一獲取指令集束710,第三指令塊602的第一獲取指令集束710可傳達(dá)給可用陣列304中的一者,例如傳達(dá)給陣列304-c,以開始執(zhí)行。

圖8說明在時間t=4時的基于塊的計算機處理器核心114。在時間t=4,塊定序器206可獲取第五指令塊802的塊標(biāo)頭804。塊預(yù)測器204(見圖2)可使用塊標(biāo)頭804中的信息來預(yù)測包含于計算機程序中的指令塊226(見圖2)之中的哪一指令塊226包含可能基于包含于第五指令塊802中的原因指令的結(jié)果而執(zhí)行的至少一個生效指令。舉例來說,塊預(yù)測器204可預(yù)測第六指令塊902(見圖9)包含可能將基于包含于第五指令塊802中的原因指令的結(jié)果而執(zhí)行的至少一個生效指令。至少一個指令解碼級208可獲取并解碼第一指令塊404的第四獲取指令集束806,其可傳達(dá)給陣列304-a以開始執(zhí)行。至少一個指令解碼級208還可獲取并解碼第二指令塊502的第三獲取指令集束808,其可傳達(dá)給陣列304-b以開始執(zhí)行。至少一個指令解碼級208還可獲取并解碼第三指令塊602的第二獲取指令集束810,其可傳達(dá)給陣列304-c以開始執(zhí)行。至少一個指令解碼級208還可獲取并解碼第四指令塊702的第一獲取指令集束812。因為陣列304中的一者可用于支持第四指令塊702的執(zhí)行,所以第四指令塊702的第一獲取指令集束812可傳達(dá)給可用陣列304-d,以開始執(zhí)行。

圖9說明在時間t=5時的基于塊的計算機處理器核心114。在時間t=5,塊定序器206可獲取第六指令塊902的塊標(biāo)頭904。塊預(yù)測器204(見圖2)可使用塊標(biāo)頭904中的信息來預(yù)測包含于計算機程序中的指令塊226(見圖2)之中的哪一指令塊226包含可能基于包含于第六指令塊902中的原因指令的結(jié)果而執(zhí)行的至少一個生效指令。舉例來說,塊預(yù)測器204可預(yù)測第七指令塊(未示出)包含可能將基于包含于第六指令塊902中的原因指令的結(jié)果而執(zhí)行的至少一個生效指令。至少一個指令解碼級208可獲取并解碼第一指令塊404的第五獲取指令集束906,其可傳達(dá)給陣列304-a以開始執(zhí)行。至少一個指令解碼級208還可獲取并解碼第二指令塊502的第四獲取指令集束908,其可傳達(dá)給陣列304-b以開始執(zhí)行。至少一個指令解碼級208還可獲取并解碼第三指令塊602的第三獲取指令集束910,其可傳達(dá)給陣列304-c以開始執(zhí)行。至少一個指令解碼級208還可獲取并解碼第四指令塊702的第二獲取指令集束912,其可傳達(dá)給陣列304-d以開始執(zhí)行。至少一個指令解碼級208還可獲取并解碼第五指令塊802的第一獲取指令集束914。然而,因為陣列304中無一者可用于支持第五指令塊802的執(zhí)行,所以第五指令塊802的第一獲取指令集束914可存儲在至少一個指令解碼級208中,直到第一指令塊404、第二指令塊502、第三指令塊602或第四指令塊702中的一者可完成執(zhí)行其指令且可交付于其可信結(jié)果,使得陣列304中的其對應(yīng)一者可用于支持第五指令塊802的執(zhí)行為止。

以此方式,如上文所描述,可在執(zhí)行階段執(zhí)行計算機程序中的指令塊226。第一執(zhí)行階段可包含傳達(dá)到陣列304-a的第一指令塊404的執(zhí)行、傳達(dá)到陣列304-b的第二指令塊502的執(zhí)行、傳達(dá)到陣列304-c的第三指令塊602的執(zhí)行,以及傳達(dá)到陣列304-d的第四指令塊702的執(zhí)行。第二執(zhí)行階段可包含在傳達(dá)到陣列304中的可用一者之后的第五指令塊802的執(zhí)行、在傳達(dá)到陣列304中的可用一者之后的第六指令塊902的執(zhí)行、在傳達(dá)到陣列304中的可用一者之后的第七指令塊(未示出)的執(zhí)行,以及在傳達(dá)到陣列304中的可用一者之后的第八指令塊(未示出)的執(zhí)行??赏瑯拥貓?zhí)行額外執(zhí)行階段,直到已執(zhí)行計算機程序的所有指令塊226為止。此外,執(zhí)行階段與陣列304中的對應(yīng)一者有關(guān),使得其可為基于塊的計算機處理器核心114可正同時執(zhí)行兩個執(zhí)行階段(例如在第一執(zhí)行階段中執(zhí)行傳達(dá)到陣列304-b的第二指令塊502,在第一執(zhí)行階段中執(zhí)行傳達(dá)到陣列304-c的第三指令塊602,在第一執(zhí)行階段中執(zhí)行傳達(dá)到陣列304-d的第四指令塊702,以及在第二執(zhí)行階段中執(zhí)行傳達(dá)到陣列304-a的第五指令塊902)的情況。

如上文所描述,指令跨指令塊226(見圖2)的分布可使將架構(gòu)寄存器映射到駐存于基于塊的計算機處理器核心114的寄存器單元218內(nèi)的物理寄存器的努力復(fù)雜。在一方面,基于塊的計算機處理器核心114可至少產(chǎn)生、存儲和/或維持至少一個核內(nèi)寄存器重命名映射表。

圖10是說明指令塊226(見圖2)和相關(guān)聯(lián)的核內(nèi)寄存器重命名映射表的實例的圖。所述圖包含第一指令塊404(傳達(dá)到陣列304-a)、第二指令塊502(傳達(dá)到陣列304-b)、第三指令塊602(傳達(dá)到陣列304-c),以及第四指令塊702(傳達(dá)到陣列304-d)。所述圖還包含第一核內(nèi)寄存器重命名映射表1002、第二核內(nèi)寄存器重命名映射表1004、第三核內(nèi)寄存器重命名映射表1006、第四核內(nèi)寄存器重命名映射表1008和第五核內(nèi)寄存器重命名映射表1010。

圖11是說明核內(nèi)寄存器重命名映射表1100的實例的圖。核內(nèi)寄存器重命名映射表1100可包含一組記錄1102,其對應(yīng)于由基于塊的指令集架構(gòu)定義的一組架構(gòu)寄存器。所述組記錄1102中的每一記錄可對應(yīng)于一架構(gòu)寄存器。核內(nèi)寄存器重命名映射表1100可以對架構(gòu)寄存器的參考作索引。舉例來說,但不作為限制,如果基于塊的指令集架構(gòu)定義包含64個架構(gòu)寄存器的一組架構(gòu)寄存器,那么核內(nèi)寄存器重命名映射表1100可包含64個記錄。在一方面,核內(nèi)寄存器重命名映射表1100可存儲在寄存器單元218(見圖2)中。

所述組記錄1102中的每一記錄可包含第一字段1104,以存儲寄存器單元218的已映射到對應(yīng)架構(gòu)寄存器的物理寄存器的識別。物理寄存器的識別可為物理寄存器編號。物理寄存器編號可使用log2m位數(shù)以二進制形式表示,其中m可為寄存器單元218的物理寄存器的數(shù)目。舉例來說,但不作為限制,如果寄存器單元218的物理寄存器的數(shù)目為128,那么物理寄存器數(shù)目可使用七個位以二進制形式表示。舉例來說,如圖11中所示,核內(nèi)寄存器重命名映射表1100可包含對應(yīng)于架構(gòu)寄存器k的記錄1102-k。舉例來說,記錄1102-k的第一字段1104可存儲物理寄存器編號0110011,其為已映射到對應(yīng)架構(gòu)寄存器k的物理寄存器51的識別。

所述組記錄1102中的每一記錄可包含第二字段1106以存儲指示對應(yīng)物理寄存器是否為已由基于塊的計算機處理器核心114執(zhí)行的向?qū)?yīng)架構(gòu)寄存器的最近寫入的位置的信息,所述最近寫入是根據(jù)程序次序。舉例來說,但不作為限制,如果對應(yīng)物理寄存器是已由基于塊的計算機處理器核心114執(zhí)行的向?qū)?yīng)架構(gòu)寄存器的最近寫入的位置,那么可將第二字段1106的值設(shè)定成一,所述最近寫入是根據(jù)程序次序;否則,可將第二字段1106的值設(shè)定成零。舉例來說,如圖11中所說明,可將記錄1102-j的第二字段1106的值設(shè)定成零,其可指示對應(yīng)物理寄存器編號0011011不是已由基于塊的計算機處理器核心114執(zhí)行的向?qū)?yīng)架構(gòu)寄存器j的最近寫入的位置,所述最近寫入是根據(jù)程序次序。舉例來說,如圖11中所說明,記錄1102-k的第二字段1106的值可設(shè)定成一,其可指示對應(yīng)物理寄存器編號0110011是已由基于塊的計算機處理器核心114執(zhí)行的向?qū)?yīng)架構(gòu)寄存器k的最近寫入的位置,所述最近寫入是根據(jù)程序次序。

參看圖10,每一指令塊226(見圖2)可與輸入核內(nèi)寄存器重命名映射表和輸出核內(nèi)寄存器重命名映射表相關(guān)聯(lián)。舉例來說,第一核內(nèi)寄存器重命名映射表1002可為與第一指令塊404相關(guān)聯(lián)的輸入核內(nèi)寄存器重命名映射表,且第二核內(nèi)寄存器重命名映射表1004可為與第一指令塊404相關(guān)聯(lián)的輸出核內(nèi)寄存器重命名映射表。舉例來說,第二核內(nèi)寄存器重命名映射表1004可為與第二指令塊502相關(guān)聯(lián)的輸入核內(nèi)寄存器重命名映射表,且第三核內(nèi)寄存器重命名映射表1006可為與第二指令塊502相關(guān)聯(lián)的輸出核內(nèi)寄存器重命名映射表。舉例來說,第三核內(nèi)寄存器重命名映射表1006可為與第三指令塊602相關(guān)聯(lián)的輸入核內(nèi)寄存器重命名映射表,且第四核內(nèi)寄存器重命名映射表1008可為與第三指令塊602相關(guān)聯(lián)的輸出核內(nèi)寄存器重命名映射表。舉例來說,第四核內(nèi)寄存器重命名映射表1008可為與第四指令塊702相關(guān)聯(lián)的輸入核內(nèi)寄存器重命名映射表,且第五核內(nèi)寄存器重命名映射表1010可為與第四指令塊702相關(guān)聯(lián)的輸出核內(nèi)寄存器重命名映射表。輸入核內(nèi)寄存器重命名映射表可由相關(guān)聯(lián)指令塊226的指令參考,且輸出核內(nèi)寄存器重命名映射表可反映相關(guān)聯(lián)指令塊226的指令的預(yù)期結(jié)果。

圖12是說明產(chǎn)生核內(nèi)寄存器重命名映射表1100的過程的一部分的實例的圖。所述圖包含第一核內(nèi)寄存器重命名映射表1002的每一第二字段1106、第一指令塊404的塊標(biāo)頭的寫入掩碼1202、第二核內(nèi)寄存器重命名映射表1004(初始)的每一第二字段1106、第二核內(nèi)寄存器重命名映射表1004(最終)的每一第二字段1106、第二指令塊502的塊標(biāo)頭的寫入掩碼1204,以及第三核內(nèi)寄存器重命名映射表1006(初始)的每一第二字段1106。

如上文所描述,指令塊226(見圖2)的塊標(biāo)頭可包含信息來識別架構(gòu)寄存器中的哪些是對應(yīng)指令塊226的寫入指令的目標(biāo),所述指令塊預(yù)期在基于塊的計算機處理器核心114上執(zhí)行。此信息可存儲在塊標(biāo)頭的寫入掩碼中。所述寫入掩碼中的每一位可對應(yīng)于一架構(gòu)寄存器。寫入掩碼可以對架構(gòu)寄存器的參考作索引。舉例來說,但不作為限制,如果基于塊的指令集架構(gòu)定義包含64個架構(gòu)寄存器的一組架構(gòu)寄存器,那么寫入掩碼可包含64個位。舉例來說,但不作為限制,如果對應(yīng)架構(gòu)寄存器是對應(yīng)指令塊226的寫入指令的目標(biāo),所述指令塊預(yù)期在基于塊的計算機處理器核心114上執(zhí)行,那么寫入掩碼的位的值可設(shè)定成一;否則,寫入掩碼的位的值可設(shè)定成零。

參考圖10到12,因為第一指令塊404是將在基于塊的計算機處理器核心114-c上執(zhí)行的初始指令塊226(見圖2),所以第一核內(nèi)寄存器重命名映射表1002(其為與第一指令塊404相關(guān)聯(lián)的輸入核內(nèi)寄存器重命名映射表)的每一第二字段1106的值可設(shè)定成零。

在一方面,第二核內(nèi)寄存器重命名映射表1004(初始)(其為與第一指令塊404相關(guān)聯(lián)的輸出核內(nèi)寄存器重命名映射表)的第二字段1106的值,可最初在已獲取第一指令塊404的塊標(biāo)頭之后,但在第一指令塊404的指令開始執(zhí)行之前設(shè)定。第二核內(nèi)寄存器重命名映射表1004(初始)的第二字段1106的值可最初通過執(zhí)行逐位邏輯運算,從第一核內(nèi)寄存器重命名映射表1002的第二字段1106的值和第一指令塊404的塊標(biāo)頭的寫入掩碼1202的對應(yīng)位的值產(chǎn)生。第一核內(nèi)寄存器重命名映射表1002的第二字段1106的值可為向第一“與”門(例如“與”門1206)的第一輸入。第一指令塊404的塊標(biāo)頭的寫入掩碼1202的對應(yīng)位的值可為向第一反相器(例如反相器1208)的輸入,且第一反相器(例如反相器1208)的輸出可為向第一“與”門(例如“與”門1206)的第二輸入。第一“與”門(例如“與”門1206)的輸出的值可為第二核內(nèi)寄存器重命名映射表1004(初始)的對應(yīng)第二字段1106的值。以此方式,如果特定架構(gòu)寄存器是第一指令塊404的寫入指令的目標(biāo),所述第一指令塊預(yù)期在基于塊的計算機處理器核心114上執(zhí)行(如通過使第一指令塊404的塊標(biāo)頭的寫入掩碼1202的對應(yīng)位的值設(shè)定成一來指示),那么第二核內(nèi)寄存器重命名映射表1004(初始)的對應(yīng)第二字段1106的值可最初設(shè)定成零,以反映盡管特定架構(gòu)寄存器是第一指令塊404的寫入指令的目標(biāo),所述第一指令塊預(yù)期在基于塊的計算機處理器核心114上執(zhí)行,但對應(yīng)物理寄存器還不是已在基于塊的計算機處理器核心114上執(zhí)行的向特定架構(gòu)寄存器的最近寫入的位置,所述最近寫入是根據(jù)程序次序。在第一指令塊404的執(zhí)行指令的過程期間,第二核內(nèi)寄存器重命名映射表1004的對應(yīng)第二字段1106的值可響應(yīng)于對應(yīng)物理寄存器變成已在基于塊的計算機處理器核心114上執(zhí)行的向特定架構(gòu)寄存器的最近寫入的位置而從零變?yōu)橐?,所述最近寫入是根?jù)程序次序。因此,第二核內(nèi)寄存器重命名映射表1004(最終)可反映對應(yīng)物理寄存器是已在基于塊的計算機處理器核心114上執(zhí)行的向特定架構(gòu)寄存器的最近寫入的位置,所述最近寫入是根據(jù)程序次序。

如上文所描述,第二核內(nèi)寄存器重命名映射表1004可為與第一指令塊404相關(guān)聯(lián)的輸出核內(nèi)寄存器重命名映射表,且可為與第二指令塊502相關(guān)聯(lián)的輸入核內(nèi)寄存器重命名映射表。類似地,在一方面,第三核內(nèi)寄存器重命名映射表1006(初始)(其為與第二指令塊502相關(guān)聯(lián)的輸出核內(nèi)寄存器重命名映射表)的第二字段1106的值,可最初在已獲取第二指令塊502的塊標(biāo)頭之后,但在第二指令塊502的指令開始執(zhí)行之前設(shè)定。第第三核內(nèi)寄存器重命名映射表1006(初始)的第二字段1106的值可最初通過執(zhí)行逐位邏輯運算,從第二核內(nèi)寄存器重命名映射表1004(最終)的第二字段1106的值和第二指令塊502的塊標(biāo)頭的寫入掩碼1204的對應(yīng)位的值產(chǎn)生。第二核內(nèi)寄存器重命名映射表1004(最終)的第二字段1106的值可為向第二“與”門(例如“與”門1210)的第一輸入。第二指令塊502的塊標(biāo)頭的寫入掩碼1204的對應(yīng)位的值可為向第二反相器(例如反相器1212)的輸入,且第二反相器(例如反相器1212)的輸出可為向第二“與”門(例如“與”門1210)的第二輸入。第二“與”門(例如“與”門1210)的輸出的值可為第三核內(nèi)寄存器重命名映射表1006(初始)的對應(yīng)第二字段1106的值。以此方式,如果特定架構(gòu)寄存器是第二指令塊502的寫入指令的目標(biāo),所述第二指令塊預(yù)期在基于塊的計算機處理器核心114上執(zhí)行(如通過使第一指令塊404的塊標(biāo)頭的寫入掩碼1202的對應(yīng)位的值設(shè)定成一來指示),那么第三核內(nèi)寄存器重命名映射表1006(初始)的對應(yīng)第二字段1106的值可最初設(shè)定成零,以反映盡管特定架構(gòu)寄存器是第二指令塊502的寫入指令的目標(biāo),所述第二指令塊預(yù)期在基于塊的計算機處理器核心114上執(zhí)行,但對應(yīng)物理寄存器還不是已在基于塊的計算機處理器核心114上執(zhí)行的向特定架構(gòu)寄存器的最近寫入的位置,所述最近寫入是根據(jù)程序次序。在第二指令塊502的執(zhí)行指令的過程期間,第三核內(nèi)寄存器重命名映射表1006的對應(yīng)第二字段1106的值可響應(yīng)于對應(yīng)物理寄存器變成已在基于塊的計算機處理器核心114上執(zhí)行的向特定架構(gòu)寄存器的最近寫入的位置而從零變?yōu)橐?,所述最近寫入是根?jù)程序次序。

可以相同方式產(chǎn)生其它核內(nèi)寄存器重命名映射表1100。第五核內(nèi)寄存器重命名映射表1010可為與第五指令塊802(見圖9)相關(guān)聯(lián)的輸入核內(nèi)寄存器重命名映射表,其可存儲在至少一個指令解碼級208中,直到第一指令塊404、第二指令塊502、第三指令塊602或第四指令塊702中的一者可完成其指令的執(zhí)行,且可交付于其可信結(jié)果,使得陣列304中的其相應(yīng)一者可用于在后續(xù)執(zhí)行階段支持第五指令塊802的執(zhí)行為止。

如上文所描述,計算機程序可包含源代碼中的指令序列,其中第一指令(即,原因指令)經(jīng)配置以確定條件的有效性,且第二指令(即,生效指令)經(jīng)配置以基于原因指令(例如,分支化指令(例如,如果x為真,那么y))的結(jié)果而執(zhí)行。此外,有時可存在兩個生效指令,其經(jīng)配置以使得:第一生效指令(即,有效條件指令)經(jīng)配置以在原因指令的結(jié)果指示條件有效的情況下執(zhí)行;第二生效指令(即,無效條件指令)經(jīng)配置以在原因指令的結(jié)果指示條件無效(例如如果x為真,那么y,否則z)的情況下執(zhí)行。如上文所描述,指令塊226(見圖2)的塊標(biāo)頭的寫入掩碼可包含信息來識別架構(gòu)寄存器中的哪些是對應(yīng)指令塊226的寫入指令的目標(biāo),所述指令塊預(yù)期在基于塊的計算機處理器核心114上執(zhí)行。如果對應(yīng)架構(gòu)寄存器是對應(yīng)指令塊226的寫入指令的目標(biāo),所述指令塊預(yù)期在基于塊的計算機處理器核心114上執(zhí)行,那么可將寫入掩碼的位的值設(shè)定成一。所述對應(yīng)架構(gòu)寄存器可被認(rèn)為是對應(yīng)指令塊226的寫入指令的目標(biāo),如果所述寫入指令是有效條件指令,那么所述指令塊預(yù)期在基于塊的計算機處理器核心114上執(zhí)行。換句話說,如果對應(yīng)架構(gòu)寄存器是作為對應(yīng)原因指令的有效條件指令的寫入指令的目標(biāo),那么寫入掩碼的位的值可設(shè)定成一。然而,如果實際上基于塊的計算機處理器核心114交付于無效條件指令(即,不交付于寫入指令),那么實際上,新的值不會寫入到對應(yīng)的架構(gòu)寄存器。此情形可被稱作廢止。響應(yīng)于廢止,曾由先前指令塊226的寫入指令寫入到對應(yīng)的架構(gòu)寄存器的值可維持。

在一方面,基于塊的計算機處理器核心114可至少產(chǎn)生、存儲和/或維持至少一個實時寫入掩碼。在一方面,所述至少一個實時寫入掩碼可存儲在寄存器單元218(見圖2)中。

圖13是說明指令塊226(見圖2)和相關(guān)聯(lián)的實時寫入掩碼的實例的圖。除圖10中說明的元件之外,所述圖還包含第一實時寫入掩碼1302、第二實時寫入掩碼1304、第三實時寫入掩碼1306和第四實時寫入掩碼1308。每一指令塊226(見圖2)可與實時寫入掩碼相關(guān)聯(lián)。舉例來說,第一實時寫入掩碼1302可與第一指令塊404相關(guān)聯(lián),第二實時寫入掩碼1304可與第二指令塊502相關(guān)聯(lián),第三實時寫入掩碼1306可與第三指令塊602相關(guān)聯(lián),且第四實時寫入掩碼1308可與第四指令塊702相關(guān)聯(lián)。實時寫入掩碼中的每一位可對應(yīng)于架構(gòu)寄存器。實時寫入掩碼可以對架構(gòu)寄存器的參考作索引。舉例來說,但不作為限制,如果基于塊的指令集架構(gòu)定義包含64個架構(gòu)寄存器的一組架構(gòu)寄存器,那么實時寫入掩碼可包含64個位。舉例來說,但不作為限制,如果對應(yīng)架構(gòu)寄存器是對應(yīng)指令塊226的寫入指令的目標(biāo),所述指令塊已在基于塊的計算機處理器核心114上執(zhí)行,正在基于塊的計算機處理器核心114上執(zhí)行,或預(yù)期在基于塊的計算機處理器核心114上執(zhí)行,那么實時寫入掩碼的位的值最初可設(shè)定成一;否則,實時寫入掩碼的位的值可設(shè)定成零。

在一方面中,可最初通過在已獲取第一指令塊404的塊標(biāo)頭之后,但在第一指令塊404的指令開始執(zhí)行之前,使第一指令塊404的塊標(biāo)頭的寫入掩碼1202(見圖12)的位的值復(fù)制到第一實時寫入掩碼1302的對應(yīng)位,來產(chǎn)生第一實時寫入掩碼1302??勺畛跻韵嗤姆绞疆a(chǎn)生其它實時寫入掩碼。

響應(yīng)于廢止,對應(yīng)于架構(gòu)寄存器的實時寫入掩碼中的位,所述架構(gòu)寄存器在對應(yīng)指令塊226(見圖2)的塊標(biāo)頭中識別為對應(yīng)指令塊226的寫入指令的目標(biāo),所述指令塊預(yù)期在基于塊的計算機處理器核心114上執(zhí)行,但實際上其將維持由先前指令塊226的寫入指令寫入的值,可從一變?yōu)榱?,以反映此架?gòu)寄存器將維持由先前指令塊226的寫入指令寫入的值。

如上文所描述,基于塊的計算機處理單元102(見圖1)可經(jīng)配置以致使至少一個基于塊的計算機處理器核心114結(jié)合至少一個其它基于塊的計算機處理器核心114作為核心組合來操作。如上文所描述,指令跨指令塊226(見圖2)的分布以及指令塊226在基于塊的計算機處理器核心114之間的分布可使將架構(gòu)寄存器映射駐存在基于塊的計算機處理器核心114的寄存器單元218內(nèi)的物理寄存器的努力復(fù)雜。在一方面,至少一個基于塊的計算機處理器核心114可至少產(chǎn)生、存儲和/或維持至少一個核間寄存器重命名映射表。

圖14是說明指令塊226(見圖2)和相關(guān)聯(lián)的核間寄存器重命名映射表的實例的圖。在圖中,指令塊226分布在作為核心組合的基于塊的計算機處理器核心114之間。舉例來說,圖14中說明的核心組合可圖1中說明的第二核心組合122。第二核心組合122可包含基于塊的計算機處理器核心114-c和基于塊的計算機處理器核心114-d。基于塊的計算機處理器核心114-c可包含圖10中說明的元件?;趬K的計算機處理器核心114-d可包含類似的元件布置。

舉例來說,關(guān)于基于塊的計算機處理器核心114-d,所述圖包含第五指令塊802(見圖8和9)(傳達(dá)到基于塊的計算機處理器核心114-d的陣列304中的對應(yīng)一者)、第六指令塊902(見圖9)(傳達(dá)到基于塊的計算機處理器核心114-d的陣列304中的對應(yīng)一者)、第七指令塊1402(傳達(dá)到基于塊的計算機處理器核心114-d的陣列304中的對應(yīng)一者),以及第八指令塊1404(傳達(dá)到基于塊的計算機處理器核心114-d的陣列304中的對應(yīng)一者)。關(guān)于基于塊的計算機處理器核心114-d,所述圖還包含第六核內(nèi)寄存器重命名映射表1406、第七核內(nèi)寄存器重命名映射表1408、第八核內(nèi)寄存器重命名映射表1410、第九核內(nèi)寄存器重命名映射表1412和第十核內(nèi)寄存器重命名映射表1414。

關(guān)于基于塊的計算機處理器核心114-c,所述圖還包含第一核間寄存器重命名映射表1416和第三核間寄存器重命名映射表1420。關(guān)于基于塊的計算機處理器核心114-d,所述圖還包含第二核間寄存器重命名映射表1418和第四核間寄存器重命名映射表1422。如上文所描述,核內(nèi)寄存器重命名映射表1100可包含指示物理寄存器是否為已由基于塊的計算機處理器核心(例如基于塊的計算機處理器核心114-c)執(zhí)行的向?qū)?yīng)架構(gòu)寄存器的最近寫入的位置的信息,所述最近寫入是根據(jù)程序次序。核間寄存器重命名映射表可包含核心組合中的特定基于塊的計算機處理器核心114的識別,其包含作為已由所述特定基于塊的計算機處理器核心114執(zhí)行、正在特定基于塊的計算機處理器核心114上執(zhí)行,或預(yù)期在特定基于塊的計算機處理器核心114上執(zhí)行的向?qū)?yīng)架構(gòu)寄存器的最近寫入的位置的物理寄存器,所述最近寫入是根據(jù)程序次序。

圖15是說明核間寄存器重命名映射表1500的實例的圖。核間寄存器重命名映射表1500可包含一組記錄1502,其對應(yīng)于由基于塊的指令集架構(gòu)定義的一組架構(gòu)寄存器。所述組記錄1502中的每一記錄可對應(yīng)于一架構(gòu)寄存器。核間寄存器重命名映射表1500可以對架構(gòu)寄存器的參考作索引。舉例來說,但不作為限制,如果基于塊的指令集架構(gòu)定義包含64個架構(gòu)寄存器的一組架構(gòu)寄存器,那么核間寄存器重命名映射表1500可包含64個記錄。在一方面,核間寄存器重命名映射表1500可存儲在寄存器單元218(見圖2)中。

所述組記錄1502中的每一記錄可包含字段1504以存儲核心組合中的特定基于塊的計算機處理器核心114(見圖1)的識別,其包含作為已由特定基于塊的計算機處理器核心114執(zhí)行、正在特定基于塊的計算機處理器核心114上執(zhí)行,或預(yù)期在特定基于塊的計算機處理器核心114上執(zhí)行的向?qū)?yīng)架構(gòu)寄存器的最近寫入的位置的物理寄存器,所述最近寫入是根據(jù)程序次序。當(dāng)基于塊的計算機處理單元102致使至少一個基于塊的計算機處理器核心114結(jié)合至少一個其它基于塊的計算機處理器核心114操作時,特定基于塊的計算機處理器核心114的識別可為由基于塊的計算機處理單元102(見圖1)定義的核心編號。核心編號可使用log2n位數(shù)以二進制形式表示,其中n可為核心組合中的基于塊的計算機處理器核心114的數(shù)目。舉例來說,如果核心組合中的基于塊的計算機處理器核心114的數(shù)目為二(如圖14中所說明),那么核心編號可使用一個位以二進制形式表示,如果核心組合中的基于塊的計算機處理器核心114的數(shù)目為四,那么核心編號可使用兩個位以二進制形式表示,如果核心組合中的基于塊的計算機處理器核心114的數(shù)目為八,那么核心編號可使用三個位以二進制形式表示(如圖15中所說明),等等。

舉例來說,如圖15中所說明,核間寄存器重命名映射表1500可包含對應(yīng)于架構(gòu)寄存器j的記錄1502-j。舉例來說,記錄1502-j的字段1504可存儲核心編號010,其是第三基于塊的計算機處理器核心114(如在基于塊的計算機處理單元102致使此基于塊的計算機處理器核心114結(jié)合七個其它基于塊的計算機處理器核心114作為八個基于塊的計算機處理器核心114的核心組合來操作時,由基于塊的計算機處理單元102(見圖1)定義)的識別。因此,第三基于塊的計算機處理器核心114(核心編號010)可為核心組合中的基于塊的計算機處理器核心114,其包含作為俄已由第三基于塊的計算機處理器核心114(核心編號010)執(zhí)行、正在第三基于塊的計算機處理器核心114(核心編號010)上執(zhí)行,或預(yù)期在第三基于塊的計算機處理器核心114(核心編號010)上執(zhí)行的向架構(gòu)寄存器j的最近寫入的位置的物理寄存器,所述最近寫入是根據(jù)程序次序。

參看圖14,每一基于塊的計算機處理器核心114可與執(zhí)行核間寄存器重命名映射表的第一階段和執(zhí)行核間寄存器重命名映射表的第二階段相關(guān)聯(lián)。舉例來說,第一核間寄存器重命名映射表1416可為與基于塊的計算機處理器核心114-c相關(guān)聯(lián)的執(zhí)行核間寄存器重命名映射表的第一階段,且第三核間寄存器重命名映射表1420可為與基于塊的計算機處理器核心114-c相關(guān)聯(lián)的執(zhí)行核間寄存器重命名映射表的第二階段。舉例來說,第二核間寄存器重命名映射表1418可為與基于塊的計算機處理器核心114-d相關(guān)聯(lián)的執(zhí)行核間寄存器重命名映射表的第一階段,且第四核間寄存器重命名映射表1422可為與基于塊的計算機處理器核心114-d相關(guān)聯(lián)的執(zhí)行核間寄存器重命名映射表的第二階段。執(zhí)行核間寄存器重命名映射表的第一階段可由指令塊226(見圖2)的與執(zhí)行的第一階段相關(guān)聯(lián)的指令參考,且執(zhí)行核間寄存器重命名映射表的第二階段可由指令塊226的與執(zhí)行的第二階段相關(guān)聯(lián)的指令參考。

圖16和17是說明產(chǎn)生核間寄存器重命名映射表1500的過程的實例的圖。參看圖16,所述圖包含第一指令塊404的塊標(biāo)頭的寫入掩碼1202,第二指令塊502的塊標(biāo)頭的寫入掩碼1204、第三指令塊602的塊標(biāo)頭的寫入掩碼1602、第四指令塊702的塊標(biāo)頭的寫入掩碼1604、第一核間寄存器重命名映射表1416的字段1504,以及第二核間寄存器重命名映射表1418的字段1504。

如上文參看圖14所描述,第一核間寄存器重命名映射表1416可為與基于塊的計算機處理器核心114-c相關(guān)聯(lián)的執(zhí)行核間寄存器重命名映射表的第一階段。舉例來說,當(dāng)基于塊的計算機處理單元102(見圖1)致使基于塊的計算機處理器核心114-c結(jié)合基于塊的計算機處理器核心114-d作為第二核心組合122來操作,基于塊的計算機處理單元102可將基于塊的計算機處理器核心114-c定義為第一基于塊的計算機處理器核心114(核心編號0),且基于塊的計算機處理器核心114-d定義為第二基于塊的計算機處理器核心114(核心編號1)。在一方面,作為第一基于塊的計算機處理器核心114(核心編號0)的基于塊的計算機處理器核心114-c的識別可存儲在基于塊的計算機處理器核心114-c的核心組合接口224(見圖1)中的一組存儲器單元1606(見圖16)中,且作為第二基于塊的計算機處理器核心114(核心編號1)的基于塊的計算機處理器核心114-d的識別可存儲在基于塊的計算機處理器核心114-d的核心組合接口224中的一組存儲器單元1702(見圖17)中。

如果第一指令塊404是計算機程序的初始指令塊226(見圖2),且基于塊的計算機處理器核心114-c是將在其上執(zhí)行初始指令塊226的初始基于塊的計算機處理器核心114,那么可將第一核間寄存器重命名映射表1416的每一字段1504的值設(shè)定成基于塊的計算機處理器核心114-c(核心編號0)的識別。第一核間寄存器重命名映射表1416可存儲在基于塊的計算機處理器核心114-c的寄存器單元218(見圖2)。

參考圖14到16,在一方面,可在已獲取第一指令塊404的塊標(biāo)頭、已獲取第二指令塊502的塊標(biāo)頭、已獲取第三指令塊602的塊標(biāo)頭,且已獲取第四指令塊702的塊標(biāo)頭之后,產(chǎn)生第二核間寄存器重命名映射表1418的字段1504的值。

可通過執(zhí)行逐位邏輯運算,從第一指令塊404的塊標(biāo)頭的寫入掩碼1202的對應(yīng)位的值、第二指令塊502的塊標(biāo)頭的寫入掩碼1204的對應(yīng)位的值、第三指令塊602的塊標(biāo)頭的寫入掩碼1602的對應(yīng)位的值,以及第四指令塊702的塊標(biāo)頭的寫入掩碼1604的對應(yīng)位的值產(chǎn)生第二核間寄存器重命名映射表1418的字段1504的值。對應(yīng)于特定架構(gòu)寄存器的第一指令塊404的塊標(biāo)頭的寫入掩碼1202的位的值可首先輸入到“或”門,例如“或”門1608。對應(yīng)于特定架構(gòu)寄存器的第二指令塊502的塊標(biāo)頭的寫入掩碼1204的位的值可為向“或”門(例如“或”門1608)的第二輸入。對應(yīng)于特定架構(gòu)寄存器的第三指令塊602的塊標(biāo)頭的寫入掩碼1602的位的值可為向“或”門(例如“或”門1608)的第三輸入。對應(yīng)于特定架構(gòu)寄存器的第四指令塊702的塊標(biāo)頭的寫入掩碼1604的位的值可為向“或”門(例如“或”門1608)的第四輸入。

“或”門(例如“或”門1608)的輸出可為向多路復(fù)用器(例如多路復(fù)用器1610)的選擇器輸入。對應(yīng)于第一核間寄存器重命名映射表1416的特定架構(gòu)寄存器的字段1504的值可為向多路復(fù)用器(例如多路復(fù)用器1610)的第一輸入。存儲在基于塊的計算機處理器核心114-c的核心組合接口224(見圖1)中的所述組存儲器單元1606中的基于塊的計算機處理器核心114-c(核心編號0)的識別可為向多路復(fù)用器(例如多路復(fù)用器1610)的第二輸入。如果“或”門(例如“或”門1608)的輸出的值為一,那么對應(yīng)于第二核間寄存器重命名映射表1418的特定架構(gòu)寄存器的字段1504的值可設(shè)定成基于塊的計算機處理器核心114-c(核心編號0)的識別;否則,對應(yīng)于第二核間寄存器重命名映射表1418的特定架構(gòu)寄存器的字段1504的值可設(shè)定成對應(yīng)于第一核間寄存器重命名映射表1416的特定架構(gòu)寄存器的字段1504的值。以此方式,可產(chǎn)生第二核間寄存器重命名映射表1418。第二核間寄存器重命名映射表1418可存儲在基于塊的計算機處理器核心114-d的寄存器單元218(見圖2)中。

參看圖17,所述圖包含第五指令塊802的塊標(biāo)頭的寫入掩碼1704,第六指令塊902的塊標(biāo)頭的寫入掩碼1706、第七指令塊1402的塊標(biāo)頭的寫入掩碼1708、第八指令塊1404的塊標(biāo)頭的寫入掩碼1710、第二核間寄存器重命名映射表1418的字段1504,以及第三核間寄存器重命名映射表1420的字段1504。

參考圖14、15和17,在一方面,可在已獲取第五指令塊802的塊標(biāo)頭、已獲取第六指令塊902的塊標(biāo)頭、已獲取第七指令塊1402的塊標(biāo)頭,且已獲取第八指令塊1404的塊標(biāo)頭之后,產(chǎn)生第三核間寄存器重命名映射表1420的字段1504的值。

可通過執(zhí)行逐位邏輯運算,從第五指令塊802的塊標(biāo)頭的寫入掩碼1704的對應(yīng)位的值、第六指令塊902的塊標(biāo)頭的寫入掩碼1706的對應(yīng)位的值、第七指令塊1402的塊標(biāo)頭的寫入掩碼1708的對應(yīng)位的值,以及第八指令塊1404的塊標(biāo)頭的寫入掩碼1710的對應(yīng)位的值產(chǎn)生第三核間寄存器重命名映射表1420的字段1504的值。對應(yīng)于特定架構(gòu)寄存器的第五指令塊802的塊標(biāo)頭的寫入掩碼1704的位的值可首先輸入到“或”門,例如“或”門1712。對應(yīng)于特定架構(gòu)寄存器的第六指令塊902的塊標(biāo)頭的寫入掩碼1706的位的值可為向“或”門(例如“或”門1712)的第二輸入。對應(yīng)于特定架構(gòu)寄存器的第七指令塊1402的塊標(biāo)頭的寫入掩碼1708的位的值可為向“或”門(例如“或”門1712)的第三輸入。對應(yīng)于特定架構(gòu)寄存器的第八指令塊1404的塊標(biāo)頭的寫入掩碼1710的位的值可為向“或”門(例如“或”門1712)的第四輸入。

“或”門(例如“或”門1712)的輸出可為向多路復(fù)用器(例如多路復(fù)用器1714)的選擇器輸入。對應(yīng)于第二核間寄存器重命名映射表1418的特定架構(gòu)寄存器的字段1504的值可為向多路復(fù)用器(例如多路復(fù)用器1714)的第一輸入。存儲在基于塊的計算機處理器核心114-d的核心組合接口224(見圖1)中的所述組存儲器單元1702中的基于塊的計算機處理器核心114-d(核心編號1)的識別可為向多路復(fù)用器(例如多路復(fù)用器1714)的第二輸入。如果“或”門(例如“或”門1712)的輸出的值為一,那么對應(yīng)于第三核間寄存器重命名映射表1420的特定架構(gòu)寄存器的字段1504的值可設(shè)定成基于塊的計算機處理器核心114-d(核心編號1)的識別;否則,對應(yīng)于第三核間寄存器重命名映射表1420的特定架構(gòu)寄存器的字段1504的值可設(shè)定成對應(yīng)于第二核間寄存器重命名映射表1418的特定架構(gòu)寄存器的字段1504的值。以此方式,可產(chǎn)生第三核間寄存器重命名映射表1420。第三核間寄存器重命名映射表1420可存儲在基于塊的計算機處理器核心114-c的寄存器單元218(見圖2)中??梢韵嗤绞疆a(chǎn)生其它核間寄存器重命名映射表。

或者,在一方面,上文參考圖14到17所述的產(chǎn)生核間寄存器重命名映射表的字段1504的值的過程可使用實時寫入掩碼并非指令塊226(見圖2)的塊標(biāo)頭的寫入掩碼來執(zhí)行(例如第二核間寄存器重命名映射表1418的字段1504可通過執(zhí)行逐位“或”運算,從第一實時寫入掩碼1302(見圖13)的對應(yīng)位、第二實時寫入掩碼1304的對應(yīng)位、第三實時寫入掩碼1306的對應(yīng)位以及第四實時寫入掩碼1308的對應(yīng)位產(chǎn)生)。

以此方式,在任一替代方案下,如果特定架構(gòu)寄存器是由基于塊的計算機處理器核心114-c執(zhí)行的指令塊226(見圖2)的寫入指令的目標(biāo),且稍后是由基于塊的計算機處理器核心114-d執(zhí)行的指令塊226的寫入指令的目標(biāo),那么第三核間寄存器重命名映射表1420可將基于塊的計算機處理器核心114-d(例如核心編號1)的識別反映為當(dāng)前基于塊的計算機處理器核心114,其包含作為已由基于塊的計算機處理器核心114-d(例如核心編號1)執(zhí)行、正在基于塊的計算機處理器核心114-d(例如核心編號1)上執(zhí)行,或預(yù)期在基于塊的計算機處理器核心114-d(例如核心編號1)上執(zhí)行的向特定架構(gòu)寄存器的最近寫入的位置的物理寄存器,所述最近寫入是根據(jù)程序次序。同樣地,如果特定架構(gòu)寄存器是由基于塊的計算機處理器核心114-c執(zhí)行的指令塊226的寫入指令的目標(biāo),且稍后不是基于塊的計算機處理器核心114-d所執(zhí)行的指令塊226的寫入指令的目標(biāo),那么第三核間寄存器重命名映射表1420可將基于塊的計算機處理器核心114-c(例如核心編號0)的識別反映為當(dāng)前基于塊的計算機處理器核心114,其包含作為已由基于塊的計算機處理器核心114-c(例如核心編號0)執(zhí)行、正在基于塊的計算機處理器核心114-c(例如核心編號0)上執(zhí)行,或預(yù)期在基于塊的計算機處理器核心114-c(例如核心編號0)上執(zhí)行的向特定架構(gòu)寄存器的最近寫入的位置的物理寄存器,所述最近寫入是根據(jù)程序次序。

如上文所描述,參看圖9,在單個基于塊的計算機處理器核心操作模式中,第五指令塊802可存儲在至少一個指令解碼級208中,直到第一指令塊404可完成其指令的執(zhí)行,且可交付于其可信結(jié)果,使得陣列304中的其對應(yīng)一者可用于在執(zhí)行的第二階段支持第五指令塊802的執(zhí)行。

然而,如果基于塊的計算機處理單元102(見圖1)已致使基于塊的計算機處理器核心114中的若干者作為核心組合操作(如圖14中所說明),那么可將第五指令塊802傳達(dá)到另一基于塊的計算機處理器核心114(例如基于塊的計算機處理器核心114-d),以在與第一指令塊404、第二指令塊502、第三指令塊602和第四指令塊702的執(zhí)行相同的執(zhí)行階段期間執(zhí)行。同樣地,在此情形中,第六指令塊902、第七指令塊1402和第八指令塊1404可傳達(dá)到另一基于塊的計算機處理器核心114(例如基于塊的計算機處理器核心114-d),以在與第一指令塊404、第二指令塊502、第三指令塊602和第四指令塊702的執(zhí)行相同的執(zhí)行階段期間執(zhí)行。

在圖14中說明的核心組合122中,因為第五指令塊802是將在基于塊的計算機處理器核心114-d上執(zhí)行的初始指令塊226(見圖2),所以第六核內(nèi)寄存器重命名映射表1406(其為與第五指令塊802相關(guān)聯(lián)的輸入核內(nèi)寄存器重命名映射表)的每一第二字段1106的值可設(shè)定成零。

在圖14中說明的核心組合122中,第九指令塊(未示出)可存儲在至少一個指令解碼級208(見圖9)中,直到第一指令塊404可完成其指令的執(zhí)行,且可交付于其可信結(jié)果,使得陣列304中的其對應(yīng)一者可用于在執(zhí)行的第二階段期間支持第九指令塊的執(zhí)行為止。

在圖14中說明的核心組合122中,第五核內(nèi)寄存器重命名映射表1010可為第九指令塊(未示出)的輸入核內(nèi)寄存器重命名映射表。然而,因為第五核內(nèi)寄存器重命名映射表1010的第二字段1106的值最初可通過執(zhí)行如上文所描述的逐位邏輯運算,從第四核內(nèi)寄存器重命名映射表1008的第二字段1106的值和第四指令塊702的塊標(biāo)頭的寫入掩碼1604(見圖16)的對應(yīng)位的值產(chǎn)生,第五核內(nèi)寄存器重命名映射表1010可缺乏關(guān)于特定架構(gòu)寄存器是否為基于塊的計算機處理器核心114-d所執(zhí)行的指令塊226(見圖2)的寫入指令的目標(biāo)的信息。這可為初始指令塊226(見圖2)將在后續(xù)執(zhí)行階段中在基于塊的計算機處理器核心114上執(zhí)行的特殊情形。

在一方面,至少一個基于塊的計算機處理器核心114可至少產(chǎn)生、存儲和/或維持至少一個核間寫入掩碼。在一方面,所述至少一個核間寫入掩碼可存儲在寄存器單元218(見圖2)中。在一方面,響應(yīng)于此情形,基于塊的計算機處理單元102(見圖1)可經(jīng)配置以:(1)辨別指令塊226何時為將在后續(xù)執(zhí)行階段中在基于塊的計算機處理器核心114上執(zhí)行的初始指令塊226,(2)致使初始指令塊226的指令參考與初始指令塊226相關(guān)聯(lián)的輸入核內(nèi)寄存器重命名映射表以及與基于塊的計算機處理器核心114且與后續(xù)執(zhí)行階段相關(guān)聯(lián)的核間寫入掩碼兩者,且(3)更改產(chǎn)生與初始指令塊226相關(guān)聯(lián)的輸出核內(nèi)寄存器重命名映射表的過程。

圖18是說明指令塊226(見圖2)和相關(guān)聯(lián)的核間寫入掩碼的實例的圖。除圖14中說明的元件之外,所述圖還包含第一核間寫入掩碼1802、第二核間寫入掩碼1804、第三核間寫入掩碼1806和第四核間寫入掩碼1808。每一核間寄存器重命名映射表可與核間寫入掩碼相關(guān)聯(lián)。舉例來說,第一核間寫入掩碼1802可與第一核間寄存器重命名映射表1416相關(guān)聯(lián),第二核間寫入掩碼1804可與第二核間寄存器重命名映射表1418相關(guān)聯(lián),第三核間寫入掩碼1806可與第三核間寄存器重命名映射表1420相關(guān)聯(lián),且第四核間寫入掩碼1808可與第四核間寄存器重命名映射表1422相關(guān)聯(lián)。核間寫入掩碼中的每一位可對應(yīng)于架構(gòu)寄存器。核間寫入掩碼可以對架構(gòu)寄存器的參考作索引。舉例來說,但不作為限制,如果基于塊的指令集架構(gòu)定義包含64個架構(gòu)寄存器的一組架構(gòu)寄存器,那么核間寫入掩碼可包含64個位。舉例來說,但不作為限制,如果向?qū)?yīng)架構(gòu)寄存器的最近寫入已由不是與核間寫入掩碼相關(guān)聯(lián)的基于塊的計算機處理器核心114的基于塊的計算機處理器核心114執(zhí)行,正在不是與核間寫入掩碼相關(guān)聯(lián)的基于塊的計算機處理器核心114的基于塊的計算機處理器核心114上執(zhí)行,或預(yù)期在不是與核間寫入掩碼相關(guān)聯(lián)的基于塊的計算機處理器核心114的基于塊的計算機處理器核心114上執(zhí)行,那么核間寫入掩碼的位的值可設(shè)定成一,所述最近寫入是根據(jù)程序次序;否則,核間寫入掩碼的位的值可設(shè)定成零。因此,核間寫入掩碼可其相關(guān)聯(lián)核間寄存器重命名映射表的概述。

圖19是說明產(chǎn)生核間寫入掩碼的過程的實例的圖。所述圖包含第三核間寄存器重命名映射表1420的字段1504以及第三核間寫入掩碼1806。第三核間寫入掩碼1806的位的值可從第三核間寄存器重命名映射表1420的對應(yīng)字段1504的值產(chǎn)生。第三核間寄存器重命名映射表1420的字段1504的值可為向比較器(例如比較器1902)的第一輸入。基于塊的計算機處理器核心114-c(核心編號0)的識別(其存儲在基于塊的計算機處理器核心114-c的核心組合接口224(見圖1)中的所述組存儲器單元1606(見圖16)中)可為向比較器(例如比較器1902)的第二輸入。所述比較器(例如比較器1902)可經(jīng)配置以將第三核間寄存器重命名映射表1420的字段1504的值與基于塊的計算機處理器核心114-c(核心編號0)的識別進行比較,且響應(yīng)于第三核間寄存器寫入掩碼1420的字段1504的值與基于塊的計算機處理器核心114-c(核心編號0)的識別不同而產(chǎn)生值一;否則,比較器(例如比較器1902)可經(jīng)配置以產(chǎn)生值零。比較器(例如比較器1902)的輸出可為第三核間寫入掩碼1806的對應(yīng)位的值。在一方面,在已產(chǎn)生第三核間寄存器重命名映射表1420之后,可產(chǎn)生第三核間寄存器寫入掩碼1806的位的值??梢韵嗤绞疆a(chǎn)生其它核間寫入掩碼。

如上文所描述,核間寫入掩碼可在以下情形中使用:指令塊226(見圖2)已被辨識為在后續(xù)執(zhí)行階段中將在基于塊的計算機處理器核心114上執(zhí)行的初始指令塊226。在執(zhí)行初始指令塊226(例如第九指令塊)的指令時,最初可參考輸入核內(nèi)寄存器重命名映射表(例如第五核內(nèi)寄存器重命名映射表1010)來確定對應(yīng)物理寄存器是否為已由基于塊的計算機處理器核心114(例如基于塊的計算機處理器核心114-c)執(zhí)行的向特定架構(gòu)寄存器的最近寫入的位置,所述最近寫入是根據(jù)程序次序。如果對應(yīng)物理寄存器是已由基于塊的計算機處理器核心114(例如基于塊的計算機處理器核心114-c)執(zhí)行的向特定架構(gòu)寄存器的最近寫入的位置,所述最近寫入是根據(jù)程序次序(例如對應(yīng)于特定架構(gòu)寄存器的第五核內(nèi)寄存器重命名映射表1010的第二字段1106的值已設(shè)定成一),那么可參考與基于塊的計算機處理器核心114且與后續(xù)執(zhí)行階段相關(guān)聯(lián)的核間寫入掩碼(例如第三核間寫入掩碼1806),來確定向?qū)?yīng)架構(gòu)寄存器的最近寫入是否已由不是與核間寫入掩碼相關(guān)聯(lián)的基于塊的計算機處理器核心114的先前基于塊的計算機處理器核心114(例如基于塊的計算機處理器核心114-d)執(zhí)行、正在不是與核間寫入掩碼相關(guān)聯(lián)的基于塊的計算機處理器核心114的先前基于塊的計算機處理器核心114(例如基于塊的計算機處理器核心114-d)上執(zhí)行,或預(yù)期在不是與核間寫入掩碼相關(guān)聯(lián)的基于塊的計算機處理器核心114的先前基于塊的計算機處理器核心114(例如基于塊的計算機處理器核心114-d)上執(zhí)行,所述最近寫入是根據(jù)程序次序。

另外,在此情形下,可更改產(chǎn)生與初始指令塊226相關(guān)聯(lián)的輸出核內(nèi)寄存器重命名映射表的過程。圖20是說明產(chǎn)生與初始指令塊226(見圖2)相關(guān)聯(lián)的輸出核內(nèi)寄存器重命名映射表以在后續(xù)執(zhí)行階段中在基于塊的計算機處理器核心114上執(zhí)行的經(jīng)更改過程的一部分的實例的圖。所述圖包含輸入核內(nèi)寄存器重命名映射表2002的實例的每一第二字段1106(見圖11)、核間寫入掩碼2004的實例,以及經(jīng)修改的輸入核內(nèi)寄存器重命名映射表2006的實例的每一第二字段1106??赏ㄟ^執(zhí)行逐位邏輯運算,從輸入核內(nèi)寄存器重命名映射表2002的第二字段1106以及核間寫入掩碼2004的值產(chǎn)生經(jīng)修改的輸入核內(nèi)寄存器重命名映射表2006的第二字段1106的值。輸入核內(nèi)寄存器重命名映射表2002的第二字段1106的值可為向“與”門(例如“與”門2008)的第一輸入。核間寫入掩碼2004的對應(yīng)位的值可為向反相器(例如反相器2010)的輸入,且反相器(例如反相器2010)的輸出可為向“與”門(例如“與”門2008)的第二輸入?!芭c”門(例如“與”門2008)的輸出的值可為經(jīng)修改的輸入核內(nèi)寄存器重命名映射表2006的對應(yīng)第二字段1106的值。

以此方式,經(jīng)修改的輸入核內(nèi)寄存器重命名映射表2006可為已由先前基于塊的計算機處理器核心114執(zhí)行、正在先前基于塊的計算機處理器核心114上執(zhí)行,或預(yù)期在先前基于塊的計算機處理器核心114上執(zhí)行的向?qū)?yīng)架構(gòu)寄存器的最近寫入校正輸入核內(nèi)寄存器重命名映射表2002,所述最近寫入是根據(jù)程序次序。

舉例來說,如圖20中所說明,對應(yīng)于架構(gòu)寄存器a的核間寫入掩碼2004的位的值設(shè)定成一,其可指示已由先前基于塊的計算機處理器核心114執(zhí)行、正在先前基于塊的計算機處理器核心114上執(zhí)行,或預(yù)期在先前基于塊的計算機處理器核心114上執(zhí)行的向架構(gòu)寄存器a的最近寫入,所述最近寫入是根據(jù)程序次序。因為已由先前基于塊的計算機處理器核心114執(zhí)行、正在先前基于塊的計算機處理器核心114上執(zhí)行,或預(yù)期在先前基于塊的計算機處理器核心114上執(zhí)行的向架構(gòu)寄存器a的最近寫入(所述最近寫入是根據(jù)程序次序)可為寫入到架構(gòu)寄存器a的最近值,所以可校正對應(yīng)于架構(gòu)寄存器a的輸入核內(nèi)寄存器重命名映射表2002的第二字段1106的值,以反映寫入到架構(gòu)寄存器a的最近值存儲在或?qū)⒋鎯υ谙惹盎趬K的計算機處理器核心114的寄存器單元218的物理寄存器中。

與初始指令塊226(見圖2)相關(guān)聯(lián)的輸出核內(nèi)寄存器重命名映射表的第二字段1106的值可最初通過執(zhí)行如上文所描述的逐位邏輯運算,從經(jīng)修改的輸入核內(nèi)寄存器重命名映射表2006的第二字段1106的值以及對應(yīng)指令塊(未示出)的塊標(biāo)頭的寫入掩碼的對應(yīng)位的值產(chǎn)生。

或者,在一方面中,經(jīng)修改的輸入核內(nèi)寄存器重命名映射表2006可代替輸入核內(nèi)寄存器重命名映射表2002使用,使得可做出對經(jīng)修改的輸入核內(nèi)寄存器重命名映射表2006的單個參考,而不是對輸入核內(nèi)寄存器重命名映射表2002的初始參考以及對核間寫入掩碼2004的后續(xù)參考。

圖21是用于將架構(gòu)寄存器映射到物理寄存器的設(shè)備2100的框圖。設(shè)備2100可包含存儲器2102和控制電路2104。在一方面,存儲器2102可包含于寄存器單元218(見圖2)中。在一方面,控制電路2104可包含于指令處理電路210(見圖2)中。存儲器2102可經(jīng)配置以存儲核內(nèi)寄存器重命名映射表2106和核間寄存器重命名映射表2108。核內(nèi)寄存器重命名映射表2106可經(jīng)配置以將架構(gòu)寄存器映射到多核處理器(見圖1)的第一核心的物理寄存器(見圖11)。核間寄存器重命名映射表2108可經(jīng)配置以響應(yīng)于確定物理寄存器是已由第一核心執(zhí)行、正在第一核心上執(zhí)行,或預(yù)期在第一核心上執(zhí)行的向架構(gòu)寄存器的最近寫入的位置,使所述架構(gòu)寄存器與第一核心(見圖15)的識別有關(guān),所述最近寫入是根據(jù)程序次序??刂齐娐?104可經(jīng)配置以維持核內(nèi)寄存器重命名映射表2106和核間寄存器重命名映射表2108。

在一方面,多核處理器可根據(jù)基于塊的微架構(gòu)(見圖1到9)來配置。所述第一核心可經(jīng)配置以執(zhí)行指派給指令塊的指令。指令塊可根據(jù)基于塊的指令集架構(gòu)進行配置。

在一方面,核內(nèi)寄存器重命名映射表2106可包含與第一指令塊相關(guān)聯(lián)的第一輸入核內(nèi)寄存器重命名映射表、與第一指令塊相關(guān)聯(lián)的第一輸出核內(nèi)寄存器重命名映射表、與第二指令塊相關(guān)聯(lián)的第二輸入核內(nèi)寄存器重命名映射表,以及與第二指令塊相關(guān)聯(lián)的第二輸出核內(nèi)寄存器重命名映射表(見圖10)。

在一方面,設(shè)備2100可經(jīng)配置以結(jié)合執(zhí)行讀取指令來參考第一輸入核內(nèi)寄存器重命名映射表,以確定物理寄存器是否為已由所述第一核心執(zhí)行的向架構(gòu)寄存器的最近寫入的位置,所述最近寫入是根據(jù)程序次序。舉例來說,參考圖10、11和14,設(shè)備2100可經(jīng)配置以結(jié)合執(zhí)行讀取指令參考第一核內(nèi)寄存器重命名映射表1002,以確定編號0110011的物理寄存器是否為已由第一核心114-c執(zhí)行的向架構(gòu)寄存器k的最近寫入的位置,所述最近寫入是根據(jù)程序次序。

在一方面,第一輸出核內(nèi)寄存器重命名映射表可為第二輸入核內(nèi)寄存器重命名映射表。舉例來說,參看圖10,第二核內(nèi)寄存器重命名映射表1004可為與第一指令塊404相關(guān)聯(lián)的輸出核內(nèi)寄存器重命名映射表,且可為與第二指令塊502相關(guān)聯(lián)的輸入核內(nèi)寄存器重命名映射表。

在一方面中,核內(nèi)寄存器重命名映射表可包含對應(yīng)于架構(gòu)寄存器的記錄。所述記錄可具有第一字段來存儲已映射到架構(gòu)寄存器的物理寄存器的識別。所述記錄可具有第二字段。第二字段的值可經(jīng)配置以指示物理寄存器是否為已由第一核心執(zhí)行的向架構(gòu)寄存器的最近寫入的位置,所述最近寫入是根據(jù)程序次序。舉例來說,參考圖11和14,核內(nèi)寄存器重命名映射表1100可包含對應(yīng)于架構(gòu)寄存器k的記錄1102-k。記錄1102-k可具有第一字段1104,以存儲已映射到架構(gòu)寄存器k的物理寄存器(例如編號0110011的物理寄存器)的識別。記錄1102-k可具有第二字段1106。第二字段1106的值(例如1)可經(jīng)配置以指示編號0110011的物理寄存器是否已由第一核心114-c執(zhí)行的向架構(gòu)寄存器k的最近寫入的位置,所述最近寫入是根據(jù)程序次序。

在一方面,設(shè)備2100可經(jīng)配置以結(jié)合執(zhí)行寫入指令,確定第一指令塊與具有后續(xù)寫入指令的后續(xù)指令塊之間的中間指令塊。設(shè)備2100可經(jīng)配置以將存儲在第一輸出核內(nèi)寄存器重命名映射表的第一字段中的物理寄存器的識別復(fù)制到與中間指令塊相關(guān)聯(lián)的輸出核內(nèi)寄存器重命名映射表的對應(yīng)第一字段。

舉例來說,參考圖10、11和14,如果寫入指令是第一指令塊404的,且第三指令塊602是具有后續(xù)寫入指令的后續(xù)指令塊,那么設(shè)備2100可經(jīng)配置以確定第二指令塊502是第一指令塊404與后續(xù)指令塊(例如第三指令塊602)之間的中間指令塊。設(shè)備2100可經(jīng)配置以將存儲在第二核內(nèi)寄存器重命名映射表1004的第一字段1104中的物理寄存器(例如編號0110011的物理寄存器)的識別復(fù)制到與第二指令塊502相關(guān)聯(lián)的第三核內(nèi)寄存器重命名映射表1006的對應(yīng)第一字段1104。以此方式,可使第三核內(nèi)寄存器重命名映射表1006反映編號0110011的物理寄存器是已由第一核心114-c執(zhí)行的向架構(gòu)寄存器k的最近寫入的位置,所述最近寫入是根據(jù)程序次序。

在一方面,第一指令塊可包含具有寫入掩碼的塊標(biāo)頭。寫入掩碼可具有對應(yīng)于架構(gòu)寄存器的位。所述位的值可經(jīng)配置以指示架構(gòu)寄存器是否為預(yù)期在第一核心上執(zhí)行的第一指令塊的寫入指令的目標(biāo)。

在一方面,存儲器2102可進一步經(jīng)配置以存儲實時寫入掩碼2110??刂齐娐?104可進一步經(jīng)配置以維持實時寫入掩碼2110。實時寫入掩碼2110可與第一指令塊相關(guān)聯(lián)。實時寫入掩碼2110可具有對應(yīng)于架構(gòu)寄存器的位。實時寫入掩碼2110的位的值可經(jīng)配置以指示作為預(yù)期在第一核心上執(zhí)行的第一指令塊的寫入指令的目標(biāo)的架構(gòu)寄存器是否實際上將維持曾由先前指令塊的寫入指令寫入的值。舉例來說,參看圖13,第一實時寫入掩碼1302可與第一指令塊404相關(guān)聯(lián)。

在一方面,設(shè)備2100可經(jīng)配置以響應(yīng)于確定架構(gòu)寄存器實際上將維持曾由先前指令塊的寫入指令寫入的值,確定第一指令塊與具有后續(xù)寫入指令的后續(xù)指令塊之間的中間指令塊。設(shè)備2100可經(jīng)配置以將存儲在第一輸入核內(nèi)寄存器重命名映射表的第一字段中的物理寄存器的識別復(fù)制到第一輸出核內(nèi)寄存器重命名映射表的對應(yīng)第一字段,且復(fù)制到與中間指令塊相關(guān)聯(lián)的輸出核內(nèi)寄存器重命名映射表的對應(yīng)第一字段。

舉例來說,參考圖10、11、12和14,如果對應(yīng)于架構(gòu)寄存器k的第一指令塊404的塊標(biāo)頭的寫入掩碼的位指示架構(gòu)寄存器k是預(yù)期在第一核心114-c上執(zhí)行的第一指令塊404的寫入指令的目標(biāo),但架構(gòu)寄存器k實際上將維持曾由先前指令塊的寫入指令寫入的值,那么第二核內(nèi)寄存器重命名映射表1004的第二字段1106中所指示的架構(gòu)寄存器k的狀態(tài)可能是不正確的。因為第二核內(nèi)寄存器重命名映射表1004的第二字段1106可用以產(chǎn)生第三核內(nèi)寄存器重命名映射表1006的第二字段1106,所以第三核內(nèi)寄存器重命名映射表1006的第二字段1106中所指示的架構(gòu)寄存器k的狀態(tài)也可能是不正確的。在此情況下,第一核內(nèi)寄存器重命名映射表1002的第二字段1106中所指示的架構(gòu)寄存器k的狀態(tài)可為正確的。如果第三指令塊602是具有后續(xù)寫入指令的后續(xù)指令塊,那么設(shè)備2100可經(jīng)配置以確定第二指令塊502是第一指令塊404與后續(xù)指令塊(例如第三指令塊602)之間的中間指令塊。設(shè)備2100可經(jīng)配置以將存儲在第一核內(nèi)寄存器重命名映射表1002的第一字段1104中的物理寄存器(例如編號0110011的物理寄存器)的識別復(fù)制到與第一指令塊404相關(guān)聯(lián)的第二核內(nèi)寄存器重命名映射表1004的對應(yīng)第一字段1104,且復(fù)制到與第二指令塊502相關(guān)聯(lián)的第三核內(nèi)寄存器重命名映射表1006的對應(yīng)第一字段1104。以此方式,可使第二核內(nèi)寄存器重命名映射表1004和第三核內(nèi)寄存器重命名映射表1006反映編號0110011的物理寄存器是已由第一核心114-c執(zhí)行的向架構(gòu)寄存器k的最近寫入的位置,所述最近寫入是根據(jù)程序次序。

在一方面,設(shè)備2100可經(jīng)配置以結(jié)合執(zhí)行讀取指令參考實時寫入掩碼,以確定架構(gòu)寄存器是否為已由第一核心執(zhí)行、正在第一核心上執(zhí)行,或預(yù)期在第一核心上執(zhí)行的第一指令塊的寫入指令的目標(biāo)。舉例來說,參考圖13和14,設(shè)備2100可經(jīng)配置以結(jié)合執(zhí)行第二指令塊502的讀取指令參考第一實時寫入掩碼1302,以確定架構(gòu)寄存器k是否為已由第一核心114-c執(zhí)行、正在第一核心114-c上執(zhí)行,或預(yù)期在第一核心114-c上執(zhí)行的第一指令塊404的寫入指令的目標(biāo)。第一實時寫入掩碼1302可指示架構(gòu)寄存器k實際上不是已由第一核心114-c執(zhí)行、正在第一核心114-c上執(zhí)行,或預(yù)期在第一核心114-c上執(zhí)行的第一指令塊404的寫入指令的目標(biāo)。第一實時寫入掩碼1302可指示在設(shè)備2100可校正第二核內(nèi)寄存器重命名映射表1004之前,架構(gòu)寄存器k的正確狀態(tài)。

在一方面,所述多個核內(nèi)寄存器重命名映射表的數(shù)目可等于一與第一核心可經(jīng)配置以同時執(zhí)行的指令塊的數(shù)目相加的總和(見圖10)。第一核心可經(jīng)配置以同時執(zhí)行的指令塊的數(shù)目可等于第一核心的保留站陣列的數(shù)目(見圖3到9)。傳達(dá)到一個保留站陣列的一個指令塊的執(zhí)行可為針對所述一個保留站陣列的執(zhí)行階段。第二輸出核內(nèi)寄存器重命名映射表可為將在后續(xù)執(zhí)階段期間在第一核心上執(zhí)行的初始指令塊的輸入核內(nèi)寄存器重命名映射表(見圖10)。舉例來說,參考圖10和14,第五核內(nèi)寄存器重命名映射表1010可為第四指令塊702的輸出核內(nèi)寄存器重命名映射表,以及將在后續(xù)執(zhí)行階段期間在第一核心114-c上執(zhí)行的初始指令塊的輸入核內(nèi)寄存器重命名映射表。

在一方面,多核處理器的第二核心可經(jīng)配置以結(jié)合第一核心操作。核間寄存器重命名映射表可包含與第一核心相關(guān)聯(lián)的第一核間寄存器重命名映射表,以及與第二核心相關(guān)聯(lián)的第二核間寄存器重命名映射表。舉例來說,參看圖14,第二核心114-d可經(jīng)配置以結(jié)合第一核心114-c作為核心組合122操作。第一核心114-c可至少與第一核間寄存器重命名映射表1416相關(guān)聯(lián)。第二核心114-d可至少與第三核間寄存器重命名映射表1420相關(guān)聯(lián)。

在一方面,第一核間寄存器重命名映射表可包含用于所述執(zhí)行階段的第一個第一核間寄存器重命名映射表,以及用于后續(xù)執(zhí)行階段的第二個第一核間寄存器重命名映射表。第二核間寄存器重命名映射表可包含用于所述執(zhí)行階段的第一個第二核間寄存器重命名映射表,以及用于后續(xù)執(zhí)行階段的第二個第二核間寄存器重命名映射表。舉例來說,參看圖14,第一核間寄存器重命名映射表1416可為用于所述執(zhí)行階段,且第三核間寄存器重命名映射表1420可用于后續(xù)執(zhí)行階段。第二核間寄存器重命名映射表1418可用于所述執(zhí)行階段,且第四核間寄存器重命名映射表1422可用于后續(xù)執(zhí)行階段。

在一方面,設(shè)備2100可經(jīng)配置以結(jié)合執(zhí)行讀取指令參考第一核間寄存器重命名映射表,以確定第一核心是否包含作為已由第一核心執(zhí)行、正在第一核心上執(zhí)行,或預(yù)期在第一核心上執(zhí)行的向架構(gòu)寄存器的最近寫入的位置的物理寄存器,所述最近寫入是根據(jù)程序次序。舉例來說,參看圖14,如果第六指令塊902的讀取指令被引導(dǎo)到特定架構(gòu)寄存器,且對應(yīng)于所述特定架構(gòu)寄存器的第七核內(nèi)寄存器重命名映射表1408的記錄1102的第二字段1106并不包含對應(yīng)物理寄存器是已由第二核心114-d執(zhí)行的向特定架構(gòu)寄存器的最近寫入的位置的指示,所述最近寫入是根據(jù)程序次序,那么設(shè)備2100可參考第二核間寄存器重命名映射表1418,以確定第一核心114-c是否包含作為已由第一核心114-c執(zhí)行、正在第一核心114-c上執(zhí)行,或預(yù)期在第一核心114-c上執(zhí)行的向特定架構(gòu)寄存器的最近寫入的位置的物理寄存器,所述最近寫入是根據(jù)程序次序。

在一方面,存儲器2102可進一步經(jīng)配置以存儲核間寫入掩碼2112??刂齐娐?104可進一步經(jīng)配置以維持核間寫入掩碼2112。核間寫入掩碼2112可與第一個第一核間寄存器重命名映射表相關(guān)聯(lián)。核間寫入掩碼2112可具有對應(yīng)于架構(gòu)寄存器的位。核間寫入掩碼2112的位的值可經(jīng)配置以指示向架構(gòu)寄存器的最近寫入是否已由不同核心執(zhí)行、正在不同核心上執(zhí)行,或預(yù)期在不同核心上執(zhí)行,所述最近寫入是根據(jù)程序次序。舉例來說,參看圖15,第一核間寫入掩碼2112可與第一核間寄存器重命名映射表1416相關(guān)聯(lián)。

在一方面,設(shè)備2100可經(jīng)配置以結(jié)合執(zhí)行讀取指令,且響應(yīng)于確定將在后續(xù)執(zhí)行階段期間在第一核心上執(zhí)行的指令塊是將在后續(xù)執(zhí)行階段期間在第一核心上執(zhí)行的初始指令塊,來參考核間寫入圖以確定向架構(gòu)寄存器的最近寫入是否已由不同核心執(zhí)行、正在不同核心上執(zhí)行,或預(yù)期在不同核心上執(zhí)行,所述最近寫入是根據(jù)程序次序。

舉例來說,參考圖14和18以及上文提供的這些圖的描述,如果設(shè)備2100確定將在后續(xù)執(zhí)行階段期間在第一核心114-c上(以與第一指令塊404相同的方式)執(zhí)行的第九指令塊(未示出)是將在后續(xù)執(zhí)行階段期間在第一核心114-c上執(zhí)行的初始指令塊,那么設(shè)備2100可經(jīng)配置以結(jié)合執(zhí)行讀取指令參考第三核間寫入掩碼1806,以確定向架構(gòu)寄存器的最近寫入是否已由不同核心執(zhí)行、正在不同核心上執(zhí)行,或預(yù)期在不同核心上執(zhí)行,所述最近寫入是根據(jù)程序次序。如果讀取指令屬于第九指令塊,且被引導(dǎo)到特定架構(gòu)寄存器,那么設(shè)備2100可參考第五核內(nèi)寄存器重命名映射表1010和第三核間寫入掩碼1806兩者。如果第五核內(nèi)寄存器重命名映射表1010的第二字段1106包含對應(yīng)物理寄存器是已由第一核心114-c執(zhí)行的向特定架構(gòu)寄存器的最近寫入的位置,所述最近寫入是根據(jù)程序次序,那么設(shè)備2100可參考第三核間寫入掩碼1806,因為從第四核內(nèi)寄存器重命名映射表1008產(chǎn)生的第五核內(nèi)寄存器重命名映射表1010可能缺乏關(guān)于向特定架構(gòu)寄存器的最近寫入在(相同)執(zhí)行階段期間是否曾由第二核心114-d執(zhí)行的指令塊中的一者(例如第五指令塊802、第六指令塊902、第七指令塊1402和第八指令塊1404)實施的信息。對第二核間寫入掩碼1804的參考可確定向特定架構(gòu)寄存器的最近寫入是否已由不同核心執(zhí)行、正在不同核心上執(zhí)行,或預(yù)期在不同核心上執(zhí)行,所述最近寫入是根據(jù)程序次序。如果向特定架構(gòu)寄存器的最近寫入已由不同核心執(zhí)行、正在不同核心上執(zhí)行,或預(yù)期在不同核心上執(zhí)行,所述最近寫入是根據(jù)程序次序,那么設(shè)備2100可經(jīng)配置以參考第三核間寄存器重命名映射表1420來確定所述不同核心的識別,其包含作為向特定架構(gòu)寄存器的最近寫入的位置的物理寄存器,所述最近寫入是根據(jù)程序次序。

在一方面,響應(yīng)于對應(yīng)于架構(gòu)寄存器的第一個第一核間寄存器重命名映射表的對應(yīng)字段的值不同于第一核心的識別,可將核間寫入掩碼的位的值設(shè)定成一。舉例來說,參考圖15、18和19,響應(yīng)于第三核間寄存器重命名映射表1420的對應(yīng)字段1504的值不同于第一核心114-c的識別(例如核心編號0),可將第三核間寫入掩碼1806的位的值設(shè)定成一。

在一方面,設(shè)備2100可經(jīng)配置以從核間寫入掩碼產(chǎn)生將在后續(xù)執(zhí)行階段期間在第一核心上執(zhí)行的初始指令塊的經(jīng)修改的輸入核內(nèi)寄存器重命名映射表。設(shè)備2100可經(jīng)配置以從經(jīng)修改的輸入核內(nèi)寄存器重命名映射表產(chǎn)生將在后續(xù)執(zhí)行階段期間在第一核心上執(zhí)行的初始指令塊的輸出核內(nèi)寄存器重命名映射表。舉例來說,經(jīng)修改的輸入核內(nèi)寄存器重命名映射表的第二字段的值可從核間寫入掩碼的對應(yīng)位的值,且從將在后續(xù)執(zhí)行階段期間在第一核心上執(zhí)行的初始指令塊的輸入核內(nèi)寄存器重命名映射表的對應(yīng)第二字段的值產(chǎn)生。舉例來說,參看圖10、11、18、19和20,經(jīng)修改的第五核內(nèi)寄存器重命名映射表2006的第二字段1106的值可從第三核內(nèi)寫入掩碼1806/2004,且從第五核內(nèi)寄存器重命名映射表1010/2002的對應(yīng)第二字段1106的值產(chǎn)生。

在一方面,第一個第二核間寄存器重命名映射表可包含對應(yīng)于架構(gòu)寄存器的第一記錄。第一記錄可從對應(yīng)于架構(gòu)寄存器的第一指令塊的塊標(biāo)頭的寫入掩碼的位的值,且從對應(yīng)于架構(gòu)寄存器的第二指令塊的塊標(biāo)頭的寫入掩碼的位的值產(chǎn)生。舉例來說,參考圖15和16,第二核間寄存器重命名映射表1418可包含對應(yīng)于架構(gòu)寄存器j的記錄1502-j。記錄1502-j可從對應(yīng)于架構(gòu)寄存器j的第一指令塊404的塊標(biāo)頭的寫入掩碼1202的位的值,且從對應(yīng)于架構(gòu)寄存器j的第二指令塊502的塊標(biāo)頭的寫入掩碼1204的位的值產(chǎn)生。

在一方面,第二核心可經(jīng)配置以執(zhí)行第三指令塊。第二核間寄存器重命名映射表可包含對應(yīng)于架構(gòu)寄存器的第二記錄。所述第二記錄可從第一記錄,且從對應(yīng)于架構(gòu)寄存器的第三指令塊的塊標(biāo)頭的位或?qū)懭胙诖a的值產(chǎn)生。舉例來說,參考圖15和17以及上文提供的這些圖的描述,第三核間寄存器重命名映射表1420可包含對應(yīng)于架構(gòu)寄存器j的記錄1502-j。記錄1502-j可從第一記錄,且從對應(yīng)于架構(gòu)寄存器j的第五指令塊802的塊標(biāo)頭的寫入掩碼1704的位的值產(chǎn)生。

圖22是說明用于在多核處理器上執(zhí)行讀取指令的方法2200的實例的流程圖。在方法2200中,操作2202可參考第一指令塊的核內(nèi)寄存器重命名映射表來確定多核處理器的第一核心的物理寄存器是否為已由第一核心執(zhí)行的向架構(gòu)寄存器的最近寫入的位置,所述最近寫入是根據(jù)程序次序。有利的是,維持核內(nèi)寄存器重命名映射表可允許第一核心確定第一核心的物理寄存器的識別,所述物理寄存器可為已由第一核心執(zhí)行的向架構(gòu)寄存器的最近寫入的位置,而無需第一核心與多核處理器的另一核心之間的通信。

操作2204可參考所述第一核心的核間寄存器重命名映射表來確定多核處理器的第二核心是否包含作為已由第二核心執(zhí)行、正在第二核心上執(zhí)行,或預(yù)期在第二核心上執(zhí)行的向架構(gòu)寄存器的最近寫入的位置的物理寄存器。如果第二核心的確包含作為已由第二核心執(zhí)行、正在第二核心上執(zhí)行,或預(yù)期在第二核心上執(zhí)行的向架構(gòu)寄存器的最近寫入的位置的物理寄存器,那么可參考已由第二核心執(zhí)行、正在第二核心上執(zhí)行,或預(yù)期在第二核心上執(zhí)行的最終指令塊的核內(nèi)寄存器重命名映射表,來確定第二核心的物理寄存器的識別,所述物理寄存器是已由第二核心執(zhí)行的向架構(gòu)寄存器的最近寫入的位置。

操作2206可為響應(yīng)于第二核心包含作為向架構(gòu)寄存器的最近寫入的位置的物理寄存器,而從第二核心的物理寄存器讀取值。

圖23是說明用于在多核處理器上執(zhí)行讀取指令的方法2300的實例的流程圖。在方法2300中,操作2202可參考第一指令塊的核內(nèi)寄存器重命名映射表來確定多核處理器的第一核心的物理寄存器是否為已由第一核心執(zhí)行的向架構(gòu)寄存器的最近寫入的位置,所述最近寫入是根據(jù)程序次序。操作2302可為確定第一指令塊是否為將在第一核心上執(zhí)行的執(zhí)行階段的初始指令塊。操作2304可為響應(yīng)于操作2302的結(jié)果,參考第一核心的核間寫入圖來確定向架構(gòu)寄存器的最近寫入是否已由多核處理器的不同核心執(zhí)行、正在不同核心上執(zhí)行,或預(yù)期在不同核心上執(zhí)行。操作2204可參考所述第一核心的核間寄存器重命名映射表來確定多核處理器的第二核心是否包含作為已由第二核心執(zhí)行、正在第二核心上執(zhí)行,或預(yù)期在第二核心上執(zhí)行的向架構(gòu)寄存器的最近寫入的位置的物理寄存器。操作2206可為響應(yīng)于第二核心包含作為向架構(gòu)寄存器的最近寫入的位置的物理寄存器,而從第二核心的物理寄存器讀取值。

圖24是說明用于在多核處理器上執(zhí)行讀取指令的方法2400的實例的流程圖。在方法2400中,操作2202可參考第一指令塊的核內(nèi)寄存器重命名映射表來確定多核處理器的第一核心的物理寄存器是否為已由第一核心執(zhí)行的向架構(gòu)寄存器的最近寫入的位置,所述最近寫入是根據(jù)程序次序。操作2402可為確定包含第一指令塊的執(zhí)行階段的初始指令塊。操作2404可為參考初始指令塊的實時寫入掩碼來確定架構(gòu)寄存器是否為已由第一核心執(zhí)行、正在第一核心上執(zhí)行,或預(yù)期在第一核心上執(zhí)行的初始指令塊的寫入指令的目標(biāo)。任選地,操作2406可為確定初始指令塊與第一指令塊之間的中間指令塊。任選地,操作2408可為參考中間指令塊的實時寫入掩碼來確定架構(gòu)寄存器是否為已由第一核心執(zhí)行、正在第一核心上執(zhí)行,或預(yù)期在第一核心上執(zhí)行的中間指令塊的寫入指令的目標(biāo)。操作2204可參考所述第一核心的核間寄存器重命名映射表來確定多核處理器的第二核心是否包含作為已由第二核心執(zhí)行、正在第二核心上執(zhí)行,或預(yù)期在第二核心上執(zhí)行的向架構(gòu)寄存器的最近寫入的位置的物理寄存器。操作2206可為響應(yīng)于第二核心包含作為向架構(gòu)寄存器的最近寫入的位置的物理寄存器,而從第二核心的物理寄存器讀取值。

圖25是說明用于在基于塊的處理器核心上執(zhí)行寫入指令的方法2500的實例的流程圖。在方法2500中,操作2502可為將值寫入到基于塊的處理器核心的對應(yīng)于架構(gòu)寄存器的物理寄存器。所述寫入指令可為第一指令塊的指令。操作2504可為確定包含用于架構(gòu)寄存器的后續(xù)寫入指令的第二指令塊。操作2506可為確定第一指令塊與第二指令塊之間的中間指令塊。操作2508可為將物理寄存器的識別記錄在與中間指令塊相關(guān)聯(lián)的核內(nèi)寄存器重命名映射表的記錄的第一字段中。操作2510可為設(shè)定所述記錄的第二字段的值,以指示物理寄存器是已由基于塊的處理器核心執(zhí)行的向架構(gòu)寄存器的最近寫入的位置,所述最近寫入是根據(jù)程序次序。

圖26是說明用于確定第一指令塊與第二指令塊之間的中間指令塊的方法2506的實例的流程圖。在方法2506中,操作2602可參考與中間指令塊相關(guān)聯(lián)的實時寫入掩碼來確定架構(gòu)寄存器是否為已由基于塊的處理器核心執(zhí)行、正在基于塊的處理器核心上執(zhí)行,或預(yù)期在基于塊的處理器核心上執(zhí)行的中間指令塊的寫入指令的目標(biāo)。任選地,操作2604可為確定針對第一指令塊、第二指令塊或中間指令塊中的任一者的執(zhí)行階段是否不同于針對第一指令塊、第二指令塊或中間指令塊中的任一另一者的執(zhí)行階段。任選地,操作2606可響應(yīng)于操作2604的結(jié)果,參考核間寫入圖來確定向架構(gòu)寄存器的最近寫入是否已由不同的基于塊的處理器核心執(zhí)行、正在不同的基于塊的處理器核心上執(zhí)行,或預(yù)期在不同的基于塊的處理器核心上執(zhí)行。

本領(lǐng)域技術(shù)人員將了解,可使用多種不同技術(shù)和技法中的任一者來表示信息和信號。舉例來說,可通過電壓、電流、電磁波、磁場或磁粒子、光場或光粒子或其任何組合來表示在整個以上描述中參考的數(shù)據(jù)、指令、命令、信息、信號、位、符號和芯片。

盡管前述描述提供說明性方面,但應(yīng)注意,可在不脫離如由所附權(quán)利要求書所定義的范圍的情況下對這些說明性方面作出各種改變和修改。

當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1