(57)【特許請求の範囲】
【請求項１】
第１の演算処理装置及び第３の演算処理装置の間に設けられる第２の演算処理装置を制御する制御装置であって、
前記第３の演算処理装置から入力された第１の読み出し要求に対応するデータが前記第１の演算処理装置のキャッシュメモリに存在する場合には、前記第１の演算処理装置のキャッシュメモリのデータの返送要求を前記第１の演算処理装置に出力し、前記返送要求に対応するデータが前記第１の演算処理装置から得られた場合には、前記得られたデータを前記第３の演算処理装置に出力し、かつ前記得られたデータを主記憶装置に書き込む制御部と、
前記返送要求に対応するデータが前記第１の演算処理装置から得られない場合にはエラーを検出するエラー検出部とを有し、
前記制御部は、前記エラー検出部によりエラーが検出された場合には、前記第１の演算処理装置及び前記第３の演算処理装置にエラーを通知することを特徴とする制御装置。
【請求項２】
前記制御部は、前記エラー検出部によりエラーが検出された場合には、前記第３の演算処理装置にエラーを通知し、前記エラーの対象である前記第１の演算処理装置の識別情報を前記主記憶装置、情報記憶装置又はレジスタに書き込み、
前記制御部は、前記第３の演算処理装置から前記エラーの通知に対応するリカバリ要求を入力した場合には、前記主記憶装置、前記情報記憶装置又は前記レジスタから前記第１の演算処理装置の識別情報を読み出し、前記第１の演算処理装置にエラーを通知することを特徴とする請求項１記載の制御装置。
【請求項３】
前記制御部は、前記第１の読み出し要求に対応するデータが前記第１の演算処理装置のキャッシュメモリに存在し、他の演算処理装置のキャッシュメモリに存在しない状態で、前記返送要求を前記第１の演算処理装置に出力することを特徴とする請求項１又は２記載の制御装置。
【請求項４】
前記第１の読み出し要求は、前記第２の演算処理装置に対応する主記憶装置のアドレスのデータの読み出し要求であることを特徴とする請求項１〜３のいずれか１項に記載の制御装置。
【請求項５】
前記制御部は、前記第１の演算処理装置から入力された第２の読み出し要求に対応するデータがすべての演算処理装置のキャッシュメモリに存在しない場合には、前記第２の演算処理装置に対応する主記憶装置から前記第２の読み出し要求に対応するデータを読み出して前記第１の演算処理装置に出力し、その後、前記第３の演算処理装置から前記第１の読み出し要求を入力することを特徴とする請求項１〜４のいずれか１項に記載の制御装置。
【請求項６】
前記第２の演算処理装置と、前記第３の演算処理装置とは、同一の演算処理装置であることを特徴とする請求項１〜５のいずれか１項に記載の制御装置。
【請求項７】
第１の演算処理装置と、
第２の演算処理装置と、
第３の演算処理装置と、
前記第１の演算処理装置及び前記第３の演算処理装置の間に設けられる前記第２の演算処理装置を制御する制御装置と、
前記第２の演算処理装置に対応する主記憶装置とを有し、
前記制御装置は、
前記第３の演算処理装置から入力された第１の読み出し要求に対応するデータが前記第１の演算処理装置のキャッシュメモリに存在する場合には、前記第１の演算処理装置のキャッシュメモリのデータの返送要求を前記第１の演算処理装置に出力し、前記返送要求に対応するデータが前記第１の演算処理装置から得られた場合には、前記得られたデータを前記第３の演算処理装置に出力し、かつ前記得られたデータを前記主記憶装置に書き込む制御部と、
前記返送要求に対応するデータが前記第１の演算処理装置から得られない場合にはエラーを検出するエラー検出部とを有し、
前記制御部は、前記エラー検出部によりエラーが検出された場合には、前記第１の演算処理装置及び前記第３の演算処理装置にエラーを通知することを特徴とする情報処理装置。
【請求項８】
第１の演算処理装置と、第２の演算処理装置と、第３の演算処理装置と、前記第１の演算処理装置及び前記第３の演算処理装置の間に設けられる前記第２の演算処理装置を制御する制御装置と、前記第２の演算処理装置に対応する主記憶装置とを有する情報処理装置の制御方法であって、
前記制御装置が有する制御部が、前記第３の演算処理装置から入力された第１の読み出し要求に対応するデータが前記第１の演算処理装置のキャッシュメモリに存在する場合には、前記第１の演算処理装置のキャッシュメモリのデータの返送要求を前記第１の演算処理装置に出力し、前記返送要求に対応するデータが前記第１の演算処理装置から得られた場合には、前記得られたデータを前記第３の演算処理装置に出力し、かつ前記得られたデータを前記主記憶装置に書き込み、
前記制御装置が有するエラー検出部が、前記返送要求に対応するデータが前記第１の演算処理装置から得られない場合にはエラーを検出し、
前記制御装置が有する前記制御部が、前記エラーが検出された場合には、前記第１の演算処理装置及び前記第３の演算処理装置にエラーを通知することを特徴とする情報処理装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御装置、情報処理装置及び情報処理装置の制御方法に関する。
【背景技術】
【０００２】
記憶装置を各々が備える複数のノードと、複数のノード間を接続するインターコネクトとを有する情報処理装置が知られている（特許文献１参照）。複数のノードのうち少なくとも１つのノードは、キャッシュメモリと、異常検出部と、エラー情報生成部と、プロセッサとを有する。キャッシュメモリは、１つのノード又は他のノードが備える記憶装置から読み出したデータをキャッシュする。異常検出部は、１つのノード又は他のノードが備える記憶装置に含まれる、１つのノード及び他のノードで共有可能な共有メモリ領域を利用したデータ転送のデータ転送経路における異常、又は、１つのノード又は他のノードが備える記憶装置に含まれる、１つのノード及び他のノードで共有可能な共有メモリ領域を利用したデータ転送のデータ転送経路に含まれ得るいずれかのノードにおける異常を検出する。エラー情報生成部は、異常検出部により検出された異常に基づいて、共有メモリ領域に含まれる領域のうち、異常が検出されたデータ転送においてアクセスする領域についてのエラー情報を生成するとともに、自ノード内のプロセッサに対する割り込みを発生する。プロセッサは、割り込みに応じてエラー情報に基づいて、異常が検出されたデータ転送においてアクセスする領域を含む共有メモリに対するリカバリ処理を実行する。異常検出部により異常が検出されたノードが、キャッシュメモリに格納したデータの読み出し元の記憶装置を有するホームノードとなる他のノードである場合には、プロセッサは、リカバリ処理を行う際に異常が検出された他のノードが備える記憶装置から読み出されて自ノード内のキャッシュメモリに格納されたデータを廃棄する。
【０００３】
また、記憶装置を各々が備える複数のノードと、複数のノード間を接続するインターコネクトとを有する情報処理装置が知られている（特許文献２参照）。複数のノードのうち少なくとも１つのノードは、異常検出部と、エラー情報生成部と、プロセッサとを有する。異常検出部は、１つのノード又は他のノードが備える記憶装置に含まれる、１つのノード及び他のノードで共有可能な共有メモリ領域を利用したデータ転送のデータ転送経路における異常、又は、１つのノード又は他のノードが備える記憶装置に含まれる、１つのノード及び他のノードで共有可能な共有メモリ領域を利用したデータ転送のデータ転送経路に含まれ得るいずれかのノードにおける異常を検出する。エラー情報生成部は、異常検出部により検出された異常に基づいて、共有メモリ領域に含まれる領域のうち、異常が検出されたデータ転送においてアクセスする領域についてのエラー情報を生成するとともに、自ノード内のプロセッサに対する割り込みを発生する。プロセッサは、割り込みに応じてエラー情報に基づいて、異常が検出されたデータ転送においてアクセスする領域を含む共有メモリに対するリカバリ処理を実行する。エラー情報生成部は、異常検出部により異常が検出されたノードがリモートノードであり、かつ、リモートノードの異常によって、ホームノードの共有メモリ領域にリモートノードのキャッシュデータがライトバックされない場合、異常を示すデータをディレクトリに書き込む。プロセッサは、リカバリ処理を実行する際に、異常を示すデータをディレクトリから削除する。
【０００４】
また、複数のプロセッサ群と、主記憶と、キャッシュユニットと、ディレクトリ記憶部と、第１共通バスと、第２共通バスと、内部コヒーレンス処理部と、外部コヒーレンス処理部とを有するキャッシュコヒーレンス装置が知られている（特許文献３参照）。主記憶は、プロセッサ群に共有される。キャッシュユニットは、複数のプロセッサ毎に設けられ、主記憶のアクセスを高速化する。ディレクトリ記憶部は、主記憶のデータのキャッシュユニットへの登録状態をキャッシュライン単位に記憶する。第１共通バスは、主記憶とキャッシュユニット間を接続する。第２共通バスは、複数のプロセッサ群の間を接続する。内部コヒーレンス処理部は、主記憶とキャッシュユニット間のキャッシュコヒーレンスを実現する。外部コヒーレンス処理部は、複数のプロセッサ群の間のキャッシュコヒーレンスを実現する。キャッシュユニットは、キャッシュラインを複数のサブラインに分割して管理する。ディレクトリ記憶部は、キャッシュユニット上のデータが最新値で主記憶上のデータが旧値となるダーティ状態である場合のキャッシュ状態をサブライン単位に記憶し、キャッシュユニット上と主記憶上のデータが同じ値になるシェア状態をキャッシュライン単位に記憶する。複数のプロセッサ群は、少なくとも１つ以上のプロセッサで構成されるプロセッサモジュールに分割され、ディレクトリ記憶部へのキャッシュ状態の記憶をプロセッサモジュール単位に行う。第２共有バスは、複数のプロセッサモジュールのバス接続ユニットとバスアービタとを結合して、複数のプロセッサモジュールの間でスプリット型パケット転送によりバスコマンドの転送を行い、バスコマンドに、アクセス要求元を示すソースフィールド、第１のアクセス要求先を示す第１宛先フィールド、及び第２のアクセス要求先を示す第２宛先フィールドの３つを備える。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特許第５５９００２２号公報
【特許文献２】特開２０１４−１９７４０２号公報
【特許文献３】特開２００６−２１６０７５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
異常検出部が異常を検出した場合に、他のノードが異常に基づく処理を行うことができない場合がある。
【０００７】
１つの側面では、本発明の目的は、エラーが検出された場合には、他の演算処理装置にエラーを通知することができる制御装置、情報処理装置及び情報処理装置の制御方法を提供することである。
【課題を解決するための手段】
【０００８】
制御装置は、第１の演算処理装置及び第３の演算処理装置の間に設けられる第２の演算処理装置を制御する制御装置であって、前記第３の演算処理装置から入力された第１の読み出し要求に対応するデータが前記第１の演算処理装置のキャッシュメモリに存在する場合には、前記第１の演算処理装置のキャッシュメモリのデータの返送要求を前記第１の演算処理装置に出力し、前記返送要求に対応するデータが前記第１の演算処理装置から得られた場合には、前記得られたデータを前記第３の演算処理装置に出力し、かつ前記得られたデータを主記憶装置に書き込む制御部と、前記返送要求に対応するデータが前記第１の演算処理装置から得られない場合にはエラーを検出するエラー検出部とを有し、前記制御部は、前記エラー検出部によりエラーが検出された場合には、前記第１の演算処理装置及び前記第３の演算処理装置にエラーを通知する。
【発明の効果】
【０００９】
エラーが検出された場合には、第１の演算処理装置及び第３の演算処理装置にエラーを通知することができる。
【図面の簡単な説明】
【００１０】
【図１】図１は、本実施形態による情報処理装置の構成例を示す図である。
【図２】図２は、第２のプロセッサ、第２のシステムコントローラ、第２のメインメモリ及び第２のディレクトリメモリの構成例を示す図である。
【図３】図３は、情報処理装置の制御方法を示すフローチャートである。
【図４】図４は、本実施形態による情報処理装置の制御方法を示すフローチャートである。
【図５】図５（Ａ）は第３のプロセッサの処理を示すフローチャートであり、図５（Ｂ）は第２のプロセッサ及び第２のシステムコントローラの処理を示すフローチャートであり、図５（Ｃ）は第１のプロセッサの処理を示すフローチャートである。
【発明を実施するための形態】
【００１１】
図１は、本実施形態による情報処理装置の構成例を示す図である。情報処理装置は、第１のプロセッサ１０１ａ、第１のシステムコントローラ１０２ａ、第１のメインメモリ１０３ａ、第１のディレクトリメモリ１０４ａ、第２のプロセッサ１０１ｂ、第２のシステムコントローラ１０２ｂ、第２のメインメモリ１０３ｂ、第２のディレクトリメモリ１０４ｂ、第３のプロセッサ１０１ｃ、第３のシステムコントローラ１０２ｃ、第３のメインメモリ１０３ｃ、及び第３のディレクトリメモリ１０４ｃを有する。
【００１２】
第１のプロセッサ１０１ａは、演算処理を行う第１の演算処理装置である。第１のメインメモリ１０３ａは、第１のプロセッサ１０１ａに対応し、各アドレスにデータを記憶する第１の主記憶装置である。第１のディレクトリメモリ１０４ａは、第１のメインメモリ１０３ａの各アドレスのデータのキャッシュ状態を示すディレクトリ情報、エラー情報及びプロセッサ識別情報を記憶する第１の情報記憶装置である。第１のシステムコントローラ１０２ａは、第１のプロセッサ１０１ａ、第１のメインメモリ１０３ａ及び第１のディレクトリメモリ１０４ａを制御する第１の制御装置である。
【００１３】
第２のプロセッサ１０１ｂは、演算処理を行う第２の演算処理装置である。第２のメインメモリ１０３ｂは、第２のプロセッサ１０１ｂに対応し、各アドレスにデータを記憶する第２の主記憶装置である。第２のディレクトリメモリ１０４ｂは、第２のメインメモリ１０３ｂの各アドレスのデータのキャッシュ状態を示すディレクトリ情報、エラー情報及びプロセッサ識別情報を記憶する第２の情報記憶装置である。第２のシステムコントローラ１０２ｂは、第２のプロセッサ１０１ｂ、第２のメインメモリ１０３ｂ及び第２のディレクトリメモリ１０４ｂを制御する第２の制御装置である。
【００１４】
第３のプロセッサ１０１ｃは、演算処理を行う第３の演算処理装置である。第３のメインメモリ１０３ｃは、第３のプロセッサ１０１ｃに対応し、各アドレスにデータを記憶する第３の主記憶装置である。第３のディレクトリメモリ１０４ｃは、第３のメインメモリ１０３ｃの各アドレスのデータのキャッシュ状態を示すディレクトリ情報、エラー情報及びプロセッサ識別情報を記憶する第３の情報記憶装置である。第３のシステムコントローラ１０２ｃは、第３のプロセッサ１０１ｃ、第３のメインメモリ１０３ｃ及び第３のディレクトリメモリ１０４ｃを制御する第３の制御装置である。
【００１５】
第２のプロセッサ１０１ｂは、第１のプロセッサ１０１ａ及び第３のプロセッサ１０１ｃの間に設けられる。第１〜第３のメインメモリ１０３ａ〜１０３ｃは、相互に異なるアドレスのデータを記憶する。第１〜第３のメインメモリ１０３ａ〜１０３ｃは、第１〜第３のプロセッサ１０１ａ〜１０１ｃの共有メモリである。
【００１６】
第１のプロセッサ１０１ａは、第１のシステムコントローラ１０２ａを介して、第１のメインメモリ１０３ａに対してデータの読み出し及び書き込みを行うことができる。また、第１のプロセッサ１０１ａは、第２のプロセッサ１０１ｂ及び第２のシステムコントローラ１０２ｂを介して、第２のメインメモリ１０３ｂに対してデータの読み出し及び書き込みを行うことができる。また、第１のプロセッサ１０１ａは、第２のプロセッサ１０１ｂ、第３のプロセッサ１０１ｃ及び第３のシステムコントローラ１０２ｃを介して、第３のメインメモリ１０３ｃに対してデータの読み出し及び書き込みを行うことができる。
【００１７】
第２のプロセッサ１０１ｂは、第２のシステムコントローラ１０２ｂを介して、第２のメインメモリ１０３ｂに対してデータの読み出し及び書き込みを行うことができる。また、第２のプロセッサ１０１ｂは、第１のプロセッサ１０１ａ及び第１のシステムコントローラ１０２ａを介して、第１のメインメモリ１０３ａに対してデータの読み出し及び書き込みを行うことができる。また、第２のプロセッサ１０１ａは、第３のプロセッサ１０１ｃ及び第３のシステムコントローラ１０２ｃを介して、第３のメインメモリ１０３ｃに対してデータの読み出し及び書き込みを行うことができる。
【００１８】
第３のプロセッサ１０１ｃは、第３のシステムコントローラ１０２ｃを介して、第３のメインメモリ１０３ｃに対してデータの読み出し及び書き込みを行うことができる。また、第３のプロセッサ１０１ｃは、第２のプロセッサ１０１ｂ及び第２のシステムコントローラ１０２ｂを介して、第２のメインメモリ１０３ｂに対してデータの読み出し及び書き込みを行うことができる。また、第３のプロセッサ１０１ｃは、第２のプロセッサ１０１ｂ、第１のプロセッサ１０１ａ及び第１のシステムコントローラ１０２ａを介して、第１のメインメモリ１０３ａに対してデータの読み出し及び書き込みを行うことができる。
【００１９】
図２は、第２のプロセッサ１０１ｂ、第２のシステムコントローラ１０２ｂ、第２のメインメモリ１０３ｂ及び第２のディレクトリメモリ１０４ｂの構成例を示す図である。第１のプロセッサ１０１ａ及び第３のプロセッサ１０１ｃは、第２のプロセッサ１０１ｂと同様の構成を有する。第１のシステムコントローラ１０２ａ及び第３のシステムコントローラ１０２ｃは、第２のシステムコントローラ１０２ｂと同様の構成を有する。第１のメインメモリ１０３ａ及び第３のメインメモリ１０３ｃは、第２のメインメモリ１０３ｂと同様の構成を有する。第１のディレクトリメモリ１０４ａ及び第３のディレクトリメモリ１０４ｃは、第２のディレクトリメモリ１０４ｂと同様の構成を有する。
【００２０】
第２のプロセッサ１０１ｂは、コア２２１及びキャッシュメモリ２２２を有する。コア２２１は、演算処理を行う。キャッシュメモリ２２２は、キャッシュライン単位で、第１のメインメモリ１０３ａ〜第３のメインメモリ１０３ｃの一部のアドレスのデータを記憶する。例えば、キャッシュメモリ２２２はＳＲＡＭ（Static Random Access Memory）であり、第１〜第３のメインメモリ１０３ａ〜１０３ｃはＤＲＡＭ（Dynamic Random Access Memory）である。キャッシュメモリ２２２は、第１〜第３のメインメモリ１０３ａ〜１０３ｃに対して高速にアクセスが可能である。
【００２１】
第２のシステムコントローラ１０２ｂは、プロセッサインターフェース２０１、エラー検出部２０２、エラープロセッサ検出部２０３、トランザクション制御部２０４、メモリアクセス制御部２０５、キャッシュコヒーレンシ制御部２０６、エラープロセッサ制御部２０７、及びディレクトリ制御部２０８を有する。プロセッサインターフェース２０１は、第２のプロセッサ１０１ｂに対して、メモリアクセス要求を入力し、処理の完了後の応答を出力する。トランザクション制御部２０４は、プロセッサインターフェース２０１に接続され、メモリアクセス要求を判別し、第２のメインメモリ１０３ｂに対する読み出し又は書き込み要求と、第１〜第３のプロセッサ１０１ａ〜１０１ｃに対するデータ返送要求とを、順次、実行指示する。メモリアクセス制御部２０５は、トランザクション制御部２０４に接続され、第２のメインメモリ１０３ｂに対して、読み出し及び書き込みを制御する。
【００２２】
キャッシュコヒーレンシ制御部２０６は、ＭＥＳＩプロトコルに従い、キャッシュメモリ２２２の各キャッシュラインのデータが４状態のうちのいずれかの状態であるのかを記憶する。４状態は、変更状態、排他状態、共有状態、及び無効状態である。変更状態は、第２のプロセッサ１０１ｂのキャッシュメモリ２２２だけに存在し、第１のプロセッサ１０１ａ及び第３のプロセッサ１０１ｃのキャッシュメモリ２２２には存在しないデータであり、第１〜第３のメインメモリ１０３ａ〜１０３ｃのデータに対して変更されたデータを示す。排他状態は、第２のプロセッサ１０１ｂのキャッシュメモリ２２２だけに存在し、第１のプロセッサ１０１ａ及び第３のプロセッサ１０１ｃのキャッシュメモリ２２２には存在しないデータであり、第１〜第３のメインメモリ１０３ａ〜１０３ｃのデータに対して同一のデータを示す。共有状態は、第２のプロセッサ１０１ｂのキャッシュメモリ２２２に存在し、かつ第１のプロセッサ１０１ａ又は第３のプロセッサ１０１ｃのキャッシュメモリ２２２にも存在するデータを示す。無効状態は、そのキャッシュラインのデータが無効であることを示す。また、キャッシュコヒーレンシ制御部２０６は、第２のディレクトリメモリ１０４ｂ内のディレクトリ情報２１１に応じて、第１〜第３のプロセッサ１０１ａ〜１０１ｃに対して、データ返送要求又はキャッシュラインの無効化要求を出力し、その応答を入力する。
【００２３】
第２のディレクトリメモリ１０４ｂは、第２のメインメモリ１０３の各アドレスのデータに対する、ディレクトリ情報２１１、エラー情報２１２、及びプロセッサ識別情報２１３を記憶する。ディレクトリ制御部２０８は、第２のディレクトリメモリ１０４ｂに対して、ディレクトリ情報２１１、エラー情報２１２、及びプロセッサ識別情報２１３の読み出し及び書き込みを行う。ディレクトリ情報２１１は、第２のメインメモリ１０３の各アドレスのデータが第１〜第３のプロセッサ１０１ａ〜１０１ｃのうちのいずれのキャッシュメモリ２２２に記憶されているかの情報を含む。また、ディレクトリ情報２１１は、すべてのプロセッサ１０１ａ〜１０１ｃのキャッシュメモリ２２２に存在しないデータ状態、自己のプロセッサ１０１ｂのキャッシュメモリ２２２に存在するデータ状態、他のプロセッサ１０１ａ及び１０１ｃのうちの１個のプロセッサのキャッシュメモリ２２２にのみ存在するデータ状態（排他状態）、他のプロセッサ１０１ａ及び１０１ｃのうちの複数のプロセッサのキャッシュメモリ２２２に存在するデータ状態（共有状態）を示す情報を含む。
【００２４】
エラー検出部２０２は、データ返送要求の処理でエラーが発生したことを検出し、トランザクション制御部２０４及びエラープロセッサ検出部２０３にエラーを通知する。エラープロセッサ検出部２０３は、エラーが通知された場合には、ディレクトリ制御部２０８により読み出されたディレクトリ情報２１１に応じて、第１〜第３のプロセッサ１０１ａ〜１０１ｃのうちのエラー対象のプロセッサの識別情報（ＩＤ）をディレクトリ制御部２０８に通知する。ディレクトリ制御部２０８は、第２のディレクトリメモリ１０４ｂに対して、エラー対象のアドレスのデータに対する、通知されたエラー情報２１２及びプロセッサ識別情報２１３を書き込む。
【００２５】
ディレクトリ制御部２０８は、リカバリ要求に応じて、プロセッサ識別情報２１３を読み出し、その読み出したプロセッサ識別情報２１３をエラープロセッサ制御部２０７に出力する。エラープロセッサ制御部２０７は、その入力したプロセッサ識別情報２１３をトランザクション制御部２０４に出力する。トランザクション制御部１０４は、第１〜第３のプロセッサ１０１ａ〜１０１ｃのうちのプロセッサ識別情報２１３が示すプロセッサにエラーを通知する。
【００２６】
図３は、情報処理装置の課題を説明するための情報処理装置の制御方法を示すフローチャートである。ここで、第２のシステムコントローラ１０２ｂが第２のディレクトリメモリ１０４ｂにプロセッサ識別情報２１３を書き込まない場合の課題を説明する。ステップＳ３２１は、第１のプロセッサ１０１ａのデータ書き込み要求の処理である。ステップＳ３２２は、第３のプロセッサ１０１ｃのデータ読み出し要求の処理である。
【００２７】
ステップＳ３０１では、第１のプロセッサ１０１ａは、第２のメインメモリ１０３ｂのアドレスのデータ書き込み要求を発行する。次に、ステップＳ３０２では、第１のプロセッサ１０１ａは、その書き込み要求に対応するデータが第１のプロセッサ１０１ａ内のキャッシュメモリ２２２に存在するか否かをチェックし、存在しない場合にはステップＳ３０３に処理を進め、存在する場合にはステップＳ３０７に処理を進める。
【００２８】
ステップＳ３０３では、第１のプロセッサ１０１ａは、第２のプロセッサ１０１ｂを介して、第２のシステムコントローラ１０２ｂに上記のアドレスのデータの第２の読み出し要求を出力する。第２のシステムコントローラ１０２ｂは、第２のディレクトリメモリ１０４ｂに対して、上記の第２の読み出し要求に対応するアドレスのディレクトリ情報２１１を読み出す。
【００２９】
次に、ステップＳ３０４では、第２のシステムコントローラ１０２ｂは、ディレクトリ情報２１１を基に、第２の読み出し要求に対応するアドレスのデータが第２のプロセッサ１０１ｂ又は第３のプロセッサ１０１ｃのキャッシュメモリ２２２に存在するか否かをチェックし、存在する場合にはステップＳ３０６に処理を進める。また、第２のシステムコントローラ１０２ｂは、第２の読み出し要求に対応するアドレスのデータがすべてのプロセッサ１０１ａ〜１０１ｃのキャッシュメモリ２２２に存在しない場合には、ステップＳ３０５に処理を進める。
【００３０】
ステップＳ３０６では、第２のシステムコントローラ１０２ｂは、第２の読み出し要求に対応する第２のプロセッサ１０１ｂ又は第３のプロセッサ１０１ｃのキャッシュメモリ２２２のデータを取得し、その取得したデータを第２のプロセッサ１０１ｂを介して第１のプロセッサ１０１ａに転送し、ステップＳ３０７に処理を進める。
【００３１】
ステップＳ３０５では、第２のシステムコントローラ１０２ｂは、第２のメインメモリ１０３ｂに対して、第２の読み出し要求に対応するアドレスのデータを読み出し、その読み出したデータを第２のプロセッサ１０１ｂを介して第１のプロセッサ１０１ａに出力する。第１のプロセッサ１０１ａは、入力したデータを第１のプロセッサ１０１ａのキャッシュメモリ２２２に書き込む。第２のシステムコントローラ１０２ｂのディレクトリ制御部２０８は、第２のディレクトリメモリ１０４ｂに対して、第１のプロセッサ１０１ａのキャッシュメモリ２２２にのみそのデータが存在することを示す排他状態のディレクトリ情報２１１を書き込む。また、第１のシステムコントローラ１０２ａのキャッシュコヒーレンシ制御部２０６は、第１のプロセッサ１０１ａのキャッシュメモリ２２２に書き込まれたデータが排他状態であることを記憶する。その後、情報処理装置は、ステップＳ３０７に処理を進める。
【００３２】
ステップＳ３０７では、第１のプロセッサ１０１ａは、上記の書き込み要求に応じて、第１のプロセッサ１０１ａのキャッシュメモリ２２２内のそのデータを書き換える。第１のシステムコントローラ１０２ａのキャッシュコヒーレンシ制御部２０６は、第１のプロセッサ１０１ａのキャッシュメモリ２２２の書き換えられたデータが変更状態であることを記憶する。
【００３３】
次に、ステップＳ３０８では、第３のプロセッサ１０１ｃは、第２のプロセッサ１０１ｂを介して、第２のシステムコントローラ１０２ｂに対して、第２のメインメモリ１０３ｂの上記のアドレスのデータの第１の読み出し要求を出力する。第２のシステムコントローラ１０２ｂは、第２のディレクトリメモリ１０４ｂに対して、上記のアドレスのディレクトリ情報２１１を読み出す。そして、第２のシステムコントローラ１０２ｂは、そのディレクトリ情報２１１に応じて、上記のアドレスのデータが第１のプロセッサ１０１ａのキャッシュメモリ２２２に存在するので、第１のプロセッサ１０１ａのキャッシュメモリ２２２のそのデータの返送要求を第１のプロセッサ１０１ａに出力する。ここで、第１の読み出し要求に対応するアドレスのデータは、第１のプロセッサ１０１ａのキャッシュメモリ２２２に存在し、他のプロセッサ１０１ｂ及び１０１ｃのキャッシュメモリ２２２に存在しない状態である。
【００３４】
次に、ステップＳ３０９では、第１のプロセッサ１０１ａは、返送要求に対応するデータを第１のプロセッサ１０１ａのキャッシュメモリ２２２から読み出し、その読み出した変更状態のデータをライトバックのために第２のプロセッサ１０１ｂを介して第２のシステムコントローラ１０２ｂに出力する。
【００３５】
次に、ステップＳ３１０では、第２のシステムコントローラ１０２ｂにおいて、エラー検出部２０２は、返送要求に対応するデータを第１のプロセッサ１０１ａから得られた場合には、転送成功を検出し、転送成功をトランザクション制御部２０４に通知し、ステップＳ３１７に処理を進める。これに対し、エラー検出部２０２は、通信障害等により、一定時間内に返送要求に対応するデータを第１のプロセッサ１０１ａから得られない場合には、タイムアウトし、転送エラーを検出し、転送エラーをトランザクション制御部２０４に通知し、ステップＳ３１１に処理を進める。
【００３６】
ステップＳ３１７では、第２のシステムコントローラ１０２ｂは、第１のプロセッサ１０１ａから得られたデータを第２のメインメモリ１０３ｂに書き込み（ライトバックし）、かつ第１のプロセッサ１０１ａから得られたデータを第２のプロセッサ１０１ｂを介して第３のプロセッサ１０１ｃに出力する。第２のシステムコントローラ１０２ｂは、第１のプロセッサ１０１ａのキャッシュメモリ２２２のそのデータの無効化要求を第１のプロセッサ１０１ａを介して第１のシステムコントローラ１０２ａに出力する。なお、第２のシステムコントローラ１０２ｂは、そのデータの無効化要求をすべてのプロセッサ１０１ａ〜１０１ｃに出力してもよい。第１のシステムコントローラ１０２ａのキャッシュコヒーレンス制御部２０６は、無効化要求に応じて、第１のプロセッサ１０１ａのキャッシュメモリ２２２のそのデータが無効状態であることを記憶する。第２のシステムコントローラ１０２ｂは、上記のアドレスのデータがすべてのプロセッサ１０１ａ〜１０１ｃのキャッシュメモリ２２２に存在しないことを示すディレクトリ情報２１１を第２のディレクトリメモリ１０４ｂに書き込む。
【００３７】
次に、ステップＳ３１８では、第１のプロセッサ１０１ａは、第２のプロセッサ１０１ｂを介して、第２のシステムコントローラ１０２ｂに上記のアドレスのデータの第３の読み出し要求を出力する。第２のシステムコントローラ１０２ｂは、第２のディレクトリメモリ１０４ｂ内のディレクトリ情報２１１を参照し、上記のアドレスのデータがすべてのプロセッサ１０１ａ〜１０１ｃのキャッシュメモリ２２２に存在しないので、第２のメインメモリ１０３ｂから上記のアドレスのデータを読み出す。そして、第２のシステムコントローラ１０２ｂは、その読み出したデータを第２のプロセッサ１０１ｂを介して第１のプロセッサ１０１ａに出力する。
【００３８】
次に、ステップＳ３１９では、第１のプロセッサ１０１ａは、その入力したデータを取得し、その入力したデータを第１のプロセッサ１０１ａのキャッシュメモリ２２２に書き込む。これにより、第１のプロセッサ１０１ａは、自己が書き換えたデータを第２のメインメモリ１０３ｂから正常に読み出すことができる。情報処理装置は、正常終了する。
【００３９】
ステップＳ３１１では、第２のシステムコントローラ１０２ｂは、転送エラーのアドレスに対するエラー情報２１２を第２のディレクトリメモリ１０４ｂに書き込む。
【００４０】
次に、ステップＳ３１２では、第２のシステムコントローラ１０２ｂは、転送エラーに応じて、第２のプロセッサ１０１ｂを介して、ステップＳ３０８の第１の読み出し要求の要求元の第３のプロセッサ１０１ｃにエラーを通知する。
【００４１】
次に、ステップＳ３１３では、第３のプロセッサ１０１ｃは、エラーの通知に応じて、ソフトウェア処理により、第２のプロセッサ１０１ｂを介して第２のシステムコントローラ１０２ｂにリカバリ要求を出力する。
【００４２】
次に、ステップＳ３１４では、第２のシステムコントローラ１０２ｂは、リカバリ要求に応じて、第２のディレクトリメモリ１０４ｂに対して、上記のアドレスに対するエラー情報２１２をクリアする。また、第２のシステムコントローラ１０２ｂは、第１のプロセッサ１０１ａのキャッシュメモリ２２２のそのデータの無効化要求を第１のプロセッサ１０１ａを介して第１のシステムコントローラ１０２ａに出力する。なお、第２のシステムコントローラ１０２ｂは、そのデータの無効化要求をすべてのプロセッサ１０１ａ〜１０１ｃに出力してもよい。第１のシステムコントローラ１０２ａのキャッシュコヒーレンス制御部２０６は、無効化要求に応じて、第１のプロセッサ１０１ａのキャッシュメモリ２２２のそのデータが無効状態であることを記憶する。第２のシステムコントローラ１０２ｂは、上記のアドレスのデータがすべてのプロセッサ１０１ａ〜１０１ｃのキャッシュメモリ２２２に存在しないことを示すディレクトリ情報２１１を第２のディレクトリメモリ１０４ｂに書き込む。
【００４３】
次に、ステップＳ３１５では、ステップＳ３１８と同様に、第１のプロセッサ１０１ａは、第２のプロセッサ１０１ｂを介して、第２のシステムコントローラ１０２ｂに上記のアドレスのデータの第３の読み出し要求を出力する。第２のシステムコントローラ１０２ｂは、第２のディレクトリメモリ１０４ｂ内のディレクトリ情報２１１を参照し、上記のアドレスのデータがすべてのプロセッサ１０１ａ〜１０１ｃのキャッシュメモリ２２２に存在しないので、第２のメインメモリ１０３ｂから上記のアドレスのデータを読み出す。そして、第２のシステムコントローラ１０２ｂは、その読み出したデータを第２のプロセッサ１０１ｂを介して第１のプロセッサ１０１ａに出力する。
【００４４】
次に、ステップＳ３１６では、第１のプロセッサ１０１ａは、その入力したデータを取得し、その入力したデータを第１のプロセッサ１０１ａのキャッシュメモリ２２２に書き込む。ここで、第１のプロセッサ１０１ａは、ステップＳ３１９と同様に、自己が書き換えたデータを取得することを前提に処理を進める。しかし、ステップＳ３１０の転送エラーにより、第２のメインメモリ１０３ｂには書き換え後のデータが書き込まれていない。したがって、第１のプロセッサ１０１ａは、自己が書き換える前のデータを第２のメインメモリ１０３ｂから取得することになり、正常な処理を行うことができない。これにより、情報処理装置は、異常終了する。この異常終了の課題を解決するための実施形態を以下に説明する。
【００４５】
図４は、本実施形態による情報処理装置の制御方法を示すフローチャートである。本実施形態では、第２のシステムコントローラ１０２ｂが第２のディレクトリメモリ１０４ｂにプロセッサ識別情報２１３を書き込むことにより、上記の図３の処理の課題を解決する。図４のフローチャートは、図３のフローチャートに対して、ステップＳ３１１、Ｓ３１５及びＳ３１６を削除し、ステップＳ４０１〜Ｓ４０６を追加したものである。以下、図４のフローチャートが図３のフローチャートと異なる点を説明する。
【００４６】
情報処理装置は、図３のフローチャートと同様に、ステップＳ３０１〜Ｓ３１０の処理を行う。ステップＳ３１０では、第２のシステムコントローラ１０２ｂにおいて、エラー検出部２０２は、返送要求に対応するデータを第１のプロセッサ１０１ａから得られた場合には、転送成功をトランザクション制御部２０４に通知し、ステップＳ３１７に処理を進める。この場合、情報処理装置は、図３のフローチャートと同様に、ステップＳ３１７〜Ｓ３１９の処理を行う。これに対し、エラー検出部２０２は、通信障害等により、一定時間内に返送要求に対応するデータを第１のプロセッサ１０１ａから得られない場合には、タイムアウトし、転送エラーをトランザクション制御部２０４に通知し、ステップＳ４０１に処理を進める。
【００４７】
ステップＳ４０１では、第２のシステムコントローラ１０２ｂは、ディレクトリ情報２１１を参照し、転送エラーのアドレスに対するエラー情報２１２と、転送エラーの対象であって転送エラーのアドレスのデータを排他状態でキャッシュメモリ２２２に記憶する第１のプロセッサ１０１ａの識別情報２１３とを第２のディレクトリメモリ１０４ｂに書き込む。具体的には、エラープロセッサ検出部２０３がディレクトリ情報２１１を基に第１のプロセッサ１０１ａの識別情報２１３をディレクトリ制御部２０８に出力し、ディレクトリ制御部２０８がエラー情報２１２及び第１のプロセッサ１０１ａの識別情報２１３を第２のディレクトリメモリ１０４ｂに書き込む。
【００４８】
次に、ステップＳ３１２では、第２のシステムコントローラ１０２ｂは、転送エラーに応じて、第２のプロセッサ１０１ｂを介して、ステップＳ３０８の第１の読み出し要求の要求元の第３のプロセッサ１０１ｃにエラーを通知する。
【００４９】
次に、ステップＳ３１３では、第３のプロセッサ１０１ｃは、エラーの通知に応じて、ソフトウェア処理により、第２のプロセッサ１０１ｂを介して第２のシステムコントローラ１０２ｂにリカバリ要求を出力する。
【００５０】
次に、ステップＳ４０２では、第２のシステムコントローラ１０２ｂは、リカバリ要求に応じて、ステップＳ４０１で書き込んだ第１のプロセッサ１０１ａの識別情報２１３を第２のディレクトリメモリ１０４ｂから読み出す。具体的には、ディレクトリ制御部２０８が第２のディレクトリメモリ１０４ｂから第１のプロセッサ１０１ａの識別情報２１３を読み出してエラープロセッサ制御部２０７に出力し、エラープロセッサ制御部２０７が第１のプロセッサ１０１ａの識別情報２１３をトランザクション制御部２０４に出力する。
【００５１】
次に、ステップＳ４０３では、第２のシステムコントローラ１０２ｂは、第１のプロセッサ１０１ａの識別情報２１３に応じて、第２のプロセッサ１０１ｂを介して、第１のプロセッサ１０１ａにエラーを通知する。具体的には、第２のシステムコントローラ１０２ｂは、第１のプロセッサ１０１ａ及び第２のプロセッサ１０１ｂを介して、第１のプロセッサ１０１ａのキャッシュメモリ２２２のそのデータの無効化要求とエラー情報とを第１のシステムコントローラ１０２ａに出力する。なお、第２のシステムコントローラ１０２ｂは、そのデータの無効化要求をすべてのプロセッサ１０１ａ〜１０１ｃに出力してもよい。第１のシステムコントローラ１０２ａのキャッシュコヒーレンス制御部２０６は、無効化要求に応じて、第１のプロセッサ１０１ａのキャッシュメモリ２２２のそのデータが無効状態であることを記憶する。第２のシステムコントローラ１０２ｂは、上記のアドレスのデータがすべてのプロセッサ１０１ａ〜１０１ｃのキャッシュメモリ２２２に存在しないことを示すディレクトリ情報２１１を第２のディレクトリメモリ１０４ｂに書き込む。
【００５２】
次に、ステップＳ３１４では、第２のシステムコントローラ１０２ｂは、リカバリ要求に応じて、第２のディレクトリメモリ１０４ｂに対して、上記のアドレスに対するエラー情報２１２をクリアする。
【００５３】
次に、ステップＳ４０４では、第１のプロセッサ１０１ａは、エラーの通知に応じて、ステップＳ３０９のデータ転送に失敗したことを認識する。
【００５４】
次に、ステップＳ４０５では、第１のプロセッサ１０１ａは、割り込みの設定又はレジスタに値をセットして、ソフトウェアがエラー発生を認識できるようにする。
【００５５】
次に、ステップＳ４０６では、第１のプロセッサ１０１ａは、ソフトウェア処理により、割り込み又はレジスタの値に応じたエラーのリカバリ処理を行う。例えば、情報処理装置は、リカバリ処理として、上記のステップＳ３０８からの処理をリトライする。また、情報処理装置は、リカバリ処理として、上記のステップＳ３０８の要求を無効にし、以降では第１のプロセッサ１０１ａが存在しないものとして処理を続行してもよい。これにより、情報処理装置は、正常終了することができる。
【００５６】
図５（Ａ）は、図４のステップＳ３２２内の第３のプロセッサ１０１ｃの処理を示すフローチャートである。ステップＳ５０１では、第３のプロセッサ１０１ｃは、第２のプロセッサ１０１ｂを介して、第２のシステムコントローラ１０２ｂに対して、第２のメインメモリ１０３ｂのアドレスのデータの第１の読み出し要求を出力する。第２のシステムコントローラ１０２ｂは、第１の読み出し要求を入力すると、レジスタ情報２１１を参照し、そのアドレスのデータをキャッシュメモリ２２２に記憶している第１のプロセッサ１０１ａにデータの返送要求を出力する。第１のプロセッサ１０１ａは、その返送要求に応じて、キャッシュメモリ２２２のデータを第２のプロセッサ１０１ｂを介して第２のシステムコントローラ１０２ｂに出力する。
【００５７】
次に、ステップＳ５０２では、第３のプロセッサ１０１ｃは、エラー通知を受信するまで待機し、エラー通知を受信した場合には、ステップＳ５０３に処理を進める。
【００５８】
ステップＳ５０３では、第３のプロセッサ１０１ｃは、ソフトウェア処理により、第２のプロセッサ１０１ｂを介して、リカバリ要求を第２のシステムコントローラ１０２ｂに出力する。
【００５９】
図５（Ｂ）は、図４のステップＳ３２２内の第２のプロセッサ１０１ｂ及び第２のシステムコントローラ１０２ｂの処理を示すフローチャートである。ステップＳ５１１では、エラープロセッサ検出部２０３は、エラー検出部２０２がエラーを検出した場合には、ディレクトリ情報２１１を基に、エラー対象のアドレスのデータを排他状態で記憶するキャッシュメモリ２２２を有する第１のプロセッサ１０１ａの識別情報２１３をディレクトリ制御部２０８に通知する。
【００６０】
次に、ステップＳ５１２では、ディレクトリ制御部２０８は、第２のディレクトリメモリ１０４ｂに対して、エラー対象のアドレスに対するエラー情報２１２及び通知された第１のプロセッサ１０１ａの識別情報２１３を書き込む。そして、第２のシステムコントローラ１０２ｂは、第２のプロセッサ１０１ｂを介して、エラー通知を第３のプロセッサ１０１ｃに出力する。
【００６１】
次に、ステップＳ５１３では、第２のシステムコントローラ１０２ｂは、リカバリ要求を受信するまで待機し、リカバリ要求を受信した場合には、ステップＳ５１４に処理を進める。
【００６２】
ステップＳ５１４では、ディレクトリ制御部２０８は、エラー情報２１１に対応した第１のプロセッサ１０１ａの識別情報２１３を読み出してエラープロセッサ制御部２０７に出力する。エラープロセッサ制御部２０７は、入力した第１のプロセッサ１０１ａの識別情報２１３をトランザクション制御部２０４に出力する。
【００６３】
次に、ステップＳ５１５では、トランザクション制御部２０４は、第２のプロセッサ１０１ｂを介して、入力した識別情報２１３が示す第１のプロセッサ１０１ａに、転送失敗を示すエラーを通知する。
【００６４】
次に、ステップＳ５１６では、ディレクトリ制御部２０８は、第２のディレクトリメモリ１０４ｂのエラー情報２１２をクリアする。
【００６５】
図５（Ｃ）は、図４のステップＳ３２２内の第１のプロセッサ１０１ａの処理を示すフローチャートである。ステップＳ５２１では、第１のプロセッサ１０１ａは、転送失敗を示すエラー通知を受信するまで待機し、エラー通知を受信した場合には、ステップＳ５２２に処理を進める。
【００６６】
ステップＳ５２２では、第１のプロセッサ１０１ａは、割り込みを設定又はレジスタに値をセットして、ソフトウェアが転送失敗のエラー発生を認識できるようにする。
【００６７】
次に、ステップＳ５２３では、第１のプロセッサ１０１ａは、ソフトウェア処理により、割り込み又はレジスタの値に応じたエラーのリカバリ処理を行う。これにより、情報処理装置は、正常終了することができる。
【００６８】
本実施形態によれば、第１のプロセッサ１０１ａから第２のプロセッサ１０１ｂへのデータ転送が失敗し、書き換えたデータを第２のメインメモリ１０３ｂにライトバックできない場合に、第１のプロセッサ１０１ａがエラー通知を受信することができる。これにより、第１のプロセッサ１０１ａは、ライトバックに失敗したことを認識することができ、情報処理装置は、失敗した処理のやり直しや第１のプロセッサ１０１ａの無効化など、プロセッサ間のデータ整合性を保った状態で適切に処理を継続することができる。
【００６９】
なお、情報処理装置は、ソフトウェア処理によりリカバリ処理を実施してもよいし、ハードウェア処理によりリカバリ処理を実施してもよい。第１のプロセッサ１０１ａから第２のプロセッサ１０１ｂへの転送データが消失して、エラー情報２１２と排他状態のデータを持つ第１のプロセッサ１０１ａの識別情報２１３が第２のディレクトリメモリ１０４ｂに書き込まれる。第２のシステムコントローラ１０２ｂは、エラーを検出した時点で、リカバリ処理を自動的に実施し、他のプロセッサ１０１ａ及び１０１ｃにキャッシュメモリ２２２の無効化要求を出力し、排他状態のデータを持つ第１のプロセッサ１０１ａに対しては、エラー通知もあわせて出力する。これにより、第１のプロセッサ１０１ａは、即座にデータのライトバックに失敗したことを認識することが可能になる。ただし、この場合においても、第１のプロセッサ１０１ａは、データ転送に失敗したことを認識した後のリカバリ処理をソフトウェア処理により行う。
【００７０】
また、上記では、第２のシステムコントローラ１０２ｂは、排他状態のデータを持つ第１のプロセッサ１０１ａの識別情報２１３を第２のディレクトリメモリ１０４ｂに書き込んだが、これに限定されない。第２のシステムコントローラ１０２ｂは、第２のシステムコントローラ１０２ｂの内部のレジスタなどに識別情報２１３を書き込み、リカバリ処理の際に識別情報２１３を読み出し、キャッシュメモリ２２２の無効化要求とあわせてエラー通知を出力してもよい。
【００７１】
また、上記では、第２のシステムコントローラ１０２ｂは、第１のプロセッサ１０１ａに対して、エラー通知をキャッシュメモリ２２２の無効化要求と共に出力したが、これに限定されない。第２のシステムコントローラ１０２ｂは、他のプロセッサ１０１ａ及び１０１ｃにエラー通知専用の信号線を用意し、エラープロセッサ制御部２０７が他のプロセッサ１０１ａ又は１０１ｃに対し、信号線経由でエラー通知を出力してもよい。
【００７２】
また、図２では、第２のメインメモリ１０３ｂとは別に第２のディレクトリメモリ１０４ｂを設ける例を示したが、第２のディレクトリメモリ１０４ｂを第２のメインメモリ１０３ｂに統合してもよい。その場合、第２のメインメモリ１０３ｂは、各アドレスに対して、データの他に、ディレクトリ情報２１１、エラー情報２１２及びプロセッサ識別情報２１３を記憶する。この場合、第２のディレクトリメモリ１０４ｂは、不要となる。同様に、メインメモリ１０３ａ及び１０３ｃにディレクトリメモリ１０４ａ及び１０４ｃをそれぞれ統合してもよい。
【００７３】
また、第１のプロセッサ１０１ａ、第２のプロセッサ１０１ｂ及び第３のプロセッサ１０１ｃは、別々の装置に限定されない。第２のプロセッサ１０１ｂと、第３のプロセッサ１０１ｃとは、同一のプロセッサであってもよい。つまり、第２のメインメモリ１０３ｂのデータを第１のプロセッサ１０１ａが読み出して値を修正し、そのデータが第１のプロセッサ１０１ａ内で排他状態となっている状態で、第２のプロセッサ１０１ｂがこのデータを要求する場合にも、上記実施形態を適用可能である。
【００７４】
なお、上記実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【符号の説明】
【００７５】
１０１ａ  第１のプロセッサ
１０２ａ  第１のシステムコントローラ
１０３ａ  第１のメインメモリ
１０４ａ  第１のディレクトリメモリ
１０１ｂ  第２のプロセッサ
１０２ｂ  第２のシステムコントローラ
１０３ｂ  第２のメインメモリ
１０４ｂ  第２のディレクトリメモリ
１０１ｃ  第３のプロセッサ
１０２ｃ  第３のシステムコントローラ
１０３ｃ  第３のメインメモリ
１０４ｃ  第３のディレクトリメモリ
２０１  プロセッサインターフェース
２０２  エラー検出部
２０３  エラープロセッサ検出部
２０４  トランザクション制御部
２０５  メモリアクセス制御部
２０６  キャッシュコヒーレンシ制御部
２０７  エラープロセッサ制御部
２０８  ディレクトリ制御部
２２１  コア
２２２  キャッシュメモリ
【図１】
0006540535.tif 000002
【図２】
0006540535.tif 000003
【図３】
0006540535.tif 000004
【図４】
0006540535.tif 000005
【図５】
0006540535.tif 000006