(57)【要約】【課題】逓倍されたクロック信号のパルス数が逓倍数の値からずれる状態を原理的に阻止することができるクロック逓倍技術を提供する。【解決手段】第２クロック信号（ＣＬＫ２）のサイクル単位で、第１クロック信号（ＣＬＫ１）の計数値を逓倍数で除した商の値に対応するサンプリングクロックサイクル数を単位として第３クロック信号（ＣＬＫ３）を順次生成すると共に、生成された一つの逓倍クロックサイクルにおいて前記商の余りに対応する当該サンプリングクロックのサイクル期間に対応して逓倍クロック信号の変化を抑止する制御（１０６）を行う。【選択図】図１
2012169893.tif 000002
【特許請求の範囲】
【請求項１】
第１クロック信号を計数して第２クロック信号の周期値を取得する第１回路と、
前記第１クロック信号を計数しその計数値が前記周期値を逓倍数で除した商の値に対応するときの当該計数値に基づいて単位サイクルが決定された第３クロック信号を生成する第２回路と、
前記逓倍数で前記計数値を除した商の余りに対応する第１クロック信号のサイクル期間に対応して前記第２回路による前記第１クロック信号の計数動作を抑止するイネーブル制御信号を生成する第３回路と、を有するクロック逓倍回路。
【請求項２】
前記第１回路が取得した周期値を前記第２クロック信号の複数サイクル分蓄積して平均化する平均化回路を更に有し、
前記第２回路は前記平均化回路で平均化された周期値を用いて第３クロック信号を生成する、請求項１記載のクロック逓倍回路。
【請求項３】
前記平均化回路の出力と前記第１回路の出力とに基づいて第２クロック信号の安定／非安定を判別する判別回路を有し、
前記平均化回路は、前記判別回路による判別結果が安定であるとき、平均化対象となる周期値の取り込みを第２クロック信号のサイクル単位で行い、前記判別回路による判別結果が非安定であるとき、平均化対象となる周期値の取り込みを第３クロック信号のサイクル単位で行う、請求項２記載のクロック逓倍回路。
【請求項４】
前記第３回路は、前記判別回路による判別結果が非安定であるとき、前記イネーブル制御信号を、前記逓倍数で前記周期値を除した商の余りに対応する第１クロック信号のサイクル期間にも前記第２回路による前記第１クロック信号の計数動作を許可する状態にする、請求項３記載のクロック逓倍回路。
【請求項５】
前記第１回路は、第２クロック信号のサイクル単位で第１クロック信号を計数して前記周期値を生成する第１カウンタを有し、
前記第２回路は、前記イネーブル制御信号の第１状態に応答して前記第１クロック信号を計数すると共に前記イネーブル制御信号の第２状態に応答して第１クロック信号の計数動作を停止する第２カウンタと、前記第２カウンタによる計数値が前記商の値になる毎に前記第３クロック信号のクロックサイクルを切り替える第１ロジック回路とを有し、
前記第３回路は、前記第２クロック信号のサイクル単位で前記第３クロック信号のサイクル数を計数する第３カウンタと、前記第３カウンタのカウント値が目的値に達したとき前記イネーブル制御信号を第２状態とし、前記第２クロック信号の次のサイクルの開始に応答して前記イネーブル制御信号を第１状態にする第２ロジック回路とを有する、請求項４記載のクロック逓倍回路。
【請求項６】
第１クロック信号を計数して第２クロック信号の周期値を取得する計測回路と、
前記第１クロック信号を計数しその計数値が前記周期値を逓倍数で除した商の値に対応するときの当該計数値に基づいて単位サイクルを決定した第３クロック信号を生成し、前記逓倍数で前記計数値を除した商の余りに対応する第１クロック信号のサイクル期間に対応して前記第３クロック信号を生成するための前記第１クロック信号の計数動作を抑止するイネーブル制御を行う逓倍クロック生成制御回路と、を有するクロック逓倍回路。
【請求項７】
第１クロック信号を生成する発振回路と、
外部端子から供給される第２クロック信号及び前記第１クロック信号に基づいてシステムクロック信号を出力するクロック発生回路と、
前記システムクロック信号に同期して動作するデータ処理回路と、を有する半導体装置であって、
前記クロック発生回路は、第１クロック信号を計数して第２クロック信号の周期値を取得する第１回路と、
前記第１クロック信号を計数しその計数値が前記周期値を逓倍数で除した商の値に対応するときの当該計数値に基づいて単位サイクルが決定された第３クロック信号を生成する第２回路と、
前記逓倍数で前記計数値を除した商の余りに対応する第１クロック信号のサイクル期間に対応して前記第２回路による前記第１クロック信号の計数動作を抑止するイネーブル制御信号を生成する第３回路とを有する、半導体装置。
【請求項８】
前記クロック逓倍回路は、前記第１回路が取得した周期値を前記第２クロック信号の複数サイクル分蓄積して平均化する平均化回路を更に有し、
前記第２回路は前記平均化回路で平均化された周期値を用いて第３クロック信号を生成する、請求項７記載の半導体装置。
【請求項９】
前記クロック逓倍回路は、前記平均化回路の出力と前記第１回路の出力とに基づいて第２クロック信号の安定／非安定を判別する判別回路を更に有し、
前記平均化回路は、前記判別回路による判別結果が安定であるとき、平均化対象となる周期値の取り込みを第２クロック信号のサイクル単位で行い、前記判別回路による判別結果が非安定であるとき、平均化対象となる周期値の取り込みを第３クロック信号のサイクル単位で行う、請求項８記載の半導体措置。
【請求項１０】
前記第３回路は、前記判別回路による判別結果が非安定であるとき、前記イネーブル制御信号を、前記逓倍数で前記周期値を除した商の余りに対応する第１クロック信号のサイクル期間にも前記第２回路による前記第１クロック信号の計数動作を許可する状態にする、請求項９記載の半導体装置。
【請求項１１】
前記第１回路は、第２クロック信号のサイクル単位で第１クロック信号を計数して前記周期値を生成する第１カウンタを有し、
前記第２回路は、前記イネーブル制御信号の第１状態に応答して前記第１クロック信号を計数すると共に前記イネーブル制御信号の第２状態に応答して第１クロック信号の計数動作を停止する第２カウンタと、前記第２カウンタによる計数値が前記商の値になる毎に前記第３クロック信号のクロックサイクルを切り替える第１ロジック回路とを有し、
前記第３回路は、前記第２クロック信号のサイクル単位で前記第３クロック信号のサイクル数を計数する第３カウンタと、前記第３カウンタのカウント値が目的値に達したとき前記イネーブル制御信号を第２状態とし、前記第２クロック信号の次のサイクルの開始に応答して前記イネーブル制御信号を第１状態にする第２ロジック回路とを有する、請求項１０記載の半導体装置。
【請求項１２】
前記第１クロック信号を入力し前記第１クロック信号に同期動作される回路を更に有する、請求項７記載の半導体装置。
【請求項１３】
前記データ処理回路は前記システムクロック信号に同期して通信インタフェースを行う通信インタフェース制御回路を含む、請求項１２記載の半導体装置。
【請求項１４】
前記データ処理回路はセキュリティ処理を行う中央処理装置を含む、請求項１０記載の半導体装置。
【請求項１５】
第１クロック信号を生成する発振回路と、
外部端子から供給される第２クロック信号及び前記第１クロック信号に基づいてシステムクロック信号を出力するクロック発生回路と、
前記システムクロック信号に同期して動作するデータ処理回路と、を有する半導体装置であって、
前記クロック発生回路は、第１クロック信号を計数して第２クロック信号の周期値を取得する計測回路と、
前記第１クロック信号を計数しその計数値が前記周期値を逓倍数で除した商の値に対応するときの当該計数値に基づいて単位サイクルを決定した第３クロック信号を生成し、前記逓倍数で前記計数値を除した商の余りに対応する第１クロック信号のサイクル期間に対応して前記第３クロック信号を生成するための前記第１クロック信号の計数動作を抑止するイネーブル制御を行う逓倍クロック生成制御回路とを有する半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、第１クロック信号とは非同期の第２クロック信号の周波数を逓倍した周波数を有し且つ第１クロック信号に同期したクロック信号を生成する技術に関し、例えばマイクロコンピュータのシステムクロック信号を生成するクロック発生回路に適用して有効な技術に関する。
【背景技術】
【０００２】
特許文献１には、フィードバックループを有するＰＬＬ回路における逓倍周波数出力を安定化させるために、基準クロック信号の半周期のカウント値を逓倍率で除した値を逓倍カウント値とするとき、リングオシレータの出力クロックにより逓倍カウント値をカウントする毎に逓倍クロックの出力を反転させる逓倍クロックカウンタを採用することにより、フィードバックロープのないクロック逓倍回路を構成することが記載される。
【０００３】
特許文献２には、フィードバックループのないクロック逓倍回路で生成される逓倍クロック信号のパルス数を高精度に制御するために、入力クロック信号を計測して得られる周期データを逓倍率の値で除したときの余りに応じて周波数逓倍用のカウンタの分周比を変更することにより、入力クロック信号の１周期内のパルス数を逓倍率の値からずれないようにして、逓倍クロック信号を生成する周波数逓倍回路について記載される。前記余りを生ずるのは、入力クロック信号に対してその周期を計測するためのクロック信号が周波数及び位相の点で非同期であるからである。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００４−５６６６３号公報
【特許文献２】特開２００１−３３２９６２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献２は、フィードバックループのないクロック逓倍回路で生成される逓倍クロック信号のパルス数を高精度に制御することについて考慮されていない特許文献１の技術を発展させている。しかしながら、周波数逓倍用のカウンタの分周比を変更することによって対処するものであるから、分周比を変更してパルス数が安定化するまでには少なからず時間を要する。即ち、各入力クロック信号の１周期内のパルス数が逓倍率の値からずれる状態を原理的に阻止することはできない。例えばクロック信号のサイクル単位で同期してデータ伝送を行う通信インタフェース制御に用いられるクロック信号を生成する場合には、クロック信号のパルス数のずれは通信データの伝送単位の把握ミスを生ずる虞につながることが本発明者によって見出された。
【０００６】
更に、特許文献１及び特許文献２は、同期的に逓倍されるべき入力クロック信号の周波数にばらつきがある場合、更には急激に変化した場合について考慮されていない。ばらつきが大きくなれば、クロック信号のパルス数のずれが収束するのに更に時間を要することになる。クロック周波数が急激に変化したとき、なんら考慮がなければ、逓倍出力クロック信号のクロック変化が一時的に消失する虞もある。ＩＣカード用マイクロコンピュータなどのセキュリティ処理を行う半導体装置のシステムクロック信号を生成する回路に適用される場合、クロック信号の急激な変化によってシステムクロック信号が大きく乱れると、その異常が検出される前にマイクロコンピュータに誤動作を生じ、積極的に誤動作を生じさせて秘匿情報の不正アクセスを試みるアタックに対して脆弱であることが本発明者によって見出された。
【０００７】
本発明の目的は、逓倍されたクロック信号のパルス数が逓倍数の値からずれる状態を原理的に阻止することができるクロック逓倍技術を提供することにある。
【０００８】
本発明の別の目的は、入力クロック信号の周波数の変化に対して逓倍されたクロック信号の乱れを小さく抑えることができるクロック逓倍技術を提供することにある。
【０００９】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１０】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【００１１】
すなわち、第２クロック信号（入力クロック）のサイクル単位で、第１クロック信号（サンプリングクロック）の計数値を逓倍数で除した商の値に対応するサンプリングクロックサイクル数を単位として第３クロック信号（逓倍クロック）を順次生成すると共に、生成された一つの逓倍クロックサイクルにおいて前記商の余りに対応する当該サンプリングクロックのサイクル期間に対応して逓倍クロック信号の変化を抑止する制御を行う。
【００１２】
これにより、計数値を逓倍数で除した商に余りがある状態でも、計数値に対応する入力クロックのサイクル単位で、逓倍数に等しいパルス数の逓倍クロックを生成することができる。逓倍クロック信号の変化を選択的に抑止するイネーブル制御を用いてパルス数を制御するから、余りの値に応じて分周器の分周比を変更する構成を採用する必要はなく、その制御に良好な応答性を得ることができる。
【発明の効果】
【００１３】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記のとおりである。
【００１４】
すなわち、逓倍されたクロック信号のパルス数が逓倍数の値からずれる状態を原理的に阻止することができるクロック逓倍技術を提供することができる。
【図面の簡単な説明】
【００１５】
【図１】図１は本発明の一実施の形態に係るクロック逓倍回路の構成を例示するブロック図である。
【図２】図２は周期切り替え制御回路によるカウンタのイネーブル制御によって入力クロック信号ＣＬＫ２のサイクル毎に出力クロック信号ＣＬＫ３のパル数を逓倍数に等しく制御するときの基本的な動作タイミングを例示するタイミングチャートである。
【図３】図３はサンプリングクロック信号ＣＬＫ１の周波数に対して大差のない入力クロック信号ＣＬＫ２を逓倍する動作（高速逓倍動作）を行うときのタイミングを例示するタイミングチャートである。
【図４】図４は入力クロック周期の平均化回路の一例を示すブロック図である。
【図５】図５は入力クロック信号ＣＬＫ２の周波数が低速周波数から高速周波数に急激に変化されたときの動作タイミングを例示するタイミングチャートである。
【図６】図６は図１のクロック逓倍回路をクロック発生器に適用したマイクロコンピュータを用いたＩＣカードを例示するブロック図である。
【発明を実施するための形態】
【００１６】
１．実施の形態の概要
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
【００１７】
〔１〕＜逓倍されたクロック信号のパルス数をイネーブル制御により逓倍数に一致させる＞
本発明の代表的な実施の形態に係るクロック逓倍回路（１）は、第１クロック信号（ＣＬＫ１）を計数して第２クロック信号（ＣＬＫ２）の周期値（１０２）を取得する第１回路（２）と、前記第１クロック信号を計数しその計数値が前記周期値を逓倍数で除した商の値に対応するときの当該計数値（分周値）に基づいて単位サイクルが決定された第３クロック信号（ＣＫＬ３）を生成する第２回路（逓倍クロック生成回路）と、前記逓倍数で前記計数値を除した商の余りに対応する第１クロック信号のサイクル期間（分周値動作ディスエーブル期間）に対応して前記第２回路による前記第１クロック信号の計数動作を抑止するイネーブル制御信号（１０６）を生成する第３回路（４）と、を有する。
【００１８】
これにより、第２クロック信号に対して周波数が逓倍され、第２クロック信号のサイクル単位で逓倍数に等しいサイクル数を持ち、第１クロック信号に同期する、第３クロック信号を生成することができる。特に、計数値を逓倍数で除した商に余りがある状態でも、第２クロック信号のサイクル単位で、逓倍数に等しいパルス数の第３クロック信号を生成することができる。第３クロック信号の変化を選択的に抑止するイネーブル制御を用いてパルス数を制御するから、余りの値に応じて分周器の分周比を変更する構成を採用する必要はなく、その制御に良好な応答性を得ることができる。したがって、逓倍されたクロック信号のパルス数が逓倍数の値からずれる状態を原理的に阻止することができる。
【００１９】
〔２〕＜平均化回路＞
項１のクロック逓倍回路において、前記第１回路が取得した周期値を前記第２クロック信号の複数サイクル分蓄積して平均化する平均化回路（５）を更に有する。このとき、前記第２回路は前記平均化回路で平均化された周期値を用いて第３クロック信号を生成する。
【００２０】
前記平均化回路で取得された計数値を用いて第３クロック信号を生成するから、入力クロック信号の周波数の変化に対して逓倍されたクロック信号の乱れを小さく抑えることができる。
【００２１】
〔３〕＜第２クロックの安定／非安定に応ずる平均化＞
項２のクロック逓倍回路は更に、前記平均化回路の出力と前記第１回路の出力とに基づいて第２クロック信号の安定／非安定を判別する判別回路（７）を有する。このとき、前記平均化回路は、前記判別回路による判別結果が安定であるとき、平均化対象となる周期値の取り込みを第２クロック信号のサイクル単位（信号１００に同期）で行い、前記判別回路による判別結果が非安定であるとき、平均化対象となる周期値の取り込みを第３クロック信号のサイクル単位（信号１０４に同期）で行う。
【００２２】
第２クロック信号周波数に大きな変化がなければ第２クロック信号のサイクル単位で平均化を行えば充分であるが、第２クロック信号の周波数が急激に下がったとき第２クロック信号のサイクル単位で平均化を行うとその変化が第３クロック信号に反映されるのが遅くなり過ぎ、逆に、第２クロック信号の周波数が急激に上がったとき第２クロック信号のサイクル単位で平均化を行うとその変化が第３クロック信号に急激に反映されることになる。上記手段によれば、第２クロック信号に急激な変化があっても、その周波数変化が第３クロック信号に急激に反映されず、また、遅くなり過ぎず、クロック変化による誤動作を生ずる虞のない適度のタイミングで、第２クロック信号の周波数変化を第３クロック信号に反映することができる。更にこのことは、クロック信号の急激な変化によって誤動作を生じさせて秘匿情報に不正アクセスするアタック攻撃を阻止することが可能になる。
【００２３】
〔４〕＜非安定時におけるイネーブル制御信号の強制イネーブル＞
項３のクロック逓倍回路において、前記第３回路は、前記判別回路による判別結果が非安定であるとき、前記イネーブル制御信号を、前記逓倍数で前記周期値を除した商の余りに対応する第１クロック信号のサイクル期間にも前記第２回路による前記第１クロック信号の計数動作を許可する状態にする。
【００２４】
第２クロック信号の急激な変化、例えば周波数が急激に低くされると、平均化回路によってその変化が第３クロック信号に反映されるまでの動作期間では、急激に変化された第２クロック信号のサイクルと第３クロック信号との間にはサイクルに大きな差があり、イネーブル信号により第３クロック信号のパルス変化を抑止する機能を有効とすればパルス変化の抑止が解除するまでの期間が長くなり過ぎてクロック波形が大きく歪むことになる。非安定状態においてイネーブル信号による抑止機能を非活性とすることにより、そのようなクロック波形の大きな歪みを防止することができる。
【００２５】
〔５〕＜第３回路による第３クロック信号生成のイネーブル及びディスエーブル制御＞
項４のクロック逓倍回路において、前記第１回路は、第２クロック信号のサイクル単位で第１クロック信号を計数して前記周期値を生成する第１カウンタ（２１）を有する。前記第２回路は、前記イネーブル制御信号の第１状態に応答して前記第１クロック信号を計数すると共に前記イネーブル制御信号の第２状態に応答して第１クロック信号の計数動作を停止する第２カウンタ（３０）と、前記第２カウンタによる計数値が前記商の値になる毎に前記第３クロック信号のクロックサイクルを切り替える第１ロジック回路（３１）とを有する。前記第３回路は、前記第２クロック信号のサイクル単位で前記第３クロック信号のサイクル数を計数する第３カウンタ（４０）と、前記第３カウンタのカウント値が目的値に達したとき前記イネーブル制御信号を第２状態とし、前記第２クロック信号の次のサイクルの開始に応答して前記イネーブル制御信号を第１状態にする第２ロジック回路（４１，４２）とを有する。
【００２６】
項４の作用効果を比較的簡単な構成によって実現することができる。
【００２７】
〔６〕＜逓倍されたクロック信号のパルス数をイネーブル制御により逓倍数に一致させる＞
本発明の代表的な別の実施の形態に係るクロック逓倍回路（１）は、第１クロック信号（ＣＬＫ１）を計数して第２クロック信号（ＣＬＫ２）の周期値（周期レジスタ値）を取得する計測回路（２）を有する。更に、前記第１クロック信号を計数しその計数値が前記周期値を逓倍数で除した商の値に対応するときの当該計数値（分周値）に基づいて単位サイクルを決定した第３クロック信号（ＣＬＫ３）を生成し、前記逓倍数で前記計数値を除した商の余りに対応する第１クロック信号のサイクル期間（分周値動作ディスエーブル期間）に対応して前記第３クロック信号を生成するための前記第１クロック信号の計数動作を抑止するイネーブル制御を行う逓倍クロック生成制御回路（３，４）を有する。
【００２８】
項１と同様に、第３クロック信号の変化を選択的に抑止するイネーブル制御を用いてパルス数を制御するから、余りの値に応じて分周器の分周比を変更する構成を採用する必要はなく、その制御に良好な応答性を得ることができる。したがって、逓倍されたクロック信号のパルス数が逓倍数の値からずれる状態を原理的に阻止することができる。
【００２９】
〔７〕＜逓倍されたクロック信号のパルス数をイネーブル制御により逓倍数に一致させる＞
本発明の代表的な別の実施の形態に係る半導体装置（２００）は、第１クロック信号（ＣＬＫ１）を生成する発振回路（２１４）と、外部端子（ＣＬＫ）から供給される第２クロック信号（ＣＬＫ２）及び前記第１クロック信号に基づいてシステムクロック信号（ＳＣＬＫ）を出力するクロック発生回路（２２３）と、前記システムクロック信号に同期して動作するデータ処理回路（２２５、２２６、２２７）と、を有する。前記クロック発生回路は、第１クロック信号（ＣＬＫ１）を計数して第２クロック信号（ＣＬＫ２）の周期値（周期レジスタ値）を取得する第１回路（２）と、前記第１クロック信号を計数しその計数値が前記周期値を逓倍数で除した商の値に対応するときの当該計数値（分周値）に基づいて単位サイクルが決定された第３クロック信号（ＣＬＫ３）を生成する第２回路（３）と、前記逓倍数で前記計数値を除した商の余りに対応する第１クロック信号のサイクル期間（分周値動作ディスエーブル期間）に対応して前記第２回路による前記第１クロック信号の計数動作を抑止するイネーブル制御信号（１０６）を生成する第３回路（４）とを有する。
【００３０】
項１と同様に、第３クロック信号の変化を選択的に抑止するイネーブル制御を用いてパルス数を制御するから、余りの値に応じて分周器の分周比を変更する構成を採用する必要はなく、その制御に良好な応答性を得ることができる。したがって、逓倍されたクロック信号のパルス数が逓倍数の値からずれる状態を原理的に阻止することができる。
【００３１】
〔８〕＜平均化回路＞
項７の半導体装置において、前記クロック逓倍回路は更に、前記第１回路が取得した周期値を前記第２クロック信号の複数サイクル分蓄積して平均化する平均化回路を有する。このとき、前記第２回路は前記平均化回路で平均化された周期値を用いて第３クロック信号を生成する。
【００３２】
項２と同様に、入力クロック信号の周波数の変化に対して逓倍されたクロック信号の乱れを小さく抑えることができる。
【００３３】
〔９〕＜第２クロックの安定／非安定に応ずる平均化＞
項８の半導体装置において、前記クロック逓倍回路は更に、前記平均化回路の出力と前記第１回路の出力とに基づいて第２クロック信号の安定／非安定を判別する判別回路を有する。このとき、前記平均化回路は、前記判別回路による判別結果が安定であるとき、平均化対象となる周期値の取り込みを第２クロック信号のサイクル単位で行い、前記判別回路による判別結果が非安定であるとき、平均化対象となる周期値の取り込みを第３クロック信号のサイクル単位で行う。
【００３４】
項３と同様に、第２クロック信号に急激な変化があっても、その周波数変化が第３クロック信号に急激に反映されず、また、遅くなり過ぎず、クロック変化による誤動作を生ずる虞のない適度のタイミングで、第２クロック信号の周波数変化を第３クロック信号に反映することができる。更に、クロック信号の急激な変化によって誤動作を生じさせて秘匿情報に不正アクセスするアタック攻撃を阻止することが可能になる。
【００３５】
〔１０〕＜非安定時におけるイネーブル制御信号の強制イネーブル＞
項９の半導体装置において、前記第３回路は、前記判別回路による判別結果が非安定であるとき、前記イネーブル制御信号を、前記逓倍数で前記周期値を除した商の余りに対応する第１クロック信号のサイクル期間にも前記第２回路による前記第１クロック信号の計数動作を許可する状態にする。
【００３６】
項４と同様に、非安定状態においてイネーブル信号による抑止機能を非活性とすることにより、第３クロック信号のクロック波形の大きな歪みを防止することができる。
【００３７】
〔１１〕＜第３回路による第３クロック信号生成のイネーブル及びディスエーブル制御＞
項１０の半導体装置において、  前記第１回路は、第２クロック信号のサイクル単位で第１クロック信号を計数して前記周期値を生成する第１カウンタを有する。前記第２回路は、前記イネーブル制御信号の第１状態に応答して前記第１クロック信号を計数すると共に前記イネーブル制御信号の第２状態に応答して第１クロック信号の計数動作を停止する第２カウンタと、前記第２カウンタによる計数値が前記商の値になる毎に前記第３クロック信号のクロックサイクルを切り替える第１ロジック回路とを有する。前記第３回路は、前記第２クロック信号のサイクル単位で前記第３クロック信号のサイクル数を計数する第３カウンタと、前記第３カウンタのカウント値が目的値に達したとき前記イネーブル制御信号を第２状態とし、前記第２クロック信号の次のサイクルの開始に応答して前記イネーブル制御信号を第１状態にする第２ロジック回路とを有する。
【００３８】
項１０の作用効果を比較的簡単な構成によって実現することができる。
【００３９】
〔１２〕＜第１クロック信号に直接同期される回路＞
項７の半導体装置は更に、前記第１クロック信号を入力し前記第１クロック信号に同期動作される回路（２２４）を有する。
【００４０】
第２クロック信号の１サイクル内における第３クロック信号のパルス数を逓倍数に等しく制御するのに、イネーブル信号を用いるから第１クロック信号を一時的に停止させることを全く要しない。したがって、第１クロック信号に直接同期動作される回路があっても何ら支障はない。
【００４１】
〔１３〕＜システムクロック信号に同期する通信インタフェース＞
項１２の半導体装置は更に、前記データ処理回路は前記システムクロック信号に同期して通信インタフェースを行う通信インタフェース制御回路（２２７）を含む。
【００４２】
システムクロック信号に同期してデータ伝送を行う通信インタフェース制御において、システムクロック信号のパルス数の変動分の累積などに起因して通信マージンを確保することが困難になったりデータエラーを発生したりして通信エラーになる虞を未然に防止することができる。
【００４３】
〔１４〕＜セキュリティ処理を行う中央処理装置＞
項１０の半導体装置において、前記データ処理回路はセキュリティ処理を行う中央処理装置（２２５）を含む。
【００４４】
セキュリティ処理の結果データやそれに用いる秘匿データを持っていても、クロック周波数を急激に変更して秘匿データを不正アクセスするアタック攻撃に対処することができる。
【００４５】
〔１５〕＜逓倍されたクロック信号のパルス数をイネーブル制御により逓倍数に一致させる＞
本発明の代表的な更に別の実施の形態に係る半導体装置（２００）は、第１クロック信号（ＣＬＫ１）を生成する発振回路（２１４）と、外部端子（ＣＬＫ）から供給される第２クロック信号（ＣＬＫ２）及び前記第１クロック信号に基づいてシステムクロック信号（ＳＣＬＫ）を出力するクロック発生回路（２２３）と、前記システムクロック信号に同期して動作するデータ処理回路（２２５，２２６，２２７）と、を有する。前記クロック発生回路は、第１クロック信号（ＣＬＫ１）を計数して第２クロック信号（ＣＬＫ２）の周期値（周期レジスタ値）を取得する計測回路（２）と、前記第１クロック信号を計数しその計数値が前記周期値を逓倍数で除した商の値に対応するときの当該計数値（分周値）に基づいて単位サイクルを決定した第３クロック信号（ＣＬＫ３）を生成し、前記逓倍数で前記計数値を除した商の余りに対応する第１クロック信号のサイクル期間（分周値動作ディスエーブル期間）に対応して前記第３クロック信号を生成するための前記第１クロック信号の計数動作を抑止するイネーブル制御を行う逓倍クロック生成制御回路（３，４）とを有する。
【００４６】
項１と同様に、第３クロック信号の変化を選択的に抑止するイネーブル制御を用いてパルス数を制御するから、余りの値に応じて分周器の分周比を変更する構成を採用する必要はなく、その制御に良好な応答性を得ることができる。したがって、逓倍されたクロック信号のパルス数が逓倍数の値からずれる状態を原理的に阻止することができる。
【００４７】
２．実施の形態の詳細
実施の形態について更に詳述する。
【００４８】
図１には本発明の一実施の形態に係るクロック逓倍回路の構成が例示される。同図に示されるクロック逓倍回路１は、入力クロック信号ＣＬＫ２を入力し、その周波数を逓倍設定値ＭＧＤＡＴにしたがって逓倍した周波数を有し且つサンプリングクロック信号ＣＬＫ１に同期した出力クロック信号ＣＬＫ３を出力する。
【００４９】
クロック逓倍回路１は、第１クロック信号としてのサンプリングクロック信号ＣＬＫ１を計数して第２クロック信号としての入力クロック信号ＣＬＫ２の周期値（入力クロック周期データ）１０２を取得する第１回路としてのクロック周期計測回路２を有する。
【００５０】
クロック周期計測回路２は入力クロックエッジ検出回路２０、入力クロック周期カウンタ２１及び入力クロック周期レジスタ２２を有する。
【００５１】
入力クロックエッジ検出回路２０は、サンプリングクロック信号ＣＬＫ１で入力クロック信号ＣＬＫ２を同期化し、入力クロック信号ＣＬＫ２のエッジを検出することにより、エッジ検出パルス１００を出力する。検出するエッジは、立ち上り/立ち下りのどちらか片方向のエッジであり、例えば立ち上がりエッジとする。同期化により、エッジ検出パルス１００の出力タイミングは、サンプリングクロック信号ＣＬＫ１で１クロック前後する場合がある。即ち、入力クロック信号ＣＬＫ２とサンプリングクロック信号ＣＬＫ１が非同期のため、入力クロック信号ＣＬＫ２をサンプリングクロック信号ＣＬＫ１で動作する例えば２段のフリップフロップを用いて同期化するからであり、少なくとも入力クロック信号ＣＬＫ２の周期の値はサンプリングクロック信号ＣＬＫ１の１サイクル分前後する場合がある。
【００５２】
入力クロッククロック周期カウンタ２１は、入力クロックエッジ検出回路２０が出力するエッジ検出パルス１００の間隔を、サンプリングクロック新語言うＣＬＫ１でカウントすることによって、入力クロック信号ＣＬＫ２の周期を測定する。このカウンタ２１はエッジ検出パルス１００のパルス変化、例えば当該パルスの立下りに同期してカウント値が初期化される。初期値は例えば１である。
【００５３】
入力クロック周期レジスタ２２はエッジ検出パルスの変化に同期して、初期化前の入力クロック周期カウンタ２１の値を保持する。保持した値は次のエッジ検出パルスが入力されるまで保持される。保持された値は入力クロック周期データ１０２として出力される。
【００５４】
入力クロック周期データ１０２が入力される入力クロック周期平均化回路１０３は、エッジ検出パルス１００が入力されたときの入力クロック周期データ１０２と、過去の入力クロック周期データ１０２との値を平均化する。入力クロック周期を平均化することにより、入力クロック信号ＣＬＫ２の周波数が急激に変化しても、後段の逓倍クロック生成回路３に入力される平均化入力クロック周期データ１０３の値は徐々に変化するため、逓倍クロック生成回路３で逓倍された後の出力クロック信号ＣＬＫ３が急激に変化することを抑制することができるようになる。
【００５５】
後段の逓倍クロック生成回路３には、セレクタ６で選択された入力クロック周期データ１０２又は平均化入力クロック周期データ１０３が供給される。この逓倍クロック生成回路３は、図２のタイミングチャートにも例示されるように、逓倍制御データとしての逓倍設定値ＭＧＤＡＴで指定される逓倍数（例えば値４）で前記入力クロック周期データ１０２又は平均化入力クロック周期データ１０３の値（例えば値２５）を除した商の値（例えば値６）に対応するサンプリングクロック信号ＣＬＫ１のサイクル数（例えば分周値６）に基づいて単位サイクルが決定された出力クロック信号ＣＬＫ３を生成する。
【００５６】
第３クロック信号ＣＬＫ３の単位サイクルを制御するためにカウンタ（ＣＯＵＮＴ）３０とロジック回路（ＬＧＣ）３１を有する。カウンタ３０は、逓倍動作イネーブル信号１０６がイネーブル（例えばハイレベル）にされることによってカウント動作を開始して、初期値から前記分周値までの計数動作を繰り返し、逓倍動作イネーブル信号１０６がディスエーブル（例えばローレベル）にされることによってカウント動作を停止する。ロジック回路３１は逓倍設定値ＭＧＤＡＴと周期データ１０２（又は１０３）に基づいて分周値を取得すると共に、逓倍動作イネーブル信号１０６に基づいてカウンタ３０のカウント開始と停止を制御し、且つ、カウンタの初期値から分周値までのカウント動作サイクルを１サイクルとする出力クロック信号ＣＬＫ３を生成する。ロジック回路３１は、出力クロック信号ＣＬＫ３のサイクルの区切り毎に、即ち出力クロック立ち上がりエッジに同期して、出力クロック立ち上がりエッジパルス１０４を出力する。ロジック回路３０は出力クロック立ち上がりエッジパルス１０４の出力に同期してカウンタ３０のカウント値を初期化し、このとき、逓倍動作イネーブル信号１０６がイネーブルレベルであればカウンタ３０は初期値から計数動作を開始し、ディスエーブルであればカウンタ３０はイネーブルレベルにされるまで計数動作の開始を待つ。要するに、カウンタ３０の計数動作が非活性とされる。このカウント非活性期間において、出力クロック信号ＣＬＫ３はハイレベルにされて待つ。それとは逆にローレベルで待って、カウント開始してからハイレベルに反転してもよい。
【００５７】
逓倍動作イネーブル信号１０６を生成する周期切り替え制御回路４は、出力クロック数ダウンカウンタ４０、コンパレータ４１及びセレクタ４２を有する。出力クロック数ダウンカウンタ４０は、エッジ検出パルス１００のパルス変化に応答して逓倍設定値ＭＧＤＡＴが初期値としてプリセットされ、出力クロック立ち上がりエッジパルスの変化に同期してダウンカウントを行う。そのダウンカウント値である出力クロックカウント値１０５はコンパレータ４１で値０であるか否かが判別される。出力クロックカウント値１０５が値０でなければハイレベルを出力し、値０であればローレベルを出力する。セレクタ４２は非安定フラグ１０７の値に従って逓倍動作イネーブル信号１０６としてコンパレータ４１の出力、又はハイレベル固定（カウンタ３０の連続動作）を選択する。即ち、出力クロック数ダウンカウンタ４０は入力クロック信号ＣＬＫ２のサイクル単位で出力クロック信号ＣＬＫ３のサイクルを計数し、この出力クロック数ダウンカウンタ４０によるカウント値が値０にカウントアウトされるまでに次の入力クロック信号ＣＬＫ２のサイクルが開始されればエッジ検出パルス１００のパルス変化に同期して出力クロック数ダウンカウンタ４０の初期値４がプリセットされてダウンカウントを再開するので、逓倍動作イネーブル信号１０６はローレベルのネゲートされることなく、カウンタ３０は引き続きサンプリングクロック信号ＣＬＫ１の計数動作を行う。一方、その出力クロック数ダウンカウンタ４０によるカウント値が値０にカウントアウトされたとき次の入力クロック信号ＣＬＫ２のサイクルが開始されていなければ前記逓倍動作イネーブル信号１０６がローレベルにされてカウンタ３０の計数動作が停止され、その後、次の入力クロック信号ＣＬＫ２のサイクルが開始されてエッジ検出パルス１００のパルス変化があると、これに同期して出力クロック数ダウンカウンタ４０の初期値４がプリセットされてダウンカウントを再開し、これによって逓倍動作イネーブル信号１０６がローレベルからハイレベルにアサートされるので、これに応答してカウンタ３０はサンプリングクロック信号ＣＬＫ１の計数動作を再開する。
【００５８】
図２には、周期切り替え制御回路４によるカウンタ３０のイネーブル制御によって入力クロック信号ＣＬＫ２のサイクル毎に出力クロック信号ＣＬＫ３のパル数を逓倍数に等しく制御するときの基本的な動作タイミングが例示される。ここでは入力クロック信号ＣＬＫ２を４逓倍するものとする。エッジ検出パルス１００は入力クロックＣＬＫ２の立ち上りエッジを検出するものとする。セレクタ４２はコンパレータ４１の出力を選択するものとする。
【００５９】
入力クロック信号ＣＬＫ２が立ち上がると（ｔ０）、エッジ検出パルス１００がサンプリングクロック信号ＣＬＫ１の１クロック分出力される（ｔ１〜ｔ２）。エッジ検出パルス１００がアサートされると、次のサンプリングクロック信号ＣＬＫ１の立ち上りで入力クロック周期カウンタ２１の値が”１”に初期化され（ｔ３）、入力クロック周期レジスタ２２には初期化前の入力クロック周期カウンタ２１の値が設定され（ｔ３）、出力クロック数ダウンカウンタ４０には逓倍値（逓倍設定値ＭＧＤＡＴの値）が設定される（ｔ３）。この状態で出力クロックカウント値１０５は値０でないから、逓倍動作イネーブル信号１０６はハイレベルにされ、カウンタ３０はサンプリングクロック信号ＣＬＫ１を初期値から分周値（値６）まで計数する毎に１サイクルとする出力クロック信号ＣＬＫ３を出力すると共に出力クロック立ち上がりエッジパルス１０４をパルス変化させる（ｔ４〜ｔ７）。出力クロック立ち上がりエッジパルス１０４のパルス変化毎に出力クロック数ダウンカウンタ４０を初期値４からダウンカウントしていく。そのダウンカウント値である出力クロックカウント値１０５が値”０”になると（ｔ７）、逓倍動作イネーブル信号１０６がローレベルにネゲートされる（ｔ７）。この後、入力クロック信号ＣＬＫ２の次のサイクルの開始がエッジ検出パルス１００によって出力クロック数ダウンカウンタ４０に伝えられて出力クロックカウント値が初期値４にプリセットされると（ｔ８）、逓倍動作イネーブル信号１０６がハインレベルにアサートされてカウンタ３０の計数動作が再開される（ｔ８）。
【００６０】
入力クロック周期計測回路２は、入力クロック信号ＣＬＫ２をサンプリングクロック信号ＣＬＫ１で同期化しているため、入力クロック信号ＣＬＫ２を一定の周波数に保っても、サンプリングクロック信号ＣＬＫ１の１クロックサイクルの誤差が生じる。入力クロック信号ＣＬＫ２にジッタがあれば、その誤差は更に大きくなる。上記動作説明から明らかなように、上記誤差は出力クロックカウント値１０５の値０の期間に応じて出力クロック信号ＣＬＫ３の一つのサイクル長さを調整することによって吸収され、それによって、入力クロック信号ＣＬＫ２のサイクル単位で出力クロック信号のサイクル数を逓倍数に等しく制御することができる。その制御はフィードバックループを介して行うことを要せず、また、出力クロック信号の全てのクロックサイクルに対して分周を行うような分周回路を用いることも必要とされない。カウンタ３０のイネーブル／ディスエーブル制御によって制御するから、その制御に良好な応答性を得ることができる。
【００６１】
図３にはサンプリングクロック信号ＣＬＫ１の周波数に対して大差のない入力クロック信号ＣＬＫ２を逓倍する動作（高速逓倍動作）を行うときのタイミングが例示される。図１の回路構成による逓倍可能な最小サンプリングクロック信号ＣＬＫ１の周波数（ｆｍｉｎ：最小サンプリング周波数）は、例えば入力クロック信号ＣＬＫ２の周波数をｆ２とすると、「ｆｍｉｎ≒２×逓倍数×ｆ２」とされる。ここではその条件で４逓倍する時のタイミングが例示される。
【００６２】
サンプリングクロック信号ＣＬＫ１の周波数が入力クロック信号の周波数よりも格段に高い関係が成り立っていれば、入力クロック信号の周期が切り替わる際に本実施の形態に示されるようなイネーブル制御を行わなくても済む場合が多くなる。要するに、入力クロック周期データの値を逓倍値で除した商の余りを無視し得る誤差とみなすことが可能になる場合である。しかしながら、サンプリングクロック信号ＣＬＫ１の周波数が高いほど、クロック逓倍回路の消費電力が増加するため、非接触ＩＣカードデバイスに代表されるような低消費電力が重要視されるシステムには向いていない。図３のタイミングチャートはこれを考慮したもので、逓倍可能な最小サンプリングクロック信号の周波数に近い状態を示している。この条件では、入力クロック周期データ１０２の値が１ずれるだけで、逓倍クロック関係が崩れる可能性がある。したがって、図３に示すように、入力クロック周期が変化しても逓倍関係を維持するために、逓倍クロック生成回路３の動作を制御する上記周期切り替え制御回路４が必須となる。周期切り替え制御回路４は、逓倍クロック生成回路３による出力クロック信号ＣＬＫ３の出力サイクルを示す出力クロック立ち上がりパルス１０４を用いて逓倍数分の出力クロック信号ＣＬＫ３が出力されたことを検知すると、前述のように、逓倍クロック生成回路３のカウンタ３０によるカウント動作を停止させて逓倍数を調整するようにうなっている。例えば、時刻ｔ０で入力クロック周期カウンタ値１０１が値９になっても、出力クロック立ち上がりパルス１０４の変化に同期して出力クロックカウント値１０５が値０になって逓倍動作イネーブル信号１０６がローレベルにネゲートされるから、入力クロック信号ＣＬＫ２の次のサイクルの開始がエッジ検出パルス１００によって通知されるまで（ｔ１）の調整機期間分だけ出力クロック信号ＣＬＫ３の最初のハイレベルパルス期間が延長され、出力クロック信号ＣＬＫ３逓倍数が４に維持される。
【００６３】
したがって、周期切り替え制御回路４による逓倍クロック生成回路３に対するイネーブル制御機能により、「ｆｍｉｎ≒２×逓倍数×ｆ２」の条件で逓倍できるため、低消費電力を重要視するシステム並びにデバイスに好適である。
【００６４】
図４には入力クロック周期の平均化回路５の一例が示される。平均化回路５は平均化回路前段部５０、平均化回路後段部５１、及びライトイネーブル信号１０９のセレクタを有する。
【００６５】
平均化回路前段部５０は、初段の入力（ｄ）に入力クロック周期データ１０２を受け、前段の出力（ｑ）を入力（ｄ）に受ける直列３段のレジスタ５３Ａ，５３Ｂ，５３Ｃを有し、加算回路５３Ｄが夫々のレジスタ５３Ａ，５３Ｂ，５３Ｃの出力データと最新の入力クロック周期データ１０２を入力して加算し、その加算値を割り算器５３Ｅで１／４にして、入力クロック信号ＣＬＫ２の４サイクル分の入力クロック周期データ１０２の平均値を演算する。レジスタ５３Ａ，５３Ｂ，５３Ｃはライトイネーブル信号１０９の書き込みイネーブルレベル（例えばハイレベル）の期間にサンプリングクロック信号ＣＬＫ１に同期して書き込み動作を行う。
【００６６】
平均化回路後段部５１は、ライトイネーブル信号１０９の書き込みイネーブルレベル（例えばハイレベル）の期間にサンプリングクロック信号ＣＬＫ１に同期して書き込み動作を行う１個のレジスタ５４Ｂを有し、このレジスタ５４Ｃの出力（ｑ）は割り算器５４Ｃで１／２にされて加算器５４Ａで前記割り算器５３Ｅの出力に加算され、その加算値がレジスタ５４Ｂの入力（ｄ）に帰還される。５４Ｄはレジスタ５４Ｂの出力に対して２の剰余を演算する剰余演算器であり、これによって得られた剰余を加算器５４Ｅで割り算器５４Ｃの商に加算し、加算結果が平均化入力クロック周期データ１０３として出力される。平均化回路後段部５１は、平均化回路前段部５０で得られた今回の平均値と前回の平均値とを平均して平均化入力クロック周期データとするものである。剰余演算器５４Ｄは次の理由により設けられている。すなわち、加算器５４Ａへの平均化回路前段部５０からの周期データが奇数で、レジスタ５４Ｂから帰還入力された周期データが偶数の場合、双方の加算結果を２で割ったときに結果が平均化回路前段部５０からの値に比べて１小さくなる。よって、奇数と偶数の加算結果が加算器５４Ａからレジスタ５４Ｂに格納された場合には、２で割ったときの余りを繰上げとするために、レジスタ５４Ｂの値に対する２の剰余を、割り算器５４Ｃによる２の商に加算するためである。
【００６７】
セレクタ５２はエッジ検出パルス１００又は出力クロック立ち上がりパルス１０４をライトイネーブル信号１０９として選択する。その選択制御は非安定フラグ１０７の値にしたがって行う。
【００６８】
非安定フラグ１０７は図１に例示されるように、平均化回路１０３から出力される平均化入力クロック周期データ１０３と入力クロック周期レジスタ２２から出力される入力クロック周期データ１０２及び入力クロック周期カウンタ２１から出力される入力クロック周期カウンタ値１０１を取り込んで、入力クロック信号ＣＬＫ２の安定／非安定を判別する。入力クロック信号ＣＬＫ２の非安定とはその周波数が急激に変化する状態を意味し、入力クロック周期カウンタ値１０１のインクリメント動作の所定複数サイクル期間に平均化入力クロック周期データ１０３と入力クロック周期データ１０２との間に閾値を超える相違が発生したか否かによって判別する。入力クロック信号ＣＬＫ２の非安定状態は、取りも直さず出力クロック信号ＣＬＫ３を得るための逓倍動作の非安定状態につながる。逓倍動作に非安定状態を生じさせないようするために非安定フラグ１０７は平均化回路１０３及び周期切り替え制御回路４に供給される。
【００６９】
平均化回路１０３は、図４に例示されるように、非安定フラグ１０７が第２クロック信号ＣＬＫ２の安定を示すとき、平均化対象となる周期値（入力クロック周期データ）１０２の取り込みをエッジ検出パルス１００に同期して第２クロック信号ＣＬＫ２のサイクル単位で行い、それが非安定を示すときは、平均化対象となる入力クロック周期データ１０２の取り込みを出力クロック立ち上がりパルス１０４に同期して第３クロック信号ＣＬＫ３のサイクル単位で行う。
【００７０】
第２クロック信号ＣＬＫの周波数に大きな変化がなければ第２クロック信号ＣＬＫのサイクル単位で平均化を行えば充分であるが、第２クロック信号ＣＬＫ２の周波数が急激に下がったとき第２クロック信号ＣＬＫ２のサイクル単位で平均化を行うとその変化が第３クロック信号ＣＬＫ３に反映されるのが遅くなり過ぎ、逆に、第２クロック信号ＣＬＫ２の周波数が急激に上がったとき第２クロック信号ＣＬＫ２のサイクル単位で平均化を行うとその変化が第３クロック信号ＣＬＫ３に急激に反映されることになる。非安定フラグ１０７の状態に応じて入力クロック周期データ１０２を取り込むタイミングを上述の如く制御することにより、第２クロック信号ＣＬＫ２に急激な変化があっても、その周波数変化が第３クロック信号ＣＬＫ３に急激に反映されず、また、遅くなり過ぎず、クロック変化による誤動作を生ずる虞のない適度のタイミングで、第２クロック信号ＣＬＫ２の周波数変化を第３クロック信号ＣＬＫ３に反映することができる。更に、秘匿データを処理するセキュリティ処理などを行うマイクロコンピュータのシステムクロックの生成にクロック逓倍回路１を用いる場合には、ＣＬＫ２のような外部クロック信号の急激な変化によって誤動作を生じさせて秘匿情報に不正アクセスするアタック攻撃を阻止することが可能になる。
【００７１】
また、周期切り替え制御回路４では、非安定フラグ１０７が非安定を示すときは逓倍動作イネーブル信号１０６をイネーブルの状態（ハイレベル）に強制し、非安定フラグ１０７が安定を示しているときにはコンパレータ４１の出力を選択するセレクタ４２を採用する。したがって、非安定状態では、前記逓倍設定値で平均化入力クロック周期データを除した商の余りに対応するサンプリングクロック信号ＣＬＫ１のサイクル期間にもカウンタ３０によるサンプリングクロック信号ＣＬＫ１の計数動作が許可される。
【００７２】
上記平均化回路５において、平均化回路後段部５１は、現状態値と入力値との平均を取り、入力値の値が現状態値と変わった場合、毎サイクル毎にレジスタ５４Ｂが保有する現状態値と前段部５０からの入力値との和の１／２の計算を行い、徐々に現状態を入力値に近づける。但し、現状態値と入力値との差が大きい場合、始めの数サイクルは平均値が急激に変化することになる。例えば前段部５１だけで考えれば現状態値が１００で入力値が８に変化した場合、次サイクルの現状態(１００+８)／２=５４となり、１サイクルで現状態値が４６に変化することになる。入力クロック信号ＣＬＫ２周期が急激に変化した際に、後段部５１への入力が急激に変化しないようにするのが、平均化回路前段部５１の役割である。平均化回路前段部５１は、４サイクル分の入力クロック周期データを加算し、４で割って平均値を算出するから、入力クロック信号ＣＬＫ２の周期が変化してから４サイクル後には入力と出力の周期が同一の値となる。したがって、入力クロック信号ＣＬＫ２の周期が急激に変化したとき、平均化回路前段部５０と後段部５１を組み合わせることにより、緩やかな周期平均化動作が可能となる。
【００７３】
図５には入力クロック信号ＣＬＫ２の周波数が低速周波数から高速周波数に急激に変化されたときの動作タイミングが例示される。前述の如く、平均化回路前段部５０と後段部５１の直列的構成による緩やかな周期平均化動作に加え、非安定状態においてライトイネーブル信号１０９がエッジ検出パルスから出力クロック立ち上がりパルスに切り替えられることによって平均化回路５０，５１への入力クロック周期データ１０２の取り込みタイミングも、エッジ検出パルス１００よりも長い間隔にされる結果、出力クロック信号ＣＬＫ３が急激に変化しないようにされる。
【００７４】
特に図示はしないが、図５とは逆に周波数が高速周波数から低速周波数に急激に変化されたときも非安定状態においてライトイネーブル信号１０９がエッジ検出パルスから出力クロック立ち上がりパルスに切り替えられることによって平均化回路５０，５１への入力クロック周期データ１０２の取り込みタイミングが、エッジ検出パルス１００よりも短い間隔にされる結果、出力クロック信号ＣＬＫ３の追従が遅くなり過ぎることが防止される。
【００７５】
更に、非安定フラグ１０７が非安定を示しているときは、出力クロックカウント値１０５が値０であってもセレクタ４２によって逓倍動作イネーブル信号１０６はディスエーブルレベルに強制され、出力クロックカウント値１０５が値０の期間もカウンタ３０は計数動作を続ける。入力クロック信号ＣＬＫ２の急激な変化、例えば周波数が急激に低くされると、平均化回路５によってその変化が出力クロック信号に反映されるまでの動作期間では、急激に変化された入力クロック信号のサイクルと出力クロック信号との間にはサイクルに大きな差があり、逓倍動作イネーブル信号１０６により出力クロック信号ＣＬＫ３のパルス変化を抑止する機能を有効とすればパルス変化の抑止が解除するまでの期間が長くなり過ぎてクロック波形が大きく歪むことになる。非安定状態において逓倍イネーブル信号１０６によるカウンタ３０の動作停止を非活性とすることにより、そのようなクロック波形の大きな歪みを防止することができる。
【００７６】
図６には図１のクロック逓倍回路１をクロック発生器２２３に適用したマイクロコンピュータを用いたＩＣカード２００が例示される。ＩＣカード２００はカード基板２０１のマイクロコンピュータ２０２とアンテナ２０３を有する。マイクロコンピュータ２０２は外部端子ＶＤＤ，ＣＬＫ，ＤＡＴを用いる接触インタフェースとアンテナ２０３を用いる近接非接触インタフェースを持つ。
【００７７】
マイクロコンピュータ２０２はアナログ部２０４とディジタル部２０５に大別される。アナログ部２０４は、非接触送受信部２１０、非接触クロック生成部２１１、非接触用電圧レギュレータ２１２、内部電圧レギュレータ２１３、及び高周波内蔵発振器２１４を有する。ディジタル部２０５は、命令を実行する中央処理装置（ＣＰＵ）２２５、ＣＰＵ２２５のワーク領域などに用いられるメモリ２２６、入出力コントローラやアクセラレータなどの周辺モジュール２２７、周波数検出器などの周辺モジュール２２４、及びベースバンド処理プロセッサなどの周辺モジュール２２０を有する。
【００７８】
特に制限されないが、ＣＰＵ２２５、メモリ２２６、及び周辺モジュール２２７はクロック発生器２２３で生成されたシステムクロック信号ＳＣＬＫに同期動作される。周辺モジュール２２４は前記サンプリングクロック信号ＣＬＫ１を直接受けて動作される。
【００７９】
クロック発生器２２３は前記クロック逓倍回路１、セレクタ２２８及び分周器２２９を有し、システムクロック信号ＳＣＬＫを生成する。セレクタ２２８はクロック信号ＣＬＫ１，ＣＬＫ２，ＣＬＫ３の中から一つを選択し、選択されたクロック信号がシステムクロック信号ＳＣＬＫとされる。
【００８０】
サンプリングクロック信号ＣＬＫは高周波内蔵発振回路２１４で生成されるクロック信号である。入力クロック信号ＣＬＫ２は外部端子ＣＬＫから入力される外部クロック信号又はアンテナ２０３による受信信号から抽出されたキャリア信号に基づいて生成されたクロック信号とされる。入力クロック信号ＣＬＫ２は、特に制限されないが、１ＭＨｚから５ＭＨｚの周波数が想定される。逓倍設定値ＭＧＤＡＴは制御レジスタ２２１に設定されたデータである。制御レジスタ２２１は例えばＣＰＵ２２５のアドレス空間にマッピングされ、パワーオンリセットによる初期設定又はＣＰＵ２２５によるプログラマブル設定が可能にされる。図示はしないがセレクタ２２８の選択、及び分周器２２９の分周比の設定も制御レジスタ２２１が保有する制御データに基づいて行われる。
【００８１】
上記実施の形態によれば以下の作用効果を得ることができる。
【００８２】
〔１〕入力クロック信号ＣＬＫ２に対して周波数が逓倍され、入力クロック信号ＣＬＫ２のサイクル単位で逓倍数に等しいサイクル数を持ち、サンプリングクロック信号ＣＬＫ１に同期する、出力クロック信号ＣＬＫ３を生成することができる。特に、計数値を逓倍数で除した商に余りがある状態でも、入力クロック信号ＣＬＫ２のサイクル単位で、逓倍数に等しいパルス数の出力クロック信号ＣＬＫ３を生成することができる。出力クロック信号ＣＬＫ３の変化を選択的に抑止するイネーブル制御を用いてパルス数を制御するから、余りの値に応じて分周器の分周比を変更する構成を採用する必要はなく、その制御に良好な応答性を得ることができる。したがって、逓倍されたクロック信号のパルス数が逓倍数の値からずれる状態を原理的に阻止することができる。
【００８３】
〔２〕平均化回路５で取得された周期データ１０３を用いて出力クロック信号ＣＬＫ３を生成するから、入力クロック信号ＣＬＫ２の周波数の変化に対して逓倍されたクロック信号の乱れを小さく抑えることができる。
【００８４】
〔３〕入力クロック信号の周波数にさほど大きな変化がなければ入力クロック信号のサイクル単位で平均化を行えば充分であるが、そのままでは、入力クロック信号ＣＬＫ２の周波数が急激に下がったとき入力クロック信号のサイクル単位で平均化を行うとその変化が出力クロック信号に反映されるのが遅くなり過ぎ、逆に、入力クロック信号ＣＬＫ２の周波数が急激に上がったとき入力クロック信号のサイクル単位で平均化を行うとその変化が出力クロック信号ＣＬＫ３に急激に反映されることになる。入力クロック信号ＣＬＫ２の安定／非安定に応じて平均化回路への周期データの取り込みタイミングを入力クロック信号サイクル単位／出力クロック信号サイクル単位に切り替えることにより、入力クロック信号ＣＬＫ２に急激な変化があっても、その周波数変化が出力クロック信号ＣＬＫ３に急激に反映されず、また、遅くなり過ぎず、クロック変化による誤動作を生ずる虞のない適度のタイミングで、入力クロック信号の周波数変化を出力クロック信号に反映することができる。更にこのことは、クロック信号の急激な変化によって誤動作を生じさせて秘匿情報に不正アクセスするアタック攻撃を阻止することが可能になる。
【００８５】
〔４〕非安定フラグ１０７が非安定を示しているときは、出力クロックカウント値１０５が値０であってもセレクタ４２によって逓倍動作イネーブル信号１０６はディスエーブルレベルに強制され、出力クロックカウント値１０５が値０の期間もカウンタ３０は計数動作を続けるから、入力クロック信号ＣＬＫ２の周波数が急激に低くされても、カウンタ３０の計数動作休止期間が長くなり過ぎてクロック波形が大きく歪むこともない。
【００８６】
〔５〕入力クロック信号ＣＬＫ２の１サイクル内における出力クロック信号ＣＬＫ３のパルス数を逓倍数に等しく制御するのに、逓倍動作イネーブル信号１０６を用いるからサンプリングクロック信号ＣＬＫ１を一時的に停止させることを全く要しない。したがって、サンプリングクロック信号ＣＬＫ１に直接同期動作される周辺モジュール２２４があっても何ら支障はない。
【００８７】
〔６〕入力クロック信号ＣＬＫ２の周波数が激しく変化されてもシステムクロック信号ＳＣＬＫは大きな影響を受けないから、周辺モジュール２２７としてシステムクロック信号ＳＣＬＫに同期して通信インタフェースを行う通信インタフェース制御回路を含んでいる場合にも、システムクロック信号のパルス数の変動分の累積などに起因して通信マージンを確保することが困難になったりデータエラーを発生したりして通信エラーになる虞を未然に防止することができる。
【００８８】
〔７〕マイクロコンピュータ２０２がセキュリティ処理の結果データやそれに用いる秘匿データを持っていても、クロック周波数を急激に変更して秘匿データを不正アクセスするアタック攻撃に対処することができる。
【００８９】
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【００９０】
例えば、平均化回路５、更にはセレクタ６を不要にして、入力クロック周期データを逓倍クロック生成回路に直接供給する構成を採用してもよい。また、クロック信号ＣＬＫ２の、急激な変化を問題としない場合には非安定検知回路７を不要にしてもよい。出力クロック数ダウンカウンタはアップカウンタに変更可能である。カウンタ３による計数動作サイクルを分周数の半分とし、その計数サイクルのカウントアップごとにロジック回路３１が出力を反転させて第３クロック信号を生成するようにしてもよい。
【００９１】
本発明の半導体装置はＩＣカードに適用されるマイクロコンピュータに限定されない。システムオンチップのデータ処理デバイスなどの他のデータ処理装置、同期クロック信号を必要とする種々の半導体装置に適用する事ができる。適用可能なＩＣカードは接触インタフェースと非接触インタフェースの双方のインタフェースを持つものに限定されず、何れか一方のみを有する者であってもよい。
【符号の説明】
【００９２】
１  クロック逓倍回路
ＣＬＫ２  入力クロック信号
ＭＧＤＡＴ  逓倍設定値
ＣＬＫ１  サンプリングクロック信号
ＣＬＫ３  出力クロック信号
１０２  入力クロック周期データ
２  クロック周期計測回路
２０  入力クロックエッジ検出回路
２１  入力クロック周期カウンタ
２２  入力クロック周期レジスタ
１００  エッジ検出パルス
１０３  入力クロック周期平均化回路
３  逓倍クロック生成回路
６  セレクタ
３０  カウンタ（ＣＯＵＮＴ）
３１  ロジック回路（ＬＧＣ）
１０６  逓倍動作イネーブル信号
４  周期切り替え制御回路
４０  出力クロック数ダウンカウンタ
４１  コンパレータ
４２  セレクタ
１０５  出力クロックカウント値
５  平均化回路
５０  平均化回路前段部
５１  平均化回路後段部
１０９  ライトイネーブル信号
１０７非安定フラグ
７  非安定検知回路
２２３  クロック発生器
２０２  マイクロコンピュータ
２００  ＩＣカード
２２４，２２７  周辺モジュール
【図１】
2012169893.tif 000003
【図２】
2012169893.tif 000004
【図３】
2012169893.tif 000005
【図４】
2012169893.tif 000006
【図５】
2012169893.tif 000007
【図６】
2012169893.tif 000008