(57)【要約】【課題】読み出し命令の後に実行される命令の内容に応じて、読み出し命令の実行時にキャッシュメモリにアクセスするモードを選択可能なデータ処理装置を提供する。【解決手段】データ及びそのデータのアドレス情報を含むデータ列を格納するウェイ２２１〜２２２を有するキャッシュメモリ２２と、読み出し命令の実行後の一定期間内に、読み出し命令で要求されるデータが後続命令で使用されるか否かを解析する解析モジュール１２２と、解析の結果に応じて、複数のアクセスモードから１つのアクセスモードを選択するモード選択モジュール１２３と、読み出し命令の実行時に、選択されたアクセスモードでキャッシュメモリ２２にアクセスするアクセスユニット２１とを備える。【選択図】図１
2007272280.tif 000002
【特許請求の範囲】
【請求項１】
データ及び該データのアドレス情報を含むデータ列を格納するウェイを複数有するキャッシュメモリと、  
読み出し命令の実行後の一定期間内に、前記読み出し命令で要求されるデータが後続命令で使用されるか否かを解析する解析モジュールと、
前記解析結果に応じて、前記キャッシュメモリに対する複数のアクセスモードから１つのアクセスモードを選択するモード選択モジュールと、
前記読み出し命令の実行時に、前記選択されたアクセスモードで前記キャッシュメモリにアクセスするアクセスユニット
とを備えることを特徴とするデータ処理装置。
【請求項２】
前記モード選択回路が、前記読み出し命令の実行結果が前記後続命令で使用される場合は前記キャッシュメモリからのデータ読み出しに必要なクロックサイクル数が少ないことを優先して設定された高速アクセスモードを選択し、前記実行結果が前記後続命令で使用されない場合は前記データ読み出しに要する消費電力が小さいことを優先して設定された低電力アクセスモードを選択することを特徴とする請求項１に記載のデータ処理装置。  
【請求項３】
前記アクセスユニットが、
前記高速アクセスモードが選択された場合に、前記複数のウェイのそれぞれから読み出される前記データ列に含まれる前記アドレス情報と前記読み出し命令に含まれるアドレス情報とを比較して、前記複数のウェイのいずれでキャッシュヒットしたかを調査するチェックモジュールと、
前記チェックモジュールの調査結果に基づき、前記読み出し命令で要求されたデータを読み出された前記データ列から選択するデータ選択モジュール
とを備えることを特徴とする請求項２に記載のデータ処理装置。
【請求項４】
前記アクセスユニットが、
前記低電力アクセスモードが選択された場合に、前記複数のウェイのそれぞれから読み出される前記アドレス情報と前記読み出し命令に含まれるアドレス情報とを比較して、前記複数のウェイのいずれでキャッシュヒットしたかを調査するチェックモジュールと、
前記チェックモジュールの調査結果に基づき、前記読み出し命令で要求されるデータを格納するウェイを特定するウェイ特定モジュール
とを備えることを特徴とする請求項２に記載のデータ処理装置。
【請求項５】
前記読み出し命令及び前記後続命令を実行される順に格納する命令バッファを更に備えることを特徴とする請求項１乃至４のいずれか１項に記載のデータ処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理装置に係り、特にキャッシュメモリを有するデータ処理装置に関する。
【背景技術】
【０００２】
アクセス頻度の高いデータを、メインメモリより高速に動作するキャッシュメモリに転記することによって、データ処理装置がメインメモリにアクセスする回数を減らせる。その結果、データ処理装置によるデータ処理の高速化が達成される。
【０００３】
一般的に、キャッシュメモリに転記されるデータのメインメモリでのアドレスの一部が、キャッシュメモリでのアドレスとなる。そのため、メインメモリでのアドレスは互いに異なる２つのデータの、キャッシュメモリでのアドレスが同一になる場合がある。その場合、片方のデータのみがメインメモリからキャッシュメモリに転記される。
【０００４】
キャッシュメモリでのアドレスが同一である複数のデータそれぞれをキャッシュメモリに転記するために、キャッシュメモリとメインメモリを対応付ける方式の一つとしてnウェイセットアソシアティブ方式が採用される（ｎ：２以上の整数）。nウェイセットアソシアティブ方式では、ｎ個のウェイを有するキャッシュメモリが使用され、キャッシュメモリでのアドレスが同一である複数のデータが、複数のウェイにそれぞれ転記される。つまり、アクセス頻度の高いデータがキャッシュメモリに格納されない可能性が低減する。
【０００５】
nウェイセットアソシアティブ方式では、キャッシュメモリにアクセスするモードとして、高速動作を優先する高速アクセスモード、或いは消費電量を少なくすることを優先する低電力アクセスモードが採用される。高速アクセスモードでは、すべてのウェイから読み出されたデータの中から読み出し命令によって要求されるデータ（以下において、「目的データ」という。）が選択される。そのため、１度のキャッシュメモリへのアクセスで目的データを取得できる。しかし、高速アクセスモードではすべてのウェイからデータを読み出すため、データ処理装置の消費電力が大きい。
【０００６】
低電力アクセスモードでは、目的データがどのウェイにあるか特定した後、特定されたウェイにアクセスして目的データを読み出す。つまり、低電力アクセスモードは、目的データを取得するためにキャッシュメモリに２度アクセスする必要がある。したがって、低電力アクセスモードは、高速アクセスモードに比べてデータを取得するために必要なクロックサイクル数が多い。しかし、特定されたウェイからのみデータを読み出すため、低電力アクセスモードは高速アクセスモードに比べてデータ処理装置の消費電力が小さい。
【０００７】
データ処理装置の高速動作且つ低消費電力を達成するために、目的データがどのウェイに格納されているかを予測してデータを読み出すウェイの数を減らす方法が提案されている（例えば、特許文献１参照。）。しかし、上記の方法は、予測が外れた場合に、目的データを取得するまでのクロックサイクル数及びデータ処理装置の消費電力が増大する。
【０００８】
パイプライン構造を備えるデータ処理装置は、複数の処理を並行して実行することによって、高速にデータを処理する。したがって、データの読み出し命令と読み出されたデータを使用する命令とが連続して実行される場合は、読み出されたデータを並行して実行される各処理で利用するため、データ処理装置が高速アクセスモードを採用することが望ましい。しかし、読み出されたデータを並行して実行される各処理で利用できない場合は、データ処理装置１での処理時間は、低電力アクセスモードでのアクセスと高速アクセスモードでのアクセスで同じである。したがって、読み出し命令で読み出されたデータが、読み出し命令の後に実行される命令で使用されない場合は、データ処理装置が低電力アクセスモードを採用することが望ましい。
【０００９】
以上に説明したように、高速アクセスモードを採用するデータ処理装置では、データの読み出し命令で読み出されたデータが、読み出し命令の後に実行される命令で使用されない場合に、消費電力が不必要に大きいという問題が生じる。一方、低電力アクセスモードを採用するデータ処理装置では、データの読み出し命令と読み出されたデータを使用する命令が連続して実行される場合に、データ処理に必要なクロックサイクル数が高速アクセスモードよりも増大する。
【特許文献１】特表２００４−５１９７７６号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
本発明は、読み出し命令の後に実行される命令の内容に応じて、読み出し命令の実行時にキャッシュメモリにアクセスするモードを選択可能なデータ処理装置を提供する。
【課題を解決するための手段】
【００１１】
本発明の一態様によれば、（イ）データ及びそのデータのアドレス情報を含むデータ列を格納するウェイを複数有するキャッシュメモリと、（ロ）読み出し命令の実行後の一定期間内に、読み出し命令で要求されるデータが後続命令で使用されるか否かを解析する解析モジュールと、（ハ）解析の結果に応じて、キャッシュメモリに対する複数のアクセスモードから１つのアクセスモードを選択するモード選択モジュールと、（ニ）読み出し命令の実行時に、選択されたアクセスモードでキャッシュメモリにアクセスするアクセスユニットとを備えるデータ処理装置が提供される。
【発明の効果】
【００１２】
本発明によれば、読み出し命令の後に実行される命令の内容に応じて、読み出し命令の実行時にキャッシュメモリにアクセスするモードを選択可能なデータ処理装置を提供できる。
【発明を実施するための最良の形態】
【００１３】
次に、図面を参照して、本発明の実施の形態を説明する。以下の図面の記載において、同一又は類似の部分には同一又は類似の符号を付している。又、以下に示す実施の形態は、この発明の技術的思想を具体化するための装置や方法を例示するものであって、この発明の技術的思想は、構成部品の構造、配置等を下記のものに特定するものでない。この発明の技術的思想は、特許請求の範囲において、種々の変更を加えることができる。
【００１４】
本発明の実施の形態に係るデータ処理装置１は、図１に示すように、データ及びそのデータのアドレス情報を含むデータ列を格納するウェイ２２１〜２２２を有するキャッシュメモリ２２と、読み出し命令の実行後の一定期間内に、読み出し命令で要求されるデータが後続命令で使用されるか否かを解析する解析モジュール１２２と、解析の結果に応じて、キャッシュメモリ２２からのデータ読み出しに必要なクロックサイクル数、及びデータ読み出しに要する消費電力がそれぞれ互いに異なる複数のアクセスモードから１つのアクセスモードを選択するモード選択モジュール１２３と、読み出し命令の実行時に、選択されたアクセスモードでキャッシュメモリ２２にアクセスするアクセスユニット２１とを備える。
【００１５】
読み出し命令の実行結果が、その読み出し命令を実行後の一定期間内に実行が予定される後続命令で使用される場合を、以下において、「後続命令が読み出し命令に依存する」という。読み出し命令後のいつまでの期間に実行が予定される命令を、読み出し命令に依存するか否かを解析される後続命令にするかは、データ処理装置１のデータ処理能力に依存する。本実施の形態では、データ処理装置１が命令フェッチ、命令デコード、演算、メモリアクセス及びレジスタライトバックの５段パイプライン構成であり、読み出し命令から２命令先までの命令が後続命令である例を説明する。
【００１６】
図１に示すように、データ処理装置１は、プロセッサコア１０、データキャッシュシステム２０及び命令キャッシュシステム３０を備える。プロセッサコア１０は、命令フェッチ１１、モード設定ユニット１２、命令デコーダ１３及び命令実行ユニット１４を含む。命令フェッチ１１は、命令バッファ１１１を含む。解析モジュール１２２及びモード選択モジュール１２３は、モード設定ユニット１２に含まれる。モード設定ユニット１２は、判定モジュール１２１及び優先モードレジスタ１２４を更に含む。モード設定ユニット１２は、後続命令が読み出し命令に依存するか否かを解析した結果に基づき、モード信号ＭＤを図１に示すデータキャッシュシステム２０に転送する。モード設定ユニット１２の動作の詳細は後述する。命令実行ユニット１４は、演算モジュール１４１、メモリアクセスモジュール１４２及びレジスタライトバックモジュール１４３を含む。
【００１７】
命令フェッチ１１は、命令キャッシュシステム３０から命令コードをフェッチする。命令フェッチ１１が要求する命令コードが命令キャッシュシステム３０に格納されていない場合は、命令キャッシュシステム３０は、図１に示したメインメモリ２から命令コードを読み込む。命令キャッシュシステム３０は、命令コードを命令キャッシュシステム３０が内蔵するキャッシュメモリに格納し、命令フェッチ１１に命令コードを供給する。命令キャッシュシステム３０が有するキャッシュメモリに命令コードを格納する際の動作、書き込むウェイの選択、キャッシュメモリの格納先のアドレスに他の命令コードが格納されている場合の動作、或いはキャッシュ管理情報の更新等の命令キャッシュシステム３０の動作は、一般的な命令キャッシュシステムの動作と同じである。
【００１８】
フェッチされた命令コードは、命令バッファ１１１に格納される。命令デコーダ１３は、フェッチされた命令コードをデコードする。命令実行ユニット１４は、デコードされた命令を実行する。デコードされた命令が読み出し命令の場合、演算モジュール１４１がアクセスするアドレスを計算し、メモリアクセスモジュール１４２がデータキャッシュシステム２０にアクセスする。
【００１９】
命令実行ユニット１４から、要求信号ＲＥ、及び目的データＤＴに対応するアドレス信号ＡＤがデータキャッシュシステム２０に転送されると、データキャッシュシステム２０は、目的データＤＴがキャッシュメモリ２２に格納されている場合、目的データＤＴを命令実行ユニット１４に転送する。目的データがキャッシュメモリ２２に格納されていない場合は、命令実行ユニット１４はメインメモリ２から目的データＤＴを読み出す。レジスタライトバックモジュール１４３は、メインメモリ２から転送された目的データＤＴをプロセッサコア１０が内蔵するレジスタに格納する。
【００２０】
データキャッシュシステム２０は、アクセスユニット２１とキャッシュメモリ２２を含む。アクセスユニット２１は、チェックモジュール２１１、管理モジュール２１２、データ選択モジュール２１３及びウェイ特定モジュール２１４を含む。アクセスユニット２１は、命令実行ユニット１４から要求信号ＲＥが転送された場合に、モード信号ＭＤで通知されるアクセスモードでキャッシュメモリ２２にアクセスする。図１に示すように、キャッシュメモリ２２は２つのウェイ２２１〜２２２を有する。つまり、データ処理装置１は、２個のウェイを用いる２ウェイセットアソシアティブ方式を採用する。データキャッシュシステム２０の動作の詳細は後述する。
【００２１】
ウェイ２２１〜２２２は、ステータスレジスタ、タグメモリ及びデータメモリを含むデータ列としてデータを格納する。ウェイ２２１〜２２２の構成例を図２に示す。図２に示したウェイは、ステータスレジスタに格納されるステータス情報Ｓｉ、タグメモリに格納されるタグ情報Ｔｉ及びデータメモリに格納されるデータＤｉを含むデータ列ＤＬｉを格納する（ｉ：自然数）。
【００２２】
「データメモリ」は、メインメモリから転記されたデータを格納する。図２では、各データメモリに一つのデータを格納する例を示したが、一つのデータメモリが複数のデータを格納する場合がある。
【００２３】
「ステータスレジスタ」は、キャッシュメモリ２２に格納されたデータ列の状態に関する情報を格納する。例えば、データ列に含まれるデータが有効なデータであるか否かを示す信号（有効信号）や、データ列に含まれるデータが上書きされたか否かを示す信号等がステータスレジスタに格納される。
【００２４】
「タグメモリ」は、転記されたデータのメインメモリにおけるアドレス（以下において、「オリジナルアドレス」という）の情報を格納する。一般に、タグメモリは、オリジナルアドレスの上位ビットを格納する。オリジナルアドレスの下位ビットと一致するキャッシュメモリのアドレスに、メインメモリから転記されたデータが格納される。例えば、メインメモリのアドレスが３２ビットの場合、オリジナルアドレスの上位２０ビットがタグメモリに格納され、オリジナルアドレスの下位１２ビットと一致するキャッシュメモリのアドレスに、転記されたデータが格納される。読み出し命令で指定されたメインメモリのアドレスと、タグメモリに格納された情報とキャッシュメモリのアドレスの組み合わせとが一致する場合に、キャッシュメモリからデータが読み出される。アクセスしたキャッシュメモリに目的データが格納されていることを、「キャッシュヒット」という。
【００２５】
アドレス信号ＡＤの例を図３に示す。図３に示したアドレス信号ＡＤは、タグ部ＴＧ、インデックス部ＩＤ及びライン部ＬＮを含む。タグ部ＴＧはウェイ２２１〜２２２のタグメモリに格納されたタグ情報に対応する情報を含む。インデックス部ＩＤは、キャッシュメモリ２２のアドレスを指定する情報である。ライン部ＬＮは、データ列におけるデータメモリの位置を指定する情報である。１つのデータメモリに複数のデータが格納されている場合に、データ列における目的データの位置がライン部ＬＮによって指定される。
【００２６】
モード設定ユニット１２の動作の詳細について、図４を参照して説明する。以下では、読み出し命令から２命令先までの命令が後続命令である例を説明する。図４に示すように、命令フェッチ１１内の命令バッファ１１１は、命令コードＣ１〜命令コードＣｊを実行される順に格納する（ｊ：自然数）。つまり、命令バッファ１１１に格納された命令コードは、命令コードＣ１、命令コードＣ２、・・・、命令コードＣｊの順に命令デコーダ１３によってデコードされる。命令バッファ１１１に格納された命令コードＣ１、命令コードＣ２及び命令コードＣ３は、モード設定ユニット１２に転送される。  
判定モジュール１２１は、命令コードＣ１が読み出し命令であるか否かを判定する。命令コードＣ１が読み出し命令ではない場合は、後続命令が読み出し命令に依存するか否かの解析は実行されない。又、判定モジュール１２１は、命令コードＣ２が読み出し命令であるか否かを判定する。命令コードＣ１及び命令コードＣ２が共に読み出し命令である場合に、判定モジュール１２１は信号ＲＣをモード選択モジュール１２３に転送する。
【００２７】
命令コードＣ１が読み出し命令である場合は、命令コードＣ１、命令コードＣ２及び命令コードＣ３が解析モジュール１２２に転送される。解析モジュール１２２は、命令コードＣ１、Ｃ２及びＣ３をデコードして、後続命令である命令コードＣ２及び命令コードＣ３が、読み出し命令である命令コードＣ１に依存するか否かを解析する。
【００２８】
後続命令が読み出し命令に依存する例を図５に示す。図５に示す命令コードＣ１は、アドレス＄１のデータを読み出す命令である。命令コードＣ２は、命令コードＣ１によって読み出されたデータを用いる加算命令である。つまり、命令コードＣ２は命令コードＣ１に依存する。読み出し命令の実行結果を格納するデスティネーションレジスタが、後続命令が使用するデータを格納するソースレジスタである場合に、後続命令は読み出し命令に依存する。
【００２９】
後続命令が読み出し命令に依存しない例を図６に示す。図６に示す命令コードＣ１は、アドレス＄１のデータを読み出す命令である。命令コードＣ２は、命令コードＣ１によって読み出されたデータを用いない加算命令である。命令コードＣ３は、命令コードＣ１によって読み出されたデータを用いない除算命令である。つまり、命令コードＣ２及び命令コードＣ３は命令コードＣ１に依存しない。
【００３０】
解析モジュール１２２は、解析結果を信号ＡＮでモード選択モジュール１２３に転送する。解析モジュール１２２の解析結果に基づき、モード選択モジュール１２３はアクセスモードを選択する。具体的には、後続命令が読み出し命令に依存する場合は、モード選択モジュール１２３は、キャッシュメモリからのデータ読み出しに必要なクロックサイクル数が少ないことを優先して設定された高速アクセスモードを選択する。後続命令が読み出し命令に依存しない場合は、モード選択モジュール１２３は、キャッシュメモリからのデータ読み出しに要する消費電力が小さいことを優先して設定された低電力アクセスモードを選択する。高速アクセスモード及び低電力アクセスモードの詳細は後述する。モード選択モジュール１２３は、選択したアクセスモードを、モード信号ＭＤでデータキャッシュシステム２０に通知する。通知するタイミングは、読み出し命令に応じてメモリアクセスモジュール１４２がデータキャッシュシステム２０にアクセスするタイミングと同一である。
【００３１】
優先モードレジスタ１２４は、アクセスモードを指定する指定信号ＡＭＤを格納する。判定モジュール１２１から信号ＲＣが転送された場合等に、モード選択モジュール１２３は、指定信号ＡＭＤにより指定されたアクセスモードを選択する。モード選択モジュール１２３が指定信号ＡＭＤにより指定されたアクセスモードを選択する例は後述する。モード設定ユニット１２は、命令デコーダ１３及び命令実行ユニット１４が読み出し命令に応じた動作を実行中に、上述した動作を実行する。
【００３２】
データ読み出し時におけるデータキャッシュシステム２０の動作の詳細について、図７〜図９を参照して説明する。図７に示すように、ウェイ２２１はステータス情報Ｓ１ｉ、タグ情報Ｔ１ｉ及びデータＤ１ｉを含むデータ列ＤＬ２ｉを格納し、ウェイ２２２はステータス情報Ｓ２ｉ、タグ情報Ｔ２ｉ及びデータＤ２ｉを含むデータ列ＤＬ２ｉを格納する。図７では、データ読み出し以外の動作に関するデータキャッシュシステム２０の機能は図示を省略している。
【００３３】
先ず、高速アクセスモードでキャッシュメモリ２２から目的データＤＴを読み出す方法を、図７及び図８を参照して説明する。図８に示したサイクル１において、命令実行ユニット１４から要求信号ＲＥで読み出し命令がデータキャッシュシステム２０に転送され、キャッシュメモリ２２に格納されたデータがアクセスユニット２１に転送される。データキャッシュシステム２０にモード信号ＭＤにより高速アクセスモードが通知されている場合、アドレス信号ＡＤに含まれるインデックス部ＩＤに対応するアドレスのデータ列が、ウェイ２２１及びウェイ２２２から読み出される。ステータスレジスタに格納されたステータス情報及びタグメモリに格納されたタグ情報を含むアドレス情報は、チェックモジュール２１１に転送される。データメモリに格納されたデータは、データ選択モジュール２１３に転送される。又、チェックモジュール２１１にアドレス信号ＡＤに含まれるタグ部ＴＧが命令実行ユニット１４から転送される。
【００３４】
図８に示したサイクル２において、チェックモジュール２１１は、ウェイ２２１及びウェイ２２２から転送されたアドレス情報と命令実行ユニット１４から転送されたタグ部ＴＧの情報とを比較して、ウェイ２２１及びウェイ２２２のいずれかでキャッシュヒットしたか否かを調査する。チェックモジュール２１１は、ウェイ２２１及びウェイ２２２のいずれでキャッシュヒットしたかという情報（以下において「ヒットウェイ情報」という。）を、ヒット信号ＨＩで管理モジュール２１２に転送する。管理モジュール２１２は、ヒットウェイ情報をデータ選択モジュール２１３に通知する。
【００３５】
更に図８に示したサイクル２において、データ選択モジュール２１３は、ヒットウェイ情報に基づき、ウェイ２２１及びウェイ２２２から転送されたデータから目的データＤＴを選択する。つまり、キャッシュヒットしたウェイから転送されたデータが目的データＤＴとして選択される。尚、アドレス信号ＡＤに含まれるライン部ＬＮがデータ選択モジュール２１３に転送される。ウェイ２２１及びウェイ２２２のデータメモリが複数のデータをそれぞれ格納する場合は、データ選択モジュール２１３は、ライン部ＬＮを参照して目的データＤＴを選択する。
【００３６】
データ選択モジュール２１３は、選択された目的データＤＴを命令実行ユニット１４に転送する。ウェイ２２１及びウェイ２２２のいずれにおいてもキャッシュヒットしない場合は、データキャッシュシステム２０は、メインメモリ２から目的データＤＴを読み込む。データキャッシュシステム２０は、目的データＤＴをキャッシュメモリ２２に格納し、命令実行ユニット１４に目的データＤＴを転送する。キャッシュメモリ２２に目的データＤＴを格納する際の動作、書き込むウェイの選択、キャッシュメモリ２２の格納先のアドレスに他のデータが格納されている場合における動作、或いはキャッシュ管理情報の更新等のデータキャッシュシステム２０の動作は、一般的なデータキャッシュシステムの動作と同じである。
【００３７】
次に、低電力アクセスモードでキャッシュメモリ２２から目的データを読み出す方法を、図７及び図９を参照して説明する。図９に示したサイクル１において、命令実行ユニット１４から要求信号ＲＥで読み出し命令がデータキャッシュシステム２０に転送され、キャッシュメモリ２２に格納されたデータがアクセスユニット２１に転送される。モード信号ＭＤで低電力クセスモードが通知された場合は、アドレス信号ＡＤに含まれるインデックス部ＩＤに対応するアドレスのデータ列のうち、ステータス情報及びタグ情報がウェイ２２１及びウェイ２２２から読み出される。読み出されたステータス情報及びタグ情報を含むアドレス情報はチェックモジュール２１１に転送される。又、チェックモジュール２１１にアドレス信号ＡＤに含まれるタグ部ＴＧが命令実行ユニット１４から転送される。
【００３８】
図９に示したサイクル２において、チェックモジュール２１１は、ウェイ２２１及びウェイ２２２から転送されたアドレス情報と命令実行ユニット１４から転送されたタグ部ＴＧとを比較して、ウェイ２２１及びウェイ２２２のいずれかでキャッシュヒットしたか否かを調査する。チェックモジュール２１１は、ヒット信号ＨＩでヒットウェイ情報をウェイ特定モジュール２１４に転送する。
【００３９】
更に図９に示したサイクル２において、ウェイ特定モジュール２１４は、ヒットウェイ情報に基づき、キャッシュヒットしたウェイを特定する。ウェイ特定モジュール２１４は、特定したウェイにアクセスする。
【００４０】
図９に示したサイクル３において、ウェイ特定モジュール２１４は、特定したウェイのアドレス信号ＡＤに対応するアドレスのデータ列から目的データＤＴを読み出す。尚、アドレス信号ＡＤに含まれるライン部ＬＮがウェイ特定モジュール２１４に転送される。ウェイ２２１及びウェイ２２２のデータメモリが複数のデータをそれぞれ格納する場合は、ウェイ特定モジュール２１４は、ライン部ＬＮを参照して目的データＤＴを読み出す。
【００４１】
ウェイ特定モジュール２１４は、読み出した目的データＤＴを命令実行ユニット１４に転送する。ウェイ２２１及びウェイ２２２のいずれにおいてもキャッシュヒットしない場合は、メインメモリ２から目的データＤＴが命令実行ユニット１４に転送される。
【００４２】
以上に説明したように、高速アクセスモードでは、ウェイ２２１〜２２２のデータメモリに格納されたデータを読み出した後に、目的データが選択される。低電力アクセスモードでは、目的データを格納するウェイを特定した後で、特定されたウェイからデータを読み出す。つまり、低電力アクセスモードでは、目的データが格納されていないウェイのデータメモリに格納されたデータは読み出されない。しかし、低電力アクセスモードでは、高速アクセスモードに比べてキャッシュメモリ２２から目的データを読み出すために必要なクロックサイクル数が多い。つまり、データ処理の速度という点では、低電力アクセスモードより高速アクセスモードが有利である。データ処理装置１の消費電力の点では、高速アクセスモードより低電力アクセスモードが有利である。データ処理装置１では、読み出し命令の後に実行される命令の解析結果に基づき、高速アクセスモード及び低電力アクセスモードのいずれかが選択される。
【００４３】
既に述べたように、図４に示した優先モードレジスタ１２４は、アクセスモードを指定する指定信号ＡＭＤをモード選択モジュール１２３に転送する。例えば、読み出し命令が連続して命令バッファ１１１に格納された場合や、読み出し命令の後続命令が命令バッファ１１１に格納されていない場合に、モード選択モジュール１２３は、指定信号ＡＭＤを参照してアクセスモードを選択する。具体的な例を以下に説明する。
【００４４】
読み出し命令が連続して命令バッファ１１１に格納された場合に、データキャッシュシステム２０のデータ処理速度を優先するときは、指定信号ＡＭＤで高速アクセスモードが指定される。つまり、判定モジュール１２１から信号ＲＣが転送された場合、モード選択モジュール１２３は、後続命令が読み出し命令に依存するか否かに関係なく、高速アクセスモードを選択する。
【００４５】
読み出し命令が連続して命令バッファ１１１に格納された場合に、データキャッシュシステム２０の消費電力が少ないデータ処理を優先するときは、解析モジュール１２２が、連続する読み出し命令のうち先に実行される第１の読み出し命令に後続命令が依存するか否かを解析する。後続命令が第１の読み出し命令に依存する場合は、モード選択モジュール１２３は、高速アクセスモードを選択する。
【００４６】
後続命令が第１の読み出し命令に依存しない場合は、モード選択モジュール１２３は、低電力アクセスモードを選択する。第１の読み出し命令の実行時に低電力アクセスモードが選択された場合、連続する読み出し命令のうち後に実行される第２の読み出し命令に後続命令が依存するか否かに関係なく、モード選択モジュール１２３は、第２の読み出し命令の実行時に低電力アクセスモードを選択する。第２の読み出し命令の実行時に高速アクセスモードを選択すると、第１の読み出し命令の実行と第２の読み出し命令の実行が重なってしまうためである。そのため、第１の読み出し命令の実行時に低電力アクセスモードが選択された場合、指定信号ＡＭＤで低電力アクセスモードが指定される。
【００４７】
読み出し命令の後続命令が命令バッファ１１１に格納されていない場合、後続命令が読み出し命令に依存するか否かを解析することができない。そのため、モード選択モジュール１２３は、指定信号ＡＭＤを参照してアクセスモードを選択する。具体的には、データキャッシュシステム２０のデータ処理速度を優先するときは、モード選択モジュール１２３は、後続命令が読み出し命令に依存するか否かに関係なく、高速アクセスモードを選択する。データキャッシュシステム２０の消費電力が少ないデータ処理を優先するときは、モード選択モジュール１２３は、低電力アクセスモードを選択する。
【００４８】
プロセッサコア１０は、優先モードレジスタ１２４が格納する指定信号ＡＭＤを設定できる。つまり、読み出し命令が連続して実行される場合等に、データキャッシュシステム２０がデータ処理速度を優先して動作するか、或いは消費電力を優先して動作するかを、プロセッサコア１０が指定できる。  
以上に説明したように、本発明の実施の形態に係るデータ処理装置１では、読み出し命令の実行後に実行予定の後続命令を解析した結果に応じて、キャッシュメモリ２２へのアクセスモードが選択される。つまり、データ処理装置１が、読み出し命令の実行結果を後続命令が使用する場合は、高速にデータを取得することを優先する高速アクセスモードを選択する。読み出し命令の実行結果を後続命令が使用しない場合は、消費電力を少なくすることを優先する低電力アクセスモードを選択する。その結果、データ処理時間の増大を防止し、且つデータ処理装置の消費電力の低減が達成される。
【００４９】
（その他の実施の形態）
上記のように、本発明は実施の形態によって記載したが、この開示の一部をなす論述及び図面はこの発明を限定するものであると理解すべきではない。この開示から当業者には様々な代替実施の形態、実施例及び運用技術が明らかとなろう。
【００５０】
既に述べた実施の形態の説明においては、キャッシュメモリ２２が２つのウェイ２２１〜２２２を有する場合を説明したが、キャッシュメモリ２２が３つ以上のウェイを有する場合も、上記に説明した方法と同様にしてキャッシュメモリ２２へのアクセスモードを決定する。
【００５１】
このように、本発明はここでは記載していない様々な実施の形態等を含むことは勿論である。したがって、本発明の技術的範囲は上記の説明から妥当な特許請求の範囲に係る発明特定事項によってのみ定められるものである。
【図面の簡単な説明】
【００５２】
【図１】本発明の実施の形態に係るデータ処理装置の構成を示す模式図である。
【図２】本発明の実施の形態に係るウェイの構成を示す模式図である。
【図３】本発明の実施の形態に係るアドレス信号の構成を示す模式図である。
【図４】本発明の実施の形態に係るモード設定ユニットの動作を説明するための模式図である。
【図５】本発明の実施の形態に係るデータ処理装置の動作を説明するための命令コードの例である。
【図６】本発明の実施の形態に係るデータ処理装置の動作を説明するための命令コードの他の例である。
【図７】本発明の実施の形態に係るデータキャッシュシステムの動作を説明するための模式図である。
【図８】本発明の実施の形態に係るアクセスモードを説明するためのクロックサイクルの例である。
【図９】本発明の実施の形態に係る他のアクセスモードを説明するためのクロックサイクルの例である。
【符号の説明】
【００５３】
１…データ処理装置
２…メインメモリ
１０…プロセッサコア
１１…命令フェッチ
１２…モード設定ユニット
１３…命令デコーダ
１４…命令実行ユニット
２０…データキャッシュシステム
２１…アクセスユニット
２２…キャッシュメモリ
３０…命令キャッシュシステム
１１１…命令バッファ
１２１…判定モジュール
１２２…解析モジュール
１２３…モード選択モジュール
１２４…優先モードレジスタ
１４１…演算モジュール
１４２…メモリアクセスモジュール
１４３…レジスタライトバックモジュール
２１１…チェックモジュール
２１２…管理モジュール
２１３…データ選択モジュール
２１４…ウェイ特定モジュール
２２１〜２２２…ウェイ
【図１】
2007272280.tif 000003
【図２】
2007272280.tif 000004
【図３】
2007272280.tif 000005
【図４】
2007272280.tif 000006
【図５】
2007272280.tif 000007
【図６】
2007272280.tif 000008
【図７】
2007272280.tif 000009
【図８】
2007272280.tif 000010
【図９】
2007272280.tif 000011