JP2005267349A - プロセッシングモジュールおよびその制御方法 - Google Patents
プロセッシングモジュールおよびその制御方法 Download PDFInfo
- Publication number
- JP2005267349A JP2005267349A JP2004080170A JP2004080170A JP2005267349A JP 2005267349 A JP2005267349 A JP 2005267349A JP 2004080170 A JP2004080170 A JP 2004080170A JP 2004080170 A JP2004080170 A JP 2004080170A JP 2005267349 A JP2005267349 A JP 2005267349A
- Authority
- JP
- Japan
- Prior art keywords
- exception
- debug
- external input
- program
- routine
- 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
【課題】 プロセッサコアとデバッグモジュールが搭載されたCPUにおいて、デバッグをさらにフレキシブルに行うことができるプロセッサコアおよびその制御方法を提供する。
【解決手段】 例外の発生により、プログラムの進行を停止するハードウェアブレーク機能28と、その例外に対処するルーチンを実行するハンドラ機能29とを、外部入力16および/または17に基づき選択する選択機能21を備えた例外処理モジュール15を有するプロセッサコアを提供する。例外の発生により、プログラムの進行の停止と、その例外の発生に対処するルーチンの実行とを、ICEモジュールを介して外部のデバッガからユーザが任意に設定することが可能となる。
【選択図】 図3
【解決手段】 例外の発生により、プログラムの進行を停止するハードウェアブレーク機能28と、その例外に対処するルーチンを実行するハンドラ機能29とを、外部入力16および/または17に基づき選択する選択機能21を備えた例外処理モジュール15を有するプロセッサコアを提供する。例外の発生により、プログラムの進行の停止と、その例外の発生に対処するルーチンの実行とを、ICEモジュールを介して外部のデバッガからユーザが任意に設定することが可能となる。
【選択図】 図3
Description
本発明は、LSIあるいはASICに採用される埋め込み型のCPU、プロセッシングコアなどのプロセッシングモジュールの構成および制御に関するものである。
特開2002−55849号公報には、特定のアドレスの参照またはこのアドレスの命令の実行が行われた際に、プログラムの実行を停止し、デバッガのユーザにプログラムの解析の機会を与えるハードウェアブレーク機能を有するデバッガが開示されている。
特開2002−55849号公報
デバッグする際に、特定のアドレスの参照またはこのアドレスの命令の実行に限らず、その他のさまざまな例外が発生したときにもプログラムの動作を停止してユーザが状態をチェックすることが要求されるケースがある。本明細書において、例外とは、プログラムの実行中に、正常な場合の実行処理の「一時的な中断」を引き起す原因になる事象や、予期せぬデータが入ってくることなどを総称しているものであり、算術演算を実行したときの桁あふれ、周辺装置に発生する故障などが含まれる。例外の発生に対してはプログラムの中に、その例外ごとに対処するルーチンを組み込んでおき、そのルーチンを実行し適切なアクションをとった後、正常な処理に戻れるようにしてある。このような処置を例外処理と呼び、それを処理するルーチンのことを例外ハンドラと呼ぶ。
本明細書においては、例外を3つの大きなカテゴリーに分けている。1つめは、エラー例外と呼んでいるものであり、バスエラー、命令アドレス違反、特権違反、データアドレス違反、予約命令違反、ゼロ除算などが含まれ、プログラムの通常の実行を不可能にする例外である。2つめは、デバッグ例外と呼んでいるものであり、PANブレーク、トレースブレーク、ブレーク命令、命令アドレスブレーク、データアドレスブレークなどが含まれ、デバッグする際に、プログラムの動作を停止して、ユーザが状態をチェックしたいがために導入するものである。3つめは、その他の例外であり、リセット割り込み、外部要因、例えばタイマによる割り込みなどがある。
デバッグの基本は、例外が発生したときに、その状態でプログラムの進行を停止し、LSI、DSP、CPUなどのデータ処理装置(チップ、モジュール)を構成するプロセッシングユニットを始めとする回路あるいはIPの状態を確認することである。プログラムの進行を停止した後に、チップ内部の状態を出力する1つの方法としては、JTAG(Joint Test Action Group)を用いたバウンダリースキャンがあり、JTAGデバッグユニットを搭載したCPUおよびDSPといった製品が既にある。デバッグユニットを搭載したデバイスは、デバッグ処理を制御するデバッガに対してターゲットデバイスと称される。パーソナルコンピュータなどのホストコンピュータがデバッガとして機能し、ターゲットデバイスに搭載されたエミュレーションコントロールユニット(ICE、In Circuit Emulator)を介してデバッグモードと非デバッグモードの切換を行ったり、デバッグのためにメモリあるいはレジスタの値を入出力したり、プログラムの実行停止を制御する。JTAG機構とICEとしての機構を含めてチップに搭載されるモジュールをデバッグモジュールと称することもある。
デバッグにおいて、例外の発生により即座にプログラムの進行を停止することが望ましいのが原則であるが、必ずしもプログラムの進行を即時停止することが望ましくないこともある。特開2002−55849号公報においては、ハードウェアブレークが発生したときのアドレスがCPUにより変換できない仮想アドレスのときは、ハードウェアブレーク機能をいったん解除して、OSのアドレスエラー処理ルーチンをCPUに実行させてアクセス不能の仮想アドレスを物理アドレスに変換し、デバッガを利用するユーザが対象のアドレスにアクセスできるようにすることが記載されている。このようなデバッグ機能を備えたOSが稼動している場合は、デバッグ例外が発生しても即座にプログラムの進行が停止することはなく、例外ハンドラが作動してしまい、デバッグ例外が発生した直後の状態をJTAG機能で読み出すことは実際には不可能になる。一方、OSのデバッグ機能がなければ、CPUを停止しても、仮想アドレスを物理アドレスに変換できず、デバッガがその機能を果たさないこともありうる。したがって、ユーザは、デバッグ方法を予め決定しておく必要があり、OSのデバッグ機能を使用する設計であれば、CPUを即座に停止できず、例外発生直後の状態は検証できないことになる。
そこで、本発明においては、デバッグをさらにフレキシブルに行うことができるプロセッシングモジュールおよびその制御方法を提供することを目的としている。
本発明においては、例外の発生により、プログラムの進行の停止と、その例外に対処するルーチンの実行とを、外部入力に基づき選択する手段を有するプロセッシングモジュールを提供する。例外の発生によりプログラムの進行を停止する実行停止手段と、例外に対処するルーチンを実行するハンドラとを有するプロセッシングモジュールであれば、外部入力により実行停止手段およびハンドラのいずれかを選択する手段を設ける。このプロセッシングモジュールの制御方法は、例外の発生により、プログラムの進行の停止と、その例外の発生に対処するルーチンの実行とを、外部入力に基づき選択する工程を有しており、例外発生時の基本的な処理方法を、プロセッシングモジュールの外部から自由に設定することが可能となる。
したがって、このプロセッシングモジュールを搭載したデータ処理装置においては、このデータ処理装置の外部からの制御により外部入力を制御するデバッグモジュールを同時に搭載することにより、例外の発生により、プログラムの進行の停止と、その例外の発生に対処するルーチンの実行とを、外部のデバッガから制御することができる。デバッグモジュールの1つの形態は、プロセッシングモジュールのデバッグ情報をデータ処理装置の外部に出力する機能も備えたICEモジュールである。したがって、例外が発生したときにハンドラに制御を渡しOSの機能を使用するなどのプロセスを実行させることによりデバッグを進める処理と、例外の発生により即座にプログラムの進行を止めて状態を検証する処理とをユーザはデバッグする際に設定でき、その設定も自由に変えることができる。すなわち、本発明のデバッグ方法では、デバッグする際に、外部入力を、プログラムの進行の停止、または、例外に対処するルーチンの実行にセットすることにより、いずれの方法でもデバッグすることができる。
実行停止手段は、エラー例外によりプログラムの進行を停止する第1の手段と、デバッグ例外によりプログラムの進行を停止する第2の手段とを備え、選択する手段は、第1の外部入力により第1の手段およびハンドラのいずれかを選択する第1の選択手段と、第2の外部入力により第2の手段およびハンドラのいずれかを選択する第2の選択手段とを備えていることが望ましい。すなわち、例外が、エラー例外とデバッグ例外とを含んでいる場合には、外部入力により分けて取り扱いできることが望ましい。また、本発明のプロセッシングエレメントの制御方法では、選択する工程において、エラー例外の発生により、プログラムの進行の停止と、そのエラー例外に対処するルーチンの実行とを、第1の外部入力に基づき選択し、デバッグ例外の発生により、プログラムの進行の停止と、そのデバッグ例外に対処するルーチンの実行とを、第2の外部入力に基づき選択することが望ましい。
エラー例外とデバッグ例外とを分けて設定できると、エラー例外が発生したときはハンドラを実行するように第2の外部入力をセットし、その処理にデバッグ例外が発生するようにプログラムし、デバッグ例外では即座に実行を停止するように第1の外部入力をセットすることにより、エラー例外発生時の処理をデバッグすることが可能となる。また、逆の設定により、デバッグ例外の処理をデバッグすることも可能となる。
本発明においては、プロセッシングモジュールにおいて、例外の発生により即座にプログラムを停止するか、ハンドラに処理を渡すかの選択を外部のデバッグモジュールに開放している。したがって、プロセッシングモジュールにおける例外発生処理をデバッガからコマンド制御することが可能となり、例外発生時のプロセッシングモジュールの動作をさらに詳しく検証することが可能となる。このため、さらに信頼性の高いプロセッシングモジュールおよびそれを搭載したCPU、DSP、LSIあるいはASICなどのデータ装置を提供することが可能となる。
図1に、CPUをデバッグするシステムの一例を示してある。デバッグのターゲットとなるCPU1は、評価用のボード2に搭載され、評価ボード2は適当なインターフェイスを介してパーソナルコンピュータ3に接続されている。パーソナルコンピュータ3では、デバッガ用のソフトウェア4が稼動し、CPU1に内蔵されたデバッグモジュール12によりCPU1をデバッグモードにしてデバッグを行う。このCPU1は、1つの一体化されたチップを示しており、汎用的な命令をデコードおよび実行するプロセッサコア(プロセッシングモジュール、CPUコア、エンベッデドプロセッサなどとも呼ばれる)11と、エンベッデドICEと称されるデバッグモジュール12とを備えている。
図2に、CPU1と、デバッガ4とを抜き出して示している。CPU1には、プロセッサコア11と、デバッグモジュール12の他に、状態を初期化するリセットモジュール13に加え、図示されていないが、ROM、RAM、タイマー、PLLなど周辺モジュールが搭載されている。デバッグモジュール12は、プロセッサコア11に限らず、周辺の機能モジュールとも信号を交換し、デバッグモードを設定したり、CPU1の状態をリセットしたり、メモリにアクセスするなどのデバッグに必要な処理を行う。本例のプロセッサコア11は、例外の発生と、その例外に関連付けられた処理とを行う例外処理モジュール15を備えている。この例外処理モジュール15は、デバッグモジュール12から制御できる2つの入力16および17を備えている。
図3に、例外処理モジュール15の概略構成のハードウェア的なイメージを、正論理を用いて示してある。例外処理モジュール15の機能は、プロセッサコア11において、ゲート回路などのハードウェアにより実現することができる。例外処理モジュール15は、例外ハンドラとしての機能を備えており、例外の発生を検出し、発生した例外の種類を識別する例外検出機能21と、例外に対処するルーチンを実行するハンドラ機能29を備えている。さらに、ルーチンを実行する代わりに、プロセッサコア11におけるプログラムの実行を強制的に停止するハードウェアブレーク機能28と、外部入力16または17により、例外が発生したときにハンドラ機能29とハードウェアブレーク機能28とを選択する機能25とを備えている。例外検出機能21は、検出された例外を、エラー例外E1と、デバッグ例外E2と、その他の例外E3の3つの大きなカテゴリーに分類し、それぞれのカテゴリーに応じた対応が例外処理モジュール15で実行できるようにしている。それぞれのカテゴリーに含まれる例外の例は上述した通りである。
本例の例外処理モジュール15においては、エラー例外E1またはデバッグ例外E2が発生すると、ハンドラ機能29とハードウェアブレーク機能28のいずれかが選択機能25により選択される。したがって、エラー例外E1またはデバッグ例外E2が発生すると、プロセッサコア11においては、例外ハンドラとして予め個々の例外に対して設定されたルーチンが実行されるか、または、プログラムの進行が停止され、CPU1の状態がデバッグモジュール12を介してデバッガ14から解析できる状態になる。その他の例外E3が発生すると、ハンドラ機能29により例外ハンドラとして予め個々の例外に対して設定されたルーチンが実行される。
選択機能25は、エラー例外E1が発生したときの処理を第1の外部入力信号16により選択できる第1の選択機能26と、デバッグ例外E2が発生したときの処理を第2の外部入力信号17により選択できる第2の選択機能27とを備えている。したがって、ユーザはパーソナルコンピュータ3の上で稼動するデバッガ4からICEモジュール12を介して第1の外部入力信号16および/または第2の外部入力信号17を設定し、第1の選択機能26および/または第2の選択機能27をユーザが望むように設定することができる。
図4に、例外処理モジュール15の機能をソフトウェアのイメージで示している。例外処理モジュール15の機能は、プロセッサコア11において、マイクロプログラムなどによりプロセッサコアの制御用のソフトウェアとして組み込むことができる。ステップ31で例外の発生が検出され、ステップ32でエラー例外E1であると判断されると、ステップ33において、ハードウェアブレーク機能28によりプログラムの実行を停止するか、あるいはハンドラ機能29により例外に対応したルーチンを実行するかを判断する。ステップ33の状態を第1の外部入力16により制御することができる。
一方、発生した例外が、ステップ34でデバッグ例外E2であると判断されると、ステップ35において、ハードウェアブレーク機能28によりプログラムの実行を停止するか、あるいはハンドラ機能29により例外に対応したルーチンを実行するかを判断する。ステップ35の状態を第2の外部入力17により制御することができる。ステップ32および34において、エラー例外E1であるとも、デバッグ例外E2であるとも分類されなかったその他の例外E3については、ハンドラ機能29により例外に対応したルーチンを実行する。
このように、本例のプロセッサコア11は、デバッグ用のインターフェイスとして例外発生時の動作を制御することができる外部入力16および17を備えている。したがって、プロセッサコア11をデバッグする場合には、例外が発生したときに、それらの外部入力信号16および/または17の状態を判断することにより、例外発生以降の動作を決定することができる。例えば、デバッグ例外E2は、プログラムの動作を停止してデバッガ4によりプロセッサコア11およびその他のCPU1の状態をチェックすることを目的としてアプリケーションプログラムなどに予め設定されているものである。
しかしながら、OSなどの他のソフトウェアにおいてデバッグ例外E2が発生すると特別なルーチンを実行するようにプログラミングされていると、ハードウェアブレーク機能28は働かず、デバッグ例外E2が発生しても即座にプログラムの動作が停止しないのでプロセッサコア11の状態は推移してしまう。一方、上述したように、デバッグ例外E2が発生したときにOSの機能を用いてアドレス変換しないと、プロセッサコア11の状態を検出できないこともある。
本例のプロセッサコア11およびそれを備えたCPU1においては、内蔵されたICEモジュール12を介して第2の外部入力信号17を設定することにより、デバッグ例外E2により、プロセッサコア11のプログラムの進行を即座に停止して状態を検出することも、OSなどの他の機能を用いてさらにデバッグに好都合な状態に進めることも可能である。
エラー例外E1は、プログラムを設計する際に発生しないように設計するので、エラー例外E1が発生した場合は直にプログラムを停止することが通常は要求され、そのときの状態を解析することが望ましい。しかしながら、そのような例外処理のデバッグのみしか行えないと、エラー例外E1が発生した後の処理をデバッグすることができない。本例のプロセッサコア11であれば、第1の外部入力信号16によりエラー例外E1ではハンドラ機能29が起動するように第1の選択機能26を設定し、ハンドラ機能29が実行するルーチンにデバッグ例外E2を設け、第2の外部入力信号17により第2の選択機能27をハードウェアブレークするように設定することにより、エラー例外発生後の処理をデバッグできる。
このプロセッサコア11であれば、デバッグ例外E2が発生したときのハンドラ29の処理をデバッグすることも可能である。第2の外部入力信号17によりデバッグ例外E2が発生したときにハンドラ29により例外処理用のルーチンが実行されるように第2の選択機能27を設定し、ルーチンが期待する動作と異なる場合にエラー例外E1が発生するようにプログラムし、第1の外部入力信号16によりエラー例外E1が発生したときにハードウェアブレークするように第1の選択機能26を設定することにより、エラーが発生した事象を直ちに検出することができる。
なお、上記ではプロセッサコアとデバッグモジュールを搭載したCPUを例に本発明を説明しているが、CPUに限らず、DSP、LSI、ASICなど、埋め込み型のプロセッシングモジュールを搭載した処理装置に対して本発明を適用することができる。
1 CPU
4 デバッガ
11 プロセッサコア
12 デバッグモジュール
15 例外処理モジュール
25 選択機能
28 ハードウェアブレーク機能
29 ハンドラ機能
4 デバッガ
11 プロセッサコア
12 デバッグモジュール
15 例外処理モジュール
25 選択機能
28 ハードウェアブレーク機能
29 ハンドラ機能
Claims (9)
- 例外の発生によりプログラムの進行を停止する実行停止手段と、
例外に対処するルーチンを実行するハンドラと、
外部入力により前記実行停止手段およびハンドラのいずれかを選択する手段とを有するプロセッシングモジュール。 - 請求項1において、前記実行停止手段は、エラー例外によりプログラムの進行を停止する第1の手段と、デバッグ例外によりプログラムの進行を停止する第2の手段とを備えており、
前記選択する手段は、第1の外部入力により前記第1の手段およびハンドラのいずれかを選択する第1の選択手段と、第2の外部入力により前記第2の手段およびハンドラのいずれかを選択する第2の選択手段とを備えている、プロセッシングモジュール。 - 請求項1に記載のプロセッシングモジュールを有するデータ処理装置であって、
当該データ処理装置の外部からの制御により前記外部入力を制御するデバッグモジュールを有するデータ処理装置。 - 請求項2に記載のプロセッシングモジュールを有するデータ処理装置であって、
前記プロセッシングモジュールのデバッグ情報を当該データ処理装置の外部に出力し、当該データ処理装置の外部からの制御により前記第1の外部入力および第2の外部入力を制御するデバッグモジュールを有するデータ処理装置。 - 例外の発生により、プログラムの進行の停止と、その例外に対処するルーチンの実行とを、外部入力に基づき選択する手段を有するプロセッシングモジュール。
- 請求項5に記載のプロセッシングモジュールを有するデータ処理装置であって、
当該データ処理装置の外部からの制御により前記外部入力を制御するデバッグモジュールを有するデータ処理装置。 - 例外の発生により、プログラムの進行の停止と、その例外の発生に対処するルーチンの実行とを、外部入力に基づき選択する工程を有するプロセッシングモジュールの制御方法。
- 請求項7において、前記例外は、エラー例外とデバッグ例外とを含んでおり、
前記選択する工程では、前記エラー例外の発生により、プログラムの進行の停止と、そのエラー例外に対処するルーチンの実行とを、第1の外部入力に基づき選択し、前記デバッグ例外の発生により、プログラムの進行の停止と、そのデバッグ例外に対処するルーチンの実行とを、第2の外部入力に基づき選択する、プロセッシングモジュールの制御方法。 - 例外の発生により、プログラムの進行の停止と、その例外に対処するルーチンの実行とを、外部入力に基づき選択する手段を有するプロセッシングモジュールのデバッグ方法であって、
デバッグする際に、前記外部入力を、プログラムの進行の停止、または、例外に対処するルーチンの実行にセットする工程を有するデバッグ方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004080170A JP2005267349A (ja) | 2004-03-19 | 2004-03-19 | プロセッシングモジュールおよびその制御方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004080170A JP2005267349A (ja) | 2004-03-19 | 2004-03-19 | プロセッシングモジュールおよびその制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005267349A true JP2005267349A (ja) | 2005-09-29 |
Family
ID=35091824
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004080170A Pending JP2005267349A (ja) | 2004-03-19 | 2004-03-19 | プロセッシングモジュールおよびその制御方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2005267349A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114580329A (zh) * | 2022-05-07 | 2022-06-03 | 湖南大学 | 一种数字信号处理器芯片实时调试方法 |
-
2004
- 2004-03-19 JP JP2004080170A patent/JP2005267349A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114580329A (zh) * | 2022-05-07 | 2022-06-03 | 湖南大学 | 一种数字信号处理器芯片实时调试方法 |
CN114580329B (zh) * | 2022-05-07 | 2022-07-22 | 湖南大学 | 一种数字信号处理器芯片实时调试方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6598178B1 (en) | Peripheral breakpoint signaler | |
US7191445B2 (en) | Method using embedded real-time analysis components with corresponding real-time operating system software objects | |
TWI544330B (zh) | 資料處理裝置與用於該處理資料的虛擬機器之模組、用於在資料處理裝置內控制調試軟體所運作的調試運作之起始的方法與用於該方法的電腦程式產品以及用於處理資料的模組 | |
JP2005317023A (ja) | データ処理装置のブレークポイント論理ユニット、デバッグ論理、およびブレークポイントの方法 | |
TWI544410B (zh) | 利用執行單步驟以進行編碼診斷 | |
US9678150B2 (en) | Methods and circuits for debugging circuit designs | |
US6175913B1 (en) | Data processing unit with debug capabilities using a memory protection unit | |
US10078113B1 (en) | Methods and circuits for debugging data bus communications | |
CN103713977B (zh) | 一种微处理器ip核比较验证的实现方法 | |
JP2010117813A (ja) | デバッグシステム、デバッグ方法、デバッグ制御方法及びデバッグ制御プログラム | |
CN117892661A (zh) | 一种基于risc-v处理器验证的模拟器比对系统 | |
Paolieri et al. | Towards functional-safe timing-dependable real-time architectures | |
JP6981920B2 (ja) | 半導体装置、およびデバッグ方法 | |
JP2005267349A (ja) | プロセッシングモジュールおよびその制御方法 | |
JP2001249823A (ja) | マイクロコンピュータ開発支援装置 | |
JP2003281076A (ja) | Dmaコントローラの不正アクセス検出装置、不正アクセス検出方法およびそのプログラム | |
JP2006185365A (ja) | 半導体装置およびデバッグ方法 | |
KR20190076217A (ko) | 멀티 코어를 이용한 동적 바이너리 인스트루멘테이션 장치 및 방법 | |
JP2008152665A (ja) | 半導体集積回路の動作解析方法 | |
JP3068578B2 (ja) | インサーキットエミュレータおよび飽和演算処理方法 | |
US7716533B2 (en) | System and method for trapping bus cycles | |
JP2004164113A (ja) | マルチcpuのリセット回路およびリセット方法 | |
TWI566179B (zh) | 用於基本輸入輸出系統之除錯訊息輸出方法及電腦程序產品 | |
JP2902861B2 (ja) | トレース機能付バッファ装置 | |
KR19990076180A (ko) | 리스크 기반의 내장된 시스템에서 유효하지 않은 주소공간접근에 의한 시스템 장애 조기 발견 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20070314 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20090423 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090501 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20090903 |