(57)【要約】  情報処理装置（１）は、データ量が異なる複数のデータを生成し、値をずらした複数の前記アドレスを生成する。また、情報処理装置（１）は、生成した複数のデータに対して、データ量が多い順に、生成したアドレスを値が小さいアドレスから順に対応付ける。また、情報処理装置（１）は、生成したデータに対して、データ量が多い順に、ＤＭＡコントローラ（３）の転送チャネルを示す装置情報を、転送チャネルに割当てられた優先度が高い順に対応付ける。そして、情報処理装置（１）は、生成した各データを、データに対応付けたアドレスに転送する旨を、データに対応付けた装置情報が示す転送チャネルに指示する。その後、情報処理装置（１）は、複数の転送チャネルが実際に各データを転送した結果に応じて、複数の転送チャネル間における優先度を検証する。
2013014776.tif 000002
【特許請求の範囲】
【請求項１】
それぞれ異なる優先度が割当てられた複数の転送装置間の優先制御を検証する情報処理装置によって実行される検証プログラムにおいて、
データ量が異なる複数のデータを生成し、
値をずらした複数のアドレスを生成し、
前記生成した複数のデータに対して、データ量が多い順に、前記生成したアドレスをその値が小さい順に対応付け、
前記生成した複数のデータに対して、データ量が多い順に、割り当てられた優先度が高い順に前記転送装置を示す装置情報を対応付け、
前記生成した各データを当該データに対応付けたアドレスに転送する旨を、当該データに対応付けた装置情報が示す転送装置に指示し、
前記複数の転送装置が各データを転送した結果に応じて、前記複数の転送装置間における優先度を検証する
処理を前記情報処理装置に実行させる検証プログラム。
【請求項２】
前記検証プログラムは、
前記複数の転送装置間における優先制御の規則を判別し、
前記判別した規則に基づいて、各転送装置間に割当てられた優先度の順番を判別する処理を前記情報処理装置にさらに実行させることを特徴とする請求項１に記載の検証プログラム。
【請求項３】
前記複数のデータにアドレスを対応付ける処理として、前記優先制御の規則が最も優先度の高い転送装置をラウンドロビン方式で選択する規則である場合には、前記生成した複数のデータに対してそのデータ量が多い順に、前記優先制御の規則により選択される順序に従って前記装置情報を順次対応付ける処理を、前記生成した全てのデータに対して前記装置情報を対応付けるまで、前記情報処理装置に繰り返し実行させることを特徴とする請求項２に記載の検証プログラム。
【請求項４】
複数のデータを転送する転送装置が存在し、かつ、前記優先制御の規則が各転送装置に割当てられた優先度を固定とする規則である場合には、各転送装置が送信するデータの数を判別する処理をさらに実行させ、
前記複数のデータにアドレスを対応付ける処理として、前記優先制御の規則が各転送装置に割当てられた優先度を固定とする規則である場合には、いずれのデータにも対応付けられていない前記装置情報のうち、優先度が最も高い転送装置を示す前記装置情報を、前記装置情報が対応付けられていない前記データのうち前記データ量が最も大きいデータに対応付けるとともに、当該装置情報を対応付けたデータからデータ量が多い順に、１つ飛ばしで、前記判別した数だけ該装置情報を対応付ける処理を、前記生成した全てのデータに対して前記装置情報を対応付けるまで、前記情報処理装置に実行させることを特徴とする請求項２に記載の検証プログラム。
【請求項５】
前記複数の転送装置間における優先度を検証する処理として、
前記生成した各データと、各データに割当てられたアドレスと、各データに割当てられた装置情報とに基づいて、各データの転送結果を予め予測し、
前記予測した転送結果と、各転送装置が実際に各データを転送した結果とが一致するか否かを判別し、
前記予測した転送結果と、各転送装置が実際に各データを転送した結果とが一致すると判別した場合には、各転送装置が正確に動作した旨の評価を出力する
処理を前記情報処理装置に実行させることを特徴とする請求項１〜４のいずれかに記載の検証プログラム。
【請求項６】
前記生成するアドレスにおける各値の差分が、前記生成するデータにおけるデータ量の差分よりも少ないことを特徴とする請求項５に記載の検証プログラム。
【請求項７】
それぞれ異なる値が格納された複数のデータを生成させることを特徴とする請求項５に記載の検証プログラム。
【請求項８】
それぞれ異なる優先度が割当てられた複数の転送装置間の優先制御を検証する情報処理装置において
データ量が異なる複数のデータを生成するデータ生成部と、
値をずらした複数のアドレスを生成するアドレス生成部と、
前記データ生成部が生成した複数のデータに対して、データ量が多い順に、前記アドレス生成部が生成したアドレスをその値が小さい順に対応付け、前記データ生成部が生成した複数のデータに対して、データ量が多い順に、割当てられた優先度が高い順に前記転送装置を示す装置情報を対応付ける対応部と、
前記アドレス生成部が生成した各データを前記対応部が当該データに対応付けたアドレスに転送する旨を、当該データに対応付けた装置情報が示す転送装置に指示する指示部と、
前記複数の転送装置が各データを転送した結果に応じて、前記複数の転送装置間における優先度を検証する検証部と
を有することを特徴とする情報処理装置。
【請求項９】
それぞれ異なる優先度が割当てられた複数の転送装置間の優先制御を検証する情報処理装置によって実行される前記転送装置の検証方法において、
データ量が異なる複数のデータを生成し、
値をずらした複数のアドレスを生成し、
前記生成した複数のデータに対して、データ量が多い順に、前記生成したアドレスをその値が小さい順に対応付け、
前記生成した複数のデータに対して、データ量が多い順に、割り当てられた優先度が高い順に前記転送装置を示す装置情報を対応付け、
前記生成した各データを当該データに対応付けたアドレスに転送する旨を、当該データに対応付けた装置情報が示す転送装置に指示し、
前記複数の転送装置が各データを転送した結果に応じて、前記複数の転送装置間における優先度を検証する
処理を前記情報処理装置に実行させる検証方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、検証プログラム、情報処理装置および検証方法に関する。
【背景技術】
【０００２】
従来、それぞれ異なる優先度が設定された複数の転送チャネルを有する転送装置が知られている。このような転送装置は、各転送チャネルにデータが割当てられた場合には、各転送チャネル間の優先度に応じた順序で、各転送チャネルに割当てられたデータを転送させる優先制御を実行する。【０００３】
ここで、転送装置が、優先制御を正確に実行しているか否かを検証するため、各転送チャネルの信号線にロジックアナライザー等を接続し、信号線に流れる信号の波形を直接観測する技術が知られている。ところが、このような信号の波形を直接観測する技術では、信号線にロジックアナライザーを接続するために、転送装置の改造等を行うので、検証の手間がかかる。【０００４】
そこで、複数のデータをそれぞれ異なる転送チャネルに割り当て、各転送チャネルから同じ記憶領域にデータを転送させることで、転送装置が優先制御を正確に実行したか否かを検証する検証プログラムが知られている。以下、このような検証プログラムの一例として、複数の転送チャネルを有するＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）コントローラを検証する検証プログラムについて説明する。【０００５】
図１９は、検証プログラムを実行する情報処理装置の一例を説明するための図である。図１９に示す例では、情報処理装置５０は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）５１、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）５２、ＤＭＡコントローラ５３を有する。また、情報処理装置５０は、ＣＰＵ５１、ＲＡＭ５２、ＤＭＡコントローラ５３を相互に接続するバス５４を有する。【０００６】
ＣＰＵ５１は、ＤＭＡコントローラ５３が優先制御を正確に実行するか否かを検証する検証プログラムを実行し、ＤＭＡコントローラ５３が有する複数の転送チャネルにデータの割当てを行う。ＤＭＡコントローラ５３は、転送チャネル＃０と、転送チャネル＃０よりも優先度が低い転送チャネル＃１とを有し、各転送チャネル＃０、＃１に割当てられたデータをＲＡＭ５２に転送する。【０００７】
図２０は、優先制御が正確に行われているか否かを検証する検証プログラムの動作について説明するための図である。例えば、検証プログラムは、「１」のみからなるデータ＃１を転送チャネル＃１に割当てるとともに、「２」のみからなるデータ＃０を転送チャネル＃０に割当てる。そして、検証プログラムは、データ＃０とデータ＃１とをＲＡＭ５２が有する転送データ格納領域５２ａに転送する旨の指示をＤＭＡコントローラ５３に対して行う。【０００８】
すると、ＤＭＡコントローラ５３は、転送チャネル＃１よりも優先度が高い転送チャネル＃０に割当てられたデータ＃０を転送データ格納領域５２ａに転送し、その後、転送チャネル＃１に割当てられたデータ＃１を転送データ格納領域５２ａに転送する。すなわち、ＤＭＡコントローラ５３は、転送データ格納領域５２ａに転送したデータ＃０をデータ＃１で上書きする。その後、検証プログラムは、転送データ格納領域５２ａに格納されたデータがデータ＃１のみであるか否かを確認することにより、ＤＭＡコントローラ５３が優先制御を正確に実行したか否かを検証する。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開昭６３−２８９６５２号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかし、複数のデータを同じ記憶領域に転送させる技術では、優先度が最も低い転送チャネルに割当てられたデータで、他の転送チャネルに割当てられたデータを上書きする。このため、優先度が最も低い転送チャネル以外の転送チャネルに割当てられたデータがロストしたか否かを判別できないという問題がある。【００１１】
また、複数のデータを同じ記憶領域に転送させる技術では、転送装置が３つ以上の転送チャネルを有する場合には、優先度が最も高い転送チャネル以外の転送チャネルについて、優先制御を正確に行ったか否かを判別することができない。以下、検証プログラムが、転送装置が３つ以上の転送チャネルを有する場合に、優先制御を正確に行ったか否かを判別できないという問題について説明する。【００１２】
図２１は、従来技術における問題の一例を説明するための図である。図２１に示す例では、ＤＭＡコントローラ５３は、転送チャネル＃０と、転送チャネル＃０よりも優先度が低い転送チャネル＃１と転送チャネル＃１より優先度が低い転送チャネル＃２を有する。このようなＤＭＡコントローラ５３は、各転送チャネルにデータ＃０〜＃２が割当られた場合には、最も優先度が低い転送チャネル＃２に割当てられたデータ＃２を、最後に転送データ格納領域５２ａへ転送する。【００１３】
しかし、検証プログラムは、転送データ格納領域５２ａにデータ＃２のみが格納されている場合は、データ＃０とデータ＃１のうち、どちらのデータが先に転送データ格納領域５２ａに格納されたのかを判別できない。この結果、検証プログラムは、転送チャネル＃０と転送チャネル＃１について、ＤＭＡコントローラ５３が優先制御を正確に実行したか否かを検証できない。【００１４】
本願に開示の技術は、１つの側面では、転送装置の優先制御の実行を検証する。
【課題を解決するための手段】
【００１５】
1つの側面では、それぞれ異なる優先度が割当てられた複数の転送装置間の優先制御を検証する情報処理装置である。このような情報処理装置は、データ量が異なる複数のデータを生成する。また、情報処理装置は、値をずらした複数のアドレスを生成する。また、情報処理装置は、生成した複数のデータに対して、データ量が多い順に、生成したアドレスをその値が小さい順に対応付ける。また、情報処理装置は、生成した複数のデータに対して、データ量が多い順に、割り当てられた優先度が高い順に転送装置を示す装置情報を対応付ける。そして、情報処理装置は、生成した各データを、データに対応付けたアドレスに転送する旨を、データに対応付けた装置情報が示す転送装置に指示する。その後、情報処理装置は、複数の転送装置が各データを転送した結果に応じて、複数の転送装置間における優先度を検証する。
【発明の効果】
【００１６】
一つの側面では、転送装置の優先制御の実行を検証できる。
【図面の簡単な説明】
【００１７】
【図１】図１は、実施例１に係る情報処理装置の一例を説明するための図である。
【図２】図２は、実施例１に係るＤＭＡコントローラについて説明するための図である。
【図３】図３は、優先制御のルールが固定である場合に、ＤＭＡコントローラがＶａｌｉｄ  Ｃｈａｎｎｅｌを割当てる処理の一例を説明するための図である。
【図４】図４は、優先制御のルールが循環である場合に、ＤＭＡコントローラがＶａｌｉｄ  Ｃｈａｎｎｅｌを割当てる処理の一例を説明するための図である。
【図５】図５は、実施例１に係る動作モード情報の一例について説明するための図である。
【図６】図６は、実施例１に係る転送情報の一例について説明するための図である。
【図７】図７は、実施例１に係る送信データの一例を説明するための図である。
【図８】図８は、実施例１に係るエラーリストの一例を説明するための図である。
【図９Ａ】図９Ａは、実施例１に係るデータリストの一例を説明するための図である。
【図９Ｂ】図９Ｂは、実施例１に係る転送領域割付部が実行する処理の一例を説明するための第１の図である。
【図９Ｃ】図９Ｃは、実施例１に係る転送領域割付部が実行する処理の一例を説明するための第２の図である。
【図１０】図１０は、優先制御が固定の場合にチャネル割付部が割付けるチャネル番号の一例を説明するための図である。
【図１１】図１１は、優先制御が循環の場合にチャネル割付部が割付けるチャネル番号の一例を説明するための図である。
【図１２】図１２は、期待値の一例を説明するための図である。
【図１３】図１３は、デスクリプタの一例を説明するための図である。
【図１４】図１４は、優先制御が正確に行われなかった際に受信領域に格納されるデータの一例を説明するための図である。
【図１５】図１５は、ＤＭＡコントローラがデスプリクタに従ってデータを送信する処理の一例を説明するための図である。
【図１６】図１６は、受信領域に記憶されるデータの一例を説明するための図である。
【図１７】図１７は、データとデスプリクタと受信領域との対応を説明するための図である。
【図１８】図１８は、実施例１に係る情報処理装置が実行する処理の流れの一例を説明するためのフローチャートである。
【図１９】図１９は、検証プログラムを実行する情報処理装置の一例を説明するための図である。
【図２０】図２０は、優先制御が正確に行われているか否かを検証する検証プログラムの動作について説明するための図である。
【図２１】図２１は、従来技術における問題の一例を説明するための図である。
【発明を実施するための形態】
【００１８】
以下に添付図面を参照して本願に係る検証プログラム、情報処理装置および検証方法について説明する。
【実施例１】
【００１９】
以下の実施例１では、図１を用いて、情報処理装置の一例を説明する。図１は、実施例１に係る情報処理装置の一例を説明するための図である。【００２０】
図１に示すように、情報処理装置１は、ＣＰＵ（Central  Processing  Unit）２、ＤＭＡ（Direct  Memory  Access）コントローラ３、ＨＤＤ（Hard  Disk  Drive）１０、ＲＡＭ（Random  Access  Memory）２０を有する。また、情報処理装置１は、ＣＰＵ２、ＨＤＤ１０、ＲＡＭ２０を相互に接続するバス４を有する。【００２１】
また、ＨＤＤ１０は、動作モード情報１１、転送情報１２、送信データ１３、比較結果１４を記憶する。また、ＲＡＭ２０は、送信領域２１、受信領域２２、期待値領域２３を有し、エラーリスト２４、データリスト２５、検証プログラム３０を記憶する。また、検証プログラム３０は、データリスト生成部３１、転送領域割付部３２、チャネル割付部３３、期待値生成部３４、デスクリプタ設定部３５、ＤＭＡ起動部３６、データ比較部３７、比較結果部３８を有する。【００２２】
ＣＰＵ２は、ＲＡＭ２０が記憶する検証プログラム３０を読み出し、検証プログラム３０が有する各部３１〜３８の処理を実行する演算処理装置である。具体的には、ＣＰＵ２は、ＲＡＭ２０から検証プログラム３０を読み出し、検証プログラム３０が有する各部３１〜３８の機能を順番に実行する。このような検証プログラム３０を実行することにより、ＣＰＵ２は、ＤＭＡコントローラ３がデータを転送するためのデータリスト２５を生成する。【００２３】
また、ＣＰＵ２は、ＤＭＡコントローラ３が正常に優先制御を実行した際の結果を期待値として生成し、生成した期待値を期待値領域２３に記憶させる。その後、ＣＰＵ２は、ＤＭＡコントローラ３の起動処理を実行し、データリスト２５に従って、送信領域２１に記憶されたデータを受信領域２２に転送させる。また、ＣＰＵ２は、ＤＭＡコントローラ３が受信領域２２に転送したデータと期待値領域２３に記憶させた期待値とが一致するか否かを判別する。そして、ＣＰＵ２は、ＤＭＡコントローラ３が受信領域２２に転送したデータと期待値領域２３に記憶させた期待値とが一致すると判別した場合には、ＤＭＡコントローラ３が優先処理を正確に実行したと判定する。【００２４】
ＤＭＡコントローラ３は、ＣＰＵ２を介することなく、ＲＡＭ２０に記憶された情報の転送を行う。具体的には、ＤＭＡコントローラ３は、ＣＰＵ２が検証プログラム３０を実行することにより生成されたデスクリプタに従って、送信領域２１のデータを受信領域２２に転送する。以下、図を用いて、ＤＭＡコントローラ３について詳細に説明する。【００２５】
図２は、実施例１に係るＤＭＡコントローラについて説明するための図である。図２に示す例では、ＤＭＡコントローラ３は、複数の転送チャネル＃０〜＃７、コントローラ３ａ、ＦＩＦＯ（Fast  In  Fast  Out）３ｃを有する。各転送チャネル＃０〜＃７は、コントローラ３ａによってデスクリプタに基づくデータの指定を受信した場合には、指定されたデータの読み出し要求であるＲｅａｄ  Ａｄｄｒｅｓｓ  Ｖａｌｉｄをコントローラ３ａに出力する。【００２６】
そして、各転送チャネル＃０〜＃７は、コントローラ３ａが有するプライオリティコントローラ３ｂからＶａｌｉｄ  Ｃｈａｎｎｅｌが割当てられた場合には、ＲＡＭ２０が有する送信領域２１からデータを取得し、取得したデータをコントローラ３ａに送信する。また、各転送チャネル＃０〜＃７は、Ｖａｌｉｄ  Ｃｈａｎｎｅｌを割当てられた場合には、Ｒｅａｄ  Ａｄｄｒｅｓｓ  Ｖａｌｉｄの出力を終了する。【００２７】
コントローラ３ａは、ＤＭＡコントローラ３の起動処理が実行された場合には、ＲＡＭ２０に記憶されたデスクリプタを取得し、取得したデスクリプタに基づいて、取得するデータの指定を各転送チャネル＃０〜＃７に対して送信する。また、コントローラ３ａは、各転送チャネル＃０〜＃７からデータを受信した場合には、受信領域２２のうちデスクリプタが示す送信先に受信したデータをＦＩＦＯ３ｃに送信する。【００２８】
プライオリティコントローラ３ｂは、各転送チャネル＃０〜＃７の優先制御を実行する。具体的には、プライオリティコントローラ３ｂは、所定の時間間隔で、各転送チャネル＃０〜＃７のうち、Ｒｅａｄ  Ａｄｄｒｅｓｓ  Ｖａｌｉｄを出力している転送チャネルを判別する。【００２９】
そして、プライオリティコントローラ３ｂは、優先制御のルールが固定（Ｒｏｔａｔｅｄ）である場合には、判別した転送チャネルから前回Ｖａｌｉｄ  Ｃｈａｎｎｅｌを割当てた転送チャネルの次の番号の転送チャネルにＶａｌｉｄ  Ｃｈａｎｎｅｌを割当てる。すなわち、プライオリティコントローラ３ｂは、各転送チャネル＃０〜＃７のうち、最も優先度が高い転送チャネルをラウンドロビン方式で決定する。【００３０】
また、プライオリティコントローラ３ｂは、優先制御のルールが固定（Ｆｉｘｅｄ）である場合には、判別した転送チャネルのうち、番号が最も小さい転送チャネルを選択し、選択した転送チャネルに対してＶａｌｉｄ  Ｃｈａｎｎｅｌを割当てる。つまり、プライオリティコントローラ３ｂは、転送チャネル＃０を最も優先度の高い転送チャネルとし、番号が増えるに従って優先度が低い転送チャネルであると判別する。【００３１】
なお、プライオリティコントローラ３ｂは、各転送チャネル＃０〜＃７に対して任意の順番で優先度を設定することができる。すなわち、プライオリティコントローラ３ｂは、各転送チャネル＃０〜＃７に対してハードに依存した優先度を割当てることができる。また、プライオリティコントローラ３ｂは、ＣＰＵ２から優先制御のルールの通知要求を受信した場合には、優先制御のルールが循環であるか固定であるかを通知する。合わせて、プライオリティコントローラ３ｂは、各転送チャネル＃０〜＃７に割当られた優先度を通知する。【００３２】
ＦＩＦＯ３ｃは、コントローラ３ａからデータを受信した順番に記憶し、先に受信したデータから順番にＲＡＭ２０へ送信する。つまり、ＦＩＦＯ３ｃは、各転送チャネル＃０〜＃７に対して指定されたデータを、各転送チャネル＃０〜＃７の優先度に応じた順番で受信し、受信したデータを受信した順にＲＡＭ２０へ送信する。【００３３】
次に、図を用いて、ＤＭＡコントローラ３が各転送チャネル＃０〜＃７にＶａｌｉｄ  Ｃｈａｎｎｅｌを割当てる処理の一例について説明する。まず、図３を用いて、優先制御のルールが固定である場合に、ＤＭＡコントローラ３が各転送チャネル＃０〜＃７にＶａｌｉｄ  Ｃｈａｎｎｅｌを割当てる処理の一例を説明する。【００３４】
図３は、優先制御のルールが固定である場合に、ＤＭＡコントローラがＶａｌｉｄ  Ｃｈａｎｎｅｌを割当てる処理の一例を説明するための図である。図３に示す例では、各転送チャネル＃０〜＃７から出力されるＲｅａｄ  Ａｄｄｒｅｓｓ  Ｖａｌｉｄ信号と、ＤＭＡコントローラ３が割当てるＶａｌｉｄ  Ｃｈａｎｎｅｌとを示した。【００３５】
なお、図３に示す例では、各転送チャネル＃０〜＃７から出力されるＲｅａｄ  Ａｄｄｒｅｓｓ  Ｖａｌｉｄ信号をＲｅａｄ  Ａｄｄｒｅｓｓ  Ｖａｌｉｄ  ＣＨ＃０〜＃７として示した。なお、図３には、各転送チャネル＃０〜＃７がそれぞれ２つのデータを送信する例について示した。また、図３に示す例では、番号が若い転送チャネルほど、優先度が高いものとする。すなわち、転送チャネル＃０の優先度が最も高く、転送チャネル＃７の優先度が最も低いものとする。【００３６】
例えば、図３に示す例では、各転送チャネル＃０〜＃７から出力されるＲｅａｄ  Ａｄｄｒｅｓｓ  Ｖａｌｉｄ＃０〜＃７が同時に「Ｈｉｇｈ」となる。このような場合には、ＤＭＡコントローラ３は、転送チャネル＃０にＶａｌｉｄ  Ｃｈａｎｎｅｌを割当てる。このため、転送チャネル＃０から出力されるＲｅａｄ  Ａｄｄｒｅｓｓ  Ｖａｌｉｄ  ＣＨ＃０が「Ｌｏｗ」となる。【００３７】
次に、ＤＭＡコントローラ３は、図３中（Ａ）に示すように、転送チャネル＃０にＶａｌｉｄ  Ｃｈａｎｎｅｌを割当ててから所定の時間が経過したタイミングで、各Ｒｅａｄ  Ａｄｄｒｅｓｓ  Ｖａｌｉｄ  ＣＨ＃０〜＃７を確認する。図３中（Ａ）に示す例では、Ｒｅａｄ  Ａｄｄｒｅｓｓ  Ｖａｌｉｄ＃０〜＃７のうち、Ｒｅａｄ  Ａｄｄｒｅｓｓ  Ｖａｌｉｄ  ＣＨ＃１〜＃７が「Ｈｉｇｈ」となっている。このため、ＤＭＡコントローラ３は、転送チャネル＃１〜＃７のうち、最も若番である転送チャネル＃１、すなわち、最も優先度が高い転送チャネル＃１にＶａｌｉｄ  Ｃｈａｎｎｅｌを割当てる。【００３８】
ここで、Ｖａｌｉｄ  Ｃｈａｎｎｅｌが転送チャネル＃１に割当てられた後に、転送チャネル＃０が１つ目のデータの送信を終了し、２つ目のデータを送信するため、Ｒｅａｄ  Ａｄｄｒｅｓｓ  Ｖａｌｉｄ  ＣＨ＃０を「Ｈｉｇｈ」とする。このため、図３中（Ｂ）において、Ｒｅａｄ  Ａｄｄｒｅｓｓ  Ｖａｌｉｄ  ＣＨ＃０、＃２〜＃７が「Ｈｉｇｈ」となっているので、ＤＭＡコントローラ３は、最も若番である転送チャネル＃０にＶａｌｉｄ  Ｃｈａｎｎｅｌを割当てる。【００３９】
その後、転送チャネル＃０は、データの転送を終了し、Ｒｅａｄ  Ａｄｄｒｅｓｓ  Ｖａｌｉｄ  ＣＨ＃０を「Ｌｏｗ」に保つ。他の転送チャネル＃１〜＃７も、Ｖａｌｉｄ  Ｃｈａｎｎｅｌの割り当てを受け、２つのデータを転送した場合には、Ｒｅａｄ  Ａｄｄｒｅｓｓ  Ｖａｌｉｄを「Ｌｏｗ」に保つ。【００４０】
このような処理を実行することで、ＤＭＡコントローラ３は、図３に示す例では、Ｖａｌｉｄ  Ｃｈａｎｎｅｌを転送チャネル「＃０」、「＃１」、「＃０」、「＃１」、「＃２」、「＃３」、「＃２」、「＃３」、「＃４」、「＃５」…という順に割当てる。つまり、ＤＭＡコントローラ３は、優先制御のルールが固定である場合には、各転送チャネル＃０〜＃７に対して、送信するデータの数分だけ、１つ飛ばしにＶａｌｉｄ  Ｃｈａｎｎｅｌを割当てる。換言すると、ＤＭＡコントローラ３は、優先制御のルールが固定である場合には、各転送チャネル＃０〜＃７に対して、送信するデータの数分だけＶａｌｉｄ  Ｃｈａｎｎｅｌを、ちどり状態で割当てる。【００４１】
次に、図４を用いて、優先制御のルールが循環である場合に、ＤＭＡコントローラ３が各転送チャネル＃０〜＃７にＶａｌｉｄ  Ｃｈａｎｎｅｌを割当てる処理の一例を説明する。図４は、優先制御のルールが循環である場合に、ＤＭＡコントローラがＶａｌｉｄ  Ｃｈａｎｎｅｌを割当てる処理の一例を説明するための図である。【００４２】
なお、図４に示す例では、図３と同様に、各転送チャネル＃０〜＃７から出力されるＲｅａｄ  Ａｄｄｒｅｓｓ  Ｖａｌｉｄ信号と、ＤＭＡコントローラ３が割当てるＶａｌｉｄ  Ｃｈａｎｎｅｌとを示した。また、図４に示す例では、図３と同様に、各転送チャネル＃０〜＃７がそれぞれ２つのデータを送信する例について示した。【００４３】
例えば、図４に示す例では、各転送チャネル＃０〜＃７から出力されるＲｅａｄ  Ａｄｄｒｅｓｓ  Ｖａｌｉｄ＃０〜＃７が同時に「Ｈｉｇｈ」となる。このような場合には、ＤＭＡコントローラ３は、転送チャネル＃０にＶａｌｉｄ  Ｃｈａｎｎｅｌを割当てる。【００４４】
次に、ＤＭＡコントローラ３は、転送チャネル＃０にＶａｌｉｄ  Ｃｈａｎｎｅｌを割当ててから所定の時間が経過したタイミングで、各Ｒｅａｄ  Ａｄｄｒｅｓｓ  Ｖａｌｉｄ  ＣＨ＃０〜＃７を確認する。図４に示す例では、Ｒｅａｄ  Ａｄｄｒｅｓｓ  Ｖａｌｉｄ＃０〜＃７のうち、Ｒｅａｄ  Ａｄｄｒｅｓｓ  Ｖａｌｉｄ  ＣＨ＃１〜＃７が「Ｈｉｇｈ」となっている。このため、ＤＭＡコントローラ３は、転送チャネル＃１〜＃７のうち、前回Ｖａｌｉｄ  Ｃｈａｎｎｅｌを割当てた転送チャネル＃０の次の若番である転送チャネル＃１にＶａｌｉｄ  Ｃｈａｎｎｅｌを割当てる。【００４５】
ここで、Ｖａｌｉｄ  Ｃｈａｎｎｅｌが転送チャネル＃１に割当てられた後に、転送チャネル＃０が１つ目のデータの送信を終了し、２つ目のデータを送信するため、Ｒｅａｄ  Ａｄｄｒｅｓｓ  Ｖａｌｉｄ  ＣＨ＃０を「Ｈｉｇｈ」とする。しかし、優先制御のルールが循環であるので、転送チャネル＃１にＶａｌｉｄ  Ｃｈａｎｎｅｌを割当てた後においては、転送チャネル＃２の優先度が最も高い。このため、ＤＭＡコントローラ３は、転送チャネル＃０、＃２〜＃７のうち、最も優先度が高い転送チャネル＃２にＶａｌｉｄ  Ｃｈａｎｎｅｌを割当てる。【００４６】
このような処理を実行することで、ＤＭＡコントローラ３は、図３に示す例では、Ｖａｌｉｄ  Ｃｈａｎｎｅｌを転送チャネル「＃０」、「＃１」、「＃２」、「＃３」、「＃４」、「＃５」、「＃６」、「＃７」、「＃０」、「＃１」…という順に割当てる。つまり、ＤＭＡコントローラ３は、優先制御のルールが循環である場合には、各転送チャネル＃０〜＃７に対して、Ｖａｌｉｄ  Ｃｈａｎｅｌを順番に割り当てる処理を、各転送チャネル＃０〜＃７が２つのデータを送信するまで反復して行う。【００４７】
次に、図１に戻って、ＨＤＤ１０が記憶する各情報について説明する。動作モード情報１１は、ＤＭＡコントローラ３が実行する優先制御の内容を示す情報である。以下、図５を用いて、動作モード情報１１の一例について説明する。【００４８】
図５は、実施例１に係る動作モード情報の一例について説明するための図である。図５に示す例では、動作モード情報１１には、優先制御のルールを示す値と、転送チャネルの優先度設定を示す値とが格納される。すなわち、動作モード情報１１は、優先制御のルールとして「０」が格納されている場合には、ＤＭＡコントローラ３における優先制御の内容が固定であることを示す。また、動作モード情報１１は、優先制御のルールとして「１」が格納されている場合には、ＤＭＡコントローラ３における優先制御の内容が循環であることを示す。【００４９】
また、動作モード情報１１は、転送チャネルの優先度設定の値が「０」である場合には、番号が若い転送チャネルほど、優先度が高い旨を示す。また、動作モード情報１１は、転送チャネルの優先度設定の値が「１」である場合には、優先度がＤＭＡコントローラ３に依存する旨を示す。【００５０】
図１に戻って、転送情報１２は、ＤＭＡコントローラ３に送信させるデータの宛先と、データの内容と、各転送チャネル＃０〜＃７が転送するデータの数を示す情報である。以下、図６を用いて、転送情報１２の一例について説明する。【００５１】
図６は、実施例１に係る転送情報の一例について説明するための図である。図６に示す例では、転送情報１２には、受信開始アドレスずらしの数値、受信終了アドレスずらしの数値、最小送信データサイズの数値、各転送チャネル＃０〜＃７が転送するデータの数が格納される。【００５２】
ここで、受信開始アドレスずらしとは、ＤＭＡコントローラ３が転送したデータの格納先となるメモリアドレスをずらす量である。後述するように、ＤＭＡコントローラ３は、正常に優先制御を実行した場合には、それぞれ大きさの異なるデータを大きいデータから順に宛先となるメモリアドレスをずらしながら転送する。【００５３】
つまり、受信開始アドレスずらしとは、ＤＭＡコントローラ３が宛先となるメモリアドレスをずらす量を示す。また、受信終了アドレスずらしとは、ＤＭＡコントローラ３がデータを転送する際に、宛先となるメモリアドレスの受信終了アドレスをずらすサイズを示す。また、最小送信データサイズとは、ＤＭＡコントローラ３に送信させるデータのうち、データ量が最も少ないデータのデータ量を示す。また、各転送チャネル＃０〜＃７が送信するデータ数とは、各転送チャネル＃０〜＃７が送信するデータの数を示す。【００５４】
なお、図６に示す例では、転送情報１２には、受信開始アドレスずらしの数値「Δｓ」、受信終了アドレスずらしの数値「Δｅ」、最小送信データサイズの数値「Ｌ」、各転送チャネル＃０〜＃７が転送するデータの数「２」が格納されている。【００５５】
図１に戻って、送信データ１３は、ＤＭＡコントローラ３に送信させるデータである。ここで、図７を用いて、送信データ１３の一例について説明する。なお、図７は、実施例１に係る送信データの一例を説明するための図である。例えば、図７に示すように、ＨＤＤ１は、内容が「５Ａ５Ａ５Ａ…」と続くデータと、内容が「ＦＦＦＦＦＦ…」と続くデータと、内容が「０１０１０１…」と続くデータと、内容が「２２２２２２…」と続くデータとを送信データ１３として記憶する。【００５６】
図１に戻って、比較結果１４は、後述する検証プログラム３０によって行われた評価の結果が格納される。具体的には、比較結果１４には、検証プログラム３０によってＤＭＡコントローラ３の評価が実行させた際の、データリスト２５、エラーリスト２４、受信領域２２に記憶されたデータ、期待値領域２３に記憶されたデータとが格納される。【００５７】
次に、ＲＡＭ２０が有する送信領域２１、受信領域２２、期待値領域２３、エラーリスト２４、データリスト２５について説明する。送信領域２１は、ＤＭＡコントローラ３によって受信領域２２へ転送させるデータを記憶する領域である。受信領域２２は、ＤＭＡコントローラ３によって受信領域２２から転送したデータを記憶する領域である。期待値領域２３とは、検証プログラム３０によって生成させる期待を記憶する領域である。ここで、期待値とは、ＤＭＡコントローラ３が各転送チャネル＃０〜＃７の優先制御を正確に実行した際に、受信領域２２に格納されるデータである。【００５８】
エラーリスト２４は、受信領域２２に格納されたデータと、期待値領域２３に格納されたデータとのうち、一致しないデータが格納されたアドレスを示すエラーアドレスが格納されるリストである。以下、図８を用いて、エラーリスト２４の一例について説明する。図８は、実施例１に係るエラーリストの一例を説明するための図である。図８に示す例では、エラーリスト２４には、エラーアドレス、転送優先順位、転送チャネルの番号、データ番号、送信開始アドレス、受信開始アドレス、送信データサイズが格納される。【００５９】
データリスト２５は、検証プログラム３０が生成するリストであり、ＤＭＡコントローラ３の各転送チャネル＃０〜＃７が転送するデータおよび各転送チャネル＃０〜＃７がデータを送信する順番を示す情報である。【００６０】
次に、検証プログラム３０が有する各部３１〜３８について説明する。なお、検証プログラム３０が有する各部３１〜３８は、ＣＰＵ２によって実行させることにより、その機能を発揮する。【００６１】
データリスト生成部３１は、データリスト２５を生成する。具体的には、データリスト生成部３１は、ＨＤＤ１０が記憶する転送情報１２を参照し、各伝送チャネル＃０〜＃７が転送するデータの数を読み出す。また、データリスト生成部３１は、各転送チャネル＃０〜＃７が転送するデータ数を合計した総データ数（以下、Ｐｔと記載する。）を算出する。そして、データリスト生成部３１は、算出したＰｔ個のデータについての情報を格納するデータリスト２５を確保した領域に生成する。【００６２】
以下、図を用いて、データリスト生成部３１が生成するデータリスト２５の一例について説明する。図９Ａは、実施例１に係るデータリストの一例を説明するための図である。図９Ａに示す例では、データリスト生成部３１は、Ｐｔ個のデータについて、転送優先順位、チャネル番号、データ番号、送信開始アドレス、受信開始アドレス、送信データサイズを示す情報を格納するリストを生成する。【００６３】
ここで、転送優先順位とは、ＤＭＡコントローラ３によって転送される順番を示す番号である。また、チャネル番号とは、ＤＭＡコントローラ３が有する各転送チャネル＃０〜＃７のうち、どの転送チャネルに割当てるかを示す情報、すなわち、各転送チャネル＃０〜＃７を示す番号である。また、データ番号とは、データが割当てられた転送チャネルにおいて、何番目に転送されるデータであるかを示す番号である。また、送信開始アドレスとは、送信領域２１のうち、データが格納された領域の先頭を示すアドレスである。【００６４】
また、受信開始アドレスとは、受信領域２２のうち、ＤＭＡコントローラ３によって転送されたデータを格納する領域の先頭位置を示すアドレスである。送信データサイズとは、データのサイズを示す。【００６５】
図１に戻って、転送領域割付部３２は、ＨＤＤ１０に記憶された転送情報１２を参照し、参照した転送情報１２に基づいて、データ量が異なる複数のデータと、値をずらした複数のアドレスとを生成する。そして、転送領域割付部３２は、データ量が多いほど小さい値のアドレスを割当てるように、生成したデータに生成したアドレスを対応付ける。つまり、転送領域割付部３２は、生成した各データに対して、データ量が多い順に、生成したアドレスを、アドレスの値が小さい順に対応付ける。【００６６】
以下、図９Ｂを用いて、転送領域割付部３２が実行する処理の一例について説明する。図９Ｂは、実施例１に係る転送領域割付部が実行する処理の一例を説明するための第１の図である。まず、転送領域割付部３２は、転送量情報１２を参照し、最小送信データサイズ「Ｌ」、受信開始アドレスずらしの値「Δｓ」、受信終了アドレスずらしの値「Δｅ」、送信開始ベースアドレス「Ｓ」、受信開始ベースアドレス「Ｅ」を読み出す。【００６７】
そして、転送領域割付部３２は、データリスト２５のうち、転送優先順位が「１」〜「Ｐｔ」までのデータについて、送信開始アドレスと、受信開始アドレスと、送信データサイズとの設定を行う。具体的には、転送領域割付部３２は、転送優先順位が「Ｐｔ」のデータについて、送信データサイズに、最小送信データサイズ「Ｌ」を格納する。つまり、転送領域割付部３２は、最も優先順位が低いデータに、送信するデータのうち最もデータ量が少ないデータを割当てる。【００６８】
次に、転送領域割付部３２は、優先順位が「Ｐｔ−１」のデータについて、優先順位が「Ｐｔ」のデータに係る送信データサイズに「Δｓ＋Δｅ」を加算した値を格納する。また、転送領域割付部３２は、優先順位が「Ｐｔ−２」のデータについて、転送優先順位が「Ｐｔ−１」のデータに係る送信データサイズに「Δｓ＋Δｅ」を加算した値を格納する。すなわち、転送領域割付部３２は、転送優先順位が「ｎ」であるデータの送信データサイズとして「Ｌ＋（Δｓ＋Δｅ）×（Ｐｔ−ｎ）」で表される値を割当てる。つまり、転送領域割付部３２は、データ量が大きいデータほど、優先的に送信されるようにデータリスト２５を設定する。【００６９】
続いて、転送領域割付部３２は、転送優先順位１のデータに係る送信開始アドレスに送信開始ベースアドレス「Ｓ」を格納し、転送優先順位１のデータに係る受信開始アドレスに受信開始ベースアドレス「Ｅ」を格納する。次に、転送領域割付部３２は、転送優先順位２のデータに係る送信開始アドレスに、「Ｓ＋Ｌ＋（Δｓ＋Δｅ）×（Ｐｔ−１）」を格納し、受信開始アドレスに「Ｅ＋Δｓ」を格納する。【００７０】
すなわち、転送領域割付部３２は、転送優先順位が「ｎ」であるデータの送信開始アドレスに転送優先順位が「ｎ−１」であるデータの送信開始アドレスに「Ｌ＋（Δｓ＋Δｅ）×（Ｐｔ−ｎ＋１）」を加算した値を格納する。また、転送領域割付部３２は、転送優先順位が「ｎ」であるデータの受信開始アドレスに「Ｅ＋Δｅ×（ｎ−１）」を格納する。【００７１】
また、転送領域割付部３２は、各転送優先順位「１」〜「Ｐｔ」のデータを格納するための送信領域２１と、ＤＭＡコントローラ３によって転送された各データを格納するための受信領域２２を確保する。また、転送領域割付部３２は、期待値を格納するための期待値領域２３を確保する。【００７２】
詳細には、転送領域割付部３２は、「Ｌ×Ｐｔ＋（Δｓ＋Δｅ）×Ｐｔ×（Ｐｔ−１）／２」を算出し、算出したサイズの領域を送信領域２１としてＲＡＭ２０から確保する。また、転送領域割付部３２は、「Ｌ＋（Δｓ＋Δｅ）×（Ｐｔ−１）」を算出し、算出したサイズの領域を受信領域２２としてＲＡＭ２０から確保する。また、転送領域割付部３２は、受信領域２２と同じサイズの領域を期待値領域２３としてＲＡＭ２０から確保する。あわせて、転送領域割付部３２は、送信領域２１の先頭アドレスを「Ｓ」とし、受信領域２２の先頭アドレスを「Ｅ」とする。【００７３】
また、転送領域割付部３２は、ＨＤＤ１０から送信データ１３を読み出し、読み出したデータを確保した送信領域２１にそれぞれ格納する。つまり、転送領域割付部３２は、データ量が段階的に異なる複数のデータを作成し、作成したデータを送信領域２１に格納する。【００７４】
ここで、図９Ｃを用いて、転送領域割付部３２がデータリスト２５に設定する値の一例について説明する。図９Ｃは、実施例１に係る転送領域割付部が実行する処理の一例を説明するための第２の図である。なお図９Ｃに示す例では、「Ｐｔ＝９」である場合のデータリスト２５の一例を示す。【００７５】
例えば、転送領域割付部３２は、最小送信データサイズ「１００」、受信開始アドレスずらしの値「１０」、受信終了アドレスずらしの値「１０」、送信開始ベースアドレス「２０００」、受信開始ベースアドレス「１０００」を読み出す。【００７６】
そして、転送領域割付部３２は、図９Ｃに示すように、転送優先順位１のデータから送信データサイズ「２６０」、「２４０」、「２２０」、「２００」、「１８０」、「１６０」、「１４０」、「１２０」、「１００」を格納する。また、転送領域割付部３２は、転送優先順位１のデータから送信開始アドレス「２０００」、「２２６０」、「２５００」、「２７２０」、「２９２０」、「３１００」、「３２６０」、「３４００」、「３５２０」を格納する。また、転送領域割付部３２は、転送優先順位１のデータから受信開始アドレス「１０００」、「１０１０」、「１０２０」、「１０３０」、「１０４０」、「１０５０」、「１０６０」、「１０７０」、「１０８０」を格納する。【００７７】
図１に戻って、チャネル割付部３３は、転送優先順位が高いデータほど先に転送させるように、各データをＤＭＡコントローラ３が有する各転送チャネル＃０〜＃７に割当てる。つまり、チャネル割付部３３は、データ量が多いデータから順に、割当てられた優先度が高い転送チャネルを示すチャネル番号を対応付ける。詳細には、チャネル割付部３３は、データ量が最も多いデータから順番に、ＤＭＡコントローラ３が実行する優先制御のルールに応じて、チャネル番号を各転送チャネル＃０〜＃７の優先度が高い順に対応付ける。【００７８】
具体的には、チャネル割付部３３は、ＤＭＡコントローラ３が実行する優先制御のルールが循環である場合には、以下の処理を実行する。すなわち、チャネル割付部３３は、データ量が最も多いデータから順番に、各転送チャネル＃０〜＃７に対して割当てられた優先度に従って、各データにチャネル番号を対応付ける。つまり、チャネル割付部３３は、転送チャネル＃０から転送チャネル＃７まで順番に高い優先度が割当てられる場合には、以下のようにチャネル番号を対応付ける。【００７９】
すなわち、チャネル割付部３３は、データ量が最も多いデータから順番に、チャネル番号「１」、「２」、「３」、「４」、「５」、「６」、「７」をデータリスト２５に格納する。また、チャネル割付部３３は、さらにチャネル番号が割当てられていないデータに対して、データ量が多いデータから順に、再度チャネル番号「１」、「２」、「３」、「４」、「５」、「６」、「７」と繰り返し格納する。また、チャネル割付部３３は、同じチャネル番号が対応付けられたデータについて、データ量が多いデータから順番に、データ番号を順番に対応付ける。【００８０】
また、チャネル割付部３３は、ＤＭＡコントローラ３が実行する優先制御のルールが固定である場合には、以下の処理を実行する。すなわち、チャネル割付部３３は、各転送チャネル＃０〜＃７が転送するデータの数を判別する。そして、チャネル割付部３３は、複数のデータを送信する転送チャネルが存在しない場合には、データ量が最も多いデータから順に、チャネル番号を、優先度が高い転送チャネルのチャネル番号から順番に対応付ける。【００８１】
また、チャネル割付部３３は、複数のデータを送信するチャネルが存在する場合には、以下の処理を実行する。すなわち、チャネル割付部３３は、いずれのチャネル番号も対応付けられていないデータのうち、データ量が最も多いデータに対して、最も優先度が高い転送チャネルのチャネル番号を対応付ける。また、チャネル割付部３３は、いずれかの転送チャネルから送信するデータが複数存在する場合には、優先度が最も高い転送チャネルを示すチャネル番号から、各転送チャネル＃０〜＃７に割当てられた優先度の順に、各チャネル番号について以下の処理を実行する。【００８２】
すなわち、チャネル割付部３３は、いずれのデータにも対応付けられていないチャネル番号のうち、優先度が最も高い転送チャネルを示すチャネル番号を、チャネル番号が対応付けられていないデータのうちデータ量が最も大きいデータに対応付ける。また、チャネル割付部３３は、チャネル番号を対応付けたデータからデータ量が多い順に、転送チャネルが送信するデータの数だけ、データに対応付けたチャネル番号と同じチャネル番号を、１つ飛ばしに対応付ける。【００８３】
つまり、チャネル割付部３３は、転送チャネル＃０から転送チャネル＃７まで順に優先度が低くなり、かつ、各転送チャネルが２つのデータを送信する場合には、以下のチャネル番号を各データに対応付ける。すなわち、チャネル割付部３３は、各データに対して、データ量が多い順に、「０」、「１」、「０」、「１」、「２」、「３」、「２」、「３」、「４」、「５」、「４」、「５」、「６」、「７」、「６」、「７」を各データに対応付ける。また、チャネル割付部３３は、同じチャネル番号が対応付けられたデータについて、データ量が多いデータから順番に、データ番号を順番に対応付ける。【００８４】
以下、チャネル割付部３３が実行する詳細な処理について説明する。まず、チャネル割付部３３は、動作モード情報１１を参照し、ＤＭＡコントローラ３の優先制御のルールと転送チャネルの優先度設定とを識別する。そして、チャネル割付部３３は、転送チャネルの優先度設定が「０」の場合には、転送チャネル＃０〜＃７について、番号が小さいほど優先度が高いと判別する。また、チャネル割付部３３は、転送チャネルの優先度設定が「１」の場合には、ＤＭＡコントローラ３から各転送チャネル＃０〜＃７に対して割当てられた優先度を取得する。【００８５】
また、チャネル割付部３３は、優先制御のルールが「０」である場合には、ＤＭＡコントローラ３における優先制御が固定であると判別する。また、チャネル割付部３３は、優先制御のルールが「１」である場合には、ＤＭＡコントローラ３における優先制御が循環であると判別する。【００８６】
また、チャネル割付部３３は、優先制御のルールが固定であると判別した場合には、各転送チャネル＃０〜＃７について、割当てられた優先度が高い順に、以下の処理を実行する。まず、チャネル割付部３３は、データに割当てしていないチャネル番号のうち、最も優先度が高い転送チャネルを示すチャネル番号を選択する。そして、チャネル割付部３３は、データリスト２５からチャネル番号が割当てられていないデータをのうち、転送優先順位が最も高いデータを検索する。そして、チャネル割付部３３は、選択したチャネル番号を検索したデータに係るチャネル番号に格納し、選択したチャネル番号に係る転送チャネルが送信するデータが１つしかない場合には、次に優先度が高い転送チャネルのチャネル番号を割付ける処理を実行する。【００８７】
一方、チャネル割付部３３は、選択したチャネル番号に係る転送チャネルが送信するデータが複数存在する場合には、以下の処理を実行する。まず、チャネル割付部３３は、選択したチャネル番号を割付ける数、すなわち、選択したチャネル番号に係る転送チャネルが送信するデータの数「Ｐｉ」を判別する。また、チャネル割付け部３３は、全データの数から、チャネル番号がすでに割付けられているデータの数と割付け中のチャネル番号に係る転送チャネルが送信するデータの数とを減算した値「Ｐｕ」を判別する。【００８８】
そして、チャネル割付部３３は、「Ｐｕ＝０」の場合には、まだチャネル番号が割付けられていないデータに対して、データ量が多い方から順番に、選択したチャネル番号と、データ番号とを順次割付ける。また、チャネル割付部３３は、「Ｐｉ」が「Ｐｕ」よりも多い場合には、以下の処理を実行する。すなわち、チャネル割付部３３は、チャネル番号が割付けられていないデータのうち、データ量が多い方から順番に、１つずつ間隔をあけて、選択したチャネル番号とデータ番号とを順次割付ける。【００８９】
また、チャネル割付部３３は、優先制御のルールが循環であると判別した場合には、チャネル番号が割当てられていないデータについて、データ量が多いものから順番に、各チャネル番号を、各転送チャネル＃０〜＃７に割当てられた優先度の順に割付ける。また、チャネル割付部３３は、全データに対して、チャネル番号が割当てられるまで、データ量が多いものから順番に、各チャネル番号を、各転送チャネル＃０〜＃７に割当てられた優先度の順に割付ける。【００９０】
このような処理を実行することによって、チャネル割付部３３は、生成したデータのうち、データ量が大きいものから順番に転送させるデータリスト２５を設定することができる。なお、ＤＭＡコントローラ３における優先制御が特殊な場合にも、データ量が大きいデータから順番に転送させるデータリスト２５を設定することができる。例えば、チャネル割付部３３は、ＤＭＡコントローラ３が複数の転送チャネルを有する場合には、各転送チャネルにおいてどのような順番でデータが送信されるかを判別する。そして、チャネル割付部３３は、データ量が多いデータから順番に、判別した順番に従って、チャネル番号を割当てればよい。【００９１】
次に、図１０、図１１を用いて、チャネル割付部３３が割付けるチャネル番号の一例について説明する。まず、図１０を用いて、優先制御が固定の場合に、チャネル割付部３３が割付けるチャネル番号について説明する。図１０は、優先制御が固定の場合にチャネル割付部が割付けるチャネル番号の一例を説明するための図である。【００９２】
なお、図１０に示す例では、ＤＭＡコントローラ３は、５つの転送チャネル＃０〜＃４を有するものとし、転送チャネル＃４、転送チャネル＃３、転送チャネル＃２、転送チャネル＃１、転送チャネル＃０の順で優先度が高くなるものとする。また、図１０に示す例では、転送チャネル＃０〜＃３がそれぞれ２つのデータを転送するものとし、転送チャネル＃４が１つのデータを転送するものとする。【００９３】
このような場合には、チャネル割付部３３は、チャネル番号「０」について、上述した処理を実行する。すなわち、図１０に示すように、チャネル割付部３３は、データ量が最も大きいデータである転送優先順位１のデータにチャネル番号「０」、データ番号「１」を割付る。また、チャネル割付部３３は、転送優先順位１のデータから１つとばした転送順位３のデータにチャネル番号「０」、データ番号「２」を割付ける。【００９４】
次に、チャネル割付部３３は、チャネル番号「１」について、上述した処理を実行し、図１０に示すように、転送優先順位２のデータにチャネル番号「１」、データ番号「１」を割付し、転送優先順位４のデータにチャネル番号「１」、データ番号「２」を割付ける。次に、チャネル割付部３３は、チャネル番号「２」について、上述した処理を実行し、図１０に示すように、転送優先順位５のデータにチャネル番号「２」、データ番号「１」を割付し、転送優先順位７のデータにチャネル番号「２」、データ番号「２」を割付ける。【００９５】
次に、チャネル割付部３３は、チャネル番号「３」について、上述した処理を実行し、図１０に示すように、転送優先順位６のデータにチャネル番号「３」、データ番号「１」を割付し、転送優先順位８のデータにチャネル番号「３」、データ番号「２」を割付ける。次に、チャネル割付部３３は、チャネル番号「４」について、上述した処理を実行し、図１０に示すように、転送優先順位９のデータにチャネル番号「４」、データ番号「１」を割付ける。【００９６】
次に、図１１を用いて、優先制御が循環の場合に、チャネル割付部３３が割付けるチャネル番号について説明する。図１１は、優先制御が循環の場合にチャネル割付部が割付けるチャネル番号の一例を説明するための図である。【００９７】
なお、図１１に示す例では、図１０に示す例と同様に、チャネル割付部３３は、５つの転送チャネル＃０〜＃４を有するものとする。また、チャネル割付部３３は、最も優先度が高い転送チャネルを、転送チャネル＃０、転送チャネル＃１、転送チャネル＃２、転送チャネル＃３、転送チャネル＃４の順で変更するものとする。すなわち、チャネル割付部３３は、転送チャネル＃０〜＃４のうち、最も優先度が高い転送チャネルをラウンドロビンで選択するものとする。【００９８】
このような場合には、チャネル割付部３３は、各データのうち、データ量が最も多いデータから順に、転送チャネル＃０〜＃４のチャネル番号を順番に割付ける処理を反復して実行する。このため、図１１に示すように、チャネル割付部３３は、転送優先順位が１〜５のデータに対して、チャネル番号「０」〜「４」を順番に割付けるとともに、データ番号「１」を割付ける。また、チャネル割付部３３は、転送優先順位が６〜９のデータに対して、チャネル番号「０」〜「３」を順番に割付けるとともに、データ番号「２」を割付ける。【００９９】
図１に戻って、期待値生成部３４は、データリスト生成部３１、転送領域割付部３２、チャネル割付部３３によって生成されたデータリスト２５を用いて、ＤＭＡコントローラ３が有する各転送チャネル＃０〜＃７の転送結果の予測である期待値を生成する。具体的には、期待値生成部３４は、ＨＤＤ１０の送信データ１３から各データを取得し、データリスト２５に格納された各データの送信開始アドレス、受信開始アドレス、送信データサイズに従って、ＤＭＡコントローラ３による転送結果の期待値を生成する。そして、期待値生成部３４は、生成した期待値を、期待値領域２３に格納する。【０１００】
図１２は、期待値の一例を説明するための図である。なお、図１２に示す例では、転送優先順位１〜５までのデータをＤＭＡコントローラ３が転送した際の期待値を示す。また、図１２に示す例では、「５Ａ」が連続したデータを転送優先順位１のデータとし、「ＦＦ」が連続したデータを転送優先順位２のデータとし、「０１」が連続したデータを転送優先順位３のデータとする。また、「Ａ５」が連続したデータを転送優先順位４のデータとし、「２２」が連続したデータを転送優先順位５のデータとする。【０１０１】
また、図１２に示す例では、送信開始アドレスずらし、および、送信終了アドレスずらしを「０ｘ２０」とした。このような場合には、期待値生成部３４は、図１２に示すように、各転送優先順位１〜５の中心位置をそろえ、転送優先順位１のデータの上に、転送優先順位２のデータが上書きされた期待値を生成する。以下同様に、期待値生成部３４は、転送優先順位２を転送優先順位３のデータで上書きし、転送優先順位３のデータを転送優先順位４のデータで上書きし、転送優先順位４のデータを転送優先順位５のデータで上書きした期待値を生成する。なお、転送優先順位１〜５のデータは、段階的にデータ量が少なくなるため、より優先順位が低いデータが上書きされた場合にも、データ全てが消えてしまうことが無い。【０１０２】
図１に戻って、デスクリプタ設定部３５は、データリスト２５に応じて、ＤＭＡコントローラ３が有する各転送チャネルごとのデスクリプタを生成する。以下、図を用いて説明する。図１３は、デスクリプタの一例を説明するための図である。デスクリプタ設定部３５は、データリスト２５に応じて、各転送チャネルごとに、転送するデータの順番、送信開始アドレス、受信開始アドレス、送信データサイズ等を判別する。そして、デスクリプタ設定部３５は、各データごとに、判別した各情報を格納したデスクリプタを生成し、生成したデスクリプタを各転送チャネルごとにチェインニングする。【０１０３】
図１に戻って、ＤＭＡ起動部３６は、デスクリプタ設定部３５がデスクリプタを生成した場合には、受信領域２２とエラーリスト２４とを初期化する。そして、ＤＭＡ起動部３６は、デスクリプタ設定部３５が生成したデスクリプタをＤＭＡコントローラ３へ送信する。つまり、ＤＭＡ起動部３６は、ＤＭＡコントローラ３が有する各転送チャネル＃０〜＃７に、デスクリプタに応じたデータの転送を指示する。【０１０４】
データ比較部３７は、ＤＭＡコントローラ３が有する各転送チャネル＃０〜＃７の動作が終了した場合には、受信領域２２に格納されたデータと期待値領域２３に格納された期待値とが一致するか否かを比較する。そして、データ比較部３７は、受信領域２２に格納されたデータと期待値領域２３に格納されたデータとが一致しないと判別した場合には、以下の処理を実行する。すなわち、データ比較部３７は、一致しないデータが格納されたアドレスであるエラーアドレスと、一致しないアドレスの件数であるエラー件数とをエラーリスト２４に格納する。【０１０５】
例えば、データ比較部３７は、期待値領域２３に格納された期待値と、受信領域２２に格納されたデータとを、それぞれ先頭から４バイトずつを読み出し、読み出した各データが一致するか否かを判別する。そして、データ比較部３７は、読み出した各データを比較し、各データが一致した場合には、読み出した各データの次の４バイトを新たに読み出し、読み出したデータが一致するか否か再度判別する。一方、データ比較部３７は、読み出した各データが一致しなかった場合には、一致しないデータが格納されたアドレスであるエラーアドレスと、一致しないアドレスの件数であるエラー件数とをエラーリスト２４に格納する。【０１０６】
ここで、図１４は、優先制御が正確に行われなかった際に受信領域に格納されるデータの一例を説明するための図である。なお、図１４に示す例では、ＤＭＡコントローラ３は、図１２に示す期待値を生成したデータリストに従って生成したデスクリプタに従って、データの転送を行ったものとする。しかし、図１４に示す例では、優先制御が正確に行われなかったため、図１２と比較すると、「０ｘ１０００００２０」番地のデータが「０ｘＦＦＦＦＦＦＦＦ」となるところ、「０ｘ５Ａ５Ａ５Ａ５Ａ」となっている。このため、データ比較部３７は、エラーアドレス「０ｘ１０００００２０」、アドレス件数「１」、エラー件数「１」とをエラーリスト２４に格納する。【０１０７】
比較結果部３８は、エラーリスト２４からエラーアドレスを取得する。そして、比較結果部３８は、データリスト２５を参照し、取得したエラーアドレスに係るデータの転送優先順位、チャネル番号、データ番号、送信開始アドレス、受信開始アドレス、送信データサイズを取得する。そして、比較結果部３８は、取得した各情報をエラーリスト２４に格納する。【０１０８】
また、比較結果部３８は、受信領域２２のデータ、期待値領域２３のデータ、エラーアドレス、エラーリスト２４の内容をＨＤＤ１０に比較結果１４として格納する。一方、比較結果部３８は、エラーが検出されなかった場合、つまり、受信領域２２のデータと期待値領域２３のデータとが一致した場合には、受信領域２２のデータと期待値領域２３のデータとを比較結果１４としてＨＤＤ１０に格納する。【０１０９】
次に、図１５を用いて、デスプリクタを受信したＤＭＡコントローラ３がデータを送信する処理について説明する。図１５は、ＤＭＡコントローラがデスプリクタに従ってデータを送信する処理の一例を説明するための図である。なお、図１５に示す例では、ＤＭＡコントローラ３が複数の転送チャネル＃０〜＃４を有するものとし、転送チャネル＃０〜＃３にそれぞれ２つのデータが割当てられ、転送チャネル＃４に１つのデータが割当てられたものとする。また、ＤＭＡコントローラ３が実行する優先制御のルールは循環（Ｒｏｔａｔｅｄ）であるものとする。また、図１５に示す例では、チャネル番号「ｎ」、データ番号「ｍ」が割付けられているデータをデータ（ｎ−ｍ）と記載する。【０１１０】
このような場合には、デスクリプタにより、各転送チャネル＃０〜＃４にデータの転送が指示され、図１５中（Ｃ）に示すように、転送チャネル＃０から順番に、Ｒｅａｄ  Ａｄｄｒｅｓｓ  Ｖａｌｉｄ  ＣＨ＃０〜＃４が「Ｈｉｇｈ」となる。そして、ＤＭＡコントローラ３は、図１５中（Ｄ）に示すタイミングで、最も優先度が高い転送チャネル＃０にＶａｌｉｄ  Ｃｈａｎｎｅｌを割当てる。このため、転送チャネル＃０は、チャネル番号が「０」でデータ番号が「１」のデータ（０−１）の転送を行い、図１５中（Ｅ）のタイミングで転送を終了するとともに、Ｒｅａｄ  Ａｄｄｒｅｓｓ  Ｖａｌｉｄ  ＣＨ＃０を「Ｌｏｗ」にする。【０１１１】
また、ＤＭＡコントローラ３は、転送チャネル＃０によるデータ（０−１）の転送終了後、転送チャネル＃１にＶａｌｉｄ  Ｃｈａｎｎｅｌを割り当て、チャネル番号が「１」、データ番号が「１」のデータ（１−１）の転送を実行させる。ここで、転送チャネル＃０は、図１５中（Ｆ）に示すように、チャネル番号が「０」でデータ番号が「２」のデータ（０−２）の転送を行うべく、Ｒｅａｄ  Ａｄｄｒｅｓｓ  Ｖａｌｉｄ＃０を「Ｈｉｇｈ」とする。【０１１２】
このため、ＤＭＡコントローラ３は、転送チャネル＃１によるデータ（１−１）の転送後、Ｖａｌｉｄ  Ｃｈａｎｎｅｌを転送チャネル＃０に割り当て、データ（０−２）の転送を行わせる。転送チャネル＃０は、Ｖａｌｉｄ  Ｃｈａｎｎｅｌを割当てられると、データ（０−２）の転送を実行し、図１５中（Ｇ）に示すタイミングでデータの転送を終了する。このため、転送チャネル＃０は、Ｒｅａｄ  Ａｄｄｒｅｓｓ  Ｖａｌｉｄ  ＣＨ＃０を「Ｌｏｗ」にする。このような処理を繰り返すことにより、図１５に示す例では、ＤＭＡコントローラ３は、各データを、データ（０−１）、（１−１）、（０−２）、（１−２）、（２−１）、（３−１）、（２−２）、（３−２）、（４−１）の順に転送することとなる。【０１１３】
図１６は、受信領域に記憶されるデータの一例を説明するための図である。なお、図１６に示す例は、ＤＭＡコントローラ３が図１５に示す順にデータを転送した際に、受信領域２２に格納されるデータの一例を示した。具体的には、図１６には、ＤＭＡコントローラ３が転送するデータについて、データの量とデータの受信領域とを転送される順に上から順に示した。【０１１４】
すなわち、ＤＭＡコントローラ３は、受信領域２２に対して、各データ（０−１）〜（４−１）のうち、最も大きいデータ（０−１）を最初に格納する。また、ＤＭＡコントローラ３は、データ（０−１）を格納した領域からずらした領域に、２番目に大きいデータ（１−１）をデータ（０−１）に上書きするように格納する。以下、ＤＭＡコントローラ３は、同様の処理を、データ量が大きい順に繰り返す。すなわち、受信領域２２には、各データ（０−１）〜（４−１）が、先頭位置をずらしながら、データ量が大きい順に格納されることとなる。【０１１５】
このため、図１６に示すように、受信領域２２には、段階的に重なったデータ（０−１）〜（４−１）が格納されることとなる。このように大きいデータから順に先頭位置をずらしながら転送した場合には、いずれかのデータがロストした場合、若しくは、優先制御が正確に行われずにデータの送信順序がずれた場合には、図１６に示すような段階的に重なったデータを得ることができない。このため、検証プログラム３０は、ＤＭＡコントローラ３に、複数のデータをデータ量が大きい順に先頭位置をずらしながら受信領域２２に転送させ、受信領域２２に転送されたデータを確認することで、ＤＭＡコントローラ３の優先制御を評価することができる。【０１１６】
また、図１６に示すように、各データにおけるデータ量の差分よりも少ない量だけずらしたアドレスに、各データを格納することによって、上書きするデータが上書きされるデータの格納領域内に収まることとなる。このため、検証プログラム３０は、データのロストや優先制御の成否を受信領域２２に転送されたデータから容易に確認することができる。【０１１７】
次に、図１７を用いて、送信領域２１に格納されるデータと、各転送チャネル＃０〜＃７のデスプリクタと、受信領域２２に格納されるデータとの対応について説明する。図１７は、データとデスプリクタと受信領域との対応を説明するための図である。図１７に示す例では、転送チャネル＃０のデータ１のデスプリクタは、以下の情報を示す。すなわち、デスプリクタは、データ量が最も多いデータが格納された送信領域２１のアドレスを送信開始アドレスとして、受信領域２２にデータを格納するアドレスを受信開始アドレスとして、データ量が最も多いデータのデータ量を送信データサイズとして示す。【０１１８】
また、デスプリクタ１とチェインニングされたデータ２のデスプリクタは、３番目にデータ量が多いデータに係る送信開始アドレス、受信開始アドレス、データサイズを示す。以下、転送チャネル＃０には、転送チャネル＃０が転送する全てのデータについてチェインニングされたデスプリクタが割当てられる。また、他の転送チャネル＃１〜＃７に対しても、送信する全てのデータについて、各転送チャネル＃１〜＃７が個別に転送を行う順番でチェインニングされたデスプリクタが割当てられる。【０１１９】
次に、図１８を用いて、検証プログラム３０によって情報処理装置１が実行する処理の流れの一例を説明する。図１８は、実施例１に係る情報処理装置が実行する処理の流れの一例を説明するためのフローチャートである。【０１２０】
まず、情報処理装置１は、転送情報１２を用いて、データリストを生成するデータリスト生成処理を実行する（ステップＳ１０１）。次に、情報処理装置１は、生成したデータリストに送信開始アドレス、受信開始アドレス、送信データサイズを充填するとともに、送信するデータを生成する転送領域割付処理を実行する（ステップＳ１０２）。【０１２１】
次に、情報処理装置１は、チャネル割付処理を実行する（ステップＳ１０３〜ステップＳ１０６）。例えば、情報処理装置１は、動作モード情報１１を用いて、ＤＭＡコントローラ３の優先制御のルールを判別し、判別した優先制御のルールに応じて、各転送チャネルに割当てられた優先度を判別する優先度付け処理を実行する（ステップＳ１０３）。次に、情報処理装置１は、優先制御のルールが固定であるか否かを判別する（ステップＳ１０４）。【０１２２】
そして、情報処理装置１は、優先制御のルールが固定であると判別した場合には（ステップＳ１０４肯定）、ルール固定でのチャネル割付処理を実行する（ステップＳ１０５）。つまり、情報処理装置１は、データリスト２５のチャネル番号を、優先度が高い順に、データ量が多いほうから順に１つ飛ばして割付ける。また、情報処理装置１は、優先制御のルールが固定ではないと判別した場合には（ステップＳ１０４否定）、ルール循環でのチャネル割付処理を実行する（ステップＳ１０６）。つまり、情報処理装置１は、データリスト２５のチャネル番号を、優先度が高い転送チャネルのチャネル番号から順番に、データ量が多いデータから順に割付ける処理を、全てのデータにチャネル番号を割当てるまで繰り返し実行する。【０１２３】
次に、情報処理装置１は、期待値を生成し、生成した期待値を期待値領域２３に格納する期待値生成処理を実行する（ステップＳ１０７）。次に、情報処理装置１は、データリスト２５を用いて、デスプリクタを生成するデスプリクタ設定処理を実行する（ステップＳ１０８）。そして、情報処理装置１は、ＤＭＡコントローラ３にデスプリクタを送信することで、ＤＭＡコントローラ３にデータを転送させるＤＭＡ起動処理を実行する（ステップＳ１０９）。その後、情報処理装置１は、ＤＭＡコントローラ３がデスプリクタに従って、全転送チャネル＃０〜＃７がデータを転送したか否かを判別する（ステップＳ１１０）。【０１２４】
また、情報処理装置１は、全データの転送が終了していないと判別した場合には（ステップＳ１１０否定）、一定時間経過後に再度全データを転送したか否かを判別する（ステップＳ１１０）。また、情報処理装置１は、全データの転送が終了したと判別した場合には（ステップＳ１０１肯定）、受信領域２２に格納されたデータと期待値領域２３に格納された期待値とを比較するデータ比較処理を実行する（ステップＳ１１１）。【０１２５】
ここで、情報処理装置１は、受信領域２２に格納されたデータと期待値領域２３に格納された期待値とが一致するか否か、すなわち、エラーが検出されたか否かを判別する（ステップＳ１１２）。そして、情報処理装置１は、エラーが検出された場合には（ステップＳ１１２肯定）、エラーリスト２４を作成するエラーリスト作成処理を実行する（ステップＳ１１３）。一方、情報処理装置１は、エラーが検証されなかった場合には（ステップＳ１１２否定）、エラーリスト作成処理をスキップする。【０１２６】
次に、情報処理装置１は、エラーリスト２４の内容、送信領域２１に格納されたデータ、期待値領域２３に格納された期待値を比較結果１４としてＨＤＤ１０に格納する比較結果処理を実行する（ステップＳ１１４）。その後、情報処理装置１は、処理を終了する。【０１２７】
［実施例１の効果］
上述したように、検証プログラム３０は、データ量が異なる複数のデータと、値をずらした複数のアドレスとを生成する。また、検証プログラム３０は、データ量が多い順に、生成した複数のアドレスのうち値が小さいアドレスから順に対応付ける。また、検証プログラム３０は、データ量が多い順に、割当てられた優先度が高い転送装置の転送情報から優先度の順に対応付ける。このため、検証プログラム３０は、ＤＭＡコントローラ３の各転送チャネル＃０〜＃７間における優先制御の実行を検証することができる。【０１２８】
また、検証プログラム３０は、ロジックアナライザーを用いずとも、プログラムを実機上で実行するだけで、優先制御が正確に行われたか否かを容易に検証することができる。また、検証プログラム３０は、量産試験等にも適用することができる。また、検証プログラム３０は、転送する各データの送信先アドレスとデータサイズとをデータリスト２５に記憶しておくので、受信領域２２に格納されたデータから、データのロストを検出することができる。【０１２９】
また、検証プログラム３０は、各伝送チャネル＃０〜＃７における優先制御のルールを判別する。そして、検証プログラム３０は、判別したルールに基づいて、各転送チャネル＃０〜＃７の優先順位を判別し、判別した優先順位に応じて、各データに各転送チャネル＃０〜＃７のチャネル番号を割当てる。このため、検証プログラム３０は、ＤＭＡコントローラ３の優先度によらず、ＤＭＡコントローラ３が有する各転送チャネル＃０〜＃７における優先制御の実行を検証することができる。【０１３０】
また、検証プログラム３０は、優先制御のルールが固定である場合には、いずれのデータにも対応付けられていないチャネル番号のうち、優先度が最も高い転送装置のチャネル番号から順に、以下の処理を実行する。すなわち、情報処理装置１は、チャネル番号が対応付けられていないデータのうち、最もデータ量が多いデータから順に、１つ飛ばしで、チャネル番号が示す転送チャネルが送信するデータの数だけ、チャネル番号を対応付ける。【０１３１】
このため、検証プログラム３０は、優先制御のルールが固定である場合にも、データ量が多いデータから順に、各伝送チャネル＃０〜＃７にデータを送信させるデスプリクタを生成できる。この結果、検証プログラム３０は、各転送チャネル間の優先制御のルールが固定である場合にも、適切な優先制御の実行を検証することができる。【０１３２】
また、検証プログラム３０は、優先制御のルールが循環である場合には、データ量の多いデータから順に、各伝送チャネル＃０〜＃７に割当てられた優先度の順でチャネル番号を対応付ける処理を繰り返し実行する。このため検証プログラム３０は、各転送チャネル間の優先制御のルールが循環である場合にも、適切な優先制御の実行を評価することができる。【０１３３】
また、検証プログラム３０は、段階的に異なる値のアドレスを生成する際に、段階的に生成するデータにおけるデータ量の差分よりも少ない差分を有するアドレスを生成する。このため、検証プログラム３０は、受信領域２２に格納された各データによって、直前に格納されたデータの両端以外が上書きするように、各データの転送を行わせることができる。この結果、検証プログラム３０は、受信領域２２に格納されたデータに基づいて、容易に評価できる。【０１３４】
また、検証プログラム３０は、データリスト２５に基づいて、期待値を予め生成し、生成した期待値と転送結果とが一致するか否かを判別し、期待値と転送結果とが一致すると判別した場合には、優先制御が正確に行われたと評価する。このため、検証プログラム３０は、ＤＭＡコントローラ３が有する各伝送チャネル＃０〜＃７の優先制御の実行を評価することができる。
【実施例２】
【０１３５】
これまで本発明の実施例について説明したが実施例は、上述した実施例以外にも様々な異なる形態にて実施されてよいものである。そこで、以下では実施例２として本発明に含まれる他の実施例を説明する。【０１３６】
（１）転送チャネルの数について
上述したＤＭＡコントローラ３は、８つの転送チャネル＃０〜＃７を有していた。しかし、実施例は、これに限定されるものではなく、ＤＭＡコントローラ３は、任意の数の転送チャネル＃０〜＃７を有してもよい。すなわち、検証プログラム３０は、評価対象となる転送装置の数によらず、転送装置間の優先制御の実行を評価できる。【０１３７】
（２）転送装置について
上述した実施例１においては、複数の転送チャネル＃０〜＃７を有するＤＭＡコントローラ３における優先制御が正確に行われたか否かを評価する検証プログラム３０について説明した。しかし、実施例は、これに限定させるものではなく、検証プログラム３０は、１つの装置が有する複数のチャネル間における優先制御のみならず、複数の装置間における優先制御を評価することができる。すなわち、検証プログラム３０は、複数の転送装置間において優先制御が実行されている場合には、任意の装置間における優先制御の実行を評価できる。【０１３８】
（３）デスプリクタについて
上述した検証プログラム３０は、データリスト２５を生成し、生成したデータリスト２５に基づいてデスプリクタを生成し、生成したデスプリクタを用いて、各転送チャネル＃０〜＃７にデータの転送を実行させた。しかし、実施例はこれに限定させるものではない。例えば、検証プログラム３０は、パケットを送信する複数の転送装置間における優先制御を評価する場合には、以下の処理を行うこととしてもよい。すなわち、検証プログラム３０は、パケット送信表を生成し、生成したパケット送信表に基づいて、各転送装置にデータの割り当てを行い、各転送装置にパケットの送信を行わせることとしてもよい。【０１３９】
すなわち、検証プログラム３０は、各転送装置間における優先順位に基づいて、各転送装置がデータを送信する順番を識別し、識別した順番を用いて、データ量が異なる複数のデータについて、データ量が多いデータから順に送信させることができればよい。実施例１において例示したデータリスト２５の値は、一例であり、検証プログラム３０は、チャネル番号、データ番号、送信開始アドレス、受信開始アドレス、送信データサイズについて任意の値を設定することができる。【０１４０】
（４）送信するデータについて
上述した検証プログラム３０は、ＨＤＤ１０に記憶された送信データ１３から転送させるデータを生成した。しかし、実施例は、これに限定されるものではない。例えば、転送するデータのテストパターンを示す情報を転送情報１２に予め格納する。そして、転送領域割付部３２は、転送情報１２を閲覧し、テストパターンを示す情報がインクリメントデータを示す場合には、転送する各データとしてインクリメントデータを生成することとしてもよい。また、転送領域割付部３２は、テストパターンを示す情報がランダムデータを示す場合には、転送する各データとしてランダムデータを生成することとしてもよい。【０１４１】
なお、検証プログラム３０は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。このプログラムは、インターネットなどのネットワークを介して配布することができる。また、このプログラムは、ハードディスク、フレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ（Compact  Disc  Read  Only  Memory）、ＭＯ（Magneto  Optical  Disc）、ＤＶＤ（Digital  Versatile  Disc）などのコンピュータで読取可能な記録媒体に記録される。また、このプログラムは、コンピュータによって記録媒体から読み出されることによって実行することもできる。
【符号の説明】
【０１４２】
１  情報処理装置
２  ＣＰＵ
３  ＤＭＡコントローラ
４  バス
１０  ＨＤＤ
１１  動作モード情報
１２  転送情報
１３  送信データ
１４  比較結果
２０  ＲＡＭ
２１  送信領域
２２  受信領域
２３  期待値領域
２４  エラーリスト
２５  データリスト
３０  検証プログラム
３１  データリスト生成部
３２  転送領域割付部
３３  チャネル割付部
３４  期待値生成部
３５  デスクリプタ設定部
３６  ＤＭＡ起動部
３７  データ比較部
３８  比較結果部
【図１】
2013014776.tif 000003
【図２】
2013014776.tif 000004
【図３】
2013014776.tif 000005
【図４】
2013014776.tif 000006
【図５】
2013014776.tif 000007
【図６】
2013014776.tif 000008
【図７】
2013014776.tif 000009
【図８】
2013014776.tif 000010
【図９Ａ】
2013014776.tif 000011
【図９Ｂ】
2013014776.tif 000012
【図９Ｃ】
2013014776.tif 000013
【図１０】
2013014776.tif 000014
【図１１】
2013014776.tif 000015
【図１２】
2013014776.tif 000016
【図１３】
2013014776.tif 000017
【図１４】
2013014776.tif 000018
【図１５】
2013014776.tif 000019
【図１６】
2013014776.tif 000020
【図１７】
2013014776.tif 000021
【図１８】
2013014776.tif 000022
【図１９】
2013014776.tif 000023
【図２０】
2013014776.tif 000024
【図２１】
2013014776.tif 000025
【国際調査報告】
2013014776.tif 000026
2013014776.tif 000027