JPH0625966B2 - マイクロプログラム制御装置 - Google Patents
マイクロプログラム制御装置Info
- Publication number
- JPH0625966B2 JPH0625966B2 JP14235686A JP14235686A JPH0625966B2 JP H0625966 B2 JPH0625966 B2 JP H0625966B2 JP 14235686 A JP14235686 A JP 14235686A JP 14235686 A JP14235686 A JP 14235686A JP H0625966 B2 JPH0625966 B2 JP H0625966B2
- Authority
- JP
- Japan
- Prior art keywords
- field
- bit
- instruction
- micro
- register
- 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
Description
【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、マイクロプログラム制御装置に関し、特にマ
イクロプログラム内で使用する定数の発生手段に関す
る。
イクロプログラム内で使用する定数の発生手段に関す
る。
一般にマイクロプログラム制御装置において、一連のマ
イクロ命令からなるマイクロプログラムは、第2図に示
すように制御記憶201に格納されており、それが順次
マイクロ命令サイクル毎に読み出されて、マイクロ命令
レジスタ202に一時的に格納された後、このマイクロ
命令レジスタの出力をマイクロ命令デコーダ203によ
ってデコードすることによって、マイクロ操作命令が指
定する情報(マイクロオーダー)aaa〜zzzを発生させレ
ジスタ・ファイル204や算術論理演算装置205等の
各制御点に与えられる。
イクロ命令からなるマイクロプログラムは、第2図に示
すように制御記憶201に格納されており、それが順次
マイクロ命令サイクル毎に読み出されて、マイクロ命令
レジスタ202に一時的に格納された後、このマイクロ
命令レジスタの出力をマイクロ命令デコーダ203によ
ってデコードすることによって、マイクロ操作命令が指
定する情報(マイクロオーダー)aaa〜zzzを発生させレ
ジスタ・ファイル204や算術論理演算装置205等の
各制御点に与えられる。
レジスタ・ファイル204と算術論理演算装置205間
をデータ・バス206を介してデータを転送するための
マイクロ命令を転送マイクロ命令、算術論理演算装置に
おける演算の種類を指定するためのマイクロ命令を演算
マイクロ命令、マイクロプログラムのシーケンスを決定
するために次に実行するマイクロ命令を制御記憶201
に対して指定するマイクロ命令を分岐マイクロ命令、さ
らにこれらのマイクロ命令で制御できない制御点を制御
するためのマイクロ命令を制御マイクロ命令と呼ぶ。
をデータ・バス206を介してデータを転送するための
マイクロ命令を転送マイクロ命令、算術論理演算装置に
おける演算の種類を指定するためのマイクロ命令を演算
マイクロ命令、マイクロプログラムのシーケンスを決定
するために次に実行するマイクロ命令を制御記憶201
に対して指定するマイクロ命令を分岐マイクロ命令、さ
らにこれらのマイクロ命令で制御できない制御点を制御
するためのマイクロ命令を制御マイクロ命令と呼ぶ。
マイクロ命令の形式として第3図aに示すように、転
送、演算、分岐および制御マイクロ命令は一語のマイク
ロ命令の特定のビットあるいはビット列の状態(このビ
ットあるいはビット列を識別子IDと呼ぶ)によって識
別されるものがある。各命令の機能は、その他のビット
列(機能フィールドFUNCと呼ぶ)この命令形式では、命
令語長が短くてすむために制御記憶の容量が少ないかわ
りに、一マイクロ命令サイクルで制御可能な制御点の種
類が限定されるために高速な処理には不向であるという
欠点を持つ。
送、演算、分岐および制御マイクロ命令は一語のマイク
ロ命令の特定のビットあるいはビット列の状態(このビ
ットあるいはビット列を識別子IDと呼ぶ)によって識
別されるものがある。各命令の機能は、その他のビット
列(機能フィールドFUNCと呼ぶ)この命令形式では、命
令語長が短くてすむために制御記憶の容量が少ないかわ
りに、一マイクロ命令サイクルで制御可能な制御点の種
類が限定されるために高速な処理には不向であるという
欠点を持つ。
一方、第3図bに示すように一命令のなかに転送、演
算、分岐および制御機能に関する情報をすべて持たせる
(それぞれのフィールドを転送フィールドTRN、演算
フィールドop、分岐フィールドBR、制御フィールド
CNTと呼ぶ)命令形式では、一マイクロ命令サイクル
において複数の制御点を制御することができるが、すべ
てのマイクロ命令において転送、演算、分岐および制御
機能を必要とすることは稀であるため、不必要な情報が
マイクロ命令に含まれていることが多く、一命令の語長
が長くなる割には有効に使用される情報が少なくなると
いう欠点がある。
算、分岐および制御機能に関する情報をすべて持たせる
(それぞれのフィールドを転送フィールドTRN、演算
フィールドop、分岐フィールドBR、制御フィールド
CNTと呼ぶ)命令形式では、一マイクロ命令サイクル
において複数の制御点を制御することができるが、すべ
てのマイクロ命令において転送、演算、分岐および制御
機能を必要とすることは稀であるため、不必要な情報が
マイクロ命令に含まれていることが多く、一命令の語長
が長くなる割には有効に使用される情報が少なくなると
いう欠点がある。
一般には、第3図cに示すように一命令を専用のフィー
ルド(ここでは転送命令用のTRNを割り当てている)
と機能可変のフィールドを持たせることによって、フレ
キシブルにマイクロ命令の機能を変化させることで、語
長が短くしかも一マイクロ命令サイクルで制御可能な制
御点を複数個得られるようなマイクロ命令の形式が選択
することが多い。
ルド(ここでは転送命令用のTRNを割り当てている)
と機能可変のフィールドを持たせることによって、フレ
キシブルにマイクロ命令の機能を変化させることで、語
長が短くしかも一マイクロ命令サイクルで制御可能な制
御点を複数個得られるようなマイクロ命令の形式が選択
することが多い。
転送マイクロ命令では、レジスタ・ファイルや算術論演
算装置などのソース・オペランドと呼ばれるデータ転送
の送り元のレジスタ資源を指定し、デスティネーション
・オペランドと呼ばれる送り先のレジスタ資源を指定す
る。ただし、ソース・オペランド資源としてはレジスタ
資源だけではなくマイクロプログラム中で必要とされる
定数を選択する場合がある。
算装置などのソース・オペランドと呼ばれるデータ転送
の送り元のレジスタ資源を指定し、デスティネーション
・オペランドと呼ばれる送り先のレジスタ資源を指定す
る。ただし、ソース・オペランド資源としてはレジスタ
資源だけではなくマイクロプログラム中で必要とされる
定数を選択する場合がある。
これらの定数は、マイクロプログラム中で使用される種
類が少ない場合は、あらかじめ定数を定数レジスタに固
定しておき、レジスタ資源としてソース・オペランドと
して指定する方法が取られる。しかしながら、この方法
では一度設定された定数を変化させることができないた
め、融通性を極めて欠くという欠点がある。
類が少ない場合は、あらかじめ定数を定数レジスタに固
定しておき、レジスタ資源としてソース・オペランドと
して指定する方法が取られる。しかしながら、この方法
では一度設定された定数を変化させることができないた
め、融通性を極めて欠くという欠点がある。
定数を発生させる別の方法としてマイクロ命令の一部に
定数フィールドと呼ぶフィールドを設け、転送マイクロ
命令によってソース・オペランドとして定数が指定され
た場合、このフィールドの情報を定数として転送するこ
とが用いられる。定数フィールドをマイクロ命令の特定
の部分に専用に割り当てると、転送命令のソース・オペ
ランドとして定数が指定されない場合、無駄な情報を含
むことになるため演算、分岐あるいは制御用のフィール
ドを定数フィールドの代替として用いることが考えられ
る。
定数フィールドと呼ぶフィールドを設け、転送マイクロ
命令によってソース・オペランドとして定数が指定され
た場合、このフィールドの情報を定数として転送するこ
とが用いられる。定数フィールドをマイクロ命令の特定
の部分に専用に割り当てると、転送命令のソース・オペ
ランドとして定数が指定されない場合、無駄な情報を含
むことになるため演算、分岐あるいは制御用のフィール
ドを定数フィールドの代替として用いることが考えられ
る。
このために定数フィールドのビット数は、データ処理の
基本語長(内部バス幅で16〜32ビット)より比較的
小さく(基本語長16〜32に対して8ビット程度)、
表現できる定数の範囲も限定される(8ビットの場合0
〜255の範囲)。
基本語長(内部バス幅で16〜32ビット)より比較的
小さく(基本語長16〜32に対して8ビット程度)、
表現できる定数の範囲も限定される(8ビットの場合0
〜255の範囲)。
次に従来のマイクロ命令形式、特に定数フィールドの構
成について、一例を図面を参照しつつ説明する。
成について、一例を図面を参照しつつ説明する。
第4図は、マイクロ命令形式の一例で、転送フィールド
401、演算、分岐または制御を指定する命令フィール
ド402で構成される。転送フィールド401は、ソー
ス・オペランドを指定するフィールド403(以下SR
Cフィールドと呼ぶ)とデスティネーション・オペラン
ドを指定するフィールド404(以下DSTフィール
ド)に分かれている。さらに命令フィールド402は、
識別子405と機能フィールド406から構成され、識
別子405の値によって機能フィールド406の持つ意
味が演算、分岐または制御用のフィールドに変化する。
ただしSRCフィールド403として定数が選択された
場合、識別子405および機能フィールド406(すな
わち命令フィールド402)は従来の意味として無効に
なり、定数フィールドとして用いられる。
401、演算、分岐または制御を指定する命令フィール
ド402で構成される。転送フィールド401は、ソー
ス・オペランドを指定するフィールド403(以下SR
Cフィールドと呼ぶ)とデスティネーション・オペラン
ドを指定するフィールド404(以下DSTフィール
ド)に分かれている。さらに命令フィールド402は、
識別子405と機能フィールド406から構成され、識
別子405の値によって機能フィールド406の持つ意
味が演算、分岐または制御用のフィールドに変化する。
ただしSRCフィールド403として定数が選択された
場合、識別子405および機能フィールド406(すな
わち命令フィールド402)は従来の意味として無効に
なり、定数フィールドとして用いられる。
第5図は、前記従来の命令形式を有したマイクロ命令を
採用したマイクロプログラム制御装置の構成を示す図で
ある。本図面を参照して、マイクロプログラム制御装置
におけるデータ転送、特に定数の転送動作について説明
する。マイクロ・アドレス・レジスタ501で指定され
る制御記憶502に格納されたマイクロ命令は、マイク
ロ命令レジスタ503に格納される。マイクロ命令レジ
スタ503の出力は、マイクロ命令デコーダ504に接
続され、転送フィールドならびに命令フィールドの内容
(特にSRCフィールドおよび識別子IDに対応する出
力srcおよびid)にしたがってマイクロオーダIMD,
OPR,BR,CNIを発生させる。マイクロオーダI
MDは、SRCフィールド403においてソース・オペ
ランドとして定数が指定されたことを示す。マイクロ・
オーダOPR,BR,CNIは識別子405において演
算、分岐、制御機能が指定されたことをそれぞれ示すも
のである。ただし、SRCフィールド403においてソ
ース・オペランドとして定数が指定された場合、OP
R,BR,CNTのそれぞれのマイクロ・オーダは発生
しない。機能フィールド402に相当するマイクロ命令
レジスタ503の出力funcは、それぞれ演算制御装置5
05、分岐制御装置506、制御装置507に接続さ
れ、それぞれの制御装置はマイクロオーダOPR,B
R,CNTがアクティブになった場合、funcの内容を解
釈しさらに細分化されたマイクロオーダを発生させる。
SRCフィールド403およびDSTフィールド404
に相当するマイクロ命令レジスタ503の出力srcなら
びにdstは、ソース・オペランド・バス523およびデ
スティネーション・オペランド・バス524を経由して
それぞれソース・オペランド・デコーダ510およびデ
スティネーション・オペランド・デコーダ511に接続
される。ソース・オペランド・デコーダ510は、src
の内容に従ってデータ・バス520に接続されたレジス
タ・ファイル521に対する読出し選択信号RDnを発
生する。読出し選択信号RDnに対応するレジスタ・フ
ァイル521内のレジスタRnのデータがデータ・バス
520に読み出される。
採用したマイクロプログラム制御装置の構成を示す図で
ある。本図面を参照して、マイクロプログラム制御装置
におけるデータ転送、特に定数の転送動作について説明
する。マイクロ・アドレス・レジスタ501で指定され
る制御記憶502に格納されたマイクロ命令は、マイク
ロ命令レジスタ503に格納される。マイクロ命令レジ
スタ503の出力は、マイクロ命令デコーダ504に接
続され、転送フィールドならびに命令フィールドの内容
(特にSRCフィールドおよび識別子IDに対応する出
力srcおよびid)にしたがってマイクロオーダIMD,
OPR,BR,CNIを発生させる。マイクロオーダI
MDは、SRCフィールド403においてソース・オペ
ランドとして定数が指定されたことを示す。マイクロ・
オーダOPR,BR,CNIは識別子405において演
算、分岐、制御機能が指定されたことをそれぞれ示すも
のである。ただし、SRCフィールド403においてソ
ース・オペランドとして定数が指定された場合、OP
R,BR,CNTのそれぞれのマイクロ・オーダは発生
しない。機能フィールド402に相当するマイクロ命令
レジスタ503の出力funcは、それぞれ演算制御装置5
05、分岐制御装置506、制御装置507に接続さ
れ、それぞれの制御装置はマイクロオーダOPR,B
R,CNTがアクティブになった場合、funcの内容を解
釈しさらに細分化されたマイクロオーダを発生させる。
SRCフィールド403およびDSTフィールド404
に相当するマイクロ命令レジスタ503の出力srcなら
びにdstは、ソース・オペランド・バス523およびデ
スティネーション・オペランド・バス524を経由して
それぞれソース・オペランド・デコーダ510およびデ
スティネーション・オペランド・デコーダ511に接続
される。ソース・オペランド・デコーダ510は、src
の内容に従ってデータ・バス520に接続されたレジス
タ・ファイル521に対する読出し選択信号RDnを発
生する。読出し選択信号RDnに対応するレジスタ・フ
ァイル521内のレジスタRnのデータがデータ・バス
520に読み出される。
一方デスティネーション・オペランド・デコーダ511
は、dstの内容に従ってレジスタ・ファイル521に対
する書込み選択信号WRnを発生する。書込み選択信号
WRnに対応するレジスタ・ファイル521内のレジス
タRnには、データ・バス520上のデータが書き込ま
れる。ソース・オペランド・デコーダ510およびデス
ティネーション・オペランド・デコーダ511は、レジ
スタ・ファイル520に対する読出し選択信号RDn、
書込み選択信号WRnの他に、データ・バス520に接
続された他のレジスタ資源522に対する読出し選択信
号READnおよび書込み選択信号WRITEnを発生
し、同様の方法でデータ・バス520を介したレジスタ
資源間でのデータ転送を制御する。SRCオペランド・
フィールド403で定数が指定され、マイクロ命令デコ
ーダ504によってマイクロオーダIMDが発生する
と、命令フィールド402に対応するマイクロ命令レジ
スタ503の出力opが接続される定数バッファ512
が選択され、opがデータ・バス520の下位に出力さ
れる。この時、定数バッファ512の上位側は複数の0
をデータ・バス520の上位に出力し、opの内容をゼ
ロ拡張する。
は、dstの内容に従ってレジスタ・ファイル521に対
する書込み選択信号WRnを発生する。書込み選択信号
WRnに対応するレジスタ・ファイル521内のレジス
タRnには、データ・バス520上のデータが書き込ま
れる。ソース・オペランド・デコーダ510およびデス
ティネーション・オペランド・デコーダ511は、レジ
スタ・ファイル520に対する読出し選択信号RDn、
書込み選択信号WRnの他に、データ・バス520に接
続された他のレジスタ資源522に対する読出し選択信
号READnおよび書込み選択信号WRITEnを発生
し、同様の方法でデータ・バス520を介したレジスタ
資源間でのデータ転送を制御する。SRCオペランド・
フィールド403で定数が指定され、マイクロ命令デコ
ーダ504によってマイクロオーダIMDが発生する
と、命令フィールド402に対応するマイクロ命令レジ
スタ503の出力opが接続される定数バッファ512
が選択され、opがデータ・バス520の下位に出力さ
れる。この時、定数バッファ512の上位側は複数の0
をデータ・バス520の上位に出力し、opの内容をゼ
ロ拡張する。
前記従来の定数転送時には、命令フィールド402で表
現可能な値より大きな定数(以下ロング・イミディェー
トと言い、命令フィールド402で表現可能な定数をイ
ミディェートと呼ぶことにする)を発生させる場合、イ
ミディェート転送と多ビット・シフトや論理和等の演算
命令を用いて、ロング・イミディェートを生成しなけれ
ばならず、ロング・イミディェート生成に多くのマイク
ロ命令を必要とすることになる。
現可能な値より大きな定数(以下ロング・イミディェー
トと言い、命令フィールド402で表現可能な定数をイ
ミディェートと呼ぶことにする)を発生させる場合、イ
ミディェート転送と多ビット・シフトや論理和等の演算
命令を用いて、ロング・イミディェートを生成しなけれ
ばならず、ロング・イミディェート生成に多くのマイク
ロ命令を必要とすることになる。
一例としてデータ・バス520が32ビット幅を持ち、
命令フィールド402のビット幅が8ビットである場
合、イミディェートとして表現可能な値は、0〜255
(0〜28−1)の範囲であり、32ビットのロング・
イミィェートを得ようとするならば、以下示すようなマ
イクロ命令の実行が必要である。
命令フィールド402のビット幅が8ビットである場
合、イミディェートとして表現可能な値は、0〜255
(0〜28−1)の範囲であり、32ビットのロング・
イミィェートを得ようとするならば、以下示すようなマ
イクロ命令の実行が必要である。
8ビット・イミディェートをレジスタR1に転送す
る。
る。
R1の内容を左に8ビット・シフトする。
新しい8ビット・イミディェートをレジスタR2に転
送する。
送する。
R1とR2の論理和に格納する。
〜のステップを2回繰り返す。
このように、32ビットのロング・イミディェートをレ
ジスタR1に得るまでに10ステップのマイクロ命令の
実行と、演算用に1本余分なレジスタ(R2)を必要に
なることになる。
ジスタR1に得るまでに10ステップのマイクロ命令の
実行と、演算用に1本余分なレジスタ(R2)を必要に
なることになる。
本発明は、マイクロ命令を一時的に保持する手段、前記
保持手段の第一のフィールドのビット・パターンを検出
する手段、およびあらかじめ決められたデータあるいは
前記保持手段の第二のフィールドの内容を選択的に出力
する複数のデータ発生手段を有し、前記検出手段によっ
て検出されたビット・パターンにしたがって、前記複数
のデータ発生手段の内一つのみに前記保持手段の第二の
フィールドの内容を選択的に出力し、その他の前記複数
のデータ発生手段が選択する前記あらかじめ決められた
データの出力を、独立したビット位置に連結して定数デ
ータとして使用することを特徴とする。
保持手段の第一のフィールドのビット・パターンを検出
する手段、およびあらかじめ決められたデータあるいは
前記保持手段の第二のフィールドの内容を選択的に出力
する複数のデータ発生手段を有し、前記検出手段によっ
て検出されたビット・パターンにしたがって、前記複数
のデータ発生手段の内一つのみに前記保持手段の第二の
フィールドの内容を選択的に出力し、その他の前記複数
のデータ発生手段が選択する前記あらかじめ決められた
データの出力を、独立したビット位置に連結して定数デ
ータとして使用することを特徴とする。
次に図面を参照して、本発明の構成ならびに動作につい
て詳細に説明する。
て詳細に説明する。
第1図は、本発明の一実施例であり、命令レジスタ10
0のSRCフィールドに対応する出力srcおよび識別子
IDに対応する出力idを入力しマイクロオーダIM
D,OPR,BR,CNTを発生するマイクロ命令デコ
ーダ102、選択信号SEL0〜SEL3がアクティブ
の時マイクロ命令レジスタ100の命令フィールドの下
位8ビットfuncを選択し、そうでない時には8ビットの
ゼロ・データを発生する手段110〜113、前記4つ
の8ビット・データ発生手段110〜113の出力を読
出し信号IMDがアクティブな時に32ビット・データ
・バス101に接続する32ビット・データ・バッファ
114、バイト位置情報BYT0/1の内容にしたがっ
て選択信号SEL0〜SEL3を発生させる2ビット・
デコーダ115から構成される。バイト位置情報BYT
0/1が00ならば選択信号SEL0が、01ならば選
択信号SEL1が、10ならば選択信号SEL2が、1
1ならば選択信号SEL3がアクティブになる。選択信
号SEL0〜SEL3で選択された8ビット・データ発
生手段110〜113の出力には命令フィールドの下位
8ビットimdが出力されるが、2ビット・デコーダ11
5は選択信号SEL0〜SEL3を排他的にアクティブ
になるように発生させるため、選択されなかった前記8
ビット・データ発生手段110〜113のうちの3組の
出力には8ビットのゼロ・データが出力される。したが
って、読出し信号IMDがアクティブになった時、バイ
ト位置情報BYT0/1の内容により、32ビット・デ
ータ・バッファ114が32ビット・データ・バス10
1に出力するデータは、以下に示すようになる。
0のSRCフィールドに対応する出力srcおよび識別子
IDに対応する出力idを入力しマイクロオーダIM
D,OPR,BR,CNTを発生するマイクロ命令デコ
ーダ102、選択信号SEL0〜SEL3がアクティブ
の時マイクロ命令レジスタ100の命令フィールドの下
位8ビットfuncを選択し、そうでない時には8ビットの
ゼロ・データを発生する手段110〜113、前記4つ
の8ビット・データ発生手段110〜113の出力を読
出し信号IMDがアクティブな時に32ビット・データ
・バス101に接続する32ビット・データ・バッファ
114、バイト位置情報BYT0/1の内容にしたがっ
て選択信号SEL0〜SEL3を発生させる2ビット・
デコーダ115から構成される。バイト位置情報BYT
0/1が00ならば選択信号SEL0が、01ならば選
択信号SEL1が、10ならば選択信号SEL2が、1
1ならば選択信号SEL3がアクティブになる。選択信
号SEL0〜SEL3で選択された8ビット・データ発
生手段110〜113の出力には命令フィールドの下位
8ビットimdが出力されるが、2ビット・デコーダ11
5は選択信号SEL0〜SEL3を排他的にアクティブ
になるように発生させるため、選択されなかった前記8
ビット・データ発生手段110〜113のうちの3組の
出力には8ビットのゼロ・データが出力される。したが
って、読出し信号IMDがアクティブになった時、バイ
ト位置情報BYT0/1の内容により、32ビット・デ
ータ・バッファ114が32ビット・データ・バス10
1に出力するデータは、以下に示すようになる。
ただし、ここでbus.〔x..y〕なる表現は、32ビット・
データ・バス101のビットxからビットyまでの範囲
を示し、nnnnnnnnは命令フィールドの下位8ビットfunc
の内容を示す。
データ・バス101のビットxからビットyまでの範囲
を示し、nnnnnnnnは命令フィールドの下位8ビットfunc
の内容を示す。
第6図aは、本実施例に適用するマイクロ命令の命令形
式の一例である。本命令形式は、6ビットのSRCフィ
ールド、6ビットのDSTフィールド、3ビットのID
フィールドおよび8ビットのFUNCフィールドで構成
される。SRCフィールドが101010の時、定数をソース
・オペランドとして指定する。IDフィールドは、0x
x(xは0または1)の時分岐機能を、100の時演算
機能を、101の時制御機能をFUNCフィールドが有
していることを指定するが、SRCフィールドが101010
の場合すなわち定数を転送することが指定された場合
は、FUNCフィールドが指定する0〜255までの値
を持つ任意の8ビット・データを32ビット・データと
して構成するためにどのバイト位置に置くかを指定する
ために用いる。すなわちIDフィールドがX00の場合
は最下位の8ビット・データとして、X01の場合は次
のバイトの8ビット・データとして、X10の場合はさ
らに次のバイトの8ビット・データとして、X11の場
合は最上位のバイトの8ビット・データとして用いるこ
とを指定するために用いられる。
式の一例である。本命令形式は、6ビットのSRCフィ
ールド、6ビットのDSTフィールド、3ビットのID
フィールドおよび8ビットのFUNCフィールドで構成
される。SRCフィールドが101010の時、定数をソース
・オペランドとして指定する。IDフィールドは、0x
x(xは0または1)の時分岐機能を、100の時演算
機能を、101の時制御機能をFUNCフィールドが有
していることを指定するが、SRCフィールドが101010
の場合すなわち定数を転送することが指定された場合
は、FUNCフィールドが指定する0〜255までの値
を持つ任意の8ビット・データを32ビット・データと
して構成するためにどのバイト位置に置くかを指定する
ために用いる。すなわちIDフィールドがX00の場合
は最下位の8ビット・データとして、X01の場合は次
のバイトの8ビット・データとして、X10の場合はさ
らに次のバイトの8ビット・データとして、X11の場
合は最上位のバイトの8ビット・データとして用いるこ
とを指定するために用いられる。
次に、本実施例の動作について説明する。
23ビット幅のマイクロ命令レジスタ100に格納され
たマイクロ命令の出力のうちSRCフィールドに対応す
るビットsrcおよびIDフィールドに対応するビットi
dは、マイクロ命令デコーダ102に接続され、転送フ
ィールドならびに命令フィールドの内容にしたがってマ
イクロオーダIMD,OPR,BR,CNTを発生させ
る。マイクロ命令レジスタ100の出力と、マイクロ・
オーダIMD,OPR,BR,CNTの関係は、以下に
示すとうりである。
たマイクロ命令の出力のうちSRCフィールドに対応す
るビットsrcおよびIDフィールドに対応するビットi
dは、マイクロ命令デコーダ102に接続され、転送フ
ィールドならびに命令フィールドの内容にしたがってマ
イクロオーダIMD,OPR,BR,CNTを発生させ
る。マイクロ命令レジスタ100の出力と、マイクロ・
オーダIMD,OPR,BR,CNTの関係は、以下に
示すとうりである。
ただし、ここで-----は101010以外の値であることを示
す。
す。
マイクロオーダIMDは、32ビット・データ・バッフ
ァ114の読出し信号として接続され、またマイクロ命
令レジスタ100のビット8(bit.〔8〕)およびビット
9(bit.〔9〕)はバイト位置情報BYT0/1としてそ
れぞれ2ビット・デコーダ115に接続され、さらにマ
イクロ命令レジスタ100のビット0〜7(func)は前記
8ビット・データ発生手段110〜113に接続され
る。
ァ114の読出し信号として接続され、またマイクロ命
令レジスタ100のビット8(bit.〔8〕)およびビット
9(bit.〔9〕)はバイト位置情報BYT0/1としてそ
れぞれ2ビット・デコーダ115に接続され、さらにマ
イクロ命令レジスタ100のビット0〜7(func)は前記
8ビット・データ発生手段110〜113に接続され
る。
次に本マイクロプログラム制御装置における定数発生の
動作について説明する。
動作について説明する。
今、マイクロ命令レジスタ100に101010010101 010 0
1111010なるデータがマイクロ命令として保持されてい
るとすると、マイクロ命令デコーダ102はsrcに10101
0のパターンがあるため、マイクロオーダIMDをアク
ティブに、その他のマイクロ・オーダOPR,BR,C
NTをインアクティブにする。マイクロ命令レジスタ1
00のbit〔8..9〕が10であるために2ビット・デコ
ーダ115はSEL2のみをアクティブに、SEL0,
SEL1,SEL3をインアクティブにする。このため
8ビット・データ生成手段110〜113の内112の
みがfuncと同一の値すなわち01111010を、その他の8ビ
ット・データ生成手段110,111,113は00000000を発生さ
せる。マイクロオーダIMDにより32ビット・データ
・バッファ114が32ビット・データ・バス101に
接続されているために、32ビット・データ・バス10
1には00000000 01111010 00000000 00000000を得るこ
とができる。
1111010なるデータがマイクロ命令として保持されてい
るとすると、マイクロ命令デコーダ102はsrcに10101
0のパターンがあるため、マイクロオーダIMDをアク
ティブに、その他のマイクロ・オーダOPR,BR,C
NTをインアクティブにする。マイクロ命令レジスタ1
00のbit〔8..9〕が10であるために2ビット・デコ
ーダ115はSEL2のみをアクティブに、SEL0,
SEL1,SEL3をインアクティブにする。このため
8ビット・データ生成手段110〜113の内112の
みがfuncと同一の値すなわち01111010を、その他の8ビ
ット・データ生成手段110,111,113は00000000を発生さ
せる。マイクロオーダIMDにより32ビット・データ
・バッファ114が32ビット・データ・バス101に
接続されているために、32ビット・データ・バス10
1には00000000 01111010 00000000 00000000を得るこ
とができる。
以上説明したように本実施例を用いることによって8ビ
ット・データを任意のバイト位置に置いた32ビット定
数、すなわちm*(256∧n))(mは0〜255、nは0
〜3)を得ることができる。
ット・データを任意のバイト位置に置いた32ビット定
数、すなわちm*(256∧n))(mは0〜255、nは0
〜3)を得ることができる。
本実施例では、0から255*(256∧3)までの値を表現でき
るが値の精度としては8ビットのみであるため任意の3
2ビット・データを得ることはできないが、マイクロプ
ログラムの中で使用される定数は特定のビット列を抜き
出したり、特定のバイト・データに対して集中したビッ
トに重みのないデータを用いることが多いため、応用の
多くにはそのまま利用することができる。
るが値の精度としては8ビットのみであるため任意の3
2ビット・データを得ることはできないが、マイクロプ
ログラムの中で使用される定数は特定のビット列を抜き
出したり、特定のバイト・データに対して集中したビッ
トに重みのないデータを用いることが多いため、応用の
多くにはそのまま利用することができる。
また任意の32ビット・データを得るにも、従来の定数
発生のためのマイクロ命令実行に比べ、8ビット・シフ
ト動作を必要としないため以下のように簡略化すること
ができる。
発生のためのマイクロ命令実行に比べ、8ビット・シフ
ト動作を必要としないため以下のように簡略化すること
ができる。
32ビット・イミディェートをレジスタR1に転送す
る。
る。
次の32ビット・イミディェートをレジスタR2に転
送する。
送する。
R1とR2の論理和をR1に格納する。
次の32ビット・イミディェートをレジスタR2に転
送する。
送する。
R1とR2の論理和をR1に格納する。
次の32ビット・イミディェートをレジスタR2に転
送する。
送する。
R1とR2の論理和をR1に格納する。
前述した従来の任意の32ビット・データ生成のための
マイクロ命令が10ステップを要していたのに対して、
本実施例では7ステップに短縮できることが解る。
マイクロ命令が10ステップを要していたのに対して、
本実施例では7ステップに短縮できることが解る。
次に、本発明の他の実施例について説明する。第7図
は、本発明の他の実施例であり、選択信号SEL0〜S
EL3がアクティブの時マイクロ命令レジスタ100の
命令フィールドの下位8ビットfuncを選択し、そうでな
い時には出力選択信号ZEROによって8ビットのゼロ
・データあるいは8ビットのオール1データを発生する
手段810〜813を持つことが特徴である。
は、本発明の他の実施例であり、選択信号SEL0〜S
EL3がアクティブの時マイクロ命令レジスタ100の
命令フィールドの下位8ビットfuncを選択し、そうでな
い時には出力選択信号ZEROによって8ビットのゼロ
・データあるいは8ビットのオール1データを発生する
手段810〜813を持つことが特徴である。
前記実施例と同様に、バイト位置情報BYT0/1が0
0ならば選択信号SEL0が、01ならば選択信号SE
L1が、10ならば選択信号SEL2が、11ならば選
択信号SEL3がアクティブになる。選択信号SEL0
〜SEL3で選択された8ビット・データ発生手段10
0〜113の出力には命令フィールドの下位8ビットfu
ncが出力されるが、2ビット・デコーダ115は選択信
号SEL0〜SEL3を排他的にアクティブになるよう
に発生させるため、選択されなかった前記8ビット・デ
ータ発生手段110〜113のうちの3組の出力には出
力選択信号ZEROによって8ビットのゼロ・データあ
るいはオール1が出力される。
0ならば選択信号SEL0が、01ならば選択信号SE
L1が、10ならば選択信号SEL2が、11ならば選
択信号SEL3がアクティブになる。選択信号SEL0
〜SEL3で選択された8ビット・データ発生手段10
0〜113の出力には命令フィールドの下位8ビットfu
ncが出力されるが、2ビット・デコーダ115は選択信
号SEL0〜SEL3を排他的にアクティブになるよう
に発生させるため、選択されなかった前記8ビット・デ
ータ発生手段110〜113のうちの3組の出力には出
力選択信号ZEROによって8ビットのゼロ・データあ
るいはオール1が出力される。
したがって、読出し信号IMDがアクティブになった
時、バイト位置情報BYT0/1の内容により、32ビ
ット・データバッファ114が32ビット・データ・バ
ス101に出力するデータは、以下に示すようになる。
時、バイト位置情報BYT0/1の内容により、32ビ
ット・データバッファ114が32ビット・データ・バ
ス101に出力するデータは、以下に示すようになる。
たたし、ここでbus.〔x..y〕なる表現は、32ビット・
データ・バス101のビットxからビットyまでの範囲
を示し、nnnnnnnnは命令フィールドの下位8ビットimd
の内容を示し、zzzzzzzzは出力選択信号ZEROが1な
らば11111111、0ならば00000000である。
データ・バス101のビットxからビットyまでの範囲
を示し、nnnnnnnnは命令フィールドの下位8ビットimd
の内容を示し、zzzzzzzzは出力選択信号ZEROが1な
らば11111111、0ならば00000000である。
第6図bは、本実施例に適用するマイクロ命令の命令形
式の一例であり、第6図aの命令形式に対して、SRC
フィールドで定数を選択した場合IDフィールドの最上
位ビットに32ビット・イミディェートに対して有効バ
イトとならない24ビットのデータを0にするか1にす
るかを指定する意味を持たせていることが特徴である。
すなわちIDフィールドが0XXならばオール・ゼロ
を、1XXならばオール1が選択される。
式の一例であり、第6図aの命令形式に対して、SRC
フィールドで定数を選択した場合IDフィールドの最上
位ビットに32ビット・イミディェートに対して有効バ
イトとならない24ビットのデータを0にするか1にす
るかを指定する意味を持たせていることが特徴である。
すなわちIDフィールドが0XXならばオール・ゼロ
を、1XXならばオール1が選択される。
次に、本実施例における定数発生の動作について説明す
る。今、マイクロ命令レジスタ100に101010 010101
100 10100110なるデータがマイクロ命令として保持され
ているとすると、マイクロ命令デコーダ102はsrc101
010のパターンがあるため、マイクロオーダIMDをア
クティブに、その他のマイクロオーダOPR,BR,C
NTをインアクティブにする。マイクロ命令レジスタ1
00のbit.〔8..9〕が00であるために2ビット・デコ
ーダ115はSEL0のみをアクティブに、SEL1,
SEL2,SEL3をインアクティブにする。このため
8ビット・データ生成手段810〜813の内810の
みがfuncと同一の値すなわち10100110を、その他の8ビ
ット・データ生成手段811,812,813は出力選
択信号ZEROが1のため11111111を発生させる。マイ
クロオーダIMDにより32ビット・データバッファ1
14が32ビット・データ・バス101には11111111 1
1111111 11111111 10100110 を得ることができる。こ
の32ビット・データは00000000 00000000 00000000 0
111010なる32ビット・データの二の補数になってい
る。
る。今、マイクロ命令レジスタ100に101010 010101
100 10100110なるデータがマイクロ命令として保持され
ているとすると、マイクロ命令デコーダ102はsrc101
010のパターンがあるため、マイクロオーダIMDをア
クティブに、その他のマイクロオーダOPR,BR,C
NTをインアクティブにする。マイクロ命令レジスタ1
00のbit.〔8..9〕が00であるために2ビット・デコ
ーダ115はSEL0のみをアクティブに、SEL1,
SEL2,SEL3をインアクティブにする。このため
8ビット・データ生成手段810〜813の内810の
みがfuncと同一の値すなわち10100110を、その他の8ビ
ット・データ生成手段811,812,813は出力選
択信号ZEROが1のため11111111を発生させる。マイ
クロオーダIMDにより32ビット・データバッファ1
14が32ビット・データ・バス101には11111111 1
1111111 11111111 10100110 を得ることができる。こ
の32ビット・データは00000000 00000000 00000000 0
111010なる32ビット・データの二の補数になってい
る。
本実施例では、表現できる値の範囲が0から2∧32-1ま
でに拡張される。さらに整数の定数を必要とするマイク
ロプログラムでは、簡単に負の数を表現できることがで
きる。
でに拡張される。さらに整数の定数を必要とするマイク
ロプログラムでは、簡単に負の数を表現できることがで
きる。
第8図aは、第1図で用いた8ビット・データ発生手段
をより詳細に説明する図面であり、8組の2入力AND
ゲート1030〜1037および前記2入力ANDゲート1030〜
1037の出力を一方の入力とする2入力ORゲート1040〜
1047と、2入力ANDゲート1038、インバータ1050で構
成され、2入力ANDゲート1030〜1037のもう一方の入
力は選択信号SELに接続され、2入力ORゲート1040
〜1047のもう一方の入力は2入力ANDゲート1038の出
力に接続される。2入力ANDゲート1038の一方の入力
は入力を選択信号SELとするインバータ1050の出力
に、もう一方の入力は出力選択信号ZEROに接続され
る。選択信号SELがアクティブ(1)ならば、2入力A
NDゲート1030〜1037の出力は入力IN0〜7と同一に
なる。一方2入力ANDゲート1038の出力は0となるた
め、2入力ORゲート1040〜1047の出力は、2入力AN
Dゲート1030〜1037の出力と同一である。したがって出
力OUT0〜7には、入力IN0〜7と同一のデータが
現われる。
をより詳細に説明する図面であり、8組の2入力AND
ゲート1030〜1037および前記2入力ANDゲート1030〜
1037の出力を一方の入力とする2入力ORゲート1040〜
1047と、2入力ANDゲート1038、インバータ1050で構
成され、2入力ANDゲート1030〜1037のもう一方の入
力は選択信号SELに接続され、2入力ORゲート1040
〜1047のもう一方の入力は2入力ANDゲート1038の出
力に接続される。2入力ANDゲート1038の一方の入力
は入力を選択信号SELとするインバータ1050の出力
に、もう一方の入力は出力選択信号ZEROに接続され
る。選択信号SELがアクティブ(1)ならば、2入力A
NDゲート1030〜1037の出力は入力IN0〜7と同一に
なる。一方2入力ANDゲート1038の出力は0となるた
め、2入力ORゲート1040〜1047の出力は、2入力AN
Dゲート1030〜1037の出力と同一である。したがって出
力OUT0〜7には、入力IN0〜7と同一のデータが
現われる。
また選択信号SELがインアクティブ(0)であり、かつ
出力選択信号ZEROが0の時、2入力ANDゲート10
30〜1037の出力は入力IN0〜7の値にかかわらずすべ
て0になる。一方2入力ANDゲート1048は、一方の入
力ZEROが0であるために0であり、2入力ORゲー
ト1040〜1047の出力は、2入力ANDゲート1030〜1037
の出力と同一である。したがって出力OUT0〜7はす
べて0になる。さらに選択信号SELがインアクティブ
(0)であり、かつ出力選択信号ZEROが0の時、2入
力ANDゲート1048の出力は1となり、2入力ORゲー
ト1040〜1047の出力は、2入力ANDゲート1030〜1037
の出力にかかわらずすべて1になる。したがって出力O
UT0〜7はすべて1になる。
出力選択信号ZEROが0の時、2入力ANDゲート10
30〜1037の出力は入力IN0〜7の値にかかわらずすべ
て0になる。一方2入力ANDゲート1048は、一方の入
力ZEROが0であるために0であり、2入力ORゲー
ト1040〜1047の出力は、2入力ANDゲート1030〜1037
の出力と同一である。したがって出力OUT0〜7はす
べて0になる。さらに選択信号SELがインアクティブ
(0)であり、かつ出力選択信号ZEROが0の時、2入
力ANDゲート1048の出力は1となり、2入力ORゲー
ト1040〜1047の出力は、2入力ANDゲート1030〜1037
の出力にかかわらずすべて1になる。したがって出力O
UT0〜7はすべて1になる。
以上説明したように、本発明を用いることでマイクロ命
令のビット幅を増加することなしに、大きな表現範囲を
持った定数を一つのマイクロ命令の実行によって得るこ
とができる。さらに任意の値を有した定数を、高速に得
ることができる。
令のビット幅を増加することなしに、大きな表現範囲を
持った定数を一つのマイクロ命令の実行によって得るこ
とができる。さらに任意の値を有した定数を、高速に得
ることができる。
第1図は本発明の一実施例を示すブロック図、第2図は
従来のマイクロプログラム制御装置の構成を示すブロッ
ク図、第3図a,b,cは従来のマイクロ命令の形式の
種類を示すフォーマット図、第4図は従来のマイクロ命
令の形式を示すフォーマット図、第5図は従来のマイク
ロプログラム制御装置を用いた定数発生の回路ブロック
図、第6図a,bは本発明において使用するマイクロ命
令の形式を示すフォーマット図、第7図は本発明の他の
実施例を示すブロック図、第8図a,bは本発明の実施
例で用いた8ビット・データ発生手段の詳細を示す回路
ブロック図である。 100……23ビット・マイクロ命令レジスタ、101
……32ビット・データ・バス、102……マイクロ命
令デコーダ、110〜113……8ビット・データ発生
手段、114……32ビット・データ・バッファ、11
5……2ビット・デコーダ、201……制御記憶、20
2……マイクロ命令レジスタ、203……マイクロ命令
デコーダ、204……レジスタ・ファイル、205……
算術論理演算装置、206……データ・バス、401…
…転送フィールド、402……命令フィールド、403
……SRCフィールド、404……DSTフィールド、
405……識別子、406……機能フィールド、501
……マイクロ・アドレス・レジスタ、502……制御記
憶、503……マイクロ命令レジスタ、504……マイ
クロ命令デコーダ、505……演算制御装置、506…
…分岐制御装置、507……制御装置、510……ソー
ス・オペランド・デコーダ、511……デスティネーシ
ョン・オペランド・デコーダ、512……定数バッフ
ァ、520……データ・バス、521……レジスタ・フ
ァイル、522……その他のレジスタ資源、523……
ソース・オペランド・バス、524……デスティネーシ
ョン・オペランド・バス、1000〜1007……2入力AND
ゲート、1030〜1038……2入力ANDゲート、1040〜10
47……2入力ORゲート、1050……インバータ。
従来のマイクロプログラム制御装置の構成を示すブロッ
ク図、第3図a,b,cは従来のマイクロ命令の形式の
種類を示すフォーマット図、第4図は従来のマイクロ命
令の形式を示すフォーマット図、第5図は従来のマイク
ロプログラム制御装置を用いた定数発生の回路ブロック
図、第6図a,bは本発明において使用するマイクロ命
令の形式を示すフォーマット図、第7図は本発明の他の
実施例を示すブロック図、第8図a,bは本発明の実施
例で用いた8ビット・データ発生手段の詳細を示す回路
ブロック図である。 100……23ビット・マイクロ命令レジスタ、101
……32ビット・データ・バス、102……マイクロ命
令デコーダ、110〜113……8ビット・データ発生
手段、114……32ビット・データ・バッファ、11
5……2ビット・デコーダ、201……制御記憶、20
2……マイクロ命令レジスタ、203……マイクロ命令
デコーダ、204……レジスタ・ファイル、205……
算術論理演算装置、206……データ・バス、401…
…転送フィールド、402……命令フィールド、403
……SRCフィールド、404……DSTフィールド、
405……識別子、406……機能フィールド、501
……マイクロ・アドレス・レジスタ、502……制御記
憶、503……マイクロ命令レジスタ、504……マイ
クロ命令デコーダ、505……演算制御装置、506…
…分岐制御装置、507……制御装置、510……ソー
ス・オペランド・デコーダ、511……デスティネーシ
ョン・オペランド・デコーダ、512……定数バッフ
ァ、520……データ・バス、521……レジスタ・フ
ァイル、522……その他のレジスタ資源、523……
ソース・オペランド・バス、524……デスティネーシ
ョン・オペランド・バス、1000〜1007……2入力AND
ゲート、1030〜1038……2入力ANDゲート、1040〜10
47……2入力ORゲート、1050……インバータ。
Claims (1)
- 【請求項1】マイクロ命令を一時的に保持する手段、前
記保持手段の第一のフィールドのビット・パターンを検
出する手段、およびあらかじめ決められたデータあるい
は前記保持手段の第二のフィールドの内容を選択的に出
力する複数のデータ発生手段を有し、前記検出手段によ
って検出されたビット・パターンにしたがって、前記複
数のデータ発生手段の内一つのみに前記保持手段の第二
のフィールドの内容を選択的に出力し、その他の前記複
数のデータ発生手段が選択する前記あらかじめ決められ
たデータの出力を、独立したビット位置に連結して定数
データとして使用することを特徴とするマイクロプログ
ラム制御装置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP14235686A JPH0625966B2 (ja) | 1986-06-17 | 1986-06-17 | マイクロプログラム制御装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP14235686A JPH0625966B2 (ja) | 1986-06-17 | 1986-06-17 | マイクロプログラム制御装置 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPS62297938A JPS62297938A (ja) | 1987-12-25 |
| JPH0625966B2 true JPH0625966B2 (ja) | 1994-04-06 |
Family
ID=15313471
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP14235686A Expired - Lifetime JPH0625966B2 (ja) | 1986-06-17 | 1986-06-17 | マイクロプログラム制御装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH0625966B2 (ja) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP6484957B2 (ja) * | 2014-08-25 | 2019-03-20 | サンケン電気株式会社 | 演算処理装置 |
-
1986
- 1986-06-17 JP JP14235686A patent/JPH0625966B2/ja not_active Expired - Lifetime
Also Published As
| Publication number | Publication date |
|---|---|
| JPS62297938A (ja) | 1987-12-25 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US4825355A (en) | Instruction format for program control type data processing systems | |
| JP3954171B2 (ja) | コンピュータにおけるスカラ値をベクトルに記入する方法 | |
| US4467415A (en) | High-speed microprogram control apparatus with decreased control storage requirements | |
| JPH0374434B2 (ja) | ||
| JPH0248931B2 (ja) | ||
| JP2551167B2 (ja) | マイクロコンピュータ | |
| US5077659A (en) | Data processor employing the same microprograms for data having different bit lengths | |
| JPH034936B2 (ja) | ||
| JPH0625966B2 (ja) | マイクロプログラム制御装置 | |
| JPS59114677A (ja) | ベクトル処理装置 | |
| JPH0192851A (ja) | アドレス空間切替装置 | |
| JPS623332A (ja) | 情報処理装置 | |
| JPH0522935B2 (ja) | ||
| US5978957A (en) | Very fast pipelined shifter element with parity prediction | |
| KR960016401B1 (ko) | 레지스터 페이지 포인터를 이용한 레지스터 페이지간의 페이지 선택회로 | |
| JPS63251835A (ja) | ベクトル処理装置 | |
| JPS60157635A (ja) | マイクロプログラム制御装置 | |
| JPH0778722B2 (ja) | レジスタファイル方式 | |
| JP2667810B2 (ja) | ベクトル処理装置 | |
| JPH0239325A (ja) | マイクロ・シーケンス制御方式 | |
| JPS63155328A (ja) | 情報処理装置 | |
| JPH01290049A (ja) | メモリアクセス制御方式 | |
| JPS6029842A (ja) | 制御記憶装置 | |
| JPS62226336A (ja) | マイクロプログラム制御方式 | |
| JPH0644066A (ja) | 情報処理装置 |