[go: up one dir, main page]

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

データ処理装置

Info

Publication number
JPH0298734A
JPH0298734A JP63251076A JP25107688A JPH0298734A JP H0298734 A JPH0298734 A JP H0298734A JP 63251076 A JP63251076 A JP 63251076A JP 25107688 A JP25107688 A JP 25107688A JP H0298734 A JPH0298734 A JP H0298734A
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.)
Granted
Application number
JP63251076A
Other languages
English (en)
Other versions
JPH0769805B2 (ja
Inventor
Soichi Kobayashi
聡一 小林
Masahito Matsuo
雅仁 松尾
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 JP63251076A priority Critical patent/JPH0769805B2/ja
Publication of JPH0298734A publication Critical patent/JPH0298734A/ja
Priority to US07/754,285 priority patent/US5269008A/en
Publication of JPH0769805B2 publication Critical patent/JPH0769805B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

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

Description

【発明の詳細な説明】 [産業上の利用分野] 本発明は、パイプライン処理方式によって動作するデー
タ処理装置に間するもので、特にポツプ(POP)命令
をソースオペランドとする命令の処理機能を有するデー
タ処理装置に関する。
[従来の技術] 従来のデータ処理装置のパイプライン処理機能の構成を
第11図のブロック図に示す。
従来のデータ処理装置は、命令フェッチステージ391
.命令デコードステージ392.オペランドアドレス計
算ステージ393.オペランドフェッチステージ394
及び実行ステージ395の各ステージにて構成されてい
る。そして、命令はデコード段階で複数のパイプライン
処理のための単位コード(ステップコード)に分解され
てパイプライン処理される。この様なデータ処理装置に
関しては特開昭63−89932号にその詳細が開示さ
れている。
上述の如き従来のデータ処理装置では、パイプラインを
構成する要素の内で命令フェッチステージ391.命令
デコードステージ392.オペランドアドレス計算ステ
ージ393及びオペランドフェッチステージ394等の
前処理を行う部分と、実行ステージ395の如く命令を
実行する部分とに分けられる。
前処理を行う部分は、命令中で指定されるオペランドに
関する前処理だけを行う、そして、前処理によって準備
されたオペランドを用いて実行ステージ395により命
令が実行される。
しかし、このようなデータ処理装置では、命令中にはオ
ペランドの指定部を一つだけ有するが、命令の機能上の
意味において暗に示されたオペランドを他にも有するよ
うな命令に関してはパイプライン上において十分な前処
理が行われない場合が生じる。
このような命令の一例として、ポツプ(r’OP)命令
が考えられる。  POP命令は、デスティネーション
としてメモリまたはレジスタを指定可能であるとする。
データ処理装置では通常、メモリ空間上にデータを退避
させておくためのスタック領域が形成されている。そし
て、スタックにデータを退避させる命令、及び退避させ
ておいたデータをスタックから読み出す命令が用意され
ている。前者の命令をpt+so命令、後者の命令をP
OP命令とそれぞれ称し、これらは互いに対称な命令で
ある。なお、スタックポインタ(SP)は、スタックの
最上位(スタックトップ)のアドレスを常時示している
POP命令は、オペランドとしてはデスティネーション
を指定するためのオペランドのみを有するlオペランド
命令である。しかしPOP命令は、命令自体の機能とし
ては現実にはソースオペランドがスタックトップである
ことを暗に示している2オペランド命令であり、メモリ
ーメモリ間あるいはメモリーレジスタ間転送命令と同等
な命令である。
pop命令の処理に際して、従来のデータ処理装置のパ
イプライン上においては、POP命令のデスティネーシ
ョン指定部によりデスティネーションの処理のためのス
テップコードのみが生成される。
このステップコードの処理とは、命令の前処理を行う部
分であるオペランドアドレス計算ステージ393におい
てデスティネーションのアドレス計算を行うことである
。しかし、POP命令はソースの指定部を有さないため
、ソースに関するステップコードが生成されず、ソース
指定部に関する前処理は一切行われない。
ソースの指定部に関する処理は、pop命令の実行時に
一連のマイクロ命令により、命令を実行する部分である
実行ステージ395において実行される。具体的には、
実行ステージ395において先ずスタックトップに対し
てデータのフェッチを行うというソース指定部に関する
処理が行われ、次いでフェッチしたデータを前処理で準
備されたデスティネーシッンアドレスに転送するという
手順でpop命令が処理される。
このような処理に際しては、通常の2オペランド命令で
は前処理として行われるべきソースの指定部に関する処
理を実行ステージ395において行うため、実行ステー
ジ395の処理負担が非常に大きい。また各ステージに
おける処理負荷の不均一が生じるため、パイプライン処
理における処理効率低下が惹起する。
[発明が解決しようとする課題] 従来のデータ処理装置においては、パイプライン処理機
構上で上述の如< pop命令が処理される。
この際、実行ステージ自身がスタックトップからオペラ
ンドをフェッチする処理を行う必要があるので、前処理
を行うステージに比較して命令を実行するステージにお
けるデ〜り処理の負荷が大きくなり、POP命令の処理
効率が向上しないという問題がる。
本発明はこのような問題を解決するためになされたもの
であり、ソースオペランドが特定のアトレンジングモー
ドに限定されているlオペランド命令をパイプライン上
で効率よく処理し得るデータ処理装置の提供を目的とす
る。
[課題を解決するための手段] 本発明に係るデータ処理装置は、pop命令の処理に際
して、命令デコード時に暗に示されているソースオペラ
ンドの処理単位を生成する手段と、デスティネーション
がレジスタである場合には命令を実行するまでにデステ
ィネーションオペランドの処理単位とソースオペランド
の処理単位とを処理して1つの処理単位として生成する
手段を備えている。
[作用] 本発明のデータ処理装置では、パイプライン上の前処理
を行う部分において暗に示されているオペランドに対し
ても処理単位を生成し、スタックトップにあるデータが
ブリフェッチ処理され、またデスティネーションがレジ
スタである場合はデスティネーションオペランドに関す
る処理が行わ〔発明の実施例〕 以下、本発明をその実施例を示す図面に基づいて詳述す
る。
(1)「本発明のデータ処理装置の命令フォーマット」
本発明のデータ処理装置の命令は16ビツト単位で可変
長となっており、奇数バイト長の命令は使用しない。
本発明のデータ処理装置では高開度命令を短いフォーマ
ットとする目的で特に工夫された命令フォーマット体系
を有する。例えば、2オペランド命令に関しては基本的
に°4バイト+絋鉱部°の構成を有して総てのアドレッ
シングモードが利用可能な一般形フオーマットと、使用
顧度の高い命令及びアドレッシングモードのみが使用可
能な短縮形フォーマットの2つのフォーマットとがある
本発明のデータ処理装置の命令フォーマ、ト中に現われ
る記号の意味は次の通りである。
−:オペレーションコードが入る部分 #;リテラルまたは即値が入る部分 Ea:8ミニ8ビツト形のアドレッシングモードでオペ
ランドを指定する部分 Sh:6ビツトの短縮形のアドレッシングモードでオペ
ランドを指定する部分 Rn:レジスタ上のオペランドをレジスタ番号で指定す
る部分 フォーマントは、第12図に示す如く右側が1.sB側
で且つ高いアドレスになっている。アドレスNとアドレ
スN+1の2バイトを見ないと命令フォーマットが判別
できないようになっているが、これは前述の如く、命令
が必ず16ビノト(2バイト)単位でフェッチ及びデコ
ードされることをi?i Qとしているためである。
本発明のデータ処理装置では、いずれのフォーマットの
場合も、各オペランドのl!aまたはshの拡張部は必
ずそのEaまたはshの基本部を含むハーフワードの直
後に位置される。これは、命令により暗黙に指定される
即値データあるいは命令の拡張部に優先する。従って、
4バイト以上の命令では、Eaの拡張部によって命令の
オペレーションコードが分断される場合がある。
また後述する如く、多段間接モードによってEaの拡張
部に更に拡張部が付く場合にも、次の命令オペレーショ
ンコードよりもそちらの方が優先される0例えば、第1
ハーフワードにEalを含み、第2ハーフワードにEa
2を含み、第3ハーフワードまである6バイト命令の場
合を考える。1Ealに多段間接モードを使用したため
、普通の拡張部の他に多段間接モードの拡張部も付くも
のとすると、実際の命令ビットパターンは、命令の第1
ハーフワード(Eatの基本部を含む)、 Balの拡
張部、Ealの多段間接モード拡張部、命令の第2ハー
フワード(Ea2の基本部を含む)+ Ealの拡張部
、命令の第3ハーフワードの順となる。
(1,1) r短縮形2オペランド命令」第13図から
第16図は2オペランド命令の短縮形フォーマントを示
す模式図である。
第13図はメモリーレジスタ間演算命令のフォーマント
を示す模式図である。このフォーマットには、ソースオ
ペランド側がメモリとなるL−formatと、デステ
ィネーションオペランド側がメモリとなるS−rort
matとがある。
L−formatでは、shはソースオペランドの指定
フィールドを、Rnはデスティネーションオペランドの
レジスタの指定フィールドを、RRはshのオペランド
サイズの指定をそれぞれ表す、レジスタ上に位置された
デスティネーションオペランドのサイダハ32ヒツトに
固定されている。レジスタ側とメモリ側とのサイズが異
なり、ソース側のサイズが小さい場合に符号拡張が行な
われる。
54or+watでは、shはデスティネーションオペ
ランドの指定フィールドを、Rnはソースオペランドの
レジスタ指定フィールドを、IIRはshのオペランド
サイズの指定をそれぞれ表す。レジスタ上に位置された
ソースオペランドのサイズは32ビツトに固定されてい
る。レジスタ側とメモリ側とのサイズが異なり、ソース
側のサイズが大きい場合にオーバフローした部分の切捨
てとオーバフローチエツクが行なわれる。
第14図はレジスターレジスタ間演算命令のフォーマッ
ト(R−format)を示す模式図である。Rnはデ
スティネーションレジスタの指定フィールド、Rmはソ
ースレジスタの指定フィールドである。オペランドサイ
ズは32ビツトのみである。
第15図はリテラル−メモリ間演算命令のフォーマy 
ト(Q−format)を示す模式図である。■はディ
スティネーションオペランドサイズの指定フィールド、
■1はリテラルによるソースオペランドの指定フィール
ド、shはデスティ7−シヨンオベランドの指定フィー
ルドである。
第16図は即値−メモリ間演算命令のフォーマント(1
−format)を示す模式図である。間はオペランド
サイズの指定フィールド(ソース、ディスティネーショ
ンで共通) 、 Shはデスティネーションオペランド
の指定フィールドである。 I−rortmatの即値
のサイズはデスティネーション側のオペランドのサイズ
と共通に8.16.32ビツトとなり、ゼロ拡張及び符
号拡張は行なわれない。
(1,2) r−船形lオペランド命令」第17図はl
オペランド命令の一船形フオーマツ) (Gl−for
mat)を示す模式図である。開はオペランドサイズの
指定フィールドである。一部のG1−format命令
では、Eaの拡張部以外にも拡張部がある。また、開を
使用しない命令もある。
(1,3) r−船形2オペランド命令」第18図から
第20図は2オペランド命令の一船形フオーマットを示
す模式図である。このフォーマットに含まれるのは、8
ビツトで指定する一船形アドレンシングモードのオペラ
ンドが最大2つ存在する命令である。オペランドの総数
自体は3つ以上になる場合がある。
第18図は第1オペランドがメモリ読み出しを必要とす
る命令のフォーマット(G−format)を示す模式
図である。 EaMはデスティネーションオペランドの
指定フィールド、開はデスティネーションオペランドサ
イズの指定フィールド、EaRはソースオペランド指定
フィールド、RRはソースオペランドサイズの指定フィ
ールドである。一部のG−format命令では、Ea
MあるいはEaRの拡張部以外にも拡張部がある。
第19図は第1オペランドが8ビツト即値の命令のフォ
ーマット(E−format)を示す模式図である。
EaMはデスティネーションオペランドの指定フィール
ド、藺はデスティネーンヨンオベランドサイズの指定フ
ィールド、■・・・はソースオペランド値である。
E−4ormatとI−formatとは機能的には類
似しているが、考え方の点では大きく違っている。具体
的には、E−formatはあくまでも2オペランド−
船形(G−4ormat)の派生形であり、ソースオペ
ランドのサイズが8ビツト固定、ディスティネーション
オペランドのサイズが8 /16/32ビットからの選
択となっている。つまり、E−for膳atは異種サイ
ズ間の演算を前提とし、デスティネーションオペランド
のサイズに合わせて8ビツトのソースオペランドがゼロ
拡張または符号拡張される。一方、Lformatは、
特に転送命令及び比較命令で頻度の多い即値のパターン
を短縮形にしたものであり、ソースオペランドとディス
ティネーションオペランドのサイズが等しい。
第20図は、第1オペランドがアドレス計算のみの命令
のフォーマット(GA−for+aat)を示す模式図
である。Ealllはデスティネーションオペランドの
指定フィールド、四はデスティ不−ションオベランドサ
イズの指定フィールド、EaAはソースオペランドの指
定フィールドである。ソースオペランドとしては実行ア
ドレスの計算結果自体が使用される。
第20図は、ショートブランチ命令のフォーマットを示
す模式図である。ccccはブランチ条件指定フィール
ド、disp:8はジャンプ先との変位指定フィールド
であり、本発明のデータ処y1装置では8ビツトで変位
を指定する場合には、ビノトバクーンでの指定値を2倍
して変位値とする。
(1,,4) rアドレッシングモード」本発明のデー
タ処理装置のアドレッシングモード指定方法には、レジ
スタを含めて6ビノトで指定する短縮形と、8ビ、トで
措定する一般形とがある。
未定義のアドレッシングモードが指定された場合、ある
いは意味的に考えて明らかに不適当なアドレッシングモ
ードの組み合わせが指定された場合には、未定義命令が
実行された場合同様に予約命令例外が発生され、例外処
理が起動される。
これに該当するのは、テ″ステイネ−ジョンが即値モー
ドの場合、アドレス計算を伴うべきアドレッシングモー
ド指定フィールドで即値モードを使用した場合等である
フォーマットの図中で使われる記号の意味は次の通りで
ある。
Rn:レジスタ指定 seem EA:EAで示されるアドレスのメモリ内容
(Sh)  :Gビットの短縮形アドレッシングモード
での指定方法 (Ea)  :8ビツトの一般形アドレッシングモード
での指定方法 フォーマットの図において破線にて囲繞された部分は拡
張部を示す。
(1,4,1,)  rM本アドレッシングモード」本
発明のデータ処理装置は様々なアドレッシングモードを
サポートする。それらの内、本発明のデータ処理装置で
サポートする基本アドレッシングモードには、レジスタ
直接モード、レジスタ間接モード、レジスタ相対間接モ
ード、即値モード、絶対モード、PC(プログラムカウ
ンタ)相対間接モード、スタックポツプモード及びスタ
ックブツシュモードがある。
レジスタ直接モードはレジスタの内容をそのままオペラ
ンドとする。フォーマットの模式図を第22図に示す、
Rnは汎用レジスタの番号を示す。
レジスタ間接モードはレジスタの内容をアドレスとする
メモリの内容をオペランドとする。フォーマットの模式
図を第23図に示す。Rnは汎用レジスタの番号を示す
レジスタ相対間接モードはディスプレースメント値が1
6ビツトであるか32ビツトであるかにより2種類があ
る。それぞれ、レジスタの内容に16ビツトまたは32
ビツトのディスプレースメント値を加えた値をアドレス
とするメモリの内容をオペランドとする。フォーマット
の模式図を第24図に示す、 Rnは汎用レジスタの番
号を示す、 disp : 16とdtsp : 32
とはそれぞれ各々16ビツトのディスプレースメント偵
または32ビツトのディスプレースメント値を示す、デ
ィスプレースメント値は符号付きとして扱う。
即値モードは命令コード中で指定されるピントパターン
をそのまま2進数と見なしてオペランドとする。フォー
マットの模式図を第25図に示す。
ism−dataは即値を示す* ism−dataの
サイズは、オペランドサイズとして命令中で指定される
絶対モードはアドレス値が16ビツトで示されるか32
ビツトで示されるかにより2[類ある。それぞれ、命令
コード中で指定される16ビツトまたは32ビツトのビ
ットパターンをアドレスとするメモリの内容をオペラン
ドとする。フォーマットの模式図を第26図に示す、 
abs:16とabs:32とはそれぞれ16ビツトま
たは32ビツトのアドレス値を示す。
abs:16でアドレスが示される時は指定されたアド
レス値を32ビツトに符号拡張する。
PC相対間接モードはディスプレースメント値が16ビ
ツトか32ビツトかにより2種類ある−それぞれ、プロ
グラムカウンタの内容に16ビツトまたは32ビツトの
ディスプレースメント値を加えた値をアドレスとするメ
モリの内容をオペランドとする。
フォーマットの模式図を第27図に示す、 disp 
: 16とdisp : 32とはそれぞれ16ビツト
のディスプレースメント値または32ビツトのディスプ
レースメント値を示す、ディスプレースメント値は符号
付きとして扱う、PC相対間接モードにおいて、参照さ
れるプログラムカウンタの値はそのオペランドを含む命
令の先頭アドレスである。多段間接アドレッシングモー
ドにおいてプログラムカウンタの値が参照される場合に
も、同じように命令の先頭のアドレスをPC相対の基準
(直として使用する。
スタックポンプモードはスタックポインタ(SP)の内
容をアドレスとするメモリの内容をオペランドとする。
オペランドアクセス後、スタックボ・インクをオペラン
ドサイズだけインクリメントする。
例えば、32ビツトデータを汲う場合には、オペランド
アクセス後にSPが÷4だけ更新(インクリメント)さ
れる、B、Hのサイズのオペランドに対するスタックポ
ツプモードの指定も可能であり、それぞれSPが目、÷
2だけ更新(インクリメント)される、フォーマットの
模式図を第28図に示す、オペランドに対しスタックポ
ツプモードが意味を持たないものに関しては予約命令例
外が発生される。
具体的に予約命令例外となるのは、writeオペラン
ド、read−modify−wri teオペランド
に対するスタックポツプモード指定である。
スタックブツシュモードはスタックポインタの内容をオ
ペランドサイズだけデクリメントした内容をアドレスと
するメモリの内容をオペランドとする。スタックブツシ
ュモードでは、オペランドアクセス前にスタックポイン
タがデクリメントされる0例えば、32ビツトデータを
扱う場合には、オペランドアクセス前にSPが−4だけ
更新(デクリメント)される、B、Hのサイズのオペラ
ンドに対するスタックブツシュモードの指定も可能であ
り、それぞれSPが−1,−2だけ更新(デクリメント
)される、フォーマントの模式図を第29図に示す、オ
ペランドに対してスタックブツシュモードが意味を持た
ないものに関しては、予約命令例外が発生される。具体
的に予約命令例外となるのは、readオペランド、r
ead−modify−writeオペランドに対すス
タックブツシュモード指定である。
(1,4,2) r多段間接アドレッシングモード」如
何に複雑なアドレッシングも、基本的には加算と間接参
照の組み合わせに分解される。従って、加算と間接参照
のオペレージロンをアドレッシングのプリミティブとし
て与えておき、それを任意に組み合わせることができれ
ば、如何なる複雑なアドレッシングモードをも実現可能
となる0本発明のデータ処理装置の多段間接アドレッシ
ングモードはこの様な考え方に基づいたアドレッシング
モードである@?jllなアドレッシングモードはモジ
ュール間のデータ参照あるいはAI (人工知能)言語
の処理系に特に有用である。
多段間接アドレッシングモードを指定する場合、基本ア
ドレッシングモード指定フィールドでは、レジスタベー
ス多段間接モード、PCベース多段間接モード、絶対ヘ
ース多段間接モードの3種類の指定方法の内のいずれか
1つを指定する。
レジスタベース多段間接モードはレジスタのイ直を拡張
する多段間接アドレッシングのベース値とするアドレッ
シングモードである。フォーマットの模式図を第30図
に示す、 Rnは汎用レジスタの番号を示す。
PCベース多段間接モードはプログラムカウンタの値を
拡張する多段間接アドレッシングのベース値とするアド
レッシングモードである。フォーマットの模式図を第3
1図に示す。
絶対ベース多段間接モードはゼロを拡張する多段間接ア
ドレッシングのベース値とするアドレッシングモードで
ある。フォーマットの模式図を第32図に示す。
拡張する多段間接モード指定フィールドは16ビツトを
単位としており、これを任意回反復する。
1段の多段間接モードにより、ディスプレースメントの
加算、インデクスレジスクのスケーリング(Xll X
2. ×4+ X8)と加算、メモリの間接参照を行な
う。多段間接モードのフォーマットの模式図を第33図
に示す。各フィールドは以下に示す意味を持つ。
E;O E++1 :多段間接モード継続 ニア]ルス計算終了 tap ==> address  or opera
nd!=0 :メモリ間接参照なし tap 4 disp 4 RX t 5cale =
=> Lap■・l :メモリ間接参照あり ■em tmp + disp + Rx傘5cale
 =−>LipM=O:  <Rx>をインデクスとし
て使用トl ;特殊なインデクス <RX>・0  インデクス値を加算しない  (RX
=O) くRX〉・1  プログラムカウンタをインデクス値と
して使用 (Rx=PC) <Rx>=2=   reserved口・O:多段間
接モード中の4ビツトのフィールドd4の値を4倍して
ディスプレースメント値とし、これを加算する d4は符号付きとして扱い、オペラン ドのサイズとは関係なく必ず4倍して 使用する D=l  :多段間接モードの拡張部で指定されたdi
spx(16/32ピッ日をディスプレースメント値と
し、これを加算する 拡張部のサイズはd4フィールドで指 定する d4=o001   dispxは16ビツ(・d4・
0010   dispxは32ビツト××=インデク
スのスケール(scale=1/2/4/8)プログラ
ムカウンタに対してX2. X4. X 13のスケー
リングを行なった場合には、その段の処理終了後の中間
(a(tap〉として不定値が入る。この多段間接モー
ドによって得られる実効アドレスは予測できない値とな
るが、例外は発生しない。プログラムカウンタに対する
スケーリングの指定は行なってはいけない。
多段間接モードによる命令フォーマットのバリエーショ
ンを第34図、第35図に示す。
第34図は、多段間接モードが維続するか終了するかの
バリエーションを示す。
第35図は、ディスプレースメントのサイズのバリエー
ションを示す。
任意段数の多段間接モードが利用できれば、コンパイラ
の中で段数による場合分けが不要になるので、コンパイ
ラの負担が軽減されるというメリットがある。多段の間
接参照の頻度が非常に少ないとしても、コンパイラとし
ては必ず正しいコードを発生できなければならないから
である。このため、フォーマット上では任意の段数が可
能になっている。
(1,5) r例外処理」 本発明のデータ処理装置はソフトウェア負荷の軽減のた
め豊富な例外処理機能を存する0本発明のデータ処理装
置では、例外処理は命令処理を再実行するもの(例外)
、命令処理を完了するもの(トラップ)及び割込の3種
類に分けて名称をつけている。また本発明のデータ処理
装置では、この3種の例外処理とシステム障害とを総称
してEITと称する。
(2)「機能ブロックの構成」 第1図は本発明のデータ処理装置の構成を示すブロック
図である。
本発明のデータ処理装置の内部を機能的に大きく分ける
と、命令フェッチ部101.命令デコード部102、 
PC計算部103.オペランドアドレス計算部104゜
マイクロROM部105.データ演算部106.外部パ
スインターフ二イス部107に分かれる。
第1図では、その他にCPU外部にアドレスを出力する
ためのアドレス出力回路10Bと、CPu外部とデータ
を入出力するためのデータ入出力回路109とを他の機
能ブロック部と分けて示した。
(2,1) r命令フェッチ部J 命令フェッチ部101にはブランチバッファ、命令キュ
ーとその制御部等があり、次にフェッチすべき命令のア
ドレスを決定してブランチバッファあるいはCPII外
部のメモリから命令を7エツチする。またブランチバッ
ファへの命令登録をも行う。
ブランチバッファは小規模であるためセレクティブキャ
ッシュとして動作する。ブランチバッファの動作の詳細
は特開昭63−56731号に開示されている。
次にフェッチすべき命令のアドレスは、命令キュー30
1に入力すべき命令のアドレスとして専用のカウンタに
て計算される0分岐あるいはジャンプが発止した場合に
は、新たな命令のアドレスがPC計算部103あるいは
データ演算部106から転送されてくる。
CPU外部のメモリから命令をフェッチする場合は、外
部バスインターフェイス部107を通して、フェッチす
べき命令のアドレスをアドレス出力回路10BからCP
u外部へ出力し、データ入出力回路109から命令コー
ドをフェッチする。そして、バッファリングした命令コ
ードの内、次にデコードすべき命令コードを命令デコー
ド部102に出力する。
(2,2) r命令デコード部」 命令デコード部102では、基本的には16ビフト(ハ
ーフワード)単位で命令コードをデコードする。このブ
ロックには第】ハーフワードに含まれるオペレーション
コードをデコードするFH−デコーダ、第2+第3ハー
フワードに含まれるオペレーションコードをデコードす
るNFHWデコーダ、アドレッシングモードをデコード
するアドレッシングモードデコーダが含まれる。これら
FIIWデコーダ、NFHWデコーダ、アドレッシング
モードデコーダを纏めて第1デコーダ303という。
FH−デコーダあるいはNFH−デコーダの出力を更に
デコードして、マイクロROMのエントリアドレスを計
算する第2デコーダ305、条件分岐命令の分岐予測を
行う分岐予測機構、オペランドアドレス計算の際のパイ
プラインコンフリクトをチエツクするアドレス計算コン
フリクトチエツク機構も含まれる。
命令デコード部102は命令フェッチ部101から入力
された命令コードを2クロツク(1ステツプ)につきO
〜6バイトずつデコードする。デコード結果の内、デー
タ演算部106での演算に関する情報がマイクロROM
部105に、オペランドアドレス計算に関係する情報が
オペランドアドレス計算部104に、pc計算に関係す
る情報がPC計算部103にそれぞれ出力される。
(2,3) rマイクロROM部」 マイクロROM部105には、主にデータ演算部106
を制御するマイクロプログラムが格納されているマイク
ロROM、マイクロシーケンサ、マイクロ命令デコーダ
等が含まれる。マイクロ命令はマイクロROMから2ク
ロツク(lステップ)に1度読出される。マイクロシー
ケンサはマイクロプログラムで示されるシーケンス処理
の他に、例外、割込及びトラップ(この3つを合わせて
61丁と称する)の処理をハードウェア的に受付ける。
またマイク口ROM部105はストアバ、ファの管理も
行う。マイクロROM部105には命令コードに依存し
ない割込みあるいは演算実行結果によるフラッグ情報と
、第2デコーダ305の出力等の命令デコード部の出力
が入力される。マイクロデコーダの出力は主にデータ演
算部106に対して出力されるが、ジャンプ命令の実行
による他の先行処理中止情報等の一部の情報は他のブロ
ックへも出力される。
(2,4) rオペランドアドレス計算部」オペランド
アドレス計算部104は命令デコード部102のアドレ
スデコーダ等から出力されたオペランドアドレス計算に
関係する情報によりハードワイヤード制御される。この
ブロックではオペランドのアドレス計算に関するほとん
どの処理が行われる。メモリ間接アドレシングのための
メモリアクセスのアドレス及びオペランドアドレスがメ
モリにマツプされたI10領域に入るか否かのチエツク
も行われる。
アドレス計算結果は外部バスインターフェイス部107
に送られる。アドレス計算に必要な汎用レジスタ及びプ
ログラムカウンタの値はデータ演算部より入力される。
メモリ間接アドレノソングを行う際は夕(部バスインタ
ーフェイス部107を通してアドレス出力回路108か
らCPu外部へ参照すべきメモリアドレスを出力し、デ
ータ入出力部109から入力された間接アドレス値を命
令デコード部102を通してフェッチする。
(2,5)  rPC計算部」 PC計算部103は命令デコード結果102から出ツノ
されるPC計算に関係する情報によりハードワイヤドに
制御され、命令のpc値を計算する。本発明のデータ処
理装置は可変長命令上ノ(・を有しており、命令をデコ
ー1なければその命令の長さが判らない。このため、P
C計算部103は命令テコ−1部102から出力される
命令長をデコード中の命令のpc値に加算することによ
り次の命令のpc値を作り出す、また、命令デコード部
102が分岐命令をデコードしてデコード段階での分岐
を指示した場合は、命令長の代わりに分岐変位を分岐命
令のpc値に加算することにより分岐先命令のpc値を
計算する8分岐命令に対して命令デコード段階で分岐を
行うことを本発明のデータ処理装置ではブリブランチと
称する。
このブリブランチの手法については特開昭635963
0 号及び特開昭63−55639号に詳しく開示され
ている。
P(J算部103の計算結果は各命令のpc値として命
令のデコード結果と共に出力される他、ブリブランチ時
には、次にデコーFずべき命令のアドレスとして命令フ
ェッチ部101へ出力される。また、次に命令デコード
部102でデコードされる命令の分岐予測のためのアド
レスにも使用される。
分岐予測の手法については特開昭63−175934号
に詳しく開示されている。
(2,6) rデータi’!¥部」 データ演算部106はマイクロプログラムにより制御さ
れ、マイクロROM部105の出力情報に従って各命令
の機能を実現するに必要な演算をレジスタと演W、器で
実行する。演算対象となるオペランドがアドレスあるい
は即値である場合は、オペランドアドレス計算部オペラ
ンドアドレス計算部104で計算されたアドレスあるい
は即値を外部バスインクフェイス部107を通過させて
得る。また、演算対象となるオペラン1′がCPU外部
のメモリにある場合は、アドレス計算部+04で計算さ
れたアドレスをバスインクフェイス部がアドレス出力回
路108から出力して、CPu外部のメモリからフェッ
チしたオペランドをデータ入出力回路109から得る。
演′JT、器としてはALU3+3、バレルシフタ、プ
ライオリティエンコーダあるいはカウンタ、シフトレン
スタなどがある。レジスタと主な演算器の間は3バスで
結合されており、1つのレジスタ間演算を指示する1マ
イクロ命令を2クロツク(lステップ)で処理する。
データ演算時にCPu外部のメモリをアクセスする必要
がある場合は、マイクロプログラムの指示により外部バ
スインターフェイス部1.07を通してアドレス出力回
路108からアドレスをCPU外部に出力し、データ人
出力回路109を通して目的のデータをフェッチする。
CPu外部のメモリにデータをストアする場合は、外部
バスインターフェイス部107を通してアドレス出力回
路108よりアドレスを出力すると同時に、データ人出
力回路109からデータをCPU外部に出力する。オペ
ランドストアを効率的に行うため、データ演算部106
には4バイトのストアバンファが備えられている。
ジャンプ命令の処理あるいは例外処理等を行って新たな
命令アドレスをデータ演算部106が得た場合は、これ
を命令フェッチ部101とPC計算部103(2,7)
 r外部バスインターフェイス部」外部バスインターフ
ェイス部107は本発明のデータ処理装置の外部バスで
の通信を制御する。メモリのアクセスはすべてクロック
同期で行われ、最小2クロックサイクル(1ステツプ)
で行うことができる。
メモリに対するアクセス要求は命令フ・エッチ部101
、オペランドアドレス計算部104及びデータ演算部1
06から独立に生じる。外部バスインターフェイス部1
07はこれらのメモリアクセス要求を調停する。更にメ
モリとCPUとを結ぶデータバスサイズである32ビツ
ト(1ワード)の整置境界を跨ぐメモリ番地にあるデー
タのアクセスは、このブロック内で自動的にワード境界
を跨ぐことを検知して2回のメモリアクセスに分解して
行う。
ブリフェッチするオペランドとストアするオペランドと
が重なる場合のコンフリクト防止処理及びストアオペラ
ンドからフェッチオペランドへのバイパス処理も行う。
(3)「パイプライン機構」 本発明のデータ処理装置のパイプライン処理機能は第2
図に模式的に示される如くである。
命令のブリフェッチを行う命令フェッチステージ(IF
ステージ)201.命令のデコードを行うデコードステ
ージ(Dステージ)202.オペランドのアドレス計算
を行うオペランドアドレス計算ステージ(^ステージ)
203.マイクロROMアクセス(特にRステージ20
6と呼ぶ)を行う部分とオペランドのブリフェッチ(特
にOFステージ207と称す)を行う部分とからなるオ
ペランドフェッチステージ(Fステージ)204.命令
を実行する実行ステージ(Eステージ)205の5段構
成をパイプライン処理の基本とする。
Eステージ205では1段のストアバンファがある他、
高機能命令の一部は命令の実行自体をパイプライン化す
るため、実際には5段以上のパイプライン処理効果があ
る。
各ステージは他のステージとは独立に動作し、理論上は
5つのステージが完全に独立動作する。
各ステージは1回の処理を最小2クロフク(1ステンブ
)で行うことができる。従って理想的には2クロンク(
1ステツプ)毎に次々とパイプライン処理が進行する。
本発明のデータ処理装置には、メモリーメモリ間演算あ
るいはメモリ間接アドレッシング等の如く1回の基本パ
イプライン処理のみでは処理し得ない命令もあるが、本
発明のデータ処理装置はこれらの処理に対してもなるべ
く均衡のとれたパイプライン処理が行える様に設計され
ている。複数のメモリオペランドを持つ命令に対しては
メモリオペランドの数に基づいてデコード段階で複数の
パイプライン処理単位(ステップコード)に分解してパ
イプライン処理を行う。
パイプライン処理単位の分解方法に関しては特開昭63
−89932号に詳しく開示されている。
IPステージ201からDステージ202に渡される情
報は、命令コード211そのものである。Dステージ2
02からAステージ203に渡される情報は、命令で指
定された演算に関するもの(0コード212と称す)と
、オペランドのアドレス計算に関係するもの(Aコード
213と称す)との2つがある。
Aステージ203からFステージ204に渡される情報
はマイクロプログラムのエントリアドレスあるいはマイ
クロプログラムのパラメータ等を含むRコード214と
、オペランドのアドレスとアクセス方法指示情報等を含
むFコード215との2つである。
Fステージ204からEステージ205に渡される情報
は、演算制御情報とリテラル等を含むEコード216と
、オペランドあるいはオペランドアドレス等を含むSコ
ード217との2つである。
Eステージ205以外のステージで検出されたEITは
、そのコードがEステージ205に到達する迄はBIT
処理を起動しない、Eステージ205で処理されている
命令のみが実行段階の命令であり、IFステージ203
からFステージ204までの間で処理されている命令は
まだ実行段階に至っていないからである。従って、Eス
テージ205以外で検出されたEITは、それが検出さ
れたことがステップコード中に記録されて次のステージ
に伝えられるのみである。
(3,1)rパイプライン処理単位」 (3,1,1) r命令コードフィールドの分類」本発
明のデータ処理装置のパイプライン処理単位は命令セッ
トのフォーマントの特徴を利用して決定されている。
(1)節で述べた如く、本発明のデータ処理装置の命令
は2バイト単位の可変長命令であり、基本的には゛2バ
イトの命令基本部子0〜4バイトのアドレシング拡張部
°を1〜3回反復することにより命令が構成されている
命令基本部には多くの場合、オペレーションコード部と
アドレッシングモード指定部とがあり、インデソクスア
ドレシソングあるいはメモリ間接アトルフシングが必要
な場合にはアドレッシング拡張部の代わりに“2バイト
の多段間接モード指定部+0〜4バイトのアドレッシン
グ拡張部”が任意個付く、また、命令により2または4
バイトの命令固有の拡張部が最後に付く。
命令基本部には命令のオペレーションコード、基本アド
レッシングモード、リテラルなどが含まれる。アドレッ
シング拡張部はディスプレースメント、絶対アドレス、
即値、分岐命令の変位のいずれかである。命令固有の拡
張部にはレジスタマツプ、I−forsaL命令の即値
指定等がある。第35図は、本発明のデータ処理装置の
基本的命令フォーマントの特徴を示す模式図である。
(3,1,2) rステップコードへの命令の分解」本
発明のデータ処理装置では、上記の命令フォーマントの
特徴を生かしたパイプライン処理を行う。
Dステージ202では″2バイトの命令基本部子〇〜4
バイトのアトレンジング拡張部″、“多段間接モード指
定部子アトレンジング拡張部′又は命令固有の拡張部を
1つのデコード単位として処理する。各回のデコード結
果をステップコードと称し、Aステージ203以降では
このステップコードをパイプライン処理の単位としてい
る。ステップコードの数は命令毎に固有であり、多段間
接モード指定を行わない場合は、1つの命令は最小1個
、最大3個のステップコードに分かれる。多段間接モー
ド指定が行われた場合はそれだけステップコードが増加
する。但し、これは後で述べる様にデコード段階のみで
ある。
(3,1,3) rプログラムカウンタの管理J本発明
のデータ処理装置のパイプライン上に存在するステップ
コードは全て別命令に対するものである可能性があり、
このためプログラムカウンタの値はステップコード毎に
管理される。全てのステップコードは、そのステップコ
ードのもとになった命令のプログラムカウンタ値を有す
る。ステップコードに付属してパイプラインの各ステー
ジを流れるプログラムカウンタ値はステ、ブブログラム
カウンタ(SPC)と称する。 SPCはパイプライン
ステージ間を次々と受は渡されていく。
(3,2) r各パイプラインステージの処理J各パイ
プラインステージの入出カステップコードには第2図に
示したように便宜上名前が付けられている。また、ステ
ップコードはオペレーションコードに関する処理を行い
、マイクロプログラムのエントリアドレス及びEステー
ジ205に対するパラメータなどになる系列とEステー
ジ205のマイクロ命令に対するオペランドになる系列
との2系列がある。
(3,2,1) r命令フェッチステージ」命令フェッ
チステージ(11’ステージ)201は命令をメモリあ
るいはブランチバッファからフェッチして命令キュー3
01に入力し、Dステージ202に対して命令コードを
出力する。命令キュー301の入力は整置された4バイ
!・単位で行う。メモリから命令をフェッチする場合は
、整置された4バイトにつき最小2クロック(lステッ
プ)を要する。
ブランチバッファがヒツトした場合は、整置された4バ
イトにつきlクロックでフェッチ可能である。命令キュ
ー301の出力単位は2バイト毎に可変であり、2クロ
ツクの間に最大6バイトまで出力できる。また、分岐の
直後には命令キュー301をバイパスして命令基本部2
バイトを直接命令デコーダに転送することも可能である
ブランチバッファへの命令の登録及びクリア等の制御、
ブリフェッチ先の命令のアドレスの管理や命令キューの
制御もIFステージ201で行う。
IFステージ201で検出するBITには、命令をメモ
リからフェッチする際のバスアクセス例外あるいはメモ
リ保護違反などによるアドレス変換例外がある。
(3,2,2) r命令デコードステージ」命令デコー
ドステージ(Dステージ)202はIFステージ201
から入力された命令コードをデコードする。デコードは
命令デコード部102のFIIWデコーダ、NFHWデ
コーダ及びアドレッシングモードデコーダを合わせた第
1デコーダ303を使用して、2クロフク(1ステツプ
)単位に1度行ない、1回のデコード処理で、0〜6バ
イトの命令コードを消費する(RET命令の復帰先アド
レスを含むステップコードの出力処理などでは命令コー
ドを消費シない)、1回のデコードでAステージ203
に対してアドレス計算情報としてのAコード213であ
る制御コードとアドレス修飾情報と、オペレーションコ
ードの中間デコード結果としてのDコード212である
制御コードと8ビツトのリテラル情報とを出力する。
Dステージ202では、各命令のPC計算部103の制
御、分岐予測処理、プリブランチ命令に対するプリブラ
ンチ処理、命令キュー301からの命令コード出力処理
をも行う。
Dステージ202で検出するEITには、予約命令例外
及びプリブランチ時の奇数アドレスジャンプトラップが
ある。また、IFステージ201より転送されてきた各
種BITはステップコード内にエンコードする処理をし
てAステージ203に転送する。
(3,2,3) rオペランドアドレス計算ステージ」
オペランドアドレス計算ステージ(Aステージ)203
は処理機能が大きく2つに分かれる。1つは命令デコー
ド部102の第2デコーダ305を使用してオペレーシ
ョンコードの後段デコードを行う処理で、他方はオペラ
ンドアドレス計算部104でオペランドアドレスの計算
を行う処理である。
オペレーションコードの後段デコード処flはDコード
212を入力とし、レジスタ、メモリの書込み予約及び
マイクロプログラムのエントリアドレスとマイクロプロ
グラムに対するパラメータなどを含むRコード214の
出力を行う。なお、レジスタあるいばメモリの書込み予
約は、アドレス計算で参照したレジスタやメモリの内容
がパイプライン上を先行する命令で書換えられることに
より誤ったアドレス計算が行われるのを防ぐためのもの
である。レジスタあるいはイモリの書込み予約はデッド
ロックを避けるため、ステップコード毎ではなく命令毎
に行う、レジスタ及びメモリへの書込み予約については
特願昭62−144394号で詳しく述べられている。
オペランドアドレス計算処理はA:1−F213を入力
とし、Aコード213に従いオペランドアドレス計算部
104で加算あるいはメモリ間接参照を組合わせてアド
レス計算を行い、その計算結果をFコード215として
出力する。この際、アドレス計算に伴うレジスタ及びメ
モリの読出し時にコンフリクトチエツクを行い、先行命
令がレジスタあるいはメモリに書込み処理を終了してい
ないためコンフリクトが指示されれば、先行命令がEス
テージ205で書込み処理を終了するまで待つ。また、
オペランドアドレス及びメモリ間接参照のアドレスがメ
モリにマツプされたI10領域に入るか否かのチエツク
も行う。
Aステージ203で検出するEITには予約命令例外、
特1ヶ命令例外、バスアクセス例外、アドレス変換例外
、メモリ間接アドレッシングの時のオペランドブレイク
ポイントヒントによるデバッグトラノフ″がある。Dコ
ード212又はAコード213自体がEITを起こした
ことを示していれば、Aステージ203はそのコードに
対してアドレス計算処理をせず、そのEITをRコード
2】4及びFコード215に伝える。
(3,2,4) rマイクロROMアクセスステージ」
オペランドフェッチステージ(Fステージ)204も処
理が大きく2つに分かれる。一方はマイクロI?OMの
アクセス処理であり、特にRステージ206と称する。
他方はオペランドプリフェッチ処理であり、特にOFス
テージ207と称する。Rステージ206とOFステー
ジ207とは必ずしも同時に動作するわけではなく、メ
モリアクセス権が獲得できるか否か等に依存して独立に
動作する。
Rステージ206の処理であるマイクロROMアクセス
処理は、Rコード214に対して次のEステジ205で
の実行に使用する実行制御コードであるEコード216
を生成するためのマイクロROMアクセスとマイクロ命
令デコード処理である。1つのRコード214に対する
処理が2つ以上のマイクロプログラムステノブに分解さ
れる場合、マイクロ命令旧よEステージ205で使用さ
れ、次のRコード214はマイクロROMアクセス待ち
になる。Rコード214に対するマイクロROMアクセ
スが行われるのは、その前のEステージ205での最後
のマイクロ命令実行の時である。本発明のデータ処理装
置では、はとんどの基本命令は1マイクロプログラムス
テツプで行われるため、実際にはRコード214に対す
るマイクロROMアクセスが次々と行われることが多い
Rステージ206で新たに検出するEITはない。
Rコード214が命令処理再実行型のBITを示してい
る時は、そのEIT処理に対するマイクロプログラムが
実行されるので、Rステージ206はそのRコード21
4に従ったマイクロ命令をフェッチする。
Rコード214が奇数アドレスジャンプトラップを示し
ている場合、Rステージ206はそれをEコード216
によって伝える。これはブリブランチに対するもので、
Eステージ205ではそのEコード216で分岐が生し
なければそのブリブランチをを効として奇数アドレスジ
ャンプトラップを発生する。
(3,2,5) rオペランドフェッチステージ」オペ
ランドフェッチステージ(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が書き込み処理を行おうとするオペ
ランドとが一致する場合は、オペランドブリフェッチは
メモリから行わずバイパスして行う。また、■70領域
に対してはオペランドブリフェッチを遅延させ、先行命
令がすべて完了するまで待ってオペランドフェッチを行
う。
OFステージ207で1食出されるEITには、バスア
クセス例外、アドレス変換例外、オペランドブリフェッ
チに対するブレイクポイントヒツトによるデバッグトラ
ップがある。Fコード215がデバッグトランプ以外の
BITを示している時は、それをSコード217に転送
し、オペランドブリフエッヂは行わない、Fコード21
5がデバッグトラ、プを示している時は、そのFコード
215に対してEITを示していない場合と同し処理を
すると共にデバ7グトラツプをSコード217に伝える
(3,2,6) r実行ステージ」 実行ステージ(Eステージ)205はEコード216及
びSコード217を入力として動作する。このEステー
ジ205が命令を実行するステージであり、Fステージ
204以前のステージで行われた処理は全てEステージ
205のための前処理である。Eステージ205でジャ
ンプ命令が実行されたり、あるいはεIT処理が起動さ
れたりした場合は、!Fステージ201からFステージ
204までの処理は全て無効化される。Eステージ20
5はマイクロプログラムにより制御され、Rコード21
4に示されたマイクロプログラムのエントリアドレスか
らの一連のマイクロプログラムを実行することにより命
令を実行する。
マイクロROMの読み出しとマイクロ命令の実行とはパ
イプライン化されて行われる。従ってマイクロプログラ
ムで分岐が起きた場合は、1マイクロステツプの空きが
できる。また、Eステージ205はデータ演算部106
にあるストアバッファを利用して、4バイト以内のオペ
ランドストアと次のマイクロ命令実行をパイプライン処
理することもできる。
Eステージ205では、Aステージ203で行ったレジ
スタ及びメモリに対する書込み予約をオペランドの書き
込み後に解除する。
また、条件分岐命令がEステージ205で分岐を発した
場合は、その条件分岐命令に対する分岐予測が誤ってい
たのであるから、分岐層層の書換えを行う。
Eステージ205で検出されるEITには、バスアクセ
ス例外、アドレス変換例外、デバッグトラップ、奇数ア
ドレスジャンプトラップ、予約機能例外、不正オペラン
ド例外、予約スタックフォーマット例外、ゼロ除算トラ
ップ、無条件トラップ、条件トラップ、遅延コンテキス
トトラップ、外部割込、遅延割込、リセット割込、シス
テム障害がある。
Eステージ205で検出されたBITは全て!!IT処
理されるが、Eステージ以前のIPステージ201から
Fステージ204の間で検出され、Rコード214ある
いはSコード217に反映されている81丁は必ずしも
BIT処理されるとは限らない、 IFステージ201
からFステージ204の間で検出されたが、先行の命令
がEステージ205でジャンプ命令が実行されたなどの
原因でEステージ205まで到達しなかったEITは全
てキャンセルされる。そのBITを起こした命令はそも
そも実行されなかったことになる。
外部割込及び遅延割込は命令の切れ目でEステージ20
5に直接受は付けられ、マイクロプログラムにより必要
な処理が実行される。その他の各種EITの処理はマイ
クロプログラムにより行われる。
(3,3) r各パイプラインステージの状態制御」パ
イプラインの各ステージは入力ランチと出力ラッチとを
有し、他のステージとは独立に動作することを基本とす
る。各ステージは1つ前に行った処理が終わり、その処
理結果を出力ランチから次のステージの入力ランチに転
送し、自分のステージの入力ランチに次の処理に必要な
入力信号がすべて揃えば次の処理を開始する。
つまり各ステージは、1つ前段のステージから出力され
てくる次の処理に対する入力信号が全て有効となり、今
の処理結果を後段のステージの入力ランチに転送して出
力ラッチが空になると次の処理を開始する。
各ステージが動作を開始する1つ前のクロックタイミン
グで入力信号が全て揃っている必要がある。入力信号が
揃っていない場合、そのステージは待ち伏B(入力待ち
)になる。出力ランチから次のステージの入力ラッチへ
の転送を行う場合には次のステージの入力ラッチが空き
状態になっている必要があり、次のステージの入力ラッ
チが空きでない場合もパイプラインステージは待ち状態
(出力待ち)になる、必要なメモリアクセス権が獲得で
きなかったり、処理しているメモリアクセスにウェイト
が挿入されたり、その他のパイプラインコンフリクトが
生じると各ステージの処理自体が遅延する。
(4)  r POP命令の処理シーケ〉′ス」上述の
如きデータ処理装置において、pop命令がパイプライ
ン上で如何に処理されるかについて、デスティネーショ
ンがメモリ指定である場合とレジスフ指定である場合と
に分けて、図面を参照し7て更に詳しく説明する。
本発明のデータ処理装置の更に詳しい構成を第3図のブ
ロック図に示す。
命令キュー301は、命令フェッチ部101中にあり、
IFステージ201の処理に関与する。
第1デコーダ303は、命令デコード部102中にあり
、Dステージ202の処理に関与する。
第2デコーダ304と^TMPレジスタ310は、命令
デコード部102中にあり、Aステージ203の処理に
関与する。ATMPレジスタ310は、メモリ間接参照
時にメモリアクセスでリードしたデータを保持するため
に使用される。
アドレス加算器305.AOIITレジスタ306.B
ASEレジスタ307. INDEXレジスタ308及
びDISPI、ジスタ309はオペランドアドレス計算
部104中にあり、Aステージ203の処理に関与する
。BASEレジスタ307゜INDEX L、ジスタ3
08. lll5P L、ジスタ309は、それぞれベ
ース値、インデックス値、ディスプレースメント値を保
持するためのレジスタである。RASEレジス9301
. INDEXレジスタ308.DISP L、ジスタ
309の値を同時に加算するのがアドレス加3114i
i305である。AOUTレジスタ306は、アドレス
加算器305の出力保持のためのレジスタである。
^SPレジスタ311は、スタックポインタ計算部中に
あり、Aステージ203の処理に関与する。
スタックからのポツプ操作、スタックへのブツシュ操作
等によるSP値のコンフリクトを防ぐため、Aステージ
203では、Eステージ205のsp値に先行してAス
テージのSP値であるASP値を管理している。ポツプ
操作及びブツシュ操作に伴うSP値の更新は、Aステー
ジ203においてA S P (!!を制御することに
よって行われる。従って、ASP4fiを参照すること
により、通常のポツプ操作及びブツシュ操作の直後でも
SP値のコンフリクトに起因するステンブコードの処理
の遅れを生じることなく処理を進めることが出来る。こ
のASP値を保持するのがASPレジスタ311である
。なお、SP値の管理方法に関しては特願昭62−14
5852号で詳しく開示されている。
マイクロl?OM、マイクロシーケンサ、マイクロ命令
デコーダ等を含むマイクロll0M部105は、Rステ
ージ206の処理に関与する。
汎用レジスタファイル312.ALU313. SOレ
ジスタ314、Doレジスタ315は、データ演算部1
06中にあり、OFステージ207とEステージ205
の処理に関与する。SDレジスタ314は、オペランド
フェッチ時にメモリアクセスでリードしたデータを保持
するためのレジスタである。DOレジスク315は、E
ステージ205がメモリアクセスでデータのリードある
いはストアを行う際に対象となるデータを保持するため
のレジスタである。
IAレジスタ316.FAレジスタ317.SAレジス
タ318゜AAレジスタ319は外部バスインターフェ
ース部107の一部分である。 IAレジスタ316は
、Aステージ208がメモリ間接参照時にメモリアクセ
スを行う際にアドレスをセントするレジスタである。 
FAレジスタ317は、OFステージ207がオペラン
ドのフェッチ時にメモリアクセスを行う際にアドレスを
セントするレジスタである。 AAレジスク319は、
Eステージ205がメモリアクセスでデータのリードあ
るいはストアを行う際にアドレスをセットするレジスタ
である。
OFステージ207はオペランドフェッチしたデータと
共にそのアドレスをEステージ205に送るが、その際
に送るアドレスを保持するためのレジスタがSAレジス
タ318である。このSAレジスタ318は、アドレス
を送るだけでなく、即値を送る場合にも使用される。
なお本発明のデータ処理装置のバスには、DDババス2
0.DISPバス321. Aバス322.^0バス3
23.^Aバス324、Slバス325. S2バス3
26.Doババス27がある。
Dステージ202の華純化した構成を第4図のブロック
図に示す。
Dステージ202は、既に述べた如く主として第1デコ
ーダ303にて構成されている。この第1デコーグ30
3はPLA(Programsable Logic 
Array)にて構成されている。Dステージ202に
命令コード211が入力されると、第1デコーダ303
によりデコードされてDコード212及びAコード21
3が生成され、出力される。
Dコード212は命令デコード部102中のAステージ
203の処理を行う部分に、またAコード213はオペ
ランドアドレス計算部104中のAステージ203の処
理を行う部分にそれぞれ与えられる。
なお、401は内部状態保持ラッチである。
命令デコード部102中でAステージ203の処理を行
う部分の構成を第5図のブロック図に示す。
この部分は、第2デコーダ304.右レジスタ番号生成
部501.左レジスタ番号生成部502.レジスタ番号
生成部503.サイズ住成部504等にて構成されてい
る。なお第2デコーダ304は第1デコーダ303と同
様にPLAにて構成されている。
入力されるDコード212は、オペコードの中間デコー
ド結果、右しジスタ番号情報、左しジスク番号情報、右
レジスタサイズ−1,左レジスタサイズ−5等にて構成
されている。
右レジスタ番号情報及び左レジスタ番号情報は、それぞ
れ右レジスタ番号生成部501及び左レジスタ番号生成
部502に入力され、右レジスタ番号R1と左レジスタ
番号R4とをそれぞれ生成する。右レジスタ番号情報に
は、オペランドがレジスタ上の値1 リテラル1メモリ
上の値あるいはm(Itのいずれであるかを示す情報が
含まれる。左レジスタ番号情報には、オペランドがレジ
スタ上の値あるいはリテラルのいずれであるかを示す情
報が含まれる。
右レジスタ番号R8及び左レジスタ番号RLはそれぞれ
命令フォーマット中の第1のレジスタ指定部及び第2の
レジスタ指定部とに対応付けられるものであり、そのレ
ジスタ番号によってそれぞれ第1のオペランド及び第2
オペランドの格納先が指定される。−例として第14図
に示すR−FORMAT命令を挙げると、Rnは第1の
レジスタ指定部であって右レジスタ番号りに対応し、R
s+は第2のレジスタ指定部であって左レジスタ番号れ
に対応する。
命令フォーマント上では、第1のオペランド指定部及び
第2のオペランド指定部のいずれがソースでありまたデ
スティネーションであるかは一意的には決っていない、
このため、右レジスタ番号R5と左レジスタ番号RLと
のいずれがソースレジスタ番号Rsになり、デスティネ
ーンッンレジスタ番号R0になるかは、第2デコーダ3
04の出力であるレジスタ番号制御信号によってレジス
タ番号生成部503において決定される。
また、第2デコーダ304の出力であるサイズ制御信号
が与えられたサイズ生成部504では、右レジスタ番号
R1が示すレジスタのデータサイズである右レジスタ番
号情報、と左レジスタ番号RLが示すレジスタのデータ
サイズである左レジスタサイズ−Lとがそれぞれソース
サイズ−8、デスティネーションサイズ6にて定められ
る。
Fステージ204では、第2デコーダ304の出力であ
るRコード・Fコード有効信号によって、Rコード21
4とFコード215とがFステージ204に送られたこ
とを認識する。
第6図及び第7図はそれぞれレジスタ番号生成部503
及びサイズ生成部504の構成を示す回路図である。
第6図における入力信号RCI、1lc2.RC3,R
C4は第2デコーダ304が出力するレジスタ番号′I
4I+1信号である。また、第7図における入力信号S
CI、 SC2゜SC3,SC4は第2デコーダ304
が出力するサイズ制御信号である。
601.602,603,604,701,702,7
03,704はそれぞれNチャネルトランスミッション
ゲート(TG) 、 605はPチャネル丁G、606
,607はインバータ、608はORゲートを示す、そ
れぞれの回路は入力ゲートがセレクタになっているラン
チで構成されている。また、回路610はPチャネル↑
G605.インバータ606.インバータ607及びO
Rゲート608にて構成されている。
そして、回路611,710,711は共に回路610
と同等の構成である。
なお、第6図及び第7図では簡略化のため1ビット分の
回路を示している。しかし、レジスタ番号を示す信号及
びサイズを示す信号はそれぞれ5ビット及び2ビツトで
あるので、実際はそれぞれ対応するビット数の回路で構
成されている。
第8図は第5図に示した第2デコーダ304の出力であ
るRコード・Fコード出力制御信号、レジスタ番号制御
信号及びザイズ制m信号のPOP命令の際の内容を示す
表である。
第9図Ta1. fblはパイプライン上におけるPO
P命令の処理シーケンスを示すフローチャートである。
第9図(a)に示されているのはデスティ不−ソヨンが
メモリ指定時のフローチャートである。また第9図Ta
1に示されているのはデスティネーションがレジスタ指
定時のフローチャートである。
第10図fal、lb1. fcl、 fdlは、po
p命令を処理する際のDステージ以降のステージにおけ
るステップコートの処理の流れを示す模式図である。図
において、縦軸は時間を表しており、1目盛りが2クロ
ツク(1ステップ)に相当する。
第10図cat、 (blはそれぞれデスティネーショ
ンがメモリ指定時とレジスタ指定時であり、且つパイプ
ライン上で待ち状態のない場合のステップコードの処理
の流れを示している。
第1O図tc+、 fdlはそれぞれデスティネーショ
ンがメモリ指定時とレジスタ指定時であり、且つPOP
命令の直前のステップコードの処理にEステージ205
において6クロフク(3ステツプ)要し、そのためPO
P命令のステップコードに待ち状態が生じた場合のステ
ップコードの処理の流れを示している。
第9図Ta1 、 (blはPOP命令の命令フォーマ
ットを示す模式図である。  I)OP命令の命令フォ
ーマントは第17図に示したGl−FORMATである
。そして、第37図(5)はレジスタ間接アドレッシン
グの場合を示す。ここで指定する汎用レジスタ番号Rn
は参照先の汎用レジスタを示す。また第37図fblは
レジスタ直接アドレッシングの場合を示す。ここで指定
する汎用レジスタ番号りはデスティネーションとなる汎
用レジスタを示す。
POP命令は、スタックトップ上のデータをメモリある
いはレジスタに転送する命令であるので、メモリーレジ
スタ間、またはメモリーメモリ間の転送命令と実質的に
同等である。そこで、本発明のデータ処理装置では、ソ
ースオペランド指定部がないにもかかわらずソースオペ
ランド部の処理のためのステップコートを生成し、Eス
テージ以前においてl・要な前処理の全てを行うように
構成されている。
以下、第9図Ta1. fblのフローチャートを参照
して説明する。
(4,1)rデスティネーションがメモリ指定時」先ず
、IFステージ201はPOP命令をメモリ上よりフェ
ッチして命令キュー301に入力し、Dステージ202
に対してPOP命令の命令コード2+1を出力する。
Dステージ202は、IFステージ201によってフェ
ッチされたPOP命令を第1デコーダ303によりデコ
ードする。
pop命令の命令コード211は第1デコーダ303に
入力されてデコードされ、POP命令の第1のステップ
コード(1−1)が生成される。デコード結果の一部は
内部状態信号として内部状態保持ラッチ401に保持さ
れる。
次のデコードのサイクルでは、内部状態保持ランチ40
1からの内部状態信号に応答して、第1デコーダ303
はIPステージ201からの命令コード211を取り込
まずにPOP命令の第2のステップコード(1−2)を
生成する。このようにして、第9図(alに示す如く2
つのステップコードが生成される。
POP命令中にはソースオづランド指定部はないが、命
令の機能としてソースオペランドがスタックトップであ
ることが暗に示されている。従って、本発明によるデー
タ処理装置では、POP命令をデコードした段階で、ソ
ースオペランドに関する処理を予め行うためのステップ
コード<1−2)を生成する。
Dステージ202が出力するそれぞれのステップコード
は、Aコード21.3とDコード212とから構成され
ている。同一のステップコード中にあるAコード213
とDコード212とは同時にAステージ203に送られ
る。  pop命令から生成されたステップコードはA
ステージ203に対して、ステップフ−ド(11)、ス
テップコード(1−2)の順序で送られる。
以降のステージにおける処理は、各ステップコードに関
して説明する。
(4,1,1)  r POP命令の第1ステツプコー
ド(1−1)の処理」 Aステージ203はAコード213とDコード212と
を入力する。
Aコード213がAステージ203に入力されると、A
ステージ203ではAコード213の制御信号の制御に
よってアドレス計算が行われる。参照先レジスタ情報に
より汎用レジスタファイル312の参照先の汎用レジス
タ中の値がAバス322上からBASEレジスタ307
に格納される。ステップコード(1−1)のAコード2
13中に含まれる制御信号によりrNI)EXレジスタ
308とDISPレジスタ309がクリアされる。
この3つのレジスタの値がアドレス加算器305により
加算され、その結果はAOUTレジスタ306に格納さ
れる。更に、AOuTレジスタ306中の値は^Oババ
ス23を介してFAレジスタ317に送られる。 FA
レジスタ317中にある参照先の汎用レジスタからの値
は第2デコーダ304の出力の一部と共にFコード21
5となる。
第8図に示す如く第2デコーダ304は、Dコード21
2の中間デコード結果を入力すると、マイクロプログラ
ムのエントリアドレスあるいは種々の制御情報を生成す
る。
また、Dコード212中の右レジスタ番号情報及び左し
ジスタ番号情軸はそれぞれ右レジスタ番号生成部501
及び左レジスタ番号生成部502に入力され、右レジス
タ番号R9及び左しジスク番号RLを生成する。  p
op命令のステップコード(1−1)では、右レジスタ
番号R1のみが意味を有していてSロレジスタ318を
示す、また、右レジスタサイズhはワードを示す。
第2デコーダ304が出力する制御情報にはレジスタ番
号制御信号とサイズ制御信号とが含まれる。
レジスタ制御信号は、右レジスタ番号りがデスティネー
ションレジスタ番号R11に対応することを示す、また
、サイズ制御信号は、右レジスタサイズ6がデスティネ
ーションレジスタサイズW、に対応することを示す。
レジスタ番号制御信号RCL、RC2,RC3,RC4
の中でRC3のみがイネーブルとなり、NチャネルTG
603のみがONL、右レジスタ番号R11がデスティ
ネーションレジスタ番号11+として保持される。また
、サイズ制御信号SCI、SC2,SC3,SC4の中
でSC3のみがイネーフ゛ルとなり、NチャネルτG7
03のみが01、右レジスタサイズ6がデスティネーシ
ョンレジスタサイズW0として保持される。
この様にステップコード(1−1)中では、デスティネ
ーションレジスタ番号Rob!SDレジスタ318を示
し、またデスティネーションレジスタサイズW。
はワードを示す。
これらマイクロプログラムのエントリアドレス及びレジ
スタ番号等からRコード214が生成される。
この様にして生成されたRコード214とFコード21
5とは同時にFステージ204に送られる。
Rステージ206は、Rコード・Fコード有効1ε号が
イネーブルになると、Rコード214を入力し、Rコー
ド214中に含まれるマイクロプログラムのエントリア
ドレスにてマイクロROM105をアクセスする。マイ
ク0RQF1105の出力はデコードされ、レジスタ番
号等と共にEコード216となる。このEコード216
のデスティネーションレジスタ番号R。
が示すレジスタはSDレジスタ314であり、またデス
ティネーションレジスタサイズ−9はワードである。
OFステージ207は、Rコード・Fコード有効信号が
イネーブルになると、Fコード215を入力し、Fコー
ド215の一部であるFAレジスク317中の値はSA
レジスタ31Bに転送される。S^レジスタ318中の
値はSコード217としてEステージ205に送られる
Eステージ205にEコード216とSコード217が
入力されると、SAレジスタ318中の値をAAレジス
タ219に格納せよ、という処理が行われる。この場合
、デスティネーションレジスタ番号R,が示すレジスタ
はSDレジスタ314であるが、書き込みオペランドで
あるのでこの値は意味が無い。このため、SAレジスタ
318中の値が^Aレジスタ3+9に転送されるのみで
ある。
以上の如く、ステップコード(1−1)はパイプライン
上を順次処理されていく。
(4,1,2)  r POP命令の第2ステンプコー
ド(1−2)の処理」 Aステージ203はAコード213とDコード212と
を入力する。
Aコード213がAステージ203に入力されると、へ
ステージ203ではAコード213中の制御信号の制御
によってアドレス計算が行われる。Aステージ203の
スタックポインタである^SPレジスタ311から値が
Aバス322上に出力され、BASEレジスタ307に
格納される。  INDEXレジスタ308及びDIS
Pレジスタ309はクリアされる。RASεレジスタ3
07゜INDEX レジスタ308及びDISPI、ジ
スタ309の値がアドレス加算器305で加算され、そ
の結果はAOUTレジスタ306に格納される。この動
作によって、ASPレジスタ311の内容がへ00丁レ
ジスタ306に転送される。同時にASPレジスタ31
1は+4インクリメントされる。更に、AO[JTレジ
スタ306中の値は^0バス323を介してFAレジス
タ31.7に送られる。
FAレジスタ317中にあるASP値は第2デコーダ3
04の出力の一部と共にFコード215となる。
第8図に示す如く第2デコーダ304は、Dコード21
2の中間デコード結果が入力されると、マイクロプログ
ラムのエントリアドレス及び種々の制jB情報を生成す
る。
また、Dコード212中の右レジスタ番号情報及び左レ
ジスタ番号情報は、それぞれ右レジスタ番号生成部50
1及び左レジスタ番号生成部502に入力され、右しジ
スタ番号R1,左しジスク番号RLが生成される。  
POP命令の第2のステップコード(12)では、右レ
ジスタ番号りのみが意味を有していてSDレジスタ51
4を示す、右レジスタサイズ6はワードを示す。
この右レジスタ番号情報は、命令フォーマント中で指定
されるものではなく、このステップコード(1,−2)
生成時にDステージ202で生成されたものである。
第2デコーダ304が出力する制御情報の中には、レジ
スタ番号制御情報とサイズ制御情報が含まれる。レジス
タ番号制f:Jl信号は右レジスタ番号R,がソースレ
ジスタ番号R,に対応することを示す。またサイズ制御
信号は、右レジスタサイズhがソースレジスタサイズh
に対応することを示す。
レノスタ番号制i卸信号RC1,RC2,RC3,RC
4の中でRCIのみがイネーブルとなり、NチャネルT
G601のみがONシ、右レジスタ番号+1.がソース
レジスタ番号R3として保持される。デスティネーンヨ
ンレジスタ番号Roは、ステップコード(1−1)で処
理時に保持した番号のままである。また、サイズ制御信
号SCI、SC2,SC3,SC4の中でSCIのみが
イネーブルとなり、NチャネルTG701のみがONL
、右レジスタサイズ6がソースレジスタサイズ6として
保持される。
このようにステップコード(+−2)中では、ソースレ
ジスタ番号RsはSDレジスタ314を示し、ソースレ
ジスタサイズ−3はワードを示す。
これらのマイクロプログラムのエントリアドレス及びレ
ジスタ番号等からRコード21.4が生成される。
このようにして生成されたRコード214及びFコード
215は同時にFステージ204に送られる。
Rステージ206は、Rコード・Fコード有効信号がイ
ネーブルとなると、Rコード214を入力し、Rコード
214中に含まれるマイクロプログラムのエントリアド
レスにてマイクロROM105をアクセスする。マイク
ロRO旧05の出力はデコードされ、レジスタ番号等と
共にEコード216となる。このステップコード(1−
2)のソースレジスタ番号R8が示すレジスタはSDレ
ジスタ314であり、またソースレジスタサイズイ、は
ワードである。
OFステージ207は、Rコード・Fコード有効信号が
イネーブルとなると、Fコード215を入力する。Fコ
ード215の一部であるFAレジスタ3+7の値はこの
命令のSP値である。そして、FAレジスタ317の値
をアドレス値として、外部ハスインターフェース部10
7を介してスタックトップに対してオペランドのブリフ
ェッチが行われる。このスタックトップに対するアクセ
スにおいて、ブリフェッチされた値は外部バスインター
フェース部107を介して本発明のデータ処理装置内に
読み込まれ、DOババス20上よりSDレジスタ314
に保持される。
Sロレジスタ314中の値はSコード217の一部とし
てEステージ205に送られる。
Eステージ205は、Eコード216及びSコード21
7を入力すると、A^レジスタ319の値をデスティネ
ーションアドレスとしてソースレジスタ番号R1が示す
レジスタ中の値を転送せよ、という処理が行われる。こ
の場合、ソースレジスタ番号R5が示すレジスタはSD
レジスタ314である。従って、初めの2クロツク(l
ステップ)でスタックトップからプリフェッチされたS
Dレジスタ314中の値は、Slバス325上からAL
υ313へ送られ、演算されることなく00バス327
上からDOレジスタ315に転送される。
次の2クロツク(1ステツプ)でDOレジスタ315に
送られたデータは、ステップコード(1−1)の処理で
保持した^Aレジスタ319中の値をデスティネーショ
ンアドレスとして、外部バスインターフェース部107
を介して格納される。
Eステージ205において、基本的にASP命令の第2
ステツプコード(1−2)は処理に4クロツク(2ステ
ツプ)を要する。しかし、データの演算と格納とはパイ
プライン化されているので、データの格納処理中に次の
命令の処理を始める場合もあり、この場合は処理に2ク
ロツク(lステップ)を要するのみである。
以上の如くして、ステップコード(1−2)はパイプラ
イン機構上を順次処理されていく。
本発明のデータ処理装置においては、第10図fatに
示す如<  pop命令のステップコード(1−1)及
びステップコード(1−2)はパイプラインの各ステー
ジ上で順次処理されていく、従って、POP命令の処理
時における各ステージの負荷分散が十分に行(4,2)
 rデスティネーションがレジスタ指定時」アトレジ7
シングモードがレジスタ直接モードである場合、デステ
ィネーションが汎用レジスタになったことによりデステ
ィネーションオペランドに関する処理の簡略化が可能に
なる。
以下に、POP命令のアトレジ7シングモードがレジス
タ直接モードである場合に、デスティネーションオペラ
ンドに関する処理を如何に簡略化するかを詳細に説明す
る。
なお、ここでデスティネーションとなる汎用レジスタの
レジスタ番号はR3であるとする。従って、第37図(
blの汎用レジスタ番号RnはR1である。
先ず、IFステージ201はPOP命令をメモリからフ
ェッチして命令キュー211に入力し、Dステージ20
2に対してPOP命令の命令コード211を出力する。
Dステージ202は、IFステージ201によってフェ
ッチされたPOP命令を、第1デコーダ303によりデ
コードする。
POP命令の命令コード211は第1デコーダ303に
入力され、デコードされてPOP命令の第1のステップ
コード(2−1)が生成される。デコード結果の一部は
内部状態信号として内部状態保持ラッチ401に保持さ
れる。
次のデコードのサイクルでは、内部状態保持ラッチ40
1からの内部状態信号に応答して第1デコーダ303は
IFステージ201からの命令コード211を取り込ま
ず、POP命令の第2のステップコード(2−2)を生
成する。この様にして、第9図tb)に示す如く2つの
ステップコードが生成される。
命令中にはソースオペランド指定部はないが、命令の機
能としてソースオペランドがスタックトップであること
が暗に示されている。本発明のデータ処理装置では、P
OP命令をデコードした段階で、ソースオペランドに関
する処理を予め行うためのステップコード(2−2)を
生成する。
Dステージ202から出力されるそれぞれのステップコ
ードはAコード213とDコード212とから構成され
ている。同一のステップコード中にあるAコード213
とDコード212とは同時にAステージ203に送られ
る。  pop命令から生成されたステップコードはA
ステージ203に対してステップコード(2−1>、ス
テップコード(2−2)の順序で送られる。
以降のステージにおける処理は、各ステップコードに関
して説明する。
(4,2,1)  r POP命令の第1ステツプコー
ド(2−1)の処理」 Aステージ203はAコード213とDコード212と
を入力する。しかし、Aコード213がAステージ20
3に入力されても、レジスタ直接モードであることから
アドレス計算の処理は行わない。
第8図に示す如く、第2デコーダ304はDコード21
2の中間デコード結果を入力すると、マイクロプログラ
ムのエントリアドレス及び種々の制御情報を生成する。
また、Dコード212中の右レジスタ番号情報及び左レ
ジスタ番号情報はそれぞれ右レジスタ番号生成部501
及び左レジスタ番号生成部502に入力され、右レジス
タ番号R11及び左レジスタ番号RLが生成される。 
 pop命令のステップコード(2−1)では、右レジ
スタ番号Rえのみが意味を有していて汎用レジスタファ
イル中にある汎用レジスタR1を示し、また右レジスタ
サイズhはワードを示す。
第2デコーダ304が出力する制御情報には、レジスタ
番号制御悄仰とサイズ制御情報とが含まれている。レジ
スタ番号制御信号は、右レジスタ番号R8がデスティネ
ーションレジスタ番号R,に対応することを示す、また
、サイズ制御信号は、右レジスタサイズもがデスティネ
ーションレジスタサイズ−8に対応することを示す。
レジスタ番号制御信号RCI、RC2,l?C3,RC
Iの中でRC3のみがイネーブルとなり、NチャネルT
G603のみがONL、右レジスタ番号りがデスティネ
ーションレジスタ番号R,とじて保持される。また、サ
イズ制御信号SCI、SC2,SC3,SC4の中でS
C3のみがイネーブルとなり、NチャネルTG703の
みがONL、右レジスタサイズW8がデスティネーショ
ンレジスタサイズもとして保持される。
以上の如く、ステップコード(2−1)中では、デステ
ィネーションレジスタ番号R0は汎用レジスタR4を示
し、またデスティネーションレジスタサイズ6はワード
を示す。
第2デコーダ304は、アドレッシングモードがレジス
タ直接アドレッシングであることから、Rコード・Fコ
ード有効信号をイネーブルにしない。
従って、Fステージ204はステップコード(2〜l)
を入力しない、つまり、ステップコード(2−1)はA
ステージ203において消滅する。
デスティネーションレジスタ番号R,とデスティネーシ
ョンレジスタサイズ賀。はステップコード(22)に渡
されるために保持され続ける。
もし、レジスタ直接モード以外のアドレッシングモード
であるならば、デスティネーションオペランドに関する
処理を行うステップコード(2−1)は、Eステージ2
05においてデスティネーションアドレス値をA^レジ
スタ219に退避するという処理を行う、しかし、レジ
スタ直接モードであるためその処理を行う必要がない、
従って、本発明のデータ処理装置においては、アドレッ
シングモードがレジスタ直接モードであるPOP命令を
処理する場合にはステップコード(2−1)を消滅させ
る。
(4,2,2)  r POP命令の第2ステ、デコー
ド(2−2)の処理」 Aステージ203はAコード213とDコード212と
を入力する。Aコード213がAステージ203に入力
されると、Aステージ203ではAコード213中の制
御信号の制御によりアドレス計算を行う。
Aステージ203のスタックポインタであるASPレジ
スタ311からその値がAバス322上に出力され、B
ASEレジスタ307に格納される。 INDEXレジ
スタ308及び旧SPレジスタ309はクリアされる。
BASEレジスタ307. INDEXレジスタ308
及びDISPレジスタ309の値がアドレス加算器30
5で加算され、その結果はAOIJTレジスタ306に
格納される。この動作により、ASPレジスタ311の
内容がへ〇〇Tレジスタ306に転送される。同時にA
SPレジスタ311は+4インクリメントされる。更に
、AOtlTレジスタ306中の値はAOババス23を
介してFAレジスク317に送られる。FAレジスタ3
1.7中にあるasP(aは第2デコーダ304の出力
の一部と共にFコード215となる。
第8図に示す如く第2デコーダ304は、Dコード21
2の中間デコード結果を入力すると、マイクロプログラ
ムのエントリアドレス及び種々の制御情報を生成する。
また、Dコード212中の右レジスタ番号情報及び左レ
ジスタ番号情報はそれぞれ右レジスタ番号生成部501
及び左レジスタ番号情報部502に入力され、右レジス
タ番号り及び左レジスタ番号1.が生成される。POP
命令のステップコード(2−2)では、右レジスタ番号
R6のみが意味を有していてSOレジスタ314を示す
、また、右レジスタサイズhはワードを示す、このステ
ップコード(2−2)の右レジスタ番号情報は命令フォ
ーマント中で指定されるものではなく、このステップコ
ード(2−2)生成時にDステージ202で生成された
ものである。
第2デコーダ304が出力する制御情報の中には、レジ
スタ番号制御情報とサイズ制御情報とが含まれる。レジ
スタ番号1til制御信号は右レジスタ番号R#がソー
スレジスタ番号R5に対応することを示し、サイズ制御
信号は右レジスタサイズhがソースレジスタサイズ6に
対応することを示す。
レジスタ番号制御信号1?cl 、 l?c2. RC
3,RC4の中でRClのみがイネーブルとなり、Nチ
ャネルTG601のみがONL、右レジスタ番号R1が
ソースレジスタ番号R8として保持される。デスティネ
ーションレジスタ番号札は、ステップコード(2−3)
で処理時に保持した番号のままである。また、サイズ制
御信号SCI 、 SC2,SC3,SC4の中でSC
Iのみがイネーブルとなり、NチャネルTG701のみ
がONシ、右レジスタサイズ6がソースレジスタサイズ
−3として保持される。デスティネーションレジスタサ
イズj1mは、ステップコード(2−1)で処理時に保
持したサイズのままである。
この様にステップコード(2−2)中では、デスティネ
ーションレジスタ番号R,は汎用レジスタR1を示し、
ソースレジスタ番号R8はSDレジスタ3!4を示し、
またデスティネーションレジスタサイズ−Dはワードを
示し、ソースレジスタサイズU、はワードを示す、従っ
て、ステップコード(2−1)の情報の一部をステップ
コード(2−2)に吸収したことになる。
また、レジスタ直接モード時は、第2デコーダ304で
はマイクロプログラムのエントリアドレスの下位1ピン
トが反転されて出力される。従って、デスティネーシッ
ンアドレスがレジスタである場合とそれ以外の場合とで
は、マイクロ命令での処理が異なる。
これらマイクロプログラムのエントリアドレス及びレジ
スタ番号等からRコード214が生成される。
このようにして生成されたRコード214及びFコード
215は同時にFステージ204に送られる。
Rステージ206は、Rコード・Fコード有効信号がイ
ネーブルとなると、Rコード214を入力してそれに含
まれるマイクロプログラムのエントリアドレスにてマイ
クロROMI(15をアクセスする。マイクロl?0M
105の出力はデコードされ、レジスタ番号等と共にE
コード216となる。このステップコード(2−2)の
ソースレジスタ番号R3が示すレジスタはSDレジスタ
314であり、デスティネーションレジスタ番号R,が
示すレジスタは汎用レジスタR1である。また、ソース
レジスタサイズもとデスティネーションレジスタサイズ
ー。は共にワードである。
OFステージ207は、Rコード・Fコード有効信号が
イネーブルになると、Fコード215を入力する。Fコ
ード215の一部であるFAレジスク317中の値はこ
の命令のSP値である。 FAレジスタ317中の値を
アドレスとして、外部バスインターフェース部107を
介し、スタックトップにオペランドのブリフェッチを行
う、このスタックトップに対するアクセスによって、ブ
リフェッチした値は外部バスインターフェース部107
を介して本発明のデータ処理装置内に読み込まれ、DO
ババス20上よりSDレジスタ314に保持される。S
Dレジスタ314中の値はSコード217の一部として
Eステージ205に送られる。
Eステージ205がEコード216とSコード217と
を入力すると、ソースレジスタ番号P、が示ずレジスタ
中の値をデスティネーションレジスタ番号R,が示すレ
ジスタに転送せよ、という処理が行われる。
この場合、デスティネーション1/ジスタ番号R8が示
すレジスタは汎用レジスタしてあり、ソースレジスタ番
号Rgが示すレジスタはSDレジスタ314である。よ
って、スタックトップからブリフェッチしたSOレジス
タ314中の値はSlバス325上からALU313へ
送られ、演算されることなくDOババス27上から汎用
レジスタR5に転送される。
以上の如く、ステップコード(2−2)はパイプライン
機構上を順次処理されていく。
本発明のデータ処理’JAWにおいては、パイプライン
機構上で待ち状態のない場合は、第1O図fblに示す
如(POP命令のステップコード(2−1)及びステッ
プコード(2−2)はパイプラインの各ステージ上で順
次処理されていく、この間に、Aステージ203におい
てステップコード(2−1))ま消滅し、必要な情報の
みがステップコード(2−2)に吸収され第10図(a
l及びfblに示す如く、パイプライン機構上で待ち状
態のない状態で、POP命令のステップコードの1つが
吸収処理される場合とステップコードが吸収されない場
合とでは、Eステージ205でのデータの格納動作を除
くと、処理に要するステップ数は同じである。
ここで、POP命令の1つ前の命令のステップコード(
4−1)がEステージ205において処理に3ステツプ
要するため、POP命令のステップコードがFステージ
204において2ステップ待ち状態になった場合につい
て考える。
第1O図(C1はPOP命令のステップコードが吸収さ
れない場合を示し、第1O図(d+はPOP命令のステ
ップコードの1つが吸収される場合を示している。
第1O図fd+から理解される如く、ステップコード(
2−1>が吸収されたことによりEステージ205にお
いて処理すべきステップコードの数が城少し、結果とし
て処理全体に要するステップ数が減少する。
このように、不必要なステップコード(2−1)をパイ
プライン機構上で吸収してしまうということは、パイプ
ライン機構上で待ち状態が生した場合に、処理に必要な
ステップ数が減少する可能性が大いにあり、データ処理
装置の処理速度は改善される。
[発明の効果1 以上に詳述した如く、本発明のデータ処理装置によれば
、POP命令が暗に示しているソースオペランドに関す
る処理単位が生成され、その処理単位がパイプライン処
理されるので、POP命令処理時に非常に均衡のとれた
パイプライン処理が可能となり、全体としての処理速度
の向上が実現される。
また、レジスタ直接アドレンンングモードであるPOP
命令の処理に際して実行ステージで行う必要のない処理
の処理単位を消滅させる様に構成したので、パイプライ
ン機構上で待ち状態が生した場合はレジスタ直接モード
であるP叶命令の実行時に要する処理ステップ数が減少
し、その処理に対する実行ステージの占有時間が削減さ
れ、データ処理装置の処理速度の向上が可能になる。
【図面の簡単な説明】
第1図は本発明のデータ処理装置の構成を示すブロック
図、第2図は本発明のデータ処理装置のパイプラインi
能の構成を示すブロック図、第3図は本発明のデータ処
理装置の更に詳しい構成を示すブロック図、第4図は本
発明のデータ処理装置のデコード(0)ステージの構成
を示すブロック図、第5図は本発明のデータ処理装置の
オペランドアドレス計算(A)ステージで命令テコ−1
′部に含まれる部分の構成を示すプロ、り図、第6図は
第5図におけるレジスタ番号生成部の構成を示す回路図
、第7図は第5図におけるサイズ生成部の構成を示す回
路図、第8図は第5図における第2デコーダの出力であ
るRコード・Fコード有効信号、レジスタ番号制?11
信号及びサイズ制御Tg信号のω 内容を示す、(、第9図fat、 (blはパイプライ
ン機構上におけるPOP命令の処理シーケンスを示すフ
ローチャート、第10図(al、 ibl、 (cl、
 ((11は、pop命令のDステージ以降のステージ
におけるステップコードの処理の流れを示す模式図、第
11図は従来のデータ処理装置におけるパイプライン機
構の構成を示すブロック図、第12図は本発明のデータ
処理装置の命令フォーマットの代表的な形式を示す模式
図、第13図はメモリーレジスタ間演算命令の短縮形フ
ォーマントを示す模式図、第14図はレジスターレジス
タ間演算命令の短縮形フォーマットを示す模式図、第1
5図はリテラル−メモリ間演算命令の短縮形フォーマッ
トを示す模式図、第16図は即値〜メそり間演算命令の
短縮形フォーマットを示す模式図、第17図はlオペラ
ンド命令の一船形フオーマットを示す模式図、第18図
は2オペランド命令の第1オペランドがメモリ読み出し
を必要とする命令の一船形フオーマットを示す模式図、
第19図は2オペランド命令の第1オペランドが8ビツ
ト即値の命令である一船形フオーマットを示す模式図、
第20図は2オペランド命令の第1オペランドがアドレ
ス計算のみの命令である一船形フオーマットを示す模式
図、第21図はショートブランチの命令フォーマットを
示す模式図、第22図はアドレシッシングモード指定部
がレジスタ直接モードであるフォーマットを示す模式図
、第23図はアトレジ7シングモード指定部がレジスタ
間接モードであるフォーマントを示す模式図、第24図
はアドレシンシングモード指定部がレジスタ相対間接モ
ードであるフォーマットを示す模式図、第25図はアド
レシンシングモード指定部が即値モードであるフォーマ
ットを示す模式図、第26図はアドレッシングモード指
定部が絶対モードであるフォーマットを示す模式図、第
27図はアドレシッシングモード指定部がPC相対間接
モードであるフォーマットを示す模式図、第28図はア
ドレシッシングモード指定部がスタンクボップモードで
あるフォーマットを示す模式図、第29図はアドレッシ
ングモード指定部がスタックブツシュモードであるフォ
ーマットを示す模式図、第30図はレジスタペース多段
間接モードのフォーマントを示す模式図、第31図はP
Cベース多段間接モードのフォーマントを示す模式図、
第32図は絶対ベース多段間接モードのフォーマットを
示す模式図、第33図は1段の多段間接モードのフォー
マント中のディスプレースメントIItの加算、インデ
ックスイ直のスケーリングと加算、メモリの間接参照の
指定フィールドを示す模式図、第34図は多段間接モー
ドが継続か否かのバリエーションを示す模式図、第35
図はディスプレースメントI戸のサイズのバリエーショ
ンを示す模式図、第36図は本発明のデータ処理装置の
基本的命令フォーマントを示す模式図、第37図(8)
、(blはPOP命令の命令フォー77トを示す模式図
である。 201・・・命令フェッチステージ 202・・・メモ
リデコードステージ 203・・・オペランドアドレス
計算ステージ 204・・・オペランドフエンチステー
ジ205・・・実行ステージ 211・・・命令コード
 212・・・Dコード 213・・・Aコード 30
3・・・第17コーダ304・・・第2デコーダ なお、各図中同一符号は同−又は相当部分を示す。 用 図

Claims (1)

  1. 【特許請求の範囲】 1、命令をデコードする第1のステージと前記第1のス
    テージに引き続いて処理を行う第2のステージを含む複
    数のステージとにより命令をパイプライン処理する機構
    を備え、メモリ上の所定領域から読出した第1のオペラ
    ンドの値を任意に指定可能な第2のオペランドに書込む
    ポップ命令を有するデータ処理装置において、 前記第1のステージに前記ポップ命令が入力された場合
    にこれをデコードして、前記第2のオペランドを処理す
    るための情報を含む第1の単位処理コードと、前記第1
    のオペランドを処理するための情報を含む第2の単位処
    理コードとを生成し、前記第2のステージへ出力するデ
    コード手段を備えたことを特徴とするデータ処理装置。 2、命令をデコードする第1のステージと前記第1のス
    テージに引き続いて処理を行う第2のステージと前記第
    2のステージに引き続いて処理を行う第3のステージを
    含む複数のステージとにより命令をパイプライン処理す
    る機構を備え、メモリ上の所定領域から読出した第1の
    オペランドの値を任意に指定可能な第2のオペランドに
    書込むポップ命令を有するデータ処理装置において、 前記第1のステージに前記ポップ命令が入力された場合
    にこれをデコードして、前記第2のオペランドを処理す
    るための情報を含む第1の単位処理コードと、前記第1
    のオペランドを処理するための情報を含む第2の単位処
    理コードとを生成し、前記第2のステージへ出力する第
    1のデコード手段と、 前記第2のオペランドが特定のレジスタである場合に、
    前記第2のステージに入力された前記第1及び第2の単
    位処理コードを処理して1つの単位処理コードを生成し
    、前記第3のステージへ出力する第2のデコード手段を
    備えたことを特徴とするデータ処理装置。
JP63251076A 1988-10-04 1988-10-04 データ処理装置 Expired - Fee Related JPH0769805B2 (ja)

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 true JPH0298734A (ja) 1990-04-11
JPH0769805B2 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)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1992008190A1 (en) * 1990-10-29 1992-05-14 Fujitsu Limited Device for processing information

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62226231A (ja) * 1986-03-27 1987-10-05 Toshiba Corp プロセツサ

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62226231A (ja) * 1986-03-27 1987-10-05 Toshiba Corp プロセツサ

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1992008190A1 (en) * 1990-10-29 1992-05-14 Fujitsu Limited Device for processing information

Also Published As

Publication number Publication date
JPH0769805B2 (ja) 1995-07-31

Similar Documents

Publication Publication Date Title
JPH02173823A (ja) データ処理装置
JPH0766324B2 (ja) データ処理装置
US5313644A (en) System having status update controller for determining which one of parallel operation results of execution units is allowed to set conditions of shared processor status word
US6058471A (en) Data processing system capable of executing groups of instructions in parallel
JPH07114469A (ja) データ処理装置
JPH081599B2 (ja) データ処理装置
JPH0215331A (ja) データ処理装置
JPH01214932A (ja) データ処理装置
JPH03158928A (ja) データ処理装置
JPH0338725A (ja) データ処理装置及びマイクロプロセッサ
JPH0391029A (ja) データ処理装置
JPH02105937A (ja) データ処理装置
US5269008A (en) Method and apparatus for pre-processing the source of a pop instruction in a pipeline computer
JPH0298734A (ja) データ処理装置
JPH04109338A (ja) プライオリティエンコーダ及びそれを備えたデータ処理装置
JP2522048B2 (ja) マイクロプロセッサ及びそれを使用したデ―タ処理装置
JPH0225932A (ja) データ処理装置
JPH0290325A (ja) データ処理装置
JPH01214933A (ja) データ処理装置
JPH01258032A (ja) パイプライン処理機構を持つデータ処理装置
JPH0218621A (ja) データ処理装置
JPH0769802B2 (ja) データ処理装置
JPH0254336A (ja) データ処理装置
JPH01281534A (ja) データ処理装置
JPH0769808B2 (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