JPH02230335A - Tracing system of farmware - Google Patents

Tracing system of farmware

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
Japanese (ja)
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/en
Publication of JPH02230335A publication Critical patent/JPH02230335A/en
Pending legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

PURPOSE:To dynamically sample necessary information by rewriting the content of a memory area which a held address value shows and controlling a trace function when a service processor indicates the start or the termination of tracing. CONSTITUTION:When the indication of the start of tracing is detected, an address is read from a first holding area #n1, and an instruction stored in the address is read. Then, the instruction is written in a save area #g1, a first branch instruction branching into a first trace routine is read from a second holding area #p1..., and the first branch instruction is written into the address which is read from the first holding area #n1. When the first means detects the indication of the termination of tracing, or when the second means decides the stop of tracing, the instruction which has been written into the save area is read out, and is written into the area which the address held in the first holding area shows. Thus, the trace area can be efficiently used and trace data in much more states can be recorded.

Description

【発明の詳細な説明】 [概 要] データ処理装置のハードウェアの少なくとも一部を構成
するファームウェアの障害探索のだめの情報の採取に関
し、 ファームウェアの本来の動作に与える影響が少なく、か
つ動的に必要情報を採取し得るトレース手段の提供を目
的とし、 命令を一時的に退避する退避領域と、トレースルーチン
を開始するファームウェアのアドレスを保持しておく第
一の保持領域と、複数種類のトレースルーチンへそれぞ
れ分岐せしめる複数の分岐命令を保持する第二の保持領
域と、複数種類のトレースルーチンと、サービスプロセ
ッサによってトレースの開始または終了が指示された時
、これを検出する第一の手段と、前記トレースルーチン
によって採取したデータの内容によって、以後のトレー
スを停止すべきか否かを判定する第二の手段とを具備し
、 上記第1の保持領域に保持したアドレス値の示すメモリ
領域の内容を書き替えることにより、トレース機能を制
御する如く構成する。
[Detailed Description of the Invention] [Summary] Regarding the collection of information for troubleshooting of firmware constituting at least a part of the hardware of a data processing device, there is a method that has little influence on the original operation of the firmware and dynamically The purpose is to provide a tracing means that can collect necessary information, and it has a save area where instructions are temporarily saved, a first holding area where the address of the firmware that starts the trace routine is held, and multiple types of trace routines. a second holding area for holding a plurality of branch instructions for branching to each branch; a plurality of types of trace routines; a first means for detecting when the service processor instructs to start or end tracing; and a second means for determining whether or not to stop subsequent tracing based on the contents of data collected by the trace routine, and writes the contents of the memory area indicated by the address value held in the first holding area. By changing the configuration, the trace function can be controlled.

[産業上の利用分野コ 本発明は、ファームウェアのトレース方式に関する。[Industrial application fields] The present invention relates to a firmware tracing method.

近年、ファームウェアによる処理が増加しており、また
半導体集積技術の進歩に伴いマイクロプロセッサやメモ
リ内に制御情報等を内蔵することが多くなっている。従
って、従来ハードウェアのデバグ時に用いられてきたロ
ジックアナライザのような測定器が使用できなくなって
きている。そのためファームウェアはそれ自身のデバグ
のため、トレース処理を組み込むことが欠かせなくなっ
ている。しかし、限られたトレース領域に必要なトレー
スデータを効率よくとらなければ、トレースデータの解
析に多くの時間が必要になったり、必要なトレースデー
タが記録されていなかったりする場合を生ずることがあ
る。
In recent years, processing using firmware has been increasing, and with advances in semiconductor integration technology, control information and the like are often built into microprocessors and memories. Therefore, measuring instruments such as logic analyzers, which have been conventionally used for debugging hardware, are no longer usable. For this reason, it is essential for firmware to incorporate trace processing in order to debug itself. However, if the necessary trace data is not efficiently collected in the limited trace area, it may take a lot of time to analyze the trace data, or necessary trace data may not be recorded. .

また、通常の処理の時には、ファームウェアによる処理
はその装置の処理性能に影響するから、トレース処理に
よって本来の処理を遅延させないようにする必要がある
Furthermore, during normal processing, processing by firmware affects the processing performance of the device, so it is necessary to prevent trace processing from delaying the original processing.

[従来の技術] 従来のトレース方式では、トレースを起動する命令とし
て、ポインタを読み出しその値によって分岐する命令を
組み込んでおくように構成されていた。そしてトレース
を行なうべくトレースルーチンが起動された時は、該ポ
インタをトレース処理ルーチンの先頭アドレスに書き替
えることにより、前記命令を実行すると、トレース処理
を行なってから通常の処理を実行するようになっていた
[Prior Art] Conventional tracing systems are configured to include an instruction to read a pointer and branch based on its value as an instruction to start tracing. When the trace routine is started to perform tracing, the pointer is rewritten to the start address of the trace processing routine, so that when the above instruction is executed, the trace processing is performed and then normal processing is executed. was.

第4図および第5図は、このような従来のトレース処理
について説明する図である。すなわち、第4図(a)は
トレースを開始する前と開始した後のメモリの内容を示
しており、(8)がトレースを開始する前の状態、(b
)がトレースを行なった場合のメモリの内容を示してい
る。また、第5図は命令の実行順序を示してあり、同図
(a)は第41!I(a)に対応し、同図ら〕は第4図
ら)に対応している。
FIGS. 4 and 5 are diagrams explaining such conventional tracing processing. That is, FIG. 4(a) shows the contents of the memory before and after starting tracing, and (8) shows the state before starting tracing, and (b) shows the state before starting tracing.
) shows the contents of memory when tracing is performed. Further, FIG. 5 shows the execution order of instructions, and FIG. 5(a) shows the 41st! This corresponds to I(a), and FIG. 4 et al.) corresponds to FIG.

第4図(a),(b)に示す命令2は、前記ポインタを
読み出し、その値によって分岐する命令である。命令2
1〜2nはトレース処理ルーチンである。命令2nは#
3に分岐する命令である。
Instruction 2 shown in FIGS. 4(a) and 4(b) is an instruction that reads the pointer and branches depending on its value. command 2
1 to 2n are trace processing routines. Instruction 2n is #
This is an instruction that branches to 3.

通常の場合(第4図(a))は、#nmのポインタの値
が#3なので、第5図(a)に示すようにトレース処理
ルーチンを実行しないで、次の命令3.4・・・・・・
を実行する。一方、トレースを行なう場合(第4図(b
))は、#nfflのポインタの値が#2lなので、第
5図ら)に示すようにトレース処理ルーチンを実行し、
命令2nによって#3に分岐して次の命令3,4・・・
・・・を実行する。
In the normal case (Figure 4(a)), the value of the #nm pointer is #3, so the trace processing routine is not executed as shown in Figure 5(a), and the next instruction 3.4...・・・・・・
Execute. On the other hand, when tracing (Fig. 4(b)
)) executes the trace processing routine as shown in Figure 5 etc. since the value of the pointer of #nffl is #2l,
Branches to #3 by instruction 2n and executes the next instructions 3, 4...
Execute...

[発明が解決しようとする課題] 上述したような、従来のトレースデータ採取方式におい
ては、トレースを行なう必要のないときにも、ポインタ
を読み出し、その値によって分岐する命令(命令2)を
実行していたので、これに要する時間によって、通常の
処理速度が遅くなるという問題点を有していた。またト
レースルーチンを起動するポインタ(#nm)のアドレ
スがいつも同じなので、毎回同じトレースデータしかと
れなかった。そのため状態が変わることによって必要な
トレースデータが違ってくるような場合は、すべての状
態を想定して、必要なすべてのトレースデータを毎回採
る必要があったから、トレースデータ量が多くなり、ト
レースデータの解析に多くの時間が必要になるという問
題点があった。
[Problems to be Solved by the Invention] In the conventional trace data collection method as described above, even when there is no need to trace, a pointer is read and an instruction (instruction 2) that branches based on its value is executed. However, the time required for this process slows down the normal processing speed. Furthermore, since the address of the pointer (#nm) for starting the trace routine is always the same, only the same trace data can be obtained each time. Therefore, if the required trace data differs depending on the state, it is necessary to assume all the states and collect all the necessary trace data each time, which increases the amount of trace data. The problem is that it takes a lot of time to analyze.

また、トレース領域が一杯になると再びトレース領域の
最初からトレースデータを書き替えるので、トレースデ
ータ量が多くなると、当初採取したトレースデータは新
しいトレースデータによって書き替えられてしまい、必
要なトレースデータが残らないことがあるという問題点
もあった。そして、このことは、その中に異常なトレー
スデータが存在する場合でも、それが新しいトレースデ
ータによって書き替えられてしまうため、障害解析が不
可能になってしまう場合があるというような問題を生じ
ていた。
Additionally, when the trace area becomes full, the trace data is rewritten from the beginning of the trace area, so if the amount of trace data increases, the trace data that was originally collected will be overwritten with new trace data, and the necessary trace data will not remain. There was also the problem that there were times when it was not available. This causes problems such as even if there is abnormal trace data, it may be overwritten by new trace data, making failure analysis impossible. was.

本発明は、このような従来の問題点に鑑み、通常の処理
の時は、トレース処理による遅延を生ずることがなく、
トレースを起動した時のみトレース処理を実行させるこ
とが可能で、また、トレースデータを判定してトレース
を効率よく行なうことにより、多様な状態に対応するト
レースデータを記録できるようにすると共に、トレース
データが異常であることを検出したとき、トレースを停
止させることにより、障害解析を容易ならしめる手段を
提供することを目的としている。
In view of these conventional problems, the present invention eliminates the delay caused by trace processing during normal processing, and
It is possible to execute trace processing only when the trace is started, and by determining the trace data and performing tracing efficiently, it is possible to record trace data corresponding to various conditions, and the trace data The purpose of this invention is to provide a means to facilitate failure analysis by stopping tracing when an abnormality is detected.

[課題を解決するための手段] 本発明によれば、上述の目的は前記特許請求の範囲に記
載した手段により達成される。
[Means for Solving the Problems] According to the present invention, the above objects are achieved by the means described in the claims.

すなわち、第1の発明は、ファームウェアとファームウ
ェアのトレース結果を格納する書き替え可能なメモリ部
と、メモリ部からファームウェアを読み出して命令を実
行する命令処理部と、前記命令処理部によるトレースの
開始または終了の処理を起動することの可能なサービス
プロセッサをもつ装置において、命令を一時的に退避゜
する退避領域と、トレースルーチンを開始するファーム
ウェアのアドレスを保持しておく第一の保持領域と、複
数種類のトレースルーチンへそれぞれ分岐せしめる複数
の分岐命令を保持する第二の保持領域と、複数種類のト
レースルーチンと、サービスプロセッサによってトレー
スの開始または終了が指示された時、これを検出する第
一の手段と、前記トレースルーチンによって採取したデ
ータの内容によって以後のトレースを停止すべきか否か
を判定する第二の手段とを具備し、前記第一の手段によ
ってトレースの開始の指示が検出された時、第一の保持
領域から前記アドレスを読み出して、該アドレスに格納
されている命令を読みだし、該命令を退避領域に書き込
むと共に、第二の保持領域から第一のトレースルーチン
へ分岐する第一の分岐命令を読み出して、第一の保持領
域から読み出された前記アドレスに、該第一の分岐命令
を書き込むことにようて、第一のトレースルーチンを実
行することを可能とし、前記第一の手段によってトレー
スの終了の措示が検出されたとき、または第二の手段に
よってトレースを停止すると判定されたとき、退避領域
に書き込んでおいた命令を読み出して第一の保持領域に
保持されているアドレスによって示される領域に書き込
むファームウェアトレース方式であり、また、第2の発
明は上記第1の発明に、トレースルーチンの処理の中で
退避領域に書き込んである命令を読み出して実行する手
段を加えたファームウェアトレース方式であり、 更に、第3の発明は上記第1および第2の発明に採取し
たトレースデータの内容によって以後のトレースの種類
の変更を判定する第三の手段を付加し、トレースルーチ
ンの処理の実行結果に応じて、該第三の手段によって次
回にとるトレースの種類の変更を行なうため、 第一の保持領域のアドレスの命令を第二の保持領域の第
二のトレースルーチンに分岐する第二の分岐命令に書き
替えるファームウェアトレース方式である。
That is, the first invention includes: a rewritable memory section that stores firmware and firmware trace results; an instruction processing section that reads firmware from the memory section and executes instructions; In a device that has a service processor capable of starting termination processing, a save area for temporarily saving instructions, a first holding area for holding the address of the firmware that starts the trace routine, and a plurality of storage areas are provided. a second holding area that holds multiple branch instructions that branch to different types of trace routines; and second means for determining whether or not subsequent tracing should be stopped based on the content of data collected by the tracing routine, when an instruction to start tracing is detected by the first means. , reads the address from the first holding area, reads the instruction stored at the address, writes the instruction to the save area, and branches from the second holding area to the first trace routine. A first trace routine can be executed by reading a branch instruction of the first holding area and writing the first branch instruction to the address read from the first holding area; When an instruction to end the trace is detected by the second means, or when it is determined to stop the trace by the second means, the instruction written in the save area is read out and stored in the first holding area. The second invention is a firmware tracing method that writes to an area indicated by an address, and a second invention adds means to the first invention to read and execute an instruction written in a save area during the processing of a trace routine. Furthermore, the third invention adds a third means for determining a subsequent change in the type of tracing based on the content of the collected trace data to the first and second inventions, and furthermore, the third invention adds a third means for determining a subsequent change in the type of tracing based on the content of the collected trace data, In order to change the type of trace to be taken next time by the third means according to the execution result of the process, the instruction at the address of the first holding area is branched to the second tracing routine of the second holding area. This is a firmware tracing method that rewrites the branch instruction to a second branch instruction.

[作 用] 本発明の方式においては、ファームウェアの命令を書き
替えることによってトレースデータを採取する機能を実
現している。
[Operation] In the method of the present invention, the function of collecting trace data is realized by rewriting firmware instructions.

そのため、トレースを起動しない場合には、トレースに
係る処理による時間の消費がないから、従来のように通
常の処理を遅延させることがない。
Therefore, when tracing is not activated, there is no time consumption due to trace-related processing, so there is no need to delay normal processing as in the past.

また、採取したデータの内容を判定することにより、以
降の不必要なトレースデータは採取しないようにするこ
とができるので、トレース領域を効率よく使用して、よ
り多くの必要なトレースデータを記録することが可能で
ある。また、トレースデータの異常を検出してトレース
を停止させることにより、障害解析を容易にすることも
できる。
In addition, by determining the content of the collected data, it is possible to prevent unnecessary trace data from being collected thereafter, so the trace area can be used efficiently and more necessary trace data can be recorded. Is possible. Furthermore, failure analysis can be facilitated by detecting an abnormality in trace data and stopping the trace.

[実施例] 第1図〜第3図は、本発明の一実施例について説明する
ための図であって、第1図はメモリの内容を示しており
、(a)はトレースを開始する前の状態を、(b)はト
レース後の状態を示している。
[Example] Figures 1 to 3 are diagrams for explaining an example of the present invention, in which Figure 1 shows the contents of the memory, and (a) shows the contents of the memory before starting tracing. (b) shows the state after tracing.

また、第2図は、命令の実行順序を示しており、(a)
は通常の動作時を、(b)はトレース時の状態を示して
いる。
Moreover, FIG. 2 shows the order of execution of instructions, and (a)
(b) shows the state during normal operation, and (b) shows the state during tracing.

第3図は、トレースルーチンの制御を示す流れ図を示し
ている。
FIG. 3 shows a flowchart illustrating the control of the trace routine.

以下、これらの図に基づいて実施例の動作について説明
する。
The operation of the embodiment will be described below based on these figures.

図中^ロRSはメモリのアドレス《#で示している)を
表わしており、内容はそのアドレスのメモリの内容、命
令1,3.4・・・・・・は通常の処理に実行する命令
、命令21. 22.〜2nは第一のトレースルーチン
、命令31, 32.〜3nは第二のトレースルーチン
、#nlは第一の保持領域、#P1. #P2・・・・
・・は第二の保持領域、Itqlは退避領域を示してい
る。第3図は前述したように、トレースルーチンのフロ
ーチャートを示しているが、図中、条件Aはファームウ
ェアが現在の状態とかわらない時のトレースデータの値
を示しており、条件Bはフ.アームウエアが現在の状態
から変化した時のトレースデータの値を示している。
In the figure, RS represents a memory address (indicated by #), the contents are the contents of the memory at that address, and instructions 1, 3, 4, etc. are instructions to be executed during normal processing. , instruction 21. 22. ~2n is the first trace routine, instructions 31, 32. ~3n is the second trace routine, #nl is the first holding area, #P1. #P2...
. . . indicates the second holding area, and Itql indicates the save area. As mentioned above, FIG. 3 shows the flowchart of the trace routine. In the figure, condition A shows the value of the trace data when the firmware does not change from its current state, and condition B shows the value of the trace data when the firmware is in the current state. It shows the value of trace data when the armware changes from its current state.

サービスプロセッサからトレースの開始を起動する命令
処理部にトレース開始割込みが発生し、 ■第一の保持領域(#nl)から第一のトレースルーチ
ンを起動するアドレス(#2)を読み出す。
A trace start interrupt is generated from the service processor to the instruction processing unit that activates the start of trace, and (1) the address (#2) for starting the first trace routine is read from the first holding area (#nl).

■読み出されたアドレス(#2)から命令《命令3)を
読み出す。
(2) Read the instruction (instruction 3) from the read address (#2).

■読み出された命令(命令3)を退避領域($ql)に
書き込む。
■Write the read instruction (instruction 3) to the save area ($ql).

■第一のトレースルーチン(命令21〜2n)へ分岐す
る第一の分岐命令(命令pi)を読み出す。
(2) Read the first branch instruction (instruction pi) that branches to the first trace routine (instructions 21 to 2n).

■■で読み出されたアドレス(#2)に■で読み出され
た第一の分岐命令(命令pi)を書き込む。
Write the first branch instruction (instruction pi) read in ■■ to the address (#2) read in ■■.

を行なって割込み処理を終了する。and ends the interrupt processing.

通常の処理の場合(第1図(a))は、トレース処理ル
ーチンを実行しないで次の命令1. 3. 4. .を
実行する。一方、トレースをとる場合(第1図ラ】)は
、命令3から命令piに書き替えられたので命令1を実
行した後、命令piを実行することにより、#21に分
岐する。そして、第一のトレースルーチン(第3図で示
したフローチャート)の命令21. 22. . .を
実行して、トレースデータを採取する。
In the case of normal processing (FIG. 1(a)), the trace processing routine is not executed and the next instruction 1. 3. 4. .. Execute. On the other hand, when taking a trace (FIG. 1A), since instruction 3 has been rewritten to instruction pi, instruction 1 is executed, and then instruction pi is executed, thereby branching to #21. Then, command 21 of the first trace routine (flowchart shown in FIG. 3). 22. .. .. Execute and collect trace data.

そして、ファームウェアの状態が変化したか否かを判定
する条件A, B. ,を判定し、その結果に応じて、
もし、トレースデータが条件八と一致するならば、今の
状態と同じであるので、退避領域($ql)から命令(
命令3》を読み出し実行すると共に、もとのルーチンへ
分岐する分岐命令(命令2n)を実行してトレースルー
チンを終了する。命令2nが実行されると#3に分岐し
命令4を実行する。
Then, conditions A and B are used to determine whether the state of the firmware has changed. , and depending on the result,
If the trace data matches condition 8, the current state is the same, and the instruction (
Instruction 3'' is read out and executed, and a branch instruction (instruction 2n) that branches to the original routine is executed to end the trace routine. When instruction 2n is executed, the process branches to #3 and instruction 4 is executed.

もし、トレースデータが条件Bと一致するならば、今の
状態から変化したのであるから、第二の保持領域(lI
P2)の第二のトレースルーチン(命令31〜3n)を
実行する第二の分岐命令(命令p2)を読み出し、第一
の保持領域(#il)のアドレス(#2)にこの命令(
命令p2)を書き込む。
If the trace data matches condition B, it means that the current state has changed, so the second holding area (lI
P2) reads the second branch instruction (instruction p2) that executes the second trace routine (instructions 31 to 3n), and stores this instruction (instruction p2) in the address (#2) of the first holding area (#il).
Write the instruction p2).

そして、退避領域($ql)から命令(命令3)を読み
出し実行して、もとのルーチンへ分岐する分岐命令(命
令2n)を実行してトレースルーチンを終了する。
Then, the instruction (instruction 3) is read and executed from the save area ($ql), and the branch instruction (instruction 2n) that branches to the original routine is executed, and the trace routine ends.

命令2nが実行されると#3に分岐し命令4を実行する
。次に婁2を実行すると命令p2が実行され第二のトレ
ースルーチンを実行するようになる。
When instruction 2n is executed, the process branches to #3 and instruction 4 is executed. Next, when p2 is executed, instruction p2 is executed and the second trace routine is executed.

もし、トレースデータがどの条件とも一致しない場合は
、異常なトレースデータなので退避領域(lql)の命
令(命令3)を読み出し、その命令(命令3)を第一の
保持領域($nl)のアドレス(#2)にこの命令(命
令3)を書き込むことによって、次に#2を実行しても
命令3が実行されトレースが停止されている。
If the trace data does not match any of the conditions, it is abnormal trace data, so read the instruction (instruction 3) from the save area (lql) and transfer the instruction (instruction 3) to the address of the first holding area ($nl). By writing this instruction (instruction 3) to (#2), even if #2 is executed next, instruction 3 will be executed and tracing will be stopped.

サービスプロセッサからトレースの終了を指示すると、
命令処理部にトレース終了割込みが発生し、 ■第一の保持領域($nl>からトレースルーチンを起
動するアドレス(#2)を読み出す。
When the service processor instructs the trace to end,
A trace end interrupt is generated in the instruction processing unit, and (1) the address (#2) for starting the trace routine is read from the first holding area ($nl>).

■■で書き込まれた命令(命令3)を読み出す。■Read the instruction (instruction 3) written in ■■.

■■で読み出されたアドレス(#2)に■で読み出され
た命令(命令3)を書き込む。
Write the instruction (instruction 3) read in ■ to the address (#2) read in ■■.

以上の動作によって、割込み処理を終了する。The above operations complete the interrupt processing.

この状態では、次に#2を実行しても命令3が実行され
、トレースは停止状態となっている。
In this state, even if #2 is executed next, instruction 3 will be executed and the trace will be in a stopped state.

[発明の効果] 以上説明したように、本発明によれば、トレースを起動
しない場合には、トレースデータ採取のための処理を実
行しないから、無為に時間を消費することがないので、
通常の処理を遅延させることがないという利点がある。
[Effects of the Invention] As explained above, according to the present invention, when tracing is not started, processing for collecting trace data is not executed, so time is not wasted.
This has the advantage of not delaying normal processing.

また、トレースを起動した場合には、トレース領域を効
率よく使用して、より多くの状態のトレースデータを記
録することができる。そして、トレースデータの異常を
検出してトレースを停止させることにより、障害解析を
容易にし得る効果もある。
Furthermore, when tracing is activated, the trace area can be used efficiently and trace data of more states can be recorded. Furthermore, by detecting an abnormality in the trace data and stopping the trace, failure analysis can be facilitated.

【図面の簡単な説明】[Brief explanation of the drawing]

第1図は、本発明の一実施例のメモリの内容を示す図、
第2図は本発明の一実施例の命令の実行順序を示す図、
第3図はトレースルーチンの制御を示す流れ図、第4図
は従来方式におけるトレース開始前とトレース後のメモ
リの内容を示す図、第5図は従来方式における命令の実
行順序を示す図である。
FIG. 1 is a diagram showing the contents of a memory according to an embodiment of the present invention;
FIG. 2 is a diagram showing the order of execution of instructions according to an embodiment of the present invention;
FIG. 3 is a flowchart showing the control of the trace routine, FIG. 4 is a diagram showing the contents of the memory before and after the start of tracing in the conventional system, and FIG. 5 is a diagram showing the order of execution of instructions in the conventional system.

Claims (1)

【特許請求の範囲】 1、ファームウェアとファームウェアのトレース結果を
格納する書き替え可能なメモリ部と、メモリ部からファ
ームウェアを読み出して 命令を実行する命令処理部と、 前記命令処理部によるトレースの開始また は終了の処理を起動することの可能なサービスプロセッ
サをもつ装置において、 命令を一時的に退避する退避領域と、 トレースルーチンを開始するファームウェ アのアドレスを保持しておく第一の保持領域と、複数種
類のトレースルーチンへそれぞれ分岐せしめる複数の分
岐命令を保持する第二の保持領域と、 複数種類のトレースルーチンと、 サービスプロセッサによってトレースの開 始または終了が指示された時、これを検出する第一の手
段と、前記トレースルーチンによって採取したデータの
内容によって以後のトレースを停止すべきか否かを判定
する第二の手段とを具備し、 前記第一の手段によってトレースの開始の 指示が検出された時、 第一の保持領域から前記アドレスを読み出 して、該アドレスに格納されている命令を読み出し、該
命令を退避領域に書き込むと共に、第二の保持領域から
第一のトレースルーチ ンへ分岐する第一の分岐命令を読み出して、第一の保持
領域から読み出された前記アドレスに該第一の分岐命令
を書き込むことによって、第一のトレースルーチンを実
行することを可能とし、前記第一の手段によってトレー
スの終了の指示が検出されたとき、または第二の手段に
よってトレースを停止すると判定されたとき、退避領域
に書き込んでおいた命令を読み出して第一の保持領域に
保持されているアドレスによって示される領域に書き込
むことを特徴とするファームウェアトレース方式。 2、トレースルーチンの処理の中で、退避領域に書き込
んである命令を読み出して実行する手段を設けた請求項
1記載のファームウェアトレース方式。 3、採取したトレースデータの内容によって、以後のト
レースの種類の変更を判定する第三の手段を具備し、ト
レースルーチンの処理の実行結果に応じて、該第三の手
段によって次回にとるトレースの種類の変更を行なうた
め、第一の保持領域のアドレスの命令を第二の 保持領域の第二のトレースルーチンに分岐する。第二の
分岐命令に書き替える請求項1および請求項2に記載の
ファームウェアトレース方式。
[Claims] 1. A rewritable memory unit that stores firmware and firmware trace results, an instruction processing unit that reads firmware from the memory unit and executes instructions, and a method for starting tracing by the instruction processing unit or In a device that has a service processor capable of starting termination processing, there are multiple types of storage areas, including a save area for temporarily saving instructions, and a first holding area for holding the address of the firmware that starts the trace routine. a second holding area that holds multiple branch instructions that each branch to a trace routine; multiple types of trace routines; and a first means for detecting when a service processor instructs the start or end of tracing. and second means for determining whether or not subsequent tracing should be stopped based on the content of the data collected by the tracing routine, and when an instruction to start tracing is detected by the first means, A first branch that reads the address from the first holding area, reads the instruction stored at the address, writes the instruction to the save area, and branches from the second holding area to the first trace routine. A first trace routine can be executed by reading an instruction and writing the first branch instruction to the address read from the first holding area, and the trace routine is executed by the first means. When an end instruction is detected or when it is determined by the second means to stop tracing, the instruction written in the save area is read out and the area indicated by the address held in the first holding area is read out. A firmware tracing method characterized by writing to. 2. The firmware tracing system according to claim 1, further comprising means for reading and executing instructions written in the save area during the processing of the tracing routine. 3.Equipped with a third means for determining whether to change the type of trace thereafter based on the content of the collected trace data, and depending on the execution result of the trace routine processing, the third means determines the next trace to be taken. To change the type, the instruction at the address of the first holding area is branched to the second trace routine of the second holding area. 3. The firmware tracing method according to claim 1, wherein the firmware tracing method is rewritten to a second branch instruction.
JP1049777A 1989-03-03 1989-03-03 Tracing system of farmware Pending JPH02230335A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP1049777A JPH02230335A (en) 1989-03-03 1989-03-03 Tracing system of farmware

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1049777A JPH02230335A (en) 1989-03-03 1989-03-03 Tracing system of farmware

Publications (1)

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

Family

ID=12840603

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1049777A Pending JPH02230335A (en) 1989-03-03 1989-03-03 Tracing system of farmware

Country Status (1)

Country Link
JP (1) JPH02230335A (en)

Similar Documents

Publication Publication Date Title
KR860000114B1 (en) Logic tracing apparatus
JPH02230335A (en) Tracing system of farmware
JPS6383841A (en) Central processing unit of computer capable of program test
JPS61264447A (en) Recording device for instruction execution event
JPH11119992A (en) Trace controller for firmware
JPH0540670A (en) Processor control system
JPH10240569A (en) Computer tracing equipment
JPH03194625A (en) Address tracing system for information processor
JPH0773076A (en) Trace information collection system
JPH0434181B2 (en)
JPH09325900A (en) Program execution trace device
JPS588363A (en) Program execution history information collection method
JPH0327939B2 (en)
JPH02218068A (en) Defective sector recovery processing system for hard disk
JP3543516B2 (en) Sequencer data trace method
JPS5968067A (en) Specifying system for number of run steps
JP2000112907A (en) Multiprocessor device and operation recording method
JPH03132839A (en) Data processor
JPH01288932A (en) Program running route collecting system
JPS60252959A (en) On-line trace controlling system
JPS61123942A (en) Debug device for microprocessor
JPH0324640A (en) Debugging system for information processor
JPS6273341A (en) information processing equipment
JPS61145657A (en) History memory control circuit
JPH04248635A (en) Probe effect eliminating method for parallel processing debugging