(57)【要約】【課題】  将来削除される予定の機能や今回新たに追加又は変更された機能を利用したか否かを識別可能なデータプロセッサを提供する。【解決手段】  第１の制御レジスタ（２４）はデータプロセッサで実行可能な命令セットのうち一部の命令の実行を不可能にすることを選択的に指示する第１の情報(ＳＩＦＩ)の保持に利用される。命令デコーダ（２２）は、前記第１の情報が第１の値のとき前記一部の命令に対して実行可能にデコードし、第２の値のとき前記一部の命令に対して他の例外要因と区別可能な例外要因コード（ＥＣＣＤＩ）を生成可能にデコードすると共に命令実行手順を所定の例外処理プログラムの実行に遷移させる。次期機種への対応を考慮するときは前記第１の情報に第２の値をセットしてソフトウェアを実行すれば将来非サポートとされる命令の使用、或いは今回追加又は変更された命令の使用を例外発生にて検知することができる。【選択図】        図２
2006221606.tif 000002
【特許請求の範囲】
【請求項１】
命令の実行によって複数の機能をサポートするデータプロセッサであって、制御レジスタとデコーダを有し、
前記制御レジスタは、データプロセッサがサポートする機能のうち一部の機能を使用不可能にすることを選択的に指示する指示情報の保持に利用され、
前記デコーダは、前記制御レジスタによって使用不可能とされた一部の機能を利用しようとする操作を検出して、その検出結果を保持させる、データプロセッサ。
【請求項２】
命令実行制御部及び例外制御部を有するデータプロセッサであって、
前記例外制御部は第１の制御レジスタを有し、前記第１の制御レジスタはデータプロセッサで実行可能な命令セットのうち一部の命令を実行不可能にすることを選択的に指示する第１の情報の保持に利用され、
前記命令実行制御部は命令デコーダを有し、前記命令デコーダは、前記第１の情報が第１の値のとき前記一部の命令に対して実行可能なデコードを行い、前記第１の情報が第２の値のとき前記一部の命令に対して他の例外要因と区別可能な例外要因コードを生成可能なデコードを行うと共に命令実行を所定の例外処理プログラムの実行に遷移させる、データプロセッサ。
【請求項３】
前記命令実行制御部は中央処理装置であり、前記第１の制御レジスタは前記中央処理装置によってリード及びライト可能である請求項２記載のデータプロセッサ。
【請求項４】
前記例外制御部は、例外要因コードを保持する例外要因レジスタを有し、
前記命令実行制御部は、例外発生時にプログラムカウンタが保持している命令アドレスを保持するスタックレジスタを有する請求項３記載のデータプロセッサ。
【請求項５】
命令実行制御部、例外制御部及びバス制御部を有するデータプロセッサであって、
前記例外制御部は第１の制御レジスタを有し、前記第１の制御レジスタは、データプロセッサのアドレス空間の一部のアドレスに対するアクセスを不可能にすることを選択的に指示する第２の情報の保持に利用され、
前記バス制御部はアドレスデコーダを有し、前記アドレスデコーダは、前記第２の情報が第１の値のとき前記一部のアドレスへのアクセス要求を許容し、前記第２の情報が第２の値のとき前記一部のアドレスへのアクセス要求に対してアドレスエラー信号を生成し、
前記命令実行制御部は、前記アドレスエラー信号に応答して、他の例外要因と区別可能な例外要因コードを生成して命令実行を所定の例外処理プログラムの実行に遷移させる、データプロセッサ。
【請求項６】
前記第１の制御レジスタによって選択的にアクセス不可能にすることを指示することが可能なアドレス空間は、データプロセッサの内部アドレス空間と外部アドレス空間の双方である請求項５記載のデータプロセッサ。
【請求項７】
前記例外制御部は、例外要因コードを保持する例外要因レジスタを有し、
前記命令実行制御部は、例外発生時にプログラムカウンタが保持している命令アドレスを保持するスタックレジスタを有する請求項６記載のデータプロセッサ。
【請求項８】
命令実行制御部、例外制御部、及び前記命令実行制御部により機能指定レジスタに設定された機能指定情報に応ずる機能が選択されるその他の機能ブロックを有するデータプロセッサであって、
前記例外制御部は第１の制御レジスタを有し、前記第１の制御レジスタは、前記機能指定情報による一部の所定の機能設定を不可能にすることを選択的に指示する第３の情報の保持に利用され、
前記その他の機能ブロックはデコーダを有し、前記デコーダは、前記第３の情報が第１の値のとき前記機能指定レジスタへの前記一部の所定の機能の指定を許容し、前記第３の情報が第２の値のとき前記機能指定レジスタへの前記一部の所定の機能の指定に対してレジスタエラー信号を生成し、
前記命令実行制御部は、前記レジスタエラー信号に応答して、他の例外要因と区別可能な例外要因コードを生成して命令実行を所定の例外処理プログラムの実行に遷移させる、データプロセッサ。
【請求項９】
前記例外制御部は、例外要因コードを保持する例外要因レジスタを有し、
前記命令実行制御部は、例外発生時にプログラムカウンタが保持している命令アドレスを保持するスタックレジスタを有する請求項８記載のデータプロセッサ。
【請求項１０】
命令実行制御部及び例外制御部を有するデータプロセッサであって、
前記例外制御部はサポート制御レジスタを有し、前記サポート制御レジスタは、データプロセッサで実行可能な命令セットのうち一部の命令を実行不可能にすることを選択的に指示する指示情報の保持に利用され、
前記命令実行制御部はデコーダを有し、前記デコーダは、前記サポート制御レジスタによって実行不可能と指示された一部の命令をデコードしたとき、その要因に固有の要因コードを生成して保持させる、データプロセッサ。
【請求項１１】
命令実行制御部、例外制御部及びバス制御部を有するデータプロセッサであって、
前記例外制御部はサポート制御レジスタを有し、前記サポート制御レジスタは、データプロセッサのアドレス空間の一部に対するアクセスを不可能にすることを選択的に指示する指示情報の保持に利用され、
前記バス制御部はデコーダを有し、前記デコーダは、前記サポート制御レジスタによって指示されたアクセス不可能なアドレスに対するアクセス要求を検出可能であり、
前記命令実行制御部は、前記アクセス要求の検出に応答して、その要因に固有の要因コードを生成して保持させる、データプロセッサ。
【請求項１２】
命令実行制御部、例外制御部及び前記命令実行制御部により機能制御レジスタに設定された制御情報に応ずる機能が選択されるその他の機能ブロックを有するデータプロセッサであって、
前記例外制御部はサポート制御レジスタを有し、前記サポート制御レジスタは、前記機能制御レジスタに対する一部の制御情報の設定を不可能にすることを選択的に指示する指示情報の保持に利用され、
前記その他の機能ブロックはデコーダを有し、前記デコーダは、前記サポート制御レジスタにより設定不可能と指示された一部の制御情報の設定を検出可能であり、
前記命令実行制御部は、前記設定不可能と指示された一部の制御情報の設定の検出に応答して、その要因に固有の要因コードを生成して保持させる、データプロセッサ。
【請求項１３】
状態に応じた機能設定に用いられる外部端子を有し、前記一部の機能は前記外部端子を用いて設定される機能である請求項１記載のデータプロセッサ。
【請求項１４】
外部と接続可能な外部インタフェース回路を有し、前記一部の機能は前記外部インタフェース回路を用いる制御機能である請求項１記載のデータプロセッサ。
【請求項１５】
前記命令実行制御部は、前記所定の例外処理プログラムの実行に遷移することによって、前記例外要因コードとその例外要因となった命令アドレスを保存する制御が可能である請求項２記載のデータプロセッサ。
【請求項１６】
前記命令実行制御部は、前記所定の例外処理プログラムの実行に遷移することによって、前記例外要因コードとその例外要因となった命令アドレスの保存を行った後、前記例外要因となった命令を実行して、前記所定の例外処理プログラムの実行を終わることが可能な請求項１５記載のデータプロセッサ。
【請求項１７】
前記一部の機能は、将来非サポートとされる可能性のある機能である請求項１記載のデータプロセッサ。
【請求項１８】
前記一部の機能は、新たにサポートとされた追加機能である請求項１記載のデータプロセッサ。
【請求項１９】
前記一部の機能は、サポート内容が変更された機能である請求項１記載のデータプロセッサ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データプロセッサにおける上位互換技術に関し、例えば機器組み込み制御用途のマイクロコンピュータに適用して有効な技術に関する。
【背景技術】
【０００２】
上位互換のマイクロコンピュータは、互換性保持のために下位マイクロコンピュータの命令セットや機能が利用可能にされる。しかしながら、互換性維持のためだけに過大な制御論理を搭載しなければならなかったり、データ処理の高速化が阻害されたりすることがある。マイクロコンピュータの上位互換に関し、特許文献１には上位互換を維持しつつ、汎用レジスタの数を増加させることができるデータ処理装置が開示される。すなわち、レジスタを指定するレジスタ指定情報を、２つの部分に分割する。この２つの部分を命令コードの基本単位上の別々の基本単位に配置する。一方の命令コードを省略可能とし、省略可能な命令コードを省略すると、制御部（ＣＯＮＴ）は、所定レジスタ指定情報を暗黙的に想定してレジスタ選択動作を行う。これによれば、暗黙的に指定可能な汎用レジスタ（既存の汎用レジスタ）のみを使用していれば、省略可能の命令コードを省略できるから、命令コードを増加させることがない。少なくとも従来同等の汎用レジスタを使用する場合は、従来同等の命令コードでよい。命令コードを増加させないことよって、処理速度を低下させることがない。
【０００３】
【特許文献１】特開２００１−２０２２４３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
本発明者は将来の次期マイクロコンピュータに対して一部の機能に対する上位互換を取りやめる場合について検討した。取りやめ予定の機能についても現行ユーザの一部は使用している可能性がある。上位互換のマイクロコンピュータの場合、次期機種にも既存ソフトウェアを流用することがあるため、ユーザは次期機種採用までに、取りやめ予定の機能について使用していないことを確認する必要がある。取りやめ予定の機能を使用している場合はソフトウェアを修正することが必要になる。仮に、次期機種において既存機種の命令セットから一部の命令を削除した場合、次期機種において削除した命令を実行しようとすると通常は「不当命令」として例外処理の対象とされる。また、次期機種において既存機種のアドレス空間に対するユーザモードでの一部のエリアのアクセスを禁止した場合、当該アドレスをアクセスしようとすると「不当アクセス（アドレスエラー）」として、例外処理の対象とされる。全動作に対してそのような例外の発生を監視している訳ではないので、例外処理に対する設定によっては暴走することもある。システムの安定動作の観点からすれば、そのような例外処理の発生を極力抑えられるようにプログラムを修正することが望ましい。
【０００５】
しかしながら、従来のマイクロコンピュータは、下位側から流用する既存ソフトウェアに将来削除される予定の機能（非サポート機能）が利用されているかを容易に確認する機能がなかった。上記「不当命令」や「アドレスエラー」による例外では、既にサポートされていない機能を利用したか否かしか解らない。要するに、次期機種にて「非サポート」となる機能を利用しているか否かを識別可能とすることによって、非サポートになるまでの間にソフトウェアの修正を促す手段が備わっていない。
【０００６】
さらに、従来のマイクロコンピュータには、既存機種から新たに仕様変更された機能（言い換えると、新たに「サポート」とされた追加機能、又はサポート内容が変更された機能（以下、変更機能と称する））を利用しているかを容易に識別する手段が備わっていない。なお、サポート内容とは、マイクロコンピュータの仕様によって決まるものである。既存ソフトウェアを流用する場合、追加機能又は変更機能に関連した不具合が発生することが考えられるため、追加機能又は変更機能に関連した箇所が留意箇所となる。そのため、追加機能又は変更機能を利用しているか否かを識別することが重要となる。
【０００７】
本発明の目的は、将来削除される予定の機能を利用したか否かを識別可能なデータプロセッサを提供することにある。
【０００８】
本発明の別の目的は、上位互換のマイクロコンピュータに流用するソフトウェアに対して将来削除予定とされる機能の修正を促すことができるデータプロセッサを提供することにある。
【０００９】
本発明の更に別の目的は、追加機能又は変更機能を利用したか否かを識別可能なデータプロセッサを提供することにある。
【００１０】
本発明の更に別の目的は、追加機能又は変更機能を有するマイクロコンピュータで既存ソフトウェアを流用するときに、追加機能又は変更機能による影響や不具合がないかどうかを容易に検証できるデータプロセッサを提供することにある。
【００１１】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１２】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【００１３】
〔１〕命令の実行によって複数の機能をサポートするデータプロセッサは制御レジスタとデコーダを有し、前記制御レジスタは、データプロセッサが実現可能にする機能（サポートする機能）のうち一部の機能を使用不可能にすることを選択的に指示する指示情報の保持に利用され、前記デコーダは、前記サポート制御レジスタによって使用不可能とされた一部の機能を利用しようとする操作を検出して、その検出結果を保持させる。
【００１４】
前記一部の機能は、将来非サポートとされる可能性のある機能である。この場合には、ソフトウェア実行中に将来的に非サポートとされる機能の使用を検知するハードウェアを有するから、継続的に既存ソフトウェアを流用するユーザにソフトウェアの修正を促したり、次期機種にてトラブルが発生したときの問題切り分けに使用することができる。
【００１５】
また、前記一部の機能は、新たにサポートとされた追加機能、又はサポート内容が変更された機能（変更機能）である。この場合にも、ソフトウェア実行中に、新たにサポートとされた追加機能又は変更機能の使用を検知することができるから、追加機能又は変更機能による影響や不具合がないかどうかを容易に検証したり、トラブルが発生したときに、デバッグ箇所や留意箇所の特定に使用することができる。
【００１６】
〔２〕《特定の命令に対する非サポート》データプロセッサは、命令実行制御部及び例外制御部を有し、前記例外制御部は第１の制御レジスタ(２４)を有し、前記第１の制御レジスタはデータプロセッサで実行可能な命令セットのうち一部の命令を実行不可能にすることを選択的に指示する第１の情報（ＳＩＦＩ）の保持に利用され、前記命令実行制御部は命令デコーダを有し、前記命令デコーダは、前記第１の情報が第１の値のとき前記一部の命令に対して実行可能なデコードを行い、前記第１の情報が第２の値のとき前記一部の命令に対して他の例外要因と区別可能な例外要因コードを生成可能なデコードを行うと共に命令実行を所定の例外処理プログラムの実行に遷移させる。
【００１７】
前記一部の命令が例えば将来の非サポート命令であるとする。前記一部の命令が非サポート命令となる前は第１の情報に第１の値をセットしておけば当該一部の命令も正常に実行される。次期機種への対応を考慮する場合には前記第１の情報に第２の値をセットしておけば、ソフトウェア実行中に将来的に非サポートとされる当該一部の命令の使用を例外の発生によって検知することができる。前記一部の命令が、今回追加又は変更された命令である場合も、当該命令の実行を同様に検知することができる。
【００１８】
本発明の一つの具体的な形態では、前記命令実行制御部は中央処理装置であり、前記第１の制御レジスタは前記中央処理装置によってリード及びライト可能である。また、リセット時における外部端子の状態によって設定されてもよい。
【００１９】
本発明の別の具体的な形態では、前記例外制御部は、例外要因コードを保持する例外要因レジスタを有し、前記命令実行制御部は、例外発生時にプログラムカウンタが保持している命令アドレスを保持するスタックレジスタを有する。
【００２０】
本発明の更に別の具体的な形態では、前記命令実行制御部は、前記所定の例外処理プログラムの実行に遷移することによって、前記例外要因コードとその例外要因となった命令アドレスを保存する制御が可能である。上記より、データプロセッサは、例外処理プログラムにて例外要因の履歴を保存できる。
【００２１】
本発明の更に別の具体的な形態では、前記命令実行制御部は、前記所定の例外処理プログラムの実行に遷移することによって、前記例外要因コードとその例外要因となった命令アドレスの保存を行った後、前記例外要因となった命令を実行して、前記所定の例外処理プログラムの実行を終わることが可能である。これにより、前記特定の命令を実行しようとしていることを検知するだけでなく、当該特定の命令を完全に実行することも保証できるようになる。
【００２２】
〔３〕《特定アドレスエリアに対するアクセス非サポート》データプロセッサは、命令実行制御部、例外制御部及びバス制御部を有し、前記例外制御部は第１の制御レジスタ（２４）を有し、前記第１の制御レジスタは、データプロセッサのアドレス空間の一部のアドレスに対するアクセスを不可能にすることを選択的に指示する第２の情報（ＳＩＦＡ）の保持に利用され、前記バス制御部はアドレスデコーダ（３２）を有し、前記アドレスデコーダは、前記第２の情報が第１の値のとき前記一部のアドレスへのアクセス要求を許容し、前記第２の情報が第２の値のとき前記一部のアドレスへのアクセス要求に対してアドレスエラー信号（ＡＥＲＲ）を生成し、前記命令実行制御部は、前記アドレスエラー信号に応答して、他の例外要因と区別可能な例外要因コードを生成して命令実行を所定の例外処理プログラムの実行に遷移させる。
【００２３】
前記一部のアドレスへのアクセスが例えば将来の非サポートアドレスであるとする。前記一部のアドレスへのアクセスが非サポートとなる前は第２の情報に第１の値をセットしておけば当該一部のアドレスへのアクセスも許容される。次期機種への対応を考慮する場合には前記第２の情報に第２の値をセットしておけば、ソフトウェア実行中に将来的に非サポートアドレスとされる当該一部アドレスへのアクセスを利用していることを例外の発生によって検知することができる。前記一部のアドレスについて今回アクセス可能にされ又はアクセス形態が変更された場合も、当該アドレスへのアクセスを同様にして検知できる。
【００２４】
本発明の一つの具体的な形態では、前記第１の制御レジスタによって選択的にアクセス不可能にすることを指示することが可能なアドレス空間はデータプロセッサの内部アドレス空間と外部アドレス空間の双方である。
【００２５】
本発明の別の具体的な形態では、前記例外制御部は、例外要因コードを保持する例外要因レジスタを有し、前記命令実行制御部は、例外発生時にプログラムカウンタが保持している命令アドレスを保持するスタックレジスタを有する。
【００２６】
〔４〕《特定の機能設定に対する非サポート》データプロセッサは、命令実行制御部、例外制御部、及び前記命令実行制御部により機能指定レジスタ（４０）に設定された機能指定情報（ＦＳＩＦ）に応ずる機能が選択されるその他の機能ブロックを有し、前記例外制御部は第１の制御レジスタ(２４)を有し、前記第１の制御レジスタは、前記機能制御情報による一部の所定の機能設定を不可能にすることを選択的に指示する第３の情報（ＳＩＦＲ）の保持に利用され、前記その他の機能ブロックはデコーダ（４１）を有し、前記デコーダは、前記第３の情報が第１の値のとき前記機能指定レジスタへの前記一部の所定の機能の指定を許容し、前記第３の情報が第２の値のとき前記機能指定レジスタへの前記一部の所定の機能の指定に対してレジスタエラー信号（ＲＥＲＲ）を生成し、前記命令実行制御部は、前記レジスタエラー信号に応答して、他の例外要因と区別可能な例外要因コードを生成して命令実行を所定の例外処理プログラムの実行に遷移させる。
【００２７】
前記一部の所定機能が例えば将来の非サポート機能であるとする。前記一部の所定機能が非サポートとなる前は第３の情報に第１の値をセットしておけば当該一部の所定機能も利用される。次期機種への対応を考慮する場合には前記第３の情報に第２の値をセットしておけば、ソフトウェア実行中に将来的に非サポートとされる当該一部の機能の使用を例外の発生によって検知することができる。前記一部の所定機能が、今回追加又は変更された機能である場合も、当該所定機能の使用を同様に検知することができる。
【００２８】
本発明の一つの具体的な形態では、前記例外制御部は、例外要因コードを保持する例外要因レジスタを有し、前記命令実行制御部は、例外発生時にプログラムカウンタが保持している命令アドレスを保持するスタックレジスタを有する。
【００２９】
〔５〕《特定の命令に対する非サポート》データプロセッサは、命令実行制御部及び例外制御部を有し、前記例外制御部はサポート制御レジスタを有し、前記サポート制御レジスタは、データプロセッサで実行可能な命令セットのうち一部の命令を実行不可能にすることを選択的に指示する指示情報の保持に利用され、前記命令実行制御部はデコーダを有し、前記デコーダは、前記サポート制御レジスタによって実行不可能と指示された一部の命令をデコードしたとき、その所定の命令に固有の要因コードを生成して保持させる。
【００３０】
ソフトウェア実行中に将来的に非サポートとされる当該一部の命令の使用を要因コードに基づいて検知することができる。今回新たに追加又は変更された命令の実行についても同様に検知することができる。
【００３１】
〔６〕《特定アドレスエリアに対するアクセス非サポート》データプロセッサは、命令実行制御部、例外制御部及びバス制御部を有し、前記例外制御部はサポート制御レジスタを有し、前記サポート制御レジスタは、データプロセッサのアドレス空間の一部に対するアクセスを不可能にすることを選択的に指示する指示情報の保持に利用され、前記バス制御部はデコーダを有し、前記デコーダは、前記サポート制御レジスタによって指示されたアクセス不可能なアドレスに対するアクセス要求を検出可能であり、前記命令実行制御部は、前記アクセス要求の検出に応答して、その要因に固有の要因コードを生成して保持させる。
【００３２】
ソフトウェア実行中に将来的に非サポートアドレスとされる当該一部アドレスへのアクセスを利用していることを要因コードに基づいて検知することができる。一部のアドレスについて今回アクセス可能にされ又はアクセス形態が変更されたアドレスへのアクセスについても同様に検知することができる。
【００３３】
〔７〕《特定の機能設定に対する非サポート》データプロセッサは、命令実行制御部、例外制御部及び前記命令実行制御部により機能制御レジスタに設定された制御情報に応ずる機能が選択されるその他の機能ブロックを有し、前記例外制御部はサポート制御レジスタを有し、前記サポート制御レジスタは、前記機能制御レジスタに対する一部の制御情報の設定を不可能にすることを選択的に指示する指示情報の保持に利用され、前記その他の機能ブロックはデコーダを有し、前記デコーダは、前記サポート制御レジスタにより設定不可能と指示された一部の制御情報の設定を検出可能であり、前記命令実行制御部は、前記設定不可能と指示された一部の制御情報の設定の検出に応答して、その要因に固有の要因コードを生成して保持させる。
【００３４】
ソフトウェア実行中に将来的に非サポートとされる当該一部の機能の使用を要因コードに基づいて検知することができる。今回追加又は変更された機能の使用についても同様に検知することができる。
【００３５】
〔８〕《外部端子の機能設定に対する非サポート》データプロセッサは、状態に応じた機能設定に用いられる外部端子を有する。前記一部の機能は前記外部端子を用いて設定される機能である。
【００３６】
上記より、モード端子などの外部端子を用いて、将来的に非サポートとされる動作モード等が設定されたことを検知することができる。同様に、今回新たに追加又は変更された動作モードが設定されたこと等についても検知することができる。
【００３７】
〔９〕《外部インタフェースの機能設定に対する非サポート》データプロセッサは、外部と接続可能な外部インタフェース回路を有する。前記一部の機能は前記外部インタフェース回路を用いる制御機能である。
【００３８】
上記より、ソフトウェア実行中に将来的に非サポートとされる特定のコマンドインタフェース機能等の使用を要因コードに基づいて検知することができる。同様に、今回新たに追加又は変更されたコマンドインタフェース機能が使用されたこと等についても検知することができる。
【発明の効果】
【００３９】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。
【００４０】
上位互換のマイクロコンピュータに流用するソフトウェアに対して将来削除予定とされる機能の修正を促すことができる。すなわち、将来削除される予定の機能を利用したか否かを識別することができる。
【００４１】
追加機能又は変更機能を有するマイクロコンピュータで既存ソフトウェアを流用するときに、追加機能又は変更機能が正常に動作しているかを容易に検証できる。すなわち、追加機能又は変更機能を利用したか否かを識別することができる。
【発明を実施するための最良の形態】
【００４２】
《マイクロコンピュータ》
図１にはマイクロコンピュータ(ＭＣＵ)１が例示される。同図に示されるマイクロコンピュータ１は、特に制限されないが、公知の半導体集積回路製造技術によって単結晶シリコンのような１個の半導体基板に半導体集積回路として形成される。
【００４３】
マイクロコンピュータ１は、命令実行制御部としての中央処理装置（ＣＰＵ）２、キャッシュメモリ（ＣＡＣＨ＿ＭＲＹ）３、データバス・アドレスバス等のバス制御を行うバスステートコントローラ（ＢＳＣ）７、データ転送処理を行うダイレクトメモリアクセスコントローラ（ＤＭＡＣ）８、及び内部回路と外部回路の転送制御を行う外部バスインタフェース回路(ＥＸＢＩＦ)９を有する。中央処理装置２とキャッシュメモリ３とは、アドレスバス（ＡＢＵＳ１）及びデータバス(ＤＢＵＳ１)等を含む第１内部バス１６によって接続される。前記バスステートコントローラ７は、アドレスバス(ＡＢＵＳ２)とデータバス(ＤＢＵＳ２)等を含む第２内部バス１７を介して、キャッシュメモリ３、ダイレクトメモリアクセスコントローラ（ＤＭＡＣ）８、及び外部バスインタフェース回路９に接続される。更に、バスステートコントローラ７は、アドレスバス(ＡＢＵＳ３)及びデータバス(ＤＢＵＳ３)などを含む周辺バス１８を介して各種周辺回路に結合される。外部バスインタフェース回路９にはマイクロコンピュータ１の外部と内部とに接続された外部バス１９が接続される。また図示はしないが、第２内部バスには中央処理装置２で実行可能なプログラムを格納可能なリード・オンリー・メモリ（ＲＯＭ）、中央処理装置２のワーク領域として利用可能なランダム・アクセス・メモリ（ＲＡＭ）等の各種メモリが接続されていてもよい。
【００４４】
更に、マイクロコンピュータ１は、電源端子Ｖｃｃ及びグランド端子（回路の接地電位端子）ＧＮＤを有し、電源端子Ｖｃｃはマイクロコンピュータ１内の各回路モジュールに対して動作電源を供給する。電源端子Ｖｃｃから動作電源の供給が停止されると、中央処理装置２、キャッシュメモリ３等のマイクロコンピュータ１内の各回路モジュールへの動作電源の電源供給が断たれる。
【００４５】
キャッシュメモリ３は、中央処理装置２で処理される命令を格納するための命令キャッシュ(ＩＣＡＣＨ)５、演算対象となるデータを格納するデータキャッシュ(ＤＣＡＣＨ)６、及びキャッシュメモリの制御を行うキャッシュコントローラ(ＣＡＣＨ_ＣＮＴ)４を含む。
【００４６】
マイクロコンピュータ１に含まれる周辺回路は、例えば、クロック・パルス・ジェネレータ（ＣＰＧ）１１、例外制御部としての割り込みコントローラ（ＩＮＴＣ）１２、シリアル通信インタフェース（ＳＣＩ）１３、リアル・タイム・クロック（ＲＴＣ）１４、タイマ・ユニット（ＴＭＵ）１５等とされる。また、図示はしないが、ランダム・アクセス・メモリ（ＲＡＭ）や不揮発性メモリ（ＲＯＭ、Ｆｌａｓｈメモリ等）が内蔵されていてもよい。
【００４７】
アドレスバス(ＡＢＵＳ４)とデータバス(ＤＢＵＳ４)等を含む外部バス１９には、ランダム・アクセス・メモリ（ＲＡＭ）や、リード・オンリー・メモリ（ＲＯＭ）、フラッシュメモリ（Ｆｌａｓｈ）などの外部メモリ（ＥＸＭＲＹ）１０、更に、特に図示はしないが、データの入出力装置、ディスプレイ装置等の周辺回路が接続される。
【００４８】
中央処理装置２で実行される命令のアドレスは第１内部バス１６を介してキャッシュメモリ３内の命令キャッシュ５に取り込まれる。命令キャッシュ５において当該アドレスに対応した命令が格納されている時は当該アドレスに対応した命令が中央処理装置２に転送され、転送された命令は中央処理装置２にフェッチされる。中央処理装置２内では、フェッチした命令を解読し、命令に応じてデータ演算処理等を行う。また、中央処理装置２でのデータ演算処理等に使用されるデータ用のアドレスは第１内部バス１６を介してキャッシュメモリ３内のデータキャッシュ６に取り込まれる。データキャッシュ６において当該アドレスに対応したデータが格納されている時は当該アドレスに対応したデータが中央処理装置２に転送され、転送されたデータが中央処理装置２にフェッチされる。中央処理装置２は、フェッチしたデータをデータ演算処理等に用いる。中央処理装置２から供給されたアドレスに対応する命令またはデータがキャッシュメモリ３内に格納されていない場合、キャッシュコントローラ４の指示に従ってバスステートコントローラ７がメモリ１０をアクセスし、それによって得られた命令やデータが、キャッシュメモリ３に格納されると共に中央処理装置２にフェッチされる。また、マイコロコンピュータが内部にメモリを有する場合には、内蔵メモリからアドレスに対応した命令またはデータを読み出しまたは書き込まれることが可能となる。
【００４９】
前記マイクロコンピュータ１は、次期機種から一部の機能について上位互換を取りやめることが予定されているものを含む。将来上位互換を取りやめて非サポートとされる事項は、例えば（１）特定の命令に対する非サポート、（２）特定アドレスエリアに対するアクセス非サポート、（３）特定の機能設定に対する非サポート、（４）外部端子を用いて設定される機能の設定に対する非サポート、（５）外部インタフェース回路を用いる制御機能の使用に対する非サポート、の５種類とされる。マイクロコンピュータ１はソフトウェア実行中に将来的に非サポートとされる上記機能の使用を検知するハードウェアを有する。以下それらハードウェアについて詳細に説明する。
【００５０】
《特定の命令に対する非サポート》
図２には特定の命令を選択的に非サポートとする構成が例示される。ここではＣＰＵ２とＩＮＴＣ１２が例示される。ＣＰＵ２は、代表的に示された命令実行部（ＩＥＸＥＣ）２１、命令デコーダ（ＩＤＥＣ）２２、スタックレジスタ（ＳＴＣＲＥＧ）２３を有する。命令実行部２１は、特に図示はしないが、複数の汎用レジスタ、命令レジスタ、プログラムカウンタ、演算器、シーケンス制御部などを有する。シーケンス制御部は割り込み要求や例外要求などに応答し、また、分岐命令に応答して、命令実行手順の制御を行う。命令デコーダ２２は命令レジスタにフェッチされた命令を解読して制御信号を生成する。スタックレジスタ２３は割り込みや例外発生時のプログラムカウンタの値を保持する。ＩＮＴＣ１２は割り込みや例外の発生に対し所定の優先順位に従って割り込み要求や例外要求をＣＰＵ２に与える。ＩＮＴＣ１２は制御レジスタとして代表的に示されたサポート制御レジスタ（ＳＣＲＥＧ）２４と例外要因レジスタ（ＥＣＦＲＥＧ）２５を有する。サポート制御レジスタ２４はマイクロコンピュータ１の命令セットのうち一部の命令実行を不可能にすることを選択的に指示する命令サポート制御情報ＳＩＦＩの保持に利用される。命令サポート制御情報ＳＩＦＩはＣＰＵ２によるレジスタアクセスでサポート制御レジスタ２４に書き込み可能にされる。前記命令デコーダ２２は、前記命令サポート制御情報ＳＩＦＩが第１の値のとき前記一部の命令に対して実行可能なデコードを行い、前記命令サポート制御情報ＳＩＦＩが第２の値のとき前記一部の命令に対して他の例外要因と区別可能な例外要因コードＥＣＣＤＩを生成可能なデコードを行うと共に制御信号ＥＣＰＩによって命令実行手順を所定の例外処理プログラムの実行に遷移させる。例外処理プログラムとは例外処理ルーチン若しくは例外ハンドラを意味する。例外要因コードＥＣＣＤＩが例外要因レジスタ２５にセットされるとき、スタックレジスタ２３にはそのときのプログラムカウンタの命令アドレスＦＡＤＲが保持される。例えば前記例外処理プログラムは、例外要因レジスタ２５の値をリードし、リードした例外要因コードＥＣＣＤＩを図示を省略するディスプレイに表示、或いは、スタックレジスタ２３が保有する命令アドレスＦＡＤＲと共に例外要因レジスタ２５が保有する例外要因コードＥＣＣＤＩを外部メモリ１０などに蓄積する処理を制御する。
【００５１】
ここで、前記一部の命令が将来の非サポート命令であるとする。前記一部の命令が非サポート命令となる前は命令サポート制御情報ＳＩＦＩに第１の値をセットしておけば当該一部の命令も正常に実行される。次期機種への対応を考慮する場合には前記命令サポート制御情報ＳＩＦＩに第２の値をセットしておけば、ソフトウェア実行中に将来的に非サポートとされる当該一部の命令の使用を例外の発生によって検知することができる。また、例外要因レジスタ２５は複数の例外要因コードＥＣＣＤＩを格納可能な構成となっていてもよい。
【００５２】
《特定アドレスエリアに対するアクセス非サポート》
図３には特定アドレスエリアに対してアクセス非サポートとする構成が例示される。ここではＣＰＵ２、ＩＮＴＣ１２、及びＢＳＣ７が例示される。ＣＰＵ２は図２と同様に代表的に示された命令実行部（ＩＥＸＥＣ）２１、命令デコーダ（ＩＤＥＣ）２２、スタックレジスタ（ＳＴＣＲＥＧ）２３を有する。ＩＮＴＣ１２は図２と同様に制御レジスタとして代表的に示されたサポート制御レジスタ（ＳＣＲＥＧ）２４と例外要因レジスタ（ＥＣＦＲＥＧ）２５を有する。図３ではＣＰＵ２外部のＢＳＣ７で発生する例外事象について説明する関係上、例外要求制御部（ＥＣＣＮＴ）３１が図示されている。
【００５３】
ここでは、前記サポート制御レジスタ２４は、マイクロコンピュータ１のアドレス空間の一部のアドレスに対するアクセスを不可能にすることを選択的に指示するアドレスサポート制御情報ＳＩＦＡの保持に利用される。アドレスサポート制御情報ＳＩＦＡはＣＰＵ２によるレジスタアクセスでサポート制御レジスタ２４に書き込み可能にされる。ＢＳＣ７はアドレスデコーダ（ＡＤＥＣ）３２を有する。アドレスデコーダ（ＡＤＥＣ）３２は、ＣＰＵ２から出力されるアクセスアドレスＡＡＤＲやアクセスストローブ信号ＡＳＲＢなどを入力してデコードする。このアドレスデコーダ（ＡＤＥＣ）３２は、前記アドレスサポート制御情報ＳＩＦＡが第１の値のとき前記一部のアドレスへのアクセス要求を許容する。前記アドレスサポート制御情報ＳＩＦＡが第２の値のとき前記一部のアドレスへのアクセス要求に対してアドレスエラー信号ＡＥＲＲを例外要求制御部３１に供給する。例外要求制御部３１はアドレスエラー信号ＡＥＲＲに応答して、例外要求信号ＥＸＲＥＱによってＣＰＵ２に例外処理を要求する。これに応答するＣＰＵ２は、命令実行手順を所定の例外処理プログラムの実行に遷移すると共に、他の例外要因と区別可能な例外要因コードＥＣＣＤＡを生成して例外要因レジスタ２５にセットする。例外要因コードＥＣＣＤＡが例外要因レジスタ２５にセットされるとき、スタックレジスタ２３にはそのときのプログラムカウンタの命令アドレスＦＡＤＲが保持される。例えば前記例外処理プログラムは、例外要因レジスタ２５の値をリードし、リードした例外要因コードＥＣＣＤＡを図示を省略するディスプレイに表示、或いは、スタックレジスタ２３が保有する命令アドレスＦＡＤＲと共に例外要因レジスタ２５が保有する例外要因コードＥＣＣＤＡを外部メモリ１０などに蓄積する処理を制御する。
【００５４】
ここで、前記一部のアドレスへのアクセスが将来の非サポートアドレスであるとする。前記一部のアドレスへのアクセスが非サポートとなる前はアドレスサポート制御情報ＳＩＦＡに第１の値をセットしておけば当該一部のアドレスへのアクセスも許容される。次期機種への対応を考慮する場合には前記アドレスサポート制御情報ＳＩＦＡに第２の値をセットしておけば、ソフトウェア実行中に将来的に非サポートアドレスとされる当該一部アドレスへのアクセスを利用していることを例外の発生によって検知することができる。
【００５５】
《特定の機能設定に対する非サポート》
図４には特定の機能設定に対して非サポートとする構成が例示される。ここではＣＰＵ２、ＩＮＴＣ１２、ＢＳＣ７及びＴＭＵ１５が代表的に例示される。ＣＰＵ２は図２と同様に代表的に示された命令実行部（ＩＥＸＥＣ）２１、命令デコーダ（ＩＤＥＣ）２２、スタックレジスタ（ＳＴＣＲＥＧ）２３を有する。ＩＮＴＣ１２は図３と同様に制御レジスタとして代表的に示されたサポート制御レジスタ（ＳＣＲＥＧ）２４、例外要因レジスタ（ＥＣＦＲＥＧ）２５及び例外要求制御部（ＥＣＣＮＴ）３１を有する。前記ＴＭＵ１５は機能指定レジスタ(ＦＲＥＧ)４０に設定された機能指定情報ＦＳＩＦに応ずる機能が選択される。例えば、タイマカウントアップや割込発生条件選択が行われる。
【００５６】
ここでは、前記サポート制御レジスタ２４は、前記機能指定情報ＦＳＩＦによって設定可能な機能の一部の所定機能の設定を不可能にすることを選択的に指示する機能サポート制御情報ＳＩＦＲの保持に利用される。機能サポート制御情報ＳＩＦＲはＣＰＵ２によるレジスタアクセスでサポート制御レジスタ２４に書き込み可能にされる。前記ＴＭＵ１５はデコーダ（ＤＥＣ）４１を有する。前記デコーダ４１は、前記機能サポート制御情報ＳＩＦＲが第１の値のとき前記機能指定レジスタ４０に対する前記一部の所定の機能の指定を許容し、前記機能サポート制御情報ＳＩＦＲが第２の値のとき前記機能指定レジスタ４０への前記一部の所定の機能の指定に対してレジスタエラー信号ＲＥＲＲを例外要求制御部３１に供給する。例外要求制御部３１はレジスタエラー信号ＲＥＲＲに応答して、例外要求信号ＥＸＲＥＱによってＣＰＵ２に例外処理を要求する。これに応答するＣＰＵ２は、命令実行手順を所定の例外処理プログラムの実行に遷移すると共に、他の例外要因と区別可能な例外要因コードＥＣＣＤＲを生成して例外要因レジスタ２５にセットする。例外要因コードＥＣＣＤＲが例外要因レジスタ２５にセットされるとき、スタックレジスタ２３にはそのときのプログラムカウンタの命令アドレスＦＡＤＲが保持される。例えば前記例外処理プログラムは、例外要因レジスタ２５の値をリードし、リードした例外要因コードＥＣＣＤＲを図示を省略するディスプレイに表示、或いは、スタックレジスタ２３が保有する命令アドレスＦＡＤＲと共に例外要因レジスタ２５が保有する例外要因コードＥＣＣＤＲを外部メモリ１０などに蓄積する処理を制御する。
【００５７】
ここで、前記一部の所定機能例えば一部のタイマカウントアップ条件が将来の非サポート機能であるとする。前記一部の所定機能が非サポートとなる前は機能サポート制御情報ＳＩＦＲに第１の値をセットしておけば当該一部の所定機能も利用される。次期機種への対応を考慮する場合には前記機能サポート制御情報ＳＩＦＲに第２の値をセットしておけば、ソフトウェア実行中に将来的に非サポートとされる当該一部の機能の使用を例外の発生によって検知することができる。
【００５８】
例外要因コードＥＣＣＤＲが例外要因レジスタ２５にセットされるとき、スタックレジスタ２３にはそのときのプログラムカウンタの命令アドレスＦＡＤＲが保持されることによって、非サポートとされる命令または機能を格納される命令アドレスを特定することが可能となり、ユーザがその命令の使用を回避することにより、将来的な非サポートとする機能の使用を予め回避することが可能となる。
【００５９】
《外部端子を用いて設定される機能に対する非サポート》
図５には特定の外部端子を用いて設定される機能の設定を選択的に非サポートとする構成が例示される。ここではＣＰＵ２、ＩＮＴＣ１２、及びマイクロコンピュータ１全体の機能設定を制御するシステム制御部（ＳＹＳＣＮＴ）４５が例示される。ＣＰＵ２は図２と同様に代表的に示された命令実行部（ＩＥＸＥＣ）２１、命令デコーダ（ＩＤＥＣ）２２、スタックレジスタ（ＳＴＣＲＥＧ）２３を有する。ＩＮＴＣ１２は図２と同様に制御レジスタとして代表的に示されたサポート制御レジスタ（ＳＣＲＥＧ）２４と例外要因レジスタ（ＥＣＦＲＥＧ）２５及び例外要求制御部（ＥＣＣＮＴ）３１を有する。前記システム制御部４５は、モードデコーダ（ＭＤＥＣ）４６を有する。このモードデコーダ４６には、状態に応じた機能設定に用いられるモード端子ＭＤ０〜ＭＤ３を介して、機能設定を行うための制御信号が入力される。
【００６０】
ここでは、前記サポート制御レジスタ２４は、モード端子ＭＤ０〜ＭＤ３を用いて設定される機能のうち一部の所定機能を設定不可能にすることを選択的に指示する外部端子サポート制御情報ＳＩＦＥの保持に利用される。外部端子サポート制御情報ＳＩＦＥはＣＰＵ２によるレジスタアクセスでサポート制御レジスタ２４に書き込み可能にされる。
【００６１】
システム制御部４５に含まれるモードデコーダ４６は、上記モード端子ＭＤ０〜ＭＤ３から入力された制御信号をデコードし、このデコード結果を例えばモード設定信号４８として周辺回路などに出力し、マイクロコンピュータ１全体のモード設定を指示する。このモードデコーダ４６は、前記外部端子サポート制御情報ＳＩＦＥが第１の値のとき前記一部の所定機能の設定要求を許容する。前記外部端子サポート制御情報ＳＩＦＥが第２の値のとき前記一部の所定機能の設定要求に対して外部端子エラー信号ＥＥＲＲを例外要求制御部３１に供給する。
【００６２】
例外要求制御部３１は外部端子エラー信号ＥＥＲＲに応答して、例外要求信号ＥＸＲＥＱによってＣＰＵ２に例外処理を要求する。これに応答するＣＰＵ２は、命令実行手順を所定の例外処理プログラムの実行に遷移すると共に、他の例外要因と区別可能な例外要因コードＥＣＣＤＥを生成して例外要因レジスタ２５にセットする。例外要因コードＥＣＣＤＥが例外要因レジスタ２５にセットされるとき、スタックレジスタ２３にはそのときのプログラムカウンタの命令アドレスＦＡＤＲが保持される。例えば前記例外処理プログラムは、例外要因レジスタ２５の値をリードし、リードした例外要因コードＥＣＣＤＥを図示を省略するディスプレイに表示、或いは、スタックレジスタ２３が保有する命令アドレスＦＡＤＲと共に例外要因レジスタ２５が保有する例外要因コードＥＣＣＤＥを外部メモリ１０などに蓄積する処理を制御する。
【００６３】
ここで、前記一部の所定機能例えば一部の動作モードが将来の非サポート機能であるとする。前記一部の所定機能が非サポートとなる前は機能サポート制御情報ＳＩＦＥに第１の値をセットしておけば当該一部の所定機能の設定も許容される。次期機種への対応を考慮する場合には前記機能サポート制御情報ＳＩＦＥに第２の値をセットしておけば、モード端子ＭＤ０〜ＭＤ３などの外部端子を用いて、将来的に非サポートとされる動作モードが設定されたことを例外の発生によって検知することができる。
【００６４】
《外部インタフェース回路を用いる制御機能に対する非サポート》
図６には外部インタフェース回路を用いる制御機能の使用を選択的に非サポートとする構成が例示される。ここではＣＰＵ２、ＩＮＴＣ１２、インタフェース制御部（ＩＦＣＮＴ）５０、及び外部デバイス（ＥＸＤＶＣ）６０が例示される。ＣＰＵ２は図２と同様に代表的に示された命令実行部（ＩＥＸＥＣ）２１、命令デコーダ（ＩＤＥＣ）２２、スタックレジスタ（ＳＴＣＲＥＧ）２３を有する。ＩＮＴＣ１２は図２と同様に制御レジスタとして代表的に示されたサポート制御レジスタ（ＳＣＲＥＧ）２４と例外要因レジスタ（ＥＣＦＲＥＧ）２５及び例外要求制御部（ＥＣＣＮＴ）３１を有する。インタフェース制御部５０は図１の外部バスインタフェース回路９に対応する。インタフェース制御部５０は外部バス１９を介して外部デバイス６０に接続される。前記インタフェース制御部５０は前記バスステートコントローラ７による外部バスアクセス制御に従って外部バスサイクルの起動を制御する。その他に、ここでは、インタフェース制御部５０は、外部から特定のアクセスコマンドを受け付けると、図示を省略するオンチップＲＡＭに対する外部からのアクセスを許容するようになっている。図示を省略するオンチップＲＡＭは例えば内部バスＤＢＵＳ３，ＡＢＵＳ３に接続されている。
【００６５】
ここでは、前記サポート制御レジスタ２４は、インタフェース回路を用いる制御機能のうち一部の所定機能例えば前記特定のアクセスコマンドに対する応答機能を使用不可能にすることを選択的に指示する外部デバイスサポート制御情報ＳＩＦＤの保持に利用される。外部デバイスサポート制御情報ＳＩＦＤはＣＰＵ２によるレジスタアクセスでサポート制御レジスタ２４に書き込み可能にされる。
【００６６】
このインタフェース制御部５０は、前記外部デバイスサポート制御情報ＳＩＦＤが第１の値のとき前記特定のアクセスコマンドに対する応答機能の使用要求を許容する。前記外部デバイスサポート制御情報ＳＩＦＤが第２の値のとき前記特定のアクセスコマンドに対する応答機能の使用要求に対して外部デバイスエラー信号ＤＥＲＲを例外要求制御部３１に供給する。
【００６７】
例外要求制御部３１は外部デバイスエラー信号ＤＥＲＲに応答して、例外要求信号ＥＸＲＥＱによってＣＰＵ２に例外処理を要求する。これに応答するＣＰＵ２は、命令実行手順を所定の例外処理プログラムの実行に遷移すると共に、他の例外要因と区別可能な例外要因コードＥＣＣＤＤを生成して例外要因レジスタ２５にセットする。例外要因コードＥＣＣＤＤが例外要因レジスタ２５にセットされるとき、スタックレジスタ２３にはそのときのプログラムカウンタの命令アドレスＦＡＤＲが保持される。例えば前記例外処理プログラムは、例外要因レジスタ２５の値をリードし、リードした例外要因コードＥＣＣＤＤを図示を省略するディスプレイに表示、或いは、スタックレジスタ２３が保有する命令アドレスＦＡＤＲと共に例外要因レジスタ２５が保有する例外要因コードＥＣＣＤＤを外部メモリ１０などに蓄積する処理を制御する。
【００６８】
ここで、前記一部の所定機能例えば一部の特定のコマンドインタフェース機能が将来の非サポート機能であるとする。前記一部の所定機能が非サポートとなる前は機能サポート制御情報ＳＩＦＤに第１の値をセットしておけば当該一部の所定機能の使用も許容される。次期機種への対応を考慮する場合には前記機能サポート制御情報ＳＩＦＤに第２の値をセットしておけば、ソフトウェア実行中に将来的に非サポートとされる特定のコマンドインタフェース機能などが利用されていることを例外の発生によって検知することができる。なお、上記一部の所定機能は、特定のコマンドインタフェース機能に限らず、例えばマイクロコンピュータ１がスレーブプロセッサであるとき、マスタプロセッサから与えられる特定の動作指示コマンドに対する応答機能であってもよい。
【００６９】
上記マイクロコンピュータ１によれば、ソフトウェア実行中に将来的に非サポートとされる機能の使用や設定を検知するハードウェアを有するから、継続的に既存ソフトウェアを流用するユーザにソフトウェアの修正を促したり、次期機種にてトラブルが発生したときの問題切り分けに使用することができる。これにより、マイクロコンピュータのユーザには、そのハードウェアによって、将来的に非サポートとする機能を容易に検出できる手段を提供することができるから、次期マイクロコンピュータの設計では非サポート予定の機能を躊躇なく非サポートに変更することができ、互換性維持のためだけの過大な制御論理の搭載を止めるなどの設計のボトルネックを取り除くことができる。
【００７０】
《スーパースカラによる特定の命令に対する非サポート》
図７にはＣＰＵをスーパースカラとした場合に特定の命令を選択的に非サポートとする構成が例示される。ここではＣＰＵ２ＡとＩＮＴＣ１２が例示される。ＣＰＵ２Ａは図２に示されたＣＰＵ２と異なり、内部に２系統のパイプライン制御系３３Ａ，３３Ｂを有し、スーパースカラの構成を有する。即ち、ＣＰＵ２Ａは、命令デコーダ（ＩＤＥＣ）２２Ａと命令実行部（ＩＥＸＥＣ）２１Ａとからなるパイプライン制御系３３Ａと、命令デコーダ２２Ｂと命令実行部２１Ｂとからなるパイプライン制御系３３Ｂと、ＣＰＵリソース（ＣＰＵＲＥＳＣ）３４と、パイプライン制御部（ＰＩＰＣＮＴ）３７と、命令シーケンス制御部（ＩＳＱＣＮＴ）７０とを有する。ＣＰＵＲＥＳＣ３４は、演算器（ＡＬＵ）３５と、汎用レジスタ（ＧＲＥＧ）３６と、命令スタックレジスタ（ＳＴＣＲＥＧ）２３とを有する。命令シーケンス制御部７０は、命令発行制御部（ＩＦＣＮＴ）７１と、命令バッファ（ＩＢＵＦ）７２とを有する。
【００７１】
ＩＮＴＣ１２は図２と同様に制御レジスタとして代表的に示されたサポート制御レジスタ（ＳＣＲＥＧ）２４と例外要因レジスタ（ＥＣＦＲＥＧ）２５を有する。命令シーケンス制御部７０は、命令のプリフェッチを制御する。命令フェッチは、命令フェッチバス３８を介して前記キャッシュアレイ３から行う。命令シーケンス制御部７０は、プリフェッチした命令を順次命令バッファ７２に蓄積する。ＣＰＵリソース３４は、必要に応じてオペランドフェッチや演算結果の書込みを行なうときはオペランドフェッチバス３９を用いる。命令フェッチバス３８及びオペランドフェッチバス３９は、図１において内部バス１６によって総称されている。命令発行制御部７１は、命令バッファ７２に蓄積された命令（ＩＮＳＴ）と命令アドレス（ＩＡ）を、命令デコーダ２２Ａ，２２Ｂに並列に供給する。命令デコーダ２２Ａ，２２Ｂによるデコード結果はパイプライン制御部３７に与えられて、双方のパイプラインにおける命令実行の依存性等が判定される。命令デコーダ２２Ａ，２２Ｂによるデコード結果等は命令実行部２１Ａ，２１Ｂにも与えられている。命令実行部２１Ａ，２１Ｂは、パイプライン制御部３７による判定結果に従って、ＣＰＵリソース３４を用いた並列的な命令実行又は直列的な命令実行を制御する。
【００７２】
ここでは、前記サポート制御レジスタ２４は、図２と同様に代表的に示された命令サポート制御情報ＳＩＦＩの保持に利用される。命令サポート制御情報ＳＩＦＩはＣＰＵ２Ａによるレジスタアクセスでサポート制御レジスタ２４に書き込み可能にされる。前記命令デコーダ２２Ａ，２２Ｂは、前記命令サポート制御情報ＳＩＦＩが第１の値のとき前記一部の命令に対して実行可能なデコードを行う。前記命令デコーダ２２Ａ，２２Ｂは、前記命令サポート制御情報ＳＩＦＩが第２の値のとき前記一部の命令に対して他の例外要因と区別可能な例外要因コードＥＣＣＤＩを生成し、命令実行手順を所定の例外処理プログラムの実行に遷移させる。例外要因コードＥＣＣＤＩは、例外要因レジスタ２５にセットされる。
【００７３】
また、例外要因コードＥＣＣＤＩが例外要因レジスタ２５にセットされるとき、スタックレジスタ２３には、先に例外を発生させた命令の命令アドレスＦＡＤＲが保持される。その制御は、パイプライン制御部３７が行う。前記例外処理プログラムは、例外要因レジスタ２５の値をリードし、リードした例外要因コードＥＣＣＤＩを図示を省略するディスプレイに表示、或いは、スタックレジスタ２３が保有する命令アドレスＦＡＤＲと共に例外要因レジスタ２５が保有する例外要因コードＥＣＣＤＩを外部メモリ１０などに蓄積する処理を制御する。
【００７４】
ここで、前記一部の命令が将来の非サポート命令であるとする。前記一部の命令が非サポート命令となる前は命令サポート制御情報ＳＩＦＩに第１の値をセットしておけば当該一部の命令も正常に実行される。次期機種への対応を考慮する場合には前記命令サポート制御情報ＳＩＦＩに第２の値をセットしておけば、ソフトウェア実行中に将来的に非サポートとされる当該一部の命令の使用を例外の発生によって検知することができる。なお、パイプライン制御系３３Ａ，３３Ｂの２系統に供給された双方の命令が将来の非サポート命令である場合にも対処できるように、例外要因レジスタ２５は、夫々パイプライン制御系３３Ａ，３３Ｂ双方からの要因コードを保存可能になっている。この場合にスタックレジスタ２３に格納される命令アドレスは、先に例外を発生させた命令の命令アドレスとされる。
【００７５】
上記により、マイクロコンピュータ１にスーパースカラを適用した場合であっても、ソフトウェア実行中に将来的に非サポートとされる機能の使用を検知することができる。
【００７６】
《例外処理プログラムにおける履歴保存及び実行》
図８には例外処理プログラムを含む非サポート対象の利用情報を抽出する手順が例示される。まず、ＣＰＵ２は、マイクロコンピュータ１のパワーオン（電源投入）時に、スタートアップルーチンを起動する（Ｓ１）。このスタートアップルーチンにおいて、ＣＰＵ２は、自身の初期設定や周辺モジュール１１〜１５などの初期設定を行い（Ｓ２）、サポート制御レジスタ２４を例えば非サポートに設定する（Ｓ３）。次に、ＣＰＵ２は、アプリケーションプログラムを実行する（Ｓ４）。このアプリケーションプログラムにおいて、ＣＰＵ２は、非サポート命令をフェッチしてデコードすると（Ｓ５）、前述のハードウェアの構成により例外処理要求が発生される（Ｓ６）。
【００７７】
例外処理要求が発生されると、ＣＰＵ２は、その例外処理要求と共に通知される例外要因コードに基づいて、例外に応じた分岐先が記されたベクタテーブルを参照する（Ｓ７）。例外要因が非サポート命令のデコードに基づくものであれば、ベクタテーブルで参照されたそれに対応する例外処理プログラムの実行に遷移する。別の要因であれば当該要因に応じた別の例外処理に遷移することになる（Ｓ８）。
【００７８】
非サポート命令に対する例外処理は、当該要因発生に関する記録処理（Ｓ９）と、非サポート命令の追認的実行処理（Ｓ１３）とに大別される。ステップＳ９の処理において、ＣＰＵ２は、スタックレジスタ２３に格納した図示を省略するプログラムカウンタの値を、ＬＥＤなどの表示装置に表示し（Ｓ１０）、さらに、例外要因レジスタ２５に格納した例外要因コードを、ＬＥＤなどに表示する（Ｓ１１）。次に、ＣＰＵ２は、スタックレジスタ２３や例外要因レジスタ２５を、マイクロコンピュータ１のワーク領域とされる外部メモリ１０に格納する（Ｓ１２）。このように、ＣＰＵ２は、所定の例外処理プログラムの実行に遷移して、ステップＳ９の処理を実行することにより、例外要因コードとその例外要因となった命令アドレスを保存する制御が可能となる。したがって、マイクロコンピュータ１は、例外処理プログラムにて例外要因の履歴を保存することができる。
【００７９】
さらに、ＣＰＵ２は、ステップＳ９の後に、例外要因命令を実行する（Ｓ１３）。ステップＳ１３の処理において、ＣＰＵ２は、まず、ステップＳ３の処理で非サポートに設定されたサポート制御レジスタ２４をサポートに設定する（Ｓ１４）。次に、ＣＰＵ２は、例えば外部メモリ１０等を用いて例外要因命令を実行し（Ｓ１５）、スタックレジスタ２３が保持する値（スタック）を例外要因命令の次命令に更新する（Ｓ１６）。その後、ＣＰＵ２は、サポート制御レジスタ２４を非サポートに設定し（Ｓ１７）、上記した例外処理プログラムを終了させて、アプリケーションプログラムに復帰して、次命令など通常の処理を行う。このように、ＣＰＵ２は、ステップＳ９の処理で例外要因コードとその例外要因となった命令アドレスの保存を行った後、ステップＳ１３の処理を実行することにより、例外要因となった命令を実行して、所定の例外処理プログラムの実行を終わらせることが可能である。したがって、マイクロコンピュータ１は、特定の命令である例外要因命令を実行しようとしていることを検知するだけでなく、この例外要因命令を完全に実行することも保証できるようになる。
【００８０】
ここで、マイクロコンピュータ１は、ステップＳ７の処理で、ベクタテーブルを参照する方式を用いたが、これに限られず、例外の要因に関係なく、一定のアドレスへジャンプした後、例外処理プログラムにて例外処理要因コードを解析し、対応したルーチンへジャンプする方式を適用してもよい。また、スタックレジスタ２３は、スタックポインタが示すアドレスにプログラムカウンタの値を格納する方式を適用してもよい。さらに、マイクロコンピュータ１は、スタックレジスタ２３や例外要因レジスタ２５に格納された内容をＬＥＤなどで表示するだけで、履歴を保存しないときには、ステップＳ１２の処理を不要とすることができる。
【００８１】
また、マイクロコンピュータ１は、非サポート対象の利用情報を抽出する手順として、非サポート対象の命令を実行する前に例外処理プログラムの実行に遷移するようにしたが、これに限られず、非サポート対象の命令を実行した後に、例外処理プログラムの実行に遷移するようにしてもよい。また、例外処理によってプログラム実行を中止しても良い。この場合には、ＣＰＵ２は、ステップＳ９の処理を行った後に、直ちに例外処理プログラムを終了させればよい。
【００８２】
《既存機種にて新たに「サポート」とされた追加機能又は変更機能》
以上の説明では、将来の非サポート予定機能に対する利用を検出可能とした。将来の非サポート予定機能を、今回からの追加機能又は変更機能として把握すれば、上記と同じ様に、データプロセッサ等において今回からサポートされた追加機能又は変更機能に対する利用の検出にも適用可能になる。以下この観点による適用例を説明する。ここで考える機能は、上記非サポートの場合と同様の、例えば（１）特定の命令に対するサポート、（２）特定アドレスエリアに対するアクセスサポート、（３）特定の機能設定に対するサポート、（４）外部端子を用いて設定される機能の設定に対するサポート、（５）外部インタフェース回路を用いる制御機能の使用に対するサポート、の５種類とされる。マイクロコンピュータ１はソフトウェア実行中に既存機種から新たに追加又は変更された上記機能の使用を検知するハードウェアを有する。それらハードウェアについては、非サポート対象の利用情報を抽出することを実現した上記ハードウェアと比べると、サポート制御レジスタ２４に保持される各種サポート制御情報に対する定義付けを変更すればよく、それ以外の論理実装は略同様となる。
【００８３】
《特定の命令に対するサポート》
一部の命令が今回新たに追加又は変更された命令であり、この命令の実行をサポートとする場合には、マイクロコンピュータ１において、図２に示すサポート制御レジスタ２４に保持される命令サポート制御情報ＳＩＦＩを、追加又は変更された命令のサポートを示す情報と定義付けすればよい。これにより、マイクロコンピュータ１は、当該一部の命令が今回追加又は変更された命令である場合も、当該命令の実行を、上記した将来の非サポート命令を実行するときと同様に検知することができる。また、マイクロコンピュータ１に図７に代表的に示されるスーパースカラであるＣＰＵ２Ａを適用した場合でも、命令サポート制御情報ＳＩＦＩを上記のように定義付けすることにより、今回追加又は変更された命令の実行を同様に検知することができる。
【００８４】
《特定アドレスエリアに対するアクセスサポート》
一部のアドレスについて今回アクセス可能にされ又はアクセス形態が変更され、上記追加又は変更に係るアドレスへのアクセスをサポートする場合には、マイクロコンピュータ１において、図３に示すアドレスサポート制御情報ＳＩＦＡを、上記追加又は変更に係るエリアアドレスのサポートを示す情報と定義付けすればよい。これにより、マイクロコンピュータ１は、当該一部のアドレスが上記追加又は変更に係るアドレスである場合も、当該アドレスへのアクセスを、上記した将来の非サポートアドレスにアクセスするときと同様に検知することができる。
【００８５】
《特定の機能設定に対するサポート》
一部の所定機能が今回追加又は変更された機能であり、この追加機能又は変更機能をサポートする場合には、マイクロコンピュータ１において、図４に示す機能サポート制御情報ＳＩＦＲを、機能指定情報ＦＳＩＦによって設定可能な機能を新たに追加又は変更した箇所のサポートを示す情報と定義付けすればよい。これにより、マイクロコンピュータ１は、当該一部の所定機能が今回追加又は変更された機能である場合も、当該所定機能の使用を、上記した将来の非サポート機能を使用するときと同様に検知することができる。
【００８６】
《外部端子を用いて設定される機能に対するサポート》
モード端子などを用いて設定される動作モードなどの一部の機能が、今回追加又は変更された機能であり、この機能をサポートする場合には、マイクロコンピュータ１において、図５に示す外部端子機能サポート制御情報ＳＩＦＥを、外部端子を用いて設定される機能を新たに追加又は変更した箇所のサポートを示す情報と定義付けすればよい。これにより、マイクロコンピュータ１は、例えば動作モードが今回追加又は変更された機能である場合も、この動作モードの設定を、上記した将来の非サポート機能を設定するときと同様に検知することができる。
【００８７】
《外部インタフェース回路を用いる制御機能に対するサポート》
外部インタフェース回路を用いる特定のコマンドインタフェース機能などの一部の機能が、今回追加又は変更された機能であり、この機能をサポートする場合には、マイクロコンピュータ１において、図６に示す外部デバイスサポート制御情報ＳＩＦＤを、外部インタフェース回路を用いる制御機能を新たに追加又は変更した箇所のサポートを示す情報と定義付けすればよい。これにより、マイクロコンピュータ１は、例えばコマンドインタフェース機能が今回追加又は変更された制御機能である場合も、このコマンドインタフェース機能の使用を、上記した将来の非サポート機能を使用するときと同様に検知することができる。
【００８８】
即ち、上記マイクロコンピュータ１によれば、ソフトウェア実行中に、新たにサポートとされた追加機能又は変更機能の使用や設定を検知することができる。したがって、マイクロコンピュータ１は、追加機能又は変更機能による影響や不良具合がないかどうかを容易に検証したり、トラブルが発生したときに、デバッグ箇所や留意箇所の特定に使用することができる。
【００８９】
以上、本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【００９０】
例えば、以上の説明では非サポートの対象、又は新たにサポートとされた追加機能やサポート内容が変更された機能の対象を、一部の命令、特定アドレスアクセス、制御レジスタ設定、外部端子制御機能、バスインタフェース制御機能としたが、本発明はそれに限定されず適宜変更可能である。特定アドレスアクセスの非サポートの制御では、キャッシュメモリ３の命令キャッシュ(ＩＣＡＣＨ)５、データキャッシュ(ＤＣＡＣＨ)６を構成するキャッシュエントリをＣＰＵ２のアドレス空間にマッピングしてキャッシュエントリのパージやインバリデートなどを行うときのメモリ割付アクセスやキャッシュタグを用いた連想検索結果を用いる連想アクセスであってもよい。
【００９１】
また、将来的に非サポートとする機能の検知には例外処理を利用したが、エミュレータモード時にはブレーク割り込みを発生されるようにしてもよい。要するに、将来的に非サポートとする機能の設定などをブレーク条件に設定する。また、将来的に非サポートとする機能の検知として、特別な非サポート例外を用意せず、出力端子を用いて通知したり、不当命令例外やアドレス例外とし、スタックより原因を解析して把握するようにしてもよい。本発明はマイクロコンピュータだけではなく、マイクロプロセッサ、アクセラレータ、システムＬＳＩなどと称されるデータプロセッサに広く適用することができる。
【図面の簡単な説明】
【００９２】
【図１】マイクロコンピュータのブロック図である。
【図２】図１のマイクロコンピュータにおいて特定の命令を選択的に非サポートとする構成を例示するブロック図である。
【図３】図１のマイクロコンピュータにおいて特定アドレスエリアに対してアクセス非サポートとする構成を例示するブロック図である。
【図４】図１のマイクロコンピュータにおいて特定の機能設定に対して非サポートとする構成を例示するブロック図である。
【図５】図１のマイクロコンピュータにおいて特定の外部端子を用いて設定される機能の設定を選択的に非サポートとする構成を例示するブロック図である。
【図６】図１のマイクロコンピュータにおいて外部インタフェース回路を用いる制御機能の使用を選択的に非サポートとする構成を例示するブロック図である。
【図７】図１のマイクロコンピュータにおいてＣＰＵをスーパースカラとした場合に特定の命令を選択的に非サポートとする構成を例示するブロック図である。
【図８】マイクロコンピュータにより実行される例外処理プログラムを含む非サポート対象の利用情報を抽出する手順の一例を示すフローチャートである。
【符号の説明】
【００９３】
１  マイクロコンピュータ
２  中央処理装置
３  キャッシュメモリ
６  データキャッシュメモリ
７  バスステートコントローラ
２１  命令実行部（ＩＥＸＥＣ）
２２  命令デコーダ（ＩＤＥＣ）
２３  スタックレジスタ（ＳＴＣＲＥＧ）
２４  サポート制御レジスタ（ＳＣＲＥＧ）
２５  例外要因レジスタ（ＥＣＦＲＥＧ）
ＳＩＦＩ  命令サポート制御情報
ＥＣＣＤＩ  例外要因コード
ＥＣＰＩ  制御信号
３１  例外要求制御部（ＥＣＣＮＴ）
ＳＩＦＡ  アドレスサポート制御情報
３２  アドレスデコーダ（ＡＤＥＣ）
３３Ａ，３３Ｂ  パイプライン制御系
３４  ＣＰＵリソース（ＣＰＵＲＥＳＣ）
３５  演算器（ＡＬＵ）
３６  汎用レジスタ（ＧＲＥＧ）
３７  パイプライン制御部（ＰＩＰＣＮＴ）
ＡＡＤＲ  アクセスアドレス
ＡＳＲＢ  アクセスストローブ信号
ＡＥＲＲ  アドレスエラー信号
ＥＣＣＤＡ  例外要因コード
４０  機能指定レジスタ(ＦＲＥＧ)
ＦＳＩＦ  機能指定情報
ＳＩＦＲ  機能サポート制御情報
４１  デコーダ（ＤＥＣ）
４５  システム制御部（ＳＹＳＣＮＴ）
４６  モードデコーダ（ＭＤＥＣ）
ＭＤ０〜ＭＤ３  モード端子
ＲＥＲＲ  レジスタエラー信号
５０  インタフェース制御部（ＩＦＣＮＴ）
６０  外部デバイス（ＥＸＤＶＣ）
７０  命令シーケンス制御部（ＩＳＱＣＮＴ）
７１  命令発行制御部（ＩＦＣＮＴ）
７２  命令バッファ（ＩＢＵＦ）
【図１】
2006221606.tif 000003
【図２】
2006221606.tif 000004
【図３】
2006221606.tif 000005
【図４】
2006221606.tif 000006
【図５】
2006221606.tif 000007
【図６】
2006221606.tif 000008
【図７】
2006221606.tif 000009
【図８】
2006221606.tif 000010