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

データ処理装置

Info

Publication number
JPH03158928A
JPH03158928A JP1299395A JP29939589A JPH03158928A JP H03158928 A JPH03158928 A JP H03158928A JP 1299395 A JP1299395 A JP 1299395A JP 29939589 A JP29939589 A JP 29939589A JP H03158928 A JPH03158928 A JP H03158928A
Authority
JP
Japan
Prior art keywords
instruction
arithmetic
unit
exception
type
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
JP1299395A
Other languages
English (en)
Other versions
JP2581236B2 (ja
Inventor
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 JP1299395A priority Critical patent/JP2581236B2/ja
Publication of JPH03158928A publication Critical patent/JPH03158928A/ja
Priority to US08/439,716 priority patent/US5502827A/en
Application granted granted Critical
Publication of JP2581236B2 publication Critical patent/JP2581236B2/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, look ahead
    • G06F9/3861Recovery, e.g. branch miss-prediction, exception handling
    • G06F9/3865Recovery, e.g. branch miss-prediction, exception handling using deferred exception handling, e.g. exception flags

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)

Abstract

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

Description

【発明の詳細な説明】 [産業上の利用分野] 本発明はたとえば第1の種類の演算命令に加えてこれと
は独立して実行可能な第2の種類の演算命令との2種類
の演算命令の実行が可能なデータ処理装置、たとえば整
数演算機構に加えて、浮動小数点演算機構を備えたデー
タ処理装置に関し、より詳しくは、2種類の演算命令の
一方、たとえば浮動小数点演算命令の実行に際して発生
した例外の処理を効率よく行い得るデータ処理装置に関
するものである。
[従来の技術] 従来のデータ処理装置は命令を逐次的に実行するように
構成されているが、データ処理装置の高速化に伴い、命
令をパイプライン処理することにより性能を向上させた
データ処理装置が提案されるようになった。
そのような命令をパイプライン処理するデータ処理装置
としては例えば11.S、P、Na 4.402,04
2あるいは特開昭63−193230号公報等に詳しく
開示されている。
更に、データ処理装置の処理性能を向上させるために2
種類の演算機能、即ち浮動小数点演算機能と整数演算機
能とを1つの半導体チップ上に実装し、整数演算命令と
浮動小数点演算命令とを並列実行するデータ処理装置が
提案されている。
このような整数演算と浮動小数点演算とを並列実行する
データ処理装置としては例えばrLeslieKohn
 and 5ai−Wai Fu、”^1.000,0
00 TransistorMicroprocess
or+”  1989 1SSCCDigest  o
f  Paperspp、54−55Jに詳しく開示さ
れている。
ところで、浮動小数点演算は整数演算に比してより長い
実行時間を要する。このため、整数演算器と浮動小数点
演算器とを並列動作させて整数演算命令と浮動小数点演
算命令とを同時に実行する場合、浮動小数点演算命令の
実行に際して発生した例外がどのようなタイミングで受
付けられるかが問題となる。即ち、浮動小数点演算と整
数演算との処理速度の差に起因して、浮動小数点演算命
令の実行に際して発生した例外が検出されるまでに、そ
の浮動小数点演算命令よりもプログラム上で後に記述さ
れているいくつかの整数演算命令の実行が終了する可能
性がある。このため、浮動小数点演算例外の受付を必ず
次の命令実行前に行うようにした場合には、浮動小数点
演算例外の発生を浮動小数点演算の実行の都度、チエツ
クする必要が生じてデータ処理装置の性能向上の障害と
なる。
このため従来、浮動小数点演算命令の例外の受付を次の
浮動小数点演算命令の実行直前まで遅延させたり、ある
いは外部割込みとして受付けるデータ処理装置が提案さ
れている。
そのような浮動小数点演算命令の例外の受付を次の浮動
小数点命令実行直前にするかあるいは外部割込みとして
受付けるかをモード切換えするように構成されたデータ
処理装置としては、例えばri486 MICROPR
OC[!5SORIntel Corporation
 1989Jに詳しく開示されている。
[発明が解決しようとする課題] しかし、例外が発生した後に多くの命令が実行され、そ
の後にその例外が検出されたのでは例外の原因を特定す
ることが困難になる。このため、次の命令実行前に受付
けることは性能向上のためには却って障害になるとして
も、浮動小数点演算例外が発生した場合にはそれをなる
べく早期に検出する方が例外処理上は好都合である。
逆に、浮動小数点演算命令の例外の受付を次の浮動小数
点演算命令の実行直前まで遅延させると、その間に多く
の整数演算命令、ジャンプ命令等が実行されるため、例
外を発生した浮動小数点演算命令のアドレスあるいは例
外の原因を特定することが困難になる。
従来のデータ処理装置としてのたとえばインテル社IJ
i486マイクロブロセソサでは、浮動小数点演算命令
の例外を外部割込みとして受付けることにより、例外発
生から例外検出までの遅延を小さくしているが、このた
めに浮動小数点演算の例外を外部に出力する信号ビンを
新たに必要とする問題がある。また、マイクロプロセッ
サ外部にその他の外部割込みと浮動小数点演算の例外発
生を示す信号を調停する制御回路も必要となる。
[課題を解決するための手段] 本発明のデータ処理の第1の発明は、第1の演算命令と
しての整数演算命令を実行する第1の演算部としての整
数演算部と、整数演算部と並列に動作し第2の演算命令
としての浮動小数点演算命令を実行する第2の演算部と
しての浮動小数点演算部と、浮動小数点演算部で実行し
た命令で発生した浮動小数点演算トラップを受付けて例
外処理ハンドラを起動する実行制御部と、プロセッサ状
態語(PSW)の中にあり、実行制御部が浮動小数点演
算トラップを命令の切目で受付けるか、次の浮動小数点
演算命令の実行直前で受付けるかを切換えるレジスタと
してのPEビットを有する。
また、第2の発明は、実行制御部の制御により浮動小数
点演算トラップを受付けて例外処理ハンドラを起動する
際にPEビットの値を切換えるように構成している。
また、第3の発明は、実行制御部の制御により浮動小数
点演算トラップを受付けて例外処理ハンドラが起動され
、この例外処理ハンドラから復帰する際にF[!ビット
の値を切換えるように構成している。
また、第4及び第5の発明は、第1のオペラン1 2 ドと第2のオペランドとを対象として浮動小数点演算を
実行した際に浮動小数点演算トラップが発生した場合に
、実行制御部は各オペランドと例外検出の原因となった
演算結果、更に浮動小数点演算トラップを発生した浮動
小数点命令のアドレスと例外処理ハンドラからの戻り番
地等の情報を外部のメモリヘスドアするデータ入出力部
を備えている。
[作用] 本発明のデータ処理の第1の発明では、整数演算命令が
整数演算部で実行され、浮動小数点演算命令が整数演算
部と並列に動作する浮動小数点演算部で実行され、プロ
セッサ状態語の中のPEビットの値により浮動小数点演
算トラップの受付はタイミングが切換え可能な実行制御
部が例外処理ハンドラの起動を制御する。そして、PE
ビットが”1″である場合は、整数演算部で実行中の命
令の切目で浮動小数点演算トラップが即座に受付けられ
る。
一方、FBビットカぜ0″である場合は、浮動小数点演
算トラップが発生しても整数演算部での命令実行が継続
され、次の浮動小数点演算命令が浮動小数点演算部で実
行される直前で受付けられる。
また、本発明のデータ処理装置の第2の発明では、F[
!ビットが“1″である場合は、実行制御部の制御によ
り浮動小数点演算トラップがプログラム中の命令の切目
で受付けられ例外処理ハンドラが起動する際に、例外発
生時点のpsw値をスタックが退避され、更に例外処理
ベクトルの指定によりPEビットの値が“0″に切換え
られる。
本発明のデータ処理装置の第3の発明では、例外処理ハ
ンドラでは浮動小数点演算トラップの検出が浮動小数点
演算命令とウェイト命令の実行直前以外ではマスクした
状態で例外処理が行われるので、浮動小数点状態語の浮
動小数点演算トラップ発生状態がクリアされる。
また、例外処理ハンドラから復帰する際は、ハンドラ復
帰命令が実行されてスタックからフェッチPSW値がフ
ェッチされ、この値でPEビットの値が元の値に戻され
た上で元のプログラムへリターンする6 本発明のデータ処理装置の第4.第5の発明では、第1
のオペランドと第2のオペランドとを対象として浮動小
数点演算が行われた際に浮動小数点演算トラップが発生
した場合に、実行制御部の制御により各オペランドと例
外検出の原因となった演算結果、更に浮動小数点演算ト
ラップを発生した浮動小数点命令のアドレスと浮動小数
点演算トラップを受付けた際に実行直前であった命令の
番地で例外処理ハンドラからもとのプログラムへの戻り
番地である次実行命令番地等の情報が外部のメモリヘス
ドアされ、例外処理ハンドラではこ[発明の実施例] 以下、本発明をその実施例を示す図面を参照して詳述す
る。
(1)「本発明のデータ処理装置を用いたシステムの構
成」 第6図に本発明のデータ処理装置を用いたシステムの構
成例を示す。
この構成例では、本発明のデータ処理装置100゜命令
キャッシュ106.  データキャッシュ107及び1
08、  主メモリ109がアドレスバス101.  
データバス102.  命令バス103.  メモリア
ドレスバス104゜メモリデータバス105で結合され
ている。
アドレスバス101は本発明のデータ処理装置100か
ら出力されるアドレスを命令キャッシュ106とデータ
キャッシュ107.108とに入力する。命令バス10
3は命令キャッシュ106から出力される命令コードを
本発明のデータ処理装置100に転送する。
データバス102は本発明のデータ処理装置100から
出力されるデータをデータキャッシュ107.108に
転送したり、データキャッシュ107.108から出5 6 カされるデータを本発明のデータ処理装置100に転送
したりする。メモリアドレスバス104は命令キャッシ
ュ106またはデータキャッシュ107.108から出
力されるアドレスを主メモリ109に転送する。メモリ
データバス105は主メモ1月09と命令キャッシュ1
06またはデータキャッシュ107.108間での命令
またはデータを転送する。
命令キャッシュ106及びデータキャッシュ107゜1
08がミスした場合はそれぞれのキャッシュ106また
は107がメモリアドレスバス104とメモリデータバ
ス105とのバス権を調停して主メモリ109をアクセ
スする。
データキャッシュ107.108は本発明のデータ処理
装置100の側では64ビツトのバスに結合するために
2つのデツプが協調して動作する。各データの64ビツ
トそれぞれの内の上位32ビツトのデータをデータキャ
ッシュ107が、下位32ビツトのデータをデータキャ
ッシュ10Bが分担して受持つ。
以下、本発明のデータ処理装置ff1100の命令体系
及び処理機構について最初に既述し、次に例外処理の方
法及びオペランドストア動作の詳細を説明する。
(2)「本発明のデータ処理装置の命令フォーマント」
本発明のデータ処理装置の命令は16ビツト単位で可変
長となっており、奇数バイト長の命令はない。
本発明のデータ処理装置では高頻度に使用される命令を
短いフォーマットとするため、特に工夫された命令フォ
ーマット体系を有する。例えば、2オペランド命令に対
して、基本的に“4バイト+拡張部”の構成を有して総
てのアドレッシングモードが利用可能な一般形フオーマ
ットと、高頻度の命令及びアドレッシングモードのみを
使用可能な短縮形フォーマットとの2つのフォーマント
を有する。
第9図から第13図に示す本発明のデータ処理装置の命
令フォーマット中に現われる記号の意味は以下の通りで
ある。
:オペレーションコードが入る部分 Ea:8ミニ8ビツト形のアドレッシングモードでオペ
ランドが指定される部分 5ho6ビツトの短縮形のアドレッシングモードでオペ
ランドが指定される部分 Rnニレジスタフアイル上のオペランドがレジスタ番号
で指定される部分 フォーマントは、第9図に示す如く、右側がLSB側で
且つ高いアドレスになっている。
アドレスNとアドレスN+1との2バイトを見ないと命
令フォーマ・7トが判別できないようになっているが、
これは、命令が必ず16ビツト(ハーフワード)単位で
フヱソチ及びデコードされることを前提としているから
である。
本発明のデータ処理装置の命令ではいずれのフォーマッ
トの場合も、各オペランドのI!aまたはshの拡張部
は必ずそのEaまたはshの基本部を含む16ビツト(
ハーフワード)の直後に置かれる。これは、命令により
暗黙に指定される即値データ及び命令の拡張部に優先す
る。従って、4バイト以上の命令では、Eaの拡張部に
より命令のオペレーションコードが分断される場合があ
る。
また、後述する如く、多段間接モードにより[iaの拡
張部に更に拡張部が付加される場合にも、次の命令オペ
コードよりもそちらの方が優先される。
例えば、第1ハーフワードにEalを含み、第2ハーフ
ワードにEa2を含み、第3ハーフワードまである6バ
イト命令の場合を考える。Ealに多段間接モードを使
用したために通常の拡張部の他に多段間接モードの拡張
部も付加されるものとする。
この際、実際の命令ビットパターンは、命令の第1ハー
フワード([Ea 1の基本部を含む)、Ealの拡張
部、Eatの多段間接モード拡張部、命令の第2ハーフ
ワード(Ea2の基本部を含む)、Ea2の拡張部、命
令の第3ハーフワードの順となる。
(2,1) r短縮形2オペランド命令」第10図は2
オペランド命令の短縮形フォーマットを示す模式図であ
る。
このフォーマットには、ソースオペランド側がメモリと
なる1、−for+natとデスティネーションオペラ
ンド側がメモリとなるS−formatとがある。
L−formatでは、shはソースオペランドの指定
フ9 0 イールド、Rnはデスティネーションオペランドのレジ
スタの指定フィールド、RRはshのオペランドサイズ
の指定をそれぞれ表す。
レジスタ上に置かれたデスティネーションオペランドの
サイズは32ビツトに固定されている。レジスタ側とメ
モリ側とのサイズが異なり、ソース側のサイズが小さい
場合に符号拡張が行なわれる。
S−formatではshはデスティネーションオペラ
ンドの指定フィールド、Rnはソースオペランドのレジ
スタ指定フィールド、RRはshのオペランドサイズの
指定をそれぞれ表す。
レジスタ上に置かれたソースオペランドのサイズは32
ビツトに固定されている。レジスタ側とメモリ側とのサ
イズが異なり、ソース側のサイズが大きい場合に、溢れ
た部分の切捨てとオーバーフローチエツクとが行われる
(2,2) r−船形lオペランド命令」第11図は1
オペランド命令の一船形フオーマツ) (Gl−for
+wat)を示す模式図である。
問はオペランドサイズの指定フィールドである。
一部のGl−format命令では、Eaの拡張部以外
にも拡張部を有する。また、聞を使用しない場合もある
(2,3) r−船形2オペランド命令」第12図は2
オペランド命令の一船形フオーマントを示す模式図であ
る。
このフォーマントに含まれるのは、8ビツトで指定され
る一船形アドレッシングモードのオペランドが最大2つ
存在する命令である。オペランドの総数自体は3つ以上
になる場合がある。
EaMはデスティネーションオペランドの指定フィール
ド、朋はデスティネーションオペランドサイズの指定フ
ィールド、EaRはソースオペランド指定フィールド、
R1?はソースオペランドサイズの指定フィールドをそ
れぞれ示している。
一部のG−forw+at命令では、EaM及びEaR
の拡張部以外にも拡張部を有する。
第13図はショートブランチ命令のフォーマットを示す
模式図である。
ccccは分岐条件指定フィールド、disp:8はジ
ャンブ先との変位指定フィールドをそれぞれ示している
本発明のデータ処理装置では8ビツトで変位を指定する
場合には、ビットパターンでの指定値を2倍して変位値
とする。
(2,4) rアドレッシングモード」本発明のデータ
処理装置の命令のアドレッシングモード指定方法には、
レジスタを含めて6ビツトで指定する短縮形と、8ビツ
トで指定する一般形とがある。
未定義のアドレッシングモードを指定した場合、あるい
は意味的に考えて明らかに不合理なアドレッシングモー
ドの組合わせが指定された場合には、未定義命令を実行
した場合と同じく予約命令例外が発生され、例外処理が
起動される。
これに該当するのは、デスティネーションが即値モード
である場合、アドレス計算を伴うべきアドレシングモー
ド指定フィールドで即値モードが使用された場合等であ
る。
第14図から第24図に示すフォーマットの模式図中で
使用されている記号の意味は以下の通りである。
Rn:  レジスタ指定 (Sh):  6ビツトの短縮形アドレッシングモード
での指定方法 (Ea) :  8 ヒツトの一般形アドレッシングモ
ードでの指定方法 フォーマットを示す模式図中で点線で囲まれた部分は拡
張部を示す。
(2,4,1) r基本アドレッシングモード」本発明
のデータ処理装置の命令では種々のアドレッシングモー
ドをサポートする。その内の本発明のデータ処理装置で
サポートする基本アドレッシングモードには、レジスタ
直接モード、レジスタ間接モード、レジスタ相対間接モ
ード、即値モード、絶対モード、PC相対間接モード、
スタックポツプモード及びスタックブツシュモードがあ
る。
レジスタ直接モードは、レジスタの内容をそのままオペ
ランドとする。フォーマントの模式図を第14図に示す
。図中、Rnは汎用レジスタまたはFPU3 4 レジスタの番号を示す。
レジスタ間接モードは、汎用レジスタの内容をアドレス
とするメモリの内容をオペランドとする。
フォーマットの模式図を第15図に示す。図中、Rnは
汎用レジスタの番号を示す。
レジスタ相対間接モードは、ディスプレースメント値が
16ビツトであるか32ビツトであるかにより2種類に
分かれる。それぞれ、汎用レジスタの内容に16ビソト
または32ビツトのディスプレースメント値を加えた値
をアドレスとするメモリの内容をオペランドとする。フ
ォーマントの模式図を第16図に示す。図中、Rnは汎
用レジスタの番号を示す。disp:16とdisp:
32とは、それぞれ、16ビツトのディスプレースメン
ト値、32ビツトのディスプレースメント値を示す、デ
ィスプレースメント値は符号付きとして扱われる。
即値モードは、命令コード中で指定されるピッドパクン
をそのまま2進数と見なしてオペランドとする。フォー
マットの模式図を第17図に示す。
図中、imm  dataは即値を示し、そのサイズは
オペランドサイズとして命令中で指定される。
絶対モードは、アドレス値が16ビツトで示されるか3
2ビツトで示されるかにより2種類に分かれる。それぞ
れ命令コード中で指定される16ビツトまたは32ビツ
トのビットバタンをアドレスとしたメモリの内容をオペ
ランドとする。フォーマットの模式図を第18図に示す
。図中、abs:16とabs:32とはそれぞれ16
ビツト、32ビツトのアドレス値を示す。abs:16
でアドレスが示される場合は指定されたアドレス値を3
2ビツトに符号拡張する。
PC相対間接モードは、ディスプレースメント値が16
ビツトか32ビツトかにより2種類に分かれる。
それぞれプログラムカウンクの内容に16ビソトまたは
32ビツトのディスプレースメント値を加えた値をアド
レスとするメモリの内容をオペランドとする。フォーマ
ントの模式図を第19図に示す。図中、disp : 
16とdisp : 32とはそれぞれ16ビツトのデ
ィスプレースメント値、32ビットのディスプレースメ
ント値を示す。ディスプレースメント値は符号付きとし
て扱われる。PC相対間接モードにおいて参照されるプ
ログラムカウンタの値は、そのオペランドを含む命令の
先頭アドレスである。多段間接アドレッシングモードに
おいてプログラムカウンタの値が参照される場合にも、
同様に命令先頭のアドレスがpc相対の基準値として使
用される。
スタックポツプモードは、SP (スタックポインタ)
の内容をアドレスとするメモリの内容をオペランドとす
る。オペランドアクセス後、SPをオペランドサイズだ
けインクリメンI・する。例えば、32ビツトデータを
扱う場合は、オペランドアクセス後にSPが+4だけ更
新される。8.16.64ビツトのサイズのオペランド
に対するスタックポツプモードの指定も可能であり、そ
れぞれSPが+1.+2.+8だけ更新される。フォー
マットの模式図を第20図に示す。オペランドに対しス
タックポツプモードが意味を持たないものについては、
予約命令例外が発生される。予約命令例外となるのは具
体的には、writeオペランド及びread−mod
ify−wri teオペランドに対するスタックポツ
プモード指定である。
スタックブツシュモードは、SPの内容をオペランドサ
イズだけデクリメントした内容をアドレスとするメモリ
の内容をオペランドとする。スタックブツシュモードで
はオペランドアクセス前にSPがデクリメントされる。
例えば、32ビツトデータを扱う場合は、オペランドア
クセス前にSPが−4だけ更新される。8.16.64
ビツトのサイズのオペランドに対するスタックブツシュ
モードの指定も可能であり、それぞれSPが−1,−2
,−8だけ更新される。
フォーマツI・の模式図を第21図に示す。オペランド
に対してスタックブツシュモードが意味を持たないもの
に対しては、予約命令例外が発生される予約命令例外と
なるのは具体的には、readオペランド及びread
−modify−i1riteオペランドに対すスタッ
クブツシュモード指定である。
(2,4,2) r多段間接アドレッシングモード」複
雑なアドレッシングも、w本釣には加算と間接参照の組
み合わせに分解することができる。従って、加算と間接
参照のオペレーションとをアドレッシングのプリミティ
ブとして与えておき、そ7 8 れを任意に組合わせることが出来れば、いかに複雑なア
ドレッシングモードをも実現することが出来る。本発明
のデータ処理装置の命令の多段間接アドレッシングモー
ドはこのような考え方に立脚したアドレッシングモード
である。複雑なアドレッシングモードは、モジュール間
のデータ参照及び^■言語の処理系に特に有用である。
多段間接アトレンジングモードを指定する際、基本アド
レッシングモード指定フィールドでは、レジスタベース
多段間接モード、PCベース多段間接モード及び絶対ベ
ース多段間接モードの3種類の指定方法の内のいずれか
1つを指定する。
レジスタベース多段間接モードは、汎用レジスタの値を
拡張する多段間接アドレッシングのベース値とするアド
レッシングモードである。フォーマットの模式図を第2
2図に示す。図中、Rnは汎用レジスタの番号を示す。
PCベース多段間接モードは、プログラムカウンタの値
を拡張する多段間接アドレッシングのベース値とするア
ドレッシングモードである。フォーマントの模式図を第
23図に示す。
絶対ベース多段間接モードは、ゼロを拡張する多段間接
アドレッシングのベース値とするアドレッシングモード
である。フォーマットの模式図を第24図に示す。
拡張される多段間接モード指定フィールドは、16ビツ
トを単位としており、これが任意回反復される。1段の
多段間接モードにより、ディスプレースメントの加算、
インデクスレジスタのスケーリング(x 1 + ×2
 +  ×4 +  ×8)と加算、メモリの間接参照
が行われる。多段間接モードのフォーマントの模式図を
第25図に示す。図中の各フィールドは以下に示す意味
を有する。
E=0:多段間接モード継続 E・1 ニアドレス計算終了 tmp ==> address  of opera
nd■・0 :メモリ間接参照なし tap + disp + RX * 5cale =
=> tmp■・1 :メモリ間接参照あり mem[tmp+disp十Rx*5cale]==>
  tmp M=o:<p×〉をインデクスとして使用H=1=特殊
なインデクス <Rx>= 0  インデクス値を加算しない(Rx=
O) <Rx>= 1  プログラムカウンタをインデクス値
として使用 (Rx=PC) <Rx>=2〜  reserved D−0:多段間接モード中の4ビツトのフィールドd4
の値を4倍してディスプレースメント値とし、これを加
算する。d4は符号付きとして扱い、オペランドのサ イズとは関係なく必ず4倍して使用す る D・1 :多段間接モードの拡張部で指定されたdis
px (16/32ビツト)をディスプレースメント値
とし、これを加算する。
拡張部のサイズはd4フィールドで指定する d4=ooo1  dispxは16ビツトd4=o0
10  dispxは32ビットxX:インデクスのス
ケール(scale = 1/2/478) プログラムカウンタに対してX2.X4.X8のスケー
リングを行なった場合には、その段の処理終了後の中間
値(Lmp)として不定値が入る。
この多段間接モードによって得られる実効アドレスは予
測できない値となるが、例外は発生しない。プログラム
カウンタに対するスケーリングの指定は行なってはいけ
ない。
多段間接モードによる命令フォーマントのバリエーショ
ンを第26図及び第27図の模式図に示す。
第26図は多段間接モードが継続するか終了するかのバ
リエーションを示す。第27図はディスプレースメント
のサイズのバリエーションを示す。
任意段数の多段間接モードが利用できれば、コンパイラ
の中で段数による場合分けが不要になるので、コンパイ
ラの負担が軽減されるというメリットがある。多段の間
接参照の頻度が非常に少な1 2 いとしても、コンパイラとしては必ず正しいコードを発
生できなければならないからである。このため、フォー
マット上では任意の段数を可能としている。
(2,5)  r浮動小数点演算命令」本発明のデータ
処理装置の整数演算命令はたとえば、特開平1−928
40号公報に詳細な開示がなされている。
一方、本発明のデータ処理装置の整数演算命令は第8図
に示す如くであり、米国IEEE規格にて定めれている
倍精度形式と単精度形式との浮動小数点に関してそれぞ
れの演算を実行する命令が備えられている。
なお、本発明のデータ処理装置により実行される浮動小
数点演算の詳細な内容については、八NSI/IEEE
 Std 754−1985. ”IEEB 5tan
derd for Binary(3)「本発明のデー
タ処理装置の機能ブロックの構成」 第4図は本発明のデータ処理装置の一構成例を示すブロ
ック図である。
本発明のデータ処理装置の内部を機能的に大きく分ける
と、命令入力部110.  命令フェッチ部111゜命
令デコード部112.第1マイクロROM部113゜第
2マイクロROM部114.  オペランドアドレス計
算部115.  PC計算部116.  整数演算部1
17.  浮動小数点演算部118.  アドレス入出
力部119.  オペランドアクセス部120.  デ
ータ入出力部121に分かれる。
アドレス入出力部119をアドレスバス101に結合し
、データ入出力部121をデータバス102に結合し、
命令入力部110を命令バス103に結合することによ
り前述の第6図に示すシステム構成をとることができる
(3,1) r命令入力部」 命令入力部110は外部の命令バス103から32ビツ
トごとに命令コードを本発明にデータ処理装置へ入力す
る。
命令キャッシュ106のアクセス方法には、1つのアド
レスに対して32ビツトの命令コードをアクセスする標
準アクセスモードと1つのアドレスに対して4回連続で
32ビツトの命令コードをアクセスするクワッドアクセ
スモードとがあり、いずれの場合も命令入力部110は
入力した命令コードを命令フェッチ部111へ出力する
(3,2) r命令フェッチ部」 命令フェッチ部111には命令アドレスのアドレス変換
機構、内蔵命令キャッシュ、命令用TLB。
命令キューとそれらの制御部がある。
命令フェッチ部111は、次にフェッチすべき命令の論
理アドレスを物理アドレスに変換し、内蔵命令キャッシ
ュから命令コードをフェッチし、命令デコード部112
へ出力する。内蔵命令キャッシュがミスした場合には、
アドレス入出力部119へ物理アドレスを出力して外部
への命令アクセスを要求し、命令入力部110を通じて
入力された命令コードを内蔵命令キャッシュに登録する
次にフェッチすべき命令の論理アドレスは命令キューに
入力すべき命令の論理アドレスとして専用のカウンタで
計算される。ジャンプが生じた場合には、新たな命令の
論理アドレスがオペランドアドレス計算部115.  
PC計算部116あるいは整数演算部117から転送さ
れてくる。
命令用TLBがミスした場合のページングによるアドレ
ス変換及び命令用TLB更新も命令フェッチ部111の
内部の制御回路により行われる。
また、本発明のデータ処理装置がパスウォッチモードで
ある場合は、アドレス入出力部119を通じて入力され
た物理アドレスがヒントする内蔵命令キャッシュのエン
トリを無効化する。
(3,3) r命令デコード部」 命令デコード部112では基本的に16ビツト (ハー
フワード)単位に命令コードをデコードする。
このブロックには第1ハーフワードに含まれるオペレー
ジジンコードをデコードするFHWデコーダ1第2及び
第3ハーフワードに含まれるオペレーションコードをデ
コードするNFHWデコーダ、ア5 6 ドレソシングモードをデコードするアドレッシングモー
ドデコーダが含まれる。
更に、FHWデコーダ及びNFH−デコーダの出力を更
にデコードしてマイクロROMのエントリアドレスを計
算する第2デコーダ、条件分岐命令の分岐予測を行う分
岐予測機構、オペランドアドレス計算の際のパイプライ
ンコンフリクトをチエツクするアドレス計算コンフリク
トチエツク機構も含まれる。
命令デコード部112は命令フェッチ部111から出力
された命令コードをlクロックにつきθ〜6バイトデコ
ードする。デコード結果の内の、整数演算部117での
演算に関する情報が第1マイクロROM部113へ、浮
動小数点演算部118での演算に関する情報が第2マイ
クロRO?1部114へ、オペランドアドレス計算に関
係する情報がオペランドアドレス計算部115へ、pc
計算に関係する情報がpc計算部116へそれぞれ出力
される。
(3,4) r第1マイクロROM部」第1マイクロR
OM部113には整数演算部117の制御を行う種々の
マイクロプログラムルーチンが格納されているマイクロ
ROM、  マイクロシーケンサ、マイクロ命令デコー
ダ等どが含まれる。
マイクロ命令はマイクロROMから1クロツクに1度読
出される。マイクロシーケンサは命令実行に関するマイ
クロプログラム実行のためのシーケンス処理の他に、例
外9割込、トラップ(この3つ併せてEITと総称する
)の受付けと各[!ITに対応するマイクロプログラム
のシーケンス処理も行う。
第1マイクロROM部113へは命令コードに依存しな
い外部割込みや整数演算実行結果によるマイクロプログ
ラムの分岐条件も入力される。
マイクロデコーダの出力は主に整数演算部117に対し
て出力されるが、ジャンプ命令の実行時及び例外受付時
には一部の情報を他の機能ブロックへも出力する。
(3,5) r大2マイクロROM部」第2マイクロR
OM部114には浮動小数点演算部118の制御を行う
種々のマイクロプログラムルーヂンが格納されているマ
イクロROM、  マイクロシーケンサ、マイクロ命令
デコーダ等が含まれる。
マイクロ命令はマイクロROMから1クロツクに1度読
出される。マイクロシーケンサはマイクロプログラムで
示されるシーケンス処理の他に、浮動小数点演算に関係
する例外の処理も行い、マスクされていない浮動小数点
例外が検出された場合には第1マイクロROM部113
へ例外処理を要求する。第2マイクロROM部114の
マイクロシーケンサは第1マイクロROM部113のマ
イクロシーケンサと並列に動作し、整数演算部117と
並列に浮動小数点演算部11Bを制御する。
第2マイクロROM部113には浮動小数点演算実行結
果によるフラッグ情報も入力される。
マイクロデコーダの出力は主に浮動小数点演算部118
に対して出力されるが、浮動小数点演算に関係する例外
の検出等の一部の情報は他の機能ブロックへも出力され
る。
(3,6) rオペランドアドレス計算部」オペランド
アドレス計算部115は、命令デコード部112のアド
レスデコーダ等から出力されたオペランドアドレス計算
に関係する情報によりハードワイヤード制御される。こ
のブロックではメモリ間接アドレシングのためのメモリ
アクセス以外のオペランドのアドレス計算とジャンプ命
令のジャンプ先アドレスの計算とが行われる。
オペランドアドレスの計算結果は整数演算部117へ出
力される。オペランドアドレス計算終了段階での先行ジ
ャンプ処理では、ジャンプ先アドレスの計算結果が命令
フェッチ部111とpc計算部とへ出力される。
即値オペランドは整数演算部117及び浮動小数点演算
部118へ出力される。アドレス計算に必要な汎用レジ
スタ及びプログラムカウンタの値は整数演算部117あ
るいはpc計算部116から入力される。
(3,7)  rPC計算部」 pc計算部116は命令デコード部112から出力され
るPC計算に関係する情報でハードワイヤードに制御さ
れ、命令のpc値を計算する。
9 0 本発明のデータ処理装置の命令は前述の如く、可変長命
令であり、命令をデコードしてみないとその命令の長さ
が判らない。pc計算部116は、命令デコード部11
2から出力される命令長をデコード中の命令のpc値に
加算することにより次の命令のpc値を計算する。
pc計算部116の計算結果は各命令のpc値として命
令のデコード結果とともに出力される。
命令デコードステージでの先行ブランチ処理では、命令
デコード部11から出力されるブランチ幅をpc値に加
算することによりブランチ先命令のアドレスが計算され
る。
また、PC計算部116にはサブルーチンへのジャンプ
命令の実行時にスタックにブツシュしておいたサブルー
チンからの戻り先PC値のコピーを保持するPCスタッ
クが用意されている。PC計算部116は、サブルーチ
ンからのリターン命令に対してはPCスタックから戻光
PCを読出すことにより、プリリターン先命令のアドレ
スを生成する処理も行う。
(3,8) r整数演算部」 整数演算部117は第1マイクロROM部113のマイ
クロROMに格納されたマイクロプログラムにより制御
され、各整数演算命令の機能を実現するために必要な演
算を整数演算部117の内部にあるレジスタファイルと
演算器とを使用して実行する。
レジスタファイルには汎用レジスタ及び作業用レジスタ
が含まれる。また、整数演算部117には整数演算の結
果により変化するフラッグ及び外部割込みのマスクレベ
ル、デバッグ環境を定めるビット等含むプロセッサ状態
語(PSW)が含まれる。
命令の演算対象となるオペランドがアドレスあるいは即
値である場合は、オペランドアドレス計算部115から
即値あるいは計算されたアドレスが入力される。また、
命令の演算対象となるオペランドがメモリ上のデータで
ある場合は、アドレス計算部115で計算されたアドレ
スがオペランドアクセス部120へ出力され、内蔵デー
タキャッシュあるいは外部からフェッチしたオペランド
が整数演算部117へ入力される。
演算に際して、内蔵データキャッシュ、外部のデータキ
ャッシュ107.108あるいは主メモIJ109をリ
ードする必要がある場合は、整数演算部117はマイク
ロプログラムの指示によりオペランドアクセス部120
ヘアドレスを出力して目的のデータをフェッチする。
演算結果を内蔵データキャツシュ5外部のデータキャッ
シュ107.108あるいは主メモリ109ヘスドアす
る必要がある場合は、整数演算部117はマイクロプロ
グラムの指示によりオペランドアクセス部120ヘアド
レスとデータとを出力する。この際、pc計算部116
からはそのストア動作を行った命令のPC値がオペラン
ドアクセス部120へ出力される。
外部割込み1例外の処理等が行われて新たな命令アドレ
スを整数演算部117が得た場合は、整数演算部117
はこれを命令フェッチ部111 とpc計算部116と
へ出力する。
(3,9) r浮動小数点演算部」 浮動小数点演算部11Bは第2マイクロROM部114
のマイクロROMに格納されたマイクロプログラムによ
り制御され、各浮動小数点演算命令の機能を実現するた
めに必要な演算を浮動小数点演算部11Bの内部にある
レジスタファイルと演算器とを使用して実行する。
また浮動小数点演算部118には浮動小数点演算の丸め
処理方法及び浮動小数点演算例外の検出許可をモード設
定する浮動小数点演算モード制御レジスタFMCと、浮
動小数点演算結果に対するフラグ及び浮動小数点演算例
外の発生状態を示すステータスビットからなる浮動小数
点演算状態語FSWとが備えられている。
命令の演算対象となるオペランドが即値である場合は、
オペランドアドレス計算部115から浮動小数点演算部
118へ即値が入力される。また、命令の演算対象とな
るオペランドがメモリ上のデータである場合は、アドレ
ス計算部115で計算されたアドレスがオペランドアク
セス部120へ出力され、内蔵データキャッシュあるい
は外部からフェッチされたオペランドが浮動小数点演算
部118へ入力される。
3 4 オペランドを内蔵データキャッシュ、外部のデータキャ
ッシュ107.108あるいは主メモリ109ヘスドア
する必要がある場合は、浮動小数点演算部118はマイ
クロプログラムの指示によりオペランドアクセス部12
0へデータを出力する。ストア動作では浮動小数点演算
部118と整数演算部117とがta調して動作し、オ
ペランドアクセス部120に対して整数演算部117か
らオペランドのアドレスが出力され、浮動小数点演算部
118からオペランドが出力される。この際、PC計算
部116からはそのストア動作を行った命令のPC値が
オペランドアクセス部120へ出力される。
(3,10) rオペランドアクセス部」オペランドア
クセス部120にはオペランドアドレスのアドレス変換
機構、内蔵データキャッシュ。
データ用TLB、  ストアバッファとそれらの制御部
とがある。
データのロード動作に際しては、オペランドアクセス部
120はオペランドアドレス計算部115あるいは整数
演算部117から出力されたロードすべきデータの論理
アドレスを物理アドレスに変換し、内蔵データキャッシ
ュからデータをフェッチし、整数演算部117あるいは
浮動小数点演算部118へ出力する。内蔵データキャッ
シュがミスした場合には、オペランドアクセス部120
はアドレス入出力部119へ物理アドレスを出力し、外
部へのデータアクセスを要求し、データ入出力部122
を通じて入力されたデータを内蔵データキャッシュに登
録する。
データのストア動作に際しては、オペランドアクセス部
120は整数演算部117から出力されたストアすべき
データの論理アドレスを物理アドレスに変換し、整数演
算部117あるいは浮動小数点演算部118から出力さ
れたデータを内蔵データキャッシュにストアすると共に
、ストアバッファを通じてアドレス入出力部119へ物
理アドレスを出力し、データ入出力部122を通じてデ
ータを外部へ出力する。ストアバッファではストアずべ
きデータとそのアドレス、更にそのストア動作を行った
命令のアドレスとが1組にして管理される。スト6 アバソファでのストア動作は先入れ先だし制御方式で管
理される。
データ用TLBがミスした場合のベージングによるアド
レス変換及びデータ用TLB更新もオペランドアクセス
部120の内部の制御回路により行われる。また、メモ
リアクセスアドレスがメモリにマツプされたl10w4
域に入るか否かのチエツクも行われる。
また、本発明のデータ処理装置がバスウォッチモードで
ある場合は、オペランドアクセス部120はアドレス入
出力部119を通じて入力された物理アドレスがヒント
する内蔵データキャッシュのエントリを無効化する。
(3,11) rアドレス入出力部」 アドレス入出力部119は命令フェッチ部111 とオ
ペランドアクセス部120とから出力されたアドレスを
本発明のデータ処理装置100の外部へ出力する。
アドレスの出力は本発明のデータ処理装置100で定め
られたバスプロトコルに従って実行される。
バスプロトコルの制御はアドレス入出力部119内にあ
る外部バス制御回路で行われる。外部バス制御ではペー
ジ不在例外及びバスアクセス例外。
外部割込みの受付けも行う。
また、本発明のデータ処理装置100以外の外部デバイ
スがバスマスクになっており、本発明のデータ処理装置
100がパスウォッチモードである場合には、アドレス
入出力部119は外部デバイスがデータライトサイクル
を実行した際にアドレスバス101上へ出力されたアド
レスを取込んで命令フェッチ部111 とオペランドア
クセス部120とへ転送する。
(3,12) rデータ入出力部」 データ入出力部121はオペランドのロード動作に際し
ては、データバス102からデータを取込みオペランド
アクセス部120へ転送する。オペランドのストア動作
に際しては、オペランドアクセス部120から出力され
たオペランドをデータバス102へ出力する。
データキャッシュ107.108のアクセス方法には、
7 8 1つのアドレスに対して64ビツトのデータをアクセス
する標準アクセスモードと1つのアドレスに対して4回
連続で64ビツトのデータをアクセスするクワッドアク
セスモードとがあり、いずれの場合もデータ入出力部1
21はオペランドアクセス部120と外部のメモリとの
間で遣取りするデータを(4)「パイプライン処理」 本発明のデータ処理装置100は各種のバッファ記憶と
、命令バス103.  データバス102を使用したメ
モリの効率的アクセスにより命令をパイプライン処理し
て高性能に動作する。
ここでは、本発明のデータ処理装置100のパイプライ
ン処理方法について説明する。
(4,1) rパイプライン機構」 本発明のデータ処理装置100のパイプライン処理機構
は第5図に模式的に示すように構成されている。
命令のブリフェッチ牽行う命令フェッチステージ(IF
ステージ)31.  命令のデコードを行うデコードス
テージ(Dステージ)32.  オペランドのアドレス
計算を行うオペランドアドレス計算ステージ(Aステー
ジ)33.  マイクロROMアクセス(特にRステー
ジ37と称す)とオペランドのブリフェッチ(特にOF
ステージ38と称す)を行うオペランドフェッチステー
ジ(Fステージ)34.  命令の実行を行う実行ステ
ージ(Eステージ)35.  メモリオペランドのスト
アを行うストアステージ(Sステージ)36の6段構成
でパイプライン処理を実行する。
Sステージ36には3段のストアバッファがある。
各ステージは他のステージとは独立に動作し、理論上は
6つのステージが完全に独立動作する。
Sステージ36以外の各ステージは1回の処理を最小1
クロツクで行うことができる。Sステージ36は1回の
オペランドストア処理を最小2クロックで行うことがで
きる。従ってメモリオペランドのストア処理がない場合
、理想的には1クロツクごとに次々とパイプライン処理
が進行する。
本発明のデータ処理装置にはメモリーメモリ間演算ある
いはメモリ間接アドレッシング等のような1回の基本パ
イプライン処理のみでは処理出来ない命令があるが、こ
れらの処理に対してもなるべく均衡したパイプライン処
理が行えるように構成されている。
複数のメモリオペランドを有する命令に対しては、メモ
リオペランドの数に基づいてデコード段階で複数のパイ
プライン処理単位(ステップコード)に分解してパイプ
ライン処理が行われる。
IFステージ31からDステージ32へ渡される情報は
命令コードそのものである。
Dステージ32からAステージ33へ渡される情報は、
命令で指定された演算に関するコード(Dコード41と
称す)と、オペランドのアドレス計算に関係するコード
(Aコード42と称す)と処理中命令のプログラムカウ
ンタ値(PC)との3つである。
Aステージ33からFステージ34に渡される情報は、
マイクロプログラムルーチンのエントリ番地及びマイク
ロプログラムへのパラメータ等を含むRコード43と、
オペランドのアドレスとアクセス方法指示情報等を含む
Fコード44と、処理中命令のプログラムカウンタ値(
PC)との3つである。
Fステージ34からEステージ35へ渡される情報は、
演算制御情報とリテラル等を含むEコード45と、オペ
ランド及びオペレータアドレス等を含むSコード(46
a、 46b)と、処理中命令のプログラムカウンタ値
(PC)との3つである。
1 2 Sコード46a、 46bはアドレス46a とデータ
46bとからなる。
Eステージ35からSステージ36へ渡される情報は、
ストアすべき演算結果であるWコード47a、 47b
と、その演算結果を出力した命令のプログラムカウンタ
値(PC)との2つである。
Wコード47a、 47bはアドレス47a とデータ
47bとからなる。
Eステージ35以前のステージで検出されたBITはそ
のコードがEステージ35に到達するまでBIT処理を
起動しない。Eステージ35で処理されている命令のみ
が実行段階の命令であり、IPステージ31−Fステー
ジ34で処理されている命令は未だ実行段階に至ってい
ないからである。従ってEステージ35以前で検出され
たBITは検出されたことがステップコード中に記録さ
れて次のステージに伝えられるのみである。
Sステージ36で検出されたBITはEステージ35で
処理中命令の実行が完了した時点またはその命令の処理
がキャンセルされた時点で受付けられ、Eステージ35
に戻って処理される。
(4,2) r各パイプラインステージの処理」各パイ
プラインステージへの入出カステンプコードには第4図
に示したように便宜上名称が付与されている。またステ
ップコードには、オペレーションコードに関する処理を
行ってマイクロROMのエントリ番地やEステージ35
に対するパラメータ等になる系列と、Eステージ35の
処理対象のオペランドになる系列との2系列がある。
また、Dステージ32からSステージ36までの間では
処理中命令のプログラムカウンタ値が受渡される。
(4,2,1) r命令フェッチステージ」命令フェッ
チステージ(IPステージ)31で命令フェッチ部11
1が動作する。
命令フェッチ部111は内蔵命令キャッシュあるいは外
部から命令をフェッチして命令キューに入力し、Dステ
ージ32に対して2〜6バイト単位に命令コードを出力
する。命令キューの入力は整置された4バイト単位で行
われる。
命令フェッチ部111が標準アクセスモードで外部から
命令をフェッチする場合は整置された4バイトにつき最
小2クロンクを要する。
クワッドアクセスモードでは16バイトにつき最小5ク
ロツクを要する。
内蔵命令キャッシュがヒントした場合は整置された8バ
イトにつき1クロツクでフェッチ可能である。
命令キューの出力単位は2バイトごとに可変であり、1
クロツクの間に最大6バイトまで出力できる。またジャ
ンプの直後には命令キューをバイパスして命令基本部2
バイトを直接命令デコーダに転送することもできる。
命令の論理アドレスの物理アドレスへの変換。
内蔵命令キャッシュや命令用TLBの制御、ブリフェッ
チ先命令アドレスの管理あるいは命令キューの制御もI
Fステージ31で行われる。
(4,2,2) r命令デコードステージ」命令デコー
ドステージ(Dステージ)32はIFステージ31から
人力された命令コードをデコードす命令コードのデコー
ドは、命令デコード部112のFHWデコーダ、 NF
HWデコーダ、アドレッシングモードデコーダを使用し
て1クロツクに1度行なわれ、1回のデコード処理でO
〜6バイトの命令コードが消費される(リターンサブル
ーチン命令の復帰先アドレスを含むステップコードの出
力処理等では命令コードは消費されない)。
1回のデコードでAステージ33に対してアドレス計算
情報であるAコード42とオペコードの中間デコード結
果であるDコード41とが出力される。
Dステージ32では各命令のPC計算部116の制御命
令キューからの命令コード出力処理も行われる。
Dステージ32ではブランチ命令あるいはサブルーチン
からのリターン命令に対して先行ジャンプ処理が行われ
る。先行ジャンプを行った無条件ブランチ命令に対して
はDコード41及びAコード42は出力されず、Dステ
ージ32において命令の処理を終了する。
(4,2,3) rオペランドアドレス計算ステージ」
5 6 オペランドアドレス計算ステージ(Aステージ)33の
処理は大きく2つに分かれる。
1つは命令デコード部112の第2デコーダを使用して
オペレーションコードの後段デコードを行う処理で、他
方はオペランドアドレス計算部54でオペランドアドレ
スの計算を行う処理である。
オペレーションコードの後段デコード処理はDコード4
1を入力とし、レジスタ、メモリの書込み予約及びマイ
クロプログラムルーチンのエントリ番地とマイクロプロ
グラムに対するパラメータ等を含むRコード43を出力
する。
なお、レジスタあるいはメモリの書込み予約は、アドレ
ス計算で参照したレジスタあるいはメモリの内容がバイ
ブライン上を先行する命令で書換えられていた場合に、
誤ったアドレス計算が行われることを防ぐためのもので
ある。
オペランドアドレス計算処理はAコード42を入力とし
、Aコード42に従ってオペランドアドレス計算部54
でオペランドのアドレス計算を行い、その計算結果がF
コード44として出力される。
またジャンプ命令に対してはジャンプ先アドレスの計算
が行われて先行ジャンプ処理が実行される。この際、ア
ドレス計算に伴うレジスタの読出し時に書込み予約のチ
エツクも行われ、先行命令がレジスタあるいはメモリに
対する書込み処理を終了していないために予約があるこ
とが指示されていれば、先行命令がEステージ35で書
込み処理を終了するまで待機状態になる。
Aステージ33ではDステージ32で先行ジャンプを行
わなかったジャンプ命令に対して先行ジャンプ処理が行
われる。
絶対値アドレスへのジャンプあるいはレジスタ間接アド
レッシングのジャンプ等に対してはAステージ33で先
行ジャンプが行われる。先行ジャンプを行った無条件ジ
ャンプ命令に対してはRコード43及びFコード44は
出力されず、Aステージ33において命令の処理を終了
する。
(4,2,4) rマイクロROMアクセスステージ」
オペランドフェッチステージ(Fステージ)34の処理
も大きく2つに分かれる。
1つはマイクロROMのアクセス処理であり、特にRス
テージ37と称す。他方はオペランドプリフェッチ処理
であり、特にOFステージ38と称す。
Rステージ37とOFステージ38とは必ずしも同時に
動作するわけではなく、データキャッシュのミス及びヒ
ント、データTLBのミス及びヒツト等に依存して動作
タイミングが異なる。
Rステージ37の処理であるマイクロROMアクセス処
理は、Rコード43に対して次のEステージ35での実
行に使用する実行制御コードであるEコード45を作り
出すためのマイクロROMアクセスとマイクロ命令デコ
ード処理である。
1つのRコードに対する処理が2つ以上のマイクロプロ
グラムステップに分解される場合、第1マイクロROM
部113及び第2マイクロROM部114がEステージ
35で使用され、次のRコード43がマイクロROMア
クセス待ちになる場合がある。
Rコード43に対するマイクロROMアクセスが行われ
るのはEステージ35でのマイクロROMアクセスが行
われない場合である。
本発明のデータ処理装置100では多くの整数演算命令
が1マイクロプログラムステノブで行われ、多くの浮動
小数点演算命令が2マイクロプログラムステツプで行わ
れるため、実際にはRコード43に対するマイクロRO
Mアクセスが次々と行われる頻度が高い。
(4,2,5) rオペランドフェッチステージ」オペ
ランドフェッチステージ(OFステージ)38はFステ
ージ34で行う上記の2つの処理の内のオペランドプリ
フェッチ処理を行う。
オペランドフェッチステージ38ではFコード44の論
理アドレスをデータTLBで物理アドレスに変換し、そ
の物理アドレスで内蔵データ4−ヤソシュをアクセスし
てオペランドをフェッチし、そのオペランドとFコード
44として転送されてきたその論理アドレスとを組合わ
せてSコード46a、 46bとして出力する。
1つのFコード44では8バイト境界をクロスしてもよ
いが、8バイト以下のオペランドフェッチを指定する。
9 0 Fコード44にはオペランドのアクセスを行うか否かの
指定も含まれており、Aステージ33で計算されたオペ
ランドアドレス自体あるいは即値をEステージ35へ転
送する場合にはオペランドプリフェッチは行わず、Fコ
ード44の内容をSコード46a。
46bとして転送する。
プリフェッヂしようとするオペランドとEステージ35
が書込み処理を行おうとするオペランドとが一致する場
合は、オペランドプリフェッチは内蔵データキャッシュ
からは行われず、バイパスして行なわれる。
オペランドストアステージ36の動作はオペランドアク
セス部120で行われ、データTLBあるいは内蔵デー
タキャッシュがミスした場合のアドレス変換処理及び内
蔵データキャッシュの入換え処理も行う。
(4,2,6) r実行ステージ」 実行ステージ(Eステージ)35はEコード45及びS
コード46a、 46bを入力として動作する。
このEステージ35が命令を実行するステージであり、
Fステージ34以前のステージで行われた処理は総てE
ステージ35のための前処理である。
Eステージ35でジャンプが実行されたりあるいはBI
T処理が起動されたりした場合は、IFステージ31〜
Fステージ34まででの処理はすべて無効化される。
Eステージ35はマイクロプログラムにより制御され、
Rコード45に示されたマイクロプログラムルーチンの
エントリ番地からの一連のマイクロ命令を実行すること
により命令を実行する。
Eコード45には整数演算部117を制御するコード(
特にElコードと称す)と浮動小数点演算部118を制
御するコード(特にUPコードと称す)とがある。El
コードとEFコードとは独立に出力可能であり、この際
Eステージ35では整数演算部117と浮動小数点演算
部118とが並列に動作する。
例えば浮動小数点演算部11Bでメモリオペランドを有
さない浮動小数点命令を実行する場合はこの動作は整数
演算命令17の動作と並行して実行される。
整数演算でも浮動小数点演算でもマイクロ間Hの読出し
とマイクロ命令の実行とはパイプライン化されて行われ
る。従って、マイクロプログラムで分岐が発生した場合
は1マイクロステツプの空きができる。
Eステージ35ではAステージ33で行ったレジスタあ
るいはメモリに対する書込み予約をオペランドの書込み
の後に解除する。
各種の割込は命令の切目でEステージ35に直接受付け
られ、マイクロプログラムにより必要な処理が実行され
る。その他の各種1!ITの処理もEステージ35でマ
イクロプログラムにより行われる。
演算の結果をメモリにストアする必要がある場合は、E
ステージ35はSステージ36へWコード47a。
47bとストア処理を行う命令のプログラムカウンタ値
とを出力する。
(4,2,7) rオペランドストアステージ」オペラ
ンドストアステージ36はWコードの論理アドレス47
aをデータTLBで物理アドレスに変換し、そのアドレ
スでWコードのデータ47bを内蔵データキャッシュに
ストアする。同時にWコード47a、 47bとプログ
ラムカウンタ値とをストアバッファに入力し、データT
LBから出力された物理アドレスを用いて外部のメモリ
へWコードのデータ47bをストアする処理を行う。
オペランドストアステージ36の動作はオペランドアク
セス部120で行われ、データTLBあるいは内蔵デー
タキャッシュがミスした際のアドレス変換処理及び内蔵
データキャッシュの入換え処理も行う。
オペランドのストア処理でBITを検出した場合はスト
アバッファにWコード47a、 47bとプログラムカ
ウンタ値とを保持したままでEステージ35にBITを
通知する。
(4,3) r各パイプラインステージの状態制御」パ
イプラインの各ステージは入力ランチと出力ランチを有
し、他のステージとは独立に動作することを基本とする
各ステージは1つ前に行った処理が終了し、その処理結
果を出力ランチから次のステージの入力3 4 ラッチへ転送し、自分のステージの入力ランチに次の処
理に必要な入力信号の総てがそろえば次の処理を開始す
る。
つまり、各ステージは1つ前段のステージから出力され
てくる次の処理に対する入力信号の総てが有効になり、
その時点の処理結果を後段のステージの入力ラッチへ転
送し、出力ランチが空になると次の処理を開始する。
各ステージが動作を開始する直前のタイミングで入力信
号が総てそろっている必要がある。入力信号がそろって
いなければ、そのステージは待機状態(入力待ち)にな
る。
出力ランチから次のステージの入力ラッチへの転送を行
われる際は次のステージの入力ラッチが空き状態になっ
ている必要があり、次のステージの入力ラッチが空きで
ない場合もパイプラインステージは待機状態(出力待ち
)になる。
また、キャッシュあるいはTLBがミスしたり、パイプ
ラインで処理中の命令間にデータ干渉が生じると、1つ
のステージの処理に複数クロック必要となってパイプラ
イン処理が遅延する。
(5ンrPsW、 FMC,FSWの構成」(5,1)
psw(プロセッサ状態語)の構成第2図は本発明のデ
ータ処理装置の整数演算部117に備えられているプロ
セッサ状態語(PSW)の構成を示す模式図である。
図中、20は5Mビットであり、リング0で割込み処理
用スタックポインタを使用中であるかリング0用スタツ
クポインタを使用中であるかを示す。
21はRNGビット(2ビツト)であり、プログラムが
実行されているリングの番号を示す。
22はへTビット(2ビツト)であり、アドレス変換と
メモリ保護のモードとを示している。AT=00はアド
レス変換なしでメモリ保護なしを、AT=10はアドレ
ス変換なしでメモリ保護ありを、AT=01ハアドレス
変換ありをそれぞれ示す。
23はPEビットであり、浮動小数点演算トラップの起
動モードを示す。FE・1である場合には、マスクされ
ていない浮動小数点演算トラップは任意の命令の切目で
発生する。FE・0である場合には、マスクされていな
い浮動小数点演算トラップはその浮動小数点演算トラン
プを起こした浮動小数点演算命令の次の浮動小数点演算
命令または本発明のデータ処理装置I00を割込み待ち
状態にする縁AIT命令の実行直前まで発生を遅延させ
られる。
24はDBビットであり、デバッグ環境を示す。DB−
1である場合には、デバッグ環境がオンで、デバッグ条
件が成立すればセルフデバッグトランプが起動される。
DB=Oである場合には、デバッグがオフでデバッグ条
件が成立してもセルフデバッグトラップは起動されない
25はIMASKビット(4ビツト)であり、外部割込
みのマスクレベルを示す。IMA5K 25で示された
マスクレベルより優先度の高い外部割込みが本発明のデ
ータ処理装置100に入力された場合に割込み処理が起
動される。
26はPRNGビット(2ビツト)であり、現在のリン
グを呼出したリングのリング番号を示す。
27はFLAG (6ビツト)であり、整数演算に関す
るフラグを示す。
なお、PSuはリセット時にはオールゼロにクリア 了される。LDC命令とSTC命令とでPSWの内容を
読出すこと及び指定した内容を書込むことが可能である
(5.2) r浮動小数点演算モード制御レジスタ(F
MC)の構成」 第29図は本発明のデータ処理装置の浮動小数点演算部
11Bに備えられている浮動小数点演算モード制御レジ
スタ(FMC)の構成を示す模式図である。
図中、2ビツトのRND 50は米国IEEE規格にて
定められている浮動小数点演算の丸めモードを示す。
RND=OOである場合は近傍に丸め、RND・01で
ある場合はゼロ方向に丸め、RND=10である場合は
正の無限大方向に丸め、RND・11である場合は負の
無限大方向に丸めることを指定する。
ErTRQE 51は米国IEEE規格で定める浮動小
数点演算トラップの許可を示す。対応するビットが1で
ある場合はその浮動小数点演算トラップはマスクされず
、対応するビットが0である場合はその浮動小数点演算
トラップはマスクされる。
ETTRQE 51中(]OPEは不正演算に、OVF
Eは浮動小数点オーバーフローに、IINPEはアンダ
ーフローに、DZEは浮動小数点ゼロ除算に、INEX
I!は不正確にそれぞれ対応する。
FMCはLDC命令とSTC命令とでその内容を読出す
こと及び指定した内容を書込むこと可能である。
なお、本発明のデータ処理袋W100の浮動小数点演算
の丸めモード及び浮動小数点演算トラップの内容の詳細
については例えば八NSI/II!EE sta 75
41985、“IEEE Standerd for 
Binary Floating−PointAri 
Lhmetic″に記載されている。
(5.3) rFsW(浮動小数点演算状態語)の構成
」第30図は本発明のデータ処理装置の浮動小数点演算
部11Bに備えられている浮動小数点演算状態語(FS
W)の構成を示す模式図である。
図中、B1^S 52は浮動小数点演算がオーバーフロ
ーあるいはアンダーフローした際に、スタックに退避さ
れる例外データがバイアスされているか否かを示す。
EST 53は直前の浮動小数点演算命令実行時に発生
した浮動小数点演算トラップを示す。
EST 53中のl0PIは不正演算に、1OP2は浮
動小数点数を整数に変換する際のオーバフローに、ov
pは浮動小数点オーバーフローに、υNFはアンダーフ
ローに、DZは浮動小数点ゼロ除算に、INEWは不正
確にそれぞれ対応する。
CND 54は浮動小数点演算実行結果のフラグである
。CN口54中のNは結果が負である場合にセットされ
、Zは結果がゼロである場合にセントされ、lは結果が
無限大である場合にセットされ、NANは結果が非数で
ある場合にそれぞれセントされる。
^ST 55は浮動小数点演算命令実行時に発生した浮
動小数点トラップを蓄積して格納したものである。^S
T 55中のl0PAは不正演算に、0VFAは浮動小
数点オーバーフローに、LINFAはアンダーフローに
、DZ^は浮動小数点ゼロ除算に、IMEX^は不正確
にそれぞれ対応する。
なお、FS−はLDC命令とSTC命令とでその内容を
読出すこと及び指定した内容を書込むことが可能である
(6)「外部アクセス動作」 (6,1)r入出力信号線」 第7図は本発明のデータ処理装置100の入出力信号を
示す模式図である。
本発明のデータ処理装置100は、電源Vccと接地G
ND、  64本のデータビンと32本のアドレスピン
と32本の命令ピン及び入力クロックCLKの他に様々
な制御信号を入出力する。
命令アクセスの場合もデータアクセスの場合も、アドレ
スピンへは物理アドレスが出力される。
CLKは外部人力クロックであり、本発明のデータ処理
装置100の動作クロックと同一周波数のクロックであ
る。
データアドレスストローブDASII (lよ負論理を
表す)はアドレスピンに出力されたデータアドレスが有
効であることを示す。
リードライトR/IIIはデータビンでのバスサイクル
が入力であるか出力であるかを区別する。
データストローブDSIは本発明のデータ処理装置10
0がデータ入力準備を完了したことまたは本発明のデー
タ処理装置1if100からデータが出力され1 7ま たことを示す。
DCIIは本発明のデータ処理装置100にデータアク
セスサイクルを終了してもよいことを通知する信号であ
る。
BAT(0:2)は第28図に示す様に、アドレスピン
とデータビンとの値の意味を示す。
命令アドレスストローブIASIはアドレスピンに出力
された命令アドレスが有効であることを示す。
命令ストローブl5IIは本発明のデータ処理装置10
0が命令入力準備を完了したことを示す。
Iceは本発明のデータ処理装置100に命令アクセス
サイクルを終了してもよいことを通知する信号である。
ホールドリクエスト1lRt!01は本発明のデータ処
理袋N100にバス権を要求する信号であり、HACK
Iは本発明のデータ処理装置100がホールドリクエス
トHREOIを受付けてバス権を他のデバイスに渡した
ことを示す信号である。
IREO(0:2)は外部割込み要求信号である。
IACKIは本発明のデータ処理装置100が外部割込
みを受付け、割込みベクトルアクセスサイクルを行って
いることを示す信号である。
(6,2) r外部デバイスのアクセス」本発明のデー
タ処理装置100を用いた第6図に示したシステムの例
では、本発明のデータ処理装置!100とデータキャッ
シュ107.108とがデータビンに接続するデータバ
ス102.  アドレスピンに接続するアドレスバス1
01ノ他、BAT(0:2)、 DASI。
R/Wl、 DSII、 DCIIでも接続されている
本発明のデータ処理装置100と命令キャッシュ11と
は命令ピンに接続する命令バス1o3.  アドレスバ
ス101の他、BAT(0:2)、 IAS#、 1s
11. IC0T!も接続されている。
CLKハシステム全体に供給されシステムの基本タイミ
ングを決定するクロックである。
標準アクセスモードでのバスアクセスに際しては、デー
タバス102を用いたデータアクセスと命令バス103
を用いた命令アクセスとをそれぞれ十分高速な外部のメ
モリに対して外部入力クロックCLKの2サイクルに1
度の速度で行う。
クワッドアクセスモードでのバスアクセスに際しては、
データバス102を用いたデータアクセスと命令バス1
03を用いた命令アクセスとをそれぞれ十分高速な外部
のメモリに対して外部入力クロフクCLKの5サイクル
に4度の速度で行う。
アドレスバス101はデータキャッシュ107.108
のアクセスと命令キャッシュ106のアクセスとの両方
に利用される。
(7)「本発明のデータ処理装置の例外処理機能」(7
,1) r本発明のデータ処理装置で検出されるEIT
の種類」 本発明のデータ処理装置100で発生するBITには、
命令に依存しないBITとして、アクセスした論理アド
レスに対応するデータ及び命令が主メモリ109上にな
くページフォールトが発生した場合に検出されるページ
不在例外、論理アドレスを物理アドレスに変換中に発生
するエラ−1メモリ保護違反及びT10領域に関する不
当なアクセスが生じた場合に発生するアドレス変換例外
、命令またはオペランドアクセスにおいて一定時間以内
にバスからの応答がなくメモリアクセスが実行されなか
った場合に発生するバスアクセス例外がある。
また、命令に依存して発生するEITとして、ジャンプ
命令のジャヤンブ先アドレスが奇数であった場合に発生
する奇数アドレスジャシブトラップ割当てられていない
命令及びアドレッシングモードのビットパターンを実行
しようとした場合に発生する予約命令例外、整数演算で
0除算を行なった場合に発生するゼロ除算トラップ、浮
動小数点命令を実行した際にマスクされていない例外を
検出した場合に発生する浮動小数点演算トラップ。
TRAPA命令により発生する無条件トラップ、 TR
AP/cc命令により発生する条件トラップがある。
その他、命令のアドレスがブレイクポイントにヒントし
た場合あるいはシングルステツブモードで命令を実行し
た場合に発生するセルフデバッグトラップ、更には外部
からのハードウェア信号により発生する外部割込み、イ
ンサーキット・エミュレータ用のハードウェア割込みで
あるデバッガ−割込みがある。
5 6 (7,2) rEIT処理ハンドラを起動する時の動作
」本発明のデータ処理袋W100ではEITを検出する
と、以下の手順に従うマイクロプログラムが実行され、
BIT処理ハンドラが起動される。
まず、検出したEITに応じたベクトル番号が本発明の
データ処理袋W100内部で生成される。
次に、メモリ空間上にあり、それぞれのEITに対する
処理ハンドラの先頭アドレスとBITのベクトルとがペ
アにして記憶されているBITベクトルテーブルがアク
セスされる。
EITベクトルテーブルの各エントリは8バイトで構成
されており、EIT処理ハンドラに処理が移る前に本発
明のデータ処理装置100のプロセンサステータスワー
ド(PSW)を更新するためのデータが含まれている。
次に、E1↑処理ハンドラから復帰した後に元の命令列
に戻るための戻り先命令の論理アドレスであるNEXT
PC,EITを起動する前のPSW、  及び検出した
BITの番号等の検出したBITに関する各種の情報で
あるBITINFがスタックに退避される。
更に必要であれば、BITを検出した命令の論理アドレ
ス等の情報もスタックに退避される。
これらの処理により生成されるスタックフレームはBI
Tの種類に依存しており、第3図に示す如き5種類のフ
ォーマントに分かれる 次に、読込まれたBITベクトルテーブルエントリに基
づいてPSWが更新される。この際、P舗にresσr
vedの値がセントされようとするとシステムエラーと
なる。このPSWの更新により、メモリ保護情報となる
リング番号の更新、アドレス変換の有無の切換え、デバ
ッグ環境の切り換え1割込みマスクレベルの切換え、浮
動小数点演算トラップ受付モードの切換えを行うこと可
能になる。
次に、EITテーブルのエントリからフェッチされたP
C値へのジャンプが行われ、ErT処理ハンドラが起動
する。多重にEITが検出されており、未処理のBIT
が抑止されていない場合はBIT処理ハンドラの先頭命
令を実行する以前にその未処理のETTに対するBTT
処理ハンドラを起動するための処理が行われる。
(7,3)  rEIT処理ハンドラから元の命令列へ
の復帰動作」 ETT処理ハンドラによる各BITに対応する処理が終
了した後、BIT処理ハンドラで最後に実行されるRE
IT命令では以下のような処理を行うマイクロプログラ
ムが実行されて元の命令列に復帰する処理を行う。
まず、スタックからBITが検出された時点のpsw値
とBITINFとが読込まれる。続いてスタックから戻
光命令の論理アドレスが読込まれる。
更に、BITINF中のフォーマット情報により追加情
報の有無が判定され、追加情報があればスタックからそ
れが読込まれる。追加情報は第1図に示した5つのフォ
ーマットに依存してそれぞれ異なる。
次に、スタックから読込まれたEITが検出された時点
のpsw値に従ってPS−の全フィールドが[7発生前
の値に復帰される。
フォーマット5のBITから復帰する際は、BITを発
生したストアバッファによるライトサイクルの再実行を
REIT命令の実行中に行なう場合がある。
この場合、ライトサイクルの再実行に必要な論理アドレ
ス及びストアデータとしては、スタック上の追加情報の
中にある5TADDR,5TDATAH,5TDATA
Lが使用される。
次に、スタックから読込まれた戻り先命令の論理アドレ
スへのジャンプが実行され、元の命令列に復帰する。
(7,4) rEITスタックフレームの詳細」EIT
の検出に伴ってスタックに退避され、BIT処理ハンド
ラへのパラメータとなる情報であるBITスタックフレ
ームは、BITの処理に依存して第3図に示す5つのフ
ォーマントに分かれる。
フォーマット番号0のフォーマントは、予約命令例外と
外部割込みの際に形成されるスタックフレームのフォー
マントである。
フォーマント番号2のフォーマントは、セルフデバッグ
トラップ、奇数アドレスジャンプトラップ、ゼロ除算ト
ラップ、条件トラップ、無条件トラップの際に形成され
るスタックフレームのフォ9 0 −マソトである。
フォーマット番号3のフォーマットは、デバッガ−割込
みの際に形成されるスタックフレームのフォーマットで
ある。
フォーマント番号4のフォーマントは、浮動小数点演算
トラップの際に形成されるスタックフレームのフォーマ
ントである。
フォーマント番号5のフォーマントは、ページ不在例外
、アドレス変換例外、バスアクセス例外の際に形成され
るスタックのフォーマットである。
第3図において、PSW 10はEITが検出された時
点の本発明のデータ処理装置100のps−値、EIT
INFllはEITフレームのスタックフォーマット及
びEIT番号とBITのタイプからなる[BITに関す
る制御情報、 Nl!XTPC12はR[!TT命令で
BIT処理ハンドラから戻った後に実行する命令の論理
アドレス、 EXPC13はEITの検出時にEステー
ジ35で実行していた命令の論理アドレス、 l0IN
FO14a、 l0INPI 15a101NPn 1
6aはストアバッファで未処理のデータに関するメモリ
アクセスのための情報、 5TPCO14b。
5TPCI 15b、 5TPCn 16bはストアバ
ッファで未処理のデータに関するストア動作を行った命
令の論理アドレス、 5TADDRO14c、 5TA
DDRI 15c、 5TADDRn16cばストアバ
ッファで未処理のデータのストア先論理アドレス、 5
DATAOH14d、  5TDATAII+ 15d
5TDATAnH16dはストアバッファで未処理のデ
ータの上位4バイト、 5DATAO1,14e、  
5TDATAIL 15eSTDATAnL 16eは
ストアバッファで未処理のデータの下位4バイト、 B
ITDATA)I 17aは浮動小数点演算で例外検出
の原因となったデータの上位4バイト。
EITDATAL 17bは浮動小数点演算で例外検出
の原因となったデータの下位4バイト5RCH17cは
浮動小数点演算で例外検出の原因となった演算の第1オ
ペランドの上位4バイト、 5RCL 17dは浮動小
数点演算で例外検出の原因となった演、算の第1オペラ
ンドの下位4バイト+ DBSTH17eは浮動小数点
演算で例外検出の原因となった演算の第2オペランドの
上位4バイト、 DI!STL 17fは浮動小数点演
算で例外検出の原因となった演算の第2オペランドの下
位4バイトSP11BはBIT検出時点の割込み処理用
スタックボインクである。
以上のように本発明のデータ処理装置では、ETTに応
じて豊富な情報を含むスタックフレームを形成し、必要
な情報をBIT処理ハンドラに渡す。特にフォーマント
番号4のフォーマントでは、例外を発生した命令のアド
レス及び例外を発生した演算の2つのソースオペランド
と、例外原因となった演算結果とをすべてスタックに退
避するので、例外処理ハンドラで例外原因の解析及びそ
の対応処理を行うために必要な情報が純分に得られる。
本発明のデータ処理装置の各BITのBITヘクトル番
号、  BITの名称、  BITのタイプ、  EI
Tスタックフォーマットを第31図の模式図に示す。
3 4 (7,5) rEIT処理ハンドラの動作例」第1図は
pswのFEビット23が“1″であり、ユーザプログ
ラムの整数演算命令Bの実行中に、命令Bより以前に実
行が開始された浮動小数点演算命令Aでマスクされてい
ない浮動小数点演算トラップが検出され、浮動小数点演
算命令Bの終了時点で整数演算命令Aに対する浮動小数
点演算トラップが起動されてBIT処理ハンドラで例外
処理を行う場合のプログラムの流れの例を示す模式図で
ある。
第1図においてBIT処理ハンドラが起動する際の処理
手順を第32図のフローチャートに、EIT処理ハンド
ラからユーザプログラムへ戻る際の処理手順を第33図
のフローチャートにそれぞれ示す。
まず、整数演算命令Aの実行に際して、マスクされてい
ない浮動小数点演算トラップ(F[!T)であるアンダ
フローが発生し、これが浮動小数点演算命令Bの終了時
点で検出される(ステップ31)。
次に、BIT検出時点のPSWが作業用レジスタに退避
され、またPS−のRNG 21が00″にセントされ
る(ステップS2)。
次に、EITのベクトル番号29がデータ処理装置内で
生成され、このEITベクトル番号29に対応するEI
TテーブルエントリからEITに対するEITベクトル
とEFTハンドラの先頭番地とがフェッチされ、−旦作
業用レジスタにストアされる(ステップS3)。なおこ
の際、BITベクトル中のFI!ビット23の値は“0
″に指定される。
次に、作業用レジスタに退避されているEIT検出時点
のPS−とEITベクトルとから新たな23w値が決定
され、これがPSuにセントされる(ステップS4)。
この際、EITのFEビット23が“0″にされてEI
T検出モードが切換えられる。
次に、整数演算命令Aの二つのオペランドとオーバフロ
ーを起こした演算結果とがEITDATAH17a。
EITDATAL 17b、 5RCH17c、 5R
CL 17d、 DI!STH17e。
口ESTL 17fとしてそれぞれスタックに退避され
る(ステップS5)。
次に、整数演算命令Aの論理アドレスがEXPS 12
としてスタックに退避され、浮動小数点演算命令Bの直
後に引続く整数演算命令Cの論理アドレスがNEXTP
C12としてスタックに退避される(ステップ36)。
次に、EITのBITベクトル番号29とIEITタイ
プ番号3とBITスタックフォーマット番号4とからな
る情報がBITINF 11としてスタックに退避され
る(ステップ37)。
そして、作業用レジスタからEIT検出時点のPSWが
読出され、スタックに退避される(ステップS8)。
最後に、作業用レジスタからEITに対するBITハン
ドラの先頭番地が読出され、そのアドレスへのジャンプ
が実行される(ステップS9)。
ユーザプログラムへ戻る場合の処理手順は以下の如くで
ある。
まず、スタックからBIT発生時点のPs−値がフェッ
チされて作業レジスタに退避される(ステップ511)
次に、スタックからEITINFがフェッチされ、スタ
ックフォーマット番号であるForma tがらスタッ
クフレームのフォーマット4が判明する (ステップ5
12)。
次に、スタックからNEXTPC12とEXPC13と
がフェッチされ、作業レジスタに退避される(ステップ
513)。
次に、スタックポインタが“+24′′インクリメント
され、残りのデータがスタックからクリアされる (ス
テップ514)。
そして、作業用レジスタからBIT発生時点のPS賀が
読出され、この値でP聞が更新される(ステップ515
)。この際、FBビット23は“0”から“1”に書換
えられ、BIT検出モードが元の状態に戻る。
最後に、作業レジスタから命令Cの論理アドレスでアル
NEWTPCI2が読出され、そのアドレスへのジャン
プが実行される(ステップ516)。
この例では、ユーザプログラムはPS騨のFI!ビット
23が“1″になることにより実行されるが、浮動小数
点演算トラップに対するBITベクトルで浮動小数点演
算トラップの起動時にPS−のF[!ビットの“0”へ
の切換えが指定され、BIT処理ハンドラは7 8 PSWのFEピントが“o″である状態で実行される。
BIT処理ハンドラでは、STC命令で読出したFSH
の内容とスタ・7りに退避された浮動小数点演算トラッ
プに対する各種情報とに従って、発生した浮動小数点演
算ト′ラップに対する例外処理が実行され、LDC命令
でFs−のEST 53がクリアされる。その後、RE
IT命令が実行されることによりPswは元の状態に復
帰し、Ps−のFBビットが“1″になってユーザプロ
グラムの浮動小数点演算命令Bの直後に引き続く整数円
座命令Cに処理が戻される。
(8)「本発明の他の実施例」 上述の実施例は本発明のデータ処理装置の一構成例であ
り、各機能ブロックの構成は必ずしも上記実施例と同一
構成である必要はない。例えば、ps−は整数演算部に
存在する必要はなく、制御部に存在する構成も可能であ
る。
また、浮動小数点演算トラップのEITスタンクフレー
ムのフォーマットは必ずしも上記実施例通りでなくても
よい。たとえば、例外を起こした浮動小数点命令のアド
レス及び例外に関するデータを含まないフォーマントを
別に定めるような構成も可能である。
[発明の効果] 本発明のデータ処理の第1の発明では、第1の演算命令
である整数演算命令を第1の演算部である整数演算部で
実行し、浮動小数点演算命令を整数演算部と並列に動作
する第2の演算部である浮動小数点演算部で実行し、浮
動小数点演算部で発生した浮動小数点演算トラップの受
付はタイミングをプロセッサ状態語の中のFEビットの
値により切換えることにより、浮動小数点演算トラップ
を整数演算部で実行する命令の切目で即座に受付けるか
、浮動小数点演算トラップが発生しても整数演算部での
命令実行を継続して次の浮動小数点演算命令を浮動小数
点演算部で実行する直前で受付けるかが選択して制御さ
れる。
このため、発生した浮動小数点演算トラップを検出する
処理を早期に行うか次の浮動小数点演算実行前まで遅延
させるかがソフトウェアによりモード制御可能である。
従って、発生した浮動小数点演算トラップを早期に検出
する場合は浮動小数点演算トラップを発生した浮動小数
点演算命令の実行終了後はほとんど命令が実行されてい
ないため、浮動小数点演算トラップの発生原因を解析あ
るいは発生時点の状況への復帰が容易に可能である。
また、発生した浮動小数点演算トラップの検出を次の浮
動小数点演算命令、ウェイト命令の実行直前までマスク
して遅延さゼることにより、発生した浮動小数点演算ト
ラップの検出よりも引続く整数演算命令の処理を優先さ
せることも可能になる。
また本発明のデータ処理装置の第2に発明では、PEビ
ットの切換えを例外処理ベクトルで指定して例外処理ハ
ンドラの起動の際に行うことにより、浮動小数点演算ト
ラップを命令の切目で即座に受付けるモードで実行中の
プログラムで発生した浮動小数点演算トラップに対して
起動された例外処理ハンドラであっても浮動小数点演算
状態語の内容を変更して浮動小数点演算トラップ発生状
態をクリアするまで同じ浮動小数点演算トラップが命令
の切目毎に何度も発生することが回避される。
本発明のデータ処理装置の第3の発明では、例外処理ハ
ンドラから復帰するハンドラ復帰命令を実行する際に、
スタックからフェッチしたPSW値でPEビットの値を
元の値に戻すことにより、元のプログラムにおけるPE
ビットの値とは独立して例外処理ハンドラではPEビッ
トの値を0″にセットすることにより、浮動小数点演算
トラップの検出を遅延した状態で整数演算命令あるいは
シーケンス制御命令等を実行して例外処理を行った後に
元のプログラムに戻ることができる。
本発明のデータ処理装置の第4の発明では、第1のオペ
ランドと第2のオペランドとを対象として浮動小数点演
算命令を実行した際に浮動小数点演算トラップが発生し
た場合に、実行制御部の制御により各オペランドと例外
検出の原因となった演算結果とを外部のメモリ上のスタ
ックエリアにストアした上で例外処理ハンドラが起動す
るため、例外処理ハンドラではスタックにストアされた
こ1 2 れらの値を利用して容易に例外原因の解析及び例外処理
を行うことができる。
本発明のデータ処理装置の第5の発明では、浮動小数点
演算トラップを発生した浮動小数点命令のアドレスと浮
動小数点演算トラップを受付LJた際に実行直前であっ
た命令の番地とで例外処理ハンドラから元のプログラム
への戻り番地である次実行命令番地を外部のメモリのス
タックエリアへストアした後に例外処理ハンドラが起動
されるため、例外処理ハンドうではスタックにストアさ
れれいるこれらの値を利用して容易に例外原因の解析を
行い、元のプログラムに戻ることが可能になる。
【図面の簡単な説明】
第1図は本発明のデータ処理装置で浮動小数点演算l−
ランプが発生し、BIT処理ハンドラが起動された場合
のプログラムの制御手順を示す模式図。 第2図は本発明のデータ処理装置のプロセッサ状態語の
構成を示す模式図。 第3図は本発明のデータ処理装置のIErTスタックフ
レームのフォーマントを示す模式図。 第4図は本発明のデータ処理装置の全体の構成を示すブ
ロック図。 第5図は本発明のデータ処理装置のパイプライン処理ス
テージの説明のための模式図。 第6図は本発明のデータ処理装置を用いたデータ処理シ
ステムの構成例を示すブロック図。 第7図は本発明のデータ処理装置の入出力信号を示す模
式図。 第8図は本発明のデータ処理装置の浮動小数点図 演算命令の種類を示す殻。 第9図から第13図は本発明のデータ処理装置の命令の
フォーマントを示す模式図。 第14図から第27図は本発明のデータ処理装置の命令
中のアドレッシングモード指定部のフォーマットを示す
模式図。 第28図は本発明のデータ処理装置のBAT(0:2)
信置 号の意味を示す灸。 第29図は本発明のデータ処理装置の浮動小数点演算モ
ード制御レジスタの構成を示す模式図。 第30図は本発明のデータ処理装置の浮動小数点演算状
態語の構成を示す模式図。 第31図は本発明のデータ処理装置のBITの種類とヘ
クトル番号、タイプ番号、BITスクソクフォーマソト
を示す模式図。 第32図は本発明のデータ処理装置で浮動小数点演算ト
ラップを検出したときのBIT処理ハンドラ起動時の処
理手順の一例を示すフローチャート。 第33図は本発明のデータ処理装置の浮動小数点演算ト
ラップに対するBIT処理ハンドラからの復帰時の処理
手順の一例を示すフローチャート。 109・・・主メモリ  112・・・命令デコード部
 113・・・第1マイクロROM部 114・・・第
2マイクロROM部 117・・・整数演算部 118
・・・浮動小数点演算部なお、各図中同一符号は同−又
は相当部分を示す。

Claims (1)

  1. 【特許請求の範囲】 (1)命令をデコードする命令デコード部と、前記命令
    デコード部でデコードされた第1の種類の演算命令を実
    行する第1の演算部と、前記命令デコード部でデコード
    された第2の種類の演算命令を実行する第2の演算部と
    、前記第2の演算部での第2の種類の演算命令の実行に
    際して例外が発生した場合にこれを受付けて例外処理ハ
    ンドラを起動する制御部と、前記制御部が前記例外を受
    付けるタイミングを定める情報を保持するレジスタとを
    備え、第2の演算部での第2の種類の演算命令である演
    算命令Aの実行に際して例外が発生した場合に、前記レ
    ジスタに保持されている情報が第1の値である場合は、
    第1の演算部が第1の種類の演算命令である演算命令B
    の実行を終了した後から、前記命令デコード部で演算命
    令Bに引続いてデコードされた第1の種類の演算命令で
    ある演算命令Cを第1の演算部が実行する前までの任意
    の第1時点で、前記制御部は前記例外を受付けて例外処
    理ハンドラを起動し、前記レジスタに保持されている情
    報が第2の値である場合は、第1の演算部が第1の種類
    の演算命令である演算命令Dの実行を終了した後から、
    前記命令デコード部で演算命令Dに引続いてデコードさ
    れた第2の種類の演算命令である演算命令Eを第2の演
    算部が実行する前までの間の任意の第2時点で、前記制
    御部は前記例外を受付けて例外処理ハンドラを起動すべ
    くなしてあることを特徴とするデータ処理装置。 (2)命令をデコードする命令デコード部と、前記命令
    デコード部でデコードされたプログラムシーケンス切換
    え命令、前記命令デコード部でデコードされた第1の種
    類の演算命令及び前記命令デコード部でデコードされ前
    記第1の種類の演算命令とは独立に実行可能な第2の種
    類の演算命令を実行する命令実行部と、 前記命令実行部での命令の実行に際して例外が発生した
    場合にこれを受付けて例外処理ハンドラを起動する制御
    部と、 前記命令実行部での第2の種類の演算命令の実行に際し
    て発生した第2の種類の演算に関連する例外を前記制御
    部が受付けるタイミングを定める情報を保持するレジス
    タとを備え、前記命令実行部での第2の種類の演算命令
    の実行に際して例外が発生した場合に、 前記制御部は、前記第2の種類の演算に関連する例外を
    受付け、前記レジスタの保持情報を変更した後に例外処
    理ハンドラを起動すべくなしてあることを特徴とするデ
    ータ処理装置。 3)命令をデコードする命令デコード部と、前記命令デ
    コード部でデコードされた例外処理ハンドラから復帰す
    るためのハンドラ復帰命令、前記命令デコード部でデコ
    ードされたプログラムシーケンス切換え命令、前記命令
    デコード部でデコードされた第1の種類の演算命令及び
    前記命令デコード部でデコードされ前記第1の種類の演
    算命令とは独立に実行可能な第2の種類の演算命令を実
    行する命令実行部と、 前記命令実行部での命令の実行に際して例外が発生した
    場合にこれを受付けて例外処理ハンドラを起動する制御
    部と、 前記命令実行部での第2の種類の演算命令の実行に際し
    て発生した第2の種類の演算に関連する例外を前記制御
    部が受付けるタイミングを定める情報を保持するレジス
    タとを備え、前記命令実行部が前記ハンドラ復帰命令を
    実行する際に、前記レジスタの保持情報が変更されるべ
    くなしてあることを特徴とするデータ処理装置。 (4)命令をデコードする命令デコード部と、前記命令
    デコード部でデコードされた第1の種類の演算命令及び
    前記命令デコード部でデコードされ前記第1の種類の演
    算命令とは独立に実行可能な第2の種類の演算命令を実
    行する命令実行部と、前記命令実行部に接続され、外部
    のメモリにデータをストアするデータ入出力部と、前記
    命令実行部での第2の種類の演算命令の実行に際して例
    外が発生した場合にこれを受付けて例外処理ハンドラを
    起動する制御部とを備え、前記命令実行部での第1のオ
    ペランドと第2のオペランドとを対象とした第2の種類
    の演算命令の実行に際して例外が発生した場合に、前記
    制御部は、前記データ入出力部から前記第1のオペラン
    ドと前記第2のオペランドと前記演算命令の実行結果と
    を外部のメモリヘスドアし、その後例外処理ハンドラを
    起動すべくなしてあることを特徴とするデータ処理装置
    。 (5)命令をデコードする命令デコード部と、前記命令
    デコード部でデコードされた第1の種類の演算命令を実
    行する第1の演算部と、前記命令デコード部でデコード
    された第2の種類の演算命令を実行する第2の演算部と
    、前記第1の演算部と前記第2の演算部とに接続され、
    外部のメモリにデータをストアするデータ入出力部と、 前記第2の演算部での第2の種類の演算命令の実行に際
    して例外が発生した場合にこれを受付けて例外処理ハン
    ドラを起動する制御部とを備え、第2の演算部での第2
    の種類の演算命令である演算命令Aの実行に際して例外
    が発生した場合に、第1の演算部が第1の種類の演算命
    令である演算命令Bの実行を終了した後から、演算命令
    Bに引続いて前記命令デコード部でデコードされた第1
    の種類の演算命令である演算命令Cを実行する前までの
    任意の時点で、前記制御部は前記第2の種類の演算に関
    連する例外を受付け、演算命令Aのアドレスと演算命令
    Cのアドレスとを前記データ入出力部から外部のメモリ
    ヘスドアし、その後例外処理ハンドラを起動すべくなし
    てあることを特徴とするデータ処理装置。 (6)前記第1の種類の演算は整数演算であり、前記第
    2の種類の演算は浮動小数点演算である請求項1、2、
    3、4及び5に記載のデータ処理装置。
JP1299395A 1989-11-16 1989-11-16 データ処理装置 Expired - Fee Related JP2581236B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP1299395A JP2581236B2 (ja) 1989-11-16 1989-11-16 データ処理装置
US08/439,716 US5502827A (en) 1989-11-16 1995-05-12 Pipelined data processor for floating point and integer operation with exception handling

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1299395A JP2581236B2 (ja) 1989-11-16 1989-11-16 データ処理装置

Publications (2)

Publication Number Publication Date
JPH03158928A true JPH03158928A (ja) 1991-07-08
JP2581236B2 JP2581236B2 (ja) 1997-02-12

Family

ID=17872001

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1299395A Expired - Fee Related JP2581236B2 (ja) 1989-11-16 1989-11-16 データ処理装置

Country Status (2)

Country Link
US (1) US5502827A (ja)
JP (1) JP2581236B2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04130537A (ja) * 1990-09-20 1992-05-01 Matsushita Electric Ind Co Ltd データ処理装置
JPH04188229A (ja) * 1990-11-21 1992-07-06 Matsushita Electric Ind Co Ltd 浮動小数点演算処理装置
JP2009134499A (ja) * 2007-11-30 2009-06-18 Nec Electronics Corp データ処理装置及びデータ処理装置の制御方法
JP2013080490A (ja) * 2009-12-22 2013-05-02 Intel Corp 複数のデータ・エレメントの収集及び分散

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5887175A (en) * 1997-02-14 1999-03-23 Integrated Device Technology, Inc. Apparatus and method for managing interrupt delay on floating point error
US6912647B1 (en) 2000-09-28 2005-06-28 International Business Machines Corportion Apparatus and method for creating instruction bundles in an explicitly parallel architecture
US6799262B1 (en) 2000-09-28 2004-09-28 International Business Machines Corporation Apparatus and method for creating instruction groups for explicity parallel architectures
US6883165B1 (en) 2000-09-28 2005-04-19 International Business Machines Corporation Apparatus and method for avoiding deadlocks in a multithreaded environment
US6779106B1 (en) * 2000-09-28 2004-08-17 International Business Machines Corporation Apparatus and method for an enhanced integer divide in an IA64 architecture
US7269714B2 (en) * 2001-09-24 2007-09-11 Broadcom Corporation Inhibiting of a co-issuing instruction in a processor having different pipeline lengths
US6957319B1 (en) * 2003-02-19 2005-10-18 Advanced Micro Devices, Inc. Integrated circuit with multiple microcode ROMs
US7360070B1 (en) * 2003-08-13 2008-04-15 Apple Inc. Specialized processing upon an occurrence of an exceptional situation during the course of a computation
US20060174232A1 (en) * 2005-02-02 2006-08-03 Bluestreak Media Inc. Interger-based calculation method
US8250544B2 (en) * 2008-03-05 2012-08-21 Microsoft Corporation Annotating exception information in a computer program
US10409614B2 (en) * 2017-04-24 2019-09-10 Intel Corporation Instructions having support for floating point and integer data types in the same register
US10474458B2 (en) 2017-04-28 2019-11-12 Intel Corporation Instructions and logic to perform floating-point and integer operations for machine learning
CN113383310A (zh) 2019-03-15 2021-09-10 英特尔公司 矩阵加速器架构内的脉动分解
US20220180467A1 (en) 2019-03-15 2022-06-09 Intel Corporation Systems and methods for updating memory side caches in a multi-gpu configuration
US11934342B2 (en) 2019-03-15 2024-03-19 Intel Corporation Assistance for hardware prefetch in cache access

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5021991A (en) * 1983-04-18 1991-06-04 Motorola, Inc. Coprocessor instruction format
JPS6280743A (ja) * 1985-10-01 1987-04-14 インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション アドレス変換例外処理方法
JP2556870B2 (ja) * 1987-10-02 1996-11-27 健 坂村 データ処理装置
US5043867A (en) * 1988-03-18 1991-08-27 Digital Equipment Corporation Exception reporting mechanism for a vector processor
JPH0682320B2 (ja) * 1988-06-08 1994-10-19 日本電気株式会社 データ処理装置
US5109514A (en) * 1988-07-28 1992-04-28 Sun Microsystems, Inc. Method and apparatus for executing concurrent CO processor operations and precisely handling related exceptions
JP2858140B2 (ja) * 1988-10-19 1999-02-17 アポロ・コンピューター・インコーポレーテッド パイプラインプロセッサ装置および方法
US5134693A (en) * 1989-01-18 1992-07-28 Intel Corporation System for handling occurrence of exceptions during execution of microinstructions while running floating point and non-floating point instructions in parallel
US5075844A (en) * 1989-05-24 1991-12-24 Tandem Computers Incorporated Paired instruction processor precise exception handling mechanism

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04130537A (ja) * 1990-09-20 1992-05-01 Matsushita Electric Ind Co Ltd データ処理装置
JPH04188229A (ja) * 1990-11-21 1992-07-06 Matsushita Electric Ind Co Ltd 浮動小数点演算処理装置
JP2009134499A (ja) * 2007-11-30 2009-06-18 Nec Electronics Corp データ処理装置及びデータ処理装置の制御方法
JP2013080490A (ja) * 2009-12-22 2013-05-02 Intel Corp 複数のデータ・エレメントの収集及び分散

Also Published As

Publication number Publication date
JP2581236B2 (ja) 1997-02-12
US5502827A (en) 1996-03-26

Similar Documents

Publication Publication Date Title
JPH03158928A (ja) データ処理装置
JP3543181B2 (ja) データ処理装置
JPH05224928A (ja) データ処理装置
JPH03185530A (ja) データ処理装置
JPH03186928A (ja) データ処理装置
JPH0766324B2 (ja) データ処理装置
JP2507638B2 (ja) デ―タ処理装置
JPH0810428B2 (ja) データ処理装置
JPH081602B2 (ja) データ処理装置
JPH0215331A (ja) データ処理装置
JPH10232821A (ja) データ処理装置
JPH07120284B2 (ja) データ処理装置
JP3345787B2 (ja) データ処理装置
JP2710994B2 (ja) データ処理装置
JP2504235B2 (ja) デ―タ処理装置
JPH04260926A (ja) ビット検索回路及びそれを備えたデータ処理装置
JPH04109338A (ja) プライオリティエンコーダ及びそれを備えたデータ処理装置
JPH02105937A (ja) データ処理装置
JP2522048B2 (ja) マイクロプロセッサ及びそれを使用したデ―タ処理装置
JP2696578B2 (ja) データ処理装置
JP3147884B2 (ja) 記憶装置及び情報処理装置
KS Central processing unit
JP2928879B2 (ja) データ処理装置
JPH0225932A (ja) データ処理装置
JPH0218621A (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