JP2507638B2 - デ―タ処理装置 - Google Patents

デ―タ処理装置

Info

Publication number
JP2507638B2
JP2507638B2 JP1313741A JP31374189A JP2507638B2 JP 2507638 B2 JP2507638 B2 JP 2507638B2 JP 1313741 A JP1313741 A JP 1313741A JP 31374189 A JP31374189 A JP 31374189A JP 2507638 B2 JP2507638 B2 JP 2507638B2
Authority
JP
Japan
Prior art keywords
instruction
flag
stage
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.)
Expired - Lifetime
Application number
JP1313741A
Other languages
English (en)
Other versions
JPH03174626A (ja
Inventor
雅仁 松尾
徹 清水
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 JP1313741A priority Critical patent/JP2507638B2/ja
Priority to US07/619,852 priority patent/US5313644A/en
Publication of JPH03174626A publication Critical patent/JPH03174626A/ja
Application granted granted Critical
Publication of JP2507638B2 publication Critical patent/JP2507638B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime 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/30094Condition code generation, e.g. Carry, Zero flag
    • 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/30098Register arrangements
    • G06F9/30101Special purpose registers
    • 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, look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units

Description

【発明の詳細な説明】 [産業上の利用分野] 本発明は高度な並列処理機構により高い処理能力を実
現したデータ処理装置に関し、より詳述すれば、複数の
命令を並列実行することを可能としたデータ処理装置に
関する。
[従来の技術] 第5図は従来のデータ処理装置の典型的なパイプライ
ン処理機構の構成を示すブロック図である。
第5図に示したデータ処理装置のパイプライン処理機
構は、命令データの取込みを行う命令フェッチ(IF)ス
テージ91,命令データの解析を行う命令デコード(D)
ステージ92,オペランド等のアドレス計算を行うアドレ
ス計算(A)ステージ93,オペランドデータのフェッチ
を行うオペランドフェッチ(F)ステージ94,データの
処理を行う実行(E)ステージ95,オペランドデータの
書込みを行うオペランドライト(W)ステージ96の6段
のパイプラインステージにて構成されている。
このような従来のデータ処理装置のパイプライン処理
機構では、各ステージは異なる命令を同時に処理するこ
とが可能である。但し、オペランドやメモリアクセスに
関してコンフリクトが発生したような場合には優先度の
低いステージでの処理がコンフリクトが解消されるまで
一時停止される。
以上のように、パイプライン化されたデータ処理装置
では、データ処理の流れに従って処理を複数のステージ
に分割し、各ステージを同時に動作させることにより、
1命令に必要な平均処理時間を短縮させて全体としての
性能を向上させている。
パイプライン処理により複数の命令を同時に処理し、
高性能化を行ったデータ処理装置の例としてはUSP No.
4,402,042“MICROPROCESSOR SYSYTEM WITH INSTRUCTION
PRE-FETCH"に示されている。
しかし、1マシンサイクルに最大1命令しか実行でき
ないデータ処理装置では、処理性能は動作周波数により
制限されてしまう。この問題を解決するために、複数の
演算器を設けて複数の命令を並列に実行しているものも
ある。
例えば、IBM System/360 Model 91と称されるデータ
処理装置では、複数の加算器,乗除算器を備え、各演算
器毎に“reservation station"と称する機能を付加する
ことにより、命令の追越し制御を行うことにより処理速
度の向上を図っている。この処理の詳細に関してはDani
el P.Siewiorek,C.Gordon Bell and Allen Newell,“Co
mputer Structures:Principles and Examples",McGraw-
Hill Book Company,PP.295-298(1982)に示されてい
る。
また、Motorola Inc.のマイクロプロセッサMC88100で
も、“register scoreboading"と称される機構を備える
ことにより、複数の実行ユニットが使用するレジスタ間
で生じるコンフリクトを検出し、並列処理のシーケンス
を制御している。その詳細は、「32ビットマイクロプロ
セッサ、演算処理の並列化で性能向上を図る」、日経エ
レクトロニクス、No.448、pp.145-149(1988)に示され
ている。
更に、通常の実行部とは独立に動作可能で、メモリオ
ペランドを有していない簡単な算術・論理演算命令専用
の実行部を設けることにより命令の追越し制御を行おう
としている例もある。その詳細は、宮森高他、「TRON仕
様に基づく32ビットマイクロプロセッサTX3のCPUアーキ
テクチャの検討」、信学技報、Vol.87,No.422,CPSY87-5
3,PP.31-36(1988)に示されている。
[発明が解決しようとする課題] このように従来のデータ処理装置では、命令の並列実
行及び追越し制御を行うことにより処理速度の向上を図
っている。しかし、各命令の実行結果がフラグに反映さ
れる整数演算命令について、複数の演算器を備えること
により命令の追越し制御を行う場合、追越しを行った命
令の演算実行に関するフラグの更新情報を一時的に退避
しておき、追越しを行った命令の前に処理されるべき命
令が総て処理された後に一時的に退避してある情報をフ
ラグに反映させる必要がある。
このような事情から、命令の追越しが行われた場合に
も、矛盾無くフラグの更新を行うには、かなり複雑な更
新制御を行う必要があり、その機能を実現するには大量
の論理量が必要になる。
本発明は上述のような問題点を解決するためになされ
たもので、簡単な制御で複数の命令を並列実行すること
ができるように、フラグの更新制御を工夫したデータ処
理装置を得ることを目的とする。
[課題を解決するための手段] 本発明のデータ処理装置の第1の発明は、1つの処理
シーケンス中の第1の命令と、この第1の命令に先行す
る第2の命令とに従ってデータが処理されるものにおい
て、それぞれ第1および第2の命令の実行により、プロ
セッサ状態語に含まれ演算結果の情報を示すフラグが更
新されるか否かを判断するそれぞれ第1および第2の判
断手段、第1および第2の演算器にそれぞれ第1および
第2の命令による処理を並列実行させる命令実行手段、
および命令実行手段が第1および第2の命令による処理
を並列実行させた際、(a)第1の判断手段が第1の命
令の実行によりフラグが更新されると判断した場合、第
1の命令による第1の演算器の演算結果に基づいてフラ
グを更新し、(b)第1の判断手段が第1の命令の実行
によりフラグが更新されないと判断し且つ第2の判断手
段が第2の命令の実行によりフラグが更新されると判断
した場合、第2の命令による第2の演算器の演算結果に
基づいてフラグを更新するフラグ更新手段を備えてい
る。
また本発明のデータ処理装置の第2の発明は、それぞ
れ第1および第2の命令の実行により、プロセッサ状態
語に含まれ演算結果の情報を示す第1および第2のフラ
グが更新されるか否かを判断するそれぞれ第1および第
2の判断手段、第1および第2の演算器にそれぞれ第1
および第2の命令による処理を並列実行させる命令実行
手段、および命令実行手段が前記第1および第2の命令
による処理を並列実行させた際、(a)第1の判断手段
が、第1の命令の実行により第1のフラグが更新され、
第2のフラグが更新されないとそれぞれ判断し、かつ
(b)第2の判断手段が、第2の命令の実行により第2
のフラグが更新されると判断した場合、第1の命令によ
る第1の演算器の演算結果に基づいて第1のフラグを更
新し、第2の命令による第2の演算器の演算結果に基づ
いて第2のフラグを更新するフラグ更新手段を備えてい
る。
[作用] 本発明に係るデータ処理装置の第1の発明では、処理
シーケンス中の第1の命令とこれに先行する第2の命令
とが並列実行された場合、第1の命令の実行によりフラ
グが更新されると判断されたことにより、第1の命令に
よる演算結果に基づいてフラグを更新し、第1の命令の
実行によりフラグが更新されず、第2の命令の実行によ
りフラグが更新されると判断されたことにより、第2の
命令による演算結果に基づいてフラグが更新されるの
で、処理シーケンス中の第1および第2の命令が並列実
行される場合でも、フラグは何等矛盾なくその処理シー
ケンスの命令により更新されるべきフラグ内容に更新さ
れる。
本発明に係るデータ処理装置の第2の発明では、第1
の命令の実行により第1のフラグが更新され、第2のフ
ラグが更新されないとそれぞれ判断されたとき、かつ第
2の命令の実行により第2のフラグが更新されると判断
されたことにより、第1の命令による演算結果に基づい
て第1のフラグを更新し、第2の命令による演算結果に
基づいて第2のフラグを更新するので、複数のフラグの
更新に対してもこれらのフラグは何等矛盾なくその処理
シーケンスの命令により更新されるべきフラグ内容にフ
ラグが更新される。
[実施例] 以下、本発明をその実施例を示す図面に基づいて詳述
する。
(1)「本発明のデータ処理装置の命令フォーマットと
例外処理」 本発明のデータ処理装置の命令は16ビット単位で可変
長となっており、奇数バイト長の命令はない。
本発明のデータ処理装置では高頻度のプロセッサ命令
を短いフォーマットとするため、特に工夫された命令フ
ォーマット体系を有する。例えば、2オペランド命令に
対しては基本的に「4バイト+拡張部」の構成を有し、
総てのアドレッシングモードが利用可能な一般形フォー
マットと、頻度が高い命令及びアドレッシングモードの
みを使用可能な短縮形フォーマットとの2つのフォーマ
ットがある。
第6図から第15図は本発明のデータ処理装置の命令フ
ォーマットを示す模式図である。
第6図から第15図のフォーマット中に現われる記号の
意味は以下の通りである。
−:オペレーションコードが入る部分 ♯:リテラルまたは即値が入る部分 Ea:8ビットの一般形のアドレッシングモードでオペラン
ドを指定する部分 Sh:6ビットの短縮形のアドレッシングモードでオペラン
ドを指定する部分 Rn:レジスタファイル上のオペランドをレジスタ番号で
指定する部分 フォーマットは、第6図に示す如く、右側がLSB側
で、且つ高いアドレスになっている。アドレスNとアド
レスN+1との2バイトを見ないと命令フォーマットが
判別できないようになっているが、これは、命令が必ず
16ビット(2バイト)単位でフェッチ及びデコードされ
ることを前提としているためである。
本発明のデータ処理装置の命令では、いずれのフォー
マットの場合も、各オペランドのEaまたはShの拡張部
は、必ずそのEaまたはShの基本部を含むハーフワードの
直後に置かれる。これは、命令により暗黙に指定される
即値データあるいは命令の固有の拡張部に優先する。従
って、4バイト以上の命令では、Eaの拡張部によって命
令のオペコードが分断される場合がある。
また、後述するように、多段間接モードによりEaの拡
張部に更に拡張部が付加される場合にも、次の命令オペ
レーションコードよりもそちらの方が優先される。例え
ば、第1ハーフワードにEa1を含み、第2ハーフワード
にEa2を含み、第3ハーフワードまである6バイト命令
の場合を考える。Ea1に多段間接モードを使用し、Ea2が
拡張部を有する場合は、実際の命令ビットパターンは、
命令の第1ハーフワード(Ea1の基本部を含む),Ea1の
多段間接モード,命令の第2ハーフワード(Ea2の基本
部を含む),Ea2の拡張部,命令の第3ハーフワードの順
となる。
(1.1)「短縮形2オペランド命令」 第7図から第10図は2オペランド命令の短縮形フォー
マットを示す模式図である。
第7図はメモリ−レジスタ間演算命令のフォーマット
である。このフォーマットにはソースオペランド側がメ
モリとなるL-formatとデスティネーションオペランド側
がメモリとなるS-formatとがある。
L-formatでは、Shはソースオペランドの指定フィール
ド,Rnはデスティネーションオペランドのレジスタの指
定フィールド,RRはShのオペランドサイズの指定をそれ
ぞれ表す。レジスタ上に置かれたデスティネーションオ
ペランドのサイズは32ビットに固定されている。レジス
タ側とメモリ側とのサイズが異なり、且つソース側のサ
イズが小さい場合に符号拡張が行なわれる。
また、一部の命令(加算命令,減算命令)では、ソー
スのオペランドサイズもワードに固定されている。この
場合、RRのフィールドはオペレーションコードとなって
いる。
S-formatでは、Shはデスティネーションオペランドの
指定フィールド,Rnはソースオペランドのレジスタ指定
フィールド,RRはShのオペランドサイズの指定をそれぞ
れ表す。レジスタ上に置かれたソースオペランドのサイ
ズは32ビットに固定されている。レジスタ側とメモリ側
とのサイズが異なり、且つソース側のサイズが大きい場
合に、溢れた部分の切捨てとオーバーフローチェックと
が行なわれる。
第8図はレジスタ−レジスタ間演算命令のフォーマッ
ト(R-format)を示す模式図である。図中、Rnはデステ
ィネーションレジスタの指定フィールド,Rmはソースレ
ジスタの指定フィールドである。オペランドサイズは32
ビットのみである。
第9図はリテラル−メモリ間演算命令のフォーマット
(Q-format)を示す模式図である。図中、MMはディステ
ィネーションオペランドサイズの指定フィールド,♯は
リテラルによるソースオペランドの指定フィールド,Sh
はデスティネーションオペランドの指定フィールドであ
る。
第10図は即値−メモリ間演算命令のフォーマット(I-
format)を示す模式図である。図中、MMはオペランドサ
イズの指定フィールド(ソース,ディスティネーション
で共通),Shはデスティネーションオペランドの指定フ
ィールドである。I-formatの即値のサイズは、デスティ
ネーション側のオペランドのサイズと共通に8,16,32ビ
ットとなり、ゼロ拡張及び符号拡張は行なわれない。
(1.2)「一般形1オペランド命令」 第11図は1オペランド命令の一般形フォーマット(G1
-format)を示す模式図である。図中、MMはオペランド
サイズの指定フィールドである。一部のG1-format命令
では、Eaの拡張部以外にも拡張部がある。また、MMを使
用しない命令もある。
(1.3)「一般形2オペランド命令」 第12図から第14図は2オペランド命令の一般形フォー
マットを示す模式図である。このフォーマットに含まれ
るのは、8ビットで指定する一般形アドレッシングモー
ドのオペランドが最大2つ存在する命令である。オペラ
ンドの総数自体は3つ以上になる場合がある。
第12図は第1オペランドがメモリ読出しを必要とする
命令のフォーマット(G-format)を示す模式図である。
図中、EaMはデスティネーションオペランドの指定フィ
ールド,MMはデスティネーションオペランドサイズの指
定フィールド,EaRはソースオペランド指定フィールド,R
Rはソースオペランドサイズの指定フィールドである。
一部のG-format命令では、EaM及びEaRの拡張部以外にも
拡張部がある。
第13図は第1オペランドが8ビット即値の命令のフォ
ーマット(E-format)を示す模式図である。図中、EaM
はデスティネーションオペランドの指定フィールド,MM
はデスティネーションオペランドサイズの指定フィール
ド,♯はソースオペランド値である。
E-formatとI-formatとは機能的には類似しているが、
考え方の点で大きく異なっている。E-formatはあくまで
も2オペランド一般形(G-format)の派生形であり、ソ
ースオペランドのサイズが8ビット固定、ディスティネ
ーションオペランドのサイズが8/16/32ビットから選択
となっている。つまり、異種サイズ間の演算を前提と
し、デスティネーションオペランドのサイズに合わせて
8ビットのソースオペランドがゼロ拡張または符号拡張
される。
一方、I-formatは、特に転送命令,比較命令で頻度の
高い即値のパターンを短縮形にしたものであり、ソース
オペランドとディスティネーションオペランドとのサイ
ズは等しい。
第14図は第1オペランドがアドレス計算のみの命令の
フォーマット(GA-format)を示す模式図である。図
中、EaWはデスティネーションオペランドの指定フィー
ルド,WWはデスティネーションオペランドサイズの指定
フィールド,EaAはソースオペランドの指定フィールドで
ある。ソースオペランドとしては実効アドレスの計算結
果自体が使用される。
第15図はショートブランチ命令のフォーマットを示す
模式図である。図中、ccccは分岐条件指定フィールド,d
isp:8はジャンプ先との変位指定フィールドであり、本
発明のデータ処理装置では8ビットで変位を指定する場
合には、ビットパターンでの指定値を2倍して変位値と
する。
(1.4)「アドレッシングモード」 本発明のデータ処理装置の命令のアドレッシングモー
ド指定方法には、レジスタを含めて6ビットで指定する
短縮形と、8ビットで指定する一般形とがある。
未定義のアドレッシングモードを指定した場合あるい
は意味的に明らかに不合理なアドレッシングモードの組
合わせが指定された場合には、未定義命令を実行した場
合と同じく、予約命令例外が発生されて例外処理が起動
する。
これに該当するのは、デスティネーションが即値モー
ドの場合及びアドレス計算を伴うべきアドレシングモー
ド指定フィールドで即値モードを使用した場合などであ
る。
第16図から第26図に示すフォーマットの模式図中で使
用されている記号の意味は以下の通りである。
Rn:レジスタ指定 (Sh):6ビットの短縮形アドレッシングモードでの指定
方法 (Ea):8ビットの一般形アドレッシングモードでの指定
方法 フォーマットの図で点線で囲まれた部分は、拡張部を
示す。
(1.4.1)「基本アドレッシングモード」 本発明のデータ処理装置の命令では種々のアドレッシ
ングモードをサポートする。それらの内、本発明のデー
タ処理装置でサポートする基本アドレッシングモードに
は、レジスタ直接モード,レジスタ間接モード,レジス
タ相対間接モード,即値モード,絶対モード,PC相対間
接モード,スタックポップモード,スタックプッシュモ
ードがある。
レジスタ直接モードは、レジスタの内容をそのままオ
ペランドとする。第16図にフォーマットの模式図を示
す。図中、Rnは汎用レジスタの番号を示す。
レジスタ間接モードは、レジスタの内容をアドレスと
するメモリの内容をオペランドとする。第17図にフォー
マットの模式図を示す。図中、Rnは汎用レジスタの番号
を示す。
レジスタ相対間接モードは、ディスプレースメント値
が16ビットであるか32ビットであるかにより2種類あ
る。それぞれ、レジスタの内容に16ビットまたは32ビッ
トのディスプレースメント値を加えた値をアドレスとす
るメモリの内容をオペランドとする。第18図にフォーマ
ットの模式図を示す。図中、Rnは汎用レジスタの番号を
示す。disp:16とdisp:32とは、16ビットのディスプレー
スメント値,32ビットのディスプレースメント値をそれ
ぞれ示す。ディスプレースメント値は符号付きとして扱
われる。
即値モードは、命令コード中で指定されるビットパタ
ンをそのまま2進数と見なしてオペランドとする。第19
図にフォーマットの模式図を示す。図中、imm_dataは即
値を示す。imm_dataのサイズは、オペランドサイズとし
て命令中で指定される。
絶対モードは、アドレス値が16ビットで示されるか32
ビットで示されるかにより2種類ある。それぞれ、命令
コード中で指定される16ビットまたは32ビットのビット
パタンをアドレスとしたメモリの内容をオペランドとす
る。第20図にフォーマットの模式図を示す。図中、abs:
16とabs:32とは16ビット,32ビットのアドレス値をそれ
ぞれ示す。abs:16でアドレスが示される場合は、指定さ
れたアドレス値が32ビットに符号拡張される。
PC相対間接モードは、ディスプレースメント値が16ビ
ットであるか32ビットであるかにより2種類ある。それ
ぞれ、プログラムカウンタの内容に16ビットまたは32ビ
ットのディスプレースメント値を加えた値をアドレスと
するメモリの内容をオペランドとする。第21図にフォー
マットの模式図を示す。図中、disp:16とdisp:32とは、
16ビットのディスプレースメント値,32ビットのディス
プレースメント値をそれぞれ示す。ディスプレースメン
ト値は符号付きとして扱われる。PC相対間接モードにお
いて参照されるプログラムカウンタの値は、そのオペラ
ンドを含む命令の先頭アドレスである。多段間接アドレ
シングモードにおいてプログラムカウンタの値が参照さ
れる場合にも、同じように命令先頭のアドレスをPC相対
の基準値として使用する。
スタックポップモードはスタックポインタ(SP)の内
容をアドレスとするメモリの内容をオペランドとする。
オペランドアクセス後、SPをオペランドサイズだけイン
クリメントする。例えば、32ビットデータを扱う際に
は、オペランドアクセス後にSPが+4だけ更新される。
B,Hのサイズのオペランドに対するスタックポップモー
ドの指定も可能であり、それぞれSPが+1,+2だけ更新
される。第22図にフォーマットの模式図を示す。オペラ
ンドに対しスタックポップモードが意味を持たないもの
に関しては予約命令例外が発生される。具体的に予約命
令例外となるのは、writeオペランド及びread-modify-w
riteオペランドに対するスタックポップモード指定であ
る。
スタックプッシュモードはSPの内容をオペランドサイ
ズだけデクリメントした内容をアドレスとするメモリの
内容をオペランドとする。スタックプッシュモードでは
オペランドアクセス前にSPがデクリメントされる。例え
ば、32ビットデータを扱う際には、オペランドアクセス
前にSPが−4だけ更新される。B,Hのサイズのオペラン
ドに対するスタックプッシュモードの指定も可能であ
り、それぞれSPが−1,−2だけ更新される。第23図にフ
ォーマットの模式図を示す。オペランドに対してスタッ
クプッシュモードが意味を持たない場合には予約命令例
外が発生される。具体的に予約命令例外となるのは、re
adオペランド及びread-modify-writeオペランドに対す
スタックプッシュモード指定である。
(1.4.2)「多段間接アドレッシングモード」 複雑なアドレッシングも、基本的には加算と間接参照
との組合わせに分解することができる。従って、加算と
間接参照とのオペレーションをアドレッシングのプリミ
ティブとして与えておき、それを任意に組合わせること
ができれば、いかに複雑なアドレッシングモードをも実
現することが可能である。
本発明のデータ処理装置の命令の多段間接アドレッシ
ングモードはこのような観点に立脚したアドレッシング
モードである。複雑なアドレッシングモードは、モジュ
ール間のデータ参照あるいはAI(Artificial Intellige
nce:人工知能)言語の処理系に特に有用である。
多段間接アドレッシングモードを指定する際、基本ア
ドレッシングモード指定フィールドでは、レジスタベー
ス多段間接モード,PCベース多段間接モード,絶対ベー
ス多段間接モードの3種類の指定方法の内のいずれか1
つを指定する。
レジスタベース多段間接モードは、レジスタの値を拡
張されるべき多段間接アドレッシングのベース値とする
アドレッシングモードである。第24図にフォーマットの
模式図を示す。図中、Rnは汎用レジスタの番号を示す。
PCベース多段間接モードは、プログラムカウンタの値
を拡張されるべき多段間接アドレッシングのベース値と
するアドレッシングモードである。第25図にフォーマッ
トの模式図を示す。
絶対ベース多段間接モードは、ゼロを拡張されるべき
多段間接アドレッシングのベース値とするアドレッシン
グモードである。第26図にフォーマットの模式図を示
す。
拡張される多段間接モード指定フィールドは16ビット
を単位としており、これが任意回反復される。1段の多
段間接モードにより、ディスプレースメントの加算,イ
ンデクスレジスタのスケーリング(×1,×2,×4,×8)
と加算,メモリの間接参照を行なう。第27図は多段間接
モードのフォーマットを示す模式図である。各フィール
ドは以下に示す意味を有する。
E=0:多段間接モード継続 E=1:アドレス計算終了 tmp==>address of operand I=0:メモリ間接参照なし tmp+disp+Rx*Scale==>tmp I=1:メモリ間接参照あり mem[tmp+disp+Rx*Scale]==>tmp M=0:〈Rx〉をインデクスとして使用 M=1:特殊なインデクス 〈Rx〉=0 インデクス値を加算しない (Rx=0) 〈Rx〉=1 プログラムカウンタを インデクス値として使用 (Rx=PC) 〈Rx〉=2〜 reserved D=0:多段間接モード中の4ビットのフィールドd4の値
を4倍してディスプレースメント値とし、これを加算す
る。d4は符号付として扱い、オペランドのサイズとは関
係なく必ず4倍して使用する。
D=1:多段間接モードの拡張部で指定されたdispx(16/
32ビット)をディスプレースメント値とし、これを加算
する。
拡張部のサイズはd4フィールドで指定する。
d4=0001 dispxは16ビット d4=0010 dispxは32ビット XX:インデクスのスケール (scale=1/2/4/8) プログラムカウンタに対して×2,×4,×8のスケーリ
ングを行なった場合には、その段の処理終了後の中間値
(tmp)として不定値が入る。この多段間接モードによ
って得られる実効アドレスは予測できない値となるが、
例外は発生しない。プログラムカウンタに対するスケー
リングの指定は行なってはいけない。
多段間接モードによる命令フォーマットのバリエーシ
ョンを第28図及び第29図に示す。第28図は多段間接モー
ドが継続するか終了するかのバリエーションを示す。第
29図はディスプレースメントのサイズのバリエーション
を示す。
任意段数の多段間接モードが利用できれば、コンパイ
ラの中で段数による場合分けが不要になるので、コンパ
イラの負担が軽減されるというメリットがある。多段の
間接参照の頻度が非常に少ないとしても、コンパイラと
しては必ず正しいコードを発生できなければならないか
らである。このため、フォーマット上、任意の段数が可
能になっている。
(1.5)「例外処理」 本発明のデータ処理装置ではソフトウエア負荷の軽減
のため、豊富な例外処理機能を有する。
本発明のデータ処理装置では、例外処理は命令処理を
再実行するもの(例外),命令処理を完了するもの(ト
ラップ)及び割込みの3種類に分類される。また本発明
のデータ処理装置では、この3種の例外処理とシステム
障害とを総称してEITと称する。
例外には、命令コード中で未定義のビットパターンが
指定されていた場合に発生する予約命令例外,ビットパ
タン以外で未定義の機能を用いようとした場合に発生す
る予約機能例外,不当なオペランド値が指定された場合
に発生する不正オペランド例外,特権命令となっている
命令をユーザーモードから使用した場合に発生する特権
命令例外,メモリアクセスでバスエラーが生じた場合に
発生するバスアクセス例外,メモリアクセスでメモリ保
護違反が生じた場合に発生するアドレス変換例外等があ
る。
トラップには、除算命令等で除数がゼロであった場合
に発生するゼロ除算トラップ,デバッグサポートのため
にオペランドブレイクポイントあるいはPCブレイクポイ
ントを設定してデバッグ事象が検出された場合にトラッ
プを発生するセルフデバッグトラップ,ソフトウェア的
にトラップを発生するトラップ命令,条件トラップ命
令,ストアバッファ処理においてバスエラーが検出され
た場合に発生するバスアクセストラップ,ストアバッフ
ァ処理においてメモリ保護違反が検出された場合に発生
するアドレス変換トラップ,奇数アドレスにジャンプし
ようとした場合に発生する奇数アドレスジャンプトラッ
プ等がある。
割込みには、外部からハードウェア的な信号により発
生する外部割込みあるいはソフトウェア的に発生される
遅延割込みがある。割込みは、実行中のコンテキストと
は無関係に、命令の切目(1命令の終了時)でハードウ
ェア的に受付けられる。
(2)「機能ブロックの構成」 第2図は本発明のデータ処理装置の構成を示すブロッ
ク図である。また、第3図はそのより詳細な構成を示す
ブロック図である。
本発明のデータ処理装置の内部を機能的に大きく分け
ると、命令フェッチ部21,命令デコード部22,PC計算部2
3,オペランドアドレス計算部24,マイクロROM部25,デー
タ演算部26,外部バスインターフェイス部27に分かれ
る。
第2図ではその他に、CPU外部へアドレスを出力する
ためのアドレス出力回路28と、CPU外部とデータを入出
力するためのデータ入出力回路29とを他の機能ブロック
部と分けて示した。
なお、101〜111はデータ及びアドレスを転送するため
の内部バスである。
(2.1)「命令フェッチ部」 命令フェッチ部21にはブランチバッファ、命令キュー
30とその制御部等があり、次にフェッチすべき命令のア
ドレスを決定してブランチバッファあるいはCPU外部の
メモリから命令をフェッチする。またブランチバッファ
への命令登録をも行う。
ブランチバッファは小規模であるためセレクティブキ
ャッシュとして動作する。
ブランチバッファの動作の詳細に関しては特開昭63-5
6731号に開示されている。
次にフェッチすべき命令のアドレスは、命令キュー30
へ入力すべき命令のアドレスとして専用のカウンタにて
計算される。分岐あるいはジャンプが発生した場合に
は、新たな命令のアドレスがPC計算部23あるいはデータ
演算部26からCAバス103を介して転送されて来る。
CPU外部のメモリから命令をフェッチする場合は、CA
バス103,外部バスインターフェイス部27を通じてフェッ
チすべき命令のアドレスがアドレス出力回路28からCPU
外部へ出力されることにより、データ入出力回路29から
DDバス101を介して命令コードがフェッチされる。
そして、バッファリングした命令コードの内、次にデ
コードすべき命令コードが命令デコード部22へ出力され
る。
(2.2)「命令デコード部」 命令デコード部22においては、基本的には16ビット
(ハーフワード)単位で命令コードをデコードする。
命令フェッチ部21からこの命令デコード部22へ取込ま
れた命令コードはIバス105を介して各ブロックへ送ら
れる。
命令デコード部22には、1段目の命令デコードを行う
メインデコーダ31,2命令の並列実行を行うために限られ
た命令のみをデコードするサブデコーダ32,メインデコ
ーダ31の出力を更にデコードしてマイクロROMのエント
リアドレスを生成する第2デコーダ36の3個のデコーダ
が含まれている。
更に、メインデコーダ31には、第1ハーフワードに含
まれるオペレーションコードをデコードするFHWデコー
ダ,第2,第3ハーフワードに含まれるオペレーションコ
ードをデコードするNFHWデコーダ,アドレッシングモー
ドをデコードするアドレッシングモードデコーダが含ま
れる。これらFHWデコーダ,NFHWデコーダ,アドレッシン
グモードデコーダを一括してメインデコーダと称する。
また命令デコード部22には、条件分岐命令の分岐予測
を行う分岐予測機構,2命令の並列実行が可能か否かを判
断するサブコード有効判定回路34,命令固有の即値ある
いはアドレス計算に必要なディスプレースメントの取込
み及び符号拡張を行う拡張データ処理部33,オペランド
アドレス計算の際のパイプラインコンフリクトをチェッ
クするアドレス計算コンフリクトチェク部39,デコード
結果の値を一時的に保持するためのDコードラッチ35,
ラッチ37,サブコードラッチ38等も含まれている。
命令デコード部22は命令フェッチ部21から入力された
命令コードを2クロックにつき0〜6バイトずつデコー
ドする。2命令を並列実行する場合には、最大2命令を
同時にデコードする。デコード結果の内、データ演算部
26での演算に関係する情報がマイクロROM部25へ、オペ
ランドアドレス計算に関係する情報がオペランドアドレ
ス計算部24へ、PC計算に関係する情報がPC計算部23へ、
命令キュー30の出力ポインタ制御等の情報が命令フェッ
チ部21へそれぞれ出力される。
(2.3)「マイクロROM部」 マイクロROM部25には、主にデータ演算部26を制御す
るマイクロプログラムが格納されているマイクロROM42,
マイクロシーケンス制御部41,マイクロ命令デコーダ44,
2命令の並列実行を行う場合に後ろ側の命令をハードワ
イヤードでデコードするサブコードデコーダ43,命令デ
コード部22から取込まれた信号群の値を一時保持するた
めのRコードラッチ40等が含まれる。
マイクロ命令はマイクロROM42から2クロックサイク
ルに1度読出される。マイクロシーケンス制御部41はマ
イクロプログラムで示されるシーケンス処理の他に、例
外,割込及びトラップ(この3つを合わせてEITと称す
る)の処理をハードウェア的に受付ける。
マイクロROM部25には命令コードに依存しない割込み
あるいは演算実行結果によるフラッグ情報と、第2デコ
ーダ36の出力等の命令デコード部22の出力が入力され
る。
マイクロ命令デコーダ44及びサブコードデコーダ43の
出力は主にデータ演算部26に対して出力されるが、ジャ
ンプ命令の実行による他の先行処理中止情報等の一部の
情報は他のブロックへも出力される。
(2.4)「オペランドアドレス計算部」 オペランドアドレス計算部24は命令デコード部22のア
ドレッシングモードデコーダ等から出力されたオペラン
ドアドレス計算に関係する情報によりハードワイヤード
制御される。このブロックではオペランドのアドレス計
算に関するほとんどの処理が行われる。メモリ間接アド
レッシングのためのメモリアクセスのアドレス及びオペ
ランドアドレスがメモリにマップされたI/0領域に入る
か否かのチェックも行われる。
アドレス計算結果は外部バスインターフェイス部27へ
送られる。アドレス計算に必要な汎用レジスタ及びプロ
グラムカウンタの値はデータ演算部26及びPC計算部23か
らAバス104を介して取込まれる。
メモリ間接アドレッシングを行う際は、外部バスイン
ターフェイス部27を通じてアドレス出力回路28からCPU
外部へ参照すべきメモリアドレスが出力されることによ
り、データ入出力部29から入力された間接アドレス値が
DDバス101,命令デコード部22,DISPバス102を介して取込
まれる。
(2.5)「PC計算部」 PC計算部23は命令デコード部22から出力されるPC計算
に関係する情報によりハードワイヤードに制御され、命
令のPC値を計算する。
本実施例では、本発明のデータ処理装置は可変長命令
セットを有しており、命令をデコードしなければその命
令の長さが判らない。このため、PC計算部23は命令デコ
ード部22から出力される命令長をデコード中の命令のPC
値に加算することにより次の命令のPC値を作り出す。
また、命令デコード部22が分岐命令をデコードしてデ
コード段階での分岐を指示した場合は、PC計算部23は命
令長の代わりに分岐変位を分岐命令のPC値に加算するこ
とにより分岐命令のPC値を計算する。このように分岐命
令に対して命令デコード段階において予め分岐すること
を本発明のデータ処理装置ではプリブランチと称する。
プリブランチ処理に関しては特開昭63-59630号及び特
開昭63-55639号公報に詳しく開示されている。
PC計算部23による計算結果は各命令のPC値として命令
のデコード結果と共に出力される他、プリブランチ時に
は次のデコードされるべき命令のアドレスとして命令フ
ェッチ部21へ出力される。またPC計算部23での計算結果
は命令デコード部22において次にデコードされる命令の
分岐予測のためのアドレスとしても使用される。
分岐予測に関しては特開昭63-175934号公報に詳しく
開示されている。
(2.6)「データ演算部」 データ演算部26は実行制御部45により制御され、マイ
クロROM部25の出力情報に従って各命令の機能を実現す
るために必要な演算をレジスタファイル52と演算器とで
実行する。
実行制御部45は、命令実行に必要なメモリアクセスの
制御も行う。
演算対象となるオペランドがアドレスあるいは即値で
ある場合は、オペランドアドレス計算部24で計算された
アドレスを外部バスインターフェイス部27を通じてアド
レスレジスタ群48に取込む。また、演算対象となるオペ
ランドが外部メモリ上にある場合は、アドレス計算部24
にて計算されたアドレスをバスインターフェイス部27が
アドレス出力回路28から出力し、フェッチしたオペラン
ドをデータ入出力回路29からDDバス101を介してメモリ
データレジスタ群58に取込む。
演算器としてはALU53,バレルシフタ54,プライオリテ
ィエンコーダ55更にはカウンタ56,スタックポインタの
インクリメント/デクリメント等を行うSP演算部49,シ
フトレジスタ等がある。
汎用レジスタ,ワーキングレジスタを含むレジスタフ
ァイル52,SP演算部49と主な演算器との間はS1バス106,S
2バス107,D0バス108の3本のバスにて結合されており、
1個のレジスタ間演算を指示する1マイクロ命令は2ク
ロックサイクルで処理される。
また、2命令を並列実行出来るようにメインのALU53
とは独立して動作可能なサブALU59が備えられており、
レジスタファイル52,SP演算部49とSAバス109,SBバス11
0,Dバス111の三つの専用バスで結合されている。
この他、定数ROM57,プロセッサの状態を制御するフィ
ールド及び実行結果を反映するフラグ等からなるプロセ
ッサステータスワード(PSW)51,データ処理装置に対し
て種々の制御を行うための制御レジスタ群50,メモリア
クセスを行うアドレスを格納しインクリメント/デクリ
メントが可能なアドレスレジスタ群48,メモリから取込
まれたデータ及びメモリに書込まれるデータを格納する
ためのメモリデータレジスタ群58等がある。
第37図はPSW51の下位8ビットの構成を示す模式図で
ある。
PSW51の下位8ビットが演算結果を示すフラグとして
割付けられている。これらの各フラグが示す意味は以下
の如くである。
ビット番号26のFフラグは汎用フラグである。このF
フラグは命令によって意味が異なり、各命令それぞれに
応じて設定条件が規定されている。
ビット番号27のXフラグは拡張フラグである。このX
フラグは多倍長の桁上がりを示し、通常のキャリーフラ
グに相当する。
ビット番号28のVフラグはオーバフローフラグであ
り、演算結果がその命令で指定されているデスティネー
ションサイズでは表現不可能であることを示す。
ビット番号29のLフラグは小なりフラグであり、減
算,比較命令において第2オペランドが第1オペランド
より小であることを示す。また、このLフラグは符号付
き整数の演算では、演算結果がオーバフローを含めて負
になったことを示す。
ビット番号30のMフラグは、演算結果のMSBを示す。
ビット番号31のZフラグは、演算結果が0になったこ
とを示す。
命令実行時にいずれのフラグが更新されるかは、それ
ぞれの命令について規定されている。
データ演算時にCPU外部のメモリをアクセスする必要
がある場合は、実行制御部45の指示によりアドレスレジ
スタ群48に格納されているアドレスが外部バスインター
フェイス部27を通じてアドレス出力回路28からCPU外部
へ出力されることにより、データ入出力回路29,DDバス1
01を通じて目的のデータがメモリデータレジスタ群58に
フェッチされる。
CPU外部のメモリにデータをストアする場合は、アド
レスレジスタ群48に格納されているアドレスを外部バス
インターフェイス部27を通じてアドレス出力回路28から
出力すると同時に、メモリデータレジスタ群58に格納さ
れているデータをDDバス101を介してデータ入出力回路2
9からCPU外部へ出力してメモリへの書込みを実行する。
オペランドストアを効率的に実行するために、データ
演算部26には4バイトのストアバッファが備えられてい
る。このストアバッファの管理も実行制御部45で行われ
る。
ジャンプ命令の処理あるいは例外処理等を行って新た
な命令アドレスをデータ演算部26が得た場合は、ジャン
プ先アドレスをCAバス103を介して命令フェッチ部21とP
C計算部23へ出力する。
(2.7)「外部バスインターフェイス部」 外部バスインターフェイス部27は本発明のデータ処理
装置の外部バスでの通信を制御する。
メモリのアクセスは総てクロックに同期して行われ、
最小2クロックサイクルで行うことができる。
メモリに対するアクセス要求は命令フェッチ部21、オ
ペランドアドレス計算部24及びデータ演算部26から独立
に生じる。
外部バスインターフェイス部27はこれらのメモリアク
セス要求を調停する。更にメモリとCPUとを結ぶデータ
バスサイズである32ビット(1ワード)の整置境界を跨
ぐメモリ番地にあるデータのアクセスは、このブロック
内で自動的にワード境界を跨ぐことが検知されて2回の
メモリアクセスに分解されて行われる。
プリフェッチされるオペランドとストアされるオペラ
ンドとが重なる場合のコンフリクト防止及びストアオペ
ランドからフェッチオペランドへのバイパス処理もこの
外部バスインターフェイス部27で行われる。
(3)「パイプライン処理」 本発明のデータ処理装置は、データ演算部26において
1命令毎に処理を行う逐次実行モードと、2命令を並列
処理する並列実行モードとの2つの実行モードを備えて
いる。
以下、並列実行モードでの動作も含め、本発明のデー
タ処理装置のパイプライン処理方法について説明する。
(3.1)「クロック」 第30図は本発明のデータ処理装置のクロックのタイミ
ングチャートである。
本発明のデータ処理装置は外部から単相のクロックを
入力し、内部で2分周して非重複2相クロック信号(ク
ロック1とクロック2)を生成し、内部クロックとして
全体に供給している。
各パイプラインステージは、上述の非重複二相クロッ
クと制御信号との論理積をとった非重複4相クロック
(クロックA,クロックB,クロックC,クロックD)により
基本動作を論理的に規定している。従って、各パイプラ
インステージは1つの処理を最小2クロックサイクルで
処理することが可能である。
以下、クロック1,クロック2,クロックA,クロックB,ク
ロックC,クロックDがハイレベルである状態をそれぞれ
φ1,φ2,φA,φB,φC,φDと称す。
(3.2)「パイプライン機構」 本発明のデータ処理装置のパイプライン処理機構は第
1図に示す構成となる。
命令のプリフェッチを行う命令フェッチステージ(IF
ステージ)1,命令のデコードを行うデコードステージ
(Dステージ)2,オペランドのアドレス計算を行うオペ
ランドアドレス計算ステージ(Aステージ)3,マイクロ
ROMアクセス(特にRステージ6と称す)とオペランド
のプリフェッチ(特にOFステージ7と称す)を行うオペ
ランドフェッチステージ(Fステージ)4,命令の実行を
行う実行ステージ(Eステージ)5の5段構成をパイプ
ライン処理の基本とする。
Eステージ5では1段のストアバッファがあるほか、
高機能命令の一部は命令実行自体をパイプライン化する
ため、実際には5段以上のパイプライン処理効果があ
る。
各ステージは他のステージとは独立に動作し、理論上
は5つのステージが完全に独立動作する。各ステージは
1回の処理を最小2クロックサイクルで行うことができ
るので、理想的には2クロックサイクルごとに次々とパ
イプライン処理が進行する。
本発明のデータ処理装置にはメモリ−メモリ間演算,
メモリ間接アドレッシング等のような1回の基本パイプ
ライン処理のみでは処理不可能な命令があるが、本発明
のデータ処理装置はこれらの処理に対しても可能な限り
均衡したパイプライン処理が行えるように設計されてい
る。
複数のメモリオペランドを有する命令に対しては、メ
モリオペランドの数に基づいてデコード段階で複数のパ
イプライン処理単位(ステップコード)に分解してパイ
プライン処理を行う。
パイプライン処理単位の分解方法に関しては特願昭61
-236456号で詳しく述べられている。
また、並列実行モードでは、2命令が1つのステップ
コードとして処理される場合もある。
IFステージ1からDステージ2へ渡される情報は命令
コード11そのものである。
Dステージ2からAステージ3へ渡される情報は、命
令で指定された演算に関するコード(Dコード12と称
す)と、オペランドのアドレス計算に関係するコード
(Aコード13と称す)との2つがある。
Aステージ3からFステージ4へ渡される情報はマイ
クロプログラムルーチンのエントリ番地及びマイクロプ
ログラムへのパラメータなどを含むRコード14と、オペ
ランドのアドレスとアクセス方法指示情報などを含むF
コード15との2つである。
Fステージ4からEステージ5に渡される情報は演算
制御情報,リテラル等を含むEコード16と、オペラン
ド,オペランドアドレス等を含むSコード17との2つで
ある。
Eステージ5以外のステージで検出されたEITに対し
てはそのコードがEステージ5に到達するまではEIT処
理は起動しない。Eステージ5で処理されている命令の
みが実行段階の命令であり、IFステージ1〜Fステージ
4で処理されている命令はまだ実行段階に至っていない
のである。従って、Eステージ5以外で検出されたEIT
は検出したことがステップコード中に記録されて次のス
テージに伝えられるのみである。
(3.3)「各パイプラインステージの処理」 各パイプラインステージの入出力ステップコードには
第1図に示したように便宜上名前が付与されている。ま
たステップコードはオペレーションコードに関する処理
を行い、マイクロROMのエントリ番地及びEステージ5
に対するパラメータ等になる系列と、Eステージ5のマ
イクロ命令に対するオペランドになる系列との2系列が
ある。
(3.3.1)「命令フェッチステージ」 命令フェッチステージ(IFステージ)1は命令をメモ
リあるいはブランチバッファからフェッチして命令キュ
ー30へ入力し、Dステージ2に対して命令コード11を出
力する。
命令キュー30への入力は整置された4バイト単位で行
われる。メモリから命令をフェッチする際は、整置され
た4バイトにつき最小2クロックサイクルを要する。し
かし、ブランチバッファがヒットした場合は整置された
4バイトにつき1クロックサイクルでフェッチ可能であ
る。
命令キュー30の出力は命令デコードステージ1のクロ
ックに同期して動作し、出力ポインタにより2バイト単
位で管理されており、1クロックサイクル毎に32ビット
のデータを命令デコード部22のIバス105へ出力できる
ようになっている。
Dステージ1のφAで出力ポインタの指し示す位置か
ら32ビットのデータがIバス105へ出力され、命令デコ
ード部22からの指示により、出力ポインタの値が+0ま
たは+1インクリメントされる。
Dステージ1のφCで更新された出力ポインンタの指
し示す位置から32ビットのデータがIバス105へ出力さ
れ、命令デコード部21からの指示により、出力ポインタ
の値が+0,+1または+2インクリメントされる。
従って、命令キュー30は2クロックサイクルの間に最
大6バイトまで命令コードを出力できる。また分岐の直
後には命令キュー30をバイパスして命令基本部2バイト
を直接命令デコード部21に転送することもできる。
ブランチバッファへの命令の登録及びクリア等の制
御、プリフェッチ先命令アドレスの管理及び命令キュー
30の制御もIFステージ1で行われる。
IFステージ1で検出されるEITには、命令をメモリか
らフェッチする際のバスアクセス例外,メモリ保護違反
等によるアドレス変換例外がある。
(3.3.2)「命令デコードステージ」 命令デコードステージ(Dステージ)2はIFステージ
1から入力された命令コード11をデコードする。
命令のデコードは命令デコード部22のメインデコーダ
31及びサブデコーダ32を用いて、2クロックサイクル単
位で1度行ない、1回のデコード処理で0乃至6バイト
の命令コードを消費する。
φAでIバス105上の命令コード11が両デコーダ31,32
に取込まれる。
命令固有の即値及びアドレス計算に用いられるディス
プレースメント等の拡張データはφCでIバス105から
拡張データ処理部33へ取込まれ、符号拡張等の処理が行
われる。
サブコード有効判定回路34では、サブデコーダ32での
デコード結果が有効であるか否かが判定される。
1回のデコードでAステージ3に対してアドレス計算
情報であるAコード13と、オペレーションコードの中間
デコード結果であるDコード12とを出力する。Aコード
13にはアドレス計算を制御する制御コードと最大32ビッ
トのアドレス修飾情報とが、Dコード12には命令実行を
制御するための制御コードとリテラル情報とが含まれ
る。Dコード12はDコードラッチ35に保持される。
Dステージ2ではPC計算部23の制御,命令キュー30か
らの命令コードの出力制御も行う。
Dステージ2で検出されるEITには、予約命令例外及
びプリブランチ時の奇数アドレスジャンプトラップがあ
る。また、IFステージ1から転送されてきた各種EITは
ステップコード内へエンコードする処理をしてAステー
ジ3へ転送される。
(3.3.3)「オペランドアドレス計算ステージ」 オペランドアドレス計算ステージ(Aステージ)3は
処理が大きく2つに分かれる。1つは命令デコード部22
の第2デコーダ36を使用して、オペレーションコードの
後段デコードを行う処理で、他方はオペランドアドレス
計算部24でオペランドアドレスを計算する処理である。
オペレーションコードの後段デコード処理はDコード
ラッチ35に保持されているDコード12を入力とし、レジ
スタ及びメモリの書込み予約と、マイクロプログラムル
ーチンのエントリ番地とマイクロプログラムに対するパ
ラメータ等を含むRコード14の出力を行うことである。
Dコード12の一部はデコードされずにラッチ37,サブコ
ードラッチ38を経由してそのままRコード14となる。
Rコード14はマイクロROM部25のRコードラッチ40に
保持される。なお、レジスタ及びメモリの書込み予約
は、アドレス計算で参照したレジスタ及びメモリの内容
がパイプライン上を先行する命令で書換えられ、誤った
アドレス計算が行われるのを防ぐためのものである。こ
の書込み予約処理は、アドレス計算コンフリクトチェッ
ク部39で行われる。
レジスタ及びメモリの書込み予約に関しては、特願昭
62-144394号で詳しく述べられている。
オペランドアドレス計算処理はAコード13を入力と
し、オペランドアドレス計算部24で加算及びメモリ間接
参照を組合わせてアドレス計算を行い、その計算結果を
Fコード15として出力する。
この際、アドレス計算コンフリクトチェック部39にお
いてアドレス計算に伴うレジスタ及びメモリの読出し時
にコンフリクトチェックが行われ、先行命令がレジスタ
あるいはメモリに書込み処理を終了していないためコン
フリクトが指示されれば、先行命令がEステージ5で処
理され、書込み処理が終了するまで待つ。また、オペラ
ンドアドレスあるいはメモリ間接参照のアドレスがメモ
リにマップされたI/O領域に入るか否かのチェックも行
われる。
Aステージ3で検出されるEITには予約命令例外,特
権命令例外,バスアクセス例外,アドレス変換例外,メ
モリ間接アドレッシング時のオペランドブレイクポイン
トヒットによるセルフデバッグトラップがある。
これらのEIT検出情報はRコード14及びFコード15に
反映される。Dコード12,Aコード13自体がEITを起こし
たことを示していれば、Aステージ3はそのコードに対
してアドレス計算処理をせず、そのEITをRコード14及
びFコード15に伝える。
(3.3.4)「マイクロROMアクセスステージ」 オペランドフェッチステージ(Fステージ)4も処理
が大きく2つに分かれる。1つはマイクロROM42のアク
セス処理であり、特にRステージ6と称される。他方は
オペランドプリフェッチ処理であり、特にOFステージ7
と称される。Rステージ6とOFステージ7とは必ずしも
同時に動作するわけではなく、メモリアクセス権が獲得
できるか否か等に依存して、独立に動作する。
Rステージ6はRコードラッチ40に保持されているR
コード14に対して次のEステージ5での実行制御コード
であるEコード16を生成する。
Rコード14中のマイクロエントリアドレスでマイクロ
ROM42のアクセスが行われ、読出されたマイクロ命令が
マイクロ命令デコーダ44でデコードされる。Rコード14
の一部はサブコードデコーダ43でハードワイヤードにデ
コードされる。1つのRコード14に対する処理が2つ以
上のマイクロプログラムステップに分解される場合、マ
イクロROM42はEステージ5で使用され、次のRコード1
4はマイクロROMアクセス待ちになる。
マイクロ命令のシーケンス管理はマイクロシーケンス
制御部41で行われる。Rコード14に対するマイクロROM4
2のアクセスが行われるのはその前のEステージ5での
最後のマイクロ命令実行時である。本発明のデータ処理
装置ではほとんどの基本命令は1マイクロプログラムス
テップで行われるため、実際にはRコード14に対するマ
イクロROM42のアクセスが次々と行われることが多い。
Rステージ6で検出されるEITには、PCブレークポイ
ントヒットによるセルフデバッグトラップがあり、検出
情報はEコード16に伝えられる。
Rコード14が命令処理再実行型のEIT検出を示してい
る場合はそのEIT処理に対するマイクロプログラムが実
行される。Rコード14が奇数アドレスジャンプトラップ
を示している場合はRステージ6はそれをEコード16に
伝える。これはプリブランチに対するもので、Eステー
ジ5ではそのEコード16で分岐が生じなければそのプリ
ブランチを有効として奇数アドレスジャンプトラップを
発生する。
(3.3.5)「オペランドフェッチステージ」 オペランドフェッチステージ(OFステージ)7はFス
テージ4での上述の2つの処理の内のオペランドプリフ
ェッチ処理を行う。
オペランドプリフェッチはFコード15を入力とし、フ
ェッチしたオペランドとそのアドレスとをSコード17と
して出力する。オペランドアドレスはアドレスレジスタ
群48に、オペランドデータはメモリデータレジスタ群58
にそれぞれ格納される。
1つのFコード15ではワード境界を跨いでもよいが、
4バイト以下のオペランドフェッチを指定する。Fコー
ド15にはオペランドのアクセスを行うか否かの指定も含
まれており、Aステージ3で計算されたオペランドアド
レス自体あるいは即値をEステージ5へ転送する場合に
はオペランドプリフェッチは行われず、Fコード15の内
容がSコード17としてアドレスレジスタ群48へ転送され
る。
プリフェッチしようとするオペランドとEステージ5
が書込み処理を行おうとするオペランドとが一致する場
合は、オペランドプリフェッチはメモリからは行われず
にバイパスして行なわれる。またI/O領域に対してはオ
ペランドプリフェッチを遅延させ、先行命令が総て完了
するまで待ってオペランドフェッチが行われる。
OFステージ7で検出されるEITにはバスアクセス例
外,アドレス変換例外,オペランドプリフェッチに対す
るブレイクポイントヒットによるセルフデバッグトラッ
プがある。
Fコード15がセルフデバッグトラップ以外のEITを示
している場合はそれがSコード17へ転送され、オペラン
ドプリフェッチは行われない。Fコード15がセルフデバ
ッグトラップを示している場合はそのFコード15に対し
てEITを示していない場合と同じ処理が行われると共に
セルフデバッグトラップがSコード17へ伝えられる。
(3.3.6)「実行ステージ」 実行ステージ(Eステージ)5はEコード16,Sコード
17を入力として動作する。このEステージ5が命令を実
行するステージであり、Fステージ4以前のステージで
行われた処理はすべてEステージ5のための前処理であ
る。
Eステージ5でジャンプ命令が実行されたり、EIT処
理が起動されたりした場合は、IFステージ1〜Fステー
ジ4までの処理はすべて無効にされる。
Eステージ5はマイクロプログラムにより制御され、
Rコード14に示されたマイクロプログラムルーチンのエ
ントリ番地からの一連のマイクロ命令を実行することに
より命令を実行する。
マイクロROMの読出しとマイクロ命令の実行とはパイ
プライン化されて行われる。従って、マイクロプログラ
ムでの条件分岐は関連する演算処理の1ステップ後に行
われる。また、Eステージ5はデータ演算部26にあるス
トアバッファを利用して、4バイト以内のオペランドス
トアと次のマイクロ命令実行とをパイプライン処理する
ことも可能である。
また、並列実行モードではサブALU59を他の演算器と
独立に動作させることにより2命令の並列実行も可能で
ある。
Eステージ5ではAステージ3で行ったレジスタある
いはメモリに対する書込み予約をオペランドの書込みの
後に解除する。
また条件分岐命令がEステージ35で分岐を発生した場
合はその条件分岐命令に対する分岐予測が誤っていたの
であるから、分岐履歴の書換えが行われる。
Eステージ5で検出されるEITにはバスアクセス例
外,アドレス変換例外,セルフデバッグトラップ,奇数
アドレスジャンプトラップ,予約機能例外,不正オペラ
ンド例外,予約スタックフォーマット例外,ゼロ除算ト
ラップ,無条件トラップ,条件トラップ,遅延コンテキ
ストトラップ,外部割込,遅延割込,リセット割込,シ
ステム障害がある。
Eステージ5で検出されたEITは総てEIT処理される
が、Eステージ5以前のIFステージ1〜Fステージ4の
間で検出されRコード14あるいはSコード17に反映され
ているEITは必ずしもEIT処理されるとは限らない。
IFステージ1〜Fステージ4の間で検出されたが、先
行の命令がEステージ5でジャンプ命令が実行された等
の原因でEステージ5まで到達しなかったEITはすべて
キャンセルされる。そのEITを発生した命令はそもそも
実行されなかったことになる。
割込みは命令の切目でEステージ5で直接受付けら
れ、マイクロプログラムにより必要な処理が実行され
る。その他の各種EITの処理もマイクロプログラムによ
り行われる。
(3.4)「各パイプラインステージの状態制御」 パイプラインの各ステージは入力ラッチと出力ラッチ
とを備え、他のステージとは独立に動作することを基本
とする。
各ステージは1つ前に行った処理が終了し、その処理
結果を出力ラッチから次のステージの入力ラッチへ転送
し、自身のステージの入力ラッチに次の処理に必要な入
力信号の総てが揃えば次の処理を開始する。
即ち、各ステージは1つ前段のステージから出力され
てくる次の処理に対する入力信号の総てが有効となり、
現在の処理結果を後段のステージの入力ラッチへ転送し
て出力ラッチが空になると次の処理を開始する。
各ステージが動作を開始する1つ前のクロックタイミ
ングで入力信号が総て揃っている必要がある。入力信号
が揃っていないと、そのステージは待ち状態(入力待
ち)になる。出力ラッチから次のステージの入力ラッチ
への転送を行う際は次のステージの入力ラッチが空き状
態になっている必要があり、次のステージの入力ラッチ
が空きでない場合もパイプラインステージは待ち状態
(出力待ち)になる。必要なメモリアクセス権が獲得出
来なかったり、処理しているメモリアクセスにウエイト
が挿入されたり、その他のパイプラインコンフリクトが
生じると、各ステージの処理自体が遅延する。
(3.5)「プログラムカウンタの管理」 本発明のデータ処理装置のパイプライン上に存在する
ステップコードは総て別命令に対応するものである可能
性があり、プログラムカウンタの値はステップコードそ
れぞれについて管理する。総てのステップコードはその
ステップコードが起因する命令のプログラムカウンタ値
を有する。ステップコードに付随して各パイプラインス
テージ上を流れるプログラムカウンタ値をステッププロ
グラムカウンタ(SPC)と称する。
並列実行モードにおいて2命令で1つのステップコー
ドを形成する場合には、2命令の内の先行する命令のア
ドレスがSPCとなる。
(4)「並列実行モードでの動作」 前述の如く本発明のデータ処理装置は、データ演算部
26において1命令毎に処理を行う逐次実行モードと、2
命令を並列処理可能な並列実行モードとの2つの実行モ
ードを備えている。
並列実行モードでは、ある条件を満たす場合、短縮形
フォーマットのリテラル−レジスタ間、レジスタ−レジ
スタ間のALU演算命令を一つ前の命令と並列実行する。
上述のある条件を満たすか否かの判定は命令デコード
部22のサブコード有効判定回路34が行う。
即ち、制御レジスタ群50に含まれている実行モード制
御レジスタ中の実行モード制御ビットがセットされるこ
とにより、実行モードが選択される。そして、このビッ
トが“1"にセットされると本発明のデータ処理装置は並
列実行モードで動作し、“0"にセットされると逐次実行
モードで動作する。
実行モード制御ビットの値はソフトウェアでセット可
能である。以下では、並列実行モードでの本発明のデー
タ処理装置の動作について詳細な説明を行う。
(4.1)「ステップコードの生成」 パイプライン中の処理単位となるステップコードはD
ステージ2において生成される。Dステージ2で生成さ
れるステップコードであるDコード12は、メインデコー
ダ31のデコード結果と、サブデコーダ32のデコード結果
とからなる。
以下、Dコード12,Rコード14,Eコード16の各ステップ
コードの内のメインデコーダ31のデコード結果に対応す
る部分をメインコードと称し、サブデコーダ32のデコー
ド結果に対応する部分をサブコードと称す。メインコー
ドとサブコードとは基本的に各パイプラインステージで
独立に処理される。
第4図にサブコード有効判定回路34の詳細な回路図を
示す。
図において、71〜74は4ビットの比較器であり、φA
で取込まれた2つの4ビットデータを比較し、両者が一
致した場合に“1"になる一致信号211〜214を出力する。
75はφAでのSVALID信号203の値を保持するラッチで
ある。各論理ゲートは直接ハードウェアに対応したもの
ではなく、論理的な意味を示すものである。また説明を
簡略化するためにタイミング制御のための信号は省略し
ている。
命令デコード部22では、φAでIバス105上へ出力さ
れている32ビットの命令コードのビット0からビット15
(以下、IBUS(0:15)と表記する)をメインデコーダ31
に、IBUS(16:31)をサブデコーダ32にそれぞれ取込ん
でデコード処理する。
レジスタ番号,サイズ等のパラメータとなるフィール
ドの切出し処理も各デコーダで行われる。
メインデコーダ31でデコード中の命令とサブデコーダ
32でデコード中の命令とが異なる命令である場合につい
てのみ2命令の並列実行が可能となるので、以下便宜上
メインデコーダ31でデコード中の命令を命令1、サブデ
コーダ32でデコード中の命令を命令2として説明する。
サブコード有効判定回路32はφAでレジスタ番号指定
フィールドに相当するIBUS(2:5),IBUS(12:15),IBUS
(18:21),IBUS(28:31)と、命令フェッチ部21から入
力されるIBUS(16:31)上のデータの有効/無効を示すS
VALID信号203(但し、“1":有効)を取込む。φAでのS
VALID信号203の値はラッチ75に保持される。
また、実行モード制御レジスタ中の実行モード制御ビ
ットの値がMODE信号201としてサブコード有効判定回路3
2へ入力されている。サブコード有効判定回路32では、
まず指定レジスタの一致検出を行う。
第31図は2つのレジスタ間演算を行う短縮形フォーマ
ットの命令が連続している場合のIバス105上の命令コ
ードの様子を示す模式図である。
この場合、REGL1,REGR1,REGL2,REGR2の4個のレジス
タが指定される。他の命令に関しても、オペランドがレ
ジスタで指定される場合には、レジスタ番号は上記レジ
スタ番号指定フィールドのどちらか一方あるいは両方で
指定される。
サブコード有効判定回路34は、命令2によりオペラン
ドとして指定されているレジスタが命令1により書換え
られるか否かをチェックする。
まず、IBUS(2:5)(REGL1)とIBUS(18:21)(REGL
2),IBUS(2:5)(REGL1)とIBUS(28:31)(REGR2),I
BUS(12:15)(REGR1)とIBUS(18:21)(REGL2),IBUS
(12:15)(REGR1)とIBUS(28:31)(REGR2)とがそれ
ぞれ比較器71〜74で比較され、一致した場合に“1"とな
るMATCHLL信号211,MATCHLR信号212,MATCHRL信号213,MAT
CHRR信号214が生成される。
また、メインデコーダ31とサブデコーダ32とでのデコ
ード結果の一部がサブコード有効判定回路32に入力され
る。メインデコーダ31からはALLOW信号204,NOEXT信号20
5,WRITERL信号206,WRITERR信号207が、サブデコーダ32
からはSUBVALID信号208,REFRL信号209,REFRR信号210が
それぞれ入力される。
ALLOW信号204は、サブコードが有効であり且つオペラ
ンドのコンフリクトが発生しなければ、2命令を並列に
実行してもよいことを示している。
ALLOW信号204は命令コードのみに依存する信号であ
り、各命令について規定されている。
メインデコーダ31でデコード中の命令が1命令の最後
のステップコードを生成する命令コードであり、命令の
処理シーケンスを変更する命令(ジャンプ命令,サブル
ーチンジャンプ命令等)ではなく、その命令を実行した
後にトラップを起動する可能性のある命令(除数がゼロ
である場合にゼロ除算トラップを起動する除算命令,シ
ステムコールを行うトラップ命令等)でない場合に、AL
LOW信号204は“1"になる。乗算命令のように複数のマイ
クロ命令によって実行される命令であってもよいし、複
数のステップコードに分解されて処理される命令の最終
ステップコードを生成する命令であってもよい。また、
メモリオペランドを有していても構わない。命令固有の
即値が後に続く場合は“0"になる。
NOEXT信号205は、命令1がオペランドのアドレス計算
のための拡張データを持たず、アドレッシングモードが
多段間接モードでない場合に“1"になる。NOEXT信号205
が“1"である場合は、サブデコーダ32に取込まれたIBUS
(16:31)が命令コードであることを示している。アド
レッシングモードとして、レジスタ直接モード,レジス
タ間接モード,スタックポップモード,スタックプッシ
ュモードが指定された場合あるいはアドレッシングモー
ドによってオペランドが指定されない場合に“1"にな
る。
WRITERL信号206は命令1がREGL1のフィールドで指定
されたレジスタの内容を書換える場合に“1"になる。し
かし、REGL1がレジスタ番号の指定フィールドになって
いない場合は必ず“0"になる。例えばL-formatの転送
(MOV)命令では“1"となる。
WRITERR信号207は命令1がREGR1のフィールドで指定
されたレジスタの内容を書換える場合に“1"になる。し
かし、REGR1がレジスタ番号の指定フィールドになって
いない場合には必ず“0"になる。例えばQ-formatの加算
(ADD)命令で、アドレッシングモードがレジスタ直接
モードである場合には“1"になる。
SUBVALID信号208はサブデコーダ32でのデコード結果
が有効であったことを示す信号であり、サブALU59で実
行可能な命令であることを示している。この信号は、命
令が2バイト命令であり、メモリオペランドを持たず、
2クロックサイクルで実行を終了するALU演算命令であ
る場合に“1"になる。
サブコード有効信号が“1"になる命令の一覧表を第32
図に示す。
サブコード有効信号が“1"になる命令として、オペラ
ンドとしてレジスタが指定された1オペランド命令,レ
ジスタ−レジスタ間,リテラル(命令コード中で指定さ
れた小さな即値)−レジスタ間の2オペランド命令が該
当する。
即ち、2バイト命令であり且つメモリオペランドを持
たず、2クロックサイクルで実行を終了するALU演算命
令の際に“1"になる。これらの命令では、命令の実行に
関して例外を発生することはない。
REFRL信号209は命令2がREGL2のフィールドで指定さ
れたレジスタの内容を参照する場合に“1"になる。REGL
2がレジスタ番号の指定フィールドになっていない場合
には必ず“0"になる。例えばS-formatのMOV命令では
“1"になる。
REFRR信号210は命令2がREGR2のフィールドで指定さ
れたレジスタの内容を参照する場合に“1"になる。REGR
2がレジスタ番号の指定フィールドになっていない場合
には必ず“0"になる。例えば、Q-formatのADD命令でア
ドレッシングモードがレジスタ直接モードである場合に
“1"になる。
これらの信号を基にサブコード有効判定回路34では2
命令の並列実行が可能か否かを判定し、サブコード有効
信号202を出力する。各比較器71〜74の比較結果とメイ
ンデコーダ31及びサブデコーダ32からの入力とを基に、
命令2で参照するレジスタが命令1で書換えられるか否
かをチェックする。もしこの2命令間でオペランドのコ
ンフリクトが発生しなければ、NOCONF信号215は“1"に
なる。
本発明のデータ処理装置が並列実行モードで動作して
おり(MODE信号201=“1")、φAで取込まれた命令コ
ードの32ビット総てが有効であり(SVALID信号203=
“1")、命令1がサブコードを有効にすることを許可し
ており(ALLOW信号204=“1")、命令2がサブコードを
生成可能な命令であり(SUBVALID信号208=“1")、命
令1と命令2とでレジスタ間のコンフリクトが発生して
いない(NOCONF信号215=“1")場合にサブコード有効
信号202が“1"になる。
サブコード有効信号202が“0"である場合にはサブコ
ードは無効となり、後段のパイプラインステージでサブ
コードに関する処理は行われない。
命令デコード部22は命令キュー30の出力ポインタ制御
部及びPC計算部23へ使用命令長を出力している。また、
命令デコード部22は短縮形フォーマットの命令では、サ
ブコードが有効になった場合には1回のデコードにより
4バイトの命令コードを消費したことを命令キュー30の
出力制御部及びPC計算部23へ知らせる。この場合のステ
ップコードのPC(SPC)は、命令1のPC値となり、命令
2のPC値は計算されない。
以上のように、メインデコーダ31及びサブデコーダ32
のデコード結果によりDコード12及びAコード13が生成
される。生成されたDコード12はDコードラッチ35に保
持される。サブDコードはサブコード部35Aに格納され
る。
サブDコードの構成を第33図の模式図に示す。オペラ
ンドサイズ,ソースとデスティネーションのレジスタ番
号,中間デコード結果である中間コード,リテラル,デ
スティネーションレジスタへの書込みを行う場合は“1"
になるレジスタ書込み予約制御信号及びサブコード有効
信号で構成されている。リテラルは指定されたリテラル
値が8ビットにゼロ拡張されている。サブコード有効信
号にはサブコード有効判定回路から出力されるSUBCODEV
信号202の値がそのままセットされる。
以上のように、サブコードが有効となる場合は2つの
命令で1つのステップコードが生成され、後段のパイプ
ラインステージでこのステップコードがパイプラインの
1つの処理単位として処理されていく。
(4.2)「ステップコードの処理」 サブコードが有効な場合の後段のパイプラインステー
ジでの処理について説明する。
Aステージ3ではメインコードに関しては通常の処理
が行われる。中間デコード結果は、第2デコーダ36でデ
コードされ、その結果がラッチ37の内容と共にRコード
ラッチ40へ出力される。サブコードに関しては、レジス
タへの書込みが行われる場合のみ、レジスタの書込み予
約を行う。レジスタ書込み予約制御信号以外の信号はサ
ブコードラッチ38に一時保持され、Rコードラッチ40の
サブコード部40Aへ出力される。
サブRコードの内容を第34図に示す。サブDコードの
レジスタ書込み信号以外の部分がそのままサブRコード
となっている。メモリオペランドがある場合には、アド
レス計算部24でアドレス計算が行われる。
Rステージ6ではメインコードに関してマイクロROM4
2のアクセス及びマイクロROM42から読出されたマイクロ
命令のデコードを行い、実行制御信号を生成する。ま
た、サブコードに関しては、ハードワイヤードにデコー
ドを行い、レジスタファイル52あるいはSP演算部49から
SAバス109,SBバス110への出力制御、サブALU59の演算制
御、Dバス111からレジスタファイル52あるいはSP演算
部49への入力制御及びフラグ制御のための信号が生成さ
れる。これらの信号は、実行制御部45のサブALU制御部4
6,フラグ制御部47等へ送られる。サブコードに関するこ
れらの信号は、命令1に対する最終マイクロ命令が読出
された場合に有効となる。
OFステージ7では必要に応じてオペランドのフェッチ
が行われる。
Eステージ5ではデータ演算部26において命令の実行
が行われる。
メインコードの処理は、マイクロ命令の指示に従って
ALU53あるいはバレルシフタ54等の演算器により行われ
る。必要なデータの転送は、S1バス106,S2バス107,D0バ
ス108を介して行われる。
サブコードの処理は、命令1の最終のマイクロ命令の
実行サイクルに同期して、サブALU59で行われる。選択
されたレジスタの内容がレジスタファイル52あるいはSP
演算部49からSAバス109,SBバス110へ読出される。ソー
スオペランドとしてリテラルが指定されている場合に
は、8ビットのリテラル値がゼロ拡張されてSAバス109
へ読出される。SAバス109,SBバス110の内容がサブALU59
へ入力されてサブALU制御部46の制御により指定された
演算が行われ、演算結果がDバス111を介してレジスタ
ファイル52あるいはSP演算部49へ書戻される。
命令1の最終マイクロステップでD0バス108から書込
まれるレジスタとDバス111から書込まれるレジスタと
が同じである場合にはDバス111から書込まれる。サブA
LU59の演算結果と命令1の最終マイクロ命令の演算結果
とによりPSW51のフラグの更新が行われる。
第39図はPSW51のフラグを更新するための構成を示す
ブロック図である。なおこの第39図は第4図に示した本
発明のデータ処理装置の詳細な構成を示すブロック図か
らフラグ更新に関係する部分のみを抜出したものであ
る。
命令実行の結果に応じて変化するフラグはそれぞれの
命令に応じて規定されている。即ち、マイクロ命令デコ
ーダ44及びサブコードデコーダ43は、各命令の実行時に
いずれの演算器のいずれの演算結果をいずれのフラグに
反映させるかを示す情報を出力する。この情報はフラグ
制御部47に入力されている。
フラグ制御部47からは、命令の実行順序を反映して、
各フラグの更新制御信号がPSW51へ出力される。この
際、サブALU59で処理される命令が実行順において後の
命令であるため、各フラグの更新に関して、サブコード
デコーダ43から入力された更新情報が優先される。
PSW51では、サブALU59,ALU53,バレルシフタ54,プライ
オリティエンコーダ55,カウンタ56のPSWの更新ソースと
なる演算結果が入力されており、フラグ制御部47から入
力された更新制御信号に従って各命令の終了時に各フラ
グの更新処理が行われる。
従って、命令2の実行結果によって変化するフラグに
はサブALU59での演算結果が反映され、命令2の実行結
果では変化せずに命令1の実行結果により変化するフラ
グには命令1の演算結果が反映される。
命令1の実行結果によっても命令2の実行結果によっ
ても変化しないフラグは変化しない。
(4.3)「EIT処理」 2バイト命令に関してサブコードが有効になった場合
には命令2に関してセルフデバッグトラップ以外のEIT
が起動されることはない。
命令1に関して例外が検出された場合には命令2に関
する処理も行われず、命令1から処理を再実行する。
命令1が複数のマイクロ命令により処理される場合に
も、命令2の処理は命令1の最終マイクロ命令に同期し
て処理されるため、命令1で例外が検出されたにも拘わ
らず命令2を実行してしまうことはない。
命令1でストアバッファ関連以外のトラップを起こす
命令では、ALLOW信号204は必ず“0"になる。これは、ト
ラップに関するEIT処理ハンドラから元のプログラムへ
復帰する場合は、トラップを起こした次の命令から処理
が再開されるためである。例えば、ゼロ除算トラップを
起こす可能性がある除算命令では、ALLOW信号204は“0"
になる。
ストアバッファ処理に関して発生するトラップ(バス
アクセストラップなど)は命令の切目で受付けられる。
従って、命令1と命令2との間で受付ける必要はない。
また、外部割込みは命令の切目で受付けられるが、実行
中のコンテキストとは無関係であり、命令1と命令2と
の間で受付ける必要はなく、命令1の実行前、あるいは
命令2の実行後に受付ければよい。
以上に述べたように、本発明のデータ処理装置では並
列実行モードにおいても逐次実行モードと全く同様のEI
T処理を行えばよく、並列実行モードでのEIT処理のため
に特別な機能を付加する必要はない。
なお、本発明のデータ処理装置がサポートしているデ
バッグ機能(PCブレイク,オペランドブレイク,トレー
ス)を用いてプログラムのデバッグを行う場合には、各
命令毎にデバッグ事象の検出チェックを行う必要があ
り、動作モードとして逐次実行モードを選択しておく必
要がある。
(4.4)「実行例」 次に本発明のデータ処理装置による命令の実行手順に
ついていくつかの具体例に従って説明する。
第35図(a)〜(d)にそれぞれ命令列の例を挙げ、
各命令列のパイプライン処理の様子を第36図(a)〜
(d)に示す。
第35図において、コロン(:)の後の文字はフォーマ
ットを、“♯”は即値を、“@( )”はカッコ内の値
をアドレスとするメモリ上にオペランドがあることをそ
れぞれ表す。
第36図のMOV1,MOV2は転送(MOV)命令が2つのステッ
プコードに分解されて処理されることを示している。MO
V1はMOV命令の第1ステップコードを、MOV2はMOV命令の
第2ステップコードをそれぞれ示している。なお、第36
図では説明の簡略化のために前後の命令は省略してあ
る。
また、第38図はPSW51中の各フラグについて、ADD命
令,SUB命令,MOV命令,MUL命令実行時にフラグ変化がある
か否かを示した表を示している。即ち、“+”はフラグ
が変化することを、“−”はフラグが変化しないことを
それぞれ示している。なお、本発明のデータ処理装置で
は転送命令についても、転送データに応じてフラグ変化
が行われる。
第35図(a)は、Qフォーマットの加算命令(ADD:
Q)と減算命令(SUB:Q)とが連続している場合を示して
いる。デスティネーションオペランドは共にレジスタ上
にある。この場合、双方共に2バイト命令であり、デス
ティネーションオペランドとして指定されているレジス
タも異なっているので、2命令の並列実行が可能であ
る。
具体的には、第36図(a)に示す如く、2つの命令が
1つのステップコードとして各パイプラインステージで
同時に処理されてゆく。加算処理がALU53で、減算処理
がサブALU59でそれぞれ実行される。
ところで、ADD命令とSUB命令とは第38図に示されてい
る如く、変化するフラグは同一である。従って、Xフラ
グ,Vフラグ,Lフラグ,Mフラグ,Zフラグのそれぞれにサブ
ALU59での減算結果が反映される。なお、Fフラグは変
化しない。
第35図(b)は、Gフォーマットの転送命令(MOV:
G)とQフォーマットの加算命令(ADD:Q)とが連続して
いる場合である。
MOV命令のソースオペランドとデスティネーションオ
ペランドとは共にメモリ上にある。この場合、MOV命令
の第2ステップコードとADD命令との並列実行が可能で
ある。
具体的には、第36図(b)に示す如く、2つの命令が
1つのステップコードとして各パイプラインステージで
同時に処理されていく。転送処理がALU53で、加算処理
がサブALU59でそれぞれ実行される。この場合、MOV命令
のデスティネーションオペランドのメモリへの書込み処
理はストアバッファで行われる。
ところで、第38図に示されている如く、MOV命令で変
化するフラグは総てADD命令でも変化する。従って、X
フラグ,Vフラグ,Lフラグ,Mフラグ,Zフラグのそれぞれに
サブALU59での加算結果が反映される。なお、Fフラグ
は変化しない。
第35図(c)は、Rフォーマットの乗算命令(MLU:
R)とQフォーマットの転送命令(MOV:Q)とが連続して
いる場合である。この場合、いずれも2バイト命令であ
り、MLU命令でデスティネーションオペランドとして指
定されているレジスタをMOV命令を参照しないので、2
命令の並列実行が可能である。
具体的には、第36図(c)に示す如く、2つの命令が
1つのステップコードとして各パイプラインステージで
同時に処理されていく。Eステージ5では、MLU命令の
最終ステップのサイクルでMOV命令に関する転送処理が
行われる。
ところで、第38図に示されている如く、MLU命令では
Vフラグ,Lフラグ,Mフラグ,Zフラグが変化し、MOV命令
ではVフラグ,Mフラグ,Zフラグが変化する。従って、V
フラグ,Mフラグ,ZフラグにはサブALU59での転送結果が
反映され、LフラグにはALU53での乗算結果が反映され
る。なお、Fフラグは変化しない。
第35図(d)は、Qフォーマットの算術シフト命令
(SHA:Q)とLフォーマットの減算命令(SUB:L)とが連
続している場合であり、オペランドのコンフリクトが起
こるために、2命令の並列実行が行えない例である。即
ちこの場合、双方共に2バイト命令であるが、SHA命令
で書換えられるレジスタR0の内容をSUB命令が参照する
ので、2命令の並列実行は不可能である。
具体的には第36図(d)に示す如く、2つの命令が各
々1つのステップコードとして各パイプラインステージ
で処理されていく。
以上に述べたように、本発明のデータ処理装置では命
令のデコード段階で複数の命令を同時にデコードし、演
算器等のハードウェアリソースあるいはオペランド等で
コンフリクトが起こらないことまでチェックし、複数の
命令が実行ステージ5で並列実行可能な場合には、複数
の命令をまとめて1つのパイプライン処理単位であるス
テップコードを生成し、後段のパイプラインステージで
このステップコードに対する処理を行う。この場合、実
行ステージ5では、複数の命令が並列実行され、フラグ
に関しても命令の実行順序に従って正しく更新される。
(5)「本発明の他の実施例」 上記実施例では、レジスタ−レジスタ間,リテラル−
レジスタ間の演算命令のみをサブコードとして生成可能
としているが、命令1がメモリオペランドを持たない場
合には命令2がメモリオペランドを持ってもよいし、拡
張部を持ってもよい。但しこの場合、アドレッシングモ
ードをデコードするデコーダが2つ必要になる。命令2
のオペランドがメモリ上にある場合、命令2でもバスア
クセスに関してEITを検出する可能性があるが、命令2
でEITを検出した場合にはEITを起こした命令アドレスを
得るためにPC値を補正する必要がある。アドレス加算器
を2つ持てば命令1と命令2とがそれぞれメモリオペラ
ンドを持つ場合にも対処できるが、制御が大変複雑にな
る。
また、上記実施例では、2命令を並列実行するために
メインのALU53とは別にサブALU59を備え、それぞれ異な
るバスでレジスタファイル52及びSP演算部49と結合して
いるが、ALU53とサブALU59との演算タイミングをずらせ
てレジスタファイル52あるいはSP演算部49とALU53間の
データ転送とレジスタファイル52あるいはSP演算部49と
ALU53間のデータ転送とを同一バスを用いて時分割して
行ってもよい。
更に、上記実施例では、2バイト命令のみをサブコー
ドとして生成可能にしているが、複数ステップコードに
分解される命令の第1ステップコードに対応する命令コ
ードでサブコードを形成するようにしてもよい。たとえ
ば、G-formatの第1ステップコードでアドレッシングモ
ードがレジスタ直接モードである場合はE-formatの第1
ステップコードをサブコードとして生成してもよい。こ
れらのサブコードでは、ソースオペランドとして指定さ
れた値をワーキングレジスタに退避する処理を行う。
上記実施例では、2命令を並列実行するためにメイン
のALU53とは別にサブALU59を設けているが、サブバレル
シフタ,サブプライオリティエンコーダ等を設けて、シ
フト命令あるいはビットサーチ命令を他の命令と並列に
実行してもよい。
また上記実施例では、サブALU59とレジスタファイル5
2,SP演算部49間をSAバス109,SBバス110,Dバス111の3つ
の専用バスにて接続しているが、サブコードを生成可能
な命令を転送命令,1オペランド命令,リテラル−レジス
タ間2オペランド命令に限れば、SBバス110は不要にな
る。また、転送命令でPSWを更新しない命令セットを処
理する際に、転送命令のみをサブコードとして生成する
場合には、サブALU59の代わりにSAバス109とDバス111
に結合されたラッチ等の転送経路を設けるのみでもよ
い。
上記実施例では、メインコードはマイクロ命令により
実行制御し、サブコードはハードワイヤードにデコード
して実行制御しているが、いずれもマイクロ命令で制御
するようにしてもよいし、あるいはいずれもハードワイ
ヤードに制御してもよい。
上記実施例では、命令1はメインのデータ演算器で、
命令2はサブALU59でそれぞれ処理しているが、たとえ
ば命令1がレジスタ−レジスタ間のALU演算命令で、命
令2がレジスタ上のオペランドのシフト命令であるよう
な場合、バレルシフタ54で命令2の処理を、サブALU59
で命令1をそれぞれ処理するようにしてもよい。
また、上記実施例では、各パイプラインステージでの
処理を最大2クロックサイクルで実行するように構成し
ているが、1クロックサイクルで各ステージの処理を行
うようにしてもよい。
上記実施例では、命令1が拡張データを有する場合は
2命令の並列実行は出来ないが、サブデコーダ32を複数
備えれば、メインデコーダが変位等の拡張部を有する場
合にも2命令を並列実行することが可能になる。
また上記実施例では、2命令の並列実行を可能にして
いるが、3以上の命令を並列実行することも勿論可能で
ある。
上記実施例では、可変長命令セットを処理対象として
いるが、RISC(Reduced Instruction Set Computer)の
ように固定長命令セットを処理するデータ処理装置に適
用してもよい。RISCでは基本的に演算がレジスタ間で実
行されるので、本発明を適用すればより一層の効果が発
揮される。
[発明の効果] 以上に詳述した如く本発明のデータ処理装置は第1の
発明では、第1の命令の実行によりフラグが更新される
と判断された場合、第1の命令による演算結果に基づい
てフラグを更新し、第1の命令の実行によりフラグが更
新されず、第2の命令の実行によりフラグが更新される
と判断された場合、第2の命令による演算結果に基づい
てフラグを更新するので、処理シーケンス中の第1の命
令とこれに先行する第2の命令とが並列実行される場
合、簡単なフラグ更新制御でもって何等矛盾なくフラグ
を更新することができ、制御が簡単、容易でありながら
高性能なデータ処理装置を得ることが可能になる。
また第2の発明では、第1の命令の実行により第1の
フラグが更新され、第2のフラグが更新されないと判断
され、かつ第2の命令の実行により第2のフラグが更新
されたと判断された場合、第1の演算器の演算結果に基
づいて第1のフラグを更新し、第2の演算器の演算結果
に基づいて第2のフラグを更新するので、複数のフラグ
を更新する場合でも簡単なフラグ更新制御でもって何等
矛盾なくフラグを更新することができ、制御が簡単,容
易でありながら高性能のデータ処理装置を得ることが可
能になる。
【図面の簡単な説明】
第1図は本発明のデータ処理装置のパイプライン処理機
構の構成を示すブロック図、 第2図は本発明のデータ処理装置の全体構成を示すブロ
ック図、 第3図は本発明のデータ処理装置の詳細な構成を示すブ
ロック図、 第4図はそのサブコード有効判定回路の詳細構成図、 第5図は従来のデータ処理装置のパイプライン処理の概
念を示すブロック図、 第6図は本発明のデータ処理装置が有する命令のメモリ
上での命令の並び方を示す模式図、 第7図乃至第15図は本発明のデータ処理装置の命令のフ
ォーマットを示す模式図、 第16図乃至第29図は本発明のデータ処理装置の命令のア
ドレッシングモードの説明のための模式図、 第30図は本発明のデータ処理装置のクロックのタイミン
グを示すタイミングチャート、 第31図は2つのレジスタ間演算を行う短縮形フォーマッ
トの命令が連続してある場合のIバス上の命令コードの
状態を示す模式図、 第32図は本発明のデータ処理装置のサブデコーダのデコ
ード処理対象となる命令の一覧表、 第33図は本発明のデータ処理装置のサブDコードのフォ
ーマットの模式図、 第34図は本発明のデータ処理装置のサブRコードのフォ
ーマットの模式図、 第35図は本発明のデータ処理装置による命令の実行状態
を説明するための命令列の模式図、 第36図は上述の命令列のパイプライン処理の状態を示す
模式図、 第37図はプロセッサ状態語(PSW)の下位8ビットの割
付けを示す模式図、 第38図はPSW中の各フラグがADD,SUB,MOV,MUL命令それぞ
れの実行時に変化するか否かを表す表を示す図、 第39図は本発明のデータ処理装置の構成中のフラグ更新
のための構成を示す模式図である。 31……メインデコーダ、32……サブデコーダ、34……サ
ブコード有効判定回路、45……実行制御部、47……フラ
グ制御部、51……プロセッサ状態語(PSW)、53……AL
U、58……メモリデータレジスタ群、59……サブALU なお、各図中同一符号は同一又は相当部分を示す。

Claims (2)

    (57)【特許請求の範囲】
  1. 【請求項1】1つの処理シーケンス中の第1の命令と、
    この第1の命令に先行する第2の命令とに従ってデータ
    が処理されるデータ処理装置において、 データを格納する複数のレジスタ、 前記第1の命令に従って前記複数のレジスタより出力さ
    れたデータを処理する第1の演算器、 前記第2の命令に従って前記複数のレジスタより出力さ
    れたデータを処理する第2の演算器、 前記第1の命令の実行により、プロセッサ状態語に含ま
    れ演算結果の情報を示すフラグが更新されるか否かを判
    断する第1の判断手段、 前記第2の命令の実行により、前記フラグが更新される
    か否かを判断する第2の判断手段、 前記第1および第2の演算器にそれぞれ前記第1および
    第2の命令による処理を並列実行させる命令実行手段、
    および 前記命令実行手段が前記第1および第2の命令による処
    理を並列実行させた際、 (a)前記第1の判断手段が、前記第1の命令の実行に
    より前記フラグが更新されると判断した場合、前記第1
    の命令による前記第1の演算器の演算結果に基づいて前
    記フラグを更新し、 (b)前記第1の判断手段が前記第1の命令の実行によ
    り前記フラグが更新されないと判断し、且つ前記第2の
    判断手段が前記第2の命令の実行により前記フラグが更
    新されると判断した場合、前記第2の命令による前記第
    2の演算器の演算結果に基づいて前記フラグを更新する
    フラグ更新手段 を備えたことを特徴とするデータ処理装置。
  2. 【請求項2】1つの処理シーケンス中の第1の命令と、
    この第1の命令に先行する第2の命令とに従ってデータ
    が処理されるデータ処理装置において、 データを格納する複数のレジスタ、 前記第1の命令に従って前記複数のレジスタより出力さ
    れたデータを処理する第1の演算器、 前記第2の命令に従って前記複数のレジスタより出力さ
    れたデータを処理する第2の演算器、 前記第1の命令の実行により、プロセッサ状態語に含ま
    れ演算結果の情報を示す第1のフラグおよび第2のフラ
    グがそれぞれ更新されるか否かを判断する第1の判断手
    段、 前記第2の命令の実行により、前記第1および第2フラ
    グがそれぞれ更新されるか否かを判断する第2の判断手
    段、 前記第1および第2の演算器にそれぞれ前記第1および
    第2の命令による処理を並列実行させる命令実行手段、
    および 前記命令実行手段が前記第1および第2の命令による処
    理を並列実行させた際、 (a)前記第1の判断手段が、前記第1の命令の実行に
    より前記第1のフラグが更新され、前記第2のフラグが
    更新されないとそれぞれ判断し、かつ(b)前記第2の
    判断手段が、前記第2の命令の実行により前記第2のフ
    ラグが更新されると判断した場合、 前記第1の命令による前記第1の演算器の演算結果に基
    づいて前記第1のフラグを更新し、前記第2の命令によ
    る前記第2の演算器の演算結果に基づいて前記第2のフ
    ラグを更新するフラグ更新手段 を備えたことを特徴とするデータ処理装置。
JP1313741A 1989-12-01 1989-12-01 デ―タ処理装置 Expired - Lifetime JP2507638B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP1313741A JP2507638B2 (ja) 1989-12-01 1989-12-01 デ―タ処理装置
US07/619,852 US5313644A (en) 1989-12-01 1990-11-28 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

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1313741A JP2507638B2 (ja) 1989-12-01 1989-12-01 デ―タ処理装置

Publications (2)

Publication Number Publication Date
JPH03174626A JPH03174626A (ja) 1991-07-29
JP2507638B2 true JP2507638B2 (ja) 1996-06-12

Family

ID=18044971

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1313741A Expired - Lifetime JP2507638B2 (ja) 1989-12-01 1989-12-01 デ―タ処理装置

Country Status (2)

Country Link
US (1) US5313644A (ja)
JP (1) JP2507638B2 (ja)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5544347A (en) 1990-09-24 1996-08-06 Emc Corporation Data storage system controlled remote data mirroring with respectively maintained data indices
JP3110866B2 (ja) * 1992-06-01 2000-11-20 株式会社東芝 マイクロプロセッサ
US5673409A (en) * 1993-03-31 1997-09-30 Vlsi Technology, Inc. Self-defining instruction size
JP3452655B2 (ja) * 1993-09-27 2003-09-29 株式会社日立製作所 ディジタル信号処理プロセッサおよびそれを用いて命令を実行する方法
US6393550B1 (en) * 1993-12-30 2002-05-21 Intel Corporation Method and apparatus for pipeline streamlining where resources are immediate or certainly retired
US6101597A (en) * 1993-12-30 2000-08-08 Intel Corporation Method and apparatus for maximum throughput scheduling of dependent operations in a pipelined processor
US6378062B1 (en) * 1994-01-04 2002-04-23 Intel Corporation Method and apparatus for performing a store operation
WO1995022102A1 (en) * 1994-02-08 1995-08-17 Meridian Semiconductor, Inc. Method and apparatus for simultaneously executing instructions in a pipelined microprocessor
US5553256A (en) * 1994-02-28 1996-09-03 Intel Corporation Apparatus for pipeline streamlining where resources are immediate or certainly retired
JP3543181B2 (ja) * 1994-11-09 2004-07-14 株式会社ルネサステクノロジ データ処理装置
JP2931890B2 (ja) * 1995-07-12 1999-08-09 三菱電機株式会社 データ処理装置
US6366999B1 (en) * 1998-01-28 2002-04-02 Bops, Inc. Methods and apparatus to support conditional execution in a VLIW-based array processor with subword execution
EP0942357A3 (en) * 1998-03-11 2000-03-22 Matsushita Electric Industrial Co., Ltd. Data processor compatible with a plurality of instruction formats
JP2000222208A (ja) 1999-01-29 2000-08-11 Mitsubishi Electric Corp 情報処理装置、命令割当て制御方法、命令割当て制御装置および命令割当て制御プログラムを記録したコンピュータで読取り可能な記録媒体
GB2382676B (en) * 2001-10-31 2005-09-07 Alphamosaic Ltd Data access in a processor
GB2382886B (en) * 2001-10-31 2006-03-15 Alphamosaic Ltd Vector processing system
US20060136608A1 (en) * 2004-12-22 2006-06-22 Gilbert Jeffrey D System and method for control registers accessed via private operations
KR100881670B1 (ko) * 2007-02-02 2009-02-06 삼성전자주식회사 데이터 수신 장치의 아날로그 블록의 제어 장치 및 방법
US8135975B2 (en) * 2007-03-09 2012-03-13 Analog Devices, Inc. Software programmable timing architecture
CN100530164C (zh) * 2007-12-29 2009-08-19 中国科学院计算技术研究所 一种risc处理器及其寄存器标志位处理方法
US8843730B2 (en) * 2011-09-09 2014-09-23 Qualcomm Incorporated Executing instruction packet with multiple instructions with same destination by performing logical operation on results of instructions and storing the result to the destination

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5526740A (en) * 1978-08-17 1980-02-26 Hitachi Ltd Pulse oscillation circuit
US4295193A (en) * 1979-06-29 1981-10-13 International Business Machines Corporation Machine for multiple instruction execution
JPS6028015B2 (ja) * 1980-08-28 1985-07-02 日本電気株式会社 情報処理装置
JPS58178464A (ja) * 1982-04-14 1983-10-19 Hitachi Ltd 並列演算処理装置
JPS5932045A (ja) * 1982-08-16 1984-02-21 Hitachi Ltd 情報処理装置
US4901235A (en) * 1983-10-28 1990-02-13 Data General Corporation Data processing system having unique multilevel microcode architecture
JPH0658631B2 (ja) * 1983-12-19 1994-08-03 株式会社日立製作所 デ−タ処理装置
DE3751503T2 (de) * 1986-03-26 1996-05-09 Hitachi Ltd Datenprozessor in Pipelinestruktur mit der Fähigkeit mehrere Befehle parallel zu dekodieren und auszuführen.
JPS63131230A (ja) * 1986-11-21 1988-06-03 Hitachi Ltd 情報処理装置
US4819155A (en) * 1987-06-01 1989-04-04 Wulf William A Apparatus for reading to and writing from memory streams of data while concurrently executing a plurality of data processing operations
JPH01150935A (ja) * 1987-12-08 1989-06-13 Matsushita Electric Ind Co Ltd 中央演算装置
JP2668987B2 (ja) * 1988-09-30 1997-10-27 松下電器産業株式会社 データ処理装置
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
US5150470A (en) * 1989-12-20 1992-09-22 International Business Machines Corporation Data processing system with instruction queue having tags indicating outstanding data status

Also Published As

Publication number Publication date
JPH03174626A (ja) 1991-07-29
US5313644A (en) 1994-05-17

Similar Documents

Publication Publication Date Title
JP2507638B2 (ja) デ―タ処理装置
US5091853A (en) Chained addressing mode pipelined processor which merges separately decoded parts of a multiple operation instruction
US6058471A (en) Data processing system capable of executing groups of instructions in parallel
JPH04260950A (ja) キャッシュメモリ装置
JPH0810428B2 (ja) データ処理装置
JPH081599B2 (ja) データ処理装置
US4945511A (en) Improved pipelined processor with two stage decoder for exchanging register values for similar operand instructions
US5502827A (en) Pipelined data processor for floating point and integer operation with exception handling
JPH081602B2 (ja) データ処理装置
JP2847974B2 (ja) データ処理装置
JPH07120284B2 (ja) データ処理装置
JP3578883B2 (ja) データ処理装置
JP3345787B2 (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
JP2504312B2 (ja) プライオリティエンコ―ダ及びそれを備えたデ―タ処理装置
US5745723A (en) Data processing system capable of execution of plural instructions in parallel
JPH0769806B2 (ja) データ処理装置
JP2646855B2 (ja) データ処理装置
JP2522048B2 (ja) マイクロプロセッサ及びそれを使用したデ―タ処理装置
JP2532560B2 (ja) 高機能な例外処理を行うデ―タ処理装置
JP2503223B2 (ja) 先行制御方式
JPH0769801B2 (ja) データ処理装置
JPH0769805B2 (ja) データ処理装置
JPH0769804B2 (ja) データ処理装置
JPH0769808B2 (ja) データ処理装置