JP2504235B2 - デ―タ処理装置 - Google Patents
デ―タ処理装置Info
- Publication number
- JP2504235B2 JP2504235B2 JP1299394A JP29939489A JP2504235B2 JP 2504235 B2 JP2504235 B2 JP 2504235B2 JP 1299394 A JP1299394 A JP 1299394A JP 29939489 A JP29939489 A JP 29939489A JP 2504235 B2 JP2504235 B2 JP 2504235B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- address
- operand
- data
- unit
- 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
Links
- 238000012545 processing Methods 0.000 title claims description 254
- 230000015654 memory Effects 0.000 claims description 108
- 239000000872 buffer Substances 0.000 claims description 73
- 238000000034 method Methods 0.000 claims description 65
- 230000008569 process Effects 0.000 claims description 38
- 230000003213 activating effect Effects 0.000 claims description 5
- 230000004913 activation Effects 0.000 claims description 3
- 230000004044 response Effects 0.000 claims description 3
- 238000002593 electrical impedance tomography Methods 0.000 description 115
- 238000004364 calculation method Methods 0.000 description 59
- 238000010586 diagram Methods 0.000 description 36
- 238000006073 displacement reaction Methods 0.000 description 16
- 238000006243 chemical reaction Methods 0.000 description 10
- 238000001514 detection method Methods 0.000 description 9
- 238000003860 storage Methods 0.000 description 8
- 230000007246 mechanism Effects 0.000 description 7
- 230000006870 function Effects 0.000 description 4
- 238000001994 activation Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 238000003672 processing method Methods 0.000 description 3
- 239000008186 active pharmaceutical agent Substances 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000009191 jumping Effects 0.000 description 2
- 238000002360 preparation method Methods 0.000 description 2
- 241001083492 Trapa Species 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000006866 deterioration Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- WEAPVABOECTMGR-UHFFFAOYSA-N triethyl 2-acetyloxypropane-1,2,3-tricarboxylate Chemical compound CCOC(=O)CC(C(=O)OCC)(OC(C)=O)CC(=O)OCC WEAPVABOECTMGR-UHFFFAOYSA-N 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3861—Recovery, e.g. branch miss-prediction, exception handling
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
【発明の詳細な説明】 [産業上の利用分野] 本発明はストアバッファを備えたデータ処理装置に関
し、更に詳述すれば、多段のストアバッファで処理中の
命令が例外を発生した場合にも容易に例外処理が可能な
データ処理装置に関する。
し、更に詳述すれば、多段のストアバッファで処理中の
命令が例外を発生した場合にも容易に例外処理が可能な
データ処理装置に関する。
[従来の技術] 近年、データ処理装置は動作周波数の向上あるいはパ
イプライン処理の導入等の種々の改良により性能を向上
してきた。
イプライン処理の導入等の種々の改良により性能を向上
してきた。
パイプライン処理の導入により性能を向上したデータ
処理装置の例としてはU.S.P.No.4,402,042に詳しく記載
されている。
処理装置の例としてはU.S.P.No.4,402,042に詳しく記載
されている。
しかし、パイプライン処理により命令のデコード及び
実行速度を向上しても、データ処理装置の全体としての
処理速度はメモリに対するアクセス速度に制限されるた
め、メモリに対するアクセス速度が低速である場合には
データ処理装置の性能向上には限界がある。
実行速度を向上しても、データ処理装置の全体としての
処理速度はメモリに対するアクセス速度に制限されるた
め、メモリに対するアクセス速度が低速である場合には
データ処理装置の性能向上には限界がある。
このような問題を解決する1つの方法として、命令及
びデータを高速メモリであるキャッシュメモリにバッフ
ァリングすることにより、比較的低速である主メモリの
アクセス速度とデータ処理装置の処理速度との間のギャ
ップを埋める方法が提案されている。
びデータを高速メモリであるキャッシュメモリにバッフ
ァリングすることにより、比較的低速である主メモリの
アクセス速度とデータ処理装置の処理速度との間のギャ
ップを埋める方法が提案されている。
上述のようなキャッシュメモリを利用したデータ処理
装置の例としては例えば特開昭63-193230号公報に詳し
く記載されている。
装置の例としては例えば特開昭63-193230号公報に詳し
く記載されている。
キャッシュメモリは命令及びデータをメモリから読出
す場合には有効であるが、データをメモリにストアする
場合には問題がある。キャッシュメモリを使用した場合
にデータのストア処理を行う方法としては以下の2つの
手法が提案されている。
す場合には有効であるが、データをメモリにストアする
場合には問題がある。キャッシュメモリを使用した場合
にデータのストア処理を行う方法としては以下の2つの
手法が提案されている。
その第1はライトバック方式と呼ばれる手法で、デー
タの書込みの際にキャッシュメモリがヒットした場合に
はキャッシュメモリの内容のみを更新して主メモリの内
容は即座には更新せず、キャッシュメモリの内容の入換
え処理が必要になった際に、先にキャッシュメモリに書
換えられた内容を主メモリへも書戻す手法である。
タの書込みの際にキャッシュメモリがヒットした場合に
はキャッシュメモリの内容のみを更新して主メモリの内
容は即座には更新せず、キャッシュメモリの内容の入換
え処理が必要になった際に、先にキャッシュメモリに書
換えられた内容を主メモリへも書戻す手法である。
この手法はデータ処理装置がデータの書込み処理を高
速に行うことができる利点があるが、キャッシュメモリ
が書換えられてから主メモリが書換えられるまでの間に
キャッシュメモリと主メモリの内容が一致しない期間が
存在する。このため、キャッシュメモリを書換えたデー
タ処理装置以外のデバイスが主メモリをアクセスする場
合には主メモリでの書換えが済んでいないデータを操作
することを防ぐ為の制御あるいはキャッシュメモリがミ
スした際に入換えの対象となるエントリを主メモリに書
戻す制御が必要である等、キャッシュメモリ関連の制御
が複雑になる問題がある。またビデオRAMでは書換えら
れたデータが直ちにCRTの画面に反映される必要がある
ので、ライトバック方式は使用できない。
速に行うことができる利点があるが、キャッシュメモリ
が書換えられてから主メモリが書換えられるまでの間に
キャッシュメモリと主メモリの内容が一致しない期間が
存在する。このため、キャッシュメモリを書換えたデー
タ処理装置以外のデバイスが主メモリをアクセスする場
合には主メモリでの書換えが済んでいないデータを操作
することを防ぐ為の制御あるいはキャッシュメモリがミ
スした際に入換えの対象となるエントリを主メモリに書
戻す制御が必要である等、キャッシュメモリ関連の制御
が複雑になる問題がある。またビデオRAMでは書換えら
れたデータが直ちにCRTの画面に反映される必要がある
ので、ライトバック方式は使用できない。
第2の手法はライトスルーと呼ばれる方式で、データ
の書込みの際はキャッシュメモリのヒット、ミスには拘
わらず即座に主メモリの内容も更新する方式である。こ
の手法はキャッシュメモリの制御が比較的容易でビデオ
RAMにも対応可能な利点がある。しかし、データ書込み
が常に主メモリに対して行われるため、データ処理装置
はデータ書込み処理を高速で実行することは出来ない。
の書込みの際はキャッシュメモリのヒット、ミスには拘
わらず即座に主メモリの内容も更新する方式である。こ
の手法はキャッシュメモリの制御が比較的容易でビデオ
RAMにも対応可能な利点がある。しかし、データ書込み
が常に主メモリに対して行われるため、データ処理装置
はデータ書込み処理を高速で実行することは出来ない。
そこで従来メモリに対する書き込みデータをFIFO制御
のバッファメモリであるストアバッファに一時蓄え、主
メモリに対するデータの書き込み処理が終わる前にデー
タ処理装置が次の処理にうつることを可能にする手法が
用いられている。
のバッファメモリであるストアバッファに一時蓄え、主
メモリに対するデータの書き込み処理が終わる前にデー
タ処理装置が次の処理にうつることを可能にする手法が
用いられている。
ストアバッファを用いたデータ処理装置の例としては
例えば特開昭63-193230号公報及び特開平1-92840号公報
等に詳しく開示されている。
例えば特開昭63-193230号公報及び特開平1-92840号公報
等に詳しく開示されている。
[発明が解決しようとする課題] 上述のようなストアバッファを用いたデータ処理装置
では、データのストア処理が低速であってもデータ処理
装置の処理性能の低下を防ぐことが可能になる。
では、データのストア処理が低速であってもデータ処理
装置の処理性能の低下を防ぐことが可能になる。
しかし、従来のデータ処理装置ではストアバッファに
処理中のデータが複数存在している状態において、先に
ストアすべきデータのストア動作に際してバスエラーが
生じて例外が検出された場合,更にこの際に実行段階に
ある命令がブレイクポイントにヒットしてデバッグ関連
の例外を発生した場合等には例外処理ハンドラに渡すべ
き十分な内容の情報を提供できないという問題があっ
た。
処理中のデータが複数存在している状態において、先に
ストアすべきデータのストア動作に際してバスエラーが
生じて例外が検出された場合,更にこの際に実行段階に
ある命令がブレイクポイントにヒットしてデバッグ関連
の例外を発生した場合等には例外処理ハンドラに渡すべ
き十分な内容の情報を提供できないという問題があっ
た。
例えば特開平1-92840号公報に開示されたデータ処理
装置では、例外処理時にスタックに退避される実行中命
令の論理番地は1つしか用意されていない。このため、
ストアバッファの処理に際して例外を生じた命令の論理
アドレスをスタックに退避すると、デバッグ関連の例外
を生じた命令の論理アドレスが失われてしまうという問
題があった。
装置では、例外処理時にスタックに退避される実行中命
令の論理番地は1つしか用意されていない。このため、
ストアバッファの処理に際して例外を生じた命令の論理
アドレスをスタックに退避すると、デバッグ関連の例外
を生じた命令の論理アドレスが失われてしまうという問
題があった。
また、例外処理時にスタックに退避されるストア未処
理データ及びそのアドレスは1つしかなく、ストアバッ
ファに複数の未処理データを保持した状態で例外が発生
した場合に対処することができない欠点がある。
理データ及びそのアドレスは1つしかなく、ストアバッ
ファに複数の未処理データを保持した状態で例外が発生
した場合に対処することができない欠点がある。
また、特開昭63-193230号公報の発明でもストアバッ
ファと例外処理とに関連するいくつかの処理方法が示さ
れているが、ストア未処理データの処理方法に関する合
理的な解決方法は開示されていない。
ファと例外処理とに関連するいくつかの処理方法が示さ
れているが、ストア未処理データの処理方法に関する合
理的な解決方法は開示されていない。
[課題を解決するための手段] 本発明のデータ処理装置では上述のような従来のデー
タ処理装置が有する問題を解決するため、第1の発明で
はストアバッファに未処理のデータがあり且つ命令実行
ステージで命令が完了した時点で例外が発生した場合
は、ストアバッファの未処理のデータとそのデータに関
する命令のアドレスと実行ステージで実行完了段階にあ
る命令のアドレスとをスタックに退避する構成を採って
いる。
タ処理装置が有する問題を解決するため、第1の発明で
はストアバッファに未処理のデータがあり且つ命令実行
ステージで命令が完了した時点で例外が発生した場合
は、ストアバッファの未処理のデータとそのデータに関
する命令のアドレスと実行ステージで実行完了段階にあ
る命令のアドレスとをスタックに退避する構成を採って
いる。
また、本発明のデータ処理装置の第2の発明では、ス
トアバッファに未処理のデータが複数ある時点で例外が
発生した場合は、ストアバッファの未処理のデータそれ
ぞれに関して、ストアするデータとストア先アドレスと
ストア処理を行った命令のアドレスとをスタックに退避
する構成を採っている。
トアバッファに未処理のデータが複数ある時点で例外が
発生した場合は、ストアバッファの未処理のデータそれ
ぞれに関して、ストアするデータとストア先アドレスと
ストア処理を行った命令のアドレスとをスタックに退避
する構成を採っている。
また、本発明のデータ処理装置の第3の発明では、ス
トアバッファに未処理のデータが複数ある時点で例外が
発生した場合は、ストアバッファの未処理のデータそれ
ぞれに関して、ストアするデータとストア先アドレスと
ストア処理を行ために必要な情報とをスタックに退避す
る構成を採っている。
トアバッファに未処理のデータが複数ある時点で例外が
発生した場合は、ストアバッファの未処理のデータそれ
ぞれに関して、ストアするデータとストア先アドレスと
ストア処理を行ために必要な情報とをスタックに退避す
る構成を採っている。
また、本発明のデータ処理装置の第4の発明では、ス
トアバッファに未処理のデータが複数ある時点で例外が
発生してスタックに退避された複数の未処理データそれ
ぞれに関して、ストアするデータとストア先アドレスと
ストア処理を行うために必要な情報に基づいて未処理デ
ータそれぞれのライトリトライを行う命令を備えてい
る。
トアバッファに未処理のデータが複数ある時点で例外が
発生してスタックに退避された複数の未処理データそれ
ぞれに関して、ストアするデータとストア先アドレスと
ストア処理を行うために必要な情報に基づいて未処理デ
ータそれぞれのライトリトライを行う命令を備えてい
る。
また、本発明のデータ処理装置の第5の発明では、ス
トアバッファに未処理のデータが複数ある時点で例外が
発生した場合は、ストアバッファの未処理のデータそれ
ぞれに関して、ストアするデータとストア先アドレスと
ストア処理を行うために必要な情報と、更に未処理デー
タに関するデータの組が存在するか否かを示す情報とを
含む一連のデータを組にしてスタックに退避する例外処
理起動手段と、スタックに退避された各データの組をフ
ェッチする例外処理手段を備えている。
トアバッファに未処理のデータが複数ある時点で例外が
発生した場合は、ストアバッファの未処理のデータそれ
ぞれに関して、ストアするデータとストア先アドレスと
ストア処理を行うために必要な情報と、更に未処理デー
タに関するデータの組が存在するか否かを示す情報とを
含む一連のデータを組にしてスタックに退避する例外処
理起動手段と、スタックに退避された各データの組をフ
ェッチする例外処理手段を備えている。
[作用] 本発明のデータ処理装置の第1の発明では、ストアバ
ッファに未処理のデータがあり且つ命令実行ステージで
命令が完了した時点で例外が発生した場合は、ストアバ
ッファにある未処理のデータとそのデータに関する命令
のアドレスと実行ステージで実行完了段階にある命令の
アドレスとがスタックに退避されると共に、例外処理ハ
ンドラに両方の命令アドレスが引数として渡される。
ッファに未処理のデータがあり且つ命令実行ステージで
命令が完了した時点で例外が発生した場合は、ストアバ
ッファにある未処理のデータとそのデータに関する命令
のアドレスと実行ステージで実行完了段階にある命令の
アドレスとがスタックに退避されると共に、例外処理ハ
ンドラに両方の命令アドレスが引数として渡される。
また、本発明のデータ処理装置の第2の発明では、ス
トアバッファに未処理のデータが複数ある時点で例外が
発生した場合は、ストアバッファにある未処理のデータ
それぞれに関して、ストアするデータとストア先アドレ
スとストア処理を行った命令のアドレスとがスタックに
退避されることにより、例外処理ハンドラに未処理デー
タそれぞれについての命令アドレスが引数として渡され
る。
トアバッファに未処理のデータが複数ある時点で例外が
発生した場合は、ストアバッファにある未処理のデータ
それぞれに関して、ストアするデータとストア先アドレ
スとストア処理を行った命令のアドレスとがスタックに
退避されることにより、例外処理ハンドラに未処理デー
タそれぞれについての命令アドレスが引数として渡され
る。
また、本発明のデータ処理装置の第3の発明では、ス
トアバッファに未処理のデータが複数ある時点で例外が
発生した場合は、ストアバッファにある未処理のデータ
それぞれに関して、ストアするデータとストア先アドレ
スとストア処理を行うために必要な情報がスタックに退
避されることにより、未処理のデータのライトリトライ
に必要なすべての情報が引数として例外処理ハンドラに
渡される。
トアバッファに未処理のデータが複数ある時点で例外が
発生した場合は、ストアバッファにある未処理のデータ
それぞれに関して、ストアするデータとストア先アドレ
スとストア処理を行うために必要な情報がスタックに退
避されることにより、未処理のデータのライトリトライ
に必要なすべての情報が引数として例外処理ハンドラに
渡される。
また、本発明のデータ処理装置の第4の発明では、ス
トアバッファに未処理のデータが複数ある時点で例外が
発生してスタックに退避された複数の未処理データそれ
ぞれに関して、ストアするデータとストア先アドレスと
ストア処理を行うために必要な情報に基づいて未処理デ
ータそれぞれのライトリトライを行う命令が例外処理ハ
ンドラにより最後に実行されることにより、例外処理ハ
ンドラから例外を起動した命令のシーケンスに復帰す
る。
トアバッファに未処理のデータが複数ある時点で例外が
発生してスタックに退避された複数の未処理データそれ
ぞれに関して、ストアするデータとストア先アドレスと
ストア処理を行うために必要な情報に基づいて未処理デ
ータそれぞれのライトリトライを行う命令が例外処理ハ
ンドラにより最後に実行されることにより、例外処理ハ
ンドラから例外を起動した命令のシーケンスに復帰す
る。
また、本発明のデータ処理装置の第5の発明では、ス
トアバッファに未処理のデータが複数ある時点で例外が
発生した場合は、ストアバッファの未処理のデータそれ
ぞれに関して、ストアするデータとストア先アドレスと
ストア処理を行うために必要な情報と、更に未処理デー
タに関するデータの組が存在するか否かを示す情報とを
含む一連のデータを組にしてスタックに退避する動作が
再帰的に反復されることにより総ての未処理データがス
タックに退避され、スタックに退避されているメモリに
ストアされるべきデータとストア先アドレスとストア処
理を行うために必要な情報と更に未処理データに関する
データの組が存在するか否かを示す情報とを含む一連の
データの組がフェッチされ、更に未処理のデータの組が
存在するか否かを示す情報をチェックする動作が再帰的
に反復されることによりスタックに退避された未処理の
データの総てがフェッチされて例外処理が行われる。
トアバッファに未処理のデータが複数ある時点で例外が
発生した場合は、ストアバッファの未処理のデータそれ
ぞれに関して、ストアするデータとストア先アドレスと
ストア処理を行うために必要な情報と、更に未処理デー
タに関するデータの組が存在するか否かを示す情報とを
含む一連のデータを組にしてスタックに退避する動作が
再帰的に反復されることにより総ての未処理データがス
タックに退避され、スタックに退避されているメモリに
ストアされるべきデータとストア先アドレスとストア処
理を行うために必要な情報と更に未処理データに関する
データの組が存在するか否かを示す情報とを含む一連の
データの組がフェッチされ、更に未処理のデータの組が
存在するか否かを示す情報をチェックする動作が再帰的
に反復されることによりスタックに退避された未処理の
データの総てがフェッチされて例外処理が行われる。
[発明の実施例] 以下、本発明をその実施例を示す図面を参照して詳述
する。
する。
(1)「本発明のデータ処理装置を用いたシステムの構
成」 第6図に本発明のデータ処理装置を用いたシステムの
構成例を示す。
成」 第6図に本発明のデータ処理装置を用いたシステムの
構成例を示す。
この構成例では、本発明のデータ処理装置100,命令キ
ャッシュ106,データキャッシュ107及び108,主メモリ109
がアドレスバス101,データバス102,命令バス103,メモリ
アドレスバス104,メモリデータバス105が結合されてい
る。
ャッシュ106,データキャッシュ107及び108,主メモリ109
がアドレスバス101,データバス102,命令バス103,メモリ
アドレスバス104,メモリデータバス105が結合されてい
る。
アドレスバス101は本発明のデータ処理装置100から出
力されるアドレスを命令キャッシュ106とデータキャッ
シュ107,108とに入力する。命令バス103は命令キャッシ
ュ106から出力される命令コードを本発明のデータ処理
装置100に転送する。データバス102は本発明のデータ処
理装置100から出力されるデータをデータキャッシュ10
7,108に転送したり、データキャッシュ107,108から出力
されるデータを本発明のデータ処理装置100に転送した
りする。メモリアドレスバス104は命令キャッシュ106ま
たはデータキャッシュ107,108から出力されるアドレス
を主メモリ109に転送する。メモリデータバス105は主メ
モ109と命令キャッシュ106またはデータキャッシュ107,
108間での命令またはデータを転送する。
力されるアドレスを命令キャッシュ106とデータキャッ
シュ107,108とに入力する。命令バス103は命令キャッシ
ュ106から出力される命令コードを本発明のデータ処理
装置100に転送する。データバス102は本発明のデータ処
理装置100から出力されるデータをデータキャッシュ10
7,108に転送したり、データキャッシュ107,108から出力
されるデータを本発明のデータ処理装置100に転送した
りする。メモリアドレスバス104は命令キャッシュ106ま
たはデータキャッシュ107,108から出力されるアドレス
を主メモリ109に転送する。メモリデータバス105は主メ
モ109と命令キャッシュ106またはデータキャッシュ107,
108間での命令またはデータを転送する。
命令キャッシュ106及びデータキャッシュ107,108がミ
スした場合はそれぞれのキャッシュ106または107がメモ
リアドレスバス104とメモリデータバス105とのバス権を
調停して主メモリ109をアクセスする。
スした場合はそれぞれのキャッシュ106または107がメモ
リアドレスバス104とメモリデータバス105とのバス権を
調停して主メモリ109をアクセスする。
データキャッシュ107,108は本発明のデータ処理装置1
00の側では64ビットのバスに結合するために2つのチッ
プが協調して動作する。各データの64ビットそれぞれの
内の上位32ビットのデータをデータキャッシュ107が、
下位32ビットのデータをデータキャッシュ108が分担し
て受持つ。
00の側では64ビットのバスに結合するために2つのチッ
プが協調して動作する。各データの64ビットそれぞれの
内の上位32ビットのデータをデータキャッシュ107が、
下位32ビットのデータをデータキャッシュ108が分担し
て受持つ。
以下、本発明のデータ処理装置100の命令体系及び処
理機構について最初に既述し、次に例外処理の方法及び
オペランドストア動作の詳細を説明する。
理機構について最初に既述し、次に例外処理の方法及び
オペランドストア動作の詳細を説明する。
(2)「本発明のデータ処理装置の命令フォーマット」 本発明のデータ処理装置の命令は16ビット単位で可変
長となっており、奇数バイト長の命令はない。
長となっており、奇数バイト長の命令はない。
本発明のデータ処理装置では高頻度に使用される命令
を短いフォーマットとするため、特に工夫された命令フ
ォーマット体系を有する。例えば、2オペランド命令に
対して、基本的に“4バイト+拡張部”の構成を有して
総てのアドレッシングモードが利用可能な一般形フォー
マットと、高頻度の命令及びアドレッシングモードのみ
を使用可能な短縮形フォーマットとの2つのフォーマッ
トを有する。
を短いフォーマットとするため、特に工夫された命令フ
ォーマット体系を有する。例えば、2オペランド命令に
対して、基本的に“4バイト+拡張部”の構成を有して
総てのアドレッシングモードが利用可能な一般形フォー
マットと、高頻度の命令及びアドレッシングモードのみ
を使用可能な短縮形フォーマットとの2つのフォーマッ
トを有する。
第9図から第13図に示す本発明のデータ処理装置の命
令フォーマット中に現われる記号の意味は以下の通りで
ある。
令フォーマット中に現われる記号の意味は以下の通りで
ある。
−:オペレーションコードが入る部分 Ea:8ビットの一般形のアドレッシングモードでオペラン
ドが指定される部分 Sh:6ビットの短縮形のアドレッシングモードでオペラン
ドが指定される部分 Rn:レジスタファイル上のオペランドがレジスタ番号で
指定される部分 フォーマットは、第9図に示す如く、右側がLSB側で
且つ高いアドレスになっている。
ドが指定される部分 Sh:6ビットの短縮形のアドレッシングモードでオペラン
ドが指定される部分 Rn:レジスタファイル上のオペランドがレジスタ番号で
指定される部分 フォーマットは、第9図に示す如く、右側がLSB側で
且つ高いアドレスになっている。
アドレスNとアドレスN+1との2バイトを見ないと
命令フォーマットが判別できないようになっているが、
これは、命令が必ず16ビット(ハーフワード)単位でフ
ェッチ及びデコードされることを前提としているからで
ある。
命令フォーマットが判別できないようになっているが、
これは、命令が必ず16ビット(ハーフワード)単位でフ
ェッチ及びデコードされることを前提としているからで
ある。
本発明のデータ処理装置の命令ではいずれのフォーマ
ットの場合も、各オペランドのEaまたはShの拡張部は必
ずそのEaまたはShの基本部を含む16ビット(ハーフワー
ド)の直後に置かれる。これは、命令により暗黙に指定
される即値データ及び命令の拡張部に優先する。従っ
て、4バイト以上の命令では、Eaの拡張部により命令の
オペレーションコードが分断される場合がある。
ットの場合も、各オペランドのEaまたはShの拡張部は必
ずそのEaまたはShの基本部を含む16ビット(ハーフワー
ド)の直後に置かれる。これは、命令により暗黙に指定
される即値データ及び命令の拡張部に優先する。従っ
て、4バイト以上の命令では、Eaの拡張部により命令の
オペレーションコードが分断される場合がある。
また、後述する如く、多段間接モードによりEaの拡張
部に更に拡張部が付加される場合にも、次の命令オペコ
ードよりもそちらの方が優先される。
部に更に拡張部が付加される場合にも、次の命令オペコ
ードよりもそちらの方が優先される。
例えば、第1ハーフワードにEa1を含み、第2ハーフ
ワードにEa2を含み、第3ハーフワードまである6バイ
ト命令の場合を考える。Ea1に多段間接モードを使用し
たために通常の拡張部の他に多段間接モードの拡張部も
付加されるものとする。この際、実際の命令ビットパタ
ーンは、命令の第1ハーフワード(Ea1の基本部を含
む)、Ea1の拡張部、Ea1の多段間接モード拡張部、命令
の第2ハーフワード(Ea2の基本部を含む)、Ea2の拡張
部、命令の第3ハーフワードの順となる。
ワードにEa2を含み、第3ハーフワードまである6バイ
ト命令の場合を考える。Ea1に多段間接モードを使用し
たために通常の拡張部の他に多段間接モードの拡張部も
付加されるものとする。この際、実際の命令ビットパタ
ーンは、命令の第1ハーフワード(Ea1の基本部を含
む)、Ea1の拡張部、Ea1の多段間接モード拡張部、命令
の第2ハーフワード(Ea2の基本部を含む)、Ea2の拡張
部、命令の第3ハーフワードの順となる。
(2.1)「短縮形2オペランド命令」 第10図は2オペランド命令の短縮形フォーマットを示
す模式図である。
す模式図である。
このフォーマットには、ソースオペランド側がメモリ
となるL-formatとデスティネーションオペランド側がメ
モリとなるS-formatとがある。
となるL-formatとデスティネーションオペランド側がメ
モリとなるS-formatとがある。
L-formatでは、Shはソースオペランドの指定フィール
ド、Rhはデスティネーションオペランドのレジスタの指
定フィールド、RRはShのオペランドサイズの指定をそれ
ぞれ表す。
ド、Rhはデスティネーションオペランドのレジスタの指
定フィールド、RRはShのオペランドサイズの指定をそれ
ぞれ表す。
レジスタ上に置かれたデスティネーションオペランド
のサイズは32ビットに固定されている。レジスタ側とメ
モリ側とのサイズが異なり、ソース側のサイズが小さい
場合に符号拡張が行なわれる。
のサイズは32ビットに固定されている。レジスタ側とメ
モリ側とのサイズが異なり、ソース側のサイズが小さい
場合に符号拡張が行なわれる。
S-formatではShはデスティネーションオペランドの指
定フィールド、Rnはソースオペランドのレジスタ指定フ
ィールド、RRはShのオペランドサイズの指定をそれぞれ
表す。
定フィールド、Rnはソースオペランドのレジスタ指定フ
ィールド、RRはShのオペランドサイズの指定をそれぞれ
表す。
レジスタ上に置かれたソースオペランドのサイズは32
ビットに固定されている。レジスタ側とメモリ側とのサ
イズが異なり、ソース側のサイズが大きい場合に、溢れ
た部分の切捨てとオーバーフローチェックとが行われ
る。
ビットに固定されている。レジスタ側とメモリ側とのサ
イズが異なり、ソース側のサイズが大きい場合に、溢れ
た部分の切捨てとオーバーフローチェックとが行われ
る。
(2.2)「一般形1オペランド命令」 第11図は1オペランド命令の一般形フォーマット(G1
-format)を示す模式図である。
-format)を示す模式図である。
MMはオペランドサイズの指定フィールドである。一部
のG1-format命令では、Eaの拡張部以外にも拡張部を有
する。また、MMを使用しない場合もある。
のG1-format命令では、Eaの拡張部以外にも拡張部を有
する。また、MMを使用しない場合もある。
(2.3)「一般形2オペランド命令」 第12図は2オペランド命令の一般形フォーマットを示
す模式図である。
す模式図である。
このフォーマットに含まれるのは、8ビットで指定さ
れる一般形アドレッシングモードのオペランドが最大2
つ存在する命令である。オペランドの総数自体は3つ以
上になる場合がある。
れる一般形アドレッシングモードのオペランドが最大2
つ存在する命令である。オペランドの総数自体は3つ以
上になる場合がある。
EaMはデスティネーションオペランドの指定フィール
ド、MMはデスティネーションオペランドサイズの指定フ
ィールド、EaRはソースオペランド指定フィールド、RR
はソースオペランドサイズの指定フィールドをそれぞれ
示している。
ド、MMはデスティネーションオペランドサイズの指定フ
ィールド、EaRはソースオペランド指定フィールド、RR
はソースオペランドサイズの指定フィールドをそれぞれ
示している。
一部のG-format命令では、EaM及びEaRの拡張部以外に
も拡張部を有する。
も拡張部を有する。
第13図はショートブランチ命令のフォーマットを示す
模式図である。
模式図である。
ccccは分岐条件指定フィールド、disp:8はジャンプ先
との変位指定フィールドをそれぞれ示している。
との変位指定フィールドをそれぞれ示している。
本発明のデータ処理装置では8ビットで変位を指定す
る場合には、ビットパターンでの指定値を2倍して変化
値とする。
る場合には、ビットパターンでの指定値を2倍して変化
値とする。
(2.4)「アドレッシングモード」 本発明のデータ処理装置の命令のアドレッシングモー
ド指定方法には、レジスタを含めて6ビットで指定する
短縮形と、8ビットで指定する一般形とがある。
ド指定方法には、レジスタを含めて6ビットで指定する
短縮形と、8ビットで指定する一般形とがある。
未定義のアドレッシングモードを指定した場合、ある
いは意味的に考えて明らかに不合理なアドレッシングモ
ードの組合わせが指定された場合には、未定義命令を実
行した場合と同じく予約命令例外が発生され、例外処理
が起動される。
いは意味的に考えて明らかに不合理なアドレッシングモ
ードの組合わせが指定された場合には、未定義命令を実
行した場合と同じく予約命令例外が発生され、例外処理
が起動される。
これに該当するのは、デスティネーションが即値モー
ドである場合、アドレス計算を伴うべきアドレシングモ
ード指定フィールドで即値モードが使用された場合等で
ある。
ドである場合、アドレス計算を伴うべきアドレシングモ
ード指定フィールドで即値モードが使用された場合等で
ある。
第14図から第24図に示すフォーマットの模式図中で使
用されている記号の意味は以下の通りである。
用されている記号の意味は以下の通りである。
Rn:レジスタ指定 (Sh):6ビットの短縮形アドレッシングモードでの指定
方法 (Ea):8ビットの一般形アドレッシングモードでの指定
方法 フォーマットを示す模式図中で点線で囲まれた部分は
拡張部を示す。
方法 (Ea):8ビットの一般形アドレッシングモードでの指定
方法 フォーマットを示す模式図中で点線で囲まれた部分は
拡張部を示す。
(2.4.1)「基本アドレッシングモード」 本発明のデータ処理装置の命令では種々のアドレッシ
ングモードをサポートする。その内の本発明のデータ処
理装置でサポートする基本アドレッシングモードには、
レジスタ直接モード、レジスタ間接モード、レジスタ相
対間接モード、即値モード、絶対モード、PC相対間接モ
ード、スタックポップモード及びスタックプッシュモー
ドがある。
ングモードをサポートする。その内の本発明のデータ処
理装置でサポートする基本アドレッシングモードには、
レジスタ直接モード、レジスタ間接モード、レジスタ相
対間接モード、即値モード、絶対モード、PC相対間接モ
ード、スタックポップモード及びスタックプッシュモー
ドがある。
レジスタ直接モードは、レジスタの内容をそのままオ
ペランドとする。フォーマットの模式図を第14図に示
す。図中、Rnは汎用レジスタまたはFPUレジスタの番号
を示す。
ペランドとする。フォーマットの模式図を第14図に示
す。図中、Rnは汎用レジスタまたはFPUレジスタの番号
を示す。
レジスタ間接モードは、汎用レジスタの内容をアドレ
スとするメモリの内容をオペランドとする。フォーマッ
トの模式図を第15図に示す。図中、Rnは汎用レジスタの
番号を示す。
スとするメモリの内容をオペランドとする。フォーマッ
トの模式図を第15図に示す。図中、Rnは汎用レジスタの
番号を示す。
レジスタ相対間接モードは、ディスプレースメント値
が16ビットであるか32ビットであるかにより2種類に分
かれる。それぞれ、汎用レジスタの内容に16ビットまた
は32ビットのディスプレースメント値を加えた値をアド
レスとするメモリの内容をオペランドとする。フォーマ
ットの模式図を第16図に示す。図中、Rnは汎用レジスタ
の番号を示す。disp:16とdisp:32とは、それぞれ、16ビ
ットのディスプレースメント値、32ビットのディスプレ
ースメント値を示す。ディスプレースメント値は符号付
きとして扱われる。
が16ビットであるか32ビットであるかにより2種類に分
かれる。それぞれ、汎用レジスタの内容に16ビットまた
は32ビットのディスプレースメント値を加えた値をアド
レスとするメモリの内容をオペランドとする。フォーマ
ットの模式図を第16図に示す。図中、Rnは汎用レジスタ
の番号を示す。disp:16とdisp:32とは、それぞれ、16ビ
ットのディスプレースメント値、32ビットのディスプレ
ースメント値を示す。ディスプレースメント値は符号付
きとして扱われる。
即値モードは、命令コード中に指定されるビットパタ
ンをそのまま2進数と見なしてオペランドとする。フォ
ーマットの模式図を第17図に示す。図中、imm dataは
即値を示し、そのサイズはオペランドサイズとして命令
中で指定される。
ンをそのまま2進数と見なしてオペランドとする。フォ
ーマットの模式図を第17図に示す。図中、imm dataは
即値を示し、そのサイズはオペランドサイズとして命令
中で指定される。
絶対モードは、アドレス値が16ビットで示されるか32
ビットで示されるかにより2種類に分かれる。それぞれ
命令コード中で指定される16ビットまたは32ビットのビ
ットパタンをアドレスとしたメモリの内容をオペランド
とする。フォーマットの模式図を第18図に示す。図中、
abs:16とabs:32とはそれぞれ16ビット,32ビットのアド
レス値を示す。abs:16でアドレスが示される場合は指定
されたアドレス値を32ビットに符号拡張する。
ビットで示されるかにより2種類に分かれる。それぞれ
命令コード中で指定される16ビットまたは32ビットのビ
ットパタンをアドレスとしたメモリの内容をオペランド
とする。フォーマットの模式図を第18図に示す。図中、
abs:16とabs:32とはそれぞれ16ビット,32ビットのアド
レス値を示す。abs:16でアドレスが示される場合は指定
されたアドレス値を32ビットに符号拡張する。
PC相対間接モードは、ディスプレースメント値が16ビ
ットか32ビットかにより2種類に分かれる。それぞれプ
ログラムカウンタの内容に16ビットまたは32ビットのデ
ィスプレースメント値を加えた値をアドレスとするメモ
リの内容をオペランドとする。フォーマットの模式図を
第19図に示す。図中、disp:16とdisp:32とはそれぞれ16
ビットのディスプレースメント値,32ビットのディスプ
レースメント値を示す。ディスプレースメント値は符号
付きとして扱われる。PC相対間接モードにおいて参照さ
れるプログラムカウンタの値は、そのオペランドを含む
命令の先頭アドレスである。多段間接アドレッシングモ
ードにおいてプログラムカウンタの値が参照される場合
にも、同様に命令先頭のアドレスがPC相対の基準値とし
て使用される。
ットか32ビットかにより2種類に分かれる。それぞれプ
ログラムカウンタの内容に16ビットまたは32ビットのデ
ィスプレースメント値を加えた値をアドレスとするメモ
リの内容をオペランドとする。フォーマットの模式図を
第19図に示す。図中、disp:16とdisp:32とはそれぞれ16
ビットのディスプレースメント値,32ビットのディスプ
レースメント値を示す。ディスプレースメント値は符号
付きとして扱われる。PC相対間接モードにおいて参照さ
れるプログラムカウンタの値は、そのオペランドを含む
命令の先頭アドレスである。多段間接アドレッシングモ
ードにおいてプログラムカウンタの値が参照される場合
にも、同様に命令先頭のアドレスがPC相対の基準値とし
て使用される。
スタックポップモードは、SP(スタックポインタ)の
内容をアドレスとするメモリの内容をオペランドとす
る。オペランドアクセス後、SPをオペランドサイズだけ
インクリメントする。例えば、32ビットデータを扱う場
合は、オペランドアクセス後にSPが+4だけ更新され
る。8,16,64ビットのサイズのオペランドに対するスタ
ックポップモードの指定も可能であり、それぞれSPが+
1,+2,+8だけ更新される。フォーマットの模式図を第
20図に示す。オペランドに対しスタックポップモードが
意味を持たないものについては、予約命令例外が発生さ
れる。予約命令例外となるのは具体的には、writeオペ
ランド及びread-modify-writeオペランドに対するスタ
ックポップモード指定である。
内容をアドレスとするメモリの内容をオペランドとす
る。オペランドアクセス後、SPをオペランドサイズだけ
インクリメントする。例えば、32ビットデータを扱う場
合は、オペランドアクセス後にSPが+4だけ更新され
る。8,16,64ビットのサイズのオペランドに対するスタ
ックポップモードの指定も可能であり、それぞれSPが+
1,+2,+8だけ更新される。フォーマットの模式図を第
20図に示す。オペランドに対しスタックポップモードが
意味を持たないものについては、予約命令例外が発生さ
れる。予約命令例外となるのは具体的には、writeオペ
ランド及びread-modify-writeオペランドに対するスタ
ックポップモード指定である。
スタックプッシュモードは、SPの内容をオペランドサ
イズだけデクリメントした内容をアドレスとするメモリ
の内容をオペランドとする。スタックプッシュモードで
はオペランドアクセス前にSPがデクリメントされる。例
えば、32ビットデータを扱う場合は、オペランドアクセ
ス前にSPが−4だけ更新される。8,16,64ビットのサイ
ズのオペランドに対するスタックプッシュモードの指定
も可能であり、それぞれSPが−1,−2,−8だけ更新され
る。フォーマットの模式図を第21図に示す。オペランド
に対してスタックプッシュモードが意味を持たないもの
に対しては、予約命令例外が発生される予約命令例外と
なるのは具体的には、readオペランド及びread-modify-
writeオペランドに対すスタックプッシュモード指定で
ある。
イズだけデクリメントした内容をアドレスとするメモリ
の内容をオペランドとする。スタックプッシュモードで
はオペランドアクセス前にSPがデクリメントされる。例
えば、32ビットデータを扱う場合は、オペランドアクセ
ス前にSPが−4だけ更新される。8,16,64ビットのサイ
ズのオペランドに対するスタックプッシュモードの指定
も可能であり、それぞれSPが−1,−2,−8だけ更新され
る。フォーマットの模式図を第21図に示す。オペランド
に対してスタックプッシュモードが意味を持たないもの
に対しては、予約命令例外が発生される予約命令例外と
なるのは具体的には、readオペランド及びread-modify-
writeオペランドに対すスタックプッシュモード指定で
ある。
(2.4.2)「多段間接アドレッシングモード」 複雑なアドレッシングも、基本的には加算と間接参照
の組み合わせに分解することができる。従って、加算と
間接参照のオペレーションとをアドレッシングのプリミ
ティブとして与えておき、それを任意に組合わせること
が出来れば、いかに複雑なアドレッシングモードをも実
現することが出来る。本発明のデータ処理装置の命令の
多段間接アドレッシングモードはこのような考え方に立
脚したアドレッシングモードである。複雑なアドレッシ
ングモードは、モジュール間のデータ参照及びAI言語の
処理系に特に有用である。
の組み合わせに分解することができる。従って、加算と
間接参照のオペレーションとをアドレッシングのプリミ
ティブとして与えておき、それを任意に組合わせること
が出来れば、いかに複雑なアドレッシングモードをも実
現することが出来る。本発明のデータ処理装置の命令の
多段間接アドレッシングモードはこのような考え方に立
脚したアドレッシングモードである。複雑なアドレッシ
ングモードは、モジュール間のデータ参照及びAI言語の
処理系に特に有用である。
多段間接アドレッシングモードを指定する際、基本ア
ドレッシングモード指定フィールドでは、レジスタベー
ス多段間接モード,PCベース多段間接モード及び絶対ベ
ース多段間接モードの3種類の指定方法の内のいずれか
1つを指定する。
ドレッシングモード指定フィールドでは、レジスタベー
ス多段間接モード,PCベース多段間接モード及び絶対ベ
ース多段間接モードの3種類の指定方法の内のいずれか
1つを指定する。
レジスタベース多段間接モードは、汎用レジスタの値
を拡張する多段間接アドレッシングのベース値とするア
ドレッシングモードである。フォーマットの模式図を第
22図に示す。図中、Rnは汎用レジスタの番号を示す。
を拡張する多段間接アドレッシングのベース値とするア
ドレッシングモードである。フォーマットの模式図を第
22図に示す。図中、Rnは汎用レジスタの番号を示す。
PCベース多段間接モードは、プログラムカウンタの値
を拡張する多段間接アドレッシングのベース値とするア
ドレッシングモードである。フォーマットの模式図を第
23図に示す。
を拡張する多段間接アドレッシングのベース値とするア
ドレッシングモードである。フォーマットの模式図を第
23図に示す。
絶対ベース多段間接モードは、ゼロを拡張する多段間
接アドレッシングのベース値とするアドレッシングモー
ドである。フォーマットの模式図を第24図に示す。
接アドレッシングのベース値とするアドレッシングモー
ドである。フォーマットの模式図を第24図に示す。
拡張される多段間接モード指定フィールドは、16ビッ
トを単位としており、これが任意回反復される。1段の
多段間接モードにより、ディスプレースメントの加算,
インデクスレジスタのスケーリング(×1,×2,×4,×
8)と加算,メモリの間接参照が行われる。多段間接モ
ードのフォーマットの模式図を第25図に示す。図中の各
フィールドは以下に示す意味を有する。
トを単位としており、これが任意回反復される。1段の
多段間接モードにより、ディスプレースメントの加算,
インデクスレジスタのスケーリング(×1,×2,×4,×
8)と加算,メモリの間接参照が行われる。多段間接モ
ードのフォーマットの模式図を第25図に示す。図中の各
フィールドは以下に示す意味を有する。
E=0:多段間接モード継続 E=1:アドレス計算終了 tmp==>address of operand I=0:メモリ間接参照なし tmp+disp+Rx*Scale==>tmp I=1:メモリ間接参照あり mem[tmp+disp+Rx*Scale]==>tmp M=0:〈Rx〉をインデクスとして使用 M=1:特殊なインデクス 〈Rx〉=0 インデクス値を加算しない(Rx=
0) 〈Rx〉=1 プログラムカウンタを インデクス値として使用(Rx=PC) 〈Rx〉=2〜reserved D=0:多段間接モード中の4ビットのフィールドd4の値
を4倍してディスプレースメント値とし、これを加算す
る。d4は符号付きとして扱い、オペランドのサイズとは
関係なく必ず4倍して使用する D=1:多段間接モードの拡張部で指定されたdispx(16/
32ビット)をディスプレースメント値とし、これを加算
する。
0) 〈Rx〉=1 プログラムカウンタを インデクス値として使用(Rx=PC) 〈Rx〉=2〜reserved D=0:多段間接モード中の4ビットのフィールドd4の値
を4倍してディスプレースメント値とし、これを加算す
る。d4は符号付きとして扱い、オペランドのサイズとは
関係なく必ず4倍して使用する D=1:多段間接モードの拡張部で指定されたdispx(16/
32ビット)をディスプレースメント値とし、これを加算
する。
拡張部のサイズはd4フィールドで指定する d4=0001 dispxは16ビット d4=0010 dispxは32ビット XX :インデクスのスケール(Scale=1/2/4/8) プログラムカウンタに対して×2,×4,×8のスケーリ
ングを行なった場合には、その段の処理終了後の中間値
(tmp)として不定値が入る。
ングを行なった場合には、その段の処理終了後の中間値
(tmp)として不定値が入る。
この多段間接モードによって得られる実効アドレスは
予測できない値となるが、例外は発生しない。プログラ
ムカウンタに対するスケーリングの指定は行なってはい
けない。
予測できない値となるが、例外は発生しない。プログラ
ムカウンタに対するスケーリングの指定は行なってはい
けない。
多段間接モードによる命令フォーマットのバリエーシ
ョンを第26図及び第27図の模式図に示す。
ョンを第26図及び第27図の模式図に示す。
第26図は多段間接モードが継続するか終了するかのバ
リエーションを示す。第27図はディスプレースメントの
サイズのバリエーションを示す。
リエーションを示す。第27図はディスプレースメントの
サイズのバリエーションを示す。
任意段数の多段間接モードが利用できれば、コンパイ
ラの中で段数による場合分けが不要になるので、コンパ
イラの負担が軽減されるというメリットがある。多段の
間接参照の頻度が非常に少ないとしても、コンパイラと
しては必ず正しいコードを発生できなければならないか
らである。このため、フォーマット上では任意の段数を
可能としている。
ラの中で段数による場合分けが不要になるので、コンパ
イラの負担が軽減されるというメリットがある。多段の
間接参照の頻度が非常に少ないとしても、コンパイラと
しては必ず正しいコードを発生できなければならないか
らである。このため、フォーマット上では任意の段数を
可能としている。
(3)「本発明のデータ処理装置の機能ブロックの構
成」 第4図は本発明のデータ処理装置の一構成例を示すブ
ロック図である。
成」 第4図は本発明のデータ処理装置の一構成例を示すブ
ロック図である。
本発明のデータ処理装置の内部を機能的に大きく分け
ると、命令入力部110,命令フェッチ部111,命令デコード
部112,第1マイクロROM部113,第2マイクロROM部114,オ
ペランドアドレス計算部115,PC計算部116,整数演算部11
7,浮動小数点演算部118,アドレス入出力部119,オペラン
ドアクセス部120,データ入出力部121に分かれる。
ると、命令入力部110,命令フェッチ部111,命令デコード
部112,第1マイクロROM部113,第2マイクロROM部114,オ
ペランドアドレス計算部115,PC計算部116,整数演算部11
7,浮動小数点演算部118,アドレス入出力部119,オペラン
ドアクセス部120,データ入出力部121に分かれる。
アドレス入出力部119をアドレスバス101に結合し、デ
ータ入出力部121をデータバス102に結合し、命令入力部
110を命令バス103に結合することにより前述の第6図に
示すシステム構成をとることができる。
ータ入出力部121をデータバス102に結合し、命令入力部
110を命令バス103に結合することにより前述の第6図に
示すシステム構成をとることができる。
(3.1)「命令入力部」 命令入力部110は外部の命令バス103から32ビットごと
に命令コードを本発明にデータ処理装置へ入力する。
に命令コードを本発明にデータ処理装置へ入力する。
命令キャッシュ106のアクセス方法には、1つのアド
レスに対して32ビットの命令コードをアクセスする標準
アクセスモードと1つのアドレスに対して4回連続で32
ビットの命令コードをアクセスするクワッドアクセスモ
ードとがあり、いずれの場合も命令入力部110は入力し
た命令コードを命令フェッチ部111へ出力する。
レスに対して32ビットの命令コードをアクセスする標準
アクセスモードと1つのアドレスに対して4回連続で32
ビットの命令コードをアクセスするクワッドアクセスモ
ードとがあり、いずれの場合も命令入力部110は入力し
た命令コードを命令フェッチ部111へ出力する。
(3.2)「命令フェッチ部」 命令フェッチ部111には命令アドレスのアドレス変換
機構,内蔵命令キャッシュ,命令用TLB,命令キューとそ
れらの制御部がある。
機構,内蔵命令キャッシュ,命令用TLB,命令キューとそ
れらの制御部がある。
命令フェッチ部111は、次にフェッチすべき命令の論
理アドレスを物理アドレスに変換し、内蔵命令キャッシ
ュから命令コードをフェッチし、命令デコード部112へ
出力する。内蔵命令キャッシュがミスした場合には、ア
ドレス入出力部119へ物理アドレスを出力して外部への
命令アクセスを要求し、命令入力部110を通じて入力さ
れた命令コードを内蔵命令キャッシュに登録する。
理アドレスを物理アドレスに変換し、内蔵命令キャッシ
ュから命令コードをフェッチし、命令デコード部112へ
出力する。内蔵命令キャッシュがミスした場合には、ア
ドレス入出力部119へ物理アドレスを出力して外部への
命令アクセスを要求し、命令入力部110を通じて入力さ
れた命令コードを内蔵命令キャッシュに登録する。
次にフェッチすべき命令の論理アドレスは命令キュー
に入力すべき命令の論理アドレスとして専用のカウンタ
で計算される。ジャンプが生じた場合には、新たな命令
の論理アドレスがオペランドアドレス計算部115,PC計算
部116あるいは整数演算部117から転送されてくる。
に入力すべき命令の論理アドレスとして専用のカウンタ
で計算される。ジャンプが生じた場合には、新たな命令
の論理アドレスがオペランドアドレス計算部115,PC計算
部116あるいは整数演算部117から転送されてくる。
命令用TLBがミスした場合のページングによるアドレ
ス変換及び命令用TLB更新も命令フェツチ部111の内部の
制御回路により行われる。
ス変換及び命令用TLB更新も命令フェツチ部111の内部の
制御回路により行われる。
また、本発明のデータ処理装置がバスウォッチモード
である場合は、アドレス入出力部119を通じて入力され
た物理アドレスがヒットする内蔵命令キャッシュのエン
トリを無効化する。
である場合は、アドレス入出力部119を通じて入力され
た物理アドレスがヒットする内蔵命令キャッシュのエン
トリを無効化する。
(3.3)「命令デコード部」 命令デコード部112では基本的に16ビット(ハーフワ
ード)単位に命令コードをデコードする。
ード)単位に命令コードをデコードする。
このブロックには第1ハーフワードに含まれるオペレ
ーションコードをデコードするFHWデコーダ,第2及び
第3ハーフワードに含まれるオペレーションコードをデ
コードするNFHWデコーダ,アドレッシングモードをデコ
ードするアドレッシングモードデコーダが含まれる。
ーションコードをデコードするFHWデコーダ,第2及び
第3ハーフワードに含まれるオペレーションコードをデ
コードするNFHWデコーダ,アドレッシングモードをデコ
ードするアドレッシングモードデコーダが含まれる。
更に、FHWデコーダ及びNFHWデコーダの出力を更にデ
コードしてマイクロROMのエントリアドレスを計算する
第2デコーダ,条件分岐命令の分岐予測を行う分岐予測
機構,オペランドアドレス計算の際のパイプラインコン
フリクトをチェックするアドレス計算コンフリクトチェ
ック機構も含まれる。
コードしてマイクロROMのエントリアドレスを計算する
第2デコーダ,条件分岐命令の分岐予測を行う分岐予測
機構,オペランドアドレス計算の際のパイプラインコン
フリクトをチェックするアドレス計算コンフリクトチェ
ック機構も含まれる。
命令デコード部112は命令フェッチ部111から出力され
た命令コードを1クロックにつき0〜6バイトデコード
する。デコード結果の内の、整数演算部117での演算に
関する情報が第1マイクロROM部113へ、浮動小数点演算
部118での演算に関する情報が第2マイクロROM部114
へ、オペランドアドレス計算に関係する情報がオペラン
ドアドレス計算部115へ、PC計算に関係する情報がPC計
算部116へそれぞれ出力される。
た命令コードを1クロックにつき0〜6バイトデコード
する。デコード結果の内の、整数演算部117での演算に
関する情報が第1マイクロROM部113へ、浮動小数点演算
部118での演算に関する情報が第2マイクロROM部114
へ、オペランドアドレス計算に関係する情報がオペラン
ドアドレス計算部115へ、PC計算に関係する情報がPC計
算部116へそれぞれ出力される。
(3.4)「第1マイクロROM部」 第1マイクロROM部113には整数演算部117の制御を行
う種々のマイクロプログラムルーチンが格納されている
マイクロROM,マイクロシーケンサ,マイクロ命令デコー
ダ等が含まれる。
う種々のマイクロプログラムルーチンが格納されている
マイクロROM,マイクロシーケンサ,マイクロ命令デコー
ダ等が含まれる。
マイクロ命令はマイクロROMから1クロックに1度読
出される。マイクロシーケンサは命令実行に関するマイ
クロプログラム実行のためのシーケンス処理の他に、例
外,割込,トラップ(この3つ併せてEITと総称する)
の受付けと各EITに対応するマイクロプログラムのシー
ケンス処理も行う。
出される。マイクロシーケンサは命令実行に関するマイ
クロプログラム実行のためのシーケンス処理の他に、例
外,割込,トラップ(この3つ併せてEITと総称する)
の受付けと各EITに対応するマイクロプログラムのシー
ケンス処理も行う。
第1マイクロROM部113へは命令コードに依存しない外
部割込みや整数演算実行結果によるマイクロプログラム
の分岐条件も入力される。
部割込みや整数演算実行結果によるマイクロプログラム
の分岐条件も入力される。
マイクロデコーダの出力は主に整数演算部117に対し
て出力されるが、ジャンプ命令の実行時及び例外受付時
には一部の情報を他の機能ブロックへも出力する。
て出力されるが、ジャンプ命令の実行時及び例外受付時
には一部の情報を他の機能ブロックへも出力する。
(3.5)「第2マイクロROM部」 第2マイクロROM部114には浮動小数点演算部118の制
御を行う種々のマイクロプログラムルーチンが格納され
ているマイクロROM,マイクロシーケンサ,マイクロ命令
デコーダ等が含まれる。
御を行う種々のマイクロプログラムルーチンが格納され
ているマイクロROM,マイクロシーケンサ,マイクロ命令
デコーダ等が含まれる。
マイクロ命令はマイクロROMから1クロックに1度読
出される。マイクロシーケンサはマイクロプログラムで
示されるシーケンス処理の他に、浮動小数点演算に関係
する例外の処理も行い、マスクされていない浮動小数点
例外が検出された場合には第1マイクロROM部113へ例外
処理を要求する。第2マイクロROM部114のマイクロシー
ケンサは第1マイクロROM部113のマイクロシーケンサと
並列に動作し、整数演算部117と並列に浮動小数点演算
部118を制御する。
出される。マイクロシーケンサはマイクロプログラムで
示されるシーケンス処理の他に、浮動小数点演算に関係
する例外の処理も行い、マスクされていない浮動小数点
例外が検出された場合には第1マイクロROM部113へ例外
処理を要求する。第2マイクロROM部114のマイクロシー
ケンサは第1マイクロROM部113のマイクロシーケンサと
並列に動作し、整数演算部117と並列に浮動小数点演算
部118を制御する。
第2マイクロROM部113には浮動小数点演算実行結果に
よるフラッグ情報も入力される。
よるフラッグ情報も入力される。
マイクロデコーダの出力は主に浮動小数点演算部118
に対して出力されるが、浮動小数点演算に関係する例外
の検出等の一部の情報は他の機能ブロックへも出力され
る。
に対して出力されるが、浮動小数点演算に関係する例外
の検出等の一部の情報は他の機能ブロックへも出力され
る。
(3.6)「オペランドアドレス計算部」 オペランドアドレス計算部115は、命令デコード部112
のアドレスデコーダ等から出力されたオペランドアドレ
ス計算に関係する情報によりハードワイヤード制御され
る。このブロックではメモリ間接アドレシングのための
メモリアクセス以外のオペランドのアドレス計算とジャ
ンプ命令のジャンプ先アドレスの計算とが行われる。
のアドレスデコーダ等から出力されたオペランドアドレ
ス計算に関係する情報によりハードワイヤード制御され
る。このブロックではメモリ間接アドレシングのための
メモリアクセス以外のオペランドのアドレス計算とジャ
ンプ命令のジャンプ先アドレスの計算とが行われる。
オペランドアドレスの計算結果は整数演算部117へ出
力される。オペランドアドレス計算終了段階での先行ジ
ャンプ処理では、ジャンプ先アドレスの計算結果が命令
フェッチ部111とPC計算部とへ出力される。
力される。オペランドアドレス計算終了段階での先行ジ
ャンプ処理では、ジャンプ先アドレスの計算結果が命令
フェッチ部111とPC計算部とへ出力される。
即値オペランドは整数演算部117及び浮動小数点演算
部118へ出力される。アドレス計算に必要な汎用レジス
タ及びプログラムカウンタの値は整数演算部117あるい
はPC計算部116から入力される。
部118へ出力される。アドレス計算に必要な汎用レジス
タ及びプログラムカウンタの値は整数演算部117あるい
はPC計算部116から入力される。
(3.7)「PC計算部」 PC計算部116は命令デコード部112から出力されるPC計
算に関係する情報でハードワイヤードに制御され、命令
のPC値を計算する。
算に関係する情報でハードワイヤードに制御され、命令
のPC値を計算する。
本発明のデータ処理装置の命令は前述の如く、可変長
命令であり、命令をデコードしてみないとその命令の長
さが判らない。PC計算部116は、命令デコード部112から
出力される命令長をデコード中の命令のPC値に加算する
ことにより次の命令のPC値を計算する。
命令であり、命令をデコードしてみないとその命令の長
さが判らない。PC計算部116は、命令デコード部112から
出力される命令長をデコード中の命令のPC値に加算する
ことにより次の命令のPC値を計算する。
PC計算部116の計算結果は各命令のPC値として命令の
デコード結果とともに出力される。
デコード結果とともに出力される。
命令デコードステージでの先行ブランチ処理では、命
令デコード部11から出力されるブランチ幅をPC値に加算
することによりブランチ先命令のアドレスが計算され
る。
令デコード部11から出力されるブランチ幅をPC値に加算
することによりブランチ先命令のアドレスが計算され
る。
また、PC計算部116にはサブルーチンへのジャンプ命
令の実行時にスタックにプッシュしておいたサブルーチ
ンからの戻り先PC値のコピーを保持するPCスタックが用
意されている。PC計算部116は、サブルーチンからのリ
ターン命令に対してはPCスタックから戻先PCを読出する
ことにより、プリリターン先命令のアドレスを生成する
処理も行う。
令の実行時にスタックにプッシュしておいたサブルーチ
ンからの戻り先PC値のコピーを保持するPCスタックが用
意されている。PC計算部116は、サブルーチンからのリ
ターン命令に対してはPCスタックから戻先PCを読出する
ことにより、プリリターン先命令のアドレスを生成する
処理も行う。
(3.8)「整数演算部」 整数演算部117は第1マイクロROM部113のマイクロROM
に格納されたマイクロプログラムにより制御され、各整
数演算命令の機能を実現するために必要な演算を整数演
算部117の内部にあるレジスタファイルと演算器とを使
用して実行する。
に格納されたマイクロプログラムにより制御され、各整
数演算命令の機能を実現するために必要な演算を整数演
算部117の内部にあるレジスタファイルと演算器とを使
用して実行する。
レジスタファイルには汎用レジスタ及び作業用レジス
タが含まれる。また、整数演算部117には整数演算の結
果により変化するフラッグ及び外部割込みのマスクレベ
ル,デバッグ環境を定めるビット等含むプロセッサ状態
語(PSW)が含まれる。
タが含まれる。また、整数演算部117には整数演算の結
果により変化するフラッグ及び外部割込みのマスクレベ
ル,デバッグ環境を定めるビット等含むプロセッサ状態
語(PSW)が含まれる。
命令の演算対象となるオペランドがアドレスあるいは
即値である場合は、オペランドアドレス計算部115から
即値あるいは計算されたアドレスが入力される。また、
命令の演算対象となるオペランドがメモリ上のデータで
ある場合は、アドレス計算部115で計算されたアドレス
がオペランドアクセス部120へ出力され、内蔵データキ
ャッシュあるいは外部からフェッチしたオペランドが整
数演算部117へ入力される。
即値である場合は、オペランドアドレス計算部115から
即値あるいは計算されたアドレスが入力される。また、
命令の演算対象となるオペランドがメモリ上のデータで
ある場合は、アドレス計算部115で計算されたアドレス
がオペランドアクセス部120へ出力され、内蔵データキ
ャッシュあるいは外部からフェッチしたオペランドが整
数演算部117へ入力される。
演算に際して、内蔵データキャッシュ,外部のデータ
キャッシュ107,108あるいは主メモリ109をリードする必
要がある場合は、整数演算部117はマイクロプログラム
の指示によりオペランドアクセス部120へアドレスを出
力して目的のデータをフェッチする。
キャッシュ107,108あるいは主メモリ109をリードする必
要がある場合は、整数演算部117はマイクロプログラム
の指示によりオペランドアクセス部120へアドレスを出
力して目的のデータをフェッチする。
演算結果を内蔵データキャッシュ,外部のデータキャ
ッシュ107,108あるいは主メモリ109へストアする必要が
ある場合は、整数演算部117はマイクロプログラムの指
示によりオペランドアクセス部120へアドレスとデータ
とを出力する。この際、PC計算部116からはそのストア
動作を行った命令のPC値がオペランドアクセス部120へ
出力される。
ッシュ107,108あるいは主メモリ109へストアする必要が
ある場合は、整数演算部117はマイクロプログラムの指
示によりオペランドアクセス部120へアドレスとデータ
とを出力する。この際、PC計算部116からはそのストア
動作を行った命令のPC値がオペランドアクセス部120へ
出力される。
外部割込み,例外の処理等が行われて新たな命令アド
レスを整数演算部117が得た場合は、整数演算部117はこ
れを命令フェッチ部111とPC計算部116とへ出力する。
レスを整数演算部117が得た場合は、整数演算部117はこ
れを命令フェッチ部111とPC計算部116とへ出力する。
(3.9)「浮動小数点演算部」 浮動小数点演算部118は第2マイクロROM部114のマイ
クロROMに格納されたマイクロプログラムにより制御さ
れ、各浮動小数点演算命令の機能を実現するために必要
な演算を浮動小数点演算部118の内部にあるレジスタフ
ァイルと演算器とを使用して実行する。
クロROMに格納されたマイクロプログラムにより制御さ
れ、各浮動小数点演算命令の機能を実現するために必要
な演算を浮動小数点演算部118の内部にあるレジスタフ
ァイルと演算器とを使用して実行する。
命令の演算対象となるオペランドが即値である場合
は、オペランドアドレス計算部115から浮動小数点演算
部118へ即値が入力される。また、命令の演算対象とな
るオペランドがメモリ上のデータである場合は、アドレ
ス計算部115で計算されたアドレスがオペランドアクセ
ス部120へ出力され、内蔵データキャッシュあるいは外
部からフェッチされたオペランドが浮動小数点演算部11
8へ入力される。
は、オペランドアドレス計算部115から浮動小数点演算
部118へ即値が入力される。また、命令の演算対象とな
るオペランドがメモリ上のデータである場合は、アドレ
ス計算部115で計算されたアドレスがオペランドアクセ
ス部120へ出力され、内蔵データキャッシュあるいは外
部からフェッチされたオペランドが浮動小数点演算部11
8へ入力される。
オペランドを内蔵データキャッシュ,外部のデータキ
ャッシュ107,108あるいは主メモリ109へストアする必要
がある場合は、浮動小数点演算部118はマイクロプログ
ラムの指示によりオペランドアクセス部120へデータを
出力する。ストア動作では浮動小数点演算部118と整数
演算部117とが協調して動作し、オペランドアクセス部1
20に対して整数演算部117からオペランドのアドレスが
出力され、浮動小数点演算部118からオペランドが出力
される。この際、PC計算部116からはそのストア動作を
行った命令のPC値がオペランドアクセス部120へ出力さ
れる。
ャッシュ107,108あるいは主メモリ109へストアする必要
がある場合は、浮動小数点演算部118はマイクロプログ
ラムの指示によりオペランドアクセス部120へデータを
出力する。ストア動作では浮動小数点演算部118と整数
演算部117とが協調して動作し、オペランドアクセス部1
20に対して整数演算部117からオペランドのアドレスが
出力され、浮動小数点演算部118からオペランドが出力
される。この際、PC計算部116からはそのストア動作を
行った命令のPC値がオペランドアクセス部120へ出力さ
れる。
(3.10)「オペランドアクセス部」 オペランドアクセス部120にはオペランドアドレスの
アドレス変換機構,内蔵データキャッシュ,データ用TL
B,ストアバッファとそれらの制御部とがある。
アドレス変換機構,内蔵データキャッシュ,データ用TL
B,ストアバッファとそれらの制御部とがある。
データのロード動作に際しては、オペランドアクセス
部120はオペランドアドレス計算部115あるいは整数演算
部117から出力されたロードすべきデータの論理アドレ
スを物理アドレスに変換し、内蔵データキャッシュから
データをフェッチし、整数演算部117あるいは浮動小数
点演算部118へ出力する。内蔵データキャッシュがミス
した場合には、オペランドアクセス部120はアドレス入
出力部119へ物理アドレスを出力し、外部へのデータア
クセスを要求し、データ入出力部122を通じて入力され
たデータを内蔵データキャッシュに登録する。
部120はオペランドアドレス計算部115あるいは整数演算
部117から出力されたロードすべきデータの論理アドレ
スを物理アドレスに変換し、内蔵データキャッシュから
データをフェッチし、整数演算部117あるいは浮動小数
点演算部118へ出力する。内蔵データキャッシュがミス
した場合には、オペランドアクセス部120はアドレス入
出力部119へ物理アドレスを出力し、外部へのデータア
クセスを要求し、データ入出力部122を通じて入力され
たデータを内蔵データキャッシュに登録する。
データのストア動作に際しては、オペランドアクセス
部120は整数演算部117から出力されたストアすべきデー
タの論理アドレスを物理アドレスに変換し、整数演算部
117あるいは浮動小数点演算部118から出力されたデータ
を内蔵データキャッシュにストアすると共に、ストアバ
ッファを通じてアドレス入出力部119へ物理アドレスを
出力し、データ入出力部122を通じてデータを外部へ出
力する。ストアバッファではストアすべきデータとその
アドレス,更にそのストア動作を行った命令のアドレス
とが1組にして管理される。ストアバッファでのストア
動作は先入れ先だし制御方式で管理される。
部120は整数演算部117から出力されたストアすべきデー
タの論理アドレスを物理アドレスに変換し、整数演算部
117あるいは浮動小数点演算部118から出力されたデータ
を内蔵データキャッシュにストアすると共に、ストアバ
ッファを通じてアドレス入出力部119へ物理アドレスを
出力し、データ入出力部122を通じてデータを外部へ出
力する。ストアバッファではストアすべきデータとその
アドレス,更にそのストア動作を行った命令のアドレス
とが1組にして管理される。ストアバッファでのストア
動作は先入れ先だし制御方式で管理される。
データ用TLBがミスした場合のページングによるアド
レス変換及びデータ用TLB更新もオペランドアクセス部1
20の内部の制御回路により行われる。また、メモリアク
セスアドレスがメモリにマップされたI/O領域に入るか
否かのチェックも行われる。
レス変換及びデータ用TLB更新もオペランドアクセス部1
20の内部の制御回路により行われる。また、メモリアク
セスアドレスがメモリにマップされたI/O領域に入るか
否かのチェックも行われる。
また、本発明のデータ処理装置がバスウォッチモード
である場合は、オペランドアクセス部120はアドレス入
出力部119を通じて入力された物理アドレスがヒットす
る内蔵データキャッシュのエントリを無効化する。
である場合は、オペランドアクセス部120はアドレス入
出力部119を通じて入力された物理アドレスがヒットす
る内蔵データキャッシュのエントリを無効化する。
(3.11)「アドレス入出力部」 アドレス入出力部119は命令フェッチ部111とオペラン
ドアクセス部120とから出力されたアドレスを本発明の
データ処理装置100の外部へ出力する。
ドアクセス部120とから出力されたアドレスを本発明の
データ処理装置100の外部へ出力する。
アドレスの出力は本発明のデータ処理装置100で定め
られたバスプロトコルに従って実行される。
られたバスプロトコルに従って実行される。
バスプロトコルの制御はアドレス入出力部119内にあ
る外部バス制御回路で行われる。外部バス制御ではペー
ジ不在例外及びバスアクセス例外,外部割込みの受付け
も行う。
る外部バス制御回路で行われる。外部バス制御ではペー
ジ不在例外及びバスアクセス例外,外部割込みの受付け
も行う。
また、本発明のデータ処理装置100以外の外部デバイ
スがバスマスタになっており、本発明のデータ処理装置
100がバスウォッチモードである場合には、アドレス入
出力部119は外部デバイスがデータライトサイクルを実
行した際にアドレスバス101上へ出力されたアドレスを
取込んで命令フェッチ部111とオペランドアクセス部120
とへ転送する。
スがバスマスタになっており、本発明のデータ処理装置
100がバスウォッチモードである場合には、アドレス入
出力部119は外部デバイスがデータライトサイクルを実
行した際にアドレスバス101上へ出力されたアドレスを
取込んで命令フェッチ部111とオペランドアクセス部120
とへ転送する。
(3.12)「データ入出力部」 データ入力出力部121はオペランドのロード動作に際
しては、データバス102からデータを取込みオペランド
アクセス部120へ転送する。オペランドのストア動作に
際しては、オペランドアクセス部120から出力されたオ
ペランドをデータバス102へ出力する。
しては、データバス102からデータを取込みオペランド
アクセス部120へ転送する。オペランドのストア動作に
際しては、オペランドアクセス部120から出力されたオ
ペランドをデータバス102へ出力する。
データキャッシュ107,108のアクセス方法には、1つ
のアドレスに対して64ビットのデータをアクセスする標
準アクセスモードと1つのアドレスに対して4回連続で
64ビットのデータをアクセスするクワッドアクセスモー
ドとがあり、いずれの場合もデータ入出力部121はオペ
ランドアクセス部120と外部のメモリとの間でやり取り
するデータを入出力する。
のアドレスに対して64ビットのデータをアクセスする標
準アクセスモードと1つのアドレスに対して4回連続で
64ビットのデータをアクセスするクワッドアクセスモー
ドとがあり、いずれの場合もデータ入出力部121はオペ
ランドアクセス部120と外部のメモリとの間でやり取り
するデータを入出力する。
(4)「パイプライン処理」 本発明のデータ処理装置100は各種のバッファ記憶
と、命令バス103,データバス102を使用したメモリの効
率的アクセスにより命令をパイプライン処理して高性能
に動作する。
と、命令バス103,データバス102を使用したメモリの効
率的アクセスにより命令をパイプライン処理して高性能
に動作する。
ここでは、本発明のデータ処理装置100のパイプライ
ン処理方法について説明する。
ン処理方法について説明する。
(4.1)「パイプライン機構」 本発明のデータ処理装置100のパイプライン処理機構
は第5図に模式的に示すように構成されている。
は第5図に模式的に示すように構成されている。
命令のプリフェッチを行う命令フェッチステージ(IF
ステージ)31,命令のデコードを行うデコードステージ
(Dステージ)32,オペランドのアドレス計算を行うオ
ペランドアドレス計算ステージ(Aステージ)33,マイ
クロROMアクセス(特にRステージ37と称す)とオペラ
ンドのプリフェッチ(特にOFステージ38と称す)を行う
オペランドフェッチステージ(Fステージ)34,命令の
実行を行う実行ステージ(Eステージ)35,メモリオペ
ランドのストアを行うストアステージ(Sステージ)36
の6段構成でパイプライン処理を実行する。
ステージ)31,命令のデコードを行うデコードステージ
(Dステージ)32,オペランドのアドレス計算を行うオ
ペランドアドレス計算ステージ(Aステージ)33,マイ
クロROMアクセス(特にRステージ37と称す)とオペラ
ンドのプリフェッチ(特にOFステージ38と称す)を行う
オペランドフェッチステージ(Fステージ)34,命令の
実行を行う実行ステージ(Eステージ)35,メモリオペ
ランドのストアを行うストアステージ(Sステージ)36
の6段構成でパイプライン処理を実行する。
Sステージ36には3段のストアバッファがある。
各ステージは他のステージとは独立に動作し、理論上
は6つのステージが完全に独立動作する。
は6つのステージが完全に独立動作する。
Sステージ36以外の各ステージは1回の処理を最小1
クロックで行うことができる。Sステージ36は1回のオ
ペランドストア処理を最小2クロックで行うことができ
る。従ってメモリオペランドのストア処理がない場合、
理想的には1クロックごとに次々とパイプライン処理が
進行する。
クロックで行うことができる。Sステージ36は1回のオ
ペランドストア処理を最小2クロックで行うことができ
る。従ってメモリオペランドのストア処理がない場合、
理想的には1クロックごとに次々とパイプライン処理が
進行する。
本発明のデータ処理装置にはメモリ−メモリ間演算あ
るいはメモリ間接アドレッシング等のような1回の基本
パイプライン処理のみでは処理出来ない命令があるが、
これらの処理に対してもなるべく均衡したパイプライン
処理が行えるように構成されている。
るいはメモリ間接アドレッシング等のような1回の基本
パイプライン処理のみでは処理出来ない命令があるが、
これらの処理に対してもなるべく均衡したパイプライン
処理が行えるように構成されている。
複数のメモリオペランドを有する命令に対しては、メ
モリオペランドの数に基づいてデコード段階で複数のパ
イプライン処理単位(ステップコード)に分解してパイ
プライン処理が行われる。
モリオペランドの数に基づいてデコード段階で複数のパ
イプライン処理単位(ステップコード)に分解してパイ
プライン処理が行われる。
IFステージ31からDステージ32へ渡される情報は命令
コードそのものである。
コードそのものである。
Dステージ32からAステージ33へ渡される情報は、命
令で指定された演算に関するコード(Dコード41と称
す)と、オペランドのアドレス計算に関係するコード
(Aコード42と称す)と処理中命令のプログラムカウン
タ値(PC)との3つである。
令で指定された演算に関するコード(Dコード41と称
す)と、オペランドのアドレス計算に関係するコード
(Aコード42と称す)と処理中命令のプログラムカウン
タ値(PC)との3つである。
Aステージ33からFステージ34に渡される情報は、マ
イクロプログラムルーチンのエントリ番地及びマイクロ
プログラムへのパラメータ等を含むRコード43と、オペ
ランドのアドレスとアクセス方法指示情報等を含むFコ
ード44と、処理中命令のプログラムカウンタ値(PC)と
の3つである。
イクロプログラムルーチンのエントリ番地及びマイクロ
プログラムへのパラメータ等を含むRコード43と、オペ
ランドのアドレスとアクセス方法指示情報等を含むFコ
ード44と、処理中命令のプログラムカウンタ値(PC)と
の3つである。
Fステージ34からEステージ35へ渡される情報は、演
算制御情報とリテラル等を含むEコード45と、オペラン
ド及びオペレータアドレス等を含むSコード(46a,46
b)と、処理中命令のプログラムカウンタ値(PC)との
3つである。
算制御情報とリテラル等を含むEコード45と、オペラン
ド及びオペレータアドレス等を含むSコード(46a,46
b)と、処理中命令のプログラムカウンタ値(PC)との
3つである。
Sコード46a,46bはアドレス46aとデータ46bとからな
る。
る。
Eステージ35からSステージ36へ渡される情報は、ス
トアすべき演算結果であるWコード47a,47bと、その演
算結果を出力した命令のプログラムカウンタ値(PC)と
の2つである。
トアすべき演算結果であるWコード47a,47bと、その演
算結果を出力した命令のプログラムカウンタ値(PC)と
の2つである。
Wコード47a,47bはアドレス47aとデータ47bとからな
る。
る。
Eステージ35以前のステージで検出されたEITはその
コードがEステージ35に到達するまでEIT処理を起動し
ない。Eステージ35で処理されている命令のみが実行段
階の命令であり、IFステージ31〜Fステージ34で処理さ
れている命令は未だ実行段階に至っていないからであ
る。従ってEステージ35以前で検出されたEITは検出さ
れたことがステップコード中に記録されて次のステージ
に伝えられるのみである。
コードがEステージ35に到達するまでEIT処理を起動し
ない。Eステージ35で処理されている命令のみが実行段
階の命令であり、IFステージ31〜Fステージ34で処理さ
れている命令は未だ実行段階に至っていないからであ
る。従ってEステージ35以前で検出されたEITは検出さ
れたことがステップコード中に記録されて次のステージ
に伝えられるのみである。
Sステージ36で検出されたEITはEステージ35で処理
中命令の実行が完了した時点またはその命令の処理がキ
ャンセルされて受付けられ、Eステージ35に戻って処理
される。
中命令の実行が完了した時点またはその命令の処理がキ
ャンセルされて受付けられ、Eステージ35に戻って処理
される。
(4.2)「各パイプラインステージの処理」 各パイプラインステージへの入出力ステップコードに
は第4図に示したように便宜上名称が付与されている。
またステップコードには、オペレーションコードに関す
る処理を行ってマイクロROMのエントリ番地やEステー
ジ35に対するパラメータ等になる系列と、Eステージ35
の処理対象のオペランドになる系列との2系列がある。
は第4図に示したように便宜上名称が付与されている。
またステップコードには、オペレーションコードに関す
る処理を行ってマイクロROMのエントリ番地やEステー
ジ35に対するパラメータ等になる系列と、Eステージ35
の処理対象のオペランドになる系列との2系列がある。
また、Dステージ32からSステージ36までの間では処
理中命令のプログラムカウンタ値が受渡される。
理中命令のプログラムカウンタ値が受渡される。
(4.2.1)「命令フェッチステージ」 命令フェッチステージ(IFステージ)31で命令フェッ
チ部111が動作する。
チ部111が動作する。
命令フェッチ部111は内蔵命令キャッシュあるいは外
部から命令をフェッチして命令キューに入力し、Dステ
ージ32に対して2〜6バイト単位に命令コードを出力す
る。命令キューの入力は整置された4バイト単位で行わ
れる。
部から命令をフェッチして命令キューに入力し、Dステ
ージ32に対して2〜6バイト単位に命令コードを出力す
る。命令キューの入力は整置された4バイト単位で行わ
れる。
命令フェッチ部111が標準アクセスモードで外部から
命令をフェッチする場合は整置された4バイトにつき最
小2クロックを要する。
命令をフェッチする場合は整置された4バイトにつき最
小2クロックを要する。
クワッドアクセスモードでは16バイトにつき最小5ク
ロックを要する。
ロックを要する。
内蔵命令キャッシュがヒットした場合は整置された8
バイトにつき1クロックでフェッチ可能である。
バイトにつき1クロックでフェッチ可能である。
命令キューの出力単位は2バイトごとに可変であり、
1クロックの間に最大6バイトまで出力できる。またジ
ャンプの直後には命令キューをバイパスして命令基本部
2バイトを直接命令デコーダに転送することもできる。
1クロックの間に最大6バイトまで出力できる。またジ
ャンプの直後には命令キューをバイパスして命令基本部
2バイトを直接命令デコーダに転送することもできる。
命令の論理アドレスの物理アドレスの変換,内蔵命令
キャッシュや命令用TLBの制御,プリフェッチ先命令ア
ドレスの管理あるいは命令キューの制御もIFステージ31
で行われる。
キャッシュや命令用TLBの制御,プリフェッチ先命令ア
ドレスの管理あるいは命令キューの制御もIFステージ31
で行われる。
(4.2.2)「命令デコードステージ」 命令デコードステージ(Dステージ)32はIFステージ
31から入力された命令コードをデコードする。
31から入力された命令コードをデコードする。
命令コードのデコードは、命令デコード部112のFHWデ
コーダ,NFHWデコーダ,アドレッシングモードデコーダ
を使用して1クロックに1度行なわれ、1回のデコード
処理で0〜6バイトの命令コードが消費される(リター
ンサブルーチン命令の復帰先アドレスを含むステップコ
ードの出力処理等では命令コードは消費されない)。
コーダ,NFHWデコーダ,アドレッシングモードデコーダ
を使用して1クロックに1度行なわれ、1回のデコード
処理で0〜6バイトの命令コードが消費される(リター
ンサブルーチン命令の復帰先アドレスを含むステップコ
ードの出力処理等では命令コードは消費されない)。
1回のデコードでAステージ33に対してアドレス計算
情報であるAコード42とオペコードの中間デコード結果
であるDコード41とが出力される。
情報であるAコード42とオペコードの中間デコード結果
であるDコード41とが出力される。
Dステージ32では各命令のPC計算部116の制御,命令
キューからの命令コード出力処理も行われる。
キューからの命令コード出力処理も行われる。
Dステージ32ではブランチ命令あるいはサブルーチン
からのリターン命令に対して先行ジャンプ処理が行われ
る。先行ジャンプを行った無条件ブランチ命令に対して
はDコード41及びAコード42は出力されず、Dステージ
32において命令の処理を終了する。
からのリターン命令に対して先行ジャンプ処理が行われ
る。先行ジャンプを行った無条件ブランチ命令に対して
はDコード41及びAコード42は出力されず、Dステージ
32において命令の処理を終了する。
(4.2.3)「オペランドアドレス計算ステージ」 オペランドアドレス計算ステージ(Aステージ)33の
処理は大きく2つに分かれる。
処理は大きく2つに分かれる。
1つは命令デコード部112の第2デコーダを使用して
オペレーションコードの後段デコードを行う処理で、他
方はオペランドアドレス計算部54でオペランドアドレス
の計算を行う処理である。
オペレーションコードの後段デコードを行う処理で、他
方はオペランドアドレス計算部54でオペランドアドレス
の計算を行う処理である。
オペレーションコードの後段デコード処理はDコード
41を入力とし、レジスタ,メモリの書込み予約及びマイ
クロプログラムルーチンのエントリ番地とマイクロプロ
グラムに対するパラメータ等を含むRコード43を出力す
る。
41を入力とし、レジスタ,メモリの書込み予約及びマイ
クロプログラムルーチンのエントリ番地とマイクロプロ
グラムに対するパラメータ等を含むRコード43を出力す
る。
なお、レジスタあるいはメモリの書込み予約は、アド
レス計算で参照したレジスタあるいはメモリの内容がパ
イプライン上を先行する命令で書換えられていた場合
に、誤ったアドレス計算が行われることを防ぐためのも
のである。
レス計算で参照したレジスタあるいはメモリの内容がパ
イプライン上を先行する命令で書換えられていた場合
に、誤ったアドレス計算が行われることを防ぐためのも
のである。
オペランドアドレス計算処理はAコード42を入力と
し、Aコード42に従ってオペランドアドレス計算部54で
オペランドのアドレス計算を行い、その計算結果がFコ
ード44として出力される。
し、Aコード42に従ってオペランドアドレス計算部54で
オペランドのアドレス計算を行い、その計算結果がFコ
ード44として出力される。
またジャンプ命令に対してはジャンプ先アドレスの計
算が行われて先行ジャンプ処理が実行される。この際、
アドレス計算に伴うレジスタの読出し時に書込み予約の
チェックも行われ、先行命令がレジスタあるいはメモリ
に対する書込み処理を終了していないために予約がある
ことが指示されていれば、先行命令がEステージ35で書
込み処理を終了するまで待機状態になる。
算が行われて先行ジャンプ処理が実行される。この際、
アドレス計算に伴うレジスタの読出し時に書込み予約の
チェックも行われ、先行命令がレジスタあるいはメモリ
に対する書込み処理を終了していないために予約がある
ことが指示されていれば、先行命令がEステージ35で書
込み処理を終了するまで待機状態になる。
Aステージ33ではDステージ32で先行ジャンプを行わ
なかったジャンプ命令に対して先行ジャンプ処理が行わ
れる。
なかったジャンプ命令に対して先行ジャンプ処理が行わ
れる。
絶対値アドレスへのジャンプあるいはレジスタ間接ア
ドレッシングのジャンプ等に対してはAステージ33で先
行ジャンプが行われる。先行ジャンプを行った無条件ジ
ャンプ命令に対してはRコード43及びFコード44は出力
されず、Aステージ33において命令の処理を終了する。
ドレッシングのジャンプ等に対してはAステージ33で先
行ジャンプが行われる。先行ジャンプを行った無条件ジ
ャンプ命令に対してはRコード43及びFコード44は出力
されず、Aステージ33において命令の処理を終了する。
(4.2.4)「マイクロROMアクセスステージ」 オペランドフェッチステージ(Fステージ)34の処理
も大きく2つに分かれる。
も大きく2つに分かれる。
1つはマイクロROMのアクセス処理であり、特にRス
テージ37と称す。他方はオペランドプリフェッチ処理で
あり、特にOFステージ38と称す。
テージ37と称す。他方はオペランドプリフェッチ処理で
あり、特にOFステージ38と称す。
Rステージ37とOFステージ38とは必ずしも同時に動作
するわけではなく、データキャッシュのミス及びヒッ
ト,データTLBのミス及びヒット等に依存して動作タイ
ミングが異なる。
するわけではなく、データキャッシュのミス及びヒッ
ト,データTLBのミス及びヒット等に依存して動作タイ
ミングが異なる。
Rステージ37の処理であるマイクロROMアクセス処理
は、Rコード43に対して次のEステージ35での実行に使
用する実行制御コードであるEコード45を作り出すため
のマイクロROMアクセスとマイクロ命令デコード処理で
ある。
は、Rコード43に対して次のEステージ35での実行に使
用する実行制御コードであるEコード45を作り出すため
のマイクロROMアクセスとマイクロ命令デコード処理で
ある。
1つのRコードに対する処理が2つ以上のマイクロプ
ログラムステップに分解される場合、第1マイクロROM
部113及び第2マイクロROM部114がEステージ35で使用
され、次のRコード43がマイクロROMアクセス待ちにな
る場合がある。
ログラムステップに分解される場合、第1マイクロROM
部113及び第2マイクロROM部114がEステージ35で使用
され、次のRコード43がマイクロROMアクセス待ちにな
る場合がある。
Rコード43に対するマイクロROMアクセスが行われる
のはEステージ35でのマイクロROMアクセスが行われな
い場合である。
のはEステージ35でのマイクロROMアクセスが行われな
い場合である。
本発明のデータ処理装置100では多くの整数演算命令
が1マイクロプログラムステップで行われ、多くの浮動
小数点演算命令が2マイクロプログラムステップで行わ
れるため、実際にはRコード43に対するマイクロROMア
クセスが次々と行われる頻度が高い。
が1マイクロプログラムステップで行われ、多くの浮動
小数点演算命令が2マイクロプログラムステップで行わ
れるため、実際にはRコード43に対するマイクロROMア
クセスが次々と行われる頻度が高い。
(4.2.5)「オペランドフェッチステージ」 オペランドフェッチステージ(OFステージ)38はFス
テージ34で行う上記の2つの処理の内のオペランドプリ
フェッチ処理を行う。
テージ34で行う上記の2つの処理の内のオペランドプリ
フェッチ処理を行う。
オペランドフェッチステージ38ではFコード44の論理
アドレスをデータTLBで物理アドレスに変換し、その物
理アドレスで内蔵データキャッシュをアクセスしてオペ
ランドをフェッチし、そのオペランドとFコード44とし
て転送されてきたその論理アドレスとを組合わせてSコ
ード46a,46bとして出力する。
アドレスをデータTLBで物理アドレスに変換し、その物
理アドレスで内蔵データキャッシュをアクセスしてオペ
ランドをフェッチし、そのオペランドとFコード44とし
て転送されてきたその論理アドレスとを組合わせてSコ
ード46a,46bとして出力する。
1つのFコード44では8バイト境界をクロスしてもよ
いが、8バイト以下のオペランドフェッチを指定する。
いが、8バイト以下のオペランドフェッチを指定する。
Fコード44にはオペランドのアクセスを行うか否かの
指定も含まれており、Aステージ33で計算されたオペラ
ンドアドレス自体あるいは即値をEステージ35へ転送す
る場合にはオペランドプリフェッチは行わず、Eコード
44の内容をSコード46a,46bとして転送する。
指定も含まれており、Aステージ33で計算されたオペラ
ンドアドレス自体あるいは即値をEステージ35へ転送す
る場合にはオペランドプリフェッチは行わず、Eコード
44の内容をSコード46a,46bとして転送する。
プリフェッチしようとするオペランドとEステージ35
が書込み処理を行おうとするオペランドとが一致する場
合は、オペランドプリフェッチは内蔵データキャッシュ
からは行われず、バイパスして行なわれる。
が書込み処理を行おうとするオペランドとが一致する場
合は、オペランドプリフェッチは内蔵データキャッシュ
からは行われず、バイパスして行なわれる。
オペランドストアステージ36の動作はオペランドアク
セス部120で行われ、データTLBあるいは内蔵データキャ
ッシュがミスした場合のアドレス変換処理及び内蔵デー
タキャッシュの入換え処理も行う。
セス部120で行われ、データTLBあるいは内蔵データキャ
ッシュがミスした場合のアドレス変換処理及び内蔵デー
タキャッシュの入換え処理も行う。
(4.2.6)「実行ステージ」 実行ステージ(Eステージ)35はEコード45及びSコ
ード46a,46bを入力として動作する。
ード46a,46bを入力として動作する。
このEステージ35が命令を実行するステージであり、
Fステージ34以前のステージで行われた処理は総てEス
テージ35のための前処理である。
Fステージ34以前のステージで行われた処理は総てEス
テージ35のための前処理である。
Eステージ35でジャンプが実行されたりあるいはEIT
処理が起動されたりした場合は、IFステージ31〜Fステ
ージ34まででの処理はすべて無効化される。
処理が起動されたりした場合は、IFステージ31〜Fステ
ージ34まででの処理はすべて無効化される。
Eステージ35はマイクロプログラムにより制御され、
Rコード45に示されたマイクロプログラムルーチンのエ
ントリ番地からの一連のマイクロ命令を実行することに
より命令を実行する。
Rコード45に示されたマイクロプログラムルーチンのエ
ントリ番地からの一連のマイクロ命令を実行することに
より命令を実行する。
Eコード45には整数演算部117を制御するコード(特
にEIコードと称す)と浮動小数点演算部118を制御する
コード(特にEFコードと称す)とがある。EIコードとEF
コードとは独立に出力可能であり、この際Eステージ35
では整数演算部117と浮動小数点演算部118とが並列に動
作する。
にEIコードと称す)と浮動小数点演算部118を制御する
コード(特にEFコードと称す)とがある。EIコードとEF
コードとは独立に出力可能であり、この際Eステージ35
では整数演算部117と浮動小数点演算部118とが並列に動
作する。
例えば浮動小数点演算部118でメモリオペランドを有
さない浮動小数点命令を実行する場合はこの動作は整数
演算部117の動作と並行して実行される。
さない浮動小数点命令を実行する場合はこの動作は整数
演算部117の動作と並行して実行される。
整数演算でも浮動小数点演算でもマイクロROMの読出
しとマイクロ命令の実行とはパイプライン化されて行わ
れる。従って、マイクロプログラムで分岐が発生した場
合は1マイクロステップの空きができる。
しとマイクロ命令の実行とはパイプライン化されて行わ
れる。従って、マイクロプログラムで分岐が発生した場
合は1マイクロステップの空きができる。
Eステージ35ではAステージ33で行ったレジスタある
いはメモリに対する書込み予約をオペランドの書込みの
後に解除する。
いはメモリに対する書込み予約をオペランドの書込みの
後に解除する。
各種の割込は命令の切目でEステージ35に直接受付け
られ、マイクロプログラムにより必要な処理が実行され
る。その他の各種EITの処理もEステージ35でマイクロ
プログラムにより行われる。
られ、マイクロプログラムにより必要な処理が実行され
る。その他の各種EITの処理もEステージ35でマイクロ
プログラムにより行われる。
演算の結果をメモリにストアする必要がある場合は、
Eステージ35はSステージ36へWコード47a,47bとスト
ア処理を行う命令のプログラムカウンタ値とを出力す
る。
Eステージ35はSステージ36へWコード47a,47bとスト
ア処理を行う命令のプログラムカウンタ値とを出力す
る。
(4.2.7)「オペランドストアステージ」 オペランドストアステージ36はWコードの論理アドレ
ス47aをデータTLBで物理アドレスに変換し、そのアドレ
スでWコードのデータ47bを内蔵データキャッシュにス
トアする。同時にWコード47a,47bとプログラムカウン
タ値とをストアバッファに入力し、データTLBから出力
された物理アドレスを用いて外部のメモリへWコードの
データ47bをストアする処理を行う。
ス47aをデータTLBで物理アドレスに変換し、そのアドレ
スでWコードのデータ47bを内蔵データキャッシュにス
トアする。同時にWコード47a,47bとプログラムカウン
タ値とをストアバッファに入力し、データTLBから出力
された物理アドレスを用いて外部のメモリへWコードの
データ47bをストアする処理を行う。
オペランドストアステージ36の動作はオペランドアク
セス部120で行われ、データTLBあるいは内蔵データキャ
ッシュがミスした際のアドレス変換処理及び内蔵データ
キャッシュの入換え処理も行う。
セス部120で行われ、データTLBあるいは内蔵データキャ
ッシュがミスした際のアドレス変換処理及び内蔵データ
キャッシュの入換え処理も行う。
オペランドのストア処理でEITを検出した場合はストア
バッファにWコード47a,47bとプログラムカウンタ値と
を保持したままでEステージ35にEITを通知する。
バッファにWコード47a,47bとプログラムカウンタ値と
を保持したままでEステージ35にEITを通知する。
(4.3)「各パイプラインステージの状態制御」 パイプラインの各ステージは入力ラッチと出力ラッチ
を有し、他のステージとは独立に動作することを基本と
する。
を有し、他のステージとは独立に動作することを基本と
する。
各ステージは1つ前に行った処理が終了し、その処理
結果を出力ラッチから次のステージの入力ラッチへ転送
し、自分のステージの入力ラッチに次の処理に必要な入
力信号の総てがそろえば次の処理を開始する。
結果を出力ラッチから次のステージの入力ラッチへ転送
し、自分のステージの入力ラッチに次の処理に必要な入
力信号の総てがそろえば次の処理を開始する。
つまり、各ステージは1つ前段のステージから出力さ
れてくる次の処理に対する入力信号の総てが有効にな
り、その時点の処理結果を後段のステージの入力ラッチ
へ転送し、出力ラッチが空になると次の処理を開始す
る。
れてくる次の処理に対する入力信号の総てが有効にな
り、その時点の処理結果を後段のステージの入力ラッチ
へ転送し、出力ラッチが空になると次の処理を開始す
る。
各ステージが動作を開始する直前のタイミングで入力
信号が総てそろっている必要がある。入力信号がそろっ
ていなければ、そのステージは待機状態(入力待ち)に
なる。
信号が総てそろっている必要がある。入力信号がそろっ
ていなければ、そのステージは待機状態(入力待ち)に
なる。
出力ラッチから次のステージの入力ラッチへの転送を
行われる際は次のステージの入力ラッチが空き状態にな
っている必要があり、次のステージの入力ラッチが空き
でない場合もパイプラインステージは待機状態(出力待
ち)になる。
行われる際は次のステージの入力ラッチが空き状態にな
っている必要があり、次のステージの入力ラッチが空き
でない場合もパイプラインステージは待機状態(出力待
ち)になる。
また、キャッシュあるいはTLBがミスしたり、パイプ
ラインで処理中の命令間にデータ干渉が生じると、1つ
のステージの処理に複数クロック必要となってパイプラ
イン処理が遅延する。
ラインで処理中の命令間にデータ干渉が生じると、1つ
のステージの処理に複数クロック必要となってパイプラ
イン処理が遅延する。
(5)「オペランドアクセス部の詳細動作」 (5.1)「オペランドアクセス部の構成」 第8図にオペランドアクセス部120の詳細なブロック
図を示す。
図を示す。
オペランドアクセス部120は、データの論理アドレス
と物理アドレスとをペアにしてバッファリングしたTLB2
01,物理アドレスとデータとをペアにしてバッファリン
グした内蔵データキャッシュ202,アクセスされたデータ
の論理アドレスの上位とTLB201の論理アドレスタグとを
比較する論理アドレス比較器203,TLB201から出力された
物理アドレスとデータキャッシュ202から出力された物
理アドレスタグとを比較する物理アドレス比較器204,デ
ータ入出力回路207,アドレス出力回路206,ストアバッフ
ァ部208,更に論理アドレス比較器203及び物理アドレス
比較器204の比較結果に従って全体を制御するオペラン
ドアクセス部制御回路205等にて構成されている。
と物理アドレスとをペアにしてバッファリングしたTLB2
01,物理アドレスとデータとをペアにしてバッファリン
グした内蔵データキャッシュ202,アクセスされたデータ
の論理アドレスの上位とTLB201の論理アドレスタグとを
比較する論理アドレス比較器203,TLB201から出力された
物理アドレスとデータキャッシュ202から出力された物
理アドレスタグとを比較する物理アドレス比較器204,デ
ータ入出力回路207,アドレス出力回路206,ストアバッフ
ァ部208,更に論理アドレス比較器203及び物理アドレス
比較器204の比較結果に従って全体を制御するオペラン
ドアクセス部制御回路205等にて構成されている。
(5.2)「オペランドアクセス部のデータリード動作」 整数演算部117から出力された論理アドレスの内のア
ドレス変換対象となる上位20ビットの内の下位8ビット
にてTLB201のエントリが指定される。TLB201の指定され
たエントリからは論理アドレスタグ(12ビット)と物理
アドレス(20ビット)とが出力される。
ドレス変換対象となる上位20ビットの内の下位8ビット
にてTLB201のエントリが指定される。TLB201の指定され
たエントリからは論理アドレスタグ(12ビット)と物理
アドレス(20ビット)とが出力される。
この際、論理アドレスの上位12ビットと論理アドレス
タグとが一致すればTLB201はヒットしたことになり、TL
B201から出力された物理アドレスは有効である。
タグとが一致すればTLB201はヒットしたことになり、TL
B201から出力された物理アドレスは有効である。
また、論理アドレスの内のページオフセットを示して
いて物理アドレスに変換されない下位ビット(12ビッ
ト)にてデータキャッシュ202のエントリが指定され
る。データキャッシュ202の指定されたエントリからは
物理アドレスタグ(20ビット)とデータが出力される。
いて物理アドレスに変換されない下位ビット(12ビッ
ト)にてデータキャッシュ202のエントリが指定され
る。データキャッシュ202の指定されたエントリからは
物理アドレスタグ(20ビット)とデータが出力される。
この際、TLB201から出力された物理アドレスが有効で
且つそれが物理アドレスタグと一致すればデータキャッ
シュ202はヒットしたことになり、データキャッシュか
ら出力されたデータは有効である。
且つそれが物理アドレスタグと一致すればデータキャッ
シュ202はヒットしたことになり、データキャッシュか
ら出力されたデータは有効である。
TLB201がミスした場合は、オペランドアクセス部制御
回路205の制御にて本発明のデータ処理装置100の外部の
メモリにあるアドレス変換テーブルがアクセスされるこ
とにより論理アドレスが物理アドレスに変換されてTLB2
01のエントリが更新される。TLB201のエントリの更新
後、再度TLB201がアクセスされ、TLB201はヒットする。
回路205の制御にて本発明のデータ処理装置100の外部の
メモリにあるアドレス変換テーブルがアクセスされるこ
とにより論理アドレスが物理アドレスに変換されてTLB2
01のエントリが更新される。TLB201のエントリの更新
後、再度TLB201がアクセスされ、TLB201はヒットする。
TLB201がヒットしたが、データキャッシュ202がミス
した場合は、オペランドアアクセス部制御回路205の制
御にて物理アドレスで外部のメモリがアクセスされるこ
とにより、データキャッシュ202のエントリが更新され
る。
した場合は、オペランドアアクセス部制御回路205の制
御にて物理アドレスで外部のメモリがアクセスされるこ
とにより、データキャッシュ202のエントリが更新され
る。
TLB201がミスした場合は、TLB201から読出された物理
アドレスとデータキャッシュの物理アドレスタグとが一
致してもデータキャッシュ202はヒットとはならない。
この場合、データキャッシュ202のヒット又はミスの判
定はTLB201のエントリが更新されてTLB201がヒットした
後に行われる。
アドレスとデータキャッシュの物理アドレスタグとが一
致してもデータキャッシュ202はヒットとはならない。
この場合、データキャッシュ202のヒット又はミスの判
定はTLB201のエントリが更新されてTLB201がヒットした
後に行われる。
(5.3)「オペランドアクセス部のデータライト動作」 オペランドアクセス部120に対するデータのライト動
作は、TLB201のアクセスに関してはデータリード動作と
同様である。
作は、TLB201のアクセスに関してはデータリード動作と
同様である。
データキャッシュ202のアクセス動作もデータリード
動作と類似しているが、データキャッシュ202からデー
タが読出されることはない。
動作と類似しているが、データキャッシュ202からデー
タが読出されることはない。
データライト動作では、データキャッシュ202がヒッ
トした場合にヒットしたエントリにデータが書込まれ
る。ミスしたと場合はデータキャッシュ202のエントリ
にデータは書込まれず、エントリの更新も行われない。
トした場合にヒットしたエントリにデータが書込まれ
る。ミスしたと場合はデータキャッシュ202のエントリ
にデータは書込まれず、エントリの更新も行われない。
本発明のデータ処理装置100の内蔵データキャッシュ2
02はライトスルー制御のデータキャッシュであり、デー
タライト動作に際してデータキャッシュ202がヒットし
た場合及びミスした場合のいずれもストアデータが外部
へ出力される。
02はライトスルー制御のデータキャッシュであり、デー
タライト動作に際してデータキャッシュ202がヒットし
た場合及びミスした場合のいずれもストアデータが外部
へ出力される。
外部へのデータのストア処理は最小でも2クロック必
要であり、本発明のデータ処理装置100のEステージ35
のストア動作速度に比べれば低速である。このため、ス
トアデータはそのストア動作を行った命令のアドレス,
ストア先の物理アドレス,ストア先の論理アドレスと共
にストアバッファに一旦登録された後に、ストアバッフ
ァがストア動作を行う。
要であり、本発明のデータ処理装置100のEステージ35
のストア動作速度に比べれば低速である。このため、ス
トアデータはそのストア動作を行った命令のアドレス,
ストア先の物理アドレス,ストア先の論理アドレスと共
にストアバッファに一旦登録された後に、ストアバッフ
ァがストア動作を行う。
ストアバッファに登録されるストア動作を行った命令
のアドレスはPC計算部116から入力された命令の論理ア
ドレスである。
のアドレスはPC計算部116から入力された命令の論理ア
ドレスである。
(6)「外部アクセス動作」 (6.1)「入出力信号線」 第7図は本発明のデータ処理装置100の入出力信号を
示す模式図である。
示す模式図である。
本発明のデータ処理装置100は、電源Vccと接地GND,64
本のデータピンと32本のアドレスピンと32本の命令ピン
及び入力クロックCLKの他に様々な制御信号を入出力す
る。
本のデータピンと32本のアドレスピンと32本の命令ピン
及び入力クロックCLKの他に様々な制御信号を入出力す
る。
命令アクセスの場合もデータアクセスの場合も、アド
レスピンへは物理アドレスが出力される。
レスピンへは物理アドレスが出力される。
CLKは外部入力クロックであり、本発明のデータ処理
装置100の動作クロックと同一周波数のクロックであ
る。
装置100の動作クロックと同一周波数のクロックであ
る。
データアドレスストローブDAS#(#は負論理を表
す)はアドレスピンに出力されたデータアドレスが有効
であることを示す。
す)はアドレスピンに出力されたデータアドレスが有効
であることを示す。
リードライトR/W#はデータピンでのバスサイクルが
入力であるか出力であるかを区別する。
入力であるか出力であるかを区別する。
データストローブDS#は本発明のデータ処理装置100
がデータ入力準備を完了したことまたは本発明のデータ
処理装置100からデータが出力されたことを示す。
がデータ入力準備を完了したことまたは本発明のデータ
処理装置100からデータが出力されたことを示す。
DC#は本発明のデータ処理装置100にデータアクセス
サイクルを終了してもよいことを通知する信号である。
サイクルを終了してもよいことを通知する信号である。
BAT(0:2)は第28図に示す様に、アドレスピンとデー
タピンと命令ピンとの値の意味を示す。
タピンと命令ピンとの値の意味を示す。
命令アドレスストローブIAS#はアドレスピンに出力
された命令アドレスが有効であることを示す。
された命令アドレスが有効であることを示す。
命令ストローブIS#は本発明のデータ処理装置100が
命令入力準備を完了したことを示す。
命令入力準備を完了したことを示す。
IC#は本発明のデータ処理装置100に命令アクセスサ
イクルを終了してもよいことを通知する信号である。
イクルを終了してもよいことを通知する信号である。
ホールドリクエストHREQ#は本発明のデータ処理装置
100にバス権を要求する信号であり、HACK#は本発明の
データ処理装置100がホールドリクエストHREQ#を受付
けてバス権を他のデバイスに渡したことを示す信号であ
る。
100にバス権を要求する信号であり、HACK#は本発明の
データ処理装置100がホールドリクエストHREQ#を受付
けてバス権を他のデバイスに渡したことを示す信号であ
る。
IRL(0:2)は外部割込み要求信号である。
IACK#は本発明のデータ処理装置100が外部割込みを
受付け、割込みベクトルアクセスサイクルを行っている
ことを示す信号である。
受付け、割込みベクトルアクセスサイクルを行っている
ことを示す信号である。
(6.2)「外部デバイスのアクセス」 本発明のデータ処理装置100を用いた第6図に示した
システムの例では、本発明のデータ処理装置100とデー
タキャッシュ107,108とがデータピンに接続するデータ
バス102,アドレスピンに接続するアドレスバス101の
他、BAT(0:2),DAS#,R/W#,DS#,DC#でも接続されて
いる。
システムの例では、本発明のデータ処理装置100とデー
タキャッシュ107,108とがデータピンに接続するデータ
バス102,アドレスピンに接続するアドレスバス101の
他、BAT(0:2),DAS#,R/W#,DS#,DC#でも接続されて
いる。
本発明のデータ処理装置100と命令キャッシュ11とは
命令ピンに接続する命令バス103,アドレスバス101の
他、BAT(0:2),IAS#,IS#,IC#でも接続されている。
命令ピンに接続する命令バス103,アドレスバス101の
他、BAT(0:2),IAS#,IS#,IC#でも接続されている。
CLKはシステム全体に供給されシステムの基本タイミ
ングを決定するクロックである。
ングを決定するクロックである。
標準アクセスモードでのバスアクセスに際しては、デ
ータバス102を用いたデータアクセスと命令バス103を用
いた命令アクセスとをそれぞれ十分高速な外部のメモリ
に対して外部入力クロックCLKの2サイクルに1度の速
度で行う。
ータバス102を用いたデータアクセスと命令バス103を用
いた命令アクセスとをそれぞれ十分高速な外部のメモリ
に対して外部入力クロックCLKの2サイクルに1度の速
度で行う。
クワッドアクセスモードでのバスアクセスに際して
は、データバス102を用いたデータアクセスと命令バス1
03を用いた命令アクセスとをそれぞれ十分高速な外部の
メモリに対して外部入力クロックCLKの5サイクルに4
度の速度で行う。
は、データバス102を用いたデータアクセスと命令バス1
03を用いた命令アクセスとをそれぞれ十分高速な外部の
メモリに対して外部入力クロックCLKの5サイクルに4
度の速度で行う。
アドレスバス101はデータキャッシュ107,108のアクセ
スと命令キャッシュ106のアクセスとの両方に利用され
る。
スと命令キャッシュ106のアクセスとの両方に利用され
る。
(7)「本発明のデータ処理装置の例外処理機能」 (7.1)「本発明のデータ処理装置で検出されるEITの種
類」 本発明のデータ処理装置100で発生するEITには、命令
に依存しないEITとして、アクセスした論理アドレスに
対応するデータ及び命令が主メモリ109上になくページ
フォールトが発生した場合に検出されるページ不在例
外,論理アドレスを物理アドレスに変換中に発生するエ
ラーとメモリ保護違反及びI/O領域に関する不当なアク
セスが生じた場合に発生するアドレス変換例外,命令ま
たはオペランドアクセスにおいて一定時間以内にバスか
らの応答がなくメモリアクセスが実行されなかった場合
に発生するバスアクセス例外がある。
類」 本発明のデータ処理装置100で発生するEITには、命令
に依存しないEITとして、アクセスした論理アドレスに
対応するデータ及び命令が主メモリ109上になくページ
フォールトが発生した場合に検出されるページ不在例
外,論理アドレスを物理アドレスに変換中に発生するエ
ラーとメモリ保護違反及びI/O領域に関する不当なアク
セスが生じた場合に発生するアドレス変換例外,命令ま
たはオペランドアクセスにおいて一定時間以内にバスか
らの応答がなくメモリアクセスが実行されなかった場合
に発生するバスアクセス例外がある。
また、命令に依存して発生するEITとして、ジャンプ
命令のジャンプ先アドレスが奇数であった場合に発生す
る奇数アドレスジャンプトラップ,割当てられていない
命令及びアドレッシングモードのビットパターンを実行
しようとした場合に発生する予約命令例外,整数演算で
0除算を行なった場合に発生するゼロ除算トラップ,浮
動小数点命令を実行した際にマスクされていない例外を
検出した場合に発生する浮動小数点演算トラップ,TRAPA
命令により発生する無条件トラップ,TRAP/cc命令により
発生する条件トラップがある。
命令のジャンプ先アドレスが奇数であった場合に発生す
る奇数アドレスジャンプトラップ,割当てられていない
命令及びアドレッシングモードのビットパターンを実行
しようとした場合に発生する予約命令例外,整数演算で
0除算を行なった場合に発生するゼロ除算トラップ,浮
動小数点命令を実行した際にマスクされていない例外を
検出した場合に発生する浮動小数点演算トラップ,TRAPA
命令により発生する無条件トラップ,TRAP/cc命令により
発生する条件トラップがある。
その他、命令のアドレスがブレイクポイントにヒット
した場合あるいはシングルステップモードで命令を実行
した場合に発生するセルフデバッグトラップ,更には外
部からのハードウエア信号により発生する外部割込み,
インサーキット・エミュレータ用のハードウエア割込み
であるデバッガー割込みがある。
した場合あるいはシングルステップモードで命令を実行
した場合に発生するセルフデバッグトラップ,更には外
部からのハードウエア信号により発生する外部割込み,
インサーキット・エミュレータ用のハードウエア割込み
であるデバッガー割込みがある。
(7.2)「EIT処理ハンドラを起動する時の動作」 本発明のデータ処理装置100ではEITを検出すると、以
下の手順に従うマイクロプログラムが実行され、EIT処
理ハンドラが起動される。
下の手順に従うマイクロプログラムが実行され、EIT処
理ハンドラが起動される。
まず、検出したEITに応じたベクトル番号が本発明の
データ処理装置100内部で生成される。
データ処理装置100内部で生成される。
次に、メモリ空間上にあり、それぞれのEITに対する
処理ハンドラの先頭アドレスとEITのベクトルとがペア
にして記憶されているEITベクトルテーブルがアクセス
される。
処理ハンドラの先頭アドレスとEITのベクトルとがペア
にして記憶されているEITベクトルテーブルがアクセス
される。
EITベクトルテーブルの各エントリは8バイトで構成
されており、EIT処理ハンドラに処理が移る前に本発明
のデータ処理装置100のプロセッサステータスワード(P
SW)を更新するためのデータが含まれている。
されており、EIT処理ハンドラに処理が移る前に本発明
のデータ処理装置100のプロセッサステータスワード(P
SW)を更新するためのデータが含まれている。
次に、EIT処理ハンドラから復帰した後に元の命令列
に戻るための戻り先命令の論理アドレスであるNEXTPC,E
ITを起動する前のPSW,及び検出したEITの番号等の検出
したEITに関する各種の情報であるEITINFがスタックに
退避される。
に戻るための戻り先命令の論理アドレスであるNEXTPC,E
ITを起動する前のPSW,及び検出したEITの番号等の検出
したEITに関する各種の情報であるEITINFがスタックに
退避される。
更に必要であれば、EITを検出した命令の論理アドレ
ス等の情報もスタックに退避される。
ス等の情報もスタックに退避される。
これらの処理により生成されるスタックフレームはEI
Tの種類に依存しており、第1図に示す如き5種類のフ
ォーマットに分かれる。
Tの種類に依存しており、第1図に示す如き5種類のフ
ォーマットに分かれる。
次に、読込まれたEITベクトルテーブルエントリに基
づいてPSWが更新される。この際、PSWにreservedの値が
セットされようとするとシステムエラーとなる。このPS
Wの更新により、メモリ保護情報となるリング番号の更
新,アドレス変換の有無の切換え,デバッグ環境の切り
換え,割込みマスクレベルの切換え,浮動小数点演算ト
ラップ受付モードの切換えを行うことが可能になる。
づいてPSWが更新される。この際、PSWにreservedの値が
セットされようとするとシステムエラーとなる。このPS
Wの更新により、メモリ保護情報となるリング番号の更
新,アドレス変換の有無の切換え,デバッグ環境の切り
換え,割込みマスクレベルの切換え,浮動小数点演算ト
ラップ受付モードの切換えを行うことが可能になる。
次に、EITテーブルのエントリからフェッチされたPC
値へのジャンプが行われ、EIT処理ハンドラが起動す
る。多重にEITが検出されており、未処理のEITが抑止さ
れていない場合はEIT処理ハンドラの先頭命令を実行す
る以前にその未処理のEITに対するEIT処理ハンドラを起
動するための処理が行われる。
値へのジャンプが行われ、EIT処理ハンドラが起動す
る。多重にEITが検出されており、未処理のEITが抑止さ
れていない場合はEIT処理ハンドラの先頭命令を実行す
る以前にその未処理のEITに対するEIT処理ハンドラを起
動するための処理が行われる。
(7.3)「EIT処理ハンドラから元の命令列への復帰動
作」 EIT処理ハンドラによる各EITに対応する処理が終了し
た後、EIT処理ハンドラで最後に実行されるREIT命令で
は以下のような処理を行うマイクロプログラムが実行さ
れて元の命令列に復帰する処理を行う。
作」 EIT処理ハンドラによる各EITに対応する処理が終了し
た後、EIT処理ハンドラで最後に実行されるREIT命令で
は以下のような処理を行うマイクロプログラムが実行さ
れて元の命令列に復帰する処理を行う。
まず、スタックからEITが検出された時点のPSW値とEI
TINFとが読込まれる。続いてスタックから戻先命令の論
理アドレスが読込まれる。
TINFとが読込まれる。続いてスタックから戻先命令の論
理アドレスが読込まれる。
更に、EITINF中のフォーマット情報により追加情報の
有無が判定され、追加情報があればスタックからそれが
読込まれる。追加情報は第1図に示した5つのフォーマ
ットに依存してそれぞれ異なる。
有無が判定され、追加情報があればスタックからそれが
読込まれる。追加情報は第1図に示した5つのフォーマ
ットに依存してそれぞれ異なる。
次に、スタックから読込まれたEITが検出された時点
のPSW値に従ってPSWの全フィールドがEIT発生前の値に
復帰される。
のPSW値に従ってPSWの全フィールドがEIT発生前の値に
復帰される。
フォーマット5のEITから復帰する際は、EITを発生し
たストアバッファによるライトサイクルの再実行をREIT
命令の実行中に行なう場合がある。この場合、ライトサ
イクルの再実行に必要な論理アドレス及びストアデータ
としては、スタック上の追加情報の中にあるSTADDR,STD
ATAH,STDATALが使用される。
たストアバッファによるライトサイクルの再実行をREIT
命令の実行中に行なう場合がある。この場合、ライトサ
イクルの再実行に必要な論理アドレス及びストアデータ
としては、スタック上の追加情報の中にあるSTADDR,STD
ATAH,STDATALが使用される。
次に、スタックから読込まれた戻り先命令の論理アド
レスへのジャンプが実行され、元の命令列に復帰する。
レスへのジャンプが実行され、元の命令列に復帰する。
(7.4)「EITスタックフレームの詳細」 EITの検出に伴ってスタックに退避され、EIT処理ハン
ドラへのパラメータとなる情報であるEITスタックフレ
ームは、EITの処理に依存して第1図に示す5つのフォ
ーマットに分かれる。
ドラへのパラメータとなる情報であるEITスタックフレ
ームは、EITの処理に依存して第1図に示す5つのフォ
ーマットに分かれる。
フォーマット番号0のフォーマットは、予約命令例外
と外部割込みの際に形成されるスタックフレームのフォ
ーマットである。
と外部割込みの際に形成されるスタックフレームのフォ
ーマットである。
フォーマット番号2のフォーマットは、セルフデバッ
グトラップ,奇数アドレスジャンプトラップ,ゼロ除算
トラップ,条件トラップ,無条件トラップの際に形成さ
れるスタックフレームのフォーマットである。
グトラップ,奇数アドレスジャンプトラップ,ゼロ除算
トラップ,条件トラップ,無条件トラップの際に形成さ
れるスタックフレームのフォーマットである。
フォーマット番号3のフォーマットは、デバッガー割
込みの際に形成されるスタックフレームのフォーマット
である。
込みの際に形成されるスタックフレームのフォーマット
である。
フォーマット番号4のフォーマットは、浮動小数点演
算トラップの際に形成されるスタックフレームのフォー
マットである。
算トラップの際に形成されるスタックフレームのフォー
マットである。
フォーマット番号5のフォーマットは、ページ不在例
外,アドレス変換例外,バスアクセス例外の際に形成さ
れるスタックのフォーマットである。
外,アドレス変換例外,バスアクセス例外の際に形成さ
れるスタックのフォーマットである。
第1図において、PSW10はEITが検出された時点の本発
明のデータ処理装置のPSW値,EITINF 11はEITフレームの
スタックフォーマット及びEIT番号等のEITに関する制御
情報,NEXTPC 12はREIT命令でEIT処理ハンドラから戻っ
た後に実行する命令の論理アドレス,EXPC 13はEITの検
出時にEステージ35で実行していた命令の論理アドレ
ス,IOINF0 14a,IOINF1 15a,IOINFn 16aはストアバッフ
ァで未処理のデータに関するメモリアクセスのための情
報,STPC0 14b,STPC1 15b,STPCn 16b,ストアバッファで
未処理のデータに関するストア動作を行った命令の論理
アドレス,STADDR0 14c,STADDR1 15c,STADDRn 16cはスト
アバッファで未処理のデータのストア先論理アドレス,S
DATA0H 14d,STDATA1H 15d,STDATAnH 16dはストアバッフ
ァで未処理のデータの上位4バイト,SDATA0L 14e,STDAT
A1L 15e,STDATAnL 16eはストアバッファで未処理のデー
タの下位4バイト,EITDATAH 17aは浮動小数点演算で例
外検出の原因となったデータの上位4バイト,EITDATAL
17bは浮動小数点演算で例外検出の原因となったデータ
の下位4バイト,SRCH 17cは浮動小数点演算で例外検出
の原因となった演算の第1オペランドの上位4バイト,S
RCL 17dは浮動小数点演算で例外検出の原因となった演
算の第1オペランドの下位4バイト,DESTH 17eは浮動小
数点演算で例外検出の原因となった演算の第2オペラン
ドの上位4バイト,DESTL 17fは浮動小数点演算で例外検
出の原因となった演算の第2オペランドの下位4バイ
ト,SPI 18はEIT検出時点の割込み処理用スタックポイン
タである。
明のデータ処理装置のPSW値,EITINF 11はEITフレームの
スタックフォーマット及びEIT番号等のEITに関する制御
情報,NEXTPC 12はREIT命令でEIT処理ハンドラから戻っ
た後に実行する命令の論理アドレス,EXPC 13はEITの検
出時にEステージ35で実行していた命令の論理アドレ
ス,IOINF0 14a,IOINF1 15a,IOINFn 16aはストアバッフ
ァで未処理のデータに関するメモリアクセスのための情
報,STPC0 14b,STPC1 15b,STPCn 16b,ストアバッファで
未処理のデータに関するストア動作を行った命令の論理
アドレス,STADDR0 14c,STADDR1 15c,STADDRn 16cはスト
アバッファで未処理のデータのストア先論理アドレス,S
DATA0H 14d,STDATA1H 15d,STDATAnH 16dはストアバッフ
ァで未処理のデータの上位4バイト,SDATA0L 14e,STDAT
A1L 15e,STDATAnL 16eはストアバッファで未処理のデー
タの下位4バイト,EITDATAH 17aは浮動小数点演算で例
外検出の原因となったデータの上位4バイト,EITDATAL
17bは浮動小数点演算で例外検出の原因となったデータ
の下位4バイト,SRCH 17cは浮動小数点演算で例外検出
の原因となった演算の第1オペランドの上位4バイト,S
RCL 17dは浮動小数点演算で例外検出の原因となった演
算の第1オペランドの下位4バイト,DESTH 17eは浮動小
数点演算で例外検出の原因となった演算の第2オペラン
ドの上位4バイト,DESTL 17fは浮動小数点演算で例外検
出の原因となった演算の第2オペランドの下位4バイ
ト,SPI 18はEIT検出時点の割込み処理用スタックポイン
タである。
第3図は第1図に示したEITに関するスタックフレー
ムの各フォーマットの上位バイト部分の詳細を示す模式
図である。
ムの各フォーマットの上位バイト部分の詳細を示す模式
図である。
第1図のEITINF 11は、8ビットで表現されたスタッ
クフォーマット番号であるFormat 11a,8ビットで表現さ
れたEITタイプ番号であるType 11b,9ビットで表現され
たEITベクトル番号であるvector 11cにて構成されてい
る。
クフォーマット番号であるFormat 11a,8ビットで表現さ
れたEITタイプ番号であるType 11b,9ビットで表現され
たEITベクトル番号であるvector 11cにて構成されてい
る。
Type 11bはEITを受付ける優先順位を示す。各EITのVe
tor 11c,Type 11b,Format 11aは第29図に示す如くであ
る。
tor 11c,Type 11b,Format 11aは第29図に示す如くであ
る。
第2図は、第1図に示されているIOINF0 14a,IOINF1
15a,IOINFn 16aの詳細内容を示す模式図である。これら
はすべて第2図に示す如き統一されたフォーマットを有
する。
15a,IOINFn 16aの詳細内容を示す模式図である。これら
はすべて第2図に示す如き統一されたフォーマットを有
する。
NWR 20はREIT命令におけるライトリトライの要,不要
を示すビットであり、NWR=0であればライトリトライ
が必要であることを、NWR=1であればライトリトライ
が不要である。
を示すビットであり、NWR=0であればライトリトライ
が必要であることを、NWR=1であればライトリトライ
が不要である。
ATEL 21aはアドレス変換例外の発生位置を示す4ビッ
トの情報である。
トの情報である。
ATEC 21bはメモリアクセス関係のエラーの種類を示す
4ビットのエラーコードである。
4ビットのエラーコードである。
NAT 22はアドレス変換の有無を示すビットであり、NA
T=0であればアドレス変換ありを示し、NAT=1であれ
ばアドレス変換なしを示す。
T=0であればアドレス変換ありを示し、NAT=1であれ
ばアドレス変換なしを示す。
BL 23はバスサイクルがバスロック状態であるか否か
を示すビットであり、BL=0であればバスロック中でな
いことを示し、BL=1であればバスロック中であること
を示す。
を示すビットであり、BL=0であればバスロック中でな
いことを示し、BL=1であればバスロック中であること
を示す。
CON 24はライトリトライすべき未処理のデータの継続
の有無を示すビットであり、CON=0であれば未処理デ
ータのIOINF,STPC,STADDR,STDATAH,STDATALの組が継続
しないことを示し、CON=1であれば継続することを示
す。
の有無を示すビットであり、CON=0であれば未処理デ
ータのIOINF,STPC,STADDR,STDATAH,STDATALの組が継続
しないことを示し、CON=1であれば継続することを示
す。
RD 25はバスサイクル種別を示すビットであり、RD=
0であればライトアクセスであることを、RD=1であれ
ばリードアクセスであることをそれぞれ示す。
0であればライトアクセスであることを、RD=1であれ
ばリードアクセスであることをそれぞれ示す。
BAT 26はEITが発生したバスサイクルの種類を示す。
SIZ 27はライトリトライを行う際のデータサイズを示
す。
す。
以上のように本発明のデータ処理装置100ではEITに応
じて豊富な情報を含むスタックフレームを形成し、EIT
処理ハンドラに必要な情報を渡す。
じて豊富な情報を含むスタックフレームを形成し、EIT
処理ハンドラに必要な情報を渡す。
特に、フォーマット番号5のフォーマットでは、スト
アバッファで処理中のデータに関する命令のアドレスと
Eステージ35で処理完了段階にある命令のアドレスとが
共にスタックに退避される他、更にIOINF中のCON 24に
よりIOINF,STPC,STADDR,STDATAH,STDATALの組の継続の
有無が指定され、ストアバッファに未処理中データが複
数存在している状態でEITが検出された場合にも十分な
情報がスタックに退避される。
アバッファで処理中のデータに関する命令のアドレスと
Eステージ35で処理完了段階にある命令のアドレスとが
共にスタックに退避される他、更にIOINF中のCON 24に
よりIOINF,STPC,STADDR,STDATAH,STDATALの組の継続の
有無が指定され、ストアバッファに未処理中データが複
数存在している状態でEITが検出された場合にも十分な
情報がスタックに退避される。
(7.5)「EIT処理ハンドラ起動時の動作例」 ここで、本発明のデータ処理装置100においてEITが検
出され、EIT処理ハンドラが起動されるまでの動作例に
ついて第30図に示すフローチャートを参照して説明す
る。
出され、EIT処理ハンドラが起動されるまでの動作例に
ついて第30図に示すフローチャートを参照して説明す
る。
命令Aのオペランドのストア動作がストアバッファで
処理中に、命令Bのオペランドストア動作及び命令Bに
引続く命令Cのオペランドのストア動作がストアバッフ
ァで受付けられて命令Aのオペランドストア動作の終了
待ち状態にあり、且つEステージ35で命令Cに引続く命
令Dの処理が終了し、命令Dに引続く命令Eが未処理で
ある時点で、命令Dのアドレスがブレイクポイントにヒ
ットしてセルフデバッグトラップが検出される(ステッ
プS1)。
処理中に、命令Bのオペランドストア動作及び命令Bに
引続く命令Cのオペランドのストア動作がストアバッフ
ァで受付けられて命令Aのオペランドストア動作の終了
待ち状態にあり、且つEステージ35で命令Cに引続く命
令Dの処理が終了し、命令Dに引続く命令Eが未処理で
ある時点で、命令Dのアドレスがブレイクポイントにヒ
ットしてセルフデバッグトラップが検出される(ステッ
プS1)。
同時に、命令Aのオペランドストア動作でバスエラー
が発生してバスアクセス例外が検出される(ステップS
1)。
が発生してバスアクセス例外が検出される(ステップS
1)。
次に、セルフデバッグトラップとバスアクセス例外と
の優先順位が判断され、優先順位が高いバスアクセス例
外に対するEIT処理ハンドラ起動のための処理が開始さ
れる(ステップS2)。
の優先順位が判断され、優先順位が高いバスアクセス例
外に対するEIT処理ハンドラ起動のための処理が開始さ
れる(ステップS2)。
ストアバッファにおいて処理待ち状態にある命令B及
びCの入出力情報,論理アドレス,ストア先論理アドレ
ス,ストアデータ、命令Dの論理アドレス、命令Eの論
理アドレス、更にEIT検出時点のPSW値が作業用レジスタ
に退避される(ステップS3)。
びCの入出力情報,論理アドレス,ストア先論理アドレ
ス,ストアデータ、命令Dの論理アドレス、命令Eの論
理アドレス、更にEIT検出時点のPSW値が作業用レジスタ
に退避される(ステップS3)。
次に、バスアクセス例外に対するEITベクトル番号17
がデータ処理装置内部において生成され、EITベクトル
番号17に対応するEITテーブルのエントリからバスアク
セス例外に対応するEITベクトル及びEITハンドラの先頭
番地がフェッチされ、これらが作業レジスタに一旦保持
される(ステップS4)。
がデータ処理装置内部において生成され、EITベクトル
番号17に対応するEITテーブルのエントリからバスアク
セス例外に対応するEITベクトル及びEITハンドラの先頭
番地がフェッチされ、これらが作業レジスタに一旦保持
される(ステップS4)。
次に、EITベクトルとEIT検出時点のPSW値とから新た
なPSW値が決定されてPSWにセットされる。この際、EIT
ベクトルの内容に従ってデバッグ環境が切換えられ、セ
ルフデバッグトラプの起動が抑止される(ステップS
5)。従って、バスアクセス例外のEIT処理ハンドラ起動
時の処理でフエッチされたEITベクトルでセルフデバッ
グトラップの起動が抑止されたことになる。
なPSW値が決定されてPSWにセットされる。この際、EIT
ベクトルの内容に従ってデバッグ環境が切換えられ、セ
ルフデバッグトラプの起動が抑止される(ステップS
5)。従って、バスアクセス例外のEIT処理ハンドラ起動
時の処理でフエッチされたEITベクトルでセルフデバッ
グトラップの起動が抑止されたことになる。
次に、命令Cの入出力情報から命令Cに関するIOINF
が生成され、これと命令Cの論理アドレス,オペランド
のストア先論理アドレス,ストアデータとが組みにされ
てスタックに退避される。この際、命令Cに関するIOIN
FのCON 24の値は“0"になる(ステップS6)。
が生成され、これと命令Cの論理アドレス,オペランド
のストア先論理アドレス,ストアデータとが組みにされ
てスタックに退避される。この際、命令Cに関するIOIN
FのCON 24の値は“0"になる(ステップS6)。
次に、命令Bの入出力情報から命令Bに関するIOINF
が生成され、これと命令Cの論理アドレス,オペランド
のストア先論理アドレス,ストアデータとが組みにされ
てスタックに退避される。この際、命令Bに関するIOIN
FのCON 24の値は“1"になる(ステップS7)。
が生成され、これと命令Cの論理アドレス,オペランド
のストア先論理アドレス,ストアデータとが組みにされ
てスタックに退避される。この際、命令Bに関するIOIN
FのCON 24の値は“1"になる(ステップS7)。
次に、命令Aの入出力情報から命令Aに関するIOINF
が生成され、これと命令Cの論理アドレス,オペランド
のストア先論理アドレス,ストアデータとが組みにされ
てスタックに退避される。この際、命令Aに関するIOIN
FのCON 24の値は“1"になる(ステップS8)。
が生成され、これと命令Cの論理アドレス,オペランド
のストア先論理アドレス,ストアデータとが組みにされ
てスタックに退避される。この際、命令Aに関するIOIN
FのCON 24の値は“1"になる(ステップS8)。
次に、命令Dの論理アドレスがEXPC 13としてスタッ
クに退避される(ステップ9)。
クに退避される(ステップ9)。
次に、命令Eの論理アドレスがNEXTPC 12としてスタ
ックに退避される(ステップS10)。
ックに退避される(ステップS10)。
次に、バスアクセス例外のEITベクトル番号17とEITタ
イプ番号1とスタックフォーマット番号5とがEITINFと
してスタックに退避される(ステップS11)。
イプ番号1とスタックフォーマット番号5とがEITINFと
してスタックに退避される(ステップS11)。
そして、作業用レジスタからEIT発生時点のPSW値が読
出されてスタックに退避される(ステップS12)。
出されてスタックに退避される(ステップS12)。
最後に、作業用レジスタからEIT処理ハンドラの先頭
番地が読出され、そのアドレスの命令へジャンプ処理が
実行される(ステップS13)。
番地が読出され、そのアドレスの命令へジャンプ処理が
実行される(ステップS13)。
この例では命令A,命令B,命令Cに関するライトサイク
ルの再処理が必要なため、それぞれの命令についてのIO
INF,STPC,STADDR,STDATAH,STDATALの組3つスタックに
ストアされる。
ルの再処理が必要なため、それぞれの命令についてのIO
INF,STPC,STADDR,STDATAH,STDATALの組3つスタックに
ストアされる。
命令Cに関するストア情報はIOINF2,STPC2,STADDR2,S
TDATA2H,STDATA2Lとしてスタックの一番下の領域に退避
され、命令Cに関するIOINFであるIOINF2のCONは“0"に
なる。
TDATA2H,STDATA2Lとしてスタックの一番下の領域に退避
され、命令Cに関するIOINFであるIOINF2のCONは“0"に
なる。
命令Bに関するストア情報は、IOINF1,STPC1,STADDR
1,STDATAH1H,STDATA1Lとしてスタックの下から2番目の
領域に退避され、命令Bに関するIOINFであるIOINF1のC
ONは“1"になる。
1,STDATAH1H,STDATA1Lとしてスタックの下から2番目の
領域に退避され、命令Bに関するIOINFであるIOINF1のC
ONは“1"になる。
命令Aに関するストア情報は、IOINF0,STPC0,STADDR
0,STDATA0H,STDATA0Lとしてスタックの下から3番目の
領域に退避され、命令Aに関するIOINFであるIOINF0のC
ONは1になる。
0,STDATA0H,STDATA0Lとしてスタックの下から3番目の
領域に退避され、命令Aに関するIOINFであるIOINF0のC
ONは1になる。
また、EXPC 13は命令Dの論理アドレスとなり、NEXTP
C 11は命令Eの論理アドレスとなる。
C 11は命令Eの論理アドレスとなる。
(7.6)「EIT処理ハンドラからの復帰時の動作例」 上述のEIT処理ハンドラにより命令Aのストア動作に
関するバスアクセス例外の原因が取り除かれた後、命令
Eに戻るためにREIT命令が実行される。
関するバスアクセス例外の原因が取り除かれた後、命令
Eに戻るためにREIT命令が実行される。
第31図は上述のREIT命令の実行動作の手順を示すフロ
ーチャートである。
ーチャートである。
まず、スタックからEIT発生時点のPSW値がフェッチさ
れ、作業用レジスタに退避される(ステップS21)。
れ、作業用レジスタに退避される(ステップS21)。
次に、スタックからEITINFがフェッチされ、スタック
フォーマット番号であるFormatからスタックフレームの
フォーマットが判明する(ステップS22)。
フォーマット番号であるFormatからスタックフレームの
フォーマットが判明する(ステップS22)。
次に、スタックからNEXTPC 12とEXPC 13とがフェッチ
され、作業用レジスタに退避される(ステップS23)。
され、作業用レジスタに退避される(ステップS23)。
次に、スタックからIOINF0,STPC0,STDATA0H,STDATA0L
がフェッチされ、作業レジスタに退避される(ステップ
S24)。
がフェッチされ、作業レジスタに退避される(ステップ
S24)。
次に、IOINF0のCONビットがチェックされる。この結
果は“1"であるので、更にライトリトライすべきデータ
が存在することを表しているので、スタックからIOINF
1,STPC1,STDATA1H,STDATA1Lがフェッチされ、作業レジ
スタに退避される(ステップS25)。
果は“1"であるので、更にライトリトライすべきデータ
が存在することを表しているので、スタックからIOINF
1,STPC1,STDATA1H,STDATA1Lがフェッチされ、作業レジ
スタに退避される(ステップS25)。
次に、IOINF1のCONビットがチェックされる。この結
果は“1"であるので、更にライトリトライすべきデータ
が存在することを表しているので、スタックからIOINF
2,STPC2,STDATA2H,STDATA2Lがフェッチされ、作業レジ
スタに退避される(ステップS26)。
果は“1"であるので、更にライトリトライすべきデータ
が存在することを表しているので、スタックからIOINF
2,STPC2,STDATA2H,STDATA2Lがフェッチされ、作業レジ
スタに退避される(ステップS26)。
次に、IOINF2のCONビットがチェックされる。この結
果は“0"であるので、ライトリトライすべきデータは既
にない。即ち、ライトリトライ処理は総て完了している
ので、作業レジスタからEIT発生時点のPSWが読出され、
この値にてPSWが更新される(ステップS27)。
果は“0"であるので、ライトリトライすべきデータは既
にない。即ち、ライトリトライ処理は総て完了している
ので、作業レジスタからEIT発生時点のPSWが読出され、
この値にてPSWが更新される(ステップS27)。
次に、作業レジスタからIOINF0,STPC0,STDATA0H,STDA
TA0Lが読出され、命令Aに対するライトリトライ処理が
実行される(ステップS28)。
TA0Lが読出され、命令Aに対するライトリトライ処理が
実行される(ステップS28)。
次に、作業レジスタからIOINF1,STPC1,STDATA1H,STDA
TA1Lが読出され、命令Bに対するライトリトライ処理が
実行される(ステップS29)。
TA1Lが読出され、命令Bに対するライトリトライ処理が
実行される(ステップS29)。
次に、作業レジスタからIOINF2,STPC2,STDATA2H,STDA
TA2Lが読出され、命令Cに対するライトリトライ処理が
実行される(ステップS30)。
TA2Lが読出され、命令Cに対するライトリトライ処理が
実行される(ステップS30)。
次に、命令Eに復帰する以前に復帰されたPSWにより
デバッグ環境が切換えられ、抑止されていたセルフデバ
ッグトラップが検出され、セルフデバッグトラップに対
するEIT処理ハンドラの起動のための処理が開始される
(ステップS31)。
デバッグ環境が切換えられ、抑止されていたセルフデバ
ッグトラップが検出され、セルフデバッグトラップに対
するEIT処理ハンドラの起動のための処理が開始される
(ステップS31)。
次に、セルフデバッグトラップに対するEITベクトル
番号16がデータ処理装置内部で生成され、EITベクトル
番号16に対応するEITテーブルエントリからセルフデバ
ッグトラップに対するEITベクトルとEITハンドラの先頭
番地がフェッチされ、これらが作業用レジスタに一旦保
持される(ステップS32)。
番号16がデータ処理装置内部で生成され、EITベクトル
番号16に対応するEITテーブルエントリからセルフデバ
ッグトラップに対するEITベクトルとEITハンドラの先頭
番地がフェッチされ、これらが作業用レジスタに一旦保
持される(ステップS32)。
EITベクトルとEIT検出時点のPSW値とから新たなPSW値
が決定され、PSWにセットされる(ステップS33)。
が決定され、PSWにセットされる(ステップS33)。
次に、作業用レジスタから命令Dの論理アドレスであ
るEXPC 13が読出され、スタックに退避される(ステッ
プS34)。
るEXPC 13が読出され、スタックに退避される(ステッ
プS34)。
次に、作業用レジスタから命令Eの論理アドレスであ
るNEXTPC 12が読出され、スタックに退避される(ステ
ップS35)。
るNEXTPC 12が読出され、スタックに退避される(ステ
ップS35)。
次に、セルフデバッグトラップに対するEITベクトル
番号16とEITタイプ番号2とスタックフォーマット番号
2とがEIINFとしてスタックに退避される(ステップS3
6)。
番号16とEITタイプ番号2とスタックフォーマット番号
2とがEIINFとしてスタックに退避される(ステップS3
6)。
そして、作業用レジスタからEIT発生時点のPSW値が読
出されてスタックに退避される(ステップS37)。
出されてスタックに退避される(ステップS37)。
最後に、作業用レジスタからEIT処理ハンドラの先頭
番地が読出され、そのアドレスへのジャンプが実行され
る(ステップS38)。
番地が読出され、そのアドレスへのジャンプが実行され
る(ステップS38)。
この例では、命令Eへジャンプして元の命令列に復帰
する前に命令A,命令B,命令Cのストア動作のライトリト
ライが行われる。
する前に命令A,命令B,命令Cのストア動作のライトリト
ライが行われる。
ライトリトライすべきデータの数は各命令に関するIO
INF中のCONビットを順次チェックすることにより知るこ
とが可能である。
INF中のCONビットを順次チェックすることにより知るこ
とが可能である。
即ち、CON=1である場合は更にライトリトライすべ
きデータがスタックに存在し、CON=0であるIOINFとそ
れに関するSTPC,STADDR,STDATAH,STDATALとが読出され
れば、それ以上ライトリトライすべきデータはスタック
上には退避されていない。そして最後に、REIT命令でPS
Wを復帰した際に抑止されていた命令Dに対するセルフ
デバッグトラップが起動される。
きデータがスタックに存在し、CON=0であるIOINFとそ
れに関するSTPC,STADDR,STDATAH,STDATALとが読出され
れば、それ以上ライトリトライすべきデータはスタック
上には退避されていない。そして最後に、REIT命令でPS
Wを復帰した際に抑止されていた命令Dに対するセルフ
デバッグトラップが起動される。
第32図は命令Dのセルフデバッグトラップから復帰し
て命令Eの実行に移る際の手順を示すフローチャートで
ある。
て命令Eの実行に移る際の手順を示すフローチャートで
ある。
まず、スタックからEIT発生時点のPSW値がフェッチさ
れて作業用レジスタに退避される(ステップS41)。
れて作業用レジスタに退避される(ステップS41)。
次に、スタックからEITINFがフェッチされ、スタック
フォーマット番号であるFormatからスタックフレームの
フォーマットが判明する(ステップS42)。
フォーマット番号であるFormatからスタックフレームの
フォーマットが判明する(ステップS42)。
次に、スタックからNEXTPC 12とEXPC 13とがフェッチ
され、作業レジスタに退避される(ステップS43)。
され、作業レジスタに退避される(ステップS43)。
そして、作業用レジスタからEIT発生時点のPSW値が読
出され、この値でPSWが更新される(ステップS44)。
出され、この値でPSWが更新される(ステップS44)。
最後に、作業用レジスタから命令Eの論理アドレスで
あるNEXTPC 12が読出され、そのアドレスへジャンプす
る処理が実行される(ステップS45)。
あるNEXTPC 12が読出され、そのアドレスへジャンプす
る処理が実行される(ステップS45)。
(8)「本発明の他の実施例」 上述の実施例は、3段のストアバッファを有するデー
タ処理装置について本発明を適用した例である。しか
し、フォーマット番号5のフォーマットのEITスタック
フレームはストアバッファの段数が変化しても同じフォ
ーマットで対応可能であるので、4段あるいは5段、更
にはそれ以上の段数のストアバッファを備えたデータ処
理装置にも本発明が適用可能であることは言うまでもな
い。またストアバッファ段数が1段のデータ処理装置に
も適用可能である。
タ処理装置について本発明を適用した例である。しか
し、フォーマット番号5のフォーマットのEITスタック
フレームはストアバッファの段数が変化しても同じフォ
ーマットで対応可能であるので、4段あるいは5段、更
にはそれ以上の段数のストアバッファを備えたデータ処
理装置にも本発明が適用可能であることは言うまでもな
い。またストアバッファ段数が1段のデータ処理装置に
も適用可能である。
更に、本発明のデータ処理装置のフォーマット番号5
のEITスタックフレームでは種々の情報をスタックに退
避する場合のフォーマットを示している。しかし、この
内の一部の情報を含まないEITスタックフレームのフォ
ーマットを別に定め、EIT処理ハンドラ起動時にそのフ
ォーマットに従って情報をスタックに退避し、EIT処理
ハンドラではそのフォーマットに従って未処理データを
処理するようにしてもよい。
のEITスタックフレームでは種々の情報をスタックに退
避する場合のフォーマットを示している。しかし、この
内の一部の情報を含まないEITスタックフレームのフォ
ーマットを別に定め、EIT処理ハンドラ起動時にそのフ
ォーマットに従って情報をスタックに退避し、EIT処理
ハンドラではそのフォーマットに従って未処理データを
処理するようにしてもよい。
[発明の効果] 以上に詳述した如く本発明のデータの処理装置の第1
の発明では、ストアバッファに未処理のデータがあり且
つ命令実行ステージで命令が完了した時点で例外が発生
した場合に、ストアバッファにある未処理のデータとそ
のデータに関する命令のアドレスと実行ステージで実行
完了段階にある命令のアドレスとがスタックに退避され
るため、例外処理ハンドラではストアバッファでの処理
が未完了のデータに関する命令のアドレスと実行ステー
ジでの処理が完了した状態の命令のアドレスとの両方を
得ることが可能になる。この機能は命令実行ステージで
の処理が完了した命令がデバッグ関連の例外を検出して
いた場合には特に有効である。
の発明では、ストアバッファに未処理のデータがあり且
つ命令実行ステージで命令が完了した時点で例外が発生
した場合に、ストアバッファにある未処理のデータとそ
のデータに関する命令のアドレスと実行ステージで実行
完了段階にある命令のアドレスとがスタックに退避され
るため、例外処理ハンドラではストアバッファでの処理
が未完了のデータに関する命令のアドレスと実行ステー
ジでの処理が完了した状態の命令のアドレスとの両方を
得ることが可能になる。この機能は命令実行ステージで
の処理が完了した命令がデバッグ関連の例外を検出して
いた場合には特に有効である。
また、本発明のデータ処理装置の第2の発明では、ス
トアバッファに未処理のデータが複数ある時点で例外が
発生した場合に、ストアバッファの未処理のデータそれ
ぞれに関して、ストアされるべきデータとストア先アド
レスとストア処理を依頼した命令のアドレスとがスタッ
クに退避されるため、例外処理ハンドラではストア処理
が未完了のデータそれぞれに関する命令のアドレスを得
ることが可能になり、例外原因の解析が容易に行える。
トアバッファに未処理のデータが複数ある時点で例外が
発生した場合に、ストアバッファの未処理のデータそれ
ぞれに関して、ストアされるべきデータとストア先アド
レスとストア処理を依頼した命令のアドレスとがスタッ
クに退避されるため、例外処理ハンドラではストア処理
が未完了のデータそれぞれに関する命令のアドレスを得
ることが可能になり、例外原因の解析が容易に行える。
また、本発明のデータ処理装置の第3の発明では、ス
トアバッファに未処理のデータが複数ある時点で例外が
発生した場合に、ストアバッファにある未処理のデータ
それぞれに関して、ストアされるべきデータとストア先
アドレスとストア処理を行うために必要な情報とがスタ
ックに退避されるため、例外処理ハンドラでは未処理の
データのライトリトライを容易に行うことができる。
トアバッファに未処理のデータが複数ある時点で例外が
発生した場合に、ストアバッファにある未処理のデータ
それぞれに関して、ストアされるべきデータとストア先
アドレスとストア処理を行うために必要な情報とがスタ
ックに退避されるため、例外処理ハンドラでは未処理の
データのライトリトライを容易に行うことができる。
また、本発明のデータ処理装置の第4の発明では、ス
トアバッファにある未処理のデータが複数ある時点で例
外が発生してスタックに退避された複数の未処理データ
それぞれに関して、ストアされるべきデータとストア先
アドレスとストア処理を行うために必要な情報とに基づ
いて未処理データそれぞれのライトリトライを行う命令
を備えているので、この命令を例外処理ハンドラで実行
することにより、未処理データのライトリトライが容易
に可能である。
トアバッファにある未処理のデータが複数ある時点で例
外が発生してスタックに退避された複数の未処理データ
それぞれに関して、ストアされるべきデータとストア先
アドレスとストア処理を行うために必要な情報とに基づ
いて未処理データそれぞれのライトリトライを行う命令
を備えているので、この命令を例外処理ハンドラで実行
することにより、未処理データのライトリトライが容易
に可能である。
また、本発明のデータ処理装置の第5の発明では、ス
トアバッファに未処理のデータが複数ある時点で例外が
発生した場合に、ストアバッファにある未処理のデータ
それぞれに関して、ストアされるべきデータとストア先
アドレスとストア処理を行うために必要な情報と、更に
未処理データに関するデータの組が存在するか否かを示
す情報を含む一連のデータを組にしてスタックに退避す
る動作を再帰的に反復することにより、総ての未処理デ
ータがスタックに退避される。そして、スタックに退避
されているストアされるべきデータとストア先アドレス
とストア処理を行うために必要な情報と更に未処理デー
タに関するデータの組が存在するか否かを示す情報とを
含む一連のデータの組が例外処理ハンドラでフェッチさ
れる。更に、未処理のデータの組が存在するか否かを示
す情報をチェックする動作が再帰的に反復されることに
より、スタックに退避されている未処理のデータが総て
フェッチされて例外処理が行われる。このため、例外が
発生した際の例外処理ハンドラの起動処理と例外処理ハ
ンドラによる例外処理との間で未処理のデータの数には
無関係の統一したフォーマットで未処理データのやりと
りが可能になる。従って、本発明のデータ処理装置とソ
フトウエア互換性を有しストアバッファの容量が異なる
データ処理装置を容易に実現できる。また、複数の未処
理データそれぞれに対して例外処理ハンドラの起動処理
と例外処理ハンドラの例外処理とが再帰的に実行可能で
あるため、これらの処理に必要なハードウエアの量は未
処理データの数に関係なく一定であり、未処理データの
数を増加させても少ないハードウエアで処理可能であ
る。
トアバッファに未処理のデータが複数ある時点で例外が
発生した場合に、ストアバッファにある未処理のデータ
それぞれに関して、ストアされるべきデータとストア先
アドレスとストア処理を行うために必要な情報と、更に
未処理データに関するデータの組が存在するか否かを示
す情報を含む一連のデータを組にしてスタックに退避す
る動作を再帰的に反復することにより、総ての未処理デ
ータがスタックに退避される。そして、スタックに退避
されているストアされるべきデータとストア先アドレス
とストア処理を行うために必要な情報と更に未処理デー
タに関するデータの組が存在するか否かを示す情報とを
含む一連のデータの組が例外処理ハンドラでフェッチさ
れる。更に、未処理のデータの組が存在するか否かを示
す情報をチェックする動作が再帰的に反復されることに
より、スタックに退避されている未処理のデータが総て
フェッチされて例外処理が行われる。このため、例外が
発生した際の例外処理ハンドラの起動処理と例外処理ハ
ンドラによる例外処理との間で未処理のデータの数には
無関係の統一したフォーマットで未処理データのやりと
りが可能になる。従って、本発明のデータ処理装置とソ
フトウエア互換性を有しストアバッファの容量が異なる
データ処理装置を容易に実現できる。また、複数の未処
理データそれぞれに対して例外処理ハンドラの起動処理
と例外処理ハンドラの例外処理とが再帰的に実行可能で
あるため、これらの処理に必要なハードウエアの量は未
処理データの数に関係なく一定であり、未処理データの
数を増加させても少ないハードウエアで処理可能であ
る。
第1図は本発明のデータ処理装置のEITスタックフレー
ムのフォーマットを示す模式図。 第2図はEITスタックフレーム中のIOINFの詳細を示す模
式図。 第3図はEITスタックフレームの上部情報の詳細を示す
模式図。 第4図は本発明のデータ処理装置の全体の構成例を示す
ブロック図。 第5図は本発明のデータ処理装置のパイプライン処理ス
テージの説明のための模式図。 第6図は本発明のデータ処理装置を用いたデータ処理シ
ステムの構成例を示すブロック図。 第7図は本発明のデータ処理装置の入出力信号を示す模
式図。 第8図は本発明のデータ処理装置のオペランドアクセス
部の詳細な構成例を示すブロック図。 第9図から第13図は本発明のデータ処理装置の命令のフ
ォーマットを示す模式図。 第14図から第27図は本発明のデータ処理装置の命令中の
アドレッシングモード指定部のフォーマットを示す模式
図。 第28図は本発明のデータ処理装置のBAT(0:2)信号の意
味を示す図。 第29図は本発明のデータ処理装置のEITの種類とベクト
ル番号、タイプ番号、EITスタックフォーマットを示す
模式図。 第30図は本発明のデータ処理装置のEIT処理ハンドラ起
動時の処理手順の一例を示すフローチャート。 第31図は本発明のデータ処理装置のEIT処理ハンドラか
らの復帰時に抑止されていたEITが検出され、EIT処理ハ
ンドラが起動された場合の処理手順の一例を示すフロー
チャート。 第32図は本発明のデータ処理装置のEIT処理ハンドラか
らの復帰処理の処理手順の一例を示すフローチャート。 109……主メモリ、106……命令キャッシュメモリ、107,
108……データキャッシュメモリ、208……ストアバッフ
ァ部、113……第1マイクロROM部、114……第2マイク
ロROM部、115……オペランドアドレス計算部、116……P
C計算部、117……整数演算部、118……浮動小数点演算
部、120……オペランドアクセス部 なお、各図中同一符号は同一又は相当部分を示す。
ムのフォーマットを示す模式図。 第2図はEITスタックフレーム中のIOINFの詳細を示す模
式図。 第3図はEITスタックフレームの上部情報の詳細を示す
模式図。 第4図は本発明のデータ処理装置の全体の構成例を示す
ブロック図。 第5図は本発明のデータ処理装置のパイプライン処理ス
テージの説明のための模式図。 第6図は本発明のデータ処理装置を用いたデータ処理シ
ステムの構成例を示すブロック図。 第7図は本発明のデータ処理装置の入出力信号を示す模
式図。 第8図は本発明のデータ処理装置のオペランドアクセス
部の詳細な構成例を示すブロック図。 第9図から第13図は本発明のデータ処理装置の命令のフ
ォーマットを示す模式図。 第14図から第27図は本発明のデータ処理装置の命令中の
アドレッシングモード指定部のフォーマットを示す模式
図。 第28図は本発明のデータ処理装置のBAT(0:2)信号の意
味を示す図。 第29図は本発明のデータ処理装置のEITの種類とベクト
ル番号、タイプ番号、EITスタックフォーマットを示す
模式図。 第30図は本発明のデータ処理装置のEIT処理ハンドラ起
動時の処理手順の一例を示すフローチャート。 第31図は本発明のデータ処理装置のEIT処理ハンドラか
らの復帰時に抑止されていたEITが検出され、EIT処理ハ
ンドラが起動された場合の処理手順の一例を示すフロー
チャート。 第32図は本発明のデータ処理装置のEIT処理ハンドラか
らの復帰処理の処理手順の一例を示すフローチャート。 109……主メモリ、106……命令キャッシュメモリ、107,
108……データキャッシュメモリ、208……ストアバッフ
ァ部、113……第1マイクロROM部、114……第2マイク
ロROM部、115……オペランドアドレス計算部、116……P
C計算部、117……整数演算部、118……浮動小数点演算
部、120……オペランドアクセス部 なお、各図中同一符号は同一又は相当部分を示す。
Claims (5)
- 【請求項1】命令の実行を制御する制御部と、 前記制御部から出力される制御信号に従って命令を実行
する命令実行部と、 前記命令実行部と接続され、前記命令実行部から出力さ
れ外部のメモリの第1のアドレスにストアされるべき第
1の命令の第1のオペランドをバッファ部に保持し、前
記命令実行部と並列に動作してオペランドをストアする
オペランドアクセス部と を備え、 前記オペランドアクセス部で前記第1のオペランドのス
トア動作が完了する以前の時点において、前記命令実行
部において前記第1の命令とは異なる第2の命令の処理
が完了した際に前記制御部において例外の発生が検出さ
れた場合に、 前記メモリの前記第1のアドレスとは異なる領域に前記
第1のオペランドと前記第1のアドレスと前記第1の命
令のアドレスと前記第2の命令のアドレスとを退避すべ
くなしてあることを特徴とするデータ処理装置。 - 【請求項2】命令の実行を制御する制御部と、 前記制御部から出力される制御信号に従って命令を実行
する命令実行部と、 前記命令実行部と接続され、前記命令実行部から出力さ
れ外部のメモリの第1のアドレスにストアされるべき第
1の命令の第1のオペランドと、前記命令実行部から出
力され前記メモリの第2のアドレスにストアされるべき
第2の命令の第2のオペランドとをバッファ部に保持
し、前記命令実行部と並列に動作してオペランドをスト
ア動作するオペランドアクセス部と を備え、 前記第1のオペランドのストア動作と前記第2のオペラ
ンドのストア動作が完了する以前の時点で前記制御部で
例外の発生が検出された場合に、 前記メモリの前記第1のアドレスとも前記第2のアドレ
スとも異なる領域に前記第1のオペランドと前記第1の
アドレスと前記第1の命令のアドレスと前記第2のオペ
ランドと前記第2のアドレスと前記第2の命令のアドレ
スとを退避すべくなしてあることを特徴とするデータ処
理装置。 - 【請求項3】命令の実行を制御する制御部と、 前記制御部から出力される制御信号に従って命令を実行
する命令実行部と、 前記命令実行部と接続され、前記命令実行部から出力さ
れ外部のメモリの第1のアドレスにストアされるべき第
1の命令の第1のオペランドと、前記命令実行部から出
力され外部のメモリの第2のアドレスにストアされるべ
き前記第1の命令とは異なる第2の命令の第2のオペラ
ンドとをバッファ部に保持し、前記命令実行部と並列に
動作してオペランドをストア動作するオペランドアクセ
ス部と を備え、 前記第1のオペランドのストア動作と前記第2のオペラ
ンドのストア動作が完了する以前の時点に前記制御部で
例外の発生が検出された場合に、 前記メモリの前記第1のアドレスとも前記第2のアドレ
スとも異なる領域に前記第1のオペランドと前記第1の
アドレスと前記第2のオペランドと前記第2のアドレス
と前記第1のオペランドのストア処理に関する第1の情
報と前記第2のオペランドのストア処理に関する第2の
情報とを退避すべくなしてあることを特徴とするデータ
処理装置。 - 【請求項4】命令を実行する命令実行部と、 前記命令実行部に接続され、外部のメモリとの間でデー
タを入出力するオペランドアクセス部と を備え、 第1の命令の第1のオペランドに対する前記メモリの第
1のアドレスへのストア動作と第2の命令の第2のオペ
ランドに対する前記メモリの第2のアドレスへのストア
動作とが完了する以前の時点で且つ前記第2の命令より
後に実行されるべき第3の命令の処理前に発生した例外
に対応して、 前記第3の命令の処理を中止し、前記メモリの前記第1
のアドレスとも前記第2のアドレスとも異なる領域に退
避された前記第3の命令のアドレスと前記第1のオペラ
ンドと前記第1のアドレスと前記第1のオペランドのス
トア処理に関する第1の情報と前記第2のオペランドと
前記第2のアドレスと前記第2のオペランドのストア処
理に関する第2の情報とに従って、 前記第1のオペランドの前記第1のアドレスへのストア
処理と前記第2のオペランドの前記第2のアドレスへの
ストア処理を実行した後、前記第3の命令のアドレスへ
ジャンプする命令を実行すべくなしてあることを特徴と
するデータ処理装置。 - 【請求項5】命令を実行する命令実行部と、 前記命令実行部に接続され、外部のメモリとの間でデー
タを入出力するオペランドアクセス部と、 例外が発生した際に第1の未処理データと第1の未処理
データの処理を完了するための情報と第1の未処理デー
タ以前に前記メモリのスタック領域に退避された未処理
データが存在しないことを示す情報とにて構成される第
1の例外制御データとを含む第1のデータ群を前記スタ
ック領域に退避し、 第2の未処理データと第2の未処理データの処理を完了
するための情報と第2の未処理データ以前に前記スタッ
ク領域に退避された未処理データが存在することを示す
情報とにて構成される第2の例外制御データとを含む第
2のデータ群を前記スタック領域に退避した後、前記例
外に対する例外処理ハンドラを起動する例外処理ハンド
ラ起動手段と、 前記例外処理ハンドラで前記スタック領域から前記第2
のデータ群をフェッチし、前記第2の例外制御データに
基づいて前記第1のデータ群を前記スタック領域からフ
ェッチする例外処理手段と を備えたことを特徴とするデータ処理装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP1299394A JP2504235B2 (ja) | 1989-11-16 | 1989-11-16 | デ―タ処理装置 |
US08/200,904 US5440757A (en) | 1989-11-16 | 1994-02-23 | Data processor having multistage store buffer for processing exceptions |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP1299394A JP2504235B2 (ja) | 1989-11-16 | 1989-11-16 | デ―タ処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH03158929A JPH03158929A (ja) | 1991-07-08 |
JP2504235B2 true JP2504235B2 (ja) | 1996-06-05 |
Family
ID=17871988
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP1299394A Expired - Fee Related JP2504235B2 (ja) | 1989-11-16 | 1989-11-16 | デ―タ処理装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US5440757A (ja) |
JP (1) | JP2504235B2 (ja) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2671160B2 (ja) * | 1990-03-20 | 1997-10-29 | 富士通株式会社 | 例外処理方式 |
JP2889845B2 (ja) * | 1995-09-22 | 1999-05-10 | 松下電器産業株式会社 | 情報処理装置 |
US6279077B1 (en) * | 1996-03-22 | 2001-08-21 | Texas Instruments Incorporated | Bus interface buffer control in a microprocessor |
US6748493B1 (en) | 1998-11-30 | 2004-06-08 | International Business Machines Corporation | Method and apparatus for managing memory operations in a data processing system using a store buffer |
CN106873946B (zh) * | 2017-01-24 | 2019-06-04 | 青岛专用集成电路设计工程技术研究中心 | 一种中断处理方法及流水线控制器 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH081599B2 (ja) * | 1988-02-24 | 1996-01-10 | 三菱電機株式会社 | データ処理装置 |
US5008812A (en) * | 1988-03-18 | 1991-04-16 | Digital Equipment Corporation | Context switching method and apparatus for use in a vector processing system |
JPH0682320B2 (ja) * | 1988-06-08 | 1994-10-19 | 日本電気株式会社 | データ処理装置 |
US5119483A (en) * | 1988-07-20 | 1992-06-02 | Digital Equipment Corporation | Application of state silos for recovery from memory management exceptions |
US4985825A (en) * | 1989-02-03 | 1991-01-15 | Digital Equipment Corporation | System for delaying processing of memory access exceptions until the execution stage of an instruction pipeline of a virtual memory system based digital computer |
US5155816A (en) * | 1989-02-10 | 1992-10-13 | Intel Corporation | Pipelined apparatus and method for controlled loading of floating point data in a microprocessor |
US5142635A (en) * | 1989-04-07 | 1992-08-25 | Intel Corporation | Method and circuitry for performing multiple stack operations in succession in a pipelined digital computer |
-
1989
- 1989-11-16 JP JP1299394A patent/JP2504235B2/ja not_active Expired - Fee Related
-
1994
- 1994-02-23 US US08/200,904 patent/US5440757A/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US5440757A (en) | 1995-08-08 |
JPH03158929A (ja) | 1991-07-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2616182B2 (ja) | データ処理装置 | |
US5717946A (en) | Data processor | |
JP2761688B2 (ja) | データ処理装置 | |
US5652900A (en) | Data processor having 2n bits width data bus for context switching function | |
JP2581236B2 (ja) | データ処理装置 | |
JPH0766324B2 (ja) | データ処理装置 | |
JP2507638B2 (ja) | デ―タ処理装置 | |
JP2847974B2 (ja) | データ処理装置 | |
JPH01214932A (ja) | データ処理装置 | |
JPH07120278B2 (ja) | データ処理装置 | |
JP2669158B2 (ja) | データ処理装置 | |
JPH07120284B2 (ja) | データ処理装置 | |
US6757809B1 (en) | Data processor having 2n bits width data bus for context switching functions | |
JP3345787B2 (ja) | データ処理装置 | |
JP2504235B2 (ja) | デ―タ処理装置 | |
JP2556182B2 (ja) | デ−タ処理装置 | |
JP2668456B2 (ja) | ビット検索回路及びそれを備えたデータ処理装置 | |
US5212779A (en) | System for guarantee reexecution after interruption by conditionally used store buffer if microinstruction being executed is a memory write and last microinstruction | |
JP2504312B2 (ja) | プライオリティエンコ―ダ及びそれを備えたデ―タ処理装置 | |
JP2646855B2 (ja) | データ処理装置 | |
JPH0769806B2 (ja) | データ処理装置 | |
JP2522048B2 (ja) | マイクロプロセッサ及びそれを使用したデ―タ処理装置 | |
JP2696578B2 (ja) | データ処理装置 | |
JP2928879B2 (ja) | データ処理装置 | |
JPH0769801B2 (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 |