JPH10240570A - マイクロプロセッサ及びその開発支援装置 - Google Patents

マイクロプロセッサ及びその開発支援装置

Info

Publication number
JPH10240570A
JPH10240570A JP9045787A JP4578797A JPH10240570A JP H10240570 A JPH10240570 A JP H10240570A JP 9045787 A JP9045787 A JP 9045787A JP 4578797 A JP4578797 A JP 4578797A JP H10240570 A JPH10240570 A JP H10240570A
Authority
JP
Japan
Prior art keywords
tag information
instruction
microprocessor
trace
bus
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
JP9045787A
Other languages
English (en)
Other versions
JP3349911B2 (ja
Inventor
Kazuto Tsuzuki
一人 都築
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.)
NEC IC Microcomputer Systems Co Ltd
Original Assignee
NEC IC Microcomputer Systems Co 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 NEC IC Microcomputer Systems Co Ltd filed Critical NEC IC Microcomputer Systems Co Ltd
Priority to JP04578797A priority Critical patent/JP3349911B2/ja
Publication of JPH10240570A publication Critical patent/JPH10240570A/ja
Application granted granted Critical
Publication of JP3349911B2 publication Critical patent/JP3349911B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)
  • Debugging And Monitoring (AREA)

Abstract

(57)【要約】 【課題】パイプライン構成でキャッシュメモリ内蔵のマ
イクロプロセッサのデバッグ用のリアルタイムトレース
機能を有するマイクロプロセッサ及びその開発支援装置
を提供する。 【解決手段】命令の読み出しサイクルに応じてこの命令
対応の整理番号であるタグ情報TBを順次生成するカウ
ンタ16,IDU13と、タグ情報TBを順次保持する
キャッシュトレース制御回路14と、タグ情報TBを外
部に出力するセレクタ17とを備える。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明はマイクロプロセッサ
及びその開発支援装置に関し、特にパイプライン構成及
び命令用キャッシュを有するマイクロプロセッサ及びそ
の開発支援装置に関する。
【0002】
【従来の技術】マイクロプロセッサは、周知のように、
命令を解読して演算・制御動作を実行する演算装置であ
り、シリコンチップ上に実現される。近年のLSI技術
の発展及び市場のニーズの広範化・高度化に伴い高性能
化の一途を辿り、今日では語長が64ビットの機種が商
品化されている。また、レジスタや演算回路及び制御回
路等の必須の構成要素の他にキャッシュメモリを内蔵し
たものも少なくない。キャッシュメモリは、公知のよう
にコンピュータの内部メモリに対する高速度と大容量と
いう二律背反的な要求を満足するため、中央処理装置
(CPU)内部に設けた高速小容量のメモリである。
【0003】また、演算の高速化のため、公知のパイプ
ライン構成を採用したマイクロプロセッサも広く使われ
るようになってきている。
【0004】パイプライン構成は、CPUにおける命令
の取り出し段階と実行段階とを並列的に遂行させる先読
み方式を拡張したもので、各命令の処理過程を複数のス
テージに分割し、次々に命令を取り上げることにより各
ステージで待ち行列を作り、1つの算術論理演算機構が
これらのステージの処理を並列的に遂行させていく方式
である。
【0005】上述のようなマイクロプロセッサの複雑化
に対応して、そのデバッグが問題化してきた。この種の
デバッグ手法としては、トレース,トラップ,シングル
ステップ等があるが、総体的なデバッグにはトレースが
適している。トレースは周知のように、デバッグ対象プ
ログラムを実行するCPUあるいはマイクロプロセッサ
外部にトレースアナライザとトレースメモリを設けて行
う。トレースアナライザは、マイクロプロセッサが実行
する命令のアドレスを逐一トレースメモリに記憶してい
き、後にその記憶内容を解析することによりデバッグを
可能化する。
【0006】従来、パイプライン構成でかつ命令キャッ
シュメモリを内蔵したマイクロプロセッサは、キャッシ
ュ機能使用時のリアルタイムトレースは、メモリアクセ
スがマイクロプロセッサの内部に留まり、トレースアナ
ライザはトレースに必要なデータを直接検知できない。
したがって、従来は、キャッシュメモリを無効化してト
レースを行うことが一般的であった。
【0007】しかし、キャッシュメモリの無効化時には
有効時とマイクロプロセッサの動作が大幅に異なるため
正確なデバッグができない。この解決のため、キャッシ
ュメモリを有効状態に保持したままトレースを可能とす
るため、従来のキャッシュメモリ内蔵型マイクロプロセ
ッサは、命令の実行開始,分岐命令の発生及び分岐先ア
ドレスの静的指定可否の各々を外部に表示するための端
子を備えている。そして、従来のトレースアナライザ
は、予めプログラムを静的に解析した実行フローを保持
しており、上記各端子からの供給信号を手がかりに実行
フローに基づき動的な命令処理順序を組み立てる構成と
なっている。
【0008】しかし、キャッシュ機能使用時のリアルタ
イムトレースは、上述のように、メモリアクセスがマイ
クロプロセッサの内部に留まり、トレースアナライザは
トレースに必要なデータを直接検知できず、例えば、分
岐命令実行時の分岐先アドレスが命令実行直前でないと
判断できないという理由により非常に困難であった。
【0009】一般に、この種のマイクロプロセッサは、
キャッシュのヒットの検出用、あるいは命令実行に同期
した外部ブレークの割り込み要求発生用等に用いるため
の付加的な情報すなわちタグ情報を有している。しかし
ながら、このタグ情報をキャッシュメモリ内の命令実行
をトレースするためには使用していなかった。
【0010】特開平6−161818号公報記載の従来
の第1のマイクロプロセッサをブロックで示す図9を参
照すると、この従来の第1のマイクロプロセッサは、タ
グアクセス比較部41と、命令格納部42とを備えるキ
ャッシュメモリ104と、比較回路105と、命令アド
レス発生回路106とを備える。
【0011】この従来の第1のマイクロプロセッサは、
キャッシュメモリ104の保持するタグ情報を、命令読
出し毎に命令アドレス発生回路106が生成する命令ア
ドレスと、キャッシュメモリ104に予め格納されたア
ドレスとの比較回路105での比較用に使用する。いわ
ゆるキャッシュのヒットの検出用である。
【0012】しかし、パイプライン実行、すなわち、先
行フェッチサイクルを行うときに、条件分岐命令等の実
行後の分岐の有無により、分岐実行の有無を判断するた
めには使用していない。
【0013】特開平5−334082号公報記載の従来
の第2のマイクロプロセッサをブロックで示す図10を
参照すると、この従来の第2のマイクロプロセッサは、
キャッシュメモリ104と、命令コード用タグ埋め込み
回路108と、命令コード用タグ検出回路110とを備
える。
【0014】この従来の第2のマイクロプロセッサは、
タグ情報を、命令実行に同期して外部ブレークの割り込
み要求を発生させるために用いる。
【0015】キャッシュメモリ内蔵のマイクロプロセッ
サでは、一度命令を読み込むとこの命令がヒットし続け
ている限り、外部バスからの命令読み込みサイクルすな
わちフェッチサイクルは発生しない。このため外部から
のブレーク割り込み要求は最初のフェッチサイクル時に
だけ入力可能であるので、命令用のキャッシュメモリに
加え、ブレーク割り込み要求のタグ情報をキャッシュメ
モリに付加し格納していた。
【0016】また、上述したパイプライン実行時の条件
分岐の有無の問題に対応策としても上記タグ情報が役立
っていたが、あくまでもブレーク割り込み要求を命令実
行まで保持し、命令実行に同期してブレーク割り込みを
発生させるために使用している。
【0017】つまり、キャッシュメモリ内の命令実行を
トレースするために使用することはできない。
【0018】これら、従来の第1,第2のマイクロプロ
セッサでは、特に、条件付き分岐及びレジスタ間接分岐
命令の実行時の分岐先予測が困難であり、これらの推測
可能な構成にすると、マイクロプロセッサの実行時にお
けるリアルタイム性が失なわれたり、レジスタ書き込み
データの観測用手段が必要となり、また、高速な読み出
し方式が必要となる。
【0019】その理由は、レジスタ間接分岐命令をトレ
ースするには、プロセッサ外部からプロセッサ内部のレ
ジスタへの書き込み情報を観測する必要があるからであ
る。命令実行と並行にレジスタの書き込み情報を推測す
る場合、内部動作がパイプラインで動作している最近の
マイクロプロセッサでは、命令実行を1クロックで行う
ため、1クロックでレジスタの値を観測する手段を必要
とする。仮にプロセッサにレジスタ観測用の専用の端子
を設けるとすると、レジスタのビット数+数本の制御信
号用端子が必要となる。端子を多くしてパッケージを大
きくすることは、コスト面で不利である。
【0020】次に、特開平5−224989号公報記載
の従来の第3のマイクロプロセッサ及びそのトレースア
ナライザをブロックで示す図11を参照すると、この従
来の第3のマイクロプロセッサ201は、内蔵キャッシ
ュメモリが有効状態か否かを外部に表示するモード表示
端子207を備え、トレースアナライザ203はこの端
子207上のモード表示信号MDの供給に応答してマイ
クロプロセッサのトレース方法を変更する。
【0021】この従来の第3のマイクロプロセッサの注
目点は、レジスタ間接分岐命令の実行時に分岐先の予測
が、予めプログラムを解析した内容からでは判別がつか
ないため分岐時にブレーク割り込みを発生させる点であ
る。このブレーク割り込み処理中に、専用の出力サイク
ルを発生させて、レジスタの内容、すなわち分岐先を示
すプログラムカウンタの値を出力するため、本来のプロ
セッサの動作と異なりリアルタイム性を失うことにな
る。
【0022】このように、マイクロプロセッサのユーザ
のバス端子を使い、外部バスサイクルの発生を保留させ
てレジスタの内容をプロセッサ外部から読み出し観測す
る場合、通常のフェッサイクル等のバスサイクル以外に
レジスタの状態を外部に出力するサイクルを発生するの
でリアルタイム性が失われる。
【0023】マイクロプロセッサとバスの各々のバスサ
イクル間に発生するアイドルステート中にレジスタの値
をはきださせる方法もあるが、レジスタの値をユーザバ
ス端子からはきだすサイクルでプロセッサのバスサイク
ルが保留されるためプログラム自体の性能を悪化させて
しまう。
【0024】
【発明が解決しようとする課題】上述した従来の第1及
び第2のマイクロプロセッサ及びその開発支援装置は、
外部バスサイクルの状態を記憶するリアルタイムトレー
ス機能を有するトレース方式において、キャッシュメモ
リを有効状態としこのキャッシュメモリがヒツトすると
外部バスサイクルとしてフェッチサイクルが発生せず、
一方、マイクロプロセッサの外部では命令実行アドレス
を知ることができないので、実際の実行中の命令を判断
できなくなるため、トレースメモリに記憶した情報か
ら、実行された命令を全て推測することができないとい
う欠点があった。
【0025】また、特に、条件付き分岐及びレジスタ間
接分岐命令の実行時の分岐先予測が困難であり、これら
の推測可能な構成にすると、マイクロプロセッサの実行
時におけるリアルタイム性が失なわれたり、レジスタ書
き込みデータの観測用手段が必要となり、また、高速な
読み出し方式が必要となるという欠点があった。
【0026】さらに、従来の第3のマイクロプロセッサ
及びその開発支援装置は、ユーザのバス端子を使い、外
部バスサイクルの発生を保留させてレジスタの内容をプ
ロセッサ外部から読み出し観測するので、通常のフェッ
サイクル等のバスサイクル以外にレジスタ状態の外部出
力専用サイクルが発生するためリアルタイム性が失われ
るという欠点があった。
【0027】本発明の目的は、パイプライン構成でキャ
ッシュメモリ内蔵のマイクロプロセッサのデバッグ用の
リアルタイムトレース機能を有するマイクロプロセッサ
及びその開発支援装置を提供することにある。
【0028】
【課題を解決するための手段】本発明のマイクロプロセ
ッサは、命令コードの供給に応答してこの命令コードの
指示を実行する命令実行ユニットと、外部メモリから読
み出した第1の命令を保持し第2の命令を出力する命令
用キャッシュメモリと、前記第1又は第2の命令をデコ
ードして前記命令コードを出力する命令デコードユニッ
トと、関連のバスを制御するバス制御ユニットとを備え
るマイクロプロセッサにおいて、前記第1の命令の読み
出しサイクルに応じてこの第1の命令対応の整理番号で
ある第1のタグ情報を順次生成するタグ情報生成手段
と、前記第1のタグ情報を順次保持し読み出し時に前記
第1のタグ情報対応の第2のタグ情報を出力するタグ情
報保持手段と、前記第1のタグ情報又は前記第2のタグ
情報を外部に出力するタグ情報出力手段とを備えて構成
されている。
【0029】本発明のマイクロプロセッサの開発支援装
置は、上記マイクロプロセッサと、命令を保持している
外部メモリと、前記マイクロプロセッサが実行する命令
のアドレスを逐一記憶するトレースメモリと、全体を制
御するホストコンピュータとを備えるマイクロプロセッ
サの開発支援装置において、前記トレースメモリが、前
記外部メモリから命令の読出し時にこの命令対応の整理
番号である第1のタグ情報とアドレスバスの状態とステ
ータスバスの状態とデータバスの状態とを順次保持する
ことを特徴とするものである。
【0030】
【発明の実施の形態】次に、本発明の第1の実施の形態
をブロックで示す図1を参照すると、この図に示す本実
施の形態のマイクロプロセッサ及びその開発支援装置
は、デバッグ対象のマイクロプロセッサ1と、この開発
支援装置のメインメモリ2と、マイクロプロセッサ1の
実行命令のアドレスを逐一トレースメモリに記憶してい
き後にその記憶内容を解析することによりデバッグを行
うトレーサ8とを備える。
【0031】トレーサ8は、トレースメモリ4の内容を
解析するトレースアナライザ3と、マイクロプロセッサ
1の実行命令の内容をタグ情報と共に記憶するトレース
メモリ4と、ホストコンピュータであるパソコン5と、
システム全体のクロックを供給する発振器6と、各信号
の入出力インタフエース用のバッファ7A〜7Gとを備
える。
【0032】マイクロプロセッサ1の構成をブロックで
示す図2を参照すると、このマイクロプロセッサ1は、
内部アドレス,データバス18,19及び外部のデー
タ,アドレス,ステータスバス9,10,21を制御す
るバス制御ユニット(BCU)11と、命令コードを一
時格納する命令キャッシュ12と、フエッチした命令コ
ードをデコードして命令コードIC及びタグ情報を出力
する命令デコードユニット(IDU)13と、命令キャ
ッシュ12に格納した命令コード対応のタグ情報を格納
するキャッシュトレース制御回路14と、命令コードの
指示を実行する実行ユニット(EXU)15と、命令の
フエッチ毎にインクリメントするカウンタ16と、セレ
クタ17と、内部アドレスバス18と、内部データバス
19とを備える。
【0033】キャッシュトレース制御回路14の構成を
ブロックで示す図3を参照すると、このキャッシュトレ
ース制御回路14は、タグ情報TBを入力順に格納しこ
の格納順に出力する先入れ先出しメモリ(FIFO)1
41を備える。
【0034】次に、図1,図2及び本実施の形態の処理
フローをフローチャートで示す図4及びマイクロプロセ
ッサ1とトレーサ8との実行時のトレースデータの処理
内容の例を示す図5とを参照して本実施の形態の全体の
動作について説明すると、まず、開発支援装置内部のマ
イクロプロセッサ1が命令コードの読み込みを行う場
合、内部の命令キャッシュ12に、予め命令コードがす
でに読み込まれているかどうか判別する(ステップS1
〜S5)。命令コードがすでに読み込まれている場合
は、命令キャッシュ12から、また読み込まれていなけ
れば外部のメインメモリ2から命令コードを読み出す。
その場合開発支援装置は、トレースアナライザ3を経由
しトレースメモリ4に対して、バスサイクルの状態(デ
ータバス9の状態と、アドレスバス10の状態と、ステ
ータス用バス21の状態)と、マイクロプロセッサ1が
出力した整理番号であるタグ情報TAを同時に書き込む
(ステップS6)。
【0035】次にマイクロプロセッサ1は、読み込んだ
命令コードにトレースメモリ4に書き込まれたタグ情報
TAと同一の内容のタグ情報TBを付加し命令キャッシ
ュ12へ書き込む(ステップS7〜S10)。
【0036】次に、命令キャッシュ12に予め命令が読
み込まれていればこの命令キャッシュ12から、読み込
まれていなければ、前述の内容のように命令コードと付
加したタグ情報TBとをマイクロプロセッサ1内部のE
XU15へと順次送り、EXU15はこれら命令を順次
実行する(ステップS11)。この時、EXU15で確
実に実行される命令コードとタグ情報TAとの組み合わ
せからタグ情報TB分を内部のキャッシュトレース制御
回路14へ送り時系列順に保存して行く。
【0037】この一連の動作において、マイクロプロセ
ッサ1が命令コードの読み込みサイクルすなわちフェッ
チサイクルの状態をトレースメモリ4に保存するのと同
様に、他のデータアクセスサイクルも時系列順に保存す
る。また、タグ情報TAは外部バス9,10,21の状
態がフェッチサイクルになるたびにインクリメントされ
る。
【0038】なお、説明の便宜上、本実施の形態では、
命令長は固定でかつ命令長はデータバス幅と等しいもの
とする。
【0039】この一連の動作を繰り返すと、マイクロプ
ロセッサ1の内部のキャッシュトレース制御回路14に
は図5(A)に示すタグ情報TBが、トレースメモリ4
には図5(B)に示すタグ情報TA,アドレスA,ステ
ータスS,データDがそれぞれ蓄積される。
【0040】このような内容が蓄積されている状態で、
命令実行中のマイクロプロセッサ1をブレーク割り込み
等の手法を使って、ユーザプログラムの実行を停止させ
る(ステップS12)。その後、キャッシュトレース制
御回路14から図5(A)の内容のタグ情報TBを、ト
レースメモリ4から図5(B)の内容のタグ情報TA,
アドレスA,ステータスS,データDを、パソコン5の
メモリ上に読み出す(ステップS13)。次に、このタ
グ情報TBを基準に、図5(B)のタグ情報TAを含む
バスサイクルの状態の並べ変えを行う(ステップS1
4)。命令コード部分の並べ変えは、タグ情報TB,T
Aの各々の値が一致したものを、タグ情報TB順に、パ
ソコン5のメモリ上で並べ変える。
【0041】ここで、再度図5を参照し具体例につい
て、一度命令キャッシュ12が取り込んだ命令を分岐命
令の実行で反復する場合と、次に、一度命令キャッシュ
12が取り込んだ命令を分岐命令で実行した場合につい
てそれぞれ説明する。
【0042】図5(A)を参照すると、タグ情報TBが
001,002〜00A,00Bになった後、008,
009と番号が回帰している。この部分が命令キャッシ
ュ12に取り込まれた分岐命令により再度実行された箇
所である。
【0043】まず、タグ情報TBの00B,008,0
09で実行した命令が配置されているアドレスの検索方
法を説明すると、このアドレスを検索するには、図5
(B)のトレースメモリ4の内容を参照すればよい。す
なわち、トレースメモリのタグ情報TAの00Bは、ア
ドレスFFFF0028Hの命令コード11のBnz命
令(分岐命令)であることが分かる。同様に、タグ情報
TAの008はアドレスFFFF001CHの命令コー
ド8のADD命令であり、009はアドレスFFFF0
020Hの命令コード9のSub命令である。
【0044】次にデータアクセスサイクルのトレースに
ついて説明すると、図5(B)に示すタグ情報TAが0
07,008,008と並んでいる。最初の008の所
がデータアクセスのトレース情報である。ここではアド
レスFFFF1000Hにデータ00000000Hを
格納している。ここで、008が2つ連続している理由
は、マイクロプロセッサが外部バスからフェッチを生起
した時のみタグ情報TAのカウンタをインクリメントす
るためである。つまり、データアクセスの時にはカウン
トアップしないことになる。また、このデータアクセス
がどの命令で実行されたかの検索には、トレースメモリ
4の内容をタグ情報TAの008から007,006と
遡及することでタグ情報TA002のストア命令を見つ
けることができる。この方法であれば、マイクロプロセ
ッサ1のリアルタイム性を失うこと無く命令キャッシュ
12の活性化状態でのトレースが可能となる。
【0045】次に、図1,図2及び図3を参照して本実
施の形態のマイクロプロセッサ1の動作の詳細について
説明すると、まず、EXU15に入力されるリセット信
号RAをLレベルにすることにより、ハードウェアの初
期化を行う。なお、もう1つのリセット信号Rは通常の
マイクロプロセッサにあるリセット信号とは異なり、後
述するようにブレーク割り込み要求等の開発支援装置に
関する初期化用の信号である。リセット信号RAをLレ
ベルにすると、EXU15はブレーク割り込み処理状態
になり、ブレーク割り込み応答信号TPKを一旦Lレベ
ルにし、キャッシュトレース制御回路14を初期化す
る。
【0046】また、EXU15は、セレクト信号SLを
Lレベルに設定し、カウンタ16をクリアする。同時
に、セレクト信号SLのLレベル設定に応答してセレク
タ17は内部データバスIBSをタグ情報TAとして出
力する状態にする。その後、リセット信号RAをHレベ
ルにするとこのマイクロプロセッサ1はブレーク割り込
み処理を開始する。
【0047】次にマイクロプロセッサ1が、BCU11
の出力するアドレスAとステータスSとをアドレスバス
10とステータス用バス21を経由して外部回路に対し
出力する。これにより、外部のメモリからデータバス9
を経由してブレーク割り込み処理用のプログラムフェッ
チを開始する。フェッチされた命令コードは、内部命令
コード用データバスIB1を経由してIDU13へ送ら
れ、IDU13は命令を解析する。次に、IDU13は
内部命令コード用データバスIB2を経由してEXU1
5へ命令コードを送り、EXU15はこの命令を実行す
る。
【0048】次に、EXU15がブレーク割り込み終了
用の専用命令を実行すると、セレクト信号SLがHレベ
ルになり、カウンタ16に対するクリア要求を解除す
る。また、これと同時にセレクタ17は、セレクト信号
SLのHレベルに応答して、カウンタ出力Nをタグ情報
出力TAとして出力できる状態になる。以後、本来のユ
ーザプログラム実行を開始する。
【0049】マイクロプロセッサ1は、前述したブレー
ク割り込み処理用のプログラムフェッチと同様に、予め
設定されたプログラムカウンタの値に基づいてアドレス
バス10にアドレスAを、ステータス用バス21にステ
ータスSをそれぞれ出力する。これらアドレスA,ステ
ータスSの内容に基づき、外部のメモリからユーザプロ
グラムの命令をフェッチする。このサイクル中に、BC
U11はカウンタ16をカウントアップするためにカウ
ンタ用のクロックCKNに1パルスの信号を送り、カウ
ンタ出力Nを”0”から”1”にカウントアップした値
を出力する。この値Nはセレクタ17を経由してタグ情
報TAとして外部に出力される。
【0050】次に、マイクロプロセッサ1の内部では、
フェッチした命令コードをデータバス9を経由してBC
U11へ読み込む。BCU11では、命令コードにカウ
ンタ出力Nをタグ情報TAとして付加する。
【0051】この命令コードと付加されたタグ情報TA
を、内部命令コード用データバスIB1と内部タグ情報
TAIとを経由して命令キャッシュ12とIDU13と
に送る。命令キャッシュ12は、命令コードと付加タグ
情報TAとを再度同一アドレスからの読み込み動作が発
生するまで保存する。ただし、命令キャッシュ12の内
容の更新が発生した場合は、この命令コードと付加タグ
情報TAは存在しなくなるため、1度フラッシュされた
命令を再度外部メモリから読み込む場合、タグ情報TA
は更新前の値と異る新しい値になる。IDU13は命令
コードとタグ情報TAとを分離し、命令コードをEXU
15へ内部命令コード用データバスIB2を経由して送
る。また、タグ情報TAをタグ情報TBとしてキャッシ
ュトレース制御回路14へ送ると同時に、タグ情報書き
込み制御信号CTにより書き込み要求を行う。キャッシ
ュトレース制御回路14は、図3に示すようにFIFO
141を記憶素子として持っており、書き込み順に記憶
する。この一連の動作を反復することにより、タグ情報
TBを順次格納して行く。
【0052】この時、BCU11は、命令の読み込み毎
にカウンタ16のカウントアップ用のクロックCKNを
1パルス送る。
【0053】これにより、タグ情報TBは外部へのフェ
ッチサイクルの発生毎にインクリメントされる。また、
この反復動作中に、命令キャッシュ12に命令コードと
タグ情報TAが予め格納されていれば、外部のメモリか
らでは無く、この命令キャッシュ12からこれら命令コ
ードとタグ情報TAをIDU13に送られる。
【0054】次に、このキャッシュトレース制御回路1
4からのタグ情報TBの読み出し手順について説明する
と、まず、トレースアナライザ3は、マイクロプロセッ
サ1に対して、ブレーク割り込み要求信号対応のリセッ
ト信号Rを出力してブレーク割り込み要求を行う。EX
U15は、ブレーク割り込み要求を受け付けると、リセ
ット信号RAの要求の受け付け動作と同様に、セレクト
信号SLをLレベルに、ブレーク割り込み応答信号TP
Kを一旦Lレベルに設定する。同時に、セレクト信号S
LのLレベル設定に応答してセレクタ17は内部データ
バスIBSのデータをタグ情報TAとして出力する状態
にする。キャッシュトレース制御回路14は、タグ情報
読み出し信号RDENのレベルの制御に応答して、内部
データバスIBSにタグ情報TBを順次出力する。セレ
クタ17はこのタグ情報TBを外部に出力する。この読
み出し後、再度ユーザプログラムの実行対応の処理を行
えば、タグ情報TBのキャッシュトレース制御回路14
への書き込み可能状態に切り変えることができる。
【0055】次に、再度図1及び図2を参照して本実施
の形態の開発支援装置全体の動作について詳述すると、
本実施の形態の開発支援装置は、パソコン5をホストと
した一般的な開発支援装置の形態を持っている。パソコ
ン5からシステム制御バス23と、システムデータバス
24を経由してトレースアナライザ3に対して制御を行
う。まず、リアルタイムトレースを行う場合、パソコン
5からトレースアナライザ3に対してリアルタイムトレ
ース可能な状態に設定を行う。
【0056】トレースアナライザ3は、マイクロプロセ
ッサ1に対して、リセット信号RAを供給して内部回路
の初期化を行なう。それと同時に、トレースメモリ4を
書き込み状態にするため、トレースメモリアドレスAT
と、トレースメモリのWE,OE,CS各信号を制御す
ることにより書き込み制御を行う。
【0057】本実施の形態では、クロック毎にバスの状
態をトレースメモリ4に書き込み、かつ、トレースメモ
リアドレスATは、リアルタイムトレースを開始した時
点からクロック毎にインクリメントする方式を用いる。
これによりトレースメモリ4には、データバス9,アド
レスバス10,ステータス用バス21,タグ情報TAの
状態をクロック毎に書き込むことが可能となる。
【0058】パソコン5からパソコン5のメモリ上に存
在する専用のプログラムであるデバッガにより、トレー
スアナライザ3のリセット信号RをHレベルに設定する
と、マイクロプロセッサ1は、ブレーク割り込み処理状
態になるため、特定領域のプログラムフェッチを開始す
る。これにより、ブレーク割り込み処理用プログラムが
実行される。このブレーク割り込み処理プログラムによ
り、デバッガとのコミニケーションがトレースアナライ
ザ3を通して可能となる。この一般的な手法によりパソ
コン5からブレーク割り込み処理を終了させる要求を行
うと、ブレーク割り込み処理プログラムは、ブレーク割
り込み終了用の専用命令を実行する。
【0059】これにより、今度はユーザプログラム実行
状態になり、予めブレーク割り込み処理中に、デバッガ
により書き換えられたプログラムカウンタが示すアドレ
スから命令フェッチを開始する。この結果、トレースメ
モリ4に、リアルタイムにトレース結果が格納される。
【0060】次にトレースを終了させ、トレースメモリ
4とマイクロプロセッサ1からトレース結果の読み出し
を行なおうとした場合、デバッガからのブレーク割り込
み要求信号すなわちリセット信号Rをアクティブにす
る。
【0061】マイクロプロセッサ1は、リセット信号R
のブレーク要求を受け付けるとブレーク割り込み処理を
開始する。詳細に付いては上述した通りであるが、ここ
でリセット信号RAによるブレーク割り込み処理に入る
場合と、リセット信号Rのブレーク割り込み要求による
処理の場合との差異について述べる。リセット信号Rの
ブレーク割り込み要求による処理は一般的イベントブレ
ーク処理であり、命令の実行に同期してブレーク割り込
みを発生させ、ブレーク割り込み処理からユーザプログ
ラム処理を再開する場合に容易にする目的で使用され
る。一方、リセット信号RAによるブレーク割り込み処
理は開発支援装置のハードウェアそのものの初期化で、
最初の状態を決めることが目的であるため特に命令の実
行に同期したブレーク割り込み要求ではない。
【0062】上記処理によりブレーク割り込み処理が開
始されると、デバッガの制御により、トレースアナライ
ザ3は、データバス9,アドレスバス10,ステータス
用バス21をマイクロプロセッサ1の各対応のバスと切
り離すため、システムデータバス24を経由してゲート
制御信号G1〜G4をHレベルにする。これによってバ
ッファ7A〜7Dはシステムデータバス24にトレース
メモリ4のデータバス9Aを接続する。これでマイクロ
プロセッサ1からの読み出しの準備が整う。
【0063】トレースメモリ4の内容を読み出すため、
パソコン5はシステム制御バス23を経由してトレース
メモリアドレスATをトレースメモリ4の読み出し対象
のアドレスを送る。これと同時にトレースアナライザ3
はトレースメモリのWE,OE,CS各信号を読み出し
状態にする。これによりデータバス9AにデータDが出
力される。
【0064】本実施の形態ではシステムデータの幅がト
レースメモリのデータ幅と同一または大きい構成を持つ
ため、1フレーム分のデータを一度で読み出すことが可
能となる。
【0065】この一連の動作を反復しトレースメモリ4
のデータと、マイクロプロセッサ1からのタグ情報TA
とをパソコン5上のメモリに読み出し、専用プログラム
により上述した処理フローによるタグ情報と関連アドレ
ス,データの並べ変えを行い、ディスプレイ上に表示す
る。
【0066】図3及び本実施の形態のキャッシュトレー
ス制御回路14の動作をタイムチャートで示す図6を参
照すると、このキャッシュトレース制御回路14は上述
したように、記憶素子としてFIFO141を備え、基
本的にはFIFOの非同期系のアクセス方式が可能な構
成を持つ。マイクロプロセッサ1に供給するクロック周
波数と同一周波数のクロックCKを常に供給し、書き込
み時には、タグ情報書き込み制御信号CTを1クロック
の間Hレベルにすることによりタグ情報TBのFIFO
141への書き込みを行う。
【0067】次に、読み出す場合、タグ情報読み出し制
御信号RDENを1クロック間HレベルにするとFIF
O141からタグ情報TBが1つ読み出される。この一
連の動作を反復することですべての内容の読み/書きが
可能となる。
【0068】次に、本発明の第2の実施の形態を特徴づ
けるキャッシュトレース制御回路14Aをブロックで示
す図7を参照すると、この図に示す本実施の形態のキャ
ッシュトレース制御回路14Aの前述の第1の実施の形
態との相違点は、記憶素子としてFIFOの代わりにS
RAM142を備え、その周辺回路として、カウンタ1
43と、論理回路G1〜G5と、インバータI1とを備
えることである。
【0069】次に、図7及び本実施の形態のキャッシュ
トレース制御回路14Aの動作をタイムチャートで示す
図8を参照して、最初にタグ情報の書き込みについて説
明すると、まず、ブレーク割り込み応答信号TPKをH
レベルにする。次に、リセット信号RAをLレベルにす
ると、カウンタ143にAND回路G4はクリア信号C
LRをLレベルとしカウンタ143をクリアする。次
に、リセット信号RAをHレベルにすると、カウンタ1
43にAND回路G4はクリア信号CLRをHレベルと
しカウンタ143のクリア状態を解除する。この時のカ
ウンタ143のカウント値NTは”0”になっている。
次に予め、クロックCKをインバータI1で反転して反
転クロックCKBを生成する。カウント値NTをSRA
M142のアドレス端子に供給する。次に、タグ情報T
BをSRAM142のデータ端子に供給する。
【0070】このタイミングと同時にSRAM142へ
の書き込みのためにタグ情報読み出し信号RDENをL
レベル、タグ情報書き込み制御信号CTを1クロック間
Hレベルにし、クロックCKを供給する。すると、NA
ND回路G2はリード制御信号REをLレベルに、NA
ND回路G3はライト制御信号WEを1クロック間にH
レベルからLレベル,LレベルからHレベルに、CS信
号CSをNOR回路G5を経由して1クロック間Lレベ
ルにそれぞれ設定する。これによりタグ情報TBがSR
AM142に書き込まれ、NAND回路G3は出力のラ
イト制御信号WEをAND回路G1を経由してカウンタ
143へ送ると、カウンタ143はカウントアップし
て”1”になる。この動作を反復することによりタグ情
報TBが入力順に蓄積される。
【0071】次に、タグ情報の読み出し手順について説
明すると、まず、リセット信号RAをHレベルとし、マ
イクロプロセッサ1がブレーク割り込み要求を受け付け
ると、ブレーク割り込み応答信号TPKがLレベルにな
る。これによりAND回路G4はLレベルのクリア信号
CLRを出力しカウンタ143をクリアする。次にブレ
ーク割り込み応答信号TPKがHレベルになると、AN
D回路G4はクリア信号CLRをHレベルとしてカウン
タ143のクリア要求を解除する。この時カウンタ14
3は”0”でありSRAM142にアドレス信号として
カウント値NTを供給する。この時クロックCK及び反
転クロックCKBを供給する。このタイミングと同時に
タグ情報読み出し信号RDENを1クロック間Hレベル
に、タグ情報書き込み信号CTを1クロック間Lレベル
にする。これにより、NOR回路G5はSRAM142
に供給するCS信号を1クロック間Lレベルにし、NA
ND回路G3はライト制御信号WEをHレベルに、NA
ND回路G2はリード制御信号OEをHレベルからLレ
ベルに,LレベルからHレベルにそれぞれ設定する。こ
れにより、命令コード用のデータバスIBSにタグ情報
TBを1個出力する。NAND回路G2は出力のリード
制御信号OEをAND回路G1を経由してカウンタ14
3に送ると、カウンタ143はカウントアップして”
1”になる。この動作を反復することにより、SRAM
142全てのデータを読み出すことが可能となる。
【0072】以上述べたように本発明は、命令キャッシ
ュ12の有効化状態で、ユーザプログラムを実行しても
マイクロプロセッサのリアルタイム性を失うことが無く
デバッグのためのトレースの実行が可能である。
【0073】その理由は、外部メモリ又は、命令キャッ
シュ12から読み出された命令コードに付加したタグ情
報を、内部のEXU15で実行直前に格納するからであ
る。なお、この動作は従来のパイプライン機能を持った
プロセッサの内部動作とは独立すなわち並行な動作とな
るため、マイクロプロセッサが持つ本来の高速性も失な
われることがない。またタグ情報は命令の実行順に格納
されているためユーザプログラムを実行し終わった後、
解析のためゆっくり読み出すことが可能であるためリア
ルタイム性も失なわれない。
【0074】また、マイクロプロセッサの高速性を考慮
してトレース専用の端子を設ける場合、本発明では上記
専用端子の本数を最小にすることが可能である。
【0075】その理由は、従来の方法はプロセッサのメ
モリ空間を前提に考ると、論理あるいは物理アドレスを
外部に出力しているため空間の表現可能な数量分のアド
レス端子を必要とするのに対し、本発明では以下のよう
に命令フェッチサイクル発生毎に各命令にタグ情報を付
加し、このタグ情報のデータ短縮機能を利用することに
より所要専用端子数を削減できるからである。
【0076】例えば4Gのメモリ空間を持てば、従来の
技術ではアドレスで表現するため専用端子が32本必要
であった。
【0077】しかし、本発明では命令のフェッチサイク
ル発生毎に各命令毎にタグ情報を付けている。これによ
り、以下の各点を考慮すると端子数を減少させることが
可能となる。
【0078】まず、第1に、プログラム領域が4Gバイ
ト全ての領域には無く、データ等を扱うワーク領域が存
在することである。
【0079】第2に、実行命令単位でタグ情報を付加す
るため、命令長が長いものが多く存在する命令を有する
プロセッサには有効であることである。最近のRISC
チップでも最低2バイトか4バイトが一般的であり、仮
に4バイト長の命令1個でタグ1個使うとすると1/4
のビットで済む。換言すればメモリ空間を現わすアドレ
スに比べると、4倍の表現が可能となる。
【0080】第3に、命令キャッシュ12のヒット率が
高くなる様なプログラムであれば、このプログラムを一
旦命令キャッシュ12の内部に読み込むと、内部の命令
コードの更新が無い限り外部に命令フェッチサイクルが
再度発生しないため、上記ヒット率とタグ情報のデータ
のビット幅が対応するということである。
【0081】第4に、プログラム実行に関するトレース
結果の保存は、各開発支援装置の持つトレースメモリの
容量により、トレース履歴を保存する範囲に制限が生じ
ることからである。
【0082】
【発明の効果】以上説明したように、本発明のマイクロ
プロセッサ及びその開発支援装置は、タグ情報生成手段
と、タグ情報保持手段と、タグ情報出力手段とを備え、
命令コードに付加したタグ情報を内部のEXUでの実行
直前に格納するので、命令キャッシュの有効化状態で、
ユーザプログラム実行してもマイクロプロセッサのリア
ルタイム性は失われることが無く実行が可能であるとい
う効果がある。
【0083】また、また、マイクロプロセッサの高速性
を考慮してトレース専用の端子を設ける場合、命令フェ
ッチサイクル発生毎に各命令にタグ情報を付加し、この
タグ情報のデータ短縮機能を利用することにより所要専
用端子数を最小にすることが可能であるという効果があ
る。
【図面の簡単な説明】
【図1】本発明のマイクロプロセッサ及びその開発支援
装置の第1の実施の形態を示すブロック図である。
【図2】本実施の形態のマイクロプロセッサの構成を示
すブロック図である。
【図3】本実施の形態を特徴ずけるキャッシュトレース
制御回路の構成を示すブロック図である。
【図4】本実施の形態のマイクロプロセッサ及びその開
発支援装置における動作の一例を示すフローチャートで
ある。
【図5】本実施の形態のマイクロプロセッサと開発支援
装置のトレース実行時のトレースデータの一例を示す図
である。
【図6】本実施の形態の動作の一例を示すタイムチャー
トである。
【図7】本発明のマイクロプロセッサ及びその開発支援
装置の第2の実施の形態を特徴ずけるキャッシュトレー
ス制御回路の構成を示すブロック図である。
【図8】本実施の形態の動作の一例を示すタイムチャー
トである。
【図9】従来の第1のマイクロプロセッサの一例を示す
ブロック図である。
【図10】従来の第2のマイクロプロセッサの一例を示
すブロック図である。
【図11】従来の第3のマイクロプロセッサ及びその開
発支援装置の一例を示すブロック図である。
【符号の説明】
1 マイクロプロセッサ 2 メインメモリ 3 トレースアナライザ 4 トレースメモリ 5 パソコン 6 発振器 7A〜7G バッファ 8 トレーサ 9 データバス 10 アドレスバス 11 BCU 12 命令キャッシュ 13 IDU 14,14A キャッシュトレース制御回路 15 EXU 16 カウンタ 17 セレクタ 18 内部アドレスバス 19 内部データバス 21 ステータスバス 141 FIFO 142 SRAM 143 カウンタ G1〜G5 論理回路 I1 インバータ

Claims (8)

    【特許請求の範囲】
  1. 【請求項1】 命令コードの供給に応答してこの命令コ
    ードの指示を実行する命令実行ユニットと、外部メモリ
    から読み出した第1の命令を保持し第2の命令を出力す
    る命令用キャッシュメモリと、前記第1又は第2の命令
    をデコードして前記命令コードを出力する命令デコード
    ユニットと、関連のバスを制御するバス制御ユニットと
    を備えるマイクロプロセッサにおいて、 前記第1の命令の読み出しサイクルに応じてこの第1の
    命令対応の整理番号である第1のタグ情報を順次生成す
    るタグ情報生成手段と、 前記第1のタグ情報を順次保持し読み出し時に前記第1
    のタグ情報対応の第2のタグ情報を出力するタグ情報保
    持手段と、 前記第1のタグ情報又は前記第2のタグ情報を外部に出
    力するタグ情報出力手段とを備えることを特徴とするマ
    イクロプロセッサ。
  2. 【請求項2】 前記命令用キャッシュメモリが、前記第
    1の命令と前記第1のタグ情報とを保持することを特徴
    とする請求項1記載のマイクロプロセッサ。
  3. 【請求項3】 前記命令デコードユニットが、前記第1
    又は第2の命令をデコードして前記命令コードを生成す
    るとともに前記第1のタグ情報を分離して前記タグ情報
    保持手段に供給することを特徴とする請求項1記載のマ
    イクロプロセッサ。
  4. 【請求項4】 前記タグ情報保持手段が、前記第1及び
    第2の命令のうちの前記命令実行ユニットが実行した方
    の命令の前記第1のタグ情報を順次保持することをを特
    徴とする請求項1記載のマイクロプロセッサ。
  5. 【請求項5】 前記タグ情報保持手段が、前記第1のタ
    グ情報を保持するFIFOを備え、 前記バス制御ユニットに供給される第1のクロックと同
    一周波数の第2のクロックに同期して前記第1のタグ情
    報の書き込み及び前記第2のタグ情報の読み出しを行う
    ことを特徴とする請求項1記載のマイクロプロセッサ。
  6. 【請求項6】 前記タグ情報保持手段が、前記第1のタ
    グ情報を保持するSRAMと、前記SRAMのアドレス
    生成手段と、前記SRAMの書き込み読み込み手段とを
    備え、 前記バス制御ユニットに供給される第1のクロックと同
    一周波数の第2のクロックに同期して前記第1のタグ情
    報の書き込み及び前記第2のタグ情報の読み出しを行う
    ことをを特徴とする請求項1記載のマイクロプロセッ
    サ。
  7. 【請求項7】 請求項1記載のマイクロプロセッサと、
    命令を保持している外部メモリと、前記マイクロプロセ
    ッサが実行する命令のアドレスを逐一記憶するトレース
    メモリと、全体を制御するホストコンピュータとを備え
    るマイクロプロセッサの開発支援装置において、 前記トレースメモリが、前記外部メモリから命令の読出
    し時にこの命令対応の整理番号である第1のタグ情報と
    アドレスバスの状態とステータスバスの状態とデータバ
    スの状態とを順次保持することを特徴とするマイクロプ
    ロセッサの開発支援装置。
  8. 【請求項8】 前記ホストコンピュータが、前記マイク
    ロプロセッサの出力した第2のタグ情報に対応する前記
    第1のタグ情報と前記第1のタグ情報対応の前記アドレ
    スバスの状態と前記ステータスバスの状態と前記データ
    バスの状態とを読み出し並べ変えて前記マイクロプロセ
    ッサが実際に実行した命令の実行手順を再現することを
    特徴とする請求項7のマイクロプロセッサの開発支援装
    置。
JP04578797A 1997-02-28 1997-02-28 マイクロプロセッサ及びその開発支援装置 Expired - Fee Related JP3349911B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP04578797A JP3349911B2 (ja) 1997-02-28 1997-02-28 マイクロプロセッサ及びその開発支援装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP04578797A JP3349911B2 (ja) 1997-02-28 1997-02-28 マイクロプロセッサ及びその開発支援装置

Publications (2)

Publication Number Publication Date
JPH10240570A true JPH10240570A (ja) 1998-09-11
JP3349911B2 JP3349911B2 (ja) 2002-11-25

Family

ID=12729002

Family Applications (1)

Application Number Title Priority Date Filing Date
JP04578797A Expired - Fee Related JP3349911B2 (ja) 1997-02-28 1997-02-28 マイクロプロセッサ及びその開発支援装置

Country Status (1)

Country Link
JP (1) JP3349911B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6453410B1 (en) 1998-07-03 2002-09-17 Nec Corporation Computer system having a cache memory and a tracing function
JP2008293061A (ja) * 2007-05-22 2008-12-04 Nec Electronics Corp 半導体装置、及び半導体装置のデバッグ方法
US7647532B2 (en) 2004-10-04 2010-01-12 Nec Electronics Corporation Trace controller, microprocessor, and trace control method

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6453410B1 (en) 1998-07-03 2002-09-17 Nec Corporation Computer system having a cache memory and a tracing function
US7647532B2 (en) 2004-10-04 2010-01-12 Nec Electronics Corporation Trace controller, microprocessor, and trace control method
JP2008293061A (ja) * 2007-05-22 2008-12-04 Nec Electronics Corp 半導体装置、及び半導体装置のデバッグ方法

Also Published As

Publication number Publication date
JP3349911B2 (ja) 2002-11-25

Similar Documents

Publication Publication Date Title
JP4225851B2 (ja) データ処理装置用トレース要素生成システム
KR100439781B1 (ko) 데이터프로세서와그동작방법,그디버깅동작실행방법및그중단점값수정방법
JP2746549B2 (ja) コンピュータシステム及びその動作方法
US20040030962A1 (en) Generation of trace elements within a data processing apparatus
US20030154028A1 (en) Tracing multiple data access instructions
US6848044B2 (en) Circuits and methods for recovering link stack data upon branch instruction mis-speculation
JP2002244881A (ja) 順序外データのトレーシング
JPH09114697A (ja) データプロセッサ
JPH09218803A (ja) データプロセッサ
JPH09128265A (ja) データ処理システム
US6760835B1 (en) Instruction branch mispredict streaming
JP2693678B2 (ja) データ処理装置
JP2001147831A (ja) デバッグ情報転送インターフェース
JPH05204709A (ja) プロセッサ
JP3397230B2 (ja) デバッグシステム
JP2002163127A (ja) トレース制御回路
JPH09218801A (ja) データプロセッサ
JP3349911B2 (ja) マイクロプロセッサ及びその開発支援装置
JP3088129B2 (ja) マイクロプロセッサ
GB2389931A (en) Selective generation of trace elements
JPH10275092A (ja) マイクロプロセッサのトレース情報出力方法
EP0415351A2 (en) Data processor for processing instruction after conditional branch instruction at high speed
JP2760228B2 (ja) キャッシュメモリを内蔵したマイクロプロセッサとそのトレースアナライザ
JP2883465B2 (ja) 電子計算機
JP2806841B2 (ja) プロセッサ制御装置およびその制御方法

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20020820

LAPS Cancellation because of no payment of annual fees