IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ キヤノン株式会社の特許一覧

<>
  • 特許-情報処理装置 図1
  • 特許-情報処理装置 図2
  • 特許-情報処理装置 図3
  • 特許-情報処理装置 図4
  • 特許-情報処理装置 図5
  • 特許-情報処理装置 図6
  • 特許-情報処理装置 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-01-11
(45)【発行日】2024-01-19
(54)【発明の名称】情報処理装置
(51)【国際特許分類】
   H03K 5/15 20060101AFI20240112BHJP
   G06F 1/10 20060101ALI20240112BHJP
   G06F 1/06 20060101ALI20240112BHJP
   G06F 13/42 20060101ALI20240112BHJP
【FI】
H03K5/15 P
G06F1/10
G06F1/06
G06F1/10 511
G06F13/42 350C
【請求項の数】 15
(21)【出願番号】P 2019080468
(22)【出願日】2019-04-19
(65)【公開番号】P2020178291
(43)【公開日】2020-10-29
【審査請求日】2022-04-14
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】110003281
【氏名又は名称】弁理士法人大塚国際特許事務所
(72)【発明者】
【氏名】加藤 康宏
(72)【発明者】
【氏名】森下 浩一
(72)【発明者】
【氏名】皆川 拓也
【審査官】石田 昌敏
(56)【参考文献】
【文献】特開2015-015540(JP,A)
【文献】特開2008-124966(JP,A)
【文献】特開平07-121261(JP,A)
【文献】特開2019-024060(JP,A)
【文献】特開2010-282399(JP,A)
【文献】特開2003-256068(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H03K 5/00- 5/26
G06F 1/10
G06F 1/06
G06F 13/42
(57)【特許請求の範囲】
【請求項1】
同期関係にある複数の機能ブロックと、
それぞれが、カウンタと、前記カウンタの値に基づいて基準クロックを分周する分周回路と、を有し、前記基準クロックを用いて生成したクロックを、前記複数の機能ブロックのうち対応する機能ブロックに供給する、複数の生成手段と、
前記複数の生成手段のそれぞれが同じ前記基準クロックから生成するクロックの周波数を制御する制御部と、
を備え、
前記複数の生成手段の数は、前記複数の機能ブロックの数と同じであり、
前記複数の生成手段のうちのそれぞれの生成手段は、物理的に、前記複数の生成手段のうちの他の生成手段と比較して、前記対応する機能ブロックの近くに配置されており、
前記制御部は、前記複数の生成手段それぞれが有するカウンタを同期させることによって、前記複数の生成手段のそれぞれが生成するクロックの周波数を同じタイミングで切り替えることを特徴とする情報処理装置。
【請求項2】
前記複数の生成手段のそれぞれが有する前記カウンタは、共通の前記基準クロックに従ってカウントアップするように構成されていることを特徴とする、請求項1に記載の情報処理装置。
【請求項3】
同期関係にある複数の機能ブロックと、
それぞれが、カウンタと、前記カウンタの値に基づいて基準クロックを分周する分周回路と、を有し、前記基準クロックを用いて生成したクロックを、前記複数の機能ブロックのうち対応する機能ブロックに供給する、複数の生成手段と、
前記複数の生成手段のそれぞれが同じ前記基準クロックから生成するクロックの周波数を制御する制御部と、
を備え、
前記複数の生成手段それぞれが有する前記カウンタのビット幅が同じであり、
前記制御部は、前記複数の生成手段それぞれが有するカウンタを同期させることによって、前記複数の生成手段のそれぞれが生成するクロックの周波数を同じタイミングで切り替えることを特徴とする、情報処理装置。
【請求項4】
前記複数の生成手段のそれぞれが有する前記カウンタが同時にラップアラウンドすることを特徴とする、請求項1から3のいずれか1項に記載の情報処理装置。
【請求項5】
前記複数の生成手段は第1の生成手段と第2の生成手段とを含み、前記第1の生成手段が生成するクロックの最大分周比と、前記第2の生成手段が生成するクロックの最大分周比とは異なることを特徴とする、請求項1から4のいずれか1項に記載の情報処理装置。
【請求項6】
前記複数の生成手段のそれぞれは、共通の前記基準クロックを用いて生成したクロックを、前記対応する機能ブロックに供給することを特徴とする、請求項1から5のいずれか1項に記載の情報処理装置。
【請求項7】
前記複数の生成手段のそれぞれが備える前記カウンタのカウンタ値を同時に初期化するリセット手段をさらに備えることを特徴とする、請求項1から6のいずれか1項に記載の情報処理装置。
【請求項8】
前記リセット手段は、前記複数の生成手段のそれぞれが備える前記初期化された前記カウンタの動作を同時に開始させることを特徴とする、請求項7に記載の情報処理装置。
【請求項9】
同期関係にある複数の機能ブロックと、
それぞれが、カウンタと、前記カウンタの値に基づいて基準クロックを分周する分周回路と、を有し、前記基準クロックを用いて生成したクロックを、前記複数の機能ブロックのうち対応する機能ブロックに供給する、複数の生成手段と、
前記複数の生成手段のそれぞれが備える前記カウンタのカウンタ値を同時に初期化するリセット手段と、
低速クロック、又は前記低速クロックよりも高速な高速クロックを、前記基準クロックとして供給する供給手段と、を備え、
前記リセット手段は、前記供給手段が前記低速クロックを供給している間に、前記複数の生成手段のそれぞれが備える前記初期化された前記カウンタの動作を開始させ、
前記供給手段は、前記カウンタの動作の開始後に、前記高速クロックを前記基準クロックとして供給することを特徴とする、情報処理装置。
【請求項10】
同期関係にある複数の機能ブロックと、
それぞれが、カウンタと、前記カウンタの値に基づいて基準クロックを分周する分周回路と、を有し、前記基準クロックを用いて生成したクロックを、前記複数の機能ブロックのうち対応する機能ブロックに供給する、複数の生成手段と、
前記複数の生成手段のそれぞれが備える前記カウンタのカウンタ値を同時に初期化するリセット手段と、
前記複数の生成手段のそれぞれが備える前記カウンタ間の同期のずれを検出する検出手段と、を備え、
前記検出手段が前記同期のずれを検出したことに応じて、前記リセット手段は前記複数の生成手段のそれぞれが備える前記カウンタのカウンタ値を初期化することを特徴とする、情報処理装置。
【請求項11】
前記情報処理装置は、前記基準クロックを供給する供給手段をさらに備え、
前記供給手段から前記複数の生成手段のそれぞれへと前記基準クロックを供給するクロックラインは、前記供給手段から分岐点までの第1のクロックラインと、前記分岐点から前記複数の生成手段のそれぞれまでの複数の第2のクロックラインとを含み、前記複数の第2のクロックラインのそれぞれは、前記第1のクロックラインよりも短いことを特徴とする、請求項1から10のいずれか1項に記載の情報処理装置。
【請求項12】
前記情報処理装置は、前記基準クロックを供給する供給手段と、前記複数の機能ブロックとは異なるさらなる機能ブロックと、を備え、
前記供給手段から前記さらなる機能ブロックに向けて前記基準クロックを供給するクロックラインは、第1の分岐点において、前記供給手段から前記複数の生成手段へと前記基準クロックを供給するクロックラインと分岐し、
前記供給手段から前記複数の生成手段のそれぞれへと前記基準クロックを供給するクロックラインは、前記第1の分岐点よりも下流において互いに分岐することを特徴とする、請求項1から11のいずれか1項に記載の情報処理装置。
【請求項13】
前記複数の生成手段のうち1つから対応する前記機能ブロックへとクロックを供給するクロックラインは、前記供給手段から前記複数の生成手段のうち前記1つへと前記基準クロックを供給するクロックラインよりも短いことを特徴とする、請求項11又は12に記載の情報処理装置。
【請求項14】
前記複数の生成手段によるクロック生成を制御する制御手段をさらに備えることを特徴とする、請求項1から13のいずれか1項に記載の情報処理装置。
【請求項15】
前記制御手段は、前記複数の生成手段と共通の前記基準クロックを用いて動作することを特徴とする、請求項14に記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は情報処理装置に関し、特に集積回路におけるクロック供給に関する。
【背景技術】
【0002】
一般に、回路内では、クロックに同期したデータの受け渡しが行われる。このような回路を設計する際には、クロックやデータの遅延時間を考慮して、全ての同期パスにおいてタイミング収束するように、タイミング設計がなされる。例えば、フリップフロップ(FF)間でデータの受け渡しを行う場合、正常にデータを受け渡すためには、FFのセットアップ・ホールド時間を満たす必要がある。
【0003】
回路に供給されるクロックはクロック生成器で生成される。代表的な構成では、クロック生成器はチップトップ階層に配置される。クロック生成器は、必要に応じて、クロックを供給する機能ブロックごとに、クロック周波数の変更、及びクロックのオン又はオフを行うことがある。クロック生成器で生成されたクロックは、チップトップ階層上の配線を通って各機能ブロックに供給され、さらに機能ブロック内で各FFへと分配される。クロック源から各機能ブロック又は各FFへとクロックが到達するまでの遅延時間が等しくなるように物理的なクロック配線を行う手法としては、CTS(クロックツリーシンセシス)がある。クロックの遅延時間差(クロックスキュー)を小さくすることで、タイミング設計を容易化することができる。
【0004】
近年、デジタルカメラ及びスマートフォンなどの情報機器の高性能化及び高機能化に伴って、情報処理装置が有する回路(例えばLSIのような集積回路)の大規模化が進んでいる。このため、クロック源から各機能ブロック又はFFまでの距離も長くなり、クロック遅延時間は増大してきている。一方、プロセスの微細化に伴い、同一チップ上の素子又は配線間の遅延ばらつきがクロック遅延時間に与える影響が大きくなってきた。すなわち、異なるルートを通るクロック間では、等長となるように配線されていても、遅延ばらつきの影響でクロックスキューが大きくなってしまう。特に、チップトップ階層の長距離配線で生じる遅延ばらつきは、タイミング設計に大きな影響を与える。一方で、回路で用いられるクロックの高周波数化も進行している。これらの影響により、クロックに同期したデータの受け渡しを回路ブロック間で行うためのタイミング設計が、より困難になっている。
【0005】
特許文献1は、クロック生成器が基準クロックを分周することにより生成したクロックを、分周前の基準クロックに従って動作するFFがラッチするように、チップトップ階層上での配線を行うことで、遅延ばらつきの影響を軽減することを提案している。
【先行技術文献】
【特許文献】
【0006】
【文献】特開2016-152448号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、特許文献1の方法は、パルス幅が基準クロックの倍以上となるように基準クロックからクロックを生成する場合には適用可能であるものの、パルス幅を変えずに基準クロックのパルス数を減らしてクロックを生成する場合には適用できない。
【0008】
本発明は、機能ブロック間でデータの受け渡しを行う構成において、タイミング設計を容易にするための、機能ブロックに対する新しいクロック供給技術を提供することを目的とする。
【課題を解決するための手段】
【0009】
本発明の目的を達成するために、例えば、本発明の情報処理装置は以下の構成を備える。すなわち、
同期関係にある複数の機能ブロックと、
それぞれが、カウンタと、前記カウンタの値に基づいて基準クロックを分周する分周回路と、を有し、前記基準クロックを用いて生成したクロックを、前記複数の機能ブロックのうち対応する機能ブロックに供給する、複数の生成手段と、
前記複数の生成手段のそれぞれが同じ前記基準クロックから生成するクロックの周波数を制御する制御部と、
を備え、
前記複数の生成手段の数は、前記複数の機能ブロックの数と同じであり、
前記複数の生成手段のうちのそれぞれの生成手段は、物理的に、前記複数の生成手段のうちの他の生成手段と比較して、前記対応する機能ブロックの近くに配置されており、
前記制御部は、前記複数の生成手段それぞれが有するカウンタを同期させることによって、前記複数の生成手段のそれぞれが生成するクロックの周波数を同じタイミングで切り替えることを特徴とする情報処理装置。
【発明の効果】
【0010】
機能ブロック間でデータの受け渡しを行う構成において、タイミング設計が容易となるように、機能ブロックに対するクロック供給を行うことができる。
【図面の簡単な説明】
【0011】
図1】一実施形態に係る情報処理装置のシステム構成図。
図2】一実施形態に係る情報処理装置のシステム構成図。
図3】一実施形態におけるクロック周波数の切り替えのタイミングチャート。
図4】一実施形態におけるクロックのオンオフ動作のタイミングチャート。
図5】一実施形態に係る情報処理装置の非同期転送のための構成を示す図。
図6】一実施形態に係るレジスタフィールドの例を示す図。
図7】一実施形態における設定値の転送のタイミングチャート。
【発明を実施するための形態】
【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:カウンタ
図1
図2
図3
図4
図5
図6
図7