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

データ処理装置

Info

Publication number
JPH02105937A
JPH02105937A JP63259723A JP25972388A JPH02105937A JP H02105937 A JPH02105937 A JP H02105937A JP 63259723 A JP63259723 A JP 63259723A JP 25972388 A JP25972388 A JP 25972388A JP H02105937 A JPH02105937 A JP H02105937A
Authority
JP
Japan
Prior art keywords
register
stage
instruction
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
JP63259723A
Other languages
English (en)
Other versions
JPH0769806B2 (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 JP63259723A priority Critical patent/JPH0769806B2/ja
Publication of JPH02105937A publication Critical patent/JPH02105937A/ja
Priority to US07/973,926 priority patent/US5361338A/en
Publication of JPH0769806B2 publication Critical patent/JPH0769806B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/3016Decoding the operand specifier, e.g. specifier format
    • G06F9/30167Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/3017Runtime instruction translation, e.g. macros
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/35Indirect addressing
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

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

Description

【発明の詳細な説明】 [産業上の利用分野] 本発明は、パイプライン処理方式によって動作するデー
タ処理装置に関するもので、特にレジスタをデスティネ
ーションオペランドとするレジスタ直接アドレッシング
モードの命令の処理機能を有するデータ処理装置に関す
る。
[従来の技術] 従来のデータ処理装置のパイプライン処理機能の構成を
第39図のブロック図に示す。
従来のデータ処理装置は、命令フェッチステージ391
.命令デコードステージ392.オペランドアドレス計
算ステージ393.オペランドフェッチステージ394
及び実行ステージ395の各ステージにて構成されてい
る。そして、命令はデコード段階で復数のパイプライン
処理のための単位コード(ステップコード)に分解され
てパイプライン処理される。この様なデータ処理装置に
関しては特開昭6389932号にその詳細が開示され
ている。
上述の如き従来のデータ処理装置では、パイプラインを
構成する要素の内で命令フェッチステージ391.命令
デコードステージ392.オペランドアドレス計算ステ
ージ393及びオペランドフェッチステージ394等の
前処理を行う部分と、実行ステージ395の如く命令を
実行する部分とに分けられる。
前処理を行う部分は、命令中で指定されるオペランドに
関する前処理だけを行う、そして、前処理によって準備
されたオペランドを用いて実行ステソーメモリ間あるい
はメモリーレジスタ間転送命令の如きソースオペランド
からデスティネーションオペランドへデータを転送する
命令に関してはパイプライン上においてソースオペラン
ドに関する単位処理コードとデスティネーションオペラ
ンドに関する単位処理コードが生成される。しかし、デ
スティネーションがレジスタであるレジスタ直接アドレ
ッシングモードにおいてはデスティネーションの単位処
理コードは不要である。従って、レジスタ直接アドレッ
シングモードの命令を処理するに際しては無駄な単位処
理コードの処理が行われ、装置全体としての効率が低下
する。
本発明はこのような問題を解決するためになされたもの
であり、レジスタ直接アドレッシングモードの命令をパ
イプライン上で効率よく処理し得るデータ処理装置の提
供を目的とする。
[課題を解決するための手段] 本発明に係るデータ処理装置は、デスティネーションが
レジスタである場合には命令を実行するまでにデスティ
ネーションオペランドの処理単位とソースオペランドの
処理単位とを処理して1つの処理単位として生成する手
段を備えている。
[作用] 本発明のデータ処理装置では、デスティネーションがレ
ジスタである場合はデスティネーションオペランドに関
する処理が行われない。
〔発明の実施例〕
以下、本発明をその実施例を示す図面に基づいて詳述す
る。
なお、以下の説明では、レジスタ直接アドレッシングモ
ードの命令の一例として、ポンプ(POP)命令と即値
オペランド命令とについて説明する。
両者の内、POP命令は、デスティネーションとしてメ
モリまたはレジスタを指定可能であるとする。データ処
理装置では通常、メモリ空間上にデータを退避させてお
くためのスタック領域が形成されてし・る。そして、ス
タックにデータを退避させる命令、及び退避させておい
たデータをスタックから読み出す命令が用意されている
。前者の命令をPt1SH命令、後者の命令をPoP命
令とそれぞれ称し、これらは互いに対称な命令である。
なお、スタックポインタ(SP)は、スタックの最上位
(スタックトップ)のアドレスを常時示している。
POP命令は、オペランドとしてはデスティネーション
を指定するためのオペランドのみを有するlオペランド
命令である。しかしPOP命令は、命令自体の機能とし
ては現実にはソースオペランドがスタックトップである
ことを暗に示している2オペランド命令であり、メモリ
ーメモリ間あるいはメモリーレジスタ間転送命令と同等
な命令である。
ところで、POP命令の処理に際して、第39図に示し
た従来のデータ処理装置のパイプライン上においては、
POP命令のデスティネーション指定部によりデスティ
ネーションの処理のためのステップコードのみが生成さ
れる。このステップコードの処理とは、命令の前処理を
行う部分であるオペランドアドレス計算ステージ393
においてデスティネーションのアドレス計算を行うこと
である。
しかし、POP命令はソースの指定部を有さないため、
ソースに関するステップコードが生成されず、ソース指
定部に関する前処理は一切行われない。
ソースの指定部に関する処理は、PoP命令の実行時に
一連のマイクロ命令により、命令を実行する部分である
実行ステージ395において実行される。具体的には、
実行ステージ395において先ずスタックトップに対し
てデータのフエ”/チを行うというソース指定部に関す
る処理が行われ、次いでフェッチしたデータを前処理で
準備されたデスティネーションアドレスに転送するとい
う手順でpop命令が処理される。
このような処理に際しては、通常の2オペランド命令で
は前処理として行われるべきソースの指定部に関する処
理を実行ステージ395において行うため、実行ステー
ジ395の処理負担が非常に大きい。また各ステージに
おける処理負荷の不均一が生じるため、パイプライン処
理における処理効率低下が惹起する。従って、従来のデ
ータ処理装置においては、パイプライン処理機構上で上
述の如< pop命令が処理される。この際、実行ステ
ージ自身がスタックトップからオペランドをフェッチす
る処理を行う必要があるので、前処理を行うステージに
比較して命令を実行するステージにおけるデータ処理の
負荷が大きくなり、POP命令の処理効率が向上しない
そこで本発明のデータ処理装置では、上述の如きpop
命令処理時の問題をも同時に解決するように構成されて
いる。
以下、本発明のデータ処理装置をその具体的槽(1)「
本発明のデータ処理装置の命令フォーマット」本発明の
データ処理装置の命令は16ビ7)単位で可変長となっ
ており、奇数バイト長の命令は使用しない。
本発明のデータ処理’ATLでは高頻度命令を短いフォ
ーマットとする目的で特に工夫された命令フォーマット
体系を有する。例えば、2オペランド命令に関しては基
本的に“4バイト+拡張部″の構成を有して総てのアド
レッシングモードが利用可能な一般形フオーマントと、
使用頻度の高い命令及びアドレッシングモードのみが使
用可能な短縮形フォーマットの2つのフォーマットとが
ある。
本発明のデータ処理装置の命令フォーマット中に現われ
る記号の意味は次の通りである。
:オペレーションコードが入る部分 #:リテラルまたは即値が入る部分 Ea:8ミニ8ビ御所形のアドレッシングモードでオペ
ランドを指定する部分 Sh:6ビノトの短縮形のアトレンジングモードでオペ
ランドを指定する部分 Rrzレジスタ上のオペランドをレジスタ番号で指定す
る部分 フォーマントは、第12図に示す如(右側がLSB側で
且つ高いアドレスになっている。アドレスNとアドレス
N+1の2バイトを見ないと命令フォーマットが判別で
きないようになっているが、これは前述の如く、命令が
必ず16ビツト(2バイト)単位でフェッチ及びデコー
ドされることを前提としているためである。
本発明のデータ処理装置では、いずれのフォーマットの
場合も、各オペランドのl!aまたはshの拡張部は必
ずそのEaまたはshの基本部を含むハーフワードの直
後に位置される。これは、命令により暗黙に指定される
即値データあるいは命令の拡張部に優先する。従って、
4バイト以上の命令では、Eaの拡張部によって命令の
オペレーションコードが分断される場合がある。
また後述する如く、多段間接モードによってEaの拡張
部に更に拡張部が付く場合にも、次の命令オペレーショ
ンコードよりもそちらの方が優先される。例えば、第1
ハーフワードにEalを含み、第2ハーフワードにEa
2を含み、第3ハーフワードまである6バイト命令の場
合を考える。Ealに多段間接モードを使用したため、
普通の拡張部の他に多段間接モードの拡張部も付くもの
とすると、実際の命令ビットパターンは、命令の第1ハ
ーフワード(Eatの基本部を含む)+ Ealの拡張
部、Ealの多段間接モード拡張部、命令の第2ハーフ
ワード(Ea2の基本部を含むL Ealの拡張部1命
令の第3ハーフワードの順となる。
(1,1) r短縮形2オペランド命令」第13図から
第16図は2オペランド命令の短縮形フォーマットを示
す模式図である。
第13図はメモリーレジスタ間演算命令のフォーマット
を示す模式図である。このフォーマットには、ソースオ
ペランド側がメモリとなるし−for+watと、デス
ティネーションオペランド側がメモリとなるS−for
matとがある。
L−formatでは、shはソースオペランドの指定
フィールドを、Rnはデスティネーションオペランドの
レジスタの指定フィールドを、R1?はshのオペラン
ドサイズの指定をそれぞれ表す、レジスタ上に位置され
たデスティネーションオペランドのサイズは32ビツト
に固定されている。レジスタ側とメモリ側とのサイズが
異なり、ソース側のサイズが小さい場合に符号拡張が行
なわれる。
S−formatでは、shはデスティネーションオペ
ランドの指定フィールドを、1口はソースオペランドの
レジスタ指定フィールドを、RRはshのオペランドサ
イズの指定をそれぞれ表す。レジスタ上に位1されたソ
ースオペランドのサイズは32ビツトに固定されている
。レジスタ側とメモリ側とのサイズが異なり、ソース側
のサイズが大きい場合にオーバフローした部分の切捨て
とオーバフローチエツクが行なわれる。
第14図はレジスターレジスタ間演算命令のフォーマッ
ト(R4ormaL)を示す模式図である。Rnはデス
ティネーションレジスタの指定フィールド、Rmはソー
スレジスタの指定フィールドである。オペランドサイズ
は32ピントのみである。
第15図はリテラル−メモリ間演算命令のフォーマノ)
 (Q−format)を示す模式図である。 MMは
ディスティネーションオペランドサイズの指定フィール
ド、110よリテラルによるソースオペランドの指定フ
ィールド、shはデスティネーションオペランドの指定
フィールドである。
第16図は即値−メモリ間演算命令のフォーマット(+
−format)を示す模式図である。 MMはオペラ
ンドサイズの指定フィールド(ソース、ディスティネー
ションで共通)、Shはデスティネーションオペランド
の指定フィールドである* I−formatの即値の
サイズはデスティネーション側のオペランドのサイズと
共通に8.16.32ビツトとなり、ゼロ拡張及び符号
拡張は行なわれない。
(1,2) r−船形lオペランド命令」第17図はl
オペランド命令の一船形フオーマット(Gl−form
at)を示す模式図である6問はオペランドサイズの指
定フィールドである。一部のGl−fort@at命令
では、Eaの拡張部以外にも拡張部がある。また、間を
使用しない命令もある。
(1,3) r−船形2オペランド命令」第18図から
第20図は2オペランド命令の一船形フオーマントを示
す模式図である。このフォーマットに含まれるのは、8
ビツトで指定する一船形アドレッシングモードのオペラ
ンドが最大2つ存在する命令である。オペランドの総数
自体は3つ以上になる場合がある。
第18図は第1オペランドがメモリ読み出しを必要とす
る命令のフォーマット(G4ora+at)を示す模式
図である。EaMはデスティネーションオペランドの指
定フィールド、■はデスティネーションオペランドサイ
ズの指定フィールド、EaRはソースオペランド指定フ
ィールド、R1?はソースオペランドサイズの指定フィ
ールドである。一部のG−for稽at命令では、Ea
MあるいはEaRの拡張部以外にも拡張部がある。
第19図は第1オペランドが8ビツト即値の命令のフォ
ーマント(ε−for+mat)を示す模式図である。
EaMはデスティネーションオペランドの指定フィール
ド、聞はデスティネーションオペランドサイズの指定フ
ィールド、■・・・はソースオペランド値である。
E−formatとLformatとは機能的には類似
しているが、考え方の点では大きく違っている。具体的
には、E−formatはあくまでも2オペランド−船
形(G−format)の派生形であり、ソースオペラ
ンドのサイズが8ビツト固定、ディスティネーションオ
ペランドのサイズが8 /16/32ビットからの選択
となっている。つまり、E−formatは異種サイズ
間の演算を前提とし、デスティネーションオペランドの
サイズに合わせて8ビツトのソースオペランドがゼロ拡
張または符号拡張される。一方、I−formatは、
特に転送命令及び比較命令で穎度の多い即値のパターン
を短縮形にしたものであり、ソースオペランドとディス
ティネーションオペランドのサイズが等しい。
第20図は、第1オペランドがアドレス計算のみの命令
のフォーマット(GA−format)を示す模式図で
ある。Ea−はデスティネーションオペランドの指定フ
ィールド、四はデスティネーションオペランドサイズの
指定フィールド、EaAはソースオペランドの指定フィ
ールドである。ソースオペランドとしては実行アドレス
の計算結果自体が使用される。
第20図は、ショートブランチ命令のフォーマントを示
す模式図である。ccccはブランチ条件指定フィール
ド、disp:8はジャンプ先との変位指定フィールド
であり、本発明のデータ処理装置では8ビツトで変位を
指定する場合には、ビットバター(1,4) rアドレ
ッシングモード」本発明のデータ処理装置のアドレッシ
ングモード指定方法には、レジスタを含めて6ビツトで
指定する短縮形と、8ビツトで指定する一般形とがある
未定義のアドレッシングモードが指定された場合、ある
いは意味的に考えて明らかに不適当なアドレッシングモ
ードの組み合わせが指定された場合には、未定義命令が
実行された場合同様に予約命令例外が発生され、例外処
理が起動される。
これに該当するのは、デスティネーションが即値モード
の場合、アドレス計算を伴うべきアドレッシングモード
指定フィールドで即値モードを使用した場合等である。
フォーマットの図中で使われる記号の意味は次の通りで
ある。
Rn:レジスタ指定 me+* EA : EAで示されるアドレスのメモリ
内容(Sh)  :6ビツトの短縮形アドレッシングモ
ードでの指定方法 (Ha)  :8ビツトの一般形アドレッシングモード
での指定方法 フォーマットの図において破線にて囲繞された部分は拡
張部を示す。
(1,4,1)  r基本アドレッシングモード」本発
明のデータ処理装置は様々なアドレッシングモードをサ
ポートする。それらの内、本発明のデータ処理装置でサ
ポートする基本アドレッシングモードには、レジスタ直
接モード、レジスタ間接モード、レジスタ相対間接モー
ド、即値モード、絶対モード、PC(プログラムカウン
タ)相対間接モード、スタックポツプモード及びスタッ
クブツシュモードがある。
レジスタ直接モードはレジスタの内容をそのままオペラ
ンドとする。フォーマットの模式図を第22図に示す、
Rnは汎用レジスタの番号を示す。
レジスタ間接モードはレジスタの内容をアドレスとする
メモリの内容をオペランドとする。フォーマットの模式
図を第23図に示す、 Rnは汎用レジスタの番号を示
す。
レジスタ相対間接モードはディスプレースメント値が1
6ビツトであるか32ピントであるかにより2種類があ
る。それぞれ、レジスタの内容に16ビツトまたは32
ビツトのディスプレースメント値を加えた(直をアドレ
スとするメモリの内容をオペランドとする。フォーマッ
トの模式図を第24図に示す。Rnは汎用レジスタの番
号を示すm disp:16とdisp : 32とは
それぞれ各々16ビツトのディスプレースメント値また
は32ビツトのディスプレースメント値を示す。ディス
プレースメント値は符号付きとして扱う。
即値モードは命令コード中で指定されるビットパターン
をそのまま2進数と見なしてオペランドとする。フォー
マットの模式図を第25図に示す。
iIIIm−dataは即値を示す、 imm−dat
aのサイズは、オペランドサイズとして命令中で指定さ
れる。
絶対モードはアドレス値が16ビツトで示されるか32
ビツトで示されるかにより2種類ある。それぞれ、命令
コード中で指定される16ビツトまたは32ビツトのビ
ットパターンをアドレスとするメモリの内容をオペラン
ドとする。フォーマットの模式図を第26図に示す。a
bs:16とabs:32とはそれぞれ16ビツトまた
は32ビツトのアドレス値を示す。
abs:16でアドレスが示される時は指定されたアド
レス値を32ビツトに符号拡張する。
PC相対間接モードはディスプレースメント値が16ピ
ントか32ビツトかにより2種類ある。それぞれ、プロ
グラムカウンタの内容に16ビツトまたは32ビツトの
ディスプレースメント値を加えた値をアドレスとするメ
モリの内容をオペランドとする。
フォーマットの模式図を第27図に示す。disp:1
6とdrsp : 32とはそれぞれ16ビツトのディ
スプレースメント値または32ビツトのディスプレース
メント値を示す、ディスプレースメント値は符号付きと
して扱う、PC相対間接モードにおいて、参照されるプ
ログラムカウンタの値はそのオペランドを含む命令の先
頭アドレスである。多段間接アドレッシングモードにお
いてプログラムカウンタの値が参照される場合にも、同
じように命令の先頭のアドレスをPC相対の基準値とし
て使用する。
スタックポツプモードはスタックポインタ(SP)の内
容をアドレスとするメモリの内容をオペランドとする。
オペランドアクセス後、スタックポインタをオペランド
サイズだけインクリメントする。
例えば、32ビツトデータを扱う場合には、オペランド
アクセス後にSPが+4だけ更新(インクリメント)さ
れる、B、Hのサイズのオペランドに対するスタックポ
ツプモードの指定も可能であり、それぞれSPが+1.
+2だけ更新(インクリメント)される。フォーマット
の模式図を第28図に示す、オペランドに対しスタック
ポツプモードが意味を持たないものに関しては予約命令
例外が発生される。
具体的に予約命令例外となるのは、writeオペラン
ド、read−modify−writeオペランドに
対するスタックポツプモード指定である。
スタックブツシュモードはスタックポインタの内容をオ
ペランドサイズだけデクリメントした内容をアドレスと
するメモリの内容をオペランドとする。スタックブツシ
ュモードでは、オペランドアクセス前にスタックポイン
タがデクリメントされる0例えば、32ピントデータを
扱う場合には、オペランドアクセス前にSPが−4だけ
更新(デクリメント)される、B、Hのサイズのオペラ
ンドに対するスタックブツシュモードの指定も可能であ
り、それぞれSPが−1,−2だけ更新(デクリメント
)される、フォーマットの模式図を第29図に示す。オ
ペランドに対してスタックブツシュモードが意味を持た
ないものに関しては、予約命令例外が発生される。具体
的に予約命令例外となるのは、readオペランド、r
ead−modify−writeオペランドに対すス
タックブツシュモード指定である。
(1,4,2) r多段間(々アドレッシングモード」
如何に複雑なアドレッシングも、基本的には加算と間接
参照の組み合わせに分解される。従って、加算と間接参
照のオペレーションをアドレッシングのプリミティブと
して与えておき、それを任意に組み合わせることができ
れば、如何なる複雑なアドレッシングモードをも実現可
能となる。本発明のデータ処理装置の多段間接アドレソ
ーシングモードはこの様な考え方に基づいたアドレッシ
ングモードである。複雑なアドレッシングモードはモジ
ニール間のデータ参照あるいはAI (人工知能)言語
の処理系に特に有用である。
多段間接アドレッシングモードを措定する場合、基本ア
ドレッシングモード指定フィールドでは、レジスタベー
ス多段間接モード、PCベース多段間接モード、絶対ベ
ース多段間接モードの3種類の指定方法の内のいずれか
1つを指定する。
レジスタベース多段間接モードはレジスタの値を拡張す
る多段間接アドレッシングのベース値とするアドレッシ
ングモードである。フォーマットの模式図を第30図に
示す。Rnは汎用レジスタの番号を示す。
PCヘース多段間接モードはプログラムカウンタの値を
拡張する多段間接アドレッシングのベース値とするアド
レッシングモードである。フォーマントの模式図を第3
1図に示す。
絶対ベース多段間接モードはゼロを拡張する多段間接ア
ドレッシングのベース値とするアドレッシングモードで
ある。フォーマントの模式図を第32図に示す。
拡張する多段間接モード指定フィールドは16ビツトを
単位としており、これを任意回反復する。
1段の多段間接モードにより、ディスプレースメントの
加算、インデクスレジスタのスケーリング(×1+ ×
2+ x4. x8)と加算、メモリの間接参照を行な
う、多段間接モードのフォーマットの模式図を第33図
に示す。各フィールドは以下に示す意味を持つ。
1E=O E・1 :多段間接モード継続 ニアドレス計算終了 tIlp ==> address  of oper
andl、0 7メモリ間接参照なし tmp + disp + Rx * 5cale =
=> tmpI・1 :メモリ間接参照あり meTatn+p+disp+RX*5cale==>
tmp台・O:  <Rx>をインデクスとして使用ト
1 二特殊なインデクス <Rx>−0インデクス値を加算しな い  (Rx=O) <RX>=1   プログラムカウンタをインデクス値
として使用 (Rx−PC) <Rx>=2〜reserved D=0:多段間接モード中の4ビットのフィールドd4
の値を4倍してディスプレースメント値とし、これを加
算する d4は符号付きとして扱い、オペラン ドのサイズとは関係なく必ず4倍して 使用する 0・1 :多段間接モードの拡張部で指定されたd 1
spx (16/32ビツト)をディスプレースメント
値とし、これを加算する 拡張部のサイズはd4フィールドで指 定する +14=o001   dispxは16ビノトd4=
oo10   dispxは32ビット×x:インデク
スのスケール(scale=1/2/4/8)プログラ
ムカウンタに対してX2. X4. X 8のスケーリ
ングを行なった場合には、その段の処理終了後の中間値
(tIImp)として不定値が入る。この多段間接モー
ドによって得られる実効アドレスは予測できない値とな
るが、例外は発生しない。プログラムカウンタに対する
スケーリングの指定は行なってはいけない。
多段間接モードによる命令フォーマットのバリニーシリ
ンを第34図、第35図に示す。
第34図は、多段間接モードが継続するか終了するかの
バリニーシリンを示す。
第35図は、ディスプレースメントのサイズのバリエー
ションを示す。
任意段数の多段間接モードが利用できれば、コンパイラ
の中で段数による場合分けが不要になるので、コンパイ
ラの負担が軽減されるというメリ・7トがある。多段の
間接参照の穎度が非常に少ないとしても、コンパイラと
しては必ず正しいコードを発生できなければならないか
らである。このため、フォーマット上では任意の段数が
可能になっている。
(1,5) r例外処理」 本発明のデータ処理装置はソフトウェア負荷の軽減のた
め豊富な例外処理機能を有する0本発明のデータ処理装
置では、例外処理は命令処理を再実行するもの(例外)
、命令処理を完了するもの(トラップ)及び割込の3種
類に分けて名称をつけている。また本発明のデータ処理
装置では、この3種の例外処理とシステム障害とを総称
してBITと称する。
(2)「機能ブロックの構成」 第1図は本発明のデータ処理装置の構成を示すブロック
図である。
本発明のデータ処理装置の内部を機能的に大きく分ける
と、命令フェッチ部101.命令デコード部102、 
PC計算部103.オペランドアドレス計算部104゜
マイクロROM部105.データ演算部106.外部バ
スインターフェイス部107に分かれる。
第1図では、その他にCPU外部にアドレスを出力する
ためのアドレス出力回路10Bと、CPU外部とデータ
を入出力するためのデータ入出力回路109とを他の機
能ブロック部と分けて示した。
(2,1)r命令フェッチ部」 命令フェア千部101にはブランチバッファ、命令キュ
ーとその制御部等があり、次にフェッチすべき命令のア
ドレスを決定してブランチバッファあるいはCPU外部
のメモリから命令をフェッチする。またブランチバッフ
ァへの命令登録をも行う。
ブランチバッファは小規模であるためセレクティブキャ
ッシュとして動作する。ブランチバッファの動作の詳細
は特開昭63−56731号に開示されている。
次にフェッチすべき命令のアドレスは、命令キュー30
1に入力すべき命令のアドレスとして専用のカウンタに
て計算される0分岐あるいはジャンプが発生した場合に
は、新たな命令のアドレスがPC計算部103あるいは
データ演算部106から転送されてくる。
CPU外部のメモリから命令をフェッチする場合は、外
部バスインターフェイス部107を通して、フェッチす
べき命令のアドレスをアドレス出力回路108からCP
t1外部へ出力し、データ入出力回路109から命令コ
ードをフェッチする。そして、バッファリングした命令
コードの内、次にデコードすべき命令コードを命令デコ
ード部102に出力する。
(2,2) r命令デコード部」 命令デコード部102では、基本的には16ビツト(ハ
ーフワード)単位で命令コードをデコードする。このブ
ロックには第1ハーフワードに含まれるオペレーション
コードをデコードするPH−デコーダ、第2.第3ハー
フワードに含まれるオペレーションコードをデコードす
るNFH−デコーダ、アドレッシングモードをデコード
するアドレッシングモードデコーダが含まれる。これら
FHWデコーダ、NFH−デコーダ、アドレッシングモ
ードデコーダを纏めて第1デコーダ303という。
F1デコーダあるいはNF)I−デコーダの出力を更に
デコードして、マイクロROMのエントリアドレスを計
算する第2デコーダ305、条件分岐命令の分岐予測を
行う分岐予測機構、オペランドアドレス計算の際のパイ
プラインコンフリクトをチェツクするアドレス計算コン
フリクトチエツク機構も含まれる。
命令デコード部102は命令フェッチ部101から入力
された命令コードを2クロツク(lステップ)につきθ
〜6バイトずつデコードする。デコード結果の内、デー
タ演算部106での演算に関する情報がマイクロROM
部105に、オペランドアドレス計算に関係する情報が
オペランドアドレス計算部104に、pc計算に関係す
る情報がpc計算部103にそれぞれ出力される。
(2,3) rマイクロROM部」 マイクロROM部105には、主にデータ演算部106
を制御するマイクロプログラムが格納されているマイク
ロROM、マイクロシーケンサ、マイクロ命令デコーダ
等が含まれる。マイクロ命令はマイクロROMから2ク
ロツク(1ステツプ)に1度読出される。マイクロシー
ケンサはマイクロプログラムで示されるシーケンス処理
の他に、例外、割込及びトラップ(この3つを合わせて
BITと称する)の処理をハードウェア的に受付ける。
またマイクロROM部105はストアバッファの管理も
行う。マイクロROM部105には命令コードに依存し
ない割込みあるいは演算実行結果によるフラッグ情報と
、第2デコーダ305の出力等の命令デコード部の出力
が入力される。マイクロデコーダの出力は主にデータ演
算部106に対して出力されるが、ジャンプ命令の実行
による他の先行処理中止情報等の一部の情報は他のブロ
ックへも出力される。
(2,4) rオペランドアドレス計算部」オペランド
アドレス計算部104は命令デコード部102のアドレ
スデコーダ等から出力されたオペランドアドレス計算に
関係する情報によりハードワイヤード制御される。この
ブロックではオペランドのアドレス計算に関するほとん
どの処理が行われる。メモリ間接アドレシングのための
メモリアクセスのアドレス及びオペランドアドレスがメ
モリにマツプされたl10eJf域に入るか否かのチエ
ツクも行われる。
アドレス計算結果は外部バスインターフェイス部107
に送られる。アドレス計算に必要な汎用レジスタ及びプ
ログラムカウンタの値はデータ演算部より入力される。
メモリ間接アドレッシングを行う際は外部バスインター
フェイス部107を通してアドレス出力回路108から
CPU外部へ参照すべきメモリアドレスを出力し、デー
タ入出力部109から入力された間接アドレス値を命令
デコード部102を通してフエツチする。
(2,5)  rPC計算部」 pc計算部103は命令デコード部102から出力され
るPC計算に関係する情報によりハードワイヤードに制
′4’IHされ、命令のpc値を計算する4本発明のデ
ータ処理装置は可変長命令セントを有しており、命令を
デコードしなければその命令の長さが判らない。このた
め、PC計算部103は命令デコード部102から出力
される命令長をデコード中の命令のpc値に加算するこ
とにより次の命令のpc値を作り出す。また、命令デコ
ード部102が分岐命令をデコードしてデコード段階で
の分岐を指示した場合は、命令長の代わりに分岐変位を
分岐命令のpc値に加算することにより分岐先命令のp
c値を計算する。分岐命令に対して命令デコード段階で
分岐を行うことを本発明のデータ処理装置ではプリブラ
ンチと称する。
このプリブランチの手法については特開昭63−596
30号及び特開昭63−55639号に詳しく開示され
ている。
pc計算部103の計算結果は各命令のpc値として命
令のデコード結果と共に出力される他、プリブランチ時
には、次にデコードすべき命令のアドレスとして命令フ
ェッチ部101へ出力される。また、次に命令デコード
部102でデコードされる命令の分岐予測のためのアド
レスにも使用される。
分岐予測の手法については特開昭63−175934号
に詳しく開示されている。
(2,6) rデータ演算部」 データ演算部106はマイクロプログラムにより制御さ
れ、マイクロll0M部105の出力情報に従って各命
令の機能を実現するに必要な演算をレジスタと演算器で
実行する。演算対象となるオペランドがアドレスあるい
は即値である場合は、オペランドアドレス計算部オペラ
ンドアドレス計算部104で計算されたアドレスあるい
は即値を外部バスインタフェイス部107を通過させて
得る。また、演算対象となるオペランドがCPu外部の
メモリにある場合は、アドレス計算部104で計算され
たアドレスをバスインクフェイス部がアドレス出力回路
108から出力して、CPU外部のメモリからフェッチ
したオペランドをデータ入出力回路109から得る。
演算器としてはALU3L3、バレルシフタ、プライオ
リティエンコーダあるいはカウンタ、シフトレジスタな
どがある。レジスタと主な演算器の間は3バスで結合さ
れており、1つのレジスフ間演算を指示する1マイクロ
命令を2クロフク(1ステツプ)で処理する。
データ演算時にCPU外部のメモリをアクセスする必要
がある場合は、マイクロプログラムの指示により外部バ
スインターフェイス部107を通してアドレス出力回路
108からアドレスをCPU外部に出力し、データ入出
力回路109を通して目的のデ、−タをフェッチする。
CP[I外部のメモリにデータをストアする場合は、外
部バスインターフヱイス部107を通してアドレス出力
回路108よりアドレスを出力すると同時に、データ入
出力回路109からデータをcpu外部に出力する。オ
ペランドストアを効率的に行うため、データ演算部10
6には4バイトのストアバッファが備えられている。
ジャンプ命令の処理あるいは例外処理等を行って新たな
命令アドレスをデータ演算部106が得た場合は、これ
を命令フェッチ部101とpc計算部103(2,7)
 r外部バスインターフェイス部」外部バスインターフ
ェイス部107は本発明のデータ処理装置の外部バスで
の通信を制御する。メモリのアクセスはすべてクロック
同期で行われ、最小2クロックサイクル(lステップ)
で行うことができる。
メモリに対するアクセス要求は命令フェッチ部101、
オペランドアドレス計算部104及びデータ演算部10
6から独立に生じる。外部バスインターフェイス部10
7はこれらのメモリアクセス要求を調停する。更にメモ
リとCPUとを結ぶデータバスサイズである32ビツト
(1ワード)の整置境界を跨ぐメモリ番地にあるデータ
のアクセスは、このブロック内で自動的にワード境界を
跨ぐことを検知して2回のメモリアクセスに分解して行
う。
プリフェッチするオペランドとストアするオペランドと
が重なる場合のコンフリクト防止処理及びストアオペラ
ンドからフェッチオペランドへのバイパス処理も行う。
(3)「パイプライン機構」 本発明のデータ処理装置のパイプライン処理機、能は第
2図に模式的に示される如くである。
命令のブリフェッチを行う命令フェッチステージ(TF
ステージ)201.命令のデコードを行うデコードステ
ージ(Dステージ)202.オペランドのアドレス計算
を行うオペランドアドレス計算ステージ(Aステージ)
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号で詳しく開示されている。
IFステージ201からDステージ202に渡される情
報は、命令コード211そのものである。Dステージ2
02からAステージ203に渡される情報は、命令で指
定された演算に関するもの(Dコード2夏2と称す)と
、オペランドのアドレス計算に関係するもの(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に到達する迄はEI丁
処理を起動しない、Eステージ205で処理されている
命令のみが実行段階の命令であり、IPステージ201
からFステージ204までの間で処理されている命令は
まだ実行段階に至っていないからである。従って、Eス
テージ205以外で検出されたEITは、それが検出さ
れたことがステップコード中に記録されて次のステージ
に伝えられるのみである。
(3,1) rパイプライン処理単位」(3,1,1)
 r命令コードフィールドの分類」本発明のデータ処理
装置のパイプライン処理単位は命令セントのフォーマッ
トの特徴を利用して決定されている。
(1)節で述べた如く、本発明のデータ処理装置の命令
は2バイト単位の可変長命令であり、基本的には“2バ
イトの命令基本部+0〜4バイトのアドレシング拡張部
2を1〜3回反復することにより命令が構成されている
命令基本部には多くの場合、オペレーションコード部と
アドレッシングモード指定部とがあり、インデックスア
トレジソングあるいはメモリ間接アドレッシングが必要
な場合にはアドレッシング拡張部の代わりに“2バイト
の多段間接モード指定部子〇〜4バイトのアドレッシン
グ拡張部”が任意側付く、また、命令により2または4
バイトの命令固有の拡張部が最後に付く。
命令基本部には命令のオペレーションコード、基本アド
レッシングモード、リテラルなどが含まれる。アドレッ
シング拡張部はディスプレースメント、絶対アドレス、
即値、分岐命令の変位のいずれかである。命令固有の拡
張部にはレジスタマツプ、I−format命令の即値
指定等がある。第35図は、本発明のデータ処理装置の
基本的命令フォーマットの特徴を示す模式図である。
(3,1,2) rステップコードへの命令の分解」本
発明のデータ処理装置では、上記の命令フォーマントの
特徴を生かしたパイプライン処理を行う。
Dステージ202では“2バイトの命令基本部子〇〜4
バイトのアドレッシング拡張部”、“多段間接モード指
定部子アドレッシング拡張部”又は命令固有の拡張部を
1つのデコード単位として処理する。各回のデコード結
果をステップコードと称し、Aステージ203以降では
このステップコードをパイプライン処理の単位としてい
る。ステップコードの数は命令毎に固有であり、多段間
接モード指定を行わない場合は、1つの命令は最小1個
、最大3個のステップコードに分かれる。多段間接モー
ド指定が行われた場合はそれだけステップコードが増加
する。但し、これは後で述べる様にデコード段階のみで
ある。
(3,1,3) rプログラムカウンタの管理」本発明
のデータ処理装置のパイプライン上に存在するステップ
コードは全て別命令に対するものである可能性があり、
このためプログラムカウンタの値はステップコード毎に
管理される。全てのステップコードは、そのステップコ
ードのもとになった命令のプログラムカウンタ値を有す
る。ステ・7プコードに付属してパイプラインの各ステ
ージを流れるプログラムカウンタ(直はステンブブログ
ラムカウンタ(SPC)と称する。 spcはパイプラ
インステージ間を次々と受は渡されていく。
(3,2) r各パイプラインステージの処理」各パイ
プラインステージの人出カステップコードには第2図に
示したように便宜上名前が付けられている。また、ステ
ップコードはオペレーションコードに関する処理を行い
、マイクロプログラムのエントリアドレス及びEステー
ジ205に対するパラメータなどになる系列とEステー
ジ205のマイクロ命令に対するオペランドになる系列
との2系列がある。
(3,2,1) r命令フェッチステージ」命令フェッ
チステージ(IPステージ)201は命令をメモリある
いはブランチバッファからフェッチして命令キュー30
1に入力し、Dステージ202に対して命令コードを出
力する。命令キュー301の入力は整置された4バイト
単位で行う。メモリから命令をフェッチする場合は、整
置された4バイトにつき最小2クロンク(1ステツプ)
を要する。
ブランチバッファがヒントした場合は、整置された4バ
イトにつきlクロックでフェッチ可能である。命令キュ
ー301の出力単位は2バイト毎に可変であり、2クロ
ツクの間に最大6バイトまで出力できる。また、分岐の
直後には命令キュー301をバイパスして命令基本部2
バイトを直接命令デコーダに転送することも可能である
ブランチバッファへの命令の登録及びクリア等の制御、
ブリフェッチ先の命令のアドレスの管理や命令キューの
制御もIPステージ201で行う。
IPステージ201で検出するEITには、命令をメモ
リからフェッチする際のバスアクセス例外あるいはメモ
リ保護違反などによるアドレス変換例外がある。
(3,2,2) r命令デコードステージ」命令デコー
ドステージ(Dステージ)202はIFステージ201
から入力された命令コードをデコードする。デコードは
命令デコード部102のFH−デコーダ、NFHWデコ
ーダ及びアドレッシングモードデコーダを合わせた第1
デコーダ303を使用して、2クロフク(1ステツプ)
単位に1度行ない、1回のデコード処理で、O〜6バイ
トの命令コードを消費する(RE↑命令の復帰先アドレ
スを含むステップコードの出力処理などでは命令コード
を消費しない)、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でオペランドアドレスの計算
を行う処理である。
オペレーションコードの後段デコード処理はDコード2
12を入力とし、レジスタ、メモリの書込み予約及びマ
イクロプログラムのエントリアドレスとマイクロプログ
ラムに対するパラメータなどを含むRコード214の出
力を行う、なお、レジスタあるいはメモリの書込み予約
は、アドレス計算で参照したレジスタやメモリの内容が
パイプライン上を先行する命令で書換えられることによ
り誤ったアドレス計算が行われるのを防ぐためのもので
ある。レジスタあるいはメモリの書込み予約はデッドロ
ックを避けるため、ステップコード毎ではなく命令毎に
行う、レジスタ及びメモリへの書込み予約については特
願昭62−144394号に詳細に開示されている。
オペランドアドレス計算処理はAコード213を入力と
し、Aコード213に従いオペランドアドレス計算部1
04で加算あるいはメモリ間接参照を組合わせてアドレ
ス計算を行い、その計算結果をFコード215として出
力する。この際、アドレス計算に伴うレジスタ及びメモ
リの読出し時にコンフリクトチエツクを行い、先行命令
がレジスタあるいはメモリに書込み処理を終了していな
いためコンフリクトが指示されれば、先行命令がEステ
ージ205で書込み処理を終了するまで待つ。また、オ
ペランドアドレス及びメモリ間接参照のアドレスがメモ
リにマツプされた!70領域に入るか否かのチエツクも
行う。
Aステージ203で検出するBITには予約命令例外、
特権命令例外、バスアクセス例外、アドレス変換例外、
メモリ間接アドレッシングの時のオペランドブレイクポ
イントヒントによるデバッグトラ、ブがある。Dコード
212又はAコード213自体がEITを起こしたこと
を示していれば、Aステージ203はそのコードに対し
てアドレス計算処理をせず、そのEFTをRコード21
4及びFコード215に伝える。
(3,2,4) rマイクロROMアクセスステージ」
オペランドフェッチステージ(Fステージ)204も処
理が大きく2つに分かれる。一方はマイクロROMのア
クセス処理であり、特にRステージ206と称する。他
方はオペランドプリフェッチ処理であり、特にOFステ
ージ207と称する。Rステージ206とOFステージ
207とは必ずしも同時に動作するわけではなく、メモ
リアクセス権が獲得できるか否か等に依存して独立に動
作する。
Rステージ206の処理であるマイクロROMアクセス
処理は、Rコード214に対して次のEステージ205
での実行に使用する実行制御コードであるEコード21
6を生成するためのマイクロROMアクセスとマイクロ
命令デコード処理である。1つのRコード214に対す
る処理が2つ以上のマイクロプログラムステップに分解
される場合、マイクロ110MはEステージ205で使
用され、次のRコード214はマイクロl?OMアクセ
ス待ちになる。Rコード214に対する7420120
Mアクセスが行われるのは、その前のEステージ205
での最後のマイクロ命令実行の時である。本発明のデー
タ処理装置では、はとんどの基本命令は1マイクロプロ
グラムステツプで行われるため、実際にはRコード21
4に対するマイクロROMアクセスが次々と行われるこ
とが多い。
Rステージ206で新たに検出するEATはない。
Rコード214が命令処理再実行型のBITを示してい
る時は、そのE!T処理に対するマイクロプログラムが
実行されるので、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が書き込み処理を行おうとするオペ
ランドとが一敗する場合は、オペランドプリフェッチは
メモリから行わずバイパスして行う、また、r10領域
に対してはオペランドプリフェッチを遅延させ、先行命
令がすべて完了するまで待ってオペランドフェッチを行
う。
OFステージ207で検出されるEATには、バスアク
セス例外、アドレス変換例外、オペランドプリフェッチ
に対するブレイクポイントヒツトによるデバッグトラッ
プがある。Fコード215がデバッグトラップ以外のE
FTを示している時は、それをSコード217に転送し
、オペランドプリフェッチは行わない、Fコード215
がデバッグトラップを示している時は、そのFコード2
15に対してBITを示していない場合と同じ処理をす
ると共にデバラグトラップをSコード217に伝える。
(3,2,6) r実行ステージ」 実行ステージ(Eステージ)205はEコード216及
びSコード217を入力として動作する。このEステー
ジ205が命令を実行するステージであり、Fステージ
204以前のステージで行われた処理は全てEステージ
205のための前処理である。Eステージ205でジャ
ンプ命令が実行されたり、あるいはBIT処理が起動さ
れたりした場合は、IPステージ201からFステージ
204までの処理は全て無効化される。Eステージ20
5はマイクロプログラムにより制御され、Rコード21
4に示されたマイクロプログラムのエントリアドレスか
らの一連のマイクロプログラムを実行することにより命
令を実行する。
マイクロROMの読み出しとマイクロ命令の実行とはパ
イプライン化されて行われる。従ってマイクロプログラ
ムで分岐が起きた場合は、1マイクロステツプの空きが
できる。また、Eステージ205はデータ演算部106
にあるストアバッファを利用して、4バイト以内のオペ
ランドストアと次のマイクロ命令実行をパイプライン処
理することもできる。
Eステージ205では、Aステージ203で行ったレジ
スタ及びメモリに対する書込み予約をオペランドの書き
込み後に解除する。
また、条件分岐命令がEステージ205で分岐を発した
場合は、その条件分岐命令に対する分岐予測が誤ってい
たのであるから、分岐履歴の書換えを行う。
Eステージ205で検出されるBITには、バスアクセ
ス例外、アドレス変換例外、デバッグトラップ、奇数ア
ドレスジャンプトランプ、予約機能例外、不正オペラン
ド例外、予約スタックフォーマント例外、ゼロ除算トラ
ップ、無条件トラップ、条件トラップ、遅延コンテキス
トトラップ、外部割込、遅延割込、リセット割込、シス
テム障害がある。
Eステージ205で検出されたBITは全てEIT処理
されるが、Eステージ以前のIFステージ201からF
ステージ204の間で検出され、Rコード214あるい
はSコード217に反映されているBITは必ずしもE
IT処理されるとは限らない。!Fステージ201から
Fステージ204の間で検出されたが、先行の命令がE
ステージ205でジャンプ命令が実行されたなどの原因
でEステージ205まで到達しなかったEITは全てキ
ャンセルされる。そのBITを起こした命令はそもそも
実行されなかったことになる。
外部割込及び遅延割込は命令の切れ目でEステージ20
5に直接光は付けられ、マイクロプログラムにより必要
な処理が実行される。その他の各種BITの処理はマイ
クロプログラムにより行われる。
(3,3) r各パイプラインステージの状態制御」パ
イプラインの各ステージは入力ラッチと出力ラッチとを
有し、他のステージとは独立に動作することを基本とす
る。各ステージは1つ前に行った処理が終わり、その処
理結果を出力ランチから次のステージの入力ラッチに転
送し、自分のステージの入力ラッチに次の処理に必要な
入力信号がすべて揃えば次の処理を開始する。
つまり各ステージは、1つ前段のステージから出力され
てくる次の処理に対する入力信号が全て有効となり、今
の処理結果を後段のステージの入力ラッチに転送して出
力ラッチが空になると次の処理を開始する。
各ステージが動作を開始する1つ前のクロックタイミン
グで入力信号が全て揃っている必要がある。入力信号が
揃っていない場合、そのステージは待ち状態(入力待ち
)になる。出力ラッチから次のステージの入力ラッチへ
の転送を行う場合には次のステージの入力ランチが空き
状態になっている必要があり、次のステージの入力ラッ
チが空きでない場合もパイプラインステージは待ち状態
(出力待ち)になる、必要なメモリアクセス権が獲得で
きなかったり、処理しているメモリアクセスにウェイト
が挿入されたり、その他のパイプラインコンフリクトが
生じると各ステージの処理自体が遅延する。
(4)  r POP命令の処理シーケンス」上述の如
きデータ処理装置において、POP命令がパイプライン
上で如何に処理されるかについて、デスティネーション
がメモリ指定である場合とレジスタ指定である場合とに
分けて、図面を参照して更に詳しく説明する。
本発明のデータ処理装置の更に詳しい構成を第3図のブ
ロック図に示す。
命令キュー301は、命令フェッチ部101中にあり、
IPステージ201の処理に関与する。
第1デコーダ303は、命令デコード部102中にあり
、Dステージ202の処理に関与する。
第2デコーダ304とATMPレジスタ310は、命令
デコード部102中にあり、Aステージ203の処理に
関与する。ATMPレジスタ310は、メモリ間接参照
時にメモリアクセスでリードしたデータを保持するため
に使用される。
アドレス加算器305. AOUTレジスタ306.B
115Eレジスタ301. INDEXレジスタ308
及びDISPI、ジスタ309はオペランドアドレス計
算部104中にあり、Aステージ203の処理に関与す
る。BASFレジスタ307゜INDEX レジスタ3
08. DISP レジスタ309は、それぞれベース
(直、インデックス(直、ディスプレースメント値を保
持するためのレジスタである。 BASEレジスタ30
1. [NDEXL、ジスタ308. DTSP L、
ジスタ309の値を同時に加算するのがアドレス加算器
305である。AOUTレジスタ306は、アドレス加
算器305の出力保持のためのレジスタである。
ASPレジスタ311は、スタックポインタ計算部中に
あり、Aステージ203の処理に関与する。
スタックからのポツプ操作、スタックへのプ。
シュ操作等によるsp値のコンフリクトを防ぐため、A
ステージ203では、Eステージ205のsp値に先行
してAステージのsp値であるASP値を管理している
。ポツプ操作及びブツシュ操作に伴うsp値の更新は、
Aステージ203においてASP値を制御することによ
って行われる。従って、ASP(iを参照することによ
り、通常のポツプ操作及びブツシュ操作の直後でもsp
値のコンフリクトに起因するステンプコードの処理の遅
れを生じることなく処理を進めることが出来る。このA
 S P (1iを保持するのがASPレジスタ311
である。なお、sp値の管理方法に関しては特願昭62
−145852号で詳しく開示されている。
マイクロROM、マイクロシーケンサ、マイクロ命令デ
コーダ等を含むマイクロROM部105は、Rステージ
206の処理に関与する。
汎用レジスタファイル312.A1.t1313. S
Oレジスタ314.00レジスタ315は、データ演算
部106中にあり、OFステージ207とEステージ2
05の処理に関与する。SDレジスタ314は、オペラ
ンドフェッチ時にメモリアクセスでリードしたデータを
保持するためのレジスタである。DDレジスタ315は
、Eステージ205がメモリアクセスでデータのリード
あるいはストアを行う際に対象となるデータを保持する
ためのレジスタである。
IAレジスタ316.FAレジスタ317. SAレジ
スタ318AAレジスク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 AOババス2
3 AAババス24、Slバス325.S2バス326
.Doババス27がある。
Dステージ202の単純化した構成を第4図のブロック
図に示す。
Dステージ202は、既に述べた如く主として第1デコ
ーダ303にて構成されている。この第1デコーグ30
3はPLA(Programmable 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、左レジスタ番号情報等にて構成さ
れている。
右レジスタ番号情報及び左レジスタ番号情報は、それぞ
れ右レジスタ番号生成部501及び左レジスタ番号生成
部502に入力され、右レジスタ番号りと左レジスタ番
号RLとをそれぞれ生成する。右レジスタ番号情報には
、オペランドがレジスタ上の値、リテラル、メモリ上の
値あるいは即値のいずれであるかを示す情報が含まれる
。左レジスタ番号情報には、オペランドがレジスタ上の
値あるいはリテラルのいずれであるかを示す情報が含ま
れる。
右レジスタ番号ね及び左レジスタ番号RLはそれぞれ命
令フォーマント中の第1のレジスタ指定部及び第2のレ
ジスタ指定部とに対応付けられるものであり、そのレジ
スタ番号によってそれぞれ第1のオペランド及び第2オ
ペランドの格納先が指定される。−例として第14図に
示すR−FOI?MA?命令を挙げると、Rnは第1の
レジスタ指定部であって右レジスタ番号りに対応し、R
mは第2のレジスタ指定部であって左レジスタ番号RL
に対応する。
命令フォーマット上では、第1のオペランド指定部及び
第2のオペランド指定部のいずれがソースでありまたデ
スティネーションであるかは一意的には決っていない。
このため、右レジスタ番号R4と左レジスタ番号R7と
のいずれがソースレジスタ番号Rsになり、デスティネ
ーションレジスタ番号R11になるかは、第2デコーダ
304の出力であるレジスタ番号請訓信号によってレジ
スタ番号生成部503において決定される。
また、第2デコーダ304の出力であるサイズ制御信号
が与えられたサイズ生成部504では、右レジスタ番号
R7が示すレジスタのデータサイズである右レジスタサ
イズ6と左レジスタ番号RLが示すレジスタのデータサ
イズである左レジスタ番号情報、とがそれぞれソースサ
イズ6、デスティネーションサイズ6にて定められる。
Fステージ204では、第2デコーダ304の出力であ
るRコード・Fコード有効信号によって、Rコード21
4とFコード215とがFステージ204に送られたこ
とを認識する。
第6図及び第7図はそれぞれレジスタ番号生成部503
及びサイズ生成部504の構成を示す回路図である。
第6図における入力信号RC1,RC2,RC3,RC
4は第2デコーダ304が出力するレジスタ番号制御信
号である。また、第7図における入力信号SCI、5C
2SC3,SC4は第2デコーダ304が出力するサイ
ズ制御信号である。
601、602.603,604 、701 、702
.703.704はそれぞれNチャネルトランスミッシ
ョンゲート(TC) 、605はPチャネル丁G 、 
606 、607はインバータ、608は叶ゲートを示
す。それぞれの回路は入力ゲートがセレクタになってい
るランチで構成されている。また、回路610はPチャ
ネルTG605.インバータ606.インバータ607
及びORゲート608にて構成されている。
そして、回路611,710,711は共に回路610
と同等の構成である。
なお、第6図及び第7図では簡略化のためlビット分の
回路を示している。しかし、レジスタ番号を示す信号及
びサイズを示す信号はそれぞれ5ビット及び2ビツトで
あるので、実際はそれぞれ対応するビット数の回路で構
成されている。
第8図は第5図に示した第2デコーダ304の出力であ
るRコード・Fコード出力制御信号、レジスタ番号制御
信号及びサイズ制御信号のpop命令の際の内容を示す
表である。
第9図+al、 Q)lはパイプライン上におけるPO
P命令の処理シーケンスを示すフローチャートである。
第9図fatに示されているのはデスティネーションが
メモリ指定時のフローチャートである。また第9図Cb
lに示されているのはデスティネーションがレジスタ指
定時のフローチャートである。
第10図fal、(bl、 (cl、 fdlは、PO
P命令を処理する際のDステージ以降のステージにおけ
るステップコードの処理の流れを示す模式図である0図
において、縦軸は時間を表しており、2目盛りが2クロ
ツク(1ステップ)に相当する。
第10図fat、 (blはそれぞれデスティネーショ
ンがメモリ指定時とレジスタ指定時であり、且つパイプ
ライン上で待ち状態のない場合のステップコードの処理
の流れを示している。
第10図(C1,(dlはそれぞれデスティネーション
がメモリ指定時とレジスタ指定時であり、且つPOP命
令の直前のステップコードの処理にEステージ205に
おいて6クロソク(3ステツプ)要し、そのためPOP
命令のステップコードに待ち状態が生じた場合のステッ
プコードの処理の流れを示している。
第37図(al 、 (blはPOP命令の命令フォー
マ−/ トを示す模式図である。pop命令の命令フォ
ーマットは第17図に示したGl−FORMATである
。そして、第37図fa)はレジスタ間接アドレッシン
グの場合を示す。ここで指定する汎用レジスタ番号Rn
は参照先の汎用レジスタを示す。また第37図(b)は
レジスタ直接アドレッシングの場合を示す。ここで指定
する汎用レジスタ番号Rnはデスティネーションとなる
汎用レジスタを示す。
POP命令は、スタックトップ上のデータをメモリある
いはレジスタに転送する命令であるので、メモリーレジ
スタ間、またはメモリーメモリ間の転送命令と実質的に
同等である。そこで、本発明のデータ処理装置では、ソ
ースオペランド指定部がないにもかかわらずソースオペ
ランド部の処理のためのステップコードを生成し、Eス
テージ以前において必要な前処理の全てを行うように構
成されている。
以下、第9図(a)、(1))のフローチャートを参照
して説明する。
(4,1,)rデスティネーションがメモリ指定時」先
ず、IFステージ201はPOP命令をメモリ上よりフ
ェッチして命令キュー301に人力し、Dステージ20
2に対してPOP命令の命令コード2+1を出力する。
Dステージ202は、IPステージ201によってフェ
ッチされたPOP命令を第1デコーダ303によりデコ
ードする。
pop命令の命令コード211は第1デコーダ303に
人力されてデコードされ、POP命令の第1のステップ
コード(1−]、)が生成される。デコード結果の一部
は内部状態信号として内部状態保持ランチ401に保持
される。
次のデコードのサイクルでは、内部状態保持ラッチ40
1からの内部状態信号に応答して、第1デコーダ303
はIFステージ201からの命令コード211を取り込
まずにPOP命令の第2のステップコード(1−2)を
生成する。このようにして、第9図[B)に示す如く2
つのステップコードが生成される6POP命令中にはソ
ースオペランド指定部はないが、命令の機能としてソー
スオペランドがスタックトップであることが暗に示され
ている。従って、本発明によるデータ処理装置では、P
ol)命令をデコードした段階で、ソースオペランドに
関する処理を予め行うためのステップコード(1−2)
を生成する。
Dステージ202が出力するそれぞれのステップコード
は、Aコード213とDコード212とから構成されて
いる。同一のステップコード中にあるAコード213と
Dコード212とは同時にAステージ203に送られる
。  pop命令から生成されたステップコードはAス
テージ203に対して、ステ、プコ−ド(1−1)、ス
テップコード(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中に含まれる制御信号によりIN[lEXレジスタ
308とDISPレジスタ309がクリアされる。
この3つのレジスタの値がアドレス加算器305により
加算され、その結果はAOIJTレジスタ306に格納
される。更に、AOLITレジスタ306中の値はAO
ババス23を介してFAレジスタ317に送られる。F
Aレジスタ317中にある参照先の汎用レジスタからの
値は第2デコーダ304の出力の一部と共にFコード2
15となる。
第8図に示す如く第2デコーダ304は、Dコード21
2の中間デコード結果を入力すると、マイクロプログラ
ムのエントリアドレスあるいは種々の制御情報を生成す
る。
また、Dコード212中の右レジスタ番号情報及び左レ
ジスタ番号情報はそれぞれ右レジスタ番号生成部501
及び左レジスタ番号生成部502に入力され、右レジス
タサイズ糞及び左レジスタ番号1?Lを生成する。  
pop命令のステップコード(1−1)では、右レジス
タ番号りのみが意味を有していてSDレジスタ318を
示す、また、右レジスタサイズ6はワードを示す。
第2デコーダ304が出力する制御情報にはレジスタ番
号制御1118号とサイズ制御信号とが含まれる。
レジスタ制御信号は、右レジスタ番号R1がデスティネ
ーションレジスタ番号R,に対応することを示す。また
、サイズ制御信号は、右レジスタサイズhがデスティネ
ーションレジスタサイズ6に対応することを示す。
レジスタ番号制御信号RCI、 RC2,RC3,RC
4の中で11c3のみがイネーブルとなり、Nチャネル
TG603のみがONL、右レジスタ番号R,がデステ
ィネーションレジスタ番号R0として保持される。また
、サイズ制御信号SC1,SC2,SC3,SC4の中
でSC3のみがイネーブルとなり、NチャネルTG70
3のみがONL、右レジスタサイズhがデスティネーシ
ョンレジスタサイズ6として保持される。
この様にステップコード(1−1)中では、デスティネ
ーションレジスタ番号6はSDレジスタ318を示し、
またデスティネーションレジスタサイズ−0はワードを
示す。
これらマイクロプログラムのエントリアドレス及びレジ
スタ番号等からRコード214が生成される。
この様にして生成されたRコード214とFコード21
5とは同時にFステージ204に送られる。
Rステージ206は、Rコード・Fコード有効信号がイ
ネーブルになると、Rコード214を入力し、Rコード
214中に含まれるマイクロプログラムのエントリアド
レスにてマイクロROM105をアクセスする。マイク
ロ110M105の出力はデコードされ、レジスタ番号
等と共にEコード216となる。このEコード216の
デスティネーションレジスタ番号R。
が示すレジスタはSDレジスク314であり、またデス
ティネーションレジスタサイズ6はワードである。
OFステージ207は、Rコード・Fコード有効信号が
イネーブルになると、Fコード215を入力し、Fコー
ド215の一部であるFAレジスタ317中の値はSA
レジスタ318に転送される。 SAレジスタ318中
の値はSコード217としてEステージ205に送られ
る。
Eステージ205にEコード216とSコード217が
入力されると、S^レジスタ318中の値をAAレジス
タ219に格納せよ、という処理が行われる。この場合
、デスティネーションレジスタ番号RDが示すレジスタ
はSDレジスタ314であるが、書き込みオペランドで
あるのでこの値は意味が無い。このため、SAレジスタ
318中の値がAAレジスタ319に転送されるのみで
ある。
以上の如(、ステップコード(1−1)はパイプライン
上を順次処理されていく。
(4,1,2)  r POP命令の第2ステツプコー
ド(1−2)の処理」 Aステージ203はAコード213とDコード212と
を入力する。
Aコード213がAステージ203に入力されると、A
ステージ203ではAコード213中の制′4n信号の
制御によってアドレス計算が行われる。Aステージ20
3のスタックポインタであるASPレジスタ311から
値がAバス322上に出力され、BASI!レジスタ3
07に格納される。 INDEXレジスタ308及びD
ISPレジスタ309はクリアされる。BASEレジス
タ307INDEX レジスタ308及びDISPレジ
スタ309の値がアドレス加算器305で加算され、そ
の結果はAOUTレジスタ306に格納される。この動
作によって、ASPレジスタ311の内容がAOυ丁レ
ジスタ306に転送される。同時にASPレジスタ31
1は+4インクリメントされる。更に、AOUTレジス
タ306中の値はAOババス23を介してFAレジスタ
317に送られる。
FAレジスタ317中にあるASP値は第2デコーダ3
04の出力の一部と共にFコード215となる。
第8図に示す如く第2デコーダ304は、Dコード21
2の中間デコード結果が入力されると、マイクロプログ
ラムのエントリアドレス及び種々の制御情報を生成する
また、Dコード212中の右レジスタ番号情報及び左レ
ジスタ番号情報は、それぞれ右レジスタ番号生成部50
1及び左レジスタ番号生成部502に入力され、右レジ
スタ番号Rい左しジスク番号R9,が生成される。PO
P命令の第2のステップコード(12)では、右レジス
タ番号R5のみが意味を有していてSDレジスタ514
を示す。右レジスタサイズリ8はワードを示す。
この右レジスタ番号情報は、命令フォーマット中で指定
されるものではなく、このステップコード(1−2)生
成時にDステージ202で生成されたものである。
第2デコーダ304が出力する制御情報の中には、レジ
スタ番号制御情報とサイズ制御情報が含まれる。レジス
タ番号制御信号は右レジスタ番号RRがソースレジスタ
番号R3に対応することを示す。またサイズ制御信号は
、右レジスタサイズ6がソースレジスタサイズ6に対応
することを示す。
レジスタ番号制御信号RCl 、 RC2、1lc3 
、 I?C4の中でRCIのみがイネーブルとなり、N
チャネルTG601のみがONI、、、右レジスタ番号
R,がソースレジスタ番号Rsとして保持される。デス
ティネルジョンレジスタ番号R8は、ステップコード(
1−1)で処理時に保持した番号のままである。また、
サイズ制御信号SCI、SC2,SC3,SC4の中で
SCIのみがイネーブルとなり、NチャネルTG701
のみがONシ、右レジスタサイズ6がソースレジスタサ
イズ賀、として保持される。
このようにステップコード(1−2)中では、ソースレ
ジスタ番号R8はSDレジスタ314を示し、ソースレ
ジスタサイズ讐、はワードを示す。
これらのマイクロプログラムのエントリアドレス及びレ
ジスタ番号等からRコード214が生成される。
このようにして生成されたRコード214及びFコード
215は同時にFステージ204に送られる。
Rステージ206は、Rコード・Fコード有効信号がイ
ネーブルとなると、Rコード214を入力し、Rコード
214中に含まれるマイクロプログラムのエントリアド
レスにてマイクロROM105をアクセスする。マイク
ロROM105の出力はデコードされ、レジスタ番号等
と共にEコード216となる。このステップコード(1
−2)のソースレジスタ番号R8が示すレジスタはSD
レジスタ314であり、またソースレジスタサイズhは
ワードである。
OFステージ207は、Rコード・Fコード有効信号が
イネーブルとなると、Fコード215を入力する。Fコ
ード215の一部であるFAレジスク317の値はこの
命令のSP値である。そして、FAレジスタ317の値
をアドレス値として、外部バスインターフェース部10
7を介してスタックトップに対してオペランドのブリフ
ェッチが行われる。このスタックトップに対するアクセ
スにおいて、プリフェッチされた値は外部バスインター
フェース部107を介して本発明のデータ処理装置内に
読み込まれ、DOババス20上よりSDレジスタ314
に保持される。
SDレジスタ314中の値はSコード217の一部とし
てEステージ205に送られる。
Eステージ205は、Eコード216及びSコード21
7を入力すると、AAレジスタ319の値をデスティネ
ーションアドレスとしてソースレジスタ番号R8が示す
レジスタ中の値を転送せよ、という処理が行われる。こ
の場合、ソースレジスタ番号R3が示すレジスタはSD
レジスタ314である。従って、初めの2クロツク(1
ステツプ)でスタックトップからブリフェッチされたS
Dレジスタ314中の値は、51バス325上からAL
U313へ送られ、演算されることなくDoババス27
上からDOレジスタ315に転送される。
次の2クロツク(1ステツプ)でDDレジスタ315に
送られたデータは、ステップコード(1−1)の処理で
保持したAAレジスタ319中の値をデスティネーショ
ンアドレスとして、外部バスインターフェース部107
を介して格納されるゆ Eステージ205において、基本的にASP命令の第2
ステツプコード(1−2)は処理に4クロツク(2ステ
・2プ)を要する。しかし、データの演算と格納とはパ
イプライン化されているので、データの格納処理中に次
の命令の処理を始める場合もあり、この場合は処理に2
クロツク(lステップ)を要するのみである。
以上の如くして、ステップコード(1−2)はパイプラ
イン機構上を順次処理されていく。
本発明のデータ処理装置においては、第10図fatに
示す如< pop命令のステップコード(1−1)及び
ステップコード(1−2)はパイプラインの各ステージ
上で順次処理されていく、従って、POP命令の処理時
における各ステージの負荷分散が十分に行(4,2) 
rデスティネーションがレジスタ指定時」7ドレシソシ
ングモードがレジスタ直接モードである場合、デスティ
ネーションが汎用レジスタになったことによりデスティ
ネーションオペランドに関する処理の簡略化が可能にな
る。
以下に、POP命令のアドレシッジングモードがレジス
タ直接モードである場合に、デスティネーションオペラ
ンドに関する処理を如何に簡略化するかを詳細に説明す
る。
なお、ここでデスティネーションとなる汎用レジスタの
レジスタ番号はR1であるとする。従って、第37図f
blの汎用レジスタ番号RnはIllである。
先ず、lFステージ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図山)に示す如く2つのス
テップコードが生成される。
命令中にはソースオペランド指定部はないが、命令の機
能としてソースオペランドがスタックトップであること
が暗に示されている。本発明のデータ処理装置では、p
op命令をデコードした段階で、ソースオペランドに関
する処理を予め行うためのステップコード(2−2)を
生成する。
Dステージ202から出力されるそれぞれのステップコ
ードはAコード213とDコード212とから構成され
ている。同一のステップコード中にあるAコード213
とDコード212とは同時にAステ−ジ203に送られ
る。POP命令から生成されたステッ7’D−ドは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に入力され、右レジス
タ番号R2及び左レジスタ番号ItLが生成される。P
OP命令のステップコード(2−1)では、右レジスタ
番号RIIのみが意味を有していて汎用レジスタファイ
ル中にある汎用レジスタR[を示し、また右レジスタサ
イズ6はワードを示す。
第2デコーダ304が出力する制御情報には、レジスタ
番号制御情報とサイズ制御情報とが含まれている。レジ
スタ番号制御信号は、右レジスタ番号りがデスティネー
ションレジスタ番号R0に対応することを示す、また、
サイズ制御信号は、右レジスタサイズhがデスティネー
ションレジスタサイズ6に対応することを示す。
レジスタ番号制御信号RCI、 RC2,RC3,RC
4の中でRC3のみがイネーブルとなり、NチャネルT
G603のみがONL、右レジスタ番号りがデスティネ
ーションレジスタ番号R0として保持される。また、サ
イズ制御′i信号SCI 、 SC2,SC3,SC4
の中でSC3のみがイネーブルとなり、NチャネルTG
703のみがONL、右レジスタサイズへがデスティネ
ーションレジスタサイズW11として保持される。
以上の如く、ステップコード(2−1)中では、デステ
ィネーションレジスタ番号R,は汎用レジスタR1を示
し、またデスティネーションレジスタサイズ6はワード
を示す。
第2デコーダ304は、アドレッシングモードがレジス
タ直を妾アドレッシングであることから、Rコード・F
コード有効信号をイネーブルにしない。
従って、Fステージ204はステップコード(2−1)
を入力しない。つまり、ステップコード(2−1)はA
ステージ203において消滅する。
デスティネーションレジスタ番号R9とデスティネーシ
ョンレジスタサイズ−0はステップコード(22)に渡
されるために保持され続ける。
もし、レジスタ直接モード以外のアドレッシングモード
であるならば、デスティネーションオペランドに関する
処理を行うステップコード(2−1)は、Eステージ2
05においてデスティネーションアドレス値を静レジス
タ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中の制
御信号の制御TJによりアドレス計算を行う。
Aステージ203のスタックポインタである^SPレジ
スタ311からその(直がAバス322上に出力され、
BASEレジスタ307に格納される。  INDEX
レジスタ308及びorspレジスタ309はクリアさ
れる。BASEレジスタ307. INDEXレジスタ
308及び旧spレジスタ309の値がアドレス加算器
305で加算され、その結果はAOUTレジスタ306
に格納される。この動作により、ASPレジスタ311
の内容がAOUTレジスタ306に転送される。同時に
ASPレジスタ3]1は+4インクリメントされる。更
に、AOUTレジスタ306中の値はAOババス23を
介してFAレジスタ317に送られる。FAレジスタ3
17中にあるASP値は第2デコーダ304の出力の一
部と共にFコード215となる。
第8図に示す如く第2デコーダ304は、Dコード21
2の中間デコード結果を入力すると、マイクロプログラ
ムのエントリアドレス及び種々の制御情報を生成する。
また、Dコード212中の右レジスタ番号情報及び左レ
ジスタ番号情報はそれぞれ右レジスタ番号生成部501
及び左レジスタ番号生成部502に人力され、右レジス
タ番号り及び左レジスタ番号R5が生成される。  P
OP命令のステップコード(2−2)では、右レジスタ
番号Rえのみが意味を有していてSDレジスタ314を
示す、また、右レジスタサイズhはワードを示す。この
ステップコード(2−2)の右レジスタ番号情報は命令
フォーマット中で指定されるものではなく、このステッ
プコード(2−2)生成時にDステージ202で生成さ
れたものである。
第2デコーダ304が出力する制御情報の中には、レジ
スタ番号制御情報とサイズ制御情報とが含まれる。レジ
スタ番号制御信号は右レジスタ番号R1がソースレジス
タ番号R3に対応することを示し、サイズ制御信号は右
レジスタサイズhがソースレジスタサイズ6に対応する
ことを示す。
レジスタ番号制御信号RCI 、 RC2,RC3,R
C4の中でRCIのみがイネーブルとなり、Nチャネル
TG601のみがONL、、右レジスタ番号りがソース
レジスタ番号R3として保持される。デスティネーショ
ンレジスタ番号R0は、ステップコード(2−1)で処
理時に保持した番号のままである。また、サイズ制御信
号SCI、 SC2,SC3,SC4の中でsclのみ
がイネーブルとなり、NチャネルTG701のみが0I
IL、右レジスタサイズ6がソースレジスタサイズ1l
Isとして保持される。デスティネーションレジスタサ
イズ6は、ステップコード(2〜1)で処理時に保持し
たサイズのままである。
この様にステップコード(2−2)中では、デスティネ
ーションレジスタ番号RDは汎用レジスタR1を示し、
ソースレジスタ番号R3はSDレジスタ314を示し、
またデスティネーションレジスタサイズW。
はワードを示し、ソースレジスタサイズ6はワードを示
す。従って、ステップコード(2−1)の情報の一部を
ステップコード(2−2)に吸収したことになる。
また、レジスタ直接モード時は、第2デコーダ304で
はマイクロプログラムのエントリアドレスの下位Iビッ
トが反転されて出力される。従って、デスティネーショ
ンアドレスがレジスタである場合とそれ以外の場合とで
は、マイクロ命令での処理が異なる。
これらマイクロプログラムのエントリアドレス及びレジ
スタ番号等からRコード214が生成される。
このようにして生成されたRコード214及びFコード
215は同時にFステージ204に送られる。
Rステージ206は、Rコード・Fコード有効信号がイ
ネーブルとなると、Rコード214を入力してそれに含
まれるマイクロプログラムのエントリアドレスにてマイ
クロI?0M105をアクセスする。マイクロROM1
05の出力はデコードされ、レジスタ番号等と共にEコ
ード216となる。このステップコード(2−2)のソ
ースレジスタ番号R8が示すレジスタはSDレジスタ3
14であり、デスティネーションレジスタ番号R6が示
すレジスタは汎用レジスタR1である。また、ソースレ
ジスタサイズhとデスティネーションレジスタサイズ讐
。は共にワードである。
OFステージ207は、Rコード・Fコード存効信号が
イネーブルになると、Fコード215を入力する。Fコ
ード215の一部であるFAレジスタ317中の値はこ
の命令のSP値である。 FAレジスタ317中の値を
アドレスとして、外部バスインターフェース部107を
介し、スタックトップにオペランドのブリフェッチを行
う、このスタックトップに対するアクセスによって、ブ
リフェッチした値は外部バスインターフェース部107
を介して本発明のデータ処理装置内に読み込まれ、D、
Dバス320上よりSDレジスタ314に保持される。
soレジスタ314中の値はSコード217の一部とし
てEステージ205に送られる。
E7.テージ205がEコード216とsコード217
とを入力すると、ソースレジスタ番号R8が示すレジス
タ中の値をデスティネーションレジスタ番号R0が示す
レジスタに転送せよ、という処理が行われる。
この場合、デスティネーションレジスタ番号R0が示す
レジスタは汎用レジスタIIIであり、ソースレジスタ
番号R3が示すレジスタはSDレジスタ314である。
よって、スタックトップからプリフヱッチしたSDレジ
スタ314中の値はS1バス325上からALU313
へ送られ、演算されることな(Doババス27上から汎
用レジスタR1に転送される。
以上の如く、ステップコード(2−2)はパイプライン
機構上を順次処理されていく。
本発明のデータ処理装置においては、パイプライン機構
上で待ち状態のない場合は、第10図(blに示す如<
  pop命令のステップコード(2−1)及びステッ
プコード(2−2)はパイプラインの各ステージ上で順
次処理されていく。この間に、Aステージ203におい
てステップコード(2−1)は消滅し、必要な情報のみ
がステップコード(2−2)に吸収され第10図fa+
及び山)に示す如く、パイプラインjIJ、横上で待ち
状態のない状態で、POP命令のステップコードの1つ
が吸収処理される場合とステップコードが吸収されない
場合とでは、Eステージ205でのデータの格納動作を
除くと、処理に要するステップ数は同じである。
ここで、POP命令の1つ前の命令のステップコード(
4〜1)がEステージ205において処理に3ステツプ
要するため、POP命令のステップコードがFステージ
204において2ステップ待ち状態になった場合につい
て考える。
第1O図(C1はPOP命令のステップコードが吸収さ
れない場合を示し、第10図fd)はPOP命令のステ
ップコードの1つが吸収される場合を示している。
第10図Fdlから理解される如く、ステップコード(
2−1)が吸収されたことによりEステージ205にお
いて処理すべきステップコードの数が減少し、結果とし
て処理全体に要するステップ数が減少する。
このように、不必要なステップコード(2−1)をパイ
プライン機構上で吸収してしまうということは、パイプ
ライン機構上で待ち状態が生じた場合に、処理に必要な
ステップ数が減少する可能性が大いにあり、データ処理
装置の処理速度は改善さ(5)  r I−FORMA
T命令の処理シーケンス」本発明のデータ処理装置では
、レジスタ直接アドレッシングのI−FORMAT命令
に関してもステップコードの吸収を行う。レジスタ直接
アドレッシングのI−FORMAT命令の処理方法は、
アドレッシングモードがレジスタ直接モードの場合のP
OP命令の処理方法に類似している。
アドレッシングモードカくレジスタ直を妾モードである
l−FORMATの命令が、パイプライン機構上で如何
に処理されるかについて以下に詳細に説明する。
1−FORMATの命令の一例として、加算命令である
1−FORMATのへ〇〇命令(ADD:I命令)につ
いて説明する。
第11図はパイプライン機構上におけるADD命令の処
理シーケンスを示すフローチャートである。
また第38図はレジスタ直接モードであるADD:I命
令の命令フォーマントを示す模式図である。
(5,1)rレジスタ直接アドレッシングのADD命令
の処理」 ここでデスティネーションとなる汎用レジスタのレジス
タ番号はR1であるとする。また、即値のサイズはワー
ドであるとする。
先ず、!Fステージ219はADD:I命令をメモリか
らフェッチして命令キュー301に入力し、Dステージ
202に対してADD:I命令の命令コード211を出
力する。
Dステージ202は、IFステージ201によりフェッ
チされた^DD:I命令を第1デコーダ303によりデ
コードする。へ〇〇命令は2オペランド命令であるので
、デスティネーションとソースとの各オペランドの処理
のために2つのステップコードが生成される。デスティ
ネーションとソースとの処理に関するステップコードは
それぞれステップコード(3−1)とステップコード(
3−2)である。
^DD:I命令のデコードにより生成されたステップコ
ードは、Aステージ(203)に対してステップコード
(3−1)、ステップコード(3−2)の順序で送られ
る。
以降のステージにおける処理は、各ステップコードに関
して説明する。
(5,1,1)  r ADD:I命令の第1ステツプ
コード(3−1)の処理 Aステージ203はAコード213とDコード212を
入力する。しかし、Aコード213がAステージ203
に入力されても、アドレッシングモードがレジスタ直接
モードであるから、アドレス計算の動作は行われない。
第8図に示す如く、第2デコーダ304は、Dコード2
12の中間デコード結果を入力すると、マイクロプログ
ラムのエントリアドレス及び種々の制御情報を生成する
また、Dコード212中の右レジスタ番号情報及び左レ
ジスタ番号情報はそれぞれ右レジスタ番号生成部501
及び左レジスタ番号生成部502に入力され、右レジス
タ番号R9及び左レジスタ番号RLが生成される。  
ADD:I命令のステップコード(3−1)では、右レ
ジスタ番号R1のみが意味を有していて汎用レジスタフ
ァイル312中にある汎用レジスタR1を示し、また右
レジスタサイズ6はワードを示す。
第2デコーダ304が出力する制御情報の中にはレジス
タ番号制御情報とサイズ制御情報が含まれている。レジ
スタ番号制御n信号は、右レジスタ番号りがデスティネ
ーションレジスタ番号RDに対応することを示す、サイ
ズ制御信号は、右レジスタサイズへがデスティネーショ
ンレジスタサイズ−0に対応することを示す。
レジスタ番号制御信号RCI 、 RC2,RC3,R
C4の中でRC3のみがイネーブルとなり、Nチャネル
TG603のみがONL、、右レジスタ番号RRがデス
ティネーションレジスタ番号Reとして保持される。ま
た、サイズ制御信号SCI、SC2,SC3,SC4の
中でSC3のみがイネーブルとなり、NチャネルTG7
03のみがONL、右レジスタサイズhがデスティネー
ションレジスタサイズもとして保持される。
この様にステップコード(3−1)中では、デスティネ
ーションレジスタ番号Rゎは汎用レジスタR1を示し、
またデスティネーションレジスタサイズー。
はワードを示す。
第2デコーダ304は、アドレッシングモードがレジス
タ直接アドレッシングであることから、Rコード・Fコ
ード有効信号をイネーブルにしない。
従って、Fステージ204はステップコード(3−1)
を人力しない、つまり、ステップコード(3−1)はA
ステージ203において消滅する。
デスティネーションレジスタ番号R,とデスティネーシ
ョンレジスタサイズもとはステップコード(3−2)に
渡されるために保持され続ける。
もし、レジスタ直接モード以外のアドレッシングモード
であるならば、デスティネーションオペランドに関する
処理を行うステップコード(3−1)は、アドレス計算
とそのアドレスに対するオペランドのブリフェッチ、オ
ペランドデータの退避及びそのアドレスの退避といった
処理が行われる。
しかし、レジスタ直接モードであるためその処理を行う
必要がない、従って、本発明によるデータ処理装置にお
いては、アドレッシングモードがレジスタ直接モードで
あるADD:I命令を処理する場合は、ステップコード
(3−1)をン肖滅させる。
(5,1,2)  r ADD:[命令の第2ステツプ
コード(3−2)の処理」 Aステージ203はAコード213とDコード212と
を入力する。Aコード213がAステージ203に入力
されると、Aステージ203ではAコード213の制御
信号の制御によりアドレス計算が行われる。
即値はDISPバス321上からBASEレジスタ30
7に格納される。INDEXレジスタ308及びDIS
Pレジスタ309はクリアされる。BASE lzジス
9301. INDEXレジスタ308及びDISPレ
ジスタ309の値がアドレス加算器305で加算され、
その結果はAOLITレジスタ306に格納される。更
に、AOUTレジスタ306中の値はAOババス23を
介してP^レジスタ317に送られる。このFAレジス
タ317に格納された即値は第2デコーダ304の出力
の一部と共にFコード215となる。
第8図に示す如く、第2デコーダ304は、Dコード2
12の中間デコード結果を入力すると、マイクロプログ
ラムのエントリアドレス及び種々の制御情報を生成する
また、ステップコード(3−2)のDコード212中の
右レジスタ番号情報及び左レジスタ番号情報はそれぞれ
右レジスタ番号生成部501及び左レジスタ番号生成部
502に入力され、右レジスタ番号り及び左レジスタ番
号RLが生成される。ADD:I命令のステップコード
(3−2)では、右レジスタ番号R7のみが意味を有し
ていてSAレジスタ318を示し、また右レジスタサイ
ズ6はワードを示す。
第2デコーダ304が出力する制御情報の中にはレジス
タ番号制御情報とサイズ制御情報とが含まれる。レジス
タ番号制御信号は、右レジスタ番号りがソースレジスタ
番号R3に対応することを示す。
サイズ制御信号は、右レジスタサイズへがソースレジス
タサイズに対応することを示す。
レジスタ番号制御信号RCI、 RC2,RC3,1l
c4の中でPCIのみがイネーブルとなり、Nチャネル
TG601のみがONL、右レジスタ番号R,がソース
レジスタ番号として保持され、ソースレジスタ番号R3
を出力する。デスティネーションレジスタ番号R,は、
ステップコード(3−1)の処理時に保持した番号のま
まである。また、サイズ制御信号SCI 、 SC2,
SC3゜SC4の中でSCIのみがイネーブルとなり、
NチャネルTG701のみがONL、右レジスタサイズ
hがソースレジスタサイズとして保持され、ソースレジ
スタサイズ讐、を出力する。デスティネーションレジス
タサイズ6は、ステップコード(3−1)で処理時に保
持したサイズのままである。
この様にステップコード(3−2)中では、デスティネ
ーションレジスタ番号1?、は汎用レジスタR1を示し
、ソースレジスタ番号R3はSAレジスタ(318)を
示し、またデスティネーションレジスタサイズ6はワー
ドを示し、ソースレジスタサイズ6はワードを示す。従
って、ステップコード(2−1)の情報の一部をステッ
プコード(2−2)に吸収したことになる。
また、レジスタ直接モードの時は、第2デコーダ304
ではマイクロプログラムのエントリアドレスの下位1ビ
ツトが反転されて出力される。従って、デスティネーシ
ョンアドレスがレジスタである場合とそれ以外の場合と
では、マイクロ命令での処理が異なる。
これらマイクロプログラムのエントリアドレス及びレジ
スタ番号等からRコード214が生成される。
このようにして生成されたRコード214及びFコード
215は同時にFステージ204に送られる。
Rステージ206は、Rコード・Fコード有効信号がイ
ネーブルになると、Rコード214を入力してそれに含
まれるマイクロプログラムのエントリアドレスにてマイ
クロROM105をアクセスする。マイクロROM10
5の出力はデコードされ、レジスタ番号等と共にEコー
ド216となる。このステップコード(3−2)のソー
スレジスタ番号R3の示すレジスタはSAレジスタ31
8であり、デスティネーションレジスタ番号RDが示す
レジスタは汎用レジスタR1である。またソースレジス
タサイズ−8とデスティネーションレジスタサイズ6は
共にワードである。
OFステージ207は、Rコード・Fコード有効信号が
イネーブルになると、Fコード215を入力する。Fコ
ード215の一部であるFAレジスタ317の値は即値
である。 FAレジスタ317の値はSAレジスタ31
8に転送される。S^レジスタ318の値は、Sコード
217の一部としてEステージ205に送られる。
Eステージ205がEコード216とSコード217と
を入力すると、ソースレジスタ番号P、の示すレジスタ
中の値とデスティネーションレジスタ番号P0が示すレ
ジスタ中の値はそれぞれS1バス325及びS2バス3
26上からALυ313に入力されて加算が行われ、そ
の結果はDOババス27上からデスティネーションレジ
スタ番号R,が示すレジスタへ転送される、という処理
が行われる。この場合、ソースレジスタ番号R5が示す
レジスタはSAレジスタ318であり、デスティネーシ
ョンレジスタ番号RIlが示すレジスタは汎用レジスタ
ptである。よって、即値と汎用レジスタIll中の値
はそれぞれS1バス325及びS2バス326上を介し
てALU313に入力されて加算される。加算結果はD
Oババス06を介して汎用レジスタR1に転送される。
以上の様に、ステップコード(3−2)はパイプライン
機構上を順次処理されていく。
アドレシンシングモードがレジスタ直接モードであるA
[1口:!命令は、第10図中)に示したレジスタ直接
モードのPOP命令のパイプライン上における処理と同
様に処理が行われる。従って、(4,2,2)節で述べ
たレジスタ直接モードのPoP命令の如く、パイプライ
ン機構上で待ち状態が生じた場合はステップコードを吸
収することによりI−FORMAT命令の処理全体に要
するステップ数は減少する。
また、上記実施例ではステップコードの吸収がAステー
ジ203で行われる場合を示したが、ステップコードの
吸収がDステージ202で行われるように構成すること
も可能である。
なお、アドレシッシングモードとして多段間接モードが
指定された場合には、その段数分のステップコードが生
成される。多段間接モードに対するステップコードはA
ステージ203で吸収され、以降のステージでの処理は
上述の場合と同様となる。
[発明の効果] 以上に詳述した如く、本発明のデータ処理装置によれば
、レジスタ直接アドレッシングモードであるPOP命令
あるいは即値オペランド命令の処理に際して実行ステー
ジで行う必要のない処理の処理単位を消滅させる様に構
成したので、パイプライン機構上で待ち状態が生じた場
合はレジスタ直接モードであるPOP命令あるいは即値
オペランド命令の実行時に要する処理ステップ数が減少
し、これらの命令の処理に対する実行ステージの占有時
間が削減され、データ処理装置の処理速度の向上が可能
になる。
【図面の簡単な説明】
第1図は本発明のデータ処理装置の構成を示すブロック
図、第2図は本発明のデータ処理装置のパイプライン機
能の構成を示すブロック図、第3図は本発明のデータ処
理装置の更に詳しい構成を示すブロック図、第4図は本
発明のデータ処理装置のデコード(D)ステージの構成
を示すブロック図、第5図は本発明のデータ処理装置の
オペランドアドレス計算(A)ステージで命令デコード
部に含まれる部分の構成を示すブロック図、第6図は第
5図におけるレジスタ番号生成部の構成を示す回路図、
第7図は第5図におけるサイズ生成部の構成を示す回路
図、第8図は第5図における第2デコーダの出力である
Rコード・Fコード有効信号。 おけるPOP命令の処理シーケンスを示すフローチャー
ト、第10図+a)、 (bl、 (C1,+d+は、
pop命令のDステージ以降のステージにおけるステッ
プコードの処理の流れを示す模式図、第11図はパイプ
ライン機構上におけるレジスタ直接モードである[−F
ORMATの処理シーケンスを示すフローチャート、第
12図は本発明のデータ処理装置の命令フォーマットの
代表的な形式を示す模式図、第13図はメモリーレジス
タ間演算命令の短縮形フォーマットを示す模式図、第1
4図はレジスターレジスタ間演算命令の短縮形フォーマ
ットを示す模式図、第15図はリテラル−メモリ間演算
命令の短縮形フォーマントを示す模式図、第16図は即
値−メモリ間演算命令の短縮形フォーマントを示す模式
図、第17図は1オペランド命令の一般形フオーマット
を示す模式図、第18図は2オペランド命令の第1オペ
ランドがメモリ読み出しを必要とする命令の一般形フオ
ーマットを示す模式図、第19図は2オペランド命令の
第1オペランドが8ビツト即値の命令である一般形フオ
ーマントを示す模式図、第20図は2オペランド命令の
第1オペランドがアドレス計算のみの命令である一般形
フオーマントを示す模式図、第21図はショートブラン
チの命令フォーマントを示す模式図、第22図はアドレ
シフシングモード指定部がレジスタ直接モードであるフ
ォーマットを示す模式図、第23図はアドレシソシング
モード指定部がレジスタ間接モードであるフォーマント
を示す模式図、第24図はアドレシソシングモード指定
部がレジスタ相対間接モードであるフォーマットを示す
模式図、第25図はアドレシソシングモード指定部が即
値モードであるフォーマットを示す模式図、第26図は
アドレッシングモード指定部が絶対モードであるフォー
マントを示す模式図、第27図はアドレシフシングモー
ド指定部がPC相対間接モードであるフォーマットを示
す模式図、第28図はアドレシンシングモード指定部が
スタックホップモードであるフォーマントを示す模式図
、第29図はアドレッシングモード指定部がスタックブ
ツシュモードであるフォーマットを示す模式図、第30
図はレジスタペース多段間接モードのフォーマットを示
す模式図、第31図はpcヘベー多段間接モードのフォ
ーマットを示す模式図、第32図は絶対ベース多段間接
モードのフォーマットを示す模式図、第33図は1段の
多段ra7接モードのフォー7ノト中のディスプレース
メント値の加算、インデックス値のスケーリングと加算
、メモリの間接参照の指定フィールドを示す模式図、第
34図は多段間接モードがmVtか否かのバリエーショ
ンを示す模式図、第35図はディスプレースメント値の
サイズのバリエーションを示す模式図、第36[1は本
発明のデータ処理装置の基本的命令フォーマットを示す
模式図、第37図fat 、 (blはpop命令の命
令フォーマットを示す模式図、第38図はレジスタ直接
モードの■−フォーマントのAflD命令の命令フォ−
マットを示す模式図、第39図は従来のデータ処理装置
におけるパイプライン機構の構成を示すブロック図であ
る。 201・・・命令フェッチステージ 202・・・メモ
リデコードステージ 203・・・オペランドアドレス
計算ステージ 204・・・オペランドフェッチステー
ジ205・・・実行ステージ 211・・・命令コード
 212・・・Dコード 213・・・Aコード 30
3・・・第1デコーダ304・・・第2デコーダ なお、各図中同一符号は同−又は相当部分を示す。

Claims (1)

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

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP63259723A JPH0769806B2 (ja) 1988-10-14 1988-10-14 データ処理装置
US07/973,926 US5361338A (en) 1988-10-14 1992-11-09 Pipelined system for decomposing instruction into two decoding parts and either concurrently generating two operands addresses of merging decomposing decoding codes based upon the second operand

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP63259723A JPH0769806B2 (ja) 1988-10-14 1988-10-14 データ処理装置

Publications (2)

Publication Number Publication Date
JPH02105937A true JPH02105937A (ja) 1990-04-18
JPH0769806B2 JPH0769806B2 (ja) 1995-07-31

Family

ID=17338051

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63259723A Expired - Fee Related JPH0769806B2 (ja) 1988-10-14 1988-10-14 データ処理装置

Country Status (2)

Country Link
US (1) US5361338A (ja)
JP (1) JPH0769806B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1992008190A1 (fr) * 1990-10-29 1992-05-14 Fujitsu Limited Dispositif pour traiter des informations
JP2003508863A (ja) * 1999-09-07 2003-03-04 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 可変命令長処理

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5465322A (en) * 1993-01-04 1995-11-07 Xerox Corporation Apparatus and method for parsing a stream of data including a bitmap and creating a table of break entries corresponding with the bitmap
US5473271A (en) * 1993-02-09 1995-12-05 Dallas Semiconductor Corporation Microprocessor output driver
US5854909A (en) * 1995-09-29 1998-12-29 Intel Corporation Test and control access architecture for an integrated circuit
US6654646B2 (en) * 2000-12-13 2003-11-25 Lucent Technologies Inc. Enhanced memory addressing control

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5717059A (en) * 1980-07-04 1982-01-28 Hitachi Ltd Processor for pipeline control data

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3614741A (en) * 1970-03-23 1971-10-19 Digital Equipment Corp Data processing system with instruction addresses identifying one of a plurality of registers including the program counter
US3958221A (en) * 1973-06-07 1976-05-18 Bunker Ramo Corporation Method and apparatus for locating effective operand of an instruction
JPS6055849B2 (ja) * 1975-12-04 1985-12-06 株式会社東芝 命令制御方式
US4241397A (en) * 1977-10-25 1980-12-23 Digital Equipment Corporation Central processor unit for executing instructions with a special operand specifier of indeterminate length
JPS5621240A (en) * 1979-07-27 1981-02-27 Hitachi Ltd Information processor
CA1174370A (en) * 1980-05-19 1984-09-11 Hidekazu Matsumoto Data processing unit with pipelined operands
US4402042A (en) * 1980-11-24 1983-08-30 Texas Instruments Incorporated Microprocessor system with instruction pre-fetch
JPS58129550A (ja) * 1982-01-27 1983-08-02 Toshiba Corp 演算制御装置
US4598365A (en) * 1983-04-01 1986-07-01 Honeywell Information Systems Inc. Pipelined decimal character execution unit
JPS60120439A (ja) * 1983-12-05 1985-06-27 Nec Corp 演算処理装置
JPH0668739B2 (ja) * 1985-01-28 1994-08-31 株式会社日立製作所 データ処理装置
JPH0789319B2 (ja) * 1985-04-22 1995-09-27 株式会社日立製作所 デ−タ処理装置における先行制御装置
JP2554050B2 (ja) * 1986-02-26 1996-11-13 株式会社日立製作所 デ−タ処理方法
JPS6389932A (ja) * 1986-10-03 1988-04-20 Mitsubishi Electric Corp デ−タ処理装置
JPH07101385B2 (ja) * 1986-12-05 1995-11-01 株式会社東芝 情報処理装置
JPS63253433A (ja) * 1987-04-10 1988-10-20 Hitachi Ltd 演算処理装置
CA1327080C (en) * 1987-05-26 1994-02-15 Yoshiko Yamaguchi Reduced instruction set computer (risc) type microprocessor
JPS63317828A (ja) * 1987-06-19 1988-12-26 Fujitsu Ltd マイクロコ−ド読み出し制御方式
JPH0766324B2 (ja) * 1988-03-18 1995-07-19 三菱電機株式会社 データ処理装置
US5136696A (en) * 1988-06-27 1992-08-04 Prime Computer, Inc. High-performance pipelined central processor for predicting the occurrence of executing single-cycle instructions and multicycle instructions
JPH07120278B2 (ja) * 1988-07-04 1995-12-20 三菱電機株式会社 データ処理装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5717059A (en) * 1980-07-04 1982-01-28 Hitachi Ltd Processor for pipeline control data

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1992008190A1 (fr) * 1990-10-29 1992-05-14 Fujitsu Limited Dispositif pour traiter des informations
JP2003508863A (ja) * 1999-09-07 2003-03-04 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 可変命令長処理

Also Published As

Publication number Publication date
US5361338A (en) 1994-11-01
JPH0769806B2 (ja) 1995-07-31

Similar Documents

Publication Publication Date Title
US5717946A (en) Data processor
JPH0766324B2 (ja) データ処理装置
JP2581236B2 (ja) データ処理装置
JPH02173823A (ja) データ処理装置
JP2507638B2 (ja) デ―タ処理装置
US6058471A (en) Data processing system capable of executing groups of instructions in parallel
JPH1049370A (ja) 遅延命令を有するマイクロプロセッサ
JPH0215331A (ja) データ処理装置
JPH01214932A (ja) データ処理装置
JPH07120284B2 (ja) データ処理装置
JPH02105937A (ja) データ処理装置
US5212779A (en) System for guarantee reexecution after interruption by conditionally used store buffer if microinstruction being executed is a memory write and last microinstruction
US5269008A (en) Method and apparatus for pre-processing the source of a pop instruction in a pipeline computer
JPH04109338A (ja) プライオリティエンコーダ及びそれを備えたデータ処理装置
JP2504235B2 (ja) デ―タ処理装置
JP2532560B2 (ja) 高機能な例外処理を行うデ―タ処理装置
JP2522048B2 (ja) マイクロプロセッサ及びそれを使用したデ―タ処理装置
JPH0298734A (ja) データ処理装置
JPH0225932A (ja) データ処理装置
JP2696578B2 (ja) データ処理装置
JPH0290325A (ja) データ処理装置
JPH0225934A (ja) データ処理装置
JPH0218621A (ja) データ処理装置
JPH01214933A (ja) データ処理装置
JPH01281534A (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