(57)【特許請求の範囲】
【請求項１】
半導体装置であって、
複数のバススレーブと、
前記複数のバススレーブにバスを介してアクセスする複数のバスマスタとを備え、
前記半導体装置は、
前記複数のバススレーブおよび前記複数のバスマスタに対しクロックを供給するクロック供給部を含み、
前記複数のバススレーブの少なくともいずれかは、動作周波数に応じたウェイト数を設定可能に構成されており、
前記クロック供給部は、前記ウェイト数が設定されるバススレーブのウェイト数に応じて、前記複数のバスマスタと前記複数のバススレーブとに供給するクロックの位相差を制御するよう構成されている、半導体装置。
【請求項２】
前記クロック供給部は、遅延回路を含み、
前記クロック供給部が前記クロックの位相差を制御することは、前記ウェイト数が設定されるバススレーブのウェイト数に応じて、前記複数のバスマスタと前記複数のバススレーブとの少なくともいずれかに対し、前記遅延回路によりクロックを遅延させて供給することを含む、請求項１に記載の半導体装置。
【請求項３】
前記クロック供給部の前記遅延回路は、遅延量がそれぞれ異なる複数の遅延回路が並列に接続されるように構成されており、
前記クロック供給部が前記クロックの位相差を制御することは、前記ウェイト数に応じていずれかの遅延回路を選択することにより前記クロックを遅延させて前記複数のバスマスタと前記複数のバススレーブとの少なくともいずれかに供給することを含む、請求項２に記載の半導体装置。
【請求項４】
前記クロック供給部の前記遅延回路は、複数の遅延回路が直列に接続されるように構成されており、
前記クロック供給部が前記クロックの位相差を制御することは、前記ウェイト数に応じて、前記直列に接続される複数の遅延回路を通過させた通過数が異なるクロックのいずれかを選択することにより前記クロックを継園させて前記複数のバスマスタと前記複数のバススレーブとの少なくともいずれかに供給することを含む、請求項２に記載の半導体装置。
【請求項５】
前記クロック供給部が前記クロックの位相差を制御することは、前記複数のバスマスタおよび前記複数のバススレーブのうち、前記複数のバススレーブに供給するクロックを、前記ウェイト数に応じて遅延させることを含む、請求項１に記載の半導体装置。
【請求項６】
前記複数のバススレーブは、メモリを含み、
前記クロック供給部は、前記メモリに供給するクロックを、前記メモリに設定される前記ウェイト数に応じて遅延させる、請求項５に記載の半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、バスを介して複数のバスマスタと複数のバススレーブとの間でデータを転送する半導体装置に関し、特に、動作周波数に応じてウェイト数を各装置に設定可能な半導体装置の動作効率を向上させるための技術に関する。
【背景技術】
【０００２】
マイクロコンピュータなどの半導体装置は、複数のバスマスタと複数のバススレーブとをバスに接続し、バスを介してこれら複数のバスマスタとバススレーブとが信号を転送する。バスマスタは、例えばＣＰＵ（Central  Processing  Unit）などのプロセッサである。バススレーブは、例えば内蔵メモリである。ＣＰＵが、バスマスタとして、バススレーブである内蔵メモリに、バスを介してアクセスする。マイクロコンピュータは、これらバスマスタとバススレーブとにそれぞれ独立にクロックを供給する。内蔵メモリなどのバススレーブには、ウェイト数を設定可能に構成され、設定されたウェイト数に従って動作するものもある（非特許文献１等参照）。
【０００３】
例えば、バススレーブの動作可能な最大周波数をＦｍａｘ、バススレーブに設定可能なウェイト数を最大でＷｍａｘとする。バススレーブは、Ｗウェイトで動作する場合の動作周波数を動作周波数Ｆ（Ｗ）とすると、動作周波数Ｆ（Ｗ）＝Ｆｍａｘ  ×  （Ｗ＋１）  ／  （Ｗｍａｘ  ＋  １）で動作することができる。例えば、バススレーブの動作可能な最大周波数をＦｍａｘ＝１８０Ｍｈｚ、設定可能なウェイト数を最大でＷｍａｘ＝５ウェイトとする。この場合、バススレーブは、０ウェイトでは動作周波数Ｆ（０）＝３０Ｍｈｚまでの周波数で動作することができる。同様に、バススレーブは、１ウェイトでは、動作周波数Ｆ（１）＝６０ＭＨｚ、２ウェイトでは、動作周波数Ｆ（２）＝９０ＭＨｚ、３ウェイトでは、動作周波数Ｆ（３）＝１２０ＭＨｚ、４ウェイトでは、動作周波数Ｆ（４）＝１５０ＭＨｚ、５ウェイトでは、動作周波数Ｆ（５）＝１８０ＭＨｚまでの周波数で動作することができる。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】STMicroelectronics社製マイクロコンピュータSTM32F437xx/439xxのData Sheet, Ver2.0(DM00077036)
【発明の概要】
【発明が解決しようとする課題】
【０００５】
マイクロコンピュータなどの半導体装置の開発においては、最大動作周波数を前提としてタイミング設計等を行うことがある。バスマスタとバススレーブとにそれぞれ独立に供給されるクロック間の位相は、最大周波数のときのタイミング設計上の最適な値に固定されることがある。また、バススレーブであるメモリのパスがクリティカルパスとなる場合、マイクロコンピュータの処理は、メモリの動作周波数により律速される。バスマスタとバススレーブとに供給されるクロック間の位相を固定する場合、メモリの出力側のパスは、動作周波数に応じてウェイト数が変わる（ウェイト数の設定に応じて動作周波数が定まる）ため、出力のタイミングは周波数に依存せず一定となる。すなわち、メモリ出力側のデータ転送のタイミングは、動作周波数の設定にかかわらず一定となる。
【０００６】
一方、メモリへのデータの入力タイミングは、動作周波数が小さくなるほどタイミング的な余裕が大きくなる。例えば、メモリ入力側のパスに入力される信号ＣＥ（チップイネーブル信号）、信号ＡＤＤＲ（アドレス信号）は、動作周波数が小さいほど（例えば、マイクロコンピュータの最大動作周波数Ｆ（５）＝１８０ＭＨｚとした場合に、ウェイト数を小さくして、例えば動作周波数をＦ（０）＝３０ＭＨｚ（ゼロウェイト）としてマイクロコンピュータを動作させる場合）、入力タイミングの余裕が大きくなる。したがって、最大動作周波数を前提としてタイミング設計を行った場合、動作周波数の設定を低下させた際のマイクロコンピュータの処理をより高速化しうる。
【０００７】
そのため、複数のバスマスタと複数のバススレーブとの間でバスを介してデータを転送する半導体装置において、ウェイト数の設定に応じて処理効率をいっそう向上させるための技術が必要とされている。
【０００８】
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００９】
一実施形態に従う半導体装置は、複数のバススレーブと、複数のバススレーブにバスを介してアクセスする複数のバスマスタとを備えるものであり、複数のバススレーブおよび複数のバスマスタに対しクロックを供給するクロック供給部を含む。複数のバススレーブの少なくともいずれかは、動作周波数に応じたウェイト数を設定可能に構成されている。クロック供給部は、ウェイト数が設定されるバススレーブのウェイト数に応じて、複数のバスマスタと複数のバススレーブとに供給するクロックの位相差を制御するよう構成されている。
【発明の効果】
【００１０】
一実施の形態に従う半導体装置によると、バスマスタとバススレーブとにそれぞれ供給されるクロックの位相差を固定する場合と比べると、バススレーブのウェイト数に応じてクロックの位相差を制御するため、ウェイト数を小さくした場合に従来よりも高い周波数設定を行うことが可能になり、これにより処理の効率をいっそう向上させることができる。
【図面の簡単な説明】
【００１１】
【図１】実施の形態の半導体装置１０の構成を示すブロック図である。
【図２】遅延調整回路３９の詳細な構成を示す図である。
【図３】ウェイト数の設定にかかわらず、バスマスタに供給するクロックＣＬＫ＿Ｍとバススレーブに供給するクロックＣＬＫ＿Ｓとの位相差が固定である場合の、バスマスタとバススレーブとのデータ転送のタイミングを示す図である。
【図４】遅延調整回路３９がウェイト数の設定に応じてバスマスタとバススレーブとに供給するクロック信号の位相差を制御する場合の動作例を示す図である。
【図５】バスマスタへ供給するクロックとバススレーブへ供給するクロックとをそれぞれ遅延させる場合の遅延調整回路３９の構成を示す図である。
【図６】バススレーブへ供給するクロック信号ＣＬＫ＿Ｓの遅延を固定する場合の遅延調整回路３９の構成を示す図である。
【発明を実施するための形態】
【００１２】
以下、図面を参照しつつ、本発明の実施の形態について説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがって、それらについての詳細な説明は繰り返さない。
【００１３】
＜実施の形態１＞
図面を参照して実施の形態の半導体装置について説明する。
【００１４】
＜半導体装置の構成＞
図１は、実施の形態の半導体装置１０の構成を示すブロック図である。図１に示すように、半導体装置１０は、複数のバスマスタ（例えば、第１のＣＰＵ（Central  Processing  Unit）２１、第２のＣＰＵ２２、ＤＳＰ（Digital  Signal  Processor）２３、ＤＭＡＣ（Direct Memory  Access  controller）２４、およびその他の装置）を含むバスマスタ２０と、複数のバススレーブ（例えば、ＲＯＭ(Read  Only  Memory）３１、ＲＡＭ（Random  Access  Memory）３２、ＴＩＭ（タイミング信号出力回路）３３、ＣＰＧ（Clock  Pulse  Generator）３４、およびその他の装置）を含むバススレーブ３０と、バス４０と、バス制御回路５０とを含む。第１のＣＰＵ２１と第２のＣＰＵ２２とは、半導体装置１０の動作を制御する。
【００１５】
ＣＰＧ３４は、クロック発振器を含み、各バスマスタと各バススレーブとへそれぞれ独立にクロック信号を供給する。例えば、ＣＰＧ３４は、第１のＣＰＵ２１に対してクロック信号ＣＬＫ＿Ｍ１を供給し、第２のＣＰＵ２２に対してクロック信号ＣＬＫ＿Ｍ２を供給し、ＤＳＰ２３に対してクロック信号ＣＬＫ＿Ｍ３を供給し、ＤＭＡＣ２４に対してクロック信号ＣＬＫ＿Ｍ４を供給する。また、ＣＰＧ３４は、ＲＯＭ３１に対してクロック信号ＣＬＫ＿Ｓ１を供給し、ＲＡＭ３２に対してクロック信号ＣＬＫ＿Ｓ２を供給し、ＴＩＭ３３に対してクロック信号ＣＬＫ＿Ｓ３を供給する。ＣＰＧ３４は、各バスマスタと各バススレーブとへ供給するクロック信号の周波数および位相差を調整することができる。ＣＰＧ３４は、Ｗａｉｔ設定保持部３８と、遅延調整回路３９とを含む。Ｗａｉｔ設定保持部３８は、各バススレーブのウェイト数の設定を保持する。遅延調整回路３９は、各バスマスタおよび各バススレーブへ供給するクロック信号を遅延させることで各バスマスタと各バススレーブとへ供給するクロック信号の位相差を調整する。遅延調整回路３９の構成については後述する。ＣＰＧ３４は、各バススレーブのウェイト数の設定を他の装置等から受け付けることとしてもよいし、ユーザによりウェイト数を設定可能であるとしてもよい。ＣＰＧ３４は、Ｗａｉｔ設定保持部３８および遅延調整回路３９を含むことにより、ウェイト数が設定されるバススレーブのウェイト数の設定に応じて、バスマスタとバススレーブとに供給するクロックの位相差を制御する。
【００１６】
バス４０は、バスマスタ２０とバススレーブ３０とが接続され、複数のバスマスタと複数のバススレーブとの間のアドレス転送およびデータ転送を行うためのデータの転送経路として機能する。バス４０は、アドレスバス４１とデータバス４２とを含む。アドレスバス４１は、各バスマスタが各バススレーブにアクセスするためのアドレス信号を転送するためのバスである。データバス４２は、各バスマスタと各バススレーブとでデータを転送するためのバスである。
【００１７】
バス制御回路５０は、バス４０を介した複数のバスマスタと複数のバススレーブとの間のアドレス転送およびデータ転送を制御する。バス制御回路５０は、各バスマスタによるバススレーブへのアクセスが競合した場合に、各バスマスタに設定された優先順位に従って調停する。
【００１８】
図２は、遅延調整回路３９の詳細な構成を示す図である。図２に示すように、遅延調整回路３９は、バスマスタの動作を制御するために遅延調整回路３９において生成されるクロック信号ＣＬＫ＿Ｍを受け付けて各バスマスタへ供給するためのマスタクロック遅延回路７１と、バススレーブのウェイト数の設定に応じてバススレーブの動作を制御するためのクロック信号ＣＬＫ＿Ｓの遅延量を制御するための回路（スレーブクロック遅延回路６１、スレーブクロック遅延回路６２、スレーブクロック遅延回路６３およびマルチプレクサ６０）とを含む。図２の例では、バスマスタ側のクロックであるクロック信号ＣＬＫ＿Ｍの遅延は、遅延調整回路３９がＷａｉｔ設定保持部３８で保持するウェイト数の設定にかかわらず固定量とする。なお、図２では、ＣＰＧ３４が設定可能なウェイト数の範囲が０〜２の３種類の場合の例を示すが、３種類に限られない。
【００１９】
遅延調整回路３９は、複数の遅延回路（スレーブクロック遅延回路６１、スレーブクロック遅延回路６２およびスレーブクロック遅延回路６３）を直列に接続し、ウェイト数の設定に応じて、クロック信号ＣＬＫ＿Ｓが通過した遅延回路の段数を調整する。こうすることで、遅延調整回路３９は、ウェイト数の設定に応じて、バススレーブ側のクロックであるクロック信号ＣＬＫ＿Ｓの遅延量を制御する。図２の例では、ウェイト数の設定が小さいほど（ゼロウェイトに近づくにつれて）、クロック信号ＣＬＫ＿Ｓの遅延量を大きくする。
【００２０】
このように、遅延調整回路３９は、複数の遅延回路を含む。ＣＰＧ３４は、ウェイト数が設定されるバススレーブのウェイト数に応じて、バススレーブに対し、遅延回路によりクロックを遅延させてクロック信号を供給する。こうすることで、遅延調整回路３９は、バスマスタとバススレーブとに供給されるクロックの位相差を制御する。
【００２１】
＜半導体装置の動作＞
次に、図３および図４を参照して、ＣＰＧ３４がウェイト数の設定に応じて、バスマスタへ供給するクロック信号とバススレーブへ供給するクロック信号の位相差を制御する処理を説明する。
【００２２】
＜関連技術の動作＞
まず、本実施形態のＣＰＧ３４と比較するため、関連技術として、バスマスタとバススレーブとへ供給するクロックの位相差を、ウェイト数の設定にかかわらず一定とする場合の動作を説明する。
【００２３】
図３は、ウェイト数の設定にかかわらず、バスマスタに供給するクロックＣＬＫ＿Ｍとバススレーブに供給するクロックＣＬＫ＿Ｓとの位相差が固定である場合の、バスマスタとバススレーブとのデータ転送のタイミングを示す図である。なお、図３の例では、バススレーブがメモリであるとして説明する。
【００２４】
図３の状態（Ａ）は、ウェイト数の設定が０ウェイト（ノーウェイト）である場合の、バスマスタとバススレーブとのデータ転送のタイミングを示す。状態（Ｂ）は、ウェイト数の設定が１ウェイトである場合の例を示す。状態（Ｃ）は、ウェイト数の設定が２ウェイトである場合の例を示す。図３において、ＣＰＧ３４がバスマスタに供給するクロック信号をクロック信号ＣＬＫ＿Ｍとして示す。図３では、メモリであるバススレーブに入力されるチップイネーブル信号を信号ＣＥとして示し、アドレス信号を信号ＡＤＤＲとして示す。メモリから出力されるデータ信号を信号ＤＡＴＡとして示す。ＣＰＧ３４がメモリであるバススレーブに供給するクロック信号をクロック信号ＣＬＫ＿Ｓとして示す。
【００２５】
図３に状態（Ａ）、状態（Ｂ）および状態（Ｃ）として示すように、０ウェイト設定の場合（状態（Ａ））、タイミングｔ３１において、バスマスタからメモリへとアドレス信号がバスを介して入力される。また、１ウェイト設定の場合（状態（Ｂ））、タイミングｔ３２において、バスマスタからメモリへとアドレス信号がバスを介して入力される。また、2ウェイト設定の場合、タイミングｔ３３において、バスマスタからメモリへとアドレス信号がバスを介して入力される。
【００２６】
タイミングｔ３４以降において、メモリは、バスマスタからバスを介して受け付けたアドレス信号（信号ＡＤＤＲ）に応じて、アドレス信号により指定されるアドレスのデータをデータバスに出力する。タイミングｔ３５において、バスマスタは、メモリからデータバスに出力されたデータを受け付ける。
【００２７】
このように、半導体装置１０は、ウェイト数の設定に応じて動作周波数を制御しているため、メモリがアドレス信号の入力を受け付けて、アドレス信号に示されるアドレスのデータをデータバスに出力するタイミングはウェイト数にかかわらず一定（タイミングｔ３５）となる。また、図３に示すように、関連技術において、クロック信号ＣＬＫ＿Ｍとクロック信号ＣＬＫ＿Ｓとの位相差がウェイト数の設定にかかわらず一定であるため、状態（Ｃ）と状態（Ａ）とを比較すると、比較的ウェイト数の設定が小さいほど（ノーウェイトに近づくほど）、メモリへのデータ入力のタイミングに余裕がある。すなわち、０ウェイト設定である場合、メモリへデータを入力するためアドレスバスにアドレス信号を出力する期間は、タイミングｔ３１以降にすることができる。これに対し、２ウェイト設定である場合、アドレスバスにアドレス信号を出力する期間は、タイミングｔ３３以降となり、０ウェイト設定の場合と比べて短くなる。すなわち、ウェイト数の設定が小さくなり、０ウェイトに近づくほど、マイクロコンピュータの処理の性能を向上させられる余地がある。
【００２８】
＜実施の形態１の動作＞
図４は、遅延調整回路３９がウェイト数の設定に応じてバスマスタとバススレーブとに供給するクロック信号の位相差を制御する場合の動作例を示す図である。
【００２９】
図４の状態（Ａ）は、ウェイト数の設定が０ウェイトである場合の、バスマスタとバススレーブとのデータ転送のタイミングを示す。状態（Ｂ）は、ウェイト数の設定が１ウェイトである場合の例を示す。
【００３０】
状態（Ａ）に示すように、ウェイト数の設定が０ウェイトである場合、遅延調整回路３９は、クロック信号ＣＬＫ＿Ｍとクロック信号ＣＬＫ＿Ｓとの位相差が、ウェイト数の設定が１ウェイトである場合と比べて大きくなるよう制御する。すなわち、ウェイト数の設定が１ウェイトの場合、遅延調整回路３９は、クロック信号ＣＬＫ＿Ｍとクロック信号ＣＬＳ＿Ｓとの位相差を、タイミングｔ４１とタイミングｔ４２との差分に相当する期間に調節する。これに対し、ウェイト数の設定が０ウェイトである場合、本実施形態では、遅延調整回路３９は、バススレーブに供給するクロック信号を、ウェイト数の設定が１ウェイトの場合よりも大きく遅延させる。ウェイト数の設定が０ウェイトである場合、遅延調整回路３９は、クロック信号ＣＬＫ＿Ｍとクロック信号ＣＬＫ＿Ｓとの位相差を、タイミングｔ４１とタイミングｔ４３との差分に相当する期間に調節する。このようにクロック信号ＣＬＫ＿Ｍとクロック信号ＣＬＫ＿Ｓとの位相差を調節した分、マイクロコンピュータは、ウェイト数の設定が比較的小さい場合の動作周波数を、いっそう高速化することができる。すなわち、実施の形態１の半導体装置１０は、関連技術と比較して、ウェイト数の設定を減らした場合の周波数上限を引き上げることが可能となる。
【００３１】
例えば、バススレーブの動作可能な最大周波数をＦｍａｘ、バススレーブに設定可能なウェイト数を最大でＷｍａｘとする。バススレーブは、Ｗウェイトで動作する場合の動作周波数を動作周波数Ｆ（Ｗ）とすると、バスマスタとバススレーブとにそれぞれ独立に供給されるクロック信号の位相差を調節しない場合、動作周波数Ｆ（Ｗ）＝Ｆｍａｘ  ×  （Ｗ＋１）  ／  （Ｗｍａｘ  ＋  １）で動作することができる。これに対し、実施の形態１で説明したように、ウェイト数の設定に応じて、バスマスタとバススレーブとにそれぞれ独立に供給されるクロック信号の位相差を調節することにより、ウェイト数の設定が小さくなるにつれて、動作周波数をいっそう向上させることができる。具体的には、実施の形態１の遅延調整回路３９がクロック信号の供給を制御することにより、動作周波数（Ｗ）＝Ｆｍａｘ  ×  （Ｗ＋２）  ／  （Ｗｍａｘ  ＋  ２）を満たす周波数まで動作させることができる。例えば、最大周波数をＦｍａｘ＝１８０Ｍｈｚ、設定可能なウェイト数を最大でＷｍａｘ＝５ウェイトとすると、関連技術では、Ｆ（０）≦３０ＭＨｚであるのに対し、本実施形態によると、Ｆ（０）≦５１ＭＨｚ程度で動作させることができる。また、関連技術では、Ｆ（１）≦６０ＭＨｘであるのに対し、本実施形態によると、Ｆ（１）≦７７ＭＨｚ程度で動作させることができる。また、関連技術では、Ｆ（２）≦９０ＭＨｚであるのに対し、本実施形態によると、Ｆ（２）≦１０２ＭＨｚ程度で動作させることができる。また、関連技術では、Ｆ（３）≦１２０ＭＨｚであるのに対し、本実施形態によると、Ｆ（３）≦１２８ＭＨｚ程度で動作させることができる。また、関連技術では、Ｆ（４）≦１５０ＭＨｚであるのに対し、本実施形態によると、Ｆ（４）≦１５４ＭＨｚ程度で動作させることができる。
【００３２】
＜実施の形態１のまとめ＞
実施の形態１の半導体装置１０は、バスマスタ、バス、バススレーブで構成される。半導体装置１０において、バスマスタに接続されたクロックとバススレーブに接続されたクロックとがそれぞれ独立にクロック供給回路から供給される。半導体装置１０は、バスマスタに供給するクロックと、バススレーブに供給するクロックとの位相差を調整することができる。また、半導体装置１０は、バススレーブへのアクセスのウェイト数を設定可能なシステムである。このようなシステムにおいて、ウェイト数の設定に応じて、バスマスタとバススレーブとへ供給するクロックの位相差を調整することにより、上限周波数を最適化することができる。
【００３３】
＜実施の形態２＞
図５と図６とを参照して、別の実施形態の遅延調整回路３９について説明する。
【００３４】
実施の形態１では、遅延調整回路３９は、バススレーブへ供給するクロックを、ウェイト数の設定に応じて遅延させる構成について説明している。遅延調整回路３９の構成はこれに限らず、例えば実施の形態２では、遅延調整回路３９は、図５に示すように、バスマスタへ供給するクロックと、バススレーブへ供給するクロックとをそれぞれウェイト数の設定に応じて遅延させることとしてもよい。
【００３５】
図５は、バスマスタへ供給するクロックとバススレーブへ供給するクロックとをそれぞれ遅延させる場合の遅延調整回路３９の構成を示す図である。図５に示すように、遅延調整回路３９は、バスマスタへ供給するクロック信号ＣＬＫ＿Ｍを、ウェイト数の設定に応じて切り替えるマルチプレクサ７０を含む。マルチプレクサ７０の各入力には、それぞれ遅延量が異なる遅延回路（マスタクロック遅延回路７５、マスタクロック遅延回路７６およびマスタクロック遅延回路７７）を通過したクロック信号ＣＬＫ＿Ｍが入力される。また、遅延調整回路３９は、バススレーブへ供給するクロック信号ＣＬＫ＿Ｓを、ウェイト数の設定に応じて切り替えるマルチプレクサ６０を含む。マルチプレクサ６０の各入力には、それぞれ遅延量が異なる遅延回路（スレーブクロック遅延回路６５、スレーブクロック遅延回路６６およびスレーブクロック遅延回路６７）を通過したクロック信号ＣＬＫ＿Ｓ）が入力される。このような構成により、遅延調整回路３９は、ウェイト数の設定に応じて、クロック信号ＣＬＫ＿Ｍとクロック信号ＣＬＫ＿Ｓとの位相差を調節することができる。
【００３６】
＜変形例＞
また、実施の形態１では、ウェイト数の設定に関わらずバスマスタへ供給するクロック信号ＣＬＫ＿Ｍの遅延量を固定し、バススレーブへ供給するクロック信号ＣＬＫ＿Ｓを、ウェイト数の設定に応じた遅延量とする構成を説明した。実施の形態２では、クロック信号ＣＬＫ＿Ｍおよびクロック信号ＣＬＫ＿Ｓを、ともに、ウェイト数の設定に応じて遅延させる構成を説明した。この他にも、変形例として、ウェイト数の設定に関わらずバススレーブへ供給するクロック信号ＣＬＫ＿Ｓの遅延量を固定し、バスマスタへ供給するクロック信号ＣＬＫ＿Ｍを、ウェイト数の設定に応じた遅延量とする構成であるとしてもよい。
【００３７】
図６は、バススレーブへ供給するクロック信号ＣＬＫ＿Ｓの遅延を固定する場合の遅延調整回路３９の構成を示す図である。変形例において、遅延調整回路３９は、バススレーブの動作を制御するために遅延調整回路３９において生成されるクロック信号ＣＬＫ＿Ｓを受け付けて各バススレーブへ供給するためのスレーブクロック遅延回路６８を含む。
【００３８】
各実施形態で説明した半導体装置１０によると、例えばメモリ回路を内蔵するマイクロコンピュータ等のシステムにおいて、各ウェイトにおける内蔵メモリクロックとバスマスタクロックとの位相差を最適な値に調整することで、各ウェイトの動作周波数の向上を図ることができる。これにより、半導体装置１０の性能が向上し、電力効率が向上する。
【００３９】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【００４０】
今回開示された実施の形態はすべての点で例示であって制限的なものでないと考えられるべきである。この発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【００４１】
１０  半導体装置、２０  バスマスタ、２１  第１のＣＰＵ、２２  第２のＣＰＵ、２３  ＤＳＰ、２４  ＤＭＡＣ、３０  バススレーブ、３２  ＲＡＭ、３１  ＲＯＭ、３３  ＴＩＭ、３４  ＣＰＧ、３８  Ｗａｉｔ設定保持部、３９  遅延調整回路、４０  バス、４１  アドレスバス、４２  データバス、５０  バス制御回路。
【図１】
0006395647.tif 000002
【図２】
0006395647.tif 000003
【図３】
0006395647.tif 000004
【図４】
0006395647.tif 000005
【図５】
0006395647.tif 000006
【図６】
0006395647.tif 000007