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

用于分支預(yù)測(cè)的基于置信度閾值的相對(duì)路徑執(zhí)行的制作方法

文檔序號(hào):9204217閱讀:440來(lái)源:國(guó)知局
用于分支預(yù)測(cè)的基于置信度閾值的相對(duì)路徑執(zhí)行的制作方法
【專利說(shuō)明】
【背景技術(shù)】
[0001]本發(fā)明一般地涉及計(jì)算機(jī)處理器中的分支預(yù)測(cè),更具體地,涉及用于分支預(yù)測(cè)的基于置信度閾值的相對(duì)路徑(opposing path)執(zhí)行。
[0002]計(jì)算機(jī)系統(tǒng)中的處理器可以通過(guò)在一系列小的步驟或操作中執(zhí)行指令來(lái)處理指令。在某些情況下,為了提高處理器所處理的指令數(shù)目,并因而提高處理器的速度,可以對(duì)處理器流水線化。流水線化指的是在處理器中提供分離的階段(stage),其中,每個(gè)階段完成對(duì)于執(zhí)行一個(gè)指令來(lái)說(shuō)所必須的小步驟中的一個(gè)或多個(gè)。作為在流水線中執(zhí)行指令的一個(gè)例子,當(dāng)接收到第一指令時(shí),第一流水線階段可以處理該指令的一小部分。當(dāng)?shù)谝涣魉€階段完成對(duì)該小部分指令的處理時(shí),第二流水線階段可以開(kāi)始處理該第一指令的另一小部分,與此同時(shí),第一流水線階段接收并開(kāi)始處理第二指令的一小部分。這樣,處理器可以在同一時(shí)間并行地處理兩個(gè)或更多個(gè)指令。
[0003]計(jì)算機(jī)程序可以包括分支指令,如果滿足分支指令限定的條件,該分支指令使得計(jì)算機(jī)程序從一個(gè)指令分支到一個(gè)目標(biāo)指令(從而跳過(guò)順序指令,如果有的話)。如果條件不滿足,則執(zhí)行在順序上在該分支指令之后的下一指令,而不分支到目標(biāo)指令。典型地,直到該分支指令被執(zhí)行并且其條件被檢測(cè),才知道被檢測(cè)的條件的結(jié)果。這樣,直到條件被檢測(cè)時(shí),才知道要在分支指令之后執(zhí)行的正確的下一指令。
[0004]在利用流水線來(lái)執(zhí)行指令時(shí),分支指令的結(jié)果直到分支解析(branchresolut1n)之后才能被知道,此時(shí)該分支指令已經(jīng)經(jīng)過(guò)了流水線的幾個(gè)階段。這樣,直到分支指令已經(jīng)經(jīng)過(guò)了確定條件的結(jié)果所必須的階段之后,才能夠知道在分支指令之后要被執(zhí)行的正確的下一指令。在某些情況下,流水線中的指令的執(zhí)行可能會(huì)被停頓(例如,可能不能使用在該分支指令之前的流水線的階段來(lái)執(zhí)行指令),直到分支解析。當(dāng)流水線被停頓時(shí),流水線不能用于并行地執(zhí)行很多指令,降低了整個(gè)處理器效率。
[0005]在另外一些情況下,為了提高處理器效率,可以使用分支預(yù)測(cè)來(lái)預(yù)測(cè)分支指令的結(jié)果。例如,在遇到一個(gè)分支指令時(shí),處理器可以預(yù)測(cè)在知道了條件的結(jié)果之后哪個(gè)指令或路徑會(huì)被執(zhí)行。然后,在發(fā)出分支指令時(shí),處理器不會(huì)停頓流水線,而是會(huì)繼續(xù)發(fā)出從該預(yù)測(cè)的下一指令開(kāi)始的指令。分支指令的預(yù)測(cè)路徑可以被稱為主路徑,非預(yù)測(cè)路徑可以被稱為相對(duì)路徑。
[0006]然而,在某些情況下,分支預(yù)測(cè)可能是不正確的(例如,處理器可能預(yù)測(cè)了分支指令的一個(gè)結(jié)果,但在分支解析時(shí),產(chǎn)生了相反的結(jié)果)。當(dāng)分支指令的結(jié)果被錯(cuò)誤預(yù)測(cè)時(shí),會(huì)將基于該分支預(yù)測(cè)向流水線發(fā)出的預(yù)測(cè)指令從流水線移去,這些指令的原本要作為檢查點(diǎn)的效果被撤銷。這被稱為沖洗流水線。然后,在流水線被沖洗之后,對(duì)于該分支指令,會(huì)向流水線發(fā)出對(duì)應(yīng)于相對(duì)路徑的正確的下一指令,并繼續(xù)指令的執(zhí)行。當(dāng)分支指令的結(jié)果被錯(cuò)誤地預(yù)測(cè)并且對(duì)應(yīng)于主路徑的一組錯(cuò)誤預(yù)測(cè)的指令被從流水線沖洗、從而撤銷流水線之前所做工作時(shí),處理器的效率會(huì)降低。

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

[0007]實(shí)施例包括用于分支預(yù)測(cè)的基于置信度閾值的相對(duì)路徑執(zhí)行的系統(tǒng)、方法和計(jì)算機(jī)程序產(chǎn)品。一個(gè)方面包括,為在執(zhí)行第一線程期間所遇到的第一分支指令確定分支預(yù)測(cè),其中,該分支預(yù)測(cè)為該第一分支指令指示主路徑和相對(duì)路徑。另一個(gè)方面包括,由第一線程執(zhí)行該主路徑。另一個(gè)方面包括,確定該分支預(yù)測(cè)的置信度,并將該分支預(yù)測(cè)的置信度與置信度閾值進(jìn)行比較。又一個(gè)方面包括,基于該分支預(yù)測(cè)的置信度低于該置信度閾值,啟動(dòng)執(zhí)行第一分支指令的相對(duì)路徑的第二線程,其中,第二線程與第一線程并行執(zhí)行。
【附圖說(shuō)明】
[0008]作為實(shí)施例的主題在說(shuō)明書(shū)后面的權(quán)利要求書(shū)中特別地指出并要求保護(hù)。這些實(shí)施例的前述和其他特征和優(yōu)點(diǎn)從結(jié)合附圖進(jìn)行的下面的描述中變得明顯,其中:
[0009]圖1顯示了根據(jù)一個(gè)實(shí)施例的用于分支預(yù)測(cè)的基于置信度閾值的相對(duì)路徑執(zhí)行的計(jì)算機(jī)系統(tǒng);
[0010]圖2顯示了根據(jù)一個(gè)實(shí)施例的流水線;
[0011]圖3顯示了根據(jù)一個(gè)實(shí)施例的分支目標(biāo)緩存器/分支歷史表;
[0012]圖4顯示了根據(jù)一個(gè)實(shí)施例的用于分支目標(biāo)緩存器/分支歷史表的條目(entry);
[0013]圖5A-B顯示了根據(jù)一個(gè)實(shí)施例的用于分支預(yù)測(cè)的基于置信度閾值的相對(duì)路徑執(zhí)行的流程;
[0014]圖6顯示了根據(jù)一個(gè)實(shí)施例的用于分支預(yù)測(cè)的基于置信度閾值的相對(duì)路徑執(zhí)行的執(zhí)行;以及
[0015]圖7顯示了根據(jù)一個(gè)實(shí)施例的計(jì)算機(jī)程序產(chǎn)品。
【具體實(shí)施方式】
[0016]這里提供了用于分支預(yù)測(cè)的基于置信度閾值的相對(duì)路徑執(zhí)行的系統(tǒng)和方法的實(shí)施例,其例示性實(shí)施例將在下面詳細(xì)描述??梢砸愿咧眯哦然虻椭眯哦阮A(yù)測(cè)分支指令??梢曰谠谔幚砥髦卸x的置信度閾值來(lái)確定置信度級(jí)別。對(duì)于以低置信度預(yù)測(cè)的分支指令,預(yù)測(cè)路徑(即主路徑)和非預(yù)測(cè)路徑(即相對(duì)路徑)可以作為對(duì)應(yīng)于包括該分支指令的程序的兩個(gè)單獨(dú)的線程并行地執(zhí)行。隨著分支指令的條件的解析,在正確路徑被確定時(shí),對(duì)應(yīng)于正確路徑的線程可以作為程序的主線程繼續(xù)執(zhí)行,而對(duì)應(yīng)于錯(cuò)誤路徑的線程可以被中止。如果確定相對(duì)路徑線程是正確路徑,相對(duì)路徑線程作為程序的主線程,替代被中止的主路徑線程。為了能夠相對(duì)精確地確定預(yù)測(cè)置信度,可以在分支目標(biāo)緩沖器/分支歷史表(BTB/BHT)中為每個(gè)分支指令維護(hù)用來(lái)跟蹤正確的和錯(cuò)誤的分支預(yù)測(cè)的計(jì)數(shù)器。
[0017]處理器可以包括同時(shí)多線程(SMT)處理器,其能夠并行地執(zhí)行多個(gè)線程。SMT處理器可以具有由SMT處理器一次能夠處理的最大數(shù)目的線程。處理器另外還可以包括事務(wù)存儲(chǔ)器資源。事務(wù)存儲(chǔ)器允許一組指令被定義為一個(gè)事務(wù),執(zhí)行該事務(wù)的結(jié)果可以存儲(chǔ)在事務(wù)存儲(chǔ)器中,而不必存儲(chǔ)在處理器的高速緩沖存儲(chǔ)器中。如果事務(wù)被中止,處理器通過(guò)將事務(wù)存儲(chǔ)器中的事務(wù)結(jié)果無(wú)效并舍棄,可以將包含該事務(wù)的一組指令倒回到該事務(wù)的起始。如果該事務(wù)被成功完成,則事務(wù)的結(jié)果被提交(committed),即,從事務(wù)存儲(chǔ)器傳送到高速緩沖存儲(chǔ)器。對(duì)應(yīng)于分支指令的相對(duì)路徑的線程可以運(yùn)行為一個(gè)使用事務(wù)存儲(chǔ)器資源的事務(wù)。因此,如果在分支解析時(shí)確定該對(duì)應(yīng)于相對(duì)路徑的線程是錯(cuò)誤路徑,在該相對(duì)路徑線程被中止時(shí),相對(duì)路徑線程的結(jié)果可以被倒回。另一方面,如果在分支解析時(shí)確定相對(duì)路徑線程是正確路徑,則事務(wù)結(jié)束,由相對(duì)路徑線程執(zhí)行的操作可以從事務(wù)存儲(chǔ)器提交到高速緩沖存儲(chǔ)器中。
[0018]圖1顯示了用于分支預(yù)測(cè)的基于置信度閾值的相對(duì)路徑執(zhí)行的計(jì)算系統(tǒng)100的例示性實(shí)施例。計(jì)算系統(tǒng)100包括具有流水線102的處理器101。處理器101與計(jì)算系統(tǒng)100的主存儲(chǔ)器108通信,在執(zhí)行諸如應(yīng)用程序109的計(jì)算機(jī)程序期間發(fā)出的指令由流水線102處理。處理器101是SMT處理器,其能夠利用SMT資源103同時(shí)并行地運(yùn)行多個(gè)線程。處理器101還包括事務(wù)存儲(chǔ)器104。對(duì)于被定義為事務(wù)的指令集合,由該事務(wù)執(zhí)行的所有操作的結(jié)果可以存儲(chǔ)在事務(wù)存儲(chǔ)器104中,直到該事務(wù)被提交,此時(shí),可以將事務(wù)的結(jié)果從事務(wù)存儲(chǔ)器104傳送到高速緩存存儲(chǔ)器107。高速緩存存儲(chǔ)器107可以包括任何適當(dāng)數(shù)目和類型的高速緩存器,包括但不限于指令高速緩存器和數(shù)據(jù)高速緩存器。分支預(yù)測(cè)由分支預(yù)測(cè)邏輯105處理。分支選擇緩沖器/分支歷史表BTB/BHT 106保持對(duì)應(yīng)于用于分支預(yù)測(cè)的分支指令地址的條目,將在后面參考附圖3和4對(duì)其進(jìn)行更詳細(xì)說(shuō)明。分支預(yù)測(cè)邏輯105還基于根據(jù)BTB/BHT 106中的信息作出的分支預(yù)測(cè)的置信度,確定是否啟動(dòng)分支指令的相對(duì)路徑的線程。可以基于在分支預(yù)測(cè)邏輯105中預(yù)定的置信度閾值以及正在由SMT資源103處理的線程個(gè)數(shù)來(lái)作出該確定。在某些實(shí)施例中,由分支預(yù)測(cè)邏輯105用來(lái)確定是否啟動(dòng)相對(duì)路徑線程的置信度閾值可以包括可變的置信度閾值;在這樣的實(shí)施例中,置信度閾值可以基于正在由SMT資源103處理的并行線程的個(gè)數(shù)而變化。例如,如果只有主線程正在執(zhí)行,置信度閾值可以相對(duì)較低,隨著另外的相對(duì)線程開(kāi)始執(zhí)行,置信度閾值可以增大。另外,在一些實(shí)施例中,基于與一個(gè)線程相關(guān)聯(lián)的預(yù)測(cè)置信度以及該線程是主線程還是相對(duì)線程,該線程在執(zhí)行期間對(duì)于處理器101的資源可以具有更高的訪問(wèn)優(yōu)先級(jí)。分支預(yù)測(cè)邏輯105另外還可以啟動(dòng)對(duì)在分支解析處確定為不正確的線程的中止。
[0019]圖2顯示了具有多個(gè)階段201 - 208的流水線200的例示實(shí)施例,其可以包括圖1中的流水線102。指令從取指(fetch)階段201到寫(xiě)回階段208經(jīng)過(guò)流水線200。在取指、譯碼和調(diào)度(dispatch)階段201 — 203,指令是按序處理的。在發(fā)出/執(zhí)行階段204,隨著執(zhí)行指令所必須的數(shù)據(jù)可用,指令可以無(wú)序執(zhí)行。然后在重排序階段205將這些指令重新排序,并在完成、檢查點(diǎn)和寫(xiě)回階段206 — 208按序執(zhí)行。在不同的實(shí)施例中,分支指令的分支預(yù)測(cè)可以在流水線的前端、例如在取指階段201、譯碼階段202或更早時(shí)執(zhí)行,而分支指令的分支解析可以發(fā)生在發(fā)出/執(zhí)行階段204。在檢查點(diǎn)階段207,確定在指令
當(dāng)前第1頁(yè)1 2 3 4 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
会昌县| 五常市| 淳安县| 射洪县| 泗洪县| 南华县| 阜新市| 泰州市| 宁安市| 西青区| 大英县| 波密县| 福鼎市| 锡林浩特市| 房产| 灵武市| 广饶县| 拜城县| 南开区| 栾城县| 淳安县| 山东省| 囊谦县| 合江县| 江孜县| 托里县| 宜川县| 双牌县| 巩义市| 长海县| 元氏县| 北安市| 昌宁县| 饶河县| 扬中市| 宁安市| 武威市| 伊川县| 鹿泉市| 永定县| 随州市|