(57)【要約】【課題】  複数の記憶部とこれら複数の記憶部に対する通信制御を分担する複数のシステムコントローラとをそなえた情報処理装置において、メモリアクセス要求にかかる処理時間を短縮できるようにする。【解決手段】  複数のシステムコントローラ５０−１，５０−２のそれぞれに、メモリアクセス要求を受け取った場合に、ブロードキャスト送受信部５３−１，５３−２による検索指示の送受信もしくはグローバルスヌープ制御部５４−１，５４−２による処理に並行して、当該システムコントローラが担当する記憶部からメモリアクセス要求の対象データを検索するローカルスヌープ制御部５５−１，５５−２と、このローカルスヌープ制御部５５−１，５５−２よって対象データが検索され且つ所定の条件を満たす場合にメモリアクセス要求を実行させるメモリアクセス制御部５６−１，５６−２とをそなえる。【選択図】  図１
2006072509.tif 000002
【特許請求の範囲】
【請求項１】
複数の記憶部と、
互いに通信可能に接続され前記複数の記憶部に対する通信制御を分担する複数のシステムコントローラとをそなえ、
前記複数のシステムコントローラのそれぞれが、
メモリアクセス要求が発生した場合に、当該メモリアクセス要求の対象データを前記複数の記憶部すべてから検索すべく、当該メモリアクセス要求の対象データを検索させる検索指示を、前記複数のシステムコントローラ間で送受信するブロードキャスト送受信部と、
該ブロードキャスト送受信部により送受信された前記検索指示に応じて、当該システムコントローラが担当する記憶部から前記メモリアクセス要求の対象データを検索し、前記検索の結果を前記複数のシステムコントローラ間で通信し合うグローバルスヌープ制御部と、
前記メモリアクセス要求を当該システムコントローラが受け取った場合に、前記ブロードキャスト送受信部による前記検索指示の送受信もしくは前記グローバルスヌープ制御部による処理に並行して、当該システムコントローラが担当する記憶部から前記メモリアクセス要求の対象データを検索するローカルスヌープ制御部と、
該ローカルスヌープ制御部よって当該システムコントローラが担当する記憶部から前記メモリアクセス要求の対象データが検索され、且つ所定の条件を満たす場合に、前記メモリアクセス要求を実行させるメモリアクセス制御部とをそなえて構成されたことを特徴とする、情報処理装置。
【請求項２】
前記複数のシステムコントローラのそれぞれが、
前記メモリアクセス制御部が前記メモリアクセス要求を実行させる際に、前記ブロードキャスト送受信部が前記検索指示の送受信を未実行の場合には、前記ブロードキャスト送受信部による前記検索指示の送受信をキャンセルする第１キャンセル部をそなえて構成されていることを特徴とする、請求項１記載の情報処理装置。
【請求項３】
前記複数のシステムコントローラのそれぞれが、
前記メモリアクセス制御部が前記メモリアクセス要求を実行させる際に、前記ブロードキャスト送受信部が前記検索指示の送受信を実行している場合には、前記グローバルスヌープ制御部による処理をキャンセルする第２キャンセル部をそなえて構成されていることを特徴とする、請求項１又は請求項２記載の情報処理装置。
【請求項４】
前記複数のシステムコントローラが、他の記憶部とは排他的にデータを保持する共有記憶部を前記複数の記憶部の一つとしてそなえ、
前記所定の条件が、前記ローカルスヌープ制御部により検索された前記対象データを保持していた記憶部が前記共有記憶部であることを特徴とする、請求項１〜３のいずれか１項に記載の情報処理装置。
【請求項５】
複数の記憶部と、互いに通信可能に接続され前記複数の記憶部に対する通信制御を分担する複数のシステムコントローラとをそなえ、前記複数のシステムコントローラのそれぞれが、メモリアクセス要求が発生された場合に、当該メモリアクセス要求の対象データを前記複数の記憶部すべてから検索すべく、当該メモリアクセス要求の対象データを検索させる検索指示を、前記複数のシステムコントローラ間で送受信し、送受信された前記検索指示に応じて、当該システムコントローラが担当する記憶部から前記メモリアクセス要求の対象データを検索して、前記検索の結果を前記複数のシステムコントローラ間で通信し合うグローバルスヌープ処理を行なうように構成された情報処理装置における、ローカルスヌープ制御方法であって、
前記メモリアクセス要求を当該システムコントローラが受け取った場合に、前記検索指示の送受信もしくは前記グローバルスヌープ処理に並行して、当該システムコントローラが担当する記憶部から前記メモリアクセス要求の対象データを検索するローカルスヌープステップと、
該ローカルスヌープステップにおいて当該システムコントローラが担当する記憶部から前記メモリアクセス要求の対象データが検索され、且つ所定の条件を満たす場合に、前記メモリアクセス要求を実行するメモリアクセス要求実行ステップとを含んでいることを特徴とする、ローカルスヌープ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、少なくとも、複数の記憶部と、これら複数の記憶部に対する通信制御を分担する複数のシステムコントローラとをそなえた大規模な情報処理装置において、前記複数の記憶部に対するメモリアクセス要求を実行するための技術に関する。
【背景技術】
【０００２】
一般に、複数のＣＰＵ（Central Processing Unit）及びＩ／Ｏ（Input/Output）装置（入出力装置）等を装備した大規模な情報処理装置では、これらＣＰＵ及びＩ／Ｏ装置等から発生されるメモリアクセス要求とＣＰＵ内に実装された記憶部（例えば、キャッシュメモリ）との間の通信を制御する、例えばＬＳＩ（Large Scale Integration）で構成されたシステムコントローラが複数そなえられている。
【０００３】
図６は従来の大規模な情報処理装置１００の構成を示すブロック図である。この図６に示すように、従来の大規模な情報処理装置１００は、システムボードＡ，Ｂをそなえ、システムボードＡにＣＰＵ１０，１１及びＩ／Ｏ装置２０，２１が装備され、システムボードＢにＣＰＵ１２，１３及びＩ／Ｏ装置２２，２３が装備されている。
なお、各ＣＰＵ１０〜１３は、複数階層（ここでは２階層）のキャッシュメモリを実装しており、ＣＰＵ１０は１次キャッシュメモリ１０ａ及び２次キャッシュメモリ１０ｂをそなえ、ＣＰＵ１１は１次キャッシュメモリ１１ａ及び２次キャッシュメモリ１１ｂをそなえ、ＣＰＵ１２は１次キャッシュメモリ１２ａ及び２次キャッシュメモリ１２ｂをそなえ、ＣＰＵ１３は１次キャッシュメモリ１３ａ及び２次キャッシュメモリ１３ｂをそなえている。
【０００４】
また、システムボードＡにはメインメモリ３０，３１が装備され、システムボードＢにはメインメモリ３２，３３が装備されている。
さらに、システムボードＡには、システムボードＡに装備された記憶部（ここでは、１次キャッシュメモリ１０ａ，１１ａ、２次キャッシュメモリ１０ｂ，１１ｂ、及びメインメモリ３０，３１）に対する通信制御を行なうシステムコントローラ４０−１がそなえられている。
【０００５】
一方、システムボードＢには、システムボードＢに装備された記憶部（ここでは、１次キャッシュメモリ１２ａ，１３ａ、２次キャッシュメモリ１２ｂ，１３ｂ、及びメインメモリ３２，３３）との通信制御を行なうシステムコントローラ４０−２がそなえられている。
このように、システムコントローラ４０−１，４０−２は、情報処理装置１００にそなえられた複数の記憶部に対する通信制御を分担しており、システムコントローラ４０−１とシステムコントローラ４０−２とは通信制御を行なう対象の記憶部が異なるだけで、その構成は同様となっている。なお、これらシステムコントローラ４０−１とシステムコントローラ４０−２とは互いに通信可能に接続されている。
【０００６】
システムコントローラ４０−１は、メモリアクセス要求受信部４１−１、検索部４２−１、ブロードキャスト送受信部４３−１、グローバルスヌープ制御部４４−１、及びメモリアクセス制御部４５−１をそなえて構成されている。
メモリアクセス要求受信部４１−１は、ＣＰＵ１０，１１もしくはＩ／Ｏ装置２０，２１のいずれかから発行されたメモリアクセス要求を受信するものである。
【０００７】
検索部４２−１は、メモリアクセス要求が発生された場合に、当該メモリアクセス要求のアクセス対象データ（以下、単に対象データという）をシステムコントローラ４０−１が担当する記憶部、ここでは、１次キャッシュメモリ１０ａ，１１ａ、２次キャッシュメモリ１０ｂ，１１ｂ、及びメインメモリ３０，３１から検索するものである。
ブロードキャスト送受信部４３−１は、メモリアクセス要求が発生された場合に、当該メモリアクセス要求の対象データを、情報処理装置１００にそなえられたすべての記憶部から検索すべく、当該メモリアクセス要求の対象データを検索させる検索指示（検索要求）を他のシステムコントローラ４０−２との間で送受信するものである。つまり、ブロードキャスト送受信部４３−１は、メモリアクセス要求受信部４１−１がメモリアクセス要求を受け取った場合には、他のシステムコントローラ４０−２に対してかかる検索指示を放送出力（ブロードキャスト）する一方、他のシステムコントローラ４０−２から検索指示がブロードキャストされた場合には、かかる検索指示を受信する。
【０００８】
グローバルスヌープ制御部４４−１は、ブロードキャスト送受信部４３−１により送受信された検索指示に応じて、検索部４２−１に担当する記憶部（ここでは、１次キャッシュメモリ１０ａ，１１ａ、２次キャッシュメモリ１０ｂ，１１ｂ、及びメインメモリ３０，３１）からメモリアクセス要求の対象データを検索させ、検索の結果を他のシステムコントローラ４０−２との間で通信し合うことにより、他のシステムコントローラ４０−２における検索結果と自身の検索結果とに基づいてメモリアクセス要求に対する動作を確定するものである。
【０００９】
メモリアクセス制御部４５−１は、グローバルスヌープ制御部４４−１により確定されたメモリアクセス要求に対する動作に基づいて、メモリアクセス要求を実行するものである。
なお、システムコントローラ４０−２にそなえられたメモリアクセス要求受信部４１−２、検索部４２−２、ブロードキャスト送受信部４３−２、グローバルスヌープ制御部４４−２、及びメモリアクセス制御部４５−２は、通信制御の対象が１次キャッシュメモリ１２ａ，１３ａ、２次キャッシュメモリ１２ｂ，１３ｂ、及びメインメモリ３２，３３である点を除いては、システムコントローラ４０−１のメモリアクセス要求受信部４１−１、検索部４２−１、ブロードキャスト送受信部４３−１、グローバルスヌープ制御部４４−１、及びメモリアクセス制御部４５−１のそれぞれと同様のものである。
【００１０】
図７は従来の大規模な情報処理装置１００の動作を説明するためのタイムチャートである。この図７に示すように、ＣＰＵ１０からメモリアクセス要求（ここではデータフェッチ要求；以下、フェッチ要求という）が発生し（ｔ１参照）、ＣＰＵ１０から発行されたフェッチ要求をシステムコントローラ４０−１のメモリアクセス要求受信部４１−１が受け取ると（ｔ２参照）、ブロードキャスト送受信部４３−１がかかるフェッチ要求の対象データを全ての記憶部から検索すべく、かかるフェッチ要求の対象データの検索指示を他のシステムコントローラ４０−２にブロードキャストする（ｔ３参照）。
【００１１】
そして、ブロードキャスト送受信部４３−１による検索指示のブロードキャストが完了すると、グローバルスヌープ制御部４４−１，４４−２が、送受信された検索指示に基づいて検索部４２−１，４２−２による検索（スヌープ）を同期して実行させる（ｔ４参照）。
次いで、検索部４２−１，４２−２による検索が完了すると、グローバルスヌープ制御部４４−１，４４−２は、互いに同期してかかる検索の結果を通信し合う（ｔ５参照）とともに、かかる検索の結果に応じて、フェッチ要求に対する最終的な動作を判定して確定する（ｔ６参照）。
【００１２】
ここで、検索部４２−１によりフェッチ要求の対象データがＣＰＵ１１の１次キャッシュメモリ１１ａもしくは２次キャッシュメモリ１１ｂ（ここでは１次キャッシュメモリ１１ａとする）から検索され、グローバルスヌープ制御部４４−１，４４−２が、かかるフェッチ要求に対して１次キャッシュメモリ１１ａから対象データを読み出すことが確定した場合には、メモリアクセス制御部４５−１がＣＰＵ１１の１次キャッシュメモリ１１ａに対して、フェッチ要求の対象データに対する読み出し（リード）要求を発行し（ｔ７参照）、１次キャッシュメモリ１１ａからシステムコントローラ４０−１へフェッチ要求の対象データが読み出された後（ｔ８，ｔ９参照）、メモリアクセス制御部４５−１が１次キャッシュメモリ１１ａから読み出した対象データをフェッチデータ応答としてＣＰＵ１０に対して送信することにより、かかるフェッチ要求の実行が完了する（ｔ１０，ｔ１１参照）。
【００１３】
このように、従来の大規模な情報処理装置１００では、発行されたメモリアクセス要求に対して複数のシステムコントローラ４０−１，４０−２間で通信を行なって、かかるメモリアクセス要求に対する処理を判定して実行するが、このときシステムコントローラ４０−１，４０−２間で行なわれるブロードキャスト処理（図７のｔ３参照）及び検索結果の通信処理（図７のｔ５参照）に時間がかかるため、従来の大規模な情報処理装置１００では、メモリアクセス要求が発生してから当該メモリアクセス要求を実行するまでに多くの時間を要してしまう。
【００１４】
つまり、従来の大規模な情報処理装置１００では、メモリアクセス要求に対する処理全体にかかる時間のうち、メモリアクセス要求の対象データの検索のためのブロードキャスト処理や検索結果の通信処理にかかる時間が大きな割合を占める。
そこで、メモリアクセス要求に対する処理にかかる時間を短縮するために、従来から、情報処理装置１００において、グローバルスヌープ制御部４４−１を、検索部４２−１による検索の結果のみからメモリアクセス要求に対する動作を確定しうる場合には、複数のグローバルスヌープ制御部４４−１，４４−２間での検索結果の通信を行なうことなく、当該メモリアクセス要求に対する動作を確定して実行するように構成している。
【００１５】
図８は従来の大規模な情報処理装置１００におけるメモリアクセス要求に対する処理おいて複数のシステムコントローラ４０−１，４０−２間で検索結果の通信処理を行なわない場合のタイムチャートである。
つまり、この図８に示すように、システムコントローラ４０−１のメモリアクセス要求受信部４１−１がメモリアクセス要求を受信した場合に（ｔ１，ｔ２参照）、ブロードキャスト送受信部４３−１により検索指示の送受信を行なった後（ｔ３参照）、検索部４２−１により当該メモリアクセス要求の対象データを検索（スヌープ）した（ｔ４参照）結果、検索部４２−１が担当する記憶部から対象データを検索し、且つ当該メモリアクセス要求の種類及び対象データの登録状態等が所定の条件を満たす場合には、グローバルスヌープ制御部４４−１が、他のグローバルスヌープ制御部４４−２との間で検索結果を通信し合うことなく、当該メモリアクセス要求に対する動作を確定して実行させる（ｔ７〜ｔ１１参照）ようになっている。
【００１６】
ここで、グローバルスヌープ制御部４４−１が検索部４２−１の検索結果のみに基づいてメモリアクセス要求に対する動作を確定しうる場合（前記所定の条件）について説明すると、従来の情報処理装置１００では、グローバルスヌープ制御部４４−１が検索部４２−１の検索結果のみに基づいてメモリアクセス要求に対する動作を確定しうる場合は下記の（１）〜（３）の場合がある。
【００１７】
（１）図８に示す例のように、発行されたメモリアクセス要求がフェッチ要求であり、このフェッチ要求が情報処理装置１００の複数の記憶部のいずれかから対象データを単にフェッチするだけの共有型のフェッチ要求であり、且つ検索部４２−１により担当する記憶部から対象データが検索された場合。
（２）メモリアクセス要求としてのフェッチ要求が、複数の記憶部（ここでは１次キャッシュメモリ１０ａ〜１３ａ，２次キャッシュメモリ１０ｂ〜１３ｂ，及びメインメモリ３０〜３３）のうち一の記憶部にのみ対象データが保持されるようにする排他型のフェッチ命令であり、さらに検索部４２−１により担当する記憶部から対象データが検索され、且つ検索された対象データが、他の記憶部には保持されず一の記憶部にしか保持されない排他型のデータであった場合。
【００１８】
（３）発行されたメモリアクセス要求がストア要求であり、検索部４２−１により担当する記憶部から対象データが検索され、且つ検索された対象データが排他型のデータであった場合。
このように、従来の大規模な情報処理装置１００では、上記（１）〜（３）の場合にのみ、グローバルスヌープ制御部４４−１，４４−２間の検索結果の通信処理を省くことができる。
【００１９】
なお、データを記憶部に排他型で保持する技術について、複数階層のキャッシュメモリをそなえたＣＰＵにおいて、データを一のキャッシュメモリにのみ保持されるように登録する技術がある（下記特許文献１，２参照）。
また、複数階層のキャッシュメモリにおいて、データを共有して保持する場合に、各キャッシュメモリで共有されるデータの一貫性（一致）を保つための技術も提案されている（下記特許文献３，４参照）。
【特許文献１】特開平６−２５０９２６号公報
【特許文献２】特開平１１−２５９３６１号公報
【特許文献３】特開平５−２５３４号公報
【特許文献４】特開平６−１８７２３９号公報
【発明の開示】
【発明が解決しようとする課題】
【００２０】
ところで、上述した従来の大規模な情報処理装置１００において、システムコントローラ４０−１，４０−２間で行なわれる通信処理のうち、ブロードキャスト送受信部４３−１，４３−２間で行なわれる検索指示の送受信にかかる時間（図７のｔ３参照）と、グローバルスヌープ制御部４４−１，４４−２間の検索結果の通信処理にかかる時間（図７のｔ５参照）とは同程度である。
【００２１】
しかしながら、従来の大規模な情報処理装置１００では、上記（１）〜（３）の場合には、グローバルスヌープ制御部４４−１，４４−２間の検索結果の通信処理を省略することができるが、ブロードキャスト送受信部４３−１，４３−２間で行なわれる検索指示の送受信処理については、いずれの場合にも省略することができないため、メモリアクセス要求が発生してから当該メモリアクセス要求を実行するまでには依然として多くの時間が必要になってしまう。
【００２２】
また、上記図６に示す例では、情報処理装置１００がシステムコントローラを２つ（システムコントローラ４０−１，４０−２）そなえた場合を例にあげて説明したが、情報処理装置１００が、システムコントローラを２以上そなえる、さらに大規模な構成になると、システムコントローラを複数の筐体を跨いで実装したり、あるいはシステムコントローラ間の通信制御用のＬＳＩを新たにそなえる必要がある。このような場合には、システムコントローラ間の通信処理にかかる時間がさらに増大してしまい、メモリアクセス要求が発生してから当該メモリアクセス要求を実行するまでにさらに多くの時間が必要になってしまう。
【００２３】
本発明は、このような課題に鑑み創案されたもので、複数の記憶部とこれら複数の記憶部に対する通信制御を分担する複数のシステムコントローラとをそなえた情報処理装置において、複数の記憶部に対するメモリアクセス要求にかかる処理時間を短縮できるようにすることを目的とする。
【課題を解決するための手段】
【００２４】
上記目的を達成するために、本発明の情報処理装置は、複数の記憶部と、互いに通信可能に接続され前記複数の記憶部に対する通信制御を分担する複数のシステムコントローラとをそなえ、前記複数のシステムコントローラのそれぞれが、メモリアクセス要求が発生した場合に、当該メモリアクセス要求の対象データを前記複数の記憶部すべてから検索すべく、当該メモリアクセス要求の対象データを検索させる検索指示を、前記複数のシステムコントローラ間で送受信するブロードキャスト送受信部と、このブロードキャスト送受信部により送受信された前記検索指示に応じて、当該システムコントローラが担当する記憶部から前記メモリアクセス要求の対象データを検索し、前記検索の結果を前記複数のシステムコントローラ間で通信し合うグローバルスヌープ制御部と、前記メモリアクセス要求を当該システムコントローラが受け取った場合に、前記ブロードキャスト送受信部による前記検索指示の送受信もしくは前記グローバルスヌープ制御部による処理に並行して、当該システムコントローラが担当する記憶部から前記メモリアクセス要求の対象データを検索するローカルスヌープ制御部と、このローカルスヌープ制御部よって当該システムコントローラが担当する記憶部から前記メモリアクセス要求の対象データが検索され、且つ所定の条件を満たす場合に、前記メモリアクセス要求を実行させるメモリアクセス制御部とをそなえて構成されたことを特徴としている（請求項１）。
【００２５】
また、前記複数のシステムコントローラのそれぞれが、前記メモリアクセス制御部が前記メモリアクセス要求を実行させる際に、前記ブロードキャスト送受信部が前記検索指示の送受信を未実行の場合には、前記ブロードキャスト送受信部による前記検索指示の送受信をキャンセルする第１キャンセル部をそなえて構成されていることが好ましい（請求項２）。
【００２６】
さらに、前記複数のシステムコントローラのそれぞれが、前記メモリアクセス制御部が前記メモリアクセス要求を実行させる際に、前記ブロードキャスト送受信部が前記検索指示の送受信を実行している場合には、前記グローバルスヌープ制御部による処理をキャンセルする第２キャンセル部をそなえて構成されていることが好ましい（請求項３）。
なお、前記複数のシステムコントローラが、他の記憶部とは排他的にデータを保持する共有記憶部を前記複数の記憶部の一つとしてそなえ、前記所定の条件が、前記ローカルスヌープ制御部により検索された前記対象データを保持していた記憶部が前記共有記憶部であることが好ましい（請求項４）。
【００２７】
また、上記目的を達成するために、本発明のローカルスヌープ制御方法は、複数の記憶部と、互いに通信可能に接続され前記複数の記憶部に対する通信制御を分担する複数のシステムコントローラとをそなえ、前記複数のシステムコントローラのそれぞれが、メモリアクセス要求が発生された場合に、当該メモリアクセス要求の対象データを前記複数の記憶部すべてから検索すべく、当該メモリアクセス要求の対象データを検索させる検索指示を、前記複数のシステムコントローラ間で送受信し、送受信された前記検索指示に応じて、当該システムコントローラが担当する記憶部から前記メモリアクセス要求の対象データを検索して、前記検索の結果を前記複数のシステムコントローラ間で通信し合うグローバルスヌープ処理を行なうように構成された情報処理装置における、ローカルスヌープ制御方法であって、前記メモリアクセス要求を当該システムコントローラが受け取った場合に、前記検索指示の送受信もしくは前記グローバルスヌープ処理に並行して、当該システムコントローラが担当する記憶部から前記メモリアクセス要求の対象データを検索するローカルスヌープステップと、このローカルスヌープステップにおいて当該システムコントローラが担当する記憶部から前記メモリアクセス要求の対象データが検索され、且つ所定の条件を満たす場合に、前記メモリアクセス要求を実行するメモリアクセス要求実行ステップとを含んでいることを特徴としている（請求項５）。
【発明の効果】
【００２８】
このように、本発明によれば、ローカルスヌープ制御部が、ブロードキャスト送受信部による検索指示の送受信及びグローバルスヌープ制御部による処理に並行して、担当する記憶部からメモリアクセス要求の対象データを検索し（ローカルスヌープステップ）、かかる検索の結果、メモリアクセス要求の対象データが担当する記憶部から検索され、且つ所定の条件を満たす場合には、メモリアクセス制御部によりメモリアクセス要求が実行される（メモリアクセス要求実行ステップ）ため、この場合には、ブロードキャスト送受信部及びグローバルスヌープ制御部による処理に関わらず、メモリアクセス要求を実行することができ、メモリアクセス要求が発生してから当該メモリアクセス要求を実行するまでの時間を大幅に短縮することができる（請求項１，５）。
【００２９】
また、メモリアクセス制御部によりメモリアクセス要求が実行される場合には、第１キャンセル部によりブロードキャスト送受信部による検索指示の送受信をキャンセルするため、かかる場合に不要になる処理を実行することを抑止できるとともに、ブロードキャスト送受信部による検索指示の送受信をキャンセルすることによって、システムコントローラ間の通信負荷を低減することができる（請求項２）。
【００３０】
さらに、メモリアクセス制御部によりメモリアクセス要求が実行される場合には、第２キャンセル部によりグローバルスヌープ制御部による処理をキャンセルするため、かかる場合に不要になる処理を実行することを抑止できるとともに、グローバルスヌープ制御部による処理をキャンセルすることによって、システムコントローラ間の通信負荷を低減することができる（請求項３）。
【００３１】
また、共有記憶部をそなえることにより、共有記憶部にメモリアクセス要求の対象データが保持されている場合には、当該メモリアクセス要求の種類に関わらず、メモリアクセス制御部が当該メモリアクセス要求を実行することができ、ブロードキャスト送受信部もしくはグローバルスヌープ制御部による処理を行なうことなくメモリアクセス要求を高速に処理できる機会を増やすことができ、メモリアクセス要求が発生してから実行するまでの時間をより確実に短縮することができる（請求項４）。
【発明を実施するための最良の形態】
【００３２】
以下、図面を参照しながら本発明の実施の形態について説明する。
〔１〕本発明の第１実施形態について
まず、本発明の第１実施形態としての情報処理装置及びローカルスヌープ制御方法について説明する。図１は本発明の第１実施形態としての情報処理装置１の構成を示すブロック図である。なお、図１において既述の符号と同一の符号は、同一の部分もしくは略同一の部分を示す。
【００３３】
この図１に示すように、本発明の第１実施形態としての情報処理装置１は、ＣＰＵ（Central Processing Unit；演算器）１０，１１，１２，１３、Ｉ／Ｏ（Input/Output）装置（入出力装置）２０，２１，２２，２３、メインメモリ３０，３１，３２，３３、及びシステムコントローラ５０−１，５０−２をそなえて構成されている。
なお、ＣＰＵ１０〜１３はそれぞれ複数階層（ここでは２階層）のキャッシュメモリをそなえて構成されており、ＣＰＵ１０は１次キャッシュメモリ１０ａ及び２次キャッシュメモリ１０ｂをそなえ、ＣＰＵ１１は１次キャッシュメモリ１１ａ及び２次キャッシュメモリ１１ｂをそなえ、ＣＰＵ１２は１次キャッシュメモリ１２ａ及び２次キャッシュメモリ１２ｂをそなえ、ＣＰＵ１３は１次キャッシュメモリ１３ａ及び２次キャッシュメモリ１３ｂをそなえて構成されている。
【００３４】
システムコントローラ５０−１，５０−２は、例えばバスを介して互いに通信可能に接続され、情報処理装置１にそなえられた複数の記憶部（ここでは、１次キャッシュメモリ１０ａ〜１３ａ、２次キャッシュメモリ１０ｂ〜１３ｂ、メインメモリ３０〜３３）及び複数のＩ／Ｏ装置２０〜２３に対する通信制御を分担するようになっている。
つまり、システムコントローラ５０−１は、ＣＰＵ１０，１１、Ｉ／Ｏ装置２０，２１、及びメインメモリ３０，３１に対する通信制御を担当し、システムコントローラ５０−２は、ＣＰＵ１２，１３、Ｉ／Ｏ装置２２，２３、及びメインメモリ３２，３３に対する通信制御を担当する。
【００３５】
さらに、システムコントローラ５０−１は、メモリアクセス要求受信部５１−１、検索部５２−１、ブロードキャスト送受信部５３−１、グローバルスヌープ制御部５４−１、ローカルスヌープ制御部５５−１、メモリアクセス制御部５６−１、第１キャンセル部５７−１、及び第２キャンセル部５８−１をそなえて構成されている。
メモリアクセス要求受信部５１−１は、自身（つまり、システムコントローラ５０−１）が担当するＣＰＵ１０，１１及びＩ／Ｏ装置２０，２１のいずれかからメモリアクセス要求が発行された場合に、発行されたメモリアクセス要求を受信するものである。
【００３６】
検索部５２−１は、メモリアクセス要求が発生した場合に、発生したメモリアクセス要求の対象データを担当する記憶部（ここでは、１次キャッシュメモリ１０ａ，１１ａ、２次キャッシュメモリ１０ｂ，１１ｂ、及びメインメモリ３０，３１）から検索するものであり、後述するグローバルスヌープ制御部５４−１もしくは後述するローカルスヌープ制御部５５−１により制御されて検索を実行する。
【００３７】
ブロードキャスト送受信部５３−１は、メモリアクセス要求が発生した場合に、発生したメモリアクセス要求の対象データを情報処理装置１にそなえられたすべての記憶部（ここでは、１次キャッシュメモリ１０ａ〜１３ａ、２次キャッシュメモリ１０ｂ〜１３ｂ、及びメインメモリ３０〜３３）から検索すべく、メモリアクセス要求の対象データを検索させる検索指示（検索要求）を、情報処理装置１にそなえられたすべてのシステムコントローラ（ここではシステムコントローラ５０−１，５０−２）間で送受信するものである。
【００３８】
ブロードキャスト送受信部５３−１は、担当するＣＰＵ１０，１１及びＩ／Ｏ装置２０，２１のいずれかからメモリアクセス要求が発行され、発行されたメモリアクセス要求をメモリアクセス要求受信部５１−１が受け取った場合には、かかる検索指示を他のシステムコントローラ５０−２の後述するブロードキャスト送受信部５３−２へ送信（放送出力；ブロードキャスト）する一方、他のシステムコントローラ５０−２の後述するメモリアクセス要求受信部５１−２がメモリアクセス要求を受け取った場合には、後述するブロードキャスト送受信部５３−２から送信された検索指示を受信する。
【００３９】
グローバルスヌープ制御部５４−１は、ブロードキャスト送受信部５３−１により送受信された検索指示に応じて、検索部５２−１により自身が担当する記憶部からメモリアクセス要求の対象データを検索させ、かかる検索の結果をすべてのグローバルスヌープ制御部（ここでは、システムコントローラ５０−２の後述するグローバルスヌープ制御部５４−２）との間で通信し合うものである。
【００４０】
さらに、グローバルスヌープ制御部５４−１は、すべてのシステムコントローラ５０−１，５０−２における検索結果に基づいて、メモリアクセス要求に対する動作を確定する。
また、グローバルスヌープ制御部５４−１は、他のすべてのグローバルスヌープ制御部５０−２と同期して、検索部５２−１による検索を実行させるとともに、他のすべてのグローバルスヌープ制御部５０−２と同期して、かかる検索結果を通信し合うように構成されている。
【００４１】
ローカルスヌープ制御部５５−１は、担当するＣＰＵ１０，１１及びＩ／Ｏ装置２０，２１のいずれかからメモリアクセス要求が発行され、このメモリアクセス要求をメモリアクセス要求受信部５１−１が受け取った場合に、ブロードキャスト送受信部５３−１による検索指示の送受信もしくはグローバルスヌープ制御部５４−１による処理に並行して（つまり、これらブロードキャスト送受信部５３−１及びローカルスヌープ制御部５４−１の処理状況に関わらず）、検索部５２−１により担当する記憶部からメモリアクセス要求の対象データを検索させるものである。
【００４２】
また、ローカルスヌープ制御部５５−１は、検索部５２−１による検索の結果に基づいてメモリアクセス要求に対する動作が確定するか否かを判断する。つまり、ローカルスヌープ制御部５５−１は、検索部５２−１による検索の結果、担当する記憶部からメモリアクセス要求の対象データが検索され、且つメモリアクセス要求の種類及びかかる対象データの登録状態からなる所定の条件を満たす場合に、当該メモリアクセス要求に対する動作を確定して、後述するメモリアクセス制御部５６−１によりメモリアクセス要求に対する処理を実行させる。
【００４３】
ここで、ローカルスヌープ制御部５５−１によりメモリアクセス要求に対する動作が確定するのは（前記所定の条件は）、下記（ａ）〜（ｃ）の場合である。
（ａ）メモリアクセス要求が、情報処理装置１にそなえられた複数の記憶部のいずれかから対象データを単にフェッチするだけの共有型のフェッチ要求であり、且つ検索部５２−１により担当する記憶部から対象データが検索された場合。
【００４４】
（ｂ）メモリアクセス要求が、情報処理装置１にそなえられた複数の記憶部のうち一の記憶部から対象データをフェッチするとともに、当該一の記憶部にのみ対象データが保持されるように他の記憶部に保持された対象データを削除する排他型のフェッチ命令であり、検索部５２−１により担当する記憶部から対象データが検索され、且つ検索された対象データが、他の記憶部には保持されず一の記憶部にしか保持されない排他型のデータであった場合。
【００４５】
（ｃ）メモリアクセス要求がストア要求であり、検索部５２−１により担当する記憶部から対象データが検索され、且つ検索された対象データが排他型のデータであった場合。
なお、前記（ｂ），（ｃ）の場合のように、メモリアクセス要求が排他型のフェッチ要求もしくはストア要求であった場合には、対象データのコヒーレンシーを保証するために対象データをすべての記憶部から検索して対象データの削除もしくは更新を行なう必要があるが、前記（ｂ），（ｃ）に示す場合には、排他型のフェッチ要求もしくはストア要求の対象データが他の記憶部に対して排他的に保持されているため、他の記憶部における対象データの検索を省くことができるのである。
【００４６】
このように、本情報処理装置１では、前記（ａ）〜（ｃ）の場合には、ローカルスヌープ制御部５５−１によりメモリアクセス要求に対する動作を確定して、後述するメモリアクセス制御部５６−１により確定された動作に基づいてメモリアクセス要求を実行させることができる。
なお、前記（ａ）〜（ｃ）の場合以外の場合には、グローバルスヌープ制御部５４−１は、他のシステムコントローラ５０−２との間で検索結果を通信し合うことにより、情報処理装置１にそなえられたすべての記憶部に対する検索結果、メモリアクセス要求の種類及び検索された対象データの登録状態（つまり、排他型で登録されているか否か）に基づいて、当該メモリアクセス要求に対する動作を確定する。
【００４７】
メモリアクセス制御部５６−１は、ローカルスヌープ制御部５５−１が検索部５２−１を制御することにより、検索部５２−１が、担当する記憶部からメモリアクセス要求の対象データを検索した場合であって、且つメモリアクセス要求の種類及びかかる対象データが検索された記憶部の種類等からなる所定の条件［前記（ａ）〜（ｃ）の場合］を満たす場合に、メモリアクセス要求を実行させるものである。
【００４８】
また、メモリアクセス制御部５６−１は、グローバルスヌープ制御部５４−１によりメモリアクセス要求に対する動作が確定された場合に、グローバルスヌープ制御部５４−１に基づいてメモリアクセス要求を実行させる。
第１キャンセル部５７−１は、ローカルスヌープ制御部５５−１に制御されてブロードキャスト送受信部５３−１による検索指示の送受信をキャンセルするものであり、ローカルスヌープ制御部５５−１が検索部５２−１にメモリアクセス要求の対象データを検索させ、担当する記憶部から対象データが検索された場合であって、且つ所定の条件を満たす場合に、ブロードキャスト送受信部５３−１による検索指示の送受信をキャンセルする。
【００４９】
つまり、第１キャンセル部５７−１は、ローカルスヌープ制御部５５−１がメモリアクセス制御部５６−１によりメモリアクセス要求を実行させる際に、ブロードキャスト送受信部５３−１が検索指示の送受信を未実行の場合に、ブロードキャスト送受信部５３−１による検索指示の送受信をキャンセルするものである。
なお、第１キャンセル部５７−１は、他のシステムコントローラ５０−２のブロードキャスト送受信部５３−２に対してもキャンセルを実行する。
【００５０】
第２キャンセル部５８−１は、ローカルスヌープ制御部５５−１に制御されてグローバルスヌープ制御部による処理をキャンセルするものであり、ローカルスヌープ制御部５５−１が検索部５２−１にメモリアクセス要求の対象データを検索させ、担当する記憶部から対象データが検索された場合であって、且つ所定の条件を満たす場合［前記（ａ）〜（ｃ）の場合］に、グローバルスヌープ制御部５４−１による処理をキャンセルする。
【００５１】
つまり、第２キャンセル部５８−１は、ローカルスヌープ制御部５５−１がメモリアクセス制御部５６−１によりメモリアクセス要求を実行させる際に、ブロードキャスト送受信部５３−１が検索指示の送受信を実行している場合に、グローバルスヌープ制御部５５−１よる処理をキャンセルするものである。
なお、第２キャンセル部５８−１は、他のシステムコントローラ５０−２のグローバルスヌープ制御部５４−２による処理もキャンセルするようになっている。
【００５２】
一方、システムコントローラ５０−２も、メモリアクセス要求受信部５１−２、検索部５２−２、ブロードキャスト送受信部５３−２、グローバルスヌープ制御部５４−２、ローカルスヌープ制御部５５−２、メモリアクセス制御部５６−２、第１キャンセル部５７−２、及び第２キャンセル部５８−２をそなえて構成されており、これらは、通信制御の対象が１次キャッシュメモリ１２ａ，１３ａ、２次キャッシュメモリ１２ｂ，１３ｂ、及びメインメモリ３２，３３である点を除いては、システムコントローラ５０−１のメモリアクセス要求受信部５１−１、検索部５２−１、ブロードキャスト送受信部５３−１、グローバルスヌープ制御部５４−１、ローカルスヌープ制御部５５−１、メモリアクセス制御部５６−１、第１キャンセル部５７−１、及び第２キャンセル部５８−１のそれぞれと同様のものである。
【００５３】
次に、図２に示すフローチャート（ステップＳ１０〜Ｓ２４）を参照しながら、ＣＰＵ１０からメモリアクセス要求が発生された場合のローカルスヌープ制御方法の手順（情報処理装置１の動作）について説明する。
図２に示すように、本情報処理装置１では、例えば、ＣＰＵ１０からメモリアクセス要求が発生すると、このメモリアクセス要求をシステムコントローラ５０−１のメモリアクセス要求受信部５１−１が受信する（ステップＳ１０）。
【００５４】
そして、本情報処理装置１では、メモリアクセス要求受信部５１−１がメモリアクセス要求を受信すると、ブロードキャスト送受信部５３−１による検索指示の送受信処理及びグローバルスヌープ制御部５４−１による処理に並行して、ローカルスヌープ制御部５５−１が、検索部５２−１により自身（つまり、システムコントローラ５０−１）が担当する記憶部（ここでは、１次キャッシュメモリ１０ａ，１１ａ、２次キャッシュメモリ１０ｂ，１１ｂ、及びメインメモリ３０，３１）から対象データを検索させる（ステップＳ１１；ローカルスヌープステップ）。
【００５５】
つまり、本情報処理装置１では、メモリアクセス要求を受信する（ステップＳ１０）と、ローカルスヌープ制御部５５−１による処理（ステップＳ１１〜Ｓ１７）を開始するとともに、これと同時にブロードキャスト送受信部５３−１による処理（ステップＳ１８〜Ｓ２０）も開始する。
まず、ローカルスヌープ制御部５５−１による処理（ステップＳ１１〜Ｓ１７）について説明すると、ローカルスヌープ制御部５５−１は、検索部５２−１により担当する記憶部から対象データを検索させ（ステップＳ１１）、検索部５２−１による検索（ローカルスヌープ）の結果に基づいて、メモリアクセス要求に対する動作が確定するか否かを判断する（ステップＳ１２）。
【００５６】
ここで、ローカルスヌープ制御部５５−１は、検索部５２−１による検索の結果に基づいてメモリアクセス要求に対する動作を確定できないと判断した場合には（ステップＳ１２のＮｏルート）、処理を終了する（ステップＳ１３）。
一方、ローカルスヌープ制御部５５−１は、検索部５２−１による検索の結果に基づいてメモリアクセス要求に対する動作を確定できると判断した場合［つまり、前記（ａ）〜（ｃ）の場合］には（ステップＳ１２のＹｅｓルート）、メモリアクセス制御部５６−１によってメモリアクセス要求に対する処理を実行させる（ステップＳ１４；メモリアクセス要求実行ステップ）とともに、ブロードキャスト送受信部５３−１による検索指示の送受信処理（ここではブロードキャスト処理）をキャンセルすべく、第１キャンセル部５７−１によりブロードキャスト送受信部５３−１に対してキャンセルを実行させる（ステップＳ１５；第１キャンセルステップ）。なお、このとき、第１キャンセル部５７−１は他のシステムコントローラ５０−２のブロードキャスト送受信部５３−２に対してもキャンセルを実行するが、ブロードキャスト送受信部５３−２に対するキャンセルは、第１キャンセル部５７−１が直接行なってもよいし、第１キャンセル部５７−２が行なうようにしてよい。
【００５７】
そして、ブロードキャスト送受信部５３−１において、第１キャンセル部５７−１による検索指示の送信（ブロードキャスト処理）のキャンセルが成功すると（ステップＳ１６のＹｅｓルート）、ローカルスヌープ制御部５５−１は処理を終了する。ここで、第１キャンセル部５７−１によるキャンセルが成功するのは、ブロードキャスト送受信部５３−１により送受信される検索指示が、先行する他の検索指示の実行待ちでキューイングされている場合等、当該検索指示のブロードキャスト送受信部５３−１による送受信（ここではブロードキャスト処理）が未実行の場合である。
【００５８】
一方、ブロードキャスト送受信部５３−１が当該検索指示の送受信を実行しているために、第１キャンセル部５７−１によるキャンセルが成功しなければ（ステップＳ１６のＮｏルート）、ローカルスヌープ制御部５５−１は、第２キャンセル部５８−１によりグローバルスヌープ制御部５４−１に対してキャンセルを実行させ（ステップＳ１７；第２キャンセルステップ）、処理を終了する。なお、このとき、第２キャンセル部５８−１は他のシステムコントローラ５０−２のグローバルスヌープ制御部５４−２に対してもキャンセルを実行するが、グローバルスヌープ制御部５４−２に対するキャンセルは、第２キャンセル部５８−１が直接行なってもよいし、第２キャンセル部５８−２が行なうようにしてもよい。
【００５９】
次に、メモリアクセス要求を受信（ステップＳ１０）した後に、ローカルスヌープ制御部５５−１による処理（ステップＳ１１〜Ｓ１７）と並行して行なわれるブロードキャスト送受信部５３−１による処理（ステップＳ１８〜Ｓ２０）及びグローバルスヌープ制御部５４−１による処理（ステップＳ２１〜Ｓ２４）について説明する。
ブロードキャスト送受信部５３−１は、メモリアクセス要求受信部５１−１がメモリアクセス要求を受け取ると（ステップＳ１０）、まず、第１キャンセル部５７−１から発行された検索指示の送受信に対するキャンセル（上記ステップＳ１５参照）を受信しているか否かを判断する（ステップＳ１８）。
【００６０】
ここで、ブロードキャスト送受信部５３−１が第１キャンセル部５７−１からのキャンセルを受信していれば（ステップＳ１８のＮｏルート）、ブロードキャスト送受信部５３−１は、メモリアクセス要求の対象データを検索させるための検索指示の送受信（ここではブロードキャスト）を中止して（ステップＳ１９）、処理を終了する。
一方、ブロードキャスト送受信部５３−１が第１キャンセル部５７−１からのキャンセルを受信していなければ（ステップＳ１８のＹｅｓルート）、ブロードキャスト送受信部５３−１は、他のブロードキャスト送受信部５３−２との間でメモリアクセス要求の対象データを担当する記憶部から検索させるための検索指示を送受信（ここではブロードキャスト）する（ステップＳ２０）。
【００６１】
そして、ブロードキャスト送受信部５３−１，５３−２間での検索指示の送受信が完了すると、グローバルスヌープ制御部５４−１による処理が行なわれるが、まず、グローバルスヌープ制御部５４−１は、第２キャンセル部５８−１から発行されたキャンセル（上記ステップＳ１７参照）を受信しているか否かを判断する（ステップＳ２１）。
ここで、グローバルスヌープ制御部５４−１が第２キャンセル部５８−１からのキャンセルを受信していれば（ステップＳ２１のＮｏルート）、グローバルスヌープ制御部５４−１は処理を中止して（ステップＳ２２）終了する。
【００６２】
一方、グローバルスヌープ制御部５４−１が第２キャンセル部５８−１からのキャンセルを受信していなければ（ステップＳ２１のＹｅｓルート）、グローバルスヌープ制御部５４−１は、処理を実行する（ステップＳ２３）。つまり、ブロードキャスト送受信部５３−１により送受信された検索指示に基づいて、他のシステムコントローラにおける検索と同期して検索部５２−１に担当する記憶部を検索させ、この検索の結果を、他のグローバルスヌープ制御部５４−２と同期して通信し合う。
【００６３】
そして、グローバルスヌープ制御部５４−１は、自身の検索結果と他のグローバルスヌープ制御部５４−２から受信した検索結果とに基づいてメモリアクセス要求に対する処理を判定して確定する（ステップＳ２４）が、ここでメモリアクセス要求に対する動作が確定しなければ（ステップＳ２４のＮｏルート）、上記ステップＳ２３にリターンして、再度検索処理等を実行する。
【００６４】
一方、メモリアクセス要求に対する動作が確定すれば（ステップＳ２４のＹｅｓルート）、メモリアクセス制御部５６−１により確定した処理を実行させる（ステップＳ１４）。
ここで、ローカルスヌープ制御部５５−１によりメモリアクセス要求に対する動作が確定し［前記（ａ）〜（ｃ）の場合；ステップＳ１２のＹｅｓルート参照］、第１キャンセル部５７−１によるキャンセルが成功した場合（ステップＳ１５及びステップＳ１６のＹｅｓルート参照）、及び、第２キャンセル部５８−１によるキャンセルが行なわれた場合（ステップＳ１７参照）について、さらに詳細に説明する。
【００６５】
図３は本発明の第１実施形態としてのローカルスヌープ制御方法において第１キャンセル部５７−１によるキャンセルが行なわれた場合［前記（ａ）もしくは（ｂ）の場合］の手順を示すタイムチャートである。この図３に示すように、ＣＰＵ１０においてメモリアクセス要求（ここではフェッチ要求）が発生し（Ｔ１参照）、このフェッチ要求をシステムコントローラ５０−１のメモリアクセス要求受信部５１−１が受信すると（Ｔ２参照）、ローカルスヌープ制御部５５−１が検索部５２−１による検索（ローカルスヌープ）を実行する（Ｔ３参照）。
【００６６】
そして、検索部５２−１によりフェッチ要求の対象データが検索され（ここでは、ＣＰＵ１１の１次キャッシュメモリ１１ａから検索されたとする）、さらに所定の条件を満たす場合［前記（ａ）もしくは（ｂ）の場合］、ローカルスヌープ制御部５５−１がフェッチ要求に対する動作を確定する（図２のステップＳ１２のＹｅｓルート参照）。
ローカルスヌープ制御部５５−１がフェッチ要求に対する処理を確定すると、当該フェッチ要求を実行すべく、メモリアクセス制御部５６−１が、ＣＰＵ１１の１次キャッシュメモリ１１ａに対して、フェッチ要求の対象データに対する読み出し（リード）要求を発行し（Ｔ４参照）、１次キャッシュメモリ１１ａからシステムコントローラ５０−１へフェッチ要求の対象データが読み出された後（Ｔ５，Ｔ６参照）、メモリアクセス制御部５６−１が１次キャッシュメモリ１１ａから読み出した対象データをフェッチデータ応答としてＣＰＵ１０に対して送信することにより、かかるフェッチ要求の実行が完了する（Ｔ７，Ｔ８参照）。
【００６７】
また、ローカルスヌープ制御部５５−１がフェッチ要求に対する動作を確定すると、第１キャンセル部５７−１によりブロードキャスト送受信部５３−１の処理をキャンセルさせる（Ｔ９参照；図２のステップＳ１３参照）。そして、ブロードキャスト送受信部５３−１において、検索指示の送受信が未実行であり、ブロードキャスト送受信部５３−１がキャンセルを受信すると（図２のステップＳ１８のＮｏルート参照）、ブロードキャスト送受信部５３−１は検索指示の送受信処理を中止する（図２のステップＳ１９参照）。
【００６８】
図４は本発明の第１実施形態としてのローカルスヌープ制御方法において第２キャンセル部５８−１によるキャンセルが行なわれた場合［前記（ａ）もしくは（ｂ）の場合］の手順を示すタイムチャートである。なお、図４において既述の符号と同一の符号は同一の部分もしくは略同一の部分を示すため、ここではその詳細な説明を省略する。
この図４に示すように、ＣＰＵ１０から発行されたフェッチ要求に対してローカルスヌープ制御部５５−１が動作を確定して実行する（Ｔ１〜Ｔ８参照）。そして、ローカルスヌープ制御部５５−１は、第１キャンセル部５６−１によりブロードキャスト送受信部５３−１に対してキャンセルを実行させる（Ｔ９参照）が、ブロードキャスト送受信部５３−１により検索指示の送受信が既に実行されていて第１キャンセル部５６−１によるキャンセルが成功しないときには（図２のステップＳ１６のＮｏルート及びステップＳ１８のＹｅｓルート参照）、ローカルスヌープ制御部５５−１は、ブロードキャスト送受信部５３−１による検索指示の送受信（ブロードキャスト）処理が完了したら、第２キャンセル部５８−１によりグローバルスヌープ制御部５４−１による処理をキャンセルさせる（Ｔ１０参照；図２のステップＳ１７参照）。
【００６９】
そして、グローバルスヌープ制御部５４−１が第２キャンセル部５８−１からのキャンセルを受信すると（図２のステップＳ２１のＮｏルート参照）、グローバルスヌープ制御部５４−１はその処理を中止する（図２のステップＳ２２参照）。
以上、本発明の第１実施形態としてのローカルスヌープ制御方法（情報処理装置１の動作）について、図２〜図４を参照しながらＣＰＵ１０からメモリアクセス要求が発行された場合を例に挙げて、システムコントローラ５０−１における動作を中心に説明したが、システムコントローラ５０−２が担当するＣＰＵ１２，１３もしくはＩ／Ｏ装置２２，２３からメモリアクセス要求が発行された場合のシステムコントローラ５０−２における動作も、図２〜図４を参照しながら上述したシステムコントローラ５０−１の動作と同様である。
【００７０】
このように、本発明の第１実施形態としての情報処理装置１及びローカルスヌープ制御方法によれば、システムコントローラ５０−１，５０−２が、通信制御を担当するＣＰＵ１０〜１３もしくはＩ／Ｏ装置２０〜２３のいずれかから発行されたメモリアクセス要求を、自身にそなえられたメモリアクセス要求受信部５１−１，５１−２が受け取った場合には、ブロードキャスト送受信部５３−１，５３−２による検索指示の送受信処理及びグローバルスヌープ制御部５４−１，５４−２による処理に並行して、ローカルスヌープ制御部５５−１，５５−２が担当する記憶部からメモリアクセス要求の対象データを検索し（ローカルスヌープステップを行ない）、かかる検索の結果、メモリアクセス要求の対象データが担当する記憶部から検索され、且つ所定の条件を満たす場合［前記（ａ）〜（ｃ）の場合］には、メモリアクセス要求に対する動作を確定してメモリアクセス制御部５６−１，５６−２によりメモリアクセス要求を実行させるため、メモリアクセス要求を高速に実行させることができる。
【００７１】
つまり、ローカルスヌープ制御部５５−１，５５−２によるローカルスヌープ処理の結果、ローカルスヌープ制御部５５−１，５５−２がメモリアクセス要求に対する処理を確定できる場合には、ブロードキャスト送受信部５３−１，５３−２及びグローバルスヌープ制御部５４−１，５４−２による処理に関わらず、メモリアクセス制御部５６−１，５６−２がメモリアクセス要求を実行するため、メモリアクセス要求が発生してから当該メモリアクセス要求を実行するまでの時間を大幅に短縮することができる。
【００７２】
さらに、ローカルスヌープ制御部５５−１，５５−２によりメモリアクセス要求に対する動作を確定した場合には、第１キャンセル部５７−１，５７−２によりブロードキャスト送受信部５３−１，５３−２による検索指示の送受信処理をキャンセルするか、もしくは第２キャンセル部５８−１，５８−２によりグローバルスヌープ制御部５４−１，５４−２による処理をキャンセルするため、ローカルスヌープ制御部５５−１，５５−２によりメモリアクセス要求を実行させることによって不要になる処理を実行することを抑止できるとともに、これらブロードキャスト送受信部５３−１，５３−２及びグローバルスヌープ制御部５４−１，５４−２による処理を実行することにより生じる、システムコントローラ５０−１，５０−２間のバスの使用率の増大を抑止して、システムコントローラ５０−１，５０−２間のバスの使用率を低減してバスの効率的な使用を実現することもできる。
【００７３】
〔２〕本発明の第２実施形態について
次に、本発明の第２実施形態としての情報処理装置及びローカルスヌープ制御方法について説明する。
図５は本発明の第２実施形態としての情報処理装置１′の構成を示すブロック図である。なお、図５において既述の符号と同一の符号は、同一の部分もしくはほぼ同一の部分を示しているため、ここではその詳細な説明を省略する。
【００７４】
この図５に示すように、本発明の第２実施形態としての情報処理装置１′は、各システムコントローラ５０−１，５０−２が、共有キャッシュメモリ（共有記憶部）５９−１，５９−２をそなえて構成されている点を除いては、図１を参照しながら上述した第１実施形態の情報処理装置１と同様に構成されている。
共有キャッシュメモリ５９−１は、情報処理装置１′にそなえられた他の記憶部（ここでは、１次キャッシュメモリ１０ａ〜１３ａ、２次キャッシュメモリ１０ｂ〜１３ｂ、メインメモリ３０〜３３、及び後述する共有キャッシュメモリ５９−２）に対して、排他的にデータを保持するものである。つまり、共有キャッシュメモリ５９−１に保持されるデータは、他の記憶部には保持されないようになっている。
【００７５】
また、共有キャッシュメモリ５９−１はＣＰＵ１０，１１における複数階層キャッシュメモリのうちの１つとして機能するものであり、ここでは、ＣＰＵ１０，１１それぞれの３次キャッシュメモリとして機能する。
これと同様に、共有キャッシュメモリ５９−２は、情報処理装置１′にそなえられた他の記憶部（ここでは、１次キャッシュメモリ１０ａ〜１３ａ、２次キャッシュメモリ１０ｂ〜１３ｂ、メインメモリ３０〜３３、及び共有キャッシュメモリ５９−１）に対して、排他的にデータを保持するものである。
【００７６】
また、共有キャッシュメモリ５９−２は、ＣＰＵ１２，１３における複数階層キャッシュメモリのうちの１つとして機能するものであり、ここでは、ＣＰＵ１２，１３それぞれの３次キャッシュメモリとして機能する。
また、本情報処理装置１′において、検索部５２−１は、１次キャッシュメモリ１０ａ，１１ａ、２次キャッシュメモリ１０ｂ，１１ｂ、メインメモリ３０，３１、及び共有キャッシュメモリメモリ５９−１を検索対象としており、検索部５２−２は、１次キャッシュメモリ１２ａ，１３ａ、２次キャッシュメモリ１２ｂ，１３ｂ、メインメモリ３２，３３、及び共有キャッシュメモリメモリ５９−２を検索対象としている。
【００７７】
したがって、本発明の第２実施形態としての情報処理装置１′では、ローカルスヌープ制御部５５−１は、検索部５２−１により担当する記憶部からメモリアクセス要求の対象データが検索された場合であって、前記（ａ）〜（ｃ）の場合もしくは、メモリアクセス要求の種類に関わらず共有キャッシュメモリ５９−１から対象データが検索された場合に、当該メモリアクセス要求に対する動作を確定することができる。
【００７８】
なお、ローカルスヌープ制御部５５−２についても、検索部５２−２によってメモリアクセス要求の対象データが共有キャッシュメモリ５９−２から検索された場合には、当該メモリアクセス要求に対する動作を確定することができる。
なお、本発明の第２実施形態としてのローカルスヌープ制御方法は、上述したように、ローカルスヌープ制御部５５−１，５５−２が、それぞれ検索部５２−１，５２−２によって共有キャッシュメモリ５９−１，５９−２からメモリアクセス要求の対象データが検索された場合にも当該メモリアクセス要求に対する動作を確定して、メモリアクセス制御部５６−１，５６−２に当該メモリアクセス要求を実行させる点を除いては、上記図２〜図４を参照しながら上述した第１実施形態のローカルスヌープ制御方法と同様である。
【００７９】
このように、本発明の第２実施形態としての情報処理装置１′及びローカルスヌープ制御方法によれば、上述した第１実施形態と同様の効果を得ることができるとともに、共有キャッシュメモリメモリ５９−１，５９−２をそなえることにより、ローカルスヌープ制御部５５−１，５５−２による検索の結果、これら共有キャッシュメモリ５９−１，５９−２にメモリアクセス要求の対象データが保持されている場合にも、ローカルスヌープ制御部５５−１，５５−２がメモリアクセス要求を実行させるため、ブロードキャスト送受信部５３−１，５３−２もしくはグローバルスヌープ制御部５４−１，５４−２による処理を行なうことなく、メモリアクセス要求を高速に処理できる機会を増やすことができ、メモリアクセス要求が発生してから実行するまでの時間をより確実に短縮することができる。
【００８０】
〔３〕本発明の変形例について
なお、本発明は上述した実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で種々変形して実施することができる。
例えば、上述した実施形態では、第２キャンセル部５８−１，５８−２によりグローバルスヌープ制御部５４−１，５４−２による処理をキャンセルする場合には、グローバルスヌープ制御部５４−１，５４−２による検索部５２−１，５２−２の検索（スヌープ）処理からキャンセルするようにしたが、本発明はこれに限定されるものではなく、検索部５２−１，５２−２の検索終了後、つまり、検索結果を見てから第２キャンセル部５８−１，５８−２によって、グローバルスヌープ制御部５４−１，５４−２による検索結果の通信処理をキャンセルするように構成してもよい。
【００８１】
さらに、第２キャンセル部５８−１，５８−２によるキャンセルが実行可能になるタイミングによっては、グローバルスヌープ制御部５４−１，５４−２による検索結果の通信処理を途中でキャンセルするようにしてもよい。
また、上述した実施形態では、情報処理装置１，１′がシステムコントローラを２つそなえた例をあげて説明したが、本発明はこれに限定されるものではなく、情報処理装置１，１′が２以上のシステムコントローラをそなえて構成されていてもよい。この場合には、システムコントローラが複数の筐体に跨って接続されるように構成してもよいし、システムコントローラ間の通信制御のためのＬＳＩをさらにそなえて構成してもよい。
【００８２】
なお、上述した実施形態では、システムコントローラ５０−１，５０−２において、第１キャンセル部５７−１，５７−２及び第２キャンセル部５８−１，５８−２とローカルスヌープ制御部５５−１，５５−２とを個別に設けたが、本発明はこれに限定されるものではなく、ローカルスヌープ制御部５５−１が第１キャンセル部５７−１及び第２キャンセル部５８−１としての機能をそなえ、ローカルスヌープ制御部５５−２が第１キャンセル部５７−２及び第２キャンセル部５８−２としての機能をそなえるように構成してもよい。
【００８３】
なお、上述した実施形態において、Ｉ／Ｏ装置２０〜２３のそれぞれが記憶部をそなえ、検索部５２−１，５２−２がＩ／Ｏ装置装置２０〜２３にそなえられた記憶部をそれぞれの検索対象としてもよい。
【００８４】
〔４〕その他
上述したメモリアクセス要求受信部５１−１，５１−２、検索部５２−１，５２−２、ブロードキャスト送受信部５３−１，５３−２、グローバルスヌープ制御部５４−１，５４−２、ローカルスヌープ制御部５５−１，５５−２、メモリアクセス制御部５６−１，５６−２、第１キャンセル部５７−１，５７−２、及び第２キャンセル部５８−１，５８−２としての機能は、コンピュータ（ＣＰＵ，情報処理装置，各種端末を含む）が所定のアプリケーションプログラム（ローカルスヌープ制御プログラム）を実行することによって実現される。
【００８５】
そのプログラムは、例えばフレキシブルディスク，ＣＤ−ＲＯＭ，ＣＤ−Ｒ，ＣＤ−ＲＷ，ＤＶＤ等のコンピュータ読取可能な記録媒体に記録された形態で提供される。この場合、コンピュータはその記録媒体からローカルスヌープ制御プログラムを読み取って内部記憶装置または外部記憶装置に転送し格納して用いる。また、そのプログラムを、例えば磁気ディスク，光ディスク，光磁気ディスク等の記憶装置（記録媒体）に記録しておき、その記憶装置から通信回線を介してコンピュータに提供するようにしてもよい。
【００８６】
ここで、コンピュータとは、ハードウェアとＯＳ（オペレーティングシステム）とを含む概念であり、ＯＳの制御の下で動作するハードウェアを意味している。また、ＯＳが不要でアプリケーションプログラム単独でハードウェアを動作させるような場合には、そのハードウェア自体がコンピュータに相当する。ハードウェアは、少なくとも、ＣＰＵ等のマイクロプロセッサと、記録媒体に記録されたコンピュータプログラムを読み取るための手段とをそなえている。上記ローカルスヌープ制御プログラムとしてのアプリケーションプログラムは、上述のようなコンピュータに、メモリアクセス要求受信部５１−１，５１−２、検索部５２−１，５２−２、ブロードキャスト送受信部５３−１，５３−２、グローバルスヌープ制御部５４−１，５４−２、ローカルスヌープ制御部５５−１，５５−２、メモリアクセス制御部５６−１，５６−２、第１キャンセル部５７−１，５７−２、及び第２キャンセル部５８−１，５８−２としての機能を実現させるプログラムコードを含んでいる。また、その機能の一部は、アプリケーションプログラムではなくＯＳによって実現されてもよい。
【００８７】
さらに、本実施形態としての記録媒体としては、上述したフレキシブルディスク，ＣＤ−ＲＯＭ，ＣＤ−Ｒ，ＣＤ−ＲＷ，ＤＶＤ，磁気ディスク，光ディスク，光磁気ディスクのほか、ＩＣカード，ＲＯＭカートリッジ，磁気テープ，パンチカード，コンピュータの内部記憶装置（ＲＡＭやＲＯＭなどのメモリ），外部記憶装置等や、バーコードなどの符号が印刷された印刷物等の、コンピュータ読取可能な種々の媒体を利用することもできる。
【００８８】
〔５〕付記
（付記１）
複数の記憶部と、
互いに通信可能に接続され前記複数の記憶部に対する通信制御を分担する複数のシステムコントローラとをそなえ、
前記複数のシステムコントローラのそれぞれが、
メモリアクセス要求が発生した場合に、当該メモリアクセス要求の対象データを前記複数の記憶部すべてから検索すべく、当該メモリアクセス要求の対象データを検索させる検索指示を、前記複数のシステムコントローラ間で送受信するブロードキャスト送受信部と、
該ブロードキャスト送受信部により送受信された前記検索指示に応じて、当該システムコントローラが担当する記憶部から前記メモリアクセス要求の対象データを検索し、前記検索の結果を前記複数のシステムコントローラ間で通信し合うグローバルスヌープ制御部と、
前記メモリアクセス要求を当該システムコントローラが受け取った場合に、前記ブロードキャスト送受信部による前記検索指示の送受信もしくは前記グローバルスヌープ制御部による処理に並行して、当該システムコントローラが担当する記憶部から前記メモリアクセス要求の対象データを検索するローカルスヌープ制御部と、
該ローカルスヌープ制御部よって当該システムコントローラが担当する記憶部から前記メモリアクセス要求の対象データが検索され、且つ所定の条件を満たす場合に、前記メモリアクセス要求を実行させるメモリアクセス制御部とをそなえて構成されたことを特徴とする、情報処理装置。
【００８９】
（付記２）
前記複数のシステムコントローラのそれぞれが、
前記メモリアクセス制御部が前記メモリアクセス要求を実行させる際に、前記ブロードキャスト送受信部が前記検索指示の送受信を未実行の場合には、前記ブロードキャスト送受信部による前記検索指示の送受信をキャンセルする第１キャンセル部をそなえて構成されていることを特徴とする、付記１記載の情報処理装置。
【００９０】
（付記３）
前記複数のシステムコントローラのそれぞれが、
前記メモリアクセス制御部が前記メモリアクセス要求を実行させる際に、前記ブロードキャスト送受信部が前記検索指示の送受信を実行している場合には、前記グローバルスヌープ制御部による処理をキャンセルする第２キャンセル部をそなえて構成されていることを特徴とする、付記１又は付記２記載の情報処理装置。
【００９１】
（付記４）
前記グローバルスヌープ制御部が、前記検索指示に基づく前記メモリアクセス要求の対象データの検索を、前記複数のシステムコントローラにおいて同期して実行させることを特徴とする、付記１〜３のいずれか１項に記載の情報処理装置。
（付記５）
前記グローバルスヌープ制御部が、前記検索指示に基づく前記メモリアクセス要求の対象データの検索結果を、前記複数のシステムコントローラにおいて同期して通信し合うとともに、前記複数のシステムコントローラにおける前記検索の結果に基づいて前記メモリアクセス要求に対する動作を確定することを特徴とする、付記１〜４のいずれか１項に記載の情報処理装置。
【００９２】
（付記６）
前記所定の条件が、前記メモリアクセス要求が共有型のフェッチ命令であることを特徴とする、付記１〜５のいずれか１項に記載の情報処理装置。
（付記７）
前記所定の条件が、前記メモリアクセス要求が排他型のフェッチ命令であり、且つ前記ローカルスヌープ制御部により検索された前記対象データが排他型であることを特徴とする、付記１〜６のいずれか１項に記載の情報処理装置。
【００９３】
（付記８）
前記所定の条件が、前記メモリアクセス要求がストア命令であり、且つ前記ローカルスヌープ制御部により検索された前記対象データが排他型であることを特徴とする、付記１〜７のいずれか１項に記載の情報処理装置。
（付記９）
前記複数のシステムコントローラが、他の記憶部とは排他的にデータを保持する共有記憶部を前記複数の記憶部の一つとしてそなえ、
前記所定の条件が、前記ローカルスヌープ制御部により検索された前記対象データを保持していた記憶部が前記共有記憶部であることを特徴とする、付記１〜８のいずれか１項に記載の情報処理装置。
【００９４】
（付記１０）
１以上の演算器をそなえ、
前記複数の記憶部に、前記演算器にそなえられた１以上の記憶部が含まれていることを特徴とする、付記１〜９のいずれか１項に記載の情報処理装置。
（付記１１）
１以上の入出力装置をそなえ、
前記複数の記憶部に、前記入出力装置にそなえられた１以上の記憶部が含まれていることを特徴とする、付記１〜１０のいずれか１項に記載の情報処理装置。
【００９５】
（付記１２）
複数の記憶部をそなえた情報処理装置において、前記複数の記憶部に対する通信制御を分担するシステムコントローラであって、
メモリアクセス要求が発生した場合に、当該メモリアクセス要求の対象データを前記複数の記憶部すべてから検索すべく、当該メモリアクセス要求の対象データを検索させる検索指示を、他のシステムコントローラとの間で送受信するブロードキャスト送受信部と、
該ブロードキャスト送受信部により送受信された前記検索指示に応じて、担当する記憶部から前記メモリアクセス要求の対象データを検索し、前記検索の結果を他のシステムコントローラとの間で通信し合うグローバルスヌープ制御部と、
前記メモリアクセス要求を受け取った場合に、前記ブロードキャスト送受信部による前記検索指示の送受信もしくは前記グローバルスヌープ制御部による処理に並行して、担当する記憶部から前記メモリアクセス要求の対象データを検索するローカルスヌープ制御部と、
担当する記憶部から前記メモリアクセス要求の対象データが前記ローカルスヌープ制御部よって検索され、且つ所定の条件を満たす場合に、前記メモリアクセス要求を実行させるメモリアクセス制御部とをそなえて構成されたことを特徴とする、システムコントローラ。
【００９６】
（付記１３）
前記メモリアクセス制御部が前記メモリアクセス要求を実行させる際に、前記ブロードキャスト送受信部が前記検索指示の送受信を未実行の場合には、前記ブロードキャスト送受信部による前記検索指示の送受信をキャンセルする第１キャンセル部をそなえて構成されていることを特徴とする、付記１２記載のシステムコントローラ。
【００９７】
（付記１４）
前記メモリアクセス制御部が前記メモリアクセス要求を実行させる際に、前記ブロードキャスト送受信部が前記検索指示の送受信を実行している場合には、前記グローバルスヌープ制御部による処理をキャンセルする第２キャンセル部をそなえて構成されていることを特徴とする、付記１２又は付記１３記載のシステムコントローラ。
【００９８】
（付記１５）
前記所定の条件が、前記メモリアクセス要求が共有型のフェッチ命令であることを特徴とする、付記１２〜１４のいずれか１項に記載のシステムコントローラ。
（付記１６）
前記所定の条件が、前記メモリアクセス要求が排他型のフェッチ命令であり、且つ前記ローカルスヌープ制御部により検索された前記対象データが排他型であることを特徴とする、付記１２〜１５のいずれか１項に記載のシステムコントローラ。
【００９９】
（付記１７）
前記所定の条件が、前記メモリアクセス要求がストア命令であり、且つ前記ローカルスヌープ制御部により検索された前記対象データが排他型であることを特徴とする、付記１２〜１６のいずれか１項に記載のシステムコントローラ。
（付記１８）
他の記憶部とは排他的にデータを保持する共有記憶部を前記複数の記憶部の一つとしてそなえ、
前記所定の条件が、前記ローカルスヌープ制御部により検索された前記対象データを保持していた記憶部が前記共有記憶部であることを特徴とする、付記１２〜１７のいずれか１項に記載のシステムコントローラ。
【０１００】
（付記１９）
複数の記憶部と、互いに通信可能に接続され前記複数の記憶部に対する通信制御を分担する複数のシステムコントローラとをそなえ、前記複数のシステムコントローラのそれぞれが、メモリアクセス要求が発生された場合に、当該メモリアクセス要求の対象データを前記複数の記憶部すべてから検索すべく、当該メモリアクセス要求の対象データを検索させる検索指示を、前記複数のシステムコントローラ間で送受信し、送受信された前記検索指示に応じて、当該システムコントローラが担当する記憶部から前記メモリアクセス要求の対象データを検索して、前記検索の結果を前記複数のシステムコントローラ間で通信し合うグローバルスヌープ処理を行なうように構成された情報処理装置における、ローカルスヌープ制御方法であって、
前記メモリアクセス要求を当該システムコントローラが受け取った場合に、前記検索指示の送受信もしくは前記グローバルスヌープ処理に並行して、当該システムコントローラが担当する記憶部から前記メモリアクセス要求の対象データを検索するローカルスヌープステップと、
該ローカルスヌープステップにおいて当該システムコントローラが担当する記憶部から前記メモリアクセス要求の対象データが検索され、且つ所定の条件を満たす場合に、前記メモリアクセス要求を実行するメモリアクセス要求実行ステップとを含んでいることを特徴とする、ローカルスヌープ制御方法。
【０１０１】
（付記２０）
前記メモリアクセス要求実行ステップを実行する際に、前記検索指示の送受信を未実行の場合には、前記検索指示の送受信をキャンセルする第１キャンセルステップを含んでいることを特徴とする、付記１９記載のローカルスヌープ制御方法。
（付記２１）
前記メモリアクセス要求実行ステップを実行する際に、前記検索指示の送受信を実行している場合には、前記グローバルスヌープ処理をキャンセルする第２キャンセルステップを含んでいることを特徴とする、付記２０記載のローカルスヌープ制御方法。
【０１０２】
（付記２２）
前記所定の条件が、前記メモリアクセス要求が共有型のフェッチ命令であることを特徴とする、付記１９〜２１のいずれか１項に記載のローカルスヌープ制御方法。
（付記２３）
前記所定の条件が、前記メモリアクセス要求が排他型のフェッチ命令であり、且つ前記ローカルスヌープステップにおいて検索された前記対象データが排他型であることを特徴とする、付記１９〜２２のいずれか１項に記載のローカルスヌープ制御方法。
【０１０３】
（付記２４）
前記所定の条件が、前記メモリアクセス要求がストア命令であり、且つ前記ローカルスヌープステップにおいて検索された前記対象データが排他型であることを特徴とする、付記１９〜２３のいずれか１項に記載のローカルスヌープ制御方法。
（付記２５）
前記複数のシステムコントローラが、他の記憶部とは排他的にデータを保持する共有記憶部を前記複数の記憶部の一つとしてそなえて構成された情報処理装置における、ローカルスヌープ制御方法であって、
前記所定の条件が、前記ローカルスヌープ制御部により検索された前記対象データを保持していた記憶部が前記共有記憶部であることを特徴とする、付記１９〜２４のいずれか１項に記載のローカルスヌープ制御方法。
【０１０４】
（付記２６）
複数の記憶部をそなえた情報処理装置において前記複数の記憶部に対する通信制御を分担するシステムコントローラとしての機能をコンピュータに実現させるためのローカルスヌープ制御プログラムであって、
メモリアクセス要求が発生した場合に、当該メモリアクセス要求の対象データを前記複数の記憶部すべてから検索すべく、当該メモリアクセス要求の対象データを検索させる検索指示を、他のシステムコントローラとの間で送受信するブロードキャスト送受信部、
該ブロードキャスト送受信部により送受信された前記検索指示に応じて、当該システムコントローラが担当する記憶部から前記メモリアクセス要求の対象データを検索し、前記検索の結果を他のシステムコントローラとの間で通信し合うグローバルスヌープ制御部、
前記メモリアクセス要求を当該システムコントローラが受け取った場合に、前記ブロードキャスト送受信部による前記検索指示の送受信もしくは前記グローバルスヌープ制御部による処理に並行して、当該システムコントローラが担当する記憶部から前記メモリアクセス要求の対象データを検索するローカルスヌープ制御部、及び、
該ローカルスヌープ制御部よって当該システムコントローラが担当する記憶部から前記メモリアクセス要求の対象データが検索され、且つ所定の条件を満たす場合に、前記メモリアクセス要求を実行させるメモリアクセス制御部として、前記コンピュータを機能させることを特徴とする、ローカルスヌープ制御プログラム。
【０１０５】
（付記２７）
複数の記憶部をそなえた情報処理装置において前記複数の記憶部に対する通信制御を分担するシステムコントローラとしての機能をコンピュータに実現させるためのローカルスヌープ制御プログラムを記録したコンピュータ読取可能な記録媒体であって、
前記ローカルスヌープ制御プログラムが、
メモリアクセス要求が発生した場合に、当該メモリアクセス要求の対象データを前記複数の記憶部すべてから検索すべく、当該メモリアクセス要求の対象データを検索させる検索指示を、他のシステムコントローラとの間で送受信するブロードキャスト送受信部、
該ブロードキャスト送受信部により送受信された前記検索指示に応じて、当該システムコントローラが担当する記憶部から前記メモリアクセス要求の対象データを検索し、前記検索の結果を他のシステムコントローラとの間で通信し合うグローバルスヌープ制御部、
前記メモリアクセス要求を当該システムコントローラが受け取った場合に、前記ブロードキャスト送受信部による前記検索指示の送受信もしくは前記グローバルスヌープ制御部による処理に並行して、当該システムコントローラが担当する記憶部から前記メモリアクセス要求の対象データを検索するローカルスヌープ制御部、及び、
該ローカルスヌープ制御部よって当該システムコントローラが担当する記憶部から前記メモリアクセス要求の対象データが検索され、且つ所定の条件を満たす場合に、前記メモリアクセス要求を実行させるメモリアクセス制御部として、前記コンピュータを機能させることを特徴とする、ローカルスヌープ制御プログラムを記録したコンピュータ読取可能な記録媒体。
【図面の簡単な説明】
【０１０６】
【図１】本発明の第１実施形態としての情報処理装置の構成を示すブロック図である。
【図２】本発明の第１実施形態としてのローカルスヌープ制御方法の手順を説明するためのフローチャートである。
【図３】本発明の第１実施形態としてのローカルスヌープ制御方法において第１キャンセル部によるキャンセルを実行した場合の手順を説明するためのタイムチャートである。
【図４】本発明の第１実施形態としてのローカルスヌープ制御方法において第２キャンセル部によるキャンセルを実行した場合の手順を説明するためのタイムチャートである。
【図５】本発明の第２実施形態としての情報処理装置の構成を示すブロック図である。
【図６】従来の大規模な情報処理装置の構成を示すブロック図である。
【図７】従来の大規模な情報処理装置の動作を説明するためのタイムチャートである。
【図８】従来の大規模な情報処理装置おいて複数のシステムコントローラ間で検索結果の通信処理を行なわない場合の動作を説明するためのタイムチャートである。
【符号の説明】
【０１０７】
１，１′，１００  情報処理装置
１０〜１３  ＣＰＵ（演算器）
１０ａ〜１３ａ  １次キャッシュメモリ
１０ｂ〜１３ｂ  ２次キャッシュメモリ
２０〜２３  Ｉ／Ｏ装置（入出力装置）
３０〜３３  メインメモリ
４０−１，４０−２，５０−１，５０−２  システムコントローラ
４１−１，４１−２，５１−１，５１−２  メモリアクセス要求受信部
４２−１，４２−２，５２−１，５２−２  検索部
４３−１，４３−２，５３−１，５３−２  ブロードキャスト送受信部
４４−１，４４−２，５４−１，５４−２  グローバルスヌープ制御部
４５−１，４５−２，５６−１，５６−２  メモリアクセス制御部
５５−１，５５−２  ローカルスヌープ制御部
５７−１，５７−２  第１キャンセル部
５８−１，５８−２  第２キャンセル部
５９−１，５９−２  共有キャッシュメモリ（共有記憶部）
【図１】
2006072509.tif 000003
【図２】
2006072509.tif 000004
【図３】
2006072509.tif 000005
【図４】
2006072509.tif 000006
【図５】
2006072509.tif 000007
【図６】
2006072509.tif 000008
【図７】
2006072509.tif 000009
【図８】
2006072509.tif 000010