JPH01297729A - マイクロコンピュータ - Google Patents

マイクロコンピュータ

Info

Publication number
JPH01297729A
JPH01297729A JP12884188A JP12884188A JPH01297729A JP H01297729 A JPH01297729 A JP H01297729A JP 12884188 A JP12884188 A JP 12884188A JP 12884188 A JP12884188 A JP 12884188A JP H01297729 A JPH01297729 A JP H01297729A
Authority
JP
Japan
Prior art keywords
instruction
trap
microcomputer
instruction code
address
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
JP12884188A
Other languages
English (en)
Other versions
JP2637770B2 (ja
Inventor
Hiromichi Takahashi
高橋 浩道
Katsumi Miura
勝己 三浦
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 JP63128841A priority Critical patent/JP2637770B2/ja
Publication of JPH01297729A publication Critical patent/JPH01297729A/ja
Application granted granted Critical
Publication of JP2637770B2 publication Critical patent/JP2637770B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Executing Machine-Instructions (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、エミュレーションの実行中に、所定の命令コ
ードを入力すると割り込みを発生するマイクロコンピュ
ータに関する。
〔従来の技術〕
マイクロコンピュータ(以下マイコンと記す)の性能は
著しく向上しており、使用されるマイコンも、より上位
のマイコンへと移行している。
しかし上位のマイコンを使用する場合、従来使用してき
た下位のマイコン用のソフトウェアがそのまま利用でき
るかどうかという点が1つの問題点となってくる。一般
に上位のマイコンは下位のマイコンとはアーキテクチャ
が異なるため、下位のマイコン用に開発されたソフトウ
ェアをそのまま上位のマイコンで動作させることができ
ない。
そのため、上位のマイコンに下位のマイコンの命令を実
行する機能(以下エミュレーション機能と記す)がない
場合は、下位のマイコン用のソフトウェアを上位のマイ
コン用に移植する作業が必要となるが、費用および工数
などの制限により、移植すべきソフトウェア量が多いほ
ど作業は困難になる。
よって、上位のマイコンにエミュレーション機能をもた
せることは、従来のソフトウェア資産の有効活用および
ソフトウェア移植に要する費用、工数の削減という点で
非常に有効である。
ところで、エミュレーション機能をもつマイコンの中に
は、ハードウェアの制限のため、エミュレーションを実
施しているモード(以下エミュレーションモードと記す
)で実行不可能な命令ができる場合、このような命令を
処理するためエミュレーションモードで割り込み(以下
トラップと記す)を起こし、マイコン本来の命令を実行
するモード(以下ネイティブモードと記す)に制御を移
し、ネイティブモードのトラップ処理ルーチンにおいて
、ユーザが適当な処理を行うマイコンがある。
このような従来のマイコンの一例について以降に説明す
る。
最初に従来のマイコンの構成、マイコンと外部メモリと
の接続および外部メモリ内のプログラム配置の一例につ
いて第11図から第13図を用いて説明する。
第11図は従来のマイコンの構成およびマイコンと外部
メモリとの接続を示したブロック図である。
マイコン1100は種々の演算処理を行う演算処理部]
101、命令キュー1103、命令キュー1103から
命令コードが出力されるキューバス1108、キューパ
ス]108の命令コードを入力解読し種々の制御信号を
演算処理部1 ]、 01 、アドレスバス端子110
4.データバス端子1105および外部メモ!1111
7に出力したり、演算処理部1101からの情報を入力
したりする制御部]]02、外部アドレスバス1115
ト内部アドレスバス1106とを接続するアドレスバス
端子1104、外部データバス1116と内部データバ
ス110γとを接続するデータバス端子1105から構
成されており、マイコン1100と外部メモリ1117
とは外部アドレスバス1115、外部データバス111
6を介して接続されている。
演算処理部1101は演算部1109、プロクラムの実
行状況を示す16ビツトのレジスタであるプログラムス
テータスワード(以下PSWと記す)1110.汎用レ
ジスタ群1111、スタックエリアのポインタを指す1
6ビツトレジスタであるスタックポインタ(以下SPと
記す)1112、マイコン1100が実行しようとして
いるプログラムメモリアドレスのオフセット情報を保持
スる16ビツトカウンタであるプログラムカウンタ(以
下PCと記す)1113で構成されておりそれぞれが内
部バス1114を介して接続されている。
なおPSWI 110の最上位ビットは、マイコン11
00の動作しているモードを表すステータスフラグ(以
下MDフラグと記す)であり、マイコン1100はMD
フラグが「O」のときエミュレーションモード、「1」
のときネイティブモードで動作するものとする。(第1
2図参照)ところで、エミュレーション機能を持つマイ
コンにおいては、ハードウェアの増大を防ぐ意味でネイ
ティブモードのレジスタをそのままエミュレーションモ
ードで用いることが多い。こうした場合、通常は上位の
マイコンの方が下位のマイコンよりもレジスタ数が多い
ので、エミュレーションモードにおいては未使用のレジ
スタができる。
本マイコンの場合汎用レジスタ群1111中のXRレジ
スタが未使用レジスタであるとする。
ナオ、マイコン1 ’100のエミュレーションモード
の命令のうち、1バイト目で動作が決まりかつ1バイト
で構成される命令のうちトラップとなる命令のコードの
1つをr57HJ、通常に実行される命令(以下1バイ
ト定義命令と記す)コードの1つをr20HJ とする
。なお「20H」は汎用レジスタ群1111中のXレジ
スタの値をインクリメントする命令のコードとする。
次に、外部メモリ1117内のプログラム配置の一例を
示す。
外部メモリ1117のプログラム配置例を第13図に示
す。
外部メモリ117内は■ベクタ領域 ■プログラムエリ
ア ■スタックエリア ■命令コード解析ルーチン ■
命令別処理ルーチンで構成されている。
以下に各領域について説明する。
■ ベクタ領域はエミュレーション中のトラップなどに
よる割り込み処理ルーチンの開始アドレスが格納されて
いるエリアで、1ベクタは2バイト (lワード)で構
成され、エミュレーション中のトラップなどの割り込み
が発生すると、制御部1102の制御により、割り込み
要因に対応したベクタの内容がPC1113にロードさ
れる。エミュレーション中のトラップのベクタ番号は1
6 (ベクタアドレスはro 020H」番地)に設定
されているものとする。
なおベクタ領域はr0000HJ〜「0OFFHJ番地
に配置しである。
■ プログラムエリアはネイティブモードのプログラム
エリアとエミュレーションモードのプログラムエリアと
に分かれている。ネイティブモードのプログラムエリア
はエミュレーションモードのプログラムを実行するため
に必要な、レジスタ等の初期化を行うためのプログラム
を、エミュレーションモードのプログラムエリアはマイ
コン1100がエミュレーションヲ行つ下位のマイコン
のプログラムをそれぞれ格納しである領域である。なお
、プログラムエリアはr0200HJ〜r05FFHJ
番地に配置してあり、ネイティブモードのプログラムエ
リアをr0200HJ〜r03FFHJ番地に、エミュ
レーションモードのプログラムエリアをr0400HJ
〜r04FFHJ番地にそれぞれ配置しである。
■ スタックエリアは、エミュレーション中にトラップ
が発生した場合にプログラム実行中のPSWおよびPC
の情報をセーブすることなどに使用される。スタックエ
リアはr2000HJ〜r2FFEHJ番地に配置しで
ある。
■ マイコン1100がトラップを起こした後に実行さ
れる命令コード解析ルーチンでは、トラップを起こした
命令コード部を認識しその命令コード値を利用して命令
別処理ルーチンに分岐する処理が行われる。命令コード
解析ルーチンはr3200HJ〜r32FFHJ番地に
配置しである。
■ 命令別処理ルーチンでは、トラップを起こした命令
に対してユーザが行う適当なソフトウェア処理、トラッ
プから復帰するために必要なPC補正およびトラップか
らの復帰命令(以下リターン命令と記す)による処理が
行われる。リターン命令はこのルーチンの最後の処理に
なるように配置しである。命令別処理ルーチンはr57
00HJ番地〜r57FFHJ番地に配置しである。
マタエミュレーションモードのプログラムエリア内には
1バイト定義命令のコード「20H」がr0400HJ
番地に、1バイト目で動作が決まりかつ1バイトで構成
される命令でトラップとなる命令コードr57HJがr
o 425H」番地にそれぞれ配置しである。
以降にマイコン1100の動作について第14図、第1
5図を用いて説明する。
まずリセットにより、マイコン1100のPC1112
はr0200HJに、PSW1110中のMDフラグは
「1」に初期化され、マイコン1100はr0200H
J番地以降のネイティブモードのプログラムを実行して
いくものとする。
ネイティブモードのプログラムにおいてはエミュレーシ
ョンモードのプログラムで使用されるスタックポインタ
5P1112の値をr2F’FEHJに初期化する処理
等が行われた後、MDフラグを「0」にし、PC111
3にr0400HJヲ格納し、エミュレーションモード
のプログラムの先頭アドレスの命令コードをフェッチす
るための処理が行われる。
以降にエミュレーションモードにおける1バイト定義命
令のコードr20HJ、1バイト目で命令の動作が決ま
りかつ1バイトで構成されトラップとなる命令のコード
r57HJが入力された場合におけるマイコン1100
の動作についてそれぞれ説明する。
〔1〕 最初に1バイト定義命令コード「20H」を処
理する場合の本マイコンの動作について説明する。
まず制御部1102は、外部メモ!J1117からPC
1113の指すアドレスr0400H」番地の命令コー
ドr20Hjを命令キュー1]03に取り込み、PCl
、113の値をインクリメントする制御信号を発生する
次に命令キュー1103からr20HJがキューパス1
108に出力されて、制御部1102に入力された場合
、制御部1102は演算処理部1101に、Xレジスタ
の値を内部バス1114に出力し、演算処理部1101
に入力後、演算部1109において1を加え、そして演
算結果を内部バス1115に出力して再度Xレジスタに
、命令実行状況の情報をP S WIIIOにそれぞれ
格納するという一連の処理を行う制御信号を出力する。
〔2〕 次に1バイト目でトラップとなる命令コードr
57HJに対する本マイコンの動作について説明する。
まず制御部1102は、外部メモリ1l17からPCI
 113の指すアドレスr0425H」番地の命令コー
ドr57HJを命令キュー1103に取り込み、PC1
113の値をインクリメントする制御信号を発生する。
次に命令キュー1103からr27HJがキューパス1
108に出力され、制御部1102に入力された場合、
制御部1102は、1バイト目でトラップとなる命令コ
ードが入力されたときの同制御部1]02の制御フロー
すなわち第14図に示した処理を行う制御信号を演算処
理部1101に対して出力する。
■ すなわち、制御部1102はSPl、112の値r
2FFEHJを内部バス1114に出力して、演算部1
109に入力後、2を減じ、演算結果のr2.FFcH
Jを内部バス1]14に出力し、5P1112に格納す
るよう制御する。
■ 制御部1102は、5P1112の値を内部バス1
114.内部アドレスバス1 ]、 06 、アドレス
端子1104を通して外部アドレスバス1115に、ま
た5PWI 110の値を内部バス1114.内部デー
タバス1107.データバス端子1105を通して外部
データバス1116にそれぞれ出力し、外部メモリ11
17のアドレスr2FFcHJにPSW11]、0の値
を書き込むよう制御する。
■ ■の処理で更新された5P1112の値[2FFC
HJを内部バス1114に出力して、演算部1109に
入力後、2を減じ演算結果のr2FFAHJを内部バス
1114に出力し、5P1112に格納するよう制御す
る。
■ 5P1112の値を内部バス1114、内部アドレ
スバス1106、アドレスバス端子1104を通して外
部アドレスバス1115に出力する。
また同時にr0425HJ0425HJ地の命令コード
をフェッチするためr0426HJ に更新されていた
PC1113の値をデクリメントして、トラップを起こ
す命令の先頭アドレスr0425HJを内部バス111
4.内部データバス1107.データバス端子1105
を通して外部データバス1116に出力し、外部メモリ
1117のアドレスr2FFAHJにPC1113の値
を書き込むよう制御する。
(■〜■の処理で外部メモリ1117のスタックエリア
は、第5図の状態になる。) ■ PSWI 110中のMDフラグを「1」にしてネ
イティブモードの遷移する。
■ ベクタ16(IOH)を参照し分岐する。すなわち
外部メモリ1117のアドレスr0020H」番地の値
「3200HJを外部データバス1116、データバス
端子1105、内部データバス1107、内部バス11
14を通してPC1113に書き込み、PC1113の
指す外部メモリ1117のアドレスr3200HJ番地
の命令コードをフェッチするよう制御する。
以上に示した処理により命令コード解析ルーチンの先頭
アドレスに分岐する。
次に、第15図に処理フローを示した命令コード解析ル
ーチンおよび命令別処理ルーチン、すなわちトラップ動
作の次にマイコン1100が実行するプログラム処理に
ついて説明する。
そのうちの(a)〜(d)の命令コード解析ルーチンに
おいては (1)前記■の制御によって更新された5P112が指
す外部メモリ1117のアドレスI 2. F FAH
Jの内容(トラップを起こした命令の先頭アドレスro
 425HJ)をXRレジスタに転送する。(メモリリ
ード1回目) そして、XRレジスタの値が指す外部メモリ1117の
アドレスr0425HJのデータr57HJをXRレジ
スタに転送する。(メモリリード2回目) (2)XRレジスタの値を8ビツト左シフトし、これを
命令別処理ルーチンの先頭アドレスとして分岐する。
処理が行われる。続いて第15図(e)〜(g)の命令
別処理ルーチンでは、 (3)トラップを起こした命令に対応したユーザによる
適当なソフトウェア処理を行う。
(4)命令別処理ルーチンの最後の処理であるリターン
命令の実行によりトラップをおこした命令の次のアドレ
スの命令を実行するために、5P1112が指す外部メ
モリ]117のアドレス値r2FFAHJの内容すなわ
ちトラップを起こした命令の先頭アドレス値r0425
HJをインクリメントする。
(5)  リターン命令を実行する。
処理が行なわれる。
〔発明が解決しようとする課題〕
前述した従来のマイコンでは、命令別処理ルーチンの中
で、トラップを起こす個々の命令に対してユーザが行う
適当なソフトウェア処理に分岐するために、命令コード
解析ルーチンでトラップを起こした命令コード部を認識
するソフトウェア処理には、2回のメモリアクセントが
必要であった。
また、従来例に示したようなマイフンでは、トラップを
起こすバイト長の異なる命令が混在していることが多い
。よって、トラップとなる命令コード中のトラップをお
こしたコード部の認識のためには、第15図(a)、 
(b)に示した処理の他に、作業用のXRレジスタに格
納された命令コードが、トラップとなる命令コード部と
一致するかを判断するソフトウェア処理が必要となる。
このときトラップとなる命令コード群をメモリに配置し
ている場合は、1バイト目でトラップとなる命令では上
記2回のメモリアクセスに加えて、XRレジスタに読み
込んだ1バイト目の命令コードとトラップとなる命令コ
ードとを比較するために命令コードのテーブル(第13
図には示してない。)を参照する回数と同じ回数(最初
の比較で一致する場合もあるので最低1回)、合計する
と最低3回のメモリアクセスが必要となる。
また1バイト目で一致する命令コードが存在しなかった
場合は2バイト目の命令コードを外部メモリから読み込
むためにメモリアクセスが1回必要となるうえ、読み込
んだ命令コードが2バイト目でトラップとなる命令コー
ドかどうか比較する一17= ため、トラップを起こす命令コードのテーブルを参照ス
るときにメモリアクセスが最低1回必要となり、前記の
“′最低3凹″を加えると、合計して最低5回のメモリ
アクセスが必要となる。
このようにトラップとなる命令のバイト長が異なる命令
コードが増えるほど、命令コード解析ルーチンでのメモ
リアクセスが増加するという問題点を有していた。
〔課題を解決するための手段〕
本発明のマイコンは、エミュレーション機能ヲ有し、エ
ミュレーションの実行中に所定の命令コードを入力する
と、所定の命令コードまたはその一部を所定のレジスタ
に格納し、割り込みを発生する制御手段を有している。
さらに、本発明のマイコンは、エミュレーション機能を
有し、エミュレーションの実行中に所定の命令コードを
入力すると、所定の命令コードの第1バイトから割り込
み動作命令と認識できる命令コード部までのコード長を
示す値を所定のレジスタに格納し、割り込みを発生する
制御手段を有している。
〔実施例〕
従来例の項でも述べたように、エミュレーションを行な
うマイコンにおいては、ハードウェアの増大を防ぐ意味
でネイティブモードのレジスタをそのままエミュレーシ
ョンモードで用いることが多い。この場合、通常は上位
のマイコンの方が下位のマイコンよりもレジスタ数が多
いので、エミュレーションモードにおいては未使用のレ
ジスタができることが多い。
本実施例では、トラップを起こした命令コードを未使用
の汎用レジスタに格納するマイコンについて説明する。
まず本実施例のマイコンの構成、マイコンとメモリの接
続および外部メモリ内のプログラム配置について第1図
から第3図までを用いて説明する。
第1図は本発明のマイコンの構成およびマイコンと外部
メモリとの接続を示すブロック図である。
マイコン1−00は種々の演算処理を行う演算処理部1
01.命令キュー103.命令キュー103から命令コ
ードが出力されるキューパス108゜キューパス108
上の命令コードを入力解読し種々の制御信号を演算処理
部101.アドレスバス端子104.データバス端子1
05および外部メモリ117に対して出力したり演算処
理部101からの情報を入力したりする制御部]02.
外部アドレスバス116と内部アドレスバス106とを
接続するアドレスバス端子104.外部データバス11
7と内部データバス107とを接続するデータバス端子
105から構成されている。
演算処理部101は演算部]、 09. PSWI 1
0゜汎用レジスタ群111.スタックポインタ5P11
2、プログラムカウンタPC113がそれぞれ内部パス
114を介して接続されている。またマイコン100と
外部メモリ117とは外部アドレスバス115.外部デ
ータバス116を介して接続されている。
なおPSWI 10の最上位ビットは、マイコン100
の動作しているモードを表すステータスフラグ(以下M
Dフラグと記す)であり、マイコン100はMDフラグ
が「0」のときエミュレーションモード、「1」のとき
ネイティブモードで動作するものとする。(第2図参照
) また本マイコンの場合汎用レジスタ111中のXRレジ
スタが未使用レジスタであるとする。
ナオ、マイコン100のエミュレーションモードの命令
のうち、1バイト目で動作が決まりかつ1バイトで構成
される命令のうちトラップとなる命令のコードの1つを
r57HJ、1バイト定義命令のコードの1つをr20
HJとする。なおr20HJは汎用レジスタ群111中
のXレジスタの値をインクリメントする命令のコードと
する。
次に、外部メモリ117内のプログラム配置の一例を示
す。
外部メモリ117のプログラム配置例を第3図に示す。
外部メモリ117内は ■ベクタ領域 ■プログラムエ
リア ■スタックエリア ■命令コード解析ルーチン 
■命令別処理ルーチンで構成されている。
以下に各領域について説明する。
■ ベクタ領域はエミュレーション中のトラップなどに
よる割り込み処理ルーチン開始アドレスが格納されてい
るエリアで、1ベクタは2バイト (1ワード)で構成
され、エミュレーション中のトラップなどの割り込みが
発生すると、制御部1202の制御により、割り込み要
因に対応したベクタの内容がPC113にロードされる
。エミュレーション中のトラップのベクタ番号は16(
ベクタアドレスはr0020HJ番地)に設定されてい
るものとする。
なお、ベクタ領域はr0000HJ〜[0OFFHJ番
地に配置しである。
■ プログラムエリアはネイティブモードのプロクラム
エリアとエミュレーションモードのプログラムエリアと
に分かれている。ネイティブモードのプログラムエリア
はエミュレーションモードのプログラムを実行するため
に必要な、レジスタ等の初期化を行うためのプログラム
を、エミュレーションモードのプロクラムエリアはマイ
コン100がエミュレーションを行つ下位のマイコンの
プログラムをそれぞれ格納しである領域である。なお、
プログラムエリアはro 200H」〜r03FFHJ
番地に、エミュレーションモードのプログラムエリアを
「0400H」〜r05FFHJ番地にそれぞれ配置し
である。
■ スタックエリアは、エミュレーション中にトラップ
が発生した場合にプログラム実行中のPCWおよびPC
の情報をセーブすることなどに使用される。スタックエ
リアはr2000H」〜r2FFEHJ番地に配置しで
ある。
■ マイコン100がトラップを起こした後に実行され
る命令コード解析ルーチンでは、トラップを起こした命
令コード部を認識しその命令コード値を利用して命令別
処理ルーチンに分岐する処理が行われる。命令コード解
析ルーチンはr3200HJ〜r32FFHJ番地に配
置しである。
■ 命令別処理ルーチンでは、トラップを起こした命令
に対してユーザが行う適当なソフトウェア処理、トラッ
プから復帰するために必要なPC補正およびトラップか
らの復帰命令(以下リターン命令と記す)による処理が
行われる。リターン命令はこのルーチンの最後の処理に
なるように配置しである。命令別処理ルーチンはr57
00HJ番地〜r57FFHJ番地に配置しである。
マタエミュレーションモードのプログラムエリア内には
1バイト定義命令のコードr20HJがr0400HJ
0400Hバイト目で動作が決まりかつ1バイトで構成
される命令でトラップとなる命令のコードr57HJが
r0425HJ番地にそれぞれ配置しである。
次にマイコン100の動作について第4図から第7図を
用いて説明する。
まずリセットにより、マイコン100のPC113はr
0200HJに、PSWI 10中のMDフラグは「1
」に初期化され、マイコン100はr0200HJ番地
以降のネイティブモードのプログラムを実行していくも
のとする。
ネイティブモードのプログラムにおいてはエミュレーシ
ョンモードのプログラムで使用されるスタックポインタ
5P112の値をr2FFEH」に初期化する処理等が
行われた後、MDフラグを「0」にし、PC113にr
0400HJ を格納し、エミュレーションモードのプ
ログラムの先頭アドレスの命令コードをフェッチするた
めの処理が行われる。
イト目で命令の動作が決まりかつ1バイトで構成される
命令のうちトラップとなる命令のコードが入力された場
合におけるマイコン100の動作についてそれぞれ説明
する。
〔1〕 最初に1バイト定義命令コード「20H」を処
理する場合の本マイコンの動作について説明する。
まず制御部102は、外部メモリ117からPC113
の指すアドレスr0400HJ番地の命令コードr20
HJを命令キュー103に取り込み、PC113の値を
インクリメントする制御信号を発生する。
次に命令キュー103からr20HJがキューパス10
8に出力されて、制御部102に入力された場合、制御
部102は演算処理部101に対して、Xレジスタを選
択してその値を内部バス114に出力し演算処理部10
1に入力後、演算部109において1加える。そして演
算結果を内部バス114に出力して再度Xレジスタに、
命令実行状況の情報をPSWI 10にそれぞれ格納す
る。
〔2〕 次に1バイト目でトラップとなる命令のコード
r57HJに対する本マイコンの動作について説明する
まず制御部102は、外部メモリ117からPC113
の指すアドレスr0425HJ番地の命令コードr57
HJを命令キュー103に取り込み、PC113の値を
インクリメントする制御信号を発生する。
次に命令キュー103からr57HJがキューパス10
8に出力され、制御部102に入力されると、制御部1
02はまず第4図に示26一 した処理を行う制御信号を演算処理部101に対して出
力する。
■ 制御部102は5P112の値r2FFEH」を内
部バス1]4に出力して、演算部109に入力後、2を
減じ演算結果のr2FFcHJを内部バス114に出力
し、5P112に格納するよう制御する。
■ 制御部]−02,は、5P112の値を内部バス1
14、内部アドレスバス106、アドレスバス端子10
4を通して外部アドレスバス115に、またpsWl 
10の値を内部バス114、内部データバス107、デ
ータバス端子105を通して外部データバス116にそ
れぞれ出力し、内部データバス107、データバスm子
105を通して外部データバス116にそれぞれ出力し
、外部メモリ117のアドレスr2FFCHjにPSW
I 10の値を書き込むよう制御する。
■ ■の処理で更新された5P112の値r2FFCH
,,lを内部バス114に出力して、演算部109に入
力後、2を減じ演算結果のr2 FFAHJを内部バス
114に出力し、5P112に格納するよう制御する。
■ 5P11.2の値を内部バス114.内部アドレス
バス106.アト゛レスバス端子104を通して外部ア
ドレスバス115に出力する。次に、r0425HJ番
地の次の番地の命令コードをフェッチするためr[)4
26HJに更新されていたPCll3の値をデクリメン
トし、トラップ命令の先頭アドレスr0425HJを内
部バス115.内部デ゛−タバス107.データバス端
子105を通して外部データバス116にそれぞれ出力
し、外部メモリ118のアドレスr2FFAHJにPC
ll、3の値を書き込むよう制御する。
■ キューパス108」二のコードr57HJを内部バ
ス114に出力してXRレジスタの下位側に書き込む。
(■〜■までの処理で外部メモリ117のスタックエリ
アは第5図に示した状態になる。)■ MDフラグを「
1」にしてネイティブモードに遷移する。
■ ベクタ]、 6 (10I()を参照し分岐する。
すなわち外部メモリ117のアドレスro O20H」
番地の値r3200HJを外部データバス116、デー
タバス端子105.内部データバス107.内部バス1
14を通してPCl、13に格納し、PCll3の指す
外部メモリ117のアドレスr3200HJ番地の命令
コードをフェッチするよう制御する。
以上に示した処理により命令コード解析ルーチンの先頭
アドレスに分岐する。
次に、第6図(a)〜(’e)に示した命令コード解析
ルーチンおよび命令別処理ルーチン、すなわちトラップ
動作の次にマイコン100が実行するプログラム処理に
ついて説明する。
まず、命令コード解析ルーチンにおいては第4図(a)
、 (b)のソフトウェア処理すなわち(1)’XRレ
ジスタの値を8ピツ゛ト左シフトし、これを命令別処理
ルーチンの先頭アドレスとして分離する処J里を行つ。
奏1→→飼→ 次に第4図(c’)〜(e)に示した命令別処理ルーチ
ンの処理すなわち、 (2)トラップを起こした命令に対応したユーザによる
適当なソフトウェア処理を行う。
(3)命令別処理ルーチンの最後の処理であるリターン
命令の実行によりトラップをおこした命令の次のアドレ
スの命令を実行するために、5P112が指す外部メモ
リ117のアドレス値「2FFAH」の内容すなわちト
ラップを起こした命令の先頭アドレス値r0425HJ
 をインクリメントする。
(4)リターン命令を実行する。
拠剖陳啄閂弓 2バイト目で命令の動作が決まりかつ2バイト宅構成さ
れる命令において2バイ□ト目でトラップとなる命令に
ついては、]バイト目では命令の動作は決まらないので
、マイコン100は2バイト目を読み込み、2バイト目
の命令コードが制御部102に入力されるとトラップと
なり、以降は1バイ)・目でトラップとなる命令と同様
の処理が行なわれる。
つまりXRレジスタには、命令コードの2バイト目が格
納される。
本実施例では未使用の汎用レジスタに命令コードを格納
したが、エミュレーションの時に未使用レジスタができ
ない場合は専用のレジスタを増設する手段も考えられる
なお、本実施例のマイコンはトラップを起こすと判別で
きる命令コード部がすべて異なる値の場合に有効である
が、これが一致した場合においても、トラップを起こす
バイト位置の種類により割り込みベクタを別に設定して
、異なる命令コード解析ルーチンを設定することなどに
より容易に実施できる。
第二の実施例として、トラップを起こした命令の第1バ
イトからトラップを起こすと認識できる命令コード部ま
でのコード長を表す値を未使用の汎用レジスタに格納す
るマイコンについて説明スる。
第7図は本発明の第二の実施例のマイコンのブロック図
およびマイコンと外部メモリとの接続図である。マイコ
ン700が実施例1のマイコンと異なる点は、制御部7
01が定数発生回路702(実施例1のマイコンでは明
示していない)にトラップを起こした命令の第1バイト
からトラップを起こすと認識できる命令コード部までの
コード長を表す値を発生させ、その値を内部バス114
に出力する制御を行うことである。
マイコン700において、1バイト定義命令のコードの
1つがr20HJ、1バイト目でトラップとなる命令コ
ードの1つがr57HJであることは実施例1と同じで
あるが、それ以外にnバイト目(nは2以上の整数)で
命令の動作が決まりかつnバイトで構成される命令でト
ラップとなる命令の1つとして3バイトで構成されてい
る命令のコードr9FHJ r40HJ r75HJが
あるものとする。
第8図は本実施例における外部メモリ117内のプログ
ラム配置図であり、r7500HJ番地〜r、75FF
HJ番地の命令別処理ルーチン2を命令コードr9FH
J、、r40HJ r75HJの命令別処理ルーチンに
設定していることと、命令のコードr9FHJ r40
HJ r75H,Jをro 580H」番地〜r058
2HJ番地に配置していること以外は実施例1における
外部メモリ117のプログラム配置図と同じである。
以降に本実施例のマイコンの動作について説明する。
ネイティブモードのプログラムおよび1バイト定義命令
のコードr20HJをマイコン700が処理する場合の
制御部701の制御は実施例1と同じである。
次に、1バイト目でトラップとなる命令コードr57H
Jをマイコン700が外部メモリ117から命令キー−
103に取り込み、命令コードr5jHJが命令キュー
103からキューバス108に出力されて制御部701
に入力されると、まず第9図(a)の処理すなわち第4
図(a)、 (b)と同様の処理を行う制御信号を演算
処理部101に対して出力する。
次に、制御部701は第9図(b)に示す処理を行う制
御信号を出力する。すなわち、 ■ 定数発生回路702にトラップを起こす命令の第1
バイトからトラップを起こすと認識できる命令コード部
までのコード長を表す値「0000H」を内部バス11
4に出力するよう制御する。
■ 汎用レジスタ群111中のXRレジスタに、内部バ
ス114上の値roooOHJを格納するよう制御する
次に第9図(c)に示した処理すなわち第4図(d)、
 (c)と同様の処理を実施して、命令コード解析ルー
チンの先頭アドレスに分岐する。
続いて、第10図に示した命令コード解析ルーチンおよ
び命令別処理ルーチン、すなわちトラップ動作の次にマ
イコン700が実行するプログラム処理について説明す
る。
命令コード解析ルーチンにおいては (1)第4図(b)に示した処理によって更新された5
P112の値r2FFAHJで示される外部メモリ11
7のアドレスの内容r0425HJとXRレジスタの値
roooOI(Jを加算して結果をXRレジスタに格納
する。(メモリリード1回目) (2)XRレジスタの値r0425H1で指し示される
外部メモリ117のアドレスの内容「57H」をXRレ
ジスタに格納する。(メモリリード2回目) (3)XRの値を8ビツト左シフトして、これを命令別
処理ルーチン]の先頭アドレスとして分岐する。
第興邑晰ト弾 第10図(c)は命令別処理ルーチン1での処理であり
、実施例1のマイコンにおける命令別処理ルーチンと同
じソフトウェア処理を行なう。
3バイト目でトラップとなる命令コードr9FHJ r
40HJ r75Hjをマイコン800が処理する場合
、以下に示す点が異なるだけであとは命令コードr57
HJの場合と同様な処理を行う。
■ XRレジスタにはroo02HJが格納される。
■ 命令別処理ルーチン2において、ro 003HJ
をSPの指すメモリの内容に加算する。
なお、本実施例のマイコンもトラップを起こすと認識で
きる命令コード部の値が一致しなイマイコンの場合に有
効であるが、これが一致する場合においても、トラップ
を起こす命令コードの第1バイトからトラップを起こす
と認識できる命令コード部までのバイト長の種類によっ
て割り込みベクタを別に設定して、異なる命令コード解
析ルーチンを設定することなどにより容易に実施できる
〔発明の効果〕
以上の説明のようにトラップを起こした命令コートヲ格
納するマイクロコンピュータノ場合、従来のマイクロコ
ンピュータのように、トラップを起こした命令コード部
を認識するために1バイト目でトラップとなる命令の場
合は最低3回、2バイト目でトラップとなる命令の場合
は最低5回のメモリアクセスを必要としていた場合と比
較すると、所定のレジスタに命令コードを格納するため
、命令コード部を認識するためのメモリアクセスを全く
必要としない。またトラップを起こした命令の先頭から
トラップとなった命令コード部までのコード長の値を格
納するマイクロコンピュータの場合、トラップを起こす
命令コードのバイト位置に関係なく命令コード部を認識
するためのメモリアクセスは2回のみである。そのため
命令コード解析ルーチンでの処理を高速にできるという
効果を有する。
なお、トラップを起こす命令コード部の値を所定のレジ
スタに格納する方法とトラップを起こす命令の第1バイ
トからトラップを起こすと認識できる命令コード部まで
のコード長を表す値を所定のレジスタに格納する方法を
混在させることも可能である。例えば1バイト目でトラ
ップとなる命令、2バイト目でトラップとなる命令の場
合はトラップを起こす命令コード部の値を、未定義命令
の場合はトラップを起こす命令の第1バイトからトラッ
プを起こすと認識できる命令コード部までのコード長を
表す値を所定のレジスタに格納するという制御を起う。
この場合、トラップを起こす命令の第1バイトからトラ
ップを起こすと認識できる命令コード部までのコード長
を表す値が1バイト目および2バイト目でトラップとな
る命令コードと一致してしまって、命令コード解析ルー
チンで両者のどちらであるかが認識不可となるときは、
トラップのベクタを、1バイト目でトラップとなる命令
および2バイト目でトラップとなる命令の場合と未定義
命令の場合で別に設定すること等の簡単な対応を施せば
よい。このように本発明による応用効果も大きい。
【図面の簡単な説明】
第1図は本発明の第一の実施例におけるマイコンの構成
およびマイコンと外部メモリとの接続を示すブロック図
、第2図は同実施例におけるPSWのビット構成図、第
3図は同実施例における外部メモリのプログラム配置図
、第4図は同実施例のマイコンにおいて命令コードr5
7HJが入力された場合の制御部の制御フロー、第5図
は第4図に示した処理によるスタックエリアの状態図、
第6図は同実施例のマイコンの命令コード解析ルーチン
と命令別処理ルーチンの処理フロー、第7図は本発明の
第二の実施例のマイコンの構成およびマイコンと外部メ
モリとの接続を示したブロック図、第8図は同実施例に
おける外部メモリのプログラム配置図、第9図は同実施
例のマイコンが命令コードr57HJを処理する場合の
制御部の制御フロー、第10図は同実施例のマイコンの
命令コード解析ルーチンと命令別処理ルーチン1の処理
フロー、第11図は従来のマイコンの構成およびマイコ
ンと外部メモリの接続を示したブロック図、第12図は
PSWのビット構成図、第13図は外部メモリのプログ
ラム配置図、第14図は従来のマイコンが命令コードr
57Hjを処理する場合の制御部の制御フロー、第15
図は従来のマイコンの命令コード解析ルーチンと命令別
処理ルーチンの処理フローである。 100・・・・・マイコン、101・・・・・・演算処
理部、102・・・・・・制御部、103・・・・・・
命令キュー、104・・・・・・アドレスバス端子、1
05・・・・・・データバス端子、106・・・・・内
部アドレスバス、107・・・・・・内部データバス、
108・・・・・・キューパス、109・・・・・・演
算部、110・・・・・・PSW、111・・・・・・
汎用レジスタ群、112・・・・・・SP、113・・
・・・・PC。 114・・・・・・内部ハス、115・・・・・・外部
アドレスバス、116・・・・・・外部データバス、1
17・・・・・・外部メモリ、700・・・・・・マイ
コン、701・・・・・・制御部、702・・・・・・
定数発生回路、1100・・・・・・マイコン、110
1・・・・・・演算処理部、1102・・・・・・制御
部、1103・・・・・・命令キュー、1104・・・
・・アドレスバス端子、1105・・・・・・データバ
ス端子、1106・・・・・・内部アドレスバス、11
07・・・・・・内部データバス、1108・・・・・
・キューパス、1109・・・・・・演算部、1110
・・・・・・PSW、1111・・・・・・汎用レジス
タ群、1112・・・・・・SP、1113・・・・・
・PC。 1114・・・・・内部バス、1115・・・・・・外
部アドレスバス、1116・・・・・・外部データバス
、1117・・・・・・外部メモリ。 代理人 弁理士  内 原   晋

Claims (2)

    【特許請求の範囲】
  1. (1)エミュレーション機能を有するマイクロコンピュ
    ータにおいて、前記エミュレーションの実行中に所定の
    命令コードを入力すると、前記所定の命令コードまたは
    その一部を所定のレジスタに格納し、割り込みを発生す
    る制御手段を含むことを特徴としたマイクロコンピュー
    タ。
  2. (2)エミュレーション機能を有するマイクロコンピュ
    ータにおいて、前記エミュレーションの実行中に所定の
    命令コードを入力すると、前記所定の命令コードの第1
    バイトから割り込み動作命令と認識できる命令コード部
    までのコード長を示す値を所定のレジスタに格納し、割
    り込みを発生する制御手段を含むことを特徴とするマイ
    クロコンピュータ。
JP63128841A 1988-05-25 1988-05-25 マイクロコンピュータ Expired - Lifetime JP2637770B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP63128841A JP2637770B2 (ja) 1988-05-25 1988-05-25 マイクロコンピュータ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP63128841A JP2637770B2 (ja) 1988-05-25 1988-05-25 マイクロコンピュータ

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP7055526A Division JP2715967B2 (ja) 1995-03-15 1995-03-15 マイクロコンピュータ

Publications (2)

Publication Number Publication Date
JPH01297729A true JPH01297729A (ja) 1989-11-30
JP2637770B2 JP2637770B2 (ja) 1997-08-06

Family

ID=14994715

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63128841A Expired - Lifetime JP2637770B2 (ja) 1988-05-25 1988-05-25 マイクロコンピュータ

Country Status (1)

Country Link
JP (1) JP2637770B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107346401A (zh) * 2016-05-06 2017-11-14 波音公司 用于安全地执行程序的信息保障系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5971550A (ja) * 1982-09-30 1984-04-23 Fujitsu Ltd 命令処理方式

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5971550A (ja) * 1982-09-30 1984-04-23 Fujitsu Ltd 命令処理方式

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107346401A (zh) * 2016-05-06 2017-11-14 波音公司 用于安全地执行程序的信息保障系统

Also Published As

Publication number Publication date
JP2637770B2 (ja) 1997-08-06

Similar Documents

Publication Publication Date Title
US6564179B1 (en) DSP emulating a microcontroller
US5430862A (en) Emulation of CISC instructions by RISC instructions using two pipelined stages for overlapped CISC decoding and RISC execution
US6560697B2 (en) Data processor having repeat instruction processing using executed instruction number counter
KR100328162B1 (ko) 정보처리회로와마이크로컴퓨터와전자기기
US4539635A (en) Pipelined digital processor arranged for conditional operation
JP2003085000A (ja) トレース情報生成装置およびその方法
US4833640A (en) Register bank change including register to register transfer in a data processing system
JPH10222368A (ja) データ処理装置
JPS6124729B2 (ja)
JP2002215387A (ja) 命令トランスレータを備えたデータ処理装置およびメモリインタフェース装置
US7376819B2 (en) Data processor with selectable word length
US5390306A (en) Pipeline processing system and microprocessor using the system
US6223275B1 (en) Microprocessor with reduced instruction set limiting the address space to upper 2 Mbytes and executing a long type register branch instruction in three intermediate instructions
JP2715967B2 (ja) マイクロコンピュータ
JPH01297729A (ja) マイクロコンピュータ
JP3786575B2 (ja) データ処理装置
CA1155231A (en) Pipelined digital processor arranged for conditional operation
US5596761A (en) Central processing unit with internal register initializing means
US6233675B1 (en) Facility to allow fast execution of and, or, and test instructions
JP3504355B2 (ja) プロセッサ
JPS6273333A (ja) エミュレーション制御装置
JPH0667896A (ja) シングルチップマイクロコンピュータ
US20080256335A1 (en) Microprocessor, microcomputer, and electronic instrument
US5463747A (en) Microprogram data processor processing operand address calculation and instruction execution with common hardware
JP3547585B2 (ja) 条件実行命令を有するマイクロプロセッサ