(57)【特許請求の範囲】
【請求項１】
複数のワードからなるキャッシュラインを単位として、キャッシュメモリに格納されたデータを外部メモリに書き戻す機能をもつプロセッサを備えたプロセッサ・システムにおいて、
前記キャッシュラインより細かいアドレス単位で、前記外部メモリへの書き戻しをまだ行っていないことを示す情報を格納する小単位ダーティ情報格納部と、
Ｉ／Ｏ回路から前記外部メモリにデータをＤＭＡ（Direct Memory Access）転送する際の該当アドレスに対応するデータが前記キャッシュメモリに格納されている場合にセットされる特定モードフラグの情報を格納するモード情報格納部と、
前記特定モードフラグがセットされているときに、あるキャッシュラインの書き戻しが指示されると、前記小単位ダーティ情報格納部に格納されている情報に基づいて、ＤＭＡ転送前にそのキャッシュラインの書き戻しを行うか否かを決定するライトバック決定部と、を備えることを特徴とするプロセッサ・システム。
【請求項２】
前記ライトバック決定部は、前記小単位ダーティ情報格納部に前記外部メモリへの書き戻しをまだ行っていないことを示す情報が格納されているすべてのアドレス単位に対して前記Ｉ／Ｏ回路から外部メモリへのＤＭＡ転送が指示された場合には、そのキャッシュラインの書き戻しを行わずにそのＤＭＡ転送を行うことを特徴とする請求項1に記載のプロセッサ・システム。
【請求項３】
前記ライトバック決定部は、前記小単位ダーティ情報格納部に前記外部メモリへの書き戻しをまだ行っていないことを示す情報が格納されている少なくとも一部のアドレス単位に対して前記Ｉ／Ｏ回路から外部メモリへのＤＭＡ転送が指示されなかった場合には、そのキャッシュラインの書き戻しを行った後にそのＤＭＡ転送を行うことを特徴とする請求項1に記載のプロセッサ・システム。
【請求項４】
前記小単位ダーティ情報格納部は、キャッシュラインに含まれるワード単位あるいはバイト単位で前記外部メモリへの書き戻しをまだ行っていないことを示す情報を格納することを特徴とする請求項2または3に記載のプロセッサ・システム。
【請求項５】
前記キャッシュメモリが前記外部メモリに格納されるべき最新データを保持しているか否かを探索するスヌープ制御部を備え、
前記ライトバック決定部は、前記特定モードフラグがセットされているときに、前記スヌープ制御部によりあるキャッシュラインの書き戻しが指示されると、前記小単位ダーティ情報格納部に格納されている情報に基づいて、そのキャッシュラインの書き戻しを行うか否かを決定する請求項１〜4のいずれかに記載のプロセッサ・システム。
【請求項６】
前記小単位ダーティ情報格納部は、前記キャッシュメモリの内部に設けられ、
前記モード情報格納部は、前記プロセッサの内部に設けられることを特徴とする請求項１〜5のいずれかに記載のプロセッサ・システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、キャッシュメモリに格納されたデータを外部メモリに書き戻す機能をもつプロセッサを備えたプロセッサ・システムに関し、特にＩ／Ｏ回路から外部メモリにＤＭＡ転送を行うことが可能なプロセッサ・システムに関する。
【０００２】
【従来の技術】
プロセッサの動作周波数は、年々高くなる傾向にあるが、主記憶に用いられる外部メモリはプロセッサほど高速化が進んでいないため、両者のギャップを埋めるために、キャッシュメモリを用いるのが一般的である。
【０００３】
キャッシュメモリは、複数のワードからなるキャッシュラインごとに外部メモリとの間でデータのやり取りを行う。プロセッサがキャッシュメモリに書き込んだデータは、外部メモリに書き戻す（ライトバックを行う）必要があるため、各キャッシュラインごとに、外部メモリへの書き戻しを行った否かを示すダーティビットが設けられている。ダーティビットがセットされている場合には、まだ外部メモリへの書き戻しが終わっていないことを示している。
【０００４】
プロセッサには、種々のＩ／Ｏ回路が接続されるが、各Ｉ／Ｏ回路と外部メモリとの間で、プロセッサを介さずにデータをＤＭＡ転送すると、プロセッサの処理負担が軽減されるとともに、Ｉ／Ｏ回路から外部メモリに高速にデータを転送することができる。
【０００５】
【発明が解決しようとする課題】
ところが、キャッシュメモリのデータを外部メモリにまだ書き戻していないアドレスに対してＤＭＡ転送が指示される場合もありうる。このような場合、ＤＭＡ転送を行う前に、外部メモリに対してライトバック動作を行う必要がある。また、まだライトバック動作を行っていないキャッシュラインのアドレスを包含するアドレス範囲についてＤＭＡ転送を行う場合には、そのキャッシュラインを無効（インバリデード）にする必要がある。
【０００６】
例えば、図８は、キャッシュメモリのアドレス情報を格納するタグに0x2000が格納され、あるキャッシュラインが４ワードで構成されている例を示している。この場合、キャッシュラインには、0x2000〜0x200f番地までの４ワードデータが格納されている。
【０００７】
図７の場合、キャッシュラインの一部のみが更新されても、そのキャッシュラインのダーティビットはセットされる。すなわち、ダーティビットだけでは、そのキャッシュラインのどこが更新されたのかを知ることはできない。
【０００８】
ダーティビットがセットされている状態で、例えば、0x2004番地から１ワード分のデータをＩ／Ｏ回路から外部メモリにＤＭＡ転送する場合には、ＤＭＡ転送を行う前にまずキャッシュラインのライトバック動作が行われる。
【０００９】
ところが、キャッシュラインの中で更新されたのが0x2005番地の１バイトだけの場合、この１バイト分はＤＭＡ転送により書き換えられるので、ライトバック動作は意味がなくなってしまう。
【００１０】
このように、従来は、キャッシュライン単位でダーティビットを持っているものの、キャッシュライン中のどこが更新されたのかを示す情報をもっていなかったため、本来行う必要がない場合までライトバック動作を行うことが多く、不要なバストランザクションが発生する原因になっていた。
【００１１】
また、このような不要なバストランザクションの発生を避けるために、ＤＭＡの対象となるデータを定義する際に各キャッシュラインに一つずつデータが配置されるようにデータの宣言を工夫する（例えば、データの宣言間にダミーの宣言を挿入するなど）手法も考えられるが、このような手法はソフトウエアの開発効率を低下させる要因になる。
【００１２】
一方、キャッシュメモリが外部メモリに格納されるべき最新データを保持しているか否かを探索するスヌープ機能を持つプロセッサの場合、ソフトウエアによるデータ一貫性を保持するためのソフトウェアによる操作は必要ないが、Ｉ／Ｏ回路から外部メモリにＤＭＡ転送を行う場合は以下の動作が行われる。
【００１３】
ＤＭＡ転送を行うべき対象があるキャッシュラインにヒットした場合には、そのキャッシュラインはインバリデートされる。このキャッシュラインにダーティビットがセットされている場合は、ＤＭＡ転送を行う前にこのキャッシュラインが書き戻され、その後にＤＭＡ転送が行われる。
【００１４】
この場合も、例えばタグに0x2000番地が格納されていてダーティビットがセットされている場合には、仮に更新すべきデータが0x2005番地のみに存在する場合でも、キャッシュライン全体が書き戻される。
【００１５】
このように、スヌープ機能を持つ従来のプロセッサは、キャッシュライン中のどこが更新されたかを示す情報を持っていなかったため、必ずライトバック動作を行わなければならず、不要なバストランザクションを発生させる原因になっていた。
【００１６】
また、ソフトウエアによりデータの宣言を工夫する手法を採用すると、ソフトウエアの開発効率が悪くなるという問題があった。
【００１７】
本発明は、このような点に鑑みてなされたものであり、その目的は、ＤＭＡ転送時の不要なバストランザクションを低減可能なプロセッサ・システムを提供することにある。
【００１８】
【課題を解決するための手段】
上述した課題を解決するために、本発明は、複数のワードからなるキャッシュラインを単位として、キャッシュメモリに格納されたデータを外部メモリに書き戻す機能をもつプロセッサを備えたプロセッサ・システムにおいて、前記キャッシュラインより細かいアドレス単位で、前記外部メモリへの書き戻しをまだ行っていないことを示す情報を格納する小単位ダーティ情報格納部と、Ｉ／Ｏ回路から前記外部メモリにデータをＤＭＡ（Direct Memory Access）転送する際の該当アドレスに対応するデータが前記キャッシュメモリに格納されている場合にセットされる特定モードフラグの情報を格納するモード情報格納部と、前記特定モードフラグがセットされているときに、あるキャッシュラインの書き戻しが指示されると、前記小単位ダーティ情報格納部に格納されている情報に基づいて、ＤＭＡ転送前にそのキャッシュラインの書き戻しを行うか否かを決定するライトバック決定部と、を備える。
【００１９】
本発明では、キャッシュラインの書き戻しを行った外部メモリのメモリ領域に対して、書き戻しの直後にＩ／Ｏ回路からのＤＭＡ転送を行う場合は、書き戻しを省略するようにして不要なバストランザクションを低減する。
【００２０】
【発明の実施の形態】
以下、本発明に係るプロセッサ・システムについて、図面を参照しながら具体的に説明する。
【００２１】
（第１の実施形態）
図１は本発明に係るプロセッサ・システムの第1の実施形態の概略構成を示すブロック図である。図１のプロセッサ・システムは、指定されたプログラムに従って各種演算処理を行うＣＰＵ１と、外部メモリ２と、外部メモリ２に格納すべきデータを一時的に格納するキャッシュメモリ３と、バスの調停を行うアービタ４とを備えている。キャッシュメモリ３、外部メモリ２およびアービタ４はいずれもバス５に接続されている。このバス５には、各種のＩ／Ｏ回路６も接続されている。
【００２２】
キャッシュメモリ３は、図２に示すように、複数のワードデータからなるキャッシュライン１０を単位としてデータの更新を行う。キャッシュメモリ３には、各キャッシュライン１０のデータに対応するアドレス情報を格納するタグ１１と、キャッシュライン１０のデータを外部メモリ２に書き戻す必要があるか否かを示す情報（ダーティビット）を格納するダーティビット格納部１２と、キャッシュライン１０中の各ワード１〜４のそれぞれごとに外部メモリ２への書き戻しをまだ行っていないことを示す情報（ワードダーティビット）を格納するワードダーティビット格納部１３とを有する。
【００２３】
ワードダーティビットは、対応するワードデータがダーティ状態（そのワードデータが更新されて、まだ外部メモリ２への書き戻しを行っていない状態）のときにセットされる。このとき、そのワードデータが属するキャッシュライン１０のダーティビットも当然にセットされる。
【００２４】
ＣＰＵ１は、Ｉ／Ｏ回路６から外部メモリ２にＤＭＡ（Direct Memory Access）転送する際にキャッシュメモリ３の該当アドレスを書き戻すか、あるいはインバリデートする必要があるときにセットされる特定モードフラグを格納するモード情報格納部２１と、キャッシュライン１０の書き戻しを実際に行うか否かを決定するライトバック決定部２２と、を有する。
【００２５】
ライトバック決定部２２は、特定モードフラグがセットされているときに、あるキャッシュライン１０の書き戻しが指示されると、ワードダーティビット格納部１３に格納されている情報に基づいて、そのキャッシュライン１０の書き戻しを実際に行うか否かを決定する。
【００２６】
図３はライトバック決定部２２の処理動作を示すフローチャートである。まず、キャッシュラインのダーティビットがセットされているか否かを判定する（ステップＳ１）。セットされていないと判定されると図３の処理を終了する。
【００２７】
上記のダーティビットがセットされていると判定されると、次に特定モードフラグがセットされているか否かを判定する（ステップＳ２）。このフラグがセットされるのは、Ｉ／Ｏ回路６から外部メモリ２にＤＭＡ転送する際に、ＤＭＡ転送する該当アドレスのデータがキャッシュメモリ３に格納されている場合である。このフラグがセットされていないと判定されると、後述するステップＳ６に進む。
【００２８】
特定モードフラグがセットされている場合には、次に、ＤＭＡ転送する該当アドレスに対応するワードデータのワードダーティビットがセットされているか否かを判定する（ステップＳ３）。このワードダーティビットがセットされている場合には、次に、ＤＭＡ転送するアドレス以外のアドレスに対応するワードデータのワードダーティビットがセットされているか否かを判定する（ステップＳ４）。
【００２９】
ステップＳ３でワードダーティビットがセットされていないと判定された場合、あるいはステップＳ４の判定が否定された場合、すなわちワードダーティビットがセットされているすべてのワードデータのアドレスに対してＤＭＡ転送する場合には、書き戻しを行わずにＩ／Ｏ回路６からのＤＭＡ転送を行う（ステップＳ５）。
【００３０】
一方、ステップＳ４の判定が肯定された場合、すなわちＤＭＡ転送の対象となるワードデータ以外についてもワードダーティビットがセットされている場合は、該当アドレスに対応するキャッシュライン１０の書き戻しを行った後にＩ／Ｏ回路６から外部メモリ２へのＤＭＡ転送を行う（ステップＳ６）。
【００３１】
このように、第1の実施形態では、キャッシュライン１０中の各ワードデータごとに、ダーティ状態か否かを示すワードダーティビットを設け、ワードダーティビットがセットされたすべてのワードデータに対応するアドレスに対してＤＭＡ転送が指示された場合には、キャッシュライン１０の書き戻しを行わずにＩ／Ｏ回路６からのＤＭＡ転送を行うようにしたため、実質的に意味のないキャッシュライン１０の書き戻し処理を行わずに済み、不要なバストランザクションを低減できる。また、不要なバストランザクションを低減するためにソフトウェアによる工夫を行わなくて済み、ソフトウェアの開発効率の向上が図れる。
【００３２】
（第２の実施形態）
図４は本発明に係るプロセッサ・システムの第2の実施形態の概略構成を示すブロック図である。図４では、図１と共通する構成部分には同一符号を付しており、以下では相違点を中心に説明する。
【００３３】
図４のキャッシュメモリ３は、図５に詳細構成を示すように、キャッシュライン１０中の各バイトデータごとに外部メモリ２への書き戻しをまだ行っていないことを示す情報（バイトダーティビット）を格納するバイトダーティ格納部１４とを有する。
【００３４】
ＣＰＵ１内のライトバック決定部２２は、バイトダーティビットがセットされたすべてのバイトデータに対応するアドレスについてＤＭＡ転送が指示された場合には、キャッシュライン１０の書き戻しを行わずにＩ／Ｏ回路６からのＤＭＡ転送を行い、ＤＭＡ転送が指示されていないアドレスに対応するバイトデータのバイトダーティビットもセットされている場合には、キャッシュライン１０の書き戻しを行ってからＩ／Ｏ回路６からのＤＭＡ転送を行う。
【００３５】
このように、第2の実施形態では、キャッシュライン１０中の各バイトデータごとに、ダーティ状態か否かを示すバイトダーティビットを設け、バイトダーティビットがセットされたすべてのバイトデータに対応するアドレスについてＤＭＡ転送が指示された場合は、キャッシュライン１０の書き戻しを行わずにＩ／Ｏ回路６からのＤＭＡ転送を行うようにしたため、実質的に意味のないキャッシュライン１０の書き戻し処理を行わなくて済み、不要なバストランザクションを低減できる。また、不要なバストランザクションの低減のためにソフトウェアによる工夫を行わなくて済み、ソフトウェアの開発効率を向上できる。
【００３６】
特に、第２の実施形態の場合、キャッシュライン１０中のバイトデータごとに、ダーティ状態か否かを示すバイトダーティビットを設けるため、書き戻しが必要か否かの判断を第1の実施形態よりもさらに効率よく行うことができる。
【００３７】
（第3の実施形態）
図６は本発明に係るプロセッサ・システムの第３の実施形態の概略構成を示すブロック図である。図６では、図１と共通する構成部分には同一符号を付しており、以下では相違点を中心に説明する。
【００３８】
図６のプロセッサ・システムは、図１の構成に加えて、スヌープ機能を実現するためのスヌープ制御部２３を備えている。ここで、スヌープとは、Ｉ／Ｏ回路によるＤＭＡ転送の際、バス上に出現するＤＭＡ転送のアドレスを見て、そのアドレスに対応するデータをキャッシュメモリが保持しているか否かを判定し、そのＤＭＡ転送の種類に応じて、キャッシュメモリに対して必要な処理を行うことである。
【００３９】
Ｉ／Ｏ回路６から外部メモリ２にＤＭＡ転送する際に、ＤＭＡ転送する該当アドレスのデータがキャッシュメモリ３に格納されている場合には、上述した特定モードフラグがセットされる。このフラグがセットされている状態で、スヌープ制御部２３が発行したアドレスがあるキャッシュライン１０にヒットした場合には、このアドレスに対応するワードデータのワードダーティビットのみがセットされているか否かを判定し、判定が肯定されるとキャッシュライン１０の書き戻しを行わずにＩ／Ｏ回路６からのＤＭＡ転送を行い、判定が否定されるとキャッシュライン１０の書き戻しを行ってからＩ／Ｏ回路６からのＤＭＡ転送を行う。
【００４０】
このように、第3の実施形態では、スヌープ機能を備えているプロセッサ・システムにおいて、スヌープ処理を行った結果、外部メモリ２に最新データが格納されていないと判断された場合でも、書き戻しを行うべきワードデータのワードダーティビットのみがセットされていれば、書き戻しを行わずにＩ／Ｏ回路６からのＤＭＡ転送を行うようにしたため、第１および第２の実施形態と同様に、無駄なバストランザクションを低減できる。
【００４１】
図６はキャッシュライン１０中のワードデータごとにワードダーティビットを設ける例を示しているが、キャッシュライン１０中のバイトデータごとにバイトダーティビットを設けてもよい。この場合のブロック図は図７のようになる。この場合も、図３と図５のプロセッサ・システムを併せた効果が得られる。
【００４２】
【発明の効果】
以上詳細に説明したように、本発明によれば、ワードダーティビット格納部１３とモード情報格納部２１を設けてキャッシュライン１０の書き戻しを行うか否かを判断するため、必要な場合のみキャッシュライン１０の書き戻しが行われ、不要なバストランザクションを低減できる。
【図面の簡単な説明】
【図１】本発明に係るプロセッサ・システムの第1の実施形態の概略構成を示すブロック図。
【図２】第１の実施形態のキャッシュメモリの詳細構成を示すブロック図。
【図３】ライトバック決定部の処理動作を示すフローチャート。
【図４】本発明に係るプロセッサ・システムの第2の実施形態の概略構成を示すブロック図。
【図５】第２の実施形態のキャッシュメモリの詳細構成を示すブロック図。
【図６】本発明に係るプロセッサ・システムの第３の実施形態の概略構成を示すブロック図。
【図７】第３の実施形態の変形例を示すブロック図。
【図８】キャッシュメモリのライトバック動作を説明する図。
【符号の説明】
１  ＣＰＵ
２  外部メモリ
３  キャッシュメモリ
４  アービタ
５  バス
６  Ｉ／Ｏ回路
１０  キャッシュライン
１１  タグ
１２  ダーティビット格納部
１３  ワードダーティビット格納部
１４  ビットダーティビット格納部
２１  モード情報格納部
２２  ライトバック決定部
２３  スヌープ制御部
【図１】
0004434534.tif 000002
【図２】
0004434534.tif 000003
【図３】
0004434534.tif 000004
【図４】
0004434534.tif 000005
【図５】
0004434534.tif 000006
【図６】
0004434534.tif 000007
【図７】
0004434534.tif 000008
【図８】
0004434534.tif 000009