(57)【要約】    【課題】  ソフトウェア開発の初期の段階で起動順序の設定間違いを発見することを可能にする。    【解決手段】  それぞれがレジスタを内蔵する複数の機能モジュール（６，７，９，１０）を備えた情報処理装置において、各レジスタに対して、対応の機能モジュールを起動するために必要な情報をそれぞれ設定する際の所望の設定順序を表す期待値をレジスタ設定順序監視装置２内の記憶装置に格納し、レジスタ設定順序監視装置２は、バスアクセスを監視し、該バスアクセス中に含まれる各レジスタに対する設定順序情報を、記憶装置に格納されている期待値と比較し、この比較の結果、前記設定順序情報が前記期待値に一致しない場合、エラー通知信号をＣＰＵ１へ出力する。【選択図】      図１
2006133969.tif 000002
【特許請求の範囲】
【請求項１】
それぞれがレジスタを内蔵する複数の機能モジュールを備えた情報処理装置において、
前記各レジスタに対して、対応の機能モジュールを起動するために必要な情報をそれぞれ設定する際の所望の設定順序を表す期待値を格納する第１の格納手段と、
バスアクセスを監視し、該バスアクセス中に含まれる前記各レジスタに対する設定順序情報を、前記第１の格納手段に格納されている期待値と比較する第１の比較手段と、
前記第１の比較手段による比較の結果、前記設定順序情報が前記期待値に一致しない場合、第１のエラー通知信号を出力する第１のエラー出力手段と
を有することを特徴とする情報処理装置。
【請求項２】
前記第１の格納手段は、ソフトウェアによって書き換えが可能な記憶媒体によって構成され、前記期待値を変更することが可能であることを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記第１の格納手段は、各レジスタが属するグループを示すグループ情報も格納し、
前記第１の比較手段および前記第１のエラー出力手段は、前記第１の格納手段に格納されたグループ情報を参照して、同一グループに属するレジスタだけを対象にして動作することを特徴とする請求項１記載の情報処理装置。
【請求項４】
前記各レジスタに対して前記設定を行う各タイミングの時間間隔の所望の下限値を格納する第２の格納手段と、
前記各レジスタに対して前記設定を行う各タイミングの時間間隔を検出する検出手段と、
前記検出手段によって検出された時間間隔を前記第２の格納手段に格納されている所望の下限値と比較する第２の比較手段と、
前記第２の比較手段による比較の結果、前記時間間隔が前記所望の下限値よりも小さい場合、第２のエラー通知信号を出力する第２のエラー出力手段と
を更に有することを特徴とする請求項１記載の情報処理装置。
【請求項５】
前記第２の格納手段は、ソフトウェアによって書き換えが可能な記憶媒体によって構成され、前記所望の下限値を変更することが可能であることを特徴とする請求項４記載の情報処理装置。
【請求項６】
前記第２の格納手段は、各レジスタが属するグループを示すグループ情報も格納し、
前記検出手段、前記第２の比較手段、および前記第２のエラー出力手段は、前記第２の格納手段に格納されたグループ情報を参照して、同一グループに属するレジスタだけを対象にして動作することを特徴とする請求項４記載の情報処理装置。
【請求項７】
前記第２の格納手段は、前記設定が行われるべきレジスタを特定するためのレジスタ特定符号も格納することを特徴とする請求項４記載の情報処理装置。
【請求項８】
それぞれがレジスタを内蔵する複数の機能モジュールを備えた情報処理装置に適用される起動エラー検出方法において、
前記各レジスタに対して、対応の機能モジュールを起動するために必要な情報をそれぞれ設定する際の所望の設定順序を表す期待値を第１の記憶装置に格納する第１の格納ステップと、
バスアクセスを監視し、該バスアクセス中に含まれる前記各レジスタに対する設定順序情報を、前記第１の記憶装置に格納されている期待値と比較する第１の比較ステップと、
前記第１の比較ステップによる比較の結果、前記設定順序情報が前記期待値に一致しない場合、第１のエラー通知信号を出力する第１のエラー出力ステップと
を有することを特徴とする起動エラー検出方法。
【請求項９】
前記第１の格納ステップでは、各レジスタが属するグループを示すグループ情報も前記第１の記憶装置に格納し、
前記第１の比較ステップおよび前記第１のエラー出力ステップでは、前記第１の記憶装置に格納されたグループ情報を参照して、同一グループに属するレジスタだけを対象にして処理を行うことを特徴とする請求項８記載の起動エラー検出方法。
【請求項１０】
前記各レジスタに対して前記設定を行う各タイミングの時間間隔の所望の下限値を第２の記憶装置に格納する第２の格納ステップと、
前記各レジスタに対して前記設定を行う各タイミングの時間間隔を検出する検出ステップと、
前記検出ステップによって検出された時間間隔を前記第２の記憶装置に格納されている所望の下限値と比較する第２の比較ステップと、
前記第２の比較ステップによる比較の結果、前記時間間隔が前記所望の下限値よりも小さい場合、第２のエラー通知信号を出力する第２のエラー出力ステップと
を更に有することを特徴とする請求項８記載の起動エラー検出方法。
【請求項１１】
前記第２の格納ステップでは、各レジスタが属するグループを示すグループ情報も前記第２の記憶装置に格納し、
前記検出ステップ、前記第２の比較ステップ、および前記第２のエラー出力ステップでは、前記第２の記憶装置に格納されたグループ情報を参照して、同一グループに属するレジスタだけを対象にして処理を行うことを特徴とする請求項１０記載の起動エラー検出方法。
【請求項１２】
前記第２の格納ステップでは、前記設定が行われるべきレジスタを特定するためのレジスタ特定符号も前記第２の記憶装置に格納することを特徴とする請求項１０記載の起動エラー検出方法。
【請求項１３】
それぞれがレジスタを内蔵する複数の機能モジュールを備えた情報処理装置に適用される起動エラー検出方法を、コンピュータに実行させるためのプログラムにおいて、
前記各レジスタに対して、対応の機能モジュールを起動するために必要な情報をそれぞれ設定する際の所望の設定順序を表す期待値を第１の記憶装置に格納する第１の格納ステップと、
バスアクセスを監視し、該バスアクセス中に含まれる前記各レジスタに対する設定順序情報を、前記第１の記憶装置に格納されている期待値と比較する第１の比較ステップと、
前記第１の比較ステップによる比較の結果、前記設定順序情報が前記期待値に一致しない場合、第１のエラー通知信号を出力する第１のエラー出力ステップと
を有することを特徴とするプログラム。
【請求項１４】
前記各レジスタに対して前記設定を行う各タイミングの時間間隔の所望の下限値を第２の記憶装置に格納する第２の格納ステップと、
前記各レジスタに対して前記設定を行う各タイミングの時間間隔を検出する検出ステップと、
前記検出ステップによって検出された時間間隔を前記第２の記憶装置に格納されている所望の下限値と比較する第２の比較ステップと、
前記第２の比較ステップによる比較の結果、前記時間間隔が前記所望の下限値よりも小さい場合、第２のエラー通知信号を出力する第２のエラー出力ステップと
を更に有することを特徴とする請求項１３記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、起動エラー検出方法、及びプログラムに関し、特に、それぞれがレジスタを内蔵する複数の機能モジュールを備えた情報処理装置、該情報処理装置に適用される起動エラー検出方法、及び該起動エラー検出方法をコンピュータに実行させるためのプログラムに関する。
【背景技術】
【０００２】
複数の機能モジュールを備えた情報処理装置において、該複数の機能モジュールを所定の順序で順に起動させる必要がある場合、従来、ソフトウェアエンジニアが各機能モジュールの仕様書を熟読した上でコーディングを行い、その後、実機テストの段階で不具合を発見するようにしていた（例えば、特許文献１）。
【特許文献１】特開平１０−１４３３９０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、上記従来の情報処理装置において、コーディングされた起動順序に間違いがある場合、各機能モジュールが正常に動作せず、この不具合の原因の発見に至るまでにかなりの時間を要する。特に、複数の機能モジュールの相互間での連係動作が存在するような場合、起動順序の設定間違いは一段と起こりやすく、不具合発見に更に多くの時間を要するという問題があった。
【０００４】
本発明はこのような問題点に鑑みてなされたものであって、ソフトウェア開発の初期の段階で起動順序の設定間違いを発見することを可能にした情報処理装置、起動エラー検出方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００５】
上記目的を達成するために、請求項１記載の発明によれば、それぞれがレジスタを内蔵する複数の機能モジュールを備えた情報処理装置において、前記各レジスタに対して、対応の機能モジュールを起動するために必要な情報をそれぞれ設定する際の所望の設定順序を表す期待値を格納する第１の格納手段と、バスアクセスを監視し、該バスアクセス中に含まれる前記各レジスタに対する設定順序情報を、前記第１の格納手段に格納されている期待値と比較する第１の比較手段と、前記第１の比較手段による比較の結果、前記設定順序情報が前記期待値に一致しない場合、第１のエラー通知信号を出力する第１のエラー出力手段とを有することを特徴とする情報処理装置が提供される。
【０００６】
また、請求項４記載の発明によれば、前記情報処理装置が、前記各レジスタに対して前記設定を行う各タイミングの時間間隔の所望の下限値を格納する第２の格納手段と、前記各レジスタに対して前記設定を行う各タイミングの時間間隔を検出する検出手段と、前記検出手段によって検出された時間間隔を前記第２の格納手段に格納されている所望の下限値と比較する第２の比較手段と、前記第２の比較手段による比較の結果、前記時間間隔が前記所望の下限値よりも小さい場合、第２のエラー通知信号を出力する第２のエラー出力手段とを更に有することを特徴とする。
【０００７】
また、請求項８記載の発明によれば、それぞれがレジスタを内蔵する複数の機能モジュールを備えた情報処理装置に適用される起動エラー検出方法において、前記各レジスタに対して、対応の機能モジュールを起動するために必要な情報をそれぞれ設定する際の所望の設定順序を表す期待値を第１の記憶装置に格納する第１の格納ステップと、バスアクセスを監視し、該バスアクセス中に含まれる前記各レジスタに対する設定順序情報を、前記第１の記憶装置に格納されている期待値と比較する第１の比較ステップと、前記第１の比較ステップによる比較の結果、前記設定順序情報が前記期待値に一致しない場合、第１のエラー通知信号を出力する第１のエラー出力ステップとを有することを特徴とする起動エラー検出方法が提供される。
【０００８】
さらに、上記起動エラー検出方法をコンピュータに実行させるためのプログラムが提供される。
【発明の効果】
【０００９】
本発明によれば、それぞれがレジスタを内蔵する複数の機能モジュールを備えた情報処理装置において、前記各レジスタに対して、対応の機能モジュールを起動するために必要な情報をそれぞれ設定する際の所望の設定順序を表す期待値を記憶装置に格納し、バスアクセスを監視し、該バスアクセス中に含まれる前記各レジスタに対する設定順序情報を、前記記憶装置に格納されている期待値と比較し、この比較の結果、前記設定順序情報が前記期待値に一致しない場合、エラー通知信号を出力する。
【００１０】
これにより、ソフトウェア開発の初期の段階で起動順序の設定間違いを発見することが可能となる。
【００１１】
また、各レジスタに対して前記設定を行う各タイミングの時間間隔を監視し、この時間間隔が、該時間間隔の所望の下限値（記憶装置に予め格納）よりも小さい場合、エラー通知信号を出力する。
【００１２】
これによって、ソフトウェア開発の初期の段階で設定時間間隔の間違いを発見することが可能となる。
【００１３】
また、記憶装置に格納された前記期待値や所望の下限値を変更できるようにすることで、ハードウェア完成後に仕様間違いやプログラム上の都合によってどうしても設定順序や設定時間間隔を変えて動作させたい場合に対応することが可能となる。
【００１４】
また、レジスタをグループ分けすることで、同一グループ内だけで上記監視処理を実行することが可能となる。
【００１５】
また、記憶装置に前記設定が行われるべきレジスタを特定するためのレジスタ特定符号も格納する。これにより、設定時間間隔の対象となるレジスタを任意に選定することができ、設定時間間隔の設定の自由度を高めることができる。また、不要な設定時間間隔の監視を行わなくて済む。
【発明を実施するための最良の形態】
【００１６】
以下、本発明を実施するための最良の形態について、図面を参照して説明する。
【００１７】
〔第１の実施の形態〕
図１は、本発明の第１の実施の形態に係る情報処理装置の構成を示すブロック図である。
【００１８】
図１において、バスマスタの１つであるＣＰＵ１が、システムバス５を介して、各機能モジュール６，７，９，１０内に存在する起動レジスタに対してレジスタ設定を行う。ＤＭＡＣ（Direct Memory Access Controller）６，９は各々、システムバス５のスレーブＩ／Ｆを持ち、他のＤＭＡＣ内部の起動レジスタにアクセスでき、またＤＭＡＣ６，９に接続される機能モジュール内の起動レジスタにアクセスできるようになっている。図１において、ＤＭＡＣ６と受信制御ブロック７との間に示す矢印１２およびＤＭＡＣ９と送信制御ブロック１０との間に示す矢印１４は、外部デバイス８，１１との間で行われるデータ転送の方向のみを表しており、前述のＤＭＡＣと送受信制御ブロックとの間のレジスタアクセスのハンドシェイク方向を表す矢印は省略してある。
【００１９】
上記のＣＰＵ１、ＤＭＡＣ６，９、送受信制御ブロック１０，７等が搭載されるチップ（図１に破線の枠で表示）の外部に接続された外部デバイス８で生成されたデータは、一旦、受信制御ブロック７で受信され、受信制御ブロック７にＤＭＡ専用バス１２を介して接続されたＤＭＡＣ６へ送られ、ＤＭＡＣ６は、このデータを後述のように外部のメモリ３へ書き込む。すなわち、ＤＭＡＣ６は、システムバス５上でマスタ動作して、スレーブであるメモリコントローラ４を経由してメモリ３へデータを転送する。こうしてメモリ３中に格納された外部デバイス８からの受信データは、ＤＭＡＣ９のマスタ動作によってメモリ３から読み出され、ＤＭＡバス１４を介して送信制御ブロック１０へ転送される。送信制御ブロック１０は、受信したデータを外部デバイス１１へ転送する。
【００２０】
こうしたデータの流れにおいて、データの取りこぼしが起きないようにするために、４つの機能モジュール（ＤＭＡＣ６，９、送受信制御ブロック１０，７）それぞれの起動レジスタに正しい順序で設定を行い、転送を開始する必要がある。そのため、レジスタ設定順序監視装置２が、システムバス５のバスプロトコル、特にアドレスとアクセス方向（ライト／リード）を監視し、レジスタ設定順序の監視を行う。
【００２１】
なお、レジスタ設定順序のエラーが発生した場合、レジスタ設定順序監視装置２は、エラー信号を、ライン１６を介してＣＰＵ１へ送信する。
【００２２】
図２は、上記のようなデータの送受信を実現するためのレジスタ設定シーケンスの一例を示す図である。
【００２３】
このレジスタ設定順序は一例であって、各機能モジュールの仕様や接続バスのプロトコルに応じて異なるレジスタ設定順序があり得るが、ここでは、図２に示すレジスタ設定順序のみが許される順序であるとする。
【００２４】
図２に示すレジスタ設定シーケンスにおいて縦軸は時間の推移を表しており、ＣＰＵ１から右方向に延びる矢印が、矢印の到達先の機能モジュールへのレジスタ書き込みアクセスを意味している。したがって例えば、ＤＭＡＣ６のパラメータ設定３０は、ＤＭＡＣ６の起動３１以前に発生する事象ということになる。
【００２５】
各パラメータ設定３０，３２，３４，３６は、対応する機能モジュールの起動より以前に行われなければならず、起動後のパラメータ変更は許されない。
【００２６】
受信系の起動の順番は、最終的なターゲットであるメモリ３に近いＤＭＡＣ６の起動３１が最初で、次に受信制御ブロック７の起動３３となる。この順序は、本実施の形態だけの制約であって、逆の順番もあり得るし、どちらが先でもよいという仕様も存在し得る。
【００２７】
また、ＤＭＡＣ６の起動３１のタイミングから受信制御ブロック７の起動３３のタイミングまでには、一定値以上の所定のサイクルギャップ（時間間隔）３８が必要であるという場合もある。
【００２８】
一方、送信系の起動の順番は、最終的なターゲットである外部デバイス１１に近い送信制御ブロック１０の起動３５が最初で、次にＤＭＡＣ９の起動３７となる。
【００２９】
受信系と送信系とを独立に動作させ、外部デバイス８から受信したデータ全てを外部デバイス１１に確実に転送するためには、受信系の起動タイミングと送信系の起動タイミングとの間に一定の時間間隔を設ける必要がある。一般的な方法としては、受信系の転送終了割り込みを検出した後、送信系の起動を開始するということが考えられるが、本実施の形態では、割り込みをトリガにすることを行わず、受信系の起動タイミングから絶対時間経過後（受信系の転送終了前）に送信起動を行うように設定する。
【００３０】
以上のように設定されるレジスタアクセス順序に対する違反およびレジスタアクセス間ギャップに対する違反を検出するためには、レジスタ設定順序監視装置２内に、正しいレジスタアクセス順序を示す情報を格納した格納部を備える必要がある。本実施の形態では、この格納部を、ソフトウェアによる書き換え可能な期待値レジスタで構成している。正しいレジスタアクセス順序（期待値）は、この期待値レジスタに初期値として格納されており、基本的には初期値のまま使用される。
【００３１】
図３は、レジスタ設定順序監視装置２内に備えられた期待値レジスタの構成を示すとともに、該期待値レジスタに格納される初期値を示す図である。
【００３２】
期待値レジスタは、４つのレジスタＯＲＤＥＲ０〜ＯＲＤＥＲ３で構成され、各レジスタは、２４ビットの「ＩＯアドレス」フィールド、１ビットの「アクセス方向情報（リード／ライト）」フィールド、２３ビットの「レジスタアクセス間ギャップサイクル数」フィールドの全４８ビットで構成される。ＯＲＤＥＲ０〜ＯＲＤＥＲ３レジスタは、初期値で想定されるアクセス順序順に配列されている。
【００３３】
最初に起動すべきＤＭＡＣ６の起動レジスタのＩＯアドレス値の初期値をＯＲＤＥＲ０レジスタの「ＩＯアドレス」フィールドに、受信制御ブロック７の起動レジスタのＩＯアドレス値の初期値をＯＲＤＥＲ１レジスタの「ＩＯアドレス」フィールドに、送信起動ブロック１０の起動レジスタのＩＯアドレス値の初期値をＯＲＤＥＲ２レジスタの「ＩＯアドレス」フィールドに、ＤＭＡＣ９の起動レジスタのＩＯアドレス値の初期値をＯＲＤＥＲ４レジスタの「ＩＯアドレス」フィールドに格納する。またＤＭＡＣ６の起動タイミングから受信制御ブロック７の起動タイミングまでの間に必要なサイクルギャップ（時間間隔）３８の初期値をＯＲＤＥＲ０レジスタの「ギャップサイクル数」フィールドに、受信制御ブロック７の起動タイミングから送信制御ブロック１０の起動タイミングまでの間に必要なサイクルギャップ３９の初期値をＯＲＤＥＲ１レジスタの「ギャップサイクル数」フィールドに、また送信制御ブロック１０の起動タイミングからＤＭＡＣ９の起動タイミングまでの間に必要なサイクルギャップ４０の初期値をＯＲＤＥＲ２レジスタの「ギャップサイクル数」フィールドに格納する。
【００３４】
レジスタ設定順序監視装置２は、期待値レジスタに格納されたレジスタアクセス順番どおりに実際のレジスタアクセスが行われないとアクセス順番エラー発生と判定し、また実際のレジスタアクセスのタイミングにおいて、期待値レジスタに格納されたギャップサイクル数以上の間隔が無ければレジスタアクセス間間隔エラー発生と判定して、エラー信号をＣＰＵ１へ送信する。
【００３５】
なお、図３に示すＯＲＤＥＲ０〜ＯＲＤＥＲ３レジスタにそれぞれ格納したレジスタアクセス順番情報は、データ転送の起動に関するものだけであり、図２に示す各機能モジュールのパラメータ設定に関する順番情報は、説明の簡素化のために図示を除外した。
【００３６】
次に、図３に示すような期待値レジスタを内蔵するレジスタ設定順序監視装置２の回路構成とその動作について説明する。
【００３７】
図４および図５は、レジスタ設定順序監視装置２の内部構成を示す図である。これらの図には主に、バスアドレスの比較とギャップサイクル計測の回路とを記載する。
【００３８】
図４および図５において、ＩＯアドレスレジスタ１００、アクセス方向情報レジスタ１０１、およびギャップサイクルレジスタ１１５は、図３に示す期待値レジスタを構成するものである。ＩＯアドレスレジスタ１００に格納されたａｄｄｒｅｓｓ０は、図３のＯＲＤＥＲ０レジスタの「ＩＯアドレス」フィールドに格納されたＤＭＡＣ６の起動レジスタのＩＯアドレス値の初期値に対応し、ａｄｄｒｅｓｓ１は、ＯＲＤＥＲ１レジスタの「ＩＯアドレス」フィールドに格納された受信制御ブロック７の起動レジスタのＩＯアドレス値の初期値に対応し、ａｄｄｒｅｓｓ２は、ＯＲＤＥＲ２レジスタの「ＩＯアドレス」フィールドに格納された送信制御ブロック１０の起動レジスタのＩＯアドレス値の初期値に対応し、ａｄｄｒｅｓｓ３は、ＯＲＤＥＲ３レジスタの「ＩＯアドレス」フィールドに格納されたＤＭＡＣ９の起動レジスタのＩＯアドレス値の初期値に対応する。
【００３９】
また、アクセス方向情報レジスタ１０１に格納されたｗ／ｒ０は、図３のＯＲＤＥＲ０レジスタの「アクセス方向情報（Ｗ／Ｒ）」フィールドに格納されたアクセス方向情報の初期値（Ｗ）に対応し、ｗ／ｒ１は、ＯＲＤＥＲ１レジスタの「アクセス方向情報（Ｗ／Ｒ）」フィールドに格納されたアクセス方向情報の初期値（Ｗ）に対応し、ｗ／ｒ２は、ＯＲＤＥＲ２レジスタの「アクセス方向情報（Ｗ／Ｒ）」フィールドに格納されたアクセス方向情報の初期値（Ｗ）に対応し、ｗ／ｒ３は、ＯＲＤＥＲ３レジスタの「アクセス方向情報（Ｗ／Ｒ）」フィールドに格納されたアクセス方向情報の初期値（Ｗ）に対応する。
【００４０】
また、ギャップサイクルレジスタ１１５に格納されたｇａｐｃｙｃｌｅ０は、図３のＯＲＤＥＲ０レジスタの「ギャップサイクル数」フィールドに格納されたサイクルギャップ３８の初期値に対応し、ｇａｐｃｙｃｌｅ１は、ＯＲＤＥＲ１レジスタの「ギャップサイクル数」フィールドに格納されたサイクルギャップ３９の初期値に対応し、ｇａｐｃｙｃｌｅ２は、ＯＲＤＥＲ２レジスタの「ギャップサイクル数」フィールドに格納されたサイクルギャップ４０の初期値に対応する。
【００４１】
これらの期待値レジスタに格納された初期値は、本情報処理装置が正常に動作するためのレジスタ設定順序の情報となっている。
【００４２】
ここで、バスアクセスのアドレス情報（ｂｕｓ  ａｄｄｒｅｓｓ）１０２およびアクセス方向情報（ｂｕｓ_ａｃｃｅｓｓ_ｄｉｒ）１２０が発生すると、このアドレス情報１０２が比較器（ｃｏｍｐａｒｅ）１０３ａ〜１０３ｄへ入力されるとともに、アクセス方向情報１２０がＥＸＯＲ論理素子１２１ａ〜１２１ｄへ入力される。また比較器１０３ａ〜１０３ｄには、ＩＯアドレスレジスタ１００からａｄｄｒｅｓｓ０〜ａｄｄｒｅｓｓ３がそれぞれ入力され、ＥＸＯＲ論理素子１２１ａ〜１２１ｄには、アクセス方向情報レジスタ１０１からｗ／ｒ０〜ｗ／ｒ３がそれぞれ入力されている。
【００４３】
比較器１０３ａ〜１０３ｄは、アドレス情報１０２とａｄｄｒｅｓｓ０〜ａｄｄｒｅｓｓ３の１つとをそれぞれ比較し、ＥＸＯＲ論理素子１２１ａ〜１２１ｄは、アクセス方向情報１２０とｗ／ｒ０〜ｗ／ｒ３の１つとをそれぞれ比較する。その結果に応じて、ＡＮＤ論理素子１０４ａ〜１０４ｄ、ＯＲ論理素子１１１およびＡＮＤ論理素子１１２を介して、ａｃｃ_ｈｉｔ信号１２２が出力される。すなわち、上記の比較の結果、レジスタＯＲＤＥＲ０〜ＯＲＤＥＲ３に対応する４つの組み合わせ（比較器とＥＸＯＲ論理素子）のうち少なくとも１つの組み合わせで、レジスタアドレスおよびレジスタアクセス方向が一致していると、バスアクセス状態（ｂｕｓ_ａｃｃｅｓｓ＝１）である場合に、ａｃｃ_ｈｉｔ信号１２２が「１」となる。
【００４４】
このａｃｃ_ｈｉｔ信号１２２がポインタ制御部（ｐｏｉｎｔｅｒ  ｃｏｎｔｒｏｌ）１０５へ送られ、ポインタ制御部１０５は、現時点でのアクセス順番を指示するポインタ（ｐｔｒ）１１４を、ａｃｃ_ｈｉｔ信号１２２の入力ごとに更新する。このポインタ（ｐｔｒ）１１４はデコーダ（ｄｅｃｏｄｅ）１０６においてデコードされ、ｐｔｒ＝０はｄｅｃｏｄｅ（ｐｔｒ）（０）＝４’ｂ０００１に、ｐｔｒ＝１はｄｅｃｏｄｅ（ｐｔｒ）（１）＝４’ｂ００１０に、ｐｔｒ＝２はｄｅｃｏｄｅ（ｐｔｒ）（２）＝４’ｂ０１００に、ｐｔｒ＝３はｄｅｃｏｄｅ（ｐｔｒ）（３）＝４’ｂ１０００にデコードされる。
【００４５】
このデコード後の信号ｄｅｃｏｄｅ（ｐｔｒ）（０）〜ｄｅｃｏｄｅ（ｐｔｒ）（３）とＡＮＤ論理素子１０４ａ〜１０４ｄの出力信号とは、ＥＸＯＲ論理素子１０７ａ〜１０７ｄにそれぞれ入力される。ＥＸＯＲ論理素子１０７ａ〜１０７ｄの各出力信号は、ＯＲ論理素子１０８、およびａｃｃ_ｈｉｔ信号１２２が入力されるＡＮＤ論理素子１０９を介して割り込み要因レジスタ１１０へ送られる。割り込み要因レジスタ１１０は、期待値通りのレジスタアクセスでない場合、ｅｒｒ_ｏｒｄｅｒ信号１１３を出力する（アサーション）。
【００４６】
図６は、レジスタ設定順序監視装置２の各部における信号波形を示すタイミングチャートである。このタイミングチャートでは、レジスタ設定順序エラーが発生しない場合を示し、またバスアクセスのアドレス情報１０２（ｂｕｓ_ａｄｄｒ）はＡ，Ｂ，Ｃの順であるとする。
【００４７】
ａｃｃ_ｈｉｔ信号（１２２、図６（Ｂ））が「１」となるたびに、ポインタｐｔｒ（１１４、図６（Ｄ））が更新され、そのポインタｐｔｒに対応する期待値アドレスａｄｄｒ（ｐｔｒ）（図６（Ｅ））とバスアドレスｂｕｓ_ａｄｄｒ（１０２、図６（Ｃ））とが比較される。比較結果は、ａｃｃ_ｈｉｔ信号（１２２、図６（Ｂ））が「１」である時に有効となる。もしバスアドレスｂｕｓ_ａｄｄｒ（１０２、図６（Ｃ））が期待値アドレスａｄｄｒ（ｐｔｒ）（図６（Ｅ））のいずれとも一致しない場合、ａｃｃ_ｈｉｔ信号（１２２、図６（Ｂ））は常時「０」であり、ポインタｐｔｒ（１１４、図６（Ｄ））の更新も行われない。
【００４８】
図６に示す例では、バスアドレスｂｕｓ_ａｄｄｒ（１０２、図６（Ｃ））のアクセス順序Ａ，Ｂ，Ｃが、期待値アドレスａｄｄｒ（ｐｔｒ）のアクセス順序と一致するので、ｅｒｒ_ｏｒｄｅｒ信号（１１３、図６（Ｆ））の「１」は出力されない。
【００４９】
なお、ポインタｐｔｒ（１１４、図６（Ｄ））は、全てのレジスタにそれぞれ対応する番号を順に指定し、指定し終わったら自動的に元の番号に戻る。図４および図５に示すように期待値レジスタが４つのレジスタからなる場合は、０から３までの数字を巡回する。
【００５０】
図７は、レジスタ設定順序監視装置２の各部における信号波形を示すタイミングチャートである。このタイミングチャートでは、レジスタ設定順序エラーが発生する場合を示し、またバスアクセスのアドレス情報１０２（ｂｕｓ_ａｄｄｒ）はＡ，Ｂ，Ｄの順であるとする。
【００５１】
このタイミングチャートでは、バスアドレスｂｕｓ_ａｄｄｒ（１０２、図７（Ｃ））のアクセス順序の３番目がＣではなくＤであるため、期待値アドレスａｄｄｒ（ｐｔｒ）のアクセス順序と一致せず、ｅｒｒ_ｏｒｄｅｒ信号（１１３、図７（Ｆ））の「１」が出力される。
【００５２】
ｅｒｒ_ｏｒｄｅｒ信号（１１３、図７（Ｆ））の「１」が出力されたときに、ポインタｐｔｒ（１１４、図７（Ｄ））は０にクリアされず、エラー割り込み要因をクリアする際に０にクリアされる。
【００５３】
図６および図７に示すタイミングチャートを参照した上記説明では、バスアクセス方向の比較についての説明を省略したが、この比較方法はバスアドレスの比較方法と同じである。
【００５４】
次に図４および図５に戻って、レジスタ設定順序監視装置２におけるレジスタ設定間隔違反の検出動作を説明する。
【００５５】
期待値レジスタのギャップサイクルレジスタ１１５は、レジスタアクセスの間隔の期待値を格納しており、ｇａｐｃｙｃｌｅ０が、ａｄｄｒｅｓｓ０とａｄｄｒｅｓｓ１との間のアクセス間隔の期待値であり、ｇａｐｃｙｃｌｅ１が、ａｄｄｒｅｓｓ１とａｄｄｒｅｓｓ２との間のアクセス間隔の期待値であり、ｇａｐｃｙｃｌｅ２が、ａｄｄｒｅｓｓ２とａｄｄｒｅｓｓ３との間のアクセス間隔の期待値である。
【００５６】
カウンタ１１７は、アクセス間隔を検出するためのカウンタであり、このカウンタ１１７は、ａｃｃ_ｈｉｔ信号が「１」のときクリアされ、次の処理サイクルから処理サイクルごとにカウントアップを行い、次にａｃｃ_ｈｉｔ信号が「１」になるまでカウントアップを続ける。
【００５７】
比較器（ｃｏｍｐａｒｅ）１２３は、カウンタ１１７のカウント値と、マルチプレクサ１１６から出力されたレジスタアクセス間隔の期待値とを比較する。比較器１２３の出力値は、ａｃｃ_ｈｉｔ信号が入力されるＡＮＤ論理素子１１８を介して割り込み要因レジスタ１２４へ送られる。これにより、ａｃｃ_ｈｉｔ信号が「１」であるとき、カウンタ１１７のカウント値がレジスタアクセス間隔の期待値より小さければ、割り込み要因レジスタ１２４がセットされ、アクセス間隔エラー信号（ｅｒｒ_ｇａｐ）１１９が出力される（アサーション）。
【００５８】
図８は、レジスタ設定順序監視装置２の各部における信号波形を示すタイミングチャートである。このタイミングチャートでは、レジスタ設定間隔エラーが発生しない場合を示し、またバスアクセスはアドレスＡ，Ｂの順に発生するものとする。さらに、アドレスＡのレジスタへのアクセスからアドレスＢのレジスタへのアクセスまでには１０サイクル以上のギャップが期待されているものと仮定する。
【００５９】
ａｃｃ_ｈｉｔ信号（１２２、図８（Ｂ））が「１」となるたびに、カウンタ１１７のカウント値（図８（Ｇ））と、期待値ｇａｐ_ｃｙｃｌｅ（ｐｔｒ）（図８（Ｆ））との比較を行う。この場合、カウンタ１１７のカウント値は「１１」であり、期待値ｇａｐ_ｃｙｃｌｅ（ｐｔｒ）は「１０」であるので、カウンタ１１７のカウント値が期待値ｇａｐ_ｃｙｃｌｅ（ｐｔｒ）よりも大きく、エラー信号ｅｒｒ_ｇａｐ（１１９、図８（Ｈ））の「１」は出力されない。なお、期待値ｇａｐ_ｃｙｃｌｅ（ｐｔｒ）（図８（Ｆ））は、マルチプレクサ１１６から出力された信号を意味している。
【００６０】
図９は、レジスタ設定順序監視装置２の各部における信号波形を示すタイミングチャートである。このタイミングチャートでは、レジスタ設定間隔エラーが発生した場合を示す。
【００６１】
このタイミングチャートでは、ａｃｃ_ｈｉｔ信号（１２２、図９（Ｂ））が「１」となったとき、カウンタ１１７のカウント値（図９（Ｇ））は「９」であり、期待値ｇａｐ_ｃｙｃｌｅ（ｐｔｒ）（図９（Ｆ））は「１０」であるので、カウンタ１１７のカウント値が期待値ｇａｐ_ｃｙｃｌｅ（ｐｔｒ）よりも小さく、エラー信号ｅｒｒ_ｇａｐ（１１９、図９（Ｈ））の「１」が出力される。
【００６２】
以上のようにして、第１の実施の形態では、レジスタ設定順序間違いによる不具合を、ソフトウェア開発後期に見つけ出すのではなく、初期の段階で見つけることが可能になる。
【００６３】
〔第２の実施の形態〕
次に、本発明の第２の実施の形態を説明する。
【００６４】
第２の実施の形態の構成は、基本的に第１の実施の形態の構成と同じであるので、第２の実施の形態の説明においては、第１の実施の形態の構成を流用する。
【００６５】
上記第１の実施の形態では、監視すべきレジスタアクセス順序は一通りだけであり、そのアクセス個数も４つのみである。実際の情報処理装置では、監視すべきレジスタアクセス順序は多数通り存在し、対象になるレジスタアクセスの個数も４以外の個数があり得る。さらに、ギャップサイクル数をアクセス間隔毎に設定するようにしていたが、実際はこのような機能を必要とすることはあまり多くないかもしれない。こうしたことを考慮して、第２の実施の形態では、レジスタ設定順序監視装置の回路構成が多少複雑になるが、図３に示す期待値レジスタの構成を、図１０に示すような構成に拡張する。
【００６６】
図１０は、第２の実施の形態における期待値レジスタの構成を示す図である。なお、図３に示す第１の実施の形態における期待値レジスタの構成と同一部分の説明は省略する。
【００６７】
第２の実施の形態では、図１０(Ａ)に示すように、ＯＲＤＥＲｘレジスタにおいて、「グループ」フィールドを設け、複数の機能モジュールの各起動レジスタをグループ分けしたときに、同一グループに属する複数の起動レジスタに同一のグループ番号を付して、そのグループ番号を「グループ」フィールドに格納する。これによって、同じグループ番号の起動レジスタへのアクセス順序やアクセス間隔だけを監視対象とすることができる。
【００６８】
また、ＯＲＤＥＲｘレジスタにおいて、「アクセス順番」フィールドを設け、グループ毎のアクセス順番を格納する。これによって、グループ毎にアクセスを監視することができるようになる。
【００６９】
また図１０(Ｂ)に示すように、図３のＯＲＤＥＲｘレジスタから「ギャップサイクル数」フィールドを独立させてＧＡＰｘレジスタとして新設し、「グループ」フィールドと、「前アクセス番号」フィールドと、「後アクセス番号」フィールドと、「キャップサイクル数」フィールドとを設ける。「グループ」フィールドには上記グループ番号を格納し、「前アクセス番号」フィールドには、アクセス間隔の前側レジスタを示すアクセス開始番号を格納し、「後アクセス番号」フィールドには、アクセス間隔の後側レジスタを示すアクセス終了番号を格納する。
【００７０】
これにより、アクセス間隔の対象となるレジスタを任意に選定することができ、アクセス間隔の設定の自由度を高めることができる。また、不要なアクセス間隔の監視を行わなくて済む。
【００７１】
以上のように、第２の実施の形態では、汎用性の高いレジスタ設定順序監視モジュールを設計できる。
【００７２】
なお、第２の実施の形態では、期待値レジスタを、ソフトウェアによって書き換え可能なレジスタとして説明したが、アクセス順序がハードウェア完成前に期待値が完全に確立され、検証されている場合には、書き換え不可能な記憶媒体に期待値を格納する構成であってもよい。
【００７３】
〔他の実施の形態〕
なお、本発明の目的は、前述した各実施の形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムまたは装置に供給し、そのシステムまたは装置のコンピュータ（またはＣＰＵ、ＭＰＵ等）が記憶媒体に格納されたプログラムコードを読み出して実行することによっても達成される。
【００７４】
この場合、記憶媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記憶媒体およびプログラムは本発明を構成することになる。
【００７５】
また、プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＤＶＤ−ＲＷ、ＤＶＤ＋ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭ等を用いることができる。或いは、上記プログラムは、インターネット、商用ネットワーク、若しくはローカルエリアネットワーク等に接続される他のコンピュータやデータベース等からダウンロードすることにより供給される。
【００７６】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した各実施の形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳ（オペレーティングシステム）等が実際の処理の一部または全部を行い、その処理によって前述した各実施の形態の機能が実現される場合も含まれる。
【００７７】
更に、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって前述した各実施の形態の機能が実現される場合も含まれる。
【図面の簡単な説明】
【００７８】
【図１】本発明の第１の実施の形態に係る情報処理装置の構成を示すブロック図である。
【図２】レジスタ設定シーケンスの一例を示す図である。
【図３】レジスタ設定順序監視装置内に備えられた期待値レジスタの構成を示すとともに、該期待値レジスタに格納される初期値を示す図である。
【図４】レジスタ設定順序監視装置の内部構成（１／２）を示す図である。
【図５】レジスタ設定順序監視装置の内部構成（２／２）を示す図である。
【図６】レジスタ設定順序エラーが発生しない場合におけるレジスタ設定順序監視装置の各部における信号波形を示すタイミングチャートである。
【図７】レジスタ設定順序エラーが発生する場合におけるレジスタ設定順序監視装置の各部における信号波形を示すタイミングチャートである。
【図８】レジスタ設定間隔エラーが発生しない場合におけるレジスタ設定順序監視装置の各部における信号波形を示すタイミングチャートである。
【図９】レジスタ設定間隔エラーが発生する場合におけるレジスタ設定順序監視装置の各部における信号波形を示すタイミングチャートである。
【図１０】第２の実施の形態における期待値レジスタの構成を示す図である。
【符号の説明】
【００７９】
１  ＣＰＵ
２  レジスタ設定順序監視装置（第１の格納手段、第１の比較手段、第１のエラー出力手段）
３  メモリ
４  メモリコントローラ
５  システムバス
６  ＤＭＡＣ（機能モジュール）
７  受信制御ブロック（機能モジュール）
８  外部デバイス
９  ＤＭＡＣ（機能モジュール）
１０  送信制御ブロック（機能モジュール）
１１  外部デバイス
【図１】
2006133969.tif 000003
【図２】
2006133969.tif 000004
【図３】
2006133969.tif 000005
【図４】
2006133969.tif 000006
【図５】
2006133969.tif 000007
【図６】
2006133969.tif 000008
【図７】
2006133969.tif 000009
【図８】
2006133969.tif 000010
【図９】
2006133969.tif 000011
【図１０】
2006133969.tif 000012