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

データ処理装置

Info

Publication number
JPH01263727A
JPH01263727A JP9216988A JP9216988A JPH01263727A JP H01263727 A JPH01263727 A JP H01263727A JP 9216988 A JP9216988 A JP 9216988A JP 9216988 A JP9216988 A JP 9216988A JP H01263727 A JPH01263727 A JP H01263727A
Authority
JP
Japan
Prior art keywords
instruction
stage
operand
address
code
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
Application number
JP9216988A
Other languages
English (en)
Inventor
Akira Otsuka
亮 大塚
Toyohiko Yoshida
豊彦 吉田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP9216988A priority Critical patent/JPH01263727A/ja
Publication of JPH01263727A publication Critical patent/JPH01263727A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 〔産業上の利用分野〕 この発明はパイプラインの初期化に伴う無駄なパスアク
セスを減らし、多段パイプライン処理機lBを効率的に
動作させ、高い処理能力を実現したデータ処理装置に関
するものである。
〔従来の技術〕
第30図に従来のデータ処f!p装置で行われていたパ
イプライン処理機構の例を示す。611は命令フェッチ
ステージ(IFステージ)、IIzi/i命令デコード
ステージCDステージ)、61けオペランドアドレス計
算ステージ(Aステージ)、64ハオペランドフエツチ
ステージ(Fステージ)、署は命令実行ステージ(Eス
テージ)5.昭は外部バスインターフェイス部である。
1Fステージ・311は外部バスインターフェイス都市
にアクセス9求を出し5メモリから命令コード全フェッ
チしてDステージ□□□に出力する。
Dステージ・(2)はIFステージ60から入力さね、
る命令コード金デコードして、デコード結果iAステー
ジβ層に出力する。
Aステージ潤は命令コード中で指定されたオペランドの
実効アドレスの計算1行い、必要ならば外部バスインタ
−7エイズ部(至)にアクセス要求?出し、アドレス間
接参照4行い、計算したオペランドアドレス計算ステー
ジ1(2)に出力する。
yステージl’4はAステージ嗜から入力されたオペラ
ン)!アドレスに従い、外部バスインターフェイス部鏝
ヘアクセス要求を出し、メモリよりオペランドをフェッ
チする。フェッチしたオペランドはEステージ′1に出
力する。Eステージi膚はドステージ・;噂から入力さ
れたオペランドに均して命令コード中で指定された演算
?実行する。さらに必要なら外部バスインターフェイス
部(至)にアクセス要求を串1〜、その演算結果ゲメモ
リてストアする。外部バスインターフェイス部(至)は
A、F、にステージからのアクセス要求がない場合、I
Fステージからのアクセス要求により、命令のプリフェ
ッチを行う。
上記のパイプライン処理機構によより、各命令で指定さ
れる処理は5つに分解され、5つの処理全順番に実行す
ることにより、指定された処理を完了する。各々5つの
処理は異なる面金Vc対して#′i並列動作させること
が可能であり、理想的には」二記の5段のバイブライン
処理機構により5つの命令を同時に処理し、パイプライ
ン処理を行わない場合にくらべ、最大で5倍の処理能力
をもつデータ処理装置を得ることができる。
〔発明が解決しようとする課題〕
パイプライン処理技術は上記のようにデータ処理装置の
@埋能力を大幅に向上させる可能性をもつものであり、
高速なデータ処理装置に広く用いられている。しかし、
パイプライン処理にもいくつかの欠点があり、いつも理
想的な状態で命令されるわけではない。パイプライン処
理で問題となるものの1つは命令のシーケンスを乱丁分
岐命令の実行である。第30図に示すバイブライン処n
機構金もち、分岐命令iBXステージt1で処理してか
ら分岐先命令i1Fステージ60が処理する従来のデー
タ処J11装置では、分岐命令の実行1(より、パイプ
ラインが大幅に乱れ、分岐命令に続く命令のアクセス要
求も実行される。従来のデータ処理装置で分岐命令がフ
ェッチされ、実行される様子全外部バスの動作も含めた
形で第81図に示す。
第31″ri−i命令3が分岐命令である。命令8が実
行きれるとすでにパイプライン処理中の命令4、命令5
.命令6はキャンセルされ、新りに命令7がIFステー
ジ611から処理される。
命令3がEステージ(四で実行される萱でVC命令4、
命令5、命令6の処理はそれぞれ?ステージ噸、Aステ
ージI:1 甘で進み、それらに伴うアクセス要求が外
部バスインターフェイス部(至)に入力され、不必要な
アクセス全実行し、システム上にあるデバイスの111
11mレジスタ値t、を化させたり、システムバスケ無
意味に占有するといった不都合があった。この無駄なア
クセス分岐命令の実行後にキャンセルされるベキQ口分
の実行が分岐命令として行われるためであり、パイプラ
イン処理の段数が多いほどこの無駄アクセスの起る可能
性も高くなるという問題が生じる。
さらに、パイプラインを構成する論理素子の動作スピー
ドが速くなり%各ステージにおける処理時開が短くなる
と外部バスアクヤスにかかる時間が処理のボトルネンク
となるため無駄なアクセス処理効率?悪くする要因とな
る。
本発明はこのような事情VC鑑みてなされたものであり
、パイプライン機構のステージ数増加に容易に対処可能
であり、無駄なパスアクセスを行わないデータ処理装置
の押供を目的とす′る。
〔課題を解決するための手段〕
このような、分岐命令による無駄アクセスを少なくする
ためrC%Dステー帽において命令?デコードする段階
で命令が分岐やジャンプをおこすかどうか判断し、分岐
やジャンプが起きる場合その命令がEステージ・、(至
)で実行されるまで続く命令に対してIFステージ、D
ステージの動作を停止させる手段を備えている。
〔作用〕
本発明のデータ処理装置では、必ず分岐やジャンプを起
す命令がデコードされた場合、命令フェッチとデコード
の処理を一時停止させると共に、その命令実行後Vcm
令フエフエッチコードの処理を再開する。
〔夾旌例〕
t11本発明のデータ処理装置の命令フォーマット本発
明のデータ処理装置の命令は16ビツト単位で可変長と
なっており、奇数バイト長の命令はない。
本発明のデータ処理装置では高頻度命令を短いフォーマ
ットとするため、特に工夫された命令フォーマット体系
をもつ。例えば、2オペランド命令に対して、基本的に
4バイト+拡張部の構成ケもち、すべてのアドレッシン
グモードが利用できる一般形フオーマットと傾度の高い
命令とアドレッシングモードのみを使用できる短縮形フ
ォーマットの2つのフォーマットがある0 第4図から第18図に本発明のデータ処理装置における
命令フォーマットを示す。第4図は命令フォーマットの
記述列。第5図は短縮形メモリーレジスタ間演算命令の
フォーマット。第6図Fi=縮形レジスターレジスタ間
演算防令のフォーマット。第7図はリテラル−メモリ間
演算命令のフォーマット。第8図#′i即唾−メモリ間
演算命令の7オーマント。第9図Filオペランド紡令
の一般形フオーマット。第1O図I/′i傷−オベラン
ドがメモリ読出しを必要とする命令の一般形フオーマッ
ト。第11図は第一オペランドが8ビツト即値の命令の
フォーマット。第12図は第一オペランドがアドレス計
算のみの命令のフォーマット。第18図はショートブラ
ンチ命令のフォーマット。図の中に現われる記号の意味
は次の通りである。
一:オペコードの入る部分 4#:リテラル、または即値の入る部分Ka:8ミニ8
ビツト形のアドレッシングモードでオペランドを指定す
る部分 Sh:6ビツトの短縮形のアドレッシングモードでオペ
ランドを指定する部分 Rn:レジスタ上のオペランドをレジスタ番号で指定す
る部分 フォーマットは、第4図に示すように右側がLSB側で
、かつ高いアドレスになっている。アドレスNとアドレ
スN+1の2バイトを見ないと命令フォーマットが判別
できないようになっているが、これは、命令が必ず16
ビツト(2バイト)単位でフェッチ、デコードされるこ
とを前提としたためである。
本発明のデータ処理装置では、いずれの7オマツトの場
合も、各オペランFのPa jりishの拡張部は、必
ずそのKaまたtishの基本部を含むハーフワードの
直後に置かれる。これ汀、命令により暗黙に指定される
即値データや、8令の拡張部に優先する。したがって、
4バイト以上の命令ではFXaの拡張部によって命令の
オペコードが分断される場合がある。
また後でも述べるように、多段間接モードによって、立
の拡張部にさらに拡張部が付く場合にも、次の命令のオ
ペコードによりそちらの方が優先される。例えば、第一
ハーフワードにKalr含み、第二ハーフワードにJC
a2f含み、第三ハーフワードまである6バイト命令の
IM 、’?を考える。malに多段間接モードを使用
したため、普通の拡張部のほかに多段間接モードの拡張
部もつくものとする。この時、実際の命令ビットパター
ンは、命令の弔−ハーフワード(Ealの基本部を含む
)、Palの拡張部、 F1a1の多段間接モード拡張
部、命令の第二ハー7ワード(PThafl  の基本
部を含む】、Elの拡張部、命令の第三ハーフワードの
順となる。
t 1.1 )白線形2オペランドeT令第5図から第
8図14f′:2オペランド宿令の燈縮形プオーマント
に示す。
第5図はメモリーレジスタ間@算酷令のフォーマットで
ある。このフォーマットにはソースオペランド側がメモ
リとなるTJ −f Or m a 1:とデスティネ
ーションオペランド側がメモリとなるS−f Or m
 a、 tがf−)る■ L−formatでは、  shはソースオペランドの
指定フィールド、Rhはデスティネーションオペランド
のレジスタの指定フィールド、IRRlj:shのオペ
ランドサイズの指定5rあられす。レジスタ上に*−A
−れたデスティネーションオペランドのサイズは、82
ビツトに固定されている。1/ジスタ側とメモリ側のサ
イズが異なり、ソース側(1)サイズが小さい場合L(
符号拡張が行なわれる・    、1?は8h トイorma□デスティネーションオペランドの指定フ
ィールド、Rh1d:ソースオペランドのレジスタ指定
フィールl′、 RRFi、shのオペランドサイズの
指定金あられす。1/ジスタ上に置かれたソースオペラ
ンドのサイズは、82ビツトに固定されている。レジス
タ側とメモリ側のサイズが異なり、ソース側のサイズが
大きい場合にあふれた部分の切捨てとオーバブローチエ
ツクが行なわれる。
第6図はレジスターレジスタ間演算命令のフォーマット
(R−format )である。Rnはデスティネーシ
ョンレジスタの指定フィールドRmはソースレジスタの
指定フィールドである。オペランドサイズは32ビツト
のみである。
第7図はリテラル−メモリ間演算命令のフォーマット(
Q−format )である。MM[デイステイ不−シ
ョンオベランドサイズの指定フィールド、すはリテラル
によるソースオペランドの指定フィールド、sheデス
ティネーションオペランVの指定フィールドである。
第8図Vi叩慎−メモリ開演篇命令のフォーマットであ
る。MMはオペランドサイズの指定フィールド(ソース
、ぞイステイネーシ藁/で共4)、shけデスティネー
ションオペランドの指定フィールドである。l−for
matの即用のサイズは、、−i′S″ステイネ−ジョ
ン側のオペランドのサイズと共通に8 、16 、32
ビツトトナリ、ゼロ拡張、符相拡張は行なわれない。
(11り一膜形1オペランド命令 第9図はlオペランド命令の一膜形フオーマット(G 
l −format )である。MMげオペランドサイ
ズの指定フィールドである。一部のG M −f Or
mat命令で(は4、Eθ、の拡張部以外にも拡張部が
ある。また、使用しない命令もある〇 (1,3)−膜形2オペラン#:命令 第1θ図から第12図は2オペランド曲令の一膜形フオ
ーマットで、ある。この7オーマントに含1・n2るの
は58ビツトで指定する一膜形アFレッシングモードの
オペランドが最大2つ存在する命令である。オペランド
の緒数自体は3つ以上になる場合がある13 第1O図は第一オペランドがメモリ読みだし全必要とす
る命令(1)7オーマツトIG−format lであ
る。EaMはデスティネーションオペランドの指定フィ
ールド、MMはデスティネーションオペランドサイズの
指定フィールド、EaRij、ソースオペランド指定フ
ィールl−″%RRけソースオペランドサイズの指定フ
ィールドである。
第11図は第一オペランドが8ビツト即櫃の品令の7オ
ーマント(FX−format)である。
加Mはデスティネーションオペランドの指定フィールド
、 MMはデスティネーションオペランドサイズの指定
フィールド、素はソースオペランド値である。
K−formatとi−rormat t!:aai的
に似たものがあるか、考え方の点では大きく逮っている
。K−formatはろくまでも?オペランドー膜形(
G−format)の派生形であり、ソースオペランF
のサイズが8ビット固定、ディスティネーションオペラ
ンドのサイズが8 / 16 / 82ビットから選択
となっている。つまり、異樟サイズ間の演算を前提とし
、デスティネーションオペランドのサイズに合わせて2
ビツトのソースオペランFがゼロ拡張または符号拡張さ
れる。
一方、1−formatは、特に転送命令、比較命令で
頻度の多い即値のパターンを短縮形にしたものであり、
7′−スオペランドとディスティネーションオペランド
のサイズは等しい。
第12図は第一オペランドがアドレス計算のみの命令の
フォーマツ) (GA−format)である。
EaW IdデスティネーションオペランFの指定フィ
ー ルに%WWはデスティネーションオペランFサイズ
の指定フィールド、 KaAはンースオベランドの指定
フィールドである。ソースオペランドとしては実行アド
レスの計算結果自体が使用される。
第13図はショートブランチ命令のフォーマットである
。CCCCはブランチ条件指定フィールド、disp:
8  はジャンプ先との変位指定フィールド、本発明の
データ処理装置では8ビツトで変位を指定する場合には
、ビットパターンでの指定flik2倍して変位噴とす
る(1.4)アドレッシングモード 本発明のデータ処理装置のアドレッシングモード指定方
法には、レジスタ?含めて6ビツトで指定する短縮形と
、8ビツトで指定する一般形がある。
未定義のアドレッシングモードを指定した場合や、意味
的に考えて明らかにおかしなアドレッシングモードの組
み台わせを指定した場合にFi、未定義命令を実行した
場合と同じく予約6訂令例外を発生し、例外処理を起動
する。
これに該当するのは、デスティネーションが即値モード
の場合、アドレス計算を伴うべきアドレッシングモード
指定フィールドで即値モードを使用した場合などである
第14図から第24図に示すフォーマットの図中で使わ
れる記号はつぎの通りである。
Rn   レジスタ指定 (ah)  6ビツトの短縮形アドレッシングモードで
の指定方法 (Ka)   8ビツトの一般形アドレッシングモード
での指定方法 フォーマットの図で点線で囲まれた部分は拡、張s1に
示す。
(1,4,1)基本アドレッシングモード本発明のデー
タ処理装置は様々なアドレッシングモードをサポートす
る。そのうち、本発明のデータ処理装置でサポートする
基本アドレッシングモードには、レジスタ直接モード、
レジスタ間接モード、レジスタ相対間接モード、即値モ
ード、絶対モード、PC相対間接モード、スタックポツ
プモーy1 スタックブツシュモードがある。
レジスタ11接モードは、レジスタの内容をそのままオ
ペランドとする。フォーマットは第14に示す。Rnハ
汎用レジスタの番号を示す。
レジスタ間接モー’ tf 、レジスタの内容をアドレ
スとするメモリの内容をオペランドとする。フォーマッ
トは第15図に示す。Rnは汎用レジスタの番号を示す
レジスタ相対間接は、ディスプレースメント値が16ビ
ツトか32ビツトかにより2種類ある。それぞれ、レジ
スタの内容に16ビツトまたVi82ビットのディスプ
レースメント値を加えた値ゲアVレスとするメモリの内
容をオペランドする。フォーマットは第16図に示す。
Rnは汎用レジスタの番号を示す。disp: lfl
とdisp:L2 ij 、 ソれぞれ、16ビツトの
ディスプレースメント値、82ビツトのディスプレース
メント値を示す。ディスプレースメント値は符号付きと
して扱う。
即値モードは、命令コード中で指定されるビットパター
ンケそのまま24数と見なしてオペランドする。フォー
マットは第17図に示す。
imm  dataけ即1mヲ示す。imm data
のサイズは、オペランドサイズとして命令中で指定され
る。
絶対モードは、アドレス値が16ビツトで示されるか3
2ビツトで示されるかにより2種類ある。それぞれ命令
ヨード中で指定される16ビツトまたは32ビツトのビ
ットパターンをアド1/スとしたメモリの内d全オペラ
ンドとするOフォーマットij:第18図に示f、、a
be : 16とa bs : 32 ハbぞハ、ぞれ
、16ビツト、82ビツトのアドレス/llNヲ示す。
abe : 16 でアドレスが示されるおきは指定さ
れたアドレス値?32ビットに符号拡張する。
PC#@対間接モードは、ヂイスブ1/−スメント値が
16ビツトか:(2ビットかにより、2欅類ある。そハ
ぞ)17、プログラムカウンタの内容に16ビツトまた
は32ビツトのデイスブl/ −スメント値?加f、た
値?アト1/スとするメモリの内8にオペ27ドとする
。フォーマットハ第19図に示す。dj、sp:115
とdj、5p32は、それぞれ16ビツトのディスプレ
ースメント値、:つ2ビツトのヂイスブレースメント値
を示す。デイスグレースメント値は符号付きとして扱う
。PC間接モードVCおいて参照されるプログラムカウ
タの値は、そのオペランドを含む命令の先頭アドレスで
ある。多段間接アドレシングモードにおいてプログラム
カウンタの値が参照される場合にも、同じよう1(命令
先願のアト1/スkPc柑対の基!$値として使用する
スタックポツプモードはスタックポインタ(SP)の内
容全アドレスするメモリの内容をオペランドと↑る。オ
ペランドアクセス後、  Sp′ffオペランドサイズ
だけインクリメントする。側対−ば。
32ビツトデータを扱う時には、オペランドアクセス後
vcapが(−4だけ更新される6B、Hのサイズのオ
ペランドに対するスタックポツプモーどの指定も可能で
あり、そり、ぞhsFが+1゜+2だけ更新される。フ
ォーマットは第20図に示す。オペランドに対しスタッ
クポツプモードが意味を持たないものに対しては、予約
命令例外ケ発生ずる。具体的に予約命令例となるのは、
writeオペランド、reacl−mo+lfy−w
riteオペランドに対するスタックポツプモード指定
である。
スタックブツシュモードはEPの内容をオペランドサイ
ズだけデクリメントした内Wkアト1/スとするメモリ
の内容をオペランドとする〇スタックブツシュモードで
はオペランドアクセス前にSPがデクリメントされる。
例えば、32ビットデータ?扱う時1/(は、オペラン
ドアクセスmlにspが−4だけ更新される。B、Hの
サイズのオペランドに対するスタックブツシコーモード
の指定も可能であり、それぞh日Pが−1゜−2だけ更
新される。フォーマットは第21図Vc示f0オペラン
ドに対してスタックブツシュモードが京味?持たないも
のに対しては、予約曲令例外ゲ)た生する。成体的に予
約命令例外となるの’ijニー、rea(lオペランド
、read−modj、fy−writeオペランドに
対するスタックブツシュモード指定である。
(1,4,2)多段間接アト1/ツシングモード複雑な
アトレンジングも、基z的には加算と間接参照の←↓み
合わせに分解することができる。
したがって、加隊と間接参照のオペレーションケアドレ
ッシングのプリミティブとして与えておき、それケ任意
に組み合わせることができればどんな複雑なアドレッシ
ングモードrも実現することができる。本発明のデータ
処理装置の多段間接アドレッシングモードはこのようケ
考え方にたったアドレッシングモー1:である。複雑な
アドレッシングモードは、モジュール間のデータ参照や
AI言語の処理系に特に有用である。
多段間接アドレッシングモードを指定するとき、基本ア
ト1/ツシングモーr指定フイールドでは、レジスタベ
ース多段間接モード、PCベース多段間接モード、絶対
ベース多段間接モードの8欅類の指定方法のうちりずれ
か1つを指定する。
レジスタベース多段間接モードけ1/ジスタの値を、拡
張する多段同級アドレッシングのベース値とるアドレッ
シングモードである。フォーマットij:第2z図に示
す。Rnは汎用レジスタの番号を示す。
PCベース多段間接モードはプログラムカウンタの値を
、拡張する多段間接アドレッシングモ−ス値とするアド
レシングモーt−chる。
フォーマットは第23図VC示す。
炉対ベース多段間接モー)″はゼロを、拡張する多段間
接アドレッシングのベース値とするアドレッシングモー
ドである。フォーマットは第24図VC示す。
拡張する多段間接モード指定フィーIレドは、16ビツ
トを単位としてこれを任意回ViC返す01段の多段間
接モードにより、ディスプレースメントの加算、インデ
クスレジスタのスケーリング(×1、×2、×4、×8
)と加算、メモリの間接参照、を行なう。
多段間接モードのフォーマットは第25図で示す。各フ
ィールドは以下に示す意味をもつ。
E−0: 多段間接モード E麟l: アドレス計算終了 tmp−a−)address  of  opera
ndl−0: メモリ間接参照なし tmp  +  disp  +  R1*  SOa
le−−m>tmpl−1:  メモリ間接参照あシ men(tmp+disp+Rx*5ealθ)m−a
 ) t3111 pM−0:<Rx>kインデクスと
して使用M−1:  特殊なインデクス <Rx>=0  インデクス値を加算しないIRx讃0
) <RX>    プログラムカウンタをインデクス値と
して使用 (RX−PCI <Rx>m9〜 reserved D−0:  多段接モード中の4ビツトのフィールドd
4の+if?r4倍してディスプレースメント直とし、
これを加算する。d4は符号付きとして扱い、オペラン
ドのサイズとけ関係なく)必ず1倍して使用する。
D−1:   多段間接モードの拡張部で指定されたd
ispx(16/3 gピット)をディスプレースメン
ト唾とし、これを加算する。
拡張部のサイズはd4フィールドで指定する。
d4−0001   dispx は 16 ビットプ
ログラムカウンタに対して×2、×4.×8のスケーリ
ングを行なった場合には、その段の処理終了後の中間値
(tmp)として、不定値が入る。この多段間接モード
によって得られる英効アドレスは予測できない値となる
が、例外は発生しない。プログラムカウンタに対するス
ケ+ 17ングの指定は行なってはいけない。
多段間接モードによる命令フォーマットのノくリエーシ
ョン石16図、第27図に承す。第26図は多段間接モ
ードが継続するか終了するかのバリエーションを示す。
第27図はディスプレースメントのサイズのバリエーシ
ョンを示す。
任意段数の多段間接モードが利用できれば。
コンパイラの中で段数による場合分けが不要になるので
、コンパイラの負担が軽減されるというメリットがある
。多段の間接参照の傾度が非M vc 少ないとしても
、コンパイラとしては必ず正しいコードを発生できなけ
ればならないからである。このため、フォーマット上、
任意の段数が可能になっている。
(1,5)例外処理 本発明の処理装置ではソフトウェア負荷の軽減のため、
豊富な例外処理5N能をもつ、本発明のデータ処理装置
では例外処理は、命令処理を再実行するもの(例外)、
命令処理を完了するもの(トラップ)、割込の3種類に
分けて名称をつけている。また本発明のデータ処理装置
では、この3種の例外処理と、システム障害を総称して
E工Tと呼ぶ。
(2)機能ブロックの構成 第28図に本発明のデータ処理装置のブロック図を示す
。本発明のデータ処理装置の内部を機能的に太きく分け
ると、命令フェッチ部5D。
命令デコード部・5り、PC計算部63.オペランドア
ドレス計*都n、マイクロ10M倍・頻、データ演算部
槽、外部パスインターフェース部5ηに分かれる。第2
8図では、その他、アドレスとcpn外部に出力するア
ドレス出力回路碍とCP口外部とデータの入出力を行う
データ入出力回路随をm−の橙能ブロック部と分けて示
し/こ。
(z、1)命令フェッチ部 命令フェッチ部5Qにはブランチバッファ、命令キュー
バヅファとその制御部などがあり、次VCフェッチすべ
き命令のアト1/スを決定して、ブランチバッファやC
PU外部のメモリから命令ラフエッチする。ブランチバ
ッファへの命令登録も行う。
ブランチバッフアロ小規模′T′:あるためセ17りぞ
イブキャッシュとして納作イ”る。ブランチノ(ツファ
はブランチターゲットバッファ(BTB)によく似た機
能?もつ。ブランチバッファの動作の詳細は特願昭fl
R=202041で詳しく述べられている。
次にフェッチすべき命令のアドレス6命令キユーバツフ
アに入力すべき命令のアドレスとして専用のカウンタで
計算さり、る。ブランチやジャンプが起きたときVC,
は、哲たな高冷のアドレスが、PcIa4r暉部盛やデ
ーク演創1匂より転送されてくる。
CP]■外部のメモリから命令孕フェッチするときは、
外部バスインタ−7エイズ部bηを通して、フェッチす
べき命令コードのアドレステアドレス出力回路ii+9
からCPU外部に出力し、データ入出力回路面から命令
コードフェッチする。
バッファリングした命令コードのうち、命令デコード部
a1z″T:次にデコードすべき命令コードヶ命令デコ
ード部園に出力する。
(2,2)命令デコード部 命令fコード部5カでは命令中のオペコードが基本JV
C16ビツト(ハーフワード)単位にデコードされる。
このブロックには第1ハーフワードに含盪れるオペコー
ドをデコードするFHWデゴーグ6第2、第3ハーフワ
ードに含まれるオペコードをデコードするNFI(Wデ
コーダ、アトl/ツシングモード?デコードするアドレ
ッシングモー・ドデコーダが含まれる。
さらにF XI WデコーダやNFHWデコーダの出力
をさらにデコードして、マイクロROMのエントリアド
レスを計算するデコーダ2、榮件ブランチ命令の分岐予
測2行う分岐予測機能、オペランドアドレス計算のとき
のバイグラインコンフリクト金チエツクするアドレス計
算コ・ンフリクトチェック機構も含まれる。
命令フェッチ部より入力された命令コード?2りaツク
につき0=6バイト?デコードする。
デコー ド結果のうちデータ演算部1にでの演算知関す
る情報ケマイクr:lROM部6均に、オペランドアド
レス計算に関係する情報をオペランドアドレス計算部呪
)vc、PC庁十WVc関係゛ノ゛る情報ケPC計算部
D(至)に、七h、ぞノ1.出力する。
(N、3)マイクロROM部 マイクロROM部調には主(tでデータ演算部−全制御
するマイクロプログラムが格約されているマイクROM
、マイクロシーケンサ、マイクロ命令デコーダなどが含
まれる。マイクロ命令はマイクrJROMから2クロツ
クにi2読み出される。マイクロシーケンサはマイクロ
プログラムで示されるシーケンス処理の他に例外、割込
、トランプ(この3つをあわ慰”でJ」工Tと呼ぶ)の
処理をハード的に受は例ける。甘だマイクロROM部は
ストアバッファの管理も行う。
マイクロROM部には命令コードに依存しない割込みや
演算実行結果によるフラッグ情報と、デコーダ2の出力
など命令デコード邪の出力が入力される。マイクロデコ
ーダの出力は主にデータ演算部帳に対して出力されるが
、ジャンプ命令の実行による他の先行熱押中止情報など
一部の情報は他のブロック−\も出力される。
(2,4)オペランドアドレス計算部 オペランドアドレス計′11.部541ハ1、蛸令デコ
ード邪櫻のアドレスデコーダなどから出力されたオペラ
ンドアドレス計算に関係する↑N報によりハードワイヤ
ードfrill(illされる。このブロックではオペ
ランドのアドレス計算に関するほとんどの処理が行われ
る。メモリ間接アドレッシングのだめのメモリアクセス
のアドレスやオペランドアドレスがメモリ圧マツプされ
たI10領域に入るかどうかのチエツクも行われる。
アドレス計算結果は外部バスインターフエイス部hηに
送られる。アドレス計算に必要な汎用レジスタやプログ
ラムカウンタの値はデータ演算部より入力きれる。
メモリ間接アドレッシングを行うときは外部バスインタ
ーフェイス部・闘を通してアドレス出力回路幡からCP
σ外部に参照すべきメモリアドレスを出力し、データ入
出力部間から入力された間接アドレス@を命令デコーF
部6のをそのまま通過させてフェッチする。
(16)PC計算部 pc計算部IS:lは命令デコーr部・6カから出力さ
れるpc計算に関係する情報によりノ・−ドワイヤード
制御され、命令のpc値を計算する。本特許のデータ処
理装置は可変長命令セットを持っており、命令をデコー
ドしてみないとその命令の長さが判らない。PC計算部
61は、命令デコード部めから出力される命令長tデコ
ード中の命令のPC@に加算することによりつぎの命令
のPCIを作り出す。また、命令デコード部54が、分
岐命令をデコーFしてデコード段階での分岐を指示した
ときは命令長の代わりに分岐変位全分岐命令のPC@に
加算することにより分岐先命令のPC(iii計算する
。分岐命令に対して命令デコード段階で分岐を行うこと
を本発明のデータ処理装置ではプリブランチと呼ぶ。
れている。
PC計算部困の計算結果は各命令のPC[として命令の
デコード結果とともに出力されるほか、プリブランチ時
には1次にデコードすべき防令のアドレスとして命令7
工ツチ部に出力される。
また、次に命令デコード部櫻でデコードされる命令の分
岐予測のためのアドレスにも使用される。分岐予測の方
法については待原昭62−8194で詳しく述べられて
いる。
(2,6)データ演算部 データ演算部1はマイクロプログラムにより制御され、
マイクロROM部団の出力情報に従い、各命令の機能を
実現するために必要な演算をレジスタと演算器で実行す
る。演算対象となるオペランドがアドレスや即値の場合
は、オペランドアドレス計算部(財)で計算されたアド
レスや即値を外部パスインターフェイス部bηを通過さ
せて得る。また、演算対象となるオペランドがcpa外
部のメモリにあるデータの場合は、アドレス計算部掴で
計算されたアドレスをパスインターフェイス部671が
アト、レス出力回路間から出力して、cpσ外部のメモ
リからフェッチしたオペランドをデータ入出力回路6(
至)から得る場合もある。
清算器としてはALσ、バレルシフタ、ブライオリティ
エンコーダやカウンタ、シフトレジスタなどがある。レ
ジスタと主な演算器の間は8パスで結合されており% 
1つのレジスタ間演算を指示する1マイクロ命令?2ク
ロツクサイクルで処理する。
データ演算のときCPσ外部のメモリをアクセスする必
要がある時はマイクロプログラムの指示により外部パス
インターフェイス部6ηを通してアドレス出力回路1か
らアドレス?CPσ外部に出力し、データ入出力回路A
Iを通して目的のデータをフェッチする。
cpσ外部のメモリにデータをストアするときけ外部バ
スインターフェイス部鋪全通してアドレス出力回路祷よ
りアドレスを出力すると同時に、データ入出力回路(至
)からデータ1kcPσ外部に出力する・オペランドス
トアを効率的に行うためデータ演算部槽に1lt4バイ
トのストアバッファがある。
ジャンプ命令の処理や例外処理などを行って新たな命令
アドレスをデータ演算部類が得たときはこれを命令フェ
ッチ部60とpc計算部卵に出力する。
(g、7)外部パスインターフェイス部外部パスインタ
ーフェイス部571は本特許のデータ処理装置の外部バ
スでの通信?別画する。
メモリのアクセスはすべてクロック同期で行われ、最小
2クロックサイクルで行うことができる。
メモリに対するアクセス要求は砧令フェッチ部fi11
.アドレス計算部5(、データ演算部、(6)か′ら独
立に生じる。外部バスインターフェイス部稍けこれらの
メモリアクセス要求を調停する。さらにメモリとCPσ
?結ぶデータバスザイズである32ビツト(ワード)の
整置境界fr:またぐメモリ番地にあるデ・−夕のアク
セスハ:、このブロック内で1仙的にワード境昇ケまた
ぐことを検知して、2同のメモリアクセスに分解して行
う。
ブリフェッチするオペランドとストアするオペランドが
重なる場合のコンフリクト防止処理やス!・アオベラン
ドからフェッチオペランドへのバイパス処理も行う。
(3)パイプライン帰構 本発明のデータ処理装置のパイプライン処理は第2図に
示を構成となる。命伶のブリフェッチを行つ命令フェッ
チステージ(IPステデー6υ)、命令のデコードを行
うデコードステージ(Dステージ(り)、オペランドの
アドレス占十ネ?行うオペランドアドレス計算ステージ
(AステージC(3)、マイクOR0Mアクセス(持に
Rステージ(至)ど呼ぶ)とオペランドグリフェッチ(
特にOFステデー(ロ)と呼ぶ)?行うオペランドブリ
プエッチステージCFステージ■)、実行ステージ(Z
ステージc!6)の5膜構成?パイプライン処理の基本
とする。Eステージ(至)では1段′のストアバッファ
があるほか、高機能請合の一部は命令実行自体金パイプ
ライン化するため、実際には5段以上のパイプライン処
理効果がある。
1Fステージc3vはバスインターフェイス回N□□□
にアクセス要求金山し、メモリから命令コードをフェッ
チしてDステージ曽に出力するODステデー(至)はI
FステデーOηから入力される命令コードをデコードし
て、デコード結束?Aステージ(至)【出力する。A、
?データ(至)は命令コード中で指定されたオペランド
の実効アドレスの計算4行い、必要ならばバスインター
フェイス回路C灼にアクセス要求を出し、アドレス間接
参照を行い、計算したオペランドアドレス計算ステージ
(至)に出力する。Fステージ[有]はAステージQか
ら入力されたオペランドアドレスに従い、バスインター
フェイス回路(至)へアクセス要求を出し、メモリより
オペランドをフェッチする。
フェッチしたオペランドii′Eステージ(至)に出力
する。鶏ステージ(至)i7:l′Fステージ[有]か
ら入力されたオペランドに対して命令コード中で指定さ
れた演算?実行する。さらに必要ならバスインターフェ
イス回路@にアクセス要求を出し、その演算結果?メモ
リにストアする。1Fステージからのアクヤス要求は常
に出されており、バスインターフェイス回路@は各ステ
ージからのアクセス要求がない場合、命令のプ’)7x
ツチ2行う。しかし、Dステージ(至)でEステージ(
至)で必ず分岐2行う命令が完全にDステージ(至)に
入力されたことが検出されたならば、Eステージによる
パイプライン初期化が起る贅でそれ以降の命令プリフェ
ッチは行われない。
各ステージげ他のステージとは独立に動作(7、理論上
は5つのステージが完全に独立動作する。各ステージは
1回の処理?最小2クロックで行うことができる。従っ
て理想的にけ2クロツクごとに次々とパイプライン処理
が進行する。
本発明のデータ処理装置にはメモリーメモリ間演算や、
メモリ間接アドレッシングなど、基本パイブライ/処理
1回だけでは処理が行えない命令があるが1本発明のデ
ータ処理装置けこれらの処理に対してもなるべく均衡し
たバイブライン処理が行えるように設計されてhる。複
数のメモリオペランド?もつ命令に対してはメモリオペ
ランドの数をもとVC,デコード段階で複数のパイプラ
イン処理単位(ステップコード)に分解してパイプライ
ン処理を行うのである。
パイプライン処理単位の分解方法例関しては特願昭61
−236456で詳しく述べられている。
1 ’Fステデー6ηからDステージ(至)に渡される
情報は命令コードそのものである。Dステージ(至)か
らAステージaに渡される情報は命令で指定された演算
に関するもの(Dコード(財)と呼ぶ)と、オペランド
のアドレス計算に関係するもの(A:7−ド(6)と呼
ぶ)との2つある。AステージQから?ステージ■に渡
される情報はマイクロプログラムルーチンのエントリ番
地やマイクロプログラムへのパラメータなどを含むRコ
ード@3(!−、オペランドのアドレスとアクセス方法
指示情報などを含むFコード−との2つである。
Fステージ(至)からEステージ(7)に渡される情報
は演算1tlla情報とリテラルなどを含むEコード四
と、オペランドやオペランドアドレスなどt含むSツー
1″−との2つである。Eステージ曽以外のステージで
検出されたE工TiそのコードがEステージ(至)VC
到達するまではE工T処理を起動しない。Eステージ(
至)で処理されている命令のみが実行段階の命令であり
、IFステデーtaEl−Fステージ■で処理されてい
る防音はまだ実行段階に至っていないのである。従って
Eステージ(7)以外で検出されたE工Tfi検出した
ことをステップコード中に記録して次のステージに伝え
られるのみである。
(8,1)パイプライン処理単位 (8,1,1)命令コードフィールドの分類本発明のデ
ータ処理装置のパイプライン処理単位は命令セットのフ
ォーマットの特徴を利用して決定されている。(1)の
節で述べたように、本発明のデータ処理装置の命令は2
バイト単位の可変長命令であり、基本的VCは(2バイ
トの命令基本部子〇 −4バイトのアドレッシング拡張
部)Th1〜8回繰シ返すことにより命令が構成されて
いる。
命令基本部には多くの場合オペコード部とアドレッシン
グモード指定部があり、インデックスアドレッシングや
メモリ間接アドレッシングが必要なときにはアドレッシ
ング拡張部の代わりに(2バイトの多重間接モード指定
部子〇〜4バイトのアドレッシング拡張部)が任意側付
く。また、命令により2または4バイトの命令固有の拡
張部が最後に付く。
命令基本部には命令のオペコード、基本アドレッシング
モード、リテラルなどが含まれる。
アドレッシング拡張部はディスプレースメント、絶対ア
ドレス、即値、分岐命令の変位のいずれかである。命令
固有の拡張部にはレジスタマツプニーi’ormat命
令の即値指定などがある。第29図で本発明のデータ処
理装置の基本的命令フォーマットの特徴を示す。
(8,11)ステップコードへの命令の分解本発明のデ
ータ処理装置では上記の命令7オーマントの特徴を生か
したパイプライン処理を行う。Dステージ(至)では(
2バイトの命令基本1fls + 0−4 バイトのア
ドレッシング拡張1!Is)。
(多段間接モード指定部+アドレッシング拡張部)−ま
たけ命令固有の拡張部1に1つのデコード単位として処
理する。各回のデコード結果をステップコードと呼び、
Aステージ(至)以降ではこのステップコードをパイプ
ライン処理の単位としている。ステップコードの数は命
令ごとに固有であり、多段間接モード指定を行わないと
き、1つの命令は最小1個、最大3個のステップコード
に分かれる。多段間接モード指定があればそれだけステ
ップコードが増える。ただし、これは後で述べるように
デコード段階のみである。
(8,1,3)プログラムカウンタの管理本発明のデー
タ処理装置のパイプライン上に存在するステップコ−y
Bすべて別命令に対するものである可能性があり、プロ
グラムカウンタの値はステップコードごとに管理する。
すべてのステップコー1″はそのステップコードのもと
になった命令のプログラムカウンタ値?もつ。ステップ
コードに付属してパイプラインの各ステージを流れるプ
ログラムカウンタ値はステッププログラムカウンタ(S
PC)と呼ぶ。
SPCはパイプラインステージを次々と受は渡されてい
く。
C8,2)?!rパイプラインステージの処理釜パイプ
ラインステージぬ入出カステップコードには第2図に示
したように便宜上名前が付けられている。またステップ
コー)″はオペコ−ドに関する処理?行−,マイクロR
OMのエントリ番地やEステージ(至)に対するパラメ
ータなどになる系列とEステージ(至)のマイクロ命令
竜〈対するオペランドになる系列の2系列がある。・(
8,8,1)命令フェッチステージ 命令フェッチステージ(工yステージ0υ)tf命令を
メモリやブランチバッファからフェッチし、命令キュー
に入力して、Dステージ(至)に対して命令コー)″を
出力する。命令キューの入力は整置された4バイト単位
で行う。メモリから命令をフェッチするときは整置され
た4バイトにつき最小2クロックを要する。ブランチバ
ッファがヒツトした時は整置された4バイトにっきlク
ロックでフェッチ可能である。命令キューの出力単位は
2バイトごとに可変であり、2クロツクの間に最大6バ
イトまで出力できる。また分岐の直後には命令キューを
バイパスして命令基本部2バイト1に直接命令デコーダ
に転送することもできる。
ブランチバッファへの命令の登録やクリアなどの制御、
プリフェッチ先命令アドレスの管理や命令キューの制御
も工Fステージ9pで行う。
1Fステージ0]llで検出するに工TKfl命令をメ
モリからフェッチするときのパスアクセス例外や、メモ
リ保護逮反などによるアドレス変換例外がある。
(8,2,2)命令デコーFステージ 命令デコードステージ(Dステージ(至))はlFステ
デーC3優から入力された命令コードをデコ用して、2
クロック単位に1度行ない、1回のデコーp処理で、0
〜6バイトの命令コードを消費する(RKT#f6令の
復帰先アドレスを含むステップコードの出力処理などで
は命令コードを消費しない)。1回のデコードでAステ
ージ(至)に対するアドレス計算情報であるAコード−
としての約85ビツトの制御コードと最大82ビツトア
ドレス1灸飾情報とオペコードの中間デコーF結果であ
るDコード(財)としての約50ビツト制御コーFと8
ビツトのリテラル情報とを出力する。
Dステージ(2)では各命令のpc計算部關の別画、分
岐予測処理、プリブランチ命令に対するプリブランチ処
理、命令キューからの命令コーr出力処理も行う。
さらに、必ずぶステージで分岐やジャンプを起す命令が
デコーrされ、命令が完全にDステージに取り込まれた
のが確認されると命令デコード?中断し、以降Eステー
ジからのパイプライン初期化信号が入力されるまで動作
を停止する。
Dステージ(至)で検出するIll!ITKfl予約命
令例外、プリブランチ時の奇数アドレスジャンプトラッ
プがある。また、IFステデー3ηより転送されてきた
各種E工Tflステップコード内にエンコードする処f
!pをしてAステージ(至)に転送する。E工Tが検出
されるとDステージは命令デコードを中断し、以降Eス
テージからのパイプライン初期化信号が入力されるまで
動作を停止する。
(8,L3)オペランドアドレス計算ステージオペラン
ドアドレス計算ステージ(Aステージ@)t−1処理が
大きく2つに分かれる。
1つは命令デコード部62のデコーダ2を使用して、オ
ベコーFの後段デコーFを行う処理で、他方はオペラン
ドアドレス計IE部図でオペランドアドレスの計暉ヲ行
う処理である。
オペコードの後段デコー)’処ffはDコード■を入力
とし、レジスタやメモリのt!iき込み予1’J及びマ
イクロプログラムのエントリ番地とマイクロプログラム
に対するパラメータなどを含むRコード−の出力を行う
。なおレジスタやメモリの書き込み予約は、アドレス計
算で参照したレジスタやメモリの内容が、パイプライン
上?先行する命令で書き換えられ、誤ったアドレス針線
が行われるのを防ぐ念めのものである。レジスタやメモ
リの豊き込み予約はデッドロックを避けるため、ステッ
プコードごとに行うのではなく命令ごとく行う。レジス
タやメモリの書き込み予約については特願昭62−14
4394で詳しく述べられている。
オペランドアドレス計算処理はAコード12ヲ入力とし
、Aコードに)に従いオペランドアドレス計算部間で加
算やメモリ間接参照を組み合わせてアドレス計lLケ行
い、その計算結果をFコード−として出力する。この際
、アドレス計算に伴つレジスタやメモリの読み出し時に
コンフリクトチエツクを行い、先行命令がレジスタやメ
モリに対する書き込み処理全終了していない時点でコン
フリクトが指示されれば、先行命令がEステージ(至)
で唐き込みも理?終了するまで待つ。また、オペランド
アドレスやメモリ間接参照のアドレスがメモリにマツプ
されたI10領域VC入るかどうかのチエツクも行う。
Aステージ(至)で検出するE工TKは予約命令外、特
権命令外、バスアクセス列外、アドレス変換例外、メモ
リ間接アドレッシングのときのオペランドブレイクポイ
ントヒツトによるデノ(ラグトラップがある。Dコード
(6)、Aコード−自体がE工Tl起こしたこと?示し
ておれば、Aステージaはそのコードに対してアドレス
計算処理をせず、そのE工Tコード卿やFコード−に伝
える◎ (81,4)マイクロROMアクセスステージオペラン
ドフェッチステージ(Fステージ咎)も処理が大きく3
つに分かれる。1つはマイクロROMのアクセス処理で
あり、特にRステージ(至)と呼ぶ。他方はオペランド
プリフェッチ処理であり、特にOFステデー(ロ)と呼
ぶ。Rステージ(至)とOFステデー■は必ずしも同時
に動作するわけではなく、メモリアクセス権が獲得でき
るかどうかなどに依存して、独立に動作する。
Rステージ(至)の処理であるマイクロROMアクセス
処理はRコード卿に対して次のEステージでの実行に使
用する実行、!llaコードであるE:I−ドfを作り
出すためのマイクロROMアクセスとマイクロ命令デコ
ード処理である。1つのRコード■に対する処理が2つ
以上のマイクロプログラムステップに分解゛される場さ
、マイクロROMはにステージ(至)で1史用され、久
のRコード−はマイクロROMアクセス待ちになる。
RコーgHに対するマイクロROMアクセスが行われる
のはその前のEステージ(至)での最後のマイクロ命令
実行の時である。本発明のデータ処理装置ではほとんど
の基本命令はlマイクロプログラムステップで行われる
ため実際にはRコード−に対するマイクロROMアクセ
スが次々と行われることが多い。
Rステージ(至)で析たに検出するE工Tflない。
Rコード−が防音処理再実行型のEITを示していると
きはそのE工T熱押に対するマイクロプログラムが実行
されるのでRステージ(至)はそのRコード鵠に従った
マイクロ命令をフェッチする。Rコード祷が奇数アドレ
スジャンプトラップを示しているときRステージ(至)
はそれ1kEコード四に伝える。これはプリブランチに
対するもので、Zステージ(至)ではそのEコード■で
分岐が生じなければそのプリブランチを有効として奇数
アドレスジャンプトラップを発生する。
(81,5)オペランドフェッチステージオペランドフ
ェッチステージ(OFステデー@)ハFステージ(財)
で行う上記の2つの処理のうちオペランドプリフェッチ
処mk行う◇ オペランドプリフェッチけ?コード■を入力とし、フェ
ッチしたオペランドとそのアドレスIsコード−として
出力する。1つのFコード−でけワーF境界に関わらず
4バイト以下のオペランドフェッチを指定する。Fコー
)′■にはオペランドのアクセスを行うかどうかの指定
も含まれておQ、AステージQで計算したオペランドア
ドレス自体や即値をEステージ(至)に転送する場合に
はオペランドプリフェッチは行わず、FコーIニーの内
容をSコード■として転送する。プリフェッチしようと
するオペランドとEステージ(7)が書き込み処理を行
おうとするオペランドが一致するときは、オペランドプ
リフェッチはメモリから行わず、バイパスして行なう。
またVO領領域対してはオペランドプリフェッチを遅延
させ、先行命令がすべて完了する萱で待ってオペランド
フェッチを行う。
OFステデー(至)で検出するE工T11−jパスアク
セス例外、アドレス変換例外、オペランドプリフェッチ
に対するブレイクポイントヒツトによるデバッグトラッ
プがある。?コード(財)がデバッグトラップ以外のE
工Ti示しているときはそれを日コードに)に転送し、
オペランドプリフェッチは行わない。Fコーr14がデ
バッグトラップを示しているときはそのFコード■に対
してSコード(7)を転送し、オペランドフェッチを行
わないと共にデバッグトラップをCコード■に伝える。
(8,2,8)実行ステージ 実行ステージ(Eステージ(至))けEコード−1Sコ
−yH2人力として動作する。このEステージ(至)が
命令を実行するステージであり、Fステージ■以前にス
テージで行われた処理はすべてにステージ(至)のため
の前姻理である。Eステージ(至)でジャンプ命令が実
行されたり、PIT処理が起動されたシしたときは、I
Fステデー61〜Fステージ−までの処理はすべて無効
化される。Eステージ(至)はマイクロプログラムによ
り制御され、Rコード四に示されたマイクロプログラム
のエントリ番地からの一連のマイクロプログラムを実行
することにより命令を実行する。
マイクロROMの読み出しとマイクロ命令の実行はパイ
プライン化されて行われる。従ってマイクロプログラム
で分岐が起きたときは1マイクロステツプの空きができ
る。また、Eステージ(至)はデータ演算部協にあるス
トアバッファを利用して、4バイト以内のオペランドス
トアと次のマイクロ命令実行ケバイブライン処理するこ
ともできる。
Eステージ(至)でIr1kステージaで行ったレジス
タやメモリに対する書き込み予約をオペランド書き込み
の後、解除する。
また条件分岐命令がEステージ(至)で分岐を起こした
ときはその条件分岐命令に対する分岐予測が誤っていた
のであるから分岐履歴の書換えを行う。
Eステージ(至)で検出されるE工Tに汀バスアクセス
例外、アドレス変換例外、デバッグトラップ、奇数アド
レスジャンプトラップ、予約機能例外、不正オペランド
列外、予約スタックフォーマット例外、ゼロ除算トラッ
プ、無条件トラップ、条件トラップ、遅延コンテキスト
トラップ、外部割込、遅延割込、リセット割込、システ
ム障害がある。
Eステージ(至)で検出されたEiITけすべてコニT
処理これるがEステージ以前のIFステデー0n−Fス
テージ(ロ)の闇で検出されたRコード脅やSコード(
至)に反映されているE工Tは必ずE工T処理されると
は限らない。IFステデー61〜Fステージ(至)の間
で検出したが、先行のジャンプ命令かにステージ(至)
で実行されたなどの原因でEステージ(至)まで到達し
なかったFli r T、’はすべてキャンセルされる
。そのKITi起こした命令はそもそも実行ζnなかつ
たことになる。
外部割込や遅延割込は防音の切れ目にEステージ(至)
で直接受は付けられ、マイクロプログラムにより必要な
処理が実行される。その他の各種E工Tも処理はマイク
ロプログラムにより行われる。
(8,8>各パイプラインステージの状態制御パイプラ
インの各ステージに入力ラッテと出力ラッチを持ち、他
のステージとは独立に動作することを基本とする。各ス
テージtri1つ前に行った処理が終わり、その処理結
果を出力ラッチから次のステージの入力ラッチに転送し
、自分のステージの入力ラッチに次の処理に必要な入力
信号がすべてそろえば次の処理?開始する。
つまり、各ステージは、1つ両段のステージから出力さ
れてくる次の処理に対する入力信号がすべて有効となり
、今の処理結果を後段のステージの入力ラッチに転送し
て出力ラッチが空になると次の処理を開始する。
各ステージが動作?開始する1つ前のクロックタイミン
グで入力信号がすべてそろっている必要がある。入力信
号がそろ:つていないと、そのステージは待ち状態(入
力待ち)に、なる。出力ラッチから次のステージの入力
ラッチへの転送を行うときは次のステージの入力ラッチ
が空き状態になっている必要があり、次のステージの入
力ランチが空きでない場合もパイプラインステージは待
ち秋期(出力待ち)になる。必要なメモリアクセス権が
獲得できなかったり、処理しているメモリアクセスにウ
ェイトが挿入されたり、その他のパイプラインコンフリ
クトが生じると、各ステージの処理自体が遅延する。
141  分岐を伴う命令の実行 本発明のデータ処理装置のパイプライン処理における実
行ステージでのジャンプなど別画の移行を伴う命令の実
行を131での記述に沿って詳しく説明する。この命令
には飛び先アドレスを任意のアドレッシングモードで指
定するジャンプ命令(、TMP命令)、ジャンプ先アド
レスを外部メモリから読み込む必要のあるサブルーチン
リターン命令(RTB命令)、プロセッサの状態を変更
する命令(LDC命令)が含まれる。
第8g図はJM?命令のビットパターンを示す。
先頭の1byteで命令の種類が判明し1次の1byt
eで命令に使用されているアドレッシングモードの種類
が判明する。この命令では(1,4)で述べた全てのア
ドレッシングモードを使用することが可能であるため、
使用したアドレッシングモード毎に命令長が無なる。飛
び先アドレスの指定が(1,4,1)で述べた基本アド
レッシングモードのうち、レジスタ間接、スタックポツ
プ、スタックブツシュのうちいずれかのモーrで指定さ
れた場合、命令長4’byte、即値、絶対、pc柑対
間接それぞれのディスプレースメントが16bitであ
った場合、命令長7141flbyte 。
同様にディスプレースメントが82t)itであった場
合、命令長は5byteである。飛び先アドレスが(1
,,4,2)で述べた多段間接モードで指定されている
場合、多段間接参照を何回行うかにより命令長が異なる
第88図vc、7 M P命令の動作ゲフローチャート
で示す。命令デコード終了後、第82図−で示したアド
レッシングモードに応じて飛び先アドレスの計算ftA
ステージで行い、その計算結果に基づいてEステージで
ジャンプに%行する。アドレッシングモーFが多段間接
モーFであった場合、多段間接が終了するまでアドレス
計算は繰シ返される。
第34図1/(RT8命令のビットパターンを示す。こ
の命令は必ず2b)rte命令である。第35図に命令
の動作全示す。命令デコーF後、I!!ステージでその
ときのスタックトップをフェッチし、その内容が示す飛
び先アドレスヘジャンプする。
第36図に第1オペランド1EaAで指定するLDC命
令■、第87図K L D C命令■のビットパターン
を示す。これらの命令は直接分岐を行う命令ではないが
、データ処理装置の状態を変化させるため、後続の命令
がパイプライン中に取り体重れ、一部の処理が実行され
ているのを無効にする必要がある。これI−i制御レジ
スタを碍き換えることにより、先行処理として実行され
た処理の前提条件が変化する可能性があるからである。
この前提条件にはリング保護の条件や110領域の指定
変更などが含まれる。
この命令の実行によってパイプライン処理に支障をきた
す場合の処理をリング保護条件の変化を例にとって説明
する。
7日w2変更するLDC命令が実行されるとき、続く命
令がリング保a例外を起すようなオペランドフェッチ?
伴う命令であった七する。
第2図に示したパイプライン上にLDC命令が入力され
たとき、実行ステージにLDC紡令防音すステップコー
ドが進むと同時に:F’ステーデーに入力された次命令
のステップコードによりオペランドのプリフェッチが開
始される。プリフェッチの開始時点ではPSW内のリン
グ保護の指定フィールドがリング保1g!をしない状態
であるため、プリフェッチは実行されてしまう。
LDC命令の実行が終了するとpsw内のリング保護の
指定フィールドがリング保atする状態になっているの
で、本来、次の命令のオペランドプリフェッチはエラー
として扱われるべきである。しかし、オペランドプリフ
ェッチの時点でエラーかどうかを判断できないので、こ
のままではエラーは検出されず、不適当なアクセスが実
行されたままになってしまう。そこでDステージ(至)
でLDC命令がデコーVされると、1それ以降の命令の
処理をIFステデー(ロ)、Dステージ(至)で行わな
いようにすることにより、続く命令に含まれる不適当な
アクセスが行われることはなくなる。さらにLDC命令
の処理の一部トシて別画レジスタへのデータ転送が終了
後に次の命令へ分岐することにより、パイプラインの初
期化を行う機能を加える。こうすることでLDC命令正
当に処理することができる。
第38図[鷹1オペランドをコaAで指定するLDC命
令■の動作金示す。命令デコード後。
ンースオペランドのアドレス計算Th(t、4)で述べ
たようにAステージで行い、?ステージでオペランドを
プリフェッチする。これと並行してディスティネーショ
ンアドレスの計算を行う。
フェッチしたオペランドHzステージにおhてAステー
ジで計算したディスティネーションアドレスに指定され
ているl1ldllレジスタへ転送される。転送槽1次
の命令への分岐を実行することによりパイプラインの初
期化を行う。
151 mに第39図において、第1オペランドがlb
ytelpmであるようなLDC命令■の動作を示す。
命令デコード後、ンースオペランドとなる即値データを
リテラルとして元ステージに送る。続いてAステージで
ディスティネーションのアドレス計算を行い、指定され
たアドレスが示す制御レジスタに、先に送っておいた即
値が転送される。転送後、次の命令への分岐全実行する
ことによりパイプラインの初期化を行う。
a1図に本発明によるデータ処理装置IFステージとD
ステージのブロック図を示す。
図中…は命令キュー、(2!は命令フェッチ用プログラ
ムカウンタ%(31はIIFステージ制御回路、141
は命令デコーダ、 、61はDステージ別個回路、(6
1は工Fステージ停止信号、(7)はEステージによる
パイプライン初期化信号、(8)はデコード停止命令検
出信号、(9)は命令終了信号、110+はアクセス要
求信号である。
命令フェッチステージ(工FステージC11))から命
令キューIll 51:介して命令デコードステージ(
Dステージ(至))の命令デコーダ14+に分岐やジャ
ンプを伴う命令が送られて、デコーVの結果、Eステー
ジで分岐やジャンプをする命令であることが判明したな
らば、命令デコーダからDステージ制−回路+61ヘデ
コ一ド停止命令検出信号(8)が送られ、命令全体が完
全に命令デコーダ14)に取り込まれたことを命令終了
信号(9)により確認して、DステージからIPステデ
ーに命令フェッチのアクセス*求tap止める事r示す
IPステデー停止信号(61ケ送る。さらにDステージ
自身も分岐やジャンプを伴う命令のステップコードt−
Aステージへ送った後、動作を停止する。これらの命令
では飛び先アドレス1k(1゜鴫、2)で述べた多段間
接アドレッシングモードによって指定される可能性があ
るため、命令全体が完全に命令デコーダ+41に取り込
まれたこ七を確認するまで工1ステージの命令プリフェ
ッチは停止させることはできない。命令プリフェッチV
ie令フエツチ用プログラムカウンタ(21の示スアド
レスのメモリをアクセスするため、工Fスデージl11
m回路131からアクセス要求信号(10)が出力され
る。デコーFの結果、Zステージでの分岐やジャンプを
含む命令が多段間接アドレッシングモードを使用するこ
とが判明したならば、Dステージ1llal路1)はデ
コード停止命令検出信号(8)に加えて多段間接アドレ
ッシングモード指定の最終部分であることを命令終了信
号(9)により確認して工Fステージ停止信号(61ヲ
出力する。
2段の多段間接参照セードを使用するJup命令の例?
第40図に示し、これにつhて具体的に説明する。礪4
0図でFi、TMP拵令I−i飛び先アドレスを2段の
多段間接参照で指定している。2段目の多段間接では拡
張部として16t)itのディスプレースメントを持つ
。この命令がフェッチされ、最初の2byte  がD
ステージでデコードされると、Eステージ分岐命令検出
信号(81が出力されEステージでジャンプする命令で
あることが判明する。アドレッシングのモードの指定【
より多段間接参照であることが判明するので、Dステー
ジは次の2byte f命令キ子−から入力する。計算
はAステージで行われるため、デコーF結果iDステー
ジからAステージ【送る。この2byteでは多段間接
参照は終了していないので、新らた【命令キューから5
byteを入力する。このgbyteデコーFして1段
目と同様の処理をする。念だし、2段目のデコードによ
り多段間接参照が終了することと16t)itのディス
プレイスメント會とることが判明する。Dステージはデ
ィスプレースメントを入力するために次のi’byte
を命令キューか入力し、入力を確認して結合終了信号(
9)を出力する。先[1ステ一ジ分岐命令検出信号18
)が検出されているので、Dステージは命令終了信号(
9)によりエフステージ停止信号(6)r出力する。
これ以降、エフステージは命令のプリフェッチを停止し
、DステージもディスプレースメントをAステージへ送
った後は動作を停止する。
これにより分岐を伴う命令に続く命令はDステージで処
理されることはなく、エフステージとDステージは分岐
やジャンプの実行によってパイプライン機構が初期化さ
れるまで、すなわち鷺ステージによるパイプライン初期
化信号+71が有効になるまで停止し、分岐やジャンプ
を伴う命令以降に含まれる無駄なアクセス要求は出され
なくなる。
本発明のデータ処理装置で分岐やジャンプ命令がフェッ
チされ、実行される様子を外部パスの動作を含めた形で
第3図に示す。
第3図では命令3がジャンプ命令である。命令3がDス
テージでデコードされるとそれに続く命令のプリフェッ
チ、デコード処理は行われない。命令3がEステージで
実行されると、新たに命令7がエフステージ(至)から
処理される。
命令3がEステージ(2)で実行されるまでにジャンプ
により無駄となるアク:セスは実行されない。
命令7の処理再開時は命令3の実行終了時にジャンプ先
である命令7が格納されているアドレスがエフステージ
C3pに送られ、それと同時に停止しているエフステー
ジ、Dステージの動作を再開する信号を送る。Aステー
ジ、?ステ、−ジ汀ステップコーFが入力されない状態
で停止しているため、エフステージは送られたアドレス
に対する命令フェッチを開始し、それ以降パイプライン
は通常通りの動作を再開する口〔発明の効果〕 以上のように、この発明によれば命令パイプライン処理
を行うデータ処理装置において、必ず実行ステージで分
岐やジャンプを起す命令やプロセッサの状WI4″f:
命令が入力された後、無駄になる命令フェッチ、デコー
ドを行わない。それによって、外部パスを有効に利用し
、効率のよい処理を実行することができる。
【図面の簡単な説明】
第1図は、この発明の一実施例のデータ処理装置におけ
る命令フェッチステージと命令デコードステージの構成
を示すブロック図である。 第2図は本発明のデータ処理装置におけるパイプライン
処理機構の例を示す図、第8図は本発明のパイプライン
機構でのジャンプ命令を含むプログラムでの命令実行概
念図。第令図は本発明のデータ処理装置における命令フ
ォーマットの記述例を示す図、第5図は、メモリーレジ
スタ間演算命令のフォーマットを示す図、第6図はレジ
スターレジスタ間演算命令のフォーマットを示す図、第
7図はリテラル−メモリ間演算命令のフォーマットを示
す図、第8図は即([−メモリ間演算命令のフォーマッ
トを示す図、第9図はlオペランド防音の一膜形フオー
マット?示す図、410図は2オペランド命令で第一オ
ペランドがメモリ続出しを必要とする命令のフォーマツ
)を示す図、第11図は8オペランド命令で第一オペラ
ンドが8bit卸値の命令フォーマットを示す図、第1
2図Vi2オペランド命令での男−オペランドがアドレ
ス計算のみの命令の7オマツトを示す図、第13図はシ
ョートブランチ結合のフォーマットを示す図、第14図
はレジスタ11接モードを示す図、第15図はレジスタ
間接モードを示す図、第16図はレジスタ相対間接モー
ド金示す図、第17図は即値モー)″を示す図、第18
図は絶対モードを示す図、第19図はPC相対間接モー
ドを示す図、第20図はスタックポツプモード全示す図
、第21図はスタックブツシュモード?示す図、第22
図はレジスタベース多段間接モードを示す図、第23図
はPOペース多段間接モー#:を示す図、第24図は絶
対ベース多段間接モーv2示す図、第25図は拡張する
多段間接モードを示す図、第B6図は多段間接モードが
継続する場合のビットパターンを示す図、第27図は多
段間接モード終了する場合のビットパターン2示す図、
第g8図は本発明のデータ処f#I装置のブロック図、
第29図は本発明のデータ処理装置の基本的命令フォー
マットをホ丁図、第80図は従来のデータ処理装置にお
けるパイプライン処理機構の例を示す図、第81図は従
来のパイプライン機構でのジャンプ命令を含むプログラ
ムでの命令実行概念図、第8g図は本発明におけるジャ
ンプ命令のビットパターンを示す図、第88図はジャン
プ命令の動作を示す70−チャート、第84図は本発明
におけるサブルーチンリターン命令のビットパターンケ
示す図、第35図はサブルーチンリターン命令の動作を
示すフローチャ・−ト、第36図は本発明における第一
オペランドを一膜形アドレッシングモードで指定する制
御レジスタロード命令のビットパターンを示す図、第8
7図は本発明における第一オペランドが8bit即値の
!′lIaレジスタロード命令のビットパターンを示す
図、第38図は第一オペランドを一膜形アドレッシング
モードで指定する制御レジスタロード命令の動作を示す
フローチャート、第89・図は第一オペランドが81)
it即値の制御レジスタロード命令の動作1に示すフロ
ーチャート、第40図は本発明における8段の多段間接
参照モードを使用するジ様グαグラムカクンタ、 +3
1は工Fステージ制御回路、141は命令デコーダ、・
51はDステージ制副回路、(B)は工?ステージ停止
信号、(7)はEステージによるパイプライン初期化信
号、(81はデコード停止命令検出信号、(9)は命令
終了信号、 Hotd7クセス要求信号、C11)は命
令フェッチステージ、C(3は命令デコードステージ、
g3はオペランドアドレス計算ステージ、鱒はオペラン
ドフェッチステージ、G35は命令実行ステージ、(至
)はRステージ、@はOFステデー、@ババスインター
フェイス回路、(6)はDコード、@2はAコード、−
はRコード、14はFコーF%■はEコード、■は8コ
ーF、15+1は合金フェッチ部、 、−121は命令
デコード部、嗜はPC計算部、胸はオペランドアドレス
計算部、暢はマイクClROM部、−夕処理装置におけ
る命令フェッチステージ、鉤は従来のデータ処理装置に
おける命令デコードステージ、關は従来のデータ処理装
置におけるオペランドアドレス計算ステージ、81;l
:従来のデータ処理装置におけるオペランドフェッチス
テージ、鴫は従来のデータ処f!#装置における命令実
行ステージ、田は従来のデータ処理装置におけるパスイ
ンターフェイス回路である。

Claims (2)

    【特許請求の範囲】
  1. (1)命令のフェッチやデータの入出力を行う外部バス
    制御機構を備え、 命令のデコードを行う第一のステージと、命令の実行を
    行う第二のステージとを含む複数のステージで命令をパ
    イプライン処理し、 ジャンプ命令を前記第一のステージで処理したのち命令
    のフェッチまたは命令のデコードまたはその両方を一時
    停止させる停止処理を行い、前記ジャンプ命令を前記第
    二のステージで処理したとき前記ジャンプ命令で指定す
    るアドレスの命令にジャンプして前記パイプライン処理
    を再開することを特徴とするデータ処理装置。
  2. (2)命令のフェッチやデータの入出力を行う外部バス
    制御機構を備え、 命令のデコードを行う第一のステージと、命令の実行を
    行う第二のステージとを含む複数のステージで命令をパ
    イプライン処理し、 プロセッサステータス変更命令を前記第一のステージで
    処理したのち命令のフェッチまたは命令のデコードまた
    はその両方を一時停止させる停止処理を行い、前記プロ
    セッサステータス変更命令を前記第二のステージで処理
    したとき前記プロセッサステータス変更命令の命令アド
    レスに引き続く命令アドレスにある命令から前記パイプ
    ライン処理を再開させることを特徴とするデータ処理装
    置。
JP9216988A 1988-04-13 1988-04-13 データ処理装置 Pending JPH01263727A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP9216988A JPH01263727A (ja) 1988-04-13 1988-04-13 データ処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP9216988A JPH01263727A (ja) 1988-04-13 1988-04-13 データ処理装置

Publications (1)

Publication Number Publication Date
JPH01263727A true JPH01263727A (ja) 1989-10-20

Family

ID=14046930

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9216988A Pending JPH01263727A (ja) 1988-04-13 1988-04-13 データ処理装置

Country Status (1)

Country Link
JP (1) JPH01263727A (ja)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5136037A (ja) * 1974-09-21 1976-03-26 Hitachi Ltd Memoriseigyohoshiki
JPS57109055A (en) * 1980-12-26 1982-07-07 Fujitsu Ltd Readout control system for microinstruction
JPS58205258A (ja) * 1982-05-24 1983-11-30 Matsushita Electric Ind Co Ltd デ−タ処理装置
JPS5957348A (ja) * 1982-08-26 1984-04-02 Fujitsu Ltd 情報処理装置における命令取出しの禁止及び禁止の取消し方式
JPS6074033A (ja) * 1983-09-30 1985-04-26 Fujitsu Ltd 命令読出し方式
JPS61133439A (ja) * 1984-12-04 1986-06-20 Nec Corp 命令先取り制御方式
JPS61286930A (ja) * 1985-06-13 1986-12-17 Fujitsu Ltd 命令先取り制御方式

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5136037A (ja) * 1974-09-21 1976-03-26 Hitachi Ltd Memoriseigyohoshiki
JPS57109055A (en) * 1980-12-26 1982-07-07 Fujitsu Ltd Readout control system for microinstruction
JPS58205258A (ja) * 1982-05-24 1983-11-30 Matsushita Electric Ind Co Ltd デ−タ処理装置
JPS5957348A (ja) * 1982-08-26 1984-04-02 Fujitsu Ltd 情報処理装置における命令取出しの禁止及び禁止の取消し方式
JPS6074033A (ja) * 1983-09-30 1985-04-26 Fujitsu Ltd 命令読出し方式
JPS61133439A (ja) * 1984-12-04 1986-06-20 Nec Corp 命令先取り制御方式
JPS61286930A (ja) * 1985-06-13 1986-12-17 Fujitsu Ltd 命令先取り制御方式

Similar Documents

Publication Publication Date Title
US5717946A (en) Data processor
US5129068A (en) Operand address calculation in a pipeline processor by decomposing the operand specifier into sequential step codes
JP2507638B2 (ja) デ―タ処理装置
JPH035835A (ja) マイクロプロセッサ
JPH02173823A (ja) データ処理装置
JPH081599B2 (ja) データ処理装置
US4945511A (en) Improved pipelined processor with two stage decoder for exchanging register values for similar operand instructions
JPH081602B2 (ja) データ処理装置
JPH0391029A (ja) データ処理装置
JP3345787B2 (ja) データ処理装置
JP2710994B2 (ja) データ処理装置
JPH0769806B2 (ja) データ処理装置
JPH01263727A (ja) データ処理装置
JP2504235B2 (ja) デ―タ処理装置
JPH04109338A (ja) プライオリティエンコーダ及びそれを備えたデータ処理装置
JP2532560B2 (ja) 高機能な例外処理を行うデ―タ処理装置
JP2522048B2 (ja) マイクロプロセッサ及びそれを使用したデ―タ処理装置
JPH0769801B2 (ja) データ処理装置
JPH0769805B2 (ja) データ処理装置
JP2825315B2 (ja) 情報処理装置
JPH0290325A (ja) データ処理装置
JPH0769802B2 (ja) データ処理装置
JPH0218621A (ja) データ処理装置
JPH02277130A (ja) マイクロプロセッサ
JPH01281534A (ja) データ処理装置