(57)【特許請求の範囲】
【請求項１】
第１のプロセッサと、
コマンドデコーダと、演算器及び保持回路を含む演算回路とを含む第２のプロセッサとを有し、
上記演算器は論理ゲート及びスイッチを含み、
上記論理ゲートは、第１導電型の第１ＭＯＳトランジスタと上記第１ＭＯＳトランジスタのソース・ドレイン経路と直列接続された第２導電型の第２ＭＯＳトランジスタとを有し、上記第１ＭＯＳトランジスタの上記ソース・ドレイン経路と上記第２のＭＯＳトランジスタの上記ソース・ドレイン経路との共通接続点である出力ノードから出力信号を得る如く構成され、
上記スイッチは、上記第１ＭＯＳトランジスタのソースにそのドレインが接続される第１導電型の第３ＭＯＳトランジスタを含み、
上記第３ＭＯＳトランジスタのゲートに供給される制御信号を第１状態に設定することにより上記第３ＭＯＳトランジスタをオン状態として、上記論理ゲートを動作させることを許容せしめ、
上記制御信号を上記第１状態と異なる第２状態に設定することにより上記第３ＭＯＳトランジスタをオフ状態として、上記論理ゲートに流れるサブスレッショルド電流を制限せしめ、
上記第２のプロセッサのコマンドデコーダは上記第１のプロセッサからのコマンドをデコードし、上記演算回路に上記コマンドに応じた演算を実行させ、上記演算の終了を検出することで上記第２のプロセッサのコマンドデコーダはスリープ信号をアサートし、
上記スリープ信号がアサートされることにより、上記制御信号は上記第２状態に設定されるとともに、上記保持回路はその情報が保持されることを特徴とする半導体集積回路装置。
【請求項２】
請求項１において、
上記保持回路は上記演算回路における演算の途中結果を保持するレジスタであることを特徴とする半導体集積回路装置。
【請求項３】
請求項１において、
上記保持回路は上記演算回路における演算を制御するためのラッチであることを特徴とする半導体集積回路装置。
【請求項４】
請求項１において、
上記演算回路にスリープ信号がアサートされることにより、上記演算回路へのクロック供給が停止されることを特徴とする半導体集積回路装置。
【請求項５】
請求項１乃至４のいずれかにおいて、
上記保持回路は、第１インバータ回路と、第２インバータ回路と、ＮＡＮＤ回路とを有し、
上記第１インバータ回路の入力は、上記論理ゲートの出力及び上記第２インバータ回路の出力に接続され、
上記第２インバータ回路の入力は、上記第１インバータ回路の出力に接続され、
上記ＮＡＮＤ回路の第１入力は、上記第２インバータ回路の出力に接続され、
上記ＮＡＮＤ回路の第２入力は、上記制御信号が入力され、
上記ＮＡＮＤ回路の出力が、上記レジスタの出力とされることを特徴とする半導体集積回路装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は微細ＭＯＳトランジスタで構成された半導体集積回路に係り、特に高速・低電力動作に適した回路に関する。
【背景技術】
【０００２】
非特許文献１に述べられているように、ＭＯＳトランジスタが微細化されるにつれてその耐圧が低下するために、その動作電圧を低くせざるを得ない。特に、電池動作の携帯用機器などで用いられる半導体装置では、低消費電力化のために、一層動作電圧が下げられる。
【０００３】
この場合に、高速動作を維持するためには、動作電圧の低下に見合ってＭＯＳトランジスタのしきい電圧（ＶT）も低下させる必要がある。これは、動作速度は、ＭＯＳトランジスタの実効ゲート電圧、すなわち動作電圧からＶTを差し引いた値で支配され、この値が大きいほど高速だからである。例えば、上記文献によれば、チャネル長０．２５μｍで１．５Ｖ動作を行うトランジスタのしきい電圧の標準値は、０．３５Ｖと予想される。周知のスケーリング則に従えば、動作電圧を１Ｖとすれば、しきい電圧の標準値は０．２４Ｖ程度になる。しかし、ＶTを０．４Ｖ程度以下にすると、以下に述べるように、ＭＯＳトランジスタのサブスレッショルド特性（テーリング特性）によって、トランジスタを完全にオフすることはもはやできなくなり、直流電流が流れるという現象が生ずる。したがって、１．５Ｖ以下の動作では、この電流は実用上大きな問題となる。
【０００４】
図４９に示す従来のＣＭＯＳインバータについて説明する。理想的には、入力信号ＩＮが低レベル（＝ＶSS）の時はＮチャネルＭＯＳトランジスタＭNがオフ、ＩＮが高レベル（＝ＶCC）の時はＰチャネルＭＯＳトランジスタＭPがオフになり、いずれにしても電流が流れることはない。しかし、ＭＯＳトランジスタのＶTが低くなると、サブスレッショルド特性を無視することができなくなる。
【０００５】
図５０に示すように、サブスレッショルド領域におけるドレイン電流ＩDSは、ゲート・ソース間電圧ＶGSの指数関数に比例し、次式で表される。
【数１】
0003641481.tif 000002
ただし、ＷはＭＯＳトランジスタのチャネル幅、Ｉ0、Ｗ0はＶTを定義する際の電流値およびチャネル幅、Ｓはテーリング係数（ＶGS-log ＩDS特性の傾きの逆数）である。したがって、ＶGS＝０でもサブスレッショルド電流
【数２】
0003641481.tif 000003
が流れる。図４９のＣＭＯＳインバータでオフ状態のトランジスタはＶGS＝０であるから、非動作時において高電源電圧ＶCCから接地電位である低電源電圧ＶSSに向かって上記の電流ＩLが流れることになる。
【０００６】
このサブスレッショルド電流は、図５０に示すように、しきい電圧をＶTからＶT'に低下させると、ＩLからＩL'に指数関数的に大きくなる。
【０００７】
数２の上式から明らかなように、サブスレッショルド電流を低減するためには、ＶTを大きくするかＳを小さくすればよい。しかし、前者は実効ゲート電圧の低下による速度の低下を招く。特に、耐圧の点から微細化とともに動作電圧を低くしていくと、速度低下は顕著になり、微細化の利点を生かせなくなるので好ましくない。また後者は、室温動作を前提とする限り、次の理由により困難である。
【０００８】
テーリング係数Ｓは、ゲート絶縁膜の容量ＣOXとゲート下の空乏層の容量ＣDにより、次のように表される。
【数３】
0003641481.tif 000004
ここで、ｋはボルツマン定数、Ｔは絶対温度、ｑは素電荷である。上式から明らかなように、ＣOXおよびＣDの如何にかかわらずＳ≧ｋＴ ln 10／ｑであり、室温では60ｍＶ以下にすることは困難である。
【０００９】
以上述べた現象のために、多数のＭＯＳトランジスタで構成された半導体集積回路の実質的な直流電流は著しく増大してしまう。すなわち、動作速度が一定のもとでは、動作電圧を低くしていくほどＶTも小さくしなければならないので、低電圧動作させるほど深刻になる。特に高温動作時には、ＶTが低くＳが大きくなるため、この問題はさらに深刻になる。低電力化が重要である今後のコンピュータ等のダウンサイジング時代においては、このサブスレッショルド電流の増大は本質的な問題である。特に、０．９〜１．６Ｖといった電池１個で動作させたい電子装置などでも、この電流の増大に対処することがきわめて重要である。
【００１０】
【非特許文献１】１９８９  インターナショナル  シンポジウム  オン  ブイ・エル・エス・アイ  テクノロジー，システムズ  アンド  アプリケーションズ、プロシーディングズ  オブ  テクニカル  ペーパーズ（1989年5月）第１８８頁から第１９２頁（1989 International Symposium on VLSI Technology, Systems and Applications, Proceedings of Technical Papers, pp.188-192 (May 1989)）
【発明の開示】
【発明が解決しようとする課題】
【００１１】
本発明の目的は、ＭＯＳトランジスタを微細化しても高速・低電力の半導体集積回路を提供し、電池駆動などといった低電圧動作の電子装置を低電流で実現することにある。
【課題を解決するための手段】
【００１２】
上記目的を達成するため、本発明では、ＭＯＳトランジスタのソースと電源の間に大電流と小電流との電流供給を制御する制御回路手段を挿入し、用途に応じてこれらの電流を切り換えてＭＯＳトランジスタ回路に供給する。たとえば、高速動作が要求される時は大電流を供給し、低消費電力が要求される時は小電流を供給する。
【００１３】
通常動作時には高速動作が要求されるので、上記電流供給手段から大電流をＭＯＳトランジスタ回路に供給し、高速動作を可能にする。この時、ＭＯＳトランジスタ回路には前述のとおり直流電流が流れるが、動作電流すなわち負荷の充放電電流に比べて普通十分小さいので差し支えない。
【００１４】
一方、待機時には低消費電力が要求されるので、供給される電流を小電流に切り換え、サブスレッショルド電流を抑える。この時、電流が制限されることにより、ＭＯＳトランジスタ回路の論理振幅は一般に大電流供給時よりも小さくなるが、論理レベルを保証できる程度であれば差し支えない。
【発明の効果】
【００１５】
以上説明したように、本発明によれば、高速・低消費電力のＭＯＳトランジスタ回路、およびそれで構成された半導体集積回路が実現できる。
【発明を実施するための最良の形態】
【００１６】
以下、図を参照して本発明の具体的な実施例を、より詳細に説明する。
【００１７】
〔実施例１〕
まず、図１は本発明の原理を説明するのに好適な実施例である。
【００１８】
図１（ａ）は本発明の実施例によるインバータの回路図である。図中、ＬはＣＭＯＳインバータであり、ＰチャネルＭＯＳトランジスタＭPとＮチャネルＭＯＳトランジスタＭNからなる。本発明は、後述のように、インバータだけでなくＮＡＮＤ、ＮＯＲなどの論理ゲートあるいは論理ゲート群にも適用できるが、ここでは簡単のためインバータの場合について説明する。ＳCおよびＳSはスイッチ、ＲCおよびＲSは抵抗であり、本実施例の特徴は、インバータＬの電源端子ＶCL、ＶSLと電源ＶCC、ＶSSの間にそれぞれスイッチＳC、ＳSと抵抗ＲC、ＲSが並列に挿入されていることであり、これにより以下に説明するようにサブスレッショルド電流低減が実現される。
【００１９】
高速動作が要求される時間帯には、スイッチＳC、ＳSをオンにし、ＶCC、ＶSSを直接インバータＬに印加する（以下、高速動作モードという）。ＭP、ＭNのしきい電圧（ＶT）を低く設定しておけば、高速動作させることができる。この時、前述のようにインバータＬにはサブスレッショルド電流が流れるが、これは普通、動作電流すなわち負荷の充放電電流に比べて十分小さいので問題にならない。
【００２０】
一方、低消費電力が要求される時間帯には、スイッチＳC、ＳSをオフにして、抵抗ＲC、ＲSを通してインバータに電源を供給する（以下、低消費電力モードという）。サブスレッショルド電流が抵抗を通して流れることによる電圧降下により、ＶCLはＶCCよりも低下し、ＶSLはＶSSよりも上昇する。図２に示すように、この電圧降下により、次の２種の機構によってサブスレッショルド電流が減少する。尚、入力信号ＩＮが低レベル（ＶSS）の場合のＭNについて説明するが、ＩＮが高レベル（ＶCC）の場合のＭPも同様である。
【００２１】
(i)ソース電位ＶSLが上昇するため、バックゲートバイアスＶBS＝ＶSS−ＶSL＝−ＶMがかかり、しきい電圧がＶT0からＶT1まで上昇する。しきい電圧の上昇分は、
【数４】
0003641481.tif 000005
である。これにより、サブスレッショルド電流はＩL0からＩL1まで減少する。減少率は、
【数５】
0003641481.tif 000006
である。ここでＫは基板効果係数である。例えば、ＶM＝0.3Ｖ、Ｋ＝0.4√Ｖ、Ｓ＝100ｍＶ／decade、２ψ＝0.64Ｖならば、サブスレッショルド電流は21％に低減される。
【００２２】
(ii)ソース電位ＶSLが上昇するため、ゲート・ソース間電圧ＶGS＝ＶSS−ＶSL＝−ＶMが負になる。これにより、サブスレッショルド電流はさらにＩL1からＩL2まで減少する。減少率は、
【数６】
0003641481.tif 000007
である。例えば、ＶM＝0.3Ｖ、Ｓ＝100ｍＶ／decadeならば、サブスレッショルド電流は０．１％に低減される。
【００２３】
(i)(ii)の効果を併せると、
【数７】
0003641481.tif 000008
となる。例えば、ＶM＝0.3Ｖならば0.02％になる。ここで、ＶMは方程式
【数８】
0003641481.tif 000009
の解である。
【００２４】
尚、インバータＬのＭＯＳトランジスタＭP、ＭNのバックゲートはそれぞれのソース（ＶCL、ＶSL）に接続してもよいが、(i)の効果を得るためには図１（ａ）のようにＶCC、ＶSSに接続する方が望ましい。
【００２５】
図３にサブスレッショルド電流低減効果を示す。ここでは、将来の超低電圧動作の超高集積ＬＳＩを想定し、バックゲートバイアスが０のときのしきい電圧ＶT0＝0.05〜0.15Ｖ、ＬＳＩ全体のオフ状態のトランジスタのチャネル幅の総和Ｗ＝100ｍである場合について計算している。抵抗を大きくするほどＶMが大きくなり、効果が大きくなる。極端な場合として、抵抗が無限大、すなわち抵抗を除去することもできる。
【００２６】
ただし、図１（ｂ）に示すように、出力信号ＯＵＴの論理振幅は入力信号ＩＮの論理振幅よりも小さくなるので、多段接続の際は信号の電圧レベルに注意しなければならないが、これについては後述する。
【００２７】
また、本発明にはしきい電圧のバラツキを自動的に補償する作用がある。すなわち、しきい電圧が低くサブスレッショルド電流が大きいときは、抵抗による電圧降下ＶMが大きくなり、しきい電圧が高くサブスレッショルド電流が小さいときは、ＶMが小さくなる。いずれの場合も、電流の変動が抑制される。図３から明らかなように、サブスレッショルド電流の変動は抵抗値が大きいほど小さい。例えば、抵抗値を３ｋΩ以上にすれば、しきい電圧が±０．０５Ｖばらついても、サブスレッショルド電流ＩLの変動は±２０％以内に抑えられる。
【００２８】
〔実施例２〕
次に、実施例１で説明したスイッチと抵抗の具体的な実現方法を示す。図４は、スイッチと抵抗とをともにＭＯＳトランジスタで実現した例である。
【００２９】
スイッチ用のＭＯＳトランジスタＭC1とＭS1は、コンダクタンスの大きいＭＯＳトランジスタであり、それぞれ図１のスイッチＳC、ＳSに相当する。高速動作モードの時は、信号φCを低レベル、φSを高レベルにすることによって、ＭC1、ＭS1はオンになる。φC、φSの電圧レベルは、それぞれＶSS、ＶCCでもよいが、ＭC1、ＭS1のコンダクタンスをより大きくするために、φCをＶSSよりも低く、φSをＶCCよりも高くしてもよい。そのための電圧は、チップの外部から与えるか、ＥＥＰＲＯＭやＤＲＡＭで周知のオンチップ昇圧回路で発生させればよい。
【００３０】
低消費電力モードのときは逆に、φCを高レベル、φSを低レベルにすることによって、ＭC1、ＭS1はオフになる。この時は、電流を確実に抑止できるようにしなければならない。そのためには、次の２通りの方法がある。第１の方法は、外部電圧またはオンチップ昇圧回路によって、φCをＶCCよりも高く、φSをＶSSよりも低くすることである。第２の方法は、ＭC1、ＭS1として、インバータＬに用いられているものよりもしきい電圧が高い（よりエンハンスメントの）トランジスタを用いることである。第１の方法は、しきい電圧の異なるトランジスタを作るための工程が不要であるという利点がある。一方、第２の方法は、外部電圧を受ける端子あるいはオンチップ昇圧回路が不要であるから、面積の点で有利である。
【００３１】
ＭＯＳトランジスタＭC2とＭS2はコンダクタンスの小さいＭＯＳトランジスタであり、それぞれ図１の抵抗ＲC、ＲSに相当する。これらのトランジスタは、ゲートがそれぞれＶSS、ＶCCに接続されており、常にオンである。これらのトランジスタはオフにする必要がないので、そのしきい電圧は低くても差し支えない。
【００３２】
尚、ＭC2としてＮチャネルＭＯＳトランジスタを用い、ＭS2としてＰチャネルＭＯＳトランジスタを用いることもできる。例えば、ＭC2のＮチャネルＭＯＳトランジスタを例にとると、そのゲートとドレインを互いに接続した端子をＶCC端子に接続し、そのソースをＶCL端子に結線した、いわゆるダイオード接続でも実効的に抵抗を実現できる。該ＮチャネルＭＯＳトランジスタのチャネル幅としきい電圧を調整することによって、たとえば待機時にはＶCLの電圧をＶCCから該ＮチャネルＭＯＳトランジスタのしきい電圧だけ降下した電圧に設定でき、サブスレッショルド電流を大幅に低減できる。
【００３３】
次に、本発明が適用される時間帯について述べる。図５に信号φC、φSのタイミングの例を示す。
【００３４】
図５（ａ）および（ｂ）は、本発明をメモリＬＳＩに適用した場合である。メモリＬＳＩは、外部からのクロック信号であるチップエネーブル信号ＣＥ￣（補信号）が低レベルのとき動作状態、高レベルのとき待機状態になる。図５（ａ）の場合は、内部信号φCは、ＣＥ￣の立下りに同期して低レベルになり、ＣＥ￣の立上りからやや遅れて高レベルになる。内部信号φSはその逆である。従って、図中のａの時間帯は高速動作モード、ｂの時間帯は低消費電力モードになる。一般に多数のメモリＬＳＩを用いたメモリ装置では、動作状態にあるＬＳＩは少数であり、大多数のＬＳＩは待機状態にある。従って、待機状態にあるＬＳＩを本発明を用いて低消費電力にすれば、メモリ装置全体の低消費電力化に大きく寄与する。なお、ＣＥ￣の立上りから低消費電力モードに入るまでに遅延を設ける理由は、この間にＬＳＩの内部回路のリセットが行われるからである。
【００３５】
図５（ｂ）はさらに低消費電力化を図った例である。ここでは、ＣＥ￣が変化した直後のみを高速動作モードにしている。すなわち、ＣＥ￣が低レベルになった直後はデータの読出し／書込みが行なわれ、ＣＥ￣が高レベルになった直後は内部回路のリセットが行なわれるので、これらの時間帯は本発明による高速動作モードとし、その他の時間帯は本発明による低消費電力モードにしている。なお、ここには記載されていないが、アドレス信号が変化したときに高速動作モードに入るようにしてもよい。
【００３６】
図５（ｃ）は本発明をマイクロプロセッサに適用した例である。通常動作状態では、クロックＣＬＫが印加されている。このとき、信号φCは低レベル、φSは高レベルであり、高速動作モードである。マイクロプロセッサが待機状態またはデータ保持状態になると、クロックＣＬＫが停止し、信号ＢＵが高レベルになる。これに同期して、φCは高レベル、φSは低レベルになり、低消費電力モードになる。これにより、マイクロプロセッサの消費電力が低減され、電池などの小容量の電源で長時間バックアップすることが可能になる。
【００３７】
図６は、図４の回路を実現するためのデバイス構造の一例である。この図のポリシリコン１３０、１３１、１３２、１３３がそれぞれ図４のＭC2、ＭP、ＭN、ＭS2のゲートに相当する（ＭC1、ＭS1はここには記載されていない）。
【００３８】
注意すべきことは、ＭC2とＭPとが同一のｎウェル１０１（ｎ＋拡散層１２０を介してＶCCに接続されている）を共有していることである。ＭNとＭS2も同様にｐ基板（ＶSSに接続されている）１００を共有している。これからわかるように、ＭＯＳトランジスタのバックゲートをＶCC、ＶSSに接続する方が、ソースに接続する場合に比べて、前述の(i)の効果が得られるだけでなく、レイアウト面積の点でも有利である。
【００３９】
ここに示した例では、ｐ基板中にｎウェルを形成しているが、逆にｎ基板中にｐウェルを形成してもよい。あるいは、アイ・エス・エス・シー・シー、ダイジェスト・オブ・テクニカル・ペーパーズ、第２４８頁から第２４９頁、１９８９年２月（ISSCC Digest of Technical Papers, pp.248-249, Feb.1989）に記載されているような三重ウェル構造を用いてもよい。
【００４０】
〔実施例３〕
図７にスイッチと抵抗の他の実現方法を示す。本実施例の特徴は、カレントミラー回路を用いていることである。すなわち、しきい電圧が同じＭＯＳトランジスタＭC2とＭC3は、ゲートとソースを共有するいわゆるカレントミラー回路を成しており、ＭC2には電流源Ｉ0に比例する電流が流れ、そのインピーダンスは大きい。ＭS2とＭS3についても同様である。したがって、ＭC2、ＭS2は高抵抗とみなすことができる。尚、電流源Ｉ0とＭC3、ＭS3から成る回路ＣＳを複数の論理ゲートで共有してもよい。
【００４１】
カレントミラー回路はここに示した回路だけでなく、他の回路でもよい。例えば、ＭＯＳトランジスタの代わりにバイポーラトランジスタを用いてもよい。
【００４２】
このように、スイッチと抵抗の実現方法は、いろいろな変形がありうる。要は、高速動作が要求される時間帯には大電流を、低消費電力が要求される時間帯には小電流を流す手段であればよい。以下の図面では、簡単のため、図１のようにスイッチと抵抗で表すことにする。
【００４３】
〔実施例４〕
インバータのＭＯＳトランジスタのバックゲートは、ＶCC、ＶSSに限らず別の電源に接続してもよく、その電圧を可変にしてもよい。図８にその例を示す。ここでは、ＭP、ＭNのバックゲートをそれぞれ電源ＶWW、ＶBBに接続し、それらのバックゲート電圧値を動作時と待機時とで変えている。ＶBBについて言えば、高速動作が要求される時間帯にはＶBBを浅くして（あるいは極端な場合わずかに正にして）ＭNのＶTを低くして高速動作を可能にする。低消費電力が要求される時間帯にはＶBBを深くしてＭNのＶTを高くして、サブスレッショルド電流を抑える。これにより、前記(i)の効果がさらに大きくなる。以上ＶBBについて述べたが、ＶWWも電圧の極性が逆になるだけで同様である。なお、この種のバックゲート電圧発生回路は、例えばアイ・エス・エス・シー・シー、ダイジェスト・オブ・テクニカル・ペーパーズ、第２５４頁から第２５５頁、１９８５年２月（ISSCC Digest of Technical Papers, pp.254-255, Feb.1985）に記載されている。
【００４４】
図９は、図８の回路を実現するためのデバイス構造の一例である。ここでは、前述の三重ウェル構造を用いており、ｎウェル１０５（ＰチャネルＭＯＳトランジスタのバックゲート）はｎ＋拡散層１２０を介してＶWWに、ｐウェル１０３（ＮチャネルＭＯＳトランジスタのバックゲート）はｐ＋拡散層１２７を介してＶBBに接続されている。
【００４５】
この三重ウェル構造は、Ｐチャネル、Ｎチャネル共に回路ごとに独立したウェルに入れることができるので、回路ごとにバックゲート電圧を設定できるという利点がある。例えば、１つのＬＳＩ内に動作状態にある回路と待機状態にある回路が混在する場合、前者のバックゲート電圧を浅く、後者のバックゲート電圧を深くすることができる。
【００４６】
〔実施例５〕
次に、インバータを多段接続したインバータ列の場合について述べる。簡単のため、まず２段の場合で原理を説明する。
【００４７】
図１０（ａ）は、ＣＭＯＳインバータＬ1、Ｌ2を接続した場合の回路図である。各段のインバータごとに、スイッチＳCi、ＳSiと抵抗ＲCi、ＲSi（ｉ＝１，２）が挿入されている。
【００４８】
高速動作モードでは、４個のスイッチをすべてオンにし、ＶCC、ＶSSを直接インバータＬ1、Ｌ2に印加する。インバータのＭＯＳトランジスタのしきい電圧（ＶT）を低く設定しておけば、高速動作させることができる。一方、低消費電力モードでは、４個のスイッチをすべてオフにして、抵抗を通してインバータに電源を供給する。サブスレッショルド電流が抵抗を通して流れることによる電圧降下により、ＶCL1、ＶCL2はＶCCよりも低下し、ＶSL1、ＶSL2はＶSSよりも上昇する。
【００４９】
第１段のインバータＬ1については、図１の場合と同様に、前記(i)(ii)の機構によってサブスレッショルド電流が減少する。しかし、図１０（ｂ）に示すように、Ｌ1の出力Ｎ1の論理振幅は入力信号ＩＮの論理振幅よりも小さい。すなわち、ＩＮが低レベル（＝ＶSS）の時はＮ1の電圧レベルはＶCL1になり、ＩＮが高レベル（＝ＶCC）の時はＮ1の電圧レベルはＶSL1になる。これが第２段のインバータＬ2の入力となるから、Ｌ2のサブスレッショルド電流低減のためには、ＶCC＞ＶCL1＞ＶCL2、ＶSS＜ＶSL1＜ＶSL2となるように抵抗値を設定するのが望ましい。これにより、Ｌ2についても前記(i)(ii)の機構によってサブスレッショルド電流が減少する。ＶCL1＝ＶCL2、ＶSL1＝ＶSL2の時は、(i)による効果は得られるが(ii)による効果は得られない。
【００５０】
〔実施例６〕
図１１（ａ）に示す多段接続の場合も上と同様で、ＶCC＞ＶCL1＞ＶCL2＞……＞ＶCLk、ＶSS＜ＶSL1＜ＶSL2＜……＜ＶSLkとなるようにするのがよい。ただし、図１１（ｂ）に示すように、１段ごとに論理振幅が小さくなるので、適宜レベル変換回路を挿入して振幅を回復させる。この例では、ｋ段のインバータの後にレベル変換回路ＬＣを付加して、出力信号ＯＵＴの論理振幅が入力信号ＩＮと同じになるようにしている。この種のレベル変換回路は、例えばシンポジウム・オン・ブイ・エル・エス・アイ・サーキッツ、ダイジェスト・オブ・テクニカル・ペーパーズ、第８２頁から第８３頁、１９９２年６月（Symposium on VLSI Circuits, Digest of Technical Papers, pp.82-83, June 1992）に記載されている。
【００５１】
レベル変換回路ＬＣは高速動作時には不要である。なぜなら、スイッチがすべてオンになっているので、ＶCL1＝ＶCL2＝……＝ＶCLk＝ＶCC、ＶSL1＝ＶSL2＝……＝ＶSLk＝ＶSSであり、論理振幅の減少がないからである。したがって、高速動作時には、スイッチＳLCをオンにしてレベル変換回路をバイパスさせることによって、遅延を避けることができる。
【００５２】
〔実施例７〕
図１２（ａ）に多段接続インバータ列の他の例を示す。この例では、スイッチＳC、ＳSと抵抗ＲC、ＲSがすべてのインバータＬ1〜Ｌkにより共有されており、電圧ＶCL、ＶSLはＬ1〜Ｌkに共通である。それゆえに、図１０の説明で述べたように、前記(i)の機構によるサブスレッショルド電流低減効果は得られるが(ii)による効果は得られない。したがって、サブスレッショルド電流低減効果は前実施例よりも小さくなる。
【００５３】
しかし、その反面スイッチと抵抗のレイアウト面積が節約できるという利点がある。また、図１２（ｂ）に示すように、すべての信号（入出力信号を含めて）の電圧レベルが同一であり、前実施例のような論理振幅の減少がないという特長がある。そのため、レベル変換回路は不要であり、また、ＮＡＮＤ、ＮＯＲなどの論理が組みやすいという利点がある。
【００５４】
〔実施例８〕
次に、本発明を一般の組合せ論理回路に適用する場合について述べる。
【００５５】
例えば、図１３に示す組合せ論理回路を考える。これに本発明を適用するには、まず論理ゲートを図１３のようにグループ分けする。この例では、１５個の論理ゲートＬ1〜Ｌ15が３つのグループＧ1、Ｇ2、Ｇ3に分けられている。グループ分けに当たっては、第ｉ番目のグループに含まれる論理ゲートの出力信号は、第（ｉ＋１）番目以降のグループの論理ゲートにのみ入力されるようにする。
【００５６】
次に、図１４に示すように、各グループごとに電源との間にスイッチと抵抗を挿入する。論理ゲートの出力信号の論理振幅は、図１１の場合と同様に、１段ごとに小さくなるから、図１４に示すようにレベル変換回路群ＧＣ1、ＧＣ2を挿入して振幅を回復させる。尚、図示されていないが、高速動作時には図１１の場合と同様にレベル変換回路群ＧＣ1、ＧＣ2をパイパスさせてもよい。
【００５７】
本実施例の特徴の１つは、同じグループに含まれる論理ゲートは、スイッチと抵抗を共有していることである。図１３の例で言えば、グループＧ1に含まれる３個のインバータは、スイッチＳC1、ＳS1と抵抗ＲC1、ＲS1を共有している。
【００５８】
本実施例のもう１つの特徴は、レベル変換回路の前後のグループでスイッチと抵抗を共有していることである。すなわち、グループＧ1とＧk+1はスイッチＳC1、ＳS1および抵抗ＲC1、ＲS1を、グループＧ2とＧk+2はスイッチＳC2、ＳS2および抵抗ＲC2、ＲS2を、……、グループＧkとＧ2kはスイッチＳCk、ＳSkおよび抵抗ＲCk、ＲSkをそれぞれ共有している。
【００５９】
このように、複数の論理ゲートでスイッチと抵抗を共有することにより、ＬＳＩ全体として見ればスイッチと抵抗との数を低減でき、レイアウト面積を節約できる。
【００６０】
〔実施例９〕
図１５に本発明の他の実施例を示す。図１５の実施例がこれまでの実施例と相違するのは、電圧リミッタ（降圧回路、昇圧回路）ＶＣ1、ＶＣ2、……、ＶＣk、ＶＳ1、ＶＳ2、……、ＶＳkを用いていることである。
【００６１】
低消費電力が要求される時には、スイッチＴC1〜ＴCk、ＴS1〜ＴSkを図示の側に切換え、電圧リミッタによって論理ゲート群に電源を供給する。電圧リミッタＶＣ1、ＶＣ2、……、ＶＣkは、電源電圧ＶCC側の降圧回路として動作し、ＶCCよりも低くほぼ安定化された内部電圧ＶCL1、ＶCL2、……、ＶCLkをそれぞれ発生する。一方、ＶＳ1、ＶＳ2、……、ＶＳkは、接地ＶSS側の昇圧回路として動作し、ＶSSよりも高くほぼ安定化された内部電圧ＶSL1、ＶSL2、……、ＶSLkをそれぞれ発生する。発生する電圧は前述の実施例と同様に、ＶCC＞ＶCL1＞ＶCL2＞……＞ＶCLk、ＶSS＜ＶSL1＜ＶSL2＜……＜ＶSLkとするのがよい。尚、この種の電圧リミッタについては、特開平２−２４６５１６号公報に開示されている。
【００６２】
逆に、高速動作が要求される時は、スイッチを図示されているのとは反対側に切換えて、ＶCC、ＶSSを直接論理ゲート群に印加して、高速動作を可能にする。尚、この時は電圧リミッタは不要になるので、その動作を停止させてもよい。
【００６３】
〔実施例１０、１１〕
これまでの実施例は、インバータ列や組合せ論理回路といったフィードバックのない回路であったが、本発明はフィードバックのある回路にも適用できる。一例として、図１６（ａ）に示す２個のＮＡＮＤゲートを組合せたラッチ回路の場合について説明する。
【００６４】
図１６（ｂ）に回路図を示す。２個のＮＡＮＤゲートＬ1、Ｌ2と電源Ｖccおよび接地Ｖssとの間に、それぞれスイッチＳC1、ＳS1、ＳC2、ＳS2および抵抗ＲC1、ＲS1、ＲC2、ＲS2が挿入されている。ＶCL1、ＶCL2がＶCCよりも低下し、ＶSL1、ＶSL2がＶSSよりも上昇し、前記(i)の機構によってサブスレッショルド電流が低減される。
【００６５】
図１７は、さらにサブスレッショルド電流を低減するために、情報のラッチに用いられる４個のＭＯＳトランジスタＭP12、ＭP22、ＭN12、ＭN22のしきい電圧ＶTを他のＭＯＳトランジスタＭP11、ＭP21、ＭN11、ＭN21のしきい電圧より高く（よりエンハンスメントに）した例である。入力信号が印加される他のＭＯＳトランジスタＭP11、ＭP21、ＭN11、ＭN21のしきい電圧ＶTは低いままであるから、高速動作が可能である。この場合、ＶSS側のスイッチと抵抗は不要である。なぜならば、高しきい電圧のＶSS側トランジスタＭN12、ＭN22によって電流を確実に抑止できるからである。
【００６６】
〔実施例１２、１３〕
これまでの実施例は、入力信号が低レベルでも高レベルでもサブスレッショルド電流を低減できるものであった。しかし実際のＬＳＩでは、サブスレッショルド電流低減が必要な時間帯、例えば待機状態における特定の信号のレベルは予め判っていることが多い。このような場合は、より簡単な回路でサブスレッショルド電流を低減することができる。
【００６７】
図１８は、待機状態における入力信号ＩＮは低レベル（“Ｌ”）であると判っている場合のインバータ列の回路例である。ＩＮが低レベルであるから、ノードＮ1、Ｎ3、Ｎ5、……は高レベル、Ｎ2、Ｎ4、Ｎ6、……は低レベルになり、ＰチャネルＭＯＳトランジスタのうちＭP2、ＭP4、……がオフ、ＮチャネルＭＯＳトランジスタのうちＭN1、ＭN3、……がオフである。スイッチと抵抗は、これらのオフ状態のトランジスタのソースにのみ挿入すれば十分である。サブスレッショルド電流が流れるのはオフ状態のトランジスタだからである。
【００６８】
また、図１９に示すように、スイッチと抵抗を複数のインバータで共有しても差し支えない。
【００６９】
これらの実施例は、入力信号のレベルが判っていなければならないという制約はあるが、簡単な回路でサブスレッショルド電流を低減できるという利点がある。図１８、１９を図１１と比較してみれば明らかなように、スイッチと抵抗の数が少なくなり、レベル変換回路が不要になる。
【００７０】
〔実施例１４、１５〕
インバータだけでなくＮＡＮＤ、ＮＯＲなどの論理ゲートでも、待機状態における入力信号のレベルが判っている場合は、より簡単な回路でサブスレッショルド電流を低減することができる。
【００７１】
図２０は２入力ＮＡＮＤゲート、図２１は２入力ＮＯＲゲートの例である。２つの入力信号ＩＮ1とＩＮ2がいずれも低レベル、あるいはいずれも高レベルの場合は、これらのゲートは実質的にインバータと等価であるから、図１８、図１９で説明した方法が適用できる。問題は、図のように一方の入力が低レベル（“Ｌ”）、他方の入力が高レベル（“Ｈ”）の場合である。
【００７２】
図２０のＮＡＮＤゲートの場合は、ＰチャネルＭＯＳトランジスタＭP12とＮチャネルＭＯＳトランジスタＭN11がオフであるが、出力ＯＵＴは高レベルであるから、サブスレッショルド電流が流れるのはＭN11である。従って、ＶSS側にスイッチと抵抗を挿入すればよい。図２１のＮＯＲゲートの場合は逆に、サブスレッショルド電流が流れるのはＰチャネルＭＯＳトランジスタＭP14である。従って、ＶCC側にスイッチと抵抗を挿入すればよい。
【００７３】
図２０、図２１は本発明を２入力論理ゲートに適用した例であるが、３入力以上の論理ゲートでも同様にできる。また、スイッチと抵抗は、他の論理ゲートと共有してもよいことはもちろんである。
【００７４】
〔実施例１６〕
図２２はクロックインバータにおいて、待機状態ではクロックＣＬＫ1は低レベル、ＣＬＫ2は高レベルであると判っている場合の回路例である。この場合は、ＭＯＳトランジスタＭP16、ＭN16が共にオフであるから、出力ＯＵＴは高インピーダンスになり、その電圧レベルはＯＵＴに接続されている他の回路（図示せず）によって決まる。電圧レベルによってＭＯＳトランジスタＭP16、ＭN16のいずれにサブスレッショルド電流が流れるかが決まるから、この場合は、図のようにスイッチと抵抗をＶCC側、ＶSS側の両方に挿入すればよい。
【００７５】
〔実施例１７〕
一般の組合せ論理回路の場合も、入力信号のレベルが予め判っている場合は、より簡単な回路でサブスレッショルド電流を低減することができる。図１３に示した組合せ論理回路を例にとりあげて説明する。
【００７６】
図２３は、この回路の入力ＩＮ1〜ＩＮ6がすべて低レベルと判っている場合の回路構成例である。インバータＬ1〜Ｌ3、Ｌ5、Ｌ6については、図１８、図１９と同様に、Ｌ1〜Ｌ3のＶSS側とＬ5、Ｌ6のＶCC側にスイッチと抵抗を挿入する。ＮＯＲゲートＬ7は、入力信号がいずれも低レベルであるから、実質的にインバータと等価である。従って、ＶSS側にスイッチと抵抗を挿入すればよい。ＮＯＲゲートＬ4は、入力信号の一方が低レベル、他方が高レベルであるから、図２１と同様に、ＶCC側にスイッチと抵抗を挿入する。８個のＮＡＮＤゲートのうち、Ｌ12だけは３つの入力信号がすべて高レベルであり、インバータと等価であるから、ＶCC側にスイッチと抵抗を挿入する。他のＮＡＮＤゲートは、入力信号に低レベルのものと高レベルのものが混在するから、図２０と同様に、ＶSS側にスイッチと抵抗を挿入すればよい。
【００７７】
以上の説明から明らかなように、出力が高レベルである論理ゲートにはＶSS側に、出力が低レベルである論理ゲートにはＶCC側に、スイッチと抵抗を挿入すればよい。図２３に示すように、これらのスイッチと抵抗を複数の論理ゲートで共有することにより、レイアウト面積を節約できる。
【００７８】
〔実施例１８〕
フィードバックがある回路についても、信号のレベルが予め判っている場合は、より簡単な回路でサブスレッショルド電流を低減することができる。図２４は、図１６（ａ）のラッチに適用した例である。
【００７９】
この種のラッチは、待機状態においては普通、入力信号ＩＮ1、ＩＮ2が共に高レベルであり、出力信号ＯＵＴ1、ＯＵＴ2のうちの一方が低レベル、他方が高レベルとなって１ビットの情報を保持している。図２４は、ＯＵＴ1が低レベル、ＯＵＴ2が高レベルであると判っている場合の回路構成例である。ＮＡＮＤゲートＬ1は、２つの入力信号が共に高レベルであるから、インバータと等価であり、図１８、図１９と同様に、ＶCC側にスイッチと抵抗を挿入する。ＮＡＮＤゲートＬ2は、入力信号の一方が低レベル、他方が高レベルであるから、図２０と同様に、ＶSS側にスイッチと抵抗を挿入すればよい。これらのスイッチと抵抗は、他の論理ゲートと共有してもよいことはもちろんである。
【００８０】
〔実施例１９〕
図２５は、本発明をメモリＬＳＩなどで周知のデータ出力バッファに適用した例である。待機状態においては、出力エネーブル信号ＯＥが低レベルであり、ＮＡＮＤゲートＬ21及びＬ22の出力は高レベル、インバータＬ23の出力は低レベルである。従って、出力段Ｌ24を構成する２個のＭＯＳトランジスタＭP20およびＭN20は共にオフであり、出力ＤＯＵＴは高インピーダンスである。
【００８１】
論理ゲートＬ21〜Ｌ23については、図２３の説明で述べた方針に従って、ＶSS側もしくはＶCC側にスイッチと抵抗を挿入すればよい。出力段Ｌ24については、図２２のクロックインバータの場合と同様に、スイッチと抵抗をＶCC側、ＶSS側の両方に挿入すればよい。
【００８２】
〔実施例２０〕
図２６は、本発明をメモリＬＳＩなどで周知のデータ入力バッファに適用した例である。図中、ＳＢは待機状態のときに高レベルになる信号である。インバータＬ31およびＬ32の出力は、図４および図７に示したように、それぞれφS、φCとしてスイッチの制御に用いることができる。Ｌ33はＮＡＮＤゲートであり、その入力はφSとデータ入力信号ＤINである。待機状態のときはφSは低レベルであるから、ＤINの如何にかかわらずＬ33の出力は高レベル、従ってインバータＬ34の出力ｄINの出力は低レベルになる。一方、動作状態のときは、ＳＢが低レベルであるから、ｄINはＤINに追随する。
【００８３】
ＮＡＮＤゲートＬ33とインバータＬ34については、それぞれＶSS側、ＶＣＣ側にスイッチと抵抗を挿入することにより、サブスレッショルド電流を低減できる。インバータＬ31とＬ32についてはこの手法は使えないが、ＭＯＳトランジスタのしきい電圧を高くすることにより、サブスレッショルド電流を低減できる。待機状態と動作状態の切り換えにはそれほど高速性は要求されないことが多いから、しきい電圧の高いＭＯＳトランジスタを用いても差し支えない。
【００８４】
以上、データ入力バッファについて述べたが、アドレス信号その他の信号の入力バッファも同様である。
【００８５】
図１８〜２５の実施例は、簡単な回路でサブスレッショルド電流を低減できるという利点がある反面、サブスレッショルド電流低減が必要な時間帯、例えば待機状態における信号レベルが判っていなければ適用できないという制約がある。従って、このときには、ＬＳＩ内のできるだけ多くのノードのレベルが確定するようにすることが望ましい。このための手段としては、図２６の入力バッファのような回路を用いることによって、このときの信号ｄINのレベルを低レベルに確定させることができる。このレベルを確定させる方法としては、この他に、例えば「待機状態のときはデータ入力端子ＤINは低レベル（または高レベル）にする」という仕様を定めておく方法もある。
【００８６】
図１８〜図２６の実施例は、メモリＬＳＩに適用するのに好適である。メモリＬＳＩでは、待機状態の時に高レベルであるか低レベルであるかが判っているノードが比較的多く、さらに図２６の入力バッファを用いることによってほとんどのノードのレベルを確定させられるからである。
【００８７】
マイクロプロセッサのようなランダムロジックＬＳＩなどにおいては、内部のレジスタの出力を固定したり、リセット機能付きフリップフロップ回路などの論理を追加して、問題となるノードの電圧を強制的に固定することも有効である。図３５に、出力を固定できるラッチ回路の構成例を示す。この回路は、通常のラッチ回路中のインバータをＮＡＮＤ回路で置き換えただけの簡単な構成である。図３６に示すように、φSが高レベルの間は通常のラッチ回路とし動作し、φSが低レベルの間（スリープモード）は出力信号Ｑのレベルを高レベルに確定させる。ここで、スリープモードとは、消費電流低減のために、ＬＳＩ全体もしくは回路ブロック単位の動作を停止させるモードである。なお、スリープモードの間、φｔを低レベル，φｂを高レベルにしておけば、ラッチ回路自身のサブスレッショルド電流も低減できる。このラッチ回路を用いた場合、φSが低レベルになることによりノードＮ41が強制的に高レベルになるため、スリープモードによりレジスタの情報が消去される。しかし、ＣＰＵ中の必要な情報を主記憶へ退避しておき、スリープモード後にリセット状態から再開するような使い方、例えばノートパソコンで入力が一定時間無いときに待機状態にするレジューム機能などでは問題ない。図３７は出力を強制的に固定できるラッチ回路の別な構成例である。図３８に示すように、この回路も、φSが高レベルの間は通常のラッチ回路とし動作し、φSが低レベルの間は出力信号Ｑのレベルを高レベルに確定させる。このラッチ回路は、φSが低レベルになってもノードＮ41に影響しないため、スリープモードの間も情報を保持できる。スリープモード解除後にスリープモード前の状態からそのまま再開でき、ＣＰＵがタスクを実行している間でもスリープモードにできる。そのため、スリープモードから比較的短時間で復帰するような場合に好適である。
【００８８】
図２５、２６の実施例は、ＬＳＩチップの外部端子に対する入出力回路としてだけでなく、例えばマイクロプロセッサの内部バスに対するドライバ／レシーバとしても用いることができる。
【００８９】
〔実施例２１〕
これまでは本発明をＣＭＯＳ回路に適用した実施例について述べてきたが、本発明は、単一極性のＭＯＳトランジスタで構成された回路にも適用できる。図２７にＮチャネルＭＯＳトランジスタのみで構成された回路の例を示す。図中、ＰＣはプリチャージ信号、ＩＮ1、ＩＮ2は入力信号である。
【００９０】
待機時、すなわちプリチャージ状態では、ＰＣが高レベル、ＩＮ1とＩＮ2は低レベルであり、出力ＯＵＴは高レベル（＝ＶCC−ＶT）にプリチャージされている。動作時には、ＰＣが低レベルになった後、ＩＮ1とＩＮ2は高レベルになるかあるいは低レベルにとどまる。ＩＮ1とＩＮ2のうち少なくとも一方が高レベルになれば、ＯＵＴは低レベルになり、両方共低レベルにとどまれば、ＯＵＴは高レベルのままである。すなわち、この回路はＩＮ1とＩＮ2のＮＯＲを出力する回路である。
【００９１】
この回路では、待機時にオフになっているトランジスタは、ＶSS側のＭN41、N42であり、これらのトランジスタにサブスレッショルド電流が流れる。従って、この回路に本発明を適用するには、図に示すように、ＶSS側にスイッチと抵抗を挿入すればよい。ＶCC側には不要である。
【００９２】
尚、ランダムロジックＬＳＩのように複雑な動作をするＬＳＩ等においては、例えば待機状態でのチップ内部の各ノードの論理（電圧）状態をデザインオートメーション（ＤＡ）の手法を用いて求め、その結果に応じて、ＤＡで上述したスイッチと抵抗を挿入する位置を自動的に決めることができる。
【００９３】
以上説明したように、本発明は、ＭＯＳトランジスタ回路およびそれで構成された半導体集積回路の低消費電力化にきわめて有効である。半導体集積回路の低消費電力化に対する要求は、最近特に強く、例えば日経エレクトロニクス１９９１年９月２日号、第１０６頁から第１１１頁には、低電力バックアップモードを有するマイクロプロセッサシステムについて記載されている。バックアップモードでは、クロックを停止させたり、不要な部分への電源の供給を停止したりして、低消費電力化を図っている。しかし、サブスレッショルド電流の低減についてまでは考慮されていない。これらのプロセッサシステムは３．３〜５Ｖで動作するために、十分に高いしきい電圧のトランジスタが使えるので、サブスレッショルド電流は問題にならないほど小さい。しかし、将来動作電圧が２Ｖあるいは１．５Ｖと低くなり、しきい電圧も低くせざるを得なくなると、従来のＣＭＯＳ回路を使うやり方ではもはや過大なサブスレッショルド電流は低減できなくなる。本発明を、例えばレジューム用回路（バックアップモードでも電源が供給されている）に適用すれば、さらに低消費電力化が実現できる。
【００９４】
以上の例では、論理振幅が段数の増加とともに低下したり、入力信号の電圧レベルが予め判っていない場合にはやや複雑な設計が必要であるといった問題がある。図２８は、これらを解決するもので、論理出力が確定するまでの所要時間帯は、これまで述べてきたようにスイッチをオンにして、通常の高速動作をさせる。それ以外の時間帯では、スイッチをオフにすることによって、論理回路（図はＣＭＯＳインバータの例）のサブスレッショルド電流経路を遮断するものである。ただし、スイッチがオフになると電源電圧の供給路が断たれるため、論理回路の出力はフローティングとなり、論理出力は確定しなくなる。そこで、その出力に、電圧レベルを保持する一種のラッチ回路（レベルホールド回路）を設けていることが特長である。レベルホールド回路にしきい電圧の高いトランジスタなどを使えば、レベルホールド回路のサブスレッショルド電流は無視できるほど小さくなり、全体としてはサブスレッショルド電流は小さくできる。遅延時間は、レベルホールド回路の影響は小さく、論理回路により定まる。論理回路に駆動能力の大きい高速な回路を用いても、待機状態では論理回路を通じて電流が流れないため、消費電流はレベルホールド回路を通じて流れる電流だけである。レベルホールド回路は、出力を保持するだけなので駆動能力が小さくて良く、消費電流は小さくできる。スイッチをオフにしても、レベルホールド回路により論理回路の出力が保持されるので、出力が反転する恐れが無く、安定に動作する。したがって、低消費電力で高速に安定動作を行う半導体装置を実現できる。本発明によれば、電圧レベルが常にレベルホールド回路で一定値に保証されるので、論理段数の増加とともに論理振幅が低下することはない。また、論理入力によらず効力を発揮する。
【００９５】
図２８を用いてさらに本実施例を説明する。論理回路ＬＣが、スイッチＳＷＨ及びＳＷＬを介して、高電位の電源線ＶＨＨ及び低電位の電源線ＶＬＬに接続される。ここでＶＨＨならびにＶＬＬは、これまで述べてきたＶCC、ＶSSにそれぞれ対応させることもできる。論理回路ＬＣの出力端子ＯＵＴには、レベルホールド回路ＬＨが接続される。スイッチＳＷＨとＳＷＬは、制御パルスＣＫで制御され、同時にオン，オフする。論理回路ＬＣは、インバータ、ＮＡＮＤ回路、ＮＯＲ回路などの論理ゲートやフリップフロップ回路、あるいはそれら複数個の組合せで構成される。レベルホールド回路ＬＨは、正帰還回路により構成できる。
【００９６】
論理回路ＬＣの動作は、スイッチＳＷＨ及びＳＷＬをオンにして行う。論理回路ＬＣの入力ＩＮに応じた出力ＯＵＴが確定した後、スイッチＳＷＨ及びＳＷＬをオフにして、論理回路ＬＣを介したＶＨＨからＶＳＳへの電流経路を遮断し、論理回路ＬＣの出力をレベルホールド回路ＬＨにより保持する。
【００９７】
回路の遅延時間には、レベルホールド回路ＬＨの影響は小さく、論理回路ＬＣにより定まる。論理回路ＬＣに駆動能力の大きい回路を用いて遅延時間の短い高速な動作を行うことができる。例えば待機状態では論理回路ＬＣを通じて電流が流れないため、消費電流はレベルホールド回路ＬＨを通じて流れる電流だけである。レベルホールド回路ＬＨは、駆動能力が小さくて良いので、消費電流は小さくできる。しかも、レベルホールド回路ＬＨにより論理回路ＬＣの出力ＯＵＴが維持されるため、誤動作の恐れがない。したがって、低消費電力で高速に安定動作を行う回路を実現できる。
【００９８】
本発明をＣＭＯＳインバータに適用した実施例を、図２９に示す。ＮＭＯＳトランジスタＭＮ１，ＰＭＯＳトランジスタＭＰ１が、それぞれ図２８でのスイッチＳＷＬ，ＳＷＨとして動作する。オフにしたときのリーク電流を小さくするため、トランジスタＭＮ１，ＭＰ１のしきい値電圧は十分大きくする。オン抵抗が大きくならないようにチャネル幅／チャネル長を定める。ＮＭＯＳトランジスタＭＮ１のゲートには制御パルスＣＫが、ＰＭＯＳトランジスタＭＰ１のゲートには制御パルスＣＫＢが入力される。ＣＫＢはＣＫの相補信号である。ＮＭＯＳトランジスタＭＮ２とＰＭＯＳトランジスタＭＰ２からなるＣＭＯＳインバータＩＮＶを、ＭＮ１，ＭＰ１に接続する。低電圧動作で駆動能力を大きくするため、トランジスタＭＮ２，ＭＰ２のしきい値電圧は小さくする。インバータＩＮＶの出力端子ＯＵＴには、ＮＭＯＳトランジスタＭＮ３，ＭＮ４とＰＭＯＳトランジスタＭＰ３，ＭＰ４からなるレベルホールド回路ＬＨが接続される。出力を保持している間の貫通電流を小さくするため、トランジスタＭＮ３，ＭＮ４，ＭＰ３，ＭＰ４のしきい値電圧を十分大きくし、チャネル幅／チャネル長を十分小さくする。電源電圧としきい値電圧の数値例を挙げる。ＶＬＬを接地電位０Ｖとし、ＶＨＨを外部電源電圧１Ｖとする。ＮＭＯＳトランジスタのしきい値電圧は、ＭＮ２は０．２Ｖ，ＭＮ１とＭＮ３及びＭＮ４は０．４Ｖとする。ＰＭＯＳトランジスタのしきい値電圧は、ＭＰ２は−０．２Ｖ，ＭＰ１とＭＰ３及びＭＰ４は−０．４Ｖとする。
【００９９】
図３０に示すタイミング図を用いて、動作を説明する。まず、制御パルスＣＫをＶＨＨに上げ、ＣＫＢをＶＬＬに下げて、トランジスタＭＮ１，ＭＰ１をオンにして、インバータＩＮＶをＶＨＨ，ＶＬＬに接続する。入力信号ＩＮがＶＬＬからＶＨＨに上がることにより、ＭＰ２がオフにＭＮ２がオンになり、出力ＯＵＴがＶＨＨからＶＬＬに放電される。トランジスタＭＮ２は飽和領域で導通を始め、ＭＮ２を流れる電流値はゲート（入力端子ＩＮ）−ソース（ノードＮＬ）間の電圧で定まる。トランジスタＭＮ１がノードＮＬとＶＬＬとの間に設けられているので、ＭＮ１のオン抵抗とＭＮ２から流れる電流によりノードＮＬの電位が一時的に上昇する。しかし、ＭＮ１のゲートはＶＨＨとなっているので、しきい値電圧が大きくても、オン抵抗が十分小さくなるように設計することができ、遅延時間に対する影響を小さくできる。また、出力ＯＵＴがＶＬＬに反転するとき、レベルホールド回路ＬＨは出力ＯＵＴをＶＨＨに保つように、ＭＮ４がオフにＭＰ４がオンになっている。そのため、ＭＮ２がオンになることによりＶＨＨからＭＰ４，ＭＮ２を通じてＶＬＬに貫通電流が流れるが、ＭＮ２に比べてＭＰ４の駆動能力を小さく設計することにより、遅延時間や消費電流に対する影響は小さい。出力ＯＵＴが下がることにより、ＭＮ３がオフにＭＰ３がオンになり、レベルホールド回路内のノードＮＬＨがＶＬＬからＶＨＨに反転し、ＭＮ４がオンにＭＰ４がオフになって、レベルホールド回路ＬＨは出力ＯＵＴをＶＬＬに保つように動作し、貫通電流は流れなくなる。ＭＰ２はゲート，ソースが共にＶＨＨなのでオフであるが、しきい値電圧が小さいため、リーク電流が大きく貫通電流がインバータＩＮＶを通じて流れる。そして、制御パルスＣＫをＶＬＬに下げ、ＣＫＢをＶＨＨに上げて、トランジスタＭＮ１，ＭＰ１をオフにして、インバータＩＮＶをＶＨＨ，ＶＬＬから分離する。このとき、ＭＮ１，ＭＰ１はゲート，ソースが等電位で、しきい値電圧が大きいため完全にオフになる。レベルホールド回路ＬＨの正帰還により、出力ＯＵＴはＶＨＨに保たれる。このとき、ＮＭＯＳトランジスタＭＮ２がオンなので、ノードＮＬはＶＬＬに保たれる。一方、ノードＮＨから出力端子ＯＵＴへのＰＭＯＳトランジスタＭＰ２のリーク電流のため、ノードＮＨの電圧は低下し始める。そして、ＭＰ２はゲート電位よりもソース電位が下がり完全にオフとなる。その結果、待機状態でインバータＩＮＶの貫通電流は流れない。そして、入力信号ＩＮが変化する前に、制御パルスＣＫをＶＨＨに上げ、ＣＫＢをＶＬＬに下げて、トランジスタＭＮ１，ＭＰ１をオンにして、ノードＮＨをＶＨＨにする。入力ＩＮがＶＨＨからＶＬＬに反転することにより、出力ＯＵＴがＶＬＬからＶＨＨに反転する。
【０１００】
インバータＩＮＶとレベルホールド回路ＬＨを通じて貫通電流が流れる期間が短くなるように、レベルホールド回路ＬＨが出力ＯＵＴにすばやく追従するのが望ましい。そのため、インバータＩＮＶとレベルホールド回路ＬＨは近接して配置し、配線遅延を小さくする。
【０１０１】
本実施例から明らかなように、スイッチとして用いるＭＯＳトランジスタのしきい値電圧を、従来サブスレッショルド電流を小さくするために必要とされている０．４Ｖ程度以上にすれば、待機状態の貫通電流を増加させずに、論理回路中のＭＯＳトランジスタのしきい値電圧を小さくすることができる。動作電圧を１Ｖ以下に低電圧化しても、ＭＯＳトランジスタのしきい値電圧を０．２５Ｖ以下にして駆動能力を確保できる。したがって、低電圧化による低消費電力化が実現できる。また、従来のスケーリング則に基づき、素子のスケーリングによる性能向上が実現できる。しかも、スイッチとレベルホールド回路を負荷すること以外は、従来のＣＭＯＳ論理回路と同じ構成であるので、従来と同じ設計手法を用いることができる。
【０１０２】
図３１は、本発明をＣＭＯＳインバータチェーンに適用した実施例を示している。図２９に示した１段のインバータにスイッチ２個とレベルホールド回路も設けた構成を多段接続すればインバータチェーンが実現できるが、本実施例はスイッチやレベルホールド回路を複数のインバータで共有して、素子数及び面積を小さくした例である。ここでは４段のインバータチェーンの場合を例にとるが、他の段数の場合も同様に構成される。４個のインバータＩＮＶ１，ＩＮＶ２，ＩＮＶ３，ＩＮＶ４が直列接続される。最終段のインバータＩＮＶ４の出力端子ＯＵＴにレベルホールド回路ＬＨが接続される。各インバータは、図２９中のＩＮＶと同様にＰＭＯＳトランジスタとＮＭＯＳトランジスタ１個ずつで構成される。各インバータのトランジスタサイズは、同じであっても異なっていても良い。ドライバとしてよく用いられるように、チャネル長を同じにして、一定の段間でチャネル幅をＩＮＶ１，ＩＮＶ２，ＩＮＶ３，ＩＮＶ４の順に大きくしていくこともできる。各インバータのＰＭＯＳトランジスタのソースはノードＮＨに、ＮＭＯＳトランジスタのソースはノードＮＬに接続される。ノードＮＬと低レベルの電源ＶＬＬとの間にスイッチＳＷＬが、ノードＮＨと高レベルの電源ＶＨＨとの間にスイッチＳＷＨが設けられる。スイッチＳＷＬとＳＷＨは制御パルスＣＫにより制御され、同時にオン，オフする。図２９に示したように、スイッチＳＷＬはＮＭＯＳトランジスタで、ＳＷＨはＣＫの相補信号をゲートに入力したＰＭＯＳトランジスタで実現される。
【０１０３】
インバータチェーンの動作は、スイッチＳＷＬ，ＳＷＨをオンにして行う。例えば、入力ＩＮが低レベルＶＬＬから高レベルＶＨＨに反転すると、インバータＩＮＶ１によりノードＮ１がＶＨＨからＶＬＬに反転し、ＩＮＶ２によりノードＮ２がＶＬＬからＶＨＨに反転し、ＩＮＶ３によりノードＮ３がＶＨＨからＶＬＬに反転し、ＩＮＶ４により出力端子ＯＵＴがＶＬＬからＶＨＨに反転する。ＯＵＴがＶＨＨに確定すると、レベルホールド回路ＬＨはＯＵＴをＶＨＨに保つように動作する。待機状態では、スイッチＳＷＬ，ＳＷＨをオフにすることにより、インバータを介したＶＨＨからＶＬＬへの電流経路を遮断する。
【０１０４】
インバータチェーンに本発明を適用する場合、本実施例の様にインバータチェーンをまとめて一つの論理回路として取扱うことにより、その出力端子にのみレベルホールド回路を設ければ良い。また、スイッチＳＷＬ，ＳＷＨを複数のインバータで共有できる。スイッチＳＷＬ、ＳＷＨの大きさは、流れるピーク電流の大きさで決定される。複数個のインバータを流れる電流和のピークは、各インバータのピーク電流での和よりも小さくなる。例えば、段間比を３としてインバータチェーンを構成する場合、電流和のピークは最終段のピーク電流にほぼ同じになる。したがって、複数のインバータでスイッチを共有する方が、インバータごとにスイッチを設ける場合に比べて、スイッチの面積が小さくて済む。
【０１０５】
図３２は、本発明をインバータチェーンに適用した別の実施例を示している。図３１と同様に４段のインバータチェーンの場合を例にとるが、他の段数の場合も同様に構成される。４個のインバータＩＮＶ１，ＩＮＶ２，ＩＮＶ３，ＩＮＶ４が直列接続される。インバータＩＮＶ３の出力端子でＩＮＶ４の入力端子であるノードＮ３とＩＮＶ４の出力端子ＯＵＴに、それぞれレベルホールド回路ＬＨ３，ＬＨ４が接続される。各インバータは、図２９中のＩＮＶと同様にＰＭＯＳトランジスタとＮＭＯＳトランジスタ１個ずつで構成される。奇数番目のインバータＩＮＶ１，ＩＮＶ３はノードＮＬ１及びＮＨ１に、偶数番目のインバータＩＮＶ２，ＩＮＶ４はノードＮＬ２及びＮＨ２に接続される。ノードＮＬ１，ＮＬ２と低レベルの電源ＶＬＬとの間にそれぞれスイッチＳＷＬ１，ＳＷＬ２が、ノードＮＨ１，ＮＨ２と高レベルの電源ＶＨＨとの間にそれぞれスイッチＳＷＨ１，ＳＷＨ２が設けられる。スイッチＳＷＬ１，ＳＷＬ２とＳＷＨ１，ＳＷＨ２は制御パルスＣＫにより制御され、同時にオン，オフする。
【０１０６】
インバータの動作は、スイッチＳＷＬ１，ＳＷＬ２，ＳＷＨ１，ＳＷＨ２をオンにして行う。例えば、入力ＩＮが低レベルＶＬＬから高レベルＶＨＨに反転すると、ノードＮ１がＶＨＨからＶＬＬに、ノードＮ２がＶＬＬからＶＨＨに、ノードＮ３がＶＨＨからＶＬＬに、ＩＮＶ４により出力端子ＯＵＴがＶＬＬからＶＨＨに順次反転する。Ｎ３がＶＬＬに確定すると、レベルホールド回路ＬＨ１はＮ３をＶＬＬに保つように動作する。また、ＯＵＴがＶＨＨに確定すると、レベルホールド回路ＬＨはＯＵＴをＶＨＨに保つように動作する。たとえば待機状態では、スイッチＳＷＬ１，ＳＷＬ２，ＳＷＨ１，ＳＷＨ２をオフにすることにより、インバータを介したＶＨＨからＶＬＬへの電流経路を遮断する。このとき、ノードＮ３がレベルホールド回路ＬＨ３により低レベルＶＬＬに保たれるため、ノードＮＬ１もインバータＩＮＶ３を通じてＶＬＬに保たれる。さらに、インバータＩＮＶ１を通じてノードＮ１がＶＬＬに保たれる。同様に、出力端子ＯＵＴがレベルホールド回路ＬＨ４により高レベルＶＨＨに保たれることにより、ノードＮＨ２及びＮ２もＶＨＨに保たれる。したがって、インバータ間を接続するノードがＶＨＨとＶＬＬのいずれかに保たれる。
【０１０７】
以上のように、スイッチを２組設け、奇数番目のインバータと偶数番目のインバータとを違うスイッチに接続し、奇数番目のインバータのいずれかの出力端子と偶数番目のインバータのいずれかの出力端子とに、それぞれレベルホールド回路を接続することにより、インバータ間のノードＮ１，Ｎ２，Ｎ３が全て高レベルと低レベルのいずれかに保たれる。待機状態が長く続いてもインバータの入力が中間レベルとならないため安定に動作し、スイッチをオンにしたときに情報が反転したり貫通電流が流れたりする恐れがない。
【０１０８】
以上本発明を、ＣＭＯＳインバータやインバータチェーンに適用した実施例を示しながら説明してきたが、論理回路にスイッチとレベルホールド回路を負荷して低消費電力で高速に安定動作を行うという本発明の趣旨を逸脱しないかぎり、これまでに述べた実施例に限定されるものではない。
【０１０９】
例えば、本発明をＣＭＯＳインバータに適用した別の実施例を図３３に示す。図２９に示した実施例では、スイッチとして動作するトランジスタＭＮ１，ＭＰ２をＣＭＯＳインバータＩＮＶと電源ＶＬＬ，ＶＨＨとの間に設けている。それに対して、本実施例ではＮＭＯＳトランジスタとＰＭＯＳトランジスタとの間に設ける。
【０１１０】
２個のＮＭＯＳトランジスタＭＮ２，ＭＮ１と２個のＰＭＯＳトランジスタＭＰ１，ＭＰ２が直列に、低レベルの電源ＶＬＬと高レベルの電源ＶＨＨの間に接続される。ＮＭＯＳトランジスタＭＮ１，ＰＭＯＳトランジスタＭＰ１は、スイッチとして動作する。オフにしたときのリーク電流を小さくするため、トランジスタＭＮ１，ＭＰ１のしきい値電圧は大きくする。ＮＭＯＳトランジスタＭＮ１のゲートには制御パルスＣＫが、ＰＭＯＳトランジスタＭＰ１のゲートにはＣＫの相補信号の制御パルスＣＫＢが入力される。ＮＭＯＳトランジスタＭＮ２とＰＭＯＳトランジスタＭＰ２は、ゲートが入力端子ＩＮに接続され、ＣＭＯＳインバータとして動作する。低電圧動作で駆動能力を大きくするため、トランジスタＭＮ１，ＭＰ１のしきい値電圧は小さくする。出力端子ＯＵＴには、図２９と同様に構成されたレベルホールド回路ＬＨが接続される。
【０１１１】
図２９に示した実施例と同様に、動作を行う。制御パルスＣＫ，ＣＫＢにより、トランジスタＭＮ１，ＭＰ１をオンにして、トランジスタＭＮ２，ＭＰ２をＣＭＯＳインバータとして動作させる。例えば、入力ＩＮが低レベルＶＬＬから高レベルＶＨＨに反転すると、それまでオフであったトランジスタＭＮ２が導通し始め飽和領域で動作する。このときＭＮ２の電流値はゲート−ソース間の電圧で定まる。本実施例では、トランジスタＭＮ１がＭＮ２と出力端子ＯＵＴとの間に設けられているので、ＭＮ１のオン抵抗はＭＮ２のドレインに接続される。そのため、ＭＮ１のオン抵抗の、ＭＮ２の電流値に対する影響は小さい。出力ＯＵＴが確定後、トランジスタＭＮ１，ＭＰ１をオフにして、貫通電流を防止し、レベルホールド回路ＬＨにより出力ＯＵＴを維持する。
【０１１２】
本実施例のようにスイッチを論理回路の出力端子側に挿入すると、スイッチを複数の論理ゲートで共有することは出来ないが、スイッチのオン抵抗の影響が小さい。スイッチとして用いるトランジスタが同じ場合、図２９に示した実施例の様にスイッチを論理回路の電源側に設ける場合に比べて、遅延時間が短くなる。あるいは、遅延時間が同じになるように設計すると、スイッチとして用いるトランジスタのチャネル幅／チャネル長が小さくて済み、その面積を小さくできる。
【０１１３】
図３４は、レベルホールド回路の別な構成例である。このレベルホールド回路を、図２９に示した実施例でＮＭＯＳトランジスタＭＮ３，ＭＮ４とＰＭＯＳトランジスタＭＰ３，ＭＰ４で構成されているレベルホールド回路ＬＨと置き換えて、用いた場合について説明する。
【０１１４】
このレベルホールド回路は、それぞれ３個のＮＭＯＳトランジスタＭＮ３，ＭＮ４，ＭＮ５とＰＭＯＳトランジスタＭＰ３，ＭＰ４，ＭＰ５で構成される。待機状態でのリーク電流を低減するため、各トランジスタのしきい値電圧は大きくする。例えば、ＮＭＯＳトランジスタは０．４Ｖ，ＰＭＯＳトランジスタは−０．４Ｖとする。ＭＮ３，ＭＰ３はインバータを構成しており、ＭＮ４，ＭＮ５，ＭＰ４，ＭＰ５はスイッチングインバータを構成している。ＭＮ５のゲートには制御パルスＣＫＢが、ＭＰ５のゲートには制御パルスＣＫが入力される。  動作タイミングは、図２９に示したレベルホールド回路ＬＨを用いた場合と同じで、図３０に示したとおりである。制御パルスＣＫを高レベルＶＨＨに上げ、ＣＫＢを低レベルＶＬＬに下げてインバータＩＮＶを動作させる。この時、レベルホールド回路で、トランジスタＭＮ５，ＭＰ５がオフとなる。そのため、出力ＯＵＴが反転するときに、インバータＩＮＶとレベルホールド回路を通じて貫通電流が流れることがなく、遅延時間と消費電流が小さくて済む。待機状態では、制御パルスＣＫを低レベルＶＬＬに下げ、ＣＫＢを高レベルＶＨＨに上げてインバータＩＮＶを電源ＶＬＬ，ＶＨＨから切り離す。この時、レベルホールド回路で、トランジスタＭＮ５，ＭＰ５がオンとなり、正帰還により出力ＯＵＴが保持される。
【０１１５】
このように、レベルホールド回路をインバータとスイッチングインバータの組合せで構成することにより、トランジスタが２個増えるが、論理回路とレベルホールド回路が競合することが無くなり、遅延時間と消費電流が小さくて済む。また、レベルホールド回路の駆動能力を大きくしてもよく、出力端子でのリークが大きい場合でも出力が変動する恐れがなく安定動作ができる。
【０１１６】
図３９は、２相クロックで論理動作を行う論理回路に適用した実施例である。通常のマイクロプロセッサ等のＬＳＩでは、チップ内の論理動作のほとんどが２相クロックで同期をとって行なわれることが多い。論理回路をＬＣ１，ＬＣ２の二つに分け、各々の出力にはクロックＣＫ１ｂ，ＣＫ２ｂで制御されるラッチ回路ＬＴ１，ＬＴ２を付加する。本実施例では、ラッチ回路ＬＴ１，ＬＴ２がレベルホールド回路の役割を果たす。ここで、ＬＣ１，ＬＣ２は１個の論理ゲートもしくは複数の論理ゲートからなる組合せ論理回路である。二つの論理回路ＬＣ１，ＬＣ２はクロックに同期して交互に動作を行うので、スイッチＳＷＨ１とＳＷＬ１，ＳＷＨ２とＳＷＬ２をクロックによって交互にオン，オフし、動作を行わない論理回路のサブスレッショルド電流を遮断する。本実施例を用いれば低動作電圧でしかもサブスレッショルド電流の小さい低電力ＬＳＩが実現できる。
【０１１７】
図４０に示す具体的回路例と、図４１に示すその制御クロックのタイミングを用いて、動作を説明する。ここでは、簡単のため論理回路ＬＣ１，ＬＣ２としてインバータ１個ずつを示している。また、ラッチ回路ＬＴ１，ＬＴ２としては図３４に示したレベルホールド回路を用いているが、図２９に示した回路を用いても良い。クロックＣＫ１ｔ，ＣＫ２ｔは互いに重なること無く交互に高レベルになる。クロックＣＫ１ｂ，ＣＫ２ｂは、それぞれＣＫ１ｔ，ＣＫ２ｔを反転させた信号である。ここで、論理回路ＬＣ１，ＬＣ２を構成するＭＯＳトランジスタのしきい電圧を低くしておけば高速動作が可能である。一方、クロックがゲートに入力されるＭＯＳトランジスタは、オフ時にサブスレッショルド電流を遮断できなければならない。そのためには、しきい電圧を高くするか、あるいはクロックの高レベルをＶＨＨよりも高く，低レベルをＶＬＬよりも低くすればよい。
【０１１８】
動作モードでは、ＣＫ１ｔが高レベルの間、論理回路ＬＣ１が動作を行う。このとき、ＣＫ２ｔは低レベルなので、ラッチ回路ＬＴ２はＬＣ１の入力となる情報を保持している。また、論理回路ＬＣ２は動作を行わなくても良いので、トランジスタＭＰ１２及びＭＮ１２をオフにしてサブスレッショルド電流を遮断する。ＣＫ２ｔが高レベルの間は逆に、ＬＴ２は情報を保持し、ＬＣ２が動作を行うので、ＬＣ１のサブスレッショルド電流を遮断することができる。すなわち、常にＬＣ１とＬＣ２のいずれか一方の電流を遮断できるので、サブスレッショルド電流は従来の半分になる。
【０１１９】
最近の３．３Ｖから５Ｖで動作するマイクロプロセッサでは、前述したように低電力化するために、低電力バックアップモード（スリープモード）などでは不必要な回路へのクロックの印加を停止させ充放電電流を低減したりしている。本実施例では、図４１に示すように、スリープモードの間クロックＣＫ１ｔ，ＣＫ２ｔをともに低レベルにすることにより、トランジスタＭＰ１１及びＭＮ１１，ＭＰ１２及びＭＮ１２がいずれもオフになり、論理回路ＬＣ１，ＬＣ２の両方の貫通電流が遮断される。そのため、スリープモードでは動作モードよりも、サブスレッショルド電流を低減する効果がさらに大きい。
【０１２０】
図４２は、本発明の別の実施例を示す図であって、ゲートアレイに適用した例である。ゲートアレイはデジタル論理回路であるので、既に示した実施例を適用してサブスレッショルド電流を低減することが可能である。しかし、一般にゲートアレイでは、以下に述べるように、論理回路を構成する際、使用せずに不活性化されるゲートが発生する。図４２(A)は、２入力NANDを基本セルにするゲートアレイの１回路ブロックに於て(B)に示す論理を構成した例を示している。図中破線A001、A002、A003が基本NANDセルである。また、INN1およびOUT1はそれぞれこの論理回路ブロックの入力および出力である。同図のようにNANDセルでインバータを構成する場合には、入力の一方であるA004やA005を高レベル(VCC)に固定し、対応するゲートを不活性化することが一般的に行われている。この不活性化されたゲートは、利用可能なゲートの数十％にのぼることがしばしば起こるため、トランジスタのしきい電圧がスケーリングされた低電圧ゲートアレイにおいては、不活性化ゲートを流れるサブスレッショルド電流も無視できない。図中に示すように、VCCからトランジスタＭCおよび抵抗ＲCを介して分離された第2の電源線VCLにトランジスタMA01、MA03のソースを接続し、省電力モードにおいてφCを高レベルにしてＭCをカットオフ状態にすれば、トランジスタMA01、MA03のゲート・ソース間が逆バイアスされ深いカットオフ状態になるので、不活性化ゲートのサブスレッショルド電流を大幅に低減出来る。ただし、活性ゲートに関しては、既に述べたと同様に、低消費電力が必要な時間帯、例えば待機時における各ゲート出力の論理状態（図中高レベル:“H&#34ないし低レベル:“L&#34）に対応して、ＰチャネルトランジスタのソースはVCCないしVCLに、ＮチャネルトランジスタのソースはVSLないしVSSにそれぞれ接続すれば、やはりリーク電流を防止できることは勿論である。なお、非活性ゲートについては、動作時においてもトランジスタに電流を流す必要がないので、VCLではなく、最小配線幅で形成されたインピーダンスの高い他の配線を用いても良く、そのような配線に対しては、トランジスタＭCは必ずしも必要ではなく、抵抗ＲCのみとすることも可能である。
【０１２１】
図４３は、本発明の別の実施例を示す図であって、２入力NORを基本セルにするゲートアレイにおける不活性ゲートに、本発明によるサブスレッショルド電流防止を施した例を示す。同図は図４３(B)に示した論理をNORセルで構成した例を示している。図中破線A011、A012、A013が基本NORセルである。NORセルでインバータを構成する場合には、入力の一方であるA014やA015をLOW(VSS)に固定し、対応するゲートを不活性化することが一般的に行われている。このとき、トランジスタMA11、MA13のソースをVSLに接続すれば、既に説明した動作原理によりこれらトランジスタを深いカットオフ状態にすることができ、サブスレッショルド電流を防止できる。
【０１２２】
また、ＬＳＩチップが大規模化するにつれて、チップ内部に他の回路群をテストするためのテスト回路が内蔵されるのが普通になる。このテスト回路は、テスト時以外の通常動作時には動作を停止させることができる。この場合にテスト回路のサブスレッショルド電流を低減するためには、これまで述べた実施例が有効である。
【０１２３】
以上述べた各実施例を、シングルチップ・マイクロプロセッサに適用した例を以下に示す。まずこれまでの電力低減機構を持つマイクロプロセッサについて述べる。従来のマイクロプロセッサでは、チップ全体を一度に制御することにより電力を制御していた。例えば、インテル社のｉ３８６ＳＬでは、内部回路が完全スタティックになっているため、チップへのクロックの入力を停止しても内部状態が保持され、再度クロックの入力を再開すれば動作を再開できる。このように、クロックの入力を停止することにより、チップ全体の動作を停止させ、これによりシステム全体の電力を低減しようとしていた。しかしこれは、従来までのように電源電圧が３．３Ｖ〜５Ｖと高い場合にのみ可能であった。ＣＭＯＳ回路を構成するＭＯＳトランジスタのしきい電圧が０．４〜０．５Ｖ程度と高くとれるために、サブスレッショルド電流が無視できるほど小さくできるためである。しかし、前述したように、電源電圧が２Ｖ以下あるいは０．９〜１．６Ｖ程度のような電池１個の電圧で動作させる高速システムでは、もはやクロックを停止しても低電力化はできない。一般に、ランダムゲートを主体とした論理ゲートからなるＬＳＩでは、チップ内の多数の論理ゲートの中で、論理ゲートの入力電圧が変化する論理ゲート数は全体の約２割程度といわれている。その他の約８割の論理ゲートでは、その入力は変化しない。幸いにして従来のＣＭＯＳ回路ではしきい電圧が高かったために、この８割の数の論理ゲートの電力がほとんど無視できて、チップ全体を低電力にできていたわけである。しかし、停電源電圧ではもはやこれは期待できなくなる。以下、低電源電圧動作においてチップ全体が低電力になるような電子装置の一例としてマイクロプロセッサを取り上げる。
【０１２４】
図４４に本発明の電力低減機構を内蔵するシングルチップ・マイクロプロセッサを示す。以下に述べるように、チップ内部でユニット別にアクティブ／スタンドバイをコントロールする機構を設けているのが特長である。６００がシングルチップのマイクロプロセッサである。このマイクロプロセッサ６００上には、中央処理部（以下、ＣＰＵと略す）６０１、コプロセッサＡ（以下、ＣＯＰＡと略す）６０２、コプロセッサＢ（以下、ＣＯＰＢと略す）６０３、ローカルメモリ（以下、ＬＭと略す）６０４、バス制御部（以下、ＢＵＳＣと略す）６０５が内蔵されている。これらの各ユニットはチップ上の内部バス６５１によって接続されている。また、チップ外部とはＢＵＳＣ６０５を介して、外部バス６５２と接続される。外部バス６５２にはメインメモリ（以下、ＭＳと略す）６０６、入出力デバイス（以下、ＩＯと略す）６０７等が接続される。ＣＰＧ６０６はクロックジェネレータであり、チップ内部の各ユニットはＣＰＧ６０６から生成されるクロック信号６５３に同期して動作する。
【０１２５】
ＣＯＰＡ６０２、ＣＯＰＢ６０３、ＬＭ６０４は、それぞれ二つの動作状態を持っている。その一つはスリープ状態である。この状態では、各ユニットの動作は停止しており、消費される電力は極めて小さい。他の一つはアクティブ状態である。この状態では、ユニットがデータの読み出し／書き込み動作や演算処理動作等の処理を実行している。このため、消費電力を極めて小さく抑えることはしない。これらの各ユニットを構成する論理回路は、例えば図１８〜２６、図２８〜３２、図３９〜４１等の回路を使用している。これにより、スリープ状態の消費電力を低減できる。さらにアクティブ状態においても、例えば図３９〜４１の回路を用いて、２相クロックのフェーズごとにきめ細かく活性化状態をコントロールすることにより、電力を低減できる。ＭＳ６０６とＩＯ６０７もアクティブ／スリープ状態を持つ。マイクロプロセッサ６００から出力される信号６５４及び６５５は、ＭＳ６０６とＩＯ６０７がそれぞれアクティブ状態になることを指示する信号である。
【０１２６】
ＣＯＰＡ６０２，ＣＯＰＢ６０３は、基本的に同種のユニットで、ＣＰＵで実行されたプログラム中にＣＯＰＡあるいはＣＯＰＢの演算を要求する命令があるときだけ、指定された演算を実行する。この時だけアクティブとなり、他の期間はスリープで良い。通常のプログラムでは、この演算要求の頻度はそれほど高くない。内部には、多量のレジスタファイル，トランジスタ数の多い専用演算器を（時には複数個）もち、全体のトランジスタ数が多いのが特徴である。
【０１２７】
また、ＬＭ６０４は、ＣＰＵが必要とするプログラムやデータが格納されているため、アクセス頻度は高い。しかし、ＣＰＵ内部にキャッシュメモリが内蔵されているような場合には、ＣＰＵ内部で閉じて処理が行われるため、アクセス頻度が下がり、スリープ状態の期間が長くなる、といった特徴がある。
【０１２８】
ＣＰＵ６０１は、命令を実行し、データを処理する部分で、常にプログラムを実行している（活性化率１００％）。ＣＰＵ内部は汎用レジスタ，演算器など通常のプロセッサの基本部分が含まれる。時には、キャッシュメモリを含む場合もある。命令やデータは、ＬＭ６０４あるいはＭＳ６０６に格納されている。ＬＭ６０４は小容量であるが高速にアクセス可能なオンチップ上のメモリで、頻繁にＣＰＵ６０１によって使われる命令やデータが格納されている。それほど頻繁にアクセスする必要のない命令やデータは大容量であるが中低速なメモリのＭＳ６０６に格納されている。ＣＰＵ６０１は内部バス６５１を介して直接ＬＭ６０４をアクセスすることができる。一方、ＭＳ６０６に対するアクセスは、内部バス６５１、ＢＵＳＣ６０５、外部バス６５２を介する。ＢＵＳＣ６０５は、３２〜１２８ビット幅程度の外部バス用バッファを含む。ＣＰＵがチップ外部のメモリやデバイスに対してアクセスするときだけ、アクティブになれば良い。ＣＰＵが必要とするプログラムやデータがチップ内部に存在するときにはスリープ状態で良い。
【０１２９】
ＣＯＰＡ６０２は乗算、除算、平方根、絶対値の計算を実行するコプロセッサであり、これらの演算を高速に処理する専用演算器を内蔵する。ＣＯＰＢ６０３は三角関数、距離計算等の関数演算を実行するコプロセッサであり、これらの演算を高速に処理する専用演算器を内蔵する。ＣＰＵ６０１は、内部バス６５１を経由して、ＣＯＰＡ６０２、ＣＯＰＢ６０３内のコマンドレジスタＣＭＤＡ６０９、ＣＭＤＢ６１０に要求する演算を指示するコマンドを書き込むことにより、各コプロセッサに演算の起動をかける。演算の起動がかかるまで、各コプロセッサはスリープ状態にあり、電力をほとんど消費しない。
【０１３０】
図４５はＣＯＰＡ６０２の内部構成図である。内部は二つのブロックＩＴＦＡ７００とＥＸＡ７０１からなる。ＩＴＦＡ７００は、コマンドレジスタＣＭＤＡ６０９、コマンドデコーダＤＥＣ７０６、オペランドレジスタＲＡ７０２，ＲＢ７０３，ＲＣ７０４、および制御回路ＣＮＴ７０５を持つ。ＥＸＡ７０１は乗算、除算、平方根、絶対値の計算を高速に処理する専用演算器とそれを制御する制御回路が内蔵されている。内部バス６５１経由で、ＣＰＵ６０１から送られてきたコマンドはＣＭＤＡ６０９に保持され、ＤＥＣ７０６でそのコマンドがデコードされ、ＥＸＡ７０１にそのコマンドで指示された演算を実行させる。コマンドは乗算、除算、平方根、絶対値の４種類がある。演算のためのオペランドはＲＡ７０２，ＲＢ７０３にＣＰＵ６０１から送られてきたソースオペランドが格納され、演算結果はＥＸＡ７０１で演算終了後、ＲＣ７０４に格納され、ＣＰＵ６０１から読み出される。ＥＸＡ７０１は演算を行っていないときには、スリープ状態である。ＤＥＣ７０６でそのコマンドがデコードされると、ＥＸＡ７０１にそのコマンドで指示された演算を実行させる信号が生成され、ＥＸＡ７０１が演算を開始する。演算実行中、ＥＸＡ７０１はアクティブ状態になる。演算終了後、ＥＸＡ７０１はＲＣ７０４に結果を格納し、ＣＭＤＡ６０９をゼロクリアする。ＣＭＤＡ６０９の内容がゼロであることをＤＥＣ７０６が検出し、ＳＬＥＥＰ７０７信号がアサートされることにより、ＥＸＡ７０１がスリープ状態に入る。ＣＮＴ７０５は各レジスタ６０９、７０２、７０３、７０４に対するリード／ライト、ゼロクリア等の動作を制御する。ＩＴＦＡ７００は、常にＣＰＵからのコマンドを受け付けられるようにするために、常にアクティブ状態である。ＣＰＧ６０６から生成されたクロック信号６５３は、ＩＴＦＡ７００で使用される。また、ゲート回路７０９を介してＥＸＡ用クロック信号７１０が出力され、これがＥＸＡ７０１のクロックとして使われる。ＳＬＥＥＰ７０７がアサートされたときには、ゲート回路７０９がＥＸＡ用クロック７１０を停止させ、ＥＸＡ７０１にクロックが供給されなくなる。これにより、スリープ状態では、ＥＸＡ７０１のクロックも停止状態になる。このＳＬＥＥＰ信号によって、例えば、図１８〜２６あるいは図２８〜３２等の回路のスイッチが制御され、スリープ状態でのサブスレッショルド電流が低減される。
【０１３１】
ＥＸＡ７０１の内部には、専用の演算器とともに演算の途中結果を保持しておくレジスタや演算状態を保持するレジスタ、演算制御のためのラッチなどが含まれる。これらのレジスタやラッチには、例えば図３５や図３７の回路が使用される。図３５の回路の場合は、一旦スリープ状態に入るとラッチ内部の状態は破壊される。一方、図３７の回路の場合は、スリープ状態に入ってもラッチ内部の状態は破壊されない。このため、一旦スリープ状態に入った後、アクティブ状態に戻ったとき、途中で停止した演算動作を再開することができる。
【０１３２】
ＣＯＰＢ６０３は、三角関数、距離計算等の関数演算を実行するコプロセッサであるが、その内部構成および動作はＣＯＰＡ６０２と同様である。
【０１３３】
図４６にＬＭ６０４の内部構成を示す。ＭＥＭ９０１は命令／データ等の情報を格納しておくメモリ部である。ＭＣＮＴ９０２はＣＰＵ６０１からのアクセス要求を受け取り、ＭＥＭ９０１に格納されているデータを読み出したり、ＭＥＭ９０１にデータを書き込む制御を行う。ＣＰＵ６０１からアクセス要求があったときにＭＣＮＴ９０２はＭＥＭ９０１をアクティブ状態にする信号ＡＣＴ９０３をアサートしてＭＥＭ９０１を動作状態にする。アクセス要求がないときにはＡＣＴ９０３がネゲートされているためＭＥＭ９０１はスリープ状態にある。このＡＣＴ信号によって、例えば図１８〜２６あるいは図２８〜３２等の回路のスイッチが制御され、スリープ状態でのサブスレッショルド電流が低減される。なお、この状態でもメモリには情報が保持されている。ＭＣＮＴ９０２は、常にＣＰＵからのアクセス要求を受け付けられるようにするために、常にアクティブ状態である。
【０１３４】
ＣＰＵ６０１がＭＳ６０６に命令やデータをアクセスする時は、内部バス６５１、ＢＵＳＣ６０５、外部バス６５２を介する。ＢＵＳＣ６０５はこのときだけアクティブ状態になる。図４７にＢＵＳＣ６０５の内部構成を示す。ＢＣＮＴ８００はＣＰＵ６０１の要求に応じて外部バス６５２へのアクセスを制御する回路である。ＯＵＴＢ８０１は内部バス６５１から外部バス６５２へデータを流すときに外部バス６５２をドライブするドライバ回路であり、このときだけアクティブになる。ＩＮＢ８０２は外部バス６５２から内部バス６５１へデータを流すときに内部バス６５１をドライブするドライバ回路であり、このときだけアクティブになる。ＢＣＮＴ８００はＣＰＵ６０１からチップ外部のＭＳ６０６やＩＯ６０７に対しての書き込み要求を受け取ると、ＡＣＴＷ８０３をアサートしてＯＵＴＢ８０１をアクティブにする。逆に、ＢＣＮＴ８００はＣＰＵ６０１からチップ外部のＭＳ６０６やＩＯ６０７からの読み出し要求を受け取ると、ＡＣＴＲ８０４をアサートしてＩＮＢ８０２をアクティブにする。これらのとき以外、ＯＵＴＢ８０１，ＩＮＢ８０２はスリープ状態にある。ＢＣＮＴ８００は、常にチップ外部に対するアクセス要求を受け付けられるようにするために、常にアクティブ状態である。ＢＣＮＴ８００はＭＳ６０６に対するアクティブ支持信号６５４とＩＯ６０７に対するアクティブ指示信号６５５も出力する。ＣＰＵ６０１がＢＣＮＴ８００にたいし、ＭＳ６０６へアクセス要求した場合、ＢＣＮＴ８００はそれを検出し信号６５４をアサートし、ＭＳ６０６をアクティブ状態にする。信号６５５も同様の目的で使われる。
【０１３５】
ＯＵＴＢ８０１には、例えば図２５の出力バッファ回路が使われ、ＡＣＴＷ信号に従ってスイッチＳS、ＳCが制御される。ＯＵＴＢは、大きな負荷（外部バス６５２）を駆動するので、チャネル幅の大きなＭＯＳトランジスタを、バス幅（例えば６４ビット）の数だけ必要とし、そのチャネル幅の合計は非常に大きい。したがって、ＯＵＴＢのサブスレッショルド電流を低減することは、システム全体の電流低減に大きく寄与する。
【０１３６】
ＩＮＢ８０２には、例えば図２６の入力バッファ回路が使われ、ＡＣＴＲ信号がＳＢ端子に供給される。これにより、スリープ状態のときの内部バス６５１の電圧レベルを確定させることができる。したがって、このバスに接続されたユニットＣＯＰＡ、ＣＯＰＢ、ＬＭに、例えば図１８〜２５の回路を用いることができ、これらのユニットのサブスレッショルド電流低減が容易になる。
【０１３７】
ＭＳ６０６には、例えばＤＲＡＭが用いられる。ＤＲＡＭとしては、普通のＤＲＡＭでもよいが、アイ・イー・イー・イー・スペクトラム、第４３頁から第４９頁、１９９２年１０月（IEEE Spectrum, pp.43-49, Oct.1992）に記載されているシンクロナスＤＲＡＭでもよい。シンクロナスＤＲＡＭでは、クロックエネーブル／ディスエーブル信号によってチップ内部へのクロックの供給を制御できるので、この信号を活用すれば効果的に消費電流を低減できる。すなわち、スリープ状態のときはチップ内部へのクロックの供給を停止する。さらに、図２６の回路をシンクロナスＤＲＡＭの入力バッファとして用い、クロックエネーブル／ディスエーブル信号をＳＢ端子に印加することにより、内部回路のサブスレッショルド電流を低減できる。
【０１３８】
図４８はマイクロプロセッサ６００全体の動作例を示す。横軸は時刻を表し、斜線は各ユニット、各ブロックがアクティブである状態を示す。この例では、ＣＰＵ６０１は時刻Ｔ１にＣＯＰＡ６０２に除算コマンドを発行し、これに従いＣＯＰＡ６０２はＴ１からＴ２まで除算を実行し、時刻Ｔ２に演算終了をＣＰＵ６０１に報告して再びスリープ状態に入る。その後、ＣＰＵ６０１は時刻Ｔ３にＣＯＰＢ６０３に距離計算コマンドを発行し、これに従いＣＯＰＢ６０３はＴ３からＴ４まで距離計算を実行し、時刻Ｔ４に計算終了をＣＰＵ６０１に報告して再びスリープ状態に入る。ＬＭ６０４はＣＰＵ６０１からデータのアクセス要求があるときだけアクティブになる。ＢＵＳＣ６０５もＣＰＵ６０１が外部にたいしてアクセスするときだけアクティブになる。このように、マイクロプロセッサ６００内部できめ細かく各ユニット、各ブロックのアクティブ／スリープ状態を制御することによりマイクロプロセッサ６００の消費電力を大幅に低減することが可能になる。
【０１３９】
本実施例は一つのチップ内部での本発明を適用したケースであるが、これを複数のチップからなる、計算機システムの実施例にも拡張することは自明である。例えば、第４４図における６０１から６０５の各ユニットがそれぞれ別チップで構成されるケースで本発明を適用することは容易である。
【図面の簡単な説明】
【０１４０】
【図１】本発明の実施例１のインバータを示す図である。
【図２】本発明によるサブスレッショルド電流低減の原理を示す図である。
【図３】本発明によるサブスレッショルド電流低減効果を示す図である。
【図４】本発明の実施例２のインバータの回路図である。
【図５】本発明の信号のタイミングを示す図である。
【図６】本発明のデバイス構造を示す図である。
【図７】本発明の実施例３のインバータの回路図である。
【図８】本発明の実施例４のインバータの回路図である。
【図９】本発明のデバイス構造を示す図である。
【図１０】本発明の実施例５のインバータ列を示す図である。
【図１１】本発明の実施例６のインバータ列を示す図である。
【図１２】本発明の実施例７のインバータ列を示す図である。
【図１３】本発明が適用される組合せ論理回路のグループ分けの例を示す図である。
【図１４】本発明の実施例８の組合せ論理回路を示す図である。
【図１５】本発明の実施例９の組合せ論理回路を示す図である。
【図１６】本発明の実施例１０のラッチを示す図である。
【図１７】本発明の実施例１１のラッチの回路図である。
【図１８】本発明の実施例１２のインバータ列の回路図である。
【図１９】本発明の実施例１３のインバータ列の回路図である。
【図２０】本発明の実施例１４のＮＡＮＤゲートの回路図である。
【図２１】本発明の実施例１５のＮＯＲゲートの回路図である。
【図２２】本発明の実施例１６のクロックインバータの回路図である。
【図２３】本発明の実施例１７の組合せ論理回路の回路図である。
【図２４】本発明の実施例１８のラッチの回路図である。
【図２５】本発明の実施例１９の出力バッファの回路図である。
【図２６】本発明の実施例２０の入力バッファの回路図である。
【図２７】本発明の実施例２１のＮＭＯＳダイナミック回路の回路図である。
【図２８】概念的実施例を示す図である。
【図２９】ＣＭＯＳインバータに適用した実施例の回路図である。
【図３０】ＣＭＯＳインバータに適用した実施例の動作タイミング図である。
【図３１】インバータチェーンに適用した実施例を示す図である。
【図３２】インバータチェーンに適用した別の実施例を示す図である。
【図３３】ＣＭＯＳインバータに適用した別の実施例を示す図である。
【図３４】レベルホールド回路の別の構成例の回路図である。
【図３５】出力を固定できるラッチ回路の回路図である。
【図３６】制御クロックのタイミング図である。
【図３７】出力を固定できるラッチ回路の回路図である。
【図３８】制御クロックのタイミング図である。
【図３９】２相クロック論理回路を示す図である。
【図４０】２相クロックで動作するインバータの回路図である。
【図４１】制御クロックのタイミング図である。
【図４２】本発明によるゲートアレイを示す図である。
【図４３】本発明によるゲートアレイを示す図である。
【図４４】本発明によるシングルチップ・マイクロプロセッサのブロック図である。
【図４５】コプロセッサの内部構成図である。
【図４６】ローカルメモリの内部構成図である。
【図４７】バス制御部の内部構成図である。
【図４８】マイクロプロセッサの動作タイミング図である。
【図４９】従来のＣＭＯＳインバータの回路図である。
【図５０】ＭＯＳトランジスタのサブスレッショルド特性を示す図である。
【符号の説明】
【０１４１】
Ｌ、Ｌ1〜Ｌk……論理ゲート
Ｇ1〜Ｇk……論理ゲート群、
ＳC、ＳC1〜ＳCk、
ＳS、ＳS1〜ＳSk……スイッチ
ＲC、ＲC1〜ＲCk、ＲS、ＲS1〜ＲSk……抵抗
【図１】
0003641481.tif 000010
【図２】
0003641481.tif 000011
【図３】
0003641481.tif 000012
【図４】
0003641481.tif 000013
【図５】
0003641481.tif 000014
【図６】
0003641481.tif 000015
【図７】
0003641481.tif 000016
【図８】
0003641481.tif 000017
【図９】
0003641481.tif 000018
【図１０】
0003641481.tif 000019
【図１１】
0003641481.tif 000020
【図１２】
0003641481.tif 000021
【図１３】
0003641481.tif 000022
【図１４】
0003641481.tif 000023
【図１５】
0003641481.tif 000024
【図１６】
0003641481.tif 000025
【図１７】
0003641481.tif 000026
【図１８】
0003641481.tif 000027
【図１９】
0003641481.tif 000028
【図２０】
0003641481.tif 000029
【図２１】
0003641481.tif 000030
【図２２】
0003641481.tif 000031
【図２３】
0003641481.tif 000032
【図２４】
0003641481.tif 000033
【図２５】
0003641481.tif 000034
【図２６】
0003641481.tif 000035
【図２７】
0003641481.tif 000036
【図２８】
0003641481.tif 000037
【図２９】
0003641481.tif 000038
【図３０】
0003641481.tif 000039
【図３１】
0003641481.tif 000040
【図３２】
0003641481.tif 000041
【図３３】
0003641481.tif 000042
【図３４】
0003641481.tif 000043
【図３５】
0003641481.tif 000044
【図３６】
0003641481.tif 000045
【図３７】
0003641481.tif 000046
【図３８】
0003641481.tif 000047
【図３９】
0003641481.tif 000048
【図４０】
0003641481.tif 000049
【図４１】
0003641481.tif 000050
【図４２】
0003641481.tif 000051
【図４３】
0003641481.tif 000052
【図４４】
0003641481.tif 000053
【図４５】
0003641481.tif 000054
【図４６】
0003641481.tif 000055
【図４７】
0003641481.tif 000056
【図４８】
0003641481.tif 000057
【図４９】
0003641481.tif 000058
【図５０】
0003641481.tif 000059