JP2005100403A - 電力消耗を減少させるための分岐予測器および実現方法 - Google Patents

電力消耗を減少させるための分岐予測器および実現方法 Download PDF

Info

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
Application number
JP2004276004A
Other languages
English (en)
Inventor
Sung-Woo Chung
盛宇 鄭
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of JP2005100403A publication Critical patent/JP2005100403A/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3842Speculative instruction execution
    • G06F9/3848Speculative instruction execution using hybrid branch prediction, e.g. selection between prediction techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3842Speculative instruction execution
    • G06F9/3844Speculative 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

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ビット値にインデェックスされるので、2=512個のインデェックスラインを有し、全体のCPTのサイズは2*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%程度減少する。
以上、本発明による低電力分岐予測器を上述の説明および図面を通じて詳細に記述したが、これは例示的なことに過ぎず、本発明の技術的思想を逸脱しない範囲内で多様な応用および変更が可能である。
非特許文献1に紹介された従来の分岐予測器のブロック図である。 図1に示した分岐予測器の分岐予測動作をより詳細に説明するための図面である。 図2に示した分岐予測の結果によるアップデート過程を示す図面である。 図2に示した分岐予測の結果によるアップデート過程を示す図面である。 図2に示した分岐予測の結果によるアップデート過程を示す図面である。 図2に示した分岐予測の結果によるアップデート過程を示す図面である。 図2に示した分岐予測の結果によるアップデート過程を示す図面である。 図1に示した従来の分岐予測器での分岐予測過程を示す流れ図である。 本発明の低電力分岐予測器の実施の形態を示すブロック図である。 本発明の低電力分岐予測器で選択予測器の予測器選択動作をより詳細に説明するための図面である。 本発明で図6Aのような選択予測器の動作による各分岐予測器の動作をより詳細に説明するための図面である。 本発明の低電力分岐予測器での分岐予測過程を示す流れ図である。 全体の命令語対比分岐命令語の比による本発明の低電力分岐予測器と従来の分岐予測器の各々の電力消耗を測定した結果を示す図面である。
符号の説明
500 ローカル予測器
502 ローカル予測資源アレイ
504 ローカルヒストリテーブル
506 ローカル予測テーブル
508 制御ロジック
510 グローバル予測器
512 グローバル予測テーブル
520 選択予測器
522 シフトレジスタ
524 選択予測テーブル
526 予測器選択器
530 グローバルヒストリレジスタ

Claims (16)

  1. 低電力分岐予測器において、
    分岐命令語の結果を予測するために第1分岐予測アルゴリズムを実行する第1分岐予測器と、
    前記分岐命令語の結果を予測するために第2分岐予測アルゴリズムを実行する第2分岐予測器と、
    前記第1分岐予測器及び前記第2分岐予測器の動作を制御するための制御信号を生成し、前記第1分岐予測器と前記第2分岐予測器のうちの一つの予測結果を選択して出力する選択予測器とを含み、
    前記第1分岐予測器と前記第2分岐予測器は前記制御信号に従って各々の前記予測アルゴリズムを実行することを特徴とする低電力分岐予測器。
  2. 前記選択予測器は前記第1分岐予測器及び前記第2分岐予測器より所定のサイクル先行して動作して、前記第1分岐予測器及び前記第2分岐予測器のうちの一つだけを前記分岐命令語に対する分岐予測を実行する分岐予測器で選択することを特徴とする請求項1に記載の低電力分岐予測器。
  3. 前記第1分岐予測器は以前の分岐予測結果を利用して分岐命令に対する分岐予測を実行するローカル予測器であることを特徴とする請求項1に記載の低電力分岐予測器。
  4. 前記第1分岐予測器は各命令語の別に最も最近の分岐の分岐予測結果であるローカルヒストリを貯蔵するローカルヒストリテーブルと、
    前記ローカルヒストリテーブルに貯蔵されたローカルヒストリによってインデックスされるローカル予測テーブルと、
    外部から入力されるプログラムカウンタによってインデックスされ、前記ローカルヒストリテーブル及び前記ローカル予測テーブルによってアップデートされるローカル予測資源アレイと、
    前記選択予測器からの第1制御信号に従って前記第1分岐予測器の動作をイネーブル、またはディセーブルする制御ロジッグとを含むことを特徴とする請求項1に記載の低電力分岐予測器。
  5. 前記ローカルヒストリテーブル及び前記ローカル予測テーブルは分岐予測動作の時には使用されず、分岐予測結果を利用したアップデートにだけ使用されることを特徴とする請求項4に記載の低電力分岐予測器。
  6. 前記第2分岐予測器は前記分岐予測器による以前の分岐予測結果を利用して現在分岐に対する分岐予測を実行するグローバル分岐予測器であることを特徴とする請求項1に記載の低電力分岐予測器。
  7. 前記第2分岐予測器は前記分岐予測器の以前分岐予測結果と外部からのプログラムカウンタとの所定の演算値によってインデックスされ、前記分岐予測器の最近分岐予測結果であるグローバルヒストリを貯蔵するグローバル予測テーブルと、
    前記選択予測器からの第2制御信号に従って前記第2分岐予測器の動作をイネーブルするか、ディセーブルする制御ロジッグとを含むことを特徴とする請求項1に記載の低電力分岐予測器。
  8. 前記選択予測器は入力される前記分岐予測器の以前分岐予測結果値を1ビットずつ左にシフトさせるシフトレジスタと、
    前記シフトレジスタからの以前分岐予測値によってインデックスされ、予測器選択値を出力する選択予測テーブルと、
    前記選択予測テーブルからの予測器選択値に従って前記第1分岐予測器及び前記第2分岐予測器の動作を制御する前記制御信号を生成し、前記分岐予測器の出力を選択する選択信号を生成する予測器選択器と
    前記第1分岐予測器及び前記第2分岐予測器に連結され、前記選択信号に従って前記第1及び第2分岐予測器のうちの一つからの分岐予測値を出力するマルチプレクサ回路で構成されることを特徴とする請求項1に記載の低電力分岐予測器。
  9. 低電力分岐予測器の実現方法において、
    以前分岐予測結果を利用して複数の分岐予測器のうちの現在分岐命令に対する分岐予測を実行する一つの分岐予測器を選択する予測器選択段階と、
    前記予測器選択段階で選択された分岐予測器によって現在分岐命令に対する分岐予測が実行される分岐予測実行段階とを具備することを特徴とする低電力分岐予測器の実現方法。
  10. 前記予測器選択段階で選択されない分岐予測器はディセーブルされて、分岐予測動作を実行しないことを特徴とする請求項9に記載の低電力分岐予測器の実現方法。
  11. 分岐予測装置において、
    前記分岐予測装置は前記請求項9の方法に符号する分岐予測動作を実行するように構成されることを特徴とする分岐予測装置。
  12. 分岐予測装置の選択予測器において、
    前記分岐予測装置に貯蔵された分岐予測結果を1ビット左にシフトするためのシフトレジスタと、
    前記シフトレジスタによってインデックスされて、分岐予測結果を出力する選択予測テーブルと、
    前記選択予測テーブルからの予測器選択値に従って第1分岐予測器及び第2分岐予測器の動作を制御する制御信号を生成し、第1及び第2分岐予測器のうちの一つの出力を選択する選択信号を生成する予測器選択器と、
    前記第1分岐予測器及び前記第2分岐予測器に連結され、前記選択信号に従って前記第1及び第2分岐予測器のうちの一つからの分岐予測値を出力するマルチプレクサ回路で構成されることを特徴とする選択予測器。
  13. 分岐予測装置の選択予測器動作方法において、
    前記分岐予測装置のシフトレジスタに貯蔵された分岐予測値を左に1ビットシフトする段階と、
    予測器選択値を出力するために前記シフトレジスタの値に従って選択器予測テーブルをインデックスする段階と、
    前記予測器選択値に従って複数の分岐予測器の動作を制御するための制御信号を生成する段階とを具備することを特徴とする選択予測器動作方法。
  14. プログラムの分岐命令結果を予測してコンピュータをイネーブルする命令語を有するコンピュータ装置において、
    前記命令語は前記コンピュータが以前分岐予測結果を利用して、複数の分岐予測器のうちの一つの分岐予測器を選択するようにし、前記コンピュータが前記選択された分岐予測器を利用して分岐命令に対する分岐予測を実行するようにすることを特徴とするコンピュータ装置。
  15. 前記命令語は前記コンピュータをして前記複数の分岐予測器のうちの分岐命令を実行するように、選択されない他の分岐予測器をディセーブルするようにすることを特徴とする請求項14に記載のコンピュータ装置。
  16. 分岐予測装置の選択予測器において、
    前記選択予測器は前記請求項13項の方法に符合して動作するように構成されることを特徴とする選択予測器。

JP2004276004A 2003-09-24 2004-09-22 電力消耗を減少させるための分岐予測器および実現方法 Withdrawn JP2005100403A (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Cited By (4)

* Cited by examiner, † Cited by third party
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