(57)【要約】【課題】  アクセス要求競合試験を行うためには、複数のノードから発行されたアクセス要求が競合試験対象装置において競合状態となることが必要であるが、複数のノードと競合試験対象装置間の配線遅延等によって競合状態を生じさせることが困難な場合がある。【解決手段】  ２つのノードから発行された複数のアクセス要求が競合試験対象装置に到達する時刻に相違がある場合であっても、２つのノードからそれぞれ発行される複数のアクセス要求が交互に競合試験対象装置に到達するよう、アクセス要求が競合試験対象装置に到達する時刻を設定することにより、配線遅延等に起因する到達時刻の大凡の相違を検出し、到達時刻の相違を抑制することができる。【選択図】  図１３
2015041282.tif 000002
【特許請求の範囲】
【請求項１】
複数の第１アクセス要求を発行する第１ノードと、
複数の第２アクセス要求を発行する第２ノードと、
メモリを有し、前記第１ノード及び前記第２ノードに接続され、前記複数の第１アクセス要求及び前記複数の第２アクセス要求を受信する第３ノードと、
前記複数の第１アクセス要求及び前記複数の第２アクセス要求に対する前記メモリからの読出しデータに基づき、前記複数の第１アクセス要求と前記複数の第２アクセス要求が交互に前記第３ノードに到達するよう、前記複数の第１アクセス要求が前記第３ノードへ到達する時刻を設定する到達時刻調整部と
を有することを特徴とする情報処理装置。
【請求項２】
前記第１アクセス要求は、前記メモリから読み出したデータが第１論理値である場合は第２論理値を前記メモリに書込む要求であり、前記第２アクセス要求は、前記メモリから読み出したデータが前記第２論理値である場合は前記第１論理値を前記メモリに書込む要求であることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記第１ノードは第１プロセッサを含み、前記第２ノードは第２プロセッサを含み、前記第１要求は、前記第１プロセッサが第１アトミック命令を実行することにより発行され、前記第２命令は、前記第２プロセッサが第２アトミック命令を実行することにより発行されることを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記第１ノードは、前記複数の第１アクセス要求の発行間隔を設定する発行間隔調整部を更に有することを特徴とする請求項１乃至３何れか一項に記載の情報処理装置。
【請求項５】
前記第２ノードは、前記発行間隔調整部による前記発行間隔の設定の結果、前記複数の第２アクセス要求に対して読み出された複数の前記読出しデータに、互いに異なる論理値が含まれることを検出して試験終了信号を発行することを特徴とする請求項４に記載の情報処理装置。
【請求項６】
第１ノードが、メモリを有する第３ノードに対して複数の第１アクセス要求を発行する工程と、
第２ノードが前記第３ノードに対して複数の第２アクセス要求を発行する工程と、
複数の第１アクセス要求及び前記複数の第２アクセス要求に対する前記メモリからの読出しデータに基づき、前記複数の第１アクセス要求と前記第２アクセス要求が交互に前記メモリに到達するよう、前記複数の第１アクセス要求が前記メモリへ到達する時刻を設定することを特徴とする試験方法。
【請求項７】
前記第１アクセス要求は、前記メモリから読み出したデータが第１論理値である場合は第２論理値を前記メモリに書込む要求であり、前記第２アクセス要求は、前記メモリから読み出したデータが前記第２論理値である場合は前記第１論理値を前記メモリに書込む要求であることを特徴とする請求項６に記載の試験方法。
【請求項８】
前記第１ノードは第１プロセッサを含み、前記第２ノードは第２プロセッサを含み、前記第１要求は、前記第１プロセッサが第１アトミック命令を実行することにより発行され、前記第２命令は、前記第２プロセッサが第２アトミック命令を実行することにより発行されることを特徴とする請求項６又は７に記載の試験方法。
【請求項９】
前記複数の第１アクセス要求の発行間隔を複数の値に設定して試験を行うことを特徴とする請求項６乃至８何れか一項に記載の試験方法。
【請求項１０】
前記発行間隔を第１の値に設定して試験を行い、前記複数の第２アクセス要求に対して読み出された複数の前記読出しデータに互いに異なる論理値が含まれることを検出して試験を終了させることを特徴とする請求項９に記載の試験方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本願開示は、情報処理装置及び情報処理装置の試験方法に関する。
【背景技術】
【０００２】
プロセッサ、メモリ、及びメモリへのアクセスを制御するメモリ制御部を含むノードが、バス等のインターコネクトを介して複数接続されるサーバ等の情報処理装置において、各ノードに含まれるメモリを他のノードがアクセスする場合、バスアクセス要求の競合やメモリアクセス要求の競合が発生することがある。ここで、アクセス要求の競合とは、バスの調停回路やメモリ制御部において、同時に処理を行うことができない複数のアクセス要求を受信した状態等をいう。このような場合には、例えばメモリ制御部やバスの調停回路がアクセス要求に対する処理のタイミング調整を行ったり、先に受けたアクセス要求に対する処理が完了するまでの期間にビジー信号を出力する技術などが知られている。アクセス要求の競合状態においてメモリ制御部やバスの調停回路が正しく作動しているか否かを検証する試験をアクセス要求競合試験と呼ぶ。
【０００３】
特開平０５−０２０２２２号公報には、バスを介して接続された複数の被調停バス主体装置と被調停バス従属装置を有するシステムにおけるバス競合動作試験において、複数のバス主体装置が行うデータ転送を、試験動作終了指示が加えられるまで繰り返し行うことによってバス競合試験を行う技術が開示されている。また特開２００５−２５８６１７号公報には、プロセッサなどがメモリにアクセスする時間が他の装置との競合のために遅延する時間を計測するメモリ競合時間計測装置が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平０５−０２０２２２号公報
【特許文献２】特開２００５−２５８６１７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
アクセス要求競合試験を行うためには、複数のアクセス要求が、アクセス要求を受けるノード内のメモリ制御部において競合する状態を発生させる必要がある。しかし、アクセス要求を送信する２つのノードが、タイミングを制御してそれぞれアクセス要求を受信側のノードに送ったとしても、アクセス要求が受信側のノードに到達する時刻が相違する場合がある。例えば２つのアクセス要求発信側のノードとアクセス要求受信側のノードとを接続する配線の配線長や寄生抵抗等に起因する伝達速度に差が生じ、アクセス・レイテンシが相違することがある。複数のアクセス要求が受信側のノードに到達する時刻が相違して競合状態が発生しない場合は、アクセス要求競合試験を適切に行うことができない。
【０００６】
本開示は、アクセス要求を発行する複数のノードとアクセス要求を受信するノードとを接続する配線に伝達速度の相違がある場合でも、アクセス要求競合試験を適切に行うことができる手段を提供することを目的とする。
【課題を解決するための手段】
【０００７】
開示の情報処理装置は、第１ノードから発行される複数の第１アクセス要求と第２ノードから発行される複数の第２アクセス要求が交互に第３ノードに到達するように、複数の第１アクセス要求及び複数の第２アクセス要求に対する第３ノードのメモリからの読出しデータに基づき、複数の第１アクセス要求又は複数の第２アクセス要求の第３ノードへの到達時刻を設定する到達時刻調整部を有する。
【発明の効果】
【０００８】
アクセス要求を発行する複数のノードとアクセス要求を受信するノードとを接続する配線の伝達速度に相違があり、複数のアクセス要求の到達時刻が相違する場合であっても、到達時刻の大凡の相違を検出し、到達時刻の相違を抑制することができる。
【図面の簡単な説明】
【０００９】
【図１】実施例の情報処理装置のハ−ドウェア構成を示す図である。
【図２】実施例の第１ノードのプロセッサの機能ブロックを示す図である。
【図３】実施例の第２ノードのプロセッサの機能ブロックを示す図である。
【図４】実施例の第３ノードのプロセッサの機能ブロックを示す図である。
【図５】実施例のアトミック命令に基づくアクセス要求の記述フォ−マットと記述内容を例示する図である。
【図６】実施例のアトミック命令に基づくアクセス要求を受けた際のフローチャートを示す図である。
【図７】実施例の試験プログラムを示す図である。
【図８】実施例のアトミック命令に基づくアクセス要求の内容を示す図である。
【図９】実施例におけるアクセス要求の到達タイミングと、メモリのデータの内容を示す図である。
【図１０】実施例におけるアクセス要求に対して読み出されたデータを示す図である。
【図１１】実施例におけるアクセス要求の到達タイミングと、メモリのデータの内容を示す図である。
【図１２】実施例におけるアクセス要求に対して読み出されたデータを示す図である。
【図１３】実施例におけるアクセス要求の到達タイミングと、メモリのデータの内容を示す図である。
【図１４】実施例におけるアクセス要求に対して読み出されたデータを示す図である。
【図１５】実施例におけるアクセス要求の到達タイミングを示す図である。
【図１６】実施例におけるアクセス要求の到達タイミングを示す図である。
【図１７】実施例におけるアクセス要求の到達タイミングを示す図である。
【図１８】実施例における競合試験対象装置への到達時刻の調整処理を示すフローチャートである。
【図１９】実施例における到達時刻調整値を取得する処理を示すフローチャートである。
【図２０】実施例における到達時刻調整値を用いてアクセス要求競合試験を行う処理を示すフローチャートである。
【発明を実施するための形態】
【００１０】
本実施例で用いるノードへのアクセス要求の一例として、アトミック命令に基づく要求が挙げられる。アトミック命令とは、複数の操作を一体不可分なものとして組み合わせた指令であって、システムの他の部分から見てそれら複数の操作が一つの操作に見えるものをいう。例えば、ノードに含まれるメモリからのデータの読み出し、読出しデータの処理、メモリへのデータの書き込みの一連の動作を一体的に行うもの等がある。
【００１１】
図１は実施例の情報処理装置のハ−ドウェア構成を示す図である。図１において、バス５００に第１ノード１００、第２ノード２００、第３ノード３００及び管理装置４００が接続される。第１ノード１００は、プロセッサ１５０と、メモリ１３０とを有する。メモリ１３０には複数のアトミック命令を含む試験プログラムが格納される。試験プログラムに含まれる複数のアトミック命令がプロセッサ１５０により実行されることにより、複数のアクセス要求がバス５００を経由して第３ノード３００に送られる。第２ノード２００は、プロセッサ２５０と、メモリ２３０とを有する。メモリ２３０には複数のアトミック命令を含む試験プログラムが格納される。試験プログラムに含まれる複数のアトミック命令がプロセッサ２５０により実行されることにより、複数のアクセス要求がバス５００を経由して第３ノード３００に送られる。
【００１２】
第３ノード３００は、プロセッサ３５０と、メモリ３３０とを有する。プロセッサ３５０は、第１ノード１００又は第２ノード２００からメモリ３３０へアクセス要求があった場合、メモリ３３０へのデータの書き込みまたはデータの読み出しの制御を行う。またプロセッサ３５０は、第１ノード１００又は第２ノード２００からアトミック命令に基づくアクセス要求を受けると、そのアクセス要求に対する処理が終わるまでメモリ３３０をロックする。またプロセッサ３５０は、アトミック命令に基づくアクセス要求に対してロックを正しく行うことができない場合にロックエラー信号を出力する。管理装置４００は、プロセッサ４５０と、メモリ４３０とを有し、アクセス要求競合試験の処理を制御する。また管理装置４００は第３ノード３００から出力されたロックエラー信号を受信する。プロセッサ１５０、２５０、３５０、４５０は例えばＣＰＵチップなどの電子回路であり、メモリ１３０、２３０、３３０、４３０は例えばＤＲＡＭチップ等の電子回路である。
【００１３】
本実施例では、第１ノード１００と第２ノード２００とからそれぞれ複数のアトミック命令に基づく複数のアクセス要求を発行し、第３ノード３００がこれらのアクセス要求を受信するものとする。第１ノード１００及び第２ノード２００を競合試験装置と呼び、第３ノード３００を競合試験対象装置と呼ぶ。
【００１４】
本実施例では、第１ノード１００と第３ノード３００とを接続する配線の伝達速度と、第２ノード２００と第３ノード３００とを接続する配線の伝達速度とが相違する場合であっても、アクセス要求が第３ノード３００に到達する時刻の大凡の相違を検出できる。まず第１ノード１００と第２ノード２００から、互いに相反関係にあるアトミック命令に基づくアクセス要求を、それぞれ複数発行する。そして互いに相反関係にある複数のアトミック命令に基づくアクセス要求が、第３ノード３００に交互に到達するよう、第１ノード１００が発行する複数のアクセス要求又は第２ノード２００が発行する複数のアクセス要求の第３ノード３００への到達時刻を調整する。また到達時刻を調整したうえで、第１ノード１００から発行される複数のアクセス要求、または第２ノード２００から発行される複数のアクセス要求の少なくとも一方の発行間隔を調整してアクセス要求競合試験を行う。尚、相反関係の詳細については後述する。
【００１５】
図２は、第１ノード１００のプロセッサ１５０の機能ブロックを示す図である。プロセッサ１５０は、メモリ１３０又は他のノードのメモリ又はバス５００に接続された共通メモリに格納された所定のプログラムによる処理を実行することにより、図２に示す機能ブロックを有するプロセッサとして動作する。プロセッサ１５０は、他のノードとの間でアクセス要求の発行タイミングを合わせる同期部１１１と、各種の判定を行う判定部１１２と、アクセス要求の発行タイミングを調整し、発行したアクセス要求が発行先のノードに到達する時刻を調整する到達時刻調整部１１３と、連続して発行するアクセス要求の発行間隔を調整する発行間隔調整部１１４と、他のノードへの各種の通知を行う通知部１１５と、アクセス要求競合試験において自ノードをマスターノードとするかスレーブノードとするかを設定する設定部１１６と、アクセス要求を発行するアクセス要求発行部１１７と、他のノードからの各種通知や各種データを受信する受信部１１８と、メモリ１３０の制御を行うメモリ制御部１２０と、バス５００との入出力部１４０として機能する。尚、これら全ての機能がプロセッサ１５０にて実現される必要はない。例えばメモリ制御部１２０をプロセッサ１５０とは異なる電子回路で実現してもよい。また入出力部１４０をプロセッサ１５０とは異なる電子回路で実現してもよい。
【００１６】
図３は、第２ノード２００のプロセッサ２５０の機能ブロックを示す図である。プロセッサ２５０は、メモリ２３０又は他のノードのメモリ又はバス５００に接続された共通メモリに格納された所定のプログラムによる処理を実行することにより、図３に示す機能ブロックを有するプロセッサとして動作する。プロセッサ２５０は、他のノードとの間でアクセス要求の発行タイミングを合わせる同期部２１１と、各種の判定を行う判定部２１２と、アクセス要求の発行タイミングを調整し、発行したアクセス要求が発行先のノードに到達する時刻を調整する到達時刻調整部２１３と、連続して発行するアクセス要求の発行間隔を調整する発行間隔調整部２１４と、他のノードへの各種の通知を行う通知部２１５と、アクセス要求競合試験において自ノードをマスターノードとするかスレーブノードとするかを設定する設定部２１６と、アクセス要求を発行するアクセス要求発行部２１７と、他のノードからの各種通知や各種データを受信する受信部２１８と、メモリ２３０の制御を行うメモリ制御部２２０と、バス５００との入出力部２４０として機能する。尚、これら全ての機能がプロセッサ２５０にて実現される必要はない。例えばメモリ制御部２２０をプロセッサ２５０とは異なる電子回路で実現してもよい。また入出力部２４０をプロセッサ２５０とは異なる電子回路で実現してもよい。
【００１７】
図４は、第３ノード３００のプロセッサ３５０の機能ブロックを示す図である。プロセッサ３５０は、メモリ３３０又は他のノードのメモリ又はバス５００に接続された共通メモリに格納された所定のプログラムによる処理を実行することにより、図４に示す機能ブロックを有するプロセッサとして動作する。プロセッサ３５０は、ロックエラー信号を出力するロックエラー信号出力部３１１と、メモリ３３０の制御を行うメモリ制御部３２０と、バス５００との入出力部３４０を有する。また、メモリ制御部３２０は、アクセス要求を受けた場合にメモリ３３０をロックするメモリロック部３２１と、メモリ３３０からのデータの読み出しを行うデータ読出し部３２２と、読出しデータと比較データとを比較するデータ比較部３２３と、ストアデータをメモリ３３０に書き込むデータ書込み部３２４と、メモリ３３０から読み出されたデータを他のノードに通知する通知部３１５として機能する。尚、これら全ての機能がプロセッサ３５０にて実現される必要はない。例えばメモリ制御部３２０をプロセッサ３５０とは異なる電子回路で実現してもよい。また入出力部３４０をプロセッサ３５０とは異なる電子回路で実現してもよい。
【００１８】
図５（Ａ）は、アクセス要求の記述フォーマットを示す図であり、図５（Ｂ）は記述内容の例を示す図である。図５（Ａ）に示す例において、記述フォーマットには、アクセス要求の種別を示す「要求ＩＤ」、要求内容を示す「Ｃｏｍｍａｎｄ」、要求の送信先ノードを示す「Ｎｏｄｅ−ａｄｄｒｅｓｓ」、対象となるメモリのアドレスを示す「Ｍｅｍｏｒｙ−ａｄｄｒｅｓｓ」、メモリから読み出したデータと比較する比較データを示す「Ｃｏｍｐａｒｅ−ｄａｔａ」、メモリに書込むデータを示す「Ｓｔｏｒｅ−ｄａｔａ」が含まれる。図５（Ｂ）において、「要求ＩＤ」として記述された「Ａｔｏｍｉｃ」は、この要求がアトミック命令に基づくアクセス要求であることを意味する。また「Ｃｏｍｍａｎｄ」として記述された「Ｃｏｍｐａｒｅ ａｎｄ Ｓｗａｐ」は、「Ｎｏｄｅ−ａｄｄｒｅｓｓ」及び「Ｍｅｍｏｒｙ−ａｄｄｒｅｓｓ」にて指定されたアドレスに格納されているデータを読み出す動作、読み出したデータを「Ｃｏｍｐａｒｅ−ｄａｔａ」に記載された比較データＡと比較する動作、比較の結果、両者の値が一致する場合は「Ｓｔｏｒｅ−ｄａｔａ」に記載されたストアデータＢをメモリに書き込む動作、を指示するものである。すなわち、データの読み出し、データの比較、データの書き込みの一連の動作が一体的に行われる。
【００１９】
図６は、例えば第３ノード３００が「Ｃｏｍｐａｒｅ ａｎｄ Ｓｗａｐ」のアクセス要求を受けた場合の、プロセッサ３５０の動作フローを示す図であり、処理１０００により開始される。処理１００１において、第３ノード３００は、アクセス要求の発行元のノードからアクセス要求を受信する。処理１００２において、「要求ＩＤ」が「Ａｔｏｍｉｃ」であることに従い、メモリロック部３２１はメモリ３３０へのアクセスをロックし、他の要求のアクセスを禁止する。処理１００３において、データ読出し部３２２が、「Ｍｅｍｏｒｙ−ａｄｄｒｅｓｓ」にて特定されたメモリのアドレスに格納されているデータを読み出す。処理１００４においてデータ比較部３２３が、アクセス要求の「Ｃｏｍｐａｒｅ−ｄａｔａ」に記載された比較データＡと、処理１００３で読み出したデータとを比較する。読出しデータと比較データが一致している場合、処理１００５においてデータ書込み部３２４が、アクセス要求の「Ｓｔｏｒｅ−ｄａｔａ」に記載されたストアデータＢをメモリ３３０に書き込み、処理１００６へ進む。読出しデータと比較データが不一致だった場合は、処理１００６において通知部３２５が、読出しデータをアクセス要求の発行元のノードに送信する。処理１００７においてメモリロック部３２１がメモリ３３０のロックを解除し、処理１００８にて終了する。
【００２０】
このようなアトミック命令に基づく「Ｃｏｍｐａｒｅ ａｎｄ Ｓｗａｐ」のアクセス要求を用いて、第１ノード１００及び第２ノード２００から発行されたアクセス要求が、第３ノード３００へ伝達する時刻がどの程度ずれるのか、その大凡の程度を見積もる方法について説明する。
【００２１】
図７は本実施例で使用される試験プログラムを示す図であり、図７（Ａ）は、第１ノード１００のメモリ１３０に格納される試験プログラムの例を示し、図７（Ｂ）は、第２ノード２００のメモリ２３０に格納される試験プログラムの例を示す。図７（Ａ）に示すように、第１ノード１００のメモリ１３０に格納される試験プログラムは、アトミック命令１−１〜１−４を含む。プロセッサ１５０がこの試験プログラムを実行することにより、アトミック命令１−１〜１−４に基づくアクセス要求１−１〜１−４が連続して発行される。また図７（Ｂ）に示すように、第２ノード２００のメモリ２３０に格納される試験プログラムは、アトミック命令２−１〜２−４を含む。プロセッサ２５０がこの試験プログラムを実行することにより、アトミック命令２−１〜２−４に基づくアクセス要求２−１〜２−４が連続して発行される。図７（Ａ）及び７（Ｂ）は、本実施例では試験プログラムにはいずれも４つのアトミック命令が含まれるものを例示するが、試験プログラムに含まれるアトミック命令の数はこれに限られない。また試験プログラムは、常に第１ノード１００のメモリ１３０及び第２ノード２００のメモリ２３０に格納されている必要はなく、各々他のノードのメモリや共通メモリに格納されているものをダウンロードして利用してもよい。
【００２２】
図８は、実施例におけるアトミック命令に基づくアクセス要求の内容を示す図であり、図８（Ａ）は、アクセス要求１−１〜１−４の内容を示し、図８（Ｂ）は、アクセス要求２−１〜２−４の内容を示す。アクセス要求１−１〜１−４の内容はいずれも、「要求ＩＤ」が「Ａｔｏｍｉｃ」であり、「Ｃｏｍｍａｎｄ」が「Ｃｏｍｐａｒｅ ａｎｄ Ｓｗａｐ」であり、「Ｎｏｄｅ−ａｄｄｒｅｓｓ」が第３ノード３００であり、「Ｍｅｍｏｒｙ−ａｄｄｒｅｓｓ」がｘｘであり、「Ｃｏｍｐａｒｅ−ｄａｔａ」が「１」であり、「Ｓｔｏｒｅ−ｄａｔａ」が「０」である。アクセス要求２−１〜２−４の内容はいずれも、「要求ＩＤ」が「Ａｔｏｍｉｃ」であり、「Ｃｏｍｍａｎｄ」が「Ｃｏｍｐａｒｅ ａｎｄ Ｓｗａｐ」であり、「Ｎｏｄｅ−ａｄｄｒｅｓｓ」が第３ノード３００であり、「Ｍｅｍｏｒｙ−ａｄｄｒｅｓｓ」がｘｘであり、「Ｃｏｍｐａｒｅ−ｄａｔａ」が「０」であり、「Ｓｔｏｒｅ−ｄａｔａ」が「１」である。
【００２３】
アクセス要求１−１〜１−４は、メモリ３３０からの読出しデータが「１」であれば、メモリ３３０に「０」を書き込む。アクセス要求２−１〜２−４は、メモリ３３０からの読出しデータが「０」であれば、メモリ３３０に「１」を書き込む。このように、互いの指令における比較データと書き込みデータの論理値の関係が相反するものを、本明細では相反関係にある要求と呼ぶ。
【００２４】
第１ノード１００及び第２ノード２００からアクセス要求１−１〜１−４、およびアクセス要求２−１〜２−４を発行するのに先立って、第３ノード３００のメモリ３３０には初期値「１」が格納される。また第１ノード１００と第２ノード２００との間で互いに特定のデータを送信して、双方のデータを確認できるまで同期処理を繰り返して同期をとる。その後、第１ノード１００と第２ノード２００からそれぞれ複数のアクセス要求を第３ノード３００に対して連続して発行する。第１ノード１００からは一定の発行間隔で４つのアクセス要求１−１〜１−４を第３ノード３００に送信する。第２ノード２００からは、アクセス要求１−１〜１−４の発行間隔と同一の発行間隔で、４つのアクセス要求２−１〜２−４を第３ノード３００に送信する。
【００２５】
図９は、アクセス要求１−１〜１−４とアクセス要求２−１〜２−４の第３ノード３００への到達タイミングと、第３ノード３００のメモリ３３０のデータの内容を示す図である。図９は、上段にアクセス要求１−１〜１−４が第３ノード３００に到達したタイミングを示し、中段にアクセス要求２−１〜２−４が第３ノード３００に到達したタイミングを示し、下段に第３ノード３００のメモリ３３０のデータが変化する様子を示している。また図１０は、複数のアクセス要求に対してメモリ３３０から読み出されたデータを示す図である。図１０の左欄は、アクセス要求１−１〜１−４に対してメモリ３３０から読み出されて第１ノード１００に返信されたデータ列である。図１０の右欄は、アクセス要求２−１〜２−４に対してメモリ３３０から読み出されて第２ノード２００に返信されたデータの列を示す。
【００２６】
図９においては、第２ノード２００と第３ノード３００とを結ぶ配線における信号伝達速度が、第１ノード１００と第３ノード３００とを結ぶ配線における信号伝達速度よりも遅い例を示す。この例では、第２ノード２００から送信される最初のアクセス要求２−１が、第１ノード１００から送信される最初のアクセス要求１−１よりも遅く到達する。またこの例では、第２ノード２００から発行された最初のアクセス要求２−１が、第１ノード１００から２番目に発行されたアクセス要求１−２と３番目に発行されたアクセス要求１−３との間のタイミングで第３ノード３００に到達する。
【００２７】
このようなタイミングでアクセス要求１−１〜１−４及びアクセス要求２−１〜２−４を受けた第３ノード３００の処理を説明する。まずアクセス要求１−１が第３ノード３００に到達すると、プロセッサ３５０はメモリ３３０に格納されているデータ、この場合は初期値である「１」を読み出す。次に読み出したデータである「１」とアクセス要求１−１の比較データである「１」とを比較する。これらのデータは互いに「１」であって一致するため、アクセス要求１−１のストアデータである「０」を第３ノード３００のメモリ３３０に書き込み、読出しデータ「１」を第１ノード１００に返信する。よって図１０の左欄の最初のデータが「１」となる。
【００２８】
次に、図９において、アクセス要求１−２が第３ノード３００に到達する。プロセッサ３５０は、この時点においてメモリ３３０に格納されているデータである「０」を読み出し、アクセス要求１−２の比較データである「１」と比較する。今回は両データが相違するため、メモリ３３０内のデータの書き換えは行わずに「０」を維持したままとし、読出しデータである「０」を第１ノード１００に返信する。よって図１０の左欄の２番目のデータは「０」となる。
【００２９】
次に、図９において、第２ノード２００から発行されたアクセス要求２−１が第３ノード３００に到達する。プロセッサ３５０はメモリ３３０に格納されているデータである「０」を読み出し、アクセス要求２−１の比較データ「０」と比較する。両データの論理値は同一であるので、読出しデータ「０」を第２ノード２００に返信し、アクセス要求２−１のストアデータである「１」を第３ノード３００のメモリ３３０に書き込む。よって、図１０の右欄の１番目のデータは「０」となる。
【００３０】
以下、図９において、第１ノード１００から送信されたアクセス要求１−３及びアクセス要求１−４と、第２ノード２００から送信されたアクセス要求２−２及びアクセス要求２−３が交互に第３ノード３００に入力される。その結果、第１ノード１００へは読出しデータ「１」が連続して送信され、第２ノード２００へは読出しデータ「０」が連続して送信される。
【００３１】
第１ノード１００から送信されるアクセス要求は、アクセス要求１−４が最後となり、その後は第２ノード２００から送信されたアクセス要求２−３とアクセス要求２−４が連続して第３ノード３００に入力される。アクセス要求２−３によってメモリ３３０のデータは「１」となる。そのため、アクセス要求２−４が入力された際には、読出しデータ「１」と比較データ「０」とが一致せず、第３ノード３００のメモリ３３０のデータは書き換えられずに「１」のまま維持される。第２ノード２００へは読出しデータ「１」が返信される。
【００３２】
ここで読出しデータの期待値について説明する。比較データが「１」であってストアデータが「０」であるアクセス要求においては、「１」を読出しデータの期待値と呼び、比較データが「０」であってストアデータが「１」であるアクセス要求においては「０」を読出しデータの期待値と呼ぶ。つまりアクセス要求１−１〜１−４を発行した第１ノード１００においては読出しデータの期待値は「１」であり、アクセス要求２−１〜２−４を発行した第２ノード２００においては読出しデータの期待値は「０」である。
【００３３】
図１０に基づき、アクセス要求１−１〜１−４とアクセス要求２−１〜２−４とが第３ノード３００へ到達する時刻にどの程度の相違があったかを、読出しデータから読み取る方法について説明する。第１ノード１００から発行されたアクセス要求１−１〜１−４に対する読出しデータの最初の値は期待値である「１」である。これに対し、読出しデータの２番目の値が期待値とは異なる値である「０」となっている。一方、第２ノード２００から発行されたアクセス要求２−１〜２−４に対する読出しデータの最初の値は期待値である「０」である。そして２番目の値も期待値である「０」となっている。このような場合、読出しデータの上位２つのデータに期待値とは異なる値が含まれるノードから発行したアクセス要求が、読出しデータの上位２つのデータのいずれもが期待値であるノードから発行したアクセス要求よりも、先に第３ノード３００に到達していることを読み取ることができる。またこの読出しデータの内容により、第１ノード１００から発行された２番目のアクセス要求１−２が、第２ノード２００から発行された最初のアクセス要求２−１よりも先に到達していることも読み取ることができる。尚、第１ノード１００への読出しデータ列の３番目のデータが期待値である「１」であることから、アクセス要求１−２とアクセス要求１−３との間にアクセス要求２−１が到達したことも読み取れる。
【００３４】
このようにアクセス要求に対する読出しデータにより、第１ノードから発行されるアクセス要求と第２ノードから発行されるアクセス要求のどちらがどの程度遅れて第３ノード３００に到達したか、言い換えれば、どちらの信号伝達経路において伝達遅延がどの程度大きいかを認識することができる。
【００３５】
図１１は、アクセス要求１−１〜１−４とアクセス要求２−１〜２−４の第３ノード３００への到達タイミングと、第３ノード３００のメモリ３３０のデータの内容の別の例を示す図である。図１２は、図１１のケ−スにおけるアクセス要求１−１〜１−４およびアクセス要求２−１〜２−４に対するメモリ３３０からの読出しデータを示す図である。図１１においては、第１ノード１００から発行される最後のアクセス要求１−４よりも後に、第２ノード２００から発行される最初のアクセス要求２−１が第３ノード３００に到達するケ−スを示している。この場合は、図１２に示すように、第１ノード１００への読出しデータの上位２つのデータには、期待値である「１」と、期待値とは異なる値である「０」の両方が含まれ、かつ第２ノード２００への読出しデータの上位２つのデータにも、期待値である「０」と、期待値とは異なる値である「１」の両方が含まれる。つまり、読出しデータの上位２つのデータを比較しても、いずれのノードから発行されたアクセス要求が先に第３ノード３００に到達しているのかを判断することができない。このような場合は、第１ノード１００及び第２ノード２００から連続して発行されるアトミック命令に基づくアクセス要求の数を増加させて再度読出しデータを取得する。例えば第１ノード１００および第２ノード２００から連続して発行されるアトミック命令に基づくアクセス要求の数を各々８つに増加させる。これにより、第１ノード１００から発行する最後のアクセス要求よりも後に、第２のノード２００から発行する最初のアクセス要求が第３ノード３００に到達することを防止でき、読出しデータの上位２つの値に基づく判定が可能となる。
【００３６】
ここまで、相反関係にあるアトミック命令に基づくアクセス要求を用いて第３ノード３００への到達時刻の相違の大凡の程度を検出する方法を説明した。次に、先に第３ノード３００へ到達するアクセス要求１−１〜１−４の第３ノード３００への到達時刻を調整し、アクセス要求１−１〜１−４と、アクセス要求２−１〜２−４とを交互に第３ノード３００に入力させるための方法を説明する。アクセス要求１−１〜１−４が第３ノードへ到達する時刻の調整の方法は、第１ノード１００のプロセッサ１５０にてアクセス要求１−１〜１−４を発行するタイミングを一定時間遅らせる方法、アクセス要求１−１〜１−４を受信した第３ノード３００のプロセッサ３５０にて一定時間の遅延を生じさせる方法、第１ノード１００の入出力部１４０と第３ノード３００の入出力部３４０との間に可変遅延回路を設けることで遅延時間を調整する方法がある。本実施例にて「到達時刻の調整」とはこれら全ての方法を包含するものであるが、以下においては第１ノード１００のプロセッサ１５０において、アクセス要求１−１〜１−４の発行タイミングを調整する方法を例として説明する。
【００３７】
上述のように図１０の結果から、第１ノード１００から発信されたアクセス要求１−１がアクセス要求２−１よりも先に第３ノード３００に到達していることを読み取ることができる。そこで、到達時刻調整部１１３に適当な設定値を設定し、第１ノード１００からアクセス要求１−１〜１−４が発行されるタイミングを一定時間だけ遅らせ、アクセス要求１−１〜１−４が第３ノード３００に到達するタイミングを一定時間だけ遅らせるよう調整する。この場合は、第２ノード２００の到達時刻調整部２１３の調整は行わない。そして第３ノード３００のメモリ３３０に初期値としてデータ「１」を格納し、第１ノード１００の同期部１１１と第２ノード２００の同期部２１１とで同期をとった後、アクセス要求１−１〜１−４及びアクセス要求２−１〜２−４を発行する。アクセス要求１−１〜１−４に対する読出しデータの上位２つの値の両方が期待値である「１」になったか、またアクセス要求２−１〜２−４に対する読出しデータの上位２つの値の両方が期待値である「０」になったか否かを確認する。依然として読出しデータが図１０に示す内容と同一であれば、到達時刻調整部１１３に設定する遅延時間を増加させて再度アクセス要求１−１〜１−４およびアクセス要求２−１〜２−４を発行する。この動作を、アクセス要求１−１〜１−４に対する読出しデータの上位２つが「１」となり、アクセス要求２−１〜２−４に対する読出しデータの上位２つが「０」となるまで繰り返す。
【００３８】
図１３は、アクセス要求１−１〜１−４とアクセス要求２−１〜２−４とが第３ノード３００に到達するタイミングと、メモリ３３０のデータの変化の様子を示す図である。図１４は、図１３の状態におけるアクセス要求１−１〜１−４とアクセス要求２−１〜２−４とに対する読出しデータ列を示す。図１３においては、第１ノード１００から発行されるアクセス要求１−１〜１−４が第３ノード３００へ到達する時刻が一定時間遅れるよう調整され、アクセス要求１−１〜１−４とアクセス要求２−１〜２−４とが交互に第３ノード３００に到達している。この状態においては、図１４に示すように、アクセス要求１−１〜１−４に対する読出しデータの上位２つの両方が期待値である「１」となり、アクセス要求２−１〜２−４に対する読出しデータの上位２つの両方が期待値である「０」となる。すなわち、２つのノードから発行されたアクセス要求に対する読出しデータのどちらにおいても、上位２つのデータが期待値となるよう到達時刻調整部１１３の調整を行うことで、アクセス要求１−１〜１−４とアクセス要求２−１〜２−４とを交互に第３ノード３００に到達させることができる。この状態での到達時刻調整部１１３の到達時刻調整値は、例えば第１ノード１００のメモリ１３０に格納される。本実施例において、この到達時刻調整値は必ずしもメモリ１３０に格納される必要はなく、例えば管理装置４００のメモリ４３０にて保持してもよい。
【００３９】
次に、取得した到達時刻調整値を用いてアクセス要求競合試験を行う方法を説明する。まず取得した到達時刻調整値を到達時刻調整部１１３に設定し、第３ノード３００のメモリに初期値として「１」を設定する。第１ノード１００と第２ノード２００の間で同期をとり、第１ノード１００からアクセス要求１−１〜１−４を、第２ノードからアクセス要求２−１〜２−４を、それぞれ第３ノード３００に対して連続して送信する。第３ノード３００のメモリ制御部３２０からロックエラー信号が発信されるか否かを管理装置４００のプロセッサ４５０により検出することにより、１回目のアクセス要求競合試験を行う。尚、アクセス要求に対するメモリ３２０の読出しデータは、試験終了の時期を検出するため、第１ノード１００および第２ノード２００にて記憶する。
【００４０】
図１５は、上述の１回目のアクセス要求競合試験における、アクセス要求１−１〜１−４及びアクセス要求２−１〜２−４が第３ノード３００に到達するタイミングを示す図である。図１５に示すように、到達時刻調整部１１３に適切な到達時刻調整値を設定することにより、アクセス要求１−１〜１−４とアクセス要求２−１〜２−４を交互に第３ノード３００に到着させることができる。しかし、アクセス要求の競合状態が生じるか否かは、各々のアクセス要求に対する処理を第３ノード３００が完了させるために必要な時間や、複数のアクセス要求の発行間隔、アクセス要求１−１〜１−４とアクセス要求２−１〜２−４との到達時間のずれの程度によって決まるものである。よって上記の１回目の試験を行っただけでは、競合状態が生じているかどうかが不明であり、アトミック競合試験を終了させることはできない。
【００４１】
そこで次に、図２及び図３の機能ブロック図に示した発行間隔調整部１１４又は発行間隔調整部２１４を用いて行うアクセス要求競合試験について説明する。発行間隔調整部１１４及び２１４は、連続発行される複数のアクセス要求列の発行間隔を変更させる機能を有する。ここでは第１ノード１００の発行間隔調整部１１４にてアクセス要求１−１〜１−４の発行間隔を調整したアクセス要求競合試験を行う例を説明する。
【００４２】
図１６は、発行間隔調整部１１４を調整し、アクセス要求１−１〜１−４の発行間隔を、アクセス要求２−１〜２−４の発行間隔よりも時間αだけ拡げて行った再度の試験における、アクセス要求１−１〜１−４及びアクセス要求２−１〜２−４が第３ノード３００に到達するタイミングを示す図である。
【００４３】
図１５に示す例では、アクセス要求１−１〜１−４とアクセス要求２−１〜２−４とが競合していないが、図１６においては、アクセス要求１−１〜１−４の発行間隔を時間αだけ拡げたことにより、第３ノード３００におけるアクセス要求１−１の処理が終了する前にアクセス要求２−１が到達する状態、すなわち競合状態が生じている状況を例示している。ここで、アクセス要求１−１とアクセス要求２−１との重なり時間をβとする。メモリ制御部３２０がメモリ３３０を正しくロック状態とすることができなかった場合は、ロックエラー信号出力部３１１がロックエラー信号を管理装置４００に送信する。次にアクセス要求１−２は、アクセス要求１−１との発行間隔が時間αだけ拡がったことにより、第３ノード３００への到達時刻が更に時間αだけ後ろにシフトしているため、アクセス要求２−２との重なり時間はα＋βとなる。同様にアクセス要求１−３とアクセス要求２−３との重なり時間は２α＋βとなる。更に、アクセス要求１−４とアクセス要求２−４との重なり時間は３α＋βとなる。このように、発行間隔調整部１１４に特定の値を設定することにより、アクセス要求１−１〜１−４とアクセス要求２−１〜２−４との重なり時間を複数種生成することが可能となる。
【００４４】
図１７は、アクセス要求１−１〜１−４の発行間隔を更に拡げて再度の試験を行った際の、アクセス要求１−１〜１−４とアクセス要求２−１〜２−４とが第３ノード３００に到達するタイミングを示す図である。図１７において、アクセス要求１−１はアクセス要求２−１よりも先に第３ノードに到達し、アクセス要求１−２はアクセス要求２−２よりも先に第３ノードに到達している。しかし、アクセス要求１−３はアクセス要求２−３よりも後に第３ノードに到達している。すなわち、アクセス要求１−１〜１−４とアクセス要求２−１〜２−４とが交互に第３ノード３００に到達しない状態となる。そのため、アクセス要求２−３に対する読出しデータは、期待値とは異なる「１」となる。第２ノード２００の判定部２１２は、読出しデータに期待値と異なる値が含まれることを認識すると、第１ノード１００から発行したアクセス要求と第２ノード２００から発行したアクセス要求との間に種々の重なりを十分に生成することができたと判定する。そして、通知部２１５が第１ノード１００に対して試験終了信号を生成する。第１ノード１００はこの試験終了信号を受信するとアクセス要求競合試験を終了させる。
【００４５】
尚、本実施例では、到達時刻調整部１１３の設定を行った第１ノード１００の発行間隔を拡げる例を示したが、第２ノード２００の発行間隔を拡げるよう調整してもよい。また発行間隔の調整として発行間隔を狭めてもよい。更に、第１ノード１００と第２ノード２００の両方の発行間隔を調整してもよい。
【００４６】
図１８は、アクセス要求が競合試験対象装置へ到達する時刻を調整する処理のフローチャートである。図１８の処理は処理１１００により開始される。処理１１０１において設定部１１６又は２１６が第３ノード３００のメモリ３３０に初期値を設定する。第１ノード１００は処理１１１０へ進み、第２ノードは処理１１２０へ進む。処理１１１０及び処理１１２０において、第１ノード１００の同期部１１１と第２ノード２００の同期部２１１とが同期処理を行う。処理１１１１及び処理１１２１において、プロセッサ１５０とプロセッサ２５０は、各ノードが発行するアクセス要求の第３ノード３００への到達時刻を調整する。処理１１１１及び処理１１２１の詳細フローチャートは追って図１９を用いて説明する。処理１１１２において、判定部１１２が、アクセス要求の第３ノード３００への到達時刻を遅らせるよう自ノードにおいて調整がなされたか否かを判定する。自ノードにおいて到達時刻の調整がなされた場合は、処理１１１４において、設定部１１６が自ノードをマスターノードに設定する。自ノードにおいて到達時刻の調整がなされなかった、すなわち到達時刻調整部によってアクセス要求の発行タイミングを遅延させる処理を行わない場合は、処理１１１３において、設定部１１６が自ノードをスレーブノードに設定して処理１１１４へ進む。また処理１１２２において判定部２１２が、アクセス要求の第３ノード３００への到達時刻を遅らせるよう自ノードにおいて調整がなされたか否かを判定する。自ノードにおいて到達時刻の調整がなされた場合は、処理１１２４において、設定部２１６が自ノードをマスターノードに設定する。自ノードにおいて到達時刻の調整がなされなかった、すなわち到達時刻調整部によってアクセス要求の発行タイミングを遅延させる処理を行わない場合は、処理１１２３において、設定部２１６が自ノードをスレーブノードに設定して処理１１２４へ進む。
【００４７】
ここでスレーブノードとは、後述する試験終了信号を発行するノードであり、マスターノードとは、試験終了信号を受けて試験を終了させるノードである。図１８においては、到達時刻調整部によって到達時刻の調整がなされたノードをマスターノードに設定するフローを開示しているが、到達時刻調整部によって到達時刻の調整がなされたノードをスレーブノードとし、到達時刻調整部によって到達時刻の調整がなされなかったノードをマスターノードに設定してもよい。
【００４８】
図１９は、処理１１１１及び処理１１２１の到達時刻調整値を取得する処理の詳細を示す図である。処理１１１１と処理１１２１は同じフローチャートとなるため、ここでは処理１１１１を代表として説明する。図１８の処理１１１０の後、処理１２０１において、アクセス要求発行部１１７が、アクセス要求１−１〜１−４を第３ノード３００に対して連続発行する。処理１２０２において受信部１１８が、メモリ３３０から読み出された読出しデータを受信する。処理１２０３において、読出しデータの上位２つの値の両方が期待値であるか否かを判定部１１２が判定する。読出しデータの上位２つの値のうち少なくとも１つの値が期待値ではない場合は、処理１２０４において判定部１１２が、相手側の競合試験装置から到達時刻の調整が完了した旨の調整完了フラグを受信部１１８が受信したか否かを判定する。判定部１１２が、受信部１１８は調整完了フラグを受信していないと判定した場合は、処理１２０５において、アクセス要求発行部１１７が、アトミック命令に基づくアクセス要求の発行数を増加させて、処理１２０１にて再度アクセス要求を発行する。処理１２０４において、受信部１１８が調整完了フラグを受信したと判定部１１２が判断した場合、処理１２０６において、アクセス要求の第３ノード３００への到達時刻が遅れるように到達時刻調整部１１３の調整を行う。そして処理１２０１にて再度、アクセス要求発行部１１７が、アクセス要求を発行する。
【００４９】
処理１２０３において、読出しデータの上位２つの値の両方が期待値であると判定部１１２が判定した場合は、処理１２０７において設定部１１６が、到達時刻の調整が完了したことを示す調整完了フラグを“オン”にする。処理１２０８において設定部１１６が、到達時刻調整値をメモリ１３０に格納する。処理１２０９において通知部１１５が、相手側の競合試験装置である第２ノード２００に調整完了フラグを通知する。処理１２１０において判定部１１２が、相手側の競合試験装置である第２ノード２００から調整完了フラグを受信部１１８にて受信したか否かを判定する。判定部１１２が、未だ受信部１１８は調整完了フラグを受信していないと判断する場合は、処理１２１１においてアクセス要求発行部１１７が、アクセス要求を第３ノード３００に連続発行する。処理１２１０において、受信部１１８が第２ノード２００から調整完了フラグを受信したと判定部１１２が判断した場合は処理１２１２へ進み終了する。
【００５０】
図２０は、取得した到達時刻調整値を用いてアクセス要求競合試験を行う処理を示す図である。図２０においては、第１ノード１００がマスターノードであり、第２ノード２００がスレーブノードである例を説明する。処理１３００により処理が開始される。処理１３０１において、設定部１１６が、競合試験対象装置である第３ノード３００のメモリ３３０に初期値を格納する。第１ノードは処理１３１０へ進み、第２ノードは処理１３２０に進む。処理１３１０及び処理１３２０において、第１ノード１００の同期部１１１と第２ノード２００の同期部２１１とが互いに特定のデータを送信して、双方のデータを確認できるまで同期処理を繰り返して同期をとる。
【００５１】
処理１３１２において設定部１１６が、図１８の処理１１１１にて取得された到達時刻調整値を、到達時刻調整部１１３に設定する。処理１３１３においてアクセス要求発行部１１７が複数のアクセス要求を連続発行させ、処理１３２１においてアクセス要求発行部２１７が複数のアクセス要求を連続発行させる。そして第３ノード３００のロックエラー信号出力部３１１が発行するロックエラー信号を、例えば管理装置４００のプロセッサ４５０にて受信することでアクセス要求競合試験が行われる。
【００５２】
処理１３２２において第２ノード２００の受信部２１８は、自ノードから発行した複数のアクセス要求に対する読出しデータを受信する。処理１３２３において判定部２１２が、受信した読出しデータに期待値とは異なる値が含まれるか否かを判定する。判定部２１２が、読出しデータに期待値とは異なる値が含まれないと判定した場合は処理１３２０へ戻る。判定部２１２が、読出しデータに期待値とは異なる値が含まれると判定した場合は、処理１３２４において、通知部２１５がマスターノードへ試験終了通知を発行し、処理１３５０にて終了する。
【００５３】
処理１３１４において、マスターノードである第１ノード１００の判定部１１２は、スレーブノードである第２ノード２００からの試験終了通知を受信部１１８にて受信したか否かを判定する。判定部１１２が、試験終了通知を受信部１１８にて受信したと判定した場合は、処理１３５０にて終了する。判定部１１２が、試験終了通知を受信部１１８にて受けていないと判定した場合は、処理１３１５において判定部１１２が、アクセス要求の発行が終了したか否かを判定する。判定部１１２がアクセス要求の発行が終了していないと判定した場合は、処理１３１４へ戻る。判定部１１２がアクセス要求の発行が終了したと判定した場合は、処理１３１６において、発行間隔調整部１１４がアクセス要求の発行間隔の調整を行う。そして再度、同期処理部１１１及び１１２による同期処理及びアクセス要求発行部１１７及び２１７によるアクセス要求の連続発行が行われる。
【００５４】
このようにアクセス要求の発行間隔を調整することにより、第１ノード１００から発行されるアクセス要求と第２ノード２００から発行される第２アクセス要求との間に複数種の重なりを生じさせてアクセス要求競合試験を行うことができる。また、アクセス要求の発行間隔を調整してアクセス要求競合試験を行うことにより、試験終了のタイミングを読出しデータに基づいて判断をすることが可能となる。
【００５５】
ここまで、図１に示す情報処理装置において、第１ノード１００及び第２ノード２００を競合試験装置、第３ノード３００を競合試験対象装置とする場合について述べた。第１ノード１００を競合試験対象装置とする場合は、第２ノード２００と第３ノード３００とを競合試験装置とし、第２ノード２００を競合試験対象装置とする場合は、第１ノード１００と第３ノード３００とを競合試験装置として試験を行う。
【００５６】
情報処理装置を構成するノードの数が４個の場合は、第１ノードと第２ノードとを競合試験装置、第３ノードを競合試験対象装置としての試験、第２ノードと第３ノードとを競合試験装置、第４ノードを競合試験対象装置としての試験、第３ノードと第４ノードとを競合試験装置、第１ノードを競合試験対象装置としての試験、及び第４ノードと第１ノードとを競合試験装置、第２ノードを競合試験対象装置としての試験を行う。このように試験を行うことで、各ノードは均等に、競合試験装置として２回、競合試験対象装置として１回ずつ使用されることになる。情報処理装置を構成するノードの数が５個以上の場合も同様である。
【００５７】
また、例えば情報処理装置を構成するノードの数が５個である場合、第１ノードと第２ノードとを競合試験装置、第３ノードを競合試験対象装置としての試験、第１ノードと第２ノードとを競合試験装置、第４ノードを競合試験対象装置としての試験、第１ノードと第２ノードとを競合試験装置、第５ノードを競合試験対象装置としての試験、第３ノードと第４ノードとを競合試験装置、第１ノードを競合試験対象装置としての試験、第３ノードと第４ノードとを競合試験装置、第２ノードを競合試験対象装置としての試験を行う。このように試験を行うことにより、第５ノードへ試験プログラムを格納することなく全てのノードを競合試験対象装置として試験を行うことができる。情報処理装置を構成するノードの数が６個以上の場合も同様である。
【００５８】
また、試験時間を短縮するために、複数の試験を同時並行的に行ってもよい。例えば情報処理装置を構成するノードの数が６個の場合、第１ノードと第２ノードとを競合試験装置、第３ノードを競合試験対象装置としての試験、第４ノードと第５ノードとを競合試験装置、第６ノードを競合試験対象装置としての試験を同時並行的に行うことも可能である。情報処理装置を構成するノードの数が７個以上の場合も同様である。
【００５９】
実施例では、アクセス要求を受けてメモリから読み出される読出しデータは、アクセス要求の発行元へ返信され、アクセス要求の発行元にて記憶される例を説明した。しかし、読出しデータは必ずしもアクセス要求発行元のノードへ返信されて記憶される必要はなく、例えば管理装置４００のメモリ４３０や第３ノード３００のメモリ３３０にて記憶してもよい。この場合、読出しデータに基づいて行う信号経路の遅延の大小の判断や、試験終了の制御は管理装置４００又は第３ノード３００にて行ってもよい。
【００６０】
また実施例では、スレーブノードが発行した試験終了通知をマスターノードが受信してアクセス要求競合試験を終了させる例を説明したが、管理装置４００が試験終了通知を受信してアクセス要求競合試験を終了させてもよい。また使用するアクセス要求は、アトミック命令に基づくアクセス要求に限られない。本明細における開示の技術は、異なる２種類のアクセス要求を用いて、それら２種類のアクセス要求が互いに交互に試験対象装置に到達するよう、到達時刻の調整を行うことにより実施可能である。
【００６１】
以上の実施例に関し、さらに以下の付記を開示する。
【００６２】
（付記１）
複数の第１アクセス要求を発行する第１ノードと、
複数の第２アクセス要求を発行する第２ノードと、
メモリを有し、前記第１ノード及び前記第２ノードに接続され、前記複数の第１アクセス要求及び前記複数の第２アクセス要求を受信する第３ノードと、
前記複数の第１アクセス要求及び前記複数の第２アクセス要求に対する前記メモリからの読出しデータに基づき、前記複数の第１アクセス要求と前記複数の第２アクセス要求が交互に前記第３ノードに到達するよう、前記複数の第１アクセス要求が前記第３ノードへ到達する時刻を設定する到達時刻調整部と
を有することを特徴とする情報処理装置。
【００６３】
（付記２）
前記第１アクセス要求は、前記メモリから読み出したデータが第１論理値である場合は第２論理値を前記メモリに書込む要求であり、前記第２アクセス要求は、前記メモリから読み出したデータが前記第２論理値である場合は前記第１論理値を前記メモリに書込む要求であることを特徴とする付記１に記載の情報処理装置。
【００６４】
（付記３）
前記第１ノードは第１プロセッサを含み、前記第２ノードは第２プロセッサを含み、前記第１要求は、前記第１プロセッサが第１アトミック命令を実行することにより発行され、前記第２命令は、前記第２プロセッサが第２アトミック命令を実行することにより発行されることを特徴とする付記１又は２に記載の情報処理装置。
【００６５】
（付記４）
前記第１アトミック命令は、前記メモリに格納されているデータを読み出す命令と、前記第１アトミック命令に含まれる第１データと前記メモリから読み出された第１読出しデータとを比較する命令と、前記第１データと前記第１読出しデータとが同一の論理値である場合は、前記第１アトミック命令に含まれる第２データを前記メモリに書き込む命令とを含み、
前記第２アトミック命令は、前記メモリに格納されているデータを読み出す命令と、前記第２アトミック命令に含まれる第３データと前記メモリから読み出された第２読出しデータとを比較する命令と、前記第３データと前記第２読出しデータとが同一の論理値である場合は、前記第２アトミック命令に含まれる第４データを前記メモリに書き込む命令とを含むことを特徴とする付記２に記載の情報処理装置。
【００６６】
（付記５）
前記第３ノードは、前記メモリを制御するメモリ制御部を更に有し、前記メモリ制御部は、前記第１アクセス要求を受けた後、前記第１アクセス要求に対する処理が終了するまでの間、前記メモリへのアクセスを禁止することを特徴とする付記１乃至４何れか一つに記載の情報処理装置。
【００６７】
（付記６）
前記第１ノードは、前記複数の第１アクセス要求の発行間隔を設定する発行間隔調整部を更に有することを特徴とする付記１乃至５何れか一つに記載の情報処理装置。
【００６８】
（付記７）
前記第２ノードは、前記発行間隔調整部による前記発行間隔の設定の結果、前記複数の第２アクセス要求に対して読み出された複数の前記読出しデータに、互いに異なる論理値が含まれることを検出して試験終了信号を発行することを特徴とする付記６に記載の情報処理装置。
【００６９】
（付記８）
前記第１ノードは、前記複数の読出しデータの内容を判定する第１判定部を更に有し、前記到達時刻調整部は、前記第１判定部の判定結果に基づき、前記第１アクセス要求の前記第３ノードへの到達時刻を設定することを特徴とする付記１乃至７何れか一つに記載の情報処理装置。
【００７０】
（付記９）
前記第３ノードは、前記第１アクセス要求に対する処理を実行中に他のアクセス要求を実行した場合にロックエラー信号を出力することを特徴とする付記３乃至８何れか一つに記載の情報処理装置。
【００７１】
（付記１０）
第１ノードが、メモリを有する前記第３ノードに対して複数の第１アクセス要求を発行する工程と、
第２ノードが前記第３ノードに対して複数の第２アクセス要求を発行する工程と、
複数の第１アクセス要求及び前記複数の第２アクセス要求に対する前記メモリからの読出しデータに基づき、前記複数の第１アクセス要求と前記第２アクセス要求が交互に前記第３ノードに到達するよう、前記複数の第１アクセス要求が前記第３ノードへ到達する時刻を設定することを特徴とする試験方法。
【００７２】
（付記１１）
前記第１アクセス要求は、前記メモリから読み出したデータが第１論理値である場合は第２論理値を前記メモリに書込む要求であり、前記第２アクセス要求は、前記メモリから読み出したデータが前記第２論理値である場合は前記第１論理値を前記メモリに書込む要求であることを特徴とする付記１０に記載の試験方法。
【００７３】
（付記１２）
前記第１ノードは第１プロセッサを含み、前記第２ノードは第２プロセッサを含み、前記第１アクセス要求は、前記第１プロセッサが第１アトミック命令を実行することにより発行され、前記第２アクセス要求は、前記第プロセッサが第２アトミック命令を実行することにより発行されることを特徴とする付記１０又は１１に記載の試験方法。
【００７４】
（付記１３）
前記第１アトミック命令は、前記メモリに格納されているデータを読み出す命令と、前記第１アトミック命令に含まれる第１データと前記メモリから読み出された第１読出しデータとを比較する命令と、前記第１データと前記第１読出しデータとが同一の論理値である場合は、前記第１アトミック命令に含まれる第２データを前記メモリに書き込む命令とを含み、
前記第２アトミック命令は、前記メモリに格納されているデータを読み出す命令と、前記第２アトミック命令に含まれる第３データと前記メモリから読み出された第２読出しデータとを比較する命令と、前記第３データと前記第２読出しデータとが同一の論理値である場合は、前記第２アトミック命令に含まれる第４データを前記メモリに書き込む命令とを含むことを特徴とする付記１１に記載の試験方法。
【００７５】
（付記１４）
前記第１アクセス要求を受けた後、前記第１アクセス要求に対する処理が終了するまでの間、前記メモリへのアクセスが禁止されることを特徴とする付記１０乃至１３何れか一つに記載の試験方法。
【００７６】
（付記１５）
前記複数の第１アクセス要求の発行間隔を複数の値に設定して試験を行うことを特徴とする付記１０乃至１４何れか一つに記載の試験方法。
【００７７】
（付記１６）
前記発行間隔を第１の値に設定して試験を行い、前記複数の第２アクセス要求に対して読み出された複数の前記読出しデータに互いに異なる論理値が含まれることを検出して試験を終了させることを特徴とする付記１５に記載の試験方法。
【００７８】
（付記１７）
前記第３ノードは、前記第１アクセス要求に対する処理を実行中に他のアクセス要求を実行した場合は、ロックエラー信号を出力することを特徴とする付記１０乃至１６何れか一つに記載の試験方法。
【符号の説明】
【００７９】
１００  第１ノード
２００  第２ノード
３００  第３ノード
４００  管理装置
５００  バス
１５０、２５０、３５０、４５０  プロセッサ
１２０、２２０、３２０  メモリ制御部
１３０、２３０、３３０、４３０  メモリ
１４０、２４０、３４０  入出力部
１１１、２１１  同期部
１１２、２１２  判定部
１１３、２１３  到達時刻調整部
１１４、２１４  発行間隔調整部
１１５、２１５  通知部
１１６、２１６  設定部
１１７、２１７  アクセス要求発行部
１１８、２１８  受信部
３１１  ロックエラー信号出力部
３２１  メモリロック部
３２２  データ読出し部
３２３  データ比較部
３２４  データ書込み部
３２５  通知部
【図１】
2015041282.tif 000003
【図２】
2015041282.tif 000004
【図３】
2015041282.tif 000005
【図４】
2015041282.tif 000006
【図５】
2015041282.tif 000007
【図６】
2015041282.tif 000008
【図７】
2015041282.tif 000009
【図８】
2015041282.tif 000010
【図９】
2015041282.tif 000011
【図１０】
2015041282.tif 000012
【図１１】
2015041282.tif 000013
【図１２】
2015041282.tif 000014
【図１３】
2015041282.tif 000015
【図１４】
2015041282.tif 000016
【図１５】
2015041282.tif 000017
【図１６】
2015041282.tif 000018
【図１７】
2015041282.tif 000019
【図１８】
2015041282.tif 000020
【図１９】
2015041282.tif 000021
【図２０】
2015041282.tif 000022