(57)【要約】【課題】クロック周波数を切り替える際のモジュール間のデータ転送の同期はずれが生じない半導体集積回路装置を提供する。【解決手段】外部から供給されるクロックから第１及び第２の内部クロックを生成するとともに、該第１及び第２の内部クロックの周波数の関係に応じた第１及び第２のクロック同期信号を生成するクロック制御部と、前記第１のクロックと前記第１及び第２のクロック同期信号を受取る第１のモジュールであって、該モジュール内部で用いられるクロック及び前記第２のクロックのタイミングで動作する第２のモジュールを制御するための制御信号を生成する内部回路を有する第１のモジュールとを有する半導体集積回路装置である。前記第１の内部クロックの周波数にかかわらず、前記第１及び第２のモジュール間のデータ転送は同期して行われる。【選択図】図１
2008217834.tif 000002
【特許請求の範囲】
【請求項１】
外部から供給されるクロックから第１及び第２の内部クロックを生成するとともに、該第１及び第２の内部クロックの周波数の関係に応じた第１及び第２のクロック同期信号を生成するクロック制御部と、
前記第１のクロックと前記第１及び第２のクロック同期信号を受取る第１のモジュールであって、該モジュール内部で用いられるクロック及び前記第２のクロックのタイミングで動作する第２のモジュールを制御するための制御信号を生成する内部回路を有する第１のモジュールとを有し、
前記第１の内部クロックの周波数にかかわらず、前記第１及び第２のモジュール間のデータ転送は同期して行われることを特徴とする半導体集積回路装置。
【請求項２】
前記内部回路は、前記第１の内部クロックと前記第１のクロック同期信号とから前記モジュール内部の動作クロックを生成することを特徴とする請求項２記載の半導体集積回路装置。
【請求項３】
前記内部回路は、前記第２の内部クロックから前記第２のモジュールに供給するためのクロックを生成する位相調整回路を有することを特徴とする請求項１記載の半導体集積回路装置。
【請求項４】
第１の回路に対し周波数可変の第１のクロック及び第１のクロック同期信号を供給し、
前記第１の回路とデータ転送を行う第２の回路に対し周波数可変又は一定の第２のクロック及び第２のクロック同期信号を供給し、
前記第２のクロック周波数が前記第１のクロック周波数よりも高い場合には、第１の回路に前記第２のクロック同期信号を供給して前記第１の回路と前記第２の回路との間のデータ転送の同期を取る半導体集積回路装置。
【請求項５】
前記半導体集積回路装置は、基準クロックから生成する前記第1及び第２のクロック及び前記第1及び第２のクロック同期信号を供給するクロック制御部を有し、
前記第１及び第２の回路は受取ったクロック及びクロック同期信号からそれぞれの動作周波数の回路内クロックを生成する請求項４記載の半導体集積回路装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は半導体集積回路装置に関し、より詳細には、クロック及びクロック同期信号を制御することにより内部モジュールの動作周波数を動的又は静的に制御し、低消費電力化を図ることが可能なプロセッサなどの半導体集積回路装置に関する。
【背景技術】
【０００２】
クロックに同期して動作するプロセッサの低消費電力化の手法として、クロックを段階的に分周するというクロックギアの手法が従来から用いられてきた。これは、プロセッサ内の一番速いクロックに対応したマスク用の同期信号を供給、あるいは分周することにより実現されてきた。近年、プロセッサの高速化・大規模化に伴い、高速処理を必要としない期間のクロック周波数を低く抑えるという制御は、低消費電力化を実現する上で欠かせない手法となってきている。
【０００３】
しかし、プロセッサ自体が高速化してくる中で、制御部自体のクロック周波数を非常に低くしようとした際に問題となる場合が生じてきた。異なる周波数のクロックに同期して動作するモジュール間のデータ転送の同期を取ることは基本的な要求である。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記基本的な要求の前提条件として、データ転送などを制御するモジュールの方が制御対象のモジュールより高速に、又は同じ速度で動作している必要があった。
【０００５】
例えば、１３３ＭＨｚで動作するＳＤＲＡＭ（Ｓｙｎｃｈｒｏｎｏｕｓ  Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）を外部周辺装置に持つプロセッサが搭載するＳＤＲＡＭコントローラは、１３３ＭＨｚのｎ倍（ｎ＝１、２、３…）の動作速度でなければ外部ＳＤＲＡＭの制御をすることは難しい。また、外部ＳＤＲＡＭへのクロックラインには、通常、位相調整用にＰＬＬ（Ｐｈａｓｅ−Ｌｏｃｋｅｄ  Ｌｏｏｐ）やＤＬＬ（Ｄｅｌａｙ  Ｌｏｃｋｅｄ  Ｌｏｏｐ）を搭載している場合が多く、外部ＳＤＲＡＭへのクロックは常に一定の動作周波数を保っている必要がある。このような場合において、プロセッサ内部のＳＤＲＡＭコントローラの低消費電力化を図るために、ＳＤＲＡＭ関連のクロックを３３ＭＨｚなどの低い周波数に切り替えたり、逆に３３ＭＨｚから１３３ＭＨｚに戻したりすると、ＳＤＲＡＭクロック用のＰＬＬのロックがはずれてしまい、クロック周波数切り替えの度にＰＬＬがロックするまでの期間、待ち続けなければならないという問題点があった。かと言って、ＳＤＲＡＭのクロックを例えば３３ＭＨｚという低い動作周波数に保つとシステム全体のパフォーマンスが低下してしまう。
【０００６】
このように、従来の技術では、制御側のモジュールのクロック周波数が、被制御側のモジュールよりも早いか同じ周波数でなければならないという制約があり、クロック制御によるプロセッサの低消費電力化の制限の一つとなっていた。
【０００７】
また、回路の高速化、大規模化に伴い、プロセッサを設計する際に、いかにモジュール間のクロックキューを小さくできるかも、プロセッサの高速化にとって問題となってきた。具体的には、レイアウトをする際に各モジュールの配置に合わせて、クロックバッファの段数を調整したり、クロック配線長などを調整することによってモジュール間のクロックスキューを合わせていくことになるが、このクロックスキューに関するタイミング調整にも少なからず工夫が必要になってきた。
【０００８】
以上、従来技術の課題を要約すると次の通りである。
【０００９】
第１に、クロック周波数の切り替えにより低消費電力化を図る半導体集積回路装置において、制御側のモジュールのクロック周波数を被制御側のクロック周波数よりも低くすると、データ転送などの同期が取れなくなってしまう。
【００１０】
第２に、回路規模の増大に伴い、半導体集積回路装置内部のモジュール間のクロックスキューの調整も難しくなってきた。
【００１１】
従って、本発明は上記従来技術の問題点を解決し、クロック周波数を切り替える際のモジュール間のデータ転送の同期はずれが生じない半導体集積回路装置を提供することを目的とする。
【００１２】
また、本発明はモジュール間のクロックスキューを抑制できる半導体集積回路装置を提供することも目的とする。
【課題を解決するための手段】
【００１３】
一実施形態による半導体集積回路装置は、外部から供給されるクロックから第１及び第２の内部クロックを生成するとともに、該第１及び第２の内部クロックの周波数の関係に応じた第１及び第２のクロック同期信号を生成するクロック制御部と、前記第１のクロックと前記第１及び第２のクロック同期信号を受取る第１のモジュールであって、該モジュール内部で用いられるクロック及び前記第２のクロックのタイミングで動作する第２のモジュールを制御するための制御信号を生成する内部回路を有する第１のモジュールとを有し、前記第１の内部クロックの周波数にかかわらず、前記第１及び第２のモジュール間のデータ転送は同期して行われることを特徴とする。
【発明の効果】
【００１４】
本発明によれば、クロック周波数を変化させてもモジュール間でデータ転送を常に同期させて行うことができ、またモジュール間でのくロックスキューを抑制することができる。
【発明を実施するための最良の形態】
【００１５】
図１は、本発明の第１の実施の形態による半導体集積回路装置の内部構成を示すブロック図である。図示する半導体集積回路装置１００は、外部周辺装置であるＳＤＲＡＭ２００を制御するメモリコントローラを内蔵するプロセッサである。プロセッサ１００は１つのチップで構成された１つのモジュールであり、１つ又は複数のチップで構成されるＳＤＲＡＭ２００も１つのモジュールである。また、以下に説明するように、プロセッサ１００は内部に複数のモジュールを持っている。プロセッサ１００は１つのチップで構成されていることが好ましいが、１つの基板に複数のチップを搭載したものであっても良い。
【００１６】
プロセッサ１００は、外部接続端子１９−２４を有する。プロセッサ１００は、外部接続端子１９を介してクロック制御信号を受取り、外部接続端子２０を介して外部入力クロックを受取る。プロセッサ１００は、外部接続端子２１を介してＳＤＲＡＭ２００から読み出しデータを受取り、またＳＤＲＡＭ２００に書き込みデータを出力する。プロセッサ１００は外部接続端子２３を介して、ＳＤＲＡＭ２００にクロックＤＣＬＫを供給する。このクロックＤＣＬＫは、外部接続端子２４を介して内部にフィードバックされる。また、プロセッサ１００は外部接続端子２２を介して、クロックイネーブル信号（クロックマスク信号とも称する）ＤＣＫＥをＳＤＲＡＭ２００に出力する。クロックイネーブル信号ＤＣＫＥがＯＦＦ（無効）の時、ＳＤＲＡＭ２００の内部では、クロック信号ＤＣＬＫがマスクされる。
【００１７】
プロセッサ１００はその内部の動作周波数がいかなる場合であっても、一定の周波数のクロックＤＣＬＫを出力する。例えば、プロセッサ１００の内部回路の動作周波数が１３３ＭＨｚ（又はその整数倍）から３３ＭＨｚに変更になった場合でも、クロックＤＣＬＫの周波数をＳＤＲＡＭ２００の動作周波数である１３３ＭＨｚに保持する。他方、プロセッサ１００はクロックイネーブル信号ＤＣＫＥのＯＮ／ＯＦＦ状態を変更後の周波数（上記の例では３３ＭＨｚ）に応じて切り替える。これにより、ＳＤＲＡＭ２００は１３３ＭＨｚのクロックＤＣＬＫを受けているが、ＳＤＲＡＭ２００の内部ではクロックＤＣＬＫは３３ＭＨｚ相当のクロックイネーブル信号ＤＣＫＥでマスクされる。このため、ＳＤＲＡＭ２００は実質的に３３ＭＨｚの周波数で動作することになる。よって、プロセッサ１００とＳＤＲＡＭ２００とは３３ＭＨｚのクロックで動作し、これらの間でのデータ転送の同期を取ることができる。
【００１８】
以上説明した図１のプロセッサ１００は、第２の回路２００にクロックＤＣＬＫを供給する回路を含む第１の回路（後述するＰＬＬ回路１６を含む回路）を有し、前記クロックは前記第１の回路の動作周波数に関わらず一定であり、前記第１の回路は前記クロックと共に動作周波数に応じた制御信号ＤＣＫＥを前記第２の回路２００に出力し、前記第２の回路２００の動作周波数は前記クロックＤＣＬＫと前記制御信号ＤＣＬＫとに応じて決まる半導体集積回路装置である。
【００１９】
次に、プロセッサ１００の内部構成について説明する。
【００２０】
プロセッサ１００は、クロック制御レジスタ１０、クロック制御部１１、ＳＤＲＡＭコントローラ１２、コアバス１３、内部周辺バスブリッジ１４、ＰＬＬ回路１５、ＰＬＬ回路１６、１／２分周器１７、内部周辺バス１８、及び内部モジュールＡ−Ｈを有する。
【００２１】
クロック制御部１１は、外部接続端子１９を介してクロック制御信号を受取り、またＰＬＬ回路１５からＰＬＬ出力信号を受取り、内部クロックＣＫ＿Ａ、ＣＫ＿Ｃ及びＣＫ＿Ｐを生成すると共に、クロック同期信号ＳＹＮＣ＿１からＳＹＮＣ＿６を出力する。内部クロックＣＫ＿Ａは、プロセッサ１００内部の基準となる基準クロックである。内部クロックＣＫ＿Ｃは、ＳＤＲＡＭ２００に供給するクロックを作成するために用いられるクロックである。
【００２２】
外部からのクロック制御信号とは別に、クロック制御レジスタ１０の内容をソフトウェア処理で書き換えることでも、クロック制御部１１が出力する内部クロックやクロック同期信号の周波数を制御することもできる。このソフトウェア処理は、例えばＣＰＵコアにあるＣＰＵで行なわれる。
【００２３】
ＰＬＬ回路１５は、外部接続端子２０を介して供給される外部入力クロックと、クロック制御部１１が出力する内部クロック（内部クロックＣＫ＿Ｃと同じクロック）とを受取り、外部入力クロックに同期した内部クロックをクロック制御部１１に出力する。
【００２４】
クロック制御部１１が出力する内部クロックＣＫ＿Ａは、周波数可変クロックである。内部クロックＣＫ＿Ａの周波数は、外部接続端子１９に与えられるクロック制御信号又はクロック制御レジスタ１０の内容で指示される。クロック制御信号は、クロック制御部１１の内部に設けられた周波数設定用のレジスタの設定値を変える。この設定値に応じて、クロック制御部１１の内部に設けられた発振器は、対応する周波数の内部クロックＣＫ＿Ａを出力する。内部クロックＣＫ＿Ａは、内部モジュールＡ、Ｂ、Ｃ、Ｄ及びＳＤＲＡＭコントローラ１２（モジュールの一つ）並びに内部周辺バスブリッジ１４に供給されている。
【００２５】
クロック制御部１１が出力する内部クロックＣＫ＿Ｃは、周波数可変又は一定クロックであって、内部クロックＣＫ＿Ａが供給される内部モジュールや内部回路以外のモジュールや内部回路にのみならず、外部回路に供給されるものである。図示する構成では、内部クロックＣＫ＿Ｃは、ＰＬＬ回路１６に出力されている。ＰＬＬ回路１６は位相調整回路として機能し、内部クロックＣＫ＿ＣとＳＤＲＡＭ２００に供給されるクロックＤＣＬＫとの位相を比較して、クロックＤＣＬＫの位相を内部クロックＣＫ＿Ｃの位相に一致させる。ＰＬＬ回路１６の出力は１／２に分周され、外部接続端子２３を介してクロックＤＣＬＫとなる。クロックＤＣＬＫが例えば１３３ＭＨｚの場合には、内部クロックＣＫ＿Ｃ及びＰＬＬ回路１６の出力信号は２６６ＭＨｚである。
【００２６】
前述したように、クロックＤＣＬＫはプロセッサ１００の内部動作周波数が変化しても一定（例えば１３３ＭＨｚ）に保持される。換言すれば、内部クロックＣＫ＿Ｃは２６６ＭＨｚで固定されている。もし、消費電力を削減するためにプロセッサ１００の内部動作周波数を変化させた場合、換言すれば内部クロックＣＫ＿Ａの周波数を変化させた場合に、内部クロックＣＫ＿Ｃの周波数も変化させてしまったのでは、ＰＬＬ回路１６はロックされた状態から外れてしまい、再びロックされるまでに長い時間を要する。再びロックされるまでは、データ転送を行うことはできない。このため、第１の実施の形態では、クロックＤＣＬＫの周波数は一定に保持される一方で、クロックイネーブル信号ＤＣＫＥの周波数を内部クロックＣＫ＿Ａの周波数に応じて変化させている。これにより、内部クロックＣＫ＿Ａの周波数が例えば３３ＭＨｚに変更になっても、換言すれば、プロセッサ１００の内部回路が１３３ＭＨｚのクロックが供給されているＳＤＲＡＭ２００の動作周波数よりも低い周波数で動作することになっても、実際にはＳＤＲＡＭ２００の内部はクロックイネーブル信号ＤＣＫＥの作用により３３ＭＨｚで動作する。よって、プロセッサ１００とＳＤＲＡＭ２００のデータ転送の同期を取ることができる。
【００２７】
ＳＤＲＡＭコントローラ１２は、内部クロック（ＣＬＫ）生成部２５、クロックイネーブル信号（ＤＣＫＥ）生成部２６、及びデータ制御部２７を具備する。ＳＤＲＡＭコントローラ１２は、内部クロックＣＫ＿Ａと２つのクロック同期信号ＳＹＮＣ＿１とＳＹＮＣ＿２が供給されている。２つのクロック同期信号ＳＹＮＣ＿１とＳＹＮＣ＿２は、内部クロックＣＫ＿ＡとＣＫ＿Ｃの周波数の大小関係に基づきイネーブル状態（ＯＮ）又はディスエーブル状態（ＯＦＦ）に設定される。
【００２８】
図３（Ａ）は、内部クロックＣＫ＿ＡとＣＫ＿Ｃを示すタイミング図である。内部クロックＣＫ＿Ａは可変であるのに対し、内部クロックＣＫ＿Ｃは一定（固定である）。内部クロックＣＫ＿Ａが内部クロックＣＫ＿Ｃよりも高速の場合、低速の場合及び内部クロックＣＫ＿Ｃの周波数に一致する場合（中速）がある。図３（Ｂ）に示すように、内部クロックＣＫ＿Ａの周波数が内部クロックＣＫ＿Ｃの周波数よりも高い場合（高速）、クロック同期信号ＳＹＮＣ＿１がイネーブル状態となり、クロック同期信号ＳＹＮＣ＿２はディスエーブル状態（ハイレベル（Ｈ）に固定）となる。イネーブル状態となったクロック同期信号ＳＹＮＣ＿１は、内部クロックＣＫ＿Ａと同じ周波数である。
【００２９】
また、図３（Ｃ）に示すように、内部クロックＣＫ＿ＡとＣＫ＿Ｃが同じ周波数の場合、クロック同期信号ＳＹＮＣ＿１とＳＹＮＣ＿２のいずれもがディスエーブル状態に設定される（Ｈ固定）。
【００３０】
更に、図３（Ｄ）に示すように、内部クロックＣＫ＿Ａの周波数が内部クロックＣＫ＿Ｃの周波数よりも低い場合（高速）、クロック同期信号ＳＹＮＣ＿２がイネーブル状態となり、クロック同期信号ＳＹＮＣ＿１はディスエーブル状態となる。イネーブル状態となったクロック同期信号ＳＹＮＣ＿２は、内部クロックＣＫ＿Ｃと同じ周波数である。図３（Ｄ）の状態は、プロセッサ１００での消費電力を削減する必要がある時に設定される。
【００３１】
図２は、ＣＬＫ生成部２５とＤＣＫＥ生成部２６の一構成例を示す図である。ＣＬＫ生成部２５は、内部クロックＣＫ＿Ａとクロック同期信号ＳＹＮＣ＿１から、ＳＤＲＡＭコントローラ１２内で用いられる内部クロックＣＬＫを生成する。この内部クロックＣＬＫは、データ制御部２７に供給されるとともに、ＤＣＫＥ生成部２６にも供給される。ＤＣＫＥ生成部２６はデータラッチ型（Ｄ型）フリップフロップ（ＦＦ）２６ａとＡＮＤゲート２６ｂとを有する。ＣＬＫ生成部２５は、内部クロックＣＫ＿Ａとクロック同期信号ＳＹＮＣ＿Ａとから内部クロックＣＬＫを生成し、フリップフロップ２６ａのクロック端子に出力する。フリップフロップ２６ａは、ＳＤＲＡＭコントローラ１２内部で生成されるＤＣＫＥ制御信号ＣＮＴＬをデータ入力端子を介して受け取り、出力信号をＡＮＤゲート２６ｂに出力する。ＤＣＫＥ制御信号ＣＮＴＬは、図３に示す動作（Ａ）〜（Ｄ）において、Ｈ固定である。ＡＮＤゲート２６ｂは、フリップフロップ２６ａの出力信号とクロック同期信号ＳＹＮＣ＿２とのＡＮＤ論理を取り、その出力信号をクロックイネーブル信号ＤＣＫＥとして出力する。
【００３２】
図３（Ｂ）に示すように、内部クロックＣＫ＿Ａの周波数が内部クロックＣＫ＿Ｃの周波数よりも高い場合、ＣＬＫ生成部２５はクロック同期信号ＳＹＮＣ＿１の立下りに同期して、内部クロックＣＫ＿Ａと同じ幅のパルス（内部クロックＣＬＫ）を生成する。図３（Ｂ）では、内部クロックＣＬＫは内部クロックＣＫ＿Ａの半分の周波数である。これに対し、内部クロックＣＫ＿Ａの周波数が内部クロックＣＫ＿Ｃの周波数と一致する場合（図３（Ｃ））、又は低い場合（図３（Ｄ））、ＣＬＫ２５は内部クロックＣＫ＿Ａをそのまま内部クロックＣＬＫとして出力する。
【００３３】
ＤＣＫＥ生成部２６は、データラッチ型（Ｄ型）フリップフロップ（ＦＦ）２６ａとＡＮＤゲート２６ｂとを有する。フリップフロップ２６ａのデータ入力端子には、クロック制御部１１で生成されたクロックイネーブル信号ＤＣＫＥが供給され、クロック入力端子にはＣＬＫ生成部２５が生成した内部クロックＣＬＫが供給される。フリップフロップ２６ａは、内部クロックＣＬＫのエッジに同期して、クロックイネーブル信号ＤＣＫＥをラッチする。フリップフロップ２６ａのデータ出力端子は、ＡＮＤゲート２６ｂの一方の入力端子に接続されている。ＡＮＤゲート２６ｂの他方の入力端子は、クロック同期信号ＳＹＮＣ＿２が供給される。フリップフロップ２６ａは、クロック制御部１１などから供給されるプリセット信号ＰＲで出力０の状態に設定される。
【００３４】
内部クロックＣＫ＿Ａの周波数が内部クロックＣＫ＿Ｃの周波数よりも高い場合（図３（Ｂ））、又は一致する場合（図３（Ｃ））、クロックイネーブル信号ＤＣＫＥはハイレベル（Ｈ）に固定され（イネーブル状態）、またクロック同期信号ＳＹＮＣ＿２もハイレベルに固定される。よって、ＡＮＤゲート２６ｂの出力であるクロックイネーブル信号ＤＣＫＥはハイレベル（オン状態、又はイネーブル状態）に固定される。これに対し、内部クロックＣＫ＿Ａの周波数が内部クロックＣＫ＿Ｃの周波数よりも低い場合（図３（Ｄ））、クロック同期信号ＳＹＮＣ＿２がそのままＡＮＤゲートを通ってクロックイネーブル信号ＤＣＫＥとなる。このようにして生成されたクロックイネーブル信号ＤＣＫＥは、内部クロックＣＫ＿Ａ及びクロック同期信号ＳＹＮＣ＿２と同じ周期である。
【００３５】
以上のようにして生成されたクロックＤＣＬＫ及びクロックイネーブル信号ＤＣＫＥはＳＤＲＡＭ２００に供給される。内部クロックＣＫ＿Ａの周波数が内部クロックＣＫ＿Ｃの周波数よりも高い場合には、図３（Ｂ）に示すように、ＳＤＲＡＭ２００内部のクロックはクロックＤＣＬＫ、換言すれば内部クロックＣＫ＿Ａと同じ周波数である。同様に、内部クロックＣＫ＿Ａの周波数が内部クロックＣＫ＿Ｃの周波数に等しい場合には、図３（Ｃ）に示すように、ＳＤＲＡＭ２００内部のクロックはクロックＤＣＬＫ、換言すれば内部クロックＣＫ＿Ａと同じ周波数である。これに対し、内部クロックＣＫ＿Ａの周波数が内部クロックＣＫ＿Ｃの周波数よりも低い場合には、図３（Ｄ）に示すように、ＳＤＲＡＭ２００に供給されるクロックＤＣＬＫは内部クロックＣＫ＿Ｃと同一周波数に保持されているが、クロックイネーブル信号ＤＣＫＥの作用により、ＳＤＲＡＭ２００内部のクロックはクロックＣＫ＿Ａの周波数に等しい。よって、データ制御部２７とＳＤＲＡＭ２００は同一周波数で動作することになり、これらの間でデータ転送を同期して行うことができる。内部クロックＣＫ＿Ａの周波数を低くしても、ＰＬＬ回路１６はロックされたままであり、内部クロックＣＫ＿Ａの周波数を高くしてクロックイネーブル信号ＤＣＫＥをＯＦＦにしても、ＳＤＲＡＭ２００とプロセッサ１００は同期状態に保持されたままである。
【００３６】
以上説明したように、内部クロックＣＫ＿Ａに対し、内部クロックＣＫ＿Ｃとの周波数の大小関係に応じた２つのクロック同期信号ＳＹＮＣ＿１とＳＹＮＣ＿２（ＳＤＲＡＭ２００に対してはＤＣＫＥ）を用いてモジュール内部のクロックと他のモジュールへの制御信号を生成することとしたため、どのような内部クロックＣＫ＿Ａの周波数であっても、他のモジュールとのデータ転送を同期して行うことができるとともに、モジュール間のクロックスキューを最小限に抑えることができる。
【００３７】
以上の通り、プロセッサ１００は、外部から供給されるクロックから第１及び第２の内部クロックＣＫ＿Ａ、ＣＫ＿Ｂを生成するとともに、該第１及び第２の内部クロックの周波数の関係に応じた第１及び第２のクロック同期信号ＳＹＮＣ１、ＳＹＮＣ２を生成するクロック制御部１１と、前記第１のクロックと前記第１及び第２のクロック同期信号を受取る第１のモジュール１２であって、該モジュール内部で用いられるクロックＣＬＫ及び前記第２のクロックのタイミングで動作する第２のモジュール２００を制御するための制御信号ＤＣＫＥを生成する内部回路を有する第１のモジュール１２とを有し、前記第１の内部クロックの周波数にかかわらず、前記第１及び第２のモジュール間のデータ転送は同期して行われる半導体集積回路装置である。
【００３８】
また、プロセッサ１００を次の通り特定することもできる。すなわち、プロセッサ１００は、第１の回路１２に対し周波数可変の第１のクロックＣＬ＿Ａ及び第１のクロック同期信号ＳＹＮＣ＿１を供給し、前記第１の回路とデータ転送を行う第２の回路２００に対し周波数可変又は一定の第２のクロックＤＣＬＫ及び第２のクロック同期信号ＤＣＫＥ（ＳＹＮＣ＿２）を供給し、前記第２のクロック周波数が前記第１のクロック周波数よりも高い場合には、第１の回路に前記第２のクロック同期信号ＳＹＮＣ＿２を供給して前記第１の回路と前記第２の回路との間のデータ転送の同期を取る半導体集積回路装置である。
【００３９】
なお、図２の構成では、内部クロックＣＫ＿ＡはＳＤＲＡＭコントローラ１２以外にも、モジュールＡ（図１の場合はＣＰＵコア）やモジュールＢなどの他のモジュールにも供給されており、また各モジュール毎にそれぞれのクロック同期信号ＳＹＮＣ３−ＳＹＮＣ６が供給されている。クロック同期信号ＳＹＮＣ１−ＳＹＮＣ６のタイミングは、外部接続端子１９を介してクロック制御信号をクロック制御部１１に供給することで、又はクロック制御レジスタ１０の内容を書き換えることで調整可能である。
【００４０】
図４は、本発明の第２の実施の形態によるプロセッサ１００Ａを示す図である。図中、図２に示す構成要素と同一のものには同一の参照番号を付してある。図４に示すプロセッサ１００Ａは、図２及び図３に示すＤＣＫＥ生成部２６に代えて、図５に示すＤＣＫＥ生成部２６Ａを用いた点で第１の実施の形態と相違する。ＤＣＫＥ生成部２６Ａは、内部クロックＣＫ＿Ａ及びクロック同期信号ＳＹＮＣ＿１とＳＹＮＣ＿２に加え、内部クロックＣＫ＿Ｃを受ける。
【００４１】
図５に示すように、ＤＣＫＥ生成部２６Ａは、図３に示すフリップフロップ２６の構成に加え、ラッチ型フリップフロップ２６ｃを有する。フリップフロップ２６ｃのデータ入力端子にはクロック同期信号ＳＹＮＣ＿２が与えられ、クロック入力端子には内部クロックＣＫ＿Ｃが与えられる。フリップフロップ２６ｃのデータ出力端子は、ＡＮＤゲート２６ｂの入力端子に接続されている。内部クロックＣＫ＿Ｃに同期してクロック同期信号ＳＹＮＣ＿２をラッチするため、内部クロックＣＫ＿Ｃから生成されるクロックＤＣＬＫに対し、クロックイネーブル信号ＤＣＫＥのタイミングは正確に一致する。換言すれば、クロックイネーブル信号ＤＣＫＥのエッジはクロックＤＣＬＫのエッジに一致する。
【００４２】
図６は、第２の実施の形態の動作を示すタイミング図である。図６（Ｄ）のみ、図３（Ｄ）と相違する。図６（Ｄ）と図３（Ｄ）とは、内部クロックＣＫ＿Ａに対するクロック同期信号ＳＹＮＣ＿２のタイミングが若干相違する。なお、図６（Ａ）〜（Ｄ）において、フリップフロップ２６ａの出力はＨ固定である。
【００４３】
以上、本発明の２つの実施の形態を説明した。上記説明では、プロセッサ１００や１００Ａとその外部に接続されたＳＤＲＡＭ２００との間のデータ転送に関するものであった。しかしながら、本発明はプロセッサ１００や１００Ａの内部モジュール間でデータ転送を行う場合も含むものである。例えば、ＳＤＲＡＭ相当のモジュールがプロセッサ１００や１００Ａの内部に設けられ、データ制御部２７に接続されているような構成でも、第１や第２の実施の形態と同様にしてデータ転送を常に同期して行うことができる。
【００４４】
また、第１及び第２の実施の形態はプロセッサとこれにより制御されるＳＤＲＡＭを含むシステムであったが、本発明は半導体集積回路間でデータ転送を同期して行うすべての形態を含むものである。
【００４５】
更に、ＰＬＬ回路に代えてＤＬＬ回路等の他の位相調整用の回路を用いることもできる。
【００４６】
最後に、上述した特徴の一部を整理してまとめると次の通りである。
（付記１）
第２の回路にクロックを供給する回路を含む第１の回路を有し、
前記クロックは前記第１の回路の動作周波数に関わらず一定であり、
前記第１の回路は前記クロックと共に動作周波数に応じた制御信号を前記第２の回路に出力し、
前記第２の回路の動作周波数は前記クロックと前記制御信号とに応じて決まることを特徴とする半導体集積回路装置。
【００４７】
第２の回路には第１の回路の動作周波数に関わらず一定のクロックが供給されるとともに、その動作周波数はクロックと、このクロックと共に動作周波数に応じた制御信号とに応じて決まるので、電力消費を削減するために第１の回路を動作周波数を下げても、同期が外れることなくデータ転送を行うことができる。
（付記２）
前記制御信号は前記クロックをマスクする信号であることを特徴とする付記１記載の半導体集積回路装置。
（付記３）
前記第１の回路の動作周波数が前記クロックの周波数よりも低い場合、前記制御信号は前記クロックを部分的にマスクすることで、前記第２の回路の動作周波数は前記第１の回路の動作周波数に一致することを特徴とする付記１記載の半導体集積回路装置。
（付記４）
前記第２の回路はメモリを含み、前記第１の回路は該メモリを制御するコントローラを含むことを特徴とする付記１記載の半導体集積回路装置。
（付記５）
前記第１の回路は外部から供給される外部入力クロックを用いて前記クロックを生成することを特徴とする付記１記載の半導体集積回路装置。
（付記６）
前記第１の回路と前記第２の回路は、別々のチップ内に形成されていることを特徴とする付記１記載の半導体集積回路装置。
（付記７）
前記第１の回路と前記第２の回路は、同一のチップ内に形成されていることを特徴とする付記１記載の半導体集積回路装置。
（付記８）
外部から供給されるクロックから第１及び第２の内部クロックを生成するとともに、該第１及び第２の内部クロックの周波数の関係に応じた第１及び第２のクロック同期信号を生成するクロック制御部と、
前記第１のクロックと前記第１及び第２のクロック同期信号を受取る第１のモジュールであって、該モジュール内部で用いられるクロック及び前記第２のクロックのタイミングで動作する第２のモジュールを制御するための制御信号を生成する内部回路を有する第１のモジュールとを有し、
前記第１の内部クロックの周波数にかかわらず、前記第１及び第２のモジュール間のデータ転送は同期して行われることを特徴とする半導体集積回路装置。
（付記９）
前記内部回路は、前記第１の内部クロックと前記第１のクロック同期信号とから前記モジュール内部の動作クロックを生成することを特徴とする付記８記載の半導体集積回路装置。
（付記１０）
前記内部回路は、前記第２の内部クロックから前記第２のモジュールに供給するためのクロックを生成する位相調整回路を有することを特徴とする付記８記載の半導体集積回路装置。
（付記１１）
第１の回路に対し周波数可変の第１のクロック及び第１のクロック同期信号を供給し、
前記第１の回路とデータ転送を行う第２の回路に対し周波数可変又は一定の第２のクロック及び第２のクロック同期信号を供給し、
前記第２のクロック周波数が前記第１のクロック周波数よりも高い場合には、第１の回路に前記第２のクロック同期信号を供給して前記第１の回路と前記第２の回路との間のデータ転送の同期を取る半導体集積回路装置。
（付記１２）
前記半導体集積回路装置は、基準クロックから生成する前記第1及び第２のクロック及び前記第1及び第２のクロック同期信号を供給するクロック制御部を有し、
前記第１及び第２の回路は受取ったクロック及びクロック同期信号からそれぞれの動作周波数の回路内クロックを生成する付記１１記載の半導体集積回路装置。
【図面の簡単な説明】
【００４８】
【図１】本発明の第１の実施の形態を示すブロック図である。
【図２】図１に示すＤＣＫＥ生成部の一構成例を示す回路図である。
【図３】本発明の第１の実施の形態の動作を示すタイミング図である。
【図４】本発明の第２の実施の形態を示すブロック図である。
【図５】図４に示すＤＣＫＥ生成部の一構成例を示す回路図である。
【図６】本発明の第２の実施の形態の動作を示すタイミング図である。
【符号の説明】
【００４９】
１１    クロック制御部
１２    ＳＤＲＡＭコントローラ
１３    コアバス
１４    内部周辺バスブリッジ
１５    ＰＬＬ回路
１６    ＰＬＬ回路
１７    １／２分周器
１８    内部周辺バス
１９−２４    外部接続端子
２５    ＣＬＫ生成部
２６    ＤＣＫＥ生成部
２７    データ制御部
１００    プロセッサ
２００    ＳＤＲＡＭ
【図１】
2008217834.tif 000003
【図２】
2008217834.tif 000004
【図３】
2008217834.tif 000005
【図４】
2008217834.tif 000006
【図５】
2008217834.tif 000007
【図６】
2008217834.tif 000008