(57)【要約】      （修正有）【課題】命令語キャッシュと命令語変換参照バッファの制御器、及びその制御方法の提供。【解決手段】分岐予測器は、プロセッサコアから出力される現在命令語に対する分岐予測を行って、最終分岐予測値を出力する。分岐ターゲットバッファは、分岐予測器による分岐予測と同時に、予測ターゲットアドレスを出力する。アドレス選択ユニットは、分岐予測の結果が“ｔａｋｅｎ”ではない現在命令語のアドレス及び予測ターゲットアドレスのうち、何れか一つを選択して出力する。分岐予測及び分岐ターゲットアドレス予測は、現在命令語の直前命令語は分岐命令語ではないという仮定下に、分岐予測及び分岐ターゲットアドレス予測が終了する前に始まり、アドレス選択ユニットから出力されるアドレスは、ダイナミック電圧スケーリングを使用する命令語キャッシュ、及び命令語変換参照バッファの対応するキャッシュラインをウェイクアップする。【選択図】図３
2006107507.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサコアと、
前記プロセッサコアから出力される現在命令語に対するアドレス分岐予測を行って、最終分岐予測値を出力する分岐予測器と、
前記分岐予測器による分岐予測と同時に前記プロセッサコアから出力される現在命令語に対するアドレスの分岐ターゲットアドレスを予測して、予測ターゲットアドレスを出力する分岐ターゲットバッファと、
前記分岐予測の結果が“ｔａｋｅｎ”ではない現在命令語のアドレス及び前記予測ターゲットアドレスのうち、何れか一つを選択して出力するアドレス選択ユニットと、を備え、
前記現在命令語のアドレスに対する分岐予測及び分岐ターゲットアドレス予測は、前記現在命令語の直前命令語が分岐命令語ではないという仮定下に、前記直前命令語のアドレスに対する分岐予測及び分岐ターゲットアドレス予測が終了する前に始まり、
前記アドレス選択ユニットから出力されるアドレスは、ダイナミック電圧スケーリングを使用する命令語キャッシュ、及び命令語変換参照バッファの対応するキャッシュラインをウェイクアップすることを特徴とする命令語キャッシュ及び命令語変換参照バッファの制御器。
【請求項２】
前記アドレス選択ユニットから出力されるアドレスは、前記ダイナミック電圧スケーリングを使用する命令語キャッシュ、及び命令語変換参照バッファの対応するサブバンクをウェイクアップすることを特徴とする請求項１に記載の命令語キャッシュ及び命令語変換参照バッファの制御器。
【請求項３】
前記アドレス選択ユニットは、
前記現在命令語アドレスの最下位ビット及び前記最終分岐予測値に応答して動作することを特徴とする請求項１に記載の命令語キャッシュ及び命令語変換参照バッファの制御器。
【請求項４】
前記アドレス選択ユニットは、
前記現在命令語に対するアドレスの最下位ビットと前記最終予測値とに対して排他的論理和演算を行って、選択値を出力する排他的論理和ゲートと、
前記選択値に応答して、前記分岐予測の結果が“ｔａｋｅｎ”ではない現在命令語のアドレス及び前記予測ターゲットアドレスのうち、何れか一つを選択して出力するマルチプレクサと、を備えることを特徴とする請求項３に記載の命令語キャッシュ及び命令語変換参照バッファの制御器。
【請求項５】
前記分岐選択器は、
以前分岐命令語のアドレスに対する過去分岐予測値を保存するグローバルヒストリーレジスタと、
前記現在命令語のアドレスと、前記グローバルヒストリーレジスタに保存されたアドレスとに対して排他的論理和演算を行って、インデックス値を出力する第１排他的論理和ゲートと、
前記以前分岐命令語のアドレスに対する分岐予測値を保存し、前記インデックス値が指定する現在命令語のアドレスに対する分岐予測値を出力する分岐予測テーブルと、
前記現在命令語アドレスの最下位ビットと、前記グローバルヒストリーレジスタに保存されたアドレスの最下位ビットとに対して排他的論理和演算を行って、選択値を出力する第２排他的論理和ゲートと、
前記選択値に応答して、前記分岐予測値のうち、何れか一つを前記最終分岐予測値として出力するマルチプレクサと、を備えることを特徴とする請求項１に記載の命令語キャッシュ及び命令語変換参照バッファの制御器。
【請求項６】
前記分岐選択器は、
前記現在命令語のアドレスを保存するアドレスレジスタを更に備えることを特徴とする請求項５に記載の命令語キャッシュ及び命令語変換参照バッファの制御器。
【請求項７】
前記分岐予測テーブルの一ラインに含まれた二つの順次的なエントリは、前記インデックス値により指定されることを特徴とする請求項５に記載の命令語キャッシュ及び命令語変換参照バッファの制御器。
【請求項８】
前記分岐ターゲットバッファは、
前記現在命令語に対するアドレスの仮想インデックスビットにより指定される以前分岐命令語のアドレスに対するターゲットアドレス、及び前記ターゲットアドレスに対応するターゲットタグを保存する分岐ターゲットテーブルと、
前記現在命令語に対するアドレスの最下位ビットに応答して、前記仮想インデックスビットにより指定されるターゲットタグのうち、何れか一つを出力する第１マルチプレクサと、
前記現在命令語に対するアドレスの物理タグビットと、前記第１マルチプレクサから出力されるターゲットタグとを比較して、イネーブル信号を出力する比較器と、
前記現在命令語に対するアドレスの最下位ビットに応答して、前記仮想インデックスビットにより指定されるターゲットアドレスのうち、何れか一つを出力する第２マルチプレクサと、
前記イネーブル信号の活性化に応答して、前記第２マルチプレクサから出力されるターゲットアドレスをバッファリングして、前記予測ターゲットアドレスとして出力するバッファと、を備えることを特徴をする請求項１に記載の命令語キャッシュ及び命令語変換参照バッファの制御器。
【請求項９】
前記分岐ターゲットバッファは、
前記現在命令語のアドレスを保存するアドレスレジスタを更に備えることを特徴とする請求項８に記載の命令語キャッシュ及び命令語変換参照バッファの制御器。
【請求項１０】
前記分岐ターゲットテーブルの一ラインに含まれた二つの順次的なエントリは、前記仮想インデックスビットにより指定されることを特徴とする請求項８に記載の命令語キャッシュ及び命令語変換参照バッファの制御器。
【請求項１１】
（ａ）現在命令語の直前命令語を分岐命令語ではないと仮定するステップと、
（ｂ）前記現在命令語のアドレスに対する分岐予測及び分岐ターゲットアドレス予測を同時に行うステップと、
（ｃ）前記（ｂ）ステップの分岐予測の結果が“ｔａｋｅｎ”であるか否かを判断するステップと、
（ｄ）前記（ｃ）ステップで”ｔａｋｅｎ”であると判断されれば、前記（ｂ）ステップでの分岐ターゲットアドレス予測の結果である予測ターゲットアドレスが指定する命令語キャッシュのキャッシュライン及び命令語変換参照バッファのキャッシュラインをウェイクアップするステップと、
（ｅ）前記（ｃ）ステップで“ｔａｋｅｎ”ではないと判断されれば、順次的な現在命令語のアドレスが指定する命令語キャッシュのキャッシュライン及び命令語変換参照バッファのキャッシュラインをウェイクアップするステップと、を含み、
前記現在命令語のアドレスに対する分岐予測及び分岐ターゲットアドレス予測は、前記直前命令語のアドレスに対する分岐予測及び分岐ターゲットアドレス予測が終了する前に始まり、
前記命令語キャッシュ及び命令語変換参照バッファは、ダイナミック電圧スケーリングを使用することを特徴とする命令語キャッシュ及び命令語変換参照バッファの制御方法。
【請求項１２】
前記命令語キャッシュ及び命令語変換参照バッファの制御方法は、
前記現在命令語のアドレスを、プロセッサコアから前記分岐予測を行う分岐予測器と、前記分岐ターゲットアドレス予測を行う分岐ターゲットバッファとに同時に伝達するステップを更に含むことを特徴とする請求項１１に記載の命令語キャッシュ及び命令語変換参照バッファの制御方法。
【請求項１３】
前記（ｄ）ステップは、前記予測ターゲットアドレスが指定する命令語キャッシュのサブバンク及び命令語変換参照バッファのサブバンクをウェイクアップし、
前記（ｅ）ステップは、前記順次的な現在命令語のアドレスが指定する命令語キャッシュのサブバンク及び命令語変換参照バッファのサブバンクをウェイクアップすることを特徴とする請求項１１に記載の命令語キャッシュ及び命令語変換参照バッファの制御方法。
【請求項１４】
前記（ｂ）ステップの分岐予測に使用される分岐予測テーブルの一ラインに含まれた二つの順次的なエントリは、一つのインデックス値により指定されることを特徴とする請求項１１に記載の命令語キャッシュ及び命令語変換参照バッファの制御方法。
【請求項１５】
前記（ｂ）ステップの分岐ターゲットアドレス予測に使用される分岐ターゲットテーブルの一ラインに含まれた二つの順次的なエントリは、前記現在命令語に対するアドレスの仮想インデックスビットにより指定されることを特徴とする請求項１１に記載の命令語キャッシュ及び命令語変換参照バッファの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マイクロプロセッサに係り、より詳細には、ダイナミック電圧スケーリングを使用する命令語キャッシュ及び命令語変換参照バッファ（以下、命令語ＴＬＢ（Ｔｒａｎｓｌａｔｉｏｎ Ｌｏｏｋ−ａｓｉｄｅ Ｂｕｆｆｅｒ）という）を制御する制御器及びその制御方法に関する。
【背景技術】
【０００２】
オン−チップキャッシュは、マイクロプロセッサの全体電力消費の多い部分を占める。配線幅が狭くなるにつれ、オン−チップキャッシュで消費される電力の多い部分は漏れ電力である。漏れ電力を減少させるためのオン−チップキャッシュとして、ドラウジーキャッシュが提案された。
【０００３】
図１は、ダイナミック電圧スケーリング（Ｄｙｎａｍｉｃ Ｖｏｌｔａｇｅ Ｓｃａｌｉｎｇ：以下、ＤＶＳ）を使用するドラウジーキャッシュを示す。図１に示すドラウジーキャッシュは、非特許文献１に記載されている。
ドラウジーキャッシュは、それぞれのキャッシュライン（ｃａｃｈｅ ｌｉｎｅ）に二つの異なる供給電圧を供給するＤＶＳ技術を使用する。このようなＤＶＳ技術は、オン−チップキャッシュの漏れ電力の消費を減少させうる。
【０００４】
図２は、一般キャッシュの電力消費とドラウジーキャッシュの電力消費とを比較するグラフを示す。
図２を参照すれば、一般キャッシュの全体電力消費で漏れ電力は、ダイナミック電力より相対的に多い部分を占める。それに対し、ドラウジーキャッシュの漏れ電力は、キャッシュラインに供給される動作電圧の減少によって減少し、全体電力消費の少ない部分を占める。
【０００５】
また、図１を参照すれば、ドラウジーキャッシュは、、ＤＶＳの実現のために、ドラウジービット、電圧制御器、及びワードラインゲーティング回路を別途に備える。
ドラウジービットは、ＳＲＡＭｓに含まれたメモリセルに供給される電圧を制御する。電圧制御器は、ドラウジービットの状態に基づいて、キャッシュラインに連結されたメモリセルアレイに供給される高い供給電圧（１Ｖ）及び低い供給電圧（０.３Ｖ）を決定する。ワードラインゲーティング回路は、メモリの内容を破壊できるキャッシュラインへの接近を遮断するために使用される。
【０００６】
ドラウジーキャッシュは、ノーマルモードで１Ｖで動作し、ドラウジーモードでは０.３Ｖで動作する。ドラウジーキャッシュは、ドラウジーモードでキャッシュラインの状態を維持するが、安定的にリード動作及びライト動作を行えない。したがって、ドラウジーキャッシュは、リード動作及びライト動作を行うために、ドラウジーモードからノーマルモードへのモード転換が必要である。このようなモード転換に必要な時間は、ウェイクアップ時間（または、ウェイクアップ遷移レイテンシー）として１サイクルである。したがって、ウェイクアップされるドラウジーキャッシュのキャッシュラインが誤って予測される場合、１サイクルの性能ペナルティ（または、ウェイクアップペナルティ）が発生する。
【非特許文献１】ＩＳＣＡ（Ｉｎｔｅｒｎａｔｉｏｎａｌ Ｓｙｍｐｏｓｉｕｍ ｏｎ Ｃｏｍｐｕｔｅｒ Ａｒｃｈｉｔｅｃｔｕｒｅ）２００２に発表された“ｄｒｏｗｓｙ ｃａｃｈｅｓ”論文
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本発明が達成しようとする技術的課題は、１サイクルのペナルティを防止（または、除去）できる命令語キャッシュと命令語ＴＬＢの制御器、及びその制御方法を提供するところにある。
【課題を解決するための手段】
【０００８】
前記技術的課題を達成するために、本発明に係る半導体装置の命令語キャッシュ及び命令語ＴＬＢの制御器は、プロセッサコアと、前記プロセッサコアから出力される現在命令語に対するアドレスの分岐予測を行って、最終分岐予測値を出力する分岐予測器と、前記分岐予測器による分岐予測と共に、前記プロセッサコアから出力される現在命令語に対するアドレスの分岐ターゲットアドレスを予測して、予測ターゲットアドレスを出力する分岐ターゲットバッファ（Ｂｒａｎｃｈ Ｔａｒｇｅｔ Ｂｕｆｆｅｒ：以下、ＢＴＢ）と、前記分岐予測の結果が“ｔａｋｅｎ”ではない現在命令語のアドレス及び前記予測ターゲットアドレスのうち、何れか一つを選択して出力するアドレス選択ユニットと、を備え、前記現在命令語のアドレスに対する分岐予測及び分岐ターゲットアドレス予測は、前記現在命令語の直前命令語は分岐命令語ではないという仮定下に、前記直前命令語のアドレスに対する分岐予測及び分岐ターゲットアドレス予測が終了する前に始まり、前記アドレス選択ユニットから出力されるアドレスは、ＤＶＳを使用する命令語キャッシュ及び命令語ＴＬＢの対応するキャッシュラインをウェイクアップすることを特徴とする。
【０００９】
好ましい実施例によれば、前記アドレス選択ユニットから出力されるアドレスは、前記ＤＶＳを使用する命令語キャッシュ及び命令語ＴＬＢの対応するサブバンクをウェイクアップする。
好ましい実施例によれば、前記アドレス選択ユニットは、前記現在命令語アドレスの最下位ビット（Ｌｅａｓｔ Ｓｉｇｎｉｆｉｃａｎｔ Ｂｉｔ：以下、ＬＳＢ）及び前記最終分岐予測値に応答して動作する。
【００１０】
好ましい実施例によれば、前記分岐選択器は、以前分岐命令語のアドレスに対する過去分岐予測値を保存するグローバルヒストリーレジスタと、前記現在命令語のアドレスと、前記グローバルヒストリーレジスタに保存されたアドレスとに対して排他的論理和演算を行って、インデックス値を出力する第１排他的論理和ゲートと、前記以前分岐命令語のアドレスに対する分岐予測値を保存し、前記インデックス値が指定する現在命令語のアドレスに対する分岐予測値を出力する分岐予測テーブルと、前記現在命令語アドレスのＬＳＢと、前記グローバルヒストリーレジスタに保存されたアドレスのＬＳＢとに対して排他的論理和演算を行って、選択値を出力する第２排他的論理和ゲートと、前記選択値に応答して、前記分岐予測値のうち、何れか一つを前記最終分岐予測値として出力するマルチプレクサと、を備える。
【００１１】
好ましい実施例によれば、前記分岐予測テーブルの一ラインに含まれた二つの順次的なエントリは、前記インデックス値により指定される。
【００１２】
好ましい実施例によれば、前記ＢＴＢは、前記現在命令語に対するアドレスの仮想インデックスビットにより指定される以前分岐命令語のアドレスに対するターゲットアドレス、及び前記ターゲットアドレスに対応するターゲットタグを保存する分岐ターゲットテーブルと、前記現在命令語に対するアドレスのＬＳＢに応答して、前記仮想インデックスビットにより指定されるターゲットタグのうち、何れか一つを出力する第１マルチプレクサと、前記現在命令語に対するアドレスの物理タグビットと、前記第１マルチプレクサから出力されるターゲットタグとを比較して、イネーブル信号を出力する比較器と、前記現在命令語に対するアドレスのＬＳＢに応答して、前記仮想インデックスビットにより指定されるターゲットアドレスのうち、何れか一つを出力する第２マルチプレクサと、前記イネーブル信号の活性化に応答して、前記第２マルチプレクサから出力されるターゲットアドレスをバッファリングして、前記予測ターゲットアドレスとして出力するバッファと、を備える。
【００１３】
好ましい実施例によれば、前記分岐ターゲットテーブルの一ラインに含まれた二つの順次的なエントリは、前記仮想インデックスビットにより指定される。
前記技術的課題を達成するために、本発明に係る半導体装置の命令語キャッシュ及び命令語ＴＬＢの制御方法は、（ａ）現在命令語の直前命令語を分岐命令語ではないと仮定するステップと、（ｂ）前記現在命令語のアドレスに対する分岐予測及び分岐ターゲットアドレス予測を同時に行うステップと、（ｃ）前記（ｂ）ステップの分岐予測の結果が“ｔａｋｅｎ”であるか否かを判断するステップと、（ｄ）前記（ｃ）ステップで、”ｔａｋｅｎ”であると判断されれば、前記（ｂ）ステップでの分岐ターゲットアドレス予測の結果である予測ターゲットアドレスが指定する命令語キャッシュのキャッシュライン、及び命令語ＴＬＢのキャッシュラインをウェイクアップするステップと、（ｅ）前記（ｃ）ステップで、“ｔａｋｅｎ”ではないと判断されれば、順次的な現在命令語のアドレスが指定する命令語キャッシュのキャッシュライン、及び命令語ＴＬＢのキャッシュラインをウェイクアップするステップと、を含み、前記現在命令語のアドレスに対する分岐予測及び分岐ターゲットアドレス予測は、前記直前命令語のアドレスに対する分岐予測及び分岐ターゲットアドレス予測が終了する前に始まり、前記命令語キャッシュ及び命令語ＴＬＢは、ＤＶＳを使用することを特徴とする。
【００１４】
好ましい実施例によれば、前記（ｄ）ステップは、前記予測ターゲットアドレスが指定する命令語キャッシュのサブバンク及び命令語ＴＬＢのサブバンクをウェイクアップし、前記（ｅ）ステップは、前記順次的な現在命令語のアドレスが指定する命令語キャッシュのサブバンク及び命令語ＴＬＢのサブバンクをウェイクアップする。
【００１５】
好ましい実施例によれば、前記（ｂ）ステップの分岐予測に使用される分岐予測テーブルの一ラインに含まれた二つの順次的なエントリは、一つのインデックス値により指定される。
好ましい実施例によれば、前記（ｂ）ステップの分岐ターゲットアドレス予測に使用される分岐ターゲットテーブルの一ラインに含まれた二つの順次的なエントリは、前記現在命令語に対するアドレスの仮想インデックスビットにより指定される。
【発明の効果】
【００１６】
本発明に係る命令語キャッシュと命令語ＴＬＢの制御器、及びその制御方法は、分岐予測及び分岐ターゲットアドレス予測を１サイクル予め行うため、ＤＶＳを使用する命令語キャッシュ及び命令語ＴＬＢのウェイクアップペナルティを防止できる。
【発明を実施するための最良の形態】
【００１７】
本発明と、本発明の動作上の利点及び本発明の実施によって達成される目的を十分に理解するためには、本発明の好ましい実施例を例示する添付図面及び添付図面に記載された内容を参照しなければならない。
以下、添付した図面を参照して本発明の好ましい実施例を説明することで、本発明を詳細に説明する。各図面に付された同一参照符号は、同一部材を示す。
【００１８】
図３は、本発明の一実施例に係る命令語キャッシュ及び命令語ＴＬＢの制御器を示す。本発明に係る命令語キャッシュ及び命令語ＴＬＢの制御器１００は、プロセッサコア１１０、分岐予測器１２０、ＢＴＢ １４０、及びアドレス選択ユニット１６０を備える。プロセッサコア１１０は、中央処理装置（Ｃｅｎｔｒａｌ Ｐｒｏｃｅｓｓｉｎｇ Ｕｎｉｔ：ＣＰＵ）とも言う。
【００１９】
プロセッサコア１１０は、分岐予測器１２０に現在命令語に対するアドレスＡＤＤＲを伝達し、同時にＢＴＢ １４０に現在命令語に対するアドレスＡＤＤＲを伝達する。この時、現在命令語の直前命令語は、分岐命令語ではないと仮定する。なぜなら、応用プログラムがプロセッサコア１１０により実際に実行される時、分岐命令語が存在している確率より、存在していない確率が１０倍以上高いためである。
【００２０】
分岐予測器１２０は、現在命令語のアドレスＡＤＤＲに対する分岐予測を行って最終分岐予測値ＰＲＥＤを出力する。分岐予測器１２０は、１サイクル予め分岐予測を行える。なぜなら、現在命令語の直前命令語が分岐命令語ではないため、分岐予測器１２０に含まれたグローバルヒストリーレジスタに保存されたアドレス及び分岐予測テーブルのエントリがアップデートされずに、一つのインデックス値により分岐予測テーブルの一ラインに含まれた二つの順次的なエントリが指定されるためである。
【００２１】
ＢＴＢ １４０は、現在命令語のアドレスＡＤＤＲに対する分岐ターゲットアドレス予測を行って、予測ターゲットアドレスＴ＿ＡＤＤＲを出力する。ＢＴＢ １４０は、１サイクル予め分岐ターゲットアドレス予測を行える。なぜなら、現在命令語の直前命令語が分岐命令語ではないため、ＢＴＢ １４０に含まれた分岐ターゲットテーブルに保存されたターゲットアドレスがアップデートされずに、一つの命令語に対するアドレスの仮想インデックスビットにより、分岐ターゲットテーブルの一ラインに含まれた二つの順次的なエントリが指定されるためである。
【００２２】
アドレス選択ユニット１６０は、排他的論理和ゲート（ＸＯＲ）１７０及びマルチプレクサ１８０を備える。アドレス選択ユニット１６０は、最終分岐予測値ＰＲＥＤ及び分岐予測器による分岐予測結果が“ｔａｋｅｎ”ではない現在命令語に対するアドレスＡＤＤＲのＬＳＢに応答して、予測ターゲットアドレスＴ＿ＡＤＤＲ及び順次的な現在命令語のアドレスＡＤＤＲのうち、何れか一つを選択して出力する。
ＸＯＲ １７０は、最終分岐予測値ＰＲＥＤと、現在命令語に対するアドレスＡＤＤＲのＬＳＢとに対して排他的論理和演算を行って選択値ＳＥＬ１を出力する。
【００２３】
マルチプレクサ１８０は、選択値ＳＥＬ１に応答して、予測ターゲットアドレスＴ＿ＡＤＤＲ及び順次的な現在命令語のアドレスＡＤＤＲのうち、何れか一つを出力する。マルチプレクサ１８０から出力されるアドレスは、命令語ＴＬＢ ２００の対応するキャッシュライン、及び命令語キャッシュ３００の対応するキャッシュラインをウェイクアップする。一方、マルチプレクサ１８０から出力されるアドレスは、命令語ＴＬＢ ２００の対応するサブバンク、及び命令語キャッシュ３００の対応するサブバンクをウェイクアップすることも可能である。サブバンクは、キャッシュラインの集合をいう。
【００２４】
命令語ＴＬＢ ２００及び命令語キャッシュ３００は、図１についての説明で言及したＤＶＳを使用する。プロセッサコア１１０は、ウェイクアップされた命令語ＴＬＢ ２００のキャッシュライン、及び命令語キャッシュ３００のキャッシュラインからそれぞれ出力される命令語がタグマッチングされる時、命令語をフェッチする。
したがって、本発明に係る命令語キャッシュ及び命令語ＴＬＢの制御器は、１サイクル予め分岐予測及び分岐ターゲットアドレス予測を行うため、ＤＶＳを使用する命令語キャッシュ及び命令語ＴＬＢのウェイクアップペナルティを防止できる。
【００２５】
図４は、図３に示すプロセッサコアのフェッチサイクルと、従来のプロセッサコアのフェッチサイクルとを比較する図である。
図４を参照すれば、第一の場合は、ＤＶＳを使用しない命令語キャッシュ及び命令語ＴＬＢに対するプロセッサコアのフェッチサイクルを表わす。第二の場合は、命令語キャッシュ及び命令語ＴＬＢがＤＶＳを使用するが、本発明の制御器が適用されない時のプロセッサコアのフェッチサイクルを表わす。第三の場合は、命令語キャッシュ及び命令語ＴＬＢがＤＶＳを使用し、本発明の制御器が適用される時のプロセッサコアのフェッチサイクルを表わす。
【００２６】
第二の場合は、１サイクルのウェイクアップペナルティが発生するが、第三の場合は、分岐予測器参照及びＢＴＢ参照が１サイクル予め行われるため、１サイクルのウェイクアップペナルティが発生しない。
【００２７】
図５は、図３に示す分岐予測器を更に詳細に示す。
図５を参照すれば、分岐予測器１２０は、アドレスレジスタ１２１、グローバルヒストリーレジスタ１２２、第１ＸＯＲ １２３、分岐予測テーブル１２４、第２ＸＯＲ １２５、及びマルチプレクサ１２６を備える。
【００２８】
第１ＸＯＲ １２３は、アドレスレジスタ１２１に保存された現在命令語のアドレスＡＤＤＲと、グローバルヒストリーレジスタ１２２に保存されたアドレスとに対して排他的論理和演算を行って、インデックス値ＩＮＤを出力する。インデックス値ＩＮＤは、分岐予測テーブル１２４の特定エントリ（例えば、Ｋ及びＫ＋１）を指定する。グローバルヒストリーレジスタ１２２に保存されたアドレスは、以前分岐命令語に対する過去分岐予測値である。
【００２９】
分岐予測テーブル１２４は、一つのインデックス値ＩＮＤにより二つのエントリ（Ｋ、Ｋ＋１）が選択されるように、二つの順次的なエントリが一ラインに配置されている。したがって、現在命令語の直前命令語が分岐命令語ではなく、順次的な命令語である場合（すなわち、現在命令語の直前命令語のアドレスと現在命令語のアドレスＡＤＤＲとを比較する時、ＬＳＢのみが異なる場合）、グローバルヒストリーレジスタ１２２に保存されたアドレス、及び分岐予測テーブル１２４のエントリがアップデートされないため、現在命令語のアドレスに対する分岐予測に使用されるグローバルヒストリー及び分岐予測テーブル１２４のエントリと、直前命令語のアドレスに対する分岐予測に使用されるグローバルヒストリー及び分岐予測テーブル１２４のエントリとは同じである。その結果、それぞれの命令語のアドレスとグローバルヒストリーとの組合わせにより指定されるエントリは、分岐予測テーブル１２４の一ライン上に存在し、これは、一つのインデックス値ＩＮＤにより同時に指定されうる。したがって、直前命令語のアドレスに対する分岐予測が終了する前に、１サイクル予め現在命令語のアドレスに対する分岐予測が始まり得る。現在命令語の次の命令語の場合にも、前記直前命令語と現在命令語との関係についての説明が適用されうる。
【００３０】
したがって、分岐予測器１２０は、１サイクル予め現在命令語のアドレスＡＤＤＲに対して分岐予測を行える。
一方、分岐予測テーブル１２４で選択されたエントリ（Ｋ、Ｋ＋１）のＬＳＢが、現在命令語のアドレスＡＤＤＲに対する分岐予測値ＰＲＥＤ１、ＰＲＥＤ２に出力される。例えば、分岐予測値ＰＲＥＤ１、ＰＲＥＤ２のうち、何れか一つは、現在命令語のアドレスのための分岐予測値に、残りの一つは、次の命令語のアドレスのための分岐予測値として使用されうる。
【００３１】
第２ＸＯＲ １２５は、アドレスレジスタ１２１に保存された現在命令語に対するアドレスＡＤＤＲのＬＳＢと、グローバルヒストリーレジスタ１２２に保存されたアドレスのＬＳＢとに対して排他的論理和演算を行って、選択値ＳＥＬ２を出力する。
【００３２】
マルチプレクサ１２６は、選択値ＳＥＬ２に応答して分岐予測値ＰＲＥＤ１、ＰＲＥＤ２のうち、何れか一つを最終分岐予測値ＰＲＥＤに出力する。例えば、最終分岐予測値ＰＲＥＤが“１”である場合、現在命令語のアドレスに対する分岐予測が“ｔａｋｅｎ”となり、“０”である場合、現在命令語のアドレスに対する分岐予測が“ｕｎｔａｋｅｎ”となる。最終分岐予測値ＰＲＥＤは、次の分岐予測のために、グローバルヒストリーレジスタ１２２に保存されたアドレス及び分岐予測テーブル１２４のエントリをアップデートするのに使用される。
【００３３】
図６は、図３に示すＢＴＢを更に詳細に示す。
図６を参照すれば、ＢＴＢ １４０は、アドレスレジスタ１４１、分岐ターゲットテーブル１４２、第１マルチプレクサ１４３、比較器１４４、第２マルチプレクサ１４５、及びバッファ１４６を備える。
分岐ターゲットテーブル１４２は、以前分岐命令語のアドレスに対するターゲットアドレス（例えば、Ｂ、Ｄ）、及びターゲットアドレスに対応するターゲットタグ（例えば、Ａ、Ｃ）を保存する。
【００３４】
アドレスレジスタ１４１に保存された現在命令語アドレスＡＤＤＲの仮想インデックスビット１４１２は、分岐ターゲットテーブル１４２の一ラインに含まれた二つの順次的なエントリ（例えば、［Ａ、Ｂ］、［Ｃ、Ｄ］）を指定する。したがって、現在命令語の直前命令語が分岐命令語ではなくて、順次的な命令語である場合（すなわち、現在命令語の直前命令語のアドレスと、現在命令語のアドレスＡＤＤＲとを比較する時、ＬＳＢのみが異なる場合）、分岐ターゲットテーブル１４２のエントリがアップデートされないため、現在命令語のアドレスに対する分岐ターゲットアドレス予測に使用される分岐ターゲットテーブル１４２のエントリと、直前命令語のアドレスに対する分岐ターゲットアドレス予測に使用される分岐ターゲットテーブル１４２のエントリとは同じである。その結果、それぞれの命令語に対するアドレスの仮想インデックスビット１４１２により指定されるエントリは、分岐ターゲットテーブル１４２の一ライン上に存在し、これは、一つの仮想インデックスビット１４１２により同時に指定されうる。したがって、直前命令語のアドレスに対する分岐ターゲットアドレス予測が終了する前に、１サイクル予め現在命令語のアドレスに対する分岐ターゲットアドレス予測が始まり得る。現在命令語の次の命令語の場合にも、前記直前命令語と現在命令語との関係についての説明が適用されうる。
【００３５】
したがって、ＢＴＢ １４０は、１サイクル予め分岐ターゲットアドレス予測を行える。
第１マルチプレクサ１４３は、アドレスレジスタ１４１に保存された現在命令語アドレスＡＤＤＲのＬＳＢ１４１３に応答して、分岐ターゲットテーブル１４２から出力されるターゲットタグＡ、Ｃのうち、何れか一つを出力する。
【００３６】
比較器１４４は、アドレスレジスタ１４１に保存された現在命令語アドレスＡＤＤＲの物理タグビット１４１１と、第１マルチプレクサ１４３から出力されるターゲットタグとを比較して、イネーブル信号ＥＮを出力する。前記比較した値が一致すれば、イネーブル信号ＥＮは活性化される。
【００３７】
第２マルチプレクサ１４５は、アドレスレジスタ１４１に保存された現在命令語アドレスＡＤＤＲのＬＳＢ１４１３に応答して、分岐ターゲットテーブル１４２から出力されるターゲットアドレスＢ、Ｄのうち、何れか一つを出力する。
バッファ１４６は、アクティブされたイネーブル信号ＥＮに応答して、第２マルチプレクサ１４５から出力されるターゲットアドレスをバッファリングして予測ターゲットアドレスＴ＿ＡＤＤＲを出力する。
【００３８】
図７は、本発明の一実施例に係る命令語キャッシュ及び命令語ＴＬＢの制御方法を示すフローチャートである。図７に示す命令語キャッシュ及び命令語ＴＬＢの制御方法は、図３に示す命令語キャッシュ及び命令語ＴＬＢの制御器に適用されうる。
仮定ステップ（Ｓ１０５）によれば、現在命令語の直前命令語を分岐命令語ではないと仮定する。
伝達ステップ（Ｓ１１０）によれば、現在命令語のアドレスをプロセッサコアから分岐予測器とＢＴＢとに同時に伝達する。
【００３９】
予測ステップ（Ｓ１１５）によれば、現在命令語のアドレスに対する分岐予測及び分岐ターゲットアドレス予測を同時に行う。予測ステップ（Ｓ１１５）は、１サイクル予め行われ得る。なぜなら、現在命令語の直前命令語が分岐命令語ではないため、分岐予測器に含まれたグローバルヒストリーレジスタに保存されたアドレス及び分岐予測テーブルのエントリがアップデートされず、一つのインデックス値により分岐予測テーブルの一ラインに含まれた二つの順次的なエントリが指定され、ＢＴＢに含まれた分岐ターゲットテーブルのエントリがアップデートされず、一つの命令語に対するアドレスの仮想インデックスビットにより、分岐ターゲットテーブルの一ラインに含まれた二つの順次的なエントリが指定されるためである。
【００４０】
判断ステップ（Ｓ１２０）によれば、分岐予測結果が“ｔａｋｅｎ”であるか否かを判断する。判断ステップ（Ｓ１２０）で、分岐予測結果が“ｔａｋｅｎ”であると判断されれば、第１ウェイクアップステップ（Ｓ１２５）に進む。判断ステップで、分岐予測結果が“ｔａｋｅｎ”ではないと判断されれば（すなわち、現在命令語のアドレスが分岐命令語のアドレスではないか、または現在命令語のアドレスに対する分岐予測結果が“ｕｎｔａｋｅｎ”（または、“ｎｏｔ−ｔａｋｅｎ”）であると判断されれば）、第２ウェイクアップステップ（Ｓ１３０）に進む。
【００４１】
第１ウェイクアップステップ（Ｓ１２５）によれば、予測ターゲットアドレスが指定する命令語キャッシュのキャッシュライン、及び命令語ＴＬＢのキャッシュラインをウェイクアップする。一方、第１ウェイクアップステップ（Ｓ１２５）は、予測ターゲットアドレスが指定する命令語キャッシュのサブバンク及び命令語ＴＬＢのサブバンクをウェイクアップすることも可能である。サブバンクは、キャッシュラインの集合をいう。
【００４２】
第２ウェイクアップステップ（Ｓ１３０）によれば、順次的な現在命令語のアドレスが指定する命令語キャッシュのキャッシュライン及び命令語ＴＬＢのキャッシュラインをウェイクアップする。一方、第２ウェイクアップステップ（Ｓ１３０）は、順次的な現在命令語のアドレスが指定する命令語キャッシュのサブバンク及び命令語ＴＬＢのサブバンクをウェイクアップすることも可能である。
【００４３】
以上のように、図面と明細書とで最良の実施形態が開示された。ここで、特定の用語が使用されたが、これは、単に本発明を説明するための目的で使用されたものであり、意味限定や特許請求の範囲に記載された本発明の範囲を制限するために使用されたものではない。したがって、当業者ならば、これから多様な変形及び均等な他の実施例が可能であるということが理解できる。したがって、本発明の真の技術的保護範囲は、特許請求の範囲の技術的思想により決まらなければならない。
【産業上の利用可能性】
【００４４】
本発明は、マイクロプロセッサに関連した技術分野に好適に適用され得る。
【図面の簡単な説明】
【００４５】
【図１】ＤＶＳを使用するドラウジーキャッシュを示す図である。
【図２】一般キャッシュの電力消費とドラウジーキャッシュの電力消費とを比較するグラフである。
【図３】本発明の一実施例に係る命令語キャッシュ及び命令語ＴＬＢの制御器を示す図である。
【図４】図３に示すプロセッサコアのフェッチサイクルと従来のプロセッサコアのフェッチサイクルとを比較する図である。
【図５】図３に示す分岐予測器をより詳細に示す図である。
【図６】図３に示すＢＴＢをより詳細に示す図である。
【図７】本発明の一実施例に係る命令語キャッシュ及び命令語ＴＬＢの制御方法を示すフローチャートである。
【符号の説明】
【００４６】
１００    命令語キャッシュ及び命令語ＴＬＢの制御器
１１０    プロセッサコア
１２０    分岐予測器
１４０    ＢＴＢ
１６０    アドレス選択ユニット
１７０    ＸＯＲ
１８０    マルチプレクサ
２００    命令語ＴＬＢ
３００    命令語キャッシュ
ＳＥＬ１    選択値
ＡＤＤＲ    現在命令語のアドレス
Ｔ＿ＡＤＤＲ    予測ターゲットアドレス
【図１】
2006107507.tif 000003
【図２】
2006107507.tif 000004
【図３】
2006107507.tif 000005
【図４】
2006107507.tif 000006
【図５】
2006107507.tif 000007
【図６】
2006107507.tif 000008
【図７】
2006107507.tif 000009