(57)【特許請求の範囲】
【請求項１】
内部バスを介して接続される少なくとも１つの周辺装置にアクセスを行う演算回路と、
前記演算回路と前記内部バスとの間に配置され、前記演算回路から前記内部バスへのアクセスの有効状態と無効状態とを切り替える内部バス接続回路と、
前記少なくとも１つの周辺装置のうちいずれかから出力される例外発生信号に基づき前記演算回路に例外発生通知信号を出力する例外通知制御回路と、
前記例外発生通知信号に応じて前記内部バス接続回路に前記演算回路から前記内部バスへのアクセスを前記無効状態とする無効化信号を出力し、前記演算回路が前記例外発生通知信号に基づき生成する例外処理開始信号に応じて前記内部バス接続回路に前記演算回路から前記内部バスへのアクセスを前記有効状態とする有効化信号を出力するバス無効化制御回路と、を有し、
前記演算回路は、前記例外処理開始信号に応じて前記有効状態とされた前記内部バスを介して、前記周辺装置のうち例外処理プログラムが格納された周辺装置に格納された例外処理プログラムに基づき例外処理を行う、
データ処理装置。
【請求項２】
前記演算回路は、前記例外発生通知信号に基づき前記バス無効化制御回路に前記無効化信号を出力させるセット信号を出力し、前記例外処理開始信号に基づき前記バス無効化制御回路に前記有効化信号を出力させるクリア信号を出力する割り込み受付制御部を有する請求項１に記載のデータ処理装置。
【請求項３】
前記割り込み受付制御部は、前記内部バスへのアクセスが前記無効状態である場合において、前記例外発生通知信号による前記例外処理よりも優先度の高い緊急割り込み処理の発生を通知する前記少なくとも１つの周辺装置のうちいずれかからの緊急割り込み通知信号に応じて、前記演算回路内の命令実行部に緊急割り込み要求信号と、前記バス無効化制御回路に前記クリア信号と、を出力し、
前記演算回路により出力される割り込み処理完了信号に応じて、前記セット信号を出力する請求項２に記載のデータ処理装置。
【請求項４】
前記演算回路は、前記演算回路において実行中のタスクの動作ステータスを格納する動作ステータスレジスタと、をさらに有し、
前記バス無効化制御回路は、前記内部バスへのアクセスが前記無効状態である場合において、前記動作ステータスが前記例外処理よりも優先度の高い緊急割り込み処理を示す場合、前記内部バス接続回路に前記有効化信号を出力し、
前記演算回路により出力される割り込み処理完了信号に応じて、前記内部バス接続回路に前記無効化信号を出力する請求項２に記載のデータ処理装置。
【請求項５】
前記演算回路は、前記例外発生通知信号に基づきセット信号を出力する割り込み受付制御部と、前記演算回路において実行中のタスクの動作ステータスを格納する動作ステータスレジスタと、を有し、
前記バス無効化制御回路は、前記セット信号に基づき前記内部バス接続回路に前記無効化信号を出力し、前記動作ステータスが前記例外処理の実行を示すものである場合に前記内部バス接続回路に前記有効化信号を出力する請求項１に記載のデータ処理装置。
【請求項６】
前記内部バス接続回路は、前記演算回路から前記内部バスへのアクセスを前記無効状態にする場合、前記演算回路の前記内部バスに対するアクセスに応じて疑似的に前記演算回路に応答を返信するダミー応答回路を有する請求項１乃至５のいずれか１項に記載のデータ処理装置。
【請求項７】
前記例外通知制御回路は、前記少なくとも１つの周辺装置のうちいずれかにおいて発生したエラーの種類を格納するエラーフラグ群と、前記エラーフラグ群に格納されたフラグ値の優先度に基づき前記演算回路に前記例外発生通知信号を出力するか否かを判定する優先度判定部と、を有する請求項１乃至６のいずれか１項に記載のデータ処理装置。
【請求項８】
前記少なくとも１つの周辺装置のうちいずれかは、所定の機能を有する内蔵周辺装置と、前記内部バスを介した前記内蔵周辺装置へのアクセスを制限することで前記内蔵周辺装置を保護する内蔵周辺装置保護回路とを含み、
前記内蔵周辺装置保護回路は、前記内蔵周辺装置に対するアクセスにおいて発生したエラーの情報を格納する例外保存部と、前記例外保存部に格納された前記エラーの情報の重要度に応じて前記例外通知制御回路に前記例外発生信号を通知するか否かを制御する例外設定部とを有する請求項１乃至７のいずれか１項に記載のデータ処理装置。
【請求項９】
前記例外処理プログラムが格納された周辺装置は、前記例外処理プログラムを格納するプログラム格納部を有する請求項１乃至８のいずれか１項に記載のデータ処理装置。
【請求項１０】
内部バスを介して接続される少なくとも１つの周辺装置にアクセスを行う演算回路と、
前記演算回路と前記内部バスとの間に配置され、前記演算回路から前記内部バスへのアクセスの有効状態と無効状態とを切り替える内部バス接続回路と、
前記演算回路の動作に応じて前記内部バス接続回路を制御するバス無効化制御回路と、
前記少なくとも１つの周辺装置のうちいずれかにおいて発生したアクセス違反に基づき前記演算回路に例外発生通知信号を出力する例外通知制御回路と、を有するデータ処理装置におけるバスアクセス制御方法であって、
前記例外発生通知信号に応じて前記演算回路から前記内部バスへのアクセスを無効化し、
前記演算回路における前記例外発生通知信号に基づいて前記演算回路から前記内部バスへのアクセスの無効化を解除し、
前記演算回路は、前記内部バスへのアクセスの無効化解除後に、前記周辺装置のうち例外処理のための例外処理プログラムが格納された周辺装置から前記例外処理プログラムを取得して前記例外処理プログラムに基づく例外処理を行う、
データ処理装置におけるバスアクセス制御方法。
【請求項１１】
前記演算回路は、前記例外発生通知信号に基づき前記バス無効化制御回路に前記演算回路から前記内部バスへのアクセスの無効化を指示するセット信号を出力し、前記演算回路における前記例外発生通知信号に基づいた例外処理の開始に応じて前記バス無効化制御回路に前記演算回路から前記内部バスへのアクセスの無効化解除を指示するクリア信号を出力する割り込み受付制御部を有する請求項１０に記載のデータ処理装置におけるバスアクセス制御方法。
【請求項１２】
前記割り込み受付制御部は、前記少なくとも１つの周辺装置のうちいずれかから出力される前記例外処理よりも優先度の高い緊急割り込み処理の発生を通知する緊急割り込み通知信号に応じて前記演算回路内の命令実行部に緊急割り込み要求信号を出力し、
前記緊急割り込み要求信号を出力する時点において前記バス無効化制御回路が前記内部バス接続回路にバスアクセスの無効化をしている場合は前記クリア信号を出力し、前記命令実行部において前記緊急割り込み処理が完了したことに応じて前記セット信号を出力する請求項１１に記載のデータ処理装置におけるバスアクセス制御方法。
【請求項１３】
前記演算回路は、前記演算回路において実行中のタスクの動作ステータスを格納する動作ステータスレジスタと、をさらに有し、
前記内部バス接続回路に前記演算回路から前記内部バスへのアクセスの無効化を指示している期間において、
前記バス無効化制御回路は、前記動作ステータスが前記例外処理よりも優先度の高い緊急割り込み処理を示す場合、前記内部バス接続回路に前記演算回路から前記内部バスへのアクセスの無効化の解除を指示し、
前記演算回路における前記緊急割り込み処理の完了に応じて、前記内部バス接続回路に前記演算回路から前記内部バスへのアクセスの無効化を指示する請求項１１に記載のデータ処理装置におけるバスアクセス制御方法。
【請求項１４】
前記演算回路は、前記例外発生通知信号に基づきセット信号を出力する割り込み受付制御部と、前記演算回路において実行中のタスクの動作ステータスを格納する動作ステータスレジスタと、を有し、
前記バス無効化制御回路は、前記セット信号に基づき前記内部バス接続回路に前記演算回路から前記内部バスへのアクセスの無効化を指示し、前記動作ステータスが前記例外処理の実行を示すものである場合に前記内部バス接続回路に前記演算回路から前記内部バスへのアクセスの無効化の解除を指示する請求項１０に記載のデータ処理装置におけるバスアクセス制御方法。
【請求項１５】
前記内部バス接続回路は、前記演算回路から前記内部バスへのアクセスを無効化する期間の間、前記演算回路の前記内部バスに対するアクセスに応じて疑似的に前記演算回路に応答を返信するダミー応答回路を有する請求項１０乃至１４のいずれか１項に記載のデータ処理装置におけるバスアクセス制御方法。
【請求項１６】
前記例外通知制御回路は、前記少なくとも１つの周辺装置のうちいずれかにおいて発生したエラーの種類を格納するエラーフラグ群と、前記エラーフラグ群に格納されたフラグ値の優先度に基づき前記演算回路に前記例外発生通知信号を出力するか否かを判定する優先度判定部と、を有する請求項１０乃至１５のいずれか１項に記載のデータ処理装置におけるバスアクセス制御方法。
【請求項１７】
前記少なくとも１つの周辺装置のうちいずれかは、所定の機能を有する内蔵周辺装置と、前記内部バスを介した前記内蔵周辺装置へのアクセスを制限することで前記内蔵周辺装置を保護する内蔵周辺装置保護回路とを含み、
前記内蔵周辺装置保護回路は、前記内蔵周辺装置に対するアクセスにおいて発生したエラーの情報を格納する例外保存部と、前記例外保存部に格納された前記エラーの情報の重要度に応じて前記例外通知制御回路に例外発生信号を通知するか否かを制御する例外設定部とを有する請求項１０乃至１６のいずれか１項に記載のデータ処理装置におけるバスアクセス制御方法。
【請求項１８】
前記例外処理プログラムが格納された周辺装置は、前記演算回路において行われる処理に用いられる前記例外処理プログラムを格納するプログラム格納部を有する請求項１０乃至１７のいずれか１項に記載のデータ処理装置におけるバスアクセス制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明にかかるデータ処理装置及びデータ処理装置におけるバスアクセス制御方法は、特にプログラムを実行する演算回路と周辺装置とを接続する内部バスと、周辺装置で例外が発生した場合に演算回路から内部バスへのアクセスを無効化する内部バス接続回路を有するデータ処理装置及びデータ処理装置におけるバスアクセス制御方法に関する。
【背景技術】
【０００２】
マイコン等のデータ処理装置では、複数のタスクを時分割で切り替えながら実行するマルチタスク処理が行われる。また、データ処理装置では、プログラムに基づきタスクを実行する演算回路と、演算回路とバスを介して接続され、演算回路からの命令に基づき各種処理を行う周辺装置とを有する。この周辺装置は、例えばメモリやコプロセッサ等であってデータ処理装置に内蔵されるものと、データ処理装置に対して外付けで設けられる外部周辺装置とがある。このようなデータ処理装置では、実行するタスクあるいは周辺装置において発生したエラー（以下、例外と称す）が発生した場合、バスを無効化してそれ以降に実行されるタスクが不用意に周辺装置にアクセスすることを防止し、例外に起因する不具合の拡大を防止する処理が行われることがある。
【０００３】
このようにバスを無効化する手段を有するデータ処理装置の一例が特許文献１に開示されている。図１６に、特許文献１に記載のデータ処理装置１００のブロック図を示す。図１６に示すように、データ処理装置１００は、コア１１０、メモリ１２０、バス１３０、周辺デバイス１４０、リセットコントローラ１５０を有する。また、コア１１０は、プロセッサ１１１、キャッシュ１１２、バスインタフェースユニット１１３を有している。
【０００４】
そして、データ処理装置１００では、プロセッサ１１１において行われる処理においてメモリ領域としてキャッシュ１１２を利用する。キャッシュ１１２ではデータのパリティチェックを行っており、格納されるデータに破損が生じた場合、キャッシュ１１２は破損信号１５１を出力する。この破損信号１５１は、バスインタフェースユニット１１３とリセットコントローラ１５０に伝えられる。破損信号１５１が入力されたバスインタフェースユニット１１３は、コア１１０からバス１３０へのアクセスを無効化して、エラーがメモリ１２０及び周辺デバイス１４０に伝搬されるのを防止する。また、リセットコントローラ１５０は、コア１１０をリセットする。このような動作により、データ処理装置１００では、エラーがメモリ１２０及び周辺デバイス１４０に伝搬されるのを防止する。
【０００５】
また、例外の発生に応じて、演算回路と周辺装置との接続を無効化する方法は、特許文献２にも開示されている。さらに、周辺装置において例外が発生した場合に、演算回路の処理を待つことなく、演算回路による周辺装置の制御を停止する方法が特許文献３に開示されている。
【特許文献１】特開２００５−１０８２２２号公報
【特許文献２】特開２００３−５０７１２号公報
【特許文献３】特開平９−９１２１０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、データ処理装置において例外が発生した場合、その例外状態からの復帰に際し、演算回路が例外処理プログラムに基づき例外処理を行うことがある。この例外処理では、データ処理装置のリセット処理に限らず実行済みタスクの廃棄等の処理を行うこともある。また、例外処理プログラムは、プログラム容量が大きいため、演算回路とバスで接続されたメモリ領域に格納される。
【０００７】
このような場合、特許文献１に記載のデータ処理装置１００では、例外の発生により演算回路からバスへのアクセスが無効化されるため、演算回路が例外処理プログラムをメモリから読み出すことができない。データ処理装置１００では、リセット動作によって例外発生状態からシステムを復帰させる。しかし、リセット動作は復帰にかかる時間が長くシステムの処理能力を低下させる問題がある。これに対して、例外処理プログラムによりデータ処理装置を例外発生状態から復帰させた場合、リセット動作よりも柔軟なシステムの復帰を行うことができ、システムの復帰にかかる時間を短縮することができる。つまり、データ処理装置１００では、バスの無効化により、異常状態の伝搬を防止できても、例外処理プログラムによる柔軟性の高い例外状態からの復帰処理を行うことができないため、システムの処理能力が低下する問題がある。
【課題を解決するための手段】
【０００８】
本発明の一態様は、内部バスを介して接続される周辺装置にアクセスを行う演算回路と、前記演算回路と前記内部バスとの間に配置され、前記演算回路から前記内部バスへのアクセスの有効状態と無効状態とを切り替える内部バス接続回路と、前記周辺装置において発生したエラーに基づき前記演算回路に例外発生通知信号を出力する例外通知制御回路と、前記例外発生通知信号の通知に応じて前記内部バス接続回路に前記演算回路から前記内部バスへのアクセスの無効化を指示し、前記演算回路における前記例外発生通知信号に基づいた例外処理の開始に応じて前記内部バス接続回路に前記演算回路から前記内部バスへのアクセスの無効化解除を指示するバス無効化制御回路と、を有するデータ処理装置である。
【０００９】
また、本発明の別の態様は、内部バスを介して接続される周辺装置にアクセスを行う演算回路と、前記演算回路と前記内部バスとの間に配置され、前記演算回路から前記内部バスへのアクセスの有効状態と無効状態とを切り替える内部バス接続回路と、前記演算回路の動作に応じて前記内部バス接続回路を制御するバス無効化制御回路と、前記周辺装置において発生したアクセス違反に基づき前記演算回路に例外発生通知信号を出力する例外通知制御回路と、を有するデータ処理装置におけるバスアクセス制御方法であって、前記例外発生通知信号の通知に応じて前記演算回路から前記内部バスへのアクセスを無効化し、前記演算回路における前記例外発生通知信号に基づいた例外処理の開始に応じて前記演算回路から前記内部バスへのアクセスの無効化を解除するデータ処理装置におけるバスアクセス制御方法である。
【００１０】
本発明にかかるデータ処理装置及びデータ処理装置におけるバスアクセス制御方法によれば、周辺装置における例外発生に基づき演算回路と内部バスとの接続を無効化し、演算回路における例外処理の開始に応じて演算回路と内部バスとの接続の無効化を解除する。これにより、演算回路は、例外処理において内部バスを介して接続されるメモリ領域から例外プログラムを読み出すことが可能になる。また、演算回路は、例外処理時に周辺装置にアクセスすることが可能になる。つまり、本発明にかかるデータ処理装置及びデータ処理装置におけるバスアクセス制御方法によれば、例外発生時には内部バスを無効化して異常状態の伝搬を防止し、例外処理時に内部バスを利用した柔軟性の高い例外状態からの復帰処理を行うことができる。
【発明の効果】
【００１１】
本発明にかかるデータ処理装置及びデータ処理装置におけるバスアクセス制御方法によれば、例外発生時におけるシステムの信頼性の向上と、例外処理時における柔軟性の高い復帰処理とを実現することができる。
【発明を実施するための最良の形態】
【００１２】
実施の形態１
以下、図面を参照して本発明の実施の形態について説明する。本実施の形態にかかるデータ処理装置１のブロック図を図１に示す。図１に示すようにデータ処理装置１は、演算回路（例えばＣＰＵ：Central Processing Unit）１１、内部バス接続回路１２、内蔵ＲＯＭ（Read Only Memory）１３、内蔵ＲＡＭ（Random Access Memory）１４、外部インタフェース１５、周辺装置保護回路１６、内蔵周辺装置１７、バス無効化制御回路１８、例外通知制御回路１９を有する。また、データ処理装置１には、外部バスインタフェース１５を介して外部周辺装置３０が接続されるものとする。なお、以下の説明では、データ処理装置１における周辺装置は、内蔵ＲＯＭ１３、内蔵ＲＡＭ１４、外部インタフェース１５、周辺装置保護回路１６及び内蔵周辺装置１７を含むものとする。
【００１３】
ＣＰＵ１１は、プログラムに基づいて各種タスクを実行し、データ処理装置１において主な情報処理を行う。また、ＣＰＵ１１は、周辺装置と内部バスを介して接続される。ＣＰＵ１１は、命令実行部２１、割り込み受付制御部２２を有する。
【００１４】
命令実行部２１は、内部バス接続回路１２及び内部バスを介して内蔵ＲＯＭ１３、内蔵ＲＡＭ１４あるいは外部インタフェース１５を介して接続される外部周辺装置３０からプログラムを読み出し（この読み出し動作をフェッチ動作と称す）て、プログラムに基づきタスクを実行する。また、命令実行部２１は、実行したタスクの内容に基づき内部バス接続回路１２及び内部バスを介して周辺装置へのアクセスを行う。なお、本実施の形態では、命令実行部２１は、実行する命令を予めフェッチするプリフェッチ動作を行うものとする。なお、１つのタスクは、通常複数の命令により構成される。また、命令実行部２１において実行される例外処理は、割り込み受付制御部２２が出力する割り込み要求信号ＥＲＲＱに基づき実行されるものとする。そして、命令実行部２１は、例外処理の開始にあわせて例外処理開始信号ＥＲＲＳを出力する。
【００１５】
割り込み受付制御部２２は、例外通知制御回路１９から出力される例外発生通知信号ＥＲＲＮに基づきバス無効化制御回路１８にセット信号ＳＥ１を出力するとともに、命令実行部２１に割り込み要求信号ＥＲＲＱを出力する。また、割り込み受付制御部２２は、命令実行部２１が割り込み要求信号ＥＲＲＱに基づき例外処理を開始したことを通知する例外処理開始信号ＥＲＲＳを受信するとバス無効化制御回路１８にクリア信号ＣＬ１を出力する。
【００１６】
内部バス接続回路１２は、ＣＰＵ１１と内部バスとの間に設けられる。そして、内部バス接続回路１２は、ＣＰＵ１１から内部バスへのアクセスの有効状態と無効状態を切り替える。この切り替え動作はバス無効化制御回路１８から出力される有効化信号ＥＮ及び無効化信号ＤＥＮに基づき行われる。より具体的には、有効化信号ＥＮが入力されている間は、内部バス接続回路１２は、ＣＰＵ１１から内部バスへのアクセスを許可し、ＣＰＵ１１は内部バスへのアクセスを無制限に行うことができる。一方、無効化信号ＤＥＮが入力されている間は、内部バス接続回路１２は、ＣＰＵ１１から内部バスへのアクセスを遮断し、ＣＰＵ１１は内部バスへのアクセスを行うことができない。
【００１７】
内蔵ＲＯＭ１３は、記憶領域の１つであって、ＣＰＵ１１において用いられるプログラムを格納する。本実施の形態では、内蔵ＲＯＭ１３は、例外ハンドラ領域を有し、ＣＰＵ１１は例外処理の開始時にこの例外ハンドラ領域を参照するものとする。例外ハンドラ領域には、例外処理のメインルーチンに関するプログラムがある分岐先を示す情報が格納されているものとする。内蔵ＲＡＭ１４は、記憶領域の１つであって、ＣＰＵ１１において用いられるプログラム及びＣＰＵ１１において実行される演算の中間情報を格納する。
【００１８】
外部インタフェース１５は、データ処理装置１の外部に設けられる外部周辺装置３０とのインタフェース回路である。外部インタフェース１５は、例えば、データ処理装置１が外部周辺装置３０にアクセスを行う場合におけるデータフォーマットの変換を行う機能を有する場合がある。周辺装置保護回路１６は、内蔵周辺装置１７と内部バスとの間に設けられる。周辺装置保護回路１６は、ＣＰＵ１１で実行されるタスク毎に内蔵周辺装置１７に対する保護範囲が設定される。そして、周辺装置保護回路１６は、ＣＰＵ１１から内蔵周辺装置１７にアクセスがあった場合に、そのアクセスが保護範囲内にあるか否かを判断し、アクセスが保護範囲に該当する場合はそのアクセスを遮断する。内蔵周辺装置１６は、例えばコプロセッサ、タイマ、リセットコントローラ等のＣＰＵ１１によって用いられる周辺機能を備える。これら周辺機能は、個別のブロックとして実装されていても、１つの機能ブロックとして実装されていても良い。
【００１９】
バス無効化制御回路１８は、例外発生通知信号ＥＲＲＮの通知に応じて内部バス接続回路１２にＣＰＵ１１から内部バスへのアクセスの無効化を指示し、ＣＰＵ１１における例外発生通知信号ＥＲＲＮに基づいた例外処理の開始に応じて内部バス接続回路１２にＣＰＵ１１から内部バスへのアクセスの無効化解除を指示する。より具体的には、バス無効化制御回路１８は、例外発生通知信号ＥＲＲＮに基づきＣＰＵ１１から出力されるセット信号ＳＥ１に基づき内部バス接続回路１２に有効化信号ＥＮを出力し、内部バス接続回路１２にＣＰＵ１１から内部バスへのアクセスの無効化を指示する。また、バス無効化制御回路１８は、ＣＰＵ１１における例外処理の開始に応じてＣＰＵ１１から出力されるクリア信号ＣＬ１に基づき内部バス接続回路１２に無効化信号ＤＥＮを出力し、内部バス接続回路１２にＣＰＵ１１から内部バスへのアクセスの無効化の解除を指示する。
【００２０】
例外通知制御回路１９は、周辺装置のそれぞれから例外発生信号ＥＲＲを受信し、ＣＰＵ１１に例外発生通知信号ＥＲＲＮを出力する。この例外発生通知信号ＥＲＲＮには、例外発生信号ＥＲＲを出力した周辺装置の情報と、その周辺装置で発生した例外の種類を示す例外コードが含まれるものとする。
【００２１】
本実施の形態にかかるデータ処理装置１では、周辺装置において例外が発生した場合に、例外処理プログラムを実行して、システムを例外状態から復帰させる。そこで、データ処理装置１のＣＰＵ１１において行われる復帰処理について説明する。ＣＰＵ１１で行われる復帰処理のフローチャートを図２に示す。以下、図２を参照して復帰処理について説明する。なお、以下で説明する復帰処理は、例外処理の一例であって、復帰処理は例外処理プログラムの設計方法又はシステムのアーキテクチャに応じて適宜変更することが可能である。
【００２２】
データ処理装置１では、周辺装置において例外が発生すると、例外通知制御回路１９によって例外発生通知信号ＥＲＲＮが出力され割り込み受付制御部２２が割り込み要求信号ＥＲＲＱを出力する。このとき、命令実行部２１において例外処理を受付可能が否かを判断する（ステップＳ１）。命令実行部２１では、投機的に実行された命令がある場合、例外処理の受付をすでに投機的に実行された命令の処理が完了した後に行う。そのため、投機的に実行された命令がある場合、ステップＳ１のＮｏの枝に進み、例外処理は受付されるまで待機させられる。一方、投機的に実行された命令がない場合、ステップＳ１のＹｅｓの枝に進み例外処理が開始される。
【００２３】
そして、ステップＳ２において、それまで実行していたタスクの情報を退避させる。具体的には、退避用ＰＣ（プログラムカウンタ）レジスタにそれまで実行されていたタスクのプログラムのプログラムカウンタを戻り先ＰＣとして保存する。また、実行されていたタスクの実行状態を示すプログラムステータスワードＰＳＷを退避用ＰＳＷレジスタに格納する。さらに、割り込み要求信号ＥＲＲＱとともに通知される例外コードを例外コードレジスタに格納する。このとき、命令実行部２１は、処理開始信号ＥＲＲＳを出力する。なお、データ処理装置１では、例外発生通知信号ＥＲＲＮが例外通知制御回路１９によって出力されてから処理開始信号ＥＲＲＳが出力されるまでの間、内部バス接続回路１２によってＣＰＵ１１から内部バスへのアクセスは無効化される。つまり、ステップＳ１〜ステップＳ２が完了するまでの間、ＣＰＵ１１から内部バスへのアクセスは無効化される。そして、ステップＳ２が完了すると、クリア信号ＣＬ１が割り込み受付制御部２２からバス無効化制御回路１８に出力されるため、内部バスへのアクセスの無効化は解除される。
【００２４】
次に、命令実行部２１は、無効化が解除された内部バス接続回路１２と内部バスを介して内蔵ＲＯＭ１３の例外ハンドラ領域にアクセスを行い、プログラムカウンタＰＣに例外ハンドラアドレスをセットする（ステップＳ３）。そして、例外ハンドラアドレスに格納されたプログラムに基づき例外処理のメインルーチンのプログラムを読み出す。これによって、命令実行部２１は、実行するタスクを例外処理のメインルーチンに分岐させる（ステップＳ４）。例外処理のメインルーチンでは、まず例外コードに基づき例外要因の判定を行う（ステップＳ５）。本実施の形態では、例外の重要度に応じて処理Ａ〜処理Ｃの３つの処理を行うものとする。
【００２５】
処理Ａは、軽微な例外が発生した場合の処理であって、タスクの廃棄等の処理を行うことなく、それまで実行されていたタスクを継続して実行する。例えば、コプロセッサにおける演算において計算結果で丸めが発生してしまったが、その演算結果でその後の処理を続けても問題ない場合である。処理Ａでは、まず例外コードや例外が発生した周辺装置に保存されるエラー情報を参照し、その処理結果が問題ないことを確認し、タスクの再実行手続きを行う（ステップＳ６）。その後、命令実行部２１は、復帰命令を実行する（ステップＳ７）。そして、プログラムカウンタＰＣに、ステップＳ２で退避させたプログラムカウンタＰＣの値を書き戻す。また、プログラムステータスワードＰＳＷにもステップＳ２で退避させプログラムステータスワードＰＳＷの値を書き戻す（ステップＳ８）。その後、命令実行部２１は、プログラムカウンタＰＣとプログラムステータスワードＰＳＷの値に基づき元の実行タスクに処理をジャンプさせる（ステップＳ９）。
【００２６】
処理Ｂは、中程度の例外が発生した場合に行われる処理であって、リセットを行うことなくシステムを復旧させるものである。なお、処理Ｂでは、例外が重大なものであると判断された場合はシステムのリセットを行う。例えば、実行していたタスクでメモリへの結果の書き込みに失敗し、タスクに異常動作が認められた場合に処理Ｂが行われる。このような場合、処理Ｂでは、例えば、メモリの情報が書き換えられてなければ、それまで実行していたタスクに異常があるとしてタスクを廃棄し、メモリの情報が書き換えられておりその情報の訂正が困難な場合はシステムのリセットを行ことができる。処理Ｂでは、まず例外コードや例外が発生した周辺装置に保存されるエラー情報を参照する（ステップＳ１０）。続いて、周辺装置において発生した例外の重要度に基づき復帰処理が可能か否かを判断する（ステップＳ１１）。ステップＳ１１において、発生した例外が重度のものであり復帰処理が不可能と判断された場合（ステップＳ１１のＮｏ）、ステップＳ１７のシステムのリセット動作が行われる。一方、ステップＳ１１において、発生した例外の重要度がそれほど高くなく、復帰処理可能と判断された場合（ステップＳ１１のＹｅｓ）、それまで実行されていたタスクの廃棄と次のタスクを実行する手続きが行われる（ステップＳ１２）。ステップＳ１２は、例えばＯＳ（Operating System）によって行われる。続いて、命令実行部２１は、復帰命令を実行する（ステップＳ１３）。そして、プログラムカウンタＰＣに、次のタスクのプログラムカウンタＰＣの値を書き込む。また、プログラムステータスワードＰＳＷにも次のタスクのプログラムステータスワードＰＳＷの値を書き込む（ステップＳ１４）。その後、命令実行部２１は、プログラムカウンタＰＣとプログラムステータスワードＰＳＷの値に基づき新たなのタスクに処理をジャンプさせる（ステップＳ１５）。
【００２７】
処理Ｃは、重大な例外が発生した場合に行われる処理であって、システムのリセットを行う。例えば、実行されていたタスクにおいて、内蔵ＲＡＭの情報の誤書き込みが発生し、その誤りを訂正できない場合などに行われる。処理Ｃでは、まずエラー情報を保存する（ステップＳ１６）。その後、システムのリセット動作を行いデータ処理装置１を再起動する（ステップＳ１７）。
【００２８】
続いて、図３にデータ処理装置１の動作を示すタイミングチャートを示す。以下、図３を参照してデータ処理装置１における内部バスの無効化と無効化の解除の動作について説明する。図３に示す例では、最も権限レベルの低いユーザー権限タスクとしてユーザータスク１、２が実行され、ユーザー権限よりも高い権限を有する特権レベルのうち低レベル側のレベル１でＯＳに関するタスクが処理され、特権レベルのうち高レベル側のレベル２で例外処理が行われるものとする。また、ユーザータスクは、タスクの処理単位を命令で示した。また、図３において周辺のラベルで示されるアクセス対象装置は内蔵周辺装置１７であって、ＲＯＭのラベルは内蔵ＲＯＭ１３であって、ＲＡＭのラベルは内蔵ＲＡＭ１４である。なお、図３に示す例では命令の処理サイクルでタイミングを示しており、命令実行部２１は１つの処理サイクルで命令の実行と命令のプリフェッチの動作を行うものとする。また、図３に示す例は、図２に示す処理Ｂが発生した場合を示すものである。
【００２９】
図３に示すように、命令実行部２１においてユーザータスク１の命令１では内部周辺装置１７にアクセスを行い、命令１は正常に完了する。次に命令実行部２１は、命令２を実行する。命令２は、内蔵ＲＡＭ１４に対するアクセスを行うが、このアクセスは不正なものであるとして内蔵ＲＡＭ１４は例外発生信号ＥＲＲを出力する。図３の例では、内蔵ＲＡＭ１４は、このアクセスを受け付けずメモリの内容は書き換えられていないものとする。この例外発生信号ＥＲＲを受けた例外通知制御回路１９は例外発生通知信号ＥＲＲＮを出力する。そして、例外発生通知信号ＥＲＲＮを受信した割り込み受付制御部２２は割り込み要求信号ＥＲＲＱを命令実行部２１に出力する。また、割り込み受付制御部２２は例外発生通知信号ＥＲＲＮに基づきセット信号ＳＥ１をバス無効化制御回路１８に出力する。そして、セット信号ＳＥ１を受信したバス無効化制御回路１８は内部バス接続回路１２に無効化信号ＤＥＮを出力し、内部バス接続回路１２はＣＰＵ１１から内部バスへのアクセスを無効化する。
【００３０】
命令実行部２１は命令２の終了と同時に割り込み要求信号ＥＲＲＱを受信するが、すでに命令３、４が投機的に実行されているため、割り込み要求信号ＥＲＲＱに基づく例外処理は命令４が完了するまで待機させられる。また、命令実行部２１は命令４に続く命令の実行を割り込み要求信号ＥＲＲＱの受信に基づき停止する。命令３は内部周辺装置１７に対するアクセスであり、命令４は内蔵ＲＡＭ１４に対するアクセスである。しかし、命令３、４の実行時において、ＣＰＵ１１から内部バスへのアクセスが無効化されているため、このアクセスは内部バスに出力されることなく内部バス接続回路１２によって遮断される。
【００３１】
そして、命令４の処理が完了すると命令実行部２１は、例外処理を開始する。この例外処理の開始に応じて、命令実行部２１は、処理開始信号ＥＲＲＳを出力し、処理開始信号ＥＲＲＳを受けた割り込み受付制御部２２はクリア信号ＣＬ１を出力する。このクリア信号ＣＬ１を受信したバス無効化制御回路１８は有効化信号ＥＮを出力し、有効化信号ＥＮを受信した内部バス接続回路１２は、ＣＰＵ１１から内部バスへのアクセスの無効化を解除する。この動作によって内部バスは有効になり、命令実行部２１は内蔵ＲＯＭ１３にアクセスを行い図２のステップ３以降の動作を行う。図３に示す例では例外処理において命令実行部２１は内蔵ＲＯＭ１３及び内蔵ＲＡＭ１４にアクセスを行う。そして、命令実行部２１は、実行するタスクをＯＳに移行させユーザータスク１を廃棄して新たにユーザータスク２を実行するための準備を行う。その後ＯＳの処理が完了するとユーザータスク２となる命令５〜命令７が順次実行される。
【００３２】
上記説明より、データ処理装置１は、周辺装置における例外発生に応じてＣＰＵ１１から内部バスへのアクセスを無効化する。これにより、ＣＰＵ１１で投機的に実行されている命令による被害の拡大を防止することができる。つまり、データ処理装置１では、内部バスの無効化によって、例外が発生した命令に続いて投機的に実行される命令による内部バスへのアクセスが発生しても、被害を拡大させることがない。従って、データ処理装置１では、投機的な命令の実行を例外の発生を気にすることなく行うことができる。そのため、データ処理装置１は、処理性能を容易に高めるとともに、例外処理に対する信頼性を高めることができる。
【００３３】
さらに、データ処理装置１は、例外処理の開始に応じて、一度無効化したＣＰＵ１１から内部バスへのアクセスの無効化を解除する。これにより、内部バスを介してＣＰＵ１１と接続される記憶領域に格納される例外処理プログラムを読み出し、例外処理を実行することができる。従って、データ処理装置１では、ＣＰＵ１１とは異なる場所に例外処理プログラムを配置することができる。これにより、ＣＰＵ１１に内蔵できないほど容量が大きな例外処理プログラムによって例外処理を行うことができる。このような処理を行うことでデータ処理装置１では、リセット動作よりも柔軟性が高く複雑な例外処理を行うことが可能になる。また、例外処理プログラムにより、軽微な例外であればタスクの続行、あるいは、タスクの廃棄及び新たなタスクの実行するなど、リセット以外の復帰動作を行うことができる。リセット動作は、処理の時間が長くデータ処理装置の処理性能を低下させるが、リセット動作を行わない復帰方法では処理性能の低下はほとんど発生しない。
【００３４】
なお、データ処理装置１は、各種の変形を行うことができる。その一例としてデータ処理装置１の変形例となるデータ処理装置１ａのブロック図を図４に示す。図４に示すように、データ処理装置１ａは、ＣＰＵ１１内に動作ステータスレジスタ２３を有する。動作ステータスレジスタ２３は、命令実行部２１が実行中のタスクの動作権限の種類を示す値を格納する。そのため、命令実行部２１は、動作モード設定信号ＭＳ１を出力し、動作ステータスレジスタ２３に実行中のタスクの種類を示す値を書き込む。データ処理装置１ａでは、クリア信号ＣＬ２として、動作ステータスレジスタ２３に格納される値を利用する。なお、データ処理装置１は、割り込み受付制御部２２に替えて、セット信号ＳＥ１飲みを出力する割り込み受付制御部２２ａを有する。
【００３５】
データ処理装置１ａで用いられるバス無効化制御回路１８ａは、クリア信号ＣＬ２が例外処理のタスクの動作権限である特権モードを示す場合に、無効化信号ＤＥＮの出力を停止して、有効化信号ＥＮを出力する。
【００３６】
データ処理装置１ａは、クリア信号の出力方法の変形例を示すものである。つまり、バス無効化制御回路に対するクリア信号は、例外処理の開始に同期して出力される信号であれば良い。
【００３７】
実施の形態２
実施の形態２にかかるデータ処理装置２のブロック図を図５に示す。データ処理装置２は、処理優先度が最も高い緊急割り込み処理が発生した場合に対応するものである。データ処理装置２は、データ処理装置１に加えて緊急割り込み通知制御回路２０が追加される。また、データ処理装置２は、割り込み受付制御部２２に替えて割り込み受付制御部２４を有する。
【００３８】
緊急割り込み処理は、例えば、エアバッグ制御などであって、不定期に発生し、かつ、最も優先させて処理させなければならい処理である。実施の形態２で示す例では、緊急割り込み処理は、例えば、外部インタフェース回路１５又は周辺装置保護回路１６に接続される周辺装置から出力される緊急割り込み発生信号ＥＭに基づき行われる。なお、緊急割り込み発生信号ＥＭは、命令実行部２１において実行されている命令に基づき発生するものでも良い。
【００３９】
緊急割り込み通知制御回路２０は、外部インタフェース回路１５、周辺装置保護回路１６又は命令実行部２１から出力される緊急割り込み発生信号ＥＭを受信する。そして、緊急割り込み通知制御回路２０は、緊急割り込み発生信号ＥＭに基づき緊急割り込み処理の種類を示す緊急割り込みコードと共に緊急割り込み通知信号ＥＭＮを出力する。
【００４０】
割り込み受付制御部２４は、緊急割り込み通知信号ＥＭＮに基づき緊急割り込み要求信号ＥＭＲＱを出力する。また、例外発生通知信号ＥＲＲＮ及び緊急割り込み処理完了信号ＥＭＥ及び通知信号ＥＭＮに基づきセット信号ＳＥ３を出力し、例外処理開始信号ＥＲＲＳ及び緊急割り込み処理開始信号ＥＮＳに基づきクリア信号ＣＬ３を出力する。ここで、セット信号ＳＥ３及びクリア信号ＣＬ３は、実施の形態１におけるセット信号ＳＥ１及びクリア信号ＣＬ１に対応するものである。
【００４１】
割り込み受付制御部２４の動作についてさらに詳しく説明する。割り込み受付制御部２４は、クリア信号ＣＬ３を出力している期間（内部バス接続回路１２がＣＰＵ１１から内部バスへのアクセスを有効にしている期間）に緊急割り込み処理開始信号ＥＭＳが入力された場合、セット信号ＳＥ３及びクリア信号ＣＬ３の状態を維持する。また、この期間に割り込み処理完了信号ＥＭＥが入力された場合もセット信号ＳＥ３及びクリア信号ＣＬ３の状態を維持する。一方、割り込み受付制御部２４は、セット信号ＳＥ３を出力している期間（内部バス接続回路１２がＣＰＵ１１から内部バスへのアクセスを無効化している期間）に緊急割り込み処理開始信号ＥＭＳが入力された場合、セット信号ＳＥ３の出力を停止してクリア信号ＣＬ３を出力する。また、また、この期間に割り込み処理完了信号ＥＭＥが入力された場合、クリア信号ＣＬ３を停止してセット信号ＳＥ３を出力する。
【００４２】
ここで、データ処理装置２の動作の一例を示すタイミングチャートを図６に示す。図６に示す例は、例外が発生することなく緊急割り込み処理が発生するものである。なお、以下の説明では、緊急割り込み処理は、ＯＳ処理及び例外処理よりも権限レベルが高いレベル３の特権レベルで実行されるものとする。
【００４３】
図６に示す例では、まず、ユーザータスク１として命令１、２を実行し、例外なくタスクが終了する。その後、命令実行部２１は、処理をＯＳに移行させ、続くユーザータスク２を実行する。そして、ユーザータスク２の命令３、４が実行された時点で緊急割り込みが発生する。この緊急割り込みの発生に基づき割り込み通知制御回路２０は緊急割り込み通知信号ＥＭＮを出力し、割り込み受付制御部２４は緊急割り込み通知信号ＥＭＮに基づき緊急割り込み要求信号ＥＭＲＱを出力する。そして、命令実行部２１は、緊急割り込み要求信号ＥＭＲＱに基づき緊急割り込み処理を開始する。また、命令実行部２１は、緊急割り込み処理の開始時応じて緊急割り込み処理開始信号ＥＭＳを出力する。このとき、割り込み受付制御部２４では、クリア信号ＣＬ３が出力され、内部バス接続回路１２はＣＰＵ１１から内部バスへのアクセスを有効としている。そのため、割り込み受付制御部２４は緊急割り込み処理開始信号ＥＭＳが入力されてもセット信号ＳＥ３及びクリア信号ＣＬ３の状態を維持する。その後、命令実行部２１において緊急割り込み処理が完了すると、命令実行部２１は緊急割り込み処理完了信号ＥＭＥを出力する。また、命令実行部２１は、実行するタスクを緊急割り込み処理からユーザータスク２の命令５とする。
【００４４】
また、データ処理装置２の動作の別の例を示すタイミングチャートを図７に示す。図７に示す例は、例外の発生に起因して内部バスが無効化されている状態で緊急割り込み処理が発生するものである。
【００４５】
図７に示す例では、まず、ユーザータスク１として実行される命令１において例外が発生する。命令１は、内蔵周辺装置１７に対するアクセスを行うが、このアクセスは不正なものであるとして周辺装置保護回路１６により例外発生信号ＥＲＲが出力される。この例外発生信号ＥＲＲを受けた例外通知制御回路１９は例外発生通知信号ＥＲＲＮを出力する。そして、例外発生通知信号ＥＲＲＮを受信した割り込み受付制御部２４は割り込み要求信号ＥＲＲＱを命令実行部２１に出力する。また、割り込み受付制御部２４は例外発生通知信号ＥＲＲＮに基づきセット信号ＳＥ３をバス無効化制御回路１８に出力する。そして、セット信号ＳＥ３を受信したバス無効化制御回路１８は内部バス接続回路１２に無効化信号ＤＥＮを出力し、内部バス接続回路１２はＣＰＵ１１から内部バスへのアクセスを無効化する。
【００４６】
命令実行部２１は命令１の終了と同時に割り込み要求信号ＥＲＲＱを受信するが、すでに命令２〜４が投機的に実行されているため、割り込み要求信号ＥＲＲＱに基づく例外処理は命令４が完了するまで待機させられる。そして、図７に示す例では、命令３の実行後に緊急割り込みが発生する。この緊急割り込みの発生に基づき割り込み通知制御回路２０は緊急割り込み通知信号ＥＭＮを出力し、割り込み受付制御部２４は緊急割り込み通知信号ＥＭＮに基づき緊急割り込み要求信号ＥＭＲＱを出力する。そして、命令実行部２１は、緊急割り込み要求信号ＥＭＲＱに基づき緊急割り込み処理を開始する。また、命令実行部２１は、緊急割り込み処理の開始時応じて緊急割り込み処理開始信号ＥＭＳを出力する。このとき、割り込み受付制御部２４では、セット信号ＳＥ３が出力され、内部バス接続回路１２はＣＰＵ１１から内部バスへのアクセスを無効化している。そのため、割り込み受付制御部２４は緊急割り込み処理開始信号ＥＭＳの入力に応じてセット信号ＳＥ３を停止し、クリア信号ＣＬ３を出力する。これにより、バス無効化制御回路１８は、有効化信号ＥＮを出力し、内部バス接続回路１２はＣＰＵ１１から内部バスへのアクセスの無効化を解除する。
【００４７】
緊急割り込み処理の開始に応じて内部バスの無効化が解除されるため、命令実行部２１は、内部バスに無制限にアクセスを行いながら緊急割り込み処理実行する。その後、命令実行部２１において緊急割り込み処理が完了すると、命令実行部２１は緊急割り込み処理完了信号ＥＭＥを出力する。そして、割り込み受付制御部２４は、緊急割り込み処理完了信号ＥＭＥに基づきセット信号ＳＥ３を出力する。これにより、バス無効化制御回路１８は、無効化信号ＤＥＮを出力し、内部バス接続回路１２はＣＰＵ１１から内部バスへのアクセスを無効化する。その後、命令実行部２１は、実行するタスクを緊急割り込み処理からユーザータスク１の命令４に戻す。
【００４８】
続いて、命令４が命令実行部２１において実行されるが、このとき、ＣＰＵ１１から内部バスへのアクセスが無効化されているため、このアクセスは内部バスに出力されることなく内部バス接続回路１２によって遮断される。そして、命令４の処理が完了すると命令実行部２１は、例外処理を開始する。この例外処理以降の動作は、図３に示したものと実質的に同じになるため、ここでは説明を省略する。
【００４９】
以上の説明より、データ処理装置２では、内部バスが無効化されている状態において緊急割り込み処理が発生した場合、緊急割り込み処理が行われている期間においてのみ内部バスの無効化を解除する。データ処理装置２で行われる内部バスの無効化解除手段がない場合、緊急割り込み処理において内部バスを利用することができず、緊急割り込み処理を正しく行えない場合がある。しかしながら、実施の形態２にかかるデータ処理装置２では、命令実行部２１が内部バスに対して無制限にアクセスを行いながら緊急割り込み処理を実行することができる。また、このようにハードウェアによる内部バスの無効化解除手段を実装することで、緊急割り込み処理のプログラム作成時に内部バスの状態を考慮する必要がない。つまり、実施の形態２にかかるデータ処理装置２によれば、緊急割り込み処理のプログラム作成が容易になる効果もある。
【００５０】
なお、実施の形態２においても、実施の形態１のように動作ステータスレジスタを用いた変形例を考えることが可能である。実施の形態２にかかるデータ処理装置２に対する変形例を示すデータ処理装置２ａのブロック図を図８に示す。図８に示すように、データ処理装置２ａは、ＣＰＵ１１内に動作ステータスレジスタ２５を有する。動作ステータスレジスタ２５は、命令実行部２１が実行中のタスクの動作権限の種類を示す値を格納する。そのため、命令実行部２１は、動作モード設定信号ＭＳ２を出力し、動作ステータスレジスタ２５に実行中のタスクの種類を示す値を書き込む。データ処理装置２ａでは、クリア信号ＣＬ４として、動作ステータスレジスタ２５に格納される値を利用する。なお、データ処理装置１は、割り込み受付制御部２４に替えて、セット信号ＳＥ１のみを出力する割り込み受付制御部２４ａを有する。
【００５１】
データ処理装置２ａで用いられるバス無効化制御回路１８ｂは、クリア信号ＣＬ４が例外処理のタスク及び緊急割り込み処理の動作権限である特権モードを示す場合、無効化信号ＤＥＮの出力を停止して、有効化信号ＥＮを出力する。また、データ処理装置２ａでは、命令実行部２１において緊急割り込み処理が完了した場合に、命令実行部２１がセット信号ＳＥ４を内部バスを介してバス無効化制御回路１８ｂに通知する。そして、バス無効化制御回路１８ｂは、クリア信号ＣＬ４によって内部バスの無効化が解除された後にセット信号ＳＥ４が入力されると無効化信号ＤＥＮを出力する。
【００５２】
データ処理装置２ａは、セット信号及びクリア信号の出力方法の変形例を示すものである。つまり、バス無効化制御回路に対するセット信号及びクリア信号は、例外処理の開始に同期して出力され、かつ、緊急割り込み処理の実行中にのみ無効化を解除できる信号であれば良い。
【００５３】
実施の形態３
実施の形態３にかかるデータ処理装置３のブロック図を図９に示す。データ処理装置３は、実施の形態１にかかるデータ処理装置１の変形例を示すものである。データ処理装置３では、内部バス接続回路１２に替えて内部バス接続回路１２ａを有する。内部バス接続回路１２ａは内部バス接続回路１２の機能に加え、ダミー応答回路４０を有する。
【００５４】
ダミー応答回路４０は、内部バス接続回路１２ａがＣＰＵ１１から内部バスへのアクセスを無効化している期間に、ＣＰＵ１１が内部バスへのアクセスを行った場合に、疑似的にバスアクセス完了信号（以下、ダミー応答と称す）をＣＰＵ１１に返信する。ここで、ダミー応答回路４０の動作を説明するためにデータ処理装置３の動作を示すタイミングチャートを図１０に示す。図１０に示す例は、図３で示したデータ処理装置１のタイミングチャートにダミー応答回路４０の動作を加えたものである。
【００５５】
図１０に示すように、ダミー応答は、内部バスが無効化されている期間に、ＣＰＵ１１からアクセスがあった場合に発生する。図１０に示す例では、内部バスが無効化されている期間に命令３、４が内部バスに対してアクセスを行う。そして、この命令３、４のアクセスに応答するようにダミー応答が返信される。
【００５６】
ＣＰＵ１１において実行されるタスクの中には、バスアクセスの完了を確認しなければ終了しないタスクがある。このようなタスクがある場合において、単に内部バスを無効化すると、バスアクセスが完了しないため、そのタスクがいつまでも完了しない。このような場合、待機させられている例外処理がいつまでも行われない場合がある。しかし、データ処理装置３のように、ダミー応答を行うことで、バスアクセスの完了を確認しなければ終了しないタスクがある場合であっても、内部バスを無効化してもその後にダミー応答を返信することでこのようなタスクを完了させることができる。
【００５７】
実施の形態４
実施の形態４にかかるデータ処理装置４のブロック図を図１１に示す。データ処理装置４は、実施の形態１にかかるデータ処理装置１の変形例を示すものである。データ処理装置４では、例外通知制御回路１９に替えて例外通知制御回路１９ａを有する。例外通知制御回路１９ａはエラーフラグ群を有し、エラーフラグ群に周辺装置で発生した例外の種類を格納する。また、例外通知制御回路１９ａはエラーフラグ群に格納された例外の種類に応じて例外発生通知信号ＥＲＲＮ及び例外コード信号ＥＣを出力するか否かを制御する。
【００５８】
ここで、図１２に例外通知制御回路１９ａのブロック図を示す。図１２に示すように、例外通知制御回路１９ａは、エラーフラグ群５１及び例外判定部５２を有する。エラーフラグ群５１は、複数のエラーフラグ（図１２の例ではエラーフラグ５１ａ〜５１ｄ）を有する。エラーフラグ５１ａ〜５１ｄは、例外発生信号ＥＲＲを出力する周辺装置のそれぞれに対応して設けられる。また、エラーフラグ５１ａ〜５１ｄは、例外の種類を個別に格納するレジスタを複数有しているものとする。
【００５９】
例外判定部５２は、通知設定部５３ａ〜５３ｄ及び優先度判定部５４を有する。通知設定部５３ａ〜５３ｄは、エラーフラグ５１ａ〜５１ｄに対応して設けられている。そして、通知設定部５３ａ〜５３ｄは、エラーフラグに格納される例外の種類のうち例外として通知を行う例外の種類についての設定を行う。この設定に基づき通知設定部５３ａ〜５３ｄは、発生した例外のうち通知設定がされた例外のみを後段の優先度判定部５４に出力する。優先度判定部５４は、通知された例外のうちより高い優先度の例外に関して例外発生通知信号ＥＲＲＮを通知し、さらに、これに合わせて通知する例外に関連した例外コード信号ＥＣを出力する。
【００６０】
続いて、例外通知制御回路１９ａを用いた場合のデータ処理装置４の動作について説明する。図１３に、データ処理装置４の動作を示すタイミングチャートを示す。図１３に示す例は、図３に示したデータ処理装置１の動作に対して、例外処理通知制御回路１９ａに関する動作を適用したものである。図１３に示すように、例外処理通知制御回路１９ａを用いることで、命令実行部２１は、例外処理においてエラーフラグを参照した例外処理を行う。また、例外処理が完了する時点で参照したエラーフラグの情報をクリアする。
【００６１】
また、例外通知制御回路１９ａを用いた場合のデータ処理装置４の動作の別の例について説明する。図１４に、データ処理装置４の動作の別の例を示すタイミングチャートを示す。図１４に示す例は、図１３に示したデータ処理装置４の例外処理の途中でさらに優先度の高い例外処理が発生するものである。図１４に示すように、高い優先度の例外処理が発生した場合、データ処理装置はセット信号ＳＥ１により内部バスを無効化し、逓優先度の例外処理における内部バスへのアクセスを防止する。そして、高優先度例外処理の開始に応じてクリア信号ＣＬ１を用いて内部バスの無効化を解除する。これにより、高優先度例外処理は、内部バスのアクセス制限を受けることなく実行される。また、この高優先度例外処理においてもエラーフラグを参照することが可能である。高優先度例外処理では、データ処理装置４の復旧はリセット動作により行われる。
【００６２】
このように、エラーフラグの情報を参照して例外処理を行うことで、発生した例外の種類に応じたより的確な例外処理を行うことが可能になる。また、通知設定部５３ａ〜５３ｄによって軽微な例外に関しては例外発生通知信号ＥＲＲＮを出力しない構成とした場合、重大な例外に対する例外処理において軽微な例外に関する情報を参照することもできる。さらに、軽微な例外に関しては通知を行わないことで、例外処理の頻度を少なくしてデータ処理装置４の処理性能を向上させることができる。
【００６３】
実施の形態５
実施の形態５にかかるデータ処理装置５のブロック図を図１５に示す。データ処理装置５は、実施の形態１にかかるデータ処理装置１の変形例を示すものである。データ処理装置５では、周辺装置保護回路１６に替えて周辺装置保護回路１６ａを有する。周辺装置保護回路１６ａは、周辺装置保護回路１６に加えて例外保存部６１及び例外設定部６２を有する。例外保存部６１は、周辺装置保護回路１６ａにおいて発生した例外を保存する。例外設定部６２は、例外保存部６１に所定レベル以上の例外が発生した場合にのみ例外発生信号ＥＲＲを出力する。例えば、例外設定部６２は、軽微な例外については例外発生信号ＥＲＲを出力しない設定を行うことができる。
【００６４】
このように、周辺装置保護回路１６ａにおいて発生した例外を保存し、所定レベル以上の例外についてのみ通知する構成とすることで、データ処理装置１において発生する例外処理の頻度を少なくすることができる。また、発生した例外を保存することで、例外処理等の後の処理で保存した例外を参照した詳細な復帰処理を行うことが可能である。また、例外を保存し、後でこの例外を参照することで、ユーザータスクのデバッグ効率を向上させることができる。
【００６５】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、上記説明において例外発生信号ＥＲＲや緊急割り込み発生信号ＥＭが出力される状況は、一例を示すものであり、これら信号はデータ処理装置の構成に応じて適宜出力される状況は異なる。
【図面の簡単な説明】
【００６６】
【図１】実施の形態１にかかるデータ処理装置のブロック図である。
【図２】実施の形態１にかかるデータ処理装置の動作を示すフローチャートである。
【図３】実施の形態１にかかるデータ処理装置の動作を示すタイミングチャートである。
【図４】実施の形態１にかかるデータ処理装置の別の例を示すブロック図である。
【図５】実施の形態２にかかるデータ処理装置のブロック図である。
【図６】実施の形態２にかかるデータ処理装置の動作を示すタイミングチャートである。
【図７】実施の形態２にかかるデータ処理装置の動作を示すタイミングチャートである。
【図８】実施の形態２にかかるデータ処理装置の別の例を示すブロック図である。
【図９】実施の形態３にかかるデータ処理装置のブロック図である。
【図１０】実施の形態３にかかるデータ処理装置の動作を示すタイミングチャートである。
【図１１】実施の形態４にかかるデータ処理装置のブロック図である。
【図１２】実施の形態４にかかる例外通知制御回路を示すブロック図である。
【図１３】実施の形態４にかかるデータ処理装置の動作を示すタイミングチャートである。
【図１４】実施の形態４にかかるデータ処理装置の動作を示すタイミングチャートである。
【図１５】実施の形態５にかかるデータ処理装置のブロック図である。
【図１６】従来のデータ処理装置のブロック図である。
【符号の説明】
【００６７】
１〜５  データ処理装置
１１  ＣＰＵ
１２、１２ａ  内部バス接続回路
１３  内蔵ＲＯＭ
１４  内蔵ＲＡＭ
１５  外部インタフェース
１６、１６ａ  周辺装置保護回路
１７  内蔵周辺装置
１８、１８ａ、１８ｂ  バス無効化制御回路
１９、１９ａ  例外通知制御回路
２０  緊急割り込み制御回路
２１  命令実行部
２２、２２ａ、２４、２４ａ  割り込み受付制御回部
２３、２５  動作ステータスレジスタ
３０  外部周辺装置
４０  ダミー応答回路
５１  エラーフラグ群
５１ａ〜５１ｄ  エラーフラグ
５２  例外判定部
５３ａ〜５３ｄ  通知設定部
５４  優先度判定部
ＥＲＲ  例外発生信号
ＥＲＲＮ  例外発生通知信号
ＥＲＲＱ  割り込み要求信号
ＥＲＲＳ  例外処理開始信号
ＥＭ  緊急割り込み発生信号
ＥＭＮ  緊急割り込み通知信号
ＥＭＲＱ  緊急割り込み要求信号
ＥＭＳ  緊急割り込み処理開始信号
ＥＭＥ  緊急割り込み処理完了信号
ＥＣ  例外コード信号
ＥＮ  有効化信号
ＤＥＮ  無効化信号
ＳＥ１、ＳＥ３、ＳＥ４  セット信号
ＣＬ１〜ＣＬ４  クリア信号
【図１】
0005215655.tif 000002
【図２】
0005215655.tif 000003
【図３】
0005215655.tif 000004
【図４】
0005215655.tif 000005
【図５】
0005215655.tif 000006
【図６】
0005215655.tif 000007
【図７】
0005215655.tif 000008
【図８】
0005215655.tif 000009
【図９】
0005215655.tif 000010
【図１０】
0005215655.tif 000011
【図１１】
0005215655.tif 000012
【図１２】
0005215655.tif 000013
【図１３】
0005215655.tif 000014
【図１４】
0005215655.tif 000015
【図１５】
0005215655.tif 000016
【図１６】
0005215655.tif 000017