(57)【要約】【課題】スリープ状態時、クロックの周波数を下げて消費電力を低減する。【解決手段】カウンタ回路１は、内部回路の動作を停止させるスリープ信号ＳＬＰを受けて、繰り返しカウントを行う。マスク回路２は、スリープ信号ＳＬＰを受けて、常時動作内部回路３が同期して動作するためのクロックＡ１をマスクし、カウンタ回路１のカウント値が所定の値になったときのみ、マスクを解除する。これにより、スリープ状態時においては、常時動作内部回路３にはクロックＡ１が分周されたマスククロックＡ２が供給され、消費電力を低減することができる。【選択図】        図１
2004220717.tif 000002
【特許請求の範囲】
【請求項１】
クロックに同期して動作する半導体装置において、
内部回路の動作を停止させるスリープ信号を受けて、繰り返しカウントを行うカウンタ回路と、
前記スリープ信号を受けて、常時動作する内部回路が同期して動作するためのクロックをマスクし、前記カウント値が所定の値になったときのみ、前記マスクを解除するマスク回路と、
を有することを特徴とする半導体装置。
【請求項２】
前記カウンタ回路は、プログラムによってカウント値が設定されることを特徴とする請求項１記載の半導体装置。
【請求項３】
前記カウンタ回路は、プログラムによってカウント可能状態及びカウント不可能状態となることを特徴とする請求項１記載の半導体装置。
【請求項４】
割込み信号を受けると、前記カウンタ回路は、前記カウントを停止し、前記マスク回路は、前記クロックのマスクを全解除することを特徴とする請求項１記載の半導体装置。
【請求項５】
データを記憶する半導体記憶装置において、
メモリセルと、
内部回路の動作を停止させるためのスリープ信号を受けて、前記メモリセルに供給する電圧をデータの読み出し及び書き込みが可能な電圧から、データの保持のみを可能とする低電圧に切替える電圧切替え回路と、
を有することを特徴とする半導体記憶装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は半導体装置及び半導体記憶装置に関し、特にクロックに同期して動作する半導体装置及びデータを記憶する半導体記憶装置に関する。
【０００２】
【従来の技術】
現在、移動通信、マルチメディア通信などに使用されるＤＳＰやＣＰＵなどのＬＳＩは、低消費電力で、多くの演算を高速に処理することが要求される。特に携帯電話などのバッテリーで動作するものは、バッテリーライフを伸ばすために、より低消費電力であることが望まれる。
【０００３】
ＬＳＩは、論理の変化（トランジスタのオン・オフ）がなければ、極小となっていたリーク電流が、微細化の進歩によって無視できなくなってきている。また、ＬＳＩの内部回路は、高速化により、スキュウの少ないクロックが要求されるため、多くのバッファ回路が必要となっている。そのため、クロックに関する消費電力の全体を占める割合が大きくなってきている。そこで、ＬＳＩは、通常状態とスリープ状態を具備し、スリープ状態時、処理をする必要がない内部回路へのクロック供給を停止して、クロックに関する消費電力の低減を図っている（例えば、特許文献１参照）。
【０００４】
図１２は、従来の半導体装置のブロック構成図である。図に示すように、半導体装置４０は、ＰＬＬ回路４１、クロック出力部４２を有している。クロック出力部４２は、クロック制御回路４３、クロック出力回路４４を有している。
【０００５】
ＰＬＬ回路４１は、半導体装置の外部から供給される外部クロックＣＬＫを逓倍し、メインクロックＭＣＬＫを出力する。
クロック制御回路４３は、スリープ状態を指示するスリープ命令信号ＣＳＬＰＳを受け付け、スリープ信号ＱＳＬＰを出力する。スリープ命令信号ＣＳＬＰＳは、例えば、プログラムを実行する制御部が、スリープ命令を実行することによって出力される。
【０００６】
クロック出力回路４４は、メインクロックＭＣＬＫの駆動能力を高めたクロックＳＣＫを常時出力する。メインクロックＭＣＬＫは、例えば、図示していないが、バッファ回路によって、駆動能力が高められる。クロックＳＣＫは、スリープ状態においても常に動作していなければならない、例えば、外部の割込み信号などを受け付ける内部回路に供給される。
【０００７】
また、クロック出力回路４４は、通常状態では、クロックＳＣＫと同じクロックを出力するが、クロック制御回路４３からスリープ信号ＱＳＬＰが出力されると、クロックの出力を停止するスリープクロックＳＣＫＳＬＰを出力する。スリープクロックＳＣＫＳＬＰは、スリープ状態において動作する必要のない内部回路に供給される。
【０００８】
半導体装置４０が通常状態にあるときは、クロック出力回路４４からは、クロックＳＣＫ、スリープクロックＳＣＫＳＬＰが出力される。制御部が、スリープ命令を実行すると、クロック制御回路４３にスリープ命令信号ＣＳＬＰＳが出力され、クロック制御回路４３は、スリープ信号ＱＳＬＰを出力する。クロック出力回路４４は、スリープ信号ＱＳＬＰの出力によって、スリープクロックＳＣＫＳＬＰの出力を停止する。このように、スリープ状態において、動作する必要のない内部回路に供給するクロックを停止することによって、消費電力の低減を図っている。
【０００９】
また、スリープ状態に遷移するとき及び通常状態に遷移するとき、メモリでは、データの退避、復帰が行われる。このため、メモリには、スリープ状態時においてもデータを保存する必要があり、常時通常状態と同じ電圧が供給されている（例えば、特許文献２参照）。
【００１０】
【特許文献１】
特開２０００−００３２２５号公報（第６〜７頁、第４図）
【特許文献２】
特開２０００−０９３２７５号公報（第５頁、第１図）
【００１１】
【発明が解決しようとする課題】
しかし、スリープ状態時においても、動作停止できない内部回路には、通常状態時と同じ高速のクロックが供給されるため、消費電力が大きいという問題点があった。
【００１２】
また、スリープ状態に遷移するとき及び通常状態に遷移するとき、メモリでは、データの退避、復帰が行われるので、スリープ状態時においても通常状態と同じ電圧が入力されてデータが保存され、消費電力が大きいという問題点があった。
【００１３】
本発明はこのような点に鑑みてなされたものであり、スリープ状態時のクロックの周波数を下げ、消費電力を低減した半導体装置を提供することを目的とする。
【００１４】
また、本発明の他の目的は、スリープ状態時、メモリセルに供給する電圧をデータの保持のみが可能となる電圧まで下げ、消費電力を低減した半導体記憶装置を提供することである。
【００１５】
【課題を解決するための手段】
本発明では上記課題を解決するために、図１に示すような、クロックに同期して動作する半導体装置において、内部回路の動作を停止させるスリープ信号ＳＬＰを受けて、繰り返しカウントを行うカウンタ回路１と、スリープ信号ＳＬＰを受けて、常時動作する内部回路３が同期して動作するためのクロックＡ１をマスクし、カウント値が所定の値になったときのみ、マスクを解除するマスク回路２と、を有することを特徴とする半導体装置が提供される。
【００１６】
このような半導体装置によれば、マスク回路２は、スリープ信号ＳＬＰを受けて、常時動作する内部回路３が同期して動作するためのクロックＡ１をマスクし、カウンタ回路１が所定のカウント値になったときのみマスクを解除するので、スリープ状態時、常時動作する内部回路３に供給されるクロックは分周され、周波数が下がり、消費電力を低減する。
【００１７】
また、本発明では、データを記憶する半導体記憶装置において、メモリセルと、内部回路の動作を停止させるためのスリープ信号を受けて、メモリセルに供給する電圧をデータの読み出し及び書き込みが可能な電圧から、データの保持のみを可能とする低電圧に切替える電圧切替え回路と、を有することを特徴とする半導体記憶装置が提供される。
【００１８】
このような半導体記憶装置によれば、電圧切替え回路は、スリープ信号を受けて、メモリセルがデータを読み出し及び書き込み可能な電圧から、データを保持できる低電圧に切替えるので、スリープ状態時における消費電力を低減する。
【００１９】
【発明の実施の形態】
以下、本発明の実施の形態を図面を参照して説明する。図１は、本発明の半導体装置の原理図である。図に示すように、半導体装置は、カウンタ回路１、マスク回路２、及び常時動作内部回路３を有している。
【００２０】
カウンタ回路１は、図示していないが、スリープ状態時に動作する必要のない内部回路の動作を停止させるスリープ信号ＳＬＰを受けて、繰り返しカウントを行う。カウンタ回路１は、０〜ｎ（ｎ：正の整数）を繰り返しカウントする。スリープ信号ＳＬＰは、図示していないが、例えばプログラムを実行する制御部が、スリープ状態に遷移するスリープ命令を実行したとき出力される。
【００２１】
マスク回路２は、常時動作内部回路３が同期して動作するためのクロックＡ１が入力され、通常状態時（非スリープ状態）においては、クロックＡ１を常時動作内部回路３に出力する。マスク回路２は、スリープ信号ＳＬＰを受けて、クロックＡ１をマスクし、カウンタ回路１のカウント値が所定の値になったときのみ、マスクを解除したマスククロックＡ２を出力する。マスク回路２は、カウンタ回路１のカウント値がｎになったとき、マスクを解除する。
【００２２】
常時動作内部回路３は、スリープ状態時においても動作しなければならない、例えば、外部からの割込み信号などを受け付ける回路である。常時動作内部回路３は、クロックＡ１に同期して動作する。また、常時動作内部回路３は、マスク回路２によってクロックＡ１がマスクされたマスククロックＡ２に同期して動作する。
【００２３】
以下、原理図の動作について説明する。通常状態においては、常時動作内部回路３には、クロックＡ１が供給される。
通常状態からスリープ状態に遷移するとき、制御部からスリープ信号ＳＬＰが出力される。カウンタ回路１は、スリープ信号ＳＬＰを受けて、０〜ｎのカウントを繰り返し行う。
【００２４】
マスク回路２は、スリープ信号を受けて、クロックＡ１をマスクし、カウンタ回路１のカウント値がｎになったときのみ、クロックＡ１のマスクを解除したマスククロックＡ２を出力する。
【００２５】
以上から、スリープ状態時においても動作しなければならない常時動作内部回路３には、通常状態時には、クロックＡ１が供給されるが、スリープ状態時には、クロックＡ１を１／ｎ分周した、周波数の低いマスククロックＡ２が供給される。これによって、クロックの論理の変化によるリーク電流、クロックの駆動能力を高めるバッファ回路による消費電力を低減することができる。
【００２６】
次に、本発明の第１の実施の形態について説明する。図２は、第１の実施の形態に係る半導体装置のブロック構成図である。図に示す半導体装置１０は、例えば、携帯電話などに実装されるＤＳＰ、ＣＰＵなどである。半導体装置１０は、内部回路が通常のクロックよって処理を行う通常状態、及び内部回路に供給される通常のクロックを一部マスク及び停止することによって消費電力を低減するスリープ状態を有する。図に示すように、半導体装置１０は、ＰＬＬ回路１１、クロック出力部１２を有している。クロック出力部１２は、クロック制御回路１３、クロック出力回路１４を有している。
【００２７】
ＰＬＬ回路１１は、半導体装置の外部から入力される外部クロックＣＬＫが入力される。ＰＬＬ回路１１は、入力された外部クロックＣＬＫを逓倍し、メインクロックＭＣＬＫを出力する。
【００２８】
クロック制御回路１３は、スリープ状態を指示するスリープ命令信号ＣＳＬＰＳが入力され、スリープ信号ＱＳＬＰを出力する。スリープ命令信号ＣＳＬＰＳは、図示してないが、例えば、プログラムを実行する制御部から出力され、制御部が、スリープ命令のプログラムを実行することによって出力される。また、クロック制御回路１３は、半導体装置１０の外部からの割込み信号ＩＮＴ１〜ＩＮＴｎが入力される。クロック制御回路１３は、スリープ信号ＱＳＬＰを出力しているときに、割込み信号ＩＮＴ１〜ＩＮＴｎを受信すると、スリープ信号ＱＳＬＰの出力を停止する。また、クロック制御回路１３は、半導体装置１０の外部から入力されるリセット信号ＸＲＳＴが入力されると、スリープ信号ＱＳＬＰの出力を停止する。
【００２９】
クロック出力回路１４は、半導体装置１０の内部回路の設定をクリアするための分周クリア信号ＤＩＶＣＬＲを出力する。また、クロック出力回路１４は、クロック制御回路１３から出力されるスリープ信号ＱＳＬＰに応じて、スリープ状態時にメインクロックＭＣＬＫを分周した分周クロックＳＣＫＮＳＬＰを出力する。分周クロックＳＣＫＮＳＬＰは、スリープ状態時においても動作をする必要のある内部回路に供給される。例えば、外部の割込み信号を受け付ける内部回路に供給される。また、クロック出力回路１４は、クロック制御回路１３から出力されるスリープ信号ＱＳＬＰに応じて、スリープ状態を示すスリープ状態信号ＫＳＬＰを出力する。内部回路は、スリープ状態信号ＫＳＬＰによって、通常状態及びスリープ状態にあることを認識できる。また、クロック出力回路１４は、クロック制御回路１３から出力されるスリープ信号ＱＳＬＰに応じて、スリープ状態時に出力が停止されるスリープクロックＳＣＫＳＬＰを出力する。スリープクロックＳＣＫＳＬＰは、スリープ状態時に動作をする必要のない内部回路に供給される。さらに、クロック出力回路１４は、常時メインクロックＭＣＬＫと同じ周波数のクロックＳＣＫを出力する。クロックＳＣＫは、スリープ状態時においても通常状態と同じ動作をする必要のある内部回路に供給される。
【００３０】
次にクロック制御回路１３の具体的な回路について説明する。図３は、図２のクロック制御回路の回路図である。図に示すように、クロック制御回路１３は、ＮＡＮＤ回路Ｚ１、フリップフロップ（以下、ＦＦ）回路Ｚ２，Ｚ３、ＡＮＤ回路Ｚ４、及びＯＲ回路Ｚ５を有している。
【００３１】
ＮＡＮＤ回路Ｚ１には、半導体装置１０の外部から入力される割込み信号ＩＮＴ１〜ＩＮＴｎが入力される。ＮＡＮＤ回路Ｚ１は、割込み信号ＩＮＴ１〜ＩＮＴｎが全て‘Ｈ’状態のとき、‘Ｌ’状態の信号を出力する。すなわち、ＮＡＮＤ回路Ｚ１は、半導体装置に、１以上の‘Ｌ’状態の割込み信号が入力されていると、‘Ｈ’状態の信号を出力する。
【００３２】
ＦＦ回路Ｚ２は、クロックＳＣＫに同期して、ＮＡＮＤ回路Ｚ１から出力されている信号を反転し、ＡＮＤ回路Ｚ４に出力する。また、ＦＦ回路Ｚ２は、‘Ｌ’状態のリセット信号ＸＲＳＴが入力されるとリセットされ、‘Ｌ’状態の信号をＡＮＤ回路Ｚ４に出力する。
【００３３】
ＦＦ回路Ｚ３は、クロックＳＣＬに同期して、ＯＲ回路Ｚ５から出力される信号をスリープ信号ＱＳＬＰとして出力する。また、ＦＦ回路Ｚ３は、ＡＮＤ回路Ｚ４から出力される信号によってリセットされ、‘Ｌ’状態のスリープ信号ＱＳＬＰを出力する。
【００３４】
ＯＲ回路Ｚ５には、パルス信号のスリープ命令信号ＣＳＬＰＳが入力される。また、ＯＲ回路Ｚ５には、ＦＦ回路Ｚ３が出力したスリープ信号ＱＳＬＰが入力される。ＯＲ回路Ｚ５は、‘Ｈ’状態のパルス信号であるスリープ命令信号ＣＳＬＰＳが入力されると、この信号をＦＦ回路Ｚ３に出力する。ＦＦ回路Ｚ３は、クロックＳＣＬに同期して、‘Ｈ’状態のスリープ信号ＱＳＬＰを出力する。‘Ｈ’状態のスリープ信号ＱＳＬＰは、帰還されＯＲ回路Ｚ５に入力される。これにより、スリープ命令信号ＣＳＬＰＳが‘Ｌ’状態になっても、ＯＲ回路Ｚ５からは、‘Ｈ’状態の信号が出力され、ＦＦ回路Ｚ３は、‘Ｈ’状態を保持したスリープ信号ＱＳＬＰを出力する。
【００３５】
以下、図３のクロック制御回路１３の動作について説明する。
半導体装置１０の制御部が、スリープ命令のプログラムを実行せず、ＯＲ回路Ｚ５には、常時‘Ｌ’状態のスリープ命令信号ＣＳＬＰＳが入力されていたとする。これにより、ＦＦ回路Ｚ３からは、‘Ｌ’状態のスリープ信号ＱＳＬＰが出力されている。
【００３６】
制御部が、スリープ命令のプログラムを実行すると、ＯＲ回路Ｚ５には、‘Ｈ’状態のパルス信号のスリープ命令信号ＣＳＬＰＳが入力される。これにより、ＦＦ回路Ｚ３からは、‘Ｈ’状態のスリープ信号ＱＳＬＰが出力される。‘Ｈ’状態のスリープ信号ＱＳＬＰは、ＯＲ回路Ｚ５によって帰還され、ＦＦ回路Ｚ３は、常時‘Ｈ’状態のスリープ信号ＱＳＬＰを出力する。
【００３７】
半導体装置１０の外部から‘Ｌ’状態の割込み信号ＩＮＴ１〜ＩＮＴｎが１つでも入力されると、ＮＡＮＤ回路Ｚ１は、‘Ｈ’状態の信号をＦＦ回路Ｚ２に出力する。従って、ＦＦ回路Ｚ２は、‘Ｌ’状態の信号をＡＮＤ回路Ｚ４に出力する。
【００３８】
ＡＮＤ回路Ｚ４は、ＦＦ回路Ｚ２から出力された‘Ｌ’状態の信号をＦＦ回路Ｚ３に出力する。なお、リセット信号ＸＲＳＴは、‘Ｈ’状態とする（非リセット状態）。
【００３９】
ＦＦ回路Ｚ３は、ＡＮＤ回路Ｚ４から‘Ｌ’状態の信号が出力されることによりリセットされ、‘Ｌ’状態のスリープ信号ＱＳＬＰを出力する。
また、半導体装置１０に‘Ｌ’状態のリセット信号ＸＲＳＴが入力された場合、ＡＮＤ回路Ｚ４は、‘Ｌ’状態の信号をＦＦ回路Ｚ３に出力する。なお、ＮＡＮＤ回路Ｚ１には、割込み信号ＩＮＴ１〜ＩＮＴｎは入力されていないとする。
【００４０】
ＦＦ回路Ｚ３は、ＡＮＤ回路Ｚ４から‘Ｌ’状態の信号が出力されることによりリセットされ、‘Ｌ’状態のスリープ信号ＱＳＬＰを出力する。
このように、クロック制御回路１３は、制御部のスリープ命令の実行によって、スリープ命令信号ＣＳＬＰＳが入力されると、スリープ信号ＱＳＬＰを出力する（‘Ｈ’状態）。そして、クロック制御回路１３は、半導体装置１０の外部から割り込み信号ＩＮＴ１〜ＩＮＴｎが入力されると、スリープ信号ＱＳＬＰの出力を停止する（‘Ｌ’状態）。また、半導体装置１０の外部からリセット信号ＸＲＳＴが入力されると、スリープ信号ＱＳＬＰの出力を停止する。
【００４１】
次に図２のクロック出力回路１４の具体的な回路について説明する。図４は、図２のクロック出力回路の回路図である。図に示すように、クロック出力回路１４は、クロック分周回路１４ａ、ＦＦ回路Ｚ６、ＯＲ回路Ｚ７，Ｚ８、バッファ回路Ｚ９〜Ｚ１４を有している。
【００４２】
クロック分周回路１４ａには、分周値ＤＩＶＮ、オン・オフ信号ＯＮ／ＯＦＦ、スリープ信号ＱＳＬＰ、メインクロックＭＣＬＫ、及びスリープ状態信号ＫＳＬＰが入力される。クロック分周回路１４ａは、オン・オフ信号ＯＮ／ＯＦＦが‘オン’状態を示し、スリープ状態信号ＫＳＬＰがスリープ状態を示している場合、分周値ＤＩＶＮに応じた周期で‘Ｌ’状態となるマスククロックＭＡＳＫを出力する。なお、マスククロックＭＡＳＫが‘Ｌ’状態となる周期は、メインクロックＭＣＬＫの周期より大きい。また、クロック分周回路１４ａは、オン・オフ信号ＯＮ／ＯＦＦが‘オフ’状態を示し、又はスリープ状態信号ＫＳＬＰが通常状態を示している場合には、常時‘Ｌ’状態のマスククロックＭＡＳＫを出力する。また、クロック分周回路１４ａは、スリープ信号ＱＳＬＰに応じて、オン・オフ信号ＯＮ／ＯＦＦをオフ状態にし（後述詳細）、内部回路をクリアするための分周クリア信号ＤＩＶＣＬＫＲを出力する。
【００４３】
ＦＦ回路Ｚ６は、スリープ信号ＱＳＬＰ、メインクロックＭＣＬＫが入力される。ＦＦ回路Ｚ６は、スリープ信号ＱＳＬＰをメインクロックＭＣＬＫに同期させてスリープ状態信号ＫＳＬＰを出力する。
【００４４】
ＯＲ回路Ｚ７は、クロック分周回路１４ａから出力されるマスククロックＭＡＳＫとメインクロックＭＣＬＫのＯＲ演算を行い、分周クロックＳＣＫＮＳＬＰを出力する。
【００４５】
ＯＲ回路Ｚ８は、クロック分周回路１４ａから出力されるメインクロックＭＣＬＫとＦＦ回路Ｚ６から出力されるスリープ状態信号ＫＳＬＰのＯＲ演算を行い、スリープクロックＳＣＫＳＬＰを出力する。
【００４６】
バッファ回路Ｚ９〜Ｚ１４は、信号の駆動能力を高め、波形整形、雑音除去を行う。メインクロックＭＣＬＫは、バッファ回路Ｚ９、Ｚ１０によって駆動能力が高められ、クロックＳＣＫとして出力される。
【００４７】
以下、図４のクロック出力回路１４の動作について説明する。
まず、スリープ状態時の動作について説明する。クロック分周回路１４ａに、オン状態を示すオン・オフ信号ＯＮ／ＯＦＦが入力され、スリープ状態を示す‘Ｈ’状態のスリープ状態信号ＫＳＬＰが入力されたとする。
【００４８】
これにより、クロック分周回路１４ａは、分周値ＤＩＶＮに応じた周期で、‘Ｌ’状態となるマスククロックＭＡＳＫを出力する。メインクロックＭＣＬＫは、ＯＲ回路Ｚ７によって、マスククロックＭＡＳＫとＯＲ演算され、ＯＲ回路Ｚ７からは、マスククロックＭＡＳＫが‘Ｌ’状態になったときのみメインクロックＭＣＬＫが出力される。すなわち、スリープ状態では、メインクロックＭＣＬＫは、マスククロックＭＡＳＫによって一部マスクされる。そして、一部マスクされたメインクロックＭＣＬＫは、バッファ回路Ｚ１２を介し、分周クロックＳＣＫＮＳＬＰとして出力される。
【００４９】
ＦＦ回路Ｚ６は、スリープ状態を示す‘Ｈ’状態のスリープ信号ＱＳＬＰが入力されると、メインクロックＭＣＬＫに同期させて‘Ｈ’状態のスリープ状態信号ＫＳＬＰを出力する。メインクロックＭＣＬＫは、ＯＲ回路Ｚ８によって、スリープ状態信号ＫＳＬＰとＯＲ演算され、ＯＲ回路Ｚ８からは、常時‘Ｈ’状態の信号が出力される。すなわち、スリープ状態では、常時‘Ｈ’状態のスリープクロックＳＣＫＳＬＰを出力する。なお、ＦＦ回路Ｚ６は、リセット信号ＸＲＳＴが入力されるとリセットされ、‘Ｌ’状態のスリープ状態信号ＫＳＬＰを出力する。
【００５０】
次に、通常状態の動作について説明する。クロック分周回路１４ａに、オフ状態を示すオン・オフ信号ＯＮ／ＯＦＦが入力され、又は通常状態を示す‘Ｌ’状態のスリープ状態信号ＫＳＬＰが入力されたとする。
【００５１】
これにより、クロック分周回路１４ａは、常時‘Ｌ’状態のマスククロックＭＡＳＫを出力する。メインクロックＭＣＬＫは、ＯＲ回路Ｚ７によって、マスククロックＭＡＳＫとＯＲ演算され、ＯＲ回路Ｚ７からは、メインクロックＭＣＬＫが出力される。すなわち、通常状態では、メインクロックＭＣＬＫがそのままバッファ回路Ｚ１２に出力され、分周クロックＳＣＫＮＳＬＰとして出力される。
【００５２】
ＦＦ回路Ｚ６は、‘Ｌ’状態の通常状態を示すスリープ信号ＱＳＬＰが入力されると、メインクロックＭＣＬＫに同期させて‘Ｌ’状態のスリープ状態信号ＫＳＬＰを出力する。メインクロックＭＣＬＫは、ＯＲ回路Ｚ８によって、スリープ状態信号ＫＳＬＰとＯＲ演算され、ＯＲ回路Ｚ８からは、メインクロックＭＣＬＫが出力される。すなわち、通常状態では、メインクロックＭＣＬＫがそのままバッファ回路Ｚ１４に出力され、スリープクロックＳＣＫＳＬＰとして出力される。
【００５３】
このように、クロック出力回路１４は、スリープ状態時には、メインクロックＭＣＬＫを一部マスクして分周した分周クロックＳＣＫＮＳＬＰを出力する。また、スリープクロックＳＣＫＳＬＰを出力停止状態にする。通常状態時には、メインクロックＭＣＬＫと同じ周波数の分周クロックＳＣＫＮＳＬＰを出力する。また、メインクロックＭＣＬＫと同じ周波数のスリープクロックＳＣＫＳＬＰを出力する。
【００５４】
次に、図４のクロック分周回路１４ａの詳細について説明する。図５は、図４のクロック分周回路の回路図である。図に示すように、クロック分周回路１４ａは、変換器１４ａａ、カウンタ１４ａｂ、比較器１４ａｃ，１４ａｄ、減算器１４ａｅ、インバータ回路Ｚ１５、ＯＲ回路Ｚ１６，Ｚ１７、ＡＮＤ回路Ｚ１８、及びＦＦ回路Ｚ１９を有している。
【００５５】
変換器１４ａａには、分周値ＤＩＶＮが入力される。分周値ＤＩＶＮは、例えば、２ビットで示される。変換器１４ａａは、分周値ＤＩＶＮに応じて、数種類の２進数の値を出力する。例えば、変換器１４ａａは、分周値‘００’が入力されると、‘０００１１’を出力する。変換器１４ａａは、分周値‘０１’が入力されると、‘００１１１’を出力する。変換器１４ａａは、分周値‘１０’が入力されると、‘０１１１１’を出力する。変換器１４ａａは、分周値‘１１’が入力されると、‘１１１１１’を出力する。
【００５６】
カウンタ１４ａｂは、端子ＣＫ、端子Ｌ、端子ＣＬＲを有している。カウンタ１４ａｂは、端子ＣＫに入力される、ＯＲ回路Ｚ１６を介して入力されるメインクロックＭＣＬＫに同期して、２進数の数値をカウントアップする。カウンタ１４ａｂは、カウントアップする２進数の数値を比較器１４ａｃに出力する。カウンタ１４ａｂは、端子Ｌに‘Ｌ’状態の信号が入力されると、カウントアップしていた数値を‘０’にし、再びカウントアップする。カウンタ１４ａｂは、端子ＣＬＲに入力されるオン・オフ信号ＯＮ／ＯＦＦが‘Ｈ’状態（オン状態）のときのみ、カウントアップする。
【００５７】
比較器１４ａｃは、変換器１４ａａの２進数値とカウンタ１４ａｂから出力される２進数値とを比較する。比較器１４ａｃは、変換器１４ａａの２進数値とカウンタ１４ａｂから出力される２進数値とが一致したとき、‘Ｌ’状態の信号を出力する。
【００５８】
比較器１４ａｄは、減算器１４ａｅから出力される２進数値とカウンタ１４ａｂから出力される２進数値とを比較する。比較器１４ａｄは、減算器１４ａｅの２進数値とカウンタ１４ａｂから出力される２進数値とが一致したとき、‘Ｌ’状態の信号を出力する。
【００５９】
減算器１４ａｅは、変換器１４ａａの２進数値を‘１’減算し、比較器１４ａｄに出力する。すなわち、比較器１４ａｄは、変換器１４ａａの２進数値から‘１’減算した数値と、カウンタ１４ａｂから出力されるカウント値とを比較する。
【００６０】
インバータ回路Ｚ１５は、スリープ状態信号ＫＳＬＰを反転し、ＯＲ回路Ｚ１６に出力する。
ＯＲ回路Ｚ１６は、インバータ回路Ｚ１５から出力されるスリープ状態信号ＫＳＬＰとメインクロックＭＣＬＫのＯＲ演算を行い、カウンタ１４ａｂの端子ＣＫに出力する。スリープ状態を示す‘Ｈ’状態のスリープ状態信号ＫＳＬＰがインバータ回路Ｚ１５に入力されると、ＯＲ回路Ｚ１６には、反転された‘Ｌ’状態のスリープ状態信号ＫＳＬＰが入力される。よって、ＯＲ回路Ｚ１６は、メインクロックＭＣＬＫをカウンタ１４ａｂの端子ＣＫに出力する。通常状態を示す‘Ｌ’状態のスリープ状態信号ＫＳＬＰがインバータ回路Ｚ１５に入力されると、ＯＲ回路Ｚ１６には、反転された‘Ｈ’状態のスリープ状態信号ＫＳＬＰが入力される。よって、ＯＲ回路Ｚ１６は、常時‘Ｈ’状態の信号を出力する。すなわち、ＯＲ回路Ｚ１６は、スリープ状態時には、メインクロックＭＣＬＫをカウンタ１４ａｂの端子ＣＫに出力し、通常状態時には、常時‘Ｈ’状態の信号をカウンタ１４ａｂの端子ＣＫに出力する。
【００６１】
ＡＮＤ回路Ｚ１８は、スリープ状態信号ＫＳＬＰと比較器１４ａｄから出力された信号が入力され、ＡＮＤ演算を行ってＦＦ回路Ｚ１９に出力する。ＡＮＤ回路１８は、スリープ状態を示す‘Ｈ’状態のスリープ状態信号ＫＳＬＰが入力され、比較器１４ａｄから‘Ｈ’状態の信号が出力されたとき、‘Ｈ’状態の信号をＦＦ回路Ｚ１９に出力する。比較器１４ａｄから‘Ｌ’状態の信号が出力されたときは、‘Ｌ’状態の信号をＦＦ回路Ｚ１９に出力する。また、ＡＮＤ回路１８は、通常状態を示す‘Ｌ’状態のスリープ状態信号ＫＳＬＰが入力された場合は、比較器１４ａｄから出力される信号状態にかかわらず、常時‘Ｌ’状態の信号を出力する。すなわち、ＡＮＤ回路１８は、スリープ状態時には、比較器１４ａｄの比較結果に基づいた信号を出力し、通常状態時には、比較器１４ａｄの比較結果にかかわらず、常時‘Ｌ’状態の信号を出力する。
【００６２】
ＦＦ回路Ｚ１９は、ＡＮＤ回路Ｚ１８から出力される信号をメインクロックＭＣＬＫに同期してマスククロックＭＡＳＫとして出力する。ＦＦ回路Ｚ１９は、オン・オフ信号ＯＮ／ＯＦＦのオフ状態を示す信号が入力されるとリセットされ、‘Ｌ’状態のマスククロックＭＡＳＫを出力する。
【００６３】
ＯＲ回路Ｚ１７は、スリープ信号ＱＳＬＰとインバータ回路Ｚ１５によって反転されたスリープ状態信号ＫＳＬＰが入力され、ＯＲ演算を行って分周クリア信号ＤＩＶＣＬＲを出力する。スリープ状態信号ＫＳＬＰの状態遷移は、図４で示したＦＦ回路Ｚ６によって、スリープ信号ＱＳＬＰの状態遷移に遅延する。従って、ＯＲ回路Ｚ１７に入力されるスリープ信号ＱＳＬＰが、スリープ状態を示す‘Ｈ’状態から、通常状態を示す‘Ｌ’状態に遷移したとき、この状態遷移に遅れて、スリープ状態信号ＫＳＬＰは、‘Ｌ’状態から‘Ｈ’状態に遷移する。従って、ＯＲ回路Ｚ１７は、スリープ状態から通常状態に遷移するとき、１ショットの‘Ｌ’状態の分周クリア信号ＤＩＶＣＬＲを出力する。
【００６４】
以下、クロック分周回路１４ａの動作について説明する。まず、通常状態からスリープ状態に遷移した場合について説明する。
変換器１４ａａに分周値ＤＩＶＮが入力される。変換器１４ａａは、分周値ＤＩＶＮに対応した２進数値を比較器１４ａｃ、減算器１４ａｅに出力する。ここでは、上記の例に基づいて、変換器１４ａａに２進数‘１０’が入力され、５ビットの‘０１１１１’を比較器１４ａｃに出力したとする。
【００６５】
カウンタ１４ａｂ、ＦＦ回路Ｚ１９にオン状態を示す‘Ｈ’状態のオン・オフ信号ＯＮ／ＯＦＦが入力される。
ＯＲ回路Ｚ１７にスリープ状態を示す‘Ｈ’状態のスリープ信号ＱＳＬＰが入力される。インバータ回路Ｚ１５にスリープ状態を示す‘Ｈ’状態のスリープ状態信号ＫＳＬＰが入力される。従って、ＯＲ回路Ｚ１７には、‘Ｈ’状態のスリープ信号ＱＳＬＰ、‘Ｌ’状態のスリープ状態信号ＫＳＬＰが入力され、‘Ｈ’状態の分周クリア信号ＤＩＶＣＬＲが出力される。
【００６６】
ＯＲ回路Ｚ１６には、インバータ回路Ｚ１５によって反転された‘Ｌ’状態のスリープ状態信号ＫＳＬＰとメインクロックＭＣＬＫが入力される。従って、ＯＲ回路Ｚ１６からは、メインクロックＭＣＬＫが出力される。ＯＲ回路Ｚ１６から出力されたメインクロックＭＣＬＫは、カウンタ１４ａｂの端子ＣＫに入力される。
【００６７】
カウンタ１４ａｂは、端子ＣＫに入力されたメインクロックＭＣＬＫに同期して２進数値のカウントアップする。
比較器１４ａｄは、変換器１４ａａから‘１’減算した減算器１４ａｅの２進数値とカウンタ１４ａｂから出力されるカウント値を比較する。比較器１４ａｄは、減算器１４ａｅから出力される２進数値とカウンタ１４ａｂがカウントアップする数値とが一致したとき、‘Ｌ’状態の信号を出力する。すなわち、カウンタ１４ａｂが‘０’からカウントアップし、‘０１１１０’になったとき、比較器１４ａｄは、‘Ｌ’状態の信号を出力する。
【００６８】
ＡＮＤ回路Ｚ１８には、スリープ状態を示す‘Ｈ’状態のスリープ状態信号ＫＳＬＰと比較器１４ａｄから出力される信号が入力される。ＡＮＤ回路Ｚ１８は、比較器１４ａｄの比較結果が一致し、比較器１４ａｄから‘Ｌ’状態の信号が出力されたときのみ、‘Ｌ’状態の信号をＦＦ回路Ｚ１９に出力する。ＦＦ回路Ｚ１９は、メインクロックＭＣＬＫに同期して、ＡＮＤ回路Ｚ１８から出力される‘Ｌ’状態の信号をマスククロックＭＡＳＫとして出力する。
【００６９】
ここで、比較器１４ａｄが、変換器１４ａａの２進数値から‘１’を減算した値とカウンタ１４ａｂのカウンタ値を比較する理由は、比較器１４ａｄから出力される信号が、ＡＮＤ回路Ｚ１８によって、メインクロックＭＣＬＫの１クロック分遅延するためである。すなわち、カウンタ１４ａｂのカウント値が、設定された分周値ＤＩＶＮに対応する値‘０１１１１’になったとき、マスククロックＭＡＳＫが、‘Ｌ’状態となるようにするためである。
【００７０】
比較器１４ａｃは、変換器１４ａａの２進数値とカウンタ１４ａｂが出力するカウント値を比較する。比較器１４ａｃは、変換器１４ａａから出力される２進数値とカウンタ１４ａｂが出力するカウント値が一致したとき、‘Ｌ’状態の信号をカウンタ１４ａｂの端子Ｌに出力する。
【００７１】
カウンタ１４ａｂは、端子Ｌに‘Ｌ’状態の信号が入力されると、カウントアップしていた２進数値を‘０’にする。そして、カウンタ１４ａｂは、再び２進数値のカウントアップを行う。
【００７２】
次に、スリープ状態から通常状態に遷移した場合について説明する。
通常状態を示す‘Ｌ’状態のスリープ信号ＱＳＬＰがＯＲ回路Ｚ１７に入力される。また、このスリープ信号ＱＳＬＰに遅延して、インバータ回路Ｚ１５によって‘Ｈ’状態に反転されたスリープ状態信号ＫＳＬＰがＯＲ回路Ｚ１７に入力される。ＯＲ回路Ｚ１７は、１ショットの‘Ｌ’状態の分周クリア信号ＤＩＶＣＬＲを出力する。
【００７３】
ＯＲ回路Ｚ１６には、インバータ回路Ｚ１５によって、‘Ｈ’状態に反転されたスリープ状態信号ＫＳＬＰが入力される。従って、ＯＲ回路Ｚ１６は、カウンタ１４ａｂの端子ＣＫに常時‘Ｈ’状態の信号を出力する。これにより、カウンタ１４ａｂは、２進数値のカウントアップを停止する。また、カウンタ１４ａｂは、オフ状態のオン・オフ信号ＯＮ／ＯＦＦが入力され、２進数値のカウントアップを停止する。
【００７４】
ＡＮＤ回路Ｚ１８には、‘Ｌ’状態のスリープ状態信号ＫＳＬＰが入力され、ＡＮＤ回路Ｚ１８は、常時‘Ｌ’状態の信号をＦＦ回路Ｚ１９に出力する。これにより、ＦＦ回路Ｚ１９は、常時‘Ｌ’状態のマスククロックＭＡＳＫを出力する。
【００７５】
このように、クロック分周回路１４ａは、スリープ状態時には、カウンタ１４ａｂのカウント値と変換器１４ａａの値と一致するまで、一定の‘Ｈ’状態のマスククロックＭＡＳＫを出力し、カウンタ１４ａｂのカウント値と変換器１４ａａの値が一致したときのみ、‘Ｌ’状態のマスククロックＭＡＳＫを出力する。そして、カウンタ１４ａｂのカウント値は、‘０’に戻され、再びカウントアップを行い、一定の‘Ｈ’状態のマスククロックＭＡＳＫを出力する。通常状態には、カウンタ１４ａｂのカウントアップは停止し、常に‘Ｌ’状態のマスククロックＭＡＳＫを出力する。
【００７６】
図６は、信号とカウンタの状態を示した図である。図には、各信号の状態、カウンタ１４ａｂの出力、及びカウンタ１４ａｂの状態が示してある。図６に示すように、オン・オフ信号ＯＮ／ＯＦＦが‘Ｌ’（オフ状態）のとき、図５で説明したカウンタ１４ａｂは、スリープ状態信号ＫＳＬＰ、分周値ＤＩＶＮに関係なく、‘０’を出力する。すなわち、カウンタ１４ａｂは、リセット状態となる。なお、図６に示す‘−’は、どのような信号状態であってもよいことを示す。
【００７７】
図６に示すように、オン・オフ信号ＯＮ／ＯＦＦが‘Ｈ’（オン状態）、スリープ状態信号ＫＳＬＰが‘Ｌ’（通常状態）のとき、図５で説明したカウンタ１４ａｂは、カウントアップしていたカウント値‘ｘ’を保持する。
【００７８】
図６に示すように、オン・オフ信号ＯＮ／ＯＦＦが‘Ｈ’（オン状態）、スリープ状態信号ＫＳＬＰが‘Ｈ’（スリープ状態）のとき、図５で説明したカウンタ１４ａｂは、２進数値をカウントアップする。
【００７９】
図６に示すように、オン・オフ信号ＯＮ／ＯＦＦが‘Ｈ’（オン状態）、スリープ状態信号ＫＳＬＰが‘Ｈ’（スリープ状態）、図５で説明したカウンタ１４ａｂの端子Ｌが‘Ｌ’のとき、カウンタ１４ａｂは、カウント値を‘０’にする。
【００８０】
次に、分周値ＤＩＶＮ、オン・オフ信号ＯＮ／ＯＦＦを出力する回路について説明する。
半導体装置１０は、クロック出力回路１４に分周値ＤＩＶＮ、オン・オフ信号ＯＮ／ＯＦＦを出力するクロック設定回路を有する。図７は、クロック設定回路の回路図である。図に示すように、クロック設定回路１５は、アドレスデコーダ１６、ＡＮＤ回路Ｚ２０，Ｚ２１、ＦＦ回路Ｚ２２，Ｚ２３、及びＡＮＤ回路Ｚ２４を有している。
【００８１】
アドレスデコーダ１６は、制御部から出力されるアドレス信号ＡＤＲが入力される。アドレスデコーダ１６は、ＦＦ回路Ｚ２２，Ｚ２３を指定（活性化）するためのアドレス信号ＡＤＲが入力されると、‘Ｈ’状態の信号をＡＮＤ回路Ｚ２０，Ｚ２１に出力する。
【００８２】
ＡＮＤ回路Ｚ２０，Ｚ２１は、アドレスデコーダ１６から出力される信号と制御部から出力されるデータ信号ＷＤの書き込みを指示する書き込み信号ＸＩＯＷＲが入力され、ＡＮＤ演算を行ってＦＦ回路Ｚ２２，Ｚ２３に出力する。
【００８３】
ＦＦ回路Ｚ２２，Ｚ２３は、ＡＮＤ回路Ｚ２０，Ｚ２１から出力される信号に同期して、入力されるデータ信号ＷＤを、分周値ＤＩＶＮ、オン・オフ信号ＯＮ／ＯＦＦとして出力する。ＦＦ回路Ｚ２２は、リセット信号ＸＲＳＴによってリセットされ、分周値ＤＩＶＮを‘０’にする。ＦＦ回路Ｚ２３は、リセット信号ＸＲＳＴ及び分周クリア信号ＤＩＶＣＬＲによってリセットされ、オフ状態のオン・オフ信号ＯＮ／ＯＦＦを出力する。
【００８４】
ＡＮＤ回路Ｚ２４は、リセット信号ＸＲＳＴ、分周クリア信号ＤＩＶＣＬＲが入力され、ＡＮＤ演算を行って、ＦＦ回路Ｚ２２をリセットする信号を出力する。
【００８５】
以下、クロック設定回路１５の動作について説明する。制御部は、分周値ＤＩＶＮを設定するプログラムを実行すると、ＦＦ回路Ｚ２２を指定するアドレス信号ＡＤＲをアドレスデコーダ１６に出力する。アドレスデコーダ１６は、‘Ｈ’状態の信号をＡＮＤ回路Ｚ２０に出力する。次いで、制御部は、分周値ＤＩＶＮをデータ信号ＷＤとしてＦＦ回路Ｚ２２に出力する。そして、制御部は、‘Ｈ’状態の書き込み信号ＸＩＯＷＲをＡＮＤ回路Ｚ２０に出力する。ＡＮＤ回路Ｚ２０は、ＦＦ回路２２に‘Ｈ’状態の信号を出力する。
【００８６】
ＦＦ回路Ｚ２２は、ＡＮＤ回路Ｚ２０からの‘Ｈ’状態の信号を入力すると、データ信号ＷＤを分周値ＤＩＶＮとして出力する。分周値ＤＩＶＮは、図４で示したクロック分周回路１４ａの変換器１４ａａに入力され、カウンタ１４ａｂが繰り返し行うカウント値が設定される。
【００８７】
制御部がメインクロックＭＣＬＫをマスクする機能を使用するというプログラムを実行すると、ＦＦ回路Ｚ２３を指定するアドレス信号ＡＤＲをアドレスデコーダ１６に出力する。アドレスデコーダ１６は、‘Ｈ’状態の信号をＡＮＤ回路Ｚ２１に出力する。次いで、制御部は、オン・オフ信号ＯＮ／ＯＦＦをオンするためのデータをデータ信号ＷＤとしてＦＦ回路Ｚ２３に出力する。そして、制御部は、‘Ｈ’状態の書き込み信号ＸＩＯＷＲをＡＮＤ回路Ｚ２０に出力する。ＡＮＤ回路Ｚ２０は、ＦＦ回路２２に‘Ｈ’状態の信号をＦＦ回路２２に出力する。
【００８８】
ＦＦ回路Ｚ２３は、ＡＮＤ回路Ｚ２０からの‘Ｈ’状態の信号を入力すると、オン状態（‘Ｈ’状態）のオン・オフ信号ＯＮ／ＯＦＦを出力する。このオン・オフ信号ＯＮ／ＯＦＦは、図５で示したカウンタ１４ａｂに入力され、カウンタ１４ａｂは、カウント可能状態となる。
【００８９】
もちろん、オン・オフ信号ＯＮ／ＯＦＦをオフするためのデータをデータ信号ＷＤとしてＦＦ回路Ｚ２３に出力することによって、オフ状態のオン・オフ信号ＯＮ／ＯＦＦを出力することができる。このときは、カウンタ１４ａｂは、オフ状態のオン・オフ信号ＯＮ／ＯＦＦによって、カウント不可状態となる。
【００９０】
また、外部から割り込み信号ＩＮＴ１〜ＩＮＴｎが入力されると、図３で示したＦＦ回路Ｚ３は、‘Ｌ’状態のスリープ信号ＱＳＬＰを出力する。このスリープ信号ＱＳＬＰは、図５で示したＯＲ回路Ｚ１７によって、１ショットの‘Ｌ’状態の分周クリア信号ＤＩＶＣＬＲとして出力される。よって、ＡＮＤ回路Ｚ２４には、‘Ｌ’状態の分周クリア信号が入力され、オン・オフ信号ＯＮ／ＯＦＦはオフ状態にされる。
【００９１】
このように、プログラムによって、メインクロックＭＣＬＫのマスク機能を選択することができる。また、外部からの割込み信号によってもメインクロックＭＣＬＫのマスク機能は解除される。
【００９２】
次に、タイムチャートを用いて、図２〜図５，７の動作について説明する。図８，９は、半導体装置のタイムチャートの一例を示す図である。図８に示すように、半導体装置１０の制御部は、プログラムカウンタＰＣに従って、プログラムの命令を順次実行する。
【００９３】
制御部は、図８に示すように、ＤＩＶＮ命令を実行すると、‘Ｆ’（１６進数）の分周値ＤＩＶＮを出力する。分周値ＤＩＶＮは、図７で示したクロック設定回路１５から出力され、図４，５で示したクロック分周回路１４ａの変換器１４ａａに入力される。変換器１４ａａは、‘Ｆ’を２進数値に変換して、比較器１４ａｃ，減算器１４ａｅに出力する。
【００９４】
制御部は、図８に示すように、ＯＮ命令を実行すると、‘Ｈ’状態（オン状態）のオン・オフ信号ＯＮ／ＯＦＦを出力する。オン・オフ信号ＯＮ／ＯＦＦは、図７で示したクロック設定回路１５から出力され、図４，５で示したクロック分周回路１４ａに入力される。
【００９５】
制御部は、図８に示すようにインストラクションレジスタＩＲ２のＳＬＰ命令によって、‘Ｈ’状態のスリープ命令信号ＣＳＬＰＳを出力する。スリープ命令信号ＣＳＬＰＳは、図２で示したクロック制御回路１３に出力される。これにより、クロック制御回路１３は、図３で説明したように、スリープ信号ＱＳＬＰを出力する。そして、図４で説明したように、クロック出力回路１４は、スリープ状態信号ＫＳＬＰを出力する。
【００９６】
これにより、図５のカウンタ１４ａｂの端子ＣＫには、図９中で示す端子ＣＫの波形が入力され、カウンタ１４ａｂは、図９中のカウント値の波形に示すように、‘０’から‘Ｆ’までの２進数値のカウントアップを開始する。
【００９７】
比較器１４ａｄは、図５で説明したように、減算器１４ａｅの‘Ｆ’から１を減算した‘Ｅ’とカウンタ１４ａｂのカウント値を比較する。従って、比較器１４ａｄは、図９中の比較器の波形に示すように、カウント値が‘Ｅ’になる度に、‘Ｌ’状態を出力する。従って、図５で示したＦＦ回路Ｚ１９は、ＡＮＤ回路Ｚ１８による遅延によって、カウンタ１４ａｂのカウント値が‘Ｆ’となったときに、図９に示すように‘Ｌ’状態のマスククロックＭＡＳＫを出力する。
【００９８】
マスククロックＭＡＳＫは、図４で示したＯＲ回路Ｚ７に出力され、メインクロックＭＣＬＫをマスクし、図９に示すように‘Ｌ’状態になったときのみ分周クロックＳＣＫＮＳＬＰとして出力する。
【００９９】
図５で説明したように、カウンタ１４ａｂのカウント値が‘Ｆ’になると、比較器１４ａｃから‘Ｌ’状態の信号がカウンタ１４ａｂの端子Ｌに入力される。カウンタ１４ａｂは、図９中の端子Ｌの波形に示すように、‘Ｌ’状態の信号が入力されると、カウント値を‘０’にする。
【０１００】
図９に示すように、割込み信号ＩＮＴ（図３に示す割込み信号ＩＮＴ１〜ＩＮＴｎのいずれか）が入力されると、図３で説明したように、スリープ信号ＱＳＬＰは、‘Ｌ’状態となる。これにより、図８に示すように、スリープ状態信号ＫＳＬＰも‘Ｌ’状態となる。さらに、図５で説明したように、ＯＲ回路Ｚ１７からは、図９に示すような１ショットの‘Ｌ’状態の分周クリア信号ＤＩＶＣＬＲが出力される。
【０１０１】
図７で説明したように、‘Ｌ’状態の分周クリア信号ＤＩＶＣＬＲにより、クロック設定回路１５は、オフ状態のオン・オフ信号ＯＮ／ＯＦＦを出力する。これにより、図５で示したＦＦ回路Ｚ１９は、‘Ｌ’状態のマスククロックＭＡＳＫを出力する。よって、図４のＯＲ回路Ｚ７からは、図９に示すように、メインクロックＭＣＬＫが、分周クロックＳＣＫＮＳＬＰとして出力される。
【０１０２】
このように、スリープ状態時においても動作しなければならない内部回路には、メインクロックＭＣＬＫを分周して、周波数を下げた分周クロックＳＣＫＮＳＬＰを供給できるようにした。これにより、スリープ状態時、クロックの論理の変化（‘Ｈ’状態、‘Ｌ’状態の変化）によるリーク電流、クロックの駆動能力を高めるバッファ回路による消費電力の低減をすることができる。
【０１０３】
また、携帯電話などの待ち受け時間が製品の重要な要因となるシステムにおいて、有効に使用することができる。
次に、本発明の第２の実施の形態について説明する。第２の実施の形態では、半導体記憶装置のメモリセルに供給される電圧を、スリープ状態、通常状態において切替えることにより、消費電力の低減を図る。以下、本発明の半導体記憶装置をＲＡＭに適用した場合について説明する。図１０は、第２の実施の形態に係るＲＡＭのブロック構成図である。図に示すように、ＲＡＭ２１は、電圧切り替え回路２２、メモリセル２３を有している。
【０１０４】
電圧切り替え回路２２は、電源配線２４ａ、２４ｂと接続される。電源配線２４ａには、メモリセル２３が、データの保持のみを可能とする最低の電圧が印加されている。電源配線２４ｂには、メモリセル２３が、データの読み出し及び書き込みができる電圧が印加されている。電源配線２４ａの電圧＜電源配線２４ｂの電圧の関係がある。また、電圧切り替え回路２２には、スリープ信号ＳＬＰが入力される。スリープ信号ＳＬＰは、例えば、プログラムを実行する制御部から出力される。電圧切り替え回路２２は、スリープ信号ＳＬＰに応じて、電源配線２４ａ，２４ｂの電圧をメモリセル２３に出力する。
【０１０５】
メモリセル２３は、データを静的に記憶するスタティックタイプのメモリセルである。
次に、ＲＡＭ２１の動作について説明する。制御部が、例えば、スリープ状態に遷移するプログラムを実行し、スリープ状態を指示するスリープ信号ＳＬＰを出力したとする。ＲＡＭ２１の電圧切り替え回路２２は、スリープ信号ＳＬＰを受けて、電源配線２４ａの電圧をメモリセル２３に出力する。メモリセル２３は、データの保持のみが可能となる。
【０１０６】
制御部が、プログラムをスリープ状態から、通常状態に遷移するプログラムを実行し、スリープ信号ＳＬＰを解除したとする。電圧切り替え回路２２は、スリープ信号ＳＬＰの解除を受けて、電源配線２４ｂの電圧をメモリセル２３に出力する。メモリセル２３は、データの読み出し及び書き込みが可能となる。
【０１０７】
このように、通常状態では、メモリセル２３のデータの読み出し及び書き込みができる電圧を供給し、スリープ状態では、メモリセル２３にデータアクセスがないので、データが消滅しない範囲で電圧を下げることにより、メモリセル２３による消費電力を低減することができる。
【０１０８】
なお、電圧切り替え回路２２は、ＲＡＭ２１内に形成しているが、ＲＡＭ２１の外部に設けるようにしてもよい。
また、ＲＡＭ２１を第１の実施の形態で説明した半導体装置１０と同一基板上に構成するようにしてもよい。これにより、より消費電力の低減を図ることができる。
【０１０９】
次に、本発明の第３の実施の形態について説明する。第３の実施の形態では、第２の実施の形態のメモリセルがバンク構造であり、バンクごとに供給する電圧を切替えるところが異なる。図１１は、第３の実施の形態に係るＲＡＭのブロック構成図である。図に示すように、ＲＡＭ３１は、電圧切り替え回路３２ａ，３２ｂ，…、メモリセル３３ａ，３３ｂ，…，アドレスバス３４ａ，データバス３４ｂを有している。
【０１１０】
電圧切り替え回路３２ａ，３２ｂ，…は、電源配線３５ａ、３５ｂと接続される。電源配線３５ａには、メモリセル３３ａ，３３ｂ，…が、データの保持のみを可能とする最低の電圧が印加されている。電源配線３５ｂには、メモリセル３３ａ，３３ｂ，…が、データの読み出し及び書き込みができる電圧が印加されている。電源配線３５ａの電圧＜電源配線３５ｂの電圧の関係がある。また、電圧切り替え回路３２ａ，３２ｂ，…には、スリープ信号ＳＬＰ１，ＳＬＰ２，…が入力される。スリープ信号ＳＬＰ１，ＳＬＰ２，…は、例えば、プログラムを実行する制御部から出力される。電圧切り替え回路３２ａ，３２ｂ，…は、スリープ信号ＳＬＰ１，ＳＬＰ２，…に応じて、電源配線３５ａ，３５ｂの電圧をメモリセル３３ａ，３３ｂ，…に出力する。
【０１１１】
メモリセル３３ａ，３３ｂ，…は、バンク構造となっており、所定領域のアドレスが対応するようアドレスバス３４ａが接続され、さらにデータバス３４ｂが接続されている。メモリセル３３ａ，３３ｂ，…は、データを静的に記憶するスタティックタイプのメモリセルである。
【０１１２】
次に、ＲＡＭ３１の動作について説明する。なお、スリープ状態時においても実行されるプログラムが、メモリセル３３ａに記憶されているとする。
制御部が、例えば、スリープ状態に遷移するプログラムを実行し、スリープ状態を指示するスリープ信号ＳＬＰ２，…を出力したとする。なお、メモリセル３３ａには、スリープ状態時においても実行されるプログラムが記憶されているので、制御部は、電圧切り替え回路３２ａには、スリープ信号ＳＬＰ１を出力しない。
【０１１３】
これにより、電圧切り替え回路３２ａは、電源配線３５ｂの電圧をメモリセル３３ａに出力する。メモリセル３３ａは、データの読み出し及び書き込みが可能となる。電圧切替え回路３２ｂ，…は、スリープ信号ＳＬＰ２，…を受けて、電源配線３５ａの電圧をメモリセル３３ｂ，…に出力する。メモリセル３３ｂ，…は、データの保持のみが可能となる。
【０１１４】
制御部が、プログラムをスリープ状態から、通常状態に遷移するプログラムを実行し、スリープ信号ＳＬＰ２，…を解除したとする。電圧切替え回路３２ｂ，…は、スリープ信号ＳＬＰ２，…の解除を受けて、電源配線３５ｂの電圧をメモリセル３３ｂ，…に出力する。メモリセル３３ｂ，…は、データの読み出し及び書き込みが可能となる。
【０１１５】
このように、バンク構造となっているメモリセル３３ａ，３３ｂ，…毎に、供給する電圧を切替えることにより、スリープ状態においても、必要なプログラムにアクセス可能とすることができる。そして、必要なプログラムが記憶されていない他のメモリセルは、データが消滅しない範囲で電圧を下げることにより、消費電力を低減することができる。
【０１１６】
なお、電圧切り替え回路３２ａ，３２ｂ…は、ＲＡＭ３１内に形成しているが、ＲＡＭ３１の外部に設けるようにしてもよい。
また、ＲＡＭ３１を第１の実施の形態で説明した半導体装置１０と同一基板上に構成するようにしてもよい。これにより、より消費電力の低減を図ることができる。
【０１１７】
（付記１）  クロックに同期して動作する半導体装置において、
内部回路の動作を停止させるスリープ信号を受けて、繰り返しカウントを行うカウンタ回路と、
前記スリープ信号を受けて、常時動作する内部回路が同期して動作するためのクロックをマスクし、前記カウント値が所定の値になったときのみ、前記マスクを解除するマスク回路と、
を有することを特徴とする半導体装置。
【０１１８】
（付記２）  前記カウンタ回路は、プログラムによってカウント値が設定されることを特徴とする付記１記載の半導体装置。
（付記３）  前記カウンタ回路は、プログラムによってカウント可能状態及びカウント不可能状態となることを特徴とする付記１記載の半導体装置。
【０１１９】
（付記４）  割込み信号を受けると、前記カウンタ回路は、前記カウントを停止し、前記マスク回路は、前記クロックのマスクを全解除することを特徴とする付記１記載の半導体装置。
【０１２０】
（付記５）  データを記憶する半導体記憶装置において、
メモリセルと、
内部回路の動作を停止させるためのスリープ信号を受けて、前記メモリセルに供給する電圧をデータの読み出し及び書き込みが可能な電圧から、データの保持のみを可能とする低電圧に切替える電圧切替え回路と、
を有することを特徴とする半導体記憶装置。
【０１２１】
（付記６）  前記メモリセルは、バンク構造であり、バンクごとに前記スリープ信号を受けることを特徴とする付記５記載の半導体記憶装置。
（付記７）  前記メモリセルは、データを静的に記憶するスタティックタイプであることを特徴とする付記５記載の半導体記憶装置。
【０１２２】
（付記８）  クロックに同期して動作する半導体装置において、
内部回路の動作を停止させるスリープ信号を受けて、繰り返しカウントを行うカウンタ回路と、
前記スリープ信号を受けて、常時動作する内部回路が同期して動作するためのクロックをマスクし、前記カウント値が所定の値になったときのみ、前記マスクを解除するマスク回路と、
メモリセルと、
前記スリープ信号を受けて、前記メモリセルに供給する電圧をデータの読み出し及び書き込みが可能な電圧から、データの保持のみを可能とする低電圧に切替える電圧切替え回路と、
を有することを特徴とする半導体装置。
【０１２３】
【発明の効果】
以上説明したように本発明では、内部回路の動作を停止させるスリープ信号を受けて、常時動作する内部回路が同期して動作するためのクロックをマスクし、繰り返しカウントを行うカウンタ回路のカウント値が所定の値になったときのみマスクを解除するようにした。これにより、スリープ状態時において、常時動作する内部回路に供給されるクロックは分周され周波数が下がるので、消費電力を低減することができる。
【０１２４】
また、本発明では、内部回路の動作を停止させるスリープ信号を受けて、メモリセルに供給される電圧を、データの読み出し及び書き込み可能な電圧から、データの保持のみを可能とする低電圧に切替えるようにしたので、スリープ状態時において、消費電力を低減することができる。
【図面の簡単な説明】
【図１】本発明の半導体装置の原理図である。
【図２】第１の実施の形態に係る半導体装置のブロック構成図である。
【図３】図２のクロック制御回路の回路図である。
【図４】図２のクロック出力回路の回路図である。
【図５】図４のクロック分周回路の回路図である。
【図６】信号とカウンタの状態を示した図である。
【図７】クロック設定回路の回路図である。
【図８】半導体装置のタイムチャートを示す図である。
【図９】半導体装置のタイムチャートを示す図である。
【図１０】第２の実施の形態に係るＲＡＭのブロック構成図である。
【図１１】第３の実施の形態に係るＲＡＭのブロック構成図である。
【図１２】従来の半導体装置のブロック構成図である。
【符号の説明】
１  カウンタ回路
２  マスク回路
３  常時動作内部回路
１０  半導体装置
１３  クロック制御回路
１４  クロック出力回路
１４ａ  クロック分周回路
１４ａａ  変換器
１４ａｂ  カウンタ
１４ａｃ，１４ａｄ  比較器
１４ａｅ  減算器
２１，３１  ＲＡＭ
２２，３２ａ，３２ｂ，…  電圧切替え回路
２３，３３ａ，３３ｂ，…  メモリセル
【図１】
2004220717.tif 000003
【図２】
2004220717.tif 000004
【図３】
2004220717.tif 000005
【図４】
2004220717.tif 000006
【図５】
2004220717.tif 000007
【図６】
2004220717.tif 000008
【図７】
2004220717.tif 000009
【図８】
2004220717.tif 000010
【図９】
2004220717.tif 000011
【図１０】
2004220717.tif 000012
【図１１】
2004220717.tif 000013
【図１２】
2004220717.tif 000014