JP2532560B2 - 高機能な例外処理を行うデ―タ処理装置 - Google Patents

高機能な例外処理を行うデ―タ処理装置

Info

Publication number
JP2532560B2
JP2532560B2 JP63056826A JP5682688A JP2532560B2 JP 2532560 B2 JP2532560 B2 JP 2532560B2 JP 63056826 A JP63056826 A JP 63056826A JP 5682688 A JP5682688 A JP 5682688A JP 2532560 B2 JP2532560 B2 JP 2532560B2
Authority
JP
Japan
Prior art keywords
instruction
processing
stage
code
address
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP63056826A
Other languages
English (en)
Other versions
JPH01229327A (ja
Inventor
隆 辰巳
祐一 斎藤
豊彦 吉田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP63056826A priority Critical patent/JP2532560B2/ja
Publication of JPH01229327A publication Critical patent/JPH01229327A/ja
Application granted granted Critical
Publication of JP2532560B2 publication Critical patent/JP2532560B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Description

【発明の詳細な説明】 〔産業上の利用分野〕 この発明は、高い処理能力を損なうことなく高機能な
例外処理を行い、ソフトウエア負荷も低減するデータ処
理装置に関するものである。
〔従来の技術〕
一般に、データ処理装置では例外処理は、例外を検出
した時、実行していた命令処理を中断して例外処理を行
い、例外処理終了後、復帰命令によつて中断された命令
を再実行するもの(例外)と、例外検出時に実行してい
た命令の処理を完了した後、例外処理に入り、復帰命令
によつて、完了した次の命令の処理を開始するもの(ト
ラツプ)とがある。上記2種類の例外処理と割込処理を
総称してEITと呼ぶ。
第5図は、パイプライン処理機能を備えた従来の例外
処理機能を有するデータ処理装置のブロツク図である。
第5図において、(10)は命令をフエツチする命令フエ
ツチ部、(31)は命令フエツチ部で取り込んだ命令を解
析する命令デコード部3、(12)はオペランドアドレス
の計算を行うオペランドアドレス計算部、(15)はマイ
クロROMアクセスを行うマイクロROMアクセス部、(14)
はオペランドを先取りするオペランドフエツチ部、(1
6)は命令を実行する命令実行部である。
次に前記データ処理装置の動作について説明する。外
部データバスから命令が命令フエツチ部(10)に送られ
る。先取りされた命令は、命令フエツチ部(10)から命
令デコード部3(31)へ送られ、命令を解析した後、オ
ペランドアドレス計算部(12)へ送られると同時に、マ
イクロROMアクセス部(15)へ送られる。マイクロROMア
クセス部(15)では、次の命令実行部(16)で実行する
ための実行制御コードを作り命令実行部(16)へ送る。
オペランドフエツチ部(14)へは、オペランドアドレス
計算部(12)で計算されたオペランドのアドレスが送ら
れ、命令実行部(16)で実行するためのオペランドが先
取りされる。そして、命令実行部(16)では、実行制御
コードとオペランドが揃つた時点で実行される。
以下、従来のデータ処理装置におけるEIT処理につい
て説明する。データ処理装置が命令実行中にEITを検出
すると、その時実行していた一連の命令の実行を中断し
て、もしくはその命令の処理終了後、EIT処理を開始す
る。EIT処理では、EIT処理から復帰後の処理の再開に必
要となるプログラムカウンタ値や前記検出したEITの種
類などのデータ処理装置の状態を示す情報をスタツクに
退避し、EIT処理ハンドラを起動する。そして、起動さ
れたEIT処理ハンドラでは、EITの種類に応じてエラーの
回復、エラーメツセージの表示、エミユレーシヨンなど
の処理を行う。このようなEIT処理ハンドラは、ソフト
ウエアにより実現されるものである。大部分のEITで
は、EIT処理ハンドラの最後で復帰命令を実行し、スタ
ツクに退避したプログラムカウンタ値などの情報を読み
込むことにより、中断されたもとの命令列に復帰し、処
理を再開することが可能である。
この復帰命令によりEIT発生時に退避した復帰後実行
すべき命令のプログラムカウンタ値が必要となるが、従
来のデータ処理装置では、このプログラムカウンタ値を
得るために、命令デコード部3(31)で命令のデコード
時にその命令のプログラムカウンタ値とその命令長を加
えておくことにより、あらかじめ次の命令のプログラム
カウンタ値を計算しておき、EIT発生時に退避すべきEIT
処理ハンドラから復帰後の実行再開アドレスであるプロ
グラムカウンタ値を得ることができる。
しかし、分岐命令の場合には命令デコード部3(31)
では、次のプログラムカウンタ値が分からない。従つ
て、分岐する場合、及び分岐しない場合の2つのプログ
ラムカウンタ値を計算し、分岐命令が実行されるまで保
持しておくことが必要となる。もしくは、命令実行部
(16)で分岐が起こつたとき、次のプログラムカウンタ
値を別経路で得なければならない。このように、EIT処
理ハンドラから復帰後のプログラムカウンタ値の決定に
複雑な処理が必要となり、ハードウエア量も大きくな
る。
〔発明が解決しようとする課題〕
従来のEIT処理を行うパイプライン機能を備えたデー
タ処理装置では、以上のように、トラツプに対するEIT
処理終了後に実行を再開するために必要となるプログラ
ムカウンタ値を決定しようとすると複雑な処理を必要と
し、ハードウエア量が大きくなるという問題点があつ
た。
この発明では、上記従来のものの欠点を解決するため
になされたもので、トラツプが発生した時、EIT処理終
了後のプログラムカウンタ値の決定を容易にすることを
目的とする。
〔課題を解決するための手段〕
この発明は、EIT検出した場合、パイプライン構成の
命令実行部において、次に処理すべき命令の情報を受け
取つた際、その命令の情報のうちプログラムカウンタ値
だけを有効とし、その情報にもとづく命令実行手段の処
理を無効化する手段を設けたものである。
〔作用〕
本発明ではEIT検出時、次に命令実行部で処理すべき
命令の情報を受け取り、その中でプログラムカウンタ値
のみ有効とする手段を設けることにより、命令実行部で
のEIT処理終了後、次に実行すべきプログラムカウンタ
値を複雑な処理で行わず簡単なハードウエアで容易に得
ることができる。
〔発明の実施例〕
以下、この発明の一実施例について説明する。第1図
にこの発明のデータ処理装置の機能ブロツク図を示す。
この発明のデータ処理装置の内部を機能的に大きく分け
ると、命令フエツチ部(1)、命令デコード部(2)、
PC計算部(3)、オペランドアドレス計算部(4)、マ
イクロROM部(5)、データ演算部(6)、外部バスイ
ンターフエイス部(7)に分かれる。第1図では、その
他にCPU外部にアドレスを出力するアドレス出力回路
(8)とCPU外部とデータの入出力を行うデータ入出力
回路(9)を他の機能ブロツク部と分けて示した。
命令フエツチ部(1)にはブランチバツフア、命令キ
ユーとその制御部などがあり、次にフエツチすべき命令
のアドレスを決定して、ブランチバツフアやCPU外部の
メモリから命令をフエツチする。ブランチバツフアへの
命令登録も行う。
ブランチバツフアは小規模であるためセレクテイブキ
ヤツシユとして動作する。ブランチバツフアの動作の詳
細は特願昭61-202041で詳しく述べられている。
次にフエツチすべき命令のアドレスは命令キユーに入
力すべき命令のアドレスとして専用のカウンタで計算さ
れる。分岐やジヤンプが起きたときには、新たな命令の
アドレスが、PC計算部(3)やデータ演算部(6)より
転送されてくる。
CPU外部のメモリから命令をフエツチするときは、外
部バスインターフエイス部(7)を通して、フエツチす
べき命令のアドレスをアドレス出力回路(8)からCPU
外部に出力し、データ入出力回路(9)から命令コード
をフエツチする。
バツフアリングした命令コードのうち、命令デコード
部(2)で次にデコードすべき命令コードを命令デコー
ド部(2)に出力する。
命令デコード部(2)では基本的に16ビツト(ハーフ
ワード)単位に命令コードをデコードする。このブロツ
クには第1ハーフワードに含まれるオペコードをデコー
ドするFHWデコーダ、第2、第3ハーフワードに含まれ
るオペコードをデコードするNFHWデコーダ、アドレツシ
ングモードをデコードするアドレツシングモードデコー
ダが含まれる。
更に、FHWデコーダやNFHWデコーダの出力をさらにデ
コードして、マイクロROMのエントリアドレスを計算す
るデコーダ2、条件分岐命令の分岐予測を行う分岐予測
機構、オペランドアドレス計算のときのパイプラインコ
ンフリクトをチエツクするアドレス計算コンフリクトチ
エツク機能も含まれる。
命令フエツチ部(1)より入力された命令コードを2
クロツクにつき0〜6バイトのデコードをする。デコー
ド結果のうち、データ演算部(6)での演算に関する情
報がマイクロROM部(5)に、オペランドアドレス計算
に関係する情報がオペランドアドレス計算部(4)に、
PC計算に関係する情報がPC計算部(3)に、それぞれ出
力される。
マイクロROM部(5)には主にデータ演算部(6)を
制御するマイクロプログラムが格納されているマイクロ
ROM、マイクロシーケンサ、マイクロ命令デコーダなど
が含まれる。マイクロ命令はマイクロROMから2クロツ
クに1度読み出される。マイクロシーケンサはマイクロ
プログラムで示されるシーケンス処理の他に、例外、割
込、トラツプ(この3つをあわせてEITと呼ぶ)の処理
をハードウエア的に受付ける。またマイクロROM部
(5)はストアバツフアの管理も行う。マイクロROM部
(5)には命令コードに依存しない割込みや演算実行結
果によるフラツグ情報と、デコーダ2の出力など命令デ
コード部の出力が入力される。マイクロデコーダの出力
は主にデータ演算部(6)に対して出力されるが、ジヤ
ンプ命令の実行によるための先行処理中止情報など一部
の情報は他のブロツクへも出力される。
オペランドアドレス計算部(4)は、命令デコード部
(2)のアドレスデコーダなどから出力されたオペラン
ドアドレス計算に関係する情報によりハードワイヤード
制御される。このブロツクではオペランドのアドレス計
算に関するほとんどの処理が行われる。メモリ間接アド
レツシングのためのメモリアクセスのアドレスやオペラ
ンドアドレスがメモリにマツプされたI/O領域に入るか
どうかのチエツクも行われる。
アドレス計算結果は外部バスインターフエイス部
(7)に送られる。アドレス計算に必要な汎用レジスタ
やプログラムカウンタの値はデータ演算部(6)より入
力される。
メモリ間接アドレツシングを行うときは外部バスイン
ターフエイス部(7)を通してアドレス出力回路(8)
からCPU外部に参照すべきメモリアドレスを出力し、デ
ータ出力部(9)から入力された間接アドレス値を命令
デコード部(2)を通してフエツチする。
PC計算部(3)は命令デコード部(2)から出力され
るPC計算に関係する情報でハードワイヤードに制御さ
れ、命令のPC値を計算する。本特許のデータ処理装置は
可変長命令セツトを持つており、命令をデコードしてみ
ないとその命令の長さが判らない。PC計算部(3)は、
命令デコード部(2)から出力される命令長をデコード
中の命令のPC値に加算することによりつぎの命令のPC値
を作り出す。また、命令デコード部(2)が、分岐命令
をデコードしてデコード段階での分岐を指示したときは
命令長の代わりに分岐変位を分岐命令のPC値に加算する
ことにより分岐先命令のPC値を計算する。分岐命令に対
して命令デコード段階で分岐を行うことを本発明のデー
タ処理装置ではプリブランチと呼ぶ。プリブランチの方
法については特願昭61-204500と特願昭61−200557で詳
しく述べられている。
PC計算部(3)の計算結果は各命令のPC値として命令
のデコード結果とともに出力されるほか、プリブランチ
時には、次にデコードすべき命令のアドレスとして命令
フエツチ部に出力される。
また、次に命令デコード部(2)でデコードされる命
令の分岐予測のためのアドレスにも使用される。分岐予
測の方法については特願昭62-8394で詳しく述べられて
いる。
データ演算部(6)はマイクロプログラムにより制御
され、マイクロROM部(5)の出力情報に従い、各命令
の機能を実現するのに必要な演算をレジスタと演算器で
実行する。オペランドアドレス計算部(4)で計算され
たアドレスを外部バスインターフエイス部(7)を通し
て得る場合や、そのアドレスでフエツチを行つたオペラ
ンドをデータ入出力回路(9)から得る場合もある。
演算器としてはALU、バレルシフタ、プライオリテイ
エンコーダやカウンタ、シフトレジスタなどがある。レ
ジスタと主な演算器の間は3バスで結合されており、1
つのレジスタ間演算を指示する1マイクロ命令を2クロ
ツクサイクルで処理する。
データ演算のときCPU外部のメモリをアクセスする必
要がある時はマイクロプログラムの指示により外部バス
インターフエイス部(7)を通してアドレス出力回路
(8)からアドレスをCPU外部に出力し、データ入出力
回路(9)を通して目的のデータをフエツチする。
CPU外部のメモリにデータをストアするときは外部バ
スインターフエイス部(7)を通してアドレス出力回路
(8)よりアドレスを出力すると同時に、データ入出力
回路(9)からデータをCPU外部に出力する。オペラン
ドストアを効率的に行うためデータ演算部(6)には4
バイトのストアバツフアがある。
ジヤンプ命令の処理や例外処理などを行つて新たな命
令アドレスをデータ演算部(6)が得たときはこれを命
令フエツチ部(1)とPC計算部(3)に出力する。
外部バスインターフエイス部(7)は本特許のデータ
処理装置の外部バスでの通信を制御する。メモリのアク
セスはすべてクロツク同期で行われ、最小2クロツクサ
イクルで行うことができる。
メモリに対するアクセス要求は命令フエツチ部
(1)、オペランドアドレス計算部(4)、データ演算
部(6)から独立に生じる。外部バスインターフエイス
部(7)はこれらのメモリアクセス要求を調停する。さ
らにメモリとCPUを結ぶデータバスサイズである32ビツ
ト(ワード)の整置境界をまたぐメモリ番地にあるデー
タのアクセスは、このブロツク内で自動的にワード境界
をまたぐことを検知して、2回のメモリアクセスに分解
して行う。
プリフエツチするオペランドとストアするオペランド
が重なる場合の、コンフリクト防止処理やストアオペラ
ンドからフエツチオペランドへのバイパス処理も行う。
この発明のデータ処理装置のパイプライン処理は図2
に示す構成となる。命令のプリフエツチを行う命令フエ
ツチ部(IFステージ(10))、命令のデコードを行うデ
コード部1(Dステージ(11))、オペランドのアドレ
ス計算を行うオペランドアドレス計算部及び命令デコー
ド部2(Aステージ)、マイクロROMアクセス(特にR
ステージ(15)と呼ぶ)とオペランドのプリフエツチ
(特にOFステージ(14)と呼ぶ)を行うオペランドフエ
ツチ部(Fステージ)、命令の実行を行う実行部(Eス
テージ(16))の5段構成でパイプライン処理の基本と
する。Eステージ(16)では1段のストアバツフアがあ
るほか、高機能命令の一部は命令実行自体をパイプライ
ン化するため、実際には5段以上のパイプライン処理効
果がある。
各ステージは他のステージとは独立に動作し、理論上
は5つのステージが完全に独立動作する。各ステージは
1回の処理を最小2クロツクで行うことができる。従つ
て理想的には2クロツクごとに次々とパイプライン処理
が進行する。
この発明のデータ処理装置にはメモリ−メモリ間演算
や、メモリ間接アドレツシングなど、基本パイプライン
処理1回だけでは処理が行えない命令があるが、本発明
のデータ処理装置はこれらの処理に対してもなるべく均
衡したパイプライン処理が行えるように設計されてい
る。複数のメモリオペランドをもつ命令に対してはメモ
リオペランドの数をもとに、デコード段階で複数のパイ
プライン処理単位(ステツプコード)に分解してパイプ
ライン処理を行うのである。パイプライン処理単位の分
解方法に関しては特願昭61-236456で詳しく述べられて
いる。
IFステージ(10)からDステージ(11)に渡される情
報は命令コードそのものである。Dステージ(11)から
Aステージ(12)に渡される情報は命令で指定された演
算に関するもの(Dコードと呼ぶ)と、オペランドのア
ドレス計算に関係するもの(Aコードと呼ぶ)との2つ
ある。Aステージ(12)からFステージに渡される情報
はマイクロプログラムルーチンのエントリ番地やマイク
ロプログラムへのパラメータなどを含むRコードと、オ
ペランドのアドレスとアクセス方法指示情報などを含む
Fコードとの2つである。FステージからEステージ
(15)に渡される情報は演算制御情報とリテラルなどを
含むEコードと、オペランドやオペランドアドレスなど
を含むSコードとの2つである。
Eステージ(16)以外のステージで検出されたEITは
そのコードがEステージ(16)に到達するまではEIT処
理を起動しない。Eステージ(16)で処理されている命
令のみが実行段階の命令であり、IFステージ(10)から
Fステージで処理されている命令はまた実行段階に至つ
ていないのである。従つてEステージ以外で検出された
EITは検出したことをステツプコード中に記録して次の
ステージに伝えられるのみである。
この発明のデータ処理装置のパイプライン処理単位は
命令セツトのフオーマツトの特徴を利用して決定されて
いる。この発明のデータ処理の命令は2バイト単位の可
変長命令であり、基本的には(2バイトの命令基本部+
0から4バイトのアドレツシング修飾部)を1〜3回繰
り返すことにより命令が構成されている。
命令基本部には多くの場合オペコード部とアドレツシ
ングやメモリ間接アドレツシングが必要なときにはアド
レツシング修飾部の代わりに(2バイトの付加アドレツ
シングモード指定部+0〜4バイトのアドレツシング修
飾部)が任意個付く。また、命令により2または4バイ
トの命令固有の拡張部が最後に付く。
命令基本部には命令のオペコード、基本アドレツシン
グモード、リテラルなどが含まれる。アドレツシング修
飾部はデイスプレースメント、絶対アドレス、即値、ブ
ランチ命令の変位のいずれかである。命令固有の拡張部
にはレジスタマツプ、I-format命令の即値指定などがあ
る。
この発明のデータ処理装置では上記の命令フオーマツ
トの特徴を生かしたパイプライン処理を行う。Dステー
ジ(11)では(2バイトの命令基本部+0〜4バイトの
アドレツシング修飾部)、(多重間接モード指定部+ア
ドレツシング修飾部)または命令固有の拡張部を1つの
デコード単位として処理する。各回のデコード結果をス
テツプコードと呼び、Aステージ(12)以降ではこのス
テツプコードをパイプライン処理の単位としている。ス
テツプコードの数は命令ごとに固有であり、多重間接モ
ード指定を行わないとき、1つの命令は最小1個、最大
3個のステツプコードに分かれる。多重間接モード指定
があればそれだけステツプコードが増える。ただし、こ
れは後で述べるようにデコード段階のみである。
この発明のデータ処理装置のパイプライン上に存在す
るステツプコードはすべて別命令に対するものである可
能性があり、プログラムカウンタの値はステツプコード
ごとに管理する。すべてのステツプコードはそのステツ
プコードのもとになつた命令のプログラムカウンタ値を
もつ。ステツプコードに付属してパイプラインの各ステ
ージを流れるプログラムカウンタ値はステツププログラ
ムカウンタ(SPC)と呼ぶ。SPCはパイプラインステージ
を次々と受け渡されていく。
各パイプラインステージの入出力ステツプコードには
便宜上名前が付けられている。またステツプコードはオ
ペコードに関する処理を行い、マイクロROMのエントリ
番地やEステージ(16)に対するパラメータなどになる
系列とEステージ(16)のマイクロ命令に対するオペラ
ンドになる系列の2系列がある。
命令フエツチステージ(IFステージ(10))は命令を
メモリやブランチバツフアからフエツチし、命令キユー
に入力して、Dステージ(11)に対して命令コードを出
力する。命令キユーの入力は整置された4バイト単位で
行う。メモリから命令をフエツチするときは整置された
4バイトにつき最小2クロツクを要する。ブランチバツ
フアがヒツトした時は整置された4バイトにつき1クロ
ツクでフエツチ可能である。命令キユーの出力単位は2
バイトごとに可変であり、2クロツクの間に最大6バイ
トまで出力できる。また分岐の直後には命令キユーをバ
イパスして命令基本部2バイトを直接命令デコーダに転
送することもできる。
ブランチバツフアへの命令の登録やクリアなどの制
御、プリフエツチ先命令アドレスの管理や命令キユーの
制御もIFステージ(10)で行う。
IFステージ(10)で検出するEITには命令をメモリか
らフエツチするときのバスアクセス例外や、メモリ保護
違反などによるアドレス変換例外がある。
命令デコード部1(Dステージ(11))はIFステージ
(10)から入力された命令コードをデコードする。デコ
ードは命令デコード部1(11)のFHWデコーダ、NFHWデ
コーダ、アドレツシングモードデコーダを使用して、2
クロツク単位に一度行ない、1回のデコード処理で、0
〜6バイトの命令コードを消費する(RET命令の復帰先
アドレスを含むステツプコードの出力処理などでは命令
コードを消費しない)。1回のデコードでAステージ
(12)に対してアドレス計算情報であるAコードである
約35ビツトの制御コードと最大32ビツトアドレス修飾情
報と、オペコードの中間デコード結果であるDコードで
ある約50ビツトの制御コードと8ビツトのリテラル情報
とを出力する。
Dステージ(11)では各命令のPC計算部(3)の制
御、分岐予測処理、プリブランチ命令に対するプリブラ
ンチ処理、命令キユーから命令コード出力処理も行う。
Dステージ(11)で検出するEITには予約命令例外、
プリブランチ時の奇数アドレスジヤンプトラツプがあ
る。また、IFステージ(10)より転送されてきた各種EI
Tはステツプコード内にエンコードする処理をしてAス
テージ(12)に転送する。
Aステージは処理が大きく2つに分かれる。1つは命
令デコード部2(13)のデコーダ2を使用して、オペコ
ードの後段デコードを行う処理で、他方はオペランドア
ドレス計算部(12)でオペランドアドレスの計算を行う
処理である。
オペコードの後段デコード処理はDコードを入力と
し、レジスタやメモリの書き込み予約及びマイクロプロ
グラムのエントリ番地とマイクロプログラムに対するパ
ラメータなどを含むRコードの出力を行う。なお、レジ
スタやメモリの書き込み予約は、アドレス計算で参照し
たレジスタやメモリの内容が、パイプライン上を先行す
る命令で書き換えられ、誤つたアドレス計算が行われる
のを防ぐためのものである。レジスタやメモリの書き込
み予約はデツドロツクを避けるため、ステツプコードご
とに行うのではなく命令ごとに行う。レジスタやメモリ
の書き込み予約については特願昭62-144394で詳しく述
べられている。
オペランドアドレス計算処理はAコードを入力とし、
Aコードに従いオペランドアドレス計算部(4)で加算
やメモリ間接参照を組み合わせてアドレス計算を行い、
その計算結果をFコードとして出力する。この際、アド
レス計算に伴うレジスタやメモリの読み出し時にコンフ
リクトチエツクを行い、先行命令がレジスタやメモリに
書き込み処理を終了していないためコンフリクトが指示
されれば、先行命令がEステージ(16)で書き込み処理
を終了するまで待つ。また、オペランドアドレスやメモ
リ間接参照のアドレスがメモリにマツプされたI/O領域
に入るかどうかのチエツクも行う。
Aステージ(12)で検出するEITには予約命令例外、
特権命令例外、バスアクセス例外、アドレス変換例外、
メモリ間接アドレツシングのときのオペランドブレイク
ポイントヒツトによるデバツグトラツプがある。Dコー
ド、Aコード自体がEITを起こしたことを示しておけ
ば、Aステージ(12)はそのコードに対してアドレス計
算処理をせず、そのEITをRコードやFコードに伝え
る。
オペランドフエツチステージ(Fステージ)も処理が
大きく2つに分かれる。1つはマイクロROMのアクセス
処理であり、特にRステージ(15)と呼ぶ。他方はオペ
ランドプリフエツチ処理であり、特にOFステージ(14)
と呼ぶ。Rステージ(15)とOFステージ(14)は必ずし
も同時に動作するわけではなく、メモリアクセス権が獲
得できるかどうかなどに依存して、独立に動作する。
Rステージ(15)の処理であるマイクロROMアクセス
処理はRコードに対して次のEステージ(16)での実行
に使用する実行制御コードであるEコードを作り出すた
めのマイクロROMアクセスとマイクロ命令デコード処理
である。1つのRコードに対する処理が2つ以上のマイ
クロプログラムステツプに分解される場合、マイクロRO
MはEステージ(16)で使用され、次のRコードはマイ
クロROMアクセス待ちになる。Rコードに対するマイク
ロROMアクセスが行われるのはその前のEステージ(1
6)での最後のマイクロ命令実行の時である。この発明
のデータ処理装置ではほとんどの基本命令は1マイクロ
プログラムステツプで行われるため実際にはRコードに
対するマイクロROMアクセスが次々と行われることが多
い。
Rステージ(15)で新たに検出するEITはない。Rコ
ードが命令処理再実行型のEITを示しているときはそのE
IT処理に対するマイクロプログラムが実行されるのでR
ステージ(15)はそのRコードに従つたマイクロ命令を
フエツチする。Rコードが奇数アドレスジヤンプトラツ
プを示しているときRステージ(15)はそれをEコード
に伝える。これはプリブランチに対するもので、Eステ
ージ(16)ではそのEコードで分岐が生じなければその
プリブランチを有効として奇数アドレスジヤンプトラツ
プを発生する。
オペランドフエツチステージ(OFステージ(14))は
Fステージで行う上記の2つの処理のうちオペランドプ
リフエツチ処理を行う。
オペランドプリフエツチはFコードを入力とし、フエ
ツチしたオペランドとそのアドレスをSコードとして出
力する。1つのFコードではワード境界をまたいでもよ
いが4バイト以下のオペランドフエツチを指定する。F
コードにはオペランドのアクセスを行うかどうかの指定
も含まれており、Aステージ(12)で計算したオペラン
ドアドレス自体や即値をEステージ(16)に転送する場
合にはオペランドプリフエツチは行わず、Fコードの内
容をSコードとして転送する。プリフエツチしようとす
るオペランドとEステージ(16)が書き込み処理を行お
うとするオペランドが一致するときは、オペランドプリ
フエツチはメモリから行わず、バイパスして行う。また
I/O領域に対してはオペランドプリフエツチを遅延さ
せ、先行命令がすべて完了するまで待つてオペランドフ
エツチを行う。
OFステージ(14)で検出するEITにはバスアクセス例
外、アドレス変換例外、オペランドプリフエツチに対す
るブレイクポイントヒツトによるデバツグトラツプがあ
る。Fコードがデバツグトラツプ以外のEITを示してい
るときはそれをSコードに転送し、オペランドプリフエ
ツチは行わない。Fコードがデバツグトラツプを示して
いるときはそのFコードに対してEITを示していないと
きと同じ処理をすると共にデバツグトラツプをSコード
に伝える。
実行部(Eステージ(16))はEコード、Sコードを
入力として動作する。このEステージ(16)が命令を実
行するステージあり、Fステージ以前にステージで行わ
れた処理はすべてEステージ(16)のための前処理であ
る。Eステージ(16)でジヤンプ命令が実行されたり、
EIT処理が起動されたりしたときは、IFステージ(10)
からFステージまでの処理はすべて無効化される。Eス
テージ(16)はマイクロプログラムにより制御され、R
コードに示されたマイクロプログラムのエントリ番地か
らの一連のマイクロプログラムを実行することにより命
令を実行する。
マイクロROMの読み出しとマイクロ命令の実行はパイ
プライン化されて行われる。従つてマイクロプログラム
で分岐が起きたときは1マイクロステツプの空きができ
る。また、Eステージ(16)はデータ演算部(6)にあ
るストアバツフアを利用して、4バイト以内のオペラン
ドストアと次のマイクロ命令実行をパイプライン処理す
ることもできる。
Eステージ(16)ではAステージ(12)で行つたレジ
スタやメモリに対する書き込み予約をオペランドの書き
込みの後、解除する。
また条件分岐命令がEステージ(16)で分岐を起こし
たときはその条件分岐命令に対する分岐予測が誤つてい
たのであるから分岐履歴の書換えを行う。
Eステージ(16)で検出されるEITにはバスアクセス
例外、アドレス変換例外、デバツグトラツプ、奇数アド
レスジヤンプトラツプ、予約機能例外、不正オペランド
例外、予約スタツクフオーマツト例外、ゼロ除算トラツ
プ、無条件トラツプ、条件トラツプ、遅延コンテキスト
トラツプ、外部割込、遅延割込、リセツト割込、システ
ム障害がある。
Eステージ(16)で検出されたEITはすべてEIT処理さ
れるがEステージ以前のIFステージ(10)からFステー
ジの間で検出されRコードやSコードに反映されている
EITは必ずEIT処理されるとは限らない。IFステージ(1
0)からFステージの間で検出したが、先行の命令がE
ステージ(16)でジヤンプ命令が実行されたなどの原因
でEステージ(16)まで到達しなかつたEITはすべてキ
ヤンセルされる。そのEITを起こした命令はそもそも実
行されなかつたことになる。
外部割込や遅延割込は命令の切れ目でEステージ(1
6)で直接受け付けられ、マイクロプログラムにより必
要な処理が実行される。その他の各種EITも処理はマイ
クロプログラムにより行われる。
パイプラインの各ステージは入力ラツチと出力ラツチ
を持ち、他のステージとは独立に動作することを基本と
する。各ステージは1つ前に行つた処理が終り、その処
理結果を出力ラツチから次のステージの入力ラツチに転
送し、自分のステージの入力ラツチに次の処理に必要な
入力信号がすべてそろえば次に処理を開始する。
つまり、各ステージは、1つ前段のステージから出力
されてくる次の処理に対する入力信号がすべて有効とな
り、今の処理結果を後段のステージの入力ラツチに転送
して出力ラツチが空になると次の処理を開始する。
各ステージが動作を開始する1つ前のクロツクタイミ
ングで入力信号がすべてそろつている必要がある。入力
信号がそろつていないと、そのステージは待ち状態(入
力待ち)になる。出力ラツチから次のステージの入力ラ
ツチへの転送を行うときは次のステージの入力ラツチが
空き状態になつている必要があり、次のステージの入力
ラツチが空きでない場合もパイプラインステージは待ち
状態(出力待ち)になる。必要なメモリアクセス権が獲
得できなかつたり、処理しているメモリアクセスにウエ
イトが挿入されたり、その他のパイプラインコンフリク
トが生じると、各ステージの処理自体が遅延する。
一般に、データ処理装置においては、EIT発生時、EIT
を検出した時のプロセツサの状態をスタツクに退避す
る。この発明に係わるデータ処理装置のスタツクフオー
マツトを第3図に示す。図において、PSW(17)は、EIT
を検出した時点での状態を示すプログラムステータスワ
ードであり、Format(18)はEITの種類に応じたスタツ
クフオーマツトの番号である。TYPE(19)は、EITの種
類によつて分類した型であり、Vector(20)はEIT処理
のベクトル番号を示す。PC(21)は、EIT処理ハンドラ
からの復帰後の実行再開アドレスである。その他の情報
(22)は、各EITのスタツクフオーマツト番号に応じて
異なり、原因を解析するための情報が含まれている。こ
の発明に係わるデータ処理装置においては、EITの種類
に応じてこの他3種類のスタツクフオーマツトを有す
る。
第4図は、トラツプ発生時のRステージ(15)、及び
Eステージ(16)のタイミング図である。(23)はRス
テージ(15)の内部クロツク、(24)はRステージ(1
5)のマイクロROMをアクセスするアドレスを示すポイン
タ、(25)はEステージ(16)の内部クロツク、(26)
はEステージ(16)の入力ラツチに入つているEコー
ド、(27)はEステージ(16)において実行されている
Eコード、(28)はEITの発生を示すフラグ、(29)はE
ITを検出したことを示すステツプコード、(30)はEス
テージ(16)のプログラムカウンタ値を示す。Rステー
ジ(15)、及びEステージ(16)は、各々別々の4フエ
ーズA,B,C,Dで動作する。
この例においては、まず、T1の期間ではRステージ
(15)のマイクロROMアクセスポインタ(24)がa1を指
している。Rステージクロツク(23)がDのタイミング
の時、Rステージにおいて生成されたEコードがEステ
ージ(16)に送り出される。EコードはEステージクロ
ツク(25)がDのタイミングでEステージ入力ラツチに
入り、処理が開始される。そして、期間T2ではマイクロ
ROMアクセスポインタ(24)がインクリメントされa1+
1を指している。Rステージクロツク(23)がDのタイ
ミングでEコードがRステージ(15)からEステージ
(16)に送り出される。Eステージクロツク(25)がD
のタイミングで、EコードM(a1+1)がEステージ入
力ラツチに入り、処理が開始される。そして、Rステー
ジ(15)には、Rステージクロツク(23)がDのタイミ
ングでRコードが入る。期間T3の時、Eステージ(16)
においてM(a1+1)の処理の実行中にトラツプが発生
する。すると、Eステージクロツク(25)がCのタイミ
ングでEIT発生フラグを立て、DのタイミングでNOP信号
(29)を1ステツプ立てる。このNOP信号(29)の立つ
ている間、つまり、期間T4のEステージロツク(25)が
Bのタイミングで、EIT処理から復帰後の実行に必要な
プログラムカウンタ値を取り込むとともに、Rステージ
クロツク(23)がDのタイミングで送りだしたEコード
M(a2)の処理をキヤンセルする。この時、マイクロRO
Mアクセスポインタ(24)は、EITエントリを示してい
る。そして、期間T4のRステージクロツク(23)がDの
タイミングでEコードがRステージ(15)からEステー
ジ(16)に送り出される。Eステージクロツク(25)が
Dのタイミングで、EコードM(EIT)がEステージ入
力ラツチに入り、EIT処理が開始される。期間T5以降で
は、EIT処理から復帰後の処理の再開に必要となるプロ
グラムカウンタ値a2や前記検出したEITの種類などのデ
ータ処理装置の状態を示す情報をスタツクに退避し、EI
T処理ハンドラを起動する。そして、起動されたEIT処理
ハンドラでは、EITの種類に応じてエラーの回復、エラ
ーメツセージの表示、エミユレーシヨンなどの処理を行
う。このようなEIT処理ハンドラは、ソフトウエアによ
り実現されるものである。大部分のEITでは、EIT処理ハ
ンドラの最後で復帰命令を実行し、スタツクに退避した
プログラムカウンタ値a2などの情報を読み込むことによ
り、中断されたもとの命令列に復帰し、処理を再開す
る。
分岐命令実行時においても、あるいは条件分岐命令実
行時においても、その命令が分岐するかしないかにかか
わらず、EIT処理から復帰後、分岐する場合としない場
合の両方のプログラムカウンタ値を計算しなくても実行
の再開に必要なプログラムカウンタ値の情報を持つEコ
ードを待つだけで、上記と同様の方法により、複雑な処
理を行わずに簡単なハードウエアでスタツクに積むプロ
グラムカウンタ値を容易に得ることができる。
このように、トラツプが発生してもEIT処理実行後に
実行すべきプログラムカウンタ値を分岐命令かそうでな
いかにかかわらず、簡単なハードウエアで容易に得るこ
とができる。
以上に述べた方式を有するデータ処理装置において、
Eステージ(16)で分岐命令がトラツプを起こした場
合、後続の命令はEIT処理実行後に実行すべきプログラ
ムカウンタ値を得るためにEステージ(16)まで来る
が、これはプログラムカウンタ値を得るためだけであり
実行されず、キヤンセルされるべき命令である。この命
令がオペランドプリフエツチを行い、これがI/O領域へ
のアクセスであり、そのオペランドのデータがFIFO(Fi
rst In First Out)で入つているとすると、一度、その
データをアクセスしたために、実際にそのデータを処理
する時にデータが読めなくなつてしまう。従つて、EIT
処理終了後、つまり、EIT処理ハンドラから復帰命令に
より復帰した命令実行時にI/O領域へのアクセスが行わ
れる時には、違うオペランドをアクセスすることにな
り、副作用を生じる可能性がある。
従つて、パイプラインステージにおいて先行する分岐
命令がトラツプを起こした場合、次の命令に対してオペ
ランドの先取りを停止する。これにより、Eステージ
(16)において、先取りされたオペランドのI/O領域へ
のアクセスにより副作用が生じる可能性がある場合にお
いても、次の命令に対してオペランドのプリフエツチを
停止することにより、副作用を回避することができる。
この発明は次の(1)〜(2)項の実施態様により実
施できる。
(1)複数の命令からなるプログラムを処理し、 かつ各々のパイプラインステージが前記パイプライン
ステージにおいて処理すべき内容を示す複数の制御信号
群および前記制御信号群を生成した命令の番地を保持す
る手段を有するパイプライン機構を備え、 かつ前記各命令処理の境界で、命令の例外事象を検出
する手段と内部割り込み命令の実行であるトラツプ処理
を検出する手段と外部及び内部から割り込み要求信号を
受けて割り込み処理を検出する手段を備えたデータ処理
装置において、 前記各命令処理の境界で、前記命令の例外事象、前記
トラップ処理、及び前記割り込み処理のうちのいずれか
の例外を検出した際に該例外に対応する処理を行い、該
例外が検出された前記各命令処理の境界に続く命令処理
を前記例外に対応する前記処理の終了後に続行するため
に必要な命令の番地を、前記例外検出時の状態を示す情
報として記憶するとともに、実行ステージにおいて、該
例外を検出したパイプラインステージで処理すべき内容
を示す第1の制御信号群の次に処理すべき第2の制御信
号群を受け取つた時に、前記第2の制御信号群にもとづ
く処理を無効化し、該無効化する手段をさらに備え、前
記無効化する手段が記憶する、前記各命令処理の境界に
続く命令処理を続行するために必要な命令の番地は、無
効化した処理に関する前記第2の制御信号群に対応した
ものであることを特徴とするデータ処理装置。
(2)分岐命令が例外を発生した場合に、前記分岐先番
地の命令に対応するパイプラインステージで処理すべき
内容を示す複数の制御信号群が実行ステージに移行する
まで前記実行ステージ以前のパイプラインステージにお
いてオペランドの先取りを停止する手段を有したことを
特徴とする第1項記載のデータ処理装置。
〔発明の効果〕
以上のようにこの発明によれば、トラツプ発生時に次
のステツプコードを取り込み、かつ、Eステージの処理
をキヤンセルするという手段を備えたことにより、Eス
テージでのEIT処理終了後、次に実行すべきプログラム
カウンタ値を次に処理すべきステツプコードを待つだけ
で複雑な処理を行わず、簡単なハードウエアで容易に得
ることができる。
【図面の簡単な説明】
第1図はこの発明の一実施例によるデータ処理装置の機
能ブロツク図である。第2図はこの発明の一実施例によ
るデータ処理装置のパイプライン処理を示すブロツク図
である。第3図はスタツクフオーマツトを示す図、第4
図はトラツプ発生時の第2図におけるマイクロROMアク
セス部(15)、及び命令実行部(16)の動作のタイミン
グ図である。第5図はパイプライン処理機能を備えた従
来の例外処理機能を有するデータ処理装置のブロツク図
である。 図において、(1)は命令フエツチ部、(2)は命令デ
コード部、(3)はPC計算部、(4)はオペランドアド
レス計算部、(5)はマイクロROM部、(6)はデータ
演算部、(7)は外部バスインターフエイス部、(8)
はアドレス出力回路、(9)はデータ入出力回路、(1
0)は命令フエツチ部、(11)は命令デコード部1、(1
2)はオペランドアドレス計算部、(13)は命令デコー
ド部2、(14)はオペランドフエツチ部、(15)はマイ
クロROMアクセス部、(16)は命令実行部、(17)はプ
ログラムステータスワード、(18)はフオーマツト番
号、(19)はEITのタイプ、(20)はEITのベクトル番
号、(21)はEIT処理ハンドラからの復帰後の実行アド
レス、(22)はその他の情報、(23)はマイクロROMア
クセス部(15)のクロツク、(24)はマイクロROMアク
セスのポインタ、(25)は命令実行部(16)のクロツ
ク、(26)は命令実行部(16)の入力ラツチのコード、
(27)は実行制御コード、(28)はEIT発生フラグ、(2
9)はNOP信号、(30)はEステージのプログラムカウン
タ値、(30)は命令実行部(16)でのプログラムカウン
タ値、(31)は命令デコード部3である。 なお、図中、同一符号は相当部を示す。

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】複数の命令からなるプログラムを処理し、
    かつ各々のパイプラインステージが前記パイプラインス
    テージにおいて処理すべき内容を示す複数の制御信号群
    および前記制御信号群を生成した命令の番地を保持する
    手段を有するパイプライン機構を備え、 かつ前記各命令処理の境界で、命令の例外事象を検出す
    る手段と内部割り込み命令の実行であるトラップ処理を
    検出する手段と外部及び内部から割り込み要求信号を受
    けて割り込み処理を検出する手段を備えたデータ処理装
    置において、 前記各命令処理の境界で、前記命令の例外事象、前記ト
    ラップ処理、及び前記割り込み処理のうちのいずれかの
    例外を検出した際に該例外に対応する処理を行い、該例
    外が検出された前記各命令処理の境界に続く命令処理を
    前記例外に対応する前記処理の終了後に続行するために
    必要な命令の番地を、前記例外検出時の状態を示す情報
    として記憶するとともに、実行ステージにおいて、該例
    外を検出したパイプラインステージで処理すべき内容を
    示す第1の制御信号群の次に処理すべき第2の制御信号
    群を受け取った時に、前記第2の制御信号群にもとづく
    処理を無効化する手段をさらに備え、 前記無効化する手段が記憶する、前記各命令処理の境界
    に続く命令処理を続行するために必要な命令の番地は、
    無効化した処理に関する前記第2の制御信号群に対応し
    たものであることを特徴とする、高性能な例外処理を行
    うデータ処理装置。
JP63056826A 1988-03-09 1988-03-09 高機能な例外処理を行うデ―タ処理装置 Expired - Fee Related JP2532560B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP63056826A JP2532560B2 (ja) 1988-03-09 1988-03-09 高機能な例外処理を行うデ―タ処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP63056826A JP2532560B2 (ja) 1988-03-09 1988-03-09 高機能な例外処理を行うデ―タ処理装置

Publications (2)

Publication Number Publication Date
JPH01229327A JPH01229327A (ja) 1989-09-13
JP2532560B2 true JP2532560B2 (ja) 1996-09-11

Family

ID=13038183

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63056826A Expired - Fee Related JP2532560B2 (ja) 1988-03-09 1988-03-09 高機能な例外処理を行うデ―タ処理装置

Country Status (1)

Country Link
JP (1) JP2532560B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69132733T2 (de) * 1990-03-19 2002-05-29 Fujitsu Ltd Unterbrechungsverarbeitungssystem
JP5678687B2 (ja) * 2011-01-26 2015-03-04 富士通株式会社 処理装置

Also Published As

Publication number Publication date
JPH01229327A (ja) 1989-09-13

Similar Documents

Publication Publication Date Title
EP0628184B1 (en) Cpu having pipelined instruction unit and effective address calculation unit with retained virtual address capability
US5148529A (en) Pipelined multi-stage data processor including an operand bypass mechanism
US6058471A (en) Data processing system capable of executing groups of instructions in parallel
JP2507638B2 (ja) デ―タ処理装置
US20010005882A1 (en) Circuit and method for initiating exception routines using implicit exception checking
JPH04260950A (ja) キャッシュメモリ装置
JPH01214932A (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
JP2710994B2 (ja) データ処理装置
JP2532560B2 (ja) 高機能な例外処理を行うデ―タ処理装置
US5737562A (en) CPU pipeline having queuing stage to facilitate branch instructions
US5745723A (en) Data processing system capable of execution of plural instructions in parallel
JPH02105937A (ja) データ処理装置
JP3394854B2 (ja) 無条件ジャンプ命令処理方法並びにそのための無条件ジャンプ命令処理装置及び汎用レジスタ
JPH0377138A (ja) データ処理装置
JPH01281534A (ja) データ処理装置
JPH0769807B2 (ja) データ処理装置
JPH0225932A (ja) データ処理装置
EP0365187A2 (en) Apparatus for selective execution of instructions following a branch instruction
JPH03212734A (ja) データ処理装置
JPH0218621A (ja) データ処理装置
JPH0769805B2 (ja) データ処理装置
JPH03212736A (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