(57)【要約】【課題】電源をオフとした状態でもデータを保持できるＣＰＵ及びＰＬＤを有する半導体装置の電源制御方法の提供。【解決手段】プロセッサと、プログラマブルロジックデバイスと、状態制御回路と、を有する。プログラマブルロジックデバイスは、第１の不揮発性記憶回路を有し、プログラマブルロジックデバイスで演算して得られるデータを電源オフ時に保持できる機能を有する。状態制御回路は、プロセッサの命令に応じてプログラマブルロジックデバイスで行うタスクの量を把握する。プログラマブルロジックデバイスは、タスクの進行の段階を検知して状態制御回路に信号を出力する。状態制御回路は、タスクの量とタスクの進行の段階と監視し、タスクの終了に応じてプログラマブルロジックデバイスを電源オフにする。【選択図】図３
2018033132.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサと、プログラマブルロジックデバイスと、状態制御回路と、を有し、
前記プログラマブルロジックデバイスは、電源オフ時に前記プログラマブルロジックデバイスで演算して得られるデータを第１の不揮発性記憶回路に保持し、
前記状態制御回路は、前記プロセッサの命令に応じて前記プログラマブルロジックデバイスで行うタスクの状態に対応したデータを保持し、
前記プログラマブルロジックデバイスは、前記タスクの進行の段階を検知して前記状態制御回路に信号を出力し、
前記状態制御回路は、前記タスクの終了に応じて前記プログラマブルロジックデバイスを電源オフにする半導体装置の電源制御方法。
【請求項２】
プロセッサと、プログラマブルロジックデバイスと、状態制御回路と、電源制御ユニットと、を有し、
前記プログラマブルロジックデバイスは、電源オフ時に前記プログラマブルロジックデバイスで演算して得られるデータを第１の不揮発性記憶回路に保持し、
前記プロセッサは、電源オフ時に前記プロセッサで演算して得られるデータをプロセッサの第２の不揮発性記憶回路に保持し、
前記状態制御回路は、前記プロセッサの命令に応じて前記プログラマブルロジックデバイスで行うタスクの状態に対応したデータを保持し、
前記プログラマブルロジックデバイスは、前記タスクの進行の段階を検知して前記状態制御回路に信号を出力し、
前記状態制御回路は、前記タスクの終了に応じて前記プログラマブルロジックデバイスを電源オフにし、
前記電源制御ユニットは、前記命令の終了に応じて前記プロセッサを電源オフにする半導体装置の電源制御方法。
【請求項３】
請求項１または請求項２において、
プログラマブルロジックデバイスは、第１のプログラマブル領域と、第２のプログラマブル領域と、を有し、
前記第１のプログラマブル領域は、前記タスクの進行の段階を検知させる回路構成とし、
前記第２のプログラマブル領域は、前記タスクに応じた演算処理を行う回路構成とする半導体装置の電源制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の一態様は、半導体装置の電源制御方法に関する。
【背景技術】
【０００２】
回路の構成をユーザが任意に変更することが可能なデバイスとして、プログラマブルロジックデバイス（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ；以下、ＰＬＤ）が知られている。
【０００３】
ＰＬＤが有するロジックエレメントは、ルックアップテーブル（Ｌｏｏｋ  Ｕｐ  Ｔａｂｌｅ；以下、ＬＵＴ）およびレジスタを有する。ＬＵＴが有するコンフィギュレーションメモリに格納するデータを変更することにより、ロジックエレメントの機能を変更することができる。
【０００４】
特許文献１では、チャネル形成領域に半導体として機能する金属酸化物を有するトランジスタ（ＯＳトランジスタ）を、チャネル形成領域にシリコンを有するトランジスタ（Ｓｉトランジスタ）のゲートに接続した回路構成が開示されている。当該回路構成では、ＰＬＤの電源をオフとした状態でもコンフィギュレーションデータを保持すること、およびレジスタのデータを保持することができる。
【０００５】
特許文献２では、ＯＳトランジスタをＳｉトランジスタのゲートに接続して、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）の電源をオフとした状態でもレジスタのデータを保持する構成について開示されている。ＣＰＵは、実行するプログラムに従って様々な数値演算を行う。ＰＬＤあるいはＧＰＵは、ＣＰＵの演算性能を向上させるために、コプロセッサとして用いることができる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】米国特許出願公開第２０１４／０１２６２７１号明細書
【特許文献２】米国特許出願公開第２０１２／０１７０３５５号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上述したような、電源をオフにしてもデータを保持できるＣＰＵとＰＬＤとを組み合わせることで、演算性能を向上させるとともに低消費電力化を図ることが期待されている。そのためには、適切な期間にＣＰＵおよび／またはＰＬＤの電源をオフにし、演算性能を低下させることなく低消費電力化を図ることが望まれる。
【０００８】
本発明の一態様は、電源をオフとした状態でもデータを保持できるＣＰＵ及びＰＬＤを有する半導体装置の電源制御方法を提供することを課題の一つとする。
【課題を解決するための手段】
【０００９】
本発明の一態様は、プロセッサと、プログラマブルロジックデバイスと、状態制御回路と、を有し、プログラマブルロジックデバイスは、電源オフ時にプログラマブルロジックデバイスで演算して得られるデータを第１の不揮発性記憶回路に保持し、状態制御回路は、プロセッサの命令に応じてプログラマブルロジックデバイスで行うタスクの状態に対応したデータを保持し、プログラマブルロジックデバイスは、タスクの進行の段階を検知して状態制御回路に信号を出力し、状態制御回路は、タスクの終了に応じてプログラマブルロジックデバイスを電源オフにする半導体装置の電源制御方法である。
【００１０】
本発明の一態様は、プロセッサと、プログラマブルロジックデバイスと、状態制御回路と、電源制御ユニットと、を有し、プログラマブルロジックデバイスは、電源オフ時にプログラマブルロジックデバイスで演算して得られるデータを第１の不揮発性記憶回路に保持し、プロセッサは、電源オフ時にプロセッサで演算して得られるデータをプロセッサの第２の不揮発性記憶回路に保持し、状態制御回路は、プロセッサの命令に応じてプログラマブルロジックデバイスで行うタスクの状態に対応したデータを保持し、プログラマブルロジックデバイスは、タスクの進行の段階を検知して状態制御回路に信号を出力し、状態制御回路は、タスクの終了に応じてプログラマブルロジックデバイスを電源オフにし、電源制御ユニットは、命令の終了に応じてプロセッサを電源オフにする半導体装置の電源制御方法である。
【００１１】
本発明の一態様において、プログラマブルロジックデバイスは、第１のプログラマブル領域と、第２のプログラマブル領域と、を有し、第１のプログラマブル領域は、タスクの進行の段階を検知させる回路構成とし、第２のプログラマブル領域は、タスクに応じた演算処理を行う回路構成とする半導体装置の電源制御方法が好ましい。
【００１２】
なおその他の本発明の一態様については、以下で述べる実施の形態における説明、および図面に記載されている。
【発明の効果】
【００１３】
本発明の一態様により、電源をオフとした状態でもデータを保持できるＣＰＵ及びＰＬＤを有する半導体装置の電源制御方法を提供することができる。当該制御方法によって、演算性能の向上と低消費電力化とを図ることができる。
【図面の簡単な説明】
【００１４】
【図１】本発明の一態様を説明するブロック図。
【図２】本発明の一態様を説明する状態遷移図。
【図３】本発明の一態様を説明するフローチャート。
【図４】ＰＬＤを説明するブロック図。
【図５】ＰＬＤを説明するブロック図。
【図６】本発明の一態様を説明するブロック図。
【図７】ＰＬＤの構成例を説明する図。
【図８】ＬＥの構成例を説明する図。
【図９】回路の構成例を説明する図。
【図１０】回路の構成例を説明する図。
【図１１】回路の構成例を説明する図。
【図１２】回路の構成例を説明する図。
【図１３】回路の構成例を説明する図。
【発明を実施するための形態】
【００１５】
以下、実施の形態について図面を参照しながら説明する。但し、実施の形態は多くの異なる態様で実施することが可能であり、趣旨およびその範囲から逸脱することなくその形態および詳細を様々に変更し得ることは当業者であれば容易に理解される。従って、本発明の一態様は、以下の実施の形態の記載内容に限定して解釈されるものではない。
【００１６】
本明細書等において、金属酸化物（ｍｅｔａｌ  ｏｘｉｄｅ）とは、広い表現での金属の酸化物である。金属酸化物は、酸化物絶縁体、酸化物導電体（透明酸化物導電体を含む）、酸化物半導体（Ｏｘｉｄｅ  Ｓｅｍｉｃｏｎｄｕｃｔｏｒまたは単にＯＳともいう）などに分類される。例えば、トランジスタの半導体層に金属酸化物を用いた場合、当該金属酸化物を酸化物半導体と呼称する場合がある。つまり、金属酸化物が増幅作用、整流作用、及びスイッチング作用の少なくとも１つを有する場合、当該金属酸化物を、金属酸化物半導体（ｍｅｔａｌ  ｏｘｉｄｅ  ｓｅｍｉｃｏｎｄｕｃｔｏｒ）、略してＯＳと呼ぶことができる。また、ＯＳ  ＦＥＴと記載する場合においては、金属酸化物または酸化物半導体を有するトランジスタと換言することができる。
【００１７】
また、本明細書等において、窒素を有する金属酸化物も金属酸化物（ｍｅｔａｌ  ｏｘｉｄｅ）と総称する場合がある。また、窒素を有する金属酸化物を、金属酸窒化物（ｍｅｔａｌ  ｏｘｙｎｉｔｒｉｄｅ）と呼称してもよい。
【００１８】
また、本明細書等において、ＣＡＡＣ（ｃ−ａｘｉｓ  ａｌｉｇｎｅｄ  ｃｒｙｓｔａｌ）、及びＣＡＣ（ｃｌｏｕｄ−ａｌｉｇｎｅｄ  ｃｏｍｐｏｓｉｔｅ）と記載する場合がある。なお、ＣＡＡＣは結晶構造の一例を表し、ＣＡＣは機能、または材料の構成の一例を表す。
【００１９】
また、本明細書等において、ＣＡＣ−ＯＳまたはＣＡＣ−ｍｅｔａｌ  ｏｘｉｄｅとは、材料の一部では導電性の機能と、材料の一部では絶縁性の機能とを有し、材料の全体では半導体としての機能を有する。なお、ＣＡＣ−ＯＳまたはＣＡＣ−ｍｅｔａｌ  ｏｘｉｄｅを、トランジスタの半導体層に用いる場合、導電性の機能は、キャリアとなる電子（またはホール）を流す機能であり、絶縁性の機能は、キャリアとなる電子を流さない機能である。導電性の機能と、絶縁性の機能とを、それぞれ相補的に作用させることで、スイッチングさせる機能（Ｏｎ／Ｏｆｆさせる機能）をＣＡＣ−ＯＳまたはＣＡＣ−ｍｅｔａｌ  ｏｘｉｄｅに付与することができる。ＣＡＣ−ＯＳまたはＣＡＣ−ｍｅｔａｌ  ｏｘｉｄｅにおいて、それぞれの機能を分離させることで、双方の機能を最大限に高めることができる。
【００２０】
また、本明細書等において、ＣＡＣ−ＯＳまたはＣＡＣ−ｍｅｔａｌ  ｏｘｉｄｅは、導電性領域、及び絶縁性領域を有する。導電性領域は、上述の導電性の機能を有し、絶縁性領域は、上述の絶縁性の機能を有する。また、材料中において、導電性領域と、絶縁性領域とは、ナノ粒子レベルで分離している場合がある。また、導電性領域と、絶縁性領域とは、それぞれ材料中に偏在する場合がある。また、導電性領域は、周辺がぼけてクラウド状に連結して観察される場合がある。
【００２１】
また、ＣＡＣ−ＯＳまたはＣＡＣ−ｍｅｔａｌ  ｏｘｉｄｅにおいて、導電性領域と、絶縁性領域とは、それぞれ０．５ｎｍ以上１０ｎｍ以下、好ましくは０．５ｎｍ以上３ｎｍ以下のサイズで材料中に分散している場合がある。
【００２２】
また、ＣＡＣ−ＯＳまたはＣＡＣ−ｍｅｔａｌ  ｏｘｉｄｅは、異なるバンドギャップを有する成分により構成される。例えば、ＣＡＣ−ＯＳまたはＣＡＣ−ｍｅｔａｌ  ｏｘｉｄｅは、絶縁性領域に起因するワイドギャップを有する成分と、導電性領域に起因するナローギャップを有する成分と、により構成される。当該構成の場合、キャリアを流す際に、ナローギャップを有する成分において、主にキャリアが流れる。また、ナローギャップを有する成分が、ワイドギャップを有する成分に相補的に作用し、ナローギャップを有する成分に連動してワイドギャップを有する成分にもキャリアが流れる。このため、上記ＣＡＣ−ＯＳまたはＣＡＣ−ｍｅｔａｌ  ｏｘｉｄｅをトランジスタのチャネル領域に用いる場合、トランジスタのオン状態において高い電流駆動力、つまり大きなオン電流、及び高い電界効果移動度を得ることができる。
【００２３】
すなわち、ＣＡＣ−ＯＳまたはＣＡＣ−ｍｅｔａｌ  ｏｘｉｄｅは、マトリックス複合材（ｍａｔｒｉｘ  ｃｏｍｐｏｓｉｔｅ）、または金属マトリックス複合材（ｍｅｔａｌ  ｍａｔｒｉｘ  ｃｏｍｐｏｓｉｔｅ）と呼称することもできる。
【００２４】
（実施の形態１）
本実施の形態では、半導体装置の電源制御方法について説明する。なお本明細書中において半導体装置とは、半導体特性を利用することで機能しうる装置全般を指す。具体的には、ＣＰＵおよびＰＬＤといった回路を有する装置全般またはシステム全般を指す。
【００２５】
＜半導体装置の構成＞
図１に半導体装置のブロック図を示す。図１では、ＣＰＵ１１、メモリ１２（図中、ＭＥＭと図示）、バス１３（図中、ＢＵＳと図示）、ＰＬＤ２１、電源制御ユニット３１（図中、ＰＭＵと図示）、状態制御回路３２（図中、ＦＣＴＲと図示）、マルチプレクサ５１（図中、ＭＵＸと図示）およびコンフィギュレーションＲＯＭ５２Ａ乃至５２Ｃ（図中、ＲＯＭ１乃至ＲＯＭ３と図示）を有する。
【００２６】
バス１３は、ＣＰＵ１１と各種モジュールを接続する機能を有する。ＰＬＤ２１は、コンフィギュレーションデータに応じてタスクを切り替えて実行可能な回路である。ＰＬＤ２１は、ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）としての機能を有する。状態制御回路３２は、ＰＬＤ２１の状態を制御する機能を有する。コンフィギュレーションＲＯＭ５２Ａ乃至５２Ｃは、ＰＬＤ２１のタスクに応じたコンフィギュレーションデータを記憶するための回路である。マルチプレクサ５１は、コンフィギュレーションＲＯＭ５２Ａ乃至５２Ｃのいずれか一つを選択するための回路である。
【００２７】
提案するシステムは、図１に図示するように、電源ドメイン１０（図中、Ｄｏｍａｉｎ１と図示）、電源ドメイン２０（図中、Ｄｏｍａｉｎ２と図示）、電源ドメイン３０（図中、Ｄｏｍａｉｎ３と図示）を有する。電源ドメイン１０は、ＣＰＵ１１、メモリ１２、およびバス１３を有する。電源ドメイン２０は、ＰＬＤ２１を有する。電源ドメイン３０は、電源制御ユニット３１および状態制御回路３２を有する。なお電源制御ユニット３１と状態制御回路３２とは、別のドメインとしてもよい。
【００２８】
ＣＰＵ１１はプログラムに従って、様々な数値演算を行う。ＣＰＵ１１は、プロセッサとも呼ぶ。メモリ１２、電源制御ユニット３１、状態制御回路３２およびＰＬＤ２１は、特定の論理アドレスに割り振られたメモリとしてＣＰＵ１１から認識される。すなわち、ＣＰＵ１１から送信されるアドレス信号がアドレス信号線ＡＤＤおよびバス１３を介して、所望のモジュールに送信され、ＣＰＵ１１は所望のモジュールとアクセスすることができる。アクセスする場合、データ信号線ＤＡＴＡを介して、所望のデータがやり取りされる。ここで、メモリ１２のアドレス信号線をＡＤＤＭｅ、データ信号線をＤＡＴＡＭｅ、電源制御ユニット３１のアドレス信号線をＡＤＤＰｍ、データ信号線をＤＡＴＡＰｍ、状態制御回路３２のアドレス信号線をＡＤＤＦｃ、データ信号線をＤＡＴＡＦｃ、ＰＬＤ２１のアドレス信号線をＡＤＤＦ、データ信号線をＤＡＴＡＦとする。
【００２９】
なおＣＰＵ１１は、ＰＬＤ２１が行わない数値演算や情報処理を行うことができる。また、ＣＰＵ１１は特定の演算処理に対して、ＰＬＤ２１に演算させるほうが効率が高いか、ＣＰＵ１１自身で演算するほうが効率が高いかを判定することができる。
【００３０】
メモリ１２は、ＣＰＵ１１の作業用のメモリであり、ＣＰＵ１１の処理データを格納する機能を有する。
【００３１】
電源制御ユニット３１は電源ドメイン１０の電源制御用回路として機能し、ＣＰＵ１１からの命令に従い、電源ドメイン１０のパワーオン、パワーオフを制御する。また、電源制御ユニット３１はタイマーとしての機能を有し、電源ドメイン１０がパワーオフの状態にあるとき、当該タイマー機能により、定期的に電源ドメイン１０のパワーオフからの復帰（パワーオン）を行うことができる。また、電源制御ユニット３１には、当該システム外部からのトリガー信号ＴＲＩＧを受け取ることが可能であり、ＴＲＩＧにより、電源ドメイン１０のパワーオフからの復帰（パワーオン）を行うことができる。
【００３２】
ＰＬＤ２１は、アドレス信号線ＡＤＤＦおよびデータ信号線ＤＡＴＡＦに接続され、アドレス信号線ＡＤＤＦおよびデータ信号線ＤＡＴＡＦを介して、ＣＰＵ１１はＰＬＤ２１にアクセス可能となる。ＰＬＤ２１は、信号線ＴＡＳＫ及び信号バスＣＴＲを介して、状態制御回路３２と接続される。また、ＰＬＤ２１は、マルチプレクサ５１を介してコンフィギュレーションＲＯＭ５２Ａ乃至５２Ｃ（ＲＯＭ１、ＲＯＭ２、ＲＯＭ３）と接続され、マルチプレクサ５１により選択されたコンフィギュレーションＲＯＭ５２Ａ乃至５２Ｃから、コンフィギュレーションデータを受け取り、回路構成を変更することができる。
【００３３】
状態制御回路３２は、信号線ＴＡＳＫを介したＰＬＤ２１の出力信号に従い、ＰＬＤ２１（電源ドメイン２０）の電源のオフまたはオンを制御する機能を有する。具体的には、ＰＬＤ２１は、特定のタスクが終了した場合、信号線ＴＡＳＫを介して、当該特定のタスクが終了したことを状態制御回路３２に伝達する。状態制御回路３２は、当該特定のタスクの状態に対応したデータを保持するレジスタを有し、このレジスタには当該特定のタスクが終了したか否かに関わるデータが格納される。状態制御回路３２は、ＰＬＤ２１から特定のタスクが終了したデータ受け取った場合、ＰＬＤ２１（電源ドメイン２０）の電源をオフさせることができる。ＰＬＤ２１の各ロジックエレメントにおけるレジスタは不揮発性領域を有し、ＰＬＤ２１（電源ドメイン２０）の電源をオフさせる直前にＰＬＤ２１内のレジスタのデータを不揮発性領域に退避させることができる。これにより、ＰＬＤ２１（電源ドメイン２０）の電源をオフさせても、ＰＬＤ２１が演算した演算結果（レジスタのデータ）を長期間保持することが出来る。
【００３４】
また状態制御回路３２は、ＰＬＤ２１の回路構成の変更する機能を有する。ＰＬＤ２１は、状態制御回路３２から送信される信号バスＣＴＲの出力信号により、所望のコンフィギュレーションＲＯＭ５２Ａ乃至５２Ｃからコンフィギュレーションデータを取得し、回路構成を変更することができる。ここで、状態制御回路３２は、配線ＳＥＬを介して、どのコンフィギュレーションＲＯＭを選択するかのデータをマルチプレクサ５１に送信することにより、所望のコンフィギュレーションＲＯＭを選択することができる。なおこれらの制御はＣＰＵ１１から制御することもできる。
【００３５】
ＣＰＵ１１は、状態制御回路３２の特定のタスクの状態に対応したデータを保持するレジスタに格納した、当該特定のタスクが終了したか否かに関わるデータを、定期的にモニタする機能を有する。当該特定のタスクが終了していた場合、ＣＰＵ１１は、状態制御回路３２に対して、ＰＬＤ２１を起動（ｗａｋｅ  ｕｐ）させる（電源ドメイン２０の電源をオンにさせる）ことを要求する。当該要求に従い、状態制御回路３２はＰＬＤ２１（電源ドメイン２０）の電源をオンさせる。このときＰＬＤ２１では、各ロジックエレメントにおけるレジスタが有する不揮発性領域からデータを復元させることができる。すなわち、ＰＬＤ２１（電源ドメイン２０）の電源をオフさせる前のデータを復元させることができる。一方、ＣＰＵ１１はバス１３を介してＰＬＤ２１にアクセスすることが可能であり、ＰＬＤ２１のレジスタに格納されたデータを引き出すことができる。
【００３６】
以上のようにして、ＣＰＵ１１は、ＰＬＤ２１の演算結果を取得することができる。
【００３７】
なお図１の半導体装置において、電源ドメイン２０はＰＬＤ２１を複数設ける構成としてよい。複数設けるＰＬＤは、別の電源ドメインでもよい。ＰＬＤ２１を複数設ける構成とすることで、ＣＰＵ１１は、複数のＰＬＤ２１の中から演算処理に適したＰＬＤを判定することができる。また、図１の半導体装置において、ＧＰＵ等を有する別の処理装置を有する構成としてもよい。当該構成とすることでＣＰＵ１１は、ＰＬＤ２１とＧＰＵのどちらが演算処理に適しているかを判定することが出来る。
【００３８】
図２は、ＰＬＤ２１の状態遷移図である。図３は、図１に示すシステムの動作を説明するためのタイミングチャートである。図２および図３において、状態ｃｐｕ＿ｐｒｏｃは、ＣＰＵ１１の処理の状態を示す。
【００３９】
図３のタイミングチャートにおける、状態および信号について説明する。
【００４０】
状態ｃｐｕ＿ｍｏｎｉはＣＰＵ１１が状態制御回路３２に対して、ＰＬＤ２１のタスクが終了したか否かをチェックする状態を示す。状態ｃｐｕ＿ｍｏｎｉがオフ（ＯＦＦ）の場合、ＣＰＵ１１は当該タスクが終了したか否かをモニタしない。状態ｃｐｕ＿ｍｏｎｉがオン（ＯＮ）の場合、ＣＰＵ１１は当該タスクが終了したか否かをモニタする。
【００４１】
信号ｔｒｉｇは電源制御ユニット３１及び状態制御回路３２に接続した信号線ＴＲＩＧの信号である。信号ｔｒｉｇはパワーオフしている電源ドメイン１０及び電源ドメイン２０をパワーオンするための信号である。信号ｔｒｉｇは外部から入力される信号とする。なお、前述したとおり、電源制御ユニット３１はタイマーの機能を有しても良く、その場合、電源ドメイン１０及び電源ドメイン２０をパワーオンするタイミングは、当該タイマーにより決まる。
【００４２】
信号ｐｏｗｅｒ１は電源ドメイン１０への電源供給を示す信号である。信号ｐｏｗｅｒ１がハイレベルの場合、電源ドメイン１０はパワーオンとする。信号ｐｏｗｅｒ１がローレベルの場合、電源ドメイン１０はパワーオフとする。
【００４３】
信号ｐｏｗｅｒ２は電源ドメイン２０への電源供給を示す信号である。信号ｐｏｗｅｒ２がハイレベルの場合、電源ドメイン２０はパワーオンとする。信号ｐｏｗｅｒ２がローレベルの場合、電源ドメイン２０はパワーオフとする。
【００４４】
信号ｐｒｏｇはＰＬＤ２１の回路構成のコンフィギュレーションを制御するための信号である。信号ｐｒｏｇがハイレベルになることで、ＰＬＤ２１は回路のコンフィギュレーションを開始する。この時のコンフィギュレーションデータは所望のコンフィギュレーションＲＯＭのデータを用いる。
【００４５】
信号ｔａｓｋは信号線ＴＡＳＫを介して、ＰＬＤ２１から状態制御回路３２へ出力され、ＰＬＤ２１のタスクが終了したか否かのデータを示す。信号ｔａｓｋがハイレベルの場合、タスクが終了したことを意味するとする。
【００４６】
信号ｓａｖｅはＰＬＤ２１のロジックエレメントにおけるレジスタのデータを不揮発性領域へ退避させるための信号である。信号ｓａｖｅがハイレベルの時、レジスタのデータが不揮発性領域へ退避されるものとする。
【００４７】
信号ｌｏａｄはＰＬＤ２１のロジックエレメントにおけるレジスタのデータを不揮発性領域から復帰させるための信号である。信号ｌｏａｄがハイレベルの時、不揮発性領域からレジスタのデータを復帰されるものとする。
【００４８】
なお、信号ｐｏｗｅｒ２、信号ｐｒｏｇ、信号ｓａｖｅおよび信号ｌｏａｄは状態制御回路３２からＰＬＤ２１を制御するための信号で、信号バスＣＴＲを介して伝達される。
【００４９】
次いで図２のＰＬＤ２１の状態遷移図における、各状態に関して説明する。
【００５０】
全ての状態（図中、ＡＬＬ  ＳＴＡＴＥと図示）において、ＰＬＤ２１のリセット信号ｒｅｓがハイレベル（ｒｅｓ＝１）となることで、ＰＬＤ２１の状態はリセット状態６０（図中、ＲＥＳと図示）となる。
【００５１】
ＰＬＤ２１の状態が状態６０であり、ＰＬＤ２１のリセット信号ｒｅｓがローレベル（ｒｅｓ＝０）となることで、ＰＬＤ２１は状態６１（図中、ＷＡＩＴと図示）へと状態遷移する。状態６１はＣＰＵ１１からの命令待ちの状態とする。
【００５２】
ＰＬＤ２１の状態が状態６１であり、信号ｐｒｏｇがハイレベル（ｐｒｏｇ＝１）となることで、ＰＬＤ２１は状態６２（図中、ＣＦＧと図示）へと状態遷移する。状態６２はＰＬＤ２１のコンフィギュレーションを行う状態とする。
【００５３】
ＰＬＤ２１のコンフィギュレーションが終了し、信号ｐｒｏｇがローレベル（ｐｒｏｇ＝０）となることで、ＰＬＤ２１は状態６３（図中、ＰＲＯＣと図示）へと状態遷移する。状態６３はＰＬＤ２１がＣＰＵ１１からの命令において、演算処理を行う状態とする。
【００５４】
ＰＬＤ２１は、状態６３において、演算処理が終了すると信号線ＴＡＳＫを介して状態制御回路３２にタスクが終了したデータを伝達する。具体的には、信号ｔａｓｋがハイレベルと（ｔａｓｋ＝１）なり当該タスクが終了したデータを伝達する。信号ｔａｓｋがハイレベルとなることで、ＰＬＤ２１は状態６４（図中、ＤＯＮＥと図示）へと状態遷移する。状態６４はＰＬＤ２１のタスクが終了した状態とする。
【００５５】
状態制御回路３２はＰＬＤ２１のタスクが終了した場合、信号バスＣＴＲを介して信号ｓａｖｅを入力する。具体的には、信号ｓａｖｅがハイレベル（ｓａｖｅ＝１）となる。信号ｓａｖｅがハイレベルとなることで、ＰＬＤ２１は状態６５（図中、ＳＡＶＥと図示）へと状態遷移する。状態６５はＰＬＤ２１のロジックエレメントにおけるレジスタのデータは不揮発性領域へと退避する状態とする。
【００５６】
状態６５にて、レジスタのデータの退避が完了すると、状態制御回路３２は信号バスＣＴＲを介して信号ｐｏｗｅｒ２を変化させる。具体的には、信号ｐｏｗｅｒ２がハイレベルからローレベルへと変化する。信号ｐｏｗｅｒ２がローレベル（ｐｏｗｅｒ２＝０）となることで、ＰＬＤ２１は状態６６（図中、ＳＳＬＥＥＰと図示）へと状態遷移する。状態６６はＰＬＤ２１のパワーオフした状態とする。すなわち、電源が遮断されている状態とする。
【００５７】
ＰＬＤ２１の状態が状態６６であり、信号ｐｏｗｅｒ２がハイレベル（ｐｏｗｅｒ２＝１）となることで、ＰＬＤ２１は状態６７（図中、ＳＷＡＫＥと図示）へと状態遷移する。状態６７は、ＰＬＤ２１がパワーオフの状態からパワーオンの状態へ変化した状態とする。すなわち、電源供給がなされている状態とする。
【００５８】
ＰＬＤ２１の状態が状態６７であり、信号ｌｏａｄがハイレベル（ｌｏａｄ＝１）となることで、ＰＬＤ２１は状態６８（図中、ＬＯＡＤと図示）へと状態遷移する。状態６８は状態６５にて、不揮発性領域へ退避されたレジスタのデータを復帰させる状態とする。
【００５９】
ＰＬＤ２１の状態が状態６８であり、ＣＰＵ１１の処理の状態、すなわち状態ｃｐｕ＿ｐｒｏｃがＰＬＤ２１の演算結果読み出し状態（図中、ｇｅｔ  ｄａｔａと図示）となる（ｃｐｕ＿ｐｒｏｃ＝  ｇｅｔ  ｄａｔａ）ことで、ＰＬＤ２１は状態６９（図中、ＳＥＮＤと図示）へと状態遷移する。状態６９はＰＬＤ２１の演算結果をＣＰＵ１１に送信する状態とする。具体的には、ＣＰＵ１１はＰＬＤ２１の演算結果が格納されるレジスタからデータを読み出す。
【００６０】
ＣＰＵ１１はデータを受け取ると、電源制御ユニット３１、状態制御回路３２に電源ドメイン１０及び電源ドメイン２０のパワーオフの命令を行う。電源制御ユニット３１および状態制御回路３２は当該命令に従い、信号ｐｏｗｅｒ１をローレベル、信号ｐｏｗｅｒ２をローレベルとする。ＰＬＤ２１の状態が状態６９であり、信号ｐｏｗｅｒ２がローレベルとなる（ｐｏｗｅｒ２＝０）ことで、ＰＬＤ２１は状態７０（図中、ＬＳＬＥＥＰと図示）へと状態遷移する。
【００６１】
ＰＬＤ２１が状態７０の状態の時に、外部からの信号ｔｒｉｇがハイレベルとなると、電源制御ユニット３１および状態制御回路３２は電源ドメイン１０及び電源ドメイン２０をパワーオンする。具体的には、電源制御ユニット３１、状態制御回路３２は信号ｐｏｗｅｒ１をハイレベル、信号ｐｏｗｅｒ２をハイレベルとする。ＰＬＤ２１の状態が状態７０であり、ｐｏｗｅｒ２がハイレベルとなる（ｐｏｗｅｒ２＝１）ことで、ＰＬＤ２１は状態６１へと状態遷移する。
【００６２】
次に、図３のタイミングチャートについて説明する。なお、図３のタイミングチャートにおいて状態ｆｐｇａ＿ｓｔａｔｅはＰＬＤ２１の状態を示す。図３における状態ｆｐｇａ＿ｓｔａｔｅは、図２で説明した状態６１乃至７０に対応する。
【００６３】
時刻Ｔ０以前にて、ＰＬＤ２１の状態は状態６１であるとする。時刻Ｔ０にて、信号ｐｒｏｇがハイレベルとなる。これに従い、状態ｆｐｇａ＿ｓｔａｔｅは状態６２へと変化し、ＰＬＤ２１ではコンフィギュレーションが行われる。
【００６４】
時刻Ｔ１にてＰＬＤ２１のコンフィギュレーションが終了し、信号ｐｒｏｇがローレベルとなることで、状態ｆｐｇａ＿ｓｔａｔｅは状態６３へと変化し、ＰＬＤ２１では特定のタスクにて演算処理が行われる。
【００６５】
時刻Ｔ２以前、状態ｃｐｕ＿ｍｏｎｉはＯＦＦであり、ＰＬＤ２１のタスクが終了したか否かをモニタしていない。時刻Ｔ２にて、状態ｃｐｕ＿ｍｏｎｉがＯＮとなり、ＣＰＵ１１は状態制御回路３２に対してＰＬＤ２１のタスクが終了したか否かをモニタする。時刻Ｔ２以前で、ＰＬＤ２１のタスクは終了していないため、何も起こらない。
【００６６】
時刻Ｔ３にて、状態ｃｐｕ＿ｍｏｎｉはＯＦＦとなり、ＣＰＵ１１がＰＬＤ２１のタスクが終了したか否かをモニタする期間が終了する。
【００６７】
時刻Ｔ４にて、ＰＬＤ２１のタスクが終了し、信号ｔａｓｋがハイレベルとなる。状態制御回路３２はＰＬＤ２１のタスクが終了したというデータを受け取り、ＰＬＤ２１（電源ドメイン２０）をパワーオフさせる。具体的には、まず、信号ｓａｖｅをハイレベルとし、ＰＬＤ２１の各ロジックエレメントにおけるレジスタのデータを、不揮発性領域へ退避させ、その後、時刻Ｔ５にて信号ｐｏｗｅｒ２をローレベルにすることで、ＰＬＤ２１（電源ドメイン２０）をパワーオフさせる。パワーオフするまでの間、状態ｆｐｇａ＿ｓｔａｔｅは、状態６４、状態６５、状態６６へと順に変化する。
【００６８】
時刻Ｔ６にて状態ｃｐｕ＿ｍｏｎｉがＯＮとなり、ＣＰＵ１１は状態制御回路３２に対してＰＬＤ２１のタスクが終了したか否かをモニタする。ここで、ＰＬＤ２１のタスクは終了しているため、ＣＰＵ１１にはＰＬＤ２１のタスクが終了しているデータが送られる。ＣＰＵ１１は状態制御回路３２にＰＬＤ２１（電源ドメイン２０）をパワーオンさせる命令を与える。具体的には状態制御回路３２がＰＬＤ２１（電源ドメイン２０）をパワーオンすることができる。すなわち、信号ｐｏｗｅｒ２がハイレベルとなる。ここで、信号ｌｏａｄがハイレベルとなる。信号ｌｏａｄがハイレベルとなることで、ＰＬＤ２１の各ロジックエレメントにおけるレジスタのデータは不揮発性領域から復帰することができる。レジスタのデータを不揮発性領域から復帰させるまでの間、状態ｆｐｇａ＿ｓｔａｔｅは、状態６７、状態６８へと順に変化する。
【００６９】
時刻Ｔ７にて、状態ｃｐｕ＿ｐｒｏｃは信号処理状態ｇｅｔ＿ｄａｔａとなる。具体的に、ＣＰＵ１１はＰＬＤ２１にアクセスし、ＰＬＤ２１の各ロジックエレメントのレジスタに格納されたデータを取得する。レジスタに格納されたデータを取得するとき、状態ｆｐｇａ＿ｓｔａｔｅは、状態６９へと変化する。
【００７０】
時刻Ｔ８にて、ＣＰＵ１１はＰＬＤ２１からのデータの取得が完了する。その後、電源制御ユニット３１が電源ドメイン１０及び電源ドメイン２０をパワーオフさせる。具体的には、信号ｐｏｗｅｒ１及び信号ｐｏｗｅｒ２がローレベルとなる。信号ｐｏｗｅｒ１及び信号ｐｏｗｅｒ２がローレベルとなるとき、状態ｆｐｇａ＿ｓｔａｔｅは、状態７０へと変化する。
【００７１】
時刻Ｔ９にて、外部からハイレベルの信号ｔｒｉｇが入力される。すなわち、電源ドメイン１０及び電源ドメイン２０はパワーオンとなる。具体的には信号ｐｏｗｅｒ１及び信号ｐｏｗｅｒ２がハイレベルとなる。信号ｐｏｗｅｒ１及び信号ｐｏｗｅｒ２がハイレベルとなるとき、状態ｆｐｇａ＿ｓｔａｔｅは、状態６１へと変化する。
【００７２】
以上のようにして、ＰＬＤ２１はタスクが完了した後にパワーオフさせることができ、ＰＬＤ２１とＣＰＵ１１はデータの取得が終わった後にパワーオフさせることができる。時刻Ｔ６にて、電源ドメイン１０及び電源ドメイン２０はパワーオフしたが、ＣＰＵ１１またはＰＬＤ２１が別のタスクを有する場合、電源ドメイン１０及び電源ドメイン２０はパワーオフせず、処理を続行することが出来る。
【００７３】
図４および図５を用いて、ＰＬＤ２１がタスクを終了した後、信号ｔａｓｋをどのように生成するかを説明する。
【００７４】
図４に図１のＰＬＤ２１に適用可能なＰＬＤ２１Ａの構成の一例を示す。ＰＬＤ２１Ａは、プログラマブル領域２２（図中、Ｐｒｏｇｒａｍｍａｂｌｅ  Ａｒｅａ１と図示）、プログラマブル領域２３（図中、Ｐｒｏｇｒａｍｍａｂｌｅ  Ａｒｅａ２と図示）、コントロール回路２４（図中、ＣＣと図示）、ビット線駆動回路２５（図中、Ｂｉｔ  Ｄｒｉｖｅｒと図示）、およびワード線駆動回路２６（図中、Ｗｏｒｄ  Ｄｒｉｖｅｒと図示）を有する。
【００７５】
プログラマブル領域２２及びプログラマブル領域２３はロジックエレメント、当該ロジックエレメント間の配線、及び配線スイッチ、ユーザＩ／Ｏ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）を有する。ここで、プログラマブル領域２２はＣＰＵ１１からのアドレス信号線ＡＤＤＦ及びデータ信号線ＤＡＴＡＦを介した命令に従い、回路構成を変更することができる。具体的には、プログラマブル領域２２はカウンタなどの簡単な回路構成に変更することができる。プログラマブル領域２３は、コンフィギュレーションＲＯＭ５２Ａ乃至５２Ｃのデータに従い回路構成を変更することができ、当該回路構成に応じて、複雑な演算処理を行なうことができる。
【００７６】
信号バスＣＴＲ（Ｃ）はプログラマブル領域２３の回路構成を変更するための制御信号を伝達するためのバスである。コントロール回路２４が信号バスＣＴＲ（Ｃ）の制御信号を受け取り、ワード線駆動回路２６及びビット線駆動回路２５を用いてプログラマブル領域２３の回路構成を変更する。
【００７７】
信号バスＣＴＲ（ＳＬ）はプログラマブル領域２３のロジックエレメントにおけるレジスタのデータを不揮発性領域へ退避させる、或いは不揮発性領域からレジスタへデータを復帰させるための制御信号（ｓａｖｅ，ｌｏａｄ）を伝達するためのバスである。信号バスＣＴＲ（ＳＬ）の制御信号に従い、当該レジスタのデータを退避或いは復帰することができる。
【００７８】
＜タスクの終了を把握するための構成例１＞
ＣＰＵ１１はＰＬＤ２１Ａの演算量を把握し、ＰＬＤ２１Ａの演算に必要なクロック数を把握しているとする。ＣＰＵ１１はプログラマブル領域２２にカウンタなどの回路を構成させる。プログラマブル領域２２はＰＬＤ２１Ａの演算に必要なクロック数をカウントでき、特定のカウント値に達した時に信号ｔａｓｋを送信する機能を有する回路を構成することができる。
【００７９】
プログラマブル領域２３において、演算処理が開始すると共に、プログラマブル領域２２にてカウントを開始する。プログラマブル領域２３において演算処理が終了した時、プログラマブル領域２２でカウントするカウント値は特定の値に達し、信号線ＴＡＳＫを介して、状態制御回路３２にＰＬＤ２１Ａのタスクが終了したデータである信号ｔａｓｋが送信される。
【００８０】
以上のようにして、ＰＬＤ２１Ａがタスクを終了したデータを状態制御回路３２に伝達することができる。
【００８１】
＜タスクの終了を把握するための構成例２＞
ＰＬＤ２１Ａのタスク終了を知る方法について別の例を示す。ＰＬＤ２１Ａは特定の演算処理を行うにあたり、単一の演算に必要なクロック数は一意に決まるため、プログラマブル領域２３にて、単一の演算処理に必要なクロック数をカウントすることができる。
【００８２】
ＰＬＤ２１Ａに３２ｂｉｔ×３２ｂｉｔの乗算処理を行わせる場合を例に説明する。当該乗算処理が最大３２クロックで終了するとした場合、プログラマブル領域２３を３２クロックのカウントが可能な回路構成とすることができる。
【００８３】
ＣＰＵ１１はＰＬＤ２１Ａに、ＰＬＤ２１Ａが行う単一の演算を何回繰り返すかのデータを送信することができる。言い換えると、ＣＰＵ１１は、ＰＬＤ２１Ａに演算するべきデータ量に関するデータを、予め送信することができる。この場合、当該演算するべきデータ量に関するデータは、プログラマブル領域２２にて受け取られ、プログラマブル領域２２は、当該ＰＬＤ２１Ａは当該演算するべきデータ量に達するまでカウントする回路構成に変更することができる。プログラマブル領域２２でカウントするカウント値が、特定の値に達することで、信号線ＴＡＳＫを介して、状態制御回路３２にＰＬＤ２１Ａのタスクが終了したデータである信号ｔａｓｋが送信される。
【００８４】
以上のようにして、ＰＬＤ２１Ａがタスクを終了したデータを状態制御回路３２に伝達することができる。
【００８５】
＜タスクの終了を把握するための構成例３＞
図５は、図４とは異なる別の構成例を示す。図５に示す構成では、プログラマブル領域２２が無いことが図４の構成と異なる。図５の構成では、プログラマブル領域２３の回路構成を決定するコンフィギュレーションＲＯＭに、予めＰＬＤ２１Ｂのタスクが終了したか否かを判定可能なデータも保存しておく。
【００８６】
例えば、特定の演算処理を行うにあたり、演算処理に必要なクロック数も決まるため、プログラマブル領域２３において、当該演算処理におけるカウント値をカウントする回路を構成することで、ＰＬＤ２１Ｂのタスクが終了したデータである信号ｔａｓｋを生成することができる。
【００８７】
具体的には、ＰＬＤ２１Ｂに３２ｂｉｔ×３２ｂｉｔの乗算処理を行わせ、当該乗算処理が最大３２クロックで終了するとした場合、カウント値が３２となった時点で信号線ＴＡＳＫにハイレベルの信号ｔａｓｋを出力することで、ＰＬＤ２１Ｂがタスクを終了したか否かのデータを状態制御回路３２に伝達することができる。
【００８８】
本実施の形態は、他の実施の形態の記載と適宜組み合わせることができる。
【００８９】
（実施の形態２）
図６は図１とは異なる構成例を示す。図６に示すブロック図は、マルチプレクサ５３（図中、ＭＵＸと図示）およびセンサモジュール５４Ａ乃至５４Ｃ（図中、ＳＥＮ１乃至ＳＥＮ３と図示）を有する点で、図１の構成と異なる。
【００９０】
センサモジュール５４Ａ乃至５４Ｃは、例えば、照度センサ、カラーセンサ、加速度センサ、歪センサ、熱センサ、圧力センサ、距離センサなどである。
【００９１】
ＰＬＤ２１は各センサモジュール５４Ａ乃至５４Ｃから出力された出力値を演算し、ＣＰＵ１１にデータを出力する機能を有する。ＰＬＤ２１は状態制御回路３２及びコンフィギュレーションＲＯＭ５２Ａ乃至５２Ｃのデータによって決まる回路構成に従い、マルチプレクサ５３を用いてセンサモジュール５４Ａ乃至５４Ｃのうち特定のセンサモジュールの信号を選択する。
【００９２】
センサモジュール５４Ａ乃至５４Ｃは特定の変化を検出する機能を有する。当該センサモジュールは、状態制御回路３２に変化の有無に関するデータを伝達することができる。センサモジュールにおいて、特定の変化が検出された場合、配線ＤＥＴＥＣＴを介して変化の有無に関する信号ｄｅｔｅｃｔが状態制御回路３２へ伝達される。例えば、センサモジュールを加速度センサとした場合、当該加速度センサに、物理的な変化が加わった場合、配線ＤＥＴＥＣＴを介して信号ｄｅｔｅｃｔが伝達される。
【００９３】
状態制御回路３２は信号ｄｅｔｅｃｔに従い、信号バスＣＴＲを介して、ＰＬＤ２１にタスクを開始させることができる。この場合、当該タスクはセンサモジュールから出力された出力値に対して、所望の演算を行うことを意味する。
【００９４】
既に述べたように、ＰＬＤ２１はタスクが終了した場合、信号線ＴＡＳＫを介して状態制御回路３２へタスクが終了した信号ｔａｓｋを伝達し、ＰＬＤ２１のレジスタのデータを不揮発性領域へ退避させた後、パワーオフすることができる。
【００９５】
なお、本実施の形態の構成では、ＣＰＵ１１はＰＬＤ２１がタスクを開始したタイミングを把握していなくてもよい。
【００９６】
ＣＰＵ１１がＰＬＤ２１のタスク開始のタイミングを把握していない場合、ＣＰＵ１１は定期的に状態制御回路３２の特定のレジスタをモニタし、ＰＬＤ２１のタスクが終了したか否かを調べることが有効である。
【００９７】
図６に示すシステムを用いた場合、センサモジュールにて変化が検出した時のみＰＬＤ２１はパワーオンして演算することができる。また、演算が終了した後は、ＰＬＤ２１をパワーオフし、ＣＰＵ１１からリクエストがあったタイミングで、演算結果を送信することができる。
【００９８】
本実施の形態は、他の実施の形態の記載と適宜組み合わせることができる。
【００９９】
（実施の形態３）
本実施の形態では、上記実施の形態で説明した半導体装置に用いることができるＰＬＤの構成例について説明する。
【０１００】
＜ＰＬＤの構成例＞
図７に、ＰＬＤ２００の構成を示す。ＰＬＤ２００は、実施の形態１におけるＰＬＤ２１として用いることができる。なお、ＰＬＤ２００にはマルチコンテキスト方式を適用することができる。
【０１０１】
ＰＬＤ２００は、ロジック部、入出力部、及び周辺回路部を有する。ロジック部は、ロジックアレイ（ＬＡ）２１１、２１２、スイッチアレイ（ＳＷＡ）２２１乃至２２３を有する。入出力部は、入出力アレイ（ＩＯＡ）２２４、２２５を有する。周辺回路部は、ロジック部および入出力部を駆動する機能を有する回路を有する。例えば周辺回路部は、クロック信号生成装置２３０、コンフィギュレーションコントローラ２３１、コンテキストコントローラ２３２、列ドライバ回路２３４、行ドライバ回路２３５を有する。
【０１０２】
ＬＡ２１１、２１２はそれぞれ、複数のＬＥ２４０を有する。図７には、ＬＡ２１１が１０個のＬＥ２４０（ＬＥ＜００＞乃至＜０９＞）を有し、ＬＡ２１２が１０個のＬＥ２４０（ＬＥ＜１０＞乃至＜１９＞）を有する構成例を示しているが、ＬＥ２４０の数は自由に設定することができる。ＩＯＡ２２４、２２５は、ＰＬＤ２００の外部端子とＬＡ２１１、２１２との間の信号の入出力を制御する機能を有する。
【０１０３】
ＩＯＡ２２４、２２５はそれぞれ、複数の入出力回路（ＩＯ）を有する。図７には、ＩＯＡ２２４が１０個の入出力回路（ＩＯ＜００＞乃至＜０９＞）を有し、ＩＯＡ２２５が１０個の入出力回路（ＩＯ＜１０＞乃至＜１９＞）を有する構成例を示している。ＩＯ＜００＞乃至＜１９＞は、互いに異なる外部端子と接続されている。
【０１０４】
ＳＷＡ２２１乃至２２３はそれぞれ、複数のＲＳ２８０を有する。ＲＳ２８０内の表記は、その機能を表している。例えば、「ＬＥ０＊  ｔｏ  ＩＯ００」とは、ＲＳ２８０が、ＬＥ＜００＞乃至＜０９＞の出力ノードと、ＩＯ＜００＞の入力ノードとの間のスイッチとしての機能を有することを示しており、ＲＳ２８０は、コンフィギュレーションデータ及びコンテキストを選択するデータ（以下、コンテキストデータともいう）に従って、ＬＥ＜００＞乃至＜０９＞とＩＯ＜００＞との接続関係を決定する。
【０１０５】
クロック信号生成装置２３０は、ＰＬＤ２００内で使用される１または複数のクロック信号を生成する機能を有する。列ドライバ回路２３４は、コンフィギュレーションデータを生成する機能を有する。行ドライバ回路２３５は、コンフィギュレーションメモリを選択する信号を生成する機能を有する。コンフィギュレーションコントローラ２３１は、列ドライバ回路２３４および行ドライバ回路２３５を制御する機能を有する。コンテキストコントローラ２３２は、コンテキストデータを生成する機能を有する。
【０１０６】
＜ＬＥの構成例＞
図８に、ＬＥ２４０の構成例を示す。ＬＥ２４０はプログラム可能な論理回路であり、コンフィギュレーションメモリ部２５０、ロジックセル（ＬＣＥＬＬ）２６０を有する。
【０１０７】
コンフィギュレーションメモリ部２５０は、コンフィギュレーションデータを格納する機能を有する。ＬＥ２４０の機能は、コンフィギュレーションメモリ部２５０に格納されたコンフィギュレーションデータに従って決定される。
【０１０８】
ＬＥ２４０は、入力データＤｉｎに所定の論理演算を施したデータを生成し、これを出力データＤｏｕｔとして出力する機能を有する。ＬＥ２４０は、排他的論理和（ＸＯＲ）回路群２６１、ＬＵＴ２６２、キャリーロジック２６３、セレクタ（ＳＥＬ）２６４、フリップフロップ（ＦＦ）２６５、セレクタ（ＳＥＬ）２６６を有する。ＦＦ２６５はレジスタとしての機能を有する。ＦＦ２６５は、データが入力される端子Ｄ、リセット信号ＲＳＴが入力される端子ＸＲ、クロック信号ＣＬＫが入力される端子、データを出力する端子Ｑを有する。コンフィギュレーションメモリ部２５０から出力されるコンフィギュレーションデータによって、ＬＣＥＬＬ２６０の論理機能が制御される。
【０１０９】
データＤｉｎは、ＲＳ２８０から入力される。また、データＤｏｕｔはＲＳ２８０に出力される。複数のＬＥ２４０によってキャリーチェーンを形成するため、複数のＬＥ２４０間でキャリー信号（ｃａｒｒｙ  ｓｉｇｎａｌ）の入出力が行われる。また、複数のＬＥ２４０によってレジスタチェーンを形成するため、隣接するＬＥ２４０間でレジスタチェーン信号（ｒｅｇｉｓｔｅｒ  ｃｈａｉｎ  ｓｉｇｎａｌ）の入出力が行われる。
【０１１０】
＜コンフィギュレーションメモリの構成例＞
ＰＬＤ２００が有するＬＥ２４０及びＲＳ２８０は、それぞれコンフィギュレーションメモリを有する。以下、ＬＥ２４０及びＲＳ２８０に用いることができるコンフィギュレーションメモリの構成例について説明する。
【０１１１】
コンフィギュレーションメモリは、コンフィギュレーションデータを記憶する機能を有する記憶回路を有する。コンフィギュレーションメモリが有する記憶回路は、揮発性であっても不揮発性であってもよい。揮発性の記憶回路としては、例えば、ＳＲＡＭなどが挙げられる。また、不揮発性の記憶回路としては、例えば、フラッシュメモリ、強誘電体メモリ（ＦｅＲＡＭ）、磁気抵抗メモリ（ＭＲＡＭ）、相変化メモリ（ＰＲＡＭ）、抵抗変化型メモリ（ＲｅＲＡＭ）などが挙げられる。
【０１１２】
ここで、記憶回路として、チャネル形成領域に酸化物半導体を有するトランジスタ（以下、ＯＳトランジスタともいう）を有する回路を用いることが特に好ましい。酸化物半導体は、シリコンなどの半導体よりもバンドギャップが広く、また、キャリア密度を低くすることができる。そのため、ＯＳトランジスタのオフ電流は極めて小さい。よって、コンフィギュレーションメモリにＯＳトランジスタを用いることにより、コンフィギュレーションデータを極めて長期間にわたって保持することができる。また、以下に述べるように、ＯＳトランジスタを用いることによりコンフィギュレーションメモリの面積の縮小を図ることができる。
【０１１３】
［構成例１］
図９（Ａ）に、コンフィギュレーションメモリに用いることができる記憶回路の構成例を示す。記憶回路３００は、複数の回路３１０を有する。なお、図９（Ａ）には一例として、２つの回路３１０（回路３１０［０］、［１］）を示しているが、回路３１０の個数はこれに限られない。回路３１０に所定のコンフィギュレーションデータを格納することにより、配線ＩＮと配線ＯＵＴの間の接続状態を制御することができる。そのため、記憶回路３００はＲＳ２８０に適用することができる。
【０１１４】
回路３１０は、トランジスタ３１１、３１２、３１３、容量素子３１４を有する。ここではトランジスタ３１１、３１２、３１３をｎチャネル型としているが、これらのトランジスタはそれぞれｐチャネル型であってもよい。なお、「ＯＳ」の符号が付されたトランジスタはＯＳトランジスタである。
【０１１５】
トランジスタ３１１のゲートは配線ＷＬと接続され、ソース又はドレインの一方はトランジスタ３１２のゲートおよび容量素子３１４の一方の電極と接続され、ソース又はドレインの他方は配線ＢＬと接続されている。トランジスタ３１２のソース又はドレインの一方は配線ＩＮと接続され、ソース又はドレインの他方はトランジスタ３１３のソース又はドレインの一方と接続されている。トランジスタ３１３のゲートは配線ＣＴＸと接続され、ソース又はドレインの他方は配線ＯＵＴと接続されている。容量素子３１４の他方の電極は、所定の電位が供給される配線と接続されている。ここで、トランジスタ３１１のソース又はドレインの一方、トランジスタ３１２のゲート、および容量素子３１４の一方の電極と接続されたノードを、ノードＮ１とする。
【０１１６】
次に、回路３１０の動作について説明する。まず、配線ＷＬの電位を制御してトランジスタ３１１をオン状態とする。これにより、配線ＢＬの電位がノードＮ１に与えられる（コンフィギュレーションデータの書き込み）。なお、配線ＷＬは行ドライバ回路２３５（図７参照）と接続されており、配線ＷＬの電位は行ドライバ回路２３５によって制御することができる。
【０１１７】
その後、配線ＷＬの電位を制御してトランジスタ３１１をオフ状態とする。これにより、ノードＮ１が浮遊状態となり、ノードＮ１の電位が保持される（コンフィギュレーションデータの保持）。ここで、配線ＩＮと配線ＯＵＴ間に設けられたトランジスタ３１２の導通状態は、ノードＮ１の電位によって決定される。そのため、ノードＮ１の電位を制御することにより配線ＩＮと配線ＯＵＴ間の導通状態を制御することができる。このような回路３１０を有する記憶回路３００は、配線間の導通状態を制御するスイッチとしての機能を有するため、ＲＳ２８０のコンフィギュレーションメモリに用いることができる。記憶回路３００をＲＳ２８０のコンフィギュレーションメモリに用いる場合、配線ＩＮと配線ＯＵＴはそれぞれ、ＩＯ又はＬＥ２４０と接続される。
【０１１８】
なお、記憶回路３００は回路３１０［０］及び回路３１０［１］を有し、両者は配線ＯＵＴを共有している。そして、配線ＣＴＸ［０］、［１］に所定の電位を供給することにより、回路３１０［０］又は回路３１０［１］の一方を選択することができる。これにより、記憶回路３００をマルチコンテキスト方式のコンフィギュレーションメモリとして用いることができる。
【０１１９】
具体的には、Ｃｏｎｔｅｘｔ［０］を選択する場合、配線ＣＴＸ［０］を制御して回路３１０［０］のトランジスタ３１３をオン状態とする。また、配線ＣＴＸ［１］を制御して回路３１０［１］のトランジスタ３１３をオフ状態とする。これにより、配線ＩＮと配線ＯＵＴ間の導通状態は、回路３１０［０］のノードＮ１の電位によって制御される。一方、Ｃｏｎｔｅｘｔ［１］を選択する場合は、配線ＣＴＸ［０］を制御して回路３１０［０］のトランジスタ３１３をオフ状態とする。また、配線ＣＴＸ［１］を制御して回路３１０［１］のトランジスタ３１３をオン状態とする。これにより、配線ＩＮと配線ＯＵＴ間の導通状態は、回路３１０［１］のノードＮ１の電位によって制御される。このように、配線ＣＴＸ［０］、［１］の電位を制御することにより、配線ＩＮと配線ＯＵＴの間の導通状態を制御するコンテキストを選択することができる。
【０１２０】
ここで、トランジスタ３１１はＯＳトランジスタであり、オフ電流が極めて小さい。そのため、トランジスタ３１１をオフ状態である期間において、ノードＮ１の電位を長時間にわたって維持することができる。これにより、コンフィギュレーションデータの更新の頻度を大幅に減らすことができ、ＰＬＤ２００の消費電力を削減することができる。また、回路３１０への電力の供給が停止された期間においても、コンフィギュレーションデータを長期間保持することができる。
【０１２１】
また、ＯＳトランジスタを用いることにより、少ないトランジスタ数（回路３１０においては３個）で回路３１０を構成することができる。これにより、ＰＬＤ２００の面積を縮小することができる。また、ＯＳトランジスタは他のトランジスタ上に積層することができる。そのため、トランジスタ３１１をトランジスタ３１２又はトランジスタ３１３上に積層し、回路３１０の面積を縮小することができる。これにより、ＰＬＤ２００の面積をさらに縮小することができる。
【０１２２】
また、ＰＬＤ２００にマルチコンテキスト方式を用いる場合、コンフィギュレーションメモリには複数のコンテキストに対応するコンフィギュレーションデータを格納する必要があるため、コンフィギュレーションメモリの面積が大幅に増大する可能性がある。しかしながら、上記の通りＯＳトランジスタを有する記憶回路３００を用いることにより、コンフィギュレーションメモリの面積の増加を抑えることができる。そのため、ＯＳトランジスタをマルチコンテキスト方式のＰＬＤ２００に用いることは特に好ましい。
【０１２３】
なお、図９（Ａ）において、ＯＳトランジスタ以外のトランジスタの材料は特に限定されない。例えば、チャネル形成領域が単結晶半導体を有する基板の一部に形成されるトランジスタ（以下、単結晶トランジスタともいう）を用いてもよい。単結晶半導体を有する基板としては、単結晶シリコン基板や単結晶ゲルマニウム基板などがあげられる。単結晶トランジスタは高速な動作が可能であるため、記憶回路に単結晶トランジスタを用いることにより、記憶回路の動作速度を向上させることができる。また、ＯＳトランジスタ以外のトランジスタには、酸化物半導体以外の半導体を含む膜にチャネル形成領域が形成されるトランジスタを用いることもできる。酸化物半導体以外の半導体としては、シリコン、ゲルマニウム、シリコンゲルマニウム、炭化シリコン、ガリウムヒ素、アルミニウムガリウムヒ素、インジウムリン、窒化ガリウム、有機半導体などがあげられる。これらの半導体は、単結晶半導体であってもよいし、非晶質半導体、微結晶半導体、多結晶半導体などの非単結晶半導体であってもよい。これらのトランジスタは、以下の説明におけるＯＳトランジスタ以外のトランジスタにも用いることができる。
【０１２４】
また、図９（Ｂ）に、回路３１０の他の構成例を示す。図９（Ｂ）に示す回路３１０は、図９（Ａ）における容量素子３１４の代わりに回路３１５が設けられた構成を有する。回路３１５はインバータループを構成しており、ノードＮ１の電位は回路３１５によってハイレベル又はローレベルに維持される。なお、トランジスタ３１１には上記のＯＳトランジスタ以外のトランジスタを用いることができる。この場合、回路３１０は揮発性となる。
【０１２５】
［構成例２］
図１０に、コンフィギュレーションメモリに用いることができる他の記憶回路の構成例を示す。記憶回路４００は回路４１０を有する。なお、図１０には一例として、２つの回路４１０（回路４１０［０］、［１］）を示しているが、回路４１０の個数はこれに限られない。
【０１２６】
回路４１０は、トランジスタ４１１、４１２、容量素子４１３、トランジスタ４１４、４１５、容量素子４１６、トランジスタ４１７を有する。ここでは、トランジスタ４１１、４１２、４１４、４１５、４１７をｎチャネル型としているが、トランジスタ４１１、４１２、４１４、４１５、４１７はそれぞれｐチャネル型であってもよい。
【０１２７】
トランジスタ４１１のゲートは配線ＷＬと接続され、ソース又はドレインの一方はトランジスタ４１２のゲートおよび容量素子４１３の一方の電極と接続され、ソース又はドレインの他方は配線ＢＬと接続されている。トランジスタ４１２のソース又はドレインの一方は所定の電位（ここでは高電源電位ＶＤＤ）が供給される配線と接続され、ソース又はドレインの他方はトランジスタ４１７のソース又はドレインの一方と接続されている。容量素子４１３の他方の電極は、所定の電位が供給される配線と接続されている。また、トランジスタ４１４のゲートは配線ＷＬと接続され、ソース又はドレインの一方はトランジスタ４１５のゲートおよび容量素子４１６の一方の電極と接続され、ソース又はドレインの他方は配線ＢＬｂと接続されている。トランジスタ４１５のソース又はドレインの一方は所定の電位（ここでは低電源電位ＶＳＳ、例えば接地電位）が供給される配線と接続され、ソース又はドレインの他方はトランジスタ４１７のソース又はドレインの一方と接続されている。容量素子４１６の他方の電極は、所定の電位が供給される配線と接続されている。トランジスタ４１７のゲートは配線ＣＴＸと接続され、ソース又はドレインの他方は配線ＯＵＴと接続されている。
【０１２８】
ここで、トランジスタ４１１のソース又はドレインの一方、トランジスタ４１２のゲート、および容量素子４１３の一方の電極と接続されたノードを、ノードＮ２とする。また、トランジスタ４１４のソース又はドレインの一方、トランジスタ４１５のゲート、および容量素子４１６の一方の電極と接続されたノードを、ノードＮ３とする。なお、配線ＢＬｂには、配線ＢＬに供給される信号の反転信号が供給される。
【０１２９】
ノードＮ２又はノードＮ３の一方にはハイレベルの電位、他方にはローレベルの電位が、コンフィギュレーションデータとして格納される。そのため、トランジスタ４１２又はトランジスタ４１５の一方はオン状態となり、他方はオフ状態となる。よって、ハイレベル又はローレベルの電位を配線ＯＵＴに選択的に供給することができる。このような回路４１０を有する記憶回路４００は、配線ＯＵＴに出力される論理値を制御する機能を有するため、ＬＥ２４０のコンフィギュレーションメモリに用いることができる。記憶回路４００をＬＥ２４０のコンフィギュレーションメモリに用いる場合、配線ＯＵＴは他の論理回路やＲＳ２８０などに接続される。なお、ノードＮ２及びノードＮ３へのコンフィギュレーションデータの格納は、図９（Ａ）の回路３１０と同様の動作により行うことができる。
【０１３０】
なお、記憶回路４００は回路４１０［０］及び回路４１０［１］を有し、両者は配線ＯＵＴを共有している。そして、配線ＣＴＸ［０］、［１］に所定の電位を供給することにより、回路４１０［０］又は回路４１０［１］の一方を選択することができる。これにより、記憶回路３００をマルチコンテキスト方式のコンフィギュレーションメモリとして用いることができる。
【０１３１】
具体的には、Ｃｏｎｔｅｘｔ［０］を選択する場合、配線ＣＴＸ［０］を制御して回路４１０［０］のトランジスタ４１７をオン状態とする。また、配線ＣＴＸ［１］を制御して回路４１０［１］のトランジスタ４１７をオフ状態とする。これにより、配線ＯＵＴの電位は、回路４１０［０］のノードＮ２及びノードＮ３の電位によって制御される。一方、Ｃｏｎｔｅｘｔ［１］を選択する場合は、配線ＣＴＸ［０］を制御して回路４１０［０］のトランジスタ４１７をオフ状態とする。また、配線ＣＴＸ［１］を制御して回路４１０［１］のトランジスタ４１７をオン状態とする。これにより、配線ＯＵＴの電位は、回路４１０［１］のノードＮ２及びノードＮ３の電位によって制御される。このように、配線ＣＴＸ［０］、［１］の電位を制御することにより、配線ＯＵＴの電位を制御するコンテキストを選択することができる。
【０１３２】
回路４１０には、トランジスタ４１１、４１４としてＯＳトランジスタが用いられている。そのため、回路４１０においても回路３１０と同様に、消費電力の削減及び面積の縮小を図ることができる。
【０１３３】
また、記憶回路４００は、回路４２０を有していてもよい。回路４２０は、インバータ４２１、トランジスタ４２２を有する。インバータ４２１の入力端子は配線ＯＵＴと接続され、出力端子はトランジスタ４２２のゲートと接続されている。トランジスタ４２２のソース又はドレインの一方は配線ＯＵＴと接続され、他方は所定の電位が供給される配線（ここでは高電源電位ＶＤＤ）と接続されている。回路４２０は、配線ＯＵＴの電位を保持する機能を有しており、配線ＯＵＴがフロート状態となることを防ぐことができる。これにより、配線ＯＵＴの電位が中間電位になるのを防ぐことができ、配線ＯＵＴと接続された回路素子における貫通電流の発生を防止することができる。
【０１３４】
また、図１１に回路４１０の他の構成例を示す。図１１（Ａ）に示す回路４１０は、図１０における容量素子４１３、４１６の代わりに回路４１８、４１９が設けられた構成を有する。回路４１８、４１９はインバータループを構成しており、ノードＮ２の電位は回路４１８によって、ノードＮ３の電位は回路４１９によって、それぞれハイレベル又はローレベルに維持される。なお、トランジスタ４１１、４１４には上記のＯＳトランジスタ以外のトランジスタを用いることができる。この場合、回路４１０は揮発性となる。
【０１３５】
また、図１０、図１１（Ａ）においては、トランジスタ４１１のゲートとトランジスタ４１４のゲートは同一の配線ＷＬと接続されているが、異なる配線と接続されていてもよい。トランジスタ４１１のゲートが配線ＷＬａと接続され、トランジスタ４１４のゲートが配線ＷＬｂと接続されている構成を、図１１（Ｂ）に示す。
【０１３６】
［構成例３］
コンフィギュレーションメモリには、揮発性メモリとＯＳトランジスタを組み合わせた回路を用いることもできる。このような記憶回路の構成例を図１２に示す。記憶回路５００の構成例を示す。記憶回路５００は、回路５１０、回路５２０を有する。なお、記憶回路５００は例えば、図９（Ｂ）におけるトランジスタ３１１及び回路３１５、又は、図１１（Ａ）におけるトランジスタ４１１及び回路４１８、又は、図１１（Ａ）におけるトランジスタ４１４及び回路４１９として用いることができる。
【０１３７】
回路５１０は、トランジスタ５１１乃至５１６を有する。トランジスタ５１１、５１２、５１５、５１６はｎチャネル型であり、トランジスタ５１３、５１４はｐチャネル型である。なお、トランジスタ５１１、５１２はそれぞれ、ｎチャネル型であってもｐチャネル型であってもよい。
【０１３８】
トランジスタ５１１のゲートは配線ＷＬと接続され、ソース又はドレインの一方はトランジスタ５１３のソース又はドレイン一方、トランジスタ５１５のソース又はドレイン一方、トランジスタ５１４のゲート、トランジスタ５１６のゲートと接続され、ソース又はドレインの他方は配線ＢＬと接続されている。トランジスタ５１２のゲートは配線ＷＬと接続され、ソース又はドレインの一方はトランジスタ５１４のソース又はドレイン一方、トランジスタ５１６のソース又はドレイン一方、トランジスタ５１３のゲート、トランジスタ５１５のゲートと接続され、ソース又はドレインの他方は配線ＢＬｂと接続されている。トランジスタ５１３のソース又はドレインの他方、トランジスタ５１４のソース又はドレインの他方は、それぞれ所定の電位（ここでは高電源電位ＶＤＤ）が供給される配線と接続されている。トランジスタ５１５のソース又はドレインの他方、トランジスタ５１６のソース又はドレインの他方は、それぞれ所定の電位（ここでは低電源電位ＶＳＳ）が供給される配線と接続されている。なお、トランジスタ５１３のゲートおよびトランジスタ５１５のゲートと接続されたノードをノードＮ５とし、トランジスタ５１４のゲートおよびトランジスタ５１６のゲートと接続されたノードをノードＮ４とする。
【０１３９】
このように、回路５１０は揮発性のＳＲＡＭセルを構成している。また、ノードＮ４およびノードＮ５は、コンフィギュレーションデータを保持するノードに対応する。
【０１４０】
回路５２０は、トランジスタ５２１、５２２、容量素子５２３、５２４を有する。ここで、トランジスタ５２１、５２２はＯＳトランジスタである。
【０１４１】
トランジスタ５２１のゲートは配線ＷＥと接続され、ソース又はドレインの一方は容量素子５２３の一方の電極と接続され、ソース又はドレインの他方はノードＮ５と接続されている。トランジスタ５２２のゲートは配線ＷＥと接続され、ソース又はドレインの一方は容量素子５２４の一方の電極と接続され、ソース又はドレインの他方はノードＮ４と接続されている。容量素子５２３の他方の電極および容量素子５２４の他方の電極はそれぞれ、所定の電位が供給される配線と接続されている。所定の電位が供給される配線は、高電位電源線であっても低電位電源線（接地線など）であってもよい。また、電位の切り替えが可能な配線であってもよい。なお、トランジスタ５２１のソース又はドレインの一方および容量素子５２３の一方の電極と接続されたノードをノードＮ６とし、トランジスタ５２２のソース又はドレインの一方および容量素子５２４の一方の電極と接続されたノードをノードＮ７とする。
【０１４２】
記憶回路５００においてデータが保持されるノードに相当するノードＮ４は、ＯＳトランジスタであるトランジスタ５２２を介してノードＮ７と接続されている。また、記憶回路５００においてデータが保持されるノードに相当するノードＮ５は、ＯＳトランジスタであるトランジスタ５２１を介してノードＮ６と接続されている。これにより、ＳＲＡＭセルを構成する回路５１０に保持されたデータを、ノードＮ６およびノードＮ７に退避させることができる。また、退避させたデータを再度、回路５１０に復帰させることができる。
【０１４３】
具体的には、回路５１０においてデータの読み書きが行われない期間において、配線ＷＥの電位をハイレベルとすることにより、トランジスタ５２１、５２２をオン状態とし、ノードＮ４に保持されたデータをノードＮ７に退避させ、ノードＮ５に保持されたデータをノードＮ６に退避させることができる。その後、配線ＷＥの電位をローレベルとすることにより、トランジスタ５２１、５２２をオフ状態とし、ノードＮ６、Ｎ７の電位を保持する。また、配線ＷＥの電位を再度ハイレベルとし、トランジスタ５２１、５２２をオン状態とすることにより、ノードＮ６、Ｎ７に退避させたデータをノードＮ４、Ｎ５に復帰させることができる。なお、データを退避する際には高電源電位ＶＤＤを高くし、データを復帰させる際には高電源電位ＶＤＤを低くすることで、より安定したデータ退避、復帰が可能となる。
【０１４４】
ここで、トランジスタ５２１、５２２はＯＳトランジスタであり、オフ電流が極めて小さい。そのため、トランジスタ５２１、５２２がオフ状態であるとき、ノードＮ６の電位とノードＮ７の電位を長期間にわたって保持することができる。従って、記憶回路５００への電力の供給が停止される直前に、ノードＮ４、Ｎ５に保持されたデータをノードＮ６、Ｎ７に退避させることにより、記憶回路５００への電力の供給が停止した場合であっても、記憶回路５００に記憶されたデータを保持することが可能となる。そして、記憶回路５００への電力の供給が再開された後、ノードＮ６、Ｎ７に保持されたデータをノードＮ４、Ｎ５に復帰させることができる。
【０１４５】
なお、記憶回路５００はＳＲＡＭセルを構成するため、トランジスタ５１１乃至５１６には高速動作が要求される。そのため、トランジスタ５１１乃至５１６にはチャネル形成領域にシリコンを有するトランジスタ（以下、Ｓｉトランジスタともいう）などを用いることが好ましい。
【０１４６】
また、記憶回路５００に電力が供給され、回路５１０がＳＲＡＭセルとして動作している期間においては、トランジスタ５２１、５２２はオフ状態とすることが好ましい。これにより、回路５１０の高速な動作の阻害を防止することができる。
【０１４７】
なお、図１２においては、回路５２０がトランジスタ５２１、５２２、容量素子５２３、５２４を有する例を示したが、トランジスタ５２１および容量素子５２３を省略した構成としてもよいし、トランジスタ５２２および容量素子５２４を省略した構成としてもよい。
【０１４８】
また、図１２においては回路５２０に揮発性のメモリセルである６トランジスタ型のＳＲＡＭセルを用いたが、これに限定されず、回路５２０として他の揮発性のメモリセルを用いてもよい。他の揮発性メモリセルを用いた場合であっても、図１２に示すようにＯＳトランジスタおよび容量素子を接続することにより、データの退避及び復帰が可能となる。
【０１４９】
以上のように、記憶回路５００において、回路５１０に格納されたデータを回路５２０に退避させて保持することにより、記憶回路５００への電力の供給が行われない期間においてもデータを保持することができる。また、電力の供給が再開された後、回路５２０に保持されたデータを回路５１０に復帰させることができる。そのため、データの保持期間において記憶回路５００への電力の供給を停止することができ、消費電力を低減することができる。
【０１５０】
また、ＯＳトランジスタは、Ｓｉトランジスタ上に積層することができる。そのため、回路５２０を回路５１０上に積層することができる。従って、記憶回路５００の面積の増加を抑えることができる。
【０１５１】
［構成例４］
本実施の形態で説明したＯＳトランジスタは、一対のゲートを有していてもよい。図９における回路３１０を例として、ＯＳトランジスタに一対のゲートが設けられた構成を図１３に示す。なお、トランジスタが一対のゲートを有する場合、一方のゲートをフロントゲート又は単にゲートと呼び、他方のゲートをバックゲートと呼ぶことができる。
【０１５２】
図１３（Ａ）に示すトランジスタ３１１はバックゲートを有し、バックゲートはフロントゲートと接続されている。この場合、フロントゲートの電位とバックゲートの電位は等しくなる。
【０１５３】
図１３（Ｂ）に示すトランジスタ３１１は、バックゲートが配線ＢＧＬと接続されている。配線ＢＧＬは、バックゲートに所定の電位を供給する機能を有する配線である。配線ＢＧＬの電位を制御することにより、トランジスタ３１１の閾値電圧を制御することができる。なお、配線ＢＧＬは行ドライバ回路２３５（図７参照）と接続することができ、配線ＢＧＬの電位は行ドライバ回路２３５によって制御することができる。また、配線ＢＧＬは同一の行の回路３１０において共有されている。
【０１５４】
なお、図１３においては、一例として回路３１０が有するトランジスタ３１１にバックゲートを設けた構成を示したが、本実施の形態におけるＯＳトランジスタにはいずれも、図同様にバックゲートを設けることができる。
【０１５５】
上記のように、本発明の一態様においては、ＯＳトランジスタをコンフィギュレーションメモリに用いることにより、ＰＬＤの面積の縮小及び消費電力の低減を実現することができる。
【０１５６】
本実施の形態は、他の実施の形態の記載と適宜組み合わせることができる。
【０１５７】
＜本明細書等の記載に関する付記＞
本明細書等において、「第１」、「第２」、「第３」という序数詞は、構成要素の混同を避けるために付したものである。従って、構成要素の数を限定するものではない。また、構成要素の順序を限定するものではない。
【０１５８】
本明細書等において、ブロック図では、構成要素を機能毎に分類し、互いに独立したブロックとして示している。しかしながら実際の回路等においては、構成要素を機能毎に切り分けることが難しく、一つの回路に複数の機能が係わる場合や、複数の回路にわたって一つの機能が関わる場合があり得る。そのため、ブロック図のブロックは、明細書で説明した構成要素に限定されず、状況に応じて適切に言い換えることができる。
【０１５９】
なお図面において、同一の要素または同様な機能を有する要素、同一の材質の要素、あるいは同時に形成される要素等には同一の符号を付す場合があり、その繰り返しの説明は省略する場合がある。
【０１６０】
本明細書等において、トランジスタの接続関係を説明する際、ソースとドレインとの一方を、「ソース又はドレインの一方」（又は第１電極、又は第１端子）と表記し、ソースとドレインとの他方を「ソース又はドレインの他方」（又は第２電極、又は第２端子）と表記している。これは、トランジスタのソースとドレインは、トランジスタの構造又は動作条件等によって変わるためである。なおトランジスタのソースとドレインの呼称については、ソース（ドレイン）端子や、ソース（ドレイン）電極等、状況に応じて適切に言い換えることができる。
【０１６１】
また、本明細書等において、電圧と電位は、適宜言い換えることができる。電圧は、基準となる電位からの電位差のことであり、例えば基準となる電位をグラウンド電位（接地電位）とすると、電圧を電位に言い換えることができる。グラウンド電位は必ずしも０Ｖを意味するとは限らない。なお電位は相対的なものであり、基準となる電位によっては、配線等に与える電位を変化させる場合がある。
【０１６２】
本明細書等において、スイッチとは、導通状態（オン状態）、または、非導通状態（オフ状態）になり、電流を流すか流さないかを制御する機能を有するものをいう。または、スイッチとは、電流を流す経路を選択して切り替える機能を有するものをいう。
【０１６３】
一例としては、電気的スイッチ又は機械的なスイッチなどを用いることができる。つまり、スイッチは、電流を制御できるものであればよく、特定のものに限定されない。
【０１６４】
なお、スイッチとしてトランジスタを用いる場合、トランジスタの「導通状態」とは、トランジスタのソースとドレインが電気的に短絡されているとみなせる状態をいう。また、トランジスタの「非導通状態」とは、トランジスタのソースとドレインが電気的に遮断されているとみなせる状態をいう。なおトランジスタを単なるスイッチとして動作させる場合には、トランジスタの極性（導電型）は特に限定されない。
【０１６５】
本明細書等において、ＡとＢとが接続されている、とは、ＡとＢとが直接接続されているものの他、電気的に接続されているものを含むものとする。ここで、ＡとＢとが接続されているとは、ＡとＢとの間で、何らかの電気的作用を有する対象物が存在するとき、ＡとＢとの電気信号の授受を可能とするものをいう。
【符号の説明】
【０１６６】
Ｎ１    ノード
Ｎ２    ノード
Ｎ３    ノード
Ｎ４    ノード
Ｎ５    ノード
Ｎ６    ノード
Ｎ７    ノード
ｐｏｗｅｒ１    信号
ｐｏｗｅｒ２    信号
ＲＯＭ３    ＲＯＭ
ＳＥＮ３    ＳＥＮ
Ｔ０    時刻
Ｔ１    時刻
Ｔ２    時刻
Ｔ３    時刻
Ｔ４    時刻
Ｔ５    時刻
Ｔ６    時刻
Ｔ７    時刻
Ｔ８    時刻
Ｔ９    時刻
１０    電源ドメイン
１１    ＣＰＵ
１２    メモリ
１３    バス
２０    電源ドメイン
２１    ＰＬＤ
２１Ａ    ＰＬＤ
２１Ｂ    ＰＬＤ
２２    プログラマブル領域
２３    プログラマブル領域
２４    コントロール回路
２５    ビット線駆動回路
２６    ワード線駆動回路
３０    電源ドメイン
３１    電源制御ユニット
３２    状態制御回路
５１    マルチプレクサ
５２Ａ    コンフィギュレーションＲＯＭ
５２Ｃ    コンフィギュレーションＲＯＭ
５３    マルチプレクサ
５４Ａ    センサモジュール
５４Ｃ    センサモジュール
６０    状態
６１    状態
６２    状態
６３    状態
６４    状態
６５    状態
６６    状態
６７    状態
６８    状態
６９    状態
７０    状態
２００    ＰＬＤ
２１１    ＬＡ
２１２    ＬＡ
２２１    ＳＷＡ
２２３    ＳＷＡ
２２４    ＩＯＡ
２２５    ＩＯＡ
２３０    クロック信号生成装置
２３１    コンフィギュレーションコントローラ
２３２    コンテキストコントローラ
２３４    列ドライバ回路
２３５    行ドライバ回路
２４０    ＬＥ
２５０    コンフィギュレーションメモリ部
２６０    ＬＣＥＬＬ
２６１    回路群
２６２    ＬＵＴ
２６３    キャリーロジック
２６５    ＦＦ
２８０    ＲＳ
３００    記憶回路
３１０    回路
３１１    トランジスタ
３１２    トランジスタ
３１３    トランジスタ
３１４    容量素子
３１５    回路
４００    記憶回路
４１０    回路
４１１    トランジスタ
４１２    トランジスタ
４１３    容量素子
４１４    トランジスタ
４１５    トランジスタ
４１６    容量素子
４１７    トランジスタ
４１８    回路
４１９    回路
４２０    回路
４２１    インバータ
４２２    トランジスタ
５００    記憶回路
５１０    回路
５１１    トランジスタ
５１２    トランジスタ
５１３    トランジスタ
５１４    トランジスタ
５１５    トランジスタ
５１６    トランジスタ
５２０    回路
５２１    トランジスタ
５２２    トランジスタ
５２３    容量素子
５２４    容量素子
【図１】
2018033132.tif 000003
【図２】
2018033132.tif 000004
【図３】
2018033132.tif 000005
【図４】
2018033132.tif 000006
【図５】
2018033132.tif 000007
【図６】
2018033132.tif 000008
【図７】
2018033132.tif 000009
【図８】
2018033132.tif 000010
【図９】
2018033132.tif 000011
【図１０】
2018033132.tif 000012
【図１１】
2018033132.tif 000013
【図１２】
2018033132.tif 000014
【図１３】
2018033132.tif 000015