説明

半導体装置

【課題】不揮発性メモリを備えた半導体装置において、高速動作の場合と低速動作の場合とに切替え可能にするとともに、低速動作時の消費電力を従来よりも削減する。
【解決手段】半導体装置1において、クロック生成回路40は、高周波モード時には低周波モード時よりも周波数の高いクロックを生成する。中央処理装置20は、データバス11を介して不揮発性メモリ10から読み出された読出データを取得する。クロック遅延部50Aは、縦続接続された複数段のバッファ55を介した第1の経路51と複数段のバッファ55を迂回した第2の経路52とを含む。クロック遅延部50Aは、高周波モード時には、クロック生成回路40からのクロックを第1の経路51を介して中央処理装置20に供給し、低周波モード時には、クロック生成回路40からのクロックを第2の経路52を介して中央処理装置20に供給する。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は、クロック発生回路およびクロック分配回路を備えた半導体装置に関する。
【背景技術】
【0002】
クロック発生回路で発生したクロックを分配する際には、配線容量や遅延時間などによるタイミングのずれ、すなわち、クロックスキュー(Clock Skew)による誤動作を防止する必要がある。たとえば、特開2000−122751号公報(特許文献1)に記載のクロック分配回路は、クロックツリー構造に接続した複数のクロックラインと、各クロックラインに挿入した複数のバッファとからなる。各クロックラインを構成するバッファの出力分岐数が異なるように接続して、各クロックラインにおけるクロックの遅延時間を微少に変化させるようにしたことにより、他の半導体素子や配線長による遅延時間のばらつきによるスキューのマージンを、動作上取れるようにしている。
【0003】
クロック分配に直接関係したものではないが、クロックの遅延量を制御するための技術が以下の各文献に開示されている。
【0004】
国際公開第00/45246号(特許文献2)は、遅延回路、セレクタ及びコントロール回路を有するクロック生成回路を開示する。ここで、遅延回路は、入力クロック信号を遅延させる縦続接続された複数のバッファと、異なる遅延時間だけ遅延されたクロック信号をそれぞれ出力する複数の出力端子を有する。セレクタは、コントロール回路からの出力に基づいて、遅延回路の複数の出力端子の中から一つを選択する。
【0005】
特開2007−241441号公報(特許文献3)は、入力されたクロックに基づいて、データ受け取り側の装置に適した遅延量でデータを出力するデータ出力装置について開示している。具体的に、この文献に記載のデータ出力装置は、多段に接続された複数の遅延手段と、この遅延手段を通る個数の異なるクロックのうちいずれかのクロックを選択する遅延量選択手段と、選択されたクロックに合わせてデータを出力するデータ出力手段とを含む。
【0006】
クロックスキューによる誤動作を防止するために、クロック周波数を制御する方法も知られている。たとえば、特開平9−244770号公報(特許文献4)に記載の電子機器は、電源電圧が降下電圧まで低下したとき誤動作防止のためにCPU(中央処理装置:Central Processing Unit)のアクセス周波数を所定量遅くし、降下電圧よりも低いリセット電圧まで低下したときCPUをリセットする。
【0007】
特開2004−86531号公報(特許文献5)に記載のマイクロコントローラでは、高い性能が要求されるときにのみクロック周波数を高くして高速で動作させ、それ以外は低速で動作させることで、高性能化と、低消費電力化との両立が図られている。特にこの文献の場合には、さらなる低消費電力化を図るために、クロック周波数に応じて遅延回路に設けられたバッファの駆動能力を調整している。
【先行技術文献】
【特許文献】
【0008】
【特許文献1】特開2000−122751号公報
【特許文献2】国際公開第00/45246号
【特許文献3】特開2007−241441号公報
【特許文献4】特開平9−244770号公報
【特許文献5】特開2004−86531号公報
【発明の概要】
【発明が解決しようとする課題】
【0009】
ところで、フラッシュメモリなどの不揮発性メモリは一般に、DRAM(Dynamic Random Access Memory)などの揮発性メモリに比べてアクセス時間が長い。このため、CPUを高クロック周波数で動作させている状態で、CPUが不揮発性メモリからノーウェイト(待ち時間0)でデータを読み出す場合には、タイミングのずれが生じないようにCPUへ供給するクロックの位相を多数段のバッファによって大幅に遅延させる必要が生じる。
【0010】
これに対して、CPUを低クロック周波数で動作させる場合やCPUが読出データを取り込む際にウェイトサイクルを挿入する場合には上記のような位相調整の必要はない。しかしながら、高周波数かつノーウェイトの場合に合わせて多数段のバッファを設けているので、低速読出時またはウェイトサイクル挿入時には多数段のバッファによって無駄な電力消費が生じていることになる。
【0011】
この発明は、上記の問題点を考慮してなされたものであり、その目的は、不揮発性メモリを備えた半導体装置において、高速動作の場合と低速動作の場合とに切替え可能にするとともに、低速動作時の消費電力を従来よりも削減することである。
【課題を解決するための手段】
【0012】
この発明の実施の一形態による半導体装置は、クロック生成回路と、不揮発性メモリと、データバスと、中央処理装置と、クロック遅延部とを備える。クロック生成回路は、動作モードとして低周波モードと高周波モードとを有し、高周波モード時には低周波モード時よりも周波数の高いクロックを生成する。不揮発性メモリは、クロック生成回路で生成されたクロックに基づいて動作する。データバスは、不揮発性メモリに接続される。中央処理装置は、クロック生成回路で生成されたクロックに基づいて動作し、データバスを介して不揮発性メモリから読み出された読出データを取得する。クロック遅延部は、クロック生成回路から中央処理装置へ至るクロックの供給経路に設けられる。クロック遅延部は、縦続接続された複数段のバッファを介した第1の経路と複数段のバッファを迂回した第2の経路とを含み、高周波モード時には、クロック生成回路からのクロックを第1の経路を介して中央処理装置に供給する。クロック遅延部は、低周波モード時には、クロック生成回路からのクロックを第2の経路を介して中央処理装置に供給する。
【発明の効果】
【0013】
上記の実施の形態によれば、高周波モードにおいて不揮発性メモリからデータを読み出すときには、複数段のバッファを介してクロックが中央処理装置に供給される。一方、低周波モードにおいて不揮発性メモリからデータを読み出すときには、複数段のバッファを迂回してクロックが供給される。これにより、高速動作の場合と低速動作の場合とに切替え可能であるとともに、低速動作時の消費電力を従来よりも削減することができる。
【図面の簡単な説明】
【0014】
【図1】この発明の実施の形態1による半導体装置1の構成を示すブロック図である。
【図2】低周波モードの場合における、図1の半導体装置1の各部の信号波形を示すタイミング図である。
【図3】高周波モードの場合における、図1の半導体装置1の各部の信号波形を示すタイミング図である。
【図4】この発明の実施の形態2による半導体装置2の構成を示すブロック図である。
【図5】図4のライトイネーブル端子付きのDフリップフロップ回路の構成例を示す回路図である。
【図6】低速読出モードの場合における、図4の半導体装置2の各部の信号波形を示すタイミング図である。
【図7】高速読出モードの場合において、半導体装置2の各部の信号波形を示すタイミング図である。
【図8】この発明の実施の形態3による半導体装置3の構成を示すブロック図である。
【図9】この発明の実施の形態4による半導体装置4の構成を示すブロック図である。
【発明を実施するための形態】
【0015】
以下、この発明の実施の形態について図面を参照して詳しく説明する。なお、同一または相当する部分には同一の参照符号を付して、その説明を繰返さない。
【0016】
<実施の形態1>
[半導体装置1の構成]
図1は、この発明の実施の形態1による半導体装置1の構成を示すブロック図である。図1を参照して、半導体装置1は、CPU20、フラッシュメモリ10、SRAM(Static Random Access Memory)、および通信インターフェースなどの多数の機能モジュールを内蔵したマイクロコンピュータチップである(CPU20およびフラッシュメモリ10以外の機能モジュールの多くについては図示を省略している)。これらの機能モジュールはバス11を介して接続される。CPU20内の論理回路22は、バスインターフェース(Bus I/F)21を介してバス11と接続される。バス11には、制御バス、アドレスバス、およびデータバスが含まれる。
【0017】
半導体装置1は、さらに、制御レジスタ群30と、クロック生成回路40と、クロックの位相を調整するための複数の位相調整部(クロック遅延部とも称する)50A,50Bとを含む。
【0018】
制御レジスタ群30は、クロック生成回路40で生成するクロックの周波数を切替えるための制御レジスタ31と、位相調整部50A,50Bの動作を制御するための制御レジスタ32とを含む。制御レジスタ31,32の設定値はCPU20から読み出したり書き換えたりすることができる。
【0019】
クロック生成回路40は、半導体装置1全体の動作基準となるクロックを生成する。クロック生成回路40は、動作モードとして高周波モードと低周波モードとを有する。高周波モードの場合のほうが低周波モードの場合よりも高い周波数のクロックが生成される。実施の形態1の場合、制御レジスタ31から出力された制御信号CS1がハイレベル(Hレベル)のときクロック生成回路40は高周波モードで動作し、制御信号CS1がローレベル(Lレベル)のときクロック生成回路40は低周波モードで動作する。クロック生成回路40で生成されたクロックは、半導体装置1の各部に分配される。
【0020】
クロック分配方式としてクロックツリーを用いる場合、通常の方法では、クロックの起点から各フリップフロップ(FF:Flip-Flop)のクロック入力端子までの遅延が均一(ゼロスキュー)になるように調整される。ゼロスキューを実現するために、各フリップフロップまでの配線の長さを均一化するとともに、各フリップフロップまでのバッファの個数を等しくする。
【0021】
一方、ゼロスキューでは動作周波数の仕様を満たせなくなる回路では、所定の位相差を与えるユースフルスキューが用いられる。具体的には、データレシーバ側のフリップフロップに接続されるクロックラインにバッファを追加する。これによって、データ送出側のフリップフロップやメモリなどのクロックの位相に対して、データレシーバ側のクロックの位相を遅らせて、動作周波数の仕様を満たすようにする。
【0022】
図1の場合には、フラッシュメモリ10に供給されるクロックCLK1に対して、CPU20内のフリップフロップ23に供給するクロックCLK4の位相を遅らせるために位相調整部50Aが設けられている。なお、図1には、CPU20内に設けられるフリップフロップの代表としてフリップフロップ23が示されている。フリップフロップ23のデータ端子には論理回路22からデータDT2が入力される。
【0023】
位相調整部50Aは、多数段のバッファ55からなる遅延回路56を含む第1のクロック経路51と、遅延回路56を迂回した第2のクロック経路52とを含む。第1のクロック経路51の遅延量は、第2のクロック経路52の遅延量よりも大きい。
【0024】
第1のクロック経路51は高周波モードのとき用いられる。これによって、データアクセスが遅いフラッシュメモリ10からノーウェイトでデータを読み出すことができる。一方、第2のクロック経路52は低周波モードのとき用いられる。第2のクロック経路52には複数段のバッファが設けられていないので、消費電力を削減することができる。
【0025】
位相調整部50Aは、上記の第1および第2のクロック経路51,52の切替えを行なうための構成として、クロックセレクタ(Clock Selector)58と、ゲーティングセル(gating cell)53,54と、インバータ57とを含む。クロックセレクタ58およびゲーティングセル53,54は、クロック経路切替用の制御レジスタ32から出力される制御信号CS2によって制御される。
【0026】
CPU20内のフリップフロップ23には、クロックセレクタ58からクロックCLK4が供給される。クロックセレクタ58は、遅延大のクロック経路51からの信号CLK2と遅延小のクロック経路52からの信号CLK3の一方を選択的に出力する。
【0027】
遅延大のクロック経路51は、高周波モード時にフリップフロップ23のクロック端子にクロックCLK4を供給するための経路である。クロック経路51の初段にクロックゲーティングセル53が設けられ、クロックゲーティングセル53の後段に遅延回路56が設けられる。遅延回路56によってクロックの位相を遅らせて、高周波モード時におけるフリップフロップ23のセットアップタイムを確保している。
【0028】
遅延小のクロック経路52は、低周波モード時にフリップフロップ23のクロック端子にクロックCLK4を供給するための経路である。クロック経路52の初段にクロックゲーティングセル54が設けられる。クロック経路52は、遅延大のクロック経路51よりバッファの段数が少ないので、クロック経路52の遅延量はクロック経路51よりも小さい。
【0029】
クロック経路切替用の制御レジスタ32の設定値に応じたクロック制御信号CS2によって、遅延大のクロック経路51と遅延小のクロック経路52とが切替えられる。高周波モード時にはクロック制御信号CS2をHレベルに設定することによって遅延大のクロック経路51が選択され、低周波モード時にはクロック制御信号CS2をLレベルに設定することによって遅延小のクロック経路52が選択される。
【0030】
クロック生成回路40、制御レジスタ32、およびゲーティングセル53,54の間の接続関係は次のとおりである。制御レジスタ32からの制御信号CS2がゲーティングセル53の第1の入力端子に入力され、インバータ57によって制御信号CS2の論理レベルを反転させた信号がゲーティングセル54の第1の入力端子に入力される。ゲーティングセル53,54の各第2の入力端子には、クロック生成回路40によって生成されたクロックがバッファ41,42A,44Aを介して入力される。ゲーティングセル53,54の各々は、第1および第2の入力端子に入力された信号の論理積を出力する。
【0031】
したがって、高周波モード時には制御信号CS2をHレベルに設定することによって、ゲーティングセル53は入力されたクロックを通過させ、ゲーティングセル54はLレベルの信号を出力する。一方、低周波モード時には制御信号CS2をLレベルに設定することによって、ゲーティングセル54は入力されたクロックを通過させ、ゲーティングセル53はLレベルの信号を出力する。
【0032】
高周波モード時には、フラッシュメモリ10からデータ読出を行なう他の機能モジュールに設けられたフリップフロップへ供給されるクロックも、位相を大幅に遅らせる必要がある。このため、CPU20用のクロックラインに設けられた位相調整部50Aと同様の構成の位相調整部が、他のフリップフロップへのクロック供給経路にも設けられる。図1には、フリップフロップ12,13へのクロック供給経路に設けられた位相調整部50Bが一例として示されている。位相調整部50Bに設けられたゲーティングセル53,54へは、クロック生成回路40で生成されたクロックがバッファ41,42B,44Bを介して入力される。
【0033】
[半導体装置1の動作]
図2は、低周波モードの場合における、図1の半導体装置1の各部の信号波形を示すタイミング図である。図2のタイミング図は、上から順に、クロック周波数切替用の制御レジスタ31から出力されるクロック制御信号CS1、フラッシュメモリ10用のクロックCLK1、遅延大の第1のクロック経路51を通過してクロックセレクタ58に入力されるクロックCLK2、遅延小の第2のクロック経路52を通過してクロックセレクタ58に入力されるクロックCLK3、フリップフロップ23のクロック端子に入力されるクロックCLK4、アドレスバスを介してフラッシュメモリに入力されるアドレス信号、フラッシュメモリ10からバス11に出力される読出データDT1、およびCPU20内のフリップフロップ23のデータ端子に入力される読出データDT2の各電圧波形を示す。
【0034】
図1、図2を参照して、制御信号CS1をLレベルに設定することによってクロック生成回路40は低周波モードで動作する。図2では、一例として低周波モードでのクロック周波数を50MHz(周期:20ns)とし、フラッシュメモリ10のアクセス時間Tac1(時刻t1から時刻t5まで)を約9nsとし、フラッシュメモリ10からフリップフロップ23までのパス遅延(path delay)Td1(時刻t5から時刻t7まで)を約4nsとしている。
【0035】
低周波モード時には、遅延大のクロック経路51で位相を遅らせたクロックを使用しなくても、フラッシュメモリ10からの読出データData1をノーウェイトでフリップフロップ23に取り込むことが可能である。このため、Lレベルの制御信号CS2によって遅延小のクロック経路52を選択する。このとき、CPU20のフリップフロップ23に入力されるクロックCLK4は、フラッシュメモリ10に入力されるクロックCLK1とほぼ同位相になる(クロックセレクタ58からフリップフロップ23までの若干のパス遅延が加わる)。遅延大のクロック経路51と遅延小のクロック経路52は互いに排他的にクロックセレクタ58で選択される。選択されなかった方のクロック経路51は初段のゲーティングセル53にてゲーティングされるのでクロックCLK2はトグルせずにLレベルを示す。結果として、読出データData1は、アドレスAddr1がフラッシュメモリ10に入力された時刻t1から約20ns経過した時刻t10にフリップフロップ23に取り込まれる。
【0036】
図3は、高周波モードの場合における、図1の半導体装置1の各部の信号波形を示すタイミング図である。図3には、図2の場合と同一箇所の電圧波形が示されている。
【0037】
図1、図3を参照して、制御信号CS1をHレベルにすることによってクロック生成回路40は高周波モードで動作する。図3では、高周波モードでのクロック周波数の一例として100MHz(周期:10ns)の場合が示されている。時刻t1からt6までと時刻t6からt9までとがそれぞれ1周期に対応する。フラッシュメモリ10のアクセス時間Tac1(時刻t1から時刻t5まで)およびフラッシュメモリ10からフリップフロップ23までデータが伝送される間のパス遅延Td1(時刻t5から時刻t7まで)は、図2の場合と同じにしている。
【0038】
高周波モード時には、クロック周期10nsに対して、フラッシュメモリ10のアクセス時間Tac1が9ns近くあり、フラッシュメモリ10からCPU20内のフリップフロップ23までのパス遅延を含めると合計10ns以上かかる。このため、ノーウェイトでフラッシュメモリ10からの読出データData1をフリップフロップ23に取り込むためには、フリップフロップ23に入力されるクロックCLK4をフラッシュメモリ10に入力されるクロックCLK1よりも4ns程度遅延させなければならない。
【0039】
したがって、高周波モード時には、Hレベルの制御信号CS2によって遅延大のクロック経路51が選択される。遅延大のクロック経路51を通過したクロックCLK2は、フラッシュメモリ10に入力されるクロックCLK1よりも遅延回路56に応じた遅延時間Td2(時刻t1から時刻t3まで)だけ遅れる。フリップフロップ23に入力されるクロックCLK4は、遅延大のクロック経路51を通過したクロックCLK2とほぼ同位相になる。選択されなかった方のクロック経路52は初段のゲーティングセル54にてゲーティングされるのでクロックCLK3はトグルせずにLレベルを示す。結果として、読出データData1は、アドレスAddr1がフラッシュメモリ10に入力された時刻t1から約13ns経過した時点(時刻t8)でフリップフロップ23に取り込まれる。
【0040】
[効果]
以上のとおり、実施の形態1による半導体装置1は、遅延大のクロック経路51と遅延小のクロック経路52とが選択可能に構成される。動作周波数の上限で半導体装置1を動作させる高周波モード時には遅延大のクロック経路51を選択することによって、フラッシュメモリ10に供給されるクロックCLK1とCPU20内のフリップフロップ23に供給されるクロックCLK4とに位相差をつける。これによって、CPU20がフラッシュメモリ10からノーウェイトでデータを読み出せるようになる。
【0041】
一方、低消費電力化のためにクロックの周波数を下げた低周波モードで半導体装置1を動作させる場合には、フラッシュメモリ10に供給されるクロックCLK1とCPU20内のフリップフロップ23に供給されるクロックCLK4とに位相差をつける必要はない。この場合、消費電力を削減するために遅延小のクロック経路52を選択する。
【0042】
遅延大のクロック経路51を選択した場合には、遅延回路56を構成する各バッファ55がトグル動作を繰返すために消費電力が大きくなる。上記のように低周波モード時にゲーティングセル53,54によって遅延小のクロック経路52を選択することによって、遅延大のクロック経路51に設けられた遅延回路56にはLレベルの信号が入力され、各バッファ55の出力はHレベルまたはLレベルに固定される。この結果、遅延回路56がトグル動作をしないので、消費電力が削減できる。
【0043】
なお、高周波モードと低周波モードとの切替えおよびクロック経路51,52の選択は、CPU20から制御レジスタ31,32の値を設定することによって容易に行なうことができる。
【0044】
<実施の形態2>
[半導体装置2の構成]
図4は、この発明の実施の形態2による半導体装置2の構成を示すブロック図である。
【0045】
図4の半導体装置2は、クロック周波数を切替えるための制御レジスタ31に代えて、ウェイトサイクル(wait cycle)を制御するための制御レジスタ33を含む点で、図1の半導体装置1と異なる。図4の場合、クロック生成回路40は高周波モードに固定される。
【0046】
図4の半導体装置2は、さらに、図1のCPU20内に設けられたフリップフロップ23に代えて、ライトイネーブル(WE:Write Enable)端子付きのフリップフロップ23Aが設けられている点で図1の半導体装置1と異なる。
【0047】
ウェイトサイクルを制御するための制御レジスタ33は、フラッシュメモリ10と、CPU20A内のバスインターフェース21Aとに接続される。制御レジスタ33は、CPU20Aによって読み書きが可能である。フラッシュメモリ10からのデータ読出時に、制御レジスタ33の設定値に応じた所定数のウェイトサイクルが挿入される。より詳細には、制御レジスタ33の設定値に応じて、バスインターフェース21Aからフリップフロップ23AのWE端子に出力されるWE信号が活性化する(Hレベルになる)タイミングが変化する。WE信号を活性化するタイミングによって、フリップフロップ23がデータを取り込むタイミングを制御する。
【0048】
以下、CPU20Aがノーウェイトでフラッシュメモリ10からデータを読み出す場合を高速読出モードと称し、CPU20Aが所定数のウェイトサイクルの経過後にフラッシュメモリ10からデータを読み出す場合を低速読出モードと称する。実施の形態2の場合には、制御レジスタ33から出力される制御信号CS3がHレベルのときCPU20Aは高速読出モードになり、制御信号CS3がLレベルのときCPU20Aは低速読出モードになるものとする。
【0049】
高速読出モード時には、実施の形態1の高周波モード時の場合と同様に、フラッシュメモリ10に供給されるクロックCLK1とCPU20A内のフリップフロップ23Aに供給するクロックCLK4とに位相差をつける必要がある。このため、制御レジスタ32をHレベルに設定することにより、遅延大のクロック経路51を選択する。
【0050】
低速読出モード時には、実施の形態1の低周波モード時の場合と同様に、フラッシュメモリ10に供給されるクロックCLK1とCPU20A内のフリップフロップ23Aに供給するクロックCLK4とに位相差をつける必要はない。そこで、消費電力を削減するために、制御レジスタ32をLレベルに設定することにより遅延小のクロック経路52を選択する。
【0051】
図4のその他の構成は図1の場合と同じであるので、同一または相当する部分には同一の参照符号を付して説明を繰返さない。
【0052】
図5は、図4のライトイネーブル端子付きのDフリップフロップ回路の構成例を示す回路図である。図5(A)の回路例では、WE端子付きのフリップフロップ23Aは、WE端子のない通常のフリップフロップ60とセレクタ61とを含む。セレクタ61は、フリップフロップ60の出力信号とフラッシュメモリ10からの読出データDT2とを受け、WE信号に応じて選択された一方の信号をフリップフロップ60のデータ端子Dに入力する。図5の場合、セレクタ61は、WE信号がHレベル(“1”)のときは読出データDT2を出力し、WE信号がLレベル(“0”)のときはフリップフロップ60の出力信号をデータ端子Dに再入力する。フリップフロップ60のクロック端子CKにはクロックCLK4が入力され、フリップフロップ60の出力信号は後段の論理回路24に与えられる。
【0053】
図5(B)の回路例では、WE端子付きのフリップフロップ23Aは、WE端子のない通常のフリップフロップ60とANDゲート62とを含む。フリップフロップ60のデータ端子Dにはフラッシュメモリ10から読出データDT2が入力される。ANDゲート62の第1および第2の入力端子にはWE信号とクロックCLK4とが入力される。ANDゲート62の出力信号はフリップフロップ60のクロック端子CKに入力される。フリップフロップ60の出力信号は後段の論理回路24に与えられる。
【0054】
[半導体装置2の動作]
図6は、低速読出モードの場合における、図4の半導体装置2の各部の信号波形を示すタイミング図である。図6のタイミング図は、上から順に、ウェイトサイクル制御用の制御レジスタ33から出力される制御信号CS3、フラッシュメモリ10用のクロックCLK1、遅延大のクロック経路51を通過してクロックセレクタ58に入力されるクロックCLK2、遅延小のクロック経路52を通過してクロックセレクタ58に入力されるクロックCLK3、フリップフロップ23Aのクロック端子CKに入力されるクロックCLK4、アドレスバスを介してフラッシュメモリに入力されるアドレス信号、フラッシュメモリ10からバス11に出力される読出データDT1、ライトイネーブル(WE)信号、およびCPU20内のフリップフロップ23Aのデータ端子Dに入力された読出データDT2の各電圧波形を示す。
【0055】
図6の場合のクロック周波数は、一例として、実施の形態1の高周波モードの場合と同じ100MHz(周期:10ns)である。図6において、時刻t1からt6までと時刻t6からt9までとがそれぞれ1周期に対応する。低速読出モード(制御信号CS3がLレベル)でのフラッシュメモリのアクセス時間Tac2(時刻t1から時刻t21まで)は、高速読出モード(制御信号CS3がHレベル)の場合よりもやや長くなっている。具体的に図6の場合、アクセス時間Tac2を約12nsとしている。フラッシュメモリ10からフリップフロップ23までデータが転送されるときのパス遅延(path delay)Td1(時刻t21から時刻t22まで)は、実施の形態1の場合と同じ約4nsにしている。
【0056】
CPU20Aがフラッシュメモリ10からデータを読み出すときにウェイトサイクルが挿入される低速読出モード時(制御信号CS3がLレベルのとき)には、遅延大のクロック経路51で位相を遅らせたクロックCLK2を使用しなくても、フラッシュメモリ10からの読出データData1をフリップフロップ23Aに取り込むことが可能である。このため、Lレベルの制御信号CS2によって遅延小のクロック経路52を選択する。このとき、CPU20Aのフリップフロップ23Aに入力されるクロックCLK4は、フラッシュメモリ10に入力されるクロックCLK1とほぼ同位相になる(クロックセレクタ58からフリップフロップ23Aまでの若干のパス遅延が加わる)。選択されなかった方のクロック経路51は初段のゲーティングセル53にてゲーティングされるのでクロックCLK2はトグルせずに一定の論理レベル(すなわち、Lレベル)を示す。
【0057】
低速読出モードの場合のWE信号は、CPU20Aからフラッシュメモリ10に読出アドレスが入力されてから2周期目のクロックCLK4の立下がりエッジ(時刻t23)に応答して、Hレベルに変化する(時刻t24)。この後、WE信号は、クロックCLK4の3周期目の立下がりエッジ(時刻t25)に応答してLレベルに変化する(時刻t26)。フリップフロップ23Aは、WE信号がHレベルとなっている活性状態の間で、クロックCLK4がHレベルに立上がった時刻t10にフラッシュメモリ10からの読出データData1を取り込む。結果として、読出データData1は、アドレスAddr1がフラッシュメモリ10に入力された時刻t1から約20ns経過した時刻t10にフリップフロップ23Aに取り込まれる。
【0058】
図7は、高速読出モードの場合において、半導体装置2の各部の信号波形を示すタイミング図である。図7には、図6の場合と同一箇所の電圧波形が示されている。
【0059】
図7の場合のクロック周波数は図6の場合と同じ100MHz(周期10ns)であり、時刻t1からt6までと時刻t6からt9までとがそれぞれ1周期に対応する。高速読出モード(制御信号CS3がHレベル)でのフラッシュメモリのアクセス時間Tac1(時刻t1から時刻t5まで)は、実施の形態1の場合と同じ約9nsにしている。フラッシュメモリ10からフリップフロップ23までデータが伝送される間のパス遅延(path delay)Td1(時刻t5から時刻t7まで)も、実施の形態1の場合と同じ約4nsである。
【0060】
フラッシュメモリ10からノーウェイトでCPU20Aにデータが読み込まれる高速読出モード(制御信号CS3がHレベルのとき)の場合には、遅延大のクロック経路51で位相を遅らせたクロックCLK2を使用する必要がある。クロックCLK2は、フラッシュメモリ10に入力されるクロックCLK1よりも遅延回路56に応じた遅延時間Td2(時刻t1から時刻t3までの約4ns)だけ遅れる。フリップフロップ23に入力されるクロックCLK4は、遅延大のクロック経路51を通過したクロックCLK2とほぼ同位相である。選択されなかった方のクロック経路52は初段のゲーティングセル54にてゲーティングされるのでクロックCLK3はトグルせずにLレベルを示す。
【0061】
高速読出モードの場合には、WE信号は、CPU20Aからフラッシュメモリ10に読出アドレスが入力されてから1周期目のクロックCLK4の立下がりエッジ(時刻t31)に応答して、Hレベルに変化する(時刻t32)。その後、WE信号は、クロックCLK4の2周期目の立下がりエッジ(時刻t33)に応答してLレベルに変化する(時刻t34)。フリップフロップ23Aは、WE信号がHレベルとなっている活性状態の間で、クロックCLK4がHレベルに立上がった時刻t8にフラッシュメモリ10からの読出データData1を取り込む。この結果、読出データData1は、アドレスAddr1がフラッシュメモリ10に入力された時刻t1から約14ns経過した時点でフリップフロップ23Aに取り込まれる。
【0062】
[効果]
以上のとおり、実施の形態2による半導体装置2は、実施の形態1の場合と同様に、遅延大のクロック経路51と遅延小のクロック経路52とが選択可能に構成される。CPU20Aがフラッシュメモリ10からノーウェイトでデータを読み出す高速読出モード時には遅延大のクロック経路51が選択される。フラッシュメモリ10に供給されるクロックCLK1とCPU20内のフリップフロップ23Aに供給されるクロックCLK4とに位相差をつけることによって、データ読出のタイミングを調整する。
【0063】
一方、CPU20Aがフラッシュメモリ10からデータを読み出すときにウェイトサイクルを挿入した場合には、フラッシュメモリ10に供給されるクロックCLK1とCPU20内のフリップフロップ23Aに供給されるクロックCLK4とに位相差をつける必要はない。この場合、遅延小のクロック経路52を選択することによって、遅延回路56を構成する各バッファ55がトグル動作をしないようにして消費電力を削減する。
【0064】
<実施の形態3>
[半導体装置3の構成]
図8は、この発明の実施の形態3による半導体装置3の構成を示すブロック図である。
【0065】
図8の半導体装置3は、図1の半導体装置1と図4の半導体装置2とを組み合せたものである。すなわち、図8の半導体装置3の制御レジスタ群30Bは、クロック生成回路40の動作モードを低周波モードまたは高周波モードに切替えるための制御レジスタ31をさらに含む点で、図4に示した半導体装置2の制御レジスタ群30Aと異なる。図1で説明したように、クロック生成回路40は、高周波モードの場合のほうが低周波モードの場合よりも高い周波数のクロックを生成する。制御レジスタ31から出力された制御信号CS1がHレベルのときクロック生成回路40は高周波モードで動作し、制御信号CS1がLレベルのときクロック生成回路40は低周波モードで動作する。
【0066】
図8のその他の点は図1、図4の場合と同様であるので、同一または相当する部分には同一の参照符号を付して説明を繰返さない。
【0067】
[半導体装置3の動作]
制御レジスタ31,33の設定値に応じて次の4通りの動作状態が考えられる。
【0068】
(i)高周波モードかつ高速読出モードの場合
制御レジスタ31がHレベルに設定され、制御レジスタ33がHレベルに設定されている場合、クロック生成回路40は高周波モードで動作し、CPU20Aは高速読出モードで動作する。この場合、CPU20Aはフラッシュメモリ10からの読出データをノーウェイトで取り込むので、フラッシュメモリ10に供給されるクロックCLK1とCPU20A内のフリップフロップ23Aに供給するクロックCLK4とに位相差をつける必要がある。このため、制御レジスタ32をHレベルに設定することにより、遅延大のクロック経路51が選択される。半導体装置3の各部の電圧波形は、たとえば、図7で説明したものと同様になる。
【0069】
(ii)高周波モードかつ低速読出モードの場合
制御レジスタ31がHレベルに設定され、制御レジスタ33がLレベルに設定されている場合、クロック生成回路40は高周波モードで動作し、CPU20Aは低速読出モードで動作する。この場合、CPU20Aは所定のウェイトサイクルの経過後にフラッシュメモリ10からの読出データを取り込むので、フラッシュメモリ10に供給されるクロックCLK1とCPU20A内のフリップフロップ23Aに供給するクロックCLK4とに位相差をつける必要はない。そこで、消費電力を削減するために、制御レジスタ32をLレベルに設定することにより遅延小のクロック経路52が選択される。半導体装置3の各部の電圧波形は、たとえば、図6で説明したものと同様になる。
【0070】
(iii)低周波モードかつ高速読出モードの場合
制御レジスタ31がLレベルに設定され、制御レジスタ33がHレベルに設定されている場合、クロック生成回路40は低周波モードで動作し、CPU20Aは高速読出モードで動作する。この場合、CPU20Aはフラッシュメモリ10からの読出データをノーウェイトで取り込むが動作周波数が遅いので、フラッシュメモリ10に供給されるクロックCLK1とCPU20A内のフリップフロップ23Aに供給するクロックCLK4とに位相差をつける必要がない。そこで、消費電力を削減するために、制御レジスタ32をLレベルに設定することにより遅延小のクロック経路52が選択される。半導体装置3の各部の電圧波形は、たとえば、図2で説明したものと同様になる。
【0071】
(iv)低周波モードかつ低速読出モードの場合
制御レジスタ31がLレベルに設定され、制御レジスタ33がLレベルに設定されている場合、クロック生成回路40は低周波モードで動作し、CPU20Aは低速読出モードで動作する。この場合、CPU20Aは所定のウェイトサイクルの経過後にフラッシュメモリ10からの読出データを取り込み、しかも動作周波数も遅いので、フラッシュメモリ10に供給されるクロックCLK1とCPU20A内のフリップフロップ23Aに供給するクロックCLK4とに位相差をつける必要はない。そこで、消費電力を削減するために、制御レジスタ32をLレベルに設定することにより遅延小のクロック経路52が選択される。
【0072】
<実施の形態4>
[半導体装置4の構成および動作]
図9は、この発明の実施の形態4による半導体装置4の構成を示すブロック図である。
【0073】
図9の半導体装置4は、位相調整部50A,50Bにそれぞれ対応して電源スイッチ70A,70Bを含む点で図8の半導体装置3と異なる。電源スイッチ70A,70Bの各々は、電源ノードVDDからゲーティングセル53および各バッファ55に至る電源電圧の供給経路に設けられる。電源スイッチ70A,70Bのオン・オフは、制御レジスタ32から出力される制御信号CS2によって制御される。制御信号CS2がHレベルのとき、電源スイッチ70A,70Bはオン状態になり、制御信号CS2がLレベルのとき電源スイッチ70A,70Bはオフ状態になる。
【0074】
なお、図1で説明した実施の形態1の半導体装置1および図4で説明した実施の形態2の半導体装置2にも、図9と同様の構成の電源スイッチ70A,70Bを設けることができる。図9のその他の点は図1、図4および図8の場合と同様であるので、同一または相当する部分には同一の参照符号を付して説明を繰返さない。
【0075】
[効果]
上記の構成によれば、制御信号CS2によって遅延小のクロック経路52を選択する場合には、選択されていない遅延大のクロック経路52に設けられたゲーティングセル53および遅延回路56への電源が遮断される。したがって、実施の形態1〜3の各々で説明した効果に加えて、さらに消費電力を削減することができる。
【0076】
今回開示された実施の形態はすべての点で例示であって制限的なものでないと考えられるべきである。この発明の範囲は上記した説明ではなくて請求の範囲によって示され、請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【0077】
1,2,3,4 半導体装置、10 フラッシュメモリ、11 バス、12,13,23,23A フリップフロップ、21A バスインターフェース、30,30A,30B 制御レジスタ群、31,32,33 制御レジスタ、40 クロック生成回路、50A,50B 位相調整部、51 第1のクロック経路、52 第2のクロック経路、53,54 クロックゲーティングセル、55 バッファ、56 遅延回路、58 クロックセレクタ、70A,70B 電源スイッチ、CLK1,CLK2,CLK3,CLK4 クロック、CS1〜CS3 制御信号。

【特許請求の範囲】
【請求項1】
動作モードとして低周波モードと高周波モードとを有し、前記高周波モード時には前記低周波モード時よりも周波数の高いクロックを生成するクロック生成回路と、
前記クロック生成回路で生成されたクロックに基づいて動作する不揮発性メモリと、
前記不揮発性メモリに接続されたデータバスと、
前記クロック生成回路で生成されたクロックに基づいて動作し、前記データバスを介して前記不揮発性メモリから読み出された読出データを取得する中央処理装置と、
前記クロック生成回路から前記中央処理装置へ至るクロックの供給経路に設けられたクロック遅延部とを備え、
前記クロック遅延部は、縦続接続された複数段のバッファを介した第1の経路と前記複数段のバッファを迂回した第2の経路とを含み、前記高周波モード時には、前記クロック生成回路からのクロックを前記第1の経路を介して前記中央処理装置に供給し、
前記クロック遅延部は、前記低周波モード時には、前記クロック生成回路からのクロックを前記第2の経路を介して前記中央処理装置に供給する、半導体装置。
【請求項2】
前記クロック遅延部は、
前記第1の経路の初段に設けられた第1の論理ゲートと、
前記第2の経路の初段に設けられた第2の論理ゲートとをさらに含み、
前記高周波モード時には、前記第1の論理ゲートは前記クロック生成回路からのクロックを通過させ、前記第2の論理ゲートは一定の論理レベルの信号を出力し、
前記低周波モード時には、前記第2の論理ゲートは前記クロック生成回路からのクロックを通過させ、前記第1の論理ゲートは一定の論理レベルの信号を出力する、請求項1に記載の半導体装置。
【請求項3】
前記半導体装置は、前記複数段のバッファおよび前記第1の論理ゲートへの電源電圧の供給経路に設けられた電源スイッチをさらに備え、
前記低周波モード時には、前記電源スイッチはオフ状態になる、請求項2に記載の半導体装置。
【請求項4】
前記半導体装置は、さらに、前記中央処理装置から書換え可能な第1および第2のレジスタを備え、
前記クロック生成回路は、前記第1のレジスタから出力された第1の制御信号の論理レベルに応じて前記低周波モードまたは前記高周波モードに切替わり、
前記第1および第2の論理ゲートは、前記第2のレジスタから出力された第2の制御信号の論理レベルに応じて、前記クロック生成回路からのクロックを通過させるか、または一定の論理レベルの信号を出力するかを切替える、請求項2に記載の半導体装置。
【請求項5】
半導体装置であって、
クロック生成回路と、
前記クロック生成回路で生成されたクロックに基づいて動作する不揮発性メモリと、
前記不揮発性メモリに接続されたデータバスと、
前記クロック生成回路で生成されたクロックに基づいて動作し、前記データバスを介して前記不揮発性メモリから読み出された読出データを取得する中央処理装置とを備え、
前記中央処理装置は、前記読出データを所定のウェイトサイクルの経過後に取得する低速読出モードと、前記読出データをノーウェイトで取得する高速読出モードとを有し、
前記半導体装置は、さらに、前記クロック生成回路から前記中央処理装置へ至るクロックの供給経路に設けられたクロック遅延部を備え、
前記クロック遅延部は、縦続接続された複数段のバッファを介した第1の経路と前記複数段のバッファを迂回した第2の経路とを含み、前記高速読出モード時には、前記クロック生成回路からのクロックを前記第1の経路を介して前記中央処理装置に供給し、
前記クロック遅延部は、前記低速読出モード時には、前記クロック生成回路からのクロックを前記第2の経路を介して前記中央処理装置に供給する、半導体装置。
【請求項6】
半導体装置であって、
動作モードとして低周波モードと高周波モードとを有し、前記高周波モード時には前記低周波モード時よりも周波数の高いクロックを生成するクロック生成回路と、
前記クロック生成回路で生成されたクロックに基づいて動作する不揮発性メモリと、
前記不揮発性メモリに接続されたデータバスと、
前記クロック生成回路で生成されたクロックに基づいて動作し、前記データバスを介して前記不揮発性メモリから読み出された読出データを取得する中央処理装置とを備え、
前記中央処理装置は、前記読出データを所定のウェイトサイクルの経過後に取得する低速読出モードと、前記読出データをノーウェイトで取得する高速読出モードとを有し、
前記半導体装置は、さらに、前記クロック生成回路から前記中央処理装置へ至るクロックの供給経路に設けられたクロック遅延部を備え、
前記クロック遅延部は、縦続接続された複数段のバッファを介した第1の経路と前記複数段のバッファを迂回した第2の経路とを含み、前記高周波モードかつ前記高速読出モードのときには、前記クロック生成回路からのクロックを前記第1の経路を介して前記中央処理装置に供給し、
前記クロック遅延部は、前記低周波モードまたは前記低速読出モードのときには、前記クロック生成回路からのクロックを前記第2の経路を介して前記中央処理装置に供給する、半導体装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate


【公開番号】特開2013−88916(P2013−88916A)
【公開日】平成25年5月13日(2013.5.13)
【国際特許分類】
【出願番号】特願2011−226972(P2011−226972)
【出願日】平成23年10月14日(2011.10.14)
【出願人】(302062931)ルネサスエレクトロニクス株式会社 (8,021)
【Fターム(参考)】