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

預(yù)測(cè)間接分支目標(biāo)地址的方法、裝置和編譯器的制作方法

文檔序號(hào):6423626閱讀:199來(lái)源:國(guó)知局
專利名稱:預(yù)測(cè)間接分支目標(biāo)地址的方法、裝置和編譯器的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種用于在動(dòng)態(tài)分支預(yù)測(cè)中預(yù)測(cè)分支地址的方法、處理器和編譯器。
背景技術(shù)
隨著高性能超級(jí)標(biāo)量處理器的發(fā)布速率(issue rate)和流水線深度的增加,所發(fā)布的(issued)推測(cè)工作的量也增加。因?yàn)樵诜种☆A(yù)測(cè)的情況下必須拋棄預(yù)測(cè)工作,深度流水線的處理器必須采用精確的分支預(yù)測(cè)器(predictors)來(lái)有效地發(fā)揮它們的性能潛力。
程序的分支可以分類為有條件的或無(wú)條件的分支和直接的或間接的分支。有條件分支有條件地將指令流重定向到目標(biāo),而無(wú)條件分支則總是將指令流重定向到目標(biāo)。直接分支有一個(gè)靜態(tài)規(guī)定的目標(biāo),它指向程序中單一的位置,而間接分支則有一個(gè)動(dòng)態(tài)規(guī)定的目標(biāo),它可能指向程序中任何數(shù)量的位置。由于現(xiàn)代命令式程序設(shè)計(jì)語(yǔ)言,間接分支可以劃分成四種類型。這四種類型是功能返回(function returns)、開(kāi)關(guān)指令(switches)產(chǎn)生的表跳轉(zhuǎn)、虛擬功能調(diào)用(function calls)和通過(guò)功能指針的功能調(diào)用。
動(dòng)態(tài)分支預(yù)測(cè)普遍被用來(lái)在出現(xiàn)分支的情況下向指令流水線提供穩(wěn)定的指令流。為此,處理其中的取指(fetch)階段必須檢測(cè)分支、預(yù)測(cè)分支方向(采取或不采取)并提供分支目標(biāo)。通常用分支目標(biāo)緩沖器(BTB)來(lái)提供分支目標(biāo)。每當(dāng)解析出一個(gè)分支,即知道其方向和分支目標(biāo)時(shí),就將其分支目標(biāo)放入BTB,BTB實(shí)質(zhì)上是一個(gè)按指令地址索引化的分支目標(biāo)的高速緩存。在流水線的取指階段,用與用于訪問(wèn)指令高速緩存的相同的地址訪問(wèn)BTB。如果BTB命中,則從指令高速緩存中提取的指令必定是個(gè)分支,且由BTB返回的分支目標(biāo)就被預(yù)測(cè)是該指令的目標(biāo)。這個(gè)預(yù)測(cè)對(duì)目標(biāo)地址是靜態(tài)的直接分支--即具有由直接操作數(shù)規(guī)定的分支--來(lái)說(shuō)是正確的。
然而,BTB做出的目標(biāo)預(yù)測(cè)對(duì)于分支目標(biāo)地址是動(dòng)態(tài)的間接分支即由寄存器規(guī)定的目標(biāo)的分支來(lái)說(shuō)經(jīng)常是不正確的。盡管間接分支比直接分支不常使用,但間接分支很重要,因?yàn)樗麄兏y以預(yù)測(cè)。模擬結(jié)果顯示,對(duì)間接分支的更好的預(yù)測(cè)能顯著地提高準(zhǔn)確性。
Po-Yung Chang等人在“Target Prediction for IndirectJumps”(間接跳轉(zhuǎn)的目標(biāo)預(yù)測(cè))(第24屆計(jì)算機(jī)體系結(jié)構(gòu)年會(huì)論文集,美國(guó)丹佛,1997年6月)和Karen Driesen等人在“AccurateIndirect Branch Prediction”(準(zhǔn)確的間接分支預(yù)測(cè))(第25屆計(jì)算機(jī)體系結(jié)構(gòu)年會(huì)論文集,西班牙巴塞羅那,1998年6月)中提出了用于間接預(yù)測(cè)的目標(biāo)預(yù)測(cè)器。這些預(yù)測(cè)器根據(jù)分支的地址和導(dǎo)向分支的執(zhí)行路徑提供目標(biāo),而B(niǎo)TB則僅僅根據(jù)分支的地址提供目標(biāo)。這些預(yù)測(cè)器背后的思想是利用導(dǎo)向間接分支的路徑與其目標(biāo)之間存在的相關(guān)性。這個(gè)技術(shù)的后果是要為每個(gè)間接分支存儲(chǔ)許多目標(biāo)。
此外,美國(guó)專利US5,857,104披露了綜合了編譯器的動(dòng)態(tài)分支預(yù)測(cè)(CS-DBP)過(guò)程,其中編譯器動(dòng)態(tài)地將計(jì)算值傳送給分支預(yù)測(cè)器,使分支預(yù)測(cè)器能改進(jìn)其預(yù)測(cè)。然而,該已知的CS-DBP過(guò)程提供的是一種概率方法,只預(yù)測(cè)分支方向或分支方向相關(guān)聯(lián)的值。
因此,本發(fā)明的一個(gè)目的是通過(guò)一種用于分支預(yù)測(cè)的方法、處理器和編譯器,利用它們能提高間接分支的預(yù)測(cè)精確性。
該目的由權(quán)利要求1中所定義的預(yù)測(cè)方法、權(quán)利要求11中所定義的處理器以及權(quán)利要求14中所定義的編譯器實(shí)現(xiàn)。
按照本發(fā)明,提供一個(gè)操作來(lái)提示關(guān)于將要出現(xiàn)的間接分支的分支預(yù)測(cè),其中可以或者用一個(gè)間接分支的分支目標(biāo)表或者用一個(gè)編譯器確定來(lái)改善間接分支的預(yù)測(cè)精確性。特別地,向硬件提供關(guān)于將要出現(xiàn)的間接分支的提示,其中導(dǎo)出與分支的目標(biāo)有關(guān)的關(guān)鍵碼(key)信息。
這個(gè)技術(shù)的應(yīng)用顯著地改善間接分支的目標(biāo)預(yù)測(cè)精確性,但第一次執(zhí)行某個(gè)方向上的分支除外。因此,如果有足夠大的分支目標(biāo)緩沖器或表,幾乎所有的目標(biāo)預(yù)測(cè)都導(dǎo)致一個(gè)正確的目標(biāo)。
編譯器對(duì)預(yù)測(cè)由功能指針產(chǎn)生的間接分支是有用的。在這種情況下,能及時(shí)得到由編譯器確定的分支目標(biāo)。
關(guān)鍵碼信息可以從產(chǎn)生分支的開(kāi)關(guān)(switch)語(yǔ)句的開(kāi)關(guān)值導(dǎo)出。此外,關(guān)鍵碼信息還可以從產(chǎn)生分支的虛擬功能調(diào)用的虛擬功能表的地址導(dǎo)出。事實(shí)上幾乎所有間接分支都是由功能返回和開(kāi)關(guān)語(yǔ)句產(chǎn)生的,因此能提供有效的和精確的分支預(yù)測(cè)。如果將處理器(例如VLIW處理器)的加載延遲選擇得等于前段流水線階段的段數(shù),則可以與加載操作并行地調(diào)度提示操作。最好在程序的預(yù)定位置提供提示操作,該預(yù)定位置被選擇成使得當(dāng)對(duì)應(yīng)的分支指令位于指令執(zhí)行周期的取指階段時(shí)提示操作正是指令執(zhí)行周期的一個(gè)執(zhí)行階段。這樣,當(dāng)間接分支在取指時(shí)提示操作將到達(dá)處理器的執(zhí)行階段。由此,就能給出對(duì)取指階段中的分支預(yù)測(cè)的直接反饋。
可以將關(guān)鍵碼信息與分支指令或包含提示操作的指令的地址混編(hash),以獲得用來(lái)訪問(wèn)分支目標(biāo)表的變址(index)。分支目標(biāo)表可以是一個(gè)包含對(duì)間接分支的分支目標(biāo)的間接分支目標(biāo)緩沖器。在分支目標(biāo)表中存儲(chǔ)的分支目標(biāo)可以是跳轉(zhuǎn)表和/或虛擬功能表的最近使用的表目。由此,在訪問(wèn)數(shù)據(jù)高速緩存的時(shí)間長(zhǎng)的情況下能獲得時(shí)間優(yōu)勢(shì)。
處理器的訪問(wèn)裝置可以包含用于將鍵碼信息與處理器的執(zhí)行階段或取指階段的地址混編的混編裝置。由此,就能簡(jiǎn)單而迅速地生成用來(lái)訪問(wèn)間接分支目標(biāo)緩沖器的變址。
以下將結(jié)合各附圖更詳細(xì)地說(shuō)明本發(fā)明的最佳實(shí)施例。


圖1表示按照最佳實(shí)施例的處理器的示意框圖;圖2表示按照最佳實(shí)施例的分支預(yù)測(cè)器的示意框圖;圖3表示包含一個(gè)提示操作的開(kāi)關(guān)語(yǔ)句的一個(gè)實(shí)現(xiàn);圖4表示包含一個(gè)提示操作的虛擬功能調(diào)用的一個(gè)實(shí)現(xiàn);圖5表示包含提示操作的加載操作和間接分支操作的流水線執(zhí)行。
現(xiàn)在將如圖1中所示的VLIW(甚長(zhǎng)指令字)處理器的體系結(jié)構(gòu)為基礎(chǔ)說(shuō)明最佳實(shí)施例。
從圖1中可見(jiàn),分支解析功能50在處理器的執(zhí)行階段被提供,并被安排得向程序計(jì)數(shù)器生成階段的多路轉(zhuǎn)換器10提供正確的分支目標(biāo)。多路轉(zhuǎn)換器10具有由下一個(gè)程序計(jì)數(shù)器功能70生成的下一個(gè)順序程序計(jì)數(shù)器以及由分支預(yù)測(cè)器100生成的預(yù)測(cè)分支目標(biāo)。此外,可以將中斷向量或其它例外向量加到多路轉(zhuǎn)換器10,后者然后輸出一個(gè)要被提供給取指階段的指令高速緩沖存儲(chǔ)器20的經(jīng)選擇的程序計(jì)數(shù)器。將當(dāng)前程序計(jì)數(shù)器進(jìn)一步提供到分支預(yù)測(cè)器100。根據(jù)當(dāng)前程序計(jì)數(shù)器,指令高速緩存20輸出一個(gè)壓縮指令,壓縮指令被提供到解壓階段的解壓器300,以生成當(dāng)前指令字。注意,在VLIW處理器中不一定非要提供解壓階段,僅當(dāng)要使用壓縮指令時(shí)才提供。該指令字然后被提供到譯碼階段的指令譯碼器40,VLIW指令在那里被解碼后提供分支解析單元50。此外,執(zhí)行階段包含一個(gè)更新隊(duì)列單元60,用于更新在分支預(yù)測(cè)器100中提供的分支目標(biāo)緩沖器。這個(gè)更新是根據(jù)分支預(yù)測(cè)器100的預(yù)測(cè)器更新信息輸出而執(zhí)行的。此外,分支預(yù)測(cè)器100向執(zhí)行階段的分支解析單元50輸出預(yù)測(cè)采取(predict taken)信息。
按照最佳實(shí)施例,將一個(gè)提示操作加入或納入一個(gè)指令中,以向處理器硬件傳送關(guān)于即將出現(xiàn)的間接分支的鍵碼信息。然后,當(dāng)該間接分支被提取并且其目標(biāo)要被預(yù)測(cè)時(shí),在執(zhí)行階段就能得到該提示操作,使得鍵碼信息能被提供到分支預(yù)測(cè)器100。如圖1中所示,解碼的指令的一部分被提供到分支預(yù)測(cè)器100,如從解碼的指令指向分支預(yù)測(cè)器100的輸入端的箭頭所表示的那樣。這樣,分支預(yù)測(cè)器100就能注意到有一個(gè)對(duì)間接分支的提示,于是就可能接受所提供的鍵碼信息,以訪問(wèn)對(duì)應(yīng)的分支目標(biāo)緩沖器。
圖2表示圖1中所示的分支預(yù)測(cè)器100的示意框圖。按照?qǐng)D2,分支預(yù)測(cè)器100包含一個(gè)分支目標(biāo)緩沖器(BTB)108,這是一個(gè)將指令地址與分支目標(biāo)相關(guān)聯(lián)的高速緩存。如果某指令地址在BTB 108中命中,就知道該地址與一個(gè)分支指令有關(guān),并將通過(guò)目標(biāo)選擇器114生成并輸出一個(gè)預(yù)測(cè)。
此外,還提供一個(gè)預(yù)測(cè)分支方向的分支歷史表(BHT)110。BHT 110預(yù)測(cè)有條件分支的方向,即某分支是否被采取。這一般可以由一個(gè)以程序計(jì)數(shù)器的低位部分作為變址的兩個(gè)位飽和計(jì)數(shù)器(bitsaturating counters)的表來(lái)實(shí)現(xiàn)。如果被解析的令支被采取,這種計(jì)數(shù)器遞增;如果不被采取,則遞減。如果對(duì)應(yīng)的兩位計(jì)數(shù)器的最高有效位被置位時(shí),分支被預(yù)測(cè)為被采取。兩位計(jì)數(shù)器可包含弱狀態(tài)和強(qiáng)狀態(tài),以在分支預(yù)測(cè)器100中引入某種形式的滯后(hysteresis)。每當(dāng)在一個(gè)方向上的分支被錯(cuò)誤預(yù)測(cè)時(shí),可以在改變?cè)擃A(yù)測(cè)之前給第二個(gè)機(jī)會(huì)。這是通過(guò)從強(qiáng)狀態(tài)轉(zhuǎn)移到弱狀態(tài)但是保持相同的預(yù)測(cè)而實(shí)現(xiàn)的。每當(dāng)分支再次被錯(cuò)誤預(yù)測(cè),則預(yù)測(cè)就被改變。如果預(yù)測(cè)是正確的,則從弱狀態(tài)轉(zhuǎn)移回到強(qiáng)狀態(tài)。事實(shí)上BHT 110是一個(gè)無(wú)標(biāo)記(tag-less)表,所以不檢測(cè)將多個(gè)分支映射到同一個(gè)計(jì)數(shù)器的沖突。當(dāng)預(yù)測(cè)由圖1的解壓階段開(kāi)啟時(shí),AND門(mén)112開(kāi)放,以輸出預(yù)測(cè)被采取信息。
另外,功能返回的預(yù)測(cè)能通過(guò)保持一個(gè)返回地址堆棧(RAS)106而得到改善。功能調(diào)用分支上推返回地址到RAS106,功能返回分支則彈出RAS106的值。為了確定分支類型—這在取指階段中檢測(cè)功能返回是必要的,BTB 108一般也將類型信息與指令地址相關(guān)聯(lián)。備擇方法是,可以將類型信息預(yù)先編碼在指令高速緩存20中。
在最佳實(shí)施例中,如果在解碼階段檢測(cè)到提示操作,則將提示所檢測(cè)到的信息施加到分支預(yù)測(cè)器100的輸入端。該提示所檢測(cè)到的信息被提供到分支預(yù)測(cè)器100的目標(biāo)選擇器114,以便選擇在分支預(yù)測(cè)器100中提供的一個(gè)另外的間接分支目標(biāo)緩沖器(IBTB)的輸出。此外,將從提示操作中導(dǎo)出的關(guān)鍵碼信息提供到分支預(yù)測(cè)器100的輸入端,從那里提供到一個(gè)內(nèi)部混編單元100,在混編單元中,關(guān)鍵碼信息與通過(guò)輸入端d從取指階段提供的當(dāng)前程序計(jì)數(shù)器被混編。這樣,即將出現(xiàn)的間接分支就由一個(gè)與該分支的目標(biāo)有關(guān)的關(guān)鍵碼所提示。如果指令是與開(kāi)關(guān)語(yǔ)句有關(guān)的,則關(guān)鍵碼信息可以是開(kāi)關(guān)語(yǔ)句的開(kāi)關(guān)值。此外,如果指令是與虛擬功能調(diào)用有關(guān)的,則關(guān)鍵碼信息可以是虛擬功能調(diào)用的虛擬功能表的地址。然后在混編單元102中,將關(guān)鍵碼信息或關(guān)鍵碼與包含提示操作的指令的地址(程序計(jì)數(shù)器)混編,以獲得IBTB 104的分支目標(biāo)的無(wú)標(biāo)記表中的變址。
IBTB 104可以由執(zhí)行階段的更新隊(duì)列單元60根據(jù)分支解析單元50的輸出和包含從分支預(yù)測(cè)器100輸出的IBTB變址的預(yù)測(cè)器更新信息而更新。
圖3和圖4表示包含開(kāi)關(guān)語(yǔ)句和虛擬功能調(diào)用是如何實(shí)現(xiàn)的。在兩種情況中,用一個(gè)稱作“bphint”的操作向硬件傳送關(guān)于即將出現(xiàn)的間接分支的關(guān)鍵碼。圖3中的一般表達(dá)式“1d32xa,i→v”的意思是“v=a[i]”,圖4中的一般表達(dá)式“1d32d(0)xa,i→v”的意思是“v=a
”。當(dāng)間接分支“pjmpt”被提取并且需要由分支預(yù)測(cè)器100預(yù)測(cè)其目標(biāo)時(shí),bphint如圖5中所示的那樣在執(zhí)行階段中,圖中在不同的時(shí)間點(diǎn)的縱向列中顯示VLIW處理器的相繼各階段的并發(fā)內(nèi)容。
分支預(yù)測(cè)器100由其輸入端f的信號(hào)得知一個(gè)間接分支已經(jīng)被提取,被導(dǎo)出的關(guān)鍵碼信息被混編,以生成用于訪問(wèn)IBTB 104的變址,以便通過(guò)目標(biāo)選擇器114和分支預(yù)測(cè)器的輸出端a生成和輸出分支目標(biāo)。IBTB變址通過(guò)輸出端c被輸出,并通過(guò)流水線從取指階段傳送到執(zhí)行階段,用于更新IBTB 104。
圖3和圖4中的每一行對(duì)應(yīng)一條VLIW指令,其中圖3中的開(kāi)關(guān)指令由一個(gè)查找表組成,后面接著是一個(gè)間接分支;其中圖4中的虛擬功能調(diào)用的實(shí)現(xiàn)包括加載一個(gè)虛擬功能表指針,后面接著是從這個(gè)表加載方法指針和一個(gè)指向該方法的間接分支。
圖5涉及圖4的虛擬功能調(diào)用,其中的箭頭表示如何將信息從執(zhí)行階段的提示操作傳送到取指階段,從而為間接分支提供改善的分支預(yù)測(cè)。圖5中的每行表示圖5的左邊所表示的指令的連續(xù)處理階段,其中各行的偏移表示指令的流水線處理。當(dāng)包含bphint操作的加載指令位于第一執(zhí)行階段中時(shí),則pjmp分支指令位于取指階段。
注意到所述技術(shù)也可以用于對(duì)功能指針產(chǎn)生的間接分支的預(yù)測(cè)。在這種情況中,編譯器必須檢測(cè)到一個(gè)要被用作關(guān)鍵碼的值,分支目標(biāo)就是根據(jù)該關(guān)鍵碼被確定或者計(jì)算而及時(shí)可用的。特別地,編譯器從所檢測(cè)到的提示操作中導(dǎo)出(例如抽取或解譯)關(guān)鍵碼信息。被導(dǎo)出的關(guān)鍵碼信息可以被編譯器直接用于確定分支目標(biāo)。作為備擇方案,編譯器也可以訪問(wèn)IBTB 104來(lái)獲得分支目標(biāo)。
如果加載延遲等于VLIW處理器的前端流水線階段的數(shù)目,如上所述,就可以將提示操作與加載操作并行地調(diào)度。提示操作將在間接分支被提取時(shí)到達(dá)執(zhí)行階段。如果加載延遲比流水線的前端長(zhǎng),則可以將提示操作晚于加載操作調(diào)度。如果加載延遲比前端階段的數(shù)目短,則間接分支可能要在以后調(diào)度,以便能使用提示操作提供的關(guān)鍵碼。這可能增加指令計(jì)數(shù),因此降低提示程序的有用性。
作為備擇方案,也可以將所提出的技術(shù)以一個(gè)保存跳轉(zhuǎn)表和虛擬功能表的表目的高速緩存的形式實(shí)現(xiàn)。這樣,將這些表中最近使用的表目存儲(chǔ)在IBTB 104中。如果訪問(wèn)普通數(shù)據(jù)高速緩存太費(fèi)時(shí)間的話,這樣一個(gè)高速緩存功能可能是有用的。
因此,與開(kāi)始時(shí)所述的已知的CS-DBT技術(shù)相比,本發(fā)明建議預(yù)測(cè)分支目標(biāo)和向分支預(yù)測(cè)器提供一個(gè)與分支目標(biāo)直接有關(guān)的關(guān)鍵碼。由此實(shí)現(xiàn)一種確定性的方法。
注意到可以提供任何種類的提示操作來(lái)導(dǎo)出任何種類的適合于提供對(duì)間接分支目標(biāo)緩沖器或其它目標(biāo)表的變址或其它種類的訪問(wèn)的關(guān)鍵碼信息。此外,可以采用任何種類的混編方法來(lái)從關(guān)鍵碼信息生成變址信息??梢詫?shí)現(xiàn)無(wú)標(biāo)記間接目標(biāo)高速緩存的變體。它們可能在將關(guān)鍵碼信息與指令地址信息混編入IBTB 104的方法上有所不同。因此,本發(fā)明并不限于上述的最佳實(shí)施例,而是能應(yīng)用于任何包含分支預(yù)測(cè)功能的處理器裝置。本發(fā)明打算包含在后附權(quán)利要求的范圍內(nèi)的任何改變。
權(quán)利要求
1.一種用于預(yù)測(cè)程序的分支目標(biāo)的方法,所述方法包含下述步驟a)提供一個(gè)包含多個(gè)分支目標(biāo)的分支目標(biāo)表(104);b)用所述程序中的一個(gè)提示操作來(lái)導(dǎo)出關(guān)鍵碼信息;c)根據(jù)所述關(guān)鍵碼信息從所述分支目標(biāo)表(104)中選擇所述分支目標(biāo)。
2.按照權(quán)利要求1的方法,其中,根據(jù)由其產(chǎn)生分支的開(kāi)關(guān)語(yǔ)句的開(kāi)關(guān)值導(dǎo)出所述關(guān)鍵碼信息。
3.按照權(quán)利要求1或2的方法,其中,根據(jù)由其產(chǎn)生分支的虛擬功能調(diào)用的虛擬功能表導(dǎo)出所述關(guān)鍵碼信息。
4.按照前述任何一項(xiàng)權(quán)利要求的方法,其中,所述提示操作被包含在VLIW指令中。
5.按照前述任何一項(xiàng)權(quán)利要求的方法,其中,將所述關(guān)鍵碼信息與分支指令或包含所述提示操作的指令的地址混編在一起,以獲得用于訪問(wèn)所述分支目標(biāo)表(104)的變址。
6.按照前述任何一項(xiàng)權(quán)利要求的方法,其中,所述分支目標(biāo)表是一個(gè)包含用于間接分支的分支目標(biāo)的間接分支目標(biāo)緩沖器(104)。
7.按照前述任何一項(xiàng)權(quán)利要求的方法,其中,所述提示操作是在所述程序的預(yù)定位置提供的,所述預(yù)定位置的選擇要使得當(dāng)對(duì)應(yīng)的分支指令位于指令執(zhí)行周期的取指階段時(shí)提示操作正位于指令執(zhí)行周期的執(zhí)行階段。
8.按照前述任何一項(xiàng)權(quán)利要求的方法,其中,所述所述預(yù)測(cè)方法被用來(lái)預(yù)測(cè)由功能指針產(chǎn)生的間接分支的分支目標(biāo)。
9.按照前述任何一項(xiàng)權(quán)利要求的方法,進(jìn)一步包含在所述分支目標(biāo)表中存儲(chǔ)跳轉(zhuǎn)表和/或虛擬功能能表的最近使用的表目的步驟。
10.按照前述任何一項(xiàng)權(quán)利要求的方法,其中,所述預(yù)測(cè)方法是一個(gè)編譯器合成的動(dòng)態(tài)分支預(yù)測(cè)方法。
11.一種用于預(yù)測(cè)程序的分支目標(biāo)的處理器,所述處理器包含a)用于存儲(chǔ)多個(gè)分支目標(biāo)的分支目標(biāo)緩沖器裝置(104);b)用于檢測(cè)所述程序的一個(gè)提示操作并從該提示操作導(dǎo)出關(guān)鍵碼信息的解譯裝置(4);c)用于用所述關(guān)鍵碼信息訪問(wèn)所述分支目標(biāo)緩沖器裝置(104)以選擇所述分支目標(biāo)的訪問(wèn)裝置(102)。
12.按照權(quán)利要求11的處理器,其中,分支目標(biāo)緩沖器裝置(104)被安排得存儲(chǔ)間接分支目標(biāo),并且其中提供另一個(gè)分支目標(biāo)緩沖器裝置(108)來(lái)存儲(chǔ)直接分支目標(biāo)。
13.按照權(quán)利要求11或12的處理器,其中,所述訪問(wèn)裝置包含用于將所述關(guān)鍵碼信息與所述處理器的執(zhí)行階段或取指階段的地址混編的混編裝置(102)。
14.一種用于預(yù)測(cè)程序的分支目標(biāo)的編譯器,其中所述編譯器被安排得檢測(cè)所述程序中的提示操作,從所述提示操作導(dǎo)出關(guān)鍵碼信息,并根據(jù)所述關(guān)鍵碼信息確定所述分支目標(biāo)。
15.權(quán)利要求14的編譯器,其中,所述分支目標(biāo)是從功能指針的間接分支產(chǎn)生的。
全文摘要
本發(fā)明涉及一種用于預(yù)測(cè)程序的分支目標(biāo)的方法、處理器和編譯器。在程序中提供一個(gè)提示操作來(lái)提示關(guān)于即將出現(xiàn)的間接分支的分支預(yù)測(cè)。可以用一個(gè)包含各個(gè)間接分支的分支目標(biāo)的表來(lái)改善間接分支的預(yù)測(cè)精度。分支目標(biāo)是根據(jù)從提示操作中導(dǎo)出的關(guān)鍵碼信息確定的。
文檔編號(hào)G06F9/45GK1520547SQ02812893
公開(kāi)日2004年8月11日 申請(qǐng)日期2002年6月20日 優(yōu)先權(quán)日2001年6月29日
發(fā)明者J·霍格爾布魯格, J 霍格爾布魯格 申請(qǐng)人:皇家菲利浦電子有限公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1