提供分布式判定預測的方法、系統和計算機可訪問介質的製作方法
2023-05-31 11:02:56
專利名稱:提供分布式判定預測的方法、系統和計算機可訪問介質的製作方法
提供分布式判定預測的方法、系統和計算機可訪問介質關於政府資助的研究的聲明本發明是在美國政府的支持下、由國防部F33615-03-C-4106資助的。因此,美國政府對本發明享有一定的權益。
背景技術:
在分布式大窗口處理器中,判定是一種用於將分支轉換為數據值的技術,分支在程序的控制流中引起的頻繁變化,這可以保護指令,並且可以確定哪些指令正在執行以及哪些指令尚未執行。判定可以將控制流線性化,便於按照兩條可能的路徑提供指令(分支可能發生崩潰),並且取回所有指令,且基於判定而僅執行一些指令。儘管該模型可以有效地產生在多個執行單元上展開的大段代碼,但是這會引起以下問題可能在執行時對已被作為非判定架構中的分支的判定進行評估(與分支不同,分支是在取回之後很短的時間內被預測的)。判定的評估的延遲將顯著地降低性能。當前技術採用兩種可能的不希望的選項之一。首先,這些技術更願意避開判定,這可以將每個控制判決保留為分支,可能妨礙在大的分布式處理器上分布指令。第二備選技術是判定指令,但是將取回和判定預測集中到單個單元中,這得到較低的取回帶寬,同樣妨礙了在大的分布式多核處理器上進行分布。在混合數據流架構中,例如顯式數據圖執行(EDGE)架構,控制流可以是分支和判定的混合。確定哪些分支可以被條件轉換為判定是一個複雜的問題。優選地對難以預測分支進行判定,並且對促進控制流的充分線性化的分支進行判定。可以將其他的控制點保留為分支。利用這種劃分,判定方案可以對所有分支和大部分可預測的判定進行預測,將優選在執行時進行的對難以預測的判定的評估推遲。然而,在分布式數據流計算機中,可能難以保存完整的控制歷史以便於進行精確的判定預測(predicate prediction)。該技術領域的先前的努力典型地依賴於編譯器向難以預測分支應用「條件轉換」,並且依賴於特定微架構機制(microarchitectufal)來恢復編譯器由於沒有運行時間信息而發生錯誤的情形。因此,當前已知的大多數數據流計算機並未以對於商業應用而言有效的方式採用判定預測。
發明內容
提供了系統、方法和計算機可訪問介質的示例,以針對分布式多核架構來產生判定預測。使用這種系統、方法和計算機可訪問介質,可以智能地對分支指令上的近似判定路徑信息進行編碼。使用這種靜態產生的信息,分布式判定預測器可以產生動態判定歷史,這有利於對高可信度判定進行精確預測,同時最小化核心之間的通信。在一個示例中,提供了一種計算系統。該計算系統可以包括具有多個處理器核心的多核處理器。每個核心可以包括判定預測器。判定預測器可以被配置為產生判定預測。在另一示例中,提供了一種在多核處理器中提供判定預測的方法。該方法可以包括針對多核處理器中的多個處理器核心中的每個處理器核心,提供判定預測器;以及使用判定預測器,根據多個分支指令來產生判定預測。在另一示例中,提供了一種計算機可訪問介質,其上存儲有用於在多核處理器計算系統內提供判定預測的計算機可執行指令。處理裝置可以被配置為在處理裝置執行指令時執行處理過程。該處理過程可以包括針對多核處理器中的多個處理器核心的每個處理器核心提供判定預測器,每個處理器核心包括至少一個判定預測器,並且使用判定預測器來產生判定預測。儘管公開了多個示例,但是本領域技術人員根據下面的詳細說明,將清楚其他示例。顯而易見,能夠在不脫離在此所呈現教導的精和範圍的情況下,以各個顯而易見的方面修改該系統、方法和計算機可訪問介質。因此,本質上應當將詳細說明看作是示意性的,而不是限制性的。
根據以下說明和所附權利要求,結合附圖,本公開的前述和其他特徵將更加清楚。 在認識到這些附圖僅僅示出了根據本公開的一些示例且因此不應被認為是限制本公開範圍的前提下,通過使用附圖以額外的特徵和細節來描述本公開,附圖中圖1是根據一個示例的代表性計算系統的框圖。圖2是根據一個示例的判定預測系統的框圖和流程圖。圖3是根據另一示例的判定預測系統的框圖和流程圖。圖4是根據一個示例的幾何歷史長度預測器的框圖和流程圖。圖5是根據一個示例的判定預測的適當方法的框圖和流程圖。以及圖6(a)和6(b)是根據一些示例的全局歷史寄存器配置的框圖和流程圖。
具體實施例方式在以下詳細說明中,參考了作為詳細說明的一部分的附圖。在附圖中,類似符號通常表示類似部件,除非上下文另行指明。
具體實施方式
部分、附圖和權利要求書中記載的示例性實施例並不是限制性的。在不脫離在此所呈現主題的精神或範圍的情況下,可以利用其他實施例,且可以進行其他改變。應當理解,在此一般性記載以及附圖中圖示的本公開的各方案可以按照在此隱含公開的多種不同配置來設置、替換、組合、分割和設計。本公開涉及與分支預測有關的方法、設備和電腦程式以及系統。附圖中示出並且在下面說明了一個這種系統的某些優選實施例。然而,多種其他實施例也是可行的,時間和空間的限制使得無法在一個文檔中包括這些實施例的詳盡列表。因此,對於本領域技術人員而言,根據本專利的教導,在權利要求書的範圍內的其他實施例是顯而易見的。附圖包括用於指定附圖內所示的示例的示意性組件的編號,包括計算機系統 100、處理器101、系統總線102、作業系統103、應用104、只讀存儲器105、隨機存取存儲器106、盤適配器107、盤單元108、通信適配器109、接口適配器110、顯示器適配器111、 鍵盤112、滑鼠113、揚聲器114、顯示器監視器115、計算環境201、應用程式202、指令數據流203、編譯器204、分支指令205、近似判定路徑信息206、第二指令數據流207、處理器 210、處理器核心211-213、判定預測器214-216、判定預測220、塊指令301-303、塊起始地址 304-306、幾何歷史長度預測器400、核心本地歷史寄存器401、全局歷史寄存器402、求和塊404、預測符號405、全局預測表406-409、可信度預測表410、計數器411、核心本地預測表 412、核心本地判定歷史寄存器以及全局歷史寄存器601-603、605。圖1是根據一些示例布置的計算系統100的框圖的示意圖。計算系統100還代表針對本公開的示例的硬體環境。例如,計算系統100可以具有處理器101,處理器101通過系統總線102耦合到各個其他組件。處理器101可以是異質多核處理器,具有根據在此的示例而布置的多個判定預測器214-216。下面結合圖2所示的示例的說明來提供對處理器 101的更詳細的說明。參考圖1,作業系統103可以在處理器101上運行,並提供對圖1的各個組件的功能的控制和協調。根據本公開的示例的原理的應用104可以與作業系統103 一起執行,並給作業系統103提供調用和/或指令,其中,調用/指令實施要由應用104執行的各種功能或業務。參考圖1,只讀存儲器(「ROM」)105可以與系統總線102耦合,並且可以包括控制計算機設備100的某些基本功能的基本輸入/輸出系統(「BIOS」)。隨機存取存儲器 (「RAM」) 106和盤適配器107也可以耦合到系統總線102。應該注意,包括作業系統103和應用104在內的軟體組件可以加載到RAM 106中以供執行,RAM 106可以是計算機系統100 的主存儲器。可以提供盤適配器107,盤適配器107可以是集成驅動電子設備(「IDE」) 或並行高級技術附件(「PATA」)適配器、串行高級技術附件(「SATA」)適配器、小型計算機系統接口( 「SCSI」)適配器、通用串行總線(「USB」)適配器、IEEE 1394適配器或者與盤單元108進行通信的任意其他適當的適配器(例如盤驅動器)。參考圖1,計算機系統100還可以包括與總線102耦合的通信適配器109。通信適配器109可以將總線102與外部網絡(未示出)互連,從而便於計算機系統100與其他類似和/或不同設備進行通信。輸入/輸出(「I/O」)設備還可以經由用戶接口適配器110和顯示器適配器111 與計算機系統100相連。例如,鍵盤112、滑鼠113以及揚聲器114可以通過用戶接口適配器110與總線102互連。可以通過這些示例設備中的任意一個將數據提供給計算機系統 100。顯示器監視器115可以通過顯示器適配器111與系統總線102相連。通過這種示例的方式,用戶可以通過鍵盤112和/或滑鼠113向計算機系統100提供數據或其他信息,並經由顯示器115和/或揚聲器114獲得計算機系統100的輸出。這裡描述的本公開的示例的各個方面、特徵、實施例或實現方式可以單獨使用或以各種組合方式使用。本公開的方法示例可以通過軟體、硬體或硬體和軟體(例如,在計算機可訪問介質上存儲的軟體)的組合來實現。此處描述了分布式多核微架構的判定預測方案的示例,其可以在處理器101上實施,並且例如可以適於與顯式數據圖執行(EDGE)微架構一起使用。分布式方案的示例可能依賴於編譯器來智能地對分支指令中的近似判定路徑信息進行編碼。使用這種靜態產生的信息,分布式判定預測器可以產生動態判定歷史,有利於對高可信度判定進行精確預測,同時減少核心之間的通信。精確且有效的分布式判定預測方案的示例有利於編譯器積極地對代碼進行判定(例如基於判定預測器)來減少開銷計算量。因此,如圖2所示,可以在計算機系統100中提供計算環境201,計算環境201包括軟體應用程式202以及編譯器204。應用程式202可以產生指令數據流203,指令數據流203 中的一些或多數可以是分支指令。編譯器204可以對具有近似判定路徑信息206的分支指令205進行編碼。所得到的指令數據207流入處理器101、210以執行。處理器210可以包括多個處理器核心(為了簡化起見,例如,示出了三個處理器核心,即核心211-213),每個處理器核心可以包括判定預測器214-216中的對應一個判定預測器。這些預測器214-216然後可以使用編譯器編碼的判定路徑信息206,以有利於對高可信度判定進行精確預測(框 220)。下面提供對EDGE指令集架構(ISA)的進一步說明。然而,應該認識到,本發明的示例可以簡單地與其他ISA—起使用。EDGE ISA具有兩個示例特性,例如以塊為單位的執行(要麼一塊的所有指令完備並提交(commit),要麼沒有任何指令完成並提交),以及直接指令通信(ISA可以對指令中的塊內的相關性進行編碼)。使用這種示例模型,一塊指令數據流(例如指令數據流20 可以在產生一組相容的輸出時完成其操作。例如,利用每一次執行,塊可以將數據寫入或提供給相同數目的寄存器,除了恰好產生一個分支輸出之外,還產生相同數目的存儲數據,這些存儲數據靜態地編碼在塊首部中。指令可以通過寄存器和存儲器105、106在塊之間進行通信。可以基於指令塊中指令的索引,在聚集作為一個處理器101、210的一些或所有核心之間對指令進行交織。當處理器核心配置發生改變時,例如,當核心作為獨立的處理單元進行操作時,交織過程會相應地改變,這有利於處理器在一個或多個核心上執行該塊。每個指令塊可以具有判定操作數,其使得可以完全判定EDGA ISA。使用數據流執行模型(例如, 直接操作數通信),指令塊可以在接收到所有操作數時執行,並且如果對指令塊進行判定, 則指令塊可以在接收到對應判定時執行。在根據一個示例的架構中,每個指令塊可以具有特定的核心(例如,所有者核心 (owner core)),該核心與相連或參與的核心進行協調以有利於該指令塊的執行。例如,所有者核心可以通過塊起始地址來識別,塊起始地址類似於或等同於傳統架構中的程序計數器。轉向圖3,提供了多個指令塊(例如,為了簡單起見,示出了三個塊,即塊301-303),每塊包括塊起始地址304-306中的相應一個。該地址304-306可以用於識別近似所有者核心 211-213。如圖3所示,塊301可以通過對應地址304與核心211相關聯(例如,由核心211 擁有),塊302可以通過對應地址305與核心213相關聯,塊303可以通過對應地址306與核心212相關聯。各個所有者核心211-213可以負責發送取回命令、預測下一個塊地址並將所有權信標傳遞迴下一個塊地址,收集完成信息(例如,包括寄存器寫入、存儲、退出/分支地址等)、發送提交(commit)或刷新(flash)命令、以及最終獲得提交確認。此外,各個所有者核心211-213中的一個或多個可以有利於預測下一個塊地址。 核心211-213中的每個核心可以包括功能完整的塊預測器214-216中的相應一個,並且預測器在核心之間是相同的,或者彼此之間不同。塊預測器214-216中的下一個可以包括退出預測器,退出預測器可以預測要從塊中取出哪個分支,並且預測器214-216中相關聯目標的一個預測器可以基於預測的退出目標,來預測塊214-216中下一塊的地址。參考圖4, 預測器214-216中的退出預測器可以包括兩級本地預測器、全局預測器和/或選擇預測器, 這些預測器可以使用本地退出歷史410和全局退出歷史402。退出歷史401、402可以由核心211-213使用靜態地分配給各個塊中的每個分支指令的近似判定路徑信息206來產生。 近似預測路徑信息206可以編碼在分支指令中,並且可以識別特定塊的具體分支。編譯器 204可以最初基於各個塊中分支指令的順序來分配近似預測路徑信息206。核心211-213可以使用該退出來產生相關聯的預測器中的本地和全局歷史,而不是(在傳統架構中會使用的)採取/未採取信息。核心211-213中的每一個可以添加有判定預測裝置,該裝置預測映射到該核心的判定指令的輸出。可以在每個核心中使用基於全局歷史的預測器(包括基本預測器和全局歷史寄存器)。這種全局歷史預測器可以嘗試保存在每個核心211-213中更新的全局歷史信息,同時減少核心211-213之間的通信。首先,參考圖4,在一個示例中,可以將幾何歷史長度(GEHL)預測器400用作基本預測器,以執行分布式判定預測。GEHL預測器400可以包括多個預測表406-409,這些表由全局分支歷史寄存器402和分支地址(例如,核心本地歷史寄存器401)的獨立函數來索引。預測可以基於從表406-409獲取的值和與核心本地歷史寄存器401相關聯的核心本地預測表412的值之和404的符號405。在該示例中,大部分存儲器可以用於捕獲最近的分支歷史的相關性,同時仍然有利於捕獲某些較早的分支的相關性。現在轉向全局判定歷史信息,可以提供多個適當示例。某些示例可以實現較高的精確度,同時減少核心211-213之間的通信。在一個這種示例中,參考圖6a,可以使用核心本地判定歷史寄存器(CLPHR)600。因此,例如,可以將預測器提供用於僅使用僅在核心中可用的信息,而不與其他核心通信任何信息。在該示例中,每個核心211-213可以具有其自身的排他的全局歷史寄存器601-603,這些寄存器可以跟蹤映射到該核心的判定指令。編譯器 204則可以嘗試映射相關指令到該核心。因此,可以將相關的判定指令映射到相同的核心, 這有利於CLPHR 600使用這些指令之間的相關性。在另一個示例中,參考圖6b,可以提供全局塊歷史寄存器(GBHR)605。由於分布式退出預測器對塊的退出代碼進行預測,所以這種退出預測器還可以連接退出判定編號或代碼,從而產生GBHR 605。在該示例中,編譯器204可以根據分支指令在程序中的順序,給每個塊中的分支指令分配3比特退出代碼。因此,可以將GBHR 605用作全局歷史信息。不需要使用來自塊中的判定的信息,退出預測器和判定預測器兩者可以共享相同的歷史信息, 這可以減少或消除對附加通信機制的需求。可以以任何適當方式組合CLPHR 600和GBHR 605的示例。例如,GBHR 605可以添加有另一個表,該表由CLPHR而不是主要全局歷史寄存器來索引。從該表中獲取的預測可以通過加法樹與從GEHL表獲取的預測進行組合。在一些示例中,再次參考圖4,可以提供可信度預測表410,該表被配置為執行判定預測的精度的估計。可信度預測表410因此有利於預測器「濾除」難以預測的判定(例如, 具有低可信度的判定)。可信度預測表410的條目可以是重置計數器(例如計數器411), 其可以對分支中正確的連續預測的數目進行計數。例如,如果發生錯誤預測,則計數器411 可以重置為零。如果相應計數器的值高於某個閾值,則可以將判定選擇為要預測的判定。在一些示例中,對於具有少量核心的配置,可信度表中的條目(例如計數器411)可以是3比特重置計數器,可以支持高可信度閾值。圖5示出了本發明的方法的示例。計算機系統100可以包括處理器101,處理器 101可以被配置為在執行時執行以下過程。具體地,處理器101可以使編譯器204對具有近似判定路徑信息的分支指令進行編碼[過程501]。接下來,將所得到的指令數據提供給處理器101以執行[過程502]。然後,與每個處理器核心相關聯的這些預測器可以使用編譯器編碼的路徑信息,以有利於對高可信度判定進行精確預測[過程503]。在一些示例中公開了一種計算系統,包括多核處理器,多核處理器包括多個處理器核心,每個核心包括至少一個判定預測器,其中,判定預測器產生判定預測。在一些示例中,該計算系統還可以包括應用程式,該應用程式包括一個或多個分支指令,分支指令上編碼有判定路徑信息。在其他示例中,對判定路徑信息的編碼是由編譯器完成的。在各個其他示例中,所述一個或多個分支指令中每個分支指令上的塊地址確定多核處理器中的哪個處理器核心將執行對應的分支指令。在另一示例中,多核處理器包括顯式數據圖執行微架構。在另一示例中,所述一個或多個判定預測器包括基本預測器和全局歷史寄存器。在其他示例中,基本預測器是幾何歷史長度預測器。而在一些示例中,全局歷史寄存器是核心本地判定歷史寄存器。在其他示例中,全局歷史寄存器是全局塊歷史寄存器。在其他示例中, 全局歷史寄存器包括核心本地判定歷史寄存器和全局塊歷史寄存器。在其他示例中,該計算系統還包括可信度預測表。在其他示例中公開了一種用於在多核處理器中提供判定預測的方法,包括經由多核處理器中的多個處理器核心,提供一個或多個分支指令,每個處理器核心包括至少一個判定預測器;以及使用判定預測器來產生判定預測。在一些示例中,該方法還包括對一個或多個分支指令中的近似判定路徑信息進行編碼。在其他示例中,對判定路徑信息的編碼是由編譯器執行的。在其他示例中,該方法還包括使用一個或多個分支指令中每個分支指令的塊地址,來確定哪個處理器核心將執行分支指令。而在其他示例中,所述一個或多個判定預測器包括基本預測器和全局歷史寄存器。在其他示例中,基本預測器是幾何歷史長度預測器。在一些示例中,全局歷史寄存器是核心本地判定歷史寄存器。在各個其他示例中,全局歷史寄存器是全局塊歷史寄存器。在其他示例中公開了一種計算機可訪問介質,其上存儲有計算機可執行指令,用於在多核處理器計算系統內提供判定預測,其中,當處理裝置執行該指令時,該處理裝置被配置為執行包括以下步驟的過程對一個或多個分支指令中的近似判定路徑信息進行編碼;在多核處理器中的一個或多個處理器核心上執行所述一個或多個分支指令,所述一個或多個處理器核心中的每個處理器核心包括一個或多個判定預測器;以及使用所述第一個或多個判定預測器來產生判定預測。本公開不限於在本申請中描述的具體示例,這些具體示例意在說明不同方案。本領域技術人員清楚,不脫離本公開的精神和範圍,可以做出許多修改和示例。本領域技術人員根據之前的描述,除了在此所列舉的方法和裝置之外,還可以想到本公開範圍內功能上等價的其他方法和裝置。這種修改和示例應落在所附權利要求的範圍內。本公開應當由所附權利要求的術語及其等價描述的整個範圍來限定。應當理解,本公開不限於具體方法、試齊U、化合物組成或生物系統,這些都是可以改變的。還應理解,這裡所使用的術語僅用於描述具體示例的目的,而不應被認為是限制性的。至於本文中任何關於多數和/或單數術語的使用,本領域技術人員可以從多數形式轉換為單數形式,和/或從單數形式轉換為多數形式,以適合具體環境和應用。為清楚起見,在此明確聲明單數形式/多數形式可互換。本領域技術人員應當理解,一般而言,所使用的術語,特別是所附權利要求中(例如,在所附權利要求的主體部分中)使用的術語,一般地應理解為「開放」術語(例如,術語「包括」應解釋為「包括但不限於」,術語「具有」應解釋為「至少具有」等)。本領域技術人員還應理解,如果意在所引入的權利要求中標明具體數目,則這種意圖將在該權利要求中明確指出,而在沒有這種明確標明的情況下,則不存在這種意圖。例如,為幫助理解,所附權利要求可能使用了引導短語「至少一個」和「一個或多個」來引入權利要求中的特徵。然而, 這種短語的使用不應被解釋為暗示著由不定冠詞「一」或「一個」引入的權利要求特徵將包含該特徵的任意特定權利要求限制為僅包含一個該特徵的示例,即便是該權利要求既包括引導短語「一個或多個」或「至少一個」又包括不定冠詞如「一」或「一個」(例如,「一」和/ 或「一個」應當被解釋為意指「至少一個」或「一個或多個」);在使用定冠詞來引入權利要求中的特徵時,同樣如此。另外,即使明確指出了所引入權利要求特徵的具體數目,本領域技術人員應認識到,這種列舉應解釋為意指至少是所列數目(例如,不存在其他修飾語的短語「兩個特徵」意指至少兩個該特徵,或者兩個或更多該特徵)。另外,在使用類似於「A、 B和C等中至少一個」這樣的表述的情況下,一般來說應該按照本領域技術人員通常理解該表述的含義來予以解釋(例如,「具有A、B和C中至少一個的系統」應包括但不限於單獨具有A、單獨具有B、單獨具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系統等)。在使用類似於「A、B或C等中至少一個」這樣的表述的情況下,一般來說應該按照本領域技術人員通常理解該表述的含義來予以解釋(例如,「具有A、B或C中至少一個的系統」應包括但不限於單獨具有A、單獨具有B、單獨具有C、具有A和B、具有A和C、具有B和 C、和/或具有A、B、C的系統等)。本領域技術人員還應理解,實質上任意表示兩個或更多可選項目的轉折連詞和/或短語,無論是在說明書、權利要求書還是附圖中,都應被理解為給出了包括這些項目之一、這些項目任一方、或兩個項目的可能性。例如,短語「A或B」應當被理解為包括「A」或「B」、或「A和B」的可能性。另外,在以馬庫什組描述本公開的特徵或方案的情況下,本領域技術人員應認識至IJ,本公開由此也是以該馬庫什組中的任意單獨成員或成員子組來描述的。本領域技術人員應當理解,出於任意和所有目的,例如為了提供書面說明,這裡公開的所有範圍也包含任意及全部可能的子範圍及其子範圍的組合。任意列出的範圍可以被容易地看作充分描述且實現了將該範圍至少進行二等分、三等分、四等分、五等分、十等分等。作為非限制性示例,在此所討論的每一範圍可以容易地分成下三分之一、中三分之一和上三分之一等。本領域技術人員應當理解,所有諸如「直至」、「至少」、「大於」、「小於」之類的語言包括所列數字,並且指代了隨後可以如上所述被分成子範圍的範圍。最後,本領域技術人員應當理解,範圍包括每一單獨數字。因此,例如具有1 3個單元或核心的組是指具有1、2或3個單元或核心的組。類似地,具有1 5個單元或核心的組是指具有1、2、3、4 或5個單元或核心的組,以此類推。儘管已經在此公開了多個方案和示例,但是本領域技術人員應當明白其他方案和示例。這裡所公開的多個方案和示例是出於說明性的目的,而不是限制性的,本公開的真實範圍和精神由所附權利要求表徵。
權利要求
1.一種計算系統,包括多核處理器,所述多核處理器包括多個處理器核心,每個核心包括判定預測器,其中,判定預測器被配置為產生判定預測。
2.根據權利要求1所述的計算系統,其中,所述核心中的至少一個執行應用程式,該應用程式包括分支指令,分支指令上編碼有判定路徑信息,並且判定預測器被配置為基於所述判定路徑信息來產生判定預測。
3.根據權利要求2所述的計算系統,其中,所述核心中的至少一個是被配置為對分支指令上的判定路徑信息進行編碼的編譯器。
4.根據權利要求2所述的計算系統,其中,所述分支指令具有塊地址,塊地址確定多核處理器中的哪個核心被分配為執行該分支指令。
5.根據權利要求1所述的計算系統,其中,所述多核處理器包括顯式數據圖執行微架構。
6.根據權利要求1所述的計算系統,其中,所述判定預測器包括基本預測器和全局歷史寄存器。
7.根據權利要求6所述的計算系統,其中,所述基本預測器包括幾何歷史長度預測器。
8.根據權利要求6所述的計算系統,其中,所述全局歷史寄存器包括核心本地判定歷史寄存器。
9.根據權利要求6所述的計算系統,其中,所述全局歷史寄存器包括全局塊歷史寄存ο
10.根據權利要求6所述的計算系統,其中,所述全局歷史寄存器包括核心本地判定歷史寄存器和全局塊歷史寄存器。
11.根據權利要求1所述的計算系統,其中,所述判定預測器被配置為產生多個判定預測,並且所述核心中的至少一個被配置為獲得表示判定預測的精度的可信度預測,並且基於所述可信度預測來確定後續應該預測哪個或哪些判定。
12.一種用於在多核處理器中提供判定預測的方法,包括針對多核處理器中的多個處理器核心中的每個處理器核心,提供判定預測器;以及使用判定預測器,根據多個分支指令來產生判定預測。
13.根據權利要求12所述的方法,還包括由所述核心中的至少一個執行應用程式,該程序包括多個分支指令中的一個,所述分支指令上編碼有判定路徑信息。
14.根據權利要求13所述的方法,還包括使用編譯器來對分支指令上的判定路徑信息進行編碼。
15.根據權利要求13所述的方法,其中,所述程序包括多個分支指令,並且該方法還包括使用每個分支指令的塊地址,確定哪個處理器核心將執行該分支指令。
16.根據權利要求12所述的方法,其中,所述至少一個判定預測器包括基本預測器和全局歷史寄存器。
17.根據權利要求16所述的方法,其中,所述基本預測器是幾何歷史長度預測器。
18.根據權利要求16所述的方法,其中,所述全局歷史寄存器是核心本地判定歷史寄存器。
19.根據權利要求16所述的方法,其中,所述全局歷史寄存器是全局塊歷史寄存器。
20.一種計算機可訪問介質,其上存儲有計算機可執行指令,用於在多核處理器計算系統內提供判定預測,其中,處理裝置被配置為當該處理裝置執行該指令時執行處理過程,所述處理過程包括針對多核處理器中的多個處理器核心中的每個處理器核心,提供判定預測器,每個處理器核心包括至少一個判定預測器;以及使用判定預測器來產生判定預測。
全文摘要
提供了系統、方法和計算機可訪問介質的示例,以針對分布式多核架構來產生判定預測。使用這種系統、方法和計算機可訪問介質,可以智能地對分支指令上的近似判定路徑信息進行編碼。使用這種靜態產生的信息,分布式判定預測器可以產生動態判定歷史,這有利於對高可信度判定進行精確預測,同時最小化核心之間的通信。
文檔編號G06F7/38GK102473086SQ201080035509
公開日2012年5月23日 申請日期2010年6月11日 優先權日2009年9月9日
發明者哈迪·埃斯梅爾扎德, 史蒂芬·W·柯克勒, 道格·伯格 申請人:德克薩斯系統大學董事會