亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

用于改進(jìn)的判定預(yù)測的方法與裝置的制作方法

文檔序號:6419604閱讀:205來源:國知局
專利名稱:用于改進(jìn)的判定預(yù)測的方法與裝置的制作方法
發(fā)明所屬領(lǐng)域本發(fā)明涉及計算機(jī)系統(tǒng),尤其是涉及支持判定并執(zhí)行判定預(yù)測的計算機(jī)系統(tǒng)處理器。
發(fā)明
背景技術(shù)
在一個計算機(jī)系統(tǒng)中一個處理器操作并控制數(shù)據(jù)的流動。提高處理器的速度或吞吐量將會提高計算機(jī)的計算能力。處理器設(shè)計者采用許多不同的技術(shù)來提高處理器速度和吞吐量,從而為用戶創(chuàng)建更強(qiáng)大的計算機(jī)。設(shè)計者使用的一種技術(shù)稱為判定技術(shù)。
判定是指取決于一個判定值而有條件地執(zhí)行指令。例如,考慮以下指令序列COMPARE R1=R2→p2(p2)ADD R3+R4→R5第一條指令COMPARE R1=R2→p2,根據(jù)操作數(shù)R1和R2的比較結(jié)果來確定判定p2的值。如果寄存器R1的值等于寄存器R2的值,則判定p2的值設(shè)置為“真”,如果R1和R2的值不相等,則p2設(shè)置為“假”。在處理器中“真”和“假”通常分別表示為單個位值“1”和“0”(或者,在一個負(fù)邏輯實(shí)現(xiàn)中分別是“0”和“1”)。
第二條指令(p2)ADD R3+R4→R5,包含兩個部分。第一部分(p2)為判定(或條件),第二部分ADD R3+R4→R5依據(jù)判定p2的值而進(jìn)行。如果p2為真(例如一個“1”),則R5的值設(shè)置為等于R3+R4的值。如果p2為假(例如一個“0”),則跳過該指令的第二部分(實(shí)質(zhì)上將該指令作為一個空操作指令處理),且處理器執(zhí)行程序代碼序列中的下一個后續(xù)指令。
不幸的是,COMPARE指令可能需要用很長時間來執(zhí)行。因此,相關(guān)的后繼指令,例如ADD指令,可能要延遲到COMPARE指令完成執(zhí)行以后才執(zhí)行。本發(fā)明致力于解決這個及其它問題。
發(fā)明概述本說明中描述了一種用于執(zhí)行判定預(yù)測的方法和裝置。在一種方法中,將第一操作數(shù)的最低有效位(LSB)與第二操作數(shù)的LSB相比較。這個比較的結(jié)果用來確定一個用于一個判定的預(yù)測判定值。然后取決于該預(yù)測判定值有條件地執(zhí)行一個判定指令。
通過附圖以及隨后的詳細(xì)說明,本發(fā)明的其它特征和優(yōu)點(diǎn)將會是顯而易見的。
附圖簡要說明本發(fā)明以附圖中的例子加以說明,而不是作為限制,且附圖中相似的標(biāo)記表示類似的單元,其中

圖1是一個根據(jù)本發(fā)明的一個實(shí)施例形成的一個判定預(yù)測器的狀態(tài)圖;圖2是一個根據(jù)本發(fā)明的一個實(shí)施例形成的比較器;圖3是一個根據(jù)本發(fā)明的一個實(shí)施例形成的判定預(yù)測器;圖4是根據(jù)本發(fā)明的一個實(shí)施例形成的計算機(jī)系統(tǒng);以及圖5是一個說明本發(fā)明的一種方法的流程圖。
詳細(xì)說明這里描述了一種用于執(zhí)行判定預(yù)測的方法和裝置。根據(jù)本發(fā)明的一個實(shí)施例,使用歷史信息、或者是通過比較用于確定判定值的COMPARE指令的兩個操作數(shù)的選定最低有效位,對一個判定值進(jìn)行預(yù)測。如果判定預(yù)測器已經(jīng)確定在其基于與該判定有關(guān)的歷史信息準(zhǔn)確預(yù)測一個判定值方面的能力上具有高置信度,則用該歷史信息來確定預(yù)測判定值(PPV)。另一方面,如果判定預(yù)測器在基于歷史信息準(zhǔn)確預(yù)測一個判定值方面的能力上具有低置信度,則通過比較第一操作數(shù)的LSB和第二操作數(shù)的LSB來確定PPV。一旦確定了用于一個判定的PPV,就依賴于該P(yáng)PV,條件執(zhí)行在該判定上判定的一條指令,即正常地執(zhí)行該指令或者是將該指令作為一個空操作指令處理。
在完全執(zhí)行了COMPARE指令之后,將所得到的實(shí)際判定值(APV)與PPV相比較以確定預(yù)測的準(zhǔn)確度。如果該預(yù)測是正確的,就繼續(xù)正常地執(zhí)行后繼指令。如果該預(yù)測是錯誤的,則刷新處理器流水線的后面部分,并從該判定指令開始,使用APV作為判定值重新執(zhí)行這些指令。APV還用于更新保存在一個判定歷史表中、與該判定有關(guān)的歷史信息。
以下給出了用于本發(fā)明的實(shí)施例,包含各種配置和實(shí)現(xiàn),更加詳細(xì)的說明。為簡單起見,術(shù)語“判定寄存器”、“判定”、“判定ID”和“判定值”可以交換使用,以及術(shù)語“寄存器”、“寄存器ID”、“寄存器值”和“操作數(shù)”也可以交換使用。例如,將“判定預(yù)測”理解為意思“判定值預(yù)測”更為確切。另一個例子,把“將第一寄存器與第二寄存器進(jìn)行比較”理解為意思“將保存在第一寄存器中的值與保存在第二寄存器中的值進(jìn)行比較”更為確切。
再次考慮以下指令序列COMPARE R1=R2→p2(p2)ADD R3+R4→R5如上所述,第一條指令確定判定p2的值。第二條指令是一個判定指令,它是根據(jù)判定p2的值判定地(或是條件地)執(zhí)行的。在一個高級流水線處理器中,COMPARE指令的完全執(zhí)行可能需要花費(fèi)幾個時鐘周期。為了阻止ADD指令被延遲這些時鐘周期,對判定p2的值進(jìn)行預(yù)測,然后取決于p2的PPV,條件執(zhí)行ADD指令。
圖1是一個根據(jù)本發(fā)明的一個實(shí)施例形成的一個判定預(yù)測器的狀態(tài)圖,其中定義了兩種狀態(tài)。為簡單起見,參考上述討論到的指令序列對這個狀態(tài)圖進(jìn)行描述。
在狀態(tài)100中,判定預(yù)測器使用與判定p2有關(guān)的歷史信息來計算判定p2的PPV。如果在執(zhí)行COMPARE指令之后確定p2的APV等于PPV,則這個預(yù)測是正確的。正確的預(yù)測可能在判定預(yù)測器基于歷史信息準(zhǔn)確地計算p2的一個PPV的能力方面產(chǎn)生一個高置信度等級。由于置信度高,下次在程序代碼中遇到該指令序列時,還根據(jù)這個歷史信息做出對p2的后續(xù)預(yù)測。
然而,如果APV不等于PPV,則該預(yù)測是錯誤的。由于對p2的錯誤預(yù)測可能會降低置信度。如果置信度降低到一個閾值以下,則狀態(tài)機(jī)變換到圖1中的狀態(tài)101。這個狀態(tài)表示當(dāng)預(yù)測器基于與p2有關(guān)的歷史信息準(zhǔn)確地計算p2的PPV的能力方面具有低置信度時,該判定預(yù)測器的操作。在轉(zhuǎn)換到狀態(tài)101之后,基于對COMPARE指令操作數(shù)的LSB比較,而不是使用p2的歷史信息,做出p2的后續(xù)預(yù)測。
就本發(fā)明的一個實(shí)施例來說,判定預(yù)測器計算它在基于歷史信息準(zhǔn)確地計算p2的PPV的能力方面的第一置信度。該預(yù)測器還計算它在基于LSB比較準(zhǔn)確地計算p2的PPV的能力方面的第二置信度。然后通過比較這兩個計算的置信度等級來確定高和低的置信度級別,從而制定一個可變的置信度閾值。就一個可替換的實(shí)施例來說,該預(yù)測器僅僅計算單個置信度,然后將這個置信度與一個預(yù)定的閾值相比以判定是高還是低的置信度。為便于討論,描述該判定預(yù)測器在它基于歷史信息準(zhǔn)確地計算一個判定的PPV的能力方面有一個高或低的置信度,等同于描述該判定預(yù)測器在基于操作數(shù)LSB比較準(zhǔn)確地計算該判定的PPV的能力方面具有一個低或高的高置信度。
如果置信度超過了這個閾值,則該判定預(yù)測器轉(zhuǎn)換回到圖1中的狀態(tài)100。作為這個轉(zhuǎn)換的結(jié)果,該判定預(yù)測器使用與p2有關(guān)的歷史信息、而不是使用操作數(shù)LSB的比較,來計算p2的一個后續(xù)PPV。就本發(fā)明的一個替換實(shí)施例來說,該狀態(tài)圖可以包含其他的狀態(tài),例如一個在確定該判定的APV之前處理器停止的狀態(tài)。
圖2是一個根據(jù)本發(fā)明一個實(shí)施例形成的比較器,其中將保存在寄存器R1 201中的操作數(shù)的LSB與保存在寄存器R2 202中的操作數(shù)的LSB相比較以確定一個PPV。根據(jù)圖2中的實(shí)施例,在比較器203內(nèi)僅僅比較64位操作數(shù)的最低有效5位,來確定一個PPV。分別使用異或XOR門210、211、212、213和214將位a(0)與b(0)、a(1)與b(1)、a(2)與b(2)、a(3)與b(3)、以及a(4)與b(4)進(jìn)行比較。將每一個異或XOR門210-214的輸出提供給或非NOR門220的輸入,該或非門的輸出就是PPV。就這個實(shí)施例來說,PPV為1表示寄存器201中操作數(shù)的最低有效5位a(0)-a(4)等于寄存器202中操作數(shù)的最低有效5位b(0)-b(4)。PPV為0表示這些位彼此不相等。
根據(jù)本發(fā)明的一個實(shí)施例,比較兩個操作數(shù)的LSB產(chǎn)生一個結(jié)果要比比較這些操作數(shù)的所有位產(chǎn)生一個結(jié)果快。例如,這可能是由于比較器的邏輯門輸入局限所造成的。這個輸入局限可能需要一個費(fèi)時的、擴(kuò)充串聯(lián)的邏輯門來比較這些操作數(shù)的所有位。通過僅僅比較這兩個操作數(shù)的LSB、而不是所有位,就可以使用一個快速的、二級串聯(lián),例如如圖2所示的那個。
一般來說,如果這兩個操作數(shù)在數(shù)值上非常接近,則這兩個操作數(shù)的一個足夠數(shù)目的LSB比較,能夠預(yù)測這些操作數(shù)所有位的比較結(jié)果。可以通過適當(dāng)?shù)仄胶釶PV準(zhǔn)確度、比較器尺寸、以及比較器速度,確定產(chǎn)生該判定的一個PPV所需要的LSB數(shù)目。例如,隨著比較的LSB數(shù)目增加,PPV準(zhǔn)確度也會增加,但是比較器尺寸也可能增加,而且比較器速度可能降低。相反地,隨著比較的LSB數(shù)目減少,比較器尺寸也會降低,而且比較器速度會增加,但是PPV的準(zhǔn)確度會降低。
就本發(fā)明的一個實(shí)施例來說,將操作數(shù)位數(shù)四分之一或更少的最低有效位進(jìn)行比較以確定PPV。對64位的操作數(shù)來說,這數(shù)字意味著每個操作數(shù)的最低有效16位。就另一個實(shí)施例來說,將操作數(shù)位數(shù)八分之一或更少的最低有效位進(jìn)行比較以確定PPV。對64位的操作數(shù)來說,這意味著每個操作數(shù)的最低有效字節(jié)。然而,應(yīng)注意本發(fā)明不局限于64位長度的操作數(shù)。在本發(fā)明的多個可選實(shí)施例中可以使用多種操作數(shù)長度。此外,操作數(shù)中小于位總數(shù)、任意數(shù)量的LSB可以與另一操作數(shù)相應(yīng)數(shù)量的LSB進(jìn)行比較以確定PPV。
盡管在圖2中的比較器確定這些LSB是否相等,根據(jù)本發(fā)明的替換實(shí)施例形成的比較器可以在這些操作數(shù)的LSB或其它任何位之間進(jìn)行任何數(shù)學(xué)關(guān)系的比較。例如,在一個實(shí)施例中,如果通過一條確定第一操作數(shù)是否大于或等于第二操作數(shù)的COMPARE指令來確定一個判定,則相應(yīng)地,比較器通過確定第一操作數(shù)的LSB或最高有效位(MSB)是否大于或等于第二操作數(shù)的LSB或MSB來計算PPV。在一個實(shí)施例中,如果通過一條確定第一操作數(shù)是否小于第二操作數(shù)的COMPARE指令來確定一個判定,則相應(yīng)地,比較器通過確定第一操作數(shù)的LSB或MSB是否小于第二操作數(shù)的LSB或MSB來計算PPV。
圖3是一個根據(jù)本發(fā)明的一個實(shí)施例形成的判定預(yù)測器。判定歷史記錄表301儲存與多個指令中的每一條有關(guān)的歷史信息,并用指令指針(IP)進(jìn)行索引。此外,表301儲存與IP有關(guān)的置信度等級。寄存器文件302儲存與多個寄存器有關(guān)的寄存器值。表301和寄存器文件302的輸出與PPV計算器303的輸入相連,303的輸出與推測性判定寄存器文件(SPRF)304的一個輸入相連。SPRF 304的一個輸出與處理器流水線305的PPV輸入相連,SPRF 304的另一輸出與異或XOR門306的一個輸入相連。指令300,在被一個解碼器(未顯示)解碼之后,分別提供到流水線305的輸入端以及IP、寄存器、和與判定歷史記錄表301相連的判定選擇電路、寄存器文件302、和SPRF 304。就一個實(shí)施例來說,這個選擇電路包含一個多路復(fù)用器。流水線305的APV輸出與XOR門306的一個輸入、以及判定歷史記錄表301的一個輸入相連。XOR門306的輸出與流水線305的刷新信號輸入端相連。流水線305的IP輸出與表301的IP選擇電路相連,并且流水線305的判定ID輸出與SPRF 304的判定選擇電路相連。流水線305的寄存器值輸出端與PPV計算器303的一個輸入端相連。
為了演示圖3判定預(yù)測器的操作,考慮如上所述的指令序列的執(zhí)行。在處理器讀取并解碼第一條指令COMPARE R1=R2→p2之后,將該指令的IP從塊300提供給圖3的判定預(yù)測器。COMPARE指令的IP用來從判定歷史記錄表301中選擇適當(dāng)?shù)奈恢?。從?01中讀取與這個指令有關(guān)的歷史信息和置信度(以及,因此,與p2有關(guān)的歷史信息),并將它們提供給PPV計算器303。同時,R1和R2的寄存器ID用來從寄存器文件302中選擇適當(dāng)?shù)牟僮鲾?shù)。從表301讀取選定的操作數(shù)R1和R2的LSB,并將其提供給PPV計算器303內(nèi)部的比較器312。比較器312包含以類似于圖2中的比較器203的方式構(gòu)成和操作的電路。
就本發(fā)明的一個實(shí)施例來說,保存在圖3的表301中的歷史信息可以包含多個位,且PPV計算器303基于歷史記錄的預(yù)測電路311可以使用這些位以及傳統(tǒng)的分支預(yù)測技術(shù)來計算p2的一個PPV。例如,可以使用一個兩位可逆計數(shù)器或是雙模態(tài)預(yù)測技術(shù)以便在p2的一系列準(zhǔn)確PPV內(nèi)部容許有單個、錯誤的PPV。也可以使用局部或全局預(yù)測技術(shù),或是做為選擇,可以使用這些技術(shù)的組合,例如一個選擇預(yù)測器。
保存在圖3的判定歷史記錄表301中的歷史信息可以包含與程序歷史記錄、上下文相互關(guān)系、或PPV準(zhǔn)確率有關(guān)的信息。就本發(fā)明的一個替換實(shí)施例來說,在計算器303內(nèi)部的某些或全部基于歷史記錄的預(yù)測電路311可以合并到判定歷史記錄表301中。照這樣,可以計算基于歷史信息的PPV并將其保存在該表中,而不是由計算器303“即時”計算。就本發(fā)明的一個替換實(shí)施例來說,判定歷史記錄表301由相關(guān)判定(例如這些例子中的p2)的判定ID、或是那個使用計算器303計算PPV的判定指令的IP來進(jìn)行索引。
置信度等級也保存在圖3的表301中。就本發(fā)明的一個實(shí)施例來說,這些等級反映了在基于歷史信息進(jìn)行判定預(yù)測的準(zhǔn)確度方面的相對置信度。如果在基于與p2有關(guān)的歷史信息進(jìn)行預(yù)測的準(zhǔn)確度方面置信度為高(即在一個閾值之上),則使用該歷史信息確定p2的PPV。然而,如果該置信度為低(即低于一個閾值),則通過比較R1和R2的操作數(shù)的LSB來確定p2的PPV。一個在圖3PPV計算器303內(nèi)部的、包含多路復(fù)用器313的選擇器,在基于歷史記錄的預(yù)測電路311的歷史信息或是比較器312的LSB比較的基礎(chǔ)上,選擇PPV。多路復(fù)用器313的第一輸入端與基于歷史記錄的預(yù)測電路311的輸出端相連,第二輸入端與LSB比較器312的輸出端相連。多路復(fù)用器313的控制輸入端由來自表301的置信度等級進(jìn)行控制,該多路復(fù)用器的輸出即為PPV計算器303的PPV輸出。
要注意到操作數(shù)R1和R2的LSB從寄存器文件302到達(dá)在圖3的PPV計算器303內(nèi)部的比較器312可能要耗費(fèi)一段時間。例如這個延遲可能是由于在寄存器文件302和計算器303之間的長距離。例如,寄存器文件302和計算器303可以存在于處理器的獨(dú)立單元中。此外,這個延遲也可能是由于在R1或R2上的一個寫后讀故障造成的。就本發(fā)明的一個實(shí)施例來說,可通過將計算器303連接到來自于流水線305的寄存器支路總線來減少這個延遲。這個總線表示從流水線305的寄存器值輸出端到PPV計算器303中的LSB比較器312的輸入端之間的連接。注意到這個總線還可以同時與寄存器文件302相連(未顯示)以更新文件302中的寄存器值。
盡管利用了支路總線,來自于表301的歷史信息和置信度等級可以在操作數(shù)R1和R2到達(dá)該計算器以前到達(dá)圖3的PPV計算器303。因此,可以在根據(jù)比較LSB計算PPV之前根據(jù)歷史信息計算p2的一個PPV。因此,根據(jù)本發(fā)明的一個實(shí)施例,當(dāng)確定置信度為高時,PPV計算器303基于歷史信息向SPRF 304提供一個及早的預(yù)測。當(dāng)確定置信度為低時,計算器303根據(jù)LSB比較向SPRF 304提供一個稍后預(yù)測。
p2的PPV在由圖3的計算器303計算了之后,輸入到SPRF 304中,在那兒PPV等候一條在p2上進(jìn)行判定的后繼指令的訪問。根據(jù)本發(fā)明的一個實(shí)施例,SPRF 304是一個包含了所有判定的PPV存儲單元的寄存器文件。還沒有提交到一個體系狀態(tài)的推測性判定(即PPV)保存在SPRF 304的適當(dāng)位置中。就本發(fā)明的一個實(shí)施例來說,提供了用于64個判定的處理器體系結(jié)構(gòu),SPRF 304包含64個可以存儲PPV的單元p0-p63。
在如上所述判定預(yù)測器活動的同時,向圖3流水線305的輸入端提供COMPARE指令。在流水線305內(nèi)部,通過執(zhí)行操作數(shù)R1和R2的全部位比較來確定p2的APV。當(dāng)COMPARE指令在流水線中正被執(zhí)行,但是在確定APV之前時,接下來將解碼的ADD指令從塊300提供給判定預(yù)測器。p2的判定ID用來從SPRF 304中選擇適當(dāng)?shù)腜PV。當(dāng)判定的ADD指令提供給流水線305的指令輸入端時,從SPRF 304中讀取p2的PPV并提供給流水線305的PPV輸入端。如果p2的PPV為“真”,則正常地執(zhí)行該ADD指令。如果用于一個判定的PPV為“假”,則將該指令作為一條空操作指令處理。將一條指令作為一個空操作指令處理,意味著該指令要么不執(zhí)行,要么是如果執(zhí)行的話也不用得到的數(shù)據(jù)來更新寄存器文件的結(jié)構(gòu)狀態(tài)。
當(dāng)判定的ADD指令在圖3流水線305內(nèi)執(zhí)行時,先前的COMPARE指令完成了執(zhí)行,并確定了一個p2的APV。p2的APV在流水線305的APV輸出端提供,而且用于COMPARE指令的IP在IP輸出端提供。這個IP傳送到判定歷史記錄表301的IP選擇電路,并用來在這個表中選擇適當(dāng)?shù)拇鎯卧韵蚱渲袑懭雙2的APV。這個APV用來更新與p2有關(guān)的歷史信息以及置信度等級。此外,p2的判定ID從流水線305的輸出端傳送到SPRF 304的判定選擇電路以便從文件中選擇適當(dāng)?shù)拇鎯卧x取p2的PPV。這個PPV與p2的APV經(jīng)由XOR門306進(jìn)行比較,以確定判定p2是準(zhǔn)確預(yù)測了(即APV與PPV相匹配)還是錯誤預(yù)測了(即APV不匹配于PPV)。如果p2的PPV是準(zhǔn)確的,則正常地繼續(xù)執(zhí)行指令。然而,如果PPV是錯誤預(yù)測的,就從XOR門306向流水線305發(fā)送一個刷新信號,從而使流水線305刷新其中正被執(zhí)行的指令。
除了向圖3中的判定歷史記錄表301和異或XOR門306的一個輸入端提供p2的APV之外,將p2的APV、以及它的判定ID提供給體系結(jié)構(gòu)判定寄存器文件(APRF)(未顯示)以便更新p2的判定值。APRF儲存非推測性、體系結(jié)構(gòu)確認(rèn)的判定值,并且由在p2上判定執(zhí)行的后繼指令進(jìn)行訪問來確定該指令是執(zhí)行還是將其作為一條空操作指令來處理。根據(jù)向XOR門306提供p2的PPV,SPRF 304使與p2有關(guān)的輸入無效。照這樣,由在p2上判定執(zhí)行的后繼指令對SPRF 304的未來訪問將導(dǎo)致一個錯誤,促使這些指令使用保存在APRF中的p2的APV。
要注意到圖3的流水線305僅僅表示處理器完整流水線的一部分。更準(zhǔn)確地說,流水線305包含流水線的后端部分,它包含執(zhí)行階段。由于判定預(yù)測是在流水線的后端附近執(zhí)行的,因此與一個傳統(tǒng)的錯誤預(yù)測分支恢復(fù)過程相比需要更新較少的指令。如果p2的PPV是錯誤預(yù)測的,則要刷新ADD指令和任何直接地或間接地在錯誤PPV上進(jìn)行的后繼指令并通過流水線305重新執(zhí)行。
圖4是根據(jù)本發(fā)明的一個實(shí)施例形成的計算機(jī)系統(tǒng)。處理器400與高速緩存405相連,并包含流水線401,其后端部分與判定預(yù)測器402相連。橋接器410經(jīng)由系統(tǒng)總線與處理器400相連。橋接器410用來將處理器400連接到主存儲器415和外圍設(shè)備部件420以及430。橋接器425將鍵盤435、外部存儲器440、以及監(jiān)視器445連接到橋接器410。
圖4中的外圍設(shè)備部件420和430可以包含音頻與視頻輸入/輸出設(shè)備,例如音頻/視頻信號發(fā)生器、加速器、或分析器。外部存儲器440 440可以包含一個硬盤驅(qū)動器、軟盤、磁帶驅(qū)動器、其它磁存儲介質(zhì)、一個電池供電的隨機(jī)存取存儲器(RAM)設(shè)備、一個電可編程序只讀存儲器(EPROM)存儲設(shè)備、其它固態(tài)的存儲設(shè)備、一個光盤CD-ROM、或其它非易失性計算機(jī)可讀存儲介質(zhì)。
根據(jù)本發(fā)明的一個實(shí)施例,一條COMPARE指令的一個操作數(shù)值、以及COMPARE指令本身最初保存在圖4的外部存儲器440中。在計算機(jī)系統(tǒng)操作期間,處理器400開始將COMPARE指令和操作數(shù)從外部存儲器440經(jīng)由橋接器425和410傳送到主存儲器415中。然后COMPARE指令和操作數(shù)可以在由處理器400接收和使用之前傳送到高速緩存405,或者是COMPARE指令和操作數(shù)可以直接從主存儲器415經(jīng)由橋接器410傳送到處理器400。
COMPARE指令一旦處于圖4的流水線401中,就對其進(jìn)行解碼。將解碼過的指令提供給判定預(yù)測器402,其指定為和流水線401,以類似于如上所述圖3中的判定預(yù)測器和流水線的操作方式協(xié)同操作。在判定預(yù)測期間,該操作數(shù)的LSB與COMPARE指令的第二操作數(shù)的LSB相比較從而計算出一個用于一判定的PPV。就本發(fā)明的一個可選實(shí)施例來說,該操作數(shù)是由處理器400的計算結(jié)果產(chǎn)生的,接著保存在外部高速緩存405或者主存儲器415中。這個操作數(shù)然后被處理器400再次調(diào)用來執(zhí)行該COMPARE指令。或者是,該操作數(shù)可以在任一外圍設(shè)備部件420或430的一個存儲單元內(nèi)產(chǎn)生。
圖5是一個顯示了本發(fā)明的一種方法的流程圖。在步驟510中,確定一個置信度等級。這個置信度等級表示由判定預(yù)測器確定的、該判定預(yù)測器基于與一個判定有關(guān)的歷史信息準(zhǔn)確地預(yù)測該判定的能力方面的置信度。在步驟515中,預(yù)測器確定計算的置信度等級是否小于一個閾值。
如果計算的置信度等級小于一個閾值,則在步驟525中,通過比較一條COMPARE指令第一操作數(shù)的LSB和第二操作數(shù)的LSB來確定該P(yáng)PV。然而,如果計算的置信度等級不小于一個閾值,則在步驟520中使用與分支預(yù)測技術(shù)相當(dāng)?shù)臍v史信息來確定該P(yáng)PV。
這個發(fā)明已經(jīng)就它的特定示范實(shí)施例來進(jìn)行描述。然而,對那些本領(lǐng)域的技術(shù)人員來說,顯然可以在沒有背離本發(fā)明寬廣的精神和范圍的情況下對這些實(shí)施例進(jìn)行各種修改和變化。因此應(yīng)以一個作例證而不是限制的意義來對待該說明書和附圖。
權(quán)利要求
1.一種執(zhí)行一指令序列的方法,包含以下步驟將第一操作數(shù)第一多個最低有效位(LSB)與第二操作數(shù)的第二多個LSB進(jìn)行比較來確定一個用于一個判定的預(yù)測判定值(PPV);以及取決于該P(yáng)PV,條件地執(zhí)行一條判定指令。
2.如權(quán)利要求1所述的方法,進(jìn)一步包含步驟執(zhí)行一條COMPARE指令來確定用于該判定的一個實(shí)際判定值(APV);將該APV與該P(yáng)PV進(jìn)行比較;以及如果APV和PPV不相等就刷新一條流水線。
3.如權(quán)利要求2所述的方法,進(jìn)一步包含步驟在刷新流水線之后執(zhí)行該判定的指令。
4.如權(quán)利要求2所述的方法,其特征在于刷新該流水線包含僅僅刷新該流水線的后端部分。
5.如權(quán)利要求2所述的方法,進(jìn)一步包含步驟在將APV與PPV進(jìn)行比較之后更新在一個判定歷史記錄表中對應(yīng)于該判定的歷史信息。
6.如權(quán)利要求1所述的方法,其特征在于第一多個與第二多個的比較包含將第一操作數(shù)的最低有效四分之一或更少的位數(shù)與第二操作數(shù)的最低有效四分之一或更少的位數(shù)進(jìn)行比較。
7.如權(quán)利要求1所述的方法,其特征在于條件執(zhí)行該判定指令包含,如果PPV為真的話,就執(zhí)行該判定指令。
8.如權(quán)利要求7所述的方法,其特征在于條件執(zhí)行該判定指令包含,如果PPV為假的話,就將該判定指令作為一條空操作指令來處理。
9.如權(quán)利要求1所述的方法,其特征在于第一多個與第二多個的比較是在確定了在基于與該判定有關(guān)的歷史信息準(zhǔn)確地計算PPV的能力方面具有一個低置信度等級之后進(jìn)行的。
10.一種執(zhí)行一指令序列的方法,包含以下步驟確定基于與一個判定有關(guān)的歷史信息準(zhǔn)確地計算用于該判定的一個預(yù)測判定值(PPV)的能力的一個置信度等級;如果確定該置信度等級是第一等級,則使用該歷史信息確定PPV;以及如果確定該置信度等級是第二等級,則通過比較一條COMPARE指令的第一操作數(shù)的第一多個最低有效位(LSB)和第二操作數(shù)的第二多個LSB來確定PPV。
11.如權(quán)利要求10所述的方法,進(jìn)一步包含步驟取決于該P(yáng)PV,條件執(zhí)行一條判定指令;確定一個用于該判定的實(shí)際判定值(APV);以及如果APV和PPV不等,則刷新一條流水線的后端。
12.如權(quán)利要求10所述的方法,其特征在于通過比較來確定PPV的步驟,包含將第一操作數(shù)最低八分之一或更少的LSB與第二操作數(shù)最低八分之一或更少的LSB進(jìn)行比較。
13.如權(quán)利要求10所述的方法,其特征在于通過比較來確定PPV的步驟,包含第一多個和第二多個之間相等的比較。
14.一種處理器包含一個判定歷史記錄表;一個寄存器文件;一個預(yù)測判定值(PPV)計算器,具有第一輸入端與判定歷史記錄表的一個輸出端相連,以及第二輸入端與寄存器文件的一個輸出端相連;以及一個與計算器的一個輸出端相連的推測性判定寄存器文件。
15.如權(quán)利要求14所述的處理器,進(jìn)一步包含一個IP選擇電路,有一個輸出端與判定歷史記錄表相連;一個寄存器選擇電路,有一個輸出端與寄存器文件相連;以及一個指令解碼器,有一個輸出端與IP選擇電路和寄存器選擇電路的輸入端相連。
16.如權(quán)利要求15所述的處理器,進(jìn)一步包含一條流水線,它有一個PPV輸入端與該文件的一個輸出端相連,以及一個實(shí)際判定值(APV)輸出端與判定歷史記錄表的一個輸入端相連。
17.如權(quán)利要求16所述的處理器,進(jìn)一步包含一個異或XOR門,它的第一輸入端與該流水線的APV輸出端相連,第二輸入端與該文件的一個輸出端相連,以及一個輸出端與該流水線的一個刷新輸入端相連。
18.一種處理器包含一個判定歷史記錄表,用來存入與一個判定有關(guān)的歷史信息;以及一個預(yù)測判定值(PPV)計算器,用以基于對第一操作數(shù)的第一多個最低有效位(LSB)和第二操作數(shù)的第二多個LSB進(jìn)行的一個比較來計算一個PPV。
19.如權(quán)利要求18所述的處理器,進(jìn)一步包含一個用以存儲該P(yáng)PV的推測性判定寄存器文件。
20.如權(quán)利要求19所述的處理器,進(jìn)一步包含一條流水線,用來接收該P(yáng)PV,并取決于該P(yáng)PV有條件地執(zhí)行一條判定指令。
21.如權(quán)利要求18所述的處理器,進(jìn)一步包含一條流水線,用來接收該P(yáng)PV,并取決于該P(yáng)PV有條件地執(zhí)行一條判定指令。
22.如權(quán)利要求21所述的處理器,其特征在于該流水線包含一個實(shí)際判定值輸出端用來向判定歷史記錄表提供一個實(shí)際判定值。
23.如權(quán)利要求18所述的處理器,其特征在于計算器包含一個選擇器,用以根據(jù)一個置信度等級選擇基于歷史信息或是基于比較的PPV。
24.一個系統(tǒng)包含用以存儲一個第一值的存儲器;一條總線,用以從該存儲器傳送第一值;以及一個處理器,用以從總線接收第一值,并將第一值的第一多個最低有效位(LSB)與第二值的第二多個最低有效位(LSB)進(jìn)行比較從而計算一個用于一判定的預(yù)測判定值(PPV)。
25.如權(quán)利要求24所述的系統(tǒng),其特征在于該存儲器是主存儲器。
26.如權(quán)利要求24所述的系統(tǒng),其特征在于該總線是一條系統(tǒng)總線。
27.如權(quán)利要求24所述的系統(tǒng),其特征在于該處理器進(jìn)一步包含一條流水線,用來接收該P(yáng)PV,并取決于該P(yáng)PV,有條件地執(zhí)行一條判定指令。
28.如權(quán)利要求25所述的系統(tǒng),其特征在于該處理器進(jìn)一步包含一個判定歷史記錄表,用以存儲與該判定有關(guān)的歷史信息。
全文摘要
在一種方法中,將第一操作數(shù)的最低有效位(LSB)與第二操作數(shù)的LSB進(jìn)行比較。這個比較的結(jié)果用來確定用于一判定的一個判定預(yù)測值。然后取決于該判定預(yù)測值有條件地執(zhí)行一條判定指令。
文檔編號G06F9/38GK1346462SQ99816330
公開日2002年4月24日 申請日期1999年12月23日 優(yōu)先權(quán)日1998年12月31日
發(fā)明者E·T·格羅喬維斯基, H·J·馬爾德, V·E·赫梅爾 申請人:英特爾公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1