(58)【調査した分野】(Int.Cl.,DB名)
前記カウンタ手段は、カウント値が所定のオーバフロー値を超えた場合にはカウント値が所定のオーバフロー値を超えたことを示す信号を出力し、当該カウンタ値をリセットするように構成されている請求項2に記載のマイクロコンピュータ。
前記分岐信号識別手段は、無条件の直接分岐を示す分岐信号、条件付きの直接分岐において条件が成立した場合を示す分岐信号、条件付きの直接分岐において条件が成立しなかった場合を示す分岐信号、間接分岐を示す分岐信号、割込み分岐を示す分岐信号を識別するように構成されている請求項1から4の何れか1項に記載のマイクロコンピュータ。
前記情報設定手段は、前記割込み分岐については、前記識別情報、前記分岐元情報および前記分岐先情報を設定するように構成されている請求項1から8の何れか1項に記載のマイクロコンピュータ。
【発明を実施するための形態】
【0008】
以下、マイクロコンピュータに係る複数の実施形態について図面を参照しながら説明する。なお、各実施形態で実質的に同一の要素には同一の符号を付し、説明を省略する。
(第1実施形態)
図1に示すオンチップデバッグ回路部10(以下、「デバッグ回路部10」と称する)は、プログラムのデバッグ機能を有する回路部であり、分岐信号識別回路11、トレース情報設定回路12、トレース情報出力回路13を備える。
【0009】
分岐信号識別回路11は、分岐信号識別手段の一例であり、図示しないCPUから入力される各種の分岐信号を識別し、その識別結果を示す情報をトレース情報設定回路12に出力する。この場合、分岐信号識別回路11は、無条件の直接分岐が発生したことを示す無条件直接分岐信号、条件付きの直接分岐が発生した場合においてその条件付き直接分岐において条件が成立したことを示す条件成立直接分岐信号、条件付きの直接分岐が発生した場合においてその条件付き直接分岐において条件が成立しなかったことを示す条件不成立直接分岐信号、間接分岐が発生したことを示す間接分岐信号、割込み分岐が発生したことを示す割込み分岐信号を識別するように構成されている。なお、直接分岐とは、プログラム中に分岐先アドレスが明記されている分岐である。間接分岐とは、直接分岐および割込み分岐以外の分岐であり、例えば、いわゆるレジスタ間接分岐などを含む。割込み分岐とは、実行中の処理を中断して強制的に実行された処理による分岐である。
【0010】
トレース情報設定回路12は、情報設定手段の一例であり、識別情報設定回路121、分岐元情報設定回路122、分岐先情報設定回路123を有する。識別情報設定回路121は、分岐信号識別回路11が識別した分岐信号に対応付けて、各分岐信号に固有の識別情報を設定する機能を有する。この場合、識別情報設定回路121は、分岐信号識別回路11が識別した分岐信号が「無条件直接分岐信号」である場合には識別情報を設定しないように構成されている。また、識別情報設定回路121は、分岐信号識別回路11が識別した分岐信号が「条件成立直接分岐信号」である場合には識別情報として2ビットの情報「00」を設定し、分岐信号識別回路11が識別した分岐信号が「条件不成立直接分岐信号」である場合には識別情報として2ビットの情報「01」を設定し、分岐信号識別回路11が識別した分岐信号が「間接分岐信号」である場合には識別情報として2ビットの情報「10」を設定し、分岐信号識別回路11が識別した分岐信号が「割込み分岐信号」である場合には識別情報として2ビットの情報「11」を設定するように構成されている。なお、識別情報設定回路121が設定する識別情報は、上記した2ビットの情報に限られるものではなく、例えば3ビットの情報、4ビットの情報など適宜変更して実施することができる。
【0011】
分岐元情報設定回路122は、分岐信号識別回路11が識別した分岐信号に応じて、CPUから入力されるプログラムカウンタ値(アドレス情報)を分岐元情報として設定する機能を有する。この場合、分岐元情報設定回路122は、分岐信号識別回路11が識別した分岐信号が「割込み分岐信号」である場合には、その時点でCPUから入力されるプログラムカウンタ値を分岐元情報として設定するように構成されている。また、分岐元情報設定回路122は、分岐信号識別回路11が識別した分岐信号が「割込み分岐信号」以外の分岐信号、つまり、「無条件直接分岐信号」、「条件成立直接分岐信号」、「条件不成立直接分岐信号」、「間接分岐信号」の何れかである場合には、その時点でCPUから入力されるプログラムカウンタ値を分岐元情報として設定しないように構成されている。
【0012】
分岐先情報設定回路123は、分岐信号識別回路11が識別した分岐信号に応じて、CPUから入力されるプログラムカウンタ値(アドレス情報)を分岐先情報として設定する機能を有する。この場合、分岐先情報設定回路123は、分岐信号識別回路11が識別した分岐信号が「間接分岐信号」または「割込み分岐信号」である場合には、その時点でCPUから入力されるプログラムカウンタ値を分岐先情報として設定するように構成されている。また、分岐先情報設定回路123は、分岐信号識別回路11が識別した分岐信号が「間接分岐信号」および「割込み分岐信号」以外の分岐信号、つまり、「無条件直接分岐信号」、「条件成立直接分岐信号」、「条件不成立直接分岐信号」の何れかである場合には、その時点でCPUから入力されるプログラムカウンタ値を分岐先情報として設定しないように構成されている。
【0013】
トレース情報出力回路13は、トレース情報出力手段の一例であり、上記した識別情報、分岐元情報、分岐先情報のうちトレース情報設定回路12によって設定された情報をトレース情報として出力する。即ち、トレース情報出力回路13は、識別情報設定回路121によって識別情報が設定されている場合には、その識別情報をトレース情報として出力する。また、トレース情報出力回路13は、分岐元情報設定回路122によって分岐元情報が設定されている場合には、その分岐元情報をトレース情報として出力する。また、トレース情報出力回路13は、分岐先情報設定回路123によって分岐先情報が設定されている場合には、その分岐先情報をトレース情報として出力する。トレース情報出力回路13が出力したトレース情報は、例えばトレースメモリ14などからなる出力対象部に記録される。
【0014】
この場合、トレース情報出力回路13は、分岐信号識別回路11が識別した分岐信号が「無条件直接分岐信号」である場合には、トレース情報設定回路12において識別情報、分岐元情報、分岐先情報の何れも設定されないので、トレース情報を出力しないように構成されている。また、トレース情報出力回路13は、分岐信号識別回路11が識別した分岐信号が「条件成立直接分岐信号」である場合には、トレース情報設定回路12において識別情報「00」が設定されるので、その識別情報をトレース情報として出力する。このとき、トレース情報設定回路12において分岐元情報および分岐先情報は設定されないので、これらの情報はトレース情報として出力されない。また、トレース情報出力回路13は、分岐信号識別回路11が識別した分岐信号が「条件不成立直接分岐信号」である場合には、トレース情報設定回路12において識別情報「01」が設定されるので、その識別情報をトレース情報として出力する。このとき、トレース情報設定回路12において分岐元情報および分岐先情報は設定されないので、これらの情報はトレース情報として出力されない。
【0015】
また、トレース情報出力回路13は、分岐信号識別回路11が識別した分岐信号が「間接分岐信号」である場合には、トレース情報設定回路12において識別情報「10」と分岐先情報が設定されるので、その識別情報および分岐先情報をトレース情報として出力する。このとき、トレース情報設定回路12において分岐元情報は設定されないので、この情報はトレース情報として出力されない。また、トレース情報出力回路13は、分岐信号識別回路11が識別した分岐信号が「割込み分岐信号」である場合には、トレース情報設定回路12において識別情報「11」と分岐元情報と分岐先情報が設定されるので、その識別情報、分岐元情報および分岐先情報をトレース情報として出力する。
【0016】
次に、マイクロコンピュータがトレース情報を出力する場合の動作の一例について説明する。即ち、例えば
図2(a)に示すように、無条件の直接分岐(A1)、条件付きの直接分岐において条件が成立した場合(A2)、条件付きの直接分岐において条件が成立しなかった場合(A3)、間接分岐(A4)、無条件の直接分岐(A5)、割込み分岐(A6)がこの順に発生したと仮定すると、この場合に、トレース情報として出力される内容は
図2(b)に示すようになる。なお、
図2(b)に示すT0,T1,T2,・・・は、出力されたトレース情報にそれぞれ付与される番号である。
【0017】
つまり、無条件の直接分岐が発生した場合(A1)には、これに対応するトレース情報は出力されない。また、条件付きの直接分岐において条件が成立した場合(A2)には、これに対応するトレース情報として識別情報「00」(T0)が出力される。また、条件付きの直接分岐において条件が成立しなかった場合(A3)には、これに対応するトレース情報として識別情報「01」(T1)が出力される。また、間接分岐が発生した場合(A4)には、これに対応するトレース情報として、識別情報「10」(T2)と、その間接分岐に係る分岐先アドレス(T3)が出力される。また、無条件の直接分岐が発生した場合(A5)には、これに対応するトレース情報は出力されない。また、割込み分岐が発生した場合(A6)には、これに対応するトレース情報として、識別情報「11」(T4)と、その割込み分岐に係る分岐元アドレス(T5)および分岐先アドレス(T6)が出力される。
【0018】
次に、図示しないトレース情報復元装置(以下、単に復元装置と称する)がトレース情報に基づいてプログラムの実行履歴を復元する場合の動作の一例について説明する。即ち、例えば
図3に示すように、復元装置は、トレース情報Tの参照アドレスを参照する(B1)。このとき、この復元動作開始時の初期の参照アドレスは、トレース情報Tの先頭のアドレス、即ち開始アドレスが設定される。次に、復元装置は、トレース情報Tの参照アドレスが最終アドレスであるか否かを確認する(B2)。
【0019】
復元装置は、トレース情報Tの参照アドレスが最終アドレスである場合(B2:YES)には、ソースプログラムSの参照アドレスを参照する(B3)。このとき、この復元動作開始時の初期の参照アドレスは、ソースプログラムSの先頭のアドレス、即ち開始アドレスが設定される。そして、復元装置は、復元データRに、ソースプログラムSの参照アドレスに記載されている命令を格納する(B4)。復元装置は、ソースプログラムSの参照アドレスが最終アドレスであるか否かを確認する(B5)。そして、復元装置は、ソースプログラムSの参照アドレスが最終アドレスである場合(B5:YES)には、この動作を終了する。
【0020】
一方、復元装置は、トレース情報Tの参照アドレスが最終アドレスでない場合(B2:NO)には、トレース情報Tの参照アドレスに格納されている識別情報が「割込み分岐」に対応する識別情報「11」であるか否かを確認する(B6)。復元装置は、トレース情報Tの参照アドレスの識別情報が「11」である場合(B6:YES)には、ステップB10(
図4参照)に移行する。一方、復元装置は、トレース情報Tの参照アドレスの識別情報が「11」でない場合(B6:NO)には、ステップB22(
図5参照)に移行する。なお、ステップB10以降の処理、ステップB22以降の処理については後述する。
【0021】
また、復元装置は、ソースプログラムSの参照アドレスが最終アドレスでない場合(B5:NO)には、ソースプログラムSの参照アドレスに記載されている命令が「無条件の直接分岐」であるか否かを確認する(B7)。復元装置は、参照アドレスの命令が「無条件の直接分岐」である場合(B7:YES)には、ソースプログラムSの参照アドレスを無条件直接分岐の分岐先アドレスに更新して(B8)、ステップB3に移行する。一方、復元装置は、参照アドレスの命令が「無条件の直接分岐」でない場合(B7:NO)には、ソースプログラムSの参照アドレスを次のアドレスに更新して(B9)、ステップB3に移行する。
【0022】
次に、ステップB10以降の処理について説明する。即ち、例えば
図4に示すように、復元装置は、トレース情報Tの参照アドレスを次のアドレスに更新する(B10)。そして、復元装置は、ソースプログラムSの参照アドレスを参照し(B11)、ソースプログラムSの参照アドレスに記載されている命令を復元データRに格納する(B12)。そして、復元装置は、ソースプログラムSの参照アドレスが、トレース情報Tの参照アドレスに格納されている割込み分岐の分岐元アドレスと一致するか否かを確認する(B13)。
【0023】
復元装置は、ソースプログラムSの参照アドレスとトレース情報Tの参照アドレスに格納されている割込み分岐の分岐元アドレスとが一致する場合(B13:YES)には、トレース情報Tの参照アドレスを次のアドレスに更新する(B14)。そして、復元装置は、ソースプログラムSの参照アドレスを、トレース情報Tの参照アドレスに格納されている割込み分岐の分岐先アドレスに更新する(B15)。
【0024】
そして、復元装置は、トレース情報Tの参照アドレスを参照し(B16)、トレース情報Tの参照アドレスが最終アドレスであるか否かを確認する(B17)。復元装置は、トレース情報Tの参照アドレスが最終アドレスである場合(B17:YES)には、ステップB3(
図3参照)に移行する。一方、復元装置は、トレース情報Tの参照アドレスが最終アドレスでない場合(B17:NO)には、トレース情報Tの参照アドレスを次のアドレスに更新し(B20)、ステップB6(
図3参照)に移行する。
【0025】
復元装置は、ソースプログラムSの参照アドレスとトレース情報Tの参照アドレスに格納されている割込み分岐の分岐元アドレスとが一致しない場合(B13:NO)には、ソースプログラムSの参照アドレスに記載されている命令が「無条件の直接分岐」であるか否かを確認する(B18)。復元装置は、参照アドレスの命令が「無条件の直接分岐」である場合(B18:YES)には、ソースプログラムSの参照アドレスを無条件直接分岐の分岐先アドレスに更新して(B19)、ステップB11に移行する。一方、復元装置は、参照アドレスの命令が「無条件の直接分岐」でない場合(B18:NO)には、ソースプログラムSの参照アドレスを次のアドレスに更新して(B21)、ステップB11に移行する。
【0026】
次に、ステップB22以降の処理について説明する。即ち、例えば
図5に示すように、復元装置は、ソースプログラムSの参照アドレスを参照し(B22)、ソースプログラムSの参照アドレスに記載されている命令を復元データRに格納する(B23)。そして、復元装置は、ソースプログラムSの参照アドレスに記載されている命令が「無条件の直接分岐」であるか否かを確認する(B24)。復元装置は、参照アドレスの命令が「無条件の直接分岐」である場合(B24:YES)には、ソースプログラムSの参照アドレスを無条件直接分岐の分岐先アドレスに更新する(B25)。そして、復元装置は、トレース情報Tの参照アドレスを参照し(B26)、トレース情報Tの参照アドレスが最終アドレスであるか否かを確認する(B27)。復元装置は、トレース情報Tの参照アドレスが最終アドレスである場合(B27:YES)には、ステップB3(
図3参照)に移行する。一方、復元装置は、トレース情報Tの参照アドレスが最終アドレスでない場合(B27:NO)には、トレース情報Tの参照アドレスを次のアドレスに更新し(B31)、ステップB6(
図3参照)に移行する。
【0027】
復元装置は、参照アドレスの命令が「無条件の直接分岐」でない場合(B24:NO)には、ソースプログラムSの参照アドレスに記載されている命令が「条件付き直接分岐」であるか否かを確認する(B28)。そして、復元装置は、参照アドレスの命令が「条件付き直接分岐」である場合(B28:YES)には、トレース情報Tの参照アドレスを参照し(B29)、トレース情報Tの参照アドレスに格納されている識別情報が「条件成立直接分岐」に対応する識別情報「00」であるか否かを確認する(B30)。復元装置は、トレース情報Tの参照アドレスの識別情報が「00」である場合(B30:YES)には、ステップB25に移行する。一方、復元装置は、トレース情報Tの参照アドレスの識別情報が「00」でない場合(B30:NO)には、詳しくは後述するステップB35に移行する。
【0028】
復元装置は、参照アドレスの命令が「条件付き直接分岐」でない場合(B28:NO)には、ソースプログラムSの参照アドレスに記載されている命令が「間接分岐」であるか否かを確認する(B32)。復元装置は、参照アドレスの命令が「間接分岐」である場合(B32:YES)には、トレース情報Tの参照アドレスを次のアドレスに更新する(B33)。そして、復元装置は、ソースプログラムSの参照アドレスを、トレース情報Tの参照アドレスに格納されている間接分岐の分岐先アドレスに更新し(B34)、ステップB26に移行する。一方、復元装置は、参照アドレスの命令が「間接分岐」でない場合(B32:NO)には、ソースプログラムSの参照アドレスを次のアドレスに更新し(B35)、ステップB22に移行する。
【0029】
次に、上述した復元動作によって復元された復元データの一例について説明する。ここでは、
図2(b)に例示したトレース情報Tに基づいて、ソースプログラムSの実行履歴を示す復元データRを復元した場合について説明する。即ち、例えば
図6に示す例では、復元データRのアドレスR0,R1には、無条件の直接分岐命令に係る分岐元アドレス「S10」および分岐先アドレス「S11」に記載されている命令が復元されている。分岐元アドレス「S10」および分岐先アドレス「S11」は、復元動作においてソースプログラムSから得られたものである。また、復元データRのアドレスR2,R3には、条件付き直接分岐命令(条件成立)に係る分岐元アドレス「S20」および分岐先アドレス「S21」に記載されている命令が復元されている。分岐元アドレス「S20」および分岐先アドレス「S21」は、復元動作においてソースプログラムSから得られたものである。
【0030】
また、復元データRのアドレスR4,R5には、条件付き直接分岐命令(条件不成立)に係る分岐元アドレス「S30」に記載されている命令と、上述のステップB35で更新されたアドレス「S30+1」に記載されている命令が復元されている。アドレス「S30」および「S30+1」は、復元動作においてソースプログラムSから得られたものである。この場合、条件付き直接分岐命令(条件不成立)に係る分岐先アドレス「S31」は得られていない。また、復元データRのアドレスR6,R7には、間接分岐命令に係る分岐元アドレス「S40」および分岐先アドレス「S41」に記載されている命令が復元されている。分岐元アドレス「S40」は、復元動作においてソースプログラムSから得られたものであり、分岐先アドレス「S41」は、復元動作においてトレース情報Tから得られたものである。
【0031】
また、復元データRのアドレスR8,R9には、無条件の直接分岐命令に係る分岐元アドレス「S50」および分岐先アドレス「S51」に記載されている命令が復元されている。分岐元アドレス「S50」および分岐先アドレス「S51」は、復元動作においてソースプログラムSから得られたものである。また、復元データRのアドレスR10,R11には、割込み分岐に係る分岐元アドレス「S60」および分岐先アドレス「S61」に記載されている命令が復元されている。分岐元アドレス「S60」および分岐先アドレス「S61」は、復元動作においてトレース情報Tから得られたものである。
【0032】
本実施形態によれば、マイクロコンピュータにおいて、プログラムのデバッグ機能を有するデバッグ回路部10は、分岐信号識別回路11によって、割込み分岐を示す分岐信号を割込み分岐以外の分岐を示す分岐信号と区別して識別する。そして、デバッグ回路部10は、割込み分岐以外の分岐については、トレース情報設定回路12によって分岐元情報を設定しないように構成されている。これにより、分岐元情報がトレース情報として出力される分岐は割込み分岐のみとなる。従って、トレース情報の情報量を十分に圧縮することができる。
【0033】
また、本実施形態によれば、トレース情報設定回路12は、割込み分岐以外の分岐である直接分岐については、識別情報を設定し、分岐元情報および分岐先情報を設定しないように構成されている。また、トレース情報設定回路12は、直接分岐が無条件の直接分岐である場合には、識別情報も設定しないように構成されている。また、トレース情報設定回路12は、割込み分岐以外の分岐である間接分岐については、識別情報および分岐先情報を設定し、分岐元情報を設定しないように構成されている。これにより、トレース情報の情報量を一層圧縮することができる。
【0034】
また、トレース情報設定回路12は、割込み分岐については、識別情報、分岐元情報および分岐先情報を設定するように構成されている。即ち、割込み分岐は、どのタイミングで発生するのかを予め予測することが困難であり、また、割込み分岐が発生した場合における分岐元アドレスを予め予測することも困難である。本実施形態によれば、このような割込み分岐については、その分岐を識別するための識別情報、その分岐における分岐元アドレスや分岐先アドレスを確実に保存することができる。従って、予測困難な割り込み分岐についても、その実行履歴を確実に復元することができる。
【0035】
また、本実施形態によれば、分岐信号識別回路11は、無条件の直接分岐を示す分岐信号、条件付きの直接分岐において条件が成立した場合を示す分岐信号、条件付きの直接分岐において条件が成立しなかった場合を示す分岐信号、間接分岐を示す分岐信号、割込み分岐を示す分岐信号を識別するように構成されている。従って、プログラムの実行に伴い発生する種々の分岐を細分化して識別することができ、出力するトレース情報の情報量を分岐の種類に応じてきめ細かく圧縮することができる。
【0036】
(第2実施形態)
図7に示すように、本実施形態では、デバッグ回路部10は、さらに、カウンタ回路21を備える。カウンタ回路21は、カウンタ手段の一例であり、CPUからの入力データ数に基づいて、前回の分岐発生時から今回の分岐発生時までにCPUで実行された命令数をカウントする。そして、カウンタ回路21は、そのカウント値をトレース情報設定回路12に出力する。カウンタ回路21が出力するカウント値は、分岐元情報設定回路122に与えられる。トレース情報設定回路12において、分岐元情報設定回路122は、入力されたカウント値を分岐元情報として設定する。
【0037】
また、カウンタ回路21は、カウント値が所定のオーバフロー値を超えた場合には、カウント値が所定のオーバフロー値を超えたことを示す信号を出力し、当該カウンタ値をリセットするように構成されている。即ち、カウンタ回路21は、カウント値が所定のオーバフロー値を超えた場合には、その旨を示すオーバフロー信号をトレース情報設定回路12に出力する。カウンタ回路21が出力するオーバフロー信号は、識別情報設定回路121および分岐元情報設定回路122に与えられる。識別情報設定回路121は、オーバフロー信号が入力されると、その旨を示す識別情報としてこの場合5ビットの情報「10000」を設定する。そして、設定された識別情報「10000」はトレース情報の一種として出力される。なお、オーバフロー値は、適宜変更して設定することができる。
【0038】
本実施形態によれば、トレース情報復元装置は、オーバフロー信号が発生したことを示す識別情報「10000」とカウンタ回路21によるカウント値から、前回の分岐発生時における分岐先アドレスを基点とする相対的なアドレスとして、今回の分岐発生時における分岐元アドレスを得ることができる。これにより、CPUから入力された分岐元アドレスそのものをトレース情報に格納する必要がなくなり、トレース情報の情報量を一層圧縮することができる。
【0039】
また、本実施形態によれば、カウンタ回路21によるカウント値がオーバフロー値を超えた場合には当該カウンタ値がリセットされる。従って、カウント処理に係るデータサイズを一定以下に抑えることができる。
【0040】
(第3実施形態)
図8に示すように、本実施形態では、デバック回路部10は、さらに割込み要因信号識別回路31を備える。割込み要因信号識別回路31は、割込み要因信号識別手段の一例であり、図示しないCPUから入力される種々の割込み要因信号を識別し、その識別結果を示す情報をトレース情報設定回路12に出力する。この場合、CPUは、割込み分岐が発生すると、その要因に応じて、例えば8種類の割込み要因信号A〜Hを出力する。割込み要因信号識別回路31は、入力される割込み要因信号が割込み要因信号A〜Hの何れの信号であるのかを識別する。
【0041】
識別情報設定回路121は、分岐信号識別回路11が識別した分岐信号が割込み分岐信号である場合には、2種類の識別情報を設定する。即ち、識別情報設定回路121は、分岐信号識別回路11が識別した割込み分岐信号に固有の識別情報「11」を設定する。この識別情報「11」が1種類目の識別情報である。また、
図9に示すように、識別情報設定回路121は、割込み要因信号識別回路31から入力された割込み要因信号A〜Hに、それぞれ、固有の識別情報として3ビットの情報「000」〜「111」を設定する。これら識別情報「000」〜「111」が2種類目の識別情報である。なお、この識別情報のビット数は、割込み要因信号の数に応じて適宜変更して実施することができる。
【0042】
本実施形態では、分岐先情報設定回路123は、分岐信号識別回路11が識別した分岐信号が「割込み分岐信号」である場合には、その時点でCPUから入力されるプログラムカウンタ値を分岐先情報として設定しないように構成される。そして、本実施形態では、分岐信号識別回路11が識別した分岐信号が「割込み分岐信号」である場合には、トレース情報設定回路12において、識別情報設定回路121により識別情報「11」と識別情報「000」〜「111」の何れかの情報とからなる識別情報群が設定され、また、分岐元情報設定回路122により分岐元情報が設定される。そのため、トレース情報出力回路13は、設定された識別情報群と分岐元情報をトレース情報として出力する。
【0043】
図10に示すように、ソースプログラムSには、実行される割込み要因A〜Hごとに分岐先アドレス(SA)〜(SH)が予め設定されている。この場合、ソースプログラムSには、割込み要因Eに対応する分岐先アドレス(SE)が設定されている。そして、復元装置は、トレース情報に格納されている識別情報群に基づいて割込み要因を特定することができる。なお、識別情報群を構成する識別情報「11」と識別情報「000」〜「111」の何れかの情報は、この場合、トレース情報Tの別々のアドレスに格納される。この場合、識別情報「11」はトレース情報TのアドレスT4に格納され、識別情報「100」はトレース情報TのアドレスT5に格納されている。さらに、復元装置は、特定した割込み要因とソースプログラムSとを照合することにより、割込み分岐の分岐先アドレスを特定することができる。この場合、トレース情報TのアドレスT5に格納されている識別情報は「100」であるから、この識別情報「100」に対応する割込み要因信号Eが特定され、その割込み要因Eに対応する分岐先アドレス(SE)が特定される。そして、復元データRのアドレスR11には、ソースプログラムSにおいて割込み要因Eに対応して設定されている分岐先アドレス(SE)が復元されている。
【0044】
本実施形態によれば、トレース情報復元装置は、トレース情報に格納されている識別情報群から、割込み要因を特定することができ、さらに、割込み分岐の分岐先アドレスを特定することができる。これにより、情報量が多い割込み分岐の分岐先アドレスをトレース情報に格納する必要がなくなり、トレース情報の情報量を一層圧縮することができる。なお、割込み要因信号は、8種類に限られるものではなく、その数を適宜変更して実施することができる。
【0045】
(第4実施形態)
図11に示すように、本実施形態では、デバック回路部10は、さらに割込み要因信号識別回路41を備える。割込み要因信号識別回路41は、割込み要因信号識別手段の一例であり、図示しないCPUから入力される種々の割込み要因信号を識別し、その識別結果を示す情報を分岐信号識別回路11およびトレース情報設定回路12に出力する。この場合、CPUは、割込み分岐が発生すると、その要因に応じて、例えば12種類の割込み要因信号A〜Lを出力する。割込み要因信号識別回路41は、入力される割込み要因信号が割込み要因信号A〜Lの何れの信号であるのかを識別する。そして、割込み要因信号識別回路41は、識別した割込み要因信号A〜Lを分岐信号識別回路11および識別情報設定回路121に出力する。
【0046】
本実施形態では、CPUは、割込み分岐が発生しても割込み分岐信号を出力しないように構成されている。そして、分岐信号識別回路11は、割込み要因信号識別回路41から割込み要因信号A〜Lが入力されると、割込み分岐信号を擬似的に識別したことを示す情報をトレース情報設定回路12に出力する。
【0047】
識別情報設定回路121は、分岐信号識別回路11が割込み要因信号A〜Lに基づいて割込み分岐信号を擬似的に識別した場合には、1種類の識別情報を設定する。即ち、
図12に示すように、識別情報設定回路121は、割込み要因信号識別回路41から入力された割込み要因信号A〜Lに、それぞれ、固有の識別情報として4ビットの情報「0100」〜「1111」を設定する。即ち、識別情報設定回路121は、割込み要因信号識別回路41から入力される割込み要因信号A〜Lも分岐信号とみなして識別情報を設定する。なお、識別情報設定回路121は、分岐信号識別回路11に入力される各分岐信号には、固有の識別情報として4ビットの情報「0000」〜「0011」を設定する。また、識別情報のビット数は、分岐信号の数、割込み要因信号の数に応じて適宜変更して実施することができる。
【0048】
本実施形態では、分岐先情報設定回路123は、割込み要因信号A〜Lに基づいて分岐信号識別回路11が擬似的に「割込み分岐信号」を識別した場合には、その時点でCPUから入力されるプログラムカウンタ値を分岐先情報として設定しないように構成される。そして、本実施形態では、分岐信号識別回路11が擬似的に「割込み分岐信号」を識別した場合には、トレース情報設定回路12において、識別情報設定回路121により識別情報「0100」〜「1111」のうち何れかの情報が設定され、また、分岐元情報設定回路122により分岐元情報が設定される。そのため、トレース情報出力回路13は、設定された識別情報と分岐元情報をトレース情報として出力する。
【0049】
図13に示すように、ソースプログラムSには、実行される割込み要因A〜Lごとに分岐先アドレス(SA)〜(SL)が予め設定されている。この場合、ソースプログラムSには、割込み要因Gに対応する分岐先アドレス(SG)が設定されている。そして、復元装置は、トレース情報に格納されている識別情報に基づいて割込み要因を特定することができる。さらに、復元装置は、特定した割込み要因とソースプログラムSとを照合することにより、割込み分岐の分岐先アドレスを特定することができる。この場合、トレース情報TのアドレスT4に格納されている識別情報は「1010」であるから、この識別情報「1010」に対応する割込み要因信号Gが特定される。そして、復元データRのアドレスR11には、ソースプログラムSにおいて割込み要因Gに対応して設定されている分岐先アドレス(SG)が復元されている。
【0050】
本実施形態によれば、トレース情報復元装置は、トレース情報に格納されている識別情報から、割込み要因を特定することができ、さらに、割込み分岐の分岐先アドレスを特定することができる。これにより、情報量が多い割込み分岐の分岐先アドレスをトレース情報に格納する必要がなくなり、トレース情報の情報量を一層圧縮することができる。なお、割込み要因信号は、12種類に限られるものではなく、その数を適宜変更して実施することができる。
【0051】
また、本実施形態は、CPUが割込み分岐の発生時に割込み分岐信号を出力する構成において、何らかの原因により、割込み分岐が発生しているにも関わらずCPUから割込み分岐信号が出力されなかった場合、あるいは、CPUが出力した割込み分岐信号が分岐信号識別回路11に入力されなかった場合などにも適用することができる。
【0052】
(第5実施形態)
本実施形態は、第3実施形態と第4実施形態とを組み合わせた実施形態である。即ち、第4実施形態に示した構成において、割込み要因信号識別回路41は、図示しないCPUから入力される種々の割込み要因信号を識別し、その識別結果を示す情報を分岐信号識別回路11およびトレース情報設定回路12に出力する。この場合、CPUは、割込み分岐が発生すると、その要因に応じて、例えば8種類の割込み要因信号A〜Hを出力する。割込み要因信号識別回路41は、入力される割込み要因信号が割込み要因信号A〜Hの何れの信号であるのかを識別する。そして、割込み要因信号識別回路41は、識別した割込み要因信号A〜Hを分岐信号識別回路11および識別情報設定回路121に出力する。
【0053】
分岐信号識別回路11は、割込み要因信号識別回路41から割込み要因信号A〜Hが入力されると、割込み分岐信号を擬似的に識別したことを示す情報をトレース情報設定回路12に出力する。
識別情報設定回路121は、分岐信号識別回路11が割込み要因信号A〜Hに基づいて割込み分岐信号を擬似的に識別した場合には、固有の識別情報「11」を設定する。また、
図9に例示したように、識別情報設定回路121は、割込み要因信号識別回路41から入力された割込み要因信号A〜Hに、それぞれ、固有の識別情報として3ビットの情報「000」〜「111」を設定する。これにより、トレース情報設定回路12において、識別情報設定回路121により識別情報「11」と識別情報「000」〜「111」の何れかの情報とからなる識別情報群が設定され、また、分岐元情報設定回路122により分岐元情報が設定される。そのため、トレース情報出力回路13は、設定された識別情報群と分岐元情報をトレース情報として出力する。
【0054】
図10に例示したように、ソースプログラムSには、実行される割込み要因A〜Hごとに分岐先アドレス(SA)〜(SH)が予め設定されている。そして、復元装置は、トレース情報に格納されている識別情報群に基づいて割込み要因を特定することができる。なお、識別情報群を構成する識別情報「11」と識別情報「000」〜「111」の何れかの情報は、この場合、トレース情報Tの別々のアドレスに格納される。復元装置は、トレース情報Tに格納されている情報に基づいて、実際に実行された割込み要因を特定することができ、さらに、その特定した割込み要因とソースプログラムSとを照合することにより、割込み分岐の分岐先アドレスを特定することができる。
【0055】
本実施形態によれば、トレース情報復元装置は、トレース情報に格納されている識別情報群から、割込み要因を特定することができ、さらに、割込み分岐の分岐先アドレスを特定することができる。これにより、情報量が多い割込み分岐の分岐先アドレスをトレース情報に格納する必要がなくなり、トレース情報の情報量を一層圧縮することができる。
【0056】
(第6実施形態)
本実施形態は、第3実施形態と第4実施形態とを組み合わせた実施形態である。即ち、第3実施形態に示した構成において、割込み要因信号識別回路31は、図示しないCPUから入力される種々の割込み要因信号を識別し、その識別結果を示す情報をトレース情報設定回路12に出力する。この場合、CPUは、割込み分岐が発生すると、その要因に応じて、例えば12種類の割込み要因信号A〜Lを出力する。割込み要因信号識別回路31は、入力される割込み要因信号が割込み要因信号A〜Lの何れの信号であるのかを識別する。
【0057】
識別情報設定回路121は、割込み要因信号識別回路31が識別した分岐信号に、それぞれ1種類の識別情報を設定する。即ち、
図12に例示したように、識別情報設定回路121は、割込み要因信号識別回路31から入力された割込み要因信号A〜Lに、それぞれ、固有の識別情報として4ビットの情報「0100」〜「1111」を設定する。即ち、識別情報設定回路121は、割込み要因信号識別回路31から入力される割込み要因信号A〜Lも分岐信号とみなして識別情報を設定する。なお、識別情報設定回路121は、分岐信号識別回路11に入力される各分岐信号には、固有の識別情報として4ビットの情報「0000」〜「0011」を設定する。
【0058】
本実施形態では、トレース情報設定回路12において、識別情報設定回路121により識別情報「0000」〜「1111」のうち何れかの情報が設定され、また、分岐元情報設定回路122により分岐元情報が設定される。そのため、トレース情報出力回路13は、トレース情報設定回路12において設定された4ビットの識別情報と分岐元情報をトレース情報として出力する。
【0059】
図13に例示したように、ソースプログラムSには、実行される割込み要因A〜Lごとに分岐先アドレス(SA)〜(SL)が予め設定されている。そして、復元装置は、トレース情報に格納されている識別情報に基づいて割込み要因を特定することができる。復元装置は、トレース情報Tに格納されている情報に基づいて、実際に実行された割込み要因を特定することができ、さらに、その特定した割込み要因とソースプログラムSとを照合することにより、割込み分岐の分岐先アドレスを特定することができる。
【0060】
本実施形態によれば、トレース情報復元装置は、トレース情報に格納されている識別情報から、割込み要因を特定することができ、さらに、割込み分岐の分岐先アドレスを特定することができる。これにより、情報量が多い割込み分岐の分岐先アドレスをトレース情報に格納する必要がなくなり、トレース情報の情報量を一層圧縮することができる。
【0061】
(第7実施形態)
本実施形態は、第3実施形態の変形例である。即ち、
図14に示すように、割込み要因信号識別回路31は、図示しないCPUから入力される種々の割込み要因信号を識別し、その識別結果を示す情報をトレース情報設定回路12の分岐先情報設定回路123に出力する。この場合、CPUは、割込み分岐が発生すると、その要因に応じて、例えば8種類の割込み要因信号A〜Hを出力する。割込み要因信号識別回路31は、入力される割込み要因信号が割込み要因信号A〜Hの何れの信号であるのかを識別する。また、識別情報設定回路121は、分岐信号識別回路11が識別した分岐信号が割込み分岐信号である場合には、その割込み分岐信号に固有の識別情報「11」を設定する。
【0062】
そして、分岐先情報設定回路123は、分岐信号識別回路11が識別した分岐信号が「割込み分岐信号」である場合には、分岐先情報として分岐先アドレスを設定するのではなく、割込み要因信号識別回路31から入力された割込み要因信号A〜Hに固有の識別情報として3ビットの情報「000」〜「111」を設定する。これにより、分岐信号識別回路11が識別した分岐信号が「割込み分岐信号」である場合には、トレース情報設定回路12において、識別情報設定回路121により識別情報「11」が設定され、分岐先情報設定回路123により、実際に発生した割込み要因に対応する識別情報が設定され、分岐元情報設定回路122により分岐元情報が設定される。
【0063】
図15に示すように、ソースプログラムSには、実行される割込み要因A〜Hごとに分岐先アドレス(SA)〜(SH)が予め設定されている。この場合、ソースプログラムSには、割込み要因Cに対応する分岐先アドレス(SC)が設定されている。また、トレース情報出力回路13が出力したトレース情報のうち、識別情報「11」はトレース情報TのアドレスT4に格納され、発生した割込み要因に対応する3ビットの識別情報はアドレスT6に格納される。この場合、発生した割込み要因Cに対応する識別情報「010」がアドレスT6に格納されている。
【0064】
そして、復元装置は、トレース情報TのアドレスT6に格納されている識別情報「010」に基づいて、発生した割込み要因が割込み要因Cであることを特定することができる。さらに、復元装置は、特定した割込み要因CとソースプログラムSとを照合することにより、割込み分岐の分岐先アドレスを特定することができる。この場合、トレース情報TのアドレスT6に格納されている識別情報は「010」であるから、この識別情報「010」に対応する割込み要因信号Cが特定され、さらに、その割込み要因Cに対応する分岐先アドレス(SC)が特定される。そして、復元データRのアドレスR11には、ソースプログラムSにおいて割込み要因Cに対応して設定されている分岐先アドレス(SC)が復元されている。
【0065】
本実施形態によれば、トレース情報復元装置は、トレース情報に格納されている識別情報群から、割込み要因を特定することができ、さらに、割込み分岐の分岐先アドレスを特定することができる。これにより、情報量が多い割込み分岐の分岐先アドレスをトレース情報に格納する必要がなくなり、トレース情報の情報量を一層圧縮することができる。
【0066】
(第8実施形態)
本実施形態は、第4実施形態の変形例である。即ち、
図16に示すように、割込み要因信号識別回路41は、図示しないCPUから入力される種々の割込み要因信号を識別し、その識別結果を示す情報を分岐信号識別回路11およびトレース情報設定回路12に出力する。この場合、CPUは、割込み分岐が発生すると、その要因に応じて、例えば8種類の割込み要因信号A〜Hを出力する。割込み要因信号識別回路41は、入力される割込み要因信号が割込み要因信号A〜Hの何れの信号であるのかを識別する。
【0067】
そして、分岐信号識別回路11は、割込み要因信号識別回路41から割込み要因信号A〜Hが入力されると、割込み分岐信号を擬似的に識別したことを示す情報をトレース情報設定回路12に出力する。識別情報設定回路121は、分岐信号識別回路11が割込み分岐信号を擬似的に識別した場合には、割込み分岐信号に固有の識別情報「11」を設定する。
【0068】
そして、分岐先情報設定回路123は、分岐信号識別回路11が割込み分岐信号を擬似的に識別した場合には、分岐先情報として分岐先アドレスを設定するのではなく、割込み要因信号識別回路41から入力された割込み要因信号A〜Hに固有の識別情報として3ビットの情報「000」〜「111」を設定する。これにより、分岐信号識別回路11が割込み分岐信号を擬似的に識別した場合には、トレース情報設定回路12において、識別情報設定回路121により識別情報「11」が設定され、分岐先情報設定回路123により、実際に発生した割込み要因に対応する識別情報が設定され、分岐元情報設定回路122により分岐元情報が設定される。そして、設定された識別情報「11」と、実際に発生した割込み分岐に対応する識別情報と、分岐元情報が、例えば
図15に示したようにトレース情報Tに格納される。
【0069】
そして、復元装置は、トレース情報Tに格納されている識別情報に基づいて、発生した割込み要因を特定することができる。さらに、復元装置は、特定した割込み要因とソースプログラムSとを照合することにより、割込み分岐の分岐先アドレスを特定することができる。これにより、発生した割込み分岐の分岐先アドレスを復元データRに復元することができる。
本実施形態によれば、トレース情報復元装置は、トレース情報に格納されている識別情報群から、割込み要因を特定することができ、さらに、割込み分岐の分岐先アドレスを特定することができる。これにより、情報量が多い割込み分岐の分岐先アドレスをトレース情報に格納する必要がなくなり、トレース情報の情報量を一層圧縮することができる。
【0070】
(その他の実施形態)
本発明は、上述した実施形態に限定されるものではなく、その要旨を逸脱しない範囲で種々の実施形態に適用することができる。例えば、第3実施形態から第8実施形態の構成は、第2実施形態のマイクロコンピュータに適用してもよい。