(57)【特許請求の範囲】
【請求項１】
情報処理装置で実行されることにより試験対象装置を試験的に動作させる試験プログラムにおいて、
前記情報処理装置のハードウェア構成を確認する構成確認処理と、
前記構成確認処理で確認されたハードウェア構成に基づいて、該ハードウェア構成に含まれている各ハードウェア要素に対する負荷の変動パターンを、負荷の変動パターンにおける変動タイミングとして、複数の定期的な変動タイミングの組み合わせであって該変動タイミング相互では変動が非同期となるような組み合わせを用い、該組み合わせに含まれる各変動タイミングを各ハードウェア要素に割り当てるように決定する決定処理と、
前記構成確認処理で確認されたハードウェア構成に含まれている各ハードウェア要素を、前記決定処理で決定された変動パターンで動作させる動作処理と、
前記動作処理での前記各ハードウェア要素の動作が正常であるか否かを確認する動作確認処理とを前記情報処理装置に実行させることを特徴とする試験プログラム。
【請求項２】
情報処理装置で実行されることにより試験対象装置を試験的に動作させる試験プログラムにおいて、
前記情報処理装置のハードウェア構成を確認する構成確認処理と、
前記構成確認処理で確認されたハードウェア構成に基づいて、該ハードウェア構成に含まれている各ハードウェア要素に対する負荷の変動パターンを、前記ハードウェア要素に対して予備的な動作を実行させることにより、該ハードウェア要素における実際の動作で生じる実際の負荷を確認し、各ハードウェア要素に対する負荷の変動パターンにおける具体的な負荷動作を、その確認した負荷に基づいて決定し、負荷の変動パターンにおける変動タイミングとして、複数の定期的な変動タイミングの組み合わせであって該変動タイミング相互では変動が非同期となるような組み合わせを用い、該組み合わせに含まれる各変動タイミングを各ハードウェア要素に割り当てるように決定する決定処理と、
前記構成確認処理で確認されたハードウェア構成に含まれている各ハードウェア要素を、前記決定処理で決定された変動パターンで動作させる動作処理と、
前記動作処理での前記各ハードウェア要素の動作が正常であるか否かを確認する動作確認処理とを前記情報処理装置に実行させることを特徴とする試験プログラム。
【請求項３】
情報処理装置で実行されることにより試験対象装置を試験的に動作させる試験方法において、
前記情報処理装置のハードウェア構成を確認する構成確認処理と、
前記構成確認処理で確認されたハードウェア構成に基づいて、該ハードウェア構成に含まれている各ハードウェア要素に対する負荷の変動パターンを、負荷の変動パターンにおける変動タイミングとして、複数の定期的な変動タイミングの組み合わせであって該変動タイミング相互では変動が非同期となるような組み合わせを用い、該組み合わせに含まれる各変動タイミングを各ハードウェア要素に割り当てるように決定する決定処理と、
前記構成確認処理で確認されたハードウェア構成に含まれている各ハードウェア要素を、前記決定処理で決定された変動パターンで動作させる動作処理と、
前記動作処理での前記各ハードウェア要素の動作が正常であるか否かを確認する動作確認処理とを有することを特徴とする試験方法。
【請求項４】
情報処理装置で実行されることにより試験対象装置を試験的に動作させる試験方法において、
前記情報処理装置のハードウェア構成を確認する構成確認処理と、
前記構成確認処理で確認されたハードウェア構成に基づいて、該ハードウェア構成に含まれている各ハードウェア要素に対する負荷の変動パターンを、前記ハードウェア要素に対して予備的な動作を実行させることにより、該ハードウェア要素における実際の動作で生じる実際の負荷を確認し、各ハードウェア要素に対する負荷の変動パターンにおける具体的な負荷動作を、その確認した負荷に基づいて決定し、負荷の変動パターンにおける変動タイミングとして、複数の定期的な変動タイミングの組み合わせであって該変動タイミング相互では変動が非同期となるような組み合わせを用い、該組み合わせに含まれる各変動タイミングを各ハードウェア要素に割り当てるように決定する決定処理と、
前記構成確認処理で確認されたハードウェア構成に含まれている各ハードウェア要素を、前記決定処理で決定された変動パターンで動作させる動作処理と、
前記動作処理での前記各ハードウェア要素の動作が正常であるか否かを確認する動作確認処理とを有することを特徴とする試験方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本件開示は、試験プログラムおよび試験方法に関する。
【背景技術】
【０００２】
従来より、情報処理装置に対する動作試験が実施されている。
【０００３】
例えばバスに負荷を与えても正常な動作が得られるか確認するバス負荷試験で、実際にバスに掛かっている負荷率を測定する技術が知られている（例えば、特許文献１参照。）。また、バス負荷試験で、バス負荷の状態を任意の割合で実現する技術も知られている（例えば、特許文献２参照。）。
【０００４】
通信装置の試験では、任意の間隔で同期フラグを間挿して限界性能試験を行う技術が知られている（例えば、特許文献３参照。）。また、通信装置において、互換性や拡張性を備えるために、ホストプロセッサの信号処理性能の評価に基づいてデータレートを決める技術が知られている（例えば、特許文献４参照。）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平９−１６０８４２号公報
【特許文献２】特開２００６−３３８４８４号公報
【特許文献３】特開平２−１５０１４６号公報
【特許文献４】特開２０００−４９８８５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上記特許文献の技術を含む従来知られている技術では、試験の対象となる対象装置におけるハードウェア構成が既知であることを前提として、そのハードウェア構成に適合した負荷の変動パターンが用意されている。しかし、実際に試験が行われる対象装置としては様々なハードウェア構成の装置が存在する上にそのハードウェア構成もしばしば変更される。そのような様々なハードウェア構成に合わせて、しかも将来の変化まで見越して負荷の変動パターンを予め用意しておくことは現実的でない。なお、本件開示における負荷の変動パターンとは、負荷の変動順序と負荷の変動タイミングと、変動する各負荷を実現する具体的な各負荷動作とを含んだ総合的な意味での変動パターンである。
【０００７】
上記事情に鑑み、本件開示は、任意のハードウェア構成を有する対象装置についてハードウェア構成に応じた負荷変動試験を実施することができる試験プログラムおよび試験方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成する試験プログラムは、情報処理装置で実行されることにより試験対象装置を試験的に動作させる試験プログラムにおいて、構成確認処理と決定処理と動作処理と動作確認処理とを上記情報処理装置に実行させる。
【０００９】
上記構成確認処理は、上記試験対象装置のハードウェア構成を確認する処理である。
【００１０】
上記決定処理は、構成確認処理で確認されたハードウェア構成に基づいて、そのハードウェア構成に含まれている各ハードウェア要素に対する負荷の変動パターンを決定する処理である。
【００１１】
上記動作処理は、構成確認処理で確認されたハードウェア構成に含まれている各ハードウェア要素を、決定処理で決定された変動パターンで動作させる処理である。
【００１２】
上記動作確認処理は、動作処理での各ハードウェア要素の動作が正常であるか否かを確認する処理である。
【００１３】
上記目的を達成する試験方法は、情報処理装置で実行されることにより試験対象装置を試験的に動作させる試験方法において、上記構成確認処理と上記決定処理と上記動作処理と上記動作確認処理とを有する。
【発明の効果】
【００１４】
本件開示によれば、任意のハードウェア構成を有する対象装置についてハードウェア構成に応じた負荷変動試験を実施することができる。
【図面の簡単な説明】
【００１５】
【図１】試験の対象となる対象装置の具体例に相当するストレージ装置を示す図である。
【図２】コントローラモジュールの構造の詳細を示す図である。
【図３】メモリ上にローディングされた試験プログラムを示す図である。
【図４】本実施形態の試験プログラムの実行によって実現する本実施形態の試験方法を表すフローチャートである。
【図５】認識処理の手順を表すフローチャートである。
【図６】サポートＩ／Ｏテーブルを示す図である。
【図７】装置構成テーブルを示す図である。
【図８】認識された構成を示す図である。
【図９】図８に示すハードウェア構成の認識例における装置構成テーブルを示す図である。
【図１０】負荷率の変化順序の例を示す図である。
【図１１】自動決定処理のフローチャートである。
【図１２】実施済みの負荷率のセットを記録した記録表を示す図である。
【図１３】自動決定処理で決定された変動間隔の組み合わせの例を示す図である。
【図１４】負荷率１００％での動作状態を示す図である。
【図１５】負荷率が１００％未満の場合の動作状態を示す図である。
【図１６】ディレイの無いコマンドチェーンを示す図である。
【図１７】ディレイコマンドを含んだコマンドチェーンを示す図である。
【図１８】負荷率ｚ％を実現するコマンド実行パターンを示す図である。
【図１９】負荷率ｚ％を実現する別のコマンド実行パターンを示す図である。
【図２０】負荷率変動タイミングテーブルを表す図である。
【図２１】試験処理におけるタスク構造を示す図である。
【図２２】図２１に示すタスク構造における試験処理の実行手順を示す図である。
【図２３】エラーリストを示す図である。
【発明を実施するための形態】
【００１６】
上記説明した試験プログラムおよび試験方法に対する具体的な実施形態を説明する前に、試験の対象となる対象装置の具体例について説明する。
【００１７】
図１は、試験の対象となる対象装置の具体例に相当するストレージ装置を示す図である。
【００１８】
図１に示すストレージ装置３００は、複数（図１の例では６つ）のディスク装置３１０を内蔵している。これらのディスク装置３１０は、それぞれがデータを記憶する装置である。なお、ディスク装置の種類としては、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）やＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｉｓｋ）などが存在する。そして図１に示すディスク装置３１０にはどの種類のディスク装置も採用可能である。
【００１９】
また、ストレージ装置３００は、複数（図１の例では３つ）のコントローラモジュール（ＣＭ）３２０を備えている。
【００２０】
ＣＭ３２０には、チャネルアダプタ（ＣＡ）３３０とデバイスアダプタ（ＤＡ）３４０とダイレクトメモリアクセス（ＤＭＡ）コントローラ３５０が備えられている。更に後述するように、ＣＭ３２０には、ＣＰＵやメモリなども備えられているので、このＣＰＵで動作されるプログラムの内容によってＣＭ３２０は種々の処理を実行することができる。つまり、図１に示すストレージ装置３００は情報処理装置の一種である。
【００２１】
ＣＡ３３０は、上位装置であるホスト４００に接続されている。そしてＣＭ３２０は、ＣＡ３３０を介してホスト４００から、書込み命令や、その書込み命令に従ってディスク装置３１０に書き込まれるデータを受け取る。また、ＣＭ３２０はＣＡ３３０を介してホスト４００から読出し命令を受け取り、その読出し命令に従ってディスク装置３１０から読み出されたデータをＣＡ３３０を介してホスト４００へ送る。
【００２２】
ＤＡ３４０はディスク装置３１０に接続されている。そしてＣＭ３２０はＤＡ３４０を介してディスク装置３１０にアクセスすることでデータをディスク装置３１０と遣り取りする。
【００２３】
ＤＭＡコントローラ３５０は、ＣＭ３２０の相互接続に用いられる装置である。即ち、各ＣＭ３２０はＤＭＡコントローラ３５０を介して、必要に応じてデータを相互に転送する。データの転送が必要になる場合とは、例えば、あるＣＭ３２０に接続されていないディスク装置３１０に対するアクセスの命令をこのＣＭ３２０が受け取った場合などである。
【００２４】
なお、図１に示す、ＣＭ３２０とホスト４００との１対１の接続関係、およびＣＭ３２０とディスク装置３１０との１対２の接続関係は単なる一例であって、ＣＡ３３０やＤＡ３４０で物理的に対応可能な範囲内であればＣＭ３２０の設定によって接続関係は変更可能である。
【００２５】
次に、ＣＭ３２０の構造の詳細について説明する。
【００２６】
図２は、ＣＭの構造の詳細を示す図である。
【００２７】
ＣＭ３２０は、上述したＣＡ３３０、ＤＡ３４０、ＤＭＡコントローラ３５０の他に、ＣＰＵ３６０、メモリ３７０、チップセット３８０、バスブリッジ３９０を備えている。チップセット３８０はノースブリッジ３８１とサウスブリッジ３８２を含んでいる。
【００２８】
更に、ＣＭ３２０は、複数のＰＣＩバス３９１、フラッシュＲＯＭ３９２、スーパーＩ／Ｏ３９３、コンパクトフラッシュ（登録商標）３９４、システム監視回路３９５、ＬＡＮコントローラ３９６も備えている。
【００２９】
チップセット３８０にはＰＣＩバス３９１を介して、ＣＰＵ３６０、バスブリッジ３９０、システム監視回路３９５、ＬＡＮコントローラ３９６が接続されている。更に、バスブリッジ３９０にはＰＣＩバス３９１を介して、ＣＡ３３０、ＤＡ３４０、ＤＭＡコントローラ３５０が接続されている。
【００３０】
一方、メモリ３７０は、チップセット３８０のノースブリッジ３８１に直接接続されている。また、フラッシュＲＯＭ３９２、スーパーＩ／Ｏ３９３、コンパクトフラッシュ（登録商標）３９４は、チップセット３８０のサウスブリッジ３８２に直接接続されている。
【００３１】
フラッシュＲＯＭ３９２はＢＩＯＳを記憶した記憶素子である。スーパーＩ／Ｏ３９３は、このストレージ装置３００を外部から操作するための操作端末５００が接続されるインターフェースである。コンパクトフラッシュ（登録商標）３９４は、ＣＰＵ３６０に各種の動作を実行させるプログラムを記憶した記憶素子である。本実施形態では、このコンパクトフラッシュ（登録商標）３９４に、試験プログラムの一実施形態が記憶されている。システム監視回路３９５はＣＭ３２０内で生じた各種の状態情報を集めて出力するものである。
【００３２】
本実施形態では、ＰＣＩバス３９１の負荷を変動させながらチップセット３８０の動作を確認する試験が行われる。ここで、本実施形態の試験プログラムの起動手順について説明する。まずＣＭ３２０に電源が投入されることでフラッシュＲＯＭ３９２のＢＩＯＳが起動する。このＢＩＯＳはコンパクトフラッシュ（登録商標）３９４から診断システムモニタをメモリ３７０上にローディングし、その後、制御を診断システムモニタに渡す。診断システムモニタがメモリ３７０上にローディングされてＣＰＵ３６０で実行されるとＣＭ３２０が診断システムとして立ち上がる。立ち上がった診断システムは、操作端末５００に診断システムの操作画面を表示する。操作者は、この操作画面から、本実施形態の試験プログラムの起動を指示する操作を行う。その結果、試験プログラムがコンパクトフラッシュ（登録商標）３９４からメモリ３７０上にローディングされる。そして、そのローディングされた試験プログラムがＣＰＵ３６０で実行される。
【００３３】
このようにローディングされた本実施形態の試験プログラムについて以下説明する。
【００３４】
図３は、メモリ上にローディングされた試験プログラムを示す図である。
【００３５】
図３に示すように、試験プログラム１００はメモリ３７０上にローディングされている。そして、試験プログラム１００は、ＣＰＵ３６０によって実行されることにより、本実施形態の試験方法をＣＭ３２０に実行させるものである。
【００３６】
試験プログラム１００は、ＣＰＵ３６０によって実行されることにより、メモリ３７０上にサポートＩ／Ｏテーブル６１０と装置構成テーブル６２０と負荷率変動タイミングテーブル６５０とエラーリスト６９０を構築する。これらのテーブルやリストの詳細については後述する。
【００３７】
本実施形態の試験プログラム１００は、ＣＭ３２０内のチップセット３８０が正常に動作するかを確認するためのものである。即ち、本実施形態の試験プログラム１００によって実行される本実施形態の試験方法ではＣＭ３２０が試験的に動作させられることになる。そして、この試験方法では、ＣＭ３２０の試験的動作に際して、ＣＭ３２０内の各ＰＣＩバス３９１における負荷率が変動する。ここで、負荷率が１００％の動作状態とは、ＰＣＩバス３９１に接続されているＩＯ装置やメモリの能力も込みでＰＣＩバス３９１が転送可能な最大のデータ転送量を実現している動作状態を言う。このため、実際に特定の負荷率が得られる動作状態は装置のハードウェア構成に依存することとなる。
【００３８】
図４は、本実施形態の試験プログラムの実行によって実現する本実施形態の試験方法を表すフローチャートである。
【００３９】
本実施形態の試験方法では、チップセットの動作を確認するための試験処理に先立って、まず、試験対象となる実際の装置（本実施形態ではＣＭ３２０）におけるチップセット構成（ハードウェア構成）を認識する認識処理が実行される（ステップＳ１０１）。その後、その認識されたチップセット構成に基づいて、各ＰＣＩバス３９１における負荷率の変動タイミングを決定する自動決定処理が実行される（ステップＳ１０２）。さらに本実施形態では、各ＰＣＩバス３９１について、実際のデータ転送動作における負荷率を測定する負荷率測定処理が実行される（ステップＳ１０３）。
【００４０】
本実施形態の試験方法では、このような準備的な各処理が終了した後、試験処理が実行される（ステップＳ１０４）。この試験処理では、チップセットの動作を確認するためにＣＭ３２０が試験的に動作させられる。また、この試験処理では、上記ステップＳ１０２で決定された変動パターンに従って各ＰＣＩバス３９１における負荷率が変動させられる。そして、試験処理が終了したら、試験結果をチェックするチェック処理が実行される（ステップＳ１０５）。
【００４１】
上述したステップＳ１０１は、情報処理装置のハードウェア構成を確認する構成確認処理の一例に相当する。また、ステップＳ１０２およびステップＳ１０３は、確認されたハードウェア構成に含まれている各ハードウェア要素に対する負荷の変動パターンを決定する決定処理の一例に相当する。これらステップＳ１０２およびステップＳ１０３のうちステップＳ１０２では、変動パターンのうちの変動タイミングが決定され、ステップＳ１０３では変動パターンのうちの、負荷率に対応する具体的な負荷動作が決定される。なお、本実施形態では、負荷の変動順序については操作で設定される方式が採用されている。しかし、変動パターンを決定する決定処理としては、変動順序も含めて自動決定する処理も採用可能である。この場合、変動順序は、例えばハードウェア要素の数などに応じて、要素数が多い場合には負荷率が粗く変動する変動順序に決めるといったように決定される。以下では、負荷の変動順序については操作で設定される方式を前提として説明を続ける。
【００４２】
上述したステップＳ１０４は、決定された変動パターンで各ハードウェア要素を動作させる動作処理の一例に相当する。さらに、上述したステップＳ１０５は、各ハードウェア要素の動作が正常であるか否かを確認する動作確認処理の一例に相当する。
【００４３】
本実施形態の試験方法では、このような一連の処理が実行される。以下では、これらの各処理について順次に説明していく。
【００４４】
図５は、認識処理の手順を表すフローチャートである。
【００４５】
この認識処理では、ストレージ装置のコントローラモジュールやパーソナルコンピュータなどといった情報処理装置のシステム上に備えられている機能を利用してハードウェア構成が認識される。この機能は、情報処理装置上でＢＩＯＳなどがハードウェア構成を確認するために用意された機能である。この機能の詳細は本件開示の本旨ではないので詳細説明は省略するが、概略としては以下説明する機能となっている。即ち、システム上にはいくつかのレジスタが用意されていて、これらのレジスタに、システムのバスに接続されている各ハードウェア（ＩＯ装置）からＩＤなどが送られて来て格納される。また、各レジスタには、バスにおけるハードウェアの全接続箇所を空間として表したＰＣＩコンフィグレーション空間上の各箇所が割り当てられている。そして、これらのレジスタに格納されている値を検索することによってハードウェア構成を認識することが出来る。なお、ＰＣＩコンフィグレーション空間上の各箇所は、バス番号とデバイス番号とファンクション番号との組み合わせによって特定される。
【００４６】
認識処理が開始されると、まず、チップセット上のＰＣＩバスブリッジが検索される（ステップＳ２０１）。このＰＣＩバスブリッジの検索は、具体的には、ＰＣＩコンフィグレーション空間のバス番号が「０」かつＰＣＩヘッダーレジスタの値が「０ｘ０１」となっているハードウェアの検索である。このようにＰＣＩバスブリッジが検索されると、各ＰＣＩバスブリッジについて、セカンダリバス番号とサブオーディネート番号を各々のレジスタから得ることが出来る。セカンダリバス番号は、ＰＣＩバスブリッジ配下のバス番号範囲の先頭番号を表している。また、サブオーディネート番号は、ＰＣＩバスブリッジ配下のバス番号範囲の末尾番号を表している。
【００４７】
次に、システムのバスに接続されている各ハードウェアが検索される（ステップＳ２０２）。この検索に際しては、試験プログラム内に予め保持されているサポートＩ／Ｏテーブルが参照される。このサポートＩ／Ｏテーブルは、この試験プログラムにアクセス用のコマンドなどが用意されている（即ちサポートされている）ＩＯ装置を示したテーブルである。このテーブルに示されたＩＯ装置は、試験プログラムに用意されたコマンドによって、ＰＣＩバスの負荷率を変動させるためのアクセスが可能である。
【００４８】
図６は、サポートＩ／Ｏテーブルを示す図である。
【００４９】
サポートＩ／Ｏテーブル６１０には、装置分類６１１とベンダＩＤ６１２とデバイスＩＤ６１３が対応付けられて格納されている。装置分類６１１は、ＩＯ装置をＣＡやＤＭＡ等というように機能で分けた分類（即ち装置種類）を表している。ベンダＩＤ６１２は、ＩＯ装置を製造したベンダを特定するＩＤである。デバイスＩＤ６１３は、ＩＯ装置の機種を特定するＩＤである。
【００５０】
このようなサポートＩ／Ｏテーブル６１０が図５のステップＳ２０２で参照される。そして、システム内の各レジスタに格納されているＩＤのうち、このサポートＩ／Ｏテーブル６１０に格納されているＩＤと同じＩＤが検索される。
【００５１】
この検索は、具体的には、ＰＣＩコンフィグレーション空間上の箇所を特定する、バス番号、デバイス番号、およびファンクション番号のそれぞれが昇順に変更されながら、各箇所に対応するレジスタに格納されているＩＤが読み出される。そして、読み出されたＩＤが、サポートＩ／Ｏテーブル６１０に格納されているＩＤと同じであるか確認される。ＩＤが同じであった場合には、サポートされているＩＯ装置が検索で見つかったことになる。なお、この検索で見つかったＩＯ装置については、当然ながら、そのＩＯ装置のＩＤが格納されていたレジスタに割り当てられているバス番号が自動的に取得されている。
【００５２】
その後、検索で見つかった各ＩＯ装置についてバス番号が、ステップＳ２０１で検索されたＰＣＩバスブリッジ配下のバス番号範囲と比較されることにより、各ＩＯ装置がどのＰＣＩバスブリッジの配下の装置であるかが認識される（ステップＳ２０３）。そして、このような認識結果に基づいて装置構成テーブルが生成される。
【００５３】
図７は、装置構成テーブルを示す図である。
【００５４】
装置構成テーブル６２０には、バス分類６２１と装置種類６２２とバス番号６２３とデバイス番号６２４とファンクション番号６２５が対応付けられて格納されている。
【００５５】
バス分類６２１は、検索で見つかったＰＣＩバスブリッジを区別するために割り当てられる番号である。このバス分類６２１は、システム内のＰＣＩバスをＰＣＩバスブリッジ毎に分類した番号とも言える。このバス分類６２１の「１」はＣＰＵ直結のＰＣＩバスに固定で割り当てられる。バス分類６２１の「２」以降は、検索で見つかった各ＰＣＩバスブリッジに順次に割り当てられる。
【００５６】
装置種類６２２は、図６に示すサポートＩ／Ｏテーブル６１０における装置分類６１１に相当する情報である。図５のステップＳ２０２で見つかったＩＯ装置について図６に示すサポートＩ／Ｏテーブル６１０から装置分類６１１が読み出されてこの装置構成テーブル６２０の装置種類６２２として格納される。
【００５７】
バス番号６２３とデバイス番号６２４とファンクション番号６２５との組み合わせは、上述したように、ＰＣＩコンフィグレーション空間上の箇所を特定するものである。
【００５８】
ここで、図２に示す具体例に当て嵌めて、ハードウェア構成の認識例を説明する。
【００５９】
図８は、認識された構成を示す図である。
【００６０】
図２に示すＣＭ３２０に対するハードウェア構成の認識の場合、図５のステップＳ２０１での検索でチップセット３８０上には３つのＰＣＩバスブリッジが見つかる。これらのＰＣＩバスブリッジの配下のバス番号範囲は、それぞれ、「１」〜「１０」、「１１」〜「２０」、「２１」〜「３０」となっている。図８に示す例では、これらのＰＣＩバスブリッジのうち、バス番号範囲が「１」〜「１０」である第１のＰＣＩバスブリッジに対してバス分類「２」が割り当てられている。即ち、この第１のＰＣＩバスブリッジ配下のＰＣＩバス３９１＿２についてバス分類「２」が割り当てられていることになる。この第１のＰＣＩバスブリッジ配下のＰＣＩバス３９１＿２には、バスブリッジ３９０を経由して、ＣＡ３３０とＤＭＡコントローラ３５０が接続されている。そして、これらＣＡ３３０およびＤＭＡコントローラ３５０はいずれもＰＣＩコンフィグレーション空間のバス番号「６」に対応していることが認識されている。
【００６１】
チップセット３８０上のＰＣＩバスブリッジのうち、バス番号範囲が「１１」〜「２０」である第２のＰＣＩバスブリッジにはバス分類「３」が割り当てられている。即ち、この第２のＰＣＩバスブリッジ配下のＰＣＩバス３９１＿３についてバス分類「３」が割り当てられていることになる。この第２のＰＣＩバスブリッジ配下のＰＣＩバス３９１＿３には、バスブリッジ３９０を経由してＤＡ３４０が接続されている。そして、このＤＡ３４０はＰＣＩコンフィグレーション空間のバス番号「１２」に対応していることが認識されている。
【００６２】
チップセット３８０上のＰＣＩバスブリッジのうち、バス番号範囲が「２１」〜「３０」である第３のＰＣＩバスブリッジにはバス分類「４」が割り当てられている。即ち、この第３のＰＣＩバスブリッジ配下のＰＣＩバス３９１＿４についてバス分類「４」が割り当てられていることになる。この第３のＰＣＩバスブリッジ配下のＰＣＩバス３９１＿４には、直接にＬＡＮコントローラ３９６が接続されている。そして、このＬＡＮコントローラ３９６はＰＣＩコンフィグレーション空間のバス番号「２１」に対応していることが認識されている。
【００６３】
バス分類「１」は当然ながらＣＰＵ３６０に直結のＰＣＩバス３９１＿１に割り当てられている。このＣＰＵ３６０に直結のＰＣＩバス３９１＿１に接続されているハードウェアとして認識処理で認識されるのはＣＰＵ３６０である。
【００６４】
以上説明したように、本実施形態では、各ＰＣＩバスに接続されている各ＩＯ装置が認識されるが、試験で負荷変動を生じさせる対象であるハードウェア要素は各ＰＣＩバスである。このため、各ＰＣＩバスには別々の負荷変動が与えられる。一方、各ＩＯ装置は、各ＰＣＩバスに対してＣＰＵ３６０が負荷変動を生じさせる手段（アクセス対象）として認識されている。従って、図８に示す例であれば、バス分類「２」のＰＣＩバス３９１＿２に接続されているＣＡ３３０およびＤＭＡコントローラ３５０は互いに同一の負荷変動で動作する（アクセスされる）ことになる。また図８は、各ＰＣＩバスと、各ＰＣＩバスに負荷変動を生じさせる手段との対応例も表していることになる。なお、バス分類「１」のＰＣＩバス３９１＿１に接続されているハードウェアはＣＰＵ３６０であるが、ＣＰＵ３６０がＣＰＵ３６０を負荷変動の手段にすることは出来ない。そこで、バス分類「１」だけは例外として、ＣＰＵ３６０がメモリ３７０をアクセスすることで負荷変動を生じさせる。
【００６５】
このようにハードウェア構成が認識された場合の装置構成テーブルは以下のようになる。
【００６６】
図９は、図８に示すハードウェア構成の認識例における装置構成テーブルを示す図である。
【００６７】
装置構成テーブル６２０の装置種類６２２には、「ＣＰＵ」、「ＣＡ」、「ＤＭＡ」、「ＤＡ」、「ＬＡＮ」という５種類が示されている。そして、バス分類６２１としては、「ＣＰＵ」に「１」、「ＣＡ」および「ＤＭＡ」に「２」、「ＤＡ」に「３」、「ＬＡＮ」に「４」が対応付けられている。また、バス番号６２３としては、「ＣＰＵ」に「０」、「ＣＡ」および「ＤＭＡ」に「６」、「ＤＡ」に「１２」、「ＬＡＮ」に「２１」が対応付けられている。
【００６８】
このように作成された装置構成テーブル６２０が参照されることによって、例えばバス分類「２」のＰＣＩバスには「ＣＡ」および「ＤＭＡ」がバス番号「６」に接続されている等ということが確認される。そして、そのように確認された「ＣＡ」および「ＤＭＡ」がバス分類「２」のＰＣＩバスに負荷変動を与える手段として認識される。但し、上述したように「ＣＰＵ」だけは例外として処理されて、負荷変動を与える手段はメモリと認識される。
【００６９】
図４のステップＳ１０１に示す認識処理では、以上説明したようにハードウェア構成が認識される。
【００７０】
以上で認識処理についての説明を終了し、以下、図４のステップＳ１０２に示す自動決定処理について説明する。
【００７１】
負荷率の変化順序についてはユーザの操作（図２に示す操作端末５００による操作）によって共通の変動順序が与えられているという前提で、この自動決定処理では、各ＰＣＩバスにおける負荷率の変動タイミングが、互いにバラバラになるように決定される。自動決定処理の詳細を説明する前に、ユーザの操作によって与えられる負荷率の変化順序について説明する。
【００７２】
図１０は、負荷率の変化順序の例を示す図である。
【００７３】
図１０には、本実施形態の試験プログラム中に予め組み込まれていて負荷率の変化順序の候補を示している負荷率変動順序リスト６３０が示されている。この負荷率変動順序リスト６３０には、負荷率の具体的な変動順序６３２と、各変動順序６３２を区別するための変動順序番号６３１とが対応付けられて記載されている。
【００７４】
具体的には、１番目の変動順序としては、１００％，９０％，…，１０％，０％，１０％，２０％，…，９０％，１００％，…というように、１０％ずつ負荷率が周期的に変動していく変動順序が示されている。また、２番目の変動順序としては、１００％，８０％，…，０％，２０％，…，８０％，１００％，…というように、２０％ずつ周期的に負荷率が変動していく変動順序が示されている。更に、３番目の変動順序としては、１００％，６０％，３０％，６０％，１００％，…というように周期的に負荷率が変動していく変動順序が示されている。なお、変動順序の記載形式は、図１０では説明の便宜上、人間にとって理解しやすい説明的な記載形式が用いられているが、実際にはＣＰＵが情報処理によって認識可能な記載形式が用いられている。本実施形態では、このような負荷率変動順序リスト６３０に示されている具体的な変動順序６３２から、図２に示す操作端末５００による操作で、試験に用いられる変動順序が１つ選択される。そして、各ＰＣＩバスでは同一の変動順序で負荷が変動する。なお、本件開示における負荷の変動パターンとしては、このような同一の変動順序の変動パターン以外にも、図１０に示すような複数の変動順序をハードウェア要素毎に別々に割り当てた変動パターンも採用可能である。但し、本実施形態の以下の説明では、１つ選択された変動順序が各ＰＣＩバスにおける負荷の変動順序として共通に用いられるものとする。
【００７５】
次に、このように選択されている変動順序を前提として、各ＰＣＩバスにおける負荷率の変動タイミングの組み合わせを自動的に決定する自動決定処理の詳細について説明する。
【００７６】
本実施形態における試験のように、各ＰＣＩバスの負荷を変動させながらチップセットの動作を確認する負荷試験では、各ＰＣＩバスで別々の負荷率が生じている動作状況が試験中に生じることが望ましい。つまり、各ＰＣＩバスでは、なるべくバラバラのタイミングで負荷率が変動することが望ましい。一方で、負荷変動の制御はシンプルであることも望ましい。そこで、本実施形態の自動決定処理では、負荷の変動パターンにおける変動タイミングとして、複数の定期的な変動タイミングの組み合わせが用いられる。これらの変動タイミング相互では変動が非同期となるような組み合わせとなっている。そして、このような複数の変動タイミングが各ＰＣＩバスに割り当てられる。これにより、各ＰＣＩバスにおける負荷変動の制御がシンプルである一方でＰＣＩバスの相互ではバラバラのタイミングで負荷が変動することとなる。
【００７７】
更に、変動順序で現れるいずれかの負荷率を各ＰＣＩバスに割り当てて得られる負荷率のセットについては、ＰＣＩバスに割り当て可能な全てのセットが負荷変動によって少なくとも１回は実現されることが望ましい。そのため本実施形態では、例えば図１０に示す１番目の変更順序の場合でＰＣＩバスが４つであるとすると、１１×１１×１１×１１＝１４６４１通りのセット全てが実施されるような変動タイミングが求められる。
【００７８】
以下、フローチャートを参照して自動決定処理の具体的な手順を説明する。また、以下の説明では、図１０に示す１番目の変更順序で４つのＰＣＩバスに対して負荷を変動させるための変動タイミングを適宜に具体例として用いる。
【００７９】
図１１は、自動決定処理のフローチャートである。
【００８０】
この自動決定処理が開始されるとステップＳ３０１で、定期的な変動タイミングの組み合わせ（即ち変動間隔の組み合わせ）について初期値が設定される。本実施形態では、初期値に限らず、変動間隔の組み合わせとしては素数の組み合わせが用いられる。これにより、変動タイミングの相互では変動が非同期となる。ここでは、４つのＰＣＩバスに対するの変動タイミング（即ち変動間隔）ｔｘの初期値の一例として、ｔ１＝１，ｔ２＝３，ｔ３＝５，ｔ４＝７を想定する。
【００８１】
次に、ステップＳ３０２では、各種の変数が初期化される。即ち、経過時間を表した変数であるタイムカウンタｔｉｍｅは、ｔｉｍｅ＝１に初期化される。また、各ＰＣＩバスにおける負荷率を表した変数ｂｕｓｘについては、いずれのＰＣＩバスについても「１００」に初期化される。更に、複数のＰＣＩバスにおける負荷率のセットのうち負荷変動で出現済み（実施済み）のセットの数を表す実施数は「０」に初期化される。そして、負荷変動で出現済み（実施済み）のセットを記録する記録表はクリアされる。
【００８２】
このような初期化が終わるとステップＳ３０３〜ステップＳ３０９で、タイムカウンタをカウントアップしながら、変動で出現する（実施される）負荷率のセットが確認される。
【００８３】
ステップＳ３０３では、各ＰＣＩバスについて、タイムカウンタの値が示す経過時間が変動のタイミングに一致しているかどうかが確認される。具体的には、タイムカウンタの値を各ＰＣＩバスにおける変動間隔ｔｘで割った余りが「０」であるかどうかで判断される。例えば、ステップＳ３０１で説明した初期値の変動間隔で、かつ、タイムカウンタの値が「６３」であると、ｔ１、ｔ３、ｔ４の各ＰＣＩバスで経過時間が変動のタイミングに一致することとなる。
【００８４】
このようなステップＳ３０３での確認で、経過時間が変動のタイミングに一致するＰＣＩバスが１つもなかった場合（ステップＳ３０４；Ｎｏ）には、ステップＳ３０９でタイムカウンタの値が「１」繰り上がる。そして、ステップＳ３０３に処理が戻る。
【００８５】
一方、ステップＳ３０３での確認で、経過時間が変動のタイミングに一致するＰＣＩバスが存在した場合（ステップＳ３０４；Ｙｅｓ）には、ステップＳ３０５で、該当するＰＣＩバスにおける負荷率が変更される。負荷率の変更の順序は、上述したように操作で設定されているので、その設定された順序に従った次の負荷率ｙ％が変数ｂｕｓｘに代入される。
【００８６】
その後、ステップＳ３０６で、今回の負荷率のセットと同じセットが、実施済みのセットの記録に含まれているか否かが確認される。そして、今回の負荷率のセットが未実施のセットである場合には、ステップＳ３０７で、今回のセットが実施済みのセットの記録表に追加されるとともに実施数の値が「１」繰り上がる。ここで記録表の例について説明する。
【００８７】
図１２は、実施済みの負荷率のセットを記録した記録表を示す図である。
【００８８】
図１２に示すように、記録表６３５には、バス分類「１」のＰＣＩバスからバス分類「４」のＰＣＩバスまでの各ＰＣＩバスそれぞれの負荷率６３６，６３７，６３８，６３９がセットで記録されている。この記録表６３５の格段が各セットを表している。
【００８９】
このような記録表６３５に図１１のステップＳ３０７で今回のセットが追加されると、その後、ステップＳ３０８で、全てのＰＣＩバスについて「１回は負荷率が変動し、かつ負荷率が１００％」という状態になっているか否かが判定される。このステップＳ３０８の判定は、即ち、ステップＳ３０３〜ステップＳ３０９で負荷率のセットの出現を確認している負荷変動のパターンが完全に１周して初期に戻ったか否かを判定している。
【００９０】
ステップＳ３０８の判定で、何れかのＰＣＩバスについて「未だ１回も負荷率が変動していない」か、あるいは、「負荷率が１００％未満」と判定された場合にはステップＳ３０９に進む。ステップＳ３０９ではタイムカウンタの値が「１」繰り上がる。そして、ステップＳ３０３に処理が戻る。
【００９１】
一方、ステップＳ３０８の判定で、全てのＰＣＩバスについて「１回は負荷率が変動し、かつ負荷率が１００％」という状態になっていると判定された場合には、負荷変動のパターンが完全に１周したことになるのでステップＳ３１０に進む。ステップＳ３１０では、ＰＣＩバスに割り当て可能な全てのセットが負荷変動によって出現した（実施された）か否かが判定される。この判定は、実施数が全セット数に達しているか否かによって簡単に判定可能である。そして、ステップＳ３１０で、全てのセットが出現したと判定された場合には、現在設定されている変動間隔の組み合わせが、各ＰＣＩバスに割り当てられる変動間隔として決定されて自動決定処理は終了する。一方、ステップＳ３１０で、未出現のセットが残っていると判定された場合には、現在設定されている変動間隔の組み合わせに従った負荷変動では全セットの実施はできないことを意味する。このため、未出現のセットが残っていると判定された場合には、変動間隔の組み合わせが、現在の設定とは異なる組み合わせに変更され、その後、ステップＳ３０２に処理が戻る。
【００９２】
このような自動決定処理によって変動間隔の色々な組み合わせが試される結果、負荷率の全セットが実施可能な変動間隔の組み合わせが決定されることとなる。
【００９３】
図１３は、自動決定処理で決定された変動間隔の組み合わせの例を示す図である。
【００９４】
ここでは、変動間隔の組み合わせの決定結果６４０が、上述した負荷率変動順序リスト６３０に対応付けて示されている。また、ここに示す例はＰＣＩバスが４つである場合の例である。即ち、バス分類「１」のＰＣＩバスからバス分類「４」のＰＣＩバスまでの各ＰＣＩバスに割り当てられる変動間隔６４１，６４２，６４３，６４４の組み合わせが決定結果６４０として示されている。具体的には、１０％ずつ負荷率が変動していく１番目の変動順序に対応した変動間隔６４１，…，６４４は、「１秒」、「１３秒」、「１９秒」、「２３秒」となっている。また、２０％ずつ負荷率が変動していく２番目の変動順序に対応した変動間隔６４１，…，６４４は、「１秒」、「７秒」、「１１秒」、「１３秒」となっている。更に、３番目の変動順序に対応した変動間隔６４１，…，６４４は、「１秒」、「３秒」、「５秒」、「７秒」となっている。
【００９５】
なお、図１１に示す自動決定処理は、具体的な試験対象が未定でも、ＰＣＩバスの数と負荷の変更順序が与えられれば実行可能である。このため、図１２に示すような決定結果を、種々のＰＣＩバス数と種々の変更順序との各組合わせについて予め用意しておくことが出来る。この場合には、上述した認識処理で認識されたＰＣＩバスの数と、上述した操作で選択された変更順序との組合わせに対応した決定結果の変動間隔が各ＰＣＩバスに割り当てられることとなる。
【００９６】
以上で自動決定処理の説明を終了し、以下、図４のステップＳ１０３に示す負荷率測定処理について説明する。
【００９７】
本実施形態における負荷率測定処理では、上述した認識処理で認識された全てのＩＯ装置に対するアクセスとＣＰＵからメモリへのアクセスとが同時に実行されている状態で、メモリおよびＩＯ装置毎に最大の転送量が測定される。より正確に言えば、最大の転送量が実現していると考えられるアクセス動作状態で、アクセス回数とこの回数のアクセスに要した時間とが測定される。更に、この負荷率測定処理では、上述した負荷の変更順序で必要とされる各負荷率に相当するアクセス動作状態も、算出あるいは測定によって求められる。以下、メモリアクセスと各ＩＯ装置に対するアクセスについて、順に、負荷率測定処理の詳細を説明する。
【００９８】
メモリアクセスでは、ＣＰＵからメモリに対する４バイトのライト処理あるいリード処理（以下、これらを総称してライト／リード処理と称する）がｘ回連続で実行されて、このＸ回のライト／リード処理に要した時間が測定される。時間の測定は、１回目の処理開始直前の時刻とｘ回終了の時刻をＣＰＵのクロックカウント数で確認することによって実行される。このような測定によって、ＰＣＩバスの最大転送量におけるｘ回のメモリアクセスに要する時間ｔが測定されることになる。
【００９９】
なお、ＣＰＵ中にキャッシュが存在するので、このキャッシュ止まりのアクセスではなくて確実にメモリに対するアクセスが生じるように、本実施形態では以下のような処置がとられている。即ち、ｘ回のライト／リード処理によってアクセスされる試験領域がキャッシュの２倍以上の領域となるようにｘ回の具体的回数が決められている。そして、この試験領域の先頭から順に、キャッシュのラインバウンダリ間隔と同じ間隔毎の各アドレスに対してライト／リード処理が実行される。
【０１００】
また、メモリアクセスによる負荷変動は、ｙ回のライト／リード処理とディレイ処理とが交互に実行されることで実現される。
【０１０１】
図１４は、負荷率１００％での動作状態を示す図である。
【０１０２】
負荷率１００％の場合には、メモリ３７０に対するｙ回のライト／リード処理がディレイなしに繰り返し実行される。
【０１０３】
図１５は、負荷率が１００％未満の場合の動作状態を示す図である。
【０１０４】
負荷率が１００％未満の場合には、メモリ３７０に対するｙ回のライト／リード処理が実行される度に一定時間のディレイが実行される。このディレイの長さＴは、上記で測定されたｘ回のメモリアクセスに要する時間ｔと負荷率ｚ％に基づいて下記の式で算出される。
【０１０５】
Ｔ＝｛ｔ／（ｘ＊ｚ／１００）ー（ｔ／ｘ）｝＊ｙ
このように、ＣＰＵに接続されたＰＣＩバスについては、実際のメモリアクセスによる実際の負荷（即ちアクセスに要した時間ｔ）が、上述したようなｘ回の予備的なメモリアクセスの実行によって確認される。そして、その確認された負荷に基づいて、ＣＰＵに接続されたＰＣＩバスに対する負荷変動における具体的な負荷動作（即ちｙ回の動作に対するディレイの長さＴ）が決定される。このように負荷動作が決定されることにより、試験対象装置における具体的なハードウェアにおける負荷変動を精度良く実現することができる。
【０１０６】
次に、ＤＡおよびＣＡに対するアクセスにおける負荷率測定処理の詳細を説明する。
【０１０７】
ＤＡおよびＣＡに対するアクセスは、ライトコマンドあるいリードコマンド（以下、これらを総称してライト／リードコマンドと称する）が並べられたコマンドチェーンによって実行される。そして、ＰＣＩバスにおける最大転送量は、ディレイの無いコマンドチェーンが用いられて測定される。
【０１０８】
図１６は、ディレイの無いコマンドチェーンを示す図である。
【０１０９】
コマンドチェーン６６０中には１番目から最終までの所定数のコマンド６６１が並べられている。最大転送量の測定では、このコマンドチェーン６６０が約１秒間の測定時間に亘って繰り返しＣＰＵで作成される。そして、実際に実行できたコマンド６６１の回数ｘが求められる。
【０１１０】
また、ＤＡおよびＣＡに対するアクセスでの負荷変動は、ディレイコマンドを含んだコマンドチェーンが実行されることで実現される。
【０１１１】
図１７は、ディレイコマンドを含んだコマンドチェーンを示す図である。
【０１１２】
このコマンドチェーン６６５には、図１６に示すコマンドチェーン６６０が有するコマンド６６１と同数のコマンド６６１が含まれている。また、コマンド６６１のｎ個毎にディレイ６６２が加えられている。負荷率測定処理では、このようなディレイコマンドを含んだコマンドチェーン６６５によって実際に実現する負荷率が測定される。
【０１１３】
負荷率の測定に先立って、最大転送量でのコマンド６６１の実行回数ｘに基づいて、各負荷率に対する期待範囲が以下のように設定される。
【０１１４】
負荷率９０％に対する期待範囲は、ｘ＊０．９０以上ｘ＊０．９９以下である。
【０１１５】
負荷率８０％に対する期待範囲は、ｘ＊０．８０以上ｘ＊０．８９以下である。
【０１１６】
負荷率７０％に対する期待範囲は、ｘ＊０．７０以上ｘ＊０．７９以下である。
【０１１７】
負荷率６０％に対する期待範囲は、ｘ＊０．６０以上ｘ＊０．６９以下である。
【０１１８】
負荷率５０％に対する期待範囲は、ｘ＊０．５０以上ｘ＊０．５９以下である。
【０１１９】
負荷率４０％に対する期待範囲は、ｘ＊０．４０以上ｘ＊０．４９以下である。
【０１２０】
負荷率３０％に対する期待範囲は、ｘ＊０．３０以上ｘ＊０．３９以下である。
【０１２１】
負荷率２０％に対する期待範囲は、ｘ＊０．２０以上ｘ＊０．２９以下である。
【０１２２】
負荷率１０％に対する期待範囲は、ｘ＊０．１０以上ｘ＊０．１９以下である。
【０１２３】
次に、コマンドチェーン６６５として、コマンド６６１の１個毎に１クロック分のディレイ６６２が入るコマンドチェーン６６５が用意される。そして、最大転送量の測定と同様の測定時間に亘って繰り返しコマンドチェーン６６５がＣＰＵで作成される。また、この測定時間で実際に実行されたコマンド６６１の回数が求められる。このコマンドチェーン６６５について求められた実行回数がいずれかの負荷率の期待範囲に含まれている場合には、このコマンドチェーン６６５がこの負荷率の実行用として登録される。
【０１２４】
このような測定は、ディレイ時間が１クロック分ずつ増やされながら繰り返される。そしてコマンド６６１の実行回数がｘ＊０．１０未満になったら、ディレイ時間が１クロックに戻されるとともにディレイの間隔（すなわちディレイ間のコマンド６６１数ｎ）が１つ増やされる。このようにディレイ時間およびディレイの間隔が変更されながら、全ての期待範囲について負荷率の実行用のコマンドチェーン６６５が得られるまで測定が繰り返される。
【０１２５】
ＤＡおよびＣＡに対するアクセスにおける負荷率測定処理では、以上説明した手順によって、各負荷率を実現するためのコマンドチェーンが求められる。
【０１２６】
次に、ＤＭＡコントローラおよびＬＡＮコントローラに対するアクセスにおける負荷率測定処理について説明する。
【０１２７】
この負荷率測定処理では、ＣＰＵからＤＭＡコントローラおよびＬＡＮコントローラに対して、送信コマンドあるいは受信コマンドが約１秒間の測定時間ｔに亘って連続で発行される。このようなコマンド発行により、ＰＣＩバスの最大転送量が実現する。そして、この測定時間ｔ中に実際に実行されたコマンドの回数ｘが求められる。
【０１２８】
このように求められた回数ｘと測定時間ｔに基づいて、コマンド１回あたりの実行時間ｔ’（ｍｓ）が、ｔ’＝ｔ／ｘで求められる。更に、各負荷率ｚ％におけるコマンド１回毎のディレイ時間Ｔが、Ｔ＝｛（１００−ｚ）＊ｔ’｝／ｚで求められる。
【０１２９】
図１８は、負荷率ｚ％を実現するコマンド実行パターンを示す図である。
【０１３０】
コマンド実行パターン６８０中では、コマンド実行６８１とディレイ実行６８２とが交互に繰り返されている。例えば、最大転送量での１秒間の測定時間における実行回数が１００回であった場合には、コマンド実行６８１の１回あたりの実行時間は１０ｍｓとなる。そして、例えば負荷率２０％におけるディレイ実行６８２の時間は、｛（１００−２０）＊１０｝／２０＝４０ｍｓとなる。
【０１３１】
但し、ディレイ時間がシステムの１クロック（例えば１６．７ｍｓ）よりも短い場合には、コマンド実行６８１の１回毎にディレイ実行６８２が入るコマンド実行パターン６８０ではディレイの精度が悪いので、以下説明するコマンド実行パターンが用いられる。
【０１３２】
図１９は、負荷率ｚ％を実現する別のコマンド実行パターンを示す図である。
【０１３３】
このコマンド実行パターン６８５では、複数回のコマンド実行６８１に対して１回のディレイ実行６８２が入る。例えば、１秒間における最大転送量での実行回数が１００回であり、かつ、負荷率６０％である場合には、コマンド実行６８１の１回に対するディレイ実行６８２の時間は、｛（１００−６０）＊１０｝／６０＝６．６６ｍｓとなる。この場合は、１回のディレイ実行６８２におけるディレイ時間が１クロック以上となるように、３回のコマンド実行６８１に対して１回のディレイ実行６８２が入るのがよい。
【０１３４】
以上説明したように、負荷率測定処理では、最大転送量での負荷が求められるとともに、各負荷率を実現するための動作状態も求められる。
【０１３５】
以上で負荷率測定処理の説明を終了し、以下、図４のステップＳ１０４に示す試験処理について説明する。
【０１３６】
この試験処理では、上述した変動順序での各ＰＣＩバスの負荷変動を管理するために負荷率変動タイミングテーブルが用いられる。
【０１３７】
図２０は、負荷率変動タイミングテーブルを表す図である。
【０１３８】
負荷率変動タイミングテーブル６５０には、バス分類の番号６５１と、各ＰＣＩバスにおける変動間隔６５２と、変動順序を表した番号６５３と、現在の負荷状態（負荷率）６５４とが対応づけられて格納されている。変動順序を表した番号６５３は、上述したようにユーザの操作で設定されたものである。また、各ＰＣＩバスにおける変動間隔６５２は、上述した自動決定処理で決定されたものである。そして、現在の負荷状態（負荷率）６５４は試験処理の進行に伴って書き換えられていく。
【０１３９】
図２１は、試験処理におけるタスク構造を示す図である。
【０１４０】
試験処理７００は、試験制御部（タスク）７１０と試験部（タスク）７２０とを有している。試験制御部（タスク）７１０は、図２０に示す負荷率変動タイミングテーブル６５０を用いて試験全体の処理を制御するものである。また、試験制御部（タスク）７１０は、エラー発生の監視も行う。一方、試験部（タスク）７２０は、各ＰＣＩバスにおける負荷状態を作るものである。この試験部（タスク）７２０は、ＣＰＵ試験部（タスク）７２１とＤＡ試験部（タスク）７２２とＣＡ試験部（タスク）７２３とＤＭＡ試験部（タスク）７２４とＬＡＮ試験部（タスク）７２５とを有している。
【０１４１】
ＣＰＵ試験部（タスク）７２１は、ＣＰＵの負荷動作、即ちメモリアクセスを実行するものである。
【０１４２】
ＤＡ試験部（タスク）７２２とＣＡ試験部（タスク）７２３とＤＭＡ試験部（タスク）７２４とＬＡＮ試験部（タスク）７２５は、それぞれ、ＤＡ、ＣＡ、ＤＭＡコントローラ、ＬＡＮコントローラに対するアクセスを実行するものである。
【０１４３】
このようなタスク構造における試験処理の実行は以下のようになる。
【０１４４】
図２２は、図２１に示すタスク構造における試験処理の実行手順を示す図である。
【０１４５】
試験制御部（タスク）７１０は、まず、全試験部７２１，…，７２５に対して、テスト開始の指示を出す。この指示を受けて各試験部７２１，…，７２５では同時にテストが開始され、各ＰＣＩバスに対して同時に負荷が与えられる。各試験部７２１，…，７２５は、図９に示す装置構成テーブル６２０を参照することにより、アクセスを実行する対象を確認する。
【０１４６】
その後、試験制御部（タスク）７１０は、図２０に示す負荷率変動タイミングテーブル６５０を参照しながら、試験時間の経過に従って、変動間隔６５２に達したバス分類に属する試験部７２１，…，７２５に対して負荷変動を指示する。即ち、負荷率変動タイミングテーブル６５０の現在の負荷状態６５４に示されている負荷率に対し、変動順序番号６５３が表す変動順序に従って次の負荷率を該当試験部に指示する。そして、現在の負荷状態６５４に示されている負荷率を、指示した負荷率に書き換える。負荷率を指示された試験部７２１，…，７２５は、上述した負荷率測定処理で求められた各負荷率の動作状態でアクセスを実行する。各試験部７２１，…，７２５により各負荷率の動作状態でアクセスが実行されている間、試験制御部（タスク）７１０はエラー発生を監視している。そして、エラー発生が認められた場合には、エラーリストにエラーを記録する。
【０１４７】
図２３は、エラーリストを示す図である。
【０１４８】
エラーリスト６９０には、発生したエラーの種類を表すエラー番号６９１と、エラーの発生時間６９２と、エラーが発生したときの各バス分類における負荷率６９３，…，６９６が対応づけられて記録される。
【０１４９】
このようなエラーリスト６９０に、必要に応じてエラーの内容が記録されながら、図２２に示すように、試験制御部（タスク）７１０の指示に従って各試験部７２１，…，７２５で各負荷率の動作状態が実行される。
【０１５０】
各ＰＣＩバスにおける負荷率の全ての組み合わせが出現するために十分な試験時間が経過した後で試験制御部（タスク）７１０は、各試験部７２１，…，７２５に対して試験終了を指示する。
【０１５１】
このような手順で試験処理が実行される。その後、図４のステップＳ１０５に示すチェック処理では、図２３に示すエラーリスト６９０が参照されて、エラー発生の有無や内容がチェックされる。
【０１５２】
以上説明したように、本実施形態によれば、試験対象の装置がどのようなハードウェア構成であっても、ハードウェア構成に応じた負荷変動試験を実施することができる。
【０１５３】
なお、本実施形態では、試験対象の装置内で試験プログラムが実行されるが、本件開示の試験プログラムは、試験対象の装置とは別の情報処理装置上で実行されて試験対象の装置の負荷変動試験を実施するものであってもよい。
【０１５４】
以下、上述した形態を含む種々の形態に関し、更に以下の付記を開示する。
【０１５５】
（付記１）
情報処理装置で実行されることにより試験対象装置を試験的に動作させる試験プログラムにおいて、
前記試験対象装置のハードウェア構成を確認する構成確認処理と、
前記確認処理で確認されたハードウェア構成に基づいて、該ハードウェア構成に含まれている各ハードウェア要素に対する負荷の変動パターンを決定する決定処理と、
前記確認処理で確認されたハードウェア構成に含まれている各ハードウェア要素を、前記決定処理で決定された変動パターンで動作させる動作処理と、
前記動作処理での前記各ハードウェア要素の動作が正常であるか否かを確認する動作確認処理とを前記情報処理装置に実行させることを特徴とする試験プログラム。
【０１５６】
（付記２）
前記決定処理が、前記ハードウェア要素に対して予備的な動作を実行させることにより、該ハードウェア要素における実際の動作で生じる実際の負荷を確認し、各ハードウェア要素に対する負荷の変動パターンにおける具体的な負荷動作を、その確認した負荷に基づいて決定する処理であることを特徴とする付記１記載の試験プログラム。
【０１５７】
（付記３）
前記決定処理が、負荷の変動パターンにおける変動タイミングとして、複数の定期的な変動タイミングの組み合わせであって該変動タイミング相互では変動が非同期となるような組み合わせを用い、該組み合わせに含まれる各変動タイミングを各ハードウェア要素に割り当てる処理であることを特徴とする付記１または２記載の試験プログラム。
【０１５８】
（付記４）
情報処理装置で実行されることにより試験対象装置を試験的に動作させる試験方法において、
前記試験対象装置のハードウェア構成を確認する構成確認処理と、
前記構成確認処理で確認されたハードウェア構成に基づいて、該ハードウェア構成に含まれている各ハードウェア要素に対する負荷の変動パターンを決定する決定処理と、
前記構成確認処理で確認されたハードウェア構成に含まれている各ハードウェア要素を、前記決定処理で決定された変動パターンで動作させる動作処理と、
前記動作処理での前記各ハードウェア要素の動作が正常であるか否かを確認する動作確認処理とを有することを特徴とする試験方法。
【０１５９】
（付記５）
前記決定処理が、前記ハードウェア要素に対して予備的な動作を実行させることにより、該ハードウェア要素における実際の動作で生じる実際の負荷を確認し、各ハードウェア要素に対する負荷の変動パターンにおける具体的な負荷動作を、その確認した負荷に基づいて決定する処理であることを特徴とする付記４記載の試験方法。
【０１６０】
（付記６）
前記決定処理が、負荷の変動パターンにおける変動タイミングとして、複数の定期的な変動タイミングの組み合わせであって該変動タイミング相互では変動が非同期となるような組み合わせを用い、該組み合わせに含まれる各変動タイミングを各ハードウェア要素に割り当てる処理であることを特徴とする付記４または５記載の試験方法。
【符号の説明】
【０１６１】
１００    試験プログラム
３００    ストレージ装置
３１０    ディスク装置
３２０    コントローラモジュール（ＣＭ）
３３０    チャネルアダプタ（ＣＡ）
３４０    デバイスアダプタ（ＤＡ）
３５０    ダイレクトメモリアクセス（ＤＭＡ）コントローラ
３６０    ＣＰＵ
３７０    メモリ
３８０    チップセット
３９０    バスブリッジ
３９１    ＰＣＩバス
３９６    ＬＡＮコントローラ
６１０    サポートＩ／Ｏテーブル
６２０    装置構成テーブル
６５０    負荷率変動タイミングテーブル
６９０    エラーリスト
【図１】
0005673197.tif 000002
【図２】
0005673197.tif 000003
【図３】
0005673197.tif 000004
【図４】
0005673197.tif 000005
【図５】
0005673197.tif 000006
【図６】
0005673197.tif 000007
【図７】
0005673197.tif 000008
【図８】
0005673197.tif 000009
【図９】
0005673197.tif 000010
【図１０】
0005673197.tif 000011
【図１１】
0005673197.tif 000012
【図１２】
0005673197.tif 000013
【図１３】
0005673197.tif 000014
【図１４】
0005673197.tif 000015
【図１５】
0005673197.tif 000016
【図１６】
0005673197.tif 000017
【図１７】
0005673197.tif 000018
【図１８】
0005673197.tif 000019
【図１９】
0005673197.tif 000020
【図２０】
0005673197.tif 000021
【図２１】
0005673197.tif 000022
【図２２】
0005673197.tif 000023
【図２３】
0005673197.tif 000024