1.実施の形態の概要
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
〔1〕本発明の代表的な実施の形態に係るクロック制御信号生成回路(101)は、クロック第1のクロック停止許可信号と、第2のクロック停止許可信号と、クロック再開許可信号とに基づいて、第1のクロック信号を含む複数のクロック信号間の切り替えを行うクロックセレクタにおけるクロック切り替えの制御信号を形成する。このクロック制御信号生成回路は、切り替え前クロック処理部(102)と、切り替え後クロック処理部(106)とを含む。
上記切り替え前クロック処理部(102)は、切り替えトリガ信号がアクティブ状態であるときに第2のクロック信号の第1の状態を検出した場合に第1の検出信号をアクティブ状態にして出力する第1の高周波クロック処理部(103)を含む。また上記切り替え前クロック処理部(102)は、上記切り替えトリガ信号がアクティブ状態であるときに第3のクロック信号の第1の状態を検出した場合に第2の検出信号をアクティブ状態にして出力し、上記切り替えトリガ信号がアクティブ状態であるときに上記第3のクロック信号の第2の状態を検出した場合に第3の検出信号をアクティブ状態にして出力する第1の低周波クロック処理部(104)を含む。そして上記切り替え前クロック処理部(102)は、上記第1の検出信号と上記第2の検出信号のうちどちらか1つがアクティブ状態であるときに第1のクロック停止許可信号をアクティブ状態にして出力し、上記第3の検出信号がアクティブ状態であるときに第2のクロック停止許可信号をアクティブ状態にして出力する。
上記切り替え後クロック処理部(106)は、上記第1のクロック停止許可信号がアクティブ状態であるときに第4のクロック信号の第1の状態を検出した場合に第4の検出信号をアクティブ状態にして出力し、上記第2のクロック停止許可信号がアクティブ状態であるときに上記第4のクロック信号の第2の状態を検出した場合に第5の検出信号をアクティブ状態にして出力する第2の高周波クロック処理部(107)を含む。また上記切り替え後クロック処理部(106)は、上記第1のクロック停止許可信号がアクティブ状態であるときに第5のクロック信号の第1の状態を検出した場合に第6の検出信号をアクティブ状態にして出力し、上記第2のクロック停止許可信号がアクティブ状態であるときに上記第5のクロック信号の第2の状態を検出した場合に第7の検出信号をアクティブ状態にして出力する第2の低周波クロック処理部(108)を含む。そして上記切り替え後クロック処理部(106)は、上記第4の検出信号と上記第5の検出信号と上記第6の検出信号と上記第7の検出信号のうち何れか1つがアクティブ状態であるときにクロック再開許可信号をアクティブ状態にして出力する。
上記のように、クロック切り替えの高速化を阻害する要因は低周波クロックでの処理時間にある。そこで、上記切り替え前クロック処理部(102)及び上記切り替え後クロック処理部(106)においては、それぞれ専用の処理部として、高周波クロック処理部と低周波クロック処理部とが設けられ、切り替えにかかるクロック信号の処理を、それぞれ高周波クロック処理部と低周波クロック処理部とで分担して行うことにより処理の高速化を図る。これによってクロック信号切り替えの高速化を達成することができる。
〔2〕上記〔1〕において、第1のクロック選択部(202)と、第2のクロック選択部(203)を設けることができる。
第1のクロック選択部(202)は、複数のクロック信号を群とする第1のクロックグループと、上記第1のクロックグループに属するクロック信号よりも周波数が低い複数のクロック信号を群とする第2のクロックグループとを入力して、現選択信号の値に応じて上記第1クロックグループの中からクロック信号を1つ選択して上記第2のクロック信号として出力する。そして第1のクロック選択部(202)は、上記現選択信号の値に応じて上記第2クロックグループの中からクロック信号を1つ選択して上記第3のクロック信号として出力し、上記第2のクロック信号に基づく信号と上記第3のクロック信号に基づく信号の何れか一方を上記第1のクロック信号として出力する。
上記第2のクロック選択部(203)は、上記第1のクロックグループと上記第2のクロックグループを入力して、新選択信号の値に応じて上記第1クロックグループの中からクロック信号を1つ選択して上記第4のクロック信号として出力し、上記新選択信号の値に応じて上記第2のクロックグループの中からクロック信号を1つ選択して上記第5のクロック信号として出力する。
上記第1のクロック選択部(202)と上記第2のクロック選択部(203)とが設けられるこにより、複数のクロック入力において、クロック制御信号生成回路(101)を共有することができるので、選択すべきクロック信号の種類や数が増えたとしても、上記第1のクロック選択部(202)及び上記第2のクロック選択部(203)でのクロック選択数を増やすだけで、容易に対応することができる。これにより、回路規模の増大を回避できる。
〔3〕上記〔1〕において、上記第1の高周波クロック処理部は、上記第2のクロック信号の第1の状態に基づいて動作する論理回路(501,502)を含んで構成することができる。上記第1の低周波クロック処理部は、上記第3のクロック信号の第1の状態に基づいて動作する論理回路(507)と、上記第3のクロック信号の第2の状態に基づいて動作する論理回路(508)と、を含んで構成することができる。上記第2の高周波クロック処理部は、上記第4のクロック信号の第1の状態に基づいて動作する論理回路(510,511)と、上記第4のクロック信号の上記第2の状態に基づいて動作する論理回路(512,513)と、を含んで構成することができる。
また、上記第2の低周波クロック処理部は、上記第5のクロック信号の第1の状態に基づいて動作する論理回路(514,515)と、上記第5のクロック信号の第2の状態に基づいて動作する論理回路(516,517)とを含んで構成することができる。
このとき、上記第2のクロック信号の第1の状態は、上記第2のクロック信号の立下りエッジとされ、上記第3のクロック信号の第1の状態は、上記第3のクロック信号の論理レベルのローとされ、上記第3のクロック信号の第2の状態は、上記第3のクロック信号の論理レベルのハイとされ、上記第4のクロック信号の第1の状態は、上記第4のクロック信号の立下りエッジとされる。また、上記第4のクロック信号の第2の状態は、上記第4のクロック信号の立上りエッジとされ、上記第5のクロック信号の第1の状態は、上記第5のクロック信号の立上りエッジとされ、上記第5のクロック信号の第2の状態は、上記第5のクロック信号の立下りエッジとされる。
〔4〕上記〔3〕において、第1のクロック選択部(202a)と、第2のクロック選択部(203)とを設けることができる。
第1のクロック選択部(202a)は、複数のクロック信号を群とする第1のクロックグループと、上記第1クロックグループに属するクロック信号よりも周波数が低い複数のクロック信号を群とする第2のクロックグループとを入力する。そして第1のクロック選択部(202a)は、現選択信号の値に応じて上記第1のクロックグループの中からクロック信号を1つ選択して上記第2のクロック信号として出力し、上記現選択信号の値に応じて上記第2クロックグループの中からクロック信号を1つ選択して上記第3のクロック信号として出力し、上記第2のクロック信号と、上記第3のクロック信号を所定の時間だけ遅延させた信号の何れか一方を第1のクロック信号として出力する。
第2のクロック選択部(203)は、上記第1のクロックグループと上記第2クロックグループとを入力して、新選択信号の値に応じて上記第1クロックグループの中からクロック信号を1つ選択して上記第4のクロック信号として出力し、上記新選択信号の値に応じて上記第2のクロックグループの中からクロック信号を1つ選択して上記第5のクロック信号として出力する。
〔5〕上記〔1〕において、上記第1の高周波クロック処理部は、上記第2のクロック信号の第1の状態に基づいて動作する論理回路(801,802)を含んで構成することができる。上記第1の低周波クロック処理部は、上記第3のクロック信号の第1の状態に基づいて動作する論理回路(803,804)と、上記第3のクロック信号の第2の状態に基づいて動作する論理回路(805,806)とを含んで構成することができる。上記第2の高周波クロック処理部は、上記第4のクロック信号の第1の状態に基づいて動作する論理回路(810,811)と、上記第4のクロック信号の上記第2の状態に基づいて動作する論理回路(812,813)と、を含んで構成することができる。上記第2の低周波クロック処理部は、上記第5のクロック信号の第1の状態に基づいて動作する論理回路(814,815)と、上記第5のクロック信号の第2の状態に基づいて動作する論理回路(816,817)とを含んで構成することができる。
このとき、上記第2のクロック信号の第1の状態は、上記第2のクロック信号の立下りエッジとされ、上記第3のクロック信号の第1の状態は、上記第3のクロック信号の立下りエッジとされ、上記第3のクロック信号の第2の状態は、上記第3のクロック信号の立上りエッジとされ、上記第4のクロック信号の第1の状態は、上記第4のクロック信号の立下りエッジとされる。また、上記第4のクロック信号の第2の状態は、上記第4のクロック信号の立上りエッジとされ、上記第5のクロック信号の第1の状態は、上記第5のクロック信号の立下りエッジとされ、上記第5のクロック信号の第2の状態は、上記第5のクロック信号の立上りエッジとされる。
〔6〕上記〔5〕において、第1のクロック選択部(202b)と、第2のクロック選択部(203)とを設けることができる。
上記第1のクロック選択部(202b)は、複数のクロック信号を群とする第1のクロックグループと、上記第1クロックグループに属するクロック信号よりも周波数が低い複数のクロック信号を群とする第2のクロックグループとを入力する。そして上記第1のクロック選択部(202b)は、現選択信号の値に応じて上記第1のクロックグループの中からクロック信号を1つ選択して上記第2のクロック信号として出力し、上記現選択信号の値に応じて上記第2クロックグループの中からクロック信号を1つ選択して上記第3のクロック信号として出力し、上記第2のクロック信号と上記第3のクロック信号の何れか一方を第1のクロック信号として出力する。
上記第2のクロック選択部(203)上記第1のクロックグループと上記第2のクロックグループとを入力して、新選択信号の値に応じて上記第1のクロックグループの中からクロック信号を1つ選択して上記第4のクロック信号として出力し、上記新選択信号の値に応じて上記第2のクロックグループの中からクロック信号を1つ選択して上記第5のクロック信号として出力する。
〔7〕上記〔2〕のクロック制御信号生成回路(201)を含んでクロックセレクタ(301)を構成することができる。この場合において、上記クロックセレクタ(301)には、ゲーティング制御部(302)を設けることができる。このゲーティング制御部(302)は、上記第1のクロック停止許可信号がアクティブ状態でかつ、上記クロック再開許可信号が非アクティブ状態であるときに第1のゲーティング制御信号を非アクティブ状態にして出力し、上記第2のクロック停止許可信号がアクティブ状態でかつ、上記クロック再開許可信号が非アクティブ状態であるときに第2のゲーティング制御信号を非アクティブ状態にして出力する。また、上記クロックセレクタ(301)には、クロックゲーティング部(303)を設けることができる。上記クロックゲーティング部は、上記第1のゲーティング制御信号が非アクティブ状態であるときに出力クロック信号を論理レベルのローに固定して出力する。上記クロックゲーティング部は、上記第2のゲーティング制御信号が非アクティブ状態であるときに上記出力クロック信号を論理レベルのハイに固定して出力する。そして上記クロックゲーティング部は、上記第1のゲーティング制御信号と上記第2のゲーティング制御信号が共にアクティブ状態であるときに上記第1のクロック信号を上記出力クロック信号として出力する。さらに上記クロックセレクタ(301)には、上記切り替えトリガ信号が非アクティブ状態からアクティブ状態へ変化したときにクロック選択信号の値を保持して上記新選択信号として出力する第1の選択信号保持部(304)を設けることができる。そして、上記クロックセレクタ(301)には、上記第1のゲーティング制御信号と上記第2のゲーティング制御信号の何れか一方がアクティブ状態から非アクティブ状態へ変化したときに所定の時間が経過してから上記新選択信号の値を保持して上記現選択信号として出力する第2の選択信号保持部(305)を設けることができる。
〔8〕上記〔4〕のクロック制御信号生成回路を含んでクロックセレクタを構成することができる。上記クロックセレクタには、上記第1のクロック停止許可信号がアクティブ状態でかつ、上記クロック再開許可信号が非アクティブ状態であるときに第1のゲーティング制御信号を非アクティブ状態にして出力し、上記第2のクロック停止許可信号がアクティブ状態でかつ、上記クロック再開許可信号が非アクティブ状態であるときに第2のゲーティング制御信号を非アクティブ状態にして出力するゲーティング制御部(1701)を設ける。
また上記クロックセレクタには、クロックゲーティング部(1702)を設けることができる。クロックゲーティング部は、上記第1のゲーティング制御信号が非アクティブ状態であるときに出力クロック信号を論理レベルのローに固定して出力し、上記第2のゲーティング制御信号が非アクティブ状態であるときに上記出力クロック信号を論理レベルのハイに固定して出力し、上記第1のゲーティング制御信号と上記第2のゲーティング制御信号が共にアクティブ状態であるときに上記第1のクロック信号を上記出力クロック信号として出力する。
さらに上記クロックセレクタには、第2の選択信号保持部(1704)とを設けることができる。第2の選択信号保持部は、上記切り替えトリガ信号が非アクティブ状態からアクティブ状態へ変化したときにクロック選択信号の値を保持して上記新選択信号として出力する第1の選択信号保持部(1703)と、上記第1のゲーティング制御信号と上記第2のゲーティング制御信号の何れか一方がアクティブ状態から非アクティブ状態へ変化したときに所定の時間が経過してから上記新選択信号の値を保持して上記現選択信号として出力する。
〔9〕上記〔6〕のクロック制御信号生成回路を含んでクロックセレクタを構成することができる。このとき、上記クロックセレクタには、ゲーティング制御部(1901)を設けることができる。ゲーティング制御部は、上記第1のクロック停止許可信号がアクティブ状態でかつ、上記クロック再開許可信号が非アクティブ状態であるときに第1のゲーティング制御信号を非アクティブ状態にして出力し、上記第2のクロック停止許可信号がアクティブ状態でかつ、上記クロック再開許可信号が非アクティブ状態であるときに第2のゲーティング制御信号を非アクティブ状態にして出力する。
また上記クロックセレクタには、クロックゲーティング部(1902)を設けることができる。クロックゲーティング部は、上記第1のゲーティング制御信号が非アクティブ状態であるときに出力クロック信号を論理レベルのローに固定して出力し、上記第2のゲーティング制御信号が非アクティブ状態であるときに上記出力クロック信号を論理レベルのハイに固定して出力し、上記第1のゲーティング制御信号と上記第2のゲーティング制御信号が共にアクティブ状態であるときに上記第1のクロック信号を上記出力クロック信号として出力する。
さらに上記クロックセレクタには、上記切り替えトリガ信号が非アクティブ状態からアクティブ状態へ変化したときにクロック選択信号の値を保持して上記新選択信号として出力する第1の選択信号保持部(1903)を設けることができる。
そして上記クロックセレクタには、上記第1のゲーティング制御信号と上記第2のゲーティング制御信号の何れか一方がアクティブ状態から非アクティブ状態へ変化したときに所定の時間が経過してから上記新選択信号の値を保持して上記現選択信号として出力する第2の選択信号保持部(1904)を設けることができる。
〔10〕上記〔8〕のクロックセレクタと、上記クロックセレクタから出力されたクロック信号に同期して動作する機能モジュール(2529)とを含んで情報処理装置(2501)を構成することができる。
〔11〕上記〔9〕のクロックセレクタと、上記クロックセレクタから出力されたクロック信号に同期して動作する機能モジュール(2529)とを含んで情報処理装置(2501)を構成することができる。
上記〔8〕又は上記〔9〕のクロックセレクタを含んで情報処理装置を構成した場合には、上記クロックセレクタによって高速なクロック切り替えを行うことができるため、例えば情報処理装置が低消費電力モードから高速動作モードへ移行する際に要する時間を大幅に短縮することが可能になる。これにより、消費電力が大きい高周波クロックソースを無駄に動作させておかなければならない待機時間の短縮を図ることができ、装置の低消費電力化に寄与できる。
2.実施の形態の詳細
実施の形態について更に詳述する。
以下の説明において、論理レベルのローと論理値“0”は等価であり、論理レベルのハイと論理値“1”は等価である。
<実施の形態1>
図1には、本発明にかかるクロック制御信号生成回路の構成例が示される。
図1に示すクロック制御信号生成回路101は、切り替え前クロック処理部102と切り替え後クロック処理部106を有する。切り替え前クロック処理部102は更に第1の高周波クロック処理部(1HFC−PRO)103と第1の低周波クロック処理部(1LFC−PRO)104とOR回路105で構成され、切り替え後クロック処理部106は更に第2の高周波クロック処理部(2HFC−PRO)107と第2の低周波クロック処理部(2LFC−PRO)108とOR回路109を含んで構成される。
クロック制御信号生成回路101には、第2のクロック信号2CLK、第3のクロック信号3CLK、第4のクロック信号4CLK、第5のクロック信号5CLK、切り替えトリガ信号ST−SIG、現選択信号CSEL−SIG〔n〕、第1のリセット信号1RST−SIG、第2のリセット信号2RST−SIGが入力される。そしてクロック制御信号生成回路101からは、第1のクロック停止許可信号1CST−SIG、第2のクロック停止許可信号2CST−SIG、クロック再開許可信号C−RES−SIGが出力される。
第2のクロック信号2CLKと第4のクロック信号4CLKは比較的周波数が高く、且つ、互いに異なるクロック信号であり、第3のクロック信号3CLKと第5のクロック信号5CLKは比較的周波数が低く、且つ、互いに異なるクロック信号である。尚、第3のクロック信号3CLK、第5のクロック信号5CLKは、第2のクロック信号2CLK、第4のクロック信号4CLKの周波数に比べて低い。比較的周波数の高い第2のクロック信号2CLKと比較的周波数の低い第3のクロック信号3CLKは何れか一方のみが取り込まれ、両者同時に供給されることはないものとする。同様に、比較的周波数の高い第4のクロック信号4CLKと比較的周波数の低い第5のクロック信号5CLKは何れか一方のみが取り込まれ、両者同時に供給されることはないものとする。
切り替えトリガ信号ST−SIGが非アクティブ状態からアクティブ状態に変化するとクロック切り替えのイベントが発生したことを意味し、クロック制御信号生成回路101は第1のクロック停止許可信号1CST−SIGと第2のクロック停止許可信号2CST−SIGの何れか一方を非アクティブ状態からアクティブ状態にさせるための処理を開始する。その後、クロック制御信号生成回路101はクロック再開許可信号C−RES−SIGを非アクティブ状態からアクティブ状態に変化させるための処理を行う。
第1の高周波クロック処理部103は、切り替えトリガ信号ST−SIGがアクティブ状態で且つ、第2のクロック信号2CLKが供給されているときに第2のクロック信号2CLKの第1の状態を検出した場合に第1の検出信号1DET−SIGをアクティブ状態にして出力する。
第1の低周波クロック処理部104は、切り替えトリガ信号ST−SIGがアクティブ状態で且つ、第3のクロック信号3CLKが供給されているときに第3のクロック信号3CLKの第1の状態を検出した場合に第2の検出信号2DET−SIGをアクティブ状態にして出力し、同様に第3のクロック信号3CLKの第2の状態を検出した場合に第3の検出信号3DET−SIGをアクティブ状態にして出力する。
但し、第1の検出信号1DET−SIGと第2の検出信号2DET−SIGと第3の検出信号3DET−SIGが重複してアクティブ状態になることはないものとする。
切り替え前クロック処理部102は、OR回路105によって、第1の検出信号1DET−SIGと第2の検出信号2DET−SIGのうち、どちらか一方がアクティブ状態であるときに第1のクロック停止許可信号1CST−SIGをアクティブ状態にして出力し、第3の検出信号3DET−SIGがアクティブ状態であるときは第2のクロック停止許可信号2CST−SIGをアクティブ状態にして出力する。
第2の高周波クロック処理部107は、第1のクロック停止許可信号1CST−SIGがアクティブ状態で且つ、第4のクロック信号4CLKが供給されているときに第4のクロック信号4CLKの第1の状態を検出した場合に第4の検出信号4DET−SIGをアクティブ状態にして出力する。そして第2の高周波クロック処理部107は、第2のクロック停止許可信号2CST−SIGがアクティブ状態で且つ、第4のクロック信号4CLKが供給されているときに第4のクロック信号4CLKの第2の状態を検出した場合に第5の検出信号5DET−SIGをアクティブ状態にして出力する。
第2の低周波クロック処理部108は、第1のクロック停止許可信号1CST−SIGがアクティブ状態で且つ、第5のクロック信号5CLKが供給されているときに第5のクロック信号5CLKの第1の状態を検出した場合に第6の検出信号6DET−SIGをアクティブ状態にして出力する。そして第2の低周波クロック処理部108は、第2のクロック停止許可信号2CST−SIGがアクティブ状態で且つ、第5のクロック信号5CLKが供給されているときに第5のクロック信号5CLKの第2の状態を検出した場合に第7の検出信号7DET−SIGをアクティブ状態にして出力する。
但し、第4の検出信号4DET−SIGと第5の検出信号5DET−SIGと第6の検出信号6DET−SIGと第7の検出信号7DET−SIGが重複してアクティブ状態になることはないものとする。
切り替え後クロック処理部106は、OR回路109によって、第4の検出信号4DET−SIGと第5の検出信号5DET−SIGと第6の検出信号6DET−SIGと第7の検出信号7DET−SIGのうち、何れか1つがアクティブ状態であるときにクロック再開許可信号C−RES−SIGをアクティブ状態にして出力する。
以上のように、クロック制御信号生成回路101は、切り替え前クロック処理部102において切り替えトリガ信号ST−SIGがアクティブ状態であるときに、第2のクロック信号2CLKか第3のクロック信号3CLKの状態に基づいて、第1のクロック停止許可信号1CST−SIGと第2のクロック停止許可信号2CST−SIGのうち、何れか一方をアクティブ状態にして出力する。そしてクロック制御信号生成回路101は、切り替え後クロック処理部106において第1のクロック停止許可信号1CST−SIGか第2のクロック停止許可信号2CST−SIGがアクティブ状態であるときに、第4のクロック信号4CLKか第5のクロック信号5CLKの状態に基づいて、クロック再開許可信号C−RES−SIGをアクティブ状態にして出力する。
上記の一連の処理が終了した後に、第1のリセット信号1RST−SIGと第2のリセット信号2RST−SIGが非アクティブ状態からアクティブ状態に変えられる。第1のリセット信号1RST−SIGがアクティブ状態になることによって、第1の高周波クロック処理部103と第1の低周波クロック処理部104の内部回路が初期化され、第2のリセット信号2RST−SIGがアクティブ状態になることによって、第2の高周波クロック処理部107と第2の低周波クロック処理部108の内部回路が初期化される。
第1の低周波クロック処理部104に入力される現選択信号CSEL−SIG〔n〕は、第1の低周波クロック処理部104の内部構成によって使用の有無が異なる。それについては以降の実施の形態で説明する。
<実施の形態2>
図2には、上記クロック制御信号生成回路101の別の構成例が示される。図2に示される構成では、実施の形態1で説明したクロック制御信号生成回路(CK−CNT−SGEN)101の他に、第1のクロック選択部(1C−SEL)202と第2のクロック選択部(2C−SEL)203が設けられている。このような意味で、図2に示されるクロック制御信号生成回路を、「選択型クロック制御信号生成回路201」と称する。
選択型クロック制御信号生成回路201には、複数のクロック信号(入力クロック信号CKIN1から入力クロック信号CKIN6)と、n+1ビット(nは正の整数)の現選択信号CSEL−SIG〔n:0〕、n+1ビットの新選択信号NSEL−SIG〔n:0〕、切り替えトリガ信号ST−SIG、第2のクロック選択部En(イネーブル)信号2CLKEN−SIG、第1のリセット信号1RST−SIG、第2のリセット信号2RST−SIGが入力される。そして選択型クロック制御信号生成回路201からは、第1のクロック信号1CLK、第1のクロック停止許可信号1CST−SIG、第2のクロック停止許可信号2CST−SIG、クロック再開許可信号C−RES−SIGが出力される。
入力クロック信号CKIN1、入力クロック信号CKIN2、入力クロック信号CKIN3は比較的周波数が高く互いに異なるクロック信号であり、高周波クロックのグループに分類される。
入力クロック信号CKIN4、入力クロック信号CKIN5、入力クロック信号CKIN6は比較的周波数が低く互いに異なるクロック信号であり、低周波クロックのグループに分類される。
n+1ビットの現選択信号CSEL−SIG〔n:0〕は、第1のクロック選択部202に対して入力クロック信号CKIN1から入力クロック信号CKIN6の中からどれを選択出力するかを指示する。
n+1ビットの新選択信号NSEL−SIG〔n:0〕は、第2のクロック選択部203に対して入力クロック信号CKIN1から入力クロック信号CKIN6の中からどれを選択出力するかを指示する。
図2では、入力されるクロック(入力クロック信号CKIN1から入力クロック信号CKIN6)の数が6である場合を仮定しており、この実施の形態では現選択信号CSEL−SIGと新選択信号NSEL−SIGは共に3ビット(n=2)の信号になる。但し、現選択信号CSEL−SIGと新選択信号NSEL−SIGが示す値は互いに異なる。尚、入力される複数のクロック信号の数は6に限定されないし、入力される複数のクロック信号の数に応じて、現選択信号CSEL−SIG〔n:0〕と新選択信号NSEL−SIG〔n:0〕のビット数(nの値)は変更される。
第1のクロック選択部202は、3ビットの現選択信号CSEL−SIGが高周波クロックのグループからのクロック選択を指示している場合は、3ビットの現選択信号CSEL−SIGの値に応じて、入力クロック信号CKIN1、入力クロック信号CKIN2、入力クロック信号CKIN3の中から1つを選択して第2のクロック信号2CLKとして出力する。また第1のクロック選択部202は、3ビットの現選択信号CSEL−SIGが低周波クロックのグループからのクロック選択を指示している場合は、3ビットの現選択信号CSEL−SIGの値に応じて、入力クロック信号CKIN4、入力クロック信号CKIN5、入力クロック信号CKIN6の中から1つを選択して第3のクロック信号3CLKとして出力する。更に第1のクロック選択部202は、第2のクロック信号2CLKに基づく信号と第3のクロック信号3CLKに基づく信号の何れか一方を第1のクロック信号1CLKとして出力する。既に実施の形態1で述べたように、第2のクロック信号2CLKと第3のクロック信号3CLKからは同時にクロックが出力されることはなく、クロックを出力するのは常に何れか一方のみである。
第2のクロック選択部203は、第2のクロック選択部En信号2CLKEN−SIGがアクティブ状態であるときに、3ビットの新選択信号NSEL−SIGが高周波クロックのグループからのクロック選択を指示している場合は、3ビットの新選択信号NSEL−SIGの値に応じて、入力クロック信号CKIN1、入力クロック信号CKIN2、入力クロック信号CKIN3の中から1つを選択して第4のクロック信号4CLKとして出力する。また第2のクロック選択部203は、同様に3ビットの新選択信号NSEL−SIGが低周波クロックのグループからのクロック選択を指示している場合は、3ビットの新選択信号NSEL−SIGの値に応じて、入力クロック信号CKIN4、入力クロック信号CKIN5、入力クロック信号CKIN6の中から1つを選択して第5のクロック信号5CLKとして出力する。ここでも、既に実施の形態1で述べたように、第4のクロック信号4CLKと第5のクロック信号5CLKからは同時にクロックが出力されることはなく、クロックを出力するのは常に何れか一方のみである。
クロック制御信号生成回路101は、実施の形態1で説明した動作に基づいて第1のクロック停止許可信号1CST−SIG、第2のクロック停止許可信号2CST−SIGとクロック再開許可信号C−RES−SIGを出力する。この信号出力は、切り替えトリガ信号ST−SIGと、第1のクロック選択部202によって選択出力された第2のクロック信号2CLK、第3のクロック信号3CLKと、第2のクロック選択部203によって選択出力された第4のクロック信号4CLK、第5のクロック信号5CLKに基づいて行われる。
<実施の形態3>
図3には、本発明にかかるクロックセレクタの基本的な構成例が示される。
図3に示されるクロックセレクタ301は、実施の形態2で説明した選択型クロック制御信号生成回路(SCC−GEN)201と、ゲーティング制御部(G−CNT)302と、クロックゲーティング部(C−GAT)303と、第1の選択信号保持部(1SEL−ST)304と、第2の選択信号保持部(2SEL−ST)305と、リセット信号生成部(REST−GEN)306とを有する。
クロックセレクタ301には、複数のクロック信号(入力クロック信号CKIN1から入力クロック信号CKIN6)とn+1ビットのクロック選択信号と切り替えトリガ信号ST−SIGと第2のクロック選択部En信号2CLKEN−SIGが入力される。そしてクロックセレクタ301からは、出力クロック信号CKOUTとn+1ビットの現選択信号CSEL−SIG〔n:0〕と切り替え実行信号SEL−RUN−SIGと第2のリセット信号2RST−SIGが出力される。
n+1ビットのクロック選択信号は、クロックセレクタ301に対して、入力クロック信号CKIN1から入力クロック信号CKIN6の中からどれを選択出力するかを指示する。この値は、クロック切り替えを行う場合は、切り替えトリガ信号ST−SIGが非アクティブ状態からアクティブ状態に変化する前に、切り替え前クロックの選択を示す値から切り替え後クロックの選択を示す値に更新されるものとする。
図3では、図2と同様に入力されるクロック(入力クロック信号CKIN1から入力クロック信号CKIN6)の数が6である場合を仮定している。従って、実施の形態2で説明したn+1ビットの現選択信号CSEL−SIG〔n:0〕とn+1ビットの新選択信号NSEL−SIG〔n:0〕と同様に、この実施の形態ではクロック選択信号は3ビット(n=2)になる。尚、入力される複数のクロック信号の数は6に限定されないし、入力される複数のクロック信号の数に応じて、クロック選択信号のビット数(nの値)は変更される。
選択型クロック制御信号生成回路201は、実施の形態2で説明した動作に基づいて第1のクロック信号1CLK、第1のクロック停止許可信号1CST−SIG、第2のクロック停止許可信号2CST−SIG及びクロック再開許可信号C−RES−SIGを出力する。この信号出力は、複数の入力クロック信号(入力クロック信号CKIN1から入力クロック信号CKIN6)と3ビットの現選択信号CSEL−SIGと3ビットの新選択信号NSEL−SIGと切り替えトリガ信号ST−SIGと第2のクロック選択部En信号2CLKEN−SIGに基づいて行われる。
ゲーティング制御部302は、第1のクロック停止許可信号1CST−SIGがアクティブ状態でかつ、クロック再開許可信号C−RES−SIGが非アクティブ状態であるときに第1のゲーティング制御信号1GAT−SIGを非アクティブ状態にして出力する。そしてゲーティング制御部302は、第2のクロック停止許可信号2CST−SIGがアクティブ状態でかつ、クロック再開許可信号C−RES−SIGが非アクティブ状態であるときに第2のゲーティング制御信号2GAT−SIGを非アクティブ状態にして出力する。ここで、第1のゲーティング制御信号1GAT−SIGと第2のゲーティング制御信号2GAT−SIGはどちらか一方のみが非アクティブ状態になり、両者が同時に非アクティブ状態になることはない。
クロックゲーティング部303は、第1のゲーティング制御信号1GAT−SIGが非アクティブ状態であるときに出力クロック信号CKOUTを論理レベルのローに固定して出力し、第2のゲーティング制御信号2GAT−SIGが非アクティブ状態であるときに出力クロック信号CKOUTを論理レベルのハイに固定して出力する。そしてクロックゲーティング部303は、第1のゲーティング制御信号1GAT−SIGと第2のゲーティング制御信号2GAT−SIGが共にアクティブ状態であるときは第1のクロック信号1CLKを出力クロック信号CKOUTとして出力する。
第1の選択信号保持部304は、切り替えトリガ信号ST−SIGが非アクティブ状態からアクティブ状態へ変化したときに、切り替え前クロックの選択を示す値から切り替え後クロックの選択を示す値に更新された後の3ビットのクロック選択信号をサンプリングして保持し、3ビットの新選択信号NSEL−SIGを切り替え前クロックの選択を示す値から切り替え後クロックの選択を示す値に更新して出力する。
第2の選択信号保持部305は、第1のゲーティング制御信号1GAT−SIGと第2のゲーティング制御信号2GAT−SIGの何れか一方がアクティブ状態から非アクティブ状態へ変化したときに、所定の時間が経過してから切り替え前クロックの選択を示す値から切り替え後クロックの選択を示す値に更新された後の3ビットの新選択信号NSEL−SIGをサンプリングして保持する。そして第2の選択信号保持部305は、そのサンプリング保持値を、3ビットの現選択信号CSEL−SIGを切り替え前クロックの選択を示す値から切り替え後クロックの選択を示す値に更新して出力する。
リセット信号生成部306は、クロック再開許可信号C−RES−SIGが非アクティブ状態からアクティブ状態に変化した後に、第1のリセット信号1RST−SIGを非アクティブ状態からアクティブ状態に変えて出力し、更に所定の時間が経過した後に第2のリセット信号2RST−SIGを非アクティブ状態からアクティブ状態に変えて出力する。第1のリセット信号1RST−SIGと第2のリセット信号2RST−SIGは、クロック切り替えの処理が完了した後に選択型クロック制御信号生成回路201の内部回路を初期化する。
図4には、クロック切り替えイベントが発生したときのクロックセレクタ301の動作タイミングが示される。
図4を参照して、クロック切り替え処理の流れをクロックセレクタ301の各ブロックの動作と連携して説明する。以下の説明で、時刻T1〜T5は図4中に示す各時刻に対応する。また、第1のクロック停止許可信号1CST−SIG、第2のクロック停止許可信号2CST−SIG、クロック再開許可信号C−RES−SIGの初期状態は非アクティブ状態(例えば論理レベルのロー)とし、第1のゲーティング制御信号1GAT−SIGの初期状態はアクティブ状態(例えば論理レベルのハイ)とする。第2のゲーティング制御信号2GAT−SIGの初期状態はアクティブ状態(例えば論理レベルのロー)とし、第1のリセット信号1RST−SIG、第2のリセット信号2RST−SIGの初期状態は非アクティブ状態(例えば論理レベルのハイ)とする。
時刻T1では、外部から供給される3ビットのクロック選択信号の値が(x、x、x)から(y、y、y)に変化し、第2のクロック選択部En信号2CLKEN−SIGが非アクティブ状態(論理レベルのロー)からアクティブ状態(論理レベルのハイ)に変化する。
時刻T2では、時刻T1から所定の時間(図4中のD6)が経過した後、外部から供給される切り替えトリガ信号ST−SIGが非アクティブ状態(論理レベルのロー)からアクティブ状態(論理レベルのハイ)に変化する。これにより、第1の選択信号保持部304が3ビットの新選択信号NSEL−SIGの値を(x、x、x)から(y、y、y)に変える。これを受けて、第2のクロック選択部203が、3ビットの新選択信号NSEL−SIGが示す値(y、y、y)に対応する第4のクロック信号4CLKまたは第5のクロック信号5CLKの出力を開始する。また、切り替え前クロック処理部102が処理を開始する。
時刻T3では、切り替え前クロック処理部102が第2のクロック信号2CLKまたは第3のクロック信号3CLKの論理レベルを検出し、その結果によって、第1のクロック停止許可信号1CST−SIGか第2のクロック停止許可信号2CST−SIGを非アクティブ状態(論理レベルのロー)からアクティブ状態(論理レベルのハイ)に変化させる。尚、図4では、第2のクロック信号2CLKまたは第3のクロック信号3CLKの論理レベルのローを検出し、第1のクロック停止許可信号1CST−SIGがアクティブ状態に変化する場合を仮定している。逆に第2のクロック信号2CLKまたは第3のクロック信号3CLKの論理レベルのハイを検出した場合は、第2のクロック停止許可信号2CST−SIGをアクティブ状態にする。
これにより、ゲーティング制御部302が第1のゲーティング制御信号1GAT−SIGをアクティブ状態(論理レベルのハイ)から非アクティブ状態(論理レベルのロー)に変える。このとき、第2のゲーティング制御信号2GAT−SIGはアクティブ状態(論理レベルのロー)のままである。更にこれを受けて、クロックゲーティング部303が出力クロック信号CKOUTを論理レベルのローに固定する(出力クロックの停止(STP)を実施)。また、切り替え後クロック処理部106が処理を開始する。
時刻T4では、時刻T3から所定の時間(図4中のD1)が経過した後、第2の選択信号保持部305が3ビットの現選択信号CSEL−SIGの値を(x、x、x)から(y、y、y)に変える。これにより、第1のクロック選択部202が第1のクロック信号1CLKを、3ビットの現選択信号CSEL−SIGが示す値(y、y、y)に対応する切り替え後のクロック信号に切り替える(クロック選択の変更を実施)。
時刻T5では、切り替え後クロック処理部106が第4のクロック信号4CLKまたは第5のクロック信号5CLKの論理レベルのローを検出して、クロック再開許可信号C−RES−SIGを非アクティブ状態(論理レベルのロー)からアクティブ状態(論理レベルのハイ)に変化させる。尚、図4では、時刻T3において切り替え前クロック処理部102が第1のクロック停止許可信号1CST−SIGをアクティブ状態に変化させたため、第4のクロック信号4CLKまたは第5のクロック信号5CLKの論理レベルのローの検出を以ってクロック再開許可信号C−RES−SIGをアクティブ状態に変化させる。逆に切り替え前クロック処理部102が第2のクロック停止許可信号2CST−SIGをアクティブ状態に変化させた場合は、第4のクロック信号4CLKまたは第5のクロック信号5CLKの論理レベルのハイの検出を以ってクロック再開許可信号C−RES−SIGをアクティブ状態に変化させる。
これにより、ゲーティング制御部302が第1のゲーティング制御信号1GAT−SIGを非アクティブ状態(論理レベルのロー)からアクティブ状態(論理レベルのハイ)に変える。このとき、第2のゲーティング制御信号2GAT−SIGはアクティブ状態(論理レベルのロー)のままである。更にこれを受けて、クロックゲーティング部303は出力クロック信号CKOUTを第1のクロック信号1CLKに戻す(出力クロックの再開を実施)。
時刻T5の後、第1のリセット信号1RST−SIGが非アクティブ状態(論理レベルのハイ)からアクティブ状態(論理レベルのロー)に変わり、これから所定の時間(図4中のD2)が経過した後に、第2のリセット信号2RST−SIGが非アクティブ状態(論理レベルのハイ)からアクティブ状態(論理レベルのロー)に変わる。
第1のリセット信号1RST−SIGがアクティブ状態になることによって切り替え前クロック処理部102の内部回路が初期化され、第1のクロック停止許可信号1CST−SIGが初期状態である非アクティブ状態に変化する。そして第2のリセット信号2RST−SIGがアクティブ状態になることによって切り替え後クロック処理部106の内部回路が初期化され、クロック再開許可信号C−RES−SIGが初期状態である非アクティブ状態に変化する。
出力クロック信号CKOUTは、時刻T3までは切り替え前のクロック信号を出力し、時刻T3〜T5までの期間は停止状態に制御され、時刻T5以降は切り替え後のクロック信号を出力する。
以上の動作において、時刻T2で用いた待機時間D6は、3ビットのクロック選択信号の値が安定してから、以降の処理が行われるようにするために挿入される。また、時刻T4で用いた待機時間D1は、クロックの停止が行われてから第1のクロック信号1CLKの選択切り替えを起こすために挿入される。
以上の説明では時刻T3において、クロックゲーティング部303は第1のゲーティング制御信号1GAT−SIGが非アクティブ状態になったことを受けて、出力クロック信号CKOUTを論理レベルのローに固定して停止したが、逆に、第2のゲーティング制御信号2GAT−SIGが非アクティブになった場合は、出力クロック信号CKOUTを論理レベルのハイに固定して停止するようにしても良い。つまり、切り替え前クロック処理部102において第2のクロック信号2CLKまたは第3のクロック信号3CLKの論理レベルのローを検出した場合は、クロックゲーティング部303は出力クロック信号CKOUTを論理レベルのローに固定して停止する。また、切り替え前クロック処理部102において第2のクロック信号2CLKまたは第3のクロック信号3CLKの論理レベルのハイを検出した場合は、クロックゲーティング部303は出力クロック信号CKOUTを論理レベルのハイに固定して停止する。
<実施の形態4>
図5には、図1に示されるクロック制御信号生成回路の具体的な回路構成例が示される。
図5に示されるクロック制御信号生成回路101aにおいて、第1の高周波クロック処理部103は、フリップフロップ501とフリップフロップ502とが結合されて成る。フリップフロップ501とフリップフロップ502とは互いに直列接続され、第2のクロック信号2CLKが入力される。フリップフロップ501には、切り替えトリガ信号ST−SIGが入力される。フリップフロップ502から第1の検出信号DET−SIGが出力される。第1の低周波クロック処理部104aは、フリップフロップ503、インバータ504、フリップフロップ505、遅延時間D3の遅延回路(DLY)506と、AND回路507とAND回路508が結合されて成る。フリップフロップ503は、インバータ504を介してAND回路507に結合される。フリップフロップ505は、遅延回路506を介してAND回路507とAND回路508とに結合される。AND回路507から第2の検出信号2ST−DET−SIGが出力され、AND回路508から第3の検出信号3ST−DET−SIGが出力される。第2の高周波クロック処理部107は、フリップフロップ510,511,512,513を含んで成る。フリップフロップ510,511は互いに直列接続される。フリップフロップ512,513は互いに直列接続される。フリップフロップ512から第4の検出信号4DET−SIGが出力され、フリップフロップ513から第5の検出信号5DET−SIGが出力される。第2の低周波クロック処理部108aは、フリップフロップ514,515,516,517を含んで成る。フリップフロップ514,515が互いに直列接続され、フリップフロップ516,517が互いに直列接続される。フリップフロップ515から第6の検出信号6DET−SIGが出力され、フリップフロップ517から第7の検出信号7DET−SIGが出力される。
図6には、比較的周波数が高いクロック信号である第2のクロック信号2CLKと比較的周波数が低いクロック信号である第5のクロック信号5CLKがクロック供給を受けている場合の動作を説明するタイミングチャートである。
図5と図6を参照して動作を説明する。以下の説明で、時刻T2、T3、T5は図6中に示す各時刻に対応する。また、フリップフロップ501〜503、505、510〜517の出力信号の初期状態は非アクティブ状態(論理レベルのロー)であるとする。つまり、第1の検出信号1DET−SIG、第2の検出信号2DET−SIG、第3の検出信号3DET−SIG、第1のクロック停止許可信号1CST−SIG、第2のクロック停止許可信号2CST−SIG、第4の検出信号4DET−SIG、第5の検出信号5DET−SIG、第6の検出信号6DET−SIG、第7の検出信号7DET−SIG、クロック再開許可信号C−RES−SIGの初期状態は全て非アクティブ状態である。
時刻T2では、外部から供給される切り替えトリガ信号ST−SIGが非アクティブ状態(論理レベルのロー)からアクティブ状態(論理レベルのハイ)に変化する。これにより、切り替え前クロック処理部102aが処理を開始する。
時刻T3では、切り替えトリガ信号ST−SIGの状態の変化が、第1の高周波クロック処理部103内のフリップフロップ501、502によって、第2のクロック信号2CLKの2回の立下りエッジを経て第2のクロック信号2CLKの立下りエッジに同期化され、フリップフロップ502の出力信号である第1の検出信号1DET−SIGが非アクティブ状態(論理レベルのロー)からアクティブ状態(論理レベルのハイ)に変化する。これにより、OR回路105の出力信号である第1のクロック停止許可信号1CST−SIGが非アクティブ状態(論理レベルのロー)からアクティブ状態(論理レベルのハイ)に変化する。また、切り替え後クロック処理部106aが処理を開始する。
時刻T5では、第1のクロック停止許可信号1CST−SIGの状態の変化が、第2の低周波クロック処理部108a内のフリップフロップ514、515によって、第5のクロック信号5CLKの立下りエッジとこれに続く立上りエッジを経て第5のクロック信号5CLKの立上りエッジに同期化される。そしてフリップフロップ515の出力信号である第6の検出信号6DET−SIGが非アクティブ状態(論理レベルのロー)からアクティブ状態(論理レベルのハイ)に変化する。これにより、OR回路109の出力信号であるクロック再開許可信号C−RES−SIGが非アクティブ状態(論理レベルのロー)からアクティブ状態(論理レベルのハイ)に変化する。
時刻T5の第2の低周波クロック処理部108aの説明において、仮に第1のクロック停止許可信号1CST−SIGではなく第2のクロック停止許可信号2CST−SIGが非アクティブ状態からアクティブ状態に変化した場合は、次のようになる、すなわち、フリップフロップ514、515ではなく、フリップフロップ516、517によって、これが第5のクロック信号5CLKの立上りエッジとこれに続く立下りエッジを経て第5のクロック信号5CLKの立下りエッジに同期化され、フリップフロップ517の出力信号である第7の検出信号7DET−SIGが非アクティブ状態(論理レベルのロー)からアクティブ状態(論理レベルのハイ)に変化する。
また、時刻T5の説明において、仮に比較的周波数が低いクロック信号である第5のクロック信号5CLKではなく、比較的周波数が高いクロック信号である第4のクロック信号4CLKがクロック供給を受けている場合は、第2の低周波クロック処理部108aではなく第2の高周波クロック処理部107が動作する。このとき、第1のクロック停止許可信号1CST−SIGが非アクティブ状態からアクティブ状態に変化した場合は、フリップフロップ510、511によって、これが第4のクロック信号4CLKの2回の立下りエッジを経て第4のクロック信号4CLKの立下りエッジに同期化され、フリップフロップ511の出力信号である第4の検出信号4DET−SIGが非アクティブ状態からアクティブ状態(論理レベルのハイ)に変化する。第2のクロック停止許可信号2CST−SIGが非アクティブ状態からアクティブ状態に変化した場合は、フリップフロップ512、513によって、これが第4のクロック信号4CLKの2回の立上りエッジを経て第4のクロック信号4CLKの立上りエッジに同期化され、フリップフロップ513の出力信号である第5の検出信号5DET−SIGが非アクティブ状態からアクティブ状態(論理レベルのハイ)に変化する。
クロック制御信号生成回路(C−CNT−GEN)101aは、クロック切り替えを行うための制御信号を発生する目的で使われ、第1のクロック停止許可信号1CST−SIGや第2のクロック停止許可信号2CST−SIGによって出力クロックの停止が制御され、クロック再開許可信号C−RES−SIGによって出力クロックの再開が制御される。
上記の説明のように、切り替えトリガ信号ST−SIGの状態の変化は第1の高周波クロック処理部103においては第2のクロック信号2CLKに同期化され、第1のクロック停止許可信号1CST−SIGや第2のクロック停止許可信号2CST−SIGの状態の変化は、第2の高周波クロック処理部107や第2の低周波クロック処理部108aにおいて第4のクロック信号4CLKや第5のクロック信号5CLKに同期化される。これは、クロック切り替え時に出力クロック信号CKOUTにグリッチ(正規のクロックパルス幅よりも狭いパルス)が発生しないことを保証するために必要な手続きである。一般的に外部から供給される制御信号の値はクロック信号と非同期に変化する場合があるため、切り替えトリガ信号ST−SIGの変化は第2のクロック信号2CLKと非同期で起こる可能性があり、第2のクロック信号2CLKや第3のクロック信号3CLKと第4のクロック信号4CLKや第5のクロック信号5CLKは非同期である。このためクロック切り替え時に出力クロック信号CKOUTにグリッチが発生するおそれがある。
また、フリップフロップ501、502の2段直列接続、フリップフロップ510、511の2段直列接続とフリップフロップ512、513の2段直列接続、フリップフロップ514、515の2段直列接続とフリップフロップ516、517の2段直列接続は、フリップフロップのメタステーブル現象への対策のためである。
ところで、第2の高周波クロック処理部107では2段直列接続されているフリップフロップ(510と511及び、512と513)のクロックの動作エッジの向きは同じであるが、第2の低周波クロック処理部108aでは、それが異なっている。これは、クロック信号の1周期の長さの違いに対する配慮である。比較的周波数が高い第4のクロック信号4CLKが入力される第2の高周波クロック処理部107では、メタステーブルが安定するまでにクロック信号の1周期時間程度はかかると考えられる。そのため、1段目のフリップフロップと2段目のフリップフロップの動作間隔をクロックの1周期時間分だけ確保している。一方、比較的周波数が低い第5のクロック信号5CLKが入力される第2の低周波クロック処理部108aでは、クロック信号の1周期の長さが比較的長いので、メタステーブルが安定するまでにクロック信号の1周期時間はかからず、0.5周期程度で十分と考えられる。そのため、1段目のフリップフロップと2段目のフリップフロップの動作間隔をクロックの0.5周期時間分だけ確保している。
図7には、比較的周波数が低いクロック信号である第3のクロック信号3CLKと比較的周波数が高いクロック信号である第4のクロック信号4CLKが供給されている場合の動作タイミングが示される。
図5と図7を参照して、この場合の動作を説明する。以下の説明で、時刻T2、T3、T5は図7中に示す各時刻に対応する。また、フリップフロップ501〜503、505、510〜517の出力信号の初期状態は非アクティブ状態(論理レベルのロー)であるとする。つまり、第1の検出信号1DET−SIG、第2の検出信号2DET−SIG、第3の検出信号3DET−SIG、第1のクロック停止許可信号1CST−SIG、第2のクロック停止許可信号2CST−SIG、第4の検出信号4DET−SIG、第5の検出信号5DET−SIG、第6の検出信号6DET−SIG、第7の検出信号7DET−SIG、クロック再開許可信号C−RES−SIGの初期状態は全て非アクティブ状態である。
尚、第3のクロック信号3CLKが供給されている場合、図5と図7中に示す現選択信号CSEL−SIG〔n:0〕の最上位ビットである現選択信号CSEL−SIG〔n〕はアクティブ状態(論理レベルのハイ)になる。
時刻T2では、外部から供給される切り替えトリガ信号ST−SIGが非アクティブ状態(論理レベルのロー)からアクティブ状態(論理レベルのハイ)に変化すると、現選択信号CSEL−SIG〔n〕がアクティブ状態(論理レベルのハイ)である。このため、第1の低周波クロック処理部104a内のフリップフロップ505の出力信号(F/F505OUT)が非アクティブ状態(論理レベルのロー)からアクティブ状態(論理レベルのハイ)に変化し、第1の低周波クロック処理部104aが動作を開始する。これによって、フリップフロップ503の出力信号(F/F503OUT)が第3のクロック信号3CLKの論理レベルに応じて変化する(図7では第3のクロック信号3CLKの論理レベルがハイなので、フリップフロップ503の出力信号は論理レベルのハイに変化する)。これに応じてインバータ504の出力信号(INV504OUT)が非アクティブ状態(論理レベルのロー)に変化する。以上の動作によって、切り替えトリガ信号ST−SIGが非アクティブ状態からアクティブ状態に変化した時点の第3のクロック信号3CLKの状態が論理レベルのハイであることが検出される。
時刻T3では、時刻T2でフリップフロップ505の出力信号がアクティブ状態に変化してから、所定の時間(図7中のD3)が経過した後、遅延回路506の出力信号が非アクティブ状態(論理レベルのロー)からアクティブ状態(論理レベルのハイ)に変化する。これによって、フリップフロップ503の出力信号の状態(第3のクロック信号3CLKの論理レベルの検出結果)を反映して、AND回路508の出力信号である第3の検出信号3DET−SIGが非アクティブ状態からアクティブ状態(論理レベルのハイ)に変化し、第2のクロック停止許可信号2CST−SIGが非アクティブ状態からアクティブ状態(論理レベルのハイ)に変化する。また、切り替え後クロック処理部106aが処理を開始する。
時刻T5では、第2のクロック停止許可信号2CST−SIGの状態の変化が、第2の高周波クロック処理部107内のフリップフロップ512、513によって、第4のクロック信号4CLKの2回の立上りエッジを経て第4のクロック信号4CLKの立上りエッジに同期化され、フリップフロップ513の出力信号である第5の検出信号5DET−SIGが非アクティブ状態からアクティブ状態(論理レベルのハイ)に変化する。これにより、OR回路109の出力信号であるクロック再開許可信号C−RES−SIGが非アクティブ状態(論理レベルのロー)からアクティブ状態(論理レベルのハイ)に変化する。
時刻T2の第1の低周波クロック処理部104aの説明において、切り替えトリガ信号ST−SIGが非アクティブ状態からアクティブ状態に変化したときに仮に、現選択信号CSEL−SIG〔n〕が非アクティブ状態(論理レベルのロー)であったとすると、フリップフロップ505の出力信号は非アクティブ状態を維持し続けるので、AND回路507と508の出力信号も非アクティブ状態を維持し続ける。その結果として、第2の検出信号2DET−SIGと第3の検出信号3DET−SIGは非アクティブの状態を維持する。これによって、第3のクロック信号3CLKが供給されていないときに、不正に第2の検出信号2DET−SIGがアクティブ状態になることを防ぐことが可能になる。
更に、時刻T2の第1の低周波クロック処理部104aの説明において、仮に切り替えトリガ信号ST−SIGが非アクティブ状態からアクティブ状態に変化したときの第3のクロック信号3CLKの状態が論理レベルのハイではなくローである場合は、フリップフロップ503の出力信号は論理レベルのローを維持する。これによって、インバータ504の出力信号はアクティブ状態(論理レベルのハイ)を維持する。この動作によって、切り替えトリガ信号ST−SIGが非アクティブ状態からアクティブ状態に変化した時点の第3のクロック信号3CLKの状態が論理レベルのローであることが検出される。次いで時刻T3において、フリップフロップ505の出力信号がアクティブ状態に変化してから所定の時間(図7中のD3)が経過した後、遅延回路506の出力信号が非アクティブ状態(論理レベルのロー)からアクティブ状態(論理レベルのハイ)に変化する。これによって、フリップフロップ503の出力信号の状態(第3のクロック信号3CLKの論理レベルの検出結果)を反映して、AND回路507の出力信号である第2の検出信号2DET−SIGが非アクティブ状態からアクティブ状態(論理レベルのハイ)に変化し、OR回路105の出力信号である第1のクロック停止許可信号1CST−SIGが非アクティブ状態からアクティブ状態(論理レベルのハイ)に変化する。
以上の説明のように、第1の低周波クロック処理部104aは第3のクロック信号3CLKのレベル検出に基づいて動作し、第1の高周波クロック処理部103は第2のクロック信号2CLKのエッジ検出に基づいて動作し、第2の高周波クロック処理部107は第4のクロック信号4CLKのエッジ検出に基づいて動作し、第2の低周波クロック処理部108aは第5のクロック信号5CLKのエッジ検出に基づいて動作する。
そして、切り替え前クロック処理部102aが第2のクロック信号2CLKに基づいて動作した場合は、第1のクロック停止許可信号1CST−SIGが第2のクロック信号2CLKの立下りエッジに同期して非アクティブ状態からアクティブ状態に変化する。切り替え前クロック処理部102aが第3のクロック信号3CLKに基づいて動作した場合は、そのレベル検出結果によって、第1のクロック停止許可信号1CST−SIGまたは第2のクロック停止許可信号2CST−SIGが、切り替えトリガ信号ST−SIGが非アクティブ状態からアクティブ状態に変化した後、所定の時間が経過してから非アクティブ状態からアクティブ状態に変化する。切り替え後クロック処理部106aは第1のクロック停止許可信号1CST−SIGがアクティブ状態になったか、第2のクロック停止許可信号2CST−SIGがアクティブ状態になったかによって、同期化を行うクロックエッジの向きを変えてクロック再開許可信号C−RES−SIGをアクティブ状態に変える。
ここで、第1の高周波クロック処理部103に対して、第1の低周波クロック処理部104aのようにレベル検出を適用しないのは、高周波クロックを使った処理は元々早く、あまりレベル検出を適用することのメリットがないことに加えて、高周波クロックはレベル継続時間が短く、実際にクロックを停止させる時点でレベルが他方に遷移している可能性があり、グリッチが発生する危険性が高いからである。
次に、第1の低周波クロック処理部104aにおけるフリップフロップ503のメタステーブル対策に関して述べる。フリップフロップ503のデータ(D)入力である第3のクロック信号3CLKの変化とクロック(CK)入力であるフリップフロップ505の出力信号の変化が近接する場合、フリップフロップ503の出力信号にメタステーブル現象が発生する可能性がある。この対策のために遅延回路506が使われる。遅延回路506の役割は、フリップフロップ505の出力信号がアクティブ状態になった後、フリップフロップ503のメタステーブル現象が安定化するまで所定の時間(図7中のD3)だけ、AND回路507、508の入力への信号伝搬を遅らせ、AND回路507、508の出力信号にマスクをかけることである。上記の所定の時間(D3)をメタステーブル現象の安定化に要する時間よりも多少長く取ることによって、第1のクロック停止許可信号1CST−SIGと第2のクロック許可信号にメタステーブル現象の影響が伝搬することを防ぐことが可能になる。以上の説明のように、所定の遅延時間D3を適切に設定することによって、クロック切り替えの際にメタステーブル現象の安定化のために不要に長い待機時間が発生することを回避することができ、高速なクロック切り替えが可能となる。
次にOR回路509について説明する。OR回路509は第1の高周波クロック処理部103に入力するリセット信号を生成する目的で使われる。具体的には、第1の低周波クロック処理部104aが動作して、第3の検出信号3DET−SIG(第2のクロック停止許可信号2CST−SIG)がアクティブ状態(論理レベルのハイ)になったときにフリップフロップ501と502へリセット信号を印加して、これらの出力信号を非アクティブ状態(論理レベルのロー)に固定する。これによって、第2のクロック停止許可信号2CST−SIGがアクティブ状態になったときに、誤って第1のクロック停止許可信号1CST−SIGがアクティブ状態になるのを防止することができる。
尚、切り替えトリガ信号ST−SIGは1回のクロック切り替え処理において、1度しか非アクティブ状態からアクティブ状態に遷移しない。このため、切り替えトリガ信号ST−SIGが非アクティブ状態からアクティブ状態に変化したことに呼応して、フリップフロップ503で第3のクロック信号3CLKの状態を検出する構成の第1の低周波クロック処理部104aでは、第1のクロック停止許可信号1CST−SIGがアクティブ状態に変化した後に、誤って第2のクロック停止許可信号2CST−SIGがアクティブ状態に変化することは起こり得ない。従ってこの場合、上記の考えに基づくリセット処理は必要ない。
<実施の形態5>
図8には、図1に示されるクロック制御信号生成回路101の他の具体的な回路構成例が示される。
図8に示されるクロック制御信号生成回路101bにおいて、第1の高周波クロック処理部103はフリップフロップ801とフリップフロップ802とが結合されて成り、第1の低周波クロック処理部104bは、フリップフロップ803とフリップフロップ804とフリップフロップ805とフリップフロップ806と遅延時間D4の遅延回路807とが結合されて成る。フリップフロップ803,805は互いに直列接続され、フリップフロップ805,806は互いに直列接続される。フリップフロップ803,805のデータ端子Dに切り替えトリガ信号ST−SIGが入力される。フリップフロップ803,805のクロック端子CKには第3のクロック信号3CLKが入力される。フリップフロップ804,806のクロック端子CKには、第3のクロック信号3CLKが遅延回路807で遅延されてから入力される。第2の高周波クロック処理部107は、フリップフロップ810とフリップフロップ811とフリップフロップ812とフリップフロップ813とが結合されて成り、第2の低周波クロック処理部108bは、フリップフロップ814とフリップフロップ815の直列接続とフリップフロップ816とフリップフロップ817とが結合されて成る。
図5における第1の低周波クロック処理部104aは、第3のクロック信号3CLKのレベル検出に基づいて動作するものであったが、図8に示される第1の低周波クロック処理部104bは、第3のクロック信号3CLKのエッジ検出に基づいて動作する。
また、図8に示される第2の低周波クロック処理部108bは、図5における第2の低周波クロック処理部108aと同様に第5のクロック信号5CLKのエッジ検出に基づいて動作するが、第1のクロック停止許可信号1CST−SIGと第2のクロック停止許可信号2CST−SIGに対応して動作する2段直列フリップフロップのクロック入力(CK)の動作エッジの向きが異なる。
図8の第1の高周波クロック処理部103と第2の高周波クロック処理部107の構成と動作は、それぞれ図5に示される場合と同一であり、第1の高周波クロック処理部103は、第2のクロック信号2CLKのエッジ検出に基づいて動作し、第2の高周波クロック処理部107は第4のクロック信号4CLKのエッジ検出に基づいて動作する。
図9には、比較的周波数が高いクロック信号である第2のクロック信号2CLKと比較的周波数が低いクロック信号である第5のクロック信号5CLKが供給されている場合の動作タイミングが示される。
図8と図9を参照して動作を説明する。以下の説明で、時刻T2、T3、T5は図9中に示す各時刻に対応する。また、フリップフロップ801〜806、810〜817の出力信号の初期状態は非アクティブ状態(論理レベルのロー)であるとする。つまり、第1の検出信号1DET−SIG、第2の検出信号2DET−SIG、第3の検出信号3DET−SIG、第1のクロック停止許可信号1CST−SIG、第2のクロック停止許可信号2CST−SIG、第4の検出信号4DET−SIG、第5の検出信号5DET−SIG、第6の検出信号6DET−SIG、第7の検出信号7DET−SIG、クロック再開許可信号C−RES−SIGの初期状態は全て非アクティブ状態である。
時刻T2では、外部から供給される切り替えトリガ信号ST−SIGが非アクティブ状態(論理レベルのロー)からアクティブ状態(論理レベルのハイ)に変化する。これにより、切り替え前クロック処理部102bが処理を開始する。
時刻T3では、切り替えトリガ信号ST−SIGの状態の変化が、第1の高周波クロック処理部103内のフリップフロップ801、802によって、第2のクロック信号2CLKの2回の立下りエッジを経て第2のクロック信号2CLKの立下りエッジに同期化され、フリップフロップ802の出力信号である第1の検出信号1DET−SIGが非アクティブ状態(論理レベルのロー)からアクティブ状態(論理レベルのハイ)に変化する。これにより、OR回路105の出力信号である第1のクロック停止許可信号1CST−SIGが非アクティブ状態(論理レベルのロー)からアクティブ状態(論理レベルのハイ)に変化する。また、切り替え後クロック処理部106bが処理を開始する。
時刻T5では、第1のクロック停止許可信号1CST−SIGの状態の変化が、第2の低周波クロック処理部108b内のフリップフロップ814、815によって、第5のクロック信号5CLKの立上りエッジとこれに続く立下りエッジを経て第5のクロック信号5CLKの立下りエッジに同期化され、フリップフロップ815の出力信号である第6の検出信号6DET−SIGが非アクティブ状態からアクティブ状態に変化する。これにより、OR回路109の出力信号であるクロック再開許可信号C−RES−SIGが非アクティブ状態(論理レベルのロー)からアクティブ状態(論理レベルのハイ)に変化する。
図10には、比較的周波数が低いクロック信号である第3のクロック信号3CLKと比較的周波数が高いクロック信号である第4のクロック信号4CLKが供給される場合の動作タイミングが示される。
図8と図10を参照して、この場合の動作を説明する。以下の説明で、時刻T2、T2.5、T3、T5は図10中に示す各時刻に対応する。また、フリップフロップ801〜806、810〜817の出力信号の初期状態は非アクティブ状態(論理レベルのロー)とする。つまり第1の検出信号1DET−SIG、第2の検出信号2DET−SIG、第3の検出信号3DET−SIG、第1のクロック停止許可信号1CST−SIG、第2のクロック停止許可信号2CST−SIG、第4の検出信号4DET−SIG、第5の検出信号5DET−SIG、第6の検出信号6DET−SIG、第7の検出信号7DET−SIG、クロック再開許可信号C−RES−SIGの初期状態は全て非アクティブ状態である。
時刻T2では外部から供給される切り替えトリガ信号ST−SIGが非アクティブ状態(論理レベルのロー)からアクティブ状態(論理レベルのハイ)に変化する。これにより、切り替え前クロック処理部102bが処理を開始する。
時刻T2.5では、切り替えトリガ信号ST−SIGの状態の変化が、第1の低周波クロック処理部104b内のフリップフロップ805によって、第3のクロック信号3CLKの立上りエッジに同期化され、フリップフロップ805の出力信号(F/F805OUT)が非アクティブ状態(論理レベルのロー)からアクティブ状態(論理レベルのハイ)に変化する。
時刻T3では、時刻T2.5で第3のクロック信号3CLKの立上りエッジが到来してから、所定の時間(図10中のD4)が経過した後、遅延回路807の出力信号(DLY807OUT)が論理レベルのローから論理レベルのハイに変化する。これによりフリップフロップ805の出力信号の状態の変化が、フリップフロップ806で第3のクロック信号3CLKの立上りエッジよりもD4だけ遅れた時間に再同期化され、フリップフロップ806の出力信号である第3の検出信号3DET−SIGが非アクティブ状態からアクティブ状態(論理レベルのハイ)に変化し、第2のクロック停止許可信号2CST−SIGが非アクティブ状態からアクティブ状態(論理レベルのハイ)に変化する。ここで、時間D4は第3のクロック信号3CLKの1周期時間に比べて極めて短い時間であり、第2のクロック停止許可信号2CST−SIGは第3のクロック信号3CLKの立上りエッジに同期してアクティブ状態に変化したと見なせるものとする。また、切り替え後クロック処理部106bが処理を開始する。
時刻T5では、第2のクロック停止許可信号2CST−SIGの状態の変化が、第2の高周波クロック処理部107内のフリップフロップ812、813によって、第4のクロック信号4CLKの2回の立上りエッジを経て第4のクロック信号4CLKの立上りエッジに同期化され、フリップフロップ813の出力信号である第5の検出信号5DET−SIGが非アクティブ状態からアクティブ状態(論理レベルのハイ)に変化する。これにより、OR回路109の出力信号であるクロック再開許可信号C−RES−SIGが非アクティブ状態(論理レベルのロー)からアクティブ状態(論理レベルのハイ)に変化する。
時刻T2.5と時刻T3の第1の低周波クロック処理部104bの説明において、仮に時刻T2で切り替えトリガ信号ST−SIGがアクティブ状態になった後に、第3のクロック信号3CLKの立上りエッジよりも先に立下りエッジが到来した場合は次のようになる。
すなわち、時刻T2.5において、切り替えトリガ信号ST−SIGの状態の変化が、フリップフロップ805ではなくフリップフロップ803によって、第3のクロック信号3CLKの立下りエッジに同期化され、フリップフロップ803の出力信号(F/F803OUT)が非アクティブ状態(論理レベルのロー)からアクティブ状態(論理レベルのハイ)に変化する。更に、時刻T3において、先の第3のクロック信号3CLKの立下りエッジが到来してから所定の時間(D4)が経過した後、遅延回路807の出力信号が論理レベルのハイから論理レベルのローに変化する。これによって、フリップフロップ803の出力信号の状態の変化が、フリップフロップ804で第3のクロック信号3CLKの立下りエッジよりもD4だけ遅れた時間に再同期化され、フリップフロップ804の出力信号である第2の検出信号2DET−SIGが非アクティブ状態からアクティブ状態(論理レベルのハイ)に変化する。そして、OR回路105の出力信号である第1のクロック停止許可信号1CST−SIGが非アクティブ状態(論理レベルのロー)からアクティブ状態(論理レベルのハイ)に変化する。ここで、先に述べたように、時間D4は第3のクロック信号3CLKの1周期時間に比べて極めて短い時間であり、第1のクロック停止許可信号1CST−SIGは第3のクロック信号3CLKの立下りエッジに同期してアクティブ状態に変化したと見なせるものとする。
以上の説明のように、第1の高周波クロック処理部103は第2のクロック信号2CLKのエッジ検出に基づいて動作し、第1の低周波クロック処理部104bは第3のクロック信号3CLKのエッジ検出に基づいて動作し、第2の高周波クロック処理部107は第4のクロック信号4CLKのエッジ検出に基づいて動作し、第2の低周波クロック処理部108bは第5のクロック信号5CLKのエッジ検出に基づいて動作する。
そして、切り替え前クロック処理部102bが第2のクロック信号2CLKに基づいて動作した場合は、第1のクロック停止許可信号1CST−SIGが第2のクロック信号2CLKの立下りエッジに同期して非アクティブ状態からアクティブ状態に変化する。切り替え前クロック処理部102bが第3のクロック信号3CLKに基づいて動作した場合は、第1のクロック停止許可信号1CST−SIGまたは第2のクロック停止許可信号2CST−SIGが、第3のクロック信号3CLKの立下りエッジまたは立上りエッジの早い方に同期して非アクティブ状態からアクティブ状態に変化する。切り替え後クロック処理部106bは第1のクロック停止許可信号1CST−SIGがアクティブ状態になったか、第2のクロック停止許可信号2CST−SIGがアクティブ状態になったかによって、同期化を行うクロックエッジの向きを変えてクロック再開許可信号C−RES−SIGをアクティブ状態に変える。
第1の高周波クロック処理部103、第2の高周波クロック処理部107、第2の低周波クロック処理部108bにおける出力クロック信号CKOUTのグリッチ対策とフリップフロップのメタステーブル対策に関しては、実施の形態4で述べた内容と同じである。
第1の低周波クロック処理部104bにおいても出力クロック信号CKOUTのグリッチ対策のために、切り替えトリガ信号ST−SIGの状態の変化をフリップフロップを使って第3のクロック信号3CLKに同期化する。ここではフリップフロップのメタステーブル対策のために、2段直列接続したフリップフロップ構成に加えて遅延回路807が使われる。遅延回路807の役割は、第3のクロック信号3CLKのエッジが到来し、これが1段目のフリップフロップ803、805のクロック入力(CK)に入力されてから、到来したエッジタイミングをメタステーブル現象が安定するまで所定の時間(図10中のD4)だけ遅らせてから2段目のフリップフロップ804、806に供給することである。第1の低周波クロック処理部104bに入力される第3のクロック信号3CLKは低周波であるため、その1周期時間はメタステーブル現象の安定化に要する時間に比べて極めて長いと考えられる。そのため、1段目のフリップフロップと2段目のフリップフロップの動作間隔をクロックの1周期時間分だけ確保する必要はなく、上記の所定の遅延時間(D4)をメタステーブル現象の安定化に要する時間よりも多少長く取るだけで、第1のクロック停止許可信号1CST−SIGと第2のクロック許可信号にメタステーブル現象の影響が伝搬することを防ぐことが可能になる。これにより、クロック切り替えの際に不要に長い待機時間が発生することを回避することができ、高速なクロック切り替えが可能になる。
ここで、低周波クロック信号が入力される第2の低周波クロック処理部108bの方で上記のような遅延回路を使ったメタステーブル対策を行わないのは、第1の低周波クロック処理部104bの方は切り替え前クロックを使った処理を行うのに対して、第2の低周波クロック処理部108bの方は切り替え後クロックを使った処理を行うという違いのためである。つまり、切り替え後のクロック信号が低周波の場合は、元々、切り替え後のクロックスピードが遅いため、あまり高速な切り替えが要求されないので、遅延回路の数を減らし少しでも回路規模を低減させたほうがよい。
また、第1の高周波クロック処理部103に、第1の低周波クロック処理部104bで行ったクロックの両エッジ検出を使った高速化手法を適用しないのは、高周波クロックの処理は元々高速なのでメリットが少ないため、不必要な回路規模の増大を避けるためである。
次にOR回路808と809について説明する。OR回路808は、第1の高周波クロック処理部103内のフリップフロップ801、802と第1の低周波クロック処理部104b内のフリップフロップ803、804に入力するリセット信号を生成する目的で使われる。具体的には、第1の低周波クロック処理部104b内のフリップフロップ805、806が動作して、第3の検出信号3DET−SIG(第2のクロック停止許可信号2CST−SIG)がアクティブ状態(論理レベルのハイ)になったときにフリップフロップ801、802、803、804へリセット信号を印加して、これらの出力信号を非アクティブ状態(論理レベルのロー)に固定する。これによって、第2のクロック停止許可信号2CST−SIGがアクティブ状態になったときに、誤って第1のクロック停止許可信号1CST−SIGがアクティブ状態になるのを防止することができる。逆に、OR回路809は、第1の低周波クロック処理部104b内のフリップフロップ805、806に入力するリセット信号を生成する目的で使われる。
具体的には、第1の高周波クロック処理部103または第1の低周波クロック処理部104b内のフリップフロップ803、804が動作して、第1の検出信号1DET−SIGまたは第2の検出信号2DET−SIG(第1のクロック停止許可信号1CST−SIG)がアクティブ状態になったときにフリップフロップ805、806へリセット信号を印加して、これらの出力信号を非アクティブ状態(論理レベルのロー)に固定する。これによって、第1のクロック停止許可信号1CST−SIGがアクティブ状態になったときに、誤って第2のクロック停止許可信号2CST−SIGがアクティブ状態になるのを防止することができる。
<実施の形態6>
図11には、図2に示される選択型クロック制御信号生成回路201の具体的な回路構成例が示される。
図11に示される選択型クロック制御信号生成回路201aは、第1のクロック選択部202aと第2のクロック選択部203とクロック制御信号生成回路101aから成る。
更に、第1のクロック選択部202aは、マルチプレクサ(Mux)1101と1104、OR回路1102と1103、AND回路1105と1106、遅延時間D5の遅延回路1107、マルチプレクサ(Mux)1108から成り、第2のクロック選択部203は、マルチプレクサ(Mux)1109と1112、OR回路1110と1111、AND回路1113と1114から成る。
選択型クロック制御信号生成回路201aに入力される信号と、選択型クロック制御信号生成回路201aから出力される信号は、実施の形態2で説明した内容と同じである。
図12には、第1のクロック選択部202aの動作を説明する真理値表が示される。
図11と図12を参照して、第1のクロック選択部202aの動作を説明する。
OR回路1102の出力信号であるSCF0とOR回路1103の出力信号であるSCF1は、現選択信号〔0〕、現選択信号〔1〕、現選択信号〔2〕の値の組み合わせによって、図12の真理値表に示す論理レベルを取り、マルチプレクサ1101に対して4つの入力(00、01、10、11)のうち、どれを第2のクロック信号2CLKとして選択出力するか指定する。同様に、AND回路1105の出力信号であるSCS0とAND回路1106の出力信号であるSCS1は、現選択信号〔0〕、現選択信号〔1〕、現選択信号〔2〕の値の組み合わせによって、図12の真理値表に示す論理レベルを取り、マルチプレクサ1104に対して4つの入力(00、01、10、11)のうち、どれを第3のクロック信号3CLKとして選択出力するか指定する。
3ビットの現選択信号CSEL−SIGの最上位ビットである現選択信号〔2〕が論理値“0”であるとき、SCF0の値は現選択信号CSEL−SIG〔0〕の値と等しくなり、SCF1の値は現選択信号CSEL−SIG〔1〕の値と等しくなる。一方、現選択信号CSEL−SIG〔2〕が論理値“1”であるときは、SCF0とSCF1は共に論理値“1”になる。
3ビットの現選択信号の最上位ビットである現選択信号CSEL−SIG〔2〕が論理値“1”であるとき、SCS0の値は現選択信号CSEL−SIG〔0〕の値と等しくなり、SCS1の値は現選択信号CSEL−SIG〔1〕の値と等しくなる。一方、現選択信号CSEL−SIG〔2〕が論理値“0”であるときは、SCS0とSCS1は共に論理値“1”になる。結果としてこの実施の形態では、マルチプレクサ1101の出力信号である第2のクロック信号2CLKと、マルチプレクサ1104の出力信号である第3のクロック信号3CLKは、図12の真理値表に示されるように選択出力される。そして現選択信号CSEL−SIGの最上位ビット(現選択信号CSEL−SIG〔2〕)が論理値“0”であるとき、高周波クロックのグループからのクロック選択が指示されていることを意味し、第2のクロック信号2CLKからは選択された入力クロック信号の供給が行われ、第3のクロック信号3CLKは論理レベルのロー(GND)に固定されクロック供給がなされない。反対に、現選択信号CSEL−SIGの最上位ビット(現選択信号CSEL−SIG〔2〕)が論理値“1”であるときは、低周波クロックのグループからのクロック選択が指示されていることを意味し、第3のクロック信号3CLKからは選択された入力クロック信号のクロック供給が行われ、第2のクロック信号2CLKは論理レベルのロー(GND)に固定されクロック供給がなされない。
マルチプレクサ1108には、第2のクロック信号2CLKと、第3のクロック信号3CLKを所定の時間(D5)だけ遅延させた信号が入力され、マルチプレクサ1108の出力信号である第1のクロック信号1CLKからは、図12の真理値表に示すように、現選択信号CSEL−SIG〔2〕の値が論理値“0”で高周波クロックのグループが選択されている場合は、第2のクロック信号2CLKとして選択されている入力クロック信号が出力される。現選択信号CSEL−SIG〔2〕の値が論理値“1”で低周波クロックのグループが選択されている場合は、第3のクロック信号3CLKとして選択されている入力クロック信号が所定の時間D5だけ遅延されて出力される。図12中の記号(D)は元々のクロック信号に対して所定の遅延時間D5を有する信号であることを意味する。
図13には、第2のクロック選択部203の動作を説明する真理値表が示される。
図11と図13を参照して、第2のクロック選択部203の動作を説明する。
OR回路1110の出力信号であるSNF0とOR回路1111の出力信号であるSNF1は、第2のクロック選択部En信号2CLKEN−SIGと新選択信号NSEL−SIG〔0〕、新選択信号NSEL−SIG〔1〕、新選択信号NSEL−SIG〔2〕の値の組み合わせによって、図13の真理値表に示す論理レベルを取る。そして、マルチプレクサ1109に対して4つの入力(00、01、10、11)のうち、どれを第4のクロック信号4CLKとして選択出力するか指定する。同様に、AND回路1113の出力信号であるSNS0とAND回路1114の出力信号であるSNS1は、第2のクロック選択部En信号2CLKEN−SIGと新選択信号NSEL−SIG〔0〕、新選択信号NSEL−SIG〔1〕、新選択信号NSEL−SIG〔2〕の値の組み合わせによって、図13の真理値表に示す論理レベルを取る。そして、マルチプレクサ1112に対して4つの入力(00、01、10、11)のうち、どれを第5のクロック信号5CLKとして選択出力するか指定する。尚、第2のクロック選択部En信号2CLKEN−SIGが論理値“0”の場合、新選択信号NSEL−SIG〔0〕、新選択信号NSEL−SIG〔1〕、新選択信号NSEL−SIG〔2〕の論理値は意味をなさない(これを「X」で示す)。
第2のクロック選択部En信号2CLKEN−SIGが論理値“1”で、且つ3ビットの新選択信号NSEL−SIGの最上位ビットである新選択信号NSEL−SIG〔2〕が論理値“0”であるとき、SNF0の値は新選択信号NSEL−SIG〔0〕の値と等しくなり、SNF1の値は新選択信号NSEL−SIG〔1〕の値と等しくなる。一方、第2のクロック選択部En信号2CLKEN−SIGが論理値“1”で、且つ新選択信号NSEL−SIG〔2〕が論理値“1”であるときは、SNF0とSNF1は共に論理値“1”になる。
第2のクロック選択部En信号2CLKEN−SIGが論理値“1”で、且つ3ビットの新選択信号NSEL−SIGの最上位ビットである新選択信号NSEL−SIG〔2〕が論理値“1”であるとき、SNS0の値は新選択信号NSEL−SIG〔0〕の値と等しくなり、SNS1の値は新選択信号NSEL−SIG〔1〕の値と等しくなる。一方、第2のクロック選択部En信号2CLKEN−SIGが論理値“1”で、且つ新選択信号NSEL−SIG〔2〕が論理値“0”であるときは、SNS0とSNS1は共に論理値“1”になる。
第2のクロック選択部En信号2CLKEN−SIGが論理値“0”であるときは、新選択信号NSEL−SIG〔0〕から新選択信号NSEL−SIG〔2〕の値に関わらず、SNF0、SNF1、SNS0、SNS1は全て論理値“1”になる。
結果としてこの実施の形態では、マルチプレクサ1109の出力信号である第4のクロック信号4CLKと、マルチプレクサ1112の出力信号である第5のクロック信号5CLKは、図13の真理値表に示すように選択出力される。第2のクロック選択部En信号2CLKEN−SIGが論理値“1”で、且つ新選択信号NSEL−SIGの最上位ビット(新選択信号NSEL−SIG〔2〕)が論理値“0”であるとき、高周波クロックのグループからのクロック選択が指示されていることを意味し、第4のクロック信号4CLKからは選択された入力クロック信号の供給が行われ、第5のクロック信号5CLKは論理レベルのロー(GND)に固定されクロック供給がなされない。反対に、第2のクロック選択部En信号2CLKEN−SIGが論理値“1”で、且つ新選択信号NSEL−SIGの最上位ビット(新選択信号NSEL−SIG〔2〕)が論理値“1”であるときは、低周波クロックのグループからのクロック選択が指示されていることを意味し、第5のクロック信号5CLKからは選択された入力クロック信号のクロック供給が行われる。このとき第4のクロック信号4CLKは論理レベルのロー(GND)に固定されクロック供給がなされない。また、第2のクロック選択部En信号2CLKEN−SIGが論理値“0”であるときは、第4のクロック信号4CLKと第5のクロック信号5CLKは共に論理レベルのロー(GND)に固定され、第2のクロック選択部203からのクロック出力は停止される。これによりクロック切り替えを行わない通常動作時には、クロック制御信号生成回路101a内への不要なクロック供給を止めて、電力消費を抑えることができる。
尚、第1のクロック選択部202aの出力信号である第2のクロック信号2CLKと第3のクロック信号3CLKに対しても、これら2つのクロック信号をマスクする回路を設けることによって、クロック切り替えを行わない通常動作時はクロック制御信号生成回路101a内への不要なクロック供給を止めて、電力消費を抑えることが可能である。
クロック制御信号生成回路101aは、実施の形態4で説明した図5のクロック制御信号生成回路101aと同一の構成で同一の動作を行う。
<実施の形態7>
図14には、図2に示される選択型クロック制御信号生成回路201の他の具体的な回路構成例が示される。
図14に示される選択型クロック制御信号生成回路201bは、第1のクロック選択部202bと第2のクロック選択部203とクロック制御信号生成回路(C−CNT−GEN)101bを含んで成る。
更に、第1のクロック選択部202bは、マルチプレクサ(Mux)1401と1404、OR回路1402と1403、AND回路1405と1406、マルチプレクサ(Mux)1407を含んで成り、第2のクロック選択部203は、マルチプレクサ(Mux)1408と1411、OR回路1409と1410、AND回路1412と1413を含んで成る。
選択型クロック制御信号生成回路201bに入力される信号と、選択型クロック制御信号生成回路201bから出力される信号は、実施の形態2で説明した内容と同じである。
図15には、第1のクロック選択部202bの動作を説明する真理値表が示される。
図14と図15を参照して、第1のクロック選択部202bの動作を説明する。
OR回路1402の出力信号であるSCF0とOR回路1403の出力信号であるSCF1は、現選択信号CSEL−SIG〔0〕、現選択信号CSEL−SIG〔1〕、現選択信号CSEL−SIG〔2〕の値の組み合わせによって、図15の真理値表に示す論理レベルを取り、マルチプレクサ1401に対して4つの入力(00、01、10、11)のうち、どれを第2のクロック信号2CLKとして選択出力するか指定する。同様に、AND回路1405の出力信号であるSCS0とAND回路1406の出力信号であるSCS1は、現選択信号CSEL−SIG〔0〕、現選択信号CSEL−SIG〔1〕、現選択信号CSEL−SIG〔2〕の値の組み合わせによって、図15の真理値表に示す論理レベルを取り、マルチプレクサ1404に対して4つの入力(00、01、10、11)のうち、どれを第3のクロック信号3CLKとして選択出力するか指定する。
3ビットの現選択信号CSEL−SIGの最上位ビットである現選択信号CSEL−SIG〔2〕が論理値“0”であるとき、SCF0の値は現選択信号CSEL−SIG〔0〕の値と等しくなり、SCF1の値は現選択信号CSEL−SIG〔1〕の値と等しくなる。一方、現選択信号CSEL−SIG〔2〕が論理値“1”であるときは、SCF0とSCF1は共に論理値“1”になる。
3ビットの現選択信号CSEL−SIGの最上位ビットである現選択信号CSEL−SIG〔2〕が論理値“1”であるとき、SCS0の値は現選択信号CSEL−SIG〔0〕の値と等しくなり、SCS1の値は現選択信号CSEL−SIG〔1〕の値と等しくなる。一方、現選択信号CSEL−SIG〔2〕が論理値“0”であるときは、SCS0とSCS1は共に論理値“1”になる。
結果としてこの実施の形態では、マルチプレクサ1401の出力信号である第2のクロック信号2CLKと、マルチプレクサ1404の出力信号である第3のクロック信号3CLKは、図15の真理値表に示すように選択出力される。現選択信号CSEL−SIGの最上位ビット(現選択信号CSEL−SIG〔2〕)が論理値“0”であるとき、高周波クロックのグループからのクロック選択が指示されていることを意味し、第2のクロック信号2CLKからは選択された入力クロック信号の供給が行われ、第3のクロック信号3CLKは論理レベルのロー(GND)に固定されクロック供給がなされない。反対に、現選択信号CSEL−SIGの最上位ビット(現選択信号CSEL−SIG〔2〕)が論理値“1”であるときは、低周波クロックのグループからのクロック選択が指示されていることを意味し、第3のクロック信号3CLKからは選択された入力クロック信号のクロック供給が行われ、第2のクロック信号2CLKは論理レベルのロー(GND)に固定されクロック供給がなされない。
マルチプレクサ1407には、第2のクロック信号2CLKと第3のクロック信号3CLKが入力される。マルチプレクサ1407の出力信号である第1のクロック信号1CLKからは、図15の真理値表に示すように、現選択信号CSEL−SIG〔2〕の値が論理値“0”で高周波クロックのグループが選択されている場合は、第2のクロック信号2CLKとして選択されている入力クロック信号が出力され、現選択信号CSEL−SIG〔2〕の値が論理値“1”で低周波クロックのグループが選択されている場合は、第3のクロック信号3CLKとして選択されている入力クロック信号が出力される。
図16には、第2のクロック選択部203の動作を説明する真理値表が示される。
図14と図16を参照して、第2のクロック選択部203の動作を説明する。
OR回路1409の出力信号であるSNF0とOR回路1410の出力信号であるSNF1は、第2のクロック選択部En信号2CLKEN−SIGと新選択信号NSEL−SIG〔0〕、新選択信号NSEL−SIG〔1〕、新選択信号NSEL−SIG〔2〕の値の組み合わせによって、図16の真理値表に示す論理レベルを取る。このとき、マルチプレクサ1408に対して4つの入力(00、01、10、11)のうち、どれを第4のクロック信号4CLKとして選択出力するか指定する。同様に、AND回路1412の出力信号であるSNS0とAND回路1413の出力信号であるSNS1は、第2のクロック選択部En信号2CLKEN−SIGと新選択信号NSEL−SIG〔0〕、新選択信号NSEL−SIG〔1〕、新選択信号NSEL−SIG〔2〕の値の組み合わせによって、図16の真理値表に示す論理レベルを取る。そしてマルチプレクサ1411に対して4つの入力(00、01、10、11)のうち、どれを第5のクロック信号5CLKとして選択出力するか指定する。
第2のクロック選択部En信号2CLKEN−SIGが論理値“1”で、且つ3ビットの新選択信号NSEL−SIGの最上位ビットである新選択信号NSEL−SIG〔2〕が論理値“0”であるとき、SNF0の値は新選択信号NSEL−SIG〔0〕の値と等しくなり、SNF1の値は新選択信号NSEL−SIG〔1〕の値と等しくなる。一方、第2のクロック選択部En信号2CLKEN−SIGが論理値“1”で、且つ新選択信号NSEL−SIG〔2〕が論理値“1”であるときは、SNF0とSNF1は共に論理値“1”になる。
第2のクロック選択部En信号2CLKEN−SIGが論理値“1”で、且つ3ビットの新選択信号NSEL−SIGの最上位ビットである新選択信号NSEL−SIG〔2〕が論理値“1”であるとき、SNS0の値は新選択信号NSEL−SIG〔0〕の値と等しくなり、SNS1の値は新選択信号NSEL−SIG〔1〕の値と等しくなる。一方、第2のクロック選択部En信号2CLKEN−SIGが論理値“1”で、且つ新選択信号NSEL−SIG〔2〕が論理値“0”であるときは、SNS0とSNS1は共に論理値“1”になる。
第2のクロック選択部En信号2CLKEN−SIGが論理値“0”であるときは、新選択信号NSEL−SIG〔0〕から新選択信号NSEL−SIG〔2〕の値に関わらず、SNF0、SNF1、SNS0、SNS1の値は全て論理値“1”になる。
結果としてこの実施の形態では、マルチプレクサ1408の出力信号である第4のクロック信号4CLKと、マルチプレクサ1411の出力信号である第5のクロック信号5CLKは、図16の真理値表に示すように選択出力される。第2のクロック選択部En信号2CLKEN−SIGが論理値“1”で、且つ新選択信号NSEL−SIGの最上位ビット(新選択信号NSEL−SIG〔2〕)が論理値“0”であるとき、高周波クロックのグループからのクロック選択が指示されていることを意味し、第4のクロック信号4CLKからは選択された入力クロック信号の供給が行われ、第5のクロック信号5CLKは論理レベルのロー(GND)に固定されクロック供給がなされない。反対に、第2のクロック選択部En信号2CLKEN−SIGが論理値“1”で、且つ新選択信号NSEL−SIGの最上位ビット(新選択信号NSEL−SIG〔2〕)が論理値“1”であるときは、低周波クロックのグループからのクロック選択が指示されていることを意味し、第5のクロック信号5CLKからは選択された入力クロック信号のクロック供給が行われる。このとき第4のクロック信号4CLKは論理レベルのロー(GND)に固定されクロック供給がなされない。また、第2のクロック選択部En信号2CLKEN−SIGが論理値“0”であるときは、第4のクロック信号4CLKと第5のクロック信号5CLKは共に論理レベルのロー(GND)に固定され、第2のクロック選択部203からのクロック出力が停止される。これにより、クロック切り替えを行わない通常動作時には、クロック制御信号生成回路101b内への不要なクロック供給を止めて、電力消費を抑えることができる。
尚、第1のクロック選択部202bの出力信号である第2のクロック信号2CLKと第3のクロック信号3CLKに対しても、これら2つのクロック信号をマスクする回路を設けることによって、クロック切り替えを行わない通常動作時はクロック制御信号生成回路101b内への不要なクロック供給を止めて、電力消費を抑えることが可能である。
クロック制御信号生成回路101bは、実施の形態5で説明した図8のクロック制御信号生成回路101bと同一の構成で同一の動作を行う。
<実施の形態8>
図17には、図3に示されるクロックセレクタ301の具体的な構成例が示される。
図17に示されるクロックセレクタ301aは、選択型クロック制御信号生成回路(SCC−GEN)201aとゲーティング制御部(G−CNT)1701とクロックゲーティング部(C−GAT)1702と第1の選択信号保持部(1SEL−ST)1703と第2の選択信号保持部(2SEL−ST)1704とリセット信号生成部(REST−GEN)1705を含んで成る。
クロックセレクタ301aには、外部から複数のクロック信号(入力クロック信号CKIN1〜入力クロック信号CKIN6)とn+1ビットのクロック選択信号と切り替えトリガ信号ST−SIGと第2のクロック選択部En信号2CLKEN−SIGが入力され、クロックセレクタ301aからは、出力クロック信号CKOUTと切り替え実行信号SEL−RUN−SIGと第2のリセット信号2RST−SIGが外部に出力される。これらの信号については実施の形態3の場合と同じである。
クロック制御信号生成回路201aは、実施の形態6で説明した図11のクロック制御信号生成回路201aと同一の構成で同一の動作を行う。
図21には、ゲーティング制御部1701とクロックゲーティング部1702の具体的な回路構成の1例が示される。
ゲーティング制御部1701はAND回路2101、2102で構成され、クロックゲーティング部1702はAND回路2103とOR回路2104で構成される。
図22には、ゲーティング制御部1701とクロックゲーティング部1702の動作を説明する真理値表が示される。
第1のクロック停止許可信号1CST−SIGと第2のクロック停止許可信号2CST−SIGとクロック再開許可信号C−RES−SIGは、アクティブ状態で論理レベルのハイ(論理値“1”)とし、非アクティブ状態で論理レベルのロー(論理値“0”)とする。第1のゲーティング制御信号1GAT−SIGは、アクティブ状態で論理レベルのハイ(論理値“1”)とし、非アクティブ状態で論理レベルのロー(論理値“0”)とする。第2のゲーティング制御信号2GAT−SIGは、アクティブ状態が論理レベルのロー(論理値“0”)で、非アクティブ状態で論理レベルのハイ(論理値“1”)とする。
第1のクロック停止許可信号1CST−SIGと第2のクロック停止許可信号2CST−SIGが同時にアクティブ状態になることはなく、第1のゲーティング制御信号1GAT−SIGと第2のゲーティング制御信号2GAT−SIGが同時に非アクティブ状態になることはない。
図21と図22を参照して、第1のゲーティング制御信号1GAT−SIGは、第1のクロック停止許可信号1CST−SIGがアクティブ状態(論理値“1”)で且つ、クロック再開許可信号C−RES−SIGが非アクティブ状態(論理値“0”)のときのみ非アクティブ状態に(論理値“0”)なり、第2のゲーティング制御信号2GAT−SIGは、第2のクロック停止許可信号2CST−SIGがアクティブ状態(論理値“1”)で且つ、クロック再開許可信号C−RES−SIGが非アクティブ状態(論理値“0”)のときのみ非アクティブ状態(論理値“1”)になる。
また、第1のゲーティング制御信号1GAT−SIGが非アクティブ状態(論理値“0”)で第2のゲーティング制御信号2GAT−SIGがアクティブ状態(論理値“0”)のとき、出力クロック信号CKOUTはローレベル固定(出力クロック停止状態)になる。第1のゲーティング制御信号1GAT−SIGがアクティブ状態(論理値“1”)で第2のゲーティング制御信号2GAT−SIGが非アクティブ状態(論理値“1”)のとき、出力クロック信号CKOUTはハイレベル固定(出力クロック停止状態)になる。第1のゲーティング制御信号1GAT−SIGがアクティブ状態(論理値“1”)で第2のゲーティング制御信号2GAT−SIGがアクティブ状態(論理値“0”)のときのみ、第1のクロック信号1CLKが出力クロック信号CKOUTとして出力される。上で述べたように、第1のゲーティング制御信号1GAT−SIGが非アクティブ状態(論理値“0”)で第2のゲーティング制御信号2GAT−SIGも非アクティブ状態(論理値“1”)という組み合わせは起こらないように制御される。
クロック切り替えを行わない通常動作時は、第1のクロック停止許可信号1CST−SIG、第2のクロック停止許可信号2CST−SIG、クロック再開許可信号C−RES−SIGは全て初期状態の非アクティブ状態(論理値“0”)になっている。従って、第1のゲーティング制御信号1GAT−SIGはアクティブ状態(論理値“1”)で且つ、第2のゲーティング制御信号2GAT−SIGはアクティブ状態(論理値“0”)になるため、第1のクロック信号1CLKが出力クロック信号CKOUTとして出力される。
図23には、第1の選択信号保持部1703と第2の選択信号保持部1704の具体的な回路構成の1例が示される。
第1の選択信号保持部1703はフリップフロップ2301、2302、2303を含んで構成され、第2の選択信号保持部1704はAND回路2304、2305とOR回路2306と遅延時間D1の遅延回路(DLY)2307とラッチ回路2308、2309、2310を含んで構成される。
第1の選択信号保持部1703では、切り替えトリガ信号ST−SIGの立上りエッジでクロック選択信号〔0〕、クロック選択信号〔1〕、クロック選択信号〔2〕がフリップフロップ2301、2302、2303にそれぞれサンプリング及び保持され、新選択信号NSEL−SIG〔0〕、新選択信号NSEL−SIG〔1〕、新選択信号NSEL−SIG〔2〕として出力される。
第2の選択信号保持部1704では、AND回路2304、2305とOR回路2306によって、第1のゲーティング制御信号1GAT−SIGが非アクティブ状態で且つ、第2のゲーティング制御信号2GAT−SIGがアクティブ状態のとき、若しくは第1のゲーティング制御信号1GAT−SIGがアクティブ状態で且つ、第2のゲーティング制御信号2GAT−SIGが非アクティブ状態のときに、OR回路2306の出力信号がアクティブ状態になる。その後、遅延回路2307で設定された時間が経過した後に切り替え実行信号SEL−RUN−SIGが非アクティブ状態(論理値“0”)からアクティブ状態(論理値“1”)に変わる。切り替え実行信号SEL−RUN−SIGがアクティブ状態(論理値“1”)になると、新選択信号NSEL−SIG〔0〕、新選択信号NSEL−SIG〔1〕、新選択信号NSEL−SIG〔2〕がラッチ回路2308、2309、2310に保持され、現選択信号CSEL−SIG〔0〕、現選択信号CSEL−SIG〔1〕、現選択信号CSEL−SIG〔2〕として出力される。
図24には、図17におけるリセット信号生成部1705の具体的な回路構成例が示される。
リセット信号生成部1705は、インバータ2401と遅延時間D2の遅延回路(DLY)2402で構成され、クロック再開許可信号C−RES−SIGの論理をインバータ2401で反転した信号を第1のリセット信号1RST−SIGとして出力し、第1のリセット信号1RST−SIGを遅延回路2402で所定の時間(D2)だけ遅延した信号を第2のリセット信号2RST−SIGとして出力する。
図18には、クロック切り替えイベントが発生したときのクロックセレクタ301aの動作を説明するタイミングチャートが示される。このタイミングチャートは、比較的周波数が低いクロック信号から比較的周波数が高いクロック信号へ切り替える場合の例を示している。
図17と図18を参照して、クロック切り替え処理の流れをクロックセレクタ301aの各ブロックの動作と連携して説明する。
以下の説明で、時刻T1〜T5は図18中に示す各時刻に対応する。また、第1のクロック停止許可信号1CST−SIG、第2のクロック停止許可信号2CST−SIG、クロック再開許可信号C−RES−SIGの初期状態は非アクティブ状態であり、第1のゲーティング制御信号1GAT−SIG、第2のゲーティング制御信号2GAT−SIGの初期状態はアクティブ状態であり、第1のリセット信号1RST−SIG、第2のリセット信号2RST−SIGの初期状態は非アクティブ状態とする。
また、クロック切り替え前の第1のクロック信号1CLKと出力クロック信号CKOUTは低周波クロックのグループの中から選択されているため、実施の形態6で説明したように、これらのクロック信号は図11の遅延回路1107によって、第3のクロック信号3CLKよりも時間D5だけ遅れて出力される。時刻T1では、外部から供給される3ビットのクロック選択信号の値が(x、x、x)から(y、y、y)に変化し、同様に外部から供給される第2のクロック選択部En信号2CLKEN−SIGが非アクティブ状態(論理レベルのロー)からアクティブ状態(論理レベルのハイ)に変化する。
時刻T2では、時刻T1から所定の時間(図18中のD6)が経過した後、外部から供給される切り替えトリガ信号ST−SIGが非アクティブ状態(論理レベルのロー)からアクティブ状態(論理レベルのハイ)に変化する。これにより、第1の選択信号保持部1703が3ビットの新選択信号NSEL−SIGの値を(x、x、x)から(y、y、y)に変え、選択型クロック制御信号生成回路201a内の第2クロック選択部203が、3ビットの新選択信号NSEL−SIGが示す値(y、y、y)に対応する第4のクロック信号4CLKの出力を開始する。また、選択型クロック制御信号生成回路201a内のクロック制御信号生成回路101aが処理を開始し、実施の形態4で説明したように、第3のクロック信号3CLKのレベルが検出される(図18ではハイレベルを検出)。
時刻T3では、実施の形態4で説明したように、遅延回路506によって時刻T2から所定の時間(図18中のD3)が経過した後に、選択型クロック制御信号生成回路201aが第2クロック停止許可信号を非アクティブ状態(論理レベルのロー)からアクティブ状態(論理レベルのハイ)に変化させて出力する。これにより、ゲーティング制御部1701が第2のゲーティング制御信号2GAT−SIGをアクティブ状態(論理レベルのロー)から非アクティブ状態(論理レベルのハイ)に変える。このとき、第1のゲーティング制御信号1GAT−SIGはアクティブ状態論理レベルのハイ)のままである。更にこれを受けて、クロックゲーティング部1702が出力クロック信号CKOUTを論理レベルのハイに固定する(出力クロックの停止(STP)を実施)。
時刻T4では、遅延回路2307によって、時刻T3から所定の時間(図18中のD1)が経過した後に、第2の選択信号保持部1704が3ビットの現選択信号CSEL−SIGの値を(x、x、x)から(y、y、y)に変え、選択型クロック制御信号生成回路201a内の第1のクロック選択部202aが第1のクロック信号1CLKを、3ビットの現選択信号CSEL−SIGが示す値(y、y、y)に対応する切り替え後のクロック信号に切り替える(クロック選択の変更を実施)。
時刻T5では、実施の形態4で説明したように、選択型クロック制御信号生成回路201a内のクロック制御信号生成回路101aが、第4のクロック信号4CLKの立上りエッジを2回検出した後にクロック再開許可信号C−RES−SIGを非アクティブ状態(論理レベルのロー)からアクティブ状態(論理レベルのハイ)に変化させて出力する。これにより、ゲーティング制御部1701が第2のゲーティング制御信号2GAT−SIGを非アクティブ状態(論理レベルのハイ)からアクティブ状態(論理レベルのロー)に変える。このとき、第1のゲーティング制御信号1GAT−SIGはアクティブ状態(論理レベルのハイ)のままである。更にこれを受けて、クロックゲーティング部1702は出力クロック信号CKOUTを第1のクロック信号1CLKに戻す(出力クロックの再開を実施)。
時刻T5の後、第1のリセット信号1RST−SIGが非アクティブ状態(論理レベルのハイ)からアクティブ状態(論理レベルのロー)に変わり、遅延回路2402によって、これから所定の時間(図18中のD2)が経過した後に、第2のリセット信号2RST−SIGが非アクティブ状態(論理レベルのハイ)からアクティブ状態(論理レベルのロー)に変わる。第1のリセット信号1RST−SIGと第2のリセット信号2RST−SIGがアクティブ状態になることによって、選択型クロック制御信号生成回路201a内のクロック制御信号生成回路101aの内部回路が初期化される。
出力クロック信号CKOUTは、時刻T3までは切り替え前のクロック信号を出力し、時刻T3〜T5までの期間は停止状態に制御され、時刻T5以降は切り替え後のクロック信号を出力する。クロック停止期間は少なくとも、切り替え後のクロック信号の1周期分は確保される。
以上の説明では時刻T3において、クロックゲーティング部1702は第2のゲーティング制御信号2GAT−SIGが非アクティブ状態になったことを受けて、出力クロック信号CKOUTを論理レベルのハイに固定して停止したが、逆に、第1のゲーティング制御信号1GAT−SIGが非アクティブ状態になった場合は、出力クロック信号CKOUTを論理レベルのローに固定して停止する。
ここで、上記の説明のように、切り替え前のクロック信号が低周波クロックのグループから選択されている場合、出力クロック信号CKOUTは第3のクロック信号3CLKよりも時間D5だけ遅れているため、稀にではあるが、出力クロック信号CKOUTがまだハイレベルの状態にあるのに、第3のクロック信号3CLKのローレベルが検出され、これに基づいて出力クロック信号CKOUTをローレベルで停止させる場合が起こり得る。また、上記の場合とは逆に出力クロック信号CKOUTがまだローレベルの状態にあるのに、第3のクロック信号3CLKのハイレベルが検出され、これに基づいて出力クロック信号CKOUTをハイレベルで停止させる場合が起こり得る。しかしながら、そのようなケースでは出力クロック信号CKOUTは十分に長い時間(最小でも、0.5周期時間−D5)、ハイレベルやローレベルの状態を維持した後であるため、クロック停止時にレベルの違う状態に強制的に遷移されたとしても、本来、遷移が起こる時間より時間D5だけ早く遷移が起こるに過ぎない。時間D5は使用する低周波クロックの1周期時間よりも極めて短い時間に設定されるので、クロック波形としては何ら不都合を生じない。
次に、図11に示される選択型クロック制御信号生成回路201a内の第1のクロック選択部202aで使用されている遅延回路1107の目的について説明する。選択型クロック制御信号生成回路201a内にあるクロック制御信号生成回路101aでは、低周波クロックである第3のクロック信号3CLKが印加されているときに、第1の低周波クロック処理部104aにおける第3のクロック信号3CLKのレベル検出に基づいて、出力クロック信号CKOUTの停止を制御する第1のクロック停止許可信号1CST−SIGと第2のクロック停止許可信号2CST−SIGの生成を行う。通常、レベル検出に基づくクロック停止を行うと、例えば、たまたまクロックの立上りエッジの直前で検出されたローレベルに基づいてクロックをローレベルで停止させようとしたときに、回路の処理遅延によって生じる時間経過によって、実際にクロックを停止させようとしたときには既にクロックはハイレベルに遷移してしまっており、予定通りにローレベルに出力を固定させてクロック停止を行うと、グリッチが発生してしまう。このようなケースを考慮して、遅延回路1107が用いられている。すなわち、遅延回路1107を通すことによって第1のクロック信号1CLK及び出力クロック信号CKOUTは、第3のクロック信号3CLKよりも時間D5だけ遅延される。従って、第3のクロック信号3CLKのエッジ直前でレベル検出が実行されたとしても、出力クロック信号CKOUTはその時点から時間D5の間は検出されたのと同じレベルを維持することになる。そのため、回路の処理遅延があったとしても、時間D5以内であれば検出されたレベルに固定してクロックを停止させてもグリッチは発生しない。このために必要な条件は、第1の低周波クロック処理部104a内で用いている遅延回路506の設定遅延時間D3が時間D5よりも小さいことである。遅延回路1107の役割は、レベル検出に基づくクロック停止を行う低周波クロック信号においてクロック停止処理の間、クロックのレベル変化がないことを保障することである。
以上の説明のように、クロックセレクタ301においては、低周波クロック信号から高周波クロック信号に切り替える場合、n+1ビットのクロック選択信号の変化からクロック停止までに最大で、(所定の時間D6+所定の時間D3)の時間を要し、クロック停止からクロック再開までに最大で切り替え後クロックの3周期分の時間を要する。クロック切り替えに要する時間はこれらの時間の合計に相当する。
n+1ビットのクロック選択信号が安定するまでの待機時間として設定される所定の時間D6は通常10ナノ秒程度であり、フリップフロップのメタステーブル現象が安定するまでの待機時間として設定される所定の時間D3も通常10ナノ秒程度であるので、例えば、切り替え前のクロック周波数が32kHzで、切り替え後のクロック周波数が100MHzである場合、クロック切り替えは合計で50ナノ秒程度で完了する。この時間は切り替え後の100MHzクロックの僅か5周期分の期間にしか相当しない。これは従来例のクロックセレクタの同条件におけるクロック切り替え時間(62.5マイクロ秒、切り替え後の100MHzクロックの6250周期の期間に相当)に比べて格段に速いと言える。
尚、本実施の形態では、第2の選択信号保持部1704において第1のゲーティング制御信号1GAT−SIGと第2のゲーティング制御信号2GAT−SIGの変化を用いて、n+1ビットの現選択信号CSEL−SIGを更新するためのトリガ信号をラッチ回路2308、2309、2310に与えた。しかしこのトリガ信号を生成するための元信号は第1のゲーティング制御信号1GAT−SIGと第2のゲーティング制御信号2GAT−SIGに限定される訳ではなく、他の適切な信号または、新たな回路で別途作成した信号を使用しても良い。
<実施の形態9>
図19には、図3に示されるクロックセレクタ301の他の具体的な構成例が示される。
図19に示されるクロックセレクタ301bは、選択型クロック制御信号生成回路201bとゲーティング制御部1901とクロックゲーティング部1902と第1の選択信号保持部1903と第2の選択信号保持部1904とリセット信号生成部1905から成る。
クロックセレクタ301bには、外部から複数のクロック信号(入力クロック信号CKIN1から入力クロック信号CKIN6)とn+1ビットのクロック選択信号と切り替えトリガ信号ST−SIGと第2のクロック選択部En信号2CLKEN−SIGが入力され、クロックセレクタ301bからは、出力クロック信号CKOUTと切り替え実行信号SEL−RUN−SIGと第2のリセット信号2RST−SIGが外部に出力される。これらの信号については実施の形態3の場合と同じである。
クロック制御信号生成回路201bは、実施の形態7で説明した図14のクロック制御信号生成回路201bと同一の構成で同一の動作を行う。
ゲーティング制御部1901とクロックゲーティング部1902は図21のように構成され、これの動作については実施の形態8の場合と同じである。
第1の選択信号保持部1903と第2の選択信号保持部1904は図23のように構成され、これの動作については実施の形態8の場合と同じである。
リセット信号生成部1905は図24のように構成され、これの動作については実施の形態8で既に説明済みである。
図20には、クロック切り替えイベントが発生したときのクロックセレクタ301bの動作タイミングが示される。図20に示される動作タイミングは、比較的周波数が低いクロック信号から比較的周波数が高いクロック信号へ切り替える場合の例を示している。
図19と図20を参照して、クロック切り替え処理の流れをクロックセレクタ301bの各ブロックの動作と連携して説明する。
以下の説明において、時刻T1〜T5は図20中に示す各時刻に対応する。また、第1のクロック停止許可信号1CST−SIG、第2のクロック停止許可信号2CST−SIG、クロック再開許可信号C−RES−SIGの初期状態は非アクティブ状態であり、第1のゲーティング制御信号1GAT−SIG、第2のゲーティング制御信号2GAT−SIGの初期状態はアクティブ状態であり、第1のリセット信号1RST−SIG、第2のリセット信号2RST−SIGの初期状態は非アクティブ状態であるとする。
時刻T1では、外部から供給される3ビットのクロック選択信号の値が(x、x、x)から(y、y、y)に変化し、同様に外部から供給される第2のクロック選択部En信号2CLKEN−SIGが非アクティブ状態(論理レベルのロー)からアクティブ状態(論理レベルのハイ)に変化する。
時刻T2では、時刻T1から所定の時間(図20中のD6)が経過した後、外部から供給される切り替えトリガ信号ST−SIGが非アクティブ状態(論理レベルのロー)からアクティブ状態(論理レベルのハイ)に変化する。これにより、第1の選択信号保持部1903が3ビットの新選択信号NSEL−SIGの値を(x、x、x)から(y、y、y)に変え、選択型クロック制御信号生成回路201b内の第2クロック選択部203が、3ビットの新選択信号NSEL−SIGが示す値(y、y、y)に対応する第4のクロック信号4CLKの出力を開始する。また、選択型クロック制御信号生成回路201b内のクロック制御信号生成回路101bが処理を開始する。
時刻T3では、実施の形態5で説明したようになる。すなわち、選択型クロック制御信号生成回路201b内のクロック制御信号生成回路101bにおいて、第3のクロック信号3CLKのエッジが検出された後、遅延回路807によって時間D4だけ遅延された第3のクロック信号3CLK(D4)の同一方向のエッジが検出されることによって(図20は立上りエッジの場合を示している)、選択型クロック制御信号生成回路201bが第2クロック停止許可信号を非アクティブ状態からアクティブ状態に変化させて出力する。これにより、ゲーティング制御部1901が第2のゲーティング制御信号2GAT−SIGをアクティブ状態(論理レベルのロー)から非アクティブ状態(論理レベルのハイ)に変える。このとき、第1のゲーティング制御信号1GAT−SIGはアクティブ状態論理レベルのハイ)のままである。更にこれを受けて、クロックゲーティング部1902が出力クロック信号CKOUTを論理レベルのハイに固定する(出力クロックの停止(STP)を実施)。
時刻T4では、遅延回路2307によって、時刻T3から所定の時間(図20中のD1)が経過した後に、第2の選択信号保持部1904が3ビットの現選択信号CSEL−SIGの値を(x、x、x)から(y、y、y)に変える。そして選択型クロック制御信号生成回路201b内の第1のクロック選択部202bが第1のクロック信号1CLKを、3ビットの現選択信号CSEL−SIGが示す値(y、y、y)に対応する切り替え後のクロック信号に切り替える(クロック選択の変更を実施)。
時刻T5では、実施の形態5で説明したように、選択型クロック制御信号生成回路201b内のクロック制御信号生成回路101bが、第4のクロック信号4CLKの立上りエッジを2回検出した後にクロック再開許可信号C−RES−SIGを非アクティブ状態(論理レベルのロー)からアクティブ状態(論理レベルのハイ)に変化させて出力する。これにより、ゲーティング制御部1901が第2のゲーティング制御信号2GAT−SIGを非アクティブ状態(論理レベルのハイ)からアクティブ状態(論理レベルのロー)に変える。このとき、第1のゲーティング制御信号1GAT−SIGはアクティブ状態(論理レベルのハイ)のままである。更にこれを受けて、クロックゲーティング部1902は出力クロック信号CKOUTを第1のクロック信号1CLKに戻す(出力クロックの再開を実施)。
時刻T5の後、第1のリセット信号1RST−SIGが非アクティブ状態(論理レベルのハイ)からアクティブ状態(論理レベルのロー)に変わり、遅延回路2402によって、これから所定の時間(図20中のD2)が経過した後に、第2のリセット信号2RST−SIGが非アクティブ状態(論理レベルのハイ)からアクティブ状態(論理レベルのロー)に変わる。第1のリセット信号1RST−SIGと第2のリセット信号2RST−SIGがアクティブ状態になることによって選択型クロック制御信号生成回路201b内のクロック制御信号生成回路101bの内部回路が初期化される。
出力クロック信号CKOUTは、時刻T3までは切り替え前のクロック信号を出力し、時刻T3〜T5までの期間は停止状態に制御され、時刻T5以降は切り替え後のクロック信号を出力する。クロック停止期間は少なくとも、切り替え後のクロック信号の1周期分は確保される。
以上の説明では時刻T3において、クロックゲーティング部1702は第2のゲーティング制御信号2GAT−SIGが非アクティブ状態になったことを受けて、出力クロック信号CKOUTを論理レベルのハイに固定して停止したが、逆に、第1のゲーティング制御信号1GAT−SIGが非アクティブ状態になった場合は、出力クロック信号CKOUTを論理レベルのローに固定して停止する。
以上の説明のように、本発明にかかるクロックセレクタにおいては、低周波クロック信号から高周波クロック信号に切り替える場合、n+1ビットのクロック選択信号の変化からクロック停止までに最大で、(所定の時間D6+切り替え前クロックの0.5周期+所定の時間D4)の時間を要し、クロック停止からクロック再開までに最大で切り替え後クロックの3周期分の時間を要する。クロック切り替えに要する時間はこれらの時間の合計に相当する。
n+1ビットのクロック選択信号が安定するまでの待機時間として設定される所定の時間D6は通常10ナノ秒程度であり、フリップフロップのメタステーブル現象が安定するまでの待機時間として設定される所定の時間D4も通常10ナノ秒程度であるので、例えば、切り替え前のクロック周波数が32kHzで、切り替え後のクロック周波数が100MHzである場合、クロック切り替えは合計で15.7マイクロ秒程度で完了する。この時間は切り替え後の100MHzクロックの1570周期分の期間に相当するが、従来例のクロックセレクタの同条件におけるクロック切り替え時間(62.5マイクロ秒、切り替え後の100MHzクロックの6250周期の期間に相当)に比べて十分に速いと言える。
<実施の形態10>
図25には、本発明にかかる情報処理装置の一例とされるマイクロコンピュータシステムの構成例が示される。
マイクロコンピュータシステム2501は、実施の形態8や実施の形態9で説明した本発明にかかるクロックセレクタ2511を含むクロック発生部2502と、クロック発生部2502から出力されたクロック信号に同期して動作される複数の機能モジュールを含む。この複数の機能モジュールには、特に制限されないが、CPU(中央処理装置)2529、割込み制御部(INT−CNT)2530、ウォッチドッグタイマ(W−TIM)2531、バスインタフェース部(B−INT)2532、バス制御部(B−CNT)2533、プログラムメモリ(P−MEM)やデータメモリ(D−MEM)等を含むメモリ部2534が含まれる。また、上記複数の機能モジュールには、制御レジスタ(CNT−REG)2535、汎用タイマ(G−TIM)、時計用タイマ(C−TIM)、シリアルインタフェース(S−INT)、IOポート(IO−P)、AD変換器(A/D)等を含む周辺機能2536が含まれる。
クロック発生部2502は、クロックセレクタ(CLK−SEL)2511、クロックバッファ2504、PLL2505、HOCO(High−frequency On Chip Oscillator;高周波オンチップ発振器)2506、LOCO(Low−frequency On Chip Oscillator;低周波オンチップ発振器)2507を含む。また、クロック発生部2502は、TC(Real Time Clock;時計用クロック発振器)2508、分周器(Div)2509、マルチプレクサ(Mux)2510、不一致検出機能部(MIS−DET)2512を含む。さらにクロック発生部2502は、分周器(Div)2513、2514、2515、2516、遅延調整器(D−ADJ)2517、2518、2519、2520、クロックゲーティング回路(CG)2521、2522、2523、2524、クロックバッファ2525、2526、2527、2528等を含む。上記クロックセレクタ2511には、図3等に示される構成が適用される。尚、このクロックセレクタ2551には、外部端子を介してクロック信号が伝達されるようになっている。
PLL2505は、制御レジスタ2535によってイネーブルに設定された場合、外付け水晶(Xtal)2503から供給される基準クロックを逓倍して例えば100MHzの高周波クロック信号を生成する。
HOCO2506は、制御レジスタ2535によってイネーブルに設定された場合、自走で例えば40MHzの高周波クロック信号を生成する。
LOCO2507は、制御レジスタ2535によってイネーブルに設定された場合、自走で例えば125kHzの低周波クロック信号を生成する。
RTC2508は、制御レジスタ2535によってイネーブルに設定された場合、自走で例えば32kHzの低周波クロック信号を生成する。これは時計用のクロック信号としても使われる。
分周器2509は、制御レジスタ2535によってイネーブルに設定された場合、外付け水晶(Xtal)2503から供給される基準クロックを分周して例えば32kHzの低周波クロック信号を生成する。これは時計用のクロック信号としても使われる。
RTC2508と分周器2509からは、共に32kHzの低周波クロック信号が供給されるが、外付け水晶(Xtal)2503がない場合はRTC2508を動作させ、分周器2509は停止、逆に外付け水晶(Xtal)2503がある場合は分周器2509を動作させ、RTC2508は停止させるという使い分けをする。32kHzの低周波クロック信号は時計用のクロック信号としても使われるので、一般的には常にクロック生成がされている。時計用クロック信号は、マルチプレクサ2510によって一方が選択されてマイクロコンピュータシステム2501の内部回路にも供給される。
上記クロックセレクタ2511は、制御レジスタ2535が出力するn+1ビットのクロック選択信号が示す値に応じて、PLL2505の出力信号である100MHzの高周波クロック信号、HOCO2506の出力信号である40MHzの高周波クロック信号、LOCO2507の出力信号である125kHzの低周波クロック信号、RTC2508若しくは分周器2509の出力信号である32kHzの低周波クロック信号の中から1つを選択する。そして上記クロックセレクタ2511は、それを出力クロック信号CKOUTとして出力する。
上記クロックセレクタ2511が出力する出力クロック信号CKOUTは4つの系統に分岐される。これらは分周器2513、2514、2515、2516に入力され、所定の周波数のクロック信号に変換される。その後、それぞれ遅延調整器2517、2518、2519、2520と、クロックゲーティング回路2521、2522、2523、2524と、クロックバッファ2525、2526、2527、2528を経て、CPUクロックCPU−CLK、バスクロックBUS−CLK、周辺クロックMOD−CLK1、周辺クロックMOD−CLK2としてマイクロコンピュータシステム2501内に供給される。
図25では、CPUクロックCPU−CLKはCPU2529の動作クロックとして使われ、バスクロックBUS−CLKはウォッチドッグタイマ2531やバスインタフェース部2532やバス制御部2533やメモリ部2534や制御レジスタ2535の動作クロックとして使われる。また、周辺クロックMOD−CLK1は周辺機能2536内の汎用タイマやシリアルインタフェースやIOポートの動作クロックとして使われ、周辺クロックMOD−CLK2は周辺機能2536内のAD変換器の動作クロックとして使われる。
クロックゲーティング回路2521、2522、2523、2524は、個別ブロックに対してクロック信号の供給が必要ない場合に、制御レジスタ2535の設定によってこれらのクロック信号の供給を個別に停止するために使われる。
遅延調整器2517、2518、2519、2520は、マイクロコンピュータシステム2501内で各クロック信号の伝搬経路が互いに独立で異なった伝搬遅延を受けるために、マイクロコンピュータシステム2501内の各ブロック間でクロック同期が維持できなくなることを回避するために使われ、同期関係を確立するために、制御レジスタ2535の設定によってクロック毎に異なった遅延時間が設定されて位相の調整がなされる。
クロック発生部2502内の不一致検出機能部2512について説明する。
図26には、不一致検出機能部2512の具体的な回路構成例が示される。
不一致検出機能部2512は、不一致検出回路2601とラッチ回路2606と遅延時間D6の遅延回路2607とフリップフロップ2608とインバータ2609を含んで構成される。
不一致検出回路2601は更に、排他的OR回路(Ex−OR)2602、2603、2604とOR回路2605を含んで構成される。
不一致検出機能部2512には、制御レジスタ2535から出力されるn+1ビットのクロック選択信号と、本発明のクロックセレクタ2511から出力されるn+1ビットの現選択信号CSEL−SIG、切り替え実行信号SEL−RUN−SIG、第2のリセット信号2RST−SIGが入力され、不一致検出機能部2512からはそしてそれはクロックセレクタ2511に供給される。
不一致検出回路2601は、2入力の排他的OR回路(2602、2603、2604)が2つの入力信号の論理が異なるときに出力信号をアクティブ状態(論理レベルのハイ)にする機能を利用して、n+1ビットのクロック選択信号とn+1ビットの現選択信号CSEL−SIGをビット毎に比較する。その結果、両者間に1ビットでも不一致がある場合はOR回路2605の出力信号がアクティブ状態(論理レベルのハイ)に変化する。これにより、n+1ビットのクロック選択信号の値が更新されたことが検出される。
不一致検出回路2601の出力信号がアクティブ状態(論理レベルのハイ)に変化することによって、ラッチ回路2606の出力信号である第2のクロック選択部En信号2CLKEN−SIGがアクティブ状態(論理レベルのハイ)に変化する。第2のクロック選択部En信号2CLKEN−SIGがアクティブ状態(論理レベルのハイ)に変化した後、遅延回路2607に設定された所定の遅延時間(D6)が経過してから、遅延回路2607の出力信号がアクティブ状態(論理レベルのハイ)に変化する。これによって、フリップフロップ2608の出力信号である切り替えトリガ信号ST−SIGがアクティブ状態(論理レベルのハイ)に変化する。
ラッチ回路2606の出力信号は第2のリセット信号2RST−SIGがアクティブ状態(論理レベルのロー)になることによって非アクティブ状態(論理レベルのロー)に初期化され、フリップフロップ2608の出力信号はインバータ2609によって切り替え実行信号SEL−RUN−SIGがアクティブ状態(論理レベルのハイ)になることによって非アクティブ状態(論理レベルのロー)に初期化される。
ところで、制御レジスタ2535から出力されるn+1ビットのクロック選択信号は、制御レジスタ2535を構成する半導体デバイスの動作ばらつきや各ビットの信号配線の負荷容量の違い等によって、ビット毎に異なった時間差(スキュ−)を持ってクロックセレクタ2511に到達することが予想される。従って、全てのビットが最終値に変化する前にクロックセレクタ2511にn+1ビットのクロック選択信号の値が保持されてしまうと、間違った情報によって間違ったクロックへの切り替えが起こってしまう。
不一致検出機能部2512では、このような不都合を回避するために遅延回路2607が使われる。すなわち、n+1ビットのクロック選択信号の何れかのビットの変化を検出した後、遅延回路2607に設定された遅延時間D6だけ時間が経過した後に切り替えトリガ信号ST−SIGをアクティブ状態に変える。クロックセレクタ2511では切り替えトリガ信号ST−SIGが非アクティブ状態からアクティブ状態に変化することによって、図23の第1の選択信号保持部でn+1ビットのクロック選択信号がサンプリング及び保持されるので、遅延時間D6を想定されるスキュー時間よりも長く設定することによって、最終値に変化した後のn+1ビットのクロック選択信号をクロックセレクタ2511に保持することが可能になる。
次に、上記クロックセレクタ2511をマイクロコンピュータシステム2501に適用することによって生じる効果について説明する。
クロックセレクタ2511は、制御レジスタ2535を介したCPU2529からのクロック選択指示(n+1ビットのクロック選択信号)に応じて、複数の入力クロック信号から1つを選択して出力する。
通常は、クロックセレクタ2511は高周波クロック信号(例えば、PLL2505の出力信号である100MHzクロック信号)を選択出力し、マイクロコンピュータシステム2501はこのクロック信号をベースとした高速処理を実施する(高速動作モード)。一般的に、このときPLL2505以外の他のクロックソース(HOCO2506、LOCO2507、RTC2508)は停止状態に制御される。
一方、CPU2529が休止状態や、高速な処理を必要としない動作に移行した場合は、クロックセレクタ2511は低周波クロック信号(分周器2509の出力信号である32kHzクロック信号)を選択出力し、マイクロコンピュータシステム2501はこのクロック信号をベースとした低消費電力モードでの動作を行う。一般的に、このとき分周器2509以外の他のクロックソース(PLL2505、HOCO2506、LOCO2507、RTC2508)は停止状態に制御される。
低消費電力モードでの動作中に、例えば、周辺機能2536(タイマや外部インタフェース)からの割込み要求が発生した場合、CPU2529は制御レジスタ2535内のn+1ビットのクロック選択信号の値をPLL2505の出力信号である100MHzクロック信号の選択に書き換える。クロックセレクタ2511はこの指示を受けて、選択クロックを32kHzから100MHzに切り替え、マイクロコンピュータシステム2501は高速動作モードに復帰する。
実施の形態8や実施の形態9で説明したように、クロックセレクタ2511は極めて高速なクロック切り替えを行うことができる。そのため、マイクロコンピュータシステム2501が低消費電力モードから高速動作モードへ移行する際に要する時間を大幅に短縮することが可能になる。そのため、PLL2505等、消費電力が大きい高周波クロックソースを無駄に動作させておかなければならない待機時間が極めて短くてすむので、クロックセレクタ2511を適用したマイクロコンピュータシステム2501は、システムの低消費電力化に寄与する。特に、モバイル用途等の電池駆動時に電池の寿命を長くできる。
また、低消費電力モードから高速動作モードへの復帰を高速に行うことができるために生じる他の利点は、低消費電力モードから高速動作モードへ復帰した際に、必要な処理を遅滞なくリアルタイムで実行することが可能になることである。従って、本発明にかかるクロックセレクタを適用したマイクロコンピュータシステム2501は、処理のリアルタイム性が重要なコントローラアプリケーション等において適切な動作が期待できる。
実施の形態2、実施の形態6、実施の形態7で説明した選択型クロック制御信号生成回路及び、実施の形態3、実施の形態8、実施の形態9で説明したクロックセレクタは、複数の高周波クロック信号に対して1つの第1の高周波クロック処理部(例えば、図5の103)や第2の高周波クロック処理部(例えば、図5の107)を共有して使う。また、上記セレクタは、複数の低周波クロック信号に対して1つの第1の低周波クロック処理部(例えば、図5の104a)や第2の低周波クロック処理部(例えば、図5の108a)を共有して使う。このため、選択すべきクロック信号の種類や数が増えたとしても、第1のクロック選択部(例えば、図11の202a)と第2のクロック選択部(例えば、図11の203)のクロック選択数を増やすだけで容易に対応が可能であり、回路規模の増大を招かないで済む。
実施の形態1から実施の形態10までの説明において、切り替えトリガ信号ST−SIGのアクティブ状態には、切り替えトリガ信号ST−SIGが非アクティブ状態からアクティブ状態に遷移する際の遷移中の状態も含まれるものとする。
以上説明したように、本発明にかかるクロックセレクタによれば、低周波クロック信号と高周波クロック信号を分離して、それぞれに対する処理を、適切に構成された専用処理部で行うことによって、高速クロック切り替えの障害になっていた切り替え前の低周波クロック信号の処理を高速化する。更にクロック信号のローレベルとハイレベルの何れでもクロックを停止できる機構を設けることによって、クロック切り替え時の待機時間を大幅に短縮することが可能になる。
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
例えば、上記構成のクロックセレクタは、マイクロコンピュータ2501以外の情報処理装置に適用することができる。