JP2007220099A - 分岐予測情報を貯蔵する分岐ターゲットバッファ及びそれを含んだ分岐予測回路 - Google Patents

分岐予測情報を貯蔵する分岐ターゲットバッファ及びそれを含んだ分岐予測回路 Download PDF

Info

Publication number
JP2007220099A
JP2007220099A JP2007018134A JP2007018134A JP2007220099A JP 2007220099 A JP2007220099 A JP 2007220099A JP 2007018134 A JP2007018134 A JP 2007018134A JP 2007018134 A JP2007018134 A JP 2007018134A JP 2007220099 A JP2007220099 A JP 2007220099A
Authority
JP
Japan
Prior art keywords
branch prediction
branch
sense amplifier
prediction information
circuit
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.)
Pending
Application number
JP2007018134A
Other languages
English (en)
Inventor
Kigo Boku
基 豪 朴
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 JP2007220099A publication Critical patent/JP2007220099A/ja
Pending 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, look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3804Instruction prefetching for branches, e.g. hedging, branch folding
    • G06F9/3806Instruction prefetching for branches, e.g. hedging, branch folding using address prediction, e.g. return stack, branch history buffer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • 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, look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3814Implementation provisions of instruction buffers, e.g. prefetch buffer; banks

Abstract

【課題】分岐予測情報を貯蔵する分岐ターゲットバッファ及びそれを含んだ分岐予測回路を提供する。
【解決手段】本発明による分岐ターゲットバッファはメモリセルアレイ、デコーダ、センスアンプ、及びセンスアンプイネーブル回路を含む。メモリセルアレイは分岐アドレス及びターゲットアドレスを貯蔵する。デコーダはワードラインを介してメモリセルアレイと接続され、フェッチアドレスに応答して選択されたワードラインにワードライン電圧を提供する。センスアンプはビットラインを介してメモリセルアレイと接続され、選択されたワードラインに接続されたメモリセルのデータを感知増幅する。センスアンプイネーブル回路はワードラインに接続され、分岐予測情報を貯蔵し、分岐予測情報によってセンスアンプの動作を制御する。
【選択図】図4

Description

本発明はマイクロプロセッサの分岐予測回路に係り、より詳細には分岐予測情報を貯蔵している分岐ターゲットバッファ(Branch Target Buffer;BTB)及びそれを含んだ分岐予測回路に関する。
マイクロプロセッサで処理すべき仕事量の増加に伴って、プロセッサの動作方式及び構造も発展している。このようなプロセッサ構造設計方法のうちの1つの技法がパイプライニング(pipelining)技法である。パイプライン動作は命令語フェッチ(Instruction fetch)段階、命令語デコード(Instruction decode)段階、実行(execute)段階などいくつかの段階で行われる。パイプラインプロセッサで、命令語(instruction)は重なった形態でパイプラインの各段階を順に経ながら実行される。
パイプラインプロセッサの性能は分岐(branch)動作に全面的に依存する。分岐動作はプログラム実行の途中に命令語の流れを変更させるため、プロセッサの性能を低下させる主な原因になる。これは分岐命令語(branch instruction)がフェッチされる時、次に実行(フェッチ)される命令語のアドレスが直ちに分からないためである。
分岐命令語は実行段階で分岐命令語に含まれた条件が満足されるか否かを検査した後、次の実行される命令語のアドレスを決定する。分岐命令語が条件を満足した場合をその分岐命令語がテイクン(taken)されたと言い、分岐命令語が条件を満足することができなかった場合をその分岐命令語がノットテイクン(not−taken)されたと言う。
分岐予測(branch prediction)は分岐命令語の条件が真であるかまたは偽であるかを判別して分岐されるアドレスが計算されている間、連続的に次の命令語を行うために分岐されるアドレスを予測して任意に行うことである。分岐予測が合えば、任意に実行した命令語が正しく実行され、パイプラインの停止は発生しない。一方、分岐予測が誤れば、正しいプログラム実行経路が実行されるように補正(recover)する必要がある。この時には誤り実行された命令語を除去(flush)し、正しく分岐された命令語を再実行するために追加的な引き延ばしが発生する。
分岐予測方法には、大きく分けて、静的分岐予測(static branch prediction)と動的分岐予測(dynamic branch prediction)とがある。静的分岐予測とは、プログラムを実行する前にすでに該当の分岐命令語に対する分岐予測が決まる方法である。動的分岐予測とは、プログラムの実行中に過去行績(history)によってテイクンあるいはノットテイクンを決める方法である。一般的に動的分岐予測方法が静的分岐予測方法に比べてさらに高い的中率を有する。
分岐命令語による性能低下を減少するために分岐ターゲットバッファ(Branch Target Buffer; BTB)を用いる。分岐ターゲットバッファには分岐命令語のアドレス(以下、分岐アドレスと言うことにする)と分岐されるターゲットアドレスとが貯蔵されている。分岐ターゲットバッファは、分岐方向がテイクンに予測される場合に貯蔵されているターゲットアドレスを読み出して該当のターゲットアドレスの命令語をフェッチする。
このような分岐ターゲットバッファを通じた分岐予測はARMプロセッサなど内蔵プロセッサ(embedded processor)の場合、すべての命令語に対して常に分岐ターゲットバッファを参照するようになるため、分岐ターゲットバッファをアクセスするための消費電力が大きくなる。このような短所を解決するために、プリデコーディング(pre−decoding)をして分岐命令語の場合にのみ、分岐予測を実行して分岐ターゲットバッファをアクセスする方法などが提案されているが、このような方法は制御ロジックを複雑にするか、プロセスのフェッチロジックのディレイを増加させるという短所がある。また、分岐命令語である場合に実際に分岐ターゲットバッファをアクセスする必要がないノットテイクンの場合にも、不必要に分岐ターゲットバッファをアクセスすることによって消費電力を大きくするという問題点がある。
本発明は上述の問題を解決するためになされたもので、本発明の目的は分岐予測情報によってセンスアンプの動作を制御して、不必要な電力消費を減らす分岐ターゲットバッファ及びそれを含んだ分岐予測回路を提供することにある。
本発明による分岐ターゲットバッファは、分岐アドレス及びターゲットアドレスを貯蔵するメモリセルアレイと、ワードラインを介して前記メモリセルアレイと接続され、フェッチアドレスに応答して選択されたワードラインにワードライン電圧を提供するデコーダと、ビットラインを介して前記メモリセルアレイと接続され、前記選択されたワードラインに接続されたメモリセルのデータを感知増幅するセンスアンプと、前記ワードラインに接続され、分岐予測情報を貯蔵し、前記分岐予測情報によって前記センスアンプの動作を制御するセンスアンプイネーブル回路とを含む。
実施形態として、前記分岐予測情報はテイクンまたはノットテイクン情報である。前記分岐予測情報がノットテイクン情報である場合に、前記センスアンプイネーブル回路は選択されたメモリセルをアクセスしないように前記センスアンプを制御する。
他の実施形態として、前記メモリセルアレイはSRAMセルアレイである。前記センスアンプイネーブル回路は前記ワードラインに接続され、前記分岐予測情報を貯蔵するSRAMセル、及び前記SRAMセルに貯蔵された分岐予測情報に応答してセンスアンプイネーブル信号を前記センスアンプに提供する論理ゲートを含む。前記論理ゲートは前記ワードライン電圧及び前記分岐予測情報が入力され、AND演算する。
また他の実施形態として、前記論理ゲートは前記分岐予測情報及び動作モードに応答して前記センスアンプイネーブル信号を前記センスアンプに提供する。前記論理ゲートは前記分岐予測情報及び前記動作モードが入力され、OR演算する第1ゲートと、前記ワードライン電圧及び前記第1ゲートの出力が入力され、AND演算する第2ゲートとを含む。前記論理ゲートは前記動作モードが書き込みモードである場合に、前記分岐予測情報にかかわらず前記センスアンプイネーブル信号を前記センスアンプに提供する。
本発明による分岐予測回路は分岐結果がテイクンである場合にはカウント値を増加し、
ノットテイクンである場合にはカウント値を減少するアップ/ダウンサチュレイティングカウンタと、前記アップ/ダウンサチュレイティングカウンタからカウント値が入力され、分岐方向に沿って分岐予測を実行する分岐ターゲットバッファとを含む。ここで、前記分岐ターゲットバッファは分岐アドレス及びターゲットアドレスを貯蔵するメモリセルアレイと、ワードラインを介して前記メモリセルアレイと接続され、フェッチアドレスに応答して選択されたワードラインにワードライン電圧を提供するデコーダと、ビットラインを介して前記メモリセルアレイと接続され、前記選択されたワードラインに接続されたメモリセルのデータを感知増幅するセンスアンプと、前記ワードラインに接続され、前記アップ/ダウンサチュレイティングカウンタからカウント値が入力され、分岐予測情報を貯蔵し、前記分岐予測情報によって前記センスアンプの動作を制御するセンスアンプイネーブル回路とを含む。
実施形態として、前記分岐予測情報は前記アップ/ダウンサチュレイティングカウンタの上位ビットと同一である。前記分岐予測情報はテイクンまたはノットテイクン情報である。前記分岐予測情報がノットテイクン情報である場合に、前記センスアンプイネーブル回路は選択されたメモリセルをアクセスしないように前記センスアンプを制御する。
他の実施形態として、前記メモリセルアレイはSRAMセルアレイである。前記センスアンプイネーブル回路は前記ワードラインに接続され、前記分岐予測情報を貯蔵するSRAMセルと、前記SRAMセルに貯蔵された分岐予測情報に応答してセンスアンプイネーブル信号を前記センスアンプに提供する論理ゲートとを含む。前記論理ゲートは前記ワードライン電圧及び前記分岐予測情報が入力され、AND演算する。
また他の実施形態として、前記論理ゲートは前記分岐予測情報及び動作モードに応答して前記センスアンプイネーブル信号を前記センスアンプに提供する。前記論理ゲートは前記分岐予測情報及び前記動作モードが入力され、OR演算する第1ゲートと、前記ワードライン電圧及び前記第1ゲートの出力が入力され、AND演算する第2ゲートとを含む。前記論理ゲートは前記動作モードが書き込みモードである場合に、前記分岐予測情報にかかわらず前記センスアンプイネーブル信号を前記センスアンプに提供する。
本発明によれば、分岐ターゲットバッファの内に分岐予測情報を貯蔵する手段を具備し、分岐予測がノットテイクンである場合には分岐ターゲットバッファをアクセスしないため、従来に比べて分岐ターゲットバッファで消費する電力を大きく減らすことができる。
以下では、本発明が属する技術分野で通常の知識を有する者が本発明の技術的思想を容易に実施することができるように詳細に説明するために、本発明の望ましい実施形態を添付の図面を参照して説明する。
図1は本発明による分岐予測回路を含むマイクロプロセッサを示すブロック図である。図1を参照すると、マイクロプロセッサ1はプログラムメモリ10、命令語フェッチユニット20、命令語デコーダ30、実行ユニット40、及び分岐予測回路50を含む。
プログラムメモリ10には命令語フェッチユニット20からフェッチアドレス(Fetch Address)が入力される。ここで、フェッチアドレスは命令語フェッチユニット20のプログラムカウンタ(Program Counter;PC)(図示せず)の値である。図1において、フェッチアドレスはPCで表示されている。プログラムメモリ10はフェッチアドレスPCに応答して毎サイクルごとに命令語(Instruction;IR)を命令語フェッチユニット20に提供する。命令語デコーダ30は命令語フェッチユニット20からフェッチされた命令語を受け入れてデコードし、デコードされたコードを実行ユニット40に提供する。実行ユニット40は命令語デコーダ30でデコードされた条件付命令語の条件が真または偽りであるかを判別し、判別結果によって実際分岐アドレス(NEXTADDR)を発生する。実際分岐アドレス(NEXTADDR)は分岐予測回路50に提供される。
分岐予測回路50には命令語フェッチユニット20から分岐命令語のアドレス、すなわち、フェッチアドレスPCが入力される。分岐予測回路50はフェッチアドレスPCに応答して分岐予測アドレス(PREADDR)を発生する。分岐予測回路50は自分が予測した分岐予測アドレス(PREADDR)と実行ユニット40から提供された実際分岐アドレス(NEXTADDR)とが互いに一致するか否かを判別する。
もし、分岐予測アドレス(PREADDR)と実際分岐アドレス(NEXTADDR)とが互いに一致すれば、これは分岐予測が的中(hit)したことになる。この時には特別な問題は発生しない。しかし、分岐予測アドレス(PREADDR)と実際分岐アドレス(NEXTADDR)とが互いに一致しなければ、これは分岐予測が失敗(miss)したことになる。この時には実際分岐アドレス(NEXTADDR)で再分岐するために分岐予測アドレス(PREADDR)を実際分岐アドレス(NEXTADDR)に変更して出力する。分岐予測回路50の内部構成及び動作原理は図2を参照して詳細に説明する。
図2は図1に示した分岐予測回路を示すブロック図である。図2を参照すると、 分岐予測回路50は分岐予測制御ロジック(Branch Prediction Control Logic)51、分岐ターゲットバッファ(Branch Target Buffer;BTB)53、及びアップ/ダウンサチュレイティングカウンタ(Up/Down Saturating Counter)55を含む。
分岐予測制御ロジック51には命令語フェッチユニット(図1参照)20からフェッチアドレスPCが入力される。分岐予測制御ロジック51はフェッチアドレスPCに応答して分岐命令語のターゲットアドレス(Target Address)で分岐するか(taken)または順次的な次の命令語を実行するか(not−taken)を予測する。分岐予測制御ロジック51は予測結果によって分岐予測アドレス(PREADDR)を発生する。
また、分岐予測制御ロジック51には実行ユニット(図1参照)40から実際分岐アドレス(NEXTADDR)が入力される。分岐予測制御ロジック51は分岐予測アドレス(PREADDR)と実際分岐アドレス(NEXTADDR)とが一致するか否かを判断する。分岐予測制御ロジック51は判断結果によって分岐ターゲットバッファ53及びアップ/ダウンサチュレイティングカウンタ55を制御する。
分岐予測制御ロジック51は分岐命令語の分岐が一定の傾向性を有する点に基づいて、以前の分岐予測を参照して後に分岐される方向を予測する。分岐予測制御ロジック51はアップ/ダウンサチュレイティングカウンタ55を用いて分岐予測情報を得る。分岐予測制御ロジック51の分岐予測方法及びアップ/ダウンサチュレイティングカウンタ55の動作は図3を参照して説明する。
図3は図2に示した分岐予測制御ロジック51の分岐予測方法を例として説明するための状態図である。分岐予測制御ロジック51はアップ/ダウンサチュレイティングカウンタ55(図2参照)を利用して分岐予測情報を得る。ここで、アップ/ダウンサチュレイティングカウンタ55は2ビットカウンタである。
図3を参照すると、アップ/ダウンサチュレイティングカウンタ55は‘00’、‘01’、‘10’、‘11’の四つの状態を有する。‘00’状態と‘01’状態とはノットテイクン状態(Not−Taken state)である。ここで、‘00’状態は強いノットテイクン状態(Strongly Not_Taken state)と言い、‘01’状態は弱いノットテイクン状態(Weakly Not_Taken state)と言う。また、‘11’状態と‘10’状態とはテイクン状態(Taken state)である。ここで、‘11’状態は強いテイクン状態(Strongly Taken state)と言い、‘10’状態は弱いテイクン状態(Weakly Taken state)と言う。
アップ/ダウンサチュレイティングカウンタ55には分岐予測制御ロジック51からアップ制御信号UP及びダウン制御信号DOWNが入力される。アップ/ダウンサチュレイティングカウンタ55はアップ制御信号UPまたはダウン制御信号DOWNに応答して現在状態を変える。すなわち、アップ/ダウンサチュレイティングカウンタ55はアップ制御信号UPに応答して現在状態をテイクン状態方向に変換し、ダウン制御信号DOWNに応答してノットテイクン状態方向に変換する。但し、アップ/ダウンサチュレイティングカウンタ55は'00'状態でダウン制御信号DOWNが入力されても、‘00’状態をそのまま維持し、‘11’状態でアップ制御信号UPが入力されても‘11’状態をそのまま維持する。
また図2を参照すると、分岐予測制御ロジック51はアップ/ダウンサチュレイティングカウンタ55を用いて分岐予測情報を得る。すなわち、分岐予測制御ロジック51は分岐結果によってアップ制御信号UPまたはダウン制御信号DOWNをアップ/ダウンサチュレイティングカウンタ55に提供する。すなわち、分岐結果がテイクンである場合に、分岐予測制御ロジック51はアップ制御信号UPを発生する。この時、アップ/ダウンサチュレイティングカウンタ55はカウント値を増加する。一方、分岐結果がノットテイクンである場合、分岐予測制御ロジック51はダウン制御信号DOWNを発生する。この時、アップ/ダウンセチュレイキングカウンタ55はカウント値を減少する。
分岐ターゲットバッファ53はアップ/ダウンサチュレイティングカウンタ55のカウント値によって分岐予測を実行する。すなわち、分岐ターゲットバッファ53はアップ/ダウンサチュレイティングカウンタ55のカウント値が‘00’または‘01’である場合にはノットテイクンで分岐予測を実行し、‘11’または‘10’である場合にはテイクンで分岐予測を実行する。分岐ターゲットバッファ53の内部構成及び動作原理は図4を参照して詳細に説明する。
図4は図2に示した分岐ターゲットバッファを例として示すブロック図である。図4を参照すると、分岐ターゲットバッファ53はメモリセルアレイ100、センスアンプイネーブル回路200、デコーダ300、及びセンスアンプ400を含む。分岐ターゲットバッファ53はSRAM、DRAMなどのようなランダムアクセスが可能なメモリ(RAM)として実現することができる。以下では、SRAMで実現された分岐ターゲットバッファ53を説明する。
メモリセルアレイ100は複数のメモリセル(図示せず)を含む。ここで、メモリセルはよく知られたSRAMセルである。メモリセルアレイ100は第1及び第2貯蔵領域110、120を有する。第1貯蔵領域110は分岐アドレス(Branch Address)を貯蔵する。第2貯蔵領域120はターゲットアドレス(Target Address)を貯蔵する。ここで、ターゲットアドレスは実際に分岐されるアドレスである。メモリセルアレイ100はワードラインWLを介してデコーダ300と接続され、ビットラインBLを介してセンスアンプ400と接続される。
センスアンプイネーブル回路200はメモリセルアレイ100とデコーダ300との間に位置する。センスアンプイネーブル回路200は分岐予測情報貯蔵回路210及びイネーブル信号発生回路220を含む。分岐予測情報貯蔵回路210はワードラインWL0〜WLnに接続され、分岐予測情報を貯蔵する。ここで、分岐予測情報はテイクン情報またはノットテイクン情報である。分岐予測情報貯蔵回路210は1ビットSRAM セルとして実現することができる。イネーブル信号発生回路220は分岐予測情報貯蔵回路210に貯蔵された分岐予測情報によってセンスアンプイネーブル信号SAENを発生する。イネーブル信号発生回路210はセンスアンプイネーブル信号SAENをセンスアンプ400に提供する。センスアンプイネーブル回路200の構成及び動作は図5を参照して詳細に説明する。
デコーダ300はワードラインWL0〜WLnを介してメモリセルアレイ100と接続される。デコーダ300はフェッチアドレスPCが入力され、選択されたワードラインWLiにワードライン電圧を提供する。
センスアンプ400はビットラインBL1、BL2を介してメモリセルアレイ100と接続される。また、センスアンプ400はビットラインBit、/Bitを介して分岐予測情報貯蔵回路210と接続される。センスアンプ400は分岐予測制御ロジック51(図2参照)の制御によって、メモリセルアレイ100からターゲットアドレスを読み出す。センスアンプ400はメモリセルアレイ100及び分岐予測情報貯蔵回路210に貯蔵されたデータをアップデートする。一方、センスアンプ400はイネーブル信号発生回路220から提供されるセンスアンプイネーブル信号SAENに応答して、選択されたメモリセルに対するアクセスを禁止する。これは分岐予測情報がノットテイクンである場合に、メモリセルに対するアクセスを禁止して、分岐ターゲットバッファ53における消費電力を減らすためである。
図5は図4に示したセンスアンプイネーブル回路を例示的に示す回路図である。図5に示したセンスアンプイネーブル回路211、221は選択されたワードラインWLiに接続され、1ビットSRAMセル211とイネーブル信号発生回路221とを含む。
1ビットSRAMセル211は分岐予測情報を貯蔵している。分岐予測情報はテイクンまたはノットテイクン情報である。テイクンまたはノットテイクン情報はアップ/ダウンサチュレイティングカウンタ55(図2参照)の上位ビットに貯蔵されたデータと同一である。図3において説明したように、アップ/ダウンサチュレイティングカウンタ55のカウント値が‘00’または‘01’であれば、1ビットSRAMセル211はノットテイクン情報を貯蔵する。一方、アップ/ダウンサチュレイティングカウンタ55のカウント値が‘11’または‘10’であれば、1ビットSRAMセル211はテイクン情報を貯蔵する。
図5を参照すると、1ビットSRAMセル211が第1及び第2PMOSトランジスタP1、P2、第1ないし第4NMOSトランジスタN1〜N4で構成される。第3及び第4NMOSトランジスタN3、N4のゲートには選択されたワードラインWLiが接続され、ドレインにはビットラインBit、/Bitが接続される。そして第2PMOSトランジスタP2及び第2NMOSトランジスタN2のドレインには1ビットの分岐予測情報が貯蔵される。すなわち、分岐予測情報がテイクンである場合にはデータ‘1’が貯蔵され、ノットテイクンである場合にはデータ‘0’が貯蔵される。
イネーブル信号発生回路221は1ビットSRAMセル211に貯蔵された分岐予測情報によってセンスアンプイネーブル信号SAENを発生する。分岐予測情報がテイクンである場合のみ、センスアンプイネーブル信号SAENを発生し、ノットテイクンである場合にはセンスアンプイネーブル信号SAENを発生しない。図5を参照すると、イネーブル信号発生回路221は第1及び第2ゲートG1、G2を含む。
第1ゲートG1は分岐予測情報及び書き込み信号writeが入力されてOR演算を実行する。ここで、書き込み信号writeは分岐予測制御ロジック51(第2参照)から提供される。第1ゲートG1はハイレベルの書き込み信号writeが入力される場合には、分岐予測情報にかかわらずハイレベルの出力信号を発生する。第2ゲートG2は第1ゲートG1の出力信号及び選択されたワードラインWLiのワードライン電圧が入力されてAND演算を実行する。
イネーブル信号発生回路221は分岐予測情報がテイクンであるか書き込み信号が入力される場合にセンスアンプイネーブル信号SAENを発生する。しかし、イネーブル信号発生回路221は読み出し動作の時に1ビットSRAMセル211にノットテイクン情報が貯蔵された場合にはセンスアンプイネーブル信号SAENを発生しない。これは分岐予測の結果がノットテイクンである場合には選択されたメモリセルをアクセスしないため、消費電力を減らすためである。一方、イネーブル信号発生回路221は書き込み信号writeが活性化された場合には分岐予測情報に構わずにセンスアンプイネーブル信号SAENを発生して正常に書き込み動作を実行するようにする。
本発明による分岐ターゲットバッファは分岐予測し、分岐予測情報によってセンスアンプをイネーブルする。分岐ターゲットバッファは分岐予測情報を貯蔵するために1ビットSRAMセルを具備する。1ビットSRAMセルはメモリセルアレイとデコーダとの間のワードラインに接続される。分岐ターゲットバッファは分岐予測情報がテイクンである場合にはセンスアンプをイネーブルし、ノットテイクンである場合にはセンスアンプをディセーブルする。したがって、分岐予測情報がノットテイクンである場合には選択されたメモリセルはアクセスされない。しかし、書き込み動作の時にはテイクンまたはノットテイクンにかかわらず書き込み動作が進行しなければならないため、選択されたメモリセルはアクセスされる。
本発明による分岐ターゲットバッファによれば、1ビットSRAMセルに貯蔵された分岐予測情報がノットテイクンである場合にはメモリセルアレイをアクセスしないため、消費電力を減らすことができる。また、1ビットSRAMセルに分岐予測情報を貯蔵するため、複雑な制御回路や大きな遅延時間なしで、ワードラインの制御のみで分岐ターゲットバッファで消費する電力を減少することができる。
EEMBCベンチマーク(benchmark)に対するシミュレーションによって得た結果によれば、約40%以上がノットテイクンに予測されることを確認することができ、これを勘案すれば、分岐ターゲットバッファをアクセスするのに消費する電力の40%程度を節減することができる。
なお、本発明の詳細な説明においては具体的な実施形態に関して説明したが、本発明の範囲から逸脱しない限度内で多様な変形が可能であるため、本発明の範囲は上述の実施形態に限定されず、特許請求範囲だけでなくこの発明の特許請求範囲と均等な範囲によって決めなければならない。
本発明による分岐予測回路を含むマイクロプロセッサを示すブロック図である。 図1に示した分岐予測回路を示すブロック図である。 図2に示したアップ/ダウンサチュレイティングカウンタを用いた分岐予測方法を示す状態図である。 図2に示した分岐ターゲットバッファを示すブロック図である。 図4に示したセンスアンプイネーブル回路を示す回路図である。
符号の説明
10 プログラムメモリ
20 命令語フェッチユニット
30 命令語デコーダ
40 実行ユニット
50 分岐予測回路
51 分岐予測制御ロジック
53 分岐ターゲットバッファ
55 アップ/ダウンサチュレイティングカウンタ
100 メモリセルアレイ
200 センスアンプイネーブル回路
210 分岐予測情報貯蔵回路
220 イネーブル信号発生回路
300 デコーダ
400 センスアンプ

Claims (21)

  1. 分岐アドレス及びターゲットアドレスを貯蔵するメモリセルアレイと、
    ワードラインを介して前記メモリセルアレイと接続され、フェッチアドレスに応答して選択されたワードラインにワードライン電圧を提供するデコーダと、
    ビットラインを介して前記メモリセルアレイと接続され、選択されたメモリセルのデータを感知増幅するセンスアンプと、
    前記ワードラインに接続される、分岐予測情報を貯蔵し、前記分岐予測情報によって前記センスアンプの動作を制御するセンスアンプイネーブル回路とを含むことを特徴とする分岐ターゲットバッファ。
  2. 前記分岐予測情報はテイクンまたはノットテイクン情報であることを特徴とする請求項1に記載の分岐ターゲットバッファ。
  3. 前記分岐予測情報がノットテイクン情報である場合に、前記センスアンプイネーブル回路は前記選択されたメモリセルに対するアクセスを禁止するように前記センスアンプを制御することを特徴とする請求項2に記載の分岐ターゲットバッファ。
  4. 前記メモリセルアレイはSRAMセルアレイであることを特徴とする請求項1に記載の分岐ターゲットバッファ。
  5. 前記センスアンプイネーブル回路は、
    前記ワードラインに接続され、前記分岐予測情報を貯蔵する分岐予測情報貯蔵回路と、
    前記分岐予測情報貯蔵回路に貯蔵された分岐予測情報に応答してセンスアンプイネーブル信号を発生し、前記センスアンプイネーブル信号を前記センスアンプに提供するイネーブル信号発生回路とを含むことを特徴とする請求項4に記載の分岐ターゲットバッファ。
  6. 前記分岐予測情報貯蔵回路は1ビットSRAMセルであることを特徴とする請求項5に記載の分岐ターゲットバッファ。
  7. 前記イネーブル信号発生回路は前記ワードライン電圧及び前記分岐予測情報が入力され、AND演算する論理ゲートであることを特徴とする請求項5に記載の分岐ターゲットバッファ。
  8. 前記イネーブル信号発生回路は前記分岐予測情報及び動作モードに応答して前記センスアンプイネーブル信号を前記センスアンプに提供する論理ゲートであることを特徴とする請求項5に記載の分岐ターゲットバッファ。
  9. 前記論理ゲートは、
    前記分岐予測情報及び前記動作モードが入力され、OR演算する第1ゲートと、
    前記ワードライン電圧及び前記第1ゲートの出力が入力され、AND演算する第2ゲートとを含むことを特徴とする請求項8に記載の分岐ターゲットバッファ。
  10. 前記論理ゲートは前記動作モードが書き込みモードである場合に、前記分岐予測情報にかかわらず前記センスアンプイネーブル信号を前記センスアンプに提供することを特徴とする請求項8に記載の分岐ターゲットバッファ。
  11. 分岐結果がテイクンである場合にはカウント値を増加し、ノットテイクンである場合にはカウント値を減少するアップ/ダウンサチュレイティングカウンタと、
    前記アップ/ダウンサチュレイティングカウンタからカウント値が入力され、分岐方向に沿って分岐予測を実行する分岐ターゲットバッファとを含み、
    前記分岐ターゲットバッファは、
    分岐アドレス及びターゲットアドレスを貯蔵するメモリセルアレイと、
    ワードラインを介して前記メモリセルアレイと接続され、フェッチアドレスに応答して選択されたワードラインにワードライン電圧を提供するデコーダと、
    ビットラインを介して前記メモリセルアレイと接続され、選択されたメモリセルのデータを感知増幅するセンスアンプと、
    前記ワードラインに接続され、前記アップ/ダウンサチュレイティングカウンタからカウント値が入力されて分岐予測情報を貯蔵し、前記分岐予測情報によって前記センスアンプの動作を制御するセンスアンプイネーブル回路とを含むことを特徴とする分岐予測回路。
  12. 前記分岐予測情報は前記アップ/ダウンサチュレイティングカウンタの上位ビットと同一であることを特徴とする請求項11に記載の分岐予測回路。
  13. 前記分岐予測情報はテイクンまたはノットテイクン情報であることを特徴とする請求項11に記載の分岐予測回路。
  14. 前記分岐予測情報がノットテイクン情報である場合に、前記センスアンプイネーブル回路は前記選択されたメモリセルに対するアクセスを禁止するように前記センスアンプを制御することを特徴とする請求項13に記載の分岐予測回路。
  15. 前記メモリセルアレイはSRAMセルアレイであることを特徴とする請求項11に記載の分岐予測回路。
  16. 前記センスアンプイネーブル回路は、
    前記ワードラインに接続され、前記分岐予測情報を貯蔵する分岐予測情報貯蔵回路と、
    前記分岐予測情報貯蔵回路に貯蔵された分岐予測情報に応答してセンスアンプイネーブル信号を発生し、前記センスアンプイネーブル信号を前記センスアンプに提供するイネーブル信号発生回路とを含むことを特徴とする請求項15に記載の分岐予測回路。
  17. 前記分岐予測情報貯蔵回路は1ビットSRAMセルであることを特徴とする請求項16に記載の分岐予測回路。
  18. 前記イネーブル信号発生回路は前記ワードライン電圧及び前記分岐予測情報が入力され、AND演算する論理ゲートであることを特徴とする請求項16に記載の分岐予測回路。
  19. 前記イネーブル信号発生回路は前記分岐予測情報及び動作モードに応答して前記センスアンプイネーブル信号を前記センスアンプに提供する論理ゲートであることを特徴とする請求項16に記載の分岐予測回路。
  20. 前記論理ゲートは、
    前記分岐予測情報及び前記動作モードが入力され、OR演算する第1ゲートと、
    前記ワードライン電圧及び前記第1ゲートの出力が入力され、AND演算する第2ゲートとを含むことを特徴とする請求項19に記載の分岐予測回路。
  21. 前記論理ゲートは前記動作モードが書き込みモードである場合に、前記分岐予測情報にかかわらず前記センスアンプイネーブル信号を前記センスアンプに提供することを特徴とする請求項19に記載の分岐予測回路。
JP2007018134A 2006-02-13 2007-01-29 分岐予測情報を貯蔵する分岐ターゲットバッファ及びそれを含んだ分岐予測回路 Pending JP2007220099A (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060013853A KR20070081696A (ko) 2006-02-13 2006-02-13 분기 예측 정보를 저장하는 분기 타겟 버퍼 및 그것을포함한 분기 예측 회로

Publications (1)

Publication Number Publication Date
JP2007220099A true JP2007220099A (ja) 2007-08-30

Family

ID=38370135

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007018134A Pending JP2007220099A (ja) 2006-02-13 2007-01-29 分岐予測情報を貯蔵する分岐ターゲットバッファ及びそれを含んだ分岐予測回路

Country Status (3)

Country Link
US (1) US20070192574A1 (ja)
JP (1) JP2007220099A (ja)
KR (1) KR20070081696A (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100916484B1 (ko) 2007-08-14 2009-09-08 삼성전기주식회사 자동 화이트 밸런스 방법
CN105468334A (zh) * 2008-12-25 2016-04-06 世意法(北京)半导体研发有限责任公司 对非控制流指令减少分支检验
EP2202636A1 (en) 2008-12-25 2010-06-30 STMicroelectronics (Beijing) R&D Co. Ltd. Reducing branch checking for non control flow instructions
JP5549734B2 (ja) * 2010-08-18 2014-07-16 富士通株式会社 試験方法、演算処理装置、試験プログラム、試験プログラム生成方法、試験プログラム生成装置、及び試験プログラム生成プログラム
CN103984525B (zh) * 2013-02-08 2017-10-20 上海芯豪微电子有限公司 指令处理系统及方法
US11086629B2 (en) * 2018-11-09 2021-08-10 Arm Limited Misprediction of predicted taken branches in a data processing apparatus

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5740417A (en) * 1995-12-05 1998-04-14 Motorola, Inc. Pipelined processor operating in different power mode based on branch prediction state of branch history bit encoded as taken weakly not taken and strongly not taken states
US5911153A (en) * 1996-10-03 1999-06-08 International Business Machines Corporation Memory design which facilitates incremental fetch and store requests off applied base address requests
JPH10214188A (ja) * 1997-01-30 1998-08-11 Toshiba Corp プロセッサの命令供給方法及び装置
US6347369B1 (en) * 1997-11-17 2002-02-12 Advanced Micro Devices, Inc. Method and circuit for single cycle multiple branch history table access
US6016533A (en) * 1997-12-16 2000-01-18 Advanced Micro Devices, Inc. Way prediction logic for cache array
JP3683439B2 (ja) * 1999-08-24 2005-08-17 富士通株式会社 分岐予測を抑止する情報処理装置および方法
US6990569B2 (en) * 2001-10-25 2006-01-24 Arm Limited Handling problematic events in a data processing apparatus
KR100591769B1 (ko) * 2004-07-16 2006-06-26 삼성전자주식회사 분기 예측 정보를 가지는 분기 타겟 버퍼
US7278012B2 (en) * 2005-06-02 2007-10-02 Qualcomm Incorporated Method and apparatus for efficiently accessing first and second branch history tables to predict branch instructions

Also Published As

Publication number Publication date
US20070192574A1 (en) 2007-08-16
KR20070081696A (ko) 2007-08-17

Similar Documents

Publication Publication Date Title
KR100591769B1 (ko) 분기 예측 정보를 가지는 분기 타겟 버퍼
KR100944139B1 (ko) 명령 프리페치 메카니즘
US7889592B2 (en) Non-volatile memory device and a method of programming the same
US6263427B1 (en) Branch prediction mechanism
RU2367004C2 (ru) Обработка ошибок предварительного декодирования через коррекцию ветвлений
US8572358B2 (en) Meta predictor restoration upon detecting misprediction
JP2007220099A (ja) 分岐予測情報を貯蔵する分岐ターゲットバッファ及びそれを含んだ分岐予測回路
JP2006286179A (ja) OneNANDフラッシュメモリ及びそれを含んだデータ処理システム
JP2006331614A (ja) 面積が減少したページバッファ回路と、これを含むフラッシュメモリ装置およびそのプログラム動作方法
US20130044555A1 (en) Processor with memory delayed bit line precharging
JP2009245574A (ja) フラッシュメモリ素子及びそのブロック選択回路
US8321640B2 (en) Data mask system and data mask method
US7698536B2 (en) Method and system for providing an energy efficient register file
US8578137B2 (en) Reducing aging effect on registers
KR101263167B1 (ko) 메모리 셀에 대한 액세스 정보를 저장하는 반도체 메모리장치
US7173856B2 (en) Sense amplifier for a non-volatile memory device
JP2008090995A (ja) フラッシュメモリ装置及びその消去方法
JP5032137B2 (ja) 半導体記憶装置
JP2007035163A (ja) 不揮発性半導体記憶装置及び信号処理システム
US8443174B2 (en) Processor and method of performing speculative load operations of the processor
JP2006031697A (ja) 分岐ターゲットバッファと使用方法
JP4824956B2 (ja) アクセスデータを貯蔵する回路を備えた半導体メモリ装置
JPH1166870A (ja) 半導体記憶装置およびそのデータ格納方法
JP2006502490A (ja) アドレス範囲に依存した命令並行処理を行うデータ処理装置
JP2005141812A (ja) 半導体記憶装置