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

マイクロコンピュータ

Info

Publication number
JP2551167B2
JP2551167B2 JP1258126A JP25812689A JP2551167B2 JP 2551167 B2 JP2551167 B2 JP 2551167B2 JP 1258126 A JP1258126 A JP 1258126A JP 25812689 A JP25812689 A JP 25812689A JP 2551167 B2 JP2551167 B2 JP 2551167B2
Authority
JP
Japan
Prior art keywords
register
instruction
code
unit
bank
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
JP1258126A
Other languages
English (en)
Other versions
JPH03141434A (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
Publication of JPH03141434A publication Critical patent/JPH03141434A/ja
Application granted granted Critical
Publication of JP2551167B2 publication Critical patent/JP2551167B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明はマイクロコンピュータ、特に、内蔵RAMに複
数のレジスタセットを有するマイクロコンピュータに関
する。
〔従来の技術〕 マイクロコンピュータ(以下、マイコンと記す)は、
高速記憶手段として複数個のレジスタ、つまりレジスタ
セットを有している。
また、内蔵するRAM内にレジスタセットを複数設定し
たマイコンもある。
一般に、こうした複数のレジスタセットは、ソフトウ
ェアで適宜切り換えて、ある1つのレジスタセットを選
択し、使用するが、レジスタ間の転送や演算を行なう命
令で指定可能なレジスタは、同一のレジスタセット内の
ものに限られる。
尚、こうした内蔵RAMに設定された個々のレジスタセ
ットは、レジスタバンクと呼ばれることがある。
以上レジスタと表現してきたものは、ユーザがプログ
ラムで使用するレジスタで、以降の説明で用いるマイコ
ン内部の作業用レジスタとは区別するために、汎用レジ
スタと呼び、後者のマイコン内部の作業用レジスタをテ
ンポラリレジスタと呼ぶことにする。
以下に、従来のマイコンが実行する、内蔵RAMに設定
(マッピング)した汎用レジスタのアクセス命令の処理
方式について図面を参照しながら述べる。
第10図は、マイコンを含む、説明に必要なユニットの
みで構成された情報処理装置のブロック図である。
メモリ101には、実行すべきプログラムの命令コード
が格納されている。マイコン300は、命令先取りキュー1
02と、命令デコーダ部303と、レジスタコード保持部104
と、マイクロコード部105と、プログラム・ステータス
・ワード(以下、PSWと記す)106と、RAMアドレス生成
部307と、内蔵RAM108と、演算処理部109から構成されて
いる。
命令先取りキュー102は、メモリ101から逐次読み出し
た命令コードを格納する。
命令デコーダ部303は、命令先取りキュー102に取り込
んだ命令コードを解析する。解析の中には、基本操作の
種類を表わすオペレーションコードと、操作対象を表わ
すオペランドとへの分解が含まれる。
レジスタコード保持部104は、命令デコーダ部303で解
析されたオペランドがレジスタコードである場合に、こ
れを保持しておく場所である。
マイクロコード部105は、命令デコーダ部303で解析さ
れたオペレーションコードからマイクロプログラムのア
ドレスを生成し、そのアドレスからマイクロプログラム
を実行することにより、1クロック毎の動作を各部に指
示する。
演算処理部109は、算術論理演算機能を持っている。
また、図示されていないが、演算処理部109には、命令
実行過程で必要となるテンポラリレジスタも含まれてい
る。
内蔵RAM108は、ここでは、例えば256バイトのメモリ
だとする。本例の内蔵RAM108には、第11図のように8個
のレジスタバンクがマッピングされており、1レジスタ
バンク32バイトである。
内蔵RAM108は、マイコン300の有するメモリ空間にお
いて、FFOOH(Hは16進数表現であることを示す)番地
からFFFFH番地までにマッピングされている。さらに、
レジスタバンク0はFFOOH〜FF1FH、レジスタバンク1は
FF20H〜FF3FH、レジスタバンク2はFF40H〜FF5FH、レジ
スタバンク3はFF60H〜FF7FH、レジスタバンク4はFF80
H〜FF9FH、レジスタバンク5はFFA0H〜FFBFH、レジスタ
バンク6はFFC0H〜FFDFH、レジスタバンク7はFFE0H〜F
FFFHにマッピングされている。
汎用レジスタには、各レジスタバンク毎にレジスタ1
には(各レジスタバンクの先頭アドレス)+1EH、レジ
スタ2には(各レジスタバンクの先頭アドレス)+1C
H、レジスタ3には(各レジスタバンクの先頭アドレ
ス)+1AH、レジスタ4には(各レジスタバンクの先頭
アドレス)+18Hというようにアドレスが割り当てられ
ている。
PSW106は、マイコン300内の動作状態を示す各種フラ
グの他に、3ビットのレジスタバンク番号を持ってお
り、その番号によってレジスタバンクが決定される。
尚、このレジスタバンク番号は、ソフトウェアによって
適宜与えられる。
RAMアドレス生成部307は、内蔵RAM108内の汎用レジス
タをアクセスするときに必要となる内蔵RAM内アドレス
を生成する場所である。RAMアドレス生成部307は、レジ
スタコード保持部104に保持されたレジスタコードとPSW
106内のレジスタバンク番号を入力し、それぞれの汎用
レジスタがマッピングされた内蔵RAMアドレスを生成す
る。生成方法については、後述する。
次に、汎用レジスタ間における転送命令を例にとっ
て、命令の構成を説明する。
汎用レジスタ間の転送命令の構成を、第12図に示す。
レジスタフィールド1,レジスタフィールド2には、各
々4ビットのレジスタコードが入っている。
第12図は、プログラム上で例えば、 MOV レジスタ0,レジスタ3 と表わされ、PSW106で指定されたレジスタバンク内のレ
ジスタ4の内容(値)をレジスタ1に転送する命令コー
ドの構成を示している。ここでは、レジスタフィールド
1にはレジスタ1のレジスタコード、レジスタフィール
ド2にはレジスタ4のレジスタコードが入っている。
以下に、レジスタバンク番号3がソフトウェアでPSW
に設定されている場合の MOV レジスタ0,レジスタ3 の動作を説明する。
命令デコーダ部303は、上記命令コードを入力,解
析し、命令コードの1バイト目をオペレーションコード
に、2バイト目をレジスタコードとしてのオペランドに
分解する。
次に、レジスタコード保持部104は、オペランドを
保持する。
すると、RAMアドレス生成部307は、レジスタフィー
ルド1のアドレスとレジスタフィールド2のアドレスを
生成する。
生成方法は、レジスタフィールド1に対しては、ま
ず、PSW106内の3ビットのレジスタバンク番号3を読み
出す。
同様に、レジスタコード保持部104からレジスタ0の
レジスタコードを読み出し、RAMアドレス生成部307内で
1EHという5ビットのレジスタバンク内アドレスに変換
する。そして、前者のレジスタバンク番号3を上位3ビ
ット、後者のレジスタバンク内アドレス1EHを下位5ビ
ットとして、8ビットの内蔵RAM内アドレス7EHを生成す
る。
レジスタフィールド2に対しては、まず、レジスタバ
ンク番号3は、レジスタフィールド1と同じなので、レ
ジスタコード保持部104からレジスタ3のレジスタコー
ドを読み出し、RAMアドレス生成部307内で18Hという5
ビットのレジスタバンク内アドレスに変換する。よっ
て、レジスタバンク内アドレス18Hを下位5ビットとし
て、8ビットの内蔵RAM内アドレス78Hを生成することに
なる。
マイクロコード部105は、オペレーションコードか
ら生成したマイクロプログラムの先頭アドレスからマイ
クロプログラムを実行する。まず第一に、転送元、つま
りレジスタフィールド2の汎用レジスタのデータを演算
処理部109内のテンポラリレジスタへ格納する旨の指示
を出す。
すると、RAMアドレス生成部307は、内蔵RAMアドレ
ス78Hを指定するので、内蔵RAM108からレジスタ3のデ
ータが読み出され、演算処理部109内のテンポラリレジ
スタに格納される。
次に、マイクロコード部105は、演算処理部109内の
テンポラリレジスタへ格納したデータを転送先、つまり
レジスタフィールド1へ格納する旨の指示を出す。
すると、演算処理部109のテンポラリレジスタのデ
ータが、RAMアドレス生成部307が指定するレジスタ0の
内蔵RAM内アドレス7EHに格納される。
このようにして、 MOV レジスタ0,レジスタ3 の命令実行が終了する。
尚、ここでは、内蔵RAM領域をメモリ空間のFFOOHから
FFFFHまでとしたが、他の領域であっても、あるいは、
この領域が可変となるような機能を有するマイコンにお
いても、汎用レジスタへのアクセスにおいては同じよう
に処理を行なう。
〔発明が解決しようとする課題〕
上述した従来例では、レジスタバンクを複数個有して
いても、複数の汎用レジスタを指定する命令において、
指定する汎用レジスタは、同一のレジスタバンク内に限
られる。
よって、次のような欠点を有する。
(1) 使用可能なレジスタ数が、1レジスタバンク分
に限られるので、高速記憶手段である汎用レジスタを多
用して、ソフトウェアの動作を高速化する際の限界とな
ってしまう。
(2) 1つのレジスタバンクにあるレジスタ数以上の
レジスタを使用したい場合、使いたいレジスタの中身を
一度メモリへ退避してからそのレジスタを使わなければ
ならないため、ソフトウェアの動作速度が遅くなる。
尚、複数のレジスタバンクを有するマイコンでは、レ
ジスタバンクを切り換えて、別のレジスタバンクを使用
するための命令や、割込み発生に呼応してレジスタバン
クを切り換える機能を有しているが、いずれの場合も切
り替えることなしに使用可能な汎用レジスタ数は1レジ
スタバンク分のみであるので、上記欠点を有することに
なる。
本発明の目的は、全レジスタバンクの汎用レジスタを
切り換えることなしにレジスタとして使用することがで
きるマイコンを提供することにある。
〔課題を解決するための手段〕
第1発明のマイコンは、複数のレジスタセットを内蔵
RAMに設定するマイクロコンピュータにおいて、ソフト
ウェアで設定可能な前記レジスタセットの内のひとつの
レジスタセット番号を記憶する第1のレジスタセット記
憶手段と、所定のレジスタセット切り替えプリフィクス
命令に続きレジスタ操作命令を入力した場合に前記レジ
スタ操作命令の所定のレジスタフイルドにて指定される
レジスタの格納されるレジスタセットを切り替えること
を指示するレジスタセット切り替え信号を発生するため
の命令解析手段と、前記レジスタセット切り替えプリフ
ィクス命令で指示されるレジストセット番号を記憶する
第2のレジスタセット記憶手段と、前記レジスタセット
切り替え信号が発生していれば前記第2のレジスタセッ
ト記憶手段を選択し発生していなければ前記第1のレジ
スタセット記憶手段を選択し選択した側のレジスタセッ
トを指定するレジスタセット選択手段とを含んで構成さ
れる。
〔実施例〕
次に、本発明の実施例について図面を参照して説明す
る。
第1図は、本発明の第1の実施例を示すブロック図で
ある。
第1の発明のマイコンは、レジスタ−レジスタ間の転
送命令,演算命令等のように命令コードが2バイト構成
で、2バイト目に2つのレジスタフィールドがあるよう
な命令において、例えば、 MOV レジスタ0,RBn:レジスタ3 というように、“RBn:"で表わされるような、通常の命
令コードの直前に付加する命令である“プリフィクス命
令”の処理を行なう。この命令は、以降に説明するよう
に、任意のレジスタバンクのレジスタを指定する時に付
加される。
上記のようなプリフィクス命令を付加したレジスタ間
の転送命令の命令コード構成は、第2図のようになる。
任意のレジスタバンクnを指定する“RBn:"が1バイト
目のプリフィクス命令となり、この命令には、アクセス
したいレジスタのレジスタバンク番号nを指定する3ビ
ットを含んでおり、3バイト目のレジスタフィールド2
を修飾する。
2バイト目,3バイト目は従来例で説明した第12図の命
令の構成と同様であるので、ここでは説明を省略する。
第1図において、マイコン100は、命令先取りキュー1
02と、命令デコーダ部103と、レジスタコード保持部104
と、マイクロコード部105と、PSW106と、RAMアドレス生
成部107と、内蔵RAM108と、演算処理部109と、レジスタ
バンク番号保持部114から構成されている。
メモリ101,命令先取りキュー102,レジスタコード保持
部104,マイクロコード部105,PSW106,内蔵RAM108,演算処
理部109に関しては、従来例と同様なので、ここでの説
明を省略する。
命令デコーダ部103は、前述した従来例の命令デコー
ダ部303の機能に加えて、プリフィクス命令を判別する
機能を有するプリフィクス信号発生部113を含んでい
る。プリフィクス信号発生部113は、命令デコーダ部103
が、命令コードの1バイト目がプリフィクス命令である
と判断すると、プリフィクス信号111をハイ−レベルに
する。
レジスタバンク番号保持部114は、命令デコーダ部103
内で解析された命令コードがプリフィクス命令であった
場合に、プリフィクス命令内の3ビットのレジスタバン
ク番号を保持しておく場所である。
RAMアドレス生成部107は、従来例の機能に加えて、レ
ジスタバンク選択回路115を有し、レジスタバンク選択
回路115は、プリフィクス信号111がハイ−レベルであれ
ばレジスタバンク番号保持部114内のレジスタバンク番
号を選択し、ロウ−レベルであればPSW106内のレジスタ
バンク信号を選択する。よって、RAMアドレス生成部107
は、レジスタバンク番号を選択し、内部RAM内アドレス
を生成する。
次に、バンク3がソフトウェアでPSWに設定されてい
る場合の MOV レジスタ0,RB6:レジスタ3 の動作を説明する。命令の形式は、第2図に示されるも
のである。
命令デコーダ部103が、上記命令コードを入力,解
析し、この命令コードは、プリフィクス命令であると解
析する。
すると、プリフィクス信号発生部113は、プリフィ
クス信号111をハイ−レベルにし、レジスタバンク番号
保持部114は、レジスタバンク番号6を保持する。
命令デコーダ部103は、命令先取りキュー102からプ
リフィクス命令に続く命令コードを入力,解析し、命令
コードの2バイト目をオペレーションコードに、3バイ
ト目をレジスタコードとしてのオペランドに分解する。
次に、レジスタコード保持部104は、オペランドを
保持する。
すると、RAMアドレス生成部107は、レジスタフィー
ルド1のアドレスとレジスタフィールド2のアドレスを
生成する。生成方法は、レジスタフィールド1に対して
は、まず、レジスタバンク選択回路115が、プリフィク
ス信号111を参照するが、レジスタフィールド1にとっ
て、プリフィクス信号は意味をもたないため、PSW106内
の3ビットのレジスタバンク番号3がRAMアドレス生成
部107に読み出される。
同時に、レジスタコード保持部104からレジスタ0の
レジスタコードを読み出し、RAMアドレス生成部107内で
1EHという5ビットのレジスタバンク内アドレスに変換
する。
よって、前者のレジスタバンク番号3を上位3ビッ
ト、後者のレジスタバンク内アドレス1EHを下位5ビッ
トとして、8ビットの内蔵RAM内アドレス7EHを生成する
ことになる。
レジスタフィールド2に対しては、レジスタバンク選
択回路で選ばれたレジスタバンク信号を読み出すため、
レジスタバンク選択回路115が、プリフィクス信号111を
参照する。
レジスタバンク選択回路115は、プリフィクス信号111
が、ハイ−レベルであると判断するとレジスタバンク番
号保持部114を選択し、レジスタバンク番号保持部114内
の3ビットのレジスタバンク番号6をRAMアドレス生成
部107に読み出す。同時に、レジスタコード保持部104か
らレジスタ3のレジスタコードを読み出し、RAMアドレ
ス生成部107内で18Hという5ビットのレジスタバンク内
アドレスに変換する。
そして、前者のレジスタバンク番号6を上位3ビッ
ト、後者のレジスタバンク内アドレス18Hを下位5ビッ
トとして、8ビットの内蔵RAM内アドレスD8Hを生成す
る。
マイクロコード部105は、オペレーションコードか
ら生成したマイクロプログラムの先頭アドレスからマイ
クロプログラムを実行する。まず第一に、転送元、つま
りレジスタフィールド2の汎用レジスタのデータを演算
処理部109内のテンポラリレジスタへ格納する旨の指示
を出す。
すると、RAMアドレス生成部107は、内蔵RAM内アド
レスD8Hを設定するので、内蔵RAMからレジスタバンク6
のレジスタ3のデータが読み出され、演算処理部109内
のテンポラリレジスタに格納される。
次に、マイクロコード部105は、演算処理部109内の
テンポラリレジスタへ格納したデータを転送先、つまり
レジスタフィールド1のレジスタ1へ格納する旨の指示
を出す。
すると、演算処理部109のテンポラリレジスタのデ
ータが、RAMアドレス生成部107が指定するレジスタバン
ク3のレジスタ0の内蔵RAMアドレス7EHに格納される。
このようにして、 MOV レジスタ0,RB6:レジスタ3 の命令の実行が終了する。
第3図は本発明の第2の実施例を示すブロック図であ
る。
第2の発明のマイコンは、命令コードにレジスタフィ
ールドを含む命令であれば、レジスタ−レジスタ間の転
送命令,演算命令以外の命令においても、第1の実施例
で示したようなプリフィクス命令の処理を行なう。
従って、命令コード構成は、第2図,第4図,第5図
のような、いずれの形式でもかまわない。つまり、第2
の実施例のマイコンは、命令によって、プリフィクス命
令“RBn:"が命令コードのどの位置のレジスタフィール
ドを修飾するのかを制御できる機能を有する。
マイコン200は、命令先取りキュー102と、命令デコー
ダ部203と、レジスタコード保持部104と、マイクロコー
ド部105と、PSW106と、RAMアドレス生成部207と、内蔵R
AM108と演算処理部109と、レジスタバンク番号保持部11
4から構成されている。
メモリ101,命令先取りキュー102,レジスタコード保持
部104,マイクロコード部105,PSW106,内蔵RAM108,演算処
理部109,レジスタバンク番号保持部114に関しては、第
1の実施例と同様なので、ここでの説明を省略する。
命令デコーダ部203は、前述した実施例1の命令デコ
ーダ部103の機能に加えて、プリフィクス命令が有効と
なるレジスタフィールドを検出するレジスタフィールド
検出部216を有している。
レジスタフィールド検出部216は、オペレーションコ
ードから、プリフィクス命令が有効となるレジスタフィ
ールドが、レジスタコードの含まれる命令コード中の上
位4ビットのときはハイ−レベル、下位4ビットのとき
はロウ−レベルのレジスタフィールド信号217をRAMアド
レス生成部207に出力する。
RAMアドレス生成部207に含まれるレジスタバンク選択
回路215は、前述した第1の実施例での機能の他に、レ
ジスタフィールド信号217によって、どのレジスタフィ
ールドのアドレスを生成する時にプリフィクス信号111
が意味をもつものになるかを判断する機能を有する。
次に、バンク3がソフトウェアでPSWに設定されてい
る場合の MOV RB6:レジスタ0,イミディエトデータ の動作を説明する。
上記のような、プリフィクス命令を付加したイミディ
エトデータのレジスタへの転送命令の命令コード構成
は、第4図のようになる。
尚、以下の説明では、第1の実施例と同様のところは
省略し、異なるところのみを述べることにする。
第1の実施例の〜と同様。
ただし、1バイト命令の場合は、この1バイトの命令
コードをレジスタコード保持部104とマイクロコード部1
05とに出力する。
レジスタフィールド検出部216は、オペレーション
コードから、レジスタフィールド1に対してプリフィク
ス命令が有効になることを検出すると、RAMアドレス生
成部207に対し、レジスタフィールド信号217をハイ−レ
ベルにする。
次に、レジスタコード保持部104は、オペランドを
保持する。
すると、RAMアドレス生成部207は、レジスタフィー
ルド1のアドレスを生成する。生成方法は、レジスタバ
ンク選択回路215が、まず、レジスタフィールド信号217
とプリフィクス信号111を参照する。
レジスタ情報信号217は、ハイ−レベルなので、プリ
フィクス信号111が、意味をもつ信号であると判断す
る。そして、レジスタバンク選択回路215は、プリフィ
クス信号111が、ハイ−レベルなのでレジスタバンク番
号保持部114を選択し、レジスタバンク番号保持部114内
の3ビットのレジスタバンク番号6をRAMアドレス生成
部207に書き込む。
同時に、レジスタコード保持部104からレジスタ0の
レジスタコード読み出し、RAMアドレス生成部207内で、
1EHという5ビットのレジスタバンク内アドレスに変換
する。
そして、前者のレジスタバンク番号6を上位3ビッ
ト、後者のレジスタバンク内アドレス1EHを下位5ビッ
トとして、8ビットの内蔵RAM内アドレスDEHを生成す
る。
マイクロコード部105は、オペレーションコードか
ら生成したマイクロプログラムの先頭アドレスからマイ
クロプログラムを実行する。まず第一に、転送するデー
タ、つまりイミディエトデータを命令先取りキュー102
から読み出し、演算処理部109内のテンポラリレジスタ
へ格納する旨の指示を出す。
よって、命令先取りキュー102から読み出されたデー
タが、演算部109内のテンポラリレジスタに書き込まれ
る。
次に、マイクロコード部105は、演算処理部109内の
テンポラリレジスタへ格納したデータを転送先、つまり
レジスタフィールド1の汎用レジスタへ格納する旨の指
示を出す。
すると、演算処理部109のテンポラリレジスタのデ
ータが、RAMアドレス生成部207が指定するレジスタバン
ク6のレジスタ1の内蔵RAM内アドレスDEHに格納され
る。
このようにして MOV RB6:レジスタ0,イミディエトデータ の命令の実行が終了する。
以上説明したように、レジスタフィールドを有するす
べての命令に対して、任意のレジスタバンクを指定する
プリフィクス命令を処理することが可能である。
また、第1の実施例、第2の実施例では、レジスタフ
ィールドが4ビットであり、命令コードの上位4ビット
あるいは下位4ビットに配置されているが、第1の実施
例に対し、第2実施例でレジスタフィールドの位置の自
由どを簡単に高めたように、第1の発明は、レジスタフ
ィールドのビット数、位置にかかわらず実施可能であ
る。
次に、本発明の第3の実施例について説明する。
第6図は本発明の第3の実施例を示すブロック図であ
る。
レジスタ−レジスタ間の転送命令において、第1の実
施例では、任意のレジスタバンクを指定するRBn:を転送
元のレジスタのみにつることができたが、本第3の実施
例では、以下に記す2つの命令の様に、RBn:を転送元の
レジスタにも転送元のレジスタにもつけることができ
る。
MOV レジスタ0,RBn:レジスタ3 MOV RBn:レジスタ3,レジスタ0 この命令の構成は、第7図に示すようになっている。
次に、この命令を処理するシステムを簡単に説明す
る。第1の実施例のマイコンでは、命令上でRBn:と表現
されるプリフィクス命令は、レジスタ2のみを修飾する
ように処理する。そして、処理する転送方向は、レジス
タフィールド2→レジスタフィールド1だけである。
第3の実施例のマイコンでは、プリフィクス命令が、
レジスタ2のみを修飾するように処理することは第1の
実施例と同様であるが、処理する転送方向に関しては、
第7図に示される命令の2バイト目のオペコードに転送
方向を指定する1ビット(以下、方向制御ビットと記
す)が含まれており、第3の実施例のマイコンでは、方
向制御ビットが、‘0'の場合、レジスタフィールド1←
レジスタフィールド2、‘1'の場合、レジスタフィール
ド2←レジスタフィールド1というように2つのレジス
タフィールドを転送元,転送先、どちらのレジスタとし
ての処理も行なう。
これは、演算命令の被演算数、演算数の関係について
も同様である。
第6図において、マイコン900は、命令先取りキュー1
02と、命令デコーダ部903と、レジスタコード保持部104
と、マイクロコード部105と、PSW106と、RAMアドレス生
成部907と、内蔵RAM108と、演算処理部109と、レジスタ
バンク番号保持部114から構成されている。
メモリ101,命令先取りキュー102,レジスタコード保持
部104,マイクロコード部105,PSW106,内蔵RAM108,演算処
理部109,レジスタバンク番号保持部114に関しては、第
1の実施例と同様なので、ここでの説明を省略する。
命令デコーダ部903は、第1の実施例の命令デコーダ
部103の機能に加えて、方向制御ビットを判別する機能
を有する方向制御信号発生部918を含んでいる。
方向制御信号発生部918は、命令デコーダ部903が、命
令コードの2バイト目が方向制御ビットを含むオペレー
ションコードであると判断すると、方向制御ビットが1
であれば方向指示信号919をハイ−レベルにし、方向制
御ビットが0であれば方向制御信号919をロウ−レベル
にする。
RAMアドレス生成部907は、レジスタバンク番号とレジ
スタコードからRAMアドレスを生成する部分である。ま
た、RAMアドレス生成部907は、レジスタフィールド決定
回路920とレジスタバンク選択回路915を含んでおり、レ
ジスタフィールド決定回路920は、マイクロコード部105
が出す転送元,転送先の情報と、方向制御信号発生部91
8が出す方向制御信号919からRAMアドレス生成部907が生
成するのは、レジスタフィールド1のレジスタアドレス
かレジスタフィールド2のレジスタアドレスかを決定す
る。決定方法は、第8図のとおりである。
レジスタバンク選択回路915は、プリフィクス信号111
とレジスタフィールド決定回路920の状態からレジスタ
バンク番号保持部114かPSW106のどちらかのレジスタバ
ンク番号を選択する。選択方法は、第9図のとおりであ
る。
次に、バンク3がソフトウェアによりPSWに設定され
ている場合の MOV RB6:レジスタ3,レジスタ0 の動作を説明する。この場合、方向制御ビットは1であ
る。
命令デコーダ部903が、上記命令コードを入力,解
析し、この命令コードはプリフィクス命令であると解析
する。
すると、プリフィクス信号発生部113は、プリフィ
クス信号111をハイ−レベルにし、レジスタバンク番号
保持部114は、レジスタバンク番号6を保持する。
命令デコーダ部903は、命令先取りキュー102からプ
リフィクス命令に続く命令コードを入力,解析し、命令
コードの2バイト目をオペレーションコードに、3バイ
ト目をレジスタコードとしてのオペランドに分解する。
さらに、2バイト目は方向制御ビットを含むオペレ
ーションコードであると解析されると、方向制御信号発
生部916は、2バイト目の方向制御ビットが1であるた
め、方向制御信号917ハイ−レベルにする。
レジスタコード保持部104は、3バイト目のオペラ
ンドを保持する。
マイクロコード部105は、オペレーションコードか
ら生成したマイクロプログラムの先頭アドレスからマイ
クロプログラムを実行する。まず第一に、内蔵RAM108内
の転送元のレジスタアドレスからデータを読み出し、演
算処理部109内のテンポラリレジスタに格納する旨の指
示を出す。
すると、レジスタフィールド決定回路920は、方向
制御信号919が1で、マイクロコード部105からの情報が
転送元であることから、第8図のようにレジスタフィー
ルド1であると決定する。
レジスタバンク選択回路915は、プリフィクス信号111
がハイ−レベルでレジスタフィールド決定回路920の決
定がレジスタフィールド1なので、第9図からPSW106内
の3ビットのレジスタバンク番号3を選択する。
同時に、RAMアドレス生成部907は、レジスタコード保
持部104のレジスタ0のレジスタコードを選ぶと、5ビ
ットのレジスタバンク内アドレス1EHに変換する。
よって、前者のレジスタバンク番号3を上位3ビッ
ト、後者のレジスタバンク内のアドレスを下位5ビット
として、8ビットの内蔵RAM内アドレス7EHを生成するこ
とになる。
RAMアドレス生成部907が、内蔵RAM内アドレスを指
定することにより、内蔵RAM108からレジスタバンク3の
レジスタ1のデータが読み出され、演算処理部109内の
テンポラリレジスタに格納される。
次に、マイクロコード部105は、演算処理部109内の
テンポラリレジスタへ格納したデータを内蔵RAM108内の
転送先のレジスタアドレスへ格納する旨の指示を示す。
すると、レジスタフィールド決定回路920は、方向
制御信号919が1で、マイクロコード部105からの情報が
転送先であることから、第8図のようにレジスタフィー
ルド2であると決定する。
レジスタバンク選択回路915は、プリフィクス信号111
がハイ−レベルでレジスタフィールド決定回路920の決
定がレジスタフィールド2なので、第9図からレジスタ
バンク番号保持部114内の3ビットのレジスタバンク番
号6を選択する。
同時に、RAMアドレス生成部907は、レジスタコード保
持部104のレジスタ3のレジスタコードを選ぶと、5ビ
ットのレジスタバンク内アドレス18Hに変換する。
よって、前者のレジスタバンク番号3を上位3ビッ
ト、後者のレジスタバンク内アドレスを下位5ビットと
して、8ビットの内蔵RAM内アドレスD8Hを生成すること
になる。
すると、で格納された、演算処理部109内のテン
ポラリレジスタのデータが、RAMアドレス生成部907が指
定するレジスタバンク6のレジスタ3の内蔵RAM内アド
レスに格納される。
このようにして、 MOV RB6:レジスタ3,レジスタ0 の命令の実行が終了する。
方向制御ビットが0の場合も、上述のように処理が行
なわれ、 MOV レジスタ0、RB6:レジスタ3 の命令が実行される。
また、第3の実施例でも、第1の実施例,第2の実施
例と同様に、レジスタフィールドが4ビットであり、命
令コードの上位4ビットあるいは下位4ビットに配置さ
れているが、第2の発明は、レジスタフィールドのビッ
ト数、位置にかかわらず実施可能である。なお、プリフ
ィクス命令(レジスタセット切り替え命令)について具
体的に説明すると、これは例えば、オペレーションフイ
ールドが4ビット,レジスタバンクフイールドが3ビッ
トであり、レジスタバンクフイールドの値に対応するレ
ジスタ番号は、 レジスタバンクフイールドの値 対応するレジスタ番号 000 0 001 1 010 2 011 3 100 4 101 5 110 6 111 7 である。
〔発明の効果〕
上述したように、本発明のマイコンは、全レジスタバ
ンクの汎用レジスタを切り換えることなしにレジスタと
して使用することができるので次のような効果を得るこ
とができる。
(1) 使用可能なレジスタ数が、1レジスタバンク分
に限られないので、高速記憶手段である汎用レジスタを
多用して、ソフトウェアの動作をより高速化することが
可能である。
(2) 1つのレジスタバンクにあるレジスタ数以上の
レジスタを使用したい場合、使いたいレジスタの中身を
一度メモリへ退避する必要がないので、ソフトウェアの
動作速度が遅くなることはない。
(3) レジスタ−レジスタ間の処理の場合、プリフィ
クス命令は、常にレジスタフィールド2を修飾するが、
方向制御ビットを付加することにより、転送命令の場合
は、レジスタフィールド2を転送元にも転送先にもする
ことができ、また、演算命令の場合には、被演算数にも
演算数にもすることができる。
【図面の簡単な説明】
第1図は本発明の第1の実施例のブロック図、第2図は
命令コード構成図、第3図は本発明の第2の実施例を示
すブロック図、第4図および第5図は命令コード構成
図、第6図は本発明の第3の実施例を示すブロック図、
第7図は命令コード構成図、第8図はレジスタ決定条件
を示す図、第9図はレジスタバンク選択条件を示す図、
第10図は従来の一例を示すブロック図、第11図は内蔵RA
M領域マップ、第12図は命令コード構成図である。 100,200,300,900……マイコン、101……メモリ、102…
…命令先取りキュー、103,203,303,903……命令デコー
ダ部、104……レジスタコード保持部、105……マイクロ
コード部、106……PSW、107,207,307,907……RAMアドレ
ス生成部、108……内蔵RAM、109……演算処理部、111…
…プリフィクス信号、113……プリフィクス信号発生
部、114……レジスタバンク番号保持部、115,215,915…
…レジスタバンク選択回路、216……レジスタフィール
ド検出部、217……レジスタフィールド信号、918……方
向制御信号発生部、919……方向制御信号、920……レジ
スタフィールド決定回路。

Claims (2)

    (57)【特許請求の範囲】
  1. 【請求項1】複数のレジスタセットを内蔵RAMに設定す
    るマイクロコンピュータにおいて、ソフトウェアで設定
    可能な前記レジスタセットの内のひとつのレジスタセッ
    ト番号を記憶する第1のレジスタセット記憶手段と、所
    定のレジスタセット切り替えプリフィクス命令に続きレ
    ジスタ操作命令を入力した場合に前記レジスタ操作命令
    の所定のレジスタフイルドにて指定されるレジスタの格
    納されるレジスタセットを切り替えることを指示するレ
    ジスタセット切り替え信号を発生するための命令解析手
    段と、前記レジスタセット切り替えプリフィクス命令で
    指示されるレジスタセット番号を記憶する第2のレジス
    タセット記憶手段と、前記レジスタセット切り替え信号
    が発生していれば前記第2のレジスタセット記憶手段を
    選択し発生していなければ前記第1のレジスタセット記
    憶手段を選択し選択した側のレジスタセットを指定する
    レジスタセット選択手段とを含むことを特徴とするマイ
    クロコンピュータ。
  2. 【請求項2】レジスタ−レジスタ間の処理において処理
    方向の制御信号を発生する方向制御信号発生手段と、前
    記レジスタセット切り替え信号と前記方向制御信号を参
    照し前記レジスタ−レジスタのうちのどちらかのレジス
    タを選択するかを決定する決定手段とを含む請求項
    (1)記載のマイクロコンピュータ。
JP1258126A 1989-06-19 1989-10-02 マイクロコンピュータ Expired - Lifetime JP2551167B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP1-157663 1989-06-19
JP15766389 1989-06-19

Publications (2)

Publication Number Publication Date
JPH03141434A JPH03141434A (ja) 1991-06-17
JP2551167B2 true JP2551167B2 (ja) 1996-11-06

Family

ID=15654661

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1258126A Expired - Lifetime JP2551167B2 (ja) 1989-06-19 1989-10-02 マイクロコンピュータ

Country Status (1)

Country Link
JP (1) JP2551167B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7812489B2 (en) 2007-03-06 2010-10-12 Panasonic Corporation Motor

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08202582A (ja) * 1995-01-30 1996-08-09 Sanyo Electric Co Ltd マイクロプロセッサのデータ転送装置
JPH1011352A (ja) * 1996-06-19 1998-01-16 Hitachi Ltd データ処理装置およびそのレジスタアドレス変換方法
JP3839835B2 (ja) * 1999-04-30 2006-11-01 株式会社ルネサステクノロジ データ処理装置及びマイクロコンピュータ
JP2006313561A (ja) * 1999-04-30 2006-11-16 Renesas Technology Corp データ処理装置
JP2001202243A (ja) * 1999-04-30 2001-07-27 Hitachi Ltd データ処理装置
JP3541936B2 (ja) * 2000-03-10 2004-07-14 株式会社安川電機 命令実行装置
JP3958320B2 (ja) * 2002-10-18 2007-08-15 株式会社トプスシステムズ マルチバンクレジスタを有するプロセッサおよびプロセッサの制御方法
JP4528993B2 (ja) * 2006-10-23 2010-08-25 株式会社トプスシステムズ マルチバンクレジスタを有するプロセッサおよびプロセッサの制御方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7812489B2 (en) 2007-03-06 2010-10-12 Panasonic Corporation Motor

Also Published As

Publication number Publication date
JPH03141434A (ja) 1991-06-17

Similar Documents

Publication Publication Date Title
US6405302B1 (en) Microcomputer
US5249280A (en) Microcomputer having a memory bank switching apparatus for accessing a selected memory bank in an external memory
JP3694531B2 (ja) Riscアーキテクチャを有する8ビットマイクロコントローラ
JP2970821B2 (ja) データ処理装置
JP2551167B2 (ja) マイクロコンピュータ
JPH1049369A (ja) データ処理装置
JPH11272546A (ja) 可変長レジスタ装置
KR19990036893A (ko) 다중 어드레싱 모드를 실행하는 프로세서 구조 및 그 설계방법
US4812971A (en) Central processing unit for a digital computer
KR19990037573A (ko) 사용가능한 연산코드를 최대화하고 다양한 어드레싱 모드를 실행하는 프로세서 구조 및 명령 세트
JPH07239780A (ja) 1クロック可変長命令実行処理型命令読み込み電子計 算機
JP2002229778A (ja) 高速ディスプレースメント付きpc相対分岐方式
JPH034936B2 (ja)
KR19990037571A (ko) 단일 주기 내에 간접 어드레싱 모드 어드레스를 출력하는 데이터 포인터 및 그 제공방법
JPH027097B2 (ja)
JP2826309B2 (ja) 情報処理装置
KR960016401B1 (ko) 레지스터 페이지 포인터를 이용한 레지스터 페이지간의 페이지 선택회로
JP2832900B2 (ja) データ処理装置およびデータ処理方法
JP3055558B2 (ja) nビット演算装置
JP3123545B2 (ja) データ処理装置
JPH04195629A (ja) 演算フラグ生成装置
JP3541863B2 (ja) 中央演算処理装置
JP3474347B2 (ja) マイクロコンピュータの命令解読部
JP2002351656A (ja) マイクロプロセッサ
JPH04260131A (ja) マイクロプログラム制御方式