JPS5943447A - デ−タ処理装置 - Google Patents
デ−タ処理装置Info
- Publication number
- JPS5943447A JPS5943447A JP15262482A JP15262482A JPS5943447A JP S5943447 A JPS5943447 A JP S5943447A JP 15262482 A JP15262482 A JP 15262482A JP 15262482 A JP15262482 A JP 15262482A JP S5943447 A JPS5943447 A JP S5943447A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- exception
- address
- operand
- data
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3861—Recovery, e.g. branch miss-prediction, exception handling
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例外処理」とは、例外発生時の処理であり、デ
ータ処理装置の動作は、正常処理と、例外処理に大別す
ることができる。 ここで、例外発生とは、例えば主メモリアクセス中にペ
ージフォールトが発生し7だとか、或いは、データの受
は渡し中にパリディエラー等が発生ずることである。 データ処理装置の処理性の向上の面で、パイプライン制
# 1−1l:重要で必るが、例外処理を仮雑に12、
例外発生時、正常処理時に於ける余分なオーバヘッドを
生ずることがある。 特に、命令の実行に先行して、予め命令全先取りする先
行詞@++部を有するデータ処理装置dにおいて(徒、
命令の読み出し中に例外が検出さ11ても、それより前
に読み出された命令は1F常で、命令の実行はそのま\
続行できる場合があり、ただちに命令の実行を中止I〜
で例外処理孕することC,得策ではない。 例えば、主メモリアクセス中にページフォールトが発生
じた場合、これより先に読み出された命令に分岐命令が
ある場合に(′lj、ページフォールト処理そのものが
不要であり、余分なオーバーヘッドを防止できる場合が
ある。 本発明は以上の諸点に鑑み発明されたもので、その目的
とするところ・ハ、正常動作時に於ける例外発生による
オーバーヘッド金低減するデータ処」11!装置i?i
′に提供するにある。 本発明の7ド)徴は、命令の実行に先行して主メモリよ
り福令の読み出しを付う命令先取手段に、先取り(−だ
命令および当該命令の主メモリアクセス上のt2す外発
生の・11無を記憶するFjL憶手段金設け、命令デコ
ード手段は、該記憶手段から、命令と、当該命令にiy
、jする例外の有無を受信し、命令解読時に当該命令に
例外が発生しているか市かを判定し、例外処理全行うよ
うにしていることである。 本発明によれば、主メモリからの命令アクセス中に例外
が発生しても、その命令を1吏用する時に、当該命令に
関する例外の有・無f Frg識するようにしているの
で、当該例外発生以前にアクセスした命令については、
その命令の実行金防げず、例外発生によるオーバーヘッ
ドを低減させることができる。 以下、同曲を参照し、本発明の詳細な説明する。。 第1図は、本発明全適用するデータ処理装置が採用して
いる命令形式ケ示すものである。第11図には、3組の
オペランド指定子(O8+ 、O82。 O8,)を持つ3オベジンド葡令を:示(〜ている。 命令語は、オペlノージョン全指定する部分(OP)と
、OPによって定められている個数のオペランド指定子
から構成される。 可変長のオペランド指定子を持つ命令体系は公知である
が、代表的な2つの例を次に示す。 1つは、バローズ社(Burroughs corpo
ra −tion)の計算機B1700kCO,BOL
/RPG向きのアーキテクチャとした時の命令フォーマ
ットであり、これは、rB1700 C0BOL/R
P(1−8−Language、 1058823−0
15. Copyright 1973 。 tlurroughs CorporationJに示
されている。 他の1つけ、J) I;、 0社(Digital E
quipmentCorpor3t 1on)の計算機
VAXI 1/7s oのアーキテクブ〜ヤが[了する
EiJ変長となるオペランド指定イを持つ命令体系であ
り、これki、、rVAX]、IArchitectu
re IIandl)ook、Copyright 1
979Jに示されている。 第3図は、本発明全適用したパイプライン制御データ処
理装置dの一実施例を示すブ「1ツク図でろる。43図
における略41+:と正式の名称は次のような関係にあ
る。 m 31m ニオイテ、上記憶装r1へ゛(MM)30
1ば、前述した可変長の命令及び、この命令が扱うオペ
ランドをd己1意するもので、主1.己・1.気化IJ
1illユ−ツト(MCIJ ) 302ノ!ijH
[IIt’&&j’TJ、、高速ハラ7−fメモリ(1
3M、)303、(8M2 )304との間でデータ
の授受を行う。 320.323,340,342はアドレスバース、
321. 324. 341. 34:3. 410
はデータバスである。 命令フェッチ7ニノト(I F U ) 400 &;
、j、命令ノアドレスk (g活線327に上って1.
13 M 。 303に送出し、命令語の先行読み出し?行う、。 ■]・” U =100に取込まれた命令は、命令テコ
−ドユニットCD’U i 500に、同ベコード及び
〕ペランド指定子単位に4d号線329を介して、べら
れ、テコ−ドされる。3 ア1ごし/ス計■沁コ2ニット(ALI)600・ン、
1、l) IJ500でデコードさノしたアドレッシン
グ士−ド(1,,3活線336を介して−与えられる)
に従って、オペランドの実効アドレスを泪−Qし、ぞの
結宋全メペランドフエツチュニツト(OFU)700に
信号線337をノ「シて出力する。 OF U 700は、AIJ310から渡されたオペラ
ンドのアドレスを16寸線3:30を介して8M2:3
04に送出してオペランド定先行フェッチする。 LS M 2304 QJ、O,F’U70oから渡さ
れたアドレス上のデー リフケイ1゛する。鴇合には、
該データを直ちに、信号線3:31を介して0FtJ7
00に渡し、該当するアドレス」二のデータがない場合
に聞CU302i介してMM301’tアクセスし、前
記アドレス上の〕i”−タラ読み出し、0FU700に
渡−す動作を行う。 実イ■ユニツ)・(EIJ)800は、0F(J700
から信号線338を介してオペランドを受取り、命令を
7や行する−1 ここで、各上ニラ)・は、はぼ独立に動作1ツ、オペラ
ンド間のパイプライン処理を行う。 以[、第3図に示したデータ処理装置の個々のユニット
について、その具体的な実施例ケ第4図〜第8図金参照
り、て説明する。 第4図は、IFU400の構成を示すもので、と(−で
使用されている略称と正式の名称θ、次のような関係に
ある。 I F U 400の主たる構成要素I1.J1.8M
1303から読み出ず命令のアドレスを送出−するフェ
ッチポインタ(F I)) 404と、先行して読み出
したデータを蓄えておく命令バッファ(I B ) 4
0 J−と、IFU400の内部動作及びBM、303
へのメモリアクセスの制御を行うための1il] &v
回路(IF−CONT)403と、F’P404の内容
をインクリメントするための・fンクリメンク(INC
)406と、FP 404にセラ)・するガ=−りを選
択するセレクタ(SEL)405及びll3401内に
先行し7て翫み出さ71.ている命令を、アドレス11
Aに」:9で次にノーコードずべきID1にピッ[・単
位に、114べ換え−C取り出す働きを行う命令アライ
ナ(ALIG)402と、命令アクセス時に発生しプこ
例外の要因f: ’−ド化シフ/(−信号として記憶す
るレジ〜く夕(II号XCJ、’J、(、) 407で
ある。 ンqI[NイI1.1、命令デコードユニット(1,)
’U )500の具体的’l’i :+’7成を示す
もので、ここで使用されている略称と正式の名称は次の
ような関係にろる。 μプログラムアドレス生成回路(+4csAG )50
1ば、IIi’U400から信号線329を介しゞ、て
与えられるオペコードによって1y U 800で実行
される先頭のマイクロプログジノ・アドレスIOBを生
成する。 オペラッド用情報メモリ(DO8)503&よ、信号線
329よりセレクタ(S 1=: L I 5 (12
を介して与えられるオペコード中のオペランド間門する
情報を格納する。 オペランド指定子デコーダ(OS−1)EC)505ば
、(i4号線329中のオペランド指定子をデコードす
る。 制御ブ6−タ生成回路(ACIG)504は、DC85
03とO8−1)EC505から与えられた情報により
、アト1/ス計A:ユニット(AU)600にてオペラ
ンドのアドレス計算全行うための制御データ336を生
成する。 レジスタ指定モード検出手段(几I)−DEC)506
によ、OS −D 、1シC5tl 5にてデコードさ
れるオペランド指定子(O8)に引き続くO8がレジス
タ指定モードであるか否か全検出するもので、レジスタ
指ノを七−ドであれば、そのレジスタのアドレス12B
Q後述するAU600内のレジスタ(A RR1)61
0にセラ)・する。 デー7− ドビソト(バイト)数算出手段(DBNC)
507は、08−DEC505およびRD−DEC50
6からの16号を受ha +〜で、IB401から読み
出して、そのザイクルでデコードすべきピット数或いは
バイト数の算出をイテう。 データアライナ(1) −ALIG ) 508ば、0
8−D−1ルC505にてデコー ドするO8が、リノ
ーラルデータ、ディスプレイスメント、するいは、絶対
アドレスのいずれか全含む場合、こハを取出し2て並べ
換える動作全行う。 制御回路(D −C0NT ) 509 k:Jl、I
F−CONT403からの信号12A−ケ受1ト1シて
DU500全体の動作全制御する。 l/レジスタDP+510i:、そのザイクルにてデコ
ードする先頭のアドレスを示す。 セレクタ(SEJ、、)511は、DP510&こセッ
トするデータ金選択する。 インクリJ ンタ(INC)512B、DP5JOの内
科1゜1Aをそのザイクルにでデコード(7グこ命令の
ビット数だけ加算する。 デコードに必−決ろニビツl−(バイト)矛;!n:出
手↓友(NBNC) 513に11.08−T)EC5
05からの信号を受信して、I I3401からaみ出
して−ぞのザイクルにてデコードするのに必安なビット
数(バイト)の算出を行う。”アドレスyitt′p用
プIlグラムカランタ値算出手段(TPCC)514け
デコードするO Sのプログラムカウンタ相対のアド
レス計5)を行うために必要なプログラムカウンタのイ
直金幻出−する。 命令アメ′十ス例外検出手段(IECPD)515・;
1、デ、コードする命令中に、命令アクセスでページノ
オーノ1川・或いはパリティエラー等の例外が発生1.
た命令か否かを検出する。。 命令例夕)構出手段(I V D ) 516は、アト
レッジソゲモードエラーや特権命令違反など全検出する
。 L/レジスタ川じXCPR)517は、IECPI)5
15及び丁\r ]) 51 (iで検出L7’ζ例外
を記憶するレジスタで、かり、01Lゲー)518ば、
DEXCPR。 517の出力金0 、iLして出力するためのものであ
る。 第6図は、第31凶に示すアドレス計算ユニット(A、
U ) ri 00の4)り成を示すもので、ここで
使用されているill、’i称と1■一式の名称は次の
ような関係にある。 第6図において、レジスタ(A、ER) 601け、第
5図のEC8A()501で生成されたマイク「コブL
】ダラムの先頭アトlメス10Bi保持する。 レジスタ(AC几)602は、第5図のACIG504
の出力である制御データ336を保持する。 デコーダ(A、−DEC+ 603は、AtJ600全
体の動作を制御する。 フラグ(ACVF) 604は、AU310の動作の開
始を指示する。 レジスタ(A几AR)605は、オペランドのアドレス
計算の際に参照されるレジスタのアドレス11f3を記
憶する。 1/ジスタフアイル(ARF)606?′i、オペラン
ドのアドレス計算の際に参照されるレジスタ群である。 セレクタ(S 、1づL)607,608は、演算器(
A−ADRl 609の人力を選択する。 A−ADR609ば、5EL607,608によ1)で
選択された1言号に基づいて、オペランドのアドレスを
求めるための演算を行う。 レジスタ(ARR)610は、オペランド指定子(O8
)に含まれるレジスタのアドレス12Bを保持する。 レジスタ(D R暑611r、t、オペランド指定子(
O8)に含まれるディスプレイスメント、絶対アドレス
、4−)るいはリテラルデータ13Bk保持すル。レジ
スタ(TPC)613は、プログラムカウンタ相対のア
トl/スHト算を行うために必要なプログラムカウンタ
の値1613((保持する。 A−ADR609の出力337ケ、」1、バスドライバ
612を介してバス410に出力される。 パリティチェッカー (PC+61.4,615iIJ
:A−ADR609の入力データ27C,28Cのパリ
ティエラーを検出し、その結果は信号線3xc。 32Cを介してレジスタ(AEXCPR)616に転送
される。レジスタ(AEXCI)几)61Gは、前記パ
リディグ−ニック結果及びDU500からの例外信号4
4Bを記憶する。(JRゲート(01()617は例外
要因がコード化されているAEXCPR,616の出力
音OR(論理オロ)してO’FT、J700に出力する
。 第7図は、第3図に示すオペランドノエノチュ二ツ)
(OFU)700の構成を示すもので、ここで使用され
ている略称と正式の名称は次のより第7図において、レ
ジスタ(OER)701は、マイクロプログラムの先頭
アドレスIOCを保持する。 レジスタ(OFCR) 702は、第6図のA−り、E
C603の出力11Cを保持する。 フラグ(OFCvF)703は0FU700の9作の開
始を指示する。 デコーダ(OF−DEC) 704は、OF U700
全体の動作全制御する。 レジスタ(MA几)705i、j:、オペランドのメモ
リアドレス337を保持する。 セレクタ(SEL)706は、レジスタ(OBR)70
7にセットするデータを選択する。 レジスタ(OBR)707はSEI、706を介して入
力するオペランド金格納する。 データアライナ(OALIG)708は、0BR707
内のデータを並べ換えて、データフォーマットを整える
。 レジスタ(ORR)709は、第6図のA RR610
から与えられるレジスタのアドレス13Cを保持する。 レジスタ(OEMCP几)710は、オベ:ランドク′
−タアクセス時の例外を転送する信号161)、及び上
位ユニットであるAU600からの例外検出信号16C
を記憶する。 ORゲート(OR,)711は0EXCPR,710の
出力31DをORしてEu2O3に出力する。 第8図は、第3図に示す実行ユニッ) (EU)800
の構成を示すもので、ここで使用されている略称と正式
の名称は次のような関係にある。 第8図において、マイクロプログラムコントローラ(M
PC) s 01は、マイクロプログラムメモリ (E
C81802のメモリアドレスをコントロールする。マ
イクロプログラムメモリ802は、MPC801によっ
て指定されたアドレスからマ・fクロプログラムを取り
出シフ、これケ、マイクロ命令レジスタ(MI几)80
3にセットする。 MIIも803の出力は、第6図のOF −D E C
704、MPC801,後述するセレクタ804゜81
4に出力されている。 セ1/クタ804,805は@算器CEALT力806
0入カン′−タを選択する。 レジスタ(MDR)808は、バス450がらのデータ
を一時的に保持する。 汎用レジスタファイル(E几、F)812は、同じ<
EALU806が使用する汎用レジスタ群である。 レジスタ(Iシミ(、AR) 813は、第6図のOJ
もIも709から転送されるレジスタアドレス11 D
’。 保持する。 セレクタ(SEL)814は■弓■もF812のアドレ
スを選択する。 次に、本実施例の正常な場合(例外が発生17ない)に
ついて、その動作ジ−タンスを先に説明する。 IFU400は、F’P404の値をアドレスとしてB
M、303iアクセスし、命令の先読みを行う。BM、
303から読み出されたデータが送られて来/こ時に、
lB4O1内に上目己データが格納できるだけの空エリ
ヤが存在する%Qには、これを取込み、存在しない場合
にはこれを無視する。 上H己空工!J−rが存在するか否かの判断はFP40
4の値と]) I’ 5 t Oからの出力11Aとを
もとにI P−CONT403が行う。本実施例では、
BM。 303からのデータのMe出し巾よりも多くのエリヤが
i B 401に存在する場合に読み出したデータをl
B4O1内に格納する。 ALIG402はDP510の出力0.Aをアドレスと
して、lB4O1の該当するアドレス上の位置を先頭と
し7てアドレス順に揃えてlB4O1内のデータをry
出す。本実施例ではビット単位に揃えて取出すが、もち
ろん命令の基本長がバイトの場合には・・イト単位に揃
えることも可能である。 命令の最初のデコードサイクル時にtよ、DP510は
オペコードのアドレスを示しているため、ALIG40
2から取出される先頭のデータはオペコード部分に相当
し、それに続く第1オペランドのオペランド指定子の部
分が取出される。3命令の途中のデコードザイクルでは
、DP510はオペランド指定子のアドレスを示してい
る場合もあり、この場合にU2、上記アドレスに対応す
るオペランド指寓子を先頭とする一連のデータが取出さ
れる。 ALIG402からの出力329は、少なくとも1組の
オペランド指定子とオペコード部分を含めることができ
るだけの巾を有する。 DU 500はALIG402から取出される命令をデ
コー ドする。]) U 500は常にALIG402
の出力329のデコードを行うが、デコード処理を完了
するだめの条件を次に説明する。 lB4O1内のデコードに使用されるべき有効なデータ
長はFP404とDP510との差によって得られる。 FP404id次のメモリアクセスによってメモリから
読み出すアドレスケ示しでおり、DP510は次にデコ
ー ドすべきメモリアドレスの先頭を示す。従ってF
1) 404はDP51.0に対して、一致、又は進ん
でいる。ゆえにDP510とF 、LJ 404が等し
い時、IB401内にイj効なデー一−夕はない。i)
P 510とF l) 404が等し7〈ない71局
合、F P 404からDP510を引いた値が有効な
データの長さヶ示す。DU500はデコードする7′ζ
めに必要な長きをNBNC513によって算出し信号線
t 3 AによってII”U305内の■F−CONT
403に通知する6、IP〜C0NT403は信号線1
3Aの内容とF P 404とI)P5]、0との差を
比絞し、前渚が後者と等しいか小さい場#7’−1−ド
に必要な長さがlB4O1内にあると判断シフ、信号a
&i2Aによってその旨金D I−J 500内のI)
−CONT 509に通知する。 J)−CONT509は16号線12.A、により、デ
コードに8問なバイト数がI 13401内にあるとい
う通知を受け、さらに信号線15BによってAU600
がデコード結果を受取れる状態である通知を受けた場合
に、I)U 500にてデコードした結果/、cAU6
00に送り、そのデコードサイクルの処理を完了させる
。デコードに必要なデータがI B 401に揃ってい
ない場合、またtよA、U2O5がデコー ド結果を受
は取れる状態でない場合には、そのデコードサイクルの
処理を無効とし、次の一シーイクルにて再度同一の処理
ケ行うように1)−CONT509は制御する。 DBNC507の出力17Bは(1)式で表わさ′iL
7.。 17B−α→−β+γ ・・・・・・(1)
NBNC513の出力13Aは(2)式で表わされる。 13A−α+β→−δ ・・・・・・(2)
ここで、α、βは、 (I)DP510がオペコードのアドレスを示す場合 α=オペコードのビット数 β−該オベコートに続く先頭のオペラ ンド指定子のビット数 (ii)Dpstoがオペランド指定子のアドレス金示
す場合 α=0 β=該オペランド指定子のビット数 である。 γは、 (1)2個のオペランド指定千金同時にデコードする場
合 ン′−レジスタ指定モードのオペランド指定子のビット
数 (ii) 1個のオペランド指定子のみデコードする
場合 γ二〇 である。 δは、 (+) 2 fllIllのオペランド指定子の同時
デコードが許rE工された場合(DC8503によって
指示マΣれる) δてレジスタ指定モードのオペランド 指定子のビット数 (ii) 2個のオペランド指定子の同時デコードが
不許可の場合 δ−=0 である。 命令の最初のデコードサイクルでは、ALLG402か
ら出力される先頭部分はオペコードに相当する。従って
、該先頭部分はD c S 503のアト1/スとして
、I)C8503を記み出tのに使用される、 J) CS 503内には、各命令の1つのオペランド
指定子に、11@ずつアドレスが割当てら!−シている
。DC8503の1語は、第2図に示すように各命令の
オペコードで規定される複数個のオペランド指定子の内
の1個のオペランド指定りのアクセスの区別(リード、
ライト、あるい(7j:リード・アンド・ライト)を示
すフィールド(AJ)と略す)と、データの長さを示す
フィールド(TJ Lと略す)と、前記オペランド指定
子にひき続くオペランド指定子がある場合には、I)
CS 503内の該オペランド指定子に対応するアドレ
スを示すだめのフィールド(JA−と略す)と、命令の
最終のオペランド11−1定子である場合にrよその8
JIを示すフィールド(Eと略す)と、2個のオペラン
ド指定子の同時デコードの許可を示すフィールド(、F
3. I)と略す)と、’F’f’R,’iiR令であ
ることを示すフィールド(SIと略す)から成るーもち
ろん、この他にもいくつかのフィールドを含んでいるが
本発明、には直俊関係しないので一1略する。各命令は
、該命Mが有フ/)オペランド1)(シ、ピ子の数A−
けJ、) CS 503内に、;[1数が割当−こら′
I”fており、例えば3オペランドの命令でQ」、3
irs力臂]]す当てらj′する。もちろん、命弔ゴ1
41で共用しても支障の4・い場合にjd、異なった命
令間でも同一の7トレスをJ5えることによってD(う
55j03のすγ(()の糺ねd’Hケ図ることも町F
jHである。おる痛令の1iv−初σ、)テコ−ドザイ
クル(tl )では、オペニI−ドがI)C8503の
アドレスとなって、第1オペクンドの情報と、trg2
オペランドのDC8503上の一アドレス(JA)、−
t”の他の情報がD CS 503から読み出さノする
。この時、1131メベランドのオペランド1N定子ケ
よA−LIO402VCよってI 134 (l 1か
ら取出されてOS −DEC505(′ζて〕−゛ボー
ドされる4、前記オペランド指定子内Qてディスプレイ
スメント、絶対アドレス、あるいはリテラルデータが言
4れる場合には、J、)−AT、lG508がそれらを
J保出して、チータフオーマット金整えてDR611に
格納する。i) U 500は、上述した手順にてデコ
ードした結果をA U 600の各レジスタにセットす
るとともK、ACVF604衾セットして前記デコード
結果に従って前記オペ77ト指矩子で示されるオペラン
ドのアドレス計算を開始せしめ、−また、そのサイクル
にてデコードした命令のビット数(オペコードと第1オ
ベジンドのオペランド指定子をイjJt成するビット数
)ケDBN0507 Kで算出しiコ(7)(ll’t
i ■N C512にてDP510の1直に刀目えて、
D P 510の内界を更新する。 前記命令が2個以上のオペランド指定子−を持つ命令の
楊付には、前記命令の最初のテコートサイクルの次のサ
イクル(+2 )で、tlの一シーイクルにてI)C8
503から絖み出された情報の内のJAフィールドをア
ドレスとしてJ)C8503からオペコードで規定され
て第2オペノンドの情報が読み出される。同時に、第2
オペランドのオペランド指定子がALIG 402 V
cよ−)てlB4O1A)ら取り出されて08−DEC
505にて前記第1オペランドのオペランド11定子の
デコードと同様な手順に従ってテコ−ドされる。この時
、AU600 カ前ij: 第1オペランドのオペラン
ド指定イのテコ−1・、7+i11果を受けて、そ・リ
オベランドのアドレス計)す、ケ!修丁し1、次のオペ
ランドのアドレス計q、が受付けられる状態となっでい
れば、DU500は、前記第2オペランドのオペランド
指定子のテコ−ド結果をA LJ 600の各t/レジ
スタセットすイ)、]−トもi′i六ACVF ’i
04 kセットして、前記第2オペンンドのオペランド
指定子で示されるオペランドの1′ドレス田算を開始せ
しめ、“土だ、そのヤ、イクル(・こてデコードした6
b令のビット叔(第2オ〈ランド(“)オペランド指定
子音構成ずと)ビット故)をDI3NC507シて°C
算出して、DP510の1的に加えて、D P510の
内’ZYk更新する。 以上i1月況明で明らかなように、])U501J5.
1−r/ンサイクル毎に1個のオペランド指定子の′j
:二7−ドを行い、デコード結果企A、 U 600内
の各レジスタに+ツトt、て、AU600に、そのサイ
クルでテコ−ドし7j帖果に基つくオペランドのアドレ
ス計重、の指令ケ行う鋤r\とともiトi 、節、iの
了lンネ刀のテコ−ドサイクルでに11、号く−J−ド
fD C5503のアドレスとして取込み、以降の一す
イクルで該オペコードで規定される・IH報の取出し7
を行わぜしめゐ。また、オペコードからEC3A()5
01に上っでマイクログ1コグラムの先頭アドレス計算
め−(−1、AE)も601にセラl−J’イ1.。 A U 600ば、J) LJ 5 Q QからあるO
8の〕r:1−ド子古来がAU 130 (月1句伏)
し1.;′バタに設’y’if、さJトで、A−(ビ\
1F(304がセットさlt、た1時(C1該戸−1−
ド績、]F、l−に1Ifl ラてオペランドのアトV
ス1(i !;°r、X1−ri L/1、kJ−出
しし′九」ベランドのアドレス’r OF (J 70
0 内のMA、lL 705に、(、) Ji” U
7130の社山イ午11.1jfi□il l”i″f
報手二〇■喝′C几702にそれぞれ設定し、OF C
\”I!” 7 (13rセツトして、MAlも705
に設置さ)L/こアI・レス上のメモリアクセスを開始
−[j−1,める、 +6る一4ヘランドのオペランド
指定子のアドレス計算がrFos”’j−すると、D
U 500 ンからi訂に己オペランド(I′iボ了・
に続くj−ベランド」11定−F ’<受1]けでA
1.j 6001.+、、該オペランド指定子のアドレ
ス計算を行う。このようにA U 600は1個のオペ
ランド指定子単位・シこぞのオペランド指定子で指定さ
れるオペランドのアドレスパI”:’9: f順次行う
が、必ずしも1マシンザイクルで1 jlt’ilのオ
ペランド指定子のアドレス訂のが完rするとは限らず複
数のマシンサイクルを費ず」7!1合もあるのン」−も
らろんである。′−1:た、あるA′ベランド指定子の
アドレス計算終r後、次のアドレス計吹?、ケするオペ
ランド掬ガ!−了が前6己オ・ベランド指定−j−の属
する命令と同一の命令に属する心安(・]1、ない。A
LJ600は、また、δδ令の先頭の(第1の)オペラ
ンド指定子のアドレス引算終了時に、AER60i内に
格納さ才lている前記命令のマイ、クロノ[1グラム先
頭アドレス10 CkOFU700のOE )1.70
1に転送する。 0FU700は、A U 600からあるオペランド指
定fのアドレス計算情報がMAR705に、OF U
700の動作ml]御情報がOFCR702にそt〕ぞ
わ楢゛叔さIし、0FCVF703がセットされた時に
、メモリアクセスを開始する。リードしたデータはOB
B ’707 K格納し、0ALI0708 Kでデ
ータのフォーマットケ整7ぐ−てE r、、+ 8 (
I Qに転送する。才だ、(、) F” U 700ば
、l′+1′i令の先頭(第1)のオペランド指定子の
メモリア、り十スの一シー1クルにて0ER701に格
納され−CいA:マイクロフロクラム先頭アドレスf
J’2 U 8 (10)M P C801に転送する
。但し、前、j[:オペ二ンンド1)i定子のアドレッ
シングモードがリチンルアヒータ〆、・1)場合Vこは
メモリアクセスは行なわないが、この時はへfAl(,
705に渡されたリテラルブ一一−一夕のオペランド金
OJ3 fも707に転送する時にマイ2多ロブログラ
ム先頭アドレスをMPC801に転送する。 上述し7だように、I) U 500にて方、:1−
ドされた命令に関する情報(オペコード及びオペラン
ド指定子)は、AU600,0F(J7(10’i順に
経由してEu2O3に伝達される。。 E [J 800は、MPC801に渡されたマイクロ
プログラム先頭アドレスからE CS 802 iアク
セスしてマイクロ命令を読み出1−2、命令の実行を開
始する。オペランド指定子で規定されるオペランドは、
0I3Jl、707又は、レジスタアドレスと
制御データ処理装置の例外処理に関するものである。 ここで1例外処理」とは、例外発生時の処理であり、デ
ータ処理装置の動作は、正常処理と、例外処理に大別す
ることができる。 ここで、例外発生とは、例えば主メモリアクセス中にペ
ージフォールトが発生し7だとか、或いは、データの受
は渡し中にパリディエラー等が発生ずることである。 データ処理装置の処理性の向上の面で、パイプライン制
# 1−1l:重要で必るが、例外処理を仮雑に12、
例外発生時、正常処理時に於ける余分なオーバヘッドを
生ずることがある。 特に、命令の実行に先行して、予め命令全先取りする先
行詞@++部を有するデータ処理装置dにおいて(徒、
命令の読み出し中に例外が検出さ11ても、それより前
に読み出された命令は1F常で、命令の実行はそのま\
続行できる場合があり、ただちに命令の実行を中止I〜
で例外処理孕することC,得策ではない。 例えば、主メモリアクセス中にページフォールトが発生
じた場合、これより先に読み出された命令に分岐命令が
ある場合に(′lj、ページフォールト処理そのものが
不要であり、余分なオーバーヘッドを防止できる場合が
ある。 本発明は以上の諸点に鑑み発明されたもので、その目的
とするところ・ハ、正常動作時に於ける例外発生による
オーバーヘッド金低減するデータ処」11!装置i?i
′に提供するにある。 本発明の7ド)徴は、命令の実行に先行して主メモリよ
り福令の読み出しを付う命令先取手段に、先取り(−だ
命令および当該命令の主メモリアクセス上のt2す外発
生の・11無を記憶するFjL憶手段金設け、命令デコ
ード手段は、該記憶手段から、命令と、当該命令にiy
、jする例外の有無を受信し、命令解読時に当該命令に
例外が発生しているか市かを判定し、例外処理全行うよ
うにしていることである。 本発明によれば、主メモリからの命令アクセス中に例外
が発生しても、その命令を1吏用する時に、当該命令に
関する例外の有・無f Frg識するようにしているの
で、当該例外発生以前にアクセスした命令については、
その命令の実行金防げず、例外発生によるオーバーヘッ
ドを低減させることができる。 以下、同曲を参照し、本発明の詳細な説明する。。 第1図は、本発明全適用するデータ処理装置が採用して
いる命令形式ケ示すものである。第11図には、3組の
オペランド指定子(O8+ 、O82。 O8,)を持つ3オベジンド葡令を:示(〜ている。 命令語は、オペlノージョン全指定する部分(OP)と
、OPによって定められている個数のオペランド指定子
から構成される。 可変長のオペランド指定子を持つ命令体系は公知である
が、代表的な2つの例を次に示す。 1つは、バローズ社(Burroughs corpo
ra −tion)の計算機B1700kCO,BOL
/RPG向きのアーキテクチャとした時の命令フォーマ
ットであり、これは、rB1700 C0BOL/R
P(1−8−Language、 1058823−0
15. Copyright 1973 。 tlurroughs CorporationJに示
されている。 他の1つけ、J) I;、 0社(Digital E
quipmentCorpor3t 1on)の計算機
VAXI 1/7s oのアーキテクブ〜ヤが[了する
EiJ変長となるオペランド指定イを持つ命令体系であ
り、これki、、rVAX]、IArchitectu
re IIandl)ook、Copyright 1
979Jに示されている。 第3図は、本発明全適用したパイプライン制御データ処
理装置dの一実施例を示すブ「1ツク図でろる。43図
における略41+:と正式の名称は次のような関係にあ
る。 m 31m ニオイテ、上記憶装r1へ゛(MM)30
1ば、前述した可変長の命令及び、この命令が扱うオペ
ランドをd己1意するもので、主1.己・1.気化IJ
1illユ−ツト(MCIJ ) 302ノ!ijH
[IIt’&&j’TJ、、高速ハラ7−fメモリ(1
3M、)303、(8M2 )304との間でデータ
の授受を行う。 320.323,340,342はアドレスバース、
321. 324. 341. 34:3. 410
はデータバスである。 命令フェッチ7ニノト(I F U ) 400 &;
、j、命令ノアドレスk (g活線327に上って1.
13 M 。 303に送出し、命令語の先行読み出し?行う、。 ■]・” U =100に取込まれた命令は、命令テコ
−ドユニットCD’U i 500に、同ベコード及び
〕ペランド指定子単位に4d号線329を介して、べら
れ、テコ−ドされる。3 ア1ごし/ス計■沁コ2ニット(ALI)600・ン、
1、l) IJ500でデコードさノしたアドレッシン
グ士−ド(1,,3活線336を介して−与えられる)
に従って、オペランドの実効アドレスを泪−Qし、ぞの
結宋全メペランドフエツチュニツト(OFU)700に
信号線337をノ「シて出力する。 OF U 700は、AIJ310から渡されたオペラ
ンドのアドレスを16寸線3:30を介して8M2:3
04に送出してオペランド定先行フェッチする。 LS M 2304 QJ、O,F’U70oから渡さ
れたアドレス上のデー リフケイ1゛する。鴇合には、
該データを直ちに、信号線3:31を介して0FtJ7
00に渡し、該当するアドレス」二のデータがない場合
に聞CU302i介してMM301’tアクセスし、前
記アドレス上の〕i”−タラ読み出し、0FU700に
渡−す動作を行う。 実イ■ユニツ)・(EIJ)800は、0F(J700
から信号線338を介してオペランドを受取り、命令を
7や行する−1 ここで、各上ニラ)・は、はぼ独立に動作1ツ、オペラ
ンド間のパイプライン処理を行う。 以[、第3図に示したデータ処理装置の個々のユニット
について、その具体的な実施例ケ第4図〜第8図金参照
り、て説明する。 第4図は、IFU400の構成を示すもので、と(−で
使用されている略称と正式の名称θ、次のような関係に
ある。 I F U 400の主たる構成要素I1.J1.8M
1303から読み出ず命令のアドレスを送出−するフェ
ッチポインタ(F I)) 404と、先行して読み出
したデータを蓄えておく命令バッファ(I B ) 4
0 J−と、IFU400の内部動作及びBM、303
へのメモリアクセスの制御を行うための1il] &v
回路(IF−CONT)403と、F’P404の内容
をインクリメントするための・fンクリメンク(INC
)406と、FP 404にセラ)・するガ=−りを選
択するセレクタ(SEL)405及びll3401内に
先行し7て翫み出さ71.ている命令を、アドレス11
Aに」:9で次にノーコードずべきID1にピッ[・単
位に、114べ換え−C取り出す働きを行う命令アライ
ナ(ALIG)402と、命令アクセス時に発生しプこ
例外の要因f: ’−ド化シフ/(−信号として記憶す
るレジ〜く夕(II号XCJ、’J、(、) 407で
ある。 ンqI[NイI1.1、命令デコードユニット(1,)
’U )500の具体的’l’i :+’7成を示す
もので、ここで使用されている略称と正式の名称は次の
ような関係にろる。 μプログラムアドレス生成回路(+4csAG )50
1ば、IIi’U400から信号線329を介しゞ、て
与えられるオペコードによって1y U 800で実行
される先頭のマイクロプログジノ・アドレスIOBを生
成する。 オペラッド用情報メモリ(DO8)503&よ、信号線
329よりセレクタ(S 1=: L I 5 (12
を介して与えられるオペコード中のオペランド間門する
情報を格納する。 オペランド指定子デコーダ(OS−1)EC)505ば
、(i4号線329中のオペランド指定子をデコードす
る。 制御ブ6−タ生成回路(ACIG)504は、DC85
03とO8−1)EC505から与えられた情報により
、アト1/ス計A:ユニット(AU)600にてオペラ
ンドのアドレス計算全行うための制御データ336を生
成する。 レジスタ指定モード検出手段(几I)−DEC)506
によ、OS −D 、1シC5tl 5にてデコードさ
れるオペランド指定子(O8)に引き続くO8がレジス
タ指定モードであるか否か全検出するもので、レジスタ
指ノを七−ドであれば、そのレジスタのアドレス12B
Q後述するAU600内のレジスタ(A RR1)61
0にセラ)・する。 デー7− ドビソト(バイト)数算出手段(DBNC)
507は、08−DEC505およびRD−DEC50
6からの16号を受ha +〜で、IB401から読み
出して、そのザイクルでデコードすべきピット数或いは
バイト数の算出をイテう。 データアライナ(1) −ALIG ) 508ば、0
8−D−1ルC505にてデコー ドするO8が、リノ
ーラルデータ、ディスプレイスメント、するいは、絶対
アドレスのいずれか全含む場合、こハを取出し2て並べ
換える動作全行う。 制御回路(D −C0NT ) 509 k:Jl、I
F−CONT403からの信号12A−ケ受1ト1シて
DU500全体の動作全制御する。 l/レジスタDP+510i:、そのザイクルにてデコ
ードする先頭のアドレスを示す。 セレクタ(SEJ、、)511は、DP510&こセッ
トするデータ金選択する。 インクリJ ンタ(INC)512B、DP5JOの内
科1゜1Aをそのザイクルにでデコード(7グこ命令の
ビット数だけ加算する。 デコードに必−決ろニビツl−(バイト)矛;!n:出
手↓友(NBNC) 513に11.08−T)EC5
05からの信号を受信して、I I3401からaみ出
して−ぞのザイクルにてデコードするのに必安なビット
数(バイト)の算出を行う。”アドレスyitt′p用
プIlグラムカランタ値算出手段(TPCC)514け
デコードするO Sのプログラムカウンタ相対のアド
レス計5)を行うために必要なプログラムカウンタのイ
直金幻出−する。 命令アメ′十ス例外検出手段(IECPD)515・;
1、デ、コードする命令中に、命令アクセスでページノ
オーノ1川・或いはパリティエラー等の例外が発生1.
た命令か否かを検出する。。 命令例夕)構出手段(I V D ) 516は、アト
レッジソゲモードエラーや特権命令違反など全検出する
。 L/レジスタ川じXCPR)517は、IECPI)5
15及び丁\r ]) 51 (iで検出L7’ζ例外
を記憶するレジスタで、かり、01Lゲー)518ば、
DEXCPR。 517の出力金0 、iLして出力するためのものであ
る。 第6図は、第31凶に示すアドレス計算ユニット(A、
U ) ri 00の4)り成を示すもので、ここで
使用されているill、’i称と1■一式の名称は次の
ような関係にある。 第6図において、レジスタ(A、ER) 601け、第
5図のEC8A()501で生成されたマイク「コブL
】ダラムの先頭アトlメス10Bi保持する。 レジスタ(AC几)602は、第5図のACIG504
の出力である制御データ336を保持する。 デコーダ(A、−DEC+ 603は、AtJ600全
体の動作を制御する。 フラグ(ACVF) 604は、AU310の動作の開
始を指示する。 レジスタ(A几AR)605は、オペランドのアドレス
計算の際に参照されるレジスタのアドレス11f3を記
憶する。 1/ジスタフアイル(ARF)606?′i、オペラン
ドのアドレス計算の際に参照されるレジスタ群である。 セレクタ(S 、1づL)607,608は、演算器(
A−ADRl 609の人力を選択する。 A−ADR609ば、5EL607,608によ1)で
選択された1言号に基づいて、オペランドのアドレスを
求めるための演算を行う。 レジスタ(ARR)610は、オペランド指定子(O8
)に含まれるレジスタのアドレス12Bを保持する。 レジスタ(D R暑611r、t、オペランド指定子(
O8)に含まれるディスプレイスメント、絶対アドレス
、4−)るいはリテラルデータ13Bk保持すル。レジ
スタ(TPC)613は、プログラムカウンタ相対のア
トl/スHト算を行うために必要なプログラムカウンタ
の値1613((保持する。 A−ADR609の出力337ケ、」1、バスドライバ
612を介してバス410に出力される。 パリティチェッカー (PC+61.4,615iIJ
:A−ADR609の入力データ27C,28Cのパリ
ティエラーを検出し、その結果は信号線3xc。 32Cを介してレジスタ(AEXCPR)616に転送
される。レジスタ(AEXCI)几)61Gは、前記パ
リディグ−ニック結果及びDU500からの例外信号4
4Bを記憶する。(JRゲート(01()617は例外
要因がコード化されているAEXCPR,616の出力
音OR(論理オロ)してO’FT、J700に出力する
。 第7図は、第3図に示すオペランドノエノチュ二ツ)
(OFU)700の構成を示すもので、ここで使用され
ている略称と正式の名称は次のより第7図において、レ
ジスタ(OER)701は、マイクロプログラムの先頭
アドレスIOCを保持する。 レジスタ(OFCR) 702は、第6図のA−り、E
C603の出力11Cを保持する。 フラグ(OFCvF)703は0FU700の9作の開
始を指示する。 デコーダ(OF−DEC) 704は、OF U700
全体の動作全制御する。 レジスタ(MA几)705i、j:、オペランドのメモ
リアドレス337を保持する。 セレクタ(SEL)706は、レジスタ(OBR)70
7にセットするデータを選択する。 レジスタ(OBR)707はSEI、706を介して入
力するオペランド金格納する。 データアライナ(OALIG)708は、0BR707
内のデータを並べ換えて、データフォーマットを整える
。 レジスタ(ORR)709は、第6図のA RR610
から与えられるレジスタのアドレス13Cを保持する。 レジスタ(OEMCP几)710は、オベ:ランドク′
−タアクセス時の例外を転送する信号161)、及び上
位ユニットであるAU600からの例外検出信号16C
を記憶する。 ORゲート(OR,)711は0EXCPR,710の
出力31DをORしてEu2O3に出力する。 第8図は、第3図に示す実行ユニッ) (EU)800
の構成を示すもので、ここで使用されている略称と正式
の名称は次のような関係にある。 第8図において、マイクロプログラムコントローラ(M
PC) s 01は、マイクロプログラムメモリ (E
C81802のメモリアドレスをコントロールする。マ
イクロプログラムメモリ802は、MPC801によっ
て指定されたアドレスからマ・fクロプログラムを取り
出シフ、これケ、マイクロ命令レジスタ(MI几)80
3にセットする。 MIIも803の出力は、第6図のOF −D E C
704、MPC801,後述するセレクタ804゜81
4に出力されている。 セ1/クタ804,805は@算器CEALT力806
0入カン′−タを選択する。 レジスタ(MDR)808は、バス450がらのデータ
を一時的に保持する。 汎用レジスタファイル(E几、F)812は、同じ<
EALU806が使用する汎用レジスタ群である。 レジスタ(Iシミ(、AR) 813は、第6図のOJ
もIも709から転送されるレジスタアドレス11 D
’。 保持する。 セレクタ(SEL)814は■弓■もF812のアドレ
スを選択する。 次に、本実施例の正常な場合(例外が発生17ない)に
ついて、その動作ジ−タンスを先に説明する。 IFU400は、F’P404の値をアドレスとしてB
M、303iアクセスし、命令の先読みを行う。BM、
303から読み出されたデータが送られて来/こ時に、
lB4O1内に上目己データが格納できるだけの空エリ
ヤが存在する%Qには、これを取込み、存在しない場合
にはこれを無視する。 上H己空工!J−rが存在するか否かの判断はFP40
4の値と]) I’ 5 t Oからの出力11Aとを
もとにI P−CONT403が行う。本実施例では、
BM。 303からのデータのMe出し巾よりも多くのエリヤが
i B 401に存在する場合に読み出したデータをl
B4O1内に格納する。 ALIG402はDP510の出力0.Aをアドレスと
して、lB4O1の該当するアドレス上の位置を先頭と
し7てアドレス順に揃えてlB4O1内のデータをry
出す。本実施例ではビット単位に揃えて取出すが、もち
ろん命令の基本長がバイトの場合には・・イト単位に揃
えることも可能である。 命令の最初のデコードサイクル時にtよ、DP510は
オペコードのアドレスを示しているため、ALIG40
2から取出される先頭のデータはオペコード部分に相当
し、それに続く第1オペランドのオペランド指定子の部
分が取出される。3命令の途中のデコードザイクルでは
、DP510はオペランド指定子のアドレスを示してい
る場合もあり、この場合にU2、上記アドレスに対応す
るオペランド指寓子を先頭とする一連のデータが取出さ
れる。 ALIG402からの出力329は、少なくとも1組の
オペランド指定子とオペコード部分を含めることができ
るだけの巾を有する。 DU 500はALIG402から取出される命令をデ
コー ドする。]) U 500は常にALIG402
の出力329のデコードを行うが、デコード処理を完了
するだめの条件を次に説明する。 lB4O1内のデコードに使用されるべき有効なデータ
長はFP404とDP510との差によって得られる。 FP404id次のメモリアクセスによってメモリから
読み出すアドレスケ示しでおり、DP510は次にデコ
ー ドすべきメモリアドレスの先頭を示す。従ってF
1) 404はDP51.0に対して、一致、又は進ん
でいる。ゆえにDP510とF 、LJ 404が等し
い時、IB401内にイj効なデー一−夕はない。i)
P 510とF l) 404が等し7〈ない71局
合、F P 404からDP510を引いた値が有効な
データの長さヶ示す。DU500はデコードする7′ζ
めに必要な長きをNBNC513によって算出し信号線
t 3 AによってII”U305内の■F−CONT
403に通知する6、IP〜C0NT403は信号線1
3Aの内容とF P 404とI)P5]、0との差を
比絞し、前渚が後者と等しいか小さい場#7’−1−ド
に必要な長さがlB4O1内にあると判断シフ、信号a
&i2Aによってその旨金D I−J 500内のI)
−CONT 509に通知する。 J)−CONT509は16号線12.A、により、デ
コードに8問なバイト数がI 13401内にあるとい
う通知を受け、さらに信号線15BによってAU600
がデコード結果を受取れる状態である通知を受けた場合
に、I)U 500にてデコードした結果/、cAU6
00に送り、そのデコードサイクルの処理を完了させる
。デコードに必要なデータがI B 401に揃ってい
ない場合、またtよA、U2O5がデコー ド結果を受
は取れる状態でない場合には、そのデコードサイクルの
処理を無効とし、次の一シーイクルにて再度同一の処理
ケ行うように1)−CONT509は制御する。 DBNC507の出力17Bは(1)式で表わさ′iL
7.。 17B−α→−β+γ ・・・・・・(1)
NBNC513の出力13Aは(2)式で表わされる。 13A−α+β→−δ ・・・・・・(2)
ここで、α、βは、 (I)DP510がオペコードのアドレスを示す場合 α=オペコードのビット数 β−該オベコートに続く先頭のオペラ ンド指定子のビット数 (ii)Dpstoがオペランド指定子のアドレス金示
す場合 α=0 β=該オペランド指定子のビット数 である。 γは、 (1)2個のオペランド指定千金同時にデコードする場
合 ン′−レジスタ指定モードのオペランド指定子のビット
数 (ii) 1個のオペランド指定子のみデコードする
場合 γ二〇 である。 δは、 (+) 2 fllIllのオペランド指定子の同時
デコードが許rE工された場合(DC8503によって
指示マΣれる) δてレジスタ指定モードのオペランド 指定子のビット数 (ii) 2個のオペランド指定子の同時デコードが
不許可の場合 δ−=0 である。 命令の最初のデコードサイクルでは、ALLG402か
ら出力される先頭部分はオペコードに相当する。従って
、該先頭部分はD c S 503のアト1/スとして
、I)C8503を記み出tのに使用される、 J) CS 503内には、各命令の1つのオペランド
指定子に、11@ずつアドレスが割当てら!−シている
。DC8503の1語は、第2図に示すように各命令の
オペコードで規定される複数個のオペランド指定子の内
の1個のオペランド指定りのアクセスの区別(リード、
ライト、あるい(7j:リード・アンド・ライト)を示
すフィールド(AJ)と略す)と、データの長さを示す
フィールド(TJ Lと略す)と、前記オペランド指定
子にひき続くオペランド指定子がある場合には、I)
CS 503内の該オペランド指定子に対応するアドレ
スを示すだめのフィールド(JA−と略す)と、命令の
最終のオペランド11−1定子である場合にrよその8
JIを示すフィールド(Eと略す)と、2個のオペラン
ド指定子の同時デコードの許可を示すフィールド(、F
3. I)と略す)と、’F’f’R,’iiR令であ
ることを示すフィールド(SIと略す)から成るーもち
ろん、この他にもいくつかのフィールドを含んでいるが
本発明、には直俊関係しないので一1略する。各命令は
、該命Mが有フ/)オペランド1)(シ、ピ子の数A−
けJ、) CS 503内に、;[1数が割当−こら′
I”fており、例えば3オペランドの命令でQ」、3
irs力臂]]す当てらj′する。もちろん、命弔ゴ1
41で共用しても支障の4・い場合にjd、異なった命
令間でも同一の7トレスをJ5えることによってD(う
55j03のすγ(()の糺ねd’Hケ図ることも町F
jHである。おる痛令の1iv−初σ、)テコ−ドザイ
クル(tl )では、オペニI−ドがI)C8503の
アドレスとなって、第1オペクンドの情報と、trg2
オペランドのDC8503上の一アドレス(JA)、−
t”の他の情報がD CS 503から読み出さノする
。この時、1131メベランドのオペランド1N定子ケ
よA−LIO402VCよってI 134 (l 1か
ら取出されてOS −DEC505(′ζて〕−゛ボー
ドされる4、前記オペランド指定子内Qてディスプレイ
スメント、絶対アドレス、あるいはリテラルデータが言
4れる場合には、J、)−AT、lG508がそれらを
J保出して、チータフオーマット金整えてDR611に
格納する。i) U 500は、上述した手順にてデコ
ードした結果をA U 600の各レジスタにセットす
るとともK、ACVF604衾セットして前記デコード
結果に従って前記オペ77ト指矩子で示されるオペラン
ドのアドレス計算を開始せしめ、−また、そのサイクル
にてデコードした命令のビット数(オペコードと第1オ
ベジンドのオペランド指定子をイjJt成するビット数
)ケDBN0507 Kで算出しiコ(7)(ll’t
i ■N C512にてDP510の1直に刀目えて、
D P 510の内界を更新する。 前記命令が2個以上のオペランド指定子−を持つ命令の
楊付には、前記命令の最初のテコートサイクルの次のサ
イクル(+2 )で、tlの一シーイクルにてI)C8
503から絖み出された情報の内のJAフィールドをア
ドレスとしてJ)C8503からオペコードで規定され
て第2オペノンドの情報が読み出される。同時に、第2
オペランドのオペランド指定子がALIG 402 V
cよ−)てlB4O1A)ら取り出されて08−DEC
505にて前記第1オペランドのオペランド11定子の
デコードと同様な手順に従ってテコ−ドされる。この時
、AU600 カ前ij: 第1オペランドのオペラン
ド指定イのテコ−1・、7+i11果を受けて、そ・リ
オベランドのアドレス計)す、ケ!修丁し1、次のオペ
ランドのアドレス計q、が受付けられる状態となっでい
れば、DU500は、前記第2オペランドのオペランド
指定子のテコ−ド結果をA LJ 600の各t/レジ
スタセットすイ)、]−トもi′i六ACVF ’i
04 kセットして、前記第2オペンンドのオペランド
指定子で示されるオペランドの1′ドレス田算を開始せ
しめ、“土だ、そのヤ、イクル(・こてデコードした6
b令のビット叔(第2オ〈ランド(“)オペランド指定
子音構成ずと)ビット故)をDI3NC507シて°C
算出して、DP510の1的に加えて、D P510の
内’ZYk更新する。 以上i1月況明で明らかなように、])U501J5.
1−r/ンサイクル毎に1個のオペランド指定子の′j
:二7−ドを行い、デコード結果企A、 U 600内
の各レジスタに+ツトt、て、AU600に、そのサイ
クルでテコ−ドし7j帖果に基つくオペランドのアドレ
ス計重、の指令ケ行う鋤r\とともiトi 、節、iの
了lンネ刀のテコ−ドサイクルでに11、号く−J−ド
fD C5503のアドレスとして取込み、以降の一す
イクルで該オペコードで規定される・IH報の取出し7
を行わぜしめゐ。また、オペコードからEC3A()5
01に上っでマイクログ1コグラムの先頭アドレス計算
め−(−1、AE)も601にセラl−J’イ1.。 A U 600ば、J) LJ 5 Q QからあるO
8の〕r:1−ド子古来がAU 130 (月1句伏)
し1.;′バタに設’y’if、さJトで、A−(ビ\
1F(304がセットさlt、た1時(C1該戸−1−
ド績、]F、l−に1Ifl ラてオペランドのアトV
ス1(i !;°r、X1−ri L/1、kJ−出
しし′九」ベランドのアドレス’r OF (J 70
0 内のMA、lL 705に、(、) Ji” U
7130の社山イ午11.1jfi□il l”i″f
報手二〇■喝′C几702にそれぞれ設定し、OF C
\”I!” 7 (13rセツトして、MAlも705
に設置さ)L/こアI・レス上のメモリアクセスを開始
−[j−1,める、 +6る一4ヘランドのオペランド
指定子のアドレス計算がrFos”’j−すると、D
U 500 ンからi訂に己オペランド(I′iボ了・
に続くj−ベランド」11定−F ’<受1]けでA
1.j 6001.+、、該オペランド指定子のアドレ
ス計算を行う。このようにA U 600は1個のオペ
ランド指定子単位・シこぞのオペランド指定子で指定さ
れるオペランドのアドレスパI”:’9: f順次行う
が、必ずしも1マシンザイクルで1 jlt’ilのオ
ペランド指定子のアドレス訂のが完rするとは限らず複
数のマシンサイクルを費ず」7!1合もあるのン」−も
らろんである。′−1:た、あるA′ベランド指定子の
アドレス計算終r後、次のアドレス計吹?、ケするオペ
ランド掬ガ!−了が前6己オ・ベランド指定−j−の属
する命令と同一の命令に属する心安(・]1、ない。A
LJ600は、また、δδ令の先頭の(第1の)オペラ
ンド指定子のアドレス引算終了時に、AER60i内に
格納さ才lている前記命令のマイ、クロノ[1グラム先
頭アドレス10 CkOFU700のOE )1.70
1に転送する。 0FU700は、A U 600からあるオペランド指
定fのアドレス計算情報がMAR705に、OF U
700の動作ml]御情報がOFCR702にそt〕ぞ
わ楢゛叔さIし、0FCVF703がセットされた時に
、メモリアクセスを開始する。リードしたデータはOB
B ’707 K格納し、0ALI0708 Kでデ
ータのフォーマットケ整7ぐ−てE r、、+ 8 (
I Qに転送する。才だ、(、) F” U 700ば
、l′+1′i令の先頭(第1)のオペランド指定子の
メモリア、り十スの一シー1クルにて0ER701に格
納され−CいA:マイクロフロクラム先頭アドレスf
J’2 U 8 (10)M P C801に転送する
。但し、前、j[:オペ二ンンド1)i定子のアドレッ
シングモードがリチンルアヒータ〆、・1)場合Vこは
メモリアクセスは行なわないが、この時はへfAl(,
705に渡されたリテラルブ一一−一夕のオペランド金
OJ3 fも707に転送する時にマイ2多ロブログラ
ム先頭アドレスをMPC801に転送する。 上述し7だように、I) U 500にて方、:1−
ドされた命令に関する情報(オペコード及びオペラン
ド指定子)は、AU600,0F(J7(10’i順に
経由してEu2O3に伝達される。。 E [J 800は、MPC801に渡されたマイクロ
プログラム先頭アドレスからE CS 802 iアク
セスしてマイクロ命令を読み出1−2、命令の実行を開
始する。オペランド指定子で規定されるオペランドは、
0I3Jl、707又は、レジスタアドレスと
【)肴1
・〕■もAlI3137.11ら渡される。但し、前記
オペランドがデ上スデイネーションとなる場合には該、
謁べ:ンンドのアドレスがMAD七705に設定される
。、EtJ1300kl:、0FU700かも渡された
オペランドを用いて濱J′lを行い、結果ケE RF8
12、J〜H,l’ 606、又はバス334を介して
8M2304に格納1イ〕5、これらの動作は全てマイ
ク11ゾlコグンムによって制f1印される。 次に、例外処J、lについて、第9図〜第14図を用い
て詳卸IK説明する。 第9図υ、第4図へ一第7Mに示した先行副側1部すな
わち、都令ノエツチュニツ)(IF″IJ)400、命
令デコードユニツ) (DU)500、アドレスdi算
ユニット(、AU ) 600およびオペランドフエツ
チュニツ) (0,FU ) 700のうちで、例外処
理に1が−]−するハ15分に址とめて示したものでろ
る。 I B 4.011/こ予めフェッチされた命令は、j
偵次ALI() 402によって取出され、信号線14
を介して1) U 500に出力されるが、信号イ尿1
4には、主メモリアクセス時の例外の無■か3′唸れて
おり、これrよデコード時例外検出手段であるIECI
)D515によって検出される。これと並行して、命令
例外のチェックがIVD516によって行なわれ、その
結果がレジスタDEXCPR517に記憶される。 DEXCP几517の各ビットの出力43 Bは、OR
ゲート518で0几され、A U 600内のレジスタ
AEXCI)几616に転送される。 IECPD 515、又はIVD516のいずれかで例
外発生が検出された場合、例外の装置がDEXCPR5
17に記憶され、01尤ゲー)518の出力44Bが1
″となり、AU600に対して例外の発生を、111知
するとともに、ll−CONT509に通知してD L
l 500の以降の動作を停止亡しめる。 AU600内のPC614,615のいずれかで例外が
検出された場合、又は上位ユ;ニットであるDU500
から信号II 44 B ’z介して例外発生が通知さ
れた場合、例外の要因がレジスタAECI)Tit、6
16に記憶され、ORゲー)617の出力信−号]、6
Cが′l″となり、OF’U700に対して例外の錆生
金通知するとともに、A−PEC603に対しても例外
の発生f 1.141知してAU600の次以降の動作
を停止ぜしめる。 オペランドデー夕のメモリアクセスにてiりu外が発生
した場合、’fa号線16Dを介1〜で例外検出が0F
U700に進ツ泪される。0FU701)は、このオペ
ランドデータのメモリアクセスで例外が発生した場合、
又は上位ユニットであるAU600から信号MIN 1
6 Cを介して例外発生が通知された場合、i’A外の
要因がレジスタ0EXCP几710に記・1意され、O
Ll、ゲート711の出力17Dが′1″′となり、E
u2O3に対して例外の発生を通知するとともに0F−
DEC704に通知してOF U2O5の以降の動作を
停止せしめる。 EU s 00内のMPC801は信号、腺17Dを介
して先行詞:1iil iN3での例外発生通知全受は
取った場合、例外処理のマイクロプログラムルーチンに
リンクする1li111Il甲を行う。もちろんEU8
00内部にても例外が発生する可能性が1]−リ、その
検出手段が心安であるが、本発明の理解には直接関係な
いので、その説明は省略する。 上述しハニように、例えば1月J500内で例外が発生
し/こ、場合、AU600,0FU700. と順順
に例外がパイプライン全仏わって】号U300に公述さ
れる。AU600内にで1列外が発生し/C場合にrJ
、01!’ U 700に伝わり、次にEu2O3に伝
わる。このように、パイプラインの途中のステージで例
外が発生し/辷堝合、該1夕1」外発生がパ・fプライ
ンを順々に伝わる# f+hを行う5、次に、i EU
400とD U 50 f)のビリ外処理について、第
;3図、及び第10図〜第14図を711いて更に詳し
く1況明する。 第10図は、命令バッファ(I Jll ) 401の
構成の一例を示し人−もので、第10図(5)のように
、IB(0)〜IB(15)の16ン゛「Jノクンノ\
ら(1・□1成され、各ブロックは第10図03)に示
−ずよりにノーータi’?B分(DATA(n))と、
1)A、T A、(++)に対−3−るノくリテイビッ
ト(I)(+1) )と、該D A T A(ロ)のメ
モリアクセス時に例外が発生したか否かを示す例外発生
指示ピント(E (n) )とから成る。DATA(n
)のビット長U1、処理装置の基本アクセス単位による
ものであり、バイl−??、¥本アクセス単位とするも
のでに」18ビット長である。1回のアクセスによって
複数のDATA(n)を取り込むことが出来る場合、E
(n)は1回のアクセスで取り込むことが出来る複数個
の1→A、TA (n)に苅して1つだけ割り当てるこ
とも、もちろん可能である。 J>(ロ)へ、の居き込、り・はメモリアクセス時の例
外発生ケ刈知する111号線2人のORをORゲート4
08によって取り、011.ゲートの出力25Aを、D
ATA和)、 P(n)の−書き込み時に同時に−1き
込む。 また、メモリアクセス11.:jに発生した例外の要因
な(i、 V/スツタIEXCP凡)407に記憶さ
れる。 このように例外が検出されるとIEXCPR407に例
外要因がコード化されて記憶され、lB4O1内の対応
するブロックにメモリアクセス例外の発性◎く記1意さ
れる。iI”−CONT403はIEXCP几407の
出力24Aを受け、例外発生以降は、次のメモリアクセ
スを行わ〃い。しかし、他のコーニツトと違い、例外発
生定直ちに次のコーニツトでろる]) U 500に伝
達することはイエわず、lB4O1内メモリアクセスで
例外佑起したデータ全デコードする時に例外が伝達され
るよりに1.ている、。 第11図はアライナ(ALIG)402の動作ケ示すも
のである。信号線1117−ま′つて、ALIG402
の先頭の出力を指定すると出力14Aは、前記の指定ブ
ロックを先頭に、順番に並べた形式に出力−jることか
できる3、第11図の例でr;i、1ilf号線11.
AにN(911を与えて、A、LiO202の先頭の出
力(AL(0))にIB (9)を、次の出力’+(A
L (1) )にIF5(10)を・、という形式で順
に出力させた場合を示すものである。第11図でALI
G402の出力は、AL(01へ−AL(7)の8ブロ
ック分を同時に出力(ッている。 第12図は、ALIG402の出カブL1ツク(AL(
r+))の各信号線の内科を示すもので、111−8線
AL([1,D)は命令部分(J)ATA)、信号線A
L(。、P)はDA、T A部分のバリテイピット(■
))信’t’s fa A L (n 、 Fr )は
例外発生指示ヒラ1 (E ) ;’c示゛J。 第13図ニ11、命令アクセス例外検出手段(IECI
)D ) 515の一実施例2示すものである。 AL IG 402出力14.Aの中でDA”J’A套
f−弓、線(AL(0,I))〜A−L (7,J、)
) Iffffパリディピノ□b:!号錬(A、L (
0、P )〜AL (7,P))と合ぜてパリディチェ
ッカー(PC+900゜902、・・、907によって
パリティチェックが行わ)する、−1(1’ C) 9
00〜907の出力40F〜47Fizl、グツ・f刊
すテイ・エンコーダ(PENC)909によってもつと
も優先順位の高いものが、エンコ−トさ!する。今、4
0F〜47Fの優先順1〈Lが40.1”>41F>・
・・・・・〉47Fの場合、40Fが′1″であれCJ
コ、(この場合AL(0,L))にパリティエラー発生
)出力53 F h ” O″、40F=41 Ji”
−” 0 ”で42F=”J”の場合には出力53−1
・゛は tt 2rrとなる。つ才り優先順位の商い方
乞:1−ド化して出力する。このようなプライオリティ
・エンコーダそのものりよ周知である。比11反器(C
MP ) 910はPENC909の出力53 J’と
デコードする命令のビット数(又はバイト数)を示す信
号線]、 7 B を比較し、(3)式が成立(すなわ
ち、デコードする命令中にパリティエラーが発生してい
ない)した時、出力51 Fは0″′、不成立(すなわ
ち、デコードする命令中にパリティエラーが発生してい
る)時、出力51 Fは′1″となる。 信号線53F≧信号線17 B ・・・・・・(
3)例外発生指示ビットの出力AL(0,E)〜AL(
7,E)は、24号NC908に入力され、前n己パリ
ディチェックと1司(兼にエンコードされる。 比較器(CMP)911は前記PENC908の出力5
0Fと信号線17Bと全比較し、(4)式が成立(すな
わち、デコードする命令中にメモリアクセスで例外が発
生したデータが含寸れていない)時、出力52Fはtt
On、不成立(すなわち、デコードする命令中にメモ
リアクセスで例外が発生したデータが含まれる)時、出
力52 Ii’は1″となる。 イ1)活線50F、’:信号線17B ・・・・
・・(4)第14図は、命令例外検出手段(IVD)5
16の詳細を示すものである。IVD516は、アドレ
ッシングモードエラーや特権命令(オベレーナイングシ
スデムモードだけで動く命令)違反などをイρ胃14す
る手段である。P L A (Programmabl
eJ、ogic Array ) 921は、アクセス
の種類ヲ示すイ「:帰線60 Fとアドレッシングモー
ドを示す信−帰線231(を人力、:、 L、て、アド
レッシングモー ドエラーイc検出する。例i&i、デ
エステイネーションケ示すオペランド指定子がイミーテ
イエイトのアドレッシングモ−ドの場合、エラーとなる
。 フラグ(O8MF/’F )922 B OS (Op
era t ingSystcm )士−ドで実行中で
あることを示す。 OSモードで実行中に、DC8503の特梅命令である
こと4丁示すフィールドの出力20Bが0”(非特権命
令を示す)の場合、ANDゲート923によって特権命
令l!N反でろることを示す信号64Fケ出力する。 本発明の一実施例によれば、可変長形式の命令語をとる
パイプライン制御データ逃l−!+!装寵に於いて、命
令アクセス中に例外が発生しても該命令が発生ずる以i
t、+に処理装置内に取込んだ命令を、前記例外と無関
係に処理することかてへ、更に、処理装置白肉に取込ん
だ命令の中にパリティエラーを起したデータが存在する
場合、眩テ−りの重罰のアドレスj:でのデータの処j
里はイ丁うことがriJ’ H正て一βる。 とのl令、仮想記1.ばを取るフータ処理装置)ゞ(゛
にh′いて、ページフォールlの為にページのj”:f
i+に、4)かれた6iy合が美行できなくなるという
小、I;15合がなく在り、更に、パイプラインの途中
のスデージ″′C例外が発生した楊古に於いても、該ス
テー/以1・1並′9−ミテージで既に行わノ1ている
処理は中:す「さノ1,4−い、。 このように、本発明によji、i・、」2、ji %ア
クーにス中に例外が発生しでも、該例外が発生する以+
3iJに二処理装置d内に取り込んだ命<ダについてC
よ、riiJ記例外の影響を受けることなく処」」奮進
^すir二とが町MF2となり、例外発生時のオーバー
へ、ノド弧減らすことがIiJ能である。
・〕■もAlI3137.11ら渡される。但し、前記
オペランドがデ上スデイネーションとなる場合には該、
謁べ:ンンドのアドレスがMAD七705に設定される
。、EtJ1300kl:、0FU700かも渡された
オペランドを用いて濱J′lを行い、結果ケE RF8
12、J〜H,l’ 606、又はバス334を介して
8M2304に格納1イ〕5、これらの動作は全てマイ
ク11ゾlコグンムによって制f1印される。 次に、例外処J、lについて、第9図〜第14図を用い
て詳卸IK説明する。 第9図υ、第4図へ一第7Mに示した先行副側1部すな
わち、都令ノエツチュニツ)(IF″IJ)400、命
令デコードユニツ) (DU)500、アドレスdi算
ユニット(、AU ) 600およびオペランドフエツ
チュニツ) (0,FU ) 700のうちで、例外処
理に1が−]−するハ15分に址とめて示したものでろ
る。 I B 4.011/こ予めフェッチされた命令は、j
偵次ALI() 402によって取出され、信号線14
を介して1) U 500に出力されるが、信号イ尿1
4には、主メモリアクセス時の例外の無■か3′唸れて
おり、これrよデコード時例外検出手段であるIECI
)D515によって検出される。これと並行して、命令
例外のチェックがIVD516によって行なわれ、その
結果がレジスタDEXCPR517に記憶される。 DEXCP几517の各ビットの出力43 Bは、OR
ゲート518で0几され、A U 600内のレジスタ
AEXCI)几616に転送される。 IECPD 515、又はIVD516のいずれかで例
外発生が検出された場合、例外の装置がDEXCPR5
17に記憶され、01尤ゲー)518の出力44Bが1
″となり、AU600に対して例外の発生を、111知
するとともに、ll−CONT509に通知してD L
l 500の以降の動作を停止亡しめる。 AU600内のPC614,615のいずれかで例外が
検出された場合、又は上位ユ;ニットであるDU500
から信号II 44 B ’z介して例外発生が通知さ
れた場合、例外の要因がレジスタAECI)Tit、6
16に記憶され、ORゲー)617の出力信−号]、6
Cが′l″となり、OF’U700に対して例外の錆生
金通知するとともに、A−PEC603に対しても例外
の発生f 1.141知してAU600の次以降の動作
を停止ぜしめる。 オペランドデー夕のメモリアクセスにてiりu外が発生
した場合、’fa号線16Dを介1〜で例外検出が0F
U700に進ツ泪される。0FU701)は、このオペ
ランドデータのメモリアクセスで例外が発生した場合、
又は上位ユニットであるAU600から信号MIN 1
6 Cを介して例外発生が通知された場合、i’A外の
要因がレジスタ0EXCP几710に記・1意され、O
Ll、ゲート711の出力17Dが′1″′となり、E
u2O3に対して例外の発生を通知するとともに0F−
DEC704に通知してOF U2O5の以降の動作を
停止せしめる。 EU s 00内のMPC801は信号、腺17Dを介
して先行詞:1iil iN3での例外発生通知全受は
取った場合、例外処理のマイクロプログラムルーチンに
リンクする1li111Il甲を行う。もちろんEU8
00内部にても例外が発生する可能性が1]−リ、その
検出手段が心安であるが、本発明の理解には直接関係な
いので、その説明は省略する。 上述しハニように、例えば1月J500内で例外が発生
し/こ、場合、AU600,0FU700. と順順
に例外がパイプライン全仏わって】号U300に公述さ
れる。AU600内にで1列外が発生し/C場合にrJ
、01!’ U 700に伝わり、次にEu2O3に伝
わる。このように、パイプラインの途中のステージで例
外が発生し/辷堝合、該1夕1」外発生がパ・fプライ
ンを順々に伝わる# f+hを行う5、次に、i EU
400とD U 50 f)のビリ外処理について、第
;3図、及び第10図〜第14図を711いて更に詳し
く1況明する。 第10図は、命令バッファ(I Jll ) 401の
構成の一例を示し人−もので、第10図(5)のように
、IB(0)〜IB(15)の16ン゛「Jノクンノ\
ら(1・□1成され、各ブロックは第10図03)に示
−ずよりにノーータi’?B分(DATA(n))と、
1)A、T A、(++)に対−3−るノくリテイビッ
ト(I)(+1) )と、該D A T A(ロ)のメ
モリアクセス時に例外が発生したか否かを示す例外発生
指示ピント(E (n) )とから成る。DATA(n
)のビット長U1、処理装置の基本アクセス単位による
ものであり、バイl−??、¥本アクセス単位とするも
のでに」18ビット長である。1回のアクセスによって
複数のDATA(n)を取り込むことが出来る場合、E
(n)は1回のアクセスで取り込むことが出来る複数個
の1→A、TA (n)に苅して1つだけ割り当てるこ
とも、もちろん可能である。 J>(ロ)へ、の居き込、り・はメモリアクセス時の例
外発生ケ刈知する111号線2人のORをORゲート4
08によって取り、011.ゲートの出力25Aを、D
ATA和)、 P(n)の−書き込み時に同時に−1き
込む。 また、メモリアクセス11.:jに発生した例外の要因
な(i、 V/スツタIEXCP凡)407に記憶さ
れる。 このように例外が検出されるとIEXCPR407に例
外要因がコード化されて記憶され、lB4O1内の対応
するブロックにメモリアクセス例外の発性◎く記1意さ
れる。iI”−CONT403はIEXCP几407の
出力24Aを受け、例外発生以降は、次のメモリアクセ
スを行わ〃い。しかし、他のコーニツトと違い、例外発
生定直ちに次のコーニツトでろる]) U 500に伝
達することはイエわず、lB4O1内メモリアクセスで
例外佑起したデータ全デコードする時に例外が伝達され
るよりに1.ている、。 第11図はアライナ(ALIG)402の動作ケ示すも
のである。信号線1117−ま′つて、ALIG402
の先頭の出力を指定すると出力14Aは、前記の指定ブ
ロックを先頭に、順番に並べた形式に出力−jることか
できる3、第11図の例でr;i、1ilf号線11.
AにN(911を与えて、A、LiO202の先頭の出
力(AL(0))にIB (9)を、次の出力’+(A
L (1) )にIF5(10)を・、という形式で順
に出力させた場合を示すものである。第11図でALI
G402の出力は、AL(01へ−AL(7)の8ブロ
ック分を同時に出力(ッている。 第12図は、ALIG402の出カブL1ツク(AL(
r+))の各信号線の内科を示すもので、111−8線
AL([1,D)は命令部分(J)ATA)、信号線A
L(。、P)はDA、T A部分のバリテイピット(■
))信’t’s fa A L (n 、 Fr )は
例外発生指示ヒラ1 (E ) ;’c示゛J。 第13図ニ11、命令アクセス例外検出手段(IECI
)D ) 515の一実施例2示すものである。 AL IG 402出力14.Aの中でDA”J’A套
f−弓、線(AL(0,I))〜A−L (7,J、)
) Iffffパリディピノ□b:!号錬(A、L (
0、P )〜AL (7,P))と合ぜてパリディチェ
ッカー(PC+900゜902、・・、907によって
パリティチェックが行わ)する、−1(1’ C) 9
00〜907の出力40F〜47Fizl、グツ・f刊
すテイ・エンコーダ(PENC)909によってもつと
も優先順位の高いものが、エンコ−トさ!する。今、4
0F〜47Fの優先順1〈Lが40.1”>41F>・
・・・・・〉47Fの場合、40Fが′1″であれCJ
コ、(この場合AL(0,L))にパリティエラー発生
)出力53 F h ” O″、40F=41 Ji”
−” 0 ”で42F=”J”の場合には出力53−1
・゛は tt 2rrとなる。つ才り優先順位の商い方
乞:1−ド化して出力する。このようなプライオリティ
・エンコーダそのものりよ周知である。比11反器(C
MP ) 910はPENC909の出力53 J’と
デコードする命令のビット数(又はバイト数)を示す信
号線]、 7 B を比較し、(3)式が成立(すなわ
ち、デコードする命令中にパリティエラーが発生してい
ない)した時、出力51 Fは0″′、不成立(すなわ
ち、デコードする命令中にパリティエラーが発生してい
る)時、出力51 Fは′1″となる。 信号線53F≧信号線17 B ・・・・・・(
3)例外発生指示ビットの出力AL(0,E)〜AL(
7,E)は、24号NC908に入力され、前n己パリ
ディチェックと1司(兼にエンコードされる。 比較器(CMP)911は前記PENC908の出力5
0Fと信号線17Bと全比較し、(4)式が成立(すな
わち、デコードする命令中にメモリアクセスで例外が発
生したデータが含寸れていない)時、出力52Fはtt
On、不成立(すなわち、デコードする命令中にメモ
リアクセスで例外が発生したデータが含まれる)時、出
力52 Ii’は1″となる。 イ1)活線50F、’:信号線17B ・・・・
・・(4)第14図は、命令例外検出手段(IVD)5
16の詳細を示すものである。IVD516は、アドレ
ッシングモードエラーや特権命令(オベレーナイングシ
スデムモードだけで動く命令)違反などをイρ胃14す
る手段である。P L A (Programmabl
eJ、ogic Array ) 921は、アクセス
の種類ヲ示すイ「:帰線60 Fとアドレッシングモー
ドを示す信−帰線231(を人力、:、 L、て、アド
レッシングモー ドエラーイc検出する。例i&i、デ
エステイネーションケ示すオペランド指定子がイミーテ
イエイトのアドレッシングモ−ドの場合、エラーとなる
。 フラグ(O8MF/’F )922 B OS (Op
era t ingSystcm )士−ドで実行中で
あることを示す。 OSモードで実行中に、DC8503の特梅命令である
こと4丁示すフィールドの出力20Bが0”(非特権命
令を示す)の場合、ANDゲート923によって特権命
令l!N反でろることを示す信号64Fケ出力する。 本発明の一実施例によれば、可変長形式の命令語をとる
パイプライン制御データ逃l−!+!装寵に於いて、命
令アクセス中に例外が発生しても該命令が発生ずる以i
t、+に処理装置内に取込んだ命令を、前記例外と無関
係に処理することかてへ、更に、処理装置白肉に取込ん
だ命令の中にパリティエラーを起したデータが存在する
場合、眩テ−りの重罰のアドレスj:でのデータの処j
里はイ丁うことがriJ’ H正て一βる。 とのl令、仮想記1.ばを取るフータ処理装置)ゞ(゛
にh′いて、ページフォールlの為にページのj”:f
i+に、4)かれた6iy合が美行できなくなるという
小、I;15合がなく在り、更に、パイプラインの途中
のスデージ″′C例外が発生した楊古に於いても、該ス
テー/以1・1並′9−ミテージで既に行わノ1ている
処理は中:す「さノ1,4−い、。 このように、本発明によji、i・、」2、ji %ア
クーにス中に例外が発生しでも、該例外が発生する以+
3iJに二処理装置d内に取り込んだ命<ダについてC
よ、riiJ記例外の影響を受けることなく処」」奮進
^すir二とが町MF2となり、例外発生時のオーバー
へ、ノド弧減らすことがIiJ能である。
・尤1図(よ、本発明Δ〜適用するデータ処理装信、の
翁令形式を示す図、!、I!、2図ぐま第5図の動作説
明に用いられる図、第:3図は本発明奮:IN用す、b
データ処理装((〆1゛、全体金示すブロック図、第4
図・〜第8図は一′(れぞJ’L第:(図の詳W’jl
ブV1ツク図、第9図は本発明に関係が深い部分のブロ
ック図、第10(ネ)、第11図、!B12図、第13
図、小14図は第9図の抽助設、明図である。 401・・・品分バッファ、402・・・命令ノ′ライ
ナ、515・・・命令アクセス例外検出手段、516・
・・命令例外検出手段、517,616,710・・・
レジースタ 。 ′べ【?−」ノ:1」 第 70 口 (E3) 案 11 図 ’! /2 図 L L 5ノ′5
翁令形式を示す図、!、I!、2図ぐま第5図の動作説
明に用いられる図、第:3図は本発明奮:IN用す、b
データ処理装((〆1゛、全体金示すブロック図、第4
図・〜第8図は一′(れぞJ’L第:(図の詳W’jl
ブV1ツク図、第9図は本発明に関係が深い部分のブロ
ック図、第10(ネ)、第11図、!B12図、第13
図、小14図は第9図の抽助設、明図である。 401・・・品分バッファ、402・・・命令ノ′ライ
ナ、515・・・命令アクセス例外検出手段、516・
・・命令例外検出手段、517,616,710・・・
レジースタ 。 ′べ【?−」ノ:1」 第 70 口 (E3) 案 11 図 ’! /2 図 L L 5ノ′5
Claims (1)
- 1、命令及びオペランドを記憶する主メモリと、該主メ
モリに記憶された命令及びオペランドラ読み出I−て命
令全実行する中央処理装置金石するデータ処理装置であ
って、該中央処理装置は、パイプライン制御される先行
制御部と命令災行部を有し、該先行制御部は、命令の実
行に先行して該主メモリから命令を読み出す命令フJ−
ツチ手段と、読み出さハた命令をデコードする命令デコ
ード手段を有づるものにおいて、該命令フェッチ手段は
、先取りした命令および当該命令の主メモリアクセス上
の例外発生の有無を記憶し、命令と一緒に、当該命令に
関する例外発生の有無を命令デコード手段に出力し2、
該命令デコード手段は、命令デコ−ド時に当該命令に例
外が発生しているか否か2判定し2、例外処理を行うよ
うにしたことを特徴とするデータ処理装置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP15262482A JPS5943447A (ja) | 1982-09-03 | 1982-09-03 | デ−タ処理装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP15262482A JPS5943447A (ja) | 1982-09-03 | 1982-09-03 | デ−タ処理装置 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPS5943447A true JPS5943447A (ja) | 1984-03-10 |
Family
ID=15544444
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP15262482A Pending JPS5943447A (ja) | 1982-09-03 | 1982-09-03 | デ−タ処理装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPS5943447A (ja) |
Cited By (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS61285540A (ja) * | 1985-06-13 | 1986-12-16 | Nec Corp | 情報処理装置 |
| JPS61285541A (ja) * | 1985-06-13 | 1986-12-16 | Nec Corp | 情報処理装置 |
| JPS61285538A (ja) * | 1985-06-13 | 1986-12-16 | Nec Corp | 情報処理装置 |
| JPS61285539A (ja) * | 1985-06-13 | 1986-12-16 | Nec Corp | 情報処理装置 |
| JPS6312030A (ja) * | 1986-07-02 | 1988-01-19 | Nec Corp | 情報処理装置のエラ−処理機構 |
| JPS6421629A (en) * | 1987-07-17 | 1989-01-25 | Mitsubishi Electric Corp | Arithmetic processing unit |
| JPH0424836A (ja) * | 1990-05-18 | 1992-01-28 | Fujitsu Ltd | マイクロプロセッサ |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS56127246A (en) * | 1980-03-10 | 1981-10-05 | Hitachi Ltd | Information processor |
| JPS56127248A (en) * | 1980-03-11 | 1981-10-05 | Toshiba Corp | Operation controller |
| JPS5775356A (en) * | 1980-10-28 | 1982-05-11 | Fujitsu Ltd | Instruction pre-fetch control system |
-
1982
- 1982-09-03 JP JP15262482A patent/JPS5943447A/ja active Pending
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS56127246A (en) * | 1980-03-10 | 1981-10-05 | Hitachi Ltd | Information processor |
| JPS56127248A (en) * | 1980-03-11 | 1981-10-05 | Toshiba Corp | Operation controller |
| JPS5775356A (en) * | 1980-10-28 | 1982-05-11 | Fujitsu Ltd | Instruction pre-fetch control system |
Cited By (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS61285540A (ja) * | 1985-06-13 | 1986-12-16 | Nec Corp | 情報処理装置 |
| JPS61285541A (ja) * | 1985-06-13 | 1986-12-16 | Nec Corp | 情報処理装置 |
| JPS61285538A (ja) * | 1985-06-13 | 1986-12-16 | Nec Corp | 情報処理装置 |
| JPS61285539A (ja) * | 1985-06-13 | 1986-12-16 | Nec Corp | 情報処理装置 |
| JPS6312030A (ja) * | 1986-07-02 | 1988-01-19 | Nec Corp | 情報処理装置のエラ−処理機構 |
| JPS6421629A (en) * | 1987-07-17 | 1989-01-25 | Mitsubishi Electric Corp | Arithmetic processing unit |
| JPH0424836A (ja) * | 1990-05-18 | 1992-01-28 | Fujitsu Ltd | マイクロプロセッサ |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CA1323940C (en) | Preprocessing implied specifiers in a pipelined processor | |
| AU608921B2 (en) | Jump prediction | |
| JP2796590B2 (ja) | メモリ装置及びそれを使用したデータ処理装置 | |
| US5167026A (en) | Simultaneously or sequentially decoding multiple specifiers of a variable length pipeline instruction based on detection of modified value of specifier registers | |
| US6289445B2 (en) | Circuit and method for initiating exception routines using implicit exception checking | |
| US5148529A (en) | Pipelined multi-stage data processor including an operand bypass mechanism | |
| US7996646B2 (en) | Efficient encoding for detecting load dependency on store with misalignment | |
| TWI868751B (zh) | 處理器、切換影堆疊指標的方法、電子設備、電腦系統及機器可讀儲存媒體 | |
| JPH0283735A (ja) | 命令先取り装置 | |
| US5522053A (en) | Branch target and next instruction address calculation in a pipeline processor | |
| US6131158A (en) | Data processing system capable of executing groups of instructions, including at least one arithmetic instruction, in parallel | |
| JPH03174626A (ja) | データ処理装置 | |
| JPH0215331A (ja) | データ処理装置 | |
| US6189093B1 (en) | System for initiating exception routine in response to memory access exception by storing exception information and exception bit within architectured register | |
| US5461715A (en) | Data processor capable of execution of plural instructions in parallel | |
| JPH0673105B2 (ja) | 命令パイプライン方式のマイクロプロセッサ | |
| US5269008A (en) | Method and apparatus for pre-processing the source of a pop instruction in a pipeline computer | |
| JPH02105937A (ja) | データ処理装置 | |
| JP2532560B2 (ja) | 高機能な例外処理を行うデ―タ処理装置 | |
| EP0229253A2 (en) | Data processor with virtual memory management | |
| JPH0377138A (ja) | データ処理装置 | |
| JPH01258032A (ja) | パイプライン処理機構を持つデータ処理装置 | |
| US20200371790A1 (en) | Method of Storing Register Data Elements to Interleave with Data Elements of a Different Register, a Processor Thereof, and a System Thereof | |
| JPH01281534A (ja) | データ処理装置 | |
| JPH0769801B2 (ja) | データ処理装置 |