JPH07104780B2 - マイクロプロセッサ - Google Patents
マイクロプロセッサInfo
- Publication number
- JPH07104780B2 JPH07104780B2 JP63033089A JP3308988A JPH07104780B2 JP H07104780 B2 JPH07104780 B2 JP H07104780B2 JP 63033089 A JP63033089 A JP 63033089A JP 3308988 A JP3308988 A JP 3308988A JP H07104780 B2 JPH07104780 B2 JP H07104780B2
- Authority
- JP
- Japan
- Prior art keywords
- operand
- instruction
- register
- memory
- operands
- 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
Links
Landscapes
- Executing Machine-Instructions (AREA)
Description
【発明の詳細な説明】 〔目次〕 概要 産業上の利用分野 従来の技術 (第6図) 発明が解決しようとする課題 課題を解決するための手段 作用 実施例 本発明の一実施例 (第1〜5図) 発明の効果 〔概要〕 マイクロプロセッサに関し、 汎用レジスタやワークレジスタ等をオペランド退避用と
して機能させ、専用の退避レジスタを不要にしてハード
ウェアーの規模を削減することを目的とし、 少なくとも2組のオプコードフィールドおよびオペラン
ドフィールドからなる命令コード列が入力され、該オプ
コードフィールド内のコード情報から命令の種別を解読
する解読手段と、前記オペランドフィールド内のコード
情報からオペランドの存在するレジスタ、即値、メモリ
などの位置を特定する特定手段と、を具備し、前記命令
の種別が少なくとも2つのオペランドを取り扱う処理命
令で、かつ、前記特定された位置が共に即値あるいはメ
モリの場合、該2つのオペランドの何れか一方を先にア
クセスする第1のアクセス手段と、該アクセスされた一
方のオペランドを汎用もしくはワークレジスタに退避す
る退避手段と、該一方のオペランドが退避された後、他
方のオペランドをアクセスする第2のアクセス手段と、
アクセスされた他方のオペランドおよび汎用もしくはワ
ークレジスタ内の一方のオペランドに対し、前記命令の
種別に従って処理を実行する実行手段と、を備えて構成
している。
して機能させ、専用の退避レジスタを不要にしてハード
ウェアーの規模を削減することを目的とし、 少なくとも2組のオプコードフィールドおよびオペラン
ドフィールドからなる命令コード列が入力され、該オプ
コードフィールド内のコード情報から命令の種別を解読
する解読手段と、前記オペランドフィールド内のコード
情報からオペランドの存在するレジスタ、即値、メモリ
などの位置を特定する特定手段と、を具備し、前記命令
の種別が少なくとも2つのオペランドを取り扱う処理命
令で、かつ、前記特定された位置が共に即値あるいはメ
モリの場合、該2つのオペランドの何れか一方を先にア
クセスする第1のアクセス手段と、該アクセスされた一
方のオペランドを汎用もしくはワークレジスタに退避す
る退避手段と、該一方のオペランドが退避された後、他
方のオペランドをアクセスする第2のアクセス手段と、
アクセスされた他方のオペランドおよび汎用もしくはワ
ークレジスタ内の一方のオペランドに対し、前記命令の
種別に従って処理を実行する実行手段と、を備えて構成
している。
本発明は、マイクロプロセッサに関し、特に、ソースお
よびディスティネーション双方のオペランドが即値(イ
ミディエート)あるいはメモリの場合に、専用の退避レ
ジスタを用いることなく、一方のオペランドを汎用ある
いはワークレジスタに退避できるようにしたマイクロプ
ロセッサに関する。
よびディスティネーション双方のオペランドが即値(イ
ミディエート)あるいはメモリの場合に、専用の退避レ
ジスタを用いることなく、一方のオペランドを汎用ある
いはワークレジスタに退避できるようにしたマイクロプ
ロセッサに関する。
マイクロコンピュータ等の命令セットは基本的に、デー
タ転送グループ、数値演算グループ、論理演算グルー
プ、ブランチグループ、その他のグループ、の5グルー
プに相当する命令を備え、各命令は一般に、2つのフィ
ールド、すなわち、その動作を指定する部分(オプコー
ドフィールド:OPCODEフィールド)と、動作の対象とな
るデータを指定する部分(オペランドフィールド:OPRND
フィールド)からなっている。
タ転送グループ、数値演算グループ、論理演算グルー
プ、ブランチグループ、その他のグループ、の5グルー
プに相当する命令を備え、各命令は一般に、2つのフィ
ールド、すなわち、その動作を指定する部分(オプコー
ドフィールド:OPCODEフィールド)と、動作の対象とな
るデータを指定する部分(オペランドフィールド:OPRND
フィールド)からなっている。
オプコードフィールドは、一定のビットパターンによる
コードが与えられており、そのコードがCPUによって判
読されたうえで実行される。例えば、このコードのフィ
ールドが8ビットに固定されていれば28個すなわち計25
6個の異なった命令を設定することができる。
コードが与えられており、そのコードがCPUによって判
読されたうえで実行される。例えば、このコードのフィ
ールドが8ビットに固定されていれば28個すなわち計25
6個の異なった命令を設定することができる。
ところで、近年マイクロプロセッサ等の高性能化に伴っ
て命令セットには、より多くのビット数を使用して命令
あたりの情報量を増大する傾向にある。
て命令セットには、より多くのビット数を使用して命令
あたりの情報量を増大する傾向にある。
第6図は、そのような命令フィールドを示す図であり、
この命令フィールドは、2組の命令フィールドOM1、OM2
からなっている。各組は、オプコードフィールドOPCODE
1、2およびオペランドフィールドOPRND1、2からなっ
ていて、OPCODE1は単項演算の種別および単項/二項演
算命令の区別等の情報をもつ。また、オペランドフィー
ルドOPRND1、2は、オペランドを“特定”するための情
報格納用として用いられる。
この命令フィールドは、2組の命令フィールドOM1、OM2
からなっている。各組は、オプコードフィールドOPCODE
1、2およびオペランドフィールドOPRND1、2からなっ
ていて、OPCODE1は単項演算の種別および単項/二項演
算命令の区別等の情報をもつ。また、オペランドフィー
ルドOPRND1、2は、オペランドを“特定”するための情
報格納用として用いられる。
ここで、オペランドの特定とは、 (I)オペランドの存在する位置が、プロセッサ内部の
レジスタか、あるいはメモリか、もしくは、オペランド
フィールド内の情報そのものがオペランド(いわゆる即
値:イミディエート)か、などのオペランド指定モード
の区別や、 (II)オペランド指定がメモリの場合、レジスタ相対、
プログラムカウンタ相対、スタックポインタ相対、絶対
アドレス指定などのオペランドアドレスの計算方法、な
どを示す情報をコード化したものであり、 OPCODE1、2内のコード情報で表される命令に使用され
るオペランドを直接与えたり(即値の場合)、あるいは
該当するレジスタやメモリなどから取り出すためのアク
セス情報を与えたりして、最終的にオペランドに対して
OPCODE1、2のコード列で表わされた命令が実行され
る。
レジスタか、あるいはメモリか、もしくは、オペランド
フィールド内の情報そのものがオペランド(いわゆる即
値:イミディエート)か、などのオペランド指定モード
の区別や、 (II)オペランド指定がメモリの場合、レジスタ相対、
プログラムカウンタ相対、スタックポインタ相対、絶対
アドレス指定などのオペランドアドレスの計算方法、な
どを示す情報をコード化したものであり、 OPCODE1、2内のコード情報で表される命令に使用され
るオペランドを直接与えたり(即値の場合)、あるいは
該当するレジスタやメモリなどから取り出すためのアク
セス情報を与えたりして、最終的にオペランドに対して
OPCODE1、2のコード列で表わされた命令が実行され
る。
このような命令フィールドを実行するマイクロコンピュ
ータは、OPCODE1、2を解読して命令の種別を判読する
とともに、OPRND1、2を評価してオペランドの特定を行
う必要がある。
ータは、OPCODE1、2を解読して命令の種別を判読する
とともに、OPRND1、2を評価してオペランドの特定を行
う必要がある。
従来のこの種の命令フィールドを実行するマイクロプロ
セッサとしては、例えば、各種命令毎の命令別マイクロ
プログラムと、OPRND1、2を評価する各種命令に共通の
評価マイクロプログラムとを有し、命令デコーダは、OP
CODE1、2を解読した結果、命令に対応する命令別マイ
クロプログラムの開始アドレスを生成するとともに、併
せて評価マイクロプログラムの開始アドレスも生成す
る。そして、評価マイクロプログラムを実行してOPRND
1、2からオペランドを特定し、特定されたオペランド
を用いて命令別マイクロプログラムを実行するようなも
のがあった。
セッサとしては、例えば、各種命令毎の命令別マイクロ
プログラムと、OPRND1、2を評価する各種命令に共通の
評価マイクロプログラムとを有し、命令デコーダは、OP
CODE1、2を解読した結果、命令に対応する命令別マイ
クロプログラムの開始アドレスを生成するとともに、併
せて評価マイクロプログラムの開始アドレスも生成す
る。そして、評価マイクロプログラムを実行してOPRND
1、2からオペランドを特定し、特定されたオペランド
を用いて命令別マイクロプログラムを実行するようなも
のがあった。
ところで、OPRND1、2で指定される2つのオペランド、
すなわち、ソースオペランドとディスティネーションオ
ペランドの双方が、例えば、共にメモリ指定の場合、あ
るいは共に即値の場合には、何れか一方のオペランドあ
るいは双方のオペランドを処理の実行開始まで退避させ
ておく必要があり、このため、上述の従来例では、ソー
スおよびディスティネーションオペランドを退避させる
ための専用のレジスタを備えている。
すなわち、ソースオペランドとディスティネーションオ
ペランドの双方が、例えば、共にメモリ指定の場合、あ
るいは共に即値の場合には、何れか一方のオペランドあ
るいは双方のオペランドを処理の実行開始まで退避させ
ておく必要があり、このため、上述の従来例では、ソー
スおよびディスティネーションオペランドを退避させる
ための専用のレジスタを備えている。
しかしながら、従来の退避専用のレジスタを備えたマイ
クロプロセッサにあっては、例えば、浮動少数点演算の
ように、12バイド程度のオペランドを退避させる場合に
は、少なくともそのバイト数分だけのレジスタ容量を専
用に確保していなければならないから、ハードウェアの
規模が増大するといった問題点があった。
クロプロセッサにあっては、例えば、浮動少数点演算の
ように、12バイド程度のオペランドを退避させる場合に
は、少なくともそのバイト数分だけのレジスタ容量を専
用に確保していなければならないから、ハードウェアの
規模が増大するといった問題点があった。
本発明は、このような問題点に鑑みてなされたもので、
汎用レジスタやワークレジスタ等をオペランド退避用と
して機能させ、専用レジスタを不要にしてハードウェア
の規模を削減することを目的としている。
汎用レジスタやワークレジスタ等をオペランド退避用と
して機能させ、専用レジスタを不要にしてハードウェア
の規模を削減することを目的としている。
本発明では、上記目的を達成するために、少なくとも2
組のオプコードフィールドおよびオペランドフィールド
からなる命令コード列が入力され、該オプコードフィー
ルド内のコード情報から命令の種別を解読する解読手段
と、前記オペランドフィールド内のコード情報からオペ
ランドの存在するレジスタ、即値、メモリなどの位置を
特定する特定手段と、を具備し、前記命令の種別が少な
くとも2つのオペランドを取り扱う処理命令で、かつ、
前記特定された位置が共に即値あるいはメモリの場合、
該2つのオペランドの何れか一方を先にアクセスする第
1のアクセス手段と、該アクセスされた一方のオペラン
ドを汎用もしくはワークレジスタに退避する退避手段
と、該一方のオペランドが退避された場合、他方のオペ
ランドをアクセスする第2のアクセス手段と、アクセス
された他方のオペランドおよび汎用もしくはワークレジ
スタ内の一方のオペランドに対し、前記命令の種別に従
って処理を実行する実行手段と、を備えて構成してい
る。
組のオプコードフィールドおよびオペランドフィールド
からなる命令コード列が入力され、該オプコードフィー
ルド内のコード情報から命令の種別を解読する解読手段
と、前記オペランドフィールド内のコード情報からオペ
ランドの存在するレジスタ、即値、メモリなどの位置を
特定する特定手段と、を具備し、前記命令の種別が少な
くとも2つのオペランドを取り扱う処理命令で、かつ、
前記特定された位置が共に即値あるいはメモリの場合、
該2つのオペランドの何れか一方を先にアクセスする第
1のアクセス手段と、該アクセスされた一方のオペラン
ドを汎用もしくはワークレジスタに退避する退避手段
と、該一方のオペランドが退避された場合、他方のオペ
ランドをアクセスする第2のアクセス手段と、アクセス
された他方のオペランドおよび汎用もしくはワークレジ
スタ内の一方のオペランドに対し、前記命令の種別に従
って処理を実行する実行手段と、を備えて構成してい
る。
本発明では、命令の種別が少なくとも2つのオペランド
を取り扱う処理命令で、かつオペランドの特定位置が共
に即値あるいはメモリの場合、先にアクセスされた一方
のオペランドを汎用もしくはワークレジスタに退避した
後、他方のオペランドがアクセスされ、これら一方およ
び他方のオペランドに対して命令が実行される。
を取り扱う処理命令で、かつオペランドの特定位置が共
に即値あるいはメモリの場合、先にアクセスされた一方
のオペランドを汎用もしくはワークレジスタに退避した
後、他方のオペランドがアクセスされ、これら一方およ
び他方のオペランドに対して命令が実行される。
すなわち、一方のオペランドが汎用もしくはワークレジ
スタに退避されるので、専用のレジスタ等を設ける必要
がなく、ハードウェアの規模増大を抑えることができ
る。
スタに退避されるので、専用のレジスタ等を設ける必要
がなく、ハードウェアの規模増大を抑えることができ
る。
以下、本発明を図面に基づいて説明する。
第1〜5図は、本発明に係るマイクロプロセッサの一実
施例を示す図である。
施例を示す図である。
まず、第1図の基本的な概念図に従って本実施例におけ
る命令の解読動作を説明する。
る命令の解読動作を説明する。
命令レジスタ内には、第6図で示す命令フィールドOMが
取り込まれており、この命令フィールドOMは解読部に転
送され、所定の解読処理を受ける。解読部からは以下の
3つの解読結果が出力される。
取り込まれており、この命令フィールドOMは解読部に転
送され、所定の解読処理を受ける。解読部からは以下の
3つの解読結果が出力される。
すなわち、 (a)OPRND1、2を解読した結果、 (a−1)オペランドの存在する位置がレジスタ、即
値、メモリの何れかであるか、 (a−2)オペランドがレジスタの場合、使用される汎
用レジスタの番号、 (a−3)オペランドがメモリの場合、ベースとなるレ
ジスタ(汎用レジスタ、プログラムカウンタ等)の指定
と、変位(ディスプレースメント)の発生制御、 (a−4)オペランドがリード、ライト、モデファライ
トの何れであるかといったアクセスタイプ、などのオペ
ランドを特定するオペランド特定出力、 (b)ソース、ディスティネーションの2つ以上のオペ
ランドを取り扱う例えば二項演算において、必要に応じ
一方のオペランドを汎用あるいはワークレジスタに退避
させるよう指令する退避指令出力、 (c)OPCODE1、2を解読した結果、処理すべき命令の
種類(機能)を指示する命令種別出力、 などが出力される。
値、メモリの何れかであるか、 (a−2)オペランドがレジスタの場合、使用される汎
用レジスタの番号、 (a−3)オペランドがメモリの場合、ベースとなるレ
ジスタ(汎用レジスタ、プログラムカウンタ等)の指定
と、変位(ディスプレースメント)の発生制御、 (a−4)オペランドがリード、ライト、モデファライ
トの何れであるかといったアクセスタイプ、などのオペ
ランドを特定するオペランド特定出力、 (b)ソース、ディスティネーションの2つ以上のオペ
ランドを取り扱う例えば二項演算において、必要に応じ
一方のオペランドを汎用あるいはワークレジスタに退避
させるよう指令する退避指令出力、 (c)OPCODE1、2を解読した結果、処理すべき命令の
種類(機能)を指示する命令種別出力、 などが出力される。
また、上記オペランド出力および退避指令出力に従って
オペランド制御フラグがセットされ、オペランド制御フ
ラグは、汎用レジスタ、ワークレジスタ、即値、メモリ
の各フラグを持つソース制御フラグ(SF)と、汎用レジ
スタ、即値、メモリの各フラグを持つディスティネーシ
ョン制御フラグ(DF)と、を有している。
オペランド制御フラグがセットされ、オペランド制御フ
ラグは、汎用レジスタ、ワークレジスタ、即値、メモリ
の各フラグを持つソース制御フラグ(SF)と、汎用レジ
スタ、即値、メモリの各フラグを持つディスティネーシ
ョン制御フラグ(DF)と、を有している。
例えば、二項演算の場合には、ソースおよびディスティ
ネーションオペランドのうち、一方のオペランドを汎用
あるいはワークレジスタに退避するとともに、退避先を
各々のフラグにセットする。そして、他方のオペランド
をアクセスした後、フラグを点検して一方のオペランド
を取り出し、これらソースおよびディスティネーション
オペランドに対してOPCODE1、2で示された命令を実行
する。
ネーションオペランドのうち、一方のオペランドを汎用
あるいはワークレジスタに退避するとともに、退避先を
各々のフラグにセットする。そして、他方のオペランド
をアクセスした後、フラグを点検して一方のオペランド
を取り出し、これらソースおよびディスティネーション
オペランドに対してOPCODE1、2で示された命令を実行
する。
このように、オペランドを命令の処理開始まで、汎用レ
ジスタあるいはワークレジスタに退避しておくことがで
きるので、退避専用のレジスタ等を備える必要がなく、
ハードウェアの規模増大を抑えることができる。
ジスタあるいはワークレジスタに退避しておくことがで
きるので、退避専用のレジスタ等を備える必要がなく、
ハードウェアの規模増大を抑えることができる。
第2図は一実施例の具体的な構成を示す図である。
第2図において、10はマイクロプロセッサであり、マイ
クロプロセッサ10は、命令フィールドOMを格納する命令
レジスタ11と、命令フィールドOMを解読して命令の種別
を判読する解読部12と、を有し、解読部12は、OPCODE
1、2を解読してマイクロプログラムの先頭アドレスを
出力したり、オペランドのアクセスタイプ(リード/ラ
イト)を指定する信号を出力するデコーダ12a、12bと、
OPRND1、2を解読してオペランドモードを特定し、モー
ド毎の指示信号を出力するデコーダ12cと、を有してい
る。なお、上記デコーダ12aおよびデコーダ12bは解読手
段としての機能を有し、例えば、デコーダ12aは単項命
令を担当し、デコーダ12bは二項命令を担当する。ま
た、上記デコーダ12cは特定手段としての機能を有して
いる。
クロプロセッサ10は、命令フィールドOMを格納する命令
レジスタ11と、命令フィールドOMを解読して命令の種別
を判読する解読部12と、を有し、解読部12は、OPCODE
1、2を解読してマイクロプログラムの先頭アドレスを
出力したり、オペランドのアクセスタイプ(リード/ラ
イト)を指定する信号を出力するデコーダ12a、12bと、
OPRND1、2を解読してオペランドモードを特定し、モー
ド毎の指示信号を出力するデコーダ12cと、を有してい
る。なお、上記デコーダ12aおよびデコーダ12bは解読手
段としての機能を有し、例えば、デコーダ12aは単項命
令を担当し、デコーダ12bは二項命令を担当する。ま
た、上記デコーダ12cは特定手段としての機能を有して
いる。
マイクロプロセッサ10は解読されたオペランドモード毎
に内部回路を制御するモード制御部13を有し、モード制
御部13(第1および第2のアクセス手段)はオペランド
モードがメモリ指定の場合、オペランドアドレスを生成
するアドレス計算部13aと、オペランドモードが即値
(イミディエート)指定の場合、命令フィールドOM中の
オペランドを出力するイミディエート発生部12bと、オ
ペランドモードがレジスタ指定の場合、後述の汎用レジ
スタ18を管理して所定のレジスタブロックを選択するレ
ジスタ選択部13cと、を含んで構成されている。
に内部回路を制御するモード制御部13を有し、モード制
御部13(第1および第2のアクセス手段)はオペランド
モードがメモリ指定の場合、オペランドアドレスを生成
するアドレス計算部13aと、オペランドモードが即値
(イミディエート)指定の場合、命令フィールドOM中の
オペランドを出力するイミディエート発生部12bと、オ
ペランドモードがレジスタ指定の場合、後述の汎用レジ
スタ18を管理して所定のレジスタブロックを選択するレ
ジスタ選択部13cと、を含んで構成されている。
さらに、マイクロプロセッサ10は、解読された命令種
別、オペランドモード、アクセスタイプ、単項/二項命
令の区別、などを監視するとともに、これらの監視情報
に従ってマイクロプログラムを選択したり、フラグ制御
信号を生成するマイクロ選択およびフラグ生成部14と、
フラグ生成部14からのフラグ制御信号によりセット/リ
セットされる制御フラグ部15と、オペランドモードがメ
モリ指定の場合、オペランドアドレスを保持するアドレ
ス保持部16と、オペランドモードがメモリ指定の場合、
メモリMからのオペランド読出しを制御するオペランド
読出し部(第1および第2のアクセス手段)17と、メモ
リMからの読出された1つのオペランドを格納するオペ
ランド格納部MDIと、オペランドモードが即値の場合、
命令フィールドOM中のオペランドを格納する即値格納部
IDIと、レジスタ指定のオペランドを保持し、あるい
は、必要に応じてオペランド格納部MDIや即値格納部IDI
内のオペランドを取込んで退避のためにこれらを格納す
る他、実行処理途中において発生する各種データ等を一
時的に格納する汎用レジスタ(あるいはワークレジス
タ)18と、命令種別毎のマイクロプログラムやオペラン
ド退避用のマイクロプログラム等を内部に持ち、アドレ
ス指定によって所定のプログラムを起動させ、オペラン
ドの退避および命令の実行処理を制御するマイクロプロ
グラムROM(退避手段)19と、オペランド格納部MDI、即
値格納部IDI、汎用レジスタ18などから供給されたソー
スおよびディスティネーションオペランドに対し、その
ときに起動中のマイクロプログラムに従ってMDIあるい
はIDIから汎用レジスタ18へのオペランド退避の実行
や、各種命令を実行する実行部(退避手段、実行手段)
20と、マイクロプログラムの制御を受け、メモリMにオ
ペランドを書き込んだり、あるいは、退避プログラムの
場合、汎用レジスタ18にソースあるいはディスティネー
ションオペランドを書き込んで退避させるオペランド書
き込み制御部21と、を有している。
別、オペランドモード、アクセスタイプ、単項/二項命
令の区別、などを監視するとともに、これらの監視情報
に従ってマイクロプログラムを選択したり、フラグ制御
信号を生成するマイクロ選択およびフラグ生成部14と、
フラグ生成部14からのフラグ制御信号によりセット/リ
セットされる制御フラグ部15と、オペランドモードがメ
モリ指定の場合、オペランドアドレスを保持するアドレ
ス保持部16と、オペランドモードがメモリ指定の場合、
メモリMからのオペランド読出しを制御するオペランド
読出し部(第1および第2のアクセス手段)17と、メモ
リMからの読出された1つのオペランドを格納するオペ
ランド格納部MDIと、オペランドモードが即値の場合、
命令フィールドOM中のオペランドを格納する即値格納部
IDIと、レジスタ指定のオペランドを保持し、あるい
は、必要に応じてオペランド格納部MDIや即値格納部IDI
内のオペランドを取込んで退避のためにこれらを格納す
る他、実行処理途中において発生する各種データ等を一
時的に格納する汎用レジスタ(あるいはワークレジス
タ)18と、命令種別毎のマイクロプログラムやオペラン
ド退避用のマイクロプログラム等を内部に持ち、アドレ
ス指定によって所定のプログラムを起動させ、オペラン
ドの退避および命令の実行処理を制御するマイクロプロ
グラムROM(退避手段)19と、オペランド格納部MDI、即
値格納部IDI、汎用レジスタ18などから供給されたソー
スおよびディスティネーションオペランドに対し、その
ときに起動中のマイクロプログラムに従ってMDIあるい
はIDIから汎用レジスタ18へのオペランド退避の実行
や、各種命令を実行する実行部(退避手段、実行手段)
20と、マイクロプログラムの制御を受け、メモリMにオ
ペランドを書き込んだり、あるいは、退避プログラムの
場合、汎用レジスタ18にソースあるいはディスティネー
ションオペランドを書き込んで退避させるオペランド書
き込み制御部21と、を有している。
なお、22はマイクロ選択およびフラグ生成部14からの管
理を受けてデコーダ12aおよびデコーダ12bからのマイク
ロアドレスを切り換えるマルチプレクサ、23はマイクロ
プログラムROM19や制御フラグ部15からの管理を受けてM
DI、IDI、汎用レジスタ18を切り換えソース、ディステ
ィネーションオペランドとして実行部20に供給するマル
チプレクサである。
理を受けてデコーダ12aおよびデコーダ12bからのマイク
ロアドレスを切り換えるマルチプレクサ、23はマイクロ
プログラムROM19や制御フラグ部15からの管理を受けてM
DI、IDI、汎用レジスタ18を切り換えソース、ディステ
ィネーションオペランドとして実行部20に供給するマル
チプレクサである。
また、次表1、2は上述の制御フラグ部15内に設けられ
たソース制御フラグSFおよびディスティネーション制御
フラグDFのセット状態と、その内容を示しており、例え
ば、SFが“00"でDFが“11"ならば、ソースオペランドは
汎用レジスタ18に格納され、ディスティネーションオペ
ランドはメモリMに存在していることを示している。
たソース制御フラグSFおよびディスティネーション制御
フラグDFのセット状態と、その内容を示しており、例え
ば、SFが“00"でDFが“11"ならば、ソースオペランドは
汎用レジスタ18に格納され、ディスティネーションオペ
ランドはメモリMに存在していることを示している。
次に、作用を説明する。
命令フィールドOMが二項命令であって、OPRND1をソース
側、OPRND2をディスティネーション側とするとき、デコ
ーダ12aにより二項命令が解読され、また、デコーダ12c
はOPRND1、2を解読してソースおよびディスティネーシ
ョンのオペランドモードを特定する。そして、この特定
に際しては次のような組合せになる場合がある。
側、OPRND2をディスティネーション側とするとき、デコ
ーダ12aにより二項命令が解読され、また、デコーダ12c
はOPRND1、2を解読してソースおよびディスティネーシ
ョンのオペランドモードを特定する。そして、この特定
に際しては次のような組合せになる場合がある。
(イ)ソースオペランドS→メモリ、ディスティネーシ
ョンD→メモリ、 (ロ)あるいは、ソースオペランドS→即値、ディステ
ィネーションD→即値、 第3図は上記(イ)の場合の演算処理を示すタイミング
チャートである。
ョンD→メモリ、 (ロ)あるいは、ソースオペランドS→即値、ディステ
ィネーションD→即値、 第3図は上記(イ)の場合の演算処理を示すタイミング
チャートである。
第3図において、解読部12は、OPCODE1およびOPRND2を
解読し、二項命令であることを判読してOPRND1をアドレ
ス計算部13aに出力する。このとき制御フラグ15のソー
ス制御フラグSFは“11"(メモリ)にセットされる。ア
ドレス計算部13aはOPRND1からメモリM内のソースオペ
ランドアドレスを計算し、オペランド読出し部17に出力
してメモリMからのソースオペランドを読み出させ、オ
ペランド格納部MDIに格納する。同時に、デコーダ12aか
らはOPCODE1に従ってマイクロアドレスが出力され、マ
イクロ選択部14はOPRND1,2の組合わせが両方ともメモリ
であることからこれを選択してマイクロプログラム19の
退避マイクロプログラムが起動される。ソースフラグSF
は前述の通り“11"(メモリ)指定でディスティネーシ
ョン制御フラグDFは一時的に“01"とし退避先のワーク
レジスタ番号を発生させる。そして、実行部20は、この
マイクロプログラムに従って先に読み出されたソースオ
ペランドをオペランド格納部MDIから汎用レジスタ(ワ
ークレジスタ)18内に退避させる処理を実行する。この
処理後、制御フラグ部15のソース制御フラグSFは“01"
(ワークレジスタ)に変更される。
解読し、二項命令であることを判読してOPRND1をアドレ
ス計算部13aに出力する。このとき制御フラグ15のソー
ス制御フラグSFは“11"(メモリ)にセットされる。ア
ドレス計算部13aはOPRND1からメモリM内のソースオペ
ランドアドレスを計算し、オペランド読出し部17に出力
してメモリMからのソースオペランドを読み出させ、オ
ペランド格納部MDIに格納する。同時に、デコーダ12aか
らはOPCODE1に従ってマイクロアドレスが出力され、マ
イクロ選択部14はOPRND1,2の組合わせが両方ともメモリ
であることからこれを選択してマイクロプログラム19の
退避マイクロプログラムが起動される。ソースフラグSF
は前述の通り“11"(メモリ)指定でディスティネーシ
ョン制御フラグDFは一時的に“01"とし退避先のワーク
レジスタ番号を発生させる。そして、実行部20は、この
マイクロプログラムに従って先に読み出されたソースオ
ペランドをオペランド格納部MDIから汎用レジスタ(ワ
ークレジスタ)18内に退避させる処理を実行する。この
処理後、制御フラグ部15のソース制御フラグSFは“01"
(ワークレジスタ)に変更される。
一方、解読部12は、OPCODE1およびOPRND1に引き続いてO
PCODE2およびOPRND2を解読し、OPRND2をアドレス計算部
13aに出力する。アドレス計算部13aはOPRND2からメモリ
M内のディスティネーションオペランドアドレスを計算
し、オペランド読出し部17に出力してメモリMからのデ
ィスティネーションオペランドを読み出させる。このデ
ィスティネーションオペランドはオペランド格納部MDI
に格納される。そして、マイクロプログラム19は、二項
演算命令に対応するマイクロプログラムを起動し、実行
部20は、このマイクロプログラムを実行する。マイクロ
プログラムの実行時において、実行部20は、制御フラグ
部15のソース制御フラグSFを点検してソースオペランド
の退避先、すなわち、汎用レジスタ18からソースオペラ
ンドを取出し、また、オペランド格納部MDIからディス
ティネーションオペランドを取出してこれらのオペラン
ドに対してOPCODE1、2から判読された命令を実行する
命令個別処理を行う。
PCODE2およびOPRND2を解読し、OPRND2をアドレス計算部
13aに出力する。アドレス計算部13aはOPRND2からメモリ
M内のディスティネーションオペランドアドレスを計算
し、オペランド読出し部17に出力してメモリMからのデ
ィスティネーションオペランドを読み出させる。このデ
ィスティネーションオペランドはオペランド格納部MDI
に格納される。そして、マイクロプログラム19は、二項
演算命令に対応するマイクロプログラムを起動し、実行
部20は、このマイクロプログラムを実行する。マイクロ
プログラムの実行時において、実行部20は、制御フラグ
部15のソース制御フラグSFを点検してソースオペランド
の退避先、すなわち、汎用レジスタ18からソースオペラ
ンドを取出し、また、オペランド格納部MDIからディス
ティネーションオペランドを取出してこれらのオペラン
ドに対してOPCODE1、2から判読された命令を実行する
命令個別処理を行う。
このようにソースおよびディスティネーションオペラン
ドがともに、メモリ指定の場合、先にアクセスされた一
方のオペランドを汎用レジスタ18に退避することができ
るので、専用の退避レジスタ等を備える必要がなく、ハ
ードウェアの規模を増大させることがない。すなわち、
特別なレジスタ等を設けることなく、2つ以上のオペラ
ンドのモードに応じて必要な場合にのみ、オペランドを
命令処理開始まで退避しておくことができるので、マイ
クロの共通化、処理速度の向上およびハードウェアの削
減といった効果を発揮することができる。
ドがともに、メモリ指定の場合、先にアクセスされた一
方のオペランドを汎用レジスタ18に退避することができ
るので、専用の退避レジスタ等を備える必要がなく、ハ
ードウェアの規模を増大させることがない。すなわち、
特別なレジスタ等を設けることなく、2つ以上のオペラ
ンドのモードに応じて必要な場合にのみ、オペランドを
命令処理開始まで退避しておくことができるので、マイ
クロの共通化、処理速度の向上およびハードウェアの削
減といった効果を発揮することができる。
一方、メモリ−レジスタ指定の演算処理を行う場合に
は、第4図にそのタイミングチャートを示すように、退
避マイクロプログラムは起動せず、例えば、OPRND1に従
ってメモリからソースオペランドをアクセスし、OPRND2
に従ってレジスタからディスティネーションオペランド
をアクセスしてこれらのオペランドに対して演算処理を
実行するといった動が行われる。
は、第4図にそのタイミングチャートを示すように、退
避マイクロプログラムは起動せず、例えば、OPRND1に従
ってメモリからソースオペランドをアクセスし、OPRND2
に従ってレジスタからディスティネーションオペランド
をアクセスしてこれらのオペランドに対して演算処理を
実行するといった動が行われる。
あるいは、第5図にタイミングチャートを示すようにメ
モリ−メモリ指定のデータ転送処理を行う場合には、ソ
ースオペランドだけを読込めばよいので退避マイクロプ
ログラムは起動されない。
モリ−メモリ指定のデータ転送処理を行う場合には、ソ
ースオペランドだけを読込めばよいので退避マイクロプ
ログラムは起動されない。
本発明によれば、汎用レジスタやワークレジスタ等をオ
ペランド退避用として機能させることができるので、退
避専用のレジスタ等を不要にすることができ、ハードウ
ェアの規模を削減することができる。
ペランド退避用として機能させることができるので、退
避専用のレジスタ等を不要にすることができ、ハードウ
ェアの規模を削減することができる。
第1〜5図は本発明に係るマイクロプロセッサの一実施
例を示す図であり、 第1図はその基本的な動作を説明する概念図、 第2図はその具体的な構成を示すブロック図、 第3図はそのメモリ−メモリ指定の演算処理を示すタイ
ミングチャート、 第4図はそのメモリ−レジスタ指定の演算処理を示すタ
イミングチャート、 第5図はメモリ−メモリ指定のデータ転送処理を示すタ
イミングチャートである。 第6図は命令フィールドを示す図である。 12a、12b……デコーダ(解読手段)、12c……デコーダ
(特定手段)、13……モード制御部(第1、第2のアク
セス手段)、17……オペランド読出し部(第1、第2の
アクセス手段)、18……汎用レジスタ、19……マイクロ
プログラム(退避手段)、20……実行部(退避手段、実
行手段)。
例を示す図であり、 第1図はその基本的な動作を説明する概念図、 第2図はその具体的な構成を示すブロック図、 第3図はそのメモリ−メモリ指定の演算処理を示すタイ
ミングチャート、 第4図はそのメモリ−レジスタ指定の演算処理を示すタ
イミングチャート、 第5図はメモリ−メモリ指定のデータ転送処理を示すタ
イミングチャートである。 第6図は命令フィールドを示す図である。 12a、12b……デコーダ(解読手段)、12c……デコーダ
(特定手段)、13……モード制御部(第1、第2のアク
セス手段)、17……オペランド読出し部(第1、第2の
アクセス手段)、18……汎用レジスタ、19……マイクロ
プログラム(退避手段)、20……実行部(退避手段、実
行手段)。
Claims (1)
- 【請求項1】少なくとも2組のオプコードフィールドお
よびオペランドフィールドからなる命令コード列が入力
され、 該オプコードフィールド内のコード情報から命令の種別
を解読する解読手段と、 前記オペランドフィールド内のコード情報からオペラン
ドの存在するレジスタ、即値、メモリなどの位置を特定
する特定手段と、 を具備し、 前記命令の種別が少なくとも2つのオペランドを取り扱
う処理命令で、かつ、前記特定された位置が共に即値あ
るいはメモリの場合、該2つのオペランドの何れか一方
を先にアクセスする第1のアクセス手段と、 該アクセスされた一方のオペランドを汎用もしくはワー
クレジスタに退避する退避手段と、 該一方のオペランドが退避された後、他方のオペランド
をアクセスする第2のアクセス手段と、 アクセスされた他方のオペランドおよび汎用もしくはワ
ークレジスタ内の一方のオペランドに対し、前記命令の
種別に従って処理を実行する実行手段と、 を備えたことを特徴とするマイクロプロセッサ。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP63033089A JPH07104780B2 (ja) | 1988-02-16 | 1988-02-16 | マイクロプロセッサ |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP63033089A JPH07104780B2 (ja) | 1988-02-16 | 1988-02-16 | マイクロプロセッサ |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH01207825A JPH01207825A (ja) | 1989-08-21 |
JPH07104780B2 true JPH07104780B2 (ja) | 1995-11-13 |
Family
ID=12376952
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP63033089A Expired - Lifetime JPH07104780B2 (ja) | 1988-02-16 | 1988-02-16 | マイクロプロセッサ |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH07104780B2 (ja) |
-
1988
- 1988-02-16 JP JP63033089A patent/JPH07104780B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JPH01207825A (ja) | 1989-08-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6021265A (en) | Interoperability with multiple instruction sets | |
EP2018609B1 (en) | Pre-decoding variable length instructions | |
KR101812569B1 (ko) | 다중 명령 세트에 의해 사용되는 레지스터 간의 매핑 | |
KR101503554B1 (ko) | 에일리어스 어드레싱을 이용한 가변 길이 인스트럭션 인코딩의 구현 | |
JP5313228B2 (ja) | 適切なプレデコーディングにより可変長命令セットから命令をプレロードするシステム、方法およびソフトウェア | |
US4897787A (en) | Data processing system | |
JP2004506263A (ja) | 拡張レジスタモードで拡張レジスタセットにアクセスするcpu | |
KR100309615B1 (ko) | 고속프로그램가능로직컨트롤러(plc) | |
JP3781519B2 (ja) | プロセッサの命令制御機構 | |
JP2003525476A (ja) | プログラムの命令を実行するための装置及び方法 | |
KR19990036893A (ko) | 다중 어드레싱 모드를 실행하는 프로세서 구조 및 그 설계방법 | |
KR19990037573A (ko) | 사용가능한 연산코드를 최대화하고 다양한 어드레싱 모드를 실행하는 프로세서 구조 및 명령 세트 | |
KR920004279B1 (ko) | 포인터레지스터를 구비한 마이크로프로세서 | |
JPH03233630A (ja) | 情報処理装置 | |
EP0240606B1 (en) | Pipe-line processing system and microprocessor using the system | |
JPH07104780B2 (ja) | マイクロプロセッサ | |
US5072372A (en) | Indirect literal expansion for computer instruction sets | |
JP2848727B2 (ja) | 並列演算処理装置 | |
JP2581565B2 (ja) | ガード付命令を実行するデータ処理装置 | |
JPH0218729B2 (ja) | ||
JP2583506B2 (ja) | データ処理装置 | |
JPH01124049A (ja) | マイクロプロセッサ | |
EP0507958A1 (en) | Device for processing information | |
JPS6148002A (ja) | プログラマブル・コントロ−ラ | |
JPH06332701A (ja) | 情報処理装置 |