JPH0218621A - データ処理装置 - Google Patents
データ処理装置Info
- Publication number
- JPH0218621A JPH0218621A JP16961488A JP16961488A JPH0218621A JP H0218621 A JPH0218621 A JP H0218621A JP 16961488 A JP16961488 A JP 16961488A JP 16961488 A JP16961488 A JP 16961488A JP H0218621 A JPH0218621 A JP H0218621A
- Authority
- JP
- Japan
- Prior art keywords
- stage
- instruction
- code
- register
- 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.)
- Pending
Links
Landscapes
- Advance Control (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
[産業上の利用分野コ
本発明は高度なパイプライン処理機構により高い処理能
力を実現したデータ処理装置に関する。
力を実現したデータ処理装置に関する。
[従来の技術]
第31図は、従来のデータ処理装置の典型的なパイプラ
インステージの構成を示す模式図である。
インステージの構成を示す模式図である。
図において、71は命令フェッチ(IP)ステージ、7
2は命令デコード(D)ステージ、73はオペランドア
ドレス計算(A)ステージ、74はオペランドフェッチ
(F)ステージ、75は命令実行(E)ステージ、76
はオペランドライト (W)ステージである。
2は命令デコード(D)ステージ、73はオペランドア
ドレス計算(A)ステージ、74はオペランドフェッチ
(F)ステージ、75は命令実行(E)ステージ、76
はオペランドライト (W)ステージである。
次に動作について説明する。第31図に示したデータ処
理装置のパイプライン機構は、バスがおいている時間を
利用して命令データの取り込みを行うIFステージ71
.命令データの解析を行うDステージ72.オペランド
等のアドレス計算を行うAステージ73.オペランドデ
ータのフェッチを行うFステージ74.データの処理を
行うEステージ75オペランドデータの書き込みを行う
Wステージ7606段のパイプラインステージで構成さ
れており、各ステージは異なる命令を同時に処理できる
。但し、オペランドあるいはメモリのアクセスに際して
コンフリクトが生じた場合には、優先度の低いステージ
における処理がコンフリクト解消までの間、−時停止さ
れる。
理装置のパイプライン機構は、バスがおいている時間を
利用して命令データの取り込みを行うIFステージ71
.命令データの解析を行うDステージ72.オペランド
等のアドレス計算を行うAステージ73.オペランドデ
ータのフェッチを行うFステージ74.データの処理を
行うEステージ75オペランドデータの書き込みを行う
Wステージ7606段のパイプラインステージで構成さ
れており、各ステージは異なる命令を同時に処理できる
。但し、オペランドあるいはメモリのアクセスに際して
コンフリクトが生じた場合には、優先度の低いステージ
における処理がコンフリクト解消までの間、−時停止さ
れる。
以上のように、パイプライン化されたデータ処理装置で
は、データ処理の流れに従って処理を複数のステージに
分割し、各ステージを同時に動作させることにより、■
命令に必要な平均処理時間を短縮させて、全体としての
処理時間を短縮して性能を向上させている。
は、データ処理の流れに従って処理を複数のステージに
分割し、各ステージを同時に動作させることにより、■
命令に必要な平均処理時間を短縮させて、全体としての
処理時間を短縮して性能を向上させている。
従来のパイプライン処理は上述の如くであるが、パイプ
ライン処理の構成上注意しなければならない問題点とし
て、使用するリソースのコンフリクトが挙げられる。具
体例を挙げると、レジスタのコンフリクトがその例で、
アドレス計算時に参照したレジスタの内容をパイプライ
ン中を先行して処理されている命令が書換えられた場合
には誤った結果を生しるというものである。
ライン処理の構成上注意しなければならない問題点とし
て、使用するリソースのコンフリクトが挙げられる。具
体例を挙げると、レジスタのコンフリクトがその例で、
アドレス計算時に参照したレジスタの内容をパイプライ
ン中を先行して処理されている命令が書換えられた場合
には誤った結果を生しるというものである。
このような問題点の解決を目的として、たとえば特願昭
62−144394号の発明に開示されているようなレ
ジスタコンフリクトチエツク手段が提案されている。
62−144394号の発明に開示されているようなレ
ジスタコンフリクトチエツク手段が提案されている。
この特願昭62−144394号の発明の動作について
説明する。実行ステージで値が書換えられる可能性があ
るレジスタに関してはアドレス計算ステージでのアドレ
ス計算結果に従ってレジスタの書込み予約を行う。この
書込み予約の情報は実行ステージでの書込みが終了して
書込み予約が解除されるまで保持される。一方、アドレ
ス計算時には参照しようとするレジスタが、パイプライ
ン中で先行処理が行われている命令によって書換えられ
る可能性があるか否かをチエ、りする。書換えられる可
能性がある場合は処理が一時停止され、先行処理命令に
よるレジスタへの書込みが終了し、書込み予約が解除さ
れてからレジスタの参照が行われる。
説明する。実行ステージで値が書換えられる可能性があ
るレジスタに関してはアドレス計算ステージでのアドレ
ス計算結果に従ってレジスタの書込み予約を行う。この
書込み予約の情報は実行ステージでの書込みが終了して
書込み予約が解除されるまで保持される。一方、アドレ
ス計算時には参照しようとするレジスタが、パイプライ
ン中で先行処理が行われている命令によって書換えられ
る可能性があるか否かをチエ、りする。書換えられる可
能性がある場合は処理が一時停止され、先行処理命令に
よるレジスタへの書込みが終了し、書込み予約が解除さ
れてからレジスタの参照が行われる。
このような処理を行うことにより、特願昭621443
94号の発明ではアドレス計算時に正しいレジスタ値が
参照されることを保証している。この例では、レジスタ
の書込み予約は工つの汎用レジスタのみか、その他特定
のレジスタ群(全レジスタを含む)を指定可能である。
94号の発明ではアドレス計算時に正しいレジスタ値が
参照されることを保証している。この例では、レジスタ
の書込み予約は工つの汎用レジスタのみか、その他特定
のレジスタ群(全レジスタを含む)を指定可能である。
[発明が解決しようとする課題]
従来のデータ処理装置のパイプライン処理機構では上述
の如く、命令デコードステージで一度に処理される命令
コード中に書換えを行う2つの任意のレジスタが指定さ
れる場合、全レジスタの書込み予約を行うか、あるいは
2つの任意の書き込みレジスタを一度に予約できるよう
にハードウェアを追加する必要があり、構成の複雑化、
ハードウェア両の増大を招来している。
の如く、命令デコードステージで一度に処理される命令
コード中に書換えを行う2つの任意のレジスタが指定さ
れる場合、全レジスタの書込み予約を行うか、あるいは
2つの任意の書き込みレジスタを一度に予約できるよう
にハードウェアを追加する必要があり、構成の複雑化、
ハードウェア両の増大を招来している。
本発明は、上述の如くハードウェアの追加をする事なく
、2つの任意のレジスタの書込み予約を行い得るデータ
処理装置の提供を目的とする。
、2つの任意のレジスタの書込み予約を行い得るデータ
処理装置の提供を目的とする。
[課題を解決するための手段]
本発明のデータ処理装置は、命令デコードステージがオ
ペランドの書き込みを行う第1及び第2のレジスタ指定
フィールドをもつ命令を処理する場合、第1のレジスタ
指定フィールドの情報を含む第1の単位処理コードと、
第2のレジスタ指定フィールドの情報を含む第2の単位
処理コードとを生成する。更に、アドレス計算ステージ
でレジスタ予約処理のみの指示情報を有するパイプライ
ン処理単位を吸収して一つの単位処理コードにする。
ペランドの書き込みを行う第1及び第2のレジスタ指定
フィールドをもつ命令を処理する場合、第1のレジスタ
指定フィールドの情報を含む第1の単位処理コードと、
第2のレジスタ指定フィールドの情報を含む第2の単位
処理コードとを生成する。更に、アドレス計算ステージ
でレジスタ予約処理のみの指示情報を有するパイプライ
ン処理単位を吸収して一つの単位処理コードにする。
Y作用]
本発明のデータ処理装置では、1つの命令デコド単位の
命令コード中に書き込みを行うレジスタ指定フィールド
を2つ含む命令コードに対してデコードを行う場合、命
令デコードステージにおいて、まず第1のレジスタの予
約情報を含む第1のデコード結果が出力され、次に第2
のレジスタの予約情報を含む第2のデコード結果が出力
されてそれぞれについて一つずつのレジスタ予約が行わ
れる。更に、アドレス計算ステージにおける第1のデコ
ード結果に対する処理結果は次ステージ以後へは出力さ
れず、第2のデコード結果に対する処理結果のみが次ス
テージ以降のステージへ出力される。
命令コード中に書き込みを行うレジスタ指定フィールド
を2つ含む命令コードに対してデコードを行う場合、命
令デコードステージにおいて、まず第1のレジスタの予
約情報を含む第1のデコード結果が出力され、次に第2
のレジスタの予約情報を含む第2のデコード結果が出力
されてそれぞれについて一つずつのレジスタ予約が行わ
れる。更に、アドレス計算ステージにおける第1のデコ
ード結果に対する処理結果は次ステージ以後へは出力さ
れず、第2のデコード結果に対する処理結果のみが次ス
テージ以降のステージへ出力される。
[発明の実施例コ
以下、本発明をその実施例を示す図面に基づいて詳述す
る。
る。
(1)1本発明のデータ処理装置の命令フォーマント」
本発明のデータ処理装置の命令は16ビツト単位で可変
長となっており、奇数バイト長の命令は使用しない。
本発明のデータ処理装置の命令は16ビツト単位で可変
長となっており、奇数バイト長の命令は使用しない。
本発明のデータ処理装置では高頻度命令を短いフォーマ
ントとする目的で特に工夫された命令フォーマット体系
を有する。例えば、2オペランド命令に関しては基本的
に“4バイト+拡張部”の構成を有して総てのアドレッ
シングモードが利用可能な一般形フオーマットと、使用
頻度の高い命令及びアドレッシングモードのみが使用可
能な短縮形フォーマットの2つのフォーマットとがある
。
ントとする目的で特に工夫された命令フォーマット体系
を有する。例えば、2オペランド命令に関しては基本的
に“4バイト+拡張部”の構成を有して総てのアドレッ
シングモードが利用可能な一般形フオーマットと、使用
頻度の高い命令及びアドレッシングモードのみが使用可
能な短縮形フォーマットの2つのフォーマットとがある
。
本発明のデータ処理装置の命令フォーマント中に現われ
る記号の意味は次の通りである。
る記号の意味は次の通りである。
:オペレーションコードが入る部分
#:リテラルまたは即値が入る部分
Ea:8ビy I・の−船形のアドレッシングモードで
オペランドを指定する部分 Sh:6ビツトの短縮形のアドレッシングモドでオペラ
ンドを指定する部分 Rn;レジスタ上のオペランドをレジスタ番号で指定す
る部分 フォーマットは、第3図に示す如く右側が1、SB側で
且つ高いアドレスになっている。アドレスNとアドレス
N+1の2バイトを見ないと命令フォーマットが判別で
きないようになっているが、これは前述の如く、命令が
必ず16ビツト(2ハイド)単位でフェッチ及びデコー
ドされることを前提としているためである。
オペランドを指定する部分 Sh:6ビツトの短縮形のアドレッシングモドでオペラ
ンドを指定する部分 Rn;レジスタ上のオペランドをレジスタ番号で指定す
る部分 フォーマットは、第3図に示す如く右側が1、SB側で
且つ高いアドレスになっている。アドレスNとアドレス
N+1の2バイトを見ないと命令フォーマットが判別で
きないようになっているが、これは前述の如く、命令が
必ず16ビツト(2ハイド)単位でフェッチ及びデコー
ドされることを前提としているためである。
本発明のデータ処理装置では、いずれのフォーマットの
場合も、各オペランドのEaまたはshの拡張部は必ず
そのEaまたはshの基本部を含むハーフワードの直後
に位置される。これは、命令により暗黙に指定される即
値データあるいは命令の拡張部に優先する。従って、4
バイト以上の命令では、Eaの拡張部によって命令のオ
ペレーションコードが分断される場合がある。
場合も、各オペランドのEaまたはshの拡張部は必ず
そのEaまたはshの基本部を含むハーフワードの直後
に位置される。これは、命令により暗黙に指定される即
値データあるいは命令の拡張部に優先する。従って、4
バイト以上の命令では、Eaの拡張部によって命令のオ
ペレーションコードが分断される場合がある。
また後述する如く、多段間接モードによってEaの拡張
部に更に拡張部が付く場合にも、次の命令オペレーショ
ンコードよりもそちらの方が優先される。例えば、第1
ハーフワードにEalを含み、第2ハーフワードにEa
2を含み、第3ハーフワドまである6ハイト命令の場合
を考える。Ealに多段間接モードを使用したため、普
通の拡張部の他に多段間接モードの拡張部も付くものと
すると、実際の命令ビットパターンは、命令の第1ハー
フワード(Ealの基本部を含む)、 Ealの拡張部
、Ealの多段間接モード拡張部、命令の第2ハーフワ
ード(Ea2の基本部を含む)、 Ealの拡張部、命
令の第3ハーフワードの順となる。
部に更に拡張部が付く場合にも、次の命令オペレーショ
ンコードよりもそちらの方が優先される。例えば、第1
ハーフワードにEalを含み、第2ハーフワードにEa
2を含み、第3ハーフワドまである6ハイト命令の場合
を考える。Ealに多段間接モードを使用したため、普
通の拡張部の他に多段間接モードの拡張部も付くものと
すると、実際の命令ビットパターンは、命令の第1ハー
フワード(Ealの基本部を含む)、 Ealの拡張部
、Ealの多段間接モード拡張部、命令の第2ハーフワ
ード(Ea2の基本部を含む)、 Ealの拡張部、命
令の第3ハーフワードの順となる。
(]、、1) r短縮形2オペランド命令」第4図か
ら第7図は2オペランド命令の短縮形フォーマントを示
す模式図である。
ら第7図は2オペランド命令の短縮形フォーマントを示
す模式図である。
第4図はメモリーレジスタ間演算命令のフォーマントを
示す模式図である。このフォーマットには、ソースオペ
ランド側がメモリとなるL−formatと、デスティ
ネーションオペランド側がメモリとなるS−forma
tとがある。
示す模式図である。このフォーマットには、ソースオペ
ランド側がメモリとなるL−formatと、デスティ
ネーションオペランド側がメモリとなるS−forma
tとがある。
L−formatでは、shはソースオペランドの指定
フィールドを、Rnはデスティネーションオペランドの
レジスタの指定フィールドを、RRはshのオペランド
サイズの指定をそれぞれ表す。レジスタ上に位置された
デスティネーションオペランドのサイズは32ビツトに
固定されている。レジスタ側とメモリ側とのサイズが異
なり、ソース側のサイズが小さい場合に符号拡張が行な
われる。
フィールドを、Rnはデスティネーションオペランドの
レジスタの指定フィールドを、RRはshのオペランド
サイズの指定をそれぞれ表す。レジスタ上に位置された
デスティネーションオペランドのサイズは32ビツトに
固定されている。レジスタ側とメモリ側とのサイズが異
なり、ソース側のサイズが小さい場合に符号拡張が行な
われる。
S−formatでは、shはデスティネーションオペ
ランドの指定フィールドを、Rnはソースオペランドの
レジスタ指定フィールドを、RRはshのオペランドサ
イズの指定をそれぞれ表す。レジスタ上に位置されたソ
ースオペランドのサイズは32ビツトに固定されている
。レジスタ側とメモリ側とのサイズが異なり、ソース側
のサイズが大きい場合にオーバフローした部分の切捨て
とオーバフローチエツクが行なわれる。
ランドの指定フィールドを、Rnはソースオペランドの
レジスタ指定フィールドを、RRはshのオペランドサ
イズの指定をそれぞれ表す。レジスタ上に位置されたソ
ースオペランドのサイズは32ビツトに固定されている
。レジスタ側とメモリ側とのサイズが異なり、ソース側
のサイズが大きい場合にオーバフローした部分の切捨て
とオーバフローチエツクが行なわれる。
第5図はレジスターレジスフ間演算命令のフォーマット
(R−forma t)を示す模式図である。Rnはデ
スティネーションレジスタの指定フィールド、Rmはソ
ースレジスタの指定フィールドである。オペランドサイ
ズは32ビツトのみである。
(R−forma t)を示す模式図である。Rnはデ
スティネーションレジスタの指定フィールド、Rmはソ
ースレジスタの指定フィールドである。オペランドサイ
ズは32ビツトのみである。
第6図はリテラル−メモリ間演算命令のフォーマツ)
(Q−format)を示す模式図である。問はディス
ティネーションオペランドサイズの指定フィルド、#I
#はリテラルによるソースオペランドの指定フィールド
、shはデスティネーションオペランドの指定フィール
ドである。
(Q−format)を示す模式図である。問はディス
ティネーションオペランドサイズの指定フィルド、#I
#はリテラルによるソースオペランドの指定フィールド
、shはデスティネーションオペランドの指定フィール
ドである。
第7図は即値−メモリ間演算命令のフォーマント(1−
format)を示す模式図である。MMはオペランド
サイズの指定フィールド(ソース、ディスティネーショ
ンで共通) 、shはデスティネーションオペランドの
指定フィールドである。L−formatの即値のサイ
ズはデスティネーション側のオペランドのサイズと共通
に8.16.32ビツトとなり、ゼロ拡張及び符号拡張
は行なわれない。
format)を示す模式図である。MMはオペランド
サイズの指定フィールド(ソース、ディスティネーショ
ンで共通) 、shはデスティネーションオペランドの
指定フィールドである。L−formatの即値のサイ
ズはデスティネーション側のオペランドのサイズと共通
に8.16.32ビツトとなり、ゼロ拡張及び符号拡張
は行なわれない。
(1,2) r−船形1オペランド命令」第8図は1
オペランド命令の一膜形フオーマツ) (Gl−for
mat)を示す模式図である。問はオペランドサイズの
指定フィールドである。一部のG1forvnat命令
では、Eaの拡張部以外にも拡張部がある。また、聞を
使用しない命令もある。
オペランド命令の一膜形フオーマツ) (Gl−for
mat)を示す模式図である。問はオペランドサイズの
指定フィールドである。一部のG1forvnat命令
では、Eaの拡張部以外にも拡張部がある。また、聞を
使用しない命令もある。
(1,3) r−船形2オペランド命令」第9図から
第11図は2オペランド命令の一膜形フオーマットを示
す模式図である。このフォーマントに含まれるのは、8
ビツトで指定する一膜形アドレッシングモードのオペラ
ンドが最大2つ存在する命令である。オペランドの総数
自体は3つ以上になる場合がある。
第11図は2オペランド命令の一膜形フオーマットを示
す模式図である。このフォーマントに含まれるのは、8
ビツトで指定する一膜形アドレッシングモードのオペラ
ンドが最大2つ存在する命令である。オペランドの総数
自体は3つ以上になる場合がある。
第9図は第1オペランドがメモリ読み出しを必要とする
命令のフォーマット(G−format)を示す模式図
である。EaMはデスティネーションオペランドの指定
フィールド、財はデスティネーションオペランドサイズ
の指定フィールド、EaRはソースオペランド指定フィ
ールド、RRはソースオペランドサイズの指定フィール
ドである。一部のG−format命令では、Ea台あ
るいはEaRの拡張部以外にも拡張部がある。
命令のフォーマット(G−format)を示す模式図
である。EaMはデスティネーションオペランドの指定
フィールド、財はデスティネーションオペランドサイズ
の指定フィールド、EaRはソースオペランド指定フィ
ールド、RRはソースオペランドサイズの指定フィール
ドである。一部のG−format命令では、Ea台あ
るいはEaRの拡張部以外にも拡張部がある。
第10図は第1オペランドが8ビツト即値の命令のフォ
ーマント(E−format)を示す模式図である。
ーマント(E−format)を示す模式図である。
EaMはデスティネーションオペランドの指定フィール
ド、聞はデスティネーションオペランドサイズの指定フ
ィールド、#ト・・はソースオペランド値である。
ド、聞はデスティネーションオペランドサイズの指定フ
ィールド、#ト・・はソースオペランド値である。
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は
、特に転送命令及び比較命令で頻度の多い即値のパター
ンを短縮形にしたものであり、ソースオペランドとディ
スティネーションオペランドのサイズが等しい。
第11図は、第1オペランドがアドレス計算のみの命令
のフォーマット(GA−format)を示す模式図で
ある。EaWはデスティネーションオペラントの指定フ
ィールド、開はデスティネーションオペランドサイズの
指定フィールド、EaAはソースオペランドの指定フィ
ールドである。ソースオペランドとしては実行アドレス
の計算結果自体が使用される。
のフォーマット(GA−format)を示す模式図で
ある。EaWはデスティネーションオペラントの指定フ
ィールド、開はデスティネーションオペランドサイズの
指定フィールド、EaAはソースオペランドの指定フィ
ールドである。ソースオペランドとしては実行アドレス
の計算結果自体が使用される。
第12図は、ショートブランチ命令のフォーマントを示
す模式図である。ccccはブランチ条件指定フィール
ド、disp:8はジャンプ先との変位指定フィールド
であり、本発明のデータ処理装置では8ビツトで変位を
指定する場合には、ビソトバクンでの指定値を2倍して
変位値とする。
す模式図である。ccccはブランチ条件指定フィール
ド、disp:8はジャンプ先との変位指定フィールド
であり、本発明のデータ処理装置では8ビツトで変位を
指定する場合には、ビソトバクンでの指定値を2倍して
変位値とする。
(1,4) rアドレッシングモード」本発明のデー
タ処理装置のアドレソシングモド指定方法には、レジス
タを含めて6ビツトで指定する短縮形と、8ビツトで指
定する一般形とがある。
タ処理装置のアドレソシングモド指定方法には、レジス
タを含めて6ビツトで指定する短縮形と、8ビツトで指
定する一般形とがある。
未定義のアドレッシングモードが指定された場合、ある
いは意味的に考えて明らかに不適当なアドレッシングモ
ードの組み合わせが指定された場合には、未定義命令が
実行された場合同様に予約命令例外が発生され、例外処
理が起動される。
いは意味的に考えて明らかに不適当なアドレッシングモ
ードの組み合わせが指定された場合には、未定義命令が
実行された場合同様に予約命令例外が発生され、例外処
理が起動される。
これに該当するのは、デスティネーションが即値モード
の場合、アドレス計算を伴うべきアドレッシングモード
指定フィールドで即値モードを使用した場合等である。
の場合、アドレス計算を伴うべきアドレッシングモード
指定フィールドで即値モードを使用した場合等である。
フォーマントの図中で使われる記号の意味は次の通りで
ある。
ある。
Rn:レジスタ指定
mem EA : EAで示されるアドレスのメモリ内
容(Sh):6ヒツトの短縮形アドレッシングモードで
の指定方法 (Ea) :8ヒツトの一般形アドレッシングモード
での指定方法 フォーマットの図において破線にて囲繞された部分は拡
張部を示す。
容(Sh):6ヒツトの短縮形アドレッシングモードで
の指定方法 (Ea) :8ヒツトの一般形アドレッシングモード
での指定方法 フォーマットの図において破線にて囲繞された部分は拡
張部を示す。
(1,4,1) r基本アドレッシングモード」本発
明のデータ処理装置は様々なアドレノシングモードをサ
ポートする。それらの内、本発明のデータ処理装置でサ
ポートする基本アドレッシングモードには、レジスタ直
接モード、レジスタ間接モード、レジスタ相対間接モー
ド、即値モード、絶対モード、PC(プログラムカウン
ク)相対間接モード、スタックポツプモード及びスタッ
クブツシュモードがある。
明のデータ処理装置は様々なアドレノシングモードをサ
ポートする。それらの内、本発明のデータ処理装置でサ
ポートする基本アドレッシングモードには、レジスタ直
接モード、レジスタ間接モード、レジスタ相対間接モー
ド、即値モード、絶対モード、PC(プログラムカウン
ク)相対間接モード、スタックポツプモード及びスタッ
クブツシュモードがある。
レジスタ直接モードはレジスタの内容をそのま末オペラ
ンドとする。フォーマノ1〜の模式図を第13図に示す
。Rnは汎用レジスタの番号を示す。
ンドとする。フォーマノ1〜の模式図を第13図に示す
。Rnは汎用レジスタの番号を示す。
レジスタ間接モードはレジスタの内容をアドレスとする
メモリの内容をオペランドとする。フォマノトの模式図
を第14図に示す。Rnは汎用レジスタの番号を示す。
メモリの内容をオペランドとする。フォマノトの模式図
を第14図に示す。Rnは汎用レジスタの番号を示す。
レジスタ相対間接モードはディスプレースメント値が1
6ビノトであるか32ビツトであるかにより2種類があ
る。それぞれ、レジスタの内容に16ビソトまたは32
ビツトのディスプレースメント値を加えた値をアドレス
とするメモリの内容をオペランドとする。フォーマット
の模式図を第15図に示す。Rnは汎用レジスタの番号
を示す。disp : 16とdisp : 32とは
それぞれ各々16ビツトのディスプレースメント値また
は32ビツトのディスプレースメント値を示す。ディス
プレースメント値は符号イ]きとして扱う。
6ビノトであるか32ビツトであるかにより2種類があ
る。それぞれ、レジスタの内容に16ビソトまたは32
ビツトのディスプレースメント値を加えた値をアドレス
とするメモリの内容をオペランドとする。フォーマット
の模式図を第15図に示す。Rnは汎用レジスタの番号
を示す。disp : 16とdisp : 32とは
それぞれ各々16ビツトのディスプレースメント値また
は32ビツトのディスプレースメント値を示す。ディス
プレースメント値は符号イ]きとして扱う。
即値モードは命令コード中で指定されるビットパターン
をそのまま2進数と見なしてオペランドとする。フォー
マットの模式図を第16図に示す。
をそのまま2進数と見なしてオペランドとする。フォー
マットの模式図を第16図に示す。
imm−dataは即値を示す。imm−dataのサ
イズは、オペランドサイズとして命令中で指定される。
イズは、オペランドサイズとして命令中で指定される。
絶対モードはアドレス値が16ビツトで示されるか32
ビツトで示されるかにより2種類ある。それぞれ、命令
コード中で指定される16ビソトまたは32ヒツトのビ
ットパターンをアドレスとするメモリの内容をオペラン
ドとする。フォーマットの模式図を第17図に示す。a
bs:16とabs:32とはそれぞれ16ビソトまた
は32ビツトのアドレス値を示す。
ビツトで示されるかにより2種類ある。それぞれ、命令
コード中で指定される16ビソトまたは32ヒツトのビ
ットパターンをアドレスとするメモリの内容をオペラン
ドとする。フォーマットの模式図を第17図に示す。a
bs:16とabs:32とはそれぞれ16ビソトまた
は32ビツトのアドレス値を示す。
abs:16でアドレスが示される時は指定されたアド
レス値を32ビツトに符号拡張する。
レス値を32ビツトに符号拡張する。
PC相対間接モードはディスプレースメント値がj6ビ
ノトか32ビツトかにより2種類ある。それぞれ、プロ
グラムカウンタの内容に16ビ、1・または32ビツト
のディスブレースメン1−値を加えた値をアドレスとす
るメモリの内容をオペランドとする6フオーマノトの模
式図を第18図に示す。disp : 16とdisp
: 32とはそれぞれ16ビノトのディスプレースメ
ント値または32ビツトのディスプレースメント値を示
す。ディスプレースメント値は符号イ」きとして扱う。
ノトか32ビツトかにより2種類ある。それぞれ、プロ
グラムカウンタの内容に16ビ、1・または32ビツト
のディスブレースメン1−値を加えた値をアドレスとす
るメモリの内容をオペランドとする6フオーマノトの模
式図を第18図に示す。disp : 16とdisp
: 32とはそれぞれ16ビノトのディスプレースメ
ント値または32ビツトのディスプレースメント値を示
す。ディスプレースメント値は符号イ」きとして扱う。
PC相対間接モードにおいて、参照されるプログラムカ
ウンタの値はそのオペランドを含む命令の先頭アドレス
である。多段間接アドレッシングモードにおいてプログ
ラムカウンタの値が参照される場合にも、同しように命
令の先頭のアドレスをPC相対の基準値として使用する
。
ウンタの値はそのオペランドを含む命令の先頭アドレス
である。多段間接アドレッシングモードにおいてプログ
ラムカウンタの値が参照される場合にも、同しように命
令の先頭のアドレスをPC相対の基準値として使用する
。
スタックポツプモードはスタックポインタ(S11)の
内容をアドレスとするメモリの内容をオペランドとする
。オペランドアクセス後、スタックポインタをオペラン
ドサイズだ番ノインクリメントする。
内容をアドレスとするメモリの内容をオペランドとする
。オペランドアクセス後、スタックポインタをオペラン
ドサイズだ番ノインクリメントする。
例えば、32ビツトデータを扱う場合には、オペランド
アクセス後にSPが+4だけ更新(インクリメント)さ
れる。B、Hのサイズのオペランドに対するスタックポ
ツプモードの指定も可能であり、それぞれSPが+1.
+2だけ更新(インクリメント)される。フォーマット
の模式図を第19図に示す。オペランドに対しスタック
ポツプモー1′が意味を持たないものに関しては予約命
令例外が発生される。
アクセス後にSPが+4だけ更新(インクリメント)さ
れる。B、Hのサイズのオペランドに対するスタックポ
ツプモードの指定も可能であり、それぞれSPが+1.
+2だけ更新(インクリメント)される。フォーマット
の模式図を第19図に示す。オペランドに対しスタック
ポツプモー1′が意味を持たないものに関しては予約命
令例外が発生される。
具体的に予約命令例外となるのは、writeオペラン
ド、 read−modify−writeオペランド
に対するスタックポツプモード指定である。
ド、 read−modify−writeオペランド
に対するスタックポツプモード指定である。
スタックブツシュモードはスタックポインタの内容をオ
ペランドサイズだリゾクリメン1−シた内容をアドレス
とするメモリの内容をオペランドとする。スタックブツ
シュモードでは、オペランドアクセス前にスタックポイ
ンタがデクリメントされる。例えば、32ビツトデータ
を扱う場合には、オペランドアクセス前にSPが−4だ
け更新(デクリメント)される。B、Hのサイズのオペ
ランドに対するスタックブツシュモードの指定も可能で
あり、それぞれSPが−1,−2だけ更新(デクリメン
+1 される。フォーマットの模式図を第20図に示す
。オペランドに対してスタックブツシュモードが意味を
持たないものに関しては、予約命令例外が発生される。
ペランドサイズだリゾクリメン1−シた内容をアドレス
とするメモリの内容をオペランドとする。スタックブツ
シュモードでは、オペランドアクセス前にスタックポイ
ンタがデクリメントされる。例えば、32ビツトデータ
を扱う場合には、オペランドアクセス前にSPが−4だ
け更新(デクリメント)される。B、Hのサイズのオペ
ランドに対するスタックブツシュモードの指定も可能で
あり、それぞれSPが−1,−2だけ更新(デクリメン
+1 される。フォーマットの模式図を第20図に示す
。オペランドに対してスタックブツシュモードが意味を
持たないものに関しては、予約命令例外が発生される。
具体的に予約命令例外となるのは、readオペランド
、read−modify−wri teオペランドに
対すスタックブツシュモード指定である。
、read−modify−wri teオペランドに
対すスタックブツシュモード指定である。
(]、、4.2) r多段間接アドレッシングモード
」如何に複雑なアドレッシングも、基本的には加算と間
接参照の組み合わせに分解される。従って、加算と間接
参照のオペレーションをアドレッシングのプリミティブ
として与えておき、それを任意に組み合わせることがで
きれば、如何なる複雑なアドレッシングモードをも実現
可能となる。本発明のデータ処理装置の多段間接アドレ
ノソングモードはこの様な考え方に基づいたアドレノソ
ングモードである。複雑なアドレッシングモードはモジ
ュール間のデータ参照あるいはAI (人工知能)言語
の処理系に特に有用である。
」如何に複雑なアドレッシングも、基本的には加算と間
接参照の組み合わせに分解される。従って、加算と間接
参照のオペレーションをアドレッシングのプリミティブ
として与えておき、それを任意に組み合わせることがで
きれば、如何なる複雑なアドレッシングモードをも実現
可能となる。本発明のデータ処理装置の多段間接アドレ
ノソングモードはこの様な考え方に基づいたアドレノソ
ングモードである。複雑なアドレッシングモードはモジ
ュール間のデータ参照あるいはAI (人工知能)言語
の処理系に特に有用である。
多段間接アドレッシングモードを指定する場合、基本ア
ドレッシングモード指定フィールドでは、レジスタベー
ス多段間接モート、PCヘース多多量間接モード絶対ヘ
ース多段間接モードの3種類の指定方法の内のいずれか
1つを指定する。
ドレッシングモード指定フィールドでは、レジスタベー
ス多段間接モート、PCヘース多多量間接モード絶対ヘ
ース多段間接モードの3種類の指定方法の内のいずれか
1つを指定する。
レジスタベース多段間接モートはレジスタの値を拡張す
る多段間接アドレッシングのベース値とするアドレッシ
ングモードである。フォーマントの模式図を第21図に
示す。Rnは汎用レジスタの番号を示す。
る多段間接アドレッシングのベース値とするアドレッシ
ングモードである。フォーマントの模式図を第21図に
示す。Rnは汎用レジスタの番号を示す。
PCヘース多段間接モードはプログラムカウンタの値を
拡張する多段間接アドレッシングのベース値とするアド
レッシングモードである。ツメ−マントの模式図を第2
2図に示す。
拡張する多段間接アドレッシングのベース値とするアド
レッシングモードである。ツメ−マントの模式図を第2
2図に示す。
絶対ヘース多段間接モードはゼロを拡張する多段間接ア
ドレッシングのベース値とするアドレッシングモードで
ある。フォーマツ1−の模式図を第23図に示す。
ドレッシングのベース値とするアドレッシングモードで
ある。フォーマツ1−の模式図を第23図に示す。
拡張する多段間接モード指定フィールドは16ビツトを
単位としており、これを任意回反復する。
単位としており、これを任意回反復する。
1段の多段間接モードにより、ディスブレースメントの
加算、インデクスレジスタのスケーリング(XI、 X
2. X4. X8)と加算、メモリの間接参照を行な
う。多段間接モードのフォーマットの模式図を第24図
に示す。各フィールドは以下に示す意味を持つ。
加算、インデクスレジスタのスケーリング(XI、 X
2. X4. X8)と加算、メモリの間接参照を行な
う。多段間接モードのフォーマットの模式図を第24図
に示す。各フィールドは以下に示す意味を持つ。
E−0:多段間接モード継続
E−1ニアドレス計算終了
tmp ==> address of opera
nd■−0:メモリ間接参照なし tmp+disp+Rx*5cale==>tmpI−
1:メモリ間接参照あり memtmp+disp十Rx*5cale==>1.
mpM=0 : <Rx>をインデクスとして使用
ト1 :特殊なインデクス <Rx>−〇 インデクス値を加算しない (R
x=0) 〈Rx〉−1プログラムカウンタをイ ンデクス値として使用 (Rx=PC) <Rx>=2− reserved D−0:多段間接モード中の4ビツトのフィルドd4の
値を4倍してディスブレースメント値とし、これを加算
する d4は符号付きとして扱い、オペラン ドのサイズとは関係なく必ず4倍して 使用する D=1:多段間接モードの拡張部で指定されたdisp
x (16/32ピッ日をディスブレースメント値とし
、これを加算する 拡張部のサイズはd4フィールドで指 定する d4=o001 d:spxは16ビソトd4=o
o10 dispxは32ビットxx;インデクス
のスケール(scale=1/2/4/8)プログラム
カウンタに対してx 2+ ×4+ ×8のスケーリン
グを行なった場合には、その段の処理終了後の中間値(
tmp) として不定値が入る。この多段間接モードに
よってIMられる実効アドレスは予測できない値となる
が、例外は発生しない。プログラムカウンタに対するス
ケーリングの指定は行なってはいけない。
nd■−0:メモリ間接参照なし tmp+disp+Rx*5cale==>tmpI−
1:メモリ間接参照あり memtmp+disp十Rx*5cale==>1.
mpM=0 : <Rx>をインデクスとして使用
ト1 :特殊なインデクス <Rx>−〇 インデクス値を加算しない (R
x=0) 〈Rx〉−1プログラムカウンタをイ ンデクス値として使用 (Rx=PC) <Rx>=2− reserved D−0:多段間接モード中の4ビツトのフィルドd4の
値を4倍してディスブレースメント値とし、これを加算
する d4は符号付きとして扱い、オペラン ドのサイズとは関係なく必ず4倍して 使用する D=1:多段間接モードの拡張部で指定されたdisp
x (16/32ピッ日をディスブレースメント値とし
、これを加算する 拡張部のサイズはd4フィールドで指 定する d4=o001 d:spxは16ビソトd4=o
o10 dispxは32ビットxx;インデクス
のスケール(scale=1/2/4/8)プログラム
カウンタに対してx 2+ ×4+ ×8のスケーリン
グを行なった場合には、その段の処理終了後の中間値(
tmp) として不定値が入る。この多段間接モードに
よってIMられる実効アドレスは予測できない値となる
が、例外は発生しない。プログラムカウンタに対するス
ケーリングの指定は行なってはいけない。
多段間接モードによる命令フォーマントのハリニージョ
ンを第25図、第26図に示す。
ンを第25図、第26図に示す。
第25図は、多段間接モートが継続するか終了するかの
バリエーションを示す。
バリエーションを示す。
第26図は、ディスブレースメン1−のサイズのバリエ
ーションを示す。
ーションを示す。
任意段数の多段間接モードが利用できれば、コンパイラ
の中で段数による場合分けが不要になるので、コンパイ
ラの負担が軽減されるというメリットがある。多段の間
接参照の頻度が非常に少ないとしても、コンパイラとし
ては必ず正しいコドを発生できなければならないからで
ある。このため、フォーマット上では任意の段数が可能
になっている。
の中で段数による場合分けが不要になるので、コンパイ
ラの負担が軽減されるというメリットがある。多段の間
接参照の頻度が非常に少ないとしても、コンパイラとし
ては必ず正しいコドを発生できなければならないからで
ある。このため、フォーマット上では任意の段数が可能
になっている。
(1,5) r例外処理」
本発明のデータ処理装置はソフトウェア負荷の軽減のた
め豊富な例外処理機能を有する。本発明のデータ処理装
置では、例外処理は命令処理を再実行するものく例外)
、命令処理を完了するもの(トラップ)及び割込の3種
類に分けて名称をつけている。また本発明のデータ処理
装置では、この3種の例外処理とシステム障害とを総称
してBITと称する。
め豊富な例外処理機能を有する。本発明のデータ処理装
置では、例外処理は命令処理を再実行するものく例外)
、命令処理を完了するもの(トラップ)及び割込の3種
類に分けて名称をつけている。また本発明のデータ処理
装置では、この3種の例外処理とシステム障害とを総称
してBITと称する。
(2)「機能ブロックの構成」
第2図は本発明のデータ処理装置の構成を示すブロック
図である。
図である。
本発明のデータ処理装置の内部を機能的に大きく分ける
と、命令フェッチ部101.命令デコード部102、
PC計算部103.オペランドアドレス計算部104マ
イクロROM部105.データ演算部106.外部ハス
インターフェイス部107に分かれる。
と、命令フェッチ部101.命令デコード部102、
PC計算部103.オペランドアドレス計算部104マ
イクロROM部105.データ演算部106.外部ハス
インターフェイス部107に分かれる。
第2図では、その他にCPU外部にアドレスを出力する
ためのアドレス出力回路108と、CPII外部とデー
タを入出力するためのデータ入出力回路109とを他の
機能ブロック部と分けて示した。
ためのアドレス出力回路108と、CPII外部とデー
タを入出力するためのデータ入出力回路109とを他の
機能ブロック部と分けて示した。
(2,1) r命令フェッチ部」
命令フェッチ部101にはブランチバッファ、命令キュ
ーとその制御部等があり、次にフェッチずべき命令のア
ドレスを決定してブランチバッファあるいはCPU外部
のメモリから命令をフェッチする。またブランチバッフ
ァへの命令登録をも行う。
ーとその制御部等があり、次にフェッチずべき命令のア
ドレスを決定してブランチバッファあるいはCPU外部
のメモリから命令をフェッチする。またブランチバッフ
ァへの命令登録をも行う。
ブランチバッファは小規模であるためセレクティブキャ
ッシュとして動作する。ブランチバッファの動作の詳細
は特願昭61−202041号で詳しく述べられている
。
ッシュとして動作する。ブランチバッファの動作の詳細
は特願昭61−202041号で詳しく述べられている
。
次にフェッチすべき命令のアドレスは、命令キューに入
力すべき命令のアドレスとして専用のカウンタにて計算
される。分岐あるいはジャンプが発生した場合には、新
たな命令のアドレスがPCδ1算部103あるいはデー
タ演算部106から転送されてくる。
力すべき命令のアドレスとして専用のカウンタにて計算
される。分岐あるいはジャンプが発生した場合には、新
たな命令のアドレスがPCδ1算部103あるいはデー
タ演算部106から転送されてくる。
CPu外部のメモリから命令をフェッチする場合は、外
部バスインターフェイス部107を通して、フェッチす
べき命令のアドレスをアドレス出力回路108からCP
u外部へ出力し、データ入出力回路109から命令コー
トをフェッチする。そして、ハソファリングした命令コ
ードの内、次にデコードすべき命令コードを命令デコー
ド部102に出力する。
部バスインターフェイス部107を通して、フェッチす
べき命令のアドレスをアドレス出力回路108からCP
u外部へ出力し、データ入出力回路109から命令コー
トをフェッチする。そして、ハソファリングした命令コ
ードの内、次にデコードすべき命令コードを命令デコー
ド部102に出力する。
(2,2) r命令デコード部」
命令デコード部102では、基本的には16ビツト(ハ
ーフワード)単位で命令コードをデコードする。このブ
ロックには第1ハーフワードに含まれるオペレーション
コードをデコードするFH−デコーダ、第2.第3ハー
フワードに含まれるオペレーションコードをデコードす
るNFIIWデコーダ、アドレッシングモードをデコー
ドするアドレッシングモードデコーダが含まれる。これ
らPIIWデコーダ、NF)tWデコーダ、アドレッシ
ングモードデコーダを纏めて第1デコーダという。
ーフワード)単位で命令コードをデコードする。このブ
ロックには第1ハーフワードに含まれるオペレーション
コードをデコードするFH−デコーダ、第2.第3ハー
フワードに含まれるオペレーションコードをデコードす
るNFIIWデコーダ、アドレッシングモードをデコー
ドするアドレッシングモードデコーダが含まれる。これ
らPIIWデコーダ、NF)tWデコーダ、アドレッシ
ングモードデコーダを纏めて第1デコーダという。
FHWデコーダあるいはNFHWデコーダの出力を更に
デコードして、マイクロROMのエントリアドレスを計
算する第2デコーダ、条件分岐命令の分岐予測を行う分
岐予測機構、オペランドアドレス計算の際のパイプライ
ンコンフリクトをチエツクするアドレス計算コンフリク
トチエツク機構も含まれる。
デコードして、マイクロROMのエントリアドレスを計
算する第2デコーダ、条件分岐命令の分岐予測を行う分
岐予測機構、オペランドアドレス計算の際のパイプライ
ンコンフリクトをチエツクするアドレス計算コンフリク
トチエツク機構も含まれる。
命令デコード部102は命令フェッチ部101から入力
された命令コードを2クロツク(1ステツプ)につきθ
〜6バイトずつデコードする。デコード結果の内、デー
タ演算部′1.06での演算に関する情報がマイクロR
OM部105に、オペランドアドレス計算に関係する情
報がオペランドアドレス計算部104に、pc計算に関
係する情報がpc計算部103にそれぞれ出力される。
された命令コードを2クロツク(1ステツプ)につきθ
〜6バイトずつデコードする。デコード結果の内、デー
タ演算部′1.06での演算に関する情報がマイクロR
OM部105に、オペランドアドレス計算に関係する情
報がオペランドアドレス計算部104に、pc計算に関
係する情報がpc計算部103にそれぞれ出力される。
(2,3) rマイクロROM部」
マイクロROM部105には、主にデータ演算部106
を制御するマイクロプログラムが格納されているマイク
ロRAM 、マイクロシーケンサ、マイクロ命令デコー
ダ等が含まれる。マイクロ命令はマイクロROMから2
クロツク(1ステツプ)に1度読出される。マイクロシ
ーケンサはマイクロプログラムで示されるシーケンス処
理の他に、例外、割込及びトラップ(この3つを合わせ
てEl↑と称する)の処理をハードウェア的に受付ける
。またマイクロROM部105はストアハソフプの管理
も行う。マイクロROM部105には命令コードに依存
しない割込みあるいは演算実行結果によるフラッグ情報
と、第2デコーダの出力等の命令デコード部の出力が入
力される。マイクロデコーダの出力は主にデータ演算部
106に対して出力されるが、ジャンプ命令の実行によ
る他の先行処理中止情報等の一部の情報は他のブロック
へも出力される。
を制御するマイクロプログラムが格納されているマイク
ロRAM 、マイクロシーケンサ、マイクロ命令デコー
ダ等が含まれる。マイクロ命令はマイクロROMから2
クロツク(1ステツプ)に1度読出される。マイクロシ
ーケンサはマイクロプログラムで示されるシーケンス処
理の他に、例外、割込及びトラップ(この3つを合わせ
てEl↑と称する)の処理をハードウェア的に受付ける
。またマイクロROM部105はストアハソフプの管理
も行う。マイクロROM部105には命令コードに依存
しない割込みあるいは演算実行結果によるフラッグ情報
と、第2デコーダの出力等の命令デコード部の出力が入
力される。マイクロデコーダの出力は主にデータ演算部
106に対して出力されるが、ジャンプ命令の実行によ
る他の先行処理中止情報等の一部の情報は他のブロック
へも出力される。
(2,4) rオペランドアドレス引算部」オペラン
ドアドレス計算部104は命令デコード部102のアド
レスデコーダ等から出力されたオペランドアドレス計算
に関係する情報によりハードワイヤード制御される。こ
のブロックではオペランドのアドレス計算に関するほと
んどの処理が行われる。メモリ間接アドレシングのため
のメモリアクセスのアドレス及びオペランドアドレスが
メモリにマツプされたI10領域に入るか否かのチエツ
クも行われる。
ドアドレス計算部104は命令デコード部102のアド
レスデコーダ等から出力されたオペランドアドレス計算
に関係する情報によりハードワイヤード制御される。こ
のブロックではオペランドのアドレス計算に関するほと
んどの処理が行われる。メモリ間接アドレシングのため
のメモリアクセスのアドレス及びオペランドアドレスが
メモリにマツプされたI10領域に入るか否かのチエツ
クも行われる。
アドレス計算結果は外部バスインターフェイス部107
に送られる。アドレス計算に必要な汎用レジスタ及びプ
ログラムカウンタの値はデータ演算部より人力される。
に送られる。アドレス計算に必要な汎用レジスタ及びプ
ログラムカウンタの値はデータ演算部より人力される。
メモリ間接アドレッシングを行う際は外部バスインター
フェイス部107を通してアドレス出力回路108から
CPU外部へ参照すべきメモリアドレスを出力し、デー
タ入出力部109から入力された間接アドレス値を命令
デコード部102を通してフェッチする。
フェイス部107を通してアドレス出力回路108から
CPU外部へ参照すべきメモリアドレスを出力し、デー
タ入出力部109から入力された間接アドレス値を命令
デコード部102を通してフェッチする。
(2,5) rPC計算部」
pc計算部103は命令デコード部102から出力され
るPC計算に関係する情報によりハードワイヤドに制御
され、命令のpc値を割算する。本発明のデータ処理装
置は可変長命令セントを有しており、命令をデコードし
なければその命令の長さが判らない。このため、PC計
算部103は命令デコード部102から出力される命令
長をデコード中の命令のpc値に加算することにより次
の命令のpc値を作り出す。また、命令デコード部10
2が分岐命令をデコードしてデコード段階での分岐を指
示した場合は、命令長の代わりに分岐変位を分岐命令の
pc値に加算することにより分岐先命令のpc値を計算
する。分岐命令に対して命令デコード段階で分岐を行う
ことを本発明のデータ処理装置ではプリブランチと称す
る。
るPC計算に関係する情報によりハードワイヤドに制御
され、命令のpc値を割算する。本発明のデータ処理装
置は可変長命令セントを有しており、命令をデコードし
なければその命令の長さが判らない。このため、PC計
算部103は命令デコード部102から出力される命令
長をデコード中の命令のpc値に加算することにより次
の命令のpc値を作り出す。また、命令デコード部10
2が分岐命令をデコードしてデコード段階での分岐を指
示した場合は、命令長の代わりに分岐変位を分岐命令の
pc値に加算することにより分岐先命令のpc値を計算
する。分岐命令に対して命令デコード段階で分岐を行う
ことを本発明のデータ処理装置ではプリブランチと称す
る。
このプリブランチの手法については特願昭612045
00号及び特願昭61−200557号で詳しく述べら
れている。
00号及び特願昭61−200557号で詳しく述べら
れている。
pc計算部103の計算結果は各命令のpc値として命
令のデコード結果と共に出力される他、プリブランチ時
には、次にデコードすべき命令のアドレスとして命令フ
ェッチ部101へ出力される。また、次に命令デコード
部102でデコードされる命令の分岐予測のためのアド
レスにも使用される。
令のデコード結果と共に出力される他、プリブランチ時
には、次にデコードすべき命令のアドレスとして命令フ
ェッチ部101へ出力される。また、次に命令デコード
部102でデコードされる命令の分岐予測のためのアド
レスにも使用される。
分岐予測の手法については特願昭62−8394号で詳
しく述べられている。
しく述べられている。
(2,6) rデータ演算部」
データ演算部106はマイクロプログラムにより制御さ
れ、マイクロROM部105の出力情報に従って各命令
の機能を実現するに必要な演算をレジスタと演算器で実
行する。演算対象となるオペランドがアドレスあるいは
即値である場合は、オペランドアドレス計算部オペラン
ドアドレス計算部104で計算されたアドレスあるいは
即値を外部ハスインクフェイス部107を通過さゼで得
る。また、演算対象となるオペランドがCPU外部のメ
モリにある場合は、アドレス計算部104で計算された
アトレスをバスインクフェイス部がアドレス出力回路1
0Bから出力して、CPU外部のメモリからフェッチし
たオペランドをデータ入出力回路]09がら得る。
れ、マイクロROM部105の出力情報に従って各命令
の機能を実現するに必要な演算をレジスタと演算器で実
行する。演算対象となるオペランドがアドレスあるいは
即値である場合は、オペランドアドレス計算部オペラン
ドアドレス計算部104で計算されたアドレスあるいは
即値を外部ハスインクフェイス部107を通過さゼで得
る。また、演算対象となるオペランドがCPU外部のメ
モリにある場合は、アドレス計算部104で計算された
アトレスをバスインクフェイス部がアドレス出力回路1
0Bから出力して、CPU外部のメモリからフェッチし
たオペランドをデータ入出力回路]09がら得る。
演算器としてはALU、バレルシフタ、プライオリティ
エンコーダあるいはカウンタ、シフトレジスタなどがあ
る。レジスタと主な演算器の間は3ハスで結合されてお
り、1つのレジスタ間演算を指示する1マイクロ命令を
2クロツク(1ステツプ)で処理する。
エンコーダあるいはカウンタ、シフトレジスタなどがあ
る。レジスタと主な演算器の間は3ハスで結合されてお
り、1つのレジスタ間演算を指示する1マイクロ命令を
2クロツク(1ステツプ)で処理する。
データ演算時にCPU外部のメモリをアクセスする必要
がある場合は、マイクロプログラムの指示により外部バ
スインターフェイス部107を通してアドレス出力回路
108からアドレスをCPU外部に出力し、データ入出
力回路109を通して目的のデータをフェッチする。
がある場合は、マイクロプログラムの指示により外部バ
スインターフェイス部107を通してアドレス出力回路
108からアドレスをCPU外部に出力し、データ入出
力回路109を通して目的のデータをフェッチする。
CPU外部のメモリにデータをストアする場合は、外部
バスインターフェイス部107を通してアドレス出力回
路108よりアドレスを出力すると同時に、データ入出
力回路109からデータをCPU外部に出力する。オペ
ランドストアを効率的に行うため、データ演算部106
には4バイトのストアバッファが備えられている。
バスインターフェイス部107を通してアドレス出力回
路108よりアドレスを出力すると同時に、データ入出
力回路109からデータをCPU外部に出力する。オペ
ランドストアを効率的に行うため、データ演算部106
には4バイトのストアバッファが備えられている。
ジャンプ命令の処理あるいは例外処理等を行って新たな
命令アドレスをデータ演算部106が得た場合は、これ
を命令フェッチ部101とPC計算部103へ出力する
。
命令アドレスをデータ演算部106が得た場合は、これ
を命令フェッチ部101とPC計算部103へ出力する
。
(2,7) r外部バスインターフェイス部」外部バ
スインターフェイス部107は本発明のデータ処理装置
の外部バスでの通信を制御する。メモリのアクセスはす
べてクロック同期で行われ、最小2クロンクサイクル(
1ステツプ)で行うことができる。
スインターフェイス部107は本発明のデータ処理装置
の外部バスでの通信を制御する。メモリのアクセスはす
べてクロック同期で行われ、最小2クロンクサイクル(
1ステツプ)で行うことができる。
メモリに対するアクセス要求は命令フェッチ部101、
オペランドアドレス計算部104及びデータ演算部10
6から独立に生じる。外部バスインターフェイス部10
7はこれらのメモリアクセス要求を調停する。更にメモ
リとcPUとを結ぶデータバスサイズである32ビツト
(1ワード)の整置境界を跨ぐメモリ番地にあるデータ
のアクセスは、このブロック内で自動的にワード境界を
跨くことを検知して2回のメモリアクセスに分解して行
う。
オペランドアドレス計算部104及びデータ演算部10
6から独立に生じる。外部バスインターフェイス部10
7はこれらのメモリアクセス要求を調停する。更にメモ
リとcPUとを結ぶデータバスサイズである32ビツト
(1ワード)の整置境界を跨ぐメモリ番地にあるデータ
のアクセスは、このブロック内で自動的にワード境界を
跨くことを検知して2回のメモリアクセスに分解して行
う。
ブリフェッチするオペランドとストアするオペランドと
が重なる場合のコンフリクト防止処理及びストアオペラ
ンドからフェッチオペランドへのバイパス処理も行う。
が重なる場合のコンフリクト防止処理及びストアオペラ
ンドからフェッチオペランドへのバイパス処理も行う。
(3)「パイプライン機構」
本発明のデータ処理装置のパイプライン処理機能は第1
図に模式的に示される如くである。
図に模式的に示される如くである。
命令のブリフェッチを行う命令フェッチステージ(IP
ステージ)201.命令のデコードを行うデコードステ
ージ(Dステージ)202.オペランドのアドレス計算
を行うオペランドアドレス計算ステージ(Aステージ)
203.マイクロROMアクセス(特にRステージ20
6と呼ぶ)を行う部分とオペランドのブリフェッチ(特
にOFステージ207と称す)を行う部分とからなるオ
ペランドフエ’7チステージ(Fステージ)204.命
令を実行する実行ステージ(Eステージ)205の5段
構成をパイプライン処理の基本とする。
ステージ)201.命令のデコードを行うデコードステ
ージ(Dステージ)202.オペランドのアドレス計算
を行うオペランドアドレス計算ステージ(Aステージ)
203.マイクロROMアクセス(特にRステージ20
6と呼ぶ)を行う部分とオペランドのブリフェッチ(特
にOFステージ207と称す)を行う部分とからなるオ
ペランドフエ’7チステージ(Fステージ)204.命
令を実行する実行ステージ(Eステージ)205の5段
構成をパイプライン処理の基本とする。
Eステージ205では1段のストアバソファがある他、
高機能命令の一部は命令の実行自体をパイプライン化す
るため、実際には5段以上のパイプライン処理効果があ
る。
高機能命令の一部は命令の実行自体をパイプライン化す
るため、実際には5段以上のパイプライン処理効果があ
る。
各ステージは他のステージとは独立に動作し、理論上は
5つのステージが完全に独立動作する。
5つのステージが完全に独立動作する。
各ステージは1回の処理を最小2クロック(1ステツプ
)で行うことができる。従って理想的には2クロツク(
1ステツプ)毎に次々とパイプライン処理が進行する。
)で行うことができる。従って理想的には2クロツク(
1ステツプ)毎に次々とパイプライン処理が進行する。
本発明のデータ処理装置には、メモリーメモリ間演算あ
るいはメモリ間接アドレッシング等の如く1回の基本パ
イプライン処理のみでは処理し得ない命令もあるが、本
発明のデータ処理装置はこれらの処理に対してもなるべ
く均衡のとれたパイプライン処理が行える様に設計され
ている。複数のメモリオペランドを持つ命令に対しては
メモリオペランドの数に基づいてデコード段階で複数の
パイプライン処理単位(ステップコード)に分解してパ
イプライン処理を行う。
るいはメモリ間接アドレッシング等の如く1回の基本パ
イプライン処理のみでは処理し得ない命令もあるが、本
発明のデータ処理装置はこれらの処理に対してもなるべ
く均衡のとれたパイプライン処理が行える様に設計され
ている。複数のメモリオペランドを持つ命令に対しては
メモリオペランドの数に基づいてデコード段階で複数の
パイプライン処理単位(ステップコード)に分解してパ
イプライン処理を行う。
パイプライン処理単位の分解方法に関しては特願昭61
−236456号で詳しく述べられている。
−236456号で詳しく述べられている。
IFステージ201からDステージ202に渡される情
報は、命令コート211そのものである。Dステジ20
2からAステージ203に渡される情報は、命令で指定
された演算に関するもの(Dコード212と称す)と、
オペランドのアドレス計算に関係するもの(へコード2
13と称す)との2つがある。
報は、命令コート211そのものである。Dステジ20
2からAステージ203に渡される情報は、命令で指定
された演算に関するもの(Dコード212と称す)と、
オペランドのアドレス計算に関係するもの(へコード2
13と称す)との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つである。
Bステージ205以外のステージで検出されたEITは
、そのコードがEステージ205に到達する迄はBIT
処理を起動しない。Eステージ205で処理されている
命令のみが実行段階の命令であり、IFステージ201
からFステージ204までの間で処理されている命令は
まだ実行段階に至っていないからである。従って、Eス
テージ205以外で検出されたBITは、それが検出さ
れたことがステップコード中に記録されて次のステージ
に伝えられるのみである。
、そのコードがEステージ205に到達する迄はBIT
処理を起動しない。Eステージ205で処理されている
命令のみが実行段階の命令であり、IFステージ201
からFステージ204までの間で処理されている命令は
まだ実行段階に至っていないからである。従って、Eス
テージ205以外で検出されたBITは、それが検出さ
れたことがステップコード中に記録されて次のステージ
に伝えられるのみである。
(3,1) rパイプライン処理単位」(3,1,1
) r命令コードフィールドの分類」本発明のデータ
処理装置のパイプライン処理単位は命令セントのフォー
マットの特徴を利用して決定されている。
) r命令コードフィールドの分類」本発明のデータ
処理装置のパイプライン処理単位は命令セントのフォー
マットの特徴を利用して決定されている。
+11節で述べた如く、本発明のデータ処理装置の命令
は2バイト単位の可変長命令であり、基本的には″2バ
イトの命令基本部+0〜4バイトのアドレシング拡張部
”を1〜3回反復することにより命令が構成されている
。
は2バイト単位の可変長命令であり、基本的には″2バ
イトの命令基本部+0〜4バイトのアドレシング拡張部
”を1〜3回反復することにより命令が構成されている
。
命令基本部には多くの場合、オペレーションコード部と
アドレッシングモード指定部とがあり、インデノクスア
ドレシノングあるいはメモリ間接アドレッシングが必要
な場合にはアドレッシング拡張部の代わりに“2ハイド
の多段間接モード指定部+0〜4ハイドのアドレッシン
グ拡張部”が任意間付く。また、命令により2または4
ハイドの命令固有の拡張部が最後に付く。
アドレッシングモード指定部とがあり、インデノクスア
ドレシノングあるいはメモリ間接アドレッシングが必要
な場合にはアドレッシング拡張部の代わりに“2ハイド
の多段間接モード指定部+0〜4ハイドのアドレッシン
グ拡張部”が任意間付く。また、命令により2または4
ハイドの命令固有の拡張部が最後に付く。
命令基本部には命令のオペレーションコード、基本アド
レッシングモード、リテラルなどが含まれる。アドレッ
シング拡張部はディスプレースメント、絶対アドレス、
即値、分岐命令の変位のいずれかである。命令固有の拡
張部にはレジスタマツプ、I−format命令の即値
指定等がある。第27図は、本発明のデータ処理装置の
基本的命令フォーマットの特徴を示す模式図である。
レッシングモード、リテラルなどが含まれる。アドレッ
シング拡張部はディスプレースメント、絶対アドレス、
即値、分岐命令の変位のいずれかである。命令固有の拡
張部にはレジスタマツプ、I−format命令の即値
指定等がある。第27図は、本発明のデータ処理装置の
基本的命令フォーマットの特徴を示す模式図である。
(3,1,2) rステップコードへの命令の分解」
本発明のデータ処理装置では、上記の命令フォーマット
の特徴を生かしたパイプライン処理を行う。
本発明のデータ処理装置では、上記の命令フォーマット
の特徴を生かしたパイプライン処理を行う。
Dステージ202でば“2バイトの命令基本部→−0〜
4ハイドのアドレッシング拡張部”、“多段間接モード
指定部子アドレッシング拡張部”又は命令固有の拡張部
を1つのデコード単位として処理する。各回のデコード
結果をステップコードと称し、Aステージ203以降で
はこのステップコードをパイプライン処理の単位として
いる。ステソプコドの数は命令毎に固有であり、多段間
接モード指定を行わない場合は、1つの命令は最小1個
、最大3個のステップコードに分かれる。多段間接モー
ド指定が行われた場合はそれだけステソプコドが増加す
る。但し、これは後で述べる様にデコード段階のみであ
る。
4ハイドのアドレッシング拡張部”、“多段間接モード
指定部子アドレッシング拡張部”又は命令固有の拡張部
を1つのデコード単位として処理する。各回のデコード
結果をステップコードと称し、Aステージ203以降で
はこのステップコードをパイプライン処理の単位として
いる。ステソプコドの数は命令毎に固有であり、多段間
接モード指定を行わない場合は、1つの命令は最小1個
、最大3個のステップコードに分かれる。多段間接モー
ド指定が行われた場合はそれだけステソプコドが増加す
る。但し、これは後で述べる様にデコード段階のみであ
る。
(3,1,3) rプログラムカウンタの管理」本発
明のデータ処理装置のパイプライン上に存在するステッ
プコードは全て別命令に対するものである可能性があり
、このためプログラムカウンタの値はステップコード毎
に管理される。全てのステップコードは、そのステップ
コードのもとになった命令のプログラムカウンタ値を有
する。ステップコードに付属してパイプラインの各ステ
ジを流れるプログラムカウンタ値はステッププログラム
カウンタ(spc) と称する。sPcはパイプライ
ンステージ間を次々と受は渡されていく。
明のデータ処理装置のパイプライン上に存在するステッ
プコードは全て別命令に対するものである可能性があり
、このためプログラムカウンタの値はステップコード毎
に管理される。全てのステップコードは、そのステップ
コードのもとになった命令のプログラムカウンタ値を有
する。ステップコードに付属してパイプラインの各ステ
ジを流れるプログラムカウンタ値はステッププログラム
カウンタ(spc) と称する。sPcはパイプライ
ンステージ間を次々と受は渡されていく。
(3,2) r各パイプラインステージの処理」各パ
イプラインステージの人出カステップコードには第1図
に示したように便宜上名前が付けられている。また、ス
テップコードはオペレーションコードに関する処理を行
い、マイクロプログラムのエントリアドレス及びEステ
ージ205に対するパラメータなどになる系列とEステ
ージ205のマイクロ命令に対するオペランドになる系
列との2系列がある。
イプラインステージの人出カステップコードには第1図
に示したように便宜上名前が付けられている。また、ス
テップコードはオペレーションコードに関する処理を行
い、マイクロプログラムのエントリアドレス及びEステ
ージ205に対するパラメータなどになる系列とEステ
ージ205のマイクロ命令に対するオペランドになる系
列との2系列がある。
(3,2,1) r命令フェッチステージ」命令フェ
ッチステージ(IFステージ)201は命令をメモリあ
るいはブランチバッファからフェッチして命令キュー3
01に入力し、Dステージ202に対して命令コードを
出力する。命令キューの入力は整置された4ハイド単位
で行う。メモリがら命令をフェッチする場合は、整置さ
れた4ハイドにつき最小2クロック(1ステツプ)を要
する。ブランチバッファがヒツトした場合は、整置され
た4バイトにつき1クロツクでフェッチ可能である。
ッチステージ(IFステージ)201は命令をメモリあ
るいはブランチバッファからフェッチして命令キュー3
01に入力し、Dステージ202に対して命令コードを
出力する。命令キューの入力は整置された4ハイド単位
で行う。メモリがら命令をフェッチする場合は、整置さ
れた4ハイドにつき最小2クロック(1ステツプ)を要
する。ブランチバッファがヒツトした場合は、整置され
た4バイトにつき1クロツクでフェッチ可能である。
命令キューの出力単位ば2ハイド毎に可変であり、2ク
ロツクの間に最大6ハイトまで出力できる。
ロツクの間に最大6ハイトまで出力できる。
また、分岐の直後には命令キューをバイパスして命令基
本部2バイトを直接命令デコーダに転送することも可能
である。
本部2バイトを直接命令デコーダに転送することも可能
である。
ブランチバッファへの命令の登録及びクリア等の制御、
ブリフェッチ先の命令のアドレスの管理や命令キューの
制御もIFステージ201で行う。
ブリフェッチ先の命令のアドレスの管理や命令キューの
制御もIFステージ201で行う。
IFステージ201で検出するBITには、命令をメモ
リからフェッチする際のバスアクセス例外あるいはメモ
リ保護違反などによるアドレス変換例外がある。
リからフェッチする際のバスアクセス例外あるいはメモ
リ保護違反などによるアドレス変換例外がある。
(3,2,2) r命令デコードステージ」命令デコ
ードステージ(Dステージ)2o2はIFステージ20
1から入力された命令コードをデコードする。デコード
は命令デコード部102のFIIWデコーダ、NFII
−デコーダ及びアドレッシングモードデコーダを合わせ
た第1デコーダ15を使用して、2クロツク(1ステツ
プ)単位に1度行ない、1回のデコード処理でO〜6バ
イトの命令コードを消費する(RET命令の復帰先アド
レスを含むステップコードの出力処理などでは命令コー
ドを消費しない)。
ードステージ(Dステージ)2o2はIFステージ20
1から入力された命令コードをデコードする。デコード
は命令デコード部102のFIIWデコーダ、NFII
−デコーダ及びアドレッシングモードデコーダを合わせ
た第1デコーダ15を使用して、2クロツク(1ステツ
プ)単位に1度行ない、1回のデコード処理でO〜6バ
イトの命令コードを消費する(RET命令の復帰先アド
レスを含むステップコードの出力処理などでは命令コー
ドを消費しない)。
1回のデコードでAステージ203に対してアドレス計
算情報としてのAコード213である制御コードとアド
レス修飾情報と、オペレーションコードの中間デコード
結果としてのDコード212である制御コードと8ビツ
トのリテラル情報とを出力する。この際、デコーダ結果
の一部は中間コード16としてランチ回路17にラッチ
される。このラッチ回路17にラッチされた中間コード
16は再度第1デコーダ15に与えられる。
算情報としてのAコード213である制御コードとアド
レス修飾情報と、オペレーションコードの中間デコード
結果としてのDコード212である制御コードと8ビツ
トのリテラル情報とを出力する。この際、デコーダ結果
の一部は中間コード16としてランチ回路17にラッチ
される。このラッチ回路17にラッチされた中間コード
16は再度第1デコーダ15に与えられる。
Dステージ202では、各命令のPC計算部103の制
御、分岐予測処理、プリブランチ命令に対するプリブラ
ンチ処理、命令キューからの命令コード出力処理をも行
う。
御、分岐予測処理、プリブランチ命令に対するプリブラ
ンチ処理、命令キューからの命令コード出力処理をも行
う。
Dステージ202で検出するEITには、予約命令例外
及びプリブランチ時の奇数アドレスジャンプトラップが
ある。また、IPステージ201より転送されてきた各
種E■Tはステップコード内にエンコードする処理をし
てAステージ203に転送する。
及びプリブランチ時の奇数アドレスジャンプトラップが
ある。また、IPステージ201より転送されてきた各
種E■Tはステップコード内にエンコードする処理をし
てAステージ203に転送する。
(3,2,3) rオペランドアドレス計算ステージ
」オペランドアドレス計算ステージ(へステージ)20
3は処理機能が大きく2つに分かれる。1つは命令デコ
ード部102の第2デコーダを使用してオペレーション
コードの後段デコードを行う処理で、他方はオペランド
アドレス計算部104でオペランドアドレスの計算を行
う処理である。
」オペランドアドレス計算ステージ(へステージ)20
3は処理機能が大きく2つに分かれる。1つは命令デコ
ード部102の第2デコーダを使用してオペレーション
コードの後段デコードを行う処理で、他方はオペランド
アドレス計算部104でオペランドアドレスの計算を行
う処理である。
オペレーションコードの後段デコード処理はDコード2
12を入力とし、レジスタ、メモリの書込み予約及びマ
イクロプログラムのエントリアドレスとマイクロプログ
ラムに対するパラメータなどを含むRコード214の出
力を行う。なお、レジスタあるいはメモリの書込み予約
はレジスタ書込み予約部18により行われるが、アドレ
ス計算で参照したレジスタやメモリの内容がパイプライ
ン上を先行する命令で書換えられることにより誤ったア
ドレス計算が行われるのを防ぐためのものである。
12を入力とし、レジスタ、メモリの書込み予約及びマ
イクロプログラムのエントリアドレスとマイクロプログ
ラムに対するパラメータなどを含むRコード214の出
力を行う。なお、レジスタあるいはメモリの書込み予約
はレジスタ書込み予約部18により行われるが、アドレ
ス計算で参照したレジスタやメモリの内容がパイプライ
ン上を先行する命令で書換えられることにより誤ったア
ドレス計算が行われるのを防ぐためのものである。
レジスタあるいはメモリの書込み予約はデッドロックを
避けるため、ステップコード毎ではなく命余録に行う。
避けるため、ステップコード毎ではなく命余録に行う。
レジスタ及びメモリへの書込み予約については特願昭6
2−144394号で詳しく述べられている。
2−144394号で詳しく述べられている。
オペランドアドレス計算処理はAコード213を入力と
し、Aコード213に従いオペランドアドレス計算部1
04で加算あるいはメモリ間接参照を組み合わせてアド
レス計算を行い、その計算結果をFコード215として
出力する。この際、アドレス計算に伴うレジスタ及びメ
モリの読み出し時にコンフリクトチエツクを行い、先行
命令がレジスタあるいはメモリに書込み処理を終了して
いないためコンフリクトが指示されれば、先行命令がE
ステージ205で書込み処理を終了するまで待つ。また
、オペランドアドレス及びメモリ間接参照のアドレスが
メモリにマツプされたI10領域に入るが否かのチエツ
クも行う。
し、Aコード213に従いオペランドアドレス計算部1
04で加算あるいはメモリ間接参照を組み合わせてアド
レス計算を行い、その計算結果をFコード215として
出力する。この際、アドレス計算に伴うレジスタ及びメ
モリの読み出し時にコンフリクトチエツクを行い、先行
命令がレジスタあるいはメモリに書込み処理を終了して
いないためコンフリクトが指示されれば、先行命令がE
ステージ205で書込み処理を終了するまで待つ。また
、オペランドアドレス及びメモリ間接参照のアドレスが
メモリにマツプされたI10領域に入るが否かのチエツ
クも行う。
Aステージ203で検出するBITには予約命令例外、
特権命令例外、ハスアクセス例外、アドレス変換例外、
メモリ間接アドレッシングの時のオペランドブレイクポ
イントヒントによるデバソグトラソブがある。Dコード
212又はAコード213自体がEITを起こしたこと
を示していれば、Aステージ203はそのコードに対し
てアドレス計算処理をせず、そのEITをRコード21
4及びFコード215に伝える。
特権命令例外、ハスアクセス例外、アドレス変換例外、
メモリ間接アドレッシングの時のオペランドブレイクポ
イントヒントによるデバソグトラソブがある。Dコード
212又はAコード213自体がEITを起こしたこと
を示していれば、Aステージ203はそのコードに対し
てアドレス計算処理をせず、そのEITをRコード21
4及びFコード215に伝える。
(3,2,4) rマイクロROMアクセスステージ
」オペランドフェッチステージ(Fステージ)2o4も
処理が大きく2つに分かれる。一方はマイクロROMの
アクセス処理であり、特にRステージ206と称する。
」オペランドフェッチステージ(Fステージ)2o4も
処理が大きく2つに分かれる。一方はマイクロROMの
アクセス処理であり、特にRステージ206と称する。
他方はオペランドプリフェッチ処理であり、特にOFス
テージ207と称する。Rステージ206とOFステー
ジ207とは必ずしも同時に動作するわけではなく、メ
モリアクセス権が獲得できるが否が等に依存して独立に
動作する。
テージ207と称する。Rステージ206とOFステー
ジ207とは必ずしも同時に動作するわけではなく、メ
モリアクセス権が獲得できるが否が等に依存して独立に
動作する。
Rステージ206の処理であるマイクロROMアクセス
処理は、Rコード214に対して次のEステージ205
での実行に使用する実行制御コードであるEコード21
6を生成するためのマイクロ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コード21
6を生成するためのマイクロROMアクセスとマイクロ
命令デコード処理である。1つのRコード214に対す
る処理が2つ以上のマイクロプログラムステップに分解
される場合、マイクロROMはEステージ205で使用
され、次のRコード214はマイクロROMアクセス待
ちになる。Rニド214に対するマイクロROMアクセ
スが行われるのは、その前のEステージ205での最後
のマイクロ命令実行の時である。本発明のデータ処理装
置では、はとんどの基本命令は1マイクロプログラムス
テ、プで行われるため、実際にはRコート214に対す
るマイクロROMアクセスが次りと行われることが多い
。
Rステージ206で新たに検出するBITはない。
Rコード214が命令処理再実行型のEITを示してい
る時は、その旧T処理に対するマイクロプログラムが実
行されるので、Rステージ206はそのRコード214
に従ったマイクロ命令をフェッチする。
る時は、その旧T処理に対するマイクロプログラムが実
行されるので、Rステージ206はそのRコード214
に従ったマイクロ命令をフェッチする。
Rコード214が奇数アドレスジャンプトラップを示し
ている場合、Rステージ206はそれをEコド216に
よって伝える。これはプリブランチに対するもので、E
ステージ205ではそのEコード216で分岐が生じな
ければそのプリブランチを有効として奇数アドレスジャ
ンプトラップを発生ずる。
ている場合、Rステージ206はそれをEコド216に
よって伝える。これはプリブランチに対するもので、E
ステージ205ではそのEコード216で分岐が生じな
ければそのプリブランチを有効として奇数アドレスジャ
ンプトラップを発生ずる。
(3,2,5) rオペランドフェッチステージ」オ
ペランドフェッチステージ(OFステージ)207はF
ステージ204で行う上記の2つの処理の内のオペラン
ドプリフェッチ処理を行う。
ペランドフェッチステージ(OFステージ)207はF
ステージ204で行う上記の2つの処理の内のオペラン
ドプリフェッチ処理を行う。
オペランドプリフェッチはFコード215を入力とし、
フェッチしたオペランドとそのアドレスをSコード21
7として出力する。1つのFコード215ではワード境
界を跨いでも良いが4ハイド以下のオペランドフェッチ
を指定する。Fコード215にはオペランドのアクセス
を行うか否かの指定も含まれており、Aステージ203
で計算したオペランドアドレス自体あるいは即値をEス
テージ205に転送する場合にはオペランドプリフェッ
チは行わず、Fコード215の内容をSコード217と
して転送する。プリフェッチしようとするオペランドと
、Eステージ205が書込み処理を行おうとするオペラ
ンドとが一致する場合は、オペランドプリフェッチはメ
モリから行わずバイパスして行う。また、T10領域に
対してはオペランドプリフェッチを遅延させ、先行命令
がすべて完了するまで待ってオペランドフェッチを行う
。
フェッチしたオペランドとそのアドレスをSコード21
7として出力する。1つのFコード215ではワード境
界を跨いでも良いが4ハイド以下のオペランドフェッチ
を指定する。Fコード215にはオペランドのアクセス
を行うか否かの指定も含まれており、Aステージ203
で計算したオペランドアドレス自体あるいは即値をEス
テージ205に転送する場合にはオペランドプリフェッ
チは行わず、Fコード215の内容をSコード217と
して転送する。プリフェッチしようとするオペランドと
、Eステージ205が書込み処理を行おうとするオペラ
ンドとが一致する場合は、オペランドプリフェッチはメ
モリから行わずバイパスして行う。また、T10領域に
対してはオペランドプリフェッチを遅延させ、先行命令
がすべて完了するまで待ってオペランドフェッチを行う
。
叶ステージ207で検出されるHITには、ハスアクセ
ス例外、アドレス変換例外、オペランドプリフェッチに
対するブレイクポイントヒノ1−によるデバッグトラン
プがある。Fコード215がデバッグトランプ以外のB
ITを示している時は、それをSコード217に転送し
、オペランドプリフェッチは行わない。Fコード215
がデバッグトランプを示している時は、そのFコード2
15に対してEITを示していない場合と同じ処理をす
ると共にデバッグトランプをSコード217に伝える。
ス例外、アドレス変換例外、オペランドプリフェッチに
対するブレイクポイントヒノ1−によるデバッグトラン
プがある。Fコード215がデバッグトランプ以外のB
ITを示している時は、それをSコード217に転送し
、オペランドプリフェッチは行わない。Fコード215
がデバッグトランプを示している時は、そのFコード2
15に対してEITを示していない場合と同じ処理をす
ると共にデバッグトランプをSコード217に伝える。
(3,2,6) r実行ステージj
実行ステージ(Eステージ)205ばEコード216及
びSコード217を入力として動作する。このEステー
ジ205が命令を実行するステージであり、Fステージ
204以前のステージで行われた処理は全てEステージ
205のための前処理である。Eステージ205でジャ
ンプ命令が実行されたり、あるいはBIT処理が起動さ
れたりした場合は、IFステジ201からFステージ2
04までの処理は全て無効化される。Eステージ205
はマイクロプログラムにより制御され、Rコード214
に示されたマイクロプログラムのエントリアドレスから
の一連のマイクロプログラムを実行することにより命令
を実行する。
びSコード217を入力として動作する。このEステー
ジ205が命令を実行するステージであり、Fステージ
204以前のステージで行われた処理は全てEステージ
205のための前処理である。Eステージ205でジャ
ンプ命令が実行されたり、あるいはBIT処理が起動さ
れたりした場合は、IFステジ201からFステージ2
04までの処理は全て無効化される。Eステージ205
はマイクロプログラムにより制御され、Rコード214
に示されたマイクロプログラムのエントリアドレスから
の一連のマイクロプログラムを実行することにより命令
を実行する。
マイクロROMの読み出しとマイクロ命令の実行とはパ
イプライン化されて行われる。従ってマイクロプログラ
ムで分岐が起きた場合は、1マイクロステツプの空きが
できる。また、Eステージ205はデータ演算部106
にあるストアバッファを利用して、4バイト以内のオペ
ランドストアと次のマイクロ命令実行をパイプライン処
理することもできる。
イプライン化されて行われる。従ってマイクロプログラ
ムで分岐が起きた場合は、1マイクロステツプの空きが
できる。また、Eステージ205はデータ演算部106
にあるストアバッファを利用して、4バイト以内のオペ
ランドストアと次のマイクロ命令実行をパイプライン処
理することもできる。
Eステージ205では、Aステージ203で行ったレジ
スタ及びメモリに対する書込み予約をオペランドの書込
み後に解除する。
スタ及びメモリに対する書込み予約をオペランドの書込
み後に解除する。
また、条件分岐命令がEステージ205で分岐を発した
場合は、その条件分岐命令に対する分岐予測が誤ってい
たのであるから、分岐履歴の書換えを行う。
場合は、その条件分岐命令に対する分岐予測が誤ってい
たのであるから、分岐履歴の書換えを行う。
Eステージ205で検出されるBIT には、ハスアク
セス例外、アドレス変換例外、デバッグ1−ランプ、奇
数アドレスジャンプトラップ、予約機能例外、不正オペ
ランド例外、予約スタックフォーマント例外、ゼロ除算
トラップ、無条件トラップ、条件トラップ、遅延コンテ
キス1−トラップ、外部割込、遅延割込、リセット割込
、システム障害がある。
セス例外、アドレス変換例外、デバッグ1−ランプ、奇
数アドレスジャンプトラップ、予約機能例外、不正オペ
ランド例外、予約スタックフォーマント例外、ゼロ除算
トラップ、無条件トラップ、条件トラップ、遅延コンテ
キス1−トラップ、外部割込、遅延割込、リセット割込
、システム障害がある。
Eステージ205で検出されたBITは全てBIT処理
されるが、Eステージ以前のIFステージ201からF
ステージ204の間で検出され、Rコード214あるい
はSコード217に反映されているBITは必すしもE
I丁処理されるとは限らない。IPステージ20]から
Fステージ204の間で検出されたが、先行の命令がE
ステージ205でジャンプ命令が実行されたなどの原因
でEステージ205まで到達しなかったBITは全てキ
ャンセルされる。そのBITを起こした命令はそもそも
実行されなかったことになる。
されるが、Eステージ以前のIFステージ201からF
ステージ204の間で検出され、Rコード214あるい
はSコード217に反映されているBITは必すしもE
I丁処理されるとは限らない。IPステージ20]から
Fステージ204の間で検出されたが、先行の命令がE
ステージ205でジャンプ命令が実行されたなどの原因
でEステージ205まで到達しなかったBITは全てキ
ャンセルされる。そのBITを起こした命令はそもそも
実行されなかったことになる。
外部割込及び遅延割込は命令の切れ目でEステジ205
に直接受は付けられ、マイクロプログラムにより必要な
処理が実行される。その他の各種EITの処理はマイク
ロプログラムにより行われる。
に直接受は付けられ、マイクロプログラムにより必要な
処理が実行される。その他の各種EITの処理はマイク
ロプログラムにより行われる。
(3,31r各パイプラインステージの状態制御」パイ
プラインの各ステージは入力ランチと出力ラッチとを有
し、他のステージとは独立に動作することを基本とする
。各ステージは1つ前に行った処理が終わり、その処理
結果を出力ラッチから次のステージの入力ランチに転送
し、自分のステージの入力ランチに次の処理に必要な入
力信号がすべて揃えば次の処理を開始する。
プラインの各ステージは入力ランチと出力ラッチとを有
し、他のステージとは独立に動作することを基本とする
。各ステージは1つ前に行った処理が終わり、その処理
結果を出力ラッチから次のステージの入力ランチに転送
し、自分のステージの入力ランチに次の処理に必要な入
力信号がすべて揃えば次の処理を開始する。
つまり各ステージは、1つ前段のステージから出力され
てくる次の処理に対する入力信号が全て有効となり、今
の処理結果を後段のステージの入力ランチに転送して出
力ランチが空になると次の処理を開始する。
てくる次の処理に対する入力信号が全て有効となり、今
の処理結果を後段のステージの入力ランチに転送して出
力ランチが空になると次の処理を開始する。
各ステージが動作を開始する1つ前のクロックタイミン
グで入力信号が全て揃っている必要がある。入力信号が
揃っていない場合、そのステージは待ち状態(入力待ち
)になる。出力ラッチから次のステージの入力ランチへ
の転送を行う場合には次のステージの入力ランチが空き
状態になっている必要があり、次のステージの入力ラン
チが空きでない場合もパイプラインステージは待ち状態
(出力待ち)になる。必要なメモリアクセス権が獲得で
きなかったり、処理しているメモリアクセスにウェイト
が挿入されたり、その他のパイプラインコンフリクトが
生しると各ステージの処理自体が遅延する。
グで入力信号が全て揃っている必要がある。入力信号が
揃っていない場合、そのステージは待ち状態(入力待ち
)になる。出力ラッチから次のステージの入力ランチへ
の転送を行う場合には次のステージの入力ランチが空き
状態になっている必要があり、次のステージの入力ラン
チが空きでない場合もパイプラインステージは待ち状態
(出力待ち)になる。必要なメモリアクセス権が獲得で
きなかったり、処理しているメモリアクセスにウェイト
が挿入されたり、その他のパイプラインコンフリクトが
生しると各ステージの処理自体が遅延する。
(3,4) rレジスクコンフリクトチェソク」本発
明のデータ処理装置では次のようにしてレジスタのコン
フリクトによる誤動作を回避している。
明のデータ処理装置では次のようにしてレジスタのコン
フリクトによる誤動作を回避している。
本発明のデータ処理装置では、処理中のステップコード
を含めて各ステップコードに対応させて16ビツトのフ
ラグを設けている。これら16ビノトのフラグは16個
の汎用レジスタにそれぞれ対応している。
を含めて各ステップコードに対応させて16ビツトのフ
ラグを設けている。これら16ビノトのフラグは16個
の汎用レジスタにそれぞれ対応している。
Aステージ203では、オペランドアドレスの計算の結
果、実行ステージ205まで処理が進んだ際に書換えを
行う可能性のあるレジスタに関して書込み予約を行う。
果、実行ステージ205まで処理が進んだ際に書換えを
行う可能性のあるレジスタに関して書込み予約を行う。
1回の書込み予約処理では、任意の1つの汎用レジスタ
、全汎用レジスタ、 ROR4,SP、SPとFP (
フレームポインタ)の5通りの書込み予約が可能である
。書込み予約処理により書込む可(資)性のあるレジス
タに夕4応するフラグが“1”にセットされる。このフ
ラグ群がステップコートの転送に同期して転送される。
、全汎用レジスタ、 ROR4,SP、SPとFP (
フレームポインタ)の5通りの書込み予約が可能である
。書込み予約処理により書込む可(資)性のあるレジス
タに夕4応するフラグが“1”にセットされる。このフ
ラグ群がステップコートの転送に同期して転送される。
実行ステージ205でレジスタへの書込み処理が終了す
るとフラグは“0″にクリアされる。
るとフラグは“0″にクリアされる。
アドレス計算時にレジスタを参照する場合は、参照する
レジスタに対するフラグ群が“0”になっているか否か
をチエツクする。この処理がレジスタコンフリクトチエ
ツク処理である。
レジスタに対するフラグ群が“0”になっているか否か
をチエツクする。この処理がレジスタコンフリクトチエ
ツク処理である。
参照しようとするレジスタに対するフラグが“1”であ
るならば、先行するステップコードの処理により参照す
べきレジスタの値が書換えられる可能性があることを示
しており、コンフリクトが起こっていることが示される
。参照しようとするレジスタに対するフラグが”0”で
あるならば、先行するステップコードの処理により参照
すべきレジスタの値が書換わらないことを保証しており
、アドレス計算においてレジスタの参照が可能となる。
るならば、先行するステップコードの処理により参照す
べきレジスタの値が書換えられる可能性があることを示
しており、コンフリクトが起こっていることが示される
。参照しようとするレジスタに対するフラグが”0”で
あるならば、先行するステップコードの処理により参照
すべきレジスタの値が書換わらないことを保証しており
、アドレス計算においてレジスタの参照が可能となる。
Aステージ203はレジスタに関してコンフリクトが生
していることが検出された場合には、コンフリクトが解
消されるまでこのステージでの処理の開始を遅らセる。
していることが検出された場合には、コンフリクトが解
消されるまでこのステージでの処理の開始を遅らセる。
(3,5) rMULX、 DIVX命令の処理」M
ULX、 DIVX命令は多倍長演算命令である。これ
らの命令のビット割り付けを第28図に示す。
ULX、 DIVX命令は多倍長演算命令である。これ
らの命令のビット割り付けを第28図に示す。
MULX、 DIVX命令はアドレシノジングモードで
多段間接モードが用いられなければ、3つのステップコ
ードに分解さた」二でパイプライン処理される。
多段間接モードが用いられなければ、3つのステップコ
ードに分解さた」二でパイプライン処理される。
演算結果は命令コード中の第2ハーフワード(33と3
4)内の2つの書込みレジスタ指定フィールドで示され
るレジスタ(デスティネーション指定がメモリの場合は
レジスタとメモリ〉に格納される。
4)内の2つの書込みレジスタ指定フィールドで示され
るレジスタ(デスティネーション指定がメモリの場合は
レジスタとメモリ〉に格納される。
第29図のフローチャートに本発明の特徴を表すAステ
ージ203での処理手順を示す。
ージ203での処理手順を示す。
Aステージ203ではステージ内で処理するために必要
なりコード212. Aコード213が入カラノチに揃
うまで待機状態となり、両コードが揃うと処理を始める
。
なりコード212. Aコード213が入カラノチに揃
うまで待機状態となり、両コードが揃うと処理を始める
。
レジスタ書込み予約部18はアドレス計算コンフリクト
のチエツクを行い、コンフリクトが生じればAステージ
203での処理をやりなおす。コンフリクトが生しない
場合(もしくは解消された場合)は、Aコード213の
指示によりアドレスδ1算を行ってFコード215を生
成する。
のチエツクを行い、コンフリクトが生じればAステージ
203での処理をやりなおす。コンフリクトが生しない
場合(もしくは解消された場合)は、Aコード213の
指示によりアドレスδ1算を行ってFコード215を生
成する。
一方、Dコード212をDステージ202から入力して
第2デコーダで命令デコード処理を行ってRコード21
4を生成する。Dコード212内にレジスタ書込み予約
の情報が含まれていれば、レジスタ書込み予約部18で
解析してレジスタ書込み予約を行う。
第2デコーダで命令デコード処理を行ってRコード21
4を生成する。Dコード212内にレジスタ書込み予約
の情報が含まれていれば、レジスタ書込み予約部18で
解析してレジスタ書込み予約を行う。
Aステージ203で生成したRコード214. Fコー
ド215を出力するかしないかの判定を行い、出力する
場合はFステージ204の入カラソチが空いているかど
うか否かを見て、空いていれば入力ラソチヘRコード2
14. Fコード215を転送して処理を終了する。出
力しないと判定した場合はRコード214またはFコー
ド215が無効であることを指示する信号を次のステー
ジへ出力し、Fステージ204の入力ラノチには取込ま
せない。
ド215を出力するかしないかの判定を行い、出力する
場合はFステージ204の入カラソチが空いているかど
うか否かを見て、空いていれば入力ラソチヘRコード2
14. Fコード215を転送して処理を終了する。出
力しないと判定した場合はRコード214またはFコー
ド215が無効であることを指示する信号を次のステー
ジへ出力し、Fステージ204の入力ラノチには取込ま
せない。
以下の説明では、ソースとしてメモリを、デスティネー
ションとしてレジスタをそれぞれ用いる場合のMIIL
X命令の処理について述べる。ただし、多段間接モード
は用いられていないものとする。
ションとしてレジスタをそれぞれ用いる場合のMIIL
X命令の処理について述べる。ただし、多段間接モード
は用いられていないものとする。
各ステップコードにおける処理の概要を以下に示す。
第1ステップコード:ソースオペランドのアドレスを計
算し、メモ リからオペランドをフ エッチし、ワーキング レジスタに待避させる。
算し、メモ リからオペランドをフ エッチし、ワーキング レジスタに待避させる。
第2ステップコード:1つ目のレジスタの書込み予約を
行う。
行う。
第3ステンブコード:デスティネーションオペランドの
レジスタを 指定し、拡張乗算命令 の指示を行い、演算終 1後レジスタ予約を解 除する。
レジスタを 指定し、拡張乗算命令 の指示を行い、演算終 1後レジスタ予約を解 除する。
なお第3ステツプコードについては、デスティネーショ
ンオペランドのアドレシソシングモードがレジスタ直接
モードである時を考えているので、2つ目の書込みレジ
スタの予約を含んでいる。
ンオペランドのアドレシソシングモードがレジスタ直接
モードである時を考えているので、2つ目の書込みレジ
スタの予約を含んでいる。
まず、第1ステツプコードに関する処理について、各ス
テージでの処理を示す第30図(alのフローチャート
を参照して説明する。
テージでの処理を示す第30図(alのフローチャート
を参照して説明する。
Dステージ202は命令コードの第1ハーフワード(3
1と32)を取込み、デコードする。そして、第1ステ
ツプコードを示すDコード212とAコード213とを
Aステージ203へ転送する。Aステジ203ではDコ
ード212を入力として2段目のデコード処理を行い、
Rコード214を生成しFステージ204へ転送する。
1と32)を取込み、デコードする。そして、第1ステ
ツプコードを示すDコード212とAコード213とを
Aステージ203へ転送する。Aステジ203ではDコ
ード212を入力として2段目のデコード処理を行い、
Rコード214を生成しFステージ204へ転送する。
また、Aコード213の指示によりソースオペランドの
アドレス計算を行い、計算結果のアドレス情報をFコー
ド215としてFステージ204へ転送する。Fステー
ジ204ではRコード214を入力としてマイクロ命令
の読出し及びマイクロ命令のデコードを行い、Eコード
216を生成してEステージ205へ転送する。また、
Fコード215の指示によりオペランドをフェッチし、
フェッチしたオペランドをSコード217としてEステ
ージ205へ転送する。Eステージ205ではEコード
216の指示によりSコード217中のソースオペラン
ドの値ををワーキングレジスタに待避させる。
アドレス計算を行い、計算結果のアドレス情報をFコー
ド215としてFステージ204へ転送する。Fステー
ジ204ではRコード214を入力としてマイクロ命令
の読出し及びマイクロ命令のデコードを行い、Eコード
216を生成してEステージ205へ転送する。また、
Fコード215の指示によりオペランドをフェッチし、
フェッチしたオペランドをSコード217としてEステ
ージ205へ転送する。Eステージ205ではEコード
216の指示によりSコード217中のソースオペラン
ドの値ををワーキングレジスタに待避させる。
次に、第2ステツプコードに関する処理について、各ス
テージでの処理を示す第30図(blのフローチャート
を参照して説明する。
テージでの処理を示す第30図(blのフローチャート
を参照して説明する。
Dステージ202は命令コードの第2ハーフワード(3
3と34)を取り込み、デコードを行う。この時に、レ
ジスタ(フィールド33で示されるレジスタ)の書込み
予約の情報を持っDコード212を第2ステツプコード
としてAステージ203へ転送する。デコード結果の一
部は中間コード16としてDステージ202内のランチ
回路17に保持されている。
3と34)を取り込み、デコードを行う。この時に、レ
ジスタ(フィールド33で示されるレジスタ)の書込み
予約の情報を持っDコード212を第2ステツプコード
としてAステージ203へ転送する。デコード結果の一
部は中間コード16としてDステージ202内のランチ
回路17に保持されている。
またアドレッシングモードデコーダの入力側及びDコー
ド212. Aコード213を生成するためのフィール
ド切出し部の入力側にはランチが設けてあり、オペレー
ションコードの内の第3ステンプコードの生成に必要な
情報が保持されている。Aステージ203では転送され
てきたDコード212の指示により、拡張乗算命令実行
結果の上位桁(DIVX命令の場合は拡張除算命令実行
結果の剰余)を格納するレジスタの書込み予約を行う。
ド212. Aコード213を生成するためのフィール
ド切出し部の入力側にはランチが設けてあり、オペレー
ションコードの内の第3ステンプコードの生成に必要な
情報が保持されている。Aステージ203では転送され
てきたDコード212の指示により、拡張乗算命令実行
結果の上位桁(DIVX命令の場合は拡張除算命令実行
結果の剰余)を格納するレジスタの書込み予約を行う。
この際、Aステージ203からFステージ204へのR
コード214の出力については、第2デコーダによるデ
コードの結果、出力しないと判断してRコード214の
無効を指示する信号をFステージ204へ出力し、Fス
テージ204の大カラソチにはRコード214を取込ま
せない。従って第2のステップコードはAステージ20
3で吸収された形となる。
コード214の出力については、第2デコーダによるデ
コードの結果、出力しないと判断してRコード214の
無効を指示する信号をFステージ204へ出力し、Fス
テージ204の大カラソチにはRコード214を取込ま
せない。従って第2のステップコードはAステージ20
3で吸収された形となる。
最後に、第3のステップコードに関する処理について、
各ステージでの処理を示す第30図FC+のフローチャ
ートを参照して説明する。
各ステージでの処理を示す第30図FC+のフローチャ
ートを参照して説明する。
Dステージ202ではIFステージ201から命令コー
ド211の取込みは行わず、ラッチ17に保持しておい
た中間コード16をデコードし、アドレッシングモード
デコーダもラッチの内容を用いてデコードし、各フィー
ルドの切出しもラッチの内容を用いて処理し、第3ステ
ツプコードを示すDコード212及びAコード213を
生成してAステージ203へ転送する。Aステージ20
3では、Dコード212を入力として2段目のデコード
処理を行い、デスティネーションレジスタ指定の情報を
有するRコード214を生成してFステージ204へ転
送する。
ド211の取込みは行わず、ラッチ17に保持しておい
た中間コード16をデコードし、アドレッシングモード
デコーダもラッチの内容を用いてデコードし、各フィー
ルドの切出しもラッチの内容を用いて処理し、第3ステ
ツプコードを示すDコード212及びAコード213を
生成してAステージ203へ転送する。Aステージ20
3では、Dコード212を入力として2段目のデコード
処理を行い、デスティネーションレジスタ指定の情報を
有するRコード214を生成してFステージ204へ転
送する。
更にAステージ203では、拡張乗算命令実行結果の下
位桁(DIVX命令の場合は拡張除算命令実行結果の商
)を格納するレジスタの書込み予約を行う。
位桁(DIVX命令の場合は拡張除算命令実行結果の商
)を格納するレジスタの書込み予約を行う。
Fステージ204はRコード214を入力としてマイク
ロ命令の読出し及びマイクロ命令のデコードを行ってE
コード226を生成し、Eステージ205へ転送する。
ロ命令の読出し及びマイクロ命令のデコードを行ってE
コード226を生成し、Eステージ205へ転送する。
Eステージ205はEコード216の指示により拡張乗
算命令を実行する。演算実行結果はデスティネーション
で指定された2つのレジスタに格納され、レジスタの書
込み予約が解除される。
算命令を実行する。演算実行結果はデスティネーション
で指定された2つのレジスタに格納され、レジスタの書
込み予約が解除される。
以上、デスティネーションオペランドのアドレシノシン
グモードがレジスタ直接モードの場合について述べた。
グモードがレジスタ直接モードの場合について述べた。
これに対してオペランドがメモリ上にある場合には、第
3ステンブコードでレジスタの書き込み予約を行う必要
がないので第2ステツプコードを生成する必要はないが
、ハードウェア上の処理を簡略化する目的で、レジスタ
直接モードの場合と同様に第2.第3ステツプコードと
も生成される。また、多段間接モードが用いられた場合
には指定された段数骨だけDステージ202でステップ
コードが生成される。
3ステンブコードでレジスタの書き込み予約を行う必要
がないので第2ステツプコードを生成する必要はないが
、ハードウェア上の処理を簡略化する目的で、レジスタ
直接モードの場合と同様に第2.第3ステツプコードと
も生成される。また、多段間接モードが用いられた場合
には指定された段数骨だけDステージ202でステップ
コードが生成される。
このように本発明のデータ処理装置では1回のデコード
処理対象となる命令基本部の中に書込みを行う汎用レジ
スタ指定が2つある場合、各レジスタの書込み予約情報
を含む2つのステップコードがDステージ202で生成
され、Aステージ203で各レジスタの書き込み予約が
行われる。また、Aステージ203ではEステージ20
5で処理されるステップコードの削減を計るため、予約
のみを行うステップコードは吸収されて、ステソプコー
ドとしでは出力されない。これは、1つのステップコー
ドに対してEステージ205が長時間処理を行う場合(
?1tlL等を実行中の場合)に有効である。
処理対象となる命令基本部の中に書込みを行う汎用レジ
スタ指定が2つある場合、各レジスタの書込み予約情報
を含む2つのステップコードがDステージ202で生成
され、Aステージ203で各レジスタの書き込み予約が
行われる。また、Aステージ203ではEステージ20
5で処理されるステップコードの削減を計るため、予約
のみを行うステップコードは吸収されて、ステソプコー
ドとしでは出力されない。これは、1つのステップコー
ドに対してEステージ205が長時間処理を行う場合(
?1tlL等を実行中の場合)に有効である。
[発明の勿J果]
以−4二に説明した如く本発明のデータ処理装置によれ
ば、多倍長演算命令のように1つの命令デコド処理単位
となる命令コード中に2つの書込みレジスタ指定フィー
ルドが含まれている場合は、それぞれのレジスタ指定フ
ィールドを含むステップコードに分けることにより2つ
のレジスフ書き込み予約処理を別々のパイプライン処理
単位として実行しているので、レジスタ予約のためのデ
コダを2つ設ける必要がないというハードウェア削減の
効果があり、更にオペランドアドレス計算ステージにお
いてレジスタの書込み予約のみを行うステップコードは
吸収されるため、実行ステージで処理されるステップコ
ードの数が削減され、これによりステップコードが実行
ステージを占有する時間が削減されるため、データ処理
が高速化される。
ば、多倍長演算命令のように1つの命令デコド処理単位
となる命令コード中に2つの書込みレジスタ指定フィー
ルドが含まれている場合は、それぞれのレジスタ指定フ
ィールドを含むステップコードに分けることにより2つ
のレジスフ書き込み予約処理を別々のパイプライン処理
単位として実行しているので、レジスタ予約のためのデ
コダを2つ設ける必要がないというハードウェア削減の
効果があり、更にオペランドアドレス計算ステージにお
いてレジスタの書込み予約のみを行うステップコードは
吸収されるため、実行ステージで処理されるステップコ
ードの数が削減され、これによりステップコードが実行
ステージを占有する時間が削減されるため、データ処理
が高速化される。
第1図は本発明を適用したデータ処理装置のパイプライ
ン処理機構の構成を示すブロック図、第2図は本発明の
データ処理装置の構成を示すブロック図、第3図〜第2
7図は本発明のデータ処理装置の命令フォーマットを示
す模式図、第28図はMULX、 DIVX命令の命令
ビット割付を示す模式図、第29図はAステージの動作
手順を示すフローチャート、第30図は多倍長演算命令
実行の各ステップコードの各ステージでの処理手頃を示
すフローチャト、第31図は従来のパイプライン処理機
構の構成を示すブロック図である。 15・・・デコーダ 16・・・中間コード 18
・・・レジスタ書込み予約部 102・・・命令デコー
ド部 104・・オペランドアドレス計算部 106・
・・データ演算部 202・・・命令デコードステージ
203・・・オペランドアドレス計算ステージ 20
5・・・命令実行ステジ なお、各図中同一符号は同−又は相当部分を示す。
ン処理機構の構成を示すブロック図、第2図は本発明の
データ処理装置の構成を示すブロック図、第3図〜第2
7図は本発明のデータ処理装置の命令フォーマットを示
す模式図、第28図はMULX、 DIVX命令の命令
ビット割付を示す模式図、第29図はAステージの動作
手順を示すフローチャート、第30図は多倍長演算命令
実行の各ステップコードの各ステージでの処理手頃を示
すフローチャト、第31図は従来のパイプライン処理機
構の構成を示すブロック図である。 15・・・デコーダ 16・・・中間コード 18
・・・レジスタ書込み予約部 102・・・命令デコー
ド部 104・・オペランドアドレス計算部 106・
・・データ演算部 202・・・命令デコードステージ
203・・・オペランドアドレス計算ステージ 20
5・・・命令実行ステジ なお、各図中同一符号は同−又は相当部分を示す。
Claims (1)
- 【特許請求の範囲】 1、命令をデコードする命令デコードステージを含む複
数のステージにより命令をパイプライン処理する機構を
備えたデータ処理装置において、 前記命令デコードステージは、オペランドの書き込みを
行うための第1及び第2のレジスタ指定フィールドを有
する命令を、前記第1のレジスタ指定フィールドの情報
を含む第1の単位処理コードと、前記第2のレジスタ指
定フィールドの情報を含む第2の単位処理コードとにデ
コードする手段を備えたことを特徴とするデータ処理装
置。 2、命令をデコードする命令デコードステージと、オペ
ランドアドレスを計算するオペランドアドレス計算ステ
ージと、命令を実行する命令実行ステージとを含む複数
のステージにより命令をパイプライン処理する機構を備
えたデータ処理装置において、 前記オペランドアドレス計算ステージで制御され、前記
命令実行ステージでの命令実行時に書換えられる可能性
のあるレジスタを前記オペランドアドレス計算ステージ
でのアドレス計算時に参照することを禁止するためのレ
ジスタ書き込み予約を行うレジスタ書き込み予約手段と
、 前記命令デコードステージで制御され、1つの命令を前
記レジスタ書き込み予約手段への指示情報を含む第1の
前段単位処理コードと第2の前段単位処理コードを含む
複数の前段単位処理コードにデコードするデコード手段
と、 前記オペランドアドレス計算ステージで制御され、前記
第1の前段単位処理コードと前記第2の前段単位処理コ
ードとを処理して1つの後段単位処理コードを出力する
手段と を備えたことを特徴とするデータ処理装置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP16961488A JPH0218621A (ja) | 1988-07-07 | 1988-07-07 | データ処理装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP16961488A JPH0218621A (ja) | 1988-07-07 | 1988-07-07 | データ処理装置 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH0218621A true JPH0218621A (ja) | 1990-01-22 |
Family
ID=15889764
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP16961488A Pending JPH0218621A (ja) | 1988-07-07 | 1988-07-07 | データ処理装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH0218621A (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2014041422A (ja) * | 2012-08-21 | 2014-03-06 | Fujitsu Ltd | プロセッサ |
-
1988
- 1988-07-07 JP JP16961488A patent/JPH0218621A/ja active Pending
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2014041422A (ja) * | 2012-08-21 | 2014-03-06 | Fujitsu Ltd | プロセッサ |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5218711A (en) | Microprocessor having program counter registers for its coprocessors | |
| US5091853A (en) | Chained addressing mode pipelined processor which merges separately decoded parts of a multiple operation instruction | |
| JPH02173823A (ja) | データ処理装置 | |
| JP2507638B2 (ja) | デ―タ処理装置 | |
| JPH04260950A (ja) | キャッシュメモリ装置 | |
| US4945511A (en) | Improved pipelined processor with two stage decoder for exchanging register values for similar operand instructions | |
| JPH03158928A (ja) | データ処理装置 | |
| JP2847974B2 (ja) | データ処理装置 | |
| JPH01214932A (ja) | データ処理装置 | |
| JPH0391029A (ja) | データ処理装置 | |
| JP3345787B2 (ja) | データ処理装置 | |
| JP2668456B2 (ja) | ビット検索回路及びそれを備えたデータ処理装置 | |
| JP2504235B2 (ja) | デ―タ処理装置 | |
| JPH0769806B2 (ja) | データ処理装置 | |
| JPH0218621A (ja) | データ処理装置 | |
| JP2522048B2 (ja) | マイクロプロセッサ及びそれを使用したデ―タ処理装置 | |
| JP2532560B2 (ja) | 高機能な例外処理を行うデ―タ処理装置 | |
| JPH0225932A (ja) | データ処理装置 | |
| JPH0290325A (ja) | データ処理装置 | |
| JPH0769805B2 (ja) | データ処理装置 | |
| JPH0769808B2 (ja) | データ処理装置 | |
| JPH0769802B2 (ja) | データ処理装置 | |
| JPH01281534A (ja) | データ処理装置 | |
| JPH01214933A (ja) | データ処理装置 | |
| JPH0769807B2 (ja) | データ処理装置 |