(57)【要約】【課題】分岐予測情報を貯蔵する分岐ターゲットバッファ及びそれを含んだ分岐予測回路を提供する。【解決手段】本発明による分岐ターゲットバッファはメモリセルアレイ、デコーダ、センスアンプ、及びセンスアンプイネーブル回路を含む。メモリセルアレイは分岐アドレス及びターゲットアドレスを貯蔵する。デコーダはワードラインを介してメモリセルアレイと接続され、フェッチアドレスに応答して選択されたワードラインにワードライン電圧を提供する。センスアンプはビットラインを介してメモリセルアレイと接続され、選択されたワードラインに接続されたメモリセルのデータを感知増幅する。センスアンプイネーブル回路はワードラインに接続され、分岐予測情報を貯蔵し、分岐予測情報によってセンスアンプの動作を制御する。【選択図】図４
2007220099.tif 000002
【特許請求の範囲】
【請求項１】
分岐アドレス及びターゲットアドレスを貯蔵するメモリセルアレイと、
ワードラインを介して前記メモリセルアレイと接続され、フェッチアドレスに応答して選択されたワードラインにワードライン電圧を提供するデコーダと、
ビットラインを介して前記メモリセルアレイと接続され、選択されたメモリセルのデータを感知増幅するセンスアンプと、
前記ワードラインに接続される、分岐予測情報を貯蔵し、前記分岐予測情報によって前記センスアンプの動作を制御するセンスアンプイネーブル回路とを含むことを特徴とする分岐ターゲットバッファ。
【請求項２】
前記分岐予測情報はテイクンまたはノットテイクン情報であることを特徴とする請求項１に記載の分岐ターゲットバッファ。
【請求項３】
前記分岐予測情報がノットテイクン情報である場合に、前記センスアンプイネーブル回路は前記選択されたメモリセルに対するアクセスを禁止するように前記センスアンプを制御することを特徴とする請求項２に記載の分岐ターゲットバッファ。
【請求項４】
前記メモリセルアレイはＳＲＡＭセルアレイであることを特徴とする請求項１に記載の分岐ターゲットバッファ。
【請求項５】
前記センスアンプイネーブル回路は、
前記ワードラインに接続され、前記分岐予測情報を貯蔵する分岐予測情報貯蔵回路と、
前記分岐予測情報貯蔵回路に貯蔵された分岐予測情報に応答してセンスアンプイネーブル信号を発生し、前記センスアンプイネーブル信号を前記センスアンプに提供するイネーブル信号発生回路とを含むことを特徴とする請求項４に記載の分岐ターゲットバッファ。
【請求項６】
前記分岐予測情報貯蔵回路は１ビットＳＲＡＭセルであることを特徴とする請求項５に記載の分岐ターゲットバッファ。
【請求項７】
前記イネーブル信号発生回路は前記ワードライン電圧及び前記分岐予測情報が入力され、ＡＮＤ演算する論理ゲートであることを特徴とする請求項５に記載の分岐ターゲットバッファ。
【請求項８】
前記イネーブル信号発生回路は前記分岐予測情報及び動作モードに応答して前記センスアンプイネーブル信号を前記センスアンプに提供する論理ゲートであることを特徴とする請求項５に記載の分岐ターゲットバッファ。
【請求項９】
前記論理ゲートは、
前記分岐予測情報及び前記動作モードが入力され、ＯＲ演算する第１ゲートと、
前記ワードライン電圧及び前記第１ゲートの出力が入力され、ＡＮＤ演算する第２ゲートとを含むことを特徴とする請求項８に記載の分岐ターゲットバッファ。
【請求項１０】
前記論理ゲートは前記動作モードが書き込みモードである場合に、前記分岐予測情報にかかわらず前記センスアンプイネーブル信号を前記センスアンプに提供することを特徴とする請求項８に記載の分岐ターゲットバッファ。
【請求項１１】
分岐結果がテイクンである場合にはカウント値を増加し、ノットテイクンである場合にはカウント値を減少するアップ／ダウンサチュレイティングカウンタと、
前記アップ／ダウンサチュレイティングカウンタからカウント値が入力され、分岐方向に沿って分岐予測を実行する分岐ターゲットバッファとを含み、
前記分岐ターゲットバッファは、
分岐アドレス及びターゲットアドレスを貯蔵するメモリセルアレイと、
ワードラインを介して前記メモリセルアレイと接続され、フェッチアドレスに応答して選択されたワードラインにワードライン電圧を提供するデコーダと、
ビットラインを介して前記メモリセルアレイと接続され、選択されたメモリセルのデータを感知増幅するセンスアンプと、
前記ワードラインに接続され、前記アップ／ダウンサチュレイティングカウンタからカウント値が入力されて分岐予測情報を貯蔵し、前記分岐予測情報によって前記センスアンプの動作を制御するセンスアンプイネーブル回路とを含むことを特徴とする分岐予測回路。
【請求項１２】
前記分岐予測情報は前記アップ／ダウンサチュレイティングカウンタの上位ビットと同一であることを特徴とする請求項１１に記載の分岐予測回路。
【請求項１３】
前記分岐予測情報はテイクンまたはノットテイクン情報であることを特徴とする請求項１１に記載の分岐予測回路。
【請求項１４】
前記分岐予測情報がノットテイクン情報である場合に、前記センスアンプイネーブル回路は前記選択されたメモリセルに対するアクセスを禁止するように前記センスアンプを制御することを特徴とする請求項１３に記載の分岐予測回路。
【請求項１５】
前記メモリセルアレイはＳＲＡＭセルアレイであることを特徴とする請求項１１に記載の分岐予測回路。
【請求項１６】
前記センスアンプイネーブル回路は、
前記ワードラインに接続され、前記分岐予測情報を貯蔵する分岐予測情報貯蔵回路と、
前記分岐予測情報貯蔵回路に貯蔵された分岐予測情報に応答してセンスアンプイネーブル信号を発生し、前記センスアンプイネーブル信号を前記センスアンプに提供するイネーブル信号発生回路とを含むことを特徴とする請求項１５に記載の分岐予測回路。
【請求項１７】
前記分岐予測情報貯蔵回路は１ビットＳＲＡＭセルであることを特徴とする請求項１６に記載の分岐予測回路。
【請求項１８】
前記イネーブル信号発生回路は前記ワードライン電圧及び前記分岐予測情報が入力され、ＡＮＤ演算する論理ゲートであることを特徴とする請求項１６に記載の分岐予測回路。
【請求項１９】
前記イネーブル信号発生回路は前記分岐予測情報及び動作モードに応答して前記センスアンプイネーブル信号を前記センスアンプに提供する論理ゲートであることを特徴とする請求項１６に記載の分岐予測回路。
【請求項２０】
前記論理ゲートは、
前記分岐予測情報及び前記動作モードが入力され、ＯＲ演算する第１ゲートと、
前記ワードライン電圧及び前記第１ゲートの出力が入力され、ＡＮＤ演算する第２ゲートとを含むことを特徴とする請求項１９に記載の分岐予測回路。
【請求項２１】
前記論理ゲートは前記動作モードが書き込みモードである場合に、前記分岐予測情報にかかわらず前記センスアンプイネーブル信号を前記センスアンプに提供することを特徴とする請求項１９に記載の分岐予測回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はマイクロプロセッサの分岐予測回路に係り、より詳細には分岐予測情報を貯蔵している分岐ターゲットバッファ（Ｂｒａｎｃｈ Ｔａｒｇｅｔ Ｂｕｆｆｅｒ；ＢＴＢ）及びそれを含んだ分岐予測回路に関する。
【背景技術】
【０００２】
マイクロプロセッサで処理すべき仕事量の増加に伴って、プロセッサの動作方式及び構造も発展している。このようなプロセッサ構造設計方法のうちの１つの技法がパイプライニング（ｐｉｐｅｌｉｎｉｎｇ）技法である。パイプライン動作は命令語フェッチ（Ｉｎｓｔｒｕｃｔｉｏｎ ｆｅｔｃｈ）段階、命令語デコード（Ｉｎｓｔｒｕｃｔｉｏｎ ｄｅｃｏｄｅ）段階、実行（ｅｘｅｃｕｔｅ）段階などいくつかの段階で行われる。パイプラインプロセッサで、命令語（ｉｎｓｔｒｕｃｔｉｏｎ）は重なった形態でパイプラインの各段階を順に経ながら実行される。
【０００３】
パイプラインプロセッサの性能は分岐（ｂｒａｎｃｈ）動作に全面的に依存する。分岐動作はプログラム実行の途中に命令語の流れを変更させるため、プロセッサの性能を低下させる主な原因になる。これは分岐命令語（ｂｒａｎｃｈ ｉｎｓｔｒｕｃｔｉｏｎ）がフェッチされる時、次に実行（フェッチ）される命令語のアドレスが直ちに分からないためである。
【０００４】
分岐命令語は実行段階で分岐命令語に含まれた条件が満足されるか否かを検査した後、次の実行される命令語のアドレスを決定する。分岐命令語が条件を満足した場合をその分岐命令語がテイクン（ｔａｋｅｎ）されたと言い、分岐命令語が条件を満足することができなかった場合をその分岐命令語がノットテイクン（ｎｏｔ−ｔａｋｅｎ）されたと言う。
【０００５】
分岐予測（ｂｒａｎｃｈ ｐｒｅｄｉｃｔｉｏｎ）は分岐命令語の条件が真であるかまたは偽であるかを判別して分岐されるアドレスが計算されている間、連続的に次の命令語を行うために分岐されるアドレスを予測して任意に行うことである。分岐予測が合えば、任意に実行した命令語が正しく実行され、パイプラインの停止は発生しない。一方、分岐予測が誤れば、正しいプログラム実行経路が実行されるように補正（ｒｅｃｏｖｅｒ）する必要がある。この時には誤り実行された命令語を除去（ｆｌｕｓｈ）し、正しく分岐された命令語を再実行するために追加的な引き延ばしが発生する。
【０００６】
分岐予測方法には、大きく分けて、静的分岐予測（ｓｔａｔｉｃ ｂｒａｎｃｈ ｐｒｅｄｉｃｔｉｏｎ）と動的分岐予測（ｄｙｎａｍｉｃ ｂｒａｎｃｈ ｐｒｅｄｉｃｔｉｏｎ）とがある。静的分岐予測とは、プログラムを実行する前にすでに該当の分岐命令語に対する分岐予測が決まる方法である。動的分岐予測とは、プログラムの実行中に過去行績（ｈｉｓｔｏｒｙ）によってテイクンあるいはノットテイクンを決める方法である。一般的に動的分岐予測方法が静的分岐予測方法に比べてさらに高い的中率を有する。
【０００７】
分岐命令語による性能低下を減少するために分岐ターゲットバッファ（Ｂｒａｎｃｈ Ｔａｒｇｅｔ Ｂｕｆｆｅｒ； ＢＴＢ）を用いる。分岐ターゲットバッファには分岐命令語のアドレス（以下、分岐アドレスと言うことにする）と分岐されるターゲットアドレスとが貯蔵されている。分岐ターゲットバッファは、分岐方向がテイクンに予測される場合に貯蔵されているターゲットアドレスを読み出して該当のターゲットアドレスの命令語をフェッチする。
【０００８】
このような分岐ターゲットバッファを通じた分岐予測はＡＲＭプロセッサなど内蔵プロセッサ（ｅｍｂｅｄｄｅｄ ｐｒｏｃｅｓｓｏｒ）の場合、すべての命令語に対して常に分岐ターゲットバッファを参照するようになるため、分岐ターゲットバッファをアクセスするための消費電力が大きくなる。このような短所を解決するために、プリデコーディング（ｐｒｅ−ｄｅｃｏｄｉｎｇ）をして分岐命令語の場合にのみ、分岐予測を実行して分岐ターゲットバッファをアクセスする方法などが提案されているが、このような方法は制御ロジックを複雑にするか、プロセスのフェッチロジックのディレイを増加させるという短所がある。また、分岐命令語である場合に実際に分岐ターゲットバッファをアクセスする必要がないノットテイクンの場合にも、不必要に分岐ターゲットバッファをアクセスすることによって消費電力を大きくするという問題点がある。
【発明の開示】
【発明が解決しようとする課題】
【０００９】
本発明は上述の問題を解決するためになされたもので、本発明の目的は分岐予測情報によってセンスアンプの動作を制御して、不必要な電力消費を減らす分岐ターゲットバッファ及びそれを含んだ分岐予測回路を提供することにある。
【課題を解決するための手段】
【００１０】
本発明による分岐ターゲットバッファは、分岐アドレス及びターゲットアドレスを貯蔵するメモリセルアレイと、ワードラインを介して前記メモリセルアレイと接続され、フェッチアドレスに応答して選択されたワードラインにワードライン電圧を提供するデコーダと、ビットラインを介して前記メモリセルアレイと接続され、前記選択されたワードラインに接続されたメモリセルのデータを感知増幅するセンスアンプと、前記ワードラインに接続され、分岐予測情報を貯蔵し、前記分岐予測情報によって前記センスアンプの動作を制御するセンスアンプイネーブル回路とを含む。
【００１１】
実施形態として、前記分岐予測情報はテイクンまたはノットテイクン情報である。前記分岐予測情報がノットテイクン情報である場合に、前記センスアンプイネーブル回路は選択されたメモリセルをアクセスしないように前記センスアンプを制御する。
【００１２】
他の実施形態として、前記メモリセルアレイはＳＲＡＭセルアレイである。前記センスアンプイネーブル回路は前記ワードラインに接続され、前記分岐予測情報を貯蔵するＳＲＡＭセル、及び前記ＳＲＡＭセルに貯蔵された分岐予測情報に応答してセンスアンプイネーブル信号を前記センスアンプに提供する論理ゲートを含む。前記論理ゲートは前記ワードライン電圧及び前記分岐予測情報が入力され、ＡＮＤ演算する。
【００１３】
また他の実施形態として、前記論理ゲートは前記分岐予測情報及び動作モードに応答して前記センスアンプイネーブル信号を前記センスアンプに提供する。前記論理ゲートは前記分岐予測情報及び前記動作モードが入力され、ＯＲ演算する第１ゲートと、前記ワードライン電圧及び前記第１ゲートの出力が入力され、ＡＮＤ演算する第２ゲートとを含む。前記論理ゲートは前記動作モードが書き込みモードである場合に、前記分岐予測情報にかかわらず前記センスアンプイネーブル信号を前記センスアンプに提供する。
【００１４】
本発明による分岐予測回路は分岐結果がテイクンである場合にはカウント値を増加し、
ノットテイクンである場合にはカウント値を減少するアップ／ダウンサチュレイティングカウンタと、前記アップ／ダウンサチュレイティングカウンタからカウント値が入力され、分岐方向に沿って分岐予測を実行する分岐ターゲットバッファとを含む。ここで、前記分岐ターゲットバッファは分岐アドレス及びターゲットアドレスを貯蔵するメモリセルアレイと、ワードラインを介して前記メモリセルアレイと接続され、フェッチアドレスに応答して選択されたワードラインにワードライン電圧を提供するデコーダと、ビットラインを介して前記メモリセルアレイと接続され、前記選択されたワードラインに接続されたメモリセルのデータを感知増幅するセンスアンプと、前記ワードラインに接続され、前記アップ／ダウンサチュレイティングカウンタからカウント値が入力され、分岐予測情報を貯蔵し、前記分岐予測情報によって前記センスアンプの動作を制御するセンスアンプイネーブル回路とを含む。
【００１５】
実施形態として、前記分岐予測情報は前記アップ／ダウンサチュレイティングカウンタの上位ビットと同一である。前記分岐予測情報はテイクンまたはノットテイクン情報である。前記分岐予測情報がノットテイクン情報である場合に、前記センスアンプイネーブル回路は選択されたメモリセルをアクセスしないように前記センスアンプを制御する。
【００１６】
他の実施形態として、前記メモリセルアレイはＳＲＡＭセルアレイである。前記センスアンプイネーブル回路は前記ワードラインに接続され、前記分岐予測情報を貯蔵するＳＲＡＭセルと、前記ＳＲＡＭセルに貯蔵された分岐予測情報に応答してセンスアンプイネーブル信号を前記センスアンプに提供する論理ゲートとを含む。前記論理ゲートは前記ワードライン電圧及び前記分岐予測情報が入力され、ＡＮＤ演算する。
【００１７】
また他の実施形態として、前記論理ゲートは前記分岐予測情報及び動作モードに応答して前記センスアンプイネーブル信号を前記センスアンプに提供する。前記論理ゲートは前記分岐予測情報及び前記動作モードが入力され、ＯＲ演算する第１ゲートと、前記ワードライン電圧及び前記第１ゲートの出力が入力され、ＡＮＤ演算する第２ゲートとを含む。前記論理ゲートは前記動作モードが書き込みモードである場合に、前記分岐予測情報にかかわらず前記センスアンプイネーブル信号を前記センスアンプに提供する。
【発明の効果】
【００１８】
本発明によれば、分岐ターゲットバッファの内に分岐予測情報を貯蔵する手段を具備し、分岐予測がノットテイクンである場合には分岐ターゲットバッファをアクセスしないため、従来に比べて分岐ターゲットバッファで消費する電力を大きく減らすことができる。
【発明を実施するための最良の形態】
【００１９】
以下では、本発明が属する技術分野で通常の知識を有する者が本発明の技術的思想を容易に実施することができるように詳細に説明するために、本発明の望ましい実施形態を添付の図面を参照して説明する。
【００２０】
図１は本発明による分岐予測回路を含むマイクロプロセッサを示すブロック図である。図１を参照すると、マイクロプロセッサ１はプログラムメモリ１０、命令語フェッチユニット２０、命令語デコーダ３０、実行ユニット４０、及び分岐予測回路５０を含む。
【００２１】
プログラムメモリ１０には命令語フェッチユニット２０からフェッチアドレス（Ｆｅｔｃｈ Ａｄｄｒｅｓｓ）が入力される。ここで、フェッチアドレスは命令語フェッチユニット２０のプログラムカウンタ（Ｐｒｏｇｒａｍ Ｃｏｕｎｔｅｒ；ＰＣ）（図示せず）の値である。図１において、フェッチアドレスはＰＣで表示されている。プログラムメモリ１０はフェッチアドレスＰＣに応答して毎サイクルごとに命令語（Ｉｎｓｔｒｕｃｔｉｏｎ；ＩＲ）を命令語フェッチユニット２０に提供する。命令語デコーダ３０は命令語フェッチユニット２０からフェッチされた命令語を受け入れてデコードし、デコードされたコードを実行ユニット４０に提供する。実行ユニット４０は命令語デコーダ３０でデコードされた条件付命令語の条件が真または偽りであるかを判別し、判別結果によって実際分岐アドレス（ＮＥＸＴＡＤＤＲ）を発生する。実際分岐アドレス（ＮＥＸＴＡＤＤＲ）は分岐予測回路５０に提供される。
【００２２】
分岐予測回路５０には命令語フェッチユニット２０から分岐命令語のアドレス、すなわち、フェッチアドレスＰＣが入力される。分岐予測回路５０はフェッチアドレスＰＣに応答して分岐予測アドレス（ＰＲＥＡＤＤＲ）を発生する。分岐予測回路５０は自分が予測した分岐予測アドレス（ＰＲＥＡＤＤＲ）と実行ユニット４０から提供された実際分岐アドレス（ＮＥＸＴＡＤＤＲ）とが互いに一致するか否かを判別する。
【００２３】
もし、分岐予測アドレス（ＰＲＥＡＤＤＲ）と実際分岐アドレス（ＮＥＸＴＡＤＤＲ）とが互いに一致すれば、これは分岐予測が的中（ｈｉｔ）したことになる。この時には特別な問題は発生しない。しかし、分岐予測アドレス（ＰＲＥＡＤＤＲ）と実際分岐アドレス（ＮＥＸＴＡＤＤＲ）とが互いに一致しなければ、これは分岐予測が失敗（ｍｉｓｓ）したことになる。この時には実際分岐アドレス（ＮＥＸＴＡＤＤＲ）で再分岐するために分岐予測アドレス（ＰＲＥＡＤＤＲ）を実際分岐アドレス（ＮＥＸＴＡＤＤＲ）に変更して出力する。分岐予測回路５０の内部構成及び動作原理は図２を参照して詳細に説明する。
【００２４】
図２は図１に示した分岐予測回路を示すブロック図である。図２を参照すると、 分岐予測回路５０は分岐予測制御ロジック（Ｂｒａｎｃｈ Ｐｒｅｄｉｃｔｉｏｎ Ｃｏｎｔｒｏｌ Ｌｏｇｉｃ）５１、分岐ターゲットバッファ（Ｂｒａｎｃｈ Ｔａｒｇｅｔ Ｂｕｆｆｅｒ；ＢＴＢ）５３、及びアップ／ダウンサチュレイティングカウンタ（Ｕｐ／Ｄｏｗｎ Ｓａｔｕｒａｔｉｎｇ Ｃｏｕｎｔｅｒ）５５を含む。
【００２５】
分岐予測制御ロジック５１には命令語フェッチユニット（図１参照）２０からフェッチアドレスＰＣが入力される。分岐予測制御ロジック５１はフェッチアドレスＰＣに応答して分岐命令語のターゲットアドレス（Ｔａｒｇｅｔ Ａｄｄｒｅｓｓ）で分岐するか（ｔａｋｅｎ）または順次的な次の命令語を実行するか（ｎｏｔ−ｔａｋｅｎ）を予測する。分岐予測制御ロジック５１は予測結果によって分岐予測アドレス（ＰＲＥＡＤＤＲ）を発生する。
【００２６】
また、分岐予測制御ロジック５１には実行ユニット（図１参照）４０から実際分岐アドレス（ＮＥＸＴＡＤＤＲ）が入力される。分岐予測制御ロジック５１は分岐予測アドレス（ＰＲＥＡＤＤＲ）と実際分岐アドレス（ＮＥＸＴＡＤＤＲ）とが一致するか否かを判断する。分岐予測制御ロジック５１は判断結果によって分岐ターゲットバッファ５３及びアップ／ダウンサチュレイティングカウンタ５５を制御する。
【００２７】
分岐予測制御ロジック５１は分岐命令語の分岐が一定の傾向性を有する点に基づいて、以前の分岐予測を参照して後に分岐される方向を予測する。分岐予測制御ロジック５１はアップ／ダウンサチュレイティングカウンタ５５を用いて分岐予測情報を得る。分岐予測制御ロジック５１の分岐予測方法及びアップ／ダウンサチュレイティングカウンタ５５の動作は図３を参照して説明する。
【００２８】
図３は図２に示した分岐予測制御ロジック５１の分岐予測方法を例として説明するための状態図である。分岐予測制御ロジック５１はアップ／ダウンサチュレイティングカウンタ５５（図２参照）を利用して分岐予測情報を得る。ここで、アップ／ダウンサチュレイティングカウンタ５５は２ビットカウンタである。
【００２９】
図３を参照すると、アップ／ダウンサチュレイティングカウンタ５５は‘００’、‘０１’、‘１０’、‘１１’の四つの状態を有する。‘００’状態と‘０１’状態とはノットテイクン状態（Ｎｏｔ−Ｔａｋｅｎ ｓｔａｔｅ)である。ここで、‘００’状態は強いノットテイクン状態（Ｓｔｒｏｎｇｌｙ Ｎｏｔ＿Ｔａｋｅｎ ｓｔａｔｅ）と言い、‘０１’状態は弱いノットテイクン状態（Ｗｅａｋｌｙ Ｎｏｔ＿Ｔａｋｅｎ ｓｔａｔｅ）と言う。また、‘１１’状態と‘１０’状態とはテイクン状態（Ｔａｋｅｎ ｓｔａｔｅ）である。ここで、‘１１’状態は強いテイクン状態（Ｓｔｒｏｎｇｌｙ Ｔａｋｅｎ ｓｔａｔｅ）と言い、‘１０’状態は弱いテイクン状態（Ｗｅａｋｌｙ Ｔａｋｅｎ ｓｔａｔｅ）と言う。
【００３０】
アップ／ダウンサチュレイティングカウンタ５５には分岐予測制御ロジック５１からアップ制御信号ＵＰ及びダウン制御信号ＤＯＷＮが入力される。アップ／ダウンサチュレイティングカウンタ５５はアップ制御信号ＵＰまたはダウン制御信号ＤＯＷＮに応答して現在状態を変える。すなわち、アップ／ダウンサチュレイティングカウンタ５５はアップ制御信号ＵＰに応答して現在状態をテイクン状態方向に変換し、ダウン制御信号ＤＯＷＮに応答してノットテイクン状態方向に変換する。但し、アップ／ダウンサチュレイティングカウンタ５５は'００'状態でダウン制御信号ＤＯＷＮが入力されても、‘００’状態をそのまま維持し、‘１１’状態でアップ制御信号ＵＰが入力されても‘１１’状態をそのまま維持する。
【００３１】
また図２を参照すると、分岐予測制御ロジック５１はアップ／ダウンサチュレイティングカウンタ５５を用いて分岐予測情報を得る。すなわち、分岐予測制御ロジック５１は分岐結果によってアップ制御信号ＵＰまたはダウン制御信号ＤＯＷＮをアップ／ダウンサチュレイティングカウンタ５５に提供する。すなわち、分岐結果がテイクンである場合に、分岐予測制御ロジック５１はアップ制御信号ＵＰを発生する。この時、アップ／ダウンサチュレイティングカウンタ５５はカウント値を増加する。一方、分岐結果がノットテイクンである場合、分岐予測制御ロジック５１はダウン制御信号ＤＯＷＮを発生する。この時、アップ／ダウンセチュレイキングカウンタ５５はカウント値を減少する。
【００３２】
分岐ターゲットバッファ５３はアップ／ダウンサチュレイティングカウンタ５５のカウント値によって分岐予測を実行する。すなわち、分岐ターゲットバッファ５３はアップ／ダウンサチュレイティングカウンタ５５のカウント値が‘００’または‘０１’である場合にはノットテイクンで分岐予測を実行し、‘１１’または‘１０’である場合にはテイクンで分岐予測を実行する。分岐ターゲットバッファ５３の内部構成及び動作原理は図４を参照して詳細に説明する。
【００３３】
図４は図２に示した分岐ターゲットバッファを例として示すブロック図である。図４を参照すると、分岐ターゲットバッファ５３はメモリセルアレイ１００、センスアンプイネーブル回路２００、デコーダ３００、及びセンスアンプ４００を含む。分岐ターゲットバッファ５３はＳＲＡＭ、ＤＲＡＭなどのようなランダムアクセスが可能なメモリ（ＲＡＭ）として実現することができる。以下では、ＳＲＡＭで実現された分岐ターゲットバッファ５３を説明する。
【００３４】
メモリセルアレイ１００は複数のメモリセル（図示せず）を含む。ここで、メモリセルはよく知られたＳＲＡＭセルである。メモリセルアレイ１００は第１及び第２貯蔵領域１１０、１２０を有する。第１貯蔵領域１１０は分岐アドレス（Ｂｒａｎｃｈ Ａｄｄｒｅｓｓ）を貯蔵する。第２貯蔵領域１２０はターゲットアドレス（Ｔａｒｇｅｔ Ａｄｄｒｅｓｓ）を貯蔵する。ここで、ターゲットアドレスは実際に分岐されるアドレスである。メモリセルアレイ１００はワードラインＷＬを介してデコーダ３００と接続され、ビットラインＢＬを介してセンスアンプ４００と接続される。
【００３５】
センスアンプイネーブル回路２００はメモリセルアレイ１００とデコーダ３００との間に位置する。センスアンプイネーブル回路２００は分岐予測情報貯蔵回路２１０及びイネーブル信号発生回路２２０を含む。分岐予測情報貯蔵回路２１０はワードラインＷＬ０〜ＷＬｎに接続され、分岐予測情報を貯蔵する。ここで、分岐予測情報はテイクン情報またはノットテイクン情報である。分岐予測情報貯蔵回路２１０は１ビットＳＲＡＭ セルとして実現することができる。イネーブル信号発生回路２２０は分岐予測情報貯蔵回路２１０に貯蔵された分岐予測情報によってセンスアンプイネーブル信号ＳＡＥＮを発生する。イネーブル信号発生回路２１０はセンスアンプイネーブル信号ＳＡＥＮをセンスアンプ４００に提供する。センスアンプイネーブル回路２００の構成及び動作は図５を参照して詳細に説明する。
【００３６】
デコーダ３００はワードラインＷＬ０〜ＷＬｎを介してメモリセルアレイ１００と接続される。デコーダ３００はフェッチアドレスＰＣが入力され、選択されたワードラインＷＬｉにワードライン電圧を提供する。
【００３７】
センスアンプ４００はビットラインＢＬ１、ＢＬ２を介してメモリセルアレイ１００と接続される。また、センスアンプ４００はビットラインＢｉｔ、／Ｂｉｔを介して分岐予測情報貯蔵回路２１０と接続される。センスアンプ４００は分岐予測制御ロジック５１（図２参照）の制御によって、メモリセルアレイ１００からターゲットアドレスを読み出す。センスアンプ４００はメモリセルアレイ１００及び分岐予測情報貯蔵回路２１０に貯蔵されたデータをアップデートする。一方、センスアンプ４００はイネーブル信号発生回路２２０から提供されるセンスアンプイネーブル信号ＳＡＥＮに応答して、選択されたメモリセルに対するアクセスを禁止する。これは分岐予測情報がノットテイクンである場合に、メモリセルに対するアクセスを禁止して、分岐ターゲットバッファ５３における消費電力を減らすためである。
【００３８】
図５は図４に示したセンスアンプイネーブル回路を例示的に示す回路図である。図５に示したセンスアンプイネーブル回路２１１、２２１は選択されたワードラインＷＬｉに接続され、１ビットＳＲＡＭセル２１１とイネーブル信号発生回路２２１とを含む。
【００３９】
１ビットＳＲＡＭセル２１１は分岐予測情報を貯蔵している。分岐予測情報はテイクンまたはノットテイクン情報である。テイクンまたはノットテイクン情報はアップ／ダウンサチュレイティングカウンタ５５（図２参照）の上位ビットに貯蔵されたデータと同一である。図３において説明したように、アップ／ダウンサチュレイティングカウンタ５５のカウント値が‘００’または‘０１’であれば、１ビットＳＲＡＭセル２１１はノットテイクン情報を貯蔵する。一方、アップ／ダウンサチュレイティングカウンタ５５のカウント値が‘１１’または‘１０’であれば、１ビットＳＲＡＭセル２１１はテイクン情報を貯蔵する。
【００４０】
図５を参照すると、１ビットＳＲＡＭセル２１１が第１及び第２ＰＭＯＳトランジスタＰ１、Ｐ２、第１ないし第４ＮＭＯＳトランジスタＮ１〜Ｎ４で構成される。第３及び第４ＮＭＯＳトランジスタＮ３、Ｎ４のゲートには選択されたワードラインＷＬｉが接続され、ドレインにはビットラインＢｉｔ、／Ｂｉｔが接続される。そして第２ＰＭＯＳトランジスタＰ２及び第２ＮＭＯＳトランジスタＮ２のドレインには１ビットの分岐予測情報が貯蔵される。すなわち、分岐予測情報がテイクンである場合にはデータ‘１’が貯蔵され、ノットテイクンである場合にはデータ‘０’が貯蔵される。
【００４１】
イネーブル信号発生回路２２１は１ビットＳＲＡＭセル２１１に貯蔵された分岐予測情報によってセンスアンプイネーブル信号ＳＡＥＮを発生する。分岐予測情報がテイクンである場合のみ、センスアンプイネーブル信号ＳＡＥＮを発生し、ノットテイクンである場合にはセンスアンプイネーブル信号ＳＡＥＮを発生しない。図５を参照すると、イネーブル信号発生回路２２１は第１及び第２ゲートＧ１、Ｇ２を含む。
【００４２】
第１ゲートＧ１は分岐予測情報及び書き込み信号ｗｒｉｔｅが入力されてＯＲ演算を実行する。ここで、書き込み信号ｗｒｉｔｅは分岐予測制御ロジック５１（第２参照）から提供される。第１ゲートＧ１はハイレベルの書き込み信号ｗｒｉｔｅが入力される場合には、分岐予測情報にかかわらずハイレベルの出力信号を発生する。第２ゲートＧ２は第１ゲートＧ１の出力信号及び選択されたワードラインＷＬｉのワードライン電圧が入力されてＡＮＤ演算を実行する。
【００４３】
イネーブル信号発生回路２２１は分岐予測情報がテイクンであるか書き込み信号が入力される場合にセンスアンプイネーブル信号ＳＡＥＮを発生する。しかし、イネーブル信号発生回路２２１は読み出し動作の時に１ビットＳＲＡＭセル２１１にノットテイクン情報が貯蔵された場合にはセンスアンプイネーブル信号ＳＡＥＮを発生しない。これは分岐予測の結果がノットテイクンである場合には選択されたメモリセルをアクセスしないため、消費電力を減らすためである。一方、イネーブル信号発生回路２２１は書き込み信号ｗｒｉｔｅが活性化された場合には分岐予測情報に構わずにセンスアンプイネーブル信号ＳＡＥＮを発生して正常に書き込み動作を実行するようにする。
【００４４】
本発明による分岐ターゲットバッファは分岐予測し、分岐予測情報によってセンスアンプをイネーブルする。分岐ターゲットバッファは分岐予測情報を貯蔵するために１ビットＳＲＡＭセルを具備する。１ビットＳＲＡＭセルはメモリセルアレイとデコーダとの間のワードラインに接続される。分岐ターゲットバッファは分岐予測情報がテイクンである場合にはセンスアンプをイネーブルし、ノットテイクンである場合にはセンスアンプをディセーブルする。したがって、分岐予測情報がノットテイクンである場合には選択されたメモリセルはアクセスされない。しかし、書き込み動作の時にはテイクンまたはノットテイクンにかかわらず書き込み動作が進行しなければならないため、選択されたメモリセルはアクセスされる。
【００４５】
本発明による分岐ターゲットバッファによれば、１ビットＳＲＡＭセルに貯蔵された分岐予測情報がノットテイクンである場合にはメモリセルアレイをアクセスしないため、消費電力を減らすことができる。また、１ビットＳＲＡＭセルに分岐予測情報を貯蔵するため、複雑な制御回路や大きな遅延時間なしで、ワードラインの制御のみで分岐ターゲットバッファで消費する電力を減少することができる。
【００４６】
ＥＥＭＢＣベンチマーク（ｂｅｎｃｈｍａｒｋ）に対するシミュレーションによって得た結果によれば、約４０％以上がノットテイクンに予測されることを確認することができ、これを勘案すれば、分岐ターゲットバッファをアクセスするのに消費する電力の４０％程度を節減することができる。
【００４７】
なお、本発明の詳細な説明においては具体的な実施形態に関して説明したが、本発明の範囲から逸脱しない限度内で多様な変形が可能であるため、本発明の範囲は上述の実施形態に限定されず、特許請求範囲だけでなくこの発明の特許請求範囲と均等な範囲によって決めなければならない。
【図面の簡単な説明】
【００４８】
【図１】本発明による分岐予測回路を含むマイクロプロセッサを示すブロック図である。
【図２】図１に示した分岐予測回路を示すブロック図である。
【図３】図２に示したアップ／ダウンサチュレイティングカウンタを用いた分岐予測方法を示す状態図である。
【図４】図２に示した分岐ターゲットバッファを示すブロック図である。
【図５】図４に示したセンスアンプイネーブル回路を示す回路図である。
【符号の説明】
【００４９】
１０  プログラムメモリ
２０  命令語フェッチユニット
３０  命令語デコーダ
４０  実行ユニット
５０  分岐予測回路
５１  分岐予測制御ロジック
５３  分岐ターゲットバッファ
５５  アップ／ダウンサチュレイティングカウンタ
１００  メモリセルアレイ
２００  センスアンプイネーブル回路
２１０  分岐予測情報貯蔵回路
２２０  イネーブル信号発生回路
３００  デコーダ
４００  センスアンプ
【図１】
2007220099.tif 000003
【図２】
2007220099.tif 000004
【図３】
2007220099.tif 000005
【図４】
2007220099.tif 000006
【図５】
2007220099.tif 000007