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

データ処理装置

Info

Publication number
JPH0215331A
JPH0215331A JP63166307A JP16630788A JPH0215331A JP H0215331 A JPH0215331 A JP H0215331A JP 63166307 A JP63166307 A JP 63166307A JP 16630788 A JP16630788 A JP 16630788A JP H0215331 A JPH0215331 A JP H0215331A
Authority
JP
Japan
Prior art keywords
instruction
stage
operand
code
address
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
JP63166307A
Other languages
English (en)
Other versions
JPH07120278B2 (ja
Inventor
Fujio Itomitsu
富士雄 糸満
Toyohiko Yoshida
豊彦 吉田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP63166307A priority Critical patent/JPH07120278B2/ja
Priority to US07/371,961 priority patent/US4945511A/en
Publication of JPH0215331A publication Critical patent/JPH0215331A/ja
Publication of JPH07120278B2 publication Critical patent/JPH07120278B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3889Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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; CALCULATING OR 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; CALCULATING OR 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/3818Decoding for concurrent execution
    • G06F9/3822Parallel decoding, e.g. parallel decode units

Landscapes

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

Abstract

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

Description

【発明の詳細な説明】 [産業上の利用分野] 本発明は、高度なパイプライン処理機構により高い処理
能力を実現したデータ処理装置に関する。
[従来の技術] 従来のパイプライン機構のデータ処理装置において、例
えば命令フォーマットが異なる2種類の命令それぞれに
より、レジスタからレジスタへの転送を行う命令をどの
ように処理するかについて説明する。
従来のデータ処理装置のパイプライン機構の例を第29
図に示す。
図中、71は命令フェッチ(IF)ステージ、72は命
令デコード(D)ステージ、73はオペランドアドレス
計算(A)ステージ、74はオペランドフェッチ(F)
ステージ、75は命令実行(E)ステージである。
1Fステージ71はメモリから命令コードをフェッチし
てDステージ72に出力する。Dステージ72はIFス
テージ71から入力される命令コードをデコードして、
そのデコード結果をAステージ73へ出力する。Aステ
ージ73は命令コード中で指定されているオペランドの
実行アドレスを計算し、計算されたオペランドアドレス
をFステージ74へ出力する。Fステージ74はAステ
ージ73から入力されたオペランドアドレスに従ってメ
モリからオペランドをフェッチすると共に、デコード結
果に基づいてマイクロROM (図示せず)からマイク
ロ命令をアクセスし、このマイクロ命令をデコードし、
そのデコード結果をEステージ75へ出力する。またF
ステージ74はフェッチしたオペランドもEステージ7
5へ出力する。Eステージ75はFステージ74から入
力されたオペランドに対して命令コード中で指定されて
いる演算を実行する。更に必要な場合にはその演算結果
をメモリ (図示せず)にストアする。
上述のような従来のデータ処理装置によりたとえば、第
30図及び第31図にそれぞれ命令フォーマットを示す
2種類の命令、即ちAフォーマント命令及びBフォーマ
ット命令を処理する場合について説明する。
Aフォーマット命令はメモリーレジスタ間の命令であり
、この命令の命令コードはデスティネーションとなるメ
モリ指定フィールドとソースとなるレジスタ指定フィー
ルドとがこの順に第30図に示す如く配列されている。
一方、Bフォーマント命令もメモリーレジスタ間命令で
あるが、前記Aフォーマット命令とは異なって、ソース
となるメモリを旨定フィールドとデスティネーションと
なるレジスタ指定フィールドとがこの順に第31図に示
す如く配列されている。
上述の2種類の命令、即ちAフォーマット命令とBフォ
ーマント命令、例えばレジスタ直接でレジスタからレジ
スタへの転送を行う命令、“MOV : ARI  R
2”と”MOV:B  RI  R2”とニラいて以下
説明する。但し、R1,R2はそれぞれレジスタ1.レ
ジスタ2を指定する。
この場合は、レジスタ・メモリ間命令で特にメモリがレ
ジスタとなる場合である。′″l’lOV : A”は
Aフォーマットの転送命令を、“MOV : B”はB
フォーマットの転送命令をそれぞれ示し、R1はレジス
タ1を、R2はレジスタ2をそれぞれ指定し、このアセ
ンブリコードは“MOVE?ソース デスティネーショ
ン”の意味である(ここで、?はAかBかを指定する)
、“MOV:A  RI  R2”命令は命令コードで
は°0001 0010 00  傘6” というコー
ト、”MOV:B  RI  R2’命令は命令コード
では“0010 000101  傘傘”というコード
となる。ここで”0001”はレジスタ1を、“001
O”はレジスタ2を、また第3番目の2ビツトのフィー
ルドはAフォーマットかBフォーマントかを示し、最後
のフィールド−傘はMOV演算を指定する。
上述の2種類の命令、1間VjA  RI  R2”命
令とMOVERRI  R2’命令とは別々にデコード
され、それぞれのデコード結果に従ってFステージ74
ではそれぞれ異なるマイクロプログラムをアクセス従来
のパイプライン機構を有するデータ処理装置では、命令
フォーマットが異なる2種類の命令、例えば”MOV:
A  RI  R2” という命令と“MOVER1?
IR2”という命令の処理を行うに際して、これらの命
令をデコーダで個別にデコードして異なるデコード結果
を得ていた。このため、実質的には同じ機能を実現する
ために異なるマイクロプログラムを必要とすることにな
る。
本発明はこのようなデータ処理装置における従来のパイ
プライン機構の無駄を省き、高効率のデータ処理装置を
提供することを目的とする。
本発明のデータ処理装置では上述の欠点を解決するため
に、命令デコーダを第1と第2の2段構成にし、例えば
“MOV:A  RI  R2”命令と”MOV:BR
I  R2”命令とを処理する場合には、第2のデコー
ダでAフォーマット命令(又はBフォーマント命令)は
そのままでデコードして、Bフォーマット命令(又はA
フォーマット命令)はそのレジスタ番号指定フィールド
を入れ換える構成を採っている。
[作用] 本発明のデータ処理装置では、例えば“MOV:ARl
  1?2”という命令は第1のデコード、第2のデコ
ート、マイクロROMアクセスという手順で処理される
のに対し、’MOシ:B  RI  R2“という命令
は第1のデコード、第2のデコードそしてそれと同時に
レジスタ番号指定フィールドの入れ換え、マイクロRO
Mアクセスという手順で処理される。これら2mIJ?
の命令に対して、第2のデコ・−ダで、一方のフォーマ
ットの命令に対し、レジスタ番号指定フィールドの入れ
換えを行うことによって、2種類の命令が同一の命令と
なり、1つのマイクロプログラムにて処理される。
〔発明の実施例〕
以下、本発明をその実施例を示す図面に基づいて詳述す
る。
(1)「本発明のデータ処理装置の命令フォーマット」
本発明のデータ処理装置の命令は16ビツト単位で可変
長となっており、奇数バイト長の命令は使用しない。
本発明のデータ処理装置では高頻度命令を短いフォーマ
ットとする目的で特に工夫された命令フォーマット体系
を有する。例えば、2オペランド命令に関しては基本的
に“4バイト+拡張部”の構成を有して総てのアドレッ
シングモードが利用可能な一般形フオーマットと、使用
頻度の高い命令及びアドレッシングモードのみが使用可
能な短縮形フォーマットの2つのフォーマットとがある
本発明のデータ処理装置の命令フォーマット中に現われ
る記号の意味は次の通りである。
:オペレーションコードが入る部分 #:リテラルまたは即値が入る部分 Ea:8ミニ8ビツト形のアドレ・ノシングモードでオ
ペランドを指定する部分 5hj6ビントの短縮形のアドレッシングモードでオペ
ランドを指定する部分 Rn:レジスタ上のオペランドをレジスタ番号で指定す
る部分 フォーマットは、第4図に示す如く右側がLSB側で且
つ高いアドレスになっている。アドレスNとアドレスN
+1の2バイトを見ないと命令フォーマットが判別でき
ないようになっているが、これは前述の如く、命令が必
ず16ビツト(2バイト)単位でフェッチ及びデコード
されることを前提としているためである。
本発明のデータ処理装置では、いずれのフォーマットの
場合も、各オペランドのEaまたはshの拡張部は必ず
そのHaまたはshの基本部を含むハーフワードの直後
に位置される。これは、命令により暗黙に指定される即
値データあるいは命令の拡張部に優先する。従って、4
バイト以上の命令では、Eaの拡張部によって命令のオ
ペレーションコードが分断される場合がある。
また後述する如(、多段間接モードによってHaの拡張
部に更に拡張部が付く場合にも、次の命令オペレーショ
ンコードよりもそちらの方が優先される0例えば、第1
ハーフワードにEalを含み、第2ハーフワードにEa
2を含み、第3ハーフワードまである6バイト命令の場
合を考える。Ealに・多段間接モードを使用したため
、普通の拡張部の他に多段間接モードの拡張部も付くも
のとすると、実際の命令ビットパターンは、命令の第1
ハーフワード(Ealの基本部を含む)、 Ealの拡
張部、Ealの多段間接モード拡張部、命令の第2ハー
フワード(Ea2の基本部を含む)、 l!alの拡張
部、命令の第3ハーフワードの順となる。
(1,1)  r短縮形2オペランド命令」第5図から
第8図は2オペランド命令の短縮形フォーマットを示す
模式図である。
第5図はメモリーレジスタ間演算命令のフォーマットを
示す模式図である。このフォーマットには、ソースオペ
ランド側がメモリとなるL−formatと、デスティ
ネーションオペランド側がメモリとなる5−for鵠a
tとがある。
1−formatでは、shはソースオペランドのt旨
定フィールドを、Rnはデスティネーションオペランド
のレジスタの指定フィールドを、RRはshのオペラン
ドサイズの指定をそれぞれ表す。レジスタ上に位置され
たデスティネーションオペランドのサイズは32ビツト
に固定されている。レジスタ側とメモリ側とのサイズが
異なり、ソース側のサイズが小さい場合に符号拡張が行
なわれる。
S−formatでは、shはデスティネーションオペ
ランドの指定フィールドを、Rnはソースオペランドの
レジスタ指定フィールドを、RRはshのオペランドサ
イズの指定をそれぞれ表す。レジスタ上に位置されたソ
ースオペランドのサイズは32ビ・ノドに固定されてい
る。レジスタ側とメモリ側とのサイズが異なり、ソース
側のサイズが大きい場合にオーバフローした部分の切捨
てとオーバフローチエツクが行なわれる。
第6図はレジスターレジスタ間演算命令のフォーマット
(R−forllla t)を示す模式図である。Rn
はデスティネーションレジスタの指定フィールド、Rm
はソースレジスタの指定フィールドである。オペランド
サイズは32ビツトのみである。
第7図はリテラル−メモリ間演算命令のフォーマット(
Q−format)を示す模式図である。問はディステ
ィネーションオペランドサイズのt旨定フィールド、■
#はリテラルによるソースオペランドの指定フィールド
、shはデスティネーションオペランドの指定フィール
ドである。
第8図は即値−メモリ間演算命令のフォーマ・7ト(1
−for+*at)を示す模式図である。■はオペラン
ドサイズの指定フィールド(ソース、ディスティネーシ
ョンで共通)、Shはデスティネーションオペランドの
指定フィールドである。I−formatの即値のサイ
ズはデスティネーション側のオペランドのサイズと共通
に8.1.6.32ピントとなり、ゼロ拡張及び符号拡
張は行なわれない。
(1,2)  r−船形1オペランド命令」第9図はl
オペランド命令の一船形フオーマット(Gl−form
at)を示す模式図である。■はオペランドサイズの指
定フィールドである。一部のGiformat命令では
、Eaの拡張部以外にも拡張部がある。また、聞を使用
しない命令もある。
(1,3)  r−船形2オペランド命令」第10図か
ら第12図は2オペランド命令の一船形フオーマントを
示す模式図である。このフォーマットに含まれるのは、
8ビツトで指定する一船形アドレッシングモードのオペ
ランドが最大2つ存在する命令である。オペランドの総
数自体は3つ以上になる場合がある。
第10図は第1オペランドがメモリ読み出しを必要とす
る命令のフォーマント(G−format)を示す模式
図である。EaMはデスティネーションオペランドのt
旨定フィールド、聞はデスティネーションオペランドサ
イズの指定フィールド、EaRはソースオペランド指定
フィールド、RRはソースオペランドサイズの指定フィ
ールドである。
第11図は第1オペランドが8ビツト即値の命令のフォ
ーマット(E−4ormat)を示す模式図である。
EaMはデスティネーションオペランドの指定フィール
ド、開はデスティネーションオペランドサイズの指定フ
ィールド、■・・・はソースオペランド値である。
E−formatとI−formatとは機能的には類
似しているが、考え方の点では大きく違っている。具体
的には、E−for+*atはあくまでも2オペランド
−船形(G−format)の派生形であり、ソースオ
ペランドのサイズが8ビツト固定、ディスティネーショ
ンオペランドのサイズが8 /16/32ビットからの
選択となっている。つまり、E−formatは異種サ
イズ間の演算を前提とし、デスティネーションオペラン
ドのサイズに合わせて8ビツトのソースオペランドがゼ
ロ拡張または符号拡張される。一方、I −forma
tは、特に転送命令及び比較命令で頻度の多い即値のパ
ターンを短縮形にしたものであり、ソースオペランドと
ディスティネーションオペランドのサイズが等しい。
第12図は、第1オペランドがアドレス計算のみの命令
のフォーマフ) (GA−for+5at)を示す模式
図である。EaHはデスティネーションオペランドの指
定フィールド、四はデスティネーションオペランドサイ
ズの指定フィールド、EaAはソースオペランドの指定
フィールドである。ソースオペランドとしては実行アド
レスの計算結果自体が使用される。
第13図は、ショートブランチ命令のフォーマントを示
す模式図である。ccccはブランチ条件を旨定フィー
ルド、disp:8はジャンプ先との変位指定フィール
ドであり、本発明のデータ処理装置では8ビツトで変位
を指定する場合には、ビットパターンでのt旨定価を2
倍して変位値とする。
(1,4)  rアドレッシングモード」本発明のデー
タ処理装置のアドレッシングモード指定方法には、レジ
スタを含めて6ビツトで1旨定する短縮形と、8ビツト
で指定する一般形とがある。
未定義のアドレッシングモードが指定された場合、ある
いは意味的に考えて明らかに不適当なアドレッシングモ
ードの組み合わせが指定された場合には、未定義命令が
実行された場合同様に予約命令例外が発生され、例外処
理が起動される。
これに該当するのは、デスティネーションが即値モード
の場合、アドレス計算を伴うべきアドレッシングモード
を旨定フィールドで即値モードを使用した場合等である
フォーマットの図中で使われる記号の意味は次の通りで
ある。
Pn:レジスタ指定 men EA:EAで示されるアドレスのメモリ内容(
Sh)  76ビツトの短縮形アドレッシングモードで
の指定方法 (Ea)  :8ヒツトの一般形アドレッシングモード
での指定方法 フォーマントの図において破線にて囲繞された部分は拡
張部を示す。
(1,4,1)  r基本アドレッシングモード」本発
明のデータ処理装置は様々なアドレッシングモードをサ
ポートする。それらの内、本発明のデータ処理装置でサ
ポートする基本アドレッシングモードには、レジスタ直
接モード、レジスタ間接モード、レジスタ相対間接モー
ド、即値モード、絶対モード、PC(プログラムカウン
タ)相対間接モード、スタックボフブモード及びスタッ
クブツシュモードがある。
レジスタ直接モードはレジスタの内容をそのままオペラ
ンドとする。フォーマントの模式図を第14図に示す。
Rnは汎用レジスタの番号を示す。
レジスタ間接モードはレジスタの内容をアドレスとする
メモリの内容をオペランドとする。フォーマットの模式
図を第15図に示す。Rnは汎用レジスタの番号を示す
レジスタ相対間接モードはディスプレースメント値が1
6ビツトであるか32ビツトであるかにより2種類があ
る。それぞれ、レジスタの内容に16ビツトまたは32
ビツトのディスプレースメント値を加えた値をアドレス
とするメモリの内容をオペランドとする。フォーマント
の模式図を第16図に示す、Rnは汎用レジスタの番号
を示す。disp : 16とdisp : 32とは
それぞれ各々16ビツトのディスプレースメント値また
は32ビツトのディスプレースメント値を示す。ディス
プレースメント値は符号付きとして扱う。
即値モードは命令コード中で指定されるビットパターン
をそのまま2進数と見なしてオペランドとする。フォー
マントの模式図を第17図に示す。
1m5−dataは即値を示す。1nn−dataのサ
イズは、オペランドサイズとして命令中で指定される。
絶対モードはアドレス値が16ビツトで示されるか32
ビツトで示されるかにより2種類ある。それぞれ、命令
コード中で指定される16ビツトまたは32ビツトのビ
ットパターンをアドレスとするメモリの内容をオペラン
ドとする。フォーマットの模式図を第18図に示す。a
bs :16とabs:32とはそれぞれ16ビントま
たは32ビツトのアドレス値を示す。
abs s 16でアドレスが示される時は指定された
アドレス値を32ビツトに符号拡張する。
PC相対間接モードはディスプレースメント値が16ビ
ツトか32ビツトかにより2種類ある。それぞれ、プロ
グラムカウンタの内容に16ビツトまたは32ビツトの
ディスプレースメント値を加えた値をアドレスとするメ
モリの内容をオペランドとする。
フォーマットの模式図を第19図に示す。disp :
 16とdisp : 32とはそれぞれ16ビツトの
ディスプレースメント値または32ビツトのディスプレ
ースメント値を示す。ディスプレースメント値は符号付
きとして扱う。PC相対間接モードにおいて、参照され
るプログラムカウンタの値はそのオペランドを含む命令
の先頭アドレスである。多段間接アドレシングモードに
おいてプログラムカウンタの値が参照される場合にも、
同じように命令の先頭のアドレスをPC相対の基準値と
して使用する。
スタックポツプモードはスタックポインタ(SP)の内
容をアドレスとするメモリの内容をオペランドとする。
オペランドアクセス後、スタックポインタをオペランド
サイズだけインクリメントする。
例えば、32ビツトデータを扱う場合には、オペランド
アクセス後にSPが+4だけ更新(インクリメント)さ
れる。B、Hのサイズのオペランドに対するスタックポ
ツプモードの指定も可能であり、それぞれSPが+1.
+2だけ更新(インクリメント)される。フォーマット
の模式図を第20図に示す。オペランドに対しスタック
ポツプモードが意味を持たないものに関しては予約命令
例外が発生される。
具体的に予約命令例外となるのは、writeオペラン
ド、read−modify−writeオペランドに
対するスタックポツプモードを旨定である。
スタックブツシュモードはスタックポインタの内容をオ
ペランドサイズだけデクリメントした内容をアドレスと
するメモリの内容をオペランドとする。スタックブツシ
ュモードでは、オペランドアクセス前にスタックポイン
タがデクリメントされる。例えば、32ビツトデータを
扱う場合には、オペランドアクセス前にSPが−4だけ
更新(デクリメント)される。B、Hのサイズのオペラ
ンドに対するスタックブツシュモードの指定も可能であ
り、それぞれSPが−1,−2だけ更新(デクリメント
)される、フォーマットの模式図を第21図に示す。オ
ペランドに対してスタックブツシュモードが意味を持た
ないものに関しては、予約命令例外が発生される。具体
的に予約命令例外となるのは、readオペランド、r
ead−modify−wri teオペランドに対す
スタックブツシュモード指定である。
(1,4,2)  r多段間接アドレッシングモード」
如何に複雑なアドレッシングも、基本的には加算と間接
参照の組み合わせに分解される。従って、加算と間接参
照のオペレーションをアドレッシングのプリミティブと
して与えておき、それを任意に組み合わせることができ
れば、如何なる複雑なアドレッシングモードをも実現可
能となる。本発明のデータ処理装置の多段間接アドレッ
シングモードはこの様な考え方に基づいたアドレッシン
グモードである。複雑なアドレッシングモードはモジュ
ール間のデータ参照あるいはAI (人工知能)言語の
処理系に特に有用である。
多段間接アドレッシングモードを指定する場合、基本ア
ドレッシングモード指定フィールドでは、レジスタベー
ス多段間接モード、PCCペース多段間接モード絶対ベ
ース多段間接モードの3種類の指定方法の内のいずれか
1つを指定する。
レジスタベース多段間接モードはレジスタの値を拡張す
る多段間接アドレッシングのベース値とするアドレッシ
ングモードである。フォーマットの模式図を第22図に
示す、 Rnは汎用レジスタの番号を示す。
PCベース多段間接モードはプログラムカウンタの値を
拡張する多段間接アドレッシングのベース値とするアド
レッシングモードである。フォーマットの模式図を第2
3図に示す。
絶対ベース多段間接モードはゼロを拡張する多段間接ア
ドレッシングのベース値とするアドレッシングモードで
ある。フォーマットの模式図を第24図に示す。
拡張する多段間接モード指定フィールドは16ビツトを
単位としており、これを任意回反復する。
1段の多段間接モードにより、ディスプレースメントの
加算、インデクスレジスタのスケーリング(XI、 X
2. X4. X8)と加算、メモリの間接参照を行な
う。多段間接モードのフォーマットの模式図を第25図
に示す。各フィールドは以下に示す意味を持つ。
E・0 :多段間接モード継続 E=1ニアドレス計算終了 tIlp==> address  of opera
nd■−〇−メモリ間接参照なし tn+p + disp + Rx * 5cale 
==> tmpI=1:メモリ間接参照あり n+em tap + disp + Rx * 5c
ale ==>tmpM=0  :  <Rx>をイン
デクスとして使用ト1 :特殊なインデクス <Rx>=0   インデクス値を加算しない  (R
x=O) <RX>=1    プログラムカウンタをインデクス
値として使用 (RX−PC) <Rx>−2〜reserved D=0:多段間接モード中の4ビツトのフィールドd4
の値を4倍してディスプレースメント値とし、これを加
算する d4は符号付きとして扱い、オペラン ドのサイズとは関係なく必ず4倍して 使用する D=1:多段間接モードの拡張部で指定されたdisp
x (16/32ビツト)をディスプレースメント値と
し、これを加算する 拡張部のサイズはd4フィールドで指 定する d4=o001   dispxは16ビツトd4JO
10dispx は32ビットxX:インデクスのスケ
ール(sca Ie= 1/2/4/8)プログラムカ
ウンタに対して×2+ x4. X 8のスケーリング
を行なった場合には、その段の処理終了後の中間値(t
mp)として不定値が入る。この多段間接モードによっ
て得られる実効アドレスは予測できない値となるが、例
外は発生しない。プログラムカウンタに対するスケーリ
ングの指定は行なってはいけない。
多段間接モードによる命令フォーマントのバリエーショ
ンを第26図、第27図に示す。
第26図は、多段間接モードが継続するか終了するかの
バリエーションを示す。
第27図は、ディスプレースメントのサイズのバリエー
ションを示す。
任意段数の多段間接モードが利用できれば、コンパイラ
の中で段数による場合分けが不要になるので、コンパイ
ラの負担が軽減されるというメリットがある。多段の間
接参照の頻度が非常に少ないとしても、コンパイラとし
ては必ず正しいコードを発生できなければならないから
である。このため、フォーマット上では任意の段数が可
能になっている。
(1,5)  r例外処理」 本発明のデータ処理装置はソフトウェア負荷の軽減のた
め豊富な例外処理機能を有する。本発明のデータ処理装
置では、例外処理は命令処理を再実行するもの(例外)
、命令処理を完了するもの(トラップ)及び割込の3種
類に分けて名称をつけている。また本発明のデータ処理
装置では、この3種の例外処理とシステム障害とを総称
してBITと称する。
(2)「機能ブロックの構成」 第1図は本発明のデータ処理装置の構成を示すブロック
図である。
本発明のデータ処理装置の内部を機能的に太きく分ける
と、命令フェッチ部101.命令デコード部102、 
PC計算部103.オペランドアドレス計算部104゜
マイクロROM部105.データ演算部106.外部バ
スインターフェイス部107に分かれる。
第1図では、その他にCPU外部にアドレスを出力する
ためのアドレス出力回路108と、CPt1外部とデー
タの入出力を行うためのデータ入出力回路109とを他
の機能ブロック部と分けて示した。
(2,1)  r命令フェッチ部」 命令フェッチ部101にはブランチバッファ、命令キュ
ー85とその制御部などがあり、次にフェッチすべき命
令のアドレスを決定してブランチバッファあるいはCP
U外部のメモリから命令をフェッチする。またブランチ
バッファへの命令登録をも行う。
ブランチバッファは小規模であるためセレクティプキャ
ッシュとして動作する。ブランチバッファの動作の詳細
は特願昭61−202041号で詳しく述べられている
次にフェッチすべき命令のアドレスは、命令キュー85
に入力すべき命令のアドレスとして専用のカウンタにて
計算される。分岐あるいはジャンプが発生した場合には
、新たな命令のアドレスがPC計算部103あるいはデ
ータ演算部106より転送されてくる。
CPIJ外部のメモリから命令をフェッチする場合は、
外部バスインターフェイス部107を通して、フェッチ
すべき命令のアドレスをアドレス出力回路108からC
PU外部に出力し、データ入出力回路109から命令コ
ードをフェッチする。そして、バッファリングした命令
コードの内、次にデコードすべき命令コードを命令デコ
ード部102に出力する。
(2,2)  r命令デコード部」 命令デコード部102では、基本的には16ビツト(ハ
ーフワード)単位で命令コードをデコードする。このブ
ロックには第1ハーフワードに含まれるオペレーション
コードをデコードするFH−デコーダ、第2.第3ハー
フワードに含まれるオペレーションコードをデコードす
るNFH−デコーダ、アドレッシングモードをデコード
するアドレッシングモードデコーダが含まれる。これら
FHWデコーダ、NFH−デコーダ、アドレッシングモ
ードデコーダを纏めて第1デコーダ86という。
FHWデコーダあるいはNFH−デコーダの出力を更に
デコードして、マイクロROMのエントリアドレスを計
算する第2デコーダ87、条件分岐命令の分岐予測を行
う分岐予測機構、オペランドアドレス計算の際のパイプ
ラインコンフリクトをチエツクするアドレス計算コンフ
リクトチエツク機構も含まれる。
命令デコード部102は命令フェッチ部101より入力
された命令コードを2クロツク(1ステツプ)につき0
〜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
デコーダ87の出力等の命令デコード部の出力が入力さ
れる。マイクロデコーダの出力は主にデータ演算部10
6に対して出力されるが、ジャンプ命令の実行による他
の先行処理中止情報等の一部の情報は他のブロックへも
出力される。
(2,4)  rオペランドアドレス計算部」オペラン
ドアドレス計算部104は命令デコード部102のアド
レスデコーダ等から出力されたオペランドアドレス計算
に関係する情報によりハードワイヤード制御される。こ
のブロックではオペランドのアドレス計算に関するほと
んどの処理が行われる。メモリ間接アドレシングのため
のメモリアクセスのアドレス及びオペランドアドレスが
メモリにマツプされたI10領域に入るか否かのチエツ
クも行われる。
アドレス計算結果は外部バスインターフェイス部107
に送られる。アドレス計算に必要な汎用レジスタ及びプ
ログラムカウンタの値はデータ演算部より入力される。
メモリ間接アドレッシングを行う際は外部バスインター
フェイス部107を通してアドレス出力回路108から
CPU外部へ参照すべきメモリアドレスを出力し、デー
タ入出力部109から入力された間接アドレス値を命令
デコード部102を通してフェッチする。
(2,5)  rPC計算部」 PC計算部103は命令デコード部102から出力され
るPC計算に関係する情報によりハードワイヤードに制
御され、命令のpc値を計算する。本発明のデータ処理
装置は可変長命令セットを有しており、命令をデコード
しなければその命令の長さが判らない。PC計算部10
3は命令デコード部102から出力される命令長をデコ
ード中の命令のpc値に加算することにより次の命令の
pc値を作り出す、また、命令デコード部102が分岐
命令をデコードしてデコード段階での分岐を指示した場
合は、命令長の代わりに分岐変位を分岐命令のpc値に
加算することにより分岐先命令のpc値を計算する。分
岐命令に対して命令デコード段階で分岐を行うことを本
発明のデータ処理装置ではブリブランチと称する。
このプリブランチの手法については特願昭61−204
500号及び特願昭61−200557号で詳しく述べ
られている。
pc計算部103の計算結果は各命令のpc値として命
令のデコード結果と共に出力されるほか、ブリブランチ
時には、次にデコードすべき命令のアドレスとして命令
フェッチ部101に出力される。
また、次に命令デコード部102でデコードされる命令
の分岐予測のためのアドレスにも使用される。分岐予測
の手法については特願昭62−8394号で詳しく述べ
られている。
(2,6)  rデータ演算部」 データ演算部106はマイクロプログラムにより制御さ
れ、マイクロROM部105の出力情報に従い、各命令
の機能を実現するに必要な演算をレジスタと演算器で実
行する。オペランドアドレス計算部104で計算された
アドレスを外部バスインターフェイス部107を通して
得る場合、あるいはそのアドレスでフェッチを行ったオ
ペランドをデータ入出力回路109から得る場合もある
演算器としてはAL[I、バレルシフタ、プライオリテ
ィエンコーダあるいはカウンタ、シフトレジスタなどが
ある。レジスタと主な演算器の間は3バスで結合されて
おり、1つのレジスタ間演算を指示する1マイクロ命令
を2クロツク(1ステツプ)で処理する。
データ演算時にCPU外部のメモリをアクセスする必要
がある場合は、マイクロプログラムの指示により外部バ
スインターフェイス部107を通してアドレス出力回路
108からアドレスをCPU外部に出力し、データ入出
力回路109を通して目的のデータをフェッチする。
CPU外部のメモリにデータをストアする場合は、外部
バスインターフェイス部107を通してアドレス出力回
路10Bよりアドレスを出力すると同時に、データ入出
力回路109からデータをCrtl外部に出力する。オ
ペランドストアを効率的に行うため、データ演算部10
6には4バイトのストアバッファが備えられている。
ジャンプ命令の処理あるいは例外処理などを行って新た
な命令アドレスをデータ演算部106が得た場合は、こ
れを命令フェッチ部101とPC計算部103へ出力す
る。
(2,7)  r外部バスインターフェイス部」外部バ
スインターフェイス部107は本発明のデータ処理装置
の外部バスでの通信を制御する。メモリのアクセスはす
べてクロック同期で行われ、最小2クロックサイクル(
1ステツプ)で行うことができる。
メモリに対するアクセス要求は命令フェッチ部101、
オペランドアドレス計算部104及びデータ演算部10
6から独立に生じる。外部バスインターフェイス部10
7はこれらのメモリアクセス要求を調停する。更にメモ
リとCPUとを結ぶデータバスサイズである32ビツト
(1ワード)の整置境界を跨ぐメモリ番地にあるデータ
のアクセスは、このブロック内で自動的にワード境界を
跨ぐことを検知して2回のメモリアクセスに分解して行
う。
プリフェッチするオペランドとストアするオペランドと
が重なる場合のコンフリクト防止処理及びストアオペラ
ンドからフェッチオペランドへのバイパス処理も行う。
(3)「パイプライン機構」 本発明のデータ処理装置のパイプライン処理機能は第2
図に模式的に示される如くである。
命令のブリフェッチを行う命令フェッチステージ(IF
ステージ)20L 命令のデコードを行うデコードステ
ージ(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回の基本パ
イプライン処理のみでは処理し得ない命令もあるが、本
発明のデータ処理装置はこれらの処理に対してもなるべ
く均衡のとれたパイプライン処理が行える様に設計され
ている。複数のメモリオペランドを持つ命令に対しては
メモリオペランドの数に基づいてデコード段階で複数の
パイプライン処理単位(ステップコード)に分解してパ
イプライン処理を行う。バイブライン処理単位の分解方
法に関しては特願昭61−236456号で詳しく述べ
られている。
IFステージ201からDステージ202に渡される情
報は、命令コード211そのものである。Dステージ2
02からAステージ203へ渡される情報は、命令で指
定された演算に関するもの(Dコード212と称す)と
、オペランドのアドレス計算に関係するもの(Aコード
213と称す)との2つがある。
Aステージ203からFステージ204へ渡される情報
はマイクロプログラムのエントリアドレスあるいはマイ
クロプログラムのパラメータ等を含むRコード214と
、オペランドのアドレスとアクセス方法指示情報などを
含むFコード215との2つである。
Fステージ204からEステージ205に渡される情報
は、演算制御情報とリテラル等を含むEコード216と
、オペランドあるいはオペランドアドレス等を含むSコ
ード217との2つである。
Eステージ205以外のステージで検出されたBITは
、そのコードがEステージ205に到達する迄はEIT
処理を起動しない。Eステージ205で処理されている
命令のみが実行段階の命令であり、IPステージ201
からFステージ204までの間で処理されている命令は
まだ実行段階に至っていないからである。従って、Eス
テージ205以外で検出されたBITは、それが検出さ
れたことがステップコード中に記録されて次のステージ
に伝えられるだけである。
(3,1)  rパイプライン処理単位」(3,1,1
)  r命令コードフィールドの分類」本発明のデータ
処理装置のバイブライン処理単位は命令セントのフォー
マットの特徴を利用して決定されている。
(1)節で述べた如く、本発明のデータ処理装置の命令
は2バイト単位の可変長命令であり、基本的には″2バ
イトの命令基本部+0〜4バイトのアドレシング拡張部
”を1〜3回反復することにより命令が構成されている
命令基本部には多くの場合、オペレーションコード部と
アドレッシングモード指定部とがあり、インデックスア
トレジソングあるいはメモリ間接アドレッシングが必要
な場合にはアドレッシング拡張部の代わりに“2バイト
の多段間接モード指定部子0〜4バイトのアドレシング
拡張部”が任意個付く。また、命令により2または4バ
イトの命令固有の拡張部が最後に付く。
命令基本部には命令のオペレーションコード、基本アド
レッシングモード、リテラルなどが含まれる。アドレッ
シング拡張部はディスプレースメント、絶対アドレス、
即値、分岐命令の変位のいずれかである。命令固有の拡
張部にはレジスタマツプ、+4ormat命令の即値指
定等がある。第28図は、本発明のデータ処理装置の基
本的命令フォーマットの特徴を示す模式図である。
(3,1,2)  rステップコードへの命令の分解」
本発明のデータ処理装置では、上記の命令フォーマツ1
〜の特徴を生かしたパイプライン処理を行つO Dステージ202では”2バイトの命令基本部+0〜4
ハイドのアドレッシング拡張部”、“多段間接モード指
定部子アドレッシング拡張部”又は命令固有の拡張部を
1つのデコード単位として処理する。各回のデコード結
果をステップコードと称し、Aステージ203以降では
このステップコードをパイプライン処理の単位としてい
る。ステ、デコードの数は命令毎に固有であり、多段間
接モード指定を行わない場合は、1つの命令は最小1個
、最大3個のステップコードに分かれる。多段間接モー
ド指定が行われた場合はそれだけステップコードが増加
する。但し、これは後で述べる様にデコード段階のみで
ある。
(3,1,3)  rプログラムカウンタの管理」本発
明のデータ処理装置のパイプライン上に存在するステッ
プコードは全て別命令に対するものである可能性があり
、このためプログラムカウンタの値はステップコード毎
に管理される。全てのステップコードは、そのステップ
コードのもとになった命令のプログラムカウンタ値を有
する。ステップコードに付属してパイプラインの各ステ
ージを流れるプログラムカウンタ値はステッププログラ
ムカウンタ<spc>  と称する。SPCはパイプラ
インステージ間を次々と受は渡されていく。
(3,2)  r各パイプラインステージの処理」各パ
イプラインステージの入出カステップコードには第2図
に示したように便宜上名前が付けられている。また、ス
テップコードはオペレージコンコードに関する処理を行
い、マイクロプログラムのエントリアドレス及びEステ
ージ205に対するパラメータなどになる系列とEステ
ージ205のマイクロ命令に対するオペランドになる系
列との2系列がある。
(3,2,1)  r命令フェッチステージ」命令フェ
ッチステージ(IFステージ)201は命令をメモリあ
るいはブランチバッファからフェッチして命令キュー8
5に入力し、Dステージ202に対して命令コードを出
力する。命令キュー85の入力は整置された4バイト単
位で行う。メモリから命令をフェッチする場合は、整置
された4バイトにつき最小2クロック(1ステツプ)を
要する。ブランチバッファがヒツトした場合は、整置さ
れた4バイトにつき1クロツクでフェッチ可能である。
命令キュー85の出力単位は2バイト毎に可変であり、
2クロツクの間に最大6バイトまで出力できる。また、
分岐の直後には命令キュー85をバイパスして命令基本
部2バイトを直接命令デコーダに転送することも可能で
ある。
ブランチバッファへの命令の登録及びクリア等の制御、
ブリフェッチ先の命令のアドレスの管理や命令キュー8
5の制御もIFステージ201で行う。
IPステージ201で検出するEITには、命令をメモ
リからフェッチする際のバスアクセス例外あるいはメモ
リ保護違反などによるアドレス変換例外がある。
(3,2,2)  r命令デコードステージ」命令デコ
ードステージ(Dステージ)202はIFステージ20
1から入力された命令コードをデコードする。デコード
は命令デコード部102のFH−デコーダ、NFHWデ
コーダ及びアドレッシングモードデコーダを合わせた第
1デコーダ86を使用して、2クロツク(1ステツプ)
単位に1度行ない、1回のデコード処理で、0〜6バイ
トの命令コードを消費する(RET命令の復帰先アドレ
スを含むステップコードの出力処理などでは命令コード
を消費しない)1回のデコードでAステージ203に対
してアドレス計算情報としてのAコード213である制
御コードとアドレス修飾情報と、オペレーションコード
の中間デコード結果としてのDコード212である制御
コードと8ビツトのリテラル情報とを出力する。
Dステージ202では、各命令のPC計算部103の制
御、分岐予測処理、ブリブランチ命令に対するブリブラ
ンチ処理、命令キュー85からの命令コード出力処理を
も行う。
Dステージ202で検出するBITには、予約命令例外
及びプリブランチ時の奇数アドレスジャンプトラップが
ある。また、IPステージ201より転送されてきた各
種BITはステップコード内にエンコードする処理をし
てAステージ203に転送する。
(3,2,3)  rオペランドアドレス計算ステージ
」オペランドアドレス計算ステージ(へステージ)20
3は処理機能が大きく2つに分かれる。1つは命令デコ
ード部102の第2デコーダ87を使用してオペレーシ
ョンコードの後段デコードを行う処理で、他方はオペラ
ンドアドレス計算部104でオペランドアドレスの計算
を行う処理である。
オペレーションコードの後段デコード処理はDコード2
12を入力とし、レジスタ、メモリの書き込み予約及び
マイクロプログラムのエントリアドレスとマイクロプロ
グラムに対するパラメータなどを含むRコード214の
出力を行う。なお、レジスタあるいはメモリの書き込み
予約は、アドレス計算で参照したレジスタやメモリの内
容がパイプライン上を先行する命令で書き換えられるこ
とにより誤ったアドレス計算が行われるのを防ぐための
ものである。レジスタあるいはメモリの書き込み予約は
デッドロックを避けるため、ステップコード毎ではなく
命令毎に行う。レジスタ及びメモリへの書き込み予約に
ついては特願昭62−144394号で詳しく述べられ
ている。
オペランドアドレス計算処理はAコード213を入力と
し、Aコード213に従いオペランドアドレス計算部1
04で加算あるいはメモリ間接参照を組み合わせてアド
レス計算を行い、その計算結果をFコード215として
出力する。この際、アドレス計算に伴うレジスタ及びメ
モリの読み出し時にコンフリクトチエツクを行い、先行
命令がレジスタあるいはメモリに書き込み処理を終了し
ていないためコンフリクトが指示されれば、先行命令が
Eステージ205で書き込み処理を終了するまで待つ。
また、オペランドアドレス及びメモリ間接参照のアドレ
スがメモリにマツプされたI10領域に入るか否かのチ
エツクも行う。
Aステージ203で検出するBITには予約命令例外、
特権命令例外、バスアクセス例外、アドレス変換例外、
メモリ間接アドレッシングの時のオペランドブレイクポ
イントヒツトによるデバッグトラツブがある。Dコード
212又はAコード213自体がIEITを起こしたこ
とを示していれば、Aステージ203はそのコードに対
してアドレス計算処理をせず、そのEITをRコード2
14及びFコード215に伝える。
(3,2,4)  rマイクロRO?lアクセスステー
ジ」オペランドフェッチステージ(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つ以上のマイクロプログラムステップに分解
される場合、マイクロROMはEステージ205で使用
され、次のRコード214はマイクロROMアクセス待
ちになる。Rコード214に対するマイクロROMアク
セスが行われるのは、その前のEステージ205での最
後のマイクロ命令実行の時である0本発明のデータ処理
装置では、はとんどの基本命令は1マイクロプログラム
ステツプで行われるため、実際にはRコード214に対
するマイクロROMアクセスが次々と行われることが多
い。
Rステージ206で新たに検出するBITはない。
Rコード214が命令処理再実行型のEITを示してい
る時は、そのE4T処理に対するマイクロプログラムが
実行されるので、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バイト以下のオペランドフェッチ
をt指定する。Fコード215にはオペランドのアクセ
スを行うか否かの指定も含まれており、Aステージ20
3で計算したオペランドアドレス自体あるいは即値をE
ステージ205に転送する場合にはオペランドプリフェ
ッチは行わず、Fコード215の内容をSコード217
として転送する。プリフェッチしようとするオペランド
と、Eステージ205が書き込み処理を行おうとするオ
ペランドとが一致する場合は、オペランドプリフェッチ
はメモリから行わずバイパスして行う。また、I10領
域に対してはオペランドプリフェッチを遅延させ、先行
命令がすべて完了するまで待ってオペランドフェッチを
行う。
OFステージ207で検出されるBITには、バスアク
セス例外、アドレス変換例外、オペランドプリフェッチ
に対するブレイクポイントヒツトによるデバッグトラッ
プがある。Fコード215がデバッグトラップ以外のB
ITを示している時は、それを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でジャ
ヴプ命令が実行されたり、あるいはEIT処理が起動さ
れたりした場合は、IFステージ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で検出されたEITは全てEIT処理
されるが、Eステージ以前のIFステージ201からF
ステージ204の間で検出され、Rコード214あるい
はSコード217に反映されているBITは必ずしもB
IT処理されるとは限らない。IFステージ201から
Fステージ204の間で検出されたが、先行の命令がE
ステージ205でジャンプ命令が実行されたなどの原因
でEステージ205まで到達しなかったBITは全てキ
ャンセルされる。そのBITを起こした命令はそもそも
実行されなかったことになる。
外部割込及び遅延割込は命令の切れ目でEステージ20
5に直接骨は付けられ、マイクロプログラムにより必要
な処理が実行される。その他の各種BITの処理はマイ
クロプログラムにより行われる。
(3,3)  r各パイプラインステージの状態制御」
パイプラインの各ステージは入力ランチと出力ラッチと
を有し、他のステージとは独立に動作することを基本と
する。各ステージは1つ前に行った処理が終わり、その
処理結果を出力ランチから次のステージの入力ランチに
転送し、自分のステージの入力ランチに次の処理に必要
な入力fB号がすべて揃えば次の処理を開始する。
つまり各ステージは、1つ前段のステージがら出力され
てくる次の処理に対する入力信号が全て有効となり、今
の処理結果を後段のステージの入力ランチに転送して出
力ランチが空になると次の処理を開始する。
各ステージが動作を開始する1つ前のクロックタイミン
グで入力信号が全て揃っている必要がある。入力信号が
揃っていない場合、そのステージは待ち状態(大力持ら
)になる。出力ランチから次のステージの入力ラッチへ
の転送を行う場合には次のステージの入力ランチが空き
状態になっている必要があり、次のステージの入力ラン
チが空きでない場合もパイプラインステージは待ち状態
(出力待ち)になる。必要なメモリアクセス権が獲得で
きなかったり、処理しているメモリアクセスにウェイト
が挿入されたり、その他のパイプラインコンフリクトが
生じると各ステージの処理自体が遅延する。
(4)「レジスタ番号指定フィールドの入換え」第2図
に示す本発明のデータ処理装置のパイプラインステージ
の概略構成のブロック図及び第1図に示す本発明のデー
タ処理装置の全体の構成のブロック図に従って以下に説
明する。
第1図の命令デコード部102は前述の如く2部構成で
あって、第1のデコード部としての第1デコーダ86は
第2図に示すDステージ202で制御され、第2のデコ
ード部としての第1デコーダ87はAステージ203で
制御される0例えば、L−format命令(前述の従
来例のAフォーマット命令に相当)で、レジスタR1か
らレジスタ112への転送命令である“MOV:I、 
 RI  R2”命令に対しては第5図に示す命令コー
ドは“−001OR1?−010001”となり、S−
format命令(前述の従来例のBフォーマット命令
に相当)で、レジスタR1からレジスタR2への転送命
令である“MOV:S  RI  R2”命令に対して
は第5図に示す命令コードは“−0001RRol  
0010” となる。ここで、両コードの最初の1−”
はL−format命令であるか5−forvaat命
令であるかを示すオペレーションコード、“0001”
はR1“0010”はR2,“Ol”はレジスタ直接を
それぞれ示す。
第3図に本発明データ処理装置のレジスタ番号指定フィ
ールド入換え機構を含む要部のブロック図を示す。
命令キュー85から命令が読み出され、第1デコーダ8
6により上記L−format命令”l’lOV:L 
 RI  R2’とS−format命令“?lOシ:
S  l?1 1?2” とは個別にデコードされ、デ
コードの中間結果として、L−formatについては
”!!  0010  ??  0001 0’が、S
−formaむについては”!!  0001  ??
  0010 1”がそれぞれ出力される。ここで“!
!” ”??”はレジスタ番号指定フィールドを除く伯
のフィールド情報に対する第1のデコード結果である。
最後のビット情報(“1”または“0”)はレジスタ番
号指定フィールドの入換えを行うか否かを示し、このビ
ットが立っていれば、即ち“1″であればレジスタ番号
指定フィールドの入換えを行う。
これらのL−format及び5−fornatの第1
のデコード結果が第2デコーダ87によりデコードされ
、第1のデコード結果のレジスタ番号指定フィールドを
入換えるか否かを示すビット情報に従ってS−f。
rma tに対してはレジスタ番号指定フィールド入換
え手段88によりレジスタ番号指定フィールドの入換え
を行う。
そしてレジスタ番号指定フィールドの入換えを行うか否
かを示すビット情報は、この入換え処理のためのみに使
用され、実行機構90に渡される第2のデコード結果に
は含まれない。このため、第2のデコード結果はL4o
rmatに対しては”、50010  ++  000
1’、  S−formatに対しては−,0010柵
 0001″となり、同一となる。従って、実行[fi
90では、両命令に対して同一のマイクロプログラムに
よりレジスタR1からレジスタR2へのデータ転送が行
われることになる。つまり、L−fornat命令とS
−format命令の二つの命令に対して1つのマイク
ロプログラムで処理可能になる。
[発明の効果] 以上のように本発明のデータ処理装置では、命令デコー
ド手段をを第1及び第2の命令デコード部に分割し、第
2の命令デコード部により一方のデータ転送命令のレジ
スタ番号を指定フィールドを入換えることにより、他方
の命令と同一のマイクロプログラムを使用することが可
能になるので、マイクロプログラムを削減することが可
能になり、マイクロROMのメモリ領域を有効利用出来
る。
【図面の簡単な説明】
第1図は本発明のデータ処理装置の全体構成を示すブロ
ック図、第2図は本発明のデータ処理装置のバイブライ
ンステージの概略を示すブロック図、第3図は本発明の
データ処理装置のし・ジスタ番号指定フィールド入換え
機構を含む要部の構成を示すブロック図、第4図は本発
明のデータ処理装置のメモリ七での命令の並び方を示す
模式図、第5図乃至第13図は本発明のデータ処理装置
の命令フォーマットの模式図、第14図乃至第27図は
本発明のデータ処理装置のアドレッシングモードの説明
のための模式図、第28図は本発明のデータ処理装置の
命令フォーマットの特徴を示す模式図、第29図は従来
のデータ処理装置のパイプラインステージの構成の概要
を示すブロック図、第30図及び第31図は従来のデー
タ処理装置の命令フォーマットの模式図である。 86・・・第1デコーダ  87・・・第2デコーダ 
 88・・・レジスタ番号指定フィールド入換えtaf
ji  101・・・命令フェッチ部 102・・・命
令デコード部 201・・・命令フェッチステージ 2
02・・・命令デコードステージ 205・・・実行ス
テージ なお、各図中同一符号は同−又は相当部分を示す。

Claims (1)

  1. 【特許請求の範囲】 1、デスティネーションオペランド指定フィールド、ソ
    ースオペランド指定フィールドの順に記述されたフォー
    マットを有する第1のデータ転送命令と、ソースオペラ
    ンド指定フィールド、デスティネーションオペランド指
    定フィールドの順に記述された第2のデータ転送命令と
    を含む命令をフェッチする命令フェッチ手段と、該命令
    フェッチ手段がフェッチした命令をデコードする命令デ
    コード手段と、該命令デコード手段による命令のデコー
    ド結果に従って命令を実行する命令実行手段とを備えた
    パイプライン処理機構を有するデータ処理装置において
    、 前記命令デコード手段は、 前記命令フェッチ手段がフェッチした命令 をデコードして中間コードを生成する第1の命令デコー
    ド部と、 デコード対象の命令が前記第1(又は第2)のデータ転
    送命令であり且つそのデスティネーションオペランド指
    定フィールド及びソースオペランド指定フィールドが共
    にレジスタを指定している場合に、前記第1の命令デコ
    ード部が生成した中間コードに従って、それにパラメー
    タにてソースオペランド及びデスティネーションオペラ
    ンドとして指定されている2つのレジスタ番号を入れ換
    える手段を有する第2の命令デコード部と を備えたことを特徴とするデータ処理装置。
JP63166307A 1988-07-04 1988-07-04 データ処理装置 Expired - Fee Related JPH07120278B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP63166307A JPH07120278B2 (ja) 1988-07-04 1988-07-04 データ処理装置
US07/371,961 US4945511A (en) 1988-07-04 1989-06-27 Improved pipelined processor with two stage decoder for exchanging register values for similar operand instructions

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP63166307A JPH07120278B2 (ja) 1988-07-04 1988-07-04 データ処理装置

Publications (2)

Publication Number Publication Date
JPH0215331A true JPH0215331A (ja) 1990-01-19
JPH07120278B2 JPH07120278B2 (ja) 1995-12-20

Family

ID=15828913

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63166307A Expired - Fee Related JPH07120278B2 (ja) 1988-07-04 1988-07-04 データ処理装置

Country Status (2)

Country Link
US (1) US4945511A (ja)
JP (1) JPH07120278B2 (ja)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2902402B2 (ja) * 1987-09-30 1999-06-07 三菱電機株式会社 データ処理装置
JPH0766324B2 (ja) * 1988-03-18 1995-07-19 三菱電機株式会社 データ処理装置
JPH0769806B2 (ja) * 1988-10-14 1995-07-31 三菱電機株式会社 データ処理装置
JPH0810428B2 (ja) * 1988-12-26 1996-01-31 三菱電機株式会社 データ処理装置
US5142631A (en) * 1989-02-03 1992-08-25 Digital Equipment Corporation System for queuing individual read or write mask and generating respective composite mask for controlling access to general purpose register
US5167026A (en) * 1989-02-03 1992-11-24 Digital Equipment Corporation Simultaneously or sequentially decoding multiple specifiers of a variable length pipeline instruction based on detection of modified value of specifier registers
US5142633A (en) * 1989-02-03 1992-08-25 Digital Equipment Corporation Preprocessing implied specifiers in a pipelined processor
CA2016068C (en) * 1989-05-24 2000-04-04 Robert W. Horst Multiple instruction issue computer architecture
US5615349A (en) * 1990-09-04 1997-03-25 Mitsubishi Denki Kabushiki Kaisha Data processing system capable of execution of plural instructions in parallel
EP0463973A3 (en) * 1990-06-29 1993-12-01 Digital Equipment Corp Branch prediction in high performance processor
US5163139A (en) * 1990-08-29 1992-11-10 Hitachi America, Ltd. Instruction preprocessor for conditionally combining short memory instructions into virtual long instructions
JPH04156613A (ja) * 1990-10-20 1992-05-29 Fujitsu Ltd 命令バッファ装置
JP2984463B2 (ja) * 1991-06-24 1999-11-29 株式会社日立製作所 マイクロコンピュータ
US5490255A (en) * 1991-12-26 1996-02-06 Amdahl Corporation Expedited execution of pipelined command having self-ordering operand processing requirements
US5479626A (en) * 1993-07-26 1995-12-26 Rockwell International Corporation Signal processor contexts with elemental and reserved group addressing
US6681319B1 (en) * 1998-10-06 2004-01-20 Texas Instruments Incorporated Dual access instruction and compound memory access instruction with compatible address fields
JP2001005675A (ja) * 1999-06-21 2001-01-12 Matsushita Electric Ind Co Ltd プログラム変換装置及びプロセッサ
JP2004152049A (ja) * 2002-10-31 2004-05-27 Renesas Technology Corp データ処理装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5060151A (ja) * 1973-09-26 1975-05-23

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4586130A (en) * 1983-10-03 1986-04-29 Digital Equipment Corporation Central processing unit for a digital computer
US4812971A (en) * 1983-10-03 1989-03-14 Digital Equipment Corporation Central processing unit for a digital computer
US4709324A (en) * 1985-11-27 1987-11-24 Motorola, Inc. Data processor control unit having an interrupt service using instruction prefetch redirection

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5060151A (ja) * 1973-09-26 1975-05-23

Also Published As

Publication number Publication date
US4945511A (en) 1990-07-31
JPH07120278B2 (ja) 1995-12-20

Similar Documents

Publication Publication Date Title
US5091853A (en) Chained addressing mode pipelined processor which merges separately decoded parts of a multiple operation instruction
JPH0215331A (ja) データ処理装置
JPH02173823A (ja) データ処理装置
JP2507638B2 (ja) デ―タ処理装置
JP2581236B2 (ja) データ処理装置
JPH01214932A (ja) データ処理装置
JPH04260930A (ja) データ処理装置
JPH07120284B2 (ja) データ処理装置
JPH04260927A (ja) データ処理装置
JPH04260929A (ja) データ処理装置
JPH02105937A (ja) データ処理装置
JP2710994B2 (ja) データ処理装置
US5269008A (en) Method and apparatus for pre-processing the source of a pop instruction in a pipeline computer
JP2504235B2 (ja) デ―タ処理装置
JPH04260926A (ja) ビット検索回路及びそれを備えたデータ処理装置
JPH04109338A (ja) プライオリティエンコーダ及びそれを備えたデータ処理装置
JP2532560B2 (ja) 高機能な例外処理を行うデ―タ処理装置
JP2522048B2 (ja) マイクロプロセッサ及びそれを使用したデ―タ処理装置
JPH04260928A (ja) データ処理装置
JPH0225932A (ja) データ処理装置
JPH0290325A (ja) データ処理装置
JPH0769802B2 (ja) データ処理装置
JPH0218621A (ja) データ処理装置
JPH0769805B2 (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