欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

基于寄存器相關(guān)聯(lián)偏好向執(zhí)行管線發(fā)布指令以及相關(guān)指令處理電路、處理器系統(tǒng)、方法及...的制作方法

文檔序號:6534118閱讀:180來源:國知局
基于寄存器相關(guān)聯(lián)偏好向執(zhí)行管線發(fā)布指令以及相關(guān)指令處理電路、處理器系統(tǒng)、方法及 ...的制作方法
【專利摘要】本發(fā)明揭示基于寄存器相關(guān)聯(lián)偏好向執(zhí)行管線發(fā)布指令及相關(guān)指令處理電路、系統(tǒng)、方法及計算機可讀媒體。在一個實施例中,檢測指令流中的指令。在確定所述指令指定至少一個源寄存器時,基于管線發(fā)布表中與所述至少一個源寄存器相關(guān)聯(lián)的至少一個管線指示符確定執(zhí)行管線偏好,且基于所述執(zhí)行管線偏好向執(zhí)行管線發(fā)布所述指令。在做出所述指令指定至少一個目標(biāo)寄存器的確定時,基于所述指令被發(fā)布到的所述執(zhí)行管線更新所述管線發(fā)布表中與所述至少一個目標(biāo)寄存器相關(guān)聯(lián)的至少一個管線指示符。以此方式,可促進指令的最優(yōu)轉(zhuǎn)發(fā),從而改進處理器性能。
【專利說明】基于寄存器相關(guān)聯(lián)偏好向執(zhí)行管線發(fā)布指令以及相關(guān)指令處理電路、處理器系統(tǒng)、方法及計算機可讀媒體

【技術(shù)領(lǐng)域】
[0001]本發(fā)明的技術(shù)一般來說涉及基于中央處理單元(CPU)的系統(tǒng)中的管線式計算機指令的處理。本申請案主張2012年6月5日申請的第61/655,655號的美國臨時專利申請案的優(yōu)先權(quán)。

【背景技術(shù)】
[0002]現(xiàn)代計算機架構(gòu)中的“指令管線處理”的出現(xiàn)產(chǎn)生對CPU資源的改進的利用及計算機應(yīng)用程序的更快的執(zhí)行時間。指令管線處理為可藉此通過將每一指令的處理分裂成一系列步驟增加由CPU處理的指令的輸送量的處理技術(shù)。所述指令是在由多個階段組成的“執(zhí)行管線”中執(zhí)行,其中每一階段執(zhí)行一系列指令中的每一者的步驟中的一者。因此,在每一 CPU時鐘循環(huán)中,可并行地評估多個指令的步驟。CPU可任選地使用多個執(zhí)行管線來進一步提聞性能。
[0003]偶爾,可出現(xiàn)以下情況:其中防止指令在執(zhí)行管線中在其經(jīng)指明的CPU時鐘循環(huán)期間執(zhí)行。舉例來說,數(shù)據(jù)相依性可存在于第一指令與后續(xù)指令之間(即,后續(xù)指令可能需要通過由第一指令提供的操作產(chǎn)生的數(shù)據(jù))。如果在后續(xù)指令開始執(zhí)行之前第一指令尚未完全執(zhí)行,那么當(dāng)后續(xù)指令執(zhí)行時,后續(xù)指令所需的數(shù)據(jù)可能仍不可用,且因此,將出現(xiàn)管線“危害”(具體來說,“寫后讀取危害”)。為了解決此危害,CPU可“暫?!被蜓舆t后續(xù)指令的執(zhí)行,直到第一指令已完全執(zhí)行為止。為了有助于避免必須暫停后續(xù)指令,CPU可替代地使用被稱為“管線轉(zhuǎn)發(fā)”的技術(shù)。管線轉(zhuǎn)發(fā)可通過允許后續(xù)指令存取第一執(zhí)行指令的結(jié)果而不需要將結(jié)果寫入到寄存器且接著由后續(xù)指令從寄存器讀取回結(jié)果來防止對暫停后續(xù)指令的執(zhí)行的需要。
[0004]管線轉(zhuǎn)發(fā)可發(fā)生在于相同執(zhí)行管線內(nèi)執(zhí)行的指令之間,所述過程可更具體地被稱作“管線內(nèi)轉(zhuǎn)發(fā)”。另外,管線轉(zhuǎn)發(fā)可發(fā)生在于單獨執(zhí)行管線中執(zhí)行的指令之間,其中所述過程常規(guī)地被稱作“管線間轉(zhuǎn)發(fā)”。CPU可經(jīng)配置以與在兩個單獨執(zhí)行管線之間的管線間轉(zhuǎn)發(fā)相比較在單個執(zhí)行管線內(nèi)更有效率地且從更多個接入點提供管線內(nèi)轉(zhuǎn)發(fā)。雖然可通過擴展CPU的轉(zhuǎn)發(fā)電路以有效地添加更多接入點來改進管線間轉(zhuǎn)發(fā)的性能,但可存在呈CPU架構(gòu)的增加的復(fù)雜度的形式的取舍。


【發(fā)明內(nèi)容】

[0005]本發(fā)明的實施例提供基于寄存器相關(guān)聯(lián)偏好向執(zhí)行管線發(fā)布指令。還揭示相關(guān)指令處理電路、處理器系統(tǒng)、方法及計算機可讀媒體。在這點上,在一個實施例中,提供一種用于處理計算機指令的方法。所述方法包括檢測指令流中的指令。在確定所述指令指定至少一個源寄存器時,基于管線發(fā)布表中與所述至少一個源寄存器相關(guān)聯(lián)的至少一個管線指示符確定用于所述指令的至少一個執(zhí)行管線偏好,及基于所述至少一個執(zhí)行管線偏好向執(zhí)行管線發(fā)布所述指令。所述方法另外包括在確定所述指令指定至少一個目標(biāo)寄存器時,基于所述指令被發(fā)布到的所述執(zhí)行管線更新所述管線發(fā)布表中與所述至少一個目標(biāo)寄存器相關(guān)聯(lián)的至少一個管線指示符。以此方式,可促進指令的最優(yōu)轉(zhuǎn)發(fā),從而改進處理器性能。
[0006]在另一實施例中,提供一種包括指令處理電路的處理器。所述指令處理電路包括經(jīng)配置以檢測指令流中的指令的指令檢測電路,及管線發(fā)布表。所述指令處理電路進一步包括源寄存器檢測電路及目標(biāo)寄存器檢測電路。所述源寄存器檢測電路經(jīng)配置以確定所述指令是否指定至少一個源寄存器。響應(yīng)于確定所述指令指定所述至少一個源寄存器,所述源寄存器檢測電路經(jīng)配置以基于所述管線發(fā)布表中與所述至少一個源寄存器相關(guān)聯(lián)的至少一個管線指示符確定用于所述指令的至少一個執(zhí)行管線偏好。所述目標(biāo)寄存器檢測電路經(jīng)配置以確定所述指令是否指定至少一個目標(biāo)寄存器。響應(yīng)于確定所述指令指定所述至少一個目標(biāo)寄存器,所述目標(biāo)寄存器檢測電路經(jīng)配置以基于所述指令被發(fā)布到的所述執(zhí)行管線更新所述管線發(fā)布表中與所述至少一個目標(biāo)寄存器相關(guān)聯(lián)的至少一個管線指示符。所述處理器經(jīng)配置以響應(yīng)于所述源寄存器檢測電路確定所述指令指定所述至少一個源寄存器,基于所述至少一個執(zhí)行管線偏好向執(zhí)行管線發(fā)布所述指令。
[0007]在另一實施例中,提供一種包括指令處理電路的處理器。所述指令處理電路包括用于檢測指令流中的指令的裝置。所述指令處理電路進一步包括用于響應(yīng)于確定所述指令指定至少一個源寄存器而基于管線發(fā)布表中與所述至少一個源寄存器相關(guān)聯(lián)的至少一個管線指示符確定用于所述指令的至少一個執(zhí)行管線偏好的裝置。所述指令處理電路還包括用于響應(yīng)于確定所述指令指定所述至少一個源寄存器而基于所述至少一個執(zhí)行管線偏好向執(zhí)行管線發(fā)布所述指令的裝置。所述指令處理電路另外包括用于響應(yīng)于確定所述指令指定至少一個目標(biāo)寄存器而基于所述指令被發(fā)布到的所述執(zhí)行管線更新所述管線發(fā)布表中與所述至少一個目標(biāo)寄存器相關(guān)聯(lián)的至少一個管線指示符的裝置。
[0008]在另一實施例中,提供一種非暫時性計算機可讀媒體,其具有存儲于其上的計算機可執(zhí)行指令以致使處理器實施用于檢測指令流中的指令的方法。通過所述計算機可執(zhí)行指令實施的所述方法還包括在確定所述指令指定至少一個源寄存器時,基于管線發(fā)布表中與所述至少一個源寄存器相關(guān)聯(lián)的至少一個管線指示符確定用于所述指令的至少一個執(zhí)行管線偏好;及基于所述至少一個執(zhí)行管線偏好向執(zhí)行管線發(fā)布所述指令。通過所述計算機可執(zhí)行指令實施的所述方法另外包括在確定所述指令指定至少一個目標(biāo)寄存器時,基于所述指令被發(fā)布到的所述執(zhí)行管線更新所述管線發(fā)布表中與所述至少一個目標(biāo)寄存器相關(guān)聯(lián)的至少一個管線指示符。

【專利附圖】

【附圖說明】
[0009]圖1為用于檢索及處理待放置到一或多個執(zhí)行管線中的計算機指令的基于處理器的系統(tǒng)中所提供的示例性組件的框圖,包含經(jīng)配置以基于寄存器相關(guān)聯(lián)偏好向所述一或多個執(zhí)行管線發(fā)布指令的示例性指令處理電路;
[0010]圖2為說明基于處理器的系統(tǒng)中的示例性序列的圖,包含向執(zhí)行管線發(fā)布第一指令,基于執(zhí)行管線更新管線發(fā)布表中的管線指示符,及基于管線指示符優(yōu)先向執(zhí)行管線發(fā)布后續(xù)指令;
[0011]圖3為說明用于進行以下操作的指令處理電路的示例性過程的流程圖:基于一或多個源寄存器確定用于指令的至少一個執(zhí)行管線偏好,基于至少一個執(zhí)行管線偏好向執(zhí)行管線發(fā)布指令,及基于指令被發(fā)布到的執(zhí)行管線更新用于一或多個目標(biāo)寄存器的一或多個管線指示符;
[0012]圖4A到4B為說明用于基于寄存器相關(guān)聯(lián)偏好向執(zhí)行管線發(fā)布指令的指令處理電路的更詳細示例性過程的流程圖;
[0013]圖5為說明包含基于存儲在基于旗標(biāo)的管線發(fā)布表中的寄存器相關(guān)聯(lián)偏好向執(zhí)行管線發(fā)布指令的示例性序列的圖;
[0014]圖6為說明包含基于存儲在基于標(biāo)識的管線發(fā)布表中的寄存器相關(guān)聯(lián)偏好向執(zhí)行管線發(fā)布指令的示例性序列的圖;以及
[0015]圖7為可包含指令處理電路的示例性的基于處理器的系統(tǒng)的框圖,包含圖1的指令處理電路,其經(jīng)配置以基于寄存器相關(guān)聯(lián)偏好向執(zhí)行管線發(fā)布指令。

【具體實施方式】
[0016]現(xiàn)在參看各圖,描述本發(fā)明的若干示例性實施例。詞“示例性”在本文中用以意味著“充當(dāng)實例、例子或說明”。本文中描述為“示例性”的任何實施例未必應(yīng)被解釋為比其它實施例優(yōu)選或有利。
[0017]本發(fā)明的實施例提供基于寄存器相關(guān)聯(lián)偏好向執(zhí)行管線發(fā)布指令。還揭示相關(guān)指令處理電路、處理器系統(tǒng)、方法及計算機可讀媒體。在這點上,在一個實施例中,提供一種用于處理計算機指令的方法。所述方法包括檢測指令流中的指令。在確定所述指令指定至少一個源寄存器時,基于管線發(fā)布表中與所述至少一個源寄存器相關(guān)聯(lián)的至少一個管線指示符確定用于所述指令的至少一個執(zhí)行管線偏好,及基于所述至少一個執(zhí)行管線偏好向執(zhí)行管線發(fā)布所述指令。所述方法另外包括在確定所述指令指定至少一個目標(biāo)寄存器時,基于所述指令被發(fā)布到的所述執(zhí)行管線更新所述管線發(fā)布表中與所述至少一個目標(biāo)寄存器相關(guān)聯(lián)的至少一個管線指示符。以此方式,可促進指令的最優(yōu)轉(zhuǎn)發(fā),從而改進處理器性能。
[0018]在這點上,圖1為用于基于寄存器相關(guān)聯(lián)偏好向執(zhí)行管線12(0到Q)(在本文中分別被稱作Po到Pq)發(fā)布指令的示例性的基于處理器的系統(tǒng)10的框圖。下文將更詳細論述,基于處理器的系統(tǒng)10提供經(jīng)配置以確定用于指令的執(zhí)行管線偏好的指令處理電路14。在一些實施例中,指令處理電路可包含指令檢測電路15、源寄存器檢測電路16及目標(biāo)寄存器檢測電路17。由指令處理電路14處理的指令可指示用于從寄存器18(0到X)(在本文中分別被稱作Rtl到Rx)讀取數(shù)據(jù)及/或?qū)?shù)據(jù)寫入到寄存器18 (O到X)的操作,所述寄存器提供可由基于處理器的系統(tǒng)10存取的本地高速存儲裝置。如本文中所論述,“指令”可指通過引導(dǎo)計算機處理器執(zhí)行一或多個指定任務(wù)的指令集架構(gòu)定義的位的組合。示例性指令集架構(gòu)包含(但不限于)ARM、Thumb及A64架構(gòu)。
[0019]繼續(xù)參看圖1,在基于處理器的系統(tǒng)10中以通過指令流19表示的連續(xù)流處理指令。當(dāng)基于處理器的系統(tǒng)10操作及執(zhí)行指令時,指令流19可連續(xù)地前進。在此所說明的實例中,指令流19以指令存儲器20開始,所述指令存儲器提供用于計算機可執(zhí)行程序中的指令的永久性存儲裝置。指令提取電路22從指令存儲器20及/或任選地從指令高速緩沖存儲器24中讀取指令,且可遞增程序計數(shù)器,所述程序計數(shù)器可存儲在寄存器18(0到X)中的一者中。
[0020]一旦由指令提取電路22提取指令,所述指令便進行到指令解碼電路26,所述指令解碼電路將指令轉(zhuǎn)譯成處理器特定微指令。在此實施例中,指令解碼電路26同時保持一群多個指令28(0到N)以用于解碼。在提取及解碼指令之后,任選地向指令隊列30( S卩,用于存儲指令的緩沖器)發(fā)布所述指令,或可向執(zhí)行管線12(0到Q)中的一者發(fā)布所述指令以用于執(zhí)行。在一些實施例中,特定執(zhí)行管線12(0到Q)可限制可在所述特定執(zhí)行管線內(nèi)執(zhí)行的操作的類型。舉例來說,管線Ptl可能不準(zhǔn)許讀取存取寄存器18(0到X);因此,僅可向執(zhí)行管線P1到Pq中的一者發(fā)布指示讀取寄存器Rtl的操作的指令。
[0021]繼續(xù)參看圖1,指令處理電路14經(jīng)配置以基于用于至少一個源寄存器的至少一個管線指示符確定用于指令的至少一個執(zhí)行管線偏好,及在指定至少一個目標(biāo)寄存器的情況下,基于指令被發(fā)布到的執(zhí)行管線12(0到Q)中的所述執(zhí)行管線更新用于所述至少一個目標(biāo)寄存器的管線指示符。指令處理電路14可為任何類型的裝置或電路,且可用以下各者來實施或執(zhí)行:處理器、數(shù)字信號處理器(DSP)、專用集成電路(ASIC)、現(xiàn)場可編程門陣列(FPGA)或其它可編程邏輯裝置、離散門或晶體管邏輯、離散硬件組件,或其經(jīng)設(shè)計以執(zhí)行本文所描述的功能的任何組合。在一些實施例中,將指令處理電路14并入到指令提取電路22、指令解碼電路26及/或任選的指令隊列30中。指令處理電路14還可使用經(jīng)配置以存儲一或多個管線指示符的管線發(fā)布表32,所述管線指示符使寄存器18(0到X)中的每一者與執(zhí)行管線12(0到0)中的一者相關(guān)聯(lián),寄存器18(0到幻中的每一者最近被寫入所述執(zhí)行管線中。管線發(fā)布表32包括多個行,其中每一行對應(yīng)于寄存器18 (O到X)中的一者且包含至少一個管線指示符。根據(jù)本文所描述的一些實施例,所述至少一個管線指示符為對應(yīng)于執(zhí)行管線12(0到Q)中的相應(yīng)者的布爾型旗標(biāo);在一些實施例中,所述至少一個管線指示符為存儲執(zhí)行管線12(0到Q)中的一者的標(biāo)識的數(shù)據(jù)值。
[0022]為了提供圖1的基于處理器的系統(tǒng)10的示例性處理序列的說明,提供圖2。圖2描繪圖1的處理所檢測到的指令流34的指令處理電路14。所述處理包含基于寄存器相關(guān)聯(lián)偏好向執(zhí)行管線12(0到Q)中的一者發(fā)布指令。所檢測到的指令流34表示由圖1的指令處理電路14從指令流19中提取及檢測的一系列指令。
[0023]首先從所檢測到的指令流34中提取指令36 (在此實例中,“寫入”指令)。指令36指示將圖1的寄存器18(0到X)中的一者(在此實例中,源寄存器R2)的內(nèi)容寫入到目標(biāo)寄存器R1 (也為寄存器18(0到X)中的一者)中的操作。如通過管線發(fā)布箭頭38指示,向執(zhí)行管線12(0到Q)中的一者(在此實例中被稱作管線P1)發(fā)布指令36。
[0024]在向執(zhí)行管線P1發(fā)布指令36之后,由指令處理電路14更新管線發(fā)布表32中對應(yīng)于目標(biāo)寄存器R1及執(zhí)行管線P1的管線指示符40 (如通過箭頭42指示)。管線發(fā)布表32用以跟蹤將寄存器18(0到X)中的給定寄存器作為寫入目標(biāo)的最近的指令被發(fā)布到的執(zhí)行管線12(0到Q)中的所述執(zhí)行管線。在此實例中,管線發(fā)布表32含有對應(yīng)于寄存器18(0到X)中的每一者的行,其中每一行含有各自對應(yīng)于執(zhí)行管線12(0到Q)中的一者的多個管線指示符(例如,管線指示符40)。管線發(fā)布表32中的每一管線指示符因此與寄存器18(0到X)中的確切的一者及執(zhí)行管線12(0到Q)中的一者相關(guān)聯(lián)。在圖2中所描繪的實施例中,在任何給定時間,僅一個管線指示符可經(jīng)設(shè)置用于寄存器18(0到X)中的給定寄存器。然而,寄存器18(0到X)中的兩者或兩者以上可各自具有經(jīng)設(shè)置用于執(zhí)行管線12(0到Q)中的同一者的管線指示符。因此,在此實例中,通過以下操作來更新管線指示符40:清除與目標(biāo)寄存器R1相關(guān)聯(lián)的行44中的所有管線指示符,及設(shè)置管線指示符40以指示向執(zhí)行管線P1發(fā)布指令36,所述指令36為將寄存器R1作為寫入目標(biāo)的最近的指令。
[0025]指令處理電路14接下來檢測所檢測到的指令流34中的指令46 (在此實例中,另一 “寫入”指令)。指令46指定寄存器R1為源寄存器,且指示將源寄存器R1的內(nèi)容寫入到目標(biāo)寄存器Rtl(寄存器18(0到X)中的一者)中的操作。應(yīng)理解,可提取所檢測到的指令流34中緊接在指令36之后的指令46,或指令36及指令46可在所檢測到的指令流34中通過其它介入指令分離。
[0026]在檢測到指令46之后,由指令處理電路14存取管線發(fā)布表32 (如通過箭頭42指示)以確定管線指示符是否在行44中經(jīng)設(shè)置用于源寄存器R115在此實例中,管線發(fā)布表32中的管線指示符40經(jīng)設(shè)置,從而指示向執(zhí)行管線P1發(fā)布將源寄存器R1作為寫入目標(biāo)的最近的指令(此處,指令36)。基于管線指示符40,指令處理電路14確定執(zhí)行管線偏好48,所述執(zhí)行管線偏好指示應(yīng)優(yōu)先向執(zhí)行管線P1發(fā)布指令46。應(yīng)理解,在一些實施例中,基于對應(yīng)于用于指令46的多個源寄存器的多個管線指示符,指令46可與多個執(zhí)行管線偏好48相關(guān)聯(lián)。應(yīng)進一步理解,在一些實施例中,可能不存在如通過執(zhí)行管線偏好48指示實際上向執(zhí)行管線P1發(fā)布指令46的任何保證。確切地說,執(zhí)行管線偏好48可被視為確定將向執(zhí)行管線12(0到Q)中的哪一者發(fā)布指令46中的數(shù)個因素中的一者。
[0027]—旦指令46發(fā)布到執(zhí)行管線12(0到0)中的一者(不論是執(zhí)行管線P1還是執(zhí)行管線12(0到Q)中的另一者),便可針對指令46重復(fù)上文關(guān)于指令36所描述的示例性過程。在此實例中,向優(yōu)選的執(zhí)行管線P1S布指令46,如通過管線發(fā)布箭頭50指示。在管線發(fā)布表32中更新對應(yīng)于目標(biāo)寄存器Rtl及執(zhí)行管線P1的管線指示符52。對于所檢測到的指令流34中指定寄存器R0為源寄存器的后續(xù)指令54 (在此實例中,另一“寫入”指令),指令處理電路14可存取管線發(fā)布表32以確定管線指示符是否在行56中經(jīng)設(shè)置用于源寄存器Ro?;诠芫€指示符52,指令處理電路14確定指示執(zhí)行管線P1用于指令54發(fā)布的偏好的執(zhí)行管線偏好58。
[0028]為了進一步說明基于寄存器相關(guān)聯(lián)偏好向執(zhí)行管線發(fā)布指令的過程,在圖3中進一步參看圖1及2展示經(jīng)配置以確定執(zhí)行管線偏好及更新管線指示符的指令處理電路的示例性的一般化過程。在此實例中,過程以圖1的指令處理電路14(未圖示)檢測圖2的指令46開始,所述指令46指示到目標(biāo)寄存器Rtl的寫入操作(框60)。在一些實施例中,檢測指令46可通過例如圖1的指令檢測電路15等指令檢測電路來實現(xiàn)。
[0029]指令處理電路14接下來確定指令46是否指定至少一個源寄存器(框62)。一些實施例可提供:通過指令處理電路14的源寄存器檢測電路來做出此確定,例如,圖1的源寄存器檢測電路16。如果指令46并不指定至少一個源寄存器,那么基于默認執(zhí)行管線發(fā)布邏輯向執(zhí)行管線(例如,執(zhí)行管線匕到匕中的一者)發(fā)布指令46(框64)。如果指令46確實指定至少一個源寄存器,如圖2中,那么指令處理電路14基于管線發(fā)布表32中用于所述至少一個源寄存器的管線指示符確定至少一個執(zhí)行管線偏好48 (框66)。在圖2中所說明的實例中,執(zhí)行管線偏好48是基于管線發(fā)布表32中用于源寄存器&的管線指示符40。接著基于所述至少一個執(zhí)行管線偏好48向執(zhí)行管線(在圖2中,執(zhí)行管線P1)發(fā)布指令46(框68)。
[0030]一旦向執(zhí)行管線發(fā)布指令46,不管是基于默認執(zhí)行管線發(fā)布邏輯(如框64中)還是所述至少一個執(zhí)行管線偏好48 (如框68中),指令處理電路14便確定指令46是否指定至少一個目標(biāo)寄存器(框70)。在一些實施例中,可通過指令處理電路14的目標(biāo)寄存器檢測電路來做出此確定,例如,圖1的目標(biāo)寄存器檢測電路17。如果指令46并不指定至少一個目標(biāo)寄存器,那么處理返回到圖3的框60處。如果指令46確實指定至少一個目標(biāo)寄存器,那么指令處理電路14基于指令46被發(fā)布到的執(zhí)行管線更新管線發(fā)布表32中用于所述至少一個目標(biāo)寄存器的至少一個管線指示符(框72)。在圖2中,基于指令46被發(fā)布到執(zhí)行管線P1更新管線發(fā)布表32中用于目標(biāo)寄存器Rtl的管線指示符52。處理接著恢復(fù)執(zhí)行圖3的框60。
[0031]圖4A到4B說明用于進行以下操作的指令處理電路(例如,圖1的基于處理器的系統(tǒng)10中的指令處理電路14)的更詳細示例性過程:檢測指令流(例如,圖1的指令流19)中的指令,及基于寄存器相關(guān)聯(lián)偏好向執(zhí)行管線(例如,圖1的執(zhí)行管線12(0到Q))發(fā)布指令。圖4A詳述用于確定所檢測到的指令是否指定至少一個源寄存器及確定用于指令的至少一個執(zhí)行管線偏好的過程。圖4B說明用于更新管線發(fā)布表(例如,圖1的管線發(fā)布表32)中的管線指示符(例如,圖2的管線指示符40、52)的操作。
[0032]此實例中的過程在圖4A中以指令處理電路檢測是否更多指令仍待處理(圖4A的框74)開始。在一些實施例中,通過檢測指令提取電路及/或指令解碼電路(例如,圖1中分別的指令提取電路22及/或指令解碼電路26)中的未經(jīng)處理的指令的存在來實現(xiàn)此檢測。如果未檢測到剩余指令,那么指令處理電路執(zhí)行存儲在管線發(fā)布表(例如,圖1的管線發(fā)布表32)中的任何管線指示符的驗證。驗證可包含檢驗所存儲的管線指示符仍有效用于確定用于對應(yīng)寄存器的執(zhí)行管線偏好,及相應(yīng)地更新管線發(fā)布表(例如,通過更新用于管線指示符的有效性位)。處理接著返回到圖4A的框74。
[0033]如果檢測到剩余指令,那么指令處理電路確定所檢測到的指令是否為指定至少一個源寄存器(例如,圖1的寄存器18(0到X)中的一者)的指令(圖4A的框76)。檢測到此類指令指示指令處理電路可能能夠確定用于指令的至少一個執(zhí)行管線偏好。在所檢測到的指令并非指定至少一個源寄存器的指令的情況下,基于默認執(zhí)行管線發(fā)布邏輯向執(zhí)行管線發(fā)布所檢測到的指令(圖4A的框78),且處理繼續(xù)進行到圖4B的框88。
[0034]返回到圖4A的框76處的決策點,如果所檢測到的指令為指定至少一個源寄存器的指令,那么指令處理電路接下來確定所述指令是否為應(yīng)基于所指定的源寄存器確定執(zhí)行管線偏好所針對的指令(圖4A的框80)。在一些實施例中,可僅分析指定至少一個源寄存器的指令的子集以確定執(zhí)行管線偏好。如果指令并非應(yīng)確定執(zhí)行管線偏好所針對的指令,那么基于默認執(zhí)行管線發(fā)布邏輯向執(zhí)行管線發(fā)布指令(圖4A的框78),且處理繼續(xù)進行到圖4B的框88。
[0035]如果針對指令確定執(zhí)行管線偏好,那么由指令處理電路存取管線發(fā)布表以確定與所述至少一個源寄存器相關(guān)聯(lián)的任何管線指示符是否經(jīng)設(shè)置(圖4A的框82)。如果無與所述至少一個源寄存器相關(guān)聯(lián)的管線指示符經(jīng)設(shè)置,那么基于默認執(zhí)行管線發(fā)布邏輯向執(zhí)行管線發(fā)布指令(圖4A的框78),且處理繼續(xù)進行到圖4B的框88。如果與所述至少一個源寄存器相關(guān)聯(lián)的至少一個管線指示符經(jīng)設(shè)置,那么指令處理電路基于管線發(fā)布表中經(jīng)設(shè)置的所述至少一個管線指示符確定用于指令的至少一個執(zhí)行管線偏好(圖4A的框84)。基于圖4A的框84中所確定的所述至少一個執(zhí)行管線偏好,接著向執(zhí)行管線發(fā)布指令(圖4A的框86),且處理在圖4B的框88處繼續(xù)。
[0036]現(xiàn)在參看圖4B,指令處理電路接下來確定所述指令是否指定至少一個目標(biāo)寄存器(圖4B的框88)。如果所述指令并未指定至少一個目標(biāo)寄存器,那么指令的正常處理在圖4A的框90處繼續(xù)。否則的話,指令處理電路確定是否應(yīng)基于指令的目標(biāo)寄存器更新管線發(fā)布表(圖4B的框92)。在一些實施例中,可僅針對指令的子集更新管線發(fā)布表。如果指令并非應(yīng)更新管線發(fā)布表所針對的指令,那么指令的正常處理繼續(xù)(圖4A的框90)。
[0037]如果指令為應(yīng)更新管線發(fā)布表所針對的指令,那么指令處理電路接下來檢查所述指令是否具有用于所有管線的相等的轉(zhuǎn)發(fā)資源(圖4B的框94)。在一些實施例中,一些指令的結(jié)果可同樣用于轉(zhuǎn)發(fā)到后續(xù)指令,而不管指令及后續(xù)指令被發(fā)布到的執(zhí)行管線。因此,可以這么說,此類指令具有用于所有管線的相等的轉(zhuǎn)發(fā)資源。如果所檢測到的指令具有有限轉(zhuǎn)發(fā)資源(即,如果所檢測到的指令并不具有用于所有管線的相等的轉(zhuǎn)發(fā)資源),那么可通過優(yōu)先向與所檢測到的指令相同的執(zhí)行管線發(fā)布指定所檢測到的指令的目標(biāo)寄存器為源寄存器的后續(xù)指令改進基于處理器的系統(tǒng)的性能。因此,指令處理電路在管線發(fā)布表中基于所檢測到的指令被發(fā)布到的執(zhí)行管線設(shè)置與所述至少一個目標(biāo)寄存器相關(guān)聯(lián)的管線指示符(圖4B的框96)。處理接著恢復(fù)執(zhí)行圖4A的框90。
[0038]現(xiàn)在返回到圖4B的框94處的決策點,如果指令確實具有用于所有管線的相等的轉(zhuǎn)發(fā)資源,那么優(yōu)先向與所檢測到的指令相同的執(zhí)行管線發(fā)布后續(xù)指令將不會導(dǎo)致性能優(yōu)點,并且,實際上,向執(zhí)行管線發(fā)布指令的靈活性可能受約束。因此,在所述情況下,指令處理電路清除管線發(fā)布表中與所檢測到的指令的目標(biāo)寄存器相關(guān)聯(lián)的所有管線指示符以指示所有管線具有相等的偏好(圖4B的框98)。處理接著恢復(fù)執(zhí)行圖4A的框90。
[0039]如上文關(guān)于圖1所提到,管線發(fā)布表32包括多個行,其中每一行對應(yīng)于寄存器18(0到X)中的一者且包含至少一個管線指示符。在本文所描述的一些實施例中,每一管線指示符為對應(yīng)于執(zhí)行管線12 (O到Q)中的一者的布爾型旗標(biāo)。在這點上,圖5說明包含基于存儲在基于旗標(biāo)的管線發(fā)布表100中的寄存器相關(guān)聯(lián)偏好向執(zhí)行管線12(0到Q)中的一者發(fā)布指令的示例性序列。在圖5中,圖1的指令處理電路14處理表示由圖1的指令處理電路14從指令流19中提取及檢測的一系列指令的所檢測到的指令流102。第一所檢測到的指令為ARM架構(gòu)“加法”指令104?!凹臃ā敝噶?04指示將圖1中所展示的寄存器18 (O到X)中的兩者(在此實例中,寄存器R2及R3)的內(nèi)容加總且將結(jié)果寫入到目標(biāo)寄存器R1(也為寄存器18(0到X)中的一者)中的操作。如通過管線發(fā)布箭頭106指示,向執(zhí)行管線12(O到Q)中的一者(在此實例中被稱作管線P1)發(fā)布“加法”指令104。
[0040]在向執(zhí)行管線P1發(fā)布“加法”指令104之后,由指令處理電路14更新基于旗標(biāo)的管線發(fā)布表100中對應(yīng)于目標(biāo)寄存器R1及執(zhí)行管線P1的管線指示符108 (如通過箭頭110指示)。基于旗標(biāo)的管線發(fā)布表100中的每一管線指示符為與寄存器18(0到X)中的恰好一者及執(zhí)行管線12(0到Q)中的一者相關(guān)聯(lián)的布爾型旗標(biāo)。在圖5中所展示的實例中,在任何給定時間,可針對寄存器18(0到X)中的給定寄存器設(shè)置僅一個管線指示符,但寄存器18(0到X)中的兩者或兩者以上可各自具有針對執(zhí)行管線12(0到Q)中的同一者設(shè)置的管線指示符。因此,通過以下操作來更新管線指示符108:清除與目標(biāo)寄存器R1相關(guān)聯(lián)的行112中的所有管線指示符,及設(shè)置管線指示符108以指示向執(zhí)行管線P1發(fā)布“加法”指令104,所述“加法”指令104為將寄存器R1作為寫入目標(biāo)的最近的指令。
[0041]指令處理電路14接下來檢測所檢測到的指令流102中的ARM架構(gòu)MOV指令114。MOV指令114指定寄存器R1為源寄存器,且指示將源寄存器R1的內(nèi)容寫入到目標(biāo)寄存器Rtl(寄存器18(0到X)中的一者)中的操作。在一些實施例中,可提取所檢測到的指令流102中緊接在“加法”指令104之后的MOV指令114,而根據(jù)一些實施例,“加法”指令104及MOV指令114可在所檢測到的指令流102中通過其它介入指令分離。
[0042]在檢測到MOV指令114之后,由指令處理電路14存取基于旗標(biāo)的管線發(fā)布表100 (如通過箭頭110指示)以確定是否在行112中針對源寄存器R1設(shè)置管線指示符。在此實例中,基于旗標(biāo)的管線發(fā)布表100中的管線指示符108指示向執(zhí)行管線P1發(fā)布將源寄存器R1作為寫入目標(biāo)的最近的指令(此處,“加法”指令104)?;诠芫€指示符108,指令處理電路14確定用于管線P1的執(zhí)行管線偏好116,所述執(zhí)行管線偏好116指示應(yīng)優(yōu)先向執(zhí)行管線P1發(fā)布MOV指令114。
[0043]如上文所提到,在一些實施例中,可能不存在實際上向通過執(zhí)行管線偏好116指示的執(zhí)行管線12(0到Q)中的特定執(zhí)行管線發(fā)布MOV指令114的任何保證,這是因為在確定指令被發(fā)布到的執(zhí)行管線12(0到Q)中的最適當(dāng)?shù)膱?zhí)行管線中可考慮其它因素。在此實例中,向執(zhí)行管線P2發(fā)布MOV指令114,如通過管線發(fā)布箭頭118指示,而不是向優(yōu)選的執(zhí)行管線P1發(fā)布MOV指令。一旦MOV指令114被發(fā)布到執(zhí)行管線P2,便接著在基于旗標(biāo)的管線發(fā)布表100中更新對應(yīng)于目標(biāo)寄存器Rtl及管線P2的管線指示符120。
[0044]對于所檢測到的指令流102中指定寄存器Rtl為源寄存器的后續(xù)MOV指令122,指令處理電路14可存取基于旗標(biāo)的管線發(fā)布表100以確定管線指示符是否在行124中經(jīng)設(shè)置用于源寄存器Ro?;诠芫€指示符120,指令處理電路14確定執(zhí)行管線偏好126,所述執(zhí)行管線偏好指示用于管線P2的用于MOV指令122的發(fā)布的偏好。接著如上文關(guān)于“加法”指令104及MOV指令114所描述,進行MOV指令122的發(fā)布及基于MOV指令122的目標(biāo)寄存器進行的基于旗標(biāo)的管線發(fā)布表100的更新。
[0045]一些實施例可提供:存儲在圖1的管線發(fā)布表32中的每一管線指示符包含存儲執(zhí)行管線12(0到Q)中的一者的標(biāo)識的數(shù)據(jù)值。在這點上,圖6說明包含基于存儲在基于標(biāo)識的管線發(fā)布表128中的寄存器相關(guān)聯(lián)偏好向執(zhí)行管線12(0到Q)中的一者發(fā)布指令的示例性序列。在圖6中,圖1的指令處理電路14處理表示由圖1的指令處理電路14從指令流19中提取及檢測的一系列指令的所檢測到的指令流130。第一所檢測到的指令為ARM架構(gòu)MOV指令132。MOV指令132指示將圖1中所展示的寄存器18 (O到X)中的一者(在此實例中,源寄存器Rx)的內(nèi)容復(fù)制到寄存器18(0到X)中的另一者(此處,目標(biāo)寄存器Rtl)中的操作。在此實例中,源寄存器Rx并不具有基于標(biāo)識的管線發(fā)布表128中經(jīng)設(shè)置的管線指示符,且因此不與任何特定執(zhí)行管線12(0到Q)相關(guān)聯(lián)。因此,如通過管線發(fā)布箭頭134指示,基于默認執(zhí)行管線發(fā)布邏輯向執(zhí)行管線12(0到Q)中的一者(在此實例中,管線Ptl)發(fā)布MOV指令132。
[0046]在向執(zhí)行管線Ptl發(fā)布MOV指令132之后,由指令處理電路14更新基于標(biāo)識的管線發(fā)布表128 (如通過箭頭136指示)以設(shè)置對應(yīng)于目標(biāo)寄存器Rtl及執(zhí)行管線Ptl的管線指示符138?;跇?biāo)識的管線發(fā)布表128中的每一管線指不符為與寄存器18(0到X)中的一者相關(guān)聯(lián)且識別執(zhí)行管線12(0到Q)中的一者的數(shù)據(jù)值。在此實例中,通過存儲執(zhí)行管線Ptl的標(biāo)識以指示向執(zhí)行管線Ptl發(fā)布MOV指令132來更新管線指示符138,所述MOV指令132為將寄存器Rtl作為寫入目標(biāo)的最近的指令。在一些實施例中,設(shè)置管線指示符還可包含設(shè)置用于每一管線指示符的有效性位以指示所述管線指示符是否有效用于確定用于對應(yīng)寄存器的執(zhí)行管線偏好。因此,在此實例中,由指令處理電路14設(shè)置對應(yīng)于管線指示符138的有效性位139以指示管線指示符138有效用于確定用于目標(biāo)寄存器Rtl的執(zhí)行管線偏好。
[0047]指令處理電路14接下來檢測所檢測到的指令流130中的后續(xù)的ARM架構(gòu)MOV指令140。MOV指令140指示將源寄存器Rx復(fù)制到寄存器18(0到X)中的另一者(此處,目標(biāo)寄存器R1)中的操作。在一些實施例中,可在所檢測到的指令流130中提取緊接在MOV指令132之后的MOV指令140,而根據(jù)一些實施例,MOV指令132及MOV指令140可在所檢測到的指令流130中通過其它介入指令分離。如之前,源寄存器Rx并不具有在基于標(biāo)識的管線發(fā)布表128中經(jīng)設(shè)置的管線指示符;因此,如通過管線發(fā)布箭頭142指示,基于默認執(zhí)行管線發(fā)布邏輯向執(zhí)行管線12(0到Q)中的一者(此處,管線P1)發(fā)布MOV指令140。接著更新基于標(biāo)識的管線發(fā)布表128以設(shè)置對應(yīng)于目標(biāo)寄存器R1及執(zhí)行管線P1的管線指示符144。在這點上,管線指示符144存儲執(zhí)行管線P1的標(biāo)識以指示向執(zhí)行管線P1發(fā)布MOV指令140,所述MOV指令140為將寄存器R1作為寫入目標(biāo)的最近的指令。還設(shè)置對應(yīng)于管線指示符144的有效性位145,以指示管線指示符144有效用于確定用于目標(biāo)寄存器R1的執(zhí)行管線偏好。
[0048]指令處理電路14接下來檢測所檢測到的指令流130中的ARM架構(gòu)“加法”指令146?!凹臃ā敝噶?46指示將源寄存器Rtl及R1的內(nèi)容加總且將結(jié)果存儲在目標(biāo)寄存器R2中的操作。在一些實施例中,可在所檢測到的指令流130中提取緊接在MOV指令140之后的“加法”指令146,而根據(jù)一些實施例,MOV指令140及“加法”指令146可在所檢測到的指令流130中通過其它介入指令分離。
[0049]在檢測到“加法”指令146之后,由指令處理電路14存取基于標(biāo)識的管線發(fā)布表128 (如通過箭頭136指示)以確定管線指示符是否在對應(yīng)于源寄存器Rtl的行148及對應(yīng)于源寄存器R1的行150中的任一者或兩者中經(jīng)設(shè)置。在此實例中,基于標(biāo)識的管線發(fā)布表128中的管線指示符138指示向執(zhí)行管線Ptl發(fā)布將源寄存器Rtl作為寫入目標(biāo)的最近的指令(此處,MOV指令132)。另外,基于標(biāo)識的管線發(fā)布表128中的管線指示符144指示向執(zhí)行管線P1發(fā)布將源寄存器R1作為寫入目標(biāo)的最近的指令(在此實例中,MOV指令140)?;诠芫€指示符138及管線指示符144,指令處理電路14確定兩個執(zhí)行管線偏好152,從而指示應(yīng)優(yōu)先向執(zhí)行管線Ptl或執(zhí)行管線P1發(fā)布“加法”指令146。
[0050]如上文所提到,在一些實施例中,可能不存在將向通過執(zhí)行管線偏好152指示的執(zhí)行管線12(0到Q)中的特定執(zhí)行管線中的任一者發(fā)布“加法”指令146的任何保證,這是因為在確定用于指令的執(zhí)行管線12(0到Q)中的最適當(dāng)?shù)膱?zhí)行管線中可考慮其它因素。同樣地,當(dāng)指令處理電路確定一個以上執(zhí)行管線偏好時,一些實施例可應(yīng)用額外的執(zhí)行管線發(fā)布邏輯以從多個優(yōu)選的執(zhí)行管線當(dāng)中進行選擇。在此實例中,向優(yōu)選的執(zhí)行管線P1發(fā)布“加法”指令146,如通過管線發(fā)布箭頭154指示。接著在基于標(biāo)識的管線發(fā)布表128中更新對應(yīng)于目標(biāo)寄存器R2及執(zhí)行管線P1的管線指示符156及有效性位157。
[0051]根據(jù)本文中所揭示的實施例,可在任何基于處理器的裝置中提供可操作以用于基于寄存器相關(guān)聯(lián)偏好向執(zhí)行管線發(fā)布指令的指令處理電路或?qū)⑺鲋噶钐幚黼娐芳傻饺魏位谔幚砥鞯难b置中。實例包含(但不限于)機頂盒、娛樂單元、導(dǎo)航裝置、通信裝置、固定位置數(shù)據(jù)單元、移動位置數(shù)據(jù)單元、移動電話、蜂窩式電話、計算機、便攜式計算機、桌上型計算機、個人數(shù)字助理(PDA)、監(jiān)視器、計算機監(jiān)視器、電視機、調(diào)諧器、無線電、衛(wèi)星無線電、音樂播放器、數(shù)字音樂播放器、便攜式音樂播放器、數(shù)字視頻播放器、視頻播放器、數(shù)字視盤(DVD)播放器及便攜型數(shù)字視頻播放器。
[0052]在這點上,圖7說明可使用圖1中所說明的指令處理電路14的基于處理器的系統(tǒng)158的實例。在此實例中,基于處理器的系統(tǒng)158包含一或多個中央處理單元(CPU) 160,每一中央處理單元包含一或多個處理器162。處理器162可包括指令處理電路(IPC) 14。CPU160可具有耦合到處理器162以用于快速存取臨時存儲的數(shù)據(jù)的高速緩沖存儲器164。CPU160耦合到系統(tǒng)總線166且可將基于處理器的系統(tǒng)158中所包含的主裝置與從屬裝置互相耦合。如眾所周知的,CPU 160與這些其它裝置通過在系統(tǒng)總線166上交換地址、控制及數(shù)據(jù)信息進行通信。舉例來說,CPU 160可將總線事務(wù)請求傳達到存儲器控制器168 (作為從屬裝置的實例)。盡管圖7中未說明,但可提供多個系統(tǒng)總線166。
[0053]其它主裝置及從屬裝置可以連接到系統(tǒng)總線166。如圖7中所說明,作為實例,這些裝置可包含存儲器系統(tǒng)170、一或多個輸入裝置172、一或多個輸出裝置174、一或多個網(wǎng)絡(luò)接口裝置176及一或多個顯示器控制器178。輸入裝置172可包含任何類型的輸入裝置,包含(但不限于)輸入按鍵、開關(guān)、語音處理器等。輸出裝置174可包含任何類型的輸出裝置,包含(但不限于)音頻、視頻、其它視覺指示器等。網(wǎng)絡(luò)接口裝置176可為經(jīng)配置以允許將數(shù)據(jù)交換到網(wǎng)絡(luò)180及從網(wǎng)絡(luò)180交換數(shù)據(jù)的任何裝置。網(wǎng)絡(luò)180可以是任何類型的網(wǎng)絡(luò),包含(但不限于)有線或無線網(wǎng)絡(luò)、私用或公共網(wǎng)絡(luò)、局域網(wǎng)(LAN)、廣域網(wǎng)(WLAN)及因特網(wǎng)。網(wǎng)絡(luò)接口裝置176可經(jīng)配置以支持所要的任何類型的通信協(xié)議。存儲器系統(tǒng)170可包含一或多個存儲器單元182 (O到N)。
[0054]CPU 160還可經(jīng)配置以在系統(tǒng)總線166上存取顯示器控制器178以控制發(fā)送到一或多個顯示器184的信息。顯示器控制器178經(jīng)由一或多個視頻處理器186將信息發(fā)送到顯示器184以進行顯示,所述一或多個視頻處理器將待顯示的信息處理成適合于顯示器184的格式。顯示器184可包含任何類型的顯示器,包含(但不限于)陰極射線管(CRT)、液晶顯示器(LCD)、等離子顯示器等。
[0055]所屬領(lǐng)域的技術(shù)人員將進一步了解,結(jié)合本文所揭示的實施例描述的各種說明性邏輯塊、模塊、電路及算法可以實施為電子硬件、存儲在存儲器或另一計算機可讀媒體中且通過處理器或其它處理裝置執(zhí)行的指令或兩者的組合。作為實例,本文所描述的主裝置及從屬裝置可用于任何電路、硬件組件、集成電路(IC)、IC芯片或半導(dǎo)體裸片中。本文所揭示的存儲器可為任何類型及大小的存儲器,且可經(jīng)配置以存儲所要的任何類型的信息。為清楚說明這個可互換性,上文已大體上關(guān)于其功能性而描述了各種說明性組件、塊、模塊、電路及步驟。如何實施此功能性取決于特定應(yīng)用、設(shè)計選項及/或強加于整個系統(tǒng)的設(shè)計約束。所屬領(lǐng)域的技術(shù)人員可針對每一特定應(yīng)用以不同方式來實施所描述的功能性,但此類實施方案決策不應(yīng)被解釋為會導(dǎo)致脫離本發(fā)明的范圍。
[0056]結(jié)合本文所揭示的實施例描述的各種說明性邏輯塊、模塊及電路可以用以下各者來實施或執(zhí)行:處理器、DSP、專用集成電路(ASIC)、FPGA或其它可編程邏輯裝置、離散門或晶體管邏輯、離散硬件組件,或其經(jīng)設(shè)計以執(zhí)行本文所描述的功能的任何組合。處理器可以是微處理器,但在替代方案中,處理器可以是任何常規(guī)處理器、控制器、微控制器或狀態(tài)機。處理器還可實施為計算裝置的組合,例如,DSP與微處理器的組合、多個微處理器的組合、一或多個微處理器與DSP核心的聯(lián)合,或任何其它此類配置。
[0057]本文所揭示的實施例可以體現(xiàn)在硬件及存儲在硬件中的指令中,并且可以(例如)駐留在隨機存取存儲器(RAM)、快閃存儲器、只讀存儲器(ROM)、電可編程ROM(EPROM)、電可擦除可編程ROM (EEPROM)、寄存器、硬盤、可裝卸式磁盤、CD-ROM或所屬領(lǐng)域中已知的任何其它形式的計算機可讀媒體中。示例性存儲媒體耦合到處理器,使得處理器可從存儲媒體讀取信息及將信息寫入到存儲媒體。在替代方案中,存儲媒體可與處理器成一體式。處理器及存儲媒體可駐留在ASIC中。ASIC可駐留在遠程站中。在替代方案中,處理器及存儲媒體可作為離散組件駐留在遠程站、基站或服務(wù)器中。
[0058]還應(yīng)注意,描述本文中的示例性實施例中的任一者中描述的操作步驟是為了提供實例及論述??梢杂贸怂f明的序列以外的眾多不同序列執(zhí)行所描述的操作。另外,在單個操作步驟中描述的操作實際上可以在數(shù)個不同步驟中執(zhí)行。另外,可組合示例性實施例中所論述的一或多個操作步驟。應(yīng)理解,如所屬領(lǐng)域的技術(shù)人員將容易顯而易見,流程圖中所說明的操作步驟可以經(jīng)受眾多不同修改。所屬領(lǐng)域的技術(shù)人員還將理解,可使用多種不同技術(shù)及技藝中的任一者來表示信息及信號。舉例來說,可通過電壓、電流、電磁波、磁場或磁粒子、光場或光粒子或其任何組合來表示可能貫穿上述描述提及的數(shù)據(jù)、指令、命令、信息、信號、位、符號及碼片。
[0059]提供對本發(fā)明的先前描述以使得所屬領(lǐng)域的技術(shù)人員能夠進行或使用本發(fā)明。所屬領(lǐng)域的技術(shù)人員將容易顯而易見對本發(fā)明的各種修改,且本文中界定的一般原理可應(yīng)用于其它變化而不脫離本發(fā)明的精神或范圍。因此,本發(fā)明并不希望限于本文中所描述的實例及設(shè)計,而應(yīng)符合與本文中所揭示的原理及新穎特征相一致的最廣范圍。
【權(quán)利要求】
1.一種用于處理計算機指令的方法,其包括: 檢測指令流中的指令; 在確定所述指令指定至少一個源寄存器時: 基于管線發(fā)布表中與所述至少一個源寄存器相關(guān)聯(lián)的至少一個管線指示符確定用于所述指令的至少一個執(zhí)行管線偏好;以及 基于所述至少一個執(zhí)行管線偏好向執(zhí)行管線發(fā)布所述指令;以及在確定所述指令指定至少一個目標(biāo)寄存器時: 基于所述指令被發(fā)布到的所述執(zhí)行管線更新所述管線發(fā)布表中與所述至少一個目標(biāo)寄存器相關(guān)聯(lián)的至少一個管線指示符。
2.根據(jù)權(quán)利要求1所述的方法,其中向所述執(zhí)行管線發(fā)布所述指令包括向通過所述至少一個執(zhí)行管線偏好指示的優(yōu)選的執(zhí)行管線發(fā)布所述指令。
3.根據(jù)權(quán)利要求1所述的方法,其中向所述執(zhí)行管線發(fā)布所述指令包括基于所述至少一個執(zhí)行管線偏好及其它執(zhí)行管線發(fā)布邏輯向除了通過所述至少一個執(zhí)行管線偏好指示的優(yōu)選的執(zhí)行管線以外的執(zhí)行管線發(fā)布所述指令。
4.根據(jù)權(quán)利要求1所述的方法,其進一步包括在確定所述指令并不指定至少一個源寄存器時,基于默認執(zhí)行管線發(fā)布邏輯向所述執(zhí)行管線發(fā)布所述指令。
5.根據(jù)權(quán)利要求1所述的方法,其中確定所述至少一個執(zhí)行管線偏好包括指示用于與所述至少一個源寄存器相關(guān)聯(lián)的所述至少一個管線指示符經(jīng)設(shè)置用于的至少一個執(zhí)行管線的偏好。
6.根據(jù)權(quán)利要求1所述的方法,其中確定所述至少一個執(zhí)行管線偏好包括在與所述至少一個源寄存器相關(guān)聯(lián)的所述至少一個管線指示符中無一者經(jīng)設(shè)置的情況下,基于默認執(zhí)行管線發(fā)布邏輯確定所述至少一個執(zhí)行管線偏好。
7.根據(jù)權(quán)利要求1所述的方法,其進一步包括檢測所述指令具有到多個執(zhí)行管線中的至少一者的有限的轉(zhuǎn)發(fā)資源; 其中更新與所述至少一個目標(biāo)寄存器相關(guān)聯(lián)的所述至少一個管線指示符包括在所述管線發(fā)布表中設(shè)置與所述至少一個目標(biāo)寄存器及所述指令被發(fā)布到的所述執(zhí)行管線相關(guān)聯(lián)的管線指示符。
8.根據(jù)權(quán)利要求1所述的方法,其進一步包括檢測所述指令具有到多個執(zhí)行管線的相等的轉(zhuǎn)發(fā)資源; 其中更新與所述至少一個目標(biāo)寄存器相關(guān)聯(lián)的所述至少一個管線指示符包括清除所述管線發(fā)布表中與所述至少一個目標(biāo)寄存器相關(guān)聯(lián)的所有管線指示符。
9.根據(jù)權(quán)利要求1所述的方法,其中更新所述管線發(fā)布表中與所述至少一個目標(biāo)寄存器相關(guān)聯(lián)的所述至少一個管線指示符包括更新對應(yīng)于多個執(zhí)行管線中的相應(yīng)者的多個旗標(biāo)中的一者。
10.根據(jù)權(quán)利要求1所述的方法,其中更新所述管線發(fā)布表中與所述至少一個目標(biāo)寄存器相關(guān)聯(lián)的所述至少一個管線指示符包括存儲多個執(zhí)行管線中的一者的標(biāo)識。
11.一種包括指令處理電路的處理器, 所述指令處理電路包括: 指令檢測電路,其經(jīng)配置以檢測指令流中的指令; 管線發(fā)布表; 源寄存器檢測電路,其經(jīng)配置以: 確定所述指令是否指定至少一個源寄存器;以及 響應(yīng)于確定所述指令指定所述至少一個源寄存器: 基于所述管線發(fā)布表中與所述至少一個源寄存器相關(guān)聯(lián)的至少一個管線指示符確定用于所述指令的至少一個執(zhí)行管線偏好;以及目標(biāo)寄存器檢測電路,其經(jīng)配置以: 確定所述指令是否指定至少一個目標(biāo)寄存器;以及 響應(yīng)于確定所述指令指定所述至少一個目標(biāo)寄存器: 基于所述指令被發(fā)布到的所述執(zhí)行管線更新所述管線發(fā)布表中與所述至少一個目標(biāo)寄存器相關(guān)聯(lián)的至少一個管線指示符; 所述處理器經(jīng)配置以響應(yīng)于所述源寄存器檢測電路確定所述指令指定所述至少一個源寄存器,基于所述至少一個執(zhí)行管線偏好向執(zhí)行管線發(fā)布所述指令。
12.根據(jù)權(quán)利要求11所述的處理器,所述處理器經(jīng)配置以通過向通過所述至少一個執(zhí)行管線偏好指示的優(yōu)選的執(zhí)行管線發(fā)布所述指令來向所述執(zhí)行管線發(fā)布所述指令。
13.根據(jù)權(quán)利要求11所述的處理器,所述處理器經(jīng)進一步配置以響應(yīng)于所述源寄存器檢測電路確定所述指令并不指定所述至少一個源寄存器,基于默認執(zhí)行管線發(fā)布邏輯向所述執(zhí)行管線發(fā)布所述指令。
14.根據(jù)權(quán)利要求11所述的處理器,其包括經(jīng)配置以存儲對應(yīng)于多個執(zhí)行管線中的相應(yīng)者的多個旗標(biāo)的所述管線發(fā)布表。
15.根據(jù)權(quán)利要求11所述的處理器,其包括經(jīng)配置以存儲多個執(zhí)行管線中的一者的標(biāo)識的所述管線發(fā)布表。
16.根據(jù)權(quán)利要求11所述的處理器,其包括安置在從由以下各者組成的群組構(gòu)成的電路中的所述指令處理電路:指令提取電路、指令解碼電路及指令隊列。
17.根據(jù)權(quán)利要求11所述的處理器,其包括集成到半導(dǎo)體裸片中的所述指令處理電路。
18.根據(jù)權(quán)利要求11所述的處理器,其進一步包括所述指令處理電路所集成到的裝置,所述裝置選自由以下各者組成的群組:機頂盒、娛樂單元、導(dǎo)航裝置、通信裝置、固定位置數(shù)據(jù)單元、移動位置數(shù)據(jù)單元、移動電話、蜂窩式電話、計算機、便攜式計算機、桌上型計算機、個人數(shù)字助理PDA、監(jiān)視器、計算機監(jiān)視器、電視機、調(diào)諧器、無線電、衛(wèi)星無線電、音樂播放器、數(shù)字音樂播放器、便攜式音樂播放器、數(shù)字視頻播放器、視頻播放器、數(shù)字視盤DVD播放器,及便攜式數(shù)字視頻播放器。
19.一種包括指令處理電路的處理器, 所述指令處理電路包括: 用于檢測指令流中的指令的裝置; 用于響應(yīng)于確定所述指令指定至少一個源寄存器而基于管線發(fā)布表中與所述至少一個源寄存器相關(guān)聯(lián)的至少一個管線指示符確定用于所述指令的至少一個執(zhí)行管線偏好的裝置; 用于響應(yīng)于所述指令處理電路確定所述指令指定所述至少一個源寄存器而基于所述至少一個執(zhí)行管線偏好向執(zhí)行管線發(fā)布所述指令的裝置;以及 用于響應(yīng)于確定所述指令指定至少一個目標(biāo)寄存器而基于所述指令被發(fā)布到的所述執(zhí)行管線更新所述管線發(fā)布表中與所述至少一個目標(biāo)寄存器相關(guān)聯(lián)的至少一個管線指示符的裝置。
20.一種非暫時性計算機可讀媒體,其具有存儲于其上的計算機可執(zhí)行指令以致使處理器實施方法,所述方法包括: 檢測指令流中的指令; 在確定所述指令指定至少一個源寄存器時: 基于管線發(fā)布表中與所述至少一個源寄存器相關(guān)聯(lián)的至少一個管線指示符確定用于所述指令的至少一個執(zhí)行管線偏好;以及 基于所述至少一個執(zhí)行管線偏好向執(zhí)行管線發(fā)布所述指令;以及在確定所述指令指定至少一個目標(biāo)寄存器時: 基于所述指令被發(fā)布到的所述執(zhí)行管線更新所述管線發(fā)布表中與所述至少一個目標(biāo)寄存器相關(guān)聯(lián)的至少一個管線指示符。
21.根據(jù)權(quán)利要求20所述的非暫時性計算機可讀媒體,其具有存儲于其上的所述計算機可執(zhí)行指令以致使所述處理器實施所述方法,其中向所述執(zhí)行管線發(fā)布所述指令包括向通過所述至少一個執(zhí)行管線偏好指示的優(yōu)選的執(zhí)行管線發(fā)布所述指令。
22.根據(jù)權(quán)利要求20所述的非暫時性計算機可讀媒體,其具有存儲于其上的所述計算機可執(zhí)行指令以致使所述處理器實施所述方法,所述方法進一步包括在確定所述指令并不指定至少一個源寄存器時,基于默認執(zhí)行管線發(fā)布邏輯向所述執(zhí)行管線發(fā)布所述指令。
【文檔編號】G06F9/38GK104335167SQ201380028301
【公開日】2015年2月4日 申請日期:2013年6月4日 優(yōu)先權(quán)日:2012年6月5日
【發(fā)明者】M·J·布朗, 詹姆斯·諾里斯·迪芬德爾費爾, M·W·莫羅, 布萊恩·邁克爾·斯坦普爾, 邁克爾·斯科特·麥基爾文 申請人:高通股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
卓资县| 巩义市| 盘锦市| 十堰市| 达拉特旗| 太康县| 崇州市| 梅河口市| 奎屯市| 安平县| 西畴县| 平罗县| 上林县| 巫溪县| 肇东市| 和龙市| 华亭县| 平远县| 乾安县| 洪江市| 都兰县| 贞丰县| 康保县| 福清市| 将乐县| 乌恰县| 偏关县| 秀山| 景泰县| 平武县| 岳西县| 江源县| 淮滨县| 永和县| 五河县| 五河县| 万源市| 安仁县| 临高县| 江山市| 花莲市|