×この技術を簡単クリック査定この機能をご利用いただくには、会員登録(無料)が必要です。出願した特許の牽制数、引用された数などを知る事ができます。気になる技術や特許をブックマークしておけば、いつでも後から読むことができます。後で印刷するために、公報をPDFでダウンロードできます。会員登録してastamuseを使えば、もっと簡単に便利にお使いいただけます。会員登録(無料)「astamuse」は世界中の挑戦したい社会課題に挑戦し、未来を創る人のプラットフォームです。階層構造のメモリシステム※この項目の情報は公開日時点(2017年6月22日)のものです。(17)課題メインメモリを管理する演算処理装置とメインメモリのデータを持ち出している演算処理装置との間で間欠故障等により、キャッシュの制御に矛盾が生じた場合でも、メインメモリの管理情報を更新し、動作を継続できる可能性を高める。第1の演算処理装置は主記憶装置から第2の演算処理装置に持ち出されたデータの変更の有無を含む管理状態を示す管理情報を保持する管理情報格納部と、前記管理情報の更新を要求する更新要求を受信する受信部と、前記管理情報が示す管理状態と受信した更新要求とが所定の関係を満たすか否かを判定するチェック部と、前記更新要求にリトライを示す情報が付与され、受信した更新要求が管理状態を第1の状態から第2の状態に更新し、かつ、前記管理情報が既に第2の状態に更新済みを表す場合、第2の演算処理装置に前記更新要求が正常に終了したことを示す完了応答を送信する応答パケット送信部と、を有する。Module(DIMM)等のメインメモリを有する。コンピュータシステムでは、メインメモリはデータを格納し、CPUがメインメモリにアクセスし、データの参照、あるいはデータの書き換えを行う。メインメモリとして使用されるDIMMは読み書きが遅いため、CPUは内部にキャッシュと呼ばれる記憶媒体を備える。CPUはメインメモリのデータの一部をキャッシュに格納することで、処理対象のデータがキャッシュに存在する場合には、メインメモリまでアクセスせずにキャッシュからデータを読み、データへのアクセスを高速化する。CPUからの読み出し要求がキャッシュミスした時に、要求対象のデータはキャッシュに新規登録される。キャッシュに空きがない場合、すでにキャッシュに格納されていたデータがリプレースのためムーブアウトされる。データがリプレースのためムーブアウトされるとき、キャッシュ制御部は、そのデータと制御信号を一時的に格納し、Home−CPUへ送出する制御を行う。ここで、Home−CPUは、配下にムーブアウト対象のメインメモリを持つCPUである。キャッシュからデータがムーブアウトされるのは、キャッシュに空きがない時に限るものではなく、キャッシュに空きがある場合でも明示的にムーブアウトが実行されるケースがある。以下のムーブアウトは、キャッシュに空きがない場合と、キャッシュに空きがあって明示的に実行される場合の両者を含む。図1に、マルチプロセッサシステムにおけるキャッシュの制御を例示する。図1のマルチプロセッサシステムは、Local−CPUとHome−CPUを有する。図1の例では、Local−CPUがリクエスト元であり、Home−CPUとは異なるCPUであるとする。Home−CPUは、ムーブアウト対象のデータが格納されたメインメモリを管理するCPUである。図1では、省略されているが、図2のHome−CPUもLocal−CPUと同様、キャッシュ制御部を有してもよい。図2のLocal−CPUも、Home−CPUと同様、自身のメインメモリを管理してもよい。リクエスト元であるLocal−CPUのキャッシュ制御部は、ムーブアウトされるデータが変更済みであれば、Home−CPUに対してデータ付きのライトバック(WRBK)のリクエストパケットを送出する。ムーブアウトされるデータが変更されていなければ、Local−CPUのキャッシュ制御部は、Home−CPUに対してデータ無しのフラッシュバック(FLBK)のリクエストパケットを送出する。図1のように、Home−CPUは、ライトバック(WRBK)あるいはフラッシュバック(FLBK)のリクエストパケット(WRBK/FLBK)を受けると、プロトコルチェックを行い、管理情報を更新し、ライトバック(WRBK)あるいはフラッシュバック(FLBK)のコンプリート(CPLT)パケット(WRBK/FLBK−CPLT)をLocal−CPUに送出する。図2に、Local−CPUによるWRBK/FLBKの制御を例示する。Access(cc−NUMA)に代表されるマルチプロセッサシステムにおいては、メインメモリとして使用されるDIMM上に、データと付随する形でキャッシュ持ち出し情報(ディレクトリ)が保持される。Home−CPUは、メモリアクセスの際にデータとともにディレクトリを読み出してキャッシュ一貫性(キャッシュコヒーレンシ)をチェックする。このようなキャッシュの制御は、ディレクトリ方式のキャッシュ一貫性制御と呼ばれる。図2の処理では、Local−CPUは、Home−CPUに対して、WRBK/FLBKを発行し、タイマーを起動する(A1)。Local−CPUは、タイマーが閾値に達するまでに、Home−CPUから応答パケット(WRBK/FLBK−CPLT)を受信したか否かを判定する(A2)。A2の判定がYESの場合には、Local−CPUは、WRBK/FLBKの制御を正常終了する。A2の判定がNOの場合には、Local−CPUは、Fatalエラーを検出したことをエラー制御部へ通知する(A3)。ここで、Fatalエラーは動作継続不可能なエラーである。エラー制御部は、例えば、CPUごとに設けられるCPU監視用の専用プロセッサ、あるいはファームウェア等である。エラー制御部は、Fatalエラーが検出された通知を受けると、さらにCPU外部の管理装置にFatalエラーを報告する。図3に、WRBK/FLBKのリクエストパケットを処理するHome−CPUのフローチャートを例示する。この処理では、Home−CPUは、Local−CPUからWRBK/FLBKのリクエストパケット(WRBK/FLBK)を受信する(B1)。Home−CPUは、リクエストパケット(WRBK/FLBK)を受信すると、Home−CPU上やDIMM上に格納している管理情報(ディレクトリ等)に基づくプロトコルチェックを行う(B2)。プロトコルチェックでエラーがない場合には、Home−CPUはリクエストパケット(WRBK/FLBK)に対応する処理を実行する。Home−CPUはライトバックリクエストの場合には、Home−CPUはメインメモリのデータを更新し、管理情報を更新する(B3)。Home−CPUは、リクエストパケット(WRBK/FLBK)に対する処理を完了すると、Local−CPUへ応答パケット(WRBK/FLBK−CPLT)を返す(B4)。プロトコルチェックでエラーがある場合には、Home−CPUはFatalエラーを検出したことをエラー制御部へ通知する(B5)。概要メインメモリを管理する演算処理装置とメインメモリのデータを持ち出している演算処理装置との間で間欠故障等により、キャッシュの制御に矛盾が生じた場合でも、メインメモリの管理情報を更新し、動作を継続できる可能性を高める。第1の演算処理装置は主記憶装置から第2の演算処理装置に持ち出されたデータの変更の有無を含む管理状態を示す管理情報を保持する管理情報格納部と、前記管理情報の更新を要求する更新要求を受信する受信部と、前記管理情報が示す管理状態と受信した更新要求とが所定の関係を満たすか否かを判定するチェック部と、前記更新要求にリトライを示す情報が付与され、受信した更新要求が管理状態を第1の状態から第2の状態に更新し、かつ、前記管理情報が既に第2の状態に更新済みを表す場合、第2の演算処理装置に前記更新要求が正常に終了したことを示す完了応答を送信する応答パケット送信部と、を有する。6主記憶装置を制御する主記憶制御装置を有する第1の演算処理装置と、前記第1の演算処理装置と接続される第2の演算処理装置とを備える情報処理装置の制御方法において、前記第1の演算処理装置が、前記主記憶装置から前記第2の演算処理装置に持ち出されたデータの変更の有無を含む管理状態を示す管理情報を保持し、前記管理情報の更新を要求する更新要求を受信し、前記管理情報が示す管理状態と前記受信した更新要求とが所定の関係を満たすか否かを判定し、前記更新要求にリトライを示す情報が付与され、前記受信した更新要求が前記管理状態を第1の状態から第2の状態に更新し、かつ、前記管理情報がすでに第2の状態に更新済みを表す場合、前記第2の演算処理装置に前記更新要求が正常に終了したことを示す完了応答を送信する情報処理装置の制御方法。請求項7前記第2の演算処理装置は、前記状態情報を更新するための更新要求を前記第1の演算処理装置に送信し、前記送信した更新要求に対する完了応答が前記第1の演算処理から得られない場合、リトライを示す情報を設定した次の更新要求を前記第1の演算処理に送信するリトライ処理を所定の限度まで繰り返す請求項6に記載の情報処理装置の制御方法。情報処理装置の制御方法に関する。Module(DIMM)等のメインメモリを有する。コンピュータシステムでは、メインメモリはデータを格納し、CPUがメインメモリにアクセスし、データの参照、あるいはデータの書き換えを行う。0003メインメモリとして使用されるDIMMは読み書きが遅いため、CPUは内部にキャッシュと呼ばれる記憶媒体を備える。CPUはメインメモリのデータの一部をキャッシュに格納することで、処理対象のデータがキャッシュに存在する場合には、メインメモリまでアクセスせずにキャッシュからデータを読み、データへのアクセスを高速化する。0004CPUからの読み出し要求がキャッシュミスした時に、要求対象のデータはキャッシュに新規登録される。キャッシュに空きがない場合、すでにキャッシュに格納されていたデータがリプレースのためムーブアウトされる。データがリプレースのためムーブアウトされるとき、キャッシュ制御部は、そのデータと制御信号を一時的に格納し、Home−CPUへ送出する制御を行う。ここで、Home−CPUは、配下にムーブアウト対象のメインメモリを持つCPUである。キャッシュからデータがムーブアウトされるのは、キャッシュに空きがない時に限るものではなく、キャッシュに空きがある場合でも明示的にムーブアウトが実行されるケースがある。以下のムーブアウトは、キャッシュに空きがない場合と、キャッシュに空きがあって明示的に実行される場合の両者を含む。0005図1に、マルチプロセッサシステムにおけるキャッシュの制御を例示する。図1のマルチプロセッサシステムは、Local−CPUとHome−CPUを有する。図1の例では、Local−CPUがリクエスト元であり、Home−CPUとは異なるCPUであるとする。Home−CPUは、ムーブアウト対象のデータが格納されたメインメモリを管理するCPUである。図1では、省略されているが、図2のHome−CPUもLocal−CPUと同様、キャッシュ制御部を有してもよい。図2のLocal−CPUも、Home−CPUと同様、自身のメインメモリを管理してもよい。図1図20006リクエスト元であるLocal−CPUのキャッシュ制御部は、ムーブアウトされるデータが変更済みであれば、Home−CPUに対してデータ付きのライトバック(WRBK)のリクエストパケットを送出する。ムーブアウトされるデータが変更されていなければ、Local−CPUのキャッシュ制御部は、Home−CPUに対してデータ無しのフラッシュバック(FLBK)のリクエストパケットを送出する。0007図1のように、Home−CPUは、ライトバック(WRBK)あるいはフラッシュバック(FLBK)のリクエストパケット(WRBK/FLBK)を受けると、プロトコルチェックを行い、管理情報を更新し、ライトバック(WRBK)あるいはフラッシュバック(FLBK)のコンプリート(CPLT)パケット(WRBK/FLBK−CPLT)をLocal−CPUに送出する。図10008図2に、Local−CPUによるWRBK/FLBKの制御を例示する。Access(cc−NUMA)に代表されるマルチプロセッサシステムにおいては、メインメモリとして使用されるDIMM上に、データと付随する形でキャッシュ持ち出し情報(ディレクトリ)が保持される。Home−CPUは、メモリアクセスの際にデータとともにディレクトリを読み出してキャッシュ一貫性(キャッシュコヒーレンシ)をチェックする。このようなキャッシュの制御は、ディレクトリ方式のキャッシュ一貫性制御と呼ばれる。図20009図2の処理では、Local−CPUは、Home−CPUに対して、WRBK/FLBKを発行し、タイマーを起動する(A1)。Local−CPUは、タイマーが閾値に達するまでに、Home−CPUから応答パケット(WRBK/FLBK−CPLT)を受信したか否かを判定する(A2)。A2の判定がYESの場合には、Local−CPUは、WRBK/FLBKの制御を正常終了する。A2の判定がNOの場合には、Local−CPUは、Fatalエラーを検出したことをエラー制御部へ通知する(A3)。ここで、Fatalエラーは動作継続不可能なエラーである。エラー制御部は、例えば、CPUごとに設けられるCPU監視用の専用プロセッサ、あるいはファームウェア等である。エラー制御部は、Fatalエラーが検出された通知を受けると、さらにCPU外部の管理装置にFatalエラーを報告する。図20010図3に、WRBK/FLBKのリクエストパケットを処理するHome−CPUのフローチャートを例示する。この処理では、Home−CPUは、Local−CPUからWRBK/FLBKのリクエストパケット(WRBK/FLBK)を受信する(B1)。Home−CPUは、リクエストパケット(WRBK/FLBK)を受信すると、Home−CPU上やDIMM上に格納している管理情報(ディレクトリ等)に基づくプロトコルチェックを行う(B2)。プロトコルチェックでエラーがない場合には、Home−CPUはリクエストパケット(WRBK/FLBK)に対応する処理を実行する。Home−CPUはライトバックリクエストの場合には、Home−CPUはメインメモリのデータを更新し、管理情報を更新する(B3)。Home−CPUは、リクエストパケット(WRBK/FLBK)に対する処理を完了すると、Local−CPUへ応答パケット(WRBK/FLBK−CPLT)を返す(B4)。プロトコルチェックでエラーがある場合には、Home−CPUはFatalエラーを検出したことをエラー制御部へ通知する(B5)。発明が解決しようとする課題0012ところで、マルチプロセッサシステムにおいて、演算処理装置間の間欠故障等により、送信されたパケットが消失することがあり得る。これをパケットロストと呼ぶ。上記従来の技術では、データを持ち出した演算処理装置がメインメモリを管理する演算処理装置にリクエストパケット(WRBK/FLBK)を送信する際、または、メインメモリを管理する演算処理装置がデータを持ち出した演算処理装置に応答パケット(WRBK/FLBK−CPLT)を送信する際、パケットロストへの対応が十分でなく、下記の問題点がある。(1)メインメモリの管理情報が更新されないため、キャッシュの制御に矛盾が生じ演算処理装置は、動作を継続させることができない。(2)メインメモリのデータを管理する演算処理装置において、メインメモリへライトバックするムーブアウトデータが失われ、演算処理装置がデータ更新に失敗する。このうち、(2)の問題に対しては、故障が固定故障ではなく間欠故障等の場合には、データを持ち出した演算処理装置が再度リクエストパケットを送信するリトライにより解決が図られる。(1)の問題については、対応が十分でない場合がある。0013本発明は、メインメモリを管理する演算処理装置(Home−CPU)とメインメモリのデータを持ち出している演算処理装置(Local−CPU)との間で間欠故障等により、キャッシュの制御に矛盾が生じた場合でも、メインメモリの管理情報を更新し、動作を継続できる可能性を高めることを目的とする。課題を解決するための手段0014本発明の一側面は、以下の情報処理装置によって例示される。本情報処理装置は、主記憶装置を制御する主記憶制御装置を有する第1の演算処理装置と、前記第1の演算処理装置と接続される第2の演算処理装置とを備える。この第1の演算処理装置は前記主記憶装置から前記第2の演算処理装置に持ち出されたデータの変更の有無を含む管理状態を示す管理情報を保持する管理情報格納部と、前記管理情報の更新を要求する更新要求を受信する受信部と、前記管理情報が示す管理状態と前記受信した更新要求とが所定の関係を満たすか否かを判定するチェック部と、前記更新要求にリトライを示す情報が付与され、前記受信した更新要求が前記管理状態を第1の状態から第2の状態に更新し、かつ、前記管理情報が既に第2の状態に更新済みを表す場合、前記第2の演算処理装置に前記更新要求が正常に終了したことを示す完了応答を送信する応答パケット送信部と、を有する。発明の効果0015本演算処理装置によれば、メインメモリを管理する演算処理装置とメインメモリのデータを持ち出している演算処理装置との間で間欠故障等により、キャッシュの制御に矛盾が生じた場合でも、メインメモリの管理情報を更新し、動作を継続できる可能性を高めることができる。図面の簡単な説明0016マルチプロセッサシステムにおけるキャッシュの制御を例示する図である。Local−CPUによるWRBK/FLBKの制御を例示する図である。リクエストパケット(WRBK/FLBK)を処理するHome−CPUの処理を例示するフローチャートである。Local-CPUからHome-CPUへの経路でのパケットロストとリトライによる解決方法を例示する図である。Home-CPUからLocal-CPUへの経路でのパケットロストとリトライ時の課題を例示する図である。比較例のHome-CPUでの処理のフローチャートである。リクエストパケット処理時のエラーの有無のケースおよびエラーの分類を例示する図である。情報処理装置の構成を例示する図である。WRBK/FLBKロストケースの処理を例示する図である。WRBK/FLBK−CPLTロストケースの処理を例示する図である。Local−CPUとHome−CPUを含む情報処理装置の処理のフローチャートを例示する図である。Local−CPUの処理のフローチャートを例示する図である。Home−CPUの処理のフローチャートを例示する図である。エラーの分類を例示する図である。Local−CPUの処理を実行する制御回路を例示する図である。Home−CPUの処理を実行する制御回路を例示する図である。実施例0017以下、図面を参照して一実施形態に係る情報処理装置について説明する。0018[比較例]図4から図7により、比較例に係るコンピュータについて説明する。比較例では、コンピュータは、Local−CPUと、Home−CPUを有する。図4の例では、Home−CPUは、ムーブアウト対象のデータが格納されたメインメモリを管理するCPUである。Local−CPUは、Home−CPUが管理するメインメモリから、データを持ち出し、Local−CPU内のキャッシュに保持していると仮定する。図4以下では、省略されているが、Home−CPUもLocal−CPUと同様、キャッシュ制御部を有する。図4以下のLocal−CPUも、Home−CPUと同様、自身のメインメモリを管理する。従来の構成では、Local−CPUがリクエストパケット(WRBK/FLBK)をHome−CPUに送信する際、または、Home−CPUが応答パケット(WRBK/FLBK−CPLT)をLocal−CPUに送信する際、パケットロストへの対応が十分でない。パケットロストへの改善として、送信したパケットを単純にもう一度送信(リトライ)することが考えられる。WRBK/FLBKは、ライトバックまたはフラッシュバックを表す。図4図70019図4は、Local-CPUからHome-CPUへの経路でのパケットロスト(以下、WRBK/FLBKロストケース)とリトライによる解決方法を例示する図である。図4では、Local-CPUのキャッシュ制御部は、WRBKのリクエストパケットまたはFLBKのリクエストパケットをHome−CPUに送信する。図4では、Local-CPUからHome-CPUに至る経路上で、WRBK/FLBKのリクエストパケットが消失、すなわち、パケットロストが発生している。図40020図4の例では、Home-CPUには、リクエストパケットが届かないため、Home-CPUは何も実行しない。Home-CPUは、管理情報を用いたプロコトルチェック等の処理、あるいは、プロコトルチェックの結果に基づく応答パケットの送信等を実行しない。Home-CPUからは応答パケットが送信されないため、Local-CPUでは、タイムアウトが発生する。図40021比較例のコンピュータでは、リクエストパケットに対するタイムアウトが発生すると、Local-CPUのキャッシュ制御部はリトライを実行する。御部は、再度WRBK/FLBKのリクエストパケットにリトライフラグを設定して送信する。リトライフラグは、例えば、初回発行時:0、リトライ発行時:1等のような1bitの情報である。0022仮に、タイムアウトを発生させたリクエストパケット(WRBK/FLBK)のパケットロストの原因が間欠的なもの、あるいは、一時的なものである場合には、リトライにより、リクエストパケット(WRBK/FLBK)がHome-CPUに到達する。0023すると、Home-CPUは、リクエストパケット(WRBK/FLBK)を受け取る。Home-CPUは、Local-CPUにおいてタイムアウトが発生した時のリクエストパケット(WRBK/FLBK)を受け取っていないため、リトライによるリクエストパケット(WRBK/FLBK)にしたがって、プロトコルチェックを行い、メインメモリの更新あるいは管理情報の更新等の処理を実行すればよい。Home-CPUは、処理完了後に、応答パケット(WRBK/FLBK−CPLT)をLocal−CPUに送信すればよい。0024図5は、Home-CPUからLocal-CPUへの経路でのパケットロスト(以下、WRBK/FLBK-CPLTロストケース)とリトライ時の課題を例示する図である。Home-CPUからLocal-CPUに至る経路上で、応答パケット(WRBK/FLBK−CPLT)が消失し、応答パケットのパケットロストが発生している。図5の場合も、図4の場合と同様、Local-CPUでは、タイムアウトが発生する。図4図50025応答パケットが消失した場合にも、Local-CPUのキャッシュ制御部は、再度リクエストパケット(WRBK/FLBK)を送信する。Home-CPUでは、リクエストパケット(WRBK/FLBK)に対する処理がすでに完了している。このため、Home-CPUは、リトライによるリクエストパケット(WRBK/FLBK)を受け取っても、リクエストパケット(WRBK/FLBK)と現在の管理情報との間に矛盾があり、プロトコルチェックを正常に実行できない。来の正常な状態に戻す上で、課題がある。0026図6に、比較例のHome-CPUでの処理のフローチャートを例示する。この処理では、Home-CPUは、Local-CPUからリトライではない、通常処理のリクエストパケット(WRBK/FLBK)を受信する(C1)。理情報に基づくプロトコルチェックでエラーの有無を判定する(C2)。C2の判定は、従来から行われている、プロトコルチェックであり、例えば、Modified、Exclusive、Shared、Invalid(MESI)プロトコルによるチェックをいう。MESIプロトコルによるチェックでは、例えば、Home-CPUで、Local-CPUがキャッシュにShared(S)で持ち出したデータに対して、WRBKによるライトバック要求を受信するとエラーと判断できる。本実施形態において、従来から行われているプロトコルチェックは、MESIプロトコルによるチェックに限定されない。従来のプロトコルチェックは、Exclusive状態を持たないキャッシュプロトコルであるMSIプロトコルによるチェックでもよい。従来のプロトコルチェックは、MSIプロトコルにOwned状態を加えたMOSIプロトコルによるチェックでもよい。従来のプロトコルチェックは、MESIプロトコルにOwned状態を加えたMOESIプロトコルによるチェックでもよい。本実施形態においては、以上例示したようなC2の判定で用いられるプロトコルチェックを従来のプロトコルチェックと呼ぶ。図60027C2の判定で、プロトコルチェックにエラーがない場合、Home-CPUは、リトライフラグの値に依存せず、WRBK/FLBKにしたがって処理を実行すればよい(C3)。Home-CPUは、WRBKのリクエストパケットに対して、メインメモリのデータと、管理情報を更新する。Home-CPUは、FLBKリクエストパケットに対して、メインメモリのデータを更新しないで、管理情報を更新する。Home-CPUは、Local-CPUへ応答パケット(WRBK/FLBK-CPLT)を送信する(C4)。C4では、Home-CPUは、受信したリクエストパケット(WRBK/FLBK)のリトライフラグ(0、1)と同じ値のリトライフラグを付与して、応答パケット(WRBK/FLBK-CPLT)を送信する。定でプロトコルエラーがない場合には、リトライフラグの設定いかんによらず、処理は正常終了となる。0028一方、C2の判定で、プロトコルチェックにエラーがある場合、Home-CPUは、リクエストパケット(WRBK/FLBK)のリトライフラグが0か否かを判定する(C5)。C5の判定でリトライフラグが0、すなわち、リクエストパケットがリトライではない場合には、Home-CPUは、Fatalエラーを検出したことをエラー制御部へ通知する(C6)。エラー制御部はFatalエラーに対応する報告を例えば、管理コンピュータに送信する。したがって、C5でリトライフラグが0ある場合には、処理はFatalエラーの送信という結果となる。C5の判定で、リトライフラグが1、すなわち、リクエストパケットがリトライである場合には、Home-CPUは、Fatalエラーか否かの判定ができない(C7)。本実施の形態において、Fatalエラーではないエラーとは、救済可能なエラーであり、擬似エラーと呼ぶ。仮に、Home-CPUは、Fatalエラーを検知できれば、C6の処理に進めればよい。Home-CPUは、擬似エラーを検知できれば、リクエストパケット(WRBK/FLBK)に対応する処理を実行し(C8)、Local-CPUへ応答パケット(WRBK/FLBK-CPLT)を送信すればよい。0029図7は、リクエストパケット処理時のエラーの有無のケースおよびエラーの分類を例示する図である。従来のMESIプロトコル等にしたがったプロトコルチェックでエラーがない場合には、比較例のLocal-CPUとHome-CPUとの間のリクエストパケットにおいても、エラー無しとなる。エラー無しであっても、比較例のコンピュータでは、リトライフラグ=0の場合(リトライでない場合)と、リトライフラグ=1の場合(リトライである場合)があり得る。リクエストパケット(WRBK/FLBK)がLocal-CPUからHome-CPUに至る経路でパケットロストとなると、リクエストパケットはHome-CPUには到達しない。したがって、Local-CPUがリトライでリクエストパケット(WRBK/FLBK)を再度送信し、リクエストパケットがHome-CPUに到達すると、リクエストパケットは、Home-CPUにとっては、リトライフラグが設定されている点を除外して、正常なパケットである。したがって、従来のプロトコルチェックでエラー無しのリクエストパケットは、リトライの有無によらず、正常なものとして処理される。図70030一方、従来のMESI等のプロトコルチェックでエラー有りの場合には、エラーがFatalエラーである場合と、救済可能な擬似エラーの場合があり得る。従来のMESI等のプロトコルチェックでエラー有りの場合とは、例えば、現在、Home-CPUに保持されているMESIの情報に対して、整合性のとれないリクエストパケットをHome-CPUが受信した場合である。以下、擬似エラーとFatalエラーを個別に検討する。(A)応答パケットのロストによるエラー(擬似エラー)整合性のとれないリクエストパケットが発生する例としては、すでに、Home-CPUにおいて処理済みのリクエストパケットに対する応答パケット(WRBK/FLBK-CPLT)がHome-CPUからLocal-CPU至る経路でパケットロストとなった場合が想定できる。0031このような応答パケットのロストでは、Home-CPUにおいてリクエストパケットに対する処理が正常に終了しているにも拘わらず、応答パケットがLocal-CPUに到達していない。このため、Local-CPUは、Home-CPUでの状態が不明なまま、リトライ処理を実行することになる。この場合には、Home-CPUでのリクエストパケットの処理が正常に終了したにも拘わらず、次のリクエストパケットの処理で、リクエストパケットと管理情報との矛盾が生じることがある。擬似エラーと呼ぶことができる。0032しかし、比較例のコンピュータのように、単に、リトライフラグを設定して、Local-CPUがリクエストパケットを送信しただけでは、リクエストパケットと管理情報との矛盾は解消できない。理情報の不整合は解消できない。(B)応答パケットのロスト以外の原因によるエラー(Fatalエラー)応答パケットのロスト以外にも様々な原因でプロトコルチェックのエラーは発生し得る。I(Invalid)、S(Shared)等の状態でキャッシュに持ち出しているLocal-CPUが、Home−CPUに対してライトバック(WRBK)パケットを送信した場合である。このような応答パケットのロスト以外の原因によるエラーの場合には、比較例のHome-CPUは、Fatalエラーを検出する。0033しかしながら、比較例のHome-CPUは、上記(A)応答パケットのロストによるエラーと(B)応答パケットのロスト以外の原因によるエラーを区別することができない。0034[実施形態]以下、実施形態に係る情報処理装置について説明する。本実施形態では、Local−CPUのキャッシュ制御部がリクエストパケット(WRBK/FLBK)にリトライフラグ(1bit)を設定し、Home-CPUに発行するとともにタイマーを起動する。行されたリクエストパケットへの応答パケット(WRBK/FLBK−CPLT)の受信前にタイマーが規定値を超えた場合、Local−CPUはパケットロストが発生したと判断する。Local−CPUは、パケットロストの原因がHome-CPUの固定故障、あるいは経路の固定故障等であるか否かを判定する。Local−CPUは、パケットロストが固定故障によるものではなく、一時的な間欠故障等によるものであると判断した場合には、リクエストパケットを再発行する。リクエストパケットの再発行は、リトライとも呼ばれる。パケットロストが固定故障によるものであるとLocal−CPUが判断した場合、リトライは行わない。固定故障時は、リトライしても再び失敗するからである。0035リトライによるリクエストパケット(WRBK/FLBK)が送信される場合、Home−CPUのリクエストパケット(WRBK/FLBK)に対応する処理が既に実行済みのケースと未実行のケースがある。Home−CPUは、Local−CPUから受信したリクエストパケット(WRBK/FLBK)と管理情報とのプロトコルチェックにより、上記処理が実行済みか否かを区別して、実行済みの場合にはリクエストパケット(WRBK/FLBK)に対応する処理を実行せず、未実行の場合はリクエストパケット(WRBK/FLBK)に対応する処理を実行する。Home−CPUは第1の演算処理装置の一例である。Local−CPUは、第2の演算処理装置の一例である。0036図8に、本実施形態に係る情報処理装置の構成を例示する。本情報処理装置は、マルチプロセッサシステムということができる。本情報処理装置は、複数のCPU1と、複数のメインメモリ2を有する。CPU1が演算処理装置の一例である。複数のCPU1と、複数のメインメモリ2は、個別には、CPU1−0、1−1、...、1−n、メインメモリ2−0、2−1、...、2−n等のように呼ぶことにする。Module(DIMM)を含む。CPU1間は、クロスバLSI等のネットワーク、インターコネクトで接続される。図8では、複数のCPU1は直列的に接続されているが、CPU1間のトポロジーは線状に限定される訳ではない。トポロジーとしては、バス、メッシュ、トーラス等様々なものが適用可能である。CPU1−0、1−1、...、1−nのいずれか1つが第1の演算処理装置、第2の演算処理装置の一例である。CPU1−1は、第1の演算処理装置と接続される第2の演算処理装置の一例である。メインメモリ2−1は、主記憶装置の一例である。図80037各CPU1は、コア11、キャッシュ12、キャッシュ制御部13、メモリ制御部14を有する。コア11、キャッシュ12、キャッシュ制御部13、メモリ制御部14は、個別には、コア11−0、11−1、...、11−n、キャッシュ12−0、12−1、...、12−n、キャッシュ制御部13−0、13−1、...、13−n、メモリ制御部14−0、14−1、...、14−n等のように呼ぶことにする。コア11またはCPU1は、プロセッサ、演算処理装置とも呼ばれる。0038コア11は、CPU1の制御、データ処理を実行する。キャッシュ12は、メインメモリ2上のデータを一時的に格納する。キャッシュ制御部13は、キャッシュ12のデータを管理し、他のCPU1とデータを授受する。メモリ制御部14は、メインメモリ2にアクセスし、メインメモリ2との間でデータの読み書きを実行する。以下の実施形態では、CPU1−0、1−1、...、1−nのいずれかがLocal−CPUとHome−CPUになり得る。メモリ制御部14−1は、主記憶制御装置の一例である。0039図9に、WRBK/FLBKロストケースの処理を例示する。WRBK/FLBKロストケースは、Local−CPUからHome−CPUに至る経路でパケットロストが発生した場合である。WRBK/FLBKロストケースでは、Home−CPUはリクエストパケット(WRBK/FLBK)を受信していないため、比較例の場合(図4)の場合と同様、何も実行しない。したがって、Local−CPUではタイムアウトが発生する。すると、Local−CPUはパケットロストが発生したと判断する。Local−CPUはパケットロストの原因が固定故障か、一時的な間欠故障かを判定する。Local−CPUはパケットロストの原因が一時的な間欠故障であると判断した場合には、リトライを実行する。Home−CPUはリトライによるリクエストパケット(WRBK/FLBK)を受信すると、通常ケースと同じ動作を実行し、Local−CPUへ応答パケット(WRBK/FLBK−CPLT)を送信する。図4図90040図10に、WRBK/FLBK−CPLTロストケースの処理を例示する。WRBK/FLBK−CPLTロストケースは、Home−CPUからLocal−CPUに至る経路でパケットロストが発生した場合である。WRBK/FLBK−CPLTロストケースでは、Home−CPUはリクエストパケット(WRBK/FLBK)を受信しているため、通常ケースと同じ動作を正常に実行済みである。図100041本実施形態では、リクエストパケット(WRBK/FLBK)に対する処理を実行済みであるにも拘わらず、Home−CPUがリトライパケットを受信すると、Home−CPUは、通常ケースと同じ動作を実行しない。Home−CPUはリクエストパケットに対応する処理を実行せずに、Local−CPUへ応答パケット(WRBK/FLBK−CPLT)を送信する。0042図11に、Local−CPUとHome−CPUを含む情報処理装置の処理のフローチャートを例示する。以下、図11、図12、図13は、情報処理装置の処理の手順を例示するが、本実施形態の情報処理装置において、各処理は、基本的には専用のハードウェア回路(図15、図16参照)が実行する。図11、図12、図13の一部をプロセッサがコンピュータプログラムにしたがって実行してもよい。図11図12図13図15図160043図11の処理では、Local−CPUは、リトライフラグを設定し、Home−CPUに対して、リクエストパケット(WRBK/FLBK)を発行する。Local−CPUは、タイマーを起動する(L0)。第1回目のリクエストパケット(WRBK/FLBK)発行時には、Local−CPUは、リトライフラグを0に設定する。第1回目のリクエストパケット(WRBK/FLBK)においてタイムアウトが発生した後の次のリクエストパケット(WRBK/FLBK)発行時には、Local−CPUは、リトライフラグを1に設定するHome−CPUは、Local−CPUからリクエストパケット(WRBK/FLBK)を受信する(H1)。Home−CPUは、Home−CPUの管理情報に基づいてLocal−CPUから受信したリクエストパケット(WRBK/FLBK)のプロトコルチェックを行う(H2)。H2のプロトコルチェックとは、従来のプロトコルチェックであり、例えば、MESIプロトコルによるチェック、MSIプロトコルによるチェック、MOSIプロトコルによるチェック、MOESIプロトコルによるチェック等である。図110044H2のプロトコルチェックでエラー無しの場合、Home−CPUは、リクエストパケット(WRBK/FLBK)に対応する処理を実行する(H3)。Home−CPUは、WRBKリクエストに対してメインメモリ上のデータと管理情報を更新する。Home−CPUは、FLBKリクエストに対して管理情報を更新する。前記受信した更新要求とが所定の基準により整合する関係にあることの一例である。H3の処理は、主記憶装置のデータ書き換え指示を含むときに、前記主記憶装置のデータを書き換えるデータ更新部の処理の一例である。0045そして、Home−CPUは、Local−CPUへ応答パケット(WRBK/FLBK−CPLT)を送信する(H4)。応答パケットのリトライフラグには、受信したリクエストパケット(WRBK/FLBK)と同じ値が設定される。Home−CPUは、処理を正常終了する。H4の処理は、第2の演算処理装置に前記更新要求が正常に終了したことを示す完了応答を送信することの一例である。H4の処理は、応答パケット送信部が前記更新要求にリトライを示す情報が付与されているか否かに拘わらず、前記第2の演算処理装置に前記更新要求が正常に終了したことを示す完了応答を送信することの一例でもある。0046一方、H2のプロトコルチェックでエラー有りの場合で(H2でNO)、かつ、Local−CPUから受信したリクエストパケット(WRBK/FLBK)内のリトライフラグが0の場合には(H5でYES)、Home−CPUは、致命的なプロトコル矛盾が生じたと判断し、Fatalエラーをエラー制御部へ通知し、処理を異常終了する。ここで、Fatalエラーは動作継続不可能なエラーである。前記受信した更新要求とが前記所定の基準により整合する関係にないことの一例である。H5でYESの場合が、受信した更新要求にリトライを示す情報が付与されていない場合の一例である。0047さらに、H2のプロトコルチェックでエラー有りの場合で(H2でNO)、かつ、Local−CPUから受信したリクエストパケット(WRBK/FLBK)内のリトライフラグが1の場合には(H5でNO)、FatalエラーとWRBK/FLBK−CPLTロストケースによる擬似エラーの2通りが考えられる。H5でNOの場合は、更新要求にリトライを示す情報が付与されていることの一例である。0048本実施形態では、Home−CPUは、初回パケット受信時のリクエストパケット(WRBK/FLBK)に対する処理が処理済みか否かを判定する(H6)。初回パケットとは、現在処理中のリクエストパケット(WRBK/FLBK)が第2回目以降のリクエストパケット(WRBK/FLBK)受信であった場合の前回以前に受信済みの同一リクエストパケット(WRBK/FLBK)をいう。0049H6の判定で処理済みの状態であれば、Home−CPUは、「WRBK/FLBK−CPLTロストケース」であると判断する。Home−CPUは、(a)H2のプロトコルチェックでエラーがある(b)Local−CPUから受信したリクエストパケット(WRBK/FLBK)内のリトライフラグが1である(c)初回パケット受信による処理が完了済みである、という3つの条件が充足されると、検出したエラーは実際には問題がないので無視する。エラーを無視する場合、Home−CPUは何も実行せずに、Local−CPUへ応答パケット(WRBK/FLBK−CPLT)を送信する(H4)。応答パケットのリトライフラグは、受信したWRBK/FLBKと同じ値が設定される。Home−CPUは処理を正常終了とする。ここで、上記(a)(b)(c)の条件が充足される場合のエラーは、疑似エラーと呼ぶことにする。H6の判定で処理済みの状態であることは、受信した更新要求が前記管理状態を第1の状態から第2の状態に更新するものであり、かつ、管理情報がすでに第2の状態に更新済みとなっている場合の一例である。0050一方、H6の処理で初回パケット受信時のリクエストパケットに対する処理が処理済みでない場合(H6でNO)、Home−CPUは、検出したエラーは想定外の事象であると判定する。Home−CPUは、Fatalエラーをエラー制御部へ通知して、処理を異常終了する。異常終了を含むHome−CPUの処理の詳細は図14にしたがって後述する。図140051Local−CPUは、タイマーが閾値に達するまでに、Home−CPUから応答パケット(WRBK/FLBK−CPLT)を受信したか否かを判定する(L3)。Local−CPUは、応答パケット(WRBK/FLBK−CPLT)を受信できなかった場合、エラー処理を実行する(L2)。リトライ可能な場合には、Local−CPUは、制御をL0に戻す。L3の判定で、Local−CPUは、応答パケット(WRBK/FLBK−CPLT)を受信できた場合には、終了処理を実行する(L4)。L2およびL4の処理を含むLocal−CPUの処理の詳細は図12にしたがって後述する。図120052図12に、Local−CPUの処理のフローチャートを例示する。この処理では、Local−CPUは、まず、リクエストパケット(WRBK/FLBK)内のリトライフラグを値0に設定する(L11)。次に、Local−CPUは、Home−CPUに対して、リクエストパケット(WRBK/FLBK)を発行するとともに、タイマーを起動する(L12)。図11で説明したように、Local−CPUは、タイマーが閾値に達するまでに、Home−CPUから応答パケット(WRBK/FLBK−CPLT)を受信したか否かを判定する(L13)。図11図120053Home−CPUから応答パケット(WRBK/FLBK−CPLT)を受信できた場合、Local−CPUは、リクエストパケット(WRBK/FLBK)に設定したリトライフラグと応答パケット(WRBK/FLBK−CPLT)から得られたリトライフラグが一致しているか否かを判定する(L14)。L14の判定で、両方のリトライフラグが一致する場合には、Local−CPUは、処理を正常終了する。L14の判定で、両方のリトライフラグが一致しない場合には、Local−CPUは、Fatalエラーを検出したことをエラー制御部(図15参照)へ通知し、処理を異常終了する(L17)。図150054Home−CPUから応答パケット(WRBK/FLBK−CPLT)を受信していない場合、Local−CPUは、パケットロストの原因を判定する(L15)。(i)パケットロストの原因はHome−CPUの固定故障、経路の固定故障等である、(ii)パケットロストの原因は一時的な間欠故障であって、故障はリトライで復帰可能なものである、という2つを選択的に判断する。0055CPU間経路の断線やCPU故障等、リトライしても解決しないケースがあるので、リトライで復帰可能なケースか否かが判定される。判定方法には様々な方法が考えられるが、例えば、Local−CPUは、下記の条件(1)から(3)のいずれかに該当する時にはリトライを実行すればよい。(1)第1は新規にエラー検出した場合である。(2)第2はリトライ回数をカウントし、閾値に達するまでのエラーの場合である。(3)第3はCPU間経路が冗長化されている場合で、現時点が冗長経路の縮退シーケンス実行時に該当する場合である。縮退シーケンス実行時には、一時的にパケットロストが起きる可能性があるからである。0056リトライか否かに応じて、Home−CPUが動作を変更することを可能にするために、Local−CPUは、リクエストパケット(WRBK/FLBK)にリトライフラグを設定する。Local−CPUは、リクエストパケット(WRBK/FLBK)を第1回目に送信する時には、リトライフラグを0とし、リトライで送信する時にはリトライフラグを1に設定する。0057以上の判断の結果、Local−CPUは、(ii)のように、パケットロストの原因が一時的な間欠故障であると判断した場合には、リトライフラグを1に設定し(L16)、処理をL12に戻す。Local−CPUが、L15の判定で、リトライで復帰可能なケースと判定し、L16の処理を実行することが、リトライを示す情報を設定した次の更新要求を前記第1の演算処理に送信するリトライ処理を所定の限度まで繰り返すことの一例である。L15の判定で、上記(1)から(3)を判定することが、リトライの回数、および前記第1の演算処理装置と第2の演算処理装置との接続状態を含む前記情報処理装置の稼働状態の少なくとも一方により判定することの一例である。上記「縮退シーケンス実行」は、第1の演算処理装置と第2の演算処理装置との接続状態を含む前記情報処理装置の稼働状態の一例である。Local−CPUは、(i)のように、パケットロストの原因が固定故障であると判断した場合には、例えば、Home−CPUが固定故障したことをエラー制御部へ通知し(L18)、処理を異常終了する。0058図13に、Home−CPUの処理のフローチャートを例示する。図13において、H1からH6の処理は、図11のH1からH6と同様であるので、その説明を省略する。H5の判定で、リクエストパケット(WRBK/FLBK)に設定されたリトライフラグが0の場合には、Home−CPUは、Fatalエラーを検出したことをエラー制御部(図16参照)へ通知し(H7)、処理を異常終了する。リトライフラグが0の場合は、受信した更新要求にリトライを示す情報が付与されていない場合の一例である。H7の処理は、所定の通知先にエラーを通知することの一例である。図11図13図160059また、H2のプロトコルチェックでエラー有りの場合で(H2でNO)、かつ、Local−CPUから受信したリクエストパケット(WRBK/FLBK)内のリトライフラグが1の場合で(H5でNO)には、Home−CPUはH6の判定を実行する。H6の判定で初回パケット受信時のリクエストパケット(WRBK/FLBK)に対する処理が処理済みでない場合(H6でNO)、図11で説明したように、Home−CPUは、検出したエラーは想定外の事象であると判定する。Home−CPUは、Fatalエラーをエラー制御部へ通知して(H7)、処理を異常終了する。H7の処理は、応答パケット送信部が所定の通知先にエラーを通知することの一例である。図110060一方、H6の判定で初回パケット受信時のリクエストパケットに対する処理が処理済みである場合(H6でYES)、Home−CPUは、リクエストパケット(WRBK/FLBK)に対応する処理の実行をスキップする。Home−CPUは、メインメモリ上のデータの更新、管理情報の更新等をスキップする(H8)。Home−CPUは、応答パケット(WRBK/FLBK−CPLT)のリトライフラグに受信したリクエストパケット(WRBK/FLBK)と同じ値を設定し、Local−CPUに送信し(H9)、処理を正常終了する。H9の処理は、第2の演算処理装置に前記更新要求が正常に終了したことを示す完了応答を送信することの一例である。0061図14に、本実施形態のエラーの分類を例示する。図14では、図7の分類において「従来のプロトコルチェックでエラー有り」とされていた分類がさらに2分類されている。図14の分類では、新たに、「パケット受信では起こり得ない状態」が追加されている。ここで、「パケット受信では起こり得ない状態」とは、上記「(2)応答パケットのロスト以外の原因によるエラー(Fatalエラー)」で例示した状態である。このようなFatalエラーは、リトライフラグの値(0、1)のいずれにおいても発生し得る。このようなFatalエラーは、Home−CPUが初回のリクエストパケットを受信した場合、リトライによる再度のリクエストパケットを受信した場合の両方で生じ得る。WRBKロストケースの場合には、Home−CPUは初回のリクエストパケットをリトライフラグ=1の設定で受信することが有り得る。図14図70062また、「従来のプロトコルチェックでエラー有り」とされていた分類で、「パケット受信では起こりえない状態」以外の分類では、さらに2つの場合を含む。第1はリトライフラグ:0のときのFatalエラーである。第2はリトライフラグ:1のときの擬似エラーである。リトライフラグ:1のときの擬似エラーは、応答パケット(WRBK/FLBK−CPLT)ロストケースで発生する。本実施形態のHome−CPUは、リトライフラグ:1のときの擬似エラーを検出できる。MESIプロトコル等の従来のプロトコルチェックでエラー有りの場合、本実施形態のHome−CPUは、図13のH6の判定で例示したように、リトライフラグ=1の場合に、Fatalエラーと疑似エラー(WRBK/FLBK−CPLTロストケース)を区別できる。図130063図15に、Local−CPUの処理を実行する制御回路を例示する。図16に、Home−CPUの処理を実行する制御回路を例示する。図8で説明したように、CPU1は、Local−CPUにも、Home−CPUにもなり得るため、各CPU1は、図15と図16の両方の回路を有してよい。図15は、CPU1の処理回路のうち、Local−CPUの処理を実行する制御回路の部分を例示したものである。図16は、CPU1の処理回路のうち、Home−CPUの処理を実行する制御回路の部分を例示したものである。図15図16図80064図15では、Local−CPUのキャッシュ制御部13とエラー制御部3—Lが例示されている。キャッシュ制御部13は、制御情報格納部131、データ格納部132、リクエストパケット送信部133、応答パケット受信部134、タイムアウト検出部135、プロトコルチェック部136、リトライ可否判定部137、固定故障通知部138を有する。図150065制御情報格納部131は、コア11からの指令にしたがったキャッシュ制御を実行するための制御情報を格納する。データ格納部132は、例えばメインメモリ2へ書き戻すキャッシュのデータを格納する。リクエストパケット送信部133は、制御情報格納部131からリトライフラグを含む制御情報を取り出す。リクエストパケット送信部133は、Home−CPUに送信するリクエストパケットがWRBK等のHome−CPUのメインメモリ2へのデータを伴うリクエストパケットの場合には、データ格納部132からデータを取り出す。リクエストパケット送信部133は、リトライフラグを含むリクエストパケット(WRBK/FLBK)を生成し、Home−CPUへ送信する。0066応答パケット受信部134は、リクエストパケット(WRBK/FLBK)を受信したHome−CPUが生成する応答パケット(WRBK/FLBK−CPLT)を受信する。0067タイムアウト検出部135は、リクエストパケット(WRBK/FLBK)を送信すると、タイマーを起動し、応答パケット(WRBK/FLBK−CPLT)を受信するとタイマーをクリアする。応答パケット(WRBK/FLBK−CPLT)受信前にタイマーが設定されている閾値に達すると、タイムアウト検出部135は、タイムアウトを検出する。0068プロトコルチェック部136は、Home−CPUから受信した応答パケット(WRBK/FLBK−CPLT)のリトライフラグと制御情報格納部131のリトライフラグを比較してプロトコルチェックを行う。プロトコルチェックの結果、2つのリトライフラグが一致する場合には、プロトコルチェック部136は、エラー無し、と判定する。2つのリトライフラグが不一致の場合には、プロトコルチェック部136は、Fatalエラーと判定し、Fatalエラーをエラー制御部3−Lへ通知する。プロトコルチェック部136は、エラー制御部3−Lの所定のレジスタへエラービットをセットする。0069リトライ可否判定部137はタイムアウト検出時、リトライ可否判定情報を参照する。リトライ可否判定情報とは、例えば、CPU毎の固定故障を示すレジスタ、CPU間で故障が発生したことを示す外部からの通知信号等のことである。宛先となるHome−CPUの固定故障あるいは経路の固定故障のためリトライ不可能と判定すると、リトライ可否判定部137は、宛先となるHome−CPUが固定故障したことを固定故障通知部138に伝達する。リトライ可否判定部137はリトライ可能と判定すると、制御情報格納部にリトライフラグをセットし、パケット再発行制御を開始する。固定故障通知部138は、リトライ不可能の場合、Home−CPUが固定故障したものと判定し、Home−CPUが固定故障したことをエラー制御部3−Lへ通知する。0070エラー制御部3−Lは、キャッシュ制御部13を含むLocal−CPU内全体でハードウェアが検出したエラーを収集し、エラー制御を行う。エラー制御部3—Lは、複数のCPU1を含む情報処理装置を管理する管理装置にエラーの発生、エラーの発生箇所、エラーの種別、エラーの原因等を通知する。0071図16では、Home−CPUのメモリ制御部14とエラー制御部3—Hが例示されている。メモリ制御部14は、リクエストパケット受信部141、管理情報格納部142、プロトコルチェック部143、管理情報更新部144、メインメモリデータ更新部145、および応答パケット送信部146を有する。図160072リクエストパケット受信部141は、Local−CPUが送信したリクエストパケット(WRBK/FLBK)を受信する。リクエストパケット受信部141は、管理情報の更新を要求する更新要求を受信する受信部の一例である。管理情報格納部142は、メインメモリ2のデータの持ち出しに関する管理情報を格納する。管理情報格納部142は、第2の演算処理装置に持ち出されたデータの変更の有無を含む管理状態を示す管理情報を保持する管理情報格納部の一例である。プロトコルチェック部143は、Local−CPUから受信したリクエストパケット(WRBK/FLBK)と管理情報格納部142の管理情報を比較してプロトコルチェックを行う。プロトコルチェック部143は、プロトコルチェックにより、Fatalエラー、リトライパケットにおける疑似エラー、エラー無し、のいずれかを判定する。プロトコルチェック部143は、管理情報が示す管理状態と前記受信した更新要求とが所定の関係を満たすか否かを判定するチェック部の一例である。0073管理情報更新部144は、リクエストパケット(WRBK/FLBK)がプロトコルチェック部143でエラー無しの場合、管理情報を更新する。メインメモリデータ更新部145は、データ付きのリクエストパケット(WRBK)がプロトコルチェック部143でエラー無しの場合、メインメモリ上のデータを更新する。管理情報更新部144は、「所定の基準により整合する関係にある前記更新要求が前記主記憶装置のデータ書き換え指示(WRBK)を含むときに、前記主記憶装置のデータを書き換えるデータ更新部」の一例である。応答パケット送信部146は、リクエストパケット(WRBK/FLBK)がプロトコルチェック部143でエラー無し、またはリトライパケットでの疑似エラーの場合、リトライフラグを含む応答パケット(WRBK/FLBK−CPLT)を生成し、Local−CPUへ送信する。応答パケット送信部146は、第2の演算処理装置に前記更新要求が正常に終了したことを示す完了応答を送信する応答パケット送信部の一例である。0074エラー制御部3−Hは、メモリ制御部14を含むHome−CPU内全体でハードウェアが検出したエラーを収集し、エラー制御を行う。エラー制御部3−Hの処理は、図14のエラー制御部3−Lと同様である。図140075なお、図8に例示のように、複数のCPU1間には、クロスバLSI等のインターコネクトが設けられている。Local−CPUとHome−CPUとはインターコネクトで接続することが想定されている。この場合に、Local−CPUとHome−CPUとは、別の筐体内に実装されてもよいし、同一の筐体に実装されてもよい。Local−CPUとHome−CPUとが、別の筐体内に実装された場合で、同一の筐体に実装された場合にも、図15、図16の構成により、情報処理装置は、本実施形態によるプロトコルチェックおよび疑似エラーの検出を実行できる。図15図16図80076以上のような機構とすることで、本情報処理装置は、応答パケット(WRBK/FLBK−CPLT)ロストケースにおいても、管理情報の制御矛盾やデータ消失を生じさせる可能性を低減し、疑似エラーを検出できる。Local−CPUのキャッシュ12に持ち出されたデータのメインメモリへの書き戻し制御(WRBK/FLBK)において、本情報処理装置は、CPU間の間欠故障等によりリクエストパケットを正しく転送できなかった場合に、制御矛盾やデータ消失を生じさせることなく正常動作に復帰する可能性を高めることができる。0077また、本情報処理装置は、図11または図13のH2の判定において、管理情報に基づく従来のプロトコルチェックでエラーがない場合には、リトライフラグの示す状態によらず、正常と判断することで、WRBK/FLBKロストケースにおいて、Home−CPUは、処理を正常終了することができる(図11のH4、図13のH9)。図11図130078また、本情報処理装置は、図11または図13のH2の判定において、管理情報に基づく従来のプロトコルチェックでエラーがあり、かつ、リトライフラグがリトライでないことを示す場合には、Fatalエラーが発生したと判定できる。図11図130079また、本情報処理装置は、図11または図13のH2の判定において、管理情報に基づく従来のプロトコルチェックでエラーがあり、かつ、リトライフラグがリトライを示す場合で、初回のパケット受信による処理が処理済みでない場合には(H6でNO)、Fatalエラーが発生したと判定できる。図11図130080また、本情報処理装置で、Local−CPUは、図12のL15のように、パケットロストの原因を判定することで、適正にリトライを実施できる。Local−CPUは、リトライ処理を所定の限度まで繰り返すことができる。図120081また、本情報処理装置のLocal−CPUは、図12のL15のように、新規にエラー検出時、リトライ回数が閾値に達するまでの間、あるいは、CPU間経路が冗長化されている等が判断できた場合には、適正にリトライを実施できる。応答パケット送信部ページトップへこの技術を出願した法人この情報を共有FacebookTwitterGoogle+LinkedInこの技術を発明した人物この情報を共有FacebookTwitterGoogle+LinkedInページトップへ関連する挑戦したい社会課題この情報を共有FacebookTwitterGoogle+LinkedInサイバー攻撃のない社会を実現する5G通信技術、IoTサービスの普及に伴い「サイバー攻撃のない社会」はこれまで以上に重要になります。イノベーションを導く多くの企業が膨大な労力と費用をかけて新たな市場や事業を生み出そうとしている中「イノベーション」にかかわるデータのニーズはかつてないほどの高まりを見せいます。