JPH0814792B2 - データ処理装置 - Google Patents

データ処理装置

Info

Publication number
JPH0814792B2
JPH0814792B2 JP63105322A JP10532288A JPH0814792B2 JP H0814792 B2 JPH0814792 B2 JP H0814792B2 JP 63105322 A JP63105322 A JP 63105322A JP 10532288 A JP10532288 A JP 10532288A JP H0814792 B2 JPH0814792 B2 JP H0814792B2
Authority
JP
Japan
Prior art keywords
instruction
program
type
group
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 - Fee Related
Application number
JP63105322A
Other languages
English (en)
Other versions
JPH01276232A (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
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 JP63105322A priority Critical patent/JPH0814792B2/ja
Publication of JPH01276232A publication Critical patent/JPH01276232A/ja
Publication of JPH0814792B2 publication Critical patent/JPH0814792B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Executing Machine-Instructions (AREA)

Description

【発明の詳細な説明】 技術分野 本発明はデータ処理装置に関し、特に制御記憶に格納
されたマイクロプログラムにより制御されるデータ処理
装置に関する。
従来技術 従来、この種のデータ処理装置においては、処理性能
の向上を計るためにマイクロプログラムを構成するマイ
クロ命令が1ステップで実行する機能を多くし、並列処
理性を高めたビット構成の大きな、いわゆる水平型マイ
クロ命令化が顕著である。
特に基本演算命令など使用頻度の高いものについて
は、上述の水平型マイクロ命令化の特徴が最大限にいか
せるようにハードウェアの構造も最適化されるので、マ
イクロプログラムのステップ数が極めて少なくなるよう
に実現されている。
しかしながら、他の多くの命令、たとえば各種制御命
令や主記憶上でのデータハンドリングを繰返すようなリ
スト処理命令などではシーケンシャルな処理が多い。
このような従来のデータ処理装置では、シーケンシャ
ルな処理において高度に水平化されたマイクロ命令を使
用しても、1ステップで実行される機能の並列度が高く
ないため、そのマイクロ命令の未使用フィールドが多く
なり、マイクロプログラムを格納する制御記憶のワード
方向の使用効率が悪いという欠点がある。
発明の目的 本発明は上記のような従来のものの欠点を除去すべく
なされたもので、マイクロプログラムを格納する制御記
憶の使用効率を向上させることができ、制御記憶の容量
を縮小することができるデータ処理装置の提供を目的と
する。
発明の構成 本発明のデータ処理装置は、第1の命令群に属する命
令と第2の命令群に属する命令とからなる命令プログラ
ムを処理するデータ処理装置において、前記第2の命令
群はさらに第1の命令群に属する命令または第2の命令
群に属する命令からなり、前記命令プログラムを記憶す
る命令プログラム記憶手段と、前記第1の命令群に属す
る命令を処理するための第3の命令群を記憶する制御記
憶手段と、前記命令プログラム記憶手段から読み出され
た命令が前記第1の命令群に属する場合には前記制御記
憶手段に記憶される第3の命令に従って処理を行うよう
に制御し、前記命令プログラム記憶手段から読み出され
た命令が前記第2の命令群に属する場合にはこの読み出
された命令に対応する前記命令プログラム記憶手段に記
憶される命令プログラムに従って処理を行うように制御
する命令フェッチ手段とを有する。
実施例 次に、本発明の一実施例について図面を参照して説明
する。
第1図は本発明の一実施例の構成を示すブロック図で
ある。図において、本発明の一実施例によるデータ処理
装置は、主記憶1と、命令フェッチ回路2と、命令解析
用メモリ3と、制御記憶回路4と、演算回路5とを含ん
で構成されている。
主記憶1は所定の処理を行うソフトウェアプログラム
が格納されたソフトウェアプログラム部11と、第1種お
よび第2種の命令で記述された命令プログラムが格納さ
れた命令プログラム部12とを含んで構成されている。
ここで、ソフトウェアプログラムは第1種の命令と第
2種の命令とにより構成されており、第1種の命令は制
御記憶回路4に格納されたマイクロプログラムにより実
現され、第2種の命令は命令プログラム部12に格納され
た命令プログラムにより実現される。
また、第1種の命令は水平型マイクロ命令の並列処理
の効果が充分に発揮できる基本命令であり、一般にソフ
トウェアプログラムに使用される頻度が格段に高い命令
である。第2種の命令はマイクロプログラムで実現しよ
うとすると水平型マイクロ命令の並列処理の効果がそれ
ほど発揮できない命令であり、むしろ垂直型のマイクロ
命令に近い使い方になる命令である。
命令フェッチ回路2は命令アドレスレジスタ21と、命
令バッファレジスタ22と、分岐アドレス生成回路23と、
逐次アドレス生成回路24と、命令カウンタ25と、命令カ
ウンタ退避レジスタ26と、ポインタレジスタ27と、セレ
クタ28とにより構成されている。
命令解析用メモリ3には命令の処理のマイクロプログ
ラム制御に必要な初期値としての制御情報31〜33が格納
されている。
制御記憶回路4はマイクロプログラムが格納された制
御記憶41と、マイクロ命令シーケンサ42と、マイクロア
ドレスレジスタ43と、マイクロ命令レジスタ44とにより
構成されている。
演算回路5は制御記憶回路4により制御され、第1種
の命令で定義された機能を実現するためのマイクロプロ
グラムにより各種の演算処理を行う。
第2図は本発明の一実施例のソフトウェアプログラム
のシーケンスを示す図である。図において、A1〜A4およ
びAa〜Adは制御記憶回路4に格納されたマイクロプログ
ラムにより実現される第1種の命令を示し、B1は命令プ
ログラム部12に格納された命令プログラムにより実現さ
れる第2種の命令を示している。すなわち、第2種の命
令B1は第1種の命令Aa〜Adにより記述された命令プログ
ラムにより実現される。
次に、第1図と第2図とを用いて本発明の一実施例の
動作について説明する。
主記憶1のソフトウェアプログラム部11に格納された
ソフトウェアプログラムの命令は、命令フェッチ回路2
の命令アドレスレジスタ21に保持されたアドレスにより
主記憶1から読出され、この読出されたソフトウェアプ
ログラムの命令は、命令バッファレジスタ22に格納され
る。
命令の取出しは、実際にその命令が実行されるときに
命令バッファレジスタ22に到着済みであるように先取り
する。いわゆるプリフェッチにより行われるのが一般的
である。
命令バッファレジスタ22に格納された命令の命令コー
ド部221は命令解析用メモリ3に供給され、命令解析用
メモリ3からその命令の処理のマイクロプログラム制御
に必要な初期値として制御情報31〜33が読出される。
制御情報32はその命令が第1種の命令であるか第2種
の命令であるかを示す情報であり、命令フェッチ回路2
の分岐アドレス生成回路23と命令カウンタ退避レジスタ
26とポインタレジスタ27と、制御記憶回路4のマイクロ
命令シーケンサ42とに供給される。
このとき、制御情報32が第1種の命令A1,A2であるこ
とを示していれば、マイクロ命令シーケンサ42は制御情
報31をこの命令A1,A2の処理を実現するマイクロプログ
ラムの先頭番地として制御記憶41に供給し、制御記憶41
のその番地からマイクロ命令を読出す。読出されたマイ
クロ命令は一旦マイクロ命令レジスタ44に保持され、マ
イクロ命令レジスタ44から演算回路5に提供される。
尚、このマイクロ命令には次のマイクロ命令を読出す
アドレスの決定方法やそのアドレスそのものの情報が含
まれており、この情報をマイクロ命令シーケンサ42がマ
イクロ命令レジスタ44から受取ることにより次のマイク
ロ命令の読出しが行われる。以下、上述の処理と同様に
して逐次的に目的のマイクロプログラムが実行されてい
く。
制御情報32が第2種の命令B1であることを示していれ
ば、マイクロ命令シーケンサ42は制御記憶41からのマイ
クロ命令の読出しを停止し、マイクロ命令レジスタ44に
はNOP(ノーオペレーション)のマイクロ命令が保持さ
れて演算回路5の動作が一時中断される。
このとき同時に、制御情報32は分岐アドレス生成回路
23に提供され、分岐アドレス生成回路23は制御情報31を
この命令B1の処理を実現する命令プログラム(第1種の
命令Aa〜Adで構成されている)の開始番地としてセレク
タ28を介して命令アドレスレジスタ21に出力して保持さ
せる。命令アドレスレジスタ21ではこの開始番地を主記
憶1に出力し、主記憶1の命令プログラム部12から命令
プログラムを読出す動作が起動される。
また、この制御情報32は命令カウンタ退避レジスタ26
に供給され、その命令B1が主記憶1から読出されたとき
の命令カウンタ25の値(命令B1のアドレス)を格納する
ように命令カウンタ退避レジスタ26に指示する。
命令カウンタ退避レジスタ26は4つの格納場所261〜2
64から構成され、退避情報(命令カウンタ25の値)の格
納(書込み)のときにはポインタレジスタ27により番地
が特定される。命令カウンタ退避レジスタ26に何も格納
されていない状態では、ポインタレジスタ27は格納場所
261を指定している。
制御情報32によって格納場所261に命令カウンタ25の
値が格納されると、ポインタレジスタ27は更新されて格
納場所262を指定し、以下命令カウンタ退避レジスタ26
に退避情報が格納される度にポインタレジスタ27が更新
され、格納場所263,264が順次指定されることになる。
逆に、命令カウンタ退避レジスタ26から退避情報が取
出されるときには、ポインタレジスタ27の指定している
格納場所の1つ前、たとえば格納場所262が指定されて
いれば格納場所261から退避情報を読出して、同時にポ
インタレジスタ27も退避情報が読出された格納場所を指
定するように更新される。すなわち、命令カウンタ退避
レジスタ26はポインタレジスタ27の制御によってLIFO
(ラストインファーストアウト;後入れ先出し)スタッ
クとして動作を行う。
命令プログラム部12から読出された命令プログラムの
第1の命令Aaは命令バッファレジスタ22に格納され、こ
の第1の命令Aaの命令コード部221が命令解析用メモリ
3に供給され、命令解析用メモリ3から制御情報31〜33
が読出される。
この第1の命令Aaは第1種の命令であるので、上述の
第1種の命令A1,A2の場合と同様にして逐次的に目的の
マイクロプログラムが実行されていく。
命令プログラム部12から順次読出される命令プログラ
ムの命令Ab,Acも第1種の命令であるので、上述の処理
と同様にして実行される。
命令プログラム部12から読出された命令プログラムの
命令Adは第1種の命令であるが、第2種の命令B1を実現
するための命令プログラムの最後の命令であり、元のソ
フトウェアプログラムシーケンス上で命令B1の次の命令
A3に戻るための役割を果たす。
すなわち、命令Adは命令カウンタ退避レジスタ26に保
持される番地をベースにした相対分岐命令として定義さ
れる。命令カウンタ退避レジスタ26の格納場所261には
命令B1が読出されたときの命令カウンタ25の値が保持さ
れているので、相対分岐命令の実行によって、格納場所
261に保持された命令カウンタ25の値が読出されて分岐
アドレス生成回路23に供給され、同時にポインタレジス
タ27は格納場所261を指定するように更新される。
分岐アドレス生成回路23においては、相対分岐命令
(命令Ad)の変位として命令B1の命令語長を設定するこ
とにより、命令シーケンス上で命令B1の次の命令A3の命
令アドレスが生成され、この命令アドレスがセレクタ28
を介して命令アドレスレジスタ21に保持される。
同時に、命令アドレスレジスタ21に保持されたアドレ
スにより主記憶1のソフトウェアプログラム部11から命
令A3を読出す動作が起動され、ソフトウェアプログラム
部11から読出された命令A3は命令バッファレジスタ22に
格納される。
命令A3は第1種の命令であるので、制御記憶41に格納
されたマイクロプログラムによって実現され、上述の第
1種の命令A1,A2の場合と同様にして逐次的にソフトウ
ェアプログラム上の命令が実行されていく。
第2図においては、第2種の命令B1を実現する命令プ
ログラムが第1種の命令Aa〜Adのみで構成されて場合を
示しているが、第3図に示すように命令プログラムが他
の第2種の命令を含んで構成されていれば、命令プログ
ラムを一層簡略化できることは明白である。
第3図においては、A1〜A4,Aa〜Ad,Ai〜Am,Ap〜Awは
夫々第1種の命令を示し、B1〜B3は第2種の命令を示し
ている。このソフトウェアプログラムは第1種の命令A1
〜A4と第2種の命令B1とで構成されている。このソフト
ウェアプログラム中の第2種の命令B1を実現する命令プ
ログラムは第1種の命令Aa〜Adと第2種の命令B2とで構
成され、その命令プログラム中の第2種の命令B2を実現
する命令プログラムは第1種の命令Ai〜Amと第2種の命
令B3とで構成されている。また、この命令プログラム中
の第2種の命令B3を実現する命令プログラムは第1種の
命令Ap〜Awのみで構成されている。
この第3図に示すように命令プログラムが他の第2種
の命令B2,B3を含んで構成されている場合には、上述し
たように、命令カウンタ退避レジスタ26には第2種の命
令B1〜B3が出現する度に、命令カウンタ25の値がプッシ
ュダウンでスタックされることになり、第2種の命令B3
を実現する命令プログラム中の命令Apが実行されるとき
には格納場所261〜263に各々命令B1〜B3が読出されたと
きの命令カウンタ25の値が格納され、ポインタレジスタ
27は格納場所264を指定している。
第2種の命令B1〜B3夫々を実現する命令プログラムが
順次実行され、第1種の命令Aw,Am,Adが夫々実行される
ときには、命令カウンタ退避レジスタ26から夫々の命令
カウンタ25の値が読出され、それらの番地をベースにし
た相対分岐が実行されるとともに、ポインタレジスタ27
は指定する格納場所を順次格納場所263,262,261へと更
新していく。
上述のように、第2種の命令B1,B2を実現する命令プ
ログラム中に他の第2種の命令B2,B3が夫々出現し、結
果的に多段の命令プログラムが実行されるような場合で
も、この命令プログラムの段数の深さが命令カウンタ退
避レジスタ26に予め用意した格納場所の数量以内であれ
ば、論理的に矛盾を生ずることなく実現することが可能
となる。
また、命令カウンタ退避レジスタ26に予め用意した格
納場所の数量を越えて退避情報の格納が試みられた場合
には、使用中の格納場所への上書きなどによって命令プ
ログラムの暴走を生ずる可能性があるので、退避情報の
格納が格納場所の数量を越えていることを検出する検出
手段を用意し、その検出手段により退避情報の格納が格
納場所の数量を越えていることが検出されたときに、ハ
ードウェアエラーとするなどの処理を取る必要がある。
格納場所の数量を越えて退避情報の格納が試みられるの
は命令プログラムの設計ミスか、ハードウェアの故障か
のいずれかである。
このように、マイクロプログラムで実現しようとする
と水平型マイクロ命令の並列処理の効果がそれほど発揮
できない第2種の命令B1を、水平型マイクロ命令の並列
処理の効果が充分に発揮できる基本命令Aa〜Adを含んで
構成される命令プログラムの実行により実現することに
より、マイクロプログラムを格納する制御記憶41の使用
効率を向上させることができ、制御記憶41の容量を従来
よりも縮小させることができる。
また、第2種の命令B1,B2を実現する命令プログラム
中に、他の命令プログラムにより実現される他の第2種
の命令B2,B3が出現してもその命令プログラムの実行が
可能なようにすることによって、命令プログラムの階層
化により論理を単純化することができ、命令プログラム
の容量を縮小することができる。
さらに、パイプライン処理などによりソフトウェア命
令の並列処理が行えるハードウェアにおいては、実行時
間を短縮することができる。
尚、本発明の一実施例では命令カウンタ退避レジスタ
26に4つの格納場所261〜264を用意し、LIFOスタックに
より退避情報を格納するようにしたが、この格納場所は
幾つでもよく、LIFOスタック以外の方法によって退避情
報を格納するようにしてもよく、これらに限定されない
ことは明白である。
また、本発明の一実施例においては、第2種の命令B1
の処理を実現する命令プログラムの開始番地がそのまま
命令解析用メモリ3に格納されるようになっているが、
開始番地の一部のみを命令解析用メモリ3に格納し、こ
の開始番地の一部と予め定められた定数とを合成して開
始番地が生成されるようにしてもよい。
さらに、本発明の一実施例においては、第1種の命令
A1〜A4,Aa〜Adの処理を実現するマイクロプログラムの
先頭番地と、第2種の命令B1の処理を実現する命令プロ
グラムの開始番地とが命令解析用メモリ3の同一フィー
ルドの制御情報31により定義されているが、第2種の命
令B1の処理を実現する命令プログラムの開始番地が命令
解析用メモリ3の制御情報33に割当てられてもよく、こ
れらに限定されない。
実際、命令プログラムの開始番地は論理番地なので、
マイクロプログラムアドレスより長いビット構成になる
のが一般的であり、第2種の命令B1では命令解析用メモ
リ3の制御情報33が使用されていないので、第2種の命
令B1の処理を実現する命令プログラムの開始番地が命令
解析用メモリ3の制御情報33に割当てられてもよい。
発明の効果 以上説明したように本発明によれば、第1の命令と第
2の命令とを識別し、その識別結果が第2の命令である
ことを示すとき、第1の命令と第2の命令とで構成され
る命令プログラムにより第2の命令を実行するように
し、その第1の命令を制御記憶に格納されたマイクロプ
ログラムにより実現し、第2の命令を第1の命令と第2
の命令とで構成される命令プログラムにより実現するよ
うにすることによって、マイクロプログラムを格納する
制御記憶の使用効率を向上させることができ、制御記憶
の容量を縮小することができるという効果がある。
【図面の簡単な説明】
第1図は本発明の一実施例の構成を示すブロック図、第
2図および第3図は本発明の一実施例のソフトウェアプ
ログラムのシーケンスを示す図である。 主要部分の符号の説明 1……主記憶 2……命令フェッチ回路 3……命令解析用メモリ 4……制御記憶回路 11……ソフトウェアプログラム部 12……命令プログラム部 25……命令カウンタ 26……命令カウンタ退避レジスタ 27……ポインタレジスタ A1〜A4,Aa〜Ad,Ai〜Am,Ap〜Aw……第1種の命令 B1〜B3……第2種の命令

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】第1の命令群に属する命令と第2の命令群
    に属する命令とからなる命令プログラムを処理するデー
    タ処理装置において、 前記第2の命令群はさらに第1の命令群に属する命令ま
    たは第2の命令群に属する命令からなり、 前記命令プログラムを記憶する命令プログラム記憶手段
    と、 前記第1の命令群に属する命令を処理するための第3の
    命令群を記憶する制御記憶手段と、 前記命令プログラム記憶手段から読み出された命令が前
    記第1の命令群に属する場合には前記制御記憶手段に記
    憶される第3の命令に従って処理を行うように制御し、
    前記命令プログラム記憶手段から読み出された命令が前
    記第2の命令群に属する場合にはこの読み出された命令
    に対応する前記命令プログラム記憶手段に記憶される命
    令プログラムに従って処理を行うように制御する命令フ
    ェッチ手段とを有することを特徴とするデータ処理装
    置。
  2. 【請求項2】前記第1の命令群に属する命令は水平型マ
    イクロ命令による処理に向いた命令であり、 前記第2の命令群に属する命令は水平型マイクロ命令に
    よる処理に向かない命令であり、 前記第3の命令群に属する命令はマイクロプログラム命
    令であり、 前記命令フェッチ手段は前記命令プログラム記憶手段か
    ら読み出された命令が前記第2の命令群に属する場合に
    該命令の命令アドレスを退避するための退避レジスタを
    含むことを特徴とする請求項1記載のデータ処理装置。
JP63105322A 1988-04-27 1988-04-27 データ処理装置 Expired - Fee Related JPH0814792B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP63105322A JPH0814792B2 (ja) 1988-04-27 1988-04-27 データ処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP63105322A JPH0814792B2 (ja) 1988-04-27 1988-04-27 データ処理装置

Publications (2)

Publication Number Publication Date
JPH01276232A JPH01276232A (ja) 1989-11-06
JPH0814792B2 true JPH0814792B2 (ja) 1996-02-14

Family

ID=14404479

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63105322A Expired - Fee Related JPH0814792B2 (ja) 1988-04-27 1988-04-27 データ処理装置

Country Status (1)

Country Link
JP (1) JPH0814792B2 (ja)

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IT993428B (it) * 1973-09-26 1975-09-30 Honeywell Inf Systems Unita di controllo di calcolatore microprogrammato con microprogram mi residenti in memoria e sovrap posizioni delle fasi interpretati ve di una microistruzione con la fase esecutiva della precedente microistruzione

Also Published As

Publication number Publication date
JPH01276232A (ja) 1989-11-06

Similar Documents

Publication Publication Date Title
US5870576A (en) Method and apparatus for storing and expanding variable-length program instructions upon detection of a miss condition within an instruction cache containing pointers to compressed instructions for wide instruction word processor architectures
JP2938426B2 (ja) 順不同ロード命令とストア命令との干渉を検出回復するための方法及び装置
US6009509A (en) Method and system for the temporary designation and utilization of a plurality of physical registers as a stack
EP0297893A2 (en) Apparatus and method for recovering from page faults in vector data processing operations
EP0213842A2 (en) Mechanism for performing data references to storage in parallel with instruction execution on a reduced instruction-set processor
US6338134B1 (en) Method and system in a superscalar data processing system for the efficient processing of an instruction by moving only pointers to data
KR100368166B1 (ko) 컴퓨터 처리 시스템에서 스택 레퍼런스를 변경하는 방법
JPH0682320B2 (ja) データ処理装置
JPH03233630A (ja) 情報処理装置
EP0240606B1 (en) Pipe-line processing system and microprocessor using the system
US5542079A (en) Data driven processor for reading data from storage to apply prescribed operation in response to operation updating instruction and updating the contents of the storage
US5850563A (en) Processor and method for out-of-order completion of floating-point operations during load/store multiple operations
US4456958A (en) System and method of renaming data items for dependency free code
JPH0814792B2 (ja) データ処理装置
KR960015231A (ko) 향상된 어드레스 지정 방법 및 시스템
JPH06230963A (ja) メモリアクセス制御装置
JPH0784797A (ja) ロードモジュールへのソースコード行番号登録方法および装置
JP2895892B2 (ja) データ処理装置
JPH0279122A (ja) 浮動小数点演算機構
JP3015565B2 (ja) 複数命令の並列実行機能を持つ情報処理装置
JPH0248733A (ja) 情報処理装置
JPH10254698A (ja) 情報処理装置
JPS61194566A (ja) ベクトルデ−タ参照制御方式
JPH01276231A (ja) データ処理装置
JPH0578052B2 (ja)

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees