記憶装置を各々が備える複数のノードと、前記複数のノード間を接続するインターコネクトとを有する情報処理装置であって、前記複数のノードのうち少なくとも1つのノードは、該1つのノード又は他のノードが備える記憶装置に含まれる、該1つのノード及び該他のノードで共有可能な共有メモリ領域を利用したデータ転送のデータ転送経路における異常、又は、該1つのノード又は他のノードが備える記憶装置に含まれる、該1つのノード及び該他のノードで共有可能な共有メモリ領域を利用したデータ転送のデータ転送経路に含まれ得るいずれかのノードにおける異常を検出する異常検出部と、前記異常検出部により検出された異常に基づいてエラー情報を生成するとともに、自ノード内のプロセッサに対する割り込みを発生するエラー情報生成部と、前記割り込みに応じて前記エラー情報に基づいて、リカバリ処理を実行するプロセッサと、を有することを特徴とする情報処理装置。前記異常検出部は、記憶部に記憶された複数の前記データ転送の要求を示す情報のうち、データ転送の要求発行元のノードにデータ転送の要求に対応するデータが転送されていないデータ転送の要求を示す情報を指すポインタと、前記ポインタが指す情報が示すデータ転送の要求を発行してからの時間を計測するタイマと、前記データ転送の要求発行元のノードが、該データ転送の要求に対応するデータを受信する前に、前記タイマにより計測された時間が、所定の時間を経過した場合に、前記ノード間のデータ転送の異常を検出する検出部と、を有することを特徴とする請求項1に記載の情報処理装置。前記複数のノードのうち少なくとも1つのノードは、さらに、前記プロセッサと他のノードとの通信を制御する通信制御部を有し、前記通信制御部は、前記プロセッサからの指示に応じて前記データ転送の要求を該データ転送のアクセス先のノードに送信する第一の送信部と、前記異常検出部を有し、前記タイマは、前記第一の送信部により該データ転送の要求が送信されてからの時間を計測し、前記検出部は、前記データ転送の要求発行元のノードが、該データ転送の要求に対応するデータを受信する前に、前記タイマにより計測された時間が、所定の時間を経過した場合に、前記ノード間のデータ転送の異常を検出することを特徴とする請求項2に記載の情報処理装置。前記異常検出部は、否定応答を受信することにより前記ノード間のデータ転送の異常を検出することを特徴とする請求項1に記載の情報処理装置。前記複数のノードのうち少なくとも1つのノードは、I/O装置を制御する制御部を有し、前記制御部は、前記I/O装置からの指示に応じて前記データ転送の要求を該データ転送のアクセス先のノードに送信する第二の送信部と、前記異常検出部を有し、前記タイマは、前記第二の送信部により該データ転送の要求が送信されてからの時間を計測し、前記検出部は、前記データ転送の要求発行元のノードが、該データ転送の要求に対応するデータを受信する前に、前記タイマにより計測された時間が、所定の時間を経過した場合に、前記ノード間のデータ転送の異常を検出することを特徴とする請求項2に記載の情報処理装置。前記複数のノードのうち少なくとも1つのノードは、データをキャッシュするためのキャッシュメモリを有し、前記エラー情報生成部は、前記エラー情報を生成し、前記キャッシュメモリにキャッシュされたデータに関する情報を含むキャッシュディレクトリに前記エラー情報を書き込むことを特徴とする請求項1~5のいずれか1つに記載の情報処理装置。前記複数のノードのうち少なくとも1つのノードは、データをキャッシュするためのキャッシュメモリを有し、前記エラー情報生成部は、前記異常検出部により検出された他のノードの異常に基づいてエラー情報を生成し、該エラー情報を該他のノードによりアクセスされる共有メモリに書き込むことを特徴とする請求項1~5のいずれか1つに記載の情報処理装置。前記複数のノードのうち少なくとも1つのノードは、データをキャッシュするためのキャッシュメモリを有し、前記エラー情報生成部は、前記エラー情報を生成し、前記I/O装置に前記エラー情報を送信して、前記I/O装置にエラーを検知させるように制御することを特徴とする請求項5に記載の情報処理装置。前記複数のノードのうち少なくとも1つのノードは、データをキャッシュするためのキャッシュメモリを有し、前記プロセッサは、前記割込みを受信すると、前記エラー情報生成部が生成したエラー情報に基づいて、リカバリ処理を行う際に、前記キャッシュメモリにキャッシュされたデータを削除することを特徴とする請求項1~5のいずれか1つに記載の情報処理装置。前記プロセッサは、論理アドレスと物理アドレスとが対応付けられて登録されたテーブルを用いて、アプリケーションによって生成された該アプリケーションがアクセスする記憶装置の論理アドレスを該記憶装置の物理アドレスに変換するとともに、前記異常検出部により異常が検出された場合には、該異常に対応するノードが有する記憶装置の物理アドレスと、該物理アドレスに対応する論理アドレスとの前記テーブルにおける対応付けを解消することを特徴とする請求項1~9のいずれか1つに記載の情報処理装置。前記プロセッサは、前記異常検出部により異常が検出されたノードが、リモートノードである場合には、前記キャッシュディレクトリの情報の整合性をとることを特徴とする請求項6に記載の情報処理装置。前記プロセッサは、前記異常検出部により異常が検出されたノードの共有メモリに対応するシングルハンドラに、シグナルを通知することを特徴とする請求項1~11のいずれか1つに記載の情報処理装置。記憶装置を各々が備える複数のノードと、前記複数のノード間を接続するインターコネクトとを有する情報処理装置における前記複数のノードのうち少なくとも1つのノードに、該1つのノード又は他のノードが備える記憶装置に含まれる、該1つのノード及び該他のノードで共有可能な共有メモリ領域を利用したデータ転送のデータ転送経路における異常、又は、該1つのノード又は他のノードが備える記憶装置に含まれる、該1つのノード及び該他のノードで共有可能な共有メモリ領域を利用したデータ転送のデータ転送経路に含まれ得るいずれかのノードにおける異常を検出し、検出された異常に基づいてエラー情報を生成するとともに、自ノード内のプロセッサに対する割り込みを発生し、前記割り込みに応じて前記エラー情報に基づいて、リカバリ処理を実行する処理を実行させることを特徴とする制御プログラム。記憶装置を各々が備える複数のノードと、前記複数のノード間を接続するインターコネクトとを有する情報処理装置における前記複数のノードのうち少なくとも1つのノードが、該1つのノード又は他のノードが備える記憶装置に含まれる、該1つのノード及び該他のノードで共有可能な共有メモリ領域を利用したデータ転送のデータ転送経路における異常、又は、該1つのノード又は他のノードが備える記憶装置に含まれる、該1つのノード及び該他のノードで共有可能な共有メモリ領域を利用したデータ転送のデータ転送経路に含まれ得るいずれかのノードにおける異常を検出し、検出された異常に基づいてエラー情報を生成するとともに、自ノード内のプロセッサに対する割り込みを発生し、前記割り込みに応じて前記エラー情報に基づいて、リカバリ処理を実行する処理を実行することを特徴とする制御方法。しかしながら、上記の技術では、ノード間のデータ転送に関わる異常が発生した場合に、エラーの影響範囲を抑えることができないという問題がある。例えば、スヌープ方式を用いて、キャッシュしたデータのコヒーレンシを保持する上記の情報処理システムでは、次のようなことが考えられる。すなわち、あるノードに障害が発生ノードがダウンして、ノード間で通信異常が発生した場合には、キャッシュしたデータのコヒーレンシを保持するために、全ノードをダウンさせることが考えられる。この場合、エラーの影響範囲が全ノードに及ぶこととなる。本発明は、1つの側面では、ノード間のデータ転送に関わる異常が発生した場合に、エラーの影響範囲を抑えることを目的とする。1つの側面では、一部を共有メモリ領域として設定可能な記憶装置を各々が備える複数のノードと、複数のノード間を接続するインターコネクトとを有する情報処理装置であって、ノードの各々は、異常検出部と、エラー情報生成部と、プロセッサとを有する。異常検出部は、複数のノード間のデータ転送の異常または他のノードの異常を検出する。エラー情報生成部は、異常検出部により検出された異常に基づいてエラー情報を生成すると共に、データ転送の要求発行元のノード内のプロセッサに対して割込みを発生する。プロセッサは、割込みを受信すると、エラー情報生成部が生成したエラー情報に基づいて、リカバリ処理を行う。1実施形態によれば、ノード間のデータ転送に関わる異常が発生した場合に、エラーの影響範囲を抑えることができる。以下の実施例1では、図1を用いて、複数のノードを有する情報処理システムの一例について説明する。図1は、実施例1に係る情報処理システムの一例を説明するための図である。図1に示す例では、情報処理システム1は、XBクロスバスイッチ2と複数のビルディングブロック10~10eとを有する。XB2は、各ビルディングブロック10~10eを相互に接続するクロスバスイッチである。また、XB2は、後述する各ビルディングブロック10~10eが有する各サービスプロセッサのマスターとなる不図示のサービスプロセッサを有する。なお、少数のノードが接続される小規模構成の場合、XB2を介さずに、ビルディングブロック同士を直接接続しても良い。また、ビルディングブロック10は、複数のCPUCentralProcessingUnit21~21cと複数のメモリ22~22cとを有する。また、他のビルディングブロック10a~10eも、ビルディングブロック10と同様の構成を有するものとし、以下の説明を省略する。なお、図1に示す例では、CPU21b、21cおよびメモリ22b、22cについては、記載を省略した。また、各ビルディングブロック内には、不図示のI/OInputOutput装置が設けられている。ここで、本実施例では、CPU間のキャッシュコヒーレンス制御をディレクトリ方式で実現し、データをメモリ上に持つ後述のホームCPUが該当ディレクトリを管理している。各ビルディングブロック10~10eは、それぞれ独立してOSを動作させる。すなわち、各CPU21~21cは、それぞれ独立してOSを実行する。各ビルディングブロック10~10eが実行するOSは、ビルディングブロック毎に異なるパーティションで動作する。ここで、パーティションとは、同一のOSが動作し、動作しているOSから見て1つのシステムとして動作するビルディングブロックの群を示す。例えば、ビルディングブロック10~10aがパーティションAとして動作し、ビルディングブロック10b~10dがパーティションBとして動作する。このような場合には、ビルディングブロック10が動作させるOSは、ビルディングブロック10、10aが1つのシステムとして動作していると識別し、ビルディングブロック10bが動作させるOSは、ビルディングブロック10b~10dが1つのシステムとして動作していると識別する。次に、図2を用いて、ビルディングブロックの構成例について説明する。図2は、実施例1に係るビルディングブロックの機能構成を説明するための図である。図2に示す例では、ビルディングブロック10は、ノード20、サービスプロセッサ24、XB接続部27、27a、PCIePeripheralComponentInterconnectExpress接続部28を有する。ノード20は、複数のCPU21~21cと、複数のメモリ22~22cと、通信部23とを有する。サービスプロセッサ24は、制御部25と、通信部26とを有する。また、図2に示す例では、各CPU21~21cは、相互に接続されるとともに、通信部23と接続されている。また、各メモリ22~22cは、各CPU21~21cと接続されている。サービスプロセッサ24は、不図示のLANLocalAreaNetworkなどのネットワーク回線を介してサーバの管理者端末に接続され、管理者端末からの指示を受けてノードまたはビルディングブロック10内の各種設定変更などの制御を行う。また、各CPU21~21cは、XB接続部27またはXB接続部27aと接続されている。なお、XB接続部27、27aは、同一のXB接続部であってもよい。また、各CPU21~21cは、PCIe接続部28と接続されている。また、通信部23は、サービスプロセッサ24が有する通信部26と接続されている。なお、制御部25、通信部26、通信部23、各CPU21~21cは、例えば、I2CInterIntegratedCircuitで接続されている。CPU21~21cは、アプリケーションを実行する演算処理装置である。また、各CPU21~21cには、それぞれメモリ22~22cが接続されている。また、各CPU21~21cは、実行中のアプリケーションが共有メモリの割当てを要求した場合には、相互に通信を行い、アプリケーションが使用する共有メモリの割当てを行う。また、各CPU21~21cは、各メモリ22~22cや、他のビルディングブロック10a~10eが有するメモリの一部を共有メモリとして利用する。図3は、共有メモリ実体が割り当てられたノードに、他のノードがアタッチする場合のメモリマップの一例を示す図である。図3の例では、メモリ実体を所有するノードこれをホームノードと称するに、共有メモリが割り当てられると、ホームノードはこれを一定の領域サイズに分割する。この分割単位をセグメントsegmentと称するが、セグメントに分割する事は必須ではない。他のノードが当該ホームノードが所有する共有メモリの割り当てを要求する場合、すなわちアタッチする事で、当該ホームノードの共有メモリを使用することができる。このリモートノードが使用するメモリ領域を共有メモリイメージ領域と称する。この共有メモリイメージ領域は、単独のリモートノードがアタッチしても良いし、複数のリモートノードがアタッチしても良い。図2に戻り、各CPU21~21cは、物理アドレスと、物理アドレスが割り振られたメモリと接続されたCPUの識別子であるCPUIDidentificationとを対応付けたノードマップを有する。なお、このCPUIDはシステム1で一意に決定され、重複しない。各CPU21~21cは、ノードマップを用いて、他のCPUと通信を行う。例えば、CPU21は、アクセス対象となる物理アドレスと対応付けられたCPUIDが、CPU21~21cとは異なるCPUを示す場合には、XB接続部27、またはXB接続部27a、およびXB2を介して他のノードにメモリアクセスのリクエストを送信する。また、CPU21は、自身と接続されたメモリに対するリクエストを他のノードから受信した場合には、リクエストの対象となるデータを自身と接続されたメモリ22から読出し、リクエスト元へ送信する。他のCPU21a~21cも同様の処理を行う。また、各CPU21~21cは、TLBTranslationLookasideBufferを用いたアドレス変換を行うとともに、TLBミスが発生した際に、トラップ処理を実行するなど、従来のCPUと同様の処理を実行する機能も有する。また、各CPU21~21cは、ノード間のデータ転送の異常エラーを検出する。ノード間のデータ転送の異常を検出する方法の一例について説明する。例えば、各CPU21~21cは、リクエストを送信してからの時間を計測する。続いて、リクエスト要求を送信してからレスポンス応答を受信する前に、リクエストを送信してからの時間が、所定時間を超えた場合には、タイムアウトになったため、各CPU21~21cは、ノード間のデータ転送の異常を検出する。また、各CPU21~21cは、リクエストに対して他のノードから否定応答が返って来た場合も異常を検出する。そして、異常を検出した場合には、各CPU21~21cは、様々な処理を行う。例えば、異常の発生の原因となったノード例えば、ダウンしたノードによって、各メモリ22~22cの共有メモリにライトバックされるダーティのキャッシュデータが、ライトバックされない場合には、各CPU21~21cは、次のような処理を行う。すなわち、各CPU21~21cは、キャッシュの状態を示すディレクトリに、ダウンしたノードによって、各メモリ22~22cの共有メモリにライトバックされるダーティのキャッシュデータが、ライトバックされなかった異常を示す値を書き込む。また、異常を検出し、異常の発生の原因となったノードによって、各メモリ22~22cの共有メモリにライトバックされるダーティのキャッシュデータが、ライトバックされない場合には、各CPU21~21cは、次のような処理を行うこともできる。すなわち、各CPU21~21cは、ダウンしたノードによってキャッシュデータがライトバックされる各メモリ22~22cの共有メモリの領域に、エラー状態を示すデータを書き込むこともできる。これらの処理により、ライトバックされなかった共有メモリのデータが正常でないことを示すことができる。また、後述のホームCPUにライトバックの要求が届かないケースでは、後述のローカルCPUがホームCPUからの後述のタイムアウトを検出することで、トランザクション失敗を認識する。この場合、ローカルCPUは、該当データを破棄する。ホームCPUが管理するディレクトリ上はローカルCPUがデータをキャッシュに持ち出した状態のままであるので、ホームCPUからMoveOut要求が発生する。このMoveOut要求は、ローカルCPUでキャッシュミスが発生するが、このMoveOut要求に対してエラー応答を返し、ホームCPUにあるディレクトリの状態を異常に更新、すなわち、上述したエラー状態を示すデータを書き込む。また、エラー発生アドレスレジスタに、ダウンしたノードの共有メモリの物理アドレスPhysicalAddress;PAが書き込まれた場合には、トラップ割込みが発生する。すなわち、エラー発生アドレスレジスタに、物理アドレスが書き込まれた場合には、各CPU21~21cは、トラップ処理を行う。このトラップ処理では、例えば、シグナルハンドラにシグナルが送信される。ここで、シグナルハンドラは、シグナルを受信すると起動される。シグナルハンドラによる処理では、様々な処理が行われる。例えば、シグナルハンドラによる処理では、ダウンしたノードに共有メモリ実体が存在する場合に、共有メモリイメージをデタッチ、すなわち、ダウンしたノードが有する共有メモリの割当ての解除が行われる。また、シグナルハンドラによる処理では、他のノードがダウンしたことを検出したノードのメモリの共有メモリに対するリカバリ処理を行う。リカバリ処理の一例としては、共有メモリにライトバックされるキャッシュデータがライトバックされなかった異常を示す値を、ディレクトリからクリアする処理が挙げられる。また、リカバリ処理の他の一例としては、エラー状態を示すデータを、共有メモリからクリアする処理が挙げられる。メモリ22~22cは、情報処理システム1が有する全てのCPUが共用するメモリである。また、情報処理システム1においては、全てのビルディングブロック10~10eが有するメモリに対して、各ビルディングブロック10~10eのサービスプロセッサが、同一の物理アドレス空間にマッピングされる物理アドレスを振分ける。すなわち、情報処理システム1が有するすべてのメモリのうち、少なくとも共有メモリとして使用されるメモリには、重複しない値の物理アドレスが割当てられている。また、メモリ22~22cは、記憶領域の一部を、情報処理システム1が有する全てのCPUが共用する共有領域とし、他の部分を、自身にアクセスするCPU21~21cがカーネルデータやユーザデータを格納するローカル領域、他ノードとの共有メモリを介したやり取りとは無関係なI/O装置が利用するI/O領域とする。制御部25は、ビルディングブロック10の制御を行う。例えば、制御部25は、ビルディングブロック10の電源管理や、ビルディングブロック10内の異常の監視や制御等を実行する。また、制御部25は、他のビルディングブロック10a~10eが有するサービスプロセッサと、不図示のネットワークによって接続されており、各ビルディングブロック10a~10e間で連係した制御を実行する。また、制御部25は、各CPU21~21cが実行するOSと通信を行うことができる。また、制御部25は、通信部26と通信部23を介して、各CPU21~21cにアクセスする。そして、制御部25は、各ビルディングブロック10~10eが有するノードマップの更新や制御等を実行する。なお、通信部23は、サービスプロセッサ24が有する通信部26を介して、制御部25による制御信号を各CPU21~21cに伝達する。また、通信部26は、制御部25による制御信号をノード20が有する通信部23に伝達する。また、XB接続部27、27aは、各CPU21~21cをXB2と接続し、各ビルディングブロック10~10eが有するCPU間の通信を中継する。また、PCIe接続部28は、各CPU21~21cによるI/O装置へのアクセスを中継する。次に、図4を用いて、各CPU21~21cが有する機能構成について説明する。図4は、実施例1に係るCPUの機能構成を説明するための図である。なお、CPU21a~21cは、CPU21と同様の機能を有するため、説明を省略する。また、図4に示す例では、サービスプロセッサ24とCPU21とを接続する接続部23、26については、記載を省略した。図4に示す例では、CPU21は、演算処理部30、ルータ40、メモリアクセス部41、PCIe制御部42を有する。また、演算処理部30は、演算部31、L1Level1キャッシュ32、L2Level2キャッシュ33、ノードマップ34、アドレス変換部35、キャッシュディレクトリ管理部36、パケット制御部37、エラー発生アドレスレジスタ96、トラップ発生部97を有する。なお、ルータ40、メモリアクセス部41、PCIe制御部42などの各部を同一のCPU21の内部に含めなくても良い。また、パケット制御部37は、パケット生成部37a、パケット受信部37b、異常検出部37cを有する。また、PCIe制御部42は、リクエスト生成部42a、PCIeバス制御部42b、異常検出部42cを有する。まず、演算処理部30が有するノードマップ34について説明する。ノードマップ34は、物理アドレスと、物理アドレスが示す記憶領域を有するメモリと接続されたCPUのCPUIDとが対応付けて登録されるテーブルである。以下、ノードマップ34に登録される情報の例を、図面を用いて説明する。図5は、実施例1に係るノードマップのデータ構成の一例を説明するための図である。図5に示す例では、ノードマップ34は、アドレス、バリッド、ノードID、CPUIDの各項目の登録内容を対応付けたエントリを有する。ここで、各エントリのアドレスの項目には、連続する複数の物理アドレスを含むアドレス域を示す情報が格納される。例えば、情報処理システム1は、全てのメモリに対して振り分けた物理アドレス空間を均等な大きさのアドレス域に分割し、各アドレス域に0、1、2等の識別子を付与する。そして、情報処理システム1は、各アドレス域を示す識別子を、ノードマップ34が有する各エントリのアドレスに登録する。図5の例は、1番目のエントリのアドレスの項目に、0の識別子が登録された場合を示す。また、図5の例は、2番目のエントリのアドレスの項目に、1の識別子が登録された場合を示す。また、図5の例は、3番目のエントリのアドレスの項目に、2の識別子が登録された場合を示す。また、各エントリのバリッドの項目には、物理アドレスが示す記憶領域にアクセスすることができるか否かを示すバリッドビットが登録される。例えば、物理アドレスが示す記憶領域が、各CPUで共有される共有領域である場合には、アクセスを行う事ができる旨のバリッドビット例えば1が登録される。図5の例は、1番目のエントリのバリッドの項目に、バリッドビット1が登録された場合を示す。また、図5の例は、2番目のエントリのバリッドの項目に、バリッドビット1が登録された場合を示す。また、図5の例は、3番目のエントリのバリッドの項目に、物理アドレスが示す記憶領域にアクセスすることができないことを示すバリッドビット0が登録された場合を示す。また、各エントリのノードIDの項目には、物理アドレスが振り分けられたメモリが存在するノードを示す識別子が登録される。図5の例は、1番目のエントリのノードIDの項目に、ノードを示す識別子1が登録された場合を示す。また、図5の例は、2番目のエントリのノードIDの項目に、ノードを示す識別子1が登録された場合を示す。また、各エントリのCPUIDの項目には、物理アドレスが振り分けられたメモリと接続されたCPUを示す識別子が登録される。すなわち、ノードマップ34は、アクセス対象となる物理アドレスが、どのCPUと接続されたメモリの物理アドレスであるかを示す。図5の例は、1番目のエントリのCPUIDの項目に、CPUを示す識別子4が登録された場合を示す。また、図5の例は、2番目のエントリのCPUIDの項目に、CPUを示す識別子5が登録された場合を示す。なお、ノードマップ34には、アクセス対象となる物理アドレスがどのCPUと接続された物理アドレスであるかを示すことができれば、本実施例以外の任意の形式で情報を登録することとしてよい。図4に戻って、演算部31は、演算処理を実行し、OSOperatingSystemやアプリケーションを実行する演算装置のコアである。また、演算部31は、データのリード読み込みや、ライト書き込みを行う場合には、リード対象またはライト対象となるデータが格納された記憶領域の論理アドレスVirtualAddress;VAをアドレス変換部35に出力する。L1キャッシュ32は、演算部31で頻繁に利用されるデータを一時的に記憶するキャッシュメモリである。L2キャッシュ33は、L1キャッシュ32と同様に、頻繁に利用されるデータを一時的に記憶するが、L1キャッシュ32よりも記憶容量が大きく、データを読み書きする速度が低速なキャッシュメモリである。ここで、ディレクトリ情報は、キャッシュディレクトリ管理部36に記憶されており、メモリ22の各記憶領域に記憶されたデータをキャッシュしたCPUや、キャッシュされたデータの更新状況を示す情報である。なお、以下の説明では、ディレクトリ情報を単にディレクトリと表記する場合がある。このディレクトリによるキャッシュメモリ管理方法は、ccNUMACacheCoherentNonUniformMemoryシステムでよく利用される技術であるが、ccNUMA技術、ディレクトリ技術の両方とも公知の技術であるので、ここでは詳しく説明しない。また、図4ではディレクトリ36aはキャッシュディレクトリ管理部36に内蔵されているが、メモリ22の記憶領域の一部にディレクトリ情報を記録する事も可能である。アドレス変換部35は、TLB35aを有する。TLB35aには、論理アドレスと物理アドレスとを対応付けたエントリが登録される。アドレス変換部35は、TLB35aを用いて、演算部31が出力した論理アドレスを物理アドレスに変換する。例えば、アドレス変換部35は、演算部31から取得した論理アドレスに対応する物理アドレスをTLB35aから検索し、検索した結果、物理アドレスが得られた場合には、得られた物理アドレスをキャッシュディレクトリ管理部36に出力する。なお、アドレス変換部35は、TLBミスが発生した場合は、トラップ処理を実行する。ここで、OSなどのシステムソフトウェアは、TLBミスした物理アドレスと論理アドレスの組をTLB35aに登録する。ただし、かかる組の登録が禁止された物理アドレスについては、TLBミスが発生した場合であっても、OSなどのシステムソフトウェアにより、物理アドレスと論理アドレスとの組がTLB35aに登録されない。ここで、OSやアドレス変換部35などは、演算部31が実行するアプリケーションから共有メモリへの割当てを要求された場合には、次のような処理を実行する。すなわち、TLBミスが発生した場合、OSなどのシステムソフトウェアなどは、エントリをTLB35aに登録する。また、TLBミスが発生しない場合には、既にエントリがTLB35aに登録済みであるので、アドレス変換部35は、論理アドレスから物理アドレスへの変換を行う。また、アドレス変換部35やOSは、アプリケーションやOSからローカル領域の割当を要求された場合は、次のような処理を実行する。すなわち、TLBミスが発生した場合、OSなどのシステムソフトウェアは、CPU21専用のローカル領域にアクセスするための論理アドレスと、ローカル領域に割当てられる範囲の物理アドレスとを対応付けたエントリをTLB35aに登録する。また、OSなどは、異常が発生したノードの共有メモリの物理アドレスを含むエントリをTLB35aから削除する。キャッシュディレクトリ管理部36は、ディレクトリ36aを有する。キャッシュディレクトリ管理部36は、キャッシュデータおよびディレクトリの管理を行う。キャッシュディレクトリ管理部36は、アドレス変換部35から、演算部31が出力した論理アドレスを変換した物理アドレスを取得する。そして、キャッシュディレクトリ管理部36は、アドレス変換部35から物理アドレスを取得した場合には、次のような処理を実行する。すなわち、キャッシュディレクトリ管理部36は、ディレクトリ36aを用いて、取得した物理アドレスに格納されたデータがL1キャッシュ32およびL2キャッシュ33にキャッシュされているか否かを判定する。そして、キャッシュディレクトリ管理部36は、取得した物理アドレスに格納されたデータがキャッシュされていると判定した場合には、キャッシュされているデータを演算部31に出力する。また、キャッシュディレクトリ管理部36は、取得した物理アドレスに格納されたデータがL1キャッシュ32およびL2キャッシュ33にキャッシュされていない場合は、次のような処理を実行する。まず、キャッシュディレクトリ管理部36は、ノードマップ34を参照し、取得した物理アドレスを含む範囲のエントリを識別する。そして、キャッシュディレクトリ管理部36は、識別したエントリのCPUIDがCPU21のCPUIDであるか否かを判定する。その後、キャッシュディレクトリ管理部36は、識別したエントリのCPUIDがCPU21のCPUIDである場合は、メモリアクセス部41に、物理アドレスを出力する。また、キャッシュディレクトリ管理部36は、識別したエントリのCPUIDがCPU21のCPUIDではない場合には、次のような処理を実行する。すなわち、キャッシュディレクトリ管理部36は、識別したエントリのCPUIDとノードIDとを取得する。そして、キャッシュディレクトリ管理部36は、パケット制御部37に対して、取得したCPUIDと物理アドレスとを出力する。また、キャッシュディレクトリ管理部36は、出力した物理アドレスが示す記憶領域に格納されているデータをメモリアクセス部41やパケット制御部37から取得した場合には、取得したデータをL1キャッシュ32およびL2キャッシュ33に格納する。そして、キャッシュディレクトリ管理部36は、L1キャッシュ32にキャッシュさせたデータを演算部31に出力する。また、キャッシュディレクトリ管理部36は、パケット制御部37から物理アドレスを取得した場合、すなわち、他のCPUやI/O装置からのメモリアクセスのリクエストの対象となる物理アドレスを取得した場合には、次のような処理を実行する。すなわち、キャッシュディレクトリ管理部36は、ノードマップ34を参照して、取得した物理アドレスがローカル領域に振り分けられた物理アドレスであるか否かを判定する。取得した物理アドレスがローカル領域に振り分けられた物理アドレスである場合には、キャッシュディレクトリ管理部36は、パケット制御部37に対して、リクエスト元に否定応答アクセスエラーを送信するように指示する。また、取得した物理アドレスが共有領域に振り分けられた物理アドレスである場合には、キャッシュディレクトリ管理部36は、取得した物理アドレスが示す記憶領域に記憶されたデータを取得し、取得したデータをパケット制御部37に出力し、リクエスト元へ送信するよう指示する。また、キャッシュディレクトリ管理部36は、ディレクトリ方式を用いて、キャッシュしたデータのコヒーレンシを保持する処理を合わせて実行する。例えば、キャッシュディレクトリ管理部36は、メモリ22に格納されたデータをリクエスト送信元のCPUに送信させる場合には、当該データがリクエスト送信元のCPU以外の他のCPUがキャッシュしているか否かを判定する。そして、キャッシュディレクトリ管理部36は、リクエストの対象となるデータを他のCPUがキャッシュしていない場合は、L1キャッシュ32、L2キャッシュ33、メモリ22からリクエストの対象となるデータを取得する。その後、キャッシュディレクトリ管理部36は、取得したデータをパケット制御部37に出力する。一方、キャッシュディレクトリ管理部36は、リクエストの対象となるデータを他のCPUがキャッシュしている場合は、イリノイプロトコル等の手法を用いて、キャッシュコヒーレンスを保持するための処理を実行する。例えば、キャッシュディレクトリ管理部36は、キャッシュされたデータの状態がMESIのいずれであるかを判定する。そして、キャッシュディレクトリ管理部36は、判定結果に応じて、他のCPUが有するキャッシュディレクトリ管理部とコヒーレンシを保持するためのリクエストやオーダー命令の送受信を行い、キャッシュされたデータの状態に応じた処理を実行する。ここで、Modifiedとは、いずれか1つのCPUがデータをキャッシュしており、かつ、キャッシュされたデータが更新されている状態を示す。なお、キャッシュされたデータの状態がModifiedである場合には、ライトバックを実行する必要がある。また、Exclusiveとは、いずれか1つのCPUがデータをキャッシュしており、かつ、キャッシュされたデータが更新されていない状態を示す。また、Sharedとは、複数のCPUがデータをキャッシュしており、かつ、キャッシュされたデータが更新されていないことを示す。また、Invalidとは、キャッシュのステータスが登録されていないことを示す。詳細な例を挙げると、キャッシュディレクトリ管理部36は、ステータスがMModifiedであるデータをキャッシュしたCPUに対してライトバックを指示するオーダーを送信するようパケット生成部37aに指示する。そして、キャッシュディレクトリ管理部36は、データのステータスを更新し、更新後のステータスに応じた処理を実行する。なお、キャッシュディレクトリ管理部36が送受信するリクエストやオーダーの種別については、後述する。また、キャッシュディレクトリ管理部36は、ノード間のデータ転送の異常が検出された場合に、異常の発生の原因となったノードによって、メモリ22の共有メモリにライトバックされるキャッシュデータが、ライトバックされないときには、次の処理を行う。すなわち、キャッシュディレクトリ管理部36は、ダウンしたノードによって、メモリ22の共有メモリにライトバックされるキャッシュデータが、ライトバックされなかった異常を示す値をディレクトリ36aの所定の領域に書き込む。図6は、ディレクトリのデータ構成の一例を説明するための図である。図6に示すように、ディレクトリ36aは、0ビット目から3ビット目までの4ビットのUEの項目を有する。また、ディレクトリ36aは、4ビット目から66ビット目までの63ビットのPRCの項目を有する。また、ディレクトリ36aは、67ビット目から68ビット目までの2ビットのCKBITの項目を有する。CKBITの項目には、キャッシュの状態をコード化したデータが登録される。PRCの項目には、キャッシュを保持しているCPUの位置をビットマップで表したデータが登録される。UEの項目には、ディレクトリの異常と異常の原因を表したデータが登録される。ここで、図6の例に示すディレクトリ36aをキャッシュディレクトリ管理部36が有する場合について説明する。この場合に、異常が検出され、異常の発生の原因となったノードによって、メモリ22の共有メモリにライトバックされるキャッシュデータが、ライトバックされないときには、キャッシュディレクトリ管理部36は、次の処理を行う。すなわち、キャッシュディレクトリ管理部36は、ダウンしたノードによって、メモリ22の共有メモリにライトバックされるキャッシュデータが、ライトバックされなかった異常と、原因とを示す4ビット以下の値をディレクトリ36aのUEの項目に書き込む。これにより、ライトバックされなかった共有メモリのデータが正常でないことを示すことができる。また、キャッシュディレクトリ管理部36は、ノード間のデータ転送の異常が検出され、異常の発生の原因となったノードによって、メモリ22の共有メモリにライトバックされるキャッシュデータが、ライトバックされない場合には、次の処理を行うこともできる。すなわち、キャッシュディレクトリ管理部36は、ダウンしたノードによってキャッシュデータがライトバックされるメモリ22の共有メモリの領域に、エラー状態を示すデータを書き込むこともできる。ここで、共有メモリの領域に書き込まれるエラー状態を示すデータの一例について説明する。例えば、メモリ22に記憶されるデータに、所定のビット数ごとに、ECCErrorCheckandCorrectデータが含まれている場合に、ECCの生成多項式によっては、2ビット以上の誤り訂正をおこなうことができる。この場合に、他のエラーと比較して発生の可能性の低いnn≧2ビット以上のエラーを示す特定の値のシンドロームを、共有メモリの領域に書き込まれるエラー状態を示すデータとすることができる。また、データ本体に書き込んだ場合に、シンドロームが特定の値となるような値を、共有メモリの領域に書き込まれるエラー状態を示すデータとすることができる。これにより、ライトバックされなかった共有メモリのデータが正常でないことを示すことができる。また、キャッシュディレクトリ管理部36は、メモリ22の共有メモリに対するリカバリ処理を行う。リカバリ処理の一例としては、共有メモリにライトバックされるキャッシュデータがライトバックされなかった異常を示す値を、ディレクトリ36aからクリアする処理が挙げられる。また、リカバリ処理の他の一例としては、エラー状態を示すデータを、共有メモリからクリアする処理が挙げられる。このリカバリ処理は、後述する通り、OSやアプリケーションソフトウェアの指示により行われる。パケット生成部37aは、キャッシュディレクトリ管理部36から物理アドレスと、CPUIDとを取得した場合には、取得した物理アドレスと、CPUIDとを格納したパケット、すなわち、メモリアクセスのリクエストとなるパケットを生成する。そして、パケット生成部37aは、生成したパケットをルータ40に送信する。図7は、実施例1に係るCPUが送信するパケットを説明するための図である。図7に示す例では、パケット生成部37aは、CPUIDと、物理アドレスと、リクエストの内容を示すデータとを含むリクエストを生成し、生成したリクエストをルータ40に出力する。このような場合には、ルータ40は、パケット生成部37aが生成したリクエストを、XB接続部27を介してXB2に出力する。すると、XB2は、リクエストに含まれるCPUIDが示すCPUへとリクエストを転送する。なお、パケット生成部37aは、キャッシュディレクトリ管理部36からコヒーレンシを保持するためのリクエストやオーダーの発行の指示を受付けた場合には、指示されたリクエストやオーダーを生成する。そして、パケット生成部37aは、生成したリクエストやオーダーをルータ40、XB接続部27、XB2を介して、指示されたCPUに送信する。また、パケット生成部37aは、I/O装置からデータを取得する場合は、I/Oに対するアクセス要求をルータ40に出力する。また、パケット生成部37aは、リクエストを送信すると、リクエストを送信したことを示すデータを異常検出部37cに出力する。このデータには、送信したリクエストの種類、アクセス対象のメモリの物理アドレスなどリクエストに関する情報が含まれている。パケット受信部37bは、XB2、XB接続部27、ルータ40を介して、他のCPUや自ノード以外の他のI/O装置が出力したパケットを受信すると、受信したパケットに含まれる物理アドレスを取得する。そして、パケット受信部37bは、取得した物理アドレスをキャッシュディレクトリ管理部36に出力する。また、パケット受信部37bは、他のCPUが送信したデータを受信した場合には、受信したデータをキャッシュディレクトリ管理部36に出力する。また、パケット受信部37bは、コヒーレンシを保持するためのリクエストやオーダーを受信した場合には、受信したリクエストやオーダーをキャッシュディレクトリ管理部36に出力する。また、パケット受信部37bは、I/O装置に対するアクセス要求の応答やデータをルータ40から受信した場合は、受信した応答やデータをキャッシュディレクトリ管理部36に出力する。このような場合には、キャッシュディレクトリ管理部36は、例えば、取得したデータをメモリアクセス部41に出力し、メモリ22に格納される処理を行う。また、パケット受信部37bは、パケット生成部37aにより送信されたリクエストに対応するレスポンスを受信すると、レスポンスを受信したことを示すデータを異常検出部37cに出力する。このデータには、受信したレスポンスの種類などレスポンスに関する情報が含まれている。異常検出部37cは、ポインタ80、タイマ81、送信パケット82、PA83、リクエスト84、検出部85を有する。異常検出部37cは、パケット生成部37aからリクエストを送信したことを示すデータを受信するたびに、時間を計測するためのタイマ81を起動させる。また、異常検出部37cは、パケット受信部37bからレスポンスを受信したことを示すデータを受信するたびに、タイマ81を起動させる。また、異常検出部37cは、パケット生成部37aからリクエストを送信したことを示すデータを受信すると、受信したデータから、送信されたリクエストに含まれるアクセス対象のメモリの物理アドレスをPA83に記憶させる。また、異常検出部37cは、パケット生成部37aからリクエストを送信したことを示すデータを受信すると、受信したデータから、送信されたリクエストをリクエスト84に記憶させる。また、異常検出部37cは、パケット生成部37aからリクエストを送信したことを示すデータを受信すると、受信したデータから、送信されたリクエストの識別子を送信パケット82に登録する。また、異常検出部37cは、パケット受信部37bからレスポンスを受信したことを示すデータを受信すると、受信したデータから、受信したレスポンスに対応するリクエストに含まれるアクセス対象のメモリの物理アドレスをPA83から削除する。また、異常検出部37cは、パケット受信部37bからレスポンスを受信したことを示すデータを受信すると、受信したデータから、受信したレスポンスに対応するリクエストをリクエスト84から削除する。また、異常検出部37cは、パケット受信部37bからレスポンスを受信したことを示すデータを受信すると、受信したデータから、受信したレスポンスに対応するリクエストの識別子を送信パケット82から削除する。図8は、送信パケットの一例を示す図である。例えば、レスポンスが返ってきていないリクエストの数がN個である場合には、図8の例に示す送信パケット82には、パケット1管理用エントリからパケットN管理用エントリまでの各エントリに、N個のリクエストの識別子のそれぞれが登録される。また、ポインタ80は、送信パケット82に登録された各識別子が示す各リクエストのうち、送信時刻が最も古いリクエストを指す。例えば、図8の例では、ポインタ80は、パケット1管理用エントリに登録された識別子が示すリクエストを指す。検出部85は、タイマ81の時間が、所定時間を経過したか否かを判定する。所定時間を経過した場合には、検出部85は、ポインタ80が指すリクエストに対応するレスポンスを所定時間以内に受信していないため、ノード20と、アクセス対象のメモリを有するノードとの間でデータ転送の異常が発生したことを検出する。そして、検出部85は、ポインタ80が指すリクエストに含まれるアクセス対象のメモリの物理アドレスをPA83から取得し、取得した物理アドレスを、エラー発生アドレスレジスタ96に書き込む。トラップ発生部97は、エラー発生アドレスレジスタ96に物理アドレスが書き込まれると、トラップを発生する。なお、リクエストオーダがデータのメモリへのストア格納、またはキャッシュのリプレイスによるライトバックの場合はトラップを発生させず、上述した異常を示すデータの書き込みのみ行い、データのCPUへのロード時に異常を検出することとしても良い。ここで、上述した異常を示すデータの書き込みとは、異常と、原因とを示す4ビット以下の値をディレクトリ36aのUEの項目に書き込むことや、メモリ22の共有メモリの領域に、エラー状態を示すデータを書き込むことを指す。このように、異常検出部37cでは、1つのタイマで時間を計測するので、リクエストごとにタイマを設ける場合と比較して、レスポンスが返ってきていないリクエストの数が複数の場合には、少ない数のタイマで時間を計測することができる。なお、異常検出部37cの構成は、上述した構成に限られない。例えば、異常検出部37cの送信パケット82には、リクエストの識別子に加えて、リクエストの送信時刻の差インターバルを登録し、タイマ81がインターバルを加味して再起動を行うようにしてもよい。図9は、異常検出部の他の構成の一例を示す図である。図9の例では、送信パケット82に、上述したパケットKKは自然数管理用エントリに加え、あるリクエストが送信されてから、他のリクエストが送信されるまでの時間が登録される。ここで、リクエスト1が送信されてから100ns後に、リクエスト2が送信され、リクエスト1が送信されてから300ns後に、リクエスト3が送信された場合について説明する。この場合、リクエスト1~3のそれぞれの識別子が、パケット1管理用エントリ~パケット3管理用エントリに登録される。このとき、リクエスト1を基準とすると、インターバル1には0ns、インターバル2には、100ns、インターバル3には、300nsが登録される。ここで、リクエスト1に対応するレスポンスをパケット受信部37bが受信したため、ポインタ80が指すリクエストがリクエスト1からリクエスト2に切り替わったとする。このとき、タイマ81は、再起動するが、時間の初期値が0nsではなく、リクエスト2に対応するインターバル100nsから時間の計測を開始する。また、ポインタ80が指すリクエストがリクエスト2からリクエスト3に切り替わった場合には、同様に、タイマ81は、リクエスト3に対応するインターバル300nsから時間の計測を開始する。なお、すべての送出済みリクエストに対してレスポンスを受信した場合は、次に送出するリクエストのインターバルは再び0nsとなる。このように、他の例の異常検出部37cでは、1つのタイマ81で時間を計測するので、より少ない数のタイマで精度良く時間を計測することができる。また、他の例の異常検出部37cでは、タイマ81が、リクエストごとにインターバルを考慮して時間を計測するので、より精度の高い時間を計測することができる。なお、異常検出部37cでは、ポインタ80を設けず、リクエストごとにタイマを設けて、各タイマが、リクエストの送信されてからの時間を計測することもできる。ルータ40は、パケット制御部37が有するパケット生成部37aが出力したパケットを受信した場合には、受信したリクエストをXB接続部27に出力する。また、ルータ40は、XB接続部27を介して、他のCPUが送信したパケットやデータをパケット受信部37bに出力する。また、ルータ40は、パケット制御部37がI/O装置等に対して出力したパケットをPCIe制御部42に出力する。また、ルータ40は、I/O装置からのリクエスト等をPCIe制御部42から受信した場合には、受信したリクエスト等をパケット制御部37に出力する。また、ルータ40は、I/O装置からのリクエストをPCIe制御部42から受信した場合には、受信したリクエストをXB接続部27に出力する。また、ルータ40は、XB接続部27を介して、I/O装置へのレスポンスを受信した場合には、受信したレスポンスをPCIe制御部42bに出力する。メモリアクセス部41は、いわゆるMACMemoryAccessControllerであり、メモリ22に対するアクセスの制御を行う。例えば、メモリアクセス部41は、キャッシュディレクトリ管理部36から物理アドレスを受信した場合には、受信した物理アドレスが示すメモリ22の領域に格納されたデータを取得し、取得したデータをキャッシュディレクトリ管理部36に出力する。なお、メモリアクセス部41は、メモリーミラー機能を用いて、共有領域を冗長化してもよい。リクエスト生成部42aは、ルータ40を介してI/O装置に対するアクセス要求を取得した場合には、アクセス要求の対象となるI/O装置に送信するリクエストを生成し、生成したリクエストをPCIeバス制御部42bに出力する。また、リクエスト生成部42aは、I/O装置から物理アドレスと、CPUIDとを取得した場合には、取得した物理アドレスと、CPUIDとを格納したパケット、すなわち、メモリアクセスのリクエストとなるパケットを生成する。かかるリクエストの種類としては、I/O装置が他のCPUに接続されたメモリをリードするためのリクエストが挙げられる。また、リクエスト生成部42aは、I/O装置から物理アドレスと、CPUIDと、書き込みデータとを取得した場合には、取得した物理アドレスと、CPUIDと、書き込みデータとを格納したパケット、すなわち、メモリアクセスのリクエストとなるパケットを生成する。かかるリクエストの種類としては、I/O装置が他のCPUに接続されたメモリにデータをライトするためのリクエストが挙げられる。そして、リクエスト生成部42aは、生成したパケットをルータ40に送信する。また、リクエスト生成部42aは、エラー発生アドレスレジスタ98、トラップ発生部99を有する。PCIeバス制御部42bは、リクエスト生成部42aが生成したリクエストを取得した場合には、PCIe接続部28を介して、I/O装置にリクエストを送信する。また、PCIeバス制御部42bは、PCIe接続部28を介して、I/O装置から物理アドレスと、CPUIDとを取得した場合には、リクエスト生成部42aに、取得した物理アドレスと、CPUIDとを送信する。また、PCIeバス制御部42bは、PCIe接続部28を介して、I/O装置から物理アドレスと、CPUIDと、書き込みデータとを取得した場合には、リクエスト生成部42aに、取得した物理アドレスと、CPUIDと、書き込みデータとを送信する。また、PCIeバス制御部42bは、I/O装置が他のCPUに接続されたメモリをリードするためのリクエストに対応するレスポンスが、リクエストが送信されてから所定時間以内に受信しないため、異常が検出された場合には、次のような処理を行う。すなわち、PCIeバス制御部42bは、poisonedTLPパケットをPCIe接続部28に送信する。この場合、PCIe接続部28は、poisonedTLPパケットを受信すると、受信したpoisonedTLPパケットをI/O装置へ送信する。これにより、I/O装置では、異常が発生していることを検出することができる。また、PCIe接続部28は、異常が発生していることを検出すると、デバイスドライバソフトに異常が発生したことを通知するので、リカバリ処理が行われる。リカバリ処理の一例としては、LANに異常が発生した場合には、処理中の送受信データを一旦破棄し、LANチップの状態を初期化し、初期化後は、通常通りにデータの送受信を行う処理が挙げられる。図10を参照して、poisonedTLPについて説明する。図10は、TLPheaderのデータ構成の一例を示す図である。poisonedTLPとは、PCIexpressの仕様によって規定されているパケットである。図10の例に示すTLPheaderのEPビットがオンである場合に、poisonedTLPであると認識される。図11は、poisonedTLPパケットを受信したPCIe制御部の動作の具体例を説明するための図である。図11の例は、PCIe制御部42がRootComplexに対応し、PCIe接続部28がPCIexpressカードに対応する場合のデバイスドライバの階層構造を示す。この一例では、PCIexpressカードとしてSASのPCIexpressカードが搭載されている場合を示している。PCIexpressのバス上のpoisonedTLPの発生などのイベントの検出やバス上での対処は、PCIexpressカードの種別に関わらず共通である。そのため、かかるイベントの検出やバス上での対処は、SASデバイスドライバなどの個別のデバイスドライバでは行われず、RootComplexドライバで行われる。一方、バスで何らかのイベント、例えば、エラー系のイベントが発生した場合、エラーが発生したバス上で動作していたSASデバイスドライバ側で、SASデバイスドライバ固有の回復処理が行われる場合が多い。ここで、SASデバイスドライバ固有の回復処理の一例としては、処理中の送信処理の終了処理またはリトライなどが挙げられる。poisonedTLPが発生した場合、RootComplexドライバは、エラー事象の刈り取り詳細情報のリード、ステータスビットのクリアなどを行った後に、バス上のSASデバイスドライバにエラーの発生を通知する。この通知により、SASデバイスドライバは、SASデバイスドライバ固有のリカバリ処理を開始する。なお、SASデバイスドライバにエラーの発生を通知せず、I/O装置を使用しているアプリケーションプロセスにエラーの発生を通知し、アプリケーションプロセスからI/O装置の再起動処理を行うようにしてもよい。また、PCIeバス制御部42bは、I/O装置が他のCPUに接続されたメモリにデータをライトするためのリクエストに対応するレスポンスが、リクエストが送信されてから所定時間以内に受信しないため、異常が検出された場合には、次のような処理を行う。すなわち、PCIeバス制御部42bは異常検出後、異常にかかわるPCIe接続部28から受信するメモリにデータをライトするためのリクエストを廃棄する。そして、後述するように、エラー発生アドレスレジスタ98にエラー発生アドレスを設定し、トラップ発生部97を使用してトラップを発生させる。このトラップによりデバイスドライバソフトに異常が発生したことが通知されるので、リカバリ処理が行われる。リカバリ処理の一例としては、LANに異常が発生した場合には、処理中の送受信データを一旦破棄し、LANチップの状態を初期化し、初期化後は、通常通りにデータの送受信を行う処理が挙げられる。異常検出部42cは、ポインタ90と、タイマ91と、送信パケット92と、PA93と、リクエスト94と、検出部95とを有する。ポインタ90、タイマ91、送信パケット92、PA93、リクエスト94、検出部95のそれぞれは、上記で説明したポインタ80、タイマ81、送信パケット82、PA83、リクエスト84、検出部85と同様である。また、エラー発生アドレスレジスタ98、トラップ発生部99は、上記で説明したエラー発生アドレスレジスタ96、トラップ発生部97と同様である。すなわち、異常検出部37cは、パケット制御部37によってリクエストが送信されてからレスポンスを受信する前に所定時間が経過した場合に、ノード間のデータ転送の異常を検出する。異常検出部42cは、上記の異常検出部37cと同様に、リクエスト生成部42aからルータ40を介して、他のCPUへ送信されるリードのリクエスト、ライトのリクエストについて、ノード間のデータ転送の異常を検出する。そして、異常を検出した場合には、上記の異常検出部37cの検出部85と同様に、検出部95は、ポインタ90が指すリクエストに含まれるアクセス対象のメモリの物理アドレスをPA93から取得し、取得した物理アドレスを、エラー発生アドレスレジスタ98に書き込む。トラップ発生部99は、エラー発生アドレスレジスタ98に物理アドレスが書き込まれると、トラップを発生する。次に、図12を用いて、CPU21が他のCPUに対してリクエストを送信する処理の一例について説明する。図12は、実施例1に係るCPUがリクエストを送信する処理の一例を説明するための図である。例えば、図12中Aに示すように、サービスプロセッサ24からノードマップ34に対して、物理アドレスが振り分けられるメモリにアクセスするCPUのCPUIDと物理アドレスとを対応付けたエントリの設定が行われる。また、演算部31は、演算処理を実行し、図12中Bに示すように、アクセス対象となる論理アドレスをアドレス変換部35に出力する。すると、アドレス変換部35は、論理アドレスを物理アドレスに変換し、変換した物理アドレスを図12中Cに示すように、キャッシュディレクトリ管理部36に出力する。ここで、キャッシュディレクトリ管理部36は、アドレス変換部35から物理アドレスを取得すると、図12中Dに示すように、ノードマップ34を参照し、取得した物理アドレスと対応付けられたCPUIDを取得する。そして、キャッシュディレクトリ管理部36は、取得したCPUIDがCPU21のCPUIDではない場合には、図12中Eに示すように、取得したCPUIDと物理アドレスとをパケット制御部37に出力する。このような場合には、パケット生成部37aは、キャッシュディレクトリ管理部36から取得した物理アドレスとCPUIDとを格納したパケットを生成し、図12中Fに示すように、生成したパケットをルータ40に出力する。また、パケット生成部37aは、図12中Gに示すように、リクエストであるパケットを送信したことを示すデータを異常検出部37cに出力する。続いて、図12中Hに示すように、ルータ40は、パケット生成部37aから取得したパケットをXB接続部27に出力する。その後、図12中Iに示すように、XB接続部27は、取得したパケットをXB2に出力する。すると、XB2は、パケットに格納されたCPUIDが示すCPUへパケットを伝達することとなる。次に、図13を用いて、CPU21が他のCPUからパケットを受信した際に実行する処理の一例について説明する。図13は、実施例1に係るCPUがパケットを受信した際に実行する処理の一例を説明するための図である。例えば、図13中Jに示すようにパケット受信部37bは、他のCPUからCPU21のCPUIDとメモリ22に振り分けられた物理アドレスとが格納されたパケットや、レスポンスのパケットを受信する。このような場合には、パケット受信部37bは、受信したパケットが、レスポンスのパケットである場合には、図13中Kに示すように、レスポンスであるパケットを受信したことを示すデータを異常検出部37cに出力する。そして、パケット受信部37bは、受信したパケットから物理アドレスを取得し、図13中Lに示すように、取得した物理アドレスをキャッシュディレクトリ管理部36に出力する。すると、キャッシュディレクトリ管理部36は、物理アドレスが示す記憶領域が、共有領域であるかローカル領域であるかを判別する。そして、共有領域に対するアクセスである場合には、キャッシュディレクトリ管理部36は、図13中Mに示すように、物理アドレスが示す記憶領域のデータがL1キャッシュ32およびL2キャッシュ33にキャッシュされているか判別する。また、キャッシュディレクトリ管理部36は、データがキャッシュされていないと判別した場合には、図13中Nに示すように、物理アドレスをメモリアクセス部41に出力する。すると、図13中Oに示すように、メモリアクセス部41は、メモリ22から物理アドレスが示す記憶領域のデータを取得し、キャッシュディレクトリ管理部36に出力する。そして、キャッシュディレクトリ管理部36は、L1キャッシュ32、L2キャッシュ33、またはメモリアクセス部41からデータを取得した場合には、取得したデータをパケット制御部37に出力し、リクエスト元のCPUに送信するよう指示する。次に、図14を用いて、I/O装置がCPU21以外のCPUに対してリードやライトのリクエストを送信する処理の一例について説明する。図14は、実施例1に係るI/O装置がリクエストを送信する処理の一例を説明するための図である。例えば、PCIe接続部28は、I/O装置から物理アドレスと、CPUIDとを取得すると、図14中Pに示すように、取得した物理アドレスと、CPUIDとをPCIeバス制御部42bに出力する。また、PCIe接続部28は、I/O装置から物理アドレスと、CPUIDと、書き込みデータとを取得すると、図14中Pに示すように、取得した物理アドレスと、CPUIDと、書き込みデータとをPCIeバス制御部42bに出力する。そして、PCIeバス制御部42bは、PCIe接続部28から物理アドレスと、CPUIDとを取得すると、図14中Qに示すように、取得した物理アドレスと、CPUIDとをリクエスト生成部42aに出力する。また、PCIeバス制御部42bは、PCIe接続部28から物理アドレスと、CPUIDと、書き込みデータとを取得すると、図14中Qに示すように、取得した物理アドレスと、CPUIDと、書き込みデータとをリクエスト生成部42aに送信する。リクエスト生成部42aは、PCIeバス制御部42bから物理アドレスと、CPUIDとを取得すると、取得した物理アドレスと、CPUIDとを含むリードのリクエストとなるパケットを生成する。また、リクエスト生成部42aは、PCIeバス制御部42bから物理アドレスと、CPUIDと、書き込みデータとを取得すると、取得した物理アドレスと、CPUIDと、書き込みデータとを含むライトのリクエストとなるパケットを生成する。そして、リクエスト生成部42aは、図14中Rに示すように、生成したパケットをルータ40に出力する。また、リクエスト生成部42aは、図14中Sに示すように、リードのリクエスト、ライトのリクエストを送信したことを示すデータを異常検出部42cに出力する。続いて、図14中Tに示すように、ルータ40は、リクエスト生成部42aから取得したリクエストをXB接続部27に出力する。その後、図14中Uに示すように、XB接続部27は、取得したリクエストをXB2に出力する。すると、XB2は、リクエストに格納されたCPUIDが示すCPUへパケットを伝達することとなる。次に、図15を用いて、I/O装置がCPU21以外のCPUからレスポンスを受信する処理の一例について説明する。図15は、実施例1に係るI/O装置がレスポンスを受信する処理の一例を説明するための図である。例えば、図15中Vに示すようにXB接続部27は、CPU21以外のCPUからI/O装置へのレスポンスを受信する。XB接続部27は、レスポンスを受信すると、図15中Wに示すように、受信したレスポンスをルータ40に出力する。ルータ40は、レスポンスを受信すると、図15中Xに示すように、受信したレスポンスをリクエスト生成部42aに出力する。リクエスト生成部42aは、レスポンスを受信すると、レスポンスを受信したことを示すデータを異常検出部42cに出力する。また、リクエスト生成部42aは、図15中Zに示すように、レスポンスをPCIeバス制御部42bに出力する。PCIeバス制御部42bは、レスポンスを受信すると、図15中AAに示すように、受信したレスポンスをPCIe接続部28に出力する。これにより、PCIe接続部28からI/O装置へレスポンスが送信される。次に、図16、図17を用いて、ノード20と、ノード20のアクセス対象のメモリを有するノードとの間でデータ転送の異常が発生した際に実行される処理の一例について説明する。図16は、ノードと、当該ノードのアクセス対象のメモリを有するノードとの間でデータ転送の異常が発生した際に実行される処理の一例を説明するための図である。例えば、異常検出部37cは、タイマ81の時間が、所定時間を経過したか否かを判定する。所定時間を経過した場合には、異常検出部37cは、ポインタ80が指すリクエストに対応するレスポンスを所定時間以内に受信していないため、ノード20と、アクセス対象のメモリを有するノードとの間でデータ転送の異常が発生したことを検出する。そして、異常検出部37cは、ポインタ80が指すリクエストに含まれるアクセス対象のメモリの物理アドレスをPA83から取得し、図16中ABに示すように、取得した物理アドレスを、エラー発生アドレスレジスタ96に書き込む。エラー発生アドレスレジスタ96に物理アドレスが書き込まれると、図16中ACに示すように、トラップ発生部96は、トラップを発生する。図17は、ノードと、当該ノードのアクセス対象のメモリを有するノードとの間でデータ転送の異常が発生した際に実行される処理の一例を説明するための図である。例えば、異常検出部42cは、タイマ91の時間が、所定時間を経過したか否かを判定する。所定時間を経過した場合には、異常検出部42cは、ポインタ90が指すリクエストに対応するレスポンスを所定時間以内に受信していないため、ノード20と、アクセス対象のメモリを有するノードとの間でデータ転送の異常が発生したことを検出する。そして、異常検出部42cは、ポインタ90が指すリクエストに含まれるアクセス対象のメモリの物理アドレスをPA93から取得し、図17中ADに示すように、取得した物理アドレスを、エラー発生アドレスレジスタ98に書き込む。エラー発生アドレスレジスタ98に物理アドレスが書き込まれると、図17中AEに示すように、トラップ発生部98は、トラップを発生する。通信部23、サービスプロセッサ24、XB接続部27、XB接続部27a、PCIe接続部28は、電子回路である。ここで、電子回路の例として、ASICApplicationSpecificIntegratedCircuitやFPGAFieldProgrammableGateArrayなどの集積回路、またはCPUやMPUMicroProcessingUnitなどを適用することができる。また、CPU21~21cに代えて、ASICやFPGAなどの集積回路、またはMPUなどを適用することができる。また、メモリ22~22aは、RAMRandomAccessMemory、ROMReadOnlyMemory、フラッシュメモリflashmemoryなどの半導体メモリ素子である。また、L1キャッシュ32、L2キャッシュ33は、SRAMStaticRandomAccessMemory等の高速な半導体メモリ素子である。次に、各CPU21~21cがキャッシュコヒーレンスを保持する処理について説明する。なお、以下の説明においては、情報処理システム1の各CPUはイリノイプロトコルを用いて、キャシュコヒーレンスを保持するものとする。また、以下の説明においては、情報処理システム1が有する各メモリは、全てのCPUからキャッシュ可能な空間を有するメモリとして識別されるものとする。また、以下の説明においては、キャッシュ対象となるデータを記憶するメモリに、そのCPU内のMACを介して物理的に直接接続されているCPUをホームCPUとし、キャッシュを要求したCPUをローカルCPUと記載する。また、ホームCPUに対して既にリクエストを送信し、データをキャッシュ済みであるCPUをリモートCPUと記載する。なお、ローカルCPUとホームCPUとが同一のCPUとなる場合や、ローカルCPUとリモートCPUとが同一のCPUとなる場合もある。ローカルCPUは、自身のノードマップを参照し、アクセス対象となる物理アドレスがホームCPUがアクセスするメモリに振り分けられていると判定する。そして、ローカルCPUは、物理アドレスを格納したリクエストをホームCPUに対して発行する。なお、ローカルCPUが発行するリクエストには、複数の種別のリクエストが存在する。このため、ホームCPUが有するキャッシュディレクトリ管理部は、取得したリクエストの種別に応じたキャッシュコヒーレンス制御を実行することとなる。例えば、ローカルCPUが発行するリクエストの種別としては、共有型フェッチアクセス、排他型フェッチアクセス、キャッシュ無効化要求、キャッシュリプレース要求等がある。共有型フェッチアクセスとは、例えば、MoveIntoShareの実行要求であり、ホームCPUがアクセスするメモリからデータの読出しを行う際に発行されるリクエストである。また、排他型フェッチアクセスとは、例えば、MoveInExclusivelyの実行要求であり、ホームCPUがアクセスするメモリへデータストアを行う際の、キャッシュへのデータロードを行う際に発行される。また、キャッシュ無効化要求とは、例えば、MoveOutの実行要求であり、キャッシュラインの無効化をホームCPUに対して要求する際に発行される。なお、ホームCPUは、キャッシュ無効化要求を受信すると、リモートCPUに対してキャッシュ無効化要求を発行する場合や、キャッシュをInvalidationとさせるオーダーを発行する場合がある。キャッシュリプレース要求とは、例えば、WriteBackの実行要求であり、更新されたキャッシュデータ、すなわちModified状態のキャッシュデータをホームCPUがアクセスするメモリに書き戻す際に発行される。なお、キャッシュリプレース要求には、例えば、FlushBackの実行要求であり、更新されていないキャッシュデータ、すなわち、Shared又はExclusive状態のキャッシュの破棄を行う際に発行される。ホームCPUは、上述したリクエストをローカルCPUや、リモートCPUから受信した場合には、リクエストを処理するために、ローカルCPUやリモートCPUに対して、オーダーを発行する。ここで、ホームCPUは、取得したリクエストの種別に応じたキャッシュコヒーレンス制御を実行するため、複数の種別のオーダーを発行することとなる。例えば、ホームCPUは、リモートCPUがキャッシュしているデータをローカルCPUにロードさせるMoveOutandBypasstoShareを発行する。また、例えば、ホームCPUは、ローカルCPU以外のすべてのリモートCPUのキャッシュを無効化し、その後、ホームCPUがローカルCPUにデータを送信するためのMoveOutandBypassExclusivelyを発行する。また、ホームCPUは、リモートCPUにキャッシュの無効化を要求するMoveOutWITHInvalidationを発行する。なお、ホームCPUがMoveOutWITHInvalidationを発行した場合には、全てのCPUのキャッシュが、対象となるアドレスについてInvalidate状態となる。なお、トランザクション完了時にはローカルCPUがデータをキャッシュする。また、ホームCPUは、リモートCPUにキャッシュラインの無効化を要求するMoveOutforFlushを発行する。なお、ホームCPUがMoveOutforFlushを発行した場合には、対象となるデータは、ホームCPUのメモリにのみ記憶される。また、ホームCPUは、対象となるデータの状態がSharedであるときに、リモートCPUにキャッシュの破棄を要求するBufferInvalidationを発行する。ホームCPUは、リクエストの種別に応じて、上述したオーダーを発行し、各CPUがキャッシュしたデータのステートを遷移させる。また、ローカルCPUやリモートCPUは、オーダーを受信した場合には、オーダーが示す処理を実行し、自身がキャッシュしたデータのステートを遷移させる。その後、ローカルCPUやリモートCPUは、オーダーに対する完了応答やデータ付の完了応答をホームCPUに送信する。また、ホームCPUやリモートCPUは、オーダー処理を実行した後に、ローカルCPUに対して、データ付のリクエスト応答を送信することとなる。[処理の流れ]次に、図18を用いて、情報処理システム1が共有領域を制御する処理の流れについて説明する。図18は、共有領域を制御する処理の流れを説明するためのフローチャートである。まず、情報処理システム1は、アプリケーションの要求に応じて、ノード間の共有メモリの割当処理を実行するステップS101。次に、情報処理システム1は、ノード間で共有する共有メモリのアタッチ処理を実行するステップS102。その後、情報処理システム1が有する各CPUによって実行されるアプリケーションが各メモリを使用するステップS103。次に、情報処理システム1は、共有メモリのデタッチ処理を実行するステップS104。その後、情報処理システム1は、共有メモリの解放処理を実行しステップS105、処理を終了する。なお、ステップS101、およびステップS105は、その共有メモリのホームノード上のアプリケーションのみが実施するものとしても良いし、実際の処理はnopとなるものの、その共有メモリのホームノード以外のノード上のアプリケーションも実施するものとしても良い。次に、図19を用いて、図18中ステップS101で示した共有メモリの割当処理を実行する処理の流れについて説明する。図19は、共有メモリの割当処理を説明するためのフローチャートである。図19に示す例では、例えば、CPU21が実行するアプリケーションがOSに対して、ノード間の共有メモリ割当処理の実行を要求するステップS201。すると、CPU21が実行するOSが共有領域用の物理アドレスの領域から要求されたサイズのメモリ割当を行うステップS202。次に、OSが割り当てた共有メモリの管理用IDをアプリケーションに引渡しステップS203、共有メモリの割当処理を終了する。次に、図20を用いて、図18中ステップS102で示したノード間の共有メモリアタッチ処理の流れについて説明する。図20は、共有メモリアタッチ処理を説明するためのフローチャートである。まず、アプリケーションは、OSに対して管理用IDを引渡し、ノード間の共有メモリのアタッチ処理を要求するステップS301。このような場合には、OSは、他のノードで実行されているOSと通信を行い、管理用IDに対応する物理アドレスを獲得するステップS302。ここで、OSが他のノードで実行されているOSと通信を行う場合には、LANなどによる通信、サービスプロセッサ24を介した各ノード間の通信等を用いる。また、各ノードで実行されるOSは、特定の共有領域を、ノード間通信に用いる領域として設定し、設定した領域に対する情報の格納や読み取りを行う事で、通信を行うこととしても良い。次に、OSは、物理アドレスに対応する論理アドレスを決定し、割当を行うステップS303。例えば、CPU21で実行されるOSは、物理アドレスと論理アドレスとのTLB35aをアドレス変換部35に設定する。なお、各CPU21~21cが用いる論理アドレスは、重複する範囲であっても良く、また、CPUごとに異なる範囲でもよい。また、各CPU21~21cが用いる論理アドレスは、アプリケーションがOSに指定できるようにしてもよい。その後、OSは、論理アドレスの値をアプリケーションに引渡しステップS304、処理を終了する。次に、図21を用いて、図18中ステップS103で示したアプリケーションがノード間の共有メモリを使用する処理の流れについて説明する。図21は、アプリケーションが共有メモリを使用する処理を説明するためのフローチャートである。例えば、CPU21が実行するアプリケーションは、論理アドレスを発行し、論理アドレスが示す記憶領域へのアクセスを行うステップS401。すると、CPU21は、TLBミスが発生したか否かを判別するステップS402。そして、CPU21は、TLBミスが発生した場合はステップS402肯定、トラップ処理を実行し、TLBに論理アドレスと物理アドレスとの組のエントリを設定するステップS403。次に、アプリケーションは、再度論理アドレスを発行し、TLBによる物理アドレスへの変換を経て、正常に共有メモリに対するアクセスを実行しステップS404、処理を終了する。一方、TLBミスが発生しなかった場合はステップS402否定、正常に共有メモリに対するアクセスが実行されステップS405、処理を終了する。次に、図22を用いて、図18中ステップS104で示したノード間の共有メモリデタッチ処理の流れについて説明する。図22は、ノード間の共有メモリデタッチ処理を説明するためのフローチャートである。例えば、CPU21が実行するアプリケーションは、OSに対して、ノード間共有メモリの論理アドレス、または管理用IDを指定して、デタッチ処理を要求するステップS501。すると、CPU21が実行するOSは、キャッシュのフラッシュを行うステップS502。すなわち、OSは、共有メモリの割り当て解除後、再度共有メモリとして割当てを行った場合に、共有メモリとして割当てが行われていない際に共有メモリの実メモリにアクセスするCPUがリブートすると、キャッシュと実メモリの状態が食い違う恐れがある。このため、OSは、キャッシュのフラッシュを行い、キャッシュと実メモリの状態とが食い違う状態を防止する。そして、OSは、ノード間共有メモリ、すなわち、アプリケーションが利用していた範囲の論理アドレスの割当を解除し、解除した論理アドレスに関連するTLB35aのエントリを削除するステップS503。なお、これ以降、本ノード上で、デタッチが完了しているメモリアドレスについてTLBミスが発生してもステップS402肯定、OSはデタッチが完了している論理アドレスに対応する物理アドレスをTLB35aに設定しない。よって、ステップS404は正常に終了せず、アクセスエラーとなる。デタッチ完了後、ステップS302と反対に、OSがノード間で通信し、本アプリケーションがこの共有メモリのPAに対してアクセスを完了したことを通知するステップS504。もし、この共有メモリがホームノード上で解放済みで、かつこのアプリケーションがこの共有メモリの最後の利用者であった場合、ホームノードに解放処理を依頼しステップS505、処理を終了する。次に、図23を用いて、図18中ステップS105で示したノード間共有メモリの解放処理の流れについて説明する。図23は、ノード間共有メモリの解放処理を説明するためのフローチャートである。例えば、CPU21が実行するアプリケーションは、OSに対してノード間共有メモリの解放処理を要求するステップS601。すると、OSは、指定された共有領域の使用者がすべてデタッチしていた場合は、割当てを解放しステップS602、処理を終了する。もしデタッチが完了していなければ、割り当ての解放処理は行わず、処理を完了する実際の割り当ての完了処理はS505で行われる。次に、図24を用いて、CPU21が他のCPUに対して、メモリアクセスのリクエストを送信する処理の流れについて説明する。図24は、リクエストを発行する処理の流れを説明するためのフローチャートである。例えば、CPU21の演算部31は、論理アドレスを発行するステップS701。すると、アドレス変換部35において、論理アドレスから物理アドレスへの変換が行われるステップS702。次に、キャッシュディレクトリ管理部36が、物理アドレスを取得し、キャッシュディレクトリ管理を実行するステップS703。すなわち、キャッシュディレクトリ管理部36は、取得した物理アドレスが示す記憶領域についてのキャッシュステートを遷移させる。次に、キャッシュディレクトリ管理部36は、ノードマップ34を参照し、取得した物理アドレスが他ノードのメモリに振り分けられた物理アドレスであるか否かを判定するステップS704。そして、キャッシュディレクトリ管理部36は、取得した物理アドレスが他ノードのメモリに振り分けられた物理アドレスではないと判定した場合にはステップS704否定、取得した物理アドレスを用いてメモリアクセスを実行するステップS705。そして、処理を終了する。一方、キャッシュディレクトリ管理部36は、取得した物理アドレスが他ノードのメモリに振り分けられた物理アドレスである場合にはステップS704肯定、ノードマップ34から物理アドレスと対応付けられたCPUIDを取得するステップS706。そして、パケット送信部が、CPUIDと物理アドレスとを格納したパケット、すなわち、メモリアクセスのリクエストを生成し、XB2に送出しステップS707、処理を終了する。次に、図25を用いて、CPU21が他のCPUからメモリアクセスのリクエストを受信した際に実行する処理の流れについて説明する。図25は、リクエストを受信した際に実行する処理の流れを説明するためのフローチャートである。なお、図25に示す例では、CPU21が、他のCPUからMoveIntoShareやMoveInExclusivelyを受信した際に実行する処理の流れについて説明する。例えば、CPU21は、他のCPUからXB2を介してリクエストを受信するステップS801。このような場合には、CPU21は、ノードマップ34を用いて、リクエストの対象となる物理アドレスがローカル領域であるか否かを判定するステップS802。そして、CPU21は、リクエストの対象となる物理アドレスがローカル領域である場合にはステップS802肯定、リクエスト元のCPUに否定応答を返信しステップS803、処理を終了する。また、CPU21は、リクエストの対象となる物理アドレスがローカル領域でない場合にはステップS802否定、コヒーレンスを保持するキャッシュディレクトリ管理を実行するステップS804。また、CPU21は、物理アドレスが示す記憶領域のステータスを判定するステップS805。そして、CPU21は、判定したステータスに応じたオーダーを他のCPUに対して発行しステップS806、ステータスを遷移させるステップS807。その後、CPU21は、物理アドレスが示す記憶領域のデータをリクエスト元のCPUに送信する応答を行いステップS808、処理を終了する。次に、図26を用いて、CPU21が応答を受信した際に実行する処理の流れについて説明する。図26は、CPUが応答を受信した際に実行する処理の流れを説明するためのフローチャートである。例えば、CPU21は、応答を受信するステップS901。このような場合には、CPU21は、応答の内容が正常な応答であるか否かを判定するステップS902。そして、CPU21は、応答の内容が正常である場合、すなわち、リクエスト対象となるデータを受信した場合にはステップS902肯定、データを用いた正常な処理を実行しステップS903、処理を終了する。一方、CPU21は、否定応答を受信した場合はステップS902否定、否定応答の理由がアクセスエラーであるか否かを判定するステップS904。そして、CPU21は、否定応答の理由がアクセスエラーではない場合にはステップS904否定、通常のエラー処理を実行しステップS905、処理を終了する。一方、CPU21は、否定応答の理由がアクセスエラーではない場合にはステップS904肯定、エラーが発生した物理アドレスをエラーレジスタに設定して、トラップ処理を実行しステップS906、処理を終了する。次に、図27を用いて、CPU21がリクエストを送信する際に実行する処理の流れについて説明する。図27は、CPUがリクエストを送信する際に実行する処理の流れを説明するためのフローチャートである。例えば、CPU21は、リクエストに含まれるアクセス先の物理アドレスをPA83に格納し、リクエストの種類をリクエスト84に格納するステップS1001。そして、CPU21は、リクエストを他のノードのCPUに送信するステップS1002。続いて、CPU21は、タイマ81を起動させるステップS1003。その後、CPU21は、リクエストを送信してから所定時間経過する前、すなわち、タイムアウト前に、リクエストに対する応答を受信したか否かを判定するステップS1004。タイムアウト前に、応答を受信した場合ステップS1004肯定には、CPU21は、タイマ81を停止するステップS1005。そして、CPU21は、応答を処理しステップS1006、処理を終了する。一方、タイムアウト前に、リクエストに対する応答を受信していない場合ステップS1004否定には、CPU21は、次のような処理を行う。すなわち、CPU21は、当該リクエストに対応するPA83に格納された物理アドレスを特定し、特定した物理アドレスをエラー発生アドレスレジスタ96に設定し、トラップを発生させるステップS1007。次に、CPU21は、特定した物理アドレスが示す記憶領域を有するメモリに接続されたCPUにとって、CPU21がホームCPUであり、かつ、リクエストに、メモリ21へダーティのキャッシュデータをライトバックする指示が含まれているか否かを判定するステップS1008。CPU21がホームCPUであり、かつ、リクエストに、メモリ21へダーティのキャッシュデータをライトバックする指示が含まれている場合ステップS1008肯定には、CPU21は、次のような処理を行う。すなわち、CPU21は、メモリ22の共有メモリにライトバックされるキャッシュデータが、ライトバックされなかった異常を示す値を生成し、生成した値をディレクトリ36aの所定の領域に書き込む。または、CPU21は、ダウンしたノードによってキャッシュデータがライトバックされるメモリ22の共有メモリの領域に、エラー状態を示すデータを生成し、生成したデータを書き込むステップS1009。そして、処理を終了する。また、CPU21がホームCPUでないか、または、リクエストに、メモリ21へダーティのキャッシュデータをライトバックする指示が含まれていない場合ステップS1008否定にも、処理を終了する。次に、図28を用いて、PCIe制御部42がリードのリクエストを送信する際に実行する処理の流れについて説明する。図28は、PCIe制御部がリードのリクエストを送信する際に実行する処理の流れを説明するためのフローチャートである。例えば、PCIe制御部42は、リクエストに含まれるアクセス先の物理アドレスをPA83に格納し、リクエストの種類をリクエスト84に格納するステップS1101。そして、PCIe制御部42は、リクエストを他のノードのCPUに送信するステップS1102。続いて、PCIe制御部42は、タイマ91を起動させるステップS1103。その後、PCIe制御部42は、タイムアウト前に、リクエストに対する応答を受信したか否かを判定するステップS1104。タイムアウト前に、応答を受信した場合ステップS1104肯定には、PCIe制御部42は、タイマ91を停止するステップS1105。そして、PCIe制御部42は、応答を処理しステップS1106、処理を終了する。一方、タイムアウト前に、リクエストに対する応答を受信していない場合ステップS1104否定には、PCIe制御部42は、次のような処理を行う。すなわち、PCIe制御部42は、当該リクエストに対応するPA83に格納された物理アドレスを特定し、特定した物理アドレスをエラー発生アドレスレジスタ98に設定し、トラップを発生させるステップS1107。次に、PCIe制御部42は、poisonedTLPパケットを生成し、生成したpoisonedTLPパケットをPCIe接続部28に送信しステップS1108、処理を終了する。次に、図29を用いて、PCIe制御部42がライトのリクエストを送信する際に実行する処理の流れについて説明する。図29は、PCIe制御部がライトのリクエストを送信する際に実行する処理の流れを説明するためのフローチャートである。例えば、PCIe制御部42は、リクエストに含まれるアクセス先の物理アドレスをPA83に格納し、リクエストの種類をリクエスト84に格納するステップS1201。そして、PCIe制御部42は、リクエストを他のノードのCPUに送信するステップS1202。続いて、PCIe制御部42は、タイマ91を起動させるステップS1203。その後、PCIe制御部42は、タイムアウト前に、リクエストに対する応答を受信したか否かを判定するステップS1204。タイムアウト前に、応答を受信した場合ステップS1204肯定には、PCIe制御部42は、タイマ91を停止するステップS1205。そして、PCIe制御部42は、応答を処理しステップS1206、処理を終了する。一方、タイムアウト前に、リクエストに対する応答を受信していない場合ステップS1204否定には、PCIe制御部42は、次のような処理を行う。すなわち、PCIe制御部42は、当該リクエストに対応するPA83に格納された物理アドレスを特定し、特定した物理アドレスをエラー発生アドレスレジスタ98に設定し、トラップを発生させステップS1207、処理を終了する。次に、図30を用いて、トラップが発生することによってOSが実行するトラップ処理の流れについて説明する。図30は、トラップが発生することによってOSが実行するトラップ処理の流れを説明するためのフローチャートである。例えば、トラップが発生することによって、CPU21が実行するOSは、割込みハンドラを起動させるステップS1301。割込みハンドラは、トラップの種別を特定するステップS1302。割込みハンドラは、トラップの種別が、CPU21が検出した他ノードのCPUとの通信エラーで、リード処理中であることを示すか否かを判定する。トラップの種別が、CPU21が検出した他ノードのCPUとの通信エラーで、リード処理中であることを示す場合S1303肯定には、割込みハンドラは、次のような処理を行う。すなわち、割込みハンドラは、割込みが発生したときのプログラムカウンタが示すプロセスのシグナルハンドラをシグナルの送信先とするステップS1304。続いて、割込みハンドラは、シグナルの送信先にシグナルを送信しステップS1305、処理を終了する。また、トラップの種別が、CPU21が検出した他ノードのCPUとの通信エラーで、リード処理中であることを示さない場合ステップS1303否定には、割込みハンドラは、次のような処理を行う。すなわち、割込みハンドラは、トラップの種別が、CPU21が検出した他ノードのCPUとの通信エラーで、ライト処理中であることを示すか否かを判定するステップS1306。トラップの種別が、CPU21が検出した他ノードのCPUとの通信エラーで、ライト処理中であることを示す場合ステップS1306肯定には、割込みハンドラは、エラー発生アドレスレジスタ96を読み、物理アドレスを取得するステップS1307。そして、割込みハンドラは、取得した物理アドレスに対応するシグナルハンドラをハンドラテーブルから検索するステップS1308。なお、ハンドラテーブルは、次のようにして作成される。まず、CPU21が実行するアプリケーションの要求によって、共有領域用の物理アドレスの領域から要求されたサイズのメモリ割当が行われた際に、シグナルハンドラを取得し、取得したシグナルハンドラの関数のエントリアドレスをハンドラテーブルに登録する。そして、ハンドラテーブルへのシグナルハンドラの関数のエントリアドレスの登録時に、OSは、次のような処理を行う。すなわち、CPU21が実行するOSは、シグナルハンドラの関数のエントリアドレスに、共有メモリのアドレスと、プロセスの識別子とを対応付けて、ハンドラテーブルに登録する。このようにして、ハンドラテーブルは作成される。図31は、ハンドラテーブルのデータ構造の一例を示す図である。図31に示すハンドラテーブルは、共有メモリアドレスの項目と、pidの項目と、シグナルハンドラの関数のエントリアドレスの項目とを有する。共有メモリアドレスの項目には、シグナルハンドラの関数のエントリアドレスの項目にエントリアドレスが登録されたシグナルハンドラに対応する共有メモリのアドレスが登録される。また、pidの項目には、シグナルハンドラの関数のエントリアドレスの項目にエントリアドレスが登録されたシグナルハンドラに対応するプロセスの識別子が登録される。シグナルハンドラの関数のエントリアドレスの項目には、シグナルハンドラの関数のエントリアドレスが登録される。図30に戻り、検索の結果、割込みハンドラは、シグナルハンドラを得ることができたか否かを判定するステップS1309。シグナルハンドラを得ることができた場合ステップS1309肯定には、割込みハンドラは、得たシグナルハンドラをシグナル送信先としステップS1310、ステップS1305へ進む。一方、シグナルハンドラを得ることができなかった場合ステップS1309否定には、割込みハンドラは、ステップS1307で取得した物理アドレスが示す共有領域の共有メモリを使用している全プロセスを中断させステップS1311、処理を終了する。また、トラップの種別が、CPU21が検出した他ノードのCPUとの通信エラーで、ライト処理中であることを示す場合ステップS1306否定には、割込みハンドラは、次のような判定を行うことができる。すなわち、割込みハンドラは、トラップの種別が、PCIe制御部42が検出した他ノードのCPUとの通信エラーであると判定することができる。そこで、割込みハンドラは、PCIe制御部42の割込み処理ルーチンを起動するステップS1312。そして、CPU21が実行する割込み処理では、PCIe制御部42のエラー発生アドレスレジスタ98が読まれ、物理アドレスが取得されるステップS1313。次に、割込みハンドラは、取得した物理アドレスが示す記憶領域が、共有メモリの共有領域であるか否かを判定するステップS1314。取得した物理アドレスが示す記憶領域が、共有メモリの共有領域である場合ステップS1314肯定には、ステップS1308に戻る。一方、取得した物理アドレスが示す記憶領域が、共有メモリの共有領域でない場合ステップS1314否定には、所定の対応する処理を行ってステップS1315、処理を終了する。次に、図32を用いて、シグナルが通知されたシグナルハンドラが実行する処理の流れについて説明する。図32は、シグナルが通知されたシグナルハンドラが実行する処理の流れを説明するためのフローチャートである。例えば、割込みハンドラは、シグナルをシグナルハンドラに通知して、シグナルハンドラを起動させるステップS1401。起動されたシグナルハンドラは、シグナルハンドラに通知された物理アドレスから、異常が発生した共有メモリを特定するステップS1402。シグナルハンドラは、シグナルハンドラに通知された異常が発生したノードの情報から、異常が発生したノードに存在する共有メモリをすべてデタッチするステップS1403。続いて、シグナルハンドラは、異常が発生したノードと共有しているノード20の共有メモリすべてに対してリカバリ処理を行うステップS1404。そして、シグナルハンドラは、アプリケーション固有のリカバリ処理を行うステップS1405。アプリケーション固有のリカバリ処理の一例について説明する。例えば、一定間隔でディスクなどの外部記憶装置上にcheckpointを作成するアプリケーションをCPU21が実行する場合には、checkpointが示すデータを読み出して、処理を再開するようなリカバリ処理が挙げられる。また、checkpointを作成しないアプリケーションをCPU21が実行する場合には、再初期化、あるいは、再起動処理を行うようなリカバリ処理が挙げられる。また、シグナルが通知されたシグナルハンドラが実行する処理については、上述した処理に限られない。そこで、図33を用いて、シグナルが通知されたシグナルハンドラが実行する他の処理の流れについて説明する。図33は、シグナルが通知されたシグナルハンドラが実行する他の処理の流れを説明するためのフローチャートである。例えば、割込みハンドラは、シグナルをシグナルハンドラに通知して、シグナルハンドラを起動させるステップS1501。起動されたシグナルハンドラは、シグナルハンドラに通知された物理アドレスから、異常が発生した共有メモリを特定するステップS1502。シグナルハンドラは、シグナルハンドラを実行するCPU21を有するノード20自ノードが、異常が発生したノードのメモリを共有メモリとしてアタッチしていたか否かを判定するステップS1503。自ノードが、異常が発生したノードのメモリを共有メモリとしてアタッチしていない場合ステップS1503否定には、ステップS1508へ進む。一方、自ノードが、異常が発生したノードのメモリを共有メモリとしてアタッチしていた場合ステップS1503肯定には、シグナルハンドラは、次のような処理を行う。すなわち、シグナルハンドラは、シグナルハンドラに通知された異常が発生したノードの情報から、異常が発生したノードに存在する共有メモリをすべてデタッチするステップS1504。続いて、シグナルハンドラは、異常が発生したノードに存在する共有メモリのアドレスをL1キャッシュ、L2キャッシュから削除するステップS1505。そして、シグナルハンドラは、異常が発生したノードに存在する共有メモリのアドレスを含むエントリをTLB35aから削除するステップS1506。そして、シグナルハンドラは、シグナルハンドラに通知された物理アドレスを、TLBミスが発生した場合であっても、TLB35aに登録を禁止する物理アドレスとするステップS1507。続いて、シグナルハンドラは、自ノードのメモリを、異常が発生したノードが共有メモリとしてアタッチしていたか否かを判定するステップS1508。自ノードのメモリを、異常が発生したノードが共有メモリとしてアタッチしていた場合ステップS1508肯定には、シグナルハンドラは、異常が発生したノードと共有しているノード20の共有メモリすべてに対してリカバリ処理を行うステップS1509。そして、シグナルハンドラは、アプリケーション固有のリカバリ処理を行いステップS1510、処理を終了する。また、自ノードのメモリを、異常が発生したノードが共有メモリとしてアタッチしていない場合ステップS1508否定にも、処理を終了する。[実施例1の効果]上述したように、情報処理システム1は、一部を共有メモリ領域として設定可能なメモリ22~22cを各々が備える複数のノードと、複数のノード間を接続するXB2とを有する。複数のノードの各々は、複数のノード間のデータ転送の異常または他のノードの異常を検出する異常検出部37c、42cを有する。また、複数のノードの各々は、異常検出部37c、42cにより検出された異常に基づいてpoisonedTLPパケットや、ディレクトリ36aのUEの項目に登録する異常を示す値を生成する。また、複数のノードの各々は、データ転送の要求発行元のノード内のプロセッサに対して割込みを発生する。また、複数のノードの各々のCPUが実行するOSは、割込みを受信すると、リカバリ処理を行う。すなわち、複数のノードのうち少なくとも1つのノードは、異常検出部を有する。この異常検出部は、当該1つのノード又は他のノードが備える記憶装置に含まれる、当該1つのノード及び当該他のノードで共有可能な共有メモリ領域を利用したデータ転送のデータ転送経路における異常を検出する。また、異常検出部は、当該1つのノード又は当該他のノードが備える記憶装置に含まれる、当該1つのノード及び当該他のノードで共有可能な共有メモリ領域を利用したデータ転送のデータ転送経路に含まれ得るいずれかのノードにおける異常を検出する。また、複数のノードのうち少なくとも1つのノードは、異常検出部により検出された異常に基づいてエラー情報を生成するとともに、自ノード内のプロセッサに対する割り込みを発生するエラー情報生成部を有する。また、複数のノードのうち少なくとも1つのノードは、割り込みに応じてエラー情報に基づいて、リカバリ処理を実行する。このように、情報処理システム1では、データ転送中に通信相手のノードがダウンした場合であっても、割込みが通知されたCPU21で実行されるOSによって、ダウンしたノードによって共有されていた自ノードの共有メモリに対してリカバリ処理が行われる。そのため、通信相手のノードがダウンして相手ノードが共有メモリのデータをキャッシュしていた場合でも、自ノードはダウンしなくてすむ。よって、情報処理システム1によれば、データ転送中にノード間で通信異常が発生した場合であっても、従来技術のように、全ノードがダウンしなくてすむ。したがって、情報処理システム1によれば、ノード間のデータ転送に関わる異常が発生した場合に、エラーの影響範囲を抑えることができる。また、情報処理システム1は、ポインタ80、90によって、時間を計測する対象のリクエストを切り替えることで、1つのタイマ81、91だけで、リクエストが送信されてからのタイムアウトを検出することができる。また、情報処理システム1は、受信した物理アドレスに基づいて、アクセス対象が共有領域であるかローカル領域であるかを判別するので、ローカル領域に格納するカーネルデータやユーザデータのセキュリティレベルを高く保つことができる。また、情報処理システム1は、全てのメモリをキャッシュ可能とするので、メモリアクセスにおけるレイテンシを容易に隠蔽することができる。また、CPU21は、他のCPUがアクセスするメモリの共有領域に対して、メモリ22にアクセスする場合と同様の方法でアクセスする。すなわち、CPU21が有する演算部31は、アクセス対象となる記憶領域がメモリ22上に存在する場合にも、他のメモリ上に存在する場合にも、論理アドレスを出力するだけでよい。このため、CPU21は、I/Oの排他制御等の処理やプログラミング等を実行せずとも、容易に共有領域にアクセスできるため、メモリアクセス性能を向上させることができる。また、CPU21は、実行するプログラムやOSに改変を行わずとも、共有メモリを適切に利用することができる結果、プリフェッチ処理の実行を従来と同様に行う事ができるため、メモリアクセスの性能を向上させることができる。また、CPU21は、他のCPUからのメモリアクセスの対象がローカル領域へのアクセスであると判定した場合には、否定応答を返信する。このため、情報処理システム1は、共有領域以外へのアクセスを防止する結果、エラーを防ぐことができる。また、キャッシュディレクトリ管理部36は、ノードマップ34を用いて、物理アドレスをノードマップ34に対応付けて記憶されたCPUIDに変換する。このため、CPU21は、アクセス対象となる物理アドレスが振り分けられたメモリにアクセスするCPUを識別することができる。また、CPU21は、メモリ22に記憶されたデータをキャッシュしたCPUを管理するディレクトリを用いて、キャッシュコヒーレンスの制御を行う。このため、情報処理システム1は、情報処理システム1が有するCPUの数が増加した場合にも、XB2のトラフィックを増加させることなく、効率的にキャッシュコヒーレンスを保持することができる。具体的には、情報処理システム1においては、各CPU間の通信が、リモートCPUとホームCPU間、または、リモートCPUとホームCPUと更新したデータをキャッシュするローカルCPU間に限定される。このため、情報処理システム1は、効率的にキャッシュコヒーレンスを保持することができる。これまで本発明の実施例について説明したが実施例は、上述した実施例以外にも様々な異なる形態にて実施されてよいものである。そこで、以下では実施例2として本発明に含まれる他の実施例を説明する。1ノードの異常を検出する方法について、上述した実施例1では、情報処理システム1が、リクエストのタイムアウトを検出することで、ノードの異常を検出する場合について例示したが、開示のシステムは、これに限定されない。例えば、開示のシステムは、所定の時間間隔で、互いに接続されたサービスプロセッサ間でサービスプロセッサの状況を確認することにより、ノードの異常を検出することもできる。また、開示のシステムは、LAN経由でのノード間でのalivecheckを、所定の時間間隔で行うことにより、ノードの異常を検出することができる。これにより、リクエストが送信されるタイミングとは、非同期で、ノードの異常を検出することができる。図34は、ノードの異常を検出する方法の一例を説明するための情報処理システムの模式的な図である。図34の例は、ビルディングボックスをBBと表記した場合を示す。図34の例では、各BBのCPUは、異常検出回路72、自ノード番号情報73、ノードダウン通知部61、割込発生回路75、ノードダウン受信部62、ノードダウン情報レジスタ74を有する。異常検出回路72は、自ノードの異常を検出する。自ノード番号情報73は、自ノードの識別番号を示す情報である。ノードダウン通知部61は、異常検出回路72で自ノードの異常が検出された場合には、異常の種類、および、自ノード番号情報73が示す自ノードの識別番号をノードダウン通知パケットに含めてXBに送信する。なお、異常の種類の一例としては、ノードダウン、ハング、どのCPUで異常が発生したかを示す情報が挙げられる。また、自ノード番号情報73が示す情報は、ノードを識別可能な情報であれば何でもよい。例えば、ノードと、ノードに搭載されているCPUとの関係が予め定義されている場合には、CPUIDからノード番号が分かるので、自ノード番号情報73が示す情報は、CPUIDでもよい。ノードダウン受信部62は、XBから送信されたノードダウン通知パケットを受信すると、ノードダウン通知パケットに含まれる異常の種類、および、自ノードの識別番号をノードダウン情報レジスタ74に設定する。ノードダウン情報レジスタ74に異常の種類、および、自ノードの識別番号が設定されると、この設定された情報を用いて、ソフトウェアが異常の対処を行うことができる。また、ノードダウン受信部62は、ノードダウン通知パケットを受信すると、割込発生回路75に割込みを発生させるための制御信号を出力する。割込発生回路75は、ノードダウン受信部62から制御信号を受信すると、実施例1と同様に、割込みを発生させる。そのため、この割込みにより、割込みが発生してからの処理については、実施例1と同様の処理が行われる。図34の例では、各BBのASICは、異常検出回路70、自ノード番号情報71、ノードダウン通知部60を有する。異常検出回路70は、自ノードの異常を検出する。自ノード番号情報71は、自ノードの識別番号を示す情報である。ノードダウン通知部60は、異常検出回路70で自ノードの異常が検出された場合には、異常の種類、および、自ノード番号情報71が示す自ノードの識別番号をノードダウン通知パケットに含めてXBに送信する。ノードダウン通知部60、61は、複数のノードダウン通知パケットをXBに送信して、複数のCPUにノードダウン通知パケットを送信することができる。また、ノードダウン通知部60、61は、1つのノードダウン通知パケットをXBに送信して、XBが複数のCPUにノードダウン通知パケットを送信することもできる。また、ノードダウン通知部60、61は、ノードごとに1つのCPUに、ノードダウン通知パケットを送信することもできる。図35を用いて、実施例1の異常検出方法とは異なる方法を用いた場合の処理の流れについて説明する。図35は、実施例1の異常検出方法とは異なる方法を用いた場合の処理の流れを説明するためのフローチャートである。例えば、CPU21は、実施例2において上述した異常検出方法のいずれかを用いて、ノードの異常が検出されたか否かを判定するステップS1601。ノードの異常が検出されない場合ステップS1601否定には、CPU21は、再び、ステップS1601での判定を行う。一方、ノードの異常が検出された場合ステップS1601肯定には、CPU21は、異常が検出されたノードが、リモートノードであるか否かを判定するステップS1602。異常が検出されたノードが、リモートノードである場合ステップS1602肯定には、CPU21が実行するOSが、次のような処理を行う。すなわち、OSが、自ノード20のディレクトリ36aについて、異常が発生したノードの情報が残っている場合には、ディレクトリ36aの整合性をとりステップS1603、処理を終了する。ここで、ディレクトリの整合性のとりかたの一例を説明する。例えば、CPU21は、ダウンしたノードがデータをキャッシュしているが、キャッシュの状態は、cleanである場合には、次のような処理を行う。すなわち、CPU21は、そのcleanであるキャッシュのディレクトリ36aの情報をダウンしたノードがキャッシュを持っていない状態に変更するリカバリ処理を行う。また、CPU21は、ダウンしたノードがデータをキャッシュしており、キャッシュの状態は、dirtyである場合には、次のような処理を行う。すなわち、CPU21は、dirtyであるキャッシュラインをエラー状態に変更するリカバリ処理を行う。一方、異常が検出されたノードが、リモートノードでない場合、すなわち、ホームノードである場合ステップS1602否定には、CPU21が実行するOSが、次のような処理を行う。すなわち、OSが、自ノードのキャッシュについて、異常が発生したノードの情報が残っている場合には、キャッシュのノードの情報を削除するステップS1604。そして、OSが、異常が発生したノードの物理アドレスが、自ノードのTLB35aに登録されている場合には、異常が発生したノードの物理アドレスを含むエントリをすべて削除しステップS1605、処理を終了する。次に、情報処理システム1が、クラスタ動作を行うアプリケーションである場合には、クラスタソフトウェアにおいて、クラスタ管理マネージャがノードダウンを検出できる。そこで、クラスタ管理マネージャが異常を検出した場合の処理の流れについて、図36を用いて説明する。図36は、クラスタ管理マネージャが異常を検出した場合の処理の流れを説明するためのフローチャートである。例えば、クラスタ管理マネージャが、ノードの異常を検出したか否かを判定するステップS1701。ノードの異常を検出しない場合ステップS1701否定には、クラスタ管理マネージャは、再び、ステップS1701の処理を行う。一方、ノードの異常を検出した場合ステップS1701肯定には、クラスタ管理マネージャが、自ノードで動作中のアプリケーションに、ノードダウンによる再構成処理の開始を依頼するステップS1702。続いて、アプリケーションは、異常が発生したノードに存在する共有メモリの解放をOSに依頼するステップS1703。その後、OSは、解放した共有メモリのデータを削除し、TLBのエントリを削除するステップS1704。アプリケーションは、固有のリカバリ処理を行いステップS1705、処理を終了する。2ビルディングブロックについて上述した情報処理システム1は、4つのCPUを有するビルディングブロック10~10eを有していた。しかし、実施例はこれに限定されるものではなく、ビルディングブロック10~10eは、任意の数のCPU及び各CPUがアクセスするメモリを有することができる。また、CPUとメモリは、1対1で対応している必要はなく、メモリに直接アクセスするCPUは全体の一部であってもよい。3CPUが送信するパケットについて上述したCPU21は、CPUIDとPAとを有するパケットをメモリアクセスのリクエストとして送信した。しかし、実施例は、これに限定されるものではない。すなわち、CPU21は、アクセス対象となるメモリにアクセスするCPUを一意に識別できるのであれば、任意の情報を格納したパケットを出力してよい。また例えば、CPU21は、CPUIDからVCVirtualConnectionIDに変換し、VCIDを格納することとしてもよい。また、CPU21は、パケットに、データ長を示すレングス等の情報を格納することとしてもよい。4CPUが発行するオーダー命令について上述したように、各CPU21~21cは、リクエストやオーダーを発行して、キャッシュのコヒーレンスを保持した。しかし、上述したリクエストやオーダーは、あくまで一例であり、例えばCPU21~21cは、CASCompareAndSwap命令を発行してもよい。このように、CPU21~21cがCAS命令を発行した場合には、排他制御のコンテンションが複数のCPU間で頻発しても、各CPUのキャッシュ上で処理が行われる。この結果、CPU21~21cは、メモリアクセスの発生による遅延を防止するとともに、各CPU間のドランザクションが混雑するのを防ぐことができる。5ハイパーバイザを経由した制御について上述した情報処理システム1では、OSによってハードウェアであるアドレス変換部35にアクセスを行う例について説明した。しかし、実施例はこれに限定されるものではなく、たとえは、仮想マシンを動作させるハイパーバイザHPV:Hypervisorがアドレス変換部35にアクセスを行っても良い。すなわち、ハイパーバイザが動作するノードにおいては、OSは、キャッシュやMMUなどのCPU21~21cのハードウェア資源に対して直接の操作を行わず、操作をハイパーバイザに依頼することとなる。このように、各CPU21~21cは、ハイパーバイザを介した制御を受付ける場合には、仮想アドレスを実アドレスRA:RealAddressに変換し、その後、実アドレスを物理アドレスに変換することとなる。また、ハイパーバイザが動作するノードにおいては、割り込み処理は、OSには直接割り込まず、HPVに対して割り込みを行う。このような場合には、ハイパーバイザが、OSの割り込み処理ハンドラを読出すことで割り込みを行う。なお、上述したハイパーバイザが実行する処理は、仮想マシンを動作させるために実行される公知な処理である。6パーティションを用いた処理について上述した情報処理システム1では、各CPU21~21cは、1つのノードマップを用いてメモリアクセスを送信していた。しかし、実施例はこれに限定されるものではない。例えば、各ビルディングブロック10~10eは、複数のノード群として動作し、各ノード群毎に、同一のファームウェアハイパーバイザを動作させる1つの論理パーティションを構成しても良い。このような場合には、各CPU21~21cは、アクセス先のCPUを示すノードマップと、同一論理パーティション内のCPUを示すノードマップとを有する。このように、各CPU21~21cは、同一論理パーティション内に含まれるCPUを示すノードマップを有することで、エラー発生通知、ダウン要求、リセット要求パケット等の、論理パーティションを超えて転送すべきではない特殊パケットの転送範囲を識別することができる。以下、同一論理パーティション内に含まれるCPUを示すノードマップを有するCPUについて説明する。図37は、情報処理システムの一例を説明するための図である。図37に示すように、ビルディングブロック10、10aは、論理パーティションAを動作させ、ビルディングブロック10b~10dは、論理パーティションBを動作させる。ここで、論理パーティションAでは、複数のドメインA~Cと、ファームウェアAが動作する。また、論理パーティションBでは、複数のドメインD~GとファームウェアBが動作する。なお、ファームウェアAおよびファームウェアBとは、例えばハイパーバイザである。また、ドメインAでは、アプリケーションとOSとが動作しており、他のドメインB~GもドメインAと同様に、アプリケーションとOSとが動作する。つまり、各ドメインA~Gは、それぞれ独立してアプリケーションとOSが動作する仮想マシンである。ここで、ビルディングブロック10が有する各CPU21~21cは、パーティションAに含まれる各CPUに対して上述した特殊パケットを送信してもよいが、パーティションBに含まれる各CPUに対しては特殊パケットを送信すべきではない。このため、各ビルディングブロック10~10dのCPUは、同一の論理パーティションに含まれるCPUのCPUIDを示すノードマップを有する。例えば、CPU21は、物理アドレスと、物理アドレスが示す記憶領域を有するメモリと接続されたCPUのCPUIDとを対応付けて記憶するノードマップ34を有する。また、CPU21は、CPU21と同一のパーティション、すなわち、パーティションAに含まれるCPUのCPUIDを記憶するノードマップ34aを有する。なお、ノードマップ34aは、ノードマップ34と同様に、サービスプロセッサ24によって設定されるものとする。以下、図面を用いて、同一の論理パーティションに含まれるCPUのCPUIDを示すノードマップの一例について説明する。図38は、パーティションの一例を説明するための図である。例えば、図38に示す例では、パーティションAは、ビルディングブロック0を有する。また、ビルディングブロック0は、CPU0とアドレス域0が割当てられたメモリとを有する。また、パーティションBは、ビルディングブロック1とビルディングブロック2とを有する。また、ビルディングブロック1は、CPU4、CPU5、アドレス域1が割当てられたメモリ、アドレス域2が割当てられたメモリを有する。なお、アドレス域1が割当てられたメモリには、CPU4がアクセスし、アドレス域2が割当てられたメモリには、CPU5がアクセスする。また、ビルディングブロック2は、CPU8とアドレス域3が割当てられたメモリを有する。次に、図39A~39Cを用いて、図38に示すCPU0が有するノードマップと、CPU4が有するノードマップとについて説明する。まず、図39Aおよび図39Bを用いて、パーティションAのCPUが記憶するノードマップについて説明する。なお、図39Aは、パーティションAのCPUが記憶するノードマップの一例を説明するための図である。また、図39Bは、パーティションAを示すノードマップの一例を説明するための図である。なお、以下の説明では、ノードID0は、ビルディングブロック0を示し、ノードID1は、ビルディングブロック1を示す、ノードID2は、ビルディングブロック2を示す。また、CPUID0は、CPU0のCPUIDであり、CPUID4は、CPU4のCPUIDであり、CPUID5は、CPU5のCPUIDであり、CPUID8は、CPU8のCPUIDであるものとする。例えば、図39Aに示す例では、ノードマップ34は、アドレス域0が、ビルディングブロック0に存在し、CPU0がアクセスを行う旨を示す。また、ノードマップ34は、アドレス域1が、ビルディングブロック1に存在し、CPU4がアクセスを行う旨を示す。また、ノードマップ34は、アドレス域2が、ビルディングブロック1に存在し、CPU5がアクセスを行う旨を示す。また、ノードマップ34は、アドレス域3がビルディングブロック2に存在し、CPU8がアクセスを行う旨を示す。また、図39Bには、パーティションAを示すノードマップを示した。図39Bに示すように、パーティションAを示すノードマップは、各エントリに、バリッドと、ノードIDとCPUIDとを有する。例えば、図39Bに示す例では、ノードマップは、パーティションAにビルディングブロック0のCPU0が含まれる旨を示す。例えば、図38に示す例では、CPU0は、図39Aおよび図39Bに示すノードマップを有する。そして、CPU0は、メモリアクセスを行う場合には、図39Aに示すノードマップを用いて、アクセス先のCPUを識別する。一方、CPU0は、同一パーティション内のCPUのみに特殊パケットを送信する場合には、図39Bに示すノードマップを用いて、送信先のCPUを識別する。すなわち、CPU0は、図39Bに例示するノードマップが示すパーティションA内のCPUに対して、特殊パケットを送信する。一方、CPU4は、メモリアクセスを行うために、図39Aに示すノードマップと、図39Cに示すノードマップとを有する。ここで、図39Cは、パーティションBを示すノードマップの一例を説明するための図である。図39Cに示す例では、パーティションBを示すノードマップは、パーティションBに、ビルディングブロック1のCPU4およびCPU5、ビルディングブロック2のCPU38が存在することを示す。CPU4は、図39Cに例示するノードマップが示すパーティションB内のCPUに対して、特殊パケットを送信する。このように、CPU1およびCPU4は、アドレス域とCPUIDとを対応付けたノードマップと、パーティションを示すノードマップとを記憶する。そして、CPU1およびCPU4は、アドレス域とCPUIDとを対応付けたノードマップを用いて、他のノードが有するメモリに対して直接メモリアクセスを行う。また、CPU1は、パーティションAを示すノードマップを用いて、特殊パケットの送信を行う。また、CPU4は、パーティションBを示すノードマップを用いて、特殊パケットの送信を行う。このように、各CPUは、自身を含むパーティションごとに、異なる値を有するノードマップを有してもよい。また、各CPUは、自身を含むパーティションごとに異なる値を有するノードマップを有する場合は、特殊パケットをパーティションを超えた送信を行うことを防ぐことができる。なお、各CPUは、上記の実施例と同様、スタートアドレスとアドレスマスク、又は、スタートアドレスとレングスでアクセス対象となるアドレス域を示しても良い。すなわち、CPU1とCPU4とは、スタートアドレスとアドレスマスク、又は、スタートアドレスとレングスとを用いて、アクセス対象となるアドレス域を示すノードマップを用いて、アクセス対象となるノードを識別する。また、CPU1とCPU4とは、それぞれ異なるパーティションを示すノードマップを用いて、特殊パケットの送信を行う。7サービスプロセッサを経由した制御について上述した情報処理システム1では、サービスプロセッサ24によってハードウェアであるノードマップ34にアクセスを行う例について説明した。しかし、実施例はこれに限定されるものではなく、サービスプロセッサ24以外がノードマップ34にアクセスするよう構成しても良い。たとえば、CPU21~21c上の一つあるいはすべてのCPUで動作している基本ファームウェアBIOSあるいはHPVなどがノードマップ34にアクセスを行えるよう構成しても良い。