(57)【要約】【課題】互いに周波数の異なるクロック信号の切り替えを高速に行うための技術を提供する。【解決手段】クロック制御信号生成回路（１０１）は、第１のクロック停止許可信号と、第２のクロック停止許可信号と、クロック再開許可信号とに基づいて、第１のクロック信号を含む複数のクロック信号間の切り替えを行うクロックセレクタにおけるクロック切り替えの制御信号を形成する。このクロック制御信号生成回路は、切り替え前クロック処理部（１０２）と、切り替え後クロック処理部（１０６）とを含む。上記切り替え前クロック処理部及び上記切り替え後クロック処理部においては、切り替えにかかるクロック信号の処理を、それぞれ高周波クロック処理部と低周波クロック処理部とで分担して行うことにより処理の高速化を図る。【選択図】図１
2011180736.tif 000002
【特許請求の範囲】
【請求項１】
第１のクロック停止許可信号と、第２のクロック停止許可信号と、クロック再開許可信号とに基づいて、第１のクロック信号を含む複数のクロック信号間の切り替えを行うクロックセレクタにおけるクロック切り替えの制御信号を形成するクロック制御信号生成回路であって、
切り替えトリガ信号がアクティブ状態であるときに第２のクロック信号の第１の状態を検出した場合に第１の検出信号をアクティブ状態にして出力する第１の高周波クロック処理部と、上記切り替えトリガ信号がアクティブ状態であるときに第３のクロック信号の第１の状態を検出した場合に第２の検出信号をアクティブ状態にして出力し、上記切り替えトリガ信号がアクティブ状態であるときに上記第３のクロック信号の第２の状態を検出した場合に第３の検出信号をアクティブ状態にして出力する第１の低周波クロック処理部とを備え、上記第１の検出信号と上記第２の検出信号のうちどちらか１つがアクティブ状態であるときに上記第１のクロック停止許可信号をアクティブ状態にして出力し、上記第３の検出信号がアクティブ状態であるときに上記第２のクロック停止許可信号をアクティブ状態にして出力する切り替え前クロック処理部と、
上記第１のクロック停止許可信号がアクティブ状態であるときに第４のクロック信号の第１の状態を検出した場合に第４の検出信号をアクティブ状態にして出力し、上記第２のクロック停止許可信号がアクティブ状態であるときに上記第４のクロック信号の第２の状態を検出した場合に第５の検出信号をアクティブ状態にして出力する第２の高周波クロック処理部と、上記第１のクロック停止許可信号がアクティブ状態であるときに第５のクロック信号の第１の状態を検出した場合に第６の検出信号をアクティブ状態にして出力し、上記第２のクロック停止許可信号がアクティブ状態であるときに上記第５のクロック信号の第２の状態を検出した場合に第７の検出信号をアクティブ状態にして出力する第２の低周波クロック処理部とを備え、上記第４の検出信号と上記第５の検出信号と上記第６の検出信号と上記第７の検出信号のうち何れか１つがアクティブ状態であるときに上記クロック再開許可信号をアクティブ状態にして出力する切り替え後クロック処理部と
を具備することを特徴とするクロック制御信号生成回路。
【請求項２】
請求項１において、
複数のクロック信号を群とする第１のクロックグループと、上記第１のクロックグループに属するクロック信号よりも周波数が低い複数のクロック信号を群とする第２のクロックグループとを入力して、現選択信号の値に応じて上記第１クロックグループの中からクロック信号を１つ選択して上記第２のクロック信号として出力し、上記現選択信号の値に応じて上記第２クロックグループの中からクロック信号を１つ選択して上記第３のクロック信号として出力し、上記第２のクロック信号に基づく信号と上記第３のクロック信号に基づく信号の何れか一方を上記第１のクロック信号として出力する第１のクロック選択部と、
上記第１のクロックグループと上記第２のクロックグループを入力して、新選択信号の値に応じて上記第１クロックグループの中からクロック信号を１つ選択して上記第４のクロック信号として出力し、上記新選択信号の値に応じて上記第２のクロックグループの中からクロック信号を１つ選択して上記第５のクロック信号として出力する第２のクロック選択部と
を更に具備することを特徴とするクロック制御信号生成回路。
【請求項３】
請求項１において、
上記第１の高周波クロック処理部は、上記第２のクロック信号の第１の状態に基づいて動作する論理回路を含んで構成され、
上記第１の低周波クロック処理部は、上記第３のクロック信号の第１の状態に基づいて動作する論理回路と、上記第３のクロック信号の第２の状態に基づいて動作する論理回路と、を含んで構成され、
上記第２の高周波クロック処理部は、上記第４のクロック信号の第１の状態に基づいて動作する論理回路と、上記第４のクロック信号の上記第２の状態に基づいて動作する論理回路と、を含んで構成され、
上記第２の低周波クロック処理部は、上記第５のクロック信号の第１の状態に基づいて動作する論理回路と、上記第５のクロック信号の第２の状態に基づいて動作する論理回路と、を含んで構成され、
上記第２のクロック信号の第１の状態は、上記第２のクロック信号の立下りエッジであり、
上記第３のクロック信号の第１の状態は、上記第３のクロック信号の論理レベルのローであり、
上記第３のクロック信号の第２の状態は、上記第３のクロック信号の論理レベルのハイであり、
上記第４のクロック信号の第１の状態は、上記第４のクロック信号の立下りエッジであり、
上記第４のクロック信号の第２の状態は、上記第４のクロック信号の立上りエッジであり、
上記第５のクロック信号の第１の状態は、上記第５のクロック信号の立上りエッジであり、
上記第５のクロック信号の第２の状態は、上記第５のクロック信号の立下りエッジである
ことを特徴とするクロック制御信号生成回路。
【請求項４】
請求項３において、
複数のクロック信号を群とする第１のクロックグループと、上記第１クロックグループに属するクロック信号よりも周波数が低い複数のクロック信号を群とする第２のクロックグループとを入力して、現選択信号の値に応じて上記第１のクロックグループの中からクロック信号を１つ選択して上記第２のクロック信号として出力し、上記現選択信号の値に応じて上記第２クロックグループの中からクロック信号を１つ選択して上記第３のクロック信号として出力し、上記第２のクロック信号と、上記第３のクロック信号を所定の時間だけ遅延させた信号の何れか一方を第１のクロック信号として出力する第１のクロック選択部と、
上記第１のクロックグループと上記第２クロックグループとを入力して、新選択信号の値に応じて上記第１クロックグループの中からクロック信号を１つ選択して上記第４のクロック信号として出力し、上記新選択信号の値に応じて上記第２のクロックグループの中からクロック信号を１つ選択して上記第５のクロック信号として出力する第２のクロック選択部と
を更に具備することを特徴とするクロック制御信号生成回路。
【請求項５】
請求項１において、
上記第１の高周波クロック処理部は、上記第２のクロック信号の第１の状態に基づいて動作する論理回路を含んで構成され、
上記第１の低周波クロック処理部は、上記第３のクロック信号の第１の状態に基づいて動作する論理回路と、上記第３のクロック信号の第２の状態に基づいて動作する論理回路と、を含んで構成され、
上記第２の高周波クロック処理部は、上記第４のクロック信号の第１の状態に基づいて動作する論理回路と、上記第４のクロック信号の上記第２の状態に基づいて動作する論理回路と、を含んで構成され、
上記第２の低周波クロック処理部は、上記第５のクロック信号の第１の状態に基づいて動作する論理回路と、上記第５のクロック信号の第２の状態に基づいて動作する論理回路と、を含んで構成され、
上記第２のクロック信号の第１の状態は、上記第２のクロック信号の立下りエッジであり、
上記第３のクロック信号の第１の状態は、上記第３のクロック信号の立下りエッジであり、
上記第３のクロック信号の第２の状態は、上記第３のクロック信号の立上りエッジであり、
上記第４のクロック信号の第１の状態は、上記第４のクロック信号の立下りエッジであり、
上記第４のクロック信号の第２の状態は、上記第４のクロック信号の立上りエッジであり、
上記第５のクロック信号の第１の状態は、上記第５のクロック信号の立下りエッジであり、
上記第５のクロック信号の第２の状態は、上記第５のクロック信号の立上りエッジである
ことを特徴とするクロック制御信号生成回路。
【請求項６】
請求項５において、
複数のクロック信号を群とする第１のクロックグループと、上記第１クロックグループに属するクロック信号よりも周波数が低い複数のクロック信号を群とする第２のクロックグループとを入力して、現選択信号の値に応じて上記第１のクロックグループの中からクロック信号を１つ選択して上記第２のクロック信号として出力し、上記現選択信号の値に応じて上記第２クロックグループの中からクロック信号を１つ選択して上記第３のクロック信号として出力し、上記第２のクロック信号と上記第３のクロック信号の何れか一方を第１のクロック信号として出力する第１のクロック選択部と、
上記第１のクロックグループと上記第２のクロックグループとを入力して、新選択信号の値に応じて上記第１のクロックグループの中からクロック信号を１つ選択して上記第４のクロック信号として出力し、上記新選択信号の値に応じて上記第２のクロックグループの中からクロック信号を１つ選択して上記第５のクロック信号として出力する第２のクロック選択部と
を更に具備することを特徴とするクロック制御信号生成回路。
【請求項７】
請求項２記載のクロック制御信号生成回路と、
上記第１のクロック停止許可信号がアクティブ状態でかつ、上記クロック再開許可信号が非アクティブ状態であるときに第１のゲーティング制御信号を非アクティブ状態にして出力し、上記第２のクロック停止許可信号がアクティブ状態でかつ、上記クロック再開許可信号が非アクティブ状態であるときに第２のゲーティング制御信号を非アクティブ状態にして出力するゲーティング制御部と、
上記第１のゲーティング制御信号が非アクティブ状態であるときに出力クロック信号を論理レベルのローに固定して出力し、上記第２のゲーティング制御信号が非アクティブ状態であるときに上記出力クロック信号を論理レベルのハイに固定して出力し、上記第１のゲーティング制御信号と上記第２のゲーティング制御信号が共にアクティブ状態であるときに上記第１のクロック信号を上記出力クロック信号として出力するクロックゲーティング部と、
上記切り替えトリガ信号が非アクティブ状態からアクティブ状態へ変化したときにクロック選択信号の値を保持して上記新選択信号として出力する第１の選択信号保持部と、
上記第１のゲーティング制御信号と上記第２のゲーティング制御信号の何れか一方がアクティブ状態から非アクティブ状態へ変化したときに所定の時間が経過してから上記新選択信号の値を保持して上記現選択信号として出力する第２の選択信号保持部と
を具備することを特徴とするクロックセレクタ。
【請求項８】
請求項４記載のクロック制御信号生成回路と、
上記第１のクロック停止許可信号がアクティブ状態でかつ、上記クロック再開許可信号が非アクティブ状態であるときに第１のゲーティング制御信号を非アクティブ状態にして出力し、上記第２のクロック停止許可信号がアクティブ状態でかつ、上記クロック再開許可信号が非アクティブ状態であるときに第２のゲーティング制御信号を非アクティブ状態にして出力するゲーティング制御部と、
上記第１のゲーティング制御信号が非アクティブ状態であるときに出力クロック信号を論理レベルのローに固定して出力し、上記第２のゲーティング制御信号が非アクティブ状態であるときに上記出力クロック信号を論理レベルのハイに固定して出力し、上記第１のゲーティング制御信号と上記第２のゲーティング制御信号が共にアクティブ状態であるときに上記第１のクロック信号を上記出力クロック信号として出力するクロックゲーティング部と、
上記切り替えトリガ信号が非アクティブ状態からアクティブ状態へ変化したときにクロック選択信号の値を保持して上記新選択信号として出力する第１の選択信号保持部と、
上記第１のゲーティング制御信号と上記第２のゲーティング制御信号の何れか一方がアクティブ状態から非アクティブ状態へ変化したときに所定の時間が経過してから上記新選択信号の値を保持して上記現選択信号として出力する第２の選択信号保持部と
を具備することを特徴とするクロックセレクタ。
【請求項９】
請求項６記載のクロック制御信号生成回路と、
上記第１のクロック停止許可信号がアクティブ状態でかつ、上記クロック再開許可信号が非アクティブ状態であるときに第１のゲーティング制御信号を非アクティブ状態にして出力し、上記第２のクロック停止許可信号がアクティブ状態でかつ、上記クロック再開許可信号が非アクティブ状態であるときに第２のゲーティング制御信号を非アクティブ状態にして出力するゲーティング制御部と、
上記第１のゲーティング制御信号が非アクティブ状態であるときに出力クロック信号を論理レベルのローに固定して出力し、上記第２のゲーティング制御信号が非アクティブ状態であるときに上記出力クロック信号を論理レベルのハイに固定して出力し、上記第１のゲーティング制御信号と上記第２のゲーティング制御信号が共にアクティブ状態であるときに上記第１のクロック信号を上記出力クロック信号として出力するクロックゲーティング部と、
上記切り替えトリガ信号が非アクティブ状態からアクティブ状態へ変化したときにクロック選択信号の値を保持して上記新選択信号として出力する第１の選択信号保持部と、
上記第１のゲーティング制御信号と上記第２のゲーティング制御信号の何れか一方がアクティブ状態から非アクティブ状態へ変化したときに所定の時間が経過してから上記新選択信号の値を保持して上記現選択信号として出力する第２の選択信号保持部と
を具備することを特徴とするクロックセレクタ。
【請求項１０】
請求項８記載のクロックセレクタと、
上記クロックセレクタから出力されたクロック信号に同期して動作する機能モジュールと
を具備することを特徴とする情報処理装置。
【請求項１１】
請求項９記載のクロックセレクタと、
上記クロックセレクタから出力されたクロック信号に同期して動作する機能モジュールと
を具備することを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クロック信号を制御するための信号を形成するクロック制御信号生成回路、互いに同期が取られていない複数のクロック信号の中から１つのクロック信号を選択して出力するクロックセレクタ、及びそれを含んで成る情報処理装置に関するものである。
【背景技術】
【０００２】
特許文献１には、ハザードやデューティ比の崩れを発生させずに、クロック切り替えを行うことができるクロック切り替え回路について記載されている。この回路は、クロック選択信号を第１のクロックで同期化する第１の同期化回路と、第１のクロックで同期化されたクロック選択信号を第２のクロックで同期化する第２の同期化回路と、第１のクロックに同期されたクロック選択信号に同期して、「１」（ハイレベル）を出力し、第２のクロックに同期化されたクロック選択信号に同期して第２のクロックを選択するクロック選択回路を備える。
【０００３】
特許文献２には、クロックのレベル反転エッジに同期して切り換え制御を行う従来のクロック切り換え回路において、各クロックに対するレベル監視手段を設け、切り換え前クロックの出力停止制御の際、切り換え前クロックが非有効レベルであることが検知された場合には、切り換え前クロックのレベル反転エッジを待つことなく直ちに出力停止制御を行う技術が記載されている。
【０００４】
特許文献３には、メタステーブルの振動成分やグリッチが出力信号に含まれることを防止するための技術が記載されている。特許文献３によれば、選択信号において出力中のクロック信号とは異なる新たなクロック信号が選択された場合、出力中のクロック信号の立下りに同期して、出力信号がローレベルに保持される。このレベル保持の後、全クロック信号の無選択を示す状態信号が出力され、これに応じて、全クロック信号の選択を有効化するイネーブル信号が生成されて、選択信号による新たな入力信号の選択が有効化される。有効化された新たな入力信号は、その立下りに同期して出力される。次いで、この新たな入力信号が選択中であることを示す状態信号が出力されると、状態信号で選択中とされた入力信号の選択を有効化し、他の入力信号の選択を無効化するイネーブル信号が生成される。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００７−８６９６０号公報
【特許文献２】特開平１０−１５４０２０号公報
【特許文献３】特開２００４−１６６１９４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１に記載された技術によれば、グリッチ対策のためのクロック同期化と、それに伴うフリップフロップのメタステーブル対策のために２段直列接続されたフリップフロップを使用することによって、クロックセレクタには、クロック選択信号の変化からクロック停止までに最大で切り替え前クロックの２周期分の時間を要し、クロック停止からクロック再開までに最大で切り替え後クロックの３周期分の時間を要する。クロック切り替えに要する時間はこれらの時間の合計に相当する。但し、ここでは切り替え後クロックの最初の立上りエッジの到来を以って、クロック再開と定義する。
【０００７】
例えば、切り替え前のクロック周波数が３２ｋＨｚで、切り替え後のクロック周波数が１００ＭＨｚである場合、切り替えには合計で６２．５マイクロ秒もの時間がかかることになる。この時間は切り替え後の１００ＭＨｚクロックの６２５０周期もの期間に相当し、切り替え後の高周波クロックの１周期時間に対して長大な時間を待機時間として損失することを意味する。上記の切り替え時間６２．５マイクロ秒の殆ど全ては切り替え前の低周波（３２ｋＨｚ）クロックでの処理に要する時間である。つまり、クロック切り替えの高速化を阻害する要件は低周波クロックでの処理時間にあるといえる。この傾向は切り替え前後のクロック周波数の差が大きくなる程、顕著になる。
【０００８】
マイクロコンピュータシステムには、クロック発生源として、外付けの水晶発振器から供給される基準クロックを逓倍して高周波クロック（例えば１００ＭＨｚ）を生成するＰＬＬ（Phase Locked Loop）や時計用の３２ｋＨｚクロック発生源が備えられる。また、近年のマイクロコンピュータシステムには、外付け水晶発振器を不要にしてシステムコストを低減する目的でマイクロコンピュータシステム内に自走発振する高周波（例えば４０ＭＨｚ）のオンチップオシレータや低周波（例えば１２５ｋＨｚ）のオンチップオシレータが備えられる場合がある。これらの独立な複数のクロック源は互いに非同期の関係にある。クロックセレクタは、例えばこのようなマイクロコンピュータシステム内に搭載され、上記の複数の非同期クロック源から供給されるクロック信号の中から１つを選択して、マイクロコンピュータシステム内の各機能ブロックにクロックを供給する働きをする。マイクロコンピュータシステムは、通常は高周波クロック（例えば１００ＭＨｚ）で動作する（高速動作モード）が、低消費電力化への要求に応えるためにシステムの動作状態を監視して、システムが休止状態であることが検知された場合にクロック周波数を低下（例えば３２ｋＨｚ）させて低消費電力モードへ移行する制御がよく行われる。このクロック周波数の可変処理はクロックセレクタにおいて周波数が異なる他のクロックへ切り替えることで実現され、通常、非選択クロック源は消費電力を削減するために発振停止状態に制御される。
【０００９】
ここで、３２ｋＨｚクロック動作の低消費電力モードから１００ＭＨｚクロック動作の高速動作モードへ復帰することを想定した場合、上述のように、従来例のクロックセレクタでは３２ｋＨｚクロックから１００ＭＨｚクロックへの切り替えの際に、切り替え後クロックの６２５０周期もの待機時間が生じてしまい、処理のリアルタイム性が重要なコントローラアプリケーション等では致命的な動作不良を引き起こしてしまう可能性がある。また、ＰＬＬ等、消費電力が大きい高周波クロック源の動作期間が長くなってしまい、低消費電力化を達成する上で障害となってしまうことが考えられる。
【００１０】
特許文献２によれば、各クロック毎に立ち下がりエッジ監視回路が設けられる。また、低速クロックには、レベル監視回路と切り替え後クロックに対する両エッジ監視回路が併設される。このため、低速クロックの種類が増えた場合、各クロック毎に、レベル監視回路と切り替え後クロックに対する両エッジ監視回路が必要となり、回路規模が増大することが考えられる。さらに複数個の高速クロックをこの両エッジ監視回路に取り込む際の選択の手続きが複雑になり、回路規模が増大することが考えられる。
【００１１】
特許文献３によれば、互いに検出論理が異なるラッチ回路の縦続接続構成と並列に別途用意した高速な基準クロックを使った保険回路が設けられる。このような保険回路はクロックの数だけ必要になるため、クロックの数が増えると、それに伴って回路規模の増大を招くことが考えられる。
【００１２】
本発明の目的は、互いに周波数の異なるクロック信号の切り替えを高速に行うための技術を提供することにある。
【００１３】
本発明の別の目的は、回路規模の増大を伴うことなく、互いに周波数の異なるクロック信号の切り替えを高速に行うための技術を提供することにある。
【００１４】
本発明の上記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１５】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【００１６】
すなわち、クロック制御信号生成回路は、第１のクロック停止許可信号と、第２のクロック停止許可信号と、クロック再開許可信号とに基づいて、第１のクロック信号を含む複数のクロック信号間の切り替えを行うクロックセレクタにおけるクロック切り替えの制御信号を形成する。このクロック制御信号生成回路は、切り替え前クロック処理部と、切り替え後クロック処理部とを含む。上記切り替え前クロック処理部は、切り替えトリガ信号がアクティブ状態であるときに第２のクロック信号の第１の状態を検出した場合に第１の検出信号をアクティブ状態にして出力する第１の高周波クロック処理部を含む。上記切り替え前クロック処理部は、上記切り替えトリガ信号がアクティブ状態であるときに第３のクロック信号の第１の状態を検出した場合に第２の検出信号をアクティブ状態にして出力し、上記切り替えトリガ信号がアクティブ状態であるときに上記第３のクロック信号の第２の状態を検出した場合に第３の検出信号をアクティブ状態にして出力する第１の低周波クロック処理部を含む。上記切り替え前クロック処理部は、上記第１の検出信号と上記第２の検出信号のうちどちらか１つがアクティブ状態であるときに第１のクロック停止許可信号をアクティブ状態にして出力し、上記第３の検出信号がアクティブ状態であるときに第２のクロック停止許可信号をアクティブ状態にして出力する。上記切り替え後クロック処理部は、上記第１のクロック停止許可信号がアクティブ状態であるときに第４のクロック信号の第１の状態を検出した場合に第４の検出信号をアクティブ状態にして出力し、上記第２のクロック停止許可信号がアクティブ状態であるときに上記第４のクロック信号の第２の状態を検出した場合に第５の検出信号をアクティブ状態にして出力する第２の高周波クロック処理部を含む。上記切り替え後クロック処理部は、上記第１のクロック停止許可信号がアクティブ状態であるときに第５のクロック信号の第１の状態を検出した場合に第６の検出信号をアクティブ状態にして出力し、上記第２のクロック停止許可信号がアクティブ状態であるときに上記第５のクロック信号の第２の状態を検出した場合に第７の検出信号をアクティブ状態にして出力する第２の低周波クロック処理部を含む。上記切り替え後クロック処理部は、上記第４の検出信号と上記第５の検出信号と上記第６の検出信号と上記第７の検出信号のうち何れか１つがアクティブ状態であるときにクロック再開許可信号をアクティブ状態にして出力する。
【発明の効果】
【００１７】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記のとおりである。
【００１８】
すなわち、互いに周波数の異なるクロック信号の切り替えを高速に行うための技術を提供することができる。また、回路規模の増大を伴うことなく、互いに周波数の異なるクロック信号の切り替えを高速に行うことができる。
【図面の簡単な説明】
【００１９】
【図１】本発明にかかるクロック制御信号生成回路の構成例を示すブロック図である。
【図２】本発明にかかるクロック制御信号生成回路の別の構成例を示すブロック図である。
【図３】本発明にかかるクロックセレクタの構成例を示すブロック図である。
【図４】図３のクロックセレクタの動作を説明するためのタイミングチャートである。
【図５】本発明にかかるクロック制御信号生成回路の具体的な構成例を示す回路図である。
【図６】図５のクロック制御信号生成回路の動作を説明するためのタイミングチャートである。
【図７】図５のクロック制御信号生成回路の動作を説明するためのタイミングチャートである。
【図８】本発明にかかるクロック制御信号生成回路の他の具体的な構成例を示す回路図である。
【図９】図８のクロック制御信号生成回路の動作を説明するためのタイミングチャートである。
【図１０】図８のクロック制御信号生成回路の動作を説明するためのタイミングチャートである。
【図１１】本発明にかかるクロック制御信号生成回路の具体的な構成例を示す回路図である。
【図１２】第１のクロック選択部の動作を説明する真理値表を示す図である。
【図１３】第２のクロック選択部の動作を説明する真理値表を示す図である。
【図１４】本発明にかかるクロック制御信号生成回路の他の具体的な構成例を示す回路図である。
【図１５】第１のクロック選択部の動作を説明する真理値表を示す図である。
【図１６】第２のクロック選択部の動作を説明する真理値表を示す図である。
【図１７】本発明にかかるクロックセレクタの具体的な構成例を示すブロック図である。
【図１８】図１７のクロックセレクタの動作を説明するためのタイミングチャートである。
【図１９】本発明にかかるクロックセレクタの他の具体的な構成例を示すブロック図である。
【図２０】図１９に示されるクロックセレクタの動作を説明するためのタイミングチャートである。
【図２１】ゲーティング制御部とクロックゲーティング部の具体的な回路構成例を示す回路図である。
【図２２】図２１のゲーティング制御部とクロックゲーティング部の動作を説明する真理値表を示す図である。
【図２３】第１の選択信号保持部と第２の選択信号保持部の具体的な回路構成例を示す回路図である。
【図２４】リセット信号生成部の具体的な回路構成例を示す回路図である。
【図２５】マイクロコンピュータシステムの構成例例を示すブロック図である。
【図２６】図２５に示される不一致検出機能部の具体的な構成例を示す回路図である。
【発明を実施するための形態】
【００２０】
１．実施の形態の概要
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
【００２１】
〔１〕本発明の代表的な実施の形態に係るクロック制御信号生成回路（１０１）は、クロック第１のクロック停止許可信号と、第２のクロック停止許可信号と、クロック再開許可信号とに基づいて、第１のクロック信号を含む複数のクロック信号間の切り替えを行うクロックセレクタにおけるクロック切り替えの制御信号を形成する。このクロック制御信号生成回路は、切り替え前クロック処理部（１０２）と、切り替え後クロック処理部（１０６）とを含む。
【００２２】
上記切り替え前クロック処理部（１０２）は、切り替えトリガ信号がアクティブ状態であるときに第２のクロック信号の第１の状態を検出した場合に第１の検出信号をアクティブ状態にして出力する第１の高周波クロック処理部（１０３）を含む。また上記切り替え前クロック処理部（１０２）は、上記切り替えトリガ信号がアクティブ状態であるときに第３のクロック信号の第１の状態を検出した場合に第２の検出信号をアクティブ状態にして出力し、上記切り替えトリガ信号がアクティブ状態であるときに上記第３のクロック信号の第２の状態を検出した場合に第３の検出信号をアクティブ状態にして出力する第１の低周波クロック処理部（１０４）を含む。そして上記切り替え前クロック処理部（１０２）は、上記第１の検出信号と上記第２の検出信号のうちどちらか１つがアクティブ状態であるときに第１のクロック停止許可信号をアクティブ状態にして出力し、上記第３の検出信号がアクティブ状態であるときに第２のクロック停止許可信号をアクティブ状態にして出力する。
【００２３】
上記切り替え後クロック処理部（１０６）は、上記第１のクロック停止許可信号がアクティブ状態であるときに第４のクロック信号の第１の状態を検出した場合に第４の検出信号をアクティブ状態にして出力し、上記第２のクロック停止許可信号がアクティブ状態であるときに上記第４のクロック信号の第２の状態を検出した場合に第５の検出信号をアクティブ状態にして出力する第２の高周波クロック処理部（１０７）を含む。また上記切り替え後クロック処理部（１０６）は、上記第１のクロック停止許可信号がアクティブ状態であるときに第５のクロック信号の第１の状態を検出した場合に第６の検出信号をアクティブ状態にして出力し、上記第２のクロック停止許可信号がアクティブ状態であるときに上記第５のクロック信号の第２の状態を検出した場合に第７の検出信号をアクティブ状態にして出力する第２の低周波クロック処理部（１０８）を含む。そして上記切り替え後クロック処理部（１０６）は、上記第４の検出信号と上記第５の検出信号と上記第６の検出信号と上記第７の検出信号のうち何れか１つがアクティブ状態であるときにクロック再開許可信号をアクティブ状態にして出力する。
【００２４】
上記のように、クロック切り替えの高速化を阻害する要因は低周波クロックでの処理時間にある。そこで、上記切り替え前クロック処理部（１０２）及び上記切り替え後クロック処理部（１０６）においては、それぞれ専用の処理部として、高周波クロック処理部と低周波クロック処理部とが設けられ、切り替えにかかるクロック信号の処理を、それぞれ高周波クロック処理部と低周波クロック処理部とで分担して行うことにより処理の高速化を図る。これによってクロック信号切り替えの高速化を達成することができる。
【００２５】
〔２〕上記〔１〕において、第１のクロック選択部（２０２）と、第２のクロック選択部（２０３）を設けることができる。
【００２６】
第１のクロック選択部（２０２）は、複数のクロック信号を群とする第１のクロックグループと、上記第１のクロックグループに属するクロック信号よりも周波数が低い複数のクロック信号を群とする第２のクロックグループとを入力して、現選択信号の値に応じて上記第１クロックグループの中からクロック信号を１つ選択して上記第２のクロック信号として出力する。そして第１のクロック選択部（２０２）は、上記現選択信号の値に応じて上記第２クロックグループの中からクロック信号を１つ選択して上記第３のクロック信号として出力し、上記第２のクロック信号に基づく信号と上記第３のクロック信号に基づく信号の何れか一方を上記第１のクロック信号として出力する。
【００２７】
上記第２のクロック選択部（２０３）は、上記第１のクロックグループと上記第２のクロックグループを入力して、新選択信号の値に応じて上記第１クロックグループの中からクロック信号を１つ選択して上記第４のクロック信号として出力し、上記新選択信号の値に応じて上記第２のクロックグループの中からクロック信号を１つ選択して上記第５のクロック信号として出力する。
【００２８】
上記第１のクロック選択部（２０２）と上記第２のクロック選択部（２０３）とが設けられるこにより、複数のクロック入力において、クロック制御信号生成回路（１０１）を共有することができるので、選択すべきクロック信号の種類や数が増えたとしても、上記第１のクロック選択部（２０２）及び上記第２のクロック選択部（２０３）でのクロック選択数を増やすだけで、容易に対応することができる。これにより、回路規模の増大を回避できる。
【００２９】
〔３〕上記〔１〕において、上記第１の高周波クロック処理部は、上記第２のクロック信号の第１の状態に基づいて動作する論理回路（５０１，５０２）を含んで構成することができる。上記第１の低周波クロック処理部は、上記第３のクロック信号の第１の状態に基づいて動作する論理回路（５０７）と、上記第３のクロック信号の第２の状態に基づいて動作する論理回路（５０８）と、を含んで構成することができる。上記第２の高周波クロック処理部は、上記第４のクロック信号の第１の状態に基づいて動作する論理回路（５１０，５１１）と、上記第４のクロック信号の上記第２の状態に基づいて動作する論理回路（５１２，５１３）と、を含んで構成することができる。
【００３０】
また、上記第２の低周波クロック処理部は、上記第５のクロック信号の第１の状態に基づいて動作する論理回路（５１４，５１５）と、上記第５のクロック信号の第２の状態に基づいて動作する論理回路（５１６，５１７）とを含んで構成することができる。
【００３１】
このとき、上記第２のクロック信号の第１の状態は、上記第２のクロック信号の立下りエッジとされ、上記第３のクロック信号の第１の状態は、上記第３のクロック信号の論理レベルのローとされ、上記第３のクロック信号の第２の状態は、上記第３のクロック信号の論理レベルのハイとされ、上記第４のクロック信号の第１の状態は、上記第４のクロック信号の立下りエッジとされる。また、上記第４のクロック信号の第２の状態は、上記第４のクロック信号の立上りエッジとされ、上記第５のクロック信号の第１の状態は、上記第５のクロック信号の立上りエッジとされ、上記第５のクロック信号の第２の状態は、上記第５のクロック信号の立下りエッジとされる。
【００３２】
〔４〕上記〔３〕において、第１のクロック選択部（２０２ａ）と、第２のクロック選択部（２０３）とを設けることができる。
【００３３】
第１のクロック選択部（２０２ａ）は、複数のクロック信号を群とする第１のクロックグループと、上記第１クロックグループに属するクロック信号よりも周波数が低い複数のクロック信号を群とする第２のクロックグループとを入力する。そして第１のクロック選択部（２０２ａ）は、現選択信号の値に応じて上記第１のクロックグループの中からクロック信号を１つ選択して上記第２のクロック信号として出力し、上記現選択信号の値に応じて上記第２クロックグループの中からクロック信号を１つ選択して上記第３のクロック信号として出力し、上記第２のクロック信号と、上記第３のクロック信号を所定の時間だけ遅延させた信号の何れか一方を第１のクロック信号として出力する。
【００３４】
第２のクロック選択部（２０３）は、上記第１のクロックグループと上記第２クロックグループとを入力して、新選択信号の値に応じて上記第１クロックグループの中からクロック信号を１つ選択して上記第４のクロック信号として出力し、上記新選択信号の値に応じて上記第２のクロックグループの中からクロック信号を１つ選択して上記第５のクロック信号として出力する。
【００３５】
〔５〕上記〔１〕において、上記第１の高周波クロック処理部は、上記第２のクロック信号の第１の状態に基づいて動作する論理回路（８０１，８０２）を含んで構成することができる。上記第１の低周波クロック処理部は、上記第３のクロック信号の第１の状態に基づいて動作する論理回路（８０３，８０４）と、上記第３のクロック信号の第２の状態に基づいて動作する論理回路（８０５，８０６）とを含んで構成することができる。上記第２の高周波クロック処理部は、上記第４のクロック信号の第１の状態に基づいて動作する論理回路（８１０，８１１）と、上記第４のクロック信号の上記第２の状態に基づいて動作する論理回路（８１２，８１３）と、を含んで構成することができる。上記第２の低周波クロック処理部は、上記第５のクロック信号の第１の状態に基づいて動作する論理回路（８１４，８１５）と、上記第５のクロック信号の第２の状態に基づいて動作する論理回路（８１６，８１７）とを含んで構成することができる。
【００３６】
このとき、上記第２のクロック信号の第１の状態は、上記第２のクロック信号の立下りエッジとされ、上記第３のクロック信号の第１の状態は、上記第３のクロック信号の立下りエッジとされ、上記第３のクロック信号の第２の状態は、上記第３のクロック信号の立上りエッジとされ、上記第４のクロック信号の第１の状態は、上記第４のクロック信号の立下りエッジとされる。また、上記第４のクロック信号の第２の状態は、上記第４のクロック信号の立上りエッジとされ、上記第５のクロック信号の第１の状態は、上記第５のクロック信号の立下りエッジとされ、上記第５のクロック信号の第２の状態は、上記第５のクロック信号の立上りエッジとされる。
【００３７】
〔６〕上記〔５〕において、第１のクロック選択部（２０２ｂ）と、第２のクロック選択部（２０３）とを設けることができる。
【００３８】
上記第１のクロック選択部（２０２ｂ）は、複数のクロック信号を群とする第１のクロックグループと、上記第１クロックグループに属するクロック信号よりも周波数が低い複数のクロック信号を群とする第２のクロックグループとを入力する。そして上記第１のクロック選択部（２０２ｂ）は、現選択信号の値に応じて上記第１のクロックグループの中からクロック信号を１つ選択して上記第２のクロック信号として出力し、上記現選択信号の値に応じて上記第２クロックグループの中からクロック信号を１つ選択して上記第３のクロック信号として出力し、上記第２のクロック信号と上記第３のクロック信号の何れか一方を第１のクロック信号として出力する。
【００３９】
上記第２のクロック選択部（２０３）上記第１のクロックグループと上記第２のクロックグループとを入力して、新選択信号の値に応じて上記第１のクロックグループの中からクロック信号を１つ選択して上記第４のクロック信号として出力し、上記新選択信号の値に応じて上記第２のクロックグループの中からクロック信号を１つ選択して上記第５のクロック信号として出力する。
【００４０】
〔７〕上記〔２〕のクロック制御信号生成回路（２０１）を含んでクロックセレクタ（３０１）を構成することができる。この場合において、上記クロックセレクタ（３０１）には、ゲーティング制御部（３０２）を設けることができる。このゲーティング制御部（３０２）は、上記第１のクロック停止許可信号がアクティブ状態でかつ、上記クロック再開許可信号が非アクティブ状態であるときに第１のゲーティング制御信号を非アクティブ状態にして出力し、上記第２のクロック停止許可信号がアクティブ状態でかつ、上記クロック再開許可信号が非アクティブ状態であるときに第２のゲーティング制御信号を非アクティブ状態にして出力する。また、上記クロックセレクタ（３０１）には、クロックゲーティング部（３０３）を設けることができる。上記クロックゲーティング部は、上記第１のゲーティング制御信号が非アクティブ状態であるときに出力クロック信号を論理レベルのローに固定して出力する。上記クロックゲーティング部は、上記第２のゲーティング制御信号が非アクティブ状態であるときに上記出力クロック信号を論理レベルのハイに固定して出力する。そして上記クロックゲーティング部は、上記第１のゲーティング制御信号と上記第２のゲーティング制御信号が共にアクティブ状態であるときに上記第１のクロック信号を上記出力クロック信号として出力する。さらに上記クロックセレクタ（３０１）には、上記切り替えトリガ信号が非アクティブ状態からアクティブ状態へ変化したときにクロック選択信号の値を保持して上記新選択信号として出力する第１の選択信号保持部（３０４）を設けることができる。そして、上記クロックセレクタ（３０１）には、上記第１のゲーティング制御信号と上記第２のゲーティング制御信号の何れか一方がアクティブ状態から非アクティブ状態へ変化したときに所定の時間が経過してから上記新選択信号の値を保持して上記現選択信号として出力する第２の選択信号保持部（３０５）を設けることができる。
【００４１】
〔８〕上記〔４〕のクロック制御信号生成回路を含んでクロックセレクタを構成することができる。上記クロックセレクタには、上記第１のクロック停止許可信号がアクティブ状態でかつ、上記クロック再開許可信号が非アクティブ状態であるときに第１のゲーティング制御信号を非アクティブ状態にして出力し、上記第２のクロック停止許可信号がアクティブ状態でかつ、上記クロック再開許可信号が非アクティブ状態であるときに第２のゲーティング制御信号を非アクティブ状態にして出力するゲーティング制御部（１７０１）を設ける。
【００４２】
また上記クロックセレクタには、クロックゲーティング部（１７０２）を設けることができる。クロックゲーティング部は、上記第１のゲーティング制御信号が非アクティブ状態であるときに出力クロック信号を論理レベルのローに固定して出力し、上記第２のゲーティング制御信号が非アクティブ状態であるときに上記出力クロック信号を論理レベルのハイに固定して出力し、上記第１のゲーティング制御信号と上記第２のゲーティング制御信号が共にアクティブ状態であるときに上記第１のクロック信号を上記出力クロック信号として出力する。
【００４３】
さらに上記クロックセレクタには、第２の選択信号保持部（１７０４）とを設けることができる。第２の選択信号保持部は、上記切り替えトリガ信号が非アクティブ状態からアクティブ状態へ変化したときにクロック選択信号の値を保持して上記新選択信号として出力する第１の選択信号保持部（１７０３）と、上記第１のゲーティング制御信号と上記第２のゲーティング制御信号の何れか一方がアクティブ状態から非アクティブ状態へ変化したときに所定の時間が経過してから上記新選択信号の値を保持して上記現選択信号として出力する。
【００４４】
〔９〕上記〔６〕のクロック制御信号生成回路を含んでクロックセレクタを構成することができる。このとき、上記クロックセレクタには、ゲーティング制御部（１９０１）を設けることができる。ゲーティング制御部は、上記第１のクロック停止許可信号がアクティブ状態でかつ、上記クロック再開許可信号が非アクティブ状態であるときに第１のゲーティング制御信号を非アクティブ状態にして出力し、上記第２のクロック停止許可信号がアクティブ状態でかつ、上記クロック再開許可信号が非アクティブ状態であるときに第２のゲーティング制御信号を非アクティブ状態にして出力する。
【００４５】
また上記クロックセレクタには、クロックゲーティング部（１９０２）を設けることができる。クロックゲーティング部は、上記第１のゲーティング制御信号が非アクティブ状態であるときに出力クロック信号を論理レベルのローに固定して出力し、上記第２のゲーティング制御信号が非アクティブ状態であるときに上記出力クロック信号を論理レベルのハイに固定して出力し、上記第１のゲーティング制御信号と上記第２のゲーティング制御信号が共にアクティブ状態であるときに上記第１のクロック信号を上記出力クロック信号として出力する。
【００４６】
さらに上記クロックセレクタには、上記切り替えトリガ信号が非アクティブ状態からアクティブ状態へ変化したときにクロック選択信号の値を保持して上記新選択信号として出力する第１の選択信号保持部（１９０３）を設けることができる。
【００４７】
そして上記クロックセレクタには、上記第１のゲーティング制御信号と上記第２のゲーティング制御信号の何れか一方がアクティブ状態から非アクティブ状態へ変化したときに所定の時間が経過してから上記新選択信号の値を保持して上記現選択信号として出力する第２の選択信号保持部（１９０４）を設けることができる。
【００４８】
〔１０〕上記〔８〕のクロックセレクタと、上記クロックセレクタから出力されたクロック信号に同期して動作する機能モジュール（２５２９）とを含んで情報処理装置（２５０１）を構成することができる。
【００４９】
〔１１〕上記〔９〕のクロックセレクタと、上記クロックセレクタから出力されたクロック信号に同期して動作する機能モジュール（２５２９）とを含んで情報処理装置（２５０１）を構成することができる。
【００５０】
上記〔８〕又は上記〔９〕のクロックセレクタを含んで情報処理装置を構成した場合には、上記クロックセレクタによって高速なクロック切り替えを行うことができるため、例えば情報処理装置が低消費電力モードから高速動作モードへ移行する際に要する時間を大幅に短縮することが可能になる。これにより、消費電力が大きい高周波クロックソースを無駄に動作させておかなければならない待機時間の短縮を図ることができ、装置の低消費電力化に寄与できる。
【００５１】
２．実施の形態の詳細
実施の形態について更に詳述する。
【００５２】
以下の説明において、論理レベルのローと論理値“０”は等価であり、論理レベルのハイと論理値“１”は等価である。
【００５３】
＜実施の形態１＞
図１には、本発明にかかるクロック制御信号生成回路の構成例が示される。
【００５４】
図１に示すクロック制御信号生成回路１０１は、切り替え前クロック処理部１０２と切り替え後クロック処理部１０６を有する。切り替え前クロック処理部１０２は更に第１の高周波クロック処理部（１ＨＦＣ−ＰＲＯ）１０３と第１の低周波クロック処理部（１ＬＦＣ−ＰＲＯ）１０４とＯＲ回路１０５で構成され、切り替え後クロック処理部１０６は更に第２の高周波クロック処理部（２ＨＦＣ−ＰＲＯ）１０７と第２の低周波クロック処理部（２ＬＦＣ−ＰＲＯ）１０８とＯＲ回路１０９を含んで構成される。
【００５５】
クロック制御信号生成回路１０１には、第２のクロック信号２ＣＬＫ、第３のクロック信号３ＣＬＫ、第４のクロック信号４ＣＬＫ、第５のクロック信号５ＣＬＫ、切り替えトリガ信号ＳＴ−ＳＩＧ、現選択信号ＣＳＥＬ−ＳＩＧ〔ｎ〕、第１のリセット信号１ＲＳＴ−ＳＩＧ、第２のリセット信号２ＲＳＴ−ＳＩＧが入力される。そしてクロック制御信号生成回路１０１からは、第１のクロック停止許可信号１ＣＳＴ−ＳＩＧ、第２のクロック停止許可信号２ＣＳＴ−ＳＩＧ、クロック再開許可信号Ｃ−ＲＥＳ−ＳＩＧが出力される。
【００５６】
第２のクロック信号２ＣＬＫと第４のクロック信号４ＣＬＫは比較的周波数が高く、且つ、互いに異なるクロック信号であり、第３のクロック信号３ＣＬＫと第５のクロック信号５ＣＬＫは比較的周波数が低く、且つ、互いに異なるクロック信号である。尚、第３のクロック信号３ＣＬＫ、第５のクロック信号５ＣＬＫは、第２のクロック信号２ＣＬＫ、第４のクロック信号４ＣＬＫの周波数に比べて低い。比較的周波数の高い第２のクロック信号２ＣＬＫと比較的周波数の低い第３のクロック信号３ＣＬＫは何れか一方のみが取り込まれ、両者同時に供給されることはないものとする。同様に、比較的周波数の高い第４のクロック信号４ＣＬＫと比較的周波数の低い第５のクロック信号５ＣＬＫは何れか一方のみが取り込まれ、両者同時に供給されることはないものとする。
【００５７】
切り替えトリガ信号ＳＴ−ＳＩＧが非アクティブ状態からアクティブ状態に変化するとクロック切り替えのイベントが発生したことを意味し、クロック制御信号生成回路１０１は第１のクロック停止許可信号１ＣＳＴ−ＳＩＧと第２のクロック停止許可信号２ＣＳＴ−ＳＩＧの何れか一方を非アクティブ状態からアクティブ状態にさせるための処理を開始する。その後、クロック制御信号生成回路１０１はクロック再開許可信号Ｃ−ＲＥＳ−ＳＩＧを非アクティブ状態からアクティブ状態に変化させるための処理を行う。
【００５８】
第１の高周波クロック処理部１０３は、切り替えトリガ信号ＳＴ−ＳＩＧがアクティブ状態で且つ、第２のクロック信号２ＣＬＫが供給されているときに第２のクロック信号２ＣＬＫの第１の状態を検出した場合に第１の検出信号１ＤＥＴ−ＳＩＧをアクティブ状態にして出力する。
【００５９】
第１の低周波クロック処理部１０４は、切り替えトリガ信号ＳＴ−ＳＩＧがアクティブ状態で且つ、第３のクロック信号３ＣＬＫが供給されているときに第３のクロック信号３ＣＬＫの第１の状態を検出した場合に第２の検出信号２ＤＥＴ−ＳＩＧをアクティブ状態にして出力し、同様に第３のクロック信号３ＣＬＫの第２の状態を検出した場合に第３の検出信号３ＤＥＴ−ＳＩＧをアクティブ状態にして出力する。
【００６０】
但し、第１の検出信号１ＤＥＴ−ＳＩＧと第２の検出信号２ＤＥＴ−ＳＩＧと第３の検出信号３ＤＥＴ−ＳＩＧが重複してアクティブ状態になることはないものとする。
【００６１】
切り替え前クロック処理部１０２は、ＯＲ回路１０５によって、第１の検出信号１ＤＥＴ−ＳＩＧと第２の検出信号２ＤＥＴ−ＳＩＧのうち、どちらか一方がアクティブ状態であるときに第１のクロック停止許可信号１ＣＳＴ−ＳＩＧをアクティブ状態にして出力し、第３の検出信号３ＤＥＴ−ＳＩＧがアクティブ状態であるときは第２のクロック停止許可信号２ＣＳＴ−ＳＩＧをアクティブ状態にして出力する。
【００６２】
第２の高周波クロック処理部１０７は、第１のクロック停止許可信号１ＣＳＴ−ＳＩＧがアクティブ状態で且つ、第４のクロック信号４ＣＬＫが供給されているときに第４のクロック信号４ＣＬＫの第１の状態を検出した場合に第４の検出信号４ＤＥＴ−ＳＩＧをアクティブ状態にして出力する。そして第２の高周波クロック処理部１０７は、第２のクロック停止許可信号２ＣＳＴ−ＳＩＧがアクティブ状態で且つ、第４のクロック信号４ＣＬＫが供給されているときに第４のクロック信号４ＣＬＫの第２の状態を検出した場合に第５の検出信号５ＤＥＴ−ＳＩＧをアクティブ状態にして出力する。
【００６３】
第２の低周波クロック処理部１０８は、第１のクロック停止許可信号１ＣＳＴ−ＳＩＧがアクティブ状態で且つ、第５のクロック信号５ＣＬＫが供給されているときに第５のクロック信号５ＣＬＫの第１の状態を検出した場合に第６の検出信号６ＤＥＴ−ＳＩＧをアクティブ状態にして出力する。そして第２の低周波クロック処理部１０８は、第２のクロック停止許可信号２ＣＳＴ−ＳＩＧがアクティブ状態で且つ、第５のクロック信号５ＣＬＫが供給されているときに第５のクロック信号５ＣＬＫの第２の状態を検出した場合に第７の検出信号７ＤＥＴ−ＳＩＧをアクティブ状態にして出力する。
【００６４】
但し、第４の検出信号４ＤＥＴ−ＳＩＧと第５の検出信号５ＤＥＴ−ＳＩＧと第６の検出信号６ＤＥＴ−ＳＩＧと第７の検出信号７ＤＥＴ−ＳＩＧが重複してアクティブ状態になることはないものとする。
【００６５】
切り替え後クロック処理部１０６は、ＯＲ回路１０９によって、第４の検出信号４ＤＥＴ−ＳＩＧと第５の検出信号５ＤＥＴ−ＳＩＧと第６の検出信号６ＤＥＴ−ＳＩＧと第７の検出信号７ＤＥＴ−ＳＩＧのうち、何れか１つがアクティブ状態であるときにクロック再開許可信号Ｃ−ＲＥＳ−ＳＩＧをアクティブ状態にして出力する。
【００６６】
以上のように、クロック制御信号生成回路１０１は、切り替え前クロック処理部１０２において切り替えトリガ信号ＳＴ−ＳＩＧがアクティブ状態であるときに、第２のクロック信号２ＣＬＫか第３のクロック信号３ＣＬＫの状態に基づいて、第１のクロック停止許可信号１ＣＳＴ−ＳＩＧと第２のクロック停止許可信号２ＣＳＴ−ＳＩＧのうち、何れか一方をアクティブ状態にして出力する。そしてクロック制御信号生成回路１０１は、切り替え後クロック処理部１０６において第１のクロック停止許可信号１ＣＳＴ−ＳＩＧか第２のクロック停止許可信号２ＣＳＴ−ＳＩＧがアクティブ状態であるときに、第４のクロック信号４ＣＬＫか第５のクロック信号５ＣＬＫの状態に基づいて、クロック再開許可信号Ｃ−ＲＥＳ−ＳＩＧをアクティブ状態にして出力する。
【００６７】
上記の一連の処理が終了した後に、第１のリセット信号１ＲＳＴ−ＳＩＧと第２のリセット信号２ＲＳＴ−ＳＩＧが非アクティブ状態からアクティブ状態に変えられる。第１のリセット信号１ＲＳＴ−ＳＩＧがアクティブ状態になることによって、第１の高周波クロック処理部１０３と第１の低周波クロック処理部１０４の内部回路が初期化され、第２のリセット信号２ＲＳＴ−ＳＩＧがアクティブ状態になることによって、第２の高周波クロック処理部１０７と第２の低周波クロック処理部１０８の内部回路が初期化される。
【００６８】
第１の低周波クロック処理部１０４に入力される現選択信号ＣＳＥＬ−ＳＩＧ〔ｎ〕は、第１の低周波クロック処理部１０４の内部構成によって使用の有無が異なる。それについては以降の実施の形態で説明する。
【００６９】
＜実施の形態２＞
図２には、上記クロック制御信号生成回路１０１の別の構成例が示される。図２に示される構成では、実施の形態１で説明したクロック制御信号生成回路（ＣＫ−ＣＮＴ−ＳＧＥＮ）１０１の他に、第１のクロック選択部（１Ｃ−ＳＥＬ）２０２と第２のクロック選択部（２Ｃ−ＳＥＬ）２０３が設けられている。このような意味で、図２に示されるクロック制御信号生成回路を、「選択型クロック制御信号生成回路２０１」と称する。
【００７０】
選択型クロック制御信号生成回路２０１には、複数のクロック信号（入力クロック信号ＣＫＩＮ１から入力クロック信号ＣＫＩＮ６）と、ｎ＋１ビット（ｎは正の整数）の現選択信号ＣＳＥＬ−ＳＩＧ〔ｎ：０〕、ｎ＋１ビットの新選択信号ＮＳＥＬ−ＳＩＧ〔ｎ：０〕、切り替えトリガ信号ＳＴ−ＳＩＧ、第２のクロック選択部Ｅｎ（イネーブル）信号２ＣＬＫＥＮ−ＳＩＧ、第１のリセット信号１ＲＳＴ−ＳＩＧ、第２のリセット信号２ＲＳＴ−ＳＩＧが入力される。そして選択型クロック制御信号生成回路２０１からは、第１のクロック信号１ＣＬＫ、第１のクロック停止許可信号１ＣＳＴ−ＳＩＧ、第２のクロック停止許可信号２ＣＳＴ−ＳＩＧ、クロック再開許可信号Ｃ−ＲＥＳ−ＳＩＧが出力される。
【００７１】
入力クロック信号ＣＫＩＮ１、入力クロック信号ＣＫＩＮ２、入力クロック信号ＣＫＩＮ３は比較的周波数が高く互いに異なるクロック信号であり、高周波クロックのグループに分類される。
【００７２】
入力クロック信号ＣＫＩＮ４、入力クロック信号ＣＫＩＮ５、入力クロック信号ＣＫＩＮ６は比較的周波数が低く互いに異なるクロック信号であり、低周波クロックのグループに分類される。
【００７３】
ｎ＋１ビットの現選択信号ＣＳＥＬ−ＳＩＧ〔ｎ：０〕は、第１のクロック選択部２０２に対して入力クロック信号ＣＫＩＮ１から入力クロック信号ＣＫＩＮ６の中からどれを選択出力するかを指示する。
【００７４】
ｎ＋１ビットの新選択信号ＮＳＥＬ−ＳＩＧ〔ｎ：０〕は、第２のクロック選択部２０３に対して入力クロック信号ＣＫＩＮ１から入力クロック信号ＣＫＩＮ６の中からどれを選択出力するかを指示する。
【００７５】
図２では、入力されるクロック（入力クロック信号ＣＫＩＮ１から入力クロック信号ＣＫＩＮ６）の数が６である場合を仮定しており、この実施の形態では現選択信号ＣＳＥＬ−ＳＩＧと新選択信号ＮＳＥＬ−ＳＩＧは共に３ビット（ｎ＝２）の信号になる。但し、現選択信号ＣＳＥＬ−ＳＩＧと新選択信号ＮＳＥＬ−ＳＩＧが示す値は互いに異なる。尚、入力される複数のクロック信号の数は６に限定されないし、入力される複数のクロック信号の数に応じて、現選択信号ＣＳＥＬ−ＳＩＧ〔ｎ：０〕と新選択信号ＮＳＥＬ−ＳＩＧ〔ｎ：０〕のビット数（ｎの値）は変更される。
【００７６】
第１のクロック選択部２０２は、３ビットの現選択信号ＣＳＥＬ−ＳＩＧが高周波クロックのグループからのクロック選択を指示している場合は、３ビットの現選択信号ＣＳＥＬ−ＳＩＧの値に応じて、入力クロック信号ＣＫＩＮ１、入力クロック信号ＣＫＩＮ２、入力クロック信号ＣＫＩＮ３の中から１つを選択して第２のクロック信号２ＣＬＫとして出力する。また第１のクロック選択部２０２は、３ビットの現選択信号ＣＳＥＬ−ＳＩＧが低周波クロックのグループからのクロック選択を指示している場合は、３ビットの現選択信号ＣＳＥＬ−ＳＩＧの値に応じて、入力クロック信号ＣＫＩＮ４、入力クロック信号ＣＫＩＮ５、入力クロック信号ＣＫＩＮ６の中から１つを選択して第３のクロック信号３ＣＬＫとして出力する。更に第１のクロック選択部２０２は、第２のクロック信号２ＣＬＫに基づく信号と第３のクロック信号３ＣＬＫに基づく信号の何れか一方を第１のクロック信号１ＣＬＫとして出力する。既に実施の形態１で述べたように、第２のクロック信号２ＣＬＫと第３のクロック信号３ＣＬＫからは同時にクロックが出力されることはなく、クロックを出力するのは常に何れか一方のみである。
【００７７】
第２のクロック選択部２０３は、第２のクロック選択部Ｅｎ信号２ＣＬＫＥＮ−ＳＩＧがアクティブ状態であるときに、３ビットの新選択信号ＮＳＥＬ−ＳＩＧが高周波クロックのグループからのクロック選択を指示している場合は、３ビットの新選択信号ＮＳＥＬ−ＳＩＧの値に応じて、入力クロック信号ＣＫＩＮ１、入力クロック信号ＣＫＩＮ２、入力クロック信号ＣＫＩＮ３の中から１つを選択して第４のクロック信号４ＣＬＫとして出力する。また第２のクロック選択部２０３は、同様に３ビットの新選択信号ＮＳＥＬ−ＳＩＧが低周波クロックのグループからのクロック選択を指示している場合は、３ビットの新選択信号ＮＳＥＬ−ＳＩＧの値に応じて、入力クロック信号ＣＫＩＮ４、入力クロック信号ＣＫＩＮ５、入力クロック信号ＣＫＩＮ６の中から１つを選択して第５のクロック信号５ＣＬＫとして出力する。ここでも、既に実施の形態１で述べたように、第４のクロック信号４ＣＬＫと第５のクロック信号５ＣＬＫからは同時にクロックが出力されることはなく、クロックを出力するのは常に何れか一方のみである。
【００７８】
クロック制御信号生成回路１０１は、実施の形態１で説明した動作に基づいて第１のクロック停止許可信号１ＣＳＴ−ＳＩＧ、第２のクロック停止許可信号２ＣＳＴ−ＳＩＧとクロック再開許可信号Ｃ−ＲＥＳ−ＳＩＧを出力する。この信号出力は、切り替えトリガ信号ＳＴ−ＳＩＧと、第１のクロック選択部２０２によって選択出力された第２のクロック信号２ＣＬＫ、第３のクロック信号３ＣＬＫと、第２のクロック選択部２０３によって選択出力された第４のクロック信号４ＣＬＫ、第５のクロック信号５ＣＬＫに基づいて行われる。
【００７９】
＜実施の形態３＞
図３には、本発明にかかるクロックセレクタの基本的な構成例が示される。
【００８０】
図３に示されるクロックセレクタ３０１は、実施の形態２で説明した選択型クロック制御信号生成回路（ＳＣＣ−ＧＥＮ）２０１と、ゲーティング制御部（Ｇ−ＣＮＴ）３０２と、クロックゲーティング部（Ｃ−ＧＡＴ）３０３と、第１の選択信号保持部（１ＳＥＬ−ＳＴ）３０４と、第２の選択信号保持部（２ＳＥＬ−ＳＴ）３０５と、リセット信号生成部（ＲＥＳＴ−ＧＥＮ）３０６とを有する。
【００８１】
クロックセレクタ３０１には、複数のクロック信号（入力クロック信号ＣＫＩＮ１から入力クロック信号ＣＫＩＮ６）とｎ＋１ビットのクロック選択信号と切り替えトリガ信号ＳＴ−ＳＩＧと第２のクロック選択部Ｅｎ信号２ＣＬＫＥＮ−ＳＩＧが入力される。そしてクロックセレクタ３０１からは、出力クロック信号ＣＫＯＵＴとｎ＋１ビットの現選択信号ＣＳＥＬ−ＳＩＧ〔ｎ：０〕と切り替え実行信号ＳＥＬ−ＲＵＮ−ＳＩＧと第２のリセット信号２ＲＳＴ−ＳＩＧが出力される。
【００８２】
ｎ＋１ビットのクロック選択信号は、クロックセレクタ３０１に対して、入力クロック信号ＣＫＩＮ１から入力クロック信号ＣＫＩＮ６の中からどれを選択出力するかを指示する。この値は、クロック切り替えを行う場合は、切り替えトリガ信号ＳＴ−ＳＩＧが非アクティブ状態からアクティブ状態に変化する前に、切り替え前クロックの選択を示す値から切り替え後クロックの選択を示す値に更新されるものとする。
【００８３】
図３では、図２と同様に入力されるクロック（入力クロック信号ＣＫＩＮ１から入力クロック信号ＣＫＩＮ６）の数が６である場合を仮定している。従って、実施の形態２で説明したｎ＋１ビットの現選択信号ＣＳＥＬ−ＳＩＧ〔ｎ：０〕とｎ＋１ビットの新選択信号ＮＳＥＬ−ＳＩＧ〔ｎ：０〕と同様に、この実施の形態ではクロック選択信号は３ビット（ｎ＝２）になる。尚、入力される複数のクロック信号の数は６に限定されないし、入力される複数のクロック信号の数に応じて、クロック選択信号のビット数（ｎの値）は変更される。
【００８４】
選択型クロック制御信号生成回路２０１は、実施の形態２で説明した動作に基づいて第１のクロック信号１ＣＬＫ、第１のクロック停止許可信号１ＣＳＴ−ＳＩＧ、第２のクロック停止許可信号２ＣＳＴ−ＳＩＧ及びクロック再開許可信号Ｃ−ＲＥＳ−ＳＩＧを出力する。この信号出力は、複数の入力クロック信号（入力クロック信号ＣＫＩＮ１から入力クロック信号ＣＫＩＮ６）と３ビットの現選択信号ＣＳＥＬ−ＳＩＧと３ビットの新選択信号ＮＳＥＬ−ＳＩＧと切り替えトリガ信号ＳＴ−ＳＩＧと第２のクロック選択部Ｅｎ信号２ＣＬＫＥＮ−ＳＩＧに基づいて行われる。
【００８５】
ゲーティング制御部３０２は、第１のクロック停止許可信号１ＣＳＴ−ＳＩＧがアクティブ状態でかつ、クロック再開許可信号Ｃ−ＲＥＳ−ＳＩＧが非アクティブ状態であるときに第１のゲーティング制御信号１ＧＡＴ−ＳＩＧを非アクティブ状態にして出力する。そしてゲーティング制御部３０２は、第２のクロック停止許可信号２ＣＳＴ−ＳＩＧがアクティブ状態でかつ、クロック再開許可信号Ｃ−ＲＥＳ−ＳＩＧが非アクティブ状態であるときに第２のゲーティング制御信号２ＧＡＴ−ＳＩＧを非アクティブ状態にして出力する。ここで、第１のゲーティング制御信号１ＧＡＴ−ＳＩＧと第２のゲーティング制御信号２ＧＡＴ−ＳＩＧはどちらか一方のみが非アクティブ状態になり、両者が同時に非アクティブ状態になることはない。
【００８６】
クロックゲーティング部３０３は、第１のゲーティング制御信号１ＧＡＴ−ＳＩＧが非アクティブ状態であるときに出力クロック信号ＣＫＯＵＴを論理レベルのローに固定して出力し、第２のゲーティング制御信号２ＧＡＴ−ＳＩＧが非アクティブ状態であるときに出力クロック信号ＣＫＯＵＴを論理レベルのハイに固定して出力する。そしてクロックゲーティング部３０３は、第１のゲーティング制御信号１ＧＡＴ−ＳＩＧと第２のゲーティング制御信号２ＧＡＴ−ＳＩＧが共にアクティブ状態であるときは第１のクロック信号１ＣＬＫを出力クロック信号ＣＫＯＵＴとして出力する。
【００８７】
第１の選択信号保持部３０４は、切り替えトリガ信号ＳＴ−ＳＩＧが非アクティブ状態からアクティブ状態へ変化したときに、切り替え前クロックの選択を示す値から切り替え後クロックの選択を示す値に更新された後の３ビットのクロック選択信号をサンプリングして保持し、３ビットの新選択信号ＮＳＥＬ−ＳＩＧを切り替え前クロックの選択を示す値から切り替え後クロックの選択を示す値に更新して出力する。
【００８８】
第２の選択信号保持部３０５は、第１のゲーティング制御信号１ＧＡＴ−ＳＩＧと第２のゲーティング制御信号２ＧＡＴ−ＳＩＧの何れか一方がアクティブ状態から非アクティブ状態へ変化したときに、所定の時間が経過してから切り替え前クロックの選択を示す値から切り替え後クロックの選択を示す値に更新された後の３ビットの新選択信号ＮＳＥＬ−ＳＩＧをサンプリングして保持する。そして第２の選択信号保持部３０５は、そのサンプリング保持値を、３ビットの現選択信号ＣＳＥＬ−ＳＩＧを切り替え前クロックの選択を示す値から切り替え後クロックの選択を示す値に更新して出力する。
【００８９】
リセット信号生成部３０６は、クロック再開許可信号Ｃ−ＲＥＳ−ＳＩＧが非アクティブ状態からアクティブ状態に変化した後に、第１のリセット信号１ＲＳＴ−ＳＩＧを非アクティブ状態からアクティブ状態に変えて出力し、更に所定の時間が経過した後に第２のリセット信号２ＲＳＴ−ＳＩＧを非アクティブ状態からアクティブ状態に変えて出力する。第１のリセット信号１ＲＳＴ−ＳＩＧと第２のリセット信号２ＲＳＴ−ＳＩＧは、クロック切り替えの処理が完了した後に選択型クロック制御信号生成回路２０１の内部回路を初期化する。
【００９０】
図４には、クロック切り替えイベントが発生したときのクロックセレクタ３０１の動作タイミングが示される。
【００９１】
図４を参照して、クロック切り替え処理の流れをクロックセレクタ３０１の各ブロックの動作と連携して説明する。以下の説明で、時刻Ｔ１〜Ｔ５は図４中に示す各時刻に対応する。また、第１のクロック停止許可信号１ＣＳＴ−ＳＩＧ、第２のクロック停止許可信号２ＣＳＴ−ＳＩＧ、クロック再開許可信号Ｃ−ＲＥＳ−ＳＩＧの初期状態は非アクティブ状態（例えば論理レベルのロー）とし、第１のゲーティング制御信号１ＧＡＴ−ＳＩＧの初期状態はアクティブ状態（例えば論理レベルのハイ）とする。第２のゲーティング制御信号２ＧＡＴ−ＳＩＧの初期状態はアクティブ状態（例えば論理レベルのロー）とし、第１のリセット信号１ＲＳＴ−ＳＩＧ、第２のリセット信号２ＲＳＴ−ＳＩＧの初期状態は非アクティブ状態（例えば論理レベルのハイ）とする。
【００９２】
時刻Ｔ１では、外部から供給される３ビットのクロック選択信号の値が（ｘ、ｘ、ｘ）から（ｙ、ｙ、ｙ）に変化し、第２のクロック選択部Ｅｎ信号２ＣＬＫＥＮ−ＳＩＧが非アクティブ状態（論理レベルのロー）からアクティブ状態（論理レベルのハイ）に変化する。
【００９３】
時刻Ｔ２では、時刻Ｔ１から所定の時間（図４中のＤ６）が経過した後、外部から供給される切り替えトリガ信号ＳＴ−ＳＩＧが非アクティブ状態（論理レベルのロー）からアクティブ状態（論理レベルのハイ）に変化する。これにより、第１の選択信号保持部３０４が３ビットの新選択信号ＮＳＥＬ−ＳＩＧの値を（ｘ、ｘ、ｘ）から（ｙ、ｙ、ｙ）に変える。これを受けて、第２のクロック選択部２０３が、３ビットの新選択信号ＮＳＥＬ−ＳＩＧが示す値（ｙ、ｙ、ｙ）に対応する第４のクロック信号４ＣＬＫまたは第５のクロック信号５ＣＬＫの出力を開始する。また、切り替え前クロック処理部１０２が処理を開始する。
【００９４】
時刻Ｔ３では、切り替え前クロック処理部１０２が第２のクロック信号２ＣＬＫまたは第３のクロック信号３ＣＬＫの論理レベルを検出し、その結果によって、第１のクロック停止許可信号１ＣＳＴ−ＳＩＧか第２のクロック停止許可信号２ＣＳＴ−ＳＩＧを非アクティブ状態（論理レベルのロー）からアクティブ状態（論理レベルのハイ）に変化させる。尚、図４では、第２のクロック信号２ＣＬＫまたは第３のクロック信号３ＣＬＫの論理レベルのローを検出し、第１のクロック停止許可信号１ＣＳＴ−ＳＩＧがアクティブ状態に変化する場合を仮定している。逆に第２のクロック信号２ＣＬＫまたは第３のクロック信号３ＣＬＫの論理レベルのハイを検出した場合は、第２のクロック停止許可信号２ＣＳＴ−ＳＩＧをアクティブ状態にする。
【００９５】
これにより、ゲーティング制御部３０２が第１のゲーティング制御信号１ＧＡＴ−ＳＩＧをアクティブ状態（論理レベルのハイ）から非アクティブ状態（論理レベルのロー）に変える。このとき、第２のゲーティング制御信号２ＧＡＴ−ＳＩＧはアクティブ状態（論理レベルのロー）のままである。更にこれを受けて、クロックゲーティング部３０３が出力クロック信号ＣＫＯＵＴを論理レベルのローに固定する（出力クロックの停止（ＳＴＰ）を実施）。また、切り替え後クロック処理部１０６が処理を開始する。
【００９６】
時刻Ｔ４では、時刻Ｔ３から所定の時間（図４中のＤ１）が経過した後、第２の選択信号保持部３０５が３ビットの現選択信号ＣＳＥＬ−ＳＩＧの値を（ｘ、ｘ、ｘ）から（ｙ、ｙ、ｙ）に変える。これにより、第１のクロック選択部２０２が第１のクロック信号１ＣＬＫを、３ビットの現選択信号ＣＳＥＬ−ＳＩＧが示す値（ｙ、ｙ、ｙ）に対応する切り替え後のクロック信号に切り替える（クロック選択の変更を実施）。
【００９７】
時刻Ｔ５では、切り替え後クロック処理部１０６が第４のクロック信号４ＣＬＫまたは第５のクロック信号５ＣＬＫの論理レベルのローを検出して、クロック再開許可信号Ｃ−ＲＥＳ−ＳＩＧを非アクティブ状態（論理レベルのロー）からアクティブ状態（論理レベルのハイ）に変化させる。尚、図４では、時刻Ｔ３において切り替え前クロック処理部１０２が第１のクロック停止許可信号１ＣＳＴ−ＳＩＧをアクティブ状態に変化させたため、第４のクロック信号４ＣＬＫまたは第５のクロック信号５ＣＬＫの論理レベルのローの検出を以ってクロック再開許可信号Ｃ−ＲＥＳ−ＳＩＧをアクティブ状態に変化させる。逆に切り替え前クロック処理部１０２が第２のクロック停止許可信号２ＣＳＴ−ＳＩＧをアクティブ状態に変化させた場合は、第４のクロック信号４ＣＬＫまたは第５のクロック信号５ＣＬＫの論理レベルのハイの検出を以ってクロック再開許可信号Ｃ−ＲＥＳ−ＳＩＧをアクティブ状態に変化させる。
【００９８】
これにより、ゲーティング制御部３０２が第１のゲーティング制御信号１ＧＡＴ−ＳＩＧを非アクティブ状態（論理レベルのロー）からアクティブ状態（論理レベルのハイ）に変える。このとき、第２のゲーティング制御信号２ＧＡＴ−ＳＩＧはアクティブ状態（論理レベルのロー）のままである。更にこれを受けて、クロックゲーティング部３０３は出力クロック信号ＣＫＯＵＴを第１のクロック信号１ＣＬＫに戻す（出力クロックの再開を実施）。
【００９９】
時刻Ｔ５の後、第１のリセット信号１ＲＳＴ−ＳＩＧが非アクティブ状態（論理レベルのハイ）からアクティブ状態（論理レベルのロー）に変わり、これから所定の時間（図４中のＤ２）が経過した後に、第２のリセット信号２ＲＳＴ−ＳＩＧが非アクティブ状態（論理レベルのハイ）からアクティブ状態（論理レベルのロー）に変わる。
【０１００】
第１のリセット信号１ＲＳＴ−ＳＩＧがアクティブ状態になることによって切り替え前クロック処理部１０２の内部回路が初期化され、第１のクロック停止許可信号１ＣＳＴ−ＳＩＧが初期状態である非アクティブ状態に変化する。そして第２のリセット信号２ＲＳＴ−ＳＩＧがアクティブ状態になることによって切り替え後クロック処理部１０６の内部回路が初期化され、クロック再開許可信号Ｃ−ＲＥＳ−ＳＩＧが初期状態である非アクティブ状態に変化する。
【０１０１】
出力クロック信号ＣＫＯＵＴは、時刻Ｔ３までは切り替え前のクロック信号を出力し、時刻Ｔ３〜Ｔ５までの期間は停止状態に制御され、時刻Ｔ５以降は切り替え後のクロック信号を出力する。
【０１０２】
以上の動作において、時刻Ｔ２で用いた待機時間Ｄ６は、３ビットのクロック選択信号の値が安定してから、以降の処理が行われるようにするために挿入される。また、時刻Ｔ４で用いた待機時間Ｄ１は、クロックの停止が行われてから第１のクロック信号１ＣＬＫの選択切り替えを起こすために挿入される。
【０１０３】
以上の説明では時刻Ｔ３において、クロックゲーティング部３０３は第１のゲーティング制御信号１ＧＡＴ−ＳＩＧが非アクティブ状態になったことを受けて、出力クロック信号ＣＫＯＵＴを論理レベルのローに固定して停止したが、逆に、第２のゲーティング制御信号２ＧＡＴ−ＳＩＧが非アクティブになった場合は、出力クロック信号ＣＫＯＵＴを論理レベルのハイに固定して停止するようにしても良い。つまり、切り替え前クロック処理部１０２において第２のクロック信号２ＣＬＫまたは第３のクロック信号３ＣＬＫの論理レベルのローを検出した場合は、クロックゲーティング部３０３は出力クロック信号ＣＫＯＵＴを論理レベルのローに固定して停止する。また、切り替え前クロック処理部１０２において第２のクロック信号２ＣＬＫまたは第３のクロック信号３ＣＬＫの論理レベルのハイを検出した場合は、クロックゲーティング部３０３は出力クロック信号ＣＫＯＵＴを論理レベルのハイに固定して停止する。
【０１０４】
＜実施の形態４＞
図５には、図１に示されるクロック制御信号生成回路の具体的な回路構成例が示される。
【０１０５】
図５に示されるクロック制御信号生成回路１０１ａにおいて、第１の高周波クロック処理部１０３は、フリップフロップ５０１とフリップフロップ５０２とが結合されて成る。フリップフロップ５０１とフリップフロップ５０２とは互いに直列接続され、第２のクロック信号２ＣＬＫが入力される。フリップフロップ５０１には、切り替えトリガ信号ＳＴ−ＳＩＧが入力される。フリップフロップ５０２から第１の検出信号ＤＥＴ−ＳＩＧが出力される。第１の低周波クロック処理部１０４ａは、フリップフロップ５０３、インバータ５０４、フリップフロップ５０５、遅延時間Ｄ３の遅延回路（ＤＬＹ）５０６と、ＡＮＤ回路５０７とＡＮＤ回路５０８が結合されて成る。フリップフロップ５０３は、インバータ５０４を介してＡＮＤ回路５０７に結合される。フリップフロップ５０５は、遅延回路５０６を介してＡＮＤ回路５０７とＡＮＤ回路５０８とに結合される。ＡＮＤ回路５０７から第２の検出信号２ＳＴ−ＤＥＴ−ＳＩＧが出力され、ＡＮＤ回路５０８から第３の検出信号３ＳＴ−ＤＥＴ−ＳＩＧが出力される。第２の高周波クロック処理部１０７は、フリップフロップ５１０，５１１，５１２，５１３を含んで成る。フリップフロップ５１０，５１１は互いに直列接続される。フリップフロップ５１２，５１３は互いに直列接続される。フリップフロップ５１２から第４の検出信号４ＤＥＴ−ＳＩＧが出力され、フリップフロップ５１３から第５の検出信号５ＤＥＴ−ＳＩＧが出力される。第２の低周波クロック処理部１０８ａは、フリップフロップ５１４，５１５，５１６，５１７を含んで成る。フリップフロップ５１４，５１５が互いに直列接続され、フリップフロップ５１６，５１７が互いに直列接続される。フリップフロップ５１５から第６の検出信号６ＤＥＴ−ＳＩＧが出力され、フリップフロップ５１７から第７の検出信号７ＤＥＴ−ＳＩＧが出力される。
【０１０６】
図６には、比較的周波数が高いクロック信号である第２のクロック信号２ＣＬＫと比較的周波数が低いクロック信号である第５のクロック信号５ＣＬＫがクロック供給を受けている場合の動作を説明するタイミングチャートである。
【０１０７】
図５と図６を参照して動作を説明する。以下の説明で、時刻Ｔ２、Ｔ３、Ｔ５は図６中に示す各時刻に対応する。また、フリップフロップ５０１〜５０３、５０５、５１０〜５１７の出力信号の初期状態は非アクティブ状態（論理レベルのロー）であるとする。つまり、第１の検出信号１ＤＥＴ−ＳＩＧ、第２の検出信号２ＤＥＴ−ＳＩＧ、第３の検出信号３ＤＥＴ−ＳＩＧ、第１のクロック停止許可信号１ＣＳＴ−ＳＩＧ、第２のクロック停止許可信号２ＣＳＴ−ＳＩＧ、第４の検出信号４ＤＥＴ−ＳＩＧ、第５の検出信号５ＤＥＴ−ＳＩＧ、第６の検出信号６ＤＥＴ−ＳＩＧ、第７の検出信号７ＤＥＴ−ＳＩＧ、クロック再開許可信号Ｃ−ＲＥＳ−ＳＩＧの初期状態は全て非アクティブ状態である。
【０１０８】
時刻Ｔ２では、外部から供給される切り替えトリガ信号ＳＴ−ＳＩＧが非アクティブ状態（論理レベルのロー）からアクティブ状態（論理レベルのハイ）に変化する。これにより、切り替え前クロック処理部１０２ａが処理を開始する。
【０１０９】
時刻Ｔ３では、切り替えトリガ信号ＳＴ−ＳＩＧの状態の変化が、第１の高周波クロック処理部１０３内のフリップフロップ５０１、５０２によって、第２のクロック信号２ＣＬＫの２回の立下りエッジを経て第２のクロック信号２ＣＬＫの立下りエッジに同期化され、フリップフロップ５０２の出力信号である第１の検出信号１ＤＥＴ−ＳＩＧが非アクティブ状態（論理レベルのロー）からアクティブ状態（論理レベルのハイ）に変化する。これにより、ＯＲ回路１０５の出力信号である第１のクロック停止許可信号１ＣＳＴ−ＳＩＧが非アクティブ状態（論理レベルのロー）からアクティブ状態（論理レベルのハイ）に変化する。また、切り替え後クロック処理部１０６ａが処理を開始する。
【０１１０】
時刻Ｔ５では、第１のクロック停止許可信号１ＣＳＴ−ＳＩＧの状態の変化が、第２の低周波クロック処理部１０８ａ内のフリップフロップ５１４、５１５によって、第５のクロック信号５ＣＬＫの立下りエッジとこれに続く立上りエッジを経て第５のクロック信号５ＣＬＫの立上りエッジに同期化される。そしてフリップフロップ５１５の出力信号である第６の検出信号６ＤＥＴ−ＳＩＧが非アクティブ状態（論理レベルのロー）からアクティブ状態（論理レベルのハイ）に変化する。これにより、ＯＲ回路１０９の出力信号であるクロック再開許可信号Ｃ−ＲＥＳ−ＳＩＧが非アクティブ状態（論理レベルのロー）からアクティブ状態（論理レベルのハイ）に変化する。
【０１１１】
時刻Ｔ５の第２の低周波クロック処理部１０８ａの説明において、仮に第１のクロック停止許可信号１ＣＳＴ−ＳＩＧではなく第２のクロック停止許可信号２ＣＳＴ−ＳＩＧが非アクティブ状態からアクティブ状態に変化した場合は、次のようになる、すなわち、フリップフロップ５１４、５１５ではなく、フリップフロップ５１６、５１７によって、これが第５のクロック信号５ＣＬＫの立上りエッジとこれに続く立下りエッジを経て第５のクロック信号５ＣＬＫの立下りエッジに同期化され、フリップフロップ５１７の出力信号である第７の検出信号７ＤＥＴ−ＳＩＧが非アクティブ状態（論理レベルのロー）からアクティブ状態（論理レベルのハイ）に変化する。
【０１１２】
また、時刻Ｔ５の説明において、仮に比較的周波数が低いクロック信号である第５のクロック信号５ＣＬＫではなく、比較的周波数が高いクロック信号である第４のクロック信号４ＣＬＫがクロック供給を受けている場合は、第２の低周波クロック処理部１０８ａではなく第２の高周波クロック処理部１０７が動作する。このとき、第１のクロック停止許可信号１ＣＳＴ−ＳＩＧが非アクティブ状態からアクティブ状態に変化した場合は、フリップフロップ５１０、５１１によって、これが第４のクロック信号４ＣＬＫの２回の立下りエッジを経て第４のクロック信号４ＣＬＫの立下りエッジに同期化され、フリップフロップ５１１の出力信号である第４の検出信号４ＤＥＴ−ＳＩＧが非アクティブ状態からアクティブ状態（論理レベルのハイ）に変化する。第２のクロック停止許可信号２ＣＳＴ−ＳＩＧが非アクティブ状態からアクティブ状態に変化した場合は、フリップフロップ５１２、５１３によって、これが第４のクロック信号４ＣＬＫの２回の立上りエッジを経て第４のクロック信号４ＣＬＫの立上りエッジに同期化され、フリップフロップ５１３の出力信号である第５の検出信号５ＤＥＴ−ＳＩＧが非アクティブ状態からアクティブ状態（論理レベルのハイ）に変化する。
【０１１３】
クロック制御信号生成回路（Ｃ−ＣＮＴ−ＧＥＮ）１０１ａは、クロック切り替えを行うための制御信号を発生する目的で使われ、第１のクロック停止許可信号１ＣＳＴ−ＳＩＧや第２のクロック停止許可信号２ＣＳＴ−ＳＩＧによって出力クロックの停止が制御され、クロック再開許可信号Ｃ−ＲＥＳ−ＳＩＧによって出力クロックの再開が制御される。
【０１１４】
上記の説明のように、切り替えトリガ信号ＳＴ−ＳＩＧの状態の変化は第１の高周波クロック処理部１０３においては第２のクロック信号２ＣＬＫに同期化され、第１のクロック停止許可信号１ＣＳＴ−ＳＩＧや第２のクロック停止許可信号２ＣＳＴ−ＳＩＧの状態の変化は、第２の高周波クロック処理部１０７や第２の低周波クロック処理部１０８ａにおいて第４のクロック信号４ＣＬＫや第５のクロック信号５ＣＬＫに同期化される。これは、クロック切り替え時に出力クロック信号ＣＫＯＵＴにグリッチ（正規のクロックパルス幅よりも狭いパルス）が発生しないことを保証するために必要な手続きである。一般的に外部から供給される制御信号の値はクロック信号と非同期に変化する場合があるため、切り替えトリガ信号ＳＴ−ＳＩＧの変化は第２のクロック信号２ＣＬＫと非同期で起こる可能性があり、第２のクロック信号２ＣＬＫや第３のクロック信号３ＣＬＫと第４のクロック信号４ＣＬＫや第５のクロック信号５ＣＬＫは非同期である。このためクロック切り替え時に出力クロック信号ＣＫＯＵＴにグリッチが発生するおそれがある。
【０１１５】
また、フリップフロップ５０１、５０２の２段直列接続、フリップフロップ５１０、５１１の２段直列接続とフリップフロップ５１２、５１３の２段直列接続、フリップフロップ５１４、５１５の２段直列接続とフリップフロップ５１６、５１７の２段直列接続は、フリップフロップのメタステーブル現象への対策のためである。
【０１１６】
ところで、第２の高周波クロック処理部１０７では２段直列接続されているフリップフロップ（５１０と５１１及び、５１２と５１３）のクロックの動作エッジの向きは同じであるが、第２の低周波クロック処理部１０８ａでは、それが異なっている。これは、クロック信号の１周期の長さの違いに対する配慮である。比較的周波数が高い第４のクロック信号４ＣＬＫが入力される第２の高周波クロック処理部１０７では、メタステーブルが安定するまでにクロック信号の１周期時間程度はかかると考えられる。そのため、１段目のフリップフロップと２段目のフリップフロップの動作間隔をクロックの１周期時間分だけ確保している。一方、比較的周波数が低い第５のクロック信号５ＣＬＫが入力される第２の低周波クロック処理部１０８ａでは、クロック信号の１周期の長さが比較的長いので、メタステーブルが安定するまでにクロック信号の１周期時間はかからず、０．５周期程度で十分と考えられる。そのため、１段目のフリップフロップと２段目のフリップフロップの動作間隔をクロックの０．５周期時間分だけ確保している。
【０１１７】
図７には、比較的周波数が低いクロック信号である第３のクロック信号３ＣＬＫと比較的周波数が高いクロック信号である第４のクロック信号４ＣＬＫが供給されている場合の動作タイミングが示される。
【０１１８】
図５と図７を参照して、この場合の動作を説明する。以下の説明で、時刻Ｔ２、Ｔ３、Ｔ５は図７中に示す各時刻に対応する。また、フリップフロップ５０１〜５０３、５０５、５１０〜５１７の出力信号の初期状態は非アクティブ状態（論理レベルのロー）であるとする。つまり、第１の検出信号１ＤＥＴ−ＳＩＧ、第２の検出信号２ＤＥＴ−ＳＩＧ、第３の検出信号３ＤＥＴ−ＳＩＧ、第１のクロック停止許可信号１ＣＳＴ−ＳＩＧ、第２のクロック停止許可信号２ＣＳＴ−ＳＩＧ、第４の検出信号４ＤＥＴ−ＳＩＧ、第５の検出信号５ＤＥＴ−ＳＩＧ、第６の検出信号６ＤＥＴ−ＳＩＧ、第７の検出信号７ＤＥＴ−ＳＩＧ、クロック再開許可信号Ｃ−ＲＥＳ−ＳＩＧの初期状態は全て非アクティブ状態である。
【０１１９】
尚、第３のクロック信号３ＣＬＫが供給されている場合、図５と図７中に示す現選択信号ＣＳＥＬ−ＳＩＧ〔ｎ：０〕の最上位ビットである現選択信号ＣＳＥＬ−ＳＩＧ〔ｎ〕はアクティブ状態（論理レベルのハイ）になる。
【０１２０】
時刻Ｔ２では、外部から供給される切り替えトリガ信号ＳＴ−ＳＩＧが非アクティブ状態（論理レベルのロー）からアクティブ状態（論理レベルのハイ）に変化すると、現選択信号ＣＳＥＬ−ＳＩＧ〔ｎ〕がアクティブ状態（論理レベルのハイ）である。このため、第１の低周波クロック処理部１０４ａ内のフリップフロップ５０５の出力信号（Ｆ／Ｆ５０５ＯＵＴ）が非アクティブ状態（論理レベルのロー）からアクティブ状態（論理レベルのハイ）に変化し、第１の低周波クロック処理部１０４ａが動作を開始する。これによって、フリップフロップ５０３の出力信号（Ｆ／Ｆ５０３ＯＵＴ）が第３のクロック信号３ＣＬＫの論理レベルに応じて変化する（図７では第３のクロック信号３ＣＬＫの論理レベルがハイなので、フリップフロップ５０３の出力信号は論理レベルのハイに変化する）。これに応じてインバータ５０４の出力信号（ＩＮＶ５０４ＯＵＴ）が非アクティブ状態（論理レベルのロー）に変化する。以上の動作によって、切り替えトリガ信号ＳＴ−ＳＩＧが非アクティブ状態からアクティブ状態に変化した時点の第３のクロック信号３ＣＬＫの状態が論理レベルのハイであることが検出される。
【０１２１】
時刻Ｔ３では、時刻Ｔ２でフリップフロップ５０５の出力信号がアクティブ状態に変化してから、所定の時間（図７中のＤ３）が経過した後、遅延回路５０６の出力信号が非アクティブ状態（論理レベルのロー）からアクティブ状態（論理レベルのハイ）に変化する。これによって、フリップフロップ５０３の出力信号の状態（第３のクロック信号３ＣＬＫの論理レベルの検出結果）を反映して、ＡＮＤ回路５０８の出力信号である第３の検出信号３ＤＥＴ−ＳＩＧが非アクティブ状態からアクティブ状態（論理レベルのハイ）に変化し、第２のクロック停止許可信号２ＣＳＴ−ＳＩＧが非アクティブ状態からアクティブ状態（論理レベルのハイ）に変化する。また、切り替え後クロック処理部１０６ａが処理を開始する。
【０１２２】
時刻Ｔ５では、第２のクロック停止許可信号２ＣＳＴ−ＳＩＧの状態の変化が、第２の高周波クロック処理部１０７内のフリップフロップ５１２、５１３によって、第４のクロック信号４ＣＬＫの２回の立上りエッジを経て第４のクロック信号４ＣＬＫの立上りエッジに同期化され、フリップフロップ５１３の出力信号である第５の検出信号５ＤＥＴ−ＳＩＧが非アクティブ状態からアクティブ状態（論理レベルのハイ）に変化する。これにより、ＯＲ回路１０９の出力信号であるクロック再開許可信号Ｃ−ＲＥＳ−ＳＩＧが非アクティブ状態（論理レベルのロー）からアクティブ状態（論理レベルのハイ）に変化する。
【０１２３】
時刻Ｔ２の第１の低周波クロック処理部１０４ａの説明において、切り替えトリガ信号ＳＴ−ＳＩＧが非アクティブ状態からアクティブ状態に変化したときに仮に、現選択信号ＣＳＥＬ−ＳＩＧ〔ｎ〕が非アクティブ状態（論理レベルのロー）であったとすると、フリップフロップ５０５の出力信号は非アクティブ状態を維持し続けるので、ＡＮＤ回路５０７と５０８の出力信号も非アクティブ状態を維持し続ける。その結果として、第２の検出信号２ＤＥＴ−ＳＩＧと第３の検出信号３ＤＥＴ−ＳＩＧは非アクティブの状態を維持する。これによって、第３のクロック信号３ＣＬＫが供給されていないときに、不正に第２の検出信号２ＤＥＴ−ＳＩＧがアクティブ状態になることを防ぐことが可能になる。
【０１２４】
更に、時刻Ｔ２の第１の低周波クロック処理部１０４ａの説明において、仮に切り替えトリガ信号ＳＴ−ＳＩＧが非アクティブ状態からアクティブ状態に変化したときの第３のクロック信号３ＣＬＫの状態が論理レベルのハイではなくローである場合は、フリップフロップ５０３の出力信号は論理レベルのローを維持する。これによって、インバータ５０４の出力信号はアクティブ状態（論理レベルのハイ）を維持する。この動作によって、切り替えトリガ信号ＳＴ−ＳＩＧが非アクティブ状態からアクティブ状態に変化した時点の第３のクロック信号３ＣＬＫの状態が論理レベルのローであることが検出される。次いで時刻Ｔ３において、フリップフロップ５０５の出力信号がアクティブ状態に変化してから所定の時間（図７中のＤ３）が経過した後、遅延回路５０６の出力信号が非アクティブ状態（論理レベルのロー）からアクティブ状態（論理レベルのハイ）に変化する。これによって、フリップフロップ５０３の出力信号の状態（第３のクロック信号３ＣＬＫの論理レベルの検出結果）を反映して、ＡＮＤ回路５０７の出力信号である第２の検出信号２ＤＥＴ−ＳＩＧが非アクティブ状態からアクティブ状態（論理レベルのハイ）に変化し、ＯＲ回路１０５の出力信号である第１のクロック停止許可信号１ＣＳＴ−ＳＩＧが非アクティブ状態からアクティブ状態（論理レベルのハイ）に変化する。
【０１２５】
以上の説明のように、第１の低周波クロック処理部１０４ａは第３のクロック信号３ＣＬＫのレベル検出に基づいて動作し、第１の高周波クロック処理部１０３は第２のクロック信号２ＣＬＫのエッジ検出に基づいて動作し、第２の高周波クロック処理部１０７は第４のクロック信号４ＣＬＫのエッジ検出に基づいて動作し、第２の低周波クロック処理部１０８ａは第５のクロック信号５ＣＬＫのエッジ検出に基づいて動作する。
【０１２６】
そして、切り替え前クロック処理部１０２ａが第２のクロック信号２ＣＬＫに基づいて動作した場合は、第１のクロック停止許可信号１ＣＳＴ−ＳＩＧが第２のクロック信号２ＣＬＫの立下りエッジに同期して非アクティブ状態からアクティブ状態に変化する。切り替え前クロック処理部１０２ａが第３のクロック信号３ＣＬＫに基づいて動作した場合は、そのレベル検出結果によって、第１のクロック停止許可信号１ＣＳＴ−ＳＩＧまたは第２のクロック停止許可信号２ＣＳＴ−ＳＩＧが、切り替えトリガ信号ＳＴ−ＳＩＧが非アクティブ状態からアクティブ状態に変化した後、所定の時間が経過してから非アクティブ状態からアクティブ状態に変化する。切り替え後クロック処理部１０６ａは第１のクロック停止許可信号１ＣＳＴ−ＳＩＧがアクティブ状態になったか、第２のクロック停止許可信号２ＣＳＴ−ＳＩＧがアクティブ状態になったかによって、同期化を行うクロックエッジの向きを変えてクロック再開許可信号Ｃ−ＲＥＳ−ＳＩＧをアクティブ状態に変える。
【０１２７】
ここで、第１の高周波クロック処理部１０３に対して、第１の低周波クロック処理部１０４ａのようにレベル検出を適用しないのは、高周波クロックを使った処理は元々早く、あまりレベル検出を適用することのメリットがないことに加えて、高周波クロックはレベル継続時間が短く、実際にクロックを停止させる時点でレベルが他方に遷移している可能性があり、グリッチが発生する危険性が高いからである。
【０１２８】
次に、第１の低周波クロック処理部１０４ａにおけるフリップフロップ５０３のメタステーブル対策に関して述べる。フリップフロップ５０３のデータ（Ｄ）入力である第３のクロック信号３ＣＬＫの変化とクロック（ＣＫ）入力であるフリップフロップ５０５の出力信号の変化が近接する場合、フリップフロップ５０３の出力信号にメタステーブル現象が発生する可能性がある。この対策のために遅延回路５０６が使われる。遅延回路５０６の役割は、フリップフロップ５０５の出力信号がアクティブ状態になった後、フリップフロップ５０３のメタステーブル現象が安定化するまで所定の時間（図７中のＤ３）だけ、ＡＮＤ回路５０７、５０８の入力への信号伝搬を遅らせ、ＡＮＤ回路５０７、５０８の出力信号にマスクをかけることである。上記の所定の時間（Ｄ３）をメタステーブル現象の安定化に要する時間よりも多少長く取ることによって、第１のクロック停止許可信号１ＣＳＴ−ＳＩＧと第２のクロック許可信号にメタステーブル現象の影響が伝搬することを防ぐことが可能になる。以上の説明のように、所定の遅延時間Ｄ３を適切に設定することによって、クロック切り替えの際にメタステーブル現象の安定化のために不要に長い待機時間が発生することを回避することができ、高速なクロック切り替えが可能となる。
【０１２９】
次にＯＲ回路５０９について説明する。ＯＲ回路５０９は第１の高周波クロック処理部１０３に入力するリセット信号を生成する目的で使われる。具体的には、第１の低周波クロック処理部１０４ａが動作して、第３の検出信号３ＤＥＴ−ＳＩＧ（第２のクロック停止許可信号２ＣＳＴ−ＳＩＧ）がアクティブ状態（論理レベルのハイ）になったときにフリップフロップ５０１と５０２へリセット信号を印加して、これらの出力信号を非アクティブ状態（論理レベルのロー）に固定する。これによって、第２のクロック停止許可信号２ＣＳＴ−ＳＩＧがアクティブ状態になったときに、誤って第１のクロック停止許可信号１ＣＳＴ−ＳＩＧがアクティブ状態になるのを防止することができる。
尚、切り替えトリガ信号ＳＴ−ＳＩＧは１回のクロック切り替え処理において、１度しか非アクティブ状態からアクティブ状態に遷移しない。このため、切り替えトリガ信号ＳＴ−ＳＩＧが非アクティブ状態からアクティブ状態に変化したことに呼応して、フリップフロップ５０３で第３のクロック信号３ＣＬＫの状態を検出する構成の第１の低周波クロック処理部１０４ａでは、第１のクロック停止許可信号１ＣＳＴ−ＳＩＧがアクティブ状態に変化した後に、誤って第２のクロック停止許可信号２ＣＳＴ−ＳＩＧがアクティブ状態に変化することは起こり得ない。従ってこの場合、上記の考えに基づくリセット処理は必要ない。
【０１３０】
＜実施の形態５＞
図８には、図１に示されるクロック制御信号生成回路１０１の他の具体的な回路構成例が示される。
【０１３１】
図８に示されるクロック制御信号生成回路１０１ｂにおいて、第１の高周波クロック処理部１０３はフリップフロップ８０１とフリップフロップ８０２とが結合されて成り、第１の低周波クロック処理部１０４ｂは、フリップフロップ８０３とフリップフロップ８０４とフリップフロップ８０５とフリップフロップ８０６と遅延時間Ｄ４の遅延回路８０７とが結合されて成る。フリップフロップ８０３，８０５は互いに直列接続され、フリップフロップ８０５，８０６は互いに直列接続される。フリップフロップ８０３，８０５のデータ端子Ｄに切り替えトリガ信号ＳＴ−ＳＩＧが入力される。フリップフロップ８０３，８０５のクロック端子ＣＫには第３のクロック信号３ＣＬＫが入力される。フリップフロップ８０４，８０６のクロック端子ＣＫには、第３のクロック信号３ＣＬＫが遅延回路８０７で遅延されてから入力される。第２の高周波クロック処理部１０７は、フリップフロップ８１０とフリップフロップ８１１とフリップフロップ８１２とフリップフロップ８１３とが結合されて成り、第２の低周波クロック処理部１０８ｂは、フリップフロップ８１４とフリップフロップ８１５の直列接続とフリップフロップ８１６とフリップフロップ８１７とが結合されて成る。
【０１３２】
図５における第１の低周波クロック処理部１０４ａは、第３のクロック信号３ＣＬＫのレベル検出に基づいて動作するものであったが、図８に示される第１の低周波クロック処理部１０４ｂは、第３のクロック信号３ＣＬＫのエッジ検出に基づいて動作する。
【０１３３】
また、図８に示される第２の低周波クロック処理部１０８ｂは、図５における第２の低周波クロック処理部１０８ａと同様に第５のクロック信号５ＣＬＫのエッジ検出に基づいて動作するが、第１のクロック停止許可信号１ＣＳＴ−ＳＩＧと第２のクロック停止許可信号２ＣＳＴ−ＳＩＧに対応して動作する２段直列フリップフロップのクロック入力（ＣＫ）の動作エッジの向きが異なる。
【０１３４】
図８の第１の高周波クロック処理部１０３と第２の高周波クロック処理部１０７の構成と動作は、それぞれ図５に示される場合と同一であり、第１の高周波クロック処理部１０３は、第２のクロック信号２ＣＬＫのエッジ検出に基づいて動作し、第２の高周波クロック処理部１０７は第４のクロック信号４ＣＬＫのエッジ検出に基づいて動作する。
【０１３５】
図９には、比較的周波数が高いクロック信号である第２のクロック信号２ＣＬＫと比較的周波数が低いクロック信号である第５のクロック信号５ＣＬＫが供給されている場合の動作タイミングが示される。
【０１３６】
図８と図９を参照して動作を説明する。以下の説明で、時刻Ｔ２、Ｔ３、Ｔ５は図９中に示す各時刻に対応する。また、フリップフロップ８０１〜８０６、８１０〜８１７の出力信号の初期状態は非アクティブ状態（論理レベルのロー）であるとする。つまり、第１の検出信号１ＤＥＴ−ＳＩＧ、第２の検出信号２ＤＥＴ−ＳＩＧ、第３の検出信号３ＤＥＴ−ＳＩＧ、第１のクロック停止許可信号１ＣＳＴ−ＳＩＧ、第２のクロック停止許可信号２ＣＳＴ−ＳＩＧ、第４の検出信号４ＤＥＴ−ＳＩＧ、第５の検出信号５ＤＥＴ−ＳＩＧ、第６の検出信号６ＤＥＴ−ＳＩＧ、第７の検出信号７ＤＥＴ−ＳＩＧ、クロック再開許可信号Ｃ−ＲＥＳ−ＳＩＧの初期状態は全て非アクティブ状態である。
【０１３７】
時刻Ｔ２では、外部から供給される切り替えトリガ信号ＳＴ−ＳＩＧが非アクティブ状態（論理レベルのロー）からアクティブ状態（論理レベルのハイ）に変化する。これにより、切り替え前クロック処理部１０２ｂが処理を開始する。
【０１３８】
時刻Ｔ３では、切り替えトリガ信号ＳＴ−ＳＩＧの状態の変化が、第１の高周波クロック処理部１０３内のフリップフロップ８０１、８０２によって、第２のクロック信号２ＣＬＫの２回の立下りエッジを経て第２のクロック信号２ＣＬＫの立下りエッジに同期化され、フリップフロップ８０２の出力信号である第１の検出信号１ＤＥＴ−ＳＩＧが非アクティブ状態（論理レベルのロー）からアクティブ状態（論理レベルのハイ）に変化する。これにより、ＯＲ回路１０５の出力信号である第１のクロック停止許可信号１ＣＳＴ−ＳＩＧが非アクティブ状態（論理レベルのロー）からアクティブ状態（論理レベルのハイ）に変化する。また、切り替え後クロック処理部１０６ｂが処理を開始する。
【０１３９】
時刻Ｔ５では、第１のクロック停止許可信号１ＣＳＴ−ＳＩＧの状態の変化が、第２の低周波クロック処理部１０８ｂ内のフリップフロップ８１４、８１５によって、第５のクロック信号５ＣＬＫの立上りエッジとこれに続く立下りエッジを経て第５のクロック信号５ＣＬＫの立下りエッジに同期化され、フリップフロップ８１５の出力信号である第６の検出信号６ＤＥＴ−ＳＩＧが非アクティブ状態からアクティブ状態に変化する。これにより、ＯＲ回路１０９の出力信号であるクロック再開許可信号Ｃ−ＲＥＳ−ＳＩＧが非アクティブ状態（論理レベルのロー）からアクティブ状態（論理レベルのハイ）に変化する。
【０１４０】
図１０には、比較的周波数が低いクロック信号である第３のクロック信号３ＣＬＫと比較的周波数が高いクロック信号である第４のクロック信号４ＣＬＫが供給される場合の動作タイミングが示される。
【０１４１】
図８と図１０を参照して、この場合の動作を説明する。以下の説明で、時刻Ｔ２、Ｔ２．５、Ｔ３、Ｔ５は図１０中に示す各時刻に対応する。また、フリップフロップ８０１〜８０６、８１０〜８１７の出力信号の初期状態は非アクティブ状態（論理レベルのロー）とする。つまり第１の検出信号１ＤＥＴ−ＳＩＧ、第２の検出信号２ＤＥＴ−ＳＩＧ、第３の検出信号３ＤＥＴ−ＳＩＧ、第１のクロック停止許可信号１ＣＳＴ−ＳＩＧ、第２のクロック停止許可信号２ＣＳＴ−ＳＩＧ、第４の検出信号４ＤＥＴ−ＳＩＧ、第５の検出信号５ＤＥＴ−ＳＩＧ、第６の検出信号６ＤＥＴ−ＳＩＧ、第７の検出信号７ＤＥＴ−ＳＩＧ、クロック再開許可信号Ｃ−ＲＥＳ−ＳＩＧの初期状態は全て非アクティブ状態である。
【０１４２】
時刻Ｔ２では外部から供給される切り替えトリガ信号ＳＴ−ＳＩＧが非アクティブ状態（論理レベルのロー）からアクティブ状態（論理レベルのハイ）に変化する。これにより、切り替え前クロック処理部１０２ｂが処理を開始する。
【０１４３】
時刻Ｔ２．５では、切り替えトリガ信号ＳＴ−ＳＩＧの状態の変化が、第１の低周波クロック処理部１０４ｂ内のフリップフロップ８０５によって、第３のクロック信号３ＣＬＫの立上りエッジに同期化され、フリップフロップ８０５の出力信号（Ｆ／Ｆ８０５ＯＵＴ）が非アクティブ状態（論理レベルのロー）からアクティブ状態（論理レベルのハイ）に変化する。
【０１４４】
時刻Ｔ３では、時刻Ｔ２．５で第３のクロック信号３ＣＬＫの立上りエッジが到来してから、所定の時間（図１０中のＤ４）が経過した後、遅延回路８０７の出力信号（ＤＬＹ８０７ＯＵＴ）が論理レベルのローから論理レベルのハイに変化する。これによりフリップフロップ８０５の出力信号の状態の変化が、フリップフロップ８０６で第３のクロック信号３ＣＬＫの立上りエッジよりもＤ４だけ遅れた時間に再同期化され、フリップフロップ８０６の出力信号である第３の検出信号３ＤＥＴ−ＳＩＧが非アクティブ状態からアクティブ状態（論理レベルのハイ）に変化し、第２のクロック停止許可信号２ＣＳＴ−ＳＩＧが非アクティブ状態からアクティブ状態（論理レベルのハイ）に変化する。ここで、時間Ｄ４は第３のクロック信号３ＣＬＫの１周期時間に比べて極めて短い時間であり、第２のクロック停止許可信号２ＣＳＴ−ＳＩＧは第３のクロック信号３ＣＬＫの立上りエッジに同期してアクティブ状態に変化したと見なせるものとする。また、切り替え後クロック処理部１０６ｂが処理を開始する。
【０１４５】
時刻Ｔ５では、第２のクロック停止許可信号２ＣＳＴ−ＳＩＧの状態の変化が、第２の高周波クロック処理部１０７内のフリップフロップ８１２、８１３によって、第４のクロック信号４ＣＬＫの２回の立上りエッジを経て第４のクロック信号４ＣＬＫの立上りエッジに同期化され、フリップフロップ８１３の出力信号である第５の検出信号５ＤＥＴ−ＳＩＧが非アクティブ状態からアクティブ状態（論理レベルのハイ）に変化する。これにより、ＯＲ回路１０９の出力信号であるクロック再開許可信号Ｃ−ＲＥＳ−ＳＩＧが非アクティブ状態（論理レベルのロー）からアクティブ状態（論理レベルのハイ）に変化する。
【０１４６】
時刻Ｔ２．５と時刻Ｔ３の第１の低周波クロック処理部１０４ｂの説明において、仮に時刻Ｔ２で切り替えトリガ信号ＳＴ−ＳＩＧがアクティブ状態になった後に、第３のクロック信号３ＣＬＫの立上りエッジよりも先に立下りエッジが到来した場合は次のようになる。
【０１４７】
すなわち、時刻Ｔ２．５において、切り替えトリガ信号ＳＴ−ＳＩＧの状態の変化が、フリップフロップ８０５ではなくフリップフロップ８０３によって、第３のクロック信号３ＣＬＫの立下りエッジに同期化され、フリップフロップ８０３の出力信号（Ｆ／Ｆ８０３ＯＵＴ）が非アクティブ状態（論理レベルのロー）からアクティブ状態（論理レベルのハイ）に変化する。更に、時刻Ｔ３において、先の第３のクロック信号３ＣＬＫの立下りエッジが到来してから所定の時間（Ｄ４）が経過した後、遅延回路８０７の出力信号が論理レベルのハイから論理レベルのローに変化する。これによって、フリップフロップ８０３の出力信号の状態の変化が、フリップフロップ８０４で第３のクロック信号３ＣＬＫの立下りエッジよりもＤ４だけ遅れた時間に再同期化され、フリップフロップ８０４の出力信号である第２の検出信号２ＤＥＴ−ＳＩＧが非アクティブ状態からアクティブ状態（論理レベルのハイ）に変化する。そして、ＯＲ回路１０５の出力信号である第１のクロック停止許可信号１ＣＳＴ−ＳＩＧが非アクティブ状態（論理レベルのロー）からアクティブ状態（論理レベルのハイ）に変化する。ここで、先に述べたように、時間Ｄ４は第３のクロック信号３ＣＬＫの１周期時間に比べて極めて短い時間であり、第１のクロック停止許可信号１ＣＳＴ−ＳＩＧは第３のクロック信号３ＣＬＫの立下りエッジに同期してアクティブ状態に変化したと見なせるものとする。
【０１４８】
以上の説明のように、第１の高周波クロック処理部１０３は第２のクロック信号２ＣＬＫのエッジ検出に基づいて動作し、第１の低周波クロック処理部１０４ｂは第３のクロック信号３ＣＬＫのエッジ検出に基づいて動作し、第２の高周波クロック処理部１０７は第４のクロック信号４ＣＬＫのエッジ検出に基づいて動作し、第２の低周波クロック処理部１０８ｂは第５のクロック信号５ＣＬＫのエッジ検出に基づいて動作する。
【０１４９】
そして、切り替え前クロック処理部１０２ｂが第２のクロック信号２ＣＬＫに基づいて動作した場合は、第１のクロック停止許可信号１ＣＳＴ−ＳＩＧが第２のクロック信号２ＣＬＫの立下りエッジに同期して非アクティブ状態からアクティブ状態に変化する。切り替え前クロック処理部１０２ｂが第３のクロック信号３ＣＬＫに基づいて動作した場合は、第１のクロック停止許可信号１ＣＳＴ−ＳＩＧまたは第２のクロック停止許可信号２ＣＳＴ−ＳＩＧが、第３のクロック信号３ＣＬＫの立下りエッジまたは立上りエッジの早い方に同期して非アクティブ状態からアクティブ状態に変化する。切り替え後クロック処理部１０６ｂは第１のクロック停止許可信号１ＣＳＴ−ＳＩＧがアクティブ状態になったか、第２のクロック停止許可信号２ＣＳＴ−ＳＩＧがアクティブ状態になったかによって、同期化を行うクロックエッジの向きを変えてクロック再開許可信号Ｃ−ＲＥＳ−ＳＩＧをアクティブ状態に変える。
【０１５０】
第１の高周波クロック処理部１０３、第２の高周波クロック処理部１０７、第２の低周波クロック処理部１０８ｂにおける出力クロック信号ＣＫＯＵＴのグリッチ対策とフリップフロップのメタステーブル対策に関しては、実施の形態４で述べた内容と同じである。
【０１５１】
第１の低周波クロック処理部１０４ｂにおいても出力クロック信号ＣＫＯＵＴのグリッチ対策のために、切り替えトリガ信号ＳＴ−ＳＩＧの状態の変化をフリップフロップを使って第３のクロック信号３ＣＬＫに同期化する。ここではフリップフロップのメタステーブル対策のために、２段直列接続したフリップフロップ構成に加えて遅延回路８０７が使われる。遅延回路８０７の役割は、第３のクロック信号３ＣＬＫのエッジが到来し、これが１段目のフリップフロップ８０３、８０５のクロック入力（ＣＫ）に入力されてから、到来したエッジタイミングをメタステーブル現象が安定するまで所定の時間（図１０中のＤ４）だけ遅らせてから２段目のフリップフロップ８０４、８０６に供給することである。第１の低周波クロック処理部１０４ｂに入力される第３のクロック信号３ＣＬＫは低周波であるため、その１周期時間はメタステーブル現象の安定化に要する時間に比べて極めて長いと考えられる。そのため、１段目のフリップフロップと２段目のフリップフロップの動作間隔をクロックの１周期時間分だけ確保する必要はなく、上記の所定の遅延時間（Ｄ４）をメタステーブル現象の安定化に要する時間よりも多少長く取るだけで、第１のクロック停止許可信号１ＣＳＴ−ＳＩＧと第２のクロック許可信号にメタステーブル現象の影響が伝搬することを防ぐことが可能になる。これにより、クロック切り替えの際に不要に長い待機時間が発生することを回避することができ、高速なクロック切り替えが可能になる。
【０１５２】
ここで、低周波クロック信号が入力される第２の低周波クロック処理部１０８ｂの方で上記のような遅延回路を使ったメタステーブル対策を行わないのは、第１の低周波クロック処理部１０４ｂの方は切り替え前クロックを使った処理を行うのに対して、第２の低周波クロック処理部１０８ｂの方は切り替え後クロックを使った処理を行うという違いのためである。つまり、切り替え後のクロック信号が低周波の場合は、元々、切り替え後のクロックスピードが遅いため、あまり高速な切り替えが要求されないので、遅延回路の数を減らし少しでも回路規模を低減させたほうがよい。
【０１５３】
また、第１の高周波クロック処理部１０３に、第１の低周波クロック処理部１０４ｂで行ったクロックの両エッジ検出を使った高速化手法を適用しないのは、高周波クロックの処理は元々高速なのでメリットが少ないため、不必要な回路規模の増大を避けるためである。
【０１５４】
次にＯＲ回路８０８と８０９について説明する。ＯＲ回路８０８は、第１の高周波クロック処理部１０３内のフリップフロップ８０１、８０２と第１の低周波クロック処理部１０４ｂ内のフリップフロップ８０３、８０４に入力するリセット信号を生成する目的で使われる。具体的には、第１の低周波クロック処理部１０４ｂ内のフリップフロップ８０５、８０６が動作して、第３の検出信号３ＤＥＴ−ＳＩＧ（第２のクロック停止許可信号２ＣＳＴ−ＳＩＧ）がアクティブ状態（論理レベルのハイ）になったときにフリップフロップ８０１、８０２、８０３、８０４へリセット信号を印加して、これらの出力信号を非アクティブ状態（論理レベルのロー）に固定する。これによって、第２のクロック停止許可信号２ＣＳＴ−ＳＩＧがアクティブ状態になったときに、誤って第１のクロック停止許可信号１ＣＳＴ−ＳＩＧがアクティブ状態になるのを防止することができる。逆に、ＯＲ回路８０９は、第１の低周波クロック処理部１０４ｂ内のフリップフロップ８０５、８０６に入力するリセット信号を生成する目的で使われる。
【０１５５】
具体的には、第１の高周波クロック処理部１０３または第１の低周波クロック処理部１０４ｂ内のフリップフロップ８０３、８０４が動作して、第１の検出信号１ＤＥＴ−ＳＩＧまたは第２の検出信号２ＤＥＴ−ＳＩＧ（第１のクロック停止許可信号１ＣＳＴ−ＳＩＧ）がアクティブ状態になったときにフリップフロップ８０５、８０６へリセット信号を印加して、これらの出力信号を非アクティブ状態（論理レベルのロー）に固定する。これによって、第１のクロック停止許可信号１ＣＳＴ−ＳＩＧがアクティブ状態になったときに、誤って第２のクロック停止許可信号２ＣＳＴ−ＳＩＧがアクティブ状態になるのを防止することができる。
【０１５６】
＜実施の形態６＞
図１１には、図２に示される選択型クロック制御信号生成回路２０１の具体的な回路構成例が示される。
【０１５７】
図１１に示される選択型クロック制御信号生成回路２０１ａは、第１のクロック選択部２０２ａと第２のクロック選択部２０３とクロック制御信号生成回路１０１ａから成る。
【０１５８】
更に、第１のクロック選択部２０２ａは、マルチプレクサ（Ｍｕｘ）１１０１と１１０４、ＯＲ回路１１０２と１１０３、ＡＮＤ回路１１０５と１１０６、遅延時間Ｄ５の遅延回路１１０７、マルチプレクサ（Ｍｕｘ）１１０８から成り、第２のクロック選択部２０３は、マルチプレクサ（Ｍｕｘ）１１０９と１１１２、ＯＲ回路１１１０と１１１１、ＡＮＤ回路１１１３と１１１４から成る。
【０１５９】
選択型クロック制御信号生成回路２０１ａに入力される信号と、選択型クロック制御信号生成回路２０１ａから出力される信号は、実施の形態２で説明した内容と同じである。
【０１６０】
図１２には、第１のクロック選択部２０２ａの動作を説明する真理値表が示される。
【０１６１】
図１１と図１２を参照して、第１のクロック選択部２０２ａの動作を説明する。
【０１６２】
ＯＲ回路１１０２の出力信号であるＳＣＦ０とＯＲ回路１１０３の出力信号であるＳＣＦ１は、現選択信号〔０〕、現選択信号〔１〕、現選択信号〔２〕の値の組み合わせによって、図１２の真理値表に示す論理レベルを取り、マルチプレクサ１１０１に対して４つの入力（００、０１、１０、１１）のうち、どれを第２のクロック信号２ＣＬＫとして選択出力するか指定する。同様に、ＡＮＤ回路１１０５の出力信号であるＳＣＳ０とＡＮＤ回路１１０６の出力信号であるＳＣＳ１は、現選択信号〔０〕、現選択信号〔１〕、現選択信号〔２〕の値の組み合わせによって、図１２の真理値表に示す論理レベルを取り、マルチプレクサ１１０４に対して４つの入力（００、０１、１０、１１）のうち、どれを第３のクロック信号３ＣＬＫとして選択出力するか指定する。
【０１６３】
３ビットの現選択信号ＣＳＥＬ−ＳＩＧの最上位ビットである現選択信号〔２〕が論理値“０”であるとき、ＳＣＦ０の値は現選択信号ＣＳＥＬ−ＳＩＧ〔０〕の値と等しくなり、ＳＣＦ１の値は現選択信号ＣＳＥＬ−ＳＩＧ〔１〕の値と等しくなる。一方、現選択信号ＣＳＥＬ−ＳＩＧ〔２〕が論理値“１”であるときは、ＳＣＦ０とＳＣＦ１は共に論理値“１”になる。
【０１６４】
３ビットの現選択信号の最上位ビットである現選択信号ＣＳＥＬ−ＳＩＧ〔２〕が論理値“１”であるとき、ＳＣＳ０の値は現選択信号ＣＳＥＬ−ＳＩＧ〔０〕の値と等しくなり、ＳＣＳ１の値は現選択信号ＣＳＥＬ−ＳＩＧ〔１〕の値と等しくなる。一方、現選択信号ＣＳＥＬ−ＳＩＧ〔２〕が論理値“０”であるときは、ＳＣＳ０とＳＣＳ１は共に論理値“１”になる。結果としてこの実施の形態では、マルチプレクサ１１０１の出力信号である第２のクロック信号２ＣＬＫと、マルチプレクサ１１０４の出力信号である第３のクロック信号３ＣＬＫは、図１２の真理値表に示されるように選択出力される。そして現選択信号ＣＳＥＬ−ＳＩＧの最上位ビット（現選択信号ＣＳＥＬ−ＳＩＧ〔２〕）が論理値“０”であるとき、高周波クロックのグループからのクロック選択が指示されていることを意味し、第２のクロック信号２ＣＬＫからは選択された入力クロック信号の供給が行われ、第３のクロック信号３ＣＬＫは論理レベルのロー（ＧＮＤ）に固定されクロック供給がなされない。反対に、現選択信号ＣＳＥＬ−ＳＩＧの最上位ビット（現選択信号ＣＳＥＬ−ＳＩＧ〔２〕）が論理値“１”であるときは、低周波クロックのグループからのクロック選択が指示されていることを意味し、第３のクロック信号３ＣＬＫからは選択された入力クロック信号のクロック供給が行われ、第２のクロック信号２ＣＬＫは論理レベルのロー（ＧＮＤ）に固定されクロック供給がなされない。
【０１６５】
マルチプレクサ１１０８には、第２のクロック信号２ＣＬＫと、第３のクロック信号３ＣＬＫを所定の時間（Ｄ５）だけ遅延させた信号が入力され、マルチプレクサ１１０８の出力信号である第１のクロック信号１ＣＬＫからは、図１２の真理値表に示すように、現選択信号ＣＳＥＬ−ＳＩＧ〔２〕の値が論理値“０”で高周波クロックのグループが選択されている場合は、第２のクロック信号２ＣＬＫとして選択されている入力クロック信号が出力される。現選択信号ＣＳＥＬ−ＳＩＧ〔２〕の値が論理値“１”で低周波クロックのグループが選択されている場合は、第３のクロック信号３ＣＬＫとして選択されている入力クロック信号が所定の時間Ｄ５だけ遅延されて出力される。図１２中の記号（Ｄ）は元々のクロック信号に対して所定の遅延時間Ｄ５を有する信号であることを意味する。
【０１６６】
図１３には、第２のクロック選択部２０３の動作を説明する真理値表が示される。
【０１６７】
図１１と図１３を参照して、第２のクロック選択部２０３の動作を説明する。
【０１６８】
ＯＲ回路１１１０の出力信号であるＳＮＦ０とＯＲ回路１１１１の出力信号であるＳＮＦ１は、第２のクロック選択部Ｅｎ信号２ＣＬＫＥＮ−ＳＩＧと新選択信号ＮＳＥＬ−ＳＩＧ〔０〕、新選択信号ＮＳＥＬ−ＳＩＧ〔１〕、新選択信号ＮＳＥＬ−ＳＩＧ〔２〕の値の組み合わせによって、図１３の真理値表に示す論理レベルを取る。そして、マルチプレクサ１１０９に対して４つの入力（００、０１、１０、１１）のうち、どれを第４のクロック信号４ＣＬＫとして選択出力するか指定する。同様に、ＡＮＤ回路１１１３の出力信号であるＳＮＳ０とＡＮＤ回路１１１４の出力信号であるＳＮＳ１は、第２のクロック選択部Ｅｎ信号２ＣＬＫＥＮ−ＳＩＧと新選択信号ＮＳＥＬ−ＳＩＧ〔０〕、新選択信号ＮＳＥＬ−ＳＩＧ〔１〕、新選択信号ＮＳＥＬ−ＳＩＧ〔２〕の値の組み合わせによって、図１３の真理値表に示す論理レベルを取る。そして、マルチプレクサ１１１２に対して４つの入力（００、０１、１０、１１）のうち、どれを第５のクロック信号５ＣＬＫとして選択出力するか指定する。尚、第２のクロック選択部Ｅｎ信号２ＣＬＫＥＮ−ＳＩＧが論理値“０”の場合、新選択信号ＮＳＥＬ−ＳＩＧ〔０〕、新選択信号ＮＳＥＬ−ＳＩＧ〔１〕、新選択信号ＮＳＥＬ−ＳＩＧ〔２〕の論理値は意味をなさない（これを「Ｘ」で示す）。
【０１６９】
第２のクロック選択部Ｅｎ信号２ＣＬＫＥＮ−ＳＩＧが論理値“１”で、且つ３ビットの新選択信号ＮＳＥＬ−ＳＩＧの最上位ビットである新選択信号ＮＳＥＬ−ＳＩＧ〔２〕が論理値“０”であるとき、ＳＮＦ０の値は新選択信号ＮＳＥＬ−ＳＩＧ〔０〕の値と等しくなり、ＳＮＦ１の値は新選択信号ＮＳＥＬ−ＳＩＧ〔１〕の値と等しくなる。一方、第２のクロック選択部Ｅｎ信号２ＣＬＫＥＮ−ＳＩＧが論理値“１”で、且つ新選択信号ＮＳＥＬ−ＳＩＧ〔２〕が論理値“１”であるときは、ＳＮＦ０とＳＮＦ１は共に論理値“１”になる。
【０１７０】
第２のクロック選択部Ｅｎ信号２ＣＬＫＥＮ−ＳＩＧが論理値“１”で、且つ３ビットの新選択信号ＮＳＥＬ−ＳＩＧの最上位ビットである新選択信号ＮＳＥＬ−ＳＩＧ〔２〕が論理値“１”であるとき、ＳＮＳ０の値は新選択信号ＮＳＥＬ−ＳＩＧ〔０〕の値と等しくなり、ＳＮＳ１の値は新選択信号ＮＳＥＬ−ＳＩＧ〔１〕の値と等しくなる。一方、第２のクロック選択部Ｅｎ信号２ＣＬＫＥＮ−ＳＩＧが論理値“１”で、且つ新選択信号ＮＳＥＬ−ＳＩＧ〔２〕が論理値“０”であるときは、ＳＮＳ０とＳＮＳ１は共に論理値“１”になる。
【０１７１】
第２のクロック選択部Ｅｎ信号２ＣＬＫＥＮ−ＳＩＧが論理値“０”であるときは、新選択信号ＮＳＥＬ−ＳＩＧ〔０〕から新選択信号ＮＳＥＬ−ＳＩＧ〔２〕の値に関わらず、ＳＮＦ０、ＳＮＦ１、ＳＮＳ０、ＳＮＳ１は全て論理値“１”になる。
【０１７２】
結果としてこの実施の形態では、マルチプレクサ１１０９の出力信号である第４のクロック信号４ＣＬＫと、マルチプレクサ１１１２の出力信号である第５のクロック信号５ＣＬＫは、図１３の真理値表に示すように選択出力される。第２のクロック選択部Ｅｎ信号２ＣＬＫＥＮ−ＳＩＧが論理値“１”で、且つ新選択信号ＮＳＥＬ−ＳＩＧの最上位ビット（新選択信号ＮＳＥＬ−ＳＩＧ〔２〕）が論理値“０”であるとき、高周波クロックのグループからのクロック選択が指示されていることを意味し、第４のクロック信号４ＣＬＫからは選択された入力クロック信号の供給が行われ、第５のクロック信号５ＣＬＫは論理レベルのロー（ＧＮＤ）に固定されクロック供給がなされない。反対に、第２のクロック選択部Ｅｎ信号２ＣＬＫＥＮ−ＳＩＧが論理値“１”で、且つ新選択信号ＮＳＥＬ−ＳＩＧの最上位ビット（新選択信号ＮＳＥＬ−ＳＩＧ〔２〕）が論理値“１”であるときは、低周波クロックのグループからのクロック選択が指示されていることを意味し、第５のクロック信号５ＣＬＫからは選択された入力クロック信号のクロック供給が行われる。このとき第４のクロック信号４ＣＬＫは論理レベルのロー（ＧＮＤ）に固定されクロック供給がなされない。また、第２のクロック選択部Ｅｎ信号２ＣＬＫＥＮ−ＳＩＧが論理値“０”であるときは、第４のクロック信号４ＣＬＫと第５のクロック信号５ＣＬＫは共に論理レベルのロー（ＧＮＤ）に固定され、第２のクロック選択部２０３からのクロック出力は停止される。これによりクロック切り替えを行わない通常動作時には、クロック制御信号生成回路１０１ａ内への不要なクロック供給を止めて、電力消費を抑えることができる。
【０１７３】
尚、第１のクロック選択部２０２ａの出力信号である第２のクロック信号２ＣＬＫと第３のクロック信号３ＣＬＫに対しても、これら２つのクロック信号をマスクする回路を設けることによって、クロック切り替えを行わない通常動作時はクロック制御信号生成回路１０１ａ内への不要なクロック供給を止めて、電力消費を抑えることが可能である。
【０１７４】
クロック制御信号生成回路１０１ａは、実施の形態４で説明した図５のクロック制御信号生成回路１０１ａと同一の構成で同一の動作を行う。
【０１７５】
＜実施の形態７＞
図１４には、図２に示される選択型クロック制御信号生成回路２０１の他の具体的な回路構成例が示される。
【０１７６】
図１４に示される選択型クロック制御信号生成回路２０１ｂは、第１のクロック選択部２０２ｂと第２のクロック選択部２０３とクロック制御信号生成回路（Ｃ−ＣＮＴ−ＧＥＮ）１０１ｂを含んで成る。
【０１７７】
更に、第１のクロック選択部２０２ｂは、マルチプレクサ（Ｍｕｘ）１４０１と１４０４、ＯＲ回路１４０２と１４０３、ＡＮＤ回路１４０５と１４０６、マルチプレクサ（Ｍｕｘ）１４０７を含んで成り、第２のクロック選択部２０３は、マルチプレクサ（Ｍｕｘ）１４０８と１４１１、ＯＲ回路１４０９と１４１０、ＡＮＤ回路１４１２と１４１３を含んで成る。
【０１７８】
選択型クロック制御信号生成回路２０１ｂに入力される信号と、選択型クロック制御信号生成回路２０１ｂから出力される信号は、実施の形態２で説明した内容と同じである。
【０１７９】
図１５には、第１のクロック選択部２０２ｂの動作を説明する真理値表が示される。
【０１８０】
図１４と図１５を参照して、第１のクロック選択部２０２ｂの動作を説明する。
【０１８１】
ＯＲ回路１４０２の出力信号であるＳＣＦ０とＯＲ回路１４０３の出力信号であるＳＣＦ１は、現選択信号ＣＳＥＬ−ＳＩＧ〔０〕、現選択信号ＣＳＥＬ−ＳＩＧ〔１〕、現選択信号ＣＳＥＬ−ＳＩＧ〔２〕の値の組み合わせによって、図１５の真理値表に示す論理レベルを取り、マルチプレクサ１４０１に対して４つの入力（００、０１、１０、１１）のうち、どれを第２のクロック信号２ＣＬＫとして選択出力するか指定する。同様に、ＡＮＤ回路１４０５の出力信号であるＳＣＳ０とＡＮＤ回路１４０６の出力信号であるＳＣＳ１は、現選択信号ＣＳＥＬ−ＳＩＧ〔０〕、現選択信号ＣＳＥＬ−ＳＩＧ〔１〕、現選択信号ＣＳＥＬ−ＳＩＧ〔２〕の値の組み合わせによって、図１５の真理値表に示す論理レベルを取り、マルチプレクサ１４０４に対して４つの入力（００、０１、１０、１１）のうち、どれを第３のクロック信号３ＣＬＫとして選択出力するか指定する。
【０１８２】
３ビットの現選択信号ＣＳＥＬ−ＳＩＧの最上位ビットである現選択信号ＣＳＥＬ−ＳＩＧ〔２〕が論理値“０”であるとき、ＳＣＦ０の値は現選択信号ＣＳＥＬ−ＳＩＧ〔０〕の値と等しくなり、ＳＣＦ１の値は現選択信号ＣＳＥＬ−ＳＩＧ〔１〕の値と等しくなる。一方、現選択信号ＣＳＥＬ−ＳＩＧ〔２〕が論理値“１”であるときは、ＳＣＦ０とＳＣＦ１は共に論理値“１”になる。
【０１８３】
３ビットの現選択信号ＣＳＥＬ−ＳＩＧの最上位ビットである現選択信号ＣＳＥＬ−ＳＩＧ〔２〕が論理値“１”であるとき、ＳＣＳ０の値は現選択信号ＣＳＥＬ−ＳＩＧ〔０〕の値と等しくなり、ＳＣＳ１の値は現選択信号ＣＳＥＬ−ＳＩＧ〔１〕の値と等しくなる。一方、現選択信号ＣＳＥＬ−ＳＩＧ〔２〕が論理値“０”であるときは、ＳＣＳ０とＳＣＳ１は共に論理値“１”になる。
【０１８４】
結果としてこの実施の形態では、マルチプレクサ１４０１の出力信号である第２のクロック信号２ＣＬＫと、マルチプレクサ１４０４の出力信号である第３のクロック信号３ＣＬＫは、図１５の真理値表に示すように選択出力される。現選択信号ＣＳＥＬ−ＳＩＧの最上位ビット（現選択信号ＣＳＥＬ−ＳＩＧ〔２〕）が論理値“０”であるとき、高周波クロックのグループからのクロック選択が指示されていることを意味し、第２のクロック信号２ＣＬＫからは選択された入力クロック信号の供給が行われ、第３のクロック信号３ＣＬＫは論理レベルのロー（ＧＮＤ）に固定されクロック供給がなされない。反対に、現選択信号ＣＳＥＬ−ＳＩＧの最上位ビット（現選択信号ＣＳＥＬ−ＳＩＧ〔２〕）が論理値“１”であるときは、低周波クロックのグループからのクロック選択が指示されていることを意味し、第３のクロック信号３ＣＬＫからは選択された入力クロック信号のクロック供給が行われ、第２のクロック信号２ＣＬＫは論理レベルのロー（ＧＮＤ）に固定されクロック供給がなされない。
【０１８５】
マルチプレクサ１４０７には、第２のクロック信号２ＣＬＫと第３のクロック信号３ＣＬＫが入力される。マルチプレクサ１４０７の出力信号である第１のクロック信号１ＣＬＫからは、図１５の真理値表に示すように、現選択信号ＣＳＥＬ−ＳＩＧ〔２〕の値が論理値“０”で高周波クロックのグループが選択されている場合は、第２のクロック信号２ＣＬＫとして選択されている入力クロック信号が出力され、現選択信号ＣＳＥＬ−ＳＩＧ〔２〕の値が論理値“１”で低周波クロックのグループが選択されている場合は、第３のクロック信号３ＣＬＫとして選択されている入力クロック信号が出力される。
【０１８６】
図１６には、第２のクロック選択部２０３の動作を説明する真理値表が示される。
【０１８７】
図１４と図１６を参照して、第２のクロック選択部２０３の動作を説明する。
【０１８８】
ＯＲ回路１４０９の出力信号であるＳＮＦ０とＯＲ回路１４１０の出力信号であるＳＮＦ１は、第２のクロック選択部Ｅｎ信号２ＣＬＫＥＮ−ＳＩＧと新選択信号ＮＳＥＬ−ＳＩＧ〔０〕、新選択信号ＮＳＥＬ−ＳＩＧ〔１〕、新選択信号ＮＳＥＬ−ＳＩＧ〔２〕の値の組み合わせによって、図１６の真理値表に示す論理レベルを取る。このとき、マルチプレクサ１４０８に対して４つの入力（００、０１、１０、１１）のうち、どれを第４のクロック信号４ＣＬＫとして選択出力するか指定する。同様に、ＡＮＤ回路１４１２の出力信号であるＳＮＳ０とＡＮＤ回路１４１３の出力信号であるＳＮＳ１は、第２のクロック選択部Ｅｎ信号２ＣＬＫＥＮ−ＳＩＧと新選択信号ＮＳＥＬ−ＳＩＧ〔０〕、新選択信号ＮＳＥＬ−ＳＩＧ〔１〕、新選択信号ＮＳＥＬ−ＳＩＧ〔２〕の値の組み合わせによって、図１６の真理値表に示す論理レベルを取る。そしてマルチプレクサ１４１１に対して４つの入力（００、０１、１０、１１）のうち、どれを第５のクロック信号５ＣＬＫとして選択出力するか指定する。
【０１８９】
第２のクロック選択部Ｅｎ信号２ＣＬＫＥＮ−ＳＩＧが論理値“１”で、且つ３ビットの新選択信号ＮＳＥＬ−ＳＩＧの最上位ビットである新選択信号ＮＳＥＬ−ＳＩＧ〔２〕が論理値“０”であるとき、ＳＮＦ０の値は新選択信号ＮＳＥＬ−ＳＩＧ〔０〕の値と等しくなり、ＳＮＦ１の値は新選択信号ＮＳＥＬ−ＳＩＧ〔１〕の値と等しくなる。一方、第２のクロック選択部Ｅｎ信号２ＣＬＫＥＮ−ＳＩＧが論理値“１”で、且つ新選択信号ＮＳＥＬ−ＳＩＧ〔２〕が論理値“１”であるときは、ＳＮＦ０とＳＮＦ１は共に論理値“１”になる。
【０１９０】
第２のクロック選択部Ｅｎ信号２ＣＬＫＥＮ−ＳＩＧが論理値“１”で、且つ３ビットの新選択信号ＮＳＥＬ−ＳＩＧの最上位ビットである新選択信号ＮＳＥＬ−ＳＩＧ〔２〕が論理値“１”であるとき、ＳＮＳ０の値は新選択信号ＮＳＥＬ−ＳＩＧ〔０〕の値と等しくなり、ＳＮＳ１の値は新選択信号ＮＳＥＬ−ＳＩＧ〔１〕の値と等しくなる。一方、第２のクロック選択部Ｅｎ信号２ＣＬＫＥＮ−ＳＩＧが論理値“１”で、且つ新選択信号ＮＳＥＬ−ＳＩＧ〔２〕が論理値“０”であるときは、ＳＮＳ０とＳＮＳ１は共に論理値“１”になる。
【０１９１】
第２のクロック選択部Ｅｎ信号２ＣＬＫＥＮ−ＳＩＧが論理値“０”であるときは、新選択信号ＮＳＥＬ−ＳＩＧ〔０〕から新選択信号ＮＳＥＬ−ＳＩＧ〔２〕の値に関わらず、ＳＮＦ０、ＳＮＦ１、ＳＮＳ０、ＳＮＳ１の値は全て論理値“１”になる。
【０１９２】
結果としてこの実施の形態では、マルチプレクサ１４０８の出力信号である第４のクロック信号４ＣＬＫと、マルチプレクサ１４１１の出力信号である第５のクロック信号５ＣＬＫは、図１６の真理値表に示すように選択出力される。第２のクロック選択部Ｅｎ信号２ＣＬＫＥＮ−ＳＩＧが論理値“１”で、且つ新選択信号ＮＳＥＬ−ＳＩＧの最上位ビット（新選択信号ＮＳＥＬ−ＳＩＧ〔２〕）が論理値“０”であるとき、高周波クロックのグループからのクロック選択が指示されていることを意味し、第４のクロック信号４ＣＬＫからは選択された入力クロック信号の供給が行われ、第５のクロック信号５ＣＬＫは論理レベルのロー（ＧＮＤ）に固定されクロック供給がなされない。反対に、第２のクロック選択部Ｅｎ信号２ＣＬＫＥＮ−ＳＩＧが論理値“１”で、且つ新選択信号ＮＳＥＬ−ＳＩＧの最上位ビット（新選択信号ＮＳＥＬ−ＳＩＧ〔２〕）が論理値“１”であるときは、低周波クロックのグループからのクロック選択が指示されていることを意味し、第５のクロック信号５ＣＬＫからは選択された入力クロック信号のクロック供給が行われる。このとき第４のクロック信号４ＣＬＫは論理レベルのロー（ＧＮＤ）に固定されクロック供給がなされない。また、第２のクロック選択部Ｅｎ信号２ＣＬＫＥＮ−ＳＩＧが論理値“０”であるときは、第４のクロック信号４ＣＬＫと第５のクロック信号５ＣＬＫは共に論理レベルのロー（ＧＮＤ）に固定され、第２のクロック選択部２０３からのクロック出力が停止される。これにより、クロック切り替えを行わない通常動作時には、クロック制御信号生成回路１０１ｂ内への不要なクロック供給を止めて、電力消費を抑えることができる。
【０１９３】
尚、第１のクロック選択部２０２ｂの出力信号である第２のクロック信号２ＣＬＫと第３のクロック信号３ＣＬＫに対しても、これら２つのクロック信号をマスクする回路を設けることによって、クロック切り替えを行わない通常動作時はクロック制御信号生成回路１０１ｂ内への不要なクロック供給を止めて、電力消費を抑えることが可能である。
【０１９４】
クロック制御信号生成回路１０１ｂは、実施の形態５で説明した図８のクロック制御信号生成回路１０１ｂと同一の構成で同一の動作を行う。
【０１９５】
＜実施の形態８＞
図１７には、図３に示されるクロックセレクタ３０１の具体的な構成例が示される。
【０１９６】
図１７に示されるクロックセレクタ３０１ａは、選択型クロック制御信号生成回路（ＳＣＣ−ＧＥＮ）２０１ａとゲーティング制御部（Ｇ−ＣＮＴ）１７０１とクロックゲーティング部（Ｃ−ＧＡＴ）１７０２と第１の選択信号保持部（１ＳＥＬ−ＳＴ）１７０３と第２の選択信号保持部（２ＳＥＬ−ＳＴ）１７０４とリセット信号生成部（ＲＥＳＴ−ＧＥＮ）１７０５を含んで成る。
【０１９７】
クロックセレクタ３０１ａには、外部から複数のクロック信号（入力クロック信号ＣＫＩＮ１〜入力クロック信号ＣＫＩＮ６）とｎ＋１ビットのクロック選択信号と切り替えトリガ信号ＳＴ−ＳＩＧと第２のクロック選択部Ｅｎ信号２ＣＬＫＥＮ−ＳＩＧが入力され、クロックセレクタ３０１ａからは、出力クロック信号ＣＫＯＵＴと切り替え実行信号ＳＥＬ−ＲＵＮ−ＳＩＧと第２のリセット信号２ＲＳＴ−ＳＩＧが外部に出力される。これらの信号については実施の形態３の場合と同じである。
【０１９８】
クロック制御信号生成回路２０１ａは、実施の形態６で説明した図１１のクロック制御信号生成回路２０１ａと同一の構成で同一の動作を行う。
【０１９９】
図２１には、ゲーティング制御部１７０１とクロックゲーティング部１７０２の具体的な回路構成の１例が示される。
【０２００】
ゲーティング制御部１７０１はＡＮＤ回路２１０１、２１０２で構成され、クロックゲーティング部１７０２はＡＮＤ回路２１０３とＯＲ回路２１０４で構成される。
【０２０１】
図２２には、ゲーティング制御部１７０１とクロックゲーティング部１７０２の動作を説明する真理値表が示される。
【０２０２】
第１のクロック停止許可信号１ＣＳＴ−ＳＩＧと第２のクロック停止許可信号２ＣＳＴ−ＳＩＧとクロック再開許可信号Ｃ−ＲＥＳ−ＳＩＧは、アクティブ状態で論理レベルのハイ（論理値“１”）とし、非アクティブ状態で論理レベルのロー（論理値“０”）とする。第１のゲーティング制御信号１ＧＡＴ−ＳＩＧは、アクティブ状態で論理レベルのハイ（論理値“１”）とし、非アクティブ状態で論理レベルのロー（論理値“０”）とする。第２のゲーティング制御信号２ＧＡＴ−ＳＩＧは、アクティブ状態が論理レベルのロー（論理値“０”）で、非アクティブ状態で論理レベルのハイ（論理値“１”）とする。
【０２０３】
第１のクロック停止許可信号１ＣＳＴ−ＳＩＧと第２のクロック停止許可信号２ＣＳＴ−ＳＩＧが同時にアクティブ状態になることはなく、第１のゲーティング制御信号１ＧＡＴ−ＳＩＧと第２のゲーティング制御信号２ＧＡＴ−ＳＩＧが同時に非アクティブ状態になることはない。
【０２０４】
図２１と図２２を参照して、第１のゲーティング制御信号１ＧＡＴ−ＳＩＧは、第１のクロック停止許可信号１ＣＳＴ−ＳＩＧがアクティブ状態（論理値“１”）で且つ、クロック再開許可信号Ｃ−ＲＥＳ−ＳＩＧが非アクティブ状態（論理値“０”）のときのみ非アクティブ状態に（論理値“０”）なり、第２のゲーティング制御信号２ＧＡＴ−ＳＩＧは、第２のクロック停止許可信号２ＣＳＴ−ＳＩＧがアクティブ状態（論理値“１”）で且つ、クロック再開許可信号Ｃ−ＲＥＳ−ＳＩＧが非アクティブ状態（論理値“０”）のときのみ非アクティブ状態（論理値“１”）になる。
【０２０５】
また、第１のゲーティング制御信号１ＧＡＴ−ＳＩＧが非アクティブ状態（論理値“０”）で第２のゲーティング制御信号２ＧＡＴ−ＳＩＧがアクティブ状態（論理値“０”）のとき、出力クロック信号ＣＫＯＵＴはローレベル固定（出力クロック停止状態）になる。第１のゲーティング制御信号１ＧＡＴ−ＳＩＧがアクティブ状態（論理値“１”）で第２のゲーティング制御信号２ＧＡＴ−ＳＩＧが非アクティブ状態（論理値“１”）のとき、出力クロック信号ＣＫＯＵＴはハイレベル固定（出力クロック停止状態）になる。第１のゲーティング制御信号１ＧＡＴ−ＳＩＧがアクティブ状態（論理値“１”）で第２のゲーティング制御信号２ＧＡＴ−ＳＩＧがアクティブ状態（論理値“０”）のときのみ、第１のクロック信号１ＣＬＫが出力クロック信号ＣＫＯＵＴとして出力される。上で述べたように、第１のゲーティング制御信号１ＧＡＴ−ＳＩＧが非アクティブ状態（論理値“０”）で第２のゲーティング制御信号２ＧＡＴ−ＳＩＧも非アクティブ状態（論理値“１”）という組み合わせは起こらないように制御される。
【０２０６】
クロック切り替えを行わない通常動作時は、第１のクロック停止許可信号１ＣＳＴ−ＳＩＧ、第２のクロック停止許可信号２ＣＳＴ−ＳＩＧ、クロック再開許可信号Ｃ−ＲＥＳ−ＳＩＧは全て初期状態の非アクティブ状態（論理値“０”）になっている。従って、第１のゲーティング制御信号１ＧＡＴ−ＳＩＧはアクティブ状態（論理値“１”）で且つ、第２のゲーティング制御信号２ＧＡＴ−ＳＩＧはアクティブ状態（論理値“０”）になるため、第１のクロック信号１ＣＬＫが出力クロック信号ＣＫＯＵＴとして出力される。
【０２０７】
図２３には、第１の選択信号保持部１７０３と第２の選択信号保持部１７０４の具体的な回路構成の１例が示される。
【０２０８】
第１の選択信号保持部１７０３はフリップフロップ２３０１、２３０２、２３０３を含んで構成され、第２の選択信号保持部１７０４はＡＮＤ回路２３０４、２３０５とＯＲ回路２３０６と遅延時間Ｄ１の遅延回路（ＤＬＹ）２３０７とラッチ回路２３０８、２３０９、２３１０を含んで構成される。
【０２０９】
第１の選択信号保持部１７０３では、切り替えトリガ信号ＳＴ−ＳＩＧの立上りエッジでクロック選択信号〔０〕、クロック選択信号〔１〕、クロック選択信号〔２〕がフリップフロップ２３０１、２３０２、２３０３にそれぞれサンプリング及び保持され、新選択信号ＮＳＥＬ−ＳＩＧ〔０〕、新選択信号ＮＳＥＬ−ＳＩＧ〔１〕、新選択信号ＮＳＥＬ−ＳＩＧ〔２〕として出力される。
【０２１０】
第２の選択信号保持部１７０４では、ＡＮＤ回路２３０４、２３０５とＯＲ回路２３０６によって、第１のゲーティング制御信号１ＧＡＴ−ＳＩＧが非アクティブ状態で且つ、第２のゲーティング制御信号２ＧＡＴ−ＳＩＧがアクティブ状態のとき、若しくは第１のゲーティング制御信号１ＧＡＴ−ＳＩＧがアクティブ状態で且つ、第２のゲーティング制御信号２ＧＡＴ−ＳＩＧが非アクティブ状態のときに、ＯＲ回路２３０６の出力信号がアクティブ状態になる。その後、遅延回路２３０７で設定された時間が経過した後に切り替え実行信号ＳＥＬ−ＲＵＮ−ＳＩＧが非アクティブ状態（論理値“０”）からアクティブ状態（論理値“１”）に変わる。切り替え実行信号ＳＥＬ−ＲＵＮ−ＳＩＧがアクティブ状態（論理値“１”）になると、新選択信号ＮＳＥＬ−ＳＩＧ〔０〕、新選択信号ＮＳＥＬ−ＳＩＧ〔１〕、新選択信号ＮＳＥＬ−ＳＩＧ〔２〕がラッチ回路２３０８、２３０９、２３１０に保持され、現選択信号ＣＳＥＬ−ＳＩＧ〔０〕、現選択信号ＣＳＥＬ−ＳＩＧ〔１〕、現選択信号ＣＳＥＬ−ＳＩＧ〔２〕として出力される。
【０２１１】
図２４には、図１７におけるリセット信号生成部１７０５の具体的な回路構成例が示される。
【０２１２】
リセット信号生成部１７０５は、インバータ２４０１と遅延時間Ｄ２の遅延回路（ＤＬＹ）２４０２で構成され、クロック再開許可信号Ｃ−ＲＥＳ−ＳＩＧの論理をインバータ２４０１で反転した信号を第１のリセット信号１ＲＳＴ−ＳＩＧとして出力し、第１のリセット信号１ＲＳＴ−ＳＩＧを遅延回路２４０２で所定の時間（Ｄ２）だけ遅延した信号を第２のリセット信号２ＲＳＴ−ＳＩＧとして出力する。
【０２１３】
図１８には、クロック切り替えイベントが発生したときのクロックセレクタ３０１ａの動作を説明するタイミングチャートが示される。このタイミングチャートは、比較的周波数が低いクロック信号から比較的周波数が高いクロック信号へ切り替える場合の例を示している。
【０２１４】
図１７と図１８を参照して、クロック切り替え処理の流れをクロックセレクタ３０１ａの各ブロックの動作と連携して説明する。
【０２１５】
以下の説明で、時刻Ｔ１〜Ｔ５は図１８中に示す各時刻に対応する。また、第１のクロック停止許可信号１ＣＳＴ−ＳＩＧ、第２のクロック停止許可信号２ＣＳＴ−ＳＩＧ、クロック再開許可信号Ｃ−ＲＥＳ−ＳＩＧの初期状態は非アクティブ状態であり、第１のゲーティング制御信号１ＧＡＴ−ＳＩＧ、第２のゲーティング制御信号２ＧＡＴ−ＳＩＧの初期状態はアクティブ状態であり、第１のリセット信号１ＲＳＴ−ＳＩＧ、第２のリセット信号２ＲＳＴ−ＳＩＧの初期状態は非アクティブ状態とする。
【０２１６】
また、クロック切り替え前の第１のクロック信号１ＣＬＫと出力クロック信号ＣＫＯＵＴは低周波クロックのグループの中から選択されているため、実施の形態６で説明したように、これらのクロック信号は図１１の遅延回路１１０７によって、第３のクロック信号３ＣＬＫよりも時間Ｄ５だけ遅れて出力される。時刻Ｔ１では、外部から供給される３ビットのクロック選択信号の値が（ｘ、ｘ、ｘ）から（ｙ、ｙ、ｙ）に変化し、同様に外部から供給される第２のクロック選択部Ｅｎ信号２ＣＬＫＥＮ−ＳＩＧが非アクティブ状態（論理レベルのロー）からアクティブ状態（論理レベルのハイ）に変化する。
【０２１７】
時刻Ｔ２では、時刻Ｔ１から所定の時間（図１８中のＤ６）が経過した後、外部から供給される切り替えトリガ信号ＳＴ−ＳＩＧが非アクティブ状態（論理レベルのロー）からアクティブ状態（論理レベルのハイ）に変化する。これにより、第１の選択信号保持部１７０３が３ビットの新選択信号ＮＳＥＬ−ＳＩＧの値を（ｘ、ｘ、ｘ）から（ｙ、ｙ、ｙ）に変え、選択型クロック制御信号生成回路２０１ａ内の第２クロック選択部２０３が、３ビットの新選択信号ＮＳＥＬ−ＳＩＧが示す値（ｙ、ｙ、ｙ）に対応する第４のクロック信号４ＣＬＫの出力を開始する。また、選択型クロック制御信号生成回路２０１ａ内のクロック制御信号生成回路１０１ａが処理を開始し、実施の形態４で説明したように、第３のクロック信号３ＣＬＫのレベルが検出される（図１８ではハイレベルを検出）。
【０２１８】
時刻Ｔ３では、実施の形態４で説明したように、遅延回路５０６によって時刻Ｔ２から所定の時間（図１８中のＤ３）が経過した後に、選択型クロック制御信号生成回路２０１ａが第２クロック停止許可信号を非アクティブ状態（論理レベルのロー）からアクティブ状態（論理レベルのハイ）に変化させて出力する。これにより、ゲーティング制御部１７０１が第２のゲーティング制御信号２ＧＡＴ−ＳＩＧをアクティブ状態（論理レベルのロー）から非アクティブ状態（論理レベルのハイ）に変える。このとき、第１のゲーティング制御信号１ＧＡＴ−ＳＩＧはアクティブ状態論理レベルのハイ）のままである。更にこれを受けて、クロックゲーティング部１７０２が出力クロック信号ＣＫＯＵＴを論理レベルのハイに固定する（出力クロックの停止（ＳＴＰ）を実施）。
【０２１９】
時刻Ｔ４では、遅延回路２３０７によって、時刻Ｔ３から所定の時間（図１８中のＤ１）が経過した後に、第２の選択信号保持部１７０４が３ビットの現選択信号ＣＳＥＬ−ＳＩＧの値を（ｘ、ｘ、ｘ）から（ｙ、ｙ、ｙ）に変え、選択型クロック制御信号生成回路２０１ａ内の第１のクロック選択部２０２ａが第１のクロック信号１ＣＬＫを、３ビットの現選択信号ＣＳＥＬ−ＳＩＧが示す値（ｙ、ｙ、ｙ）に対応する切り替え後のクロック信号に切り替える（クロック選択の変更を実施）。
【０２２０】
時刻Ｔ５では、実施の形態４で説明したように、選択型クロック制御信号生成回路２０１ａ内のクロック制御信号生成回路１０１ａが、第４のクロック信号４ＣＬＫの立上りエッジを２回検出した後にクロック再開許可信号Ｃ−ＲＥＳ−ＳＩＧを非アクティブ状態（論理レベルのロー）からアクティブ状態（論理レベルのハイ）に変化させて出力する。これにより、ゲーティング制御部１７０１が第２のゲーティング制御信号２ＧＡＴ−ＳＩＧを非アクティブ状態（論理レベルのハイ）からアクティブ状態（論理レベルのロー）に変える。このとき、第１のゲーティング制御信号１ＧＡＴ−ＳＩＧはアクティブ状態（論理レベルのハイ）のままである。更にこれを受けて、クロックゲーティング部１７０２は出力クロック信号ＣＫＯＵＴを第１のクロック信号１ＣＬＫに戻す（出力クロックの再開を実施）。
【０２２１】
時刻Ｔ５の後、第１のリセット信号１ＲＳＴ−ＳＩＧが非アクティブ状態（論理レベルのハイ）からアクティブ状態（論理レベルのロー）に変わり、遅延回路２４０２によって、これから所定の時間（図１８中のＤ２）が経過した後に、第２のリセット信号２ＲＳＴ−ＳＩＧが非アクティブ状態（論理レベルのハイ）からアクティブ状態（論理レベルのロー）に変わる。第１のリセット信号１ＲＳＴ−ＳＩＧと第２のリセット信号２ＲＳＴ−ＳＩＧがアクティブ状態になることによって、選択型クロック制御信号生成回路２０１ａ内のクロック制御信号生成回路１０１ａの内部回路が初期化される。
【０２２２】
出力クロック信号ＣＫＯＵＴは、時刻Ｔ３までは切り替え前のクロック信号を出力し、時刻Ｔ３〜Ｔ５までの期間は停止状態に制御され、時刻Ｔ５以降は切り替え後のクロック信号を出力する。クロック停止期間は少なくとも、切り替え後のクロック信号の１周期分は確保される。
【０２２３】
以上の説明では時刻Ｔ３において、クロックゲーティング部１７０２は第２のゲーティング制御信号２ＧＡＴ−ＳＩＧが非アクティブ状態になったことを受けて、出力クロック信号ＣＫＯＵＴを論理レベルのハイに固定して停止したが、逆に、第１のゲーティング制御信号１ＧＡＴ−ＳＩＧが非アクティブ状態になった場合は、出力クロック信号ＣＫＯＵＴを論理レベルのローに固定して停止する。
【０２２４】
ここで、上記の説明のように、切り替え前のクロック信号が低周波クロックのグループから選択されている場合、出力クロック信号ＣＫＯＵＴは第３のクロック信号３ＣＬＫよりも時間Ｄ５だけ遅れているため、稀にではあるが、出力クロック信号ＣＫＯＵＴがまだハイレベルの状態にあるのに、第３のクロック信号３ＣＬＫのローレベルが検出され、これに基づいて出力クロック信号ＣＫＯＵＴをローレベルで停止させる場合が起こり得る。また、上記の場合とは逆に出力クロック信号ＣＫＯＵＴがまだローレベルの状態にあるのに、第３のクロック信号３ＣＬＫのハイレベルが検出され、これに基づいて出力クロック信号ＣＫＯＵＴをハイレベルで停止させる場合が起こり得る。しかしながら、そのようなケースでは出力クロック信号ＣＫＯＵＴは十分に長い時間（最小でも、０．５周期時間−Ｄ５）、ハイレベルやローレベルの状態を維持した後であるため、クロック停止時にレベルの違う状態に強制的に遷移されたとしても、本来、遷移が起こる時間より時間Ｄ５だけ早く遷移が起こるに過ぎない。時間Ｄ５は使用する低周波クロックの１周期時間よりも極めて短い時間に設定されるので、クロック波形としては何ら不都合を生じない。
【０２２５】
次に、図１１に示される選択型クロック制御信号生成回路２０１ａ内の第１のクロック選択部２０２ａで使用されている遅延回路１１０７の目的について説明する。選択型クロック制御信号生成回路２０１ａ内にあるクロック制御信号生成回路１０１ａでは、低周波クロックである第３のクロック信号３ＣＬＫが印加されているときに、第１の低周波クロック処理部１０４ａにおける第３のクロック信号３ＣＬＫのレベル検出に基づいて、出力クロック信号ＣＫＯＵＴの停止を制御する第１のクロック停止許可信号１ＣＳＴ−ＳＩＧと第２のクロック停止許可信号２ＣＳＴ−ＳＩＧの生成を行う。通常、レベル検出に基づくクロック停止を行うと、例えば、たまたまクロックの立上りエッジの直前で検出されたローレベルに基づいてクロックをローレベルで停止させようとしたときに、回路の処理遅延によって生じる時間経過によって、実際にクロックを停止させようとしたときには既にクロックはハイレベルに遷移してしまっており、予定通りにローレベルに出力を固定させてクロック停止を行うと、グリッチが発生してしまう。このようなケースを考慮して、遅延回路１１０７が用いられている。すなわち、遅延回路１１０７を通すことによって第１のクロック信号１ＣＬＫ及び出力クロック信号ＣＫＯＵＴは、第３のクロック信号３ＣＬＫよりも時間Ｄ５だけ遅延される。従って、第３のクロック信号３ＣＬＫのエッジ直前でレベル検出が実行されたとしても、出力クロック信号ＣＫＯＵＴはその時点から時間Ｄ５の間は検出されたのと同じレベルを維持することになる。そのため、回路の処理遅延があったとしても、時間Ｄ５以内であれば検出されたレベルに固定してクロックを停止させてもグリッチは発生しない。このために必要な条件は、第１の低周波クロック処理部１０４ａ内で用いている遅延回路５０６の設定遅延時間Ｄ３が時間Ｄ５よりも小さいことである。遅延回路１１０７の役割は、レベル検出に基づくクロック停止を行う低周波クロック信号においてクロック停止処理の間、クロックのレベル変化がないことを保障することである。
【０２２６】
以上の説明のように、クロックセレクタ３０１においては、低周波クロック信号から高周波クロック信号に切り替える場合、ｎ＋１ビットのクロック選択信号の変化からクロック停止までに最大で、（所定の時間Ｄ６＋所定の時間Ｄ３）の時間を要し、クロック停止からクロック再開までに最大で切り替え後クロックの３周期分の時間を要する。クロック切り替えに要する時間はこれらの時間の合計に相当する。
【０２２７】
ｎ＋１ビットのクロック選択信号が安定するまでの待機時間として設定される所定の時間Ｄ６は通常１０ナノ秒程度であり、フリップフロップのメタステーブル現象が安定するまでの待機時間として設定される所定の時間Ｄ３も通常１０ナノ秒程度であるので、例えば、切り替え前のクロック周波数が３２ｋＨｚで、切り替え後のクロック周波数が１００ＭＨｚである場合、クロック切り替えは合計で５０ナノ秒程度で完了する。この時間は切り替え後の１００ＭＨｚクロックの僅か５周期分の期間にしか相当しない。これは従来例のクロックセレクタの同条件におけるクロック切り替え時間（６２．５マイクロ秒、切り替え後の１００ＭＨｚクロックの６２５０周期の期間に相当）に比べて格段に速いと言える。
【０２２８】
尚、本実施の形態では、第２の選択信号保持部１７０４において第１のゲーティング制御信号１ＧＡＴ−ＳＩＧと第２のゲーティング制御信号２ＧＡＴ−ＳＩＧの変化を用いて、ｎ＋１ビットの現選択信号ＣＳＥＬ−ＳＩＧを更新するためのトリガ信号をラッチ回路２３０８、２３０９、２３１０に与えた。しかしこのトリガ信号を生成するための元信号は第１のゲーティング制御信号１ＧＡＴ−ＳＩＧと第２のゲーティング制御信号２ＧＡＴ−ＳＩＧに限定される訳ではなく、他の適切な信号または、新たな回路で別途作成した信号を使用しても良い。
【０２２９】
＜実施の形態９＞
図１９には、図３に示されるクロックセレクタ３０１の他の具体的な構成例が示される。
【０２３０】
図１９に示されるクロックセレクタ３０１ｂは、選択型クロック制御信号生成回路２０１ｂとゲーティング制御部１９０１とクロックゲーティング部１９０２と第１の選択信号保持部１９０３と第２の選択信号保持部１９０４とリセット信号生成部１９０５から成る。
【０２３１】
クロックセレクタ３０１ｂには、外部から複数のクロック信号（入力クロック信号ＣＫＩＮ１から入力クロック信号ＣＫＩＮ６）とｎ＋１ビットのクロック選択信号と切り替えトリガ信号ＳＴ−ＳＩＧと第２のクロック選択部Ｅｎ信号２ＣＬＫＥＮ−ＳＩＧが入力され、クロックセレクタ３０１ｂからは、出力クロック信号ＣＫＯＵＴと切り替え実行信号ＳＥＬ−ＲＵＮ−ＳＩＧと第２のリセット信号２ＲＳＴ−ＳＩＧが外部に出力される。これらの信号については実施の形態３の場合と同じである。
【０２３２】
クロック制御信号生成回路２０１ｂは、実施の形態７で説明した図１４のクロック制御信号生成回路２０１ｂと同一の構成で同一の動作を行う。
【０２３３】
ゲーティング制御部１９０１とクロックゲーティング部１９０２は図２１のように構成され、これの動作については実施の形態８の場合と同じである。
【０２３４】
第１の選択信号保持部１９０３と第２の選択信号保持部１９０４は図２３のように構成され、これの動作については実施の形態８の場合と同じである。
【０２３５】
リセット信号生成部１９０５は図２４のように構成され、これの動作については実施の形態８で既に説明済みである。
【０２３６】
図２０には、クロック切り替えイベントが発生したときのクロックセレクタ３０１ｂの動作タイミングが示される。図２０に示される動作タイミングは、比較的周波数が低いクロック信号から比較的周波数が高いクロック信号へ切り替える場合の例を示している。
【０２３７】
図１９と図２０を参照して、クロック切り替え処理の流れをクロックセレクタ３０１ｂの各ブロックの動作と連携して説明する。
【０２３８】
以下の説明において、時刻Ｔ１〜Ｔ５は図２０中に示す各時刻に対応する。また、第１のクロック停止許可信号１ＣＳＴ−ＳＩＧ、第２のクロック停止許可信号２ＣＳＴ−ＳＩＧ、クロック再開許可信号Ｃ−ＲＥＳ−ＳＩＧの初期状態は非アクティブ状態であり、第１のゲーティング制御信号１ＧＡＴ−ＳＩＧ、第２のゲーティング制御信号２ＧＡＴ−ＳＩＧの初期状態はアクティブ状態であり、第１のリセット信号１ＲＳＴ−ＳＩＧ、第２のリセット信号２ＲＳＴ−ＳＩＧの初期状態は非アクティブ状態であるとする。
【０２３９】
時刻Ｔ１では、外部から供給される３ビットのクロック選択信号の値が（ｘ、ｘ、ｘ）から（ｙ、ｙ、ｙ）に変化し、同様に外部から供給される第２のクロック選択部Ｅｎ信号２ＣＬＫＥＮ−ＳＩＧが非アクティブ状態（論理レベルのロー）からアクティブ状態（論理レベルのハイ）に変化する。
【０２４０】
時刻Ｔ２では、時刻Ｔ１から所定の時間（図２０中のＤ６）が経過した後、外部から供給される切り替えトリガ信号ＳＴ−ＳＩＧが非アクティブ状態（論理レベルのロー）からアクティブ状態（論理レベルのハイ）に変化する。これにより、第１の選択信号保持部１９０３が３ビットの新選択信号ＮＳＥＬ−ＳＩＧの値を（ｘ、ｘ、ｘ）から（ｙ、ｙ、ｙ）に変え、選択型クロック制御信号生成回路２０１ｂ内の第２クロック選択部２０３が、３ビットの新選択信号ＮＳＥＬ−ＳＩＧが示す値（ｙ、ｙ、ｙ）に対応する第４のクロック信号４ＣＬＫの出力を開始する。また、選択型クロック制御信号生成回路２０１ｂ内のクロック制御信号生成回路１０１ｂが処理を開始する。
【０２４１】
時刻Ｔ３では、実施の形態５で説明したようになる。すなわち、選択型クロック制御信号生成回路２０１ｂ内のクロック制御信号生成回路１０１ｂにおいて、第３のクロック信号３ＣＬＫのエッジが検出された後、遅延回路８０７によって時間Ｄ４だけ遅延された第３のクロック信号３ＣＬＫ（Ｄ４）の同一方向のエッジが検出されることによって（図２０は立上りエッジの場合を示している）、選択型クロック制御信号生成回路２０１ｂが第２クロック停止許可信号を非アクティブ状態からアクティブ状態に変化させて出力する。これにより、ゲーティング制御部１９０１が第２のゲーティング制御信号２ＧＡＴ−ＳＩＧをアクティブ状態（論理レベルのロー）から非アクティブ状態（論理レベルのハイ）に変える。このとき、第１のゲーティング制御信号１ＧＡＴ−ＳＩＧはアクティブ状態論理レベルのハイ）のままである。更にこれを受けて、クロックゲーティング部１９０２が出力クロック信号ＣＫＯＵＴを論理レベルのハイに固定する（出力クロックの停止（ＳＴＰ）を実施）。
【０２４２】
時刻Ｔ４では、遅延回路２３０７によって、時刻Ｔ３から所定の時間（図２０中のＤ１）が経過した後に、第２の選択信号保持部１９０４が３ビットの現選択信号ＣＳＥＬ−ＳＩＧの値を（ｘ、ｘ、ｘ）から（ｙ、ｙ、ｙ）に変える。そして選択型クロック制御信号生成回路２０１ｂ内の第１のクロック選択部２０２ｂが第１のクロック信号１ＣＬＫを、３ビットの現選択信号ＣＳＥＬ−ＳＩＧが示す値（ｙ、ｙ、ｙ）に対応する切り替え後のクロック信号に切り替える（クロック選択の変更を実施）。
【０２４３】
時刻Ｔ５では、実施の形態５で説明したように、選択型クロック制御信号生成回路２０１ｂ内のクロック制御信号生成回路１０１ｂが、第４のクロック信号４ＣＬＫの立上りエッジを２回検出した後にクロック再開許可信号Ｃ−ＲＥＳ−ＳＩＧを非アクティブ状態（論理レベルのロー）からアクティブ状態（論理レベルのハイ）に変化させて出力する。これにより、ゲーティング制御部１９０１が第２のゲーティング制御信号２ＧＡＴ−ＳＩＧを非アクティブ状態（論理レベルのハイ）からアクティブ状態（論理レベルのロー）に変える。このとき、第１のゲーティング制御信号１ＧＡＴ−ＳＩＧはアクティブ状態（論理レベルのハイ）のままである。更にこれを受けて、クロックゲーティング部１９０２は出力クロック信号ＣＫＯＵＴを第１のクロック信号１ＣＬＫに戻す（出力クロックの再開を実施）。
【０２４４】
時刻Ｔ５の後、第１のリセット信号１ＲＳＴ−ＳＩＧが非アクティブ状態（論理レベルのハイ）からアクティブ状態（論理レベルのロー）に変わり、遅延回路２４０２によって、これから所定の時間（図２０中のＤ２）が経過した後に、第２のリセット信号２ＲＳＴ−ＳＩＧが非アクティブ状態（論理レベルのハイ）からアクティブ状態（論理レベルのロー）に変わる。第１のリセット信号１ＲＳＴ−ＳＩＧと第２のリセット信号２ＲＳＴ−ＳＩＧがアクティブ状態になることによって選択型クロック制御信号生成回路２０１ｂ内のクロック制御信号生成回路１０１ｂの内部回路が初期化される。
【０２４５】
出力クロック信号ＣＫＯＵＴは、時刻Ｔ３までは切り替え前のクロック信号を出力し、時刻Ｔ３〜Ｔ５までの期間は停止状態に制御され、時刻Ｔ５以降は切り替え後のクロック信号を出力する。クロック停止期間は少なくとも、切り替え後のクロック信号の１周期分は確保される。
【０２４６】
以上の説明では時刻Ｔ３において、クロックゲーティング部１７０２は第２のゲーティング制御信号２ＧＡＴ−ＳＩＧが非アクティブ状態になったことを受けて、出力クロック信号ＣＫＯＵＴを論理レベルのハイに固定して停止したが、逆に、第１のゲーティング制御信号１ＧＡＴ−ＳＩＧが非アクティブ状態になった場合は、出力クロック信号ＣＫＯＵＴを論理レベルのローに固定して停止する。
【０２４７】
以上の説明のように、本発明にかかるクロックセレクタにおいては、低周波クロック信号から高周波クロック信号に切り替える場合、ｎ＋１ビットのクロック選択信号の変化からクロック停止までに最大で、（所定の時間Ｄ６＋切り替え前クロックの０．５周期＋所定の時間Ｄ４）の時間を要し、クロック停止からクロック再開までに最大で切り替え後クロックの３周期分の時間を要する。クロック切り替えに要する時間はこれらの時間の合計に相当する。
【０２４８】
ｎ＋１ビットのクロック選択信号が安定するまでの待機時間として設定される所定の時間Ｄ６は通常１０ナノ秒程度であり、フリップフロップのメタステーブル現象が安定するまでの待機時間として設定される所定の時間Ｄ４も通常１０ナノ秒程度であるので、例えば、切り替え前のクロック周波数が３２ｋＨｚで、切り替え後のクロック周波数が１００ＭＨｚである場合、クロック切り替えは合計で１５．７マイクロ秒程度で完了する。この時間は切り替え後の１００ＭＨｚクロックの１５７０周期分の期間に相当するが、従来例のクロックセレクタの同条件におけるクロック切り替え時間（６２．５マイクロ秒、切り替え後の１００ＭＨｚクロックの６２５０周期の期間に相当）に比べて十分に速いと言える。
【０２４９】
＜実施の形態１０＞
図２５には、本発明にかかる情報処理装置の一例とされるマイクロコンピュータシステムの構成例が示される。
【０２５０】
マイクロコンピュータシステム２５０１は、実施の形態８や実施の形態９で説明した本発明にかかるクロックセレクタ２５１１を含むクロック発生部２５０２と、クロック発生部２５０２から出力されたクロック信号に同期して動作される複数の機能モジュールを含む。この複数の機能モジュールには、特に制限されないが、ＣＰＵ（中央処理装置）２５２９、割込み制御部（ＩＮＴ−ＣＮＴ）２５３０、ウォッチドッグタイマ（Ｗ−ＴＩＭ）２５３１、バスインタフェース部（Ｂ−ＩＮＴ）２５３２、バス制御部（Ｂ−ＣＮＴ）２５３３、プログラムメモリ（Ｐ−ＭＥＭ）やデータメモリ（Ｄ−ＭＥＭ）等を含むメモリ部２５３４が含まれる。また、上記複数の機能モジュールには、制御レジスタ（ＣＮＴ−ＲＥＧ）２５３５、汎用タイマ（Ｇ−ＴＩＭ）、時計用タイマ（Ｃ−ＴＩＭ）、シリアルインタフェース（Ｓ−ＩＮＴ）、ＩＯポート（ＩＯ−Ｐ）、ＡＤ変換器（Ａ／Ｄ）等を含む周辺機能２５３６が含まれる。
【０２５１】
クロック発生部２５０２は、クロックセレクタ（ＣＬＫ−ＳＥＬ）２５１１、クロックバッファ２５０４、ＰＬＬ２５０５、ＨＯＣＯ（Ｈｉｇｈ−ｆｒｅｑｕｅｎｃｙ  Ｏｎ  Ｃｈｉｐ  Ｏｓｃｉｌｌａｔｏｒ；高周波オンチップ発振器）２５０６、ＬＯＣＯ（Ｌｏｗ−ｆｒｅｑｕｅｎｃｙ  Ｏｎ  Ｃｈｉｐ  Ｏｓｃｉｌｌａｔｏｒ；低周波オンチップ発振器）２５０７を含む。また、クロック発生部２５０２は、ＴＣ（Ｒｅａｌ  Ｔｉｍｅ  Ｃｌｏｃｋ；時計用クロック発振器）２５０８、分周器（Ｄｉｖ）２５０９、マルチプレクサ（Ｍｕｘ）２５１０、不一致検出機能部（ＭＩＳ−ＤＥＴ）２５１２を含む。さらにクロック発生部２５０２は、分周器（Ｄｉｖ）２５１３、２５１４、２５１５、２５１６、遅延調整器（Ｄ−ＡＤＪ）２５１７、２５１８、２５１９、２５２０、クロックゲーティング回路（ＣＧ）２５２１、２５２２、２５２３、２５２４、クロックバッファ２５２５、２５２６、２５２７、２５２８等を含む。上記クロックセレクタ２５１１には、図３等に示される構成が適用される。尚、このクロックセレクタ２５５１には、外部端子を介してクロック信号が伝達されるようになっている。
【０２５２】
ＰＬＬ２５０５は、制御レジスタ２５３５によってイネーブルに設定された場合、外付け水晶（Ｘｔａｌ）２５０３から供給される基準クロックを逓倍して例えば１００ＭＨｚの高周波クロック信号を生成する。
【０２５３】
ＨＯＣＯ２５０６は、制御レジスタ２５３５によってイネーブルに設定された場合、自走で例えば４０ＭＨｚの高周波クロック信号を生成する。
【０２５４】
ＬＯＣＯ２５０７は、制御レジスタ２５３５によってイネーブルに設定された場合、自走で例えば１２５ｋＨｚの低周波クロック信号を生成する。
【０２５５】
ＲＴＣ２５０８は、制御レジスタ２５３５によってイネーブルに設定された場合、自走で例えば３２ｋＨｚの低周波クロック信号を生成する。これは時計用のクロック信号としても使われる。
【０２５６】
分周器２５０９は、制御レジスタ２５３５によってイネーブルに設定された場合、外付け水晶（Ｘｔａｌ）２５０３から供給される基準クロックを分周して例えば３２ｋＨｚの低周波クロック信号を生成する。これは時計用のクロック信号としても使われる。
【０２５７】
ＲＴＣ２５０８と分周器２５０９からは、共に３２ｋＨｚの低周波クロック信号が供給されるが、外付け水晶（Ｘｔａｌ）２５０３がない場合はＲＴＣ２５０８を動作させ、分周器２５０９は停止、逆に外付け水晶（Ｘｔａｌ）２５０３がある場合は分周器２５０９を動作させ、ＲＴＣ２５０８は停止させるという使い分けをする。３２ｋＨｚの低周波クロック信号は時計用のクロック信号としても使われるので、一般的には常にクロック生成がされている。時計用クロック信号は、マルチプレクサ２５１０によって一方が選択されてマイクロコンピュータシステム２５０１の内部回路にも供給される。
【０２５８】
上記クロックセレクタ２５１１は、制御レジスタ２５３５が出力するｎ＋１ビットのクロック選択信号が示す値に応じて、ＰＬＬ２５０５の出力信号である１００ＭＨｚの高周波クロック信号、ＨＯＣＯ２５０６の出力信号である４０ＭＨｚの高周波クロック信号、ＬＯＣＯ２５０７の出力信号である１２５ｋＨｚの低周波クロック信号、ＲＴＣ２５０８若しくは分周器２５０９の出力信号である３２ｋＨｚの低周波クロック信号の中から１つを選択する。そして上記クロックセレクタ２５１１は、それを出力クロック信号ＣＫＯＵＴとして出力する。
【０２５９】
上記クロックセレクタ２５１１が出力する出力クロック信号ＣＫＯＵＴは４つの系統に分岐される。これらは分周器２５１３、２５１４、２５１５、２５１６に入力され、所定の周波数のクロック信号に変換される。その後、それぞれ遅延調整器２５１７、２５１８、２５１９、２５２０と、クロックゲーティング回路２５２１、２５２２、２５２３、２５２４と、クロックバッファ２５２５、２５２６、２５２７、２５２８を経て、ＣＰＵクロックＣＰＵ−ＣＬＫ、バスクロックＢＵＳ−ＣＬＫ、周辺クロックＭＯＤ−ＣＬＫ１、周辺クロックＭＯＤ−ＣＬＫ２としてマイクロコンピュータシステム２５０１内に供給される。
【０２６０】
図２５では、ＣＰＵクロックＣＰＵ−ＣＬＫはＣＰＵ２５２９の動作クロックとして使われ、バスクロックＢＵＳ−ＣＬＫはウォッチドッグタイマ２５３１やバスインタフェース部２５３２やバス制御部２５３３やメモリ部２５３４や制御レジスタ２５３５の動作クロックとして使われる。また、周辺クロックＭＯＤ−ＣＬＫ１は周辺機能２５３６内の汎用タイマやシリアルインタフェースやＩＯポートの動作クロックとして使われ、周辺クロックＭＯＤ−ＣＬＫ２は周辺機能２５３６内のＡＤ変換器の動作クロックとして使われる。
【０２６１】
クロックゲーティング回路２５２１、２５２２、２５２３、２５２４は、個別ブロックに対してクロック信号の供給が必要ない場合に、制御レジスタ２５３５の設定によってこれらのクロック信号の供給を個別に停止するために使われる。
【０２６２】
遅延調整器２５１７、２５１８、２５１９、２５２０は、マイクロコンピュータシステム２５０１内で各クロック信号の伝搬経路が互いに独立で異なった伝搬遅延を受けるために、マイクロコンピュータシステム２５０１内の各ブロック間でクロック同期が維持できなくなることを回避するために使われ、同期関係を確立するために、制御レジスタ２５３５の設定によってクロック毎に異なった遅延時間が設定されて位相の調整がなされる。
【０２６３】
クロック発生部２５０２内の不一致検出機能部２５１２について説明する。
【０２６４】
図２６には、不一致検出機能部２５１２の具体的な回路構成例が示される。
【０２６５】
不一致検出機能部２５１２は、不一致検出回路２６０１とラッチ回路２６０６と遅延時間Ｄ６の遅延回路２６０７とフリップフロップ２６０８とインバータ２６０９を含んで構成される。
【０２６６】
不一致検出回路２６０１は更に、排他的ＯＲ回路（Ｅｘ−ＯＲ）２６０２、２６０３、２６０４とＯＲ回路２６０５を含んで構成される。
【０２６７】
不一致検出機能部２５１２には、制御レジスタ２５３５から出力されるｎ＋１ビットのクロック選択信号と、本発明のクロックセレクタ２５１１から出力されるｎ＋１ビットの現選択信号ＣＳＥＬ−ＳＩＧ、切り替え実行信号ＳＥＬ−ＲＵＮ−ＳＩＧ、第２のリセット信号２ＲＳＴ−ＳＩＧが入力され、不一致検出機能部２５１２からはそしてそれはクロックセレクタ２５１１に供給される。
【０２６８】
不一致検出回路２６０１は、２入力の排他的ＯＲ回路（２６０２、２６０３、２６０４）が２つの入力信号の論理が異なるときに出力信号をアクティブ状態（論理レベルのハイ）にする機能を利用して、ｎ＋１ビットのクロック選択信号とｎ＋１ビットの現選択信号ＣＳＥＬ−ＳＩＧをビット毎に比較する。その結果、両者間に１ビットでも不一致がある場合はＯＲ回路２６０５の出力信号がアクティブ状態（論理レベルのハイ）に変化する。これにより、ｎ＋１ビットのクロック選択信号の値が更新されたことが検出される。
【０２６９】
不一致検出回路２６０１の出力信号がアクティブ状態（論理レベルのハイ）に変化することによって、ラッチ回路２６０６の出力信号である第２のクロック選択部Ｅｎ信号２ＣＬＫＥＮ−ＳＩＧがアクティブ状態（論理レベルのハイ）に変化する。第２のクロック選択部Ｅｎ信号２ＣＬＫＥＮ−ＳＩＧがアクティブ状態（論理レベルのハイ）に変化した後、遅延回路２６０７に設定された所定の遅延時間（Ｄ６）が経過してから、遅延回路２６０７の出力信号がアクティブ状態（論理レベルのハイ）に変化する。これによって、フリップフロップ２６０８の出力信号である切り替えトリガ信号ＳＴ−ＳＩＧがアクティブ状態（論理レベルのハイ）に変化する。
【０２７０】
ラッチ回路２６０６の出力信号は第２のリセット信号２ＲＳＴ−ＳＩＧがアクティブ状態（論理レベルのロー）になることによって非アクティブ状態（論理レベルのロー）に初期化され、フリップフロップ２６０８の出力信号はインバータ２６０９によって切り替え実行信号ＳＥＬ−ＲＵＮ−ＳＩＧがアクティブ状態（論理レベルのハイ）になることによって非アクティブ状態（論理レベルのロー）に初期化される。
【０２７１】
ところで、制御レジスタ２５３５から出力されるｎ＋１ビットのクロック選択信号は、制御レジスタ２５３５を構成する半導体デバイスの動作ばらつきや各ビットの信号配線の負荷容量の違い等によって、ビット毎に異なった時間差（スキュ−）を持ってクロックセレクタ２５１１に到達することが予想される。従って、全てのビットが最終値に変化する前にクロックセレクタ２５１１にｎ＋１ビットのクロック選択信号の値が保持されてしまうと、間違った情報によって間違ったクロックへの切り替えが起こってしまう。
【０２７２】
不一致検出機能部２５１２では、このような不都合を回避するために遅延回路２６０７が使われる。すなわち、ｎ＋１ビットのクロック選択信号の何れかのビットの変化を検出した後、遅延回路２６０７に設定された遅延時間Ｄ６だけ時間が経過した後に切り替えトリガ信号ＳＴ−ＳＩＧをアクティブ状態に変える。クロックセレクタ２５１１では切り替えトリガ信号ＳＴ−ＳＩＧが非アクティブ状態からアクティブ状態に変化することによって、図２３の第１の選択信号保持部でｎ＋１ビットのクロック選択信号がサンプリング及び保持されるので、遅延時間Ｄ６を想定されるスキュー時間よりも長く設定することによって、最終値に変化した後のｎ＋１ビットのクロック選択信号をクロックセレクタ２５１１に保持することが可能になる。
【０２７３】
次に、上記クロックセレクタ２５１１をマイクロコンピュータシステム２５０１に適用することによって生じる効果について説明する。
【０２７４】
クロックセレクタ２５１１は、制御レジスタ２５３５を介したＣＰＵ２５２９からのクロック選択指示（ｎ＋１ビットのクロック選択信号）に応じて、複数の入力クロック信号から1つを選択して出力する。
【０２７５】
通常は、クロックセレクタ２５１１は高周波クロック信号（例えば、ＰＬＬ２５０５の出力信号である１００ＭＨｚクロック信号）を選択出力し、マイクロコンピュータシステム２５０１はこのクロック信号をベースとした高速処理を実施する（高速動作モード）。一般的に、このときＰＬＬ２５０５以外の他のクロックソース（ＨＯＣＯ２５０６、ＬＯＣＯ２５０７、ＲＴＣ２５０８）は停止状態に制御される。
【０２７６】
一方、ＣＰＵ２５２９が休止状態や、高速な処理を必要としない動作に移行した場合は、クロックセレクタ２５１１は低周波クロック信号（分周器２５０９の出力信号である３２ｋＨｚクロック信号）を選択出力し、マイクロコンピュータシステム２５０１はこのクロック信号をベースとした低消費電力モードでの動作を行う。一般的に、このとき分周器２５０９以外の他のクロックソース（ＰＬＬ２５０５、ＨＯＣＯ２５０６、ＬＯＣＯ２５０７、ＲＴＣ２５０８）は停止状態に制御される。
【０２７７】
低消費電力モードでの動作中に、例えば、周辺機能２５３６（タイマや外部インタフェース）からの割込み要求が発生した場合、ＣＰＵ２５２９は制御レジスタ２５３５内のｎ＋１ビットのクロック選択信号の値をＰＬＬ２５０５の出力信号である１００ＭＨｚクロック信号の選択に書き換える。クロックセレクタ２５１１はこの指示を受けて、選択クロックを３２ｋＨｚから１００ＭＨｚに切り替え、マイクロコンピュータシステム２５０１は高速動作モードに復帰する。
【０２７８】
実施の形態８や実施の形態９で説明したように、クロックセレクタ２５１１は極めて高速なクロック切り替えを行うことができる。そのため、マイクロコンピュータシステム２５０１が低消費電力モードから高速動作モードへ移行する際に要する時間を大幅に短縮することが可能になる。そのため、ＰＬＬ２５０５等、消費電力が大きい高周波クロックソースを無駄に動作させておかなければならない待機時間が極めて短くてすむので、クロックセレクタ２５１１を適用したマイクロコンピュータシステム２５０１は、システムの低消費電力化に寄与する。特に、モバイル用途等の電池駆動時に電池の寿命を長くできる。
【０２７９】
また、低消費電力モードから高速動作モードへの復帰を高速に行うことができるために生じる他の利点は、低消費電力モードから高速動作モードへ復帰した際に、必要な処理を遅滞なくリアルタイムで実行することが可能になることである。従って、本発明にかかるクロックセレクタを適用したマイクロコンピュータシステム２５０１は、処理のリアルタイム性が重要なコントローラアプリケーション等において適切な動作が期待できる。
【０２８０】
実施の形態２、実施の形態６、実施の形態７で説明した選択型クロック制御信号生成回路及び、実施の形態３、実施の形態８、実施の形態９で説明したクロックセレクタは、複数の高周波クロック信号に対して１つの第１の高周波クロック処理部（例えば、図５の１０３）や第２の高周波クロック処理部（例えば、図５の１０７）を共有して使う。また、上記セレクタは、複数の低周波クロック信号に対して１つの第１の低周波クロック処理部（例えば、図５の１０４ａ）や第２の低周波クロック処理部（例えば、図５の１０８ａ）を共有して使う。このため、選択すべきクロック信号の種類や数が増えたとしても、第１のクロック選択部（例えば、図１１の２０２ａ）と第２のクロック選択部（例えば、図１１の２０３）のクロック選択数を増やすだけで容易に対応が可能であり、回路規模の増大を招かないで済む。
【０２８１】
実施の形態１から実施の形態１０までの説明において、切り替えトリガ信号ＳＴ−ＳＩＧのアクティブ状態には、切り替えトリガ信号ＳＴ−ＳＩＧが非アクティブ状態からアクティブ状態に遷移する際の遷移中の状態も含まれるものとする。
【０２８２】
以上説明したように、本発明にかかるクロックセレクタによれば、低周波クロック信号と高周波クロック信号を分離して、それぞれに対する処理を、適切に構成された専用処理部で行うことによって、高速クロック切り替えの障害になっていた切り替え前の低周波クロック信号の処理を高速化する。更にクロック信号のローレベルとハイレベルの何れでもクロックを停止できる機構を設けることによって、クロック切り替え時の待機時間を大幅に短縮することが可能になる。
【０２８３】
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【０２８４】
例えば、上記構成のクロックセレクタは、マイクロコンピュータ２５０１以外の情報処理装置に適用することができる。
【符号の説明】
【０２８５】
１０１  クロック制御信号生成回路
１０２  切り替え前クロック処理部
１０３  第１の高周波クロック処理部
１０４  第１の低周波クロック処理部
１０５  ＯＲ回路
１０６  切り替え後クロック処理部
１０７  第２の高周波クロック処理部
１０８  第２の低周波クロック処理部
１０９  ＯＲ回路
２０１  選択型クロック制御信号生成回路
２０２  第１のクロック選択部
２０３  第２のクロック選択部
３０１  クロックセレクタ
３０２  ゲーティング制御部
３０３  クロックゲーティング部
３０４  第１の選択信号保持部
３０５  第２の選択信号保持部
３０６  リセット信号生成部
１０１ａ  クロック制御信号生成回路
１０２ａ  切り替え前クロック処理部
１０４ａ  第１の低周波クロック処理部
１０６ａ  切り替え後クロック処理部
１０８ａ  第２の低周波クロック処理部
５０１、５０２  フリップフロップ
５０３、５０５  フリップフロップ
５０４  インバータ
５０６  遅延回路
５０７、５０８  ＡＮＤ回路
５０９  ＯＲ回路
５１０、５１１  フリップフロップ
５１２、５１３  フリップフロップ
５１４、５１７  フリップフロップ
５１５、５１６  フリップフロップ
１０１ｂ  クロック制御信号生成回路
１０２ｂ  切り替え前クロック処理部
１０４ｂ  第１の低周波クロック処理部
１０６ｂ  切り替え後クロック処理部
１０８ｂ  第２の低周波クロック処理部
８０１、８０２、８０３、８０４  フリップフロップ
８０５、８０６  フリップフロップ
８０７  遅延回路
８０８、８０９  ＯＲ回路
８１０、８１１  フリップフロップ
８１２、８１３  フリップフロップ
８１４、８１７  フリップフロップ
８１５、８１６  フリップフロップ
２０１ａ  選択型クロック制御信号生成回路
２０２ａ  第１のクロック選択部
１１０１、１１０４  マルチプレクサ
１１０２、１１０３  ＯＲ回路
１１０５、１１０６  ＡＮＤ回路
１１０７  遅延回路
１１０８  マルチプレクサ
１１０９、１１１２  マルチプレクサ
１１１０、１１１１  ＯＲ回路
１１１３、１１１４  ＡＮＤ回路
２０１ｂ  選択型クロック制御信号生成回路
２０２ｂ  第１のクロック選択部
１４０１、１４０４  マルチプレクサ
１４０２、１４０３  ＯＲ回路
１４０５、１４０６  ＡＮＤ回路
１４０７  マルチプレクサ
１４０８、１４１１  マルチプレクサ
１４０９、１４１０  ＯＲ回路
１４１２、１４１３  ＡＮＤ回路
３０１ａ  クロックセレクタ
１７０１  ゲーティング制御部
１７０２  クロックゲーティング部
１７０３  第１の選択信号保持部
１７０４  第２の選択信号保持部
１７０５  リセット信号生成部
３０１ｂ  クロックセレクタ
１９０１  ゲーティング制御部
１９０２  クロックゲーティング部
１９０３  第１の選択信号保持部
１９０４  第２の選択信号保持部
１９０５  リセット信号生成部
２１０１  ＡＮＤ回路
２１０２  ＡＮＤ回路
２１０３  ＡＮＤ回路
２１０４  ＯＲ回路
２３０１、２３０２、２３０３  フリップフロップ
２３０４  ＡＮＤ回路
２３０５  ＡＮＤ回路
２３０６  ＯＲ回路
２３０７  遅延回路
２３０８、２３０９、２３１０  ラッチ回路
２４０１  インバータ
２４０２  遅延回路
２５０１  マイクロコンピュータシステム
２５０２  クロック発生部
２５０３  水晶発振子
２５０４  クロックバッファ
２５０５  ＰＬＬ
２５０６  高周波オンチップ発振器
２５０７  低周波オンチップ発振器
２５０８  時計用クロック発振器
２５０９  分周器
２５１０  マルチプレクサ
２５１１  クロックセレクタ
２５１２  不一致検出機能部
２５１３、２５１４、２５１５、２５１６  分周器
２５１７、２５１８、２５１９、２５２０  遅延調整器
２５２１、２５２２、２５２３、２５２４  クロックゲーティング回路
２５２５、２５２６、２５２７、２５２８  クロックバッファ
２５２９  ＣＰＵ
２５３０  割込み制御部
２５３１  ウォッチドッグタイマ
２５３２  バスインタフェース部
２５３３  バス制御部
２５３４  メモリ部
２５３５  制御レジスタ
２５３６  周辺機能
【図１】
2011180736.tif 000003
【図２】
2011180736.tif 000004
【図３】
2011180736.tif 000005
【図４】
2011180736.tif 000006
【図５】
2011180736.tif 000007
【図６】
2011180736.tif 000008
【図７】
2011180736.tif 000009
【図８】
2011180736.tif 000010
【図９】
2011180736.tif 000011
【図１０】
2011180736.tif 000012
【図１１】
2011180736.tif 000013
【図１２】
2011180736.tif 000014
【図１３】
2011180736.tif 000015
【図１４】
2011180736.tif 000016
【図１５】
2011180736.tif 000017
【図１６】
2011180736.tif 000018
【図１７】
2011180736.tif 000019
【図１８】
2011180736.tif 000020
【図１９】
2011180736.tif 000021
【図２０】
2011180736.tif 000022
【図２１】
2011180736.tif 000023
【図２２】
2011180736.tif 000024
【図２３】
2011180736.tif 000025
【図２４】
2011180736.tif 000026
【図２５】
2011180736.tif 000027
【図２６】
2011180736.tif 000028