図面 (/)
課題
解決手段
概要
背景
一般に、回路内では、クロックに同期したデータの受け渡しが行われる。このような回路を設計する際には、クロックやデータの遅延時間を考慮して、全ての同期パスにおいてタイミング収束するように、タイミング設計がなされる。例えば、フリップフロップ(FF)間でデータの受け渡しを行う場合、正常にデータを受け渡すためには、FFのセットアップ・ホールド時間を満たす必要がある。
回路に供給されるクロックはクロック生成器で生成される。代表的な構成では、クロック生成器はチップトップ階層に配置される。クロック生成器は、必要に応じて、クロックを供給する機能ブロックごとに、クロック周波数の変更、及びクロックのオン又はオフを行うことがある。クロック生成器で生成されたクロックは、チップトップ階層上の配線を通って各機能ブロックに供給され、さらに機能ブロック内で各FFへと分配される。クロック源から各機能ブロック又は各FFへとクロックが到達するまでの遅延時間が等しくなるように物理的なクロック配線を行う手法としては、CTS(クロックツリーシンセシス)がある。クロックの遅延時間差(クロックスキュー)を小さくすることで、タイミング設計を容易化することができる。
近年、デジタルカメラ及びスマートフォンなどの情報機器の省電力化のために、情報処理装置が有する回路(例えばLSIのような集積回路)で用いられるクロックの周波数及びクロックのオンオフを制御することが求められている。例えば、ソフトウェアなどが、クロック生成器によるクロック生成を制御するために、設定値を格納するクロック設定レジスタを用いることができる。このようなレジスタは一機能ブロックとして実装され、また、他の機能ブロックとの間のクロックスキューを小さくするためにCTS下流に位置することが多い。一方で、クロックの供給元であるクロック生成器は、CTS上流のクロックで駆動される。このため、クロック生成器とレジスタとの間のクロック遅延が非常に大きくなり、レジスタ(及びそのFF)とクロック生成器(及びそのFF)との間でデータを受け渡せるようにタイミング設計することは容易ではない。特に近年、回路の大規模化及び高周波数化が進んでいるため、タイミング設計はより困難になっている。
特許文献1は、リセット信号などの遅延の大きい信号の変化中にクロックを止める又はクロックの周波数を下げることで、タイミングの問題を回避することを提案している。
概要
機能ブロックに供給するクロックを制御する構成において、タイミング設計を容易にする。複数の生成手段は、それぞれ、複数の機能ブロックのうち対応する機能ブロックに供給するクロックを生成する。第1の制御手段は、複数の生成手段のうちの1以上の生成手段で構成される第1のグループによるクロック生成を制御し、前記第1のグループと共通のクロックを用いて動作する。第2の制御手段は、複数の機能ブロックのうち1つであり、第1のグループによるクロック生成の制御情報を第1の制御手段に非同期転送する。
目的
本発明は、機能ブロックに供給するクロックを制御する構成において、タイミング設計を容易にするための新しい制御技術を提供する
効果
実績
- 技術文献被引用数
- 0件
- 牽制数
- 0件
この技術が所属する分野
請求項1
それぞれ、複数の機能ブロックのうち対応する機能ブロックに供給するクロックを生成する、複数の生成手段と、前記複数の生成手段のうちの1以上の生成手段で構成される第1のグループによるクロック生成を制御し、前記第1のグループと共通のクロックを用いて動作する、第1の制御手段と、前記複数の機能ブロックのうち1つであり、前記第1のグループによるクロック生成の制御情報を前記第1の制御手段に非同期転送する、第2の制御手段と、を備えることを特徴とする情報処理装置。
請求項2
前記第1の制御手段は、前記第1のグループに含まれる前記1以上の生成手段のそれぞれに対し、前記制御情報を同じタイミングで出力することを特徴とする、請求項1に記載の情報処理装置。
請求項3
前記第1の制御手段は、前記第1のグループに含まれる前記1以上の生成手段のそれぞれに対し、前記制御情報を同期転送することを特徴とする、請求項2に記載の情報処理装置。
請求項4
前記第1の制御手段と前記第2の制御手段とはバスで接続され、前記第2の制御手段は前記バスを介して前記制御情報を前記第1の制御手段に転送することを特徴とする、請求項1から3のいずれか1項に記載の情報処理装置。
請求項5
請求項6
前記第1の制御手段と前記第2の制御手段とは、さらに、前記制御情報の転送を制御する信号線で接続されていることを特徴とする、請求項4又は5に記載の情報処理装置。
請求項7
前記第2の制御手段は、さらに、前記制御情報の取得を要求する信号を前記第1の制御手段に送ることを特徴とする、請求項4から6のいずれか1項に記載の情報処理装置。
請求項8
前記第1の制御手段は、前記制御情報を取得したことを通知する信号を前記第2の制御手段に送ることを特徴とする、請求項4から6のいずれか1項に記載の情報処理装置。
請求項9
前記第2の制御手段は、前記制御情報を格納するレジスタを有しており、前記レジスタ内の制御情報は前記複数の機能ブロックのうち1つにより書き換え可能であることを特徴とする、請求項1から8のいずれか1項に記載の情報処理装置。
請求項10
前記第1のグループは、生成したクロックを、互いに同期関係にある複数の機能ブロックに供給することを特徴とする、請求項1から9のいずれか1項に記載の情報処理装置。
請求項11
前記第1のグループは、生成したクロックを、前記第2の制御手段に供給することを特徴とする、請求項1から10のいずれか1項に記載の情報処理装置。
請求項12
前記第2の制御手段は、前記複数の生成手段のうちの1以上の生成手段で構成される第2のグループによってクロックを供給され、前記第2のグループは前記第1のグループとは共通のクロックを用いて動作することを特徴とする、請求項1から10のいずれか1項に記載の情報処理装置。
請求項13
前記第2の制御手段は、前記複数の生成手段のうちの1以上の生成手段で構成される第3のグループによってクロックを供給され、前記第3のグループは前記第1のグループとは異なるクロックを用いて動作することを特徴とする、請求項1から10のいずれか1項に記載の情報処理装置。
請求項14
前記第1のグループに含まれる前記1以上の生成手段及び前記第1の制御手段は、前記第2の制御手段よりもクロックツリーの上流のクロックを用いて動作することを特徴とする、請求項1から13のいずれか1項に記載の情報処理装置。
請求項15
前記複数の生成手段のうちの1以上の生成手段で構成される第2のグループによるクロック生成を制御し、前記第2のグループと共通のクロックを用いて動作する、第3の制御手段をさらに備え、前記第2の制御手段は、前記第2のグループによるクロック生成の制御情報を前記第3の制御手段に非同期転送することを特徴とする、請求項1から14のいずれか1項に記載の情報処理装置。
請求項16
前記制御情報は、前記第1のグループに含まれる生成手段が生成するクロックの周波数情報と、前記第1のグループに含まれる前記生成手段が生成するクロックのオン又はオフを制御する情報と、のうちの少なくとも1つであることを特徴とする、請求項1から15のいずれか1項に記載の情報処理装置。
請求項17
前記第1の制御手段は、前記第1のグループの近傍に配置されていることを特徴とする、請求項1から16のいずれか1項に記載の情報処理装置。
技術分野
背景技術
0002
一般に、回路内では、クロックに同期したデータの受け渡しが行われる。このような回路を設計する際には、クロックやデータの遅延時間を考慮して、全ての同期パスにおいてタイミング収束するように、タイミング設計がなされる。例えば、フリップフロップ(FF)間でデータの受け渡しを行う場合、正常にデータを受け渡すためには、FFのセットアップ・ホールド時間を満たす必要がある。
0003
回路に供給されるクロックはクロック生成器で生成される。代表的な構成では、クロック生成器はチップトップ階層に配置される。クロック生成器は、必要に応じて、クロックを供給する機能ブロックごとに、クロック周波数の変更、及びクロックのオン又はオフを行うことがある。クロック生成器で生成されたクロックは、チップトップ階層上の配線を通って各機能ブロックに供給され、さらに機能ブロック内で各FFへと分配される。クロック源から各機能ブロック又は各FFへとクロックが到達するまでの遅延時間が等しくなるように物理的なクロック配線を行う手法としては、CTS(クロックツリーシンセシス)がある。クロックの遅延時間差(クロックスキュー)を小さくすることで、タイミング設計を容易化することができる。
0004
近年、デジタルカメラ及びスマートフォンなどの情報機器の省電力化のために、情報処理装置が有する回路(例えばLSIのような集積回路)で用いられるクロックの周波数及びクロックのオンオフを制御することが求められている。例えば、ソフトウェアなどが、クロック生成器によるクロック生成を制御するために、設定値を格納するクロック設定レジスタを用いることができる。このようなレジスタは一機能ブロックとして実装され、また、他の機能ブロックとの間のクロックスキューを小さくするためにCTS下流に位置することが多い。一方で、クロックの供給元であるクロック生成器は、CTS上流のクロックで駆動される。このため、クロック生成器とレジスタとの間のクロック遅延が非常に大きくなり、レジスタ(及びそのFF)とクロック生成器(及びそのFF)との間でデータを受け渡せるようにタイミング設計することは容易ではない。特に近年、回路の大規模化及び高周波数化が進んでいるため、タイミング設計はより困難になっている。
先行技術
0006
特開2010−277608号公報
発明が解決しようとする課題
0007
しかしながら、特許文献1の方法には、クロック生成の制御を行うたびに、クロック周波数低下又はクロックの停止が起きるため、動作速度が低下するという課題があった。
0008
本発明は、機能ブロックに供給するクロックを制御する構成において、タイミング設計を容易にするための新しい制御技術を提供することを目的とする。
課題を解決するための手段
0009
本発明の目的を達成するために、例えば、本発明の情報処理装置は以下の構成を備える。すなわち、
それぞれ、複数の機能ブロックのうち対応する機能ブロックに供給するクロックを生成する、複数の生成手段と、
前記複数の生成手段のうちの1以上の生成手段で構成される第1のグループによるクロック生成を制御し、前記第1のグループと共通のクロックを用いて動作する、第1の制御手段と、
前記複数の機能ブロックのうち1つであり、前記第1のグループによるクロック生成の制御情報を前記第1の制御手段に非同期転送する、第2の制御手段と、
を備える。
発明の効果
0010
機能ブロックに供給するクロックを制御する構成において、タイミング設計を容易にすることができる。
図面の簡単な説明
0011
一実施形態に係る情報処理装置のシステム構成図。
一実施形態に係る情報処理装置のシステム構成図。
一実施形態におけるクロック周波数の切り替えのタイミングチャート。
一実施形態におけるクロックのオンオフ動作のタイミングチャート。
一実施形態に係る情報処理装置の非同期転送のための構成を示す図。
一実施形態に係るレジスタフィールドの例を示す図。
一実施形態における設定値の転送のタイミングチャート。
実施例
0012
以下、添付図面を参照して実施形態を詳しく説明する。なお、以下の実施形態は特許請求の範囲に係る発明を限定するものではない。実施形態には複数の特徴が記載されているが、これらの複数の特徴の全てが発明に必須のものとは限らず、また、複数の特徴は任意に組み合わせられてもよい。さらに、添付図面においては、同一若しくは同様の構成に同一の参照番号を付し、重複した説明は省略する。
0013
まず、図1を参照して、一実施形態に係る情報処理装置100の構成例を示す。本明細書においては、図1に示す情報処理装置100を参照して本発明の実施形態を説明する。しかしながら、本発明において情報処理装置100の全ての構成が必須ではないことに留意されたい。
0014
図1に示す情報処理装置100は、システムオンチップと呼ばれる半導体装置であり、半導体集積回路と呼ぶことができる。図1に示される情報処理装置100の内部の各ブロックは、例えば、それぞれの機能を発揮する回路であってもよい。情報処理装置100の用途は特に限定されず、情報処理装置100は、後述するように、用途に合った機能を実現するための処理を行う機能ブロックを有している。情報処理装置100は、例えば、デジタルカメラシステム用の情報処理装置であってもよい。
0015
情報処理装置100の内部の各ブロックは、バスシステムを介して相互接続されている。このようなバスシステムは、インターコネクト、ファブリック、オンチップネットワーク、又はネットワークオンチップと呼ばれるシステムであってもよい。バスシステムには、それぞれが特定の処理を行う、複数の機能ブロックが接続されている。一実施形態に係る情報処理装置100は、外部センサ(不図示)から映像データを受信する機能、映像データをバスシステムを介してDRAM(不図示)へ転送する機能、及び映像データに対して加工処理を行ってDRAMに格納する機能を有している。図1に示す機能ブロック7a〜7fは、それぞれ、これらの機能及びその他の機能のうちの少なくとも一部を実現する処理を行う。また、バスシステムには、複数の機能ブロックのうちの1つであり、情報処理装置100が行う処理を全体的に制御するCPU8も接続されている。
0016
以下、情報処理装置100において、機能ブロックが動作するために用いるクロックを、機能ブロックに供給するための構成について説明する。情報処理装置100はクロックを発振する機構を有しており、この機構は、図1に示すように、低速クロックと高速クロックとを供給可能であってもよい。
0017
図1においてオシレータ1は低速クロックを発振する。また、PLL2及びPLL3は、それぞれ、オシレータ1により生成された低速クロックを用いて、例えば低速クロックを逓倍することにより、低速クロックよりも高速な高速クロックを出力する。クロックMUX4は、オシレータ1により生成された低速クロック、又はPLL2で生成された高速クロックを選択して、後段に位置する生成部6a〜6e及び制御部31,32に供給する。また、クロックMUX5は、オシレータ1により生成された低速クロック、又はPLL3で生成された高速クロックを選択して、後段に位置する生成部6f及び制御部33に供給する。本明細書においては、クロックMUX4が選択したクロックを基準クロック1と呼び、クロックMUX5が選択したクロックを基準クロック2と呼ぶ。
0018
生成部6a〜6fは、複数の機能ブロックのうち対応する機能ブロックにクロックを供給する。図1の例において、生成部6a,6b,6e,6fは、それぞれ機能ブロック7a,7b,7e,7fにクロックを供給する。また、生成部6c及び生成部6dは、それぞれ機能ブロックの1つである制御部9及びCPU8にクロックを供給する。このために、生成部6a〜6fは、機能ブロックに供給するクロックを生成する。生成部6a〜6fが生成し、機能ブロックに供給するクロックを、それぞれクロックa〜fと呼ぶ。
0019
生成部6a〜6fは、基準クロック(例えば基準クロック1又は基準クロック2)を用いて、機能ブロックに供給するクロックを生成する。例えば、複数の生成部のそれぞれである生成部6a,6bは、共通の基準クロック1を用いて生成したクロックを、対応する機能ブロックである機能ブロック7a,7bに供給している。生成部6a〜6fは、基準クロックを分周することにより、基準クロックの周波数を低下させてから、機能ブロックにクロックを供給することができる。また、生成部6a〜6fは、機能ブロックに供給するクロックをオン又はオフすることができる。
0020
制御部31〜33は、生成部6a〜6fによるクロック生成を制御する。図1の例において、制御部31は、制御部31に対応するグループである生成部6a,6bが供給するクロックを制御する。同様に、制御部32は、制御部32に対応するグループである生成部6c〜6eが供給するクロックを制御し、制御部33は、制御部33に対応するグループである生成部6fが供給するクロックを制御する。
0021
本実施形態において、制御部31〜33は、生成部6a〜6fが機能ブロックに供給するクロックの周波数を制御し、及び生成部6a〜6fから機能ブロックへのクロックの供給をオン又はオフする制御を行うことができるが、制御内容はこれに限定されない。なお、本明細書において、制御部31〜33のことを第1の制御部と呼ぶことがある。
0022
制御部9は、生成部6a〜6fによるクロック生成の制御情報を制御部31〜33に転送する。すなわち、制御部9は、制御部31に対応するグループである生成部6a,6bによるクロック生成の制御情報を制御部31に転送する。同様に、制御部9は、制御部32に対応するグループである生成部6c〜6eによるクロック生成の制御情報を制御部31に、制御部33に対応するグループである生成部6fによるクロック生成の制御情報を制御部33に、それぞれ転送する。こうして、制御部9は、制御部31〜33を介して、機能ブロックに供給されるクロックを制御する。
0023
制御部9は、例えば、生成部6a〜6fのそれぞれが生成するクロック周波数の設定値と、クロックのオン又はオフを示す設定値と、を格納するレジスタを所持することができる。制御部9は、これらのレジスタに格納された設定値を、制御部31〜33に供給することができる。なお、CPU8は、レジスタバスを介して、制御部9がレジスタに格納している設定値の読み書きを行ってもよい。こうして、CPU8は、機能ブロックに供給されるクロックを制御することができる。なお、本明細書において、制御部9のことを第2の制御部と呼ぶことがある。
0024
リセット部20は、情報処理装置100内部のリセット信号を生成する。リセット部20は、オシレータ1が発振した低速クロックを用いて動作することができ、この場合、リセット部20が出力するリセット信号は低速クロックに同期する。このリセット信号に従って、生成部6a〜6fが有するカウンタ及びFF(後述)が初期化される。また、このリセット信号に従って、機能ブロック7a〜7f、CPU8、制御部9、及び制御部31〜33の初期化が同時に行われてもよい(不図示)。
0025
リセット実行時に、クロックMUX4,5はオシレータ1が発振した低速クロックを選択することができる。このとき、情報処理装置100が有する各部は全て低速クロックに同期して動作する。リセット解除後、情報処理装置100が通常処理を開始する際に、クロックMUX4,5はPLL2,PLL3が生成した高速クロックを選択することができる。こうして、情報処理装置100が高速処理を行うことができる。
0026
次に、生成部6a〜6fの詳細な構成例を説明する。以下では生成部6aについて説明するが、生成部6b〜6fも同等の構成を有することができる。図1において、生成部6aは、基準クロック1のパルス数を削減することにより、周波数が低減されたクロックを生成する。例えば、生成部6a、基準クロック1のパルスを2回に1回間引くことにより周波数を1/2にすることができ、4回に3回間引くことで周波数を1/4にすることができる。このような方式(歯抜け方式とも呼ばれる)により生成されたクロックのパルス幅は、基準クロックのパルス幅と同じである。
0027
生成部6aはカウンタ61a及び分周回路を有し、基準クロック1を用いて動作する。図1の例において、分周回路はデコーダ62a、フリップフロップ(FF)63a、及びゲーテッドクロックバッファ(GCB)64aを有している。
0028
カウンタ61aは、カウント動作を行い、カウント値を保持する。カウント値は、リセット時に0に初期化される。カウンタ61aは、リセット解除後にカウントアップを開始し、その後は停止せずにカウントアップを継続する。カウント値が予め決められたエクスパイア値に達すると、次のカウント値は0になり、再度カウントアップが開始される。このように、一実施形態においてリセット部20は、複数の生成部(生成部6a,6bなど)のそれぞれが備える、カウンタ(カウンタ61a,61bなど)のカウンタ値を同時に初期化することができる。また、リセット部20は、複数の生成部(生成部6a,6bなど)のそれぞれが備える、初期化されたカウンタ(カウンタ61a,61bなど)の動作を同時に開始させることができる。
0029
分周回路は、カウンタ61aの値に基づいて基準クロック1を分周する。そして、分周回路は、分周により生成されたクロックaを、対応する機能ブロック7aに供給する。ここで、分周回路は、制御部31による制御に従ってクロックaを生成することができる。
0030
図1の例においては、デコーダ62aが、カウンタ61aのカウント値に従って、基準クロック1のパルスを間引くタイミングを示すタイミング信号を生成する。ここで、デコーダ62aは、制御部31から入力される、クロック周波数の設定値51aにさらに従って、この信号を生成することができる。
0031
FF63aは、デコーダ62aで生成されたタイミング信号をラッチし、GCB64aに入力する。
0032
GCB64aは、入力されたタイミング信号に従って、基準クロック1のパルスを間引くことで、基準クロック1より周波数の低いクロックaを生成する。例えばGCB64aは、基準クロック1のパルスを2回に1回間引くことで、周波数を1/2にすることができ、パルスを4回に3回間引くことで、周波数を1/4にすることができる。また、GCB64aは、基準クロック1のパルスを間引かずに、基準クロック1と同じ周波数を有するクロックaを出力することもできる。さらに、GCB64aは、制御部31から入力されるクロックのオン又はオフを示す設定値50aに従って、クロックaのオン又はオフを行うこともできる。
0033
以下では、情報処理装置100内の同期グループについて説明する。図1の例において、機能ブロック7aと機能ブロック7bとの間ではデータの受け渡し(不図示)が行われるため、クロックの位相が揃うように機能ブロック7a及び機能ブロック7bへとクロックが供給される。このように、位相が揃ったクロックが供給される機能ブロック7a及び機能ブロック7bは、本明細書においては同期グループ11としてグルーピングされる。同様に、CPU8、制御部9、及び機能ブロック7eは同期グループ12としてグルーピングされ、機能ブロック7fは単体で同期グループ13としてグルーピングされる。すなわち、制御部31〜33は、対応する同期グループ11〜13に所属するクロックの制御を行う。このように、同じ同期グループにグルーピングされる機能ブロックのことを、本明細書においては同期関係にある機能ブロックと呼ぶ。一実施形態において、同期関係にある複数の機能ブロックは、複数の機能ブロックの間で同期データ転送が行われるように構成されている。なお、異なる同期グループの間では、クロックに同期したデータの受け渡しは行われないため、供給されるクロックの位相が揃う必要はない。
0034
また、図1に示すように、クロックを生成する生成部から機能ブロックまでの配線の長さなどに起因するクロック遅延が存在しても、クロックの位相が揃うように、生成部と機能ブロックとの間にクロックツリー40a〜40fを形成することができる。例えば、クロックツリー40a,40bは、生成部6a,6bと機能ブロック7a,7bと間の、クロックa,bを運ぶ配線上に形成されている。具体的には、同じ同期グループ11に所属している、クロックaのクロックツリー40aと、クロックbのクロックツリー40bと、のクロック遅延時間が等しくなるように、配線が行われ、必要に応じてCTSバッファが挿入される。同期グループ12に所属するクロックc〜eに対するクロックツリー40c〜40eについても同様である。
0035
ところで、制御部9はクロックcのクロックツリー40cの下流に位置する。一方で、制御部31,32は、クロックツリー40cの上流に位置し、基準クロック1を用いて動作している。このため、制御部9と、制御部31,32との間には大きなクロックスキューが存在し、クロックcと基準クロック1の位相が揃うことは保証されない。また、制御部33は、クロックcとはクロック系統が異なる基準クロック2を用いて動作している。このため、クロックcと基準クロック2の位相が揃うことも保証されない。
0036
[実施形態1]
本発明の実施形態1に係る情報処理装置は、同期関係にある複数の機能ブロックと、複数の生成部と、を備える。複数の生成部は、それぞれが、カウンタと、カウンタの値に基づいて基準クロックを分周する分周回路と、を有しており、複数の機能ブロックのうち対応する機能ブロックにクロックを供給する。このような構成によれば、複数の機能部へ供給されるクロックのクロック遅延のばらつきを抑えることが容易になる。以下、このような構成について説明する。
0037
実施形態1に係る構成は、図1に示す情報処理装置100を用いて、例えば複数の機能ブロック7a,7b及び複数の生成部6a,6bを用いて実現することができる。すなわち、複数の生成部6a,6bは、同じ同期グループ11に所属しており、同期関係にある。また、複数の生成部6a,6bのそれぞれは、カウンタ61a,61bと、カウンタの値に基づいて基準クロックを分周する分周回路(デコーダ62a,62b、FF63a,63b、及びGCB64a,64b)と、を有している。そして、複数の生成部6a,6bのそれぞれは、複数の機能ブロックのうち対応する機能ブロック7a,7bにクロックを供給している。一方で、図1に示す構成の全てを用いることは必須ではない。
0038
本実施形態においては、機能ブロック7a,7bが同期関係にあるにもかかわらず、機能ブロック7a,7bのそれぞれには互いに異なる生成部6a,6bにより生成されたクロックが供給される。このような構成を採用することにより、生成部6a,6bを、対応する機能ブロック7a,7bの近傍に配置することが可能になる。例えば、複数の生成部6a,6bのうち1つを、他の機能ブロックよりも、対応する機能ブロックに近くなるように配置することができる。また、複数の生成部6a,6bのうち1つから対応する機能ブロック7a,7bへとクロックを供給するクロックラインを、クロックMUX4からこの生成部6a,6bへと基準クロック1を供給するクロックラインより短くすることができる。このため、生成部6a,6bから機能ブロック7a,7bへのクロック配線を短くすることができる。さらに、基準クロック1を供給するために、機能ブロック7a,7bの近傍にまで延びる共通のクロックラインを用いることもできる。このような構成により、クロック遅延のばらつきの影響を軽減することが可能になる。そして、本実施形態の構成を採用し、クロック配線を短くすることにより、機能ブロック7a,7bの間のタイミング収束が容易になる。
0039
このような構成における、本実施形態に係る情報処理装置を実現するLSIの物理レイアウト例を図2に示す。図2に示すように、同期グループ11に所属する各処理部が物理的にまとまるように配置することができる。すなわち、図2において、同期グループ11に所属する機能ブロック7a及び機能ブロック7bは、同期グループ11のエリア内に隣接して配置されている。また、機能ブロック7aにクロックを供給する生成部6aは機能ブロック7aの近傍に配置され、同様に生成部6bは機能ブロック7bの近傍に配置されている。
0040
一実施形態において、クロックMUX4から複数の生成部6a,6bのそれぞれへと基準クロック1を供給するクロックラインは、複数の生成部6a,6bの近傍において互いに分岐している。例えば図2において、基準クロック1は、生成部6a及び生成部6bの近傍にある分岐点81において分岐した配線を通ってそれぞれに分配される。具体例として、分岐点81から生成部6aまで、及び分岐点81から生成部6bまでのクロックラインは、それぞれ、基準クロック1を供給する処理部(例えばクロックMUX4)から分岐点81までのクロックラインより短くてもよい。また、図2のように、機能ブロック7a,7bとは異なるさらなる機能ブロック7eに向けて基準クロック1を供給するクロックラインが、分岐点84において、複数の生成部6a,6bへと基準クロック1を供給するクロックラインと分岐していてもよい。そして、クロックMUX4から複数の生成部6a,6bのそれぞれへと基準クロック1を供給するクロックラインは、分岐点84よりも下流にある分岐点81において互いに分岐していてもよい。このような構成によれば、機能ブロック7a,7bに供給されるクロックのための分岐後のクロック配線が短くなるため、機能ブロック7a,7bの間のタイミング収束が容易になる。
0041
一実施形態において、制御部31が、同期グループ11に所属する機能ブロック7a,7bに供給されるクロックの制御を行ってもよい。具体的には、制御部31は、複数の生成部6a,6bによるクロック生成を制御することができる。ここで、1つの制御部31が、複数の生成部6a,6bを制御してもよい。このような構成によれば、機能ブロック7a,7bに供給されるクロックa,bの制御を同期させることが容易になる。この場合、制御部31を、同期グループ11のエリア内に、すなわち機能ブロック7a及び機能ブロック7bの近傍に配置することができる。制御部31が、複数の生成部6a,6bと共通の基準クロック1を用いて動作してもよい。例えば、基準クロック1は、制御部31の近傍において分岐した配線、例えば上述の分岐点81において分岐した配線を通って、制御部31に分配されてもよい。このような構成によれば、制御部31と、生成部6a,6bとの間のタイミング収束性が向上する。
0042
同様に、同期グループ12に所属するCPU8、制御部9、及び機能ブロック7e、これらにクロックを供給する生成部6c〜6e、並びに生成部6c〜6eを制御する制御部32を、物理的にまとまるように配置してもよい。同期グループ13についても同様である。
0043
以下、実施形態1において図1に示す情報処理装置100を用いる場合の、生成部6a,6bの動作について、図3,4を参照して説明する。図3は、生成部6a及び生成部6bが行うクロック周波数の切り替え動作を示すタイミングチャートである。
0044
以下の例において、複数の生成部6a,6bのそれぞれが有するカウンタ61a,61bは、同期して動作するように構成されている。例えば、カウンタ61a,61bのカウンタ値は、同じタイミングでインクリメントすることができる。図1の例においては、複数の生成部6a,6bのそれぞれが有するカウンタ61a,61bのビット幅は同じである。ここで、カウンタのビット幅とは、カウンタ値のビット数のことを指し、カウント値の最大値に対応してもよい。また、複数の生成部6a,6bのそれぞれが有するカウンタ61a,61bは、同時にラップアラウンドしてもよい(すなわち、同時にカウント値が0に戻ってもよい)。さらに、複数の生成部6a,6bのそれぞれが有するカウンタ61a,61bは、同じカウンタ値を示すように構成されていてもよい。このような構成によれば、機能ブロック7a,7bに供給されるクロックa,bを同期させることが容易になる。ここでは、生成部6a,6bが有するカウンタ61a,61bは、ともに4bitカウンタであり、最大で15までカウント可能とする。
0045
また、以下の例においては、機能ブロック7a,7bが有する回路の特性などの理由により、クロックaの周波数とクロックbの周波数との間には、常に以下の周波数関係を守らなければならない制約があるとする。
クロックaの周波数 > クロックbの周波数
0046
時刻T0において情報処理装置100はリセット状態にあり、カウンタ61a,61bは停止しており、そのカウンタ値はともに0である。クロックのオン又はオフを表す設定値50a,50bは、クロックを出力する側に設定されている。また、FF63a,63bの初期値はLowであり、出力クロックは停止している。
0047
さらに、内部設定値(以下、単に内部設定値と呼ぶ)の初期値は、ともに2’b00である。ここで、内部設定値とは制御部31が出力したクロック周波数設定値51a,51bを、デコーダ62a,62bがラッチすることにより得られた値である。デコーダ62a,62bは、カウンタ61a,61bのカウント値が15から0にラップアラウンドするタイミングで、設定値51a,51bをラッチする。生成部6aの内部設定値は、2’b00が1分周を、2’b01が2分周を、2’b10が4分周を、2’b11が8分周を、それぞれ示すものとする。一方で生成部6bの内部設定値は、2’b00が2分周を、2’b01が4分周を、2’b10が8分周を、2’b11が16分周を、それぞれ示すものとする。したがって、初期状態において、クロックaは基準クロック1の1分周に、クロックbは基準クロック1の2分周に、それぞれ設定されている。なお、クロック周波数設定値は2bitの信号に限られない。また、内部設定値と分周比との関係も、上記の例には限られず、任意に定義することができる。
0048
時刻T1においてリセットが解除される。時刻T2において、カウンタ61a,61bは同時にカウントアップを開始する。また、FF63a,63bはデコーダ62a,62bの出力値をそれぞれラッチし、Highになる。
0049
時刻T3において、FF63a,63bの出力がHighであるため、GCB64a,64bはクロックの出力を開始する。また、デコーダ62aは、1分周を示す内部設定値に従って、常にHighを出力する。一方で、デコーダ62bは、2分周を示す内部設定値に従って、2サイクルに1サイクルHigh期間を形成するように、High及びLowを繰り返す信号を出力する。この結果、2サイクルに1サイクルのパルスが間引かれ、2分周が実現される。時刻T4〜T8でも同様の動作が行われる。
0050
一方で時刻T7において、制御部31に入力される設定値51a,51bが、ともに2’b00から2’b01に切り替えられる。この切り替えは、例えば、CPU8が制御部9のレジスタを書き換え、制御部9がレジスタ内の設定値を制御部31に転送することにより行われてもよい。もっとも、実施形態1における設定値の切り替え方法は特に限定されない。
0051
カウンタ61a,61bのカウント値は、時刻T8においてともに最大カウント値である15にカウントアップし、時刻T9においてともに0にラップアラウンドする。内部設定値は、カウンタ61a,61bがラップアラウンドすると同時に、2’b00から2’b01に切り替わる。このため、生成部6aが出力するクロック周波数は1分周から2分周に、生成部6bが出力するクロック周波数は2分周から4分周に、それぞれ変更される。すなわち、時刻T9から、デコーダ62aは2サイクルに1サイクルの周期でHigh及びLowを繰り返す信号を出力し、時刻T10でFF63aが信号をラッチした後、時刻T11から生成部6aは2分周クロックを出力開始する。また、時刻T9から、デコーダ62bは4サイクル中1サイクルのみHighになる信号を出力し、時刻T11から生成部6bは4分周クロックを出力開始する。
0052
このような構成によれば、生成部6a,生成部6bのカウンタ61a,61bが同期して同じように動作するため、クロック周波数の切り替えタイミングを同時にすることができる。したがって、上記のようなクロック周波数の周波数関係の制約を守りながらクロック制御を行うことができる。もっとも、同期関係にある複数の機能ブロックにクロックを供給する際に、同じタイミングでクロック周波数を変更することは必須ではない。
0053
図4は、生成部6aが行うクロック周波数のオンオフ動作を示すタイミングチャートである。なお、生成部6b、及びその他の生成部6c〜6fも、生成部6aと同様に動作することができる。
0054
時刻T0において情報処理装置100はリセットが解除された状態にある。ここで、生成部6aの内部設定値は2’b00を示しており、すなわち生成部6aは基準クロック1を1分周したクロックを出力するように設定されている。しかしながら、制御部31が出力する、クロックのオン又はオフを表す設定値50aはLowを示しているため、生成部6aからの出力クロックであるクロックaは停止している。ここで、設定値50aはHighアクティブ信号であり、すなわちHighはクロックオンを、Lowはクロックオフを、それぞれ表す。
0055
時刻T3において制御部31は、設定値50aをHighに遷移させる。時刻T4において、設定値50aがHighであるため、GCB64aはクロックaの出力を開始する。時刻T10において制御部31は、設定値50aをLowに遷移させる。したがって、時刻T11においてクロックaは停止する。なお、設定値50aの切り替えは、設定値51aと同様に行うことができる。なお、クロックaが停止している間も、カウンタ61aはカウント動作を継続することができる。
0056
なお、上記の例のように、生成部6aが生成するクロックの最大分周比と、生成部6bが生成するクロックの最大分周比とは異なっていてもよい。一方、生成部6aの最大分周比は8分周であり、8分周クロックを出力するには、3bit幅のカウンタ(最大カウント値7)を用いれば十分である。そして、生成部6bの最大分周比は16分周であり、16分周クロックを出力するために4bit幅カウンタ(最大カウント値15)が用いられる。上記の例においては、生成部6aのカウンタ61aのカウンタ幅は、生成部6bのカウンタ61bと同じカウンタ幅となるように、必要な3bit幅よりも大きい4bit幅である。このように、カウンタ61a,61bのカウンタ幅を揃え、同時にラップアラウンドさせるという簡単な構成により、カウンタ61a,61bの挙動を常に同じにすることができる。このため、上記の例によれば、容易にクロック周波数の切り替えを同時に行うことができる。もっとも、別の例において、生成部6aの制御と生成部6bの制御とを独立に行ってもよい。
0057
上記の例においては、クロックを分周するための分周方法として、パルスを間引く歯抜け方式が用いられたが、使用可能な分周方式は特定の方式に限定されない。例えば、分周方法として、生成部有するダウンカウンタの各bitのQ出力を分周クロックとして用いる方式(分周方式とも呼ばれる)を採用してもよい。この場合、例えばカウンタの1桁目のbitのQ出力は周波数が1/2になり、2桁目のbitのQ出力は周波数が1/4になる。この場合、生成部が有するデコーダの代わりに、ダウンカウンタの各bitの分周クロックから1つを選択するMUXを用いることができる。分周方式を用いる場合、生成部により生成されたクロックのパルス幅は、分周比に比例して大きくなる。例えば、2分周ではパルス幅が基準クロックの2倍になり、4分周ではパルス幅が基準クロックの4倍になる。実施形態1の構成によれば、様々な分周方法を適用可能である。
0058
上記の例では、基準クロックがリセット中とリセット解除後で同じ一定の周波数である場合について説明した。一方で、一実施形態において、リセット部20は、クロックMUX4が低速クロックを基準クロック1として供給している間に、複数の生成部6a,6bのそれぞれが備える初期化されたカウンタ61a,61bの動作を開始させることができる。そして、リセット部20は、カウンタ61a,61bの動作の開始後に、高速クロックを基準クロック1としてとして供給することができる。このように、リセット解除後に、クロックMUX4を用いて基準クロック1を低速クロックから高速クロックに切り替えてもよい。このような構成によれば、カウンタ61a,61bの動作を同期させるためのタイミング設計がより容易になる。基準クロックを高速クロックに切り替えた場合、1サイクルの期間は低速クロックの場合よりも短くなるが、各信号の挙動に変わりはない。
0059
上記の例では、リセット解除後にカウンタが常にカウントアップを続け、カウンタ61a,61bのカウント値は同期し続けることを前提としていた。しかしながら、宇宙線のような外的要因のために、カウンタ値の同期が崩れる可能性がある。このような事象に対照するために、一実施形態に係る情報処理装置は、複数の生成部6a,6bのそれぞれが備えるカウンタ間(61a,61b)の同期のずれを検出するための構成をさらに有していてもよい。この場合、同期のずれを検出したことに応じて、リセット部20は複数の生成部6a,6bのそれぞれが備えるカウンタ61a,61bのカウンタ値を初期化することができる。
0060
このような構成の一例として、カウンタ61a,61bは、カウンタ値が1ずつインクリメントしているかどうかを確認するチェック回路を有していてもよい。チェック回路が異常、すなわちカウンタ値が1ずつインクリメントしていないことを検出した場合、カウンタ値は異常をリセット部20に通知することができる。この場合、リセット部20は、通知を発したカウンタと同じ同期グループに対するクロックを生成する全ての生成部に対して、供給する基準クロックをオシレータ1が発振した低速クロックに切り替え、及びリセットを行うことができる。このような構成によれば、同じ同期グループに対するクロックを生成する全ての生成部のカウンタを初期化し、同時に0からカウントアップさせることができ、すなわちカウンタ値を同期させることができる。
0061
[実施形態2]
本発明の実施形態2に係る情報処理装置は、複数の生成部と、第1の制御部と、第2の制御部と、を備える。複数の生成部は、それぞれ、複数の機能ブロックのうち対応する機能ブロックに供給するクロックを生成する。第1の制御部は、複数の生成部のうちの第1のグループによるクロック生成を制御し、第1のグループと共通のクロックを用いて動作する。また、第2の制御部は、複数の機能ブロックのうち1つであり、第1のグループによるクロック生成の制御情報を第1の制御部に非同期転送する。このような構成によれば、第2の制御部が生成部を制御するためのタイミング設計が容易になる。以下、このような構成について説明する。
0062
実施形態2に係る構成は、図1に示す情報処理装置100を用いて、例えば複数の生成部6a,6b、制御部31、及び制御部9を用いて実現することができる。すなわち、複数の生成部6a,6bは、それぞれ、複数の機能ブロックのうち対応する機能ブロック7a,7bに供給するクロックを生成する。制御部31は、複数の生成部のうちの第1のグループを構成する生成部6a,6bによるクロック生成を制御し、第1の生成部を構成する生成部6a,6bと共通のクロックを用いて動作する。この第1のグループを構成する生成部6a,6bは、生成したクロックを、互いに同期関係にある複数の機能ブロック7a,7bに供給してもよい。制御部9は、複数の機能ブロックのうち1つであり、第1のグループを構成する生成部6a,6bによるクロック生成の制御情報を制御部31に非同期転送する。図1の例において、制御部32によってクロック生成を制御される生成部の第2のグループ(生成部6c〜6e)は、生成したクロックを制御部9に供給している。ここで、第2のグループは、第1のグループと共通の基準クロック1を用いて動作している。一方で、図1に示す構成の全てを用いることは必須ではない。また、実施形態2に係る情報処理装置は、実施形態1に係る情報処理装置の構成を有していてもよい一方で、実施形態1とは別の情報処理装置であってもよい。
0063
本実施形態において、制御部9は、非同期データ転送用のインターフェースであるI/F34を介して、制御部31と接続されている。制御部9は、I/F34を介して、制御部31へと、クロック生成の制御情報を非同期転送することができる。この制御情報は、生成部が生成するクロック周波数情報と、生成部が生成するクロックのオン又はオフを制御する情報と、の少なくとも一方を含んでいてもよい。例えば、制御部9は、生成部6a,6bによるクロック生成の制御情報として、生成部6a,6bに対するクロック周波数の設定値51a,bと、クロックのオン又はオフを示す設定値50a,bとを転送することができる。
0064
同様に、一実施形態に係る情報処理装置は、複数の生成部のうちの1以上の生成部で構成される第2のグループ(生成部6c〜6e)によるクロック生成を制御し、第2のグループと共通のクロックを用いて動作する、制御部32を有していてもよい。制御部9は、第2のグループによるクロック生成の制御情報を制御部32に非同期転送することができる。図1の例において制御部9は、非同期データ転送用のインターフェースであるI/F35,36を介して、制御部32,33と接続されている。この場合、制御部9は、生成部6c〜6eに対する設定値を制御部32に、生成部6fに対する設定値を制御部33に、それぞれ非同期転送することができる。
0065
図5を参照して、非同期転送を行うための、制御部9及び制御部31の構成の一例について説明する。図5は、制御部9及び制御部31の構成の一例を示すブロック図である。制御部9は、転送制御部91及びレジスタ92を有している。レジスタ92は、同期グループ11についてのクロック生成の制御情報を格納する。制御部9は、同様に、同期グループ12,13についてのクロック生成の制御情報を格納するレジスタ93,94を有していてもよい。レジスタ92〜94は、レジスタアクセスのためのアドレス空間がそれぞれ異なっており、排他的に読み書き可能である。このレジスタ92〜94内の制御情報は、複数の機能ブロックのうち1つにより書き換え可能である。例えば、CPU8は、レジスタバスを介して、レジスタ92〜94に対する読み書きを行ってもよい。
0066
以下では、レジスタ92に対する書き込みが行われた場合について説明するが、レジスタ93,94に書き込みが行われた場合も同様の動作を行うことができる。また、以下の例においては、制御部9と制御部31とがバスで接続され、制御部9がバスを介して制御情報を制御部31に転送する場合について説明する。
0067
図5に示す例において制御部9と制御部31との間のレジスタアクセスは、アドレス信号とデータ信号とを用いるバスプロトコルを用いて行われる。また、図5において、制御部9と制御部31とは、さらに、制御情報の転送を制御する信号線(req,ack)で接続されている。
0068
転送制御部91は、レジスタへの書き込みが発生すると、レジスタアクセスのアドレスに基づいて、どの同期グループについてのレジスタに書き込みが発生したかを判断し、対応する制御部に対する非同期データ転送を開始する。まず、制御部9は、制御情報の取得を要求する信号を制御部31に送る。図5の例において、転送制御部91は、例えば同期グループ11用のレジスタ92に書き込みが発生したと判断した場合、制御部31とのI/F34へのリクエスト信号(req)をアサートする。一方、転送制御部91は、I/F34へのデータ信号(data)として、レジスタ92のレジスタ値を出力する。
0069
制御部31は、メタスタビリティ対策のための、FF313及びFF314を備える2段FFシンクロナイザ312を用いて、入力されたreqを同期化する。また、制御部31は、同期化されたreqを示すFF314のQ出力と、FF315のQ出力の反転との論理積317であるパルスを生成する。そして、生成されたパルスに従って、レジスタ311はI/F34のdataをラッチする。その後、制御部31は、制御情報を取得したことを通知する信号を制御部9に送る。図5の例において、制御部31は、FF314のQ出力を、FF315及びFF316を介して、I/F34への応答信号(ack)としてループバックする。
0070
制御部9は、2段FFシンクロナイザ95を用いて、I/F34から入力されたackを同期化する。同期化後のackは転送制御部91に入力される。転送制御部91は、同期化後のackのアサートに従ってreqをデアサートする。最終的にackもデアサートされ、こうして非同期データ転送が完了する。非同期データ転送の詳細動作例については、図7のタイミングチャートを参照して後述する。
0071
制御部31は、レジスタ311によりラッチされたデータ信号を、生成部6a,6bに対する設定値(例えばクロック周波数の設定値50a,50b及びクロックのオン又はオフを示す設定値51a,51b)として、生成部6a,6bに出力する。ここで説明する例において、制御部31は、第1のグループに含まれる1以上の生成部6a,6bのそれぞれに対し、制御情報(例えば上記の設定値50a,50b,51a,51b)を同期転送する。また、制御部31は、第1のグループに含まれる1以上の生成部6a,7bのそれぞれに対し、制御情報を同じタイミングで出力することができる。
0072
制御部32,33も、制御部31と同様の非同期データ転送のための構成を持つことができ、レジスタ93,94のレジスタ値をラッチすることができる。このように、転送制御部91が全てのI/F34〜36の制御を集中して担ってもよい。
0073
図7のタイミングチャートを参照して、クロックaの周波数の設定値の受け渡しについて説明する。なお、クロックbの周波数の設定値も同様に転送することができる。以下の説明において、制御部9はクロックcに同期して動作し、クロックcは基準クロック1の2分周である。基準クロック1に対してクロックcはCTS下流に位置し、時刻T0の基準クロック1に従って生成されたパルスは、CTSのクロック遅延により、制御部9に到達した際に時刻T2’にまで遅延している。このクロック遅延差のために、クロックcと基準クロック1の位相の同期を保証することは容易ではない。
0074
時刻T0において、クロックaの周波数の設定値は2’b00(1分周)である。この設定値は、I/F34を介してdataとして制御部31に入力されたものである。時刻T’4において、制御部9のレジスタ92への書き込みにより、レジスタ92が保持するクロックaの周波数の設定値が2’b00から2’b01(2分周)に変更される。同時に転送制御部91は、I/F34のreqをアサートする。ここで、req及びackはHighアクティブ信号であり、アサートはHighを意味するものとする。
0075
時刻T4’においてアサートされたreqは、時刻T5において制御部31のFF313でラッチされる。しかしながら、送信クロックであるクロックcと受信クロックである基準クロック1の位相は同期していないかもしれない。このため、時刻T5においてメタスタビリティが発生するかもしれない。しかしながら、この例においては、2段FFシンクロナイザ312が用いられるため、時刻T5で発生したメタスタビリティは時刻T6で収束し、FF313のQ出力はHighになる。時刻T7で、このHighがFF313からFF314に伝搬する。すると、FF315のQ出力の反転とFF314のQ出力との論理積317がHighになる。時刻T8において論理積317がHighであるため、MUX318は1番にアサインされているdataを選択し、このためdataがレジスタ311にラッチされる。
0076
時刻T8においてレジスタ311にラッチされたdataに従うクロック周波数の設定値51aは、データ遅延のために時刻T8’において生成部6aに到達する。この設定値51aは、最短で、基準クロック1が立ち上がる時刻T9において、デコーダ62aによってラッチされることができる。このタイミングパスは、基準クロック1の1サイクルでデータを受け渡すパスであるものとして、タイミング設計を行うことができる。
0077
時刻T9において、制御部31はI/F34のackをアサートする。ackのアサートを受信した転送制御部91は、時刻T12’においてreqをデアサートする。時刻T13においては、時刻T5と同様にメタスタビリティが発生するかもしれないが、時刻T14においてメタスタビリティは収束し、FF313のQ出力はLowになる。以後、時刻T17にかけてackにLowが伝搬し、非同期データ転送が完了する。
0078
このように上記の例においては、CTS下流にある制御部9から、CTS上流の基準クロック1で動作する制御部31へとクロック生成の制御情報(例えばクロック周波数の設定値及びクロックのオン又はオフの設定値)を非同期データ転送することができる。このため、CTS下流にある制御部9からCTS上流にある制御部31へのタイミングパスを分断することができる。一実施形態において、第1のグループに含まれる1以上の生成部6a,6b及び制御部31は、制御部9よりもクロックツリーの上流のクロック(クロックツリーの対象外のクロックを含む)を用いて動作する。このように、制御部9の動作クロックと、生成部6a,6bの動作クロックとが同期していなくても、本実施形態においては、制御部9から生成部6a,6bへとクロック生成の制御情報を転送することが容易になる。すなわち、本実施形態においては、共通のクロックを用いて動作する制御部31と生成部6a,6bとの間で、設定値を同期転送できればよいため、タイミング設計が容易となる。
0079
特に、実施形態1で説明したように、制御部31を第1のグループ(生成部6a,6b)の近傍に配置することにより、制御部31から生成部6a,6bへのデータ遅延を低減することができる。例えば、制御部31を、他の生成部6c〜6fのいずれよりも、生成部6a,6bに近くなるように配置することができる。このような構成によれば、基準クロック1の1サイクルで制御部31から生成部6a,6bへとクロック生成の制御情報を受け渡すように、タイミング設計を行うことが容易となる。
0080
なお、制御部9はどの同期グループに含まれていてもよい。例えば、制御部9が同期グループ11に含まれる機能ブロックの1つであってもよい。この場合、生成部の第1のグループ(生成部6a,6b)は、生成したクロックを、制御部9に供給することができる。また、制御部9が同期グループ13に含まれる機能ブロックの1つであってもよい。この場合、制御部33によってクロック生成を制御される、生成部の第3のグループ(生成部6f)は、生成したクロックを制御部9に供給することができ、ここで、第3のグループは第1のグループとは異なる基準クロック2を用いて動作している。このように制御部31と制御部9とが異なる基準クロックを用いて動作している場合であっても、タイミングパスを分断することにより、制御情報を受け渡すためのタイミング設計が容易になる。
0081
また、実施形態1で説明したように、生成部6a,6bが生成するクロック周波数に周波数関係の制約が存在する場合に、周波数関係の不整合が起こらないように、生成部6a,6bが生成するクロック周波数を同時に変更する必要があるかもしれない。このように、クロック周波数を同時に変更するためにも、本実施形態の構成は有効である。例えば、一実施形態においては、一度のレジスタ書き込みにより、クロックaとクロックbの双方についての周波数の設定値が変更される。このような構成を実現できるレジスタフィールドの例について、図6を参照して説明する。
0082
図6は、レジスタ92を表す。レジスタ92の読み書きは4byte単位で実行するものとする。すなわち、図6において、0bit目〜31bit目の読み書きは同時に可能である。sel aは、0bit目〜1bit目にアサインされている、クロックaの周波数の設定値である。また、sel bは、2bit目〜3bit目にアサインされている、クロックbの周波数の設定値である。4bit目〜31bit目のReservedは未使用領域である。
0083
このような実施形態において、クロックa及びクロックbの周波数を変更する場合、sel aとsel bの書き換えを同時に行う。この場合、レジスタ92がI/F34を介して出力するdataによって示される、クロックa及びクロックbの周波数の設定値は、同時に変化する。したがって、レジスタ311が格納しているデータ信号にも、クロックa及びクロックbの周波数の設定値の変更が同時に反映される。このため、レジスタ311が出力するクロック周波数の設定値51a,51bも同時に変更される。このように、クロックa及びクロックbの周波数を同時に変更することができる。設定値に応じてクロック周波数を変更するための構成は特に限定されないが、例えば、実施形態1と同様の構成を採用することにより、設定値51a,51bを同時に変更することで、クロックa及びクロックbの周波数を同時に変更することができる。
0084
実施形態2においては、主にクロックの周波数の設定値を変更する場合について説明したが、同様にクロックのオン又はオフの設定値を変更することもできる。
0085
本実施形態では、CPU8がレジスタバスを介して制御部9のレジスタを書き換え、制御部9から制御部31に対してクロック生成の制御情報を非同期転送した。一方で、CPU8が、直接、制御部31に対してクロック生成の制御情報を非同期転送してもよい。上記のとおり、制御部31は同期グループ毎に設けることができる。例えば、CPU8は、非同期バス転送が可能なレジスタバスを介して制御部31に設けられたレジスタを書き換えることにより、クロック生成の制御情報を制御部31に非同期転送することができる。
[その他の実施形態]
0086
図1では、機能ブロックと1対1の関係となるように生成部6a〜6fが設けられたが、本発明はこのような構成には限定されない。すなわち、1つの生成部が、2以上の機能ブロックに対してクロックを供給してもよい。この場合、機能ブロックのレイアウトに鑑み、生成部と機能ブロックと間のチップトップ階層上のクロック配線の遅延ばらつきがタイミング設計に影響を与えないように、複数の機能ブロックに供給するクロックを生成する生成部を設けることができる。
0087
発明は上記実施形態に制限されるものではなく、発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、発明の範囲を公にするために請求項を添付する。
0088
6a,6b:生成部、7a,7b:機能ブロック、8:CPU、9:制御部、31:制御部、61a,61b:カウンタ