JP5818831B2 - 情報処理装置 - Google Patents

情報処理装置 Download PDF

Info

Publication number
JP5818831B2
JP5818831B2 JP2013036478A JP2013036478A JP5818831B2 JP 5818831 B2 JP5818831 B2 JP 5818831B2 JP 2013036478 A JP2013036478 A JP 2013036478A JP 2013036478 A JP2013036478 A JP 2013036478A JP 5818831 B2 JP5818831 B2 JP 5818831B2
Authority
JP
Japan
Prior art keywords
access
register
setting value
detected
information processing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2013036478A
Other languages
English (en)
Other versions
JP2014164626A (ja
Inventor
篤志 西田
篤志 西田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kyocera Document Solutions Inc
Original Assignee
Kyocera Document Solutions Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Kyocera Document Solutions Inc filed Critical Kyocera Document Solutions Inc
Priority to JP2013036478A priority Critical patent/JP5818831B2/ja
Publication of JP2014164626A publication Critical patent/JP2014164626A/ja
Application granted granted Critical
Publication of JP5818831B2 publication Critical patent/JP5818831B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Description

本発明は、情報処理装置に関するものである。
ある情報処理装置では、ソフトウェアのバグ検出を目的として、複数の機能モジュールの起動レジスターに対するレジスター設定の順序の期待値と、実際のレジスター設定の順序とを比較し、両者が異なる場合にはエラーを通知する(例えば特許文献1参照)。
また、ある半導体集積回路では、不具合の解消を目的として、内蔵ROM(Read Only Memory)の特定のアドレスへの読み出しが行われると、代替コードレジスターから、代替のプログラムコードが出力され、CPU(Central Processing Unit)で実行される(例えば特許文献2参照)。
特開2006−133969号公報 特開2003−178596号公報
上述の情報処理装置では、不具合の検出はできるものの、不具合の原因を特定しその不具合を解消するためには、ソフトウェアを修正して繰り返し実験的に実行させる必要がある。
しかしながら、近年、ソフトウェアモジュールとハードウェアモジュールを有する情報処理装置の開発においては、装置の高機能化、複雑化などに伴い、ソフトウェア開発の比重が高まっており、ソフトウェア開発者の負荷が高い状態となっている。このため、不具合の原因が特定されないまま、ソフトウェアの修正をソフトウェア開発者に依頼した場合、ソフトウェア開発者の負荷がさらに高くなってしまい、結果として、開発に遅延が生じてしまう可能性がある。したがって、ハードウェア開発者が比較的容易に不具合の原因を特定できることが好ましい。
上述の半導体集積回路では、不具合の可能性のあるコードを置換して動作の検証を行うことができるが、ソフトウェア中のコードを別のコードに置き換える必要があるため、その別のコードを作成するためにソフトウェアの知識が必要になる。
また、情報処理装置内のハードウェアモジュールは、ソフトウェアモジュールによって、ハードウェアモジュールの実行する機能を指定するためのレジスターを有しており、ソフトウェアモジュールは、1つのレジスターに対して時間の経過とともに順番に設定値を書き込んでいくため、上述の半導体集積回路による特定アドレスに対するアクセスの値(コード)を特定の1つの値に固定的に置き換える方法では、不具合の原因を特定することは困難である。
本発明は、上記の問題に鑑みてなされたものであり、比較的容易に不具合の原因を特定できる情報処理装置を得ることを目的とする。
本発明に係る情報処理装置は、1または複数のレジスターを有し前記レジスターの設定値に応じた動作をするハードウェアモジュールと、所定のソフトウェアモジュールによる特定の前記レジスターへ設定値を書き込むアクセスを検出するレジスターアクセス監視部と、第1動作モードにおいて、前記レジスターアクセス監視部により検出された前記アクセスの前記設定値を順番にレジスターアクセス履歴として取得し、前記レジスターアクセス履歴内の1または複数の前記設定値を変更するレジスターアクセス履歴管理部と、第2動作モードにおいて、前記レジスターへ設定値を書き込むアクセスを順番に検出していき、検出した前記アクセスの前記設定値と、検出した前記アクセスの順番に対応する前記レジスターアクセス履歴内の前記設定値とが異なる場合、検出した前記アクセスの前記設定値を前記レジスターアクセス履歴内の前記設定値に変更し、前記設定値を変更した前記アクセスを前記ハードウェアモジュールへ供給し、検出した前記アクセスの前記設定値と、検出した前記アクセスの順番に対応する前記レジスターアクセス履歴内の前記設定値とが同一である場合、検出した前記アクセスを、前記設定値を変更せずにそのまま前記ハードウェアモジュールへ供給するレジスターアクセス置換部とを備える。
本発明によれば、比較的容易に不具合の原因を特定できる。
図1は、本発明の実施の形態に係る情報処理装置の構成を示すブロック図である。 図2は、図1に示す情報処理装置の動作について説明するフローチャートである(1/2)。 図3は、図1に示す情報処理装置の動作について説明するフローチャートである(2/2)。 図4は、図1に示す情報処理装置において取得されるレジスターアクセス履歴の一例を示す図である。 図5は、図4に示すレジスターアクセス履歴において、あるアクセス番号の設定値が変更された後のレジスターアクセス履歴の一例を示す図である。
以下、図に基づいて本発明の実施の形態を説明する。
図1は、本発明の実施の形態に係る情報処理装置の構成を示すブロック図である。
図1に示す情報処理装置1は、例えば組み込み機器などであって、所定の機能を実現するハードウェアモジュール11と、そのハードウェアモジュール11の1または複数のレジスター21に対して設定値を書き込むことで、ハードウェアモジュール11の動作を制御するソフトウェアモジュール12とを有する。ソフトウェアモジュール12は、所定のプログラムがCPU22で実行されることで実現される。また、ハードウェアモジュール11は、1または複数のレジスター21を有し各レジスターの設定値に応じた動作をする。
さらに、情報処理装置1は、デバッグ機能切り替え部13、レジスターアクセス監視部14、レジスターアクセス履歴管理部15、デバッグ用インターフェイス16、およびレジスターアクセス置換部17を有する。これらは、例えばASIC(Application Specific Integrated Circuit)で実現される。
デバッグ機能切り替え部13は、1回目のソフトウェアモジュール12の実行時に、当該情報処理装置1の動作モードを履歴記録モードにセットし、2回目のソフトウェアモジュール12の実行時に、当該情報処理装置1の動作モードを変更設定値適用モードにセットする。
レジスターアクセス監視部14は、ソフトウェアモジュール12による特定のレジスター21へ設定値を書き込むアクセス(つまり、レジスター21への書込要求)を検出する。
この実施の形態では、レジスターアクセス監視部14は、1または複数のレジスター21のうち、例えば後述の端末装置2などから指定されたアドレスを有するレジスター21へ設定値を書き込むアクセスを検出し、それ以外のアドレスへのアクセスを検出しない。
また、レジスターアクセス監視部14は、所定のレジスターへ所定の設定値が書き込まれた後、特定のレジスター21へ設定値を書き込むアクセスを検出するようにしてもよい。例えば、レジスターアクセス監視部14は、起動レジスターに、ハードウェアモジュール11を起動させる設定値を書き込むアクセスを検出した時点で、特定のレジスター21へ設定値を書き込むアクセスの監視を開始するようにしてもよい。
例えば、情報処理装置がコピー機能を有する装置である場合、ソフトウェアモジュール12が、コピーの実行のために、ハードウェアモジュール11の起動レジスターを起動したときに、特定のレジスター21へ設定値を書き込むアクセスの監視を開始するようにしてもよい。
レジスターアクセス履歴管理部15は、履歴記録モードにおいて、レジスターアクセス監視部14により検出されたアクセスの設定値を順番にレジスターアクセス履歴として取得して図示せぬSRAM(Static Random Access Memory)といったRAMなどに保持し、その後、そのレジスターアクセス履歴内の1または複数の設定値を変更する。
この実施の形態では、レジスターアクセス履歴管理部15は、デバッグ用インターフェイス16を介して外部の端末装置2へレジスターアクセス履歴を表示させ、端末装置2からの指令に従って、レジスターアクセス履歴内の1または複数の設定値を変更する。
なお、端末装置2は、ユーザーに対して情報を表示する表示装置、およびユーザー操作を検出する入力装置を備え、レジスターアクセス履歴を表示装置で表示し、また、そのレジスターアクセス履歴内の設定値の変更のためのユーザー操作を入力装置で検出して、デバッグ用インターフェイス16を介してレジスターアクセス履歴管理部15に通知する。
デバッグ用インターフェイス16は、外部の端末装置2との間でデータ通信を行う通信回路である。
レジスターアクセス置換部17は、CPU22とハードウェアモジュール11との間に設けられ、変更設定値適用モードにおいて、(a)特定のレジスター21へ設定値を書き込むアクセスを順番に検出していき、(b1)検出したアクセスの設定値と、検出したアクセスの順番に対応するレジスターアクセス履歴内の設定値とが異なる場合、検出したアクセスの設定値をレジスターアクセス履歴内の設定値に変更し、設定値を変更したアクセスをハードウェアモジュール11へ供給し、(b2)検出したアクセスの設定値と、検出したアクセスの順番に対応するレジスターアクセス履歴内の設定値とが同一である場合、検出したアクセスを、設定値を変更せずにそのままハードウェアモジュール11へ供給する。
つまり、履歴記録モードでは、レジスターアクセス監視部14およびレジスターアクセス履歴管理部15が上述の動作を行い、レジスターアクセス置換部17は、ソフトウェアモジュール12によるすべてのアクセスをそのままハードウェアモジュール11へ供給する。変更設定値適用モードでは、レジスターアクセス履歴管理部15は、上述の履歴の取得をせずに、レジスターアクセス置換部17は、上述の動作を行う。
次に、上記情報処理装置の動作について説明する。図2および図3は、図1に示す情報処理装置の動作について説明するフローチャートである。
まず、デバッグ機能切り替え部13は、例えば端末装置2からの指令に従って、動作モードを履歴記録モードにセットする(ステップS1)。
履歴記録モードがセットされると、レジスターアクセス履歴管理部15は、アクセスカウンターをゼロにセットする(ステップS2)。
その後、ソフトウェアモジュール12の実行が開始される(ステップS3)。
そして、レジスターアクセス監視部14は、ソフトウェアモジュール12の実行開始時、またはその後の所定のタイミングで、CPU22からハードウェアモジュール11へのアクセスの監視を開始する(ステップS4)。
レジスターアクセス監視部14は、特定のレジスター21へのライトアクセスを検出すると、そのレジスター21のアドレスおよび設定値(書き込まれる値)をレジスターアクセス履歴管理部15に通知する。レジスターアクセス履歴管理部15は、その通知を受け付けると、アクセスカウンターを1だけ増加させ(ステップS5)、通知されたアドレスのレジスターのレジスターアクセス履歴に、通知された設定値を追加する(ステップS6)。つまり、レジスターアクセス履歴には、通知された順番で設定値が配列されることになる。
図4は、図1に示す情報処理装置において取得されるレジスターアクセス履歴の一例を示す図である。図4に示す例では、アドレスが0x1001であるレジスターについてのアクセスについて、その時点のアクセスカウンターの値をアクセス番号とし、アクセス番号に関連付けて設定値を保持している。
このように、特定のレジスター21へのライトアクセスが検出されるたびに、レジスターアクセス履歴が更新される。
なお、履歴記録モードでは、特定のレジスター21へのライトアクセスは、そのまま実行されるので、ハードウェアモジュール11は、そのライトアクセスによって書き込まれた設定値に従って動作する。このため、不具合がある場合には、ハードウェアモジュール11の動作にそれが現れる。
そして、デバッグ機能切り替え部13は、所定の終了条件(ソフトウェアモジュール12の実行終了、端末装置2による終了指令など)を満たすと(ステップS7)、履歴記録モードを終了し、取得されたレジスターアクセス履歴を、レジスターアクセス履歴管理部15から端末装置2へ出力させ、端末装置2に表示させる(ステップS8)。なお、履歴記録モードが終了するまでは、レジスターアクセス監視部14は、アクセスの監視を継続する。
端末装置2に表示されたレジスターアクセス履歴に対してユーザーが、設定値を変更する操作を行うと、端末装置2は、その操作をレジスターアクセス履歴管理部15に通知する。レジスターアクセス履歴管理部15は、そのユーザー操作に従って、レジスターアクセス履歴内の設定値を変更する(ステップS9)。
図5は、図4に示すレジスターアクセス履歴において、あるアクセス番号の設定値が変更された後のレジスターアクセス履歴の一例を示す図である。図5に示すレジスターアクセス履歴では、アクセス番号が3である設定値(つまり、3番目にセットされる設定値)が変更されている。
その後、デバッグ機能切り替え部13は、例えば端末装置2からの指令に従って、動作モードを変更設定値適用モードにセットする(ステップS10)。
変更設定値適用モードがセットされると、レジスターアクセス置換部17は、アクセスカウンターをゼロにセットする(ステップS11)。
その後、ソフトウェアモジュール12の実行が開始される(ステップS12)。
そして、レジスター監視部14は、ソフトウェアモジュール12の実行開始時、またはその後の所定のタイミングで、CPU22からハードウェアモジュール11へのアクセスの監視を開始する(ステップS13)。
レジスターアクセス置換部17は、特定のレジスター21へのライトアクセスを検出すると、アクセスカウンターを1だけ増加させ(ステップS14)、レジスターアクセス履歴管理部15により管理されているレジスターアクセス履歴を参照して、そのライトアクセスの対象となったレジスターのレジスターアクセス履歴において、アクセスカウンターの現在値に対応する設定値が変更されているか否かを特定する(ステップS15)。
そのレジスターアクセス履歴において、アクセスカウンターの現在値に対応する設定値が変更されていない場合には、レジスターアクセス置換部17は、検出したライトアクセスをそのままハードウェアモジュール11に供給する(ステップS16)。
一方、そのレジスターアクセス履歴において、アクセスカウンターの現在値に対応する設定値が変更されている場合には、レジスターアクセス置換部17は、検出したライトアクセスで指定されている設定値を、レジスターアクセス履歴内の変更後の設定値に置換し(ステップS17)、置換後のライトアクセスをハードウェアモジュール11に供給する(ステップS18)。
具体的には、レジスターアクセス置換部17は、そのレジスターアクセス履歴において、アクセスカウンターの現在値に対応する設定値が、検出したライトアクセスで指定されている設定値と同一である場合には、そのレジスターアクセス履歴において、アクセスカウンターの現在値に対応する設定値が変更されていないと判定し、両者が同一ではない場合には、そのレジスターアクセス履歴において、アクセスカウンターの現在値に対応する設定値が変更されていると判定する。
図4および図5に示す例では、1回目および2回目のアクセスについては、そのままハードウェアモジュール11に供給され、3回目のアクセスについては、設定値が変更された後、ハードウェアモジュール11に供給される。
このように、特定のレジスター21へのライトアクセスが検出されるたびに、上述の処理(ステップS14〜S18)が実行される。
そして、デバッグ機能切り替え部13は、所定の終了条件(ソフトウェアモジュール12の実行終了、端末装置2による終了指令など)を満たすと(ステップS19)、変更設定値適用モードを終了する。なお、変更設定値適用モードが終了するまでは、レジスターアクセス置換部17は、アクセスの監視を継続する。
その後、ユーザーが、この設定値調整作業の終了または継続を示すユーザー操作を端末装置2に行うと、その操作がデバッグ機能切り替え部13に通知され、デバッグ機能切り替え部13は、この設定値調整を継続するか否かを判定し(ステップS20)、継続する場合には、ステップS9に戻り、ステップS9以降の処理を再度実行させる。一方、継続しない場合には、この処理は終了する。
なお、上述のアクセスカウンターを使用せずに、履歴記録モードでは、レジスターアクセス履歴には、アクセス番号を記憶せずに、設定値のみを連続させて順番に配列させ、変更設定値適用モードでは、アクセスの検出ごとに、レジスターアクセス履歴内において、参照すべき設定値の位置を順番に(履歴記録モードでのアクセス検出順番に沿って)移動させていくようにしてもよい。このようにすることで、レジスターアクセス履歴の保持に要求される記憶容量が少なくて済む。
以上のように、上記実施の形態によれば、レジスターアクセス履歴管理部15は、第1動作モードにおいて、レジスターアクセス監視部14により検出された、レジスター21へのアクセスの設定値を順番にレジスターアクセス履歴として取得し、レジスターアクセス履歴内の1または複数の設定値を変更する。レジスターアクセス置換部17は、第2動作モードにおいて、(a)そのレジスター21へ設定値を書き込むアクセスを順番に検出していき、(b1)検出したアクセスの設定値と、検出したアクセスの順番に対応するレジスターアクセス履歴内の設定値とが異なる場合、検出したアクセスの設定値をレジスターアクセス履歴内の設定値に変更し、設定値を変更したアクセスをハードウェアモジュール11へ供給し、(b2)検出したアクセスの設定値と、検出したアクセスの順番に対応するレジスターアクセス履歴内の設定値とが同一である場合、検出したアクセスを、設定値を変更せずにそのままハードウェアモジュール11へ供給する。
これにより、例えばハードウェアモジュール11の開発者が、ハードウェアモジュール11に時間とともに順番に設定される設定値を変更しつつハードウェアモジュール11の動作確認を行うことができるので、ソフトウェアの知識がなくても、比較的容易に不具合の原因を特定できる。
なお、上述の実施の形態は、本発明の好適な例であるが、本発明は、これらに限定されるものではなく、本発明の要旨を逸脱しない範囲において、種々の変形、変更が可能である。
本発明は、例えば、プリンター、複合機などの組み込み機器に適用可能である。
1 情報処理装置
2 端末装置
11 ハードウェアモジュール
12 ソフトウェアモジュール
13 デバッグ機能切り替え部(モード切り替え部の一例)
14 レジスターアクセス監視部
15 レジスターアクセス履歴管理部
16 デバッグ用インターフェイス(インターフェイスの一例)
17 レジスターアクセス置換部
21 レジスター

Claims (5)

  1. 1または複数のレジスターを有し前記レジスターの設定値に応じた動作をするハードウェアモジュールと、
    所定のソフトウェアモジュールによる特定の前記レジスターへ設定値を書き込むアクセスを検出するレジスターアクセス監視部と、
    第1動作モードにおいて、前記レジスターアクセス監視部により検出された前記アクセスの前記設定値を順番にレジスターアクセス履歴として取得し、前記レジスターアクセス履歴内の1または複数の前記設定値を変更するレジスターアクセス履歴管理部と、
    第2動作モードにおいて、前記レジスターへ設定値を書き込むアクセスを順番に検出していき、検出した前記アクセスの前記設定値と、検出した前記アクセスの順番に対応する前記レジスターアクセス履歴内の前記設定値とが異なる場合、検出した前記アクセスの前記設定値を前記レジスターアクセス履歴内の前記設定値に変更し、前記設定値を変更した前記アクセスを前記ハードウェアモジュールへ供給し、検出した前記アクセスの前記設定値と、検出した前記アクセスの順番に対応する前記レジスターアクセス履歴内の前記設定値とが同一である場合、検出した前記アクセスを、前記設定値を変更せずにそのまま前記ハードウェアモジュールへ供給するレジスターアクセス置換部と、
    を備えることを特徴とする情報処理装置。
  2. 前記レジスターアクセス監視部は、前記ソフトウェアモジュールによるアクセスのうち、予め指定されたアドレスを有する前記レジスターへ設定値を書き込むアクセスを検出し、それ以外のアドレスへのアクセスを検出しないことを特徴とする請求項1記載の情報処理装置。
  3. 前記レジスターアクセス監視部は、特定の前記レジスターへ所定の設定値が書き込まれた後、前記レジスターへ設定値を書き込むアクセスを検出することを特徴とする請求項1記載の情報処理装置。
  4. 1回目の前記ソフトウェアモジュールの実行時に、当該情報処理装置の動作モードを前記第1動作モードにセットし、2回目の前記ソフトウェアモジュールの実行時に、当該情報処理装置の動作モードを前記第2動作モードにセットするモード切り替え部をさらに備えることを特徴とする請求項1記載の情報処理装置。
  5. インターフェイスをさらに備え、
    前記レジスターアクセス履歴管理部は、前記インターフェイスを介して外部の端末装置へ前記レジスターアクセス履歴を表示させ、前記端末装置からの指令に従って、前記レジスターアクセス履歴内の1または複数の前記設定値を変更すること、
    を特徴とする請求項1記載の情報処理装置。
JP2013036478A 2013-02-26 2013-02-26 情報処理装置 Expired - Fee Related JP5818831B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013036478A JP5818831B2 (ja) 2013-02-26 2013-02-26 情報処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013036478A JP5818831B2 (ja) 2013-02-26 2013-02-26 情報処理装置

Publications (2)

Publication Number Publication Date
JP2014164626A JP2014164626A (ja) 2014-09-08
JP5818831B2 true JP5818831B2 (ja) 2015-11-18

Family

ID=51615156

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013036478A Expired - Fee Related JP5818831B2 (ja) 2013-02-26 2013-02-26 情報処理装置

Country Status (1)

Country Link
JP (1) JP5818831B2 (ja)

Also Published As

Publication number Publication date
JP2014164626A (ja) 2014-09-08

Similar Documents

Publication Publication Date Title
US9471435B2 (en) Information processing device, information processing method, and computer program
EP2175372B1 (en) Computer apparatus and processor diagnostic method
US10802847B1 (en) System and method for reproducing and resolving application errors
US20140173327A1 (en) Correcting a failure associated with a current firmware image
JP2008009721A (ja) 評価システム及びその評価方法
JP2010086364A (ja) 情報処理装置、動作状態監視装置および方法
JP2010044578A (ja) マルチコアプロセッサ
CA2811617C (en) Commit sensitive tests
JP5359601B2 (ja) ダンプ出力制御装置、ダンプ出力制御プログラム、ダンプ出力制御方法
JP6963552B2 (ja) ブロックアトミック実行モデルを利用するプロセッサベースシステムにおける部分的に実行された命令ブロックのリプレイ
JP5133649B2 (ja) 電子機器およびメモリ管理プログラム
JP5818831B2 (ja) 情報処理装置
US20120272103A1 (en) Software operability service
CN114328062B (zh) 校验缓存一致性的方法、装置和存储介质
JP5873825B2 (ja) 電子機器、及びアプリケーション記憶プログラム
JP2020129275A (ja) 情報処理装置、方法、およびプログラム
JP2010055641A (ja) 情報処理装置及びプログラム
JP2008257410A (ja) システム設計検証装置
KR101395007B1 (ko) 복수의 프로세서를 이용한 스냅샷 이미지 처리 장치 및 방법
JP2010056744A (ja) 情報処理装置、画像形成装置及びプログラム
JP2010102446A (ja) ソフトウェア自動試験装置
JP2018067057A (ja) 制御プログラムの検証装置及びプログラム
JP2009223841A (ja) 命令ログ取得プログラム及び仮想計算機システム
US20150355914A1 (en) Information processing apparatus and program
CN117251361A (zh) 一种测试系统稳定性的方法、装置、设备和存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150119

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150825

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20150903

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150929

R150 Certificate of patent or registration of utility model

Ref document number: 5818831

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees