指令的狀態(tài)數(shù)據(jù)可能需要在切換可被安全進行之前被用盡并且被應(yīng)用。因此,如果重排序緩沖器電路的占用過高,則指示與切換相關(guān)聯(lián)的延遲也過高,因此不期望進行切換。
[0020]當(dāng)切換在切換點處被執(zhí)行時,在一些實施例中并且在一些情況下,可以通過用盡第一執(zhí)行電路內(nèi)的在切換點之前發(fā)送的任意指令的執(zhí)行流水線并且停止發(fā)送切換點之后的指令來實現(xiàn)切換,其中切換點之后的指令被發(fā)送給代替的第二執(zhí)行電路。執(zhí)行流水線用盡所用的時間是影響與切換相關(guān)聯(lián)的延遲的因素。
[0021]在一些其它實施例中,與上述實施例結(jié)合或是作為上述實施例的替代,第一延遲指示信號可包括完成時間信號,該完成時間信號指示切換點之前的尚未執(zhí)行的任何指令是否是具有超過閾值量的完成時間的長延遲指令。如果存在這種長延遲指令,則可能期望通過以下處理在切換點前執(zhí)行切換操作:取消在第一執(zhí)行電路中已經(jīng)發(fā)送的長延遲指令和任何后續(xù)指令的執(zhí)行,然后開始由第二執(zhí)行電路執(zhí)行始于并包括長延遲指令的程序指令。這種技術(shù)認識到,提前切換比等待長延遲指令完成更加有利。
[0022]應(yīng)該理解的是,長延遲指令可以采用各種不同的形式,然而,在一些實施例中,長延遲指令可以是導(dǎo)致第一執(zhí)行電路使用的高速緩存存儲器的至少最低級內(nèi)的高速緩存缺失的加載指令。高速緩存缺失通常涉及長延遲存儲器存取,并且在實踐中,第二執(zhí)行電路可以替代第一執(zhí)行電路等待這個數(shù)據(jù)。此外,到第二執(zhí)行電路執(zhí)行切換時,對應(yīng)于高速緩存缺失的數(shù)據(jù)很可能已經(jīng)被返回,因此第二執(zhí)行電路的等待時間會減少。
[0023]在一些實施例中,第一延遲指示信號可包括分支誤預(yù)測信號,該分支誤預(yù)測信號指示第一執(zhí)行電路內(nèi)的執(zhí)行流水線清除(execut1n pipeline flush)之前的分支指令誤預(yù)測。這種分支指令誤預(yù)測是切換操作的良好候選,因為執(zhí)行流水線內(nèi)的后續(xù)程序指令將被清除,因此在切換可被執(zhí)行前不需要等待它們被完成。
[0024]應(yīng)該理解,第一執(zhí)行電路和第二執(zhí)行電路可根據(jù)特定的實施方式共享微架構(gòu)的不同部分。在一些實施例中,第一執(zhí)行電路和第二執(zhí)行電路可共享如下各項中的一項或多項:指令獲取電路、指令譯碼電路、高速緩存存儲器電路、分支預(yù)測器電路、存儲器管理電路、和/或轉(zhuǎn)譯后備緩沖器電路。上述電路的子集或上述所有電路可根據(jù)特定的實施方式被共享。
[0025]應(yīng)該理解的是,如先前所討論的,第二執(zhí)行電路和第一執(zhí)行電路具有不同的性能特性。性能變化的方式可以不同,例如,一個實例的執(zhí)行電路可具有更好的浮點性能,而另一個可具有更好的整數(shù)性能。使用本技術(shù)的一個候選是,第二執(zhí)行電路相比第一執(zhí)行電路具有更低的功耗和更低的程序指令執(zhí)行速率的情況。從高性能且更復(fù)雜的執(zhí)行機構(gòu)到低性能且不太復(fù)雜的執(zhí)行機構(gòu)的切換常常會涉及明顯的延遲,因此在控制是否執(zhí)行切換操作時考慮到這種延遲的本技術(shù)是有用的。
[0026]從另一個方面來看,本技術(shù)提供了一種用于數(shù)據(jù)處理的裝置,包括:
[0027]用于執(zhí)行程序指令的第一執(zhí)行裝置;用于執(zhí)行程序指令的第二執(zhí)行裝置;切換控制裝置,被耦合至所述第一執(zhí)行裝置和所述第二執(zhí)行裝置,用于控制由所述第一執(zhí)行裝置執(zhí)行程序指令的第一狀態(tài)與由所述第二執(zhí)行裝置執(zhí)行程序指令的第二狀態(tài)之間的切換操作,所述切換操作包括將至少一些架構(gòu)狀態(tài)數(shù)據(jù)從所述第一執(zhí)行裝置轉(zhuǎn)移到所述第二執(zhí)行裝置,其中,所述切換控制裝置進行操作以:從所述第一執(zhí)行裝置接收取決于所述第一執(zhí)行裝置的當(dāng)前狀態(tài)的第一延遲指示信號;以及根據(jù)所述第一延遲指示信號控制從所述第一狀態(tài)到所述第二狀態(tài)的切換,所述第一延遲指示信號指示與從所述第一狀態(tài)到所述第二狀態(tài)的切換相關(guān)聯(lián)的第一延遲。
[0028]從另一個方面看,本技術(shù)提供了一種用于數(shù)據(jù)處理的方法,包括如下步驟:利用第一執(zhí)行電路執(zhí)行程序指令;利用第二執(zhí)行電路執(zhí)行程序指令;控制由所述第一執(zhí)行電路執(zhí)行程序指令的第一狀態(tài)與由所述第二執(zhí)行電路執(zhí)行程序指令的第二狀態(tài)之間的切換操作,所述切換操作包括將至少一些架構(gòu)狀態(tài)數(shù)據(jù)從所述第一執(zhí)行電路轉(zhuǎn)移到所述第二執(zhí)行電路,其中,
[0029]所述控制包括:從所述第一執(zhí)行電路接收取決于所述第一執(zhí)行電路的當(dāng)前狀態(tài)的第一延遲指示信號;以及根據(jù)所述第一延遲指示信號控制從所述第一狀態(tài)到所述第二狀態(tài)的切換,所述第一延遲指示信號指示與所述第一狀態(tài)到所述第二狀態(tài)的切換相關(guān)聯(lián)的第一延遲。
[0030]通過結(jié)合附圖閱讀對示例實施例的以下詳細說明,本發(fā)明的以上及其它對象、特征、和優(yōu)點將更加顯而易見。
【附圖說明】
[0031]圖1示意性地示出了包括第一執(zhí)行電路和第二執(zhí)行電路的用于數(shù)據(jù)處理的裝置;
[0032]圖2是示意性地示出寄存器轉(zhuǎn)移控制的流程圖;
[0033]圖3是示意性地示出推測指令執(zhí)行的流程圖;以及
[0034]圖4是示意性地示出基于延遲的切換控制的流程圖。
【具體實施方式】
[0035]圖1示意性地示出了可形成在集成電路上的用于數(shù)據(jù)處理的裝置2(例如,作為系統(tǒng)芯片集成電路的部分)。裝置2包括第一執(zhí)行電路4和第二執(zhí)行電路6。第一執(zhí)行電路包括多個執(zhí)行流水線(比如,算法流水線、加載/存儲流水線、sn?流水線、浮點流水線等),這些執(zhí)行流水線被配置為支持亂序程序執(zhí)行。為了支持這種亂序程序執(zhí)行,第一執(zhí)行電路包括存儲與尚未提交的程序指令相關(guān)聯(lián)的狀態(tài)數(shù)據(jù)的重排序緩沖器電路5。第一執(zhí)行電路4還包括存儲寄存器分配數(shù)據(jù)的寄存器分配表電路7,該寄存器分配數(shù)據(jù)表示物理寄存器和架構(gòu)寄存器之間的映射,如亂序處理器的處理器設(shè)計領(lǐng)域的人員所熟知的。
[0036]將明白的是,第一執(zhí)行電路4通常在將被執(zhí)行的每個周期的指令數(shù)目方面產(chǎn)生高性能,但通常具有消耗更高功率等級的缺點。
[0037]第二執(zhí)行電路6包括能夠支持有序執(zhí)行的諸如,算法流水線、加載/存儲流水線、SIMD流水線、矢量流水線、浮點流水線之類的流水線。該第二執(zhí)行電路6將在每個周期執(zhí)行的指令數(shù)目方面給出較低性能,但在執(zhí)行給定指令序列時通常會比第一執(zhí)行電路4消耗更少的能量。因此,第二執(zhí)行電路6在執(zhí)行程序指令序列時具有比第一執(zhí)行電路4更低的能耗,但第二執(zhí)行電路6將比第一執(zhí)行電路4花費更多時間去執(zhí)行該程序指令序列。因此,第一執(zhí)行電路4提供了較高性能和較高功率的執(zhí)行機構(gòu),而第二執(zhí)行電路6代表較低性能和較低功率的執(zhí)行機構(gòu)。
[0038]應(yīng)該理解,第一執(zhí)行電路4和第二執(zhí)行電路6的微架構(gòu)不同并且是異構(gòu)的。第一執(zhí)行電路4和第二執(zhí)行電路6之間的不同不僅限于與指令執(zhí)行速率和消耗的功率等級相關(guān)聯(lián)的不同。在本技術(shù)的一些示例實施例中,第一執(zhí)行機構(gòu)可很好地適用于執(zhí)行特定類型的程序指令代碼(例如,包含許多浮點程序指令的程序指令代碼),而第二執(zhí)行電路可較好地適用于執(zhí)行包含許多sn?程序指令的程序指令。執(zhí)行機構(gòu)的其它特殊作用/重點也是可能的。
[0039]將看到,圖1的裝置還包括指令高速緩存8、指令獲取電路10、指令譯碼電路12的兩個實例、指令發(fā)送電路14的兩個實例、數(shù)據(jù)高速緩存16、分支預(yù)測器電路18、轉(zhuǎn)譯后備緩沖器電路20、和存儲器管理單元電路22。指令高速緩存8、獲取電路10、數(shù)據(jù)高速緩存16、分支預(yù)測器電路18、轉(zhuǎn)譯后備緩沖器電路20、和存儲器管理單元電路22由第一執(zhí)行電路4和第二執(zhí)