(57)【要約】      （修正有）【課題】比較的少ないハードウェア資源により、高効率で高負荷を試験対象システムに与える。【解決手段】試験対象システムのバスに負荷を与える負荷発生装置において、動作モード設定レジスタと、データ転送サイズが設定されるデータサイズレジスタと、最初のアクセス対象アドレスであるベースアドレスとストライド毎のアドレス間隔とストライド回数とが設定されるレジスタ群と、動作モードに応じて、データサイズレジスタに設定されているデータサイズ及びレジスタ群に設定されている情報に基づいて試験対象システム内のメモリ空間にアクセスするアクセス手段とを備え、アクセス手段は、アクセス対象アドレスを自動的にアドレス間隔でメモリ空間に変更する変更機構と、アクセス対象のメモリ空間に対してアドレス間隔とデータサイズに応じたデータパターンを生成する生成機構とを含み、アドレス毎にデータを変更するように構成する。【選択図】図４
2008059338.tif 000002
【特許請求の範囲】
【請求項１】
試験対象システムのバスに負荷を与える負荷発生装置であって、
動作モードが設定されるモード設定レジスタと、
１回のデータ転送におけるデータサイズが設定されるデータサイズレジスタと、
最初のアクセス対象アドレスであるベースアドレスと、ストライド機能において１回ストライドを実行する毎のアドレス間隔と、ストライド回数とが設定されるレジスタ群と、
該モード設定レジスタに設定されている動作モードに応じて、該データサイズレジスタに設定されているデータサイズ及び該レジスタ群に設定されている情報に基づいて該試験対象システム内のメモリ空間にアクセスするアクセス手段とを備え、
該アクセス手段は、アクセス対象アドレスを自動的に該アドレス間隔で該メモリ空間に変更する変更機構と、アクセス対象の該メモリ空間に対して該アドレス間隔と該データサイズに応じたデータパターンを生成する生成機構とを含み、アドレス毎にデータを変更することを特徴とする、負荷発生装置。
【請求項２】
該動作モードは、該負荷発生装置から該バスに対してライト動作のみを行うライトオンリーモード、該負荷発生装置から該バスに対してリード動作のみを行うリードオンリーモード、該負荷発生装置が該バスに対してライト動作とリード動作を順番に行いリード動作時にライトしたデータとリードしたデータの一致検証を行うライトウィズコンペアモード及びあるアドレス空間のデータをリードし異なるアドレス空間に対してデータをライトするメモリコピー機能を実現するムーバモードを含むことを特徴とする、請求項１記載の負荷発生装置。
【請求項３】
該変更機構は、該アドレス間隔が該データサイズより大きいと該メモリ空間を飛び飛びでアクセスする動作を行い、該アドレス間隔が該データサイズと等しいと該メモリ空間を連続してアクセスする動作を行い、該アドレス間隔が該データサイズより小さいと少しずつアドレスをずらしながら該メモリ空間をアクセスする動作を行うことで、異なるアクセスパターンを生成することを特徴とする、請求項１又は２記載の負荷発生装置。
【請求項４】
該レジスタ群は該ムーバモードにおいてコピーするデータ量をも設定されることを特徴とする、請求項２記載の負荷発生装置。
【請求項５】
該レジスタ群は該ストライド機能のオン／オフをも設定され、該生成機構によるデータパターンの生成は該ストライド機能のオン／オフに応じて抑止されることを特徴とする、請求項１〜４のいずれか１項記載の負荷発生装置。
【請求項６】
該モード設定レジスタ、該データサイズレジスタ及び該レジスタ群の情報は、該試験対象システムの試験に先立って該試験対象システム側から設定されることを特徴とする、請求項１〜５のいずれか１項記載の負荷発生装置。
【請求項７】
該負荷発生装置の動作の開始と終了は、該試験対象システムのソフトウェアによって制御され、該負荷発生装置の動作は一度開始すると該ソフトウェアが終了の制御を行うまで該ソフトウェアとは独立して継続されることを特徴とする、請求項１〜６のいずれか１項記載の負荷発生装置。
【請求項８】
試験対象システムのバスに負荷を与える負荷試験方法であって、
該試験対象システムの試験に先立って、該試験対象システム側から負荷発生装置内のレジスタに動作モード、１回のデータ転送におけるデータサイズ、最初のアクセス対象アドレスであるベースアドレス、ストライド機能において１回ストライドを実行する毎のアドレス間隔及びストライド回数とを設定する設定ステップと、
該負荷発生装置から、該設定されている動作モードに応じて、該設定されているデータサイズ、ベースアドレス、アドレス間隔及びストライド回数に基づいて該試験対象システム内のメモリ空間にアクセスするアクセスステップとを含み、
該アクセスステップは、アクセス対象アドレスを自動的に該アドレス間隔で該メモリ空間に変更する変更ステップと、アクセス対象の該メモリ空間に対して該アドレス間隔と該データサイズに応じたデータパターンを生成する生成ステップとを有し、アドレス毎にデータを変更することを特徴とする、負荷試験方法。
【請求項９】
該動作モードは、該負荷発生装置から該バスに対してライト動作のみを行うライトオンリーモード、該負荷発生装置から該バスに対してリード動作のみを行うリードオンリーモード、該負荷発生装置が該バスに対してライト動作とリード動作を順番に行いリード動作時にライトしたデータとリードしたデータの一致検証を行うライトウィズコンペアモード及びあるアドレス空間のデータをリードし異なるアドレス空間に対してデータをライトするメモリコピー機能を実現するムーバモードを含むことを特徴とする、請求項８記載の負荷試験方法。
【請求項１０】
該変更ステップは、該アドレス間隔が該データサイズより大きいと該メモリ空間を飛び飛びでアクセスする動作を行い、該アドレス間隔が該データサイズと等しいと該メモリ空間を連続してアクセスする動作を行い、該アドレス間隔が該データサイズより小さいと少しずつアドレスをずらしながら該メモリ空間をアクセスする動作を行うことで、異なるアクセスパターンを生成することを特徴とする、請求項８又は９記載の負荷試験方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は負荷発生装置及び負荷試験方法に係り、特にアドレス制御及びデータ生成機能を有し、試験対象システムのバスに負荷を与える負荷発生装置及びそのような負荷発生装置を用いる負荷試験方法に関する。
【背景技術】
【０００２】
図１は、パーソナルコンピュータやサーバといった試験対象システムに高負荷を与える従来の負荷発生環境を説明する図である。図１において、試験対象システム５００は、ＣＰＵ５０１、システムコントローラ５０２、入出力（Ｉ／Ｏ）コントローラ５０３及びメモリ５０４を有する。
【０００３】
図１（ａ）に示す負荷発生環境Ａの場合、データパターンやデータの送信先アドレスを複数に持つために、大量のハードディスク５１１及び複数のディスクコントローラ５１２が必要である。他方、図１（ｂ）に示す負荷発生環境Ｂの場合、データパターンの生成を含むテストパターンの生成をパーソナルコンピュータ（ＰＣ）５２１等の複数の外部装置に委ね、負荷発生環境Ｂにおける各負荷発生装置５２２は外部から与えられたテストパターンのみを実行する試験対象システム５００へのインターフェースとしての役割しか持たない。又、負荷発生環境Ｂでは、試験対象システム５００とテストパターンを生成するＰＣ５２１とは分離されているため、長時間試験の場合には負荷効率を上げるために試験対象システム５００とＰＣ５２１の同期を取ったり負荷発生タイミングを制御したりといった、複雑な制御が必要となる。
【０００４】
図２は、負荷発生環境Ａ，Ｂにおける負荷の発生を説明する図である。図２に示すように、例えば主記憶となるメモリ５０４の各アドレス空間５３１〜５３４に対しては、ディスクコントローラ５１２毎又は負荷発生装置５２２毎に負荷対象アドレス（即ち、アクセス対象アドレス）が決まっている。負荷発生環境Ａにおいて、１つのディスクコントローラで複数のディスクコントローラ５１２と同様の動作をさせることも可能であるが、それにはソフトウェアによる複雑な制御を伴い、ソフトウェアの介在により試験対象システム５００に与える負荷は高負荷にはならない。負荷発生環境Ｂにおいては、テストパターンをアドレス空間５３１→アドレス空間５３２→アドレス空間５３３→アドレス空間５３４と変化させれば良いが、テストパターンはＰＣ５２１によって生成されるものであり、負荷発生装置５２２にはこのようなテストパターンを生成する機能が備わっていない。
【０００５】
試験対象システム５００に負荷を与える効率を高めるために良く行われる手法として、ＣＰＵ５０１のＷＡＹ毎に負荷を与える試験を行う負荷試験方法が従来より知られている。図２で示すアドレス空間５３１〜５３４は、ＣＰＵ５０１の各ＷＡＹが持っているキャッシュ領域であるとすると、従来の手法ではＷＡＹ分のディスクコントローラ５１２又は負荷発生装置５２２が必要であり、試験対象システム５００の構成に応じてキャッシュのＷＡＹ数が異なれば、ディスクコントローラ５１２又は負荷発生装置５２２の構成も異なる。
【０００６】
このように、従来の負荷試験方法は、ハードディスク５１１やＰＣ５２１の拡張メモリ（図示せず）といった拡張記憶装置を用いて負荷データパターンを準備するため、大規模なハードウェア資源が必要である。又、負荷発生環境Ａ，Ｂのいずれの場合も、ソフトウェアによる複雑な制御が必要であったり、大量のテストパターンが必要であったりする。従って、試験対象システムの負荷試験を行う試験（又は、検証）システムの構築は安易ではなく、デバッグを容易に行うことも難しい。
【特許文献１】特開平８−３１３６０２号公報
【特許文献２】特開平１０−３１２３１１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
従来の負荷試験方法では、ソフトウェアウェア制御の複雑化に伴い、試験対象システムに効率良く高負荷を与えることが困難であり、又、大規模なハードウェア資源を必要とするという問題があった。
【０００８】
そこで、本発明は、複雑なソフトウェア制御を必要とすることなく、比較的少ないハードウェア資源により、高効率で、且つ、高負荷を試験対象システムに与えることのできる負荷発生装置及び負荷試験方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記の課題は、試験対象システムのバスに負荷を与える負荷発生装置であって、動作モードが設定されるモード設定レジスタと、１回のデータ転送におけるデータサイズが設定されるデータサイズレジスタと、最初のアクセス対象アドレスであるベースアドレスと、ストライド機能において１回ストライドを実行する毎のアドレス間隔と、ストライド回数とが設定されるレジスタ群と、該モード設定レジスタに設定されている動作モードに応じて、該データサイズレジスタに設定されているデータサイズ及び該レジスタ群に設定されている情報に基づいて該試験対象システム内のメモリ空間にアクセスするアクセス手段とを備え、該アクセス手段は、アクセス対象アドレスを自動的に該アドレス間隔で該メモリ空間に変更する変更機構と、アクセス対象の該メモリ空間に対して該アドレス間隔と該データサイズに応じたデータパターンを生成する生成機構とを含み、アドレス毎にデータを変更することを特徴とする負荷発生装置により達成できる。
【００１０】
上記の課題は、試験対象システムのバスに負荷を与える負荷試験方法であって、該試験対象システムの試験に先立って、該試験対象システム側から負荷発生装置内のレジスタに動作モード、１回のデータ転送におけるデータサイズ、最初のアクセス対象アドレスであるベースアドレス、ストライド機能において１回ストライドを実行する毎のアドレス間隔及びストライド回数とを設定する設定ステップと、該負荷発生装置から、該設定されている動作モードに応じて、該設定されているデータサイズ、ベースアドレス、アドレス間隔及びストライド回数に基づいて該試験対象システム内のメモリ空間にアクセスするアクセスステップとを含み、該アクセスステップは、アクセス対象アドレスを自動的に該アドレス間隔で該メモリ空間に変更する変更ステップと、アクセス対象の該メモリ空間に対して該アドレス間隔と該データサイズに応じたデータパターンを生成する生成ステップとを有し、アドレス毎にデータを変更することを特徴とする負荷試験方法によって達成できる。
【発明の効果】
【００１１】
本発明によれば、複雑なソフトウェア制御を必要とすることなく、比較的少ないハードウェア資源により、高効率で、且つ、高負荷を試験対象システムに与えることのできる負荷発生装置及び負荷試験方法を実現することができる。
【発明を実施するための最良の形態】
【００１２】
本発明では、試験対象システムのバスに負荷を与える負荷発生装置において、次のような第１〜第１９の機構のうち、少なくとも第１の機構を備える。
【００１３】
第１の機構は、負荷対象アドレス（即ち、アクセス対象アドレス）を自動で任意のアドレス間隔でメモリ空間に変更する。
【００１４】
第２の機構は、負荷対象のメモリ空間に対して任意のデータパターンを生成する。
【００１５】
第３の機構は、上記第１及び第２の機構の組み合わせによりアドレス毎にデータを変更する。
【００１６】
第４の機構は、上記第１の機構とデータサイズを任意に変更できる機構を組み合わせることで大きなメモリ空間を連続してアクセスする。
【００１７】
第５の機構は、上記第１の機構とデータサイズを任意に変更できる機構を組み合わせることでアドレスを少しずつずらしながらメモリ空間をアクセスする。
【００１８】
第６の機構は、負荷パターンとして同一負荷対象アドレス（即ち、アクセス対象アドレス）に対してライトを行う場合、連続して同じデータを書かない。
【００１９】
第７の機構は、負荷パターンとして途中でソフトウェア制御をしなくても負荷対象アドレス（即ち、アクセス対象アドレス）に対してライト、リードの順番に負荷テストを実行し、負荷発生装置内部でリードデータとライトデータをコンペアチェックする。
【００２０】
第８の機構は、負荷パターンとして途中でソフトウェア制御をしなくても負荷発生装置単体でメモリコピーを実行する。
【００２１】
第９の機構は、上記第６及び第７の機構の組み合わせである。
【００２２】
第１０の機構は、上記第３及び第７の機構の組み合わせである。
【００２３】
第１１の機構は、上記第９及び第１０の機構の組み合わせである。
【００２４】
第１２の機構は、上記第１及び第８の機構の組み合わせである。
【００２５】
第１３の機構は、上記第４及び第８の組み合わせである。
【００２６】
第１４の機構は、上記第５及び第８の組み合わせである。
【００２７】
第１５の機構は、上記第１２〜第１４の機構のいずれかにおいて、上記第２、第３及び第６の機構のデータ変換機能を無効にする。
【００２８】
第１６の機構は、上記第１〜第１５の機構の全てを含む機構を複数搭載し、個別にパラメータを設定可能とすることでランダムなテストパターンを実現する。
【００２９】
第１７の機構は、上記第１３の機構の各ユニットがＩ／Ｏバスへのリクエストの間隔を個別に調整可能とすることで、ランダムなテストパターンを実現する。
【００３０】
第１８の機構は、負荷テストの対象アドレス空間を有する。
【００３１】
第１９の機構は、上記第１〜第１５の機構を実現することで、バスの最大転送量のデータ領域しか必要としない。
【００３２】
以下に、本発明の負荷発生装置及び負荷試験方法の各実施例を、図３以降と共に説明する。
【実施例１】
【００３３】
図３は、本発明の負荷発生装置の第１実施例を、負荷試験の対象となる試験対象システムと共に示すブロック図である。負荷発生装置の第１実施例は、本発明の負荷試験方法の第１実施例を用いる。図１において、試験対象システム１００は、少なくともＣＰＵ１、システムコントローラ２及びメモリ３を有する。試験対象システム１００は、Ｉ／Ｏコントローラ４を含んでも良い。ＣＰＵ１とシステムコントローラ２は、バス１０１により接続されている。システムコントローラ２とメモリ３は、バス１０２により接続されている。システムコントローラ２とＩ／Ｏコントローラ４は、バス１０３により接続されている。Ｉ／Ｏコントローラ４は、Ｉ／Ｏバス１０４を介して負荷発生装置５に接続され、Ｉ／Ｏバス１０５を介してＩ／Ｏデバイス６〜８に接続されている。
【００３４】
システムコントローラ２は、ＣＰＵ１やＩ／Ｏデバイス６〜８からのアクセス、又は、メモリ３へのアクセスを制御する。メモリ３は、試験対象システム１００の主記憶を構成する。Ｉ／Ｏコントローラ４は、Ｉ／Ｏデバイス６〜８のアクセスを制御する。Ｉ／Ｏデバイス６〜８は、Ｉ／Ｏコントローラ４により制御される、本実施例を構成する負荷発生装置５以外のデバイスである。Ｉ／Ｏデバイス６〜８と負荷発生装置５は、試験対象システム１００に同時に接続可能である。
【００３５】
負荷は、負荷発生装置５によりＤＭＡ用のパターンを作成し、ＤＭＡを実行することで試験対象システム１００に与えることができる。この時、ＤＭＡの対象をメモリ３にすることにより、負荷発生装置５からメモリ３へのアクセスは、Ｉ／Ｏバス１０４→バス１０３→バス１０２→メモリ３へと到達し、試験対象システム１００に対して負荷を与えることができる。又、ＣＰＵ１から負荷発生装置５へのアクセスも可能であり、ＣＰＵ１→バス１０１→バス１０３→Ｉ／Ｏバス１０４→負荷発生装置５へと負荷が伝播することで、試験対象システム１００に対して負荷を与えることが可能である。更に、試験対象システム１００のハードウェアのアーキテクチャが許容する場合には、負荷発生装置５とＩ／Ｏデバイス６〜８間のアクセスも行え、任意の（即ち、１又は複数の）Ｉ／Ｏデバイス６〜８だけに負荷を与えることも可能である。尚、負荷発生装置５からのアクセスと負荷発生装置５へのアクセスは、同時期に行うことも可能であり、試験対象システム１００の負荷試験は、負荷発生装置５とメモリ３の間、負荷発生装置５とＣＰＵ１の間、負荷発生装置５とＩ／Ｏデバイス６〜８の間を１つのテストパターンを用いて実行すれば、試験対象システム１００全体に負荷を与えることが可能である。
【００３６】
図３に示す負荷発生装置５が接続されているＩ／Ｏバス１０４は、ＰＣＩ、ＰＣＩ−Ｘ、ＰＣＩ−expressといった汎用バスを対象としており、従来のように大規模なハードウェア資源を必要とせず、本実施例では一般的なＩ／Ｏデバイスカード（例えば、ＰＣＩバスのＬＡＮカードやグラフィックスカード等）と同じサイズで構成されている。これらの汎用バスを搭載している試験対象システム１００であれば負荷発生装置５を接続できるため、負荷発生装置５の試験対象システム１００への構成上の依存性は少ない。
【００３７】
従来の負荷試験方法によっては、大規模のハードウェア資源を必要とするため、試験対象システムの負荷試験を行える場所が限られたり、特別な装置を使用するために量産等では同時に何台もの試験対象システムの負荷試験を行えるだけの環境が構築できないといった不都合が生じるが、本実施例では、試験対象システムが設置できるだけのスペースがあれば問題なく同様の負荷試験を行うことが可能である。
【００３８】
本実施例の負荷発生装置５には、後述する４つの動作モードがあり、動作モードに応じて異なる動作が行われる。各動作モードにおける負荷発生装置５の動作を、図４と共に説明する。図４は、負荷発生装置５の構成を示すブロック図である。
【００３９】
負荷発生装置５は、図４に示す如く接続されたモード設定レジスタ９、ステータスチェンジ判定回路１１、ストライド有効レジスタ１３、トグル有効レジスタ１５、データ反転判定回路１７、データセレクト回路１９、モードセレクト回路２１、アドレスセレクト回路２３、アドレスステータス回路２５、アドレスレジスタ（ＢＡＲレジスタ）３１、アドレスレジスタ（ＭＶＳＡレジスタ）３２、アドレスレジスタ（ＭＶＤＡレジスタ）３３、レジスタ（ＭＶＳレジスタ）３４、掛け算器３５、データカウント回路３６、アドレス加算器３７，３８、レジスタ（ＳＬＲレジスタ）４０、掛け算器４１、ストライドカウント回路４２、ベースアドレスセレクタ４３、アドレス加算器４４、アドレスセレクタ４５、データサイズレジスタ４６、レジスタ（ＤＡＴＡレジスタ）４８、排他的論理和回路（ＸＯＲ）４９、データセレクタ５０、排他的論理和回路（ＸＯＲ）５１、コンペア回路５４及びバスインタフェースユニット５６を有する。バスインタフェースユニット５６は、図３に示すＩ／Ｏバス１０４に接続され、各種制御信号をステータスチェンジ判定回路１１に供給する。
【００４０】
先ず、主なレジスタについて説明するに、モード設定レジスタ９は、負荷発生装置５におけるバス動作を決定するためのオペレーションコード（以下、単にオペコードと言う）を格納するレジスタである。モード設定レジスタ９に格納されたオペコードが「００」であると、動作モードが負荷発生装置５からバスに対してライト動作のみを行うライトオンリー（ＷＯ：Write Only）モードであることを示す。この時、負荷発生装置５からはアドレス及びデータが共に出力される。モード設定レジスタ９に格納されたオペコードが「０１」であると、動作モードが負荷発生装置５からバスに対してリード動作のみを行うリードオンリー（ＲＯ：Read Only）モードであることを示す。この時、負荷発生装置５からはアドレスが出力され、データは負荷発生装置５への入力となる。モード設定レジスタ９に格納されたオペコードが「１０」であると、動作モードが負荷発生装置５がバスに対してライト動作とリード動作を順番に行いリード動作時にライトしたデータとリードしたデータの一致検証を行うライトウィズコンペア（ＷＲＣ：Write/Read with Compare）モードであることを示す。モード設定レジスタ９に格納されたオペコードが「１１」であると、動作モードがあるアドレス空間のデータをリードし異なるアドレス空間に対してデータをライトするメモリコピー機能を実現するムーバ（Ｍ：Mover）モードであることを示す。本明細書では、このようにＭモードにおいてあるアドレス空間のデータをリードし、異なるアドレス空間に対してデータをライトすることを、ムーバ（Mover）機能とも言う。
【００４１】
ストライド有効レジスタ１３は、上記第１〜第４の機構を実現し、且つ、有効にするために設けられている。
【００４２】
トグル有効（又は、オン／オフ）レジスタ１５は、上記第５の機構を実現し、且つ、有効にするために設けられている。
【００４３】
ＢＡＲレジスタ３１は、上記第７の機構を実現し、且つ、有効にするために設けられており、モード設定レジスタ９から読み出した動作モードを示すmode_op信号が「１１」でＭモード以外の動作モードを示す時に使用される。
【００４４】
ＭＶＳＡレジスタ３２は、上記第８の機構を実現し、且つ、有効にするために設けられており、モード設定レジスタ９から読み出したmode_op信号が「１１」でＭモードを示す時に必須な移動元のアドレスを格納する。
【００４５】
ＭＶＤＡレジスタ３３は、上記第８の機構を実現し、且つ、有効にするために設けられ、モード設定レジスタ９から読み出したmode_op信号が「１１」でＭモードを示す時に必須な移動先のアドレスを格納する。
【００４６】
ＭＶＳレジスタ３４は、上記第８の機構を実現し、且つ、有効にするために設けられており、ムーバ機能においてコピーするデータ量を設定するためのレジスタである。
【００４７】
ＳＡＲレジスタ３９は、上記第１〜第４の機構を実現し、且つ、有効にするために設けられており、ストライド機能においてストライド量、即ち、１回ストライドを実行する毎のアドレスの間隔サイズが設定される。
【００４８】
ＳＬＲレジスタ４０は、上記第１〜第４の機構を実現し、且つ、有効にするために設けられており、ストライド機能においてストライド回数が設定される。
【００４９】
データサイズレジスタ４６は、１回のＤＭＡにおけるデータサイズを設定するためのレジスタである。
【００５０】
ＤＡＴＡレジスタ４８は、モード設定レジスタ９から読み出したmode_op信号が「００」及び「１０」の時に(ベースとなる)ライトデータを格納するレジスタであり、mode_op信号が「１１」の時はリードデータを格納するために使用される。
【００５１】
上記レジスタ３１〜３４，３９，４０，４６，４８は、図４においてＣＰＵ１のソフトウェアによって設定できるレジスタであり、負荷試験の実行前に設定される必要があり、各動作モード及び機構（又は、機能）によって設定が必須となるレジスタは異なる。
【００５２】
モード設定レジスタ９から読み出した動作モードを示すmode_op信号は、データセレクト回路１９、モードセレクト回路２１、アドレスセレクト回路２３、アドレスステータス回路２５及びコンペア回路５４に供給される。ステータスチェンジ判定回路１１から出力されるステータスの変更の有無を示すstatus_change信号は、モードセレクト回路２１、アドレスセレクト回路２３及びアドレスステータス回路２５に供給される。ストライド有効レジスタ１３から出力されるストライドが有効であるか否かを示すstride_valid信号は、データセレクト回路１９、アドレスセレクト回路２３及びアドレスステータス回路２５に供給される。データセレクト回路１９から出力されるデータを選択するdata_sel信号は、データセレクタ５０に供給される。トグル有効レジスタ１５から出力されるトグルが有効であるか否かを示すtoggle_valid信号は、データ反転判定回路１７に供給され、データ反転判定回路１７から出力されるtoggle_sel信号は、ＸＯＲ５１に供給される。データ反転判定回路１７には、アドレスステータス回路２５から出力されるトグルの変更の有無を示すtoggle_change信号も供給される。ＸＯＲ５１からの出力データであるout_data信号は、バスインタフェースユニット５６に出力されると共にコンペア回路５４に供給される。尚、コンペア回路５４には、バスインタフェースユニット５６からの入力データであるin_data信号が入力される。
【００５３】
モードセレクト回路２１から出力されるバスコマンドであるbus_cmd信号は、バスインタフェースユニット５６に出力される。アドレスセレクト回路２３から出力されるベースアドレスを選択するbadr_sel信号はベースアドレスセレクタ４３に供給され、アドレスを選択するadr_sel信号はアドレスセレクタ４５に供給される。アドレスセレクタ４５から出力されるアドレスを示すadr信号は、バスインタフェースユニット５６に出力されると共に、ＸＯＲ４９に供給される。アドレスステータス回路２５から出力されるムーバ機能の終了を示すmv_end信号はバスインタフェースユニット５６に出力され、次のストライドを示すstride_next信号はストライドカウント回路４２に供給され、次のムーバ機能を示すmv_next信号はデータカウント回路３６に供給される。又、アドレスステータス回路２５には、ストライドカウント回路４２から出力されるストライドが終了することを示すstride_finish信号及びデータカウント回路３６から出力されるムーバ機能が終了することを示すmv_finish信号が供給される。データサイズレジスタ４６の出力は、掛け算器３５に供給されると共に、バスインタフェースユニット５６に出力される。
【００５４】
図５は、負荷発生装置５の各動作モードにおけるメモリ空間に対するアクセスの順番を説明する図である。図５（ａ）はＷＯモードにおけるアクセスの順番、図５（ｂ）はＲＯモードにおけるアクセスの順番、図５（ｃ）はＷＲＣモードにおけるアクセスの順番、図５（ｄ）はＭモードにおけるアクセスの順番を示す。図５（ａ）〜（ｄ）の各々において、Ｐ１〜Ｐ１０は行われる処理の順序を示す。
【００５５】
図５中、（ａ）〜（ｃ）の各モードでは同一のアドレスを対象にアクセスを行い、（ｄ）のＭモードではアドレスｂからアドレスｃへのデータコピーを実行している。  又、図５中、（ｄ）のＭモードにおけるコピー量は図４に示すＭＶＳレジスタ３４で決定し、（ｄ）に示すアクセスで実現しているデータコピー量は図４に示すデータサイズレジスタ４６で決定する。本実施例では、ＭＶＳレジスタ３４で設定できるデータサイズは、データサイズレジスタ４６に設定できる値よりも大きな値にできるようになっており、その関係は次式（１）の通りであり、図５（ｄ）に示すアクセスの回数（即ち、図５（ｄ）に示す一連の動作を１回とした場合にその一連の動作を何回行うか）の制御は、図４のデータカウント回路３６で行われる。
【００５６】
（ＭＶＳレジスタ３４のデータサイズ）＝（データサイズレジスタ４６のデータサイズ）×｛図５（ｄ）に示すアクセスの回数｝                式（１）
本実施例では、ＲＯモード、ＷＯモード及びＲＷＣモードに関しては、負荷発生装置５の動作の開始と終了がＣＰＵ１のソフトウェアによって制御され、負荷発生装置５の動作は一度開始するとＣＰＵ１のソフトウェアが終了の制御を行うまでＣＰＵ１のソフトウェアとは独立して継続される。
【００５７】
図６中、（ａ）は上記第１の機構、（ｂ）は上記第４の機構、（ｃ）は上記第５の機構について、夫々メモリアクセスの動作例を説明する図である。図６において、（ａ）はＳＡＲレジスタ３９の値がデータサイズレジスタ４６の値より大きい場合を示し、（ｂ）はＳＡＲレジスタ３９の値がデータサイズレジスタ４６の値と等しい場合を示し、（ｃ）はＳＡＲレジスタ３９の値がデータサイズレジスタ４６の値より小さい場合を示す。ここでは説明の便宜上、ストライドの回数、即ち、図４に示すＳＬＲレジスタ４０の値を「４」に設定し、対象とするベースアドレス、即ち、Ｐ１で示す最初のアクセスのアクセス対象であるアドレス空間５３１には、図４に示すＢＡＲレジスタ３１を使用するものとする。
【００５８】
この設定では先ず、各動作モード（ＷＯ，ＲＯ，ＷＲＣ）でＰ１で示すようにアドレス空間５３１にアクセスを行い、次に同様の動作モードでＰ２，Ｐ３，Ｐ４で示すようにアドレス空間５３２，５３３，５３４にアクセスを行い、ストライド回数が４回になるとＰ５で示すように再びＰ１で示すアクセスを行う。このようにして、ＣＰＵ１のソフトウェアにより負荷発生装置５の動作の終了が制御されるまでＰ１〜Ｐ５で示すアクセス動作を続ける。尚、後述するＭモードでは、ベースアドレスとしてＭＶＳＡレジスタ３２及びＭＶＤＡレジスタ３３を使用する。
【００５９】
図６（ａ）〜（ｃ）におけるアクセス動作の対象アドレスは、図４の回路において次式（２）に置き換えることができる。
【００６０】
（対象アドレス）＝｛ベースアドレス（ＢＡＲレジスタ３１，ＭＶＳＡレジスタ３２，ＭＶＤＡレジスタ３３）｝＋（ＳＡＲレジスタ３９）×（ＳＬＲレジスタ４０）
式（２）
ＳＡＲレジスタ３９のアドレスが次の対象アドレスへの直接の変化分となるため、アクセスするデータサイズとＳＡＲレジスタ３９の値で示される変化量との差が異なることで、図６（ａ）〜（ｃ）に示す如きアクセスを実現させることができる。
【００６１】
図６（ａ）に示す動作は、主に試験対象システム１００上のＣＰＵ１のキャッシュＷＡＹを対象としている。この場合のアクセスは、ＭＢ単位のアクセス間隔を持つ。又、図４に示すデータサイズレジスタ４６の値は、１回のＤＭＡ動作におけるデータサイズであり、ＫＢ単位である。アドレスの変化量がアクセスするデータサイズよりも大きいため、図６（ａ）のようにメモリ３のアドレス空間を飛び飛びでアクセスしているような動作が行われる。
【００６２】
図６（ｂ）に示す動作では、アクセスするデータサイズとアドレスの変化量が一致しているので、連続してメモリ３のアドレス空間をアクセスし続けているように見る。例えばＧＢ〜ＴＢ単位のメモリ３であっても、ＳＲＬレジスタ４０の値、即ち、ストライド回数を増やしていけば、このような動作は容易に行える。
【００６３】
図６（ｃ）に示す動作では、アクセスするデータサイズよりもアドレスの変化量が少ないので、少しずつアドレスをずらしながらメモリ３のアドレス空間をアクセスしているように見える。
【００６４】
このように、本実施例の負荷発生装置５では、２つのレジスタの値を決めるだけで、このような３つの異なるアクセスパターンを作り出すことが可能となる。
【００６５】
図７は、上記第１２の機構についてメモリアクセスの動作例を説明する図である。ここでは説明の便宜上、ストライドの回数、即ち、図４に示すＳＬＲレジスタ４０の値を「４」に設定し、Ｍモードなので対象とするベースアドレス、即ち、Ｐ１−１で示す最初のアクセスの移動元対象であるアドレス空間５３１には図４に示すＭＶＳＡレジスタ３２を使用し、Ｐ２−１で示す最初のアクセスの移動先対象であるアドレス空間５３５には図４に示すＭＶＤＡレジスタ３３３を使用する。
【００６６】
アクセスはＰ１−１，Ｐ１−２，Ｐ２−１，Ｐ２−２，Ｐ３−１，Ｐ３−２，Ｐ４−１，Ｐ４−２の順番で行い、ストライド回数を「４」に設定しているため、Ｐ４−２で示すアクセスが終了後、Ｐ５−１，Ｐ５−２で示すように最初のアドレス、即ち、Ｐ１−１，Ｐ１−２のアクセスに戻り、動作が継続される。データのコピーは、夫々Ｐ１，Ｐ２，Ｐ３，Ｐ４同士で行われる。
【００６７】
上記第１３の機構は、図６（ｂ）のアドレスの指定方法と図７の動作によって、負荷発生装置５だけで、且つ、途中にＣＰＵ１のソフトウェアの制御を必要とすることなく、ＧＢ〜ＴＢ単位のメモリコピーを行うことが可能である。
【００６８】
上記第１４の機構は、図６（ｃ）のアドレスの指定方法と図７の動作によって、負荷発生装置５がアドレスバウンダリをずらしながらコピーするといったユニークなパターンをレジスタ設定の組み合わせのみ、且つ、途中にＣＰＵ１のソフトウェアの制御を必要とすることなく実現する。
【００６９】
データ変換機能について、同じ若しくは異なるアドレスに対して同じデータパターンをライトするのは負荷を高める上でも好ましくない。又、同じデータを使用していると試験対象システム１００に問題が発生した場合、デバッグが困難になることが予想される。このため、負荷発生装置５では、上記第６の機構において同じデータを連続で書かない機構が備えられており、上記第２、第３、第９〜第１１の機構において、各負荷対象アドレス（即ち、アクセス対象アドレス）にユニークなデータを書く機構が備えられている。
【００７０】
図８は、上記第２、第６及び第９の機構の概要を示す図である。本実施例では、一例として６４ビットのＰＣＩ−Ｘバスに負荷発生装置５を実装しているので、図８では例えば６４バイトのＤＭＡライトを行っているものとする。この時の負荷対象アドレスは、0xffff 0000であり、図４のＤＡＴＡレジスタ４８には0x0から0x7までの６４ビットの８データが格納されているとする。
【００７１】
図８（ａ）は、上記第２の機構のデータパターン変換機能を示す。ここでは、ＤＡＴＡレジスタ４８に格納されているデータとそのデータをライトするための負荷対象アドレスの排他的論理和（ＸＯＲ）を演算することによって、アドレス毎にデータパターンを再生成することが可能である。又、上記第１の機構のストライド機能を併用することで、ＤＡＴＡレジスタ４８のデータパターンを固定にしたままで、ストライドで対象になった負荷対象アドレス毎にユニークなデータをライトすることが可能である。即ち、ＤＭＡの転送可能なデータサイズ分の最小限のデータパターンさえ用意すれば、ストライド可能なメモリ空間の範囲であればその全てのアドレスに対してユニークなデータをライト可能であることを意味する。更に、上記式（２）で示した対象アドレス生成方法を使用すると、ＳＬＲレジスタ４０「０」に設定した場合はストライドが有効であるものの、ストライドが無効な場合と同様に単一のアドレスのみを負荷対象とし、且つ、データパターンは負荷対象アドレスとＸＯＲ演算したデータパターンにすることが可能となる。
【００７２】
図８（ｂ）は、上記第６の機構のデータパターン変換機能を示す。ここでは、同一のアドレスに対してＤＭＡライトを行う場合、データ反転判定回路１７によって生成されたtoggle_sel信号とデータパターンのＸＯＲを演算することによって、同じデータを連続してライトしないようにすることが可能である。
【００７３】
図８（ｃ）は、上記第９の機構のデータパターン変換機能を示す。ここでは、テストパターンは、上記第２、第３及び第６の機構を組みせることで実現できる。図９に示すように、toggle_sel信号の切り替えタイミングとＰ５のタイミング、即ち、ストライドの最初のアドレスから実行し直すタイミングとは同じである。図９は、上記第９の機構のtoggle_sel信号の切り替えタイミングを示す図である。
【００７４】
図１０は、負荷発生装置５の各動作モードにおけるadr_sel信号及びbase_sel信号のアドレスセレクト条件を示す図である。動作モードがＭモード以外のモードであれば、基本的にはストライド有効レジスタ１３のオン／オフでＢＡＲレジスタ３１の値をそのまま使用するか、或いは、アドレス演算を行った結果を使うかの場合に分けられる。ただし、ストライド有効レジスタ１３のオン／オフは負荷発生前に決定するものであるため、負荷発生中はadr_sel信号及びbadr_sel信号に基づいて選択されるアドレスレジスタは固定されている。Ｍモードの場合には、コピー元とコピー先の両アドレスを交互に出力する必要があるため、status_change信号の発行、即ち、前トランザクションが終了したら、他方のアドレスを出力するべきアドレスとして選択する。このようにして、ストライド有効レジスタ１３がオンの時は常にアドレス演算結果を選択するようにしている。これは、ストライド機能の関連レジスタを使って、上記第３の機構ではない上記第２の機構のみを実現しようとした場合に必須な選択条件である。
【００７５】
図１１は、負荷発生装置５の各動作モードにおけるＤＡＴＡレジスタ４８の出力データの選択条件を示す図である。動作モードがＭモードであれば、常にＤＡＴＡレジスタ４８の出力データしか選ばない。又、ＲＯモードも選択条件に入っているが、これは有効ではない。
【００７６】
図１２は、負荷発生装置５の各動作モードにおけるtoggle_change信号の発行タイミング条件を示す図である。ストライド有効レジスタ１３がオフの時が基本であり、オンの時はオフの時の条件に更に条件が追加される。ただし、Ｍモードでは、toggle_change信号は常には発行しない。図１１のＭモード時の条件と図１２のＭモード時の条件を合わせて、上記第１５の機構のようにデータパターンの生成を抑止することができる。
【００７７】
以下に、負荷発生装置５の各動作モードにおける動作を図１３〜図２１のフローチャートと共に説明する。負荷発生装置５の動作前提は、各演算器及びカウント値の初期値が全て「０」であり、夫々の資源は各動作モードによって結果が更新されるものとする。更に、ＣＰＵ１のソフトウェア等によって動作が終了した場合、各資源は全て初期化されることを前提としている。尚、各動作を行うには、mode_op信号及びフローチャートと共に説明する各レジスタを、動作を実行する前に予め設定しておく必要がある。以下のフローチャートの説明において、説明されている処理に関わる図１３〜図２１中のステップの参照符号は括弧内に示す。
【００７８】
図１３は、負荷発生装置５のＷＯモード（mode_op信号＝００）における動作を説明するフローチャートである。図１３において、レジスタの設定終了後ＤＭＡ動作を開始すると、先ずレジスタに設定したアドレスとライトデータを使って（Ｓ１〜Ｓ３）Ｉ／Ｏバス１０４上にＤＭＡライト（コマンド）を発行する（Ｓ４）。Ｉ／Ｏバス１０４上でＤＭＡライトのトランザクションが終了するを受け（Ｓ５）、バスインターフェースユニット５６からトランザクションの完了通知を受けてステータスチェンジ判定回路１１がstatus_change信号を発行する（Ｓ６）。ここで、ストライド有効レジスタ１３がオフ（Ｓ７でＮＯ）であればアドレスはＢＡＲアドレスレジスタの値のまま、次のＤＭＡライト用アドレスをバスインターフェースユニット５６に出力する（Ｓ１−１）。ストライド有効レジスタ１３がオン（Ｓ７でＹＥＳ）であればアドレスステータス回路２５はstride_next信号を発行する（Ｓ９）。stride_next信号の発行を受けてストライドカウント回路４２はストライド回数を設定しているＳＬＲレジスタ４０と現在のカウント値を比較し（Ｓ１０）、一致（Ｓ１０でＹＥＳ）していればstride_finish信号をアドレスステータス回路２５に送信し（Ｓ１１）、ストライドカウント回路４２のカウント値を「０」に初期化する（Ｓ１２）。ＳＬＲレジスタ４０と現在のカウント値が不一致（ステップＳ１０でＮＯ）の場合は、ストライドカウント回路４２のカウント値に「１」を加算して（Ｓ１３）、掛け算器４１にストライドカウント回路４２のカウント値を渡す。掛け算器４１は、ＢＡＲレジスタ３１の値と、ＳＡＲレジスタ３９の値と、ストライドカウント回路４２のカウント値に基づいて上記式（２）を演算し（Ｓ１４）、次のＤＭＡライト用のアドレスを出力する（Ｓ１−１）。
【００７９】
データの出力に関しては、先ずストライド有効レジスタ１３がオフ（Ｓ７でＮＯ）である場合はＤＡＴＡレジスタ４８に格納されているデータをそのまま使用し（Ｓ１５）、オン（Ｓ７でＹＥＳ）であれば先のアドレスの掛け算結果を使用する（Ｓ１６）。この後で同じアドレスに連続して同じデータを書かないようにデータを反転させるためのtoggle_change信号を、条件判定を行ってアドレスステータス回路２５で発行する（Ｓ１７）。この条件判定によれば、ストライドが無効であればstatus_change信号の発行に応答して随時行われ、ストライドが有効であればストライドカウント回路４２のカウント値がＳＬＲレジスタ４０の値と一致した場合のみtoggle_change信号を発行する。これは、先のアドレス出力フローで説明したようにストライドが無効である場合、次に発行するアドレスは前回のアドレスと同じになるため、status_change信号の発行に応答してtoggle_change信号が発行さる条件になっており、ストライドが有効の場合、ストライドカウント回路４２のカウント値がＳＬＲレジスタ４０の値と一致するとカウント値は「０」になり、上記式（２）によりその時のアドレスは最初に発行したアドレスに戻るからである。このため、ストライドが有効の場合はstride_finish信号を受信したらtoggle_change信号を発行する条件になっている。データ反転判定回路１７はtoggle_change信号の発行を受け、トグル有効レジスタ１３がオン（Ｓ１８でＹＥＳ）又はオフ（Ｓ１８でＮＯ）であるかに応じてデータ反転をするか（Ｓ１９）データ反転をしないか（Ｓ２０）を決定し、そのデータをバスインターフェースユニット５６に送る（Ｓ３−１）。その後は、上記と同様にして、次のＤＭＡライトに対してレジスタに設定したアドレスとライトデータを使って（Ｓ１−１〜Ｓ３−１）Ｉ／Ｏバス１０４上にＤＭＡライト（コマンド）を発行する（Ｓ４−１）。上記の動作は、ＣＰＵ１のソフトウェアが終了させるか、若しくは、Ｉ／Ｏバス１０４上でエラーが発生しない限り実行し続ける。
【００８０】
図１４は、負荷発生装置５のＲＯモード（mode_op＝０１）における動作を説明するフローチャートである。図１４において、レジスタの設定終了後ＤＭＡ動作を開始すると、先ずレジスタに設定したアドレスを使って（Ｓ３１，Ｓ３２）Ｉ／Ｏバス１０４上にＤＭＡリード（コマンド）を発行する（Ｓ３３）。リードデータを受信すると（Ｓ３４）、受信したリードデータをＤＡＴＡレジスタ４８の領域に格納する（Ｓ３５）。これはリードオンリーの場合、リードしたデータが正しいか否かの判断が負荷発生装置５単体ではできないため、ＣＰＵ１のソフトウェアによるチェックができるようにＲＯモードでは未使用のＤＡＴＡレジスタ４８にリードデータを格納するようにしている。データを全て受信してＤＡＴＡレジスタ４８に格納してＤＭＡリードが終了すると（Ｓ３６）、バスインターフェースユニット５６からトランザクションの完了通知を受けてステータスチェンジ判定回路１１がstatus_change信号を発行する（Ｓ３７）。ＲＯモードの場合もＷＯモードの場合と同様に、status_change信号が発行されるとストライド有効レジスタ１３がオン（Ｓ３８でＹＥＳ）の場合はアドレス演算を実行する（Ｓ４０〜Ｓ４５）。このアドレス演算は、ＷＯモードの時のアドレス演算（Ｓ９〜Ｓ１４）と同じである。又、ＷＯモードの場合と同様に、上記の動作は、ＣＰＵ１のソフトウェアが終了させるか、若しくは、Ｉ／Ｏバス１０４上でエラーが発生しない限り実行し続ける。
【００８１】
図１５〜図１７は、負荷発生装置５のＷＲＣモード（mode_op＝１０）における動作を説明するフローチャートである。図１５において、レジスタの設定終了後ＤＭＡ動作を開始すると、先ずレジスタに設定したアドレスとライトデータを使って（Ｓ５１〜Ｓ５３）Ｉ／Ｏバス１０４上にＤＭＡライト（コマンド）を発行する（Ｓ５４）。ＤＭＡライトが終了すると（Ｓ５５）、バスインターフェースユニット５６からトランザクションの完了通知を受けてステータスチェンジ判定回路１１がstatus_change信号を発行し（Ｓ５６）、ＤＭＡリードが実行される（Ｓ５１−１，Ｓ５２−１，Ｓ５９）。この時status_change信号によって変更されるのは、バスコマンドのみである。アドレスは変更しないので、同じアドレスに対して書いてから読むという動作がここで成立する。ＷＲＣモードでは、ＤＭＡリードで受信したデータ（Ｓ５８）をＤＡＴＡレジスタ４８に格納せず、out_data信号の値とコンペアチェックを行い（Ｓ５９）データが正しく書き読みできたか否か（Ｓ６０）を確認する。受信データと比較するデータは、データアドレスとのＸＯＲ演算結果や反転した結果である。ここで、コンペアエラーが発生した場合（Ｓ６０でＮＯ）は、ＣＰＵ１のソフトウェアにコンペアエラーが発生したことを通知し（Ｓ６１）、動作を終了させる。コンペアエラーが発生せず、問題がなければ（Ｓ６０でＹＥＳ）、リード終了（Ｓ６２）で発行されたstatus_change信号（図１６のＳ６３）を使って、次のアドレス及びデータを生成する。この場合のアドレス及びデータの生成方法は、図１３のＷＯモードの場合と同様である。図１６に示すステップＳ６３〜Ｓ５４−２は、図１３に示すステップＳ６〜Ｓ４−１と同じであるため、その説明は省略する。又、ライト終了（Ｓ５５−２）後の図１７に示すステップＳ５６−２〜Ｓ６２−２は、図１５に示すステップＳ５６〜Ｓ６２と同じであるため、その説明は省略する。上記の動作は、ＣＰＵ１のソフトウェアが終了させるか、若しくは、Ｉ／Ｏバス１０４上でエラーが発生しない限り実行し続ける。
【００８２】
図１８及び図１９は、負荷発生装置５におけるストライドが無効な時のＭモード（mode_op＝１１）における動作を説明するフローチャートである。図１８において、レジスタの設定終了後（Ｓ８１〜Ｓ８３）ＤＭＡ動作を開始すると、先ずＭＶＳＡレジスタ３２に設定したアドレス（Ｓ８１）を使ってＩ／Ｏバス１０４上にＤＭＡリード（コマンド）を発行する（Ｓ８４）。この時、図４ではアドレス加算器３７を通過するが、上記式（１）で示すアクセスの回数が０回であるため、アドレスはＭＶＳＡレジスタ３２と同じである。リードデータを受信すると（Ｓ８５）、受信したリードデータをＤＡＴＡレジスタ４８の領域に格納する（Ｓ８６）。ＤＭＡリードが終了すると（Ｓ８７）、ステータスチェンジ判定回路１１がstatus_change信号を発行する（Ｓ８８）。レジスタの設定終了後（Ｓ８９〜Ｓ９２）、ＭＶＤＡレジスタ３３に設定したアドレス（Ｓ８９）を使ってＩ／Ｏバス１０４上にＤＭＡライト（コマンド）を発行し（Ｓ９３）、先のＤＭＡリードで受信したデータに対するＤＭＡライトを実行する。この時、アクセスの回数を示すデータカウント回路３６のカウント値はまだ更新されていないので、アドレスはＭＶＤＡレジスタ３３と同じである。ＤＭＡライトが終了（Ｓ９４）したことによって発生したstatus_change信号を受信すると（Ｓ９５）、アドレスステータス回路２５はmv_next信号を発行し（Ｓ９６）、ムーバ用のデータカウント回路３６のカウント値を「１」だけカウントアップし（Ｓ９７）、上記式（１）によって現在までに実行したメモリコピー量を計算してＭＶＳレジスタ３４の値との比較を行う（Ｓ９８）。現在までに実行したメモリコピー量がＭＶＳレジスタ３４で示すメモリコピー量に達していないと（Ｓ９８でＮＯ）、データカウント回路３６のカウント値とデータサイズの積を演算し、演算結果の値をＭＶＳＡレジスタ３２に加算して次のメモリコピー用アドレスとする（Ｓ９９）。ステップＳ９９以降の処理で、図１８及び図１９において既に説明済みのステップと同じ処理については、同じ参照符号に添え字「−１」を付けて示し、その説明は省略する。尚、図１９において、ステップＳ１０５は、データカウント回路３６のカウント値とデータサイズの積を演算し、演算結果の値をＭＶＤＡレジスタ３３に加算して次のメモリコピー用アドレスとする。
【００８３】
他方、現在までに実行したメモリコピー量がＭＶＳレジスタ３４で示すメモリコピー量に達しておりそれと等しいと（Ｓ９８でＹＥＳ）、データカウント回路３６はmv_finish信号を発行し（Ｓ１００）、アドレスステータス回路２５はムーバで使用したデータカウント回路３６や掛け算器３５等の資源をクリアして（Ｓ１０１，Ｓ１０２）、mv_end信号をバスインターフェースユニット５６に対して発行する（Ｓ１０３）。バスインターフェースユニット５６は、このmv_end信号を受け取ることでＣＰＵ１のソフトウェアに対してムーバが終了したことを通知する（Ｓ１０４）。
【００８４】
図２０及び図２１は、負荷発生装置５におけるストライドが有効な時のＭモード（mode_op＝１１）における動作を説明するフローチャートである。図２０及び図２１において、基本動作は図１８及び図１９の場合と変わらないが、異なる点が２点ある。図２０及び図２１中、図１８及び図１９と同一ステップには同一参照符号を付し、その説明は省略する。
【００８５】
１点目は、アドレス生成において、ストライド用のアドレス加算器４４を通過することで、一度ムーバが終了しても、ストライド機能によって次のアドレス間のメモリコピーを行える点である。このアドレス生成において、アドレス加算器を２つ通ることになるが、１番最初アドレス（ＭＶＳＡ／ＭＶＤＡ）は上記式（１）及び上記式（２）により、やはりＭＶＳＡ／ＭＶＤＡのままである。
【００８６】
２点目は、ＭＶＳレジスタ３４の条件を満たしていた場合、図１８及び図１９ではムーバが終了していまうが、ストライド有効レジスタ１３がオンの場合はストライドカウントがＳＬＲレジスタ４０の設定と一致した場合、図１３〜図１７と同様にstride_finish信号が発行され、このstride_finish信号をアドレスステータス回路２５が受信することによってムーバが終了したと判断する。
【００８７】
図２０において、ステップＳ２０１は、アドレス加算器３７と掛け算器４１の組み合わせを用いて生成したアドレスを、ステップＳ８２においてバスインタフェースユニット５６に出力するべきアドレスとする。又、ステップＳ２０２は、アドレス加算器３８と掛け算器４１の組み合わせを用いて生成したアドレスを、ステップＳ９０においてバスインタフェースユニット５６に出力するべきアドレスとする。更に、ステップＳ２０３は、アドレス加算器３７と掛け算器４１の組み合わせを用いて生成したアドレスを、ステップＳ８２−１においてバスインタフェースユニット５６に出力するべきアドレスとする。
【００８８】
図２１において、ステップＳ１０２の後、ステップＳ２０４はストライド有効レジスタ１３がオンであるか否かを判定し、判定結果がＹＥＳであると、ステップＳ２０５はアドレスステータス回路２５からstride_next信号を発行する。ステップＳ２０６は、ストライドカウント回路４２でストライド回数を設定しているＳＬＲレジスタ４０と現在のカウント値を比較して一致するか否かを判定する。ステップＳ２０６の判定結果がＮＯであると、ステップＳ２０７はストライドカウント回路４２のカウント値に「１」を加算して、掛け算器４１にストライドカウント回路４２のカウント値を渡す。ステップＳ２０８は、掛け算器４１でＢＡＲレジスタ３１の値と、ＳＡＲレジスタ３９の値と、ストライドカウント回路４２のカウント値に基づいて上記式（２）を演算し、次のＤＭＡライト用のアドレスを出力する。他方、ステップＳ２０６の判定結果がＹＥＳであると、ステップＳ２０９はストライドカウント回路４２でstride_finish信号を発行してアドレスステータス回路２５に送信し、ステップＳ２１０はストライドカウント回路４２のカウント値をクリア、即ち、「０」に初期化する。ステップＳ２０４の判定結果がＮＯ、或いは、ステップＳ２１０の後、処理はステップＳ１０３へ進む。又、ステップＳ２１１は、アドレス加算器３８と掛け算器４１の組み合わせを用いて生成したアドレスを、ステップＳ９０−１においてバスインタフェースユニット５６に出力するべきアドレスとする。
【実施例２】
【００８９】
次に、上記第１６〜第１９の機構について説明する。
【００９０】
図２２は、本発明の負荷発生装置の第２実施例を示すブロック図であり、図２３は、負荷発生装置の第２実施例を、負荷試験の対象となる試験対象システムと共に示すブロック図である。負荷発生装置の第２実施例は、本発明の負荷試験方法の第２実施例を用いる。
【００９１】
図２２に示す負荷発生装置５−１は、ＰＣＩバスをサポートするＰＣＩ／ＰＣＩ−Ｘインタフェースモジュール２０１、ＤＭＡアービタ２０２、負荷対象領域２０３及びＤＭＡコントローラ２０５−１，２０５−２を有する。
【００９２】
ＤＭＡアービタ２０２は、ＤＭＡコントローラ２０５−１，２０５−２からのアドレス信号が入力されるセレクタ２１１、ＤＭＡコントローラ２０５−１，２０５−２からのバスコマンドが入力されるセレクタ２１２、ＤＭＡコントローラ２０５−１，２０５−２からのＤＭＡ出力データが入力されるセレクタ２１３、及びＤＭＡコントローラ２０５−１，２０５−２からのＤＭＡリクエストに基づいてアービトレーションを行うＤＭＡアービトレーション回路２１４を有する。ＤＭＡアービトレーション回路２１４は、アービトレーションの結果に基づいて各セレクタ２１１〜２１３の入力を選択出力すると共に、ＤＭＡリクエストをＰＣＩ／ＰＣＩ−Ｘインタフェースモジュール２０１に入力する。セレクタ２１１，２１２，２１３からのＤＭＡアドレス、ＤＭＡコマンド及び出力データは、ＰＣＩ／ＰＣＩ−Ｘインタフェースモジュール２０１に入力される。又、ＤＭＡアービトレーション回路２１４は、ＰＣＩ／ＰＣＩ−Ｘインタフェースモジュール２０１からのバスリクエストに基づいてアービトレーションを行い、アービトレーションの結果に基づいてリクエストをＤＭＡコントローラ２０５−１，２０５−２に入力する。ＰＣＩ／ＰＣＩ−Ｘインタフェースモジュール２０１からの入力データは、ＤＭＡ入力データとしてＤＭＡコントローラ２０５−１，２０５−２に入力される。負荷対象領域２０３は、ＰＣＩ／ＰＣＩ−Ｘインタフェースモジュール２０１が１度に転送できる最大のデータサイズに設定されており、例えば４Kbyteである。
【００９３】
各ＤＭＡコントローラ２０５−１，２０５−２は、ＤＭＡデータ領域２２１、ＤＭＡリクエスト発生回路２２２及びスタート／ストップ（start/stop）レジスタ２２３を有する。ＤＭＡリクエスト発生回路２２２は、ＤＭＡリクエストの間隔を設定するリクエスト間隔レジスタ２２５を含む。各ＤＭＡコントローラ２０５−１，２０５−２は、図４の負荷発生装置５と同様に第１〜第１５の機構を含む構成を有し、更に、各ＤＭＡコントローラ２０５−１，２０５−２で設定されたＤＭＡを実行させるためのStart/Stopレジスタ２２３を「１」に設定するとＤＭＡが実行され、「０」に設定するとＤＭＡが終了する。
【００９４】
図２３では、図３の構成に対してクロスバースイッチ３０１を設けることで、より多くのシステムコントローラ及びＩ／Ｏコントローラが搭載され、負荷発生装置に対して複数のメモリや各Ｉ／Ｏコントローラ配下の複数のＩ／Ｏデバイスといった負荷対象アドレスを持った対象物（ターゲット）が複数存在する。つまり、複数の試験対象システム１００−１，１００−２が存在する。
【００９５】
このような試験対象システム１００−１，１００−２に対する負荷試験の一例として、負荷発生装置５−１からメモリ３−１，３−２やＩ／Ｏコントローラ４−２配下のＩ／Ｏデバイス６−３，６−４に対してアクセスするような試験の場合、メモリとＩ／Ｏデバイスではアドレス空間の割り当てやアクセス方法が一般的に異なるため、１つの負荷発生装置内のＤＭＡコントローラが１つだとターゲットが１つになってしまい、負荷効率が悪くなる。そこで、本実施例では１つの負荷発生装置（例えば、負荷発生装置５−１）内に２個のＤＭＡコントローラ２０５−１，２０５−２を搭載し、メモリ(コヒーレンシ空間)とＩ／Ｏデバイス(ノンコヒーレンシ空間)を１つの負荷発生装置で同時にアクセスできるようにした第１６の機構が設けられている。本実施例では、言うまでもなくコヒーレンシ同士、ノンコヒーレンシ同士のアクセスも可能である。
【００９６】
このようにして、上記第１〜第１５の機構の全てを含む第１６の機構を複数搭載し、個別にパラメータを設定できることで、ランダムなテストパターンを実現することができる。
【００９７】
又、ＤＭＡリクエスト発生回路２２５を各ＤＭＡコントローラ２０５−１，２０５−２に設けることで、ＤＭＡリクエストの間隔、即ち、ＤＭＡの実行間隔（ＤＭＡの終了からＤＭＡの発行までの時間)を任意に設定することができる。各ＤＭＡコントローラ２０５−１，２０５−２のＤＭＡリクエスト発生回路２２２から送られたＤＭＡリクエストは、ＤＭＡアービタ２０２のＤＭＡアービトレーション回路２１４に送られ、ＬＲＵ方式によってどちらのＤＭＡリクエストを受け付けるか否かが決定される。
【００９８】
このようにして、上記第１３の機構を有する各ＤＭＡコントローラ２０５−１，２０５−２がＰＣＩ／ＰＣＩ−Ｘバス（Ｉ／Ｏバス）へのＤＭＡリクエストの間隔を個別に調整できる上記第１７の機構を設けることで、ランダムなテストパターンを実現することができる。
【００９９】
尚、上記第１７の機構と上記第１６の機構を組み合わせることで、より試験パターンが単純化することなく、１つのＤＭＡコントローラで負荷試験を実行するよりも試験パターンのランダム性が高くなる。このため、アクセスの中継ＬＳＩであるクロスバースイッチ３０１、Ｉ／Ｏコントローラ４−１，４−２やシステムコントローラ２−１，２−２に対する負荷を容易に実現することができる。
【０１００】
本実施例では、負荷対象領域２０３が搭載されており、上記第１８の機構は負荷試験の対象アドレス空間を有する。図２３に示す例では、この負荷対象領域２０３は、負荷発生装置５−１と負荷発生装置５−４間やＣＰＵ１−１から負荷発生装置５−３といったアクセスする負荷試験に有効なデータ領域を構成する。このようなアクセスは、負荷試験としても重要な項目の１つである。本実施例では、負荷対象領域２０３は、ＰＣＩ／ＰＣＩ−Ｘインタフェースモジュール２０１が１度に転送できる最大のデータサイズである４Kbyteに設定されている。レジスタの設定やポーリングだけでは負荷にならないような場合や、データサイズが重要な要素を持つような負荷試験の場合には、このような負荷対象領域２０３を持つことは重要であり、ＤＭＡコントローラ２０５−１，２０５−２とは独立して持つことで、ＤＭＡを２つのＤＭＡコントローラ２０５−１，２０５−２で同時で動かしている場合でも、上記のような負荷試験が実行できる。
【０１０１】
各ＤＭＡコントローラ２０５−１，２０５−２内部にあるＤＭＡデータ領域２２１は、図４におけるＤＡＴＡレジスタ４８に対応する。このＤＭＡデータ領域２２１（ＤＡＴＡレジスタ４８）のサイズは上記の如く４Kbyteとなっているが、これはＰＣＩ／ＰＣＩ−Ｘインタフェースモジュール２０１が１度に転送できる最大のデータサイズである。本実施例では１つの負荷発生装置（例えば、負荷発生装置５−１）内に２個のＤＭＡコントローラ２０５−１，２０５−２を搭載し、各ＤＭＡコントローラ２０５−１，２０５−２は、上記第１〜第１５の機構の全てを含み、且つ、ＰＣＩ／ＰＣＩ−Ｘインタフェースモジュール２０１が１度に転送できる最大のデータサイズを有するＤＭＡデータ領域２２１を備えた第１９の機構を有することで、各ＤＭＡコントローラ２０５−１，２０５−２はＰＣＩ／ＰＣＩ−Ｘインタフェースモジュール２０１が接続するＩ／Ｏバスの最大転送量のＤＭＡデータ領域２２１しか必要としない。このため、各ＤＭＡコントローラ２０５−１，２０５−２は、最大転送サイズ分のＤＭＡデータ領域２２１のみ持つだけで、高負荷、且つ、様々な負荷パターンの負荷試験を実行することができる。
【０１０２】
上述の如く、本発明によれば、最小限のハードウェア資源によって、従来であればハードディスクを使用ないとできなかったような広いアドレス空間に対する負荷試験や、様々なアクセスパターンやデータパターンの高負荷を実現することができ、更に、データをユニークにすることで試験対象システムの検証及びデバッグを容易に行うことが可能となる。
【０１０３】
尚、本発明は、以下に付記する発明をも包含するものである。
（付記１）  試験対象システムのバスに負荷を与える負荷発生装置であって、
動作モードが設定されるモード設定レジスタと、
１回のデータ転送におけるデータサイズが設定されるデータサイズレジスタと、
最初のアクセス対象アドレスであるベースアドレスと、ストライド機能において１回ストライドを実行する毎のアドレス間隔と、ストライド回数とが設定されるレジスタ群と、
該モード設定レジスタに設定されている動作モードに応じて、該データサイズレジスタに設定されているデータサイズ及び該レジスタ群に設定されている情報に基づいて該試験対象システム内のメモリ空間にアクセスするアクセス手段とを備え、
該アクセス手段は、アクセス対象アドレスを自動的に該アドレス間隔で該メモリ空間に変更する変更機構と、アクセス対象の該メモリ空間に対して該アドレス間隔と該データサイズに応じたデータパターンを生成する生成機構とを含み、アドレス毎にデータを変更することを特徴とする、負荷発生装置。
（付記２）  該動作モードは、該負荷発生装置から該バスに対してライト動作のみを行うライトオンリーモード、該負荷発生装置から該バスに対してリード動作のみを行うリードオンリーモード、該負荷発生装置が該バスに対してライト動作とリード動作を順番に行いリード動作時にライトしたデータとリードしたデータの一致検証を行うライトウィズコンペアモード及びあるアドレス空間のデータをリードし異なるアドレス空間に対してデータをライトするメモリコピー機能を実現するムーバモードを含むことを特徴とする、付記１記載の負荷発生装置。
（付記３）  該変更機構は、該アドレス間隔が該データサイズより大きいと該メモリ空間を飛び飛びでアクセスする動作を行い、該アドレス間隔が該データサイズと等しいと該メモリ空間を連続してアクセスする動作を行い、該アドレス間隔が該データサイズより小さいと少しずつアドレスをずらしながら該メモリ空間をアクセスする動作を行うことで、異なるアクセスパターンを生成することを特徴とする、付記１又は２記載の負荷発生装置。
（付記４）  該レジスタ群は該ムーバモードにおいてコピーするデータ量をも設定されることを特徴とする、付記２記載の負荷発生装置。
（付記５）  該レジスタ群は該ストライド機能のオン／オフをも設定され、該生成機構によるデータパターンの生成は該ストライド機能のオン／オフに応じて抑止されることを特徴とする、付記１〜４のいずれか１項記載の負荷発生装置。
（付記６）  該モード設定レジスタ、該データサイズレジスタ及び該レジスタ群の情報は、該試験対象システムの試験に先立って該試験対象システム側から設定されることを特徴とする、付記１〜５のいずれか１項記載の負荷発生装置。
（付記７）  該負荷発生装置の動作はの開始と終了は、該試験対象システムのソフトウェアによって制御され、該負荷発生装置の動作は一度開始すると該ソフトウェアが終了の制御を行うまで該ソフトウェアとは独立して継続されることを特徴とする、付記１〜６のいずれか１項記載の負荷発生装置。
（付記８）  試験対象システムのバスに負荷を与える負荷試験方法であって、
該試験対象システムの試験に先立って、該試験対象システム側から負荷発生装置内のレジスタに動作モード、１回のデータ転送におけるデータサイズ、最初のアクセス対象アドレスであるベースアドレス、ストライド機能において１回ストライドを実行する毎のアドレス間隔及びストライド回数とを設定する設定ステップと、
該負荷発生装置から、該設定されている動作モードに応じて、該設定されているデータサイズ、ベースアドレス、アドレス間隔及びストライド回数に基づいて該試験対象システム内のメモリ空間にアクセスするアクセスステップとを含み、
該アクセスステップは、アクセス対象アドレスを自動的に該アドレス間隔で該メモリ空間に変更する変更ステップと、アクセス対象の該メモリ空間に対して該アドレス間隔と該データサイズに応じたデータパターンを生成する生成ステップとを有し、アドレス毎にデータを変更することを特徴とする、負荷試験方法。
（付記９）  該動作モードは、該負荷発生装置から該バスに対してライト動作のみを行うライトオンリーモード、該負荷発生装置から該バスに対してリード動作のみを行うリードオンリーモード、該負荷発生装置が該バスに対してライト動作とリード動作を順番に行いリード動作時にライトしたデータとリードしたデータの一致検証を行うライトウィズコンペアモード及びあるアドレス空間のデータをリードし異なるアドレス空間に対してデータをライトするメモリコピー機能を実現するムーバモードを含むことを特徴とする、付記８記載の負荷試験方法。
（付記１０）  該変更ステップは、該アドレス間隔が該データサイズより大きいと該メモリ空間を飛び飛びでアクセスする動作を行い、該アドレス間隔が該データサイズと等しいと該メモリ空間を連続してアクセスする動作を行い、該アドレス間隔が該データサイズより小さいと少しずつアドレスをずらしながら該メモリ空間をアクセスする動作を行うことで、異なるアクセスパターンを生成することを特徴とする、付記８又は９記載の負荷試験方法。
（付記１１）  該設定ステップは該ムーバモードにおいてコピーするデータ量をも該レジスタに設定することを特徴とする、付記９記載の負荷試験方法。
（付記１２）  該設定ステップは該ストライド機能のオン／オフをも該レジスタに設定し、該生成ステップによるデータパターンの生成は該ストライド機能のオン／オフに応じて抑止されることを特徴とする、付記８〜１１のいずれか１項記載の負荷試験方法。
（付記１３）  該負荷発生装置の動作はの開始と終了を、該試験対象システムのソフトウェアによって制御するステップを含み、
該負荷発生装置の動作は一度開始すると該ソフトウェアが終了の制御を行うまで該ソフトウェアとは独立して継続されることを特徴とする、付記８〜１２のいずれか１項記載の負荷試験方法。
【０１０４】
以上、本発明を実施例により説明したが、本発明は上記実施例に限定されるものではなく、本発明の範囲内で種々の変形及び改良が可能であることは言うまでもない。
【図面の簡単な説明】
【０１０５】
【図１】試験対象システムに高負荷を与える従来の負荷発生環境を説明する図である。
【図２】負荷発生環境Ａ，Ｂにおける負荷の発生を説明する図である。
【図３】本発明の負荷発生装置の第１実施例を、負荷試験の対象となる試験対象システムと共に示すブロック図である。
【図４】負荷発生装置の構成を示すブロック図である。
【図５】負荷発生装置の各動作モードにおけるメモリ空間に対するアクセスの順番を説明する図である。
【図６】第１、第４及び第５の機構についてメモリアクセスの動作例を説明する図である。
【図７】第１２の機構についてメモリアクセスの動作例を説明する図である。
【図８】第２、第６及び第９の機構の概要を示す図である。
【図９】第９の機構のtoggle_sel信号の切り替えタイミングを示す図である。
【図１０】負荷発生装置の各動作モードにおけるadr_sel信号及びbase_sel信号のアドレスセレクト条件を示す図である。
【図１１】負荷発生装置の各動作モードにおけるＤＡＴＡレジスタの出力データの選択条件を示す図である。
【図１２】負荷発生装置の各動作モードにおけるtoggle_change信号の発行タイミング条件を示す図である。
【図１３】負荷発生装置のＷＯモードにおける動作を説明するフローチャートである。
【図１４】負荷発生装置のＲＯモードにおける動作を説明するフローチャートである。
【図１５】負荷発生装置のＷＲＣモードにおける動作を説明するフローチャートである。
【図１６】負荷発生装置のＷＲＣモードにおける動作を説明するフローチャートである。
【図１７】負荷発生装置のＷＲＣモードにおける動作を説明するフローチャートである。
【図１８】負荷発生装置におけるストライドが無効な時のＭモードにおける動作を説明するフローチャートである。
【図１９】負荷発生装置におけるストライドが無効な時のＭモードにおける動作を説明するフローチャートである。
【図２０】負荷発生装置におけるストライドが有効な時のＭモードにおける動作を説明するフローチャートである。
【図２１】負荷発生装置におけるストライドが有効な時のＭモードにおける動作を説明するフローチャートである。
【図２２】本発明の負荷発生装置の第２実施例を示すブロック図である。
【図２３】負荷発生装置の第２実施例を、負荷試験の対象となる試験対象システムと共に示すブロック図である。
【符号の説明】
【０１０６】
１，１−１〜１−４      ＣＰＵ
２，２−１，２−２      システムコントローラ
３，３−１，３−２      メモリ
４，４−１，４−２      Ｉ／Ｏコントローラ
５，５−１〜５−４      負荷発生装置
６〜８，６−１〜６−４      Ｉ／Ｏデバイス
９      モード設定レジスタ
１００      試験対象システム
１０１〜１０３      バス
１０４，１０５      Ｉ／Ｏバス
２０２      ＤＭＡアービタ
２０５−１，２０５−２      ＤＭＡコントローラ
【図１】
2008059338.tif 000003
【図２】
2008059338.tif 000004
【図３】
2008059338.tif 000005
【図４】
2008059338.tif 000006
【図５】
2008059338.tif 000007
【図６】
2008059338.tif 000008
【図７】
2008059338.tif 000009
【図８】
2008059338.tif 000010
【図９】
2008059338.tif 000011
【図１０】
2008059338.tif 000012
【図１１】
2008059338.tif 000013
【図１２】
2008059338.tif 000014
【図１３】
2008059338.tif 000015
【図１４】
2008059338.tif 000016
【図１５】
2008059338.tif 000017
【図１６】
2008059338.tif 000018
【図１７】
2008059338.tif 000019
【図１８】
2008059338.tif 000020
【図１９】
2008059338.tif 000021
【図２０】
2008059338.tif 000022
【図２１】
2008059338.tif 000023
【図２２】
2008059338.tif 000024
【図２３】
2008059338.tif 000025