JPH02230335A - ファームウェアトレース方式 - Google Patents

ファームウェアトレース方式

Info

Publication number
JPH02230335A
JPH02230335A JP1049777A JP4977789A JPH02230335A JP H02230335 A JPH02230335 A JP H02230335A JP 1049777 A JP1049777 A JP 1049777A JP 4977789 A JP4977789 A JP 4977789A JP H02230335 A JPH02230335 A JP H02230335A
Authority
JP
Japan
Prior art keywords
instruction
trace
tracing
address
area
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
Application number
JP1049777A
Other languages
English (en)
Inventor
Yoshihiro Kimura
義弘 木村
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP1049777A priority Critical patent/JPH02230335A/ja
Publication of JPH02230335A publication Critical patent/JPH02230335A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 [概 要] データ処理装置のハードウェアの少なくとも一部を構成
するファームウェアの障害探索のだめの情報の採取に関
し、 ファームウェアの本来の動作に与える影響が少なく、か
つ動的に必要情報を採取し得るトレース手段の提供を目
的とし、 命令を一時的に退避する退避領域と、トレースルーチン
を開始するファームウェアのアドレスを保持しておく第
一の保持領域と、複数種類のトレースルーチンへそれぞ
れ分岐せしめる複数の分岐命令を保持する第二の保持領
域と、複数種類のトレースルーチンと、サービスプロセ
ッサによってトレースの開始または終了が指示された時
、これを検出する第一の手段と、前記トレースルーチン
によって採取したデータの内容によって、以後のトレー
スを停止すべきか否かを判定する第二の手段とを具備し
、 上記第1の保持領域に保持したアドレス値の示すメモリ
領域の内容を書き替えることにより、トレース機能を制
御する如く構成する。
[産業上の利用分野コ 本発明は、ファームウェアのトレース方式に関する。
近年、ファームウェアによる処理が増加しており、また
半導体集積技術の進歩に伴いマイクロプロセッサやメモ
リ内に制御情報等を内蔵することが多くなっている。従
って、従来ハードウェアのデバグ時に用いられてきたロ
ジックアナライザのような測定器が使用できなくなって
きている。そのためファームウェアはそれ自身のデバグ
のため、トレース処理を組み込むことが欠かせなくなっ
ている。しかし、限られたトレース領域に必要なトレー
スデータを効率よくとらなければ、トレースデータの解
析に多くの時間が必要になったり、必要なトレースデー
タが記録されていなかったりする場合を生ずることがあ
る。
また、通常の処理の時には、ファームウェアによる処理
はその装置の処理性能に影響するから、トレース処理に
よって本来の処理を遅延させないようにする必要がある
[従来の技術] 従来のトレース方式では、トレースを起動する命令とし
て、ポインタを読み出しその値によって分岐する命令を
組み込んでおくように構成されていた。そしてトレース
を行なうべくトレースルーチンが起動された時は、該ポ
インタをトレース処理ルーチンの先頭アドレスに書き替
えることにより、前記命令を実行すると、トレース処理
を行なってから通常の処理を実行するようになっていた
第4図および第5図は、このような従来のトレース処理
について説明する図である。すなわち、第4図(a)は
トレースを開始する前と開始した後のメモリの内容を示
しており、(8)がトレースを開始する前の状態、(b
)がトレースを行なった場合のメモリの内容を示してい
る。また、第5図は命令の実行順序を示してあり、同図
(a)は第41!I(a)に対応し、同図ら〕は第4図
ら)に対応している。
第4図(a),(b)に示す命令2は、前記ポインタを
読み出し、その値によって分岐する命令である。命令2
1〜2nはトレース処理ルーチンである。命令2nは#
3に分岐する命令である。
通常の場合(第4図(a))は、#nmのポインタの値
が#3なので、第5図(a)に示すようにトレース処理
ルーチンを実行しないで、次の命令3.4・・・・・・
を実行する。一方、トレースを行なう場合(第4図(b
))は、#nfflのポインタの値が#2lなので、第
5図ら)に示すようにトレース処理ルーチンを実行し、
命令2nによって#3に分岐して次の命令3,4・・・
・・・を実行する。
[発明が解決しようとする課題] 上述したような、従来のトレースデータ採取方式におい
ては、トレースを行なう必要のないときにも、ポインタ
を読み出し、その値によって分岐する命令(命令2)を
実行していたので、これに要する時間によって、通常の
処理速度が遅くなるという問題点を有していた。またト
レースルーチンを起動するポインタ(#nm)のアドレ
スがいつも同じなので、毎回同じトレースデータしかと
れなかった。そのため状態が変わることによって必要な
トレースデータが違ってくるような場合は、すべての状
態を想定して、必要なすべてのトレースデータを毎回採
る必要があったから、トレースデータ量が多くなり、ト
レースデータの解析に多くの時間が必要になるという問
題点があった。
また、トレース領域が一杯になると再びトレース領域の
最初からトレースデータを書き替えるので、トレースデ
ータ量が多くなると、当初採取したトレースデータは新
しいトレースデータによって書き替えられてしまい、必
要なトレースデータが残らないことがあるという問題点
もあった。そして、このことは、その中に異常なトレー
スデータが存在する場合でも、それが新しいトレースデ
ータによって書き替えられてしまうため、障害解析が不
可能になってしまう場合があるというような問題を生じ
ていた。
本発明は、このような従来の問題点に鑑み、通常の処理
の時は、トレース処理による遅延を生ずることがなく、
トレースを起動した時のみトレース処理を実行させるこ
とが可能で、また、トレースデータを判定してトレース
を効率よく行なうことにより、多様な状態に対応するト
レースデータを記録できるようにすると共に、トレース
データが異常であることを検出したとき、トレースを停
止させることにより、障害解析を容易ならしめる手段を
提供することを目的としている。
[課題を解決するための手段] 本発明によれば、上述の目的は前記特許請求の範囲に記
載した手段により達成される。
すなわち、第1の発明は、ファームウェアとファームウ
ェアのトレース結果を格納する書き替え可能なメモリ部
と、メモリ部からファームウェアを読み出して命令を実
行する命令処理部と、前記命令処理部によるトレースの
開始または終了の処理を起動することの可能なサービス
プロセッサをもつ装置において、命令を一時的に退避゜
する退避領域と、トレースルーチンを開始するファーム
ウェアのアドレスを保持しておく第一の保持領域と、複
数種類のトレースルーチンへそれぞれ分岐せしめる複数
の分岐命令を保持する第二の保持領域と、複数種類のト
レースルーチンと、サービスプロセッサによってトレー
スの開始または終了が指示された時、これを検出する第
一の手段と、前記トレースルーチンによって採取したデ
ータの内容によって以後のトレースを停止すべきか否か
を判定する第二の手段とを具備し、前記第一の手段によ
ってトレースの開始の指示が検出された時、第一の保持
領域から前記アドレスを読み出して、該アドレスに格納
されている命令を読みだし、該命令を退避領域に書き込
むと共に、第二の保持領域から第一のトレースルーチン
へ分岐する第一の分岐命令を読み出して、第一の保持領
域から読み出された前記アドレスに、該第一の分岐命令
を書き込むことにようて、第一のトレースルーチンを実
行することを可能とし、前記第一の手段によってトレー
スの終了の措示が検出されたとき、または第二の手段に
よってトレースを停止すると判定されたとき、退避領域
に書き込んでおいた命令を読み出して第一の保持領域に
保持されているアドレスによって示される領域に書き込
むファームウェアトレース方式であり、また、第2の発
明は上記第1の発明に、トレースルーチンの処理の中で
退避領域に書き込んである命令を読み出して実行する手
段を加えたファームウェアトレース方式であり、 更に、第3の発明は上記第1および第2の発明に採取し
たトレースデータの内容によって以後のトレースの種類
の変更を判定する第三の手段を付加し、トレースルーチ
ンの処理の実行結果に応じて、該第三の手段によって次
回にとるトレースの種類の変更を行なうため、 第一の保持領域のアドレスの命令を第二の保持領域の第
二のトレースルーチンに分岐する第二の分岐命令に書き
替えるファームウェアトレース方式である。
[作 用] 本発明の方式においては、ファームウェアの命令を書き
替えることによってトレースデータを採取する機能を実
現している。
そのため、トレースを起動しない場合には、トレースに
係る処理による時間の消費がないから、従来のように通
常の処理を遅延させることがない。
また、採取したデータの内容を判定することにより、以
降の不必要なトレースデータは採取しないようにするこ
とができるので、トレース領域を効率よく使用して、よ
り多くの必要なトレースデータを記録することが可能で
ある。また、トレースデータの異常を検出してトレース
を停止させることにより、障害解析を容易にすることも
できる。
[実施例] 第1図〜第3図は、本発明の一実施例について説明する
ための図であって、第1図はメモリの内容を示しており
、(a)はトレースを開始する前の状態を、(b)はト
レース後の状態を示している。
また、第2図は、命令の実行順序を示しており、(a)
は通常の動作時を、(b)はトレース時の状態を示して
いる。
第3図は、トレースルーチンの制御を示す流れ図を示し
ている。
以下、これらの図に基づいて実施例の動作について説明
する。
図中^ロRSはメモリのアドレス《#で示している)を
表わしており、内容はそのアドレスのメモリの内容、命
令1,3.4・・・・・・は通常の処理に実行する命令
、命令21. 22.〜2nは第一のトレースルーチン
、命令31, 32.〜3nは第二のトレースルーチン
、#nlは第一の保持領域、#P1. #P2・・・・
・・は第二の保持領域、Itqlは退避領域を示してい
る。第3図は前述したように、トレースルーチンのフロ
ーチャートを示しているが、図中、条件Aはファームウ
ェアが現在の状態とかわらない時のトレースデータの値
を示しており、条件Bはフ.アームウエアが現在の状態
から変化した時のトレースデータの値を示している。
サービスプロセッサからトレースの開始を起動する命令
処理部にトレース開始割込みが発生し、 ■第一の保持領域(#nl)から第一のトレースルーチ
ンを起動するアドレス(#2)を読み出す。
■読み出されたアドレス(#2)から命令《命令3)を
読み出す。
■読み出された命令(命令3)を退避領域($ql)に
書き込む。
■第一のトレースルーチン(命令21〜2n)へ分岐す
る第一の分岐命令(命令pi)を読み出す。
■■で読み出されたアドレス(#2)に■で読み出され
た第一の分岐命令(命令pi)を書き込む。
を行なって割込み処理を終了する。
通常の処理の場合(第1図(a))は、トレース処理ル
ーチンを実行しないで次の命令1. 3. 4. .を
実行する。一方、トレースをとる場合(第1図ラ】)は
、命令3から命令piに書き替えられたので命令1を実
行した後、命令piを実行することにより、#21に分
岐する。そして、第一のトレースルーチン(第3図で示
したフローチャート)の命令21. 22. . .を
実行して、トレースデータを採取する。
そして、ファームウェアの状態が変化したか否かを判定
する条件A, B. ,を判定し、その結果に応じて、
もし、トレースデータが条件八と一致するならば、今の
状態と同じであるので、退避領域($ql)から命令(
命令3》を読み出し実行すると共に、もとのルーチンへ
分岐する分岐命令(命令2n)を実行してトレースルー
チンを終了する。命令2nが実行されると#3に分岐し
命令4を実行する。
もし、トレースデータが条件Bと一致するならば、今の
状態から変化したのであるから、第二の保持領域(lI
P2)の第二のトレースルーチン(命令31〜3n)を
実行する第二の分岐命令(命令p2)を読み出し、第一
の保持領域(#il)のアドレス(#2)にこの命令(
命令p2)を書き込む。
そして、退避領域($ql)から命令(命令3)を読み
出し実行して、もとのルーチンへ分岐する分岐命令(命
令2n)を実行してトレースルーチンを終了する。
命令2nが実行されると#3に分岐し命令4を実行する
。次に婁2を実行すると命令p2が実行され第二のトレ
ースルーチンを実行するようになる。
もし、トレースデータがどの条件とも一致しない場合は
、異常なトレースデータなので退避領域(lql)の命
令(命令3)を読み出し、その命令(命令3)を第一の
保持領域($nl)のアドレス(#2)にこの命令(命
令3)を書き込むことによって、次に#2を実行しても
命令3が実行されトレースが停止されている。
サービスプロセッサからトレースの終了を指示すると、
命令処理部にトレース終了割込みが発生し、 ■第一の保持領域($nl>からトレースルーチンを起
動するアドレス(#2)を読み出す。
■■で書き込まれた命令(命令3)を読み出す。
■■で読み出されたアドレス(#2)に■で読み出され
た命令(命令3)を書き込む。
以上の動作によって、割込み処理を終了する。
この状態では、次に#2を実行しても命令3が実行され
、トレースは停止状態となっている。
[発明の効果] 以上説明したように、本発明によれば、トレースを起動
しない場合には、トレースデータ採取のための処理を実
行しないから、無為に時間を消費することがないので、
通常の処理を遅延させることがないという利点がある。
また、トレースを起動した場合には、トレース領域を効
率よく使用して、より多くの状態のトレースデータを記
録することができる。そして、トレースデータの異常を
検出してトレースを停止させることにより、障害解析を
容易にし得る効果もある。
【図面の簡単な説明】
第1図は、本発明の一実施例のメモリの内容を示す図、
第2図は本発明の一実施例の命令の実行順序を示す図、
第3図はトレースルーチンの制御を示す流れ図、第4図
は従来方式におけるトレース開始前とトレース後のメモ
リの内容を示す図、第5図は従来方式における命令の実
行順序を示す図である。

Claims (1)

  1. 【特許請求の範囲】 1、ファームウェアとファームウェアのトレース結果を
    格納する書き替え可能なメモリ部と、メモリ部からファ
    ームウェアを読み出して 命令を実行する命令処理部と、 前記命令処理部によるトレースの開始また は終了の処理を起動することの可能なサービスプロセッ
    サをもつ装置において、 命令を一時的に退避する退避領域と、 トレースルーチンを開始するファームウェ アのアドレスを保持しておく第一の保持領域と、複数種
    類のトレースルーチンへそれぞれ分岐せしめる複数の分
    岐命令を保持する第二の保持領域と、 複数種類のトレースルーチンと、 サービスプロセッサによってトレースの開 始または終了が指示された時、これを検出する第一の手
    段と、前記トレースルーチンによって採取したデータの
    内容によって以後のトレースを停止すべきか否かを判定
    する第二の手段とを具備し、 前記第一の手段によってトレースの開始の 指示が検出された時、 第一の保持領域から前記アドレスを読み出 して、該アドレスに格納されている命令を読み出し、該
    命令を退避領域に書き込むと共に、第二の保持領域から
    第一のトレースルーチ ンへ分岐する第一の分岐命令を読み出して、第一の保持
    領域から読み出された前記アドレスに該第一の分岐命令
    を書き込むことによって、第一のトレースルーチンを実
    行することを可能とし、前記第一の手段によってトレー
    スの終了の指示が検出されたとき、または第二の手段に
    よってトレースを停止すると判定されたとき、退避領域
    に書き込んでおいた命令を読み出して第一の保持領域に
    保持されているアドレスによって示される領域に書き込
    むことを特徴とするファームウェアトレース方式。 2、トレースルーチンの処理の中で、退避領域に書き込
    んである命令を読み出して実行する手段を設けた請求項
    1記載のファームウェアトレース方式。 3、採取したトレースデータの内容によって、以後のト
    レースの種類の変更を判定する第三の手段を具備し、ト
    レースルーチンの処理の実行結果に応じて、該第三の手
    段によって次回にとるトレースの種類の変更を行なうた
    め、第一の保持領域のアドレスの命令を第二の 保持領域の第二のトレースルーチンに分岐する。第二の
    分岐命令に書き替える請求項1および請求項2に記載の
    ファームウェアトレース方式。
JP1049777A 1989-03-03 1989-03-03 ファームウェアトレース方式 Pending JPH02230335A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP1049777A JPH02230335A (ja) 1989-03-03 1989-03-03 ファームウェアトレース方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1049777A JPH02230335A (ja) 1989-03-03 1989-03-03 ファームウェアトレース方式

Publications (1)

Publication Number Publication Date
JPH02230335A true JPH02230335A (ja) 1990-09-12

Family

ID=12840603

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1049777A Pending JPH02230335A (ja) 1989-03-03 1989-03-03 ファームウェアトレース方式

Country Status (1)

Country Link
JP (1) JPH02230335A (ja)

Similar Documents

Publication Publication Date Title
KR860000114B1 (ko) 논리추적장치(論理追跡裝置)
JPH02230335A (ja) ファームウェアトレース方式
JPS6383841A (ja) プログラムテスト可能な計算機中央処理装置
JPS61264447A (ja) 命令実行事象記録装置
JPH11119992A (ja) ファームウェアのトレース制御装置
JPH0540670A (ja) プロセツサ制御方式
JPH10240569A (ja) 計算機のトレース装置
JPH03194625A (ja) 情報処理装置のアドレストレース方式
JPH0773076A (ja) トレース情報採取方式
JPH0434181B2 (ja)
JPH09325900A (ja) プログラム実行トレース装置
JPS588363A (ja) プログラム実行履歴情報収集方式
JPH0327939B2 (ja)
JPH02218068A (ja) ハードディスクの不良セクタ・リカバリ処理方式
JP3543516B2 (ja) シーケンサのデータトレース方法
JPS5968067A (ja) 走行ステツプ数指定処理方式
JP2000112907A (ja) マルチプロセッサ装置および動作記録方法
JPH03132839A (ja) データ処理装置
JPH01288932A (ja) プログラム走行ルート収集方式
JPS60252959A (ja) オンライン・トレ−ス制御方式
JPS61123942A (ja) マイクロプロセツサ用デバツク装置
JPH0324640A (ja) 情報処理装置のデバッグ方式
JPS6273341A (ja) 情報処理装置
JPS61145657A (ja) ヒストリメモリ制御回路
JPH04248635A (ja) 並列処理デバッギングのプローブ効果除去方法