JPH0384632A - データ処理装置 - Google Patents
データ処理装置Info
- Publication number
- JPH0384632A JPH0384632A JP1222207A JP22220789A JPH0384632A JP H0384632 A JPH0384632 A JP H0384632A JP 1222207 A JP1222207 A JP 1222207A JP 22220789 A JP22220789 A JP 22220789A JP H0384632 A JPH0384632 A JP H0384632A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- processing
- stage
- bit
- 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.)
- Granted
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
-
- 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/22—Microcontrol or microprogram arrangements
- G06F9/28—Enhancement of operational speed, e.g. by using several microcontrol devices operating in parallel
-
- 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/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
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割込み処理機能を備えたマイクロプロセッ
サ等のデータ処理装置に関する。
置に関し、更に詳述すれば、高機能命令あるいは高機能
な例外処理1割込み処理機能を備えたマイクロプロセッ
サ等のデータ処理装置に関する。
半導体製造技術の進歩に伴ってLSIの大規模化が進ん
だことにより、マイクロプロセッサにおいても複数の命
令をファームウェア化して実行する高機能命令を備え、
ソフトウェア面での負担を軽減すると共に、処理性能の
向上が可能になって来ている。
だことにより、マイクロプロセッサにおいても複数の命
令をファームウェア化して実行する高機能命令を備え、
ソフトウェア面での負担を軽減すると共に、処理性能の
向上が可能になって来ている。
そのような高機能命令はマイクロプロセッサ内部で複雑
な処理を必要とするので、ノイマン型のマイクロプロセ
ッサでハードウェアの負荷を考慮して効率よく処理する
手法としては、高機能命令を複数の処理に分割してマイ
クロプログラム制御方式で実行することが有効である。
な処理を必要とするので、ノイマン型のマイクロプロセ
ッサでハードウェアの負荷を考慮して効率よく処理する
手法としては、高機能命令を複数の処理に分割してマイ
クロプログラム制御方式で実行することが有効である。
また、−i的にマイクロプロセッサ等のデータ処理装置
においては、パイプライン処理を行い、複数の命令を内
部のパイプラインステージで並列に処理する事によって
性能を向上させている。パイプライン処理の利点は、各
ステージでそれぞれ処理が分割して行われるために見か
け上、命令を並列処理できて処理性能が向上することで
ある。
においては、パイプライン処理を行い、複数の命令を内
部のパイプラインステージで並列に処理する事によって
性能を向上させている。パイプライン処理の利点は、各
ステージでそれぞれ処理が分割して行われるために見か
け上、命令を並列処理できて処理性能が向上することで
ある。
しかし、各パイプラインステージの処理に対する負荷が
均一でないと、負荷が大きいパイプラインステージでの
処理速度により全体の処理速度が制限されて性能向上が
図れない。
均一でないと、負荷が大きいパイプラインステージでの
処理速度により全体の処理速度が制限されて性能向上が
図れない。
従って、パイプラインの構成を設計する場合、マイクロ
プロセッサの処理する種々の命令の内容に基づいて各パ
イプラインステージでの処理に対する負荷が均一になる
ように考えて設計しなければならない。
プロセッサの処理する種々の命令の内容に基づいて各パ
イプラインステージでの処理に対する負荷が均一になる
ように考えて設計しなければならない。
!常、マイクロプロセッサのパイプライン構成を設計す
る場合、処理速度の面で問題が生じる部分は、外部バス
を使用して外部の記憶装置等との間でデータの転送をす
る処理である。従来のマイクロプロセッサでは、データ
の外部バスからの読込み処理とデータの外部バスへの書
込み処理とに要する時間が内部処理速度の比して長いと
いう理由から、それらの処理に対してそれぞれパイプラ
インステージを1段づつ設ける構成が採られていたとえ
ば、11.S、P、tIk14,648,034 A、
G、 Heinger他(7)”BUSY 5IGN
AL rNTERFAcE BETWEEN MAST
EII ANDSLAVE PROCESSOR5IN
A COMPUTERSYSTEM”ニは従来のデー
タ処理装置のパイプライン構成が示されている。
る場合、処理速度の面で問題が生じる部分は、外部バス
を使用して外部の記憶装置等との間でデータの転送をす
る処理である。従来のマイクロプロセッサでは、データ
の外部バスからの読込み処理とデータの外部バスへの書
込み処理とに要する時間が内部処理速度の比して長いと
いう理由から、それらの処理に対してそれぞれパイプラ
インステージを1段づつ設ける構成が採られていたとえ
ば、11.S、P、tIk14,648,034 A、
G、 Heinger他(7)”BUSY 5IGN
AL rNTERFAcE BETWEEN MAST
EII ANDSLAVE PROCESSOR5IN
A COMPUTERSYSTEM”ニは従来のデー
タ処理装置のパイプライン構成が示されている。
この従来のデータ処理装置は命令フェンチ、命令デコー
ド、アドレス計算、オペランドフェッチ。
ド、アドレス計算、オペランドフェッチ。
命令実行及びオペランドストアの6段のパイプラインス
テージにて構成されている。
テージにて構成されている。
第18図(a)〜(elはそのパイプライン処理のフロ
ーチャートである。
ーチャートである。
命令フェッチ3オペランドフエツチ及びオペランドスト
アの3つのパイプラインステージは外部バスアクセスを
行うステージであり、前述の如く、通常高速なマイクロ
プロセッサにおいては内部の信号処理に要する遅延時間
以上に外部バスを用いた処理に要する遅延時間がデータ
処理速度上問題になっている。そのため、外部バスを用
いた処理を行っている間に次の命令もしくはマイクロ命
令の処理を行って、総合的な遅延時間を縮小するように
している。
アの3つのパイプラインステージは外部バスアクセスを
行うステージであり、前述の如く、通常高速なマイクロ
プロセッサにおいては内部の信号処理に要する遅延時間
以上に外部バスを用いた処理に要する遅延時間がデータ
処理速度上問題になっている。そのため、外部バスを用
いた処理を行っている間に次の命令もしくはマイクロ命
令の処理を行って、総合的な遅延時間を縮小するように
している。
命令実行ステージでの処理276、277、279,2
81が終了してオペランドストアステージでの処理28
3゜285.287,289,291,293,295
に移行して285の処理で結果のオペランドデータを書
込むか否かの判断を行う。オペランドデータの書込みを
行わない場合には直ちにそのステージでの処理は終了す
る。
81が終了してオペランドストアステージでの処理28
3゜285.287,289,291,293,295
に移行して285の処理で結果のオペランドデータを書
込むか否かの判断を行う。オペランドデータの書込みを
行わない場合には直ちにそのステージでの処理は終了す
る。
即ち、総ての場合に命令はオペランドストアステージを
経由して処理される。
経由して処理される。
また21L235,239,269,281の処理にお
いては、各ステージ間での処理の終了をIii認してが
ら次のパイプラインステージへ進むような判断処理が行
われている。
いては、各ステージ間での処理の終了をIii認してが
ら次のパイプラインステージへ進むような判断処理が行
われている。
また、宮森他のrTl?ON仕様に基づ<32ビツトマ
イクロプロセツサTX3のCPUアーキテクチャの検討
Jt子情報通信学会、集積回路研究会、技術報告lCD
87−106では、TX3と称されるマイクロプロセッ
サのパイプライン構成が述べられている。
イクロプロセツサTX3のCPUアーキテクチャの検討
Jt子情報通信学会、集積回路研究会、技術報告lCD
87−106では、TX3と称されるマイクロプロセッ
サのパイプライン構成が述べられている。
基本的にマイクロプロセッサTX3は命令フェッチ、命
令デコード、実効アドレス計算、アドレス変換、オペラ
ンドフェッチ、命令実及びオペランドストアの7段のパ
イプラインステージで構成されている。また、この多段
のパイプライン構成の中でパイプライン処理自身の並列
化、具体的には命令実行のパイプラインステージを命令
デコードの次に行うことによって、マイクロプロセッサ
の性能向上を達成させようとしている。
令デコード、実効アドレス計算、アドレス変換、オペラ
ンドフェッチ、命令実及びオペランドストアの7段のパ
イプラインステージで構成されている。また、この多段
のパイプライン構成の中でパイプライン処理自身の並列
化、具体的には命令実行のパイプラインステージを命令
デコードの次に行うことによって、マイクロプロセッサ
の性能向上を達成させようとしている。
第19図はそのパイプライン構成図を示す模式図である
。
。
第18図に示した例と同様、オペランドフェッチステー
ジ302とオペランドストアステージ305とでの処理
に対して1つのパイプラインステージが割当てられるこ
とにより、命令の処理に際して外部バスアクセスによる
遅延を縮小するようにしている。この例でも、オペラン
ドストアに対して1つのパイプラインステーシカ<By
当てられているので、命令処理中の書込み処理に対して
は常に次段のステージに処理が移されている。
ジ302とオペランドストアステージ305とでの処理
に対して1つのパイプラインステージが割当てられるこ
とにより、命令の処理に際して外部バスアクセスによる
遅延を縮小するようにしている。この例でも、オペラン
ドストアに対して1つのパイプラインステーシカ<By
当てられているので、命令処理中の書込み処理に対して
は常に次段のステージに処理が移されている。
更に、D、 Alpert他による“^rchitec
ture ofthe N532532 Microp
rocessor proc、 of ICCD
1987. pp168〜172ではN532532
と称されるマイクロプロセッサのパイプライン構成が述
べられている。ここでは4段のステージ310,312
.314,315にて構成されるパイプライン機構が示
されている。
ture ofthe N532532 Microp
rocessor proc、 of ICCD
1987. pp168〜172ではN532532
と称されるマイクロプロセッサのパイプライン構成が述
べられている。ここでは4段のステージ310,312
.314,315にて構成されるパイプライン機構が示
されている。
第20図はマイクロプロセッサN532532のパイプ
ライン構成を示す模式図である。
ライン構成を示す模式図である。
この図ではオペランドフェッチはアドレス計算ステージ
314(ステージ3)でアドレス計算と、オペランドス
トアは命令実行ステージ315(ステージ4)で命令実
行とそれぞれ同一ステージで行っているが、オペランド
ストアの処理用に2ワードのバッファ316を設けてい
る。
314(ステージ3)でアドレス計算と、オペランドス
トアは命令実行ステージ315(ステージ4)で命令実
行とそれぞれ同一ステージで行っているが、オペランド
ストアの処理用に2ワードのバッファ316を設けてい
る。
即ち、書込み処理はバッファ316に移して実行させて
おくので、命令実行ステージでは次の処理を開始できる
。従って、この場合はパイプラインステージとしては4
段であるが、それ以上の命令を同時に処理することが可
能である。
おくので、命令実行ステージでは次の処理を開始できる
。従って、この場合はパイプラインステージとしては4
段であるが、それ以上の命令を同時に処理することが可
能である。
以上の例から、従来ではオペランドのフェッチあるいは
ストアに対してそれぞれ無条件に外部バスアクセスする
場合、1つのパイプラインステージが割当てられてパイ
プライン処理の性能向上を図るという手法がとられてい
る。この場合、外部バスをアクセスする処理自身が1つ
のパイプラインステージとして割当てられているので、
オペランドのフェッチあるいはストア処理が行われる場
合は常にそれらの処理が別のパイプラインステージに移
jテしていた。
ストアに対してそれぞれ無条件に外部バスアクセスする
場合、1つのパイプラインステージが割当てられてパイ
プライン処理の性能向上を図るという手法がとられてい
る。この場合、外部バスをアクセスする処理自身が1つ
のパイプラインステージとして割当てられているので、
オペランドのフェッチあるいはストア処理が行われる場
合は常にそれらの処理が別のパイプラインステージに移
jテしていた。
1つの命令が単一ステップのマイクロ命令で終了する場
合は上述のような処理方法でも制御上困難ではない。し
かし、多くの高機能命令を含むようなマイクロプロセッ
サにおいては、1つの命令が複数のマイクロ命令のステ
ップを要するような場合に命令実行とオペランドフェッ
チ及びオペランドストアのパイプラインステージにおい
て同一の命令の処理が同時に行われる可能性がある。そ
してそれらが同時に処理されている際に例外1割込みあ
るいはトラップ(以下、BITと総称する)が発生した
場合、その対処方法が複雑になっていた。
合は上述のような処理方法でも制御上困難ではない。し
かし、多くの高機能命令を含むようなマイクロプロセッ
サにおいては、1つの命令が複数のマイクロ命令のステ
ップを要するような場合に命令実行とオペランドフェッ
チ及びオペランドストアのパイプラインステージにおい
て同一の命令の処理が同時に行われる可能性がある。そ
してそれらが同時に処理されている際に例外1割込みあ
るいはトラップ(以下、BITと総称する)が発生した
場合、その対処方法が複雑になっていた。
このような観点から、たとえばJ、E、Sm1th、A
、R。
、R。
Pleszkunによる’IMPLEMENTATIO
N OF PFIICrSE rNTERRUPTS
IN PIPLINED PROCESSOR5″pr
oc、 of 7thAnnual Internat
ional Sy+wposius on Compu
ter Architecture+ June+ 1
885+ pp、36−44では高度なパイプライン構
造を持つコンピュータにおける割込みに対する内部状態
の保存の困難性が述べられており、そのための−殻内手
法が説明されているが、基本的には内部状態を保持する
ためのバッファが必要になるとしている。従って、BI
T処理が複雑になればなる程、パイプライン上で単一命
令が複数のパイプラインステージに跨って処理されるこ
とがBIT発生時の内部状態を保持するための処理をハ
ードウェアで実現する上で大きな問題になる。
N OF PFIICrSE rNTERRUPTS
IN PIPLINED PROCESSOR5″pr
oc、 of 7thAnnual Internat
ional Sy+wposius on Compu
ter Architecture+ June+ 1
885+ pp、36−44では高度なパイプライン構
造を持つコンピュータにおける割込みに対する内部状態
の保存の困難性が述べられており、そのための−殻内手
法が説明されているが、基本的には内部状態を保持する
ためのバッファが必要になるとしている。従って、BI
T処理が複雑になればなる程、パイプライン上で単一命
令が複数のパイプラインステージに跨って処理されるこ
とがBIT発生時の内部状態を保持するための処理をハ
ードウェアで実現する上で大きな問題になる。
近年マイクロプロセッサの高a能化に伴い、ソフトウェ
アの負荷を軽減する目的で、高度で且つ複雑なりIT処
理を実行するマイクロプロセッサが製造される傾向にあ
る。そのようなマイクロプロセッサにおいては、多くの
高機能命令を含むため、そうした命令処理の高速化のた
めに5乃至6段以上の多段のパイプライン構成を採用し
ている。そのような場合、マイクロプロセッサの外部バ
スアクセス時間が内部処理時間に対して遅いことがら、
オペランドのフェッチとストアとは多くの場合1つのパ
イプラインステージとして割付けられている。また高機
能命令をマイクロプロセッサ内で実行する場合、複数の
マイクロ命令ステップにわたって処理を行うので、1つ
の命令がいくつかのパイプラインステージに跨って処理
されるが、この際に前述のようにBITが発生した場合
、内部状態の保存を行うためには多くのハードウェアが
必要になってくる。
アの負荷を軽減する目的で、高度で且つ複雑なりIT処
理を実行するマイクロプロセッサが製造される傾向にあ
る。そのようなマイクロプロセッサにおいては、多くの
高機能命令を含むため、そうした命令処理の高速化のた
めに5乃至6段以上の多段のパイプライン構成を採用し
ている。そのような場合、マイクロプロセッサの外部バ
スアクセス時間が内部処理時間に対して遅いことがら、
オペランドのフェッチとストアとは多くの場合1つのパ
イプラインステージとして割付けられている。また高機
能命令をマイクロプロセッサ内で実行する場合、複数の
マイクロ命令ステップにわたって処理を行うので、1つ
の命令がいくつかのパイプラインステージに跨って処理
されるが、この際に前述のようにBITが発生した場合
、内部状態の保存を行うためには多くのハードウェアが
必要になってくる。
本発明はこのような問題を解決すべくなされたものであ
り、特にオペランドのストアに関するパイプライン処理
において、BIT処理に対する内部状態保存の機能の保
証を簡単なホ制御方弐で可能番こしたものである。
り、特にオペランドのストアに関するパイプライン処理
において、BIT処理に対する内部状態保存の機能の保
証を簡単なホ制御方弐で可能番こしたものである。
本発明のデータ処理装置は、マイクロプログラムの最終
ステップがオペランドストア処理を含む場合、その最終
マイクロステップのオペランドストア処理のみを次のバ
イブラインステージに移行して処理するように構成され
ている。
ステップがオペランドストア処理を含む場合、その最終
マイクロステップのオペランドストア処理のみを次のバ
イブラインステージに移行して処理するように構成され
ている。
本発明のデータ処理装置では、マイクロプログラムの最
終ステップの処理としてオペランドのストア等の書込み
処理を含む場合、その書込み処理のみを次のパイプライ
ンステージに移行することによって、それ以外の、複数
ステップにわたるマイクロ命令の実行途中の外部バスア
クセス処理は総て命令実行ステージで行うように制御さ
れる。
終ステップの処理としてオペランドのストア等の書込み
処理を含む場合、その書込み処理のみを次のパイプライ
ンステージに移行することによって、それ以外の、複数
ステップにわたるマイクロ命令の実行途中の外部バスア
クセス処理は総て命令実行ステージで行うように制御さ
れる。
これにより、PS獣プロセンサステータスワード)ある
いはPC(プログラムカウンタ)等の内部状態を示す情
報の管理も命令実行ステージのみで行えばよいことにな
るので、マイクロプログラムによりそれらの情報の管理
が可能になる。
いはPC(プログラムカウンタ)等の内部状態を示す情
報の管理も命令実行ステージのみで行えばよいことにな
るので、マイクロプログラムによりそれらの情報の管理
が可能になる。
なお、本発明のデータ処理装置では、マイクロプロセッ
サの処理速度の低下が問題になるが、複数のマイクロ命
令の実行途中で外部バスアクセスを何度も行うストリン
グ情報を扱うような高機能命令では、マイクロ命令で外
部バスアクセスの処理順序を遅延が少なくなるようにマ
イクロ命令をプログラムすることができ、また他の高機
能命令においても同様な対処方法ができるので、性能劣
〔発明の実施例〕 以下、本発明をその実施例を示す図面に基づいて詳述す
る。
サの処理速度の低下が問題になるが、複数のマイクロ命
令の実行途中で外部バスアクセスを何度も行うストリン
グ情報を扱うような高機能命令では、マイクロ命令で外
部バスアクセスの処理順序を遅延が少なくなるようにマ
イクロ命令をプログラムすることができ、また他の高機
能命令においても同様な対処方法ができるので、性能劣
〔発明の実施例〕 以下、本発明をその実施例を示す図面に基づいて詳述す
る。
本実施例では32ビツトマイクロプロセツサをCPt1
として使用しているものとする。
として使用しているものとする。
(1)「機能ブロックの構成」
第6図は本発明のデータ処理装置の構成を示すブロック
図である。
図である。
本発明のデータ処理装置の内部を機能的に大きく分ける
と、命令フェッチ部51.命令デコード部52、 PC
計算部53.オペランドアドレス計算部54マイクロ1
10M部55.データ演算部56.外部バスインターフ
ェイス部57に分かれる。
と、命令フェッチ部51.命令デコード部52、 PC
計算部53.オペランドアドレス計算部54マイクロ1
10M部55.データ演算部56.外部バスインターフ
ェイス部57に分かれる。
第6図では、その他にCPU外部ヘアドレスを出力する
ためのアドレス出力回路58と、CPU外部とデータを
人出力するためのデータ入出力回路59とを他の機能ブ
ロック部と分けて示した。
ためのアドレス出力回路58と、CPU外部とデータを
人出力するためのデータ入出力回路59とを他の機能ブ
ロック部と分けて示した。
(1,1) r命令フェッチ部」
命令フェッチ部51にはブランチバッファ、命令キュー
とその制御部等があり、次にフェッチすべき命令のアド
レスを決定してブランチバッファあるいはCPU外部の
メモリから命令をフェッチする。
とその制御部等があり、次にフェッチすべき命令のアド
レスを決定してブランチバッファあるいはCPU外部の
メモリから命令をフェッチする。
またブランチバッファへの命令登録をも行う。
ブランチバッファは小規模であるためセレクティブキャ
ッシュとして動作する。
ッシュとして動作する。
ブランチバッファの動作の詳細に関しては特開昭63−
56731号に開示されている。
56731号に開示されている。
次にフェッチすべき命令のアドレスは、命令キュー(第
1図参照)へ入力すべき命令のアドレスとして専用のカ
ウンタにて計算される。分岐あるいはジャンプが発生し
た場合には、新たな命令のアドレスがPC計算部53あ
るいはデータ演算部56から転送されてくる。
1図参照)へ入力すべき命令のアドレスとして専用のカ
ウンタにて計算される。分岐あるいはジャンプが発生し
た場合には、新たな命令のアドレスがPC計算部53あ
るいはデータ演算部56から転送されてくる。
CPU外部のメモリから命令をフェッチする場合は、外
部バスインターフェイス部57を通してフェッチすべき
命令のアドレスがアドレス出力回路58からCPu外部
へ出力されることにより、データ入出力回路59から命
令コードがフェッチされる。そして、バッフアリソゲし
た命令コードの内、次にデコードすべき命令コードが命
令デコード部52へ出力される。
部バスインターフェイス部57を通してフェッチすべき
命令のアドレスがアドレス出力回路58からCPu外部
へ出力されることにより、データ入出力回路59から命
令コードがフェッチされる。そして、バッフアリソゲし
た命令コードの内、次にデコードすべき命令コードが命
令デコード部52へ出力される。
(1,2) r命令デコード部」
命令デコード部52においては、基本的には16ビツト
(ハーフワード)単位で命令コードをデコードする。こ
のブロックには第1ハーフワードに含まれるオペレーシ
ョンコードをデコードするFHWデコーダ、第2.第3
ハーフワードに含まれるオペレーションコードをデコー
ドするNFH−デコーダ、アドレッシングモードをデコ
ードするアトレンジングモードデコーダが含まれる。こ
れらFH−デコーダ、NFH−デコーダ、アトレンジン
グモードデコーダを一括して第1デコーダと称する。
(ハーフワード)単位で命令コードをデコードする。こ
のブロックには第1ハーフワードに含まれるオペレーシ
ョンコードをデコードするFHWデコーダ、第2.第3
ハーフワードに含まれるオペレーションコードをデコー
ドするNFH−デコーダ、アドレッシングモードをデコ
ードするアトレンジングモードデコーダが含まれる。こ
れらFH−デコーダ、NFH−デコーダ、アトレンジン
グモードデコーダを一括して第1デコーダと称する。
FHWデコーダあるいはNFHWデコーダの出力を更に
デコードしてマイクロROMのエントリアドレスを計算
する第2デコーダ、条件分岐命令の分岐予測を行う分岐
予測機構及びオペランドアドレス計算の際のバイブライ
ンコンフリクトをチエツクするアドレス計算コンフリク
トチエツク機構も含まれる。
デコードしてマイクロROMのエントリアドレスを計算
する第2デコーダ、条件分岐命令の分岐予測を行う分岐
予測機構及びオペランドアドレス計算の際のバイブライ
ンコンフリクトをチエツクするアドレス計算コンフリク
トチエツク機構も含まれる。
命令デコード部52は命令フェンチ部51から人力され
た命令コードを2クロツクにつきO〜6バイトずつデコ
ードする。デコード結果の内、データ演算部56での演
算に関係する情報がマイクロROM部55へ、オペラン
ドアドレス計算に関係する情報がオペランドアドレス計
算部54へ、PC計算に関係する情報がPC計算部53
へそれぞれ出力される。
た命令コードを2クロツクにつきO〜6バイトずつデコ
ードする。デコード結果の内、データ演算部56での演
算に関係する情報がマイクロROM部55へ、オペラン
ドアドレス計算に関係する情報がオペランドアドレス計
算部54へ、PC計算に関係する情報がPC計算部53
へそれぞれ出力される。
(1,3) rマイクロROM部」
マイクロROM部55には、主にデータ演算部56を制
御するマイクロプログラムが格納されているマイクロR
OM、 マイクロシーケンサ、マイクロ命令デコーダ
等が含まれる。
御するマイクロプログラムが格納されているマイクロR
OM、 マイクロシーケンサ、マイクロ命令デコーダ
等が含まれる。
マイクロ命令はマイクロROMから2クロツクに1度読
出される。マイクロシーケンサはマイクロプログラムで
示されるシーケンス処理の他に、例外1割込及びトラッ
プ(この3つを合わせてBITと称する)の処理をハー
ドウェア的に受付ける。
出される。マイクロシーケンサはマイクロプログラムで
示されるシーケンス処理の他に、例外1割込及びトラッ
プ(この3つを合わせてBITと称する)の処理をハー
ドウェア的に受付ける。
またマイクロROM部55はストアバッファの管理も行
う。
う。
マイクロROM部55には命令コードに依存しない割込
みあるいは演算実行結果によるフラッグ情報と、第2デ
コーダの出力等の命令デコード部の出力が入力される。
みあるいは演算実行結果によるフラッグ情報と、第2デ
コーダの出力等の命令デコード部の出力が入力される。
マイクロデコーダの出力は主にデータ演算部56に対し
て出力されるが、ジャンプ命令の実行による他の先行処
理中止情報等の一部の情報は他のブロックへも出力され
る。
て出力されるが、ジャンプ命令の実行による他の先行処
理中止情報等の一部の情報は他のブロックへも出力され
る。
(1,4) rオペランドアドレス計算部」オペラン
ドアドレス計算部54は命令デコード部52のアドレス
デコーダ等から出力されたオペランドアドレス計算に関
係する情報によりハードワイヤード制御される。このブ
ロックではオペランドのアドレス計算に関するほとんど
の処理が行われる。メモリ間接アドレッシングのための
メモリアクセスのアドレス及びオペランドアドレスがメ
モリにマフブされたIlo LQ域に入るか否かのチエ
ツクも行われる。
ドアドレス計算部54は命令デコード部52のアドレス
デコーダ等から出力されたオペランドアドレス計算に関
係する情報によりハードワイヤード制御される。このブ
ロックではオペランドのアドレス計算に関するほとんど
の処理が行われる。メモリ間接アドレッシングのための
メモリアクセスのアドレス及びオペランドアドレスがメ
モリにマフブされたIlo LQ域に入るか否かのチエ
ツクも行われる。
アドレス計算結果は外部バスインターフェイス部57へ
送られる。アドレス計算に必要な汎用レジスタ及びプロ
グラムカウンタの値はデータ演算部から入力される。
送られる。アドレス計算に必要な汎用レジスタ及びプロ
グラムカウンタの値はデータ演算部から入力される。
メモリ間接アドレッシングを行う際は外部バスインター
フェイス部57を通じてアドレス出力回路58からCP
U外部へ参照すべきメモリアドレスが出力されることに
より、データ入出力部59から人力された間接アドレス
値が命令デコード部52をそのまま通ってフェッチされ
る。
フェイス部57を通じてアドレス出力回路58からCP
U外部へ参照すべきメモリアドレスが出力されることに
より、データ入出力部59から人力された間接アドレス
値が命令デコード部52をそのまま通ってフェッチされ
る。
(1,5) rPC計算部」
pc計算部53は命令デコード部52から出力されるP
C計算に関係する情報によりハードワイヤードに制御さ
れ、命令のpc値を計算する。
C計算に関係する情報によりハードワイヤードに制御さ
れ、命令のpc値を計算する。
本発明のデータ処理装置は可変長命令セットを有してお
り、命令をデコードしなければその命令の長さが判らな
い。このため、pc計算部53は命令デコード部52か
ら出力される命令長をデコード中の命令のpc値に加算
することにより次の命令のPCイ直を作り出す。
り、命令をデコードしなければその命令の長さが判らな
い。このため、pc計算部53は命令デコード部52か
ら出力される命令長をデコード中の命令のpc値に加算
することにより次の命令のPCイ直を作り出す。
また、命令デコード部52が分岐命令をデコードしてデ
コード段階での分岐を指示した場合は、PC言1算部5
3は命令長の代わりに分岐変位を分岐命令のpc(aに
加算することにより分岐先命令のpc値を計算する。こ
のように分岐命令に対して命令デコード段階において予
め分岐することを本発明のデータ処理装置ではブリブラ
ンチと称する。
コード段階での分岐を指示した場合は、PC言1算部5
3は命令長の代わりに分岐変位を分岐命令のpc(aに
加算することにより分岐先命令のpc値を計算する。こ
のように分岐命令に対して命令デコード段階において予
め分岐することを本発明のデータ処理装置ではブリブラ
ンチと称する。
ブリブランチ処理に関しては特願昭61−204500
号及び特願昭61−200557号に詳しく開示されて
いる。
号及び特願昭61−200557号に詳しく開示されて
いる。
pc計算部53の計算結果は各命令のpc値として命令
のデコード結果と共に出力される他、ブリブランチ時に
は次にデコードされるべき命令のアドレスとして命令フ
ェッチ部51へ出力されると共に、次に命令デコード部
52においてデコードされる命令の分岐予測のためのア
ドレスとしても使用される。
のデコード結果と共に出力される他、ブリブランチ時に
は次にデコードされるべき命令のアドレスとして命令フ
ェッチ部51へ出力されると共に、次に命令デコード部
52においてデコードされる命令の分岐予測のためのア
ドレスとしても使用される。
分岐予測に関しては特願昭62−8394号に詳しく開
示されている。
示されている。
(1,6) rデータ演算部」
データ演算部56はマイクロプログラムにより制御され
、マイクロROM部55の出力情報に従って各命令の機
能を実現するために必要な演算をレジスタと演算器とで
実行する。
、マイクロROM部55の出力情報に従って各命令の機
能を実現するために必要な演算をレジスタと演算器とで
実行する。
オペランドアドレス計算部54で計算されたアドレスを
外部バスインターフェイス部57を通して得る場合、あ
るいはそのアドレスでフェッチしたオペランドをデータ
入出力回路59から得る場合もある。
外部バスインターフェイス部57を通して得る場合、あ
るいはそのアドレスでフェッチしたオペランドをデータ
入出力回路59から得る場合もある。
演算器としてはA1口、 バレルシフタ、プライオリテ
ィエンコーダあるいはカウンタ、シフトレジスタ等があ
る。レジスタと主な演算器との間は3バスで結合されて
おり、1つのレジスフ間演算を指示する1マイクロ命令
は2クロツクで処理される。
ィエンコーダあるいはカウンタ、シフトレジスタ等があ
る。レジスタと主な演算器との間は3バスで結合されて
おり、1つのレジスフ間演算を指示する1マイクロ命令
は2クロツクで処理される。
データ演算時にCPu外部のメモリをアクセスする必要
がある場合は、マイクロプログラムの指示により外部バ
スインターフェイス部57を通してアドレス出力回路5
8からアドレスがCPU外部へ出力されることにより、
データ入出力回路59を通して目的のデータがフェッチ
される。
がある場合は、マイクロプログラムの指示により外部バ
スインターフェイス部57を通してアドレス出力回路5
8からアドレスがCPU外部へ出力されることにより、
データ入出力回路59を通して目的のデータがフェッチ
される。
CPu外部のメモリからデータをストアする場合は、外
部バスインターフェイス部57を通してアドレス出力回
路58からアドレスを出力すると同時にデータ入出力回
路59からデータをCPU外部へ出力する。
部バスインターフェイス部57を通してアドレス出力回
路58からアドレスを出力すると同時にデータ入出力回
路59からデータをCPU外部へ出力する。
オペランドストアを効率的に実行するためにデータ演算
部56には4バイトのストアバッファが備えられている
。
部56には4バイトのストアバッファが備えられている
。
ジャンプ命令の処理あるいは例外処理等を行って新たな
命令アドレスをデータ演算部56が得た場合は、これを
命令フェッチ部11とPC計算部13へ出力する。
命令アドレスをデータ演算部56が得た場合は、これを
命令フェッチ部11とPC計算部13へ出力する。
(1,7) r外部バスインターフェイス部」外部バ
スインターフェイス部57は本発明のデータ処理装置の
外部バスでの通信を制御する。メモリのアクセスはすべ
てクロック同期で行われ、最小2クロックサイクルで行
うことができる。
スインターフェイス部57は本発明のデータ処理装置の
外部バスでの通信を制御する。メモリのアクセスはすべ
てクロック同期で行われ、最小2クロックサイクルで行
うことができる。
メモリに対するアクセス要求は命令フェッチ部51、オ
ペランドアドレス計算部54及びデータ演算部56から
独立に生じる。
ペランドアドレス計算部54及びデータ演算部56から
独立に生じる。
外部バスインターフェイス部57はこれらのメモリアク
セス要求を調停する。更にメモリとCPUとを結ぶデー
タバスサイズである32ビツト(1ワード〉の整置境界
を跨ぐメモリ番地にあるデータのアクセスは、このブロ
ック内で自動的にワード境界を跨ぐことが検知されて2
回のメモリアクセスに分解されて行われる。
セス要求を調停する。更にメモリとCPUとを結ぶデー
タバスサイズである32ビツト(1ワード〉の整置境界
を跨ぐメモリ番地にあるデータのアクセスは、このブロ
ック内で自動的にワード境界を跨ぐことが検知されて2
回のメモリアクセスに分解されて行われる。
(2)「パイプライン機構」
本発明のデータ処理装置のパイプライン処理機構は第7
図に模式的に示される如<nt戒されている。
図に模式的に示される如<nt戒されている。
命令のブリフェッチを行う命令フェッチステージ(IP
ステージ)31. 命令のデコードを行うデコードス
テージ(Dステージ)32. オペランドのアドレス
計算を行うオペランドアドレス計算ステージ(Aステー
ジ)33. マイクロROMアクセス(特にRステー
ジ36と称す)を行う部分とオペランドのブリフェッチ
(特にOFステージ37と称す)を行う部分とからなる
オペランドフェッチステージ(Fステージ)34.
命令を実行する実行ステージ(Eステージ)35の5段
構成をパイプライン処理の基本とする。
ステージ)31. 命令のデコードを行うデコードス
テージ(Dステージ)32. オペランドのアドレス
計算を行うオペランドアドレス計算ステージ(Aステー
ジ)33. マイクロROMアクセス(特にRステー
ジ36と称す)を行う部分とオペランドのブリフェッチ
(特にOFステージ37と称す)を行う部分とからなる
オペランドフェッチステージ(Fステージ)34.
命令を実行する実行ステージ(Eステージ)35の5段
構成をパイプライン処理の基本とする。
Eステージ35では1段のストアバッファがある他、高
機能命令の一部は命令の実行自体をパイプライン化して
いるため、実際には5段以上のパイプライン処理効果が
ある。
機能命令の一部は命令の実行自体をパイプライン化して
いるため、実際には5段以上のパイプライン処理効果が
ある。
各ステージは他のステージとは独立に動作し、理論上は
5つのステージが完全に独立して動作する。各ステージ
は1回の処理を最小2クロック(1ステツプ)で行うこ
とができる。従って理想的には2クロンク(lステップ
)毎に次々とパイプライン処理が進行する。
5つのステージが完全に独立して動作する。各ステージ
は1回の処理を最小2クロック(1ステツプ)で行うこ
とができる。従って理想的には2クロンク(lステップ
)毎に次々とパイプライン処理が進行する。
本発明のデータ処理装置には、メモリーメモリ間演算あ
るいはメモリ間接アドレッシング等の如く1回の基本パ
イプライン処理のみでは処理し得ない命令もあるが、本
発明のデータ処理装置はこれらの処理に対してもなるべ
く均衡のとれたパイプライン処理が行える様に設計され
ている。複数のメモリオペランドを持つ命令に対しては
メモリオペランドの数に基づいてデコード段階で複数ツ
バイブライン処理単位(ステップコード)に分解してパ
イプライン処理を行う。
るいはメモリ間接アドレッシング等の如く1回の基本パ
イプライン処理のみでは処理し得ない命令もあるが、本
発明のデータ処理装置はこれらの処理に対してもなるべ
く均衡のとれたパイプライン処理が行える様に設計され
ている。複数のメモリオペランドを持つ命令に対しては
メモリオペランドの数に基づいてデコード段階で複数ツ
バイブライン処理単位(ステップコード)に分解してパ
イプライン処理を行う。
パイプライン処理単位の分解方法に関しては特開昭63
−89932号で詳しく開示されている。
−89932号で詳しく開示されている。
IPステージ31からDステージ32へ渡される情報は
命令コード40そのものである。
命令コード40そのものである。
Dステージ32からAステージ33へ渡される情報は、
命令で指定された演算に関するもの(Dコード41と称
す)と、オペランドのアドレス計算に関係するもの(A
コード42と称す)との2つがある。
命令で指定された演算に関するもの(Dコード41と称
す)と、オペランドのアドレス計算に関係するもの(A
コード42と称す)との2つがある。
Aステージ33からFステージ34へ渡される情報はマ
イクロプログラムルーチンのエントリアドレスあるいは
マイクロプログラムのパラメータ等を含むRコード43
と、オペランドのアドレスとアクセス方法指示情報等を
含むFコード44との2つである。
イクロプログラムルーチンのエントリアドレスあるいは
マイクロプログラムのパラメータ等を含むRコード43
と、オペランドのアドレスとアクセス方法指示情報等を
含むFコード44との2つである。
Fステージ34からEステージ35へ渡される情報は、
演算制御情報とリテラル等を含むEコード45と、オペ
ランドあるいはオペランドアドレス等を含むSコード4
6との2つである。
演算制御情報とリテラル等を含むEコード45と、オペ
ランドあるいはオペランドアドレス等を含むSコード4
6との2つである。
Eステージ35以外のステージで検出されたEITは、
そのコードがEステージ35へ到達する迄はErT処理
を起動しない。Eステージ35で処理されている命令の
みが実行段階の命令であり、IPステージ31からFス
テージ34までの間で処理されている命令はまだ実行段
階に至っていないからである。従って、Eステージ35
以外で検出されたBITは、それが検出されたことがス
テップコード中に記録されて次のステージへ伝えられる
のみである。
そのコードがEステージ35へ到達する迄はErT処理
を起動しない。Eステージ35で処理されている命令の
みが実行段階の命令であり、IPステージ31からFス
テージ34までの間で処理されている命令はまだ実行段
階に至っていないからである。従って、Eステージ35
以外で検出されたBITは、それが検出されたことがス
テップコード中に記録されて次のステージへ伝えられる
のみである。
(2,1) rパイプライン処理単位」(2,1,1
) r命令コードフィールドの分類」本発明のデータ
処理装置では、パイプライン処理単位は命令セントのフ
ォーマントの特徴を利用して決定されている。
) r命令コードフィールドの分類」本発明のデータ
処理装置では、パイプライン処理単位は命令セントのフ
ォーマントの特徴を利用して決定されている。
(11節において詳述した如く、本発明のデータ処理装
置の命令は2バイト単位の可変長命令であり、基本的に
は“2バイトの命令基本部子〇〜4バイトのアドレッシ
ング修飾部”をl乃至3回反復することにより命令が構
成されている。
置の命令は2バイト単位の可変長命令であり、基本的に
は“2バイトの命令基本部子〇〜4バイトのアドレッシ
ング修飾部”をl乃至3回反復することにより命令が構
成されている。
命令基本部には多くの場合、オペレーションコード部と
アドレッシングモード指定部とがあり、インデックスア
ドレッシングあるいはメモリ間接アドレッシングが必要
な場合には、アドレッシング修飾部に代えて“2バイト
の多重間接モード指定部十〇〜4バイトのアドレッシン
グ修飾部”が任意個付加される。ああ、命令によっては
2または4バイトの命令固有の拡張部が最後に付加され
る。
アドレッシングモード指定部とがあり、インデックスア
ドレッシングあるいはメモリ間接アドレッシングが必要
な場合には、アドレッシング修飾部に代えて“2バイト
の多重間接モード指定部十〇〜4バイトのアドレッシン
グ修飾部”が任意個付加される。ああ、命令によっては
2または4バイトの命令固有の拡張部が最後に付加され
る。
命令基本部には、命令のオペレーションコード。
基本アドレフシングモード、リテラル等が含まれる。
アドレッシング修飾部はディスプレースメント絶対アド
レス、即値あるいは分岐命令の変位のいずれかである。
レス、即値あるいは分岐命令の変位のいずれかである。
命令固有の拡張部にはレジスタマツプ+ I−form
at命令の即値指定等がある。
at命令の即値指定等がある。
第8図に本発明のデータ処理装置の基本的命令フォーマ
ントの特徴を示す。
ントの特徴を示す。
(2,1,2) rステップコードへの命令の分解」
本発明のでそでは上述の如き命令フォーマットの特徴を
生かしたパイプライン処理を行う。
本発明のでそでは上述の如き命令フォーマットの特徴を
生かしたパイプライン処理を行う。
Dステージ32では、“2バイトの命令基本部中〇〜4
バイトのアドレッシング修飾部″1′2バイトの多重間
接モード指定部子〇〜4バイトのアドレッシング修飾部
”または命令固有の拡張部を一つのデコード単位として
処理する。各回のデコード結果をステップコードと称し
、Aステージ33以降の各ステージではこのステップコ
ードをパイプライン処理の単位としている。
バイトのアドレッシング修飾部″1′2バイトの多重間
接モード指定部子〇〜4バイトのアドレッシング修飾部
”または命令固有の拡張部を一つのデコード単位として
処理する。各回のデコード結果をステップコードと称し
、Aステージ33以降の各ステージではこのステップコ
ードをパイプライン処理の単位としている。
ステップコードの数は各命令に固有であり、多重間接モ
ードが指定されない場合は、一つの命令は最小1個、最
大3個のステップコードに分解される。多重間接モード
が指定される場合は、それだけステップコードが増加す
る。但し、これは後述する如く、デコード段階のみであ
る。
ードが指定されない場合は、一つの命令は最小1個、最
大3個のステップコードに分解される。多重間接モード
が指定される場合は、それだけステップコードが増加す
る。但し、これは後述する如く、デコード段階のみであ
る。
(2,1,3) rプログラムカウンタの管理」本発
明のデータ処理装置のパイプライン上に存在するステッ
プコードは全て別命令に対するものである可能性があり
、このためプログラムカウンタの値はステップコード毎
に管理される。総てのステップコードは、そのステップ
コードのもとになった命令のプログラムカウンタ値を有
する。
明のデータ処理装置のパイプライン上に存在するステッ
プコードは全て別命令に対するものである可能性があり
、このためプログラムカウンタの値はステップコード毎
に管理される。総てのステップコードは、そのステップ
コードのもとになった命令のプログラムカウンタ値を有
する。
ステップコードに付属してパイプラインの各ステージを
流れるプログラムカウンタ値はステッププログラムカウ
ンタ(SPC) と称される。SPCはパイプライン
の各ステージ間を次々と受渡されていく。
流れるプログラムカウンタ値はステッププログラムカウ
ンタ(SPC) と称される。SPCはパイプライン
の各ステージ間を次々と受渡されていく。
(2,2) r各パイプラインステージの処理」各パ
イプラインステージの入出カステップコードには第7図
に示したように便宜上名前が付けられている。
イプラインステージの入出カステップコードには第7図
に示したように便宜上名前が付けられている。
また、ステップコードはオペレーションコードに関する
処理を行い、マイクロROMのエントリアドレス及びE
ステージ35に対するパラメータ等になる系列と、Eス
テージ35のマイクロ命令に対するオペランドになる系
列との2系列がある。
処理を行い、マイクロROMのエントリアドレス及びE
ステージ35に対するパラメータ等になる系列と、Eス
テージ35のマイクロ命令に対するオペランドになる系
列との2系列がある。
(2,2,1) r命令フェッチステージ」命令フェ
ッチステージ(IFステージ)31 は命令をメモリあ
るいはブランチバッフアカ)らフェ・ンチして命令キュ
ーへ入力し、Dステージ32に対して命令コードを出力
する。命令キューへの入力は整置された4バイト単位で
行われる。
ッチステージ(IFステージ)31 は命令をメモリあ
るいはブランチバッフアカ)らフェ・ンチして命令キュ
ーへ入力し、Dステージ32に対して命令コードを出力
する。命令キューへの入力は整置された4バイト単位で
行われる。
メモリから命令をフェッチする場合は、整置された4バ
イトにつき最小2クロックを要する。ブランチバッファ
がヒントした場合は、整置された4バイトにつき1クロ
ツクでフェッチ可能である。
イトにつき最小2クロックを要する。ブランチバッファ
がヒントした場合は、整置された4バイトにつき1クロ
ツクでフェッチ可能である。
命令キューの出力単位は2バイト毎に可変であり、2ク
ロツクの間に最大6バイトまで出力できる。
ロツクの間に最大6バイトまで出力できる。
また、分岐の直後には命令キューをバイパスして命令基
本部2バイトを直接命令デコーダへ転送することも可能
である。
本部2バイトを直接命令デコーダへ転送することも可能
である。
ブランチバッファへの命令の登録及びクリア等の制御、
プリフェッチ先の命令のアドレスの管理及び命令キュー
112の制御もIFステージ31で行う。
プリフェッチ先の命令のアドレスの管理及び命令キュー
112の制御もIFステージ31で行う。
IFステージ31で検出するBITには、命令をメモリ
からフェッチする際のバスアクセス例外あるいはメモリ
保護違反などによるアドレス変換例外がある。
からフェッチする際のバスアクセス例外あるいはメモリ
保護違反などによるアドレス変換例外がある。
(2,2,2) r命令デコードステージ」命令デコ
ードステージ(Dステージ)32はIFステージ31か
ら人力された命令コードをデコードする。
ードステージ(Dステージ)32はIFステージ31か
ら人力された命令コードをデコードする。
デコードは命令デコード部52のFi!−デコーダ、N
FHWデコーダ及びアドレッシングモードデコーダを合
わせた第1デコーダを使用して、2クロック単位に1度
行ない、1回のデコード処理で0〜6バイトの命令コー
ドを消費する(RET命令の復帰先アドレスを含むステ
ップコードの出力処理などでは命令コードを消費しない
)。
FHWデコーダ及びアドレッシングモードデコーダを合
わせた第1デコーダを使用して、2クロック単位に1度
行ない、1回のデコード処理で0〜6バイトの命令コー
ドを消費する(RET命令の復帰先アドレスを含むステ
ップコードの出力処理などでは命令コードを消費しない
)。
Dステージ32は1回のデコードでAステージ33に対
してアドレス計算情報としてのAコード42である約3
5ビツトの制御コードと最大32ビツトのアドレス修飾
情報と、オペレーションコードの中間デコード結果とし
てのDコード41である約50ビツトの制御コードと8
ピントのリテラル情報とを出力する。
してアドレス計算情報としてのAコード42である約3
5ビツトの制御コードと最大32ビツトのアドレス修飾
情報と、オペレーションコードの中間デコード結果とし
てのDコード41である約50ビツトの制御コードと8
ピントのリテラル情報とを出力する。
Dステージ32では、各命令のPC計算部53の制御。
分岐予測処理、プリブランチ命令に対するプリブランチ
処理、命令キューからの命令コードの出力処理をも行う
。
処理、命令キューからの命令コードの出力処理をも行う
。
Dステージ32で検出するETTには予約命令例外。
プリブランチ時の奇数アドレスジャンプトラ、71等が
ある。また、IFステージ31から転送されてきた各@
EITはステップコード内にエンコードする処理をして
Aステージ33へ転送する。
ある。また、IFステージ31から転送されてきた各@
EITはステップコード内にエンコードする処理をして
Aステージ33へ転送する。
(2,2,3) rオペランドアドレス計算ステージ
」オペランドアドレス計算ステージ(Aステージ)33
は処理機能が大きく2つに分かれる。1つは命令デコー
ド部52の第2デコーダを使用してオペレーションコー
ドの後段デコードを行う処理で、他方はオペランドアド
レス計算部54でオペランドアドレスの計算を行う処理
である。
」オペランドアドレス計算ステージ(Aステージ)33
は処理機能が大きく2つに分かれる。1つは命令デコー
ド部52の第2デコーダを使用してオペレーションコー
ドの後段デコードを行う処理で、他方はオペランドアド
レス計算部54でオペランドアドレスの計算を行う処理
である。
オペレーションコードの後段デコード処理はDコード4
1を入力とし、レジスタ、メモリの書込み予約及びマイ
クロプログラムのエントリアドレスとマイクロプログラ
ムに対するパラメータ等を含むRコード43の出力を行
う。なお、レジスタあるいはメモリの書込み予約は、ア
ドレス計算で参照したレジスタあるいはメモリの内容が
パイプライン上を先行する命令で書換えられることによ
り誤ったアドレス計算が行われるのを防くためのもので
ある。レジスタあるいはメモリの書込み予約はデッドロ
ックを避けるため、ステップコード毎ではなく命令毎に
行う。レジスタ及びメモリへの書込み予約については特
願昭62−144394号に詳細に開示されている。
1を入力とし、レジスタ、メモリの書込み予約及びマイ
クロプログラムのエントリアドレスとマイクロプログラ
ムに対するパラメータ等を含むRコード43の出力を行
う。なお、レジスタあるいはメモリの書込み予約は、ア
ドレス計算で参照したレジスタあるいはメモリの内容が
パイプライン上を先行する命令で書換えられることによ
り誤ったアドレス計算が行われるのを防くためのもので
ある。レジスタあるいはメモリの書込み予約はデッドロ
ックを避けるため、ステップコード毎ではなく命令毎に
行う。レジスタ及びメモリへの書込み予約については特
願昭62−144394号に詳細に開示されている。
オペランドアドレス計算処理はAコード42を入力とし
、Aコード42に従いオペランドアドレス計算部54で
加算あるいはメモリ間接参照を組合わせてアドレス計算
を行い、その計算結果をFコード44として出力する。
、Aコード42に従いオペランドアドレス計算部54で
加算あるいはメモリ間接参照を組合わせてアドレス計算
を行い、その計算結果をFコード44として出力する。
この際、アドレス計算に伴うレジスタ及びメモリの読出
し時にフンフリクトチェンクが行われ、先行命令がレジ
スタあるいはメモリへの書込み処理を終了していないた
めコンフリクトが指示されれば、先行命令がEステージ
35で書込み処理を終了するまで待機する。また、オペ
ランドアドレス及びメモリ間接参照のアドレスがメモリ
にマンブされたI10領域に入るか否かのチエツクも行
われる。
し時にフンフリクトチェンクが行われ、先行命令がレジ
スタあるいはメモリへの書込み処理を終了していないた
めコンフリクトが指示されれば、先行命令がEステージ
35で書込み処理を終了するまで待機する。また、オペ
ランドアドレス及びメモリ間接参照のアドレスがメモリ
にマンブされたI10領域に入るか否かのチエツクも行
われる。
Aステージ33で検出するBITには予約命令例外。
特権命令例外、バスアクセス例外、アドレス変換例外、
メモリ間接アドレッシング時のオペランドブレイクポイ
ントヒツトによるデバッグトラップがある。Dコード4
1又はAコード42自体がEITを発生したことを示し
ていれば、Aステージ33はそのコードに対してアドレ
ス計算処理をせず、そのEITをRコード43及びFコ
ード44へ伝える。
メモリ間接アドレッシング時のオペランドブレイクポイ
ントヒツトによるデバッグトラップがある。Dコード4
1又はAコード42自体がEITを発生したことを示し
ていれば、Aステージ33はそのコードに対してアドレ
ス計算処理をせず、そのEITをRコード43及びFコ
ード44へ伝える。
(2,2,4) rマイクロROMアクセスステージ
」オベランドフェンチステージ(Fステージ)34も処
理が大きく2つに分かれる。一方はマイクロl?OMの
アクセス処理であり、特にRステージ36と称する。他
方はオペランドブリフェッチ処理であり、特にOFステ
ージ37と称する。Rステージ36とOFステージ37
とは必ずしも同時に動作するわけではなく、メモリアク
セス権が獲得できるか否か等に依存して独立に動作する
。
」オベランドフェンチステージ(Fステージ)34も処
理が大きく2つに分かれる。一方はマイクロl?OMの
アクセス処理であり、特にRステージ36と称する。他
方はオペランドブリフェッチ処理であり、特にOFステ
ージ37と称する。Rステージ36とOFステージ37
とは必ずしも同時に動作するわけではなく、メモリアク
セス権が獲得できるか否か等に依存して独立に動作する
。
Rステージ36の処理であるマイクロROMアクセス処
理は、Rコード43に対して次のEステージ35での実
行に使用する実行制御コードであるEコード45を生成
するためのマイクロROMアクセスとマイクロ命令デコ
ード処理とである。1つのRコード43に対する処理が
2つ以上のマイクロプログラムステップに分解される場
合、マイクロROMはEステージ35で使用され、次の
Rコード43はマイクロI?OMアクセス待ちになる。
理は、Rコード43に対して次のEステージ35での実
行に使用する実行制御コードであるEコード45を生成
するためのマイクロROMアクセスとマイクロ命令デコ
ード処理とである。1つのRコード43に対する処理が
2つ以上のマイクロプログラムステップに分解される場
合、マイクロROMはEステージ35で使用され、次の
Rコード43はマイクロI?OMアクセス待ちになる。
Rコード43に対するマイクロROMアクセスが行われ
るのは、その前のEステージ35での最後のマイクロ命
令実行時である。
るのは、その前のEステージ35での最後のマイクロ命
令実行時である。
本発明のデータ処理装置では、はとんどの基本命令は1
マイクロプログラムステツプで行われるため、実際には
Rコード43に対するマイクロROMアクセスが次々と
行われることが多い。
マイクロプログラムステツプで行われるため、実際には
Rコード43に対するマイクロROMアクセスが次々と
行われることが多い。
Rステージ36で新たに検出するEATはない。Rコー
ド43が命令処理再実行型のEITを示している場合は
そのBIT処理に対するマイクロプログラムが実行され
るので、Rステージ36はそのRコード43に従ったマ
イクロ命令をフェッチする。
ド43が命令処理再実行型のEITを示している場合は
そのBIT処理に対するマイクロプログラムが実行され
るので、Rステージ36はそのRコード43に従ったマ
イクロ命令をフェッチする。
Rコード43が奇数アドレスジャンプトラップを示して
いる場合、Rステージ36はそれをEコード45によっ
て伝える。これはプリブランチに対するもので、Eステ
ージ35ではそのEコード45で分岐が生じなければそ
のプリブランチを有効として奇数アドレスジャンプトラ
ップを発生する。
いる場合、Rステージ36はそれをEコード45によっ
て伝える。これはプリブランチに対するもので、Eステ
ージ35ではそのEコード45で分岐が生じなければそ
のプリブランチを有効として奇数アドレスジャンプトラ
ップを発生する。
(2,2,5) rオペランドフェッチステージ」オ
ペランドフェッチステージ(OFステージ)37はFス
テージ34で行う上記の2つの処理の内のオペランドプ
リフェッチ処理を行う。
ペランドフェッチステージ(OFステージ)37はFス
テージ34で行う上記の2つの処理の内のオペランドプ
リフェッチ処理を行う。
オペランドプリフェッチはFコード44を入力とし、フ
ェッチしたオペランドとそのアドレスとをSコード46
として出力する。1つのFコード44ではワード境界を
跨いでもよいが、4バイト以下のオペランドフェッチを
指定する。Fコード44にはオペランドのアクセスを行
うか否かの指定も含まれており、Aステージ33で計算
したオペランドアドレス自体あるいは即値をEステージ
35に転送する場合にはオペランドプリフェッチは行わ
ず、Fコード44の内容をSコード46として転送する
。プリフェッチしようとするオペランドと、Eステージ
35が書込み処理を行おうとするオペランドとが一致す
る場合は、オペランドプリフェッチはメモリからは行わ
ずにバイパスして行われる。また、1106i域に対し
てはオペランドプリフェッチを遅延させ、先行命令がす
べて完了するまで待ってオペランドフェッチを行う。
ェッチしたオペランドとそのアドレスとをSコード46
として出力する。1つのFコード44ではワード境界を
跨いでもよいが、4バイト以下のオペランドフェッチを
指定する。Fコード44にはオペランドのアクセスを行
うか否かの指定も含まれており、Aステージ33で計算
したオペランドアドレス自体あるいは即値をEステージ
35に転送する場合にはオペランドプリフェッチは行わ
ず、Fコード44の内容をSコード46として転送する
。プリフェッチしようとするオペランドと、Eステージ
35が書込み処理を行おうとするオペランドとが一致す
る場合は、オペランドプリフェッチはメモリからは行わ
ずにバイパスして行われる。また、1106i域に対し
てはオペランドプリフェッチを遅延させ、先行命令がす
べて完了するまで待ってオペランドフェッチを行う。
OFステージ37で検出されるETTには、バスアクセ
ス例外、アドレス変換例外、オペランドプリフェッチに
対するブレイクポイントヒントによるデバッグトラップ
がある。Fコード44がデバッグトラップ以外のBIT
を示している場合はそれをSコード46へ転送し、オペ
ランドプリフェッチは行わない。Fコード44がデバッ
グトラップを示している場合はそのFコード44に対し
てEITを示していない場合と同じ処理をすると共にデ
バッグトラップをSコード46へ伝える。
ス例外、アドレス変換例外、オペランドプリフェッチに
対するブレイクポイントヒントによるデバッグトラップ
がある。Fコード44がデバッグトラップ以外のBIT
を示している場合はそれをSコード46へ転送し、オペ
ランドプリフェッチは行わない。Fコード44がデバッ
グトラップを示している場合はそのFコード44に対し
てEITを示していない場合と同じ処理をすると共にデ
バッグトラップをSコード46へ伝える。
(2,2,6) r実行ステージ」
実行ステージ(Eステージ)35はEコード45及びS
コード46を人力として動作する。このEステージ35
が命令を実行するステージであり、Fステージ34以前
のステージで行われた処理は全てEステージ35のため
の前処理である。
コード46を人力として動作する。このEステージ35
が命令を実行するステージであり、Fステージ34以前
のステージで行われた処理は全てEステージ35のため
の前処理である。
Eステージ35でジャンプ命令が実行されたり、あるい
はBIT処理が起動されたりした場合は、IFステージ
31からFステージ34までの間に行われた処理は全て
無効化される。
はBIT処理が起動されたりした場合は、IFステージ
31からFステージ34までの間に行われた処理は全て
無効化される。
Eステージ35はマイクロプログラムにより制御され、
Rコード43に示されたマイクロプログラムのエントリ
アドレスからの一連のマイクロプログラムを実行するこ
とにより命令を実行する。
Rコード43に示されたマイクロプログラムのエントリ
アドレスからの一連のマイクロプログラムを実行するこ
とにより命令を実行する。
マイクロI?OMの読出しとマイクロ命令の実行とはパ
イプライン化されて行われる。従って、マイクロプログ
ラムで分岐が発生した場合は、パイプライン処理に1マ
イクロステツプの空きができる。
イプライン化されて行われる。従って、マイクロプログ
ラムで分岐が発生した場合は、パイプライン処理に1マ
イクロステツプの空きができる。
また、Eステージ35はデータ演算部56にあるストア
バッファを利用して、4バイト以内のオペランドストア
と次のマイクロ命令実行とをパイプライン処理すること
もできる。
バッファを利用して、4バイト以内のオペランドストア
と次のマイクロ命令実行とをパイプライン処理すること
もできる。
ストアバッファを使用した処理はマイクロプログラムの
最終ステップで書込み処理を行う場合にのみ実行される
。
最終ステップで書込み処理を行う場合にのみ実行される
。
Eステージ35では、Aステージ33で行ったレジスタ
及びメモリに対する書込み予約をオペランドの書込み後
に解除する。
及びメモリに対する書込み予約をオペランドの書込み後
に解除する。
また、条件分岐命令がEステージ35で分岐を発生した
場合は、その条件分岐命令に対する分岐予測が誤ってい
たのであるから、分岐履歴の書換えを行う。
場合は、その条件分岐命令に対する分岐予測が誤ってい
たのであるから、分岐履歴の書換えを行う。
Eステージ35で検出されるBITには、バスアクセス
例外、アドレス変換例外、デバッグトラップ奇数アドレ
スジャンプトラップ、予約機能例外不正オペランド例外
、予約スタックフォーマット例外、ゼロ除算トラップ、
無条件トラップ、条件トラップ、遅延コンテキストトラ
ップ、外部割込遅延割込、リセット割込、システム障害
がある。
例外、アドレス変換例外、デバッグトラップ奇数アドレ
スジャンプトラップ、予約機能例外不正オペランド例外
、予約スタックフォーマット例外、ゼロ除算トラップ、
無条件トラップ、条件トラップ、遅延コンテキストトラ
ップ、外部割込遅延割込、リセット割込、システム障害
がある。
Eステージ35で検出されたBITは総てEIT処理さ
れるが、Eステージ以前のIFステージ31からFステ
ージ34の間で検出され且つRコード43あるいはSコ
ード46に反映されているBITは必ずしもBIT処理
されるとは限らない。IFステージ31からFステージ
34の間で検出されたが、先行の命令がEステージ35
でジャンプ命令が実行されたなどの原因でEステージ3
5まで到達しなかったBITは全てキャンセルされる。
れるが、Eステージ以前のIFステージ31からFステ
ージ34の間で検出され且つRコード43あるいはSコ
ード46に反映されているBITは必ずしもBIT処理
されるとは限らない。IFステージ31からFステージ
34の間で検出されたが、先行の命令がEステージ35
でジャンプ命令が実行されたなどの原因でEステージ3
5まで到達しなかったBITは全てキャンセルされる。
そのBITを起こした命令はそもそも実行されなかった
ことになる。
ことになる。
外部割込及び遅延割込は命令の切目でEステージ35に
直接受付けられ、マイクロプログラムにより必要な処理
が実行される。その他の各種BITの処理はマイクロプ
ログラムにより行われる。
直接受付けられ、マイクロプログラムにより必要な処理
が実行される。その他の各種BITの処理はマイクロプ
ログラムにより行われる。
(2,3) r各パイプラインステージの状態制御」
パイプラインの各ステージは入力ランチと出力ランチと
を有し、他のステージとは独立して動作することを基本
とする。各ステージは1つ前に行った処理が終わり、そ
の処理結果を出力ランチから次のステージの入力ランチ
へ転送し、自身のステージの入力ランチに次の処理に必
要な入力信号が総て揃えば次の処理を開始する。
パイプラインの各ステージは入力ランチと出力ランチと
を有し、他のステージとは独立して動作することを基本
とする。各ステージは1つ前に行った処理が終わり、そ
の処理結果を出力ランチから次のステージの入力ランチ
へ転送し、自身のステージの入力ランチに次の処理に必
要な入力信号が総て揃えば次の処理を開始する。
つまり各ステージは、1つ前段のステージから出力され
てくる次の処理に対する入力信号が総て有効となり、今
の処理結果を後段のステージの入力ランチに転送して出
力ラッチが空になると次の処理を開始する。
てくる次の処理に対する入力信号が総て有効となり、今
の処理結果を後段のステージの入力ランチに転送して出
力ラッチが空になると次の処理を開始する。
各ステージが動作を開始する1つ前のクロックタイミン
グで入力信号が総て揃っている必要がある。入力信号が
揃っていない場合、そのステージは待ち状態(入力待ち
)になる。出力ラッチから次のステージの入力ランチへ
の転送を行う場合には次のステージの入力ラッチが空き
状態になっている必要があり、次のステージの入力ラッ
チが空きでない場合もパイプラインステージは待ち状態
(出力待ち)になる。必要なメモリアクセス権が獲得で
きなかったり、処理しているメモリアクセスにウェイト
が挿入されたり、その他のパイプラインコンフリクトが
生じると各ステージの処理臼+31 r ETT処理」 次に本発明のデータ処理装置におけるEIT処理につい
て説明する。
グで入力信号が総て揃っている必要がある。入力信号が
揃っていない場合、そのステージは待ち状態(入力待ち
)になる。出力ラッチから次のステージの入力ランチへ
の転送を行う場合には次のステージの入力ラッチが空き
状態になっている必要があり、次のステージの入力ラッ
チが空きでない場合もパイプラインステージは待ち状態
(出力待ち)になる。必要なメモリアクセス権が獲得で
きなかったり、処理しているメモリアクセスにウェイト
が挿入されたり、その他のパイプラインコンフリクトが
生じると各ステージの処理臼+31 r ETT処理」 次に本発明のデータ処理装置におけるEIT処理につい
て説明する。
(3,1) r HITの概要」
例外1割込み、トラップ等のプログラム実行の流れをハ
ードウェア機構によって中断し、別のプログラムによる
処理を要求する事象を総称して本発明のデータ処理装置
ではBIT処理と称する。BITとは、Excepti
on (例外>、 InterrupLC割込み) r
Trap(トラップ)の総称である。
ードウェア機構によって中断し、別のプログラムによる
処理を要求する事象を総称して本発明のデータ処理装置
ではBIT処理と称する。BITとは、Excepti
on (例外>、 InterrupLC割込み) r
Trap(トラップ)の総称である。
BITが発生すると、プロセンサはその時点で実行中の
命令の途中あるいは終了時点でEfT処理に移る。BI
T処理はハードウェアによって実行される処理であり、
EITの発生箇所、要因、中断したプログラムの再開の
ための情報等の種々の情報をスタックへ退避し、最後に
EITベクトルテーブルに示される情報を基にErTハ
ンドラを起動する。
命令の途中あるいは終了時点でEfT処理に移る。BI
T処理はハードウェアによって実行される処理であり、
EITの発生箇所、要因、中断したプログラムの再開の
ための情報等の種々の情報をスタックへ退避し、最後に
EITベクトルテーブルに示される情報を基にErTハ
ンドラを起動する。
BITハンドラは通常はO3(Operating S
ystem)の一部として組み込まれているプログラム
であり、BITに応じたエラーの回復、メツセージの表
示。
ystem)の一部として組み込まれているプログラム
であり、BITに応じたエラーの回復、メツセージの表
示。
エ稟ニレ−ジョン等の処理を行う。
中断した元のプログラムに戻るためには、BITハンド
ラの中でREIT(Return from EIT)
命令を実行する。REIT命令では、BIT処理でスタ
ックに退避された情報に基づいてプロセッサの状態を復
元し、B17発生前のアドレスに戻って命令の実行を再
開する。
ラの中でREIT(Return from EIT)
命令を実行する。REIT命令では、BIT処理でスタ
ックに退避された情報に基づいてプロセッサの状態を復
元し、B17発生前のアドレスに戻って命令の実行を再
開する。
BIT処理には以下が含まれる。
・例外(Exception )
命令実行に伴うエラー及び違反等によって発生する。発
生時点で実行中のコンテキストに関係する事象である。
生時点で実行中のコンテキストに関係する事象である。
元のプログラムの実行を再開する際には、例外を発生し
た命令から実行を開始する。即ち、例外を発生した命令
を再度実行する。後述する処理取消型BITになる。
た命令から実行を開始する。即ち、例外を発生した命令
を再度実行する。後述する処理取消型BITになる。
・割込み(interrupt)
発生時点で実行中のコンテキストと、は無関係に発生す
る事象である。外部からのハードウェア的な信号によっ
て発生する場合とソフトウェアの要求で発生する場合と
がある。
る事象である。外部からのハードウェア的な信号によっ
て発生する場合とソフトウェアの要求で発生する場合と
がある。
・ トラップ(trap)
命令実行に伴うエラーあるいは違反等によって発生する
場合と、システムコール発効等の際に、プログラマが意
識して発生させる場合とがある。発生時点で実行中のコ
ンテキストに関係する事象である。例外とは異なり、元
のプログラムの実行を再開する際には、トラップを発生
した命令の次の命令から実行を開始する。後述する処理
完了型のBITになる。
場合と、システムコール発効等の際に、プログラマが意
識して発生させる場合とがある。発生時点で実行中のコ
ンテキストに関係する事象である。例外とは異なり、元
のプログラムの実行を再開する際には、トラップを発生
した命令の次の命令から実行を開始する。後述する処理
完了型のBITになる。
[!ITの分類を第9図にまとめて示す。
本発明のデータ処理装置では、書込み制御にストアバッ
ファと称される1ワードのバッファを採用している。
ファと称される1ワードのバッファを採用している。
命令実行の最後のオペランド書込み段階でエラーを検出
してBITが発生した場合、EIT処理ハンドラの終了
時にオペランド書込みの再実行から命令を再開する手法
を採ることがある。この場合、オペランドの書込みの再
実行はREIT命令の中で処理され、元のプログラムは
BITを発生した命令の次の命令から実行される。この
ようなりITもトラップ(処理完了型)として取扱われ
る。
してBITが発生した場合、EIT処理ハンドラの終了
時にオペランド書込みの再実行から命令を再開する手法
を採ることがある。この場合、オペランドの書込みの再
実行はREIT命令の中で処理され、元のプログラムは
BITを発生した命令の次の命令から実行される。この
ようなりITもトラップ(処理完了型)として取扱われ
る。
メモリアクセスに関係したバスアクセスのエラーでは、
ストアバッファに関係する場合にトラップ(処理完了型
)となり、それ以外のオペランド読出しなどの場合に例
外(処理取消型)となることもある。
ストアバッファに関係する場合にトラップ(処理完了型
)となり、それ以外のオペランド読出しなどの場合に例
外(処理取消型)となることもある。
(3,2) r EITの種類」
本発明のデータ処理装置が検出するETTは以下の如く
である。
である。
[メモリ、アドレス関係コ
・アドレス変換例外(Address Transla
tion Exception:ATRE) + アド
レス変換トラップ(AddressTranslati
on Trap:ATRT)+不当なメモリアクセスに
よって発生する。本発明のデータ処理装置の場合、アド
レス変換を行わないので、具体的には、メモリ保護違反
とIlo ?Ii域に関する不当なアクセスが生じた場
合にアドレス変換例外が発生する。ストアバッファ動作
以外では命令処理取消型になるためATIiEが発生し
、ストアバッファ動作では命令処理完了型になるのでA
TRTが発生する。
tion Exception:ATRE) + アド
レス変換トラップ(AddressTranslati
on Trap:ATRT)+不当なメモリアクセスに
よって発生する。本発明のデータ処理装置の場合、アド
レス変換を行わないので、具体的には、メモリ保護違反
とIlo ?Ii域に関する不当なアクセスが生じた場
合にアドレス変換例外が発生する。ストアバッファ動作
以外では命令処理取消型になるためATIiEが発生し
、ストアバッファ動作では命令処理完了型になるのでA
TRTが発生する。
・バスアクセス例外(Bus Access Exce
ption:BAE)。
ption:BAE)。
バスアクセストラップ(Bus Access Tra
p:BAT)命令またはオペランドアクセスにおいて、
定時間以内にバスからの応答がなく、メモリアクセスが
出来なかった場合に発生する。所謂バスエラーである。
p:BAT)命令またはオペランドアクセスにおいて、
定時間以内にバスからの応答がなく、メモリアクセスが
出来なかった場合に発生する。所謂バスエラーである。
ストアバッファ動作以外では命令処理取消型になるため
BAEが発生し、ストアバッファ動作では命令処理完了
型になるのでBATが発生する。
BAEが発生し、ストアバッファ動作では命令処理完了
型になるのでBATが発生する。
・奇数アドレスジャンプトラップ(Odd Addre
ssJump Trap:0AJT) 分岐命令の処理に際して、分岐先のアドレスが奇数であ
った場合に発生する。この例外は、ジャンプ先をオペラ
ンドとして直接指定する命令(JMP、 A(:B等)
とスタックからリターンアドレスを得る命令(RTS、
EXITD、RRNG、REIT)で発生し、BIT処
理の起動時には発生しない。
ssJump Trap:0AJT) 分岐命令の処理に際して、分岐先のアドレスが奇数であ
った場合に発生する。この例外は、ジャンプ先をオペラ
ンドとして直接指定する命令(JMP、 A(:B等)
とスタックからリターンアドレスを得る命令(RTS、
EXITD、RRNG、REIT)で発生し、BIT処
理の起動時には発生しない。
BIT処理起動時に新pcが奇数であった場合にはシス
テム障害(SE)となる。
テム障害(SE)となる。
[命令、演算関係]
・特権命令違反例外(Privileged In5t
ruction Vio−1ation Excep
tion二PIVE)ring O以外から特権命令を
実行しようとした場合に発生する。
ruction Vio−1ation Excep
tion二PIVE)ring O以外から特権命令を
実行しようとした場合に発生する。
0予約命令例外(Reserved In5truct
ion Exception:RrE) 現在割当てられていない命令あるいはアドレッシングモ
ードのビットパターンを実行しようとした場合に発生す
る。所謂未定義命令の例外である。本発明のデータ処理
装置では現在<<11>>仕様の命令である符号なし1
0進数命令及びコプロセッサ命令をサポートしていない
た2め、これらの命令に対してもRIEを発生する。本
発明のデータ処理装置で64ビツトのサイズを指定した
場合、Pビットを1にした場合、未実装の命令を実行し
ようとした場合5未定義あるいは未実装のオプションを
指定した場合もこれに含まれる。また、命令によって禁
止されているアドレッシングモードを使用した場合(J
MP命令におけるイミディエート指定等)もこれに含ま
れる。
ion Exception:RrE) 現在割当てられていない命令あるいはアドレッシングモ
ードのビットパターンを実行しようとした場合に発生す
る。所謂未定義命令の例外である。本発明のデータ処理
装置では現在<<11>>仕様の命令である符号なし1
0進数命令及びコプロセッサ命令をサポートしていない
た2め、これらの命令に対してもRIEを発生する。本
発明のデータ処理装置で64ビツトのサイズを指定した
場合、Pビットを1にした場合、未実装の命令を実行し
ようとした場合5未定義あるいは未実装のオプションを
指定した場合もこれに含まれる。また、命令によって禁
止されているアドレッシングモードを使用した場合(J
MP命令におけるイミディエート指定等)もこれに含ま
れる。
1予約機能例外(Reserved Function
Exception:RFE) 命令あるいはアドレッシングモードのビットパターン以
外で、将来の拡張のために予約されている機能を利用し
ようとした場合に発生する。なお、本発明のデータ処理
装置では、命令ヒツトパターン(アドレッシングモード
あるいはサイズの指定を含む)のみでエラーと判定可能
な場合を予約命令例外(RIE)とし、アドレスあるい
はオペランド値によってエラーか否かの状態が変化する
場合を予約機能例外(12FB)としている。
Exception:RFE) 命令あるいはアドレッシングモードのビットパターン以
外で、将来の拡張のために予約されている機能を利用し
ようとした場合に発生する。なお、本発明のデータ処理
装置では、命令ヒツトパターン(アドレッシングモード
あるいはサイズの指定を含む)のみでエラーと判定可能
な場合を予約命令例外(RIE)とし、アドレスあるい
はオペランド値によってエラーか否かの状態が変化する
場合を予約機能例外(12FB)としている。
・不正オペランド例外(Illegal 0peran
d Exception:l0E) 不合理なオペランドの指定が行われた場合に発生する。
d Exception:l0E) 不合理なオペランドの指定が行われた場合に発生する。
固定長ビットフィールド命令で32(64〉ピント以上
のwidthを指定した場合等がこれに含まれる。
のwidthを指定した場合等がこれに含まれる。
奇数アドレスへのジャンプあるいはゼロ除算も意味的に
は不正オペランド例外の一部と考えられるが、特別な意
味を持つために異なる例外に分類されている。
は不正オペランド例外の一部と考えられるが、特別な意
味を持つために異なる例外に分類されている。
なお、本発明のデータ処理装置において命令のオペラン
ドが不当な場合の対策としては、不当オペランド′例外
あるいはゼロV!、算例外とするケースのほかに、特に
チエツクを行なわないケース及び適当な解釈をしてその
まま命令を実行するケース(シフト命令でcoun t
が大きい場合など)等がある。一方、命令を実行した結
果が不当(オーバーフロー発生等)な場合にはBITが
起動されることはない。この場合は、オーバーフローフ
ラグがセットされて命令を終了するケース(A[lD、
MOV等多数多数特に何もしないケース(UNPKs
sでのオーバーフロー等)等がある。
ドが不当な場合の対策としては、不当オペランド′例外
あるいはゼロV!、算例外とするケースのほかに、特に
チエツクを行なわないケース及び適当な解釈をしてその
まま命令を実行するケース(シフト命令でcoun t
が大きい場合など)等がある。一方、命令を実行した結
果が不当(オーバーフロー発生等)な場合にはBITが
起動されることはない。この場合は、オーバーフローフ
ラグがセットされて命令を終了するケース(A[lD、
MOV等多数多数特に何もしないケース(UNPKs
sでのオーバーフロー等)等がある。
・予約スタックフォーマット例外(Reserved
5tackForn+at Exception:RS
FE)REIT命令によってBIT、から復帰する際に
、EFTスタックフレームのフォーマットを示す番号(
FORMAT)がl?ErT命令で処理不可能であった
場合に発生する。
5tackForn+at Exception:RS
FE)REIT命令によってBIT、から復帰する際に
、EFTスタックフレームのフォーマットを示す番号(
FORMAT)がl?ErT命令で処理不可能であった
場合に発生する。
・ゼ0除算トラップ(Zero Divide Tra
p:ZDT)0除算を行なった場合に発生する。
p:ZDT)0除算を行なった場合に発生する。
Cデバング〕
・セルフデバッグトラップ(Self Debug T
rap:5DBT)デバッグに関係して発生する。具体
的には、命令のシングルステップ実行あるいはブレーク
ポイントを実現するための例外である。Ps−(Pro
gram 5tatus Word)の1ピントである
DBビットとDBC(Debug Control)レ
ジスタとにより検出条件及び検出状態が示される。PS
Wの構成については後述。
rap:5DBT)デバッグに関係して発生する。具体
的には、命令のシングルステップ実行あるいはブレーク
ポイントを実現するための例外である。Ps−(Pro
gram 5tatus Word)の1ピントである
DBビットとDBC(Debug Control)レ
ジスタとにより検出条件及び検出状態が示される。PS
Wの構成については後述。
デバッグ事象の検出は命令実行前のPSIl、 DBに
より決定され、セルフデバッグトラップの起動自体は命
令実行後のPSW、 DBビットにより決定されること
に注意が必要である。従って、PSWを書換える可能性
がある命令(EITを起こした命令、 LDC,REI
T) ではセルフデバッグトラップの検出と起動条件
に特別の注意が必要である。
より決定され、セルフデバッグトラップの起動自体は命
令実行後のPSW、 DBビットにより決定されること
に注意が必要である。従って、PSWを書換える可能性
がある命令(EITを起こした命令、 LDC,REI
T) ではセルフデバッグトラップの検出と起動条件
に特別の注意が必要である。
[トラップ]
・無条件トラップ命令(TRAPA In5truct
ion:TRAPA)TRAP^命令により発生する。
ion:TRAPA)TRAP^命令により発生する。
TRAPAのEITベクトルは、TRAPAのオペラン
ドvec torに対応して16種類用意されている。
ドvec torに対応して16種類用意されている。
・条件トラップ命令(Conditional TRA
P In5trucLion :TRAPcc) TRAP命令により発生する。
P In5trucLion :TRAPcc) TRAP命令により発生する。
[OCT、DIコ
・遅延割り込み(Mlayed Interrupt:
DI)DIレジスタ中のDIフィールドがpsw中のI
MASKフィールドよりも小さい値になった場合に発生
する。
DI)DIレジスタ中のDIフィールドがpsw中のI
MASKフィールドよりも小さい値になった場合に発生
する。
このBITは、コンテキストとは独立した非同期の事象
を処理するために有効である。
を処理するために有効である。
DI処理のBITベクトルは、各割り込み優先度毎に1
5種類用意されている。
5種類用意されている。
このETTは、IIEIT命令等の命令実行によって発
生するという点では例外であるが、その時点で実行中の
コンテキストとは関係なく起動されるという意味では割
込みである。
生するという点では例外であるが、その時点で実行中の
コンテキストとは関係なく起動されるという意味では割
込みである。
つまり、例外と割込みとの中間的なものである(IMA
Sにフィールドを含むPS−はコンテキスト依存である
が、IMASKフィールドのみはコンテキスト独立とし
て運用されるのが普通である)。
Sにフィールドを含むPS−はコンテキスト依存である
が、IMASKフィールドのみはコンテキスト独立とし
て運用されるのが普通である)。
1遅延コンテキストトラツプ(Delayed Con
textTrap:DCT) C8−レジスタ中のDCEフィールドがPSW中のSM
RNGフィールドよりも小さい値になった場合に発生す
る。
textTrap:DCT) C8−レジスタ中のDCEフィールドがPSW中のSM
RNGフィールドよりも小さい値になった場合に発生す
る。
この例外は、コンテキストに依存した各種の非同期の事
象(入出力の完了等)を処理するために有効である。
象(入出力の完了等)を処理するために有効である。
[その他ト
リセット割込み(Reset Interrupt:R
1)外部からのリセット信号により発生する。
1)外部からのリセット信号により発生する。
・システム障害(System [!rror:5R)
HIT処理中に致命的なエラーが発生した場合に発生す
る。
HIT処理中に致命的なエラーが発生した場合に発生す
る。
[割り込み]
・外部割込み(External Interrupt
:El)外部からのハードウェア信号により発生する。
:El)外部からのハードウェア信号により発生する。
BITベクトルは外部から指定する場合と割込み優先順
序毎に1つづつ固定値を持っている場合がある。割込み
アクルッジサイクルでベクトル値をオールlとすると優
先度毎に決定されたヘクトル(オートベクトル)番号の
FATとなる。
序毎に1つづつ固定値を持っている場合がある。割込み
アクルッジサイクルでベクトル値をオールlとすると優
先度毎に決定されたヘクトル(オートベクトル)番号の
FATとなる。
一般に、外部割込みのチエツクは命令の切目で行なわれ
る。しかし、本発明のデータ処理装置の場合は、実行時
間が上限の決まらない高機能命令(任意長ビットフィー
ルド命令。
る。しかし、本発明のデータ処理装置の場合は、実行時
間が上限の決まらない高機能命令(任意長ビットフィー
ルド命令。
ストリング命令、 QSCH命令)が存在する。これら
の命令では、命令の実行途中であっても外部割込みを受
付けるようになっている。
の命令では、命令の実行途中であっても外部割込みを受
付けるようになっている。
以上のEITO内、予約例外、不正例外、違反例外の区
別は次のような考え方によっている。
別は次のような考え方によっている。
・予約XXX例外 機能拡張によって解消される可能
性のあるもの。
性のあるもの。
将来の機能拡張によって、例
外ではなくなる可能性がある。
・不正xxx例外 意味的に明らかにエラーであるも
の。
の。
予約例外とは異なり、将来の
機能拡張があっても、永久に
例外のままである。
・ XXX違反例外 リング保護の観点から実行を制
限しているもの。
限しているもの。
・その他 O3あるいはシステム構成上の例外
、複数の分類に当てはま る例外など。
、複数の分類に当てはま る例外など。
(3,3) r BITのオペレージロン」プロセッ
サがErTを検出した場合には、以下の手順に従ってE
IT処理を行なう。但し、リセット割込み(R1)及び
システムエラー例外(SEE)については、これとは異
なった動作をする。
サがErTを検出した場合には、以下の手順に従ってE
IT処理を行なう。但し、リセット割込み(R1)及び
システムエラー例外(SEE)については、これとは異
なった動作をする。
・(El)ベクトル番号の生成
プロセッサはそのEITに応したベクトル番号をプロセ
ッサ内部で生成する。但し、外部割込みETTの場合は
、プロセッサの外部(周辺LSI等)からE■Tベクト
ル番号を得る。
ッサ内部で生成する。但し、外部割込みETTの場合は
、プロセッサの外部(周辺LSI等)からE■Tベクト
ル番号を得る。
−(E2)EITVTE(7)読込み
本発明のデータ処理装置では、それぞれのBITに対す
る処理ハンドラの先頭アドレスと、BITのベクトル番
号との対応を示す表をHITベクトルテーブル(EIT
VT)と称する。また、そのテーブルの一つのエントリ
をEITVTEと称する。本発明のデータ処理装置は、
BIT処理の自由度と拡張性とを考慮して8バイトとな
っており、BIT処理ハンドラの先頭アドレス(PC)
だけではなく、PSWの一部のフィールドもセントする
ことができる。そのため、EITVTEはPC+PSW
ニ準じた構成になッテイる。EITVTHのフォーマッ
トは第10図に示す如くである。
る処理ハンドラの先頭アドレスと、BITのベクトル番
号との対応を示す表をHITベクトルテーブル(EIT
VT)と称する。また、そのテーブルの一つのエントリ
をEITVTEと称する。本発明のデータ処理装置は、
BIT処理の自由度と拡張性とを考慮して8バイトとな
っており、BIT処理ハンドラの先頭アドレス(PC)
だけではなく、PSWの一部のフィールドもセントする
ことができる。そのため、EITVTEはPC+PSW
ニ準じた構成になッテイる。EITVTHのフォーマッ
トは第10図に示す如くである。
なお第10図において各記号の意味は以下の如くである
。
。
VS(Vector SM): EIT処理後のSM。
但し、VSがそのままETT処理
後のSMとなるのではない。
詳細後述。
VX(Vector XA): EFT処理後のXA。
現在は0にreserved (違反時は無視)。
VAT(Vector AT): HIT処理後のA
TVD(Vector DB): EIT処理後のDB
VIMASに(Vector IMASK): EIT
処理後のIMASK 。
TVD(Vector DB): EIT処理後のDB
VIMASに(Vector IMASK): EIT
処理後のIMASK 。
但し、VIMASKがそのままBIT
処理後の[MASKとなるのでは
ない。
詳細後述。
VPC(Vector PC): EIT処理後のp
c。
c。
0にreserved (違反時は無視)0にrese
rved (違反時はシステムエラー例外) プロセッサは、(Iltl)で生成したEITベクトル
番号に従って、 (BITヘクトル番号) x 8 +BITVTRのア
ドレスにあるEITVTEを読込む。
rved (違反時はシステムエラー例外) プロセッサは、(Iltl)で生成したEITベクトル
番号に従って、 (BITヘクトル番号) x 8 +BITVTRのア
ドレスにあるEITVTEを読込む。
・(E3) PS−の更新
読込んだBITVTRを基に、第11図に示す如< p
swを更新する。この際、PSHにreservedの
値がセントされようとするとシステムエラーとなる。
swを更新する。この際、PSHにreservedの
値がセントされようとするとシステムエラーとなる。
なお、PSWはPSS、 PSM、 PSBの3つのブ
ロックにて構成されている。
ロックにて構成されている。
PSSは第12図に示す如く構成されている。
なお、第12図における記号の意味は以下の如くである
。
。
ll01lにreserved
“1”を書込もうとした場合には、予約機能例外(RP
E)が発生する。
E)が発生する。
SM、RNG = 000 リングOで外部割込みス
タックポインタ(SPI)使用 SM RNG = 001 reservedSM
RNG = 010 reservedSM、RNG
= 011 reservedSM、 RNG・1
00 リングOでリングO用スタックポインタ(SP
O)使用 SM、RNG = SM、IING 。
タックポインタ(SPI)使用 SM RNG = 001 reservedSM
RNG = 010 reservedSM、RNG
= 011 reservedSM、 RNG・1
00 リングOでリングO用スタックポインタ(SP
O)使用 SM、RNG = SM、IING 。
S門 RNG :
XA = O
XA 、 I
AT = 00
AT = Of
^T=lO
^T=11
DB二〇
DB : 1
IMASK
第13図にPSM
101 リング1でリングI用スタックポインタ(S
PI)使用 110 リング2でリング2用スタツクポインタ(S
F3)使用 111 リング3でリング3用スタツクポインタ(S
F3)使用 32ビツトのコンテキスト 64ビツトのコンテキスト アドレス変換なし アドレス変換あり アドレス変換なしのメモリ保 護 reserved デバッグ中ではないコンテキ スト デバッグ中のコンテキスト 外部割込み(EI、 FVE[)と遅延割込み(Dr:
Delayed Interrupt)とを禁止する割
込み優先度 PSBの構成を示す。
PI)使用 110 リング2でリング2用スタツクポインタ(S
F3)使用 111 リング3でリング3用スタツクポインタ(S
F3)使用 32ビツトのコンテキスト 64ビツトのコンテキスト アドレス変換なし アドレス変換あり アドレス変換なしのメモリ保 護 reserved デバッグ中ではないコンテキ スト デバッグ中のコンテキスト 外部割込み(EI、 FVE[)と遅延割込み(Dr:
Delayed Interrupt)とを禁止する割
込み優先度 PSBの構成を示す。
なお、第13図における記号の意味は以下の如くである
。
。
RNG
cpr。
Osにreserved
“l”を書込もうとした場合に
は、予約機能例外(RFE)が発
生する。
このリングに入る1つ前の状
態のリング番号
コプロセッサの10番号
P−bit Error Flag
P−bi を機能関連でエラーが起
きたときにセットされ、他の
場合にはクリアされる。現在
は′0′にreservedであり、“1”を書込もう
とすると予約機能 例外(RFE)が発生する。
とすると予約機能 例外(RFE)が発生する。
General Flag
高機能命令の終了要因の判定
等に用いる
Extension Flag
多倍長計算用の桁上がり等を
示す
V Overflow Flagオー
バーフローが発生したこ とを示す L Lower Flag比較命令等に
おいて、第一オ ペランドの方が小さいことを 示す M MSB Flag 演算結果の?ISBが11”である ことを示す Z Zero Flag 演算結果が“0′になったこと を示す [割り込み以外の場合] win (VS+ 旧SM) ==> 新SMス
タックポインタの選択。
バーフローが発生したこ とを示す L Lower Flag比較命令等に
おいて、第一オ ペランドの方が小さいことを 示す M MSB Flag 演算結果の?ISBが11”である ことを示す Z Zero Flag 演算結果が“0′になったこと を示す [割り込み以外の場合] win (VS+ 旧SM) ==> 新SMス
タックポインタの選択。
EIT発生前にSPI以外のスタックポインタを使用し
ていた場合は、vSによりBIT処理ハンドラで使用す
るスタックポインタ(spoまたは5PI)が選択され
る。
ていた場合は、vSによりBIT処理ハンドラで使用す
るスタックポインタ(spoまたは5PI)が選択され
る。
EfT発生前に既にsprを使用していた場合には、V
Sに関係なく、BIT処理ハンドラでもSPrをそのま
ま使う。このような仕様になっているのは、BITがネ
ストした場合を考慮したためである。
Sに関係なく、BIT処理ハンドラでもSPrをそのま
ま使う。このような仕様になっているのは、BITがネ
ストした場合を考慮したためである。
旧11NG ==>新PRNG
00 ==> 新RNG
BIT処理ハンドラは、必ずリング0で実行される。
なお、BITVTRには未使用のビットがあるので、将
来的にはEITによりリング0以外のリングに入るよう
な指定をす ることも可能である。
来的にはEITによりリング0以外のリングに入るよう
な指定をす ることも可能である。
VX ==>新XA
現在は0に固定されている。
VAT・・〉新AT
BIT処理ハンドラの実行中は、アドレス変換の有無を
切換えることができる。
切換えることができる。
VO==)新0B
BIT処理ハンドラの実行中は、デバッグの環境を切換
えることができる。多 重BIT検出時にセルツブバングトラップを抑止するこ
とができる。
えることができる。多 重BIT検出時にセルツブバングトラップを抑止するこ
とができる。
l1in (HM^SK、旧IMASK) =、>新
[MASK例外割込み、内部割込みによるBITの場合
でも、EIT処理でIMASKを操作することができる
。
[MASK例外割込み、内部割込みによるBITの場合
でも、EIT処理でIMASKを操作することができる
。
この機能を使用すれば、BIT処理に入るのと同時に外
部割込みを禁止するこ とができる。従って、BIT処理と不可分に何らかの処
理(例えばBITによって生成されたスタックフレーム
の転送 等)を行ないたい場合に、この機能は 有効である。
部割込みを禁止するこ とができる。従って、BIT処理と不可分に何らかの処
理(例えばBITによって生成されたスタックフレーム
の転送 等)を行ないたい場合に、この機能は 有効である。
[割り込みの場合]
l1in (VS、旧SM) =、> 新SM旧
RNG ==>新PI?NG 00=・〉 新1?NG VX=・〉 新XA VAT ==>新AT VO==> 新DB 命令実行途中で外部割込みが受付けら れた際に同時に検出されたセルフデバ フグトラソプを抑止して遅延させるた め、外部割込みハンドラ中ではDB・“0”とすべきで
ある。
RNG ==>新PI?NG 00=・〉 新1?NG VX=・〉 新XA VAT ==>新AT VO==> 新DB 命令実行途中で外部割込みが受付けら れた際に同時に検出されたセルフデバ フグトラソプを抑止して遅延させるた め、外部割込みハンドラ中ではDB・“0”とすべきで
ある。
1in(VIMASK、発生した外部割込みの優先度)
8工〉 新曲ASK この部分のみ外部割込み以外の場合と は異なっている。
8工〉 新曲ASK この部分のみ外部割込み以外の場合と は異なっている。
この機能により、優先度の低い多重割
込みを禁止することができる。なお、
割込みマスクの機能により、
発生した外部割り込みの優先度
〈旧IMASK
・(R4)プロセッサ情報のスタックへの退避EIT発
生前の旧pc、旧psw、 及び発生したBITに関
する各種の情報(E[TNF −BITベクトル、スタ
ックフォーマット等を含む〉をスタックに退避する。こ
の退避に使用されるスタックは、新SMと新RNG (
・00)により選択されるスタックである。
生前の旧pc、旧psw、 及び発生したBITに関
する各種の情報(E[TNF −BITベクトル、スタ
ックフォーマット等を含む〉をスタックに退避する。こ
の退避に使用されるスタックは、新SMと新RNG (
・00)により選択されるスタックである。
この際に生成されるスタックフレームは、第14図に示
す如くである。
す如くである。
この内、BITINFは発生したBITにより生成され
るスタックフレームのフォーマット(FORMAT)
、 BITのタイプ(TYPE)、 BITのベクト
ル番号(VECTOR)等の情報を32ビツトに詰めた
ものである。追加情報の有無及び内容はEITの種類に
よって異なる。
るスタックフレームのフォーマット(FORMAT)
、 BITのタイプ(TYPE)、 BITのベクト
ル番号(VECTOR)等の情報を32ビツトに詰めた
ものである。追加情報の有無及び内容はEITの種類に
よって異なる。
REIT命令では、BITINF中のFORMATを見
ることによって追加情報の有無及びそのフォーマントを
知り、EIT発生前のもとの命令列に戻るための情報を
得る。
ることによって追加情報の有無及びそのフォーマントを
知り、EIT発生前のもとの命令列に戻るための情報を
得る。
・(R5) [!IT処理ハンドラの起動vPCをpc
に転送し、BIT処理ハンドラを起動する。多重BIT
が検出されていて、この時点で未処理のBITが遅延、
抑止されていない場合は引続きそのBITの処理を行う
。
に転送し、BIT処理ハンドラを起動する。多重BIT
が検出されていて、この時点で未処理のBITが遅延、
抑止されていない場合は引続きそのBITの処理を行う
。
これに対して、ET?処理ハンドラの最後に置かれたR
EIT命令では、次のような処理を行なうことにより基
の命令列に復帰する。
EIT命令では、次のような処理を行なうことにより基
の命令列に復帰する。
・(R1)スタックからの読込み
スタックから旧PS−と[!ITTMPとを読込む。
読込んだPSM中のXAピントが0であれば、EFTを
発生したコンテキスト(タスクやプロセス)が32ビツ
トのコンテキストであったということが判明するので、
続いてスタックから32ビツト幅で旧PCを読込む。な
お、M33210では総てのコンテキストが32ビツト
のコンテキストである。
発生したコンテキスト(タスクやプロセス)が32ビツ
トのコンテキストであったということが判明するので、
続いてスタックから32ビツト幅で旧PCを読込む。な
お、M33210では総てのコンテキストが32ビツト
のコンテキストである。
更に、BITINF中のFORMATにより追加情報の
有無を判定し、追加情報があれば、スタックからそれを
読込む、追加情報には、EXPC,roINF、 [!
RADDR。
有無を判定し、追加情報があれば、スタックからそれを
読込む、追加情報には、EXPC,roINF、 [!
RADDR。
ERDATA、 SPI等がある。
なお、FORMATがプロセッサのサポートしていない
値(BITで発生するはずのない値)であった場合は、
予約スタックフォーマット例外(R5FE)となる。
値(BITで発生するはずのない値)であった場合は、
予約スタックフォーマット例外(R5FE)となる。
・(R2) PS−の復帰
スタックから読込んだ旧PS−によりPS賀の全フィー
ルド(SMRNG、 XA、 AT、 OR,IMAS
K、 PSM、 PSB)をEIT発生前の値に復帰す
る。この際、旧pswがreservedの値を含んで
いた場合には、予約機能例外(RFE)が発生される。
ルド(SMRNG、 XA、 AT、 OR,IMAS
K、 PSM、 PSB)をEIT発生前の値に復帰す
る。この際、旧pswがreservedの値を含んで
いた場合には、予約機能例外(RFE)が発生される。
・(R3)ストアバッファの再実行
FO1??IATと追加情報の値とによっては、REI
?BIT中で、前回BITを発生したストアバ7フアに
よるライトサイクルの再実行を行なう場合がある。
?BIT中で、前回BITを発生したストアバ7フアに
よるライトサイクルの再実行を行なう場合がある。
この際、ライトサイクルの実行に必要なアドレスとデー
タの情報としては、スタック上の追加情報の中にあった
ERADDRとERDATAとが使用される。ストアバ
ッファの再実行処理がBITを起動した場合はREIT
命令のEIT(タイプ4.フォーマットl)として扱う
。
タの情報としては、スタック上の追加情報の中にあった
ERADDRとERDATAとが使用される。ストアバ
ッファの再実行処理がBITを起動した場合はREIT
命令のEIT(タイプ4.フォーマットl)として扱う
。
・(R4) BIT検出時に実行していた命令列への復
帰スタックから読込んだ旧pcをPCに復帰し、PCが
示す命令から実行が再開される。この際、BITINF
中のTYPEフィールドによって、次に受付けられるB
ITが制限される。タイプ2〜4のEIT処理ハンドラ
からのREITではセルフデバッグトラップは起動され
ない、この機能は、命令実行途中で割込みを受付け、同
時にデバッグ事象が検出された際に、セルフデバッグト
ラップの起動を命令実行完了まで遅延させる処理を行う
ためである。
帰スタックから読込んだ旧pcをPCに復帰し、PCが
示す命令から実行が再開される。この際、BITINF
中のTYPEフィールドによって、次に受付けられるB
ITが制限される。タイプ2〜4のEIT処理ハンドラ
からのREITではセルフデバッグトラップは起動され
ない、この機能は、命令実行途中で割込みを受付け、同
時にデバッグ事象が検出された際に、セルフデバッグト
ラップの起動を命令実行完了まで遅延させる処理を行う
ためである。
なお、BITINF(7)VECTOR7イー ルドは
、REF?命令では特に使用されないにもかかわらず、
VECTORがBITINFに含まれているのは、BI
T処理ハンドラのプログラムに対して情報を提供するた
めである。
、REF?命令では特に使用されないにもかかわらず、
VECTORがBITINFに含まれているのは、BI
T処理ハンドラのプログラムに対して情報を提供するた
めである。
(3,4) r EITのタイプ」
本発明のデータ処理装置のEITを、EIT処理ハンド
ラ終了後の実行再開時のpcの位置と、BIT処理の優
先度に着目して分類すると、以下のようになる。この分
類はEITINFのTYP[!フィールドの値にそのま
ま対応する。
ラ終了後の実行再開時のpcの位置と、BIT処理の優
先度に着目して分類すると、以下のようになる。この分
類はEITINFのTYP[!フィールドの値にそのま
ま対応する。
[命令処理放棄型EIT −aborted EIT
(TYPE=O。
(TYPE=O。
pc 不定)]
このBITが発生すると、直ちにそれが検出されてE/
IT処理に入る。このBITが発生した場合、BITを
発生した命令系列に復帰することは出来ない。
IT処理に入る。このBITが発生した場合、BITを
発生した命令系列に復帰することは出来ない。
これに富亥当するのは、R1及びSEEである。
[命令処理完了型BIT −com!eted EIT
(TYPE=1〜3、PC次命令)] このBITが発生すると、その時点で実行中の命令処理
が完了した後でそれが検出され、EIT処理に入る。一
般には、このBITに対するBIT処理ハンドラの最後
でREIT命令を実行することにより、BIT発生時に
実行していた命令の次の命令から命令の実行を再開でき
る。
(TYPE=1〜3、PC次命令)] このBITが発生すると、その時点で実行中の命令処理
が完了した後でそれが検出され、EIT処理に入る。一
般には、このBITに対するBIT処理ハンドラの最後
でREIT命令を実行することにより、BIT発生時に
実行していた命令の次の命令から命令の実行を再開でき
る。
なお、TYPE=1〜3の区別は、優先度等の関係によ
るものである。
るものである。
これに1亥当するのは、TRAPcc、TRAPA、D
BE、DI等である。
BE、DI等である。
[命令処理取消型1jT −cancelled EI
T (TYPE=4゜PC現命令)] このEiTが発生すると、プロセッサ及びメモリの状態
はBIT発生時に処理していた命令の実行開始前の時点
に戻される。一般には、このBITに対するETT処理
ハンドラの最後でREFT命令を実行することにより、
BIT発生時に実行していた命令から命令の実行を再開
できる。
T (TYPE=4゜PC現命令)] このEiTが発生すると、プロセッサ及びメモリの状態
はBIT発生時に処理していた命令の実行開始前の時点
に戻される。一般には、このBITに対するETT処理
ハンドラの最後でREFT命令を実行することにより、
BIT発生時に実行していた命令から命令の実行を再開
できる。
これに該当するのは、ATRE、 BAE、 RIE、
RPE、 PIVB。
RPE、 PIVB。
■0I11等である。
タイプ別にEITを分類すると以下の如くである。
[タイプ/スタックフォーマット]
falタイプ0のBIT(処理放棄型)・リセット割込
み[0/−] ・システム障害[0/−] fblタイプ1のBIT(処理完了型)・バスアクセス
トラップ[1/1] ・アドレス変換トラップ[1/1] ・奇数アドレスジャンプトラップ[1/2]・ゼロ除算
トラップ[1/2] ・条件トラップ[1/2] ・無条件トラップ[1/2] (elタイプ2のBIT(処理完了型)・セルフデバッ
グトラップ[2/2] (d)タイプ3のBIT(処理完了型)・固定ベクトル
外部割込み[310] ・遅延割込み[310] ・外部割込み[310] felタイプ4のBIT(処理取消型)・バスアクセス
例外[4/1F ・アドレス変換例外[4/1] ・特権命令違反例外[410コ ・リング遷移違反例外[410] ・予約命令例外[4101 ・予約機能例外[410] ・予約スタンクツオーマット例外[410F・不正オペ
ランド例外[410] 命令処理完了型のBITは以前に実行していた命令に関
するBITであり、命令処理取消型のBITは現在実行
中の命令に関するEITである。従って、複数のBIT
が同時に発生した場合には、先行命令である命令処理完
了型のBITを先に処理する必要がある。
み[0/−] ・システム障害[0/−] fblタイプ1のBIT(処理完了型)・バスアクセス
トラップ[1/1] ・アドレス変換トラップ[1/1] ・奇数アドレスジャンプトラップ[1/2]・ゼロ除算
トラップ[1/2] ・条件トラップ[1/2] ・無条件トラップ[1/2] (elタイプ2のBIT(処理完了型)・セルフデバッ
グトラップ[2/2] (d)タイプ3のBIT(処理完了型)・固定ベクトル
外部割込み[310] ・遅延割込み[310] ・外部割込み[310] felタイプ4のBIT(処理取消型)・バスアクセス
例外[4/1F ・アドレス変換例外[4/1] ・特権命令違反例外[410コ ・リング遷移違反例外[410] ・予約命令例外[4101 ・予約機能例外[410] ・予約スタンクツオーマット例外[410F・不正オペ
ランド例外[410] 命令処理完了型のBITは以前に実行していた命令に関
するBITであり、命令処理取消型のBITは現在実行
中の命令に関するEITである。従って、複数のBIT
が同時に発生した場合には、先行命令である命令処理完
了型のBITを先に処理する必要がある。
また、命令処理放棄型のBITは重要度の高いBITで
あり、これが検出された場合には、他のBITを処理す
ることは無意味である。従って、命令処理放棄型のBI
Tと他のBITが同時に発生した場合には、命令処理放
棄型のBITを先に処理する必要がある。結局、複数の
BITが同時に発生した場合の優先度は 命令処理放棄型〉命令完了型〉命令取消型となり、EI
TINFのTYPE=4〜4が、そのままBITの優先
度を表わすことになる。
あり、これが検出された場合には、他のBITを処理す
ることは無意味である。従って、命令処理放棄型のBI
Tと他のBITが同時に発生した場合には、命令処理放
棄型のBITを先に処理する必要がある。結局、複数の
BITが同時に発生した場合の優先度は 命令処理放棄型〉命令完了型〉命令取消型となり、EI
TINFのTYPE=4〜4が、そのままBITの優先
度を表わすことになる。
ErTの種類とTYPEとの対応は、R1及びTRAP
のように明確に決まっているものもあるが、ある程度は
インプリメント依存の部分がある。従って、ソフトウェ
アでBITの要因を分析する際には、TYPEのフィー
ルドを参照したりあるいは書換えたりは可能な限りしな
い方がよい。
のように明確に決まっているものもあるが、ある程度は
インプリメント依存の部分がある。従って、ソフトウェ
アでBITの要因を分析する際には、TYPEのフィー
ルドを参照したりあるいは書換えたりは可能な限りしな
い方がよい。
例えばバスアクセスのBITの場合、命令取消型のBI
Tであるバスアクセス例外(BAE)としてTYPE=
4となるのが普通である。しかし、メモリの書込みにス
トアバッファを用いる本発明のデータ処理装置において
は、命令のjl後の書込みサイクル(ストアバッファ使
用)でバスアクセスの81丁が発生した場合には、この
命令全体を最初から再実行せずとも、最後の書込みサイ
クルのみ再実行すれば処理上の矛盾は生じない。
Tであるバスアクセス例外(BAE)としてTYPE=
4となるのが普通である。しかし、メモリの書込みにス
トアバッファを用いる本発明のデータ処理装置において
は、命令のjl後の書込みサイクル(ストアバッファ使
用)でバスアクセスの81丁が発生した場合には、この
命令全体を最初から再実行せずとも、最後の書込みサイ
クルのみ再実行すれば処理上の矛盾は生じない。
そこで、本発明のデータ処理装置ではこのようなケース
でのバスアクセスのEITを命令処理完了型のBITで
あるバスアクセストランプ(BAT)とし、エラーを発
生した最後のライトサイクルの処理はREI’r命令の
中で行なう、この場合は、BATはTYPE=1となる
。また、BIT処理でスタック積まれるNEXTPCは
、BAT発生命令ではなく次の命令になる。
でのバスアクセスのEITを命令処理完了型のBITで
あるバスアクセストランプ(BAT)とし、エラーを発
生した最後のライトサイクルの処理はREI’r命令の
中で行なう、この場合は、BATはTYPE=1となる
。また、BIT処理でスタック積まれるNEXTPCは
、BAT発生命令ではなく次の命令になる。
命令処理再実行方式に忠実に従う限り、命令実行中にエ
ラーが発生した場合は、命令実行前の状態に戻ってTY
PE= 4のBITを起動するというのが原則である。
ラーが発生した場合は、命令実行前の状態に戻ってTY
PE= 4のBITを起動するというのが原則である。
しかし、命令がもう少しで終了するという時点でエラー
が発生した場合には、一応命令が終了したことにしてT
YPE= 1のEITを起動し、残りの処理(ストアバ
ッファのライトサイクル)はIIEIT命令に任せると
いうインプリメントも可能なのである。このインプリメ
ント方法をとる本発明のデータ処理装置では、バスアク
セスのBITのTYPEが1と4の2通りになる。この
場合、TYPEの違いに応じてREIT命令で必要とな
る処理が異なるので、I?BIT命令はそれに対応でき
るようになっていなければならない。
が発生した場合には、一応命令が終了したことにしてT
YPE= 1のEITを起動し、残りの処理(ストアバ
ッファのライトサイクル)はIIEIT命令に任せると
いうインプリメントも可能なのである。このインプリメ
ント方法をとる本発明のデータ処理装置では、バスアク
セスのBITのTYPEが1と4の2通りになる。この
場合、TYPEの違いに応じてREIT命令で必要とな
る処理が異なるので、I?BIT命令はそれに対応でき
るようになっていなければならない。
この手法では、命令の最後のライトサイクルで発生した
エラーによるBITに対して命令全体を再実行するので
はなく、最後のライトサイクルのみを再実行すればよい
ことになっている。換言すれば、一種の命令継続実行方
式になっている。この場合、命令継続実行のために退避
される内部情報に相当するのが、BITの追加情報とし
てスタック上に退避されるERADDRあるいはERD
ATAである。
エラーによるBITに対して命令全体を再実行するので
はなく、最後のライトサイクルのみを再実行すればよい
ことになっている。換言すれば、一種の命令継続実行方
式になっている。この場合、命令継続実行のために退避
される内部情報に相当するのが、BITの追加情報とし
てスタック上に退避されるERADDRあるいはERD
ATAである。
なお、ストアバッファを用いた書込みサイクルで発生す
るBITの場合、その書込みを行なった命令の直後にE
IT処理に入ると′Cよ限らない。
るBITの場合、その書込みを行なった命令の直後にE
IT処理に入ると′Cよ限らない。
(3,5) r EITのスタックフォーマット」[
BITの検出に伴ってBIT処理に必要な情報がスタッ
クに退避される。その際のスタックフォーマットは第1
5図に示す如くである。
BITの検出に伴ってBIT処理に必要な情報がスタッ
クに退避される。その際のスタックフォーマットは第1
5図に示す如くである。
なお、第15図のフォーマント中における記号の意味は
以下の如くである。
以下の如くである。
PSW:81丁を検出した時点のps賀For■at=
スタックフォーマット番号(8bit)Type i
FiTTタイプ(8bit)Vector : E
ITベクタ番号(9bit)NEXTPC: EIT
ハンドラからの復帰後の実行再開アドレス なお、第15図の「その他の情報」は各BITのスタッ
クフォーマント番号に応して異なり、BITの要因を解
析するための情報及びBITハンドラから復帰するため
の情報が含まれている。スタックフォーマント番号に応
したスタックフォーマットを第16図(al〜(d+に
示す。
スタックフォーマット番号(8bit)Type i
FiTTタイプ(8bit)Vector : E
ITベクタ番号(9bit)NEXTPC: EIT
ハンドラからの復帰後の実行再開アドレス なお、第15図の「その他の情報」は各BITのスタッ
クフォーマント番号に応して異なり、BITの要因を解
析するための情報及びBITハンドラから復帰するため
の情報が含まれている。スタックフォーマント番号に応
したスタックフォーマットを第16図(al〜(d+に
示す。
なお、第16図(alはフォーマント番号0を、同(b
lはフォーマット番号1を、同(C)はフォーマット番
号2を、同(d+はフォーマント番号3をそれぞれ示し
、図中の記号の意味は以下の如くである。
lはフォーマット番号1を、同(C)はフォーマット番
号2を、同(d+はフォーマント番号3をそれぞれ示し
、図中の記号の意味は以下の如くである。
NEXTl’C: REIT命令でEITから戻った後
に実行する命令の先頭アドレス εχPC:EITの検出時に実行していた命令のpc。
に実行する命令の先頭アドレス εχPC:EITの検出時に実行していた命令のpc。
l0INF :入出力に関する情報Error A
ddr: BITを発生させたアドレスError
Data: EFTを発生させたデータ(write
時のみ有効、readは不定値が入 る) SPI : EFT検出時+7)SPI ノ値
(注:ワード境界を跨いだ場合、上位側 アクセス(2回目アクセス)では Error Addr、 [Error Dataはそ
のサイクルのアドレスとデータと なる) それぞれのフォーマット番号に含まれるEITは以下の
如くである。
ddr: BITを発生させたアドレスError
Data: EFTを発生させたデータ(write
時のみ有効、readは不定値が入 る) SPI : EFT検出時+7)SPI ノ値
(注:ワード境界を跨いだ場合、上位側 アクセス(2回目アクセス)では Error Addr、 [Error Dataはそ
のサイクルのアドレスとデータと なる) それぞれのフォーマット番号に含まれるEITは以下の
如くである。
・フォーマント番号0:
予約命令例外、予約@能例外、予約
スタックフォーマット例外、特権命
令違反例外、不正オペランド例外。
固定ベクトル外部割込み、遅延割込
み、遅延コンテキストトラップ、外
部割込み
ト番号1:
バスアクセストラップ、バスアクセ
ス例外1アドレス変換トラツプ、ア
ドレス変換例外(つまり、メモリ関
係のETT)
ト番号2:
セルフデバッグトラップ、奇数アド
レスジャンプトラップ、ゼロ除算ト
ラップ、条件トラップ、無条件トラ
ップ
ト番号3:
ICE用のEIT処理。
EXPCは次のような目的で導入されたものである。
エラー解析情報の提供:
ストアバッファの書込みの際にTYPE=1のBITが
発生したような場合、その書込み依頼を行った命令を指
しているのがEXPCである。実行中の命令のPCは先
に進んでしまっている。
発生したような場合、その書込み依頼を行った命令を指
しているのがEXPCである。実行中の命令のPCは先
に進んでしまっている。
セルフデバッグトラップではNEXTPCは次の命令を
指し、EXPCは前の命令を指している。従っ・フォー
マツ ・フォーマツ ・フォーマン て、例えば、ジャンプ命令実行時にセルフデバッグトラ
ップを起動するようにした場合、EXPCによってジャ
ンプ前のPCの値を、NEXTPCによってジャンプ後
のPCの値をそれぞれ知ることができる。
指し、EXPCは前の命令を指している。従っ・フォー
マツ ・フォーマツ ・フォーマン て、例えば、ジャンプ命令実行時にセルフデバッグトラ
ップを起動するようにした場合、EXPCによってジャ
ンプ前のPCの値を、NEXTPCによってジャンプ後
のPCの値をそれぞれ知ることができる。
・REIT(RTD)命令でのセルフデバッグトラップ
起動時の注意: TYPE=1のTRAPA等のEITの場合は、その処
理ハンドラの中でEXPCの情報が必要になることはな
い、しかしながら、TYPl、 1のEIT(TI?A
PA等)とTYPE=2のEIT(セルフデバッグトラ
ップ等)が同時に発生した場合、TYPE=1のEIT
においてはTYPE=2で使用するEXPCを退避して
おかなければならない、 TRAPAでもEXPCを
退避するような仕様になっているのは、このためである
。
起動時の注意: TYPE=1のTRAPA等のEITの場合は、その処
理ハンドラの中でEXPCの情報が必要になることはな
い、しかしながら、TYPl、 1のEIT(TI?A
PA等)とTYPE=2のEIT(セルフデバッグトラ
ップ等)が同時に発生した場合、TYPE=1のEIT
においてはTYPE=2で使用するEXPCを退避して
おかなければならない、 TRAPAでもEXPCを
退避するような仕様になっているのは、このためである
。
この場合、TRAPAの処理に対するREIT命令実行
後のEXPCはRε【T命令の先頭を指すのではなく、
スタックからポンプした旧EXPCの値を復帰したもの
になっていなければならない、即ち、REIT命令の直
後になっていたデバッグトラップを起動した直後にベン
ディングになっていたデバッグ例外を起動した場合、ス
タックに退避されるEXPCはR[!IT命令を指すの
ではなく、TRAPA 命令を指すものでなければな
らない、なおこの例は、TRAPAのEITVTEでセ
ルフデバッグトラップをマスクすることを想定したもの
である。
後のEXPCはRε【T命令の先頭を指すのではなく、
スタックからポンプした旧EXPCの値を復帰したもの
になっていなければならない、即ち、REIT命令の直
後になっていたデバッグトラップを起動した直後にベン
ディングになっていたデバッグ例外を起動した場合、ス
タックに退避されるEXPCはR[!IT命令を指すの
ではなく、TRAPA 命令を指すものでなければな
らない、なおこの例は、TRAPAのEITVTEでセ
ルフデバッグトラップをマスクすることを想定したもの
である。
また、l0INFの構成は第17図に示す如くになって
いる。
いる。
第17図中の記号の意味は以下の如くである。
= : ’0”にressrve’dNWR:
RBIT命令におけるライトリトライの指示メモリアク
セス系のBIT (TYPE・1)で意味を持つ。
RBIT命令におけるライトリトライの指示メモリアク
セス系のBIT (TYPE・1)で意味を持つ。
NWR=Oライトリトライ要
NWR・1 ライトリトライT4’
A置: アドレス変換例外の発生位置oooo エ
ラーなし 0001 アクセス権に関するエラーなし 0010〜lllO(reserved)1111 1
/ OeJI域アクセスに関するエフ− ATEC: メモリアクセス関係のエラーのエラー コード 000 001 010 011 100 101 110 111 000 001 1010〜 100 101 エラーなし くreserved) (reserved) (reserved) (reserved) wr i teに関するアクセス権 違反エラー execu teに関するアクセス 権違反エラー Creserved) (reserved) (reserved) (reserved) I / Of+1域に対するメモリ間 接アドレッシング 1110 110領域に対する命令フェッチ 1111 1 / 0w4域と非l10fiI域トヲ
跨ぐアクセス :バスサイクル種別 R口=Owrite RD=1 read :バスロック中態 Bし・Oバスロック中でない BL=1 バス口・ンク中 ニアドレス変換の指定 NAT=O(reserved)・ニアドレス変換あり NAT・1 アドレス変換なし :EITが発生したバスサイクルのア クセスタイプ BAT=000 データ BAT=001 プログラム BAT=010 (reserved)BAT=0
11〜111 (reserved)SIZ : ライ
トリトライを行う際のデータサイズ 0000 (reserved)0001
1バイト 0010 2バイト 0011 3バイト 0100 4バイト 0101〜1lll (reserved)AT=0
0.八T・10でアドレス変換を行なわない場合にも、
BAR,ATRE等のメモリ関係のBITが発生する可
能性がある。スタックフォーマットはAT=01の場合
にt$シたものになるが、ATEC,ATEI、は共に
0本発明のデータ処理装置では前述の如きBIT処理を
数多くの高機能命令を処理する種々のタイミングの中で
実現するために、マイクロプログラムの最終ステップに
おける書込み処理のみをストアバッファに移行して処理
するように制御している。
ラーなし 0001 アクセス権に関するエラーなし 0010〜lllO(reserved)1111 1
/ OeJI域アクセスに関するエフ− ATEC: メモリアクセス関係のエラーのエラー コード 000 001 010 011 100 101 110 111 000 001 1010〜 100 101 エラーなし くreserved) (reserved) (reserved) (reserved) wr i teに関するアクセス権 違反エラー execu teに関するアクセス 権違反エラー Creserved) (reserved) (reserved) (reserved) I / Of+1域に対するメモリ間 接アドレッシング 1110 110領域に対する命令フェッチ 1111 1 / 0w4域と非l10fiI域トヲ
跨ぐアクセス :バスサイクル種別 R口=Owrite RD=1 read :バスロック中態 Bし・Oバスロック中でない BL=1 バス口・ンク中 ニアドレス変換の指定 NAT=O(reserved)・ニアドレス変換あり NAT・1 アドレス変換なし :EITが発生したバスサイクルのア クセスタイプ BAT=000 データ BAT=001 プログラム BAT=010 (reserved)BAT=0
11〜111 (reserved)SIZ : ライ
トリトライを行う際のデータサイズ 0000 (reserved)0001
1バイト 0010 2バイト 0011 3バイト 0100 4バイト 0101〜1lll (reserved)AT=0
0.八T・10でアドレス変換を行なわない場合にも、
BAR,ATRE等のメモリ関係のBITが発生する可
能性がある。スタックフォーマットはAT=01の場合
にt$シたものになるが、ATEC,ATEI、は共に
0本発明のデータ処理装置では前述の如きBIT処理を
数多くの高機能命令を処理する種々のタイミングの中で
実現するために、マイクロプログラムの最終ステップに
おける書込み処理のみをストアバッファに移行して処理
するように制御している。
例えばSMOV(String MOVe)命令で非
常に長いデータを転送する場合、本発明のデータ処理装
置はデータピンは32ビツトに構成されているので、1
つの命令が複数回に亙って外部バスアクセスを行うこと
になる。その場合、命令処理途中の外部バスアクセスが
エラーを発生したら、その処理は命令が完了する前に発
生したエラーなので再実行型の例外になる。また、その
際エラーを発生した外部バスアクセス処理は正しく完了
しなかったことになるので、マイクロプロセッサの内部
状態としてはその処理の前の状態をBIT処理復帰後の
状態とする必要がある。そのため再実行型のバスアクセ
ス例外を起こす可能性がある処理をする場合には、次に
実行ステージを開始する前に、その書込み処理が正常に
終了するまで待つ、もしくは内部状態情報を保存してお
く必要がある。もし書込み処理が次のパイプラインステ
ージに移行してしまったならば、上記のような制御は非
常に複雑になる。
常に長いデータを転送する場合、本発明のデータ処理装
置はデータピンは32ビツトに構成されているので、1
つの命令が複数回に亙って外部バスアクセスを行うこと
になる。その場合、命令処理途中の外部バスアクセスが
エラーを発生したら、その処理は命令が完了する前に発
生したエラーなので再実行型の例外になる。また、その
際エラーを発生した外部バスアクセス処理は正しく完了
しなかったことになるので、マイクロプロセッサの内部
状態としてはその処理の前の状態をBIT処理復帰後の
状態とする必要がある。そのため再実行型のバスアクセ
ス例外を起こす可能性がある処理をする場合には、次に
実行ステージを開始する前に、その書込み処理が正常に
終了するまで待つ、もしくは内部状態情報を保存してお
く必要がある。もし書込み処理が次のパイプラインステ
ージに移行してしまったならば、上記のような制御は非
常に複雑になる。
即ち、内部状態をバッファ記憶部に保持しておく必要が
あり、多くのハードウェアを要することになる。本発明
のデータ処理装置では、上記のような書込み処理は次の
パイプラインステージには移行せず、実行ステージ内で
制御する。即ち、書、込み処理が終了するまで命令ステ
ージは次の処理には移行しない、更に、最終ステップの
書込み処理だけ次のパイプラインステージに移行するよ
うに限定するので、制御は非常に簡単である。最終ステ
ップ以外の書込み処理は実行ステージの処理として行う
ことによって、並列処理が不可能になるという問題があ
るが、実際にそのような処理が行われるのは高機能命令
であるので、マイクロプログラムをオプティマイズする
ことによって処理速度上の遅延は抑えられる。
あり、多くのハードウェアを要することになる。本発明
のデータ処理装置では、上記のような書込み処理は次の
パイプラインステージには移行せず、実行ステージ内で
制御する。即ち、書、込み処理が終了するまで命令ステ
ージは次の処理には移行しない、更に、最終ステップの
書込み処理だけ次のパイプラインステージに移行するよ
うに限定するので、制御は非常に簡単である。最終ステ
ップ以外の書込み処理は実行ステージの処理として行う
ことによって、並列処理が不可能になるという問題があ
るが、実際にそのような処理が行われるのは高機能命令
であるので、マイクロプログラムをオプティマイズする
ことによって処理速度上の遅延は抑えられる。
第1図に本発明のデータ処理装置の一実施例の詳細なパ
イプラインフローを示す。
イプラインフローを示す。
前述した如く、本発明のデータ処理装置は命令フェッチ
ステージ1.命令デコードステージ(1)3及びf21
9 、オペランドアドレス計算ステージ5.オペランド
フェッチステージ6.マイクロR0そして、パイプライ
ンの負荷均一のためにいくつかのパイプラインステージ
間にステップコードを蓄えるバッファ、具体的には命令
キュー2,Aコードキュー4,Sコードキューブ?,D
コードキュー8。
ステージ1.命令デコードステージ(1)3及びf21
9 、オペランドアドレス計算ステージ5.オペランド
フェッチステージ6.マイクロR0そして、パイプライ
ンの負荷均一のためにいくつかのパイプラインステージ
間にステップコードを蓄えるバッファ、具体的には命令
キュー2,Aコードキュー4,Sコードキューブ?,D
コードキュー8。
Rコードキュー10を設けている。そしてストアバッフ
ァ13は命令実行部12の制御のちとに最終マイクロス
テップの外部バスを用いた書込み処理に対してのみ動作
する。
ァ13は命令実行部12の制御のちとに最終マイクロス
テップの外部バスを用いた書込み処理に対してのみ動作
する。
第2図にストアバッファ13を用いた場合のタイミング
チャートを示す。
チャートを示す。
処理(A)と処理(A+1)とは一連のマイクロプログ
ラムされた処理であり、共に外部バスアクセスを伴う書
込み処理を含む。ここで、処理(A+1)のみが書込み
処理に際してストアバッファを使用する。即ち、1段の
パイプラインステージが追加されて処理される。そのた
め、処理(A)の場合は書込み処理が終了するまで次の
処理に命令実行ステージは移行しないが、処理(A+1
>の場合はバスアクセス権が獲得できると直ちに次の処
理に移ることが可能である。
ラムされた処理であり、共に外部バスアクセスを伴う書
込み処理を含む。ここで、処理(A+1)のみが書込み
処理に際してストアバッファを使用する。即ち、1段の
パイプラインステージが追加されて処理される。そのた
め、処理(A)の場合は書込み処理が終了するまで次の
処理に命令実行ステージは移行しないが、処理(A+1
>の場合はバスアクセス権が獲得できると直ちに次の処
理に移ることが可能である。
第3図に本発明のデータ処理装置の内部状態情報の1つ
であるPCの管理のための構成を示す。
であるPCの管理のための構成を示す。
PCは命令デコードステージから出力されるPC計算に
関係する情報によりハードワイヤード制御されるPC計
算部においてまず計算される。命令デコードステージか
ら出力される命令長がデコード中の命令のPC値に加算
されて次の命令のPC値が生成される。また、分岐命令
がデコードされた場合には命令長の代わりに分岐の変位
(DISP)が加算される。これらの加算はPC加算器
20により実行される。
関係する情報によりハードワイヤード制御されるPC計
算部においてまず計算される。命令デコードステージか
ら出力される命令長がデコード中の命令のPC値に加算
されて次の命令のPC値が生成される。また、分岐命令
がデコードされた場合には命令長の代わりに分岐の変位
(DISP)が加算される。これらの加算はPC加算器
20により実行される。
生成されたPC値はバッファを経由して次のPC計算の
ためにバッファ21, 22に格納されると共にアドレ
ス計算ステージのAPC32へ送られる.爾後、ハフ
7 y 24, FPC25. EPC26. 5
PC27とl1li C送られ、バッフ128へ至る。
ためにバッファ21, 22に格納されると共にアドレ
ス計算ステージのAPC32へ送られる.爾後、ハフ
7 y 24, FPC25. EPC26. 5
PC27とl1li C送られ、バッフ128へ至る。
このように、各パイプラインステージはそれぞれ内部状
態情報を保持していて、処理の終了時に処理結果である
ステップコードと共に内部状態情報も次パイプラインス
テージに順次転送する。
態情報を保持していて、処理の終了時に処理結果である
ステップコードと共に内部状態情報も次パイプラインス
テージに順次転送する。
本発明のデータ処理装置では、第1図に示した如<、い
くつかのバッファがパイプラインステージ間に設けられ
ているので、内部でDステージ以降のステージで取込め
る命令は最大8命令である。
くつかのバッファがパイプラインステージ間に設けられ
ているので、内部でDステージ以降のステージで取込め
る命令は最大8命令である。
従って、PCとしても取込める命令数だけ用意する必要
がある。ストアバッファ用にも5PC27が設けられて
おり、このレジスタには最終マイクロステップの外部バ
スアクセスを伴う書込み処理がバス権が獲得できた際に
転送される。
がある。ストアバッファ用にも5PC27が設けられて
おり、このレジスタには最終マイクロステップの外部バ
スアクセスを伴う書込み処理がバス権が獲得できた際に
転送される。
マイクロプログラムの最終ステップ以外の外部バスアク
セスを伴う書込み処理についても、書込み処理中にPS
W等の内部状態情報に影響を及ぼさない処理については
実行できるので、マイクロプログラムで処理の内容を判
断し並列処理を行うことができる。この処理はパイプラ
イン処理ではなく、命令の並列処理である。本発明のデ
ータ処理装置ではマイクロプログラムの中で書込み処理
と他の処理とが並列実行可能かどうかの判断を行い、書
込み処理の終了を待つことを指定する情報を生成する。
セスを伴う書込み処理についても、書込み処理中にPS
W等の内部状態情報に影響を及ぼさない処理については
実行できるので、マイクロプログラムで処理の内容を判
断し並列処理を行うことができる。この処理はパイプラ
イン処理ではなく、命令の並列処理である。本発明のデ
ータ処理装置ではマイクロプログラムの中で書込み処理
と他の処理とが並列実行可能かどうかの判断を行い、書
込み処理の終了を待つことを指定する情報を生成する。
第4図及び第5図に本発明のデータ処理装置におけるB
VMAP命令の処理方法を示す。
VMAP命令の処理方法を示す。
BVMAP命令は可変長ビット操作命令で、その内容を
第4図を用いて説明する。なお、このBIJMAP命令
はソースオペランド30の任意のビット位置から任意の
ビット長のデータを論理演算を行ってデスティネーショ
ンアドレスに格納する命令であり、ビットマツプデイス
プレィ処理用の命令として非常に有効である。
第4図を用いて説明する。なお、このBIJMAP命令
はソースオペランド30の任意のビット位置から任意の
ビット長のデータを論理演算を行ってデスティネーショ
ンアドレスに格納する命令であり、ビットマツプデイス
プレィ処理用の命令として非常に有効である。
この命令の処理手順は、まず、マイクロプロセッサの内
部処理は基本的にすべてワード(本実施例では32ビツ
ト)単位で行われるので、ソースオペランドをワード境
界ごとに分割する。そしてAとBとの2ワードに跨った
ビットフィールドについて1ワードごとビット位置を内
部処理可能なようにシフトして補正する(33.34)
。
部処理は基本的にすべてワード(本実施例では32ビツ
ト)単位で行われるので、ソースオペランドをワード境
界ごとに分割する。そしてAとBとの2ワードに跨った
ビットフィールドについて1ワードごとビット位置を内
部処理可能なようにシフトして補正する(33.34)
。
次に、補正した2ワードの論理和をとって内部処理の対
象となるワードデータCを生成する(36)。
象となるワードデータCを生成する(36)。
そして、データD (35)と論理演算を行い(37)
、デスティネーションアドレスに格納する。
、デスティネーションアドレスに格納する。
これらの処理をマイクロプログラムで実行したフローを
示したのが第5図である。
示したのが第5図である。
BVMAP命令はマイクロ命令上基本的に5種類に分け
られる。それらは ・左シフトとソースオペランドの続出し。
られる。それらは ・左シフトとソースオペランドの続出し。
・右シフトとデータ退避
・論理演算(論理和〉とデスティネーションオペランド
の続出し ・論理演算 ・デスティネーションアドレスへの書込み。
の続出し ・論理演算 ・デスティネーションアドレスへの書込み。
である。
これらの内、左シフトと右シフト及び論理和演算はps
−等の内部状態情報の操作は伴わない。従って、これら
の処理は外部バスアクセスを伴う書込み処理と並列して
処理することができる。このように本発明のデータ処理
装置では、BIT処理を実現するハードウェアを軽減で
きると共に、マイクロプログラムの最適化によって性能
の劣化は抑えられる。
−等の内部状態情報の操作は伴わない。従って、これら
の処理は外部バスアクセスを伴う書込み処理と並列して
処理することができる。このように本発明のデータ処理
装置では、BIT処理を実現するハードウェアを軽減で
きると共に、マイクロプログラムの最適化によって性能
の劣化は抑えられる。
〔発明の効果〕
以上に詳述した如く、マイクロプログラムの最終ステッ
プにおける外部バスアクセス処理を伴う書込み処理のみ
をストアバッファに転送し、パイプラインステージをも
う1段追加することによって、マイクロプロセッサの内
部状態を示す情報の管理が非常に容易になり、簡単なハ
ードウェア構成でBIT処理に対処することが可能にな
る。またマイクロプログラムの最終ステップに限定した
事により、ストアバッファを動作させるための特別なマ
イクロ命令も不要である。
プにおける外部バスアクセス処理を伴う書込み処理のみ
をストアバッファに転送し、パイプラインステージをも
う1段追加することによって、マイクロプロセッサの内
部状態を示す情報の管理が非常に容易になり、簡単なハ
ードウェア構成でBIT処理に対処することが可能にな
る。またマイクロプログラムの最終ステップに限定した
事により、ストアバッファを動作させるための特別なマ
イクロ命令も不要である。
第1図は本発明の一実施例である32ビツトマイクロプ
ロセツサを使用したデータ処理装置のパイプライン処理
フロー、第2図はストアバッファを使用した場合と使用
しない場合との状態を比較するタイミングチャート、第
3図はPC制御のための構成を示すブロック図、第4図
はBVMAP命令の処理の概要を示す模式図、第5図は
BVMAP命令の処理を示すタイミングチャート、第6
図は本発明のデータ処理装置の内部ブロック図、第7図
は本発明のデータ処理装置のパイプライン機能の構成を
示す模式図、第8図は本発明のデータ処理装置の命令フ
ォーマットを示す模式図、第9図は217分類を示す表
、第10図はErTベクトルテーブル(EITVTE)
のフォーマ7)を示す模式図、第11図はプロセンサス
テータスワード(PSW)の構成を示す模式図、第12
図はpssの構成を示す模式図、第13図はPSM、
PSBの構成を示す模式図、第14図はIEIT発生時
に旧PS帆旧PC及び発生したBITに関する種々の情
報を退避するスタックの構成を示す模式図、第15図は
BIT検出に伴う81丁処理に必要な情報を退避するた
めのスタックの構成を示す模式図、第16図+a+、
(bl、 [e)及びtdlはそのスタックフォーマッ
トを示す模式図、第17図はその入出力に関する情報の
フォーマットを示す模式図、第18図は従来のマイクロ
プロセッサのパイプライン処理フローを示す模式図、第
19図、第20図はそれぞれ従来のマイクロプロセッサ
のパイプライン構成を示す模式図である。 13・・・ストアバンファ 51・・・命令フェッチ
部52・・・命令デコード部 53・・・pc計算部
54・・・オペランドアドレス計算部 55・・
・マイクロl+01’1部56・・・データ演算部 なお、図中同一符号は同一または相当部分を示す。
ロセツサを使用したデータ処理装置のパイプライン処理
フロー、第2図はストアバッファを使用した場合と使用
しない場合との状態を比較するタイミングチャート、第
3図はPC制御のための構成を示すブロック図、第4図
はBVMAP命令の処理の概要を示す模式図、第5図は
BVMAP命令の処理を示すタイミングチャート、第6
図は本発明のデータ処理装置の内部ブロック図、第7図
は本発明のデータ処理装置のパイプライン機能の構成を
示す模式図、第8図は本発明のデータ処理装置の命令フ
ォーマットを示す模式図、第9図は217分類を示す表
、第10図はErTベクトルテーブル(EITVTE)
のフォーマ7)を示す模式図、第11図はプロセンサス
テータスワード(PSW)の構成を示す模式図、第12
図はpssの構成を示す模式図、第13図はPSM、
PSBの構成を示す模式図、第14図はIEIT発生時
に旧PS帆旧PC及び発生したBITに関する種々の情
報を退避するスタックの構成を示す模式図、第15図は
BIT検出に伴う81丁処理に必要な情報を退避するた
めのスタックの構成を示す模式図、第16図+a+、
(bl、 [e)及びtdlはそのスタックフォーマッ
トを示す模式図、第17図はその入出力に関する情報の
フォーマットを示す模式図、第18図は従来のマイクロ
プロセッサのパイプライン処理フローを示す模式図、第
19図、第20図はそれぞれ従来のマイクロプロセッサ
のパイプライン構成を示す模式図である。 13・・・ストアバンファ 51・・・命令フェッチ
部52・・・命令デコード部 53・・・pc計算部
54・・・オペランドアドレス計算部 55・・
・マイクロl+01’1部56・・・データ演算部 なお、図中同一符号は同一または相当部分を示す。
Claims (1)
- (1)一連の命令を、それぞれを1または複数のマイク
ロ命令に分割したマイクロプログラムにて処理し、且つ
複数の前記命令を複数のパイプラインステージそれぞれ
により並列処理するパイプライン処理機構を備えたデー
タ処理装置において、 前記パイプライン処理機構は、外部装置への書込み処理
のための1ステージを有し、該ステージを前記マイクロ
プログラムの最終マイクロ命令が前記外部装置へデータ
を書込む処理を含む場合にのみ動作させるべくなしたこ
とを特徴とするデータ処理装置。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP1222207A JP2710994B2 (ja) | 1989-08-29 | 1989-08-29 | データ処理装置 |
| US07/574,845 US5212779A (en) | 1989-08-29 | 1990-08-29 | System for guarantee reexecution after interruption by conditionally used store buffer if microinstruction being executed is a memory write and last microinstruction |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP1222207A JP2710994B2 (ja) | 1989-08-29 | 1989-08-29 | データ処理装置 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH0384632A true JPH0384632A (ja) | 1991-04-10 |
| JP2710994B2 JP2710994B2 (ja) | 1998-02-10 |
Family
ID=16778817
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP1222207A Expired - Lifetime JP2710994B2 (ja) | 1989-08-29 | 1989-08-29 | データ処理装置 |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US5212779A (ja) |
| JP (1) | JP2710994B2 (ja) |
Families Citing this family (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2682232B2 (ja) * | 1990-11-21 | 1997-11-26 | 松下電器産業株式会社 | 浮動小数点演算処理装置 |
| DE69228083T2 (de) * | 1991-03-14 | 1999-05-20 | Fujitsu Ltd., Kawasaki, Kanagawa | Verfahren und Vorrichtung zur Steuerung von Pipelineoperationen |
| KR950009687B1 (ko) * | 1992-06-30 | 1995-08-26 | 삼성항공산업주식회사 | 프로그램어블 로직 콘트롤러용 고속 래더명령 처리장치 |
| JPH06161779A (ja) * | 1992-11-17 | 1994-06-10 | Fujitsu Ltd | データ処理装置の割込み制御方式 |
| US5724566A (en) * | 1994-01-11 | 1998-03-03 | Texas Instruments Incorporated | Pipelined data processing including interrupts |
| SE509499C2 (sv) * | 1996-05-03 | 1999-02-01 | Ericsson Telefon Ab L M | Metod och anordning för hantering av villkorliga hopp vid instruktionsbehandling i en pipeline-arkitektur |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS5736350A (en) * | 1980-08-13 | 1982-02-27 | Toshiba Corp | Starting circuit |
| JPS61112240A (ja) * | 1984-11-06 | 1986-05-30 | Hitachi Ltd | デ−タ処理装置 |
Family Cites Families (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4635194A (en) * | 1983-05-02 | 1987-01-06 | International Business Machines Corporation | Instruction buffer bypass apparatus |
| WO1985000453A1 (en) * | 1983-07-11 | 1985-01-31 | Prime Computer, Inc. | Data processing system |
| AU553416B2 (en) * | 1984-02-24 | 1986-07-17 | Fujitsu Limited | Pipeline processing |
| US4648034A (en) * | 1984-08-27 | 1987-03-03 | Zilog, Inc. | Busy signal interface between master and slave processors in a computer system |
| EP0239081B1 (en) * | 1986-03-26 | 1995-09-06 | Hitachi, Ltd. | Pipelined data processor capable of decoding and executing plural instructions in parallel |
| US5084837A (en) * | 1988-01-22 | 1992-01-28 | Sharp Kabushiki Kaisha | Fifo buffer with folded data transmission path permitting selective bypass of storage |
| US5067069A (en) * | 1989-02-03 | 1991-11-19 | Digital Equipment Corporation | Control of multiple functional units with parallel operation in a microcoded execution unit |
-
1989
- 1989-08-29 JP JP1222207A patent/JP2710994B2/ja not_active Expired - Lifetime
-
1990
- 1990-08-29 US US07/574,845 patent/US5212779A/en not_active Expired - Lifetime
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS5736350A (en) * | 1980-08-13 | 1982-02-27 | Toshiba Corp | Starting circuit |
| JPS61112240A (ja) * | 1984-11-06 | 1986-05-30 | Hitachi Ltd | デ−タ処理装置 |
Also Published As
| Publication number | Publication date |
|---|---|
| US5212779A (en) | 1993-05-18 |
| JP2710994B2 (ja) | 1998-02-10 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US6499123B1 (en) | Method and apparatus for debugging an integrated circuit | |
| JP2761688B2 (ja) | データ処理装置 | |
| US5148529A (en) | Pipelined multi-stage data processor including an operand bypass mechanism | |
| JPS63193230A (ja) | 高性能マイクロプロセッサ集積回路とメモリ参照を行なう方法 | |
| JP2507638B2 (ja) | デ―タ処理装置 | |
| JPH10283180A (ja) | プロセッサ内で命令をディスパッチする方法および装置 | |
| JPH07175666A (ja) | データプロセッサおよびその割込み要求処理方法 | |
| JPH03158928A (ja) | データ処理装置 | |
| US20040064684A1 (en) | System and method for selectively updating pointers used in conditionally executed load/store with update instructions | |
| US11023342B2 (en) | Cache diagnostic techniques | |
| JPH01214932A (ja) | データ処理装置 | |
| JPH07120284B2 (ja) | データ処理装置 | |
| KR102379886B1 (ko) | 벡터 명령 처리 | |
| JP2710994B2 (ja) | データ処理装置 | |
| US5737562A (en) | CPU pipeline having queuing stage to facilitate branch instructions | |
| JPH1049373A (ja) | パイプライン・デジタル・プロセッサにおいて多重で高精度の事象を操作する方法と装置 | |
| US10901747B2 (en) | Unified store buffer | |
| JP2532560B2 (ja) | 高機能な例外処理を行うデ―タ処理装置 | |
| JP2001014161A (ja) | プログラマブルコントローラ | |
| JPH02105937A (ja) | データ処理装置 | |
| US7434036B1 (en) | System and method for executing software program instructions using a condition specified within a conditional execution instruction | |
| JPH03158929A (ja) | データ処理装置 | |
| JP3147884B2 (ja) | 記憶装置及び情報処理装置 | |
| EP0365187A2 (en) | Apparatus for selective execution of instructions following a branch instruction | |
| JPH0769807B2 (ja) | データ処理装置 |