JPH0736736A - マイクロプロセッサ - Google Patents

マイクロプロセッサ

Info

Publication number
JPH0736736A
JPH0736736A JP5178921A JP17892193A JPH0736736A JP H0736736 A JPH0736736 A JP H0736736A JP 5178921 A JP5178921 A JP 5178921A JP 17892193 A JP17892193 A JP 17892193A JP H0736736 A JPH0736736 A JP H0736736A
Authority
JP
Japan
Prior art keywords
instruction
address
instructions
signal
fetched
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
JP5178921A
Other languages
English (en)
Inventor
Shingo Kojima
伸吾 小嶋
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
NEC Corp
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 Corp filed Critical NEC Corp
Priority to JP5178921A priority Critical patent/JPH0736736A/ja
Publication of JPH0736736A publication Critical patent/JPH0736736A/ja
Pending legal-status Critical Current

Links

Landscapes

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

Abstract

(57)【要約】 【目的】 分岐命令があった場合にもその動作の確認を
行うことができるマイクロプロセッサを実現すること。 【構成】 命令コードのアドレスを出力するアドレス指
定手段と、n×mビットの幅を持ち、n個のmビット長
命令を同時に取り込むことができる命令コード入力手段
と、前記命令コード入力手段により同時に取り込まれた
n個の命令のうちの一つを特定する分岐先命令通知手段
を有し、実行しているプログラムの分岐先命令を取り込
む場合に、分岐先の命令アドレスを前記アドレス指定手
段と前記分岐先命令通知手段により外部に通知すること
を特徴とする。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は情報処理装置に関し、特
にトレース装置により動作が監視されるマイクロプロセ
ッサに関する。
【0002】
【従来の技術】マイクロプロセッサなどの情報処理装置
のプログラムをデバッグする際、そのデバッグ効率を上
げるため、プログラムの実行をトレースする装置を用い
ることがある。これは、マイクロプロセッサが命令を実
行する場合には必ずその命令を主記憶から取り込むこと
(命令フェッチ)を利用し、主記憶に対するアドレス指
定と命令取り込みのステータス信号を監視して命令の動
的な実行順序を出力するものである(ただし、キャッシ
ュメモリを使ったシステムの場合は命令アドレスが主記
憶に対して出力されない場合もあるため、ここではキャ
ッシュメモリを使わないシステムを考える)。
【0003】また、主記憶から取り込む効率を上げるた
め、一度に複数の命令をフェッチしてマイクロプロセッ
サの性能を向上させる手法がある。例えば、データバス
が32ビットのマイクロプロセッサの場合、一つの命令
の長さを32ビットにすると一回の命令フェッチで一つ
の命令しか取り込めないが、命令の長さを16ビットに
すれば一回の命令フェッチで二つの命令を取り込めるこ
とになり、命令フェッチの効率が上がる。
【0004】ところが、前記の命令フェッチを使ったト
レース装置をこのような一度に複数の命令をフェッチす
るプロセッサに応用しようとした場合には問題点が発生
する。
【0005】この問題点について従来例を用いて以下に
説明する。
【0006】図4は従来のマイクロプロセッサにトレー
ス装置を接続した例を示す図である。図中、401はマ
イクロプロセッサ(以下MPUと呼ぶ)、402は主記
隠装置(以下メモリと呼ぶ)、403はトレース装置、
404は30ビット幅のアドレスバス、405は32ビ
ット幅のデータバス、406はMPU401がバスサイ
クルを発行していることを示すBUSCY信号、407
はMPU401が出力しているバスサイクルの種類を示
すBUSST信号、408はMPU401が出力してい
るバスサイクルが読み出しであるか書き込みであるかを
示すR/W信号である。
【0007】MPU401がメモリ402に格納されて
いる命令やデータを読み出し、もしくは書き込むため
に、アドレスバス404に目的のアドレスを乗せ、メモ
リ402がデータバス405に乗せた読み出しデータを
MPU401に取り込み、またはメモリ402に書き込
むデータをデータバス405に乗せることを、バスサイ
クルを発行するという。
【0008】本従来例のシステムではBUSCY信号4
06が1を出力している期間、バスサイクルが有効であ
る。
【0009】また、発行しているバスサイクルが命令フ
ェッチのためのものかデータアクセスのためのものかを
区別するためにBUSCY信号406に同期して変化す
るBUSST信号407を用いる。BUSST信号40
7が0の場合はそのバスサイクルがデータアクセスのた
めのものであることを示し、1の場合は命令フェッチの
ためのものであることを示す。
【0010】さらに、バスサイクルがデータアクセスの
場合に読み出しか書き込みかを区別するため、MPU4
01はR/W信号408を出力する。R/W信号408
が0の場合は書き込みを示し、1の場合は読み出しを示
す。
【0011】本従来例のシステムは1バイトごとにアド
レスが割り振られるバイトアドレッシングであり、32
ビットのアドレスによる4Gバイトのアドレス空間を持
つ。ただし、データバス405は32ビット幅あるた
め、一度に4バイトのデータをアクセスすることにな
る。よって32ビットアドレスの下位2ビットはメモリ
402に対して指定する必要がないため、アドレスバス
404は30ビット幅となっている。以降、4バイトの
データをひとまとめにしたものをワードデータと呼ぶ。
また、[0000 0004H],[1234 5678H],[FFFF FFFC
H]など、4の倍数になるアドレスをワード境界アドレ
ス、[9876 5432H],[0000 ABCEH]など、アドレスが
4の倍数+2になるアドレスをハーフワード境界アドレ
スと呼ぶ。
【0012】MPU401が出力する命令は16ビット
固定長である。これに対し、データバス405は32ビ
ット幅であるため、1回の命令フェッチで二つの命令を
同時にMPU401に取り込むことができる。
【0013】トレース装置403はMPU401が出力
するアドレスバス404,BUSCY信号406,BU
SST信号407を監視し、命令フェッチバスサイクル
の有無から命令がどのような順序でMPU401により
実行されているかを検出する付加装置である。
【0014】このようなマイクロプロセッサシステム
が、図5に示すプログラムを実行した場合の動作を図6
および図7に示す。
【0015】まず、図5のプログラムについて説明す
る。
【0016】このプログラムはレジスタの内容により複
数の分岐先へ分岐させるマルチウェイブランチの例であ
る。
【0017】あらかじめレジスタr1に入れられた0か
ら3までの値により、[0000 0000H]番地,[0000 000
2H]番地,[0000 0004H]番地,[0000 0006H]番地の
いずれかに分岐する。
【0018】まず[0000 0100H]番地の[mov #2,r2]
命令により、レジスタr2に定数2が代入される。続い
て[0000 0102H]番地の[mul r1,r2]命令により、レ
ジスタr1とレジスタr2の乗算が行われ、結果がレジ
スタr2に格納される。ここではレジスタr2は定数2
であるため、レジスタr1の内容が二倍されてレジスタ
r2に入ることになる。
【0019】この乗算により分岐先のアドレスが計算さ
れ、[0000 0104H]番地の[jmp [r2]]命令により、レ
ジスタr2が示すアドレスへ分岐する。レジスタr1の
内容が0だった場合には[0000 0000H]番地,1だった
場合には[0000 0002H]番地,というように複数の分岐
先への分岐が一つの分岐命令で実現される。
【0020】このプログラムを図4に示した装置で実行
する場合、一つの命令フェッチに二つの命令が含まれる
ため、分岐が発生した場合に外部からのバスサイクル観
測だけでは分岐先としてどちらの命令が実行されたかを
特定できないという問題点がある。この問題点について
図6および図7を用いて以下に説明する。
【0021】外部から観測できる命令フェッチバスサイ
クルと、内部の命令実行とを時間順に並べて図示したも
のが図6と図7である。
【0022】まず、レジスタr1の値が0だった場合の
動作を図6に示す。
【0023】図5に示したプログラムにおける[0000 0
100H]番地の[mov #2,r2]命令を実行するため、まず
MPU401は、[0000 0100H]番地から[0000 0103
H]番地までの4バイトを命令フェッチバスサイクルを
発行してメモリ402から取り込む(501)。一つの
命令の長さは16ビットであるため、この4バイトには
二つ分の命令が含まれている。よってMPU401の内
部では[0000 0100H]番地の[mov #2,r2]命令と[000
0 0102H]番地の[mul r1,r2]命令が続けて実行される
(502,503)。図6に示すレジスタr1の初期値
は0であるため、乗算後のレジスタr2の値も0であ
る。
【0024】次に、MPU401は[0000 0104H]番地
の[jmp [r2]]命令を実行するため、[0000 0104H]番
地から[0000 0107H]番地までの4バイトをフェッチす
る(504)。この4バイトにも二つの命令が含まれて
いるが、一つ目の命令が無条件分岐命令であるため、二
つ目のnop命令は実行されることなく読み捨てられ
る。
【0025】レジスタr2が0であるため、[jmp [r
2]]命令の実行によりプログラムの実行は[0000 0000
H]番地へ分岐する(505)。MPU401は[0000
0000H]番地にある[命令A]を実行するため、[0000
0000H]番地から[0000 0003H]番地までの4バイトを
フェッチする(506)。[命令A]と[命令B]が連
続して実行された後(507,508)、再び命令フェ
ッチにより二命令を取り込み、連続して実行する、とい
う動作を繰り返す。
【0026】次にレジスタr1の内容が1だった場合の
動作を図7に示す。
【0027】[0000 0104H]番地の[jmp [r2]]命令を
実行するところまでは図6と同様であるが、レジスタn
の初期値が1であるため、乗算結果であるレジスタr2
の値は2となっており、[jmp [r2]]命令の分岐先は
[0000 0002H]番地になる。
【0028】MPU401は[0000 0002H]番地にある
[命令B]を実行するため、[命令B]が格納されてい
るアドレスをフェッチしようとする。ところがMPU4
01は32ビットバスで二命令を同時に取り込むため、
[命令B]は[命令A]と共に[0000 0000H]番地から
[0000 0003H]番地までの4バイトに対する命令フェッ
チで取り込まれ、[命令A]は読み捨てられることにな
る(516)。
【0029】この命令フェッチの後[命令B]が実行さ
れ(518)、以降は図6と同様に命令フェッチにより
二命令を取り込み、連続して実行する、という動作を繰
り返す。
【0030】ここでトレース装置403による命令実行
トレースに問題が発生する。図6と図7からわかるよう
に、これら二つの例では内部動作が異なるにも関わらず
命令フェッチバスサイクルはまったく同じように発行さ
れている。トレース装置403は命令フェッチバスサイ
クルに基づいて実行命令の順序を決めるため、図6また
は図7のバスサイクル列だけでは[0000 0000H]番地に
ある[命令A]が実行されたか否かが判定できない。
【0031】
【発明が解決しようとする課題】命令フェッチバスサイ
クルを外部から監視することにより命令実行順序を出力
するトレース装置を、1バスサイクルで複数の命令を取
り込むマイクロプロセッサに用いた場合には、取り込ま
れた命令をすべて実行するのか一部を実行するのかをバ
スサイクルだけでは判断できないため、分岐命令の正確
なトレースが不可能になってしまい、マイクロプロセッ
サの動作の監視をトレース装置が正確に行うことができ
ないよいう問題点がある。
【0032】本発明は上述したような従来の技術が有す
る問題点に鑑みてなされたものであって、分岐命令があ
った場合にもその動作の確認を行うことができるマイク
ロプロセッサを実現することを目的とする。
【0033】
【課題を解決するための手段】本発明のマイクロプロセ
ッサは、命令コードのアドレスを出力するアドレス指定
手段と、n×mビットの幅を持ち、n個のmビット長命
令を同時に取り込むことができる命令コード入力手段
と、前記コード入力手段により同時に取り込まれたn個
の命令のうちの一つを特定する分岐先命令通知手段を有
している。
【0034】
【作用】命令フェッチにより読み出された複数の命令の
うち、どの命令に対して分岐したかを通知するための信
号がマイクロプロセッサからトレース装置に出力される
ので、1バスサイクルで複数の命令を取り込むマイクロ
プロセッサの命令トレースが可能となる。
【0035】
【実施例】次に、本発明の実施例について図面を参照し
て説明する。
【0036】図1は本発明の一実施例のマイクロプロセ
ッサにトレース装置を接続した例を示す図である。
【0037】図中、101はマイクロプロセッサ(以下
MPUと呼ぶ)、102は主記憶装置(以下メモリと呼
ぶ)、103はトレース装置、104は30ビット幅の
アドレスバス、105は32ビット幅のデータバス、1
06はMPU401がバスサイクルを発行していること
を示すBUSCY信号、107はMPU401が発行し
ているバスサイクルの種類を示すBUSST信号、10
8はMPU401が発行しているバスサイクルが読み出
しであるか書き込みであるかを示すR/W信号、109
はハーフワード境界に分岐が発生したことをトレース装
置に通知するHWJMP信号である。
【0038】メモリ102、アドレスバス104、デー
タバス105、BUSCY信号106、BUSSST信
号107およびR/W信号108までの構成要素はそれ
ぞれ図4に示した従来例におけるメモリ402、アドレ
スバス404、データバス405、BUSCY信号40
6、BUSSST信号407およびR/W信号408と
同様であるため、説明を省略する。
【0039】本実施例におけるMPU101が出力する
HWJMP信号109は、分岐により命令フェッチが発
生した場合に分岐先により異なるものであり、その分岐
先がワード境界である場合には0、分岐先がハーフワー
ド境界である場合には1が出力され、その出力タイミン
グはBUSCY信号106と同じタイミングで出力され
る。
【0040】このようなマイクロプロセッサシステム
が、従来例の場合と同様に図5に示すプログラムを実行
した場合の動作を図2および図3に示す。
【0041】図5のプログラムについては、従来例で引
用したものと同じであり、従来例の項の中で説明してい
るため、ここでは説明を省略する。
【0042】このプログラムを図1に示した装置で実行
する場合、ハーフワード境界への分岐を示すHWJMP
信号109により、トレース装置103はフェッチされ
たワード中に含まれる二つの命令のうち、どちらに分岐
したかを特定することができる。
【0043】外部から観測できる命令フェッチバスサイ
クルと、レジスタr1の値が0および1である場合の内
部の命令実行とを時間順に並べてそれぞれ図示したもの
が図2および図3である。
【0044】まず、レジスタr1の値が0だった場合の
動作を図2を参照して説明する。
【0045】図5のプログラムにおける[0000 0100H]
番地の[mov #2,r2]命令を実行するため、まずMPU
101は[0000 0100H]番地から[0000 0103H]番地ま
での4バイトを命令フェッチバスサイクルを発行してメ
モリ102から取り込む(301)。一つの命令の長さ
は16ビットであるため、この4バイトには二つ分の命
令が含まれている。よってMPU101の内部では[00
00 0100H]番地の[mov #2,r2]命令と[0000 0102H]
番地の[mul r1,r2]命令が続けて実行される(30
2,303)。図2に示した例ではレジスタr2の初期
値は0であるため、乗算後のレジスタr2の値も0であ
る。
【0046】次に、MPU101は[0000 0104H]番地
の[jmp [r2]]命令を実行するため、[0000 0104H]番
地から[0000 0107H]番地までの4バイトをフェッチす
る(304)。この4バイトにも二つの命令が含まれて
いるが、一つ目のの命令が無条件分岐命令であるため、
二つ目のnop命令は実行されることなく読み捨てられ
る。
【0047】この後、レジスタr2が0であるため、
[jmp [r2]]命令の実行によりプログラムの実行は[00
00 0000H]番地へ分岐する(305)。MPU101は
[00000000H]番地にある[命令A]を実行するため、
[0000 0000H]番地から[00000003H]番地までの4バ
イトをフェッチする(306)。
【0048】ここで、[jmp [r2]]命令による分岐先が
ハーフワード境界ではなく、ワード境界であるため、H
WJMP信号109はBUSCY信号106,BUSS
T信号107と同じタイミングで0を出力する(30
9)。この出力がアドレスバス104に乗ったフェッチ
アドレスと共にトレース装置103に入力され、トレー
ス装置103はその命令フェッチにより取り込まれた命
令がすべて実行されることを認識する。
【0049】MPU101では[命令A]と[命令B]
が連続して実行された後(307,308)、再び命令
フェッチにより二命令を取り込み、連続して実行すると
いう動作を繰り返す。
【0050】次に、レジスタrの内容が1だった場合の
動作を図3を参照して説明する。
【0051】[0000 0104H]番地の[jmp [r2]]命令を
実行するところまでは図2に示した場合と同様である
が、レジスタr2の初期値が1であるため、乗算結果で
あるレジスタ越の値は2となっており、[jmp [r2]]命
令の分岐先は[0000 0002H]番地になる。
【0052】MPU101は、[0000 0002H]番地にあ
る[命令B]を実行するため、[命令B]が格納されて
いるアドレスをフェッチしようとする。ところがMPU
101は32ビットバスで二命令を同時に取り込むた
め、[命令B]は[命令A]と共に[0000 0000H]番地
から[0000 0003H]番地までの4バイトに対する命令フ
ェッチで取り込まれ、[命令A]は読み捨てられること
になる(316)。
【0053】ここで、[jmp [r2]]命令による分岐先が
ハーフワード境界であるため、HWJMP信号109は
BUSCY信号106,BUSST信号107と同じタ
イミングで1を出力する(319)。この出力がアドレ
スバス104に乗ったフェッチアドレスと共にトレース
装置103に入力され、トレース装置103はその命令
フェッチにより取り込まれた命令のうち、[0000 0000
H]番地にある[命令A]はMPU101において実行
されないことを認識する。
【0054】上記の命令フェッチの後、[命令B]が実
行され(318)、以降は図2と同様に命令フェッチに
より二命令を取り込み、連続して実行する、という動作
を繰り返す。
【0055】このように、HWJMP信号109を追加
することにより、バスサイクルのみではまったく同じ動
きとなるワード境界への分岐とハーフワード境界への分
岐を、 トレース装置103が区別できるようになり、
正確な命令トレースが可能になる。
【0056】なお、上述した実施例では、アドレスを3
2ビットのものとし、命令が16ビット固定長のもので
あるため、HWJMP信号109に要求される出力内容
は分岐先がワード境界領域か、または、ハーフワード境
界領域であるかの二通りとなり、増加する信号線の数は
1本である。
【0057】また、アドレスが64ビットのものであ
り、命令が16ビット固定長のものでであっても、HW
JMP信号109を出力するために増加する信号線の数
は2本であり、本発明を実施した場合に装置を構成する
ためにかかる負担は極めて低いものとなっている。
【0058】
【発明の効果】本発明は以上示したように構成されてい
るので、以下に記載するような効果を奏する。
【0059】一バスサイクルで複数の命令を取り込むマ
イクロプロセッサの命令実行をトレースする場合に、取
り込まれた命令をすべて実行するのか一部を実行するの
かを、HWJMP信号をバスサイクル情報と共に出力さ
れるため、動作を確認するトレース装置が正確に分岐命
令をトレースすることができ、精度の高い動作確認を行
うことができる効果がある。
【図面の簡単な説明】
【図1】トレース装置が接続された本発明の一実施例の
構成を示す図である。
【図2】図1に示した実施例の動作を示す図である。
【図3】図1に示した実施例の動作を示す図である。
【図4】トレース装置が接続された従来例の構成を示す
図である。
【図5】図4に示した装置が実行するプログラムの一例
を示す図である。
【図6】従来例の動作を示す図である。
【図7】従来例の動作を示す図である。
【符号の説明】
101 MPU 102 メモリ 103 トレース装置 104 アドレスバス 105 データバス 106 BUSCY信号 107 BUSST信号 108 R/W信号 109 HWJMP信号
─────────────────────────────────────────────────────
【手続補正書】
【提出日】平成5年11月10日
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】特許請求の範囲
【補正方法】変更
【補正内容】
【特許請求の範囲】

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 命令コードのアドレスを出力するアドレ
    ス指定手段と、 n×mビットの幅を持ち、n個のmビット長命令を同時
    に取り込むことができる命令コード入力手段と、 前記命令コード入力手段により同時に取り込まれたn個
    の命令のうちの一つを特定する分岐先命令通知手段を有
    し、 実行しているプログラムの分岐先命令を取り込む場合
    に、分岐先の命令アドレスを前記アドレス指定手段と前
    記分岐先命令通知手段により外部に通知することを特徴
    とするマイクロプロセッサ。
JP5178921A 1993-07-20 1993-07-20 マイクロプロセッサ Pending JPH0736736A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP5178921A JPH0736736A (ja) 1993-07-20 1993-07-20 マイクロプロセッサ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5178921A JPH0736736A (ja) 1993-07-20 1993-07-20 マイクロプロセッサ

Publications (1)

Publication Number Publication Date
JPH0736736A true JPH0736736A (ja) 1995-02-07

Family

ID=16056980

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5178921A Pending JPH0736736A (ja) 1993-07-20 1993-07-20 マイクロプロセッサ

Country Status (1)

Country Link
JP (1) JPH0736736A (ja)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03260843A (ja) * 1990-03-12 1991-11-20 Fujitsu Ltd 実行確認装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03260843A (ja) * 1990-03-12 1991-11-20 Fujitsu Ltd 実行確認装置

Similar Documents

Publication Publication Date Title
US9032185B2 (en) Active memory command engine and method
US5481734A (en) Data processor having 2n bits width data bus for context switching function
JPS5886648A (ja) トレ−ス装置
JPH0527971A (ja) 情報処理装置
JPS623337A (ja) デ−タ・ストア方式
KR20200123799A (ko) 디바이스를 디버깅할 때 메타데이터에 액세스하기 위한 장치 및 방법
US8583897B2 (en) Register file with circuitry for setting register entries to a predetermined value
US6233675B1 (en) Facility to allow fast execution of and, or, and test instructions
JPH06295243A (ja) データ処理装置
JPH0736736A (ja) マイクロプロセッサ
JP2581565B2 (ja) ガード付命令を実行するデータ処理装置
JP2915944B2 (ja) カバレージ測定方法及びマイクロコンピュータ
US6289439B1 (en) Method, device and microprocessor for performing an XOR clear without executing an XOR instruction
JP3523407B2 (ja) 情報処理装置
JPS58195255A (ja) デ−タ処理装置
JP2629479B2 (ja) 情報処理装置
JPH03252731A (ja) マイクロプロセッサ
JPS6286442A (ja) デ−タ処理装置
JPH0412855B2 (ja)
JPH0795288B2 (ja) マイクロコンピュータ
JPH0546389A (ja) 並列処理装置
JPS60193046A (ja) 命令例外検出方式
JPH1055289A (ja) デバッグ情報生成回路、およびそれを用いた情報処理装置
JP2002024012A (ja) マイクロプロセッサ
JPH01188941A (ja) プログラム実行制御方式