JPH0667896A - シングルチップマイクロコンピュータ - Google Patents

シングルチップマイクロコンピュータ

Info

Publication number
JPH0667896A
JPH0667896A JP4219854A JP21985492A JPH0667896A JP H0667896 A JPH0667896 A JP H0667896A JP 4219854 A JP4219854 A JP 4219854A JP 21985492 A JP21985492 A JP 21985492A JP H0667896 A JPH0667896 A JP H0667896A
Authority
JP
Japan
Prior art keywords
instruction
register
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.)
Pending
Application number
JP4219854A
Other languages
English (en)
Inventor
Hiromichi Takahashi
浩道 高橋
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 JP4219854A priority Critical patent/JPH0667896A/ja
Publication of JPH0667896A publication Critical patent/JPH0667896A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【目的】所定の命令を割り込みによって処理する場合、
その命令の割込みを起こすと判断できる命令コード部を
解析する際のメモリアクセス回数を低減する。 【構成】所定の命令コードまたはその命令コードのトラ
ップを起こすと認識できる命令コード部から次の命令の
第1バイトまでのバイト長の情報を格納するアドレスを
保持するSPレジスタ114と、割り込み処理を制御す
る制御部120とを備える。制御部120に、所定の命
令コードが入力されるとSPレジスタ114の値をアド
レスとして、そのアドレスに命令コードまたはバイト長
の情報を格納するよう制御させる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はシングルチップマイクロ
コンピュータに関し、特に所定の命令コードを入力する
と割り込み動作を行うシングルチップマイクロコンピュ
ータに関する。
【0002】
【従来の技術】今日、CPU等の単機能のみを備えた複
数のICチップを搭載したマイクロコンピュータ(以下
マルチチップマイコンと記す)に代わり、CPUを含む
割込コントローラ,シリアルコントローラ,タイマなど
周辺IOコントローラ等の機能を1チップ上に搭載した
シングルチップマイクロコンピュータ(以下シングルチ
ップマイコンと記す)の使用される割合が高くなってき
ているが、このシングルチップマイコンを使用する場
合、たとえ従来のマルチチップマイコンとソフトウェア
に完全な交換性があっても、シングルチップマイコンは
従来のマルチチップマイコンとはアーキテクチャが異な
るため、マルチチップマイコン用に開発されたソフトウ
ェアをそのままシングルチップマイコンで動作させるこ
とができない場合が多い。
【0003】例えば、従来のマルチチップマイコンは周
辺IOコントローラを制御するために、入出力命令を用
いて周辺IOコントローラ内の制御レジスタの制御デー
タの授受を行うのが一般的であるが、シングルチップマ
イコンにはこれら周辺IOコントローラが内蔵されてい
るため、チップ内の制御レジスタに対してデータ転送命
令を用いてデータアクセスを行えば良いことになる。
【0004】このように従来のマルチチップマイコン用
のプログラムで用いられている入出力命令は、シングル
チップマイコン用のプログラムではデータ転送命令で代
替できる場合が多い。このような場合に、入出力命令を
処理するために割り込み(以下トラップと記す)を起こ
し、そのトラップ処理ルーチンにおいて、ユーザが適当
な処理を行うことを可能にしたシングルチップマイコン
がある。
【0005】このような従来のシングルチップマイコン
の一例について説明する。
【0006】最初に従来のシングルチップマイコンの構
成、シングルチップマイコンと外部メモリとの接続およ
び外部メモリ内のプログラム配置の一例について図10
〜図12を用いて説明する。
【0007】図10は従来のシングルチップマイコンの
ブロック図である。
【0008】シングルチップマイコン100bは、種々
の演算処理を行う演算処理部110b、命令キューレジ
スタ130、命令キューレジスタ130からの命令コー
ドを入力解読し種々の制御信号を演算処理部110b,
アドレスバス端子140,データバス端子150および
外部メモリ200に出力したり、演算処理部110bか
らの情報を入力したりする制御部120bから構成され
ており、シングルチップマイコン100bと外部メモリ
200とはアドレスバス端子140,データバス端子1
50を介して接続されている。
【0009】演算処理部110bは、演算部111、プ
ログラムの実行状況を示す16ビットのレジスタである
プログラムステータスワード(以下PSWと記す)レジ
スタ112、汎用レジスタ群113、スタックエリアの
ポインタを指す16ビットレジスタであるスタックポイ
ンタ(以下SPと記す)レジスタ114、シングルチッ
プマイコン100bが実行しようとしているプログラム
メモリアドレスのオフセット情報を保持する16ビット
カウンタであるプログラムカウンタ(以下PCと記す)
115で構成されておりそれぞれが内部バス116を介
して接続されている。
【0010】図11に示すように、PSWレジスタ11
2の最上位ビットはMDフラグであり、MDフラグが
「0」のときはシングルチプマイコン100bは入出力
命令をそのまま実行し、MDフラグが「1」のとき入出
力命令がシングルチンプマイコン100b入力されると
トラップを発生するものとする。
【0011】なお、シングチップマイコン100bの命
令のうち、1バイト目で動作が決まりかつ1バイトで構
成される入力命令コードの1つを「57H」とする。
【0012】次に、外部メモリ200内のプログラム配
置の一例を図12に示す。外部メモリ200内は、ベク
タ領域201、プログラムエリア202、スタックエリ
ア203、命令コード解析ルーチンエリア204、命令
別処理ルーチンエリア205で構成されている。
【0013】以下に各領域について説明する。
【0014】ベクタ領域201は、トラップなどによる
割り込み処理ルーチンの開始アドレスが格納されている
エリアで、1ベクタは2バイト(1ワード)で構成さ
れ、割り込みが発生すると、制御部120bの制御によ
り、割り込み要因に対応したベクタの内容がPC115
にロードされる。エミュレーション中のトラップのベク
タ番号は「16」(ベクタアドレスは「0020H」番
地)に設定されているものとする。
【0015】なお、ベクタ領域201は「0000H」
〜「00FFH」番地に配置してある。
【0016】プログラムエリア202は、レジスタ等の
初期化およびメインの処理を行うプログラムが格納され
ている領域である。なお、プログラムエリア202は
「0200H」〜「05FFH」番地に配置してあるも
のとする。
【0017】スタックエリア203は、トラップが発生
した場合にプログラム実行中のPSWレジスタ112お
よびPC115の情報をセープすることなどに使用され
る。スタックエリア203は「2000H」〜「2FF
EH」番地に配置してある。
【0018】シングルチップマイコン100bがトラッ
プを起こした後に実行される命令コード解析ルーチンで
は、トラップを起こした命令コード部を認識しその命令
コード値を利用して命令別処理ルーチンに分岐する処理
が行われる。命令コード解析ルーチンエリア204は
「3200H」〜「32FFH」番地に配置してある。
【0019】命令別処理ルーチンでは、トラップを起こ
した命令に対してユーザが行う適当なソフトウェア処
理、トラップから復帰するために必要なPC補正および
トラップからの復帰命令(以下リターン命令と記す)に
よる処理が行われる。リターン命令はこの命令別処理ル
ーチンの最後の処理になるように配置してある。命令別
処理ルーチンエリア205は「5700H」番地〜「5
7FFH」番地に配置してある。
【0020】またプログラムエリア202内には、1バ
イト目で動作が決まりかつ1バイトで構成される入力命
令のコード「57H」が「0425H」番地に配置して
ある。
【0021】次にシングルチップマイコン100bの動
作について図13,図14のフローチャートを用いて説
明する。
【0022】まずリセットにより、シングルチップマイ
コン100bのPC115は「0200H」に、PSW
レジスタ112中のMDフラグは「0」に初期化され、
シングルチップマイコン100bは「0200H」番地
以降のプログラムを実行していくものとする。
【0023】「0200H」以降に配置されているプロ
グラムにおいてはSPレジスタ114の値を「2FFE
H」に初期化したり、PSWレジスタ112のMDフラ
グを「1」にして入出力命令をトラップ処理するモード
に変更する処理等が行われる。
【0024】次に、命令コード「57H」が入力された
場合におけるシングルチップマイコン100bの動作に
ついてそれぞれ説明する。
【0025】まず制御部120bは、外部メモリ200
からPC115の指すアドレス「0425H」番地の命
令コード「57H」を命令キューレジスタ130に取り
込み、PC115の値をインクリメントする制御信号を
発生する。
【0026】次に命令キューレジスタ130から「57
H」が出力され、制御部120bに入力された場合、制
御部120bは、1バイト目でトラップとなる命令コー
ドが入力されたときの同制御部120bの制御フローす
なわち図13に示した処理を行う制御信号を演算処理部
110bに対して出力する。
【0027】まず、トラップから復帰するための情報の
一つでありトラップが発生する直前のPSWレジスタ1
12の値をSPレジスタ114に退避する制御、すなわ
ち (1)制御部120bはSPレジスタ114の値「2F
FEH」を内部バス116に出力して、演算部111に
入力後、「2」を減じてその演算結果の「2FFCH」
を内部バス116に出力し、SPレジスタ114に格納
する (2)制御部120bは、SPレジスタ114の値を内
部116,アドレスバス端子140を通して、またPS
Wレジスタ112の値を内部バス116,データバス端
子150を通して外部メモリ200のアドレス「2FF
CH」にPSWレジスタ112の値を書き込むという制
御を行う。
【0028】次に、トラップを発生した命令を確認する
ためにトラップを発生した命令の先頭アドレスをスタッ
クに格納する制御、すなわち (3)前述の(1)項の処理で更新されたSPレジスタ
114の値「2FFCH」を内部バス116に出力し
て、演算部111に入力後、「2」を減じてその演算結
果の「2FFAH」を内部バス116に出力し、SPレ
ジスタ114に格納する (4)SPレジスタ114の値を内部バス116、アド
レスバス端子140を通して外部に出力する。また同時
に「0425H」番地の次の番地の命令コードをフェッ
チするため「0426H」に更新されていたPC115
の値をデクリメントして、トラップを起こす命令の先頭
アドレス「0425H」を内部バス116,データバス
端子150を通して外部出力し、外部メモリ200のア
ドレス「2FFAH」にPC114の値を書き込むとい
う制御を行う。
【0029】最後に、トラップ処理ルーチンの先頭アド
レスに分岐するため、ベクタ番号「16」(10H)を
参照し分岐する制御、すなわち (5)外部メモリ200のアドレス「0020H」番地
の値「3200H」をデータバス端子150、内部バス
116を通してPC115に書き込み、PC115の指
す外部メモリ200のアドレス「3200H」番地の命
令コードをフェッチするという制御を行う。
【0030】以上に示した処理により、命令コード解析
ルーチンエリア204の先頭アドレスに分岐する。
【0031】次に、図14に示した命令コード解析ルー
チンおよび命令別処理ルーチン、すなわちトラップ動作
の次にシングルチップマイコン100bが実行するプロ
グラム処理について説明する。
【0032】そのうちのステップS1〜S5の命令コー
ド解析ルーチンにおいては (1)作業用に使用する汎用レジスタ群113のXRレ
ジスタの値を外部メモリ200に退避する(メモリライ
ト1回目) (2)前述の(3)項の制御によって更新されたSPレ
ジスタ114が指す外部メモリ200のアドレス「2F
FAH」の内容(トラップを起こした命令の先頭アドレ
ス「0425H」)をXRレジスタに転送する(メモリ
リード1回目)そして、XRレジスタの値が指す外部メ
モリ200のアドレス「0425H」のデータ「57
H」をXRレジスタに転送する(メモリリード2回目) (3)XRレジスタの値を8ビット左シフトし、これを
命令別処理ルーチンエイア205の先頭アドレスとして
分岐するという処理が行われる。続いて図14のS6〜
S8の命令別処理ルーチンでは、 (4)トラップを起こした命令に対応したユーザによる
適当なソフトウェア処理を行う (5)命令別処理ルーチンの最後の処理であるリターン
命令の実行によりトラップをおこした命令の次のアドレ
スの命令を実行するために、SPレジスタ114が指す
外部メモリ200のアドレス値「2FFAH」の内容す
なわちトラップを起こした命令の先頭アドレス値「04
25H」をインクリメントする (6)割り込みから復帰するためのリターン命令を実行
するという処理が行なわれる。
【0033】
【発明が解決しようとする課題】前述した従来のシング
ルチップマイクロコンピュータでは、一例として1バイ
ト命令でトラップを発生する入力命令の1つのみに対す
る従来のシングルチップマイコンの動作およびユーザの
行うソフトウェア処理の場合、トラップを起こす命令に
対してユーザが行なう適正なソフトウェア処理(命令別
処理ルーチン)に分岐するため、命令コード解析ルーチ
ンにおいてトラップを起こした命令コード部を認識する
ソフトウェア処理には、3回のメモリアクセスが必要と
なる。
【0034】また、従来のシングルチップマイコンで
は、1バイト目でトラップを発生する命令は1つだけで
なく複数存在することが多い。よって、トラップとなる
命令コード中のトラップをおこしたコード部の認識のた
めには、図14に示した処理の他に、作業用のXRレジ
スタに格納された命令コードが、トラップとなる命令コ
ード部と一致するかを判断するソフトウェア処理が必要
となる。このときトラップとなる命令コード群を外部メ
モリ200に配置している場合は、1バイト目でトラッ
プとなる入出力命令では上記3回のメモリアクセスに加
えて、XRレジスタに読み込んだ1バイト目の命令コー
ドとトラップとなる命令コードと比較するために命令コ
ードのテーブル(図12は示してない。)を参照する回
数と同じ回数(最初の比較で一致する場合もあるので最
低1回)、合計すると最低4回のメモリアクセスが必要
となる。
【0035】また、トラップを起こすバイト長の異なる
命令が混在していることもあるため、1バイト目で一致
する命令コードが存在しなかった場合は2バイト目の命
令コードを外部メモリ200から読み込むためにメモリ
アクセスが1回必要となるうえ、読み込んだ命令コード
のテーブルを参照するときにメモリアクセスが最低1回
必要となり、前述の”最低4回”を加えると、合計して
最低6回のメモリアクセスが必要となる。
【0036】このようにトラップとなる命令コードのパ
ターンが増えるほど、命令コード解析ルーチンでのメモ
リアクセスが増加するという問題点を有していた。
【0037】
【課題を解決するための手段】本発明のシングルチップ
マイクロコンピュータは、所定の命令コードおよびこの
命令コードのトラップを起こすと認識できる命令コード
部から次の命令の第1バイトまでのバイト長の値の一方
を格納するスタックのアドレスを保持するレジスタと、
割り込み処理を実行する手段と、前記割り込み処理を制
御する制御部とを備え、前記制御部を、前記所定の命令
コードが入力されると、前記レジスタの値をアドレスと
し該アドレスに前記所定の命令コードおよびこの命令コ
ードのトラップを起こすと認識できる命令コード部から
次の命令の第1バイトまでのバイト長の値の一方を格納
する制御を行うようにした構成を有している。
【0038】
【実施例】次に本発明の実施例について図面を参照して
説明する。
【0039】図1は本発明の第1の実施例のシングルチ
ップマイクロコンピュータおよびこれと接続する外部メ
モリのブロック図である。
【0040】シングルチップマイクロコンピュータ(以
下、シングルチップマイコンという)100は、種々の
演算処理を行う演算処理部110、命令キューレジスタ
130、命令キューレジスタ130から出力される命令
コードを入力解読し種々の制御信号を演算処理部11
0,アドレスバス端子140,データバス端子150お
よび外部メモリ200に対して出力したり、演算処理部
110からの情報を入力したりする制御部120から構
成されている。
【0041】演算処理部110、演算部111,プログ
ラムステータスワード(以下、PSWという)レジスタ
112,汎用レジスタ群113,スタックポインタ(以
下、SPという)レジスタ114,プログラムカウンタ
(以下、PCという)115がそれぞれ内部バス116
を介して接続されている。またシグルチップマイコン1
00と外部メモリ200とはアドレスバス端子140,
データバス端子150を介して接続されている。なお、
PSWレジスタ112の最上位ビットは、図11と同様
にMDフラグであり、このMDフラグが「0」のときは
シングルチップマイコン100は入出力命令をそのまま
実行し、MDフラグが「1」のとき入出力命令がシング
ルチップマイコン100に入出されるとトラップを発生
するものとする。
【0042】なお、シングルチップマイコン100の命
令のうち、1バイト目で動作が決まりかつ1バイトで構
成され、MDフラグが「0」のときは入力命令をそのま
ま実行し、MDフラグが「1」のときトラップをを発生
する入力命令コードの1つを「57H」とする。
【0043】次に、外部メモリ200内のプログラム配
置の一例を図2に示す。
【0044】外部メモリ200内はベクタ領域201、
プログラムエリア202、スタックエリア203、命令
コード解析ルーチンエリア204、命令別処理ルーチン
エリア205で構成されている。
【0045】次に各領域について説明する。
【0046】ベクタ領域201は、トラップなどによる
割り込み処理ルーチン開始アドレスが格納されているエ
リアで、1ベクタは2バイト(1ワード)で構成され、
トラップなどの割り込みが発生すると、制御部120の
制御により、割り込み要因に対応したベクタの内容がP
C115にロードされる。エミュレーション中のトラッ
プのベクタ番号は「16」(ベクタアドレスは「002
0H」番地)に設定されているものとする。
【0047】なお、ベクタ領域は「0000H」〜「0
0FFH」番地に配置してある。
【0048】プログラムエリア202は、レジスタ等の
初期化およびメインの処理を行うプログラムを格納して
ある領域である。なお、プログラムエリア202は「0
200H」〜「05FFH」番地に配置してあるものと
する。
【0049】スタックエリア203は、トラップが発生
した場合にプログラム実行中のPSWレジスタ112お
よびPC115の情報をセープすることなどに使用され
る。スタックエリア203は「2000H」〜「2FF
EH」番地に配置してある。
【0050】シングルチップマイコン100がトラップ
を起こした後に実行される命令コード解析ルーチンで
は、トラップを起こした命令コード部を認識しその命令
コード値を利用して命令別処理ルーチンに分岐する処理
が行われる。命令コード解析ルーチンエリア204は
「3200H」〜「32FFH」番地に配置してある。
【0051】命令別処理ルーチンでは、トラップを起こ
した命令に対してユーザが行う適当なソフトウェア処
理、トラップから復帰するために必要なSPレジスタ1
14の補正およびトラップからの復帰命令(以下リター
ン命令と記す)による処理が行われる。リターン命令は
このルーチンの最後の処理なるように配置してある。命
令別処理ルーチンエリア205は「5700H」番地〜
「57FFH」番地に配置してある。
【0052】またプログラムエリア202内には、1バ
イト目で動作が決まりかつ1バイトで構成される入出力
命令のコード「57H」が「0425H」番地に配置し
てある。
【0053】次にシングルチップマイコン100の動作
について図3〜図5を用いて説明する。
【0054】まずリセットにより、シングルチップマイ
コン100のPC115は「0200H」に、PSWレ
ジスタ112中のMDフラグは「0」に初期化され、シ
ングルチップマイコン100は「0200H」番地以降
のプログラムを実施していくものとする。
【0055】「0200H」番地以降のプログラムにお
いては、スタックポインタSP112の値を「2FFE
H」に初期化したり、MDフラグを「1」にして入出力
命令をトラップにより処理するモードに変更する処理等
が行われる。
【0056】次に、1バイト目で命令の動作が決まりか
つ1バイトで構成される入出力命令のコードが入力され
た場合におけるシングルチップマイコン100の動作に
ついて説明する。
【0057】まず制御部120は、外部メモリ200か
らPC115の指すアドレス「0425H」番地の命令
コード「57H」を命令キューレジスタ130に取り込
み、PC115の値をインクリメントする制御信号を発
生する。
【0058】次に命令キューレジスタ130から「57
H」が制御部120に入力されると、制御部120はま
ず図3に示した処理を行う制御信号を演算処理部110
に対して出力する。
【0059】まず、トラップから復帰するための情報の
一つでありトラップが発生する直前のPSWレジスタ1
12の値をスタックに退避する制御、すなわち (1)制御部120はSPレジスタ114の値「2FF
EH」を内部バス116に出力して、演算部111に入
力後、「2」を減じてその演算結果の「2FFCH」を
内部バス116に出力し、SPレジスタ114に格納す
る (2)制御部120は、SPレジスタ114の値を内部
バス116、アドレスバス端子140を通して、またP
SWレジスタ112の値を内部バス116、データバス
端子150を通して外部メモリ200のアドレス「2F
FCH」にPSWレジスタ112の値を書き込むという
制御を行う。
【0060】次に、トラップから復帰するための情報で
ありトラップを発生した命令の次の命令の先頭アドレス
をスタックに格納する制御、すなわち (3)前述の(1)項の処理で更新されたSPレジスタ
114の値「2FFCH」を内部バス116に出力し
て、演算部111に入力後、「2」を減じてその演算結
果の「2FFAH」を内部バス116に出力し、SPレ
ジスタ114に格納する (4)SPレジスタ114の値を内部バス116,アド
レスバス端子140を通して外部に出力する。次に、
「0425H」番地の次の番地の命令コードをフェッチ
するため「0425H」に更新されていたPC115の
値を内部バス116,データバス端子150を通して外
部にそれぞれ出力し、外部メモリ200のアドレス「2
FFAH」にPC114の値を書き込むという制御を行
う。
【0061】次に、トラップを起こした命令コード部の
値を認識するためにトラップを起こした命令のトラップ
と認識できる命令コード部の値をスタックに格納する制
御、すなわち (5)前述の(3)項の処理で更新されたSPレジスタ
114の値「2FFAH」を内部バス116に出力し
て、演算部111に入力後、「2」を減じてその演算結
果の「2FF8H」を内部バス116に出力し、SPレ
ジスタ114に格納する (6)SPレジスタ114の値を内部バス116,アド
レスバス端子140を通して外部に出力する。次に、命
令キューレジスタ130からの命令コードの値である
「57H」をデータバス端子150を通して外部に出力
し、外部メモリ200のアドレス「2FF8H」に書き
込むという制御を行う((1)〜(6)までの処理で外
部メモリ200のスタックエリア203は図4に示した
状態になる)。
【0062】最後に、トラップ処理ルーチンの先頭アド
レス分岐するため、ベクタ番号「16」(10H)を参
照し分岐する制御、すなわち (7)ベクタ番号「16」(10H)を参照し分岐す
る。すなわち外部メモリ200のアドレス「0020
H」番地の値「3200H」をデータバス端子150,
内部バス116を通してPC115に格納し、PC11
5の指す外部メモリ200のアドレス「3200H」番
地の命令コードをフェッチするという制御を行う。
【0063】以上に示した処理により命令コード解析ル
ーチンの先頭アドレスに分岐する。
【0064】次に、図5に示した命令コード解析ルーチ
ンおよび命令別処理ルーチン、すなわちトラップ動作の
次にシングルチップマイコン100が実行するプログラ
ム処理について説明する。
【0065】まず、命令コード解析ルーチンにおいては
図5のS1〜S4のソフトウェア処理、すなわち (1)作業用の汎用レジスタ群113のXRレジスタの
内容をメモリに格納する(メモリライト1回目) (2)SPレジスタ114の内容に「2」加えたアドレ
ス値「2FFAH」の値「0057H」をXRレジスタ
に転送する(メモリリード1回目) (3)XRレジスタの値を8ビット左シフト、これを命
令別処理ルーチンの先頭アドレスとして分岐するという
処理を行う。
【0066】次に図5のS5〜S7に示した命令別処理
ルーチンの処理、すなわち (4)トラップを起こした命令に対応したユーザの適当
なソフトウェア処理を行う (5)SPレジスタ114の内容に「2」の内容に
「2」加える(その値は「2FFAH」となる) (6)リターン命令を実行するという処理を行う。
【0067】図6は本発明の第2の実施例のシングルチ
ップマイコンのブロック図およびこれと接続する外部メ
モリのブロック図である。この実施例は、トラップを起
こした命令のトラップを起こすと認識できる命令コード
部からの次の命令の第1バイトまでのバイト長を表す値
をスタックに格納するシングルチップマイコンであり、
この実施例が第1の実施例と異なる点は、制御部120
aが定数発生回路117にトラップを起こした命令のト
ラップを起こすと認識できる命令コード部から次の命令
の第1バイトまでのバイト長を表す値を発生させ、その
値を内部バス116に出力する制御を行うよにした点で
ある。
【0068】シグルチップマイコン100aにおいて、
1バイト目でトラップとなる命令のコードの1つが「5
7H」であることは第1お実施例と同じであるが、それ
以外にPSWレジスタ112のMDフラグが「1」のと
きにトラップを発生し、nバイト目(mは2以上の整
数)で命令の動作が決まりかつmバイト(mは2以上の
整数でm≧n)で構成される出力命令の1つとして、3
バイトで構成され、MDフラグが「1」の場合に2バイ
ト目でトラップとなる命令のコード「9FH」「75
H」「40H」があるものとする。
【0069】図7は本実施例における外部メモリ200
内のプログラム配置図であり、「7500H」番地〜
「75FFH」番地の命令別処理ルーチンBを命令コー
ド「9FH」「75H」「40H」の命令別処理ルーチ
ンに設定していることと、命令のコード「9FH」「7
5H」「40H」を「0580H」番地〜「0582
H」番地に配置していること以外は第1の実施例におけ
る外部メモリ200のプログラム配置図と同じである。
【0070】次に本発明の動作につい説明する。
【0071】まず、1バイト目でトラップとなる命令コ
ード「57H」をシングルチップマイコン100aが外
部メモリ200から命令キューレジスタ130に取り込
み、命令コード「57H」を命令キューレジスタ130
から制御部120aに入力されると、図8のS1,S2
の処理と(図3のS1,S2と同様の処理)を行う制御
信号を演算処理部110aに対して出力する。
【0072】次に、制御部120aは図2のS3に示す
処理を行う制御信号を出力する。すなわち、制御部12
0aは、SPレジスタ114の値「2FFAH」を内部
バス116に出力して、演算部111に入力後、「2」
を減じてその演算結果の「2FF8H」を内部バス11
6に出力し、SPレジスタ114に格納する。
【0073】制御部120aは、定数発生回路117に
トラップを発生した命令のトラップを起こすと認識でき
る命令コード部から次の命令の第1バイト目までのバイ
ト長の値「0001H」発生させ、SPレジスタ114
の値を内部バス116、アドレスバス端子140を通し
て、また定数発生回路117,PSWレジスタ112の
値を内部バス116、データバス端子150を通して外
部メモリ200のアドレス「2FF8H」番地に「00
01H」を書き込む。
【0074】次に図8のS4に示した処理を実施して、
命令コード解析ルーチンの先頭アドレスに分岐する。
【0075】続いて、図9に示した命令コード解析ルー
チンおよび命令別処理ルーチン、すなわちトラップ動作
の次にシングルチップマイコン100aが実行するプロ
グラム処理について説明する。
【0076】命令コード解析ルーチンにおいては、 (1)汎用レジスタ群113の作業用のXRレジスタの
内容を外部メモリ200に退避する(メモリライト1回
目) (2)図8のS2に示した処理によって更新されたSP
レジスタ114の値「2FFAH」で示される外部メモ
リ200のアドレスの内容「0001H」をXRレジス
タに格納する(メモリリード1回目) (3)SPレジスタ114に「2」加えた値のアドレス
「2FFCH」番地の内容「0426H」からXRレジ
スタの値「0001H」を減算してその結果をXRレジ
スタに格納する(メモリリード2回目) (4)XRレジスタの値「0425H」で指し示される
外部メモリ200のアドレスの内容「57H」をXRレ
ジスタに格納する(メモリリード3回目) (5)XRレジスタの値を8ビット左シフトして、これ
を命令別処理ルーチンAの先頭アドレスとして分岐する
という処理を行う。
【0077】図9のS5,S6は命令別処理ルーチンA
での処理であり、第1の実施例における命令別処理ルー
チンと同じソフトウェア処理を行なう。
【0078】3バイトで構成され2バイト目でトラップ
となる命令コード「9FH」「75H」「40H」をシ
ングルチップマイコン100aが処理する場合、以下に
示す点が異なるだけであとは命令コード「57H」と場
合と同様な処理を行う。
【0079】(1)制御部120aはPC115の値を
1インクリメントしてその値をSPレジスタ114の指
すアドレス「2FFCH」番地に書き込む制御を行う
(これによりスタックに格納されるPCの値は3バイト
命令「9FH」「75H」「40H」が配置されている
次のアドレス「0583H」となる)。
【0080】(2)「2FFAH」番地には「0002
H」が格納される。
【0081】なお、本実施例のシングルチップマイコン
100aもトラップを起こすと認識できる命令コード部
の値が一致しないシングルチップマイコンの場合に有効
であるが、これが一致する場合においても、トラップを
起こす命令コードの第1バイトからトラップを起こすと
認識できる命令コード部までのバイト長の種類によって
割り込みベクタを別に設定して、異なる命令コード解析
ルーチンを設定することなどにより容易に実施できる。
【0082】
【発明の効果】以上の説明したように本発明は、トラッ
プを起こした命令コードを格納する場合、従来のマイク
ロコンピュータのように、トラップを起こした命令コー
ド部を認識するために1バイト目でトラップとなる命令
の場合は最低3回、2バイト目でトラップとなる命令の
場合は最低5回のメモリアクセスを必要としていた場合
と比較すると、所定のレジスタに命令コードを格納する
ため、命令コード部を認識するためのメモリアクセスは
2回のみであり、またトラップを起こした命令の先頭か
らトラップとなった命令コード部までのバイト長の値を
格納するマイクロコンピュータの場合、トラップを起こ
す命令コードのバイト位置に関係なく命令コードを認識
するためのメモリアクセスは4回のみであるので、命令
コード解析ルーチンでの処理を高速にできるという効果
を有する。
【0083】なお、トラップを起こす命令コード部の値
をスタックに格納する方法とトラップを起こす命令のト
ラップを起こす命令コード部の値をスタックに格納する
方法とトラップを起こす命令のトラップを起こすと認識
できる命令コード部から次の命令コードの第1バイトま
でのバイト長を表す値をスタックに格納する方法を混在
させることも可能である。例えば1バイト目コード部の
値を、3バイト目でトラップとなる命令コードの場合は
トラップを起こす命令のトラップを起こすと認識できる
命令コード部から次の命令コードの第1バイトまでのバ
イト長を表す値を所定のレジスタに格納するという制御
を行う。この場合、トラップを起こす命令の第1バイト
からトラップを起こすと認識できる命令コード部までの
バイト長を表す値が1バイト目でトラップとなる命令お
よび2バイト目でトラップとなる命令コードと一致して
しまって、命令コード解析ルーチンで両者のどちらであ
るかが認識不可となるときは、トラップのベクタを、1
バイト目でトラップとなる命令および2バイト目でトラ
ップとなる命令の場合と未定義命令の場合で別に設定す
ること等の簡単な対応を施せばよい。このように本発明
により応用効果も大きい。
【図面の簡単な説明】
【図1】本発明の第1の実施例のブロック図である。
【図2】図1に示された実施例のシングルチップマイコ
ンと接続する外部メモリのメモリマップである。
【図3】図1に示された実施例の動作の一部を説明する
ためのフローチャートである。
【図4】図1に示された実施例の動作を説明するための
外部メモリの一部のメモリマップである。
【図5】図1に示された実施例の動作の他の一部を説明
するためのフローチャートである。
【図6】本発明の第2の実施例のブロック図である。
【図7】図6に示された実施例のシングルチップマイコ
ンと接続する外部メモリのメモリマップである。
【図8】図6に示された実施例の動作の一部を説明する
ためのフローチャートである。
【図9】図6に示された実施例の動作の他の一部を説明
するためのフローチャートである。
【図10】従来のシングルチップマイコンの一例を示す
ブロック図である。
【図11】図10に示されたシングルチップマイコンの
ブログラムステータスワードレジスタのデータフォーマ
ット図である。
【図12】図10に示されたシングルチップマイコンと
接続する外部メモリのメモリマップである。
【図13】図10に示されたシングルチップマイコンの
動作の一部を説明するためのフローチャートである。
【図14】図10に示されたシングルチップマイコンの
動作の他の一部を説明するためのフローチャートであ
る。
【符号の説明】
100,100a,100b シングルチップマイク
ロコンピュータ 110,110a,110b 演算処理部 111 演算部 112 プログラムステータスワードレジスタ 113 汎用レジスタ群 114 スタックポインタレジスタ 115 プログラムカウンタ 120,120a,120b 制御部 130 命令キューレジスタ 200 外部メモリ

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 所定の命令コードおよびこの命令コード
    のトラップを起こすと認識できる命令コードから次の命
    令の第1バイトまでのバイト長の値の一方を格納するス
    タックのアドレスを保持するレジスタと、割り込み処理
    を実行する手段と、前記割り込み処理を制御する制御部
    とを備え、前記制御部を、前記所定の命令コードが入力
    されると、前記レジスタの値をアドレスとし該アドレス
    に前記所定の命令コードおよびこの命令コードのトラッ
    プを起こすと認識できる命令コード部から次の命令の第
    1バイトまでのバイト長の値の一方を格納する制御を行
    うようにしたことを特徴とするシングルチップマイクロ
    コンピュータ。
JP4219854A 1992-08-19 1992-08-19 シングルチップマイクロコンピュータ Pending JPH0667896A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP4219854A JPH0667896A (ja) 1992-08-19 1992-08-19 シングルチップマイクロコンピュータ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP4219854A JPH0667896A (ja) 1992-08-19 1992-08-19 シングルチップマイクロコンピュータ

Publications (1)

Publication Number Publication Date
JPH0667896A true JPH0667896A (ja) 1994-03-11

Family

ID=16742103

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4219854A Pending JPH0667896A (ja) 1992-08-19 1992-08-19 シングルチップマイクロコンピュータ

Country Status (1)

Country Link
JP (1) JPH0667896A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4859276A (en) * 1987-08-03 1989-08-22 Westinghouse Electric Corp. Tube flush etching, rinsing, drying, inspecting and plugging subsystem and method in a tube manufacturing system
US8844977B2 (en) 2010-06-09 2014-09-30 Xylem IP Holdings LLC. Suction connection for connecting a suction pipe to a dry installed centrifugal pump
CN111443915A (zh) * 2020-03-30 2020-07-24 山东华辰连科通信网络有限公司 一种在单片机上实现cli命令界面的方法和系统

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4859276A (en) * 1987-08-03 1989-08-22 Westinghouse Electric Corp. Tube flush etching, rinsing, drying, inspecting and plugging subsystem and method in a tube manufacturing system
US8844977B2 (en) 2010-06-09 2014-09-30 Xylem IP Holdings LLC. Suction connection for connecting a suction pipe to a dry installed centrifugal pump
CN111443915A (zh) * 2020-03-30 2020-07-24 山东华辰连科通信网络有限公司 一种在单片机上实现cli命令界面的方法和系统
CN111443915B (zh) * 2020-03-30 2023-05-16 山东华辰连科通信网络有限公司 一种在单片机上实现cli命令界面的方法和系统

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
US4084235A (en) Emulation apparatus
US4450519A (en) Psuedo-microprogramming in microprocessor in single-chip microprocessor with alternate IR loading from internal or external program memories
US4729094A (en) Method and apparatus for coordinating execution of an instruction by a coprocessor
US4954943A (en) Data processing system
US4434462A (en) Off-chip access for psuedo-microprogramming in microprocessor
US4833640A (en) Register bank change including register to register transfer in a data processing system
US4731736A (en) Method and apparatus for coordinating execution of an instruction by a selected coprocessor
US4750110A (en) Method and apparatus for executing an instruction contingent upon a condition present in another data processor
EP0267613B1 (en) Micro processor capable of being connected with coprocessor
US5021991A (en) Coprocessor instruction format
EP0525831B1 (en) Method and apparatus for enabling a processor to coordinate with a coprocessor in the execution of an instruction which is in the intruction stream of the processor.
JPS6212529B2 (ja)
JPH0667896A (ja) シングルチップマイクロコンピュータ
JPH03141434A (ja) マイクロコンピュータ
US5596761A (en) Central processing unit with internal register initializing means
JP2715967B2 (ja) マイクロコンピュータ
US6233675B1 (en) Facility to allow fast execution of and, or, and test instructions
US4758978A (en) Method and apparatus for selectively evaluating an effective address for a coprocessor
US5187782A (en) Data processing system
JP2002157115A (ja) データ処理装置
JP2637770B2 (ja) マイクロコンピュータ
JPS5995646A (ja) 演算制御装置
JP2583614B2 (ja) ベクトル演算装置

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 19990323