JP2005100403A - 電力消耗を減少させるための分岐予測器および実現方法 - Google Patents
電力消耗を減少させるための分岐予測器および実現方法 Download PDFInfo
- Publication number
- JP2005100403A JP2005100403A JP2004276004A JP2004276004A JP2005100403A JP 2005100403 A JP2005100403 A JP 2005100403A JP 2004276004 A JP2004276004 A JP 2004276004A JP 2004276004 A JP2004276004 A JP 2004276004A JP 2005100403 A JP2005100403 A JP 2005100403A
- Authority
- JP
- Japan
- Prior art keywords
- branch
- predictor
- prediction
- selection
- value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
- 238000000034 method Methods 0.000 title claims description 27
- 238000011017 operating method Methods 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 18
- 101000622137 Homo sapiens P-selectin Proteins 0.000 description 10
- 102100023472 P-selectin Human genes 0.000 description 10
- 101001064895 Epichloe festucae var. lolii D-lysergyl-peptide-synthetase subunit 1 Proteins 0.000 description 8
- 230000007423 decrease Effects 0.000 description 4
- 230000003247 decreasing effect Effects 0.000 description 2
- 230000002411 adverse Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000000052 comparative effect Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3842—Speculative instruction execution
- G06F9/3848—Speculative instruction execution using hybrid branch prediction, e.g. selection between prediction techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3842—Speculative instruction execution
- G06F9/3844—Speculative instruction execution using dynamic branch prediction, e.g. using branch history tables
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
Abstract
【課題】 本発明は分岐予測器に関するものであって、特に、不要な電力の消耗を減らすことができる低電力分岐予測器に関するものである。
【解決手段】 本発明の低電力分岐予測器は現在分岐予測のための第1分岐予測アルゴリズムを実行する第1分岐予測器と現在分岐予測のための第2分岐予測アルゴリズムを実行する第2分岐予測器および第1分岐予測器と第2分岐予測器の動作を制御するための制御信号を生成し、第1分岐予測器または第2分岐予測器の分岐予測の結果を選択して出力する選択予測器を含み、第1分岐予測器と第2分岐予測器は選択予測器による制御信号に従って各々分岐予測アルゴリズムを実行する。
【選択図】 図5
【解決手段】 本発明の低電力分岐予測器は現在分岐予測のための第1分岐予測アルゴリズムを実行する第1分岐予測器と現在分岐予測のための第2分岐予測アルゴリズムを実行する第2分岐予測器および第1分岐予測器と第2分岐予測器の動作を制御するための制御信号を生成し、第1分岐予測器または第2分岐予測器の分岐予測の結果を選択して出力する選択予測器を含み、第1分岐予測器と第2分岐予測器は選択予測器による制御信号に従って各々分岐予測アルゴリズムを実行する。
【選択図】 図5
Description
本発明はマイクロプロセッサ(Microprocessor)の分岐予測器(Branch Predictor)に関するものであって、特に、分岐予測の時に消耗される不要な電力を減らすことができる低電力分岐予測器およびその実現方法に関するものである。
分岐命令文(Branch Instruction Statement)とは、分岐命令文に含まれた所定の条件を満足する場合に、分岐命令文で明示する命令語が実行され、そうではない場合には、分岐命令文の次に提示される命令語が実行されるプログラム命令語の一種であり、代表的な例が条件分岐文(Conditional Branch Statement)である。
このような分岐命令文で、次に実行される命令語を決めるために、分岐命令文に含まれた分岐の条件を検索する過程が必要であり、このような検索の過程は、命令語のより速いフェッチ(fetch)を要するパイプライン(Pipeline)構造のマイクロプロセッサでシステムの性能を低下させる主な原因になる。
最近では、このような問題を解決するため、分岐命令文の条件検索の結果を予め予測する分岐予測器(Branch Predictor)が広く使用されており、このような分岐予測器を通じて獲得された予測の結果を利用して、分岐命令分の次に実行される命令語を予めフェッチしておくことによって、マイクロプロセッサの性能を向上させる。しかし、もし分岐予測が間違う場合に、予めフェッチしておいた命令語(instruction)は全部無効化され、新しい他の命令語をフェッチすべきであるので、不正確な分岐予測はむしろ全体のマイクロプロセッサの性能を低下させる結果をもたらす。したがって、このような分岐予測の正確性を高めるための研究が最近活発に行なわれており、このうちトーナメント分岐予測器(Tournament Branch Predictor)は最も正確な分岐予測器として知られている。
トーナメント分岐予測器に対しては特許文献1および非特許文献1に詳細に記載されている。図1は非特許文献1に記載されている従来の分岐予測器のブロック図である。
図1に示したように、従来の分岐予測器は大きくローカル予測器100(Local Predictor)とグローバル予測器110(Global Predictor)、グローバルヒストリレジスタ130(Global History Register)、および選択予測器120(Choice Predictor)を含む。
ローカル予測器100は現在入力される分岐命令語に対する以前の分岐予測結果のヒストリを使用してローカル分岐予測アルゴリズムを実行する。このようなローカル予測器100は各分岐命令語に対して最近予測結果を示す3ビットの予測ビット(Prediction Bit)および予測に使用された回数を示す2ビットのポインタビット(Pointer Bit)で構成されてローカル予測結果LP_Vを出力し、分岐命令語のアドレスAddressを示すプログラムカウンタ(Program Counter以下、PC)によってインデックス(index)されるローカル予測資源アレイ102(Local Prediction Source Array以下、LPSA)と各分岐命令語の最も最近の10個の分岐に対する予測結果(takenまたはuntaken)のヒストリすなわち、ローカルヒストリを貯蔵し、LPSA102と同様に、PCによってインデックスされるローカルヒストリテーブル104(Local History Table以下、LHT)およびLHT104に貯蔵されたローカルヒストリによってインデェックスされるローカル予測テーブル106(Local Prediction Table以下、LPT)を含む。
一方、LPSA102は分岐予測の後、LHT104とLPT106によってアップデートされ、LHT104とLPT106はただLPSA102のアップデートにのみ使用され、分岐予測の時には使用されない。
グローバルヒストリレジスタ130は分岐予測器による最近分岐予測結果PRED_Vのヒストリすなわち、グローバルヒストリを貯蔵する。
グローバル予測器120はPCとグローバルヒストリレジスタ130から入力されるグローバルヒストリの排他的論理和140(XOR:Exclusive OR)によってインデェックスされるグローバル予測テーブル112(Global Prediction Table以下、GPT)を利用してグローバル分岐予測アルゴリズムを実行し、グローバル予測結果GP_Vを出力する。
選択予測器120はグローバルヒストリによってインデェックスされて、予測器選択値PSELを出力する選択予測テーブル122(Choice Prediction Table以下、CPT)およびマルチプレクサ回路124を含んでローカル予測器100およびグローバル予測器110からの予測結果LP_V、GP_Vのうちの一つを選択して最終分岐予測PRED_Vに出力する。
一方、LPT106とGPT112およびCPT122は全部サチュレーションカウンタ(Saturation Counter)で実現され、LPT106とGPT112の各エントリ(entry)は分岐がとられる(taken)ことで予測される場合、“1”増加し、とられない(untaken)ことで予測される場合“1”減少してアップデートされる。一方、CPT122のエントリは最終分岐予測のため選択される分岐予測器の種類に従ってアップデートされる。すなわち、ローカル予測器100の分岐予測値LP_Vが最終分岐予測値PRED_Vで選択されたか、グローバル予測器110の分岐予測値GP_Vが最終分岐予測値PRED_Vで選択されたかに従って増加、または減少することによってアップデートされ、これはプログラマによって任意に定義される。
図2は図1に示した従来の分岐予測器の分岐予測動作をより詳細に説明するための図面である。図2に示した各テーブルのエントリ値は説明の便宜のため任意に設定した値である。もし、図2のように、0であるアドレスの分岐命令語を示すPCが外部から入力されれば、ローカル予測器100ではPC“0”によってLPSA102の一番目のエントリがインデェックスされ、インデェックスされた一番目のエントリの予測ビット“110”のうちの最上位ビット(Most Scan Bit以下、MSB)値である“1”がローカル予測器100の分岐予測値LP_Vに出力される。そして、グローバルヒストリレジスタ130に貯蔵されている10ビットのグローバルヒストリ“0000000011”とPCの排他的論理値“0000000011”によってGPT112の四番目のエントリがインデェックスされ、インデェックスされたエントリ“011”のMSB値である“0”がグローバル予測器110の分岐予測値GP_Vに出力される。また、CPT122では、グローバルヒストリ“0000000011”によってCPT122の四番目のエントリがインデェックスされ、インデェックスされたエントリ“100”のMSB値である“1”が予測器を選択するための予測器選択値PSELでマルチプレクサ回路124に入力される。ここで、各予測器の分岐予測値が“1”というのは、分岐がとられることで予測されたことを意味し、分岐予測値が“0”というのは、分岐がとられないことで予測されることを意味する。そして、CPT122による予測器選択値PSELが“1”であれば、ローカル予測器100の分岐予測値LP_Vが最終分岐予測値PRED_Vで選択され、予測器選択値PSELが“0”であれば、グローバル予測器110の分岐予測値GP_Vが最終分岐予測値PRED_Vで選択されると仮定すれば、図2では、CPT122による予測器選択値PSELが“1”であるので、マルチプレクサ124により最終分岐予測値PRED_Vでローカル予測器100の分岐予測値LP_Vである“1”が出力され、これは入力されたPCに該当する分岐命令語の分岐がとられることで予測されたことを意味する。これによって、マイクロプロセッサは分岐がとられる場合、すなわち、分岐命令文の条件が“真”である場合に実行する命令語をフェッチするようになる。
一方、分岐予測器は、図2のような分岐予測が実行された後、その予測の結果にしたがって各テーブルとレジスタをアップデートして、次の分岐予測に利用し、図3A乃至図3Eは図2に示した分岐予測結果によるアップデータの過程を示す図面であって、図面の左側はアップデートの以前のテーブル値を示し、右側は前記のような分岐予測結果に従ってアップデートされた各テーブルの値を示す。ここで、分岐予測に使用された各テーブルのエントリ値は分岐予測結果、分岐がとられたことで予測された場合PRED_V=“1”、“1”ずつ増加し、とられないことで予測された場合PRED_V=“0”、“1”ずつ減少する。ただ、CPT122の場合には最終分岐予測のためローカル予測器100が選択されれば、“1”増加し、グローバル予測器110が選択されれば、“1”減少することで定義する。
図3Aは図2に示した分岐予測結果値PRED_V=“1”に従ってローカル予測器100に含まれたLHT104およびLPT106のアップデート過程を示す。図3AのLHT104とLPT106は図2で分岐がとられたことPRED_V=“1”で予測されるので、PCによってインデェックスされるLHT104の一番目のエントリ値“0000000010”は左側に一つのビットずつシフトされ、エントリの最下位ビット(Low Scan Bit以下、LSB)に現在の分岐予測結果値“1”が挿入される“0000000101”。そしてLHT106によってインデェックスされたLPT106の三番目のエントリの値“000”は“1”増加して“001”になる。一方、図3Bのように、LPSA102の一番目のエントリのポインタビットは“1”増加し、図3Aに示したLHT104およびLPT106の値を参照してアップデートされる。本発明では、LPSA102の詳細なアップデート過程に対しては説明を省略する。
図3Cは分岐予測結果によるグローバルヒストリレジスタ130のアップデート過程を示す。図3Cに示したように、グローバルヒストリレジスタ130の値“0000000011”は左側に1ビットずつシフトされ、分岐予測結果値“1”がレジスタ130のLSBに挿入される。(“0000000111”)
図3Dは分岐予測結果によるGPT112のアップデート過程を示す。現在分岐予測に使用されたGPT112の四番目のエントリ値“011”は分岐がとられたことで予測されたので、“1”増加して“100”になる。
図3Eは分岐予測結果によるCPT122のアップデート過程を示す。CPT122は選択された予測器が何であるかに従ってアップデート値が決められ、ここでは、ローカル予測器100が選択されたので、先の定義のように、分岐予測に使用されたCPT120の四番目のエントリ値“100”は“1”増加して“101”になる。
以上のような予測とアップデート過程を通じてトーナメント分岐予測器はより正確し、信頼性ある分岐予測を実行する。しかし、図4に示したように、従来のトーナメント分岐予測器では各々の分岐予測器(ローカル予測器、グローバル予測器)によって同時に分岐予測が実行され、選択予測器120による分岐予測器の選択も同時になされる。これによって、全体の分岐予測器による不要な電力の消耗が発生し、例えば、図2のように、ローカル予測器100が最終分岐予測器で選択された場合、結果的にグローバル予測器110は選択されない分岐予測のため不要な電力を消耗したことになり、反対に、グローバル予測器110が選択された場合には、ローカル予測器100が不要な電力を消耗したことになる。
一方、現在マイクロプロセッサによる全体の電力の消耗のうち、分岐予測器による電力消耗は10%以上を占めることで知られている。したがって、分岐予測器による不要な電力の消耗を減らすことは、分岐予測器の正確性を高めるとともにマイクロプロセッサの性能を向上させる重要な要素の一つである。
米国特許第5,758,142号
S.McFarling,‘Combining Baranch Predictors’,1993年6月
上述のような問題を解決するため、本発明では、分岐予測過程で発生する不要な電力消耗を減少させることができる低電力分岐予測器を提供しようとする。
本発明の低電力分岐予測器は現在分岐予測のための第1分岐予測アルゴリズムを実行する第1分岐予測器と現在分岐予測のための第2分岐予測アルゴリズムを実行する第2分岐予測器および第1分岐予測器と第2分岐予測器の動作を制御するための制御信号を生成し、第1分岐予測器または第2分岐予測器の分岐予測の結果を選択して出力する選択予測器とを含み、第1分岐予測器と第2分岐予測器は選択予測器からの制御信号に従って各々分岐予測アルゴリズムを実行する。
本発明の低電力分岐予測器は従来の分岐予測器に比べて分岐予測の正確性には悪影響を及ばなくても、消耗される電力を減少させることができる。すなわち、後述の実験の結果に示したように、従来の分岐予測器に比べて本発明の低電力分岐予測器は大部分のアプリケーションで大略11〜19%の電力節減効果を有する。
図5は本発明の低電力分岐予測器の実施の形態を示すブロック図である。図5を参照すると、本発明の低電力分岐予測器は大きくローカル予測器500、グローバル予測器510、グローバルヒストリレジスタ530および各予測器500、510の制御のための制御回路を含む選択予測器520で構成される。
ローカル予測器500は現在入力される分岐命令語に該当する以前の分岐予測結果であるローカルヒストリを利用して現在分岐命令に対する結果を予測するローカル分岐予測アルゴリズムを実行し、LPSA502、LHT504、LPT506および選択予測器520からの第1制御信号Ctrl0に従って全体のローカル予測器500の動作をイネーブルさせるか、ディセーブルさせる制御ロジック508を含む。
グローバルヒストリレジスタ530は分岐予測器による以前の分岐予測結果であるグローバルヒストリを貯蔵する10ビットのサイズのレジスタで実現される。
グローバル予測器510はグローバルヒストリレジスタ530に貯蔵されたグローバルヒストリを利用して現在分岐命令に対する結果を予測するグローバル分岐予測アルゴリズムを実行し、最近分岐の結果を貯蔵するGPT512および選択予測器520からの第2制御信号Ctrl1に従って全体のグローバル予測器512の動作をイネーブルさせるか、ディセーブルさせる制御ロジック514を含む。
選択予測器520はグローバルヒストリレジスタ530からのグローバルヒストリ値を1ビットずつ左側にシフトさせる1ビットシフトレジスタ522と最近予測器選択の結果のヒストリを貯蔵するCPT524およびCPT524の予測結果に従ってローカル予測器500とグローバル予測器510とを制御する制御信号Ctrl0、Ctrl1を生成し、本発明の低電力分岐予測器の出力PRED_Vを選択するための選択信号PSELを生成する予測器選択器526およびマルチプレクサ528で構成される。
まず、本発明の低電力分岐予測器は選択予測器520がグローバルヒストリレジスタ530の値を利用してローカル予測器500とグローバル予測器520より一サイクルを先行して予測器選択過程を実行する。もし、以前のグローバルヒストリレジスタ530の値が“0000000001”であり、その次の選択された最終分岐予測値が“1”であれば、選択予測器520はその次の予測値“1”が選択される前、すなわち、グローバルヒストリレジスタ530がアップデートされる前にローカル予測器500とグローバル予測器510より一つのサイクル速く予測器を選択するための動作を始め、動作中に選択されるその次の最終分岐予測値“1”を利用してCPT524のエントリを選択して選択されたエントリのMSB値を出力する。
図6Aは本発明の低電力分岐予測器において、選択予測器520の予測器選択動作をより詳細に説明するための図面である。図6Aを参照すると、選択予測器520はアップデートされる前のグローバルヒストリレジスタ530の値“0000000001”をシフトレジスタ522を利用して1ビットずつ左側にシフトし、シフトされた9ビットのレジスタ値“000000001”によってインデックスされるCPT524の二番目のエントリラインで、以後に入力されるその次の最終分岐予測値“1”に該当するエントリを選択して、選択されたエントリのMSB値“1”を出力する。そして、予測器選択器526はCPT524から出力されるエントリのMSB値“1”を利用して各予測器500、510を制御するための制御信号Ctrl0、Ctrl1および予測器選択信号PSELを生成する。第1制御信号Ctrl0はローカル予測器500に入力されてローカル予測器500の動作をイネーブルさせるか、ディセーブルさせ、第2制御信号Ctrl1はグローバル予測器510の動作をイネーブルさせるか、ディセーブルさせる。本発明の低電力分岐予測器ではCPT524の出力が“1”である場合、ローカル予測器500の出力LP_Vを全体の分岐予測器の出力PRED_Vで選択し、“0”である場合、グローバル予測器510の出力GP_Vを全体の分岐予測器の出力PRED_Vで選択すると定義する。上のような場合CPT524の出力が“1”であるので、ローカル予測器500の出力LP_Vが全体の分岐予測器の出力PRED_Vで選択される。したがって、予測器選択器526はローカル予測器500をイネーブルさせ、グローバル予測器510をディセーブルさせるように制御信号Ctrl0、Ctrl1を生成し、ローカル予測器500の出力LP_Vが全体の分岐予測器の出力PRED_Vになるように、マルチプレクサ回路528を制御する予測器選択信号PSELを生成する。
一方、図6Aに示したCPT524は9ビット値にインデェックスされるので、29=512個のインデェックスラインを有し、全体のCPTのサイズは29*6になる。これはグローバルヒストリレジスタが10ビットの値を有し、CPT524はこれを1ビット左側にシフトさせた9ビットの値によりインデェックスされるので、同一のビットのグローバルヒストリレジスタを有する従来のCPT構成と比較すれば、CPTの幅は二倍、深さは半分のサイズを有する。
図6Bは本発明で、図6Aのような選択予測器520の制御信号Ctrl0、Ctrl1および予測器選択信号PSELによる各予測器の動作を説明するための図面である。図6Bで、各予測器500、510は先の言及のように、選択予測器520より一つのサイクル遅く動作する。すなわち、グローバルヒストリレジスタ530が次の最終分岐予測値“1”によってアップデートされた後、すなわちレジスタ値が“0000000011”にアットデートされた後、選択予測器520からの制御信号Ctrl0、Ctrl1によって動作する。
図6Bを参照すると、本発明のローカル予測器500はPCによってインデェックスされるLPSA502エントリのMSB値をローカル予測器500の分岐予測値LP_Vに出力し、選択予測器520からの第1制御信号Ctrl0によってイネーブルされるか、ディセーブルされる。そして、グローバル予測器510はグローバルヒストリレジスタ530からの10ビット値とPCの排他的論理和540によってインデェックスされるGPT512エントリのMSB値をグローバル予測器510の分岐予測値GP_Vに出力し、選択予測器からの第2制御信号Ctrl1によってイネーブルされるか、ディセーブルされる。図6Aで、選択予測器520によってローカル予測器500が現在分岐命令の予測器で選択されるので、グローバル予測器510は第2制御信号Ctrl1によってディセーブルされて動作せず、ローカル予測器500が第1制御信号Ctrl0によってイネーブルされて、現在分岐命令に対する分岐予測動作を実行してPCによってインデックスされた一番目のエントリのMSB値“1”がローカル分岐予測値LP_Vに出力され、これは選択予測器520からの選択信号PSELによってマルチプレクサ528の出力すなわち、全体の分岐予測器の最終分岐予測値PRED_Vに出力される。
以上のような分岐予測過程が実行された後、各テーブルおよびレジスタのアップデートが進行され、アップデート過程は従来の分岐予測器と差がなくて、本発明の説明では省略する。すなわち、アップデートは従来のように、分岐予測に使用されたエントリに対して分岐予測結果に従って分岐がとられたことPRED_V=“1”で予測されれば、“1”ずつ増加し、反対の場合PRED_V=“0”は、“1”ずつ減少する。
図7は、以上のようは本発明の低電力分岐予測器で分岐予測過程を示す流れ図である。図7に示したように、本発明の低電力分岐予測器は選択予測器520を利用してローカル予測器500およびグローバル予測器510より一つのサイクル先行して分岐予測に使用される予測器を予測して選択し、選択された予測器のみをイネーブルさせ、選択されない予測器はディセーブルさせることによって、分岐予測の時に不要な電力の消耗を防止する。
図8は全体の命令語対比分岐命令語の比による本発明の低電力分岐予測器および従来の分岐予測器による電力の消耗を測定した結果を示す図面である。これは普遍的に使用される三星メモリコンパイラを使用して測定し、一般的な条件(25℃、印加電圧=1.20Volt)下でなされた。そして、グローバルヒストリからの平均値を基づいてローカル予測器による予測比率を75%、グローバル予測器による予測比率を25%に仮定して測定したことである。
図8を参照すると、分岐命令比によって本発明の低電力分岐予測器による電力の消耗802が従来の分岐予測器による電力消耗800に比べて約5〜19%程度減少したことが分かる。図8で、分岐命令語の比が増加するほど電力消耗の減少は鈍化する。これは、分岐命令語の比が増加すれば、アップデートによる電力の消耗が全体の電力の消耗でさらに多い比率を占め、アップデートの時には本発明の低電力分岐予測器も従来の分岐予測器と同一な電力の消耗を有するためである。
一方、大部分のアプリケーションで全体の命令語対比分岐命令語の比は0〜0.2の間であり、この場合、本発明の低電力分岐予測器による電力の消耗は従来の分岐予測器に比べて11〜19%程度減少する。
以上、本発明による低電力分岐予測器を上述の説明および図面を通じて詳細に記述したが、これは例示的なことに過ぎず、本発明の技術的思想を逸脱しない範囲内で多様な応用および変更が可能である。
500 ローカル予測器
502 ローカル予測資源アレイ
504 ローカルヒストリテーブル
506 ローカル予測テーブル
508 制御ロジック
510 グローバル予測器
512 グローバル予測テーブル
520 選択予測器
522 シフトレジスタ
524 選択予測テーブル
526 予測器選択器
530 グローバルヒストリレジスタ
502 ローカル予測資源アレイ
504 ローカルヒストリテーブル
506 ローカル予測テーブル
508 制御ロジック
510 グローバル予測器
512 グローバル予測テーブル
520 選択予測器
522 シフトレジスタ
524 選択予測テーブル
526 予測器選択器
530 グローバルヒストリレジスタ
Claims (16)
- 低電力分岐予測器において、
分岐命令語の結果を予測するために第1分岐予測アルゴリズムを実行する第1分岐予測器と、
前記分岐命令語の結果を予測するために第2分岐予測アルゴリズムを実行する第2分岐予測器と、
前記第1分岐予測器及び前記第2分岐予測器の動作を制御するための制御信号を生成し、前記第1分岐予測器と前記第2分岐予測器のうちの一つの予測結果を選択して出力する選択予測器とを含み、
前記第1分岐予測器と前記第2分岐予測器は前記制御信号に従って各々の前記予測アルゴリズムを実行することを特徴とする低電力分岐予測器。 - 前記選択予測器は前記第1分岐予測器及び前記第2分岐予測器より所定のサイクル先行して動作して、前記第1分岐予測器及び前記第2分岐予測器のうちの一つだけを前記分岐命令語に対する分岐予測を実行する分岐予測器で選択することを特徴とする請求項1に記載の低電力分岐予測器。
- 前記第1分岐予測器は以前の分岐予測結果を利用して分岐命令に対する分岐予測を実行するローカル予測器であることを特徴とする請求項1に記載の低電力分岐予測器。
- 前記第1分岐予測器は各命令語の別に最も最近の分岐の分岐予測結果であるローカルヒストリを貯蔵するローカルヒストリテーブルと、
前記ローカルヒストリテーブルに貯蔵されたローカルヒストリによってインデックスされるローカル予測テーブルと、
外部から入力されるプログラムカウンタによってインデックスされ、前記ローカルヒストリテーブル及び前記ローカル予測テーブルによってアップデートされるローカル予測資源アレイと、
前記選択予測器からの第1制御信号に従って前記第1分岐予測器の動作をイネーブル、またはディセーブルする制御ロジッグとを含むことを特徴とする請求項1に記載の低電力分岐予測器。 - 前記ローカルヒストリテーブル及び前記ローカル予測テーブルは分岐予測動作の時には使用されず、分岐予測結果を利用したアップデートにだけ使用されることを特徴とする請求項4に記載の低電力分岐予測器。
- 前記第2分岐予測器は前記分岐予測器による以前の分岐予測結果を利用して現在分岐に対する分岐予測を実行するグローバル分岐予測器であることを特徴とする請求項1に記載の低電力分岐予測器。
- 前記第2分岐予測器は前記分岐予測器の以前分岐予測結果と外部からのプログラムカウンタとの所定の演算値によってインデックスされ、前記分岐予測器の最近分岐予測結果であるグローバルヒストリを貯蔵するグローバル予測テーブルと、
前記選択予測器からの第2制御信号に従って前記第2分岐予測器の動作をイネーブルするか、ディセーブルする制御ロジッグとを含むことを特徴とする請求項1に記載の低電力分岐予測器。 - 前記選択予測器は入力される前記分岐予測器の以前分岐予測結果値を1ビットずつ左にシフトさせるシフトレジスタと、
前記シフトレジスタからの以前分岐予測値によってインデックスされ、予測器選択値を出力する選択予測テーブルと、
前記選択予測テーブルからの予測器選択値に従って前記第1分岐予測器及び前記第2分岐予測器の動作を制御する前記制御信号を生成し、前記分岐予測器の出力を選択する選択信号を生成する予測器選択器と
前記第1分岐予測器及び前記第2分岐予測器に連結され、前記選択信号に従って前記第1及び第2分岐予測器のうちの一つからの分岐予測値を出力するマルチプレクサ回路で構成されることを特徴とする請求項1に記載の低電力分岐予測器。 - 低電力分岐予測器の実現方法において、
以前分岐予測結果を利用して複数の分岐予測器のうちの現在分岐命令に対する分岐予測を実行する一つの分岐予測器を選択する予測器選択段階と、
前記予測器選択段階で選択された分岐予測器によって現在分岐命令に対する分岐予測が実行される分岐予測実行段階とを具備することを特徴とする低電力分岐予測器の実現方法。 - 前記予測器選択段階で選択されない分岐予測器はディセーブルされて、分岐予測動作を実行しないことを特徴とする請求項9に記載の低電力分岐予測器の実現方法。
- 分岐予測装置において、
前記分岐予測装置は前記請求項9の方法に符号する分岐予測動作を実行するように構成されることを特徴とする分岐予測装置。 - 分岐予測装置の選択予測器において、
前記分岐予測装置に貯蔵された分岐予測結果を1ビット左にシフトするためのシフトレジスタと、
前記シフトレジスタによってインデックスされて、分岐予測結果を出力する選択予測テーブルと、
前記選択予測テーブルからの予測器選択値に従って第1分岐予測器及び第2分岐予測器の動作を制御する制御信号を生成し、第1及び第2分岐予測器のうちの一つの出力を選択する選択信号を生成する予測器選択器と、
前記第1分岐予測器及び前記第2分岐予測器に連結され、前記選択信号に従って前記第1及び第2分岐予測器のうちの一つからの分岐予測値を出力するマルチプレクサ回路で構成されることを特徴とする選択予測器。 - 分岐予測装置の選択予測器動作方法において、
前記分岐予測装置のシフトレジスタに貯蔵された分岐予測値を左に1ビットシフトする段階と、
予測器選択値を出力するために前記シフトレジスタの値に従って選択器予測テーブルをインデックスする段階と、
前記予測器選択値に従って複数の分岐予測器の動作を制御するための制御信号を生成する段階とを具備することを特徴とする選択予測器動作方法。 - プログラムの分岐命令結果を予測してコンピュータをイネーブルする命令語を有するコンピュータ装置において、
前記命令語は前記コンピュータが以前分岐予測結果を利用して、複数の分岐予測器のうちの一つの分岐予測器を選択するようにし、前記コンピュータが前記選択された分岐予測器を利用して分岐命令に対する分岐予測を実行するようにすることを特徴とするコンピュータ装置。 - 前記命令語は前記コンピュータをして前記複数の分岐予測器のうちの分岐命令を実行するように、選択されない他の分岐予測器をディセーブルするようにすることを特徴とする請求項14に記載のコンピュータ装置。
- 分岐予測装置の選択予測器において、
前記選択予測器は前記請求項13項の方法に符合して動作するように構成されることを特徴とする選択予測器。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2003-0066325A KR100528479B1 (ko) | 2003-09-24 | 2003-09-24 | 전력 소모를 감소시키기 위한 분기 예측기 및 구현방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005100403A true JP2005100403A (ja) | 2005-04-14 |
Family
ID=33411797
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004276004A Withdrawn JP2005100403A (ja) | 2003-09-24 | 2004-09-22 | 電力消耗を減少させるための分岐予測器および実現方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20050066154A1 (ja) |
JP (1) | JP2005100403A (ja) |
KR (1) | KR100528479B1 (ja) |
CN (1) | CN100365566C (ja) |
GB (1) | GB2406413B (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7565512B2 (en) | 2007-02-02 | 2009-07-21 | Kabushiki Kaisha Toshiba | Method, system and apparatus for generation of global branch history |
JP2009540412A (ja) * | 2006-06-08 | 2009-11-19 | インターナショナル・ビジネス・マシーンズ・コーポレーション | ローカル及びグローバル分岐予測情報の格納 |
JP2013500539A (ja) * | 2009-09-09 | 2013-01-07 | ボード オブ リージエンツ,ユニバーシテイ オブ テキサス システム | 分散型プレディケート予測を実現するための方法、システム、およびコンピュータによってアクセス可能な媒体 |
US8595474B2 (en) | 2009-06-01 | 2013-11-26 | Fujitsu Limited | Information processing apparatus and branch prediction method |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100630702B1 (ko) * | 2004-10-05 | 2006-10-02 | 삼성전자주식회사 | 명령어 캐쉬와 명령어 변환 참조 버퍼의 제어기, 및 그제어방법 |
US7673122B1 (en) * | 2005-09-29 | 2010-03-02 | Sun Microsystems, Inc. | Software hint to specify the preferred branch prediction to use for a branch instruction |
US8301871B2 (en) * | 2006-06-08 | 2012-10-30 | International Business Machines Corporation | Predicated issue for conditional branch instructions |
US8935517B2 (en) * | 2006-06-29 | 2015-01-13 | Qualcomm Incorporated | System and method for selectively managing a branch target address cache of a multiple-stage predictor |
CN101763248A (zh) * | 2008-12-25 | 2010-06-30 | 世意法(北京)半导体研发有限责任公司 | 用于多模式分支预测器的系统和方法 |
US20100332812A1 (en) * | 2009-06-24 | 2010-12-30 | Doug Burger | Method, system and computer-accessible medium for low-power branch prediction |
WO2015050557A1 (en) * | 2013-10-04 | 2015-04-09 | Intel Corporation | Techniques for heterogeneous core assignment |
GB2539041B (en) * | 2015-06-05 | 2019-10-02 | Advanced Risc Mach Ltd | Mode switching in dependence upon a number of active threads |
US9471314B1 (en) * | 2015-12-15 | 2016-10-18 | International Business Machines Corporation | Auxiliary perceptron branch predictor with magnitude usage limit |
US9996351B2 (en) * | 2016-05-26 | 2018-06-12 | International Business Machines Corporation | Power management of branch predictors in a computer processor |
CN108062236A (zh) * | 2016-11-07 | 2018-05-22 | 杭州华为数字技术有限公司 | 一种软硬件协同分支指令预测方法及装置 |
US10607137B2 (en) | 2017-04-05 | 2020-03-31 | International Business Machines Corporation | Branch predictor selection management |
US11550588B2 (en) * | 2018-08-22 | 2023-01-10 | Advanced Micro Devices, Inc. | Branch target filtering based on memory region access count |
US11442727B2 (en) * | 2020-06-08 | 2022-09-13 | Advanced Micro Devices, Inc. | Controlling prediction functional blocks used by a branch predictor in a processor |
CN113504943B (zh) * | 2021-09-03 | 2021-12-14 | 广东省新一代通信与网络创新研究院 | 用于降低资源使用的混合分支预测装置实现方法及系统 |
CN114154763A (zh) * | 2021-12-29 | 2022-03-08 | 北京工业大学 | 一种利用感知器改进的锦标赛分支预测方法 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5758142A (en) * | 1994-05-31 | 1998-05-26 | Digital Equipment Corporation | Trainable apparatus for predicting instruction outcomes in pipelined processors |
US5687360A (en) * | 1995-04-28 | 1997-11-11 | Intel Corporation | Branch predictor using multiple prediction heuristics and a heuristic identifier in the branch instruction |
US6253316B1 (en) * | 1996-11-19 | 2001-06-26 | Advanced Micro Devices, Inc. | Three state branch history using one bit in a branch prediction mechanism |
US5872984A (en) * | 1997-04-01 | 1999-02-16 | International Business Machines Corporation | Uninterruptible power supply providing continuous power mainstore function for a computer system |
US5978909A (en) * | 1997-11-26 | 1999-11-02 | Intel Corporation | System for speculative branch target prediction having a dynamic prediction history buffer and a static prediction history buffer |
US6332189B1 (en) * | 1998-10-16 | 2001-12-18 | Intel Corporation | Branch prediction architecture |
JP2000293373A (ja) * | 1999-04-12 | 2000-10-20 | Hitachi Ltd | 分岐予測装置 |
US6580288B1 (en) * | 1999-09-09 | 2003-06-17 | International Business Machines Corporation | Multi-property microprocessor with no additional logic overhead to shared pins |
US6550004B1 (en) * | 1999-11-05 | 2003-04-15 | Ip-First, Llc | Hybrid branch predictor with improved selector table update mechanism |
US6658558B1 (en) * | 2000-03-30 | 2003-12-02 | International Business Machines Corporation | Branch prediction circuit selector with instruction context related condition type determining |
US7000096B1 (en) * | 2000-08-03 | 2006-02-14 | International Business Machines Corporation | Branch prediction circuits and methods and systems using the same |
US7203825B2 (en) * | 2001-10-03 | 2007-04-10 | Intel Corporation | Sharing information to reduce redundancy in hybrid branch prediction |
US7073079B1 (en) * | 2001-12-04 | 2006-07-04 | Ellipsis Digital Systems, Inc. | Method, system, and apparatus to apply protocol-driven power management to reduce power consumption of digital communication transceivers |
US6938151B2 (en) * | 2002-06-04 | 2005-08-30 | International Business Machines Corporation | Hybrid branch prediction using a global selection counter and a prediction method comparison table |
US7058795B2 (en) * | 2002-06-25 | 2006-06-06 | Intel Corporation | Method and apparatus of branch prediction |
US7047339B2 (en) * | 2003-06-27 | 2006-05-16 | Intel Corporation | Computer system with detachable always-on portable device |
-
2003
- 2003-09-24 KR KR10-2003-0066325A patent/KR100528479B1/ko not_active IP Right Cessation
-
2004
- 2004-09-22 JP JP2004276004A patent/JP2005100403A/ja not_active Withdrawn
- 2004-09-23 GB GB0421187A patent/GB2406413B/en not_active Expired - Fee Related
- 2004-09-23 CN CNB2004100118071A patent/CN100365566C/zh not_active Expired - Fee Related
- 2004-09-23 US US10/947,278 patent/US20050066154A1/en not_active Abandoned
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009540412A (ja) * | 2006-06-08 | 2009-11-19 | インターナショナル・ビジネス・マシーンズ・コーポレーション | ローカル及びグローバル分岐予測情報の格納 |
US7565512B2 (en) | 2007-02-02 | 2009-07-21 | Kabushiki Kaisha Toshiba | Method, system and apparatus for generation of global branch history |
US8595474B2 (en) | 2009-06-01 | 2013-11-26 | Fujitsu Limited | Information processing apparatus and branch prediction method |
JP2013500539A (ja) * | 2009-09-09 | 2013-01-07 | ボード オブ リージエンツ,ユニバーシテイ オブ テキサス システム | 分散型プレディケート予測を実現するための方法、システム、およびコンピュータによってアクセス可能な媒体 |
Also Published As
Publication number | Publication date |
---|---|
GB0421187D0 (en) | 2004-10-27 |
GB2406413B (en) | 2006-03-15 |
US20050066154A1 (en) | 2005-03-24 |
KR100528479B1 (ko) | 2005-11-15 |
KR20050030019A (ko) | 2005-03-29 |
CN100365566C (zh) | 2008-01-30 |
CN1601463A (zh) | 2005-03-30 |
GB2406413A (en) | 2005-03-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2005100403A (ja) | 電力消耗を減少させるための分岐予測器および実現方法 | |
US5687360A (en) | Branch predictor using multiple prediction heuristics and a heuristic identifier in the branch instruction | |
CN105320519B (zh) | 使用长历史记录的条件分支预测 | |
US9021241B2 (en) | Combined branch target and predicate prediction for instruction blocks | |
US8788797B2 (en) | Combined level 1 and level 2 branch predictor | |
US10664280B2 (en) | Fetch ahead branch target buffer | |
JP2008083795A (ja) | ビットフィールド操作回路 | |
CN111459549A (zh) | 具有高度领先分支预测器的微处理器 | |
JP2018523239A (ja) | 電力効率的なフェッチ適合 | |
WO2020199058A1 (zh) | 分支指令的处理方法、分支预测器及处理器 | |
US20070162895A1 (en) | Mechanism and method for two level adaptive trace prediction | |
US6918033B1 (en) | Multi-level pattern history branch predictor using branch prediction accuracy history to mediate the predicted outcome | |
KR20030051380A (ko) | 마이크로프로세서 | |
KR100980076B1 (ko) | 저전력 분기 예측 시스템 및 분기 예측 방법 | |
US9778934B2 (en) | Power efficient pattern history table fetch in branch predictor | |
US7428627B2 (en) | Method and apparatus for predicting values in a processor having a plurality of prediction modes | |
US7472264B2 (en) | Predicting a jump target based on a program counter and state information for a process | |
US9489204B2 (en) | Method and apparatus for precalculating a direct branch partial target address during a misprediction correction process | |
US10324727B2 (en) | Memory dependence prediction | |
CN216527140U (zh) | 一种分支预测的装置及处理器 | |
US20230195467A1 (en) | Control flow prediction | |
CN114035848A (zh) | 一种分支预测的方法、装置及处理器 | |
KR100244472B1 (ko) | 분기예측회로 | |
US20060294345A1 (en) | Methods and apparatus for implementing branching instructions within a processor | |
JP2008217687A (ja) | ローカル分岐履歴を用いた分岐予測装置及び分岐予測方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20070418 |
|
A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20090911 |