JPH01166144A - ファームウェア・プログラムのデバッグ方式 - Google Patents

ファームウェア・プログラムのデバッグ方式

Info

Publication number
JPH01166144A
JPH01166144A JP62325012A JP32501287A JPH01166144A JP H01166144 A JPH01166144 A JP H01166144A JP 62325012 A JP62325012 A JP 62325012A JP 32501287 A JP32501287 A JP 32501287A JP H01166144 A JPH01166144 A JP H01166144A
Authority
JP
Japan
Prior art keywords
trace
memory
program
ecc
counter
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
JP62325012A
Other languages
English (en)
Inventor
Satoshi Nojima
聡 野島
Hidekazu Tsutsui
英一 筒井
Kazuo Sakakawa
坂川 和男
Takenobu Shibayama
柴山 武信
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 JP62325012A priority Critical patent/JPH01166144A/ja
Publication of JPH01166144A publication Critical patent/JPH01166144A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔概要〕 装置に内蔵されているファームウェア・プログラムのデ
バッグ方式に関し。
僅かなハードウェア量の増加で、ファームウェア・プロ
グラムのトレースが可能なデバッグ機構を、装置内に設
けることを目的とし。
ECCメモリに結合され、ファームウェア・プログラム
の命令ステップの実行順序を示すトレース情報を収集す
る制御を行うトレース制御回路と。
ファームウェア・プログラムの命令ステップの実行順序
を識別するトレース・コードを生成するカウンタとを設
け、外部からECCメモリのトレースを開始すべきアド
レスにトレース開始を表すトレース・コードを設定し、
トレース制御回路は。
ECCメモリから上記トレース開始を表すトレース・コ
ードが検出されたとき、カウンタを起動して、プログラ
ム・メモリがアクセスされるごとに逐次更新される順序
番号のトレース・コードを発生させ、上記アクセスされ
たプログラム・メモリのアドレスでECCメモリに書き
込む構成をもつ。
〔産業上の利用分野〕
本発明は、装置に内蔵されているファームウェア・プロ
グラムのデバッグ方式に関する。
LSI技術の進展により、目的とする各種の装置を実現
する場合、その装置専用に、ゲートアレイLSIを用い
て、最適のプロセッサを実現するとともに、ファームウ
ェア・プログラムを内蔵させて所望の制御を行うように
したものが増加している。
現在、市場に各種のプロセッサ・アナライザが出回って
いる。しかし、これらはいずれも上述したような特化し
たプロセッサに内蔵されているファームウェア・プログ
ラムのデバッグに使用するのは不適当なものである。そ
のため、なんらかのデバッグ機構を、装置自身の内部に
予め実現して置く必要が生じている。
本発明は、このようなファームウェア・プログラムのデ
バッグ機構の1つの方式を提供するものである。
〔従来の技術〕
第4図は、ファームウェア・プログラムを内蔵する従来
の装置の構成図である。
図において、11はファームウェア・プロz゛ラムを格
納するプログラム・メモリ、12はプログラム・メモリ
11と同じアドレス構成をもち、プログラム・メモリ1
1の対応するアドレスの命令について生成されたECC
データが格納されるECCメモリ、13はプログラム・
メモリ11から読み出された命令とECCメモリ12か
ら読み出されたECCデータとに基づいてエラーチエツ
クおよびエラー修正を行うECC回路、14はECC回
路13により正当性を保証された命令を実行するプロセ
ッサである。
このような装置に内蔵されたファームウェア・プログラ
ムのためのデバッグ機構に要求される条件としては、以
下の項目■、■、■に示されるようなものが不可欠であ
る。
■ 装置全体のハードウェア量に対して、充分無視しう
る物量で実現がされること。
■ ファームウェア・プログラムのデバッグは。
往々にしてタイミング関係を保存して行う必要があり、
デバッグ機構としては、ファームウェア・プログラムの
走行ステップに対して、何等影響の無いものが望ましい
■ 機能的には、各種のものが考えられるが、最低限、
ファームウェア・プログラムの走行ステップ順序がトレ
ースできる事が必要である。
このような要求に応えるための従来技術としては5次に
挙げるものが良く使用されている。
(1)  ブランチ・トレース(branch tra
ce)ファームウェア・プログラムのbranch文の
発生したアドレスを順次、トレース・メモリに格納して
いく。
(2)  ブレーク・ポイント(break poin
t)なんらかの手段により、ファームウェア・プログラ
ムのステップの成るアドレスにおいて、ファームウェア
・プログラムの走行を停止する。
(3)  アドレス比較(adress compar
e)による停止。
トレース ファームウェア・プログラムが格納されているメモリの
アドレスに対し、ハードウェアで実現した比較回路と比
較アドレスの保持メモリを用意する事により、保持メモ
リのアドレスのアクセスが発生した時点で、走行の停止
、あるいはトレースを実行する。
(4)プログラム・ステップに、予め、ある一定のトレ
ース実行ルーチンを数個所作りこんでおく。
このようにプログラム自身によって、自プログラムの走
行ステップを記録する機能を埋め込む事によって、走行
順序の記録を実行するものである。
〔発明が解決しようとする問題点〕
前述した従来技術の10ないしく4)において、(1)
は不要なトレースを発生することが不可避であり。
(2)はファームウェア・プログラムの走行が停止する
という問題があった。また(3)はハードウェア量の増
加があるとともに、そのハードウェア量の制限により、
指定アドレス・ポイント数または通常1または2程度に
制限され、そして(4)はプログラム自身に対し無効ス
テップであるトレース用の処理が必要となるとともに、
プログラム作成時に設定したポイントしかトレースがで
きないという問題があった。またいずれの場合も、トレ
ース・メモリが必要であった。
本発明は、僅かなハードウェア量の増加で、ファームウ
ェア・プログラムのトレースが可能なデバッグ機構を、
装置内に設けることを目的とする。
〔問題点を解決するための手段〕
従来の装置のプロセッサでは、ファームウェア・プログ
ラムを、エラ一対策のためにエラー検出やエラー修正が
可能なECC付きでメモリに格納している。そしてこの
メモリには、高速化を図るため、一般にRAMを用いて
いる。
本発明は、このファームウェア・プログラムのエラ一対
策に用いられているECCデータが、デバッグ時には実
際上不要であることと、プログラム・メモリおよびEC
Cメモリの各対応するアドレスの領域は同期して同時に
読み出されることとに着目し、ECCが格納されている
メモリの領域を、デバッグ時にファームウェア・プログ
ラムのトレース領域として使用するものである。
第1図に本発明の原理的構成を示す。
図において。
lはファームウェア・プログラムを格納するプログラム
・メモリである。
2はRAMで構成されたECCメモリであり。
通常動作時にはECCデータが格納され、デバッグ動作
時にはトレース・コードを書き込まれる。
このトレース・コードには、トレースの開始位置を示す
情報をもつものと、ファームウェア・プログラム中での
命令ステップの実行順序を示す情報をもつものとがあり
、前者のトレース・コードは外部から設定され、後者の
トレース・コードは内部で発生される。
3はトレース制御回路であり、ファームウェア・プログ
ラムの実行中に、ECCメモリ2からトレース開始位置
を示すトレース・コードが読み出されたときこれを検出
してトレース制御を開始し。
−Vtいて実行される命令ステップに対応するECCメ
モリ2のアドレスに実行順序を示すトレース・コードを
設定する。
4は、ECC回路であり、プログラム・メモリ1から読
み出された命令データとECCメモリ2から読み出され
たECCデータとによりエラーチエツクおよびエラー修
正を行い、命令データの正当性を保証する。
5はプロセッサであり、プログラム・メモリ1およびE
CCメモリ2をアクセスし、プログラム・メモリ1から
読み出される各命令を実行する。
6はカウンタであり、命令ステップの実行順序を識別可
能にする順序番号を表すトレース・コードを生成するた
めに使用される。このカウンタ6は、トレース制御回路
3により制御され、トレース開始位置を表すトレース・
コードを検出した時点でリセットされてカウントを開始
し、予め定められた値に達するとカウントを停止される
〔作用〕
第1図において、デバッグ作業者は、装置の外部に接続
されたコンソール等の適当な手段(図示省略)を用いて
、ファームウェア・プログラムのデバッグを開始すべき
命令ステップのアドレ不を指定し、ECCメモリ2の対
応アドレスに、トレース開始を表すトレース・コードを
書き込む。たとえばこのトレース・コードを、 “OO
゛ とする。
またECC回路4の動作は禁止する。
ファームウェア・プログラムを実行し、プログラム・メ
モリlからデバッグを開始するアドレスの命令ステップ
を読み出したとき、ECCメモリ2からはトレース・コ
ード00′が読み出される。
トレース制御回路3は、このトレース・コード゛00°
を検出すると、カウンタ6をリセットしてカウント動作
を開始させ、所定値に達したとき停止させる。所定値は
、カウンタ6の最大値またはそれよりも小さい任意の値
とすることができる。
カウンタ6は、プログラム・メモリ1がアクセスされる
たびに、すなわちファームウェア・プログラムの命令が
フェッチされるたびに、+1カウントし、 “00° 
′01“02゛のように昇順で変化する順序番号のトレ
ース・コードを発生する。
カウンタ6が発生したトレース・コードは、その時点で
アクセスが行われているECCメモリ2のアドレスに書
き込まれる。
このようにして、ファームウェア・プログラムの実行が
進むにつれて、実行された命令ステップに対応するEC
Cメモリ2の各アドレスには、実行順序を示す一連のト
レース・コードが書き込まれ、トレース情報が作成され
る。
次にデバッグを行うときは、ECCメモリ2をアクセス
して、トレース・コードを“00°から昇順にサーチし
、対応する命令を読み出すことにより、実行順序を確認
することができる。
〔実施例〕
第2図に本発明の1実施例装置の構成を示す。
図において、lはプログラム・メモリ、2はECCメモ
リ、3はトレース制御回路、4はECC回路、5はプロ
セッサ、6はカウンタ、7は書き込み回路、8はアドレ
ス・セレクタ、9はECC禁止回路、10はコンソール
である。
プログラム・メモリlおよびECCメモリ2は。
RAMで構成されている。プログラム・メモリ1のデー
タ幅(命令長)は2ハイドであり1通常動作時には、そ
の1ビツトエラー修正および2ビツトエラー検出可能な
6ビソトのECCデータがECCメモリ2に格納される
トレース制御■回路3は、トレース動作の開始と終了と
を制御する機能をもつ。
第3図に、トレース制御回路3の細部構成を示す。図に
おいて、31は第2図のECCメモリ2の出力を監視し
て、X “00°を検出するデコーダであり、32は第
2図のカウンタ6の出力を監視して、X “2F” を
検出するデコーダである。
33はRSフリップフロップであり、デコーダ31の出
力によりオンにセットされ、デコーダ32の出力により
オフにリセットされる。
デコーダ31がECCメモリ2からトレース・、コード
X “00°が出力されたことを検出すると。
カウンタ・リセット信号を出力するとともに、RSフリ
ップフロップをオンにする。RSフリップフロップ33
がオンになると、カウンタ・スタート/ストップ信号を
オンにする。その後デコーダ32がカウンタ6の出力に
トレース・コードX“2F” を検出するとRSフリッ
プフロップ33をオフにし、カウンタ・スタート/スト
ップ信号をオフにする。
第2図に戻ると、カウンタ6は6ビノトのカウンタであ
り、動作時にプログラム・メモリlのアクセス・クロッ
クをカウントし、トレース・コードを出力する。
通常動作時にプロセッサ5は、プログラム・メモリ!お
よびECCメモリ2にアドレスを送り。
それぞれをアクセスして、命令データとその対応するE
CCデータとをS売み出す。
読み出された命令データおよびECCデータはともにE
CC回路4に送られ、エラーチエツクおよびエラー修正
が行われて、正当性を保証された命令データとしてプロ
セッサ5へ送られる。このようにしてファームウェア・
プログラムの各命令は読み出され、プロセッサ5により
実行される。
アドレス・セレクタ8は、プロセッサバス経由でプロセ
ッサよりセレクトされ、プログラムメモリと同じアドレ
スをECCメモリに対し出力する場合とプロセッサがE
CCメモリ内部のトレースコードの設定/トレース内容
の参照を行う場合のプロセッサ指定アドレスを出力する
場合とを選択する。
トレース動作は、コンソール10からの指示により行う
まず、コンソール10からトレース制御コマンドにより
トレース開始アドレスを与える。このコマンドは、アド
レス・セレクタ8を右のアドレス入力に切り換え、プロ
セッサ・バスを介して転送されてきたトレース開始アド
レスをECCメモリ2に印加するとともに、プロセッサ
・バスより送られたトレース・コードx’oo’ を書
き込む。
書き込みが終了すると、アドレス・セレクタ8を左のア
ドレス入力に戻す。
またこのトレース制御コマンドは、プロセッサ・バスを
介してECC禁止回路9内の禁止指示をオンにし、EC
C回路4の機能を停止させる。この状態では、プログラ
ム・メモリ1から読み出された命令データは、ECCチ
エツクなしにそのままプロセッサ5へ転送される。
次に、ファームウェア・プログラムを実行させる。ここ
で先にECCメモリ2のトレース・コードx’oo’ 
を書き込んだアドレスに対応するプログラム・メモリl
のアドレスの命令がアクセスされると、ECCメモリ2
からトレース・コードX“00゛が読み出される。
トレース制御回路3は、トレース・コードX°00°を
検出するとカウンタ6をリセットし。
カウント動作をスタートさせる。
カウンタ6は、本来はx’oo’ からX “3F”ま
でのカウント機能をもつ。しかし、トレース制御回路3
は、カウンタ6の出力にX “2F” を検出するとカ
ウンタ6のカウント動作をストップさせる。このためカ
ウンタ6は、X  ’2F’ までカウントすると、以
f&X “2F’を維持する。
カウンタ6は、スタート後、プログラム・メモリ1の命
令がアクセスされるごとに、アクセス・クロックをカウ
ントし、X  ’01’ 、X  ’02’・・・のよ
うに昇順に更新されるトレース・コードを発生する。
これらのトレース・コードは書き込み回路7を介してE
CCメモリ2に送られ、そのとき与えられているアドレ
スに書き込まれる。
この結果、ファームウェア・プログラムの実行命令のト
レースが一連のトレース・コードによって順序を識別可
能にされて、ECCメモリ中に記録される。
ECCメモリ2中に記録されたトレース情報は。
ファームウェア・プログラムの1つを用いてトレース・
コードを昇順にサーチして対応する命令をS売み出すこ
とができる。
〔発明の効果〕
本発明は、ECCメモリをトレース・メモリとして利用
するとともに、カウンタをトレース・コード発生手段と
して設けることで、少ないハードウェア量と簡単な制御
機構をもつファームウェア・プログラム・デバッグ機構
を実現できる。
また本発明は、ファームウェア・プログラムにトレース
制御のための余分な命令ステップを付加する必要がなく
、シかもファームウェア・プログラムの実行時間がトレ
ース動作によって遅延されない利点をもつ。
【図面の簡単な説明】
第1図は本発明の原理的構成図、第2図は本発明の1実
施例装置の構成図、第3図は第2図におけるトレース制
御回路の細部構成図、第4図は従来装置の構成図である
。 第1図中。 1ニブログラム・、メモリ 2 : ECCメモリ 3ニドレ一ス制御回路 4:Ecc回路 5:プロセノサ 6=カウンク

Claims (1)

  1. 【特許請求の範囲】 プログラム・メモリ(1)とECCメモリ(2)とをそ
    なえてファームウェア・プログラムをECC付きで内蔵
    し動作させる装置において、 ECCメモリ(2)に結合され、ファームウェア・プロ
    グラムの命令ステップの実行順序を示すトレース情報を
    収集する制御を行うトレース制御回路(3)と、 ファームウェア・プログラムの命令ステップの実行順序
    を識別するトレース・コードを生成するカウンタ(6)
    とを設け、 ファームウェア・プログラムをデバッグする際、外部か
    らECCメモリ(2)のトレースを開始すべきアドレス
    にトレース開始を表すトレース・コードを設定し、 トレース制御回路(3)は、ECCメモリ(2)から読
    み出されるトレース・コードを監視して、上記トレース
    開始を表すトレース・コードが検出されたとき、カウン
    タ(6)を起動して、プログラム・メモリ(1)がアク
    セスされるごとに逐次更新される順序番号のトレース・
    コードを発生させ、上記発生されたトレース・コードを
    、上記アクセスされたプログラム・メモリ(1)のアド
    レスに対応するECCメモリ(2)のアドレスに書き込
    み、ファームウェア・プログラムの命令ステップの実行
    順序を表すトレース情報を作成することを特徴とするフ
    ァームウェア・プログラムのデバッグ方式。
JP62325012A 1987-12-22 1987-12-22 ファームウェア・プログラムのデバッグ方式 Pending JPH01166144A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP62325012A JPH01166144A (ja) 1987-12-22 1987-12-22 ファームウェア・プログラムのデバッグ方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP62325012A JPH01166144A (ja) 1987-12-22 1987-12-22 ファームウェア・プログラムのデバッグ方式

Publications (1)

Publication Number Publication Date
JPH01166144A true JPH01166144A (ja) 1989-06-30

Family

ID=18172152

Family Applications (1)

Application Number Title Priority Date Filing Date
JP62325012A Pending JPH01166144A (ja) 1987-12-22 1987-12-22 ファームウェア・プログラムのデバッグ方式

Country Status (1)

Country Link
JP (1) JPH01166144A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6219828B1 (en) * 1998-09-30 2001-04-17 International Business Machines Corporation Method for using two copies of open firmware for self debug capability

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6219828B1 (en) * 1998-09-30 2001-04-17 International Business Machines Corporation Method for using two copies of open firmware for self debug capability

Similar Documents

Publication Publication Date Title
US3800294A (en) System for improving the reliability of systems using dirty memories
US3673573A (en) Computer with program tracing facility
JPH0581935B2 (ja)
JPH01166144A (ja) ファームウェア・プログラムのデバッグ方式
JPS6319058A (ja) メモリ装置
JP2600376B2 (ja) メモリ制御装置
JPS60214043A (ja) パイプライン制御回路
JPS5917468B2 (ja) プログラムカウンタ軌跡記憶装置
JPS58213349A (ja) 情報処理装置
JPS6142301B2 (ja)
JPH01166143A (ja) ファームウェア・プログラムのデバッグ方式
JPH01318128A (ja) キャッシュ・エラー処理方式
JPS6261974B2 (ja)
JPS60238933A (ja) 制御記憶装置のエラ−処理方式
JPS5936853A (ja) 演算処理装置
JPS5968067A (ja) 走行ステツプ数指定処理方式
JPH0324640A (ja) 情報処理装置のデバッグ方式
JPS59125453A (ja) リトライ方式
JPS60114937A (ja) マイクロプログラム処理装置
JPS59218555A (ja) マイクロプログラム制御装置
JPH04109335A (ja) 制御プログラム訂正システム
JPS62290944A (ja) マイクロプログラム評価方式
JPH06175883A (ja) プログラムデバッグ装置
JPH0512004A (ja) 命令実行方式
JPS59160896A (ja) メモリエラ−検出・訂正方式