在多線程處理系統(tǒng)中選擇性激活恢復檢查操作的制作方法
【專利說明】在多線程處理系統(tǒng)中選擇性激活恢復檢查操作
[0001]本申請案主張2012年8月8日提交的美國臨時申請案第61/680,990號的權(quán)益,其整個內(nèi)容以引用的方式并入本文中。
技術(shù)領(lǐng)域
[0002]本發(fā)明涉及多線程處理,且更確切地說,涉及用于管理多線程處理系統(tǒng)中的發(fā)散分支指令的技術(shù)。
【背景技術(shù)】
[0003]單指令多數(shù)據(jù)(SMD)處理系統(tǒng)為包含對多個數(shù)據(jù)段執(zhí)行相同指令的多個處理元件的一種類型的平行計算系統(tǒng)。SMD系統(tǒng)可為獨立計算機或計算系統(tǒng)的子系統(tǒng)。舉例而言,一或多個SMD執(zhí)行單元可用于圖形處理單元(GPU)中以實施支持可編程著色的可編程著色單元。
[0004]SMD處理系統(tǒng)允許程序的多個執(zhí)行線程以平行方式對多個處理元件進行同步執(zhí)行,藉此增加需要對多個數(shù)據(jù)段執(zhí)行相同操作集合的程序的處理量。因為每一線程對不同數(shù)據(jù)進行操作,所以若程序包含條件性分支指令,則有可能執(zhí)行于系統(tǒng)中的一些線程可滿足分支條件而執(zhí)行于系統(tǒng)中的其它線程不滿足所述條件。此指令可被稱為發(fā)散分支指令,并致使SMD系統(tǒng)不能夠以同步方式對多個處理元件執(zhí)行所有線程。
【發(fā)明內(nèi)容】
[0005]本發(fā)明涉及用于處置發(fā)散分支指令的技術(shù),且更確切地說,涉及用于響應于發(fā)散分支指令而管理可能經(jīng)撤銷激活的線程的再激活的技術(shù)。更確切地說,本發(fā)明涉及用于在單指令多數(shù)據(jù)(SMD)處理系統(tǒng)中選擇性地激活恢復檢查操作的技術(shù)。此類技術(shù)可允許基于逐條指令選擇性地啟用或停用管理經(jīng)撤銷激活的線程的所述再激活的恢復檢查操作。本發(fā)明的所述技術(shù)可用于減少利用恢復檢查操作管理經(jīng)撤銷激活的線程的所述再激活的SIMD系統(tǒng)的功率消耗及/或改善所述系統(tǒng)的性能。
[0006]在一個實例中,本發(fā)明描述一種方法,其包含通過處理器執(zhí)行指令,所述指令包含指示是否針對所述指令執(zhí)行恢復檢查操作的信息。所述方法進一步包含通過所述處理器針對所述指令基于包含在所述指令中的所述信息,選擇性地啟用或停用所述恢復檢查操作。所述恢復檢查操作為包含比較多個恢復計數(shù)器值中的每一者與相關(guān)聯(lián)于所述指令的程序計數(shù)器值的操作。所述恢復計數(shù)器值中的每一者與執(zhí)行于所述處理器上的多個線程中的相應的一者相關(guān)聯(lián)。
[0007]在另一實例中,本發(fā)明描述一種裝置,其包含經(jīng)配置以執(zhí)行指令的處理器,所述指令包含指示是否針對所述指令執(zhí)行恢復檢查操作的信息。所述處理器經(jīng)進一步配置以針對所述指令,基于包含在所述指令中的所述信息,選擇性地啟用或停用所述恢復檢查操作。所述恢復檢查操作為包含比較多個恢復計數(shù)器值中的每一者與相關(guān)聯(lián)于所述指令的程序計數(shù)器值的操作。所述恢復計數(shù)器值中的每一者與執(zhí)行于所述處理器上的多個線程中的相應的一者相關(guān)聯(lián)。
[0008]在另一實例中,本發(fā)明描述一種設(shè)備,其包含用于執(zhí)行指令的裝置,所述指令包含指示是否針對所述指令執(zhí)行恢復檢查操作的信息。所述設(shè)備進一步包含用于針對所述指令基于包含在所述指令中的所述信息選擇性地啟用或停用所述恢復檢查操作的裝置。所述恢復檢查操作為包含比較多個恢復計數(shù)器值中的每一者與相關(guān)聯(lián)于所述指令的程序計數(shù)器值的操作。所述恢復計數(shù)器值中的每一者與執(zhí)行于處理器上的多個線程中的相應的一者相關(guān)聯(lián)。
[0009]在另一實例中,本發(fā)明描述一種計算機可讀存儲媒體,其存儲在被執(zhí)行時致使一或多個處理器執(zhí)行指令的指令,所述指令包含指示是否針對所述指令執(zhí)行恢復檢查操作的信息。所述指令進一步致使所述一或多個處理器針對所述指令基于包含在所述指令中的所述信息,選擇性地啟用或停用所述恢復檢查操作。所述恢復檢查操作為包含比較多個恢復計數(shù)器值中的每一者與相關(guān)聯(lián)于所述指令的程序計數(shù)器值的操作。所述恢復計數(shù)器值中的每一者與執(zhí)行于所述一或多個處理器上的多個線程中的相應的一者相關(guān)聯(lián)。
[0010]在附圖及下文描述中闡述本發(fā)明的一或多個實例的細節(jié)。本發(fā)明的其它特征、目標和優(yōu)勢將從所述描述及圖式以及權(quán)利要求書而顯而易見。
【附圖說明】
[0011]圖1為說明可用于實施本發(fā)明的選擇性恢復檢查激活技術(shù)的實例處理系統(tǒng)的框圖。
[0012]圖2為根據(jù)本發(fā)明更詳細地說明圖1的實例處理系統(tǒng)中的控制單元的框圖。
[0013]圖3為說明可用于實施本發(fā)明的選擇性恢復檢查激活技術(shù)的實例控制流模塊的框圖。
[0014]圖4為說明可用于實施本發(fā)明的選擇性恢復檢查激活技術(shù)的另一實例控制流模塊的框圖。
[0015]圖5為根據(jù)本發(fā)明特征化圖4中所說明的控制流模塊的示范性操作的狀態(tài)轉(zhuǎn)變表。
[0016]圖6為說明可用于實施本發(fā)明的選擇性恢復檢查激活技術(shù)的實例計算系統(tǒng)的框圖。
[0017]圖7為說明根據(jù)本發(fā)明的用于選擇性地激活恢復檢查操作的實例技術(shù)的流程圖。
[0018]圖8為說明根據(jù)本發(fā)明的用于選擇性地激活恢復檢查操作的另一實例技術(shù)的流程圖。
[0019]圖9為說明根據(jù)本發(fā)明的用于執(zhí)行恢復檢查操作的實例技術(shù)的流程圖。
[0020]圖10為說明根據(jù)本發(fā)明的用于執(zhí)行恢復檢查操作的另一實例技術(shù)的流程圖。
[0021]圖11為說明根據(jù)本發(fā)明的用于產(chǎn)生選擇性地激活恢復檢查操作的經(jīng)編譯代碼的實例技術(shù)的流程圖。
[0022]圖12為說明根據(jù)本發(fā)明的用于產(chǎn)生選擇性地激活恢復檢查操作的經(jīng)編譯代碼的另一實例技術(shù)的流程圖。
[0023]圖13說明可在無需使用本發(fā)明的選擇性恢復檢查激活技術(shù)的情況下執(zhí)行的實例程序。
[0024]圖14為說明根據(jù)本發(fā)明的用于圖13中的實例程序的實例執(zhí)行序列的表。
[0025]圖15說明可使用本發(fā)明的選擇性恢復檢查激活技術(shù)執(zhí)行的實例程序。
[0026]圖16為說明根據(jù)本發(fā)明的圖15中的實例程序的實例執(zhí)行序列的表。
【具體實施方式】
[0027]本發(fā)明涉及用于在單指令多數(shù)據(jù)(SIMD)處理系統(tǒng)中選擇性地激活恢復檢查操作的技術(shù)。具體來說,本發(fā)明的技術(shù)可允許基于逐條指令選擇性地啟用或停用管理撤銷激活線程的再激活的恢復檢查操作。本發(fā)明的技術(shù)可用于減少利用恢復檢查操作以管理撤銷激活線程的再激活的SIMD系統(tǒng)的功率消耗和/或改善所述系統(tǒng)的性能。
[0028]在SMD處理系統(tǒng)中,可由包含單一程序計數(shù)器的單一控制流單元控制所有線程。這種情況可允許程序的多個執(zhí)行線程以平行方式對多個處理元件進行同步執(zhí)行,藉此增加需要對多個數(shù)據(jù)段執(zhí)行相同操作集合的程序的處理量。然而,因為每一線程對不同數(shù)據(jù)進行操作,所以若SMD處理系統(tǒng)的指令集架構(gòu)(ISA)支持條件性分支指令,則有可能執(zhí)行于系統(tǒng)中的一些線程可滿足分支條件而執(zhí)行于系統(tǒng)中的其它線程不滿足所述條件。此分支指令可被稱為發(fā)散分支指令。若出現(xiàn)發(fā)散分支指令,則經(jīng)調(diào)度以用于一些作用中線程執(zhí)行的下一指令可不同于經(jīng)調(diào)度以用于其它作用中線程執(zhí)行的下一指令。這種情況可致使SMD處理系統(tǒng)不能夠以同步步調(diào)一致方式執(zhí)行所有線程。
[0029]用于處理發(fā)散分支指令的一種方法涉及撤銷激活滿足抑或不滿足分支條件的所有線程,使得剩余作用中線程都經(jīng)同步以執(zhí)行相同下一指令。當在給定指令周期期間撤銷激活線程時,所述線程并不在指令周期期間執(zhí)行任何指令。因而,剩余線程可繼續(xù)以步調(diào)一致方式執(zhí)行。為控制此類撤銷激活線程的再激活,可使用基于恢復計數(shù)器方法,所述方法涉及針對執(zhí)行于處理系統(tǒng)中的每一線程分配恢復計數(shù)器,將用于每一撤銷激活線程的恢復計數(shù)器設(shè)定為指示應再激活相應線程的程序計數(shù)器值的值,和在執(zhí)行每一指令之前自動地執(zhí)行恢復檢查操作。針對每一指令自動地執(zhí)行恢復檢查操作的一個缺點為每次執(zhí)行操作時恢復檢查操作可消耗大量功率,且可顯著耗用其花費以在SMD處理系統(tǒng)中處理指令的時間。
[0030]根據(jù)本發(fā)明,描述用于允許基于逐條指令選擇性地啟用或停用恢復檢查操作的技術(shù)。為在SMD處理系統(tǒng)中適當執(zhí)行程序,可未必需要在程序中針對每一指令執(zhí)行恢復檢查操作。舉例而言,對于程序中的某些指令,編譯程序可能夠在程序執(zhí)行期間確定將不需要在此類指令處發(fā)生線程再激活。因此,通過允許根據(jù)本發(fā)明的技術(shù)基于逐條指令選擇性地啟用和停用恢復檢查操作,對于已確定將并不需要發(fā)生線程再激活的此類指令,可停用恢復檢查操作。以此方式,相比于針對程序中的每一指令自動地執(zhí)行恢復檢查操作的處理系統(tǒng),本發(fā)明的技術(shù)可用于減少SMD處理系統(tǒng)的功率消耗和/或增加性能。
[0031]根據(jù)本發(fā)明的一些方面,描述經(jīng)配置以基于指示是否針對指令執(zhí)行恢復檢查的包含在所述指令中的信息,選擇性地啟用或停用指令的恢復檢查操作的處理器。若指令指示將針對所述指令執(zhí)行恢復檢查操作,則處理器可在用于執(zhí)行指令的指令周期期間執(zhí)行恢復檢查操作。類似地,若指令并不指示針對所述指令執(zhí)行恢復檢查操作,則處理器可并不在用于執(zhí)行指令的指令周期期間執(zhí)行恢復檢查操作。
[0032]恢復檢查操作可為(例如)包含將多個恢復計數(shù)器值中的每一者與相關(guān)聯(lián)于當前經(jīng)處理指令的程序計數(shù)器值比較的操作。恢復計數(shù)器值中的每一者可與執(zhí)行于處理器上的多個線程中的相應的一者相關(guān)聯(lián)。若用于撤銷激活線程的恢復計數(shù)器值等于當前程序計數(shù)器值,則可再激活線程。否則,若用于撤銷激活線程的恢復計數(shù)器值不等于當前程序計數(shù)器值,則線程可保持為撤銷激活。在執(zhí)行恢復檢查操作之前已處于作用中的任何線程可在執(zhí)行恢復檢查操作之后保持處于作用中。
[0033]根據(jù)本發(fā)明的額外方面,描述允許基于逐條指令選擇性地啟用或停用恢復檢查操作的指令集架構(gòu)(ISA)。舉例而言,ISA可包含一或多個指令,其中指令中的每一者具有當執(zhí)行相應指令時指定是否執(zhí)行恢復檢查操作的信息字段(例如,在與指令相關(guān)聯(lián)的指令周期期間)。在一些實例中,信息字段可為取決于是否應針對指令執(zhí)行恢復檢查而設(shè)定抑或重設(shè)的單一位。
[0034]根據(jù)本發(fā)明的進一步方面,描述經(jīng)配置以產(chǎn)生包含指示是否將針對特定編譯指令執(zhí)行恢復檢查的信息的編譯指令的編譯程序。在一些實例中,編譯程序可選擇程序的一或多個指令作為在執(zhí)行程序時將對其執(zhí)行恢復檢查操作的指令。響應于選擇一或多個指令,編譯程序可產(chǎn)生用于程序的編譯代碼,使得編譯代碼包含所選擇一或多個指令且使得所選擇一或多個指令包含指示將針對所選擇一或多個指令執(zhí)行恢復檢查操作的信息。
[0035]作為一個特定實例,若指令為前向分支指令的目標指令、前向跳轉(zhuǎn)指令的目標指令和若指令為后向分支指令之后的下一順序指令,則編譯程序可選擇所述指令作為將對其執(zhí)行恢復檢查操作的指令。在這個特定實例中,對于未識別為前向分支指令或前向跳轉(zhuǎn)指令的目標指令或識別為后向分支指令之后的下一順序指令的任何其它指令,編譯程序可確定對于此類指令并不需要執(zhí)行恢復檢查操作,這是因為將并不需要在此類指令處再激活程序執(zhí)行期間撤銷激活的任何線程。相比于針對每一指令執(zhí)行恢復檢查操作的系統(tǒng),并不針對此類指令執(zhí)行恢復檢查操作可減少SIMD系統(tǒng)的功率消耗和/或改善性能。
[0036]用于管理發(fā)散線程的其它技術(shù)可包含使用堆棧以存儲同步符記和發(fā)散符記。舉例而言,每次出現(xiàn)允許發(fā)散的分支指令時,可將指示最初遇到分支指令時處于作用中的線程的同步符記推送到堆棧上。若分支指令為發(fā)散分支指令,則系統(tǒng)可將指示并不采取分支的線程和對應于并不采取分支的線程的下一指令的程序計數(shù)器值的發(fā)散符記推送到堆棧上。系統(tǒng)可繼續(xù)執(zhí)行確實采取分支的剩余線程直到遇到軟件指令中指示系統(tǒng)從堆棧取出(即,拉取)發(fā)散符記的旗標為止。響應于從堆棧取出發(fā)散符記,系統(tǒng)可繼續(xù)撤銷激活確實采取分支的線程,并再激活且執(zhí)行并不采取分支的線程。系統(tǒng)可繼續(xù)執(zhí)行并不采取分支的剩余線程直到遇到軟件指令中指示系統(tǒng)從堆棧取出同步符記的另一旗標為止。響應于從堆棧取出同步符記,系統(tǒng)可繼續(xù)再激活線程使得線程狀態(tài)與最初遇到發(fā)散分支指令時相同。
[0037]然而,這種方法的一個缺點為基于堆棧的大小,系統(tǒng)可處置的嵌套式發(fā)散分支的數(shù)目是受限的。嵌套式發(fā)散分支可指在另一發(fā)散分支指令的采取路徑抑或未采取路徑的執(zhí)行期間出現(xiàn)的發(fā)散分支。即,嵌套式發(fā)散分支為當已歸因于先前出現(xiàn)的發(fā)散分支指令撤銷激活一或多個線程且尚未再激活此類線程時出現(xiàn)的發(fā)散分支。
[0038]相反于上文所描述的用于再激活發(fā)散線程的基于堆棧方法,相對于堆棧,本發(fā)明中所描述的基于恢復計數(shù)器方法可使用有限集合的恢復計數(shù)器以控制撤銷激活線程的再激活。因此,基于堆棧大小,此方法可處置的嵌套式發(fā)散分支的數(shù)目在概念上無限制且并不受限。此外,通過允許根據(jù)本發(fā)明的技術(shù)選擇性地啟用和停用恢復檢查操作,相比于針對程序中的每一指令自動地執(zhí)行恢復檢查操作的處理系統(tǒng),可減少處理系統(tǒng)的功率消耗和/或可增加處理系統(tǒng)的性能。
[0039]圖1為說明可用于實施本發(fā)明的選擇性恢復檢查激活技術(shù)的實例處理系統(tǒng)10的框圖。處理系統(tǒng)10經(jīng)配置以平行方式執(zhí)行程序指令。處理系統(tǒng)10包含控制單元12、處理元件14A到14D(統(tǒng)稱為“處理元件14”)、指令存儲裝置16、數(shù)據(jù)存儲裝置18和通信路徑20、22、24、26A到26D。通信路徑26A到26D可統(tǒng)稱為“通信路徑26”。
[0040]在一些實例中,控制單元12和處理元件14可為形成可編程處理器或可編程處理器的部分的硬件組件。舉例而言,控制單元12和處理元件14可一起形成圖形處理單元(GPU)或GPU的部分。
[0041]處理系統(tǒng)10可實施于個人計算機、桌上型計算機、膝上型計算機、計算機工作站、平板計算裝置、視頻游戲平臺或控制臺、無線通信裝置(例如,所謂的智能電話、移動電話、蜂窩式電話、衛(wèi)星電話和/或移動電話聽筒)、陸線電話、因特網(wǎng)電話、例如便攜式視頻游戲裝置或個人數(shù)字助理(PDA)的手持式裝置、個人音樂播放器、視頻播放器、顯示裝置、電視、電視機頂盒、服務器、中間網(wǎng)絡裝置、主機計算機、處理和/或顯示圖形數(shù)據(jù)的任何其它類型裝置或執(zhí)行計算的任何類型裝置中。
[0042]在一些實例中,處理系統(tǒng)10可為經(jīng)配置以使用處理元件14執(zhí)行程序的多個執(zhí)行線程的單指令多數(shù)據(jù)(SMD)處理系統(tǒng)。在此SMD系統(tǒng)中,處理元件14可關(guān)于不同數(shù)據(jù)項一起一次處理單一指令。在完成執(zhí)行與程序相關(guān)聯(lián)的所有線程之后,可退除程序。
[0043]控制單元12經(jīng)配置以控制處理系統(tǒng)10執(zhí)行存儲于指令存儲裝置16中的程序指令。對于程序的一或多個指令中的每一者,控制單元12可經(jīng)由通信路徑20從指令存儲裝置16檢索指令、處理指令并確定待由處理系統(tǒng)10處理的下一指令。
[0044]在一些實例中,控制單元12可通過致使對處理元件14中的一或多者執(zhí)行與指令相關(guān)聯(lián)的操作而處理指令。舉例而言,由控制單元12檢索的指令可為指示處理系統(tǒng)10關(guān)于由指令所指定的數(shù)據(jù)項執(zhí)行算術(shù)操作的算術(shù)指令,且控制單元12可致使處理元件14中的一或多者對指定數(shù)據(jù)項執(zhí)行算術(shù)操作。在其它實例中,控制單元12可在無需致使對處理元件14執(zhí)行操作的情況下處理指令。舉例而言,指令可為未必要求由處理元件14執(zhí)行操作的跳轉(zhuǎn)指令。
[0045]控制單元12可通過經(jīng)由通信路徑22將指令提供到處理元件14而致使對處理元件14中的一或多者執(zhí)行操作。指令可指定待由處理元件14執(zhí)行的操作。提供到處理元件14的指令可相同或不同于從指令存儲裝置16檢索的指令。在一些實例中,控制單元12可通過進行如下操作中的一或兩者而致使對處理元件14的特定子集執(zhí)行操作:激活應執(zhí)行操作的處理元件14的特定子集,和撤銷激活不應執(zhí)行操作的處理元件14的另一子集。
[0046]控制單元12可通過經(jīng)由通信路徑22將相應激活和/或撤銷激活信號提供到處理元件14中的每一者而激活和/或撤銷激活處理元件14。在一些實例中,激活和/或撤銷激活信號可包含在指定由處理元件14執(zhí)行的操作的由控制單元12提供到處理元件14的指令中。在其它實例中,激活和/或撤銷激活信號可與由控制單元12提供到處理元件14的指令分離。
[0047]控制單元12可使用處理元件14執(zhí)行程序的多個執(zhí)行線程。處理元件14中的每一者可經(jīng)配置以針對多個線程中的相應的一者處理程序指令。舉例而言,控制單元12可將執(zhí)行線程中的每一者指派到用于處理線程的處理元件14中的個別一者。程序的不同執(zhí)行線程可關(guān)于數(shù)據(jù)項集合中的不同數(shù)據(jù)項執(zhí)行相同指令集。舉例而言,處理元件14A可關(guān)于多個數(shù)據(jù)項中的第一數(shù)據(jù)項子集執(zhí)行存儲于指令存儲裝置16中的程序的第一執(zhí)行線程,且處理元件14B可關(guān)于多個數(shù)據(jù)項中的第二數(shù)據(jù)項子集執(zhí)行存儲于指令存儲裝置16中的程序的第二執(zhí)行線程。第一執(zhí)行線程可不同于第二執(zhí)行線程,且第一數(shù)據(jù)項子集可不同于第二數(shù)據(jù)項子集。
[0048]在一些實例中,控制單元12可在多個執(zhí)行線程中激活并撤銷激活個別線程。當控制單元12撤銷激活線程時,控制單元12也可撤銷激活和/或停用經(jīng)指派以執(zhí)行所述線程的處理元件14A到14D。類似地,當控制單元12激活線程時,控制單元12也可激活經(jīng)指派以執(zhí)行所述線程的處理元件14A到14D??刂茊卧?2可激活并撤銷激活一或多個線程的各種組合以幫助處置發(fā)散分支條件,如本發(fā)明中稍后進一步詳細解釋。
[0049]如本文中所使用,作用中線程可指經(jīng)激活且當前經(jīng)配置以執(zhí)行程序指令的線程。非作用中線程可指撤銷激活且當前經(jīng)配置以并不執(zhí)行程序指令的線程。對于給定指令處理周期期間執(zhí)行于處理系統(tǒng)10中的多個線程,作用中線程中的每一者可經(jīng)配置以在指令處理周期期間關(guān)于與相應作用中線程相關(guān)聯(lián)的數(shù)據(jù)處理由全域程序計數(shù)器寄存器所識別的程序指令。在相同指令處理周期期間,非作用中線程中的每一者可經(jīng)配置以并不處理程序指令。為配置作用中線程以執(zhí)行指令,控制單元12可(例如)致使在指令處理周期期間激活與作用中線程相關(guān)聯(lián)的處理元件14。類似地,為配置非作用中線程以并不執(zhí)行指令,控制單元12可致使在指令處理周期期間撤銷激活指派到非作用中線程的處理元件14。
[0050]在一些實例中,指令處理周期可指程序計數(shù)器的連續(xù)加載之間的時間間隔。舉例而言,指令處理周期可指當程序計數(shù)器加載有與第一指令相關(guān)聯(lián)的第一值時與當程序計數(shù)器加載有與第二指令相關(guān)聯(lián)的第二值時之間的時間。第二指令可為由系統(tǒng)在緊接著第一指令之后處理的指令。第一和第二值可為相同或不同值,且第一和第二指令可為相同或不同指令。在一些實例中,指令處理周期可指程序計數(shù)器的連續(xù)同步加載之間的時間間隔。在一些實例中,程序計數(shù)器的同步加載可指由時鐘信號觸發(fā)的加載。指令處理周期可在本文中替代性地被稱作指令周期或處理周期。
[0051]在處理下一指令之前的一些時間處,控制單元12可確定待由處理系統(tǒng)10處理的下一指令。取決于最近執(zhí)行指令為順序指令還是控制流指令,控制單元12確定待處理的下一指令的方式不同。若最近執(zhí)行指令為順序指令(即,并非控制流指令),則控制單元12可確定待由處理系統(tǒng)10處理的下一指令對應于存儲于指令存儲裝置16中的下一順序指令。舉例而言,指令存儲裝置16可以有序序列存儲程序指令,且下一順序指令可為在指令的有序序列中緊接著最近執(zhí)行指令之后出現(xiàn)的指令。
[0052]若最近執(zhí)行指令為控制流指令,則控制單元12可基于控制流指令中所指定的信息確定待由處理系統(tǒng)10處理的下一指令。舉例而言,控制流指令可為非條件性控制流指令(例如,非條件性分支指令或跳轉(zhuǎn)指令),在此情況下控制單元12可確定待由處理系統(tǒng)10處理的下一指令為由控制流指令所識別的目標指令。作為另一實例,控制流指令可為條件性控制流指令(例如,條件性分支指令),在此情況下控制單元12可選擇由控制流指令所識別的目標指令或存儲于指令存儲裝置16中的下一順序指令中的一者作為用以從指令存儲裝置16處理的下一指令。
[0053]如本文中所使用,控制流指令可指引導控制單元12以基于除了無條件選擇下一順序指令的技術(shù)確定用以執(zhí)行的下一指令的指令??刂屏髦噶羁芍付ù鎯τ谥噶畲鎯ρb置16中的目標指令。舉例而言,控制流指令可包含指示對應于存儲于指令存儲裝置16中的目標指令的目標程序計數(shù)器值的值。作為另一實例,控制流指令可通過引導控制單元12以從堆棧存儲結(jié)構(gòu)取出返回地址而指定目標指令。返回地址可對應于存儲于指令存儲裝置16中的目標指令