(57)【要約】【課題】複数のシステムに安価かつ容易に適用可能とし、また実行ユニット側でトラップ要求に対するプライオリティ制御をきめ細かく実行すること。【解決手段】少なくとも第１のオペレーティングシステム、第２のオペレーティングシステムに適合するトラップマップ２２００、２２０１の中から、演算処理装置を適用すべきオペレーティングシステムに対応するものを一つ選択するための選択データＳＥＬＡ１をトラップマップ選択レジスタ２４０に格納するリード／ライト制御部２６０と、上記選択データＳＥＬＡ１に対応するトラップマップ２２００（またはトラップマップ２２０１）に従って、整数演算器１０等の実行ユニッからのトラップ要求７１をトラップタイプデータ２３１にエンコードするトラップタイプエンコーダ２１０とを備えている。【選択図】        図１
2008016057.tif 000002
【特許請求の範囲】
【請求項１】
第１及び第２の処理を実行し、前記第１及び第２の処理の結果に基づいて第１及び第２のトラップ要求をそれぞれ発行する実行ユニットと、
前記第１及び第２のトラップ要求を受信し、前記第１又は第２のトラップ要求のいずれかを、所定の第１の優先順位に基づいて予め選択する優先順位制御部と、
トラップ要求と、トラップ要求に対するトラップ発生要因を特定するトラップ情報との対応を表すトラップマップと、
前記トラップマップに基づいて、前記優先順位制御部が選択したトラップ要求をトラップ情報に変換するトラップ情報変換部を有することを特徴とする演算処理装置。
【請求項２】
前記優先順位制御部は、
前記実行ユニットの状態を表す実行ユニット状態データを格納する実行ユニット状態データレジスタと、
前記実行ユニット状態データに基づいて、前記第１又は第２のトラップ要求のいずれかを選択するトラップ要求セレクタを有することを特徴とする請求項１記載の演算処理装置。
【請求項３】
前記実行ユニット状態データレジスタは、前記実行ユニットが内部に有するとともに、
前記トラップ要求セレクタは、前記実行ユニットが内部に有することを特徴とする請求項２記載の演算処理装置。
【請求項４】
第１及び第２の処理を実行し、前記第１及び第２の処理の結果に基づいて第１及び第２のトラップ要求をそれぞれ発行する第１の実行ユニットと、
第３の処理を実行し、前記第３の処理の結果に基づいて第３のトラップ要求を発行する第２の実行ユニットと、
前記第１及び第２のトラップ要求を受信し、前記第１又は第２のトラップ要求のいずれかを、所定の第１の優先順位に基づいて予め選択する第１の優先順位制御部と、
前記第１の優先順位制御部が選択したトラップ要求と前記第３のトラップ要求を受信し、前記第１の優先順位制御部が選択したトラップ要求又は第３のトラップ要求のいずれかを、所定の第２の優先順位に基づいて選択する第２の優先順位制御部と、
トラップ要求と、トラップ要求に対するトラップ発生要因を特定するトラップ情報との対応を表すトラップマップと、
前記トラップマップに基づいて、前記第２の優先順位制御部が選択したトラップ要求をトラップ情報に変換するトラップ情報変換部を有することを特徴とする演算処理装置。
【請求項５】
前記第１の優先順位制御部は、
前記第１の実行ユニットの状態を表す第１の実行ユニット状態データを格納する第１の実行ユニット状態データレジスタと、
前記第２の実行ユニットの状態を表す第２の実行ユニット状態データを格納する第２の実行ユニット状態データレジストと、
前記第１及び第２の実行ユニット状態データに基づいて、前記第１又は第２のトラップ要求のいずれかを選択するトラップ要求セレクタを有することを特徴とする請求項４記載の演算処理装置。
【請求項６】
前記第１の実行ユニット状態データレジスタは、前記第１の実行ユニットが内部に有し、
前記第２の実行ユニット状態データレジスタは、前記第２の実行ユニットが内部に有するとともに、
前記トラップ要求セレクタは、前記第１の実行ユニットが内部に有することを特徴とする請求項５記載の演算処理装置。
【請求項７】
演算処理装置と、前記演算処理装置に接続される記憶装置とを有する情報処理装置において、
前記演算処理装置は、
第１及び第２の処理を実行し、前記第１及び第２の処理の結果に基づいて第１及び第２のトラップ要求をそれぞれ発行する実行ユニットと、
前記第１及び第２のトラップ要求を受信し、前記第１又は第２のトラップ要求のいずれかを、所定の第１の優先順位に基づいて予め選択する優先順位制御部と、
トラップ要求と、トラップ要求に対するトラップ発生要因を特定するトラップ情報との対応を表すトラップマップと、
前記トラップマップに基づいて、前記優先順位制御部が選択したトラップ要求をトラップ情報に変換するトラップ情報変換部と、
前記トラップ情報を前記記憶装置に転送するインタフェース制御部を有することを特徴とする情報処理装置。
【請求項８】
実行ユニットを有する演算処理装置の制御方法において、
前記実行ユニットが、第１及び第２の処理を実行し、前記第１及び第２の処理の結果に基づいて第１及び第２のトラップ要求をそれぞれ発行するステップと、
前記演算処理装置が有する優先順位制御部が、前記第１及び第２のトラップ要求を受信し、前記第１又は第２のトラップ要求のいずれかを、所定の第１の優先順位に基づいて予め選択するステップと、
前記演算処理装置が有するトラップ情報変換部が、トラップ要求とトラップ要求に対するトラップ発生要因を特定するトラップ情報との対応を表すトラップマップに基づいて、前記優先順位制御部が選択したトラップ要求をトラップ情報に変換するステップを有することを特徴とする制御方法。
【請求項９】
前記優先順位制御部が、前記第１又は第２のトラップ要求のいずれかを予め選択するステップは、
実行ユニット状態データレジスタに、前記実行ユニットの状態を表す実行ユニット状態データを格納するステップと、
前記実行ユニット状態データに基づいて、前記第１又は第２のトラップ要求のいずれかを選択するステップを有することを特徴とする請求項８記載の制御方法。
【請求項１０】
前記実行ユニット状態データレジスタは、前記実行ユニットが内部に有することを特徴とする請求項９記載の制御方法。
【請求項１１】
第１及び第２の実行ユニットを有する演算処理装置の制御方法において、
前記第１の実行ユニットが、第１及び第２の処理を実行し、前記第１及び第２の処理の結果に基づいて第１及び第２のトラップ要求をそれぞれ発行するステップと、
前記第２の実行ユニットが、第３の処理を実行し、前記第３の処理の結果に基づいて第３のトラップ要求を発行するステップと、
前記演算処理装置が有する第１の優先順位制御部が、前記第１及び第２のトラップ要求を受信し、前記第１又は第２のトラップ要求のいずれかを、所定の第１の優先順位に基づいて予め選択するステップと、
前記演算処理装置が有する第２の優先順位制御部が、前記第１の優先順位制御部が選択したトラップ要求と前記第３のトラップ要求を受信し、前記第１の優先順位制御部が選択したトラップ要求又は第３のトラップ要求のいずれかを、所定の第２の優先順位に基づいて選択するステップと、
前記演算処理装置が有するトラップ情報変換部が、トラップ要求と、トラップ要求に対するトラップ発生要因を特定するトラップ情報との対応を表すトラップマップに基づいて、前記第２の優先順位制御部が選択したトラップ要求をトラップ情報に変換するトラップ情報変換部を有することを特徴とする制御方法。
【請求項１２】
前記第１の優先順位制御部が、前記第１又は第２のトラップ要求のいずれかを予め選択するステップは、
第１の実行ユニット状態データレジスタに、前記第１の実行ユニットの状態を表す第１の実行ユニット状態データを格納するステップと、
第２の実行ユニット状態データレジスタに、前記第２の実行ユニットの状態を表す第２の実行ユニット状態データを格納するステップと、
前記第１及び第２の実行ユニット状態データに基づいて、前記第１又は第２のトラップ要求のいずれかを選択するステップを有することを特徴とする請求項１１記載の制御方法。
【請求項１３】
前記第１の実行ユニット状態データレジスタは、前記第１の実行ユニットが内部に有し、
前記第２の実行ユニット状態データレジスタは、前記第２の実行ユニットが内部に有することを特徴とする請求項１２記載の制御方法。
【請求項１４】
実行ユニットを有する演算処理装置と、前記演算処理装置に接続される記憶装置とを有する情報処理装置の制御方法において、
前記実行ユニットが、第１及び第２の処理を実行し、前記第１及び第２の処理の結果に基づいて第１及び第２のトラップ要求をそれぞれ発行するステップと、
前記演算処理装置が有する優先順位制御部が、前記第１及び第２のトラップ要求を受信し、前記第１又は第２のトラップ要求のいずれかを、所定の第１の優先順位に基づいて予め選択するステップと、
前記演算処理装置が有するトラップ情報変換部が、トラップ要求とトラップ要求に対するトラップ発生要因を特定するトラップ情報との対応を表すトラップマップに基づいて、前記優先順位制御部が選択したトラップ要求をトラップ情報に変換するステップと、
前記演算処理装置が有するインタフェース制御部が、前記トラップ情報を前記記憶装置に転送するステップを有することを特徴とする制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、トラップ（割り込み）要求とトラップタイプデータとの対応関係を定義するトラップマップを備える演算処理装置、情報処理装置およびそれらの制御方法に関するものであり、特に、複数のトラップマップの中から、使用するオペレーティングシステムに適合するものを選択可能な演算処理装置、情報処理装置およびそれらの制御方法に関するものである。
【背景技術】
【０００２】
従来より、コンピュータシステムでは、使用するオペレーティングシステムに対応させて設計された演算処理装置が用いられている。この演算処理装置には、処理中に発生する様々なトラップ要求をトラップタイプデータと呼ばれるコードに変換するためのトラップマップが備えられている。従って、演算処理装置を設計する際には、使用するオペレーティングシステムに適合するようにこのトラップマップが設計される。
【０００３】
しかしながら、従来の演算処理装置では、オペレーティングシステムを別の種類のオペレーティングシステムに変更する場合、トラップマップを設計し直さなければならず、設計時間、コスト面からみて、デメリットが多い。このことから、従来より、かかる問題を効果的に解決するための手段、方法が切望されている。
【０００４】
図１９は、従来の演算処理装置の構成を示すブロック図である。ここで、本明細書では、「トラップ」という用語は、広義に解釈するものとし、命令発行時に検出されるI-Trap（Instruction  Trap）、命令実行時に検出されるE-Trap（Execution  Trap）、非同期エラーやウォッチドックタイムアウト時に検出されるトラップ、算術オーバフロー等のプログラム内部で生じる例外的な割り込み（Exception）、Ｉ／Ｏ（Input/Output）等の外部要因による外部割り込み（interrupt）を意味するものとする。また、「トラップ要求」という用語は、上述した「トラップ」に対応する処理（割り込み処理等）を要求することを意味する。
【０００５】
同図において、整数演算器１０は、整数演算コマンドに従って、整数演算を実行する演算器であり、必要に応じてトラップ要求１１を出す。浮動小数点演算器２０は、浮動小数点演算コマンドに従って、浮動小数点演算を実行する演算器であり、必要に応じてトラップ要求２１を出す。メモリ管理部３０は、仮想アドレス、物理アドレス相互間の変換を行うとともにキャッシュメモリ（図示略）へのアクセス制御を行い、必要に応じてトラップ要求３１を出す。プログラムカウンタ／ブランチユニット４０は、実行プログラムをカウントするとともに、プログラムの分岐命令の分岐アドレスの予測を行うものであり、必要に応じてトラップ要求４１を出す。
【０００６】
ＣＰＵローカルバスＩ／Ｆ制御部５０は、ローカルバス（図示略）上のデータの流れを制御するものであり、必要に応じてトラップ要求５１を出力する。トラップ制御部６０は、上述したトラップ要求１１、２１、３１、４１および５１をプライオリティ（優先）順位付けする機能と、トラップ要求７１をトラップタイプデータ９１に変換する機能と、トラップタイプデータ９１をリード／ライトする機能とを備えている。トラップタイプデータ９１は、トラップの発生要因を一意に特定するためのデータである。トラップ制御部６０は、プライオリティ制御部７０、トラップタイプエンコーダ８０、リード／ライト制御部１００およびトラップタイプレジスタ１１０から構成されている。
【０００７】
プライオリティ制御部７０は、トラップ要求１１、２１、３１、４１および５１のうち、同時刻に複数のものが入力された場合に、予め設定されたプライオリティに従って、プライオリティが高いものをトラップ要求７１として出力する。プライオリティとしては、トラップ要求１１＞トラップ要求２１＞トラップ要求３１＞トラップ要求４１＞トラップ要求５１とされている。この場合、同時刻にトラップ要求１１およびトラップ要求２１の双方が入力されると、プライオリティ制御部７０は、プライオリティが高いトラップ要求１１をトラップ要求７１として出力する。
【０００８】
トラップタイプエンコーダ８０は、トラップマップ９０に従って、プライオリティ制御部７０からのトラップ要求７１を、演算処理装置で処理可能なトラップタイプデータ９１にエンコードする。このトラップマップ９０は、ある一種類のオペレーティングシステムに適合するものである。従って、他の種類のオペレーティングシステムでトラップマップ９０を用いた場合には、誤作動する可能性がある。
【０００９】
図２０に示したトラップマップ９０は、複数のトラップ要求と、これらに一対一で対応するトラップタイプデータとの対応関係を定義するものである。同図には、トラップ要求７１（図１９参照）として、トラップ要求７１０（power#on#reset：図面ではアンダーバーが図示されているが、本明細書ではアンダーバーに代えて「＃」を用いる）〜トラップ要求７１５（data#access#MMU#error）が図示されており、トラップタイプデータ９１（図１９参照）として、トラップタイプデータ９１０（0x001）〜トラップタイプデータ９１５（0x031）が図示されている。例えば、トラップ要求７１（図１９参照）としてトラップ要求７１０が入力された場合、トラップタイプエンコーダ８０は、トラップマップ９０に従って、トラップタイプデータ９１（図１９参照）として、トラップ要求７１０に対応するトラップタイプデータ９１０（0x001）を出力する。
【００１０】
図１９に戻り、リード／ライト制御部１００は、トラップタイプエンコーダ８０からのトラップタイプデータ９１をトラップタイプレジスタ１１０にライトした後、トラップタイプレジスタ１１０からトラップタイプデータ９１をリードし、これをメモリ（図示略）へ転送する。
【００１１】
上記構成において、整数演算器１０のみからトラップ要求１１が出されると、プライオリティ制御部７０は、トラップ要求１１をトラップ要求７１としてトラップタイプエンコーダ８０へ出力する。この場合、トラップ要求７１は、図２０に示したトラップ要求７１０であるものとする。これにより、トラップタイプエンコーダ８０は、トラップマップ９０を参照して、トラップ要求７１０をトラップタイプデータ９１０（0x001）にエンコードする。このトラップタイプデータ９１０は、図１９に示したリード／ライト制御部１００の制御により、トラップタイプレジスタ１１０にライトされた後、リードされ、メモリ（図示略）に転送される。
【発明の開示】
【発明が解決しようとする課題】
【００１２】
ところで、前述したように、従来の演算処理装置において、図２０に示したトラップマップ９０は、一種類のオペレーティングシステム（単にシステムともいう）に対応するものであり、設計段階で当該オペレーティングシステム専用のものとして固定的に設計される。従って、他の種類のオペレーティングシステムを当該演算処理装置で用いた場合には、トラップ要求とトラップタイプデータとの対応関係が異なることにより、誤作動が生じることがある。
【００１３】
このような問題を回避するために、従来では、他の種類のオペレーティングシステムに適合するように、トラップマップをリメイクしたり、オペレーティングシステム側でトラップタイプデータをすり替えしたりする等の対策を採らなければならなかった。
【００１４】
しかしながら、かかる対応では、トラップマップのリメイクに膨大な時間、コストがかかるとともに、トラップタイプデータのすり替えに伴う別の弊害（性能の低下）が発生するという問題があり、オペレーティングシステムの相違に伴う問題を根本的に解決するものではない。
【００１５】
また、従来の演算処理装置においては、図１９に示したプライオリティ制御部７０により、整数演算器１０、浮動小数点演算器２０、・・・、ＣＰＵローカルバスＩ／Ｆ制御部５０という実行ユニット毎に出される複数のトラップ要求に対してプライオリティ制御を行う旨について説明した。
【００１６】
しかしながら、従来の演算処理装置においては、実行ユニット内でプライオリティ制御を行うことができず、きめ細かな制御を行うことができないという問題があった。すなわち、従来の演算処理装置では、実行ユニット内で同一時刻で出された複数のトラップ要求に対するプライオリティ制御を行うことができず、しかも、実行ユニットの状態に応じたプライオリティ制御を行うことができないのである。
【００１７】
本発明は、上記に鑑みてなされたもので、複数のシステムに安価かつ容易に適用することができ（第１の目的）、また実行ユニット側でトラップ要求に対するプライオリティ制御をきめ細かく実行することができる（第２の目的）演算処理装置を提供することを目的とする。
【課題を解決するための手段】
【００１８】
本発明は、第１及び第２の処理を実行し、前記第１及び第２の処理の結果に基づいて第１及び第２のトラップ要求をそれぞれ発行する実行ユニットと、前記第１及び第２のトラップ要求を受信し、前記第１又は第２のトラップ要求のいずれかを、所定の第１の優先順位に基づいて予め選択する優先順位制御部と、トラップ要求と、トラップ要求に対するトラップ発生要因を特定するトラップ情報との対応を表すトラップマップと、前記トラップマップに基づいて、前記優先順位制御部が選択したトラップ要求をトラップ情報に変換するトラップ情報変換部を有することを特徴とする。
【００１９】
また、本発明は、前記優先順位制御部は、前記実行ユニットの状態を表す実行ユニット状態データを格納する実行ユニット状態データレジスタと、前記実行ユニット状態データに基づいて、前記第１又は第２のトラップ要求のいずれかを選択するトラップ要求セレクタを有することを特徴とする。
【００２０】
また、本発明は、前記実行ユニット状態データレジスタは、前記実行ユニットが内部に有するとともに、前記トラップ要求セレクタは、前記実行ユニットが内部に有することを特徴とする。
【００２１】
また、本発明は、第１及び第２の処理を実行し、前記第１及び第２の処理の結果に基づいて第１及び第２のトラップ要求をそれぞれ発行する第１の実行ユニットと、第３の処理を実行し、前記第３の処理の結果に基づいて第３のトラップ要求を発行する第２の実行ユニットと、前記第１及び第２のトラップ要求を受信し、前記第１又は第２のトラップ要求のいずれかを、所定の第１の優先順位に基づいて予め選択する第１の優先順位制御部と、前記第１の優先順位制御部が選択したトラップ要求と前記第３のトラップ要求を受信し、前記第１の優先順位制御部が選択したトラップ要求又は第３のトラップ要求のいずれかを、所定の第２の優先順位に基づいて選択する第２の優先順位制御部と、トラップ要求と、トラップ要求に対するトラップ発生要因を特定するトラップ情報との対応を表すトラップマップと、前記トラップマップに基づいて、前記第２の優先順位制御部が選択したトラップ要求をトラップ情報に変換するトラップ情報変換部を有することを特徴とする。
【００２２】
また、本発明は、前記第１の優先順位制御部は、前記第１の実行ユニットの状態を表す第１の実行ユニット状態データを格納する第１の実行ユニット状態データレジスタと、前記第２の実行ユニットの状態を表す第２の実行ユニット状態データを格納する第２の実行ユニット状態データレジストと、前記第１及び第２の実行ユニット状態データに基づいて、前記第１又は第２のトラップ要求のいずれかを選択するトラップ要求セレクタを有することを特徴とする。
【００２３】
また、本発明は、前記第１の実行ユニット状態データレジスタは、前記第１の実行ユニットが内部に有し、前記第２の実行ユニット状態データレジスタは、前記第２の実行ユニットが内部に有するとともに、前記トラップ要求セレクタは、前記第１の実行ユニットが内部に有することを特徴とする。
【００２４】
また、本発明は、演算処理装置と、前記演算処理装置に接続される記憶装置とを有する情報処理装置において、前記演算処理装置は、第１及び第２の処理を実行し、前記第１及び第２の処理の結果に基づいて第１及び第２のトラップ要求をそれぞれ発行する実行ユニットと、前記第１及び第２のトラップ要求を受信し、前記第１又は第２のトラップ要求のいずれかを、所定の第１の優先順位に基づいて予め選択する優先順位制御部と、トラップ要求と、トラップ要求に対するトラップ発生要因を特定するトラップ情報との対応を表すトラップマップと、前記トラップマップに基づいて、前記優先順位制御部が選択したトラップ要求をトラップ情報に変換するトラップ情報変換部と、前記トラップ情報を前記記憶装置に転送するインタフェース制御部を有することを特徴とする。
【００２５】
また、本発明は、実行ユニットを有する演算処理装置の制御方法において、前記実行ユニットが、第１及び第２の処理を実行し、前記第１及び第２の処理の結果に基づいて第１及び第２のトラップ要求をそれぞれ発行するステップと、前記演算処理装置が有する優先順位制御部が、前記第１及び第２のトラップ要求を受信し、前記第１又は第２のトラップ要求のいずれかを、所定の第１の優先順位に基づいて予め選択するステップと、前記演算処理装置が有するトラップ情報変換部が、トラップ要求とトラップ要求に対するトラップ発生要因を特定するトラップ情報との対応を表すトラップマップに基づいて、前記優先順位制御部が選択したトラップ要求をトラップ情報に変換するステップを有することを特徴とする。
【００２６】
また、本発明は、前記優先順位制御部が、前記第１又は第２のトラップ要求のいずれかを予め選択するステップは、実行ユニット状態データレジスタに、前記実行ユニットの状態を表す実行ユニット状態データを格納するステップと、前記実行ユニット状態データに基づいて、前記第１又は第２のトラップ要求のいずれかを選択するステップを有することを特徴とする。
【００２７】
また、本発明は、前記実行ユニット状態データレジスタは、前記実行ユニットが内部に有することを特徴とする。
【００２８】
また、本発明は、第１及び第２の実行ユニットを有する演算処理装置の制御方法において、前記第１の実行ユニットが、第１及び第２の処理を実行し、前記第１及び第２の処理の結果に基づいて第１及び第２のトラップ要求をそれぞれ発行するステップと、前記第２の実行ユニットが、第３の処理を実行し、前記第３の処理の結果に基づいて第３のトラップ要求を発行するステップと、前記演算処理装置が有する第１の優先順位制御部が、前記第１及び第２のトラップ要求を受信し、前記第１又は第２のトラップ要求のいずれかを、所定の第１の優先順位に基づいて予め選択するステップと、前記演算処理装置が有する第２の優先順位制御部が、前記第１の優先順位制御部が選択したトラップ要求と前記第３のトラップ要求を受信し、前記第１の優先順位制御部が選択したトラップ要求又は第３のトラップ要求のいずれかを、所定の第２の優先順位に基づいて選択するステップと、前記演算処理装置が有するトラップ情報変換部が、トラップ要求と、トラップ要求に対するトラップ発生要因を特定するトラップ情報との対応を表すトラップマップに基づいて、前記第２の優先順位制御部が選択したトラップ要求をトラップ情報に変換するトラップ情報変換部を有することを特徴とする。
【００２９】
また、本発明は、前記第１の優先順位制御部が、前記第１又は第２のトラップ要求のいずれかを予め選択するステップは、第１の実行ユニット状態データレジスタに、前記第１の実行ユニットの状態を表す第１の実行ユニット状態データを格納するステップと、
第２の実行ユニット状態データレジスタに、前記第２の実行ユニットの状態を表す第２の実行ユニット状態データを格納するステップと、前記第１及び第２の実行ユニット状態データに基づいて、前記第１又は第２のトラップ要求のいずれかを選択するステップを有することを特徴とする。
【００３０】
また、本発明は、前記第１の実行ユニット状態データレジスタは、前記第１の実行ユニットが内部に有し、前記第２の実行ユニット状態データレジスタは、前記第２の実行ユニットが内部に有することを特徴とする。
【００３１】
また、本発明は、実行ユニットを有する演算処理装置と、前記演算処理装置に接続される記憶装置とを有する情報処理装置の制御方法において、前記実行ユニットが、第１及び第２の処理を実行し、前記第１及び第２の処理の結果に基づいて第１及び第２のトラップ要求をそれぞれ発行するステップと、前記演算処理装置が有する優先順位制御部が、前記第１及び第２のトラップ要求を受信し、前記第１又は第２のトラップ要求のいずれかを、所定の第１の優先順位に基づいて予め選択するステップと、前記演算処理装置が有するトラップ情報変換部が、トラップ要求とトラップ要求に対するトラップ発生要因を特定するトラップ情報との対応を表すトラップマップに基づいて、前記優先順位制御部が選択したトラップ要求をトラップ情報に変換するステップと、前記演算処理装置が有するインタフェース制御部が、前記トラップ情報を前記記憶装置に転送するステップを有することを特徴とする。
【発明の効果】
【００３２】
以上説明したように、本発明によれば、第１のシステム、第２のシステムにそれぞれ対応する第１のトラップマップ、第２のトラップマップをエンコード手段に備えて、システムに応じてトラップマップを可変可能な構成としたので、複数のシステムに安価かつ容易に演算処理装置を適用することができるという効果を奏する。
【００３３】
また、本発明によれば、実行ユニットの第１の状態、第２の状態にそれぞれ適合する第１のトラップマップ、第２のトラップマップをエンコード手段に備えて、実行ユニットの状態に応じてトラップマップを可変可能な構成としたので、実行ユニットの状態に応じてきめ細かいトラップ要求の制御を行うことができるという効果を奏する。
【００３４】
また、本発明によれば、プライオリティ制御手段により、実行ユニット内における複数のトラップ要求の中から、実行ユニットの状態に対応するプライオリティに基づいて選択を行うようにしたので、実行ユニット側でトラップ要求に対するプライオリティ制御をきめ細かく実行することができるという効果を奏する。
【００３５】
また、本発明によれば、プライオリティ制御手段により、第２の実行ユニット内における複数のトラップ要求の中から、第１の実行ユニットの状態に対応するプライオリティに基づいて選択を行うようにしたので、第２の実行ユニット側でトラップ要求に対するプライオリティ制御をきめ細かく実行することができるという効果を奏する。
【００３６】
また、本発明によれば、プライオリティ制御手段により、第２の実行ユニット内における複数のトラップ要求の中から、第１の実行ユニットの状態および第２の実行ユニットの状態に対応するプライオリティに基づいて選択を行うようにしたので、第２の実行ユニット側でトラップ要求に対するプライオリティ制御をきめ細かく実行することができるという効果を奏する。
【発明を実施するための最良の形態】
【００３７】
以下、図面を参照して本発明にかかる演算処理装置の実施の形態１〜１４について詳細に説明する。
【００３８】
（実施の形態１）
図１は、本発明にかかる実施の形態１の構成を示すブロック図である。この図において、図１９の各部に対応する部分には同一の符号を付ける。この図においては、図１９に示したトラップ制御部６０に代えて、トラップ制御部２００が設けられている。このトラップ制御部２００においては、図１９に示したトラップタイプエンコーダ８０およびリード／ライト制御部１００に代えて、トラップタイプエンコーダ２１０およびリード／ライト制御部２６０が設けられているとともに、トラップマップ選択レジスタ２４０およびデコーダ２５０が新たに設けられている。
【００３９】
トラップタイプエンコーダ２１０は、二種類のトラップマップ２２００、トラップマップ２２０１のうち予め選択された一方のトラップマップに従って、プライオリティ制御部７０からのトラップ要求７１を、演算処理装置で処理可能なトラップタイプデータ２３１にエンコードする。ここで、トラップマップ２２００および２２０１は、二種類のオペレーティングシステム（以下、第１のオペレーティングシステムおよび第２のオペレーティングシステムと称する）にそれぞれ適合するものである。
【００４０】
すなわち、図２に示したトラップマップ２２００は、トラップ要求７１（図１参照）としてのトラップ要求７１０（power#on#reset）〜トラップ要求７１５（data#access#MMU#error）にそれぞれ一対一で対応するトラップタイプデータ（0x001）〜（0x031）との対応関係を定義するものであり、第１のオペレーティングシステムに適合するものである。
【００４１】
一方、トラップマップ２２０１は、トラップ要求７１（図１参照）としてのトラップ要求７１０（power#on#reset）〜トラップ要求７１５（data#access#MMU#error）にそれぞれ一対一で対応し、かつトラップマップ２２００とは異なるトラップタイプデータ（0x021）〜（0x051）との対応関係を定義するものであり、第２のオペレーティングシステムに適合するものである。つまり、実施の形態１では、オペレーティングシステムの種類に応じて、適合するトラップマップを選択可能に構成されている。
【００４２】
図１に戻り、マルチプレクサ２３０は、選択データＳＥＬＡ２により、トラップマップ２２００、トラップマップ２２０１のうちいずれか一方を選択する。例えば、図２に示したトラップマップ２２００が選択され、かつトラップ要求７１０が入力された場合、マルチプレクサ２３０からは、トラップマップ２２００側のトラップタイプデータ２３１０（0x001）が出力される。
【００４３】
一方、トラップマップ２２０１が選択され、かつトラップ要求７１０が入力された場合、マルチプレクサ２３０からは、トラップマップ２２０１側のトラップタイプデータ２３１０（0x021）が出力される。ここで、トラップタイプデータ２３１０〜２３１５のそれぞれは、図１に示したトラップタイプデータ２３１として、リード／ライト制御部２６０へ出力される。
【００４４】
トラップマップ選択レジスタ２４０は、リード／ライト制御部２６０により、選択データＳＥＬＡ１がライト（またはリード）される。この選択データＳＥＬＡ１は、トラップマップ２２００、トラップマップ２２０１のうち、使用するオペレーティングシステムに適合する一方のものを選択するためのデータである。デコーダ２５０は、トラップマップ選択レジスタ２４０にライトされた選択データＳＥＬＡ１をデコードし、これを選択データＳＥＬＡ２としてマルチプレクサ２３０へ出力する。
【００４５】
リード／ライト制御部２６０は、トラップタイプエンコーダ２１０からのトラップタイプデータ２３１をトラップタイプレジスタ１１０にライトした後、トラップタイプレジスタ１１０からトラップタイプデータ２３１をリードし、これをメモリ（図示略）へ転送する。また、リード／ライト制御部２６０は、予め設定される選択データＳＥＬＡ１をトラップマップ選択レジスタ２４０にライトするとともに、必要に応じて、選択データＳＥＬＡ１をトラップマップ選択レジスタ２４０からリードする。
【００４６】
つぎに、上述した実施の形態１の動作について説明する。図１に示した演算処理装置が第１のオペレーティングシステムに適用される場合、リード／ライト制御部２６０は、上記第１のオペレーティングシステムに対応するトラップマップ２２００の選択用の選択データＳＥＬＡ１をトラップマップ選択レジスタ２４０にライトする。この選択データＳＥＬＡ１は、デコーダ２５０によりデコードされ、選択データＳＥＬＡ２としてマルチプレクサ２３０へ出力される。これにより、マルチプレクサ２３０では、トラップマップ２２００が選択される。
【００４７】
この状態で、整数演算器１０のみからトラップ要求１１が出されると、プライオリティ制御部７０は、トラップ要求１１をトラップ要求７１としてトラップタイプエンコーダ２１０へ出力する。この場合、トラップ要求７１は、図２に示したトラップ要求７１０であるものとする。これにより、トラップタイプエンコーダ２１０は、トラップマップ２２００を参照して、トラップ要求７１０をトラップタイプデータ２３１０（0x001）にエンコードした後、これをリード／ライト制御部２６０へ出力する。
【００４８】
このトラップタイプデータ２３１０（0x001）は、図１に示したリード／ライト制御部２６０の制御により、トラップタイプレジスタ１１０にライトされた後、リードされ、メモリ（図示略）に転送される。なお、図２では、トラップ要求７１０は、他方のトラップマップ２２０１に従って、トラップタイプデータ（0x021）にエンコードされる。しかしながら、この場合、マルチプレクサ２３０によりトラップマップ２２００側が選択されているため、上記トラップタイプデータ（0x021）は、出力されない。
【００４９】
一方、演算処理装置が第２のオペレーティングシステムに適用される場合、リード／ライト制御部２６０は、上記第２のオペレーティングシステムに対応するトラップマップ２２０１の選択用の選択データＳＥＬＡ１をトラップマップ選択レジスタ２４０にライトする。この選択データＳＥＬＡ１は、デコーダ２５０によりデコードされ、選択データＳＥＬＡ２としてマルチプレクサ２３０へ出力される。これにより、マルチプレクサ２３０では、トラップマップ２２０１が選択される。
【００５０】
この状態で、整数演算器１０のみからトラップ要求１１が出されると、プライオリティ制御部７０は、トラップ要求１１をトラップ要求７１（例えば、トラップ要求７１０（図２参照））としてトラップタイプエンコーダ２１０へ出力する。これにより、トラップタイプエンコーダ２１０は、他方のトラップマップ２２０１を参照して、トラップ要求７１０をトラップタイプデータ２３１０（0x021）にエンコードし、これをリード／ライト制御部２６０へ出力する。
【００５１】
このトラップタイプデータ２３１０（0x021）は、図１に示したリード／ライト制御部２６０の制御により、トラップタイプレジスタ１１０にライトされた後、リードされ、メモリ（図示略）に転送される。なお、図２では、トラップ要求７１０は、一方のトラップマップ２２００に従って、トラップタイプデータ（0x001）にエンコードされる。しかしながら、この場合、前述とは逆に、マルチプレクサ２３０によりトラップマップ２２０１側が選択されているため、上記トラップタイプデータ（0x001）は、出力されない。
【００５２】
以上説明したように、実施の形態１によれば、複数のオペレーティングシステムにそれぞれ対応するトラップマップ２２００、２２０１をトラップタイプエンコーダ２１０に備えて、オペレーティングシステムに応じてトラップマップを可変可能な構成としたので、複数のオペレーティングシステムに安価かつ容易に演算処理装置を適用することができる。
【００５３】
（実施の形態２）
さて、前述した実施の形態１では、図１に示したトラップマップ選択レジスタ２４０に選択データＳＥＬＡ１をライトするという内部的動作に基づいて、トラップマップを選択するように構成した例について説明したが、図３に示した選択部３２０を設けて外部的動作に基づいてトラップマップを選択するように構成してもよい。以下では、この構成例を実施の形態２として説明する。
【００５４】
図３は、本発明にかかる実施の形態２の構成を示すブロック図である。この図において、図１の各部に対応する部分には同一の符号を付ける。この図においては、図１に示したトラップ制御部２００に代えて、トラップ制御部３００が設けられているとともに、選択部３２０が新たに設けられている。また、トラップ制御部３００には、図１に示したトラップマップ選択レジスタ２４０およびデコーダ２５０に代えて、デコーダ３１０が設けられている。
【００５５】
選択部３２０は、トラップ制御部３００の外部機構として設けられており、選択データＳＥＬＢ１を設定するためのものである。この選択データＳＥＬＢ１は、トラップマップ２２００、トラップマップ２２０１のうち、使用するオペレーティングシステムに適合する一方のものを選択するためのデータである。
【００５６】
この選択部３２０は、ターミナル端子３２１と、プルダウン抵抗３２３を介して接地されたターミナル端子３２２と、プルアップ抵抗３２５を介して電源に接続されたターミナル端子３２４と、ターミナル端子３２１−ターミナル端子３２２間またはターミナル端子３２１−ターミナル端子３２４間を接続するジャンパー線３２６とから構成されている。
【００５７】
このジャンパー線３２６は、第１のオペレーティングシステムに適合するトラップマップ２２０0を選択するための選択データＳＥＬＢ１を設定する場合、ターミナル端子３２１とターミナル端子３２２との間に接続され、一方、第２のオペレーティングシステムに適合するトラップマップ２２０１を選択するための選択データＳＥＬＢ１を設定する場合、ターミナル端子３２１とターミナル端子３２４との間に接続される。トラップ制御部３００において、デコーダ３１０は、選択データＳＥＬＢ１を選択データＳＥＬＢ２にデコードする。実施の形態２では、マルチプレクサ２３０は、選択データＳＥＬＢ2により、トラップマップ２２００、トラップマップ２２０１のうちいずれか一方を選択する。
【００５８】
つぎに、上述した実施の形態２の動作について説明する。図３に示した演算処理装置が第１のオペレーティングシステムに適用される場合、ジャンパー線３２６は、ターミナル端子３２１−ターミナル端子３２２間に接続される。これにより、選択部３２０からは、トラップマップ２２００の選択用の選択データＳＥＬＢ１がデコーダ３１０へ出力される。この選択データＳＥＬＢ１は、デコーダ３１０によりデコードされ、選択データＳＥＬＢ２としてマルチプレクサ２３０へ出力される。これにより、マルチプレクサ２３０では、トラップマップ２２００が選択される。
【００５９】
この状態で、整数演算器１０のみからトラップ要求１１が出されると、プライオリティ制御部７０は、トラップ要求１１をトラップ要求７１としてトラップタイプエンコーダ２１０へ出力する。この場合、トラップ要求７１は、図２に示したトラップ要求７１０であるものとする。
【００６０】
以後、実施の形態１の場合と同様にして、トラップタイプエンコーダ２１０は、トラップマップ２２００を参照して、トラップ要求７１０をトラップタイプデータ２３１０（0x001）にエンコードした後、これをリード／ライト制御部２６０へ出力する。このトラップタイプデータ２３１０（0x001）は、図３に示したリード／ライト制御部２６０の制御により、トラップタイプレジスタ１１０にライトされた後、リードされ、メモリ（図示略）に転送される。
【００６１】
一方、演算処理装置が第２のオペレーティングシステムに適用される場合、ジャンパー線３２６は、ターミナル端子３２１−ターミナル端子３２４間に接続される。これにより、選択部３２０からは、トラップマップ２２０１の選択用の選択データＳＥＬＢ１がデコーダ３１０へ出力される。この選択データＳＥＬＢ１は、デコーダ３１０によりデコードされ、選択データＳＥＬＢ２としてマルチプレクサ２３０へ出力される。これにより、マルチプレクサ２３０では、トラップマップ２２０１が選択される。
【００６２】
この状態で、整数演算器１０のみからトラップ要求１１が出されると、プライオリティ制御部７０は、トラップ要求１１をトラップ要求７１（例えば、トラップ要求７１０（図２参照））としてトラップタイプエンコーダ２１０へ出力する。以後、実施の形態１の場合と同様にして、トラップタイプエンコーダ２１０は、他方のトラップマップ２２０１を参照して、トラップ要求７１0をトラップタイプデータ２３１０（0x021）にエンコードし、これをリード／ライト制御部２６０へ出力する。このトラップタイプデータ２３１０（0x021）は、図３に示したリード／ライト制御部２６０の制御により、トラップタイプレジスタ１１０にライトされた後、リードされ、メモリ（図示略）に転送される。
【００６３】
（実施の形態３）
さて、前述した実施の形態１では、図１に示した選択データＳＥＬＡ1により、トラップマップ２２００、トラップマップ２２０１のうちいずれか一方を選択する構成について説明したが、実行ユニットの２つのステータス（状態）に応じてトラップマップ２２００、トラップマップ２２０１のうちいずれか一方を選択する構成としてもよい。以下では、この構成例を実施の形態３として説明する。ここでいう実行ユニットとは、図１に示した整数演算器１０、浮動小数点演算器２０、メモリ管理部３０、プログラムカウンタ／ブランチユニット４０およびＣＰＵローカルバスＩ／Ｆ制御部５０のそれぞれをいう。
【００６４】
図４は、本発明にかかる実施の形態３の構成を示すブロック図である。この図において、図１の各部に対応する部分には同一の符号を付ける。図４では、図１に示したメモリ管理部３０に代えて、メモリ管理部４００（実行ユニット）が設けられている。また、図４に示したトラップ制御部２００には、図１に示したトラップマップ選択レジスタ２４０が設けられていない。
【００６５】
メモリ管理部４００は、メモリ管理部３０（図１参照）と同様にして、仮想アドレス、物理アドレス相互間の変換を行うとともにキャッシュメモリ（図示略）へのアクセス制御を行い、必要に応じてトラップ要求３１を出す。また、メモリ管理部４００には、レジスタ４１０が設けられている。このレジスタ４１０には、メモリ管理部４００のステータス（状態）を表すステータスデータＳＴＭ１が格納される。上記ステータスとしては、メモリ管理部３０の通常時に対応するステータス（以下、第１のステータスという）と、通常時以外に対応するステータス（以下、第２のステータスという）とがある。
【００６６】
上記ステータスデータＳＴＭ１は、トラップマップ２２００、トラップマップ２２０１のうち、メモリ管理部４００のステータスに対応する一方のものを選択するためのデータである。例えば、ステータスデータＳＴＭ１が第１のステータス（通常時）を表す場合、このステータスデータＳＴＭ１は、トラップマップ２２００を選択するためのデータである。一方、ステータスデータＳＴＭ１が第２のステータス（通常時以外）を表す場合、このステータスデータＳＴＭ１は、トラップマップ２２０１を選択するためのデータである。また、実施の形態３では、デコーダ２５０は、ステータスデータＳＴＭ１を選択データＳＥＬＡ２にデコードする。
【００６７】
つぎに、上述した実施の形態３の動作について説明する。図４に示したメモリ管理部４００のステータスが第１のステータス（通常時）である場合、メモリ管理部４００は、レジスタ４１０に第１のステータスを表すステータスデータＳＴＭ１を格納する。このステータスデータＳＴＭ１は、デコーダ２５０によりデコードされ、選択データＳＥＬＡ２としてマルチプレクサ２３０へ出力される。これにより、マルチプレクサ２３０では、トラップマップ２２００が選択される。
【００６８】
この状態で、整数演算器１０のみからトラップ要求１１が出されると、プライオリティ制御部７０は、トラップ要求１１をトラップ要求７１としてトラップタイプエンコーダ２１０へ出力する。この場合、トラップ要求７１は、図２に示したトラップ要求７１０であるものとする。
【００６９】
以後、実施の形態１の場合と同様にして、トラップタイプエンコーダ２１０は、トラップマップ２２００を参照して、トラップ要求７１０をトラップタイプデータ２３１０（0x001）にエンコードした後、これをリード／ライト制御部２６０へ出力する。このトラップタイプデータ２３１０（0x001）は、図４に示したリード／ライト制御部２６０の制御により、トラップタイプレジスタ１１０にライトされた後、リードされ、メモリ（図示略）に転送される。
【００７０】
一方、メモリ管理部４００のステータスが第１のステータス（通常時）から第２のステータス（通常時以外）に変化した場合、メモリ管理部４００は、レジスタ４１０に第２のステータスを表すステータスデータＳＴＭ１を格納する。このステータスデータＳＴＭ１は、デコーダ２５０によりデコードされ、選択データＳＥＬＡ２としてマルチプレクサ２３０へ出力される。これにより、マルチプレクサ２３０では、トラップマップ２２０１が選択される。
【００７１】
この状態で、整数演算器１０のみからトラップ要求１１が出されると、プライオリティ制御部７０は、トラップ要求１１をトラップ要求７１（例えば、トラップ要求７１０（図２参照））としてトラップタイプエンコーダ２１０へ出力する。
【００７２】
以後、実施の形態１の場合と同様にして、トラップタイプエンコーダ２１０は、他方のトラップマップ２２０１を参照して、トラップ要求７１０をトラップタイプデータ２３１０（0x021）にエンコードし、これをリード／ライト制御部２６０へ出力する。このトラップタイプデータ２３１０（0x021）は、図４に示したリード／ライト制御部２６０の制御により、トラップタイプレジスタ１１０にライトされた後、リードされ、メモリ（図示略）に転送される。
【００７３】
なお、実施の形態３では、実行ユニットをメモリ管理部４００とした例について説明したが、このメモリ管理部４００以外の実行ユニット（整数演算器１０、浮動小数点演算器２０、プログラムカウンタ／ブランチユニット４０またはＣＰＵローカルバスＩ／Ｆ制御部５０）にレジスタ４１０と同様のレジスタを設け、実行ユニットのステータスに応じてトラップマップを選択するようにしてもよい。
【００７４】
以上説明したように、実施の形態３によれば、メモリ管理部４００（実行ユニット）の状態に適合するトラップマップ２２００、２２０１をトラップタイプエンコーダ２１０に備えて、メモリ管理部４００（実行ユニット）の状態に応じてトラップマップを可変可能な構成としたので、実行ユニットの状態に応じてきめ細かいトラップ要求の制御を行うことができる。
【００７５】
（実施の形態４）
さて、前述した実施の形態１では、二種類のオペレーティングシステムに適合する図１に示した二種類のトラップマップ２２００、２２０１の中から一つを選択するように構成した例について説明したが、ｎ種類（三種類以上）のオペレーティングシステムに適合するｎ種類のトラップマップの中からいずれか一つを選択するように構成してもよい。以下では、この構成例を実施の形態４として説明する。
【００７６】
図５は、本発明にかかる実施の形態４の構成を示すブロック図である。この図において、図１の各部に対応する部分には同一の符号を付ける。同図においては、図１に示したトラップ制御部２００に代えて、トラップ制御部５００が設けられている。このトラップ制御部５００においては、図１に示したトラップタイプエンコーダ２１０、トラップマップ選択レジスタ２４０、デコーダ２５０およびリード／ライト制御部２６０に代えて、トラップタイプエンコーダ５１０、リード／ライト制御部５３０、トラップマップ選択レジスタ５４０およびデコーダ５５０が設けられている。
【００７７】
トラップタイプエンコーダ５１０は、ｎ種類のトラップマップ２２００、２２０１、・・・、２２０ｎのうちいずれか一つのトラップマップに従って、プライオリティ制御部７０からのトラップ要求７１を、演算処理装置で処理可能なトラップタイプデータ５２１にエンコードする。これらのトラップマップ２２００、２２０１、・・・、２２０ｎは、ｎ種類のオペレーティングシステム（以下、第１のオペレーティングシステム、第２のオペレーティングシステム、・・・、第ｎのオペレーティングシステムと称する）にそれぞれ適合するものである。
【００７８】
マルチプレクサ５２０は、選択データＳＥＬＣ２により、トラップマップ２２００、２２０１、・・・、２２０ｎのうちいずれか一方を選択する。例えば、トラップマップ２２０１が選択され、かつトラップ要求７１が入力された場合、マルチプレクサ５２０からは、トラップマップ２２０１に従ってエンコードされたトラップタイプデータ５２１が出力される。同様にして、トラップマップ２２０ｎが選択され、かつトラップ要求７１が入力された場合、マルチプレクサ５２０からは、トラップマップ２２０ｎに従ってエンコードされたトラップタイプデータ５２１が出力される。
【００７９】
トラップマップ選択レジスタ５４０は、リード／ライト制御部５３０により、選択データＳＥＬＣ１がライト（またはリード）される。この選択データＳＥＬＣ１は、トラップマップ２２００、２２０１、・・・、２２０ｎのうち、使用するオペレーティングシステムに適合する一つのものを選択するためのデータである。デコーダ５５０は、トラップマップ選択レジスタ５４０にライトされた選択データＳＥＬＣ１をデコードし、これを選択データＳＥＬＣ２としてマルチプレクサ５２０へ出力する。
【００８０】
リード／ライト制御部５３０は、トラップタイプエンコーダ５１０からのトラップタイプデータ５２１をトラップタイプレジスタ１１０にライトした後、トラップタイプレジスタ１１０からトラップタイプデータ５２１をリードし、これをメモリ（図示略）へ転送する。また、リード／ライト制御部５３０は、予め設定される選択データＳＥＬＣ１をトラップマップ選択レジスタ５４０にライトするとともに、必要に応じて、選択データＳＥＬＣ１をトラップマップ選択レジスタ５４０からリードする。
【００８１】
つぎに、上述した実施の形態４の動作について説明する。図５に示した演算処理装置が第１のオペレーティングシステムに適用される場合、リード／ライト制御部５３０は、上記第１のオペレーティングシステムに対応するトラップマップ２２００の選択用の選択データＳＥＬＣ１をトラップマップ選択レジスタ５４０にライトする。この選択データＳＥＬＣ１は、デコーダ５５０によりデコードされ、選択データＳＥＬＣ２としてマルチプレクサ５２０へ出力される。これにより、マルチプレクサ５２０では、トラップマップ２２００が選択される。
【００８２】
この状態で、整数演算器１０のみからトラップ要求１１が出されると、プライオリティ制御部７０は、トラップ要求１１をトラップ要求７１としてトラップタイプエンコーダ５１０へ出力する。これにより、実施の形態１の場合と同様にして、トラップタイプエンコーダ５１０は、トラップマップ２２００を参照して、トラップ要求７１をトラップタイプデータ５２１にエンコードした後、これをリード／ライト制御部５３０へ出力する。このトラップタイプデータ５２１は、リード／ライト制御部５３０の制御により、トラップタイプレジスタ１１０にライトされた後、リードされ、メモリ（図示略）に転送される。
【００８３】
また、演算処理装置が第ｎのオペレーティングシステムに適用される場合、リード／ライト制御部５３０は、上記第ｎのオペレーティングシステムに対応するトラップマップ２２０ｎの選択用の選択データＳＥＬＣ１をトラップマップ選択レジスタ５４０にライトする。この選択データＳＥＬＣ１は、デコーダ５５０によりデコードされ、選択データＳＥＬＣ２としてマルチプレクサ５２０へ出力される。これにより、マルチプレクサ５２０では、トラップマップ２２０ｎが選択される。
【００８４】
この状態で、整数演算器１０のみからトラップ要求１１が出されると、プライオリティ制御部７０は、トラップ要求１１をトラップ要求７１としてトラップタイプエンコーダ５１０へ出力する。これにより、トラップタイプエンコーダ５１０は、トラップマップ２２０ｎを参照して、トラップ要求７１をトラップタイプデータ５２１にエンコードし、これをリード／ライト制御部５３０へ出力する。このトラップタイプデータ５２１は、リード／ライト制御部５３０の制御により、トラップタイプレジスタ１１０にライトされた後、リードされ、メモリ（図示略）に転送される。
【００８５】
（実施の形態５）
さて、前述した実施の形態４では、図５に示したトラップマップ選択レジスタ５４０に選択データＳＥＬＣ１をライトするという内部的動作に基づいて、トラップマップを選択するように構成した例について説明したが、前述した実施の形態２の構成例と同様にして、図６に示した選択部６２０を設けて外部的動作に基づいてトラップマップを選択するように構成してもよい。以下では、この構成例を実施の形態５として説明する。
【００８６】
図６は、本発明にかかる実施の形態５の構成を示すブロック図である。この図において、図５の各部に対応する部分には同一の符号を付ける。この図においては、図５に示したトラップ制御部５００に代えてトラップ制御部６００が設けられているとともに、選択部６２０が新たに設けられている。また、トラップ制御部６００には、図５に示したトラップマップ選択レジスタ５４０およびデコーダ５５０に代えて、デコーダ６１０が設けられている。
【００８７】
選択部６２０は、トラップ制御部６００の外部機構として設けられており、選択データＳＥＬＤ１を設定するためのものである。この選択データＳＥＬＤ１は、ｍビットのデータからなり、トラップマップ２２００、２２０１、・・・、２２０ｎのうち、使用するオペレーティングシステムに適合する一つのものを選択するためのデータである。
【００８８】
この選択部６２０は、ｍ個のターミナル端子６２１１〜６２１ｍと、プルダウン抵抗６２３を介して接地されたターミナル端子６２２と、プルアップ抵抗６２５を介して電源に接続されたターミナル端子６２４と、ターミナル端子６２１１−ターミナル端子６２２（またはターミナル端子６２４）間、・・・、ターミナル端子６２１ｍ−ターミナル端子６２２（またはターミナル端子６２４）間をそれぞれ接続するｍ本のジャンパー線３２６１〜３２６ｍとから構成されている。
【００８９】
実施の形態５では、これらのジャンパー線３２６１〜３２６ｍの接続の組み合わせ（プルダウン抵抗６２３側に接続またはプルアップ抵抗６２５側に接続）により、ｍビットの選択データＳＥＬＤ１を「０」、「１」表現している。たとえば、ジャンパー線６２６１〜６２６ｍの全てがターミナル端子６２２（接地側）に接続されている場合、選択データＳＥＬＤ１は、「００００・・・０００」（オール０）となり、トラップマップ２２００を選択するためのデータとされる。
【００９０】
つぎに、上述した実施の形態５の動作について説明する。図６に示した演算処理装置が第１のオペレーティングシステムに適用される場合、ジャンパー線６２６１〜６２６ｍの全ては、ターミナル端子６２１1〜６２１ｍ−ターミナル端子６２２間に接続される。これにより、選択部６２０からは、トラップマップ２２００の選択用の選択データＳＥＬＤ１がデコーダ６１０へ出力される。この選択データＳＥＬＤ１は、デコーダ６１０によりデコードされ、選択データＳＥＬＤ２としてマルチプレクサ５２０へ出力される。これにより、マルチプレクサ５２０では、トラップマップ２２００が選択される。
【００９１】
この状態で、整数演算器１０のみからトラップ要求１１が出されると、プライオリティ制御部７０は、トラップ要求１１をトラップ要求７１としてトラップタイプエンコーダ５１０へ出力する。これにより、トラップタイプエンコーダ５１０は、トラップマップ２２００を参照して、トラップ要求７１をトラップタイプデータ５２１にエンコードした後、これをリード／ライト制御部５３０へ出力する。このトラップタイプデータ５２１は、リード／ライト制御部５３０の制御により、トラップタイプレジスタ１１０にライトされた後、リードされ、メモリ（図示略）に転送される。
【００９２】
一方、演算処理装置が第ｎのオペレーティングシステムに適用される場合、ジャンパー線６２６１〜６２６ｍのそれぞれは、トラップマップ２２０ｎに対応する組み合わせでターミナル端子６２１１〜６２１ｍ−ターミナル端子６２２（ターミナル端子６２４）間に接続される。これにより、選択部６２０からは、トラップマップ２２０ｎの選択用の選択データＳＥＬＤ１がデコーダ６１０へ出力される。この選択データＳＥＬＤ１は、デコーダ６１０によりデコードされ、選択データＳＥＬＤ２としてマルチプレクサ５２０へ出力される。これにより、マルチプレクサ５２０では、トラップマップ２２０ｎが選択される。
【００９３】
この状態で、整数演算器１０のみからトラップ要求１１が出されると、プライオリティ制御部７０は、トラップ要求１１をトラップ要求７１としてトラップタイプエンコーダ５１０へ出力する。これにより、トラップタイプエンコーダ５１０は、トラップマップ２２０ｎを参照して、トラップ要求７１をトラップタイプデータ５２１にエンコードし、これをリード／ライト制御部５３０へ出力する。このトラップタイプデータ５２１は、図６に示したリード／ライト制御部５３０の制御により、トラップタイプレジスタ１１０にライトされた後、リードされ、メモリ（図示略）に転送される。
【００９４】
（実施の形態６）
さて、前述した実施の形態４では、図５に示した選択データＳＥＬＣ１により、トラップマップ２２００、２２０１、・・・、２２０ｎのうちいずれか一つを選択する構成について説明したが、実行ユニットのｎ種類のステータス（状態）に応じてトラップマップ２２００、２２０１、・・・、２２０ｎのうちいずれか一つを選択する構成としてもよい。以下では、この構成例を実施の形態６として説明する。
【００９５】
図７は、本発明にかかる実施の形態６の構成を示すブロック図である。この図において、図５および図４の各部に対応する部分には同一の符号を付ける。図７では、図５に示したメモリ管理部３０に代えて、メモリ管理部４００（実行ユニット：図４参照）が設けられている。また、図７に示したトラップ制御部７００には、図５に示したトラップマップ選択レジスタ５４０およびデコーダ５５０に代えて、デコーダ７１０が設けられている。
【００９６】
メモリ管理部４００は、メモリ管理部３０（図５参照）と同様にして、仮想アドレス、物理アドレス相互間の変換を行うとともにキャッシュメモリ（図示略）へのアクセス制御を行い、必要に応じてトラップ要求３１を出す。また、メモリ管理部４００には、レジスタ４１０が設けられている。このレジスタ４１０には、メモリ管理部４００のｎ種類のステータス（状態）を表すステータスデータＳＴＭ１が格納される。上記ステータスとしては、ｎ種類の第１のステータス、第２のステータス、・・・、第ｎのステータスがある。
【００９７】
上記ステータスデータＳＴＭ１は、トラップマップ２２００、２２０１、・・・、２２０ｎのうち、メモリ管理部４００のステータスに対応する一つのものを選択するためのデータである。例えば、ステータスデータＳＴＭ１が第１のステータスを表す場合、このステータスデータＳＴＭ１は、トラップマップ２２００を選択するためのデータである。以下、同様にして、ステータスデータＳＴＭ１が第ｎのステータスを表す場合、このステータスデータＳＴＭ１は、トラップマップ２２０ｎを選択するためのデータである。デコーダ７１０は、ステータスデータＳＴＭ１を選択データＳＥＬＣ２にデコードする。
【００９８】
つぎに、上述した実施の形態６の動作について説明する。図７に示したメモリ管理部４００のステータスが第１のステータスである場合、メモリ管理部４００は、レジスタ４１０に第１のステータスを表すステータスデータＳＴＭ１を格納する。このステータスデータＳＴＭ１は、デコーダ７１０によりデコードされ、選択データＳＥＬＣ２としてマルチプレクサ５２０へ出力される。これにより、マルチプレクサ５２０では、トラップマップ２２００が選択される。
【００９９】
この状態で、整数演算器１０のみからトラップ要求１１が出されると、プライオリティ制御部７０は、トラップ要求１１をトラップ要求７１としてトラップタイプエンコーダ５１０へ出力する。これにより、トラップタイプエンコーダ５１０は、トラップマップ２２００を参照して、トラップ要求７１をトラップタイプデータ５２１にエンコードした後、これをリード／ライト制御部５３０へ出力する。このトラップタイプデータ５２１は、リード／ライト制御部５３０の制御により、トラップタイプレジスタ１１０にライトされた後、リードされ、メモリ（図示略）に転送される。
【０１００】
また、メモリ管理部４００のステータスが第１のステータスから第ｎのステータスに変化した場合、メモリ管理部４００は、レジスタ４１０に第ｎのステータスを表すステータスデータＳＴＭ１を格納する。このステータスデータＳＴＭ１は、デコーダ７１０によりデコードされ、選択データＳＥＬＣ２としてマルチプレクサ５２０へ出力される。これにより、マルチプレクサ５２０では、トラップマップ２２０ｎが選択される。
【０１０１】
この状態で、整数演算器１０のみからトラップ要求１１が出されると、プライオリティ制御部７０は、トラップ要求１１をトラップ要求７１としてトラップタイプエンコーダ５１０へ出力する。これにより、トラップタイプエンコーダ５１０は、トラップマップ２２０ｎを参照して、トラップ要求７１をトラップタイプデータ５２１にエンコードし、これをリード／ライト制御部５３０へ出力する。このトラップタイプデータ５２１は、リード／ライト制御部５３０の制御により、トラップタイプレジスタ１１０にライトされた後、リードされ、メモリ（図示略）に転送される。
【０１０２】
なお、実施の形態６では、実行ユニットをメモリ管理部４００とした例について説明したが、このメモリ管理部４００以外の実行ユニット（整数演算器１０、浮動小数点演算器２０、プログラムカウンタ／ブランチユニット４０またはＣＰＵローカルバスＩ／Ｆ制御部５０）にレジスタ４１０と同様のレジスタを設け、実行ユニットのステータスに応じてトラップマップを選択するようにしてもよい。
【０１０３】
（実施の形態７）
さて、前述した実施の形態１〜６では、プライオリティ制御部７０（図１参照）により、整数演算器１０、浮動小数点演算器２０、・・・、ＣＰＵローカルバスＩ／Ｆ制御部５０という実行ユニット毎に出される複数のトラップ要求に対してプライオリティ制御を行う構成について説明したが、実行ユニット内でもプライオリティ制御を行う構成としてもよい。以下では、この構成例を実施の形態７として説明する。
【０１０４】
図８は、本発明にかかる実施の形態７の構成を示すブロック図である。この図において、図１９の各部に対応する部分には同一の符号を付ける。同図では、図１９に示した浮動小数点演算器２０に代えて、実行ユニットとしての浮動小数点演算器８００が設けられている。この浮動小数点演算器８００は、浮動小数点演算器２０（図１９参照）と同様にして、浮動小数点演算コマンドに従って、浮動小数点演算を実行する演算器であり、必要に応じてトラップ要求２１を出す。
【０１０５】
また、浮動小数点演算器８００は、レジスタ８１０、デコーダ８２０およびサブプライオリティ制御部８３０を備えている。図９に示したレジスタ８１０には、浮動小数点演算器８００のステータス（状態）を表すステータスデータＳＴＦ１が格納される。このステータスの例としては、浮動小数点演算器８００が、ＩＥＥＥ（Institute of Electrical and Electronics Engineers）７５４準拠の演算を行う状態にあるか否かがある。
【０１０６】
浮動小数点演算器８００がＩＥＥＥ７５４準拠の演算を行う状態にある場合、レジスタ８１０には、ステータスデータＳＴＦ１としてieee#mode＝１が格納される。一方、浮動小数点演算器８００がＩＥＥＥ７５４準拠以外の演算を行う状態にある場合、レジスタ８１０には、ステータスデータＳＴＦ１としてieee#mode＝０が格納される。デコーダ８２０は、ステータスデータＳＴＦ１をデコードし、これを選択データＳＰ１として出力する。
【０１０７】
この選択データＳＰ１は、トラップ要求８４００（fp#exception#ieee#754）、トラップ要求８４０１（fp#exception#other）のうちいずれか一方をマルチプレクサ８３２で選択するためのデータである。具体的には、ステータスデータＳＴＦ１がieee#mode＝１である場合、マルチプレクサ８３２は、プライオリティエンコーダ８３１０の出力であるトラップ要求８４００を選択し、これをトラップ要求２１（図８参照）としてプライオリティ制御部７０へ出力する。
【０１０８】
一方、ステータスデータＳＴＦ１がieee#mode＝０である場合、マルチプレクサ８３２は、プライオリティエンコーダ８３１１の出力であるトラップ要求８４０１を選択し、これをトラップ要求２１（図８参照）としてプライオリティ制御部７０へ出力する。ここで、トラップ要求８４００は、ＩＥＥＥ７５４準拠のものであり、トラップ要求８４０１は、ＩＥＥＥ７５４準拠以外のものである。
【０１０９】
プライオリティエンコーダ８３１０は、同一時刻にトラップ要求８４００およびトラップ要求８４０１の双方が入力された場合、トラップ要求８４００を優先的にエンコードする。一方、プライオリティエンコーダ８３１１は、同一時刻にトラップ要求８４００およびトラップ要求８４０１の双方が入力された場合、トラップ要求８４０1 を優先的にエンコードする。
【０１１０】
つぎに、上述した実施の形態７の動作について説明する。図９において、ＩＥＥＥ７５４準拠の演算を行う場合には、浮動小数点演算器８００は、レジスタ８１０にステータスデータＳＴＦ１としてieee#mode＝１を格納する。このステータスデータＳＴＦ１は、デコーダ８２０によりデコードされ、選択データＳＰ１としてマルチプレクサ８３２へ出力される。これにより、マルチプレクサ８３２では、プライオリティエンコーダ８３１０側が選択される。
【０１１１】
この状態で、同一時刻にトラップ要求８４００およびトラップ要求８４０１の双方が出されると、プライオリティエンコーダ８３１０は、トラップ要求８４００を優先的にエンコードする。一方、プライオリティエンコーダ８３１１は、トラップ要求８４０１を優先的にエンコードする。
【０１１２】
この場合、マルチプレクサ８３２によりプライオリティエンコーダ８３１〇側が選択されているため、マルチプレクサ８３２からは、トラップ要求８４０〇がトラップ要求２１として図８に示したプライオリティ制御部７０へ出力される。以後、前述した動作を経て、トラップ要求２１は、トラップ要求７１としてトラップタイプエンコーダ８０に入力された後、トラップタイプエンコーダ８０からは、トラップマップ９０に基づくトラップタイプデータ９１がリード／ライト制御部１００へ出力される。
【０１１３】
また、図９において、ＩＥＥＥ７５４準拠以外の演算を行う場合には、浮動小数点演算器８００は、レジスタ８１０にステータスデータＳＴＦ１としてieee#mode＝０を格納する。このステータスデータＳＴＦ１は、デコーダ８２０によりデコードされ、選択データＳＰ１としてマルチプレクサ８３２へ出力される。これにより、マルチプレクサ８３２では、プライオリティエンコーダ８３１１側が選択される。
【０１１４】
この状態で、同一時刻にトラップ要求８４００およびトラップ要求８４０１の双方が出されると、プライオリティエンコーダ８３１０により、トラップ要求８４００が優先的にエンコードされる一方、プライオリティエンコーダ８３１１によりトラップ要求８４０１が優先的にエンコードされる。
【０１１５】
この場合、マルチプレクサ８３２によりプライオリティエンコーダ８３１１側が選択されているため、マルチプレクサ８３２からは、トラップ要求８４０１がトラップ要求２１として図８に示したプライオリティ制御部７０へ出力される。以後、前述した動作を経て、トラップ要求２１は、トラップ要求７１としてトラップタイプエンコーダ８０に入力された後、トラップタイプエンコーダ８０からは、トラップマップ９０に基づくトラップタイプデータ９１がリード／ライト制御部１００へ出力される。
【０１１６】
なお、実施の形態７では、実行ユニットを浮動小数点演算器８００とした例について説明したが、この浮動小数点演算器８００以外の実行ユニット（整数演算器１０、メモリ管理部３０、プログラムカウンタ／ブランチユニット４０またはＣＰＵローカルバスＩ／Ｆ制御部５０）に浮動小数点演算器８００と同様の機能を持たせ、実行ユニットのステータスに応じてトラップ要求をプライオリティ制御するようにしてもよい。
【０１１７】
以上説明したように、実施の形態７によれば、サブプライオリティ制御部８３０により、浮動小数点演算器８００（実行ユニット）内における複数のトラップ要求８４００、８４０１の中から、サブプライオリティ制御部８３０（実行ユニット）の状態に対応するプライオリティに基づいて選択を行うようにしたので、実行ユニット側でトラップ要求に対するプライオリティ制御をきめ細かく実行することができる。
【０１１８】
（実施の形態８）
さて、前述した実施の形態７では、図８に示した浮動小数点演算器８００（実行ユニット）内で、二つのトラップ要求８４００、８４０１に対してプライオリティ制御を実行する構成例について説明したが、ｎ種類（三種類以上）のトラップ要求に対してプライオリティ制御を実行する構成としてもよい。以下では、この構成例を実施の形態８として説明する。
【０１１９】
図１０は、本発明にかかる実施の形態８の構成を示すブロック図である。この図において、図１９の各部に対応する部分には同一の符号を付ける。同図では、図１９に示したメモリ管理部３０に代えて、実行ユニットとしてのメモリ管理部９００が設けられている。このメモリ管理部９００は、メモリ管理部３０（図１９参照）と同様にして、仮想アドレス、物理アドレス相互間の変換を行うとともにキャッシュメモリ（図示略）へのアクセス制御を行い、必要に応じてトラップ要求３１を出す。
【０１２０】
また、メモリ管理部９００は、レジスタ９１０、デコーダ９２０およびサブプライオリティ制御部９３０を備えている。このレジスタ９１０には、メモリ管理部９００のｎ！（ｎの階乗）のステータス（状態）を表すステータスデータＳＴＭ1 が格納される。デコーダ９２０は、ステータスデータＳＴＭ１をデコードし、これを選択データＳＰ２として出力する。
【０１２１】
図１１に示した選択データＳＰ２は、レジスタ９１０（図１０参照）のステータス（状態）に対応させて、ｎ！（ｎの階乗）個のプライオリティエンコーダ９３１０〜９３１ｎ！のそれぞれの出力のうち、言い換えれば、ｎ種類のトラップ要求９４００〜９４０ｎのうちいずれか一つをマルチプレクサ９３２で選択するためのデータである。プライオリティエンコーダ９３１０〜９３１ｎ！のそれぞれは、トラップ要求９４００〜９４０ｎにおけるｎ！種類のプライオリティ順位に従って、同一時刻に複数のトラップ要求があった場合にプライオリティが高いトラップ要求をエンコードする。
【０１２２】
つぎに、上述した実施の形態８の動作について説明する。図１０において、メモリ管理部９００は、あるステータス（第１のステータスと称する）の場合、この第１のステータスに対応するステータスデータＳＴＭ１をレジスタ９１０に格納する。このステータスデータＳＴＭ１は、デコーダ９２０によりデコードされ、選択データＳＰ２としてマルチプレクサ９３２へ出力される。これにより、マルチプレクサ９３２では、図１１に示したプライオリティエンコーダ９３１０側が選択される。
【０１２３】
この状態で、同一時刻に、例えば、トラップ要求９４００およびトラップ要求９４０１の双方が出されると、プライオリティエンコーダ９３１０は、トラップ要求９４００を優先的にエンコードする。この場合、マルチプレクサ９３２によりプライオリティエンコーダ９３１０側が選択されているため、マルチプレクサ９３２からは、トラップ要求９４００がトラップ要求３１として図１０に示したプライオリティ制御部７０へ出力される。以後、前述した動作を経て、トラップ要求３１は、トラップ要求７１としてトラップタイプエンコーダ８０に入力された後、トラップタイプエンコーダ８０からは、トラップマップ９０に基づくトラップタイプデータ９１がリード／ライト制御部１００へ出力される。
【０１２４】
また、図１０において、メモリ管理部９００のステータスが上述した第１のステータスから第２のステータスに変更されると、メモリ管理部９００は、第２のステータスに対応するステータスデータＳＴＭ１をレジスタ９１０に格納する。このステータスデータＳＴＭ１は、デコーダ９２０によりデコードされ、選択データＳＰ２としてマルチプレクサ９３２へ出力される。これにより、マルチプレクサ９３２では、プライオリティエンコーダ９３１１側が選択される。
【０１２５】
この状態で、同一時刻に、例えば、トラップ要求９４００およびトラップ要求９４０１の双方が出されると、プライオリティエンコーダ９３１１は、トラップ要求９４０１を優先的にエンコードする。この場合、マルチプレクサ９３２によりプライオリティエンコーダ９３１１側が選択されているため、マルチプレクサ９３２からは、トラップ要求９４０１がトラップ要求３１として図１０に示したプライオリティ制御部７０へ出力される。以後、前述した動作を経て、トラップ要求３１は、トラップ要求７１としてトラップタイプエンコーダ８０に入力された後、トラップタイプエンコーダ８０からは、トラップマップ９０に基づくトラップタイプデータ９１がリード／ライト制御部１００へ出力される。
【０１２６】
なお、実施の形態８では、実行ユニットをメモリ管理部９００とした例について説明したが、このメモリ管理部９００以外の実行ユニット（整数演算器１０、浮動小数点演算器２０、プログラムカウンタ／ブランチユニット４０またはＣＰＵローカルバスＩ／Ｆ制御部５０）にメモリ管理部９００と同様の機能を持たせ、実行ユニットのステータスに応じてトラップ要求をプライオリティ制御するようにしてもよい。
【０１２７】
（実施の形態９）
さて、前述した実施の形態７では、図８に示したように、自実行ユニット（この場合、浮動小数点演算器８００）のステータスに基づいてトラップ要求のプライオリティ制御を行う構成例について説明したが、自実行ユニット以外の他実行ユニットのステータスに基づいて自実行ユニット内でプライオリティ制御を行うように構成してもよい。以下では、この構成例を実施の形態９として説明する。
【０１２８】
図１２は、本発明にかかる実施の形態９の構成を示すブロック図である。この図において、図１９の各部に対応する部分には同一の符号を付ける。同図では、図１９に示したプログラムカウンタ／ブランチユニット４０およびメモリ管理部３０に代えて、自実行ユニットとしてのプログラムカウンタ／ブランチユニット１０００、および他実行ユニットとしてのメモリ管理部９００が設けられている。
【０１２９】
メモリ管理部９００は、仮想アドレス、物理アドレス相互間の変換を行うとともにキャッシュメモリ（図示略）へのアクセス制御を行い、必要に応じてトラップ要求３１を出す。また、メモリ管理部９００には、レジスタ９１０が設けられている。このレジスタ９１０には、メモリ管理部９００のステータス（状態）を表すステータスデータＳＴＭ１が格納される。上記ステータスとしては、メモリ管理部９００の通常時に対応するステータス（以下、第１のステータスという）と、通常時以外に対応するステータス（以下、第２のステータスという）とがある。
【０１３０】
プログラムカウンタ／ブランチユニット１０００は、実行プログラムをカウントするとともに、プログラムの分岐命令の分岐アドレスの予測を行うものであり、必要に応じてトラップ要求４１を出す。また、プログラムカウンタ／ブランチユニット１０００は、デコーダ１０１０およびサブプライオリティ制御部１０２０を備えている。デコーダ１０１０は、ステータスデータＳＴＭ１をデコードし、これを選択データＳＰ３として出力する。
【０１３１】
この選択データＳＰ３は、メモリ管理部９００のステータスに応じて、トラップ要求１０３００、トラップ要求１０３０１のうちいずれか一方をサブプライオリティ制御部１０２０で選択するためのデータである。このサブプライオリティ制御部１０２０は、前述したサブプライオリティ制御部８３０（図９参照）と同様の構成とされている。
【０１３２】
具体的には、選択データＳＰ３（ステータスデータＳＴＭ１）が第１のステータスに対応する場合、サブプライオリティ制御部１０２０は、トラップ要求１０３００を選択し、これをトラップ要求４１としてプライオリティ制御部７０へ出力する。一方、選択データＳＰ３（ステータスデータＳＴＭ１）が第２のステータスに対応する場合、サブプライオリティ制御部１０２０は、トラップ要求１０３０１を選択し、これをトラップ要求４１としてプライオリティ制御部７０へ出力する。
【０１３３】
つぎに、上述した実施の形態９の動作について説明する。図１２において、メモリ管理部９００（他実行ユニット）のステータスが第１のステータスである場合、メモリ管理部９００は、上記第１のステータスに対応するステータスデータＳＴＭ１をレジスタ９１０に格納する。ステータスデータＳＴＭ１は、プログラムカウンタ／ブランチユニット１０００（自実行ユニット）のデコーダ１０１０によりデコードされ、選択データＳＰ３としてサブプライオリティ制御部１０２０に入力される。
【０１３４】
この状態で、同一時刻にトラップ要求１０３００およびトラップ要求１０３０１の双方が出されると、サブプライオリティ制御部１０２０は、選択データＳＰ３に従って、トラップ要求１０３００を優先的に選択し、これをトラップ要求４１としてプライオリティ制御部７０へ出力する。以後、前述した動作を経て、トラップ要求４１は、トラップ要求７１としてトラップタイプエンコーダ８０に入力された後、トラップタイプエンコーダ８０からは、トラップマップ９０に基づくトラップタイプデータ９１がリード／ライト制御部１００へ出力される。
【０１３５】
また、メモリ管理部９００（他実行ユニット）のステータスが第１のステータスから第２のステータスに変化した場合、メモリ管理部９００は、上記第２のステータスに対応するステータスデータＳＴＭ１をレジスタ９１０に格納する。ステータスデータＳＴＭ１は、プログラムカウンタ／ブランチユニット１０００（自実行ユニット）のデコーダ１０１０によりデコードされ、選択データＳＰ３としてサブプライオリティ制御部１０２０に入力される。
【０１３６】
この状態で、同一時刻にトラップ要求１０３００およびトラップ要求１０３０１の双方が出されると、サブプライオリティ制御部１０２０は、選択データＳＰ３に従って、トラップ要求１０３０１を優先的に選択し、これをトラップ要求４１としてプライオリティ制御部７０へ出力する。以後、前述した動作を経て、トラップ要求４１は、トラップ要求７１としてトラップタイプエンコーダ８０に入力された後、トラップタイプエンコーダ８０からは、トラップマップ９０に基づくトラップタイプデータ９１がリード／ライト制御部１００へ出力される。
【０１３７】
なお、実施の形態９では、自実行ユニットをプログラムカウンタ／ブランチユニット１０００とし、他実行ユニットをメモリ管理部９００とした例について説明したが、これらの自実行ユニットおよび他実行ユニットの機能を整数演算器１０、浮動小数点演算器２０、ＣＰＵローカルバスＩ／Ｆ制御部５０等に持たせ、他実行ユニットのステータスに応じて自実行ユニット内でトラップ要求をプライオリティ制御するようにしてもよい。
【０１３８】
以上説明したように、実施の形態９によれば、サブプライオリティ制御部１０２０により、プログラムカウンタ／ブランチユニット１０００（自実行ユニット）内における複数のトラップ要求１０３０0 、１０３０1 の中から、メモリ管理部９００（他実行ユニット）の状態に対応するプライオリティに基づいて選択を行うようにしたので、プログラムカウンタ／ブランチユニット１０００（自実行ユニット）側でトラップ要求に対するプライオリティ制御をきめ細かく実行することができる。
【０１３９】
（実施の形態１０）
さて、前述した実施の形態９では、図１２に示したように、他実行ユニット（この場合、メモリ管理部９００）のステータスに基づいて、自実行ユニット（この場合、プログラムカウンタ／ブランチユニット１０００）内で二種類のトラップ要求８４００および８４０１のプライオリティ制御を行う構成例について説明したが、他実行ユニットのステータスに基づいて、自実行ユニット内でｎ種類（三種類以上）のトラップ要求のプライオリティ制御を行うように構成してもよい。以下では、この構成例を実施の形態１０として説明する。
【０１４０】
図１３は、本発明にかかる実施の形態１０の構成を示すブロック図である。この図において、図１２の各部に対応する部分には同一の符号を付ける。同図では、図１２に示したプログラムカウンタ／ブランチユニット１０００に代えて、自実行ユニットとしてのプログラムカウンタ／ブランチユニット１１００が設けられている。
【０１４１】
実施の形態１０では、メモリ管理部９００のレジスタ９１０には、メモリ管理部９００の複数（少なくとも３以上）のステータス（状態）を表すステータスデータＳＴＭ１が格納される。上記ステータスとしては、第１のステータス、第２のステータス、・・・がある。プログラムカウンタ／ブランチユニット１１００は、実行プログラムをカウントするとともに、プログラムの分岐命令の分岐アドレスの予測を行うものであり、必要に応じてトラップ要求４１を出す。また、プログラムカウンタ／ブランチユニット１１００は、デコーダ１１１０およびサブプライオリティ制御部１１２０を備えている。デコーダ１１１０は、ステータスデータＳＴＭ１をデコードし、これを選択データＳＰ４として出力する。
【０１４２】
この選択データＳＰ４は、メモリ管理部９００のステータスに応じて、ｎ種類のトラップ要求１１３００、１１３０１、・・・、１１３０ｎのうちいずれか一つをサブプライオリティ制御部１１２０で選択するためのデータである。このサブプライオリティ制御部１１２０は、前述したサブプライオリティ制御部９３０（図１０参照）と同様の構成とされている。例えば、選択データＳＰ４（ステータスデータＳＴＭ１）が第１のステータスに対応する場合、サブプライオリティ制御部１１２０は、トラップ要求１１３００を選択し、これをトラップ要求４１としてプライオリティ制御部７０へ出力する。
【０１４３】
つぎに、上述した実施の形態１０の動作について説明する。図１３において、メモリ管理部９００（他実行ユニット）のステータスが第１のステータスである場合、メモリ管理部９００は、上記第１のステータスに対応するステータスデータＳＴＭ１をレジスタ９１０に格納する。ステータスデータＳＴＭ１は、プログラムカウンタ／ブランチユニット１１００（自実行ユニット）のデコーダ１１１０によりデコードされ、選択データＳＰ４としてサブプライオリティ制御部１１２０に入力される。
【０１４４】
この状態で、同一時刻にトラップ要求１１３００およびトラップ要求１１３０１の双方が出されると、サブプライオリティ制御部１１２０は、選択データＳＰ４に従って、トラップ要求１１３００を優先的に選択し、これをトラップ要求４１としてプライオリティ制御部７０へ出力する。以後、前述した動作を経て、トラップ要求４１は、トラップ要求７１としてトラップタイプエンコーダ８０に入力された後、トラップタイプエンコーダ８０からは、トラップマップ９０に基づくトラップタイプデータ９１がリード／ライト制御部１００へ出力される。
【０１４５】
また、メモリ管理部９００（他実行ユニット）のステータスが第１のステータスから第２のステータスに変化した場合、メモリ管理部９００は、上記第２のステータスに対応するステータスデータＳＴＭ１をレジスタ９１０に格納する。ステータスデータＳＴＭ１は、プログラムカウンタ／ブランチユニット１１００（自実行ユニット）のデコーダ１１１０によりデコードされ、選択データＳＰ４としてサブプライオリティ制御部１１２０に入力される。
【０１４６】
この状態で、同一時刻にトラップ要求１１３００およびトラップ要求１１３０１の双方が出されると、サブプライオリティ制御部１１２０は、選択データＳＰ４に従って、トラップ要求１１３０１を優先的に選択し、これをトラップ要求４１としてプライオリティ制御部７０へ出力する。以後、前述した動作を経て、トラップ要求４１は、トラップ要求７１としてトラップタイプエンコーダ８０に入力された後、トラップタイプエンコーダ８０からは、トラップマップ９０に基づくトラップタイプデータ９１がリード／ライト制御部１００へ出力される。
【０１４７】
なお、実施の形態１０では、自実行ユニットをプログラムカウンタ／ブランチユニット１１００とし、他実行ユニットをメモリ管理部９００とした例について説明したが、これらの自実行ユニットおよび他実行ユニットの機能を整数演算器１０、浮動小数点演算器２０、ＣＰＵローカルバスＩ／Ｆ制御部５０等に持たせ、他実行ユニットのステータスに応じて自実行ユニット内でトラップ要求をプライオリティ制御するようにしてもよい。
【０１４８】
（実施の形態１１）
さて、前述した実施の形態７では、図８に示したように、自実行ユニット（この場合、浮動小数点演算器８００）のステータスに基づいてトラップ要求のプライオリティ制御を行う構成例について説明したが、自実行ユニットのステータスに加えて、他実行ユニットのステータスに基づいて自実行ユニット内でプライオリティ制御を行うように構成してもよい。以下では、この構成例を実施の形態１１として説明する。
【０１４９】
図１４は、本発明にかかる実施の形態１１の構成を示すブロック図である。この図において、図８の各部に対応する部分には同一の符号を付ける。同図では、図８に示した浮動小数点演算器８００およびプログラムカウンタ／ブランチユニット４０に代えて、自実行ユニットとしての浮動小数点演算器１３００、および他実行ユニットとしてのプログラムカウンタ／ブランチユニット１２００が設けられている。
【０１５０】
プログラムカウンタ／ブランチユニット１２００は、実行プログラムをカウントするとともに、プログラムの分岐命令の分岐アドレスの予測を行うものであり、必要に応じてトラップ要求４１を出す。また、プログラムカウンタ／ブランチユニット１２００には、図１５に示したレジスタ１２１０が設けられている。このレジスタ１２１０には、プログラムカウンタ／ブランチユニット１２００のステータス（状態）を表すステータスデータＳＴＰ1 が格納される。
【０１５１】
例えば、プログラムカウンタ／ブランチユニット１２００がＩＥＥＥ７５４準拠の処理を行う状態にある場合、レジスタ１２１０には、ステータスデータＳＴＰ１としてieee#mode1＝１が格納される。一方、プログラムカウンタ／ブランチユニット１２００がＩＥＥＥ７５４準拠以外の処理を行う状態にある場合、レジスタ１２１０には、ステータスデータＳＴＰ１としてieee#mode1＝０が格納される。
【０１５２】
浮動小数点演算器１３００は、浮動小数点演算コマンドに従って、浮動小数点演算を実行する演算器であり、必要に応じてトラップ要求２１を出す。この浮動小数点演算器１３００は、レジスタ８１０、デコーダ１３１０およびサブプライオリティ制御部１３２０を備えている。レジスタ８１０には、浮動小数点演算器１３００のステータス（状態）を表すステータスデータＳＴＦ１が格納される。このステータスの例としては、浮動小数点演算器１３００が、ＩＥＥＥ７５４準拠の演算を行う状態にあるか否かがある。
【０１５３】
浮動小数点演算器１３００がＩＥＥＥ７５４準拠の演算を行う状態にある場合、レジスタ８１０には、ステータスデータＳＴＦ1 としてieee#mode2＝１が格納される。一方、浮動小数点演算器１３００がＩＥＥＥ７５４準拠以外の演算を行う状態にある場合、レジスタ８１０には、ステータスデータＳＴＦ1 としてieee#mode2＝０が格納される。
【０１５４】
デコーダ１３１０は、自実行ユニットとしての浮動小数点演算器１３００のレジスタ８１０からのステータスデータＳＴＦ1 または他実行ユニットとしてのプログラムカウンタ／ブランチユニット１２００のレジスタ１２１０からのステータスデータＳＴＰ１をデコードし、これを選択データＳＰ５として出力する。
【０１５５】
この選択データＳＰ５は、トラップ要求８４００（fp#exception#ieee#754）、トラップ要求８４０１（fp#exception#other）のうちいずれか一方をマルチプレクサ１３２２で選択するためのデータである。具体的には、ステータスデータＳＴＰ１がieee#mode1＝１、およびステータスデータＳＴＦ１がieee#mode2＝１である場合、マルチプレクサ１３２２は、プライオリティエンコーダ１３２１０の出力であるトラップ要求８４００を選択し、これをトラップ要求２１（図１４参照）としてプライオリティ制御部７０へ出力する。
【０１５６】
一方、ステータスデータＳＴＰ１がieee#mode1＝０、およびステータスデータＳＴＦ１がieee#mode2＝０である場合、マルチプレクサ１３２２は、プライオリティエンコーダ１３２１１の出力であるトラップ要求８４０１を選択し、これをトラップ要求２１（図１４参照）としてプライオリティ制御部７０へ出力する。ここで、トラップ要求８４００は、ＩＥＥＥ７５４準拠のものであり、トラップ要求８４０１は、ＩＥＥＥ７５４準拠以外のものである。
【０１５７】
プライオリティエンコーダ１３２１０は、同一時刻にトラップ要求８４００およびトラップ要求８４０１の双方が入力された場合、トラップ要求８４００を優先的にエンコードする。一方、プライオリティエンコーダ１３２１１は、同一時刻にトラップ要求８４００およびトラップ要求８４０１の双方が入力された場合、トラップ要求８４０１を優先的にエンコードする。
【０１５８】
つぎに、上述した実施の形態１１の動作について説明する。図１５において、ＩＥＥＥ７５４準拠の処理を行う場合には、プログラムカウンタ／ブランチユニット１２００は、レジスタ１２１０にステータスデータＳＴＰ1 としてieee#mode1＝１を格納する。同様にして、ＩＥＥＥ７５４準拠の演算を行う場合には、浮動小数点演算器１３００は、レジスタ８１０にステータスデータＳＴＦ１としてieee#mode2＝１を格納する。
【０１５９】
これらのステータスデータＳＴＰ１およびステータスデータＳＴＦ１は、デコーダ１３１０によりデコードされ、選択データＳＰ５としてマルチプレクサ１３２２へ出力される。これにより、マルチプレクサ１３２２では、プライオリティエンコーダ１３２１０側が選択される。
【０１６０】
この状態で、同一時刻にトラップ要求８４００およびトラップ要求８４０１の双方が出されると、プライオリティエンコーダ１３２１０は、トラップ要求８４００を優先的にエンコードする。一方、プライオリティエンコーダ１３２１１は、トラップ要求８４０１を優先的にエンコードする。
【０１６１】
この場合、マルチプレクサ１３２２によりプライオリティエンコーダ１３２１０側が選択されているため、マルチプレクサ１３２２からは、トラップ要求８４００がトラップ要求２１として図１４に示したプライオリティ制御部７０へ出力される。以後、前述した動作を経て、トラップ要求２１は、トラップ要求７１としてトラップタイプエンコーダ８０に入力された後、トラップタイプエンコーダ８０からは、トラップマップ９０に基づくトラップタイプデータ９１がリード／ライト制御部１００へ出力される。
【０１６２】
また、図１５において、ＩＥＥＥ準拠以外の処理を行う場合には、プログラムカウンタ／ブランチユニット１２００は、レジスタ１２１０にステータスデータＳＴＰ１としてieee#mode1＝０を格納する。同様にして、ＩＥＥＥ７５４準拠以外の演算を行う場合には、浮動小数点演算器１３００は、レジスタ８１０にステータスデータＳＴＦ１としてieee#mode2＝０を格納する。
【０１６３】
これらのステータスデータＳＴＰ１およびステータスデータＳＴＦ１は、デコーダ１３１０によりデコードされ、選択データＳＰ５としてマルチプレクサ１３２２へ出力される。これにより、マルチプレクサ１３２２では、プライオリティエンコーダ１３２１１側が選択される。
【０１６４】
この状態で、同一時刻にトラップ要求８４００およびトラップ要求８４０１の双方が出されると、プライオリティエンコーダ１３２１０は、トラップ要求８４００を優先的にエンコードする。一方、プライオリティエンコーダ１３２１１は、トラップ要求８４０１を優先的にエンコードする。
【０１６５】
この場合、マルチプレクサ１３２２によりプライオリティエンコーダ１３２１１側が選択されているため、マルチプレクサ１３２２からは、トラップ要求８４０１がトラップ要求２１として図１４に示したプライオリティ制御部７０へ出力される。以後、前述した動作を経て、トラップ要求２１は、トラップ要求７１としてトラップタイプエンコーダ８０に入力された後、トラップタイプエンコーダ８０からは、トラップマップ９０に基づくトラップタイプデータ９１がリード／ライト制御部１００へ出力される。
【０１６６】
なお、実施の形態１１では、図１４に示したように、自実行ユニットを浮動小数点演算器１３００とし、他実行ユニットをプログラムカウンタ／ブランチユニット１２００とした例について説明したが、これらの自実行ユニットおよび他実行ユニットの機能を整数演算器１０、メモリ管理部３０、ＣＰＵローカルバスＩ／Ｆ制御部５０等に持たせ、自実行ユニットのステータスおよび他実行ユニットのステータスに応じて自実行ユニット内でトラップ要求をプライオリティ制御するようにしてもよい。
【０１６７】
以上説明したように、実施の形態１１によれば、サブプライオリティ制御部１３２０により、浮動小数点演算器１３００（自実行ユニット）内における複数のトラップ要求８４００、８４０１の中から、プログラムカウンタ／ブランチユニット１２００（他実行ユニット）の状態および浮動小数点演算器１３００（自実行ユニット）の状態に対応するプライオリティに基づいて選択を行うようにしたので、浮動小数点演算器１３００（自実行ユニット）側でトラップ要求に対するプライオリティ制御をきめ細かく実行することができる。
【０１６８】
（実施の形態１２）
さて、前述した実施の形態１１では、図１４に示した浮動小数点演算器１３００（自実行ユニット）内で、二つのトラップ要求８４００、８４０１に対してプライオリティ制御を実行する構成例について説明したが、ｎ種類（三種類以上）のトラップ要求に対してプライオリティ制御を実行する構成としてもよい。以下では、この構成例を実施の形態１２として説明する。
【０１６９】
図１６は、本発明にかかる実施の形態１２の構成を示すブロック図である。この図において、図１９の各部に対応する部分には同一の符号を付ける。同図では、図１９に示したプログラムカウンタ／ブランチユニット４０に代えて、自実行ユニットとしてのプログラムカウンタ／ブランチユニット１４００が設けられている。さらに、同図では、図１９に示したメモリ管理部３０に代えて、他実行ユニットとしてのメモリ管理部４００が設けられている。
【０１７０】
このメモリ管理部４００は、メモリ管理部３０（図１９参照）と同様にして、仮想アドレス、物理アドレス相互間の変換を行うとともにキャッシュメモリ（図示略）へのアクセス制御を行い、必要に応じてトラップ要求３１を出す。このメモリ管理部４００のレジスタ４１０には、メモリ管理部４００の複数（少なくとも３以上）のステータス（状態）を表すステータスデータＳＴＭ１が格納される。上記ステータスとしては、複数種類ある。
【０１７１】
プログラムカウンタ／ブランチユニット１４００は、実行プログラムをカウントするとともに、プログラムの分岐命令の分岐アドレスの予測を行うものであり、必要に応じてトラップ要求４１を出す。また、プログラムカウンタ／ブランチユニット１４００は、レジスタ１４１０、デコーダ１４２０およびサブプライオリティ制御部１４３０を備えている。レジスタ１４１０には、プログラムカウンタ／ブランチユニット１４００の複数（少なくとも３以上）のステータス（状態）を表すステータスデータＳＴＰ２が格納される。上記ステータスとしては、複数種類ある。
【０１７２】
デコーダ１４２０は、ステータスデータＳＴＭ１およびステータスデータＳＴＰ２をデコードし、これを選択データＳＰ６として出力する。この選択データＳＰ６は、メモリ管理部４００のステータスとプログラムカウンタ／ブランチユニット１４００のステータスとの組み合わせ（例えば、第１の組み合わせ、第２の組み合わせ、・・・）に応じて、ｎ種類のトラップ要求１４４００、１４４０１、・・・、１４４０ｎのうちいずれか一つをサブプライオリティ制御部１４３０で選択するためのデータである。
【０１７３】
このサブプライオリティ制御部１４３０は、前述したサブプライオリティ制御部９３０（図１０参照）と同様の構成とされている。例えば、選択データＳＰ６（ステータスデータＳＴＭ１）が第１の組み合わせに対応する場合、サブプライオリティ制御部１４３０は、トラップ要求１４４００を選択し、これをトラップ要求４１としてプライオリティ制御部７０へ出力する。
【０１７４】
つぎに、上述した実施の形態１２の動作について説明する。図１６において、メモリ管理部４００（他実行ユニット）は、現在のステータスに対応するステータスデータＳＴＭ１をレジスタ４１０に格納する。同様にして、プログラムカウンタ／ブランチユニット１４００（自実行ユニット）は、現在のステータスに対応するステータスデータＳＴＰ２をレジスタ１４１０に格納する。これらのステータスデータＳＴＭ１およびステータスデータＳＴＰ２は、プログラムカウンタ／ブランチユニット１４００（自実行ユニット）のデコーダ１４２０によりデコードされ、選択データＳＰ６としてサブプライオリティ制御部１４３０に入力される。
【０１７５】
この状態で、同一時刻にトラップ要求１４４００およびトラップ要求１４４０１の双方が出されると、サブプライオリティ制御部１４３０は、選択データＳＰ６に従って、トラップ要求１４４００を優先的に選択し、これをトラップ要求４１としてプライオリティ制御部７０へ出力する。以後、前述した動作を経て、トラップ要求４１は、トラップ要求７１としてトラップタイプエンコーダ８０に入力された後、トラップタイプエンコーダ８０からは、トラップマップ９０に基づくトラップタイプデータ９１がリード／ライト制御部１００へ出力される。
【０１７６】
また、メモリ管理部４００（他実行ユニット）のステータスが別のステータスに変化した場合、メモリ管理部４００は、上記別のステータスに対応するステータスデータＳＴＭ1 をレジスタ４１０に格納する。同様にして、プログラムカウンタ／ブランチユニット１４００（自実行ユニット）のステータスが別のステータスに変化した場合、プログラムカウンタ／ブランチユニット１４００は、上記別のステータスに対応するステータスデータＳＴＰ２をレジスタ１４１０に格納する。
【０１７７】
これらのステータスデータＳＴＭ１およびステータスデータＳＴＰ２は、プログラムカウンタ／ブランチユニット１４００（自実行ユニット）のデコーダ１４２０によりデコードされ、選択データＳＰ６としてサブプライオリティ制御部１４３０に入力される。
【０１７８】
この状態で、同一時刻にトラップ要求１４４００およびトラップ要求１４４０１の双方が出されると、サブプライオリティ制御部１４３０は、選択データＳＰ６に従って、トラップ要求１４４０１を優先的に選択し、これをトラップ要求４１としてプライオリティ制御部７０へ出力する。以後、前述した動作を経て、トラップ要求４１は、トラップ要求７１としてトラップタイプエンコーダ８０に入力された後、トラップタイプエンコーダ８０からは、トラップマップ９０に基づくトラップタイプデータ９１がリード／ライト制御部１００へ出力される。
【０１７９】
なお、実施の形態１２では、自実行ユニットをプログラムカウンタ／ブランチユニット１４００とし、他実行ユニットをメモリ管理部４００とした例について説明したが、これらの自実行ユニットおよび他実行ユニットの機能を整数演算器１０、浮動小数点演算器２０、ＣＰＵローカルバスＩ／Ｆ制御部５０等に持たせ、他実行ユニットのステータスおよび自実行ユニットのステータスに応じて自実行ユニット内でトラップ要求をプライオリティ制御するようにしてもよい。
【０１８０】
（実施の形態１３）
さて、前述した実施の形態１１では、図１４に示した他実行ユニットのステータスとして、一つのプログラムカウンタ／ブランチユニット１２００のステータスを利用した構成例について説明したが、複数の他実行ユニットのそれぞれのステータスを利用する構成としてもよい。以下では、この構成例を実施の形態１３として説明する。
【０１８１】
図１７は、本発明にかかる実施の形態１３の構成を示すブロック図である。この図において、図１９の各部に対応する部分には同一の符号を付ける。同図では、図１９に示した整数演算器１０、浮動小数点演算器２０、メモリ管理部３０、プログラムカウンタ／ブランチユニット４０、ＣＰＵローカルバスＩ／Ｆ制御部５０に代えて、整数演算器１５００、浮動小数点演算器１６００、メモリ管理部１７００、プログラムカウンタ／ブランチユニット１８００、ＣＰＵローカルバスＩ／Ｆ制御部１９００が設けられている。
【０１８２】
実施の形態１３では、プログラムカウンタ／ブランチユニット１８００は、自実行ユニットとして機能し、その他の整数演算器１５００、浮動小数点演算器１６００、メモリ管理部１７００およびＣＰＵローカルバスＩ／Ｆ制御部１９００は、他実行ユニットとして機能する。
【０１８３】
これらの整数演算器１５００、浮動小数点演算器１６００、メモリ管理部１７００、プログラムカウンタ／ブランチユニット１８００およびＣＰＵローカルバスＩ／Ｆ制御部１９００の基本的な機能は、整数演算器１０、浮動小数点演算器２０、メモリ管理部３０、プログラムカウンタ／ブランチユニット４０およびＣＰＵローカルバスＩ／Ｆ制御部５０の機能と同様である。
【０１８４】
従って、整数演算器１５００、浮動小数点演算器１６００、メモリ管理部１７００、プログラムカウンタ／ブランチユニット１８００およびＣＰＵローカルバスＩ／Ｆ制御部１９００からは、必要に応じてトラップ要求１１、トラップ要求２１、トラップ要求３１、トラップ要求４１およびトラップ要求５１が出される。
【０１８５】
ただし、整数演算器１５００は、レジスタ１５１０を備えている。このレジスタ１５１０には、整数演算器１５００のステータス（状態）を表すステータスデータＳＴＩが格納される。浮動小数点演算器１６００は、レジスタ１６１０を備えている。このレジスタ１６１０には、浮動小数点演算器１６００のステータス（状態）を表すステータスデータＳＴＦが格納される。メモリ管理部１７００は、レジスタ１７１０を備えている。このレジスタ１７１０には、メモリ管理部１７００のステータス（状態）を表すステータスデータＳＴＭが格納される。
【０１８６】
ＣＰＵローカルバスＩ／Ｆ制御部１９００は、レジスタ１９１０を備えている。このレジスタ１９１０には、ＣＰＵローカルバスＩ／Ｆ制御部１９００のステータス（状態）を表すステータスデータＳＴＣ が格納される。プログラムカウンタ／ブランチユニット１８００は、レジスタ１８１０、デコーダ１８２０およびサブプライオリティ制御部１８３０を備えている。レジスタ１８１０には、プログラムカウンタ／ブランチユニット１８００のステータス（状態）を表すステータスデータＳＴＰが格納される。
【０１８７】
デコーダ１８２０は、ステータスデータＳＴＩ、ステータスデータＳＴＦ、ステータスデータＳＴＭ、ステータスデータＳＴＣおよびステータスデータＳＴＰをデコードし、これを選択データＳＰ7 として出力する。この選択データＳＰ7 は、上述したステータスデータＳＴＩ、・・、およびステータスデータＳＴＰの組み合わせ（例えば、第１の組み合わせ、第２の組み合わせ）に応じて、トラップ要求１８４００、１８４０１のうちいずれか一方をサブプライオリティ制御部１８３０で選択するためのデータである。
【０１８８】
このサブプライオリティ制御部１８３０は、前述したサブプライオリティ制御部８３０（図９参照）と同様の構成とされている。例えば、選択データＳＰ７が第１の組み合わせに対応する場合、サブプライオリティ制御部１８３０は、トラップ要求１８４００を選択し、これをトラップ要求４１としてプライオリティ制御部７０へ出力する。一方、選択データＳＰ7 が第２の組み合わせに対応する場合、サブプライオリティ制御部１８３０は、トラップ要求１８４０１を選択し、これをトラップ要求４１としてプライオリティ制御部７０へ出力する。
【０１８９】
つぎに、上述した実施の形態１３の動作について説明する。図１７において、他実行ユニットである整数演算器１５００、浮動小数点演算器１６００、メモリ管理部１７００およびＣＰＵローカルバスＩ／Ｆ制御部１９００は、それぞれの現在のステータスに対応するステータスデータＳＴＩ、ステータスデータＳＴＦ、ステータスデータＳＴＭ、ステータスデータＳＴＣをレジスタ１５１０、レジスタ１６１０、レジスタ１７１０およびレジスタ１９１０に格納する。同様にして、プログラムカウンタ／ブランチユニット１８００（自実行ユニット）は、現在のステータスに対応するステータスデータＳＴＰをレジスタ１８１０に格納する。
【０１９０】
これらのステータスデータＳＴＩ、ステータスデータＳＴＦ、ステータスデータＳＴＭ、ステータスデータＳＴＣおよびステータスデータＳＴＰは、プログラムカウンタ／ブランチユニット１８００（自実行ユニット）のデコーダ１８２０によりデコードされ、選択データＳＰ７としてサブプライオリティ制御部１８３０に入力される。この場合、ステータスデータの組み合わせは、第１の組み合わせであるものとする。
【０１９１】
この状態で、同一時刻にトラップ要求１８４００およびトラップ要求１８４０１の双方が出されると、サブプライオリティ制御部１８３０は、選択データＳＰ７に従って、トラップ要求１８４００を優先的に選択し、これをトラップ要求４１としてプライオリティ制御部７０へ出力する。以後、前述した動作を経て、トラップ要求４１は、トラップ要求７１としてトラップタイプエンコーダ８０に入力された後、トラップタイプエンコーダ８０からは、トラップマップ９０に基づくトラップタイプデータ９１がリード／ライト制御部１００へ出力される。
【０１９２】
また、整数演算器１５００、浮動小数点演算器１６００、メモリ管理部１７００、プログラムカウンタ／ブランチユニット１８００およびＣＰＵローカルバスＩ／Ｆ制御部１９００のそれぞれのステータスが別のステータスに変化した場合、それぞれは、別のステータスを各レジスタに格納する。
【０１９３】
これらの別のステータスデータＳＴＩ、・・・、ＳＴＣ、ＳＴＰは、プログラムカウンタ／ブランチユニット１８００（自実行ユニット）のデコーダ１８２０によりデコードされ、選択データＳＰ７としてサブプライオリティ制御部１８３０に入力される。この場合、ステータスデータの組み合わせは、第２の組み合わせであるものとする。
【０１９４】
この状態で、同一時刻にトラップ要求１８４００およびトラップ要求１８４０１の双方が出されると、サブプライオリティ制御部１８３０は、選択データＳＰ７に従って、トラップ要求１８４０１を優先的に選択し、これをトラップ要求４１としてプライオリティ制御部７０へ出力する。以後、前述した動作を経て、トラップ要求４１は、トラップ要求７１としてトラップタイプエンコーダ８０に入力された後、トラップタイプエンコーダ８０からは、トラップマップ９０に基づくトラップタイプデータ９１がリード／ライト制御部１００へ出力される。
【０１９５】
なお、実施の形態１３では、自実行ユニットをプログラムカウンタ／ブランチユニット１８００とした例について説明したが、プログラムカウンタ／ブランチユニット１８００の機能を整数演算器１５００、浮動小数点演算器１６００、メモリ管理部１７００またはＣＰＵローカルバスＩ／Ｆ制御部１９００等に持たせるようにしてもよい。
【０１９６】
（実施の形態１４）
さて、前述した実施の形態１３では、図１７に示したプログラムカウンタ／ブランチユニット１８００（自実行ユニット）内で、二つのトラップ要求１８４００、１８４０１に対してプライオリティ制御を実行する構成例について説明したが、ｎ種類（三種類以上）のトラップ要求に対してプライオリティ制御を実行する構成としてもよい。以下では、この構成例を実施の形態１４として説明する。
【０１９７】
図１８は、本発明にかかる実施の形態１４の構成を示すブロック図である。この図において、図１７の各部に対応する部分には同一の符号を付ける。同図では、図１７に示したプログラムカウンタ／ブランチユニット１８００に代えて、自実行ユニットとしてのプログラムカウンタ／ブランチユニット２０００が設けられている。
【０１９８】
プログラムカウンタ／ブランチユニット２０００は、実行プログラムをカウントするとともに、プログラムの分岐命令の分岐アドレスの予測を行うものであり、必要に応じてトラップ要求４１を出す。また、プログラムカウンタ／ブランチユニット２０００は、レジスタ１８１０（図１７参照）、デコーダ２０１０、サブプライオリティ制御部２０２０を備えている。
【０１９９】
デコーダ２０１０は、ステータスデータＳＴＩ、ステータスデータＳＴＦ、ステータスデータＳＴＭ、ステータスデータＳＴＣおよびステータスデータＳＴＰをデコードし、これを選択データＳＰ８として出力する。この選択データＳＰ８は、上述したステータスデータＳＴＩ、・・・、およびステータスデータＳＴＰの組み合わせ（例えば、第１の組み合わせ、第２の組み合わせ、・・・）に応じて、ｎ種類のトラップ要求１８４００、１８４０１、・・・・、１８４０ｎのうちいずれか一つをサブプライオリティ制御部２０２０で選択するためのデータである。
【０２００】
このサブプライオリティ制御部２０２０は、前述したサブプライオリティ制御部９３０（図１０参照）と同様の構成とされている。例えば、選択データＳＰ８が第１の組み合わせに対応する場合、サブプライオリティ制御部２０２０は、トラップ要求１８４００を選択し、これをトラップ要求４１としてプライオリティ制御部７０へ出力する。
【０２０１】
つぎに、上述した実施の形態１４の動作について説明する。図１８において、他実行ユニットである整数演算器１５００、浮動小数点演算器１６００、メモリ管理部１７００およびＣＰＵローカルバスＩ／Ｆ制御部１９００は、実施の形態１３の場合と同様にして、それぞれの現在のステータスに対応するステータスデータＳＴＩ、ステータスデータＳＴＦ、ステータスデータＳＴＭ、ステータスデータＳＴＣをレジスタ１５１０、レジスタ１６１０、レジスタ１７１０およびレジスタ１９１０に格納する。同様にして、プログラムカウンタ／ブランチユニット２０００（自実行ユニット）は、現在のステータスに対応するステータスデータＳＴＰをレジスタ１８１０に格納する。
【０２０２】
これらのステータスデータＳＴＩ、ステータスデータＳＴＦ、ステータスデータＳＴＭ、ステータスデータＳＴＣおよびステータスデータＳＴＰは、プログラムカウンタ／ブランチユニット２０００（自実行ユニット）のデコーダ２０１０によりデコードされ、選択データＳＰ８としてサブプライオリティ制御部２０２０に入力される。この場合、ステータスデータの組み合わせは、第１の組み合わせであるものとする。
【０２０３】
この状態で、同一時刻にトラップ要求１８４００およびトラップ要求１８４０１の双方が出されると、サブプライオリティ制御部２０２０は、選択データＳＰ８に従って、トラップ要求１８４００を優先的に選択し、これをトラップ要求４１としてプライオリティ制御部７０へ出力する。以後、前述した動作を経て、トラップ要求４１は、トラップ要求７１としてトラップタイプエンコーダ８０に入力された後、トラップタイプエンコーダ８０からは、トラップマップ９０に基づくトラップタイプデータ９１がリード／ライト制御部１００へ出力される。
【０２０４】
また、整数演算器１５００、浮動小数点演算器１６００、メモリ管理部１７００、プログラムカウンタ／ブランチユニット２０００およびＣＰＵローカルバスＩ／Ｆ制御部１９００のそれぞれのステータスが別のステータスに変化した場合、それぞれは、実施の形態１３の場合と同様にして、別のステータスを各レジスタに格納する。
【０２０５】
これらの別のステータスデータＳＴＩ、・・・、ＳＴＣおよびＳＴＰは、プログラムカウンタ／ブランチユニット２０００（自実行ユニット）のデコーダ２０１０によりデコードされ、選択データＳＰ８としてサブプライオリティ制御部２０２０に入力される。この場合、ステータスデータの組み合わせは、第２の組み合わせであるものとする。
【０２０６】
この状態で、同一時刻にトラップ要求１８４００およびトラップ要求１８４０１の双方が出されると、サブプライオリティ制御部２０２０は、選択データＳＰ８に従って、トラップ要求１８４０１を優先的に選択し、これをトラップ要求４１としてプライオリティ制御部７０へ出力する。以後、前述した動作を経て、トラップ要求４１は、トラップ要求７１としてトラップタイプエンコーダ８０に入力された後、トラップタイプエンコーダ８０からは、トラップマップ９０に基づくトラップタイプデータ９１がリード／ライト制御部１００へ出力される。
【０２０７】
なお、実施の形態１４では、自実行ユニットをプログラムカウンタ／ブランチユニット２０００とした例について説明したが、プログラムカウンタ／ブランチユニット２０００の機能を整数演算器１５００、浮動小数点演算器１６００、メモリ管理部１７００またはＣＰＵローカルバスＩ／Ｆ制御部１９００等に持たせるようにしてもよい。
【０２０８】
以上本発明にかかる実施の形態１〜１４について図面を参照して詳述してきたが、具体的な構成例はこれら実施の形態１〜１４に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等があっても本発明に含まれる。
【０２０９】
（付記１）実行ユニットからのトラップ要求に対応するトラップタイプデータに基づいて、トラップ処理を実行する演算処理装置において、
少なくとも第１のシステム、第２のシステムから、演算処理装置を適用すべきものを一つ選択する選択手段と、
前記トラップ要求と第１のシステムに適合する第１のトラップタイプデータとの対応関係を定義する第１のトラップマップ、または前記トラップ要求と第２のシステムに適合する第２のトラップタイプデータとの対応関係を定義する第２のトラップマップのうち、前記選択手段により選択されたものに対応するいずれか一つに従って、実行ユニットからのトラップ要求を第１のトラップデータまたは第２のトラップデータにエンコードするエンコード手段と、
を備えたことを特徴とする演算処理装置。
【０２１０】
（付記２）前記選択手段は、３種類以上のシステムから、演算処理装置を適用すべきものを一つ選択し、前記エンコード手段は、前記３種類以上のシステムに対応する３種類以上のトラップデータから、前記選択手段により選択されたものに対応するいずれか一つに従って、前記実行ユニットからのトラップ要求をエンコードすることを特徴とする付記１に記載の演算処理装置。
【０２１１】
（付記３）前記選択手段は、選択データを格納する格納手段と、前記格納手段に格納された前記選択データをデコードするデコード手段とを備えたことを特徴とする付記１または２に記載の演算処理装置。
【０２１２】
（付記４）前記選択手段は、外部機構により設定される選択データを格納する格納手段と、前記格納手段に格納された前記選択データをデコードするデコード手段とを備えたことを特徴とする付記１または２に記載の演算処理装置。
【０２１３】
（付記５）実行ユニットからのトラップ要求に対応するトラップタイプデータに基づいて、トラップ処理を実行する演算処理装置において、
前記トラップ要求と前記実行ユニットの第１の状態に適合する第１のトラップタイプデータとの対応関係を定義する第１のトラップマップ、または前記トラップ要求と前記実行ユニットの第２の状態に適合する第２のトラップタイプデータとの対応関係を定義する第２のトラップマップのうち、前記実行ユニットの状態に対応するいずれか一つに従って、実行ユニットからのトラップ要求を第１のトラップデータまたは第２のトラップデータにエンコードするエンコード手段、
を備えたことを特徴とする演算処理装置。
【０２１４】
（付記６）実行ユニットからのトラップ要求に対応するトラップタイプデータに基づいて、トラップ処理を実行する演算処理装置において、前記トラップ要求とトラップタイプデータとの対応関係を定義するトラップマップを前記実行ユニットの状態に対応させて複数備え、複数のトラップマップのうち、前記実行ユニットの状態に対応するいずれか一つに従って、実行ユニットからのトラップ要求をトラップデータにエンコードするエンコード手段を備えたことを特徴とする演算処理装置。
【０２１５】
（付記７）実行ユニットの状態を表すステータスデータを格納するステータスデータ格納手段と、
前記実行ユニット内で複数のトラップ要求が同時に出された場合、前記ステータスデータにより決定されるプライオリティに基づいて、トラップ要求を選択するプライオリティ制御手段と、
を備えたことを特徴とする演算処理装置。
【０２１６】
（付記８）前記プライオリティ制御手段は、３つ以上のトラップ要求が同時に出された場合、前記ステータスデータにより決定されるプライオリティに基づいて、前記３つ以上のトラップ要求の中から、プライオリティが高いトラップ要求を選択することを特徴とする付記７に記載の演算処理装置。
【０２１７】
（付記９）第１の実行ユニットの状態を表すステータスデータを格納するステータスデータ格納手段と、
第２の実行ユニット内で複数のトラップ要求が同時に出された場合、前記ステータスデータにより決定されるプライオリティに基づいて、トラップ要求を選択するプライオリティ制御手段と、
を備えたことを特徴とする演算処理装置。
【０２１８】
（付記１０）前記プライオリティ制御手段は、第２の実行ユニット内で３つ以上のトラップ要求が同時に出された場合、前記ステータスデータにより決定されるプライオリティに基づいて、前記３つ以上のトラップ要求の中から、プライオリティが高いトラップ要求を選択することを特徴とする付記９に記載の演算処理装置。
【０２１９】
（付記１１）第１の実行ユニットの状態を表す第１のステータスデータを格納する第１のステータスデータ格納手段と、
第２の実行ユニットの状態に関する第２のステータスデータを格納する第２のステータスデータ格納手段と、
前記第２の実行ユニット内で複数のトラップ要求が同時に出された場合、前記第１のステータスデータ、第２のステータスデータにより決定されるプライオリティに基づいて、トラップ要求を選択するプライオリティ制御手段と、
を備えたことを特徴とする演算処理装置。
【０２２０】
（付記１２）前記プライオリティ制御手段は、前記第２の実行ユニット内で３つ以上のトラップ要求が同時に出された場合、前記第１のステータスデータ、第２のステータスデータにより決定されるプライオリティに基づいて、前記３つ以上のトラップ要求の中から、プライオリティが高いトラップ要求を選択することを特徴とする付記１１に記載の演算処理装置。
【０２２１】
（付記１３）第１の実行ユニットの状態を表す第１のステータスデータを格納する第１のステータスデータ格納手段と、
前記第１の実行ユニット以外の複数の第２の実行ユニットのそれぞれの状態に関する第２のステータスデータをそれぞれ格納する複数の第２のステータスデータ格納手段と、
前記第２の実行ユニット内で複数のトラップ要求が同時に出された場合、前記第１のステータスデータ、複数の第２のステータスデータにより決定されるプライオリティに基づいて、トラップ要求を選択するプライオリティ制御手段と、
を備えたことを特徴とする演算処理装置。
【０２２２】
（付記１４）前記プライオリティ制御手段は、前記第２の実行ユニット内で３つ以上のトラップ要求が同時に出された場合、前記第１のステータスデータ、複数の第２のステータスデータにより決定されるプライオリティに基づいて、前記３つ以上のトラップ要求の中から、プライオリティが高いトラップ要求を選択することを特徴とする付記１３に記載の演算処理装置。
【図面の簡単な説明】
【０２２３】
【図１】本発明にかかる実施の形態１の構成を示すブロック図である。
【図２】図１に示したトラップタイプエンコーダ２１０の構成を示す図である。
【図３】本発明にかかる実施の形態２の構成を示すブロック図である。
【図４】本発明にかかる実施の形態３の構成を示すブロック図である。
【図５】本発明にかかる実施の形態４の構成を示すブロック図である。
【図６】本発明にかかる実施の形態５の構成を示すブロック図である。
【図７】本発明にかかる実施の形態６の構成を示すブロック図である。
【図８】本発明にかかる実施の形態７の構成を示すブロック図である。
【図９】図８に示した浮動小数点演算器８００の構成を示す図である。
【図１０】本発明にかかる実施の形態８の構成を示すブロック図である。
【図１１】図１０に示したサブプライオリティ制御部９３０の構成を示す図である。
【図１２】本発明にかかる実施の形態９の構成を示すブロック図である。
【図１３】本発明にかかる実施の形態１０の構成を示すブロック図である。
【図１４】本発明にかかる実施の形態１１の構成を示すブロック図である。
【図１５】図１４に示したレジスタ１２１０およびサブプライオリティ制御部１３２０の構成を示す図である。
【図１６】本発明にかかる実施の形態１２の構成を示すブロック図である。
【図１７】本発明にかかる実施の形態１３の構成を示すブロック図である。
【図１８】本発明にかかる実施の形態１４の構成を示すブロック図である。
【図１９】従来の演算処理装置の構成を示すブロック図である。
【図２０】図１９に示したトラップタイプエンコーダ８０の構成を示す図である。
【符号の説明】
【０２２４】
２００、３００、５００、６００、７００  トラップ制御部
２１０、５１０  トラップタイプエンコーダ
２２００〜２２０ｎ  トラップマップ
２４０、５４０  トラップマップ選択レジスタ
３００  トラップ制御部
３２０、６２０  選択部
４１０  レジスタ
５１０  トラップタイプエンコーダ
８３０、９３０、１０２０、１１２０  サブプライオリティ制御部
１３２０、１４３０、１８３０、２０２０  サブプライオリティ制御部
【図１】
2008016057.tif 000003
【図２】
2008016057.tif 000004
【図３】
2008016057.tif 000005
【図４】
2008016057.tif 000006
【図５】
2008016057.tif 000007
【図６】
2008016057.tif 000008
【図７】
2008016057.tif 000009
【図８】
2008016057.tif 000010
【図９】
2008016057.tif 000011
【図１０】
2008016057.tif 000012
【図１１】
2008016057.tif 000013
【図１２】
2008016057.tif 000014
【図１３】
2008016057.tif 000015
【図１４】
2008016057.tif 000016
【図１５】
2008016057.tif 000017
【図１６】
2008016057.tif 000018
【図１７】
2008016057.tif 000019
【図１８】
2008016057.tif 000020
【図１９】
2008016057.tif 000021
【図２０】
2008016057.tif 000022