新四季網

分支預測裝置、分支預測方法以及處理器的製作方法

2023-12-03 19:53:51 1

專利名稱:分支預測裝置、分支預測方法以及處理器的製作方法
技術領域:
本發明涉及使用分支歷史寄存器和分支歷史圖表進行分支預測的技術,其中該分支歷史寄存器保存多個最近的分支命令的分支結果;該分支歷史圖表保存預測信息,該預測信息表示按照每個索引預測出分支命令進行分支的準確度。
背景技術:
在具有管路功能的處理器中,為了最大限度地發揮性能,使用分支預測裝置來預測分支命令是否進行分支,從而提前進行處理。當該預測失誤時,必須返回原處。這意味著提前進行的處理被浪費,需要另外進行用於返回的處理。由於發生這種懲罰,所以預測精度大大影響處理器的性能。因此,對於分支預測裝置,強烈要求可以以更高的精度來進行預測。
作為現有的分支預測裝置,例如有專利文獻1中描述的2電平型分支預測裝置。該類型的分支預測裝置因其可以得到較高的預測精度而受到矚目。
圖1A是說明2電平型的以往的分支預測裝置所進行的分支預測的圖。
分支歷史寄存器702是保存多個最近的分支命令的分支結果來作為履歷的寄存器。1個分支命令的分支結果用1位的值來表現。例如分支不成立用「0」、分支成立用「1」來表現。該分支結果被逐位保存在寄存器702中。由此,在寄存器702中保存有最近的該位數個分支結果。例如在位數為4位、當前內容為「1001」的狀態下執行分支成立的分支命令時,其內容被更新為「0011」。
「異或」(XOR)運算電路703計算分支歷史圖表704內保存的內容和分支命令地址值701之間的「異或」。該「異或」用作分支歷史圖表704的索引。
在分支歷史圖表704中,保存有按照每個索引表示分支命令進行的分支成立的準確度的預測信息即狀態。該狀態(預測信息)用2位來表現,該用2位表現的值越大,表示分支成立的準確度越高。由此,當該值為「11」或「10」時,預測為分支命令進行的分支成立,當該值為「01」或「00」時預測為分支不成立。
圖1B是說明分支歷史圖表704中保存的狀態的更新方法的圖。
作為該狀態的值根據實際的分支結果來更新。該更新如圖1B所示,在分支成立時以「11」為上限將值進行遞增,在分支不成立時以「00」為下限將值遞減來進行更新。通過進行這種更新,根據執行的程序使分支歷史圖表704最佳化,使其始終維持較高的預測精度。
但是,處理器的性能一般進行基準測試來測量。作為該測試所用的軟體,公知的有SPEC(Standard Performance Evaluation Corporation)基準和TPC(Transaction Processing Performance Council)-C基準等。
SPEC基準中,作為表示處理器的性能的指標有整數運算的性能評價用的SPECint和浮動小數點運算的性能評價用的SPECfp等。另外的TPC-C基準對事物處理系統進行模擬來評價處理器的性能。
圖2是按照基準來說明分支歷史寄存器702的位寬和分支預測的錯誤率的關係的圖。該錯誤率為平均值。
如該圖2所示,在2電平型的分支預測裝置中,分支歷史寄存器702的位寬(數)越大,SPEC基準中的錯誤率越低,TPC-C基準中的錯誤率越高。由此,在安裝了該分支預測裝置的處理器中,分支歷史寄存器702的位寬(數)越大,在SPEC基準中的性能越高,而在TPC-C基準中的性能越低,從而具有難以兼顧的問題。
作為各自的基準特徵,在SPEC基準中,具有存在對最近的分支命令的分支/非分支的履歷強烈依存的命令串,而分支命令數自身比較少的特徵。另外的TPC-C基準中,具有幾乎不依存於最近的分支命令的分支/非分支的履歷而分支命令數自身相對地非常多的特徵。由此,根據這種特徵可以變更分支歷史寄存器702的位寬。
分支歷史圖表704的索引如上所述,為分支歷史寄存器702的值和分支命令地址值701的XOR(G-share)。因此,分支歷史寄存器702的位寬越大,相同地址值701的分支命令的預測信息在分支歷史圖表704內所佔的區域越大,可以不與其他的分支命令共享地保存的分支命令數減少。由此,如果增大分支歷史寄存器702的位寬,則分支命令數較少的SPEC基準中可以不與其他的分支命令共享地保存預測信息的分支命令數至少可以按照最近的每個分支命令的履歷模式(分支/不分支的組合)獨立地保存預測信息,可以認為能提高預測精度。另外的TPC-C基準中,由於分支命令數較多,所以可以獨立地保存預測信息的分支命令數減少,可以認為預測精度下降。
在專利文獻2中,記載了用多個方法來進行分支預測,將其中一種方法用於實際的分支預測中的分支預測裝置。在專利文獻3中,記載了測定模塊在進行各種處理時的性能,以變更配置的處理器。
這些專利文獻2、3中描述的技術都著眼於分支預測中的分支預測錯誤率。但是,該錯誤率有時由於分支預測裝置自身的預測精度低下而變大。因此,在應對上述那樣的程序(基準)具有的特徵(分支命令的出現頻度)方面,有可能不太妥當。
專利文獻1日本特開2003-5956號公報專利文獻2日本特開平10-240526號公報專利文獻3日本特開2002-163150號公報發明內容本發明的目的在於,提供一種與執行的程序無關,可以始終維持較高的預測精度的分支預測裝置以及安裝了該裝置的處理器。
本發明的分支預測裝置以使用分支歷史寄存器和分支歷史圖表來進行分支預測為前提,其中上述分支歷史寄存器保存多個最近的分支命令的分支結果來作為履歷;上述分支歷史圖表保存預測信息,該預測信息表示按照每個使用該分支歷史寄存器保存的分支結果所計算的索引,來預測出分支命令進行分支的準確度,上述分支預測裝置具有檢測不同的地址的分支命令的出現頻度的頻度檢測單元;和根據頻度檢測單元檢測的出現頻度,來動態變更分支歷史寄存器中為有效的位寬的位寬變更單元。
本發明的分支預測方法以使用分支歷史寄存器和分支歷史圖表來進行分支預測為前提,其中上述分支歷史寄存器保存多個最近的分支命令的分支結果來作為履歷;上述分支歷史圖表保存預測信息,該預測信息表示按照每個使用該分支歷史寄存器保存的分支結果所計算的索引,來預測出分支命令進行分支的準確度,上述分支預測方法檢測不同的地址的分支命令的出現頻度;以及根據所檢測出的出現頻度,來動態變更分支歷史寄存器中為有效的位寬。
本發明的處理器以使用分支歷史寄存器和分支歷史圖表來進行分支預測為前提,其中上述分支歷史寄存器保存多個最近的分支命令的分支結果來作為履歷;上述分支歷史圖表保存預測信息,該預測信息表示按照每個使用該分支歷史寄存器保存的分支結果所計算的索引,來預測出分支命令進行分支的準確度,上述處理器具有檢測不同的地址的分支命令的出現頻度的頻度檢測單元;和根據頻度檢測單元檢測的出現頻度,來動態變更分支歷史寄存器中為有效的位寬的位寬變更單元。
在本發明中,檢測不同的地址的分支命令的出現頻度,將保存多個最近的分支命令的分支結果來作為履歷的分支歷史寄存器中為有效的位寬(數)以檢測出的出現頻度為基礎適當進行動態變更。
不同地址的分支命令的出現頻度根據程序而不同,根據其出現頻度,分支歷史寄存器的最佳位寬也發生變化。因此,以該出現頻度為基礎適當地動態變更分支歷史寄存器的位寬,由此可以使該位寬最佳化。其結果,可以與執行的程序無關而始終維持較高的預測精度,可以始終最大限度地發揮處理器的性能。


圖1A是說明2電平型的以往的分支預測裝置所進行的分支預測的圖。
圖1B是說明分支歷史圖表704中保存的狀態的更新方法的圖。
圖2是按照基準來說明分支歷史寄存器702的位寬和分支預測的錯誤率的關係的圖。
圖3是說明本實施方式的分支預測裝置的結構的圖。
圖4是說明安裝了本實施方式的分支預測裝置的處理器的結構的圖。
圖5是說明基準和分支預測的錯誤率的關係的圖。
圖6是說明基準和分支命令高速緩衝存儲錯誤率的關係的圖。
圖7是表示本實施方式的分支預測裝置的動作的流程的流程圖。
圖8是說明進行分支歷史寄存器中為有效的位寬的動態變更時的基準和分支預測錯誤率的關係的圖。
具體實施例方式
下面參照附圖詳細說明本發明的實施方式。
圖3是說明本實施方式的分支預測裝置的結構的圖。圖4是說明安裝了該分支預測裝置的處理器的結構的圖。
該處理器如圖4所示,構成為具有命令取出部100、命令執行部200、2次高速緩衝存儲部300以及系統接口部400。
命令取出部100具有分支預測裝置1、命令高速緩衝存儲器2以及命令緩衝器(IBF)101。該命令取出部100獨立於命令執行部200而動作,根據分支預測裝置1的分支預測,以擦除的方式從命令高速緩衝存儲器2中取出預測為將來執行的命令串,並取入到IBF 101內。向命令高速緩衝存儲器2進行的命令的預先取出由硬體或者軟體來進行。
命令執行部200取出預先取出到IBF 101內的命令來執行。IWR(Instruction Word Register)部201中例如從IBF 101開始共設置有4個命令。
該IWR部201具有對從IBF 101中取出的命令進行解碼,決定執行所需的資源來發行命令的發行控制電路3(圖3)。該發行控制電路3分配命令標識符(IID)以發行命令。所發行的命令發送到加載/存儲用保留站(RSLSReservation Station for Lord and Store)202、地址生成用保留站(RSAReservation Station for Address generation)203、整數運算用保留站(RSEReservation Station for Execution)204、浮動小數點運算用保留站(RSFReservation Station for Floating point)205以及分支用保留站(RSBReservation Station for Branch)4(圖3)中的任一個。
RSLS 202用取出隊列FQ控制數據高速緩衝存儲器206來執行加載命令。存儲命令用存儲數據隊列SDQ來控制數據的寫入。
運算器207分別具有2個地址生成運算器(AG)和整數運算器(EX)。RSA 203使地址生成運算器執行命令來生成地址。所生成的地址被RSLS202的存儲數據隊列所記入。RSE 204使整數運算器執行命令。
浮動小數點運算器(FL)208也同樣準備2個。RSF 205使浮動小數點運算器208執行命令。
在RSB 4中被發行分支命令。該RSB 4進行分支確定、分支預測信息的更新、分支預測失敗時再次命令取出等的處理。分支確定通過以分配到命令中的命令標識符為線索的監視運算動作來進行。
下面參照圖3詳細說明構成命令取出部100的分支預測裝置1。
分支命令高速緩衝存儲器13按照分支命令地址保存表示命令的種類的標籤信息和分支目的地地址。這些信息被程序計數器12輸出的值(地址)讀出。命令取出控制電路11輸入分支命令高速緩衝存儲器13所讀出的信息,識別下一個預先取出的命令的種類等。根據有無分支目的地地址來判定是否發生了高速緩衝存儲錯誤。程序計數器12輸出的值從命令高速緩衝存儲器2讀出的命令,經由IBF 101發送到IWR部201的發行控制電路3。高速緩衝存儲錯誤的產生直接或者間接地通知給RSB 4。當分支預測錯誤判明後,RSB 4的再次命令取出,由RSB 4直接更新程序計數器12等的內容、或者控制命令取出控制電路11來進行。
分支歷史寄存器14保存多個最近的分支命令的分支結果來作為履歷。命令取出控制電路11例如通過來自RSB 4的分支確定的通知來更新該內容。該更新與更新分支歷史圖表15的對應的狀態一起進行。
分支歷史圖表15按照每個索引保存表示分支命令進行的分支成立的準確度的預測信息即狀態。該狀態(預測信息)為以2位表現的值。該索引通過程序計數器12輸出的地址和分支歷史寄存器14的值的「異或」(XOR)來計算。
分支歷史寄存器14讀出的值分別輸出給屏蔽電路16和「異或」(XOR)運算電路17。該屏蔽電路16構成為具有相當於分支歷史寄存器14的總位寬量中根據狀況應該屏蔽的位寬(以後稱為「屏蔽對象位寬」)的「與」運算電路。這些「與」運算電路輸出將分支歷史寄存器14的對應的位的值和分支歷史寄存器模式寄存器部(以後簡稱為「模式寄存器部」)21輸出的信號的值反轉所得到的值之間的「與」。由此,「異或」(XOR)運算電路17中被輸出相當於分支歷史寄存器14的總位寬中沒有被屏蔽電路16輸出的位寬的量的值。例如,分支歷史寄存器14的總位寬為10位,屏蔽對象位寬為8位。
XOR運算電路17用位單位取分支歷史寄存器14或者屏蔽電路16輸入的值和程序寄存器12讀出的地址值之間的「異或」,將該結果作為索引輸出給分支歷史圖表15。命令取出控制電路11根據利用該索引從分支歷史圖表15中讀出的狀態(預測信息)預測是否將發生分支命令進行的分支。保存在命令高速緩衝存儲器2內的命令根據該預測結果被預先取出,經由IBF 101發送到發行控制電路11中。被預先取出的命令如果預測為分支不成立,則是保存在程序計數器12所示的地址上的命令;如果預測為分支成立,則是保存在分支命令高速緩衝存儲器13所保存的對應的分支目的地地址上的命令。
分支命令數計數部18用於計算執行結束的分支命令數。
比較器18a比較規定值(此處為65536)和加法器18b的輸出值,當它們一致時將輸出信號變為H,該加法器18b利用RSB 4輸出的分支命令的結束通知,加上寄存器18d的值和該RSB 4輸出的值(此處為1),並輸出該相加結果。該相加結果除了向比較器18a,還向「與」運算電路18c輸出。該「與」運算電路18c以位單位取該加法結果和使比較器18a的輸出信號反轉後的信號之間的「與」。寄存器18d保存該結果。由於比較器18a的輸出信號反轉後被輸入「與」運算電路18c,所以該輸出信號成為H時,保存於寄存器18d中的值為0。這樣,分支命令數計數部18在比較器18a使輸出信號變化為H到下一次變化為H之間,計算RSB 4輸出了分支命令的結束通知的次數。分支命令高速緩衝存儲錯誤數計數部19用於在執行規定值的分支命令期間,對在分支命令高速緩衝存儲器13中發生的高速緩衝存儲錯誤數進行計數。
比較器19a比較規定值(此處為512)和加法器19b的輸出值,當該輸出值大於規定值時將輸出信號變化為H。該加法器19b通過RSB 4輸出的分支命令的高速緩衝存儲錯誤通知,使寄存器19d的值和該RSB 4輸出的值(此處為1)相加,並輸出該相加結果。該相加結果不但輸出給比較器19a,還輸出給「與」運算電路19c。該「與」運算電路19c以位單位取該相加結果和使分支命令數計數部18的比較器18a的輸出信號反轉之後的信號之間的「與」。該結果保存在寄存器19d中。由於比較器18a的輸出信號反轉後被輸入「與」運算電路19c,所以該輸出信號成為H時,保存於寄存器19d中的值為0。這樣,分支命令數計數部19在比較器18a使輸出信號變化為H到下一次變化為H之間,計算RSB 4輸出了分支命令的高速緩衝存儲錯誤通知的次數。
分支命令高速緩衝存儲錯誤率閾值超過標記緩衝部(以後簡稱為「緩衝部」)20用於在保存過去的多個比較器18a使輸出信號為H時的比較器19a的信號值。此處假定為保存過去的4次。
移位器20a使寄存器20b保持的值移位1位。寄存器20b在比較器18a的輸出信號為H時保持移位器20a移位後的值。比較器19a的信號作為沒有進行移位的比特值輸入寄存器20b來保持。由此,在寄存器20b的4位的各個值為「0110」、比較器19a的信號值為「1」的狀態下比較器18a的輸出信號成為H時,在寄存器20b中新保持為「1101」。
比較器22比較寄存器20b的值和4位的值「0000」,當它們一致時將輸出信號變為H。同樣地比較器23比較寄存器20b的值和4位的值「1111」,當它們一致時將輸出信號變為H。比較器22的輸出信號變為H意味著執行65536個分支命令時發生多於512個高速緩衝存儲錯誤的狀況連續持續了4次以上。比較器23的輸出信號變為H意味著執行65536個分支命令時發生少於等於512個高速緩衝存儲錯誤的狀況連續持續了4次以上。
模式寄存器部21具有「與」運算電路21a、「或」運算電路21b以及寄存器21c。比較器22的輸出信號反轉後被輸入「與」運算電路21b。「與」運算電路21b計算該反轉後的輸出信號和寄存器21c的值之間的「與」。由此,該計算結果在寄存器21c的值為「1」、而且比較器22的輸出值為「0」時為「1」。
「與」運算電路21的計算結果被輸出到「或」運算電路21b中,根據該運算電路21b計算與比較器23的輸出值之間的「或」。在寄存器21c中保持該計算結果。該計算結果在「與」運算電路21a和比較器23的各輸出值中的一方為「1」時為「1」。
寄存器21c中保持的值反轉後被輸入上述屏蔽電路16。該值在比較器23的輸出值為「1」或者寄存器21c中保持了「1」的狀態下,當比較器22的輸出值為「0」時為「1」。為「1」的值變成「0」是在比較器23的輸出值為「0」、而且比較器23的輸出值為「1」時發生的。
這樣,在本實施方式中,著眼於分支命令高速緩衝存儲器13的高速緩衝存儲錯誤的產生,使分支歷史寄存器14中為有效的位寬發生動態變化。這是基於以下原因的。
圖5是說明基準和分支預測錯誤率的關係的圖。該關係是分支歷史寄存器14的位寬為7位時的關係。
根據分支預測錯誤率的觀點,由於SPEC基準具有強烈依存於最近的分支命令的分支/非分支的履歷的特徵,所以預測分支命令實際是否進行分支非常複雜。因此,分支預測錯誤率根據SPEC基準的種類而有很大不同,分支預測錯誤率從低一直到高。
另一方面,在TPC-C基準的情況下,不太依存於最近的分支命令的分支/非分支,預測分支命令實際是否進行分支比較簡單。但由於不同地址的分支命令的出現頻度較高,所以易於發生無法保存與分支命令高速緩衝存儲器13對應的標籤信息等的情況,另外,由於分支歷史圖表15也容量不足,可獨立保存狀態(預測信息)的分支命令數減少。由此,現狀是分支預測錯誤率變高的情況很多。由於這樣,所以非常難以分清程序為SPEC基準和TPC-C基準中的哪一個。
在基準以外的程序中,2電平型分支預測裝置進行的分支預測自身的精度有可能很低。在分支預測錯誤率中,很難正確判斷這種相性的關係。由此也很難用作表示不同地址的分支命令的出現頻度的指標(信息)。當著眼於分支預測錯誤率變更分支歷史寄存器14的位寬時,通過模擬來判明可能無法穩定地進行該變更控制的情況。具體而言,由於分支預測錯誤率高,所以當位寬更小時,其錯誤率降低,由於該降低而使位寬變得更大,會出現這樣頻繁變更位寬的情況。這種不穩定性是不期望的。
根據分支命令高速緩衝存儲器13的高速緩衝存儲錯誤率的觀點,由於SPEC基準具有分支命令數較少的特徵,所以可以說其高速緩衝存儲錯誤率表示低值。反之,TPC-C基準中具有分支命令數較多的特徵,所以可以說其高速緩衝存儲錯誤率表示高值。這樣,通過著眼於該高速緩衝存儲錯誤率,可以正確預測程序中存在的不同地址的分支命令的出現頻度。
圖6是說明基準和分支命令高速緩衝存儲錯誤率的關係的圖。
如圖6所示,在SPEC基準和TPC-C基準中,分支命令高速緩衝存儲錯誤率中存在明確的差。因此,通過著眼於分支命令高速緩衝存儲錯誤率,可以正確地動態變更與分支命令的出現頻度對應的位寬。由此,當作為程序考慮SPEC基準和TPC-C基準時,可以最大限度地發揮該雙方的性能。
圖8是說明進行分支歷史寄存器14中為有效的位寬的動態變更時的基準和分支預測錯誤率的關係的圖。通過著眼於分支命令高速緩衝存儲錯誤率動態變更位寬,如圖8所示,與沒有進行變更的情況(圖5)相比,各基準的分支預測錯誤率被抑制得較低。因此,可以知道與基準的種類無關,能夠更加發揮性能。
圖7是表示本實施方式的分支預測裝置1的動作的流程的流程圖。著眼於動態變更分支歷史寄存器14中為有效的位寬,示出相關的各部分的動作以及一系列的流程。下面,參照圖7,詳細說明分支預測裝置1的動作。
首先,在步驟S1中,RSB 4取出下一個命令來執行。該命令由發行控制電路3發行,執行了取出的命令後轉移到步驟S2,判定該命令是否為分支命令。當所執行的命令為分支命令時,判定為「是」,並轉移到步驟S3。當不是分支命令時,判定為「否」,並返回到上述步驟S1。
在步驟S3中,向分支命令數計數部18輸出分支命令的結束通知,通過加法器18b使保持在寄存器18d中的值遞增。在接下來的步驟S4中,判定是否發生了分支命令高速緩衝存儲錯誤。當命令取出控制電路11通知了該錯誤產生時,判定為「是」,在步驟S5中向分支命令高速緩衝存儲錯誤數計數部19輸出高速緩衝存儲錯誤通知,用加法器19b將保持於寄存器19d中的值遞增。之後轉移到步驟S6。另一方面,在沒有發生錯誤的情況下,判定為「否」,接下來轉移到該步驟S6。
步驟S6~S12通過各計數部18、19、緩衝部20、模式寄存器部21以及比較器22、23的自動動作來實現。
首先,在步驟S6中,比較器18a將加法器18b的加法結果和作為規定值的65536進行比較。由此,當它們一致時,判定為「是」,並轉移到步驟S7,當不一致時,判定為「否」,在此結束一系列的動作。
在步驟S7中,比較器19a將加法器19b的加法結果和作為規定值的512進行比較。由此,當加法結果大於512時,判定為「是」,轉移到步驟S8,將1位的輸出值設置為「1」。之後轉移到步驟S10。當不大於512時,判定為「否」,並轉移到步驟S9,將其輸出值設置為「0」。由此,在維持輸出值為「0」的狀態下轉移到步驟S10。
在步驟S10中,通過比較器22、23判定保持在緩衝部20b的寄存器20b中的4位的值是「0000」「1111」以及其他值當中的哪一個。該值被判定為「0000」時,在步驟S11中將0保持於模式寄存器部21的寄存器21c中後轉移到步驟S13。該值被判定為「1111」時,在步驟S12中將1保持於寄存器21c中後轉移到步驟S13。該值被判定為其他值時,之後轉移到步驟S13。
在步驟S13中,RSB 4分別向分支命令數計數部18輸出分支命令的結束通知、向分支命令高速緩衝存儲錯誤數計數部19輸出高速緩衝存儲錯誤通知,從而使這些寄存器18d、19d的值為0。之後結束一系列的動作。
另外,在本實施方式中,根據分支命令高速緩衝存儲錯誤率是否連續4次以上超過閾值(65536個分支命令中高速緩衝存儲錯誤數大於512的錯誤率),決定是否將分支歷史寄存器14的位寬變得更小,但也可以不設置這種次數條件。即,可以在該錯誤率超過閾值時馬上將位寬變小。或者,可以對預定的次數中超過閾值的次數進行計數,當計數的次數超過規定值時將位寬變小。也可以不判定錯誤率是否超過閾值,而通過其大小判定是否應該減小位寬。也可以使用除此以外的方法。這對於增大位寬的情況也一樣。
作為表示不同地址的分支命令的出現頻度的信息,著眼於分支命令高速緩衝存儲錯誤率,但也可以著眼於其以外的信息。例如也可以求出命令高速緩衝存儲錯誤率和分支命令的出現頻度的積,來代替高速緩衝存儲錯誤率使用。關於高速緩衝存儲錯誤率也可以是與分支命令高速緩衝存儲器13不同種類的高速緩衝存儲器。即只要是對應所使用的高速緩衝存儲器的種類的就可以。
不同地址的分支命令的出現頻度根據程序不同而不同,執行的程序有時由於控制文本開關而依次變化。由此,可以以控制文本為單位保存該出現頻度的檢測結果和為有效(適用)的分支歷史寄存器14的位寬信息,使其對應於控制文本的變更。這種情況下,可以最大限度地發揮更快的性能,可以不影響分支歷史圖表15。
應該考慮出現頻度的分支命令中,分支命令的地址不同。根據該地址而使分支歷史圖表15的索引發生變化。由此,可以按照每個分支命令的地址的索引,保存不同地址的分支命令的出現頻度的檢測結果和為有效(適用)的分支歷史寄存器14的位寬信息,根據進行取出的命令的地址的索引來變更適用的分支歷史寄存器14的位寬。
分支歷史寄存器14中為有效的位寬可以以2階段變更,但也可以以其他階段變更。該情況下,可以根據不同地址的分支命令的出現頻度階段性地依次變更位寬,或者根據其出現頻度的大小選擇應變更的位寬。
權利要求
1.一種分支預測裝置,該分支預測裝置使用分支歷史寄存器和分支歷史圖表來進行分支預測,其中上述分支歷史寄存器保存多個最近的分支命令的分支結果來作為履歷;上述分支歷史圖表保存預測信息,該預測信息表示按照每個使用該分支歷史寄存器保存的分支結果所計算的索引,來預測出分支命令進行分支的準確度,其特徵在於,上述分支預測裝置具有檢測不同的地址的分支命令的出現頻度的頻度檢測單元;和根據上述頻度檢測單元檢測的出現頻度,來動態變更上述分支歷史寄存器中為有效的位寬的位寬變更單元。
2.根據權利要求1所述的分支預測裝置,其特徵在於,上述位寬變更單元在上述頻度檢測單元檢測的出現頻度超過規定值時根據需要進一步減小上述位寬,在該出現頻度為該規定值以下時根據需要進一步增大上述位寬。
3.根據權利要求1所述的分支預測裝置,其特徵在於,上述位寬變更單元以上述頻度檢測單元檢測的多個出現頻度為基礎,動態變更上述位寬。
4.根據權利要求1所述的分支預測裝置,其特徵在於,上述頻度檢測單元檢測保存了標籤信息的高速緩衝存儲器的高速緩衝存儲錯誤率來作為上述出現頻度,所述標籤信息表示有無分支命令。
5.一種分支預測方法,該分支預測方法使用分支歷史寄存器和分支歷史圖表來進行分支預測,其中上述分支歷史寄存器保存多個最近的分支命令的分支結果來作為履歷;上述分支歷史圖表保存預測信息,該預測信息表示按照每個使用該分支歷史寄存器保存的分支結果所計算的索引,來預測出分支命令進行分支的準確度,其特徵在於,該分支預測方法檢測不同的地址的分支命令的出現頻度;並且根據該檢測的出現頻度,來動態變更上述分支歷史寄存器中為有效的位寬。
6.一種處理器,該處理器使用分支歷史寄存器和分支歷史圖表來進行分支預測,其中上述分支歷史寄存器保存多個最近的分支命令的分支結果來作為履歷;上述分支歷史圖表保存預測信息,該預測信息表示按照每個使用該分支歷史寄存器保存的分支結果所計算的索引,來預測出分支命令進行分支的準確度,其特徵在於,該處理器具有檢測不同的地址的分支命令的出現頻度的頻度檢測單元;和根據上述頻度檢測單元檢測的出現頻度,來動態變更上述分支歷史寄存器中為有效的位寬的位寬變更單元。
全文摘要
本發明提供一種分支預測裝置、分支預測方法以及處理器,該分支預測裝置通過使用保存多個分支命令的最近的分支結果的分支歷史寄存器(14)的輸出所計算的索引來讀出分支歷史圖表(15),該分支預測裝置設置有檢測不同的地址的分支命令的出現頻度的頻度檢測單元(18~20);和根據所檢測的出現頻度來變更分支歷史寄存器的有效位數的位寬變更單元(16、21)。該分支預測裝置即使在分支結果較強依存於最近的分支履歷的程序中,即使在存在多個分支命令的程序中,也能以分支歷史圖表的較少容量來維持較高的預測精度。
文檔編號G06F9/38GK1947093SQ20058001252
公開日2007年4月11日 申請日期2005年4月20日 優先權日2004年4月21日
發明者本藤幹雄 申請人:富士通株式會社

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀