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

マイクロコンピュータ

Info

Publication number
JP2637770B2
JP2637770B2 JP63128841A JP12884188A JP2637770B2 JP 2637770 B2 JP2637770 B2 JP 2637770B2 JP 63128841 A JP63128841 A JP 63128841A JP 12884188 A JP12884188 A JP 12884188A JP 2637770 B2 JP2637770 B2 JP 2637770B2
Authority
JP
Japan
Prior art keywords
instruction
microcomputer
trap
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.)
Expired - Lifetime
Application number
JP63128841A
Other languages
English (en)
Other versions
JPH01297729A (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 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)

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、エミュレーションの実行中に、所定の命令
コードを入力すると割り込みを発生するマイクロコンピ
ュータに関する。
〔従来の技術〕
マイクロコンピュータ(以下マイコンと記す)の性能
は著しく向上しており、使用されるマイコンも、より上
位のマイコンへと移行している。
しかし上位のマイコンを使用する場合、従来使用して
きた下位のマイコン用のソフトウェアがそのまま利用で
きるかどうかという点が1つの問題点となってくる。一
般に上位のマイコンは下位のマイコンとはアーキテクチ
ャが異なるため、下位のマイコン用に開発されたソフト
ウェアをそのまま上位のマイコンで動作させることがで
きない。そのため、上位のマイコンに下位のマイコンの
命令を実行する機能(以下エミュレーション機能と記
す)がない場合は、下位のマイコン用のソフトウェアを
上位のマイコン用に移植する作業が必要となるが、費用
および工数などの制限により、移植すべきソフトウェア
量が多いほど作業は困難になる。
よって、上位のマイコンにエミュレーション機能をも
たせることは、従来のソフトウェア資産の有効活用およ
びソフトウェア移植に要する費用、工数の削減という点
で非常に有効である。
ところで、エミュレーション機能をもつマイコンの中
には、ハードウェアの制限のため、エミュレーションを
実施しているモード(以下エミュレーションモードと記
す)で実行不可能な命令ができる場合、このような命令
を処理するためエミュレーションモードで割り込み(以
下トラップと記す)を起こし、マイコン本来の命令を実
行するモード(以下ネィティブモードと記す)に制御を
移し、ネィティブモードのトラップ処理ルーチンにおい
て、ユーザが適当な処理を行うマイコンがある。
このような従来のマイコンの一例について以降に説明
する。
最初に従来のマイコンの構成、マイコンと外部メモリ
との接続および外部メモリ内のプログラム配置の一例に
ついて第11図から第13図を用いて説明する。
第11図は従来のマイコンの構成およびマイコンと外部
メモリとの接続を示したブロック図である。
マイコン1100は種々の演算処理を行う演算処理部110
1、命令キュー1103、命令キュー1103から命令コードが
出力されるキューバス1108、キューバス1108の命令コー
ドを入力解読し種々の制御信号を演算処理部1101,アド
レスバス端末1104,データバス端末1105および外部メモ
リ1117に出力したり、演算処理部1101からの情報を入力
したりする制御部1102、外部アドレスバス1115と内部ア
ドレスバス1106とを接続するアドレスバス端末1104、外
部データバス1116と内部データバス1107とを接続するデ
ータバス端末1105から構成されており、マイコン1100と
外部メモリ1117とは外部アドレスバス1115、外部データ
バス1116を介して接続されている。
演算処理部1101は演算部1109、プログラムの実行状況
を示す16ビットのレジスタであるプログラムステータス
ワード(以下PSWと記す)1110、汎用レジスタ群1111、
スタックエリアのポインタを指す16ビットレジスタであ
るスタックポインタ(以下SPと記す)1112、マイコン11
00が実行しようとしているプログラムメモリアドレスの
オフセット情報を保持する16ビットクンタであるプログ
ラムカウンタ(以下PCと記す)1113で構成されておりそ
れぞれが内部バス1114を介して接続されている。
なおPSW1110の最上位ビットは、マイコン1100の動作
しているモードを表すステータスフラグ(以下MDフラグ
と記す)であり、マイコン1100はMDフラグが「0」のと
きエミュレーションモード、「1」のときネィティブモ
ードで動作するものとする。(第12図参照) ところで、エミュレーション機能を持つマイコンにお
いては、ハードウェアの増大を防ぐ意味でネィティブモ
ードのレジスタをそのままエミュレーションモードで用
いることが多い。こうした場合、通常は上位のマイコン
の方が下位のマイコンよりもレジスタ数が多いので、エ
ミュレーションモードにおいては未使用のレジスタがで
きる。本マイコンの場合汎用レジスタ群1111の中のXRレ
ジスタが未使用レジスタであるとする。
なお、マイコン1100のエミュレーションモードの命令
のうち、1バイト目で動作が決まりかつ1バイトで構成
される命令のうちトラップとなる命令のコードの1つを
「57H」、通常に実行される命令(以下1バイト定義命
令と記す)コードの1つを「20H」とする。なお「20H」
は汎用レジスタ群1111中のXレジスタの値をインクリメ
ントする命令のコードとする。
次に、外部メモリ1117内のプログラム配置の一例を示
す。
外部メモリ1117のプログラム配置例を第13図に示す。
外部メモリ117内はベクタ領域プログラムエリア
スタックエリア命令コード解析ルーチン命令別処
理ルーチンで構成されている。
以下に各領域について説明する。
ベクタ領域はエミュレーション中のトラップなどに
よる割り込み処理ルーチンの開始アドレスが格納されて
いるエリアで、1ベクタは2バイト(1ワード)で構成
され、エミュレーション中のトラップなどの割り込みが
発生すると、制御部1102の制御により、割り込み要因に
対応したベクタの内容がPC1113にロードされる。エミュ
レーション中のトラップのベクタ番地は16(ベクタアド
レスは「0020H」番地)に設定されているものとする。
なおベクタ領域は「0000H」〜「00FFH」番地に配置し
てある。
プログラムエリアはネィティブモードのプログラム
エリアとエミュレーションモードのプログラムエリアと
に分かれている。ネィティブモードのプログラムエリア
はエミュレーションモードのプログラムを実行するため
に必要な、レジスタ等の初期化を行うためのプログラム
を、エミュレーションモードのプログラムエリアはマイ
コン1100がエミュレーションを行う下位のマイコンのプ
ログラムをそれぞれ格納してある領域である。なお、プ
ログラムエリアは「0200H」〜「05FFH」番地に配置して
あり、ネィティブモードのプログラムエリアを「0200
H」〜「03FFH」番地に、エミュレーションモードのプロ
グラムエリアを「0400H」〜「04FFH」番地にそれぞれ配
置してある。
スタックエリアは、エミュレーション中にトラップ
が発生した場合にプログラム実行中のPSWおよびPCの情
報をセーブすることなどに使用される。スタックエリア
は「2000H」〜「2FFEH」番地に配置してある。
マイコン1100がトラップを起こした後に実行される
命令コード解析ルーチンでは、トラップを起こした命令
モード部を認識しその命令コード値を利用して命令別処
理ルーチンに分岐する処理が行われる。命令コード解析
ルーチンは「3200H」〜「32FFH」番地に配置してある。
命令別処理ルーチンでは、トラップを起こした命令
に対してユーザが行う適当なソフトウェア処理、トラッ
プから復帰するために必要なPC補正およびトラップから
の復帰命令(以下リターン命令と記す)による処理が行
われる。リターン命令はこのルーチンの最後の処理にな
るように配置してある。命令別処理ルーチンは「5700
H」番地〜「57FFH」番地に配置してある。
またエミュレーションモードのプログラムエリア内に
は1バイト定義命令のコード「20H」が「0400H」番地
に、1バイト目で動作が決まりかつ1バイトで構成され
る命令でトラップとなる命令コード「57H」が「0425H」
番地にそれぞれ配置してある。
以降にマイコン1100の動作について第14図,第15図を
用いて説明する。
まずリセットにより、マイコン1100のPC1112は「0200
H」に、PSW1110中のMDフラグは「1」に初期化され、マ
イコン1100は「0200H」番地以降のネィティブモードの
プログラムを実行していくものとする。
ネィティブモードのプログラムにおいてはエミュレー
ションモードのプログラムで使用されるスタックポイン
タSP1112の値を「2FFEH」に初期化する処理等が行われ
た後、MDフラグを「0」にし、PC1113に「0400H」を格
納し、エミュレーションモードのプログラムの先頭アド
レスの命令コードをフェッチするための処理が行われ
る。
以降にエミュレーションモードにおける1バイド定義
命令のコード「20H」、1バイト目で命令の動作が決ま
りかつ1バイトで構成されトラップとなる命令のコード
「57H」が入力された場合におけるマイコン1100の動作
についてそれぞれ説明する。
〔1〕 最初に1バイト定義命令コード「20H」を処理
する場合の本マイコンの動作について説明する。
まず制御部1102は、外部メモリ1117からPC1113の指す
アドレス「0400H」番地の命令コード「20H」を命令キュ
ー1103に取り込み、PC1113の値をインクリメントする制
御信号を発生する。
次に命令キュー1103から「20H」がキューバス1108に
出力されて、制御部1102に入力された場合、制御部1102
は演算処理部1101に、Xレジスタの値を内部バス1114に
出力し、演算処理部1101に入力後、演算部1109において
1を加え、そして演算結果を内部バス1115に出力して再
度Xレジスタに、命令実行状況の情報をPSW1110にそれ
ぞれ格納するという一連の処理を行う制御信号を出力す
る。
〔2〕 次に1バイト目でトラップとなる命令コード
「57H」に対する本マイコンの動作について説明する。
まず制御部1102は、外部メモリ1117からPC1113の指す
アドレス「0425H」番地の命令コード「57H」を命令キュ
ー1103に取り込み、PC1113の値をインクリメントする制
御信号を発生する。
次に命令キュー1103から「57H」がキューバス1108に
出力され、制御部1102に入力された場合、制御部1102
は、1バイト目でトラップとなる命令コードが入力され
たときの同制御部1102の制御フローすなわち第14図に示
した処理を行う制御信号を演算処理部1101に対して出力
する。
すなわち、制御部1102はSP1112の値「2FFEH」を内
部バス1114に出力して、演算部1109に入力後、2を減
じ、演算結果の「2FFCH」を内部バス1114に出力し、SP1
112に格納するよう制御する。
制御部1102は、SP1112の値を内部バス1114,内部ア
ドレスバス1106,アドレス端子1104を通して外部アドレ
スバス1115に、またSPW1110の値を内部バス1114,内部デ
ータバス1107,データバス端子1105を通して外部データ
バス1116にそれぞれ出力し、外部メモリ1117のアドレス
「2FFCH」にPSW1110の値を書き込むよう制御する。
の処理で更新されたSP1112の値「2FFCH」を内部
バス1114に出力して、演算部1109に入力後、2を減じ演
算結果の「2FFAH」を内部バス1114に出力し、SP1112に
格納するよう制御する。
SP1112の値を内部バス1114、内部アドレスバス110
6、アドレスバス端子1104を通して外部アドレスバス111
5に出力する。また同時に「0425H」番地の次の番地の命
令コードをフェッチするため「0426H」に更新されてい
たPC1113の値をデクリメントして、トラップを起こす命
令の先頭アドレス「0425H」を内部バス1114,内部データ
バス1107,データバス端子1105を通して外部データバス1
116に出力し、外部メモリ1117のアドレス「2FFAH」にPC
1113の値を書き込むよう制御する。
(〜の処理で外部メモリ1117のスタックエリア
は、第5図の状態になる。) PSW1110中のMDフラグを「1」にしてネィティプモ
ードの遷移する。
ベクタ16(10H)を参照し分岐する。すなわち外部
メモリ1117のアドレス「0020H」番地の値「3200H」を外
部データバス1116、データバス端子1105、内部データバ
ス1107、内部バス1114を通してPC1113に書き込み、PC11
13の指す外部メモリ1117のアドレス「3200H」番地の命
令コードをフェッチするよう制御する。
以上に示した処理により命令コード解析ルーチンの先
頭アドレスに分岐する。
次に、第15図に処理フローを示した命令コード解析ル
ーチンおよび命令別処理ルーチン、すなわちトラップ動
作の次にマイコン1100が実行するプログラム処理につい
て説明する。
そのうちの(a)〜(d)の命令コード解析ルーチン
においては (1) 前記の制御によって更新されたSP112が指す
外部メモリ1117のアドレス「2FFAH」の内容(トラップ
を起こした命令の先頭アドレス「0425H」)をXRレジス
タに転送する。(メモリリード1回目) そして、XRレジスタの値が指す外部メモリ1117のアド
レス「0425H」のデータ「57H」をXRレジスタに転送す
る。(メモリリード2回目) (2) XRレジスタの値を8ビット左シフトし、これを
命令別処理ルーチンの先頭アドレスとして分岐する。
処理が行われる。続いて第15図(e)〜(g)の命令
別処理ルーチンでは、 (3) トラップを起こした命令に対応したユーザによ
る適当なソフトウェア処理を行う。
(4) 命令別処理ルーチンの最後の処理であるリター
ン命令の実行によりトラップをおこした命令の次のアド
レスの命令を実行するために、SP1112が指す外部メモリ
1117のアドレス値「2FFAH」の内容すなわちトラップを
起こした命令の先頭アドレス値「0425H」をインクリメ
ントする。
(5) リターン命令を実行する。
処理が行なわれる。
〔発明が解決しようとする課題〕
前述した従来のマイコンでは、命令別処理ルーチンの
中で、トラップを起こす個々の命令に対してユーザが行
う適当なソフトウェア処理に分岐するために、命令コー
ド解析ルーチンでトラップを起こした命令コード部を認
識するソフトウェア処理には、2回のメモリアクセント
が必要であった。また、従来例を示したようなマイコン
では、トラップを起こすバイト長の異なる命令が混在し
ていることが多い。よって、トラップとなる命令コード
中のトラップをおこしたコード部の認識のためには、第
15図(a),(b)に示した処理の他に、作業用のXRレ
ジスタに格納された命令コードが、トラップとなる命令
コード部と一致するかを判断するソフトウェア処理が必
要となる。このときトラップとなる命令コード群をメモ
リに配置している場合は、1バイト目でトラップとなる
命令では上記2回のメモリアクセスに加えて、XRレジス
タに読み込んだ1バイト目の命令コードとトラップとな
る命令コードとを比較するために命令コードのテーブル
(第13図には示してない。)を参照する回数と同じ回数
(最初の比較で一致する場合もあるので最低1回)、合
計すると最低3回のメモリアクセスが必要となる。
また1バイト目で一致する命令コードが存在しなかっ
た場合は2バイト目の命令コードを外部メモリから読み
込むためにメモリアクセスが1回必要となるうえ、読み
込んだ命令コードが2バイト目でトラップとなる命令モ
ードがどうか比較するため、トラップを起こす命令コー
ドのテーブルを参照するときにメモリアクセスが最低1
回必要となり、前記の“最低3回”を加えると、合計し
て最低5回のメモリアクセスが必要となる。
このようにトラップとなる命令のバイト長が異なる命
令モードが増えるほど、命令コード解析ルーチンでのメ
モリアクセスが増加するという問題点を有していた。
〔課題を解決するための手段〕
本発明のマイコンは、エミュレーション機能を有し、
エミュレーションの実行中に所定の命令コードを入力す
ると、所定の命令コードまたはその一部を所定のレジス
タに格納し、割り込みを発生する制御手段を有してい
る。
さらに、本発明のマイコンは、エミュレーション機能
を有し、エミュレーションの実行中に所定の命令コード
を入力すると、所定の命令コードの第1バイトから割り
込み動作命令と認識できる命令コード部までのコード長
を示す値を所定のレジスタに格納し、割り込みを発生す
る制御手段を有している。
〔実施例〕
従来例の項でも述べたように、エミュレーションを行
なうマイコンにおいては、ハードウェアの増大を防ぐ意
味でネィティブモードのレジスタをそのままエミュレー
ションモードで用いることが多い。この場合、通常は上
位のマイコンの方が下位のマイコンよりもレジスタ数が
多いので、エミュレーションモードにおいては未使用の
レジスタができることが多い。
本実施例では、トラップを起こした命令コードを未使
用の汎用レジスタに格納するマイコンについて説明す
る。
まず本実施例のマイコンの構成、マイコンとメモリの
接続および外部メモリ内のプログラム配置について第1
図から第3図までを用いて説明する。
第1図は本発明のマイコンの構成およびマイコンと外
部メモリとの接続を示すブロック図である。
マイコン100は種々の演算処理を行う演算処理部101,
命令キュー103,命令キュー103から命令コードが出力さ
れるキューバス108,キューバス108上の命令コードを入
力解読し種々の制御信号を演算処理部101,アドレスバス
端子104,データバス端子105および外部メモリ117に対し
て出力したり演算処理部101からの情報を入力したりす
る制御部102,外部アドレスバス116と内部アドレスバス1
06とを接続するアドレスバス端子104,外部データバス11
7と内部データバス107とを接続するデータバス端子105
から構成されている。
演算処理部101は演算部109,PSW110,汎用8エジスタ群
111,スタックポインタSP112,プログラムカウンタPC113
がそれぞれ内部バス114を介して接続されている。また
マイコン100と外部メモリ117とは外部アドレスバス115,
外部データバス116を介して接続されている。
なおPSW110の最上位ビットは、マイコン100の動作し
ているモードを表すステータスフラグ(以下MDフラグと
記す)であり、マイコン100はMDフラグが「0」のとき
エミュレーションモード、「1」のときネィティブモー
ドで動作するものとする。(第2図参照) また本マイコンの場合汎用レジスタ111中のXRレジス
タが未使用レジスタであるとする。
なお、マイコン100のエミュレーションモードの命令
のうち、1バイト目で動作が決まりかつ1バイトで構成
される命令のうちトラップとなる命令のコードの1つを
「57H」、1バイト定義命令のコードを1つを「20H」と
する。なお「20H」は汎用レジスタ群111中のXレジスタ
の値をインクリメントする命令のコードとする。
次に、外部メモリ117内のプログラム配置の一例を示
す。
外部メモリ117のプログラム配置例を第3図に示す。
外部メモリ117内はベクタ領域プログラムエリア
スタックエリア命令コード解析ルーチン命令別処
理ルーチンで構成されている。
以下に各領域について説明する。
ベクタ領域はエミュレーション中のトラップなどに
よる割り込み処理ルーチン開始アドレスが格納されてい
るエリアで、1ベクタは2バイト(1ワード)で構成さ
れ、エミュレーション中のトラップなどの割り込みが発
生すると、制御部1202の制御により、割り込み要因に対
応したベクタの内容がPC113にロードされる。エミュレ
ーション中のトラップのベクタ番号は16(ベクタアドレ
スは「0020H」番地)に設定されているものとする。
なお、ベクタ領域は「0000H」〜「00FFH」番地に配置
してある。
プログラムエリアはネィティブモードのプログラム
エリアとエミュレーションモードのプログラムエリアと
に分かれている。ネィティブモードのプログラムエリア
はエミュレーションモードのプログラムを実行するため
に必要な、レジスタ等の初期化を行うためのプログラム
を、エミュレーションモードのプログラムエリアはマイ
コン100がエミュレーションを行う下位のマイコンのプ
ログラムをそれぞれ格納してある領域である。なお、プ
ログラムエリアは「0200H」〜「03FFH」番地に、エミュ
レーションモードのプログラムエリアを「0400H」〜「0
5FFH」番地にそれぞれ配置してある。
スタックエリアは、エミュレーション中にトラップ
が発生した場合にプログラム実行中のPCWおよびPCの情
報をセーブすることなどに使用される。スタックエリア
は「2000H」〜「2FFEH」番地に配置してある。
マイコン100がトラップを起こした後に実行される
命令コード解析ルーチンでは、トラップを起こした命令
コード部を認識しその命令コード値を利用して命令別処
理ルーチンに分岐する処理が行われる。命令コード解析
ルーチンは「3200H」〜「32FFH」番地に配置してある。
命令別処理ルーチンでは、トラップを起こした命令
に対してユーザが行う適当なソフトウェア処理、トラッ
プから復帰するために必要なPC補正およびトラップから
の復帰命令(以下リターン命令と記す)による処理が行
われる。リターン命令はこのルーチンの最後の処理にな
るように配置してある。命令別処理ルーチンは「5700
H」番地〜「57FFH」番地に配置してある。
またエミュレーションモードのプログラムエリア内に
は1バイト定義命令のコード「20H」が「0400H」番地
に、1バイト目で動作が決まりかつ1バイトで構成され
る命令でトラップとなる命令のコード「57H」が「0425
H」番地にそれぞれ配置してある。
次にマイコン100の動作について第4図から第7図を
用いて説明する。
まずリセットにより、マイコン100のPC113は「0200
H」に、PSW110中のMDフラグは「1」に初期化され、マ
イコン100は「0200H」番地以降のネィティブモードのプ
ログラムを実行していくものとする。
ネィティブモードのプログラムにおいてはエミュレー
ションモードのプログラムで使用されるスタックポイン
タSP112の値を「2FFEH」に初期化する処理等が行われた
後、MDフラグを「0」にし、PC113に「0400H」を格納
し、エミュレーションモードのプログラムの先頭アドレ
スの命令コードをフェッチするための処理が行われる。
1バイト目で命令の動作が決まりかつ1バイトで構成
される命令のうちトラップとなる命令のコードが入力さ
れた場合におけるマイコン100の動作についてそれぞれ
説明する。
〔1〕 最初に1バイト定義命令コード「20H」を処理
する場合の本マイコンの動作について説明する。
まず制御部102は、外部メモリ117からPC113の指すア
ドレス「0400H」番地の命令コード「20H」を命令キュー
103に取り込み、PC113の値をインクリメントする制御信
号を発生する。
次に命令キュー103から「20H」がキューバス108に出
力されて、制御部102に入力された場合、制御部102は演
算処理部101に対して、Xレジスタを選択してその値を
内部バス114に出力し演算処理部101に入力後、演算部10
9において1加える。そして演算結果を内部バス114に出
力して再度Xレジスタに、命令実行状況の情報をPSW110
にそれぞれ格納する。
〔2〕 次に1バイト目でトラップとなる命令のコード
「57H」に対する本マイコンの動作について説明する。
まず制御部102は、外部メモリ117からPC113の指すア
ドレス「0425H」番地の命令コード「57H」を命令キュー
103に取り込み、PC113の値をインクリメントする制御信
号を発生する。
次に命令キュー103から「57H」がキューバス108に出
力され、制御部102に入力されると、制御部102はまず第
4図に示した処理を行う制御信号を演算処理部101に対
して出力する。
制御部102はSP112の値「2FFEH」を内部バス114に出
力して、演算部109に入力後、2を減じ演算結果の「2FF
CH」を内部バス114に出力し、SP112に格納するよう制御
する。
制御部102は、SP112の値を内部バス114、内部アド
レスバス106、アドレスバス端子104を通して外部アドレ
スバス115に、またPSW110の値を内部バス114、内部デー
タバス107、データバス端子105を通して外部データバス
116にそれぞれ出力し、内部データバス107、データバス
端子105を通して外部データバス116にそれぞれ出力し、
外部メモリ117のアドレス「2FFCH」にPSW110の値を書き
込むよう制御する。
の処理で更新されたSP112の値「2FFCH」を内部バ
ス114に出力して、演算部109に入力後、2を減じ演算結
果の「2FFAH」を内部バス114に出力し、SP112に格納す
るよう制御する。
SP112の値を内部バス114,内部アドレスバス106,ア
ドレスバス端子104を通して外部アドレスバス115に出力
する。次に、「0425H」番地の次の番地の命令コードを
フェッチするため「0426H」に更新されていたPC113の値
をデクリメントし、トラップ命令の先頭アドレス「0425
H」を内部バス115,内部データバス107,データバス端子1
05を通して外部データバス116にそれぞれ出力し、外部
メモリ118のアドレス「2FFAH」にPC113の値を書き込む
よう制御する。
キューバス108上のコード「57H」を内部バス114に
出力してXRレジスタの下位側に書き込む。
(〜までの処理で外部メモリ117のスタックエリア
は第5図に示した状態になる。) MDフラグを「1」にしてネィティブモードに遷移す
る。
ベクタ16(10H)を参照し分岐する。すなわち外部
メモリ117のアドレス「0020H」番地の値「3200H」を外
部データバス116,データバス端子105,内部データバス10
7,内部バス114を通してPC113に格納し、PC113の指す外
部メモリ117のアドレス「3200H」番地の命令コードをフ
ェッチするよう制御する。
以上に示した処理により命令コード解析ルーチンの先
頭アドレスに分岐する。
次に、第6図(a)〜(e)に示した命令コード解析
ルーチンおよび命令別処理ルーチン、すなわちトラップ
動作の次にマイコン100が実行するプログラム処理につ
いて説明する。
まず、命令コード解析ルーチンにおいては第6図
(a),(b)のソフトウェア処理すなわち (1) XRレジスタの値を8ビット左シフトし、これを
命令別処理ルーチンの先頭アドレスとして分離する処理
を行う。
次に第6図(c)〜(e)に示した命令別処理ルーチ
ンの処理すなわち、 (2) トラップを起こした命令に対応したユーザによ
る適当なソフトウェア処理を行う。
(3) 命令別処理ルーチンの最後の処理であるリター
ン命令の実行によりトラップをおこした命令の次のアド
レスの命令を実行するために、SP112が指す外部メモリ1
17のアドレス値「2FFAH」の内容すなわちトラップを起
こした命令の先頭アドレス値「0425H」をインクリメン
トする。
(4) リターン命令を実行する。
2バイト目で命令の動作が決まりかつ2バイトで構成
される命令において2バイト目でトラップとなる命令に
ついては、1バイト目では命令の動作は決まらないの
で、マイコン100は2バイト目を読み込み、2バイト目
の命令コードが制御部102に入力されるとトラップとな
り、以降は1バイト目でトラップとなる命令と同様の処
理が行なわれる。
つまりXRレジスタには、命令コードの2バイト目が格
納される。
本実施例では未使用の汎用レジスタに命令コードを格
納したが、エミュレーションの時に未使用レジスタがで
きない場合は専用のレジスタを増設する手段も考えられ
る。
なお、本実施例のマイコンはトラップを起こすと判別
できる命令コード部がすべて異なる値の場合に有効であ
るが、これが一致した場合においても、トラップを起こ
すバイト位置の種類により割り込みベクタを別に設定し
て、異なる命令コード解析ルーチンを設定することなど
により容易に実施できる。
第二の実施例として、トラップを起こした命令の第1
バイトからトラップを起こすと認識できる命令コード部
までのコード長を表す値を未使用の汎用レジスタに格納
するマイコンについて説明する。
第7図は本発明の第二の実施例のマイコンのブロック
図およびマイコンと外部メモリとの接続図である。マイ
コン700が実施例1のマイコンと異なる点は、制御部701
が定数発生回路702(実施例1のマイコンでは明示して
いない)にトラップを起こした命令の第1バイトからト
ラップを起こすと認識できる命令コード部までのコード
長を表す値を発生させ、その値を内部バス114に出力す
る制御を行うことである。
マイコン700において、1バイト定義命令のコードの
1つが「20H」、1バイト目でトラップとなる命令コー
ドの1つが「57H」であることは実施例1と同じである
が、それ以外にnバイト目(nは2以上の整数)で命令
の動作が決まりかつnバイトで構成される命令でトラッ
プとなる命令の1つとして3バイトで構成されている命
令のコード「9FH」「40H」「75H」があるものとする。
第8図は本実施例における外部メモリ117内のプログ
ラム配置図であり、「7500H」番地〜「75FFH」番地の命
令別処理ルーチン2を命令コード「9FH」「40H」「75
H」の命令別処理ルーチンに設定していることと、命令
のコード「9FH」「40H」「75H」を「0580H」番地〜「05
82H」番地に配置していること以外は実施例1における
外部メモリ117のプログラム配置図と同じである。
以降に本実施例のマイコンの動作について説明する。
ネィティブモードのプログラムおよび1バイト定義命
令のコード「20H」をマイコン700が処理する場合の制御
部701の制御は実施例1と同じである。
次に、1バイト目でトラップとなる命令コード「57
H」をマイコン700が外部メモリ117から命令キュー103に
取り込み、命令コード「57H」が命令キュー103からキュ
ーバス108に出力されて制御部701に入力されると、まず
第9図(a)の処理すなわち第4図(a),(b)と同
様の処理を行う制御信号を演算処理部101に対して出力
する。
次に、制御部701は第9図(b)に示す処理を行う制
御信号を出力する。すなわち、 定数発生回路702にトラップを起こす命令の第1バ
イトからトラップを起こすと認識できる命令コード部ま
でのコード長を表す値「0000H」を内部バス114に出力す
るよう制御する。
汎用レジスタ群111中のXRレジスタに、内部バス114
上の値「0000H」を格納するよう制御する。
次に第9図(c)に示した処理すなわち第4図
(d),(c)と同様の処理を実施して、命令コード解
析ルーチンの先頭アドレスに分岐する。
続いて、第10図に示した命令コード解析ルーチンおよ
び命令別処理ルーチン、すなわちトラップ動作の次にマ
イコン700が実行するプログラム処理について説明す
る。
命令コード解析ルーチンにおいては (1) 第4図(b)に示した処理によって更新された
SP112の値「2FFAH」で示される外部メモリ117のアドレ
スの内容「0425H」とXRレジスタの値「0000H」を加算し
て結果をXRレジスタに格納する。(メモリリード1回
目) (2) XRレジスタの値「0425H」で指し示される外部
メモリ117のアドレスの内容「57H」をXRレジスタに格納
する。(メモリリード2回目) (3) XRの値を8ビット左シフトして、これを命令別
処理ルーチン1の先頭アドレスとして分岐する。
第9図(c)は命令別処理ルーチン1での処理であ
り、実施例1のマイコンにおける命令別処理ルーチンと
同じソフトウェア処理を行なう。
3バイト目でトラップとなる命令コード「9FH」「40
H」「75H」をマイコン800が処理する場合、以下に示す
点が異なるだけであとは命令コード「57H」の場合と同
様な処理を行う。
XRレジスタには「0002H」が格納される。
命令別処理ルーチン2において、「0002H」をSPの
指すメモリの内容に加算する。
なお、本実施例のマイコンもトラップを起こすと認識
できる命令コード部の値が一致しないマイコンの場合に
有効であるが、これが一致する場合においても、トラッ
プを起こす命令コードの第1バイトからトラップを起こ
すと認識できる命令コード部までのバイト長の種類によ
って割り込みベクタを別に設定して、異なる命令コード
解析ルーチンを設定することなどにより容易に実施でき
る。
〔発明の効果〕
以上の説明のようにトラップを起こした命令コードを
格納するマイクロコンピュータの場合、従来のマイクロ
コンピュータのように、トラップを起こした命令コード
部を認識するために1バイト目でトラップとなる命令の
場合は最低3回、2バイト目でトラップとなる命令の場
合は最低5回のメモリアクセスを必要としていた場合と
比較すると、所定のレジスタに命令コードを格納するた
め、命令コード部を認識するためのメモリアクセスを全
く必要としない。またトラップを起こした命令の先頭か
らトラップとなった命令コード部までのコード長の値を
格納するマイクロコンピュータの場合、トラップを起こ
す命令コードのバイト位置に関係なく命令コード部を認
識するためのメモリアクセスは2回のみである。そのた
め命令コード解析ルーチンでの処理を高速にできるとい
う効果を有する。
なお、トラップを起こす命令コード部の値を所定のレ
ジスタに格納する方法とトラップを起こす命令の第1バ
イトからトラップを起こすと認識できる命令コード部ま
でのコード長を表す値を所定のレジスタに格納する方法
を混在させることも可能である。例えば1バイト目でト
ラップとなる命令,2バイト目でトラップとなる命令の場
合はトラップを起こす命令コード部の値を、未定義命令
の場合はトラップを起こす命令の第1バイトからトラッ
プを起こすと認識できる命令コード部までのコード長を
表す値を所定のレジスタに格納するという制御を起う。
この場合、トラップを起こす命令の第1バイトからトラ
ップを起こすと認識できる命令コード部までのコード長
を表す値が1バイト目および2バイト目でトラップとな
る命令コードと一致してしまって、命令コード解析ルー
チンで両者のどちらであるかが認識不可となるときは、
トラップのベクタを、1バイト目でトラップとなる命令
および2バイト目でトラップとなる命令の場合と未定義
命令の場合で別に設定すること等の簡単な対応を施せば
よい。このように本発明による応用効果も大きい。
【図面の簡単な説明】
第1図は本発明の第一の実施例におけるマイコンの構成
およびマイコンと外部メモリとの接続を示すブロック
図、第2図は同実施例におけるPSWのビット構成図、第
3図は同実施例における外部メモリのプログラム配置
図、第4図は同実施例のマイコンにおいて命令コード
「57H」が入力された場合の制御部の制御フロー、第5
図は第4図に示した処理によるスタックエリアの状態
図、第6図は同実施例のマイコンの命令コード解析ルー
チンと命令別処理ルーチンの処理フロー、第7図は本発
明の第二の実施例のマイコンの構成およびマイコンと外
部メモリとの接続を示したブロック図、第8図は同実施
例における外部メモリのプログラム配置図、第9図は同
実施例のマイコンが命令コード「57H」を処理する場合
の制御部の制御フロー、第10図は同実施例のマイコンの
命令コード解析ルーチンと命令別処理ルーチン1の処理
フロー、第11図は従来のマイコンの構成およびマイコン
と外部メモリの接続を示したブロック図、第12図はPSW
のビット構成図、第13図は外部メモリのプログラム配置
図、第14図は従来のマイコンが命令コード「57H」を処
理する場合の制御部の制御フロー、第15図は従来のマイ
コンの命令コード解析ルーチンと命令別処理ルーチンの
処理フローである。 100……マイコン、101……演算処理部、102……制御
部、103……命令キュー、104……アドレスバス端子、10
5……データバス端子、106……内部アドレスバス、107
……内部データバス、108……キューバス、109……演算
部、110……PSW、111……汎用レジスタ群、112……SP、
113……PC、114……内部バス、115……外部アドレスバ
ス、116……外部データバス、117……外部メモリ、700
……マイコン、701……制御部、702……定数発生回路、
1100……マイコン、1101……演算処理部、1102……制御
部、1103……命令キュー、1104……アドレスバス端子、
1105……データバス端子、1106……内部アドレスバス、
1107……内部データバス、1108……キューバス、1109…
…演算部、1110……PSW、1111……汎用レジスタ群、111
2……SP、1113……PC、1114……内部バス、1115……外
部アドレスバス、1116……外部データバス、1117……外
部メモリ。

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項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 JPH01297729A (ja) 1989-11-30
JP2637770B2 true 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)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10210323B2 (en) * 2016-05-06 2019-02-19 The Boeing Company Information assurance system for secure program execution

Family Cites Families (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 命令処理方式

Also Published As

Publication number Publication date
JPH01297729A (ja) 1989-11-30

Similar Documents

Publication Publication Date Title
US5430862A (en) Emulation of CISC instructions by RISC instructions using two pipelined stages for overlapped CISC decoding and RISC execution
JP2965884B2 (ja) コンピュータシステムにおいてクロスドメイン通話を検出及び実行するための方法及び装置
US6564179B1 (en) DSP emulating a microcontroller
US4205370A (en) Trace method and apparatus for use in a data processing system
US4084235A (en) Emulation apparatus
US20010010072A1 (en) Instruction translator translating non-native instructions for a processor into native instructions therefor, instruction memory with such translator, and data processing apparatus using them
JP2003085000A (ja) トレース情報生成装置およびその方法
JPH0628036B2 (ja) シミュレーシヨン方法
US5255382A (en) Program memory expander for 8051-based microcontrolled system
US20020138712A1 (en) Data processing device with instruction translator and memory interface device
CA2003004C (en) Apparatus and method for executing a conditional branch instruction
JP2637770B2 (ja) マイクロコンピュータ
JPS6212529B2 (ja)
JPH07239780A (ja) 1クロック可変長命令実行処理型命令読み込み電子計 算機
JP2715967B2 (ja) マイクロコンピュータ
JPH0668724B2 (ja) シミユレーシヨン方法
JPH0683615A (ja) 命令セットエミュレーションを行う計算機
US6233675B1 (en) Facility to allow fast execution of and, or, and test instructions
JPH0667896A (ja) シングルチップマイクロコンピュータ
JP2002157115A (ja) データ処理装置
US5463747A (en) Microprogram data processor processing operand address calculation and instruction execution with common hardware
JPS62197831A (ja) デ−タ処理装置
JPH02204833A (ja) 計算機システム
JPH03216734A (ja) データ処理方法及び中央処理装置
JPH087713B2 (ja) マイクロプロセッサ