(57)【特許請求の範囲】
【請求項１】
記憶部と前記記憶部へのアクセスを制御する複数の制御部とをそなえるシステムにおける性能を測定する機能を、コンピュータに実現させる装置検証プログラムであって、
前記記憶部のアクセス対象のアドレスが設定されるアドレス領域と当該アクセス対象へのアクセスを制御する一の制御部を前記複数の制御部の中から指定する指定情報が設定される指定領域とを含むアドレス情報における前記指定領域を推定する推定部、および、
前記推定部によって推定された前記指定領域における指定情報に基づいて前記記憶部に対するアクセスを行ない、前記システムの負荷時の信頼性を検証する検証部として、前記コンピュータを機能させることを特徴とする、装置検証プログラム。
【請求項２】
前記推定部は、前記アドレス情報における複数のビットの値を前記アドレス情報における下位のビットから順に固定した複数の状態で複数のアドレスを生成し、各状態において、生成した前記複数のアドレスに対してアクセスを行ない前記システムの性能を測定し、各状態での性能測定結果と各状態で値を固定した前記ビットの位置とに基づいて前記指定領域を推定するように、前記コンピュータを機能させることを特徴とする、請求項１記載の装置検証プログラム。
【請求項３】
前記推定部は、各状態において、各状態で固定されるビット数に応じた所定ビット値を、基準となるアドレスに対して繰り返し加算することで、前記複数のアドレスを生成するように、前記コンピュータを機能させることを特徴とする、請求項２記載の装置検証プログラム。
【請求項４】
前記推定部は、前記複数の状態のうちの一の状態での性能測定結果が、基準となる性能測定結果よりも低下している場合、前記一の状態での性能測定結果を推定対象として特定し、特定された推定対象の性能を測定した際に用いられた前記所定ビット値に基づいて前記指定領域を推定するように、前記コンピュータを機能させることを特徴とする、請求項３記載の装置検証プログラム。
【請求項５】
前記所定ビット値において、最上位ビットの値は１であるとともに、他のビットの値は全て０であり、
前記推定部は、前記推定対象の性能を測定した際に用いられた前記所定ビット値における最上位ビットの次のビットの位置に対応する、前記アドレス情報の一ビットを前記指定領域として推定するように、前記コンピュータを機能させることを特徴とする、請求項４記載の装置検証プログラム。
【請求項６】
前記推定部は、前記アドレス情報の一ビットを前記指定領域として推定した後さらに前記推定領域の推定を行なう場合、前記指定領域であると推定された前記一ビットの値として０と１とが交互に存在するように前記複数のアドレスを生成するように、前記コンピュータを機能させることを特徴とする、請求項５記載の装置検証プログラム。
【請求項７】
前記推定部による前記複数のアドレスに対するアクセスは、前記各状態において、互いに異なるアクセス幅であることを特徴とする、請求項１〜請求項５のいずれか一項に記載の装置検証プログラム。
【請求項８】
前記検証部は、複数のアドレス情報をランダムに生成し、生成された前記複数のアドレス情報を、前記推定部によって推定された前記指定領域における指定情報に従ってソートし、ソートされた前記複数のアドレス情報に基づいて前記記憶部に対するアクセスを行ない、前記システムの負荷時の信頼性を検証するように、前記コンピュータを機能させることを特徴とする、請求項１〜７のいずれか一項に記載の装置検証プログラム。
【請求項９】
記憶部と前記記憶部へのアクセスを制御する複数の制御部とをそなえるシステムにおける性能をコンピュータが測定する性能測定方法であって、
前記コンピュータの推定部が、前記記憶部のアクセス対象のアドレスが設定されるアドレス領域と当該アクセス対象へのアクセスを制御する一の制御部を前記複数の制御部の中から指定する指定情報が設定される指定領域とを含むアドレス情報における前記指定領域を推定し、
前記コンピュータの検証部が、推定された前記指定領域における指定情報に基づいて前記記憶部に対するアクセスを行ない、前記システムの性能を測定することを特徴とする、性能測定方法。
【請求項１０】
記憶部と前記記憶部へのアクセスを制御する複数の制御部とをそなえるシステムにおける性能を測定する性能測定装置であって、
前記記憶部のアクセス対象のアドレスが設定されるアドレス領域と当該アクセス対象へのアクセスを制御する一の制御部を前記複数の制御部の中から指定する指定情報が設定される指定領域とを含むアドレス情報における前記指定領域を推定する推定部と、
前記推定部によって推定された前記指定領域における指定情報に基づいて前記記憶部に対するアクセスを行ない、前記システムの負荷時の信頼性を検証する検証部と、をそなえることを特徴とする、性能測定装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本件は、システムの負荷検証における装置検証プログラム，性能測定方法及び性能測定装置に関する。
【背景技術】
【０００２】
図１８は、情報処理システムの構成例を示すブロック図である。図１８に示すシステム１００は、制御部１１０，ＣＰＵ（Central Processing Unit）１２０，メモリ１３０及びＩ／Ｏ（Input/Output）チャネル１４０をそなえている。
制御部１１０は、ＣＰＵ１２０やＩ／Ｏチャネル１４０からメモリ１３０へのメモリアクセスを調停するものであり、例えば、システムコントローラが挙げられる。
【０００３】
図１８に示すようなシステム１００に対する負荷検証を行なう場合、負荷発生装置やソフトウェアでは、ＣＰＵ１２０やＩ／Ｏチャネル１４０から、メモリ１３０へランダムにメモリアクセスを頻発させる方法が用いられている。
なお、負荷発生装置が、負荷対象アドレスを任意のアドレス間隔でメモリ空間に変更するようなＤＭＡ（Direct Memory Access）用のパターンを作成し、ＤＭＡを実行することで試験対象システムに様々なアクセスパターンの負荷を与える方法が知られている。
【０００４】
また、サーバコンピュータネットワークにおいて、性能テストシステムが、テスト用論理セグメントとスイッチドネットワークとをそなえることで、テスト対象装置から発生する負荷を特定のテスト対象装置に集中させる構成も知られている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００８−０５９３３８号公報
【特許文献２】特開２００８−１９１８３７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
近年、複数のＣＰＵ及び複数の制御部をそなえるシステムが開発されている。
このようなシステムは、複数のＣＰＵによるメモリへのアクセス要求によって一つの制御部にアクセスが集中しないように、制御部間で負荷分散を行なうことが知られている。
負荷分散としては、例えば、利用頻度の高い、連続した領域へのメモリアクセスに対して、個々の制御部にメモリアクセスが集中しないように、メモリアドレス毎にメモリアクセスを調停する制御部を割り当てるものがある。
【０００７】
また、このようなシステムの制御部は、複数のＣＰＵからメモリの同一アドレスへのアクセスが発生すると、後続のＣＰＵのアクセス先を、先に当該メモリアドレスにアクセスをしたＣＰＵのキャッシュメモリに向けることで、制御部及びメモリに生じる負荷を軽減することが知られている。
ここで、制御部が後続のＣＰＵのアクセス先を他のＣＰＵのキャッシュメモリに向けないような場合には、制御部は、メモリの同一アドレスにアクセスをした順序で複数のＣＰＵの順序保証を行ない、後続のＣＰＵのアクセスを止めることになる。
【０００８】
また、複数のＣＰＵからメモリの同一アドレスへのアクセスが発生すると、同一アドレスに対するアクセス要求が滞留することにより、当該アクセスの最下流に存在するメモリがシステムのボトルネックとなることも知られている。
一方、上述したシステムに対する負荷検証を行なう場合、複数のＣＰＵからメモリの同一アドレスへのアクセスを発生させても、各ＣＰＵのキャッシュメモリの参照，制御部による順序保証，及びメモリにおけるアクセス要求の滞留等により、制御部に対する負荷が低下することになる。
【０００９】
従って、上述したシステムに対する負荷検証を行なう場合、負荷発生装置やソフトウェアは、複数のＣＰＵからメモリへランダムにメモリアクセスを頻発させて、個々の制御部に対してアクセスを集中させることは困難である。
すなわち、上述したように、システムによる負荷分散により、メモリアドレス毎に複数の制御部のうちのいずれかの制御部が割り当てられているため、メモリアクセスのアクセス先（メモリアドレス）がランダムである以上、特定の制御部に対して負荷を集中させることは難しい。また、メモリアクセスのアクセス先（メモリアドレス）がランダムである以上、ＣＰＵのキャッシュメモリにアクセスが向けられるようなメモリアクセスが発生する可能性もある。
【００１０】
そして、上述のような場合には、制御部に対する負荷が低下し、システムに対する負荷検証の信頼性が低下する。
また、上述した、負荷発生装置がＤＭＡ用のパターンを作成し、ＤＭＡを実行する方法では、その対象として、上述のような負荷分散を行なう複数の制御部をそなえるシステムは想定されていない。従って、上述の方法では、ＣＰＵからのメモリアクセスによる負荷が複数の制御部に亘るような状態遷移を作り出すことは難しい。また、上述の方法では、複数のＣＰＵからメモリの同一アドレスへのアクセスが発生し、制御部の負荷が低下することについては考慮されていない。
【００１１】
負荷分散が行なわれる複数の制御部を含むシステムにおいて、特定の制御部に対して負荷を集中させる方法は、知られていない。
ここまで、複数のＣＰＵからのメモリアクセスを複数の制御部が調停する場合を説明したが、複数のＩ／Ｏチャネル等のインターフェースを介してメモリ等の記憶部へアクセスを行なう際に、メモリアクセスを複数の制御部が調停する場合でも同様の問題がある。その他、アクセス先のアドレスに基づいて複数の制御部の切り替えを行なう機能を持つ他のシステムにおいても同様の問題がある。
【００１２】
本件の目的の一つは、システム内の制御部間で負荷分散を行なうシステムにおいて、個々の制御部に負荷を容易に与えられるようにして、負荷検証の信頼性の向上を実現することである。
なお、前記目的に限らず、後述する発明を実施するための形態に示す各構成により導かれる作用効果であって、従来の技術によっては得られない作用効果を奏することも本発明の他の目的の一つとして位置付けることができる。
【課題を解決するための手段】
【００１３】
本件の装置検証プログラムは、記憶部と記憶部へのアクセスを制御する複数の制御部とをそなえるシステムにおける性能を測定する機能を、コンピュータに実現させる装置検証プログラムであって、記憶部のアクセス対象のアドレスが設定されるアドレス領域と当該アクセス対象へのアクセスを制御する一の制御部を複数の制御部の中から指定する指定情報が設定される指定領域とを含むアドレス情報における指定領域を推定する推定部、および、推定部によって推定された指定領域における指定情報に基づいて記憶部に対するアクセスを行ない、システムの負荷時の信頼性を検証する検証部として、コンピュータを機能させるものである。
【００１４】
また、本件の性能測定方法は、記憶部と記憶部へのアクセスを制御する複数の制御部とをそなえるシステムにおける性能をコンピュータが測定する性能測定方法であって、前記コンピュータの推定部が、記憶部のアクセス対象のアドレスが設定されるアドレス領域と当該アクセス対象へのアクセスを制御する一の制御部を複数の制御部の中から指定する指定情報が設定される指定領域とを含むアドレス情報における指定領域を推定し、前記コンピュータの検証部が、推定された指定領域における指定情報に基づいて記憶部に対するアクセスを行ない、システムの性能を測定するものである。
【００１５】
さらに、本件の性能測定装置は、記憶部と記憶部へのアクセスを制御する複数の制御部とをそなえるシステムにおける性能を測定する性能測定装置であって、記憶部のアクセス対象のアドレスが設定されるアドレス領域と当該アクセス対象へのアクセスを制御する一の制御部を複数の制御部の中から指定する指定情報が設定される指定領域とを含むアドレス情報における指定領域を推定する推定部と、推定部によって推定された指定領域における指定情報に基づいて記憶部に対するアクセスを行ない、システムの負荷時の信頼性を検証する検証部と、をそなえるものである。
【発明の効果】
【００１６】
開示の技術によれば、システム内の制御部間で負荷分散を行なうシステムにおいて、個々の制御部に負荷を容易に与えることができ、負荷検証における装置の信頼性を大幅に向上させることができる。
【図面の簡単な説明】
【００１７】
【図１】第１実施形態のシステムの構成例を示すブロック図である。
【図２】第１実施形態のシステムの構成例を示すブロック図である。
【図３】第１実施形態の記憶部のアドレス情報による制御部の割付例を示す図である。
【図４】第１実施形態の記憶部の物理領域と制御部の割付との関係を示す図である。
【図５】第１実施形態の他のシステムの記憶部のアドレス情報による制御部の割付例を示す図である。
【図６】第１実施形態の推定部によるアドレスの加算方法を説明するための図である。
【図７】第１実施形態の推定部のアクセスによる制御部の動作を示す図である。
【図８】第１実施形態の推定部のアクセスによるシステムの性能を示す図である。
【図９】第１実施形態の推定部による制御部に対する時間当たりのアクセス数を示す図である。
【図１０】第１実施形態の検証部が生成するアドレス情報を示す図である。
【図１１】第１実施形態の検証部による負荷集中アクセスを示す図である。
【図１２】第１実施形態の検証部による負荷集中アクセスを示す図である。
【図１３】第１実施形態の検証部による負荷集中アクセスを示す図である。
【図１４】第１実施形態のシステムの負荷状況を示す図である。
【図１５】第１実施形態の推定部の動作を説明するためのフローチャートである。
【図１６】第１実施形態の検証部の動作を説明するためのフローチャートである。
【図１７】その他のシステムの構成例を示すブロック図である。
【図１８】一般的な情報処理システムの構成例を示すブロック図である。
【発明を実施するための形態】
【００１８】
以下、図面を参照して本発明の実施の形態を説明する。
（Ａ）第１実施形態
（Ａ−１）第１実施形態のシステムの構成
図１は、第１実施形態のシステム１の構成例を示すブロック図である。
システム１は、複数、図１に示す例では二つの制御部１０−１及び１０−２と、処理部２０と、記憶部３０とを含む。
【００１９】
制御部１０−１及び１０−２は、処理部２０から記憶部３０へのアクセスを調停するものである。
制御部１０−１及び１０−２は、本実施形態における装置検証プログラムの検証対象である。
制御部１０−１及び１０−２としては、例えば、システムコントローラが挙げられる。以下、制御部１０−１及び１０−２として、システムコントローラを用いた場合を説明するが、本発明はこれに限られず、システムコントローラに替えて、処理部２０から記憶部３０へのアクセスを調停する機能を持つ他の装置を用いてもよい。
【００２０】
以下、制御部を示す符号としては、複数の制御部のうちの一つを特定する必要があるときには符号１０−１及び１０−２を用いるが、任意の制御部を指すときには符号１０を用いる。
処理部２０は、配下の制御部１０−１及び１０−２のいずれか一方を介して、記憶部３０に対してアクセスを行なう。
【００２１】
処理部２０としては、例えば、ＣＰＵや、Ｉ／Ｏチャネル等のインターフェースを介して記憶部３０へアクセスを行なう他の処理装置等が挙げられる。以下、処理部２０として、ＣＰＵを用いた場合を説明するが、本発明はこれに限られず、ＣＰＵに替えて、Ｉ／Ｏチャネル等のインターフェースを介して記憶部３０へアクセスを行なう機能を持つ他の装置を用いてもよい。
【００２２】
処理部２０は、システム１の性能を測定するため、推定部２１と、検証部２２とを含む。ここで、推定部２１及び検証部２２としての機能は、処理部２０が記憶部３０等にインストールされた装置検証プログラムを実行することにより実現される。
なお、推定部２１及び検証部２２の詳細については、後述する。
記憶部３０は、システム１上の記憶装置であり、システム１上で用いられるデータを記憶部３０の記憶領域に保持するものである。
【００２３】
記憶部３０としては、例えば、メモリ等が挙げられる。記憶部３０は、記憶領域を構成する、複数のメモリ素子をそなえる。
以下、記憶部３０の記憶領域のアドレスを示す情報を「アドレス情報」という。
。
なお、図１においては、一つの処理部２０のみがシステム１に含まれているが、複数の処理部がシステムに含まれてもよい。
【００２４】
図２は、第１実施形態の他のシステム１′の構成例を示すブロック図である。
なお、図２中、既述の符号と同一の符号が付された箇所は、同一もしくは略同一の箇所を示しているので、その説明の一部を省略する。
システム１′は、複数、図２に示す例では二つの制御部１０−１及び１０−２と、複数、図２に示す例では二つの処理部２０−１及び２０−２と、記憶部３０とを含む。
【００２５】
処理部２０−１及び２０−２は、それぞれ、配下の制御部１０−１及び１０−２のいずれか一方を介して、記憶部３０に対してアクセスを行なう。
処理部２０−１及び２０−２としては、例えば、ＣＰＵや、Ｉ／Ｏチャネル等のインターフェースを介して記憶部３０へアクセスを行なう他の処理装置等が挙げられる。以下、処理部２０−１及び２０−２として、ＣＰＵを用いた場合を説明するが、ＣＰＵに替えて、Ｉ／Ｏチャネル等のインターフェースを介して記憶部３０へアクセスを行なう機能を持つ他の装置を用いてもよい。
【００２６】
以下、処理部を示す符号としては、複数の処理部のうちの一つを特定する必要があるときには符号２０−１及び２０−２を用いるが、任意の処理部を指すときには符号２０を用いる。
図２に示す如く、複数の処理部がシステムに含まれる場合、制御部１０は、記憶部３０のメモリデータが各処理部間で正しく参照できるように調停を行なう。
【００２７】
処理部２０−１は、推定部２１−１と、検証部２２−１とを含む。同様に、処理部２０−２は、推定部２１−２と、検証部２２−２とを含む。ここで、推定部２１−１，２１−２及び検証部２２−１，２２−２としての機能は、処理部２０−１及び２０−２が記憶部３０等にインストールされた装置検証プログラムを実行することにより実現される。
以下、推定部を示す符号としては、複数の推定部のうちの一つを特定する必要があるときには符号２１−１及び２１−２を用いるが、任意の推定部を指すときには符号２１を用いる。また、検証部を示す符号としては、複数の検証部のうちの一つを特定する必要があるときには符号２２−１及び２２−２を用いるが、任意の検証部を指すときには符号２２を用いる。
【００２８】
システム１，１′は、推定部２１及び検証部２２により、特定の制御部１０に負荷を集中させる負荷検証（負荷実験）を行なう。
推定部２１及び検証部２２の詳細な動作については、システム１′の通常処理時／非負荷検証時の説明をした後に、システム１′の負荷試験時の説明において詳述する。
なお、通常処理時とは、システム１′で装置検証等の試験が行なわれておらず、通常の処理が行なわれている状態をいうものとする。また、非負荷検証時とは、システム１′で装置検証等の試験が行なわれているが、特定の制御部１０に負荷が集中する負荷試験は行なわれていない状態をいうものとする。
【００２９】
負荷試験時とは、システム１′で特定の制御部１０に負荷が集中する負荷試験が行なわれている状態をいうものとする。
以下、図２に示すシステム１′を参照しながら、本実施形態におけるシステム１′の動作について説明するが、特に断らない限り、図１に示すシステム１も同様の動作を行なう。
【００３０】
（Ａ−２）第１実施形態のシステムの通常処理時／非負荷試験時の動作
次に、図２に示すシステム１′を参照しながら、システム１′の通常処理時／非負荷試験時の動作について説明する。
システム１′は、処理部２０による記憶部３０へのアクセス要求によって一つの制御部１０にアクセスが集中しないように、制御部１０−１及び１０−２間で負荷分散を行なう。
【００３１】
負荷分散としては、例えば、利用頻度の高い、記憶部３０の連続した領域へのアクセスに対して、特定の制御部に負荷が集中しないように、アドレス毎にアクセスを調停する制御部１０を割り当てるインターリーブが挙げられる。
図２に示す例においては、システム１′は、処理部２０から記憶部３０へのアクセスが発生すると、当該アクセスを、アクセス対象のアドレスに割り当てられた制御部１０のいずれかに調停させる。
【００３２】
このように、システム１′は、処理部２０から記憶部３０へのアクセスに対して、アクセス対象のアドレス情報内の所定の領域に設定された情報に基づいて、特定の制御部１０に負荷が集中しないように負荷分散を行なう。換言すれば、システム１′は、負荷分散により、メモリの連続したアドレスへのアクセスが行われても所望の性能を発揮するように設計されるといえる。
【００３３】
以下、記憶部３０のアクセス対象へのアクセスを制御する制御部を指定する情報が設定されるアドレス情報の領域を指定領域という。また、指定領域に設定される情報を、指定情報という。
システム１′が、制御部１０−１及び１０−２のうちのいずれの制御部を記憶部３０へのアクセスに用いるかを判断する指定情報は、第１実施形態においては、例えば、記憶部３０のアクセス対象を示すアドレス情報のうちの指定領域のビットの値が挙げられる。
【００３４】
図３は、第１実施形態のシステム１′の記憶部３０のアドレス情報による制御部１０の割付例を示す図である。
図３に示す例においては、記憶部３０のアドレス情報、つまり“−”，“Ｃ”又は“Ｄ”が付されている、アドレスビット０以降の範囲のうち、“Ｃ”及び“Ｄ”が付されている、アドレスビット４以降の範囲のビットは、記憶部３０のアドレスを示すビットである。
【００３５】
以下、アドレス情報内の記憶部３０のアドレスが割り当てられた領域、すなわち、記憶部３０のアクセス対象のアドレスが設定される領域を、アドレス領域という。図３に示す例においては“Ｃ”及び“Ｄ”が付されている、アドレスビット４以降の範囲の領域のビットを、アドレス領域という。
また、記憶部３０のアドレス情報のうち、“Ｃ”が付されているアドレスビット５は、指定領域、つまりアクセスに用いる制御部１０を割り当てるためのビットである。
【００３６】
ここで、アドレスビット５は、記憶部３０のアドレスを示すビットの一部であると同時に、制御部１０の割り当てを行なうビットでもある。このように、制御部１０割り当てを行なうビットは、記憶部３０のアドレス割り当てを行なう範囲に存在していてもよい。また、制御部１０の割り当てを行なう範囲（ビット）は、記憶部３０のアドレス割り当てを行なう範囲とは異なる範囲に存在してもよい。すなわち、上述した指定領域は、アドレス領域の一部の領域であってよく、アドレス領域とは異なる領域であってもよい。
【００３７】
記憶部３０のアドレス情報のうち、アドレスビット０〜３、つまり図３中“−”が付されている範囲のビットは、記憶部３０の記憶領域を構成するメモリ素子を特定する領域である。
上述のことから、アドレス情報には、図３中、“Ｃ”又は“Ｄ”が付されている、アドレスビット４以降の範囲のアドレス領域と、図３中、“−”が付されている、アドレスビット０〜３の範囲の記憶部３０の記憶領域を構成するメモリ素子を特定する領域とが含まれる。
【００３８】
システム１′は、処理部２０から記憶部３０へのアクセスが発生すると、アクセス対象となる記憶部のアドレスを示すアドレス情報のアドレスビット５に設定された値を参照する。そして、システム１′は、予め設定された制御部１０の振り分け規則に従い、参照した値に基づいて、当該アクセスを制御部１０−１又は１０−２のいずれに割り当てるかを指定する。
【００３９】
例えば、システム１′は、アドレスビット５の値が“０”の場合には、処理部２０から記憶部３０へのアクセスを、制御部１０−１に割り当てる。一方、システム１′は、アドレスビット５の値が“１”の場合には、処理部２０から記憶部３０へのアクセスを、制御部１０−２に割り当てる。
図４は、第１実施形態の記憶部３０の物理領域と制御部１０の割付との関係を示す図である。
【００４０】
図４に示すように、記憶部３０のアドレス範囲毎にいずれかの制御部１０が割り当てられている。
このアドレス範囲の幅は、上述した図３に示す制御部１０を割り当てるビットの位置によって決定される。図３に示す例においては、“Ｃ”を付されたアドレスビット５が制御部１０を割り当てるビットである。
【００４１】
上述のように、図３に示す例では、システム１′は、アドレスビット５の値が“０”のときに、処理部２０から記憶部３０へのアクセスを、制御部１０−１に割り当てる。また、システム１′は、アドレスビット５の値が“１”のときに、処理部２０から記憶部３０へのアクセスを、制御部１０−２に割り当てる。
従って、図４に示すように、記憶部３０の物理領域が連続したアドレスにおいて、アドレスビット５の値が“０”から“１”に遷移したときに、当該アドレスへのアクセスを調停する制御部が制御部１０−１から制御部１０−２に切り替わる。また、アドレスビット５の値が“１”から“０”に遷移したときに、当該アドレスへのアクセスを調停する制御部が制御部１０−２から制御部１０−１に切り替わる。
【００４２】
従って、図３に示す例において、アドレスビット５〜０の範囲に着目すると、アドレスビット５〜０の値が“００００００”から“０１１１１１”の範囲である場合には、当該アドレスへのアクセスは制御部１０−１が調停する。一方、アドレスビット５〜０の値が“１０００００”から“１１１１１１”の範囲である場合には、当該アドレスへのアクセスは制御部１０−２が調停する。
【００４３】
このように、システム１′は、処理部２０からの記憶部３０の連続したアドレスへのアクセスに対して、アクセス対象のアドレス情報に基づいて、特定の制御部１０に負荷が集中しないように負荷分散を行なう。
なお、上述した指定領域は、複数のアドレスビットであってもよい。図５を用いて、指定領域が二箇所のアドレスビットである場合について説明する。
【００４４】
図５は、第１実施形態の他のシステム１″の記憶部３０のアドレス情報による制御部の割付例を示す図である。
図５に示すシステム１″は、四つの制御部１０−１〜１０−４をそなえ、制御部１０−１〜１０−４を２ビットの指定領域で区別する点が、図３に示すシステム１′と異なる。
図３に示すシステム１′は、１ビットの指定領域の値“０”又は“１”を二つの制御部１０−１，１０−２に割り当てることができたが、システム１″は、四つの制御部１０−１〜１０−４をそなえるため、１ビットの指定領域の値“０”又は“１”を制御部１０−１〜１０−４に割り当てることができない。
【００４５】
一方、指定領域を２ビットとし、指定領域のビットを２ビットの値として組み合わせると、システム１″は、制御部１０−１〜１０−４の数と同数の“００”，“０１”，“１０”，“１１”を四つの制御部１０−１〜１０−４に割り当てることができる。
従って、システム１″は、２ビットの指定領域の値に基づいて、処理部２０から記憶部３０へのアクセスを調停する制御部１０−１〜１０−４を切替える。
【００４６】
なお、図５中、既述の符号と同一の符号が付された箇所は、同一もしくは略同一の箇所を示しているので、その説明の一部を省略する。
以下、図５を用いて、記憶部３０のアドレス情報による制御部１０−１〜１０−４の割付例を説明する。
システム１″は、システム１′と同様に、通常動作時／非負荷試験時には、処理部２０による記憶部３０へのアクセス要求によって一つの制御部１０にアクセスが集中しないように、制御部１０−１〜１０−４間で負荷分散を行なう。
【００４７】
図５に示す例においては、記憶部３０のアドレス情報のうちの、アドレスビット５及び９、つまり図５中“Ｃ”が付されているビットが、指定領域、つまり制御部１０の割り当てを行なうビットである。
ここで、アドレスビット５及び９は、上述したように、記憶部３０内のアドレス割り当てを行なうビットであると同時に、制御部１０の割り当てを行なうビットでもある。このように、システム１′の場合と同様に、制御部１０の割り当てを行なうビットは、記憶部３０内のアドレス割り当てを行なう範囲に存在していてもよい。また、制御部１０の割り当てを行なう範囲は、記憶部３０内のアドレス割り当てを行なう範囲とは異なる範囲に存在してもよい。
【００４８】
なお、指定領域が複数のビットである場合は、指定領域のそれぞれのビットは、図５に示すアドレスビット５及び９のように離れていてもよいし、例えばアドレスビット５及び６のように隣接していてもよい。
システム１″は、処理部２０から記憶部３０へのアクセスが発生すると、指定領域、つまり図５に示す割付例においてはアドレスビット５及び９に設定された値を参照する。そして、システム１″は、予め設定された制御部１０の振り分け規則に従い、参照した値に基づいて、当該アクセスを制御部１０−１〜１０−４のいずれに割り当てて調停させるかを指定する。
【００４９】
このとき、システム１″は、アドレス情報の指定領域に設定された二つのアドレスビットを２ビットのデータとして組み合わせ、“００”,“０１”，“１０”又は“１１”の情報とすることで、制御部１０−１〜１０−４のいずれかの制御部１０を選択する。
例えば、システム１″は、アドレスビット９の値が“０”かつアドレスビット５の値が“０”の場合、つまり図５に示すように、アドレスビット９及び５を組み合わせてＣ＝“００”となる場合には、処理部２０から記憶部３０へのアクセスを、制御部１０−１に割り当てて調停させる。また、システム１″は、アドレスビット９の値が“０”かつアドレスビット５の値が“１”の場合、つまり図５に示すように、Ｃ＝“０１”となる場合には、処理部２０から記憶部３０へのアクセスを、制御部１０−２に割り当てて調停させる。さらに、システム１″は、アドレスビット９の値が“１”かつアドレスビット５の値が“０”の場合、つまり図５に示すように、Ｃ＝“１０”となる場合には、処理部２０から記憶部３０へのアクセスを、制御部１０−３に割り当てて調停させる。そして、システム１″は、アドレスビット９の値が“１”かつアドレスビット５の値が“１”の場合、つまり図５に示すように、Ｃ＝“１１”となる場合には、処理部２０から記憶部３０へのアクセスを、制御部１０−４に割り当てて調停させる。
【００５０】
このように、四つの制御部１０を含むシステム１″においても、図３を用いて説明したシステム１′と同様に、アドレス情報の指定領域に設定されたアドレスビットの値に基づいて、処理部２０から記憶部３０へのアクセスを調停する制御部１０を切り替える。
上述のように、制御部１０を四つ含むシステム１″においては、指定領域として、アドレス情報には任意の位置の二つのアドレスビットが設定される。
【００５１】
同様に、制御部１０を２ｍ個（ｍは、１以上の整数）含むシステムにおいては、指定領域として、アドレス情報には任意の位置のｍ個のアドレスビットが設定され、システムは、ｍ個のアドレスビットの値に基づいて、処理部２０から記憶部３０へのアクセスを調停する制御部１０を切り替える。
（Ａ−３）第１実施形態のシステムの負荷試験時の動作
次に、図２に示すシステム１′を参照しながら、システム１′の負荷試験時の動作について説明する。
【００５２】
上述のように、負荷試験時とは、システム１′で特定の制御部１０に負荷が集中する負荷試験が行なわれている状態をいうものとする。
上述したシステム１′に対する負荷検証を行なう場合、処理部２０は、特定の制御部１０に負荷が集中するように、記憶部３０へランダムにメモリアクセスを頻発させる。しかし、システム１′による負荷分散により、アクセス対象のアドレス毎に制御部１０−１又は１０−２のいずれかが割り当てられているため、メモリアクセスのアクセス先がランダムである以上、アクセス先が発散し、特定の制御部１０に負荷を集中させることは難しい。
【００５３】
従って、特定の制御部１０に負荷を集中させる際には、事前に制御部１０のシステム１′上での構成を把握し、把握した構成に基づき特定の制御部１０経由で記憶部３０に対するアクセスを連続して行なうことが好ましい。
しかし、制御部１０−１及び１０−２は、ハードウェア上で、処理部２０から発行された記憶部３０へのアクセスの調停等の処理を行なうものであり、処理部２０により記憶部３０へのアクセスを行なうソフトウェア（プログラム）は、制御部１０を認識することができない。
【００５４】
つまり、制御部１０−１及び１０−２は、処理部２０により実行されるソフトウェア（プログラム）からは存在が見えない。
従って、システム１′が記憶部３０のアドレス情報内の領域のうち、いずれの領域に設定された情報に基づいて負荷分散を行なうかという情報や、システム１がそなえる制御部１０の数等の情報を、処理部２０により実行されるソフトウェアが得ることは難しい。すなわち、処理部２０により実行される装置検証プログラム等のソフトウェアによって、制御部１０のシステム１′上での構成を把握することが難しい。
【００５５】
そこで、本実施形態では、特定の制御部１０に負荷を集中させる負荷検証を行なう場合、推定部２１により、制御部１０のシステム１′上での構成を把握するために、記憶部３０のアドレス情報のうちの指定情報が設定される指定領域の位置が推定される。
そして、検証部２２により、推定部２１による推定結果に基づいて、特定の制御部１０に負荷を集中させて負荷検証が行なわれる。
【００５６】
なお、負荷を集中させるとは、短時間に対象の装置に対してアクセスを集中させることをいうものとする。
推定部２１は、処理部２０と制御部１０とを接続するアドレス線に着目し、制御部１０−１及び１０−２のうちのいずれの制御部を記憶部３０へのアクセスに用いるかを判断するために用いる情報が設定されたアドレス情報内の領域を、記憶部３０のアドレス情報から推定する。指定領域としては、例えば、図３に示す例において上述した、アドレスビット５、つまり図３中“Ｃ”が付されている範囲が挙げられる。記憶部３０のアドレス情報のうちの、記憶部３０のアドレスを示す領域、すなわち、記憶部３０のアクセス対象のアドレスが設定される領域であるアドレス領域としては、例えば、図３に示す例において上述した、アドレスビット４以降の“Ｃ”及び“Ｄ”が付されている範囲が挙げられる。
【００５７】
つまり、推定部２１は、アドレス情報における指定領域を推定する機能を有している。
なお、推定部２１による「推定」とは、記憶部３０へのアクセス動作を様々に変えることで負荷分散の指定領域の位置を見つけ出す動作をいうものとする。
推定部２１の詳細な動作は、後述する。
検証部２２は、特定の制御部１０に負荷を集中させるために生成した複数のアドレス情報を、推定部２１によって推定された指定領域に設定された指定情報に従ってソートする機能を有している。また、検証部２２は、ソートした複数のアドレス情報を用いて記憶部３０に対するアクセスを行ない、記憶部アクセス時のシステム１′の特定の制御部１０に負荷を集中させる機能を有している。より具体的に、検証部２２は、記憶部３０の複数のアドレス情報をランダムに生成し、推定部２１が推定した指定領域に設定された指定情報を参照して、生成した複数のアドレス情報を、参照した指定情報に従ってソートする。そして、検証部２２は、ソートした複数のアドレス情報を用いて記憶部３０に対するアクセスを行ない、アドレス情報が割り当てられている制御部１０を特定して記憶部３０に対するアクセスを行なうことで、特定の制御部１０に負荷を集中させて負荷検証を行なう。
【００５８】
上述の如く構成されたシステム１では、推定部２１によりアドレス情報における指定領域が推定される。そして、検証部２２では、推定部２１によって推定された指定領域に設定されている指定情報に基づいて、当該アドレス情報に割り当てられる制御部１０が特定され、特定の制御部１０に負荷を集中的に与えながらシステム１の信頼性が検証される。
（Ａ−３−１）第１実施形態の推定部の機能
以下、特定の制御部１０に負荷を集中させて負荷検証を行なう場合の、図２に示すシステム１′の推定部２１の機能について説明する。推定部２１としての機能は、処理部２０が記憶部３０等にインストールされた装置検証プログラムを実行することにより実現される。つまり、推定部２１の動作は、負荷検証（負荷試験）の実行タイミングで行なわれる。
【００５９】
推定部２１は、システム１′の制御部１０にアドレスが割付されていることを前提として、アドレス情報内の指定領域の位置を推定する。
例えば、推定部２１は、指定領域が存在する可能性のあるアドレス情報の領域の情報を固定して複数のアドレス情報を生成するとともに、生成した複数のアドレス情報に対してアクセスを行ない、システム１′の記憶部へアクセスした時の性能を測定する。推定部２１は、情報を固定する領域を順次変えてアドレス情報を生成し、生成したアドレス情報を用いて記憶部をアクセスし、そのときの性能を測定する。
【００６０】
そして、推定部２１は、各状態での性能測定結果と、各状態で情報を固定したアドレス情報の領域とに基づいて、アドレス情報内の指定領域の位置を推定する。
推定部２１は、例えば、以下の処理（ｉ）〜（iii）を行なうことで、指定領域であるビットの位置を推定する。
（ｉ）性能の基準として、システム１′に対して連続アクセスを行なったときの性能を測定する。
【００６１】
ここで、連続アクセスとは、最小単位のアクセスサイズで記憶部をアクセスする形態のアクセスをいうものとする。
（ii）システム１′に対して連続アクセス時のアクセス幅からアクセス幅を増加させた不連続アクセスを行なったときの性能を測定する。
ここで、不連続アクセスとは、連続アクセス時の最小単位のアクセスサイズ間隔から増加させたアクセスサイズ間隔で記憶部をアクセスする形態のアクセスをいうものとする。
【００６２】
推定部２１は、連続アクセス時のアクセス幅からアクセス幅を増加させる不連続アクセスを行なうとき、記憶部３０のアドレス情報内の領域で値を固定するアドレスビット数を増加させたアドレスを用いて、不連続アクセスを行なう。
（iii）基準としての性能よりも所定の範囲の性能の低下がみられたときに、どのビットの値を固定していたかによって、アドレス情報内の指定領域の位置を推定する。
【００６３】
（Ａ−３−１−１）まず、（ｉ）について説明する。
上述したように、システム１′は、通常処理時／非負荷試験時には、負荷分散により、領域が連続したアドレスへのアクセスが発生しても性能を発揮するように設計されている。そこで、推定部２１は、性能の基準として、システム１′において記憶部３０に対して連続アクセスを行なったときの性能を測定する。
【００６４】
ここで、記憶部に対するアクセスサイズの最小単位は、装置アーキテクチャ上のレジスタサイズとし、連続アクセスは、上述のように、最小単位のアクセスサイズで記憶部をアクセスする形態のアクセスをいうものとする。
以下、記憶部３０のアドレスは６４ビット長であり、システム１′のアーキテクチャ上のレジスタサイズは８バイトとする。
【００６５】
この場合の連続アクセスでは、推定部はアクセスサイズの最小単位はレジスタサイズ、つまり８バイト間隔で記憶部をアクセスする。
このとき、推定部２１は、連続アクセスのアドレスとして、８バイトのアクセス幅の連続するアドレスを複数生成し、生成したアドレスにより連続アクセスを実施する。
図６は、第１実施形態の推定部２１による、連続アクセス時及び不連続アクセス時のアドレス生成を説明するための図である。
【００６６】
図６（ａ）は、図３を用いて説明したアドレス情報のアドレスビット１６以下の範囲を示す。
図６（ｂ）は、（ｉ）において推定部２１が連続アクセス時のアドレスを生成する際の、アドレス情報に加算するアドレスの加算パターン、及び加算パターンが加算されたアドレス情報の１６ビット以下を示す。
【００６７】
図６（ｃ）〜（ｅ）は、（ii）において推定部２１が不連続アクセス時のアドレスを生成する際の、アドレス情報に加算するアドレスの加算パターン、及び加算パターンが加算されたアドレス情報の１６ビット以下を示す。
なお、先に図４に示した例において、記憶部３０のアドレス範囲毎にいずれかの制御部１０が割り当てられており、アドレスビット５に指定領域が存在すると仮定する。
【００６８】
推定部２１は、連続アクセスを行なう際に、基準となる任意のアドレスを生成し、生成した基準となる任意のアドレス情報に対して、連続アクセス時のアドレス加算パターンを順次加算し、当該アドレス情報内の下位ビットの値を“０”に固定する。
例えば、推定部２１は、連続アクセスを行なう際に、生成した基準となる任意のアドレスのアドレス情報に対して、先頭のビットに“１”が設定され、下位のビットに、アドレス情報の下位ビットのうち“０”に固定するビット数分“０”が連続して設定されるアドレス加算パターンを順次加算する。
【００６９】
この場合、推定部２１は、アドレス加算パターンを順次加算したとき、アドレス情報の下位ビットが“０”に固定されるように、基準となる任意のアドレス情報として、アドレス加算パターンを加算して“０”に固定するビットが“０”であるアドレス情報を用いる。
図６（ｂ）に示す例においては、推定部２１は、基準となる任意のアドレス情報に対して、連続アクセス時のアドレス加算パターンとして所定ビット値“１０００（２）（０ｘ８）”を順次加算し、アドレス情報内の部分領域としての下位３ビットのアドレスビット２〜０の値を“０”に固定する。
【００７０】
この場合、推定部２１は、アドレス加算パターンは“０”が３ビット連続するため、下位３ビットが“０”であるアドレス情報を、基準となる任意のアドレス情報として用いる。
なお、部分領域とは、アドレス情報のうちの、アドレス加算パターンが加算されることで値が“０”に固定されるビットの領域をいう。
【００７１】
そして、推定部２１は、基準となる任意の８バイトのアドレス情報に対して、連続アクセス時のアドレス加算パターンを順次加算して、連続アクセスを行なうための複数のアドレスを生成し、生成したアドレスを用いて記憶部に対する連続アクセスを実施する。
このように、推定部２１は、生成したアドレスを用いてアクセスの幅が８バイトのアクセスを連続して実施し、基準としてのアクセス時の性能を測定する。
【００７２】
ここで、基準となる任意のアドレス情報とは、推定部２１によりアドレス加算パターンが加算されるアドレス情報である。基準となるアドレス情報は例えば、全てのアドレスビットが“０”のアドレス情報であってよい。なお、基準となるアドレス情報は、推定部２１によりアドレス加算パターンが加算されることで、当該アドレス情報内の部分領域の値が“０”に固定される。従って、基準となる任意のアドレス情報は、アドレス加算パターンが加算されたときに、部分領域の値が“０”に固定されるようなアドレス情報である必要がある。例えば、アドレス加算パターンの値が“０”であるビットに相当するアドレスビットの値が“０”であり、その他のアドレスビットの値が任意であるアドレス情報を、基準となるアドレス情報とすればよい。
【００７３】
推定部２１は、基準となる任意のアドレス情報に対して、アドレス加算パターンを所定の回数加算して、所定数のアドレスを生成する。従って、基準となる任意のアドレス情報は、アドレス加算パターンを所定の回数加算しても、記憶部３０のアドレスがオーバーフローしないようなアドレス情報であることが好ましい。
なお、性能とは、例えば、所定のデータ量を処理部２０と記憶部３０との間で書き込み又は／及び読み込みを行なう際に要する実行時間をいうものとするが、制御部１０−１及び１０−２に発生する負荷の程度を示す情報であれば、他の情報であってもよい。
【００７４】
ここで、制御部１０は、複数の処理部２０から記憶部３０の同一アドレスへのアクセスが発生すると、後続の処理部２０のアクセス先を、先に当該アドレスにアクセスをした他の処理部２０のキャッシュメモリに向けることで、制御部１０及び記憶部３０に生じる負荷を軽減する。
また、制御部１０が後続の処理部２０のアクセス先を他の処理部２０のキャッシュメモリに向けない場合には、制御部１０は、記憶部３０の同一アドレスにアクセスをした順序で複数の処理部２０の順序保証を行ない、後続の処理部２０のアクセスを止める。
【００７５】
さらに、複数の処理部２０から記憶部３０の同一アドレスへのアクセスが発生すると、当該同一アドレスに対するアクセス要求が滞留することにより、当該アクセスの最下流に存在する記憶部３０はシステム１′のボトルネックとなる。
このように、上述したシステム１′においては、複数の処理部２０から記憶部３０の同一アドレスへのアクセスが発生すると、各処理部２０のキャッシュメモリの参照，制御部１０による順序保証，及び記憶部３０におけるアクセス要求の滞留等により、制御部１０に対する負荷が低下する。
【００７６】
従って、特定の制御部１０に負荷を集中させて負荷検証を行なう場合、特定の制御部１０に対する負荷を増大させるため、推定部２１−１及び２１−２は、互いに他の推定部２１とは異なるアドレスを生成することが好ましい。
このように、推定部２１−１及び２１−２は、他の推定部２１とは異なるアドレスを生成することで、各処理部２０から記憶部３０の同一アドレスへのアクセスが発生することを防止できる。これにより、推定部２１−１及び２１−２は、アクセスを行なうアドレスを互いに分散させる事で処理部２０間でのキャッシュの干渉を防ぐことができる。
【００７７】
また、推定部２１−１及び２１−２は、アクセスを行なうアドレスを互いに分散させて下流の記憶部３０の負荷を下げる事で、上流の制御部１０の負荷を高めることができる。
上述のように、推定部２１−１及び２１−２は、各処理部２０のキャッシュメモリの参照，制御部１０による順序保証，及び記憶部３０におけるアクセス要求の滞留等による制御部１０に対する負荷が低下する可能性を抑え、システム１′に対する負荷検証の信頼性の向上に寄与することができる。
【００７８】
なお、上述した（ｉ）に限らず、後述する（ii）の処理においても同様に、推定部２１−１及び２１−２は、互いに他の推定部２１とは異なる記憶部の領域を対象にする複数のアドレスを生成する。
従って、性能測定を行なうプログラム等は、推定部２１の処理を行なう都度、各処理部２０に対して、当該推定部２１の処理に係る記憶部３０の領域を割り当てることができる。しかし、これに限られるものではなく、性能測定を行なうプログラム等は、システム１′の性能測定を開始する際に纏めて、各処理部２０に対して、検証に係る記憶部３０の領域を割り当ててもよい。
【００７９】
（Ａ−３−１−２）次に、（ii）について説明する。
推定部２１は、上述した（ｉ）において連続アクセスによるシステム１′の性能を測定すると、次に、システム１′に対して、連続アクセス時のアクセス幅よりもアクセス幅を増加させた不連続アクセスを行ない、不連続アクセスのときのシステム１′の性能を測定する。
【００８０】
推定部２１は、基準となる任意のアドレス情報に対して、連続アクセス時のアドレス加算パターンとは異なる不連続アクセス時のアドレス加算パターンを順次加算し、アドレス情報内の部分領域としての下位ビットの値を“０”に固定する。
ここで、不連続アクセスとは、上述したように、連続アクセス時の最小単位のアクセスサイズ間隔から増加させたアクセスサイズ間隔で記憶部をアクセスする形態のアクセスをいうものとする。具体的には、不連続アクセスとは、連続アクセスを行なった際のアクセスの幅を２ｎ倍したアドレスごとに記憶部に連続してアクセスすることをいう。
【００８１】
このとき、推定部２１は、不連続アクセスを行なうためのアドレスとして、連続アクセス時のアクセス幅の２ｎ倍であるアクセス幅のアドレスを複数生成し、不連続アクセスを実施する。
従って、不連続アクセスを実施する際に推定部２１が生成する複数のアドレスは、連続アクセスを実施した際に生成した複数のアドレスと比較して、２ｎ倍のアクセス幅をもつといえる。
【００８２】
ここで、ｎは、１以上の整数であり、不連続アクセスを実施する際に、連続アクセスを実施した際のアドレス加算パターンに対して増加するビット数に相当する。
図６（ｃ）〜（ｅ）は、（ii）において推定部２１が不連続アクセスを行なう際の、アドレス情報に加算されるアドレスの加算パターンを示す。
推定部２１は、不連続アクセスを行なう際に、基準となる任意のアドレス情報に対して、アクセス幅に応じた不連続アクセス時のアドレス加算パターンを順次加算し、当該アドレス情報内の下位ビットの値を“０”に固定する。
【００８３】
図６（ｃ）に示す２倍幅アクセス時の例においては、推定部２１は、基準となる任意のアドレス情報に対して、不連続アクセス時のアドレス加算パターンとして所定ビット値“１００００（２）（０ｘ１０）”を順次加算し、当該アドレス情報内の部分領域としての下位４ビットであるアドレスビット３〜０の値を“０”に固定する。
なお、推定部２１は、２倍幅の不連続アクセスを行なう際に、連続アクセスを実施する際のアドレス加算パターンに対して１ビット増加させているため、図６（ｃ）の例ではｎは１となる。従って、推定部２１が生成する複数のアドレスは、連続アクセスを実施した際に生成した複数のアドレスと比較して、２（＝２１）倍のアクセスの幅をもつといえる。
【００８４】
そして、推定部２１は、不連続アクセスを行なうために、基準となる任意の８バイトのアドレス情報に対して不連続アクセス時のアドレス加算パターンを順次加算したアドレスを複数生成し、当該生成した複数のアドレスを用いて不連続アクセスを実施する。
このように、推定部２１は、アクセスの幅が１６バイトのアクセスを連続して実施し、２倍幅アクセスとしての性能を測定する。
【００８５】
図６（ｄ）は、推定部２１が、４倍幅アクセスにおいて、基準となる任意のアドレス情報に対して、不連続アクセス時のアドレス加算パターンとして所定ビット値“１０００００（２）（０ｘ２０）”を順次加算し、当該アドレス情報内の部分領域としての下位５ビットであるアドレスビット４〜０の値を“０”に固定する例を示す。
図６（ｅ）は、推定部２１が、８倍幅アクセスにおいて、基準となる任意のアドレス情報に対して、不連続アクセス時のアドレス加算パターンとして所定ビット値“１００００００（２）（０ｘ４０）”を順次加算し、当該アドレス情報内の部分領域としての下位６ビットであるアドレスビット５〜０の値を“０”に固定する例を示す。
【００８６】
ここで、図５を用いて既述のように、四つの制御部１０−１〜１０−４を含むシステム１″は、指定領域として二つのアドレスビットをもつ。すなわち、２ｍ個の制御部１０を含むシステムにおいては、指定領域としてｍ個のアドレスビットをもつことになる。
従って、推定部２１は、既に指定領域を推定していたとしても、指定領域として他のアドレスビットが存在することを考慮し、測定を行なうｎの範囲内でｎを増加させて、（ii）及び（iii）の処理を繰り返す。
【００８７】
推定部２１が、測定を行なうｎの範囲内でｎを増加させて（ii）及び（iii）の処理を繰り返すことにより、推定部２１は、システム１′に含まれる制御部１０の数に依存せず、アドレス情報に設定された全てのアドレスビットの位置を指定領域として推定することができる。換言すれば、推定部２１は、（ii）及び（iii）の処理により、複数の２ｎ倍幅アクセスの性能の測定結果から、複数のアドレスビットが設定された指定領域を推定することができるといえる。
【００８８】
なお、推定部２１は、（iii）において指定領域を確定した場合には、指定領域を確定した以降、各２ｎ倍幅アクセスの性能の測定の際にアドレス加算パターンを加算して生成する不連続アクセスを行なうためのアドレス情報において、推定した指定領域に相当するアドレスビットの値を“０”には固定しない。すなわち、推定部２１は、他に指定領域があるか否かを推定する際に、既に指定領域であろうと推定した領域の値は固定しない。例えば、上述の場合、推定部２１は、他に指定領域があるか否かを推定する際に、既に指定領域であろうと推定したアドレスビットの値を、アドレス情報を生成するごとに“０”と“１”とが交互に発生するように修正することにより、既に指定領域と推定した領域の値の固定を抑制する。
【００８９】
このように、推定部２１は、アドレス情報の一つのビットを指定領域として推定した後さらに他の指定領域の推定を行なう場合、既に指定領域であると推定されたビットの値が、０と１とが交互に現れるように複数のアドレスを生成する。
これにより、アドレス加算パターンを加算してアドレス情報を生成する際、既に指定領域であると推定したビットの値が“０”に固定されないため、指定領域を推定した以降の各２ｎ倍幅アクセスの性能の測定において、推定された指定領域に対応する制御部が固定的に選択されなくなる。
【００９０】
以下、図６（ｄ）及び図６（ｅ）を用いて、（ii）において推定部２１が不連続アクセスを行なう際の、アドレス情報に加算する、他のアクセス幅に対応する加算パターンを説明する。
図６（ｄ）に示す４倍幅アクセス時の例においては、推定部２１は、基準となる任意のアドレス情報に対して、不連続アクセス時のアドレス加算パターンとして所定ビット値“１０００００（２）（０ｘ２０）”を順次加算し、当該アドレス情報内の部分領域としての下位５ビットであるアドレスビット４〜０の値を“０”に固定する。
【００９１】
なお、推定部２１は、不連続アクセスを行なう際の加算パターンを、連続アクセスを実施する際のアドレス加算パターンに対して２ビット増加させているため、ｎは２となる。従って、推定部２１が生成する複数のアドレスは、連続アクセスを実施した際に生成した複数のアドレスと比較して、４（＝２２）倍のアクセスの幅をもつといえる。
そして、推定部２１は、不連続アクセスを行なうために、基準となる任意の８バイトのアドレス情報に対して４倍アクセス幅に対応するアドレス加算パターン量を順次加算して複数のアドレスを生成し、当該生成した複数のアドレスを用いて不連続アクセスを実施する。
【００９２】
このように、推定部２１は、図６（ｄ）に示す例においては、アクセスの幅が３２バイトのアクセスを連続して実施し、４倍幅アクセス時の性能を測定する。
図６（ｅ）に示す８倍幅アクセス時の例においては、推定部２１は、基準となる任意のアドレス情報に対して、不連続アクセス時のアドレス加算パターンとして所定ビット値“１００００００（２）（０ｘ４０）”を順次加算し、当該アドレス情報内の部分領域としての下位６ビットであるアドレスビット５〜０の値を“０”に固定する。
【００９３】
なお、推定部２１は、不連続アクセスを行なう際に、連続アクセスを実施する際のアドレス加算パターンに対して３ビット増加させているため、ｎは３となる。従って、推定部２１が生成する複数のアドレスは、連続アクセスを実施した際に生成した複数のアドレスと比較して、８（＝２３）倍のアクセスの幅をもつといえる。
そして、推定部２１は、不連続アクセスを行なうために、基準となる任意の８バイトのアドレス情報に対して８倍アクセス幅に対応するアドレス加算パターンを順次加算して複数のアドレスを生成し、当該生成した複数のアドレスを用いて不連続アクセスを実施する。
【００９４】
このように、推定部２１は、図６（ｅ）に示す例においては、アクセスの幅が６４バイトのアクセスを連続して実施し、８倍幅アクセス時の性能を測定する。
なお、図６（ｅ）に示す例においては、推定部２１がアドレス情報にアドレス加算パターンを加算すると、指定領域であるアドレスビット５の値が“０”に固定される。このとき、図３に示すように、処理部２０から記憶部３０へのアクセスは、制御部１０−１に固定化され、制御部１０−１に負荷が集中するため、システム１′の性能低下が発生する。
【００９５】
上述のように、推定部２１は、図４に示すような記憶部３０へのアクセスに割り当てられる各制御部１０が切り替わる記憶部３０のアドレス範囲の境目、つまり指定領域の位置を調査するため、下位ビットから１ビットずつビットを固定化してアドレスを生成して、記憶部３０へのアクセスを行なう。
以下、記憶部３０へのアクセスに割り当てられる各制御部１０が切り替わる記憶部３０のアドレス範囲の境目を、インターリーブの境目ともいう。
【００９６】
（Ａ−３−１−３）以降、同様に、推定部２１は、ｎが４以上の場合（記憶部３０のアドレスの最上位ビットまで）について、２ｎ倍幅アクセスを行なったときの性能を測定する。
なお、ｎを６０としたとき、つまり記憶部３０のアドレスの最上位ビットが「１」で以下のビットが「０」のアドレス幅を用いた場合、２度目のアクセス加算パターンを加算した時点で、記憶部３０のアドレスにオーバーフローが発生する。
【００９７】
また、システム１′は、上述したように、利用頻度の高い、領域が連続した記憶部３０のアドレスへのアクセスに対して特定の制御部に負荷が集中しないように、アドレスの連続した領域が指定領域を含む可能性が高い、比較的下位のアドレスビットを指定領域として、インターリーブの如き負荷分散を行なう。換言すれば、指定領域が、アドレスの連続した領域が指定領域を含む可能性が低い、比較的上位のアドレスビットである可能性は低い。
【００９８】
従って、推定部２１は、検証対象であるシステム１′の規模に見合った範囲のアドレスビットを固定したアドレスを生成して記憶部３０をアクセスし、記憶部アクセス時の性能を測定することが好ましい。
例えば、処理部２０としてのＣＰＵのキャッシュ容量を基にシステム１′が短期的に要求する最大データ量として、８Ｍバイト前後の連続データが扱われるとした場合に、システム１′は、当該連続データへのアクセス要求に対して、複数回の負荷分散を行なうと考えられる。このとき、上述した例においては、記憶部３０のアドレスは６４ビット（８バイト）長であるため、８Ｍバイト前後の連続データをアクセスする場合には、およそ２２０個のアドレスを持つ。従って、２０桁のアドレスを必要とする場合、システム１′が当該連続データへのアクセス要求に対して負荷分散を少なくとも一回行なうためには、アドレス情報のアドレスビット３〜アドレスビット２３の間に指定領域が存在すると推定できる。
【００９９】
従って、推定部２１は、アドレス情報のアドレスビット３からシステム１′の構成に応じた所定のアドレスビットまで、上述した例においてはアドレスビット２３までのビットを対象として、２ｎ倍幅アクセスを行なう範囲を決定することが好ましい。この場合、ｎは１〜２１となる。
なお、上述した処理部２０としてのＣＰＵのキャッシュ容量や、システム１′が短期的に要求する最大データ量としての連続データのサイズ、又はｎの範囲等の情報は、予め記憶部３０に保持してよい。
【０１００】
また、推定部２１が上述した各２ｎ倍幅アクセス時を行なうアドレスを生成するために、基準アドレスに対してアドレス加算パターンを加算する回数、言い換えると生成するアドレス情報の数は、各２ｎ倍幅アクセス時のアクセス対象となる総データのサイズをレジスタサイズで除算した値とすることができる。
例えば、上述した各２ｎ倍幅アクセス時のアクセス対象の総データのサイズが、３２Ｋバイトであるとする。この場合、推定部２１は、この３２Ｋバイトをシステム１′のアーキテクチャ上のレジスタサイズである８バイト（６４ビット）で除算した４０９６（およそ４０００）回、基準アドレスにアドレス加算パターンを加算する。
【０１０１】
ここで、各２ｎ倍幅アクセスを行なう場合のアクセス対象の総データのサイズは、アクセスにおいて書き込む総データのサイズ又は／及びアクセスにおいて読み込む総データのサイズであり、後述する（iii）において、各２ｎ倍幅アクセスで性能測定を行なうことができる十分なサイズであることが好ましい。
なお、各２ｎ倍幅アクセス時のアクセス対象の総データのサイズを一定としたのは、アクセスに用いるデータの総容量の条件を揃えることで、アドレスのアクセス幅の変更による記憶部アクセス時の性能の低下を測定しやすくするためである。このように、推定部２１は、同一サイズのデータを用いてアクセス幅を変更してアクセスした場合に、どのアクセス幅で所定の範囲内の性能低下が生じるかを特定し、特定したアクセス幅に基づいて、指定領域を推定する。
【０１０２】
また、上述したように、ｎを１〜２１とし、２ｎ倍幅アクセス時に推定部２１が基準アドレスにアドレス加算パターンを加算する回数を４０９６（およそ４０００）とした場合、各処理部２０に対して割り当てられる記憶部３０の領域は、それぞれ４Ｇバイト程度用意することが好ましい。
すなわち、推定部２１は、最大で２２０倍幅アクセスを実施し、そのときに４０９６のアドレスに対してアクセスを行なうため、処理部２０がアクセスする記憶部３０の記憶領域は、２２０倍幅アクセスを実施するときに最大の、２２０バイト×４０９６＝４Ｇバイト程度となる。従って、推定部２１において上述のような前提でシステム１′の性能の測定を行なう場合には、システム１′は、各処理部２０当たり、４Ｇバイト程度の記憶部３０の領域を割り当てることが好ましい。
【０１０３】
なお、図６に示す例においては、推定部２１は、アドレス情報における部分領域の値を“０”に固定したが、これに限られず、“１”に固定してもよい。
また、上述した（ii）においては、推定部２１は、２ｎ倍幅アクセスにおけるｎを１から順に増加し、各２ｎ倍幅アクセスを実行してそのときの性能を測定したが、これに限られず、任意のｎを選択して各２ｎ倍幅アクセスを実行してもよい。
【０１０４】
（Ａ−３−１−４）最後に、図７〜図９を参照しながら、（iii）について説明する。
図７は、第１実施形態の推定部２１のアクセスによるシステム１′の性能を示す図である。
図８は、第１実施形態の推定部２１のアクセスによる制御部１０の動作を示す図である。
【０１０５】
図９は、第１実施形態の推定部２１による制御部１０に対する時間当たりのアクセス数を示す図である。
推定部２１は、上述した（ii）において不連続アクセスを実行した際のシステム１′の性能を測定すると、上述した（ｉ）において測定した基準としての性能と比較し、基準としての性能からの不連続アクセス時の性能低下量が所定の範囲内であるか否かを判定する。
【０１０６】
以下、基準としての性能からの低下量が所定の範囲内に属していると推定部２１が判定したときの不連続アクセスを、推定対象という。
推定部２１は、基準としての性能からの低下量が所定の範囲内に属していると判定したとき、当該不連続アクセスを推定対象として特定し、推定対象の２ｎ倍幅アクセスを実施した際に固定したアドレスビットが指定領域であると推定する。
【０１０７】
はじめに、推定部２１は、基準とする連続アクセスによる性能（アクセス時間）と、測定した一の２ｎ倍幅アクセスによる性能（アクセス時間）とを比較する。
図７に示す例においては、２倍幅アクセス及び４倍幅アクセスにおけるアクセス時間は、連続アクセスにおけるアクセス時間に対して、１．５倍未満となっている。一方、８倍幅アクセスにおけるアクセス時間は、連続アクセスにおけるアクセス時間に対して、２倍以上となっている。つまり、８倍幅アクセスの性能は、連続アクセスの性能に対して、５０％程度低下している。
【０１０８】
図８は、推定部２１がアクセスを行なう記憶部３０の記憶領域と、記憶部３０の記憶領域における制御部１０の割付との関係を示す。
図８に示す例において、各アクセス例におけるブロックは、一つのアクセスサイズを示す。本実施形態においては、各アクセス例におけるブロックは、８バイトである。
図８に示すように、記憶部３０のアドレス範囲毎にいずれかの制御部１０が割り当てられている。
【０１０９】
このアドレス範囲の幅は、上述の如く、指定領域の位置によって決定される。図３に示す例においては、“Ｃ”を付されたアドレスビット５が制御部１０を割り当てるビットである。
図３に示す例では、システム１′は、アドレスビット５の値が“０”のときに、処理部２０から記憶部３０へのアクセスを、制御部１０−１に割り当てる。また、システム１′は、アドレスビット５の値が“１”のときに、処理部２０から記憶部３０へのアクセスを、制御部１０−２に割り当てる。
【０１１０】
図８を参照すると、連続アクセスから４倍幅アクセスまでのアクセスでは、制御部１０−１及び１０−２の双方へアクセスが発生するが、８倍幅アクセスでは、一方の制御部１０−１に常にアクセスが集中している。
図９は、図８に示す推定部２１がアクセスを行なう記憶部３０の記憶領域に割付られた制御部１０を、アクセス例毎に時間軸に沿って表した図である。
【０１１１】
図９を参照すると、連続アクセスから４倍幅アクセスまでのアクセスでは、所定の時間当たりの各制御部１０におけるアクセス数に変化はみられない。一方、８倍幅アクセスにおいて制御部１０−１にアクセスが集中すると、連続アクセスから４倍幅アクセスまでの所定の時間当たりの制御部１０−１におけるアクセス数に対して、倍のアクセス数となる。
【０１１２】
上述のように、図８に示すように、アクセス幅がインターリーブの境目を超える８倍幅アクセスによって、制御部１０−１にアクセスが集中すると、図９に示すように、連続アクセスにおける制御部１０−１のアクセス数に対して、倍程度のアクセス数となる。このとき、図７に示すように、アクセス幅がインターリーブの境目を超える８倍幅アクセスの性能は、連続アクセスの性能に対して、５０％程度低下する。
【０１１３】
ここで、基準としての連続アクセスの性能に対する、一方の制御部にアクセスが集中した２ｎ倍幅アクセスの性能低下の目安は、およそ４０％〜７０％程度である。
なお、推定部２１は、上述の如く制御部１０を認識することができないため、図８及び図９に示すような制御部１０へのアクセス状況を認識することはできないが、２ｎ倍幅アクセスによって図７に示す性能測定結果を得ることはできる。
【０１１４】
従って、推定部２１は、上述した図７に示すような２ｎ倍幅アクセスの性能測定結果が得られると、上述した図７〜図９に示す関係に基づいて、連続アクセスの性能に対して例えば４０％〜７０％程度の性能低下が発生している８倍幅アクセスが、図８及び図９に示すような一方の制御部に固定化されているアクセス状況であると推測できる。
つまり、推定部２１は、上述した図７に示すような２ｎ倍幅アクセスの性能測定結果が得られると、８倍幅アクセスを推定対象と特定する。
【０１１５】
そして、推定部２１は、推定対象の８倍幅アクセスを実施した際に値を“０”に固定したアドレスビット５が指定領域であると推定する。
すなわち、図６に示す如く８倍幅アクセス時のアドレス加算パターンにおける最上位ビットの値は１であり、他のビットの値は全て０であるため、推定部２１は、推定対象の８倍幅アクセスの性能を測定した際に用いたアドレス加算パターンにおける最上位ビットの次のビットの位置に対応する、アドレス情報のビットを指定領域として推定する。
【０１１６】
また、推定部２１は、測定した一の２ｎ倍幅アクセスの性能を調査した結果、推定対象が特定でき、指定領域を推定した場合には、推定した指定領域の位置の情報を記憶部３０等に記憶する。
そして、推定部２１は、ｎの値を変更して再度（ii）の処理を行ない、他の２ｎ倍幅アクセスの性能を測定する。このとき、上述したように、推定部２１は、（ii）の処理において、先に指定領域であると推定したアドレスビットの値が、“０”と“１”とが交互に発生するように複数のアドレスを生成する。
【０１１７】
なお、推定部２１は、指定領域として複数のアドレスビットが設定された場合においても、上述した（iii）において、２ｎ倍幅アクセス時の性能が基準の性能から所定の範囲内で低下したか否かに基づいて、指定領域を推定することができる。
例えば、図５を用いて既述したシステム１″において、アドレスビット５の値が“０”である場合には、処理部２０から記憶部３０へのアクセスは、制御部１０−１又は１０−３に割り当てられる。一方、アドレスビット５の値が“１”である場合には、処理部２０から記憶部３０へのアクセスは、制御部１０−２又は１０−４に割り当てられる。
【０１１８】
装置検証の対象が上述のようなシステム１″である場合、（ii）の処理において、推定部２１が８倍幅アクセスの性能を測定したとき、推定部２１は、生成するアドレス情報のアドレスビット５の値を“０”に固定するため、四つの制御部１０−１〜１０−４に割り当てられていたアクセスが、二つの制御部１０−１及び１０−３に割り当てられる。
従って、図５に示す例におけるシステム１″において、推定部２１が、アクセス幅がインターリーブの境目を超える８倍幅アクセスを実施すると、連続アクセス時に四つの制御部１０−１〜１０−４に割り当てられていたアクセスが、二つの制御部１０−１及び１０−３に集中する。このとき、８倍幅アクセスにおけるアクセス数は、連続アクセスにおける制御部１０−１及び１０−３のアクセス数に対して、およそ倍のアクセス数となる。つまり、図５に示す例におけるシステム１″においても、図７に示すように、アクセス幅がインターリーブの境目を超える８倍幅アクセスの性能は、連続アクセスの性能に対して、５０％程度低下する。
【０１１９】
上述のことから、推定部２１は、指定領域として複数のアドレスビットが設定された場合においても、上述した（iii）において、２ｎ倍幅アクセス時の性能が基準の性能から所定の範囲内で低下したか否かに基づいて、複数の２ｎ倍幅アクセスを推定対象として特定することができる。そして、推定部２１は、特定した複数の推定対象の２ｎ倍幅アクセスから、指定領域を推定することができる。
【０１２０】
例えば、推定部２１は、装置検証の対象が上述のようなシステム１″である場合、推定対象として８倍幅アクセスを特定し、アドレスビット５を指定領域として推定するとともに、１２８倍幅アクセスを推定対象として特定し、アドレスビット９を指定領域として推定することができる。
なお、推定部２１がインターリーブの境目を超えた２ｎ倍幅アクセスを判断する際の性能低下を判断する所定の範囲としては、例えば、基準とする性能からの性能低下がおよそ４０％〜７０％程度の範囲とする。これにより、推定部２１は、各２ｎ倍幅アクセスのうち、基準とする性能からおよそ４０％〜７０％程度の性能低下が生じた２ｎ倍幅アクセスにおいて、アクセス幅がインターリーブの境目を超えたと判断することができる。
【０１２１】
また、基準としての連続アクセスの性能に対する、一方の制御部にアクセスが集中した２ｎ倍幅アクセスの性能低下の目安は、上述のように、およそ４０％〜７０％程度の範囲であり、推定部２１は、基準としての性能よりおよそ４０％〜７０％程度性能低下するときの２ｎ倍幅アクセスを、推定対象と特定する。すなわち、基準としての性能よりおよそ４０％〜７０％程度性能低下するときの２ｎ倍幅アクセスのアドレス幅に、制御部１０への集中アクセスが発生する要因が存在すると見当付けることができる。
【０１２２】
しかし、例えば、基準とする性能からの性能低下がおよそ８０％以上である２ｎ倍幅アクセスが発生した場合には、このときの２ｎ倍幅アクセスのアクセス幅以外にも、システム１′の性能を低下させる要因が存在する可能性がある。
そこで、推定部２１は、システム１′の異常、例えば制御部１０の異常，不備が生じているものと推定し、その旨を指摘するように推定部２１を構成してもよい。
【０１２３】
このように、推定部２１は、アドレス情報における任意の位置のビットの値を固定した複数の２ｎ倍幅アクセスで複数のアドレスを生成して、生成したアドレスを用いて記憶部をアクセスしてシステム１′の性能を測定し、各２ｎ倍幅アクセスでの性能測定結果と各２ｎ倍幅アクセスで値を固定したビットの位置とに基づいて、指定領域を推定する。
（Ａ−３−２）第１実施形態の検証部の機能
以下、特定の制御部１０に負荷を集中させる負荷検証を行なう場合の、図２に示すシステム１′の検証部２２の機能について説明する。検証部２２としての機能は、処理部２０が記憶部３０等にインストールされた装置検証プログラムを実行することにより実現される。つまり、検証部２２の動作は、負荷検証（負荷試験）を行なうタイミングで行なわれる。
【０１２４】
検証部２２は、推定部２１が推定した指定領域に設定されている指定情報に基づいて、特定の制御部１０に負荷が集中するように記憶部３０に対してアクセスを行ない、システム１′の高負荷状態における装置品質を検証する。
検証部２２は、例えば、以下の処理（iv）及び（ｖ）を行なうことで、システム１′の性能を測定する。
（iv）ランダムに複数のアドレスを生成し、生成した複数のアドレスを、推定部２１が推定した指定領域の値に基づいてソートする。
（ｖ）ソートした複数のアドレスに対して、アクセス検証を行なう。
【０１２５】
（Ａ−３−２−１）まず、図１０を参照しながら、（iv）について説明する。
図１０は、第１実施形態の検証部２２が生成するアドレス情報を示す図である。
図１０の左端の列に示すように、検証部２２は、複数のアドレス情報をランダムに生成する。
ここで、上述した推定部２１の動作においては、各２ｎ倍幅アクセス時のアクセス対象の総データのサイズを、３２Ｋバイトと決定したが、検証部２２がアクセス時の測定をするためにアクセスする総データのサイズは、上述した推定部２１の動作において決定したのとは異なり、システム１′の性能測定結果を得るためのデータとして、記憶部３０の領域が許容する範囲内で設定することができる。
従って、検証部２２が生成するアドレス情報の数は、測定する総データのサイズをレジスタサイズで除算した値とすることができる。
【０１２６】
なお、上述のように、システム１′においては、複数の処理部２０から記憶部３０の同一アドレスへのアクセスが発生すると、各処理部２０のキャッシュメモリの参照，制御部１０による順序保証，及び記憶部３０におけるアクセス要求の滞留等により、制御部１０に対する負荷が低下する。
従って、特定の制御部１０に負荷を集中させる負荷検証を行なう場合、特定の制御部１０に対する負荷を増大させるため、検証部２２−１及び２２−２は、互いに他の検証部２２とは異なる記憶部の領域を対象にする複数のアドレスを生成することが好ましい。
【０１２７】
性能測定を行なうプログラム等は、検証部２２の処理を行なう都度、各処理部２０に対して、当該検証部２２の処理に係る記憶部３０の領域を割り当てることができる。しかし、これに限られるものではなく、性能測定を行なうプログラム等は、システム１′の性能測定を開始する際に纏めて、各処理部２０に対して、検証に係る記憶部３０の領域を割り当ててもよい。
【０１２８】
このため、各検証部２２は、他の検証部２２とは互いに記憶部３０の異なる領域に対してアクセスための複数のアドレス情報を含むアドレスリストを生成する。
次に、各検証部２２は、各検証部２２が生成した複数のアドレス情報を、推定部２１で推定した指定領域の値に基づいてソートする。
例えば、図１０に示す例においては、アドレスビット５が指定領域である場合、検証部２２は、各検証部２２でランダムに生成した複数のアドレス情報を、アドレスビット５の値をキーとして順序を変更する。
【０１２９】
これにより、各推定部２２は、それぞれがランダムに生成した複数のアドレス情報から、各制御部１０に対する負荷集中アクセスを行なうためのアドレスリストを生成することができる。
ここで、負荷集中アクセスとは、各検証部２２が生成した複数のアドレスを推定部２１で推定した指定領域の値に基づいてソートしたアドレスリストを用いて、記憶部３０をアクセスする形態のアクセスをいうものとする。
【０１３０】
なお、図１０に示す複数のアドレス情報は、検証部２２がランダムに生成する複数のアドレス情報のうちの一部である。例えば、検証部２２は、システム１′の性能測定結果を得ることができる十分なデータのサイズをレジスタサイズで除算した数に相当する数を生成する。
ここで、図５を参照しながら既述のように、指定領域として複数のアドレスビットがアドレス情報に存在する場合には、各検証部２２は、指定領域である全てのアドレスビットを対象として、複数のアドレス情報のソートを行なう。
【０１３１】
例えば、図５に示すシステム１″の例においては、各検証部２２は、アドレスビット９の値とアドレスビット５の値とをキーとして、複数のアドレス情報のソートを行なう。すなわち、図１０に示す例においては、ランダムに生成したアドレス情報について、アドレスビット５の値が参照されているが、システム１″においてはさらに、アドレスビット９の値も参照し、アドレスビット９の値とアドレスビット５の値とをキーとして、複数のアドレス情報のソートを行なう。
【０１３２】
この場合、アドレスリストには、例えば、アドレスビット９の値とアドレスビット５の値とがいずれも“０”、次に、アドレスビット９の値が“１”かつアドレスビット５の値が“０”、次に、アドレスビット９の値が“０”かつアドレスビット５の値が“１”、最後に、アドレスビット９の値とアドレスビット５の値とがいずれも“１”、の状態にソートされた複数のアドレス情報が含まれることになる。
【０１３３】
このとき、検証部２２は、ソートされたアドレスリストを用いて負荷集中アクセスを行なうと、制御部１０−１，１０−３，１０−２，１０−４の順に負荷を集中させることができる。
なお、検証部２２によるアドレスリストに対するソートの順序は、指定領域であるアドレスビットの値の昇順又は降順のいずれであってもよい。
【０１３４】
また、指定領域であるアドレスビットがアドレス内に複数存在する場合には、指定領域であるアドレスビットの値の昇順又は降順に限られず、他の順序であってもよい。他の順序としては、例えば、図５に示すシステム１″の例においては、アドレスビット９の値とアドレスビット５の値とがいずれも“０”、次に、アドレスビット９の値とアドレスビット５の値とがいずれも“１”、次に、アドレスビット９の値が“１”かつアドレスビット５の値が“０”、最後に、アドレスビット９の値が“０”かつアドレスビット５の値が“１” の状態等が挙げられる。
【０１３５】
このとき、検証部２２は、ソートされたアドレスリストを用いて負荷集中アクセスを行なうと、制御部１０−１，１０−４，１０−２，１０−３の順に負荷を集中させることができる。
このように、検証部２２は、アドレスリストに対するソートの順序を変更することで、システム１′内における制御部１０に負荷をかける順番を任意に変えることができる。従って、検証部２２は、アドレスリストに対するソートの順序を変更することで、記憶部３０へのアクセスパターンの網羅性を向上させることができる。
【０１３６】
（Ａ−３−２−２）最後に、図１１〜図１４を参照しながら、（ｖ）について説明する。
各検証部２２は、それぞれ、（iv）において生成したアドレスリストの先頭のアドレス情報から順次アドレス情報を読み出して、記憶部３０の当該アドレス情報に対応する領域に対してアクセスを行なう。
【０１３７】
図１１〜図１３は、第１実施形態の検証部２２によるアクセスを示す図である。
図１１〜図１３に示す例においては、検証部２２−１及び２２−２は、それぞれが生成したアドレスリストの先頭のアドレス情報から順次、記憶部３０の当該アドレス情報に対応する領域に対してアクセスを行なう。また、システム１′において処理部２０−１及び２０−２からそれぞれ制御部１０−１及び１０−２に向いている矢印は、各処理部２０（各検証部２２）のアクセス先の制御部を示す。
【０１３８】
なお、図１１は、各検証部２２が生成したアドレスリストのうち、５番目のアドレス情報に対応する記憶部のアドレスに対して、各検証部２２がアクセスを行なう状態を示した例である。図１１に示す例においては、処理部２０−１のアクセス先、及び処理部２０−２のアクセス先は、いずれも制御部１０−１である。
図１２は、各検証部２２が生成したアドレスリストのうち、７番目のアドレス情報に対して、各検証部２２がアクセスを行なう状態を示した例である。図１２に示す例においては、処理部２０−１のアクセス先は制御部１０−１であり、処理部２０−２のアクセス先は制御部１０−２である。
【０１３９】
図１３は、各検証部２２が生成したアドレスリストのうち、１１番目のアドレス情報に対して、各検証部２２がアクセスを行なう状態を示した例である。図１３に示す例においては、処理部２０−１のアクセス先、及び処理部２０−２のアクセス先は、いずれも制御部１０−２である。
ここで、図１１〜図１３を参照すると、検証部２２−１及び２２−２がそれぞれ生成したアドレスリストは、制御部１０−１に対応するアドレス情報と、制御部１０−２に対応するアドレス情報との割合が互いに異なる。
【０１４０】
これは、各検証部２２は、それぞれランダムに複数のアドレス情報を生成しており、生成したそれぞれのアドレス情報の指定領域に設定された指定情報の値が“０”又は“１”のいずれであるかもランダムに決定されるためである。
なお、図１１〜図１３に示すアドレスリストのアドレス情報は、図１０において上述したのと同様に、各検証部２２が生成するアドレスリストのアドレス情報のうちの一部であり、アドレスリストは、図示するよりも多くのアドレス情報を含む。
【０１４１】
図１４は、各検証部２２が、それぞれ図１１〜図１３に示したアドレスリスト上のアドレスの順序に応じて、各制御部にアクセスした際の、第１実施形態のシステム１′に発生する負荷状況を示す図である。
図１４において、Ａが付された実線は、各検証部２２による装置検証における、制御部＃１（制御部１０−１）に発生する負荷、つまり制御部＃１へのアクセス数を示す。Ｂが付された破線は、各検証部２２による装置検証における、制御部＃２（制御部１０−２）に発生する負荷、つまり制御部＃２へのアクセス数を示す。
【０１４２】
また、Ｃが付された点線は、実線Ａ及び破線Ｂに基づいて表した、システム１′（制御部１０）に発生する概念的な負荷の波を示す。
図１４において、t0は、各検証部２２が、各アドレスリストに基づいて装置検証を開始したタイミングである。t1は、システム１′の制御部１０−１に発生する負荷がピークとなるタイミングである。t2は、各検証部２２による装置検証において、制御部＃２（制御部１０−２）に負荷が発生するタイミングを示す。t3は、各検証部２２による装置検証において、制御部＃１（制御部１０−１）に負荷が発生しなくなるタイミングを示す。t4は、システム１′の制御部１０−２に発生する負荷がピークとなるタイミングである。
【０１４３】
以下、図１１〜図１３を参照しながら、図１４に示す例について説明する。
各検証部２２は、各アドレスリストに基づく装置検証を開始すると（図１４中、t0）、各アドレスリストの先頭からアドレスを読み出してアクセスを行なう。図１１に示す例においては、検証部２２−１及び２２−２は、いずれも制御部１０−１へのアクセスを行なう（図１４中、t0〜t2の間に対応）。
【０１４４】
このとき、システム１′には、図１４の実線Ａに示す負荷が発生し、t1のタイミングで制御部１０−１の負荷がピークになる。ここで、実線Ａに示す負荷において、t1のタイミングで制御部１０−１の負荷がピークとなるのは、図１１に示すように、t0のタイミングから各検証部２２から制御部１０−１へのアクセスが行なわれ、制御部１０−１において、処理が徐々に滞り負荷が蓄積するためである。
【０１４５】
また、実線Ａに示す負荷において、t1〜t2の間で制御部１０−１の負荷が次第に低下するのは、図１２に示すように、検証部２２から制御部１０−１へのアクセスが、徐々に検証部２２から制御部１０−２へのアクセスに遷移し、制御部１０−１において、滞っていた処理が徐々に減少して負荷が低減するためである。
なお、図１４に示す例において、実線Ａ及び破線Ｂの曲線は、検証対象のシステムがそなえる処理部２０、つまり検証を行なう検証部２２の数が多いほど、緩やかな傾きとなる。これは、例えば、上述した図１２に示すように、検証部２２−１及び２２−２毎に、制御部１０−１へのアクセスが制御部１０−２へのアクセスに遷移するタイミングが異なっており、検証部２２による各制御部１０−１及び１０−２への負荷が分散するためである。
【０１４６】
なお、各検証部２２は、図１４に示すt2までの間に、各アドレスリストの６番目のアドレスまでアクセスを行なっているとする。
次に、各推定部２２は、図１２に示す例において、各アドレスリストの７番目及び８番目のアドレスに対してアクセスを行なう。
このとき、処理部＃１（処理部２０−１）から記憶部３０へのアクセスは、アドレスリストの７番目及び８番目のアドレスにおける指定情報が“０”であるため、制御部１０−１に対するアクセスとなる。
【０１４７】
一方、処理部＃２（処理部２０−２）から記憶部３０へのアクセスは、アドレスリストの７番目及び８番目のアドレスにおける指定情報が“１”であるため、制御部１０−２に対するアクセスとなる。
図１２に示す例においては、各検証部２２は、各アドレスリストの７番目及び８番目の各アドレスに対してアクセスを行なう。検証部２２−１は制御部１０−１をアクセスし、検証部２２−２は制御部１０−２へのアクセスを行なう（図１４中、t2〜t3の間に対応）。
【０１４８】
このとき、システム１′には、図１４の実線Ａ及び破線Ｂに示す負荷が発生する。
そして、図１３に示す例においては、各検証部２２は、各アドレスリストの９番目以降の各アドレスに対してアクセスを行なう。各アドレスリストの９番目以降に設定されているアドレスの指令領域の値はいずれも“１”であるため、検証部２２−１及び２２−２は、いずれも制御部１０−２へのアクセスを行なう（図１４中、t3以降）。
【０１４９】
このとき、システム１′には、図１４の破線Ｂに示す負荷が発生し、t4のタイミングで制御部１０−２の負荷がピークになる。ここで、破線Ｂに示す負荷において、t4のタイミングで制御部１０−２の負荷がピークとなるのは、図１２及び図１３に示すように、t3のタイミング以降、検証部２２−１及び２２−２の双方から制御部１０−２へのアクセス集中し、制御部１０−２において、処理が徐々に滞り負荷が蓄積するためである。
【０１５０】
上述のように、各検証部２２は、それぞれのアドレスリストに格納されたアドレス基づいて記憶部３０に対するアクセスを行ない、当該アクセスに割り当てられた制御部１０を切り替えることにより、システム１′内の負荷に遷移状態を作り出している。
このように、検証部２２は、各検証部２２で生成した複数のアドレス情報を、推定部２１で推定した指定領域の値に基づいてソートを行なうことで、アドレスリストの各アドレス情報において、指定領域に設定された指定情報の偏りが発生する。
【０１５１】
従って、図１４に示すように、システム１′に発生する負荷を時間軸で見た場合、システム１′に発生する負荷のピークが容易に得られる（図１４中、t1及びt4）。
また、システム１′においては、実線Ａ及び破線Ｂで示すような負荷を制御部１０−１及び１０−２のそれぞれに対して生成することで、図１４の点線Ｃで概念的に示すように負荷状況の波を表示させることができる。なお、点線Ｃは、実線Ａ及び破線Ｂの負荷を加算して補足的に表示するものであり、装置検証を行なう作業者が、負荷の観点で検証パターンを充足するために用いることができる。作業者は、点線Ｃに基づいて、システム１′（制御部１０）に発生する負荷の波を視覚的に把握することができる。
【０１５２】
さらに、検証部２２は、アドレス情報において、制御部１０の割付を決める指定領域以外の領域の値をランダムな状態にすることで、多様なアドレスのアクセスパターンを用いて記憶部をアクセスすることができ、制御部１０に対して最大負荷を発生させることが可能となる。
上述のように、検証部２２は、複数のアドレス情報をランダムに生成し、生成された複数のアドレス情報を、推定部２１によって推定された指定領域に設定された指定情報の値に従ってソートし、ソートされた複数のアドレス情報に基づいて記憶部３０に対するアクセスを行ない、システム１′の性能を測定する。
【０１５３】
（Ａ−４）第１実施形態による性能測定手順
次に、第１実施形態の推定部２１及び測定部２２の動作について、図１５及び図１６を参照しながら説明する。
図１５は、図２に示すシステム１′において、システム１′の負荷検証を行なう場合の推定部２１の動作を説明するためのフローチャートである。
【０１５４】
システム１′の負荷検証を行なう際の前提として、上述したように、記憶部３０のアドレスは６４ビット長であり、システム１′のアーキテクチャ上のレジスタサイズは８バイトとする。
また、連続アクセス及び２ｎ倍幅アクセス時のアクセス対象となる総データのサイズは３２Ｋバイトとする。
【０１５５】
はじめに、推定部２１により、指定領域を推定する処理のための初期設定が行なわれる（ステップＳ１）。
このとき、推定部２１は、アクセス対象となる総データのサイズである３２Ｋバイトをレジスタサイズである８バイトで除算し、記憶部をアクセスするための命令の実行回数（Count A）を求める。
【０１５６】
また、推定部２１は、レジスタサイズ分のアクセス幅に対応するアドレス加算パターン（AddressAdder，加算数）として、例えば、 “１０００（２）”等の値を用意する。
以降、説明する各処理については、各処理部２０がそれぞれ独立して動作することになる。
まず、各推定部２１により、各処理部２０のキャッシュを初期化するための命令が発行され、各処理部２０のキャッシュがクリアされる（ステップＳ２）。
【０１５７】
これにより、アクセス先の記憶部３０のアドレス対象となる情報が処理部２０のキャッシュに存在することで、制御部１０により、当該アクセスのアクセス先が処理部２０のキャッシュに向けられることを防止できる。
次に、各測定部２１により、処理の開始時刻を、測定開始時刻として記録される（ステップＳ３）。
【０１５８】
そして、各推定部２１により、各処理部２０に対して割り当てられた記憶部３０の基準となる任意のアドレスが生成され、生成された基準となる任意のアドレスに対して、任意のデータの書き込みが実施される（ステップＳ４）。
また、推定部２１により、データの書き込みが実施されると、データ書き込み回数に１が加算される。なお、データ書き込み回数の初期値は０である。
【０１５９】
なお、基準となる任意のアドレスは、図６を参照しながら既述のように、アドレス加算パターンの“０”が連続するビット数分、下位ビットの値が“０”である。
ここで、ステップＳ４の処理は、後述するステップＳ５及びＳ６のループ処理に含まれる。ステップＳ４がステップＳ６からのループによって実行される場合には、ステップＳ４において、推定部２１は、任意のデータの書き込みが実施される書き込みアドレスとして基準となる任意のアドレスを用いず、ステップＳ６において書き込みアドレスに対して加算数が加算されたアドレスを用いる。
【０１６０】
また、既に推定部２１により指定領域が推定されている場合には、推定部２１は、書き込みアドレスの指定領域のビットの値を、“０”と“１”とが交互に発生するように修正することにより、既に指定領域と推定した領域の値を固定しない。一方、推定部２１により指定領域が推定されていない場合には、推定部２１は、書き込みアドレスについて、アドレス加算パターンの“０”が連続するビット数分、下位ビットの値を“０”に固定する。
【０１６１】
ステップＳ４で記憶部へのデータの書き込みが終了すると、各推定部２１により、データ書き込み回数が実行回数（Count A）まで達したか否かを判断する（ステップＳ５）。
各推定部２１により、データ書き込み回数が実行回数（Count A）まで達していないと判断された場合には（ステップＳ５のＮｏルート）、各推定部２１により、先にアクセスを行なった記憶部３０のアドレス、つまり書き込みアドレスに対してアクセス幅に対応する加算数が加算されて新たな書き込みアドレスが生成され（ステップＳ６）、ステップＳ４の処理に戻る。
【０１６２】
一方、各推定部２１により、データ書き込み回数が実行回数（Count A）まで達したと判断された場合には（ステップＳ５のＹｅｓルート）、各推定部２１により、各処理部２０のキャッシュを初期化するため、キャッシュをクリアする命令が発行され、各処理部２０のキャッシュがクリアされる（ステップＳ７）。
次に、各処理部２１により、各処理部２０に対して割り当てられた記憶部３０の基準となる任意のアドレスが生成され、生成された基準となる任意のアドレスに書き込まれたデータの読み込みが実施される（ステップＳ８）。
【０１６３】
また、推定部２１により、データの読み込みが実施されると、データ読み出し回数に１が加算される。なお、データ読み出し回数の初期値は０である。
なお、基準となる任意のアドレスは、図６を参照しながら既述のように、アドレス加算パターンの“０”が連続するビット数分、下位ビットの値が“０”である。
ここで、ステップＳ８の処理は、後述するステップＳ９及びＳ１０のループ処理に含まれる。ステップＳ８がステップＳ１０からのループによって実行される場合には、ステップＳ８において、推定部２１は、任意のデータの読み込みが実施される読み込みアドレスとして基準となる任意のアドレスを用いず、ステップＳ１０において読み込みアドレスに対して加算数が加算されたアドレスを用いる。
【０１６４】
このとき、既に推定部２１により指定領域が推定されている場合には、推定部２１は、読み込みアドレスの指定領域のビットの値を、“０”と“１”とが交互に発生するように修正することにより、既に指定領域と推定した領域の値を固定しない。一方、推定部２１により指定領域が推定されていない場合には、推定部２１は、読み込みアドレスについて、アドレス加算パターンの“０”が連続するビット数分、下位ビットの値を“０”に固定する。
【０１６５】
記憶部の任意のアドレスからのデータの読み込みが終了すると、各推定部２１により、データを読み出した回数が実行回数（Count A）まで達したか否かを判断する（ステップＳ９）。
各推定部２１により、データの読み出し回数が実行回数（Count A）まで達していないと判断された場合には（ステップＳ９のＮｏルート）、各推定部２１により、先にアクセスを行なった記憶部３０のアドレスに対して、アクセス幅に相当する値が加算されて新たな読み込みアドレスが生成され（ステップＳ１０）、ステップＳ８の処理に戻る。
【０１６６】
一方、各推定部２１により、データの読み出し回数が実行回数（Count A）まで達したと判断された場合には（ステップＳ９のＹｅｓルート）、各推定部２１により、データ書込みを終了した時刻を測定終了時刻として記録する（ステップＳ１１）。
このとき、各推定部２１により、測定終了時刻から測定開始時刻を減じた値が、測定を行なったアクセス幅におけるアクセス時間、つまり測定を行なったアクセス幅でのアクセス時の性能を示す値として算出される。
【０１６７】
ここまで、説明した処理については、各処理部２０がそれぞれ独立して動作することになる。以降の処理は、各処理部２０が共通して行なってもよいし、いずれかの処理部２０のみが行なってもよい。
次に、推定部２１により、ここまで行なった処理、つまりデータ書込みの開始からデータ読み出し完了までの一連の処理の実行回数が一回目であるか否かを判断する（ステップＳ１２）。
【０１６８】
推定部２１により、処理の実行回数が一回目であると判断された場合には（ステップＳ１２のＹｅｓルート）、先に測定した性能は連続アクセスによる基準となる性能であるため、測定結果の評価は行なわず、次回の測定で用いるアクセス幅を求め（ステップＳ１６）、ステップＳ２以降の処理が、アクセス幅を変えて行なわれる。
一方、推定部２１により、前回実行した処理が一回目ではないと判断された場合には（ステップＳ１２のＮｏルート）、前回測定した性能の、一回目に測定した性能、つまり連続アクセスによる基準となる性能からの低下量が所定の範囲内であるか否かが判断される（ステップＳ１３）。
【０１６９】
ここで、所定の範囲としては、例えば、４０％〜７０％とすることができる。
そして、推定部２１により、測定した性能の低下量が所定の範囲内であると判断された場合には（ステップＳ１３のＹｅｓルート）、測定した性能低下量が所定の範囲内のアクセス幅から、指定領域が推定される（ステップＳ１４）。
一方、ステップＳ１４において、推定部２１により、測定した性能の低下量が所定の範囲内でないと判断された場合には（ステップＳ１３のＮｏルート）、ステップＳ１４の処理は実施されず、次のステップＳ１５の処理が行なわれる。
【０１７０】
Ｓ１４で推定部２１により指定領域が推定されると、あるいはＳ１３で性能の低下量が所定範囲内ではないと判定されると、推定部２１により、所定のアクセス幅までの測定が実施されたかが判断される（ステップＳ１５）。
ここで、所定のアクセス幅は、例えば、アドレスビット２３とする。
次に、推定部２１により、所定のアクセス幅まで測定を実施していないと判断された場合には（ステップＳ１５のＮｏルート）、推定部２１により、次回の測定で用いるアクセス幅が求められ（ステップＳ１６）、ステップＳ２の処理に戻る。
【０１７１】
一方、推定部２１により、所定のアクセス幅まで測定を実施したと判断された場合には（ステップＳ１５のＹｅｓルート）、推定部２１により、指定領域の推定の処理が終了したと判断され、推定部２１による処理が終了する。
ここで、ステップＳ４〜Ｓ１０における各推定部２１による記憶部へのアクセスは、上述したように、各推定部２１が記憶部３０のアドレスに対して書き込みを行なった後、書き込んだ値を読み込むことで行なわれる。
【０１７２】
これにより、推定部２１は、書き込み及び読み込みのそれぞれの処理による性能から指定領域を推定することができるため、書き込み又は読み込みのみの処理による性能から指定領域を推定する場合に比べて、推定部２１による指定領域の推定の信頼性を向上させることができる。
このとき、各推定部２１は、ステップＳ４〜Ｓ６において生成した複数の書き込みアドレスを記憶部３０に保持してもよい。これにより、各推定部２１は、ステップＳ８〜Ｓ１０において読み込みアドレスを生成せずに、記憶部３０等に保持した書き込みアドレスを用いて記憶部をアクセスし、ステップＳ４で書き込んだ値を読み込むことができる。
【０１７３】
なお、処理部２０による記憶部３０へのデータ書き込みは、記憶部３０に対して非同期で行なわれる。一方、処理部２０による記憶部３０からのデータ読み込みは、記憶部３０からデータを取得する処理が入るため、書き込みの処理よりも制御部１０における負荷の影響を受けやすい。
従って、記憶部アクセス時の処理部２０の性能を測定する場合には、ステップＳ８〜Ｓ１０に相当する処理部２０による記憶部３０のアドレスからの読み込みの処理のみを行なうこととしてもよい。
【０１７４】
図１６は、図２に示すシステム１′において、システム１′の負荷検証を行なう場合の検証部２２の動作を説明するためのフローチャートである。
以降、説明する処理については、各処理部２０がそれぞれ独立して動作することになる。
はじめに、各検証部２２により、ランダムに複数のアドレスが生成され、アドレスリストが生成される（ステップＳ１７）。
【０１７５】
次に、各検証部２２は、推定部２１により推定された指定領域のアドレスビットをキーとして、生成したアドレスリスト内のアドレスをソートする（ステップＳ１８）。
このとき、指定領域として、複数のアドレスビットアドレス内に存在する場合には、各検証部２２は、指定領域としての全てのアドレスビットを対象として、複数のアドレス情報をソートする。
【０１７６】
そして、各検証部２２により、ソートされたアドレスリストからアドレスを順次読み出して、読み出したアドレスを用いて記憶部３０のアドレスに対して順にアクセスが行なわれ、性能が測定される（ステップＳ１９）。
ここで、各検証部２２によるアクセスは、図１５を参照しながら説明した推定部２１によるアクセスと同様に、記憶部３０に対してデータの書き込みを行なった後、書き込んだ値を記憶部から読み込むことで行なわれてよい。
【０１７７】
最後に、各検証部２２により、ステップＳ１９におけるアクセス結果がチェックされ（ステップＳ２０）、処理が終了する。
ここで、各検証部２２は、ステップＳ１９におけるアクセス結果のチェックとして、例えば、ステップＳ１９においてアクセス先のアドレスから読み込んだ値と、期待値とを比較して、互いに一致しているか否かを確認する。
【０１７８】
ここまで、説明した各処理については、各処理部２０がそれぞれ独立して動作することになる。以降の図示しない処理、例えば、処理部２０による負荷検証の結果の集計や表示等の処理は、各処理部２０が共通して行なってもよいし、いずれかの処理部２０のみが行なってもよい。
なお、ステップＳ１９の処理までは各処理部２０がそれぞれ独立して動作し、ステップＳ２０の処理は各処理部２０が共通して行なってもよいし、いずれかの処理部２０が行なってもよい。
【０１７９】
（Ａ−５）まとめ
このように、第１実施形態によれば、推定部２１により、アドレス情報における指定領域、つまり図３のアドレスビット５や図５のアドレスビット５，９が推定される。また、検証部２２では、推定部２１によって推定された指定領域における指定情報に基づいて、アドレスが割り当てられる制御部１０が特定され、個々の制御部１０に負荷を集中的に与えながら記憶部３０をアクセスし、システムのアクセス集中、高負荷時の信頼性が検証される。
【０１８０】
従って、複数の制御部１０の間で負荷分散を行なうシステムにおいて、個々の制御部１０に負荷を与えることができ、負荷検証の信頼性を大幅に向上させることができる。
また、装置構成が不明なシステムにおいて、推定部２１によって、上述のように指定領域が推定される。そして、検証部２２によって、複数のアドレスがランダムに生成され、生成された複数のアドレスが、推定部２１により推定された指定領域における指定情報に従ってソートされ、ソートされた複数のアドレスに基づいて記憶部３０に対するアクセスが行なわれることにより、システムの高負荷時の信頼性検証が行なわれる。これにより、図１０〜図１４を参照しながら上述したように、検証部２２は、装置構成が不明なシステムにおいて、個々の制御部単位で見た最大負荷を与えることができる。
【０１８１】
さらに、図１０〜図１４を参照しながら上述したように、検証部２２は、システムの全体から見た負荷状況を遷移させることで負荷状況の波を発生させ（図１４の点線Ｃ参照）、被検証装置の負荷観点での検証カバレージを向上させる事が可能である。
（Ｂ）その他
以上、本発明の実施形態について詳述したが、本発明は、係る特定の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲内において、種々の変形、変更して実施することができる。
【０１８２】
図１７は、その他のシステム２の構成例を示すブロック図である。
例えば、図１７を参照しながら説明する如く、第１実施形態のシステム１′，１″における処理部２０の数は２であったが、処理部の数はこれに限定されるものではなく、処理部２０として３以上、図１７に示す例では８つのＣＰＵ２０−１〜２０−８をそなえてもよい。また、処理部２０として複数、図１７に示す例では２つのＩ／Ｏチャネル４０−１及び４０−２をそなえてもよい。さらに、記憶部３０として２以上、図１７に示す例では８つのメモリ３０−１〜３０−８をそなえてもよい。
【０１８３】
図１７に示す例においては、制御部１０−１及び１０−２は、それぞれ、メモリ３０−１〜３０−８と接続されており、制御部１０−２は、メモリ３０−５〜３０−８と接続されている。
システム２は、ＣＰＵ２０−１〜２０−８によるメモリ３０−１〜３０−８の記憶領域へのアクセス要求によって一つの制御部１０−１及び１０−２にアクセスが集中しないように、制御部間で負荷分散を行なう。
【０１８４】
また、システム２は、Ｉ／Ｏチャネル４０−１及び４０−２によるメモリ３０−１〜３０−８の記憶領域へのアクセス要求によって一つの制御部１０−１及び１０−２にアクセスが集中しないように、制御部間で負荷分散を行なう。
このようなシステム２においても、第１実施形態において上述した、負荷検証を行なうことができる。
【０１８５】
また、上述した性能測定の方法は、上述した制御部に対する負荷検証に限らず、ＣＰＵとメモリとの間に設けられ、メモリインターリーブを行なうメモリコントローラに対する負荷検証においても同様に適用することができる。
さらに、上述したシステムの性能測定は、例えば、性能測定装置によって、検証対象のシステムがそなえるＩ／Ｏチャネルを介して、複数の制御部及び記憶部にアクセスされることによって行なわれてもよい。この場合、推定部２１及び検証部２２は、性能測定装置にそなえられる。
【０１８６】
なお、上述した推定部２１及び測定部２２としての機能は、コンピュータ（ＣＰＵ，情報処理装置，各種端末を含む）が装置検証プログラムとしての所定のアプリケーションプログラムを実行することによって実現される。
そのプログラムは、例えばフレキシブルディスク，ＣＤ（ＣＤ−ＲＯＭ，ＣＤ−Ｒ，ＣＤ−ＲＷなど），ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−ＲＡＭ，ＤＶＤ−Ｒ，ＤＶＤ−ＲＷ，ＤＶＤ＋Ｒ，ＤＶＤ＋ＲＷなど）等のコンピュータ読取可能な記録媒体に記録された形態で提供される。この場合、コンピュータはその記録媒体から記憶部制御プログラムを読み取って内部記憶装置または外部記憶装置に転送し格納して用いる。また、そのプログラムを、例えば磁気ディスク，光ディスク，光磁気ディスク等の記憶装置（記録媒体）に記録しておき、その記憶装置から通信回線を介してコンピュータに提供するようにしてもよい。
【０１８７】
ここで、コンピュータとは、ハードウェアとＯＳ（オペレーティングシステム）とを含む概念であり、ＯＳの制御の下で動作するハードウェアを意味している。また、ＯＳが不要でアプリケーションプログラム単独でハードウェアを動作させるような場合には、そのハードウェア自体がコンピュータに相当する。ハードウェアは、少なくとも、ＣＰＵ等のマイクロプロセッサと、記録媒体に記録されたコンピュータプログラムを読み取るための手段とをそなえている。
【０１８８】
上記装置検証プログラムとしてのアプリケーションプログラムは、上述のようなコンピュータに、上記機能を実現させるプログラムコードを含んでいる。また、その機能の一部は、アプリケーションプログラムではなくＯＳによって実現されてもよい。
（Ｃ）付記
そして、本発明は、以下に示すように要約することができる。
【０１８９】
（付記１）
記憶部と前記記憶部へのアクセスを制御する複数の制御部とをそなえるシステムにおける性能を測定する機能を、コンピュータに実現させる装置検証プログラムであって、
前記記憶部のアクセス対象のアドレスを設定されるアドレス領域と当該アクセス対象へのアクセスを制御する一の制御部を前記複数の制御部の中から指定する指定情報を設定される指定領域とを含むアドレス情報における前記指定領域を推定する推定部、および、
前記推定部によって推定された前記指定領域における指定情報に基づいて前記記憶部に対するアクセスを行ない、前記システムの負荷時の信頼性を検証する検証部として、前記コンピュータを機能させることを特徴とする、装置検証プログラム。
【０１９０】
（付記２）
前記推定部は、前記アドレス情報における異なる部分領域の情報を固定した複数の状態で複数のアドレスを生成し、各状態において、生成した前記複数のアドレスに対してアクセスを行ない前記システムの性能を測定し、各状態での性能測定結果と各状態で情報を固定した部分領域とに基づいて前記指定領域を推定するように、前記コンピュータを機能させることを特徴とする、付記１記載の装置検証プログラム。
【０１９１】
（付記３）
前記推定部は、前記複数の状態のうちの一の状態での性能測定結果が、基準となる性能測定結果よりも低下している場合、前記一の状態での性能測定結果を推定対象として特定し、特定された推定対象の性能を測定した際に情報を固定した部分領域に基づいて前記指定領域を推定するように、前記コンピュータを機能させることを特徴とする、付記２記載の装置検証プログラム。
【０１９２】
（付記４）
前記推定部は、前記一の状態での性能測定結果の、前記基準となる性能測定結果に対する性能低下量が所定範囲内に属している場合、前記一の状態での性能測定結果を前記推定対象として特定するように、前記コンピュータを機能させることを特徴とする、付記３記載の装置検証プログラム。
【０１９３】
（付記５）
前記推定部は、前記性能低下量が前記所定範囲を超えている場合、前記システムにおいて異常が生じていると推定するように、前記コンピュータを機能させることを特徴とする、付記４記載の装置検証プログラム。
（付記６）
前記推定部は、前記アドレス情報における複数のビットの値を前記アドレス情報における下位のビットから順に固定した複数の状態で複数のアドレスを生成し、各状態において、生成した前記複数のアドレスに対してアクセスを行ない前記システムの性能を測定し、各状態での性能測定結果と各状態で値を固定した前記ビットの位置とに基づいて前記指定領域を推定するように、前記コンピュータを機能させることを特徴とする、付記１記載の装置検証プログラム。
【０１９４】
（付記７）
前記推定部は、各状態において、各状態で固定されるビット数に応じた所定ビット値を、基準となるアドレスに対して繰り返し加算することで、前記複数のアドレスを生成するように、前記コンピュータを機能させることを特徴とする、付記６記載の装置検証プログラム。
【０１９５】
（付記８）
前記推定部は、前記複数の状態のうちの一の状態での性能測定結果が、基準となる性能測定結果よりも低下している場合、前記一の状態での性能測定結果を推定対象として特定し、特定された推定対象の性能を測定した際に用いられた前記所定ビット値に基づいて前記指定領域を推定するように、前記コンピュータを機能させることを特徴とする、付記７記載の装置検証プログラム。
【０１９６】
（付記９）
前記所定ビット値において、最上位ビットの値は１であるとともに、他のビットの値は全て０であり、
前記推定部は、前記推定対象の性能を測定した際に用いられた前記所定ビット値における最上位ビットの次のビットの位置に対応する、前記アドレス情報の一ビットを前記指定領域として推定するように、前記コンピュータを機能させることを特徴とする、付記８記載の装置検証プログラム。
【０１９７】
（付記１０）
前記推定部は、前記アドレス情報の一ビットを前記指定領域として推定した後さらに前記推定領域の推定を行なう場合、前記指定領域であると推定された前記一ビットの値の固定を抑制するように前記複数のアドレスを生成するように、前記コンピュータを機能させることを特徴とする、付記９記載の装置検証プログラム。
【０１９８】
（付記１１）
前記推定部による前記複数のアドレスに対するアクセスは、前記各状態において、互いに異なるアクセス幅であることを特徴とする、付記６〜付記１０のいずれか一つに記載の装置検証プログラム。
（付記１２）
前記検証部は、複数のアドレス情報をランダムに生成し、生成された前記複数のアドレス情報を、前記推定部によって推定された前記指定領域における指定情報に従ってソートし、ソートされた前記複数のアドレス情報に基づいて前記記憶部に対するアクセスを行ない、前記システムの負荷時の信頼性を検証するように、前記コンピュータを機能させることを特徴とする、付記１〜付記１１のいずれか一つに記載の装置検証プログラム。
【０１９９】
（付記１３）
記憶部と前記記憶部へのアクセスを制御する複数の制御部とをそなえるシステムにおける性能を測定する機能を、コンピュータに実現させる装置検証プログラムを記録したコンピュータ読取可能な記録媒体であって、
前記装置検証プログラムが、
前記記憶部のアクセス対象のアドレスを設定されるアドレス領域と当該アクセス対象へのアクセスを制御する一の制御部を前記複数の制御部の中から指定する指定情報を設定される指定領域とを含むアドレス情報における前記指定領域を推定する推定部、および、
前記推定部によって推定された前記指定領域における指定情報に基づいて前記記憶部に対するアクセスを行ない、前記システムの負荷時の信頼性を検証する検証部として、前記コンピュータを機能させることを特徴とする、装置検証プログラムを記録したコンピュータ読取可能な記録媒体。
【０２００】
（付記１４）
前記推定部は、前記アドレス情報における異なる部分領域の情報を固定した複数の状態で複数のアドレスを生成し、各状態において、生成した前記複数のアドレスに対してアクセスを行ない前記システムの性能を測定し、各状態での性能測定結果と各状態で情報を固定した部分領域とに基づいて前記指定領域を推定するように、前記コンピュータを機能させることを特徴とする、付記１３記載の装置検証プログラムを記録したコンピュータ読取可能な記録媒体。
【０２０１】
（付記１５）
前記検証部は、複数のアドレス情報をランダムに生成し、生成された前記複数のアドレス情報を、前記推定部によって推定された前記指定領域における指定情報に従ってソートし、ソートされた前記複数のアドレス情報に基づいて前記記憶部に対するアクセスを行ない、前記システムの負荷時の信頼性を検証するように、前記コンピュータを機能させることを特徴とする、付記１３又は付記１４記載の装置検証プログラムを記録したコンピュータ読取可能な記録媒体。
【０２０２】
（付記１６）
記憶部と前記記憶部へのアクセスを制御する複数の制御部とをそなえるシステムにおける性能を測定する性能測定方法であって、
前記記憶部のアクセス対象のアドレスを設定されるアドレス領域と当該アクセス対象へのアクセスを制御する一の制御部を前記複数の制御部の中から指定する指定情報を設定される指定領域とを含むアドレス情報における前記指定領域を推定し、
推定された前記指定領域における指定情報に基づいて前記記憶部に対するアクセスを行ない、前記システムの性能を測定することを特徴とする、性能測定方法。
【０２０３】
（付記１７）
前記アドレス情報における異なる部分領域の情報を固定した複数の状態で複数のアドレスを生成し、各状態において、生成した前記複数のアドレスに対してアクセスを行ない前記システムの性能を測定し、各状態での性能測定結果と各状態で情報を固定した部分領域とに基づいて前記指定領域を推定することを特徴とする、付記１６記載の性能測定方法。
【０２０４】
（付記１８）
複数のアドレス情報をランダムに生成し、生成された前記複数のアドレス情報を、推定された前記指定領域における指定情報に従ってソートし、ソートされた前記複数のアドレス情報に基づいて前記記憶部に対するアクセスを行ない、前記システムの性能を測定することを特徴とする、付記１６又は付記１７記載の性能測定方法。
【０２０５】
（付記１９）
記憶部と前記記憶部へのアクセスを制御する複数の制御部とをそなえるシステムにおける性能を測定する性能測定装置であって、
前記記憶部のアクセス対象のアドレスを設定されるアドレス領域と当該アクセス対象へのアクセスを制御する一の制御部を前記複数の制御部の中から指定する指定情報を設定される指定領域とを含むアドレス情報における前記指定領域を推定する推定部と、
前記推定部によって推定された前記指定領域における指定情報に基づいて前記記憶部に対するアクセスを行ない、前記システムの負荷時の信頼性を検証する検証部と、をそなえることを特徴とする、性能測定装置。
【０２０６】
（付記２０）
前記推定部及び前記検証部は、前記システムのＩ／Ｏチャネルを介して前記複数の制御部及び前記記憶部へアクセスすることを特徴とする、付記１９記載の性能測定装置。
【符号の説明】
【０２０７】
１，１′，１″，２，１００    システム
１０，１０−１〜１０−４，１１０    制御部
２０，２０−１〜２０−８，１２０    処理部（ＣＰＵ）
２１，２１−１，２１−２    推定部
２２，２２−１，２２−２    検証部
３０，３０−１〜３０−８，１３０    記憶部（メモリ）
４０−１，４０−２，１４０    Ｉ／Ｏチャネル
【図１】
0005625611.tif 000002
【図２】
0005625611.tif 000003
【図３】
0005625611.tif 000004
【図４】
0005625611.tif 000005
【図５】
0005625611.tif 000006
【図６】
0005625611.tif 000007
【図７】
0005625611.tif 000008
【図８】
0005625611.tif 000009
【図９】
0005625611.tif 000010
【図１０】
0005625611.tif 000011
【図１１】
0005625611.tif 000012
【図１２】
0005625611.tif 000013
【図１３】
0005625611.tif 000014
【図１４】
0005625611.tif 000015
【図１５】
0005625611.tif 000016
【図１６】
0005625611.tif 000017
【図１７】
0005625611.tif 000018
【図１８】
0005625611.tif 000019