JPH07210422A - 情報処理装置 - Google Patents

情報処理装置

Info

Publication number
JPH07210422A
JPH07210422A JP6001953A JP195394A JPH07210422A JP H07210422 A JPH07210422 A JP H07210422A JP 6001953 A JP6001953 A JP 6001953A JP 195394 A JP195394 A JP 195394A JP H07210422 A JPH07210422 A JP H07210422A
Authority
JP
Japan
Prior art keywords
instruction
information
execution
branch
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.)
Granted
Application number
JP6001953A
Other languages
English (en)
Other versions
JP3290280B2 (ja
Inventor
Takashi Miura
貴 三浦
Katsuto Fukuoka
克仁 福岡
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP00195394A priority Critical patent/JP3290280B2/ja
Priority to US08/371,692 priority patent/US5625785A/en
Publication of JPH07210422A publication Critical patent/JPH07210422A/ja
Application granted granted Critical
Publication of JP3290280B2 publication Critical patent/JP3290280B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3648Software debugging using additional hardware
    • G06F11/3656Software debugging using additional hardware using a specific debug interface
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3636Software debugging by tracing the execution of the program

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

(57)【要約】 【目的】 分岐に関するデバッグ情報に加えてデータに
関するデバッグ情報を提供し、デバッグのための有力の
手掛かりを得ることができ、重要度の高い分岐命令の実
行アドレスをバッファ容量を増やすことなく外部デバッ
グユニットに出力可能で、取り残しがあった情報の判別
をつけることの可能な情報処理装置を提供することを目
的とする。 【構成】 命令実行ユニットIEUと、命令実行ユニッ
トIEUの動作単位を計数して該計数値を保持する命令
実行順序情報保持手段CNTと、命令実行ユニットIE
Uの動作種別により分けられ、該対応種の動作時に実行
情報及び命令実行順序情報保持手段CNTの情報をそれ
ぞれ保持する複数個のバッファFJA,FRW,及びま
たはFPDと、所定の優先度に基づき複数個のバッファ
の内1つを選択して外部デバッグユニットEDBに出力
する選択手段SELとを有して構成する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は内部デバッグ支援機構を
持った情報処理装置に係り、特に、分岐に関するデバッ
グ情報、並びにデータに関するデバッグ情報を提供し、
デバッグのための有力の手掛かりを入手することが可能
で、また、命令実行装置の出力するデバッグ情報の内、
重要度の高い分岐命令の実行アドレスを、デバッグ用F
IFO(First-In First-Out)バッファの容量を増やす
ことなく外部デバッグユニットに出力可能とし、更に、
取り残しがあった情報の判別をつけることの可能な情報
処理装置に関する。
【0002】
【従来の技術】情報処理装置で動作するプログラムを開
発する際に、情報処理装置が動作した履歴を知ることは
デバッグ工程で大いに役立つ。このため、情報処理装置
の動作を、デバッグ情報として情報処理装置の外部に出
力して保存する方法は有益である。理想的には情報処理
装置の動作を全て外部に出力できればよいが、この方法
では出力すべきデータが多すぎて実用的ではない。そこ
で、情報処理装置が実行した分岐に関する情報をデバッ
グ情報として出力し、これを頼りに、情報処理装置の動
作履歴を知る方法が採られる。
【0003】図4は従来の情報処理装置の構成図であ
る。命令実行装置IEUの出力するデバッグ情報を格納
するFIFOバッファがFBの1本による構成であり、
FIFOバッファFBは4段のバッファ構成である。こ
こで、FIFOバッファFBが全て満たされている時に
は、以降のデータは格納できないものとして、以下、ど
のようにして、デバッグ情報を外部デバッグユニツトE
DBに出力しているかを説明する。
【0004】分岐命令実行信号JPまたはメモリアクセ
ス実行信号RWがアクティブになると、FIFOバッフ
ァFB内のバッファに、デバッグ情報出力バスDATA
上のデータが記憶される。同時に、バッファ内には、格
納された該データが分岐命令であるか、メモリアクセス
命令によるものであるかを識別するコードが該データと
組になって格納される。
【0005】次に、このようにしてFIFOバッファF
Bに格納された値は、外部デバッグユニットEDBの要
求によりFIFOバッファFBから取り出され、外部デ
バッグユニツトEDBにより読み出される。この時、F
IFOバッファFBから最初に取り出される値は、最も
古くFIFOバッファFBに格納された値である。
【0006】外部デバッグユニットEDBは、情報処理
装置IPAより出力される分岐アドレスとメモリ読み出
しのメモリデータより、情報処理装置IPAの内部状態
を補間してデバッグを行なう。
【0007】外部デバッグユニットEDBによるアプリ
ケーションプログラム(APRG)のデバッグにおい
て、必要な情報は幾つかある。その中でも命令実行履歴
(TRACE)が重要である。何故なら、プログラマ
は、命令実行履歴(TRACE)によりアプリケーショ
ンプログラム(APRG)の活性度を見ることで、バグ
を発見することができるからである。
【0008】この命令実行履歴(TRACE)は、外部
メモリEXMにあるアプリケーションプログラム(AP
RG)が、外部デバッグユニットEDBに分かっていて
不変であるなら、分岐命令の実行の有無を辿ることで解
析することができる。従って、デバッグに最も重要な情
報は、アプリケーションプログラムAPRGのどの分岐
命令が実行されたかという情報である。
【0009】次に、図5を参照して、分岐に関するデバ
ッグ情報を頼りに、情報処理装置IPAの動作履歴を知
る方法について具体的に説明する。図5(a)は情報処
理装置IPAがプログラムPRGを実行している様子を
示しており、図中、矢印付きの実線は処理の流れを示し
ている。
【0010】ある時点T1で、情報処理装置IPAが分
岐命令の1種であるサブルーチン呼出命令CALIを実
行したとすると、情報処理装置IPAは、分岐元アドレ
スORGPC1を含む第1のデバッグ情報DINF1を
出力する。
【0011】次に、ある時点T2で、情報処理装置IP
Aが分岐命令の1種であるサブルーチン復帰命令RET
Iを実行したとすると、情報処理装置IPAは分岐元ア
ドレスORGPC2を含む第2のデバッグ情報DINF
2を出力する。これらデバッグ情報DINF(第1及び
第2のデバッグ情報DINF1及びDINF2)を、図
5(b)に示す。
【0012】情報処理装置IPAに接続された外部デバ
ッグ装置EDBはデバッグ情報DINFを受け取って、
ソフトウェアにより解釈する。この様子を図5(c)を
参照して説明する。
【0013】先ず、第1のデバッグ情報DINF1よ
り、情報処理装置IPAは分岐元アドレスORGPC1
まで命令を実行してきて、分岐元アドレスORGPC1
で分岐命令を実行したことが分かる。この時、プログラ
ムPRG中の分岐元アドレスORGPC1の命令を調べ
るとサブルーチン呼出命令CALIであるので、この分
岐はサブルーチン呼出しであったことが分かる。分岐先
は、サブルーチン呼出命令CALIをデコードして知る
ことができる。このアドレスを分岐先アドレスDSTP
Cとする。
【0014】続いて、第2のデバッグ情報DINF2よ
り、情報処理装置IPAは先の分岐先アドレスDSTP
Cから順に命令を実行し、分岐元アドレスORGPC2
まで命令を実行してきて、分岐元アドレスORGPC2
で再び分岐を実行したことが分かる。プログラムPRG
中の分岐元アドレスORGPC2の命令を調べるとサブ
ルーチン復帰命令RETIであるので、この分岐はサブ
ルーチン復帰であったことが分かる。サブルーチン復帰
命令では直前のサブルーチン呼出しの直後の命令に戻る
ことが知られているので、分岐先は先のサブルーチン呼
出命令CALIのあった分岐元アドレスORGPC1の
次のアドレスである。このアドレスを分岐元アドレスO
RGPC1+とする。
【0015】このようにして、情報処理装置IPAが分
岐に関するデバッグ情報DINFを出力すれば、情報処
理総理IPAに接続された外部デバッグ装置EDBはデ
バッグ情報DINFとプログラムPRGから、ソフトウ
ェア的な解析により情報処理装置IPAの動作履歴を再
現できる。
【0016】しかしながら、以上説明した方法では、外
部デバッグ装置EDBはプログラムPRGの実効履歴を
再現できるものの、プログラムPRGを実行した時のデ
ータの値に関する情報は知りようがなく、デバッグのた
めの手掛かりが不足する。
【0017】一方、図3に示す従来のFIFOバッファ
FBでは、情報の優先度が考慮されずに全ての情報が格
納されていたため、重要な分岐命令に関する情報が失わ
れ易いという欠点もある。
【0018】例えば、初期状態としてFIFOバッファ
FBが空であった状況を考えてみる。先ず初めに、1つ
の分岐命令が実行され、続けて4つのメモリアクセス命
令が連続したとする。この場合、4つ目のメモリアクセ
ス命令が発生した時点で、外部デバッグユニットEDB
の要求により2段分の情報が読み出されていなければ、
FIFOバッファFBに空きがなくなってしまう。この
時点で分岐命令が実行されると、重要度の高い分岐命令
アドレスが格納されず、デバッグができないという状況
が発生する。
【0019】
【発明が解決しようとする課題】以上のように、従来の
情報処理装置では、 (1) プログラムを実行した時のデータの値に関する情報
がなく、デバッグのための手掛かりが不足する、 (2) 情報の優先度が考慮されずに全ての情報が格納され
ていたため、重要な分岐命令に関する情報が失われ易
い、という問題があった。
【0020】本発明は、上記問題点を解決するもので、
分岐に関するデバッグ情報に加えてデータに関するデバ
ッグ情報を提供し、デバッグのための有力の手掛かりを
得ることのできる情報処理装置を提供することを目的と
する。
【0021】また本発明の他の目的は、命令実行装置の
出力するデバッグ情報のうち重要度の高い分岐命令の実
行アドレスを、FIFOバッファの容量を増やすことな
く外部デバッグユニットに出力可能で、また、取り残し
があった情報の判別をつけることの可能な情報処理装置
を提供することである。
【0022】
【課題を解決するための手段】上記課題を解決するため
に、本発明の第1の特徴は、図1または図2に示す如
く、命令実行ユニットIEUと、前記命令実行ユニット
IEUの動作単位を計数して該計数値を保持する命令実
行順序情報保持手段CNTと、前記命令実行ユニットI
EUの動作種別により分けられ、該対応種の動作時に実
行情報及び前記命令実行順序情報保持手段CNTの情報
をそれぞれ保持する複数個のバッファFJA,FRW,
及びまたはFPDと、所定の優先度に基づき前記複数個
のバッファFJA,FRW,及びまたはFPDの内1つ
を選択して外部デバッグユニットEDBに出力する選択
手段SELとを具備することである。
【0023】また、本発明の第2の特徴は、図1または
図2に示す如く、プログラム実行中に分岐命令が実行さ
れた場合には、分岐命令実行信号JPをアクティブに
し、分岐元アドレスをデバッグ情報出力バスDATAに
出力し、前記プログラム実行中にメモリアクセス命令が
実行された場合には、メモリアクセス実行信号RWをア
クティブにし、該アクセスされたメモリの内容をデバッ
グ情報出力バスDATAに出力し、前記プログラム実行
中にスタックプッシュ命令が実行された場合には、スタ
ックプッシュ実行信号ETCをアクティブにし、該プッ
シュしたデータをデバッグ情報出力バスDATAに出力
する命令実行装置IEUと、前記分岐命令実行信号J
P、前記メモリアクセス実行信号RW、またはスタック
プッシュ実行信号ETCがアクティブになった時に計数
するカウンタCNTと、複数個のFIFOバッファと、
外部デバッグユニットEDBの要求により、前記複数個
のFIFOバッファに格納された値を外部デバッグユニ
ットEDBに出力するセレクタSELとを具備し、前記
複数個のバッファは、前記分岐命令実行信号JPがアク
ティブになった時にデバッグ情報出力バスDATAの値
と前記カウンタCNTの値を格納する分岐命令アドレス
FIFOバッファFJA、前記メモリアクセス実行信号
RWがアクティブになった時にデバッグ情報出力バスD
ATAの値と前記カウンタCNTの値を格納するメモリ
データFIFOバッファFRW、及びまたは、前記スタ
ックプッシュ実行信号ETCがアクティブになった時に
デバッグ情報出力バスDATAの値と前記カウンタCN
Tの値を格納するプッシュデータFIFOバッファFP
Dを具備し、前記セレクタSELは、前記複数個のバッ
ファFJA,FRW,及びまたはFPDの内、分岐命令
アドレスFIFOバッファFJAを優先して読み出すこ
とである。
【0024】
【作用】本発明の第1及び第2の特徴の情報処理装置で
は、図1または図2に示す如く、命令実行装置IEUに
おいて、プログラム実行中に分岐命令が実行された場合
には、分岐命令実行信号JPをアクティブにし、分岐元
アドレスをデバッグ情報出力バスDATAに出力し、プ
ログラム実行中にメモリアクセス命令が実行された場合
には、メモリアクセス実行信号RWをアクティブにし、
該アクセスされたメモリの内容をデバッグ情報出力バス
DATAに出力し、プログラム実行中にスタックプッシ
ュ命令が実行された場合には、スタックプッシュ実行信
号ETCをアクティブにし、該プッシュしたデータをデ
バッグ情報出力バスDATAに出力する。
【0025】またカウンタCNTにおいては、分岐命令
実行信号JP、メモリアクセス実行信号RW、またはス
タックプッシュ実行信号ETCがアクティブになった時
に計数して該命令の実行順序を生成する。
【0026】複数個のバッファにおいては、分岐命令実
行信号JPがアクティブになった時には、分岐元アドレ
スと命令実行順序情報を分岐命令アドレスFIFOバッ
ファFJAに格納し、メモリアクセス実行信号RWがア
クティブになった時には、アクセスされたメモリの内容
と命令実行順序情報をメモリデータFIFOバッファF
RWに格納し、更に、スタックプッシュ実行信号ETC
がアクティブになった時には、プッシュしたデータと命
令実行順序情報をプッシュデータFIFOバッファFP
Dに格納する。
【0027】更に、セレクタSELにおいては、外部デ
バッグユニットEDBの要求に応じて、複数個のバッフ
ァFJA,FRW,及びまたはFPDの内、分岐命令ア
ドレスFIFOバッファFJAを優先して読み出すよう
にしている。
【0028】従って、本発明の第1及び第2の情報処理
装置では、命令実行装置IEUの出力するデバッグ情報
の内、重要度の高い分岐命令の実行アドレスをFIFO
バッファの容量を増やすことなく外部デバッグユニット
EDBに出力でき、また、取り残しがあった情報の判別
をつけることが可能となる。
【0029】更に、分岐命令に関するデバッグ情報に加
えて、データに関するデバッグ情報を提供し、デバッグ
のための有力の手掛かりを得ることが可能となる。
【0030】
【実施例】次に、本発明に係る実施例を図面に基づいて
説明する。 (第1の実施例)図1に本発明の第1の実施例に係る情
報処理装置の構成図を示す。
【0031】図1において、本実施例の情報処理装置I
PA1は、バスBUSを介して接続される外部メモリE
XM上の命令を読み込んで実行する命令実行装置IEU
と、分岐命令実行信号JPまたはメモリアクセス実行信
号RWの何れかがアクティブになった時にカウントアッ
プするカウンタCNTと、2個のFIFOバッファと、
外部デバッグユニットEDBの要求により、2個のFI
FOバッファに格納された値を外部デバッグユニットE
DBに選択出力するセレクタSELとを備えて構成され
ている。
【0032】命令実行装置IEUは、プログラム実行中
に分岐命令が実行された場合には、分岐命令実行信号J
Pをアクティブにし、分岐元アドレスをデバッグ情報出
力バスDATAに出力し、また、プログラム実行中にメ
モリアクセス命令が実行された場合には、メモリアクセ
ス実行信号RWをアクティブにし、該アクセスされたメ
モリの内容をデバッグ情報出力バスDATAに出力す
る。
【0033】カウンタCNTは、分岐命令実行信号JP
かメモリアクセス実行信号RWの何れかがアクティブに
なるとカウンタCNTの値を+1する。つまり、このカ
ウンタCNTの値は、分岐命令とメモリアクセス命令の
命令発生順序を示している。
【0034】バッファとしては、分岐命令実行信号JP
がアクティブになった時にデバッグ情報出力バスDAT
Aの値とカウンタCNTの値とを格納する分岐命令アド
レスFIFOバッファFJA、並びに、メモリアクセス
実行信号RWがアクティブになった時にデバッグ情報出
力バスDATAの値とカウンタCNTの値を格納するメ
モリデータFIFOバッファFRWを具備している。
【0035】つまり、分岐命令アドレスFIFOバッフ
ァFJAには、分岐命令実行時の命令発生順序情報とデ
バッグ情報出力バスDATA上に出力された分岐元アド
レスだけが保存されることになり、一方、メモリデータ
FIFOバッファFRWには、メモリアクセス命令によ
るメモリ内容が、該命令の命令発生順序情報と共に保存
されることとなる。
【0036】またセレクタSELは、分岐命令アドレス
FIFOバッファFJAとメモリデータFIFOバッフ
ァFRWに接続している。外部デバッグユニットEDB
より読み出し要求があり、何れかのFIFOバッファに
値が格納されている場合は、その値を取り出して外部デ
バッグユニットEDBに出力する。双方のFIFOバッ
ファに値が格納されている場合には、分岐命令アドレス
FIFOバッファFJAを優先して読み出し外部デバッ
グユニットEDBに出力する。ここで、分岐命令アドレ
スFIFOバッファFJAとメモリデータFIFOバッ
ファFRWは、各々2段のバッファを持っているものと
する。
【0037】ここで、従来技術において例示した分岐命
令にて分岐元アドレスを取りこぼした例を考えてみる。
【0038】先ず、1つ目の分岐命令の分岐元アドレス
は、分岐命令アドレスFIFOバッファFJAに格納さ
れる。次の4つのメモリアクセス命令の内、2つめ以降
はメモリデータFIFOバッファFRWに格納されな
い。しかし、その後の分岐命令の分岐元アドレスは、正
常に分岐命令アドレスFIFOバッファFJAに格納さ
れる。
【0039】さてこの時、分岐命令アドレスFIFOバ
ッファFJAが優先されるので、外部デバッグユニット
EDBには分岐命令アドレスFIFOバッファFJAの
アドレスが連続して読出されることとになる。この場
合、その命令順序を示すカウンタCNTが不連続とな
り、途中で分岐命令アドレスFIFOバッファFJAが
メモリデータFIFOバッファFRWに優先して読み出
されたことは、外部デバッグユニットEDBにより判別
することができる。更に、カウンタCNTの抜けを調べ
れば、どの命令がFIFOバッファに格納されなかった
かを判別することができる。
【0040】このように、本実施例の情報処理装置IP
A1ではFIFOバッファ全体としての容量を増やすこ
となく、より多くの分岐命令分岐元アドレスを得ること
ができる。更に、メモリアクセス命令のメモリ内容の
内、取りこぼした情報を判別するのに必要な情報も得る
ことができる。
【0041】(第2の実施例)本実施例の情報処理装置
においても第1の実施例の構成と同様の構成を備える。
図2に本発明の第2の実施例に係る情報処理装置の構成
図を示す。
【0042】図2において、本実施例の情報処理装置I
PA2は、バスBUSを介して接続される外部メモリE
XM上の命令を読み込んで実行する命令実行装置IEU
と、分岐命令実行信号JPまたはメモリアクセス実行信
号RWの何れかがアクティブになった時にカウントアッ
プするカウンタCNTと、2個のFIFOバッファと、
外部デバッグユニットEDBの要求により、2個のFI
FOバッファに格納された値を外部デバッグユニットE
DBに選択出力するセレクタSELとを備えて構成され
ている。
【0043】命令実行装置IEUは、プログラム実行中
に分岐命令が実行された場合には、分岐命令実行信号J
Pをアクティブにし、分岐元アドレスをデバッグ情報出
力バスDATAに出力し、また、プログラム実行中にス
タックプッシュ命令が実行された場合には、スタックプ
ッシュ実行信号ETCをアクティブにし、プッシュした
データをデバッグ情報出力バスDATAに出力する。
【0044】カウンタCNTは、分岐命令実行信号JP
かスタックプッシュ実行信号ETCの何れかがアクティ
ブになるとカウンタCNTの値を+1する。つまり、こ
のカウンタCNTの値は、分岐命令とスタックプッシュ
命令の命令発生順序を示している。
【0045】バッファとしては、分岐命令実行信号JP
がアクティブになった時にデバッグ情報出力バスDAT
Aの値とカウンタCNTの値とを格納する分岐命令アド
レスFIFOバッファFJA、並びに、スタックプッシ
ュ実行信号ETCがアクティブになった時にデバッグ情
報出力バスDATAの値とカウンタCNTの値を格納す
るプッシュデータFIFOバッファFPDを具備してい
る。
【0046】つまり、分岐命令アドレスFIFOバッフ
ァFJAには、分岐命令実行時の命令発生順序情報とデ
バッグ情報出力バスDATA上に出力された分岐元アド
レスだけが保存されることになり、一方、プッシュデー
タFIFOバッファFPDには、スタックプッシュ命令
によるプッシュデータが、該命令の命令発生順序情報と
共に保存されることとなる。
【0047】またセレクタSELは、分岐命令アドレス
FIFOバッファFJAとプッシュデータFIFOバッ
ファFPDに接続している。外部デバッグユニットED
Bより読み出し要求があり、何れかのFIFOバッファ
に値が格納されている場合は、その値を取り出して外部
デバッグユニットEDBに出力する。双方のFIFOバ
ッファに値が格納されている場合には、分岐命令アドレ
スFIFOバッファFJAを優先して読み出し外部デバ
ッグユニットEDBに出力する。ここで、分岐命令アド
レスFIFOバッファFJAとプッシュデータFIFO
バッファFPDは、各々2段のバッファを持っているも
のとする。
【0048】次に、本実施例の情報処理装置におけるデ
バッグ動作を、図3に示す例を参照して具体的に説明す
る。図3(a)は情報処理装置IPA2がプログラムP
RGを実行している様子を示しており、図中、矢印付き
の実線は処理の流れを示している。
【0049】ある時点T0で、情報処理装置IPA2が
スタックプッシュ命令PSHIを実行したとすると、情
報処理装置IPA2は、プッシュしたデータPSHDA
T1を含むデバッグ情報を出力する。続くスタックプッ
シュ命令PSHIに対しても、情報処理装置IPA2
は、それぞれプッシュしたデータPSHDAT2,PS
HDAT3を含むデバッグ情報を出力する。以上、3つ
のスタックプッシュ命令に関するデバッグ情報を第0の
デバッグ情報DINF0とする。
【0050】以後の時点T1及び時点T2における動作
は、従来例(図5(a)参照)と同様である。結果とし
て、情報処理装置IPA2は3つのスタックプッシュ命
令に関するデバッグ情報と、2つの分岐命令に関するデ
バッグ情報を出力することとなる。これらデバッグ情報
DINF(第0、第1、及び第2のデバッグ情報DIN
F0〜DINF2)を、図3(b)に示す。
【0051】情報処理装置IPA2に接続された外部デ
バッグ装置EDBはデバッグ情報DINFを受け取っ
て、ソフトウェアにより解釈する。この様子を図3
(c)を参照して説明する。
【0052】先ず、第0のデバッグ情報DINF0によ
り、スタック上のデータはプッシュしたデータPSDA
T3,PSDAT2,PSDAT1の順に並んでいるこ
とが分かる。
【0053】次に、第1のデバッグ情報DINF1よ
り、情報処理装置IPA2は分岐元アドレスORGPC
1まで命令を実行してきて、分岐元アドレスORGPC
1で分岐命令を実行したことが分かる。この時、プログ
ラムPRG中の分岐元アドレスORGPC1の命令を調
べるとサブルーチン呼出命令CALIであるので、この
分岐はサブルーチン呼出しであったことが分かる。分岐
先は、サブルーチン呼出命令CALIをデコードして知
ることができる。このアドレスを分岐先アドレスDST
PCとする。
【0054】次に、プログラムPRGのソースプログラ
ムを参照して、分岐先アドレスDSTPCをエントリと
するサブルーチンの引数の数を調べる。ここでは3個で
あるとする。既にスタック上には、プッシュしたデータ
PSDAT3,PSDAT2,PSDAT1の順にデー
タが並んでいることが判明しているので、サブルーチン
呼出しの引数の値はプッシュしたデータPSDAT3,
PSDAT2,PSDAT1であったことが分かる。
【0055】続いて、第2のデバッグ情報DINF2よ
り、情報処理装置IPA2は先の分岐先アドレスDST
PCから順に命令を実行し、分岐元アドレスORGPC
2まで命令を実行してきて、分岐元アドレスORGPC
2で再び分岐を実行したことが分かる。プログラムPR
G中の分岐元アドレスORGPC2の命令を調べるとサ
ブルーチン復帰命令RETIであるので、この分岐はサ
ブルーチン復帰であったことが分かる。サブルーチン復
帰命令では直前のサブルーチン呼出しの直後の命令に戻
ることが知られているので、分岐先は先のサブルーチン
呼出命令CALIのあった分岐元アドレスORGPC1
の次のアドレスである。このアドレスを分岐元アドレス
ORGPC1+とする。
【0056】このようにして、情報処理装置IPA2が
分岐に関するデバッグ情報DINFを出力すれば、情報
処理総理IPA2に接続された外部デバッグ装置EDB
はデバッグ情報DINFとプログラムPRGのソースプ
ログラムから、ソフトウェア的な解析により情報処理装
置IPA2の動作履歴を再現でき、且つサブルーチン呼
出しに係る引数の値を知ることができる。
【0057】以上のように、本実施例の情報処理装置I
PA2では、プログラムPRGの実行履歴だけではな
く、サブルーチン呼出しの際の引数を含む、より詳細な
情報を知ることが可能となる。
【0058】
【発明の効果】以上説明したように、本発明によれば、
命令実行装置において、プログラム実行中に分岐命令が
実行された場合には、分岐命令実行信号をアクティブに
し、分岐元アドレスをデバッグ情報出力バスに出力し、
プログラム実行中にメモリアクセス命令が実行された場
合には、メモリアクセス実行信号をアクティブにし、該
アクセスされたメモリの内容をデバッグ情報出力バスに
出力し、プログラム実行中にスタックプッシュ命令が実
行された場合には、スタックプッシュ実行信号をアクテ
ィブにし、該プッシュしたデータをデバッグ情報出力バ
スに出力し、またカウンタにおいては、分岐命令実行信
号、メモリアクセス実行信号、またはスタックプッシュ
実行信号がアクティブになった時に計数して該命令の実
行順序を生成し、また、複数個のバッファにおいては、
分岐命令実行信号がアクティブになった時には、分岐元
アドレスと命令実行順序情報を分岐命令アドレスFIF
Oバッファに格納し、メモリアクセス実行信号がアクテ
ィブになった時には、アクセスされたメモリの内容と命
令実行順序情報をメモリデータFIFOバッファに格納
し、更に、スタックプッシュ実行信号がアクティブにな
った時には、プッシュしたデータと命令実行順序情報を
プッシュデータFIFOバッファに格納し、更に、セレ
クタにおいては、外部デバッグユニットの要求に応じ
て、複数個のバッファの内、分岐命令アドレスFIFO
バッファを優先して読み出すこととしたので、命令実行
装置の出力するデバッグ情報の内、重要度の高い分岐命
令の実行アドレスをFIFOバッファの容量を増やすこ
となく外部デバッグユニットに出力でき、また、取り残
しがあった情報の判別をつけることが可能となり、更
に、分岐命令に関するデバッグ情報に加えて、データに
関するデバッグ情報を提供し、デバッグのための有力の
手掛かりを得ることの可能な情報処理装置を提供するこ
とができる。
【図面の簡単な説明】
【図1】本発明の第1の実施例に係る情報処理装置の構
成図である。
【図2】本発明の第2の実施例に係る情報処理装置の構
成図である。
【図3】図3(a)は第2の実施例の情報処理装置にお
けるプログラムの実行の説明図、図3(b)は外部デバ
ッグ装置に出力されるデバッグ情報、図3(c)は外部
デバッグ装置における解釈の説明図である。
【図4】従来の情報処理装置の構成図である。
【図5】図5(a)は情報処理装置におけるプログラム
の実行の説明図、図5(b)は外部デバッグ装置に出力
されるデバッグ情報、図5(c)は外部デバッグ装置に
おける解釈の説明図である。
【符号の説明】
IPA,IPA1,IPA2 情報処理装置 EXM 外部メモリ EDB 外部デバッグユニット IEU 命令実行ユニット CNT カウンタ(命令実行順序情報保持手段) SEL セレクタ(選択手段) FJA 分岐命令アドレスFIFOバッファ FRW メモリデータFIFOバッファ FPD プッシュデータFIFOバッファ DATA デバッグ情報出力バス JP 分岐命令実行信号 RW メモリアクセス実行信号 ETC スタックプッシュ実行信号 FB FIFOバッファ PRG プログラム T0,T1,T2 時点 CALI サブルーチン呼出命令 RETI サブルーチン復帰命令 PSHI スタックプッシュ命令 ORGPC1,ORGPC2 分岐元アドレス DSTPC,ORGPC1+ 分岐先アドレス PSHDAT1〜PSHDAT3 プッシュデータ DINF,DINF0,DINF1,DINF2 デバ
ッグ情報

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 命令実行ユニットと、 前記命令実行ユニットの動作単位を計数して該計数値を
    保持する命令実行順序情報保持手段と、 前記命令実行ユニットの動作種別により分けられ、該対
    応種の動作時に実行情報及び前記命令実行順序情報保持
    手段の情報をそれぞれ保持する複数個のバッファと、 所定の優先度に基づき前記複数個のバッファの内1つを
    選択して外部デバッグユニットに出力する選択手段とを
    有することを特徴とする情報処理装置。
  2. 【請求項2】 プログラム実行中に分岐命令が実行され
    た場合には、分岐命令実行信号をアクティブにし、分岐
    元アドレスをデバッグ情報出力バスに出力し、前記プロ
    グラム実行中にメモリアクセス命令が実行された場合に
    は、メモリアクセス実行信号をアクティブにし、該アク
    セスされたメモリの内容をデバッグ情報出力バスに出力
    し、前記プログラム実行中にスタックプッシュ命令が実
    行された場合には、スタックプッシュ実行信号をアクテ
    ィブにし、該プッシュしたデータをデバッグ情報出力バ
    スに出力する命令実行装置と、 前記分岐命令実行信号、前記メモリアクセス実行信号、
    またはスタックプッシュ実行信号がアクティブになった
    時に計数するカウンタと、 複数個のFIFOバッファと、 外部デバッグユニットの要求により、前記複数個のFI
    FOバッファに格納された値を外部デバッグユニットに
    出力するセレクタとを有し、 前記複数個のバッファは、 前記分岐命令実行信号がアクティブになった時にデバッ
    グ情報出力バスの値と前記カウンタの値を格納する分岐
    命令アドレスFIFOバッファ、 前記メモリアクセス実行信号がアクティブになった時に
    デバッグ情報出力バスの値と前記カウンタの値を格納す
    るメモリデータFIFOバッファ、 及びまたは、前記スタックプッシュ実行信号がアクティ
    ブになった時にデバッグ情報出力バスの値と前記カウン
    タの値を格納するプッシュデータFIFOバッファを有
    し、 前記セレクタは、前記複数個のバッファの内、分岐命令
    アドレスFIFOバッファを優先して読み出すことを特
    徴とする情報処理装置。
JP00195394A 1994-01-13 1994-01-13 情報処理装置 Expired - Lifetime JP3290280B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP00195394A JP3290280B2 (ja) 1994-01-13 1994-01-13 情報処理装置
US08/371,692 US5625785A (en) 1994-01-13 1995-01-12 Information processing apparatus having dual buffers for transmitting debug data to an external debug unit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP00195394A JP3290280B2 (ja) 1994-01-13 1994-01-13 情報処理装置

Publications (2)

Publication Number Publication Date
JPH07210422A true JPH07210422A (ja) 1995-08-11
JP3290280B2 JP3290280B2 (ja) 2002-06-10

Family

ID=11515970

Family Applications (1)

Application Number Title Priority Date Filing Date
JP00195394A Expired - Lifetime JP3290280B2 (ja) 1994-01-13 1994-01-13 情報処理装置

Country Status (2)

Country Link
US (1) US5625785A (ja)
JP (1) JP3290280B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6467083B1 (en) 1998-09-30 2002-10-15 Nec Corporation Debugging system for computer program, method for checking target program and information storage medium for storing checking program
JP2012178155A (ja) * 2011-02-24 2012-09-13 Linde Aktiengesellschaft 圧力低下装置

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6112316A (en) * 1997-12-03 2000-08-29 Micron Electronics, Inc. System for use of bus parking states to communicate diagnostic information
US6092219A (en) * 1997-12-03 2000-07-18 Micron Technology, Inc. Method for use of bus parking states to communicate diagnostic information
JP3116901B2 (ja) * 1998-04-28 2000-12-11 日本電気株式会社 プログラム検査方法、プログラム検査装置及びプログラム検査プログラムを記録した記録媒体
US6223338B1 (en) 1998-09-30 2001-04-24 International Business Machines Corporation Method and system for software instruction level tracing in a data processing system
US6684348B1 (en) * 1999-10-01 2004-01-27 Hitachi, Ltd. Circuit for processing trace information
US6732307B1 (en) 1999-10-01 2004-05-04 Hitachi, Ltd. Apparatus and method for storing trace information
US6918065B1 (en) 1999-10-01 2005-07-12 Hitachi, Ltd. Method for compressing and decompressing trace information
JP2001184212A (ja) * 1999-12-24 2001-07-06 Mitsubishi Electric Corp トレース制御回路
JP2001195281A (ja) * 2000-01-07 2001-07-19 Sony Corp システム監視装置
US20040078690A1 (en) * 2000-05-30 2004-04-22 Yasuo Kohashi Program counter trace system, program counter trace method, and semiconductor device
US7287147B1 (en) * 2000-12-29 2007-10-23 Mips Technologies, Inc. Configurable co-processor interface
US7237090B1 (en) 2000-12-29 2007-06-26 Mips Technologies, Inc. Configurable out-of-order data transfer in a coprocessor interface
US7181728B1 (en) 2001-04-30 2007-02-20 Mips Technologies, Inc. User controlled trace records
US7134116B1 (en) 2001-04-30 2006-11-07 Mips Technologies, Inc. External trace synchronization via periodic sampling
US7069544B1 (en) * 2001-04-30 2006-06-27 Mips Technologies, Inc. Dynamic selection of a compression algorithm for trace data
US7178133B1 (en) 2001-04-30 2007-02-13 Mips Technologies, Inc. Trace control based on a characteristic of a processor's operating state
US7185234B1 (en) 2001-04-30 2007-02-27 Mips Technologies, Inc. Trace control from hardware and software
US7168066B1 (en) * 2001-04-30 2007-01-23 Mips Technologies, Inc. Tracing out-of order load data
US7124072B1 (en) 2001-04-30 2006-10-17 Mips Technologies, Inc. Program counter and data tracing from a multi-issue processor
US7065675B1 (en) 2001-05-08 2006-06-20 Mips Technologies, Inc. System and method for speeding up EJTAG block data transfers
DE60100363T2 (de) * 2001-05-11 2004-05-06 Sospita A/S Sequenznummerierungsmechanismus zur sicherung der ausführungsordnungs-integrietät von untereinander abhängigen smart-card anwendungen
US7231551B1 (en) 2001-06-29 2007-06-12 Mips Technologies, Inc. Distributed tap controller
US7043668B1 (en) 2001-06-29 2006-05-09 Mips Technologies, Inc. Optimized external trace formats
DE10148109B4 (de) * 2001-09-28 2006-10-12 Infineon Technologies Ag Verfahren zum Speichern oder Weiterleiten von Daten
US7219333B2 (en) * 2002-11-22 2007-05-15 Texas Instruments Incorporated Maintaining coherent synchronization between data streams on detection of overflow
US7133821B2 (en) * 2002-11-22 2006-11-07 Texas Instruments Incorporated Read FIFO scheduling for multiple streams while maintaining coherency
US7159101B1 (en) 2003-05-28 2007-01-02 Mips Technologies, Inc. System and method to trace high performance multi-issue processors
US7437623B2 (en) * 2003-11-05 2008-10-14 Texas Instruments Incorporated Apparatus and method for performing speculative reads from a scan control unit using FIFO buffer units
JP4833907B2 (ja) * 2007-04-23 2011-12-07 ルネサスエレクトロニクス株式会社 半導体装置
US7870436B2 (en) * 2007-04-25 2011-01-11 Broadcom Corporation System and method for tracing acceleration in an embedded device
US8099636B2 (en) * 2008-07-15 2012-01-17 Caterpillar Inc. System and method for protecting memory stacks using a debug unit
US8954809B2 (en) * 2012-07-25 2015-02-10 Texas Instruments Incorporated Method for generating descriptive trace gaps
US10396974B1 (en) 2018-07-20 2019-08-27 Nxp B.V. Self-testing of a phase-locked loop using a pseudo-random noise

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3707725A (en) * 1970-06-19 1972-12-26 Ibm Program execution tracing system improvements
US4205370A (en) * 1975-04-16 1980-05-27 Honeywell Information Systems Inc. Trace method and apparatus for use in a data processing system
JPS593651A (ja) * 1982-06-30 1984-01-10 Fujitsu Ltd フア−ムウエアによる性能測定システム
US4598364A (en) * 1983-06-29 1986-07-01 International Business Machines Corporation Efficient trace method adaptable to multiprocessors
US5146570A (en) * 1984-10-31 1992-09-08 International Business Machines Corporation System executing branch-with-execute instruction resulting in next successive instruction being execute while specified target instruction is prefetched for following execution
US4714994A (en) * 1985-04-30 1987-12-22 International Business Machines Corp. Instruction prefetch buffer control
EP0396833A1 (en) * 1989-05-12 1990-11-14 International Business Machines Corporation Trace facility for use in a multiprocessing environment
US5410685A (en) * 1990-06-12 1995-04-25 Regents Of The University Of Michigan Non-intrinsive method and system for recovering the state of a computer system and non-intrusive debugging method and system utilizing same
JPH04148242A (ja) * 1990-10-08 1992-05-21 Fujitsu Ltd ロード・モジュール実行時トレース処理方法
US5265213A (en) * 1990-12-10 1993-11-23 Intel Corporation Pipeline system for executing predicted branch target instruction in a cycle concurrently with the execution of branch instruction
US5359608A (en) * 1992-11-24 1994-10-25 Amdahl Corporation Apparatus for activation and deactivation of instruction tracing through use of conditional trace field in branch instructions
US5463745A (en) * 1993-12-22 1995-10-31 Intel Corporation Methods and apparatus for determining the next instruction pointer in an out-of-order execution computer system

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6467083B1 (en) 1998-09-30 2002-10-15 Nec Corporation Debugging system for computer program, method for checking target program and information storage medium for storing checking program
JP2012178155A (ja) * 2011-02-24 2012-09-13 Linde Aktiengesellschaft 圧力低下装置

Also Published As

Publication number Publication date
US5625785A (en) 1997-04-29
JP3290280B2 (ja) 2002-06-10

Similar Documents

Publication Publication Date Title
JP3290280B2 (ja) 情報処理装置
US6279103B1 (en) Method and device for providing an instruction trace from an on-chip CPU using control signals from the CPU
US6253317B1 (en) Method and apparatus for providing and handling traps
US7200776B2 (en) System and method for generating trace data in a computing system
US5608867A (en) Debugging system using virtual storage means, a normal bus cycle and a debugging bus cycle
US20040078690A1 (en) Program counter trace system, program counter trace method, and semiconductor device
KR100313939B1 (ko) 인터럽트제어기
JP2006164185A (ja) デバッグ装置
CN113076233B (zh) 一种io性能检测方法、装置、设备及存储介质
US20180349267A1 (en) Asynchronous operation query
JP2005222446A (ja) オンボードデバッグ装置および半導体回路装置
JP2000215068A (ja) マルチタスクスケジュ―リング装置
WO2023036076A1 (zh) 一种软件监测方法以及相关装置
KR880001399B1 (ko) 정보 처리 장치
US7711096B2 (en) Telecommunication server apparatus
JP2000057012A (ja) トレース装置
US20030033552A1 (en) Apparatus and method for wait state analysis in a digital signal processing system
JPH04145544A (ja) デバッグ装置
JPS60105050A (ja) パイプライン制御方式
JP2743889B2 (ja) プログラム評価の方法および装置
JP3917079B2 (ja) 最適なアクセス戦略の決定方法
JP2666737B2 (ja) トレースメモリ内蔵マイクロプロセッサおよびトレース方法
CN114510197A (zh) 一种存储方法、装置及电子设备
JP3098501B2 (ja) ソースステップ実行方法およびその装置
JP2006318172A (ja) マイクロコンピュータ

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080322

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090322

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100322

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100322

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110322

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120322

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130322

Year of fee payment: 11