(57)【要約】【課題】手間と時間との短縮のため、ロジックアナライザ等の測定器を用いずに、ハードウェアでコンピュータプログラムを実行する実行装置の動作を監視する。【解決手段】コンピュータプログラムを実行する実行装置の動作を監視する監視システムであって、実行装置が所定の処理を実行するときに、実行装置からメモリへ発行されるアクセス情報を受信する受信部と、実行装置からメモリへ発行されるべきアクセス情報に対して予定される予定条件の設定を受け付ける期待値設定部と、受信部が受信するアクセス情報が予定条件に合致するか否かを判定する判定部と、判定部がアクセス情報が予定条件に合致すると判定した場合に、判定結果を格納する処理部とを備える。【選択図】図２
2010026979.tif 000002
【特許請求の範囲】
【請求項１】
実行装置が所定の処理を実行するときに、前記実行装置からメモリへ発行されるアクセス情報を受信する受信部と、
前記実行装置からメモリへ発行されるべきアクセス情報に対して予定される予定条件の設定を受け付ける予定値設定部と、
前記受信部が受信するアクセス情報が前記予定条件を満たすか否かを判定する判定部と、
を備える監視システム。
【請求項２】
前記判定部が前記アクセス情報が前記予定条件を満たすと判定した場合に、前記判定結果を格納する処理と前記判定結果を報知する処理との少なくとも一方を実行する処理部をさらに備える請求項１に記載の監視システム。
【請求項３】
前記アドレス情報は前記メモリのアドレスと該アドレスが示す前記メモリの領域に入出力されるデータを含み、
前記予定値設定部は、第１の予定値と第２の予定値との設定を受け付け、
前記第１の予定値は前記メモリのアドレスを示し、前記第２の予定値はデータを示し、前記アクセス情報に含まれるアドレスが第１の予定値が示すアドレスと一致し、且つ、前記アクセス情報に含まれるデータが第２の予定値が示すデータと一致することを条件とする第１の予定条件と、
前記第１の予定値及び前記第２の予定値は前記メモリのアドレスを示し、前記アクセス情報に含まれるアドレスが前記第１の予定値が示すアドレスと前記第２の予定値が示すアドレスによって定義されるアドレスの範囲に含まれることを条件とする第２の予定条件と、
前記第１の予定値及び前記第２の予定値は前記メモリに入出力されるデータであり、前記アクセス情報に含まれるデータが前記第１の予定値が示すデータと前記第２の予定値が示すデータとによって定義されるデータの範囲に含まれることを条件とする第３の予定条件との間で前記予定条件を切り替える切替部を
さらに備える請求項１又は２に記載の監視システム。
【請求項４】
前記受信部は、前記アドレス情報を前記メモリに送信するとともに、前記アドレス情報を複製し前記判定部に送信する請求項１から３の何れか１つに記載の監視システム。
【請求項５】
前記予定値設定部に前記予定条件の設定を遠隔から送信する遠隔操作部をさらに備える請求項１から４の何れか１つに記載の監視システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラムを実行する装置の動作をハードウェアにて監視する技術に関する。
【背景技術】
【０００２】
基板に実装されるＬＳＩ(Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ)やＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）などは、通常レジスタを保持している。レジスタやメインメモリにアクセスすることによって、コンピュータプログラムを実行するＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）等の実行装置はＬＳＩやＦＰＧＡの制御を行う。ＬＳＩやＦＰＧＡを制御するためのコンピュータプログラムは、仕様変更、仕様追加、バグの修正などで、例えば、半年に１度といったペースで更新が行われる。この更新の際、例えば、仕様変更によるバグの発生等に起因する意図しない実行装置からのアクセスが発生すると、ＬＳＩやＦＰＧＡが誤動作してしまうことがある。また、コンピュータプログラムの更新に起因する意図しない実行装置からのアクセス以外にも、起動プログラム（ブートプログラム）による誤動作によって、実行装置を搭載する装置自身が起動しないという障害も発生する可能性がある。
【０００３】
通常、コンピュータプログラムのバグによる障害箇所の特定や、テストプログラムや実運用のコンピュータプログラムを動作させて評価を行うような場合には、ロジックアナライザなどの測定器を用いるのが一般的である。ロジックアナライザの場合は、モニタしたいポイントにロジックアナライザを接続して監視する。
【０００４】
図１３は、ロジックアナライザの使用方法例を示す図である。図１３では、複数の基板（カードユニット）が挿入されている架体の一番端に挿入された基板Ａに障害が発生した場合を示す。一番端の基板が固定されておらず、引き出し治具などで可動する場合は、図１３のように基板Ａを引き出して、モニタしたいポイント（ＬＳＩやＦＰＧＡ等）にロジックアナライザを接続する。以下、コンピュータプログラムを実行するＣＰＵ等の実行装置の動作を、単に、プログラムの動作ともいう。
【特許文献１】特開２００１−２５６１２０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、ロジックアナライザを用いたプログラムの動作の監視には以下のような問題がある。
【０００６】
ロジックアナライザを用いたプログラムの動作の監視には時間がかかるという問題がある。まず、ロジックアナライザを使って監視する場合には、監視対象のある現場まで赴かなければならない。現場に着いたら、モニタポイントにロジックアナライザを接続する。例えば、図１３のように架体の端に位置する基板Ａにロジックアナライザを接続する場合には、基板Ａを引き出す必要がある。このとき、基板Ａがねじ止めされていれば、さらにねじを外すなどの作業をする必要がある。基板Ａを引き出した後はモニタポイントにロジックアナライザを接続する。このとき、ロジックアナライザを接続するためにはんだ付けをしなければならない場合もある。このようにロジックアナライザを接続するまでにはいろいろと手間がかかる。また、図１４に示すように、架体によっては、端に位置する基板が固定されている場合もある。このような端に位置する固定基板の場合は、物理的にロジックアナライザを接続することは困難である。
【０００７】
障害が発生した場合には、予め障害箇所の目星を付けてからロジックアナライザで監視することが一般的である。しかしながら、目星を付けた箇所が障害発生箇所であるとは限らず、障害箇所を特定するのに、例えば、最短で数時間、最長で数日と、長い時間がかかってしまうことがある。また、実運用の基板の障害である場合には、ロジックアナライザを接続するために運用を一時停止しなければいけない可能性もある。
【０００８】
ロジックアナライザを接続する手間を省くために、回路の設計段階でロジックアナライザを接続し易いように回路を設計することも考えられる。例えば、ロジックアナライザを接続するためのコネクタを基板に実装するなどである。しかし、コネクタの部品等のコストや実装スペースが必要になるばかりでなく、バスの信号波形に悪影響を及ぼすおそれがある。現在の電子回路の低電圧、高速化という観点からすれば、現実的ではない。
【０００９】
ロジックアナライザを用いずにプログラムの動作を監視する方法としては、監視対象プログラムの動作を別の監視プログラムで監視するという方法も開示されている。しかしながら、監視プログラムを動作させるためのハードウェア環境と、監視プログラム自体を開発する規模やコストが増大してしまう。実行装置を搭載する装置の起動中に、実行装置がプログラムを実行するための環境設定が行われる。いわゆる初期化処理中であるため、或るプログラムの動作を別のプログラムの実行によって監視することは困難である。プログラムの動作を別の監視プログラムで監視する方法では、プログラムを実行する実行装置の電源投入直後の動作を監視することができない。例えば、装置を含む基板のブートプログラムの障害のような、電源投入直後のプログラムの動作を監視することができない。
【００１０】
開示の監視システムは、上記の問題点に鑑みて発明されたものであり、開示の監視システムの目的は、手間と時間との短縮のため、ロジックアナライザ等の測定器を用いずに、ハードウェアでコンピュータプログラムを実行する実行装置の動作を監視する技術を提供することである。
【課題を解決するための手段】
【００１１】
開示の監視システムは、実行装置が所定の処理を実行するときに、前記実行装置からメモリへ発行されるアクセス情報を受信する受信部と、
前記実行装置からメモリへ発行されるべきアクセス情報に対して予定される予定条件の設定を受け付ける予定値設定部と、
前記受信部が受信するアクセス情報が前記予定条件を満たすか否かを判定する判定部とを備える。また、開示の監視システムは、前記アクセス情報が前記予定条件を満たすと判定した場合に、前記判定結果を格納する処理と報知する処理との少なくとも一方を実行する処理部をさらに備えてもよい。
【００１２】
開示の監視システムによれば、予定値設定部が予定条件の設定を受け付けたことを契機に、実行装置からメモリに発行されるアドレス情報が予定条件を満たすか否かを判定するので、ロジックアナライザのような測定器を用いずにプログラムの動作を監視することができる。したがって、ロジックアナライザを用いる場合に比べて手間と時間の短縮することができる。
【００１３】
開示の監視システムの前記アドレス情報は前記メモリのアドレスと該アドレスが示す前記メモリの領域に入出力されるデータを含み、
前記予定値設定部は、第１の予定値と第２の予定値との設定を受け付け、
前記第１の予定値は前記メモリのアドレスを示し、前記第２の予定値はデータを示し、前記アクセス情報に含まれるアドレスが第１の予定値が示すアドレスと一致し、且つ、前記アクセス情報に含まれるデータが第２の予定値が示すデータと一致することを条件とする第１の予定条件と、
前記第１の予定値及び前記第２の予定値は前記メモリのアドレスを示し、前記アクセス情報に含まれるアドレスが前記第１の予定値が示すアドレスと前記第２の予定値が示すアドレスによって定義されるアドレスの範囲に含まれることを条件とする第２の予定条件と、
前記第１の予定値及び前記第２の予定値は前記メモリに入出力されるデータであり、前記アクセス情報に含まれるデータが前記第１の予定値が示すデータと前記第２の予定値が示すデータとによって定義されるデータの範囲に含まれることを条件とする第３の予定条件との間で前記予定条件を切り替える切替部を
さらに備えるようにしてもよい。
【００１４】
開示の監視システムの前記予定値設定部に前記予定条件の設定を遠隔から送信する遠隔操作部をさらに備えるようにしてもよい。このように構成することで、遠隔において監視システムの設定を行うことができる。
【００１５】
また、開示の監視システムの前記受信部は、前記アドレス情報を前記メモリに送信するとともに、前記アドレス情報を複製し前記判定部に送信するようにしてもよい。受信部がアクセス情報を複製して判定部に送信するので、実行装置の処理には影響することなく、プログラムの動作の監視を行うことができる。
【発明の効果】
【００１６】
開示の監視システムによれば、手間と時間との短縮のため、ロジックアナライザ等の測定器を用いずに、ハードウェアでコンピュータプログラムを実行する実行装置の動作を監視する技術を提供することができる。
【発明を実施するための最良の形態】
【００１７】
以下、図面に基づいて、監視システムの実施の形態を説明する。以下の実施形態の構成は例示であり、監視システムは実施形態の構成には限定されない。
【００１８】
本監視システムは、プログラムが設計された通りの動作を行うことを評価するためのシステムである。本監視システムは、プログラムを実行する実行装置からのメモリ（メインメモリ、レジスタ、仮想メモリ等を含む）へのアクセスを監視する。
【００１９】
本監視システムは、受信部と、予定値設定部と、判定部と、処理部とを備える。受信部は、プログラムを実行する実行装置からメモリに対して発行されるアクセス情報を受信する。予定値設定部は、プログラムを実行する際に実行装置から発行されるべきアクセス情報に対する予定条件の設定を受け付ける。判定部は、予定値設定部が予定条件の設定を受け付けたことをトリガとして、実行装置から発行されるアクセス情報が予定条件を満たすか否かを判定する。アクセス情報が予定条件を満たすと判定された場合には、処理部は判定結果をログとして格納する。処理部は、このとき、ＬＥＤ（Ｌｉｇｈｔ  Ｅｍｉｔｔｉｎｇ  Ｄｉｏｄｅ）を点滅する等して調査者に、予定条件を満たすアクセス情報があることを報知する。
【００２０】
予定条件としては、予定値を用いて、アクセス情報に含まれるメモリのアドレスとその領域に入出力されるデータが第１の予定値（アドレス）と第２の予定値（データ）とに一致することを条件としてもよい。又は、アクセス情報に含まれるアドレスを第１の予定値（アドレス）と第２の予定値（アドレス）とで定義されるアドレス範囲に含まれることを条件にしてもよい。また、アクセス情報に含まれるデータによって範囲指定を行ってもよい。
【００２１】
受信部、判定部、及び処理部等を基板上のＬＳＩやＦＰＧＡなどに回路として組み込む
ことによって、従来、ロジックアナライザが行っていた処理を、ハードウェア自律で実行させることができる。ハードウェアで処理することによって、例えば、ロジックアナライザによる障害特定に何時間〜何日という単位でかかっていた時間が、秒単位に短縮することができる。また、判定部、処理部等は基板上に組み込まれているので、ロジックアナライザのように接続（設定）するまでの手間を大幅に省くことができる。
【００２２】
＜第１実施形態＞
図１は、監視システムの実現例を示す図である。例えば、架体Ｓ１は通信インフラで用いられる装置であり、スロットにカードを挿入することでさまざまな処理を実現する。各カードにはそれぞれの処理を実現するための基板が実装されている。基板上にはＬＳＩやＦＰＧＡやその他の回路素子が搭載されている。監視システムは、基板上に実装されたＬＳＩやＦＰＧＡ、及びＤＩＰＳＷなどによって実現される。
【００２３】
基板には、例えば、架体Ｓ１の表となる面に、ＤＩＰＳＷ等の操作手段が備えられている。プログラムの動作の監視を行いたいときには、調査者は、基板上に配置されているＤＩＰＳＷ等を操作する。例えば、プログラムの更新に起因するバグが発生した場合、調査者は、バグの発生原因をつきとめるために、ＤＩＰＳＷ等を操作して監視システムを起動し値を入力する。このとき、ＤＩＰＳＷから入力する値は、プログラムの設計などに基づいて、ＣＰＵなどからのアクセスが予想されるメモリのアドレスや入出力されるデータの値である。ＤＩＰＳＷから入力された値に対して実行装置からアクセスがあった場合には、ＬＥＤを光らせるなどして、調査者に報知される。このようにして、調査者は、ＤＩＰＳＷ等を操作することによって、プログラムの動作を監視することができる。
【００２４】
図２は、監視システムＡ１の構成例のブロック図を示す。監視システムＡ１は、アドレス受信部１と、データ受信部２と、通常処理部３と、監視部４Ａと、モード設定部５Ａと、第１期待値設定部６Ａと、第２期待値設定部７Ａと、ＬＥＤ８と、ログ記録格納部９と、を備える。
【００２５】
アドレス受信部１及びデータ受信部２（双方ともに「受信部」に相当）は、コンピュータプログラムを実行するＣＰＵなどの実行装置からメインメモリ等へのアクセス信号を受信する。アクセス信号には、実行装置がアクセスしたいメモリのアドレスや、そのアドレスが示すメモリの領域に入出力されるデータが含まれる。実行装置からのアクセス信号を受け付けると、アドレス受信部１はアクセス信号に含まれるアドレスを通常処理部３に送信する。実行装置からのアクセス信号を受け付けると、データ受信部２はアクセス信号に含まれるデータを通常処理部３に送信する。このとき、アドレス受信部１及びデータ受信部２は、アクセス信号に含まれるアドレス及びデータをコピーして、監視部４Ａにも送信する。
【００２６】
通常処理部３は、ＣＰＵ等のプログラムを実行する実行装置からのアクセス信号に含まれるアドレスに、同じくアクセス信号に含まれるデータを入出力する処理等を行う。
【００２７】
メインメモリは、ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などの記憶素子によって実現される。アドレス受信部１、データ受信部２、及び、通常処理部３は、例えば、ＤＲＡＭ内に備えられている入出力回路、データ入出力回路、制御回路等で実現されてもよい。また、メインメモリとは別の回路、ＣＰＵなどで実現されてもよい。
【００２８】
モード設定部５Ａ（「切替部」に相当）は、監視部４Ａの有効化や動作モードの設定を行う。モード設定部５Ａは、例えば、４ビットのＤＩＰＳＷ等で実現される。調査者は、このＤＩＰＳＷ等で実現されるモード設定部５Ａを操作することによって、監視部４Ａの有効化や動作モードの設定を行う。各動作モードについては、後述する。
【００２９】
第１期待値設定部６Ａ及び第２期待値設定部７Ａ（「予定値設定部」に相当）は、プログラムを実行する実行装置が発行することが予測される予定値である、第１期待値および第２期待値を設定する。第１期待値設定部６Ａ及び第２期待値設定部７Ａは、例えば、８ビットのＤＩＰＳＷで実現される。調査者は、ＤＩＰＳＷ等で実現される第１期待値設定部６Ａ及び第２期待値設定部７Ａを操作することによって、第１期待値及び第２期待値を設定することができる。ここで、第１期待値及び第２期待値として設定されるのは、予め予想又は観測されたプログラムの正常動作における、プログラムの実行装置がアクセスするであろうアドレス及びデータの値（予定値）である。第１期待値設定部６Ａ及び第２期待値設定部７Ａを８ビットのＤＩＰＳＷで実現する場合には、８ビットのＤＩＰＳＷでは８ビットの値しか表現できない。そこで、ＤＩＰＳＷには、実際のアドレス及びデータではなく、例えば、８ビットで示される参照コードを設定する。以下、プログラムの実行装置がアクセスすることが予測されるアドレス及びデータの値（予定値）のことを期待値という。
【００３０】
監視部４Ａは、モード設定部５Ａの設定によって有効化及び動作モードが決定する。監視部４Ａは、第１期待値設定部６Ａと、第２期待値設定部７Ａとにおいて設定された第１期待値及び第２期待値に従って、プログラムの動作を監視する。監視部４Ａは、監視の結果をログ記録格納部９に送信するとともに、ＬＥＤ８に点灯又は消灯等の指示をする。
【００３１】
監視部４Ａは、第１期待値照合部４１と、第２期待値照合部４２と、ログ処理部４３と、期待値参照テーブル４４とを備える。
【００３２】
期待値参照テーブル４４には、第１期待値設定部６Ａ及び第２期待値設定部７Ａで設定された参照コードに対応するアドレス及びデータの値を格納している。参照コードをアドレスに変換するか、データに変換するかは、モード設定部５Ａに設定された動作モードによって選択される。期待値参照デーブル４４については、後述する。
【００３３】
第１期待値照合部４１及び第２期待値照合部４２（「判定部」に相当）は、第１期待値設定部６Ａ及び第２期待値設定部７Ａにて設定された参照コードと期待値テーブル４４とを参照して第１期待値及び第２期待値としてのアドレス又はデータの値を得る。第１期待値照合部４１及び第２期待値照合部４２は、第１期待値及び第２期待値とアドレス受信部１及びデータ受信部２から受信したアドレス及びデータとを比較、照合する。比較は動作モード毎の条件に従って行われる。第１期待値設定部４１及び第２期待値設定部４２は、比較結果として第１期待値及び第２期待値をログ処理部４３に送信する。
【００３４】
第１期待値照合部４１は、第２期待値照合部に対してマスタスレーブにおけるマスタとして動作する。第１期待値照合部４１は第２期待値照合部４２に対して、比較照合処理を要求したり、比較照合の結果として第２期待値をログ処理部４３に送信することを要求したりすることができる。
【００３５】
ログ処理部４３（「処理部」に相当）は、第１期待値照合部４１及び第２期待値照合部４２から送信される第１期待値及び第２期待値をログとしてログ記録格納部９に格納する。それとともに、ログ処理部４３は、ＬＥＤ８に点灯又は消灯の指示をする。
【００３６】
ログ記録格納部９は、監視部４Ａから送信されるプログラムの動作の監視のログを格納する。監視部４Ａからは、例えば、第１期待値及び第２期待値がログとして送信される。ログ記録格納部９は、例えば、不揮発性メモリなどで実現される。
【００３７】
ＬＥＤ８は、監視部４Ａからの指示に従って、点灯又は消灯する。例えば、ＬＥＤ８は
、点灯することにより、調査者の所望するプログラムの動作の監視結果が得られたことを報知する。
【００３８】
図３は、モード設定部５Ａを４ビットのＤＩＰＳＷ（モード設定用ＤＩＰＳＷ）で実現した場合のビットの割り付けの例を示す図である。図３は、モード設定部５Ａ（モード設定用ＤＩＰＳＷ）のそれぞれのビットの値と動作モードとの関係、その動作モードでの第１期待値及び第２期待値が表すデータの内容を示している。ＤＩＰＳＷは、ＯＮとＯＦＦを示すスイッチを複数備えている。例えば、４ビットのＤＩＰＳＷの場合は、４つのＳＷを備えており、各ＳＷをＯＮ又はＯＦＦにすることで各種処理の設定や、値の設定に用いられる。ＤＩＰＳＷに含まれる各ＳＷは、通常、１ビット、２ビット、３ビット、４ビットといったようにビットが割り当てられている。モード設定部５Ａの４ビットのＤＩＰＳＷの１ビット目は、例えば、監視部４Ａの有効化を設定する。１ビット目がＯＮの場合には監視部４Ａの有効化を、ＯＦＦの場合には監視部４Ａの無効化を示す。
【００３９】
モード設定部５ＡのＤＩＰＳＷの２ビット目は、例えば、監視部４Ａをアドレス／データ期待値照合モード（「第１の予定条件」に相当）で動作させることを設定するビットである。モード設定用のＤＩＰＳＷの２ビット目がＯＮの場合には監視部４Ａをアドレス／データ期待値照合モードで動作させることを示す。アドレス／データ期待値照合モードの場合には、第１期待値は、アドレスの期待値を示し、第２期待値は、データの期待値を示す。監視部４Ａは、アドレス／データ期待値照合モードの場合には、受信したアドレスと第１期待値（アドレスを示す）とが一致し、且つ、受信したデータと第２期待値（データを示す）の期待値とが一致した場合に、ログ記録格納部９に第１期待値及び第２期待値をログとして格納し、ＬＥＤ８に点灯指示を送信する。
【００４０】
モード設定用ＤＩＰＳＷの３ビット目は、例えば、監視部４Ａをアドレス範囲指定期待値照合モード（「第２の予定条件」に相当）で動作させることを設定するビットである。モード設定用ＤＩＰＳＷの３ビット目がＯＮの場合には、監視部４Ａをアドレス範囲指定期待値照合モードで動作させることを示す。アドレス範囲指定期待値照合モードの場合には、第１期待値は、アドレス範囲の始点アドレスを示し、第２期待値は、アドレス範囲の終点アドレスを示す。監視部４Ａは、アドレス範囲指定期待値照合モードの場合には、受信したアドレスが第１期待値（始点アドレスを示す）と第２期待値（終点アドレスを示す）とで定義されるアドレス範囲に含まれる場合に、ログ記録格納部９に第１期待値及び第２期待値をログとして格納し、ＬＥＤ８に点灯指示を送信する。
【００４１】
モード設定用ＤＩＰＳＷの４ビット目は、例えば、監視部４Ａをデータ範囲指定期待値照合モード（「第３の予定条件」に相当）で動作させることを設定するビットである。モード設定用ＤＩＰＳＷの４ビット目がＯＮの場合には、監視部４Ａをデータ範囲指定期待値照合モードで動作させることを示す。データ範囲指定期待値照合モードの場合には、第１期待値はデータ範囲の始点データを示し、第２期待値はデータ範囲の終点データを示す。監視部４Ａは、データ範囲指定期待値照合モードの場合には、受信したデータが第１期待値（始点データを示す）と第２期待値（終点データを示す）とで定義されるデータ範囲に含まれる場合に、ログ記録格納部９に第１期待値及び第２期待値をログとして格納し、ＬＥＤ８に点灯指示を送信する。
【００４２】
図４は、第１期待値設定部６Ａ及び第２期待値設定部７Ａを８ビットのＤＩＰＳＷ（ＤＩＰＳＷ１及びＤＩＰＳＷ２）で実現した場合のビット割り付けの例を示す図である。８ビットのＤＩＰＳＷは、通常、１ビット、２ビット、・・・、８ビットというようにビットが割り当てられている。ＤＩＰＳＷ１及びＤＩＰＳＷ２の１ビット目から８ビット目を組み合わせた値が参照コードを構成する。例えば、図４に示すように、ＤＩＰＳＷ１の８ビット目のみＯＮになっており、１ビット目から７ビット目はＯＦＦの場合は、参照コー
ド（１、２、３、４、５、６、７、８）＝０００００００１を示す。また、参照コード０００００００１は１６進数表記で０ｘ０１と表わされる。この参照コードをアドレスに変換するかまたはデータに変換するかは、モード設定部５Ａでの動作モードの設定により決定される。
【００４３】
図５は、期待値参照テーブル４４に格納されるアドレス用参照テーブルの例を示す。アドレス用参照テーブルには、参照コードとアドレスのオフセットアドレスとが関連付けられている。例えば、第１期待値がアドレスを示す場合（動作モードがアドレス／データ期待値照合モード又はアドレス範囲指定期待値照合モードの場合）に、第１期待値の参照コード０ｘ０１はアドレスの期待値０ｘ０＿０００４に変換される。
【００４４】
図６は、期待値参照テーブル４４に格納されるデータ用参照テーブルの例を示す。データ用参照テーブルには、参照コードとデータ値とが関連付けられている。例えば、第１期待値がデータを示す場合（動作モードがデータ範囲指定期待値照合モードの場合）に、第１期待値の参照コード０ｘ０２はデータの期待値０ｘ８０００＿００００に変換される。
【００４５】
図７及び図８は、モード設定部５Ａと、第１期待値設定部６Ａと、第２期待値設定部７ＡとをＤＩＰＳＷで実現した場合の設定例を示す。図７では、アドレス／データ期待値照合モードの場合の設定例を示す。図８では、アドレス範囲指定期待値照合モードの場合の設定例を示す。
【００４６】
図７のモード設定部５Ａ（モード設定用ＤＩＰＳＷ）は、図３を参照すると、１ビット目と２ビット目がＯＮであることから、監視部４Ａをアドレス／データ期待値照合モードで有効化することを示す。図７の第１期待値設定部６Ａ（ＤＩＰＳＷ１）は、アドレス／データ期待値照合モードの場合には、第１期待値としてアドレスを示す。ＤＩＰＳＷ１は、１ビット目〜７ビット目がＯＦＦであり、８ビット目がＯＮであるので、参照コードは０００００００１＝０ｘ０１である。第１期待値設定部６Ａは、アドレスの期待値を示すので、図５のアドレス参照テーブルを参照すると、参照コード０ｘ０１は、アドレス０ｘ０＿０００４を示す。図７の第２期待値設定部７Ａ（ＤＩＰＳＷ２）は、アドレス／データ期待値モードの場合には、第２期待値としてデータを示す。ＤＩＰＳＷ２は、７ビット目のみＯＮでそれ以外のビットはＯＦＦであるので、参照コードは００００００１０＝０ｘ０２である。第２期待値設定部７Ａは、データの期待値を示すので、図６のデータ参照テーブルを参照して、参照コード０ｘ０２は、データ０ｘ８０００＿００００を示す。
【００４７】
モード設定部５Ａと、第１期待値設定部６Ａと、第２期待値設定部７Ａとが、例えば、図７に示される設定になっている場合には、監視部４Ａは、アドレス０ｘ０＿０００４であり、且つ、データ０ｘ８０００＿００００に対してアクセスがあった場合に、第１期待値及び第２期待値をログ記録格納部９に格納し、ＬＥＤ８に点灯指示を出す。
【００４８】
図８のモード設定部５Ａ（モード設定用ＤＩＰＳＷ）は、図３を参照すると、１ビット目と３ビット目とがＯＮであるので、監視部４Ａをアドレス範囲指定期待値照合モードで有効化することを示す。図８の第１期待値設定部６Ａ（ＤＩＰＳＷ１）は、アドレス範囲指定期待値照合モードの場合には、第１期待値としてアドレス範囲の始点アドレスを示す。ＤＩＰＳＷ１は、８ビット目のみＯＮでそれ以外のビットはＯＦＦであるので、参照コードは０００００００１＝０ｘ０１である。第１期待値設定部６Ａは、アドレス範囲の始点アドレスを示すので、図６のデータ参照テーブルを参照して、参照コード０ｘ０１は、データ０ｘ０＿０００４を示す。図８の第２期待値設定部７Ａ（ＤＩＰＳＷ２）は、アドレス範囲指定期待値モードの場合には、第２期待値としてアドレス範囲の終点アドレスを示す。ＤＩＰＳＷ２は、１ビット目から８ビット目が全てＯＮであるので、参照コードは１１１１１１１１＝０ｘＦＦである。第２期待値設定部７Ａは、アドレス範囲の終点アド
レスを示すので、図５のアドレス参照テーブルを参照すると、参照コード０ｘＦＦは、アドレス０ｘ１＿ＦＦＦＣを示す。
【００４９】
モード設定部５Ａと、第１期待値設定部６Ａと、第２期待値設定部７Ａとが、例えば、図８に示される設定である場合には、監視部４Ａは、アドレス０ｘ０＿０００４からアドレス０ｘ１＿ＦＦＦＣの範囲に含まれるアドレスに対してアクセスがあった場合に、第１期待値及び第２期待値をログ記録格納部９に格納し、ＬＥＤ８に点灯指示を出す。
【００５０】
＜＜第１実施形態の動作例＞＞
図９は、監視システムの動作例を示すフロー図である。図９では、３２ビットバスでのプログラムを実行する実行装置からのアクセスで、オフセットアドレス０ｘ０＿０００４、データ０ｘ８０００＿００００へのアクセスがあったかを調査したい場合を示す。図９では、モード設定部５Ａ、第１期待値設定部６Ａ、及び第２期待値設定部７ＡをＤＩＰＳＷを用いて実現しているとする。それぞれのＤＩＰＳＷの設定は、図７に示す設定と同じである。
【００５１】
まず、調査者は、第１期待値設定部６Ａと第２期待値設定部７Ａとに参照コードを設定する（ＯＰ１）。調査者は、図７に示すように、ＤＩＰＳＷ１を０ｘ０１（オフセットアドレス０ｘ０＿０００４を示す参照コード）に、ＤＩＰＳＷ２を０ｘ０２（データ０ｘ８０００＿００００を示す参照コード）に設定する。
【００５２】
次に、調査者は、監視部４Ａをアドレス／データ期待値照合モードで動作させるように、モード設定部５Ａを設定する（ＯＰ２）。図７に示すように、調査者は、モード設定用ＤＩＰＳＷのアドレス／データ期待値照合モードを有効化するためのビットのみをＯＮにする（図３より、モード設定用ＤＩＰＳＷの２ビット目のみをＯＮにする）。
【００５３】
第１期待値設定部６Ａ、第２期待値設定部７Ａ、及びモード設定部５Ａにおいて動作モードを設定したら、調査者は、モード設定部５Ａにて、監視部４Ａを有効化する（ＯＰ３）。調査者は、図７に示すように、モード設定用ＤＩＰＳＷの１ビット目をＯＮにする。この操作によって、プログラムの動作の監視が開始される。
【００５４】
プログラムの動作の監視が開始されると、第１期待値照合部４１は第１期待値設定部６Ａで設定された参照コードと期待値参照テーブル４４とを参照して第１期待値の値（アドレスの期待値０ｘ０＿０００４）を読み出し、保持する。同じく、第２期待値照合部４２も、第２期待値設定部７Ａで設定された参照コードと期待値参照テーブル４４とを参照して第２期待値の値（データの期待値０ｘ８０００＿００００）を読み出し、保持する。（ＯＰ４）。
【００５５】
プログラムを実行する実行装置によるライトアクセス（書き込みアクセス）が発生すると、アドレス受信部１とデータ受信部２とは、それぞれ、第１期待値照合部４１と第２期待値照合部４２との双方にアドレス及びデータのコピーを送信する。アドレス及びデータのコピーを受信すると、第１期待値照合部４１は、受信したアドレスと第１期待値の比較、照合を開始する。同様に、並行して、第２期待値照合部４２は、受信したデータと第２期待値との比較、照合を開始する。（ＯＰ５）。
【００５６】
第１期待値照合部４１における比較の結果、受信したアドレスと第１期待値（アドレス）とが一致しない場合には（ＯＰ６：ＮＯ）、処理がＯＰ５に戻る。
【００５７】
第１期待値照合部４１における比較の結果、受信したアドレスと第１期待値（アドレス）とが一致する場合には（ＯＰ６：ＹＥＳ）、第１期待値照合部４１は、第２期待値照合
部４２における比較の結果を問い合わせる。
【００５８】
第２期待値照合部４２における比較の結果、受信したデータと第２期待値（データ）とが一致しない場合には（ＯＰ７：ＮＯ）、処理がＯＰ５に戻る。このとき、第１期待値照合部４１は、第２期待値照合部４２に対して、ＯＰ５の処理を再度行うようにリスタート要求を行う。それとともに、第１期待値照合部４１もＯＰ５の処理を再度行う。
【００５９】
第２期待値照合部４２における比較の結果、受信したデータと第２期待値（データ）とが一致する場合には（ＯＰ７：ＹＥＳ）、第１期待値照合部４１は、第２期待値照合部４２に対してログ処理要求を行う。ログ処理要求とは、第２期待値照合部４２に対して、受信したデータと第２期待値とが一致した場合の第２期待値をログ処理部４３に送信することを指示することである。第１期待値照合部４１および第２期待値照合部４２は、第１期待値及び第２期待値をログ処理部に送信する。ログ処理部４３は、第１期待値及び第２期待値をログ記録格納部９に格納する。それとともに、ログ処理部４３は、ＬＥＤ８に対して点灯指示を行い、ＬＥＤ８を点灯させ、調査者に報知する（ＯＰ８）。
【００６０】
＜＜第１実施形態の作用効果＞＞
第１実施形態によれば、架体に搭載されるカード単体でプログラムの動作を監視することができるので、プログラムの動作をモニタするために測定器を設定するなどの面倒な作業が発生しない。
【００６１】
また、測定器を用いず、さらに、アドレス受信部１及びデータ受信部２は、アドレス及びデータを通常処理部３に送信するとともに、アドレス及びデータのコピーを第１期待値照合部４１及び第２期待値照合部４２に送信する。このことによって、運用状態にある装置でも電源を落とすことなく、かつ、通常運用に影響を与えることなくプログラムの監視を行うことができる。
【００６２】
モード設定部５Ａ、第１期待値設定部６Ａ、及び、第２期待値設定部７ＡをＤＩＰＳＷ等で実現する場合、装置の電源投入前に予め設定を施しておくことにより、電源投入直後のプログラムを実行する実行装置の初期動作も監視することができる。
【００６３】
第１実施形態をＬＳＩやＦＢＧＡなどを用いてハードウェアで実現することによって、プログラムの開発が必要なくなり、測定器、制御用端末、解析ツールなどの設備も必要なくなるので、コストを抑えることができる。
【００６４】
＜第２実施形態＞
第２実施形態は、第１実施形態におけるモード設定及び期待値設定を遠隔から操作することを実現する。第２実施形態は、第１実施形態と共通の構成を有するので、主として相違点について説明し、共通点については説明を省略する。
【００６５】
図１０は、監視システムの第２実施形態の実現例である。第１実施形態では、図１に示されるように、架体Ｓ１に搭載されるカード上にＤＩＰＳＷ等で実現されるモード設定部５Ａ、第１期待値設定部６Ａ、第２期待値設定部７Ａを備える。第２実施形態では、このＤＩＰＳＷ等で実現されるモード設定部５Ａ、第１期待値設定部６Ａ、第２期待値設定部７Ａに代えて、遠隔から設定できる遠隔操作手段と、遠隔操作手段からの信号をモード設定値、第１期待値、および第２期待値として保持する保持手段とを備える。
【００６６】
架体Ｓ２に挿入されている基盤Ａは、架体Ｓ２の表面となる面に制御端末Ｔ１を接続するインターフェイスを備える。インターフェイスはモニタポイントとシリアル線で接続されており、制御端末Ｔ１から入力することで、モードの設定や期待値の設定を行うことが
できる。
【００６７】
図１１は、監視システムＡ２の構成例を示す図である。監視システムＡ２は、アドレス受信部１と、データ受信部２と、通常処理部３と、監視部４Ｂと、モード設定値保持部５Ｂと、第１期待値保持部６Ｂと、第２期待値保持部７Ｂと、ＬＥＤ８と、ログ記録格納部９と、パラレルシリアル変換部（Ｐ／Ｓ変換部）１０と、遠隔操作部１１とを備える。
【００６８】
遠隔操作部１１（「遠隔操作部」に相当）は、パーソナルコンピュータなどで実現される制御端末である。遠隔操作部１１は、ＲＳ−２３２Ｃ等のシリアル通信で接続されてもよいし、光ファイバ通信などの通信ネットワークを介して接続されてもよい。図１０及び図１１では、ＲＳ−２３２Ｃ等のシリアル通信で接続されている場合を示す。調査者は遠隔操作部１１よりモード設定及び期待値設定を行う。
【００６９】
モード設定及び期待値設定は、例えば、遠隔操作部１１において以下のように実行される。遠隔操作部１１としての制御端末Ｔ１に監視システムの設定用のプログラム等をインストールする。制御端末Ｔ１の画面上に、第１実施形態のモード設定部５Ａ、第１期待値設定部６Ａ、第２期待値設定部７Ａを実現するＤＩＰＳＷのイメージを表示し、調査者は、その画面上に表示されたＤＩＰＳＷを操作する。調査者が画面上のＤＩＰＳＷの操作を完了すると、例えば、２０ビット（モード設定値４ビット＋第１期待値８ビット＋第２期待値８ビット）のビット列に変換されて送信されるようにしてもよい。その他、シリアル伝送でビット列を送信できる手段であればよい。
【００７０】
Ｐ／Ｓ変換部１０は、遠隔操作部１１から送信されてくるシリアル通信の信号（ビット列）をパラレル通信の信号に変換する。Ｐ／Ｓ変換部１０は、パラレル変換された信号をモード設定値保持部５Ｂと、第１期待値保持部６Ｂと、第２期待値保持部７Ｂとに送信する。このとき、例えば、制御端末から２０ビットのビット列が送信されてきた場合、先頭４ビットをモード設定値保持部５Ｂに送信し、次の８ビットを第１期待値設定保持部６Ｂに送信し、最後の８ビットを第２期待値保持部７Ｂに送信する。このときのビットの割り付けは、第１実施形態のモード設定部５Ａ、第１期待値保持部６Ａ、第２期待値保持部７Ａのようにしてもよい（図３、図４参照）。
【００７１】
モード設定値保持部５Ｂ、第１期待値保持部６Ｂ、及び第２期待値保持部７Ｂは、Ｐ／Ｓ変換部１０から送信されるビット列の値を保持する。このとき、第１期待値保持部６Ｂと第２期待値保持部７Ｂが保持するビット列は、図７及び図８に示される参照コードであってもよい。
【００７２】
第１期待値照合部４１及び第２期待値照合部４２は、第１実施形態と同様にして、第１期待値保持部６Ｂ及び第２期待値保持部７Ｂにて保持される参照コードと期待値テーブル４４とを参照してアドレス又はデータの値（第１期待値及び第２期待値）を得る。得られたアドレス又はデータの値とアドレス受信部１又はデータ受信部２から受信したアドレス又はデータとを比較する。比較はモード設定値保持部５Ｂに保持された動作モードに従って行われる。第１期待値設定部４１及び第２期待値設定部４２は、比較結果として、第１期待値及び第２期待値をログ処理部４３に送信する。
【００７３】
＜＜第２実施形態の動作例＞＞
図１２は、監視システムの動作例を示すフロー図である。図１２では、３２ビットバスでのプログラムを実行する実行装置からのアクセスで、オフセットアドレス０ｘ０＿０００４から０ｘ１＿ＦＦＦＣの範囲でアクセスがあったかを調査したい場合を示す。
【００７４】
まず、調査者は、遠隔操作部１１から、モード設定値保持部５Ｂ、第１期待値保持部６
Ｂ、及び第２期待値保持部７Ｂへ設定値を送信する（ＯＰ１１）。このとき、例えば、シリアル伝送で２０ビットのビット列“１０１００００００００１１１１１１１１１”を送信する。先頭４ビットの“１０１０”は動作モードの設定値を示す。次の８ビット“０００００００１”は、第１期待値の参照コードを示す。最後の８ビット“１１１１１１１１”は、第２期待値の参照コードを示す。このときのビットの割り付けは、図８で示すモード設定用ＤＩＰＳＷ、ＤＩＰＳＷ１，ＤＩＰＳＷ２と同様である。
【００７５】
遠隔操作部１１からビット列を受信すると、Ｐ／Ｓ変換部１０は、ビット列をパラレル変換する。先頭の４ビットはモード設定値保持部５Ｂへ送信する。次の８ビットは第１期待値保持部６Ｂへ送信する。最後の８ビットは第２期待値保持部７Ｂへ送信する。
【００７６】
モード設定値保持部５Ｂは、４ビットのビット列を受信すると、その設定値を格納する（ＯＰ１２）。例えば、ビット列“１０１０”を受信した場合には、監視部４Ｂをアドレス範囲指定期待値参照モードで有効化する。
【００７７】
第１期待値保持部６Ｂは、参照コードとして“０００００００１”＝０ｘ０１を格納する。第２期待値保持部７Ｂは、参照コードとして“１１１１１１１１”＝０ｘＦＦを格納する（ＯＰ１３）。
【００７８】
監視部４Ｂは、モード設定値保持部５Ｂに格納された設定値により、アドレス範囲指定照合モードで有効化される。第１期待値照合部４１は、第１期待値保持部６Ｂに格納された参照コードと期待値参照テーブル４４とを参照して第１期待値を読み出し、保持する。この場合、アドレス範囲指定期待値照合モードであるので第１期待値はアドレス範囲の始点アドレスを示す。第１期待値が示す始点アドレスは、図５のアドレス参照テーブルを参照して、０ｘ０＿０００４である。同じく、第２期待値照合部４２は、第２期待値保持部７Ｂに格納された参照コードと期待値参照テーブル４４とを参照して第２期待値を読み出し、保持する。この場合の第２期待値は、参照コード０ｘＦＦとアドレス参照テーブルより、０ｘ１＿ＦＦＦＣである。（ＯＰ１４）。
【００７９】
プログラムを実行する実行装置によるライトアクセス（書き込みアクセス）が発生すると、アドレス受信部１とデータ受信部２とは、それぞれ、第１期待値照合部４１と第２期待値照合部４２との双方にアドレス及びデータのコピーを送信する。アドレス及びデータのコピーを受信すると、アドレス範囲指定期待値照合モードの場合には、第１期待値照合部４１は、受信したアドレスと第１期待値の比較、照合を開始する。同様に、並行して、第２期待値照合部４２は、受信したアドレスと第２期待値との比較、照合を開始する。（ＯＰ１５）。
【００８０】
第１期待値照合部４１における比較の結果、受信したアドレスが第１期待値（アドレス）より小さい場合には（ＯＰ１６：ＮＯ）、処理がＯＰ１５に戻る。
【００８１】
第１期待値照合部４１における比較の結果、受信したアドレスが第１期待値（アドレス）以上の場合には（ＯＰ１６：ＹＥＳ）、第１期待値照合部４１は、第２期待値照合部４２における比較の結果を問い合わせる。
【００８２】
第２期待値照合部４２における比較の結果、受信したアドレスが第２期待値（アドレス）より大きい場合には、（ＯＰ１７：ＮＯ）、受信したアドレスがアドレス指定範囲外の値であるので、処理がＯＰ１５に戻る。このとき、第１期待値照合部４１は、第２期待値照合部４２に対して、ＯＰ１５の処理を再度行うようにリスタート要求を行う。それとともに、第１期待値照合部４１もＯＰ１５の処理を再度行う。
【００８３】
第２期待値照合部４２における比較の結果、受信したデータが第２期待値（アドレス）以下である場合には（ＯＰ１７：ＹＥＳ）、受信したアドレスがアドレス指定範囲内の値であるので、第１期待値照合部４１は、第２期待値照合部４２に対してログ処理要求を行う。第１期待値照合部４１および第２期待値照合部４２は、第１期待値及び第２期待値をログ処理部に送信する。ログ処理部４３は、第１期待値及び第２期待値をログ記録格納部９に格納する。それとともに、ログ処理部４３は、ＬＥＤ８に対して点灯指示を行い、ＬＥＤ８を点灯させ、調査者に報知する（ＯＰ１８）。
【００８４】
＜＜第２実施形態の作用効果＞＞
第２実施形態において、遠隔操作部１１によって遠隔からのモード設定、期待値設定を行うことができるようになる。このことによって、例えば、通信装置に障害が発生した場合でも、障害が発生したカードがネットワークに接続していれば、現地に赴くことなく、遠隔地から操作することができる。
【００８５】
＜変形例＞
第１実施形態において、モード設定部５Ａ、第１期待値設定部６Ａ、及び第２期待値設定部７ＡをＤＩＰＳＷを用いて実現する例を説明した。これに代えて、着脱式のコネクタ等を用いても実現可能である。
【００８６】
第１実施形態及び第２実施形態において、監視システムＡ１及びＡ２は、ＬＥＤ８とログ記録格納部９とを備える。監視システムは、ＬＥＤ８のみ備えていてもよいし、ログ記録格納部９のみを備えていてもよい。
【００８７】
第１実施形態及び第２実施形態において、第１期待値と第２期待値とは、参照コードと期待値参照テーブル４４とを用いて変換を行った。第１実施形態において、ＤＩＰＳＷ１及びＤＩＰＳＷ２がアドレス及びデータを十分に表現できるほどビット数が多い場合や、または、調査したいアドレス及びデータがＤＩＰＳＷのビット数で十分表現できる場合には、参照コードを用いず直接アドレス及びデータの値を入力すればよい。同様に、第２実施形態において、第１期待値保持部６Ｂ及び第２期待値保持部７Ｂが十分なビット数を保持できる場合や、調査したいアドレス及びデータが第１期待値保持部６Ｂ及び第２期待値保持部７Ｂが十分保持できる程のビット数で表現できる場合には、参照コードを用いず直接アドレス及びデータの値を入力すればよい。
【００８８】
第１実施形態及び第２実施形態において、プログラムを実行する実行装置からのライトアクセスが発生した場合に、第１期待値照合部４１及び第２期待値照合部４２において、受信したアドレス及びデータと第１期待値及び第２期待値との比較を行った。これに代えて、プログラムを実行する実行装置からの読出しアクセスが発生した場合に、受信したアドレス及びデータと第１期待値及び第２期待値との比較を行ってもよい。
【図面の簡単な説明】
【００８９】
【図１】監視システムの実現例を示す図である。
【図２】監視システムの構成例を示す図である。
【図３】モード設定用ＤＩＰＳＷのビット割り付けの例を示す図である。
【図４】期待値設定用ＤＩＰＳＷのビット割り付けの例を示す図である。
【図５】アドレス用参照テーブルの例を示す図である。
【図６】データ用参照テーブルの例を示す図である。
【図７】アドレス／データ期待値照合モードの場合のＤＩＰＳＷの設定例を示す図である。
【図８】アドレス範囲指定期待値照合モードの場合のＤＩＰＳＷの設定例を示す図である。
【図９】監視システムの動作例を示すフロー図である。
【図１０】監視システムの実現例を示す図である。
【図１１】監視システムの構成例を示す図である。
【図１２】監視システムの動作例を示すフロー図である。
【図１３】ロジックアナライザの使用方法例を示す図である。
【図１４】端に位置する基板が固定されている架体の例を示す図である。
【符号の説明】
【００９０】
１    アドレス受信部
２    データ受信部
３    通常処理部
４Ａ、４Ｂ  監視部
５Ａ  モード設定部
５Ｂ  モード設定値保持部
６Ａ  第１期待値設定部
６Ｂ  第１期待値保持部
７Ａ  第２期待値設定部
７Ｂ  第２期待値保持部
８    ＬＥＤ
９    ログ記録格納部
１０  Ｐ／Ｓ変換部
１１  遠隔操作部
４１  第１期待値照合部
４２  第２期待値照合部
４３  ログ処理部
４４  期待値参照テーブル
Ａ１、Ａ２  監視システム
ＰＳ１、Ｓ１、Ｓ２      架体
ＰＬ１      ロジックアナライザ
Ｔ１  制御端末
【図１】
2010026979.tif 000003
【図２】
2010026979.tif 000004
【図３】
2010026979.tif 000005
【図４】
2010026979.tif 000006
【図５】
2010026979.tif 000007
【図６】
2010026979.tif 000008
【図７】
2010026979.tif 000009
【図８】
2010026979.tif 000010
【図９】
2010026979.tif 000011
【図１０】
2010026979.tif 000012
【図１１】
2010026979.tif 000013
【図１２】
2010026979.tif 000014
【図１３】
2010026979.tif 000015
【図１４】
2010026979.tif 000016