(57)【特許請求の範囲】
【請求項１】
外部に出力するＩＤフィールドを有する命令を記憶する命令記憶部より命令を読み出して実行しＩＤフィールドの値であるＩＤとＩＤが有効であることを示すＩＤストローブを出力するマイクロプロセッサと、
前記ＩＤの値と前記ＩＤストローブを入力し前記マイクロプロセッサのプログラムのデバッグをする解析部とを具備したマイクロプロセッサのプログラムデバッグ装置。
【請求項２】
前記解析部は、マイクロプロセッサが実行する命令のＩＤフィールドの値であるＩＤ及び前記ＩＤが前記プログラムに配置されるアドレスを記憶しているＩＤテーブルと、
前記マイクロプロセッサが出力するＩＤにより、前記ＩＤテーブルを検索することにより前記マイクロプロセッサの動作を解析してデバッグを行う解析プロセッサとを備えた請求項１記載のプログラムデバッグ装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はマイクロプロセッサが実行するプログラムのデバッグに関するものである。
【０００２】
【従来の技術】
従来、制御回路におけるプログラムのデバッグ作業では、特開平７−３３２８７８号に開示されているように、デバッグ専用命令を挿入し、その命令特有の制御信号の動作を外部で観察してマイクロプロセッサの動作状況を把握することによりデバッグを行う。
【０００３】
【発明が解決しようとする課題】
このような従来のデバッグ方法では、命令挿入によりタイミングが変わることになるので、本来の動作に影響を与えたり、処理速度が低下するといった問題があった。
【０００４】
本発明ではデバッグ機能による速度低下、命令数増加を無くし、回路増加を少なくすることを目的とするものである。
【０００５】
【課題を解決するための手段】
上記の欠点はデバッグ用に命令を追加、挿入することに起因するものである。この課題を解決するために、本発明のデバッグ方法では、デバッグ対象のプロセッサに実行させる命令にＩＤを付加し、そのＩＤの変化を外部解析部で参照し、マイクロプロセッサの動作を観察することでデバッグを行う。
【０００６】
【発明の実施の形態】
以下、本発明の一実施の形態について、図１〜図６を用いて説明する。
【０００７】
図１は本発明の一実施の形態を示すデバッグ方式の全体構成図であり、デバッグ方法を実現するマイクロプロセッサと解析部の接続、及びマイクロプロセッサ（被デバッグプロセッサ）の内部構成を示した図である。
【０００８】
同図において、１１はマイクロプロセッサ、１２は解析部であり、マイクロプロセッサ１１と解析部１２はＩＤ１３とＩＤストローブ１４で接続される。
【０００９】
１５はプログラムカウンタ制御部であり、アドレス１１０を命令記憶部１６に出力する。
【００１０】
１７は命令取り込部であり、命令記憶部１６から出力される命令データを一時的に貯える。
【００１１】
１８は命令デコード部であり、命令取り込部１７から出力される命令コード１１１を制御信号１１２に変換する。
【００１２】
１９は命令実行部であり、入力された命令に従いプログラムカウンタ制御信号１１３およびマイクロプロセッサ内部制御信号を出力する。
【００１３】
１０は命令デコード部１８から出力されるＩＤが有効、無効を判別する有効ＩＤ判別部であり、有効ＩＤ判別部１０の出力により、ＩＤ１３、ＩＤストローブ１４の出力が制御される。
【００１４】
図２はマイクロプロセッサ１１が実行する命令のフィールドとその役目を示している。
【００１５】
２０はマイクロプロセッサ１１が実行する１つの命令であり、この一つを１ワードとして命令記憶部１６に記憶される。２１はマイクロプロセッサ１１が実行する命令の種類を決めるオペコードフィールドであり、２２はオペコードフィールド２１における命令の実行変数を指定するオペランドフィールドである。２３は図１におけるＩＤ１３の値を示すためのＩＤフィールドである。
【００１６】
図５は解析部１２の内部構成を示した図であり、ＩＤ入力レジスタ５１はストローブ信号１４に同期してＩＤ１３を入力し保持する。５２は有効なＩＤの値とそのＩＤを挿入した命令の命令記憶部１６上のアドレスを記憶したＩＤテーブルである。
【００１７】
以上のように構成されたマイクロプロセッサデバッグ方法について基本動作を以下に示す。
【００１８】
図３は図１のマイクロプロセッサ１１に実行させる被デバッグプログラムを記憶させた命令記憶部１６の内容を示した図であり、マイクロプロセッサ１１は３１〜３８の順番で命令を実行する。図３に示すように、解析部１２がマイクロプロセッサ１１の動作解析する際にポイントとなる命令３３と３６に有効ＩＤ３１０、３１１を各命令のＩＤフィールド２３に挿入する。その他の命令には無効ＩＤをＩＤフィールド２３に挿入する。また、図３における有効ＩＤ３１０の命令記憶部番地Ｙ＋２、有効ＩＤ３１１の命令記憶部番地Ｙ＋５の対応を図５のＩＤテーブル５２に図６の様に記録する。
【００１９】
図４はマイクロプロセッサ１１が図３の命令３１〜３８を実行したときのアドレス１１０、命令コード１１１、ＩＤ１３、ＩＤストローブ１４の信号パターンを示した図である。図４において水平方向が時間軸である。
【００２０】
以降、図４におけるサイクル１〜８に沿って解析手順の説明する。
サイクル１の期間は命令デコード部１８ではサイクル１の前にアドレス１１０が示したアドレスの命令が実行されているため使わない。
【００２１】
サイクル２の期間は無効ＩＤを挿入した命令３１が命令デコード部１８で処理されているため、ＩＤストローブ１４はアサートされず、ＩＤ１３は無効である。
【００２２】
サイクル３の期間は無効ＩＤを挿入した命令３２が命令デコード部１８で処理されているため、ＩＤストローブ１４はアサートされず、ＩＤ１３は無効である。
【００２３】
サイクル４では有効ＩＤ３１０を挿入した命令３３が命令デコード部１８で処理され、ＩＤストローブ１４がアサートされるため、ＩＤ１３の値が有効となる。このサイクルにおいて図５のＩＤ入力レジスタ５１が更新され、解析プロセッサ５３がＩＤ入力レジスタ５１からＩＤの値を入力し、ＩＤテーブル５２を参照することによりマイクロプロセッサ１１がＹ＋２番地の命令を実行したことを認識する。
【００２４】
サイクル５では無効ＩＤを挿入した命令３４が命令デコード部１８で処理され、ＩＤストローブ１４はアサートされず、ＩＤ１３はサイクル４の時の値が保持されている。
【００２５】
サイクル６では無効ＩＤを挿入した命令３５が命令デコード部１８で処理され、ＩＤストローブ１４はアサートされず、ＩＤ１３はサイクル４の時の値が保持されている。
【００２６】
サイクル７では有効ＩＤ３１１を挿入した命令３６が命令デコード部１８で処理され、ＩＤストローブ１４がアサートされるため、ＩＤ１３の値が有効となる。このサイクルにおいて図５のＩＤ入力レジスタ５１が更新され、解析プロセッサ５３がＩＤ入力レジスタ５１からＩＤの値を入力し、ＩＤテーブル５２を参照することによりマイクロプロセッサ１１がＹ＋５番地の命令を実行したことを認識する。
【００２７】
サイクル８では無効ＩＤを挿入した命令３７が命令デコード部１８で処理され、ＩＤストローブ１４はアサートされず、ＩＤ１３はサイクル７の時の値が保持されている。
【００２８】
以上サイクル１〜８を経ることにより、解析部１２は解析のポイントとなる命令３２と３６が実行されたことを解析用命令を追加することなく認識することが可能である。
【００２９】
なお、本実施の形態ではデバッグするポイントとして２個所としているが、デバッグポイントの数はＩＤ１３のビット幅で表現できる数だけ設けることができる。
【００３０】
また、本発明により外部からマイクロプロセッサの動きが把握可能となるので、デバッグのみならず、マイクロプロセッサのプログラムの改善や外部制御部との同期をとることにも使用することができる。
【００３１】
【発明の効果】
本発明によるデバッグ方法は、以上の様にデバッグ用の命令を追加せずにマイクロプロセッサ本来の動作に影響することなく外部にＩＤ情報を出力することにより外部の解析部でデバッグ作業を行うことを可能にするものであり、しかも回路の増加は少ない。
【図面の簡単な説明】
【図１】本発明の一実施の形態を示すデバッグ方式の全体構成図
【図２】図１のマイクロプロセッサ１１が実行する命令の構成を示す図
【図３】図１のマイクロプロセッサ１１に実行させる被解析プログラムを記憶させた命令記憶部１６の内容を示した図
【図４】図１のマイクロプロセッサ１１が命令３１〜３８を実行した時のＰＣ１１０、命令デコード部１８、ＩＤストローブ１４、ＩＤ１３の信号パターンを示した図
【図５】解析部１２の内部構成を示した図
【図６】同実施の形態のＩＤテーブル５２の内容を示した図
【符号の説明】
１０  有効ＩＤ判別部
１１  マイクロプロセッサ
１２  解析部
１３  ＩＤ
１４  ＩＤストローブ
１５  プログラムカウンタ制御部
１６  命令記憶部
１７  命令取り込部
１８  命令デコード部
１９  命令実行部
２０  命令
２１  オペコードフィールド
２２  オペランドフィールド
２３  ＩＤフィールド
５１  ＩＤ入力レジスタ
５２  ＩＤテーブル
５３  解析プロセッサ
【図１】
0003633747.tif 000002
【図２】
0003633747.tif 000003
【図３】
0003633747.tif 000004
【図４】
0003633747.tif 000005
【図５】
0003633747.tif 000006
【図６】
0003633747.tif 000007