(57)【特許請求の範囲】
【請求項１】
クロック信号に同期動作される回路モジュールと、
上記回路モジュールに供給すべきクロック信号の周波数及び上記回路モジュールに供給すべき動作電圧を指定するための制御情報が書換え可能に格納される記憶手段と、
上記記憶手段の制御情報に応じた周波数のクロック信号を上記回路モジュールに出力可能なクロック発生回路と、
上記記憶手段の制御情報に応じたレベルの動作電圧を上記回路モジュールに出力可能な電源回路と、
上記制御情報に基づいて、上記クロック信号周波数を低減し且つ動作電圧を絶対値的に小さくさせる指示を検出したときは現在の周波数の変更に先立って動作電圧が絶対値的に小さくされる状態を阻止し、また、クロック信号周波数を増大させ且つ動作電圧を絶対値的に大きくさせる指示を検出したときは動作電圧の絶対値的な増大に先立って周波数の増加されたクロック信号が出力される状態を阻止して、上記クロック発生回路と電源回路の出力状態の切換えを制御する第１の制御手段と、
上記記憶手段の書換え前後における制御情報に基づいて、クロック信号周波数を増大させ且つ動作電圧を絶対値的に小さくさせる指示を検出したときには、当該指示に基づくクロック発生回路及び電源回路の出力状態変更を禁止させる第２の制御手段と、を含んで成るものであることを特徴とするデータ処理装置。
【請求項２】
上記クロック発生回路は、出力すべきクロック信号の周波数切換えに際して、上記第１の制御手段からの指示に基づいてクロック信号の出力を一定期間停止させる出力ゲートを備えて成るものであることを特徴とする請求項１記載のデータ処理装置。
【請求項３】
上記第２の制御手段は、更に上記記憶手段の書換え前後における制御情報に基づいて、動作電圧を絶対値的に大きくせずにクロック信号の周波数を増大させる指示、又はクロック信号周波数を低減させずに動作電圧を絶対値的に小さくさせる指示を検出することによって、当該指示に基づくクロック発生回路及び電源回路の出力状態変更を禁止させることが可能であることを特徴とする請求項１又は２記載のデータ処理装置。
【請求項４】
上記回路モジュールは複数個とされ、上記記憶手段は所定の回路モジュール毎の制御情報を書換え可能に格納する複数の記憶領域を有し、
上記クロック発生回路は、上記記憶手段における複数の記憶領域の夫々の制御情報に従って個別的に対応回路モジュールに供給すべきクロック信号を選択するための選択回路を備え、
上記電源回路は、上記記憶手段における複数の記憶領域の夫々の制御情報に従って個別的に対応回路モジュールに供給すべき動作電圧を選択するための選択回路を備えて、成るものであることを特徴とする請求項１乃至３の何れか１項記載のデータ処理装置。
【請求項５】
上記回路モジュールは中央処理装置とされる一つの回路モジュールとこの中央処理装置によってその動作が制御される別の回路モジュールとを含み、全体が１個の半導体基板に形成されたシングルチップマイクロコンピュータ化されて成るものであることを特徴とする請求項１乃至４の何れか１項記載のデータ処理装置。
【請求項６】
上記回路モジュール、記憶手段、第１の制御手段、及び第２の制御手段は１チップの半導体集積回路とされ、上記クロック発生回路及び電源回路は当該半導体集積回路の外部に設けられて成るものであることを特徴とする請求項３又は４記載のデータ処理装置。
【請求項７】
クロック信号に同期動作される中央処理装置と、
クロック信号に同期動作される複数の回路モジュールと、
上記クロック信号を上記中央処理装置と上記回路モジュールとに出力可能なクロック発生回路と、
動作電圧を上記中央処理装置と上記回路モジュールとに出力可能な電源回路と、を含み、
上記中央処理装置、回路モジュール、クロック発生回路、及び電源回路がそれぞれ半導体集積化されたデータ処理装置であって、
上記中央処理装置は、上記クロック信号の周波数と上記動作電圧とを指定するための制御情報が書換え可能に格納される記憶手段と、
上記制御情報に基づいて、上記クロック信号周波数を低減し且つ動作電圧を絶対値的に小さくさせる指示を検出したときは現在の周波数の変更に先立って動作電圧が絶対値的に小さくされる状態を阻止し、また、クロック信号周波数を増大させ且つ動作電圧を絶対値的に大きくさせる指示を検出したときは動作電圧の絶対値的な増大に先立って周波数の増加されたクロック信号が出力される状態を阻止して、上記クロック発生回路と電源回路の出力状態の切換えを制御する第１の制御手段と、
上記記憶手段の書換え前後における制御情報に基づいて、動作電圧を絶対値的に小さくし且つ、クロック信号の周波数を増大させる指示を検出することによって、当該指示に基づくクロック発生回路及び電源回路の出力状態変更を禁止させる第２の制御手段と、を含んで成るものであることを特徴とするデータ処理装置。
【請求項８】
上記記憶手段は上記中央処理装置によってアクセスされるレジスタであることを特徴とする請求項７項記載のデータ処理装置。
【請求項９】
クロック信号に同期動作される中央処理装置と、
クロック信号に同期して動作される回路モジュールと、
上記回路モジュールに供給するクロック信号の周波数及び上記回路モジュールに供給すべき動作電圧を指定するための制御情報が上記中央処理装置より伝達される制御部と、
上記制御情報に応じた周波数のクロック信号を上記回路モジュールに出力可能なクロック発生回路と、
上記制御情報に応じたレベルの動作電圧を上記回路モジュールに出力可能な電源回路とを有し、
上記制御部は、上記中央処理装置からの制御情報を伝達される前のクロック信号の周波数及び動作電圧と上記制御情報とを比較し、その制御情報がクロック信号の周波数を増大させ且つ動作電圧を絶対値的に小さくさせる指示である場合、上記制御情報に基づくクロック発生回路及び電源回路の出力状態の変更を禁止させることが可能であることを特徴とするデータ処理装置。
【請求項１０】
上記制御部は更に、上記クロック信号周波数を低減し且つ動作電圧を絶対値的に小さくさせる制御情報を検出したときは現在の周波数の変更に先立って動作電圧が絶対値的に小さくされる状態を阻止し、また、クロック信号周波数を増大させ且つ動作電圧を絶対値的に大きくさせる制御情報を検出したときは動作電圧の絶対値的な増大に先立って周波数の増加されたクロック信号が出力される状態を阻止して、上記クロック発生回路と電源回路の出力状態の切換えを制御することを特徴とする請求項９記載のデータ処理装置。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、クロック信号に同期動作されるデータプロセッサやマイクロコンピュータさらにはこれを搭載したデータ処理システムに係り、特にその動作クロック信号の周波数を、また動作クロック信号の周波数と動作電源の電圧との双方を切換えて低消費電力を図る技術に関し、例えばマイクロコンピュータに適用して有効な技術に関する。
【０００２】
【従来の技術】
特開平３−６８００７号公報には、マイクロコンピュータのようにクロック信号に同期動作されるものにおいて、その動作クロック信号の周波数を必要に応じて切換えることによって低消費電力化に寄与する技術が記載されている。また、特開平５−１０８１９３号公報には、外部から供給される電源電圧とクロック信号周波数とを内蔵レジスタの設定値によって変更し低消費電力化を図るようにしたマイクロコンピュータについて記載されている。
【０００３】
【発明が解決しようとする課題】
しかしながらマイクロコンピュータのような半導体集積回路の高機能化に伴い、回路モジュールの動作頻度若しくは動作速度に従って当該回路モジュールを、階層化された内部バスに結合する場合、内部クロック信号周波数の切換えは階層化された回路モジュールの性質を考慮して行わなければならない。例えばレジスタの値を書き換えて内部の動作周波数を変更するとき、外部バスとのインタフェースを制御するバスコントローラのような回路モジュールに対しては、外部との関係を考慮してその動作クロック信号周波数を制御しなければならないことが本発明者によって明らかにされた。
【０００４】
また、マイクロコンピュータなどを構成する回路モジュールの動作周波数と共に動作電圧を可変にして低消費電力化する場合、特定の回路モジュールを低消費電力で動作させるか否かは当該回路モジュールが周辺回路か中央処理装置かというような一般的な機能の相違だけでは一律に決定できないことを本発明者は見い出した。例えば、中央処理装置において高速のデータ処理を要しないタスクに対しては低消費電力を優先させ、また、高速処理を要するタスクに対しては電力消費が増大してもデータ処理の高速化を最優先しなければならず、そのためには、回路モジュールの動作周波数と動作電圧をタスク単位でも切換え可能な自由度が必要になる。すなわち、回路モジュールのデータ処理性能やデータ処理の軽重に応じて回路モジュールの動作電源電圧や動作周波数を比較的自由に設定できるようにして、電力消費とデータ処理効率とを最適化できるようにする。相対的に高速のデータ処理を要しないタスク若しくは回路モジュールに対しては低消費電力を優先させ、相対的に処理の高速性を要するタスク若しくは回路に対しては電力消費量の増大を許容する。これによって全体としてのデータ処理効率を向上させつつ低消費電力を実現する。
【０００５】
そのように動作電源電圧と動作周波数を比較的自由に設定できるようにする場合には、その設定を変更するとき回路モジュールに誤動作を生じないようにし、また、その組合わせの態様によって誤動作を生じないように予じめ対処しておくことがシステムの信頼性を増すために必要であることを本発明者は見い出した。例えば、回路の動作電源電圧を低下させた場合、回路の駆動能力が低下して信号遅延が増大するため、それによって誤動作しないように周波数の変更を許容し、また、回路の動作周波数を増大させる場合には誤動作しないように電源電圧の変更を許容しなければならない。
【０００６】
本発明の目的は、回路モジュールの動作周波数と動作電圧をタスク単位でも切換え可能な自由度を持たせ、このとき、回路モジュールの動作周波数と動作電圧の切換えに際して生ずる虞のある回路の誤動作を未然に防止できるデータ処理装置を提供することにある。さらに、上記誤動作防止を比較的簡単に実現できるようにすることを目的とする。
【０００７】
本発明の別の目的は内部バスが階層化されているような場合に外部バスとのインタフェースを考慮して内蔵回路モジュールのクロック信号周波数を任意に設定できるデータ処理装置を提供することにある。
【０００８】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【０００９】
【課題を解決するための手段】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【００１０】
〔１〕回路モジュールの動作周波数と動作電圧の双方を制御する発明によれば、データ処理装置は、周波数の異なるクロック信号を選択的に出力可能なクロック発生回路（１２０，３２０）と、上記回路モジュールの動作電圧として選択的に異なる電圧を出力可能な電源回路（１１０，３１０）とを設け、単数若しくは複数個の回路モジュールに供給すべきクロック信号の周波数と動作電圧の電圧を指定するための制御情報を記憶手段（１１４，１２４，３０７）に書換え可能に格納し、格納された制御情報に基づいて上記クロック発生回路及び電源回路におけるクロック信号周波数の選択と動作電圧の選択とを制御するようにする。このとき、上記クロック信号周波数を低減し且つ動作電圧を絶対値的に小さくさせる指示を検出したときは現在の動作周波数の変更に先立って動作電圧が絶対値的に小さくされる状態を阻止し、また、クロック信号の周波数を増大させ且つ動作電圧を絶対値的に大きくさせる指示を検出したときは動作電圧の絶対値的な増大に先立って周波数の増加されたクロック信号が出力される状態を阻止するように、上記クロック発生回路と電源回路の出力状態の切換えを制御する第１の制御手段（１３１，３３４１）を採用し、周波数や動作電圧の切換え時若しくは切換え直後における回路モジュールの誤動作を防止する。
【００１１】
上記第１の制御手段による上記制御態様を簡単に実現するには、周波数の出力切換えに際して上記第１の制御手段からの指示に基づいてクロック信号の出力を一定期間停止させる出力ゲート（１２０６，３２６１，３２６２，３２６３）を上記クロック発生回路に設けて対処できる。
【００１２】
さらに、予じめ設定禁止にしておくことも可能であるが、周波数と電源電圧の不所望な切換え態様による誤動作の虞を予じめ防止するという観点においては、上記記憶手段の書換え前後における制御情報に基づいて、動作電圧を絶対値的に大きくせずにクロック信号の周波数を増大させる指示、又はクロック信号周波数を低減させずに動作電圧を絶対値的に小さくさせる指示を検出することによって、当該指示に基づくクロック発生回路及び電源回路の出力状態変更を抑制する第２の制御手段（１３２，３３４２）を更に採用する。
【００１３】
複数個の回路モジュールに対して個別的にクロック周波数と電源電圧を切換え制御するには、上記記憶手段には所定の回路モジュール毎の制御情報を書換え可能に格納する複数の記憶領域（３０７１，３０７２）を設け、上記クロック発生回路には、上記記憶手段における複数の記憶領域の夫々の制御情報に従って個別的に対応回路モジュールに供給すべきクロック信号を選択するための選択回路（３２５１，３２５２，３２５３）を設け、更に、上記電源回路には、上記記憶手段における複数の記憶領域の夫々の制御情報に従って個別的に対応回路モジュールに供給すべき動作電圧を選択するための選択回路（３１４１，３１４２，３１４３）を設けることで容易に対応できる。
【００１４】
上記データ処理装置において、上記回路モジュールは中央処理装置とされる一つの回路モジュールとこの中央処理装置によってその動作が制御される別の回路モジュールとされ、全体が１個の半導体基板に形成されたシングルチップマイクロコンピュータ化して構成できる。上記回路モジュール、上記記憶手段、第１の制御手段、及び第２の制御手段を１チップの半導体集積回路とし、上記クロック発生回路及び電源回路を当該半導体集積回路の外部に設けてデータ処理装置を構成できる。上記回路モジュールを中央処理装置とされる一つの回路モジュールとこの中央処理装置によってその動作が制御される別の回路モジュールとし、当該中央処理装置とされる回路モジュール、上記別の回路モジュールの内の一部の回路モジュール、上記記憶手段、第１の制御手段、及び第２の制御手段を１チップの半導体集積回路とし、上記別の回路モジュールの内の残りの回路モジュール、上記クロック発生回路、及び電源回路を当該半導体集積回路の外部に設けられて、マルチチップ化されたマイクロコンピュータとしても構成できる。
【００１５】
〔２〕内部バスが階層化されたデータ処理装置に対する動作周波数切換えに係る発明によれば、データ処理装置は、中央処理装置（６１）が結合された第１の内部バス（６０）と、入出力回路（７３）を介して外部バスとインタフェースされ外部バスとのインタフェース制御を行うバスコントローラ（７２）が結合された第２の内部バス（７０）と、所定の周辺回路が結合された第３の内部バス（８０）と、第１の内部バスに結合された回路モジュールのための第１のクロック信号（９１）、第２の内部バスに結合された回路モジュールのための第２のクロック信号（９２）、及び第３の内部バスに結合された回路モジュールのための第３のクロック信号（９３）を出力するクロックパルスジェネレータ（９）と、上記第１の内部バスに結合され、中央処理装置にて設定された制御情報により上記第１及び第３のクロック信号の内の少なくとも一つの信号の周波数を可変とするクロック制御回路（６５）と、を含んで１チップマイクロコンピュータ化されて成る。
【００１６】
外部バスに接続され上記バスコントローラが制御するバスサイクルに従って動作される外部デバイス（例えばシンクロナス・ダイナミック・ランダム・アクセス・メモリ）が、クロック信号に同期動作されるものである場合に、当該外部デバイスに同期動作用クロック信号を供給することを考慮するならば、データ処理装置には外部クロック信号の出力端子（ＣＫＩＯ）を設け、このとき上記クロック制御回路は、第２のクロック信号の周波数を上記外部クロック信号の周波数に一致させる。
【００１７】
バスコントローラが結合された第２の内部バスのための第２のクロック信号の周波数は、外部バスに結合された外部デバイスの動作速度に応じた周波数にされなければ内外でのバスサイクル若しくはバス動作を同期させることができないということを考慮した場合、中央処理装置が結合される第１の内部バスの回路モジュールは必要に応じて高速動作可能であることが高速データ処理上望ましい。したがって、データ処理装置にキャッシュメモリ装置を内蔵させる場合には、キャッシュメモリ装置を上記第１の内部バスと第２の内部バスとのインタフェースに利用することが、データ処理効率を向上させる上で好ましい。
【００１８】
更に詳細な態様のデータ処理装置は、中央処理装置（６１）が結合された第１の内部バス（６０）と、入出力回路（７３）を介して外部バスとインタフェースされ外部バスとのインタフェース制御を行うバスコントローラ（７２）が結合された第２の内部バス（７０）と、所定の周辺回路が結合された第３の内部バス（８０）と、第１の内部バスに結合された回路モジュールのための第１のクロック信号（９１）、第２の内部バスに結合された回路モジュールのための第２のクロック信号（９２）、及び第３の内部バスに結合された回路モジュールのための第３のクロック信号（９３）を出力するクロックパルスジェネレータ（９）と、上記第１乃至第３のクロック信号周波数を各別に制御するためのクロック制御回路（６５）とを含んでシングルチップマイクロコンピュータ化されている。そして、上記クロックパルスジェネレータは、外部クロック源に結合可能な第１の接続端子（ＸＴＡＬ，ＥＸＴＡＬ）に結合された第１の周波数変更手段（９１０，９１１，９１２，９１３，９１４）と、外部クロック源に結合可能な第２の接続端子（ＣＫＩＯ）に結合された第２の周波数変更手段（９２１）と、第１及び第２の周波数変更手段の内の何れか一方の出力を選択する選択手段（９３０，９３１）と、選択手段で選択されたクロック信号を受けて上記第１乃至第３のクロック信号周波数を各別に変更可能にする第３の周波数変更手段（９４０，９４１，９４２，９４３）と、上記第１の周波数変更手段から出力されるクロック信号を外部クロック信号として出力させるクロック信号経路（９５１）とを含む。このとき上記クロック制御回路（６５）は、外部クロックモード端子（ＭＤ０〜ＭＤ２）に結合され、第３の周波数変更手段による第１及び第３のクロック信号に対する周波数変更率を格別に指定し且つ第２の周波数変更手段による周波数変更率を指定するための制御情報が中央処理装置によって設定されるクロック制御レジスタ（６５０）を供え、外部クロックモード端子の状態に従って、第１の周波数変更手段による周波数変更率を決定して第１の接続端子から第３の周波数変更手段の入力にクロック信号を伝達可能にし且つ第２のクロック信号周波数が第１の周波数変更手段から出力されるクロック信号周波数に一致するように第３の周波数変更手段を制御する第１の状態、又は第２の接続端子から第３の周波数変更手段の入力にクロック信号を伝達可能に制御する第２の状態を選択し、さらに、上記クロック制御レジスタに設定された制御情報に従って第２の周波数変更手段による周波数変更率と第３の周波数変更手段による第１及び第３のクロック信号に対応する周波数変更率とを可変に制御すると共に、クロックモード端子にて指定された上記第２の状態においては上記クロック制御レジスタに設定された制御情報に従って第２にクロック信号の周波数が第２の接続端子から供給されるクロック信号の周波数に一致するように第３の周波数変更手段による第２のクロック信号に対する周波数変更率を制御するものである。
【００１９】
第１及び第２のクロック信号の周波数変更可能幅を更に広げるには、クロックモード端子にて指定される第１の状態において第１の周波数変更手段の出力を第２の周波数変更手段の入力に接続する接続手段（９２０）を設けるとよい。このとき、上述のように外部デバイス（例えばシンクロナス・ダイナミック・ランダム・アクセス・メモリ）がクロック信号に同期動作されるものである場合に、当該外部デバイスに同期動作用クロック信号を供給することを考慮するならば、上記クロック信号経路を第２の接続端子に結合するとよい。
【００２０】
第１の接続端子が振動子の接続端子と外部クロック信号の入力端子に兼用される場合、第１の周波数変更手段を、第１の接続端子に発振子が外付けされて発振される発振器（９１０）からのクロック信号と第１の接続端子から直接供給されるクロック信号との何れかを選択し、選択したクロック信号をそれぞれ受ける分周回路（９１３）とフェーズロックドループ回路（９１２）を供え、その何れかの出力を基本クロック信号として出力する選択手段（９１４）によって構成できる。第３の周波数変更手段を分周器で構成する場合、第２の周波数変更手段は逓倍手段としてのフェーズロックドループ回路で構成すると、周波数変更可能幅を大きくすることができる。
【００２１】
【作用】
〔１〕回路モジュールの動作周波数と動作電圧の双方を制御するための上記手段によれば、クロック信号周波数と動作電圧の切換え態様を指示する制御情報は中央処理装置などによって書換え可能に上記レジスタ又は記憶手段に設定されるから、回路モジュールのデータ処理性能やデータ処理の軽重に応じて制御情報を必要に応じて書換えることで、回路モジュールの動作電圧と動作周波数に対する自由な切換えを許容する。このことは、相対的に高速のデータ処理を要しないタスク若しくは回路モジュールに対しては低消費電力を優先させ、相対的に処理の高速性を要するタスク若しくは回路モジュールに対しては電力消費量の増大を許容し、これによって全体としてのデータ処理効率を向上させつつ低消費電力を実現する。所定の回路モジュール毎に個別的にクロック周波数と動作電圧の切換えを可能にすることは、上記全体としてのデータ処理効率を向上させつつ低消費電力化を図る制御を更にきめ細かく実現可能にする。
【００２２】
クロック信号の周波数と動作電圧の双方を減少させる場合、先に動作電圧を減少させると、クロック信号周波数が減少されるまでの間、動作状態におかれた回路の駆動能力が低下して不所望な信号遅延によって誤動作を生ずる虞がある。この場合に上記第１の制御手段は、現在の動作周波数の変更に先立って動作電圧が減少される状態を阻止するように周波数と動作電圧の切換え手順を制御する。また、クロック信号の周波数と動作電圧とを増加させる場合、先にクロック信号周波数を増加させると、動作電圧が増加されるまでの間、動作状態におかれた回路の駆動能力は動作速度の向上に追従しきれずに誤動作を生ずる虞がある。この場合に上記した第１の制御手段は、動作電圧の増加に先立って周波数の増加されたクロック信号が出力される状態を阻止するように周波数と動作電圧の切換え手順を制御する。このように、第１の制御手段はクロック信号周波数と動作電圧の切換え手順の点における誤動作を防止する。
【００２３】
クロック周波数と電源電圧の切換えにおいて電源電圧を絶対値的に増加させずにクロック信号の周波数を増加させることは、回路の動作が高速化されても回路の駆動能力が向上されずに当該高速動作に不適応な比較的大きな信号伝播遅延を生ずることになる。また、クロック信号周波数を減少させずに電源電圧を絶対値的に減少させることは、回路の駆動能力が低下されて信号伝播遅延が増大されるにも拘らず依然として回路が高速動作を行うことになる。上記した第２の制御手段はそのような指示に対してはクロック周波数と電源電圧の切換えを抑止し、これによって周波数と電源電圧の不所望な切換え態様による誤動作の虞を未然に防止する。
【００２４】
〔２〕内部バスが階層化されたデータ処理装置に対する動作周波数切換えに係る上記手段によれば、第１乃至第３の内部バスが階層化されたデータ処理装置において、第２のクロック信号を、周波数可変とするクロック信号から除外している。上記具体的な態様の手段においては、第１及び第３のクロック信号の周波数が制御情報に従って動的に変化されるとき、クロック制御回路は第２のクロック信号の周波数を一定に保つように制御する。これは、バスコントローラが結合された第２の内部バスのための第２のクロック信号の周波数は、外部バスに結合された外部デバイスの動作速度に応じた周波数にされなければ内外でのバスサイクル若しくはバス動作を同期させることができない、という条件を満足させる。第１のクロック信号周波数を制御情報にて動的に可変制御可能にすることは、中央処理装置が結合される第１の内部バスの回路モジュールは必要に応じて高速動作可能であることが高速データ処理上望ましい、という点を満足させ、その逆に高速動作を要しないタスクを実行するときにはクロック信号周波数を低くして低消費電力を実現する。第３のクロック信号の周波数を制御情報にて動的に可変制御可能にすることは、第３の内部バスに結合された回路モジュールが周辺回路モジュールであるという性質に鑑みてその機能や動作状態に応じて他の回路モジュールとは独立的に動作速度を制御可能にし、低消費電力化を促進させる。
【００２５】
出力端子（ＣＫＩＯ）から出力される外部クロック信号は第２のクロック信号の周波数と一致される。クロック信号に同期動作される外部デバイスはバスコントローラ（第２のクロック信号を受け動作）の制御を受け、そのような外部デバイスの同期動作用クロック信号として上記外部端子（ＣＫＩＯ）から出力されるクロック信号を利用できる。
【００２６】
【実施例】
〔１〕先ず、回路モジュールの動作周波数と動作電圧の双方を制御する発明に関する複数の実施例を図１から図１４に基づいて説明する。
【００２７】
図１には本発明の第１実施例に係るシングルチップマイクロコンピュータのブロック図が示される。本実施例のシングルチップマイクロコンピュータ１は、クロック信号に同期動作される回路モジュールとして、中央処理装置（ＣＰＵとも記す）１００、乗算回路（ＭＵＬＴとも記す）１０１、除算（ＤＩＶＵ）１０２、ダイレクトメモリアクセスコントローラ（ＤＭＡＣとも記す）１０３、タイマ（ＴＭＲ１とも記す）１０４、及びタイマ（ＴＭＲ２とも記す）１０５を代表的に備え、更に、図示しないＲＡＭ、ＲＯＭ、そして外部バスインタフェース回路などを備え、それらは図示しない所定の内部バスを介して接続可能にされる。特に制限されないが、上記乗算回路１０１及び除算１０２は共に中央処理装置１００より発行されるコマンドを解読してデータ処理を行うコプロセッサとして位置付けられる。上記図示しないＲＯＭは中央処理装置１００の動作プログラムなどを保有する。図示しないＲＡＭは中央処理装置１００の作業領域又はデータの一時記憶領域とされる。
【００２８】
図１に代表的に示された回路モジュール１００〜１０５の動作電源は電源回路１１０から供給される。電源回路１１０は電源ピン１１１から５Ｖのような電源電圧を受けると共にグランドピン１１２から０Ｖのような接地電圧を受け、上記回路モジュール１００〜１０５の動作電源として選択的に異なる内部電圧１１３を出力可能にされる。本実施例に従えば、その内部電圧１１３は接地電位を基準に上記電源電圧又は該電源電圧を降圧した電圧とされる。接地電位は各回路モジュールに共通に供給される。
【００２９】
図１に代表的に示された回路モジュール１００〜１０５の動作クロック信号はクロック発生回路１２０から供給される。クロック発生回路１２０は外部のクロック入力ピン１２１から外部クロック信号若しくは図示しない振動子を介して発生される発振出力を受け、周波数の異なるクロック信号を内部クロック信号１２２として選択的に出力可能にされる。
【００３０】
図２にはクロック発生回路１２０の詳細な一例が示される。同図に示されるクロック発生回路１２０は、外部からのクロック信号を受けてその周波数を逓倍して出力するＰＬＬ回路１２０１、及びＰＬＬ回路１２０１の出力に直列に２段結合された分周回路１２０２，１２０３を備える。分周回路１２０２，１２０３は例えば入力の周波数を夫々１／４にして出力する。上記ＰＬＬ回路１２０１そして分周回路１０２２，１０２３の夫々の出力はセレクタ１２０５を介して選択され、選択されたクロック信号がクロックドインバータのような出力ゲート１２０６を介して各回路モジュール１００〜１０５のクロック入力端子に供給される。同図においてセレクタ及び出力ゲートは１組みが代表的に図示されているが、所定の回路モジュール毎に内部クロック信号の周波数を設定する場合には当該所定の回路モジュール毎にセレクタ１２０５及び出力ゲート１２０６が設けられるものと理解されたい。電源回路１１０で選択される内部電圧１１３についても同様である。
【００３１】
図１に示される電圧設定レジスタ１１４及び周波数設定レジスタ１２４は、上記回路モジュール１００〜１０５に供給すべき内部電圧１１３及び内部クロック信号１２３の周波数を指定するための制御情報が書換え可能に格納される記憶手段である。電圧設定レジスタ１１４及び周波数設定レジスタ１２４は、例えば中央処理装置１００の所定のアドレス空間に配置され、ＬＤＣ（ロード・コントロール・レジスタ）命令のような命令を中央処理装置１００が実行することによって制御情報の設定が行われる。したがって、電圧設定レジスタ１１４及び周波数設定レジスタ１２４の書換えはマイクロコンピュータ１の動作プログラム次第で所望に行うことができる。例えば、処理の軽重に従ってタスク毎に設定することもできる。即ち、タスクの起動に際してＣＰＵ１００のスタックポインタやステータスレジスタなどの退避、初期設定、復帰などの対象にそれらレジスタ１１４，１２４を含めるようにすればとい。
【００３２】
図３には上記電圧設定レジスタ１１４及び周波数設定レジスタ１２４の詳細な一例が示される。電圧設定レジスタ１１４は特に制限されないが８ビットで構成され、例えばＣＰＵ１００，ＭＵＬＴ１０１，ＤＩＶＵ１０２，ＤＭＡＣ１０３に供給する内部電圧１１３を夫々２ビットの値で決定するようになっている。夫々の２ビットにおいて、”００”は最大の電圧レベル（Ｖｍａｘ）、”０１”は（Ｖｍａｘ）×１／２、”１０”は（Ｖｍａｘ）×１／４、”１１”は接地電位を意味する。周波数設定レジスタ１２４は特に制限されないが８ビットで構成され、例えばＣＰＵ１００，ＭＵＬＴ１０１，ＤＩＶＵ１０３，ＤＭＡＣ１０３に供給する内部クロック信号周波数を夫々２ビットの値で決定するようになっている。夫々の２ビットにおいて、”００”は最大の周波数（Ｆｍａｘ）、”０１”は（Ｆｍａｘ）×１／４、”１０”は（Ｆｍａｘ）×１／１６、”１１”は内部クロック供給停止を意味する。なお、パワー・オン・リセット時において双方のレジスタ１１４，１２４は全ビット０に初期化される。尚、図３に示されるようなレジスタ１１４，１２４の構成においてその他の回路モジュールに供給すべき動作電源と内部クロック信号周波数は所定の値に固定することができる。また、動作電圧とクロック信号周波数の可変制御対象モジュールの数を増やすには上記電圧設定レジスタ１１４及び周波数設定レジスタ１２４のビット数を増やし、それに応じて電源回路１１０及びクロック発生回路１２０における電圧及びクロック信号周波数選択のための論理規模を増加すればよい。
【００３３】
図１において１３０は上記電圧設定レジスタ１１４及び周波数設定レジスタ１２４に格納された制御情報に基づいて上記クロック発生回路１２０及び電源回路１１０における内部クロック信号１２２の周波数選択と内部電圧１１３のレベル選択とを制御する制御回路である。上記電圧設定レジスタ１１２及び周波数設定レジスタ１２４に格納された制御情報は制御回路１３０を介して電源回路１００及びクロック発生回路１２０に与えられることにより、電源回路１００及びクロック発生回路１２０はその制御情報に従って内部クロック信号１２２の周波数と内部電圧１１３を選択し対応する回路モジュールに供給する。
【００３４】
上記制御回路１３０は動作電圧及びクロック信号周波数の切換えに際して回路モジュールの誤動作を未然に防止するために第１の制御手段１３１と第２の制御手段１３２を備える。
【００３５】
第１の制御手段１３１は内部クロック信号１２２の周波数と内部電圧１１３の切換え手順の点において内部回路モジュールの誤動作を防止するための制御を司る。すなわち、内部クロック信号１２２の周波数と内部電圧１１３の双方を減少させる場合、先に内部電圧１１３を減少させると、内部クロック信号１２２の周波数が減少されるまでの間、動作状態におかれた回路モジュール内回路の駆動能力が低下して不所望な信号遅延によって誤動作を生ずる虞がある。また、内部クロック信号１２２の周波数と内部電圧１１３とを増加させる場合、先に内部クロック信号１２２の周波数を増加させると、内部電圧１１３が増加されるまでの間、動作状態におかれた回路モジュール内回路の駆動能力は動作速度の向上に追従しきれずに誤動作を生ずる虞がある。そこでこれらに対処するため、第１の制御手段１３１は、上記クロック発生回路１２０及び電源回路１１０における内部クロック信号１２２の周波数及び内部電圧１１３の変更手順として、クロック信号１２２の周波数と内部電圧１１３とを減少させる指示を検出したときには現在の動作周波数の変更に先立って動作電圧１１３が減少される状態を阻止し、また、内部クロック信号１２２の周波数と内部電圧１１３とを増加させる指示を検出したときには当該電圧１１３の増加に先立って周波数の増加されたクロック信号１２２が回路モジュールに供給される状態を阻止する。
【００３６】
例えば、動作電圧と周波数の切換え態様を判定し、内部クロック信号１２２の周波数と内部電圧１１３の双方を減少させる場合には、変更された周波数設定レジスタ１２４の値を先にクロック発生回路１２０に供給して周波数を変更してから動作電圧を変更し、内部クロック信号１２２の周波数と内部電圧１１３の双方を増加させる場合には、変更された電圧設定レジスタ１１４の値を先に電源回路１００に供給して動作電圧を上げてから周波数を変更するという手順を上記第１の制御手段１３１に採用できる。又は、動作電圧と周波数の切換え時には回路モジュールへのクロック信号１２２の供給を上記出力ゲート１２０６を介して停止させ、回路動作が安定する一定期間を経過後にクロック信号１２２の供給を再開する手順を第１の制御手段１３１に採用できる。図１において第１の制御手段１３１は中央処理装置１００とは独立のハードウェアとして図示されているが、その機能を中央処理装置１００とその動作プログラムによって実現できる。
【００３７】
第２の制御手段１３２は、内部クロック信号１２２の周波数と内部電圧１１３の不所望な切換え態様による誤動作を防止するための制御を司る。すなわち、内部クロック信号１２２の周波数と内部電圧１１３の切換えにおいて内部電圧１１３を増加させずにクロック信号１２２の周波数を増加させると、回路の動作が高速化されても回路の駆動能力が向上されずに当該高速動作に不適応な比較的大きな信号伝播遅延を生ずることになる。また、クロック信号１２２の周波数を減少させずに内部電圧１１３を減少させると、回路の駆動能力が低下されて信号伝播遅延が増大されるにも拘らず依然として回路が高速動作を行うことになる。そこで、第２の制御手段１３２は、それらの態様で切換えられて誤動作を生じないようにするために、上記電圧設定レジスタ１１４及び周波数設定レジスタ１２４から成る記憶手段の書換え前後における上記制御情報に基づいて、内部電圧１１３を増加させずに内部クロック信号１２２の周波数を増加させる指示、又は内部クロック信号１２２の周波数を減少させずに内部電圧１１３を減少させる指示を検出することによって、当該指示に基づくクロック発生回路１２０及び電源回路１１０の出力状態変更を抑制する。
【００３８】
例えば上記第２の制御手段は、上記電圧設定レジスタ１１４，周波数設定レジスタ１２４に対する書換えの指示を検出したとき、書換え直前のレジスタ１１４，１２４値を保持し、保持された値と書換えられたレジスタ１１４，１２４の値とを比較して上記不所望な状態が指示されたか否かを判定する。当該不所望な指示であることを検出したときは、変更されたレジスタ１１４，１２４の値による周波数と電圧の選択状態更新を制御回路１３０に抑制させ、更に、当該エラー状態を中央処理装置１００に通知して当該レジスタ１１４，１２４に対する再度の設定を促す。これによって周波数と電源電圧の不所望な切換え態様による誤動作を防止できる。
【００３９】
上記第２の制御手段１３２は図１において中央処理装置１００とは独立のハードウェアによって構成されているように図示されているが、その機能を中央処理装置１００とその動作プログラムによって実現することができる。すなわち、電圧設定レジスタ１１４，周波数設定レジスタ１２４の変更処理ルーチンにおいて、先ず当該レジスタ１１４，１２４の値を中央処理装置１００が読み込み、読み込んだ値と変更すべき値とを比較して上記不所望な指示状態であるかを判定し、不所望な指示状態である場合には当該変更処理ルーチンを終了して所定の例外処理ルーチンを行うようにする。
【００４０】
図４には制御回路１３０による動作電圧及び周波数の切換え制御手順の一例が示される。動作電圧及び周波数を下げる場合、所要の回路モジュールの周波数を下げるような値を以ってＣＰＵ１００により周波数設定レジスタ１２４が書換えられ（ステップＳ１０）、当該所要の回路モジュールの動作電圧を下げるような値を以ってＣＰＵ１００により電圧設定レジスタ１１４が書換えられる（ステップＳ１１）。書換えられた値に対して制御回路１３０及び論理回路１４０が設定状態をチェックする（ステップＳ１２）。当該チェックの結果、内部電圧１１３を増加させずに内部クロック信号１２２の周波数を増加させる指示、又は内部クロック信号１２２の周波数を減少させずに内部電圧１１３を減少させる指示である場合には、その旨を中央処理装置１００に通知して処理を終了する。それ以外の切換え態様の場合には、出力ゲート１２０６によって内部クロック信号１２２の出力を停止したアイドリング状態において（ステップＳ１３）上記周波数設定レジスタ１２４及び電圧設定レジスタ１１４の設定値に従って内部電圧１１３，内部クロック信号１２２の周波数が切換えられる。このアイドリング状態は電源回路１１０及びクロック発生回路１２０の状態が安定するまでの所定時間継続され、その後、出力ゲート１２０６が内部クロック信号の出力を再開することによって新しい電圧及び周波数での動作が可能にされる（ステップＳ１４）。
【００４１】
動作電圧及び周波数を上げる場合、所要の回路モジュールの内部動作電圧を上げるような値を以ってＣＰＵ１００により電圧設定レジスタ１１４が書換えられ（ステップＳ２０）、当該所要の回路モジュールの動作周波数を上げるような値を以ってＣＰＵ１００により周波数設定レジスタ１２４が書換えられる（ステップＳ２１）。書換えられた値に対して制御回路及び論理回路が設定状態をチェックする（ステップＳ２２）。当該チェックの結果、内部電圧１１３を増加させずに内部クロック信号１２２の周波数を増加させる指示、又は内部クロック信号１２２の周波数を減少させずに内部電圧１１３を減少させる指示である場合には、その旨を中央処理装置１００に通知して処理を終了する。それ以外の切換え態様の場合には、出力ゲート１２０６によって内部クロック信号１２２の出力を停止したアイドリング状態において（ステップＳ２３）上記周波数設定レジスタ１２４及び電圧設定レジスタ１１４の設定値に従って内部電圧１１３，内部クロック信号１２２の周波数が切換えられる。このアイドリング状態は電源回路１１０及びクロック発生回路１２０の状態が安定するまでの所定時間継続され、その後、出力ゲート１２０６が内部クロック信号の出力を再開することによって新しい電圧及び周波数での動作が可能にされる（ステップＳ２４）。尚、その他の切換え態様についても同様に制御される。
【００４２】
図４の手順において内部クロック信号１２２の出力を停止したアイドリング状態のときに内部クロック信号周波数と内部電圧を切換え、その後一定時間経過後に内部クロック信号の供給を再開するという手順は、現在の動作周波数の変更に先立って電源電圧が減少される状態を阻止し、また、電源電圧の増加に先立って周波数の増加されたクロック信号が回路モジュールに供給される状態を阻止する。特に切換え時における内部クロック信号の供給停止という簡単な手法によってそれを実現できる。アイドリング期間はタイマ１０５によって制御できる。このタイマ１０５はその他の回路モジュールとは別経路を介してクロック信号が供給され、その他の回路モジュールに対してクロック信号の供給が停止されていても当該タイマ１０５は計数若しくは計時動作を維持できるようになっている。尚、第１の制御手段による制御手順としては、電圧及び周波数を下げるときは先ず周波数を下げる切換え動作を完了してから内部電圧を下げる動作を行うように制御し、また、電圧及び周波数を上げるときには最初に内部電圧を上げる切換えを完了してから周波数を増加する動作を行うように制御することもできる。但し、その場合には切換え手順の制御が切換え態様毎に個別化若しくは分類化されなければならない。
【００４３】
上記第１の実施例によれば以下の作用効果を有する。（１）クロック周波数と動作電圧の切換え態様を指示する制御情報は中央処理装置によって書換え可能に周波数設定レジスタ１２４，電圧設定レジスタ１１４に設定されるから、シングルチップマイクロコンピュータ１に内蔵された回路モジュールの性能やデータ処理の軽重に応じて当該制御情報を必要に応じて書換えることで、回路モジュールの動作電圧と動作周波数に対する自由な切換えを実現できる。したがって、相対的に高速のデータ処理を要しないタスク若しくは回路モジュールに対しては低消費電力を優先させ、相対的に処理の高速性を要するタスク若しくは回路モジュールに対しては電力消費量の増大を許容して、これによって全体としてのデータ処理効率を向上させつつ低消費電力を実現することができる。所定の回路モジュール毎に個別的にクロック周波数と電源電圧の切換えを可能にすることにより、上記全体としてのデータ処理効率を向上させつつ低消費電力化を図る制御を更にきめ細かく実現できる。
【００４４】
（２）クロック周波数と動作電圧の切換えにおいて動作電圧を上げずにクロック信号の周波数を上げることは、回路の動作が高速化されても回路の駆動能力が向上されずに当該高速動作に不適応な比較的大きな信号伝播遅延を生ずることになる。また、クロック信号周波数を下げずに電源電圧を低下させることは、回路の駆動能力が低下されて信号伝播遅延が増大されるにも拘らず依然として回路が高速動作を行うことになる。上記した第２の制御手段１３２はそのような指示に対してはクロック周波数と電源電圧の切換えを抑止し、これによって周波数と動作電圧の不所望な切換え態様による誤動作を防止することができる。
【００４５】
（３）クロック信号の周波数と動作電圧の双方を低下させる場合、先に動作電圧を低下させると、クロック信号周波数が低下されるまでの間、動作状態におかれた回路の駆動能力が低下して不所望な信号遅延によって誤動作を生ずる虞がある。この場合に上記第１の制御手段１３１は、現在の動作周波数の変更に先立って動作電圧が減少される状態を阻止するように周波数と動作電圧の切換え手順を制御する。また、クロック信号の周波数と動作電圧とを増加させる場合、先にクロック信号周波数を増大させると、動作電圧が上昇されるまでの間、動作状態におかれた回路の駆動能力は動作速度の向上に追従しきれずに誤動作を生ずる虞がある。この場合にも上記第１の制御手段１３１は、動作電圧の上昇に先立って周波数の高くされたクロック信号が供給される状態を阻止するように周波数と動作電圧の切換え手順を制御する。したがって、クロック信号周波数と動作電圧の切換え手順の点において回路モジュールが誤動作する虞を未然にを防止することができる。
【００４６】
図５には本発明に係るデータ処理装置の第２実施例が示される。図１に示されるものと同一機能を有る回路ブロックには同一符合を付してその詳細な説明を省略する。図５に示される第２実施例は、図１に示される実施例に対して電源回路１１０とクロック発生回路１２０をチップの外部に配置し、電源電圧の選択信号１５０と周波数の選択信号１５１をマイクロコンピュータから受け取って、それにより指示される電圧の電源を電源ピン１１１に、それにより指示される周波数のクロック信号をクロック入力ピン１２１に供給する。図１の実施例と同様に所定の回路モジュール毎に内部電圧と動作周波数を設定可能にする場合には電源ピン１１１やクロック入力ピン１２１は夫々複数個必要とされる。また、特に図示はしないが、図１の実施例において電圧設定レジスタ１１４及び周波数設定レジスタ１２４の一部を外部電源回路と外部クロック発生回路の動作選択のために割り当て、これによって設定された値に応ずる制御信号をチップの外部に出力可能にして、図１の実施例において電源ピン１１１に供給される電源電圧とクロック入力ピン１２１に供給される外部クロック信号の周波数をも切換え可能にすることができる。
【００４７】
図６には本発明に係るデータ処理装置の第３実施例であるシングルチップマイクロコンピュータのブロック図が示される。本実施例のシングルチップマイクロコンピュータ３は、クロック信号に同期動作される回路モジュールとして、中央処理装置（ＣＰＵとも記す）３００、乗算回路（ＭＵＬＴとも記す）３０１、除算（ＤＩＶＵ）３０２、メモリ３０３、及びタイマ３０４を代表的に備え、更に、図示しない外部バスインタフェース回路などを備え、それらは所定の内部バス３０５を介して接続可能にされる。特に制限されないが、上記乗算回路３０１及び除算回路３０２は共に中央処理装置３００より発行されるコマンドを解読してデータ処理を行うコプロセッサとして位置付けられる。上記メモリ３０３は中央処理装置１００の動作プログラムなどを保有するＲＯＭ、中央処理装置１００の作業領域又はデータの一時記憶領域とされるＲＡＭなどを構成する。
【００４８】
図６において３０６は代表的に示された回路モジュール３００〜３０４の動作電源と動作クロック信号を形成して各部に出力する電圧・周波数制御部である。３１１は３．３Ｖのような電源電圧Ｖｉｎが供給される電源ピン、３１２は０Ｖのような接地電位を受けるグランドピン、３２１は外部クロック信号ＣＬＫｉｎが供給されるクロック入力ピンである。３４０は電圧・周波数制御部３０６から出力されて回路モジュール３００〜３０３に供給される内部クロック信号、３４１はタイマ３０４に専用的に供給される内部クロック信号、３４２はマイクロコンピュータの各部に供給される電源電圧としての動作電圧である。
【００４９】
ここで先ず上記電圧・周波数制御部３０６を概略的に説明する。この電圧・周波数制御部３０６は、クロック信号周波数と回路モジュールの動作電圧を回路モジュール毎に夫々指定するためのモードレジスタ３０７を有し、中央処理装置３００によって該モードレジスタ３０７に書換え可能に設定された制御情報に従って回路モジュールの動作電圧と動作クロック周波数を変更して各部に供給する。モードレジスタ３０７へは中央処理装置３００から内部バス３０５を介して制御情報が書込まれ、不適当な内容の制御情報がモードレジスタ３０７に設定された場合にはこれを中央処理装置３００に通知し、動作電圧と動作周波数の切換え態様が誤動作の虞のある場合にはその切換えを禁止させる。切換えが許容される場合にはタイマ３０４で管理される一定時間クロック信号の供給を停止し、切換えに伴う回路の不安定な動作によって誤動作を生じないようにする。また、モードレジスタ３０７の内容はタスク毎に切換え可能にされ、タスク単位での消費電力とデータ処理性能を制御できるようになっている。
【００５０】
図７には上記電圧・周波数制御部３０６の詳細な一例が示される。この電圧・周波数制御部３０６は、電源回路３１０、クロック発生回路３２０、及び制御回路３３０から成る。電源回路３１０は電源ピン３１１から電源電圧Ｖｉｎを受けると共にグランドピン３１２から０Ｖのような接地電圧を受け、上記回路モジュール３００〜３０４の動作電源として選択的に異なる内部電圧３４２を出力可能にされる。本実施例に従えば、その内部電圧３４２は接地電位を基準に上記電源電圧（Ｖｉｎ＝３．３Ｖ）又は該電源電圧を降圧した電圧（２．５Ｖ）とされる。接地電位は各回路モジュールに共通に供給される。降圧された電圧はＤＣ／ＤＣ変換器３１３によって形成される。双方の動作電圧はモジュール３００〜３０４毎に設けられた代表的に示されるセレクタ３１４１〜３１４３の入力に供給され、夫々のセレクタ３１４１〜３１４３の出力は対応する回路モジュールの電源端子に結合される。代表的に示されたセレクタ３１４１〜３１４３は、モードレジスタ３０７の後述する電圧設定フィールドに格納された制御情報に従って各別に入力電圧を選択して出力する。尚、電圧・周波数制御回路などのその他の回路には特に制限されないが動作電源として３．３Ｖが供給される。
【００５１】
上記ＤＣ／ＤＣ変換器３１３は図８に示されるようにスイッチング素子３１３１、入力電圧Ｖｉｎから２．５Ｖの参照電位Ｖｒｅｆを形成する参照電位生成回路３１３２、オペアンプ３１３３、ショットキーダイオード３１３４、コイル３１３５、平滑用コンデンサ３１３６から成る降圧型スイッチングレギュレータとされ、オペアンプ３１３３による負帰還動作によって２．５Ｖに降圧された電圧Ｖｏｕｔを生成する。コイル３１３５はチップの外付けとされ、ショットキーダイオード３１３４はチップ内蔵又は外付け何れであってもよい。
【００５２】
上記クロック発生回路３２０は、外部のクロック入力ピン３２１から外部クロック信号若しくは図示しない振動子を介して発生される発振出力を受け、周波数の異なるクロック信号を内部クロック信号３４０として選択的に出力可能にされる。すなわち、このクロック発生回路１２０は、外部からのクロック信号を受けてその周波数を逓倍して出力するＰＬＬ回路３２２、及びＰＬＬ回路３２２の出力に直列に２段結合された分周回路３２３，３２４を備える。分周回路３２３，３２４は例えば入力の周波数を夫々１／４にして出力する。上記ＰＬＬ回路３２２そして分周回路３２３，３２４の夫々の出力は上記回路モジュール３００〜３０３単位に設けられた代表的に示されるセレクタ３２５１〜３２５３の入力に供給され、夫々のセレクタ３２５１〜３２５３の出力はクロックドインバータのような出力ゲート３２６１〜３２６３を介して対応する回路モジュールのクロック入力端子に結合される。代表的に示されたセレクタ３２５１〜３２５３はモードレジスタ３０７の後述する周波数設定フィールドに格納された制御情報に従って各別に入力を選択して出力する。尚、タイマ３０４に専用化されたクロック信号３４１は供給停止されないようになっている。
【００５３】
図９には上記モードレジスタ３０７の詳細な一例が示される。このモードレジスタ３０７は電圧設定フィールド３０７１と周波数設定フィールド３０７２より構成される。電圧設定フィールド３０７１は代表的に示された回路モジュール３００〜３０３毎に１ビットづつ割当てられ、その論理値”１”は２．５Ｖ、”０”は３Ｖを意味し、それにしたがって対応回路モジュールに供給すべき内部電圧が指定される。周波数設定フィールド３０７２は代表的に示された回路モジュール３００〜３０３毎に２ビットづつ割当てられ、その”００”は１００ＭＨｚ、”０１”は２５ＭＨｚ、”１０”は６．２５ＭＨｚ、”１１”はクロック停止を意味し、それに従って対応回路モジュールに供給すべきクロック信号周波数が指定される。図７の構成に従えば、電圧設定フィールド３０７１の制御情報はラッチ回路３３１に所定のタイミングでラッチされ、ラッチされた制御情報は対応する回路モジュールのためのセレクタ３１４１〜３１４３の選択端子に供給される。周波数設定フィールド３０７２の制御情報はラッチ回路３３２に所定のタイミングでラッチされ、ラッチされた制御情報はそれぞれ２ビット毎にデコーダ３３３でデコードされ、夫々デコードされた選択信号が対応する回路モジュールのためのセレクタ３２５１〜３２５３の選択端子に供給される。これにより夫々の回路モジュール３００〜３０３には電圧設定フィールド３０７１で指定された動作電圧と周波数設定フィールド３０７２で指定された周波数のクロック信号が各別に供給される。
【００５４】
上記モードレジスタ３０７は、例えば中央処理装置３００の所定のアドレス空間に配置され、ＬＤＣ（ロード・コントロール・レジスタ）命令のような命令を中央処理装置３００が実行することによって制御情報の設定が行われる。したがって、モードレジスタ３０７の書換えはマイクロコンピュータ３の動作プログラム次第で所望に行うことができる。例えば、処理の軽重に従ってタスク毎に設定することもできる。即ち、タスクの起動に際してＣＰＵ３００のスタックポインタやステータスレジスタなどの退避、初期設定、復帰などの対象に当該モードレジスタを含めるようにすればとい。尚、パワー・オン・リセット時において双方のレジスタ１１４，１２４は全ビット０に初期化される。
【００５５】
上記制御回路３３０は、上記ラッチ回路３３１，３３２及びデコーダ３３３を備えると共に、ラッチ回路３３１，３３２のラッチタイミングと出力ゲート３２６１〜３２６３の動作制御などを行うシーケンス制御部３３４を有し、モードレジスタ３０７に格納された制御情報に基づく動作電圧と周波数の切換えを制御する。このシーケンス制御部３３４は動作電圧及びクロック信号周波数の切換えに際して回路モジュールの誤動作を未然に防止するために第１の制御手段３３４１と第２の制御手段３３４２を備える。
【００５６】
第１の制御手段３３４１は内部クロック信号３４０の周波数と内部電圧３４２の切換え手順の点において内部回路モジュールの誤動作を防止するための制御を司る。すなわち、内部クロック信号３４０の周波数と内部電圧３４２の双方を減少させる場合、先に内部電圧３４２を減少させると、内部クロック信号３４０の周波数が減少されるまでの間、動作状態におかれた回路モジュール内回路の駆動能力が低下して不所望な信号遅延によって誤動作を生ずる虞がある。また、内部クロック信号３４０の周波数と内部電圧３４２とを増加させる場合、先に内部クロック信号３４０の周波数を増加させると、内部電圧３４２が増加されるまでの間、動作状態におかれた回路モジュール内回路の駆動能力は動作速度の向上に追従しきれずに誤動作を生ずる虞がある。そこでこれらに対処するため、第１の制御手段３３４１は、上記クロック発生回路３２０及び電源回路３１０における内部クロック信号３４０の周波数及び内部電圧３４２の変更手順として、クロック信号３４０の周波数と内部電圧３４２とを減少させる指示を検出したときには現在の動作周波数の変更に先立って動作電圧３４２が減少される状態を阻止し、また、内部クロック信号３４０の周波数と内部電圧３４２とを増加させる指示を検出したときには当該電圧３４２の増加に先立って周波数の増加されたクロック信号３４０が供給される状態を阻止する。
【００５７】
第２の制御手段３３４２は、内部クロック信号３４０の周波数と内部電圧３４２の不所望な切換え態様による誤動作を防止するための制御を司る。すなわち、内部クロック信号３４０の周波数と内部電圧３４２の切換えにおいて内部電圧３４２を増加させずにクロック信号３４０の周波数を増加させると、回路の動作が高速化されても回路の駆動能力が向上されずに当該高速動作に不適応な比較的大きな信号伝播遅延を生ずることになる。また、クロック信号３４０の周波数を減少させずに内部電圧３４２を減少させると、回路の駆動能力が低下されて信号伝播遅延が増大されるにも拘らず依然として回路が高速動作を行うことになる。そこで、第２の制御手段３３４２は、それらの態様で切換えられて誤動作を生じないようにするために、上記モードレジスタ３０７の書換え前後における上記制御情報に基づいて、内部電圧３４２を増加させずに内部クロック信号３４０の周波数を増加させる指示、又は内部クロック信号３４０の周波数を減少させずに内部電圧３４２を減少させる指示を検出することによって、当該指示に基づくクロック発生回路３２０及び電源回路３１０の出力状態変更を禁止させる。
【００５８】
図１０には上記第１及び第２の制御手段３３４１，３３４２による制御態様の一例が示される。すなわち、第２の制御手段３３４２によって周波数と動作電圧の切換えが禁止されるエラーの態様は、動作電圧を変更しないで周波数を増加させる場合（ａ）、周波数を変更しないで動作電圧を減少させる場合（ｄ）、及び周波数を増加して動作電圧を減少させる場合（ｆ）とされる。第１の制御手段３３４１によって動作電圧と周波数の切換え手順が規定されるべき態様は、周波数と動作電圧が共に増加される場合（ｅ）、周波数と動作電圧が共に減少される場合（ｈ）、及び周波数が減少され動作電圧が増加される場合（ｇ）とされる。態様（ｅ）の場合には動作電圧が増加される前に動作周波数の増加されたクロック信号にて回路モジュールが動作されてはならない。態様（ｇ），（ｈ）の場合には現在の動作周波数の変更前に動作電圧が変化されてはならない。
【００５９】
例えば上記第１の制御手段３３４１は、動作電圧と周波数の切換え態様を判定し、図１０の（ｇ），（ｈ）の場合には、周波数設定フィールド３０７２の値を先にラッチ回路３３２にラッチさせて周波数を変更し、次に電圧設定フィールドの値をラッチ回路３３１にラッチさせて動作電圧を変更する。態様（ｅ）の場合には、電圧設定フィールドの値をラッチ回路３３１にラッチさせて動作電圧を変更し、その後に周波数設定フィールド３０７２の値をラッチ回路３３２にラッチさせて周波数を変更する。その他の態様についてはラッチ回路３３２，３３１のラッチタイミングは一切規定されない。また、第１の制御手段３３４１には、動作電圧と周波数の切換え時は回路モジュールへのクロック信号３４０の供給を上記出力ゲート３２６１〜３２６３を介して停止させ、回路動作が安定する一定期間を経過後にクロック信号３４０の供給を再開する手順を採用してもよい。図６において第１の制御手段３３４１は中央処理装置３００とは独立のハードウェアとして図示されているが、その機能を中央処理装置３００とその動作プログラムによって実現できる。
【００６０】
例えば上記第２の制御手段３３４２は、上記モードレジスタ３０７に対する書換えの指示を検出したとき、書換え直前のレジスタ３０７の値を保持し、保持した前の値と書換えられたモードレジスタ３０７の値とを比較して上記エラーの態様（ａ），（ｄ），（ｆ）が指示されたか否かを判定する。当該エラーの態様を検出したときは、変更されたモードレジスタ３０７の値による周波数と電圧の選択状態変更を抑制する。即ち、ラッチ回路３３１，３３２によるラッチ動作を禁止する。更に、当該エラーの態様が指示されたことを中央処理装置１００に通知して当該モードレジスタ３０７に対する再度の設定を促す。これによって周波数と電源電圧の不所望な切換え態様による誤動作を防止できる。
【００６１】
上記第２の制御手段３３４２は図６において中央処理装置３００とは独立のハードウェアによって構成されているように図示されているが、その機能を中央処理装置３００とその動作プログラムによって実現することができる。すなわち、モードレジスタ３０７の変更処理ルーチンにおいて、先ず当該レジスタ３０７の値を中央処理装置３００が読み込み、読み込んだ値と変更すべき値とを比較して上記エラーの態様であるかを判定し、そうである場合には当該変更処理ルーチンを終了して所定の例外処理ルーチンを行うようにする。
【００６２】
図１１にはシーケンス制御部３３４による動作電圧及び周波数の切換え制御手順の一例が示される。先ず中央処理装置３００によってモードレジスタ３０７に制御情報が書込まれる（ステップＳ３０）。シーケンス制御部３３４は書換え前後の制御情報に基づいて設定状態をチェックする（ステップＳ３１）。当該チェックの結果、その設定状態が図１０の態様（ａ），（ｄ），（ｆ）の何れかである場合を検出すると中央処理装置３００にエラーを通知して処理を終了する（ステップＳ３２）。切換えの態様がそれ以外の場合には出力ゲート３２６１〜３２６３を高出力インピーダンス状態に制御してクロック信号３４０の出力を停止し（ステップＳ３４）、更にタイマ３０４によるタイマカウント動作を起動させる（ステップＳ３４）。この状態においては、クロック信号周波数と動作電圧の切換えが可能にされる回路モジュールには動作クロック信号が供給されないので夫々の動作は停止される。このとき、シーケンス制御部３３４はラッチ回路３３１，３３２のラッチ動作を行い、これによって当該ラッチされた制御情報に従って、セレクタ３２５１〜３２５３によるクロック信号の選択状態が変更されると共に、セレクタ３１４１〜３１４３による動作電圧の選択状態が変更されて、動作電圧と周波数が切換えられる（ステップＳ３５）。次いで、タイマ３０４によるタイマカウントがカウントアップしたことを検出して（ステップＳ３６）、クロック信号３４０の供給を再開する。タイマ３０４によるタイマカウントがカウントアップするまでの時間は、電源回路３１０及びクロック発生回路内３２０の状態が安定し、また、切換えられた電圧が対応回路モジュール内で安定化すまでに必要な時間とされる。これによって新しい動作電圧及び周波数での動作が可能にされる。
【００６３】
この制御手順において内部クロック信号３４０の出力を停止した状態において内部クロック信号周波数と内部電圧を切換え、その後一定時間経過後に内部クロック信号の供給を再開するという手順は、現在の動作周波数の変更に先立って電源電圧が減少される状態を阻止し、また、電源電圧の増加に先立って周波数の増加されたクロック信号が回路モジュールに供給される状態を阻止する手順を実現している。特に切換え時における内部クロック信号の供給停止という簡単な手法によってそれを実現できる。尚、タイマ３０４はその他の回路モジュールとは別の専用的なクロック信号３４１が供給され、その他の回路モジュールに対してクロック信号の供給が停止されていても当該タイマ３０４はタイマカウント動作を維持できるようになっている。
【００６４】
図１２にはシーケンス制御部３３４による動作電圧及び周波数の切換え制御手順の別の例が示される。同図に示される手順においてはステップＳ３１の後に、図１０の態様（ｇ），（ｈ）に相当する切換えかを判定するステップＳ４０が介在され、当該態様の場合には、内部クロック信号を停止し（ステップＳ４１）且つタイマカウントを開始した（ステップＳ４２）状態で先に周波数の変更を行い（ステップＳ４３）、タイマカウント終了後に（ステップＳ４４）クロック信号の供給を再開して（ステップＳ４５）、動作電圧を変更する（ステップＳ４６）ものである。
【００６５】
上記第３の実施例によれば以下の作用効果を有する。（１）クロック周波数と動作電圧の切換え態様を指示する制御情報は中央処理装置によって書換え可能にモードレジスタ３０７に設定されるから、シングルチップマイクロコンピュータ３に内蔵された回路モジュールの性能やデータ処理の軽重に応じて当該制御情報を必要に応じて書換えることで、回路モジュールの動作電圧と動作周波数に対する自由な切換えを実現できる。したがって、相対的に高速のデータ処理を要しないタスク若しくは回路モジュールに対しては低消費電力を優先させ、相対的に処理の高速性を要するタスク若しくは回路モジュールに対しては電力消費量の増大を許容して、これによって全体としてのデータ処理効率を向上させつつ低消費電力を実現することができる。更に、所定の回路モジュール毎に個別的にクロック周波数と電源電圧の切換えを可能にすることにより、上記全体としてのデータ処理効率を向上させつつ低消費電力化を図る制御を更にきめ細かく実現できる。
【００６６】
（２）第２の制御手段３３４２により、上記第１実施例同様に周波数と動作電圧の不所望な切換え態様による誤動作を防止することができる。
【００６７】
（３）第１の制御手段３３４１により上記第１実施例同様にクロック信号周波数と動作電圧の切換え手順の点において回路モジュールが誤動作する虞を未然にを防止することができる。
【００６８】
図１３には本発明に係るデータ処理装置の第４実施例が示される。図１に示されるものと同一機能を有る回路ブロックには同一符合を付してその詳細な説明を省略する。図１３に示される第４実施例は、図６に示される実施例に対して電源回路３１０とクロック発生回路３２０をシングルチップマイクロコンピュータ４の外部に配置し、電源電圧の選択信号４００と周波数の選択信号４０１をマイクロコンピュータ４から受け取って、それにより指示される電圧の電源を複数個の電源ピン４０２に、それにより指示される周波数のクロック信号を複数個のクロック入力ピン４０３に供給する。また、特に図示はしないが、図６の実施例においてモードレジスタ３０７に外部電源回路と外部クロック発生回路の動作選択のための制御情報指定フィールドを設け、これによって設定された値に応ずる制御信号をチップの外部に出力可能にして、図６の実施例において電源ピン３１１に供給される電源電圧とクロック入力ピン３２１に供給される外部クロック信号の周波数をも切換え可能にすることができる。
【００６９】
図１４には本発明に係るデータ処理装置の第５実施例が示される。同図に示されるものは回路基板に形成されるようなマルチチップマイクロコンピュータとされ、夫々半導体集積回路化された中央処理装置５００、ディスプレイコントローラ５０１、メモリ５０２、コプロセッサ５０３、及び入出力回路５０４などが外部バスを共有して構成される。このシステムにおいて上記中央処理装置５００、ディスプレイコントローラ５０１、メモリ５０２、コプロセッサ５０３は、クロック信号及び動作電源の電圧が個別的に切換え可能にされる。そのために、上記クロック発生回路３２０、電源回路３１０が設けられ、また、中央ｋ処理装置５００には上記モードレジスタ３０７及び制御部３３０が内蔵されている。この実施例においてモードレジスタには上記中央処理装置５００、ディスプレイコントローラ５０１、メモリ５０２、コプロセッサ５０３の動作周波数と動作電圧を個別的に設定するための記憶領域が割当てられている。
【００７０】
〔２〕次に、内部バスが階層化されたデータ処理装置に対する動作周波数切換えに係る発明の実施例を図１５から図３２を参照して説明する。
【００７１】
図１５には本発明の別の実施例に係るマイクロコンピュータ６が示される。同図に示されるマイクロコンピュータ６は、例えば公知の半導体集積回路製造技術によって単結晶シリコンのような１個の半導体基板に形成される。このマイクロコンピュータは、特に制限されないが、ＣＰＵバス（第１の内部バス）６０、キャッシュバス（第２の内部バス）７０、及び周辺バス（第３の内部バス）８０から成るスリーバス構成を有する。夫々のバス６０，７０，８０はデータ、アドレス、制御信号の各信号線群を備えている。ＣＰＵバス６０には中央処理装置（ＣＰＵ）６１、キャッシュメモリ装置６２、アドレス変換バッファ（ＴＬＢ）６３、クロック制御回路６５、及びブレークコントローラ６４が結合される。キャッシュメモリ装置６２は他方においてキャッシュバス７０に結合され、当該キャッシュバス７０には周辺バスインタフェース７１、バスコントローラ７２、及び入出力回路７３が結合される。入出力回路７３は図示しない外部バスに結合され、バスコントローラ７２は外部バスに結合された回路モジュールとキャッシュバス７０とのインタフェース制御を行う。周辺バスインタフェース７１は周辺バス８０に接続されたタイマ８１、割り込みコントローラ８２、シリアルインタフェース８３のような周辺回路モジュールに対するインタフェース制御を行う。周辺バス８０にはバスマスタは結合されない。
【００７２】
本実施例のマイクロコンピュータ６は論理アドレス空間を論理ページと呼ばれる単位に分割し、そのページ単位に物理アドレスへのアドレス変換を行うための仮想記憶をサポートする。上記アドレス変換バッファ６３はメモリ部とその制御部とを備える。メモリ部は論理ページ番号と物理ページ番号とに関する変換対などをＴＬＢエントリとして格納する連想メモリとされ、その制御部は中央処理装置６１が出力する論理アドレスをメモリ部を用いて物理アドレスに変換する制御を行う。ＴＬＢミスの場合にはその論理アドレスに対応されるＴＬＢエントリは制御部を介して外部のページテーブルから読み込まれる。
【００７３】
中央処理装置６１は例えば４ギガバイトの論理アドレス空間をサポートするために３２ビットのアドレスを利用する。中央処理装置６１の回路ブロック内には汎用レジスタや算術論理演算器などで代表される演算部と、プログラムカウンタなどの制御用レジスタ群、そして命令のフェッチや解読そして命令実行手順を制御したり演算制御を行う制御部を供える。この中央処理装置６１は入出力回路７３を介して図示しない外部メモリから命令をフェッチし、その命令記述に応じたデータ処理を行う。
【００７４】
キャッシュメモリ装置６２は、特に制限されないが、連想メモリ部とキャッシュ制御部を備える。メモリ部に対するインデックスは論理アドレスの一部を用いて行われ、エントリのタグ部には物理アドレスが保有され、インデックスされたタグ部はその論理アドレスがアドレス変換バッファ６３で変換された物理アドレスと比較され、その比較結果に応じてキャッシュミス／ヒットを判定する。キャッシュミスの場合に当該キャッシュミスに係るデータ又は命令はキャッシュ制御部がバスコントローラ７２及び入出力回路７３を介して図示しない外部メモリから読み込み、読み込まれたデータ又は命令は新たなキャッシュエントリとしてキャッシュメモリ装置６２に格納されると共に、ＣＰＵバス６０に供給される。ＣＰＵバス６０とキャッシュバス７０とのインタフェースはキャッシュメモリ装置６２に含まれるキャッシュ制御部が行う。連想メモリ部のデータ入出力端子及びアドレス入力端子はＣＰＵバス６０に結合されている。
【００７５】
クロックパルスジェネレータ９はＣＰＵクロック信号（第１のクロック信号）９１、バスクロック信号（第２のクロック信号）９２、及び周辺クロック信号（第３のクロック信号）９３を出力する。ＣＰＵクロック信号９１はＣＰＵバス６０に結合された回路モジュール（ＣＰＵ６１，キャッシュメモリ装置６２，ＴＬＢ６３，ブレークコントローラ６４，クロック制御回路６５）のための動作クロック信号とされる。バスクロック信号９２は、キャッシュバス７０に結合された回路モジュール（周辺バスインタフェース７１，バスコントローラ７２，入出力回路７３）のための動作クロック信号とされる。周辺クロック信号９３は、周辺バス８０に結合された回路モジュール（タイマ８１，割り込みコントローラ８２，シリアルインタフェース８３）のための動作クロック信号とされる。クロック制御回路６５は、ＣＰＵバス６０を介して中央処理装置６１にて設定された制御情報により上記ＣＰＵクロック信号９１と周辺クロック信号９３の周波数を動的に変更可能とする。
【００７６】
ここで、ＣＰＵクロック信号９１は中央処理装置６１、キャッシュメモリ装置６２、及びアドレス変換バッファ６３などの高速動作されるべき回路モジュール用のクロック信号とされる。周辺クロック信号９３は高速動作不要な内蔵周辺回路モジュールとのためのクロック信号とされる。それらクロック信号９１，９３はクロック制御回路６５に対する設定内容次第で信号周波数が動的に変更可能にされる。バスクロック信号９２は入出力回路７３を介して接続されるメモリなどの外部デバイスの動作速度に合わせたクロック信号とされるから、信号周波数の動的な変更対象とはされない。上記クロック信号９１，９３の周波数変更のためにクロックパルスジェネレータ９の内部状態が変更されたときも、バスクロック信号９２の周波数を変更しないようにクロックパルスジェネレータ９はクロック制御回路６にて制御される。
【００７７】
図１６にはクロックパルスジェネレータ９及びクロック制御回路６５の詳細な一例ブロック図が示される。上記クロックパルスジェネレータ９は、外部クロック源に結合可能な第１の接続端子として振動子接続用の端子ＸＴＡＬ及び振動子接続又は外部クロック信号入力用の端子ＥＸＴＡＬ、別の外部クロック源に結合可能な第２の接続端子として外部クロック入力又は出力用の端子ＣＫＩＯを備える。
【００７８】
水晶発振器９１０、セレクタ９１１、ＰＬＬ回路９１２、分周器９１３、セレクタ９１４は、端子ＸＴＡＬ，ＥＸＴＡＬに結合された第１の周波数変更手段を構成し、セレクタ９２０及びＰＬＬ回路９２１は端子ＣＫＩＯに結合された第２の周波数変更手段を構成する。水晶発振器９１０は端子ＸＴＡＬ，ＥＸＴＡＬに接続された水晶振動子の固有振動を利用した例えばオーバートーン型やゲート型の回路で構成される。セレクタ９１１は水晶発振器９１０の出力又は端子ＥＸＴＡＬから直接供給されるクロック信号の一方を選択する。ＰＬＬ回路９１２は端子ＣＡＰ２を介してＰＬＬ容量が結合され、入力クロック信号の同期と逓倍を行う。逓倍率は１倍又は４倍とされる。分周器９１３は入力クロック信号を１／２分周する。セレクタ９１４はＰＬＬ回路９１２の出力又は分周器９１３の出力の一方を基本クロック信号９１５として選択する。上記セレクタ９１４から出力される基本クロック信号９１５はその動作が選択されたときクロックバッファ９５０を介して端子ＣＫＩＯから外部に出力可能にされる。９５１はそのためのクロック信号出力経路である。上記セレクタ９２０はセレクタ９１４からの基本クロック信号９１５又は端子ＣＫＩＯから入力されたクロック信号を選択する。ＰＬＬ回路９２１は端子ＣＡＰ１を介してＰＬＬ容量が結合され、セレクタ９２０からの入力クロック信号の同期と逓倍を行う。逓倍率は１倍、２倍又は４倍とされる。セレクタ９３０，９３１はセレクタ９１４から出力される基本クロック信号９１５又はＰＬＬ回路９２１から出力されるクロック信号を選択する選択手段を構成する。分周器９４０、分周器９４１、セレクタ９４２，９４３，９４４は、セレクタ９３０，９３１で選択されたクロック信号を受けて上記ＣＰＵクロック信号９１、周辺クロック信号９３、及びバスクロック信号９２の周波数を各別に変更可能にする第３の周波数変更手段を構成する。分周器９４０はセレクタ９３０からのクロック信号を、分周比１、１／２、１／４で分周し、その何れか一つをセレクタ９４２が選択してＣＰＵクロック信号９１とする。分周器９４１はセレクタ９３１からのクロック信号を、分周比１、１／２、１／４で分周し、その何れか一つをセレクタ９４３が選択して周辺クロック信号９３とし、またその何れか一つをセレクタ９４４が選択してバスクロック信号９２とする。
【００７９】
クロック制御回路６５はクロックパルスジェネレータ９の動作を制御する。その制御態様は、モード端子ＭＤ０，ＭＤ１，ＭＤ２に対する外部からの設定状態と、中央処理装置６１によるクロック制御レジスタ６５０に対する設定状態とに大別される。本実施例において外部クロック源は端子ＸＴＡＬ，ＥＸＴＡＬに結合される水晶振動子、端子ＥＸＴＡＬからの外部クロック信号、端子ＣＫＩＯからの外部クロック信号の３通りの何れかとされる。どれを採用するかによってクロックパルスジェネレータにおけるクロック信号の伝達経路が相違されなければならず、少なくともセレクタ９１１と９２０の選択状態が決定されなければ、ＣＰＵクロック信号９１が発生されず中央処理装置６１は動作できないから、その何れを採用しているかは中央処理装置６１によるクロック制御レジスタ６５０への制御情設定では対処できない。この意味においてもモード端子ＭＤ０〜ＭＤ２によるクロックパルスジェネレータ９の動作制御が必要とされる。更に、クロック制御回路６５はモード端子ＭＤ０，ＭＤ１，ＭＤ２の状態とクロック制御レジスタ６５０の設定値とに従い、基本クロック信号９１５によってクロック信号９１〜９３を生成する場合にはバスクロック信号９２の周波数が基本クロック信号９１５の周波数に一致するようにセレクタ９４４の選択状態を制御し、端子ＣＫＩＯから供給されるクロック信号によってクロック信号９１〜９３を生成する場合にはバスクロック信号９２の周波数が端子ＣＫＩＯからのクロック信号周波数に一致するようにセレクタ９４４の選択状態を制御する。これは、バスクロック信号９２の周波数は外部に接続される外部デバイスの許容動作速度に応じて一定に保たれなければならないから、モード端子ＭＤ０〜ＭＤ２によるクロックモードの選択状態やクロック制御レジスタ６５０を介するＣＰＵクロック信号９１及び周辺クロック信号９３の動的な周波数変更に際して、バスクロック信号９２の周波数を自動的に一定に保つためである。
【００８０】
図１７にはクロック制御レジスタの一例が示される。ビットＰＬＬＥＮはＰＬＬ回路９２１のイネーブルビットでありＰＬＬＥＮ＝１はイネーブル、ＰＬＬＥＮ＝０はディスエーブルを指示する。ビットＰＬＬＥＮ＝１にされるとセレクタ９３０，９３１は共にＰＬＬ回路９２１の出力を選択する状態に制御される。ビットＳＴＣ１，ＳＴＣ０はＰＬＬ回路９２１の周波数逓倍率を指示するビットであり例えば逓倍率１倍（ＳＴＣ１＝０，ＳＴＣ０＝０）、２倍（ＳＴＣ１＝０，ＳＴＣ０＝１）、４倍（ＳＴＣ１＝１，ＳＴＣ０＝１）を指示することができる。ビットＣＦＣ１，ＣＦＣ０はＣＰＵクロック信号９１の分周率即ちセレクタ９４２による選択を指示するビットであり、例えば分周率１（ＣＦＣ１＝０，ＣＦＣ０＝０）、分周率１／２（ＣＦＣ１＝０，ＣＦＣ０＝１）、分周率１／４（ＣＦＣ１＝１，ＣＦＣ０＝１）を選択することができる。ビットＰＦＣ１，ＰＦＣ０は周辺クロック信号９３の分周率即ちセレクタ９４３による選択を指示するビットであり、例えば分周率１（ＰＦＣ１＝０，ＰＦＣ０＝０）、分周率１／２（ＰＦＣ１＝０，ＰＦＣ０＝１）、分周率１／４（ＰＦＣ１＝１，ＰＦＣ０＝１）を選択することができる。ビットＭＳＴ１はタイマ８１への周辺クロック信号９３の供給を選択的に停止させる為の制御ビットであり、例えばＭＳＴ１＝０で供給許容、ＭＳＴ＝１で供給停止を指示する。ビットＭＳＴ０はシリアルインタフェース８３への周辺クロック信号９３の供給を選択的に停止させる為の制御ビットであり、例えばＭＳＴ０＝０で供給許容、ＭＳＴ＝０で供給停止を指示する。上記クロック制御制御レジスタ６５０は、パワーオンリセットやマニュアルリセットなどによるマイクロコンピュータの初期化に際して、その全ビットがハードウェアで（中央処理装置６１による命令実行によらずに）論理値”０”に初期化される。上述の理由により、セレクタ９４４によるバスクロック信号９２の周波数選択状態はクロック制御レジスタ６５０を介して任意に行うようにはなっていない。
【００８１】
図１８にはモード端子ＭＤ０〜ＭＤ２によって設定される７通りのクロックモードが示される。図１８に示されるＮｏ．０とＮｏ．１のクロックモードは、端子ＥＸＴＡＬをクロック供給源とし、それをＰＬＬ回路９１２で逓倍（クロックモードＮｏ．０は逓倍率１倍、クロックモードＮｏ．１は逓倍率４倍）して得られるクロック信号を基本クロック信号９１５とするようにセレクタ９１１，９１４の選択状態を制御する。それらクロックモードにおいてクロックバッファ９５０は出力動作可能にされ、端子ＣＫＩＯはクロック出力に利用され、セレクタ９２０は基本クロック信号９１５の選択状態に制御される。上述のようにＰＬＬ回路９２１の動作はクロック制御レジスタ６５０の初期状態において禁止されている。セレクタ９３０，９３１はセレクタ９１４から出力される基本クロックの選択状態にされる。セレクタ９４４は、バスクロック信号９２の周波数を基本クロック信号９１５の周波数に一致させるようにクロック制御回路６５が自動的に制御する。マイクロコンピュータのリセットに際してクロック制御レジスタ６５の状態は中央処理装置６１の動作を介することなく一定の値に初期化されるから、モード端子ＭＤ０〜ＭＤ２によるクロックモードが決定されれば、リセット時においてクロック信号９１〜９３はマイクロコンピュータの各部に供給され、中央処理装置６１は命令を実行可能にされる。その後、中央処理装置６１がクロック制御レジスタ６５０の値を書き換えることによってＣＰＵクロック信号９１と周辺クロック信号９３の周波数は動的に変更可能にされる。例えばＰＬＬ回路９２１の動作が可能にされると（ＰＬＬＥＮ＝１）、セレクタ９３０，９３１はＰＬＬ回路９２１の出力を選択し、分周回路９４０，９４１にはＰＬＬ回路９２１で逓倍されたクロック信号が供給される。このときＰＬＬ回路９２１の逓倍率が２倍ならばセレクタ９４４は分周比１／２を、逓倍率が４倍ならばセレクタ９４４は分周比１／４を選択してバスクロック信号９２の周波数を一定に保つようにする。
【００８２】
図１８に示されるＮｏ．２，Ｎｏ．３のクロックモードは、クロック供給源を水晶発振器９１０とし、それをＰＬＬ回路９１２で逓倍（クロックモードＮｏ．２は逓倍率４倍、クロックモードＮｏ．３は逓倍率４倍逓倍率１倍）して得られるクロック信号を基本クロックとするようにセレクタ９１１，９１４の選択状態を制御する。その他の制御状態はクロックモードＮｏ．０，Ｎｏ．１の場合と同様である。
【００８３】
図１８に示されるＮｏ．４，Ｎｏ．５のクロックモードは、ＰＬＬ回路９１２を動作させずセレクタ９１１，９１４にて分周器９１３を通る経路を選択させて基本クロックを生成する。クロックモードＮｏ．４におけるクロック源は端子ＥＸＴＡＬから供給される外部クロック信号、クロックモードＮｏ．５におけるクロック源は水晶発振器９１０とされる。その他の制御状態はクロックモードＮｏ．０，Ｎｏ．１の場合と同様である。
【００８４】
図１８に示されるＮｏ．６のクロックモードは、端子ＣＫＩＯから供給されるクロック信号をクロック源とし、ＰＬＬ回路９２１の動作を選択し、当該ＰＬＬ回路９２１の出力をセレクタ９３０，９３１に選択させる。当該クロックモードにおいてクロックバッファ９５０は出力動作不可能にされる。当該動作クロックモードにおいてはクロック制御レジスタ６５０のビットＰＬＬＥＮによるＰＬＬ回路９２１の動作選択は無効にされる。例えばクロック制御回路６５はクロックモードＮｏ．６が設定されたときビッＰＬＬＥＮを論理値”１”に強制する（ビットＰＬＬＥＮを強制的にプルアップするような回路が活性化される）。従って中央処理装置６１による当該ビットＰＬＬＥＮの書き換えは実質的に不可能にされる。その他のクロックモードにおいてＰＬＬ回路９２１の動作はクロック制御レジスタ６５０のビットＰＬＬＥＮによって任意に設定可能である。
【００８５】
以上のように、クロック制御回路６５は、モード端子ＭＤ０〜ＭＤ２の状態に従って、第１の周波数変更手段に含まれるＰＬＬ回路９１２及び分周器９１３による周波数変更率を決定して端子ＸＴＡＬ，ＥＸＴＡＬから分周器９４０，９４１の入力にクロック信号を伝達可能にし、且つバスクロック信号９２の周波数が基本クロック信号の周波数に一致するようにセレクタ９４４を制御する第１の状態、又は端子ＣＫＩＯからＰＬＬ回路９２１にクロック信号を伝達可能に制御する第２の状態を選択する。更に、上記クロック制御レジスタ６５０に設定された制御情報に従ってＰＬＬ回路９２１による周波数変更率とセレクタ９４２，９４３によるＣＰＵクロック信号９１及び周辺クロック信号９３の周波数選択を可変に制御すると共に、クロック端子ＭＤ０〜ＭＤ２にて指定された上記第２の状態においてはセレクタ９４４で選択されるバスクロック信号９２の分周器９４１による分周率と上記クロック制御レジスタ６５０にて指定されたＰＬＬ回路９２１の逓倍率との積が１となる（換言すればバスクロック信号９２の周波数が端子ＣＫＩＯからの入力クロック信号周波数に一致する）ようにセレクタ９４４を選択制御する。
【００８６】
図１９及び図２０にはクロック信号サイクルとバスサイクルの一例タイミングチャートが示される。図１９においてクロック信号の周波数比は、ＣＰＵクロック信号９１：周辺クロック信号９３：バスクロック信号９２＝１：１／２：１／４とされ、それに応じてＣＰＵバス６０、キャッシュバス７０及び外部バス、周辺バス８０のバスサイクルが決定されている。この例は中央処理装置６１のデータ処理速度を優先させるために中央処理装置６１を高速動作せせる場合の一例とされる。図２０の例は、図１９に対し、バスクロック信号９２及び周辺クロック信号９３の周波数を一定のままＣＰＵクロック信号９１の周波数を１／２に変更したときの様子が示され、中央処理装置６１の性能よりも低消費電力を優先させるときの設定例であり、周辺モジュールと外部バスアクセスの速度を一定に保ちながら中央処理装置６１の消費電力が半分に低減される。図１９及び図２０において外部バスのバスサイクルはキャッシュバス７０のバスサイクルと同じとされている。バスコントローラ７２はバスクロック信号９２に同期動作され、そのようなバスコントローラ７２が起動する外部バスサイクルはやはり同様にバスクロック信号９２に同期されるからである。
【００８７】
図１６においてクロック制御回路６５はクロックドライバ制御信号６５１、タイマ８１へのクロック供給停止制御信号６５２、及びシリアルインタフェース８３へのクロック供給停止制御信号６５３を生成する。クロックドライバ制御信号６５１は、クロック制御レジスタ６５０の書き換えによって分周率や逓倍率などのクロックパルスジェネレータ９の内部状態が変更されたとき、クロック信号９１〜９３が安定化するまでそれらクロック信号９１〜９３によって回路モジュールが動作されるのを禁止するための制御信号である。夫々の回路モジュールは図２１の（Ａ）に例示的に示されるようにクロックドライバ１０００とロジック回路１１００を備える。図２１の（Ｂ）にはクロックドライバ１０００の一例が示される。この例に従えばクロックドライバ１０００はそれを含む回路モジュールの種別に応じてＣＰＵクロック信号９１、周辺クロック信号９３、又はバスクロック信号９２をクロックパルスジェネレータから受け、これをノンオーバラップ２相のモジュール内クロック信号ＣＫ１，ＣＫ２としてロジック回路１１００に供給する。２入力ナンドゲート１００１及び遅延回路（直列８段のインバータ回路）１００２は一方のクロック信号ＣＫ１における立ち上がり及び立ち下がりのノンオーバラップ期間を決定し、２入力ナンドゲート１００３、遅延回路（直列７段のインバータ回路）１００４及び２入力ノアゲート１００５は他方のクロック信号ＣＫ２における立ち上がり及び立ち下がりのノンオーバラップ期間を決定する。クロックパルスジェネレータ９からのクロック信号９１、９２又は９３は２入力ノアゲート１００６の一方の入力端子に供給され、当該ノアゲート１００６の他方の入力端子には上記ノアゲート１００５の他方の入力端子と共にクロックドライバ制御信号６５１が供給され、当該クロックドライバ制御信号６５１が論理値”１”にされると、双方のノアゲート１００５，１００６の出力が論理値”０”に固定され、これによってクロック信号ＣＫ２は論理値”０”に、クロック信号ＣＫ１は論理値”１”に固定される。これにより、ロジック回路１１００内部において内部ロック信号ＣＫ１，ＣＫ２に同期動作される回路の動作は停止され、その内部状態を保持することができる。クロック制御回路６５は、例えばクロック制御レジスタ６５０に対する書込みサイクルの終了を検出したとき、クロックドライバ制御信号６５１を一定期間論理値”０”から論理値”１”に変化させる。その期間はクロックパルスジェネレータ９の内部状態が変更されてからクロック信号９１，９２，９３が安定化されるまでの期間とされ、その回路特性によって決まる。当該期間の管理は、例えばクロックドライバ制御信号６５１によっても、またタイマへのクロック供給停止制御信号６５２によっても動作が停止されない図示しないタイマで行うことができる。
【００８８】
タイマへのクロック供給停止制御信号６５２はクロック制御レジスタ６５０のビットＭＳＴ１によってその論理値が決定され、シリアルインタフェースへのクロック供給停止制御信号６５３は同じくビットＭＳＴ０の論理値によって決定される。特に図示はしないがタイマとシリアルインタフェースにおけるクロックドライバにおいて図２１の（Ｂ）に示されるノアゲートは３入力とされ、そのひとつの入力に対応してクロック供給停止制御信号６５２又は６５３が供給され、それら回路モジュールにおける内部クロック信号ＣＫ１，ＣＫ２を任意に停止できるようになっている。
【００８９】
図２２には本実施例のマイクロコンピュータ６と外部メモリとの接続態様が示される。同図においてマイクロコンピュータ６の外部インタフェース信号は、アドレス信号Ａ２６−Ａ０、データＤ３１−Ｄ０、チップセレクト信号ＣＳ０＃（記号＃はそれが付された信号がローイネーブル信号であることを意味する）〜ＣＳ４＃、リード信号ＲＤ＃、データネーブル信号ＤＱＭＬＬ／ＷＥ０＃，ＤＱＭＬＵ／ＷＥ１＃，ＤＱＭＵＬ／ＷＥ２＃，ＤＱＭＵＵ／ＷＥ３＃、リード・ライト信号Ｒ／Ｗ＃、ロウアドレスストローブ信号ＲＡＳ＃／ＣＳ＃、カラムアドレスストローブ信号ＣＡＳ＃／ＣＥ＃／ＣＡＳＨＨ＃、カラムアドレスストローブ信号ＣＡＳＨＬ＃，ＣＡＳＬＨ，ＣＡＳＬＬ＃などとされる。上記アドレス信号Ａ２６−Ａ０、書込み時におけるデータＤ３１−Ｄ０、そしてチップセレクト信号ＣＳ０＃などの各種アクセス制御信号の変化タイミングは上記バスコントローラ７２が制御し、それらはバスクロック信号９２に同期して変化される。
【００９０】
上記ロウアドレスストローブ信号ＲＡＳ＃／ＣＳ＃は、ＤＲＡＭ（ダイナミック・ランダム・アクセス・メモリ）及びＳＤＲＡＭ（シンクロナスＤＲＡＭ）に使用されるときそれらにとってのローアドレスストローブ信号とされ、ＰＳＲＡＭ（擬似スタティック・ランダム・アクセス・メモリ）に使用するときはそれらにとってのチップイネーブル信号とされる。カラムアドレスストローブ信号ＣＡＳ＃／ＣＥ＃／ＣＡＳＨＨ＃は、ＳＤＲＡＭに使用されるときそれにとってのカラムアドレスストローブ信号とされ、ＤＲＡＭに使用するときはそれにとっての最上位バイト選択のカラムアドレスストローブ信号とされ、ＰＳＲＡＭに使用されるときそれにとってのアウトプットイネーブル信号とされる。カラムアドレスストローブ信号ＣＡＳＨＬ＃はＤＲＡＭに使用されるときそれにとって２バイト目のカラムアドレスストローブ信号とされ、カラムアドレスストローブ信号ＣＡＳＬＨはＤＲＡＭに使用されるときそれにとって３バイト目のカラムアドレスストローブ信号とされ、カラムアドレスストローブ信号ＣＡＳＬＬ＃はＤＲＡＭに使用されるときそれにとって４バイト目のカラムアドレスストローブ信号とされる。データネーブル信号ＤＱＭＬＬ／ＷＥ０＃は、ＳＤＲＡＭに使用されるときそれにとって最下位バイト選択を、その他のメモリに使用されるときは最下位バイトの書込みを指示する。データネーブル信号ＤＱＭＬＵ／ＷＥ１＃は、ＳＤＲＡＭに使用されるときそれにとって３バイト目選択を、その他のメモリに使用されるとき３バイト目の書込みを指示する。データネーブル信号ＤＱＭＵＬ／ＷＥ２＃は、ＳＤＲＡＭに使用されるときそれにとって２バイト目選択を、その他のメモリに使用されるときは２バイト目の書込みを指示する。データネーブル信号ＤＱＭＵＵ／ＷＥ３＃は、ＳＤＲＡＭに使用されるときそれにとって最上位バイト選択を、その他のメモリに使用されるときは最上位バイトの書込みを指示する。尚、図示はしないがその他に、バススタート信号、バス権要求信号、バス使用許可信号などを出力し、また、バス解放要求信号、ウェイト信号などを入力する。また図１６に示される外部端子群は図示を省略してある。
【００９１】
図２２において夫々の信号は外部バス１２００を介してＤＲＡＭ１３００〜１３０３やＳＲＡＭ１３０４〜１３０６などのその他のメモリと接続される。図２２に示されるＤＲＡＭ１３００〜１３０３はデータ入出力が８ビット（バイト）単位で行われるもの（×８ＤＲＡＭ）とされる。ＤＲＡＭ１３００〜１３０３やＳＲＡＭ１３０４〜１３０６の端子Ａはアドレス入力端子、Ｄはデータ入出力端子、ＲＡＳ＃はローアドレスストローブ信号入力端子、ＣＡＳ＃はカラムアドレスストローブ信号入力端子、ＷＥ＃はライトイネーブル信号入力端子、ＣＳ＃はチップセレクト信号の端子、ＯＥ＃はアウトプットイネーブル信号の入力端子である。
【００９２】
図２３にはデータの並列入出力ビット数が１６ビットのＤＲＡＭ１３０７，１３０８を採用した場合の接続態様が示される。この例においてＤＲＡＭ１３０７，１３０８の端子ＵＣＡＳ＃は上位側のカラムアドレスストローブ信号入力端子、ＬＣＡＳ＃は下位側のカラムアドレスストローブ信号入力端子であり、その他は図２２と同様である。
【００９３】
図２４にはデータの並列入出力ビット数が８ビットのＳＤＲＡＭ１３１０〜１３１３を採用した場合の接続態様が示される。ＳＤＲＡＭ１３１０〜１３１３は、ＤＲＡＭに比べ、クロックに同期してデータ、アドレス、及び制御信号を入出力できるため、ＤＲＡＭと同様の大容量メモリをＳＲＡＭに匹敵する高速動作可能に実現でき、従来のＤＲＡＭ以上の高速アクセスと大容量を低価格で実現可能となるメモリである。マイクロコンピュータ６はＳＤＲＡＭとのインタフェースのためにクロックイネーブル信号ＣＫＥを出力すると共に前記端子ＣＫＩＯからクロック信号ＣＬＫを出力する。ＳＤＲＡＭのＣＬＫはクロック信号ＣＬＫの入力端子、ＣＫＥはクロックイネーブル信号ＣＫＥ入力端子、ＣＳ＃はチップセレクト信号入力端子、ＣＡＳ＃はカラムアドレスストローブ信号入力端子、ＲＡＳ＃はロウアドレスストローブ信号入力端子、ＷＥ＃はライトイネーブル信号入力端子、Ａはアドレス信号入力端子、Ｄはデータ入出力端子である。ＳＤＲＡＭの動作モード（ロウアドレス信号の取り込み、カラムアドレス信号を取り込んで書込み、カラムアドレス信号を取り込んで読み出しなど）は外部からのメモリ制御信号及びアドレス信号の所定下位ビットによって図示しないモードレジスタにコマンドが書き込まれることによって決定される。クロック信号ＣＬＫはＳＤＲＡＭのマスタクロックとされ、その他の外部入力信号は例えば当該クロック信号ＣＬＫの立ち上がりエッジに同期して有意とされる。端子ＳＣ＃に与えられるチップセレクト信号はそのローレベルによってコマンド入力サイクルの開始を指示する。クロックイネーブル信号ＣＫＥは次のクロック信号の有効性を指示する信号であり、当該信号ＣＫＥがハイレベルであれば次のクロック信号ＣＬＫの立ち上がりエッジが有効とされ、ローレベルのときは無効とされる。
【００９４】
図２５にはデータの並列入出力ビット数が１６ビット（×１６）のＳＲＡＭ１３１４，１３１５を採用した場合の接続態様が示される。この例においてＳＤＲＡＭ１３１４，１３１５の端子ＤＱＭＵは上位側のデータイネーブル信号入力端子、ＤＱＭＬは下位側のデータイネーブル信号入力端子であり、その他は図２４と同様である。
【００９５】
図２６から図３０には図２２又は図２３で示されるＤＲＡＭのバスアクセスタイミングの一例がバスクロック信号９２の周波数を変えて示される。バスコントローラはバスクロック信号９２に同期してロウアドレスストローブ信号などの各種メモリアクセス制御信号を生成すると共にデータの入出力を行う。各図においてＤ３１−Ｄ０はデータ、アドレス下位側ビットはＤＲＡＭに供給されて実際に使用されるアドレスビット、アドレス上位側ビットはＤＲＡＭには供給されないアドレスビットを意味する。ＢＳ＃はバスサイクルの開始を示すバススタート信号であり、マイクロコンピュータ６のバスコントローラ７２が出力する。図２６から図３０においてＴｒ、Ｔｒ１、Ｔｒ２、Ｔｒ３はロウ系動作ステート、Ｔｃ１、Ｔｃ２、Ｔｃ３はカラム系動作ステート、Ｔｐはプリチャージ動作ステートである。図２６においてバスクロック信号９２の周波数φは１８．６ＭＨｚよりも小さい場合とされ、それにおけるＤＲＡＭのメモリサイクルは例えばＴｒ，Ｔｃ１，Ｔｃ２の３サイクルとされ、図２７において（１８．８ＭＨｚ≦φ≦２８．５ＭＨｚ）ＤＲＡＭのメモリサイクルはＴｒ１，Ｔｒ２，Ｔｃ１，Ｔｃ２，Ｔｐの５サイクルとされ、図２８において（２８．５ＭＨｚ＜φ≦３７．７ＭＨｚ）ＤＲＡＭのメモリサイクルはＴｒ１，Ｔｒ２，Ｔｃ１，Ｔｃ２，Ｔｃ３，Ｔｐの６サイクルとされ、図２９において（３７．７ＭＨｚ＜φ＜４７ＭＨｚ）ＤＲＡＭのメモリサイクルはＴｒ１，Ｔｒ２，Ｔｃ１，Ｔｃ２，Ｔｃ３，Ｔｐ，Ｔｐの７サイクルとされ、図３０において（４７．７ＭＨｚ≦φ≦５６ＭＨｚ）ＤＲＡＭのメモリサイクルはＴｒ１，Ｔｒ２，Ｔｒ３，Ｔｃ１，Ｔｃ２，Ｔｃ３，Ｔｐ，Ｔｐの８サイクルとされる。このように１メモリアクセス期間（バスクロック信号９２のサイクル数）がバスクロック信号９２の周波数によって変化されるのは、ＤＲＡＭなどの外部デバイスの動作可能な速度とバスクロック信号９２の周期を考慮してＤＲＡＭなどの外部デバイスの動作可能速度に見合う１メモリアクセス期間をバスクロック信号９２のサイクル数によって決定しているためである。そのようなサイクル数は、マイクロコンピュータ６のユーザがどの程度の動作速度の外部デバイスを採用するかによって相違される性質のものである。例えばＤＲＡＭを図２６のようなサイクルを以て許容最高速度で動作させるシステムに対し、バスクロック信号９の周波数をそれよりも高くした別のシステムにおいてそれと同じＤＲＡＭを許容最高速度で動作させるときには、アクセスサイクル数は図２７乃至図３０に示されるように多くされなければならない。本実施例においてバスコントローラ７２による外部バスアクセスの基本的なバスクロック信号サイクル数は任意に設定可能にされている。そのようなサイクル数は、特に制限されないが、外部端子によってバスコントローラ内部のレジスタに設定される。
【００９６】
図３１及び図３２には図２４又は図２５で示されるＳＤＲＡＭに対するリード、ライトのバスアクセスタイミングの一例が示される。各図においてＤ３１−Ｄ０はデータ、アドレス下位側ビットはＳＤＲＡＭのメモリセルを選択するためのロウアドレス及びカラムアドレスとされる。アドレスＡ１２，Ａ１１，Ａ１０又はＡ９はＳＤＲＡＭにロウアドレスの取り込み、カラムアドレスを取り込んでリード動作、カラムアドレスを取り込んでライト動作などの動作モードを指示するための信号とされる。アドレス上位側ビットはＳＤＲＡＭには供給されないアドレスビットを意味する。ＢＳ＃はバスサイクルの開始を示すバススタート信号であり、マイクロコンピュータ６のバスコントローラ７２が出力する。バスコントローラ７２はＳＤＲＡＭに割り当てられたアドレスに対するアクセスに際して図３１及び図３２に示されるようにバスクロック信号９２に同期したバス制御を行う。ＳＤＲＡＭはマイクロコンピュータ６の端子ＣＫＩＯから出力されるクロック信号ＣＬＫを受けてそれに同期動作する。図３１から図３２においてＴｒはロウ系動作ステート、ＴｒｗはＴｒを引き延ばすためのウェートステート、Ｔｃ１はカラム系動作ステート、ＴｃｗはＴｃ１を引き延ばすためのウェートステート、Ｔｄ１はデータ読み込みステートである。リード動作とライト動作ではメモリサイクルを構成するはステート数（バスクロック信号サイクル数）が相違されている。図３１のステートＴｒではロウアドレスが取り込まれ、Ｔｃ１ではリードコマンドによってカラムアドレスが取り込まれ、カラムアドレスストローブ信号ＣＡＳ＃の立ち下がりから３サイクル（バスクロック信号即ち端子ＣＫＩＯから出力される外部クロック信号ＣＬＫのサイクル数）後にデータが読出される。図３２のステートＴｒではロウアドレスが取り込まれ、Ｔｃ１ではライトコマンドによってカラムアドレスが取り込まれ、データに書込みが行われる。
【００９７】
内部バスが階層化されたマイクロコンピュータ６に対する動作周波数切換えに係る上記実施例によれば以下の作用効果がある。（１）ＣＰＵバス６０、キャッシュバス７０及び周辺バス８０に階層化されたマイクロコンピュータ６において、バスクロック信号９２は、動的に周波数可変のクロック信号から除外している。すなわち、ＣＰＵクロック信号９１及び周辺クロック信号９３はクロック制御回路６５に対する設定内容次第で信号周波数が動的に変更可能にされるが、バスクロック信号９２は入出力回路７３を介して接続されるメモリなどの外部デバイスの動作速度に合わせたクロック信号とされるべきであるから、信号周波数の動的な変更対象とはされない。上記クロック信号９１，９３の周波数変更のためにクロックパルスジェネレータ９の内部状態が変更されたときも、クロック制御回路６はバスクロック信号９２の周波数を変更しないようにクロックパルスジェネレータ９を制御する。
【００９８】
（２）ＣＰＵクロック信号９１周波数を制御情報にて動的に可変制御可能にすることにより、中央処理装置６１が結合されるＣＰＵバス６０の回路モジュールを必要に応じて高速動作させて高速データ効率を向上させることができ、その逆に高速動作を要しないタスクを実行するときにはクロック信号周波数を低くして低消費電力を実現することができる。
【００９９】
（３）周辺クロック信号９３の周波数を制御情報にて動的に可変制御可能にすることにより、周辺バス８０に結合された回路モジュールが周辺回路モジュールであるという性質に鑑みてその機能や動作状態に応じ他の回路モジュールとは独立的に動作速度を制御して低消費電力化を促進させることができる。
【０１００】
（４）クロック制御回路６５はモード端子ＭＤ０，ＭＤ１，ＭＤ２の状態とクロック制御レジスタ６５０の設定値とに従い、基本クロック信号９１５によってクロック信号９１〜９３を生成する場合にはバスクロック信号９２の周波数が基本クロック信号９１５の周波数に一致するようにセレクタ９４４の選択状態を制御し、端子ＣＫＩＯから供給されるクロック信号によってクロック信号９１〜９３を生成する場合にはバスクロック信号９２の周波数が端子ＣＫＩＯからのクロック信号周波数に一致するようにセレクタ９４４の選択状態を制御する。これにより、バスクロック信号９２の周波数は外部に接続される外部デバイスの許容動作速度に応じて一定に保たれなければならないから、モード端子ＭＤ０〜ＭＤ２によるクロックモードの選択状態やクロック制御レジスタ６５０を介するＣＰＵクロック信号９１及び周辺クロック信号９３の動的な周波数変更に際して、バスクロック信号９２の周波数を自動的に一定に保つことができる。
【０１０１】
（５）端子ＣＫＩＯから出力される外部クロック信号はバスクロック信号９２の周波数と一致されるから、クロック信号に同期動作されるＳＤＲＡＭのような外部デバイスはバスコントローラ（バスクロック信号９２を受け動作）７２の制御を受け、そのような外部デバイスの同期動作用クロック信号として上記外部端子ＣＫＩＯから出力されるクロック信号を利用することができる。これにより、本実施例マイクロコンピュータ６はＳＤＲＡＭのようなクロック同期型外部デバイスに対するアクセス制御を容易化することができる。換言すればそのような外部デバイスを外部バスを介して直結してアクセス制御することができる。
【０１０２】
以上本発明者によってなされた発明を実施例に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【０１０３】
動作周波数と電源電圧の双方を可変制御する発明に関し、例えば、モードレジスタのような記憶手段に対する制御情報の設定はＣＰＵが行うことに限定されず、外部の回路がデータバスを介して行い、或は外部の回路が所定の外部端子を介して行ってもよい。また、回路の電源は負電源であってもよく、その場合の動作電圧の大小若しくは増減は絶対値的な大小を考慮して本発明を適用する。回路モジュールは上記実施例で説明したものに限定される適宜変更可能である。また上記実施例では動作電圧の変更はその対象とされる回路モジュール内部の全ての回路に及ぶものであってもいが、その他の回路モジュールとの関係上若しくは共通バスを介する情報転送に不都合を生ずる虞がある場合にはインタフェース回路部分の動作電圧は変更対象から除外することができる。特にマルチチップでデータ処理装置が構成される場合には、外部バスに共通接続される各回路モジュールのインタフェース部分の動作電圧はバスの情報伝送仕様に合わせて一定にすることができる。また、回路モジュールの動作周波数が相互に相違される場合にウェイト信号、レディー信号、ビジー信号などを用いたハンドシェーク制御で情報転送を行うことができる。また、特定の回路モジュールに対して相互に設定可能な周波数に一定の関係例えば１／２倍というような関係を維持させて周波数の切換えを可能にすればハンドシェーク制御を要さずに情報転送を行うことができる。また、タスク毎に周波数や動作電圧を切換えられるので、当該タスクで利用するリソースを考慮してその切換えを行うようにすれば特別な制約を設けることなく回路モジュールを相互間で同期的に動作させることができる。
【０１０４】
階層化された内部バスを単位に内蔵回路モジュールの動作周波数を制御する発明に関し、動的に動作周波数を変更可能にする対象は、ＣＰＵクロック信号だけであってもよい。或いは周辺クロック信号だけであってもよい。データ処理性能を犠牲にすることなく電力消費をきめ細かく制御するという点において、望ましくは上記実施のようにＣＰＵクロック信号と周辺クロック信号の双方を周波数可変制御の対象にするのがよい。
【０１０５】
【発明の効果】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。
【０１０６】
〔１〕回路モジュールの動作周波数と動作電圧の双方を制御する発明に関しては、クロック信号周波数と動作電圧の切換え態様を指示する制御情報は中央処理装置などによって書換え可能にレジスタ又はその他の記憶手段に設定されるから、回路モジュールのデータ処理性能やデータ処理の軽重に応じて制御情報を必要に応じて書換えることで、回路モジュールの動作電圧と動作周波数に対する自由な切換えを許容することができる。したがって、相対的に高速のデータ処理を要しないタスク若しくは回路モジュールに対しては低消費電力を優先させ、相対的に処理の高速性を要するタスク若しくは回路モジュールに対しては電力消費量の増大を許容し、これによって全体としてのデータ処理効率を向上させつつ低消費電力を実現できる。更に、所定の回路モジュール毎に個別的にクロック周波数と動作電圧の切換えを可能にすることは、上記全体としてのデータ処理効率を向上させつつ低消費電力化を図る制御を更にきめ細かく実現できる。
【０１０７】
第１の制御手段を採用することによりクロック信号周波数と動作電圧の切換え手順の点における誤動作を防止することができる。
【０１０８】
第２の制御手段を採用することにより、周波数と電源電圧の不所望な切換え態様による誤動作の虞を未然に防止することができる。
【０１０９】
〔２〕階層化された内部バス単位に内蔵回路モジュールの動作周波数を切換える発明に関し、バスクロック信号のような第２のクロック信号を、周波数可変の信号から除外すること、即ち、第１及び第３のクロック信号の周波数が制御情報に従って動的に変化されるとき、クロック制御回路は第２のクロック信号の周波数を一定に保つように制御することにより、バスコントローラが結合された第２の内部バスのための第２のクロック信号の周波数は、外部バスに結合された外部デバイスの動作速度に応じた周波数にされなければ内外でのバスサイクル若しくはバス動作を同期させることができない、という条件を満足させることができる。
【０１１０】
第１のクロック信号周波数を制御情報にて動的に可変制御可能にすることにより、中央処理装置が結合される第１の内部バスの回路モジュールを必要に応じて高速動作させてデータ処理効率を向上させ、その逆に高速動作を要しないタスクを実行するときにはクロック信号周波数を低くして電力消費を抑える、ということを実現することができる。
【０１１１】
第３のクロック信号周波数を制御情報にて動的に可変制御可能にすることにより、第３の内部バスに結合された回路モジュールが周辺回路モジュールであるという性質に鑑みてその機能や動作状態に応じ他の回路モジュールとは独立的に動作速度を制御して低消費電力化を促進させることができる。
【０１１２】
クロック制御回路はモード端子の状態とクロック制御レジスタの設定値とに従い、第１の周波数変更手段からの基本クロック信号によって第１乃至第３のクロック信号を生成する場合には第２のクロック信号の周波数が基本クロック信号の周波数に一致するように第３の周波数変更手段を制御し、第２の接続端子（ＣＫＩＯ）から供給されるクロック信号によって第１乃至第３のクロック信号を生成する場合には第２のクロック信号の周波数が端子（ＣＫＩＯ）からのクロック信号周波数に一致するように第３の周波数変更手段を制御する。これにより、第２のクロック信号の周波数は外部に接続される外部デバイスの許容動作速度に応じて一定に保たれなければならないから、モード端子によるクロックモードの選択状態やクロック制御レジスタを介する第１及び第３のクロック信号の動的な周波数変更に際して、第２のクロック信号の周波数を自動的に一定に保つことができる。
【０１１３】
端子（ＣＫＩＯ）から出力される外部クロック信号は第２のクロック信号の周波数と一致されるから、クロック信号に同期動作される外部デバイスはバスコントローラ（第２のクロック信号を受けて動作）の制御を受け、そのような外部デバイスの同期動作用クロック信号として上記端子（ＣＫＩＯ）から出力されるクロック信号を利用することができる。
【図面の簡単な説明】
【図１】本発明による第１実施例に係るシングルチップマイクロコンピュータのブロック図である。
【図２】図１のクロック発生回路の一例を示すブロック図である。
【図３】図１に示される電圧設定レジスタ及び周波数設定レジスタの一例フォーマット説明図である。
【図４】内部クロック信号周波数と内部電圧の切換え制御シーケンスの一例を示すフローチャートである。
【図５】本発明による第２実施例に係るデータ処理装置のブロック図である。
【図６】本発明による第３実施例に係るシングルチップマイクロコンピュータのブロック図である。
【図７】図６の電圧・周波数制御部の詳細な一例回路図である。
【図８】ＤＣ／ＤＣ変換器の一例回路図である。
【図９】図６のモードレジスタの詳細な一例フォーマット説明図である。
【図１０】第１及び第２の制御手段による制御態様の一例説明図である。
【図１１】図７のシーケンス制御部による動作電圧及び周波数の切換え制御手順の一例フローチャートである。
【図１２】図７のシーケンス制御部による動作電圧及び周波数の切換え制御手順の別のフローチャートである。
【図１３】本発明による第４実施例に係るデータ処理装置のブロック図である。
【図１４】本発明による第５実施例に係るデータ処理装置のブロック図である
【図１５】本発明による第６実施例に係るマイクロコンピュータのブロック図である。
【図１６】クロックパルスジェネレータ及びクロック制御回路の詳細な一例ブロック図である。
【図１７】クロック制御レジスタの一例フォーマット図である。
【図１８】モード端子によって設定されるクロックモードの説明図である。
【図１９】ＣＰＵクロック信号、バスクロック信号及び周辺クロック信号のサイクルとバスサイクルの一例タイミングチャートである。
【図２０】図１９に対してバスクロック信号及び周辺クロック信号の周波数を一定のままＣＰＵクロック信号の周波数を１／２に変更したときのタイミングチャートである。
【図２１】回路モジュールに対するクロックドライバの位置付けを（Ａ）で示し、クロックドライバの一例論理を（Ｂ）で示す説明図である。
【図２２】本実施例のマイクロコンピュータの外部にＤＲＡＭ（×８）などを接続したときの接続態様図である。
【図２３】本実施例のマイクロコンピュータの外部にＤＲＡＭ（×１６）などを接続したときの接続態様図である。
【図２４】本実施例のマイクロコンピュータの外部にＳＤＲＡＭ（×８）などを接続したときの接続態様図である。
【図２５】本実施例のマイクロコンピュータの外部にＳＤＲＡＭ（×１６）などを接続したときの接続態様図である。
【図２６】バスクロック信号周波数φがφ＜１８．６ＭＨｚのときにおける本実施例マイクロコンピュータによる外部ＤＲＡＭに対するアクセスタイミングチャートである。
【図２７】バスクロック信号周波数φが１８．８ＭＨｚ≦φ≦２８．５ＭＨｚのときにおける本実施例マイクロコンピュータによる外部ＤＲＡＭに対するアクセスタイミングチャートである。
【図２８】バスクロック信号周波数φが２８．５ＭＨｚ＜φ≦３７．７ＭＨｚのときにおける本実施例マイクロコンピュータによる外部ＤＲＡＭに対するアクセスタイミングチャートである。
【図２９】バスクロック信号周波数φが３７．７ＭＨｚ＜φ＜４７ＭＨｚのときにおける本実施例マイクロコンピュータによる外部ＤＲＡＭに対するアクセスタイミングチャートである。
【図３０】バスクロック信号周波数φが４７．７ＭＨｚ≦φ≦５６ＭＨｚのときにおける本実施例マイクロコンピュータによる外部ＤＲＡＭに対するアクセスタイミングチャートである。
【図３１】本実施例マイクロコンピュータによるＳＤＲＡＭに対するリードアクセスのタイミングチャートである。
【図３２】本実施例マイクロコンピュータによるＳＤＲＡＭに対するライトアクセスのタイミングチャートである。
【符号の説明】
１  シングルチップマイクロコンピュータ
１００  中央処理装置
１１０  電源回路
１１３  内部電圧
１１４  電圧設定レジスタ
１２０  クロック発生回路
１２２  内部クロック信号
１２０６  出力ゲート
１２４  周波数設定レジスタ
１３０  制御回路
１３１  第１の制御手段
１３２  第２の制御手段
３  シングルチップマイクロコンピュータ
３００  中央処理装置
３０４  タイマ
３０６  電圧・周波数制御部
３０７  モードレジスタ
３０７１  電圧設定フィールド
３０７２  周波数設定フィールド
３１０  電源回路
３１４１〜３１４３  セレクタ
３２０  クロック発生回路
３２５１〜３２５３  セレクタ
３２６１〜３２６３  出力ゲート
３３０  制御回路
３３４  シーケンス制御部
３３４１  第１の制御手段
３３４２  第２の制御手段
３４０  内部クロック信号
３４２  内部電圧
６  マイクロコンピュータ
６０  ＣＰＵバス
６１  中央処理装置
６２  キャッシュメモリ装置
６５  クロック制御回路
６５０  クロック制御レジスタ
ＭＤ０，ＭＤ１，ＭＤ２  クロックモード端子
７０  キャッシュバス
７２  バスコントローラ
８０  周辺バス
９  クロックパルスジェネレータ
９１  ＣＰＵクロック信号
９２  バスクロック信号
９３  周辺クロック信号
９１０  水晶発振器
９１２，９２１  ＰＬＬ回路
９１１，９４０，９４１  分周器
９１１，９１４  セレクタ
９２０  セレクタ
９３０，９３１，９４２，９４３，９４４  セレクタ
ＣＫＩＯ，ＸＴＡＬ，ＥＸＴＡＬ  外部クロック端子
【図１】
0003718251.tif 000002
【図２】
0003718251.tif 000003
【図３】
0003718251.tif 000004
【図４】
0003718251.tif 000005
【図５】
0003718251.tif 000006
【図６】
0003718251.tif 000007
【図７】
0003718251.tif 000008
【図８】
0003718251.tif 000009
【図９】
0003718251.tif 000010
【図１０】
0003718251.tif 000011
【図１１】
0003718251.tif 000012
【図１２】
0003718251.tif 000013
【図１３】
0003718251.tif 000014
【図１４】
0003718251.tif 000015
【図１５】
0003718251.tif 000016
【図１６】
0003718251.tif 000017
【図１７】
0003718251.tif 000018
【図１８】
0003718251.tif 000019
【図１９】
0003718251.tif 000020
【図２０】
0003718251.tif 000021
【図２１】
0003718251.tif 000022
【図２２】
0003718251.tif 000023
【図２３】
0003718251.tif 000024
【図２４】
0003718251.tif 000025
【図２５】
0003718251.tif 000026
【図２６】
0003718251.tif 000027
【図２７】
0003718251.tif 000028
【図２８】
0003718251.tif 000029
【図２９】
0003718251.tif 000030
【図３０】
0003718251.tif 000031
【図３１】
0003718251.tif 000032
【図３２】
0003718251.tif 000033