JP2760228B2 - キャッシュメモリを内蔵したマイクロプロセッサとそのトレースアナライザ - Google Patents

キャッシュメモリを内蔵したマイクロプロセッサとそのトレースアナライザ

Info

Publication number
JP2760228B2
JP2760228B2 JP4233199A JP23319992A JP2760228B2 JP 2760228 B2 JP2760228 B2 JP 2760228B2 JP 4233199 A JP4233199 A JP 4233199A JP 23319992 A JP23319992 A JP 23319992A JP 2760228 B2 JP2760228 B2 JP 2760228B2
Authority
JP
Japan
Prior art keywords
microprocessor
cache memory
trace
instruction
built
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.)
Expired - Lifetime
Application number
JP4233199A
Other languages
English (en)
Other versions
JPH05224989A (ja
Inventor
宏明 鈴木
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 Corp
Original Assignee
Nippon Electric 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 Nippon Electric Co Ltd filed Critical Nippon Electric Co Ltd
Priority to JP4233199A priority Critical patent/JP2760228B2/ja
Publication of JPH05224989A publication Critical patent/JPH05224989A/ja
Application granted granted Critical
Publication of JP2760228B2 publication Critical patent/JP2760228B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)
  • Debugging And Monitoring (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、キャッシュメモリを内
蔵したマイクロプロセッサとその動作履歴を解析するト
レースアナライザに関する。
【0002】
【従来の技術】1970年代初頭において実用化された
マイクロプロセッサは、命令を解読して演算・制御動作
を実行する演算装置であり、シリコンチップ上に実現さ
れる。その後のLSI技術の発展および市場ニーズの広
範化・高度化に伴い、高性能化の一途を辿り、今日では
語長が32ビットの機種が商品化されている。また、レ
ジスタ,演算回路および制御回路等必須の構成要素の他
に、キャッシュメモリを内蔵したものも少なくない。キ
ャッシュメモリは、周知のようにコンピュータの内部メ
モリに対する高速度と大容量という二律背反的な要求を
満たすため、中央処理装置の内部に設けられた高速小容
量のメモリである。
【0003】このように、マイクロプロセッサといえど
も、ここまで複雑化してくると、それらのデバッグが問
題化してくる。この種のデバッグのための手法として
は、トレース,トラップ,シングルステップ等が知られ
ているが、総体的なデバッグにはトレースが適してい
る。トレースは周知のように、デバッグ対象となるプロ
グラムを実行する中央処理装置あるいはプロセッサの外
部にトレースアナライザとトレースメモリを設けて行
う。トレースアナライザは、マイクロプロセッサが実行
する命令のアドレスを逐一トレースメモリに記憶してい
き、後にその記憶内容を解析することによりデバッグを
可能化する。
【0004】しかしながら、格別の手段を講じなければ
キャッシュメモリが動作中は、メモリアクセスはマイク
ロプロセッサの内部に留まるため、トレースアナライザ
はトレースに必要なデータを直接検知できない。したが
って、従来は、通常、キャッシュメモリを無効化してト
レースを行なうことが多かった。
【0005】ところが、キャッシュメモリを無効化した
場合には、有効である場合に比べて、命令実行クロッ
ク,命令実行タイミング等の点でマイクロプロセッサの
動作が大きく異なっており、正確なデバッグが実現でき
ないという問題点がある。
【0006】そこで、キャッシュメモリを有効な状態に
保ったままトレースを可能にするため、従来のキャッシ
ュメモリ内蔵型のマイクロプロセッサは、命令の実行開
始,分岐命令の発生および分岐先のアドレスが静的に指
定可能か否かをそれぞれ外部に表示する端子を備えてい
る。そして、従来のトレースアナライザは、予めプログ
ラムを静的に解析した実行フローを保持しており、上述
の各端子から供給される信号を手掛りに実行フローに基
づき動的な命令処理順序を組み立てる構成になってい
る。
【0007】以上のような構成を採用すれば、従来のキ
ャッシュメモリ内蔵型のマイクロプロセッサは、キャッ
シュメモリが無効あるいは有効の状態に固定されている
場合のトレースは実現できる。しかし、近年、マイクロ
プロセッサの導入が活発化したロボット制御やゲームの
分野におけるように、キャッシュメモリを動的に有効化
又は無効化するプログラムに対しては、プログラム実行
状態の解析方法を動的に切り替えなければならない。
【0008】このため、従来のキャッシュメモリ内蔵型
のマイクロプロセッサの多くは、キャッシュメモリの有
効化又は無効化を外部から設定するための端子と、命令
実行結果又はマイクロプロセッサ内部の状態によってキ
ャッシュメモリの有効化又は無効化をセットできる内部
レジスタとを設け、両者の複合条件でキャッシュメモリ
の有効化を定めるようにしている。
【0009】かかるマイクロプロセッサの動作履歴を解
析するための従来のトレースアナライザは、上述の内部
レジスタをソフトウェアによって読み出し、この値と外
部からの設定信号とから、キャッシュメモリが有効化さ
れているか否かを判定するためのハードウェアを必要と
する。
【0010】
【発明が解決しようとする課題】上述した従来のマイク
ロプロセッサ及びそのトレースアナライザは、内部レジ
スタを読んで、キャッシュメモリが有効化されているか
否かを判定するためのハードウェアを必要とするが、こ
のようなハードウェアは大規模なものになるとともに、
上記動作履歴の解析のリアルタイム性を保証できず、し
たがってこのようなリアルタイム性を生命とするような
装置におけるプログラムのトレースには不向きという問
題点がある。本発明の目的は、キャッシュメモリの有効
化と無効化の別を即時に判定し、それによってリアルタ
イム性が要求されるプログラムの正確なデバッグを容易
に実現するトレースアナライザを提供することにある。
【0011】
【課題を解決するたの手段】本発明のキャッシュメモ
リ内蔵型マイクロプロセッサは、キャッシュメモリが有
効化されているか否かを外部に表示するモード表示端子
を備える。この端子の信号はキャッシュメモリが有効化
されているか否かを検出するモード検出機構によって導
かれる。モード検出機構は、キャッシュメモリ有効化端
子を介して外部から設定され、また命令実行結果やマイ
クロプロセッサ内部の状態によって設定される。好まし
くは、本発明のキャッシュメモリ内蔵型マイクロプロセ
ッサは、上述の構成要素に加えて、更に、命令の実行開
始,分岐の発生及び分岐先アドレスが静的に決定可能か
否かをそれぞれ外部に表示する端子を有している。ま
た、本発明のトレースアナライザは、キャッシュメモリ
が有効化されているか否かに即応してマイクロプロセッ
サのトレース方法を変更することを特徴とする。好まし
くは、本発明のトレースアナライザは、予めプログラム
を静的に解析した実行フローを保持しており、キャッシ
ュメモリが有効化されると、マイクロプロセッサからの
命令の実行開始,分岐発生及び分岐先のアドレスが静的
に決定可能か否かをそれぞれ示す信号を手掛りにして実
行フローに基づき命令実行順序を動的に組み立ててトレ
ースする。また、分岐先アドレスが静的に決定できない
分岐の場合には、マイクロプロセッサに割込みを発生す
る。さらに好ましくは、本発明のトレースアナライザ
は、キャッシュメモリが有効化されるとトレースを中止
する。
【0012】
【実施例】図1に示した本発明の第1のトレースシステ
ムは、マイクロプロセッサ101,メインメモリ10
2,トレースアナライザ103及びトレースメモリ10
4から構成され、これがアドレスバス,データバス及び
ステータスバスで接続されている。また、マイクロプロ
セッサ101からトレースアナライザ103には、モー
ド表示信号105,命令実行開始信号106,分岐命令
発生信号107及び割込分岐発生信号108が供給され
ている。
【0013】図2に示したマイクロプロセッサ201
は、図1のマイクロプロセッサ101の詳細を示し、命
令実行ユニット202,キャッシュメモリ203,内部
レジスタ204,モード検出機構205,キャッシュ有
効化端子206及びモード表示端子207を有する。
【0014】図1に示した命令実行開始信号106,分
岐命令発生信号107及び割込分岐発生信号108は、
図面の繁雑化を回避するために図2においては図示を省
略している。
【0015】メインメモリ102は、デバッグの対象と
なるプログラムを格納しており、メインメモリ102内
の一部のデータ(命令群)は、アドレスが連続した一定
領域(ブロック)単位にキャッシュメモリ203にロー
ドされている。キャッシュメモリ203の有効化の状態
において命令実行ユニット202がメモリアクセスを行
うときはキャッシュヒットすればキャッシュメモリ20
3,キャッシュミスヒットすればメインメモリ102を
それぞれアクセスする。そして、キャッシュミスヒット
時にメインメモリ102から読み出した命令を含む命令
群をキャッシュメモリ203にロードする。
【0016】命令実行ユニット202は、読み出してき
た命令を実行し、その結果によって内部レジスタ204
にキャッスメモリ203の有効化又は無効化をセットす
る。もっとも、内部レジスタ204は、マイクロプロセ
ッサ202の他の内部状態によってもキャッシュメモリ
203の有効化又は無効化がセットされ得る。
【0017】内部レジスタ204の出力はモード検出機
構205に導かれている。モード検出機構205には、
キャッシュ活性化端子206から供給される外部からの
キャッシュメモリ203に対する有効化又は無効化化の
指示も入力している。モード検出機構205の出力はキ
ャッシュメモリ203及びモード表示端子207に導か
れ、直ちに外部に表示される。モード表示端子207上
の信号は、キャッシュメモリ203が有効化されている
か否かを示すモード表示信号105としてトレースアナ
ライザ103に供給されている。トレースアナライザ1
03は、モード表示信号105に応答してトレース方法
を決定し、プログラムの実行履歴をトレースメモリ10
4に記録していく。
【0018】デバッグの開始に先立って、トレースアナ
ライザ103はメインメモリ102内のプログラムを読
み込んで解析し、プログラムの静的な実行フローを得て
保持しておく。この実行フローは、具体的にはプログラ
ムカウンタの値に対応するメインメモリ102のアドレ
スや、分岐時の分岐先アドレスから成るが、命令実行の
結果により分岐先アドレスが決るような動的な分岐命令
にまで対処できるものではない。
【0019】図1に示したトレースアナライザ103の
トレース動作を示すフローチャートである図3を参照し
て、本実施例の動作を説明する。
【0020】(1)キャッシュメモリが有効でない場合 マイクロプロセッサ101はプログラムに従って命令を
実行するときに、その命令のアドレスとステータス信号
をそれぞれアドレスバスとステータス信号に出力し、メ
インメモリ102はこのアドレスバス上のアドレスに対
応するデータ(命令)をデータバスに出力する。マイク
ロプロセッサ101はこのデータバス上のデータを読み
込んで命令を実行する。
【0021】トレースアナライザ103は、モード表示
信号105がキャッシュメモリ203の有効を表示して
いないので(図3のステップ301)、バスサイクルで
あり(ステップ302)、かつステータス信号が命令フ
ェッチである(ステップ303)ことを検知すると、ア
ドレスバス上のアドレスを観測し(ステップ304)、
トレースメモリ104に書き込む(ステップ305)こ
とにより命令のトレースを行なう。
【0022】(2)キャッシュメモリが有効である場合 この場合には、キャッシュヒットが発生すると、マイク
ロプロセッサ101はメインメモリ102にアクセスし
ないため、トレースアナライザ103はバスを観測する
ことによって命令処理の進行を示す情報を知ることがで
きない。また、キャッシュミスヒットが発生してメイン
メモリ102にアクセスしても、マイクロプロセッサ1
01はメインメモリ102からデータバスに読み出した
命令を直ちに実行するとは限らない。従って、トレース
アナライザ103は、以下のように、命令の種類に応じ
て、内蔵のプログラムカウンタ,前述の事前に得ている
実行フロー及び割込機構を使い分けることにより命令の
トレース方法を変更する。
【0023】(2.1)命令が分岐しない場合 命令実行ユニット202は、内蔵のプログラムカウンタ
の値に従ってキャッシュメモリ203を順次に読み出
し、命令を実行していく。プログラムカウンタの値に対
応するメインメモリ102のアドレスは、事前に得てい
るっ実行フローから知ることができる。このプログラム
カウンタの値は、命令実行ユニット202内のプログラ
ムカウンタの値と同一に保たれていることは勿論であ
る。
【0024】トレースアナライザ103は、モード表示
信号105と命令実行開始信号106が真(ステップ3
06)で、かつ分岐命令発生信号107が偽である(ス
テップ307)ことを検知すると、プログラムカウンタ
をインクリメント(ステップ308)し、上述のように
して得たアドレスをトレースメモリ104に書き込む
(ステップ309)ことにより命令のトレースを行なう
ことができる。
【0025】(2.2)命令が静的に決定できるアドレ
スに分岐する場合 命令が静的に決定できるとは、プログラムの解析による
その実行前に決定できることをいう。このようなアドレ
スにプログラムが分岐すると、処理の進行はそれまでの
プログラムカウンタの値とはかけ離れた値により行われ
る。従って、トレースアナライザ103は割込分岐発生
信号108が偽であることを検知すると(ステップ31
0)、前述した事前に得ている実行フロー中の分岐先ア
ドレスをプログラムカウンタに移送し(ステップ31
1)、トレースメモリ104に書き込む(ステップ31
2)ことにより命令のトレースを行なうことができる。
【0026】(2.3)命令が静的に決定できないアド
レスに分岐する場合 この場合には、トレースアナライザ103の内部には、
トレースすべきデータが存在しない。何故なら、事前に
得ている実行フローは、静的、すなわち予め分岐先アド
レスの判明している分岐命令にしか対応しないものであ
るからである。
【0027】トレースアナライザ103は、割込分岐発
生信号108が真であることを検知すると(ステップ3
10)、内蔵の割込機構によりマイクロプロセッサ10
1に割込みを発生する(ステップ313)。そして、マ
イクロプロセッサ101内のプログラムカウンタの値
を、自らのプログラムカウンタにストアし(ステップ3
14)、これに対応するメインメモリ102のアドレス
をトレースメモリ104に書き込む(ステップ315)
ことにより命令をトレースできる。この理解のために
は、割込分岐が発生すると、マイクロプロセッサ101
のプログラムカウンタには、割込み先アドレスが設定さ
れていることを想起すべきである。
【0028】以上に説明した4つの場合の各最終ステッ
プ305,309,312及び315は、すてべフロー
チャートの先頭であるステップ301に回帰しているこ
とに留意する必要がある。すなわち、ステップ301に
おいて改めてキャッシュメモリ102が有効か否かが問
われているので、トレースの方法が動的に変更され得る
という特徴を有する。
【0029】図4に示した本発明の第2のトレースシス
テムは、図1に示した第1のトレースシステムにおける
命令実行開始信号106,分岐命令発生信号107及び
割込分岐発生信号108を除去した構成となっている。
この結果、トレースアナライザ403は、キャッシュメ
モリの有効化が表示されたときにはトレースを中止する
ことになる。何故なら、トレースアナライザ403は、
キャッシュメモリが有効化されている場合のトレースに
必要な手掛となる情報を得られないからである。
【0030】従って、トレースアナライザ403はより
簡単な構成でよいことになり、トレースアナライザ10
3が有していたようなプログラムの事前解析機能等は不
要であり、図3のフローチャーもステップ301におい
て“Y” ならばステップ301に戻る。また、マイク
ロプロセッサ401のブロック図は、図2に示したもの
と共通である。
【0031】本実施例において、キャッシュメモリが有
効化されていない場合の動作は第1の実施例の動作と何
ら変るところがない。
【0032】キャッシュメモリが有効化されると、トレ
ースは中止され、有効化されなくなると再びトレースが
開始される。つまり、キャッシュメモリが有効化である
間のトレースを中断することにより、トレースアナライ
ザ403の簡単化を図るのである。
【0033】トレースを中断しても、中断の原因は明確
であるから、それから先のデバッグは比較的容易であ
る。これには、前述のトラップやシングルステップとい
った技法を用いてもよい。
【0034】
【発明の効果】上述のとおり、本発明によると、マイク
ロプロセッサとトレースアナライザの僅かな変更のみ
で、マイクロプロセッサで実行されるリアルタイム性の
あるプログラムの正確なデバッグが容易に行なえるとい
う効果がある。
【図面の簡単な説明】
【図1】キャッシュメモリ内蔵型マイクロプロセッサと
本発明の第1の実施例のトレースアナライザとで構成す
る第1のトレースシステムのブロック図である。
【図2】図1に示したマイクロプロセッサのブロック図
である。
【図3】図1に示したトレースアナライザの動作を説明
するフローチャートである。
【図4】キャッシュメモリ内蔵型マイクロプロセッサと
本発明の第2の実施例のトレースアナライザとで構成さ
れる第2のトレースシステムのブロック図である。
【符号の説明】
101,201,401 マイクロプロセッサ 102,402 メインメモリ 103,403 トレースアナライザ 104,404 トレースメモリ 202 命令実行ユニット 203 キャッシュメモリ 204 内部レジスタ 205 モード検出機構 206 キャッシュ活性化端子 207 モード表示端子

Claims (6)

    (57)【特許請求の範囲】
  1. 【請求項1】 命令実行結果や内部状態によって、内蔵
    するキャッシュメモリの有効化又は無効化が設定される
    内部レジスタと、前記内部レジスタの保持内容により前
    記キャッシュメモリが有効化されているか否かを検出す
    るモード検出機構と、該モード検出機構の出力を外部に
    表示するモード表示端子とを有することを特徴とするキ
    ャッシュメモリ内蔵型マイクロプロセッサ。
  2. 【請求項2】 前記モード検出機構に対して、外部から
    前記キャッシュメモリの有効化又は無効化を指示するた
    めのキャッシュ有効化端子を設けたことを特徴とする請
    求項1記載のキャッシュメモリ内蔵型マイクロプロセッ
    サ。
  3. 【請求項3】 命令の実行開始,分岐の発生及び分岐先
    アドレスが静的に決定可能か否かをそれぞれ外部に表示
    するための複数の端子を備えることを特徴とする請求項
    1記載のキャッシュメモリ内蔵型マイクロプロセッサ。
  4. 【請求項4】 前記モード表示端子上の信号に応答して
    前記マイクロプロセッサのトレースの方法を変更するこ
    とを特徴とする請求項1記載のマイクロプロセッサに対
    するトレースアナライザ。
  5. 【請求項5】 予めプログラムを静的に解析した実行フ
    ローと、前記分岐先アドレスが静的に決定できない分岐
    の場合に割込みを発生する機構とを有し、前記モード表
    示端子上の信号が前記キャッシュメモリの有効化を表示
    すると前記命令の実行開始,分岐の発生及び分岐先アド
    レスが静的に決定可能か否かの表示を手掛りにして前記
    実行フローに基づき、又は前記割込み機構により、命令
    実行順序を動的に組み立てて前記マイクロプロセッサの
    トレースを行うことを特徴とする請求項3記載のマイク
    ロプロセッサに対する請求項4記載のトレースアナライ
    ザ。
  6. 【請求項6】 前記モード表示端子上の信号が前記キャ
    ッシュメモリの有効化を表示すると、前記マイクロプロ
    セッサのトレースを中止することを特徴とする請求項1
    記載のマイクロプロセッサに対する請求項4記載のトレ
    ースアナライザ。
JP4233199A 1991-09-04 1992-09-01 キャッシュメモリを内蔵したマイクロプロセッサとそのトレースアナライザ Expired - Lifetime JP2760228B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP4233199A JP2760228B2 (ja) 1991-09-04 1992-09-01 キャッシュメモリを内蔵したマイクロプロセッサとそのトレースアナライザ

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP22324791 1991-09-04
JP3-223247 1991-09-04
JP4233199A JP2760228B2 (ja) 1991-09-04 1992-09-01 キャッシュメモリを内蔵したマイクロプロセッサとそのトレースアナライザ

Publications (2)

Publication Number Publication Date
JPH05224989A JPH05224989A (ja) 1993-09-03
JP2760228B2 true JP2760228B2 (ja) 1998-05-28

Family

ID=26525349

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4233199A Expired - Lifetime JP2760228B2 (ja) 1991-09-04 1992-09-01 キャッシュメモリを内蔵したマイクロプロセッサとそのトレースアナライザ

Country Status (1)

Country Link
JP (1) JP2760228B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3175757B2 (ja) * 1996-08-13 2001-06-11 日本電気株式会社 デバッグシステム
ES2167190B2 (es) * 1999-12-20 2003-04-01 Univ Catalunya Politecnica Unidad de construccion de trazas
JP5850732B2 (ja) 2011-12-14 2016-02-03 ルネサスエレクトロニクス株式会社 半導体装置及びその制御方法

Also Published As

Publication number Publication date
JPH05224989A (ja) 1993-09-03

Similar Documents

Publication Publication Date Title
US5345580A (en) Microprocessor device and emulator device thereof
US7533302B2 (en) Trace and debug method and system for a processor
US5751942A (en) Trace event detection during trace enable transitions
EP0530816A2 (en) Microprocessor with cache memory and trace analyzer therefor
KR970011214B1 (ko) 마이크로컴퓨터 개발 지원 장치
JP2760228B2 (ja) キャッシュメモリを内蔵したマイクロプロセッサとそのトレースアナライザ
JP3349911B2 (ja) マイクロプロセッサ及びその開発支援装置
JPS62197831A (ja) デ−タ処理装置
JP2563708B2 (ja) マイクロプロセッサ装置およびそれを用いたエミュレータ装置
JP3000779B2 (ja) プロセッサの実行状態の情報収集方法
JPH0528002A (ja) マイクロプロセツサ
JPH07152598A (ja) インサーキット・エミュレータ
JP2666737B2 (ja) トレースメモリ内蔵マイクロプロセッサおよびトレース方法
JP3590289B2 (ja) イベント検出回路
KR0155931B1 (ko) 외부에서 억세스 가능한 온칩 캐시 메모리 시스템
JPH11102306A (ja) エミュレータ
JPS6358552A (ja) マイクロプロセサ
JP2711159B2 (ja) プロセッサ動作状態調整方法
JPH02207345A (ja) マイクロプロセッサの命令実行過程のサンプル方法
JPH03252731A (ja) マイクロプロセッサ
JPH0795288B2 (ja) マイクロコンピュータ
JPH07219808A (ja) エミュレータのトレース方法およびエミュレータ
JP2000132536A (ja) コンピュータ
JP2002091795A (ja) キャッシュ制御装置
JPH05189267A (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: 19980217