JP2008041036A - メモリアクセス監視装置およびその方法 - Google Patents
メモリアクセス監視装置およびその方法 Download PDFInfo
- Publication number
- JP2008041036A JP2008041036A JP2006218129A JP2006218129A JP2008041036A JP 2008041036 A JP2008041036 A JP 2008041036A JP 2006218129 A JP2006218129 A JP 2006218129A JP 2006218129 A JP2006218129 A JP 2006218129A JP 2008041036 A JP2008041036 A JP 2008041036A
- Authority
- JP
- Japan
- Prior art keywords
- access
- memory
- monitoring
- information
- unit
- 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.)
- Pending
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
【課題】試行錯誤的なアプローチを行うことなくメモリアクセスの監視を効率的に行うことが可能なメモリアクセス監視装置およびその方法を提供する。
【解決手段】アクセス監視部102は、利用者より取得したメモリアクセス監視対象の情報を保持する監視対象情報管理部1024と、メモリIF1021より取得したアドレス、データ、アクセスタイプと、監視対象情報管理部1024の情報を照合し、それが監視すべきアクセスであったか否かを判定するアクセス判定部1025と、アクセス判定部105で監視すべきアクセスであると判定されると、このアクセスに関する情報を保持するアクセス履歴管理部1027と、を含む。
【選択図】図3
【解決手段】アクセス監視部102は、利用者より取得したメモリアクセス監視対象の情報を保持する監視対象情報管理部1024と、メモリIF1021より取得したアドレス、データ、アクセスタイプと、監視対象情報管理部1024の情報を照合し、それが監視すべきアクセスであったか否かを判定するアクセス判定部1025と、アクセス判定部105で監視すべきアクセスであると判定されると、このアクセスに関する情報を保持するアクセス履歴管理部1027と、を含む。
【選択図】図3
Description
本発明は、メモリのアクセス状態を監視するメモリアクセス監視装置およびその方法に係り、特に、ソフトウェア(SW)の開発環境におけるメモリアクセスに関するデバッグ支援に好適な技術に関するものである。
SW(ソフト)開発では、SWの複数モジュールを組み合わせて、それらの連携動作を検証するSW統合検証段階がある。
この開発フェーズの問題として、SW-SW間あるいは、SW-HW(ハードウェア)間の通信方法としてある特定のメモリ領域を共有する形式でデータ通信を行う場合があり、この場合、モジュール間のメモリアクセス競合により意図しない動作に至るケースがある。
この開発フェーズの問題として、SW-SW間あるいは、SW-HW(ハードウェア)間の通信方法としてある特定のメモリ領域を共有する形式でデータ通信を行う場合があり、この場合、モジュール間のメモリアクセス競合により意図しない動作に至るケースがある。
たとえば、モジュールAとモジュールBがあるメモリ領域を共有していた場合に、モジュールAのデータ通信が完了する前に、モジュールBが転送開始すると、モジュールBによってモジュールAが送りたいデータが上書きされ、正しいデータ通信が行われない結果となる。
モジュールAおよびモジュールBの機能は、CPUで実行される場合もあれば、HWとして実現される場合もある。
モジュールAおよびモジュールBの機能は、CPUで実行される場合もあれば、HWとして実現される場合もある。
SWモジュール間のメモリアクセス競合の不具合を検出するデバッグ手法として、ウォッチポイントの機能がある。
これは、あるメモリ番地への書き込みが発生した場合に実行を停止させ、どのSWモジュールからの書き込みが発生したかを調べるものである。
これは、あるメモリ番地への書き込みが発生した場合に実行を停止させ、どのSWモジュールからの書き込みが発生したかを調べるものである。
また、CPU内部にデバッグ用の特殊レジスタを設けることでメモリアクセスの検出を行う技術が提案されている(たとえば特許文献1参照)。
特開平05−73556号公報
しかし、上述した技術は、SWとHW間のアクセス競合の検出に適用できないため、現在はシステム上の様々なパラメータを変更して振る舞いの変化から、原因箇所を突き止めるという試行錯誤的なアプローチを余儀なくされている。
本発明は、試行錯誤的なアプローチを行うことなくメモリアクセスの監視を効率的に行うことが可能なメモリアクセス監視装置およびその方法を提供することにある。
本発明の第1の観点のメモリアクセス監視装置は、アクセスの監視対象としてのメモリと、上記メモリのアクセスを監視する機能を有するアクセス監視部と、を有し、上記アクセス監視部は、任意に指定されたメモリアクセス監視対象の情報を設定可能で、設定された監視対象情報を保持する監視対象情報管理部と、上記メモリに対するアクセスが発生した際の当該アクセスに関する情報を取得し、取得したアクセスに関する情報と上記監視対象情報管理部に保持された監視対象情報を照合し、当該アクセスが監視すべきアクセスであったか否かを判定するアクセス判定部と、上記アクセス判定部で監視すべきアクセスであると判定されると、当該アクセスに関する情報を保持するアクセス履歴管理部と、を含む。
本発明の第2の観点のメモリアクセス監視装置は、少なくとも一つのバスマスタが接続されたバスと、上記バスを介して上記バスマスタによりアクセス可能な監視対象としてのメモリと、上記メモリのアクセスを監視する機能を有するアクセス監視部と、を有し、上記アクセス監視部は、任意に指定されたメモリアクセス監視対象の情報を設定可能で、設定された監視対象情報を保持する監視対象情報管理部と、上記メモリに対するアクセスが発生した際の当該アクセスに関する情報を取得し、取得したアクセスに関する情報と上記監視対象情報管理部に保持された監視対象情報を照合し、当該アクセスが監視すべきアクセスであったか否かを判定するアクセス判定部と、上記アクセス判定部で監視すべきアクセスであると判定されると、当該アクセスに関する情報を保持するアクセス履歴管理部と、を含む。
本発明の第3の観点は、メモリのアクセスを監視するメモリアクセス監視方法であって、任意に指定されたメモリアクセス監視対象の情報を保持するステップと、上記メモリに対するアクセスが発生した際の当該アクセスに関する情報を取得するステップと、取得したアクセスに関する情報と上記保持された監視対象情報を照合し、当該アクセスが監視すべきアクセスであったか否かを判定するステップと、監視すべきアクセスであると判定されると、当該アクセスに関する情報を保持するステップと、を有する。
本発明によれば、試行錯誤的なアプローチを行うことなくメモリアクセスの監視を効率的に行うことができる利点がある。
以下、本発明の実施形態を図面に関連付けて説明する。
図1は、本発明の実施形態に係るアクセス監視部を採用したコンピュータシステムの構成例を示す図である。
図1は、本システム100をデバッグ支援装置として位置付けする場合、デバッグ対象となるシステム全体構成を示す。
図1は、本システム100をデバッグ支援装置として位置付けする場合、デバッグ対象となるシステム全体構成を示す。
本システム100は、図1に示すように、バスマスタとして機能可能なCPU101、アクセス監視部102、監視対象のメモリ103、バス104、バスマスタとして機能可能なDMAコントローラ105、および割り込みコントローラ106を有する。
本実施形態においては、アクセス監視装置を1つの機能ブロックとして実現した例を示す。
本実施形態においては、アクセス監視装置を1つの機能ブロックとして実現した例を示す。
CPU101、アクセス監視部102、監視対象のメモリ103、バス104、DMAコントローラ105、および割り込みコントローラ106は、データ入出力インターフェースの役割を持つポートPTを介して相互接続される。
より具体的には、CPU101、アクセス監視部102、監視対象のメモリ103、DMAコントローラ105、および割り込みコントローラ106は、バス104に接続されており、CPU101およびDMAコントローラ105は、メモリ103に対して、バス104を介してアクセスする。
より具体的には、CPU101、アクセス監視部102、監視対象のメモリ103、DMAコントローラ105、および割り込みコントローラ106は、バス104に接続されており、CPU101およびDMAコントローラ105は、メモリ103に対して、バス104を介してアクセスする。
CPU101やDMAコントローラ105など自発的にバスに対して信号を出力する機能を持つブロックはバスマスタと呼ばれる。一方、システム内でバスマスタからのアクセスに対して受動的に動作するブロックはバススレーブと呼ばれる。
本実施形態においては、たとえばバス104は、バスアクセスに対して各バスマスタおよび、連続アクセスか連続しないアクセスか等のアクセスタイプの情報が付加されていることを特徴とする。
本実施形態においては、たとえばバス104は、バスアクセスに対して各バスマスタおよび、連続アクセスか連続しないアクセスか等のアクセスタイプの情報が付加されていることを特徴とする。
図2は、本実施形態に係るアクセスタイプ情報の例を示す図である。
アクセスタイプ情報200は、図2に示すように、アクセス方向201、アクセスサイズ202、バスマスタID203、転送タイプ204、アクセスロック205、連続アクセス時の長さを示す連続長206等の情報で構成される。
これは、いわゆるウォッチポイントでは指定できない、バスマスタID203、転送タイプ204、アクセスロック205、連続アクセス時の長さを示す連続長206を指定可能にしている。
これは、いわゆるウォッチポイントでは指定できない、バスマスタID203、転送タイプ204、アクセスロック205、連続アクセス時の長さを示す連続長206を指定可能にしている。
このため、たとえば、システム100内のCPU101のマスターIDが0、DMAコントローラ105のマスターIDが1と設定されていた場合に、これらのCPU101とDMAコントローラ105間のアクセス競合を検出したい場合は、上記のマスターIDとその他アクセスタイプの情報を、アクセス監視部102に設けられる監視(観測)対象情報管理部に設定することで、ウォッチポイントの技術実現できなかったCPUとHW(ハードウェア)間のアクセス競合の検出を可能としている。
転送タイプ204としては、単一アクセス、バス使用権を離さずに連続アクセスするバーストアクセスの場合がある。
図2の例にある“Increment_Burst”は、バーストアクセス時において次転送のアドレスが増分されるアクセスであることを示している。
図2の例にある“Increment_Burst”は、バーストアクセス時において次転送のアドレスが増分されるアクセスであることを示している。
アクセス監視部102は、CPU101およびDMAコントローラ105が行うメモリアクセスを監視(観測)する機能を有する。
図3は、本実施形態に係るアクセス監視部の構成例を示すブロック図である。
図3のアクセス監視部102は、入出力インターフェース(以後IFと略す)として、メモリIF1021、割り込みコントローラIF1022、バスIF1023を有する。
そして、アクセス監視部102は、監視(観測)対象情報管理部1024、アクセス判定部1025、アクセス検出通知部1026、アクセス履歴管理部1027、およびダンプ機能制御部1028を有する。
そして、アクセス監視部102は、監視(観測)対象情報管理部1024、アクセス判定部1025、アクセス検出通知部1026、アクセス履歴管理部1027、およびダンプ機能制御部1028を有する。
メモリIF1021は、メモリ103から、メモリアクセス発生時に、アドレス、データに加えて、アクセスタイプの情報を受信する。
割り込みコントローラIF1022は、メモリ103から受け取ったアドレスが、アクセス監視(観測)対象であった場合に、割り込みコントローラ106に割り込みを通知するための出力IFである。
バスIF1023は、CPU101から設定される監視(観測)対象情報を取得する場合において、情報を受信するためのIFである。
監視(観測)対象情報管理部1024は、本システム(あるいはデバッグ支援装置)の利用者より取得したメモリアクセス監視対象の情報を保持する機能を有する。
図4は、本実施形態に係る監視(観測)対象情報管理部に保持される監視(観測)対象情報の例を示す図である。
監視(観測)対象情報300として、図4に示すように、アクセス監視(観測)対象の領域をスタートアドレス301、エンドアドレス302で指定し、アクセスタイプの指定として、アクセス方向303、アクセスサイズ304、バスマスタID305、転送タイプ306、アクセスロック307、連続長308などの情報を指定できる。
この例では、0x1000 0x1fffまでのメモリアクセスを監視(観測)対象領域として、バスマスタIDが1、2、3、のブロックから発生したインクリメントバーストタイプのライト(Write)アクセスを監視(観測)対象としていることを示している。
この例では、0x1000 0x1fffまでのメモリアクセスを監視(観測)対象領域として、バスマスタIDが1、2、3、のブロックから発生したインクリメントバーストタイプのライト(Write)アクセスを監視(観測)対象としていることを示している。
利用者からの情報の取得方法としては、CPU101からバスIF1023を経由して取得する場合、あるいはデバッガ等のユーザIFを経由して設定する場合などがある。
メモリアクセス監視対象としては、メモリ領域、アクセス元となったブロック、アクセスタイプで指定可能であり、各情報を単独で指定するあるいは、組み合わせて指定することが可能である。
たとえば、組み合わせの例としては、DMAコントローラ105からのメモリ番地ADR100からADR200に対して、連続的にライトするアクセスを監視対象とすることができる。
上記の監視対象情報300は、利用者が実行中に任意のタイミングで変更可能である。
また、監視対象情報管理部1024は、監視対象を複数持つことが可能である。
メモリアクセス監視対象としては、メモリ領域、アクセス元となったブロック、アクセスタイプで指定可能であり、各情報を単独で指定するあるいは、組み合わせて指定することが可能である。
たとえば、組み合わせの例としては、DMAコントローラ105からのメモリ番地ADR100からADR200に対して、連続的にライトするアクセスを監視対象とすることができる。
上記の監視対象情報300は、利用者が実行中に任意のタイミングで変更可能である。
また、監視対象情報管理部1024は、監視対象を複数持つことが可能である。
アクセス判定部1025は、メモリIF1021より取得したアクセス関する情報であるアドレス、データ、アクセスタイプと、監視対象情報管理部1024の情報を照合し、それが監視(観測)すべきアクセスであったか否かを判定し、判定の結果、監視すべきアクセスであった場合、アクセス検出通知部1026およびアクセス履歴管理部1027の処理を呼び出す機能を有する。
アクセス検出通知部1026は、アクセス判定部1025より呼び出され、1つの通知方法の例として、割り込みコントローラIF1022を介して、割り込み信号を割り込みコントローラ106へ出力する場合がある。
また、他の通知方法としては、シミュレーション環境においては、シミュレーションの停止、実際のHWを利用する場合は、外部出力IFを介してユーザに通知する場合等がある。
また、他の通知方法としては、シミュレーション環境においては、シミュレーションの停止、実際のHWを利用する場合は、外部出力IFを介してユーザに通知する場合等がある。
アクセス履歴管理部1027は、メモリアクセスが発生した時刻、アクセス元、つまり、バスマスタを特定するブロックID、アクセス先アドレス、アクセスタイプ、書き込みアクセスの場合は書き込まれたデータを保持し、シミュレーション環境においては、ワークステーション上のファイルとして出力する機能を有する。
ダンプ機能制御部1028は、利用者からの監視対象領域のダンプ要求をトリガとして起動され、メモリIF1021を通じてメモリ103に対して、監視対象領域のデータを要求し、ファイル等にその情報を出力する。
利用者からの要求の取得方法としては、CPU101からバスIF1023を経由して取得する場合、あるいはデバッガ等のユーザIFを経由して設定する場合などがある。
利用者からの要求の取得方法としては、CPU101からバスIF1023を経由して取得する場合、あるいはデバッガ等のユーザIFを経由して設定する場合などがある。
なお、メモリIF1021は、アクセス判定部1025を関数として実装し、メモリ103より外部関数として参照することで、IFを関数呼び出しで対応することが可能である。
図5は、本実施形態に係るアクセス監視対象であるメモリの構成例を示すブロック図である。
メモリ103は、IFとして、バスIF1031、およびアクセス監視部IF1032を有する。
そして、メモリ103は、イベント検出部1033、データ保持部1034、およびアクセスタイプ情報保持部1035を有する。
そして、メモリ103は、イベント検出部1033、データ保持部1034、およびアクセスタイプ情報保持部1035を有する。
バスIF1031は、バスマスタであるCPU101やDMAコントローラ105から送出されるデータを受信し、読み出し要求時にはデータを出力するIFである。
アクセス監視部IF1032は、アクセス監視部102に対して、アクセス先アドレス、アクセスタイプ、書き込みアクセスの場合は書き込まれたデータを送信するためのIFである。
イベント検出部1033は、バスマスタであるCPU101やDMAコントローラ105からの読み出し、および書き込み要求を起動要因とし、アクセス監視部IF1032を通じて、アクセス監視部102に対して、アクセスタイプ情報保持部1035に保持されているアクセスに関する情報であるアクセス先アドレス、アクセスタイプ、書き込みアクセスの場合は書き込まれたデータを送る機能を有する。
イベント検出部1033の起動要因をバスマスタからの読み出し、および書き込み要求としているため、CPU以外からのアクセスも検出可能である。
また、デバッグ対象システムがマルチCPUシステムの場合は、CPU間のメモリアクセス競合の検出が可能となる。
さらに、イベント検出部1033は、アクセス監視部IF1032からのダンプ要求をトリガとして、監視対象メモリ領域のデータをアクセス監視部102に送る機能を持つ。
イベント検出部1033の起動要因をバスマスタからの読み出し、および書き込み要求としているため、CPU以外からのアクセスも検出可能である。
また、デバッグ対象システムがマルチCPUシステムの場合は、CPU間のメモリアクセス競合の検出が可能となる。
さらに、イベント検出部1033は、アクセス監視部IF1032からのダンプ要求をトリガとして、監視対象メモリ領域のデータをアクセス監視部102に送る機能を持つ。
データ保持部1034は、通常のメモリが持つデータ記憶機能を有する。
アクセスタイプ情報保持部1035は、アクセス元となったブロックID、アクセス先アドレス、アクセスタイプ、書き込みアクセスの場合は書き込まれたデータ等のアクセスに関する情報を保持する機能を有する。
図6は、図1のシステムをシミュレーション環境で実現した場合における、メモリアクセス監視のシーケンスを説明するための図である。
以下に、本実施形態におけるメモリアクセス監視のシーケンスを図6に関連付けて説明する。
以下に、本実施形態におけるメモリアクセス監視のシーケンスを図6に関連付けて説明する。
まず、ステップST1において、アクセス観測対象の設定を行う。本実施形態の場合、利用者がCPU101よりアクセス監視部102に対して、監視(観測)を行う領域を設定する。監視対象を複数利用したい場合は、このステップを繰り返し実行する。
これに続いて、ステップST2において、アクセス監視(観測)開始設定を行う。これは、監視(観測)機能を有効にする作業である。
この設定タイミングは利用者側の任意のタイミングで行うことができ、監視(観測)対象を複数持つ場合は、このステップを繰り返す。
以上のステップが監視機能を使うための初期設定である。
これに続いて、ステップST2において、アクセス監視(観測)開始設定を行う。これは、監視(観測)機能を有効にする作業である。
この設定タイミングは利用者側の任意のタイミングで行うことができ、監視(観測)対象を複数持つ場合は、このステップを繰り返す。
以上のステップが監視機能を使うための初期設定である。
次に、シミュレーションを進め(ST3)、どこかのタイミングでバスマスタから監視対象のメモリ領域へのメモリアクセスが発生したと仮定する(ST4)。
メモリアクセスが発生すると、アドレス、データ、アクセスタイプの情報を、バスインターフェースを介してメモリ103が受信する。
メモリアクセス開始設定がされていることを条件に(ST5)、メモリ103のイベント検出部1033が機能し、アクセス監視部IF1032を通じてアクセス先アドレス、アクセスタイプ、書き込みアクセスの場合は書き込まれたデータをアクセス監視部102に送る(ST6)。
メモリアクセスが発生すると、アドレス、データ、アクセスタイプの情報を、バスインターフェースを介してメモリ103が受信する。
メモリアクセス開始設定がされていることを条件に(ST5)、メモリ103のイベント検出部1033が機能し、アクセス監視部IF1032を通じてアクセス先アドレス、アクセスタイプ、書き込みアクセスの場合は書き込まれたデータをアクセス監視部102に送る(ST6)。
データを受けたアクセス監視部102においては、アクセス判定部1025が受け取った情報と、監視(観測)対象情報管理部1024に保持されている情報と比較(照合)し、それがアクセス監視(観測)対象に該当するものであるかを順次判定する(ST7〜ST12)。
具体的には、ステップST7において、アクセス方向が監視対象情報管理部1024に保持されたアクセス方向と一致するか否かを判定する。
ステップST7において、アクセス方向が一致したと判定すると、ステップST8において、アクセスサイズが監視対象情報管理部1024に保持されたアクセスサイズと一致するか否かを判定する。
ステップST8において、アクセスサイズが一致したと判定すると、ステップST9において、バスマスタIDが監視対象情報管理部1024に保持されたバスマスタIDと一致するか否かを判定する。
ステップST9において、バスマスタIDが一致したと判定すると、ステップST10において、転送タイプが監視対象情報管理部1024に保持された転送タイプと一致するか否かを判定する。
ステップST10において、転送タイプが一致したと判定すると、ステップST11において、アクセスロックが監視対象情報管理部1024に保持されたアクセスロックと一致するか否かを判定する。
ステップST11において、アクセスロックが一致したと判定すると、ステップST12において、連続長が監視対象情報管理部1024に保持された連続長と一致するか否かを判定する。
ステップST12において、連続長が一致したと判定すると、すなわち、ステップ7〜ST12の判定処理において、全て肯定的な判定結果が得られた場合に、アクセスが監視(観測)対象であると判断して、アクセス履歴管理部1027はアクセス情報を保持し(ST13)、アクセス検出通知部1026は割り込み信号という形で利用者側に通知する。
ステップST7において、アクセス方向が一致したと判定すると、ステップST8において、アクセスサイズが監視対象情報管理部1024に保持されたアクセスサイズと一致するか否かを判定する。
ステップST8において、アクセスサイズが一致したと判定すると、ステップST9において、バスマスタIDが監視対象情報管理部1024に保持されたバスマスタIDと一致するか否かを判定する。
ステップST9において、バスマスタIDが一致したと判定すると、ステップST10において、転送タイプが監視対象情報管理部1024に保持された転送タイプと一致するか否かを判定する。
ステップST10において、転送タイプが一致したと判定すると、ステップST11において、アクセスロックが監視対象情報管理部1024に保持されたアクセスロックと一致するか否かを判定する。
ステップST11において、アクセスロックが一致したと判定すると、ステップST12において、連続長が監視対象情報管理部1024に保持された連続長と一致するか否かを判定する。
ステップST12において、連続長が一致したと判定すると、すなわち、ステップ7〜ST12の判定処理において、全て肯定的な判定結果が得られた場合に、アクセスが監視(観測)対象であると判断して、アクセス履歴管理部1027はアクセス情報を保持し(ST13)、アクセス検出通知部1026は割り込み信号という形で利用者側に通知する。
なお、監視(観測)対象を複数設定した場合は、ステップST7〜ST12の処理が繰り返される。
以上のステップが完了後、ステップST14においてシミュレーション時刻が進み、メモリアクセスが発生した場合は上記のステップが繰り返される。
ステップ7〜ST12の判定処理のいずれかにおいて、否定的な判定結果が得られた場合には、アクセスが監視(観測)対象でないと判断してステップST14の処理に移行する。
ステップ7〜ST12の判定処理のいずれかにおいて、否定的な判定結果が得られた場合には、アクセスが監視(観測)対象でないと判断してステップST14の処理に移行する。
本技術は、複数CPU、および複数バスシステムに対しても適用である。
図7は、複数のCPU構成のシステムに本装置を適用した場合の構成例を、図8は複数のバスでシステムが構成される場合に適用した構成例を示している。
図7のシステム100Aは、2つのCPU101−0と101−1が、メモリ103A、バス104Aを共有する構成を有している。
その他の構成および機能は図1のシステムと同様であることから、その説明は省略する。
その他の構成および機能は図1のシステムと同様であることから、その説明は省略する。
図8のシステム100Bは、2つのバス104−1,104−2を有している。
バス104−1にはCPU101−0、ハードウェアブロック107−1が、バス104−2にはCPU101−1、ハードウェアブロック107−2が、それぞれ個別に接続され、マルチプレクサとアクセス監視部の機能を併せ持つ機能ブロック102Bが両方のバス104−1,1−4−2に接続され、機能ブロック102Bに共有メモリ103Bが接続されている。
CPU101−0はバス104−1、機能ブロック102Bを介してメモリ103Bをアクセスし、CPU101−0はバス104−2、機能ブロック102Bを介してメモリ103Bをアクセスする。
この場合、メモリアクセスは機能ブロック102Bで直接的に監視することが可能である。
バス104−1にはCPU101−0、ハードウェアブロック107−1が、バス104−2にはCPU101−1、ハードウェアブロック107−2が、それぞれ個別に接続され、マルチプレクサとアクセス監視部の機能を併せ持つ機能ブロック102Bが両方のバス104−1,1−4−2に接続され、機能ブロック102Bに共有メモリ103Bが接続されている。
CPU101−0はバス104−1、機能ブロック102Bを介してメモリ103Bをアクセスし、CPU101−0はバス104−2、機能ブロック102Bを介してメモリ103Bをアクセスする。
この場合、メモリアクセスは機能ブロック102Bで直接的に監視することが可能である。
以上説明したように、本実施形態によれば、メモリ103は、バスマスタであるCPU101やDMAコントローラ105からの読み出し、および書き込み要求を起動要因とし、アクセス監視部IF1032を通じて、アクセス監視部102に対して、アクセスタイプ情報保持部1035に保持されているアクセス先アドレス、アクセスタイプ、書き込みアクセスの場合は書き込まれたデータを送る機能を有し、アクセス監視部102は、利用者より取得したメモリアクセス監視対象の情報を保持する監視対象情報管理部1024と、メモリIF1021より取得したアドレス、データ、アクセスタイプと、監視対象情報管理部1024の情報を照合し、それが監視すべきアクセスであったか否かを判定するアクセス判定部1025と、監視すべきアクセスであった場合に、アクセス判定部1025より呼び出され、アクセス検出を通知するアクセス検出通知部1026と、メモリアクセスが発生した時刻、アクセス元(バスマスタを特定するブロックID)、アクセス先アドレス、アクセスタイプ、書き込みアクセスの場合は書き込まれたデータを保持し、シミュレーション環境においては、ワークステーション上のファイルとして出力するアクセス履歴管理部1027と、利用者からの監視対象領域のダンプ要求をトリガとして起動させ、メモリIF1021を通じてメモリ103に対して、監視対象領域のデータを要求し、ファイル等にその情報を出力するダンプ機能制御部1028と、を有することから、以下の効果を得ることができる。
メモリ領域に対するメモリアクセス検出について、上記技術によってHW(ハードウェア)とSW(ソフトウェア)間のアクセス競合を検出することを実現し、既存の技術では問題となっていた試行錯誤的なアプローチを解決しているという点で効率化を実現している。すなわち、試行錯誤的なアプローチを行うことなくメモリアクセスの監視を効率的に行うことができる利点がある。
また、アクセス観測情報としてバスマスタの情報を利用できるため、既存の技術では実現できなかった、マルチCPUシステムにおいて、着目したCPUが目標としたアドレスに対して正しくアクセスできているかを確認する機能を提供することができる。
また、アクセス観測情報としてバスマスタの情報を利用できるため、既存の技術では実現できなかった、マルチCPUシステムにおいて、着目したCPUが目標としたアドレスに対して正しくアクセスできているかを確認する機能を提供することができる。
100,100A,100B・・・コンピュータシステム、101・・・CPU、102・・・アクセス監視部、1021・・・メモリIF、1022・・・割り込みコントローラIF、1023・・・バスIF、1024・・・監視対象情報管理部、1025・・・アクセス判定部、1026・・・アクセス検出通知部、1027・・・アクセス履歴管理部、1028・・・ダンプ機能制御部、103・・・メモリ、1031・・・バスIF、1032・・・アクセス監視部IF、1033・・・イベント検出部、1034・・・データ保持部、1035・・・アクセスタイプ情報保持部、104・・・バス、105・・・DMAコントローラ、106・・・割り込みコントローラ。
Claims (10)
- アクセスの監視対象としてのメモリと、
上記メモリのアクセスを監視する機能を有するアクセス監視部と、を有し、
上記アクセス監視部は、
任意に指定されたメモリアクセス監視対象の情報を設定可能で、設定された監視対象情報を保持する監視対象情報管理部と、
上記メモリに対するアクセスが発生した際の当該アクセスに関する情報を取得し、取得したアクセスに関する情報と上記監視対象情報管理部に保持された監視対象情報を照合し、当該アクセスが監視すべきアクセスであったか否かを判定するアクセス判定部と、
上記アクセス判定部で監視すべきアクセスであると判定されると、当該アクセスに関する情報を保持するアクセス履歴管理部と、を含む
メモリアクセス監視装置。 - 上記監視対象情報としては、アクセス領域とアクセスタイプが少なくとも指定可能である
請求項1記載のメモリアクセス監視装置。 - 上記アクセス領域としては、アクセスする所定範囲のアドレスを含むように指定可能であり、
上記アクセスタイプは、アクセス方向、アクセスサイズ、アクセス元、転送タイプ、アクセスロック、連続長の少なくともいずれか一つを含むように指定可能である
請求項2記載のメモリアクセス監視装置。 - 上記アクセス領域として連続した複数の範囲を指定可能である
請求項3記載のメモリアクセス監視装置。 - 上記アクセス履歴管理部は、少なくともメモリアクセスが発生した時刻、アクセス元、アクセス先アドレス、アクセスタイプ、書き込みアクセスの場合は書き込まれたデータを保持する
請求項1記載のメモリアクセス監視装置。 - 上記アクセス判定部で監視対象のアクセスであると判定されると、アクセス検出を通知するアクセス検出通知部を有する
請求項1記載のメモリアクセス監視装置。 - 監視対象領域のダンプ要求をトリガとして起動され、上記メモリに対して監視対象領域のデータを要求し、要求して得られた情報を出力するダンプ機能制御部を有する
請求項1記載のメモリアクセス監視装置。 - 上記メモリは、読み出し、および書き込み要求を起動要因とし、アクセスに関する情報を上記アクセス監視部に送る機能を有する
請求項1から7のいずれか一に記載のメモリアクセス監視装置。 - 少なくとも一つのバスマスタが接続されたバスと、
上記バスを介して上記バスマスタによりアクセス可能な監視対象としてのメモリと、
上記メモリのアクセスを監視する機能を有するアクセス監視部と、を有し、
上記アクセス監視部は、
任意に指定されたメモリアクセス監視対象の情報を設定可能で、設定された監視対象情報を保持する監視対象情報管理部と、
上記メモリに対するアクセスが発生した際の当該アクセスに関する情報を取得し、取得したアクセスに関する情報と上記監視対象情報管理部に保持された監視対象情報を照合し、当該アクセスが監視すべきアクセスであったか否かを判定するアクセス判定部と、
上記アクセス判定部で監視すべきアクセスであると判定されると、当該アクセスに関する情報を保持するアクセス履歴管理部と、を含む
メモリアクセス監視装置。 - メモリのアクセスを監視するメモリアクセス監視方法であって、
任意に指定されたメモリアクセス監視対象の情報を保持するステップと、
上記メモリに対するアクセスが発生した際の当該アクセスに関する情報を取得するステップと、
取得したアクセスに関する情報と上記保持された監視対象情報を照合し、当該アクセスが監視すべきアクセスであったか否かを判定するステップと、
監視すべきアクセスであると判定されると、当該アクセスに関する情報を保持するステップと、
を有するメモリアクセス監視方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006218129A JP2008041036A (ja) | 2006-08-10 | 2006-08-10 | メモリアクセス監視装置およびその方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006218129A JP2008041036A (ja) | 2006-08-10 | 2006-08-10 | メモリアクセス監視装置およびその方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008041036A true JP2008041036A (ja) | 2008-02-21 |
Family
ID=39175923
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006218129A Pending JP2008041036A (ja) | 2006-08-10 | 2006-08-10 | メモリアクセス監視装置およびその方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2008041036A (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010020767A (ja) * | 2008-07-09 | 2010-01-28 | Arm Ltd | データ処理装置の監視およびその監視データの集計 |
WO2010032330A1 (ja) * | 2008-09-22 | 2010-03-25 | 富士通株式会社 | 情報処理装置及びそのメモリ保護方法 |
JP2015187833A (ja) * | 2014-03-14 | 2015-10-29 | 株式会社リコー | 情報処理装置、情報処理方法およびプログラム |
US10599208B2 (en) | 2015-09-08 | 2020-03-24 | Toshiba Memory Corporation | Memory system and controller |
-
2006
- 2006-08-10 JP JP2006218129A patent/JP2008041036A/ja active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010020767A (ja) * | 2008-07-09 | 2010-01-28 | Arm Ltd | データ処理装置の監視およびその監視データの集計 |
US9858169B2 (en) | 2008-07-09 | 2018-01-02 | Arm Limited | Monitoring a data processing apparatus and summarising the monitoring data |
WO2010032330A1 (ja) * | 2008-09-22 | 2010-03-25 | 富士通株式会社 | 情報処理装置及びそのメモリ保護方法 |
JP2015187833A (ja) * | 2014-03-14 | 2015-10-29 | 株式会社リコー | 情報処理装置、情報処理方法およびプログラム |
US10599208B2 (en) | 2015-09-08 | 2020-03-24 | Toshiba Memory Corporation | Memory system and controller |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5197571B2 (ja) | マルチポート・メモリ・デバイスにおけるインターポート通信 | |
JP3571976B2 (ja) | デバッグ装置及び方法並びにプログラム記録媒体 | |
JP2010140361A (ja) | コンピュータシステム及び異常検出回路 | |
WO2006114822A1 (ja) | Dmaコントローラ、ノード、データ転送制御方法、及びプログラム | |
US9152524B2 (en) | Bus monitor circuit and bus monitor method | |
JP2008041036A (ja) | メモリアクセス監視装置およびその方法 | |
BRPI0712521A2 (pt) | método de processamento por diagnóstico de arbitragem de recurso, circuito de diagnóstico de arbitragem, e, método de diagnóstico de arbitragem | |
US8683267B2 (en) | Virtual debugging sessions | |
JP2007034910A (ja) | マルチcpuシステム及びスケジューラ | |
JP2015530679A (ja) | 高効率アトミック演算を使用した方法および装置 | |
JP2006309276A (ja) | デバッグ機構およびデバッグレジスタ | |
US20060265523A1 (en) | Data transfer circuit and data transfer method | |
JP2010117813A (ja) | デバッグシステム、デバッグ方法、デバッグ制御方法及びデバッグ制御プログラム | |
JP2004302731A (ja) | 情報処理装置および障害診断方法 | |
JP3891994B2 (ja) | 順番のある(in−order)キューをドレインする(drain)システムおよび方法 | |
US7711885B2 (en) | Bus control apparatus and bus control method | |
JP6632416B2 (ja) | 共有メモリ制御回路及び共有メモリ制御方法 | |
EP1789876B1 (en) | Method and apparatus for modifying an information unit using an atomic operation in a system with a mixed architecture | |
US20090063725A1 (en) | Direct memory access system | |
US9323702B2 (en) | Increasing coverage of delays through arbitration logic | |
JP6726136B2 (ja) | データアクセス装置及びアクセスエラーの通知方法 | |
JP4892406B2 (ja) | 情報処理装置のトランザクション管理方法及び情報処理装置 | |
JP4327765B2 (ja) | バスシステム | |
JPH10269148A (ja) | 回路構成要素診断装置 | |
JP2008152665A (ja) | 半導体集積回路の動作解析方法 |