本発明に係る実施の形態の例について説明する。なお、本発明の趣旨及び範囲から逸脱することなく実施の形態の内容を変更することは、当業者であれば容易である。よって、例えば本発明は、下記実施の形態の記載内容に限定されない。
なお、各実施の形態の内容を互いに適宜組み合わせることができる。また、各実施の形態の内容を互いに適宜置き換えることができる。
また、第1、第2などの序数は、構成要素の混同を避けるために付しており、各構成要素の数は、序数の数に限定されない。
(実施の形態1)
本実施の形態では、プロセッサの例について説明する。
本実施の形態のプロセッサの構成例を図1に示す。
図1に示すプロセッサは、命令レジスタ部101と、命令デコード部102と、論理部103と、データ解析部104と、制御部105と、を含む。なお、図2に示すように、記憶部106により、命令デコード部102、論理部103、及びデータ解析部104のそれぞれに対してデータの読み出し又は書き込みを行ってもよい。また、記憶部106には、レジスタファイル、アキュームレータ、プログラムカウンタ、及びフラグレジスタなどを含む複数のレジスタが設けられる。
命令レジスタ部101には、フェッチにより、連続する複数の命令のデータ100が取り込まれる。命令レジスタ部101は、翻訳を行う命令のデータを記憶する機能を有する。また、命令デコード部102は、フェッチにより命令レジスタ部101に取り込まれた複数の命令のデータのそれぞれを翻訳する機能を有する。命令のデータ100は、例えばメモリなどからインターフェースなどを介して入力される。
例えば、図3に示すように、命令レジスタ部101には、複数の命令のデータ毎(命令1データ乃至命令Nデータ)に命令レジスタ111(命令レジスタ111_1乃至111_N)が設けられる。また、命令デコード部102には、複数の命令のデータ毎(命令1データ乃至命令Nデータ)に命令デコーダ121(命令デコーダ121_1乃至121_N)が設けられる。
また、図1及び図2に示す論理部103には、機能回路130が設けられる。機能回路130には、クロック信号CLK及び電源電圧PWRが供給される。また、機能回路130には、命令デコード部102で翻訳された複数の命令のデータを含むデータ信号が供給される。機能回路130は、供給された命令のデータに従って動作する。なお、図1及び図2に示すように論理部103に複数の機能回路130を設けてもよい。また、機能回路130に、命令のデータを含むデータ信号及びクロック信号CLK以外の信号が入力されてもよい。
機能回路130としては、クロック信号CLKにより動作が制御され、電源電圧PWRが供給されることで動作する回路を適用できる。機能回路130は、例えばNOT回路、OR回路、AND回路、NOR回路、及びNAND回路の一つ又は複数などを用いて構成される。例えば、レジスタやフリップフロップなどを用いて機能回路130を構成してもよい。また、複数の論理回路を組み合わせて加算回路又は減算回路などの演算回路を機能回路130に用いてもよい。
データ解析部104は、命令デコード部102で翻訳された複数の命令のデータを解析することにより、複数の命令を連続して実行する際に機能回路130の動作が不要な期間(非動作期間ともいう)を割り出す。さらに、データ解析部104は、非動作期間の長さに従い、機能回路130に対するクロック信号CLK、又はクロック信号CLK及び電源電圧PWRの供給を停止する期間を設定する。
データ解析部104には、例えば図4に示すように、使用タイミング解析回路141、停止タイミング解析回路142、及び制御信号出力回路143が設けられる。
使用タイミング解析回路141は、翻訳された複数の命令のデータ(命令1乃至命令N翻訳データ)を含むデータ信号を解析し、複数の命令を連続して実行する場合の機能回路130の非動作期間を割り出す機能を有する。
停止タイミング解析回路142は、使用タイミング解析回路141により割り出された非動作期間のデータを元に、機能回路130に対するクロック信号CLK、又はクロック信号CLK及び電源電圧PWRの供給を停止するタイミング及び長さを設定する機能を有する。
例えば、停止タイミング解析回路142は、使用タイミング解析回路141で割り出された非動作期間を示す数値データと基準となる期間T1、期間T2を示す数値データを比較する。期間T2は、期間T1よりも長い期間である。
制御信号出力回路143は、停止タイミング解析回路142による比較結果に基づいて機能回路130に対するクロック信号CLKの供給を制御するための制御信号CTL_CLK、及び機能回路130に対する電源電圧PWRの供給を制御するための制御信号CTL_PWRを生成して出力する機能を有する。
さらに、データ解析部104の具体例を図17に示す。
図17に示す使用タイミング解析回路141は、レジスタ161と、メモリ162と、プログラムカウンタ163と、論理回路164と、カウンタ制御回路165と、カウンタ166と、を有する。
レジスタ161は、命令デコード部102から入力された複数の命令のデータを保持する機能を有する。
メモリ162には、入力された命令のデータに基づく命令を実行する際の機能回路130の動作又は非動作を示すデータ(例えば2値のデジタルデータ)が記憶されている。メモリ162は、レジスタ161から入力された複数の命令のデータに対応する機能回路130の動作又は非動作を示すデータを出力する機能を有する。メモリ162は、例えば連想メモリなどを用いて構成される。なお、論理回路164を用いてメモリ162からのデータの出力を制御してもよい。
プログラムカウンタ163には、命令レジスタ部101でフェッチを行う複数の命令のデータに対応するアドレスデータのうち、最も小さい値のデータが少なくとも記憶されている。例えば、命令レジスタ部101でフェッチを行う命令データが連続する複数の命令データであれば、最初に実行する命令のデータのアドレスデータが記憶されている。最初に実行する命令のデータのアドレスが記憶されていれば、連続する残りの命令のデータのアドレスも判別することができる。
論理回路164は、プログラムカウンタ163に記憶されたアドレスデータを用いてレジスタ161に記憶された複数の命令データを検索し、翻訳された複数の命令のデータに対応するアドレスを判別する機能を有する。これにより、例えば翻訳された複数の命令に条件分岐命令が含まれている場合、該条件分岐命令のジャンプ先のアドレスに対応する命令のデータが、翻訳された複数の命令のデータの中に含まれているかどうかを判別することもできる。
カウンタ制御回路165は、論理回路164により判別された複数の命令のデータに応じてカウンタ166のカウント動作を制御する機能を有する。例えば、カウンタ制御回路165は、レジスタ161に記憶された複数の命令データの実行順に合わせてカウンタ166のインクリメントを行う。また、複数の命令データに条件分岐命令とジャンプ先のデータが含まれる場合、カウンタ制御回路165は、例えば機能回路130での条件分岐の結果を参照し、条件分岐命令のデータのアドレスに対応する値まではカウンタ166のインクリメントを行い、その後カウント値を条件分岐命令のジャンプ先のデータのアドレスに対応する値に変更してもよい。
カウンタ166は、カウンタ制御回路165からクロック信号が入力され、該クロック信号に従ってインクリメントを行う機能を有する。なお、論理回路及びスイッチを用い、論理回路によりカウンタ166でのカウント値が基準値以上になったと判断したときに、スイッチを用いてカウンタ166の出力ノードを浮遊状態にしてさらに別のスイッチを用いて該出力ノードを別の値(例えば条件分岐命令のジャンプ先の命令データのアドレスに対応する値)に書き換えることもできる。
図17に示す停止タイミング解析回路142は、シフトレジスタ171と、論理回路172と、を有する。
シフトレジスタ171は、例えばシリアルイン−パラレルアウトのシフトレジスタにより構成される。シフトレジスタ171には、メモリ162から機能回路130の動作又は非動作を示すデータがクロックパルス毎に順に入力される。上記クロックパルスは、一つの期間に相当する。なお、クロック信号CLKの供給を制御するための制御信号CTL_CLKの生成用、電源電圧PWRの供給を制御するための制御信号CTL_PWRの生成用として別々に上記シフトレジスタ171が設けられてもよい。このとき、複数のシフトレジスタ171のそれぞれには、使用タイミング解析回路141のメモリ162から機能回路130の動作又は非動作を示すデータがクロックパルス毎に順に入力される。
シフトレジスタ171は、クロックパルスに従って機能回路130の動作又は非動作を示すデータをフリップフロップ毎にシフトさせ、該データを複数のフリップフロップで出力される複数のデータ信号のいずれか一つとして順に出力する。
論理回路172は、シフトレジスタ171から入力された複数のデータ信号を用いて比較動作に相当する論理演算を行い、演算結果に従って電位が設定された複数のデータ信号を出力する機能を有する。このとき、出力する複数のデータ信号の数は、シフトレジスタ171から入力される複数のデータ信号に対応させて同じであることが好ましい。
例えば、制御信号出力回路143で制御信号CTL_CLKを生成する場合、論理回路172は、シフトレジスタ171において連続する複数のフリップフロップから出力されたデータ信号のデータで且つ機能回路130の非動作を示すデータの数が基準値(期間T1に相当)を超えたときに、上記連続する複数のフリップフロップから出力されたデータ信号に対応して出力する複数のデータ信号を、クロック信号CLKの供給の停止を示すデータとしてローレベルにし、それ以外では、ハイレベルにする。また、制御信号CTL_PWRを生成する場合、論理回路172は、上記データの数が基準値(期間T2に相当)を超えたときに、上記連続する複数のフリップフロップから出力されたデータ信号に対応して出力する複数のデータ信号を、電源電圧PWRの供給の停止を示すデータとしてローレベルにし、それ以外では、ハイレベルにする。よって、論理回路172から出力される複数のデータ信号のデータのそれぞれは、各命令に対応するクロック信号CLKの供給の停止又は電源電圧PWRの供給の停止を設定するデータに相当する。
図17に示す制御信号出力回路143は、シフトレジスタ181と、レジスタ182と、セレクタ183と、を有する。
シフトレジスタ181は、例えばパラレルイン−シリアルアウトのシフトレジスタにより構成される。例えば、制御信号CTL_CLKの生成用、制御信号CTL_PWRの生成用としてシフトレジスタ181を複数設けてもよい。このとき、論理回路172から出力される複数のデータ信号のデータのそれぞれは、複数のシフトレジスタ181のそれぞれに入力される。
シフトレジスタ181の各フリップフロップには、論理回路172から対応するデータ信号が入力される。シフトレジスタ181は、クロックパルスに従って各命令を実行する期間にクロック信号CLKの供給の停止又は電源電圧PWRの供給の停止を設定するデータをフリップフロップ毎にシフトさせる。これにより、例えば最終段のフリップフロップの出力データは、クロックパルスに従って複数の命令に対応するクロック信号CLKの供給の停止又は電源電圧PWRの供給の停止を設定するデータに順に変化する。このとき、シフトレジスタ181は、最終段のフリップフロップの出力データを制御信号CTL_CLK又は制御信号CTL_PWRとして出力する。なお、シフトレジスタ181に入力されるクロック信号は、例えばカウンタ制御回路165から出力されるクロック信号を用いることが好ましい。これにより、命令に基づく機能回路130の動作と、クロック信号CLK及び電源電圧PWRの停止と、のタイミングを同期させることができる。
レジスタ182には、レジスタ161から出力された複数の命令データが記憶されている。
セレクタ183は、カウンタ166のカウント値に従って、レジスタ182に記憶された複数の命令データのうち、どの命令データを出力するかを制御する機能を有する。例えば、セレクタ183は、カウンタ166のカウント値が「100」のときに、レジスタ182に記憶された「100」のアドレスの命令データを選択して出力することができる。
以上がデータ解析部104の具体例である。
また、図1及び2に示す制御部105は、データ解析部104の解析結果に従って機能回路130に対するクロック信号CLK、又はクロック信号CLKと電源電圧PWRの両方の供給を制御する機能を有する。
制御部105には、例えば図5に示すように、クロック信号制御回路151及び電源電圧制御回路152が設けられる。
クロック信号制御回路151は、制御信号CTL_CLKに従って機能回路130に対するクロック信号CLKの供給を制御する機能を有する。例えば、スイッチ(例えばクロックゲートなど)を設け、制御信号CTL_CLKに従って該スイッチをオン状態にすることにより、クロック信号CLKを機能回路130に供給することができる。
電源電圧制御回路152は、制御信号CTL_PWRに従って機能回路130に対する電源電圧PWRの供給を制御する機能を有する。例えば、スイッチ(例えばパワーゲートなど)を設け、制御信号CTL_PWRに従って該スイッチをオン状態にすることにより、電源電圧PWRを機能回路130に供給することができる。
以上が図1及び2に示すプロセッサの構成例の説明である。
次に、本実施の形態に係るプロセッサの駆動方法例について説明する。
図6は、図1に示すプロセッサの駆動方法例を説明するためのフローチャートである。
図1に示すプロセッサの駆動方法例では、ステップS1−1として複数の命令のデータのフェッチを行う。
このとき、命令レジスタ部101では、複数の命令のデータが取り込まれる。
次に、ステップS1−2として命令レジスタ部101に取り込まれた複数の命令のデータを翻訳する。
このとき、命令デコード部102では、命令レジスタ部101に取り込まれた複数の命令のそれぞれが翻訳される。
翻訳された複数の命令のデータのそれぞれは、データ解析部104に入力される。
次に、ステップS1−3として翻訳された複数の命令のデータを解析する。
このとき、データ解析部104では、複数の命令を連続して順次実行する場合の機能回路130の非動作期間T0を、翻訳された複数の命令のデータを解析して割り出し、非動作期間T0の長さに従って機能回路130に対するクロック信号CLK、又はクロック信号CLK及び電源電圧PWRの供給の停止を設定する制御信号を生成する。
ここで、ステップS1−3のデータ解析の具体例について、図7のフローチャートを用いて説明する。ここでは、データ解析部104が図4に示す構成であるとして説明するがこれに限定されない。
まず、ステップS2−1として、非動作期間T0の割り出しを行う。
このとき、使用タイミング解析回路141により複数の命令のデータを解析することにより、非動作期間T0を割り出す。
例えば、図17に示す構成の場合、使用タイミング解析回路141は、プログラムカウンタ163に記憶されたアドレスデータを用いて論理回路164によりレジスタ161に記憶された命令のデータの内容を判別する。なお、プログラムカウンタ163に記憶されたアドレスデータに従って外部メモリから対応する複数の命令データを命令レジスタ部101に入力してもよい。
さらに、論理回路164によりレジスタ161から入力された複数の命令のデータに対応する機能回路130の動作及び非動作を示すデータをメモリ162から出力する。
次に、ステップS2−2として、第1の比較処理を行う。
このとき、停止タイミング解析回路142により、使用タイミング解析回路141により割り出された機能回路130の非動作期間T0の長さを数値化し、非動作期間T0を表す数値データと、期間T1を表す数値データとを比較する。期間T1は、クロック信号CLKの供給を停止させる際のオーバヘッドによる消費電力を相殺するために必要なクロック信号CLKの停止期間である。例えば、プロセッサの設計仕様から期間T1を決めることができる。
次に、ステップS2−3として、第1の比較処理の結果、非動作期間T0が期間T1よりも長いか否かを判定する。
非動作期間T0が期間T1以下の場合には、機能回路130に対してクロック信号CLK及び電源電圧PWRの供給を停止させないため、ステップS2−6aとして、機能回路130に対するクロック信号CLKの供給及び電源電圧PWRの供給が維持されるように制御信号CTL_CLK及びCTL_PWRの値を設定し、制御信号出力回路143により出力する。
また、非動作期間T0が期間T1よりも長い場合には、ステップS2−4として、第2の比較処理を行う。
このとき、停止タイミング解析回路142により、非動作期間T0を表す数値データと、期間T2を表す数値データとを比較する。期間T2は、クロック信号CLK及び電源電圧PWRの供給を停止させる際のオーバヘッドによる消費電力を相殺するために必要なクロック信号CLK及び電源電圧PWRの停止期間である。例えば、プロセッサの設計仕様から期間T2を決めることができる。
次に、ステップS2−5として、第2の比較処理の結果、非動作期間T0が期間T2よりも長いか否かを判定する。
非動作期間T0が期間T2よりも長い場合には、クロック信号CLKの供給及び電源電圧PWRの供給を停止させるため、ステップS2−6bとして、クロック信号CLKの供給が停止し、電源電圧PWRの供給が停止するように、制御信号CTL_CLK及びCTL_PWRの値を設定し、制御信号出力回路143により出力する。
また、非動作期間T0が期間T2以下の場合には、機能回路130に対してクロック信号CLKの供給を停止できても電源電圧PWRの供給を停止させないため、ステップS2−6cとして、機能回路130に対するクロック信号CLKの供給が停止し、電源電圧PWRの供給が維持されるように、制御信号CTL_CLK及びCTL_PWRの値を設定し、制御信号出力回路143により出力する。
例えば、図17に示す構成の場合、停止タイミング解析回路142は、シフトレジスタ171により使用タイミング解析回路141から入力される複数のデータ信号(機能回路130の動作又は非動作を設定するデータ信号)を順にシフトさせながら、シフトレジスタ171のフリップフロップからデータ信号をそれぞれ出力する。さらに、停止タイミング解析回路142は、論理回路172により、上記フリップフロップから出力された複数のデータ信号の演算処理を行い、演算結果に応じて論理回路172から出力するデータ信号を、クロック信号CLK又は電源電圧PWRの供給の停止を示すデータ(例えばローレベル)にするか否かを設定する。さらに、制御信号出力回路143は、論理回路172からデータ信号が入力されるシフトレジスタ181の最終段のフリップフロップの出力データを制御信号CTL_CLK又は制御信号CTL_PWRとして出力する。
以上がステップS1−3のデータ解析の具体例の説明である。
次に、図6に示すステップS1−4としてデータ解析部104により生成された制御信号に従って機能回路130に対するクロック信号、又はクロック信号及び電源電圧の供給を制御することにより、クロックゲーティング及びパワーゲーティングを実行する。
このとき、非動作期間T0が期間T1よりも長いと判定された機能回路130には、クロック信号CLKの供給が停止し、非動作期間T0が期間T2よりも長いと判定された機能回路130には、クロック信号CLK及び電源電圧PWRの供給が停止する。
また、クロック信号CLK及び電源電圧PWRが供給される機能回路130は、入力される命令のデータに従って動作する。命令のデータは、データ解析部104を介して機能回路130に入力されるが、これに限定されず、命令デコード部102により翻訳された命令のデータが直接論理部103に入力されてもよい。
さらに、別の命令のデータがある場合には、繰り返し上記動作を行う。
例えば、図17に示す構成の場合、使用タイミング解析回路141においては、カウンタ制御回路165に従い、論理回路164により判別された複数の命令データに応じてカウンタ166のインクリメントを行う。制御信号出力回路143は、カウント値に従い、セレクタ183を介してレジスタ182に保持された命令データを機能回路130に出力する。このとき、同じクロック信号を用いてシフトレジスタ181及びカウンタ166を制御することにより、セレクタ183を介して命令データを機能回路130に出力するタイミングと、クロック信号CLK及び電源電圧PWRを供給するタイミングを同期して機能回路130を動作させることができる。
以上が図1に示すプロセッサの駆動方法例の説明である。
さらに、一例として論理部103に機能回路130_1乃至130_4が設けられ、複数の命令のデータとして命令1乃至命令20のデータをまとめて解析する場合のプロセッサの駆動方法例について図8を用いて説明する。図8は、データ解析例を説明するための模式図であり、横軸が時間であり、時間毎に命令1乃至命令20が連続して実行されるとする。また、ここでは命令1乃至命令20の実行期間が同じとし、期間T1を命令1つ分の長さとし、期間T2を命令11個分の長さとする。また、便宜のため、機能回路130_1乃至130_4に供給される制御信号CTL_CLKをそれぞれ制御信号CTL_CLK1乃至CTL_CLK4とし、機能回路130_1乃至130_4に供給される制御信号CTL_PWRをそれぞれ制御信号CTL_PWR1乃至CTL_PWR4とする。また、制御信号CTL_CLK1乃至CTL_CLK4、及び制御信号CTL_PWR1乃至CTL_PWR4のそれぞれはデジタル信号とする。
ステップS2−1の終了後、解析された機能回路130_1乃至130_4の非動作期間T0は、図8中、データD130_1乃至データD130_4のように表すことができる。
このとき、機能回路130_1は、命令10の間が非動作期間T0となる。また、機能回路130_2は、命令3乃至6の間が非動作期間T0(T0aとする)となり、また命令15乃至18の間が非動作期間T0(T0bとする)となる。また、機能回路130_3は、命令4乃至19の間が非動作期間T0となる。また、機能回路130_4は、命令1乃至20の間が非動作期間T0となる。このように、1つの機能回路130で複数の命令を連続して実行する場合において、非動作期間が複数存在する場合もある。
さらに、上記解析された非動作期間T0を元に、ステップS2−2の第1の比較処理、及びステップS2−4の第2の比較処理を行った結果、機能回路130_1では、命令10の非動作期間T0の長さが期間T1の長さ以下である。このため、命令1乃至命令20が実行される間、制御信号CTL_CLK1及びCTL_PWR1がハイレベルになり、クロック信号CLK及び電源電圧PWRの両方が機能回路130_1に供給される。
また、機能回路130_2では、命令3乃至6の間の非動作期間T0aが期間T1よりも大きく、且つ期間T2以下である。このため、命令4及び5が実行される間、制御信号CTL_CLK2がローレベルになり、機能回路130_2に対するクロック信号CLKの供給が停止し、CTL_PWR2がハイレベルになり、機能回路130_2に電源電圧PWRが供給される。また、命令15乃至18の間の非動作期間T0bが期間T1よりも大きく、且つ期間T2以下であるため、命令16及び17が実行される間、制御信号CTL_CLK2がローレベルになり、機能回路130_2に対するクロック信号CLKの供給が停止し、CTL_PWR2がハイレベルになり、機能回路130_2に電源電圧PWRが供給される。なお、図8では、命令毎に制御信号CTL_CLK及びCTL_PWRを制御しているが、これに限定されず、命令の一部の期間で制御信号CTL_CLK及びCTL_PWRのパルスを変えてもよい。また、図8では、クロック信号CLK及び電源電圧PWRの供給を停止する場合、動作不良の発生を抑制するために非動作期間T0よりも制御信号CTL_CLK及びCTL_PWRのローレベルの期間が短いが、これに限定されず非動作期間T0とCTL_CLK及びCTL_PWRのローレベルの期間を同じにしてもよい。
また、機能回路130_3では、命令4乃至19の間の非動作期間T0が期間T2よりも大きいため、命令5乃至18が実行される間、制御信号CTL_CLK3がローレベルになり、命令6乃至17が実行される間、CTL_PWR3がローレベルになり、機能回路130_3に対するクロック信号CLK及び電源電圧PWRの供給が停止する。
また、機能回路130_4では、命令1乃至20の間の非動作期間T0が期間T2よりも大きいため、命令1乃至20が実行される間、制御信号CTL_CLK4及びCTL_PWR4がローレベルになり、機能回路130_4に対するクロック信号CLK及び電源電圧PWRの供給が停止する。
以上のように、図1に示すプロセッサでは、複数の命令のデータを解析し、解析結果に基づき制御信号CTL_CLK及びCTL_PWRの値を設定することにより、複数の機能回路130毎にクロック信号CLKの供給の停止期間と電源電圧PWRの供給の停止期間を設定できる。
さらに、本実施の形態に係るプロセッサの駆動方法の他の例について、図9のフローチャートを用いて説明する。なお、上記に示すプロセッサの駆動方法例と同じ部分については、上記に示すプロセッサの駆動方法例の説明を適宜援用する。ここでは、一例として図2に示すプロセッサの駆動方法例について説明する。
図2に示すプロセッサの駆動方法例では、ステップS3−1として複数の命令のデータのフェッチを行い、ステップS3−2として命令レジスタ部101に取り込まれた複数の命令のデータを翻訳する。
翻訳された複数の命令のデータは、データ解析部104に入力される。
さらに、ステップS3−3として、複数の命令のデータに条件分岐命令のデータが含まれているか否かを判別する。条件分岐命令のデータであるかは、例えばデータの上位ビットの値から判別できる。
例えば、図17に示す構成の場合、使用タイミング解析回路141は、プログラムカウンタ163に記憶されたアドレスデータを用いて論理回路164によりレジスタ161に記憶された命令のデータの内容を判別し、条件分岐命令のデータを判別する。
複数の命令のデータに条件分岐命令のデータが含まれている場合、ステップS3−4aとして翻訳された複数の命令のうち、条件分岐命令までのデータ解析を行う。
このとき、データ解析部104では、複数の命令のデータのうち、条件分岐命令までを連続して順次実行する場合の機能回路130の非動作期間T0を翻訳された複数の命令のデータを解析して割り出し、非動作期間T0の長さに従って機能回路130に対するクロック信号CLK、又はクロック信号CLK及び電源電圧PWRの供給の停止を設定する制御信号CTL_CLK、CTL_PWRを生成する。データ解析の具体例については、図7に示すフローチャートを用いて説明した例を援用できる。
さらに、ステップS3−5aとしてデータ解析部104により生成された制御信号(CTL_CLK、CTL_PWR)に従って機能回路130に対するクロック信号CLK、又はクロック信号CLK及び電源電圧PWRの供給を制御することにより、クロックゲーティング及びパワーゲーティングを実行する。また、複数の命令のデータに条件分岐命令のデータが含まれていない場合には、ステップS3−4bとして複数の命令のデータを解析する。さらに、ステップS3−5bとしてデータ解析部104により生成された制御信号に従って機能回路130に対するクロック信号CLK、又はクロック信号CLK及び電源電圧PWRの供給を制御することにより、クロックゲーティング及びパワーゲーティングを実行する。
また、複数の命令のデータに条件分岐命令のデータが含まれている場合、ステップS3−6として条件分岐の結果を参照する。例えば、図2に示す記憶部106に条件分岐の結果を示すフラグデータを書き込むことにより、データ解析部104などで条件分岐の結果を参照できる。
次に、ステップS3−7として条件分岐の結果に従って残りの命令のデータ解析を行う。例えば、記憶部106のフラグレジスタなどに記憶されるフラグデータをデータ解析部104で監視しておくことにより、条件分岐の結果に従って残りの命令がある場合には、残りの命令のデータ解析を行うことができる。
さらに、ステップS3−8としてデータ解析部104により生成された制御信号(CTL_CLK、CTL_PWR)に従って機能回路130に対するクロック信号CLK、又はクロック信号CLK及び電源電圧PWRの供給を制御することにより、残りの命令のクロックゲーティング及びパワーゲーティングを実行する。
また、クロック信号CLK及び電源電圧PWRが供給される機能回路130は、入力される命令のデータに従って動作する。命令のデータは、データ解析部104を介して機能回路130に入力されるが、これに限定されず、命令デコード部102により翻訳された命令のデータが直接論理部103に入力されてもよい。
さらに、別の命令のデータがある場合には、繰り返し上記動作を行う。
以上が本実施の形態に係るプロセッサの駆動方法の他の例の説明である。
上記に示すように、本実施の形態に係るプロセッサの駆動方法の他の例では、条件分岐命令の有無によって処理を変えることにより、不要な命令のデータ解析をなくすことができ、動作を高速化できる。
さらに、本実施の形態に係るプロセッサの駆動方法の他の例について、図10のフローチャートを用いて説明する。なお、上記に示すプロセッサの駆動方法例と同じ部分については、上記に示すプロセッサの駆動方法例の説明を適宜援用する。ここでは、一例として図2に示すプロセッサの駆動方法例について説明する。
図2に示すプロセッサの駆動方法例では、ステップS4−1として複数の命令のデータのフェッチを行い、ステップS4−2として命令レジスタ部101に取り込まれた複数の命令のデータを翻訳する。
翻訳された複数の命令のデータは、論理部103の機能回路130とデータ解析部104に入力される。
さらに、ステップS4−3として、複数の命令のデータに条件分岐命令のデータが含まれているか否かを判別する。
また、複数の命令のデータに条件分岐命令のデータが含まれていない場合、ステップS4−6aとして翻訳された複数の命令のデータを解析する。
次に、ステップS4−7aとしてデータ解析部104により生成された制御信号に従って機能回路130に対するクロック信号CLK、又はクロック信号CLK及び電源電圧PWRの供給を制御することにより、クロックゲーティング及びパワーゲーティングを実行する。
また、複数の命令のデータに条件分岐命令のデータが含まれている場合、ステップS4−4として翻訳された複数の命令のデータのうち、上記条件分岐命令のジャンプ先の命令のデータが含まれているか否かを判別する。ジャンプ先の命令のデータであるかは、例えばデータの上位ビットの値から判別できる。
例えば、図17に示す構成の場合、使用タイミング解析回路141は、プログラムカウンタ163に記憶されたアドレスデータを用い論理回路164によりレジスタ161に記憶された命令のデータの内容を判別し、条件分岐命令のデータ及び条件分岐命令のジャンプ先のデータを判別する。
複数の命令のデータに上記ジャンプ先の命令のデータが含まれていない場合、ステップS4−6bとして翻訳された複数の命令のうち、条件分岐命令までのデータ解析を行う。その後、ステップS4−7bとしてデータ解析部104により生成された制御信号に従って機能回路130に対するクロック信号CLK、又はクロック信号CLK及び電源電圧PWRの供給を制御することにより、条件分岐命令までのクロックゲーティング及びパワーゲーティングを実行する。
また、複数の命令のデータにジャンプ先の命令のデータが含まれている場合、ステップS4−6cとして翻訳された複数の命令のうち、条件分岐命令までのデータと当該ジャンプ先のデータを解析する。
例えば、図17に示す構成の場合、使用タイミング解析回路141は、論理回路164により条件分岐命令までのデータと、条件分岐命令のジャンプ先のデータに対応する機能回路130の動作及び非動作を示すデータをメモリ162から出力する。
次に、ステップS4−7cとしてデータ解析部104により生成された制御信号に従って機能回路130に対するクロック信号CLK、又はクロック信号CLK及び電源電圧PWRの供給を制御することにより、条件分岐命令までクロックゲーティング及びパワーゲーティングを実行する。さらに、ステップS4−8として条件分岐の結果を参照する。
次に、ステップS4−9として、解析したジャンプ先命令にジャンプ先するかの判別を行う。例えば、記憶部106に記憶されるジャンプ命令の処理結果のデータをデータ解析部104で監視しておくことにより、ジャンプするかの判別を行うことができる。
当該ジャンプ先にジャンプする場合、判別結果を示す判別信号をデータ解析部104に入力し、ステップS4−10としてデータ解析部104により生成された制御信号に従って機能回路130に対するクロック信号CLK、又はクロック信号CLK及び電源電圧PWRの供給を制御することにより、ジャンプ先の命令からクロックゲーティング及びパワーゲーティングを実行する。また、ジャンプ先が当該ジャンプ先でない場合、終了となる。
例えば、図17に示す構成の場合、記憶部106に記憶される条件分岐命令の処理結果のデータがカウンタ制御回路165に入力される。条件分岐命令が示すジャンプ先にジャンプする場合、カウンタ制御回路165は、カウンタ166のカウント値が条件分岐命令のデータに対応する値になったときに、ジャンプ先の命令データに対応するカウント値になるように、カウンタ166の出力ノードの電位を設定する。これにより、条件分岐命令までのデータとジャンプ先のデータをレジスタ182からセレクタ183を介して出力することができる。
また、クロック信号CLK及び電源電圧PWRが供給される機能回路130は、入力される命令のデータに従って動作する。命令のデータは、データ解析部104を介して機能回路130に入力されるが、これに限定されず、命令デコード部102により翻訳された命令のデータが直接論理部103に入力されてもよい。
さらに、別の命令のデータがある場合には、繰り返し上記動作を行う。
以上が本実施の形態に係るプロセッサの駆動方法の他の例の説明である。
上記に示すように、本実施の形態に係るプロセッサの駆動方法の他の例では、条件分岐命令及びジャンプ先の有無によって処理を変えることにより、不要な命令のデータ解析をなくすことができ、動作を高速化できる。
さらに、本実施の形態に係るプロセッサの駆動方法の他の例について、図11のフローチャートを用いて説明する。なお、上記に示すプロセッサの駆動方法例と同じ部分については、上記に示すプロセッサの駆動方法例の説明を適宜援用する。ここでは、一例として図2に示すプロセッサの駆動方法例について説明する。
図2に示すプロセッサの駆動方法例では、ステップS5−1として複数の命令のデータのフェッチを行い、ステップS5−2として命令レジスタ部101に取り込まれた複数の命令のデータを翻訳する。
翻訳された複数の命令のデータは、論理部103の機能回路130とデータ解析部104に入力される。
さらに、ステップS5−3として、翻訳された複数の命令が記憶部106に記憶されたデータに対応する命令と一致するか否かを判別する。一致するかは、例えば予め記憶部106に翻訳されたデータ及び解析結果を示すデータを記憶しておき、記憶された命令のデータと入力される命令のデータを比較することにより判別できる。
例えば、図17に示す構成の場合、使用タイミング解析回路141は、論理回路164によりレジスタ161に記憶された命令のデータと、記憶部106に記憶されたデータとが一致するか否かを判別する。
翻訳された複数の命令が記憶部106に記憶されたデータに対応する命令と一致する場合、ステップS5−4aとして記憶された解析結果のデータを読み出し、ステップS5−5としてデータ解析部104により生成された制御信号に従って機能回路130に対するクロック信号、又はクロック信号及び電源電圧の供給を制御することにより、クロックゲーティング及びパワーゲーティングを実行する。
また、翻訳された複数の命令が記憶部106に記憶されたデータに対応する命令と一致しない場合、ステップS5−4bとして翻訳された複数のデータを解析する。その後、ステップS5−5としてデータ解析部104により生成された制御信号に従って機能回路130に対するクロック信号CLK、又はクロック信号CLK及び電源電圧PWRの供給を制御することにより、クロックゲーティング及びパワーゲーティングを実行する。
また、クロック信号CLK及び電源電圧PWRが供給される機能回路130は、入力される命令のデータに従って動作する。命令のデータは、データ解析部104を介して機能回路130に入力されるが、これに限定されず、命令デコード部102により翻訳された命令のデータが直接論理部103に入力されてもよい。
以上が本実施の形態に係るプロセッサの駆動方法の他の例の説明である。
上記に示すように、本実施の形態に係るプロセッサの駆動方法の他の例では、命令の解析データを記憶部106に記憶することにより、同じ命令のデータ解析を省略できるため、動作を高速化できる。
図1乃至11を用いて説明したように、本実施の形態のプロセッサの一例では、連続する複数の命令のデータの翻訳(デコード)をまとめて行い、翻訳された複数の命令のうち2以上の命令のデータを解析することにより、複数の命令のうち2以上の命令を連続して実行する場合の機能回路の非動作期間の長さを割り出し、該解析結果に従って機能回路に対してクロックゲーティングと、クロックゲーティング及びパワーゲーティングの両方と、を選択して行う。これにより、消費電力を低減できる。
(実施の形態2)
本実施の形態では、本発明の一態様であるプロセッサに適用可能なレジスタの構成例について説明する。
本実施の形態のレジスタの構成例について図12に示す。
図12(A)に示すレジスタは、フリップフロップ(FFともいう)201と、記憶回路(NVMともいう)202と、セレクタ(SELともいう)203と、を有する。なお、フリップフロップ201と記憶回路202を一つの記憶回路とし、レジスタが複数の記憶回路を有していてもよい。
フリップフロップ201には、リセット信号RST、クロック信号CLK、及びデータ信号が入力される。フリップフロップ201は、クロック信号CLKに従って入力されるデータ信号のデータを保持し、データ信号Qとして出力する機能を有する。
記憶回路202には、書き込み制御信号WE、読み出し制御信号RD、及びデータ信号が入力される。
記憶回路202は、書き込み制御信号WEに従って、入力されるデータ信号のデータを記憶し、読み出し制御信号RDに従って、記憶されたデータをデータ信号として出力する機能を有する。
セレクタ203には、端子aを介して読み出し制御信号RD、端子bを介してデータ信号D、及び端子cを介して記憶回路202から出力されるデータ信号(D_NVMともいう)が入力される。
セレクタ203は、読み出し制御信号RDに従って、データ信号D又はデータ信号D_NVMのどちらを端子dを介して出力するか選択する機能を有する。
さらに、記憶回路202の一構成例について、図12(B)を参照して説明する。
図12(B)に示すように、記憶回路202は、データ保持部211及びデータ読み出し部212を含む。なお、上記に限定されず、例えば相変化型メモリ(PRAMともいう)、抵抗変化型メモリ(ReRAMともいう)、磁気抵抗型メモリ(MRAMともいう)などを用いて記憶回路202を構成してもよい。例えば、MRAMとしては磁気トンネル接合素子(MTJ素子ともいう)を用いたMRAMを適用できる。
データ保持部211には、トランジスタ221及び容量素子222が設けられている。
トランジスタ221は、Nチャネル型トランジスタである。トランジスタ221のソース及びドレインの一方は、セレクタ203の出力端子(端子d)に電気的に接続されている。トランジスタ221は、書き込み制御信号WEに従ってセレクタ203から入力されるデータ信号の保持を制御する機能を有する。
トランジスタ221としては、オフ電流の低いトランジスタを用いることができる。
このとき、上記オフ電流の低いトランジスタのオフ電流は、室温(25℃)でチャネル幅1μmあたり1×10−19A(100zA)以下であることが好ましい。
上記オフ電流の低いトランジスタとしては、チャネル形成領域が酸化物半導体で形成されるトランジスタを適用できる。酸化物半導体としては、金属酸化物系の材料を適用でき、例えばインジウム及びガリウムの一方若しくは両方と、亜鉛と、を含む金属酸化物、又は該金属酸化物に含まれるガリウムの一部若しくは全部の代わりに他の金属元素を含む金属酸化物などが挙げられる。
以下では、酸化物半導体膜の構造について説明する。
酸化物半導体膜は、単結晶酸化物半導体膜と非単結晶酸化物半導体膜とに大別される。非単結晶酸化物半導体膜とは、非晶質酸化物半導体膜、微結晶酸化物半導体膜、多結晶酸化物半導体膜、CAAC−OS(C Axis Aligned Crystalline Oxide Semiconductor)膜などをいう。
非晶質酸化物半導体膜は、膜中における原子配列が不規則であり、結晶成分を有さない酸化物半導体膜である。微小領域においても結晶部を有さず、膜全体が完全な非晶質構造の酸化物半導体膜が典型である。
微結晶酸化物半導体膜は、例えば、1nm以上10nm未満の大きさの微結晶(ナノ結晶ともいう。)を含む。従って、微結晶酸化物半導体膜は、非晶質酸化物半導体膜よりも原子配列の規則性が高い。そのため、微結晶酸化物半導体膜は、非晶質酸化物半導体膜よりも欠陥準位密度が低いという特徴がある。
CAAC−OS膜は、複数の結晶部を有する酸化物半導体膜の一つであり、ほとんどの結晶部は、一辺が100nm未満の立方体内に収まる大きさである。従って、CAAC−OS膜に含まれる結晶部は、一辺が10nm未満、5nm未満または3nm未満の立方体内に収まる大きさの場合も含まれる。CAAC−OS膜は、微結晶酸化物半導体膜よりも欠陥準位密度が低いという特徴がある。以下、CAAC−OS膜について詳細な説明を行う。
本明細書において、「平行」とは、二つの直線が−10°以上10°以下の角度で配置されている状態をいう。従って、−5°以上5°以下の場合も含まれる。また、「垂直」とは、二つの直線が80°以上100°以下の角度で配置されている状態をいう。従って、85°以上95°以下の場合も含まれる。
また、本明細書において、結晶が三方晶または菱面体晶である場合、六方晶系として表す。
CAAC−OS膜を透過型電子顕微鏡(TEM:Transmission Electron Microscope)によって観察すると、結晶部同士の明確な境界、即ち結晶粒界(グレインバウンダリーともいう。)を確認することができない。そのため、CAAC−OS膜は、結晶粒界に起因する電子移動度の低下が起こりにくいといえる。
CAAC−OS膜を、試料面と概略平行な方向からTEMによって観察(断面TEM観察)すると、結晶部において、金属原子が層状に配列していることを確認できる。金属原子の各層は、CAAC−OS膜の膜を形成する面(被形成面ともいう。)または上面の凹凸を反映した形状であり、CAAC−OS膜の被形成面または上面と平行に配列する。
一方、CAAC−OS膜を、試料面と概略垂直な方向からTEMによって観察(平面TEM観察)すると、結晶部において、金属原子が三角形状または六角形状に配列していることを確認できる。しかしながら、異なる結晶部間で、金属原子の配列に規則性は見られない。
断面TEM観察および平面TEM観察より、CAAC−OS膜の結晶部は配向性を有していることがわかる。
CAAC−OS膜に対し、X線回折(XRD:X−Ray Diffraction)装置を用いて構造解析を行うと、例えばInGaZnO4の結晶を有するCAAC−OS膜のout−of−plane法による解析では、回折角(2θ)が31°近傍にピークが現れる場合がある。このピークは、InGaZnO4の結晶の(009)面に帰属されることから、CAAC−OS膜の結晶がc軸配向性を有し、c軸が被形成面または上面に概略垂直な方向を向いていることが確認できる。
一方、CAAC−OS膜に対し、c軸に概略垂直な方向からX線を入射させるin−plane法による解析では、2θが56°近傍にピークが現れる場合がある。このピークは、InGaZnO4の結晶の(110)面に帰属される。InGaZnO4の単結晶酸化物半導体膜であれば、2θを56°近傍に固定し、試料面の法線ベクトルを軸(φ軸)として試料を回転させながら分析(φスキャン)を行うと、(110)面と等価な結晶面に帰属されるピークが6本観察される。これに対し、CAAC−OS膜の場合は、2θを56°近傍に固定してφスキャンした場合でも、明瞭なピークが現れない。
以上のことから、CAAC−OS膜では、異なる結晶部間ではa軸およびb軸の配向は不規則であるが、c軸配向性を有し、かつc軸が被形成面または上面の法線ベクトルに平行な方向を向いていることがわかる。従って、前述の断面TEM観察で確認された層状に配列した金属原子の各層は、結晶のab面に平行な面である。
なお、結晶部は、CAAC−OS膜を成膜した際、または加熱処理などの結晶化処理を行った際に形成される。上述したように、結晶のc軸は、CAAC−OS膜の被形成面または上面の法線ベクトルに平行な方向に配向する。従って、例えば、CAAC−OS膜の形状をエッチングなどによって変化させた場合、結晶のc軸がCAAC−OS膜の被形成面または上面の法線ベクトルと平行にならないこともある。
また、CAAC−OS膜中の結晶化度が均一でなくてもよい。例えば、CAAC−OS膜の結晶部が、CAAC−OS膜の上面近傍からの結晶成長によって形成される場合、上面近傍の領域は、被形成面近傍の領域よりも結晶化度が高くなることがある。また、CAAC−OS膜に不純物を添加する場合、不純物が添加された領域の結晶化度が変化し、部分的に結晶化度の異なる領域が形成されることもある。
なお、InGaZnO4の結晶を有するCAAC−OS膜のout−of−plane法による解析では、2θが31°近傍のピークの他に、2θが36°近傍にもピークが現れる場合がある。2θが36°近傍のピークは、ZnGa2O4の結晶の(311)面に帰属されることから、InGaZnO4の結晶を有するCAAC−OS膜中の一部に、ZnGa2O4の結晶が含まれることを示している。CAAC−OS膜は、2θが31°近傍にピークを示し、2θが36°近傍にピークを示さないことが好ましい。
CAAC−OS膜を用いたトランジスタは、可視光や紫外光の照射による電気特性の変動が小さい。よって、当該トランジスタは、信頼性が高い。
なお、酸化物半導体膜は、例えば、非晶質酸化物半導体膜、微結晶酸化物半導体膜、CAAC−OS膜のうち、二種以上を有する積層膜であってもよい。
チャネルを形成する酸化物半導体のキャリア密度は、1×1014atoms/cm3未満、好ましくは1×1012atoms/cm3未満、さらに好ましくは1×1011atoms/cm3未満とすることが好ましい。このようなキャリア密度にするためには、酸化物半導体に含まれるドナー不純物の濃度を低減すれば良く、例えば、ドナー不純物といわれる水素量を1×1019atoms/cm3以下、好ましくは1×1018atoms/cm3以下に低減することが好ましい。
上記キャリア密度にすることにより、チャネル幅1μmあたりの電界効果トランジスタのオフ電流を、1×10−19A(100zA)以下、さらには1×10−20A(10zA)以下、さらには1×10−21A(1zA)以下、さらには1×10−22A(100yA)以下にすることができる。
さらに、インジウム、亜鉛、及びガリウムを含む酸化物半導体でチャネル形成領域を形成したトランジスタのオフ電流の値について図13を用いて説明する。
トランジスタのオフ電流の値は極めて微小であるので、該オフ電流を測定するためには、比較的サイズの大きいトランジスタを作製し、実際に流れるオフ電流を見積もる必要がある。
一例として、トランジスタのチャネル幅Wを1m(1000000μm)、チャネル長Lを3μmとし、温度を150℃、125℃、85℃、27℃と変化させた際のチャネル幅W1μmあたりのオフ電流値から見積もったアレニウスプロットを図13に示す。
図13では、例えば27℃のときのトランジスタのオフ電流が1×10−25A以下である。図13からインジウム、亜鉛、及びガリウムを含む酸化物半導体でチャネル形成領域を形成したトランジスタのオフ電流は、極めて小さいことがわかる。
トランジスタ221に上記オフ電流の低いトランジスタを用いることにより、電源電圧の供給を停止させた場合であっても容量素子222にデータを保持できる。
なお、例えば論理回路を構成するトランジスタ(例えばトランジスタ223及び224)の上にトランジスタ221を積層させてもよい。これにより、回路面積を小さくできる。
また、トランジスタ221にバックゲートを設けてもよい。トランジスタ221にバックゲートを設けることにより、トランジスタの221の閾値電圧をシフトさせることができる。
容量素子222の一対の電極の一方はトランジスタ221のソース及びドレインの他方に電気的に接続され、他方には接地電位が与えられる。容量素子222は、記憶するデータ信号のデータ(D_HLD)に基づく電荷を保持する機能を有する。トランジスタ221のオフ電流が非常に低いため、電源電圧PWRの供給が停止しても容量素子222の電荷は保持され、データ(D_HLD)が保持される。
データ読み出し部212には、トランジスタ223、トランジスタ224、トランジスタ225、及びインバータ226が設けられる。
トランジスタ223は、Pチャネル型トランジスタである。トランジスタ223のソース及びドレインの一方には電源電位が与えられ、ゲートには、読み出し制御信号RDが入力される。該電源電位と接地電位の差が電源電圧となる。
トランジスタ224は、Nチャネル型トランジスタである。トランジスタ224のソース及びドレインの一方は、トランジスタ223のソース及びドレインの他方に電気的に接続されており、ゲートには、読み出し制御信号RDが入力される。
トランジスタ225は、Nチャネル型トランジスタである。トランジスタ225のソース及びドレインの一方は、トランジスタ224のソース及びドレインの他方に電気的に接続されており、ソース及びドレインの他方には、接地電位が与えられる。また、トランジスタ225のゲートの電位は、データD_HLDとなる。
インバータ226の入力端子は、トランジスタ223のソース及びドレインの他方に電気的に接続されている。また、インバータ226の出力端子は、セレクタ203の入力端子(端子c)に電気的に接続され、インバータ226の出力信号がデータ信号D_NVMとなる。
トランジスタ223乃至225、及びインバータ226としては、例えばチャネル形成層にシリコンを用いたトランジスタを適用できる。
次に、図12(A)に示す記憶回路の駆動方法の一例について、図14のタイミングチャートを参照して説明する。
まず、通常動作期間である期間T11において、電源電圧PWR、リセット信号RST、クロック信号CLKは、記憶回路に供給された状態である。このとき、セレクタ203は、データ信号Dのデータをフリップフロップ201に出力する。フリップフロップ201は、クロック信号CLKに従って入力されたデータ信号Dのデータを保持する。
次に、電源電圧PWRを停止する直前のバックアップ期間である期間T12において、書き込み制御信号WEのパルスに従って、記憶回路202にデータ信号Dのデータを記憶させ、データD_HLDとして保持する。その後記憶回路に対するクロック信号CLKの供給を停止し、さらにその後記憶回路に対するリセット信号RSTの供給を停止する。
次に、電源停止期間である期間T13において、記憶回路に対する電源電圧PWRの供給を停止する。このとき、記憶回路202において、トランジスタ221のオフ電流が低いため、データD_HLDの値が保持される。なお、電位Vddの代わりに電位GNDを供給することにより、電源電圧PWRの供給を停止するとみなすこともできる。
次に、通常動作期間に戻る直前のリカバリー期間である期間T14において、記憶回路に対する電源電圧PWRの供給を再開し、その後クロック信号CLKの供給を再開し、さらにその後リセット信号RSTの供給を再開する。このとき、クロック信号CLKが供給される配線を電位Vddにしておき、その後クロック信号CLKの供給を再開する。さらに、読み出し制御信号RDのパルスに従って記憶回路202のデータ読み出し部212によりデータD_HLDに応じた値のデータ信号D_NVMがセレクタ203に出力される。セレクタ203は、読み出し制御信号RDのパルスに従ってデータ信号D_NVMをフリップフロップ201に出力する。これにより、電源停止期間の直前の状態にフリップフロップ201を復帰させることができる。
その後、通常動作期間である期間T15において、再びフリップフロップ201の通常動作を行う。
以上が記憶回路の駆動方法例である。
図12に示す構成のレジスタを機能回路130に用いることにより、電源電圧の供給を停止する直前に第2の記憶回路にデータを退避させ、電源供給を再開させたときに該データを第1の記憶回路に入力し、電源供給を停止する直前の状態に復帰できる。このようにして、電源供給を再開させてからの第1の記憶回路の状態復帰を速くできる。
(実施の形態3)
本実施の形態では、本発明の一態様に適用可能なトランジスタの構造例について、図15の断面模式図を参照して説明する。なお、図15に示す各構成要素は、実際の寸法と異なる場合がある。
図15(A)に示すトランジスタは、導電層711と、絶縁層712と、半導体層713と、導電層717a及び717bと、絶縁層718a及び718bと、を含む。
半導体層713は、絶縁層703を介して被素子形成層700の上に設けられる。なお、必ずしも絶縁層703の上に半導体層713を設けなくてもよく、被素子形成層700上に半導体層713を直接設けてもよい。
半導体層713は、互いに離間して、ドーパントが添加された領域715a及び715bを有する。また、半導体層713は、領域715aと715bの間に、領域715a及び715bよりも添加されたドーパントの濃度の低い領域716a及び716bを有する。領域716a及び716bを設けることにより、トランジスタの電界集中を抑制できる。また、半導体層713は、領域716aと716bの間にチャネル形成領域714を有する。
導電層717aは、半導体層713の領域715aに電気的に接続される。導電層717bは、半導体層713の領域715bに電気的に接続される。
絶縁層712は、半導体層713の上に設けられる。
導電層711は、絶縁層712を介して半導体層713に重畳する。
絶縁層718aは、導電層711の一対の側面の一方に接し、絶縁層718bは、導電層711の一対の側面の他方に接する。
また、図15(B)に示すトランジスタは、導電層801と、絶縁層802と、絶縁層803と、導電層811と、絶縁層812と、半導体層813と、導電層817a及び817bと、を含む。
導電層801は、被素子形成層800の上に設けられる。
絶縁層802は、被素子形成層800の上に設けられる。
導電層801及び絶縁層802は、例えば導電膜及び絶縁層の積層に対して平坦化処理(例えばCMP処理)を行うことにより形成される。
絶縁層803は、導電層801及び絶縁層802の上に設けられる。
半導体層813は、絶縁層803を介して導電層801に重畳する。
導電層817aは、半導体層813に電気的に接続され、導電層817bは、半導体層813に電気的に接続される。
絶縁層812は、半導体層813、並びに導電層817a及び817bの上に設けられる。
さらに、各構成要素について以下に説明する。各構成要素は、必ずしも単層に限定されず、積層であってもよい。
絶縁層703は、下地層である。絶縁層703としては、例えば酸化シリコン、窒化シリコン、酸化窒化シリコン、窒化酸化シリコン、酸化アルミニウム、窒化アルミニウム、酸化窒化アルミニウム、窒化酸化アルミニウム、又は酸化ハフニウムなどの材料を含む層を適用できる。
絶縁層802は、絶縁層703に適用可能な同様の材料を含む層を用いることができる。
半導体層713及び813は、トランジスタのチャネルが形成される層(チャネル形成層ともいう)としての機能を有する。
半導体層713及び813としては、例えば上記実施の形態2に示すトランジスタ221に適用可能な酸化物半導体層を用いることができる。
領域715a及び715b、716a及び716bに含まれるドーパントとしては、例えば元素周期表における13族の元素(例えば硼素など)、15族の元素(例えば窒素、リン、及び砒素の一つ又は複数)、及び希ガス元素(例えばヘリウム、アルゴン、及びキセノンの一つ又は複数)を挙げることができ、これらのいずれか一つ又は複数を適用できる。
絶縁層712、803、及び812は、トランジスタのゲート絶縁層としての機能を有する。絶縁層712、803、及び812としては、例えば酸化シリコン、窒化シリコン、酸化窒化シリコン、窒化酸化シリコン、酸化アルミニウム、窒化アルミニウム、酸化窒化アルミニウム、窒化酸化アルミニウム、又は酸化ハフニウムなどの材料を含む層を適用できる。
導電層711及び811は、トランジスタのゲートとしての機能を有する。導電層711及び811としては、例えばモリブデン、チタン、クロム、タンタル、マグネシウム、銀、タングステン、アルミニウム、銅、ネオジム、又はスカンジウムなどの金属材料を含む層を適用できる。
導電層801がトランジスタのバックゲートとしての機能を有する。なお、必ずしも導電層801を設けなくてもよいが、導電層801に設けることにより、トランジスタの閾値電圧を制御できる。導電層801としては、例えば導電層711及び811に適用可能な材料の導電層を用いることができる。
絶縁層718a、718bとしては、例えば酸化シリコン、窒化シリコン、酸化窒化シリコン、窒化酸化シリコン、酸化アルミニウム、窒化アルミニウム、酸化窒化アルミニウム、窒化酸化アルミニウム、又は酸化ハフニウムなどの材料を含む層を適用できる。
導電層717a及び717b、並びに導電層817a及び817bは、トランジスタのソース又はドレインとしての機能を有する。導電層717a及び717b、並びに導電層817a及び817bとしては、例えばモリブデン、チタン、クロム、タンタル、マグネシウム、銀、タングステン、アルミニウム、銅、ネオジム、スカンジウム、又はルテニウムなどの金属材料を含む層を適用できる。
図15(A)、(B)に示すトランジスタは、例えば上記実施の形態2のトランジスタ221に適用できる。
以上が図15に示すトランジスタの構造例の説明である。
図15を用いて説明したように、本実施の形態に係るトランジスタの一例は、データの書き込み及び読み出しを制御するトランジスタを、酸化物半導体層を含むトランジスタにより構成する。上記構成にすることにより、データの保持時間を長くできる。
また、本実施の形態に係るトランジスタの一例は、シリコンなどの半導体層を含むトランジスタの上に積層させてもよい。積層させることにより、回路面積を小さくできる。
(実施の形態4)
本実施の形態では、本発明の一態様であるプロセッサを用いた電子機器の例について、図16を参照して説明する。
図16(A)に示す電子機器は、携帯型情報端末の一例である。
図16(A)に示す電子機器は、筐体1011と、筐体1011に設けられたパネル1012と、ボタン1013と、スピーカー1014と、を具備する。
なお、筐体1011に、外部機器に接続するための接続端子及び操作ボタンが設けられていてもよい。
パネル1012は、表示パネル(ディスプレイ)である。パネル1012は、タッチパネルの機能を有することが好ましい。
ボタン1013は、筐体1011に設けられる。例えば、ボタン1013が電源ボタンであれば、ボタン1013を押すことにより、電子機器をオン状態にするか否かを制御することができる。
スピーカー1014は、筐体1011に設けられる。スピーカー1014は音声を出力する。
なお、筐体1011にマイクが設けられていてもよい。筐体1011にマイクを設けられることにより、例えば図16(A)に示す電子機器を電話機として機能させることができる。
図16(A)に示す電子機器は、筐体1011の内部に本発明の一態様であるプロセッサを有する。
図16(A)に示す電子機器は、例えば電話機、電子書籍、パーソナルコンピュータ、及び遊技機の一つ又は複数としての機能を有する。
図16(B)に示す電子機器は、折り畳み式の情報端末の一例である。
図16(B)に示す電子機器は、筐体1021aと、筐体1021bと、筐体1021aに設けられたパネル1022aと、筐体1021bに設けられたパネル1022bと、軸部1023と、ボタン1024と、接続端子1025と、記録媒体挿入部1026と、スピーカー1027と、を備える。
筐体1021aと筐体1021bは、軸部1023により接続される。
パネル1022a及びパネル1022bは、表示パネル(ディスプレイ)である。パネル1022a及びパネル1022bは、タッチパネルとしての機能を有することが好ましい。
図16(B)に示す電子機器は、軸部1023を有するため、パネル1022aとパネル1022bを対向させて折り畳むことができる。
ボタン1024は、筐体1021bに設けられる。なお、筐体1021aにボタン1024を設けてもよい。例えば、電源ボタンとしての機能を有するボタン1024を設けることより、ボタン1024を押すことで電子機器に対する電源電圧の供給を制御できる。
接続端子1025は、筐体1021aに設けられる。なお、筐体1021bに接続端子1025が設けられていてもよい。また、接続端子1025が筐体1021a及び筐体1021bの一方又は両方に複数設けられていてもよい。接続端子1025は、図16(B)に示す電子機器と他の機器を接続するための端子である。
記録媒体挿入部1026は、筐体1021aに設けられる。筐体1021bに記録媒体挿入部1026が設けられていてもよい。また、記録媒体挿入部1026が筐体1021a及び筐体1021bの一方又は両方に複数設けられていてもよい。例えば、記録媒体挿入部にカード型記録媒体を挿入することにより、カード型記録媒体のデータを電子機器に読み出し、又は電子機器内のデータをカード型記録媒体に書き込むことができる。
スピーカー1027は、筐体1021bに設けられる。スピーカー1027は、音声を出力する。なお、筐体1021aにスピーカー1027を設けてもよい。
なお、筐体1021a又は筐体1021bにマイクを設けてもよい。筐体1021a又は筐体1021bにマイクが設けられることにより、例えば図16(B)に示す電子機器を電話機として機能させることができる。
図16(B)に示す電子機器は、筐体1021a又は筐体1021bの内部に本発明の一態様であるプロセッサを有する。
図16(B)に示す電子機器は、例えば電話機、電子書籍、パーソナルコンピュータ、及び遊技機の一つ又は複数としての機能を有する。
図16(C)に示す電子機器は、据え置き型情報端末の一例である。図16(C)に示す据え置き型情報端末は、筐体1031と、筐体1031に設けられたパネル1032と、ボタン1033と、スピーカー1034と、を具備する。
パネル1032は、表示パネル(ディスプレイ)である。パネル1032は、タッチパネルとしての機能を有することが好ましい。
なお、筐体1031の甲板部1035にパネル1032と同様のパネルを設けてもよい。上記パネルは、タッチパネルとしての機能を有することが好ましい。
さらに、筐体1031に券などを出力する券出力部、硬貨投入部、及び紙幣挿入部などを設けてもよい。
ボタン1033は、筐体1031に設けられる。例えば、ボタン1033が電源ボタンであれば、ボタン1033を押すことで電子機器に対する電源電圧の供給を制御できる。
スピーカー1034は、筐体1031に設けられる。スピーカー1034は、音声を出力する。
図16(C)に示す電子機器は、筐体1031の内部に本発明の一態様であるプロセッサを有する。
図16(C)に示す電子機器は、例えば現金自動預け払い機、チケットなどの注文をするための情報通信端末(マルチメディアステーションともいう)、又は遊技機としての機能を有する。
図16(D)は、据え置き型情報端末の一例である。図16(D)に示す電子機器は、筐体1041と、筐体1041に設けられたパネル1042と、筐体1041を支持する支持台1043と、ボタン1044と、接続端子1045と、スピーカー1046と、を備える。
なお、筐体1041に外部機器に接続させるための接続端子を設けてもよい。
パネル1042は、表示パネル(ディスプレイ)としての機能を有する。
ボタン1044は、筐体1041に設けられる。例えば、ボタン1044が電源ボタンであれば、ボタン1044を押すことで電子機器に対する電源電圧の供給を制御できる。
接続端子1045は、筐体1041に設けられる。接続端子1045は、図16(D)に示す電子機器と他の機器を接続するための端子である。例えば、接続端子1045により図16(D)に示す電子機器とパーソナルコンピュータを接続すると、パーソナルコンピュータから入力されるデータ信号に応じた画像をパネル1042に表示させることができる。例えば、図16(D)に示す電子機器のパネル1042が接続する他の電子機器のパネルより大きければ、当該他の電子機器の表示画像を拡大することができ、複数の人が同時に視認しやすくなる。
スピーカー1046は、筐体1041に設けられる。スピーカー1046は、音声を出力する。
図16(D)に示す電子機器は、筐体1041の内部に本発明の一態様であるプロセッサを有する。
図16(D)に示す電子機器は、例えば出力モニタ、パーソナルコンピュータ、及びテレビジョン装置の一つ又は複数としての機能を有する。
図16(E)は、電気冷凍冷蔵庫の一例である。図16(E)に示す電子機器は、筐体1051と、冷蔵室用扉1052と、冷凍室用扉1053と、を備える。
図16(E)に示す電子機器は、筐体1051の内部に本発明の一態様であるプロセッサを有する。上記構成にすることにより、例えば、冷蔵室用扉1052及び冷凍室用扉1053の開閉に従って、筐体1051内のプロセッサに対する電源電圧の供給を制御できる。
図16(F)は、エアコンディショナーの一例である。図16(F)に示す電子機器は、室内機1060及び室外機1064により構成される。
室内機1060は、筐体1061と、送風口1062と、を備える。
図16(F)に示す電子機器は、筐体1061の内部に本発明の一態様であるプロセッサを有する。上記構成にすることにより、例えば、リモートコントローラからの信号に従って、筐体1061内のプロセッサに対する電源電圧の供給を制御できる。
なお、図16(F)では、室内機と室外機で構成されるセパレート型のエアコンディショナーを例示しているが、室内機の機能と室外機の機能とを1つの筐体に有するエアコンディショナーであってもよい。
なお、これに限定されず、電子レンジなどの高周波加熱装置、又は電気炊飯器などにも本発明の一態様であるプロセッサを適用できる。
以上が図16に示す電子機器の例の説明である。
図16を参照して説明したように、本実施の形態に係る電子機器では、本発明の一態様であるプロセッサを用いることにより、消費電力を低くできる。