(57)【要約】【課題】消費電力の低減が可能な半導体装置を提供する。【解決手段】ＣＰＵを搭載する半導体装置において、キャッシュメモリへのアクセス頻度を監視し、アクセス頻度が均一である場合はＣＰＵへの電源電圧の供給を遮断し、アクセス頻度が不均一である場合は時間差を置いてキャッシュメモリ内のメモリへの電源電圧の供給を遮断し、最終的にＣＰＵへの電源電圧の供給を遮断することができる。また、ダーティービットの判定に基づき効率の良いライトバック処理を行うことで、半導体装置の一層の省電力化を図れる。【選択図】図１
2013250962.tif 000002
【特許請求の範囲】
【請求項１】
ダーティービットを複数含むキャッシュメモリ、及び演算回路を備えるＣＰＵと、
制御回路を備える電源管理回路と、
記憶装置と、を有し、
前記電源管理回路は、前記ＣＰＵへの電源電圧の供給、又は供給の遮断を行い、
前記ダーティービットは、前記キャッシュメモリに格納されている第１のデータと、前記記憶装置に格納されている第２のデータとの一致あるいは不一致を示し、
前記演算回路は、前記キャッシュメモリへのアクセス頻度を監視し、
前記制御回路は、前記ＣＰＵへの前記電源電圧の供給の遮断を開始するタイミング、又は遮断を終了するタイミングを決定することを特徴とする半導体装置。
【請求項２】
請求項１において、
前記電源管理回路は、前記キャッシュメモリ内のメモリへの前記電源電圧の供給、又は供給の遮断を行うことを特徴とする半導体装置。
【請求項３】
請求項１又は請求項２において、
前記電源管理回路は、前記演算回路及び前記制御回路からの出力に基づいて、設定値を設定する設定レジスタを備えることを特徴とする半導体装置。
【請求項４】
請求項１乃至請求項３のいずれか一項において、
前記ＣＰＵへの前記電源電圧の供給を遮断する前に、
前記ダーティービットが、前記第１のデータと前記第２のデータとが一致しないことを示した場合、前記記憶装置には前記第１のデータが格納され、
前記ダーティービットが、前記第１のデータと前記第２のデータとが一致することを示した場合、前記記憶装置には前記第２のデータが格納されることを特徴とする半導体装置。
【請求項５】
請求項１乃至請求項４のいずれか一項において、
前記ダーティービットは、前記キャッシュメモリに格納されている前記第１のデータと、前記キャッシュメモリに格納されている第３のデータとの一致あるいは不一致を示すことを特徴とする半導体装置。
【請求項６】
請求項１乃至請求項５のいずれか一項において、
前記キャッシュメモリは、前記第１のデータの有効あるいは無効を示すためのバリッドビットを複数含むことを特徴とする半導体装置。
【請求項７】
請求項６において、
前記バリッドビットが、前記第１のデータの無効を示し、
且つ前記ダーティービットが、前記第１のデータと前記第２のデータとが一致しないことを示した場合、前記記憶装置には前記第１のデータが格納されることを特徴とする半導体装置。
【請求項８】
請求項１乃至請求項７のいずれか一項において、
前記ＣＰＵは不揮発性ラッチを備えることを特徴とする半導体装置。
【請求項９】
請求項１乃至請求項８のいずれか一項において、
前記制御回路は、前記ＣＰＵへの前記電源電圧の供給を遮断する期間を設定するタイマ回路を備えることを特徴とする半導体装置。
【請求項１０】
請求項１乃至請求項９のいずれか一項において、
オペレーティングシステムによって管理されるタスクを、前記ＣＰＵが実行していないときに、前記ＣＰＵへの前記電源電圧の供給を遮断することを特徴とする半導体装置。
【請求項１１】
請求項１乃至請求項１０のいずれか一項において、
前記キャッシュメモリは、ｎ−ｗａｙセットアソシエイティブ方式のキャッシュメモリであることを特徴とする半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体装置に関する。特に、ＣＰＵへの電源電圧の供給を遮断する事で、消費電力を削減させた半導体装置に関する。
【０００２】
なお、本明細書中において半導体装置とは、半導体特性を利用することで機能しうる装置全般を指し、電気光学装置、半導体回路および電子機器は全て半導体装置である。
【背景技術】
【０００３】
現在のコンピュータは、ほとんどがストアドプログラム方式を用いるノイマン型コンピュータである。ストアドプログラム方式は、演算処理に必要なデータをＣＰＵ外部の記憶装置に格納し、該データを順次読み出す方式である。そのため、演算処理性能の向上には、ＣＰＵ自体の高速化に加えて、ＣＰＵとＣＰＵ外部の記憶装置との間で、該データのロード及びストアの高速化が求められている。
【０００４】
ＣＰＵと、ＣＰＵ外部の記憶装置との間に生じる速度差を埋め、データ処理の高速化を図るために、キャッシュメモリが利用されている。例えば、ＣＰＵの近くに配置され、ＣＰＵに読み出される頻度の高いデータを格納する高速なキャッシュメモリと、ＣＰＵから離れて配置され、記憶容量の大きな記憶装置とを階層的に設置する事により、ＣＰＵのアクセス速度を高められる。
【０００５】
キャッシュメモリを階層的に複数設置する事も可能である。ＣＰＵに近い階層のキャッシュメモリから順に１次キャッシュ（一例として、小容量１６〜６４ＫＢ）、２次キャッシュ（一例として、中容量２５６〜５１２ＫＢ）、３次キャッシュ（一例として、大容量１〜８ＭＢ）等と呼ばれる。ＣＰＵに近い階層程、小容量、高速なキャッシュメモリを用いる。ＣＰＵ外部の記憶装置もまた、主記憶装置、補助記憶装置等、階層的に設置されることが多い。
【０００６】
キャッシュメモリには、ＣＰＵの演算処理に必要な全てのデータを格納することはできない。必要なデータがキャッシュメモリに存在する場合はキャッシュヒット、存在しない場合はキャッシュミスと呼ばれる。キャッシュミス時は、ＣＰＵ外部の記憶装置から必要なデータを取得する必要がある。また、キャッシュメモリのデータが更新されていれば、ＣＰＵ外部の記憶装置に更新データを書き戻す必要がある。キャッシュメモリの書き換え対象となるラインを決定する方式として、キャッシュメモリに格納された時刻が最も古いラインを選択するＦＩＦＯ（Ｆｉｒｓｔ  ｉｎ  Ｆｉｒｓｔ  ｏｕｔ）方式、アクセスされた時刻が最も古いラインを選択するＬＲＵ（Ｌｅａｓｔ  Ｒｅｃｅｎｔｌｙ  Ｕｓｅｄ）方式等が挙げられる。
【０００７】
また、ＣＰＵの演算処理により得られた更新データの制御方式として、ライトスルー方式、ライトバック方式、等が挙げられる。ライトスルー方式は、更新データをキャッシュメモリ及び主記憶装置に同時に格納する。従って、キャッシュミス時に、更新データを格納したラインが書き換え対象のラインとなった場合、更新データを主記憶装置に書き戻さなくても良い。
【０００８】
一方ライトバック方式は、更新データを一旦キャッシュメモリにのみ格納する。従って、キャッシュミス時に、更新データを格納したラインが書き換え対象のラインとなった場合、更新データをキャッシュメモリから主記憶装置に書き戻す必要がある。ライトバック方式を採用することで、主記憶装置へのアクセス頻度を低減することができ、データ処理の高速化が図れるが、一定期間、キャッシュメモリと主記憶装置との間でデータの一致（データのコヒーレンシ）が取れない。データのコヒーレンシを維持するためには、キャッシュメモリに搭載されるダーティービットを利用することができる。
【０００９】
特許文献１では、ＣＰＵがアイドル状態に入る直前にライトバック処理を行い、ライトバック処理後にアイドル処理を行うことにより、データのコヒーレンシを保ちながら、ＣＰＵの消費電力を低減させている。
【００１０】
特許文献２では、ダーティーテーブルメモリが溢れた時のみ、ダーティービットをスキャンして、ライトバック処理を行うことにより、キャッシュデータ全体におけるダーティーデータの割合が高い場合において、処理時間を低減させている。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開２００２−１０８７０２号公報
【特許文献２】特開２００８−３０５３０５号公報
【発明の概要】
【発明が解決しようとする課題】
【００１２】
一定期間、ＣＰＵへの電源電圧の供給を完全に遮断することで、ＣＰＵを搭載する半導体装置の消費電力を抑制することができる。しかし、遮断と同時に、キャッシュメモリに格納されているデータの内容は消失する。タイミングを考慮せず、例えばキャッシュメモリへのアクセスが頻繁に行われている状態において、パワーゲーティングを行えば、キャッシュメモリの性能低下が顕著になる。
【００１３】
特許文献１では、ＣＰＵのアイドル状態への移行を利用する事で、キャッシュメモリの性能低下を軽減しているが、ＣＰＵは、新たなタスクの発生に備えて、アイドル状態中も一定の電力を消費している。
【００１４】
即ち、ＣＰＵを搭載する半導体装置の信頼性を損なうことなく、ＣＰＵへの電源電圧の供給を完全に遮断することは、非常に難しい。
【００１５】
また、電源電圧の遮断直前にキャッシュメモリに格納されているデータの退避処理、電源電圧の再供給後にキャッシュメモリに新たに格納されるデータの復帰処理の高速化、及び高効率化も求められる。
【００１６】
そこで、消費電力の低減が可能な半導体装置を提供することを課題の一つとする。
【００１７】
また、キャッシュメモリの性能低下を軽減しつつ、電力消耗を抑制する半導体装置を提供することを課題の一つとする。
【００１８】
また、効率の良いデータ退避及びデータ復帰を行うことを課題の一つとする。
【課題を解決するための手段】
【００１９】
キャッシュメモリへのアクセス頻度を、ＣＰＵ内の演算回路で監視し、監視結果に基づいて、電源管理回路により、ＣＰＵへの電源電圧の供給を断つ。また、電源管理回路はキャッシュメモリ内のメモリへの電源電圧の供給を断つこともできる。
【００２０】
ＣＰＵへの電源電圧の供給の遮断は、ＣＰＵがアイドル状態に移行するタイミング、キャッシュメモリへのアクセスが無いタイミングで行われても良い。
【００２１】
また、電源電圧の供給を必要としないキャッシュメモリ内のメモリから電源電圧の供給の遮断が行われ、最終的にＣＰＵへの電源電圧の供給の遮断が行われても良い。
【００２２】
また、ＣＰＵからのアクセス頻度が低いキャッシュメモリ内のメモリから電源電圧の供給の遮断が行われ、最終的にＣＰＵへの電源電圧の供給の遮断が行われても良い。
【００２３】
本明細書で開示する本発明の一態様は、ダーティービットを複数含むキャッシュメモリ、及び演算回路を備えるＣＰＵと、制御回路を備える電源管理回路と、記憶装置と、を有し、電源管理回路は、ＣＰＵへの電源電圧の供給、又は供給の遮断を行い、ダーティービットは、キャッシュメモリに格納されている第１のデータと、記憶装置に格納されている第２のデータとの一致あるいは不一致を示し、演算回路は、キャッシュメモリへのアクセス頻度を監視し、制御回路は、ＣＰＵへの電源電圧の供給の遮断を開始するタイミング又は、遮断を終了するタイミングを決定することを特徴とする半導体装置である。
【００２４】
電源管理回路は、演算回路及び制御回路からの出力に基づいて、設定値を設定する設定レジスタを備えていても良い。
【００２５】
また、ＣＰＵへの電源電圧の供給を遮断する前に、ダーティービットが、第１のデータと第２のデータとが一致しない事を示した場合、記憶装置には第１のデータが格納され、ダーティービットが、第１のデータと第２のデータとが一致する事を示した場合、記憶装置には第２のデータが格納される。即ち、キャッシュメモリ内の変更されたデータに対してのみライトバック処理が行われる。
【００２６】
また、ダーティービットは、キャッシュメモリに格納されている第１のデータと、キャッシュメモリに格納されている第３のデータとの一致あるいは不一致を示すことも可能である。
【００２７】
また、キャッシュメモリは、第１のデータの有効あるいは無効を示すためのバリッドビットを複数含んでいても良い。バリッドビットが、第１のデータの無効を示し、且つ、ダーティービットが、第１のデータと第２のデータとが一致しない事を示した場合、記憶装置には第１のデータが格納される。
【００２８】
また、ＣＰＵは不揮発性ラッチを備えていても良い。
【００２９】
また、制御回路は、ＣＰＵへの電源電圧の供給を遮断する期間を設定するタイマ回路を備えていても良い。
【００３０】
また、オペレーティングシステムによって管理されるタスクを、ＣＰＵが実行していないときに、ＣＰＵへの電源電圧の供給を遮断することが好ましい。
【００３１】
また、キャッシュメモリ内のメモリは、複数のセットに分離されるｎ−ｗａｙセットアソシエイティブ方式のキャッシュメモリであっても良い。
【００３２】
また、キャッシュメモリは、ダイレクトマップ方式、フルアソシアティブ方式等を用いても良い。
【００３３】
なお、本明細書におけるライトバック処理とは、あるラインにおいてライトバック処理を行うことを意味するものとする。
【００３４】
また、本明細書におけるライトバック判定処理とは、ライトバック処理が必要なラインを判定し、該ラインに対してのみライトバック処理を行うことを意味するものとする。
【００３５】
また、本明細書におけるタスクとは、ＣＰＵが実行する処理の実行単位を意味するものとする。例えば、ＣＰＵが実行する命令を複数まとめて、意味のある命令群とみなしたものを意味するものとする。
【発明の効果】
【００３６】
本発明の一態様によれば、キャッシュメモリへのアクセス頻度を監視し、アクセス頻度が均一である場合はＣＰＵへの電源電圧の供給を遮断し、アクセス頻度が不均一である場合は時間差を置いてメモリへの電源電圧の供給を遮断し、最終的にＣＰＵへの電源電圧の供給を遮断することができる。従って、キャッシュメモリの性能低下、及び半導体装置の信頼性低下を軽減させつつ、半導体装置の電力消耗を抑制できる。更に、ダーティービットの判定に基づき効率の良いライトバック処理を行うことで、半導体装置の一層の省電力化を図れる。
【図面の簡単な説明】
【００３７】
【図１】本発明の一態様に係わる半導体装置を説明する図。
【図２】本発明の一態様に係わる半導体装置を説明する図。
【図３】実行できるタスクが存在しない場合のフローチャートを説明する図。
【図４】ライトバック判定処理のフローチャートを説明する図。
【図５】実行できるタスクが存在する場合のフローチャートを説明する図。
【図６】メモリセルの構成を示す回路図。
【図７】メモリセルの構成を示す回路図。
【図８】本発明の一態様に係わる不揮発性レジスタを示す回路図。
【図９】本発明の一態様に係わる不揮発性レジスタの動作を示すタイミングチャート。
【図１０】本発明の一態様に係わる不揮発性レジスタを示す回路図。
【図１１】本発明の一態様に係わる不揮発性レジスタの動作を示すタイミングチャート。
【図１２】本発明の一態様に係わるキャッシュメモリ及び記憶装置を示す回路図。
【図１３】電子機器の一例を示す図。
【図１４】電源管理回路の動作の一例を示す図。
【発明を実施するための形態】
【００３８】
実施の形態について、図面を用いて詳細に説明する。但し、本発明は以下の説明に限定されず、本発明の趣旨及びその範囲から逸脱することなくその形態及び詳細を様々に変更し得ることは当業者であれば容易に理解される。従って、本発明は以下に示す実施の形態の記載内容に限定して解釈されるものではない。なお、以下に説明する発明の構成において、同一部分又は同様な機能を有する部分には同一の符号を異なる図面間で共通して用い、その繰り返しの説明は省略する。
【００３９】
（実施の形態１）
本実施の形態では、一例としてｎ−ｗａｙセットアソシエイティブ方式のキャッシュメモリを適用した半導体装置の構成について図１を用いて説明する。該半導体装置は、キャッシュメモリへのアクセス頻度を監視し、監視結果に基づいてキャッシュメモリの状態を考慮しながら、電源管理回路によってＣＰＵへの電源電圧の供給を遮断することが可能である。また、キャッシュメモリに搭載されているダーティービットの判定を利用することで、処理時間を短縮した高効率なライトバック処理を行うことが可能である。
【００４０】
半導体装置１００は、ＣＰＵ１０１と、記憶装置１１０と、電源管理回路１０７とを有する。ＣＰＵ１０１には、キャッシュメモリ１０４と、レジスタ１０５と、演算回路１０６とが備えられている。記憶装置１１０には、主記憶装置１０２と、補助記憶装置１０３とが備えられている。電源管理回路１０７には、設定レジスタ１０８と、制御回路１０９とが備えられている。
【００４１】
ＣＰＵ１０１の演算処理等に必要なデータは、レジスタ１０５、キャッシュメモリ１０４、記憶装置１１０、のいずれかに格納されている。ｎ−ｗａｙセットアソシエイティブ方式のキャッシュメモリは、複数のセットを有し、各セットは、複数のラインを有する。
【００４２】
ライトバック処理の際、キャッシュメモリ１０４のあるラインに格納されているデータは、直接記憶装置１１０に退避させても良いし、他のセット又は他のラインに退避させた後、記憶装置１１０に退避させても良い。
【００４３】
ＣＰＵ１０１は、キャッシュメモリ１０４、及びレジスタ１０５に格納されている命令（データ）を読み出し、該当する処理（演算処理等）を、演算回路１０６により実行する。
【００４４】
演算回路１０６は、キャッシュメモリ１０４、レジスタ１０５及び設定レジスタ１０８へのデータの格納、又該データの読み出しを行う。更に、演算回路１０６は、キャッシュメモリ１０４へのアクセス頻度を監視し、監視結果に基づく設定値を、設定レジスタ１０８へと出力する。監視結果とは、例えばメモリへのアクセス頻度が均一であるか不均一であるか、キャッシュメモリの使用頻度の高低を含む履歴、等を指す。
【００４５】
なお、演算回路１０６の構成は特に限定されない。演算回路１０６は、キャッシュメモリ１０４を常にモニタするモニタ回路を備えていても良い。
【００４６】
なお、ＣＰＵ１０１は、データがキャッシュメモリ１０４に存在しない場合には、主記憶装置１０２、補助記憶装置１０３、の順にアクセスし、該記憶装置に格納されているデータを取得することが可能である。
【００４７】
電源管理回路１０７は、設定レジスタ１０８に書き込まれた設定値に基づいて、ＣＰＵ１０１への電源電圧１１１の供給、又は供給の遮断を行う。また、キャッシュメモリ１０４内のメモリへの電源電圧１１１の供給、又は供給の遮断を行うこともできる。なお、キャッシュメモリ内のメモリへの電源電圧の供給の遮断は、使用頻度、アクセス頻度の低いメモリ、電源電圧が供給される必要のないメモリに対して行うことが可能である。詳細については後述する。
【００４８】
設定レジスタ１０８は、電源管理回路１０７の動作を制御する。動作を制御するための設定値は、演算回路１０６及び制御回路１０９によって設定され、設定レジスタ１０８に書き込まれている。設定値は、キャッシュメモリへのアクセス頻度に応じて設定されている。なお、電源管理回路の動作は、設定値により様々なパターンで制御可能である。本実施の形態では、電源管理回路の動作として具体例として３つのパターンに分けて説明する。１つ目のパターンとして、キャッシュメモリへのアクセスが無い、又はキャッシュメモリ内の各セット又は各ラインへのアクセス頻度に差が無い場合、電源管理回路は、即座にＣＰＵへの電源電圧の供給の遮断を行う。２つ目のパターンとして、アクセス頻度に差が有る場合、電源管理回路は、キャッシュメモリ内のセットの中で、最もアクセス頻度の高いセットを除いたセットに対して、同時に電源電圧の供給の遮断を行い、最終的に、ＣＰＵへの電源電圧の供給の遮断を行う。３つ目のパターンとして、アクセス頻度に差が有る場合、電源管理回路は、アクセス頻度の低いキャッシュメモリ内のセットから、順番に電源電圧の供給の遮断を行い、最終的に、ＣＰＵへの電源電圧の供給の遮断を行う。詳細については後述する。
【００４９】
なお、設定レジスタに書き込まれた設定値はこれらに限定されず、ＣＰＵの状態、キャッシュメモリの使用頻度及びアクセス頻度、キャッシュメモリのサイズ、アプリケーションの有無等により、自由に設定変更可能である。
【００５０】
制御回路１０９は、ＣＰＵ１０１及びキャッシュメモリ１０４内のメモリへの電源電圧１１１の供給、及び供給の遮断を行うタイミング、キャッシュメモリ１０４内のどのメモリから電源電圧１１１の供給を遮断するか、遮断する期間の長さ、等を決定し、設定値を設定レジスタ１０８へと出力する。
【００５１】
なお、電源管理回路１０７に電源電圧１１１を供給する手段は特に限定されない。公知のＡＣアダプタや、バッテリー等を用いても良い。
【００５２】
なお、ＣＰＵ１０１及びキャッシュメモリ１０４内のメモリへの電源電圧の供給、及び供給の遮断を行うタイミング特に限定されない。
【００５３】
なお、遮断する期間の長さは、特に限定されない。基本プログラムに含まれるタスクのスケージューリング機能により算出されても良い。ＣＰＵの演算処理性能に影響がないように算出されることが好ましい。遮断する期間の長さが長い程、半導体装置の省電力化が図れる。
【００５４】
なお、制御回路１０９は、遮断期間を計測する機能を有している。計測機能は特に限定されない。計測機能は、タイマ回路であっても良い。
【００５５】
また、制御回路１０９は、新たなタスクの存在を判定する機能を有する回路等により制御されても良い。例えば、該回路により新たなタスクの存在が確認されなかった場合、電源電圧の供給を遮断し、該回路により新たなタスクの存在が確認された場合、電源電圧を再供給する、等の制御を行っても良い。
【００５６】
なお、新たなタスクの存在を判定する機能を有する回路の一例として、周辺機器からの割り込み信号を検出する回路が挙げられる。該回路は、キーボード、ポインティングデバイス、タッチパネルなどの入力装置が操作された場合に、入力装置が生成する割り込み信号を検出する。
【００５７】
記憶装置１１０は、主記憶装置１０２、補助記憶装置１０３が階層的に配置されている。キャッシュメモリ１０４と記憶装置１１０との間ではデータのコヒーレンシ維持のために、定期的に相互アクセスが行われている。なお、本発明の一態様においてＣＰＵへの電源電圧の供給遮断直前にキャッシュメモリ１０４に格納されていたデータは、ＣＰＵへの電源電圧の供給遮断直後には記憶装置１１０に格納されている。
【００５８】
レジスタ１０５は、即時利用される演算結果を、一時的に記憶する。また、演算処理に必要なデータのアドレスや、周辺機器の動作状態等を記憶する。レジスタ１０５には、ＣＰＵへのアクセス速度が高速な半導体メモリを用いる事が好ましい。更に、レジスタ１０５には、ＣＰＵへの電源電圧の供給を遮断してもデータが保持される不揮発性メモリを用いる事が好ましい。ＣＰＵへの電源電圧の供給遮断直前に保持されたデータを用いて、再供給後も演算処理の続きを再開できるためである。
【００５９】
具体的には、不揮発性のラッチ、不揮発性のレジスタ等が挙げられる。不揮発性のラッチ、及び、不揮発性のレジスタの構成としては、公知の構成が適用できる（実施の形態５を参酌）。一例として、不揮発性のラッチ、及び、不揮発性のレジスタにおけるトランジスタに酸化物半導体を用いることができる。
【００６０】
キャッシュメモリ１０４は、ＣＰＵ１０１が実行するプログラム、演算処理に必要なデータ等の一部を一時的に記憶する。キャッシュメモリ１０４は、ＣＰＵ１０１から高速にアクセスできるように配置されることが好ましい。また、ＣＰＵへのアクセス速度が高速な半導体メモリを用いる事が好ましい。具体的には、フリップフロップ回路によって構成されるＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等が挙げられる（実施の形態３を参酌）。
【００６１】
主記憶装置１０２は、演算回路１０６等で使用するプログラムやデータ等の一部を一時的に格納する。主記憶装置１０２は、キャッシュメモリ１０４に比べて容量が大きく、揮発性メモリを用いる事が好ましい。具体的には、ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＭＲＡＭ（Ｍａｇｎｅｔｏｒｅｓｉｓｔｉｖｅ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等が挙げられる（実施の形態３を参酌）。
【００６２】
補助記憶装置１０３は、主記憶装置１０２に比べて容量が大きく、長期間データを保存することが可能な不揮発性のメモリを用いることが好ましい。具体的には、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）、フレキシブルディスクドライブ、光ディスクドライブ等が挙げられる。なお、補助記憶装置１０３から主記憶装置１０２へのプログラムやデータ等の格納は、ＣＰＵ１０１が実行する基本プログラム（ＯＳ：Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）によって管理されている。
【００６３】
次に、図１４の模式図を用いて、電源管理回路の動作について説明する。電源管理回路の動作の具体例を３つのパターンに分けて説明する。上述のように、本発明の一態様に係る半導体装置は、キャッシュメモリへのアクセス頻度を監視し、監視結果に基づいてキャッシュメモリの状態を考慮しながら、電源管理回路によってＣＰＵへの電源電圧の供給を遮断することが可能である。また、電源管理回路によってキャッシュメモリ内のメモリへの電源電圧の供給を遮断することが可能である。
【００６４】
図１４において、キャッシュメモリは、４−ｗａｙセットアソシエイティブ方式であり、４個のセット（セット（１）〜セット（４））を有する。各セットは、４個のライン（ｌｉｎｅ（１）〜ｌｉｎｅ（４））を含む。
【００６５】
ＣＰＵ内の演算回路は、キャッシュメモリへのアクセス頻度を監視することができる。具体的には、図１４に示す４−ｗａｙセットアソシエイティブ方式の場合、４個のセットにおけるアクセス頻度、４個のラインにおけるアクセス頻度を監視することができる。
【００６６】
図１４（Ａ）は、４個のセット（セット（１）〜セット（４））に対して同時に、電源電圧の供給の遮断を行った場合を示している。この場合、電源管理回路は、ＣＰＵとキャッシュメモリへの電源電圧の供給の遮断を同時に行っている。
【００６７】
ＣＰＵにとって実行すべきタスクが無い、またＣＰＵがアイドル状態に移行する、等のようにキャッシュメモリへのアクセスが無い場合は、４個のセットに対して同時に、電源電圧の供給の遮断を行うことが好ましい。
【００６８】
更に、４個のセットに対してアクセス頻度が均一である場合等も、４個のセットに対して同時に、電源電圧の供給の遮断を行うことが好ましい。
【００６９】
図１４（Ｂ）は、セット（１）、セット（３）、セット（４）に対して同時に、電源電圧の供給の遮断を行った場合を示している。４個のセットそれぞれに対して、アクセス頻度が不均一である場合であり、且つアクセス頻度が最も高いセットを特定できる場合は、このように、アクセス頻度が最も高いセット（２）を除いたセット（１）、セット（３）、セット（４）に対して、同時に電源電圧の供給の遮断を行い、最終的に、ＣＰＵへの電源電圧の供給の遮断を行うことが好ましい。なお、ＣＰＵからのセット（２）に対するアクセス頻度が、セット（１）、セット（３）、セット（４）に対するアクセス頻度よりも際だって高い時に、電源管理回路の動作をこのように制御する事が好ましい。
【００７０】
図１４（Ｂ）のように、ＣＰＵからのアクセス頻度が最も高いセット（２）を抽出し、セット（２）を稼働させることで、キャッシュメモリの性能低下を低減できる。なお、セット（２）の駆動時間は、キャッシュメモリの性能が維持できる程度であることが好ましい。
【００７１】
この場合、ＣＰＵへの電源電圧の供給を遮断するまでの間、少なくとも４個のセット全てを稼働させるよりは、ＣＰＵの消費電力を低減させた状態で、演算処理を行う事ができる。また、ＣＰＵからのアクセス頻度が最も高いセット（２）を稼働させることで、キャッシュメモリの性能低下を軽減しつつ電力消耗を抑制することができる。
【００７２】
また、データ退避については、セット（１）、セット（３）、セット（４）に対して行われる電源電圧の供給の遮断直前に、これらのセットのデータを、記憶装置に退避させる。その後、セット（２）を暫く稼働させた後、セット（２）に対して行われる電源電圧の供給の遮断直前に、セット（２）のデータを、記憶装置に退避させる。
【００７３】
図１４（Ｃ）は、ＣＰＵからのアクセス頻度が低いセット、又電源電圧が供給される必要の無いセットから順番に、電源電圧の供給の遮断を行った場合を示している。勿論この場合も、４個のセットそれぞれに対して、アクセス頻度が不均一である。
【００７４】
まず、キャッシュメモリ内でＣＰＵからのアクセス頻度が最も低いセット（２）の中の、アクセス頻度が最も高いｌｉｎｅ（４）に格納されているデータを、同じキャッシュメモリ内のセット（１）のｌｉｎｅ（４）に、一旦退避させる。この場合、セット（１）のｌｉｎｅ（４）に格納されているデータよりも、セット（２）のｌｉｎｅ（４）に格納されているデータの方が、ＣＰＵからのアクセス頻度が高いことが好ましい。
【００７５】
その後、セット（２）に対して電源電圧の供給の遮断を行う。
【００７６】
次いで、アクセス頻度がセット（２）よりも高いセット（４）の中の、アクセス頻度が最も高いｌｉｎｅ（２）に格納されているデータを、同じキャッシュメモリ内のセット（１）のｌｉｎｅ（２）に、一旦退避させる。この場合、セット（１）のｌｉｎｅ（２）に格納されているデータよりも、セット（４）のｌｉｎｅ（２）に格納されているデータの方が、ＣＰＵからのアクセス頻度が高いことが好ましい。
【００７７】
その後、セット（４）に対して電源電圧の供給の遮断を行う。
【００７８】
次いで、アクセス頻度がセット（４）よりも高いセット（３）の中の、アクセス頻度が最も高いｌｉｎｅ（３）に格納されているデータを、同じキャッシュメモリ内のセット（１）のｌｉｎｅ（３）に、一旦退避させる。この場合、セット（１）のｌｉｎｅ（３）に格納されているデータよりも、セット（３）のｌｉｎｅ（３）に格納されているデータの方が、ＣＰＵからのアクセス頻度が高いことが好ましい。
【００７９】
その後、セット（３）に対して電源電圧の供給の遮断を行う。
【００８０】
図１４（Ｃ）のように、ＣＰＵからのアクセス頻度が最も高いセット（１）を抽出し、更に、セット（１）のラインよりもアクセス頻度の高いラインを、セット（２）、セット（３）、セット（４）のラインから探し出し、該ラインに格納されているデータを一旦、セット（１）に退避させることで、セット（１）のアクセス頻度を高めることができる。
【００８１】
更に、セット（１）を除いたセット（２）、セット（３）、セット（４）に対して電源電圧の供給の遮断を行って休止させ、セット（１）を暫く稼働させることで、キャッシュメモリの性能を最大限に引き出しながら、半導体装置の消費電力を低減することができる。
【００８２】
その後、セット（１）を暫く稼働させた後、セット（１）に対して行われる電源電圧の供給の遮断直前に、セット（１）のデータを、記憶装置に退避させる。なお、該セット（１）の駆動時間は、キャッシュメモリの性能が維持できる程度であることが好ましい。
【００８３】
このように、キャッシュメモリ１０４のあるセットのあるラインに格納されているデータを、他のセットの対応するラインに一旦退避させた後、最終的に記憶装置に退避させても良い。
【００８４】
図１４（Ｃ）では、ＣＰＵへの電源電圧の供給の遮断を行うまで、最も使用頻度の高いセットに対して電源電圧の供給の遮断を行わないため、キャッシュメモリへのアクセス効率を高めながら、電力消耗を抑制できる。
【００８５】
図２に、本発明の一態様に係るキャッシュメモリ１０４の構成の一例を示す。
【００８６】
また、本実施の形態では一例として、キャッシュメモリ１０４は、ｎ−ｗａｙセットアソシエイティブ方式を用いているが、ダイレクトマップ方式、フルアソシアティブ方式等を用いても良い。ｎ−ｗａｙセットアソシエイティブ方式は、あるアドレスのデータを格納するセットとしてｎ（ｎは２以上の自然数）個のセット、ラインとしてｓ（ｓは２以上の自然数）個のラインを候補とする方式である。
【００８７】
キャッシュメモリ１０４は、ｎ個のセット２０４を有する。セット２０４は、ｓ個のライン（ｌｉｎｅ（１）〜ｌｉｎｅ（ｓ））を含む。各ライン２００は、バリッドビット２０１と、ダーティービット２０２と、を含むフラグ領域２０７と、データ領域２０３と、タグ領域２０５と、を有する。
【００８８】
データ領域２０３は、プログラム及び演算処理等に必要なデータを記憶する領域である。例えば、主記憶装置（又は補助記憶装置）のあるアドレスに格納されているデータを該アドレスに対応するラインのデータ領域に格納する場合、該ラインのデータ領域に格納されているデータと、該アドレスに格納されているデータとが一致する。
【００８９】
タグ領域２０５は、データ領域２０３に格納されたデータに対応するアドレスを記憶する。
【００９０】
フラグ領域２０７は、少なくともバリッドビット２０１と、ダーティービット２０２とを含み、ライン２００のデータ領域２０３に格納されたデータの属性を示す領域である。
【００９１】
バリッドビット２０１は、ライン２００のデータ領域２０３に格納されたデータが有効であるか、無効であるかを示す。
【００９２】
本明細書において、バリッドビット２０１のデータがデータＡ（一例として、”０”）であるときは、ライン２００のデータ領域２０３に格納されたデータが無効である事を意味する。例えば、ＣＰＵ１０１外部の記憶装置のあるアドレスのデータを、対応するライン２００のデータ領域２０３に格納する前の状態等を示す。バリッドビット２０１のデータがデータＡであるラインからデータを読み出すと、キャッシュミスになる。
【００９３】
本明細書において、バリッドビット２０１のデータがデータＢ（一例として、”１”）であるときは、ライン２００のデータ領域２０３に格納されたデータが有効である事を意味する。即ちバリッドビット２０１のデータがデータＢであるラインのデータ領域２０３に格納されたデータとＣＰＵ１０１が要求したアドレスとが一致すると、キャッシュヒットになる。この場合、ＣＰＵ１０１は該ラインのデータ領域２０３に格納されたデータを用いて演算処理を進めることができる。
【００９４】
なお、本発明の一態様に係る半導体装置１００において、ＣＰＵ１０１への電源電圧の供給が再開した際に、全バリッドビットのデータをデータＡに設定する。（実施の形態２を参酌。）一例として、バリッドビットをリセット付のラッチとし、ＣＰＵへの電源電圧の供給が再開した際に、全バリッドビットをリセットする構成としてもよい。該構成とすることで、後述するように、ＣＰＵの演算処理の再開を高速に行い、ＣＰＵへの電源電圧の供給を遮断する期間をより長期間とすることも可能である。
【００９５】
また、バリッドビット２０１は、不揮発性記憶装置とすることが好ましい。
【００９６】
ダーティービット２０２は、ライン２００のデータ領域２０３に格納されたデータが変更されているか、変更されていないかを示す。すなわち、該ラインに格納されているデータと、主記憶装置の該ラインに対応するアドレスに格納されているデータとが異なるか、一致するかを示す。なお、本明細書においては、バリッドビットのデータがデータＢの時に限り、ダーティービット２０２の判定を可能とする。即ち、バリッドビットのデータがデータＢ且つダーティービットのデータがデータＣに設定されている場合、該ラインのデータは変更されている、バリッドビットのデータがデータＢ且つダーティービットのデータがデータＤに設定されている場合、該ラインのデータは変更されていない。
【００９７】
本明細書において、ダーティービット２０２のデータがデータＣ（一例として、”１”）に設定されているとは、ライン２００のデータ領域２０３に、ＣＰＵ１０１外部の記憶装置からデータを格納した後に、該データが変更されていることを示す。即ち、データ領域２０３に格納されたデータと、外部の記憶装置の対応するアドレスのデータとが一致しないことを示す。
【００９８】
ダーティービット２０２のデータがデータＤ（一例として、”０”）に設定されているとは、ライン２００のデータ領域２０３に、ＣＰＵ１０１外部の記憶装置からデータを格納した後に、該データが変更されていないことを示す。即ち、データ領域２０３に格納されたデータと、外部の記憶装置の対応するアドレスのデータとが一致することを示す。
【００９９】
図３に、半導体装置１００において、ＣＰＵ１０１に供給する電源電圧の遮断を行う場合のフローチャートを示す。
【０１００】
本発明の一態様においては、ＣＰＵ１０１への電源電圧の供給を遮断する直前に効率の良いデータ退避を行い、電源再供給後のデータの自己復帰に要する処理時間を短縮することで、ＣＰＵへの電源電圧の供給を遮断する期間をより長期間とし、半導体装置１００の消費電力を抑制することができる。
【０１０１】
ＣＰＵ１０１への電源電圧の供給を遮断するタイミングは特に限定されないが、基本的には実行できるタスクが存在しないタイミングで行われる事が好ましい。
【０１０２】
ステップ３１において、実行できるタスクが存在するか否かの判定が行われる。ステップ３１は、ＣＰＵ１０１が実行する基本プログラム（ＯＳ：Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）によって管理される構成が好ましい。より具体的には、実行できるタスクが存在するか否かは、基本プログラムに含まれるタスクのスケージューリング機能により管理する。なお、実行できるタスクが存在しないとは、一定期間、実行すべきタスクが存在しないことも含む。この判定において、実行できるタスクが存在する（Ｙｅｓ）と判定された場合は、ステップ３２へと進みタスクが実行される。実行できるタスクが存在しない（Ｎｏ）と判定された場合は、ステップ３３へと進む。
【０１０３】
ステップ３２において、ＣＰＵ１０１は、タスクを実行する。該タスクが終了した後は、ステップ３１に戻る。
【０１０４】
ステップ３３において、ＣＰＵ１０１への電源電圧の供給を遮断する直前にキャッシュメモリ１０４のライトバック処理を行う。ステップ３３は、ＣＰＵ１０１がライトバック処理を行うための専用命令で実行する構成とすることが好ましい。
【０１０５】
ＣＰＵ１０１への電源電圧の供給を遮断する際、ＣＰＵ１０１内部のキャッシュメモリ１０４のデータと、外部の主記憶装置１０２又は補助記憶装置１０３のデータとのコヒーレンシ維持処理が必要である。ステップ３３におけるライトバック処理によって、キャッシュメモリ１０４のデータと外部の主記憶装置１０２又は補助記憶装置１０３のデータとを一致させることができる。
【０１０６】
ステップ３４において、ライトバック処理後にＣＰＵ１０１への電源電圧の供給を遮断する。なお、レジスタ１０５が不揮発性レジスタであれば、ＣＰＵへの電源電圧の供給を遮断しても、レジスタ１０５に格納されているデータは保存されたままである。
【０１０７】
ステップ３４の処理は、電源管理回路１０７により実行される。具体的には、制御回路１０９及び演算回路１０６によって決められ、設定レジスタ１０８に書き込まれた設定値に従って、電源管理回路１０７の動作は制御され、電源管理回路１０７はステップ３４の処理を行う。
【０１０８】
ステップ３５において、ＣＰＵ１０１への電源電圧の供給を再開する。ステップ３５の処理もまた、ステップ３４の処理と同様に、電源管理回路１０７により実行される。
【０１０９】
上記のように、実行できるタスクが存在しない期間にＣＰＵ１０１に供給される電源を遮断することによって、ＣＰＵ１０１の演算性能を低下させることなく半導体装置１００の消費電力を削減できる。
【０１１０】
ステップ３５の後は、ステップ３１に戻る。
【０１１１】
ステップ３５においてＣＰＵへの電源電圧の供給を再開した直後に、全バリッドビットのデータを一括してデータＡに設定する（実施の形態２を参酌）。該設定により、ＣＰＵへの電源電圧の供給が再開し、ＣＰＵが演算処理を再開する時に、全バリッドビットのデータがデータＡになる。ＣＰＵ内部のレジスタ１０５（不揮発性レジスタ又はパイプラインを構成するフリップフロップ等）には、ＣＰＵへの電源電圧の供給を遮断する直前におけるデータが格納されているため、続きの命令から実行する事が可能である。全バリッドビットのデータがデータＡに設定されているため、ＣＰＵへの電源電圧の供給を再開した直後は、キャッシュミスを頻発することになる。しかし、電源電圧の供給再開直後に実行する演算処理に必要な命令及びデータを順にキャッシュメモリに格納しながら、演算処理を再開できる。従って、キャッシュメモリ全体のデータを全て復帰させてから演算処理を再開する場合と比べて、実効的な処理時間が短く且つ効率的である。
【０１１２】
なお、ステップ３４からステップ３５までの期間、即ちＣＰＵ１０１への電源電圧の供給を遮断する期間の長さは、半導体装置１００に搭載される、タイマ回路により設定されても良い。ステップ３４の実行と同時に、タイマ回路により、一定期間を計測した後、ステップ３５へと進むこともできる。
【０１１３】
ステップ３５は、ステップ３４の後に新たなタスクが発生した場合であっても実行することができる。なお、制御回路１０９により、ステップ３４の後に発生した新たなタスクの存在を確認することができる。
【０１１４】
上述したフローチャートによれば、ＣＰＵへの電源電圧の供給を遮断する期間をより長期間とする事ができる。従って、半導体装置の電力消耗を抑制できる。また、ＣＰＵが実行するタスクが存在しない期間に、電源電圧を遮断することによって、ＣＰＵが実行する演算処理の正味の演算速度を低下させることなく半導体装置の消費電力を削減できる。
【０１１５】
図４に、ＣＰＵ１０１への電源電圧の供給を遮断する直前のライトバック判定処理のフローチャートを示す。効率の良いデータ退避を行うことで、半導体装置の消費電力を削減することができる。
【０１１６】
ステップ４０において、ライトバック判定処理を開始する。
【０１１７】
ステップ４１において、まず、最初の１ライン分のダーティービット及びバリッドビットの読み出しを行う。バリッドビットのデータがデータＢの場合（データ領域に格納されたデータが有効である場合）、ステップ４２へと進む。バリッドビットのデータがデータＢであるラインに対してのみ、ダーティービットのデータがデータＣであるかデータＤであるかの判定が行われる。バリッドビットのデータがデータＡの場合、バリッドビットのデータがデータＡであるラインに格納されているデータは、無効であるため、ステップ４２に進まずに、次のラインの判定、即ち再びステップ４１へと進む。ステップ４１は、ＣＰＵ１０１の専用命令で実行する構成とすることが好ましい。
【０１１８】
ステップ４２において、ダーティービットの論理状態（例えば、”１”を示していればデータＣ、”０”を示していればデータＤ等）からダーティービットのデータがデータＣであるかデータＤであるかの判定を行う。
【０１１９】
上記ステップ４２の判別において、ダーティービットがデータＣであると判断された場合には、該ラインのデータ領域に格納されたデータが変更されていることを意味する。従って、ステップ４３において、該ラインのデータ領域に格納されたデータを、ＣＰＵ外部の記憶装置（例えば主記憶装置１０２又は補助記憶装置１０３等）の対応するアドレスに格納する。すなわち、該ラインのライトバック処理を行う。ステップ４２は、ＣＰＵ１０１の専用命令で実行する構成とすることが好ましい。
【０１２０】
なお、バリッドビットを不揮発性メモリとし、各ラインのバリッドビットのデータをデータＡに設定することが好ましい。バリッドビットのデータをデータＡに設定する事で、上述したように、ＣＰＵへの電源電圧の供給を再開した際、ＣＰＵの演算処理の再開の高速化が図れる。なお、バリッドビットのデータをデータＡに設定する処理は、ステップ４１の後、ステップ４２の後、ステップ４３の後など、適宜実行することができる。
【０１２１】
上記ステップ４２の判定において、ダーティービットがデータＤであると判断された場合には、該ラインのデータ領域に格納されたデータが変更されていないことを意味する。従って、ステップ４４の判定へと進む。
【０１２２】
ステップ４４において、全てのラインについてライトバック判定処理が完了したか否かの判定を行う。
【０１２３】
上記ステップ４４の判定において、ライトバック判定処理が完了していないラインがある（Ｎｏ）と判断された場合には、上記ステップ４１の判定に戻る。
【０１２４】
また、上記ステップ４４の判定において、全てのラインについてライトバック判定処理が完了した（Ｙｅｓ）と判断された場合には、ステップ４５へと進む。即ち、全ラインのライトバック判定処理が終了する。
【０１２５】
ステップ４５において、全てのラインについてライトバック判定処理が完了した後、ＣＰＵへの電源電圧の供給を遮断する。
【０１２６】
即ち、ダーティービットのデータがデータＣであるラインのデータ領域に格納されていたデータのみライトバック処理を行うため、全てのラインのデータ領域に格納されていたデータのライトバック処理を行う場合と比べて効率的である。ＣＰＵへの電源電圧の供給を遮断する直前のデータ退避に要する処理時間を短縮することにより、遮断期間をより長期間とすることができる。従って半導体装置の消費電力を低減できる。
【０１２７】
また、ダーティービットのデータがデータＤであるラインのデータ領域に格納されていたデータについては、ＣＰＵ外部の記憶装置の対応するアドレスに同じデータが残っていることを意味する。従って、ＣＰＵへの電源電圧の供給を遮断する直前に、キャッシュメモリに格納されたデータと、ＣＰＵ外部の記憶装置に格納されたデータとの間のコヒーレンシを維持できている。即ち、ＣＰＵへの電源電圧の供給を再開した後も演算処理の連続性を保つ事が可能である。
【０１２８】
図５に、半導体装置１００においてタスクが実行されている場合の、フローチャートを示す。
【０１２９】
ステップ５０１において、ＣＰＵから、あるアドレスに対する読み出し、又は書き込みが要求される。
【０１３０】
ステップ５０２の判定において、該アドレスのデータがキャッシュメモリ１０４上にあるか否かの判定を行う。具体的には、該アドレスに対応するラインのタグ領域に格納されたタグデータが読み出され、該アドレスのデータと該タグデータとの比較を行う。
【０１３１】
ステップ５０２の判別において、該アドレスのデータがキャッシュメモリ１０４上にある（Ｙｅｓ）と判断された場合には、ステップ５０３の判別へと進む。具体的には、該アドレスのデータと該タグデータとが一致する場合である。
【０１３２】
ステップ５０３の判定において、読み出しか書き込みかの判定を行う。
【０１３３】
ステップ５０３の判別において、読み出しであると判断された場合には、ステップ５０４へと進み、ステップ５０４において、キャッシュメモリ１０４上のデータがＣＰＵに渡される。具体的には、該ラインのデータ領域に格納されたデータが読み出され、ＣＰＵが該データを取得する。その後、ステップ５０７へと進む。ステップ５０７においてＣＰＵからの要求待ち状態になる。
【０１３４】
また、ステップ５０３の判別において、書き込みであると判断された場合には、ステップ５０５へと進み、ステップ５０５において、キャッシュメモリ１０４上のデータをＣＰＵから受け取ったデータに変更する。具体的には、ＣＰＵから取得したデータを該ラインのデータ領域に格納する。
【０１３５】
ステップ５０６において、該ラインに対してダーティービットをセットする。
【０１３６】
その後、ステップ５０７へと進み、ステップ５０７においてＣＰＵからの要求待ち状態になる。
【０１３７】
また、上記ステップ５０２の判定において、該アドレスのデータがキャッシュメモリ１０４上に無い（Ｎｏ）と判断された場合には、ステップ５０８の判定へと進む。
【０１３８】
ステップ５０８において、ＣＰＵ外部の記憶装置の対応するアドレスに格納されているデータと入れ替えを行うキャッシュメモリ１０４のラインの選択が行われる。そして、該ラインはダーティか否かの判定を行う。具体的には、ダーティービットにより判定を行う。
【０１３９】
ステップ５０９の判定において、該ラインはダーティである（Ｙｅｓ）と判断された場合には、ステップ５１０へと進む。
【０１４０】
ステップ５１０において、該ラインのデータをＣＰＵ外部の記憶装置の対応するアドレスに書き戻す。該ラインのデータが、該記憶装置に書き戻される。
【０１４１】
ステップ５０９の判定において、該ラインはダーティではない（Ｎｏ）と判断された場合には、ステップ５１１へと進む。
【０１４２】
ステップ５１１において、ＣＰＵ外部の記憶装置の対応するアドレスにおけるデータがキャッシュメモリ１０４の該ラインに格納する分だけ読み出され、該ラインに書き込まれる。
【０１４３】
その後、上記ステップ５０３の判定へと進む。
【０１４４】
なお、本実施の形態は、本明細書で示す他の実施の形態と適宜組み合わせることができる。
【０１４５】
（実施の形態２）
実施の形態１で示したように、本発明の一態様における半導体装置においては、ＣＰＵへの電源電圧の供給が再開した際に、全バリッドビットのデータをデータＡに設定する。このようなバリッドビットの処理によって、ＣＰＵへの電源電圧の供給を再開した直後は、キャッシュミスを頻発することになる。しかし、ＣＰＵへの電源電圧の供給再開直後に実行する演算処理に必要な命令及びデータを順にキャッシュメモリに格納しながら、演算処理を再開できる。そのため、キャッシュメモリ全体のデータを全て復帰させてから演算処理を再開する場合と比べて、ＣＰＵの演算処理の再開を高速に行うことができる。ＣＰＵが演算処理を再開するために要する処理時間を短縮することで、電源電圧の供給を遮断する期間をより長くし、半導体装置の消費電力を低減できる。
【０１４６】
本実施の形態では、全バリッドビットのデータをデータＡに設定することが可能であり、且つその処理を高速に行うことが可能なバリッドビットの構成の一例について図６を用いて説明する。
【０１４７】
図６（Ａ）は、本実施の形態におけるキャッシュメモリのバリッドビットのメモリセルの構成を示す回路図である。図６（Ａ）において、メモリセルは、電源線３０５、グランド線３０６、書き込み時のワード線３０４、読み出し時のワード線３０７、書き込み時のデータ線３０１、書き込み時のデータ線３０２、読み出し時のデータ線３０３と、Ｎチャネル型トランジスタ３０８、Ｎチャネル型トランジスタ３０９、Ｎチャネル型トランジスタ３１０、Ｎチャネル型トランジスタ３１２、Ｎチャネル型トランジスタ３１４Ａ、インバータ回路３１３を有する。
【０１４８】
図６（Ａ）では、Ｎチャネル型トランジスタ３１２のゲート電極が形成するノードをノード３１１Ａと記す。
【０１４９】
Ｎチャネル型トランジスタ３１４Ａのゲート電極は、配線３１５Ａと電気的に接続され、一方の電極はグランド線３０６と電気的に接続され、他方の電極はノード３１１Ｂと電気的に接続されている。配線３１５Ａは、バリッドビットのメモリセルを制御することができる。なお、各ラインは１ビットのバリッドビットを有し、該ラインのデータがデータＢ（ここでは”１”）であれば、データ領域に格納されたデータが有効であり、データＡ（ここでは”０”）であればデータ領域に格納されたデータが無効であるとする。バリッドビットのデータをデータＡに設定する処理を行っている間、Ｎチャネル型トランジスタ３１４Ａはオン状態となり、メモリセルのデータは”０”となる。
【０１５０】
図６（Ａ）に示すように、キャッシュメモリにおける全てのバリッドビットのメモリセルに、Ｎチャネル型トランジスタ３１４Ａを設ける事で、全てのバリッドビットのデータをを同時にデータＡに設定することが可能となる。具体的には、Ｎチャネル型トランジスタ３１４Ａのゲート電極と電気的に接続されている配線３１５Ａによってメモリセルのデータを制御する事で、全てのバリッドビットのメモリセルのデータを同時に”０”とする事ができる。従って、バリッドビットのデータをデータＡに設定する処理を同時に、且つ高速に行うことで、電源再供給後のデータの自己復帰に要する処理時間を短縮することができる。
【０１５１】
図６（Ａ）ではＮチャネル型トランジスタ３１４Ａを用いたが、図６（Ｂ）に示すようにＰチャネル型トランジスタ３１４Ｂを、各メモリセルに付加する構成を用いても良い。
【０１５２】
なお、図６（Ａ）及び図６（Ｂ）に示すメモリセルに用いられるトランジスタに、酸化物半導体を用いても良い。
【０１５３】
また、バリッドビットを不揮発性記憶装置としても良い。
【０１５４】
なお、図７（Ａ）に示すように、Ｎチャネル型トランジスタ３１４ＡをＳＲＡＭのメモリセルに設けて、全バリッドビットのデータをデータＡに設定する処理を行うことも可能である。又、図７（Ｂ）に示すように、Ｐチャネル型トランジスタ３１４ＢをＳＲＡＭのメモリセルに設けて、全バリッドビットのデータをデータＡに設定する処理を行うことも可能である。
【０１５５】
なお、本実施の形態は、本明細書で示す他の実施の形態と適宜組み合わせることができる。
【０１５６】
（実施の形態３）
本実施の形態では、実施の形態１で示したキャッシュメモリの構成の一例について図１２（Ａ）を用いて説明する。具体的には、フリップフロップ回路を記憶部に用いたＳＲＡＭで、キャッシュメモリを構成した一例について説明する。また、実施の形態１で示したＣＰＵ外部の記憶装置（例えば主記憶装置等）の構成の一例について図１２（Ｂ）を用いて説明する。具体的には、ＤＲＡＭで、ＣＰＵ外部の記憶装置を構成した一例について説明する。
【０１５７】
なお、携帯電話、スマートフォン、電子書籍などの携帯情報端末機器において、画像データ等の一時記憶には、ＳＲＡＭまたはＤＲＡＭが使用されることが多い。本発明の一態様における半導体装置において、キャッシュメモリには、よりアクセス速度が高速なＳＲＡＭを用いることが好ましい。また、主記憶装置には、より大容量なＤＲＡＭを用いることが好ましい。
【０１５８】
図１２（Ａ）は、実施の形態１におけるキャッシュメモリが備えるメモリセル８００を示している。メモリセル８００は、Ｎチャネル型トランジスタ８０１、Ｎチャネル型トランジスタ８０２、Ｐチャネル型トランジスタ８０３、Ｐチャネル型トランジスタ８０４、Ｎチャネル型トランジスタ８０５、Ｎチャネル型トランジスタ８０６、の６個のトランジスタを有する。また、電源線８０７、グランド線８０８、ワード線８０９、データ線８１０、データ線８１１、ノード８１２、ノード８１３を有する。
【０１５９】
Ｐチャネル型トランジスタ８０３とＮチャネル型トランジスタ８０５は、インバータ回路８１４を構成している。また、Ｐチャネル型トランジスタ８０４とＮチャネル型トランジスタ８０６は、インバータ回路８１５を構成している。メモリセル８００は、２個の対になるこれらのインバータ回路によってフリップフロップ回路８１６を構成している。フリップフロップ回路８１６は、’Ｈ’（ｈｉｇｈ）と、’Ｌ’（ｌｏｗ）の２状態を対応させて安定状態を保ち１ビットの情報（データ等の記憶内容）を、一時的に記憶することができる。
【０１６０】
Ｐチャネル型トランジスタ８０３のソース端子又はドレイン端子の一方の端子は、電源線８０７と電気的に接続されている。Ｐチャネル型トランジスタ８０４のソース端子又はドレイン端子の一方の端子は、電源線８０７と電気的に接続されている。Ｎチャネル型トランジスタ８０５のソース端子又はドレイン端子の一方の端子は、グランド線８０８と電気的に接続されている。Ｎチャネル型トランジスタ８０６のソース端子又はドレイン端子の一方の端子は、グランド線８０８と電気的に接続されている。Ｎチャネル型トランジスタ８０１のゲート端子は、ワード線８０９と電気的に接続され、ソース端子又はドレイン端子の一方の端子はデータ線８１０と電気的に接続されている。Ｎチャネル型トランジスタ８０２のゲート端子は、ワード線８０９と電気的に接続され、ソース端子又はドレイン端子の一方の端子はデータ線８１１と電気的に接続されている。
【０１６１】
Ｎチャネル型トランジスタ８０１のソース端子又はドレイン端子の他方の端子、Ｐチャネル型トランジスタ８０３のソース端子又はドレイン端子の他方の端子、Ｎチャネル型トランジスタ８０５のソース端子又はドレイン端子の他方の端子、Ｐチャネル型トランジスタ８０４のゲート端子、Ｎチャネル型トランジスタ８０６のゲート端子は、電気的に接続されノード８１２を形成している。
【０１６２】
Ｎチャネル型トランジスタ８０２のソース端子又はドレイン端子の他方の端子、Ｐチャネル型トランジスタ８０４のソース端子又はドレイン端子の他方の端子、Ｎチャネル型トランジスタ８０６のソース端子又はドレイン端子の他方の端子、Ｐチャネル型トランジスタ８０３のゲート端子、Ｎチャネル型トランジスタ８０５のゲート端子は、電気的に接続されノード８１３を形成している。
【０１６３】
本明細書におけるキャッシュメモリでは、ＣＰＵへの電源電圧さえ供給し続ければ、メモリセル８００は、データを保持することができる。また、一部のメモリセル８００への電源電圧さえ供給し続ければ、一部のメモリセル８００は、データを保持することができる。また、ＣＰＵへの電源電圧が遮断されるとキャッシュメモリ内のメモリセル８００は、データを消失する。
【０１６４】
なお、該メモリセルの構成は実施の形態１及び実施の形態２で示したバリッドビットの記憶部として、用いられてもよい。
【０１６５】
また、該メモリセルの構成は実施の形態１で示したダーティービットの記憶部として、用いられてもよい。
【０１６６】
本発明の一態様によれば、ＣＰＵへの電源電圧が再供給された直後に、キャッシュメモリ内の全バリッドビットのデータをデータＡに設定する。電源電圧の遮断と同時に、遮断直前のキャッシュメモリ内のデータは消失するが、該設定後は、レジスタや、外部の記憶装置に格納されているデータを用いながら、キャッシュメモリ内の上記メモリセル８００に再び演算処理に必要なデータを格納することができる。該設定を行わない場合、電源電圧が再供給された直後において、上記メモリセル８００に格納されているデータは、特定できない。従って、該設定を行う場合に比べて、データ復帰が非効率的になる。キャッシュメモリ内の全バリッドビットに対して、一括且つ高速で該設定を行う構成については実施の形態２を参酌することができる。
【０１６７】
メモリセル８００における書き込みの動作について説明する。ワード線８０９を’Ｈ’にすることにより、Ｎチャネル型トランジスタ８０１（選択トランジスタ）、Ｎチャネル型トランジスタ８０２（選択トランジスタ）がオン状態になり導通する。データ線８１０を’Ｈ’、データ線８１１を’Ｌ’にすることにより、Ｐチャネル型トランジスタ８０３及びＮチャネル型トランジスタ８０５は、Ｎチャネル型トランジスタ８０２を介して、データ線８１１に引かれ、Ｐチャネル型トランジスタ８０３はオン、Ｎチャネル型トランジスタ８０５はオフになる。また、Ｐチャネル型トランジスタ８０４及びＮチャネル型トランジスタ８０６は、Ｎチャネル型トランジスタ８０１を介して、データ線８１０に引かれ、Ｐチャネル型トランジスタ８０４はオフ、Ｎチャネル型トランジスタ８０６はオンになる。ノード８１２には、”１”が書き込まれ、ノード８１３には、”０”が書き込まれる。このようにして、メモリセル８００にデータが書き込まれる。
【０１６８】
メモリセル８００における記憶保持の原理について説明する。ワード線８０９を’Ｌ’にすることにより、Ｎチャネル型トランジスタ８０１（選択トランジスタ）、Ｎチャネル型トランジスタ８０２（選択トランジスタ）はオフ状態になり導通しない。従って、ＣＰＵへの電源電圧が供給され続けている間は、ノード８１２の”１”、ノード８１３の”０”は、そのまま固定されて保持される。即ち、キャッシュメモリ内の全メモリセル８００には、”１”の情報、又は”０”の情報が記憶されることになる。
【０１６９】
メモリセル８００における読み出しの動作について説明する。ワード線８０９を’Ｈ’にすることにより、Ｎチャネル型トランジスタ８０１（選択トランジスタ）、Ｎチャネル型トランジスタ８０２（選択トランジスタ）がオン状態になり導通する。データ線８１０、データ線８１１は、’Ｈ’あるいは’Ｌ’を検出して、記憶内容（データ）を記録する。データ線８１０は、ノード８１２に対応した電位を読み出し、データ線８１１は、ノード８１３に対応した電位を読み出す。読み出しの際の検出増幅は、センスアンプ等の増幅回路で行うことができる。
【０１７０】
図１２（Ｂ）は、実施の形態１における主記憶装置が備えるメモリセル９００を示している。メモリセル９００は、Ｎチャネル型トランジスタ９０１、コンデンサ９０２、を有する。１個のメモリセル９００は、１個のトランジスタと１個のコンデンサを有する。また、グランド線９０３、ワード線９０４、データ線９０５を有する。
【０１７１】
Ｎチャネル型トランジスタ９０１のゲート端子は、ワード線９０４と電気的に接続されている。Ｎチャネル型トランジスタ９０１のソース端子又はドレイン端子の一方の端子は、データ線９０５と電気的に接続されている。Ｎチャネル型トランジスタ９０１のソース端子又はドレイン端子の他方の端子は、コンデンサ９０２の一方の端子と電気的に接続されている。コンデンサ９０２の他方の端子は、グランド線９０３と電気的に接続されている。
【０１７２】
メモリセル９００における書き込みの動作について説明する。メモリセル９００に、”１”を書き込むには、ワード線９０４の電位を’Ｈ’にすることにより、Ｎチャネル型トランジスタ９０１のゲートの電位を’Ｈ’にする。更に、データ線９０５の電位を’Ｈ’にすることにより、Ｎチャネル型トランジスタ９０１がオン状態になり導通する。Ｎチャネル型トランジスタ９０１を介して、コンデンサ９０２は充電される。コンデンサ９０２には、”１”の情報が蓄えられるため、メモリセル９００に”１”が書き込まれる。
【０１７３】
一方、メモリセル９００に、”０”を書き込むには”１”の情報を取り除けばよい。従って、ワード線９０４の電位を’Ｈ’にし、データ線９０５の電位を’Ｌ’にすることにより、Ｎチャネル型トランジスタ９０１をオフ状態にする。この時、Ｎチャネル型トランジスタ９０１は導通しない。Ｎチャネル型トランジスタ９０１を介してコンデンサ９０２は放電される。コンデンサ９０２には、”０”の情報が蓄えられるため、メモリセル９００に”０”が書き込まれる。なお、メモリセル９００に、すでに”０”が書きこまれていれば変化は起こらない。このように、ワード線９０４の電位と、データ線９０５の電位を’Ｈ’と’Ｌ’と交互に切り替えることで、主記憶装置が備える全メモリセル９００に”１”、”０”の情報を書き込むことができる。
【０１７４】
メモリセル９００における記憶保持の原理について説明する。メモリセル９００が、”１”、”０”の情報を保持しておくためには、ワード線９０４の電位を’Ｌ’に保つことにより、Ｎチャネル型トランジスタ９０１をオフ状態にしておけば良い。この時、コンデンサ９０２は、データ線９０５と分離されているため、充電も放電も起こらない。従って、全メモリセル９００には、”１”の情報、又は”０”の情報が記憶されることになる。
【０１７５】
メモリセル８００における読み出しの動作について説明する。メモリセル８００が、書き込まれた情報を読み出すためには、ワード線９０４の電位を’Ｈ’にし、コンデンサ９０２から、データ線９０５に電荷が流れ出すかどうかを検出すればよい。この際の検出増幅は、センスアンプ等の増幅回路で行うことができる。
【０１７６】
例えば、メモリセル８００に”１”が記憶されていた場合、Ｎチャネル型トランジスタ９０１を介して、コンデンサ９０２からデータ線９０５に放電電流が流れ込むため、データ線９０５の電位が瞬間的に上昇する。従って、メモリセル８００に”１”が記憶されていたと判断することができる。
【０１７７】
一方、メモリセル８００に”０”が記憶されていた場合、Ｎチャネル型トランジスタ９０１を介して、コンデンサ９０２からデータ線９０５に電荷が流れ込むことはないため、データ線９０５の電位に上昇は検出されず、メモリセル８００に”０”が記憶されていたと判断することができる。このように、ワード線９０４の電位と、データ線９０５の電位を’Ｈ’と’Ｌ’と交互に切り替えることで、主記憶装置が備える全メモリセル９００における”１”、”０”の全ての情報を読み出すことができる。なお、読み出しの際に、コンデンサ９０２が放電してしまうため、記憶していたデータが破壊されてしまう。従って、ＤＲＡＭを主記憶装置に用いた場合、再書き込みという操作が必要になる。
【０１７８】
本実施の形態に示す構成、方法などは、他の実施の形態に示す構成、方法などと適宜組み合わせて用いることができる。
【０１７９】
（実施の形態４）
本明細書に開示する半導体装置は、ＣＰＵを搭載する様々な電子機器に適用することができる。ＣＰＵへの電源電圧の供給を遮断する事で、電力消耗を抑制し、電子機器の消費電力を低減させることができる。電子機器としては、可搬型のテレビジョン装置（テレビ、またはテレビジョン受信機ともいう）、デジタルカメラ、デジタルビデオカメラ、デジタルフォトフレーム、携帯電話機、携帯型ゲーム機、携帯情報端末、音響再生装置、遊技機（パチンコ機、スロットマシン等）、ゲーム筐体等、が挙げられる。
【０１８０】
図１３に電子機器の具体例を示す。図１３（Ａ）及び図１３（Ｂ）は、２つ折り可能なタブレット型端末である。該タブレット型端末には、バッテリーによって電源電圧が供給されるＣＰＵ等が内蔵されている。図１３（Ａ）は、開いた状態であり、タブレット型端末は、筐体９６３０、表示部９６３１ａ、表示部９６３１ｂ、表示モード切り替えスイッチ９０３４、電源スイッチ９０３５、省電力モード切り替えスイッチ９０３６、留め具９０３３、操作スイッチ９０３８を有する。
【０１８１】
表示部９６３１ａは、一部をタッチパネルの領域９６３２ａとすることができ、表示された操作キー９６３８にふれることでデータ入力をすることができる。なお、表示部９６３１ａにおいては、一例として半分の領域が表示のみの機能を有する構成、もう半分の領域がタッチパネルの機能を有する構成を示しているが、該構成に限定されない。表示部９６３１ａの全面をキーボードボタン表示させてタッチパネルとし、表示部９６３１ｂを表示画面として用いることができる。
【０１８２】
また、表示部９６３１ｂにおいても表示部９６３１ａと同様に、表示部９６３１ｂの一部をタッチパネルの領域９６３２ｂとすることができる。また、タッチパネルのキーボード表示切り替えボタン９６３９が表示されている位置に指やスタイラスなどでふれることで表示部９６３１ｂにキーボードボタン表示することができる。
【０１８３】
また、タッチパネルの領域９６３２ａとタッチパネルの領域９６３２ｂに対して同時にタッチ入力することもできる。
【０１８４】
また、表示モード切り替えスイッチ９０３４は、縦表示または横表示などの表示の向きを切り替え、白黒表示やカラー表示の切り替えなどを選択できる。省電力モード切り替えスイッチ９０３６は、タブレット型端末に内蔵している光センサで検出される使用時の外光の光量に応じて表示の輝度を最適なものとすることができる。タブレット型端末は光センサだけでなく、ジャイロ、加速度センサ等の傾きを検出するセンサなどの他の検出装置を内蔵させてもよい。なお、省電力モードの際、タブレット型端末に内蔵されているＣＰＵへの電源電圧の供給を完全に遮断しても良い。
【０１８５】
また、図１３（Ａ）では表示部９６３１ｂと表示部９６３１ａの表示面積が同じ例を示しているが特に限定されず、一方のサイズともう一方のサイズが異なっていてもよく、表示の品質も異なっていてもよい。例えば一方が他方よりも高精細な表示を行える表示パネルとしてもよい。
【０１８６】
図１３（Ｂ）は、閉じた状態であり、タブレット型端末は、筐体９６３０、太陽電池９６３３、充放電制御回路９６３４、バッテリー９６３５、ＤＣＤＣコンバータ９６３６を有する。なお、図１３（Ｂ）では充放電制御回路９６３４の一例としてバッテリー９６３５、ＤＣＤＣコンバータ９６３６を有する構成について示している。
【０１８７】
なお、タブレット型端末は２つ折り可能なため、未使用時に筐体９６３０を閉じた状態にすることができる。従って、表示部９６３１ａ、表示部９６３１ｂを保護できるため、耐久性に優れ、長期使用の観点からも信頼性の優れたタブレット型端末を提供できる。
【０１８８】
また、この他にも図１３（Ａ）および図１３（Ｂ）に示したタブレット型端末は、様々な情報（静止画、動画、テキスト画像など）を表示する機能、カレンダー、日付または時刻などを表示部に表示する機能、表示部に表示した情報をタッチ入力操作または編集するタッチ入力機能、様々なソフトウェア（プログラム）によって処理を制御する機能、等を有することができる。
【０１８９】
タブレット型端末の表面に装着された太陽電池９６３３によって、電力をタッチパネル、表示部、または映像信号処理部等に供給することができる。なお、太陽電池９６３３は、筐体９６３０の片面又は両面に設けることができ、バッテリー９６３５の充電を効率的に行う構成とすることができるため好適である。なおバッテリー９６３５としては、リチウムイオン電池を用いると、小型化を図れる等の利点がある。
【０１９０】
また、図１３（Ｂ）に示す充放電制御回路９６３４の構成、および動作について図１３（Ｃ）にブロック図を示し説明する。図１３（Ｃ）には、太陽電池９６３３、バッテリー９６３５、ＤＣＤＣコンバータ９６３６、コンバータ９６３７、スイッチＳＷ１乃至ＳＷ３、表示部９６３１について示しており、バッテリー９６３５、ＤＣＤＣコンバータ９６３６、コンバータ９６３７、スイッチＳＷ１乃至ＳＷ３が、図１３（Ｂ）に示す充放電制御回路９６３４に対応する箇所となる。
【０１９１】
まず外光により太陽電池９６３３により発電がされる場合の動作の例について説明する。太陽電池で発電した電力は、バッテリー９６３５を充電するための電圧となるようＤＣＤＣコンバータ９６３６で昇圧または降圧がなされる。そして、表示部９６３１の動作に太陽電池９６３３からの電力が用いられる際にはスイッチＳＷ１をオンにし、コンバータ９６３７で表示部９６３１に必要な電圧に昇圧または降圧をすることとなる。また、表示部９６３１での表示を行わない際には、ＳＷ１をオフにし、ＳＷ２をオンにしてバッテリー９６３５の充電を行う構成とすればよい。
【０１９２】
なお太陽電池９６３３については、発電手段の一例として示したが、特に限定されず、圧電素子（ピエゾ素子）や熱電変換素子（ペルティエ素子）などの他の発電手段によるバッテリー９６３５の充電を行う構成であってもよい。例えば、無線（非接触）で電力を送受信して充電する無接点電力伝送モジュールや、また他の充電手段を組み合わせて行う構成としてもよい。
【０１９３】
本実施の形態に示す構成、方法などは、他の実施の形態に示す構成、方法などと適宜組み合わせて用いることができる。
【０１９４】
（実施の形態５）
本実施の形態では、実施の形態１で示した不揮発性レジスタの構成の一例について図８（Ａ）を用いて説明する。
【０１９５】
図８（Ａ）において、不揮発性レジスタ４００は、オフ電流が極めて小さいトランジスタ４１１と、容量素子４１２と、演算回路４２１と、演算回路４２２と、演算回路４２３と、スイッチ４２４と、を有する。トランジスタ４１１として、チャネルが酸化物半導体層に形成されるトランジスタを用いる例を示し、ＯＳの符号を付す。演算回路４２１の出力端子（図中、ｏｕｔ）は、演算回路４２２の入力端子（図中、ｉｎ）と電気的に接続される。演算回路４２２の入力端子（図中、ｉｎ）は、スイッチ４２４を介して演算回路４２３の出力端子（図中、ｏｕｔ）と電気的に接続される。演算回路４２２の出力端子（図中、ｏｕｔ）は、演算回路４２１の入力端子（図中、ｉｎ）と電気的に接続される。演算回路４２１の入力端子（図中、ｉｎ）は、トランジスタ４１１のソース及びドレインの一方と電気的に接続される。トランジスタ４１１のソース及びドレインの他方は、容量素子４１２の一対の電極のうちの一方、及び演算回路４２３の入力端子（図中、ｉｎ）と電気的に接続される。ここで、容量素子４１２の一対の電極のうちの一方を、ノードＦ（図中、Ｆ）で示す。
【０１９６】
演算回路４２１、演算回路４２２、及び演算回路４２３としては、それぞれ、インバータ、スリーステートバッファ、クロックドインバータ、ＮＡＮＤ回路、ＮＯＲ回路等を用いることができる。図８（Ａ）では、演算回路４２３として、インバータ４３０を用いる例を示す。スイッチとしては、例えばアナログスイッチ、トランジスタ等を用いることができる。図８（Ａ）では、スイッチ４２４として、トランジスタ４１３を用いる例を示す。トランジスタ４１３は、例えば、シリコン層またはシリコン基板にチャネルが形成されるトランジスタとすることができる。
【０１９７】
ここで、演算回路４２３とスイッチ４２４を合わせた電流駆動能力は、演算回路４２１の電流駆動能力よりも大きくすることが好ましい。なお、スイッチ４２４の電流駆動能力が十分に大きい場合には、演算回路４２３の電流駆動能力を、演算回路４２１の電流駆動能力よりも大きくすることが好ましい。こうして、ノードＭＢ（図中、ＭＢ）の電位を、容量素子４１２によって保持された信号（電位）に対応する信号とすることが容易となる。
【０１９８】
例えば、演算回路４２１はインバータによって構成され、当該インバータと、インバータ４３０とは相補型のトランジスタを用いた構成である場合に、各トランジスタは次にように設計することが望ましい。インバータ４３０の有する一導電型のトランジスタのチャネル長をＬ１、チャネル幅をＷ１、移動度をμ１とし、演算回路４２１を構成するインバータの有する前記一導電型とは異なる導電型のトランジスタのチャネル長をＬ２、チャネル幅をＷ２、移動度をμ２とすると、μ１（Ｗ１／Ｌ１）＞μ２（Ｗ２／Ｌ２）とするのが好ましい。つまり、インバータ４３０の有するｎチャネル型のトランジスタのチャネル長をＬ１、チャネル幅をＷ１、移動度をμ１とし、演算回路４２１を構成するインバータの有するｐチャネル型のトランジスタのチャネル長をＬ２、チャネル幅をＷ２、移動度をμ２とすると、μ１（Ｗ１／Ｌ１）＞μ２（Ｗ２／Ｌ２）とするのが好ましい。または、インバータ４３０の有するｐチャネル型のトランジスタのチャネル長をＬ１、チャネル幅をＷ１、移動度をμ１とし、演算回路４２１を構成するインバータの有するｎチャネル型のトランジスタのチャネル長をＬ２、チャネル幅をＷ２、移動度をμ２とすると、μ１（Ｗ１／Ｌ１）＞μ２（Ｗ２／Ｌ２）とするのが好ましい。ここで、スイッチ４２４の電流駆動能力が十分に大きい場合とは、例えば、スイッチを４２４がトランジスタ４１３によって構成される場合に、トランジスタのチャネル長をＬ３、チャネル幅をＷ３、移動度をμ３としたとき、μ３（Ｗ３／Ｌ３）がμ２（Ｗ２／Ｌ２）やμ１（Ｗ１／Ｌ１）と比べて十分に大きいことをいう。μ３（Ｗ３／Ｌ３）が十分に大きい場合に、上記不等式が成立するように、各回路のトランジスタを設計するのが好ましい。
【０１９９】
トランジスタ４１１のゲートは端子ＳＧ１と電気的に接続される。トランジスタ４１１は端子ＳＧ１に入力される制御信号によって、オン状態またはオフ状態が選択される。スイッチ４２４は端子ＳＧ２に入力される制御信号によって、オン状態またはオフ状態が選択される。図８（Ａ）では、端子ＳＧ２はトランジスタ４１３のゲートと電気的に接続されている。容量素子４１２の一対の電極のうちの他方は、端子Ｃと電気的に接続される。端子Ｃには、一定の電位が入力される構成とすることができる。例えば、低電源電位が入力される構成とすることができる。
【０２００】
演算回路４２１、演算回路４２２、演算回路４２３を、トランジスタを用いて構成する場合に、当該トランジスタは、酸化物半導体以外の半導体でなる層または基板にチャネルが形成されるトランジスタとすることができる。例えば、シリコン層またはシリコン基板にチャネルが形成されるトランジスタとすることができる。
【０２０１】
また、トランジスタ４１１は、酸化物半導体層を挟んで上下に２つのゲートを有するトランジスタとすることができる。一方のゲートに制御信号を入力し、他方のゲートには、別の制御信号を入力することができる。別の制御信号は、一定の電位の信号であってもよい。一定の電位は、低電源電位や高電源電位であってもよい。なお、２つのゲートを電気的に接続し、制御信号を入力してもよい。他方のゲートに入力する信号によって、トランジスタ４１１のしきい値電圧等を制御することが可能である。また、トランジスタ４１１のオフ電流を更に低減することも可能である。トランジスタ４１１のオン電流を増大させることも可能である。
【０２０２】
図８（Ａ）に示した不揮発性レジスタ４００では、電源電圧が供給されている間は、演算回路４２１と演算回路４２２によって帰還ループが形成され、帰還ループによってデータを保持することができる。演算回路４２１と演算回路４２２とを有し、帰還ループによってデータを保持する回路としては、フリップフロップ回路が挙げられる。図８（Ａ）に示す構成は、フリップフロップ回路４０１において、オフ電流が極めて小さいトランジスタ４１１と、容量素子４１２と、演算回路４２３と、スイッチ４２４とを追加した構成に相当する。図８（Ａ）においてこの追加した部分を回路４０２で示す。
【０２０３】
フリップフロップ回路４０１は、ノードＭ（図中、Ｍ）とノードＭＢ（図中、ＭＢ）を有し、電源電圧が供給されている間、ノードＭＢに保持される信号は、ノードＭに保持された信号の反転信号となる。トランジスタ４１１のソース及びドレインの一方は、ノードＭと電気的に接続される。トランジスタ４１１のソース及びドレインの他方は、容量素子４１２の一対の電極のうちの一方、及び演算回路４２３の入力端子（図中、ｉｎ）と電気的に接続される。演算回路４２３の出力端子（図中、ｏｕｔ）は、スイッチ４２４を介してノードＭＢと電気的に接続される。
【０２０４】
なお、図８（Ａ）では、演算回路４２３として入力された信号の反転信号を出力する回路を用い、スイッチ４２４を介してノードＭＢに当該出力を入力する構成を示したがこれに限定されない。図８（Ｂ）に示すように、演算回路４２３として入力された信号を反転させずに出力する回路を用い、スイッチ４２４を介してノードＭに当該出力を入力する構成としてもよい。このような演算回路４２３としては、例えば、インバータを偶数個直列に電気的に接続した構成を用いることができる。図８（Ｂ）では、演算回路４２３として、インバータ４３０ａとインバータ４３０ｂが直列に電気的に接続された構成を用いた例を示す。なお、図８（Ｂ）においてその他の部分は図８（Ａ）と同様であるため説明は省略する。
【０２０５】
≪不揮発性レジスタの駆動方法≫
図８（Ａ）の不揮発性レジスタ４００の駆動方法の一態様について説明する。不揮発性レジスタ４００において、電源電圧の供給の後、消費電力を削減するために電源電圧の供給を停止し、再び電源電圧を供給する場合の駆動方法は以下のようにすることができる。なお、フリップフロップ回路４０１は、クロック信号及びクロック信号の反転信号に同期してデータの入出力を行う回路であるとして、以下の説明を行う。説明には図９のタイミングチャートを用い、図８（Ａ）の符号も参照する。
【０２０６】
なお、図９において、ＭはノードＭの電位を示し、ＭＢはノードＭＢの電位を示し、ＦはノードＦの電位を示し、ＳＧ１は端子ＳＧ１に入力される制御信号の信号電位を示し、ＳＧ２は端子ＳＧ２に入力される制御信号の信号電位を示し、Ｖは電源電圧を示し、ＣＬＫはクロック信号の信号電位を示し、ＣＬＫＢはクロック信号の反転信号の信号電位を示す。図９中、斜線部分は、任意の信号電位とすることができる。
【０２０７】
ここで、図９では、ＳＧ１がハイレベルの場合にトランジスタ４１１がオン状態となり、ＳＧ１がローレベルの場合にトランジスタ４１１がオフ状態となる例を示したがこれに限定されない。以下の説明とトランジスタ４１１のオン状態及びオフ状態の関係が同様となるようにＳＧ１の信号電位を適宜定めることができる。また、図９では、ＳＧ２がハイレベルの場合にトランジスタ４１３がオン状態となり、ＳＧ２がローレベルの場合にトランジスタ４１３がオフ状態となる例を示したがこれに限定されない。以下の説明とトランジスタ４１３のオン状態及びオフ状態の関係が同様となるようにＳＧ２の信号電位を適宜定めることができる。
【０２０８】
＜電源電圧供給時の動作＞
期間１において、不揮発性レジスタ４００へ電源電圧ＶとしてＶＤＤが供給され、且つクロック信号の信号電位ＣＬＫ、及びクロック信号の反転信号の信号電位ＣＬＫＢは、ハイレベルまたはローレベルに周期的に変化する。このとき、クロック信号やクロック信号の反転信号に同期して、演算回路４２１及び演算回路４２２によって構成される帰還ループがデータに対応する信号（及びその反転信号）を保持する。図９では、期間１の最後において、ノードＭに信号電位ＶＸが保持され、ノードＭＢに信号電位ＶＸＢが保持されている例を示す。ここで、信号電位ＶＸＢは、信号電位ＶＸに対応する信号の反転信号の電位に相当する。期間１では、ＳＧ２がローレベルであり、スイッチ４２４はオフ状態である。こうして、不揮発性レジスタ４００は、入力されたデータを帰還ループによって保持し、また帰還ループによって保持されたデータを出力する。ここで、酸化物半導体層にチャネルが形成されるトランジスタ４１１は、シリコン層やシリコン基板にチャネルが形成されるトランジスタと比較して移動度が低い。移動度が低いトランジスタが帰還ループ上に存在すると、帰還ループにおけるデータ入力及び出力のスピードが遅くなる。不揮発性レジスタ４００では、帰還ループ上に、酸化物半導体層にチャネルが形成されるトランジスタ４１１が存在しない。そのため、帰還ループによるデータの書き込み及び読み出しは高速に行うことができ、不揮発性レジスタ４００におけるデータの書き込み及び読み出し速度（動作速度）は速い。なお、このとき酸化物半導体層にチャネルが形成されるトランジスタ４１１はオフ状態であることが好ましい。仮に、トランジスタ４１１が常にオン状態であると、帰還ループによるデータの書き込み及び読み出し時に、容量素子４１２へもデータに対応する信号電位が常に入力されることとなり、帰還ループによるデータの書き込み及び読み出しの速度が低下してしまう。
【０２０９】
＜電源電圧供給停止前の動作＞
期間２において、クロック信号の信号電位ＣＬＫ、及びクロック信号の反転信号の信号電位ＣＬＫＢを固定する。即ち、クロック信号の信号電位ＣＬＫ、及びクロック信号の反転信号の信号電位ＣＬＫＢを、所定のデータが帰還ループによって保持された状態のクロック信号の信号電位ＣＬＫ、及びクロック信号の反転信号の信号電位ＣＬＫＢのままとする。つまり、通常、クロック信号やクロック信号の反転信号は、ハイレベルまたはローレベルにレベル（信号電位）が周期的に変化する信号であるが、この変化をさせない期間を設ける。ここで、クロック信号やクロック信号の反転信号のレベル（信号電位）を固定する期間を、クロック信号固定期間とも呼ぶ。期間２は、クロック信号固定期間に相当する。このため、クロック信号固定期間において、ノードＭは信号電位ＶＸのままであり、ノードＭＢは信号電位ＶＸＢのままである。図９では、クロック信号の信号電位ＣＬＫがローレベルに固定され、クロック信号の反転信号の信号電位ＣＬＫＢがハイレベルに固定される例を示したがこれに限定されない。クロック信号の信号電位ＣＬＫがハイレベルに固定され、クロック信号の反転信号の信号電位ＣＬＫＢがローレベルに固定されてもよい。そして、クロック信号固定期間において、ＳＧ１をハイレベルからローレベルに変化させることにより、オフ電流が極めて小さいトランジスタ４１１をオフ状態とする。例えば、クロック信号固定期間の直前において、ＳＧ１がハイレベルでありトランジスタ４１１がオン状態であった場合には、クロック信号固定期間においてＳＧ１をハイレベルからローレベルに変化させてトランジスタ４１１をオフ状態とする。例えば、クロック信号固定期間の直前において、ＳＧ１がローレベルでありトランジスタ４１１がオフ状態であった場合には、クロック信号固定期間においてＳＧ１をローレベルからハイレベルに変化させてトランジスタ４１１を一旦オン状態とした後に、ＳＧ１をローレベルとしてオフ状態とする。こうして、容量素子４１２の一対の電極のうちの一方に対応するノードＦの電位はＶＸとなる。なお、トランジスタ４１１がハイレベルとなった後、ノードＦの電位がＶＸとなる迄には、時間がかかる。こうして、帰還ループによって保持されていたデータに対応する信号（電位）を容量素子４１２に保持する。なお、ＳＧ２はローレベルであり、スイッチ４２４はオフ状態のままである。
【０２１０】
このように、クロック信号やクロック信号の反転信号のレベルを一定に保った状態で、オフ電流が極めて小さいトランジスタ４１１をオフ状態とすることによって、帰還ループによって保持されたデータに対応する信号（電位）の変動を抑制した状態で、当該データに対応する信号（電位）を容量素子４１２に保持することができる。
【０２１１】
＜電源電圧供給停止の動作＞
期間３において、不揮発性レジスタ４００への電源電圧の供給を停止する（電源電圧Ｖを０にする）。こうして、期間３において、ノードＭ及びノードＭＢの電位は任意となる。また、期間３において、クロック信号及びクロック信号の反転信号の供給を停止することができる。ここで、クロック信号及びクロック信号の反転信号の供給を停止するとは、クロック信号の信号電位ＣＬＫ、及びクロック信号の反転信号の信号電位ＣＬＫＢを共に同じレベル（例えば、ローレベル）とすることに相当する。こうして、電源電圧だけでなく、クロック信号及びクロック信号の反転信号の供給を停止することによって、クロック信号やクロック信号の反転信号を供給するための電力も削減することができる。なお、ＳＧ２はローレベルであり、スイッチ４２４はオフ状態のままである。
【０２１２】
ここで、ＳＧ１はローレベルであり、オフ電流が極めて小さいトランジスタ４１１はオフ状態のままであり、不揮発性レジスタ４００への電源電圧Ｖの供給が停止した後においても、帰還ループによって保持されていたデータに対応する信号（電位）が容量素子４１２によって保持される。つまり、ノードＦの電位はＶＸのままである。こうして、オフ電流が極めて小さいトランジスタ４１１を用いることによって、容量素子４１２によって保持された信号（電位）を長期間保つことができるため、不揮発性レジスタ４００は電源電圧の供給が停止した後も、長期間に渡ってデータを保持することができる。また、データの書き換えを繰り返すことによる不揮発性レジスタ４００の疲労は少なく、データの書き換え可能な回数を多くすることができる。
【０２１３】
なお、不揮発性レジスタ４００では、オフ電流が極めて小さいトランジスタ４１１がオフ状態となり、且つスイッチ４２４がオフ状態となっている間は、容量素子４１２の一対の電極のうちの一方と、帰還ループの各ノードとは、電気的に遮断されている。それ故、トランジスタ４１１がオフ状態となり、且つスイッチ４２４がオフ状態となっていれば、不揮発性レジスタ４００への電源電圧の供給停止と、クロック信号及びクロック信号の反転信号の供給停止とは、同時に行うこともできるし、一方を行った後に他方を行うこともできる。つまり、電源電圧供給停止のシーケンスに自由度がある。
【０２１４】
＜電源電圧供給再開の動作＞
期間４において、電源電圧ＶをＶＤＤとして、不揮発性レジスタ４００への電源電圧の供給を再開する。また、電源電圧の供給停止時におけるレベル（信号電位）に戻して固定された、クロック信号やクロック信号の反転信号を供給する。こうして、クロック信号固定期間を開始する。図９では、クロック信号の信号電位ＣＬＫがローレベルに固定され、クロック信号の反転信号の信号電位ＣＬＫＢがハイレベルに固定される。ここで、トランジスタ４１１がオフ状態となり、且つスイッチ４２４がオフ状態となっていれば、不揮発性レジスタ４００への電源電圧の供給再開と、電源電圧の供給停止時におけるレベル（信号電位）に戻して固定されたクロック信号やクロック信号の反転信号の供給再開とは、同時に行うこともできるし、一方を行った後に他方を行うこともできる。つまり、電源電圧供給再開のシーケンスに自由度がある。
【０２１５】
その後、ＳＧ２はハイレベルとして、スイッチ４２４をオン状態とする。なお、ＳＧ１はローレベルであり、オフ電流が極めて小さいトランジスタ４１１はオフ状態のままである。容量素子４１２によって保持された信号（電位）、つまりノードＦの電位ＶＸは演算回路４２３によって対応する信号ＶＸＢに変換され、スイッチ４２４がオン状態となると、帰還ループのノードＭＢに入力される。こうして、ノードＭＢの電位はやがてＶＸＢとなる。すると、ノードＭの電位もやがてＶＸとなる。こうして、電源電圧の供給停止前に保持していたデータを再び帰還ループによって保持することができる。その後、ＳＧ２はローレベルとして、スイッチ４２４を再びオフ状態とする。
【０２１６】
ここで、演算回路４２３とスイッチ４２４を合わせた電流駆動能力は、演算回路４２１の電流駆動能力よりも大きくすることが好ましい。なお、スイッチ４２４の電流駆動能力が十分に大きい場合には、演算回路４２３の電流駆動能力を、演算回路４２１の電流駆動能力よりも大きくすることが好ましい。こうして、ノードＭＢの電位を、容量素子４１２によって保持された信号（電位）に対応する信号とすることが容易となる。
【０２１７】
例えば、演算回路４２１はインバータによって構成され、当該インバータと、インバータ４３０とは相補型のトランジスタを用いた構成である場合に、各トランジスタは次にように設計することが望ましい。インバータ４３０の有する一導電型のトランジスタのチャネル長をＬ１、チャネル幅をＷ１、移動度をμ１とし、演算回路４２１を構成するインバータの有する前記一導電型とは異なる導電型のトランジスタのチャネル長をＬ２、チャネル幅をＷ２、移動度をμ２とすると、μ１（Ｗ１／Ｌ１）＞μ２（Ｗ２／Ｌ２）とするのが好ましい。つまり、インバータ４３０の有するｎチャネル型のトランジスタのチャネル長をＬ１、チャネル幅をＷ１、移動度をμ１とし、演算回路４２１を構成するインバータの有するｐチャネル型のトランジスタのチャネル長をＬ２、チャネル幅をＷ２、移動度をμ２とすると、μ１（Ｗ１／Ｌ１）＞μ２（Ｗ２／Ｌ２）とするのが好ましい。または、インバータ４３０の有するｐチャネル型のトランジスタのチャネル長をＬ１、チャネル幅をＷ１、移動度をμ１とし、演算回路４２１を構成するインバータの有するｎチャネル型のトランジスタのチャネル長をＬ２、チャネル幅をＷ２、移動度をμ２とすると、μ１（Ｗ１／Ｌ１）＞μ２（Ｗ２／Ｌ２）とするのが好ましい。ここで、スイッチ４２４の電流駆動能力が十分に大きい場合とは、例えば、スイッチを４２４がトランジスタ４１３によって構成される場合に、トランジスタのチャネル長をＬ３、チャネル幅をＷ３、移動度をμ３としたとき、μ３（Ｗ３／Ｌ３）がμ２（Ｗ２／Ｌ２）やμ１（Ｗ１／Ｌ１）と比べて十分に大きいことをいう。μ３（Ｗ３／Ｌ３）が十分に大きい場合に、上記不等式が成立するように、各回路のトランジスタを設計するのが好ましい。
【０２１８】
期間５において、クロック信号やクロック信号の反転信号のレベル（信号電位）の固定を解除する。即ち、クロック信号やクロック信号の反転信号を、ハイレベルまたはローレベルにレベル（信号電位）が周期的に変化する通常の信号に戻す。こうして、不揮発性レジスタは、帰還ループによるデータの書き込み及び読み出しを再開することができる。その後の動作は、上記（電源電圧供給時の動作）と同様である。
【０２１９】
上記のとおり、帰還ループに保持されたデータを容量素子４１２に書き込むための経路（データ待避経路）と、容量素子４１２に保持されたデータを帰還ループに戻すための経路（データ復帰経路）とが異なる。データ復帰経路に配置されるスイッチ４２４として、移動度が高い素子を用いることにより、（電源電圧供給再開の動作）をより高速に行うことができる。例えば、トランジスタ４１３として、シリコン層またはシリコン基板にチャネルが形成されるトランジスタを用いることによって、（電源電圧供給再開の動作）をより高速に行うことができる。
【０２２０】
上述のとおり、図８（Ａ）における回路４０２は、電源電圧が供給されている間にフリップフロップ回路４０１に保持されたデータが入力端子（図中、ｉｎ）から入力され当該データを保持し、電源電圧が供給されない間も当該データを保持し、電源電圧が供給されるとフリップフロップ回路４０１に出力端子（図中、ｏｕｔ）から当該データ（に対応する信号）を提供する動作を行うので、不揮発性の不揮発性レジスタと呼ぶこともできる。データの書き換えを繰り返すことによる、当該不揮発性の不揮発性レジスタの疲労は少なく、データの書き換え可能な回数を多くすることができる。
【０２２１】
以上が、不揮発性レジスタ４００の駆動方法の説明である。
【０２２２】
＜記憶装置、信号処理回路＞
本発明の記憶装置の一態様は、不揮発性レジスタ４００を一または複数用いて構成された記憶装置とすることができる。また、本発明の信号処理回路の一態様は、当該記憶装置を用いた信号処理回路とすることができる。例えば、信号処理回路が有するレジスタ、キャッシュメモリ等の記憶装置に不揮発性レジスタ４００を用いることができる。
【０２２３】
さらに、信号処理回路は、上記記憶装置に加え、記憶装置とデータのやり取りを行う演算回路等の各種論理回路を有してもよい。そして、記憶装置へ電源電圧の供給を停止すると共に、当該記憶装置とデータのやり取りを行う演算回路への電源電圧の供給を停止するようにしても良い。
【０２２４】
本発明の信号処理回路の一態様は、ＣＰＵと、メモリと、メモリとＣＰＵとのアクセスを制御する周辺制御装置とを有し、ＣＰＵ、メモリ、及び周辺制御装置はそれぞれ、不揮発性レジスタ４００を有する構成であってもよい。そして、ＣＰＵ、メモリ、及び周辺制御装置を有する信号処理回路の全体において、電源電圧の供給を停止するようにしてもよい。
【０２２５】
不揮発性レジスタ４００を信号処理回路に用いることで、電源電圧の供給停止によるデータの消失を防ぐことができ、電源電圧を再供給した後、短時間で電源供給停止前の状態に復帰することができる。そのため、必要なときのみ電源電圧を供給する、ノーマリオフの駆動方法を採用することができ、消費電力を大幅に削減することができる。また、信号処理回路の動作速度を高速化することができ、更に信頼性も高めることができる。
【０２２６】
本実施の形態は、他の実施の形態と適宜組み合わせて実施することが可能である。
【０２２７】
（実施の形態６）
本実施の形態では、実施の形態１で示した不揮発性レジスタの図８（Ａ）とは別の構成の一例について図１０を用いて説明する。
【０２２８】
図１０において、不揮発性レジスタ４００は、フリップフロップ回路４０１ａ、フリップフロップ回路４０１ｂ、回路４０２ａ、及び回路４０２ｂを有する。フリップフロップ回路４０１ａの出力端子（図中、ｏｕｔ）は、フリップフロップ回路４０１ｂの入力端子（図中、ｉｎ）と電気的に接続されている。フリップフロップ回路４０１ａの入力端子（図中、ｉｎ）が不揮発性レジスタ４００の入力端子Ｄとなり、フリップフロップ回路４０１ｂの出力端子（図中、ｏｕｔ）が不揮発性レジスタ４００の出力端子Ｑとなる。
【０２２９】
回路４０２ａ及び回路４０２ｂは、図８（Ａ）における回路４０２と同様の構成とすることができる。
【０２３０】
フリップフロップ回路４０１ａは、演算回路４２１ａ及び演算回路４２２ａを有し、演算回路４２１ａ、演算回路４２２ａ、及び回路４０２ａの電気的接続関係は、図８（Ａ）における演算回路４２１、演算回路４２２、及び回路４０２の電気的接続関係と同様とすることができる。なお、フリップフロップ回路４０１ａでは、アナログスイッチ４２６ａを有し、アナログスイッチ４２６ａを介して、フリップフロップ回路４０１ａの入力端子（図中、ｉｎ）はノードＭａと電気的に接続されている。アナログスイッチ４２６ａ及び演算回路４２２ａには、クロック信号ＣＬＫ１及びクロック信号ＣＬＫ１の反転信号ＣＬＫ１Ｂが入力されている。ここで、クロック信号ＣＬＫ１及びクロック信号ＣＬＫ１の反転信号ＣＬＫ１Ｂによって、アナログスイッチ４２６ａがオン状態のときには、演算回路４２２ａの出力はフローティングとなり、アナログスイッチ４２６ａがオフ状態のときには、演算回路４２２ａは入力された信号を反転して出力するものとする。ノードＭＢａは、フリップフロップ回路４０１ａの出力端子（図中、ｏｕｔ）と電気的に接続されている。
【０２３１】
フリップフロップ回路４０１ｂは、演算回路４２１ｂ及び演算回路４２２ｂを有し、演算回路４２１ｂ、演算回路４２２ｂ、及び回路４０２ｂの電気的接続関係は、図８（Ａ）における演算回路４２１、演算回路４２２、及び回路４０２の電気的接続関係と同様とすることができる。なお、フリップフロップ回路４０１ｂでは、アナログスイッチ４２６ｂを有し、アナログスイッチ４２６ｂを介して、フリップフロップ回路４０１ｂの入力端子（図中、ｉｎ）はノードＭｂと電気的に接続されている。アナログスイッチ４２６ｂ及び演算回路４２２ｂには、クロック信号ＣＬＫ２及びクロック信号ＣＬＫ２の反転信号ＣＬＫ２Ｂが入力されている。ここで、クロック信号ＣＬＫ２及びクロック信号ＣＬＫ２の反転信号ＣＬＫ２Ｂによって、アナログスイッチ４２６ｂがオン状態のときには、演算回路４２２ｂの出力はフローティングとなり、アナログスイッチ４２６ｂがオフ状態のときには、演算回路４２２ｂは入力された信号を反転して出力するものとする。ノードＭＢｂは、フリップフロップ回路４０１ｂの出力端子（図中、ｏｕｔ）と電気的に接続されている。
【０２３２】
クロック信号ＣＬＫ２は、クロック信号ＣＬＫ１の反転信号とすることもできるし、クロック信号ＣＬＫ１の位相をずらした信号とすることもできる。即ち、図１０における不揮発性レジスタ４００に単相のクロック信号を供給する構成とすることもできるし、２相のクロック信号を供給する構成とすることもできる。２相のクロックを供給する構成とし、クロック信号ＣＬＫ１とクロック信号ＣＬＫ２それぞれのデユーティー比（１周期におけるハイレベルの期間の割合）を５０％未満とし、クロック信号ＣＬＫ１とクロック信号ＣＬＫ２が供にローレベルとなる期間を設けることによって、入力端子Ｄに入力されたデータがクロック信号（クロック信号ＣＬＫ１及びクロック信号ＣＬＫ２）に関係なく出力端子Ｑから出力されるのを抑制することができる。なお、入力端子Ｄに入力されたデータがクロック信号（クロック信号ＣＬＫ１及びクロック信号ＣＬＫ２）に関係なく出力端子Ｑから出力される現象は、データの筒抜け、データ・レーシング等と呼ばれる。
【０２３３】
≪不揮発性レジスタの駆動方法≫
図１０に示した不揮発性レジスタ４００の駆動方法について図１１のタイミングチャートを用いて説明する。図８（Ａ）、図１０の符号も参照する。
【０２３４】
なお、図１１において、ＭａはノードＭａの電位を示し、ＭＢａはノードＭＢａの電位を示し、ＭｂはノードＭｂの電位を示し、ＭＢｂはノードＭＢｂの電位を示し、Ｖは電源電圧を示し、ＣＬＫ１はクロック信号ＣＬＫ１の信号電位を示し、ＣＬＫＢ１はクロック信号ＣＬＫ１の反転信号の信号電位を示し、ＣＬＫ２はクロック信号ＣＬＫ２の信号電位を示し、ＣＬＫＢ２はクロック信号ＣＬＫ２の反転信号の信号電位を示す。また、回路４０２ａ及び回路４０２ｂそれぞれについて、ＦはノードＦの電位を示し、ＳＧ１は端子ＳＧ１に入力される制御信号の信号電位を示し、ＳＧ２は端子ＳＧ２に入力される制御信号の信号電位を示す。図１１中、斜線部分は、任意の信号電位とすることができる。
【０２３５】
ここで、図１１では、ＳＧ１がハイレベルの場合にトランジスタ４１１がオン状態となり、ＳＧ１がローレベルの場合にトランジスタ４１１がオフ状態となる例を示したがこれに限定されない。以下の説明とトランジスタ４１１のオン状態及びオフ状態の関係が同様となるようにＳＧ１の信号電位を適宜定めることができる。また、図１１では、ＳＧ２がハイレベルの場合にトランジスタ４１３がオン状態となり、ＳＧ２がローレベルの場合にトランジスタ４１３がオフ状態となる例を示したがこれに限定されない。以下の説明とトランジスタ４１３のオン状態及びオフ状態の関係が同様となるようにＳＧ２の信号電位を適宜定めることができる。
【０２３６】
＜電源電圧供給時の動作＞
期間１において、不揮発性レジスタ４００へ電源電圧ＶとしてＶＤＤが供給され、且つＣＬＫ１、ＣＬＫ２、ＣＬＫＢ１及びＣＬＫＢ２は、ハイレベルまたはローレベルに周期的に変化する。ここで、図１１に示す期間１では、クロック信号ＣＬＫ１とクロック信号ＣＬＫ２それぞれのデユーティー比（１周期におけるハイレベルの期間の割合）を５０％未満とし、クロック信号ＣＬＫ１とクロック信号ＣＬＫ２が供にローレベルとなる期間を設けることによって、入力端子Ｄに入力されたデータがクロック信号（クロック信号ＣＬＫ１及びクロック信号ＣＬＫ２）に関係なく出力端子Ｑから出力されるのを抑制している。
【０２３７】
期間１では、クロック信号やクロック信号の反転信号に同期して、演算回路４２１ａ及び演算回路４２２ａによって構成される帰還ループ、並びに、演算回路４２１ｂ及び演算回路４２２ｂによって構成される帰還ループそれぞれが、データに対応する信号（及びその反転信号）を保持する。図１１では、期間１の終わりにおいて、ノードＭａに信号電位ＶＸが保持され、ノードＭＢａに信号電位ＶＸＢが保持され、ノードＭｂに信号電位ＶＹＢが保持され、ノードＭＢｂに信号電位ＶＹが保持されている例を示す。ここで、信号電位ＶＸＢは、信号電位ＶＸに対応する信号の反転信号の電位に相当する。信号電位ＶＹＢは、信号電位ＶＹに対応する信号の反転信号の電位に相当する。期間１では、回路４０２ａ及び回路４０２ｂそれぞれにおいて、ＳＧ２がローレベルであり、スイッチ４２４はオフ状態である。こうして、不揮発性レジスタ４００は、クロック信号ＣＬＫ１とクロック信号ＣＬＫ２に同期して、入力端子Ｄから入力されたデータをフリップフロップ回路４０１ａの帰還ループによって保持し、フリップフロップ回路４０１ａの帰還ループによって保持されたデータをフリップフロップ回路４０１ｂに入力し、フリップフロップ回路４０１ｂの帰還ループによって保持されたデータを出力端子Ｑから出力する。ここで、酸化物半導体層にチャネルが形成されるトランジスタ４１１は、シリコン層やシリコン基板にチャネルが形成されるトランジスタと比較して移動度が低い。移動度が低いトランジスタが帰還ループ上に存在すると、帰還ループにおけるデータ入力及び出力のスピードが遅くなる。不揮発性レジスタ４００では、帰還ループ上に、酸化物半導体層にチャネルが形成されるトランジスタ４１１が存在しない。そのため、帰還ループによるデータの書き込み及び読み出しは高速に行うことができ、不揮発性レジスタ４００におけるデータの書き込み及び読み出し速度（動作速度）は速い。なお、このとき、回路４０２ａ及び回路４０２ｂにおいて、酸化物半導体層にチャネルが形成されるトランジスタ４１１はオフ状態であることが好ましい。仮に、回路４０２ａ及び回路４０２ｂにおいて、トランジスタ４１１が常にオン状態であると、各帰還ループによるデータの書き込み及び読み出し時に、回路４０２ａの容量素子４１２及び回路４０２ｂの容量素子４１２へもデータに対応する信号電位が常に入力されることとなり、各帰還ループによるデータの書き込み及び読み出しの速度が低下してしまう。
【０２３８】
＜電源電圧供給停止前の動作＞
期間２において、ＣＬＫ１、ＣＬＫ２、ＣＬＫＢ１及びＣＬＫＢ２を固定する。即ち、ＣＬＫ１、ＣＬＫ２、ＣＬＫＢ１及びＣＬＫＢ２それぞれを、所定のデータが帰還ループによって保持された状態のＣＬＫ１、ＣＬＫ２、ＣＬＫＢ１及びＣＬＫＢ２のままとする。つまり、通常、クロック信号やクロック信号の反転信号は、ハイレベルまたはローレベルにレベル（信号電位）が周期的に変化する信号であるが、この変化をさせない期間を設ける。ここで、クロック信号やクロック信号の反転信号のレベル（信号電位）を固定する期間を、クロック信号固定期間とも呼ぶ。期間２は、クロック信号固定期間に相当する。このため、クロック信号固定期間において、ノードＭａは信号電位ＶＸのままであり、ノードＭＢａは信号電位ＶＸＢのままであり、ノードＭｂは信号電位ＶＹＢのままであり、ノードＭＢｂは信号電位ＶＹのままである。図１１では、ＣＬＫ１及びＣＬＫ２がローレベルに固定され、ＣＬＫＢ１及びＣＬＫＢ２がハイレベルに固定される例を示したがこれに限定されない。ＣＬＫ１及びＣＬＫ２がハイレベルに固定され、ＣＬＫＢ１及びＣＬＫＢ２がローレベルに固定されてもよい。そして、クロック信号固定期間において、回路４０２ａ及び回路４０２ｂそれぞれにおいて、ＳＧ１をハイレベルからローレベルに変化させることにより、オフ電流が極めて小さいトランジスタ４１１をオフ状態とする。例えば、回路４０２ａ及び回路４０２ｂそれぞれについて、クロック信号固定期間の直前において、ＳＧ１がハイレベルでありトランジスタ４１１がオン状態であった場合には、クロック信号固定期間においてＳＧ１をハイレベルからローレベルに変化させてトランジスタ４１１をオフ状態とする。例えば、回路４０２ａ及び回路４０２ｂそれぞれについて、クロック信号固定期間の直前において、ＳＧ１がローレベルでありトランジスタ４１１がオフ状態であった場合には、クロック信号固定期間においてＳＧ１をローレベルからハイレベルに変化させてトランジスタ４１１を一旦オン状態とした後に、ＳＧ１をローレベルとしてオフ状態とする。こうして、回路４０２ａにおいて、容量素子４１２の一対の電極のうちの一方に対応するノードＦの電位はＶＸとなり、回路４０２ｂにおいて、容量素子４１２の一対の電極のうちの一方に対応するノードＦの電位はＶＹＢとなる。なお、回路４０２ａ及び回路４０２ｂそれぞれにおいて、トランジスタ４１１がハイレベルとなった後、ノードＦの電位が上記電位となる迄には、時間がかかる。こうして、各帰還ループによって保持されていたデータに対応する信号（電位）を回路４０２ａ及び回路４０２ｂそれぞれの容量素子４１２に保持する。なお、回路４０２ａ及び回路４０２ｂそれぞれにおいて、ＳＧ２はローレベルであり、スイッチ４２４はオフ状態のままである。
【０２３９】
このように、クロック信号やクロック信号の反転信号のレベルを一定に保った状態で、オフ電流が極めて小さいトランジスタ４１１をオフ状態とすることによって、各帰還ループによって保持されたデータに対応する信号（電位）の変動を抑制した状態で、当該データに対応する信号（電位）を回路４０２ａ及び回路４０２ｂそれぞれの容量素子４１２に保持することができる。
【０２４０】
＜電源電圧供給停止の動作＞
期間３において、不揮発性レジスタ４００への電源電圧の供給を停止する（電源電圧Ｖを０にする）。こうして、期間３において、ノードＭａ、ノードＭｂ、ノードＭＢａ及びノードＭＢｂの電位は任意となる。また、期間３において、クロック信号及びクロック信号の反転信号の供給を停止することができる。ここで、クロック信号及びクロック信号の反転信号の供給を停止するとは、ＣＬＫ１とＣＬＫＢ１を供に同じレベル（例えば、ローレベル）とし、ＣＬＫ２とＣＬＫＢ２を供に同じレベル（例えば、ローレベル）とすることに相当する。こうして、電源電圧だけでなく、クロック信号及びクロック信号の反転信号の供給を停止することによって、クロック信号やクロック信号の反転信号を供給するための電力も削減することができる。なお、回路４０２ａ及び回路４０２ｂそれぞれにおいて、ＳＧ２はローレベルであり、スイッチ４２４はオフ状態のままである。
【０２４１】
ここで、回路４０２ａ及び回路４０２ｂそれぞれにおいて、ＳＧ１はローレベルであり、オフ電流が極めて小さいトランジスタ４１１はオフ状態のままであり、不揮発性レジスタ４００への電源電圧Ｖの供給が停止した後においても、各帰還ループによって保持されていたデータに対応する信号（電位）が回路４０２ａ及び回路４０２ｂそれぞれの容量素子４１２によって保持される。つまり、回路４０２ａにおけるノードＦの電位はＶＸのままであり、回路４０２ｂにおけるノードＦの電位はＶＹＢのままである。こうして、オフ電流が極めて小さいトランジスタ４１１を用いることによって、回路４０２ａ及び回路４０２ｂそれぞれの容量素子４１２によって保持された信号（電位）を長期間保つことができるため、不揮発性レジスタ４００は電源電圧の供給が停止した後も、長期間に渡ってデータを保持することができる。また、データの書き換えを繰り返すことによる不揮発性レジスタ４００の疲労は少なく、データの書き換え可能な回数を多くすることができる。
【０２４２】
なお、不揮発性レジスタ４００では、回路４０２ａ及び回路４０２ｂそれぞれにおいて、オフ電流が極めて小さいトランジスタ４１１がオフ状態となり、且つスイッチ４２４がオフ状態となっている間は、容量素子４１２の一対の電極のうちの一方と、帰還ループの各ノードとは、電気的に遮断されている。それ故、回路４０２ａ及び回路４０２ｂそれぞれにおいて、トランジスタ４１１がオフ状態となり、且つスイッチ４２４がオフ状態となっていれば、不揮発性レジスタ４００への電源電圧の供給停止と、クロック信号及びクロック信号の反転信号の供給停止とは、同時に行うこともできるし、一方を行った後に他方を行うこともできる。つまり、電源電圧供給停止のシーケンスに自由度がある。
【０２４３】
＜電源電圧供給再開の動作＞
期間４において、電源電圧ＶをＶＤＤとして、不揮発性レジスタ４００への電源電圧の供給を再開する。また、電源電圧の供給停止時におけるレベル（信号電位）に戻して固定された、クロック信号やクロック信号の反転信号を供給する。こうして、クロック信号固定期間を開始する。図１１では、ＣＬＫ１及びＣＬＫ２がローレベルに固定され、ＣＬＫＢ１及びＣＬＫＢ２がハイレベルに固定される。ここで、回路４０２ａ及び回路４０２ｂそれぞれにおいて、トランジスタ４１１がオフ状態となり、且つスイッチ４２４がオフ状態となっていれば、不揮発性レジスタ４００への電源電圧の供給再開と、電源電圧の供給停止時におけるレベル（信号電位）に戻して固定されたクロック信号やクロック信号の反転信号の供給再開とは、同時に行うこともできるし、一方を行った後に他方を行うこともできる。つまり、電源電圧供給再開のシーケンスに自由度がある。
【０２４４】
その後、回路４０２ａ及び回路４０２ｂそれぞれにおいて、ＳＧ２はハイレベルとして、スイッチ４２４をオン状態とする。なお、回路４０２ａ及び回路４０２ｂそれぞれにおいて、ＳＧ１はローレベルであり、オフ電流が極めて小さいトランジスタ４１１はオフ状態のままである。回路４０２ａにおいて、容量素子４１２によって保持された信号（電位）、つまりノードＦの電位ＶＸは演算回路４２３によって対応する信号ＶＸＢに変換され、スイッチ４２４がオン状態となると、帰還ループのノードＭＢａに入力される。こうして、ノードＭＢａの電位はやがてＶＸＢとなる。すると、ノードＭａの電位もやがてＶＸとなる。回路４０２ｂにおいて、容量素子４１２によって保持された信号（電位）、つまりノードＦの電位ＶＹＢは演算回路４２３によって対応する信号ＶＹに変換され、スイッチ４２４がオン状態となると、帰還ループのノードＭＢｂに入力される。こうして、ノードＭＢｂの電位はやがてＶＹとなる。すると、ノードＭｂの電位もやがてＶＹＢとなる。こうして、電源電圧の供給停止前に保持していたデータを再び帰還ループによって保持することができる。その後、回路４０２ａ及び回路４０２ｂそれぞれにおいて、ＳＧ２はローレベルとして、スイッチ４２４を再びオフ状態とする。
【０２４５】
期間５において、クロック信号やクロック信号の反転信号のレベル（信号電位）の固定を解除する。即ち、クロック信号やクロック信号の反転信号を、ハイレベルまたはローレベルにレベル（信号電位）が周期的に変化する通常の信号に戻す。こうして、不揮発性レジスタは、帰還ループによるデータの書き込み及び読み出しを再開することができる。その後の動作は、上記（電源電圧供給時の動作）と同様である。
【０２４６】
上記のとおり、帰還ループに保持されたデータを容量素子４１２に書き込むための経路（データ待避経路）と、容量素子４１２に保持されたデータを帰還ループに戻すための経路（データ復帰経路）とが異なる。データ復帰経路に配置されるスイッチ４２４として、移動度が高い素子を用いることにより、（電源電圧供給再開の動作）をより高速に行うことができる。例えば、トランジスタ４１３として、シリコン層またはシリコン基板にチャネルが形成されるトランジスタを用いることによって、（電源電圧供給再開の動作）をより高速に行うことができる。
【０２４７】
以上が、不揮発性レジスタ４００の駆動方法の説明である。
【０２４８】
＜記憶装置、信号処理回路＞
本発明の記憶装置の一態様は、不揮発性レジスタ４００を一または複数用いて構成された記憶装置とすることができる。また、本発明の信号処理回路の一態様は、当該記憶装置を用いた信号処理回路とすることができる。例えば、信号処理回路が有するレジスタ、キャッシュメモリ等の記憶装置に不揮発性レジスタ４００を用いることができる。
【０２４９】
さらに、信号処理回路は、上記記憶装置に加え、記憶装置とデータのやり取りを行う演算回路等の各種論理回路を有してもよい。そして、記憶装置へ電源電圧の供給を停止すると共に、当該記憶装置とデータのやり取りを行う演算回路への電源電圧の供給を停止するようにしても良い。
【０２５０】
本発明の信号処理回路の一態様は、ＣＰＵと、メモリと、メモリとＣＰＵとのアクセスを制御する周辺制御装置とを有し、ＣＰＵ、メモリ、及び周辺制御装置はそれぞれ、不揮発性レジスタ４００を有する構成であってもよい。そして、ＣＰＵ、メモリ、及び周辺制御装置を有する信号処理回路の全体において、電源電圧の供給を停止するようにしてもよい。
【０２５１】
不揮発性レジスタ４００を信号処理回路に用いることで、電源電圧の供給停止によるデータの消失を防ぐことができ、電源電圧を再供給した後、短時間で電源供給停止前の状態に復帰することができる。そのため、必要なときのみ電源電圧を供給する、ノーマリオフの駆動方法を採用することができ、消費電力を大幅に削減することができる。また、信号処理回路の動作速度を高速化することができ、更に信頼性も高めることができる。
【０２５２】
本実施の形態は、他の実施の形態と適宜組み合わせて実施することが可能である。
【符号の説明】
【０２５３】
１００    半導体装置
１０１    ＣＰＵ
１０２    主記憶装置
１０３    補助記憶装置
１０４    キャッシュメモリ
１０５    レジスタ
１０６    演算回路
１０７    電源管理回路
１０８    設定レジスタ
１０９    制御回路
１１０    記憶装置
１１１    電源電圧
２００    ライン
２０１    バリッドビット
２０２    ダーティービット
２０３    データ領域
２０４    セット
２０５    タグ領域
２０７    フラグ領域
３０１    データ線
３０２    データ線
３０３    データ線
３０４    ワード線
３０５    電源線
３０６    グランド線
３０７    ワード線
３０８    Ｎチャネル型トランジスタ
３０９    Ｎチャネル型トランジスタ
３１０    Ｎチャネル型トランジスタ
３１１Ａ    ノード
３１１Ｂ    ノード
３１２    Ｎチャネル型トランジスタ
３１３    インバータ回路
３１４Ａ    Ｎチャネル型トランジスタ
３１４Ｂ    Ｐチャネル型トランジスタ
３１５Ａ    配線
４００    不揮発性レジスタ
４０１    フリップフロップ回路
４０１ａ    フリップフロップ回路
４０１ｂ    フリップフロップ回路
４０２    回路
４０２ａ    回路
４０２ｂ    回路
４１１    トランジスタ
４１２    容量素子
４１３    トランジスタ
４２１    演算回路
４２１ａ    演算回路
４２１ｂ    演算回路
４２２    演算回路
４２２ａ    演算回路
４２２ｂ    演算回路
４２３    演算回路
４２４    スイッチ
４２６ａ    アナログスイッチ
４２６ｂ    アナログスイッチ
４３０    インバータ
４３０ａ    インバータ
４３０ｂ    インバータ
８００    メモリセル
８０１    Ｎチャネル型トランジスタ
８０２    Ｎチャネル型トランジスタ
８０３    Ｐチャネル型トランジスタ
８０４    Ｐチャネル型トランジスタ
８０５    Ｎチャネル型トランジスタ
８０６    Ｎチャネル型トランジスタ
８０７    電源線
８０８    グランド線
８０９    ワード線
８１０    データ線
８１１    データ線
８１２    ノード
８１３    ノード
８１４    インバータ回路
８１５    インバータ回路
８１６    フリップフロップ回路
９００    メモリセル
９０１    Ｎチャネル型トランジスタ
９０２    コンデンサ
９０３    グランド線
９０４    ワード線
９０５    データ線
９０３３    留め具
９０３４    スイッチ
９０３５    電源スイッチ
９０３６    スイッチ
９０３８    操作スイッチ
９６３０    筐体
９６３１    表示部
９６３１ａ    表示部
９６３１ｂ    表示部
９６３２ａ    領域
９６３２ｂ    領域
９６３３    太陽電池
９６３４    充放電制御回路
９６３５    バッテリー
９６３６    ＤＣＤＣコンバータ
９６３７    コンバータ
９６３８    操作キー
９６３９    ボタン
【図１】
2013250962.tif 000003
【図２】
2013250962.tif 000004
【図３】
2013250962.tif 000005
【図４】
2013250962.tif 000006
【図５】
2013250962.tif 000007
【図６】
2013250962.tif 000008
【図７】
2013250962.tif 000009
【図８】
2013250962.tif 000010
【図９】
2013250962.tif 000011
【図１０】
2013250962.tif 000012
【図１１】
2013250962.tif 000013
【図１２】
2013250962.tif 000014
【図１３】
2013250962.tif 000015
【図１４】
2013250962.tif 000016