説明

データプロセッサ

【課題】 将来削除される予定の機能や今回新たに追加又は変更された機能を利用したか否かを識別可能なデータプロセッサを提供する。
【解決手段】 第1の制御レジスタ(24)はデータプロセッサで実行可能な命令セットのうち一部の命令の実行を不可能にすることを選択的に指示する第1の情報(SIFI)の保持に利用される。命令デコーダ(22)は、前記第1の情報が第1の値のとき前記一部の命令に対して実行可能にデコードし、第2の値のとき前記一部の命令に対して他の例外要因と区別可能な例外要因コード(ECCDI)を生成可能にデコードすると共に命令実行手順を所定の例外処理プログラムの実行に遷移させる。次期機種への対応を考慮するときは前記第1の情報に第2の値をセットしてソフトウェアを実行すれば将来非サポートとされる命令の使用、或いは今回追加又は変更された命令の使用を例外発生にて検知することができる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データプロセッサにおける上位互換技術に関し、例えば機器組み込み制御用途のマイクロコンピュータに適用して有効な技術に関する。
【背景技術】
【0002】
上位互換のマイクロコンピュータは、互換性保持のために下位マイクロコンピュータの命令セットや機能が利用可能にされる。しかしながら、互換性維持のためだけに過大な制御論理を搭載しなければならなかったり、データ処理の高速化が阻害されたりすることがある。マイクロコンピュータの上位互換に関し、特許文献1には上位互換を維持しつつ、汎用レジスタの数を増加させることができるデータ処理装置が開示される。すなわち、レジスタを指定するレジスタ指定情報を、2つの部分に分割する。この2つの部分を命令コードの基本単位上の別々の基本単位に配置する。一方の命令コードを省略可能とし、省略可能な命令コードを省略すると、制御部(CONT)は、所定レジスタ指定情報を暗黙的に想定してレジスタ選択動作を行う。これによれば、暗黙的に指定可能な汎用レジスタ(既存の汎用レジスタ)のみを使用していれば、省略可能の命令コードを省略できるから、命令コードを増加させることがない。少なくとも従来同等の汎用レジスタを使用する場合は、従来同等の命令コードでよい。命令コードを増加させないことよって、処理速度を低下させることがない。
【0003】
【特許文献1】特開2001−202243号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
本発明者は将来の次期マイクロコンピュータに対して一部の機能に対する上位互換を取りやめる場合について検討した。取りやめ予定の機能についても現行ユーザの一部は使用している可能性がある。上位互換のマイクロコンピュータの場合、次期機種にも既存ソフトウェアを流用することがあるため、ユーザは次期機種採用までに、取りやめ予定の機能について使用していないことを確認する必要がある。取りやめ予定の機能を使用している場合はソフトウェアを修正することが必要になる。仮に、次期機種において既存機種の命令セットから一部の命令を削除した場合、次期機種において削除した命令を実行しようとすると通常は「不当命令」として例外処理の対象とされる。また、次期機種において既存機種のアドレス空間に対するユーザモードでの一部のエリアのアクセスを禁止した場合、当該アドレスをアクセスしようとすると「不当アクセス(アドレスエラー)」として、例外処理の対象とされる。全動作に対してそのような例外の発生を監視している訳ではないので、例外処理に対する設定によっては暴走することもある。システムの安定動作の観点からすれば、そのような例外処理の発生を極力抑えられるようにプログラムを修正することが望ましい。
【0005】
しかしながら、従来のマイクロコンピュータは、下位側から流用する既存ソフトウェアに将来削除される予定の機能(非サポート機能)が利用されているかを容易に確認する機能がなかった。上記「不当命令」や「アドレスエラー」による例外では、既にサポートされていない機能を利用したか否かしか解らない。要するに、次期機種にて「非サポート」となる機能を利用しているか否かを識別可能とすることによって、非サポートになるまでの間にソフトウェアの修正を促す手段が備わっていない。
【0006】
さらに、従来のマイクロコンピュータには、既存機種から新たに仕様変更された機能(言い換えると、新たに「サポート」とされた追加機能、又はサポート内容が変更された機能(以下、変更機能と称する))を利用しているかを容易に識別する手段が備わっていない。なお、サポート内容とは、マイクロコンピュータの仕様によって決まるものである。既存ソフトウェアを流用する場合、追加機能又は変更機能に関連した不具合が発生することが考えられるため、追加機能又は変更機能に関連した箇所が留意箇所となる。そのため、追加機能又は変更機能を利用しているか否かを識別することが重要となる。
【0007】
本発明の目的は、将来削除される予定の機能を利用したか否かを識別可能なデータプロセッサを提供することにある。
【0008】
本発明の別の目的は、上位互換のマイクロコンピュータに流用するソフトウェアに対して将来削除予定とされる機能の修正を促すことができるデータプロセッサを提供することにある。
【0009】
本発明の更に別の目的は、追加機能又は変更機能を利用したか否かを識別可能なデータプロセッサを提供することにある。
【0010】
本発明の更に別の目的は、追加機能又は変更機能を有するマイクロコンピュータで既存ソフトウェアを流用するときに、追加機能又は変更機能による影響や不具合がないかどうかを容易に検証できるデータプロセッサを提供することにある。
【0011】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【0012】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【0013】
〔1〕命令の実行によって複数の機能をサポートするデータプロセッサは制御レジスタとデコーダを有し、前記制御レジスタは、データプロセッサが実現可能にする機能(サポートする機能)のうち一部の機能を使用不可能にすることを選択的に指示する指示情報の保持に利用され、前記デコーダは、前記サポート制御レジスタによって使用不可能とされた一部の機能を利用しようとする操作を検出して、その検出結果を保持させる。
【0014】
前記一部の機能は、将来非サポートとされる可能性のある機能である。この場合には、ソフトウェア実行中に将来的に非サポートとされる機能の使用を検知するハードウェアを有するから、継続的に既存ソフトウェアを流用するユーザにソフトウェアの修正を促したり、次期機種にてトラブルが発生したときの問題切り分けに使用することができる。
【0015】
また、前記一部の機能は、新たにサポートとされた追加機能、又はサポート内容が変更された機能(変更機能)である。この場合にも、ソフトウェア実行中に、新たにサポートとされた追加機能又は変更機能の使用を検知することができるから、追加機能又は変更機能による影響や不具合がないかどうかを容易に検証したり、トラブルが発生したときに、デバッグ箇所や留意箇所の特定に使用することができる。
【0016】
〔2〕《特定の命令に対する非サポート》データプロセッサは、命令実行制御部及び例外制御部を有し、前記例外制御部は第1の制御レジスタ(24)を有し、前記第1の制御レジスタはデータプロセッサで実行可能な命令セットのうち一部の命令を実行不可能にすることを選択的に指示する第1の情報(SIFI)の保持に利用され、前記命令実行制御部は命令デコーダを有し、前記命令デコーダは、前記第1の情報が第1の値のとき前記一部の命令に対して実行可能なデコードを行い、前記第1の情報が第2の値のとき前記一部の命令に対して他の例外要因と区別可能な例外要因コードを生成可能なデコードを行うと共に命令実行を所定の例外処理プログラムの実行に遷移させる。
【0017】
前記一部の命令が例えば将来の非サポート命令であるとする。前記一部の命令が非サポート命令となる前は第1の情報に第1の値をセットしておけば当該一部の命令も正常に実行される。次期機種への対応を考慮する場合には前記第1の情報に第2の値をセットしておけば、ソフトウェア実行中に将来的に非サポートとされる当該一部の命令の使用を例外の発生によって検知することができる。前記一部の命令が、今回追加又は変更された命令である場合も、当該命令の実行を同様に検知することができる。
【0018】
本発明の一つの具体的な形態では、前記命令実行制御部は中央処理装置であり、前記第1の制御レジスタは前記中央処理装置によってリード及びライト可能である。また、リセット時における外部端子の状態によって設定されてもよい。
【0019】
本発明の別の具体的な形態では、前記例外制御部は、例外要因コードを保持する例外要因レジスタを有し、前記命令実行制御部は、例外発生時にプログラムカウンタが保持している命令アドレスを保持するスタックレジスタを有する。
【0020】
本発明の更に別の具体的な形態では、前記命令実行制御部は、前記所定の例外処理プログラムの実行に遷移することによって、前記例外要因コードとその例外要因となった命令アドレスを保存する制御が可能である。上記より、データプロセッサは、例外処理プログラムにて例外要因の履歴を保存できる。
【0021】
本発明の更に別の具体的な形態では、前記命令実行制御部は、前記所定の例外処理プログラムの実行に遷移することによって、前記例外要因コードとその例外要因となった命令アドレスの保存を行った後、前記例外要因となった命令を実行して、前記所定の例外処理プログラムの実行を終わることが可能である。これにより、前記特定の命令を実行しようとしていることを検知するだけでなく、当該特定の命令を完全に実行することも保証できるようになる。
【0022】
〔3〕《特定アドレスエリアに対するアクセス非サポート》データプロセッサは、命令実行制御部、例外制御部及びバス制御部を有し、前記例外制御部は第1の制御レジスタ(24)を有し、前記第1の制御レジスタは、データプロセッサのアドレス空間の一部のアドレスに対するアクセスを不可能にすることを選択的に指示する第2の情報(SIFA)の保持に利用され、前記バス制御部はアドレスデコーダ(32)を有し、前記アドレスデコーダは、前記第2の情報が第1の値のとき前記一部のアドレスへのアクセス要求を許容し、前記第2の情報が第2の値のとき前記一部のアドレスへのアクセス要求に対してアドレスエラー信号(AERR)を生成し、前記命令実行制御部は、前記アドレスエラー信号に応答して、他の例外要因と区別可能な例外要因コードを生成して命令実行を所定の例外処理プログラムの実行に遷移させる。
【0023】
前記一部のアドレスへのアクセスが例えば将来の非サポートアドレスであるとする。前記一部のアドレスへのアクセスが非サポートとなる前は第2の情報に第1の値をセットしておけば当該一部のアドレスへのアクセスも許容される。次期機種への対応を考慮する場合には前記第2の情報に第2の値をセットしておけば、ソフトウェア実行中に将来的に非サポートアドレスとされる当該一部アドレスへのアクセスを利用していることを例外の発生によって検知することができる。前記一部のアドレスについて今回アクセス可能にされ又はアクセス形態が変更された場合も、当該アドレスへのアクセスを同様にして検知できる。
【0024】
本発明の一つの具体的な形態では、前記第1の制御レジスタによって選択的にアクセス不可能にすることを指示することが可能なアドレス空間はデータプロセッサの内部アドレス空間と外部アドレス空間の双方である。
【0025】
本発明の別の具体的な形態では、前記例外制御部は、例外要因コードを保持する例外要因レジスタを有し、前記命令実行制御部は、例外発生時にプログラムカウンタが保持している命令アドレスを保持するスタックレジスタを有する。
【0026】
〔4〕《特定の機能設定に対する非サポート》データプロセッサは、命令実行制御部、例外制御部、及び前記命令実行制御部により機能指定レジスタ(40)に設定された機能指定情報(FSIF)に応ずる機能が選択されるその他の機能ブロックを有し、前記例外制御部は第1の制御レジスタ(24)を有し、前記第1の制御レジスタは、前記機能制御情報による一部の所定の機能設定を不可能にすることを選択的に指示する第3の情報(SIFR)の保持に利用され、前記その他の機能ブロックはデコーダ(41)を有し、前記デコーダは、前記第3の情報が第1の値のとき前記機能指定レジスタへの前記一部の所定の機能の指定を許容し、前記第3の情報が第2の値のとき前記機能指定レジスタへの前記一部の所定の機能の指定に対してレジスタエラー信号(RERR)を生成し、前記命令実行制御部は、前記レジスタエラー信号に応答して、他の例外要因と区別可能な例外要因コードを生成して命令実行を所定の例外処理プログラムの実行に遷移させる。
【0027】
前記一部の所定機能が例えば将来の非サポート機能であるとする。前記一部の所定機能が非サポートとなる前は第3の情報に第1の値をセットしておけば当該一部の所定機能も利用される。次期機種への対応を考慮する場合には前記第3の情報に第2の値をセットしておけば、ソフトウェア実行中に将来的に非サポートとされる当該一部の機能の使用を例外の発生によって検知することができる。前記一部の所定機能が、今回追加又は変更された機能である場合も、当該所定機能の使用を同様に検知することができる。
【0028】
本発明の一つの具体的な形態では、前記例外制御部は、例外要因コードを保持する例外要因レジスタを有し、前記命令実行制御部は、例外発生時にプログラムカウンタが保持している命令アドレスを保持するスタックレジスタを有する。
【0029】
〔5〕《特定の命令に対する非サポート》データプロセッサは、命令実行制御部及び例外制御部を有し、前記例外制御部はサポート制御レジスタを有し、前記サポート制御レジスタは、データプロセッサで実行可能な命令セットのうち一部の命令を実行不可能にすることを選択的に指示する指示情報の保持に利用され、前記命令実行制御部はデコーダを有し、前記デコーダは、前記サポート制御レジスタによって実行不可能と指示された一部の命令をデコードしたとき、その所定の命令に固有の要因コードを生成して保持させる。
【0030】
ソフトウェア実行中に将来的に非サポートとされる当該一部の命令の使用を要因コードに基づいて検知することができる。今回新たに追加又は変更された命令の実行についても同様に検知することができる。
【0031】
〔6〕《特定アドレスエリアに対するアクセス非サポート》データプロセッサは、命令実行制御部、例外制御部及びバス制御部を有し、前記例外制御部はサポート制御レジスタを有し、前記サポート制御レジスタは、データプロセッサのアドレス空間の一部に対するアクセスを不可能にすることを選択的に指示する指示情報の保持に利用され、前記バス制御部はデコーダを有し、前記デコーダは、前記サポート制御レジスタによって指示されたアクセス不可能なアドレスに対するアクセス要求を検出可能であり、前記命令実行制御部は、前記アクセス要求の検出に応答して、その要因に固有の要因コードを生成して保持させる。
【0032】
ソフトウェア実行中に将来的に非サポートアドレスとされる当該一部アドレスへのアクセスを利用していることを要因コードに基づいて検知することができる。一部のアドレスについて今回アクセス可能にされ又はアクセス形態が変更されたアドレスへのアクセスについても同様に検知することができる。
【0033】
〔7〕《特定の機能設定に対する非サポート》データプロセッサは、命令実行制御部、例外制御部及び前記命令実行制御部により機能制御レジスタに設定された制御情報に応ずる機能が選択されるその他の機能ブロックを有し、前記例外制御部はサポート制御レジスタを有し、前記サポート制御レジスタは、前記機能制御レジスタに対する一部の制御情報の設定を不可能にすることを選択的に指示する指示情報の保持に利用され、前記その他の機能ブロックはデコーダを有し、前記デコーダは、前記サポート制御レジスタにより設定不可能と指示された一部の制御情報の設定を検出可能であり、前記命令実行制御部は、前記設定不可能と指示された一部の制御情報の設定の検出に応答して、その要因に固有の要因コードを生成して保持させる。
【0034】
ソフトウェア実行中に将来的に非サポートとされる当該一部の機能の使用を要因コードに基づいて検知することができる。今回追加又は変更された機能の使用についても同様に検知することができる。
【0035】
〔8〕《外部端子の機能設定に対する非サポート》データプロセッサは、状態に応じた機能設定に用いられる外部端子を有する。前記一部の機能は前記外部端子を用いて設定される機能である。
【0036】
上記より、モード端子などの外部端子を用いて、将来的に非サポートとされる動作モード等が設定されたことを検知することができる。同様に、今回新たに追加又は変更された動作モードが設定されたこと等についても検知することができる。
【0037】
〔9〕《外部インタフェースの機能設定に対する非サポート》データプロセッサは、外部と接続可能な外部インタフェース回路を有する。前記一部の機能は前記外部インタフェース回路を用いる制御機能である。
【0038】
上記より、ソフトウェア実行中に将来的に非サポートとされる特定のコマンドインタフェース機能等の使用を要因コードに基づいて検知することができる。同様に、今回新たに追加又は変更されたコマンドインタフェース機能が使用されたこと等についても検知することができる。
【発明の効果】
【0039】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。
【0040】
上位互換のマイクロコンピュータに流用するソフトウェアに対して将来削除予定とされる機能の修正を促すことができる。すなわち、将来削除される予定の機能を利用したか否かを識別することができる。
【0041】
追加機能又は変更機能を有するマイクロコンピュータで既存ソフトウェアを流用するときに、追加機能又は変更機能が正常に動作しているかを容易に検証できる。すなわち、追加機能又は変更機能を利用したか否かを識別することができる。
【発明を実施するための最良の形態】
【0042】
《マイクロコンピュータ》
図1にはマイクロコンピュータ(MCU)1が例示される。同図に示されるマイクロコンピュータ1は、特に制限されないが、公知の半導体集積回路製造技術によって単結晶シリコンのような1個の半導体基板に半導体集積回路として形成される。
【0043】
マイクロコンピュータ1は、命令実行制御部としての中央処理装置(CPU)2、キャッシュメモリ(CACH_MRY)3、データバス・アドレスバス等のバス制御を行うバスステートコントローラ(BSC)7、データ転送処理を行うダイレクトメモリアクセスコントローラ(DMAC)8、及び内部回路と外部回路の転送制御を行う外部バスインタフェース回路(EXBIF)9を有する。中央処理装置2とキャッシュメモリ3とは、アドレスバス(ABUS1)及びデータバス(DBUS1)等を含む第1内部バス16によって接続される。前記バスステートコントローラ7は、アドレスバス(ABUS2)とデータバス(DBUS2)等を含む第2内部バス17を介して、キャッシュメモリ3、ダイレクトメモリアクセスコントローラ(DMAC)8、及び外部バスインタフェース回路9に接続される。更に、バスステートコントローラ7は、アドレスバス(ABUS3)及びデータバス(DBUS3)などを含む周辺バス18を介して各種周辺回路に結合される。外部バスインタフェース回路9にはマイクロコンピュータ1の外部と内部とに接続された外部バス19が接続される。また図示はしないが、第2内部バスには中央処理装置2で実行可能なプログラムを格納可能なリード・オンリー・メモリ(ROM)、中央処理装置2のワーク領域として利用可能なランダム・アクセス・メモリ(RAM)等の各種メモリが接続されていてもよい。
【0044】
更に、マイクロコンピュータ1は、電源端子Vcc及びグランド端子(回路の接地電位端子)GNDを有し、電源端子Vccはマイクロコンピュータ1内の各回路モジュールに対して動作電源を供給する。電源端子Vccから動作電源の供給が停止されると、中央処理装置2、キャッシュメモリ3等のマイクロコンピュータ1内の各回路モジュールへの動作電源の電源供給が断たれる。
【0045】
キャッシュメモリ3は、中央処理装置2で処理される命令を格納するための命令キャッシュ(ICACH)5、演算対象となるデータを格納するデータキャッシュ(DCACH)6、及びキャッシュメモリの制御を行うキャッシュコントローラ(CACH_CNT)4を含む。
【0046】
マイクロコンピュータ1に含まれる周辺回路は、例えば、クロック・パルス・ジェネレータ(CPG)11、例外制御部としての割り込みコントローラ(INTC)12、シリアル通信インタフェース(SCI)13、リアル・タイム・クロック(RTC)14、タイマ・ユニット(TMU)15等とされる。また、図示はしないが、ランダム・アクセス・メモリ(RAM)や不揮発性メモリ(ROM、Flashメモリ等)が内蔵されていてもよい。
【0047】
アドレスバス(ABUS4)とデータバス(DBUS4)等を含む外部バス19には、ランダム・アクセス・メモリ(RAM)や、リード・オンリー・メモリ(ROM)、フラッシュメモリ(Flash)などの外部メモリ(EXMRY)10、更に、特に図示はしないが、データの入出力装置、ディスプレイ装置等の周辺回路が接続される。
【0048】
中央処理装置2で実行される命令のアドレスは第1内部バス16を介してキャッシュメモリ3内の命令キャッシュ5に取り込まれる。命令キャッシュ5において当該アドレスに対応した命令が格納されている時は当該アドレスに対応した命令が中央処理装置2に転送され、転送された命令は中央処理装置2にフェッチされる。中央処理装置2内では、フェッチした命令を解読し、命令に応じてデータ演算処理等を行う。また、中央処理装置2でのデータ演算処理等に使用されるデータ用のアドレスは第1内部バス16を介してキャッシュメモリ3内のデータキャッシュ6に取り込まれる。データキャッシュ6において当該アドレスに対応したデータが格納されている時は当該アドレスに対応したデータが中央処理装置2に転送され、転送されたデータが中央処理装置2にフェッチされる。中央処理装置2は、フェッチしたデータをデータ演算処理等に用いる。中央処理装置2から供給されたアドレスに対応する命令またはデータがキャッシュメモリ3内に格納されていない場合、キャッシュコントローラ4の指示に従ってバスステートコントローラ7がメモリ10をアクセスし、それによって得られた命令やデータが、キャッシュメモリ3に格納されると共に中央処理装置2にフェッチされる。また、マイコロコンピュータが内部にメモリを有する場合には、内蔵メモリからアドレスに対応した命令またはデータを読み出しまたは書き込まれることが可能となる。
【0049】
前記マイクロコンピュータ1は、次期機種から一部の機能について上位互換を取りやめることが予定されているものを含む。将来上位互換を取りやめて非サポートとされる事項は、例えば(1)特定の命令に対する非サポート、(2)特定アドレスエリアに対するアクセス非サポート、(3)特定の機能設定に対する非サポート、(4)外部端子を用いて設定される機能の設定に対する非サポート、(5)外部インタフェース回路を用いる制御機能の使用に対する非サポート、の5種類とされる。マイクロコンピュータ1はソフトウェア実行中に将来的に非サポートとされる上記機能の使用を検知するハードウェアを有する。以下それらハードウェアについて詳細に説明する。
【0050】
《特定の命令に対する非サポート》
図2には特定の命令を選択的に非サポートとする構成が例示される。ここではCPU2とINTC12が例示される。CPU2は、代表的に示された命令実行部(IEXEC)21、命令デコーダ(IDEC)22、スタックレジスタ(STCREG)23を有する。命令実行部21は、特に図示はしないが、複数の汎用レジスタ、命令レジスタ、プログラムカウンタ、演算器、シーケンス制御部などを有する。シーケンス制御部は割り込み要求や例外要求などに応答し、また、分岐命令に応答して、命令実行手順の制御を行う。命令デコーダ22は命令レジスタにフェッチされた命令を解読して制御信号を生成する。スタックレジスタ23は割り込みや例外発生時のプログラムカウンタの値を保持する。INTC12は割り込みや例外の発生に対し所定の優先順位に従って割り込み要求や例外要求をCPU2に与える。INTC12は制御レジスタとして代表的に示されたサポート制御レジスタ(SCREG)24と例外要因レジスタ(ECFREG)25を有する。サポート制御レジスタ24はマイクロコンピュータ1の命令セットのうち一部の命令実行を不可能にすることを選択的に指示する命令サポート制御情報SIFIの保持に利用される。命令サポート制御情報SIFIはCPU2によるレジスタアクセスでサポート制御レジスタ24に書き込み可能にされる。前記命令デコーダ22は、前記命令サポート制御情報SIFIが第1の値のとき前記一部の命令に対して実行可能なデコードを行い、前記命令サポート制御情報SIFIが第2の値のとき前記一部の命令に対して他の例外要因と区別可能な例外要因コードECCDIを生成可能なデコードを行うと共に制御信号ECPIによって命令実行手順を所定の例外処理プログラムの実行に遷移させる。例外処理プログラムとは例外処理ルーチン若しくは例外ハンドラを意味する。例外要因コードECCDIが例外要因レジスタ25にセットされるとき、スタックレジスタ23にはそのときのプログラムカウンタの命令アドレスFADRが保持される。例えば前記例外処理プログラムは、例外要因レジスタ25の値をリードし、リードした例外要因コードECCDIを図示を省略するディスプレイに表示、或いは、スタックレジスタ23が保有する命令アドレスFADRと共に例外要因レジスタ25が保有する例外要因コードECCDIを外部メモリ10などに蓄積する処理を制御する。
【0051】
ここで、前記一部の命令が将来の非サポート命令であるとする。前記一部の命令が非サポート命令となる前は命令サポート制御情報SIFIに第1の値をセットしておけば当該一部の命令も正常に実行される。次期機種への対応を考慮する場合には前記命令サポート制御情報SIFIに第2の値をセットしておけば、ソフトウェア実行中に将来的に非サポートとされる当該一部の命令の使用を例外の発生によって検知することができる。また、例外要因レジスタ25は複数の例外要因コードECCDIを格納可能な構成となっていてもよい。
【0052】
《特定アドレスエリアに対するアクセス非サポート》
図3には特定アドレスエリアに対してアクセス非サポートとする構成が例示される。ここではCPU2、INTC12、及びBSC7が例示される。CPU2は図2と同様に代表的に示された命令実行部(IEXEC)21、命令デコーダ(IDEC)22、スタックレジスタ(STCREG)23を有する。INTC12は図2と同様に制御レジスタとして代表的に示されたサポート制御レジスタ(SCREG)24と例外要因レジスタ(ECFREG)25を有する。図3ではCPU2外部のBSC7で発生する例外事象について説明する関係上、例外要求制御部(ECCNT)31が図示されている。
【0053】
ここでは、前記サポート制御レジスタ24は、マイクロコンピュータ1のアドレス空間の一部のアドレスに対するアクセスを不可能にすることを選択的に指示するアドレスサポート制御情報SIFAの保持に利用される。アドレスサポート制御情報SIFAはCPU2によるレジスタアクセスでサポート制御レジスタ24に書き込み可能にされる。BSC7はアドレスデコーダ(ADEC)32を有する。アドレスデコーダ(ADEC)32は、CPU2から出力されるアクセスアドレスAADRやアクセスストローブ信号ASRBなどを入力してデコードする。このアドレスデコーダ(ADEC)32は、前記アドレスサポート制御情報SIFAが第1の値のとき前記一部のアドレスへのアクセス要求を許容する。前記アドレスサポート制御情報SIFAが第2の値のとき前記一部のアドレスへのアクセス要求に対してアドレスエラー信号AERRを例外要求制御部31に供給する。例外要求制御部31はアドレスエラー信号AERRに応答して、例外要求信号EXREQによってCPU2に例外処理を要求する。これに応答するCPU2は、命令実行手順を所定の例外処理プログラムの実行に遷移すると共に、他の例外要因と区別可能な例外要因コードECCDAを生成して例外要因レジスタ25にセットする。例外要因コードECCDAが例外要因レジスタ25にセットされるとき、スタックレジスタ23にはそのときのプログラムカウンタの命令アドレスFADRが保持される。例えば前記例外処理プログラムは、例外要因レジスタ25の値をリードし、リードした例外要因コードECCDAを図示を省略するディスプレイに表示、或いは、スタックレジスタ23が保有する命令アドレスFADRと共に例外要因レジスタ25が保有する例外要因コードECCDAを外部メモリ10などに蓄積する処理を制御する。
【0054】
ここで、前記一部のアドレスへのアクセスが将来の非サポートアドレスであるとする。前記一部のアドレスへのアクセスが非サポートとなる前はアドレスサポート制御情報SIFAに第1の値をセットしておけば当該一部のアドレスへのアクセスも許容される。次期機種への対応を考慮する場合には前記アドレスサポート制御情報SIFAに第2の値をセットしておけば、ソフトウェア実行中に将来的に非サポートアドレスとされる当該一部アドレスへのアクセスを利用していることを例外の発生によって検知することができる。
【0055】
《特定の機能設定に対する非サポート》
図4には特定の機能設定に対して非サポートとする構成が例示される。ここではCPU2、INTC12、BSC7及びTMU15が代表的に例示される。CPU2は図2と同様に代表的に示された命令実行部(IEXEC)21、命令デコーダ(IDEC)22、スタックレジスタ(STCREG)23を有する。INTC12は図3と同様に制御レジスタとして代表的に示されたサポート制御レジスタ(SCREG)24、例外要因レジスタ(ECFREG)25及び例外要求制御部(ECCNT)31を有する。前記TMU15は機能指定レジスタ(FREG)40に設定された機能指定情報FSIFに応ずる機能が選択される。例えば、タイマカウントアップや割込発生条件選択が行われる。
【0056】
ここでは、前記サポート制御レジスタ24は、前記機能指定情報FSIFによって設定可能な機能の一部の所定機能の設定を不可能にすることを選択的に指示する機能サポート制御情報SIFRの保持に利用される。機能サポート制御情報SIFRはCPU2によるレジスタアクセスでサポート制御レジスタ24に書き込み可能にされる。前記TMU15はデコーダ(DEC)41を有する。前記デコーダ41は、前記機能サポート制御情報SIFRが第1の値のとき前記機能指定レジスタ40に対する前記一部の所定の機能の指定を許容し、前記機能サポート制御情報SIFRが第2の値のとき前記機能指定レジスタ40への前記一部の所定の機能の指定に対してレジスタエラー信号RERRを例外要求制御部31に供給する。例外要求制御部31はレジスタエラー信号RERRに応答して、例外要求信号EXREQによってCPU2に例外処理を要求する。これに応答するCPU2は、命令実行手順を所定の例外処理プログラムの実行に遷移すると共に、他の例外要因と区別可能な例外要因コードECCDRを生成して例外要因レジスタ25にセットする。例外要因コードECCDRが例外要因レジスタ25にセットされるとき、スタックレジスタ23にはそのときのプログラムカウンタの命令アドレスFADRが保持される。例えば前記例外処理プログラムは、例外要因レジスタ25の値をリードし、リードした例外要因コードECCDRを図示を省略するディスプレイに表示、或いは、スタックレジスタ23が保有する命令アドレスFADRと共に例外要因レジスタ25が保有する例外要因コードECCDRを外部メモリ10などに蓄積する処理を制御する。
【0057】
ここで、前記一部の所定機能例えば一部のタイマカウントアップ条件が将来の非サポート機能であるとする。前記一部の所定機能が非サポートとなる前は機能サポート制御情報SIFRに第1の値をセットしておけば当該一部の所定機能も利用される。次期機種への対応を考慮する場合には前記機能サポート制御情報SIFRに第2の値をセットしておけば、ソフトウェア実行中に将来的に非サポートとされる当該一部の機能の使用を例外の発生によって検知することができる。
【0058】
例外要因コードECCDRが例外要因レジスタ25にセットされるとき、スタックレジスタ23にはそのときのプログラムカウンタの命令アドレスFADRが保持されることによって、非サポートとされる命令または機能を格納される命令アドレスを特定することが可能となり、ユーザがその命令の使用を回避することにより、将来的な非サポートとする機能の使用を予め回避することが可能となる。
【0059】
《外部端子を用いて設定される機能に対する非サポート》
図5には特定の外部端子を用いて設定される機能の設定を選択的に非サポートとする構成が例示される。ここではCPU2、INTC12、及びマイクロコンピュータ1全体の機能設定を制御するシステム制御部(SYSCNT)45が例示される。CPU2は図2と同様に代表的に示された命令実行部(IEXEC)21、命令デコーダ(IDEC)22、スタックレジスタ(STCREG)23を有する。INTC12は図2と同様に制御レジスタとして代表的に示されたサポート制御レジスタ(SCREG)24と例外要因レジスタ(ECFREG)25及び例外要求制御部(ECCNT)31を有する。前記システム制御部45は、モードデコーダ(MDEC)46を有する。このモードデコーダ46には、状態に応じた機能設定に用いられるモード端子MD0〜MD3を介して、機能設定を行うための制御信号が入力される。
【0060】
ここでは、前記サポート制御レジスタ24は、モード端子MD0〜MD3を用いて設定される機能のうち一部の所定機能を設定不可能にすることを選択的に指示する外部端子サポート制御情報SIFEの保持に利用される。外部端子サポート制御情報SIFEはCPU2によるレジスタアクセスでサポート制御レジスタ24に書き込み可能にされる。
【0061】
システム制御部45に含まれるモードデコーダ46は、上記モード端子MD0〜MD3から入力された制御信号をデコードし、このデコード結果を例えばモード設定信号48として周辺回路などに出力し、マイクロコンピュータ1全体のモード設定を指示する。このモードデコーダ46は、前記外部端子サポート制御情報SIFEが第1の値のとき前記一部の所定機能の設定要求を許容する。前記外部端子サポート制御情報SIFEが第2の値のとき前記一部の所定機能の設定要求に対して外部端子エラー信号EERRを例外要求制御部31に供給する。
【0062】
例外要求制御部31は外部端子エラー信号EERRに応答して、例外要求信号EXREQによってCPU2に例外処理を要求する。これに応答するCPU2は、命令実行手順を所定の例外処理プログラムの実行に遷移すると共に、他の例外要因と区別可能な例外要因コードECCDEを生成して例外要因レジスタ25にセットする。例外要因コードECCDEが例外要因レジスタ25にセットされるとき、スタックレジスタ23にはそのときのプログラムカウンタの命令アドレスFADRが保持される。例えば前記例外処理プログラムは、例外要因レジスタ25の値をリードし、リードした例外要因コードECCDEを図示を省略するディスプレイに表示、或いは、スタックレジスタ23が保有する命令アドレスFADRと共に例外要因レジスタ25が保有する例外要因コードECCDEを外部メモリ10などに蓄積する処理を制御する。
【0063】
ここで、前記一部の所定機能例えば一部の動作モードが将来の非サポート機能であるとする。前記一部の所定機能が非サポートとなる前は機能サポート制御情報SIFEに第1の値をセットしておけば当該一部の所定機能の設定も許容される。次期機種への対応を考慮する場合には前記機能サポート制御情報SIFEに第2の値をセットしておけば、モード端子MD0〜MD3などの外部端子を用いて、将来的に非サポートとされる動作モードが設定されたことを例外の発生によって検知することができる。
【0064】
《外部インタフェース回路を用いる制御機能に対する非サポート》
図6には外部インタフェース回路を用いる制御機能の使用を選択的に非サポートとする構成が例示される。ここではCPU2、INTC12、インタフェース制御部(IFCNT)50、及び外部デバイス(EXDVC)60が例示される。CPU2は図2と同様に代表的に示された命令実行部(IEXEC)21、命令デコーダ(IDEC)22、スタックレジスタ(STCREG)23を有する。INTC12は図2と同様に制御レジスタとして代表的に示されたサポート制御レジスタ(SCREG)24と例外要因レジスタ(ECFREG)25及び例外要求制御部(ECCNT)31を有する。インタフェース制御部50は図1の外部バスインタフェース回路9に対応する。インタフェース制御部50は外部バス19を介して外部デバイス60に接続される。前記インタフェース制御部50は前記バスステートコントローラ7による外部バスアクセス制御に従って外部バスサイクルの起動を制御する。その他に、ここでは、インタフェース制御部50は、外部から特定のアクセスコマンドを受け付けると、図示を省略するオンチップRAMに対する外部からのアクセスを許容するようになっている。図示を省略するオンチップRAMは例えば内部バスDBUS3,ABUS3に接続されている。
【0065】
ここでは、前記サポート制御レジスタ24は、インタフェース回路を用いる制御機能のうち一部の所定機能例えば前記特定のアクセスコマンドに対する応答機能を使用不可能にすることを選択的に指示する外部デバイスサポート制御情報SIFDの保持に利用される。外部デバイスサポート制御情報SIFDはCPU2によるレジスタアクセスでサポート制御レジスタ24に書き込み可能にされる。
【0066】
このインタフェース制御部50は、前記外部デバイスサポート制御情報SIFDが第1の値のとき前記特定のアクセスコマンドに対する応答機能の使用要求を許容する。前記外部デバイスサポート制御情報SIFDが第2の値のとき前記特定のアクセスコマンドに対する応答機能の使用要求に対して外部デバイスエラー信号DERRを例外要求制御部31に供給する。
【0067】
例外要求制御部31は外部デバイスエラー信号DERRに応答して、例外要求信号EXREQによってCPU2に例外処理を要求する。これに応答するCPU2は、命令実行手順を所定の例外処理プログラムの実行に遷移すると共に、他の例外要因と区別可能な例外要因コードECCDDを生成して例外要因レジスタ25にセットする。例外要因コードECCDDが例外要因レジスタ25にセットされるとき、スタックレジスタ23にはそのときのプログラムカウンタの命令アドレスFADRが保持される。例えば前記例外処理プログラムは、例外要因レジスタ25の値をリードし、リードした例外要因コードECCDDを図示を省略するディスプレイに表示、或いは、スタックレジスタ23が保有する命令アドレスFADRと共に例外要因レジスタ25が保有する例外要因コードECCDDを外部メモリ10などに蓄積する処理を制御する。
【0068】
ここで、前記一部の所定機能例えば一部の特定のコマンドインタフェース機能が将来の非サポート機能であるとする。前記一部の所定機能が非サポートとなる前は機能サポート制御情報SIFDに第1の値をセットしておけば当該一部の所定機能の使用も許容される。次期機種への対応を考慮する場合には前記機能サポート制御情報SIFDに第2の値をセットしておけば、ソフトウェア実行中に将来的に非サポートとされる特定のコマンドインタフェース機能などが利用されていることを例外の発生によって検知することができる。なお、上記一部の所定機能は、特定のコマンドインタフェース機能に限らず、例えばマイクロコンピュータ1がスレーブプロセッサであるとき、マスタプロセッサから与えられる特定の動作指示コマンドに対する応答機能であってもよい。
【0069】
上記マイクロコンピュータ1によれば、ソフトウェア実行中に将来的に非サポートとされる機能の使用や設定を検知するハードウェアを有するから、継続的に既存ソフトウェアを流用するユーザにソフトウェアの修正を促したり、次期機種にてトラブルが発生したときの問題切り分けに使用することができる。これにより、マイクロコンピュータのユーザには、そのハードウェアによって、将来的に非サポートとする機能を容易に検出できる手段を提供することができるから、次期マイクロコンピュータの設計では非サポート予定の機能を躊躇なく非サポートに変更することができ、互換性維持のためだけの過大な制御論理の搭載を止めるなどの設計のボトルネックを取り除くことができる。
【0070】
《スーパースカラによる特定の命令に対する非サポート》
図7にはCPUをスーパースカラとした場合に特定の命令を選択的に非サポートとする構成が例示される。ここではCPU2AとINTC12が例示される。CPU2Aは図2に示されたCPU2と異なり、内部に2系統のパイプライン制御系33A,33Bを有し、スーパースカラの構成を有する。即ち、CPU2Aは、命令デコーダ(IDEC)22Aと命令実行部(IEXEC)21Aとからなるパイプライン制御系33Aと、命令デコーダ22Bと命令実行部21Bとからなるパイプライン制御系33Bと、CPUリソース(CPURESC)34と、パイプライン制御部(PIPCNT)37と、命令シーケンス制御部(ISQCNT)70とを有する。CPURESC34は、演算器(ALU)35と、汎用レジスタ(GREG)36と、命令スタックレジスタ(STCREG)23とを有する。命令シーケンス制御部70は、命令発行制御部(IFCNT)71と、命令バッファ(IBUF)72とを有する。
【0071】
INTC12は図2と同様に制御レジスタとして代表的に示されたサポート制御レジスタ(SCREG)24と例外要因レジスタ(ECFREG)25を有する。命令シーケンス制御部70は、命令のプリフェッチを制御する。命令フェッチは、命令フェッチバス38を介して前記キャッシュアレイ3から行う。命令シーケンス制御部70は、プリフェッチした命令を順次命令バッファ72に蓄積する。CPUリソース34は、必要に応じてオペランドフェッチや演算結果の書込みを行なうときはオペランドフェッチバス39を用いる。命令フェッチバス38及びオペランドフェッチバス39は、図1において内部バス16によって総称されている。命令発行制御部71は、命令バッファ72に蓄積された命令(INST)と命令アドレス(IA)を、命令デコーダ22A,22Bに並列に供給する。命令デコーダ22A,22Bによるデコード結果はパイプライン制御部37に与えられて、双方のパイプラインにおける命令実行の依存性等が判定される。命令デコーダ22A,22Bによるデコード結果等は命令実行部21A,21Bにも与えられている。命令実行部21A,21Bは、パイプライン制御部37による判定結果に従って、CPUリソース34を用いた並列的な命令実行又は直列的な命令実行を制御する。
【0072】
ここでは、前記サポート制御レジスタ24は、図2と同様に代表的に示された命令サポート制御情報SIFIの保持に利用される。命令サポート制御情報SIFIはCPU2Aによるレジスタアクセスでサポート制御レジスタ24に書き込み可能にされる。前記命令デコーダ22A,22Bは、前記命令サポート制御情報SIFIが第1の値のとき前記一部の命令に対して実行可能なデコードを行う。前記命令デコーダ22A,22Bは、前記命令サポート制御情報SIFIが第2の値のとき前記一部の命令に対して他の例外要因と区別可能な例外要因コードECCDIを生成し、命令実行手順を所定の例外処理プログラムの実行に遷移させる。例外要因コードECCDIは、例外要因レジスタ25にセットされる。
【0073】
また、例外要因コードECCDIが例外要因レジスタ25にセットされるとき、スタックレジスタ23には、先に例外を発生させた命令の命令アドレスFADRが保持される。その制御は、パイプライン制御部37が行う。前記例外処理プログラムは、例外要因レジスタ25の値をリードし、リードした例外要因コードECCDIを図示を省略するディスプレイに表示、或いは、スタックレジスタ23が保有する命令アドレスFADRと共に例外要因レジスタ25が保有する例外要因コードECCDIを外部メモリ10などに蓄積する処理を制御する。
【0074】
ここで、前記一部の命令が将来の非サポート命令であるとする。前記一部の命令が非サポート命令となる前は命令サポート制御情報SIFIに第1の値をセットしておけば当該一部の命令も正常に実行される。次期機種への対応を考慮する場合には前記命令サポート制御情報SIFIに第2の値をセットしておけば、ソフトウェア実行中に将来的に非サポートとされる当該一部の命令の使用を例外の発生によって検知することができる。なお、パイプライン制御系33A,33Bの2系統に供給された双方の命令が将来の非サポート命令である場合にも対処できるように、例外要因レジスタ25は、夫々パイプライン制御系33A,33B双方からの要因コードを保存可能になっている。この場合にスタックレジスタ23に格納される命令アドレスは、先に例外を発生させた命令の命令アドレスとされる。
【0075】
上記により、マイクロコンピュータ1にスーパースカラを適用した場合であっても、ソフトウェア実行中に将来的に非サポートとされる機能の使用を検知することができる。
【0076】
《例外処理プログラムにおける履歴保存及び実行》
図8には例外処理プログラムを含む非サポート対象の利用情報を抽出する手順が例示される。まず、CPU2は、マイクロコンピュータ1のパワーオン(電源投入)時に、スタートアップルーチンを起動する(S1)。このスタートアップルーチンにおいて、CPU2は、自身の初期設定や周辺モジュール11〜15などの初期設定を行い(S2)、サポート制御レジスタ24を例えば非サポートに設定する(S3)。次に、CPU2は、アプリケーションプログラムを実行する(S4)。このアプリケーションプログラムにおいて、CPU2は、非サポート命令をフェッチしてデコードすると(S5)、前述のハードウェアの構成により例外処理要求が発生される(S6)。
【0077】
例外処理要求が発生されると、CPU2は、その例外処理要求と共に通知される例外要因コードに基づいて、例外に応じた分岐先が記されたベクタテーブルを参照する(S7)。例外要因が非サポート命令のデコードに基づくものであれば、ベクタテーブルで参照されたそれに対応する例外処理プログラムの実行に遷移する。別の要因であれば当該要因に応じた別の例外処理に遷移することになる(S8)。
【0078】
非サポート命令に対する例外処理は、当該要因発生に関する記録処理(S9)と、非サポート命令の追認的実行処理(S13)とに大別される。ステップS9の処理において、CPU2は、スタックレジスタ23に格納した図示を省略するプログラムカウンタの値を、LEDなどの表示装置に表示し(S10)、さらに、例外要因レジスタ25に格納した例外要因コードを、LEDなどに表示する(S11)。次に、CPU2は、スタックレジスタ23や例外要因レジスタ25を、マイクロコンピュータ1のワーク領域とされる外部メモリ10に格納する(S12)。このように、CPU2は、所定の例外処理プログラムの実行に遷移して、ステップS9の処理を実行することにより、例外要因コードとその例外要因となった命令アドレスを保存する制御が可能となる。したがって、マイクロコンピュータ1は、例外処理プログラムにて例外要因の履歴を保存することができる。
【0079】
さらに、CPU2は、ステップS9の後に、例外要因命令を実行する(S13)。ステップS13の処理において、CPU2は、まず、ステップS3の処理で非サポートに設定されたサポート制御レジスタ24をサポートに設定する(S14)。次に、CPU2は、例えば外部メモリ10等を用いて例外要因命令を実行し(S15)、スタックレジスタ23が保持する値(スタック)を例外要因命令の次命令に更新する(S16)。その後、CPU2は、サポート制御レジスタ24を非サポートに設定し(S17)、上記した例外処理プログラムを終了させて、アプリケーションプログラムに復帰して、次命令など通常の処理を行う。このように、CPU2は、ステップS9の処理で例外要因コードとその例外要因となった命令アドレスの保存を行った後、ステップS13の処理を実行することにより、例外要因となった命令を実行して、所定の例外処理プログラムの実行を終わらせることが可能である。したがって、マイクロコンピュータ1は、特定の命令である例外要因命令を実行しようとしていることを検知するだけでなく、この例外要因命令を完全に実行することも保証できるようになる。
【0080】
ここで、マイクロコンピュータ1は、ステップS7の処理で、ベクタテーブルを参照する方式を用いたが、これに限られず、例外の要因に関係なく、一定のアドレスへジャンプした後、例外処理プログラムにて例外処理要因コードを解析し、対応したルーチンへジャンプする方式を適用してもよい。また、スタックレジスタ23は、スタックポインタが示すアドレスにプログラムカウンタの値を格納する方式を適用してもよい。さらに、マイクロコンピュータ1は、スタックレジスタ23や例外要因レジスタ25に格納された内容をLEDなどで表示するだけで、履歴を保存しないときには、ステップS12の処理を不要とすることができる。
【0081】
また、マイクロコンピュータ1は、非サポート対象の利用情報を抽出する手順として、非サポート対象の命令を実行する前に例外処理プログラムの実行に遷移するようにしたが、これに限られず、非サポート対象の命令を実行した後に、例外処理プログラムの実行に遷移するようにしてもよい。また、例外処理によってプログラム実行を中止しても良い。この場合には、CPU2は、ステップS9の処理を行った後に、直ちに例外処理プログラムを終了させればよい。
【0082】
《既存機種にて新たに「サポート」とされた追加機能又は変更機能》
以上の説明では、将来の非サポート予定機能に対する利用を検出可能とした。将来の非サポート予定機能を、今回からの追加機能又は変更機能として把握すれば、上記と同じ様に、データプロセッサ等において今回からサポートされた追加機能又は変更機能に対する利用の検出にも適用可能になる。以下この観点による適用例を説明する。ここで考える機能は、上記非サポートの場合と同様の、例えば(1)特定の命令に対するサポート、(2)特定アドレスエリアに対するアクセスサポート、(3)特定の機能設定に対するサポート、(4)外部端子を用いて設定される機能の設定に対するサポート、(5)外部インタフェース回路を用いる制御機能の使用に対するサポート、の5種類とされる。マイクロコンピュータ1はソフトウェア実行中に既存機種から新たに追加又は変更された上記機能の使用を検知するハードウェアを有する。それらハードウェアについては、非サポート対象の利用情報を抽出することを実現した上記ハードウェアと比べると、サポート制御レジスタ24に保持される各種サポート制御情報に対する定義付けを変更すればよく、それ以外の論理実装は略同様となる。
【0083】
《特定の命令に対するサポート》
一部の命令が今回新たに追加又は変更された命令であり、この命令の実行をサポートとする場合には、マイクロコンピュータ1において、図2に示すサポート制御レジスタ24に保持される命令サポート制御情報SIFIを、追加又は変更された命令のサポートを示す情報と定義付けすればよい。これにより、マイクロコンピュータ1は、当該一部の命令が今回追加又は変更された命令である場合も、当該命令の実行を、上記した将来の非サポート命令を実行するときと同様に検知することができる。また、マイクロコンピュータ1に図7に代表的に示されるスーパースカラであるCPU2Aを適用した場合でも、命令サポート制御情報SIFIを上記のように定義付けすることにより、今回追加又は変更された命令の実行を同様に検知することができる。
【0084】
《特定アドレスエリアに対するアクセスサポート》
一部のアドレスについて今回アクセス可能にされ又はアクセス形態が変更され、上記追加又は変更に係るアドレスへのアクセスをサポートする場合には、マイクロコンピュータ1において、図3に示すアドレスサポート制御情報SIFAを、上記追加又は変更に係るエリアアドレスのサポートを示す情報と定義付けすればよい。これにより、マイクロコンピュータ1は、当該一部のアドレスが上記追加又は変更に係るアドレスである場合も、当該アドレスへのアクセスを、上記した将来の非サポートアドレスにアクセスするときと同様に検知することができる。
【0085】
《特定の機能設定に対するサポート》
一部の所定機能が今回追加又は変更された機能であり、この追加機能又は変更機能をサポートする場合には、マイクロコンピュータ1において、図4に示す機能サポート制御情報SIFRを、機能指定情報FSIFによって設定可能な機能を新たに追加又は変更した箇所のサポートを示す情報と定義付けすればよい。これにより、マイクロコンピュータ1は、当該一部の所定機能が今回追加又は変更された機能である場合も、当該所定機能の使用を、上記した将来の非サポート機能を使用するときと同様に検知することができる。
【0086】
《外部端子を用いて設定される機能に対するサポート》
モード端子などを用いて設定される動作モードなどの一部の機能が、今回追加又は変更された機能であり、この機能をサポートする場合には、マイクロコンピュータ1において、図5に示す外部端子機能サポート制御情報SIFEを、外部端子を用いて設定される機能を新たに追加又は変更した箇所のサポートを示す情報と定義付けすればよい。これにより、マイクロコンピュータ1は、例えば動作モードが今回追加又は変更された機能である場合も、この動作モードの設定を、上記した将来の非サポート機能を設定するときと同様に検知することができる。
【0087】
《外部インタフェース回路を用いる制御機能に対するサポート》
外部インタフェース回路を用いる特定のコマンドインタフェース機能などの一部の機能が、今回追加又は変更された機能であり、この機能をサポートする場合には、マイクロコンピュータ1において、図6に示す外部デバイスサポート制御情報SIFDを、外部インタフェース回路を用いる制御機能を新たに追加又は変更した箇所のサポートを示す情報と定義付けすればよい。これにより、マイクロコンピュータ1は、例えばコマンドインタフェース機能が今回追加又は変更された制御機能である場合も、このコマンドインタフェース機能の使用を、上記した将来の非サポート機能を使用するときと同様に検知することができる。
【0088】
即ち、上記マイクロコンピュータ1によれば、ソフトウェア実行中に、新たにサポートとされた追加機能又は変更機能の使用や設定を検知することができる。したがって、マイクロコンピュータ1は、追加機能又は変更機能による影響や不良具合がないかどうかを容易に検証したり、トラブルが発生したときに、デバッグ箇所や留意箇所の特定に使用することができる。
【0089】
以上、本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【0090】
例えば、以上の説明では非サポートの対象、又は新たにサポートとされた追加機能やサポート内容が変更された機能の対象を、一部の命令、特定アドレスアクセス、制御レジスタ設定、外部端子制御機能、バスインタフェース制御機能としたが、本発明はそれに限定されず適宜変更可能である。特定アドレスアクセスの非サポートの制御では、キャッシュメモリ3の命令キャッシュ(ICACH)5、データキャッシュ(DCACH)6を構成するキャッシュエントリをCPU2のアドレス空間にマッピングしてキャッシュエントリのパージやインバリデートなどを行うときのメモリ割付アクセスやキャッシュタグを用いた連想検索結果を用いる連想アクセスであってもよい。
【0091】
また、将来的に非サポートとする機能の検知には例外処理を利用したが、エミュレータモード時にはブレーク割り込みを発生されるようにしてもよい。要するに、将来的に非サポートとする機能の設定などをブレーク条件に設定する。また、将来的に非サポートとする機能の検知として、特別な非サポート例外を用意せず、出力端子を用いて通知したり、不当命令例外やアドレス例外とし、スタックより原因を解析して把握するようにしてもよい。本発明はマイクロコンピュータだけではなく、マイクロプロセッサ、アクセラレータ、システムLSIなどと称されるデータプロセッサに広く適用することができる。
【図面の簡単な説明】
【0092】
【図1】マイクロコンピュータのブロック図である。
【図2】図1のマイクロコンピュータにおいて特定の命令を選択的に非サポートとする構成を例示するブロック図である。
【図3】図1のマイクロコンピュータにおいて特定アドレスエリアに対してアクセス非サポートとする構成を例示するブロック図である。
【図4】図1のマイクロコンピュータにおいて特定の機能設定に対して非サポートとする構成を例示するブロック図である。
【図5】図1のマイクロコンピュータにおいて特定の外部端子を用いて設定される機能の設定を選択的に非サポートとする構成を例示するブロック図である。
【図6】図1のマイクロコンピュータにおいて外部インタフェース回路を用いる制御機能の使用を選択的に非サポートとする構成を例示するブロック図である。
【図7】図1のマイクロコンピュータにおいてCPUをスーパースカラとした場合に特定の命令を選択的に非サポートとする構成を例示するブロック図である。
【図8】マイクロコンピュータにより実行される例外処理プログラムを含む非サポート対象の利用情報を抽出する手順の一例を示すフローチャートである。
【符号の説明】
【0093】
1 マイクロコンピュータ
2 中央処理装置
3 キャッシュメモリ
6 データキャッシュメモリ
7 バスステートコントローラ
21 命令実行部(IEXEC)
22 命令デコーダ(IDEC)
23 スタックレジスタ(STCREG)
24 サポート制御レジスタ(SCREG)
25 例外要因レジスタ(ECFREG)
SIFI 命令サポート制御情報
ECCDI 例外要因コード
ECPI 制御信号
31 例外要求制御部(ECCNT)
SIFA アドレスサポート制御情報
32 アドレスデコーダ(ADEC)
33A,33B パイプライン制御系
34 CPUリソース(CPURESC)
35 演算器(ALU)
36 汎用レジスタ(GREG)
37 パイプライン制御部(PIPCNT)
AADR アクセスアドレス
ASRB アクセスストローブ信号
AERR アドレスエラー信号
ECCDA 例外要因コード
40 機能指定レジスタ(FREG)
FSIF 機能指定情報
SIFR 機能サポート制御情報
41 デコーダ(DEC)
45 システム制御部(SYSCNT)
46 モードデコーダ(MDEC)
MD0〜MD3 モード端子
RERR レジスタエラー信号
50 インタフェース制御部(IFCNT)
60 外部デバイス(EXDVC)
70 命令シーケンス制御部(ISQCNT)
71 命令発行制御部(IFCNT)
72 命令バッファ(IBUF)

【特許請求の範囲】
【請求項1】
命令の実行によって複数の機能をサポートするデータプロセッサであって、制御レジスタとデコーダを有し、
前記制御レジスタは、データプロセッサがサポートする機能のうち一部の機能を使用不可能にすることを選択的に指示する指示情報の保持に利用され、
前記デコーダは、前記制御レジスタによって使用不可能とされた一部の機能を利用しようとする操作を検出して、その検出結果を保持させる、データプロセッサ。
【請求項2】
命令実行制御部及び例外制御部を有するデータプロセッサであって、
前記例外制御部は第1の制御レジスタを有し、前記第1の制御レジスタはデータプロセッサで実行可能な命令セットのうち一部の命令を実行不可能にすることを選択的に指示する第1の情報の保持に利用され、
前記命令実行制御部は命令デコーダを有し、前記命令デコーダは、前記第1の情報が第1の値のとき前記一部の命令に対して実行可能なデコードを行い、前記第1の情報が第2の値のとき前記一部の命令に対して他の例外要因と区別可能な例外要因コードを生成可能なデコードを行うと共に命令実行を所定の例外処理プログラムの実行に遷移させる、データプロセッサ。
【請求項3】
前記命令実行制御部は中央処理装置であり、前記第1の制御レジスタは前記中央処理装置によってリード及びライト可能である請求項2記載のデータプロセッサ。
【請求項4】
前記例外制御部は、例外要因コードを保持する例外要因レジスタを有し、
前記命令実行制御部は、例外発生時にプログラムカウンタが保持している命令アドレスを保持するスタックレジスタを有する請求項3記載のデータプロセッサ。
【請求項5】
命令実行制御部、例外制御部及びバス制御部を有するデータプロセッサであって、
前記例外制御部は第1の制御レジスタを有し、前記第1の制御レジスタは、データプロセッサのアドレス空間の一部のアドレスに対するアクセスを不可能にすることを選択的に指示する第2の情報の保持に利用され、
前記バス制御部はアドレスデコーダを有し、前記アドレスデコーダは、前記第2の情報が第1の値のとき前記一部のアドレスへのアクセス要求を許容し、前記第2の情報が第2の値のとき前記一部のアドレスへのアクセス要求に対してアドレスエラー信号を生成し、
前記命令実行制御部は、前記アドレスエラー信号に応答して、他の例外要因と区別可能な例外要因コードを生成して命令実行を所定の例外処理プログラムの実行に遷移させる、データプロセッサ。
【請求項6】
前記第1の制御レジスタによって選択的にアクセス不可能にすることを指示することが可能なアドレス空間は、データプロセッサの内部アドレス空間と外部アドレス空間の双方である請求項5記載のデータプロセッサ。
【請求項7】
前記例外制御部は、例外要因コードを保持する例外要因レジスタを有し、
前記命令実行制御部は、例外発生時にプログラムカウンタが保持している命令アドレスを保持するスタックレジスタを有する請求項6記載のデータプロセッサ。
【請求項8】
命令実行制御部、例外制御部、及び前記命令実行制御部により機能指定レジスタに設定された機能指定情報に応ずる機能が選択されるその他の機能ブロックを有するデータプロセッサであって、
前記例外制御部は第1の制御レジスタを有し、前記第1の制御レジスタは、前記機能指定情報による一部の所定の機能設定を不可能にすることを選択的に指示する第3の情報の保持に利用され、
前記その他の機能ブロックはデコーダを有し、前記デコーダは、前記第3の情報が第1の値のとき前記機能指定レジスタへの前記一部の所定の機能の指定を許容し、前記第3の情報が第2の値のとき前記機能指定レジスタへの前記一部の所定の機能の指定に対してレジスタエラー信号を生成し、
前記命令実行制御部は、前記レジスタエラー信号に応答して、他の例外要因と区別可能な例外要因コードを生成して命令実行を所定の例外処理プログラムの実行に遷移させる、データプロセッサ。
【請求項9】
前記例外制御部は、例外要因コードを保持する例外要因レジスタを有し、
前記命令実行制御部は、例外発生時にプログラムカウンタが保持している命令アドレスを保持するスタックレジスタを有する請求項8記載のデータプロセッサ。
【請求項10】
命令実行制御部及び例外制御部を有するデータプロセッサであって、
前記例外制御部はサポート制御レジスタを有し、前記サポート制御レジスタは、データプロセッサで実行可能な命令セットのうち一部の命令を実行不可能にすることを選択的に指示する指示情報の保持に利用され、
前記命令実行制御部はデコーダを有し、前記デコーダは、前記サポート制御レジスタによって実行不可能と指示された一部の命令をデコードしたとき、その要因に固有の要因コードを生成して保持させる、データプロセッサ。
【請求項11】
命令実行制御部、例外制御部及びバス制御部を有するデータプロセッサであって、
前記例外制御部はサポート制御レジスタを有し、前記サポート制御レジスタは、データプロセッサのアドレス空間の一部に対するアクセスを不可能にすることを選択的に指示する指示情報の保持に利用され、
前記バス制御部はデコーダを有し、前記デコーダは、前記サポート制御レジスタによって指示されたアクセス不可能なアドレスに対するアクセス要求を検出可能であり、
前記命令実行制御部は、前記アクセス要求の検出に応答して、その要因に固有の要因コードを生成して保持させる、データプロセッサ。
【請求項12】
命令実行制御部、例外制御部及び前記命令実行制御部により機能制御レジスタに設定された制御情報に応ずる機能が選択されるその他の機能ブロックを有するデータプロセッサであって、
前記例外制御部はサポート制御レジスタを有し、前記サポート制御レジスタは、前記機能制御レジスタに対する一部の制御情報の設定を不可能にすることを選択的に指示する指示情報の保持に利用され、
前記その他の機能ブロックはデコーダを有し、前記デコーダは、前記サポート制御レジスタにより設定不可能と指示された一部の制御情報の設定を検出可能であり、
前記命令実行制御部は、前記設定不可能と指示された一部の制御情報の設定の検出に応答して、その要因に固有の要因コードを生成して保持させる、データプロセッサ。
【請求項13】
状態に応じた機能設定に用いられる外部端子を有し、前記一部の機能は前記外部端子を用いて設定される機能である請求項1記載のデータプロセッサ。
【請求項14】
外部と接続可能な外部インタフェース回路を有し、前記一部の機能は前記外部インタフェース回路を用いる制御機能である請求項1記載のデータプロセッサ。
【請求項15】
前記命令実行制御部は、前記所定の例外処理プログラムの実行に遷移することによって、前記例外要因コードとその例外要因となった命令アドレスを保存する制御が可能である請求項2記載のデータプロセッサ。
【請求項16】
前記命令実行制御部は、前記所定の例外処理プログラムの実行に遷移することによって、前記例外要因コードとその例外要因となった命令アドレスの保存を行った後、前記例外要因となった命令を実行して、前記所定の例外処理プログラムの実行を終わることが可能な請求項15記載のデータプロセッサ。
【請求項17】
前記一部の機能は、将来非サポートとされる可能性のある機能である請求項1記載のデータプロセッサ。
【請求項18】
前記一部の機能は、新たにサポートとされた追加機能である請求項1記載のデータプロセッサ。
【請求項19】
前記一部の機能は、サポート内容が変更された機能である請求項1記載のデータプロセッサ。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2006−221606(P2006−221606A)
【公開日】平成18年8月24日(2006.8.24)
【国際特許分類】
【出願番号】特願2005−198741(P2005−198741)
【出願日】平成17年7月7日(2005.7.7)
【出願人】(503121103)株式会社ルネサステクノロジ (4,790)
【Fターム(参考)】