JPH0769805B2 - データ処理装置 - Google Patents
データ処理装置Info
- Publication number
- JPH0769805B2 JPH0769805B2 JP63251076A JP25107688A JPH0769805B2 JP H0769805 B2 JPH0769805 B2 JP H0769805B2 JP 63251076 A JP63251076 A JP 63251076A JP 25107688 A JP25107688 A JP 25107688A JP H0769805 B2 JPH0769805 B2 JP H0769805B2
- Authority
- JP
- Japan
- Prior art keywords
- stage
- instruction
- register
- code
- operand
- 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
Links
Landscapes
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
Description
【発明の詳細な説明】 [産業上の利用分野] 本発明は、パイプライン処理方式によって動作するデー
タ処理装置に関するもので、特にポップ(POP)命令の
処理機能を有するデータ処理装置に関する。
タ処理装置に関するもので、特にポップ(POP)命令の
処理機能を有するデータ処理装置に関する。
[従来の技術] 従来のデータ処理装置のパイプライン処理機能の構成を
第11図のブロック図に示す。
第11図のブロック図に示す。
従来のデータ処理装置は、命令フェッチステージ391,命
令デコードステージ392,オペランドアドレス計算ステー
ジ393,オペランドフェッチステージ394及び実行ステー
ジ395の各ステージにて構成されている。そして、命令
はデコード段階で複数のパイプライン処理のための単位
コード(ステップコード)に分解されてパイプライン処
理される。この様なデータ処理装置に関しては特開昭63
-89932号にその詳細が開示されている。
令デコードステージ392,オペランドアドレス計算ステー
ジ393,オペランドフェッチステージ394及び実行ステー
ジ395の各ステージにて構成されている。そして、命令
はデコード段階で複数のパイプライン処理のための単位
コード(ステップコード)に分解されてパイプライン処
理される。この様なデータ処理装置に関しては特開昭63
-89932号にその詳細が開示されている。
上述の如き従来のデータ処理装置では、パイプラインを
構成する要素の内で命令フェッチステージ391,命令デコ
ードステージ392,オペランドアドレス計算ステージ393
及びオペランドフェッチステージ394等の前処理を行う
部分と、実行ステージ395の如く命令を実行する部分と
に分けられる。前処理を行う部分は、命令中で指定され
るオペランドに関する前処理だけを行う。そして、前処
理によって準備されたオペランドを用いて実行ステージ
395により命令が実行される。
構成する要素の内で命令フェッチステージ391,命令デコ
ードステージ392,オペランドアドレス計算ステージ393
及びオペランドフェッチステージ394等の前処理を行う
部分と、実行ステージ395の如く命令を実行する部分と
に分けられる。前処理を行う部分は、命令中で指定され
るオペランドに関する前処理だけを行う。そして、前処
理によって準備されたオペランドを用いて実行ステージ
395により命令が実行される。
しかし、このようなデータ処理装置では、命令中にはオ
ペランドの指定部を一つだけ有するが、命令の機能上の
意味において暗に示されたオペランドを有するような命
令に関してはパイプライン上において十分な前処理が行
われない場合が生じる。
ペランドの指定部を一つだけ有するが、命令の機能上の
意味において暗に示されたオペランドを有するような命
令に関してはパイプライン上において十分な前処理が行
われない場合が生じる。
このような命令の一例として、ポップ(POP)命令が考
えられる。POP命令は、デスティネーションとしてメモ
リまたはレジスタを指定可能であるとする。データ処理
装置では通常、メモリ空間上にデータを退避させておく
ためのスタック領域が形成されている。そして、スタッ
クにデータを退避させる命令、及び退避させておいたデ
ータをスタックから読み出す命令が用意されている。前
者の命令をPUSH命令、後者の命令をPOP命令とそれぞれ
称し、これらは互いに対称な命令である。なお、スタッ
クポインタ(SP)は、スタックの最上位(スタックトッ
プ)のアドレスを常時示している。
えられる。POP命令は、デスティネーションとしてメモ
リまたはレジスタを指定可能であるとする。データ処理
装置では通常、メモリ空間上にデータを退避させておく
ためのスタック領域が形成されている。そして、スタッ
クにデータを退避させる命令、及び退避させておいたデ
ータをスタックから読み出す命令が用意されている。前
者の命令をPUSH命令、後者の命令をPOP命令とそれぞれ
称し、これらは互いに対称な命令である。なお、スタッ
クポインタ(SP)は、スタックの最上位(スタックトッ
プ)のアドレスを常時示している。
POP命令は、オペランドとしてはデスティネーションを
指定するためのオペランドのみを有する1オペランド命
令である。しかしPOP命令は、命令自体の機能としては
現実にはソースオペランドがスタックトップであること
を暗に示している2オペランド命令であり、メモリ−メ
モリ間あるいはメモリ−レジスタ間転送命令と同等な命
令である。
指定するためのオペランドのみを有する1オペランド命
令である。しかしPOP命令は、命令自体の機能としては
現実にはソースオペランドがスタックトップであること
を暗に示している2オペランド命令であり、メモリ−メ
モリ間あるいはメモリ−レジスタ間転送命令と同等な命
令である。
POP命令の処理に際して、従来のデータ処理装置のパイ
プライン上においては、POP命令のデスティネーション
指定部によりデスティネーションの処理のためのステッ
プコードのみが生成される。このステップコードの処理
とは、命令の前処理を行う部分であるオペランドアドレ
ス計算ステージ393においてデスティネーションのアド
レス計算を行うことである。しかし、POP命令はソース
の指定部を有さないため、ソースに関するステップコー
ドが生成されず、ソース指定部に関する前処理は一切行
われない。
プライン上においては、POP命令のデスティネーション
指定部によりデスティネーションの処理のためのステッ
プコードのみが生成される。このステップコードの処理
とは、命令の前処理を行う部分であるオペランドアドレ
ス計算ステージ393においてデスティネーションのアド
レス計算を行うことである。しかし、POP命令はソース
の指定部を有さないため、ソースに関するステップコー
ドが生成されず、ソース指定部に関する前処理は一切行
われない。
ソースの指定部に関する処理は、POP命令の実行時に一
連のマイクロ命令により、命令を実行する部分である実
行ステージ395において実行される。具体的には、実行
ステージ395において先ずスタックトップに対してデー
タのフェッチを行うというソース指定部に関する処理が
行われ、次いでフェッチしたデータを前処理で準備され
たデスティネーションアドレスに転送するという手順で
POP命令が処理される。
連のマイクロ命令により、命令を実行する部分である実
行ステージ395において実行される。具体的には、実行
ステージ395において先ずスタックトップに対してデー
タのフェッチを行うというソース指定部に関する処理が
行われ、次いでフェッチしたデータを前処理で準備され
たデスティネーションアドレスに転送するという手順で
POP命令が処理される。
このような処理に際しては、通常の2オペランド命令で
は前処理として行われるべきソースの指定部に関する処
理を実行ステージ395において行うため、実行ステージ3
95の処理負担が非常に大きい。また各ステージにおける
処理負荷の不均一が生じるため、パイプライン処理にお
ける処理効率低下が惹起する。
は前処理として行われるべきソースの指定部に関する処
理を実行ステージ395において行うため、実行ステージ3
95の処理負担が非常に大きい。また各ステージにおける
処理負荷の不均一が生じるため、パイプライン処理にお
ける処理効率低下が惹起する。
[発明が解決しようとする課題] 従来のデータ処理装置においては、パイプライン処理機
構上で上述の如くPOP命令が処理される。この際、実行
ステージ自身がスタックトップからオペランドをフェッ
チする処理を行う必要があるので、前処理を行うステー
ジに比較して命令を実行するステージにおけるデータ処
理の負荷が大きくなり、POP命令の処理効率が向上しな
いという問題がある。また従来のデータ処理装置におい
ては、スタックポインタはパイプライン上に1つしか存
在せず、命令実行ステージで集中的に管理されていた。
したがって、POP命令などスタックポインタを用いてア
ドレス計算を行う命令は、実行ステージで全ての先行す
る命令が処理され、スタックポインタ値が確定するまで
アドレス計算を待たなければならなかった。つまり、パ
イプラインがストールしてしまい、性能に影響を及ぼす
こととなっていた。
構上で上述の如くPOP命令が処理される。この際、実行
ステージ自身がスタックトップからオペランドをフェッ
チする処理を行う必要があるので、前処理を行うステー
ジに比較して命令を実行するステージにおけるデータ処
理の負荷が大きくなり、POP命令の処理効率が向上しな
いという問題がある。また従来のデータ処理装置におい
ては、スタックポインタはパイプライン上に1つしか存
在せず、命令実行ステージで集中的に管理されていた。
したがって、POP命令などスタックポインタを用いてア
ドレス計算を行う命令は、実行ステージで全ての先行す
る命令が処理され、スタックポインタ値が確定するまで
アドレス計算を待たなければならなかった。つまり、パ
イプラインがストールしてしまい、性能に影響を及ぼす
こととなっていた。
本発明はこのような問題を解決するためになされたもの
であり、POP命令をパイプライン上で効率よく処理し得
るデータ処理装置の提供を目的とする。
であり、POP命令をパイプライン上で効率よく処理し得
るデータ処理装置の提供を目的とする。
[課題を解決するための手段] 本発明に係るデータ処理装置は、POP命令の処理に際し
て、命令デコード時に暗に示されているソースオペラン
ドの処理単位を生成する手段と、アドレス計算ステージ
にスタックポインタを保持するためのレジスタとを設け
てあり、更にデスティネーションが汎用レジスタである
場合には命令を実行するまでにデスティネーションオペ
ランドの処理単位とソースオペランドの処理単位とを処
理して1つの処理単位として生成する手段を備えてい
る。
て、命令デコード時に暗に示されているソースオペラン
ドの処理単位を生成する手段と、アドレス計算ステージ
にスタックポインタを保持するためのレジスタとを設け
てあり、更にデスティネーションが汎用レジスタである
場合には命令を実行するまでにデスティネーションオペ
ランドの処理単位とソースオペランドの処理単位とを処
理して1つの処理単位として生成する手段を備えてい
る。
[作用] 本発明のデータ処理装置では、パイプライン上の前処理
を行う部分において暗に示されているオペランドに対し
ても処理単位を生成し、スタックトップにあるデータが
プリフェッチ処理され、またデスティネーションがレジ
スタである場合はデスティネーションオペランドに関す
る処理が行われない。またアドレス計算ステージのスタ
ックポインタを用いてPOP命令のソースオペランドのア
ドレス計算を行う。
を行う部分において暗に示されているオペランドに対し
ても処理単位を生成し、スタックトップにあるデータが
プリフェッチ処理され、またデスティネーションがレジ
スタである場合はデスティネーションオペランドに関す
る処理が行われない。またアドレス計算ステージのスタ
ックポインタを用いてPOP命令のソースオペランドのア
ドレス計算を行う。
以下、本発明をその実施例を示す図面に基づいて詳述す
る。
る。
(1)「本発明のデータ処理装置の命令フォーマット」 本発明のデータ処理装置の命令は16ビット単位で可変長
となっており、奇数バイト長の命令は使用しない。
となっており、奇数バイト長の命令は使用しない。
本発明のデータ処理装置では高頻度命令を短いフォーマ
ットとする目的で特に工夫された命令フォーマット体系
を有する。例えば、2オペランド命令に関しては基本的
に“4バイト+拡張部”の構成を有して総てのアドレッ
シングモードが利用可能な一般形フォーマットと、使用
頻度の高い命令及びアドレッシングモードのみが使用可
能な短縮形フォーマットの2つのフォーマットとがあ
る。
ットとする目的で特に工夫された命令フォーマット体系
を有する。例えば、2オペランド命令に関しては基本的
に“4バイト+拡張部”の構成を有して総てのアドレッ
シングモードが利用可能な一般形フォーマットと、使用
頻度の高い命令及びアドレッシングモードのみが使用可
能な短縮形フォーマットの2つのフォーマットとがあ
る。
本発明のデータ処理装置の命令フォーマット中に現われ
る記号の意味は次の通りである。
る記号の意味は次の通りである。
−:オペレーションコードが入る部分 #:リテラルまたは即値が入る部分 Ea:8ビットの一般形のアドレッシングモードでオペラン
ドを指定する部分 Sh:6ビットの短縮形のアドレッシングモードでオペラン
ドを指定する部分 Rn:レジスタ上のオペランドをレジスタ番号で指定する
部分 フォーマットは、第12図に示す如く右側がLSB側で且つ
高いアドレスになっている。アドレスNとアドレスN+
1の2バイトを見ないと命令フォーマットが判別できな
いようになっているが、これは前述の如く、命令が必ず
16ビット(2バイト)単位でフェッチ及びデコードされ
ることを前提としているためである。
ドを指定する部分 Sh:6ビットの短縮形のアドレッシングモードでオペラン
ドを指定する部分 Rn:レジスタ上のオペランドをレジスタ番号で指定する
部分 フォーマットは、第12図に示す如く右側がLSB側で且つ
高いアドレスになっている。アドレスNとアドレスN+
1の2バイトを見ないと命令フォーマットが判別できな
いようになっているが、これは前述の如く、命令が必ず
16ビット(2バイト)単位でフェッチ及びデコードされ
ることを前提としているためである。
本発明のデータ処理装置では、いずれのフォーマットの
場合も、各オペランドのEaまたはShの拡張部は必ずその
EaまたはShの基本部を含むハーフワードの直後に位置さ
れる。これは、命令により暗黙に指定される即値データ
あるいは命令の拡張部に優先する。従って、4バイト以
上の命令では、Eaの拡張部によって命令のオペレーショ
ンコードが分断される場合がある。
場合も、各オペランドのEaまたはShの拡張部は必ずその
EaまたはShの基本部を含むハーフワードの直後に位置さ
れる。これは、命令により暗黙に指定される即値データ
あるいは命令の拡張部に優先する。従って、4バイト以
上の命令では、Eaの拡張部によって命令のオペレーショ
ンコードが分断される場合がある。
また後述する如く、多段間接モードによってEaの拡張部
に更に拡張部が付く場合にも、次の命令オペレーション
コードよりもそちらの方が優先される。例えば、第1ハ
ーフワードにEa1を含み、第2ハーフワードにEa2を含
み、第3ハーフワードまである6バイト命令の場合を考
える。Ea1に多段間接モードを使用したため、普通の拡
張部の他に多段間接モードの拡張部も付くものとする
と、実際の命令ビットパターンは、命令の第1ハーフワ
ード(Ea1の基本部を含む),Ea1の拡張部,Ea1の多段間
接モード拡張部,命令の第2ハーフワード(Ea2の基本
部を含む),Ea1の拡張部,命令の第3ハーフワードの順
となる。
に更に拡張部が付く場合にも、次の命令オペレーション
コードよりもそちらの方が優先される。例えば、第1ハ
ーフワードにEa1を含み、第2ハーフワードにEa2を含
み、第3ハーフワードまである6バイト命令の場合を考
える。Ea1に多段間接モードを使用したため、普通の拡
張部の他に多段間接モードの拡張部も付くものとする
と、実際の命令ビットパターンは、命令の第1ハーフワ
ード(Ea1の基本部を含む),Ea1の拡張部,Ea1の多段間
接モード拡張部,命令の第2ハーフワード(Ea2の基本
部を含む),Ea1の拡張部,命令の第3ハーフワードの順
となる。
(1.1)「短縮形2オペランド命令」 第13図から第16図は2オペランド命令の短縮形フォーマ
ットを示す模式図である。
ットを示す模式図である。
第13図はメモリ−レジスタ間演算命令のフォーマットを
示す模式図である。このフォーマットには、ソースオペ
ランド側がメモリとなるL-formatと、デスティネーショ
ンオペランド側がメモリとなるS-formatとがある。
示す模式図である。このフォーマットには、ソースオペ
ランド側がメモリとなるL-formatと、デスティネーショ
ンオペランド側がメモリとなるS-formatとがある。
L-formatでは、Shはソースオペランドの指定フィールド
を、Rnはデスティネーションオペランドのレジスタの指
定フィールドを、RRはShのオペランドサイズの指定をそ
れぞれ表す。レジスタ上に位置されたデスティネーショ
ンオペランドのサイズは32ビットに固定されている。レ
ジスタ側とメモリ側とのサイズが異なり、ソース側のサ
イズが小さい場合に符号拡張が行なわれる。
を、Rnはデスティネーションオペランドのレジスタの指
定フィールドを、RRはShのオペランドサイズの指定をそ
れぞれ表す。レジスタ上に位置されたデスティネーショ
ンオペランドのサイズは32ビットに固定されている。レ
ジスタ側とメモリ側とのサイズが異なり、ソース側のサ
イズが小さい場合に符号拡張が行なわれる。
S-formatでは、Shはデスティネーションオペランドの指
定フィールドを、Rnはソースオペランドのレジスタ指定
フィールドを、RRはShのオペランドサイズの指定をそれ
ぞれ表す。レジスタ上に位置されたソースオペランドの
サイズは32ビットに固定されている。レジスタ側とメモ
リ側とのサイズが異なり、ソース側のサイズが大きい場
合にオーバフローした部分の切捨てとオーバフローチェ
ックが行なわれる。
定フィールドを、Rnはソースオペランドのレジスタ指定
フィールドを、RRはShのオペランドサイズの指定をそれ
ぞれ表す。レジスタ上に位置されたソースオペランドの
サイズは32ビットに固定されている。レジスタ側とメモ
リ側とのサイズが異なり、ソース側のサイズが大きい場
合にオーバフローした部分の切捨てとオーバフローチェ
ックが行なわれる。
第14図はレジスタ−レジスタ間演算命令のフォーマット
(R-format)を示す模式図である。Rnはデスティネーシ
ョンレジスタの指定フィールド、Rmはソースレジスタの
指定フィールドである。オペランドサイズは32ビットの
みである。
(R-format)を示す模式図である。Rnはデスティネーシ
ョンレジスタの指定フィールド、Rmはソースレジスタの
指定フィールドである。オペランドサイズは32ビットの
みである。
第15図はリテラル−メモリ間演算命令のフォーマット
(Q-format)を示す模式図である。MMはディスティネー
ションオペランドサイズの指定フィールド、###はリ
テラルによるソースオペランドの指定フィールド、Shは
デスティネーションオペランドの指定フィールドであ
る。
(Q-format)を示す模式図である。MMはディスティネー
ションオペランドサイズの指定フィールド、###はリ
テラルによるソースオペランドの指定フィールド、Shは
デスティネーションオペランドの指定フィールドであ
る。
第16図は即値−メモリ間演算命令のフォーマット(I-fo
rmat)を示す模式図である。MMはオペランドサイズの指
定フィールド(ソース,ディスティネーションで共
通)、Shはデスティネーションオペランドの指定フィー
ルドである。I-formatの即値のサイズはデスティネーシ
ョン側のオペランドのサイズと共通に8,16,32ビットと
なり、ゼロ拡張及び符号拡張は行なわれない。
rmat)を示す模式図である。MMはオペランドサイズの指
定フィールド(ソース,ディスティネーションで共
通)、Shはデスティネーションオペランドの指定フィー
ルドである。I-formatの即値のサイズはデスティネーシ
ョン側のオペランドのサイズと共通に8,16,32ビットと
なり、ゼロ拡張及び符号拡張は行なわれない。
(1.2)「一般形1オペランド命令」 第17図は1オペランド命令の一般形フォーマット(G1-f
ormat)を示す模式図である。MMはオペランドサイズの
指定フィールドである。一部のG1-format命令では、Ea
の拡張部以外にも拡張部がある。また、MMを使用しない
命令もある。
ormat)を示す模式図である。MMはオペランドサイズの
指定フィールドである。一部のG1-format命令では、Ea
の拡張部以外にも拡張部がある。また、MMを使用しない
命令もある。
(1.3)「一般形2オペランド命令」 第18図から第20図は2オペランド命令の一般形フォーマ
ットを示す模式図である。このフォーマットに含まれる
のは、8ビットで指定する一般形アドレッシングモード
のオペランドが最大2つ存在する命令である。オペラン
ドの総数自体は3つ以上になる場合がある。
ットを示す模式図である。このフォーマットに含まれる
のは、8ビットで指定する一般形アドレッシングモード
のオペランドが最大2つ存在する命令である。オペラン
ドの総数自体は3つ以上になる場合がある。
第18図は第1オペランドがメモリ読み出しを必要とする
命令のフォーマット(G-format)を示す模式図である。
EaMはデスティネーションオペランドの指定フィール
ド、MMはデスティネーションオペランドサイズの指定フ
ィールド、EaRはソースオペランド指定フィールド、RR
はソースオペランドサイズの指定フィールドである。一
部のG-format命令では、EaMあるいはEaRの拡張部以外に
も拡張部がある。
命令のフォーマット(G-format)を示す模式図である。
EaMはデスティネーションオペランドの指定フィール
ド、MMはデスティネーションオペランドサイズの指定フ
ィールド、EaRはソースオペランド指定フィールド、RR
はソースオペランドサイズの指定フィールドである。一
部のG-format命令では、EaMあるいはEaRの拡張部以外に
も拡張部がある。
第19図は第1オペランドが8ビット即値の命令のフォー
マット(E-format)を示す模式図である。EaMはデステ
ィネーションオペランドの指定フィールド、MMはデステ
ィネーションオペランドサイズの指定フィールド、##
…はソースオペランド値である。
マット(E-format)を示す模式図である。EaMはデステ
ィネーションオペランドの指定フィールド、MMはデステ
ィネーションオペランドサイズの指定フィールド、##
…はソースオペランド値である。
E-formatとI-formatとは機能的には類似しているが、考
え方の点では大きく違っている。具体的には、E-format
はあくまでも2オペランド一般形(G-format)の派生形
であり、ソースオペランドのサイズが8ビット固定、デ
ィスティネーションオペランドのサイズが8/16/32ビッ
トからの選択となっている。つまり、E-formatは異種サ
イズ間の演算を前提とし、デスティネーションオペラン
ドのサイズに合わせて8ビットのソースオペランドがゼ
ロ拡張または符号拡張される。一方、I-formatは、特に
転送命令及び比較命令で頻度の多い即値のパターンを短
縮形にしたものであり、ソースオペランドとディスティ
ネーションオペランドのサイズが等しい。
え方の点では大きく違っている。具体的には、E-format
はあくまでも2オペランド一般形(G-format)の派生形
であり、ソースオペランドのサイズが8ビット固定、デ
ィスティネーションオペランドのサイズが8/16/32ビッ
トからの選択となっている。つまり、E-formatは異種サ
イズ間の演算を前提とし、デスティネーションオペラン
ドのサイズに合わせて8ビットのソースオペランドがゼ
ロ拡張または符号拡張される。一方、I-formatは、特に
転送命令及び比較命令で頻度の多い即値のパターンを短
縮形にしたものであり、ソースオペランドとディスティ
ネーションオペランドのサイズが等しい。
第20図は、第1オペランドがアドレス計算のみの命令の
フォーマット(GA-format)を示す模式図である。EaWは
デスティネーションオペランドの指定フィールド、WWは
デスティネーションオペランドサイズの指定フィール
ド、EaAはソースオペランドの指定フィールドである。
ソースオペランドとしては実行アドレスの計算結果自体
が使用される。
フォーマット(GA-format)を示す模式図である。EaWは
デスティネーションオペランドの指定フィールド、WWは
デスティネーションオペランドサイズの指定フィール
ド、EaAはソースオペランドの指定フィールドである。
ソースオペランドとしては実行アドレスの計算結果自体
が使用される。
第21図は、ショートブランチ命令のフォーマットを示す
模式図である。ccccはブランチ条件指定フィールド、di
sp:8はジャンプ先との変位指定フィールドであり、本発
明のデータ処理装置では8ビットで変位を指定する場合
には、ビットパターンでの指定値を2倍して変位値とす
る。
模式図である。ccccはブランチ条件指定フィールド、di
sp:8はジャンプ先との変位指定フィールドであり、本発
明のデータ処理装置では8ビットで変位を指定する場合
には、ビットパターンでの指定値を2倍して変位値とす
る。
(1.4)「アドレッシングモード」 本発明のデータ処理装置のアドレッシングモード指定方
法には、レジスタを含めて6ビットで指定する短縮形
と、8ビットで指定する一般形とがある。
法には、レジスタを含めて6ビットで指定する短縮形
と、8ビットで指定する一般形とがある。
未定義のアドレッシングモードが指定された場合、ある
いは意味的に考えて明らかに不適当なアドレッシングモ
ードの組み合わせが指定された場合には、未定義命令が
実行された場合同様に予約命令例外が発生され、例外処
理が起動される。
いは意味的に考えて明らかに不適当なアドレッシングモ
ードの組み合わせが指定された場合には、未定義命令が
実行された場合同様に予約命令例外が発生され、例外処
理が起動される。
これに該当するのは、デスティネーションが即値モード
の場合、アドレス計算を伴うべきアドレッシングモード
指定フィールドで即値モードを使用した場合等である。
の場合、アドレス計算を伴うべきアドレッシングモード
指定フィールドで即値モードを使用した場合等である。
フォーマットの図中で使われる記号の意味は次の通りで
ある。
ある。
Rn :レジスタ指定 mem〔EA〕:EAで示されるアドレスのメモリ内容 (Sh) :6ビットの短縮形アドレッシングモードでの
指定方法 (Ea) :8ビットの一般形アドレッシングモードでの
指定方法 フォーマットの図において破線にて囲繞された部分は拡
張部を示す。
指定方法 (Ea) :8ビットの一般形アドレッシングモードでの
指定方法 フォーマットの図において破線にて囲繞された部分は拡
張部を示す。
(1.4.1)「基本アドレッシングモード」 本発明のデータ処理装置は様々なアドレッシングモード
をサポートする。それらの内、本発明のデータ処理装置
でサポートする基本アドレッシングモードには、レジス
タ直接モード、レジスタ間接モード、レジスタ相対間接
モード、即値モード、絶対モード、PC(プログラムカウ
ンタ)相対間接モード、スタックポップモード及びスタ
ックプッシュモードがある。
をサポートする。それらの内、本発明のデータ処理装置
でサポートする基本アドレッシングモードには、レジス
タ直接モード、レジスタ間接モード、レジスタ相対間接
モード、即値モード、絶対モード、PC(プログラムカウ
ンタ)相対間接モード、スタックポップモード及びスタ
ックプッシュモードがある。
レジスタ直接モードはレジスタの内容をそのままオペラ
ンドとする。フォーマットの模式図を第22図に示す。Rn
は汎用レジスタの番号を示す。
ンドとする。フォーマットの模式図を第22図に示す。Rn
は汎用レジスタの番号を示す。
レジスタ間接モードはレジスタの内容をアドレスとする
メモリの内容をオペランドとする。フォーマットの模式
図を第23図に示す。Rnは汎用レジスタの番号を示す。
メモリの内容をオペランドとする。フォーマットの模式
図を第23図に示す。Rnは汎用レジスタの番号を示す。
レジスタ相対間接モードはディスプレースメント値が16
ビットであるか32ビットであるかにより2種類がある。
それぞれ、レジスタの内容に16ビットまたは32ビットの
ディスプレースメント値を加えた値をアドレスとするメ
モリの内容をオペランドとする。フォーマットの模式図
を第24図に示す。Rnは汎用レジスタの番号を示す。dis
p:16とdisp:32とはそれぞれ各々16ビットのディスプレ
ースメント値または32ビットのディスプレースメント値
を示す。ディスプレースメント値は符号付きとして扱
う。
ビットであるか32ビットであるかにより2種類がある。
それぞれ、レジスタの内容に16ビットまたは32ビットの
ディスプレースメント値を加えた値をアドレスとするメ
モリの内容をオペランドとする。フォーマットの模式図
を第24図に示す。Rnは汎用レジスタの番号を示す。dis
p:16とdisp:32とはそれぞれ各々16ビットのディスプレ
ースメント値または32ビットのディスプレースメント値
を示す。ディスプレースメント値は符号付きとして扱
う。
即値モードは命令コード中で指定されるビットパターン
をそのまま2進数と見なしてオペランドとする。フォー
マットの模式図を第25図に示す。imm_dataは即値を示
す。imm_dataのサイズは、オペランドサイズとして命令
中で指定される。
をそのまま2進数と見なしてオペランドとする。フォー
マットの模式図を第25図に示す。imm_dataは即値を示
す。imm_dataのサイズは、オペランドサイズとして命令
中で指定される。
絶対モードはアドレス値が16ビットで示されるか32ビッ
トで示されるかにより2種類ある。それぞれ、命令コー
ド中で指定される16ビットまたは32ビットのビットパタ
ーンをアドレスとするメモリの内容をオペランドとす
る。フォーマットの模式図を第26図に示す。abs:16とab
s:32とはそれぞれ16ビットまたは32ビットのアドレス値
を示す。abs:16でアドレスが示される時は指定されたア
ドレス値を32ビットに符号拡張する。
トで示されるかにより2種類ある。それぞれ、命令コー
ド中で指定される16ビットまたは32ビットのビットパタ
ーンをアドレスとするメモリの内容をオペランドとす
る。フォーマットの模式図を第26図に示す。abs:16とab
s:32とはそれぞれ16ビットまたは32ビットのアドレス値
を示す。abs:16でアドレスが示される時は指定されたア
ドレス値を32ビットに符号拡張する。
PC相対間接モードはディスプレースメント値が16ビット
か32ビットかにより2種類ある。それぞれ、プログラム
カウンタの内容に16ビットまたは32ビットのディスプレ
ースメント値を加えた値をアドレスとするメモリの内容
をオペランドとする。フォーマットの模式図を第27図に
示す。disp:16とdisp:32とはそれぞれ16ビットのディス
プレースメント値または32ビットのディスプレースメン
ト値を示す。ディスプレースメント値は符号付きとして
扱う。PC相対間接モードにおいて、参照されるプログラ
ムカウンタの値はそのオペランドを含む命令の先頭アド
レスである。多段間接アドレッシングモードにおいてプ
ログラムカウンタの値が参照される場合にも、同じよう
に命令の先頭のアドレスをPC相対の基準値として使用す
る。
か32ビットかにより2種類ある。それぞれ、プログラム
カウンタの内容に16ビットまたは32ビットのディスプレ
ースメント値を加えた値をアドレスとするメモリの内容
をオペランドとする。フォーマットの模式図を第27図に
示す。disp:16とdisp:32とはそれぞれ16ビットのディス
プレースメント値または32ビットのディスプレースメン
ト値を示す。ディスプレースメント値は符号付きとして
扱う。PC相対間接モードにおいて、参照されるプログラ
ムカウンタの値はそのオペランドを含む命令の先頭アド
レスである。多段間接アドレッシングモードにおいてプ
ログラムカウンタの値が参照される場合にも、同じよう
に命令の先頭のアドレスをPC相対の基準値として使用す
る。
スタックポップモードはスタックポインタ(SP)の内容
をアドレスとするメモリの内容をオペランドとする。オ
ペランドアクセス後、スタックポインタをオペランドサ
イズだけインクリメントする。例えば、32ビットデータ
を扱う場合には、オペランドアクセス後にSPが+4だけ
更新(インクリメント)される。B,Hのサイズのオペラ
ンドに対するスタックポップモードの指定も可能であ
り、それぞれSPが+1,+2だけ更新(インクリメント)
される。フォーマットの模式図を第28図に示す。オペラ
ンドに対しスタックポップモードが意味を持たないもの
に関しては予約命令例外が発生される。具体的に予約命
令例外となるのは、writeオペランド、read-modify-wri
teオペランドに対するスタックポップモード指定であ
る。
をアドレスとするメモリの内容をオペランドとする。オ
ペランドアクセス後、スタックポインタをオペランドサ
イズだけインクリメントする。例えば、32ビットデータ
を扱う場合には、オペランドアクセス後にSPが+4だけ
更新(インクリメント)される。B,Hのサイズのオペラ
ンドに対するスタックポップモードの指定も可能であ
り、それぞれSPが+1,+2だけ更新(インクリメント)
される。フォーマットの模式図を第28図に示す。オペラ
ンドに対しスタックポップモードが意味を持たないもの
に関しては予約命令例外が発生される。具体的に予約命
令例外となるのは、writeオペランド、read-modify-wri
teオペランドに対するスタックポップモード指定であ
る。
スタックプッシュモードはスタックポインタの内容をオ
ペランドサイズだけデクリメントした内容をアドレスと
するメモリの内容をオペランドとする。スタックプッシ
ュモードでは、オペランドアクセス前にスタックポイン
タがデクリメントされる。例えば、32ビットデータを扱
う場合には、オペランドアクセス前にSPが−4だけ更新
(デクリメント)される。B,Hのサイズのオペランドに
対するスタックプッシュモードの指定も可能であり、そ
れぞれSPが−1,−2だけ更新(デクリメント)される。
フォーマットの模式図を第29図に示す。オペランドに対
してスタックプッシュモードが意味を持たないものに関
しては、予約命令例外が発生される。具体的に予約命令
例外となるのは、readオペランド、read-modify-write
オペランドに対すスタックプッシュモード指定である。
ペランドサイズだけデクリメントした内容をアドレスと
するメモリの内容をオペランドとする。スタックプッシ
ュモードでは、オペランドアクセス前にスタックポイン
タがデクリメントされる。例えば、32ビットデータを扱
う場合には、オペランドアクセス前にSPが−4だけ更新
(デクリメント)される。B,Hのサイズのオペランドに
対するスタックプッシュモードの指定も可能であり、そ
れぞれSPが−1,−2だけ更新(デクリメント)される。
フォーマットの模式図を第29図に示す。オペランドに対
してスタックプッシュモードが意味を持たないものに関
しては、予約命令例外が発生される。具体的に予約命令
例外となるのは、readオペランド、read-modify-write
オペランドに対すスタックプッシュモード指定である。
(1.4.2)「多段間接アドレッシングモード」 如何に複雑なアドレッシングも、基本的には加算と間接
参照の組み合わせに分解される。従って、加算と間接参
照のオペレーションをアドレッシングのプリミティブと
して与えておき、それを任意に組み合わせることができ
れば、如何なる複雑なアドレッシングモードをも実現可
能となる。本発明のデータ処理装置の多段間接アドレッ
シングモードはこの様な考え方に基づいたアドレッシン
グモードである。複雑なアドレッシングモードはモジュ
ール間のデータ参照あるいはAI(人工知能)言語の処理
系に特に有用である。
参照の組み合わせに分解される。従って、加算と間接参
照のオペレーションをアドレッシングのプリミティブと
して与えておき、それを任意に組み合わせることができ
れば、如何なる複雑なアドレッシングモードをも実現可
能となる。本発明のデータ処理装置の多段間接アドレッ
シングモードはこの様な考え方に基づいたアドレッシン
グモードである。複雑なアドレッシングモードはモジュ
ール間のデータ参照あるいはAI(人工知能)言語の処理
系に特に有用である。
多段間接アドレッシングモードを指定する場合、基本ア
ドレッシングモード指定フィールドでは、レジスタベー
ス多段間接モード、PCベース多段間接モード、絶対ベー
ス多段間接モードの3種類の指定方法の内のいずれか1
つを指定する。
ドレッシングモード指定フィールドでは、レジスタベー
ス多段間接モード、PCベース多段間接モード、絶対ベー
ス多段間接モードの3種類の指定方法の内のいずれか1
つを指定する。
レジスタベース多段間接モードはレジスタの値を拡張す
る多段間接アドレッシングのベース値とするアドレッシ
ングモードである。フォーマットの模式図を第30図に示
す。Rnは汎用レジスタの番号を示す。
る多段間接アドレッシングのベース値とするアドレッシ
ングモードである。フォーマットの模式図を第30図に示
す。Rnは汎用レジスタの番号を示す。
PCベース多段間接モードはプログラムカウンタの値を拡
張する多段間接アドレッシングのベース値とするアドレ
ッシングモードである。フォーマットの模式図を第31図
に示す。
張する多段間接アドレッシングのベース値とするアドレ
ッシングモードである。フォーマットの模式図を第31図
に示す。
絶対ベース多段間接モードはゼロを拡張する多段間接ア
ドレッシングのベース値とするアドレッシングモードで
ある。フォーマットの模式図を第32図に示す。
ドレッシングのベース値とするアドレッシングモードで
ある。フォーマットの模式図を第32図に示す。
拡張する多段間接モード指定フィールドは16ビットを単
位としており、これを任意回反復する。1段の多段間接
モードにより、ディスプレースメントの加算、インデク
スレジスタのスケーリング(×1,×2,×4,×8)と加
算、メモリの間接参照を行なう。多段間接モードのフォ
ーマットの模式図を第33図に示す。各フィールドは以下
に示す意味を持つ。
位としており、これを任意回反復する。1段の多段間接
モードにより、ディスプレースメントの加算、インデク
スレジスタのスケーリング(×1,×2,×4,×8)と加
算、メモリの間接参照を行なう。多段間接モードのフォ
ーマットの模式図を第33図に示す。各フィールドは以下
に示す意味を持つ。
E=0:多段間接モード継続 E=1:アドレス計算終了 tmp==>address of operand I=0:メモリ間接参照なし tmp+disp+Rx*Scale==>tmp I=1:メモリ間接参照あり mem〔tmp+disp+Rx*Scale〕==>tmp M=0:〈Rx〉をインデクスとして使用 M=1:特殊なインデクス 〈Rx〉=0 インデクス値を加算しない(Rx=
0) 〈Rx〉=1 プログラムカウンタをインデクス値
として使用(Rx=PC) 〈Rx〉=2〜 reserved D=0:多段間接モード中の4ビットのフィールドd4の値
を4倍してディスプレースメント値とし、これを加算す
る d4は符号付きとして扱い、オペランドのサイズとは関係
なく必ず4倍して使用する D=1:多段間接モードの拡張部で指定されたdispx(16/
32ビット)をディスプレースメント値とし、これを加算
する 拡張部のサイズはd4フィールドで指定する d4=0001 dispxは16ビット d4=0010 dispxは32ビット XX:インデクスのスケール(scale=1/2/4/8) プログラムカウンタに対して×2,×4,×8のスケーリン
グを行なった場合には、その段の処理終了後の中間値
(tmp)として不定値が入る。この多段間接モードによ
って得られる実効アドレスは予測できない値となるが、
例外は発生しない。プログラムカウンタに対するスケー
リングの指定は行なってはいけない。
0) 〈Rx〉=1 プログラムカウンタをインデクス値
として使用(Rx=PC) 〈Rx〉=2〜 reserved D=0:多段間接モード中の4ビットのフィールドd4の値
を4倍してディスプレースメント値とし、これを加算す
る d4は符号付きとして扱い、オペランドのサイズとは関係
なく必ず4倍して使用する D=1:多段間接モードの拡張部で指定されたdispx(16/
32ビット)をディスプレースメント値とし、これを加算
する 拡張部のサイズはd4フィールドで指定する d4=0001 dispxは16ビット d4=0010 dispxは32ビット XX:インデクスのスケール(scale=1/2/4/8) プログラムカウンタに対して×2,×4,×8のスケーリン
グを行なった場合には、その段の処理終了後の中間値
(tmp)として不定値が入る。この多段間接モードによ
って得られる実効アドレスは予測できない値となるが、
例外は発生しない。プログラムカウンタに対するスケー
リングの指定は行なってはいけない。
多段間接モードによる命令フォーマットのバリエーショ
ンを第34図、第35図に示す。
ンを第34図、第35図に示す。
第34図は、多段間接モードが継続するか終了するかのバ
リエーションを示す。
リエーションを示す。
第35図は、ディスプレースメントのサイズのバリエーシ
ョンを示す。
ョンを示す。
任意段数の多段間接モードが利用できれば、コンパイラ
の中で段数による場合分けが不要になるので、コンパイ
ラの負担が軽減されるというメリットがある。多段の間
接参照の頻度が非常に少ないとしても、コンパイラとし
ては必ず正しいコードを発生できなければならないから
である。このため、フォーマット上では任意の段数が可
能になっている。
の中で段数による場合分けが不要になるので、コンパイ
ラの負担が軽減されるというメリットがある。多段の間
接参照の頻度が非常に少ないとしても、コンパイラとし
ては必ず正しいコードを発生できなければならないから
である。このため、フォーマット上では任意の段数が可
能になっている。
(1.5)「例外処理」 本発明のデータ処理装置はソフトウエア負荷の軽減のた
め豊富な例外処理機能を有する。本発明のデータ処理装
置では、例外処理は命令処理を再実行するもの(例
外)、命令処理を完了するもの(トラップ)及び割込の
3種類に分けて名称をつけている。また本発明のデータ
処理装置では、この3種の例外処理とシステム障害とを
総称してEITと称する。
め豊富な例外処理機能を有する。本発明のデータ処理装
置では、例外処理は命令処理を再実行するもの(例
外)、命令処理を完了するもの(トラップ)及び割込の
3種類に分けて名称をつけている。また本発明のデータ
処理装置では、この3種の例外処理とシステム障害とを
総称してEITと称する。
(2)「機能ブロックの構成」 第1図は本発明のデータ処理装置の構成を示すブロック
図である。
図である。
本発明のデータ処理装置の内部を機能的に大きく分ける
と、命令フェッチ部101,命令デコード部102,PC計算部10
3,オペランドアドレス計算部104,マイクロROM部105,デ
ータ演算部106,外部バスインターフェイス部107に分か
れる。
と、命令フェッチ部101,命令デコード部102,PC計算部10
3,オペランドアドレス計算部104,マイクロROM部105,デ
ータ演算部106,外部バスインターフェイス部107に分か
れる。
第1図では、その他にCPU外部にアドレスを出力するた
めのアドレス出力回路108と、CPU外部とデータを入出力
するためのデータ入出力回路109とを他の機能ブロック
部と分けて示した。
めのアドレス出力回路108と、CPU外部とデータを入出力
するためのデータ入出力回路109とを他の機能ブロック
部と分けて示した。
(2.1)「命令フェッチ部」 命令フェッチ部101にはブランチバッファ、命令キュー
とその制御部等があり、次にフェッチすべき命令のアド
レスを決定してブランチバッファあるいはCPU外部のメ
モリから命令をフェッチする。またブランチバッファへ
の命令登録をも行う。
とその制御部等があり、次にフェッチすべき命令のアド
レスを決定してブランチバッファあるいはCPU外部のメ
モリから命令をフェッチする。またブランチバッファへ
の命令登録をも行う。
ブランチバッファは小規模であるためセレクティブキャ
ッシュとして動作する。ブランチバッファの動作の詳細
は特開昭63-56731号に開示されている。
ッシュとして動作する。ブランチバッファの動作の詳細
は特開昭63-56731号に開示されている。
次にフェッチすべき命令のアドレスは、命令キュー301
に入力すべき命令のアドレスとして専用のカウンタにて
計算される。分岐あるいはジャンプが発生した場合い
は、新たな命令のアドレスがPC計算部103あるいはデー
タ演算部106から転送されてくる。
に入力すべき命令のアドレスとして専用のカウンタにて
計算される。分岐あるいはジャンプが発生した場合い
は、新たな命令のアドレスがPC計算部103あるいはデー
タ演算部106から転送されてくる。
CPU外部のメモリから命令をフェッチする場合は、外部
バスインターフェイス部107を通して、フェッチすべき
命令のアドレスをアドレス出力回路108からCPU外部へ出
力し、データ入出力回路109から命令コードをフェッチ
する。そして、バッファリングした命令コードの内、次
にデコードすべき命令コードを命令デコード部102に出
力する。
バスインターフェイス部107を通して、フェッチすべき
命令のアドレスをアドレス出力回路108からCPU外部へ出
力し、データ入出力回路109から命令コードをフェッチ
する。そして、バッファリングした命令コードの内、次
にデコードすべき命令コードを命令デコード部102に出
力する。
(2.2)「命令デコード部」 命令デコード部102では、基本的には16ビット(ハーフ
ワード)単位で命令コードをデコードする。このブロッ
クには第1ハーフワードに含まれるオペレーションコー
ドをデコードするFHWデコーダ、第2,第3ハーフワード
に含まれるオペレーションコードをデコードするNFHWデ
コーダ、アドレッシングモードをデコードするアドレッ
シングモードデコーダが含まれる。これらFHWデコー
ダ、NFHWデコーダ、アドレッシングモードデコーダを纏
めて第1デコーダ303という。
ワード)単位で命令コードをデコードする。このブロッ
クには第1ハーフワードに含まれるオペレーションコー
ドをデコードするFHWデコーダ、第2,第3ハーフワード
に含まれるオペレーションコードをデコードするNFHWデ
コーダ、アドレッシングモードをデコードするアドレッ
シングモードデコーダが含まれる。これらFHWデコー
ダ、NFHWデコーダ、アドレッシングモードデコーダを纏
めて第1デコーダ303という。
FHWデコーダあるいはNFHWデコーダの出力を更にデコー
ドして、マイクロROMのエントリアドレスを計算する第
2デコーダ305、条件分岐命令の分岐予測を行う分岐予
測機構、オペランドアドレス計算の際のパイプラインコ
ンフリクトをチェックするアドレス計算コンフリクトチ
ェック機構も含まれる。
ドして、マイクロROMのエントリアドレスを計算する第
2デコーダ305、条件分岐命令の分岐予測を行う分岐予
測機構、オペランドアドレス計算の際のパイプラインコ
ンフリクトをチェックするアドレス計算コンフリクトチ
ェック機構も含まれる。
命令デコード部102は命令フェッチ部101から入力された
命令コードを2クロック(1ステップ)につき0〜6バ
イトずつデコードする。デコード結果の内、データ演算
部106での演算に関する情報がマイクロROM部105に、オ
ペランドアドレス計算に関係する情報がオペランドアド
レス計算部104に、PC計算に関係する情報がPC計算部103
にそれぞれ出力される。
命令コードを2クロック(1ステップ)につき0〜6バ
イトずつデコードする。デコード結果の内、データ演算
部106での演算に関する情報がマイクロROM部105に、オ
ペランドアドレス計算に関係する情報がオペランドアド
レス計算部104に、PC計算に関係する情報がPC計算部103
にそれぞれ出力される。
(2.3)「マイクロROM部」 マイクロROM部105には、主にデータ演算部106を制御す
るマイクロプログラムが格納されているマイクロROM、
マイクロシーケンサ、マイクロ命令デコーダ等が含まれ
る。マイクロ命令はマイクロROMから2クロック(1ス
テップ)に1度読出される。マイクロシーケンサはマイ
クロプログラムで示されるシーケンス処理の他に、例
外、割込及びトラップ(この3つを合わせてEITと称す
る)の処理をハードウエア的に受付ける。またマイクロ
ROM部105はストアバッファの管理も行う。マイクロROM
部105には命令コードに依存しない割込みあるいは演算
実行結果によるフラッグ情報と、第2デコーダ305の出
力等の命令デコード部の出力が入力される。マイクロデ
コーダの出力は主にデータ演算部106に対して出力され
るが、ジャンプ命令の実行による他の先行処理中止情報
等の一部の情報は他のブロックへも出力される。
るマイクロプログラムが格納されているマイクロROM、
マイクロシーケンサ、マイクロ命令デコーダ等が含まれ
る。マイクロ命令はマイクロROMから2クロック(1ス
テップ)に1度読出される。マイクロシーケンサはマイ
クロプログラムで示されるシーケンス処理の他に、例
外、割込及びトラップ(この3つを合わせてEITと称す
る)の処理をハードウエア的に受付ける。またマイクロ
ROM部105はストアバッファの管理も行う。マイクロROM
部105には命令コードに依存しない割込みあるいは演算
実行結果によるフラッグ情報と、第2デコーダ305の出
力等の命令デコード部の出力が入力される。マイクロデ
コーダの出力は主にデータ演算部106に対して出力され
るが、ジャンプ命令の実行による他の先行処理中止情報
等の一部の情報は他のブロックへも出力される。
(2.4)「オペランドアドレス計算部」 オペランドアドレス計算部104は命令デコード部102のア
ドレスデコーダ等から出力されたオペランドアドレス計
算に関係する情報によりハードワイヤード制御される。
このブロックではオペランドのアドレス計算に関するほ
とんどの処理が行われる。メモリ間接アドレシングのた
めのメモリアクセスのアドレス及びオペランドアドレス
がメモリにマップされたI/O領域に入るか否かのチェッ
クも行われる。
ドレスデコーダ等から出力されたオペランドアドレス計
算に関係する情報によりハードワイヤード制御される。
このブロックではオペランドのアドレス計算に関するほ
とんどの処理が行われる。メモリ間接アドレシングのた
めのメモリアクセスのアドレス及びオペランドアドレス
がメモリにマップされたI/O領域に入るか否かのチェッ
クも行われる。
アドレス計算結果は外部バスインターフェイス部107に
送られる。アドレス計算に必要な汎用レジスタ及びプロ
グラムカウンタの値はデータ演算部より入力される。
送られる。アドレス計算に必要な汎用レジスタ及びプロ
グラムカウンタの値はデータ演算部より入力される。
メモリ間接アドレッシングを行う際は外部バスインター
フェイス部107を通してアドレス出力回路108からCPU外
部へ参照すべきメモリアドレスを出力し、データ入出力
部109から入力された間接アドレス値を命令デコード部1
02を通してフェッチする。
フェイス部107を通してアドレス出力回路108からCPU外
部へ参照すべきメモリアドレスを出力し、データ入出力
部109から入力された間接アドレス値を命令デコード部1
02を通してフェッチする。
(2.5)「PC計算部」 PC計算部103は命令デコード部102から出力されるPC計算
に関係する情報によりハードワイヤードに制御され、命
令のPC値を計算する。本発明のデータ処理装置は可変長
命令セットを有しており、命令をデコードしなければそ
の命令の長さが判らない。このため、PC計算部103は命
令デコード部102から出力される命令長をデコード中の
命令のPC値に加算することにより次の命令のPC値を作り
出す。また、命令デコード部102が分岐命令をデコード
してデコード段階での分岐を指示した場合は、命令長の
代わりに分岐変位を分岐命令のPC値に加算することによ
り分岐先命令のPC値を計算する。分岐命令に対して命令
デコード段階で分岐を行うことを本発明のデータ処理装
置ではプリブランチと称する。
に関係する情報によりハードワイヤードに制御され、命
令のPC値を計算する。本発明のデータ処理装置は可変長
命令セットを有しており、命令をデコードしなければそ
の命令の長さが判らない。このため、PC計算部103は命
令デコード部102から出力される命令長をデコード中の
命令のPC値に加算することにより次の命令のPC値を作り
出す。また、命令デコード部102が分岐命令をデコード
してデコード段階での分岐を指示した場合は、命令長の
代わりに分岐変位を分岐命令のPC値に加算することによ
り分岐先命令のPC値を計算する。分岐命令に対して命令
デコード段階で分岐を行うことを本発明のデータ処理装
置ではプリブランチと称する。
このプリブランチの手法については特開昭63-59630号及
び特開昭63-55639号に詳しく開示されている。
び特開昭63-55639号に詳しく開示されている。
PC計算部103の計算結果は各命令のPC値として命令のデ
コード結果と共に出力される他、プリブランチ時には、
次にデコードすべき命令のアドレスとして命令フェッチ
部101へ出力される。また、次に命令デコード部102でデ
コードされる命令の分岐予測のためのアドレスにも使用
される。
コード結果と共に出力される他、プリブランチ時には、
次にデコードすべき命令のアドレスとして命令フェッチ
部101へ出力される。また、次に命令デコード部102でデ
コードされる命令の分岐予測のためのアドレスにも使用
される。
分岐予測の手法については特開昭63-175934号に詳しく
開示されている。
開示されている。
(2.6)「データ演算部」 データ演算部106はマイクロプログラムにより制御さ
れ、マイクロROM部105の出力情報に従って各命令の機能
を実現するに必要な演算をレジスタと演算器で実行す
る。演算対象となるオペランドがアドレスあるいは即値
である場合は、オペランドアドレス計算部オペランドア
ドレス計算部104で計算されたアドレスあるいは即値を
外部バスインタフェイス部107を通過させて得る。ま
た、演算対象となるオペランドがCPU外部のメモリにあ
る場合は、アドレス計算部104で計算されたアドレスを
バスインタフェイス部がアドレス出力回路108から出力
して、CPU外部のメモリからフェッチしたオペランドを
データ入出力回路109から得る。
れ、マイクロROM部105の出力情報に従って各命令の機能
を実現するに必要な演算をレジスタと演算器で実行す
る。演算対象となるオペランドがアドレスあるいは即値
である場合は、オペランドアドレス計算部オペランドア
ドレス計算部104で計算されたアドレスあるいは即値を
外部バスインタフェイス部107を通過させて得る。ま
た、演算対象となるオペランドがCPU外部のメモリにあ
る場合は、アドレス計算部104で計算されたアドレスを
バスインタフェイス部がアドレス出力回路108から出力
して、CPU外部のメモリからフェッチしたオペランドを
データ入出力回路109から得る。
演算器としてはALU313、バレルシフタ、プライオリティ
エンコーダあるいはカウンタ、シフトレジスタなどがあ
る。レジスタと主な演算器の間は3バスで結合されてお
り、1つのレジスタ間演算を指示する1マイクロ命令を
2クロック(1ステップ)で処理する。
エンコーダあるいはカウンタ、シフトレジスタなどがあ
る。レジスタと主な演算器の間は3バスで結合されてお
り、1つのレジスタ間演算を指示する1マイクロ命令を
2クロック(1ステップ)で処理する。
データ演算時にCPU外部のメモリをアクセスする必要が
ある場合は、マイクロプログラムの指示により外部バス
インターフェイス部107を通してアドレス出力回路108か
らアドレスをCPU外部に出力し、データ入出力回路109を
通して目的のデータをフェッチする。
ある場合は、マイクロプログラムの指示により外部バス
インターフェイス部107を通してアドレス出力回路108か
らアドレスをCPU外部に出力し、データ入出力回路109を
通して目的のデータをフェッチする。
CPU外部のメモリにデータをストアする場合は、外部バ
スインターフェイス部107を通してアドレス出力回路108
よりアドレスを出力すると同時に、データ入出力回路10
9からデータをCPU外部に出力する。オペランドストアを
効率的に行うため、データ演算部106には4バイトのス
トアバッファが備えられている。
スインターフェイス部107を通してアドレス出力回路108
よりアドレスを出力すると同時に、データ入出力回路10
9からデータをCPU外部に出力する。オペランドストアを
効率的に行うため、データ演算部106には4バイトのス
トアバッファが備えられている。
ジャンプ命令の処理あるいは例外処理等を行って新たな
命令アドレスをデータ演算部106が得た場合は、これを
命令フェッチ部101とPC計算部103へ出力する。
命令アドレスをデータ演算部106が得た場合は、これを
命令フェッチ部101とPC計算部103へ出力する。
(2.7)「外部バスインターフェイス部」 外部バスインターフェイス部107は本発明のデータ処理
装置の外部バスでの通信を制御する。メモリのアクセス
はすべてクロック同期で行われ、最小2クロックサイク
ル(1ステップ)で行うことができる。
装置の外部バスでの通信を制御する。メモリのアクセス
はすべてクロック同期で行われ、最小2クロックサイク
ル(1ステップ)で行うことができる。
メモリに対するアクセス要求は命令フェッチ部101、オ
ペランドアドレス計算部104及びデータ演算部106から独
立に生じる。外部バスインターフェイス部107はこれら
のメモリアクセス要求を調停する。更にメモリとCPUと
を結ぶデータバスサイズである32ビット(1ワード)の
整置境界を跨ぐメモリ番地にあるデータのアクセスは、
このブロック内で自動的にワード境界を跨ぐことを検知
して2回のメモリアクセスに分解して行う。
ペランドアドレス計算部104及びデータ演算部106から独
立に生じる。外部バスインターフェイス部107はこれら
のメモリアクセス要求を調停する。更にメモリとCPUと
を結ぶデータバスサイズである32ビット(1ワード)の
整置境界を跨ぐメモリ番地にあるデータのアクセスは、
このブロック内で自動的にワード境界を跨ぐことを検知
して2回のメモリアクセスに分解して行う。
プリフェッチするオペランドとストアするオペランドと
が重なる場合のコンフリクト防止処理及びストアオペラ
ンドからフェッチオペランドへのバイパス処理も行う。
が重なる場合のコンフリクト防止処理及びストアオペラ
ンドからフェッチオペランドへのバイパス処理も行う。
(3)「パイプライン機構」 本発明のデータ処理装置のパイプライン処理機能は第2
図に模式的に示される如くである。
図に模式的に示される如くである。
命令のプリフェッチを行う命令フェッチステージ(IFス
テージ)201,命令のデコードを行うデコードステージ
(Dステージ)202,オペランドのアドレス計算を行うオ
ペランドアドレス計算ステージ(Aステージ)203,マイ
クロROMアクセス(特にRステージ206と呼ぶ)を行う部
分とオペランドのプリフェッチ(特にOFステージ207と
称す)を行う部分とからなるオペランドフェッチステー
ジ(Fステージ)204,命令を実行する実行ステージ(E
ステージ)205の5段構成をパイプライン処理の基本と
する。
テージ)201,命令のデコードを行うデコードステージ
(Dステージ)202,オペランドのアドレス計算を行うオ
ペランドアドレス計算ステージ(Aステージ)203,マイ
クロROMアクセス(特にRステージ206と呼ぶ)を行う部
分とオペランドのプリフェッチ(特にOFステージ207と
称す)を行う部分とからなるオペランドフェッチステー
ジ(Fステージ)204,命令を実行する実行ステージ(E
ステージ)205の5段構成をパイプライン処理の基本と
する。
Eステージ205では1段のストアバッファがある他、高
機能命令の一部は命令の実行自体をパイプライン化する
ため、実際には5段以上のパイプライン処理効果があ
る。
機能命令の一部は命令の実行自体をパイプライン化する
ため、実際には5段以上のパイプライン処理効果があ
る。
各ステージは他のステージとは独立に動作し、理論上は
5つのステージが完全に独立動作する。各ステージは1
回の処理を最小2クロック(1ステップ)で行うことが
できる。従って理想的には2クロック(1ステップ)毎
に次々とパイプライン処理が進行する。
5つのステージが完全に独立動作する。各ステージは1
回の処理を最小2クロック(1ステップ)で行うことが
できる。従って理想的には2クロック(1ステップ)毎
に次々とパイプライン処理が進行する。
本発明のデータ処理装置には、メモリ−メモリ間演算あ
るいはメモリ間接アドレッシング等の如く1回の基本パ
イプライン処理のみでは処理し得ない命令もあるが、本
発明のデータ処理装置はこれらの処理に対してもなるべ
く均衡のとれたパイプライン処理が行える様に設計され
ている。複数のメモリオペランドを持つ命令に対しては
メモリオペランドの数に基づいてデコード段階で複数の
パイプライン処理単位(ステップコード)に分解してパ
イプライン処理を行う。
るいはメモリ間接アドレッシング等の如く1回の基本パ
イプライン処理のみでは処理し得ない命令もあるが、本
発明のデータ処理装置はこれらの処理に対してもなるべ
く均衡のとれたパイプライン処理が行える様に設計され
ている。複数のメモリオペランドを持つ命令に対しては
メモリオペランドの数に基づいてデコード段階で複数の
パイプライン処理単位(ステップコード)に分解してパ
イプライン処理を行う。
パイプライン処理単位の分解方法に関しては特開昭63-8
9932号に詳しく開示されている。
9932号に詳しく開示されている。
IFステージ201からDステージ202に渡される情報は、命
令コード211そのものである。Dステージ202からAステ
ージ203に渡される情報は、命令で指定された演算に関
するもの(Dコード212と称す)と、オペランドのアド
レス計算に関係するもの(Aコード213と称す)との2
つがある。
令コード211そのものである。Dステージ202からAステ
ージ203に渡される情報は、命令で指定された演算に関
するもの(Dコード212と称す)と、オペランドのアド
レス計算に関係するもの(Aコード213と称す)との2
つがある。
Aステージ203からFステージ204に渡される情報はマイ
クロプログラムのエントリアドレスあるいはマイクロプ
ログラムのパラメータ等を含むRコード214と、オペラ
ンドのアドレスとアクセス方法指示情報等を含むFコー
ド215との2つである。
クロプログラムのエントリアドレスあるいはマイクロプ
ログラムのパラメータ等を含むRコード214と、オペラ
ンドのアドレスとアクセス方法指示情報等を含むFコー
ド215との2つである。
Fステージ204からEステージ205に渡される情報は、演
算制御情報とリテラル等を含むEコード216と、オペラ
ンドあるいはオペランドアドレス等を含むSコード217
との2つである。
算制御情報とリテラル等を含むEコード216と、オペラ
ンドあるいはオペランドアドレス等を含むSコード217
との2つである。
Eステージ205以外のステージで検出されたEITは、その
コードがEステージ205に到達する迄はEIT処理を起動し
ない。Eステージ205で処理されている命令のみが実行
段階の命令であり、IFステージ201からFステージ204ま
での間で処理されている命令はまだ実行段階に至ってい
ないからである。従って、Eステージ205以外で検出さ
れたEITは、それが検出されたことがステップコード中
に記録されて次のステージに伝えられるのみである。
コードがEステージ205に到達する迄はEIT処理を起動し
ない。Eステージ205で処理されている命令のみが実行
段階の命令であり、IFステージ201からFステージ204ま
での間で処理されている命令はまだ実行段階に至ってい
ないからである。従って、Eステージ205以外で検出さ
れたEITは、それが検出されたことがステップコード中
に記録されて次のステージに伝えられるのみである。
(3.1)「パイプライン処理単位」 (3.1.1)「命令コードフィールドの分類」 本発明のデータ処理装置のパイプライン処理単位は命令
セットのフォーマットの特徴を利用して決定されてい
る。
セットのフォーマットの特徴を利用して決定されてい
る。
(1)節で述べた如く、本発明のデータ処理装置の命令
は2バイト単位の可変長命令であり、基本的には“2バ
イトの命令基本部+0〜4バイトのアドレシング拡張
部”を1〜3回反復することにより命令が構成されてい
る。
は2バイト単位の可変長命令であり、基本的には“2バ
イトの命令基本部+0〜4バイトのアドレシング拡張
部”を1〜3回反復することにより命令が構成されてい
る。
命令基本部には多くの場合、オペレーションコード部と
アドレッシングモード指定部とがあり、インデックスア
ドレッシングあるいはメモリ間接アドレッシングが必要
な場合にはアドレッシング拡張部の代わりに“2バイト
の多段間接モード指定部+0〜4バイトのアドレッシン
グ拡張部”が任意個付く。また、命令により2または4
バイトの命令固有の拡張部が最後に付く。
アドレッシングモード指定部とがあり、インデックスア
ドレッシングあるいはメモリ間接アドレッシングが必要
な場合にはアドレッシング拡張部の代わりに“2バイト
の多段間接モード指定部+0〜4バイトのアドレッシン
グ拡張部”が任意個付く。また、命令により2または4
バイトの命令固有の拡張部が最後に付く。
命令基本部には命令のオペレーションコード、基本アド
レッシングモード、リテラルなどが含まれる。アドレッ
シング拡張部はディスプレースメント、絶対アドレス、
即値、分岐命令の変位のいずれかである。命令固有の拡
張部にはレジスタマップ、I-format命令の即値指定等が
ある。第36図は、本発明のデータ処理装置の基本的命令
フォーマットの特徴を示す模式図である。
レッシングモード、リテラルなどが含まれる。アドレッ
シング拡張部はディスプレースメント、絶対アドレス、
即値、分岐命令の変位のいずれかである。命令固有の拡
張部にはレジスタマップ、I-format命令の即値指定等が
ある。第36図は、本発明のデータ処理装置の基本的命令
フォーマットの特徴を示す模式図である。
(3.1.2)「ステップコードへの命令の分解」 本発明のデータ処理装置では、上記の命令フォーマット
の特徴を生かしたパイプライン処理を行う。
の特徴を生かしたパイプライン処理を行う。
Dステージ202では“2バイトの命令基本部+0〜4バ
イトのアドレッシング拡張部",“多段間接モード指定部
+アドレッシング拡張部”又は命令固有の拡張部を1つ
のデコード単位として処理する。各回のデコード結果を
ステップコードと称し、Aステージ203以降ではこのス
テップコードをパイプライン処理の単位としている。ス
テップコードの数は命令毎に固有であり、多段間接モー
ド指定を行わない場合は、1つの命令は最小1個、最大
3個のステップコードに分かれる。多段間接モード指定
が行われた場合はそれだけステップコードが増加する。
但し、これは後で述べる様にデコード段階のみである。
イトのアドレッシング拡張部",“多段間接モード指定部
+アドレッシング拡張部”又は命令固有の拡張部を1つ
のデコード単位として処理する。各回のデコード結果を
ステップコードと称し、Aステージ203以降ではこのス
テップコードをパイプライン処理の単位としている。ス
テップコードの数は命令毎に固有であり、多段間接モー
ド指定を行わない場合は、1つの命令は最小1個、最大
3個のステップコードに分かれる。多段間接モード指定
が行われた場合はそれだけステップコードが増加する。
但し、これは後で述べる様にデコード段階のみである。
(3.1.3)「プログラムカウンタの管理」 本発明のデータ処理装置のパイプライン上に存在するス
テップコードは全て別命令に対するものである可能性が
あり、このためプログラムカウンタの値はステップコー
ド毎に管理される。全てのステップコードは、そのステ
ップコードのもとになった命令のプログラムカウンタ値
を有する。ステップコードに付属してパイプラインの各
ステージを流れるプログラムカウンタ値はステッププロ
グラムカウンタ(SPC)と称する。SPCはパイプラインス
テージ間を次々と受け渡されていく。
テップコードは全て別命令に対するものである可能性が
あり、このためプログラムカウンタの値はステップコー
ド毎に管理される。全てのステップコードは、そのステ
ップコードのもとになった命令のプログラムカウンタ値
を有する。ステップコードに付属してパイプラインの各
ステージを流れるプログラムカウンタ値はステッププロ
グラムカウンタ(SPC)と称する。SPCはパイプラインス
テージ間を次々と受け渡されていく。
(3.2)「各パイプラインステージの処理」 各パイプラインステージの入出力ステップコードには第
2図に示したように便宜上名前が付けられている。ま
た、ステップコードはオペレーションコードに関する処
理を行い、マイクロプログラムのエントリアドレス及び
Eステージ205に対するパラメータなどになる系列とE
ステージ205のマイクロ命令に対するオペランドになる
系列との2系列がある。
2図に示したように便宜上名前が付けられている。ま
た、ステップコードはオペレーションコードに関する処
理を行い、マイクロプログラムのエントリアドレス及び
Eステージ205に対するパラメータなどになる系列とE
ステージ205のマイクロ命令に対するオペランドになる
系列との2系列がある。
(3.2.1)「命令フェッチステージ」 命令フェッチステージ(IFステージ)201は命令をメモ
リあるいはブランチバッファからフェッチして命令キュ
ー301に入力し、Dステージ202に対して命令コードを出
力する。命令キュー301の入力は整置された4バイト単
位で行う。メモリから命令をフェッチする場合は、整置
された4バイトにつき最小2クロック(1ステップ)を
要する。ブランチバッファがヒットした場合は、整置さ
れた4バイトにつき1クロックでフェッチ可能である。
命令キュー301の出力単位は2バイト毎に可変であり、
2クロックの間に最大6バイトまで出力できる。また、
分岐の直後には命令キュー301をバイパスして命令基本
部2バイトを直接命令デコーダに転送することも可能で
ある。
リあるいはブランチバッファからフェッチして命令キュ
ー301に入力し、Dステージ202に対して命令コードを出
力する。命令キュー301の入力は整置された4バイト単
位で行う。メモリから命令をフェッチする場合は、整置
された4バイトにつき最小2クロック(1ステップ)を
要する。ブランチバッファがヒットした場合は、整置さ
れた4バイトにつき1クロックでフェッチ可能である。
命令キュー301の出力単位は2バイト毎に可変であり、
2クロックの間に最大6バイトまで出力できる。また、
分岐の直後には命令キュー301をバイパスして命令基本
部2バイトを直接命令デコーダに転送することも可能で
ある。
ブランチバッファへの命令の登録及びクリア等の制御、
プリフェッチ先の命令のアドレスの管理や命令キューの
制御もIFステージ201で行う。
プリフェッチ先の命令のアドレスの管理や命令キューの
制御もIFステージ201で行う。
IFステージ201で検出するEITには、命令をメモリからフ
ェッチする際のバスアクセス例外あるいはメモリ保護違
反などによるアドレス変換例外がある。
ェッチする際のバスアクセス例外あるいはメモリ保護違
反などによるアドレス変換例外がある。
(3.2.2)「命令デコードステージ」 命令デコードステージ(Dステージ)202はIFステージ2
01から入力された命令コードをデコードする。デコード
は命令デコード部102のFHWデコーダ、NFHWデコーダ及び
アドレッシングモードデコーダを合わせた第1デコーダ
303を使用して、2クロック(1ステップ)単位に1度
行ない、1回のデコード処理で、0〜6バイトの命令コ
ードを消費する(RET命令の復帰先アドレスを含むステ
ップコードの出力処理などでは命令コードを消費しな
い)。1回のデコードでAステージ203に対してアドレ
ス計算情報としてのAコード213である制御コードとア
ドレス修飾情報と、オペレーションコードの中間デコー
ド結果としてのDコード212である制御コードと8ビッ
トのリテラル情報とを出力する。
01から入力された命令コードをデコードする。デコード
は命令デコード部102のFHWデコーダ、NFHWデコーダ及び
アドレッシングモードデコーダを合わせた第1デコーダ
303を使用して、2クロック(1ステップ)単位に1度
行ない、1回のデコード処理で、0〜6バイトの命令コ
ードを消費する(RET命令の復帰先アドレスを含むステ
ップコードの出力処理などでは命令コードを消費しな
い)。1回のデコードでAステージ203に対してアドレ
ス計算情報としてのAコード213である制御コードとア
ドレス修飾情報と、オペレーションコードの中間デコー
ド結果としてのDコード212である制御コードと8ビッ
トのリテラル情報とを出力する。
Dステージ202では、各命令のPC計算部103の制御、分岐
予測処理、プリブランチ命令に対するプリブランチ処
理、命令キュー301からの命令コード出力処理をも行
う。
予測処理、プリブランチ命令に対するプリブランチ処
理、命令キュー301からの命令コード出力処理をも行
う。
Dステージ202で検出するEITには、予約命令例外及びプ
リブランチ時の奇数アドレスジャンプトラップがある。
また、IFステージ201より転送されてきた各種EITはステ
ップコード内にエンコードする処理をしてAステージ20
3に転送する。
リブランチ時の奇数アドレスジャンプトラップがある。
また、IFステージ201より転送されてきた各種EITはステ
ップコード内にエンコードする処理をしてAステージ20
3に転送する。
(3.2.3)「オペランドアドレス計算ステージ」 オペランドアドレス計算ステージ(Aステージ)203は
処理機能が大きく2つに分かれる。1つは命令デコード
部102の第2デコーダ305を使用してオペレーションコー
ドの後段デコードを行う処理で、他方はオペランドアド
レス計算部104でオペランドアドレスの計算を行う処理
である。
処理機能が大きく2つに分かれる。1つは命令デコード
部102の第2デコーダ305を使用してオペレーションコー
ドの後段デコードを行う処理で、他方はオペランドアド
レス計算部104でオペランドアドレスの計算を行う処理
である。
オペレーションコードの後段デコード処理はDコード21
2を入力とし、レジスタ,メモリの書込み予約及びマイ
クロプログラムのエントリアドレスとマイクロプログラ
ムに対するパラメータなどを含むRコード214の出力を
行う。なお、レジスタあるいはメモリの書込み予約は、
アドレス計算で参照したレジスタやメモリの内容がパイ
プライン上を先行する命令で書換えられることにより誤
ったアドレス計算が行われるのを防ぐためのものであ
る。レジスタあるいはメモリの書込み予約はデッドロッ
クを避けるため、ステップコード毎ではなく命令毎に行
う。レジスタ及びメモリへの書込み予約については特願
昭62-144394号で詳しく述べられている。
2を入力とし、レジスタ,メモリの書込み予約及びマイ
クロプログラムのエントリアドレスとマイクロプログラ
ムに対するパラメータなどを含むRコード214の出力を
行う。なお、レジスタあるいはメモリの書込み予約は、
アドレス計算で参照したレジスタやメモリの内容がパイ
プライン上を先行する命令で書換えられることにより誤
ったアドレス計算が行われるのを防ぐためのものであ
る。レジスタあるいはメモリの書込み予約はデッドロッ
クを避けるため、ステップコード毎ではなく命令毎に行
う。レジスタ及びメモリへの書込み予約については特願
昭62-144394号で詳しく述べられている。
オペランドアドレス計算処理はAコード213を入力と
し、Aコード213に従いオペランドアドレス計算部104で
加算あるいはメモリ間接参照を組合わせてアドレス計算
を行い、その計算結果をFコード215として出力する。
この際、アドレス計算に伴うレジスタ及びメモリの読出
し時にコンフリクトチェックを行い、先行命令がレジス
タあるいはメモリに書込み処理を終了していないためコ
ンフリクトが指示されれば、先行命令がEステージ205
で書込み処理を終了するまで待つ。また、オペランドア
ドレス及びメモリ間接参照のアドレスがメモリにマップ
されたI/O領域に入るか否かのチェックも行う。
し、Aコード213に従いオペランドアドレス計算部104で
加算あるいはメモリ間接参照を組合わせてアドレス計算
を行い、その計算結果をFコード215として出力する。
この際、アドレス計算に伴うレジスタ及びメモリの読出
し時にコンフリクトチェックを行い、先行命令がレジス
タあるいはメモリに書込み処理を終了していないためコ
ンフリクトが指示されれば、先行命令がEステージ205
で書込み処理を終了するまで待つ。また、オペランドア
ドレス及びメモリ間接参照のアドレスがメモリにマップ
されたI/O領域に入るか否かのチェックも行う。
Aステージ203で検出するEITには予約命令例外、特権命
令例外、バスアクセス例外、アドレス変換例外、メモリ
間接アドレッシングの時のオペランドブレイクポイント
ヒットによるデバッグトラップがある。Dコード212又
はAコード213自体がEITを起こしたことを示していれ
ば、Aステージ203はそのコードに対してアドレス計算
処理をせず、そのEITをRコード214及びFコード215に
伝える。
令例外、バスアクセス例外、アドレス変換例外、メモリ
間接アドレッシングの時のオペランドブレイクポイント
ヒットによるデバッグトラップがある。Dコード212又
はAコード213自体がEITを起こしたことを示していれ
ば、Aステージ203はそのコードに対してアドレス計算
処理をせず、そのEITをRコード214及びFコード215に
伝える。
(3.2.4)「マイクロROMアクセスステージ」 オペランドフェッチステージ(Fステージ)204も処理
が大きく2つに分かれる。一方はマイクロROMのアクセ
ス処理であり、特にRステージ206と称する。他方はオ
ペランドプリフェッチ処理であり、特にOFステージ207
と称する。Rステージ206とOFステージ207とは必ずしも
同時に動作するわけではなく、メモリアクセス権が獲得
できるか否か等に依存して独立に動作する。
が大きく2つに分かれる。一方はマイクロROMのアクセ
ス処理であり、特にRステージ206と称する。他方はオ
ペランドプリフェッチ処理であり、特にOFステージ207
と称する。Rステージ206とOFステージ207とは必ずしも
同時に動作するわけではなく、メモリアクセス権が獲得
できるか否か等に依存して独立に動作する。
Rステージ206の処理であるマイクロROMアクセス処理
は、Rコード214に対して次のEステージ205での実行に
使用する実行制御コードであるEコード216を生成する
ためのマイクロROMアクセスとマイクロ命令デコード処
理である。1つのRコード214に対する処理が2つ以上
のマイクロプログラムステップに分解される場合、マイ
クロROMはEステージ205で使用され、次のRコード214
はマイクロROMアクセス待ちになる。Rコード214に対す
るマイクロROMアクセスが行われるのは、その前のEス
テージ205での最後のマイクロ命令実行の時である。本
発明のデータ処理装置では、ほとんどの基本命令は1マ
イクロプログラムステップで行われるため、実際にはR
コード214に対するマイクロROMアクセスが次々と行われ
ることが多い。
は、Rコード214に対して次のEステージ205での実行に
使用する実行制御コードであるEコード216を生成する
ためのマイクロROMアクセスとマイクロ命令デコード処
理である。1つのRコード214に対する処理が2つ以上
のマイクロプログラムステップに分解される場合、マイ
クロROMはEステージ205で使用され、次のRコード214
はマイクロROMアクセス待ちになる。Rコード214に対す
るマイクロROMアクセスが行われるのは、その前のEス
テージ205での最後のマイクロ命令実行の時である。本
発明のデータ処理装置では、ほとんどの基本命令は1マ
イクロプログラムステップで行われるため、実際にはR
コード214に対するマイクロROMアクセスが次々と行われ
ることが多い。
Rステージ206で新たに検出するEITはない。Rコード21
4が命令処理再実行型のEITを示している時は、そのEIT
処理に対するマイクロプログラムが実行されるので、R
ステージ206はそのRコード214に従ったマイクロ命令を
フェッチする。Rコード214が奇数アドレスジャンプト
ラップを示している場合、Rステージ206はそれをEコ
ード216によって伝える。これはプリブランチに対する
もので、Eステージ205ではそのEコード216で分岐が生
じなければそのプリブランチを有効として奇数アドレス
ジャンプトラップを発生する。
4が命令処理再実行型のEITを示している時は、そのEIT
処理に対するマイクロプログラムが実行されるので、R
ステージ206はそのRコード214に従ったマイクロ命令を
フェッチする。Rコード214が奇数アドレスジャンプト
ラップを示している場合、Rステージ206はそれをEコ
ード216によって伝える。これはプリブランチに対する
もので、Eステージ205ではそのEコード216で分岐が生
じなければそのプリブランチを有効として奇数アドレス
ジャンプトラップを発生する。
(3.2.5)「オペランドフェッチステージ」 オペランドフェッチステージ(OFステージ)207はFス
テージ204で行う上記の2つの処理の内のオペランドプ
リフェッチ処理を行う。
テージ204で行う上記の2つの処理の内のオペランドプ
リフェッチ処理を行う。
オペランドプリフェッチはFコード215を入力とし、フ
ェッチしたオペランドとそのアドレスをSコード217と
して出力する。1つのFコード215ではワード境界を跨
いでも良いが4バイト以下のオペランドフェッチを指定
する。Fコード215にはオペランドのアクセスを行うか
否かの指定も含まれており、Aステージ203で計算した
オペランドアドレス自体あるいは即値をEステージ205
に転送する場合にはオペランドプリフェッチは行わず、
Fコード215の内容をSコード217として転送する。プリ
フェッチしようとするオペランドと、Eステージ205が
書き込み処理を行おうとするオペランドとが一致する場
合は、オペランドプリフェッチはメモリから行わずバイ
パスして行う。また、I/O領域に対してはオペランドプ
リフェッチを遅延させ、先行命令がすべて完了するまで
待ってオペランドフェッチを行う。
ェッチしたオペランドとそのアドレスをSコード217と
して出力する。1つのFコード215ではワード境界を跨
いでも良いが4バイト以下のオペランドフェッチを指定
する。Fコード215にはオペランドのアクセスを行うか
否かの指定も含まれており、Aステージ203で計算した
オペランドアドレス自体あるいは即値をEステージ205
に転送する場合にはオペランドプリフェッチは行わず、
Fコード215の内容をSコード217として転送する。プリ
フェッチしようとするオペランドと、Eステージ205が
書き込み処理を行おうとするオペランドとが一致する場
合は、オペランドプリフェッチはメモリから行わずバイ
パスして行う。また、I/O領域に対してはオペランドプ
リフェッチを遅延させ、先行命令がすべて完了するまで
待ってオペランドフェッチを行う。
OFステージ207で検出されるEITには、バスアクセス例
外、アドレス変換例外、オペランドプリフェッチに対す
るブレイクポイントヒットによるデバッグトラップがあ
る。Fコード215がデバッグトラップ以外のEITを示して
いる時は、それをSコード217に転送し、オペランドプ
リフェッチは行わない。Fコード215がデバッグトラッ
プを示している時は、そのFコード215に対してEITを示
していない場合と同じ処理をすると共にデバッグトラッ
プをSコード217に伝える。
外、アドレス変換例外、オペランドプリフェッチに対す
るブレイクポイントヒットによるデバッグトラップがあ
る。Fコード215がデバッグトラップ以外のEITを示して
いる時は、それをSコード217に転送し、オペランドプ
リフェッチは行わない。Fコード215がデバッグトラッ
プを示している時は、そのFコード215に対してEITを示
していない場合と同じ処理をすると共にデバッグトラッ
プをSコード217に伝える。
(3.2.6)「実行ステージ」 実行ステージ(Eステージ)205はEコード216及びSコ
ード217を入力として動作する。このEステージ205が命
令を実行するステージであり、Fステージ204以前のス
テージで行われた処理は全てEステージ205のための前
処理である。Eステージ205でジャンプ命令が実行され
たり、あるいはEIT処理が起動されたりした場合は、IF
ステージ201からFステージ204までの処理は全て無効化
される。Eステージ205はマイクロプログラムにより制
御され、Rコード214に示されたマイクロプログラムの
エントリアドレスからの一連のマイクロプログラムを実
行することにより命令を実行する。
ード217を入力として動作する。このEステージ205が命
令を実行するステージであり、Fステージ204以前のス
テージで行われた処理は全てEステージ205のための前
処理である。Eステージ205でジャンプ命令が実行され
たり、あるいはEIT処理が起動されたりした場合は、IF
ステージ201からFステージ204までの処理は全て無効化
される。Eステージ205はマイクロプログラムにより制
御され、Rコード214に示されたマイクロプログラムの
エントリアドレスからの一連のマイクロプログラムを実
行することにより命令を実行する。
マイクロROMの読み出しとマイクロ命令の実行とはパイ
プライン化されて行われる。従ってマイクロプログラム
で分岐が起きた場合は、1マイクロステップの空きがで
きる。また、Eステージ205はデータ演算部106にあるス
トアバッファを利用して、4バイト以内のオペランドス
トアと次のマイクロ命令実行をパイプライン処理するこ
ともできる。
プライン化されて行われる。従ってマイクロプログラム
で分岐が起きた場合は、1マイクロステップの空きがで
きる。また、Eステージ205はデータ演算部106にあるス
トアバッファを利用して、4バイト以内のオペランドス
トアと次のマイクロ命令実行をパイプライン処理するこ
ともできる。
Eステージ205では、Aステージ203で行ったレジスタ及
びメモリに対する書込み予約をオペランドの書き込み後
に解除する。
びメモリに対する書込み予約をオペランドの書き込み後
に解除する。
また、条件分岐命令がEステージ205で分岐を発した場
合は、その条件分岐命令に対する分岐予測が誤っていた
のであるから、分岐履歴の書換えを行う。
合は、その条件分岐命令に対する分岐予測が誤っていた
のであるから、分岐履歴の書換えを行う。
Eステージ205で検出されるEITには、バスアクセス例
外、アドレス変換例外、デバッグトラップ、奇数アドレ
スジャンプトラップ、予約機能例外、不正オペランド例
外、予約スタックフォーマット例外、ゼロ除算トラッ
プ、無条件トラップ、条件トラップ、遅延コンテキスト
トラップ、外部割込、遅延割込、リセット割込、システ
ム障害がある。
外、アドレス変換例外、デバッグトラップ、奇数アドレ
スジャンプトラップ、予約機能例外、不正オペランド例
外、予約スタックフォーマット例外、ゼロ除算トラッ
プ、無条件トラップ、条件トラップ、遅延コンテキスト
トラップ、外部割込、遅延割込、リセット割込、システ
ム障害がある。
Eステージ205で検出されたEITは全てEIT処理される
が、Eステージ以前のIFステージ201からFステージ204
の間で検出され、Rコード214あるいはSコード217に反
映されているEITは必ずしもEIT処理されるとは限らな
い。IFステージ201からFステージ204の間で検出された
が、先行の命令がEステージ205でジャンプ命令が実行
されたなどの原因でEステージ205まで到達しなかったE
ITは全てキャンセルされる。そのEITを起こした命令は
そもそも実行されなかったことになる。
が、Eステージ以前のIFステージ201からFステージ204
の間で検出され、Rコード214あるいはSコード217に反
映されているEITは必ずしもEIT処理されるとは限らな
い。IFステージ201からFステージ204の間で検出された
が、先行の命令がEステージ205でジャンプ命令が実行
されたなどの原因でEステージ205まで到達しなかったE
ITは全てキャンセルされる。そのEITを起こした命令は
そもそも実行されなかったことになる。
外部割込及び遅延割込は命令の切れ目でEステージ205
に直接受け付けられ、マイクロプログラムにより必要な
処理が実行される。その他の各種EITの処理はマイクロ
プログラムにより行われる。
に直接受け付けられ、マイクロプログラムにより必要な
処理が実行される。その他の各種EITの処理はマイクロ
プログラムにより行われる。
(3.3)「各パイプラインステージの状態制御」 パイプラインの各ステージは入力ラッチと出力ラッチと
を有し、他のステージとは独立に動作することを基本と
する。各ステージは1つ前に行った処理が終わり、その
処理結果を出力ラッチから次のステージの入力ラッチに
転送し、自分のステージの入力ラッチに次の処理に必要
な入力信号がすべて揃えば次の処理を開始する。
を有し、他のステージとは独立に動作することを基本と
する。各ステージは1つ前に行った処理が終わり、その
処理結果を出力ラッチから次のステージの入力ラッチに
転送し、自分のステージの入力ラッチに次の処理に必要
な入力信号がすべて揃えば次の処理を開始する。
つまり各ステージは、1つ前段のステージから出力され
てくる次の処理に対する入力信号が全て有効となり、今
の処理結果を後段のステージの入力ラッチに転送して出
力ラッチが空になると次の処理を開始する。
てくる次の処理に対する入力信号が全て有効となり、今
の処理結果を後段のステージの入力ラッチに転送して出
力ラッチが空になると次の処理を開始する。
各ステージが動作を開始する1つ前のクロックタイミン
グで入力信号が全て揃っている必要がある。入力信号が
揃っていない場合、そのステージは待ち状態(入力待
ち)になる。出力ラッチから次のステージの入力ラッチ
への転送を行う場合には次のステージの入力ラッチが空
き状態になっている必要があり、次のステージの入力ラ
ッチが空きでない場合もパイプラインステージは待ち状
態(出力待ち)になる。必要なメモリアクセス権が獲得
できなかったり、処理しているメモリアクセスにウエイ
トが挿入されたり、その他のパイプラインコンフリクト
が生じると各ステージの処理自体が遅延する。
グで入力信号が全て揃っている必要がある。入力信号が
揃っていない場合、そのステージは待ち状態(入力待
ち)になる。出力ラッチから次のステージの入力ラッチ
への転送を行う場合には次のステージの入力ラッチが空
き状態になっている必要があり、次のステージの入力ラ
ッチが空きでない場合もパイプラインステージは待ち状
態(出力待ち)になる。必要なメモリアクセス権が獲得
できなかったり、処理しているメモリアクセスにウエイ
トが挿入されたり、その他のパイプラインコンフリクト
が生じると各ステージの処理自体が遅延する。
(4)「POP命令の処理シーケンス」 上述の如きデータ処理装置において、POP命令がパイプ
ライン上で如何に処理されるかについて、デスティネー
ションがメモリ指定である場合とレジスタ指定である場
合とに分けて、図面を参照して更に詳しく説明する。な
お、デスティネーションオペランドがメモリを指定して
いる場合にアドレッシングモードがレジスタ間接モード
である例について説明する。
ライン上で如何に処理されるかについて、デスティネー
ションがメモリ指定である場合とレジスタ指定である場
合とに分けて、図面を参照して更に詳しく説明する。な
お、デスティネーションオペランドがメモリを指定して
いる場合にアドレッシングモードがレジスタ間接モード
である例について説明する。
本発明のデータ処理装置の更に詳しい構成を第3図のブ
ロック図に示す。
ロック図に示す。
命令キュー301は、命令フェッチ部101中にあり、IFステ
ージ201の処理に関与する。
ージ201の処理に関与する。
第1デコーダ303は、命令デコード部102中にあり、Dス
テージ202の処理に関与する。
テージ202の処理に関与する。
第2デコーダ304とATMPレジスタ310は、命令デコード部
102中にあり、Aステージ203の処理に関与する。ATMPレ
ジスタ310は、メモリ間接参照時にメモリアクセスでリ
ードしたデータを保持するために使用される。
102中にあり、Aステージ203の処理に関与する。ATMPレ
ジスタ310は、メモリ間接参照時にメモリアクセスでリ
ードしたデータを保持するために使用される。
アドレス加算器305,AOUTレジスタ306,BASEレジスタ307,
INDEXレジスタ308及びDISPレジスタ309はオペランドア
ドレス計算部104中にあり、Aステージ203の処理に関与
する。BASEレジスタ307,INDEXレジスタ308,DISPレジス
タ309は、それぞれベース値,インデックス値,ディス
プレースメント値を保持するためのレジスタである。BA
SEレジスタ307,INDEXレジスタ308,DISPレジスタ309の値
を同時に加算するのがアドレス加算器305である。AOUT
レジスタ306は、アドレス加算器305の出力保持のための
レジスタである。
INDEXレジスタ308及びDISPレジスタ309はオペランドア
ドレス計算部104中にあり、Aステージ203の処理に関与
する。BASEレジスタ307,INDEXレジスタ308,DISPレジス
タ309は、それぞれベース値,インデックス値,ディス
プレースメント値を保持するためのレジスタである。BA
SEレジスタ307,INDEXレジスタ308,DISPレジスタ309の値
を同時に加算するのがアドレス加算器305である。AOUT
レジスタ306は、アドレス加算器305の出力保持のための
レジスタである。
ASPレジスタ311は、スタックポインタ計算部中にあり、
Aステージ203の処理に関与する。
Aステージ203の処理に関与する。
スタックからのポップ操作、スタックへのプッシュ操作
等によるSP値のコンフリクトを防ぐため、Aステージ20
3では、Eステージ205のSP値に先行してAステージのSP
値であるASP値を管理している。ポップ操作及びプッシ
ュ操作に伴うSP値の更新は、Aステージ203においてASP
値を制御することによって行われる。従って、ASP値を
参照することにより、通常のポップ操作及びプッシュ操
作の直後でもSP値のコンフリクトに起因するステップコ
ードの処理の遅れを生じることなく処理を進めることが
出来る。このASP値を保持するのがASPレジスタ311であ
る。なお、SP値の管理方法に関しては特願昭62-145852
号で詳しく開示されている。
等によるSP値のコンフリクトを防ぐため、Aステージ20
3では、Eステージ205のSP値に先行してAステージのSP
値であるASP値を管理している。ポップ操作及びプッシ
ュ操作に伴うSP値の更新は、Aステージ203においてASP
値を制御することによって行われる。従って、ASP値を
参照することにより、通常のポップ操作及びプッシュ操
作の直後でもSP値のコンフリクトに起因するステップコ
ードの処理の遅れを生じることなく処理を進めることが
出来る。このASP値を保持するのがASPレジスタ311であ
る。なお、SP値の管理方法に関しては特願昭62-145852
号で詳しく開示されている。
マイクロROM,マイクロシーケンサ,マイクロ命令デコー
ダ等を含むマイクロROM部105は、Rステージ206の処理
に関与する。
ダ等を含むマイクロROM部105は、Rステージ206の処理
に関与する。
汎用レジスタファイル312,ALU313,SDレジスタ314,DDレ
ジスタ315は、データ演算部106中にあり、OFステージ20
7とEステージ205の処理に関与する。SDレジスタ314
は、オペランドフェッチ時にメモリアクセスでリードし
たデータを保持するためのレジスタである。DDレジスタ
315は、Eステージ205がメモリアクセスでデータのリー
ドあるいはストアを行う際に対象となるデータを保持す
るためのレジスタである。
ジスタ315は、データ演算部106中にあり、OFステージ20
7とEステージ205の処理に関与する。SDレジスタ314
は、オペランドフェッチ時にメモリアクセスでリードし
たデータを保持するためのレジスタである。DDレジスタ
315は、Eステージ205がメモリアクセスでデータのリー
ドあるいはストアを行う際に対象となるデータを保持す
るためのレジスタである。
IAレジスタ316,FAレジスタ317,SAレジスタ318,AAレジス
タ319は外部バスインターフェース部107の一部分であ
る。IAレジスタ316は、Aステージ208がメモリ間接参照
時にメモリアクセスを行う際にアドレスをセットするレ
ジスタである。FAレジスタ317は、OFステージ207がオペ
ランドのフェッチ時にメモリアクセスを行う際にアドレ
スをセットするレジスタである。AAレジスタ319は、E
ステージ205がメモリアクセスでデータのリードあるい
はストアを行う際にアドレスをセットするレジスタであ
る。
タ319は外部バスインターフェース部107の一部分であ
る。IAレジスタ316は、Aステージ208がメモリ間接参照
時にメモリアクセスを行う際にアドレスをセットするレ
ジスタである。FAレジスタ317は、OFステージ207がオペ
ランドのフェッチ時にメモリアクセスを行う際にアドレ
スをセットするレジスタである。AAレジスタ319は、E
ステージ205がメモリアクセスでデータのリードあるい
はストアを行う際にアドレスをセットするレジスタであ
る。
OFステージ207はオペランドフェッチしたデータと共に
そのアドレスをEステージ205に送るが、その際に送る
アドレスを保持するためのレジスタがSAレジスタ318で
ある。このSAレジスタ318は、アドレスを送るだけでな
く、即値を送る場合にも使用される。
そのアドレスをEステージ205に送るが、その際に送る
アドレスを保持するためのレジスタがSAレジスタ318で
ある。このSAレジスタ318は、アドレスを送るだけでな
く、即値を送る場合にも使用される。
なお本発明のデータ処理装置のバスには、DDバス320,DI
SPバス321,Aバス322,AOバス323,AAバス324,S1バス325,S
2バス326,DOバス327がある。
SPバス321,Aバス322,AOバス323,AAバス324,S1バス325,S
2バス326,DOバス327がある。
Dステージ202の単純化した構成を第4図のブロック図
に示す。
に示す。
Dステージ202は、既に述べた如く主として第1デコー
ダ303にて構成されている。この第1デコーダ303はPLA
(Programmable Logic Array)にて構成されている。D
ステージ202に命令コード211が入力されると、第1デコ
ーダ303によりデコードされてDコード212及びAコード
213が生成され、出力される。
ダ303にて構成されている。この第1デコーダ303はPLA
(Programmable Logic Array)にて構成されている。D
ステージ202に命令コード211が入力されると、第1デコ
ーダ303によりデコードされてDコード212及びAコード
213が生成され、出力される。
Dコード212は命令デコード部102中のAステージ203の
処理を行う部分に、またAコード213はオペランドアド
レス計算部104中のAステージ203の処理を行う部分にそ
れぞれ与えられる。
処理を行う部分に、またAコード213はオペランドアド
レス計算部104中のAステージ203の処理を行う部分にそ
れぞれ与えられる。
なお、401は内部状態保持ラッチである。
命令デコード部102中でAステージ203の処理を行う部分
の構成を第5図のブロック図に示す。
の構成を第5図のブロック図に示す。
この部分は、第2デコーダ304,右レジスタ番号生成部50
1,左レジスタ番号生成部502,レジスタ番号生成部503,サ
イズ生成部504等にて構成されている。なお第2デコー
ダ304は第1デコーダ303と同様にPLAにて構成されてい
る。
1,左レジスタ番号生成部502,レジスタ番号生成部503,サ
イズ生成部504等にて構成されている。なお第2デコー
ダ304は第1デコーダ303と同様にPLAにて構成されてい
る。
入力されるDコード212は、オペコードの中間デコード
結果,右レジスタ番号情報,左レジスタ番号情報,右レ
ジスタサイズWR,左レジスタサイズWL等にて構成されて
いる。
結果,右レジスタ番号情報,左レジスタ番号情報,右レ
ジスタサイズWR,左レジスタサイズWL等にて構成されて
いる。
右レジスタ番号情報及び左レジスタ番号情報は、それぞ
れ右レジスタ番号生成部501及び左レジスタ番号生成部5
02に入力され、右レジスタ番号RRと左レジスタ番号RLと
をそれぞれ生成する。右レジスタ番号情報には、オペラ
ンドがレジスタ上の値,リテラル,メモリ上の値あるい
は即値のいずれであるかを示す情報が含まれる。左レジ
スタ番号情報には、オペランドがレジスタ上の値あるい
はリテラルのいずれであるかを示す情報が含まれる。
れ右レジスタ番号生成部501及び左レジスタ番号生成部5
02に入力され、右レジスタ番号RRと左レジスタ番号RLと
をそれぞれ生成する。右レジスタ番号情報には、オペラ
ンドがレジスタ上の値,リテラル,メモリ上の値あるい
は即値のいずれであるかを示す情報が含まれる。左レジ
スタ番号情報には、オペランドがレジスタ上の値あるい
はリテラルのいずれであるかを示す情報が含まれる。
右レジスタ番号RR及び左レジスタ番号RLはそれぞれ命令
フォーマット中の第1のレジスタ指定部及び第2のレジ
スタ指定部とに対応付けられるものであり、そのレジス
タ番号によってそれぞれ第1のオペランド及び第2オペ
ランドの格納先が指定される。一例として第14図に示す
R-FORMAT命令を挙げると、Rnは第1のレジスタ指定部で
あって右レジスタ番号RRに対応し、Rmは第2のレジスタ
指定部であって左レジスタ番号RLに対応する。
フォーマット中の第1のレジスタ指定部及び第2のレジ
スタ指定部とに対応付けられるものであり、そのレジス
タ番号によってそれぞれ第1のオペランド及び第2オペ
ランドの格納先が指定される。一例として第14図に示す
R-FORMAT命令を挙げると、Rnは第1のレジスタ指定部で
あって右レジスタ番号RRに対応し、Rmは第2のレジスタ
指定部であって左レジスタ番号RLに対応する。
命令フォーマット上では、第1のオペランド指定部及び
第2のオペランド指定部のいずれがソースでありまたデ
スティネーションであるかは一意的には決っていない。
このため、右レジスタ番号RRと左レジスタ番号RLとのい
ずれがソースレジスタ番号RSになり、デスティネーショ
ンレジスタ番号RDになるかは、第2デコーダ304の出力
であるレジスタ番号制御信号によってレジスタ番号生成
部503において決定される。
第2のオペランド指定部のいずれがソースでありまたデ
スティネーションであるかは一意的には決っていない。
このため、右レジスタ番号RRと左レジスタ番号RLとのい
ずれがソースレジスタ番号RSになり、デスティネーショ
ンレジスタ番号RDになるかは、第2デコーダ304の出力
であるレジスタ番号制御信号によってレジスタ番号生成
部503において決定される。
また、第2デコーダ304の出力であるサイズ制御信号が
与えられたサイズ生成部504では、右レジスタ番号RRが
示すレジスタのデータサイズである右レジスタサイズWR
と左レジスタ番号RLが示すレジスタのデータサイズであ
る左レジスタサイズWLとがそれぞれソースサイズWS、デ
スティネーションサイズWDにて定められる。
与えられたサイズ生成部504では、右レジスタ番号RRが
示すレジスタのデータサイズである右レジスタサイズWR
と左レジスタ番号RLが示すレジスタのデータサイズであ
る左レジスタサイズWLとがそれぞれソースサイズWS、デ
スティネーションサイズWDにて定められる。
Fステージ204では、第2デコーダ304の出力であるRコ
ード・Fコード有効信号によって、Rコード214とFコ
ード215とがFステージ204に送られたことを認識する。
ード・Fコード有効信号によって、Rコード214とFコ
ード215とがFステージ204に送られたことを認識する。
第6図及び第7図はそれぞれレジスタ番号生成部503及
びサイズ生成部504の構成を示す回路図である。
びサイズ生成部504の構成を示す回路図である。
第6図における入力信号RC1,RC2,RC3,RC4は第2デコー
ダ304が出力するレジスタ番号制御信号である。また、
第7図における入力信号SC1,SC2,SC3,SC4は第2デコー
ダ304が出力するサイズ制御信号である。
ダ304が出力するレジスタ番号制御信号である。また、
第7図における入力信号SC1,SC2,SC3,SC4は第2デコー
ダ304が出力するサイズ制御信号である。
601,602,603,604,701,702,703,704はそれぞれNチャネ
ルトランスミッションゲート(TG),605はPチャネルT
G,606,607はインバータ,608はORゲートを示す。それぞ
れの回路は入力ゲートがセレクタになっているラッチで
構成されている。また、回路610はPチャネルTG605,イ
ンバータ606,インバータ607及びORゲート608にて構成さ
れている。そして、回路611,710,711は共に回路610と同
等の構成である。
ルトランスミッションゲート(TG),605はPチャネルT
G,606,607はインバータ,608はORゲートを示す。それぞ
れの回路は入力ゲートがセレクタになっているラッチで
構成されている。また、回路610はPチャネルTG605,イ
ンバータ606,インバータ607及びORゲート608にて構成さ
れている。そして、回路611,710,711は共に回路610と同
等の構成である。
なお、第6図及び第7図では簡略化のため1ビット分の
回路を示している。しかし、レジスタ番号を示す信号及
びサイズを示す信号はそれぞれ5ビット及び2ビットで
あるので、実際はそれぞれ対応するビット数の回路で構
成されている。
回路を示している。しかし、レジスタ番号を示す信号及
びサイズを示す信号はそれぞれ5ビット及び2ビットで
あるので、実際はそれぞれ対応するビット数の回路で構
成されている。
第8図は第5図に示した第2デコーダ304の出力である
Rコード・Fコード出力制御信号,レジスタ番号制御信
号及びサイズ制御信号のPOP命令の際の内容を示す表で
ある。
Rコード・Fコード出力制御信号,レジスタ番号制御信
号及びサイズ制御信号のPOP命令の際の内容を示す表で
ある。
第9図(a),(b)はパイプライン上におけるPOP命
令の処理シーケンスを示すフローチャートである。
令の処理シーケンスを示すフローチャートである。
第9図(a)に示されているのはデスティネーションが
メモリ指定時のフローチャートである。また第9図
(b)に示されているのはデスティネーションがレジス
タ指定時のフローチャートである。
メモリ指定時のフローチャートである。また第9図
(b)に示されているのはデスティネーションがレジス
タ指定時のフローチャートである。
第10図(a),(b),(c),(d)は、POP命令を
処理する際のDステージ以降のステージにおけるステッ
プコードの処理の流れを示す模式図である。図におい
て、縦軸は時間を表しており、1目盛りが2クロック
(1ステップ)に相当する。
処理する際のDステージ以降のステージにおけるステッ
プコードの処理の流れを示す模式図である。図におい
て、縦軸は時間を表しており、1目盛りが2クロック
(1ステップ)に相当する。
第10図(a),(b)はそれぞれデスティネーションが
メモリ指定時とレジスタ指定時であり、且つパイプライ
ン上で待ち状態のない場合のステップコードの処理の流
れを示している。
メモリ指定時とレジスタ指定時であり、且つパイプライ
ン上で待ち状態のない場合のステップコードの処理の流
れを示している。
第10図(c),(d)はそれぞれデスティネーションが
メモリ指定時とレジスタ指定時であり、且つPOP命令の
直前のステップコードの処理にEステージ205において
6クロック(3ステップ)要し、そのためPOP命令のス
テップコードに待ち状態が生じた場合のステップコード
の処理の流れを示している。
メモリ指定時とレジスタ指定時であり、且つPOP命令の
直前のステップコードの処理にEステージ205において
6クロック(3ステップ)要し、そのためPOP命令のス
テップコードに待ち状態が生じた場合のステップコード
の処理の流れを示している。
第37図(a),(b)はPOP命令の命令フォーマットを
示す模式図である。POP命令の命令フォーマットは第17
図に示したG1-FORMATである。そして、第37図(a)は
レジスタ間接アドレッシングの場合を示す。ここで指定
する汎用レジスタ番号Rnは参照先の汎用レジスタを示
す。また第37図(b)はレジスタ直接アドレッシングの
場合を示す。ここで指定する汎用レジスタ番号Rnはデス
ティネーションとなる汎用レジスタを示す。
示す模式図である。POP命令の命令フォーマットは第17
図に示したG1-FORMATである。そして、第37図(a)は
レジスタ間接アドレッシングの場合を示す。ここで指定
する汎用レジスタ番号Rnは参照先の汎用レジスタを示
す。また第37図(b)はレジスタ直接アドレッシングの
場合を示す。ここで指定する汎用レジスタ番号Rnはデス
ティネーションとなる汎用レジスタを示す。
POP命令は、スタックトップ上のデータをメモリあるい
はレジスタに転送する命令であるので、メモリ−レジス
タ間、またはメモリ−メモリ間の転送命令と実質的に同
等である。そこで、本発明のデータ処理装置では、ソー
スオペランド指定部がないにもかかわらずソースオペラ
ンド部の処理のためのステップコードを生成し、Eステ
ージ以前において必要な前処理の全てを行うように構成
されている。
はレジスタに転送する命令であるので、メモリ−レジス
タ間、またはメモリ−メモリ間の転送命令と実質的に同
等である。そこで、本発明のデータ処理装置では、ソー
スオペランド指定部がないにもかかわらずソースオペラ
ンド部の処理のためのステップコードを生成し、Eステ
ージ以前において必要な前処理の全てを行うように構成
されている。
以下、第9図(a),(b)のフローチャートを参照し
て説明する。
て説明する。
(4.1)「デスティネーションがメモリ指定時」 先ず、IFステージ201はPOP命令をメモリ上よりフェッチ
して命令キュー301に入力し、Dステージ202に対してPO
P命令の命令コード211を出力する。
して命令キュー301に入力し、Dステージ202に対してPO
P命令の命令コード211を出力する。
Dステージ202は、IFステージ201によってフェッチされ
たPOP命令を第1デコーダ303によりデコードする。
たPOP命令を第1デコーダ303によりデコードする。
POP命令の命令コード211は第1デコーダ303に入力され
てデコードされ、POP命令の第1のステップコード(1-
1)が生成される。デコード結果の一部は内部状態信号
として内部状態保持ラッチ401に保持される。
てデコードされ、POP命令の第1のステップコード(1-
1)が生成される。デコード結果の一部は内部状態信号
として内部状態保持ラッチ401に保持される。
次のデコードのサイクルでは、内部状態保持ラッチ401
からの内部状態信号に応答して、第1デコーダ303はIF
ステージ201からの命令コード211を取り込まずにPOP命
令の第2のステップコード(1-2)を生成する。このよ
うにして、第9図(a)に示す如く2つのステップコー
ドが生成される。
からの内部状態信号に応答して、第1デコーダ303はIF
ステージ201からの命令コード211を取り込まずにPOP命
令の第2のステップコード(1-2)を生成する。このよ
うにして、第9図(a)に示す如く2つのステップコー
ドが生成される。
POP命令中にはソースオペランド指定部はないが、命令
の機能としてソースオペランドがスタックトップである
ことが暗に示されている。従って、本発明によるデータ
処理装置では、POP命令をデコードした段階で、ソース
オペランドに関する処理を予め行うためのステップコー
ド(1-2)を生成する。
の機能としてソースオペランドがスタックトップである
ことが暗に示されている。従って、本発明によるデータ
処理装置では、POP命令をデコードした段階で、ソース
オペランドに関する処理を予め行うためのステップコー
ド(1-2)を生成する。
Dステージ202が出力するそれぞれのステップコード
は、Aコード213とDコード212とから構成されている。
同一のステップコード中にあるAコード213とDコード2
12とは同時にAステージ203に送られる。POP命令から生
成されたステップコードはAステージ203に対して、ス
テップコード(1-1),ステップコード(1-2)の順序で
送られる。
は、Aコード213とDコード212とから構成されている。
同一のステップコード中にあるAコード213とDコード2
12とは同時にAステージ203に送られる。POP命令から生
成されたステップコードはAステージ203に対して、ス
テップコード(1-1),ステップコード(1-2)の順序で
送られる。
以降のステージにおける処理は、各ステップコードに関
して説明する。
して説明する。
(4.1.1)「POP命令の第1ステップコード(1-1)の処
理」 Aステージ203はAコード213とDコード212とを入力す
る。
理」 Aステージ203はAコード213とDコード212とを入力す
る。
Aコード213がAステージ203に入力されると、Aステー
ジ203ではAコード213の制御信号の制御によってアドレ
ス計算が行われる。参照先レジスタ情報により汎用レジ
スタファイル312の参照先の汎用レジスタ中の値がAバ
ス322上からBASEレジスタ307に格納される。ステップコ
ード(1-1)のAコード213中に含まれる制御信号により
INDEXレジスタ308とDISPレジスタ309がクリアされる。
この3つのレジスタの値がアドレス加算器305により加
算され、その結果はAOUTレジスタ306に格納される。更
に、AOUTレジスタ306中の値はAOバス323を介してFAレジ
スタ317に送られる。FAレジスタ317中にある参照先の汎
用レジスタからの値は第2デコーダ304の出力の一部と
共にFコード215となる。
ジ203ではAコード213の制御信号の制御によってアドレ
ス計算が行われる。参照先レジスタ情報により汎用レジ
スタファイル312の参照先の汎用レジスタ中の値がAバ
ス322上からBASEレジスタ307に格納される。ステップコ
ード(1-1)のAコード213中に含まれる制御信号により
INDEXレジスタ308とDISPレジスタ309がクリアされる。
この3つのレジスタの値がアドレス加算器305により加
算され、その結果はAOUTレジスタ306に格納される。更
に、AOUTレジスタ306中の値はAOバス323を介してFAレジ
スタ317に送られる。FAレジスタ317中にある参照先の汎
用レジスタからの値は第2デコーダ304の出力の一部と
共にFコード215となる。
第8図に示す如く第2デコーダ304は、Dコード212の中
間デコード結果を入力すると、マイクロプログラムのエ
ントリアドレスあるいは種々の制御情報を生成する。
間デコード結果を入力すると、マイクロプログラムのエ
ントリアドレスあるいは種々の制御情報を生成する。
また、Dコード212中の右レジスタ番号情報及び左レジ
スタ番号情報はそれぞれ右レジスタ番号生成部501及び
左レジスタ番号生成部502に入力され、右レジスタ番号R
R及び左レジスタ番号RLを生成する。POP命令のステップ
コード(1-1)では、右レジスタ番号RRのみが意味を有
していてSDレジスタ318を示す。また、右レジスタサイ
ズWRはワードを示す。
スタ番号情報はそれぞれ右レジスタ番号生成部501及び
左レジスタ番号生成部502に入力され、右レジスタ番号R
R及び左レジスタ番号RLを生成する。POP命令のステップ
コード(1-1)では、右レジスタ番号RRのみが意味を有
していてSDレジスタ318を示す。また、右レジスタサイ
ズWRはワードを示す。
第2デコーダ304が出力する制御情報にはレジスタ番号
制御信号とサイズ制御信号とが含まれる。
制御信号とサイズ制御信号とが含まれる。
レジスタ制御信号は、右レジスタ番号RRがデスティネー
ションレジスタ番号RDに対応することを示す。また、サ
イズ制御信号は、右レジスタサイズWRがデスティネーシ
ョンレジスタサイズWDに対応することを示す。
ションレジスタ番号RDに対応することを示す。また、サ
イズ制御信号は、右レジスタサイズWRがデスティネーシ
ョンレジスタサイズWDに対応することを示す。
レジスタ番号制御信号RC1,RC2,RC3,RC4の中でRC3のみが
イネーブルとなり、NチャネルTG603のみがONし、右レ
ジスタ番号RRがデスティネーションレジスタ番号RDとし
て保持される。また、サイズ制御信号SC1,SC2,SC3,SC4
の中でSC3のみがイネーブルとなり、NチャネルTG703の
みがONし、右レジスタサイズWRがデスティネーションレ
ジスタサイズWDとして保持される。
イネーブルとなり、NチャネルTG603のみがONし、右レ
ジスタ番号RRがデスティネーションレジスタ番号RDとし
て保持される。また、サイズ制御信号SC1,SC2,SC3,SC4
の中でSC3のみがイネーブルとなり、NチャネルTG703の
みがONし、右レジスタサイズWRがデスティネーションレ
ジスタサイズWDとして保持される。
この様にステップコード(1-1)中では、デスティネー
ションレジスタ番号RDはSDレジスタ318を示し、またデ
スティネーションレジスタサイズWDはワードを示す。
ションレジスタ番号RDはSDレジスタ318を示し、またデ
スティネーションレジスタサイズWDはワードを示す。
これらマイクロプログラムのエントリアドレス及びレジ
スタ番号等からRコード214が生成される。
スタ番号等からRコード214が生成される。
この様にして生成されたRコード214とFコード215とは
同時にFステージ204に送られる。
同時にFステージ204に送られる。
Rステージ206は、Rコード・Fコード有効信号がイネ
ーブルになると、Rコード214を入力し、Rコード214中
に含まれるマイクロプログラムのエントリアドレスにて
マイクロROM105をアクセスする。マイクロROM105の出力
はデコードされ、レジスタ番号等と共にEコード216と
なる。このEコード216のデスティネーションレジスタ
番号RDが示すレジスタはSDレジスタ314であり、またデ
スティネーションレジスタサイズWDはワードである。
ーブルになると、Rコード214を入力し、Rコード214中
に含まれるマイクロプログラムのエントリアドレスにて
マイクロROM105をアクセスする。マイクロROM105の出力
はデコードされ、レジスタ番号等と共にEコード216と
なる。このEコード216のデスティネーションレジスタ
番号RDが示すレジスタはSDレジスタ314であり、またデ
スティネーションレジスタサイズWDはワードである。
OFステージ207は、Rコード・Fコード有効信号がイネ
ーブルになると、Fコード215を入力し、Fコード215の
一部であるFAレジスタ317中の値はSAレジスタ318に転送
される。SAレジスタ318中の値はSコード217としてEス
テージ205に送られる。
ーブルになると、Fコード215を入力し、Fコード215の
一部であるFAレジスタ317中の値はSAレジスタ318に転送
される。SAレジスタ318中の値はSコード217としてEス
テージ205に送られる。
Eステージ205にEコード216とSコード217が入力され
ると、SAレジスタ318中の値をAAレジスタ219に格納せ
よ、という処理が行われる。この場合、デスティネーシ
ョンレジスタ番号RDが示すレジスタはSDレジスタ314で
あるが、書き込みオペランドであるのでこの値は意味が
無い。このため、SAレジスタ318中の値がAAレジスタ319
に転送されるのみである。
ると、SAレジスタ318中の値をAAレジスタ219に格納せ
よ、という処理が行われる。この場合、デスティネーシ
ョンレジスタ番号RDが示すレジスタはSDレジスタ314で
あるが、書き込みオペランドであるのでこの値は意味が
無い。このため、SAレジスタ318中の値がAAレジスタ319
に転送されるのみである。
以上の如く、ステップコード(1-1)はパイプライン上
を順次処理されていく。
を順次処理されていく。
(4.1.2)「POP命令の第2ステップコード(1-2)の処
理」 Aステージ203はAコード213とDコード212とを入力す
る。
理」 Aステージ203はAコード213とDコード212とを入力す
る。
Aコード213がAステージ203に入力されると、Aステー
ジ203ではAコード213中の制御信号の制御によってアド
レス計算が行われる。Aステージ203のスタックポイン
タであるASPレジスタ311から値がAバス322上に出力さ
れ、BASEレジスタ307に格納される。INDEXレジスタ308
及びDISPレジスタ309はクリアされる。BASEレジスタ30
7,INDEXレジスタ308及びDISPレジスタ309の値がアドレ
ス加算器305で加算され、その結果はAOUTレジスタ306に
格納される。この動作によって、ASPレジスタ311の内容
がAOUTレジスタ306に転送される。同時にASPレジスタ31
1は+4インクリメントされる。更に、AOUTレジスタ306
中の値はAOバス323を介してFAレジスタ317に送られる。
FAレジスタ317中にあるASP値は第2デコーダ304の出力
の一部と共にFコード215となる。
ジ203ではAコード213中の制御信号の制御によってアド
レス計算が行われる。Aステージ203のスタックポイン
タであるASPレジスタ311から値がAバス322上に出力さ
れ、BASEレジスタ307に格納される。INDEXレジスタ308
及びDISPレジスタ309はクリアされる。BASEレジスタ30
7,INDEXレジスタ308及びDISPレジスタ309の値がアドレ
ス加算器305で加算され、その結果はAOUTレジスタ306に
格納される。この動作によって、ASPレジスタ311の内容
がAOUTレジスタ306に転送される。同時にASPレジスタ31
1は+4インクリメントされる。更に、AOUTレジスタ306
中の値はAOバス323を介してFAレジスタ317に送られる。
FAレジスタ317中にあるASP値は第2デコーダ304の出力
の一部と共にFコード215となる。
第8図に示す如く第2デコーダ304は、Dコード212の中
間デコード結果が入力されると、マイクロプログラムの
エントリアドレス及び種々の制御情報を生成する。
間デコード結果が入力されると、マイクロプログラムの
エントリアドレス及び種々の制御情報を生成する。
また、Dコード212中の右レジスタ番号情報及び左レジ
スタ番号情報は、それぞれ右レジスタ番号生成部501及
び左レジスタ番号生成部502に入力され、右レジスタ番
号RR、左レジスタ番号RLが生成される。POP命令の第2
のステップコード(1-2)では、右レジスタ番号RRのみ
が意味を有していてSDレジスタ514を示す。右レジスタ
サイズWRはワードを示す。
スタ番号情報は、それぞれ右レジスタ番号生成部501及
び左レジスタ番号生成部502に入力され、右レジスタ番
号RR、左レジスタ番号RLが生成される。POP命令の第2
のステップコード(1-2)では、右レジスタ番号RRのみ
が意味を有していてSDレジスタ514を示す。右レジスタ
サイズWRはワードを示す。
この右レジスタ番号情報は、命令フォーマット中で指定
されるものではなく、このステップコード(1-2)生成
時にDステージ202で生成されたものである。
されるものではなく、このステップコード(1-2)生成
時にDステージ202で生成されたものである。
第2デコーダ304が出力する制御情報の中には、レジス
タ番号制御情報とサイズ制御情報が含まれる。レジスタ
番号制御信号は右レジスタ番号RRがソースレジスタ番号
RSに対応することを示す。またサイズ制御信号は、右レ
ジスタサイズWRがソースレジスタサイズWSに対応するこ
とを示す。
タ番号制御情報とサイズ制御情報が含まれる。レジスタ
番号制御信号は右レジスタ番号RRがソースレジスタ番号
RSに対応することを示す。またサイズ制御信号は、右レ
ジスタサイズWRがソースレジスタサイズWSに対応するこ
とを示す。
レジスタ番号制御信号RC1,RC2,RC3,RC4の中でRC1のみが
イネーブルとなり、NチャネルTG601のみがONし、右レ
ジスタ番号RRがソースレジスタ番号RSとして保持れる。
デスティネーションレジスタ番号RDは、ステップコード
(1-1)で処理時に保持した番号のままである。また、
サイズ制御信号SC1,SC2,SC3,SC4の中でSC1のみがイネー
ブルとなり、NチャネルTG701のみがONし、右レジスタ
サイズWRがソースレジスタサイズWSとして保持される。
イネーブルとなり、NチャネルTG601のみがONし、右レ
ジスタ番号RRがソースレジスタ番号RSとして保持れる。
デスティネーションレジスタ番号RDは、ステップコード
(1-1)で処理時に保持した番号のままである。また、
サイズ制御信号SC1,SC2,SC3,SC4の中でSC1のみがイネー
ブルとなり、NチャネルTG701のみがONし、右レジスタ
サイズWRがソースレジスタサイズWSとして保持される。
このようにステップコード(1-2)中では、ソースレジ
スタ番号RSはSDレジスタ314を示し、ソースレジスタサ
イズWSはワードを示す。
スタ番号RSはSDレジスタ314を示し、ソースレジスタサ
イズWSはワードを示す。
これらのマイクロプログラムのエントリアドレス及びレ
ジスタ番号等からRコード214が生成される。
ジスタ番号等からRコード214が生成される。
このようにして生成されたRコード214及びFコード215
は同時にFステージ204に送られる。
は同時にFステージ204に送られる。
Rステージ206は、Rコード・Fコード有効信号がイネ
ーブルとなると、Rコード214を入力し、Rコード214中
に含まれるマイクロプログラムのエントリアドレスにて
マイクロROM105をアクセスする。マイクロROM105の出力
はデコードされ、レジスタ番号等と共にEコード216と
なる。このステップコード(1-2)のソースレジスタ番
号RSが示すレジスタはSDレジスタ314であり、またソー
スレジスタサイズWSはワードである。
ーブルとなると、Rコード214を入力し、Rコード214中
に含まれるマイクロプログラムのエントリアドレスにて
マイクロROM105をアクセスする。マイクロROM105の出力
はデコードされ、レジスタ番号等と共にEコード216と
なる。このステップコード(1-2)のソースレジスタ番
号RSが示すレジスタはSDレジスタ314であり、またソー
スレジスタサイズWSはワードである。
OFステージ207は、Rコード・Fコード有効信号がイネ
ーブルとなると、Fコード215を入力する。Fコード215
の一部であるFAレジスタ317の値はこの命令のSP値であ
る。そして、FAレジスタ317の値をアドレス値として、
外部バスインターフェース部107を介してスタックトッ
プに対してオペランドのプリフェッチが行われる。この
スタックトップに対するアクセスにおいて、プリフェッ
チされた値は外部バスインターフェース部107を介して
本発明のデータ処理装置内に読み込まれ、DDバス320上
よりSDレジスタ314に保持される。SDレジスタ314中の値
はSコード217の一部としてEステージ205に送られる。
ーブルとなると、Fコード215を入力する。Fコード215
の一部であるFAレジスタ317の値はこの命令のSP値であ
る。そして、FAレジスタ317の値をアドレス値として、
外部バスインターフェース部107を介してスタックトッ
プに対してオペランドのプリフェッチが行われる。この
スタックトップに対するアクセスにおいて、プリフェッ
チされた値は外部バスインターフェース部107を介して
本発明のデータ処理装置内に読み込まれ、DDバス320上
よりSDレジスタ314に保持される。SDレジスタ314中の値
はSコード217の一部としてEステージ205に送られる。
Eステージ205は、Eコード216及びSコード217を入力
すると、AAレジスタ319の値をデスティネーションアド
レスとしてソースレジスタ番号RSが示すレジスタ中の値
を転送せよ、という処理が行われる。この場合、ソース
レジスタ番号RSが示すレジスタはSDレジスタ314であ
る。従って、初めの2クロック(1ステップ)でスタッ
クトップからプリフェッチされたSDレジスタ314中の値
は、S1バス325上からALU313へ送られ、演算されること
なくDOバス327上からDDレジスタ315に転送される。
すると、AAレジスタ319の値をデスティネーションアド
レスとしてソースレジスタ番号RSが示すレジスタ中の値
を転送せよ、という処理が行われる。この場合、ソース
レジスタ番号RSが示すレジスタはSDレジスタ314であ
る。従って、初めの2クロック(1ステップ)でスタッ
クトップからプリフェッチされたSDレジスタ314中の値
は、S1バス325上からALU313へ送られ、演算されること
なくDOバス327上からDDレジスタ315に転送される。
次の2クロック(1ステップ)でDDレジスタ315に送ら
れたデータは、ステップコード(1-1)の処理で保持し
たAAレジスタ319中の値をデスティネーションアドレス
として、外部バスインターフェース部107を介して格納
される。
れたデータは、ステップコード(1-1)の処理で保持し
たAAレジスタ319中の値をデスティネーションアドレス
として、外部バスインターフェース部107を介して格納
される。
Eステージ205において、基本的にASP命令の第2ステッ
プコード(1-2)は処理に4クロック(2ステップ)を
要する。しかし、データの演算と格納とはパイプライン
化されているので、データの格納処理中に次の命令の処
理を始める場合もあり、この場合は処理に2クロック
(1ステップ)を要するのみである。
プコード(1-2)は処理に4クロック(2ステップ)を
要する。しかし、データの演算と格納とはパイプライン
化されているので、データの格納処理中に次の命令の処
理を始める場合もあり、この場合は処理に2クロック
(1ステップ)を要するのみである。
以上の如くして、ステップコード(1-2)はパイプライ
ン機構上を順次処理されていく。
ン機構上を順次処理されていく。
本発明のデータ処理装置においては、第10図(a)に示
す如くPOP命令のステップコード(1-1)及びステップコ
ード(1-2)はパイプラインの各ステージ上で順次処理
されていく。従って、POP命令の処理時における各ステ
ージの負荷分散が十分に行われていることが理解され
る。
す如くPOP命令のステップコード(1-1)及びステップコ
ード(1-2)はパイプラインの各ステージ上で順次処理
されていく。従って、POP命令の処理時における各ステ
ージの負荷分散が十分に行われていることが理解され
る。
(4.2)「デスティネーションがレジスタ指定時」 アドレッシングモードがレジスタ直接モードである場
合、デスティネーションが汎用レジスタになったことに
よりデスティネーションオペランドに関する処理の簡略
化が可能になる。
合、デスティネーションが汎用レジスタになったことに
よりデスティネーションオペランドに関する処理の簡略
化が可能になる。
以下に、POP命令のアドレッシングモードがレジスタ直
接モードである場合に、デスティネーションオペランド
に関する処理を如何に簡略化するかを詳細に説明する。
接モードである場合に、デスティネーションオペランド
に関する処理を如何に簡略化するかを詳細に説明する。
なお、ここでデスティネーションとなる汎用レジスタの
レジスタ番号はRIであるとする。従って、第37図(b)
の汎用レジスタ番号RnはRIである。
レジスタ番号はRIであるとする。従って、第37図(b)
の汎用レジスタ番号RnはRIである。
先ず、IFステージ201はPOP命令をメモリからフェッチし
て命令キュー211に入力し、Dステージ202に対してPOP
命令の命令コード211を出力する。
て命令キュー211に入力し、Dステージ202に対してPOP
命令の命令コード211を出力する。
Dステージ202は、IFステージ201によってフェッチされ
たPOP命令を、第1デコーダ303によりデコードする。
たPOP命令を、第1デコーダ303によりデコードする。
POP命令の命令コード211は第1デコーダ303に入力さ
れ、デコードされてPOP命令の第1のステップコード(2
-1)が生成される。デコード結果の一部は内部状態信号
として内部状態保持ラッチ401に保持される。
れ、デコードされてPOP命令の第1のステップコード(2
-1)が生成される。デコード結果の一部は内部状態信号
として内部状態保持ラッチ401に保持される。
次のデコードのサイクルでは、内部状態保持ラッチ401
からの内部状態信号に応答して第1デコーダ303はIFス
テージ201からの命令コード211を取り込まず、POP命令
の第2のステップコード(2-2)を生成する。この様に
して、第9図(b)に示す如く2つのステップコードが
生成される。
からの内部状態信号に応答して第1デコーダ303はIFス
テージ201からの命令コード211を取り込まず、POP命令
の第2のステップコード(2-2)を生成する。この様に
して、第9図(b)に示す如く2つのステップコードが
生成される。
命令中にはソースオペランド指定部はないが、命令の機
能としてソースオペランドがスタックトップであること
が暗に示されている。本発明のデータ処理装置では、PO
P命令をデコードした段階で、ソースオペランドに関す
る処理を予め行うためのステップコード(2-2)を生成
する。
能としてソースオペランドがスタックトップであること
が暗に示されている。本発明のデータ処理装置では、PO
P命令をデコードした段階で、ソースオペランドに関す
る処理を予め行うためのステップコード(2-2)を生成
する。
Dステージ202から出力されるそれぞれのステップコー
ドはAコード213とDコード212とから構成されている。
同一のステップコード中にあるAコード213とDコード2
12とは同時にAステージ203に送られる。POP命令から生
成されたステップコードはAステージ203に対してステ
ップコード(2-1),ステップコード(2-2)の順序で送
られる。
ドはAコード213とDコード212とから構成されている。
同一のステップコード中にあるAコード213とDコード2
12とは同時にAステージ203に送られる。POP命令から生
成されたステップコードはAステージ203に対してステ
ップコード(2-1),ステップコード(2-2)の順序で送
られる。
以降のステージにおける処理は、各ステップコードに関
して説明する。
して説明する。
(4.2.1)「POP命令の第1ステップコード(2-1)の処
理」 Aステージ203はAコード213とDコード212とを入力す
る。しかし、Aコード213がAステージ203に入力されて
も、レジスタ直接モードであることからアドレス計算の
処理は行わない。
理」 Aステージ203はAコード213とDコード212とを入力す
る。しかし、Aコード213がAステージ203に入力されて
も、レジスタ直接モードであることからアドレス計算の
処理は行わない。
第8図に示す如く、第2デコーダ304はDコード212の中
間デコード結果を入力すると、マイクロプログラムのエ
ントリアドレス及び種々の制御情報を生成する。
間デコード結果を入力すると、マイクロプログラムのエ
ントリアドレス及び種々の制御情報を生成する。
また、Dコード212中の右レジスタ番号情報及び左レジ
スタ番号情報はそれぞれ右レジスタ番号生成部501及び
左レジスタ番号生成部502に入力され、右レジスタ番号R
R及び左レジスタ番号RLが生成される。POP命令のステッ
プコード(2-1)では、右レジスタ番号RRのみが意味を
有していて汎用レジスタファイル中にある汎用レジスタ
RIを示し、また右レジスタサイズWRはワードを示す。
スタ番号情報はそれぞれ右レジスタ番号生成部501及び
左レジスタ番号生成部502に入力され、右レジスタ番号R
R及び左レジスタ番号RLが生成される。POP命令のステッ
プコード(2-1)では、右レジスタ番号RRのみが意味を
有していて汎用レジスタファイル中にある汎用レジスタ
RIを示し、また右レジスタサイズWRはワードを示す。
第2デコーダ304が出力する制御情報には、レジスタ番
号制御情報とサイズ制御情報とが含まれている。レジス
タ番号制御信号は、右レジスタ番号RRがデスティネーシ
ョンレジスタ番号RDに対応することを示す。また、サイ
ズ制御信号は、右レジスタサイズWRがデスティネーショ
ンレジスタサイズWDに対応することを示す。
号制御情報とサイズ制御情報とが含まれている。レジス
タ番号制御信号は、右レジスタ番号RRがデスティネーシ
ョンレジスタ番号RDに対応することを示す。また、サイ
ズ制御信号は、右レジスタサイズWRがデスティネーショ
ンレジスタサイズWDに対応することを示す。
レジスタ番号制御信号RC1,RC2,RC3,RC4の中でRC3のみが
イネーブルとなり、NチャネルTG603のみがONし、右レ
ジスタ番号RRがデスティネーションレジスタ番号RDとし
て保持される。また、サイズ制御信号SC1,SC2,SC3,SC4
の中でSC3のみがイネーブルとなり、NチャネルTG703の
みがONし、右レジスタサイズWRがデスティネーションレ
ジスタサイズWDとして保持される。
イネーブルとなり、NチャネルTG603のみがONし、右レ
ジスタ番号RRがデスティネーションレジスタ番号RDとし
て保持される。また、サイズ制御信号SC1,SC2,SC3,SC4
の中でSC3のみがイネーブルとなり、NチャネルTG703の
みがONし、右レジスタサイズWRがデスティネーションレ
ジスタサイズWDとして保持される。
以上の如く、ステップコード(2-1)中では、デスティ
ネーションレジスタ番号RDは汎用レジスタRIを示し、ま
たデスティネーションレジスタサイズWDはワードを示
す。
ネーションレジスタ番号RDは汎用レジスタRIを示し、ま
たデスティネーションレジスタサイズWDはワードを示
す。
第2デコーダ304は、アドレッシングモードがレジスタ
直接アドレッシングであることから、Rコード・Fコー
ド有効信号をイネーブルにしない。従って、Fステージ
204はステップコード(2-1)を入力しない。つまり、ス
テップコード(2-1)はAステージ203において消滅す
る。
直接アドレッシングであることから、Rコード・Fコー
ド有効信号をイネーブルにしない。従って、Fステージ
204はステップコード(2-1)を入力しない。つまり、ス
テップコード(2-1)はAステージ203において消滅す
る。
デスティネーションレジスタ番号RDとデスティネーショ
ンレジスタサイズWDはステップコード(2-2)に渡され
るために保持され続ける。
ンレジスタサイズWDはステップコード(2-2)に渡され
るために保持され続ける。
もし、レジスタ直接モード以外のアドレッシングモード
であるならば、デスティネーションオペランドに関する
処理を行うステップコード(2-1)は、Eステージ205に
おいてデスティネーションアドレス値をAAレジスタ219
に退避するという処理を行う。しかし、レジスタ直接モ
ードであるためその処理を行う必要がない。従って、本
発明のデータ処理装置においては、アドレシッシングモ
ードがレジスタ直接モードであるPOP命令を処理する場
合にはステップコード(2-1)を消滅させる。
であるならば、デスティネーションオペランドに関する
処理を行うステップコード(2-1)は、Eステージ205に
おいてデスティネーションアドレス値をAAレジスタ219
に退避するという処理を行う。しかし、レジスタ直接モ
ードであるためその処理を行う必要がない。従って、本
発明のデータ処理装置においては、アドレシッシングモ
ードがレジスタ直接モードであるPOP命令を処理する場
合にはステップコード(2-1)を消滅させる。
(4.2.2)「POP命令の第2ステップコード(2-2)の処
理」 Aステージ203はAコード213とDコード212とを入力す
る。Aコード213がAステージ203に入力されると、Aス
テージ203ではAコード213中の制御信号の制御によりア
ドレス計算を行う。Aステージ203のスタックポインタ
であるASPレジスタ311からその値がAバス322上に出力
され、BASEレジスタ307に格納される。INDEXレジスタ30
8及びDISPレジスタ309はクリアされる。BASEレジスタ30
7,INDEXレジスタ308及びDISPレジスタ309の値がアドレ
ス加算器305で加算され、その結果はAOUTレジスタ306に
格納される。この動作により、ASPレジスタ311の内容が
AOUTレジスタ306に転送される。同時にASPレジスタ311
は+4インクリメントされる。更に、AOUTレジスタ306
中の値はAOバス323を介してFAレジスタ317に送られる。
FAレジスタ317中にあるASP値は第2デコーダ304の出力
の一部と共にFコード215となる。
理」 Aステージ203はAコード213とDコード212とを入力す
る。Aコード213がAステージ203に入力されると、Aス
テージ203ではAコード213中の制御信号の制御によりア
ドレス計算を行う。Aステージ203のスタックポインタ
であるASPレジスタ311からその値がAバス322上に出力
され、BASEレジスタ307に格納される。INDEXレジスタ30
8及びDISPレジスタ309はクリアされる。BASEレジスタ30
7,INDEXレジスタ308及びDISPレジスタ309の値がアドレ
ス加算器305で加算され、その結果はAOUTレジスタ306に
格納される。この動作により、ASPレジスタ311の内容が
AOUTレジスタ306に転送される。同時にASPレジスタ311
は+4インクリメントされる。更に、AOUTレジスタ306
中の値はAOバス323を介してFAレジスタ317に送られる。
FAレジスタ317中にあるASP値は第2デコーダ304の出力
の一部と共にFコード215となる。
第8図に示す如く第2デコーダ304は、Dコード212の中
間デコード結果を入力すると、マイクロプログラムのエ
ントリアドレス及び種々の制御情報を生成する。
間デコード結果を入力すると、マイクロプログラムのエ
ントリアドレス及び種々の制御情報を生成する。
また、Dコード212中の右レジスタ番号情報及び左レジ
スタ番号情報はそれぞれ右レジスタ番号生成部501及び
左レジスタ番号生成部502に入力され、右レジスタ番号R
R及び左レジスタ番号RLが生成される。POP命令のステッ
プコード(2-2)では、右レジスタ番号RRのみが意味を
有していてSDレジスタ314を示す。また、右レジスタサ
イズWRはワードを示す。このステップコード(2-2)の
右レジスタ番号情報は命令フォーマット中で指定される
ものではなく、このステップコード(2-2)生成時にD
ステージ202で生成されたものである。
スタ番号情報はそれぞれ右レジスタ番号生成部501及び
左レジスタ番号生成部502に入力され、右レジスタ番号R
R及び左レジスタ番号RLが生成される。POP命令のステッ
プコード(2-2)では、右レジスタ番号RRのみが意味を
有していてSDレジスタ314を示す。また、右レジスタサ
イズWRはワードを示す。このステップコード(2-2)の
右レジスタ番号情報は命令フォーマット中で指定される
ものではなく、このステップコード(2-2)生成時にD
ステージ202で生成されたものである。
第2デコーダ304が出力する制御情報の中には、レジス
タ番号制御情報とサイズ制御情報とが含まれる。レジス
タ番号制御信号は右レジスタ番号RRがソースレジスタ番
号RSに対応することを示し、サイズ制御信号は右レジス
タサイズWRがソースレジスタサイズWSに対応することを
示す。
タ番号制御情報とサイズ制御情報とが含まれる。レジス
タ番号制御信号は右レジスタ番号RRがソースレジスタ番
号RSに対応することを示し、サイズ制御信号は右レジス
タサイズWRがソースレジスタサイズWSに対応することを
示す。
レジスタ番号制御信号RC1,RC2,RC3,RC4の中でRC1のみが
イネーブルとなり、NチャネルTG601のみがONし、右レ
ジスタ番号RRがソースレジスタ番号RSとして保持され
る。デスティネーションレジスタ番号RDは、ステップコ
ード(2-1)で処理時に保持した番号のままである。ま
た、サイズ制御信号SC1,SC2,SC3,SC4の中でSC1のみがイ
ネーブルとなり、NチャネルTG701のみがONし、右レジ
スタサイズWRがソースレジスタサイズWSとして保持され
る。デスティネーションレジスタサイズWDは、ステップ
コード(2-1)で処理時に保持したサイズのままであ
る。
イネーブルとなり、NチャネルTG601のみがONし、右レ
ジスタ番号RRがソースレジスタ番号RSとして保持され
る。デスティネーションレジスタ番号RDは、ステップコ
ード(2-1)で処理時に保持した番号のままである。ま
た、サイズ制御信号SC1,SC2,SC3,SC4の中でSC1のみがイ
ネーブルとなり、NチャネルTG701のみがONし、右レジ
スタサイズWRがソースレジスタサイズWSとして保持され
る。デスティネーションレジスタサイズWDは、ステップ
コード(2-1)で処理時に保持したサイズのままであ
る。
この様にステップコード(2-2)中では、デスティネー
ションレジスタ番号RDは汎用レジスタRIを示し、ソース
レジスタ番号RSはSDレジスタ314を示し、またデスティ
ネーションレジスタサイズWDはワードを示し、ソースレ
ジスタサイズWSはワードを示す。従って、ステップコー
ド(2-1)の情報の一部をステップコード(2-2)に吸収
したことになる。
ションレジスタ番号RDは汎用レジスタRIを示し、ソース
レジスタ番号RSはSDレジスタ314を示し、またデスティ
ネーションレジスタサイズWDはワードを示し、ソースレ
ジスタサイズWSはワードを示す。従って、ステップコー
ド(2-1)の情報の一部をステップコード(2-2)に吸収
したことになる。
また、レジスタ直接モード時は、第2デコーダ304では
マイクロプログラムのエントリアドレスの下位1ビット
が反転されて出力される。従って、デスティネーション
アドレスがレジスタである場合とそれ以外の場合とで
は、マイクロ命令での処理が異なる。
マイクロプログラムのエントリアドレスの下位1ビット
が反転されて出力される。従って、デスティネーション
アドレスがレジスタである場合とそれ以外の場合とで
は、マイクロ命令での処理が異なる。
これらマイクロプログラムのエントリアドレス及びレジ
スタ番号等からRコード214が生成される。
スタ番号等からRコード214が生成される。
このようにして生成されたRコード214及びFコード215
は同時にFステージ204に送られる。
は同時にFステージ204に送られる。
Rステージ206は、Rコード・Fコード有効信号がイネ
ーブルとなると、Rコード214を入力してそれに含まれ
るマイクロプログラムのエントリアドレスにてマイクロ
ROM105をアクセスする。マイクロROM105の出力はデコー
ドされ、レジスタ番号等と共にEコード216となる。こ
のステップコード(2-2)のソースレジスタ番号RSが示
すレジスタはSDレジスタ314であり、デスティネーショ
ンレジスタ番号RDが示すレジスタは汎用レジスタRIであ
る。また、ソースレジスタサイズWSとデスティネーショ
ンレジスタサイズWDは共にワードである。
ーブルとなると、Rコード214を入力してそれに含まれ
るマイクロプログラムのエントリアドレスにてマイクロ
ROM105をアクセスする。マイクロROM105の出力はデコー
ドされ、レジスタ番号等と共にEコード216となる。こ
のステップコード(2-2)のソースレジスタ番号RSが示
すレジスタはSDレジスタ314であり、デスティネーショ
ンレジスタ番号RDが示すレジスタは汎用レジスタRIであ
る。また、ソースレジスタサイズWSとデスティネーショ
ンレジスタサイズWDは共にワードである。
OFステージ207は、Rコード・Fコード有効信号がイネ
ーブルになると、Fコード215を入力する。Fコード215
の一部であるFAレジスタ317中の値はこの命令のSP値で
ある。FAレジスタ317中の値をアドレスとして、外部バ
スインターフェース部107を介し、スタックトップにオ
ペランドのプリフェッチを行う。このスタックトップに
対するアクセスによって、プリフェッチした値は外部バ
スインターフェース部107を介して本発明のデータ処理
装置内に読み込まれ、DDバス320上よりSDレジスタ314に
保持される。SDレジスタ314中の値はSコード217の一部
としてEステージ205に送られる。
ーブルになると、Fコード215を入力する。Fコード215
の一部であるFAレジスタ317中の値はこの命令のSP値で
ある。FAレジスタ317中の値をアドレスとして、外部バ
スインターフェース部107を介し、スタックトップにオ
ペランドのプリフェッチを行う。このスタックトップに
対するアクセスによって、プリフェッチした値は外部バ
スインターフェース部107を介して本発明のデータ処理
装置内に読み込まれ、DDバス320上よりSDレジスタ314に
保持される。SDレジスタ314中の値はSコード217の一部
としてEステージ205に送られる。
Eステージ205がEコード216とSコード217とを入力す
ると、ソースレジスタ番号RSが示すレジスタ中の値をデ
スティネーションレジスタ番号RDが示すレジスタに転送
せよ、という処理が行われる。
ると、ソースレジスタ番号RSが示すレジスタ中の値をデ
スティネーションレジスタ番号RDが示すレジスタに転送
せよ、という処理が行われる。
この場合、デスティネーションレジスタ番号RDが示すレ
ジスタは汎用レジスタRIであり、ソースレジスタ番号RS
が示すレジスタはSDレジスタ314である。よって、スタ
ックトップからプリフェッチしたSDレジスタ314中の値
はS1バス325上からALU313へ送られ、演算されることな
くDOバス327上から汎用レジスタRIに転送される。
ジスタは汎用レジスタRIであり、ソースレジスタ番号RS
が示すレジスタはSDレジスタ314である。よって、スタ
ックトップからプリフェッチしたSDレジスタ314中の値
はS1バス325上からALU313へ送られ、演算されることな
くDOバス327上から汎用レジスタRIに転送される。
以上の如く、ステップコード(2-2)はパイプライン機
構上を順次処理されていく。
構上を順次処理されていく。
本発明のデータ処理装置においては、パイプライン機構
上で待ち状態のない場合は、第10図(b)に示す如くPO
P命令のステップコード(2-1)及びステップコード(2-
2)はパイプラインの各ステージ上で順次処理されてい
く。この間に、Aステージ203においてステップコード
(2-1)は消滅し、必要な情報のみがステップコード(2
-2)に吸収される。
上で待ち状態のない場合は、第10図(b)に示す如くPO
P命令のステップコード(2-1)及びステップコード(2-
2)はパイプラインの各ステージ上で順次処理されてい
く。この間に、Aステージ203においてステップコード
(2-1)は消滅し、必要な情報のみがステップコード(2
-2)に吸収される。
第10図(a)及び(b)に示す如く、パイプライン機構
上で待ち状態のない状態で、POP命令のステップコード
の1つが吸収処理される場合とステップコードが吸収さ
れない場合とでは、Eステージ205でのデータの格納動
作を除くと、処理に要するステップ数は同じである。
上で待ち状態のない状態で、POP命令のステップコード
の1つが吸収処理される場合とステップコードが吸収さ
れない場合とでは、Eステージ205でのデータの格納動
作を除くと、処理に要するステップ数は同じである。
ここで、POP命令の1つ前の命令のステップコード(4-
1)がEステージ205において処理に3ステップ要するた
め、POP命令のステップコードがFステージ204において
2ステップ待ち状態になった場合について考える。
1)がEステージ205において処理に3ステップ要するた
め、POP命令のステップコードがFステージ204において
2ステップ待ち状態になった場合について考える。
第10図(c)はPOP命令のステップコードが吸収されな
い場合を示し、第10図(d)はPOP命令のステップコー
ドの1つが吸収される場合を示している。
い場合を示し、第10図(d)はPOP命令のステップコー
ドの1つが吸収される場合を示している。
第10図(d)から理解される如く、ステップコード(2-
1)が吸収されたことによりEステージ205において処理
すべきステップコードの数が減少し、結果として処理全
体に要するステップ数が減少する。
1)が吸収されたことによりEステージ205において処理
すべきステップコードの数が減少し、結果として処理全
体に要するステップ数が減少する。
このように、不必要なステップコード(2-1)をパイプ
ライン機構上で吸収してしまうということは、パイプラ
イン機構上で待ち状態が生じた場合に、処理に必要なス
テップ数が減少する可能性が大いにあり、データ処理装
置の処理速度は改善される。
ライン機構上で吸収してしまうということは、パイプラ
イン機構上で待ち状態が生じた場合に、処理に必要なス
テップ数が減少する可能性が大いにあり、データ処理装
置の処理速度は改善される。
[発明の効果] 以上に詳述した如く、本発明のデータ処理装置によれ
ば、POP命令が暗に示しているソースオペランドに関す
る処理単位が生成され、その処理単位がパイプライン処
理されるので、POP命令処理時に非常に均衡のとれたパ
イプライン処理が可能となり、全体としての処理速度の
向上が実現される。
ば、POP命令が暗に示しているソースオペランドに関す
る処理単位が生成され、その処理単位がパイプライン処
理されるので、POP命令処理時に非常に均衡のとれたパ
イプライン処理が可能となり、全体としての処理速度の
向上が実現される。
また、レジスタ直接アドレッシングモードであるPOP命
令の処理に際して実行ステージで行う必要のない処理の
処理単位を消滅させる様に構成したので、パイプライン
機構上で待ち状態が生じた場合はレジスタ直接モードで
あるPOP命令の実行時に要する処理ステップ数が減少
し、その処理に対する実行ステージの占有時間が削減さ
れ、データ処理装置の処理速度の向上が可能になる。
令の処理に際して実行ステージで行う必要のない処理の
処理単位を消滅させる様に構成したので、パイプライン
機構上で待ち状態が生じた場合はレジスタ直接モードで
あるPOP命令の実行時に要する処理ステップ数が減少
し、その処理に対する実行ステージの占有時間が削減さ
れ、データ処理装置の処理速度の向上が可能になる。
またアドレス計算ステージのスタックポインタを用いて
POP命令のソースオペランドのアドレス計算を行うので
パイプラインのストールが回避でき、POP命令の高速化
が可能となる。
POP命令のソースオペランドのアドレス計算を行うので
パイプラインのストールが回避でき、POP命令の高速化
が可能となる。
第1図は本発明のデータ処理装置の構成を示すブロック
図、第2図は本発明のデータ処理装置のパイプライン機
能の構成を示すブロック図、第3図は本発明のデータ処
理装置の更に詳しい構成を示すブロック図、第4図は本
発明のデータ処理装置のデコード(D)ステージの構成
を示すブロック図、第5図は本発明のデータ処理装置の
オペランドアドレス計算(A)ステージで命令デコード
部に含まれる部分の構成を示すブロック図、第6図は第
5図におけるレジスタ番号生成部の構成を示す回路図、
第7図は第5図におけるサイズ生成部の構成を示す回路
図、第8図は第5図における第2デコーダの出力である
Rコード・Fコード有効信号,レジスタ番号制御信号及
びサイズ制御信号の内容を示す図、第9図(a),
(b)はパイプライン機構上におけるPOP命令の処理シ
ーケンスを示すフローチャート、第10図(a),
(b),(c),(d)は、POP命令のDステージ以降
のステージにおけるステップコードの処理の流れを示す
模式図、第11図は従来のデータ処理装置におけるパイプ
ライン機構の構成を示すブロック図、第12図は本発明の
データ処理装置の命令フォーマットの代表的な形式を示
す模式図、第13図はメモリ−レジスタ間演算命令の短縮
形フォーマットを示す模式図、第14図はレジスタ−レジ
スタ間演算命令の短縮形フォーマットを示す模式図、第
15図はリテラル−メモリ間演算命令の短縮形フォーマッ
トを示す模式図、第16図は即値−メモリ間演算命令の短
縮形フォーマットを示す模式図、第17図は1オペランド
命令の一般形フォーマットを示す模式図、第18図は2オ
ペランド命令の第1オペランドがメモリ読み出しを必要
とする命令の一般形フォーマットを示す模式図、第19図
は2オペランド命令の第1オペランドが8ビット即値の
命令である一般形フォーマットを示す模式図、第20図は
2オペランド命令の第1オペランドがアドレス計算のみ
の命令である一般形フォーマットを示す模式図、第21図
はショートブランチの命令フォーマットを示す模式図、
第22図はアドレシッシングモード指定部がレジスタ直接
モードであるフォーマットを示す模式図、第23図はアド
レシッシングモード指定部がレジスタ間接モードである
フォーマットを示す模式図、第24図はアドレシッシング
モード指定部がレジスタ相対間接モードであるフォーマ
ットを示す模式図、第25図はアドレシッシングモード指
定部が即値モードであるフォーマットを示す模式図、第
26図はアドレシッシングモード指定部が絶対モードであ
るフォーマットを示す模式図、第27図はアドレシッシン
グモード指定部がPC相対間接モードであるフォーマット
を示す模式図、第28図はアドレシッシングモード指定部
がスタックポップモードであるフォーマットを示す模式
図、第29図はアドレッシングモード指定部がスタックプ
ッシュモードであるフォーマットを示す模式図、第30図
はレジスタベース多段間接モードのフォーマットを示す
模式図、第31図はPCベース多段間接モードのフォーマッ
トを示す模式図、第32図は絶対ベース多段間接モードの
フォーマットを示す模式図、第33図は1段の多段間接モ
ードのフォーマット中のディスプレースメント値の加
算,インデックス値のスケーリングと加算,メモリの間
接参照の指定フィールドを示す模式図、第34図は多段間
接モードが継続か否かのバリエーションを示す模式図、
第35図はディスプレースメント値のサイズのバリエーシ
ョンを示す模式図、第36図は本発明のデータ処理装置の
基本的命令フォーマットを示す模式図、第37図(a),
(b)はPOP命令の命令フォーマットを示す模式図であ
る。 201……命令フェッチステージ、202……メモリデコード
ステージ、203……オペランドアドレス計算ステージ、2
04……オペランドフェッチステージ、205……実行ステ
ージ、211……命令コード、212……Dコード、213……
Aコード、303……第1デコーダ、304……第2デコーダ なお、各図中同一符号は同一又は相当部分を示す。
図、第2図は本発明のデータ処理装置のパイプライン機
能の構成を示すブロック図、第3図は本発明のデータ処
理装置の更に詳しい構成を示すブロック図、第4図は本
発明のデータ処理装置のデコード(D)ステージの構成
を示すブロック図、第5図は本発明のデータ処理装置の
オペランドアドレス計算(A)ステージで命令デコード
部に含まれる部分の構成を示すブロック図、第6図は第
5図におけるレジスタ番号生成部の構成を示す回路図、
第7図は第5図におけるサイズ生成部の構成を示す回路
図、第8図は第5図における第2デコーダの出力である
Rコード・Fコード有効信号,レジスタ番号制御信号及
びサイズ制御信号の内容を示す図、第9図(a),
(b)はパイプライン機構上におけるPOP命令の処理シ
ーケンスを示すフローチャート、第10図(a),
(b),(c),(d)は、POP命令のDステージ以降
のステージにおけるステップコードの処理の流れを示す
模式図、第11図は従来のデータ処理装置におけるパイプ
ライン機構の構成を示すブロック図、第12図は本発明の
データ処理装置の命令フォーマットの代表的な形式を示
す模式図、第13図はメモリ−レジスタ間演算命令の短縮
形フォーマットを示す模式図、第14図はレジスタ−レジ
スタ間演算命令の短縮形フォーマットを示す模式図、第
15図はリテラル−メモリ間演算命令の短縮形フォーマッ
トを示す模式図、第16図は即値−メモリ間演算命令の短
縮形フォーマットを示す模式図、第17図は1オペランド
命令の一般形フォーマットを示す模式図、第18図は2オ
ペランド命令の第1オペランドがメモリ読み出しを必要
とする命令の一般形フォーマットを示す模式図、第19図
は2オペランド命令の第1オペランドが8ビット即値の
命令である一般形フォーマットを示す模式図、第20図は
2オペランド命令の第1オペランドがアドレス計算のみ
の命令である一般形フォーマットを示す模式図、第21図
はショートブランチの命令フォーマットを示す模式図、
第22図はアドレシッシングモード指定部がレジスタ直接
モードであるフォーマットを示す模式図、第23図はアド
レシッシングモード指定部がレジスタ間接モードである
フォーマットを示す模式図、第24図はアドレシッシング
モード指定部がレジスタ相対間接モードであるフォーマ
ットを示す模式図、第25図はアドレシッシングモード指
定部が即値モードであるフォーマットを示す模式図、第
26図はアドレシッシングモード指定部が絶対モードであ
るフォーマットを示す模式図、第27図はアドレシッシン
グモード指定部がPC相対間接モードであるフォーマット
を示す模式図、第28図はアドレシッシングモード指定部
がスタックポップモードであるフォーマットを示す模式
図、第29図はアドレッシングモード指定部がスタックプ
ッシュモードであるフォーマットを示す模式図、第30図
はレジスタベース多段間接モードのフォーマットを示す
模式図、第31図はPCベース多段間接モードのフォーマッ
トを示す模式図、第32図は絶対ベース多段間接モードの
フォーマットを示す模式図、第33図は1段の多段間接モ
ードのフォーマット中のディスプレースメント値の加
算,インデックス値のスケーリングと加算,メモリの間
接参照の指定フィールドを示す模式図、第34図は多段間
接モードが継続か否かのバリエーションを示す模式図、
第35図はディスプレースメント値のサイズのバリエーシ
ョンを示す模式図、第36図は本発明のデータ処理装置の
基本的命令フォーマットを示す模式図、第37図(a),
(b)はPOP命令の命令フォーマットを示す模式図であ
る。 201……命令フェッチステージ、202……メモリデコード
ステージ、203……オペランドアドレス計算ステージ、2
04……オペランドフェッチステージ、205……実行ステ
ージ、211……命令コード、212……Dコード、213……
Aコード、303……第1デコーダ、304……第2デコーダ なお、各図中同一符号は同一又は相当部分を示す。
Claims (2)
- 【請求項1】命令をデコードする第1のステージと前記
第1のステージに引き続いて処理を行う第2のステージ
を含む複数のステージとにより命令をパイプライン処理
する機構を備え、メモリ上の所定領域から読出した第1
のオペランドの値を、任意に指定可能な第2のオペラン
ドに書込むポップ命令を有するデータ処理装置におい
て、 前記第1のステージに前記ポップ命令が入力された場合
にこれをデコードして、前記第2のオペランドを処理す
るための情報を含む第1の単位処理コードと、前記第1
のオペランドを処理するための情報を含む第2の単位処
理コードとを生成し、前記第2のステージへ出力するデ
コード手段と、前記第2のステージにスタックポインタ
を保持するためのレジスタとを備え、前記第2のステー
ジでは各単位処理コード毎にスタックポインタ値を管
理,計算すべくなしてあることを特徴とするデータ処理
装置。 - 【請求項2】命令をデコードする第1のステージと前記
第1のステージに引き続いて処理を行う第2のステージ
と前記第2のステージに引き続いて処理を行う第3のス
テージを含む複数のステージとにより命令をパイプライ
ン処理する機構を備え、メモリ上の所定領域から読出し
た第1のオペランドの値を任意に指定可能な第2のオペ
ランドに書込むポップ命令を有するデータ処理装置にお
いて、 前記第1のステージに前記ポップ命令が入力された場合
にこれをデコードして、前記第2のオペランドを処理す
るための情報を含む第1の単位処理コードと、前記第1
のオペランドを処理するための情報を含む第2の単位処
理コードとを生成し、前記第2のステージへ出力するデ
コード手段と、 前記第2のオペランドが特定のレジスタである場合に、
前記第2のステージに入力された前記第1及び第2の単
位処理コードを処理して1つの単位処理コードを生成
し、前記第3のステージへ出力する手段と、前記第2の
ステージにスタックポインタを保持するためのレジスタ
とを備え、前記第2のステージでは各単位処理コード毎
にスタックポインタ値を管理,計算すべくなしてあるこ
とを特徴とするデータ処理装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP63251076A JPH0769805B2 (ja) | 1988-10-04 | 1988-10-04 | データ処理装置 |
US07/754,285 US5269008A (en) | 1988-10-04 | 1991-08-30 | Method and apparatus for pre-processing the source of a pop instruction in a pipeline computer |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP63251076A JPH0769805B2 (ja) | 1988-10-04 | 1988-10-04 | データ処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH0298734A JPH0298734A (ja) | 1990-04-11 |
JPH0769805B2 true JPH0769805B2 (ja) | 1995-07-31 |
Family
ID=17217276
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP63251076A Expired - Fee Related JPH0769805B2 (ja) | 1988-10-04 | 1988-10-04 | データ処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH0769805B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2956707B2 (ja) * | 1990-10-29 | 1999-10-04 | 富士通株式会社 | 情報処理装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS62226231A (ja) * | 1986-03-27 | 1987-10-05 | Toshiba Corp | プロセツサ |
-
1988
- 1988-10-04 JP JP63251076A patent/JPH0769805B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH0298734A (ja) | 1990-04-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5091853A (en) | Chained addressing mode pipelined processor which merges separately decoded parts of a multiple operation instruction | |
US5321821A (en) | System for processing parameters in instructions of different format to execute the instructions using same microinstructions | |
JP2507638B2 (ja) | デ―タ処理装置 | |
US5522053A (en) | Branch target and next instruction address calculation in a pipeline processor | |
JPH07114469A (ja) | データ処理装置 | |
JP2581236B2 (ja) | データ処理装置 | |
US4945511A (en) | Improved pipelined processor with two stage decoder for exchanging register values for similar operand instructions | |
JPH081599B2 (ja) | データ処理装置 | |
JPH081602B2 (ja) | データ処理装置 | |
JPH07120284B2 (ja) | データ処理装置 | |
JP2556182B2 (ja) | デ−タ処理装置 | |
JPH0769806B2 (ja) | データ処理装置 | |
US5269008A (en) | Method and apparatus for pre-processing the source of a pop instruction in a pipeline computer | |
JP2710994B2 (ja) | データ処理装置 | |
JP2504235B2 (ja) | デ―タ処理装置 | |
JPH0769805B2 (ja) | データ処理装置 | |
JP2522048B2 (ja) | マイクロプロセッサ及びそれを使用したデ―タ処理装置 | |
JP2532560B2 (ja) | 高機能な例外処理を行うデ―タ処理装置 | |
JPH0769801B2 (ja) | データ処理装置 | |
JPH0769802B2 (ja) | データ処理装置 | |
JPH0769804B2 (ja) | データ処理装置 | |
JP2696578B2 (ja) | データ処理装置 | |
JPH0769808B2 (ja) | データ処理装置 | |
JPH081600B2 (ja) | データ処理装置 | |
JPH0573294A (ja) | マイクロプロセツサ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |