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

Tlb相關分支預測器及其使用方法

文檔序號:6507242閱讀:461來源:國知局
專利名稱:Tlb相關分支預測器及其使用方法
技術領域
本發(fā)明的實施例涉及高性能處理器,尤其涉及使用翻譯后備緩沖器輸入和動態(tài)長度全局分支歷史的指令分支預測器。
背景隨著分支指令發(fā)出速率和指令流水線深度的增加,準確的分支預測對實現(xiàn)超標量無序處理器的潛在性能變得愈發(fā)重要。某些現(xiàn)有技術的分支預測器要么被實現(xiàn)為無全局歷史的分支預測器,要么被實現(xiàn)為帶有全局歷史的兩級分支預測器。
在某些分支預測器中,全局歷史由m個最近分支組成,并且在其中每一位都記錄了是否采取分支的m位全局移位寄存器中實現(xiàn)。不幸的是,現(xiàn)有的全局移位寄存器只記錄固定長度的全局歷史。然而,最近的研究則已指出,通過使用不同長度的全局歷史,可能使來自不同程序的不同指令體驗到更好的預測準確性。


圖1是本領域內(nèi)已知的一種分支預測器的電路框圖。在圖1中,m位歷史移位寄存器110包括在位m處的一位移位輸入以及在位1處的一位移位輸出,其中該一位移位輸入接收是否采取特定指令的分支的指示。例如,值“1”用于指示采取分支,而“0”用于指示不采取該分支。歷史移位寄存器110用于存儲固定長度(即,m位長度)的全局分支預測歷史,移出最高有效位值,即第一位的值,并將輸出要存儲的整個m位全局分支預測歷史值。
在圖1中,歷史移位寄存器110耦合至異或(EXCLUSIVE-OR)門120,并且歷史移位寄存器110將存儲在歷史移位寄存器110中的m位全局分支預測歷史的值輸出至異或門120的第一輸入。異或門120還耦合到將m位分支地址輸出至異或門120第二輸入的分支地址寄存器130。如果從分支地址寄存器130輸入的m位分支地址與從歷史移位寄存器110輸入的m位全局歷史匹配,則異或門120將m位全局歷史輸出至模式歷史表140。應該注意,從分支地址寄存器130輸入的m位分支地址在被輸出之前可以被移位、擴展或截除,以匹配從歷史移位寄存器110輸出的位數(shù)。結果是,即使全局分支預測歷史值的長度有所改變,從分支地址寄存器130輸出的m位分支地址位串的位數(shù)仍然總是與從歷史移位寄存器110輸入的全局分支預測值中的位相匹配。
在圖1中,模式歷史表140由2m個條目組成,其中表格內(nèi)的每一條目都包含“局部歷史”。局部歷史信息通常被存儲在2位飽和分支預測器中。從異或門120輸出的m位全局歷史用于從模式歷史表140中選則一個條目,該條目隨后用于執(zhí)行預測。通過這一設計,使用堅固的預測條目來存儲其中不同的分支指令彼此相關的有效歷史信息。
在圖1中,2位分支預測器維護一個2位計數(shù)器。它在被引用時將基于其自己的內(nèi)容輸出分支預測。例如,如果“10”是分配給一個分支的預測器2位內(nèi)容(即,模式歷史表條目),則對該分支預測“采取”。在稍后的某一時刻,該內(nèi)容在真實方向已知之后被更新。例如,若該分支“被采取”,則“10”被更新為“11”,而若該分支“未被采取”,則被更新為“01”。一般而言,當2位計數(shù)器值大于或等于其最大值的一半,即22-1=2時,則預測該分支未被采取。相反,如果2位計數(shù)器值小于2,則預測該分支未被采取。換言之,如果該2位計數(shù)器包含“10”(即,2)或“11”(即,3),則預測該分支被采取,但如果2位計數(shù)器包含“00”(即,0)或“01”(即,1),則預測該分支未被采取。
局部歷史意味著分支的輸出將取決于其自己的歷史,而全局歷史則意味著分支的輸出取決于其他分支歷史。在以下的短碼示例中,如果第一分支輸出“采取”,則第二分支也輸出“采取”。而后,一獨立的2位分支預測器(對應于分支d==0,采取帶有全局歷史的模式歷史條目)將用于保持這一帶有該全局歷史和2級分支預測方案的信息。
If(d==0)//如果d=0d=1; //則設置d=1If(d==1)//如果d=1…… //則繼續(xù)d=1的條件指令不幸的是,因為圖1中的全局歷史寄存器110在所有情況下都只記錄固定長度的全局歷史,所以基于固定長度全局歷史的分支預測的準確性并不足夠好。例如,基于固定長度全局歷史的分支預測并不總能準確地區(qū)分與當前分支指令相關的先前的分支指令。類似地,不僅是使用固定長度的全局歷史無法總是準確地預測不相關的其他分支指令,而且相關在某些情況下存在并且在它們應該存在的其它情況下卻不存在。例如,在以下代碼示例中,如果存儲器操作數(shù)是X,則Y會由于數(shù)據(jù)局部性而具有相鄰值。分支預測器可以執(zhí)行上述操作。然而這種關系將隨著數(shù)據(jù)局部性的喪失而遭到破壞。
If(d==0)//如果d=0d=X; //則設置d=XIf(d==Y)//如果d=Y……//則繼續(xù)d=Y的條件指令此種情況示出了全局相關有時不僅依賴于全局歷史或分支地址,還依賴于數(shù)據(jù)局部性。如以上示例所示,當在第二條指令中d被設置成與X相等,且在第三指令中d被判定為不等于Y時,會發(fā)生數(shù)據(jù)局部性喪失。結果,可能不執(zhí)行d=Y的條件指令。這也同樣會損害全局歷史。因此,期望一種能避免上述不足的分支預測器。
附圖簡述圖1是本領域內(nèi)已知的分支預測器的電路框圖。
圖2是根據(jù)本發(fā)明一個實施例的用于處理器的翻譯后備緩沖器相關分支預測器的電路框圖。
圖3是根據(jù)本發(fā)明一個實施例的方法的流程圖。
圖4是包括根據(jù)本發(fā)明一個實施例使用的一個或多個處理器和存儲器的計算機系統(tǒng)的框圖。
詳細描述本發(fā)明的實施例涉及一種用于翻譯后備緩沖器相關的分支預測的裝置和方法,包括但不限于,帶有或不帶有動態(tài)長度分支歷史的全局歷史翻譯后備緩沖相關的分支預測器和/或兩級翻譯后備緩沖器相關的分支預測器。例如,根據(jù)本發(fā)明的一個實施例,處理器可以包括相關的分支預測器,該分支預測器帶有從翻譯后備緩沖器到全局分支歷史移位寄存器的輸入線。指示翻譯后備緩沖器中何時發(fā)生未命中的輸入線可用于將全局分支歷史移位寄存器清零。因為存儲在全局分支歷史移位寄存器內(nèi)的全局分支歷史可以通過數(shù)據(jù)局部來訓練訓練,所以在翻譯后備緩沖器未命中時將全局分支歷史移位寄存器清零有助于避免由翻譯后備緩沖器未命中數(shù)據(jù)引起的非數(shù)據(jù)局部化所導致的全局分支歷史的破壞。
圖2是根據(jù)本發(fā)明一個實施例的用于處理器的翻譯后備緩沖器相關分支預測器的電路框圖。在圖2中,處理器200可以包括m位歷史移位寄存器210,該歷史移位寄存器210可以包括第一一位移位輸入(類似于圖1中的一位移位輸入)、第二一位移位輸入和一位移位輸出(類似于圖1中的一位移位輸出),其中第一一位移位輸入接收關于特定指令的分支是否被采取的指示。歷史移位寄存器210可用于存儲針對一執(zhí)行指令的動態(tài)長度全局分支歷史。歷史移位寄存器210可用于存儲用于執(zhí)行指令的動態(tài)長度全局分支歷史。一般而言,可以使用值為“1”的最高有效位來標識有效歷史長度,例如,若最高有效的“1”在m位移位寄存器的第5位上,則全局歷史可以被確定為長m-5位。結果,最高有效位的“1”并不指示分支是否出現(xiàn)。根據(jù)本發(fā)明的一個實施例,“1”值可用作指示分支被采取的允許信號,而“0”可用作指示分支未被采取的非允許信號。歷史移位寄存器210可用于存儲最大長度為m-1位的動態(tài)長度全局分支預測歷史,并且輸出最高有效位的值,即m-1位的值。因此,串“0000…01”可以指示長度為零的全局歷史,這可以指示最近從歷史移位寄存器210中轉(zhuǎn)儲清除了的全局歷史。類似地,根據(jù)本發(fā)明的一個實施例,認為串“0000…00”無意義,因為它可以指示不存在的全局歷史長度,而認為串“1X…Y”(其中X和Y可以均等于“0”或“1”)包含寄存器能夠包含的最長可能全局歷史長度,即m-1位的長度。
在圖2中,歷史移位寄存器210可以耦合至異或門220,并且歷史移位寄存器210可以將存儲在歷史移位寄存器210中的m位全局分支預測歷史值輸出至異或門220的第一輸入。異或門220還可耦合到將m位分支地址輸出至異或門220第二輸入的分支地址寄存器230。如果從分支地址寄存器230輸入的m位分支地址與從歷史移位寄存器210輸入的m位全局歷史匹配,則異或門220可將m位全局歷史輸出至模式歷史表240。應該注意,來自分支地址寄存器230的m位分支地址在被輸出之前可被移位、擴展或截除,以與歷史移位寄存器210的輸出位數(shù)相匹配。結果,即使全局分支預測歷史值的長度有所改變,從分支地址寄存器230輸出的m位分支地址位串的位數(shù)仍然一般總是與從歷史移位寄存器210輸入的全局分支預測值中的位相匹配。
在圖2中,模式歷史表240可以由2m個條目組成,其中表內(nèi)的每一條目都可包含一“局部歷史”。局部歷史信息通常被存儲在2位飽和分支預測器中。從異或門220輸出的m位全局歷史可用于從模式歷史表240中選則一個條目,該條目可用于執(zhí)行預測。通過這一設計,可使用堅固的預測條目來存儲在其中不同的分支指令彼此相關的有效歷史信息。
一般而言,在圖2中,歷史移位寄存器210可以如圖1所示的那樣移位,但有兩點例外,即,當全局分支歷史要被轉(zhuǎn)儲清除時以及當全局歷史串的值等于“1XYZ…,”時,其中X、Y和Z可以均等于“0”或“1”。首先,在圖2中,如果歷史移位寄存器210要被轉(zhuǎn)儲清除,則歷史移位寄存器210中的全局分支歷史串可被清零并設置為等于“0000…01”。其次,當歷史移位寄存器210包含m-1位長的全局分支歷史時,即意味著“1”可以被存儲在歷史移位寄存器210的最高有效位(即,位1)中,存儲在位1中的“1”值可以被保持,并且可以將位2中的位值移出。
歷史移位寄存器210還可以耦合至例如三態(tài)緩沖器的鎖存存儲器250,該鎖存存儲器可以從翻譯后備緩沖器(“TLB”)(未示出)接收指示TLB中是否存在未命中的信號,并且該鎖存存儲器250還接收并存儲m位的輸入清零值。m位的輸入清零值可以包括除最右位數(shù)可能是“1”以外的全“0”值,例如,在m=16的情況下,16位的輸入清零值可以等于“0000000000000001”。當發(fā)生TLB未命中時,指示TLB未命中發(fā)生的允許信號就可由TLB未命中線260上的TLB(未示出)發(fā)出。當指示TLB未命中發(fā)生的允許信號抵達鎖存存儲器250時,存儲在鎖存存儲器250內(nèi)的m位輸入清零值就被讀入歷史移位寄存器210。結果,歷史移位寄存器210可被“清零”,以使當前存儲在歷史移位寄存器210內(nèi)的m位值可被來自鎖存存儲器250的例如“0000000000000001”的m位值蓋寫。
在圖2中,反饋電路270可以耦合至歷史移位寄存器210中的位1位置和位2位置。反饋電路270可以包括與歷史移位寄存器210相耦合以接收輸出的最高有效位并與或(OR)門290相耦合的與(AND)門280,或門290可以與歷史移位寄存器210中的位1位置和位2位置相耦合。反饋電路270可用于保持歷史移位寄存器210中m-1位位置內(nèi)的最高有效位的1值。更具體地,與門280的第一輸入281可以耦合至歷史移位寄存器210的輸出。與門280的第二輸入可以接收“1”值,該值可以與歷史移位寄存器210的輸出值進行與運算,從而獲得經(jīng)由輸出287從與門280輸出至或門290第一輸入291的與值?;蜷T290的第二輸入293可以耦合至歷史移位寄存器210中的位2位置并接收來自該位置的值?;蜷T290的輸出297可以耦合至歷史移位寄存器210中的位1位置并將或值輸出至該位置。因為與門280的第二輸入283具有一組“1”輸入,所以只存在兩種可能的輸入組合,即(0,1)和(1,1)。無論如何,與門280的可能輸出值都只有兩種。即,若歷史移位寄存器210中m-1位位置的輸出值也是“1”,則可從與門280輸出“1”,而若歷史移位寄存器210中m-1位位置的輸出值是“0”,則可從與門280輸出“0”。類似地,雖然或門290也僅有相同的兩個可能輸出值(即,“0”或“1”),但是因為或門290的第一輸入291和第二輸入293都不限于單一值,所以所得結果可以來自于四個可能輸入組合,即(0,0)、(0,1)、(1,0)和(1,1)。如可從表1中的邏輯或表中所見的,“1”可以作為四個可能輸入值組合中的三個的結果輸出。因此,因為與門280在歷史移位寄存器210中的位1值為“1”時總是輸出“1”,所以就可以看到,反饋電路270將保持位1位置內(nèi)的“1”值,直到歷史移位寄存器210被TLB未命中清零。
表1
本發(fā)明的實施例可以在無序處理器中實現(xiàn),在該處理器中,取指/解碼單元可以從例如指令高速緩存等存儲位置中取出諸如宏指令等指令,并且對這些指令進行解碼。對于復雜指令集計算機(CISC)架構來說,取指/解碼單元可以將復雜指令解碼成一個或多個微指令/操作。一般而言,這些微指令定義了裝載-存儲型架構,以使涉及存儲器操作的微指令可對諸如精簡指令集計算機(RISC)或超長指令字(VLIW)架構等其他架構實現(xiàn)。
在典型的RISC架構中,并不將指令解碼成微指令。因為本發(fā)明可以對RISC架構以及CISC架構實現(xiàn),所以除非另有規(guī)定,否則就無需在指令和微指令/操作之間做出區(qū)分,并且簡稱之為指令。
圖3是根據(jù)本發(fā)明一個實施例的方法的流程圖。在圖3中,可使用來自TLB的輸入從例如模式歷史表240中選擇一預測條目(310),并基于所選的預測條目和TLB輸入動態(tài)地預測一分支是否被采取(320)。本方法可以接收關于該分支是否被實際采取的信息(330),并基于該分支是否被實際采取來更新預測條目,例如在模式歷史表240中更新(340)?;诜种欠癖粚嶋H采取可更新例如歷史移位寄存器210內(nèi)指示分支是否被實際采取的全局歷史值以及模式歷史表240;并可取出下一個分支指令(360)。一般而言,該方法只有在處理器關閉或沒有額外的指令處理要執(zhí)行時才終止。
在本發(fā)明的未明確示出的一個替換實施例中,如果額外的分支指令不是立即可用,則圖3中的方法可以終止并等待更多的分支指令。
雖然圖3中的方法可能蘊含了執(zhí)行本方法的特定順序,但本發(fā)明的實施例不應被限制在這一順序上。實際上,可以構想其中能夠以任何順序執(zhí)行本方法的部分或所有元素的本發(fā)明的實施例,包括但不限于在例如無序(″OOO″)處理器中全部或部分地并行執(zhí)行。類似地,雖然為便于說明,將圖3中的方法簡化成每次僅反映一個分支,但是也可構想其中可同時處理多個分支的本發(fā)明的實施例,而這些實施例當然地受到任何現(xiàn)有數(shù)據(jù)依賴性的限制。
以下簡化的偽代碼部分示出了根據(jù)本發(fā)明的一個實施例的TLB相關全局歷史分支預測器的實現(xiàn)的操作。
check_and_initialize_predictor(argc,argv,&inTrace,&aPredictor);while(!inTrace->EndOfTrace()){aPredictor->SelectPredictionEntry(inTrace->GetAddress(),inTrace->TLBMissOrNot());//這里為TLB信息bool pr-taken=aPredictor->prediction(inTrace->ForwardBranchOrNot());//允許靜態(tài)預測aPredictor->UpdatePredictor(inTrace->TakenOrNot(),pr_taken);//在知道分支的真實目標之后更新模式歷史表和移位全局寄存器inTrace->read_trace();//讀取該模擬中的下一分支指令
}aPredictor->Show AccuracyQ;例如,在以上的偽代碼中,可以看到預測器在指令執(zhí)行期間操作以預測該指令中每個分支的結果并在得知實際目標之后更新這些預測。雖然上述偽代碼示例可能暗示了串行執(zhí)行,但它只是說明了總體概念,并且可以構想其中各分支的并行和/或無序執(zhí)行可以當然地依據(jù)任何互相約束的數(shù)據(jù)依賴性而發(fā)生的可選實施例。
圖4是根據(jù)本發(fā)明一個實施例使用的可包括一個或多個處理器和存儲器的計算機系統(tǒng)的框圖。在圖4中,計算機系統(tǒng)400可以包括耦合至存儲器總線420的一個或多個處理器410(1)至410(n),存儲器總線420可以耦合至系統(tǒng)邏輯430。一個或多個處理器410(1)至410(n)中的每一個都可以是N位處理器,并且可以包括解碼器(未示出)以及一個或多個N位寄存器(未示出)。系統(tǒng)邏輯430可以通過總線450耦合至系統(tǒng)存儲器440,并且還可以通過外圍總線460耦合至非易失性存儲器470以及一個或多個外圍設備480(1)至480(m)。外圍總線460可以表示例如符合1998年12月18日公布的PCI Special Interest Group(SIG)的PCI Local BusSpecification(PCI局部總線規(guī)范)修訂版2.2的一條或多條外圍部件互連(PCI)總線;工業(yè)標準體系結構(ISA)總線;符合1992年公布的BCPR Services Inc的EISA Specification(EISA規(guī)范)3.12版,1992的擴展ISA(EISA)總線;符合1998年9月23日公布的USB Specification(USB規(guī)范)1.1版的通用串行總線(USB);以及類似的外圍總線。非易失性存儲器470可以是諸如只讀存儲器(ROM)或閃存等靜態(tài)存儲器設備。外圍設備480(1)至480(m)可以包括例如鍵盤;鼠標或其他定點設備;諸如硬盤驅(qū)動器、緊致盤(CD)驅(qū)動器、光盤和數(shù)字視頻盤(DVD)驅(qū)動器等大容量存儲設備;顯示器等等。
雖然已詳細公開了本發(fā)明,但是應該理解,在此也可以做出各種改變、替換和更改。此外,雖然描述了控制某些功能的軟件和硬件,但是這些功能可以如本領域內(nèi)公知的那樣使用軟件、硬件或軟件和硬件的組合來實現(xiàn)。同樣,在所附權利要求中,術語“指令”可包括RISC架構中的指令或CISC架構中的指令,以及在其他計算機架構中使用的指令。本領域普通技術人員能在不背離由所附權利要求書定義的本發(fā)明的精神和范圍的前提下容易地確定并做出其他示例。
權利要求
1.一種分支預測器,包括分支預測電路,它使用來自翻譯后備緩沖器的輸入來預測處理器中的執(zhí)行指令內(nèi)的分支結果。
2.如權利要求1所述的分支預測器,其特征在于,所述分支預測電路包括模式歷史表;以及耦合至所述模式歷史表和所述翻譯后備緩沖器的歷史移位寄存器,所述歷史移位寄存器在接收到來自所述翻譯后備緩沖器的未命中信號時將其自身清零。
3.如權利要求2所述的分支預測器,其特征在于,所述分支預測電路還包括耦合至所述歷史移位寄存器的存儲器,所述存儲器在接收到來自所述翻譯后備緩沖器的未命中信號時將一復位值傳遞到所述歷史移位寄存器。
4.如權利要求3所述的分支預測器,其特征在于,所述存儲器包括三態(tài)緩沖器。
5.如權利要求3所述的分支預測器,其特征在于,所述分支預測電路還包括耦合至所述歷史移位寄存器的反饋環(huán),所述反饋環(huán)保持所述歷史移位寄存器內(nèi)最高有效位的值。
6.如權利要求5所述的分支預測器,其特征在于,所述反饋環(huán)將所述最高有效位的值保持為1。
7.如權利要求5所述的分支預測器,其特征在于,在所述歷史移位寄存器內(nèi)最高有效1值所在位的位置確定了存儲在所述歷史移位寄存器內(nèi)的全局分支歷史的長度。
8.如權利要求7所述的分支預測器,其特征在于,存儲在所述歷史移位寄存器內(nèi)的所述全局分支歷史的長度由所述最高有效1值所在位的位置定義。
9.如權利要求5所述的分支預測器,其特征在于,所述反饋環(huán)包括耦合至所述歷史移位寄存器的與門,所述與門接收所述歷史移位寄存器的輸出位值和允許信號;以及耦合至所述與門和所述歷史移位寄存器的或門,所述或門接收來自所述與門的第一輸入值以及來自所述歷史移位寄存器的第二輸入值,并且將一新的位值輸出至所述歷史移位寄存器。
10.如權利要求2所述的分支預測器,其特征在于,所述歷史移位寄存器含有動態(tài)長度的全局分支歷史。
11.如權利要求2所述的分支預測器,其特征在于,所述歷史移位寄存器包括m位,并且經(jīng)由異或門將一m位模式歷史值輸出至所述模式歷史表。
12.如權利要求11所述的分支預測器,其特征在于,所述異或門接收所述m位模式歷史值以及一m位分支地址值,并將一m位模式歷史值輸出至所述模式歷史表。
13.一種分支預測器,包括包括m位全局分支歷史的分支預測電路;耦合至翻譯后備緩沖器和所述分支預測電路的存儲器,所述存儲器在接收到所述翻譯后備緩沖器中的未命中的指示時復位所述分支預測電路;以及耦合至所述分支預測電路的反饋環(huán),所述反饋環(huán)在所述全局分支歷史的長度等于m-1時保持所述分支預測電路內(nèi)最高有效位的值。
14.如權利要求13所述的分支預測器,其特征在于,所述分支預測電路包括模式歷史表;以及耦合至所述模式歷史表和所述翻譯后備緩沖器的歷史移位寄存器,所述歷史移位寄存器在接收到來自所述翻譯后備緩沖器的未命中指示時將其自身清零;為所述歷史移位寄存器中指示的每個分支存儲地址的分支地址存儲器。
15.如權利要求14所述的分支預測器,其特征在于,所述存儲器耦合至所述歷史移位寄存器。
16.如權利要求13所述的分支預測器,其特征在于,所述存儲器包括三態(tài)緩沖器。
17.如權利要求13所述的分支預測器,其特征在于,所述反饋環(huán)包括耦合至所述歷史移位寄存器的與門,所述與門接收所述歷史移位寄存器的輸出位值和允許信號;以及耦合至所述與門和所述歷史移位寄存器的或門,所述或門接收來自所述與門的第一輸入值以及來自所述歷史移位寄存器的第二輸入值,并且將一新的位值輸出至所述歷史移位寄存器。
18.一種處理器,包括翻譯后備緩沖器;包括m位全局分支歷史的分支預測電路;耦合至所述翻譯后備緩沖器和所述分支預測電路的存儲器,所述存儲器在接收到所述翻譯后備緩沖器中的未命中的指示時復位所述分支預測電路;以及耦合至所述分支預測電路的反饋環(huán),所述反饋環(huán)在所述全局分支歷史的長度等于m-1時保持所述分支預測電路內(nèi)最高有效位的值。
19.如權利要求18所述的處理器,其特征在于,所述分支預測電路包括模式歷史表;耦合至所述模式歷史表和所述翻譯后備緩沖器的歷史移位寄存器,所述歷史移位寄存器在接收到來自所述翻譯后備緩沖器的未命中指示時將其自身清零;以及為所述歷史移位寄存器中指示的每個分支存儲地址的分支地址存儲器。
20.如權利要求19所述的處理器,其特征在于,所述存儲器耦合至所述歷史移位寄存器。
21.如權利要求18所述的處理器,其特征在于,所述存儲器包括三態(tài)緩沖器。
22.如權利要求18所述的處理器,其特征在于,所述反饋環(huán)包括耦合至所述歷史移位寄存器的與門,所述與門接收所述歷史移位寄存器的輸出位值和允許信號;以及耦合至所述與門和所述歷史移位寄存器的或門,所述或門接收來自所述與門的第一輸入值以及來自所述歷史移位寄存器的第二輸入值,并且將一新的位值輸出至所述歷史移位寄存器。
23.一種計算系統(tǒng),包括存儲器;耦合至所述存儲器的處理器,所述處理器包括翻譯后備緩沖器;包括m位全局分支歷史的分支預測電路;耦合至所述翻譯后備緩沖器和所述分支預測電路的存儲器,所述存儲器在接收到所述翻譯后備緩沖器中的未命中的指示時復位所述分支預測電路;以及耦合至所述分支預測電路的反饋環(huán),所述反饋環(huán)在所述全局分支歷史的長度等于m-1時保持所述分支預測電路內(nèi)最高有效位的值。
24.如權利要求23所述的計算系統(tǒng),其特征在于,所述分支預測電路包括模式歷史表;耦合至所述模式歷史表和所述翻譯后備緩沖器的歷史移位寄存器,所述歷史移位寄存器在接收到來自所述翻譯后備緩沖器的未命中指示將其自身清零;為所述歷史移位寄存器中指示的每個分支存儲地址的分支地址存儲器。
25.如權利要求24所述的計算系統(tǒng),其特征在于,所述存儲器耦合至所述歷史移位寄存器。
26.一種方法,包括使用來自一翻譯后備緩沖器的輸入來預測處理器內(nèi)的多條執(zhí)行指令的分支結果。
27.如權利要求26所述的方法,其特征在于,使用來自翻譯后備緩沖器的輸入來預測處理器內(nèi)額多條執(zhí)行指令的分支結果包括預測所述多條執(zhí)行指令的每一條的分支結果;保持所預測的所述多條執(zhí)行指令的每一條的分支結果;以及在接收到關于在與所述多條執(zhí)行指令之一相關聯(lián)的數(shù)據(jù)的翻譯后備緩沖器中發(fā)生未命中的指示時將所述全局分支歷史清零。
28.如權利要求27所述的方法,其特征在于,在接收到關于在翻譯后備緩沖器中發(fā)生未命中的指示時將所述全局分支歷史清零包括用一預定的清零值代替所述全局分支歷史。
29.一種其上存儲有用于執(zhí)行一種方法的可執(zhí)行指令的機器可讀介質(zhì),所述方法包括使用來自翻譯后備緩沖器的輸入來預測處理器內(nèi)的多條執(zhí)行指令的分支結果。
30.如權利要求29所述的機器可讀介質(zhì),其特征在于,使用來自翻譯后備緩沖器的輸入來預測處理器內(nèi)的多條執(zhí)行指令的分支結果包括預測所述多條執(zhí)行指令的每一條的分支結果;保持所預測的所述多條執(zhí)行指令的每一條的分支結果;以及在接收到關于在與所述多條執(zhí)行指令之一相關聯(lián)的數(shù)據(jù)的翻譯后備緩沖器中發(fā)生未命中的指示時將所述全局分支歷史清零。
31.如權利要求30所述的機器可讀介質(zhì),其特征在于,在接收到關于在所述翻譯后備緩沖器中發(fā)生未命中的指示時將所述全局分支歷史清零包括用一預定的清零值代替所述全局分支歷史。
32.一種方法,包括使用來自翻譯后備緩沖器的輸入選擇一預測條目;基于所述預測條目和所述輸入預測一分支是否會被采??;接收關于所述分支是否已被實際采取的信息;用關于所述分支是否已被實際采取的信息更新所述預測條目;更新全局歷史值以指示所述分支是否已被實際采??;以及取出下一個分支指令。
33.如權利要求32所述的方法,其特征在于,使用來自翻譯后備緩沖器的輸入來選擇預測條目包括使用來自所述翻譯后備緩沖器的輸入從模式歷史表中選擇一預測條目。
34.如權利要求32所述的方法,其特征在于,更新所述預測條目包括更新模式歷史表中的所述預測條目。
35.如權利要求32所述的方法,其特征在于,更新全局歷史值以指示所述分支是否已被實際采取包括更新全局移位寄存器內(nèi)的所述全局歷史值以指示所述分支是否已被實際采取。
36.一種其上存儲有用于執(zhí)行一種方法的可執(zhí)行指令的機器可讀介質(zhì),所述方法包括使用來自翻譯后備緩沖器的輸入來選擇一預測條目;基于所述預測條目和所述輸入預測一分支是否會被采??;接收關于所述分支是否已被實際采取的信息;用關于所述分支是否已被實際采取的信息更新所述預測條目;更新全局歷史值以指示所述分支是否已被實際采取;以及取出下一個分支指令。
37.如權利要求36所述的機器可讀介質(zhì),其特征在于,使用來自翻譯后備緩沖器的輸入來選擇預測條目包括使用來自所述翻譯后備緩沖器的輸入從模式歷史表中選擇一預測條目;更新全局歷史值以指示所述分支是否已被實際采??;以及取出下一條分支指令。
38.如權利要求36所述的機器可讀介質(zhì),其特征在于,更新所述預測條目包括更新所述模式歷史表中的預測條目。
39.如權利要求36所述的機器可讀介質(zhì),其特征在于,更新全局歷史值以指示所述分支是否已被實際采取包括更新全局移位寄存器內(nèi)的所述全局歷史值以指示所述分支是否已被實際采取。
全文摘要
本發(fā)明的實施例涉及能夠在超標量以及其他允許分支的處理器中進行有效的分支預測的裝置和方法。根據(jù)本發(fā)明的一個實施例,一種分支預測器可以包括使用來自翻譯后備緩沖器的輸入來預測處理器中的執(zhí)行指令內(nèi)的分支結果的分支預測電路。
文檔編號G06F9/00GK1961285SQ200480043209
公開日2007年5月9日 申請日期2004年6月2日 優(yōu)先權日2004年6月2日
發(fā)明者C·賴 申請人:英特爾公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1