(57)【要約】 【課題】  選択的な動作停止機能によって動作停止された内蔵回路の動作停止を動的に解除することができ、細かな低消費電力制御が可能なデータ処理装置を提供する。【解決手段】  命令を実行する中央処理装置（２）と、内部バス（１３，１４）を介して前記中央処理装置に結合された第１の回路（３，４）と、前記第１の回路の動作を選択的に停止させる停止制御回路（１２Ｃ）とを含む。中央処理装置は、停止制御回路から出力される停止制御信号（ＳＦＰＵ，ＳＭＬＴ）を入力し、第１の回路を用いる命令を解読するとき、前記停止制御信号が停止を指示している場合には停止制御回路による前記第１の回路の動作停止状態を解除してから当該命令の実行動作を開始させる命令制御手段（２Ｃ）を有する。【選択図】        図７
2004152321.tif 000002
【特許請求の範囲】
【請求項１】
命令を実行する中央処理装置と、内部バスを介して前記中央処理装置に結合された第１の回路と、前記第１の回路の動作を選択的に停止させる停止制御回路とを含み、前記停止制御回路は、前記中央処理装置によってアクセスされるクロック制御レジスタの値を停止制御信号として出力し、前記中央処理装置は、前記停止制御回路から出力される停止制御信号を入力し、前記第１の回路を用いる命令を解読するとき、前記停止制御信号が停止を指示している場合には前記停止制御回路による前記第１の回路の動作停止状態を解除してから当該命令の実行動作を開始させる命令制御手段を有して成るものであることを特徴とするデータ処理装置。
【請求項２】
前記第１の回路は、前記中央処理装置が浮動小数点処理命令を実行することによって制御されると共に、前記中央処理装置によってアドレッシング制御を受ける浮動小数点演算装置であることを特徴とする請求項１記載のデータ処理装置。
【請求項３】
前記第１の回路は、前記中央処理装置が積和演算処理命令を実行することによって制御されると共に、前記中央処理装置によってアドレッシング制御を受ける積和演算装置であることを特徴とする請求項１記載のデータ処理装置。
【請求項４】
命令を実行する中央処理装置と、内部バスを介して前記中央処理装置にインタフェースされ該中央処理装置のアドレシング制御及び演算制御を受ける演算装置と、前記内部バスに結合されたバスステートコントローラを介して前記中央処理装置とインタフェースされ該中央処理装置のアクセス制御を受ける周辺回路と、前記バスステートコントローラを外部に接続する外部バスインタフェース回路と、前記演算装置と周辺回路の動作を夫々選択的に停止可能な停止制御回路とを含み、前記停止制御回路は、前記中央処理装置によってアクセスされるクロック制御レジスタの値を停止制御信号として出力し、前記バスステートコントローラは前記停止制御回路から出力される前記停止制御信号のうち前記周辺回路のための第１の停止制御信号を入力し、第１の停止制御信号によって動作停止が指示されている周辺回路に対するアクセスを検出したとき当該周辺回路の動作停止状態を解除してから該周辺回路のためのバスサイクルを起動するものであることを特徴とするデータ処理装置。
【請求項５】
前記中央処理装置は、前記停止制御回路から出力される前記停止制御信号のうち、前記演算装置のための第２の停止制御信号を入力し、前記演算装置を用いる命令を解読するとき、前記第２の停止制御信号が停止を指示している場合には前記停止制御回路による当該演算装置の動作停止状態を解除してから当該命令の実行動作を開始させる命令制御手段を有して成るものであることを特徴とする請求項４記載のデータ処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、低消費電力化のために内蔵回路を選択的に動作停止させることができるデータ処理装置に係り、詳しくは動作停止状態の内蔵回路に対する命令が不当に若しくは誤って実行された時の誤動作を防止する技術、更には低消費電力制御を行なうための技術に関し、例えば、シングルチップマイクロコンピュータやシングルチップマイクロコントローラなどの半導体集積回路化されたデータ処理装置に適用して有効な技術に関するものである。
【背景技術】
【０００２】
データ処理装置の低消費電力化のために内蔵回路モジュールを選択的に動作停止させる技術が知られている。例えば、データ処理装置の内部動作クロック信号を形成するクロック信号発生回路に、コントロールレジスタが設けられ、このコントロールレジスタには内蔵回路モジュール毎に制御ビットが割り当てられ、制御ビットの論理値に従って、対応される内蔵回路モジュールに対するクロック信号の供給を選択的に停止させることができる。このような技術は、例えば特許文献１に記載がある。
【０００３】
【特許文献１】特開平７−２８７６９９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、低消費電力化のために内蔵回路モジュールを選択的に動作停止させたとき、当該内蔵モジュールに対する処理を行なう命令が不当に若しくは誤って実行されると、不当なメモリアクセス又はレジスタアクセスによって、データが破壊されたり誤動作を生じたりする虞の有ることが本発明者によって明らかにされた。
【０００５】
例えば、中央処理装置と共に浮動小数点演算装置やタイマなどが内蔵されたマイクロコンピュータにおいて、浮動小数点演算装置やタイマなどに対して個々に動作クロック信号の供給を選択的に停止できるようにされているとする。浮動小数点演算装置はデータレジスタを有し、このデータレジスタにメモリから演算データがロードされ、演算データはレジスタからメモリにストアされる。このとき、メモリとデータレジスタとの間のロード及びストア処理のためのアドレッシング動作を中央処理装置が行なうようにすることが、回路規模の増大を抑える上で優れている。中央処理装置と同様のアドレシングモードを浮動小数点演算装置が重ねて持つ必要はないからである。しかしながら、浮動小数点演算装置へのクロック信号の供給が停止されているとき、中央処理装置が不当に若しくは誤って浮動小数点命令を実行すると、浮動小数点演算装置のデータレジスタからメモリへのストア動作が不所望に行なわれる虞が有る。そうであれば、実際に浮動小数点演算装置は動作されないにも拘わらず、中央処理装置が実行するアドレシング動作によって、ストア先のメモリのデータが不所望に破壊されてしまう。また、特定の周辺回路へのクロック信号の供給が停止されているとき、中央処理装置が不当に若しくは誤って当該周辺回路のデータレジスタをソースとするストア命令を実行すると、周辺回路のデータレジスタからメモリへのストア動作が不所望に行なわれる。そうであれば、実際に周辺回路は動作されないにも拘わらず、中央処理装置が実行するアドレシング動作によって、ストア先のメモリのデータが不所望に破壊されてしまう。
【０００６】
また、本発明者は、マイクロコンピュータにおいて、選択的な動作停止機能によって動作停止された内蔵回路の動作停止を解除することについて検討した。従来技術では、動作を再開したいときは、予めコントロールレジスタの設定を変更しなければ、動作停止に係る内蔵回路を用いた命令を実行することはできない。したがって、必要な時、即座に、動作停止に係る内蔵回路の動作を再開する事ができない。
【０００７】
本発明の目的は、選択的な動作停止機能によって動作停止された回路が誤って動作されることによって生ずる不当なメモリアクセスを防止できるデータ処理装置を提供することにある。
【０００８】
本発明の別の目的は、選択的な動作停止機能によって動作停止された内蔵回路の動作停止を動的に解除することができ、細かな低消費電力制御が可能なデータ処理装置を提供することにある。
【０００９】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１０】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【００１１】
〔１〕本発明の第１の観点によるデータ処理装置（１）は、命令を実行する中央処理装置（２）と、内部バス（１３，１４）を介して前記中央処理装置に結合された第１の回路（３，４）と、前記第１の回路の動作を選択的に停止させる停止制御回路（１２）とを含み、前記中央処理装置は、前記停止制御回路から出力される停止制御信号（ＳＦＰＵ，ＳＭＬＴ）を入力し、前記第１の回路を用いる命令を解読するとき、前記停止制御信号が停止を指示していることを条件に、前記第１の回路を用いる命令を不当命令又は無効命令として処理する命令制御手段（２Ｂ）を有する。これにより、内蔵回路の動作停止機能によって動作停止が選択された第１回路が誤って動作されることになるような命令は、不当命令又は無効命令として処理される結果、不当なメモリアクセスの発生を防止できる。無効命令化された時、中央処理装置は次の命令を実行する。不当命令化された時、中央処理装置は例外処理に分岐し、ユーザなどによって定義された例外処理ルーチンを実行することになる。
【００１２】
〔２〕本発明の第２の観点によるデータ処理装置（１Ｃ）は、命令を実行する中央処理装置（２）と、内部バス（１３，１４）を介して前記中央処理装置に結合された第１の回路（３，４）と、前記第１の回路の動作を選択的に停止させる停止制御回路（１２Ｃ）とを含み、前記中央処理装置は、前記停止制御回路から出力される停止制御信号（ＳＦＰＵ，ＳＭＬＴ）を入力し、前記第１の回路を用いる命令を解読するとき、前記停止制御信号が停止を指示している場合には前記停止制御回路による前記第１の回路の動作停止状態を解除してから当該命令の実行動作を開始させる命令制御手段（２Ｃ）を有する。これにより、内蔵回路の動作停止機能によって動作停止が選択された第１回路が動作されることになるような命令が実行されると、第１回路の動作停止状態が解除される。この結果、内蔵回路の動作停止を動的に解除することができ、細かな低消費電力制御が可能になる。
【００１３】
〔３〕上記第１及び第２の観点において、前記第１の回路は、例えば、前記中央処理装置が浮動小数点処理命令を実行することによって制御されると共に前記中央処理装置によってアドレッシング制御を受ける浮動小数点演算装置（３）とする事ができる。また、前記第１の回路は、前記中央処理装置が積和演算処理命令を実行することによって制御されると共に前記中央処理装置によるアドレッシング制御を受けて動作される積和演算装置（４）とすることができる。
【００１４】
〔４〕本発明の第３の観点によるデータ処理装置（１）は、命令を実行する中央処理装置（２）と、内部バス（１３，１４）を介して前記中央処理装置にインタフェースされ該中央処理装置のアドレシング制御及び演算制御を受ける演算装置（３，４）と、前記内部バスに結合されたバスステートコントローラ（６）を介して前記中央処理装置とインタフェースされ該中央処理装置のアクセス制御を受ける周辺回路（９，１０，１１）と、前記バスステートコントローラを外部に接続する外部バスインタフェース回路（８）と、前記演算装置と周辺回路の動作を夫々選択的に停止可能な停止制御回路（１２）とを含み、前記バスステートコントローラは前記停止制御回路から出力される前記周辺回路のための第１の停止制御信号（ＳＳＣＩ，ＳＴＭＲ，ＳＡＤＣ）を入力し、第１の停止制御信号によって動作停止が指示されている周辺回路に対するアクセスを検出したときバスエラー信号（２４）を中央処理装置による例外処理要求信号として出力する。これにより、内蔵周辺回路の動作停止機能によって動作停止が選択された周辺回路が誤って動作されることになるような命令が実行された時はバスエラーとされ、それに対する例外処理が行なわれる。したがって、不当なメモリアクセスの発生を防止できる。
【００１５】
〔５〕前記〔４〕において、前記中央処理装置は、前記停止制御回路から出力される前記演算装置のための第２の停止制御信号（ＳＦＰＵ，ＳＭＬＴ）を入力し、前記演算装置を用いる命令を解読するとき、前記第２の停止制御信号が停止を指示していることを条件に、前記演算装置を用いる命令を不当命令又は無効命令として処理する命令制御手段（２Ｂ）を有することができる。これにより、内蔵回路の動作停止機能によって動作停止が選択された演算装置が誤って動作されることになるような命令は、不当命令又は無効命令として処理される結果、不当なメモリアクセスなどの発生を防止できる。
【００１６】
〔６〕本発明の第４の観点によるデータ処理装置（１Ｃ）は、命令を実行する中央処理装置（２）と、内部バス（１３，１４）を介して前記中央処理装置にインタフェースされ該中央処理装置のアドレシング制御及び演算制御を受ける演算装置（３，４）と、前記内部バスに結合されたバスステートコントローラ（６Ｃ）を介して前記中央処理装置とインタフェースされ該中央処理装置のアクセス制御を受ける周辺回路（９，１０，１１）と、前記バスステートコントローラを外部に接続する外部バスインタフェース回路（８）と、前記演算装置と周辺回路の動作を夫々選択的に停止可能な停止制御回路（１２Ｃ）とを含み、前記バスステートコントローラ（６Ｃ）は前記停止制御回路から出力される前記周辺回路のための第１の停止制御信号（ＳＳＣＩ，ＳＴＭＲ，ＳＡＤＣ）を入力し、第１の停止制御信号によって動作停止が指示されている周辺回路に対するアクセスを検出したとき当該周辺回路の動作停止状態を解除してから該周辺回路のためのバスサイクルを起動する。これにより、内蔵周辺回路の動作停止機能によって動作停止が選択された周辺回路が動作されるとき、当該周辺回路の動作停止状態が解除される。この結果、内蔵周辺回路の動作停止を動的に解除することができ、細かな低消費電力制御が可能になる。
【００１７】
〔７〕上記〔６〕において、前記中央処理装置は、前記停止制御回路から出力される前記演算装置のための第２の停止制御信号（ＳＦＰＵ，ＳＭＬＴ）を入力し、前記演算装置を用いる命令を解読するとき、前記第２の停止制御信号が停止を指示している場合には前記停止制御回路による当該演算装置の動作停止状態を解除してから当該命令の実行動作を開始させる命令制御手段（２Ｃ）を有することができる。これにより、内蔵回路の動作停止機能によって動作停止が選択された演算装置が動作されるとき、演算装置の動作停止状態が解除される。この結果、内蔵回路の動作停止を動的に解除することができ、細かな低消費電力制御が可能になる。上記〔６〕において、前記中央処理装置は、前記停止制御回路から出力される前記演算装置のための第２の停止制御信号を入力し、前記演算装置を用いる命令を解読するとき、前記第２の停止制御信号が停止を指示していることを条件に、前記演算装置を用いる命令を不当命令又は無効命令として処理する命令制御手段を有することができる。これにより、動作停止が選択された演算装置を動作させる命令に対しては、これを不当命令又は無効命令として処理する事によって、不当なメモリアクセスなどの発生を防止し、内蔵周辺回路に対しては動作停止を動的に解除することができる。
【発明の効果】
【００１８】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。
【００１９】
すなわち、データ処理装置において選択的な動作停止機能によって動作停止された回路が誤って動作されることによって生ずる不当なメモリアクセスを防止できる。また、データ処理装置において選択的な動作停止機能によって動作停止された内蔵回路の動作停止を動的に解除することができ、細かな低消費電力制御を行なうことができる。
【発明を実施するための最良の形態】
【００２０】
《無効命令化（不当命令化）、バスエラー化によるメモリ保護》
図１には本発明に係るデータ処理装置の第１の例としてシングルチップマイクロコンピュータ（マイクロコンピュータと称する）１が示される。同図に示されるマイクロコンピュータ１は、特に制限されないが、公知の半導体集積回路製造技術によって単結晶シリコンのような１個の半導体基板（半導体チップ）に形成される。このマイクロコンピュータ１は、特に制限されないが、整数演算を行なう中央処理装置（ＣＰＵ）２と共に、浮動小数点演算を行なう浮動小数点演算装置（ＦＰＵ）３を有する。更に、ディジタル信号処理で多用される積和演算に特化した積和演算装置４を有する。
【００２１】
中央処理装置２は内部アドレスバス１４及び内部データバス１３に結合される。中央処理装置２は、特に制限されないが、汎用レジスタや算術論理演算器で代表される演算部２Ａと、プログラムカウンタなどの制御用レジスタ群、そして命令のフェッチや解読並びに命令実行手順を制御したり演算制御を行う命令制御部２Ｂなどを有する。中央処理装置２は、外部バス１７，１８に接続された図示を省略する外部メモリもしくは内部バス１３，１４に接続された図示を省略する内部メモリから命令をフェッチし、その命令を解読し、解読結果に応ずる制御信号を生成することにより、当該命令に応じたデータ処理を行う。
【００２２】
浮動小数点演算装置（ＦＰＵ）３及び積和演算装置４は内部データバス１３に結合される。浮動小数点演算装置（ＦＰＵ）３及び積和演算装置４は図示を省略する演算回路と共にデータレジスタを有し、このデータレジスタにメモリから演算データがロードされ、演算結果データは、そのレジスタからメモリにストアされる。前記ロード、ストアなどのためのアドレッシング動作はＣＰＵ２が行なう。したがって、ＦＰＵ３及び積和演算装置４はメモリアクセスのためのメモリアドレシング能力を備える必要はない。これは、ＦＰＵ３及び積和演算装置４によるメモリアドレシング回路の必要性を取り除いてチップ面積を節約するためである。
【００２３】
内部データバス１３及び内部アドレスバス１４はバスステートコントローラ６に結合される。マイクロコンピュータ１による外部アクセスは、前記バスステートコントローラ６に接続された外部バスインタフェース回路８で行う。外部バスインタフェース回路８は外部データバス１８及び外部アドレスバス１７に接続される。また、前記バスステートコントローラ６には、周辺データバス１６及び周辺アドレスバス１５を介して、例えば、クロック発生回路７、システムコントローラ１２、シリアルコミュニケーションインタフェースコントローラ（ＳＣＩ）９、タイマ１０及びＡ／Ｄコンバータ１１が結合される。それら周辺回路はデータレジスタや制御レジスタを有し、斯かるレジスタは前記バスステートコントローラ６を介してＣＰＵ２によってアクセスされる。
【００２４】
ＣＰＵ２が管理する内部メモリ空間、外部メモリ空間、前記ＳＣＩ９，タイマ１０，Ａ／Ｄコンバータ１１などの周辺回路に対するアドレスエリアの割り当ては予め決定されている。前記バスステートコントローラ６は、アクセスエリア毎にアクセスサイクル数やバス幅などがＣＰＵ２によって設定される図示を省略するバスコントロールレジスタを有し、ＣＰＵ２からのアクセスアドレスで指定されるメモリエリアに対するバス幅やアクセスサイクル数などのバス制御を行なって、バスサイクルを起動する。ＣＰＵ２からのアクセスの指示はバスコマンド２３としてバスステートコントローラ６に与えられる。バスコマンド２３にはアクセスサイズの指定や、リード、ライト、メモリアクセス等のストローブ信号が含まれる。
【００２５】
割込みコントローラ５は複数の割込み要求に対する優先制御やマスク制御などを行なって割込み信号２５をＣＰＵ２に与える。割込み要求は、バスステートコントローラ６からのバスエラー信号２４のほか、ＳＣＩ９、タイマ１０、Ａ／Ｄコンバータ１１そして外部からの図示を省略する割込み要求信号によって与えられる。
【００２６】
前記マイクロコンピュータ１は、特に制限されないが、クロック発生回路７から出力されるクロック信号ＣＬＫ０〜ＣＬＫ２に同期動作される。クロック信号ＣＬＫ０は、ＣＰＵ２、積和演算装置４，図示を省略する内部メモリ、ＦＰＵ３の夫々に含まれる図示を省略するクロックドライバに供給され、それらＣＰＵ２、積和演算装置４，ＦＰＵ３、図示を省略する内部メモリの動作基準クロック信号とされる。クロック信号ＣＬＫ１は外部アクセスのための同期クロック信号とされ、外部バスインタフェース回路８の図示を省略するクロックドライバに供給される。クロック信号ＣＬＫ２はＳＣＩ９、タイマ１０、Ａ／Ｄ１１の図示を省略するクロックドライバに供給され、それらＳＣＩ９、タイマ１０、Ａ／Ｄ１１の同期クロック信号とされる。バスステートコントローラ６は、内部バス１３，１４に対する入出力動作を前記クロック信号ＣＬＫ０に同期させ、周辺バス１５，１６に対する入出力動作を前記クロック信号ＣＬＫ３に同期させ、外部バスインタフェース回路８を介する入出力動作を前記クロック信号ＣＬＫ２に同期させる。尚、そのほかの回路にも図示を省略する動作クロック信号が供給されることはいうまでもない。
【００２７】
前記システムコントローラ１２はマイクロコンピュータ１の内蔵モジュールに対する動作停止を制御する。すなわち、システムコントローラ１２は、ＣＰＵ２によってアクセスされるクロック停止制御レジスタ１２Ｒを有し、同レジスタ１２Ｒにはクロック制御ビットＳＦＰＵ，ＳＭＬＴ，ＳＳＣＩ，ＳＴＭＲ，ＳＡＤＣが割り当てられる。クロック制御ビットＳＦＰＵ，ＳＭＬＴ，ＳＳＣＩ，ＳＴＭＲ，ＳＡＤＣは、前記ＦＰＵ３，積和演算装置４，ＳＣＩ９，タイマ１０，Ａ／Ｄコンバータ１１に内蔵された図示を省略するクロックドライバの制御端子に供給され、それがセット状態（論理値“１”）にされることにより、対応する内蔵モジュールのクロックドライバの出力を一定レベルに固定し、その内蔵モジュールの動作を停止させる。リセット状態（論理値“０”）では対応するクロックドライバのクロック出力動作を可能にし、対応する内蔵モジュールを動作可能にする。
【００２８】
図２には無効命令化（不当命令化）によるメモリ保護のための構成を抜粋してある。無効命令化（不当命令化）によるメモリ保護のために、前記クロック制御ビットＳＦＰＵ，ＳＭＬＴは前記ＣＰＵ２にも供給されている。それによってＣＰＵ２の命令制御部２Ｂは、ＦＰＵ３を用いる命令を解読する時、クロック制御ビットＳＦＰＵがセット状態であることを条件に、当該命令を不当命令又は無効命令として処理する。同様にＣＰＵ２の命令制御部２Ｂは、積和演算装置４を用いる命令を解読する時、クロック制御ビットＳＭＬＴがセット状態であることを条件に、当該命令を不当命令又は無効命令として処理する。前記無効命令は所謂ＮＯＰ（ノンオペレーション）であり、次の命令が実行されることになる。不当命令は所謂未定義命令であり、現在処理中の命令実行が中断され、ユーザが定義した例外処理ルーチンで規定される処理に分岐される。何れの場合においても、そのとき、上記ＦＰＵ３、積和演算装置４を用いる命令の実行は中止される。したがって、ＦＰＵ３や積和演算装置４の動作が停止されている時、それらを用いる命令が誤って若しくは不当に実行される結果、不当にメモリアクセスが行なわれてデータ破壊を生ずる虞を未然に防止する事ができる。
【００２９】
図３にはバスエラーを発生させてメモリ保護を行なうための構成を抜粋してある。バスエラーを発生させてメモリ保護を行なうために、クロック制御ビットＳＳＣＩ，ＳＴＭＲ，ＳＡＤＣは前記バスステートコントローラ６にも供給されている。それによってバスステートコントローラ６は、クロック制御ビットＳＳＣＩ，ＳＴＭＲ，ＳＡＤＣによって動作停止が指示されている周辺回路に対するアクセスを検出したときバスエラー信号２４を割込みコントローラ５に出力する。これに従って割込みコントローラ５は割込み信号２５をＣＰＵ２にアサートし、ＣＰＵ２はその例外要因（バスエラー）に従った例外処理を行なう。ここで、例外処理は、実行中の処理を中断し、例外処理を行なった後中断した処理に復帰しない第１の例外処理と、実行中の処理を中断し、例外処理を行なった後、中断した処理に復帰する第２の例外処理とがあるが、バスエラーに対する例外処理は第１の例外処理の範疇に属する。これにより、ＳＣＩ９などの周辺回路の動作が停止されている時、それらを用いる命令が誤って若しくは不当に実行される結果、不当にメモリアクセスが行なわれてデータ破壊を生ずる虞を未然に防止する事ができる。
【００３０】
前記ＣＰＵ２による不当命令化又は無効命令化によるメモリ保護のための具体的な構成を更に説明する。ＣＰＵ２の命令は、特に制限されないが、１６ビット固定長命令とされ、その特定のフィールド、例えば最上位側から４ビットは命令の種類を大別するコードとされる。その種類値は、例えば、論理演算命令、シフト命令、分岐命令、システム制御命令、浮動小数点命令、積和演算命令などである。ちなみに浮動小数点命令の前記最上位側４ビットは“１１１１”にされる。積和演算命令の前記最上位側４ビットは“００１１”にされる。尚、斯かる最上位側４ビットはその他の所定フィールドの命令コードと共にオペレーションコードを構成する。また、命令がオペランドの指定フィールドを有するとき、それは、アドレシングモードに従ってレジスタアクセス或いは命令アクセス対象とされるアドレス領域を指定する。
【００３１】
図４には前記命令制御部２Ｂの概略的な構成が示される。命令制御部２Ｂはプリデコーダ２００とハードワイヤードロジック２０１を有する。ハードワイヤードロジック２０１は、論理演算制御論理、分岐処理制御論理、浮動小数点演算制御論理、積和演算制御論理、不当命令制御論理、無効命令（ＮＯＰ）制御論理等を有し、命令に応じた処理を実現するための制御信号を出力するための論理構成を備える。プリデコーダ２００には、命令コード及び前記クロック制御ビットＳＦＰＵ，ＳＭＬＴ，ＳＳＣＩ，ＳＴＭＲ，ＳＡＤＣなどが供給される。プリデコーダ２００は命令コードを解読し、解読結果に応ずるエントリ指定データをハードワイヤードロジック２０１に出力する。ハードワイヤードロジック２０１はそのエントリ指定データで指定される論理を選択して、各種制御信号を出力する。２０、２１，２２で示される制御信号は、積和演算装置４、ＦＰＵ３、ＣＰＵ２の演算部２Ａへ供給される制御信号を代表的に示したものである。
【００３２】
このとき、プリデコーダ２００は前記クロック制御ビットＳＦＰＵ，ＳＭＬＴ，ＳＳＣＩ，ＳＴＭＲ，ＳＡＤＣを参照し、前記不当命令化又は無効命令化の処理を行なう。
【００３３】
図５には前記無効命令化の処理を行なうための論理構成の一例が示される。プリデコーダ２００は命令コードの最上位側４ビットをデコーダ２１０でデコードする。デコーダ２１０は入力される４ビットが“１１１１”である時（浮動小数点命令である）、ＦＰＵ命令検出信号２１１をハイレベルにアサートし、“００１１”である時（積和演算命令である）、積和演算命令検出信号２１２をハイレベルにアサートする。信号２１１，２１２は夫々前記クロック制御ビットＳＦＰＵ，ＳＭＬＴと論理積（ＡＮＤ）が採られ、双方の論理積信号２１３，２１４は論理和（ＯＲ）が採られる。論理和信号２１５はセレクタ２１６の選択信号とされる。セレクタ２１６は無効命令（ＮＯＰ）の命令コードを固定値として発生する回路２１７から出力される無効命令コード２１８又はＣＰＵ２がフェッチして実行すべき命令コード２１９を選択する。論理和信号２１５がハイレベルの時、即ち、クロック制御ビットＳＦＰＵ，ＳＭＬＴによってＦＰＵ３，積和演算装置４のクロック信号が停止されているとき、ＦＰＵ命令，ＭＬＴ命令を実行しようとすると、セレクタ２１６は無効命令コード２１８を選択する。セレクタ２１６で選択された命令コードはプリデコード論理２２０でデコードされる。これによって、ＦＰＵ３，積和演算装置４のクロック停止状態ではＦＰＵ命令，ＭＬＴ命令が無効命令化される。尚、不当命令として処理するときは、回路２１７の代わりに不当命令コードを発生する回路を採用すればよい。
【００３４】
図６にはバスステートコントローラ６がメモリ保護のためにバスエラーを発生されるための信号生成論理が例示されている。バスコントローラ６は、ＣＰＵ２から供給されるアドレス信号をデコードして周辺回路ＳＣＩ９，タイマ１０，Ａ／Ｄコンバータ１１に対するアクセスを検出可能なアドレスデコーダ６００を有する。このアドレスデコーダ６００のデコード論理は前記周辺回路のマッピングアドレスに従って決定されている。信号６０１はＳＣＩ９に対するアクセス検出信号、６０２はタイマ６０２に対するアクセス検出信号、６０３はＡ／Ｄコンバータ１１に対するアクセス検出信号であり、アクセスが検出される事によってハイレベルにされる。夫々のアクセス検出信号６０１，６０２，６０３はクロック制御ビットＳＳＣＩ，ＳＴＭＲ，ＳＡＤＣと論理積が採られ、夫々の論理積信号に対する論理和信号が前記バスエラー信号２４とされる。したがって、バスエラー信号２４は、クロック制御ビットＳＳＣＩ，ＳＴＭＲ，ＳＡＤＣによってＳＣＩ９，タイマ１０，Ａ／Ｄコンバータ１１のクロック信号が停止されているとき、クロック停止されている周辺回路をアクセスする命令が実行されると、バスエラー信号２４がアサートされる。これによって、当該周辺回路をアクセスする命令実行が中断され、例外処理に分岐される。その結果として、メモリのデータ破壊が防止される。
【００３５】
《クロック停止の動的解除》
図７には本発明に係るデータ処理装置の第２の例としてシングルチップマイクロコンピュータ（マイクロコンピュータと称する）１Ｃが示される。同図に示されるマイクロコンピュータ１Ｃは、特に制限されないが、公知の半導体集積回路製造技術によって単結晶シリコンのような１個の半導体基板（半導体チップ）に形成される。同図に示されるマイクロコンピュータ１Ｃは、クロック信号の停止されている回路モジュールを操作する命令を実行するとき、若しくはそのようなモジュールに対するアクセスが発生するとき、それに応じて当該回路モジュールのクロック停止状態を動的に解除可能にしたものである。
【００３６】
図７に示されるマイクロコンピュータ１Ｃは、図１に示されるマイクロコンピュータ１に対して、命令制御部２Ｃ、バスステートコントローラ６Ｃ、及びシステムコントローラ１２Ｃの構成が相違される。その他の構成は図１と同じである。
【００３７】
システムコントローラ１２Ｃのクロック制御ビットＳＦＰＵ，ＳＭＬＴ，ＳＳＣＩ，ＳＴＭＲ，ＳＡＤＣは、ＣＰＵ２によるバスアクセス以外に、クリア信号ＣＬＲ０〜ＣＬＲ４でリセット可能にされる。クリア信号ＣＬＲ０〜ＣＬＲ４はクロック制御ビットＳＦＰＵ，ＳＭＬＴ，ＳＳＣＩ，ＳＴＭＲ，ＳＡＤＣに対応され、そのハイレベルがリセットを指示する。クリア信号ＣＬＲ０，ＣＬＲ１は命令制御部２Ｃが生成し、クリア信号ＣＬＲ２〜ＣＬＲ４はバスコントローラ６Ｃが生成する。
【００３８】
図８にはクロック停止状態をＣＰＵ２の制御で動的に解除するための構成を抜粋してある。クロック停止状態の動的解除のために、前記クロック制御ビットＳＦＰＵ，ＳＭＬＴは前記ＣＰＵ２にも供給されている。それによってＣＰＵ２の命令制御部２Ｃは、ＦＰＵ命令を解読する時、クロック制御ビットＳＦＰＵがセット状態である場合にはクリア信号ＣＬＲ０でクロック制御ビットＳＦＰＵをリセット状態にしてＦＰＵ３を動作可能とし、その後で、当該命令の実行動作を開始させる。同様にＣＰＵ２の命令制御部２Ｃは、積和演算命令を解読する時、クロック制御ビットＳＭＬＴがセット状態である場合にはクリア信号ＣＬＲ１でクロック制御ビットＳＭＬＴをリセット状態にして積和演算装置４を動作可能とし、その後で、当該命令の実行動作を開始させる。
【００３９】
図９にはＣＰＵ２がクロック停止状態を動的に解除するための論理構成の一例が示される。プリデコーダ２００Ｃは命令コードの最上位側４ビットをデコーダ２１０でデコードする。デコーダ２１０は入力される４ビットが“１１１１”である時（浮動小数点命令）ＦＰＵ命令検出信号２１１をハイレベルにアサートし、“００１１”である時（積和演算命令）ＭＬＴ命令検出信号２１２をハイレベルにアサートする。信号２１１，２１２は夫々前記クロック制御ビットＳＦＰＵ，ＳＭＬＴと論理積（ＡＮＤ）が採られ、論理積信号がクリア信号ＣＬＲ０，ＣＬＲ１としてシステムコントローラ１２Ｃに供給される。ハードワイヤードロジック２０１Ｃは、クリア信号ＣＬＲ０，ＣＬＲ１に対応するクロック制御ビットＳＦＰＵ、ＳＭＬＴがリセット状態にされるのを待って、制御信号の出力動作を開始する。これにより、クロック制御ビットＳＦＰＵ，ＳＭＬＴによってＦＰＵ３，積和演算装置４のクロック信号が停止されているとき、ＦＰＵ命令，ＭＬＴ命令を実行しようとすると、これに連動してＦＰＵ３，積和演算装置４のクロック信号の停止状態が解除され、解除後に、ＦＰＵ命令，ＭＬＴ命令が実行される。
【００４０】
図１０にはクロック停止状態をバスステートコントローラ６Ｃの制御で動的に解除するための構成を抜粋してある。バスステートコントローラ６Ｃがクロック停止状態を動的に解除するために、クロック制御ビットＳＳＣＩ，ＳＴＭＲ，ＳＡＤＣは前記バスステートコントローラ６Ｃにも供給されている。それによってバスステートコントローラ６Ｃは、クロック制御ビットＳＳＣＩ，ＳＴＭＲ，ＳＡＤＣによって動作停止が指示されている周辺回路に対するアクセスを検出したとき、当該周辺回路の動作停止状態をクリア信号ＣＬＲ２，ＣＬＲ３，ＣＬＲ４で解除してから該周辺回路のアクセスを開始する。
【００４１】
図１１にはバスステートコントローラ６Ｃによりクロック停止状態を動的に解除するための論理構成の一例が示される。バスコントローラ６Ｃは、ＣＰＵ２から供給されるアドレス信号をデコードして周辺回路ＳＣＩ９，タイマ１０，Ａ／Ｄコンバータ１１に対するアクセスを検出可能なアドレスデコーダ６００を有する。このアドレスデコーダ６００のデコード論理は前記周辺回路のマッピングアドレスに従って決定されている。信号６０１はＳＣＩ９に対するアクセス検出信号、６０２はタイマ６０２に対するアクセス検出信号、６０３はＡ／Ｄコンバータ１１に対するアクセス検出信号であり、アクセスが検出される事によってハイレベルにされる。夫々のアクセス検出信号６０１，６０２，６０３はクロック制御ビットＳＳＣＩ，ＳＴＭＲ，ＳＡＤＣと論理積が採られ、夫々の論理積信号がクリア信号ＣＬＲ２、ＣＬＲ３，ＣＬＲ４とされる。したがって、クロック制御ビットＳＳＣＩ，ＳＴＭＲ，ＳＡＤＣによってＳＣＩ９，タイマ１０，Ａ／Ｄコンバータ１１のクロック信号が停止されているとき、クロック停止されている周辺回路をアクセスする命令が実行されると、クリア信号ＣＬＲ２、ＣＬＲ３，ＣＬＲ４がアサートされる。バスステートコントローラ６Ｃは、アサートされたクリア信号に対応するクロック制御ビットがリセット状態に反転されるのを待ってバスサイクルを起動する。
【００４２】
第２の例のマイクロコンピュータ１Ｃによれば、クロック信号が停止された回路モジュールを操作する命令の実行若しくはそのようなモジュールに対するアクセスが発生した時、それに応じて当該回路モジュールのクロック停止状態を動的に解除でき、木目細かく低消費電力制御を行なうことができる。
【００４３】
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【００４４】
例えば、ＦＰＵと積和演算装置に関して無効命令化（不当命令化）の構成を採用し、周辺回路に関してクロック停止状態の動的解除の構成を採用する事も可能である。また、演算装置はＦＰＵと積和演算装置に限定されず、ＣＰＵによってアクセス制御される回路であればよい。
【００４５】
また、データ処理装置に内蔵される周辺回路はＳＣＩやタイマなどに限定されず適宜変更可能である。また、データ処理装置はメモリマネージメントユニットやキャッシュメモリを内蔵するものであってもよい。また、命令制御手段はハードワイヤードロジックに限定されず、マイクロ命令、更にナノ命令を用いる制御記憶形式であってもよい。
【００４６】
以上の説明では主として本発明者によってなされた発明をその背景となった利用分野であるシングルチップマイクロコンピュータに適用した場合について説明したが、本発明はそれに限定されるものではなく、マルチチップ構成のデータ処理装置にも適用することができる。
【図面の簡単な説明】
【００４７】
【図１】無効命令化（不当命令化）及びバスエラー化によってメモリ保護を実現する本発明の第１の例に係るマイクロコンピュータのブロック図である。
【図２】図１のマイクロコンピュータにおいて無効命令化（不当命令化）によるメモリ保護のための構成を抜粋したブロック図である。
【図３】図１のマイクロコンピュータにおいてバスエラーを発生させてメモリ保護を行なうための構成を抜粋したブロック図である。
【図４】図１のマイクロコンピュータにおける命令制御部の概略的な構成を示すブロック図である。
【図５】無効命令化の処理を行なうための論理構成の一例を示すブロック図である。
【図６】バスステートコントローラがメモリ保護のためにバスエラーを発生されるための信号生成論理の一例を示すブロック図である。
【図７】クロック停止の動的解除を行なう本発明の第２の例に係るマイクロコンピュータのブロック図である。
【図８】図７のマイクロコンピュータにおいてＣＰＵの制御によるクロック停止状態の動的解除のための構成を抜粋したブロック図である。
【図９】図７のマイクロコンピュータにおいてクロック停止状態の動的解除を行なうためのＣＰＵの論理構成の一例を示すブロック図である。
【図１０】図７のマイクロコンピュータにおいてバスステートコントローラの制御によるクロック停止状態の動的解除のための構成を抜粋したブロック図である。
【図１１】図７のマイクロコンピュータにおいてクロック停止状態の動的解除を行なうためのバスステートコントローラの論理構成の一例を示すブロック図である。
【符号の説明】
【００４８】
１，１Ｃ  マイクロコンピュータ
２  ＣＰＵ
２Ａ  演算部
２Ｂ，２Ｃ  命令制御部
３  ＦＰＵ
４  積和演算装置
５  割込みコントローラ
６，６Ｃ  バスステートコントローラ
７  クロック発生回路
ＣＬＫ０〜ＣＬＫ４  クロック信号
９  ＳＣＩ
１０  タイマ
１１  Ａ／Ｄコンバータ
１２，１２Ｃ  システムコントローラ
１２Ｒ  クロック停止制御レジスタ
１３  内部データバス
１４  内部アドレスバス
１５  周辺アドレスバス
１６  周辺データバス
１７  外部アドレスバス
１８  外部データバス
ＳＦＰＵ，ＳＭＬＴ，ＳＳＣＩ，ＳＴＭＲ，ＳＡＤＣ  クロック制御ビット
２０  積和演算装置制御信号
２１  ＦＰＵ制御信号
２２  ＣＰＵ演算部制御信号
２３  バスコマンド
２４  バスエラー信号
２５  例外処理信号
２００，２００Ｃ  プリデコーダ
２０１，２０１Ｃ  ハードワイヤードロジック
ＣＬＲ０〜ＣＬＲ４  クリア信号
２１０  デコーダ
２１１  ＦＰＵ命令検出信号
２１２  積和演算命令検出信号
２１３  ＳＦＰＵとＦＰＵ命令検出信号の論理積信号
２１４  ＳＭＬＴと積和演算命令検出信号の論理積信号
２１５  ２１３と２１４の論理和信号
２１６  セレクタ
２１７  無効命令コード発生回路
２１８  無効命令コード
２１９  フェッチされた命令コード
２２０  プリデコード論理
６００  アドレスデコーダ
６０１  ＳＣＩアクセス検出信号
６０２  タイマーアクセス検出信号
６０３  Ａ／Ｄコンバータアクセス検出信号
【図１】
2004152321.tif 000003
【図２】
2004152321.tif 000004
【図３】
2004152321.tif 000005
【図４】
2004152321.tif 000006
【図５】
2004152321.tif 000007
【図６】
2004152321.tif 000008
【図７】
2004152321.tif 000009
【図８】
2004152321.tif 000010
【図９】
2004152321.tif 000011
【図１０】
2004152321.tif 000012
【図１１】
2004152321.tif 000013