(57)【特許請求の範囲】
【請求項１】
共有メモリと、該共有メモリからデータの読出し及び書込みを行い、かつ、キャッシュメモリを内蔵する第１のプロセッサと、前記共有メモリからデータの読出し及び書込みを行う第２のプロセッサと、メモリマネージャと、から構成されるマルチプロセッサシステムにおいて、
前記メモリマネージャは、
前記第２のプロセッサの前記共有メモリに対するアクセスを監視し、読出し処理か書込み処理かを判別する判別手段を有し、
前記判別手段による判別結果が読出し処理である場合、
前記第１のプロセッサに前記第２のプロセッサによる前記共有メモリの読出しアドレスの該当データが前記第１のプロセッサのキャッシュメモリに含まれていて、かつ、前記データが含まれるキャッシュラインがダーティであることを条件に該キャッシュラインのデータを前記共有メモリに書き戻させ、該書戻し処理が完了したときに前記第２のプロセッサによる前記共有メモリの読出しを許可し、
前記判別手段による判別結果が書込み処理である場合、
前記第１のプロセッサに前記第２のプロセッサによる前記共有メモリの書込みアドレスの該当データが前記第１のプロセッサのキャッシュメモリに含まれていて、かつ、前記データが含まれるキャッシュラインが有効であることを条件に該キャッシュラインの有効ビットを無効化し、該無効化処理完了後、前記第２のプロセッサによる前記共有メモリの書込みがキャッシュメモリ１ライン分発生したと判定したときに前記第１のプロセッサに前記共有メモリの読出しを許可し、
前記メモリマネージャは、前記第２のプロセッサによる前記共有メモリの読出しアドレス及び書込みアドレスの内容により、前記第１のプロセッサが処理できる整合化処理コードを生成し、該整合化処理コードを内部レジスタに格納し、前記第１のプロセッサに該整合化処理コードを実行させることにより、キャッシュ整合化処理を実行する、
ことを特徴するマルチプロセッサシステム。
【請求項２】
共有メモリと、該共有メモリからデータの読出し及び書込みを行い、かつ、キャッシュメモリを内蔵する第１のプロセッサと、前記共有メモリからデータの読出し及び書込みを行い、かつ、キャッシュメモリを内蔵する第２のプロセッサと、メモリマネージャと、から構成されるマルチプロセッサシステムにおいて、
前記メモリマネージャは、
前記第１のプロセッサの前記共有メモリに対するアクセス及び前記第２のプロセッサの前記共有メモリに対するアクセスを監視し、
前記第１のプロセッサおよび前記第２のプロセッサのアクセスが読出し処理か書込み処理かを判別する判別手段を有し、
前記判別手段による判別結果が前記第１のプロセッサによる前記共有メモリに対する読出し処理である場合、
前記第２のプロセッサに前記第１のプロセッサによる前記共有メモリの読出しアドレスの該当データが前記第２のプロセッサのキャッシュメモリに含まれていて、かつ、前記データが含まれるキャッシュラインがダーティであることを条件に該キャッシュラインのデータを前記共有メモリに書き戻させ、該書戻し処理が完了したときに前記第１のプロセッサによる前記共有メモリの読出しを許可し、
前記判別手段による判別結果が前記第１のプロセッサによる前記共有メモリに対する書込み処理である場合、
前記第２のプロセッサに前記第１のプロセッサによる前記共有メモリの書込みアドレスの該当データが前記第２のプロセッサのキャッシュメモリに含まれていて、かつ、前記データが含まれるキャッシュラインが有効であることを条件に該キャッシュラインの有効ビットを無効化し、該無効化処理完了後、前記第１のプロセッサによる前記共有メモリの書込みがキャッシュメモリ１ライン分発生したと判定したときに前記第２のプロセッサに前記共有メモリの読出しを許可し、
前記判別手段による判別結果が前記第２のプロセッサによる前記共有メモリに対する読出し処理である場合、
前記第１のプロセッサに前記第２のプロセッサによる前記共有メモリの読出しアドレスの該当データが前記第１のプロセッサのキャッシュメモリに含まれていて、かつ、前記データが含まれるキャッシュラインがダーティであることを条件に、該キャッシュラインのデータを前記共有メモリに書き戻させ、該書戻し処理が完了したときに前記第２のプロセッサによる前記共有メモリの読出しを許可し、
前記判別手段による判別結果が前記第２のプロセッサによる前記共有メモリに対する書込み処理である場合、
前記第１のプロセッサに前記第２のプロセッサによる前記共有メモリの書込みアドレスの該当データが前記第１のプロセッサのキャッシュメモリに含まれていて、かつ、前記データが含まれるキャッシュラインが有効であることを条件に該キャッシュラインの有効ビットを無効化し、該無効化処理完了後、前記メモリマネージャは前記第２のプロセッサによる前記共有メモリの書込みがキャッシュメモリ１ライン分発生したと判定したときに前記第１のプロセッサに前記共有メモリの読出しを許可し、
前記メモリマネージャは、
前記第２のプロセッサによる前記共有メモリの読出しアドレス及び書込みアドレスの内容により、前記第１のプロセッサが処理できる整合化処理コードを生成し、該整合化処理コードを内部レジスタに格納し、前記第１のプロセッサに該整合化処理コードを実行させることにより、前記第１のプロセッサの該キャッシュラインのデータを前記共有メモリに書き戻す該書戻し処理および該キャッシュラインの有効ビットの無効化処理を実行し、
前記メモリマネージャは、
前記第１のプロセッサによる前記共有メモリの読出しアドレス及び書込みアドレスの内容により、前記第２のプロセッサが処理できる整合化処理コードを生成して、該整合化処理コードを内部レジスタに格納し、前記第２のプロセッサに該整合化処理コードを実行させることにより、前記第２のプロセッサの該キャッシュラインのデータを前記共有メモリに書き戻す該書戻し処理および該キャッシュラインの有効ビットの無効化処理を実行する、
ことを特徴するマルチプロセッサシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マルチプロセッサシステムに関し、特にプロセッサ内蔵キャッシュメモリを有効利用できるマルチプロセッサシステムに関する。
【背景技術】
【０００２】
一般に、プログラマブルコントローラは図６に示すように、シーケンスプログラムを実行するプロセッサ１と、Ｉ／Ｏ機器に対する入出力データを制御するプロセッサ２（通信コントローラ）と、Ｉ／Ｏ機器に対する入出力データを格納するためのメモリ３とから構成される。
【０００３】
プロセッサ２がメモリ３に書き込んだデータに対してプロセッサ１は読出しのみを行い、プロセッサ２がメモリ３から読み出すデータに対してプロセッサ１は書込みのみを行う。シーケンスプログラムを実行するプロセッサ１は汎用プロセッサである場合が多く、また汎用プロセッサはキャッシュメモリを内蔵している場合が多い。
【０００４】
プロセッサ１を、キャッシュメモリ４を内蔵した汎用プロセッサとした場合、図６のメモリ３をキャッシュメモリ４のキャッシュ空間にマッピングすることにより、シーケンスプログラムを高速に実行することができるが、メモリ３に対してはプロセッサ２もアクセスするので、そのままではプロセッサ１に内蔵されるキャッシュメモリ４とメモリ３の間でデータの整合を保持することができない。
図６の構成でプロセッサ１のキャッシュメモリ４にメモリ３をマッピングした場合において、キャッシュメモリ４とメモリ３の間でデータの不整合が発生する例を以下で説明する。
【０００５】
例えば、メモリ３のアドレスＡに対してプロセッサ１が書込み処理を行う場合を考える。プロセッサ１はまずキャッシュメモリ４内においてメモリ３のアドレスＡにマッピングされているアドレスにデータの書込みを行い、その後適当なタイミングでキャッシュメモリ４に書き込まれた内容をメモリ３のアドレスＡにコピーする（ライト・バック）。すなわち、キャッシュメモリの内容がメモリ３にコピーされるまでの間、キャッシュメモリ４の内容とメモリ３のアドレスＡの内容が一致していない時間が存在する。
この間に、プロセッサ２がメモリ３のアドレスＡの内容を読み出した場合、実際の値すなわちプロセッサ１がキャッシュメモリ４に書き込んだ値とは異なる値がプロセッサ２により読み出されることとなる。
【０００６】
次に、メモリ３のアドレスＢに対してプロセッサ１が読出し処理を行う場合を考える。メモリ３はプロセッサ１においてキャッシュメモリ４のキャッシュ空間にマッピングされているので、アドレスＢのデータが既にキャッシュメモリ４に取り込まれている場合、プロセッサ１はメモリ３に対して読出し処理を実行せずにキャッシュメモリ４のデータを読み出す。
よって、メモリ３のアドレスＢのデータがキャッシュメモリ４に取り込まれてからプロセッサ１がこれを読み出すまでの間に、プロセッサ２がメモリ３のアドレスＢに書込みを行った場合、プロセッサ１には実際の値すなわちプロセッサ２がメモリ３のアドレスＢに書き込んだ値とは異なる値が読み出される。
【０００７】
このような整合性保持の問題を解決するために、特許文献１に開示されるような先行技術を使用することができる。
特許文献１に記載のシステムでは、図７に示すように従来のシステムにメモリマネージャ５が追加されており、メモリマネージャ５はプロセッサ２のメモリ３に対するアクセスを監視し、＜１＞プロセッサ２によるメモリ３に対する読出しアクセスが発生したら、＜２＞プロセッサ１に対して割込み信号を出力し、プロセッサ２による読出しの該当アドレスデータがプロセッサ１のキャッシュメモリ４に含まれていて、かつ、そのキャッシュラインがダーティであれば、＜３＞そのキャッシュラインの内容をメモリ３に書き戻す処理を実行する（ライト・バック）。
【０００８】
また、読出し要求データが直前の読出し要求データと同一のキャッシュラインに含まれていない場合のみ整合化処理を実施する。メモリマネージャ５はプロセッサ１による以上の整合化処理が完了したことを条件にプロセッサ２によるメモリ３の読出しを許可する。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００８−１７６６１２号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
特許文献１に記載の技術により、プロセッサ１がキャッシュメモリ４に書込みしたデータがメモリ３に書戻しされていないタイミングで発生する不整合を回避することができる。しかしながら、特許文献１に記載の技術のみではプロセッサ２がメモリ３に書込みを行った場合、これをプロセッサ１のキャッシュメモリ４に反映させることができないという課題があった。
【００１１】
そこで本発明の目的は、複数のプロセッサ、１つのメモリを含むマルチプロセッサシステム構成のプログラマブルコントローラにおいてプロセッサ内蔵キャッシュメモリを有効利用する手法を提供することである。
【課題を解決するための手段】
【００１２】
本発明の請求項１に係る発明は、共有メモリと、該共有メモリからデータの読出し及び書込みを行い、かつ、キャッシュメモリを内蔵する第１のプロセッサと、前記共有メモリからデータの読出し及び書込みを行う第２のプロセッサと、メモリマネージャと、から構成されるマルチプロセッサシステムにおいて、前記メモリマネージャは、前記第２のプロセッサの前記共有メモリに対するアクセスを監視し、読出し処理か書込み処理かを判別する判別手段を有し、前記判別手段による判別結果が読出し処理である場合、前記第１のプロセッサに前記第２のプロセッサによる前記共有メモリの読出しアドレスの該当データが前記第１のプロセッサのキャッシュメモリに含まれていて、かつ、前記データが含まれるキャッシュラインがダーティであることを条件に該キャッシュラインのデータを前記共有メモリに書き戻させ、該書戻し処理が完了したときに前記第２のプロセッサによる前記共有メモリの読出しを許可し、前記判別手段による判別結果が書込み処理である場合、前記第１のプロセッサに前記第２のプロセッサによる前記共有メモリの書込みアドレスの該当データが前記第１のプロセッサのキャッシュメモリに含まれていて、かつ、前記データが含まれるキャッシュラインが有効であることを条件に該キャッシュラインの有効ビットを無効化し、該無効化処理完了後、前記第２のプロセッサによる前記共有メモリの書込みがキャッシュメモリ１ライン分発生したと判定したときに前記第１のプロセッサに前記共有メモリの読出しを許可し、前記メモリマネージャは、前記第２のプロセッサによる前記共有メモリの読出しアドレス及び書込みアドレスの内容により、前記第１のプロセッサが処理できる整合化処理コードを生成し、該整合化処理コードを内部レジスタに格納し、前記第１のプロセッサに該整合化処理コードを実行させることにより、キャッシュ整合化処理を実行する、ことを特徴するマルチプロセッサシステムである。
【００１３】
本発明の請求項２に係る発明は、共有メモリと、該共有メモリからデータの読出し及び書込みを行い、かつ、キャッシュメモリを内蔵する第１のプロセッサと、前記共有メモリからデータの読出し及び書込みを行い、かつ、キャッシュメモリを内蔵する第２のプロセッサと、メモリマネージャと、から構成されるマルチプロセッサシステムにおいて、前記メモリマネージャは、前記第１のプロセッサの前記共有メモリに対するアクセス及び前記第２のプロセッサの前記共有メモリに対するアクセスを監視し、前記第１のプロセッサおよび前記第２のプロセッサのアクセスが読出し処理か書込み処理かを判別する判別手段を有し、前記判別手段による判別結果が前記第１のプロセッサによる前記共有メモリに対する読出し処理である場合、前記第２のプロセッサに前記第１のプロセッサによる前記共有メモリの読出しアドレスの該当データが前記第２のプロセッサのキャッシュメモリに含まれていて、かつ、前記データが含まれるキャッシュラインがダーティであることを条件に該キャッシュラインのデータを前記共有メモリに書き戻させ、該書戻し処理が完了したときに前記第１のプロセッサによる前記共有メモリの読出しを許可し、前記判別手段による判別結果が前記第１のプロセッサによる前記共有メモリに対する書込み処理である場合、前記第２のプロセッサに前記第１のプロセッサによる前記共有メモリの書込みアドレスの該当データが前記第２のプロセッサのキャッシュメモリに含まれていて、かつ、前記データが含まれるキャッシュラインが有効であることを条件に該キャッシュラインの有効ビットを無効化し、該無効化処理完了後、前記第１のプロセッサによる前記共有メモリの書込みがキャッシュメモリ１ライン分発生したと判定したときに前記第２のプロセッサに前記共有メモリの読出しを許可し、前記判別手段による判別結果が前記第２のプロセッサによる前記共有メモリに対する読出し処理である場合、前記第１のプロセッサに前記第２のプロセッサによる前記共有メモリの読出しアドレスの該当データが前記第１のプロセッサのキャッシュメモリに含まれていて、かつ、前記データが含まれるキャッシュラインがダーティであることを条件に、該キャッシュラインのデータを前記共有メモリに書き戻させ、該書戻し処理が完了したときに前記第２のプロセッサによる前記共有メモリの読出しを許可し、前記判別手段による判別結果が前記第２のプロセッサによる前記共有メモリに対する書込み処理である場合、前記第１のプロセッサに前記第２のプロセッサによる前記共有メモリの書込みアドレスの該当データが前記第１のプロセッサのキャッシュメモリに含まれていて、かつ、前記データが含まれるキャッシュラインが有効であることを条件に該キャッシュラインの有効ビットを無効化し、該無効化処理完了後、前記メモリマネージャは前記第２のプロセッサによる前記共有メモリの書込みがキャッシュメモリ１ライン分発生したと判定したときに前記第１のプロセッサに前記共有メモリの読出しを許可し、前記メモリマネージャは、前記第２のプロセッサによる前記共有メモリの読出しアドレス及び書込みアドレスの内容により、前記第１のプロセッサが処理できる整合化処理コードを生成し、該整合化処理コードを内部レジスタに格納し、前記第１のプロセッサに該整合化処理コードを実行させることにより、前記第１のプロセッサの該キャッシュラインのデータを前記共有メモリに書き戻す該書戻し処理および該キャッシュラインの有効ビットの無効化処理を実行し、前記メモリマネージャは、前記第１のプロセッサによる前記共有メモリの読出しアドレス及び書込みアドレスの内容により、前記第２のプロセッサが処理できる整合化処理コードを生成して、該整合化処理コードを内部レジスタに格納し、前記第２のプロセッサに該整合化処理コードを実行させることにより、前記第２のプロセッサの該キャッシュラインのデータを前記共有メモリに書き戻す該書戻し処理および該キャッシュラインの有効ビットの無効化処理を実行する、ことを特徴するマルチプロセッサシステムである。
【発明の効果】
【００１８】
本発明をプログラマブルコントローラに適用して利用する場合、プロセッサ内のキャッシュメモリを有効にした際に、プロセッサがメモリの内容と異なるデータを読み出すことはなくなり、特に、通信コントローラによる連続したメモリの書き換えが行われた場合において、プロセッサ内蔵キャッシュメモリとメモリとの間で効率よくデータの整合を保持することができる。
【図面の簡単な説明】
【００１９】
【図１】本発明の実施の形態におけるマルチプロセッサシステムの要部ブロック図である。
【図２】本発明の実施の形態におけるアドレスデータとフラグを用いた整合化処理の例を説明する図である。
【図３】本発明の実施の形態における整合化処理コードを用いた整合化処理の例を説明する図である。
【図４】本発明の実施の形態におけるマルチプロセッサシステム上で実行される整合化処理のフローチャートである。
【図５】本発明におけるキャッシュメモリを有するプロセッサを複数備えたマルチプロセッサシステムの要部ブロック図である。
【図６】従来技術におけるキャッシュメモリを有するプロセッサを備えたマルチプロセッサシステムの構成図である。
【図７】従来技術におけるメモリとキャッシュメモリ間の整合性保持の仕組みを説明する図である。
【発明を実施するための形態】
【００２０】
以下、本発明の実施の形態を図面と共に説明する。なお、従来技術と同一または類似する構成は同じ符号を用いて説明する。
図１は、本発明の一実施の形態におけるマルチプロセッサシステムの要部ブロック図である。本発明におけるマルチプロセッサシステムは、従来技術と同様に、シーケンスプログラムを実行するプロセッサ１と、Ｉ／Ｏ機器に対する入出力データを制御するプロセッサ２（通信コントローラ）、Ｉ／Ｏ機器に対する入出力データを格納するためのメモリ３と、プロセッサ２のメモリ３に対するアクセスを監視するメモリマネージャ５を備えている。
【００２１】
本発明では、マルチプロセッサシステムをプログラマブルコントローラとして用いる場合、Ｉ／Ｏ機器からの入力データ・出力データはそれぞれメモリ３上のまとまった領域にマッピングされ、かつ、プロセッサ２（通信コントローラ）によるメモリアクセスはアドレスの順番通り連続的に実行されることに着目し、メモリマネージャ５にメモリ書込み監視機能を追加している。
【００２２】
メモリマネージャ５のメモリ書込み監視機能では、プロセッサ２のメモリ３に対するアクセスを監視し、書込み要求が発生した際に書込み要求データが直前の書込み要求データと同一のキャッシュラインに含まれていない場合、メモリマネージャ５はプロセッサ１に対して割込み信号を出力する。
【００２３】
プロセッサ１は、メモリマネージャ５から書込み要求に基づく割込み信号を受信すると、割込み信号に含まれる該当アドレスのデータがキャッシュメモリ４に存在する場合、そのキャッシュラインの有効ビットを無効にする。
【００２４】
メモリマネージャ５は更にプロセッサ２のメモリ３に対するアクセスを監視し、プロセッサ２によるメモリ３へのキャッシュメモリ１ライン分の書込みが完了するまでプロセッサ１によるメモリ３の読出し処理を許可しないように制御する。このように制御することにより、プロセッサ２によるＩ／Ｏ機器からの入力データのメモリ３への連続した書込み要求に対して、無駄な割込みをかけることなくキャッシュメモリ４とメモリ３との整合化を行うことができる。書込み要求データが直前の書込み要求データと同一のキャッシュラインに含まれているか否かは書込み要求アドレスから判断することができる。
なお、本発明においては、キャッシュラインごとにプロセッサ１によるメモリ３の読出し処理の許可を行うため、プロセッサ２によりメモリ３へ書き込まれるデータサイズはキャッシュラインサイズの倍数であることを前提としており、キャッシュラインサイズの倍数に足りない分のデータは、例えばプロセッサ２によりパディングされるなどして書き込まれる。
【００２５】
プロセッサ１による整合化処理の詳細について図２，３を用いて説明する。
図２は、メモリマネージャ５の内部構造の一例を示す図である。メモリマネージャ５はアクセス対象となるメモリ３のアドレスを格納するアドレスデータ格納部と、当該アドレスに対するアクセスが読出しか書込みかを示す読出し／書込みフラグを記憶するための内部レジスタを備えている。メモリマネージャ５がプロセッサ２によるメモリ３のアクセスを検知したらメモリマネージャ５はアクセス先のアドレスデータと、読出しか書込みかを示すフラグデータを内部レジスタにラッチし、プロセッサ１に対して割込み信号を出力する。
【００２６】
そして、プロセッサ１はメモリマネージャ５からの割込み信号を受けて、内部処理を整合化処理ルーチンに分岐し、メモリマネージャ５の内部レジスタにアクセスしアドレスデータ、及び読出しか書込みかの情報を取得し、該当するキャッシュラインに対して必要な整合化処理を実施する。
【００２７】
図３は、メモリマネージャ５の内部構造の他の例を示す図である。メモリマネージャ５は図２の例のように内部レジスタにアドレスデータ、読出しか書込みかを示すフラグデータをラッチする代わりに、プロセッサ１が直接実行できる整合化処理コードを生成しこれを内部レジスタに格納するように構成することもできる。このように構成する場合、プロセッサ１は割込み信号を受けて、メモリマネージャ５の内部レジスタに分岐、整合化処理コードを順次参照し整合化処理を実施する。
【００２８】
図４は、本発明の一実施の形態におけるマルチプロセッサシステムが備えるメモリマネージャ５上で実行される整合化処理の概略フローチャートである。
●［ステップＳＡ０１］メモリマネージャ５は、監視しているプロセッサ２によるアクセスが読出しであるのか、又は書込みであるのかを判定する。読出しである場合にはステップＳＡ０２へ進み、書込みである場合にはステップＳＡ０７へ進む。
●［ステップＳＡ０２］プロセッサ２によるメモリ３の読出しデータが直前の読出しデータと異なるキャッシュラインに含まれているか否かを判定する。直前の読出しデータと異なるキャッシュラインに含まれている場合にはステップＳＡ０３へ進み、そうでない場合には本処理を終了する。
【００２９】
●［ステップＳＡ０３］図２、図３で説明したキャッシュ整合化処理に用いられるデータを生成し、内部レジスタに格納する。
●［ステップＳＡ０４］プロセッサ１に対して、キャッシュからメモリ３へライト・バックするよう割込み信号を出力する。
●［ステップＳＡ０５］プロセッサ１による割込み処理が完了したか監視する。プロセッサ１による割込み処理が完了したらステップＳＡ０６へ進み、そうでない場合は割込み処理の監視を継続する。
●［ステップＳＡ０６］プロセッサ２によるメモリ３の読出しを許可する。
【００３０】
●［ステップＳＡ０７］プロセッサ２から書込み要求が発生したメモリ３のデータを含むキャッシュメモリ４の１ラインに相当するメモリ３のデータに対して、プロセッサ１による読出しをステップＳＡ１３に至るまで禁止する。
●［ステップＳＡ０８］プロセッサ２によるメモリ３への書込みを許可する。
●［ステップＳＡ０９］図２、図３で説明したキャッシュ整合化処理に用いられるデータを生成し、内部レジスタに格納する。
●［ステップＳＡ１０］プロセッサ１に対して、割込み信号を出力する。
●［ステップＳＡ１１］プロセッサ１による割込み処理が完了したか監視する。プロセッサ１は割込み処理において、メモリマネージャ５の内部レジスタから取得したキャッシュ整合化処理に用いられるデータに基づいて、キャッシュメモリ４にプロセッサ２が書込みをしようとしているアドレスのデータが存在するかを判定し、当該アドレスのキャッシュラインの有効ビットを無効に設定する処理を実行している。プロセッサ１による割込み処理が完了したらステップＳＡ１２へ進み、そうでない場合は割込み処理の監視を継続する。
【００３１】
●［ステップＳＡ１２］プロセッサ２によりメモリ３に対してキャッシュメモリ１ライン分のデータの書込みが発生するのを監視する。キャッシュメモリ１ライン分のデータの書込みが発生したらステップＳＡ１３へ進み、そうでない場合には監視を継続する。
●［ステップＳＡ１３］ステップＳＡ１２で書込みが完了したキャッシュラインのデータについて、プロセッサ１によるメモリ３の読出しを許可する。
【００３２】
以下では、本発明により、プロセッサ２がメモリ３に書込みを行った場合でも、プロセッサ１に内蔵されているキャッシュメモリとメモリ３との間でデータの整合が保たれることを示す。プロセッサ２がメモリ３のアドレスＢに書込み処理を行うことを考える。プロセッサ２による書込みサイクルが発生するとメモリマネージャ５はこれを検知し、プロセッサ１に割込み信号を出力する。また、このときメモリマネージャ５は内部レジスタに、メモリ３への書込みが発生したことを示すフラグ（以下、書込み発生フラグと呼ぶ）及びアドレスデータをラッチする。
【００３３】
プロセッサ１はメモリマネージャ５からの割込み信号を受けると、以下の処理を実行する。
●［ステップ０１］メモリマネージャ５の内部レジスタからメモリ３に対するアクセス情報、すなわち書込み発生フラグ及びアドレスデータ（アドレスＢ）を読み出す。
●［ステップ０２］キャッシュメモリ４にアドレスＢのデータが存在する場合、そのキャッシュラインの有効ビットを無効に設定する。
【００３４】
メモリマネージャ５は更にプロセッサ２によるメモリ３への書込みサイクルを監視し、キャッシュメモリ１ライン分の書込みが発生した後、プロセッサ１のメモリ３へのアクセスを許可する。
以上により、キャッシュメモリ４を有効にした場合でも、プロセッサ１がメモリ３の内容と異なるデータを読み出すことはなく、プロセッサ１内蔵キャッシュメモリ４とメモリ３の間でデータの整合が保持できるといえる。
【００３５】
以上、本発明の実施の形態について説明したが、本発明は上述した実施の形態の例に限定されることなく、適宜の変更を加えることにより、その他の態様で実施することができる。例えば、上述した実施の形態では、プロセッサ１にキャッシュメモリ４を設けた場合におけるメモリマネージャ５の制御処理に基づいて説明したが、図５に示すように、プロセッサ２内にもキャッシュメモリ６を設け、メモリマネージャ５により双方のプロセッサによるメモリ３へのアクセスを制御するように構成してもよい。このように構成した場合、メモリマネージャ５の内部に、プロセッサ１用のキャッシュ整合化処理に用いられるデータを格納する内部レジスタとは別に、プロセッサ２用のキャッシュ整合化処理に用いられるデータを格納する内部レジスタを用意し、それぞれのプロセッサが備えるキャッシュについて上記実施の形態で説明した整合化処理（キャッシュ・フィル、ライト・バックなど）を実行するようにすればよい。
【符号の説明】
【００３６】
１    プロセッサ
２    プロセッサ
３    メモリ
４    キャッシュメモリ
５    メモリマネージャ
６    キャッシュメモリ
【図１】
0006367689.tif 000002
【図２】
0006367689.tif 000003
【図３】
0006367689.tif 000004
【図４】
0006367689.tif 000005
【図５】
0006367689.tif 000006
【図６】
0006367689.tif 000007
【図７】
0006367689.tif 000008