(57)【要約】【課題】ブランチ目的アドレスを利用してキャッシュウェイを予測するプロセッサ及びその方法を提供する。【解決手段】フェッチ部が次のプロセッササイクルにフェッチするアドレスを決定するのと並行して、ブランチ予測部が予測したブランチ目的アドレスの一部情報が、ウェイ予測部がブランチ目的アドレスを解釈して検出したサブタグのうちいかなるものとマッチングされるかを比較するプロセッサである。このような比較によって、キャッシュヒットを発生させる可能性があるキャッシュウェイを決定し、ブランチ目的アドレスが次にフェッチする命令語アドレスと決定されれば、決定されたキャッシュウェイのみ接近してフェッチ命令語を抽出する。【選択図】  図２
2006134331.tif 000002
【特許請求の範囲】
【請求項１】
命令語キャッシュへの接近なしに複数のキャッシュウェイのうち少なくとも一つのキャッシュウェイの選択を予測するウェイ予測部を備えることを特徴とするプロセッサ。
【請求項２】
フェッチアドレスに応答してブランチ命令語のフェッチであるかどうかを予測し、実際に分岐されると予測されるかどうかを知らせる決定信号及びブランチ目的アドレスを出力するブランチ予測部と、
プロセッササイクルごとにプログラムカウンタ信号に応答して前記フェッチアドレスを出力し、分岐如何及び他の条件によって前記ブランチ目的アドレス、順次アドレス、及び他のアドレスのうち次のプロセッササイクルのフェッチアドレスを選択し、選択されたアドレスを出力するフェッチ部と、をさらに備えることを特徴とする請求項１に記載のプロセッサ。
【請求項３】
前記ウェイ予測部は、
最小限一つのキャッシュウェイの選択のために、ブランチ目的アドレスの一部と、前記キャッシュウェイの該当サブタグそれぞれとを比較することを特徴とする請求項１に記載のプロセッサ。
【請求項４】
前記少なくとも一つのキャッシュウェイは、
前記複数のキャッシュウェイのうち少なくとも他の一つよりキャッシュヒットを発生させる可能性がさらに高いことを特徴とする請求項１に記載のプロセッサ。
【請求項５】
接近されるデータは、
次のプロセッササイクルのフェッチ命令語であることを特徴とする請求項１に記載のプロセッサ。
【請求項６】
フェッチ命令語をデコーディングし、フェッチ命令語がどの演算種類であるかを解釈する命令語デコーダと、
解釈結果に応答して前記フェッチ命令語を実行する実行部と、をさらに備えることを特徴とする請求項１に記載のプロセッサ。
【請求項７】
前記ウェイ予測部は、
ブランチ目的アドレスに応答して前記複数のキャッシュウェイの該当サブタグを出力するサブタグバッファと、
前記ブランチ目的アドレスの一部が、前記サブタグバッファから出力される複数のサブタグそれぞれと同一であるかどうかを比較して、複数の比較結果を出力する比較部と、
実際に分岐されると予測されるかどうかを知らせる決定信号の論理状態、次のサイクルのフェッチアドレスがブランチ目的アドレスであるかどうかを知らせる信号の論理状態及び前記複数の比較結果それぞれの論理状態を比較して、比較される論理状態が同一であれば第１論理状態を持ち、そうでなければキャッシュヒットを発生させる可能性を知らせる第２論理状態を持つウェイイネーブル信号それぞれを決定する決定部と、を備えることを特徴とする請求項１に記載のプロセッサ。
【請求項８】
前記サブタグバッファは、
前記ブランチ目的アドレスのインデックスによって該当選択信号を生成するデコーダと、
複数のサブメモリに前記複数のキャッシュウェイのサブタグを保存し、前記選択信号に応答して前記該当サブタグを出力するサブタグメモリと、を備えることを特徴とする請求項７に記載のプロセッサ。
【請求項９】
前記サブタグメモリは、
前記命令語キャッシュに含まれたウェイの数と同数の前記サブメモリを含み、前記サブメモリそれぞれから一つずつ前記サブタグを出力することを特徴とする請求項８に記載のプロセッサ。
【請求項１０】
前記サブタグそれぞれは、
前記命令語キャッシュに含まれている前記複数のキャッシュウェイに保存されるタグそれぞれの一部データであることを特徴とする請求項８に記載のプロセッサ。
【請求項１１】
前記一部データは、
下位Ｎビット（Ｎは自然数）であることを特徴とする請求項１０に記載のプロセッサ。
【請求項１２】
前記サブタグそれぞれは、
前記命令語キャッシュが該当タグをアップデートする時、共にアップデートされることを特徴とする請求項１０に記載のプロセッサ。
【請求項１３】
前記アップデートは、キャッシュミス時になされることを特徴とする請求項１２に記載のプロセッサ。
【請求項１４】
前記ブランチ予測部は、
前記フェッチアドレスに応答して、該当ブランチアドレスタグ及び該当ブランチ目的アドレスを出力するブランチ目的バッファと、
前記該当ブランチアドレスタグと前記フェッチアドレスに含まれたタグとの同一如何を知らせる比較信号を生成するタグ比較部と、
前記フェッチアドレスが分岐されると予測されるブランチ命令語のフェッチであるかどうかを知らせる予測信号を生成する予測ロジックと、
前記比較信号及び前記予測信号によって前記フェッチアドレスが分岐されると予測されるブランチであるかどうかを知らせる決定信号を生成する決定部と、を備えることを特徴とする請求項２に記載のプロセッサ。
【請求項１５】
前記ブランチ目的バッファは、
前記フェッチアドレスのインデックスによって該当選択信号を生成するデコーダと、
複数のブランチアドレスタグ及び複数のブランチ目的アドレスを保存し、前記選択信号に応答して該当ブランチアドレスタグ及び該当ブランチ目的アドレスを出力するメモリと、を備えることを特徴とする請求項１４に記載のプロセッサ。
【請求項１６】
命令語キャッシュへの接近なしに複数のキャッシュウェイのうち少なくとも一つのキャッシュウェイの選択を予測するステップを含むことを特徴とするプロセシング方法。
【請求項１７】
前記予測ステップは、
プロセッササイクルごとにプログラムカウンタ信号に応答してフェッチアドレスをフェッチするステップと、
前記フェッチアドレスが実際に分岐されると予測されるブランチ命令語であるかどうかを知らせる決定信号及びブランチ目的アドレスを出力するステップと、
前記ブランチ目的アドレスの一部と前記キャッシュウェイの該当サブタグそれぞれを比較するステップと、
前記比較結果によって最小限一つのキャッシュウェイ選択を決定するステップと、
分岐如何及び他の条件によって前記ブランチ目的アドレス、順次アドレス、及び他のアドレスのうち次のプロセッササイクルのフェッチアドレスを選択し、選択されたフェッチアドレスを出力するステップと、
前記選択された次のフェッチアドレスによってキャッシュヒットされたデータをフェッチ命令語として出力するステップと、を含み、
次のプロセッササイクルの前記選択されたフェッチアドレスが前記ブランチ目的アドレスであれば、前記決定された最小限一つのキャッシュウェイのみに接近して、該当フェッチ命令語を出力することを特徴とする請求項１６に記載のプロセシング方法。
【請求項１８】
前記接近されるデータは、
次のプロセッササイクルのフェッチ命令語であることを特徴とする請求項１６に記載のプロセシング方法。
【請求項１９】
前記フェッチ命令語をデコーディングするステップと、
前記デコーディングされたフェッチ命令語がどの演算種類であるかを解釈するステップと、
前記解釈結果に応答して、前記デコーディングされたフェッチ命令語を実行するステップと、をさらに含むことを特徴とする請求項１８に記載のプロセシング方法。
【請求項２０】
前記決定ステップは、
前記ブランチ目的アドレスに応答して、前記複数のキャッシュウェイの該当サブタグを出力するステップと、
前記実際に分岐されると予測されるかどうかを知らせる決定信号の論理状態、次のサイクルのフェッチアドレスがブランチ目的アドレスであるかどうかを知らせる信号の論理状態、及び前記比較結果それぞれの論理状態を比較するステップと、
前記比較される論理状態が同一であれば第１論理状態を持ち、そうでなければキャッシュヒット発生させる可能性を知らせる第２論理状態を持つウェイイネーブル信号それぞれを決定するステップと、を含むことを特徴とする請求項１７に記載のプロセシング方法。
【請求項２１】
前記サブタグ出力ステップは、
前記ブランチ目的アドレスのインデックスによって該当選択信号を生成するステップと、
前記選択信号に応答して前記該当サブタグを出力するステップと、を含むことを特徴とする請求項２０に記載のプロセシング方法。
【請求項２２】
前記サブタグを出力するサブメモリの数は、前記命令語キャッシュに含まれたウェイの数と同数であることを特徴とする請求項２０に記載のプロセシング方法。
【請求項２３】
前記サブタグそれぞれは、
前記命令語キャッシュに含まれている前記複数のキャッシュウェイに保存されるタグそれぞれの一部データであることを特徴とする請求項２０に記載のプロセシング方法。
【請求項２４】
前記一部データは、
下位Ｎビット（Ｎは自然数）であることを特徴とする請求項２３に記載のプロセシング方法。
【請求項２５】
前記サブタグそれぞれは、
前記命令語キャッシュが該当タグをアップデートする時、共にアップデートされることを特徴とする請求項２３に記載のプロセシング方法。
【請求項２６】
前記フェッチ命令語がブランチ命令語であるかどうかを決定するステップをさらに含むことを特徴とする請求項１８に記載のプロセシング方法。
【請求項２７】
前記決定ステップは、
前記フェッチアドレスに応答して、該当ブランチアドレスタグ及び該当ブランチ目的アドレスを出力するステップと、
前記該当ブランチアドレスタグと前記フェッチアドレスに含まれたタグとの同一如何を知らせる比較信号を生成するステップと、
前記フェッチアドレスが分岐されると予測されるブランチ命令語のフェッチであるかどうかを知らせる予測信号を生成するステップと、
前記比較信号及び前記予測信号によって、前記フェッチアドレスが分岐されると予測されるブランチであるかどうかを知らせる決定信号を生成するステップと、を含むことを特徴とする請求項２６に記載のプロセシング方法。
【請求項２８】
前記出力ステップは、
前記フェッチアドレスのインデックスによって該当選択信号を生成するステップと、
前記選択信号に応答して、複数のブランチアドレスタグ及び複数のブランチ目的アドレスを保存するメモリから、該当ブランチアドレスタグ及び該当ブランチ目的アドレスを出力するステップと、を含むことを特徴とする請求項２７に記載のプロセシング方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＣＰＵ（Ｃｏｎｔｒｏｌ Ｐｒｏｃｅｓｓｉｎｇ Ｕｎｉｔ）に係り、特に、ブランチ予測によって決定されたブランチ目的アドレスを利用してキャッシュウェイを予測するプロセッサに関する。
【背景技術】
【０００２】
携帯用機器が多く使われるにつれて低電力への要求が多方面にかけて要求されている。特に、エンベデッドプロセッサを利用するシステムの場合に、その高速の性能と共に電力消耗が非常に重要な要素である。
【０００３】
図１は、ブランチ予測を行う一般的なプロセッサ１００のブロック図である。図１を参照すれば、プロセッサ１００は、フェッチ部１１０、命令語キャッシュ１２０、命令語デコーダ１３０、実行部１４０、及びブランチ予測部１５０を備える。
【０００４】
フェッチ部１１０は、プロセッササイクルごとにプログラムカウンタ（ＰＣ）信号に応答して、所定メモリでアドレスをフェッチする役割と、次にフェッチする命令語のアドレスを決定する役割とを行う。そのために、現在フェッチするアドレスＦＡＤＲを出力する役割も行う。ブランチ予測部１５０は、フェッチアドレスＦＡＤＲに応答して、そのアドレスがブランチ命令語のフェッチであるかどうかを判断し、該当ブランチ命令語が実際に分岐されると予測されれば（‘ｐｒｅｄｉｃｔｅｄ ｔａｋｅｎ’という）、ブランチ目的アドレスＴＡＤＲを出力する。フェッチ部１１０は、ブランチ目的アドレスを含むいろいろな候補アドレスのうち次のプロセッササイクルにフェッチされるアドレスを選択して、フェッチアドレスを命令語キャッシュ１２０に伝達する。
【０００５】
命令語キャッシュ１２０は、フェッチ部１１０から伝えられるアドレスに応答して、命令語キャッシュ１２０に備わるタグ及びデータメモリに接近し、タグマッチングがなされるブロックで該当データを選択して出力する。選択されたデータは、フェッチ命令語として命令語デコーダ１３０に入力され、それにより、命令語デコーダ１３０は、フェッチ命令語からいかなる演算種類であるかを解釈する。実行部１４０は、解釈された演算種類に基づいてフェッチ命令語を実行する。
【０００６】
ここで、命令語キャッシュ１２０が‘Ｓｅｔ−ａｓｓｏｃｉａｔｉｖｅ Ｃａｃｈｅ’である場合に、命令語キャッシュ１２０は、タグ及びデータメモリから形成されるウェイを複数備える。この時、命令語キャッシュ１２０はフェッチ命令語を出力するために、フェッチ部１１０から伝えられるアドレスによって、あらゆるウェイに接近してタグマッチングを行い、マッチングされたブロックのデータのうちいずれか一つを選択して出力する。例えば、‘４−Ｗａｙ Ｓｅｔ−ａｓｓｏｃｉａｔｉｖｅ Ｃａｃｈｅ’の場合には、４個のタグメモリ及び４個のデータメモリに接近して出力した４つのデータのうち、フェッチ部１１０から伝えられるアドレスとタグマッチングされたいずれか一つを選択する。したがって、‘Ｓｅｔ−ａｓｓｏｃｉａｔｉｖｅ Ｃａｃｈｅ’方式では、命令語キャッシュ１２０への接近と関連して多くの電力を消費するという問題点がある。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
したがって、本発明が解決しようとする技術的課題は、‘Ｓｅｔ−ａｓｓｏｃｉａｔｉｖｅ Ｃａｃｈｅ’方式でブランチ目的アドレスを利用して、プロセッサ動作速度の不要な低下なしに、必要なキャッシュウェイのみ選択されるように予測することによって、命令語キャッシュによって消耗される電力を減らすプロセッサを提供することにある。
本発明が解決しようとする他の技術的課題は、ブランチ目的アドレスを利用して必要なキャッシュウェイのみ選択されるように予測するプロセシング方法を提供することにある。
【課題を解決するための手段】
【０００８】
前記技術的課題を達成するための本発明によるプロセッサは、命令語キャッシュへの接近なしに複数のキャッシュウェイのうち少なくとも一つのキャッシュウェイの選択を予測するウェイ予測部を備えることを特徴とする。前記プロセッサは、フェッチアドレスに応答して、ブランチ命令語のフェッチであるかどうかを予測し、実際に分岐されると予測されるかどうかを知らせる決定信号及びブランチ目的アドレスを出力するブランチ予測部と、プロセッササイクルごとにプログラムカウンタ信号に応答して前記フェッチアドレスを出力し、分岐如何及び他の条件によって前記ブランチ目的アドレス、順次アドレス、及び他のアドレスのうち次のプロセッササイクルのフェッチアドレスを選択し、選択されたアドレスを出力するフェッチ部と、をさらに備えることを特徴とする。
【０００９】
前記ウェイ予測部は、ブランチ目的アドレスに応答して、前記複数のキャッシュウェイの該当サブタグを出力するサブタグバッファと、前記ブランチ目的アドレスの一部が、前記サブタグバッファから出力される複数のサブタグそれぞれと同一であるかどうかを比較して、複数の比較結果を出力する比較部と、実際に分岐されると予測されるかどうかを知らせる決定信号の論理状態、次のサイクルのフェッチアドレスがブランチ目的アドレスであるかどうかを知らせる信号の論理状態及び前記複数の比較結果それぞれの論理状態を比較して、比較される論理状態が同一であれば第１論理状態を持ち、そうでなければキャッシュヒットを発生させる可能性を知らせる第２論理状態を持つウェイイネーブル信号それぞれを決定する決定部と、を備えることを特徴とする。
【００１０】
前記ブランチ予測部は、前記フェッチアドレスに応答して該当ブランチアドレスタグ及び該当ブランチ目的アドレスを出力するブランチ目的バッファと、前記該当ブランチアドレスタグと前記フェッチアドレスに含まれたタグとの同一如何を知らせる比較信号を生成するタグ比較部と、前記フェッチアドレスが分岐されると予測されるブランチ命令語のフェッチであるかどうかを知らせる予測信号を生成する予測ロジックと、前記比較信号及び前記予測信号によって前記フェッチアドレスが分岐されると予測されるブランチであるかどうかを知らせる決定信号を生成する決定部と、を備えることを特徴とする。
【００１１】
他の技術的課題を達成するための本発明によるプロセシング方法は、命令語キャッシュへの接近なしに複数のキャッシュウェイのうち少なくとも一つのキャッシュウェイの選択を予測するステップを含むことを特徴とする。前記予測ステップは、プロセッササイクルごとにプログラムカウンタ信号に応答してフェッチアドレスをフェッチするステップと、前記フェッチアドレスが実際に分岐されると予測されるブランチ命令語であるかどうかを知らせる決定信号及びブランチ目的アドレスを出力するステップと、前記ブランチ目的アドレスの一部と前記キャッシュウェイの該当サブタグそれぞれを比較するステップと、前記比較結果によって最小限一つのキャッシュウェイ選択を決定するステップと、分岐如何及び他の条件によって前記ブランチ目的アドレス、順次アドレス、及び他のアドレスのうち次のプロセッササイクルのフェッチアドレスを選択し、選択されたフェッチアドレスを出力するステップと、前記選択された次のフェッチアドレスによってキャッシュヒットされたデータをフェッチ命令語として出力するステップと、を含み、次のプロセッササイクルの前記選択されたフェッチアドレスが前記ブランチ目的アドレスであれば、前記決定された最小限一つのキャッシュウェイのみに接近して該当フェッチ命令語を出力することを特徴とする。
【発明の効果】
【００１２】
本発明によるプロセッサは、次のフェッチアドレスの決定及びウェイ予測を並列的に行って‘Ｓｅｔ−ａｓｓｏｃｉｔｉｖｅ Ｃａｃｈｅ’で必要なキャッシュウェイのみ選択されるように予測するので、ウェイ予測による遅延時間を短縮させ、消費電力を減らす。
【発明を実施するための最良の形態】
【００１３】
本発明と本発明の動作上の利点及び本発明の実施によって達成される目的を十分に理解するためには、本発明の望ましい実施形態を例示する添付図面及び添付図面に記載された内容を参照しなければならない。
以下、添付した図面を参照して本発明の望ましい実施形態を説明することによって、本発明を詳細に説明する。各図面に付された同一参照符号は同一部材を表わす。
【００１４】
本発明では、次のプロセッササイクルにフェッチされるアドレスを決定することと、ブランチ目的アドレスを利用して接近される該当キャッシュウェイを予測することとが同時に行われるように提案される。キャッシュウェイを予測する本発明の一実施形態によるプロセッサ２００のブロック図が図２に図示されている。図２を参照すれば、プロセッサ２００は、フェッチ部２１０、命令語キャッシュ２２０、命令語デコーダ２３０、実行部２４０、ブランチ予測部２５０、及びウェイ予測部２６０を備える。
【００１５】
フェッチ部２１０は、プロセッササイクルごとにプログラムカウンタ（ＰＣ）信号に応答して、所定メモリでアドレスをフェッチする役割と、次にフェッチする命令語のアドレスＮＥＸＴ ＰＣを決定する役割とを行う。そのために、現在フェッチするアドレスＦＡＤＲを出力する役割も行う。
【００１６】
ブランチ予測部２５０は、フェッチアドレスＦＡＤＲに応答してそのアドレスがブランチ命令語のフェッチであるかどうか、及び該当ブランチ命令語が実際に分岐されるかどうかを予測する。これにより、ブランチ予測部２５０は、予測結果によって実際に分岐されると予測されるかどうかを知らせる決定信号ＴＮＴ、及びブランチ目的アドレスＴＡＤＲを出力する。ブランチ予測部２５０について図３を参照してさらに詳細に説明する。
【００１７】
ブランチ予測部２５０のブランチ予測結果によって、フェッチアドレスＦＡＤＲが分岐されると予測されるブランチ命令語に該当すれば（‘ｐｒｅｄｉｃｔｅｄ ｔａｋｅｎ’）、ウェイ予測部２６０は、ブランチ目的アドレスＴＡＤＲによってキャッシュヒットを発生させる可能性があるキャッシュウェイを決定する。ウェイ予測部２６０は、ブランチ目的アドレスＴＡＤＲの一部分と、キャッシュウェイに保存されたサブタグのうち、ブランチ目的アドレスＴＡＤＲに対応するサブタグそれぞれとを比較し、比較結果、実際に分岐されると予測されるかどうかを知らせる決定信号ＴＮＴ、及び次のプロセッササイクルのフェッチアドレスがブランチ目的アドレスであるかどうかを知らせる信号ＴＢによって、命令語キャッシュ２２０に含まれたキャッシュウェイのうち、キャッシュヒットを発生させる可能性があるキャッシュウェイを決定して、ウェイイネーブル信号ＥＮＷＡＹを出力する。命令語キャッシュ２２０は、前述したように、‘Ｓｅｔ−ａｓｓｏｃｉａｔｉｖｅ Ｃａｃｈｅ’であると仮定される。ブランチ予測部２５０及び命令語キャッシュ２２０について、図４及び図５を参照してさらに詳細に説明する。
【００１８】
ブランチ予測部２５０のブランチ予測結果及び他の条件によって、フェッチ部２１０は、ブランチ目的アドレス、プログラムカウンタ（ＰＣ）信号によってフェッチされる順次アドレス、及び他のアドレスのうち次のプロセッササイクルのフェッチアドレスＮＥＸＴ ＰＣを選択し、命令語キャッシュ２２０に伝達する。また、フェッチ部２１０は、次のプロセッササイクルのフェッチアドレスＮＥＸＴ ＰＣがブランチ目的アドレスであるかどうかを知らせる信号ＴＢをウェイ予測部２６０に伝達する。例えば、フェッチ部２１０は、次のプロセッササイクルのフェッチアドレスＮＥＸＴ ＰＣがブランチ目的アドレスであるかどうかについて、選択的に論理ハイ状態または論理ロー状態の伝達信号ＴＢを生成する。次のプロセッササイクルのフェッチアドレスを選択する方法は、既存の一般的なプロセッサで使用する方法と同じ方法を使用する。これにより、命令語キャッシュ２２０は、フェッチ部２１０から伝えられる選択されたアドレスＮＥＸＴ ＰＣによって、一般的なプロセッサのように命令語キャッシュ２２０内のあらゆるキャッシュウェイに接近して、キャッシュヒットされたデータをフェッチ命令語ＦＩＮとして出力し、この時、フェッチ部２１０でブランチ目的アドレスＴＡＤＲが選択されたならば、命令語キャッシュ２２０は、ブランチ目的アドレスＴＡＤＲに応答して、ウェイ予測部２６０で決定された命令語キャッシュ２２０内のキャッシュウェイのみに接近し、タグマッチングされるブロックでキャッシュヒットされたデータをフェッチ命令語ＦＩＮとして出力する。
【００１９】
フェッチ命令語ＦＩＮは、命令語デコーダ２３０に入力され、それにより命令語デコーダ２３０は、フェッチ命令語ＦＩＮからいかなる演算種類であるかを解釈する。実行部２４０は、解釈された演算種類に基づいてフェッチ命令語ＦＩＮを実行する。
【００２０】
図２のブランチ予測部２５０の具体的なブロック図が図３に図示されている。図３を参照すれば、ブランチ予測部２５０は、ブランチ目的バッファ２５１、タグ比較部２５２、予測ロジック２５３、及び決定部２５４を備える。
【００２１】
ブランチ目的バッファ２５１は、フェッチ部２１０から出力されるフェッチアドレスＦＡＤＲに応答して、該当ブランチアドレスタグＴＡＧ及び該当ブランチ目的アドレスＴＡＤＲに出力する。図３に示すように、ブランチ目的バッファ２５１は、デコーダ２５５及びメモリ２５６を備える。デコーダ２５５は、フェッチアドレスＦＡＤＲのインデックスによって該当選択信号を生成する。周知のように、フェッチアドレスＦＡＤＲはタグ、インデックス、及びオフセットフィールドから形成され、デコーダ２５５は、インデックスフィールドを参照してメモリ２５６に保存された該当ブランチアドレスタグＴＡＧ及びブランチ目的アドレスＴＡＤＲを指示する選択信号を生成する。メモリ２５６は、ブランチアドレスタグ及びブランチ目的アドレスを保存し、選択信号に応答して該当ブランチアドレスタグＴＡＧ及び該当ブランチ目的アドレスＴＡＤＲを出力する。
【００２２】
タグ比較部２５２は、メモリ２５６から出力される該当ブランチアドレスタグＴＡＧがフェッチアドレスＦＡＤＲに含まれたタグと同一であるかどうかを比較して、その如何を知らせる比較信号を生成する。例えば、タグ比較部２５２は、比較結果が同一であるか否かについて、選択的に論理ハイ状態または論理ロー状態の前記比較信号を生成する。
【００２３】
予測ロジック２５３は、所定ブランチ予測方法によってフェッチアドレスＦＡＤＲが実際に分岐されると予測されるブランチ命令語のフェッチであるかどうかを知らせる予測信号を生成する。周知のように、ブランチ予測方法には種々あり得る。ブランチ予測によって、予測ロジック２５３は、フェッチアドレスＦＡＤＲが実際に分岐されると予測される命令語のフェッチに該当しているか（‘ｐｒｅｄｉｃｔｅｄ ｔａｋｅｎ’）またはそうでないかそれぞれについて、論理ハイ状態または論理ロー状態の予測信号を発生させる。
【００２４】
決定部２５４は、比較信号と予測信号とを比較して実際に分岐されると予測されるかどうかを知らせる決定信号ＴＮＴを生成する。例えば、決定部２５４は、比較結果が同一であるか否かに対して選択的に論理ハイ状態または論理ロー状態の決定信号ＴＮＴを生成する。
【００２５】
図２のウェイ予測部２６０の具体的なブロック図が図４に図示されている。図４を参照すれば、ウェイ予測部２６０は、サブタグバッファ２６１、比較部２６２、及び決定部２６３を備える。
【００２６】
サブタグバッファ２６１は、ブランチ予測部２５０から出力されるブランチ目的アドレスＴＡＤＲに応答して、命令語キャッシュ２２０に含まれたキャッシュウェイの該当サブタグを出力する。サブタグバッファ２６１は、デコーダ４１１及びサブタグメモリ４１２を備える。デコーダ４１１は、ブランチ目的アドレスＴＡＤＲのインデックスによって該当選択信号を生成する。サブタグメモリ４１２は、複数のサブメモリ４１５〜４１８にキャッシュウェイのサブタグを保存し、選択信号に応答して該当サブタグを出力する。サブタグメモリ４１２には、キャッシュウェイの数と同数のサブメモリ４１５〜４１８を含んでおり、サブメモリ４１５〜４１８それぞれが一つずつ前記選択信号に対応するサブタグを出力する。
【００２７】
図４では、‘４−Ｗａｙ Ｓｅｔ−ａｓｓｏｃｉａｔｉｖｅ Ｃａｃｈｅ’であると仮定して、４つのサブメモリ４１５〜４１８があると仮定した。サブタグメモリ４１２に保存されるサブタグそれぞれは、命令語キャッシュ２２０に含まれているキャッシュウェイに保存されるあらゆるタグそれぞれの一部データに該当する。このようなサブタグのそれぞれは、命令語キャッシュ２２０がキャッシュミスの発生によってリプレースメントの実行で該当タグをアップデートする時、アップデートされたタグの下位Ｎビット（Ｎは自然数）のみ抽出されて共にアップデートされるデータである。サブタグとして保存される下位Ｎビットのデータは、アップデートされるタグの３ビット、４ビット、または５ビットで設定でき、ビット数が大きいほどウェイ予測の正確度は高まる。命令語キャッシュ２２０でのキャッシュミスの発生によるリプレースメントの実行については、周知の通りである。
【００２８】
比較部２６２は、比較器４２１〜４２７を利用して、ブランチ目的アドレスＴＡＤＲの一部分、すなわち、タグフィールドのデータのうちサブタグに対応する下位Ｎビットと、サブタグバッファ２６１から出力される複数のサブタグそれぞれとを比較する。比較器４２１〜４２７は、比較によって同一であるか否かに対して選択的に論理ハイ状態または論理ロー状態を持つ比較結果、複数を生成する。
【００２９】
決定部２６３は、所定ロジック４３１〜４３７を利用して、ブランチ予測部２５０から出力される実際に分岐されると予測されるかどうかを知らせる決定信号ＴＮＴの論理状態、次のプロセッササイクルのフェッチアドレスがブランチ目的アドレスであるかどうかを知らせる信号ＴＢの論理状態、及び比較器４２１〜４２７から出力される複数の比較結果それぞれの論理状態を比較する。この時、比較される論理状態が同一であれば論理ロー状態を持ち、そうでなければキャッシュヒットを発生させる可能性を知らせる論理ハイ状態を持つウェイイネーブル信号ＥＮＷＡＹ［１］〜ＥＮＷＡＹ［４］それぞれを決定する。
【００３０】
図５は、４ウェイを持つ命令語キャッシュ２２０の一例である。図５を参照すれば、‘４−Ｗａｙ Ｓｅｔ−ａｓｓｏｃｉａｔｉｖｅ Ｃａｃｈｅ’と仮定されて、命令語キャッシュ２２０に４個のキャッシュウェイ２２１〜２２４が含まれており、キャッシュヒットされたデータを選択するための選択部２２５を備える。周知のように、キャッシュウェイ２２１〜２２４それぞれは、フェッチ部２１０で選択されたアドレスのインデックスによって該当タグブロックを選択するためのデコーダ、タグマッチングの実行に参照されるタグメモリ、及びアドレスのオフセットに対応するデータメモリで構成される。
【００３１】
ブランチ予測部２５０の予測によってブランチに該当して、フェッチ部２１０で選択されたブランチ目的アドレスＴＡＤＲが命令語キャッシュ２２０に伝えられれば、これにより命令語キャッシュ２２０は、ウェイ予測部２６０で決定されたキャッシュウェイのみに接近する。例えば、ウェイイネーブル信号ＥＮＷＡＹ［１］〜ＥＮＷＡＹ［４］のうちＥＮＷＡＹ［１］のみが論理ハイ状態であり、残りは論理ロー状態であれば、４つのキャッシュウェイ２２１〜２２４のうち第１ウェイ２２１のみ動作し、残りの第２ないし第４ウェイ２２２〜２２４は動作しない。このように接近されたキャッシュウェイ２２１でタグマッチングによってキャッシュヒットされるブロックで、命令語キャッシュ２２０は、ブランチ目的アドレスＴＡＤＲのオフセットフィールドに対応するデータを抽出し、選択部２２５を介して抽出されたデータを選択してフェッチ命令語ＦＩＮとして出力する。
【００３２】
前述したように、本発明の一実施形態によるプロセッサ２００では、ブランチ予測部２５０が予測したブランチ目的アドレスＴＡＤＲの一部情報が、ウェイ予測部２６０がブランチ目的アドレスＴＡＤＲを解釈して検出したサブタグのうちいずれとマッチングされるかを比較する。命令語キャッシュ２２０に接近なしに、このような比較によって、キャッシュヒットを発生させる可能性のあるキャッシュウェイを決定し、決定されたキャッシュウェイのみ接近してフェッチ命令語ＦＩＮを抽出する。
【００３３】
以上のように図面及び明細書で最適の実施形態が開示された。ここで特定の用語が使われたが、これは単に本発明を説明するための目的で使われたものであり、意味限定や特許請求の範囲に記載された本発明の範囲を制限するために使われたものではない。したがって、当業者ならばこれより多様な変形及び均等な他の実施形態が可能であるという点を理解できるであろう。したがって、本発明の真の技術的保護範囲は、特許請求の範囲の技術的思想により定められなければならない。
【産業上の利用可能性】
【００３４】
本発明によるプロセッサ及びプロセシング方法は、携帯用機器のエンベデッドプロセッサまたはＣＰＵに利用できる。
【図面の簡単な説明】
【００３５】
【図１】ブランチ予測を行う一般的なプロセッサのブロック図である。
【図２】キャッシュウェイを予測する本発明の一実施形態によるプロセッサのブロック図である。
【図３】図２のブランチ予測部の具体的なブロック図である。
【図４】図２のウェイ予測部の具体的なブロック図である。
【図５】４ウェイを持つ命令語キャッシュの一例を示す図である。
【符号の説明】
【００３６】
２００  プロセッサ
２１０  フェッチ部
２２０  命令語キャッシュ
２３０  命令語デコーダ
２４０  実行部
２５０  ブランチ予測部
２６０  ウェイ予測部
【図１】
2006134331.tif 000003
【図２】
2006134331.tif 000004
【図３】
2006134331.tif 000005
【図４】
2006134331.tif 000006
【図５】
2006134331.tif 000007