(57)【特許請求の範囲】
【請求項１】
複数のプロセッサに対して個別に設けられる複数の第１記憶階層部と、
前記複数のプロセッサに対して共通に設けられる第２記憶階層部と、
前記複数の第１記憶階層部および前記第２記憶階層部の間でのデータ転送を制御する制御部とを備え、
前記複数のプロセッサの各々は、前記第２記憶階層部から自身の第１記憶階層部へのデータ転送が不要であるストア命令としてデータ転送なしストア命令を実行可能であり、
前記複数の第１記憶階層部の各々は、自身に対応するプロセッサによりストア命令が実行される場合、実行対象の命令の種別が通常のストア命令であれば、命令実行時にキャッシュミスヒットが発生すると、前記第２記憶階層部から自身へのデータ転送を要求するための第１転送制御信号を前記制御部に出力し、実行対象の命令の種別が前記データ転送なしストア命令であれば、前記制御部への第１転送制御信号の出力を禁止し、命令実行時にキャッシュミスヒットが発生すると、自身に対応するプロセッサによる前記データ転送なしストア命令の実行時にキャッシュミスヒットが発生したことを認識させるための第２転送制御信号を前記制御部に出力し、
前記制御部は、前記複数のプロセッサに含まれる第１プロセッサの第１記憶階層部により第２転送制御信号が出力されたことで、前記第１プロセッサによる前記データ転送なしストア命令の実行時に前記第１プロセッサの第１記憶階層部でキャッシュミスヒットが発生したことを認識した場合、前記第１プロセッサの第１記憶階層部により指定される記憶領域に関して、少なくとも前記第２記憶階層部から前記第１プロセッサの第１記憶階層部へのデータ転送を実施せずに前記第１プロセッサの第１記憶階層部の状態情報を更新することを特徴とするキャッシュメモリシステム。
【請求項２】
請求項１に記載のキャッシュメモリシステムにおいて、
前記制御部は、前記第１プロセッサの第１記憶階層部により第２転送制御信号が出力され、前記第１プロセッサの第１記憶階層部により指定される記憶領域のデータが前記第１プロセッサ以外の第１記憶階層部のいずれにも変更状態で存在しない場合、前記第２記憶階層部から前記第１プロセッサの第１記憶階層部へのデータ転送を実施せずに前記第１プロセッサの第１記憶階層部の状態情報を更新することを特徴とするキャッシュメモリシステム。
【請求項３】
請求項２に記載のキャッシュメモリシステムにおいて、
前記制御部は、前記第１プロセッサの第１記憶階層部の状態情報を無効状態から変更状態に更新することを特徴とするキャッシュメモリシステム。
【請求項４】
請求項１に記載のキャッシュメモリシステムにおいて、
前記制御部は、前記第１プロセッサの第１記憶階層部により第２転送制御信号が出力され、前記第１プロセッサの第１記憶階層部により指定される記憶領域のデータが前記第１プロセッサとは別の第２プロセッサの第１記憶階層部に変更状態で存在する場合、前記第２プロセッサの第１記憶階層部から前記第２記憶階層部へのデータ転送を実施せずに前記第２プロセッサの第１記憶階層部の状態情報を更新し、前記第２記憶階層部から前記第１プロセッサの第１記憶階層部へのデータ転送を実施せずに前記第１プロセッサの第１記憶階層部の状態情報を更新することを特徴とするキャッシュメモリシステム。
【請求項５】
請求項４に記載のキャッシュメモリシステムにおいて、
前記制御部は、前記第２プロセッサの第１記憶階層部の状態情報を変更状態から無効状態に更新し、前記第１プロセッサの第１記憶階層部の状態情報を無効状態から変更状態に更新することを特徴とするキャッシュメモリシステム。
【請求項６】
請求項１〜５のいずれか１項に記載のキャッシュメモリシステムにおいて、
前記複数の第１記憶階層部の各々は、ライトアロケート方式を採用していることを特徴とするキャッシュメモリシステム。
【請求項７】
複数のプロセッサを用いたデータ処理装置であって、
前記複数のプロセッサに対して個別に設けられる複数の第１記憶階層部と、前記複数のプロセッサに対して共通に設けられる第２記憶階層部と、前記複数の第１記憶階層部および前記第２記憶階層部の間でのデータ転送を制御する制御部とを有するキャッシュメモリシステムを備え、
前記複数のプロセッサの各々は、前記第２記憶階層部から自身の第１記憶階層部へのデータ転送が不要であるストア命令としてデータ転送なしストア命令を実行可能であり、
前記複数の第１記憶階層部の各々は、自身に対応するプロセッサによりストア命令が実行される場合、実行対象の命令の種別が通常のストア命令であれば、命令実行時にキャッシュミスヒットが発生すると、前記第２記憶階層部から自身へのデータ転送を要求するための第１転送制御信号を前記制御部に出力し、実行対象の命令の種別が前記データ転送なしストア命令であれば、前記制御部への第１転送制御信号の出力を禁止し、命令実行時にキャッシュミスヒットが発生すると、自身に対応するプロセッサによる前記データ転送なしストア命令の実行時にキャッシュミスヒットが発生したことを認識させるための第２転送制御信号を前記制御部に出力し、
前記制御部は、前記複数のプロセッサに含まれる第１プロセッサの第１記憶階層部により第２転送制御信号が出力されたことで、前記第１プロセッサによる前記データ転送なしストア命令の実行時に前記第１プロセッサの第１記憶階層部でキャッシュミスヒットが発生したことを認識した場合、前記第１プロセッサの第１記憶階層部により指定される記憶領域に関して、少なくとも前記第２記憶階層部から前記第１プロセッサの第１記憶階層部へのデータ転送を実施せずに前記第１プロセッサの第１記憶階層部の状態情報を更新することを特徴とするデータ処理装置。
【請求項８】
請求項７に記載のデータ処理装置において、
前記制御部は、前記第１プロセッサの第１記憶階層部により第２転送制御信号が出力され、前記第１プロセッサの第１記憶階層部により指定される記憶領域のデータが前記第１プロセッサ以外の第１記憶階層部のいずれにも変更状態で存在しない場合、前記第２記憶階層部から前記第１プロセッサの第１記憶階層部へのデータ転送を実施せずに前記第１プロセッサの第１記憶階層部の状態情報を更新することを特徴とするデータ処理装置。
【請求項９】
請求項７に記載のデータ処理装置において、
前記制御部は、前記第１プロセッサの第１記憶階層部により第２転送制御信号が出力され、前記第１プロセッサの第１記憶階層部により指定される記憶領域のデータが前記第１プロセッサとは別の第２プロセッサの第１記憶階層部に変更状態で存在する場合、前記第２プロセッサの第１記憶階層部から前記第２記憶階層部へのデータ転送を実施せずに前記第２プロセッサの第１記憶階層部の状態情報を更新し、前記第２記憶階層部から前記第１プロセッサの第１記憶階層部へのデータ転送を実施せずに前記第１プロセッサの第１記憶階層部の状態情報を更新することを特徴とするデータ処理装置。
【請求項１０】
外部からキャッシュメモリへのデータ転送が不要であるストア命令としてデータ転送なしストア命令を実行可能なプロセッサにて前記キャッシュメモリとして用いられる記憶装置であって、
前記プロセッサによりストア命令が実行される場合、実行対象の命令の種別が通常のストア命令であれば、命令実行時にキャッシュミスヒットが発生すると、外部から自身へのデータ転送を要求するための第１転送制御信号を外部に出力し、実行対象の命令の種別が前記データ転送なしストア命令であれば、外部への第１転送制御信号の出力を禁止し、命令実行時にキャッシュミスヒットが発生すると、前記プロセッサによる前記データ転送なしストア命令の実行時にキャッシュミスヒットが発生したことを認識させるための第２転送制御信号を外部に出力する制御部を備えることを特徴とする記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、キャッシュメモリシステム、データ処理装置および記憶装置に関する。
【背景技術】
【０００２】
データ処理装置においては、プロセッサから主記憶装置へのアクセスレイテンシには多くのストールサイクルを要するため、プロセッサから主記憶装置へのアクセスに伴うペナルティの軽減を目的として、プロセッサにより高速にアクセス可能なキャッシュメモリが設けられることが多い。しかしながら、プロセッサによるキャッシュメモリに主記憶装置のデータのコピーが存在しない記憶領域へのアクセスを伴う命令の実行時にはキャッシュミスヒットが発生し、ロード命令の実行時やライトアロケート方式のキャッシュメモリでのストア命令の実行時であれば、キャッシュメモリに主記憶装置のデータのコピーを用意する動作（ムーブイン動作）が必要となるため、プロセッサの命令実行に少なからずペナルティが生じることになる。
【０００３】
キャッシュメモリの容量を増加させることで、キャッシュミスヒットの発生頻度を低下させることが可能であるが、プロセッサにより高速にアクセス可能なメモリの容量を増加させることは、動作周波数やコストとのトレードオフを伴うことから容易ではない。このため、プロセッサの動作速度と同一の速度でアクセスできる１次キャッシュメモリと、プロセッサの動作速度と同一の速度ではアクセスできないが主記憶装置よりは高速にアクセスできる大容量の２次キャッシュメモリとを設けることにより（即ち、キャッシュメモリに階層構造を持たせることにより）、キャッシュミスヒットの発生に伴うペナルティを軽減させる手法がよく用いられる。マルチプロセッサ構成のデータ処理装置に階層型のキャッシュメモリを適用する場合には、主記憶装置に近い方の記憶階層を複数のプロセッサ間で共有するような構成が採用されることが多い。このような場合、複数のプロセッサ間でのデータのコヒーレンシ（一貫性）を保証するためのキャッシュ制御装置が設けられることもある。
【０００４】
また、ムーブイン動作によりキャッシュメモリに転送されたデータは、キャッシュメモリの該当エントリのデータがストア命令（ストアデータの書き込み）により書き換えられるような場合には、プロセッサにより一度も参照されない。このため、ムーブイン動作が無駄に実施されたことになり、データ処理装置の処理性能や消費電力の面で問題となり得る。この問題を解決する技術としては、ムーブインが不要であるストア命令としてムーブインなしストア命令をプロセッサに実装し、プロセッサによるムーブインなしストア命令の実行時にはキャッシュミスヒットが発生してもムーブインを要求しないように制御することで、ムーブイン動作に伴う無駄なデータ転送（メモリアクセス）を削減する手法が本発明者により提案されている。
【０００５】
なお、キャッシュメモリに関連する技術については、例えば、特許文献１〜３に開示されている。
【特許文献１】特許第２５５２７０４号公報
【特許文献２】特許第３０５５９０８号公報
【特許文献３】特開平５−１００８４９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
例えば、ムーブインなしストア命令を実行可能なプロセッサを複数使用してデータ処理装置を構成し、更に、複数のプロセッサに対して個別に設けられる１次キャッシュメモリと複数のプロセッサ（複数の１次キャッシュメモリ）に対して共通に設けられる２次キャッシュメモリとで構成される階層型のキャッシュメモリを適用した場合、以下に示すような問題があった。
【０００７】
プロセッサＰ１による記憶領域Ａへのアクセスを伴うムーブインなしストア命令の実行時には、プロセッサＰ１に対応する１次キャッシュメモリでキャッシュミスヒットが発生してもプロセッサＰ１に対応する１次キャッシュメモリから２次キャッシュメモリに対してムーブインの要求が発生しないため、プロセッサＰ１とは別のプロセッサＰ２が記憶領域Ａにアクセスした場合のキャッシュコヒーレンシの問題を解決することが困難であった。
【０００８】
本発明の目的は、複数のプロセッサを用いたデータ処理装置に適用されるキャッシュメモリシステムについてキャッシュコヒーレンシを保ちながら記憶階層間での無駄なデータ転送を削減する技術を提供することにある。
【課題を解決するための手段】
【０００９】
複数のプロセッサを用いたデータ処理装置に適用されるキャッシュメモリシステムは、複数のプロセッサに対して個別に設けられる複数の第１記憶階層部と、複数のプロセッサに対して共通に設けられる第２記憶階層部と、複数の第１記憶階層部および第２記憶階層部の間でのデータ転送を制御する制御部とを備える。複数のプロセッサの各々は、第２記憶階層部から自身の第１記憶階層部へのデータ転送が不要であるストア命令としてデータ転送なしストア命令を実行可能である。複数の第１記憶階層部の各々は、自身に対応するプロセッサによりストア命令が実行される場合、実行対象の命令の種別が通常のストア命令であれば、命令実行時にキャッシュミスヒットが発生すると、第２記憶階層部から自身へのデータ転送を要求するための第１転送制御信号を制御部に出力し、実行対象の命令の種別がデータ転送なしストア命令であれば、制御部への第１転送制御信号の出力を禁止し、命令実行時にキャッシュミスヒットが発生すると、自身に対応するプロセッサによるデータ転送なしストア命令の実行時にキャッシュミスヒットが発生したことを認識させるための第２転送制御信号を制御部に出力する。制御部は、複数のプロセッサに含まれる第１プロセッサの第１記憶階層部により第２転送制御信号が出力されたことで、第１プロセッサによるデータ転送なしストア命令の実行時に第１プロセッサの第１記憶階層部でキャッシュミスヒットが発生したことを認識した場合、第１プロセッサの第１記憶階層部により指定される記憶領域に関して、少なくとも第２記憶階層部から第１プロセッサの第１記憶階層部へのデータ転送を実施せずに第１プロセッサの第１記憶階層部の状態情報を更新する。
【００１０】
例えば、制御部は、第１プロセッサの第１記憶階層部により第２転送制御信号が出力され、第１プロセッサの第１記憶階層部により指定される記憶領域のデータが第１プロセッサ以外の第１記憶階層部のいずれにも変更状態で存在しない場合、第２記憶階層部から第１プロセッサの第１記憶階層部へのデータ転送を実施せずに第１プロセッサの第１記憶階層部の状態情報を更新する。制御部は、第１プロセッサの第１記憶階層部の状態情報を無効状態から変更状態に更新する。例えば、制御部は、第１プロセッサの第１記憶階層部により第２転送制御信号が出力され、第１プロセッサの第１記憶階層部により指定される記憶領域のデータが第１プロセッサとは別の第２プロセッサの第１記憶階層部に変更状態で存在する場合、第２プロセッサの第１記憶階層部から第２記憶階層部へのデータ転送を実施せずに第２プロセッサの第１記憶階層部の状態情報を更新し、第２記憶階層部から第１プロセッサの第１記憶階層部へのデータ転送を実施せずに第１プロセッサの第１記憶階層部の状態情報を更新する。制御部は、第２プロセッサの第１記憶階層部の状態情報を変更状態から無効状態に更新し、第１プロセッサの第１記憶階層部の状態情報を無効状態から変更状態に更新する。例えば、複数の第１記憶階層部の各々は、ライトアロケート方式を採用している。
【発明の効果】
【００１１】
複数のプロセッサを用いたデータ処理装置に適用されるキャッシュメモリシステムについてキャッシュコヒーレンシを保ちながら記憶階層間での無駄なデータ転送を削減することが可能になる。これにより、データ処理装置における処理性能の向上および消費電力の削減を実現することができる。
【発明を実施するための最良の形態】
【００１２】
以下、本発明の実施形態について図面を用いて説明する。
【００１３】
図１は、本発明の一実施形態を示している。本発明の一実施形態のデータ処理装置１０は、ＣＰＵ（Central Processing Unit）２０ａ、２０ｂ、２０ｃ（ＣＰＵコア２１および１次キャッシュ２２を具備）と、ＣＰＵ２０ａ、２０ｂ、２０ｃにより共有される２次キャッシュ３０（キャッシュ制御装置３１を具備）とを備えて構成されている。なお、図示を省略しているが、２次キャッシュ３０には主記憶装置が接続されている。
【００１４】
ＣＰＵコア２１は、命令デコーダ２１１等を備えて構成されおり、周知の各種命令に加えて、ムーブイン（２次キャッシュ３０から１次キャッシュ２２へのデータ転送）が不要であるストア命令としてムーブインなしストア命令を実行可能である。ＣＰＵコア２１は、ムーブインなしストア命令の実行時にムーブイン禁止信号Ｓ１（ムーブインが不要であることを示す信号）を１次キャッシュ２２に出力する。
【００１５】
１次キャッシュ２２は、キャッシュＲＡＭ（Random Access Memory）２２１ａ、２２１ｂと、セレクタ２２２、２２３、２２４と、タグＲＡＭ２２５ａ、２２５ｂと、アドレス比較器２２６と、キャッシュ状態情報格納回路２２７と、制御回路２２８とを備えて構成されている。例えば、１次キャッシュ２２では、ライトアロケート方式が採用されている。また、１次キャッシュ２２では、キャッシュコヒーレンシを保証するためにＭＯＳＩ方式が採用されている。
【００１６】
キャッシュＲＡＭ２２１ａ、２２１ｂは、制御回路２２８の書き込み指示に伴ってＣＰＵコア２１の出力アドレスに応じてエントリにセレクタ２２２の出力データを書き込む。また、キャッシュＲＡＭ２２１ａ、２２１ｂは、制御回路２２８の読み出し指示に伴ってＣＰＵコア２１の出力アドレスに応じてエントリからデータを読み出してセレクタ２２３に出力する。セレクタ２２２は、制御回路２２８の選択指示に従ってＣＰＵコア２１の出力データまたは２次キャッシュ３０の出力データのいずれかを選択してキャッシュＲＡＭ２２１ａ、２２１ｂに出力する。セレクタ２２３は、制御回路２２８の選択指示に従ってキャッシュＲＡＭ２２１ａの出力データまたはキャッシュＲＡＭ２２１ｂの出力データのいずれかを選択してセレクタ２２４および２次キャッシュ３０に出力する。セレクタ２２４は、制御回路２２８の選択指示に従ってセレクタ２２３の出力データまたは２次キャッシュ３０の出力データのいずれかを選択してＣＰＵコア２１に出力する。
【００１７】
タグＲＡＭ２２５ａ、２２５ｂは、制御回路２２８の書き込み指示に伴ってＣＰＵコア２１の出力アドレスに応じてエントリにアドレスの一部を書き込む。タグＲＡＭ２２５ａ、２２５ｂは、制御回路２２８の読み出し指示に伴ってＣＰＵコア２１の出力アドレスに応じてエントリからアドレスを読み出してアドレス比較器２２６に出力する。アドレス比較器２２６は、ＣＰＵコア２１の出力アドレスの一部とタグＲＡＭ２２５ａ、２２５ｂの出力アドレスとを比較してアドレス比較結果信号Ｓ２（アドレスが一致するか否かを示す信号）を制御回路２２８に出力する。キャッシュ状態情報格納回路２２７は、レジスタ等により具現され、キャッシュコヒーレンシの制御に使用されるエントリ毎の状態情報を格納している。状態情報は、制御回路２２８により変更状態（Ｍ：Modified）、所有状態（Ｏ：Owned）、共有状態（Ｓ：Shared）または無効状態（Ｉ：Invalid）のいずれかに設定される。
【００１８】
制御回路２２８は、１次キャッシュ２２の全体を制御するための各種動作を実施する。制御回路２２８は、アドレス比較結果信号Ｓ２に基づいてキャッシュヒット／キャッシュミスヒットを判定する。制御回路２２８は、ＣＰＵコア２１によるムーブイン禁止信号Ｓ１の出力時にキャッシュミスヒットの発生を認識すると、ムーブインなしストア要求信号Ｓ３（ムーブインなしストア命令の実行時にキャッシュミスヒットが発生したことを示す信号）を２次キャッシュ３０（キャッシュ制御装置３１）に出力する。キャッシュ制御装置３１は、ＣＰＵ２０ａ、２０ｂ、２０ｃの１次キャッシュ２２（制御回路２２８）と２次キャッシュ３０との間でのデータ転送を制御するための動作やキャッシュコヒーレンシを保証するための動作等を実施する。
【００１９】
なお、図示を省略しているが、ＣＰＵ２０ａ、２０ｂ、２０ｃの１次キャッシュ２２（制御回路２２８）から２次キャッシュ３０（キャッシュ制御装置３１）に対しては、ムーブイン要求信号（２次キャッシュ３０から１次キャッシュ２２へのデータ転送を要求するための信号）等の各種制御信号が必要に応じて出力される。また、２次キャッシュ３０（キャッシュ制御装置３１）からＣＰＵ２０ａ、２０ｂ、２０ｃの１次キャッシュ２２（制御回路２２８）に対しては、フラッシュ要求信号（ダーティなデータの書き戻しを要求するための信号）やインバリデート要求信号（状態情報の無効状態への設定を要求するための信号）等の各種制御信号が必要に応じて出力される。
【００２０】
図２は、従来のデータ処理装置の動作を示している。なお、従来のデータ処理装置１０’は、ＣＰＵ２０ａ’、２０ｂ’、２０ｃ’と、２次キャッシュ３０’とを備えて構成されている。ＣＰＵ２０ａ’、２０ｂ’、２０ｃ’は、ムーブインなしストア命令に関連する機構を有していない点を除いて、図１のＣＰＵ２０ａ、２０ｂ、２０ｃと同一である。２次キャッシュ３０’は、ムーブインなしストア要求信号に関連する機構を有していない点を除いて、図１の２次キャッシュ３０と同一である。
【００２１】
図２の動作は、ＣＰＵ２０ｂ’、２０ｃ’（１次キャッシュ）のいずれにもアドレスＡに対応するラインのデータが変更状態で存在しない場合にＣＰＵ２０ａ’（１次キャッシュ）にてストア先アドレスとしてアドレスＡを指定するストア命令の実行時にキャッシュミスヒットが発生した際の動作である。なお、アドレスＡに対応するラインのデータは、ＣＰＵ２０ａ’にて一度も参照されないことが予め分かっているものとする。
【００２２】
ＣＰＵ２０ａ’にてストア先アドレスとしてアドレスＡを指定するストア命令の実行時にキャッシュミスヒットが発生すると、図２（ａ）に示すように、ＣＰＵ２０ａ’から２次キャッシュ３０’（キャッシュ制御装置３１’）に対してムーブイン要求信号が出力される（Ｏ１）。これに伴って、図２（ｂ）に示すように、ムーブイン動作により２次キャッシュ３０’からＣＰＵ２０ａ’に該当ライン（ＣＰＵ２０ａ’により指定されるアドレスＡに対応するライン）のデータが転送される（Ｏ２）。ＣＰＵ２０ａ’（１次キャッシュ）では、２次キャッシュ３０’から転送されたデータが該当エントリに書き込まれた後にストアデータが該当エントリに書き込まれることでストア命令の実行が完了し、キャッシュ状態情報格納回路２２７’の該当エントリの状態情報が“Ｉ”から“Ｍ”に更新される（Ｏ３）。ムーブイン動作により２次キャッシュ３０’からＣＰＵ２０ａ’に転送されたデータはＣＰＵ２０ａ’にて一度も参照されないため、２次キャッシュ３０’からＣＰＵ２０ａ’へのデータ転送（ムーブイン）が無駄に実施されたことになる。
【００２３】
図３は、図１のデータ処理装置の動作を示している。図３の動作は、ＣＰＵ２０ｂ、２０ｃ（１次キャッシュ）のいずれにもアドレスＡに対応するラインのデータが変更状態で存在しない場合にＣＰＵ２０ａ（１次キャッシュ）にてストア先アドレスとしてアドレスＡを指定するムーブインなしストア命令の実行時にキャッシュミスヒットが発生した際の動作である。なお、アドレスＡに対応するラインのデータは、ＣＰＵ２０ａにて一度も参照されないことが予め分かっているものとする。
【００２４】
ＣＰＵ２０ａにてストア先アドレスとしてアドレスＡを指定するムーブインなしストア命令の実行時にキャッシュミスヒットが発生すると、図３（ａ）に示すように、ＣＰＵ２０ａから２次キャッシュ３０（キャッシュ制御装置３１）に対してムーブイン要求信号ではなくムーブインなしストア要求信号が出力される（Ｏ１）。これにより、図３（ｂ）に示すように、ムーブイン動作は実施されず（Ｏ２）、２次キャッシュ３０のキャッシュ制御装置３１の内部にてキャッシュコヒーレンシの保証に関する動作のみが実施される。また、ＣＰＵ２０ａでは、ムーブインなしストア要求信号の出力と同時に、ストアデータが該当エントリに書き込まれることでストア命令の実行が完了し、キャッシュ状態情報格納回路２２７の該当エントリの状態情報が“Ｉ”から“Ｍ”に更新される（Ｏ３）。このように、図１のデータ処理装置１０においては、従来のデータ処理装置１０’の場合（図２）とは異なり、ムーブイン動作に伴う２次キャッシュ３０からＣＰＵ２０ａへの無駄なデータ転送が回避され、ＣＰＵ２０ａ、２０ｂ、２０ｃ間でのデータのコヒーレンシも保たれる。
【００２５】
図４は、従来のデータ処理装置の別の動作を示している。図４の動作は、ＣＰＵ２０ｃ’（１次キャッシュ）にアドレスＡに対応するラインのデータが変更状態で存在する場合にＣＰＵ２０ａ’（１次キャッシュ）にてストア先アドレスとしてアドレスＡを指定するストア命令の実行時にキャッシュミスヒットが発生した際の動作である。なお、アドレスＡに対応するラインのデータは、ＣＰＵ２０ａ’にて一度も参照されないことが予め分かっているものとする。
【００２６】
ＣＰＵ２０ａ’にてストア先アドレスとしてアドレスＡを指定するストア命令の実行時にキャッシュミスヒットが発生すると、図４（ａ）に示すように、ＣＰＵ２０ａ’から２次キャッシュ３０’（キャッシュ制御装置３１’）に対してムーブイン要求信号が出力される（Ｏ１）。これに伴って、図４（ｂ）に示すように、２次キャッシュ３０’（キャッシュ制御装置３１’）からＣＰＵ２０ｃ’に対してフラッシュ要求信号が出力される（Ｏ２）。このため、フラッシュ動作によりＣＰＵ２０ｃ’から２次キャッシュ３０’に該当ラインのダーティなデータが転送され（Ｏ３）、ＣＰＵ２０ｃ’にてキャッシュ状態情報格納回路２２７’の該当エントリの状態情報が“Ｍ”から“Ｉ”に更新される（Ｏ４）。そして、ＣＰＵ２０ｃ’から２次キャッシュ３０’に転送されたデータがムーブイン動作により２次キャッシュ３０’からＣＰＵ２０ａ’に転送される（Ｏ５）。ＣＰＵ２０ａ’（１次キャッシュ）では、２次キャッシュ３０’から転送されたデータが該当エントリに書き込まれた後にストアデータが該当エントリに書き込まれることでストア命令の実行が完了し、キャッシュ状態情報格納回路２２７’の該当エントリの状態情報が“Ｉ”から“Ｍ”に更新される（Ｏ６）。ムーブイン動作により２次キャッシュ３０’からＣＰＵ２０ａ’に転送されたデータはＣＰＵ２０ａ’にて一度も参照されないため、ＣＰＵ２０ｃ’から２次キャッシュ３０’へのデータ転送（フラッシュ）および２次キャッシュ３０’からＣＰＵ２０ａ’へのデータ転送（ムーブイン）が無駄に実施されたことになる。
【００２７】
図５は、図１のデータ処理装置の別の動作を示している。図５の動作は、ＣＰＵ２０ｃ（１次キャッシュ）にアドレスＡに対応するラインのデータが変更状態で存在する場合にＣＰＵ２０ａ（１次キャッシュ）にてストア先アドレスとしてアドレスＡを指定するムーブインなしストア命令の実行時にキャッシュミスヒットが発生した際の動作である。なお、アドレスＡに対応するラインのデータは、ＣＰＵ２０ａにて一度も参照されないことが予め分かっているものとする。
【００２８】
ＣＰＵ２０ａにてストア先アドレスとしてアドレスＡを指定するムーブインなしストア命令の実行時にキャッシュミスヒットが発生すると、図５（ａ）に示すように、ＣＰＵ２０ａから２次キャッシュ３０（キャッシュ制御装置３１）に対してムーブイン要求信号ではなくムーブインなしストア要求信号が出力される（Ｏ１）。これに伴って、図５（ｂ）に示すように、２次キャッシュ３０（キャッシュ制御装置３１）からＣＰＵ２０ｃに対してフラッシュ要求信号ではなくインバリデート要求信号が出力される（Ｏ２）。このため、フラッシュ動作は実施されず（Ｏ３）、ＣＰＵ２０ｃにてキャッシュ状態格納回路２２７の該当エントリの状態情報が“Ｍ”から“Ｉ”に更新される（Ｏ４）。また、ムーブイン動作も実施されず（Ｏ５）、ＣＰＵ２０ａでは、ムーブインなしストア要求信号の出力と同時に、ストアデータが該当エントリに書き込まれることでストア命令の実行が完了し、キャッシュ状態情報格納回路２２７の該当エントリの状態情報が“Ｉ”から“Ｍ”に更新される（Ｏ６）。このように、図１のデータ処理装置１０においては、従来のデータ処理装置１０’の場合（図４）とは異なり、フラッシュ動作に伴うＣＰＵ２０ｃから２次キャッシュ３０への無駄なデータ転送およびムーブイン動作に伴う２次キャッシュ３０からＣＰＵ２０ａへの無駄なデータ転送が回避され、ＣＰＵ２０ａ、２０ｂ、２０ｃ間でのデータのコヒーレンシも保たれる。
【００２９】
以上のように、本発明の一実施形態のデータ処理装置１０では、キャッシュコヒーレンシを保ちながらＣＰＵ２０ａ、２０ｂ、２０ｃの１次キャッシュ２２と２次キャッシュ３０との間での無駄なデータ転送（メモリアクセス）を削減することができる。この結果、データ処理装置１０における処理性能の向上および消費電力の削減に大きく寄与することができる。
【００３０】
以上、本発明について詳細に説明してきたが、前述の実施形態は発明の一例に過ぎず、本発明はこれに限定されるものではない。本発明を逸脱しない範囲で変形可能であることは明らかである。
【図面の簡単な説明】
【００３１】
【図１】本発明の一実施形態を示す図である。
【図２】従来のデータ処理装置の動作を示す図である。
【図３】図１のデータ処理装置の動作を示す図である。
【図４】従来のデータ処理装置の別の動作を示す図である。
【図５】図１のデータ処理装置の別の動作を示す図である。
【符号の説明】
【００３２】
１０‥データ処理装置；２０ａ、２０ｂ、２０ｃ‥ＣＰＵ；２１‥ＣＰＵコア；２１１‥命令デコーダ；２２‥１次キャッシュ；２２１ａ、２２１ｂ‥キャッシュＲＡＭ；２２２、２２３、２２４‥セレクタ；２２５ａ、２２５ｂ‥タグＲＡＭ；２２６‥アドレス比較器；２２７‥キャッシュ状態情報格納回路；２２８‥制御回路；３０‥２次キャッシュ；３１‥キャッシュ制御装置；Ｓ１‥ムーブイン禁止信号；Ｓ２‥アドレス比較結果信号；Ｓ３‥ムーブインなしストア要求信号
【図１】
0005420182.tif 000002
【図２】
0005420182.tif 000003
【図３】
0005420182.tif 000004
【図４】
0005420182.tif 000005
【図５】
0005420182.tif 000006