(57)【要約】【課題】試行錯誤的なアプローチを行うことなくメモリアクセスの監視を効率的に行うことが可能なメモリアクセス監視装置およびその方法を提供する。【解決手段】アクセス監視部１０２は、利用者より取得したメモリアクセス監視対象の情報を保持する監視対象情報管理部１０２４と、メモリＩＦ１０２１より取得したアドレス、データ、アクセスタイプと、監視対象情報管理部１０２４の情報を照合し、それが監視すべきアクセスであったか否かを判定するアクセス判定部１０２５と、アクセス判定部１０５で監視すべきアクセスであると判定されると、このアクセスに関する情報を保持するアクセス履歴管理部１０２７と、を含む。【選択図】図３
2008041036.tif 000002
【特許請求の範囲】
【請求項１】
アクセスの監視対象としてのメモリと、
上記メモリのアクセスを監視する機能を有するアクセス監視部と、を有し、
上記アクセス監視部は、
任意に指定されたメモリアクセス監視対象の情報を設定可能で、設定された監視対象情報を保持する監視対象情報管理部と、
上記メモリに対するアクセスが発生した際の当該アクセスに関する情報を取得し、取得したアクセスに関する情報と上記監視対象情報管理部に保持された監視対象情報を照合し、当該アクセスが監視すべきアクセスであったか否かを判定するアクセス判定部と、
上記アクセス判定部で監視すべきアクセスであると判定されると、当該アクセスに関する情報を保持するアクセス履歴管理部と、を含む
メモリアクセス監視装置。
【請求項２】
上記監視対象情報としては、アクセス領域とアクセスタイプが少なくとも指定可能である
請求項１記載のメモリアクセス監視装置。
【請求項３】
上記アクセス領域としては、アクセスする所定範囲のアドレスを含むように指定可能であり、
上記アクセスタイプは、アクセス方向、アクセスサイズ、アクセス元、転送タイプ、アクセスロック、連続長の少なくともいずれか一つを含むように指定可能である
請求項２記載のメモリアクセス監視装置。
【請求項４】
上記アクセス領域として連続した複数の範囲を指定可能である
請求項３記載のメモリアクセス監視装置。
【請求項５】
上記アクセス履歴管理部は、少なくともメモリアクセスが発生した時刻、アクセス元、アクセス先アドレス、アクセスタイプ、書き込みアクセスの場合は書き込まれたデータを保持する
請求項１記載のメモリアクセス監視装置。
【請求項６】
上記アクセス判定部で監視対象のアクセスであると判定されると、アクセス検出を通知するアクセス検出通知部を有する
請求項１記載のメモリアクセス監視装置。
【請求項７】
監視対象領域のダンプ要求をトリガとして起動され、上記メモリに対して監視対象領域のデータを要求し、要求して得られた情報を出力するダンプ機能制御部を有する
請求項１記載のメモリアクセス監視装置。
【請求項８】
上記メモリは、読み出し、および書き込み要求を起動要因とし、アクセスに関する情報を上記アクセス監視部に送る機能を有する
請求項１から７のいずれか一に記載のメモリアクセス監視装置。
【請求項９】
少なくとも一つのバスマスタが接続されたバスと、
上記バスを介して上記バスマスタによりアクセス可能な監視対象としてのメモリと、
上記メモリのアクセスを監視する機能を有するアクセス監視部と、を有し、
上記アクセス監視部は、
任意に指定されたメモリアクセス監視対象の情報を設定可能で、設定された監視対象情報を保持する監視対象情報管理部と、
上記メモリに対するアクセスが発生した際の当該アクセスに関する情報を取得し、取得したアクセスに関する情報と上記監視対象情報管理部に保持された監視対象情報を照合し、当該アクセスが監視すべきアクセスであったか否かを判定するアクセス判定部と、
上記アクセス判定部で監視すべきアクセスであると判定されると、当該アクセスに関する情報を保持するアクセス履歴管理部と、を含む
メモリアクセス監視装置。
【請求項１０】
メモリのアクセスを監視するメモリアクセス監視方法であって、
任意に指定されたメモリアクセス監視対象の情報を保持するステップと、
上記メモリに対するアクセスが発生した際の当該アクセスに関する情報を取得するステップと、
取得したアクセスに関する情報と上記保持された監視対象情報を照合し、当該アクセスが監視すべきアクセスであったか否かを判定するステップと、
監視すべきアクセスであると判定されると、当該アクセスに関する情報を保持するステップと、
を有するメモリアクセス監視方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリのアクセス状態を監視するメモリアクセス監視装置およびその方法に係り、特に、ソフトウェア（ＳＷ）の開発環境におけるメモリアクセスに関するデバッグ支援に好適な技術に関するものである。
【背景技術】
【０００２】
ＳＷ（ソフト）開発では、ＳＷの複数モジュールを組み合わせて、それらの連携動作を検証するＳＷ統合検証段階がある。
この開発フェーズの問題として、ＳＷ-ＳＷ間あるいは、ＳＷ-ＨＷ（ハードウェア）間の通信方法としてある特定のメモリ領域を共有する形式でデータ通信を行う場合があり、この場合、モジュール間のメモリアクセス競合により意図しない動作に至るケースがある。
【０００３】
たとえば、モジュールＡとモジュールＢがあるメモリ領域を共有していた場合に、モジュールＡのデータ通信が完了する前に、モジュールＢが転送開始すると、モジュールＢによってモジュールＡが送りたいデータが上書きされ、正しいデータ通信が行われない結果となる。
モジュールＡおよびモジュールＢの機能は、ＣＰＵで実行される場合もあれば、ＨＷとして実現される場合もある。
【０００４】
ＳＷモジュール間のメモリアクセス競合の不具合を検出するデバッグ手法として、ウォッチポイントの機能がある。
これは、あるメモリ番地への書き込みが発生した場合に実行を停止させ、どのＳＷモジュールからの書き込みが発生したかを調べるものである。
【０００５】
また、ＣＰＵ内部にデバッグ用の特殊レジスタを設けることでメモリアクセスの検出を行う技術が提案されている（たとえば特許文献１参照）。
【特許文献１】特開平０５−７３５５６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかし、上述した技術は、ＳＷとＨＷ間のアクセス競合の検出に適用できないため、現在はシステム上の様々なパラメータを変更して振る舞いの変化から、原因箇所を突き止めるという試行錯誤的なアプローチを余儀なくされている。
【０００７】
本発明は、試行錯誤的なアプローチを行うことなくメモリアクセスの監視を効率的に行うことが可能なメモリアクセス監視装置およびその方法を提供することにある。
【課題を解決するための手段】
【０００８】
本発明の第１の観点のメモリアクセス監視装置は、アクセスの監視対象としてのメモリと、上記メモリのアクセスを監視する機能を有するアクセス監視部と、を有し、上記アクセス監視部は、任意に指定されたメモリアクセス監視対象の情報を設定可能で、設定された監視対象情報を保持する監視対象情報管理部と、上記メモリに対するアクセスが発生した際の当該アクセスに関する情報を取得し、取得したアクセスに関する情報と上記監視対象情報管理部に保持された監視対象情報を照合し、当該アクセスが監視すべきアクセスであったか否かを判定するアクセス判定部と、上記アクセス判定部で監視すべきアクセスであると判定されると、当該アクセスに関する情報を保持するアクセス履歴管理部と、を含む。
【０００９】
本発明の第２の観点のメモリアクセス監視装置は、少なくとも一つのバスマスタが接続されたバスと、上記バスを介して上記バスマスタによりアクセス可能な監視対象としてのメモリと、上記メモリのアクセスを監視する機能を有するアクセス監視部と、を有し、上記アクセス監視部は、任意に指定されたメモリアクセス監視対象の情報を設定可能で、設定された監視対象情報を保持する監視対象情報管理部と、上記メモリに対するアクセスが発生した際の当該アクセスに関する情報を取得し、取得したアクセスに関する情報と上記監視対象情報管理部に保持された監視対象情報を照合し、当該アクセスが監視すべきアクセスであったか否かを判定するアクセス判定部と、上記アクセス判定部で監視すべきアクセスであると判定されると、当該アクセスに関する情報を保持するアクセス履歴管理部と、を含む。
【００１０】
本発明の第３の観点は、メモリのアクセスを監視するメモリアクセス監視方法であって、任意に指定されたメモリアクセス監視対象の情報を保持するステップと、上記メモリに対するアクセスが発生した際の当該アクセスに関する情報を取得するステップと、取得したアクセスに関する情報と上記保持された監視対象情報を照合し、当該アクセスが監視すべきアクセスであったか否かを判定するステップと、監視すべきアクセスであると判定されると、当該アクセスに関する情報を保持するステップと、を有する。
【発明の効果】
【００１１】
本発明によれば、試行錯誤的なアプローチを行うことなくメモリアクセスの監視を効率的に行うことができる利点がある。
【発明を実施するための最良の形態】
【００１２】
以下、本発明の実施形態を図面に関連付けて説明する。
【００１３】
図１は、本発明の実施形態に係るアクセス監視部を採用したコンピュータシステムの構成例を示す図である。
図１は、本システム１００をデバッグ支援装置として位置付けする場合、デバッグ対象となるシステム全体構成を示す。
【００１４】
本システム１００は、図１に示すように、バスマスタとして機能可能なＣＰＵ１０１、アクセス監視部１０２、監視対象のメモリ１０３、バス１０４、バスマスタとして機能可能なＤＭＡコントローラ１０５、および割り込みコントローラ１０６を有する。
本実施形態においては、アクセス監視装置を１つの機能ブロックとして実現した例を示す。
【００１５】
ＣＰＵ１０１、アクセス監視部１０２、監視対象のメモリ１０３、バス１０４、ＤＭＡコントローラ１０５、および割り込みコントローラ１０６は、データ入出力インターフェースの役割を持つポートＰＴを介して相互接続される。
より具体的には、ＣＰＵ１０１、アクセス監視部１０２、監視対象のメモリ１０３、ＤＭＡコントローラ１０５、および割り込みコントローラ１０６は、バス１０４に接続されており、ＣＰＵ１０１およびＤＭＡコントローラ１０５は、メモリ１０３に対して、バス１０４を介してアクセスする。
【００１６】
ＣＰＵ１０１やＤＭＡコントローラ１０５など自発的にバスに対して信号を出力する機能を持つブロックはバスマスタと呼ばれる。一方、システム内でバスマスタからのアクセスに対して受動的に動作するブロックはバススレーブと呼ばれる。
本実施形態においては、たとえばバス１０４は、バスアクセスに対して各バスマスタおよび、連続アクセスか連続しないアクセスか等のアクセスタイプの情報が付加されていることを特徴とする。
【００１７】
図２は、本実施形態に係るアクセスタイプ情報の例を示す図である。
【００１８】
アクセスタイプ情報２００は、図２に示すように、アクセス方向２０１、アクセスサイズ２０２、バスマスタＩＤ２０３、転送タイプ２０４、アクセスロック２０５、連続アクセス時の長さを示す連続長２０６等の情報で構成される。
これは、いわゆるウォッチポイントでは指定できない、バスマスタＩＤ２０３、転送タイプ２０４、アクセスロック２０５、連続アクセス時の長さを示す連続長２０６を指定可能にしている。
【００１９】
このため、たとえば、システム１００内のＣＰＵ１０１のマスターＩＤが０、ＤＭＡコントローラ１０５のマスターＩＤが１と設定されていた場合に、これらのＣＰＵ１０１とＤＭＡコントローラ１０５間のアクセス競合を検出したい場合は、上記のマスターＩＤとその他アクセスタイプの情報を、アクセス監視部１０２に設けられる監視（観測）対象情報管理部に設定することで、ウォッチポイントの技術実現できなかったＣＰＵとＨＷ（ハードウェア）間のアクセス競合の検出を可能としている。
【００２０】
転送タイプ２０４としては、単一アクセス、バス使用権を離さずに連続アクセスするバーストアクセスの場合がある。
図２の例にある“Increment_Burst”は、バーストアクセス時において次転送のアドレスが増分されるアクセスであることを示している。
【００２１】
アクセス監視部１０２は、ＣＰＵ１０１およびＤＭＡコントローラ１０５が行うメモリアクセスを監視（観測）する機能を有する。
【００２２】
図３は、本実施形態に係るアクセス監視部の構成例を示すブロック図である。
【００２３】
図３のアクセス監視部１０２は、入出力インターフェース(以後ＩＦと略す)として、メモリＩＦ１０２１、割り込みコントローラＩＦ１０２２、バスＩＦ１０２３を有する。
そして、アクセス監視部１０２は、監視（観測）対象情報管理部１０２４、アクセス判定部１０２５、アクセス検出通知部１０２６、アクセス履歴管理部１０２７、およびダンプ機能制御部１０２８を有する。
【００２４】
メモリＩＦ１０２１は、メモリ１０３から、メモリアクセス発生時に、アドレス、データに加えて、アクセスタイプの情報を受信する。
【００２５】
割り込みコントローラＩＦ１０２２は、メモリ１０３から受け取ったアドレスが、アクセス監視（観測）対象であった場合に、割り込みコントローラ１０６に割り込みを通知するための出力ＩＦである。
【００２６】
バスＩＦ１０２３は、ＣＰＵ１０１から設定される監視（観測）対象情報を取得する場合において、情報を受信するためのＩＦである。
【００２７】
監視（観測）対象情報管理部１０２４は、本システム（あるいはデバッグ支援装置）の利用者より取得したメモリアクセス監視対象の情報を保持する機能を有する。
【００２８】
図４は、本実施形態に係る監視（観測）対象情報管理部に保持される監視（観測）対象情報の例を示す図である。
【００２９】
監視（観測）対象情報３００として、図４に示すように、アクセス監視（観測）対象の領域をスタートアドレス３０１、エンドアドレス３０２で指定し、アクセスタイプの指定として、アクセス方向３０３、アクセスサイズ３０４、バスマスタＩＤ３０５、転送タイプ３０６、アクセスロック３０７、連続長３０８などの情報を指定できる。
この例では、０ｘ１０００  ０ｘ１ｆｆｆまでのメモリアクセスを監視（観測）対象領域として、バスマスタＩＤが１、２、３、のブロックから発生したインクリメントバーストタイプのライト（Ｗｒｉｔｅ）アクセスを監視（観測）対象としていることを示している。
【００３０】
利用者からの情報の取得方法としては、ＣＰＵ１０１からバスＩＦ１０２３を経由して取得する場合、あるいはデバッガ等のユーザＩＦを経由して設定する場合などがある。
メモリアクセス監視対象としては、メモリ領域、アクセス元となったブロック、アクセスタイプで指定可能であり、各情報を単独で指定するあるいは、組み合わせて指定することが可能である。
たとえば、組み合わせの例としては、ＤＭＡコントローラ１０５からのメモリ番地ＡＤＲ１００からＡＤＲ２００に対して、連続的にライトするアクセスを監視対象とすることができる。
上記の監視対象情報３００は、利用者が実行中に任意のタイミングで変更可能である。
また、監視対象情報管理部１０２４は、監視対象を複数持つことが可能である。
【００３１】
アクセス判定部１０２５は、メモリＩＦ１０２１より取得したアクセス関する情報であるアドレス、データ、アクセスタイプと、監視対象情報管理部１０２４の情報を照合し、それが監視（観測）すべきアクセスであったか否かを判定し、判定の結果、監視すべきアクセスであった場合、アクセス検出通知部１０２６およびアクセス履歴管理部１０２７の処理を呼び出す機能を有する。
【００３２】
アクセス検出通知部１０２６は、アクセス判定部１０２５より呼び出され、１つの通知方法の例として、割り込みコントローラＩＦ１０２２を介して、割り込み信号を割り込みコントローラ１０６へ出力する場合がある。
また、他の通知方法としては、シミュレーション環境においては、シミュレーションの停止、実際のＨＷを利用する場合は、外部出力ＩＦを介してユーザに通知する場合等がある。
【００３３】
アクセス履歴管理部１０２７は、メモリアクセスが発生した時刻、アクセス元、つまり、バスマスタを特定するブロックＩＤ、アクセス先アドレス、アクセスタイプ、書き込みアクセスの場合は書き込まれたデータを保持し、シミュレーション環境においては、ワークステーション上のファイルとして出力する機能を有する。
【００３４】
ダンプ機能制御部１０２８は、利用者からの監視対象領域のダンプ要求をトリガとして起動され、メモリＩＦ１０２１を通じてメモリ１０３に対して、監視対象領域のデータを要求し、ファイル等にその情報を出力する。
利用者からの要求の取得方法としては、ＣＰＵ１０１からバスＩＦ１０２３を経由して取得する場合、あるいはデバッガ等のユーザＩＦを経由して設定する場合などがある。
【００３５】
なお、メモリＩＦ１０２１は、アクセス判定部１０２５を関数として実装し、メモリ１０３より外部関数として参照することで、ＩＦを関数呼び出しで対応することが可能である。
【００３６】
図５は、本実施形態に係るアクセス監視対象であるメモリの構成例を示すブロック図である。
【００３７】
メモリ１０３は、ＩＦとして、バスＩＦ１０３１、およびアクセス監視部ＩＦ１０３２を有する。
そして、メモリ１０３は、イベント検出部１０３３、データ保持部１０３４、およびアクセスタイプ情報保持部１０３５を有する。
【００３８】
バスＩＦ１０３１は、バスマスタであるＣＰＵ１０１やＤＭＡコントローラ１０５から送出されるデータを受信し、読み出し要求時にはデータを出力するＩＦである。
【００３９】
アクセス監視部ＩＦ１０３２は、アクセス監視部１０２に対して、アクセス先アドレス、アクセスタイプ、書き込みアクセスの場合は書き込まれたデータを送信するためのＩＦである。
【００４０】
イベント検出部１０３３は、バスマスタであるＣＰＵ１０１やＤＭＡコントローラ１０５からの読み出し、および書き込み要求を起動要因とし、アクセス監視部ＩＦ１０３２を通じて、アクセス監視部１０２に対して、アクセスタイプ情報保持部１０３５に保持されているアクセスに関する情報であるアクセス先アドレス、アクセスタイプ、書き込みアクセスの場合は書き込まれたデータを送る機能を有する。
イベント検出部１０３３の起動要因をバスマスタからの読み出し、および書き込み要求としているため、ＣＰＵ以外からのアクセスも検出可能である。
また、デバッグ対象システムがマルチＣＰＵシステムの場合は、ＣＰＵ間のメモリアクセス競合の検出が可能となる。
さらに、イベント検出部１０３３は、アクセス監視部ＩＦ１０３２からのダンプ要求をトリガとして、監視対象メモリ領域のデータをアクセス監視部１０２に送る機能を持つ。
【００４１】
データ保持部１０３４は、通常のメモリが持つデータ記憶機能を有する。
【００４２】
アクセスタイプ情報保持部１０３５は、アクセス元となったブロックＩＤ、アクセス先アドレス、アクセスタイプ、書き込みアクセスの場合は書き込まれたデータ等のアクセスに関する情報を保持する機能を有する。
【００４３】
図６は、図１のシステムをシミュレーション環境で実現した場合における、メモリアクセス監視のシーケンスを説明するための図である。
以下に、本実施形態におけるメモリアクセス監視のシーケンスを図６に関連付けて説明する。
【００４４】
まず、ステップＳＴ１において、アクセス観測対象の設定を行う。本実施形態の場合、利用者がＣＰＵ１０１よりアクセス監視部１０２に対して、監視（観測）を行う領域を設定する。監視対象を複数利用したい場合は、このステップを繰り返し実行する。
これに続いて、ステップＳＴ２において、アクセス監視（観測）開始設定を行う。これは、監視（観測）機能を有効にする作業である。
この設定タイミングは利用者側の任意のタイミングで行うことができ、監視（観測）対象を複数持つ場合は、このステップを繰り返す。
以上のステップが監視機能を使うための初期設定である。
【００４５】
次に、シミュレーションを進め（ＳＴ３）、どこかのタイミングでバスマスタから監視対象のメモリ領域へのメモリアクセスが発生したと仮定する（ＳＴ４）。
メモリアクセスが発生すると、アドレス、データ、アクセスタイプの情報を、バスインターフェースを介してメモリ１０３が受信する。
メモリアクセス開始設定がされていることを条件に（ＳＴ５）、メモリ１０３のイベント検出部１０３３が機能し、アクセス監視部ＩＦ１０３２を通じてアクセス先アドレス、アクセスタイプ、書き込みアクセスの場合は書き込まれたデータをアクセス監視部１０２に送る（ＳＴ６）。
【００４６】
データを受けたアクセス監視部１０２においては、アクセス判定部１０２５が受け取った情報と、監視（観測）対象情報管理部１０２４に保持されている情報と比較（照合）し、それがアクセス監視（観測）対象に該当するものであるかを順次判定する(ＳＴ７〜ＳＴ１２)。
【００４７】
具体的には、ステップＳＴ７において、アクセス方向が監視対象情報管理部１０２４に保持されたアクセス方向と一致するか否かを判定する。
ステップＳＴ７において、アクセス方向が一致したと判定すると、ステップＳＴ８において、アクセスサイズが監視対象情報管理部１０２４に保持されたアクセスサイズと一致するか否かを判定する。
ステップＳＴ８において、アクセスサイズが一致したと判定すると、ステップＳＴ９において、バスマスタＩＤが監視対象情報管理部１０２４に保持されたバスマスタＩＤと一致するか否かを判定する。
ステップＳＴ９において、バスマスタＩＤが一致したと判定すると、ステップＳＴ１０において、転送タイプが監視対象情報管理部１０２４に保持された転送タイプと一致するか否かを判定する。
ステップＳＴ１０において、転送タイプが一致したと判定すると、ステップＳＴ１１において、アクセスロックが監視対象情報管理部１０２４に保持されたアクセスロックと一致するか否かを判定する。
ステップＳＴ１１において、アクセスロックが一致したと判定すると、ステップＳＴ１２において、連続長が監視対象情報管理部１０２４に保持された連続長と一致するか否かを判定する。
ステップＳＴ１２において、連続長が一致したと判定すると、すなわち、ステップ７〜ＳＴ１２の判定処理において、全て肯定的な判定結果が得られた場合に、アクセスが監視（観測）対象であると判断して、アクセス履歴管理部１０２７はアクセス情報を保持し（ＳＴ１３）、アクセス検出通知部１０２６は割り込み信号という形で利用者側に通知する。
【００４８】
なお、監視（観測）対象を複数設定した場合は、ステップＳＴ７〜ＳＴ１２の処理が繰り返される。
【００４９】
以上のステップが完了後、ステップＳＴ１４においてシミュレーション時刻が進み、メモリアクセスが発生した場合は上記のステップが繰り返される。
ステップ７〜ＳＴ１２の判定処理のいずれかにおいて、否定的な判定結果が得られた場合には、アクセスが監視（観測）対象でないと判断してステップＳＴ１４の処理に移行する。
【００５０】
本技術は、複数ＣＰＵ、および複数バスシステムに対しても適用である。
【００５１】
図７は、複数のＣＰＵ構成のシステムに本装置を適用した場合の構成例を、図８は複数のバスでシステムが構成される場合に適用した構成例を示している。
【００５２】
図７のシステム１００Ａは、２つのＣＰＵ１０１−０と１０１−１が、メモリ１０３Ａ、バス１０４Ａを共有する構成を有している。
その他の構成および機能は図１のシステムと同様であることから、その説明は省略する。
【００５３】
図８のシステム１００Ｂは、２つのバス１０４−１，１０４−２を有している。
バス１０４−１にはＣＰＵ１０１−０、ハードウェアブロック１０７−１が、バス１０４−２にはＣＰＵ１０１−１、ハードウェアブロック１０７−２が、それぞれ個別に接続され、マルチプレクサとアクセス監視部の機能を併せ持つ機能ブロック１０２Ｂが両方のバス１０４−１，１−４−２に接続され、機能ブロック１０２Ｂに共有メモリ１０３Ｂが接続されている。
ＣＰＵ１０１−０はバス１０４−１、機能ブロック１０２Ｂを介してメモリ１０３Ｂをアクセスし、ＣＰＵ１０１−０はバス１０４−２、機能ブロック１０２Ｂを介してメモリ１０３Ｂをアクセスする。
この場合、メモリアクセスは機能ブロック１０２Ｂで直接的に監視することが可能である。
【００５４】
以上説明したように、本実施形態によれば、メモリ１０３は、バスマスタであるＣＰＵ１０１やＤＭＡコントローラ１０５からの読み出し、および書き込み要求を起動要因とし、アクセス監視部ＩＦ１０３２を通じて、アクセス監視部１０２に対して、アクセスタイプ情報保持部１０３５に保持されているアクセス先アドレス、アクセスタイプ、書き込みアクセスの場合は書き込まれたデータを送る機能を有し、アクセス監視部１０２は、利用者より取得したメモリアクセス監視対象の情報を保持する監視対象情報管理部１０２４と、メモリＩＦ１０２１より取得したアドレス、データ、アクセスタイプと、監視対象情報管理部１０２４の情報を照合し、それが監視すべきアクセスであったか否かを判定するアクセス判定部１０２５と、監視すべきアクセスであった場合に、アクセス判定部１０２５より呼び出され、アクセス検出を通知するアクセス検出通知部１０２６と、メモリアクセスが発生した時刻、アクセス元（バスマスタを特定するブロックＩＤ）、アクセス先アドレス、アクセスタイプ、書き込みアクセスの場合は書き込まれたデータを保持し、シミュレーション環境においては、ワークステーション上のファイルとして出力するアクセス履歴管理部１０２７と、利用者からの監視対象領域のダンプ要求をトリガとして起動させ、メモリＩＦ１０２１を通じてメモリ１０３に対して、監視対象領域のデータを要求し、ファイル等にその情報を出力するダンプ機能制御部１０２８と、を有することから、以下の効果を得ることができる。
【００５５】
メモリ領域に対するメモリアクセス検出について、上記技術によってＨＷ（ハードウェア）とＳＷ（ソフトウェア）間のアクセス競合を検出することを実現し、既存の技術では問題となっていた試行錯誤的なアプローチを解決しているという点で効率化を実現している。すなわち、試行錯誤的なアプローチを行うことなくメモリアクセスの監視を効率的に行うことができる利点がある。
また、アクセス観測情報としてバスマスタの情報を利用できるため、既存の技術では実現できなかった、マルチＣＰＵシステムにおいて、着目したＣＰＵが目標としたアドレスに対して正しくアクセスできているかを確認する機能を提供することができる。
【図面の簡単な説明】
【００５６】
【図１】本発明の実施形態に係るメモリアクセス監視装置を採用したコンピュータシステムの構成例を示す図である。
【図２】本実施形態に係るアクセスタイプ情報の例を示す図である。
【図３】本実施形態に係るアクセス監視部の構成例を示すブロック図である。
【図４】本実施形態に係る監視対象情報管理部に保持される監視対象情報の例を示す図である。
【図５】本実施形態に係るアクセス監視対象であるメモリの構成例を示すブロック図である。
【図６】図１のシステムをシミュレーション環境で実現した場合における、メモリアクセス監視のシーケンスを示す図である。
【図７】複数のＣＰＵ構成のシステムに本装置を適用した場合の構成例を示す図である。
【図８】複数のバスでシステムが構成される場合に本装置を適用した場合の構成例を示す図である。
【符号の説明】
【００５７】
１００，１００Ａ，１００Ｂ・・・コンピュータシステム、１０１・・・ＣＰＵ、１０２・・・アクセス監視部、１０２１・・・メモリＩＦ、１０２２・・・割り込みコントローラＩＦ、１０２３・・・バスＩＦ、１０２４・・・監視対象情報管理部、１０２５・・・アクセス判定部、１０２６・・・アクセス検出通知部、１０２７・・・アクセス履歴管理部、１０２８・・・ダンプ機能制御部、１０３・・・メモリ、１０３１・・・バスＩＦ、１０３２・・・アクセス監視部ＩＦ、１０３３・・・イベント検出部、１０３４・・・データ保持部、１０３５・・・アクセスタイプ情報保持部、１０４・・・バス、１０５・・・ＤＭＡコントローラ、１０６・・・割り込みコントローラ。
【図１】
2008041036.tif 000003
【図２】
2008041036.tif 000004
【図３】
2008041036.tif 000005
【図４】
2008041036.tif 000006
【図５】
2008041036.tif 000007
【図６】
2008041036.tif 000008
【図７】
2008041036.tif 000009
【図８】
2008041036.tif 000010