最新的毛片基地免费,国产国语一级毛片,免费国产成人高清在线电影,中天堂国产日韩欧美,中国国产aa一级毛片,国产va欧美va在线观看,成人不卡在线

提供分布式判定預(yù)測的方法、系統(tǒng)和計算機(jī)可訪問介質(zhì)的制作方法

文檔序號:6350126閱讀:252來源:國知局
專利名稱:提供分布式判定預(yù)測的方法、系統(tǒng)和計算機(jī)可訪問介質(zhì)的制作方法
提供分布式判定預(yù)測的方法、系統(tǒng)和計算機(jī)可訪問介質(zhì)關(guān)于政府資助的研究的聲明本發(fā)明是在美國政府的支持下、由國防部F33615-03-C-4106資助的。因此,美國政府對本發(fā)明享有一定的權(quán)益。
背景技術(shù)
在分布式大窗口處理器中,判定是一種用于將分支轉(zhuǎn)換為數(shù)據(jù)值的技術(shù),分支在程序的控制流中引起的頻繁變化,這可以保護(hù)指令,并且可以確定哪些指令正在執(zhí)行以及哪些指令尚未執(zhí)行。判定可以將控制流線性化,便于按照兩條可能的路徑提供指令(分支可能發(fā)生崩潰),并且取回所有指令,且基于判定而僅執(zhí)行一些指令。盡管該模型可以有效地產(chǎn)生在多個執(zhí)行單元上展開的大段代碼,但是這會引起以下問題可能在執(zhí)行時對已被作為非判定架構(gòu)中的分支的判定進(jìn)行評估(與分支不同,分支是在取回之后很短的時間內(nèi)被預(yù)測的)。判定的評估的延遲將顯著地降低性能。當(dāng)前技術(shù)采用兩種可能的不希望的選項(xiàng)之一。首先,這些技術(shù)更愿意避開判定,這可以將每個控制判決保留為分支,可能妨礙在大的分布式處理器上分布指令。第二備選技術(shù)是判定指令,但是將取回和判定預(yù)測集中到單個單元中,這得到較低的取回帶寬,同樣妨礙了在大的分布式多核處理器上進(jìn)行分布。在混合數(shù)據(jù)流架構(gòu)中,例如顯式數(shù)據(jù)圖執(zhí)行(EDGE)架構(gòu),控制流可以是分支和判定的混合。確定哪些分支可以被條件轉(zhuǎn)換為判定是一個復(fù)雜的問題。優(yōu)選地對難以預(yù)測分支進(jìn)行判定,并且對促進(jìn)控制流的充分線性化的分支進(jìn)行判定。可以將其他的控制點(diǎn)保留為分支。利用這種劃分,判定方案可以對所有分支和大部分可預(yù)測的判定進(jìn)行預(yù)測,將優(yōu)選在執(zhí)行時進(jìn)行的對難以預(yù)測的判定的評估推遲。然而,在分布式數(shù)據(jù)流計算機(jī)中,可能難以保存完整的控制歷史以便于進(jìn)行精確的判定預(yù)測(predicate prediction)。該技術(shù)領(lǐng)域的先前的努力典型地依賴于編譯器向難以預(yù)測分支應(yīng)用“條件轉(zhuǎn)換”,并且依賴于特定微架構(gòu)機(jī)制(microarchitectufal)來恢復(fù)編譯器由于沒有運(yùn)行時間信息而發(fā)生錯誤的情形。因此,當(dāng)前已知的大多數(shù)數(shù)據(jù)流計算機(jī)并未以對于商業(yè)應(yīng)用而言有效的方式采用判定預(yù)測。

發(fā)明內(nèi)容
提供了系統(tǒng)、方法和計算機(jī)可訪問介質(zhì)的示例,以針對分布式多核架構(gòu)來產(chǎn)生判定預(yù)測。使用這種系統(tǒng)、方法和計算機(jī)可訪問介質(zhì),可以智能地對分支指令上的近似判定路徑信息進(jìn)行編碼。使用這種靜態(tài)產(chǎn)生的信息,分布式判定預(yù)測器可以產(chǎn)生動態(tài)判定歷史,這有利于對高可信度判定進(jìn)行精確預(yù)測,同時最小化核心之間的通信。在一個示例中,提供了一種計算系統(tǒng)。該計算系統(tǒng)可以包括具有多個處理器核心的多核處理器。每個核心可以包括判定預(yù)測器。判定預(yù)測器可以被配置為產(chǎn)生判定預(yù)測。在另一示例中,提供了一種在多核處理器中提供判定預(yù)測的方法。該方法可以包括針對多核處理器中的多個處理器核心中的每個處理器核心,提供判定預(yù)測器;以及使用判定預(yù)測器,根據(jù)多個分支指令來產(chǎn)生判定預(yù)測。在另一示例中,提供了一種計算機(jī)可訪問介質(zhì),其上存儲有用于在多核處理器計算系統(tǒng)內(nèi)提供判定預(yù)測的計算機(jī)可執(zhí)行指令。處理裝置可以被配置為在處理裝置執(zhí)行指令時執(zhí)行處理過程。該處理過程可以包括針對多核處理器中的多個處理器核心的每個處理器核心提供判定預(yù)測器,每個處理器核心包括至少一個判定預(yù)測器,并且使用判定預(yù)測器來產(chǎn)生判定預(yù)測。盡管公開了多個示例,但是本領(lǐng)域技術(shù)人員根據(jù)下面的詳細(xì)說明,將清楚其他示例。顯而易見,能夠在不脫離在此所呈現(xiàn)教導(dǎo)的精和范圍的情況下,以各個顯而易見的方面修改該系統(tǒng)、方法和計算機(jī)可訪問介質(zhì)。因此,本質(zhì)上應(yīng)當(dāng)將詳細(xì)說明看作是示意性的,而不是限制性的。


根據(jù)以下說明和所附權(quán)利要求,結(jié)合附圖,本公開的前述和其他特征將更加清楚。 在認(rèn)識到這些附圖僅僅示出了根據(jù)本公開的一些示例且因此不應(yīng)被認(rèn)為是限制本公開范圍的前提下,通過使用附圖以額外的特征和細(xì)節(jié)來描述本公開,附圖中圖1是根據(jù)一個示例的代表性計算系統(tǒng)的框圖。圖2是根據(jù)一個示例的判定預(yù)測系統(tǒng)的框圖和流程圖。圖3是根據(jù)另一示例的判定預(yù)測系統(tǒng)的框圖和流程圖。圖4是根據(jù)一個示例的幾何歷史長度預(yù)測器的框圖和流程圖。圖5是根據(jù)一個示例的判定預(yù)測的適當(dāng)方法的框圖和流程圖。以及圖6(a)和6(b)是根據(jù)一些示例的全局歷史寄存器配置的框圖和流程圖。
具體實(shí)施例方式在以下詳細(xì)說明中,參考了作為詳細(xì)說明的一部分的附圖。在附圖中,類似符號通常表示類似部件,除非上下文另行指明。
具體實(shí)施方式
部分、附圖和權(quán)利要求書中記載的示例性實(shí)施例并不是限制性的。在不脫離在此所呈現(xiàn)主題的精神或范圍的情況下,可以利用其他實(shí)施例,且可以進(jìn)行其他改變。應(yīng)當(dāng)理解,在此一般性記載以及附圖中圖示的本公開的各方案可以按照在此隱含公開的多種不同配置來設(shè)置、替換、組合、分割和設(shè)計。本公開涉及與分支預(yù)測有關(guān)的方法、設(shè)備和計算機(jī)程序以及系統(tǒng)。附圖中示出并且在下面說明了一個這種系統(tǒng)的某些優(yōu)選實(shí)施例。然而,多種其他實(shí)施例也是可行的,時間和空間的限制使得無法在一個文檔中包括這些實(shí)施例的詳盡列表。因此,對于本領(lǐng)域技術(shù)人員而言,根據(jù)本專利的教導(dǎo),在權(quán)利要求書的范圍內(nèi)的其他實(shí)施例是顯而易見的。附圖包括用于指定附圖內(nèi)所示的示例的示意性組件的編號,包括計算機(jī)系統(tǒng) 100、處理器101、系統(tǒng)總線102、操作系統(tǒng)103、應(yīng)用104、只讀存儲器105、隨機(jī)存取存儲器106、盤適配器107、盤單元108、通信適配器109、接口適配器110、顯示器適配器111、 鍵盤112、鼠標(biāo)113、揚(yáng)聲器114、顯示器監(jiān)視器115、計算環(huán)境201、應(yīng)用程序202、指令數(shù)據(jù)流203、編譯器204、分支指令205、近似判定路徑信息206、第二指令數(shù)據(jù)流207、處理器 210、處理器核心211-213、判定預(yù)測器214-216、判定預(yù)測220、塊指令301-303、塊起始地址 304-306、幾何歷史長度預(yù)測器400、核心本地歷史寄存器401、全局歷史寄存器402、求和塊404、預(yù)測符號405、全局預(yù)測表406-409、可信度預(yù)測表410、計數(shù)器411、核心本地預(yù)測表 412、核心本地判定歷史寄存器以及全局歷史寄存器601-603、605。圖1是根據(jù)一些示例布置的計算系統(tǒng)100的框圖的示意圖。計算系統(tǒng)100還代表針對本公開的示例的硬件環(huán)境。例如,計算系統(tǒng)100可以具有處理器101,處理器101通過系統(tǒng)總線102耦合到各個其他組件。處理器101可以是異質(zhì)多核處理器,具有根據(jù)在此的示例而布置的多個判定預(yù)測器214-216。下面結(jié)合圖2所示的示例的說明來提供對處理器 101的更詳細(xì)的說明。參考圖1,操作系統(tǒng)103可以在處理器101上運(yùn)行,并提供對圖1的各個組件的功能的控制和協(xié)調(diào)。根據(jù)本公開的示例的原理的應(yīng)用104可以與操作系統(tǒng)103 一起執(zhí)行,并給操作系統(tǒng)103提供調(diào)用和/或指令,其中,調(diào)用/指令實(shí)施要由應(yīng)用104執(zhí)行的各種功能或業(yè)務(wù)。參考圖1,只讀存儲器(“ROM”)105可以與系統(tǒng)總線102耦合,并且可以包括控制計算機(jī)設(shè)備100的某些基本功能的基本輸入/輸出系統(tǒng)(“BIOS”)。隨機(jī)存取存儲器 (“RAM”) 106和盤適配器107也可以耦合到系統(tǒng)總線102。應(yīng)該注意,包括操作系統(tǒng)103和應(yīng)用104在內(nèi)的軟件組件可以加載到RAM 106中以供執(zhí)行,RAM 106可以是計算機(jī)系統(tǒng)100 的主存儲器。可以提供盤適配器107,盤適配器107可以是集成驅(qū)動電子設(shè)備(“IDE”) 或并行高級技術(shù)附件(“PATA”)適配器、串行高級技術(shù)附件(“SATA”)適配器、小型計算機(jī)系統(tǒng)接口( “SCSI”)適配器、通用串行總線(“USB”)適配器、IEEE 1394適配器或者與盤單元108進(jìn)行通信的任意其他適當(dāng)?shù)倪m配器(例如盤驅(qū)動器)。參考圖1,計算機(jī)系統(tǒng)100還可以包括與總線102耦合的通信適配器109。通信適配器109可以將總線102與外部網(wǎng)絡(luò)(未示出)互連,從而便于計算機(jī)系統(tǒng)100與其他類似和/或不同設(shè)備進(jìn)行通信。輸入/輸出(“I/O”)設(shè)備還可以經(jīng)由用戶接口適配器110和顯示器適配器111 與計算機(jī)系統(tǒng)100相連。例如,鍵盤112、鼠標(biāo)113以及揚(yáng)聲器114可以通過用戶接口適配器110與總線102互連??梢酝ㄟ^這些示例設(shè)備中的任意一個將數(shù)據(jù)提供給計算機(jī)系統(tǒng) 100。顯示器監(jiān)視器115可以通過顯示器適配器111與系統(tǒng)總線102相連。通過這種示例的方式,用戶可以通過鍵盤112和/或鼠標(biāo)113向計算機(jī)系統(tǒng)100提供數(shù)據(jù)或其他信息,并經(jīng)由顯示器115和/或揚(yáng)聲器114獲得計算機(jī)系統(tǒng)100的輸出。這里描述的本公開的示例的各個方面、特征、實(shí)施例或?qū)崿F(xiàn)方式可以單獨(dú)使用或以各種組合方式使用。本公開的方法示例可以通過軟件、硬件或硬件和軟件(例如,在計算機(jī)可訪問介質(zhì)上存儲的軟件)的組合來實(shí)現(xiàn)。此處描述了分布式多核微架構(gòu)的判定預(yù)測方案的示例,其可以在處理器101上實(shí)施,并且例如可以適于與顯式數(shù)據(jù)圖執(zhí)行(EDGE)微架構(gòu)一起使用。分布式方案的示例可能依賴于編譯器來智能地對分支指令中的近似判定路徑信息進(jìn)行編碼。使用這種靜態(tài)產(chǎn)生的信息,分布式判定預(yù)測器可以產(chǎn)生動態(tài)判定歷史,有利于對高可信度判定進(jìn)行精確預(yù)測,同時減少核心之間的通信。精確且有效的分布式判定預(yù)測方案的示例有利于編譯器積極地對代碼進(jìn)行判定(例如基于判定預(yù)測器)來減少開銷計算量。因此,如圖2所示,可以在計算機(jī)系統(tǒng)100中提供計算環(huán)境201,計算環(huán)境201包括軟件應(yīng)用程序202以及編譯器204。應(yīng)用程序202可以產(chǎn)生指令數(shù)據(jù)流203,指令數(shù)據(jù)流203 中的一些或多數(shù)可以是分支指令。編譯器204可以對具有近似判定路徑信息206的分支指令205進(jìn)行編碼。所得到的指令數(shù)據(jù)207流入處理器101、210以執(zhí)行。處理器210可以包括多個處理器核心(為了簡化起見,例如,示出了三個處理器核心,即核心211-213),每個處理器核心可以包括判定預(yù)測器214-216中的對應(yīng)一個判定預(yù)測器。這些預(yù)測器214-216然后可以使用編譯器編碼的判定路徑信息206,以有利于對高可信度判定進(jìn)行精確預(yù)測(框 220)。下面提供對EDGE指令集架構(gòu)(ISA)的進(jìn)一步說明。然而,應(yīng)該認(rèn)識到,本發(fā)明的示例可以簡單地與其他ISA—起使用。EDGE ISA具有兩個示例特性,例如以塊為單位的執(zhí)行(要么一塊的所有指令完備并提交(commit),要么沒有任何指令完成并提交),以及直接指令通信(ISA可以對指令中的塊內(nèi)的相關(guān)性進(jìn)行編碼)。使用這種示例模型,一塊指令數(shù)據(jù)流(例如指令數(shù)據(jù)流20 可以在產(chǎn)生一組相容的輸出時完成其操作。例如,利用每一次執(zhí)行,塊可以將數(shù)據(jù)寫入或提供給相同數(shù)目的寄存器,除了恰好產(chǎn)生一個分支輸出之外,還產(chǎn)生相同數(shù)目的存儲數(shù)據(jù),這些存儲數(shù)據(jù)靜態(tài)地編碼在塊首部中。指令可以通過寄存器和存儲器105、106在塊之間進(jìn)行通信??梢曰谥噶顗K中指令的索引,在聚集作為一個處理器101、210的一些或所有核心之間對指令進(jìn)行交織。當(dāng)處理器核心配置發(fā)生改變時,例如,當(dāng)核心作為獨(dú)立的處理單元進(jìn)行操作時,交織過程會相應(yīng)地改變,這有利于處理器在一個或多個核心上執(zhí)行該塊。每個指令塊可以具有判定操作數(shù),其使得可以完全判定EDGA ISA。使用數(shù)據(jù)流執(zhí)行模型(例如, 直接操作數(shù)通信),指令塊可以在接收到所有操作數(shù)時執(zhí)行,并且如果對指令塊進(jìn)行判定, 則指令塊可以在接收到對應(yīng)判定時執(zhí)行。在根據(jù)一個示例的架構(gòu)中,每個指令塊可以具有特定的核心(例如,所有者核心 (owner core)),該核心與相連或參與的核心進(jìn)行協(xié)調(diào)以有利于該指令塊的執(zhí)行。例如,所有者核心可以通過塊起始地址來識別,塊起始地址類似于或等同于傳統(tǒng)架構(gòu)中的程序計數(shù)器。轉(zhuǎn)向圖3,提供了多個指令塊(例如,為了簡單起見,示出了三個塊,即塊301-303),每塊包括塊起始地址304-306中的相應(yīng)一個。該地址304-306可以用于識別近似所有者核心 211-213。如圖3所示,塊301可以通過對應(yīng)地址304與核心211相關(guān)聯(lián)(例如,由核心211 擁有),塊302可以通過對應(yīng)地址305與核心213相關(guān)聯(lián),塊303可以通過對應(yīng)地址306與核心212相關(guān)聯(lián)。各個所有者核心211-213可以負(fù)責(zé)發(fā)送取回命令、預(yù)測下一個塊地址并將所有權(quán)信標(biāo)傳遞回下一個塊地址,收集完成信息(例如,包括寄存器寫入、存儲、退出/分支地址等)、發(fā)送提交(commit)或刷新(flash)命令、以及最終獲得提交確認(rèn)。此外,各個所有者核心211-213中的一個或多個可以有利于預(yù)測下一個塊地址。 核心211-213中的每個核心可以包括功能完整的塊預(yù)測器214-216中的相應(yīng)一個,并且預(yù)測器在核心之間是相同的,或者彼此之間不同。塊預(yù)測器214-216中的下一個可以包括退出預(yù)測器,退出預(yù)測器可以預(yù)測要從塊中取出哪個分支,并且預(yù)測器214-216中相關(guān)聯(lián)目標(biāo)的一個預(yù)測器可以基于預(yù)測的退出目標(biāo),來預(yù)測塊214-216中下一塊的地址。參考圖4, 預(yù)測器214-216中的退出預(yù)測器可以包括兩級本地預(yù)測器、全局預(yù)測器和/或選擇預(yù)測器, 這些預(yù)測器可以使用本地退出歷史410和全局退出歷史402。退出歷史401、402可以由核心211-213使用靜態(tài)地分配給各個塊中的每個分支指令的近似判定路徑信息206來產(chǎn)生。 近似預(yù)測路徑信息206可以編碼在分支指令中,并且可以識別特定塊的具體分支。編譯器 204可以最初基于各個塊中分支指令的順序來分配近似預(yù)測路徑信息206。核心211-213可以使用該退出來產(chǎn)生相關(guān)聯(lián)的預(yù)測器中的本地和全局歷史,而不是(在傳統(tǒng)架構(gòu)中會使用的)采取/未采取信息。核心211-213中的每一個可以添加有判定預(yù)測裝置,該裝置預(yù)測映射到該核心的判定指令的輸出??梢栽诿總€核心中使用基于全局歷史的預(yù)測器(包括基本預(yù)測器和全局歷史寄存器)。這種全局歷史預(yù)測器可以嘗試保存在每個核心211-213中更新的全局歷史信息,同時減少核心211-213之間的通信。首先,參考圖4,在一個示例中,可以將幾何歷史長度(GEHL)預(yù)測器400用作基本預(yù)測器,以執(zhí)行分布式判定預(yù)測。GEHL預(yù)測器400可以包括多個預(yù)測表406-409,這些表由全局分支歷史寄存器402和分支地址(例如,核心本地歷史寄存器401)的獨(dú)立函數(shù)來索引。預(yù)測可以基于從表406-409獲取的值和與核心本地歷史寄存器401相關(guān)聯(lián)的核心本地預(yù)測表412的值之和404的符號405。在該示例中,大部分存儲器可以用于捕獲最近的分支歷史的相關(guān)性,同時仍然有利于捕獲某些較早的分支的相關(guān)性?,F(xiàn)在轉(zhuǎn)向全局判定歷史信息,可以提供多個適當(dāng)示例。某些示例可以實(shí)現(xiàn)較高的精確度,同時減少核心211-213之間的通信。在一個這種示例中,參考圖6a,可以使用核心本地判定歷史寄存器(CLPHR)600。因此,例如,可以將預(yù)測器提供用于僅使用僅在核心中可用的信息,而不與其他核心通信任何信息。在該示例中,每個核心211-213可以具有其自身的排他的全局歷史寄存器601-603,這些寄存器可以跟蹤映射到該核心的判定指令。編譯器 204則可以嘗試映射相關(guān)指令到該核心。因此,可以將相關(guān)的判定指令映射到相同的核心, 這有利于CLPHR 600使用這些指令之間的相關(guān)性。在另一個示例中,參考圖6b,可以提供全局塊歷史寄存器(GBHR)605。由于分布式退出預(yù)測器對塊的退出代碼進(jìn)行預(yù)測,所以這種退出預(yù)測器還可以連接退出判定編號或代碼,從而產(chǎn)生GBHR 605。在該示例中,編譯器204可以根據(jù)分支指令在程序中的順序,給每個塊中的分支指令分配3比特退出代碼。因此,可以將GBHR 605用作全局歷史信息。不需要使用來自塊中的判定的信息,退出預(yù)測器和判定預(yù)測器兩者可以共享相同的歷史信息, 這可以減少或消除對附加通信機(jī)制的需求??梢砸匀魏芜m當(dāng)方式組合CLPHR 600和GBHR 605的示例。例如,GBHR 605可以添加有另一個表,該表由CLPHR而不是主要全局歷史寄存器來索引。從該表中獲取的預(yù)測可以通過加法樹與從GEHL表獲取的預(yù)測進(jìn)行組合。在一些示例中,再次參考圖4,可以提供可信度預(yù)測表410,該表被配置為執(zhí)行判定預(yù)測的精度的估計。可信度預(yù)測表410因此有利于預(yù)測器“濾除”難以預(yù)測的判定(例如, 具有低可信度的判定)??尚哦阮A(yù)測表410的條目可以是重置計數(shù)器(例如計數(shù)器411), 其可以對分支中正確的連續(xù)預(yù)測的數(shù)目進(jìn)行計數(shù)。例如,如果發(fā)生錯誤預(yù)測,則計數(shù)器411 可以重置為零。如果相應(yīng)計數(shù)器的值高于某個閾值,則可以將判定選擇為要預(yù)測的判定。在一些示例中,對于具有少量核心的配置,可信度表中的條目(例如計數(shù)器411)可以是3比特重置計數(shù)器,可以支持高可信度閾值。圖5示出了本發(fā)明的方法的示例。計算機(jī)系統(tǒng)100可以包括處理器101,處理器 101可以被配置為在執(zhí)行時執(zhí)行以下過程。具體地,處理器101可以使編譯器204對具有近似判定路徑信息的分支指令進(jìn)行編碼[過程501]。接下來,將所得到的指令數(shù)據(jù)提供給處理器101以執(zhí)行[過程502]。然后,與每個處理器核心相關(guān)聯(lián)的這些預(yù)測器可以使用編譯器編碼的路徑信息,以有利于對高可信度判定進(jìn)行精確預(yù)測[過程503]。在一些示例中公開了一種計算系統(tǒng),包括多核處理器,多核處理器包括多個處理器核心,每個核心包括至少一個判定預(yù)測器,其中,判定預(yù)測器產(chǎn)生判定預(yù)測。在一些示例中,該計算系統(tǒng)還可以包括應(yīng)用程序,該應(yīng)用程序包括一個或多個分支指令,分支指令上編碼有判定路徑信息。在其他示例中,對判定路徑信息的編碼是由編譯器完成的。在各個其他示例中,所述一個或多個分支指令中每個分支指令上的塊地址確定多核處理器中的哪個處理器核心將執(zhí)行對應(yīng)的分支指令。在另一示例中,多核處理器包括顯式數(shù)據(jù)圖執(zhí)行微架構(gòu)。在另一示例中,所述一個或多個判定預(yù)測器包括基本預(yù)測器和全局歷史寄存器。在其他示例中,基本預(yù)測器是幾何歷史長度預(yù)測器。而在一些示例中,全局歷史寄存器是核心本地判定歷史寄存器。在其他示例中,全局歷史寄存器是全局塊歷史寄存器。在其他示例中, 全局歷史寄存器包括核心本地判定歷史寄存器和全局塊歷史寄存器。在其他示例中,該計算系統(tǒng)還包括可信度預(yù)測表。在其他示例中公開了一種用于在多核處理器中提供判定預(yù)測的方法,包括經(jīng)由多核處理器中的多個處理器核心,提供一個或多個分支指令,每個處理器核心包括至少一個判定預(yù)測器;以及使用判定預(yù)測器來產(chǎn)生判定預(yù)測。在一些示例中,該方法還包括對一個或多個分支指令中的近似判定路徑信息進(jìn)行編碼。在其他示例中,對判定路徑信息的編碼是由編譯器執(zhí)行的。在其他示例中,該方法還包括使用一個或多個分支指令中每個分支指令的塊地址,來確定哪個處理器核心將執(zhí)行分支指令。而在其他示例中,所述一個或多個判定預(yù)測器包括基本預(yù)測器和全局歷史寄存器。在其他示例中,基本預(yù)測器是幾何歷史長度預(yù)測器。在一些示例中,全局歷史寄存器是核心本地判定歷史寄存器。在各個其他示例中,全局歷史寄存器是全局塊歷史寄存器。在其他示例中公開了一種計算機(jī)可訪問介質(zhì),其上存儲有計算機(jī)可執(zhí)行指令,用于在多核處理器計算系統(tǒng)內(nèi)提供判定預(yù)測,其中,當(dāng)處理裝置執(zhí)行該指令時,該處理裝置被配置為執(zhí)行包括以下步驟的過程對一個或多個分支指令中的近似判定路徑信息進(jìn)行編碼;在多核處理器中的一個或多個處理器核心上執(zhí)行所述一個或多個分支指令,所述一個或多個處理器核心中的每個處理器核心包括一個或多個判定預(yù)測器;以及使用所述第一個或多個判定預(yù)測器來產(chǎn)生判定預(yù)測。本公開不限于在本申請中描述的具體示例,這些具體示例意在說明不同方案。本領(lǐng)域技術(shù)人員清楚,不脫離本公開的精神和范圍,可以做出許多修改和示例。本領(lǐng)域技術(shù)人員根據(jù)之前的描述,除了在此所列舉的方法和裝置之外,還可以想到本公開范圍內(nèi)功能上等價的其他方法和裝置。這種修改和示例應(yīng)落在所附權(quán)利要求的范圍內(nèi)。本公開應(yīng)當(dāng)由所附權(quán)利要求的術(shù)語及其等價描述的整個范圍來限定。應(yīng)當(dāng)理解,本公開不限于具體方法、試齊U、化合物組成或生物系統(tǒng),這些都是可以改變的。還應(yīng)理解,這里所使用的術(shù)語僅用于描述具體示例的目的,而不應(yīng)被認(rèn)為是限制性的。至于本文中任何關(guān)于多數(shù)和/或單數(shù)術(shù)語的使用,本領(lǐng)域技術(shù)人員可以從多數(shù)形式轉(zhuǎn)換為單數(shù)形式,和/或從單數(shù)形式轉(zhuǎn)換為多數(shù)形式,以適合具體環(huán)境和應(yīng)用。為清楚起見,在此明確聲明單數(shù)形式/多數(shù)形式可互換。本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,一般而言,所使用的術(shù)語,特別是所附權(quán)利要求中(例如,在所附權(quán)利要求的主體部分中)使用的術(shù)語,一般地應(yīng)理解為“開放”術(shù)語(例如,術(shù)語“包括”應(yīng)解釋為“包括但不限于”,術(shù)語“具有”應(yīng)解釋為“至少具有”等)。本領(lǐng)域技術(shù)人員還應(yīng)理解,如果意在所引入的權(quán)利要求中標(biāo)明具體數(shù)目,則這種意圖將在該權(quán)利要求中明確指出,而在沒有這種明確標(biāo)明的情況下,則不存在這種意圖。例如,為幫助理解,所附權(quán)利要求可能使用了引導(dǎo)短語“至少一個”和“一個或多個”來引入權(quán)利要求中的特征。然而, 這種短語的使用不應(yīng)被解釋為暗示著由不定冠詞“一”或“一個”引入的權(quán)利要求特征將包含該特征的任意特定權(quán)利要求限制為僅包含一個該特征的示例,即便是該權(quán)利要求既包括引導(dǎo)短語“一個或多個”或“至少一個”又包括不定冠詞如“一”或“一個”(例如,“一”和/ 或“一個”應(yīng)當(dāng)被解釋為意指“至少一個”或“一個或多個”);在使用定冠詞來引入權(quán)利要求中的特征時,同樣如此。另外,即使明確指出了所引入權(quán)利要求特征的具體數(shù)目,本領(lǐng)域技術(shù)人員應(yīng)認(rèn)識到,這種列舉應(yīng)解釋為意指至少是所列數(shù)目(例如,不存在其他修飾語的短語“兩個特征”意指至少兩個該特征,或者兩個或更多該特征)。另外,在使用類似于“A、 B和C等中至少一個”這樣的表述的情況下,一般來說應(yīng)該按照本領(lǐng)域技術(shù)人員通常理解該表述的含義來予以解釋(例如,“具有A、B和C中至少一個的系統(tǒng)”應(yīng)包括但不限于單獨(dú)具有A、單獨(dú)具有B、單獨(dú)具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系統(tǒng)等)。在使用類似于“A、B或C等中至少一個”這樣的表述的情況下,一般來說應(yīng)該按照本領(lǐng)域技術(shù)人員通常理解該表述的含義來予以解釋(例如,“具有A、B或C中至少一個的系統(tǒng)”應(yīng)包括但不限于單獨(dú)具有A、單獨(dú)具有B、單獨(dú)具有C、具有A和B、具有A和C、具有B和 C、和/或具有A、B、C的系統(tǒng)等)。本領(lǐng)域技術(shù)人員還應(yīng)理解,實(shí)質(zhì)上任意表示兩個或更多可選項(xiàng)目的轉(zhuǎn)折連詞和/或短語,無論是在說明書、權(quán)利要求書還是附圖中,都應(yīng)被理解為給出了包括這些項(xiàng)目之一、這些項(xiàng)目任一方、或兩個項(xiàng)目的可能性。例如,短語“A或B”應(yīng)當(dāng)被理解為包括“A”或“B”、或“A和B”的可能性。另外,在以馬庫什組描述本公開的特征或方案的情況下,本領(lǐng)域技術(shù)人員應(yīng)認(rèn)識至IJ,本公開由此也是以該馬庫什組中的任意單獨(dú)成員或成員子組來描述的。本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,出于任意和所有目的,例如為了提供書面說明,這里公開的所有范圍也包含任意及全部可能的子范圍及其子范圍的組合。任意列出的范圍可以被容易地看作充分描述且實(shí)現(xiàn)了將該范圍至少進(jìn)行二等分、三等分、四等分、五等分、十等分等。作為非限制性示例,在此所討論的每一范圍可以容易地分成下三分之一、中三分之一和上三分之一等。本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,所有諸如“直至”、“至少”、“大于”、“小于”之類的語言包括所列數(shù)字,并且指代了隨后可以如上所述被分成子范圍的范圍。最后,本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,范圍包括每一單獨(dú)數(shù)字。因此,例如具有1 3個單元或核心的組是指具有1、2或3個單元或核心的組。類似地,具有1 5個單元或核心的組是指具有1、2、3、4 或5個單元或核心的組,以此類推。盡管已經(jīng)在此公開了多個方案和示例,但是本領(lǐng)域技術(shù)人員應(yīng)當(dāng)明白其他方案和示例。這里所公開的多個方案和示例是出于說明性的目的,而不是限制性的,本公開的真實(shí)范圍和精神由所附權(quán)利要求表征。
權(quán)利要求
1.一種計算系統(tǒng),包括多核處理器,所述多核處理器包括多個處理器核心,每個核心包括判定預(yù)測器,其中,判定預(yù)測器被配置為產(chǎn)生判定預(yù)測。
2.根據(jù)權(quán)利要求1所述的計算系統(tǒng),其中,所述核心中的至少一個執(zhí)行應(yīng)用程序,該應(yīng)用程序包括分支指令,分支指令上編碼有判定路徑信息,并且判定預(yù)測器被配置為基于所述判定路徑信息來產(chǎn)生判定預(yù)測。
3.根據(jù)權(quán)利要求2所述的計算系統(tǒng),其中,所述核心中的至少一個是被配置為對分支指令上的判定路徑信息進(jìn)行編碼的編譯器。
4.根據(jù)權(quán)利要求2所述的計算系統(tǒng),其中,所述分支指令具有塊地址,塊地址確定多核處理器中的哪個核心被分配為執(zhí)行該分支指令。
5.根據(jù)權(quán)利要求1所述的計算系統(tǒng),其中,所述多核處理器包括顯式數(shù)據(jù)圖執(zhí)行微架構(gòu)。
6.根據(jù)權(quán)利要求1所述的計算系統(tǒng),其中,所述判定預(yù)測器包括基本預(yù)測器和全局歷史寄存器。
7.根據(jù)權(quán)利要求6所述的計算系統(tǒng),其中,所述基本預(yù)測器包括幾何歷史長度預(yù)測器。
8.根據(jù)權(quán)利要求6所述的計算系統(tǒng),其中,所述全局歷史寄存器包括核心本地判定歷史寄存器。
9.根據(jù)權(quán)利要求6所述的計算系統(tǒng),其中,所述全局歷史寄存器包括全局塊歷史寄存ο
10.根據(jù)權(quán)利要求6所述的計算系統(tǒng),其中,所述全局歷史寄存器包括核心本地判定歷史寄存器和全局塊歷史寄存器。
11.根據(jù)權(quán)利要求1所述的計算系統(tǒng),其中,所述判定預(yù)測器被配置為產(chǎn)生多個判定預(yù)測,并且所述核心中的至少一個被配置為獲得表示判定預(yù)測的精度的可信度預(yù)測,并且基于所述可信度預(yù)測來確定后續(xù)應(yīng)該預(yù)測哪個或哪些判定。
12.一種用于在多核處理器中提供判定預(yù)測的方法,包括針對多核處理器中的多個處理器核心中的每個處理器核心,提供判定預(yù)測器;以及使用判定預(yù)測器,根據(jù)多個分支指令來產(chǎn)生判定預(yù)測。
13.根據(jù)權(quán)利要求12所述的方法,還包括由所述核心中的至少一個執(zhí)行應(yīng)用程序,該程序包括多個分支指令中的一個,所述分支指令上編碼有判定路徑信息。
14.根據(jù)權(quán)利要求13所述的方法,還包括使用編譯器來對分支指令上的判定路徑信息進(jìn)行編碼。
15.根據(jù)權(quán)利要求13所述的方法,其中,所述程序包括多個分支指令,并且該方法還包括使用每個分支指令的塊地址,確定哪個處理器核心將執(zhí)行該分支指令。
16.根據(jù)權(quán)利要求12所述的方法,其中,所述至少一個判定預(yù)測器包括基本預(yù)測器和全局歷史寄存器。
17.根據(jù)權(quán)利要求16所述的方法,其中,所述基本預(yù)測器是幾何歷史長度預(yù)測器。
18.根據(jù)權(quán)利要求16所述的方法,其中,所述全局歷史寄存器是核心本地判定歷史寄存器。
19.根據(jù)權(quán)利要求16所述的方法,其中,所述全局歷史寄存器是全局塊歷史寄存器。
20.一種計算機(jī)可訪問介質(zhì),其上存儲有計算機(jī)可執(zhí)行指令,用于在多核處理器計算系統(tǒng)內(nèi)提供判定預(yù)測,其中,處理裝置被配置為當(dāng)該處理裝置執(zhí)行該指令時執(zhí)行處理過程,所述處理過程包括針對多核處理器中的多個處理器核心中的每個處理器核心,提供判定預(yù)測器,每個處理器核心包括至少一個判定預(yù)測器;以及使用判定預(yù)測器來產(chǎn)生判定預(yù)測。
全文摘要
提供了系統(tǒng)、方法和計算機(jī)可訪問介質(zhì)的示例,以針對分布式多核架構(gòu)來產(chǎn)生判定預(yù)測。使用這種系統(tǒng)、方法和計算機(jī)可訪問介質(zhì),可以智能地對分支指令上的近似判定路徑信息進(jìn)行編碼。使用這種靜態(tài)產(chǎn)生的信息,分布式判定預(yù)測器可以產(chǎn)生動態(tài)判定歷史,這有利于對高可信度判定進(jìn)行精確預(yù)測,同時最小化核心之間的通信。
文檔編號G06F7/38GK102473086SQ201080035509
公開日2012年5月23日 申請日期2010年6月11日 優(yōu)先權(quán)日2009年9月9日
發(fā)明者哈迪·埃斯梅爾扎德, 斯蒂芬·W·柯克勒, 道格·伯格 申請人:德克薩斯系統(tǒng)大學(xué)董事會
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1