(57)【要約】【課題】複数の情報処理装置が通信可能に接続されたシステムにおいて、情報処理装置同士を接続するインタフェース部分に関する高品質な評価を効率的に行う。【解決手段】本願発明のアクセスリクエスト発行装置４０は、通信可能に接続された複数の情報処理装置のうちの、第１の情報処理装置５０から第２の情報処理装置６０に対するアクセス命令であって、第１の情報処理装置５０が実際には発行していない係るアクセス命令を、疑似アクセス命令として、外部から入力された係る疑似アクセス命令の命令情報を疑似アクセス命令情報４１０として格納している格納部４１と、第１の情報処理装置５０が実際に発行したアクセス命令である通常アクセス命令が実行される際に、格納部４１から疑似アクセス命令情報４１０を読み出して、係る疑似アクセス命令を実行する実行部４２と、を備える。【選択図】      図７
2015232841.tif 000002
【特許請求の範囲】
【請求項１】
通信可能に接続された複数の情報処理装置のうちの、第一の情報処理装置から第二の情報処理装置に対するアクセス命令であって、前記第一の情報処理装置が実際には発行していない前記アクセス命令を、疑似アクセス命令として、外部から入力された前記疑似アクセス命令に関する命令情報が格納されている格納手段と、
前記第一の情報処理装置が実際に発行した前記アクセス命令である通常アクセス命令が実行される際に、前記格納手段から前記命令情報を読み出して、前記疑似アクセス命令を実行する実行手段と、
を備えるアクセスリクエスト発行装置。
【請求項２】
前記格納手段は、前記実行手段が前記疑似アクセス命令を実行した際に、前記第二の情報処理装置から得られることが期待される値を表す期待値情報を格納し、
前記実行手段は、前記疑似アクセス命令を実行した際に前記第二の情報処理装置から得られた実行結果が表す値と、前記期待値情報が表す値とを比較する、
請求項１に記載のアクセスリクエスト発行装置。
【請求項３】
前記実行手段は、前記通常アクセス命令、及び、前記疑似アクセス命令の両方が存在する場合、前記通常アクセス命令を前記疑似アクセス命令に優先して実行する期間と、前記疑似アクセス命令を前記通常命令に優先して実行する期間とを切り替えて、前記通常アクセス命令及び前記疑似アクセス命令を実行する、
請求項１または２に記載のアクセスリクエスト発行装置。
【請求項４】
前記実行手段は、前記通常アクセス命令を前記疑似アクセス命令に優先して実行する期間が開始してからの経過時間が第一の閾値に達したことを検出し、前記疑似アクセス命令を前記通常アクセス命令に優先して実行する期間が開始してからの経過時間が第二の閾値に達したことを検出する、
請求項３に記載のアクセスリクエスト発行装置。
【請求項５】
前記実行手段は、前記通常アクセス命令に関する命令情報と、１以上の前記疑似アクセス命令に関する命令情報の何れかと、を関連付ける情報を記憶し、前記通常アクセス命令に関連付けられた前記疑似アクセス命令を実行する、
請求項１乃至４のいずれかに記載のアクセスリクエスト発行装置。
【請求項６】
前記実行手段は、複数の前記疑似アクセス命令が実行待ちである場合に、複数の前記疑似アクセス命令のうちのいずれかを先に実行するかを、所定の基準に基づいて調停する、
請求項１乃至５のいずれかに記載のアクセスリクエスト発行装置。
【請求項７】
請求項１乃至６のいずれかに記載のアクセスリクエスト発行装置と、前記第一及び第二の情報処理装置を有する、アクセスリクエスト発行システム。
【請求項８】
前記アクセスリクエスト発行装置は、前記第一の情報処理装置が備える、前記第二の情報処理装置と送受信する情報に関する入出力を処理するインタフェース部に包含される、
請求項７に記載のアクセスリクエスト発行システム。
【請求項９】
情報処理装置によって、
通信可能に接続された複数の情報処理装置のうちの、第一の情報処理装置から第二の情報処理装置に対するアクセス命令であって、前記第一の情報処理装置が実際には発行していない前記アクセス命令を、疑似アクセス命令として、外部から入力された前記疑似アクセス命令に関する命令情報を格納手段に格納しておき、
前記第一の情報処理装置が実際に発行した前記アクセス命令である通常アクセス命令が実行される際に、前記格納手段から前記命令情報を読み出して、前記疑似アクセス命令を実行する、
アクセスリクエスト発行方法。
【請求項１０】
通信可能に接続された複数の情報処理装置のうちの、第一の情報処理装置から第二の情報処理装置に対するアクセス命令であって、前記第一の情報処理装置が実際には発行していない前記アクセス命令を、疑似アクセス命令として、外部から入力された前記疑似アクセス命令に関する命令情報を格納手段に格納する処理と、
前記第一の情報処理装置が実際に発行した前記アクセス命令である通常アクセス命令が実行される際に、前記格納手段から前記命令情報を読み出して、前記疑似アクセス命令を実行する実行処理と、
をコンピュータに実行させる、アクセスリクエスト発行プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本願発明は、通信可能に接続された複数の情報処理装置同士が互いにアクセスする際のアクセスリクエストを発行するアクセスリクエスト発行装置等に関する。
【背景技術】
【０００２】
近年、大量のデータ処理を高速化することを実現する、多数の情報処理装置（ノード）を通信可能に接続して、並列処理を行うマルチノードシステムに関する技術が発展している。また、このようなマルチノードシステムでは、例えば、各ノードに対して適切に負荷がかかるように調整することも重要な要素技術の１つであり、係る要素技術も発展している。
【０００３】
このような技術に関連する技術として、特許文献１には、マルチノードシステムにおいてメモリアクセスが競合した場合、ノードは他ノードから受信した後続の競合リクエストを保持し、先行するメモリアクセスの処理を完了した後、保持していた後続の競合リクエストを続けて処理するようにした技術が開示されている。
【０００４】
また、特許文献２には、端末装置が伝送路に送信する単位時間あたりのデータ転送量を監視して、係るデータ転送量が所定の閾値を超えたことを示す信号を生成して、その信号を伝送路に送信するようにした技術が開示されている。
【０００５】
さらに、特許文献３には、サーバ装置に送信されてくるリクエストを一時的にキューに蓄積し、キュー内にリクエストが存在する場合はそのリクエストを、存在しない場合は疑似クライアント装置により発生するリクエストを、順次所定のタイミングで係るサーバ装置に転送するようにした技術が開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開2012-138038号公報
【特許文献２】特開2003-229858号公報
【特許文献３】特開2004-348491号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
マルチノードシステムを制御するＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）が備える機能が高度化するに伴い、ＯＳは、リソースが競合することによる処理性能が低下することを回避するために、高度なスケジューリングを行うようになってきている。すなわち、例えば分散共有メモリを備えたマルチノードシステムにおいて、このようなＯＳは、各プロセッサが、同一ノード内に存在するメモリへアクセスする頻度が高くなるようにする一方、他のノードに存在するメモリへアクセスする頻度が低くなるように、スケジューリングを行う。その結果、ノード間を跨るメモリアクセスの発生頻度が減少してしまう。そして、係る発生頻度の減少に起因して、ノード同士を接続するインタフェース部分に多様なメモリアクセスによる負荷をかけて、係るインタフェース部分に関する高品質な評価を効率的に行うことが困難になってきている。例えば、ノードが備えるメモリをデグレードしたり、あるいは、ＯＳをチューニングしたりすることによって、ノード間を跨るメモリアクセスの発生頻度を増加させ、係るインタフェース部分に強制的に負荷をかけることは可能である。しかしながら、これらの方法では、環境構築に多大な時間及びコストを要するため、効率的であるとは言えない。特許文献１乃至３が開示した技術は、係るインタフェース部分に関する高品質な評価を効率的に行うという課題を解決できない。
【０００８】
本願発明の主たる目的は、この課題を解決した、アクセスリクエスト発行装置、アクセスリクエスト発行方法、及び、アクセスリクエスト発行プログラムを提供することである。
【課題を解決するための手段】
【０００９】
本願発明の一態様に係るアクセスリクエスト発行装置は、通信可能に接続された複数の情報処理装置のうちの、第一の情報処理装置から第二の情報処理装置に対するアクセス命令であって、前記第一の情報処理装置が実際には発行していない前記アクセス命令を、疑似アクセス命令として、外部から入力された前記疑似アクセス命令に関する命令情報が格納されている格納手段と、前記第一の情報処理装置が実際に発行した前記アクセス命令である通常アクセス命令が実行される際に、前記格納手段から前記命令情報を読み出して、前記疑似アクセス命令を実行する実行手段と、を備える。
【００１０】
上記目的を達成する他の見地において、本願発明の一態様に係るアクセスリクエスト発行方法は、情報処理装置によって、通信可能に接続された複数の情報処理装置のうちの、第一の情報処理装置から第二の情報処理装置に対するアクセス命令であって、前記第一の情報処理装置が実際には発行していない前記アクセス命令を、疑似アクセス命令として、外部から入力された前記疑似アクセス命令に関する命令情報を格納手段に格納しておき、前記第一の情報処理装置が実際に発行した前記アクセス命令である通常アクセス命令が実行される際に、前記格納手段から前記命令情報を読み出して、前記疑似アクセス命令を実行する。
【００１１】
また、上記目的を達成する更なる見地において、本願発明の一態様に係るアクセスリクエスト発行プログラムは、通信可能に接続された複数の情報処理装置のうちの、第一の情報処理装置から第二の情報処理装置に対するアクセス命令であって、前記第一の情報処理装置が実際には発行していない前記アクセス命令を、疑似アクセス命令として、外部から入力された前記疑似アクセス命令に関する命令情報を格納手段に格納する処理と、前記第一の情報処理装置が実際に発行した前記アクセス命令である通常アクセス命令が実行される際に、前記格納手段から前記命令情報を読み出して、前記疑似アクセス命令を実行する実行処理と、をコンピュータに実行させる。
【００１２】
更に、本発明は、係るアクセスリクエスト発行プログラム（コンピュータプログラム）が格納された、コンピュータ読み取り可能な、不揮発性の記憶媒体によっても実現可能である。
【発明の効果】
【００１３】
本願発明は、複数の情報処理装置が通信可能に接続されたシステムにおいて、情報処理装置同士を接続するインタフェース部分に関する高品質な評価を効率的に行うことを可能とする。
【図面の簡単な説明】
【００１４】
【図１】本願発明の第１の実施形態に係るアクセスリクエスト発行システムの構成を示すブロック図である。
【図２】本願発明の第１の実施形態に係る格納部が格納する情報の構成例である。
【図３】本願発明の第１の実施形態に係る実行部の詳細な構成を例示するブロック図である。
【図４】本願発明の第１の実施形態に係る制御レジスタエントリが格納する情報の構成例である。
【図５Ａ】本願発明の第１の実施形態に係るアクセスリクエスト発行部がアクセスリクエストをアクセス先に発行する動作を示すフローチャート（１／２）である。
【図５Ｂ】本願発明の第１の実施形態に係るアクセスリクエスト発行部がアクセスリクエストをアクセス先に発行する動作を示すフローチャート（２／２）である。
【図６】本願発明の第１の実施形態に係るアクセスリクエスト発行部が発行したアクセスリクエストに対するリプライを受信する動作を示すフローチャートである。
【図７】本願発明の第２の実施形態に係るアクセスリクエスト発行装置の構成を示すブロック図である。
【図８】本願発明の各実施形態に係るアクセスリクエスト発行部及びアクセスリクエスト発行装置を実行可能な情報処理装置の構成を示すブロック図である。
【発明を実施するための形態】
【００１５】
以下、本願発明の実施の形態について図面を参照して詳細に説明する。
【００１６】
＜第１の実施形態＞
図１は、第１の実施形態に係るアクセスリクエスト発行システム１の構成を概念的に示すブロック図である。本実施形態に係るアクセスリクエスト発行システム１は、３個のノード１０乃至３０を有する。尚、アクセスリクエスト発行システム１が有するノードは３個に限定されるわけではなく、複数個であればよい。ノード１０乃至３０は、サーバ装置等の情報処理装置であり、同様の機能を有し、同様の構成要素を備えている。図示の便宜上、ノード２０及び３０の内部構成の表記は省略する。ノード１０乃至３０は、互いに通信可能に接続されている。
【００１７】
ノード１０は、グローバルスイッチ１１、プロセッサ１５０乃至１５１、メモリ１６０乃至１６１、ＩＯ（ＩＮＰＵＴ／ＯＵＴＰＵＴ）制御部１７０乃至１７１、ＩＯカード１８０乃至１８１、及び、ディレクトリ１９０を備えている。尚、ノード１０が備える、プロセッサ、メモリ、ＩＯ制御部、及び、ＩＯカードは、２個に限定されるわけではない。
【００１８】
プロセッサ１５０乃至１５１は、メモリ１６０乃至１６１へアクセスする。ＩＯカード１８０乃至１８１は、ＩＯ制御部１７０乃至１７１及びプロセッサ１５０乃至１５１を経由して、メモリ１６０乃至１６１へアクセスする。ディレクトリ１９０は、グローバルスイッチ１１と接続され、ノード２０乃至３０の中にあるプロセッサ及びＩＯ制御部が備えるキャッシュの状態を管理する。
【００１９】
グローバルスイッチ１１は、プロセッサ１５０乃至１５１、及び、ＩＯカード１８０乃至１８１が発行した、ノード２０乃至３０が備えるメモリに対するアクセス命令を処理する。グローバルスイッチ１１は、ノード２０乃至３０が備えるプロセッサ及びＩＯカードが発行した、メモリ１６０乃至１６１に対するアクセス命令を処理する。グローバルスイッチ１１は、これらのアクセス命令を受信した際に、当該命令が指示するアクセス先に対して、当該命令が指示する処理を行う。詳細は、図２乃至４を参照して後述する。
【００２０】
グローバルスイッチ１１は、アクセスリクエスト発行部１２を備えている。アクセスリクエスト発行部１２は、格納部１３、及び、実行部１４を包含している。アクセスリクエスト発行部１２は、プロセッサ１５０乃至１５１、及び、ＩＯカード１８０乃至１８１が実際に発行したノード２０乃至３０が備えるメモリ（ノード１０におけるメモリ１６０乃至１６１に相当）に対するアクセス命令（以降、通常アクセス命令と称する）を処理する。アクセスリクエスト発行部１２は、プロセッサ１５０乃至１５１、及び、ＩＯカード１８０乃至１８１からノード２０乃至３０が備える係るメモリに対する、実際には発行されていない疑似のアクセス命令（以降、疑似アクセス命令と称する）を処理する。
【００２１】
格納部１３は、外部の装置あるいはシステム管理者等から入力された係る疑似アクセス命令に関する情報を格納している。格納部１３が格納する情報の構成例を図２に示す。
【００２２】
格納部１３は、図２に示す通り、１以上の疑似アクセス命令テーブル１３０を格納している。格納部１３は、１つの疑似アクセス命令に関して、１つの疑似アクセス命令テーブル１３０を格納する。疑似アクセス命令テーブル１３０は、アクセス先フラグ１３１、疑似アクセス命令種別１３２、疑似アクセス命令データ１３３、期待値チェック有効フラグ１３４、及び、期待値エラーフラグ１３５を包含している。
【００２３】
アクセス先フラグ１３１は、疑似アクセス命令のアクセス先であるノードを特定可能な情報であり、本実施形態の場合、ノード１０乃至３０を識別する３ビットのフラグである。疑似アクセス命令種別１３２は、例えば、読み出し命令あるいは書き込み命令等の命令の種別を示す情報である。疑似アクセス命令データ１３３は、例えば、疑似アクセス命令が書き込み命令である場合は書き込みデータであり、疑似アクセス命令が読み出し命令である場合は、アクセス先のメモリから読み出されることが期待される期待値である。
【００２４】
期待値チェック有効フラグ１３４は、アクセスリクエスト発行部１２が疑似アクセス命令を処理した際に、その処理結果が期待値と一致しているかどうかをチェックすることを示すフラグである。尚、係る処理結果は、例えば、疑似アクセス命令が読み出し命令の場合は、アクセス先のメモリから実際に読み出されたデータである。期待値エラーフラグ１３５は、係る処理結果が期待値と一致していないことを示すフラグである。
【００２５】
実行部１４は、プロセッサ１５０乃至１５１、及び、ＩＯカード１８０乃至１８１が発行した、ノード２０乃至３０が備えるメモリに対する通常アクセス命令を実行する。実行部１４は、格納部１３から疑似アクセス命令テーブル１３０を読み出して、疑似アクセス命令テーブル１３０が示す疑似アクセス命令を実行する。実行部１３の詳細な構成例を図３に示す。
【００２６】
実行部１４は、図３に示す通り、リクエストデコード部１４０、リプライデコード部１４１、制御レジスタ１４２、受信バッファ１４３、調停部１４４、リプライ発行部１４５、調停部１４６、リクエスト発行部１４７、及び、疑似アクセス命令優先判定部１４８を包含している。
【００２７】
リクエストデコード部１４０は、プロセッサ１５０乃至１５１、及び、ＩＯカード１８０乃至１８１が発行した、ノード２０乃至３０が備えるメモリに対する通常アクセス命令が包含する命令情報を解析する。リクエストデコード部１４０は、その解析結果に基づき、当該通常アクセス命令を制御する情報を、制御レジスタ１４２における所定のエントリに格納する。リクエストデコード部１４０は、当該通常アクセス命令が使用するデータを、制御レジスタ１４２における係るエントリに対応付けられた、受信バッファ１４３におけるエントリに格納する。
【００２８】
リプライデコード部１４１は、プロセッサ１５０乃至１５１、及び、ＩＯカード１８０乃至１８１が発行した、ノード２０乃至３０が備えるメモリに対する通常アクセス命令に対するノード２０乃至３０からのリプライ情報を解析する。リプライデコード部１４１は、その解析結果に基づき、当該通常アクセス命令に関する情報を格納していた、制御レジスタ１４２及び受信バッファ１４３におけるエントリの内容を更新する。
【００２９】
制御レジスタ１４２、及び、受信バッファ１４３は、アクセス命令ごとに当該通常アクセス命令に関する情報を格納するエントリを１以上包含している。制御レジスタ１４２におけるエントリは、いずれかの疑似アクセス命令テーブル１３０と関連付ける情報を包含している。制御レジスタ１４２が包含するエントリである制御レジスタエントリ１４２０が格納する情報の構成例を図４に示す。
【００３０】
制御レジスタエントリ１４２０は、通常アクセス命令有効フラグ１４２１、アクセス先フラグ１４２２、命令処理中フラグ１４２３、疑似アクセス命令有効フラグ１４２４、疑似アクセス命令エントリ１４２５、及び、疑似アクセス命令識別フラグ１４２６を包含している。
【００３１】
通常アクセス命令有効フラグ１４２１は、プロセッサ１５０乃至１５１、及び、ＩＯカード１８０乃至１８１の少なくともいずれかから、通常アクセス命令が発行されていることを示すフラグである。通常アクセス命令有効フラグ１４２１は、リクエストデコード部１４０が当該通常アクセス命令に関する情報を制御レジスタ１４２及び受信バッファ１４３に登録する際に、リクエストデコード部１４０によって''１''にセットされる。通常アクセス命令有効フラグ１４２１は、リプライ発行部１４５が当該通常アクセス命令に対するリプライを、当該通常アクセス命令を発行したプロセッサあるいはＩＯカードに送信する際に、リプライ発行部１４５によって''０''にセットされる。
【００３２】
アクセス先フラグ１４２２は、通常アクセス命令のアクセス先であるノードを識別する３ビットのフラグを包含している。アクセス先フラグ１４２２は、また、当該通常アクセス命令に対するリプライを、アクセス先のノードから受信済であることを示す１ビットのリプライに関するフラグを包含している。
【００３３】
命令処理中フラグ１４２３は、当該エントリが情報を格納している通常アクセス命令、あるいは、当該エントリに関連付けられた疑似アクセス命令テーブル１３０に情報が格納されている疑似アクセス命令を処理中であることを示すフラグである。命令処理中フラグ１４２３は、リクエスト発行部１４７が、通常アクセス命令あるいは疑似アクセス命令に関するリクエストをいずれかのノードに送信する際に、リクエスト発行部１４７によって''１''にセットされる。命令処理中フラグ１４２３は、通常アクセス命令に関しては、リプライ発行部１４５が当該通常アクセス命令を発行したプロセッサあるいはＩＯカードにリプライを送信する際に、リプライ発行部１４５によって''０''にセットされる。命令処理中フラグ１４２３は、疑似アクセス命令に関しては、リプライデコード部１４１が、受信したリプライ情報に基づき制御レジスタ１４２及び受信バッファ１４３におけるエントリの内容を更新する際に、リプライデコード部１４１によって''０''にセットされる。
【００３４】
疑似アクセス命令有効フラグ１４２４は、有効な疑似アクセス命令が、何れかの疑似アクセス命令テーブル１３０に格納されていることを示すフラグである。疑似アクセス命令エントリ１４２５は、制御レジスタエントリ１４２０に関連付けられる疑似アクセス命令テーブル１３０を識別可能な情報である。実行部１４は、制御レジスタエントリ１４２０に情報が格納された通常アクセス命令を実行する際に、疑似アクセス命令エントリ１４２５によって特定される疑似アクセス命令を実行する。疑似アクセス命令識別フラグ１４２６は、処理中のアクセス命令が、通常アクセス命令であるのか、あるいは、疑似アクセス命令であるのかを区別するフラグである。例えば、疑似アクセス命令識別フラグ１４２６の値は、その値が''０''である場合は、通常アクセス命令が処理中であり、その値が''１''である場合は、疑似アクセス命令を処理中であることを示している。
【００３５】
調停部１４４は、アクセス先フラグ１４２２におけるリプライを示すフラグの値が''１''である、複数の制御レジスタエントリ１４２０に情報が格納された通常アクセス命令に関して調停を行う。すなわち、調停部１４４は、いずれかのこれらの通常アクセス命令に対するリプライを、当該通常アクセス命令を発行したプロセッサあるいはＩＯカードに送信するかを所定の基準に基づいて調停することによって決定する。
【００３６】
リプライ発行部１４５は、調停部１４４が決定した通常アクセス命令に対するリプライを格納した、受信バッファ１４３におけるエントリからリプライ情報を読み出して、当該通常アクセス命令を発行したプロセッサあるいはＩＯカードに、リプライ情報を送信する。
【００３７】
調停部１４６は、アクセス先フラグ１４２２における、リプライを示すフラグの値が''０''であり、かつ、アクセス先であるノードを示すフラグの値が''１''である、複数の制御レジスタエントリ１４２０に情報が格納された通常アクセス命令に関して調停を行う。すなわち、調停部１４６は、いずれかのこれらの実行待ちである通常アクセス命令に関するリクエストをアクセス先であるノードに送信するかを所定の基準に基づいて調停することによって決定する。所定の基準としては、例えば、通常アクセス命令がプロセッサあるいはＩＯカードから発行された順番などがある。調停部１４６は、また、アクセス先フラグ１３１における、アクセス先であるノードを示すフラグの値が''１''である、複数の疑似アクセス命令テーブル１３０に情報が格納された疑似アクセス命令に関して調停を行う。すなわち、調停部１４６は、いずれかのこれらの実行待ちである疑似アクセス命令に関するリクエストをアクセス先であるノードに送信するかを所定の基準に基づいて調停することによって決定する。所定の基準としては、例えば、疑似アクセス命令が関連付けられている通常アクセス命令がプロセッサあるいはＩＯカードから発行された順番などがある。
【００３８】
リクエスト発行部１４７は、調停部１４６が決定した通常アクセス命令が使用するデータを格納した、受信バッファ１４３におけるエントリからリクエストに関する情報を読み出して、当該通常アクセス命令に関するリクエストを、アクセス先であるノードに送信する。リクエスト発行部１４７は、調停部１４６が決定した疑似アクセス命令が使用するデータを格納した、疑似アクセス命令テーブル１３０からリクエストに関する情報を読み出して、当該疑似アクセス命令に関するリクエストを、アクセス先であるノードに送信する。
【００３９】
疑似アクセス命令優先判定部１４８は、有効な通常アクセス命令と有効な疑似アクセス命令が両方とも存在する場合に、通常アクセス命令を優先して処理するのか、あるいは、疑似アクセス命令を優先して処理するのかを判定する。
【００４０】
図３に示す通り、疑似アクセス命令優先判定部１４８は、疑似アクセス命令優先フラグ１４８０、疑似アクセス命令優先期間タイマー１４８１、及び、通常アクセス命令優先期間タイマー１４８３を包含している。
【００４１】
疑似アクセス命令優先フラグ１４８０は、通常アクセス命令を優先して処理するのか、あるいは、疑似アクセス命令を優先して処理するのかを示すフラグである。疑似アクセス命令優先フラグ１４８０は、例えば、その値が''１''である場合は、疑似アクセス命令を優先して処理することを示し、その値が''０''である場合は、通常アクセス命令を優先して処理することを示している。疑似アクセス命令優先フラグ１４８０が示す値は、疑似アクセス命令優先期間タイマー１４８１、及び、通常アクセス命令優先期間タイマー１４８３が行う処理によって、所定の時間ごとに切り替わる。
【００４２】
疑似アクセス命令優先期間タイマー１４８１は、優先期間閾値１４８２を格納している。優先期間閾値１４８２は、疑似アクセス命令を優先して処理する期間の長さを示す値であり、例えばシステム管理者等により設定される。疑似アクセス命令優先期間タイマー１４８１は、疑似アクセス命令優先フラグ１４８０の値が''０''から''１''に変更されたときに、経過時間の計測を開始する。疑似アクセス命令優先期間タイマー１４８１は、計測した経過時間が優先期間閾値１４８２に到達したときに、経過時間の計測を終了して計測した経過時間をリセットしたのち、疑似アクセス命令優先フラグ１４８０の値を''１''から''０''に変更する。
【００４３】
通常アクセス命令優先期間タイマー１４８３は、優先期間閾値１４８４を格納している。優先期間閾値１４８４は、通常アクセス命令を優先して処理する期間の長さを示す値であり、例えばシステム管理者等により設定される。通常アクセス命令優先期間タイマー１４８３は、疑似アクセス命令優先フラグ１４８０の値が''１''から''０''に変更されたときに、経過時間の計測を開始する。通常アクセス命令優先期間タイマー１４８３は、計測した経過時間が優先期間閾値１４８４に到達したときに、経過時間の計測を終了して計測した経過時間をリセットしたのち、疑似アクセス命令優先フラグ１４８０の値を''０''から''１''に変更する。
【００４４】
次に図５Ａ乃至５Ｂのフローチャートを参照して、本実施形態に係るアクセスリクエスト発行部１２がアクセスリクエストをアクセス先に発行する動作（処理）について詳細に説明する。
【００４５】
疑似アクセス命令優先判定部１４８は、システム管理者等によって入力された優先期間閾値１４８２及び１４８４を内部に格納する（ステップＳ１０１）。疑似アクセス命令テーブル１３０は、システム管理者等によって入力された、アクセス先フラグ１３１、疑似アクセス命令種別１３２、疑似アクセス命令データ１３３、及び、期待値チェックフラグ１３４が示す値を格納する（ステップＳ１０２）。制御レジスタエントリ１４２０は、システム管理者等によって入力された疑似アクセス命令エントリ１４２５が示す値を格納し、疑似アクセス命令有効フラグ１４２４が示す値を、''１''に設定する（ステップＳ１０３）。
【００４６】
命令処理中フラグ１４２３が示す値が''１''である場合（ステップＳ１０４でＹｅｓ）、全体の処理は終了する。命令処理中フラグ１４２３が示す値が''１''でない（すなわち''０''である）場合（ステップＳ１０４でＮｏ）、処理はステップＳ１０５へ進む。疑似アクセス命令有効フラグ１４２４が示す値が''１''でない（すなわち''０''である）場合（ステップＳ１０５でＮｏ）、処理はステップＳ１０６へ進む。疑似アクセス命令有効フラグ１４２４が示す値が''１''である場合（ステップＳ１０５でＹｅｓ）、処理はステップＳ１０７へ進む。
【００４７】
通常アクセス命令有効フラグ１４２１が示す値が''１''でない（すなわち''０''である）場合（ステップＳ１０６でＮｏ）、処理はステップＳ１０５へ戻る。通常アクセス命令有効フラグ１４２１が示す値が''１''ある場合（ステップＳ１０６でＹｅｓ）、処理はステップＳ１０９へ進む。通常アクセス命令有効フラグ１４２１が示す値が''１''である場合（ステップＳ１０７でＹｅｓ）、処理はステップＳ１０８へ進む。通常アクセス命令有効フラグ
１４２１が示す値が''１''でない（すなわち''０''である）場合（ステップＳ１０７でＮｏ）、処理はステップＳ１１２へ進む。疑似アクセス命令優先フラグ１４８０が示す値が''１''である場合（ステップＳ１０８でＹｅｓ）、処理はステップＳ１１２へ進む。疑似アクセス命令優先フラグ１４８０が示す値が''１''でない（すなわち''０''である）場合（ステップＳ１０８でＮｏ）、処理はステップＳ１０９へ進む。
【００４８】
調停部１４６は、アクセス先フラグ１４２２が示すアクセス先への通常アクセス命令について、リクエスト発行を調停する（ステップＳ１０９）。調停部１４６が、当該通常アクセス命令について、リクエストを発行することを決定しない場合（ステップＳ１１０でＮｏ）、処理はステップＳ１０９へ戻る。調停部１４６が、当該通常アクセス命令について、リクエストを発行することを決定した場合（ステップＳ１１０でＹｅｓ）、リクエスト発行部１４７は、当該通常アクセス命令に関するリクエストを発行し、命令処理中フラグ１４２３が示す値を''１''に、疑似アクセス命令識別フラグ１４２６が示す値を''０''に設定して（ステップＳ１１１）、全体の処理は終了する。
【００４９】
調停部１４６は、疑似アクセス命令エントリ１４２５によって特定される疑似アクセス命令テーブル１３０におけるアクセス先フラグ１３１が示すアクセス先への疑似アクセス命令について、リクエスト発行を調停する（ステップＳ１１２）。調停部１４６が、当該疑似アクセス命令について、リクエストを発行することを決定しない場合（ステップＳ１１３でＮｏ）、処理はステップＳ１１２へ戻る。調停部１４６が、当該疑似アクセス命令について、リクエストを発行することを決定した場合（ステップＳ１１３でＹｅｓ）、リクエスト発行部１４７は、当該疑似アクセス命令に関するリクエストを発行し、命令処理中フラグ１４２３が示す値を''１''に、疑似アクセス命令識別フラグ１４２６が示す値を''１''に設定して（ステップＳ１１４）、全体の処理は終了する。
【００５０】
次に図６のフローチャートを参照して、本実施形態に係るアクセスリクエスト発行部１２が発行したアクセスリクエストに対するリプライを受信する動作（処理）について詳細に説明する。
【００５１】
リプライデコード部１４１は、発行したアクセス命令に対するリプライデータを受信する（ステップＳ２０１）。疑似アクセス命令識別フラグ１４２６が示す値が''１''である場合（ステップＳ２０２でＹｅｓ）、処理はステップＳ２０８へ進む。疑似アクセス命令識別フラグ１４２６が示す値が''１''でない（すなわち''０''である）場合（ステップＳ２０２でＮｏ）、リプライデコード部１４１は、受信した通常命令に対するリプライデータを、受信バッファ１４３に登録し、アクセス先フラグ１４２２におけるリプライを示すビットを''１''に設定する（ステップＳ２０３）。
【００５２】
調停部１４４は、アクセス先フラグ１４２２が示すアクセス先へのリプライについて、リプライ発行を調停する（ステップＳ２０４）。調停部１４４が、当該リプライを発行することを決定しない場合（ステップＳ２０５でＮｏ）、処理はステップＳ２０４へ戻る。調停部１４４が、当該リプライを発行することを決定した場合（ステップＳ２０５でＹｅｓ）、リプライ発行部１４５は、当該リプライを発行し、通常アクセス命令有効フラグ１４２１が示す値を''０''に設定する（ステップＳ２０６）。リプライ発行部１４５は、命令処理中フラグ１４２３が示す値を''０''に設定し（ステップＳ２０７）、全体の処理は終了する。
【００５３】
期待値チェック有効フラグ１３４が示す値が''１''でない（すなわち''０''である）場合（ステップＳ２０８でＮｏ）、リプライデコード部１４１は、受信した疑似アクセス命令に対するリプライデータを破棄する（ステップＳ２０９）。リプライ発行部１４５は、疑似アクセス命令有効フラグ１４２４が示す値を''０''に設定し（ステップＳ２１１）、処理はステップＳ２０７へ進む。
【００５４】
期待値チェック有効フラグ１３４が示す値が''１''である場合（ステップＳ２０８でＹｅｓ）、実行部１４は、リプライデータが示す値と疑似アクセス命令データ１３１が示す値を比較し、その値が一致しない場合は、期待値エラーフラグ１３５が示す値を''１''に設定し（ステップＳ２１０）、処理はステップＳ２１１へ進む。
【００５５】
本実施形態に係るアクセスリクエスト発行システム１は、複数の情報処理装置が通信可能に接続されたシステムにおいて、情報処理装置同士を接続するインタフェース部分に関する高品質な評価を効率的に行うことができる。その理由は、格納部１３が情報処理装置間を跨るアクセスを行う疑似アクセス命令の命令情報を格納し、実行部１４が係る疑似アクセス命令を実行するからである。
【００５６】
近年、分散共有メモリを備えたマルチノードシステム等においては、ＯＳは、システム性能を高めるために高度なスケジューリングを行うようになってきている。すなわち、ＯＳは、各プロセッサが、同一ノード内にあるメモリへアクセスする頻度が高くなるようにする一方、他のノードにあるメモリへアクセスする頻度が低くなるように、スケジューリングを行う。この結果、システムが通常動作を行う場合、ノード間を跨るアクセスが発生する頻度が減少するため、ノード同士を接続するインタフェース部分に負荷をかけることによって、係るインタフェース部分に関する高品質な評価を効率的に行うことが困難になる。
【００５７】
これに対して、本実施形態に係るアクセスリクエスト発行システム１では、格納部１３が、外部から入力された情報処理装置間を跨るアクセスを行う疑似アクセス命令の命令情報を格納し、実行部１４が、係る疑似アクセス命令を実行する。したがって、アクセスリクエスト発行システム１は、実際にはノードから発行されていない、ノード間を跨るアクセス命令を、疑似的に発生させることにより、ノード同士を接続するインタフェース部分に負荷をかけることができる。そして、例えばシステム管理者などが、係る疑似アクセス命令の命令情報として、多様なデータを設定することにより、アクセスリクエスト発行システム１は、係るインタフェース部分に関して、様々なアクセスパターンを包含する網羅性が高い評価を行うことができる。これにより、アクセスリクエスト発行システム１は、係るインタフェース部分に関する高品質な評価を効率的に行うことができる。
【００５８】
また、本実施形態に係るアクセスリクエスト発行部１２は、疑似アクセス命令を実行した結果として期待される期待値を格納しておき、疑似アクセス命令を実際に実行した結果と係る期待値を比較することによって、エラーを検出する。これにより、本実施形態に係るアクセスリクエスト発行システム１は、係るインタフェース部分の評価において、システム管理者にかかる負担を軽減することができる。
【００５９】
さらに、本実施形態に係る疑似アクセス命令優先判定部１４８は、通常アクセス命令を疑似アクセス命令に優先させて実行する期間と、疑似アクセス命令を通常アクセス命令に優先させて実行する期間とを設定し、これらの期間を交互に切り替える。もし、このような期間が設定されていない場合、通常アクセス命令が、疑似アクセス命令に関する処理が連続して行われることによって、それらの処理が完了するまで長時間、処理を待たされた結果、タイムアウトとなる虞がある。したがって、本実施形態に係るアクセスリクエスト発行システム１は、係るタイムアウトが発生して評価が中断することを回避して、インタフェース部分を効率的に評価することができる。
【００６０】
また、本実施形態に係るアクセスリクエスト発行部１２は、疑似アクセス命令を、通常アクセス命令と関連付けることによって、関連付けられた疑似アクセス命令を、通常アクセス命令を実行する際に確実に実行できる。  さらに、本実施形態に係るアクセスリクエスト発行部１２は、実行待ちである複数の疑似アクセス命令に関して、何れかの疑似アクセス命令を先に実行するのかを調停する機能を備えている。したがって、アクセスリクエスト発行部１２は、疑似アクセス命令が実行されずに滞留することを回避できる。
【００６１】
尚、本実施形態に係るアクセスリクエスト発行システム１では、アクセスリクエスト発行部１２は、グローバルスイッチ１１に備えられているが、この構成は一例に過ぎない。例えば、アクセスリクエスト発行部１２は、単体の装置などでもよく、各ノードに疑似アクセス命令の命令情報を与えて、各ノードに疑似アクセス命令を発行することを指示してもよい。
【００６２】
＜第２の実施形態＞
図７は、第２の実施形態のアクセスリクエスト発行装置４０の構成を概念的に示すブロック図である。
【００６３】
本実施形態に係るアクセスリクエスト発行装置４０は、格納部４１、及び、実行部４２を備えている。
【００６４】
格納部４１は、通信可能に接続された複数の情報処理装置のうちの、第１の情報処理装置５０から第２の情報処理装置６０に対するアクセス命令であって、第１の情報処理装置５０が実際には発行していない係るアクセス命令を、疑似アクセス命令として、外部から入力された係る疑似アクセス命令に関する命令情報を、疑似アクセス命令情報４１０として格納している。
【００６５】
実行部４２は、第１の情報処理装置５０が実際に発行した係るアクセス命令である通常アクセス命令が発行される際に、格納部４１から疑似アクセス命令情報４１０を読み出して、係る疑似アクセス命令を実行する。
【００６６】
本実施形態に係るアクセスリクエスト発行装置４０は、複数の情報処理装置が通信可能に接続されたシステムにおいて、情報処理装置同士を接続するインタフェース部分に関する高品質な評価を効率的に行うことができる。その理由は、格納部４１が情報処理装置間を跨るアクセスを行う疑似アクセス命令の命令情報を格納し、実行部４２が係る疑似アクセス命令を実行するからである。
【００６７】
＜ハードウェア構成例＞
上述した各実施形態において図１、及び、図７に示した各部は、専用のＨＷ（ＨａｗｄＷａｒｅ）（電子回路）によって実現することができる。また、少なくとも、格納部１３及び４１、及び、実行部１４及び４２は、ソフトウェアプログラムの機能（処理）単位（ソフトウェアモジュール）と捉えることができる。但し、これらの図面に示した各部の区分けは、説明の便宜上の構成であり、実装に際しては、様々な構成が想定され得る。この場合のハードウェア環境の一例を、図８を参照して説明する。
【００６８】
図８は、本発明の模範的な実施形態に係る、アクセスリクエスト発行部１２及びアクセスリクエスト発行装置４０を実行可能な情報処理装置９００（コンピュータ）の構成を例示的に説明する図である。即ち、図８は、図１に示したアクセスリクエスト発行部１２、及び、図７に示したアクセスリクエスト発行装置４０を実現可能なコンピュータ（情報処理装置）の構成であって、上述した実施形態における各機能を実現可能なハードウェア環境を表す。
【００６９】
図８に示した情報処理装置９００は、ＣＰＵ９０１、ＲＯＭ（Ｒｅａｄ＿Ｏｎｌｙ＿Ｍｅｍｏｒｙ）９０２、ＲＡＭ（Ｒａｎｄｏｍ＿Ａｃｃｅｓｓ＿Ｍｅｍｏｒｙ）９０３、ハードディスク９０４（記憶装置）、外部装置との通信インタフェース９０５（Ｉｎｔｅｒｆａｃｅ：以降、「Ｉ／Ｆ」と称する）、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ＿Ｄｉｓｃ＿Ｒｅａｄ＿Ｏｎｌｙ＿Ｍｅｍｏｒｙ）等の記憶媒体９０７に格納されたデータを読み書き可能なリーダライタ９０８、及び、入出力インタフェース９０９を備え、これらの構成がバス９０６（通信線）を介して接続された一般的なコンピュータである。
【００７０】
そして、上述した実施形態を例に説明した本発明は、図８に示した情報処理装置９００に対して、その実施形態の説明において参照したブロック構成図（図１、及び、図７）における、格納部１３及び４１、及び、実行部１４及び４２、或いはフローチャート（図５Ａ、図５Ｂ、及び、図６）の機能を実現可能なコンピュータプログラムを供給した後、そのコンピュータプログラムを、当該ハードウェアのＣＰＵ９０１に読み出して解釈し実行することによって達成される。また、当該装置内に供給されたコンピュータプログラムは、読み書き可能な揮発性の記憶メモリ（ＲＡＭ９０３）またはハードディスク９０４等の不揮発性の記憶デバイスに格納すれば良い。
【００７１】
また、前記の場合において、当該ハードウェア内へのコンピュータプログラムの供給方法は、ＣＤ−ＲＯＭ等の各種記憶媒体９０７を介して当該装置内にインストールする方法や、インターネット等の通信回線を介して外部よりダウンロードする方法等のように、現在では一般的な手順を採用することができる。そして、このような場合において、本発明は、係るコンピュータプログラムを構成するコード或いは、そのコードが格納された記憶媒体９０７によって構成されると捉えることができる。
【００７２】
以上、上述した実施形態を模範的な例として本発明を説明した。しかしながら、本発明は、上述した実施形態には限定されない。即ち、本発明は、本発明のスコープ内において、当業者が理解し得る様々な態様を適用することができる。
【符号の説明】
【００７３】
１    アクセスリクエスト発行システム
１０乃至３０    ノード
１１    グローバルスイッチ
１２    アクセスリクエスト発行部
１３    格納部
１３０    疑似アクセス命令テーブル
１３１    アクセス先フラグ
１３２    疑似アクセス命令種別
１３３    疑似アクセス命令データ
１３４    期待値チェック有効フラグ
１３５    期待値エラーフラグ
１４    実行部
１４０    リクエストデコード部
１４１    リプライデコード部
１４２    制御レジスタ
１４２０    制御レジスタエントリ
１４２１    通常アクセス命令有効フラグ
１４２２    アクセス先フラグ
１４２３    命令処理中フラグ
１４２４    疑似アクセス命令有効フラグ
１４２５    疑似アクセス命令エントリ
１４２６    疑似アクセス命令識別フラグ
１４３    受信バッファ
１４４    調停部
１４５    リプライ発行部
１４６    調停部
１４７    リクエスト発行部
１４８    疑似アクセス命令優先判定部
１４８０    疑似アクセス命令優先フラグ
１４８１    疑似アクセス命令優先期間タイマー
１４８２    優先期間閾値
１４８３    通常アクセス命令優先期間タイマー
１４８４    優先期間閾値
１５０乃至１５１    プロセッサ
１６０乃至１６１    メモリ
１７０乃至１７１    ＩＯ制御部
１８０乃至１８１    ＩＯカード
１９０    ディレクトリ
４０    アクセスリクエスト発行装置
４１    格納部
４１０    疑似アクセス命令情報
４２    実行部
５０    第１の情報処理装置
６０    第２の情報処理装置
９００    情報処理装置
９０１    ＣＰＵ
９０２    ＲＯＭ
９０３    ＲＡＭ
９０４    ハードディスク
９０５    通信インタフェース
９０６    バス
９０７    記憶媒体
９０８    リーダライタ
９０９    入出力インタフェース
【図１】
2015232841.tif 000003
【図２】
2015232841.tif 000004
【図３】
2015232841.tif 000005
【図４】
2015232841.tif 000006
【図５Ａ】
2015232841.tif 000007
【図５Ｂ】
2015232841.tif 000008
【図６】
2015232841.tif 000009
【図７】
2015232841.tif 000010
【図８】
2015232841.tif 000011