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
Application number
JP15262482A
Other languages
English (en)
Inventor
Hidekazu Matsumoto
松本 秀和
Tadaaki Bando
忠秋 坂東
Yoshinari Hiraoka
平岡 良成
Takeshi Kato
猛 加藤
Takayuki Morioka
隆行 森岡
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP15262482A priority Critical patent/JPS5943447A/ja
Publication of JPS5943447A publication Critical patent/JPS5943447A/ja
Pending legal-status Critical Current

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
・〕■も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

Claims (1)

    【特許請求の範囲】
  1. 1、命令及びオペランドを記憶する主メモリと、該主メ
    モリに記憶された命令及びオペランドラ読み出I−て命
    令全実行する中央処理装置金石するデータ処理装置であ
    って、該中央処理装置は、パイプライン制御される先行
    制御部と命令災行部を有し、該先行制御部は、命令の実
    行に先行して該主メモリから命令を読み出す命令フJ−
    ツチ手段と、読み出さハた命令をデコードする命令デコ
    ード手段を有づるものにおいて、該命令フェッチ手段は
    、先取りした命令および当該命令の主メモリアクセス上
    の例外発生の有無を記憶し、命令と一緒に、当該命令に
    関する例外発生の有無を命令デコード手段に出力し2、
    該命令デコード手段は、命令デコ−ド時に当該命令に例
    外が発生しているか否か2判定し2、例外処理を行うよ
    うにしたことを特徴とするデータ処理装置。
JP15262482A 1982-09-03 1982-09-03 デ−タ処理装置 Pending JPS5943447A (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (3)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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) データ処理装置