(57)【要約】  半導体装置【課題】本発明は、情報を半導体装置内の記憶領域に格納し、その情報が外部に漏れないようにするための耐タンパー性の高い半導体装置を提供する。【解決手段】リコンフィギャラブルな半導体装置であって、規則的に配列されたプログラマブルな複数の演算エレメントと、ランダムな位置関係にある演算エレメントからなる第１の演算エレメント群にプログラムされた回路機能を、第１の演算エレメント群とは異なるランダムな位置関係にある演算エレメントからなる第２の演算エレメント群に移動するよう再プログラムする制御回路１１０とを備える。【選択図】  図１
2006072842.tif 000002
【特許請求の範囲】
【請求項１】
リコンフィギャラブルな半導体装置であって、
規則的に配列されたプログラマブルな複数の演算エレメントと、
前記複数の演算エレメントのうちランダムな位置関係にある演算エレメントからなる第１の演算エレメント群にプログラムされた回路機能を、第１の演算エレメント群とは少なくとも一部の演算エレメントが異なるランダムな位置関係にある演算エレメントからなる第２の演算エレメント群に移動するよう再プログラムする制御回路と
を備えることを特徴とする半導体装置。
【請求項２】
請求項１記載の半導体装置であって、
前記制御回路は、一定時間経過する毎に、現在の回路機能を有する演算エレメント群を第１の演算エレメント群として、第２の演算エレメント群に再構成する
ことを特徴とする半導体装置。
【請求項３】
請求項１記載の半導体装置であって、
前記制御回路は、前記半導体装置が一定回数のアクセスを受ける毎に、現在の回路機能を有する演算エレメント群を第１の演算エレメント群として、第２の演算エレメント群に再構成する
ことを特徴とする半導体装置。
【請求項４】
請求項２または３記載の半導体装置であって、
前記各演算エレメントは、
プログラマブルな演算回路と、
他の演算エレメントをプログラマブルに接続する接続回路と
演算エレメントをプログラムするための構成データを保持する不揮発性記憶素子群と
を有し、
前記制御回路は、第１および第２エレメント群に属する演算エレメントの構成データを更新する
ことを特徴とする半導体装置。
【請求項５】
請求項４記載の半導体装置であって、
前記構成データは、演算回路における演算を指定する演算データと、接続回路による接続を指定する接続データとを含む
ことを特徴とする半導体装置。
【請求項６】
請求項５記載の半導体装置であって、
前記演算エレメントは、さらに
特定のデータを保持する不揮発性記憶素子と、
不揮発性記憶素子に接続され、前記特定データを保持するフリップフロップ素子と
を備える
ことを特徴とする半導体装置。
【請求項７】
請求項６記載の半導体装置であって、
前記特定データは、暗号鍵の部分データであり、
第１および第２エレメント群は何れも暗号鍵を保持し、暗号化または復号化回路を構成する
ことを特徴とする半導体装置。
【請求項８】
請求項６記載の半導体装置であって、
前記特定データは、認証データの部分データであり、
第１および第２エレメント群は何れも認証データを保持し認証回路を構成する
ことを特徴とする半導体装置。
【請求項９】
請求項１から８の何れかに記載の半導体装置であって、
前記不揮発性記憶素子は強誘電体容量素子である
ことを特徴とする半導体装置。
【請求項１０】
不揮発性記憶素子を有する演算エレメントの配列を備えるリコンフィギャラブルな半導体装置における再構成方法であって、
前記半導体装置は、規則的に配列されたプログラマブルな複数の演算エレメントと制御回路とを有し、
制御回路において、配列中のランダムな位置関係にある演算エレメントからなる第１の演算エレメント群によって構成される回路機能を特定するステップと、
制御回路において、特定された回路機能を、第１の演算エレメント群とは少なくとも一部の演算エレメントが異なるランダムな位置関係にある演算エレメントからなる第２の演算エレメント群に移動させるステップと
を有することを特徴とする再構成方法。
【請求項１１】
請求項１０記載の再構成方法であって、さらに、
前記制御回路において、一定時間経過する毎に現在の回路機能を有する演算エレメント群を第１の演算エレメント群として第２の演算エレメント群に再構成するステップを
有することを特徴とする再構成方法。
【請求項１２】
請求項１０記載の再構成方法であって、さらに
前記制御回路において、前記半導体装置が一定回数のアクセスを受ける毎に現在の回路機能を有する演算エレメント群を第１の演算エレメント群として第２の演算エレメント群に再構成するステップを
有することを特徴とする再構成方法。
【請求項１３】
不揮発性記憶素子を有する演算エレメントの配列を備えるリコンフィギャラブルな半導体装置をプログラムするプログラミング方法であって、
演算エレメントの配列からランダムな位置関係にある演算エレメントからなる演算エレメント群を選択する選択ステップと、
選択された演算エレメント群に回路機能をプログラミングするステップと、
を有することを特徴とするプログラミング方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不揮発性記憶素子を有する演算エレメントの配列を備えるリコンフィギャラブルな半導体装置並びにその再構成方法及びそのプログラミング方法に関する。
【背景技術】
【０００２】
近年、大規模な論理回路やマイコンなどと不揮発性のメモリコアを同一チップ上にレイアウトしたシステムＬＳＩが数多く開発されている。低コストで多機能を実現するためにはひとつのチップの中に様々な機能ブロックを搭載することで、チップの個数を減らし組み立てコストを削減する方法が有効である。
【０００３】
また、近年ＬＳＩ内部にプログラムやコードを格納する必要性や、パスワードなどの極秘情報を格納する必要性が多い。例えば、図１２（ａ）に示すように、不揮発性記憶素子１を有する記憶部２と入出力部４とをＬＳＩ内部に備え、不揮発性記憶素子１に極秘情報を保持させている。これらのデータを単体のフラッシュメモリ等の不揮発性メモリに格納したのでは、商品を分解することで容易にそのデータを解読することができてしまう。このようなデータの漏洩を防ぐためにも不揮発性メモリをマイコンなどと混載する、あるいは、複数のチップをひとつのパッケージに収めるマルチ・チップ・パッケージという手法を用いて、不揮発性メモリと論理回路を一体化する方法がとられている。
【０００４】
最近ではこのように不揮発性メモリを単独で露出させないことで、データを解読されにくくしている。さらに不揮発性メモリのデータの入出力に規制を設けて、アクセス権限がない場合には、データの読み出しや書き込みができないように制限することによりデータの耐タンパー性を高めている。
【０００５】
このようなメモリへのアクセス制限を施すＬＳＩの例としては特許文献１等に開示されたものがあげられる。特許文献１に開示された半導体集積回路を図１２（ｂ）に示す。同図（ｂ）では、フラッシュメモリ６から読み出されたコードと、外部から入力されたコードとが一致した場合にのみ、トライステートバッファ４ｇを通してフラッシュメモリ６の読み出しが可能になるように構成されている。ここでは、不揮発性メモリのデータを読み出すためにアクセス権による認証機能を持たせている。
【０００６】
このように、従来のシステムＬＳＩの内蔵するメモリを読み出すには特殊なコマンドや、特殊な操作を必要とし、権利を有さないものが不正に読み出しを行うことは非常に困難であった。
【特許文献１】特開２０００−２１５１０８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、近年、半導体装置の故障解析等に用いるプローブなどを用いれば、データバス線をモニタリングすることが可能であり、ここから得られた情報を元にメモリのデータを解読することが可能となりつつある。今後このような解析装置、解析技術の発展に伴い、それを悪用した犯罪行為も起こり得る。特に近年ＩＣカード等には電子マネーの機能が搭載され、パスワードなどの情報が漏洩すると大きな問題となりうる。今後、外部からのこのような不正なデータ解析に対する耐タンパー性の高い情報保護機能が必要とされている。
【０００８】
本発明は、情報を半導体装置内の記憶領域に格納し、その情報が外部に漏れないようにするための耐タンパー性の高い半導体装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するため本発明の半導体装置は、リコンフィギャラブルな半導体装置であって、規則的に配列されたプログラマブルな複数の演算エレメントと、前記複数の演算エレメントのうちランダムな位置関係にある演算エレメントからなる第１の演算エレメント群にプログラムされた回路機能を、第１の演算エレメント群とは異なるランダムな位置関係にある演算エレメントからなる第２の演算エレメント群に移動するよう再プログラムする制御回路とを備える。
【００１０】
この構成によれば、回路機能がランダムな位置関係にある第１および第２の演算エレメント群に形成されるので、プロービング等によりデータが不正に解読される危険性が低い。しかも、制御回路は、プログラムされた回路機能を、第１の演算エレメント群から第２の演算エレメント群に移動するよう再プログラムするので、データの格納位置を不定にすることができデータの秘匿性を高めることができる。これによりプロービング等によりデータが不正に解読されるのを困難にし、その結果、情報が外部に漏れないようにするための耐タンパー性を高めることができる。
【００１１】
ここで、前記制御回路は、一定時間経過する毎に、現在の回路機能を有する演算エレメント群を第１の演算エレメント群として、第２の演算エレメント群に再構成するようにしてもよい。また、前記制御回路は、前記半導体装置が一定回数のアクセスを受ける毎に、現在の回路機能を有する演算エレメント群を第１の演算エレメント群として、第２の演算エレメント群に再構成するようにしてもよい。
【００１２】
この構成によれば、回路機能の構成する配置を定期的に変更にすることができデータの秘匿性を格段に高めることができる。
ここで、前記各演算エレメントは、プログラマブルな演算回路と、他の演算エレメントをプログラマブルに接続する接続回路と、演算エレメントをプログラムするための構成データを保持する不揮発性記憶素子群とを有し、前記制御回路は、第１および第２エレメント群に属する演算エレメントの構成データを更新するようにしてもよい。
【００１３】
ここで、前記構成データは、演算回路における演算を指定する演算データと、接続回路による接続を指定する接続データとを含む構成であってもよい。
この構成によれば、構成データそのものもランダムは位置関係に分散配置されるので、不正なデータ解析により構成データを解読することをより一層困難にすることができる。
【００１４】
ここで、前記演算エレメントは、さらに特定のデータを保持する不揮発性記憶素子と、不揮発性記憶素子に接続され、前記特定データを保持するフリップフロップ素子とを備える構成としてもよい。
【００１５】
この構成によれば、秘匿性を要する特定データの所在がランダムに分散するので、不正なデータ解析を困難にする。
ここで、前記特定データは、暗号鍵の部分データであり、第１および第２エレメント群は何れも暗号鍵を保持し、暗号化または復号化回路を構成してもよい。
【００１６】
この構成によれば、暗号化または復号化回路で用いられる暗号鍵を不正なデータ解読から保護することができる。
ここで、前記特定データは、認証データの部分データであり、第１および第２エレメント群は何れも認証データを保持し認証回路を構成してもよい。
【００１７】
この構成によれば、認証データを不正なデータ解読から保護することができる。
ここで、前記不揮発性記憶素子は強誘電体容量素子としてもよい。
この構成によれば、前記不揮発性記憶素子として強誘電体キャパシタを有する強誘電体メモリセルを用いることにより、不揮発性記憶素子のセルサイズを小さくすることができ、論理回路の中に分散して配置する場合に優位となる。特に不揮発性記憶素子として強誘電体膜を電極ではさんだ構造の強誘電体キャパシタを用い、強誘電体膜の分極によってデータを記憶させる場合、強誘電体キャパシタの製造工程はＣＭＯＳ製造工程と親和性が高いため、通常のＣＭＯＳトランジスタに強誘電体キャパシタを混載することが可能である。また、ＣＭＯＳライブラリ等がそのまま活用でき、設計の自由度が高い。
【００１８】
また、本発明の再構成方法は、不揮発性記憶素子を有する演算エレメントの配列を備えるリコンフィギャラブルな半導体装置における再構成方法であって、前記半導体装置は、規則的に配列されたプログラマブルな複数の演算エレメントと制御回路とを有し、制御回路において、配列中のランダムな位置関係にある演算エレメントからなる第１の演算エレメント群によって構成される回路機能を特定するステップと、制御回路において、特定された回路機能を、第１の演算エレメント群とは異なるランダムな位置関係にある演算エレメントからなる第２の演算エレメント群に移動させるステップとを有する。
【００１９】
また、本発明のプログラミング方法は、不揮発性記憶素子を有する演算エレメントの配列を備えるリコンフィギャラブルな半導体装置をプログラムするプログラミング方法であって、演算エレメントの配列からランダムな位置関係にある演算エレメントからなる演算エレメント群を選択する選択ステップと、選択された演算エレメント群に回路機能をプログラミングするステップと、を有する。
【発明の効果】
【００２０】
以上のように本発明の半導体装置によれば、非常に安全性の高いデータの保管が可能となるなどの大きな効果を得ることができる。
また、演算エレメントの配列の中に散りばめるように回路機能が配置されるので、データが分散して配置されることになり、データの存在場所の判別を困難にし、データの不正な解読を困難にする。
【００２１】
従来のメモリコアをロジックとは別の領域にまとめる方式に比べて、データの保存、読み出し動作が高速に行える。また、データを取り扱う範囲が局所的である場合、通常のようにメモリコア領域からデータ線などを介してデータをチップ内部で引きまわす必要もなく、データを使う論理回路周辺だけに配線が施してあればよいので、データの位置特定が困難であり、データ漏洩に対する危険性が低い。
【００２２】
また、プログラムによって論理回路の構成を変更できるＦＰＧＡ(Field Programmable Gate Array)のような回路とすることで、より柔軟な回路構成となり、プログラムを解読しなければデータの格納場所も特定が困難になる。また、プログラムの格納に強誘電体メモリを用いれば、ロジック部分に隣接してメモリを設けることが可能であり、フラッシュメモリ等の外付けメモリを用いるより、プログラムを解読される危険性は大幅に減少する。
【発明を実施するための最良の形態】
【００２３】
図１は、本発明の半導体装置の構成を示すブロック図である。同図の半導体装置１００は、演算エレメントアレイ（以下、ＰＥアレイと呼び、演算エレメントをＰＥと呼ぶ。）１０１、入力バッファ１０２、出力バッファ１０３、アドレスバッファ１０４、行デコーダ１０５、列デコーダ１０６、リードライト用アンプ（以下、ＲＷアンプと呼ぶ。）１０８、シフトレジスタ１０９、制御回路１１０を備える。この半導体装置１００は、プログラミングによりその機能を変更可能なＦＰＧＡ (Field Programmable Gate Array)である。
【００２４】
ＰＥ１０１は、図２に示すように、行列上に規則的に配列された複数のＰＥ１１からなる。
ＰＥアレイ１０１へのプログラミングは、次のように行われる。外部の書き込み装置２００からのコンフィギュレーションデータはシフトレジスタ１０９を介してＲＷアンプ１０８に出力される。書き込み装置２００からのアドレスは、このコンフィギュレーションデータと同時に、アドレスバッファ１０４を介して行デコーダ１０５、列デコーダ１０６に出力される。これらのデコーダにより選択されたＰＥアレイ１０１内部のＰＥがプログラミングされる。このプログラミングに当たって、書き込み装置２００は、ＰＥアレイ１０１の配列からランダムな位置関係にあるＰＥからなるＰＥ群を選択し、選択されたＰＥ群に回路機能をプログラミングする。この回路機能には、データ保持する機能や算術論理演算の機能の組み合わせであり、例えば、暗号化または復号化処理機能や、認証処理機能等である。
【００２５】
このようにランダムに選択されたＰＥからなるＰＥ群に回路機能が形成される結果、データの所在が分散配置されることにより、プロービング等によりデータが不正に解読される危険性が低くなる。
【００２６】
ＰＥアレイ１０１への外部からのアクセスは次のように行われる。例えば、ＰＥアレイ１０１が暗号化回路としてプログラミングされた場合は、外部のマイクロプロセッサ等のアクセス装置からの平文が入力バッファ１０２を介してＰＥアレイ１０１に入力される。ＰＥアレイ１０１は、平文に暗号化処理を施し、暗号文を出力バッファ１０３を介して出力する。ＰＥアレイ１０１が復号化回路としてプログラミングされた場合は、外部のマイクロプロセッサ等のアクセス装置からの暗号文が入力バッファ１０２を介してＰＥアレイ１０１に入力される。ＰＥアレイ１０１は、暗号化文に復号化処理を施し、平文を出力バッファ１０３を介して出力する。また、ＰＥアレイ１０１が認証回路としてプログラミングされた場合は、外部のマイクロプロセッサ等のアクセス装置からの認証データが入力バッファ１０２を介してＰＥアレイ１０１に入力される。ＰＥアレイ１０１は、認証データの正当性を検証し、正当か否かを示す認証結果を出力バッファ１０３を介して出力する。また、制御回路１１０は、一定期間（数秒から数分程度）毎に、または一定回数（数回から数百回程度）のアクセスを受ける毎に、ランダムな位置関係にあるＰＥからなるＰＥ群（プログラムされている現在のＰＥ群を第１のＰＥ群と呼ぶ。）にプログラムされた回路機能を、第１のＰＥ群とは異なるランダムな位置関係にあるＰＥからなる第２のＰＥ群に移動するよう再プログラムする。
【００２７】
図３（ａ）（ｂ）は、制御回路１１０による回路機能の移動例を示す図である。図３（ａ）において、ＰＥａ１、ＰＥｂ１、ＰＥｃ１は、鍵情報のうちのＫ１ビット、Ｋ２ビット、ｋ３ビットを保持するＰＥであり、第１のＰＥ群に属している。制御回路１１０による移動後は、図３（ｂ）に示すように、鍵情報のうちのＫ１ビット、Ｋ２ビット、Ｋ３ビットは、ＰＥａ２、ＰＥｂ２、ＰＥｃ２に保持されている。ＰＥａ２、ＰＥｂ２、ＰＥｃ２は、上記の第２のＰＥ群に属する。
【００２８】
図４（ａ）（ｂ）は、回路位置の他の移動例を示す図である。図４（ａ）において、ＰＥｄ１、ＰＥｅ１、ＰＥｆ１は、回路機能のうちのＯＲ回路、ＡＮＤ回路、ＮＯＴ回路を形成するＰＥであり、第１のＰＥ群に属している。制御回路１１０による移動後は、図４（ｂ）に示すように、ＯＲ回路、ＡＮＤ回路、ＮＯＴ回路は、ＰＥｄ２、ＰＥｅ２、ＰＥｆ２に形成されている。ＰＥｄ２、ＰＥｅ２、ＰＥｆ２は、上記の第２のＰＥ群に属する。
【００２９】
このように、制御回路１１０はデータの格納位置を動的に変更する。例えば、不正なデータ解読作業の途中で、このようにデータの格納位置が変更されるとデータの秘匿性を飛躍的に高めることができる。
【００３０】
図５Ａは、ＰＥ１１の具体的な構成例を示すブロック図である。図６は、図５ＡのＰＥの配置イメージを模式的に示す図である。
図５Ａ、図６において、ＰＥは、ルーティングスイッチ回路１２、ルックアップテーブル（以下、ＬＵＴと呼ぶ。）１３、Ｄフリップフロップ（以下、ＤＦＦと呼ぶ。）１４、マルチプレクサ（以下、ＭＵＸと呼ぶ。）１５、不揮発性記憶素子１２ａ〜１５ａを有している。
【００３１】
ルーティングスイッチ回路１２は、他のＰＥと接続する回路である。他のＰＥとの接続関係は、不揮発性記憶素子１２ａに保持されたデータにより定まり、プログラマブルである。
【００３２】
ＬＵＴ１３は、他のＰＥからのルーティングスイッチ回路１２を介して入力されるデータをテーブルアドレスとして、出力データを出力する。ＬＵＴ１３の内容は、不揮発性記憶素子１３ａに保持されたデータにより定まり、プログラマブルである。
【００３３】
ＤＦＦ１４は、ＬＵＴ１３の出力データをクロック信号に同期して保持する。ＤＦＦ１４は、クロック同期する通常のＦＦ動作と、不揮発性記憶素子１４ａのデータを保持する動作とを切り替え可能である。
【００３４】
ＭＵＸ１５は、ＬＵＴ１３の出力データとＤＦＦ１４の出力データとの一方を不揮発性記憶素子１５ａに保持されたデータに従って選択する。選択されたデータは、ルーティングスイッチ回路１２を介して他のＰＥに出力される。
【００３５】
図５Ｂは、ＰＥの他の構成例を示すブロック図である。図５Ｂでは、図５４ＡのＬＵＴ１３、ＤＦＦ１４、ＭＵＸ１５、不揮発性記憶素子１３ａ〜１５ａの代わりに、ＡＬＵ１６と不揮発性記憶素子１６ａとを備える。
【００３６】
ＡＬＵ１６は、ルーティングスイッチ回路１２を介して他のＰＥから入力されたデータに算術論理演算を施して、ルーティングスイッチ回路１２を介して他のＰＥに出力する。ＡＬＵ１６による演算種別は、不揮発性記憶素子１６ａによってプログラマブルである。
【００３７】
図７は、図５Ａに示したＰＥの具体的な回路構成を示す図である。同図では、ＬＵＴ１３は４入力１出力としている。ルーティングスイッチ回路１２で接続される他のＰＥとの接続関係は各配線の交叉点に設けられたスイッチＳＷ１によって定まる。
【００３８】
図８は、スイッチＳＷ１の概略構成を示すブロック図である。２本の配線の交叉点にはトランジスタスイッチＴｒ１が設けられ、不揮発性記憶素子１２ａに保持されたデータによってオンかオフか決定付けられる。
【００３９】
図９Ａは、図８に示した不揮発性記憶素子１２ａの回路例である。図９Ａは他の不揮発性記憶素子１３ａ、１５ａ、１６ａの回路例でもある。また、図９ＡはＦＦ１４および不揮発性記憶素子１４ａの回路例でもある。図８に示したスイッチトランジスタＴｒ１のゲートには、図９ＡにおけるＤ端子あるいはＱバー端子が直接接続される。
【００４０】
図９Ａの不揮発性記憶素子１２ａは、インバータ１００１ａ、１００１ｂ、トランジスタ１００２ａ、１００２ｂ、１００３ａ、１００３ｂ、強誘電体キャパシタ１００４ａ、１００４ｂとから構成される。２つのインバータ１００１ａ、１００１ｂからなるラッチ回路はＦＦを構成し、制御信号ＳＡＥにより出力が制御される。このＦＦの一端とビット線ＢＬ１とが接続され、ＦＦの他端と反転ビット線ＢＬ２とが接続される。トランジスタ１００２ａ、１００２ｂは、クロック信号ＣＬ１、クロック信号ＣＬＫによりそれぞれオンオフされる。トランジスタ１００３ａ、１００３ｂは、制御信号ＳＳによってそれぞれオンオフされる。強誘電体キャパシタ１００４ａ、１００４ｂは不揮発性記憶素子１を構成する。強誘電体キャパシタ１００４ａ、１００４ｂの一端はトランジスタ１００２ａ、１００２ｂにそれぞれ接続され、他端は制御信号線ＣＰと接続される。
【００４１】
図９Ｂは、図９Ａに示した不揮発性記憶素子１２ａの動作タイムチャート図である。同図ではアクセスされていない通常動作（Normal）、強誘電体キャパシタ１００４ａ、１００４ｂにデータを書き込み動作（Write）、電源オフ時（Power Off）、読み出し動作(Read)に分けてある。
【００４２】
通常動作（Normal）では、ＳＳ信号がローレベルであることにより、トランジスタ１００３ａ、１００３ｂはオフになり、ＦＦは通常のＤ−フリップフロップとして動作する。つまり、ＦＦは、クロック信号ＣＬＫに同期してＤ入力端子のデータをラッチし、クロック信号ＣＬ１に同期してＱバー（Ｑの反転出力）出力端子から出力する。
【００４３】
書き込み動作（Write）は、制御回路１１０の制御によって、クロック信号ＣＬＫをローレベル、クロック信号ＣＬ１をハイレベルにすることによりトランジスタ１００２ｂをオフ、トランジスタ１００２ａをオンにする。このときＦＦは、制御回路１１０の制御によってＱバー端子に入力されるデータ、あるいは既に保持しているデータを保持し、トランジスタ１００３ａ、１００３ｂ（ＳＳ信号によりオン）を介してＦＦの両端の電圧が、強誘電体キャパシタ１００４ａ、１００４ｂに印加され、さらにＣＰ信号がローレベルになることにより、強誘電体キャパシタ１００４ａ、１００４ｂにデータが書き込まれる。
【００４４】
電源オフ時（Power Off）には、強誘電体キャパシタ１００４ａ、１００４ｂは書き込まれたデータを保持する。
読み出し動作(Read)では、クロック信号ＣＬＫおよびクロック信号ＣＬ１を共にローレベル、ＳＳ信号、ＣＰ信号をハイレベルにすることにより、強誘電体キャパシタ１００４ａ、１００４ｂに保持されたデータ（分極による電位差）がＦＦの両端に入力され、ＦＦにデータが保持される。クロック信号ＣＬ１がハイレベルになったとき、ＦＦのデータ（ＢＬ２）がＱバーから出力される。
【００４５】
図１０は、制御回路１１０による移動処理を示すフローチャートである。同図のように制御回路１１０は、常に、一定時間が経過したか否かの判定（Ｓ９１）と、外部からプログラマブルロジックアレイ１００へのアクセス回数がしきい値Ｎを超えたか否かの判定とを行う（Ｓ９２）。ここで、一定時間は、プローブによる不正なデータ解読に要すると想定される時間よりも十分小さければよく、数秒から数分程度でよい。また、しきい値Ｎも上記の時間内になされると想定されるアクセスの回数よりも十分少なければよく、数回から数１０回程度でよい。なお、Ｓ９１の判定で用いられる時間やＳ９２の判定で用いられる回数については、処理の途中において変更できる構成としてもよい。また、Ｓ９１の処理を行わずに、アクセス回数のみで判定する構成としたり、Ｓ９２の処理を行わずに、一定時間が経過したか否かのみで判定する構成としてもよい。
【００４６】
一定時間が経過したと判定されば場合、又はアクセス回数が超えたと判定された場合、制御回路１１０は、外部からのアクセスを禁止し（Ｓ９３）、ＰＥアレイ１０１の現在のコンフィギュレーションを特定し（Ｓ９４）、特定された現在のコンフィギュレーションに応じて次のコンフィギュレーションを決定し（Ｓ９５）、ＰＥアレイ１０１のコンフィギュレーションデータを変更し（Ｓ９６）、変更後にアクセス禁止を解除する（Ｓ９７）。
現在のコンフィギュレーションの特定は、例えば、一部のＰＥ又は制御回路１１０内部の不揮発性記憶素子にコンフィギュレーション番号を書き込んでおいて、これにより特定してもよい。また、次のコンフィギュレーションデータは、現在のコンフィギュレーションデータとの差分を移動データとして一部のＰＥ又は制御回路１１０内部の不揮発性記憶素子に記憶させておいてもよい。
【００４７】
図１１は、書き込み装置２００によるプログラミング処理を示すフローチャートである。同図のフローは、図１に示したプログラマブルロジックアレイ１００に新たなコンフィギュレーションデータを書き込むことによりプログラミングする処理を示す。書き込み装置２００は、まず、ＰＥアレイ１０１中のＰＥのうち、必要とするＮ個のＰＥの配置をランダムに選択し（Ｓ１１１）、選択されたＮ個のＰＥ用に第１コンフィギュレーションデータを作成し（Ｓ１１２）、さらに、異なる配置のＮ個のＰＥに回路機能を移動させるための移動データを作成し（Ｓ１１３）、第１コンフィギュレーションデータと移動データとをＰＥアレイ１０１に書き込む（Ｓ１１４）。ここで、移動データは、異なる配置のＮ個のＰＥ用の第２コンフィギュレーションデータであってもよいし、第１コンフィギュレーションデータと第２コンフィギュレーションデータとの差分であってもよい。この場合、第１コンフィギュレーションと第２コンフィギュレーションとを交互に再構成することになる。また、移動データは、複数個のコンフィギュレーションデータであってもよい。
【００４８】
（その他の変形例）
なお、本発明を上記の実施の形態に基づいて説明してきたが、本発明は上記の実施に形態に限定されないのはもちろんである。
【００４９】
以下のような場合も本発明に含まれる。
（１）不揮発性記憶素子の例として強誘電体を用いた強誘電体メモリについて説明してきたが、その他の不揮発性メモリであってもよい。
（２）半導体集積回路として特定の処理を行う論理回路について説明してきたがマイコンやＦＰＧＡのように処理内容をソフトウェアで変更できる回路であってもよい。
【産業上の利用可能性】
【００５０】
本発明は、データの不正な解読を困難にし、耐タンパー性の高い半導体集積回路、その再構成方法およびプログラミング方法に適している。
【図面の簡単な説明】
【００５１】
【図１】本発明の半導体装置の構成を示すブロック図である。
【図２】ＰＥアレイの構成例を示すブロック図である。
【図３】（ａ）（ｂ）鍵情報の移動例を示す図である
【図４】（ａ）（ｂ）回路位置の移動例を示す図である。
【図５Ａ】ＰＥの構成例を示すブロック図である。
【図５Ｂ】ＰＥの他の構成例を示すブロック図である。
【図６】図５Ａに示したＰＥの配置ブロック図である。
【図７】図５Ａに示したＰＥの具体的な回路ブロック図である。
【図８】スイッチの構成を示すブロック図である。
【図９Ａ】スイッチ内部の不揮発性記憶素子の回路例である。
【図９Ｂ】スイッチ内部の不揮発性記憶素子の動作タイムチャートである。
【図１０】制御回路による移動処理を示すフローチャートである。
【図１１】半導体装置をプログラミングする処理を示すフローチャートである。
【図１２】（ａ）（ｂ）従来技術における半導体装置のブロック図である。
【符号の説明】
【００５２】
１２  ルーティングスイッチ回路
１３  ＬＵＴ
１４  ＤＦＦ
１５  ＭＰＸ
１６  ＡＬＵ
１２ａ  不揮発性メモリ素子
１３ａ  不揮発性メモリ素子
１４ａ  不揮発性メモリ素子
１００  プログラマブルロジックアレイ
１０１  ＰＥアレイ
１０２  入力バッファ
１０３  出力バッファ
１０４  アドレスバッファ
１０５  行デコーダ
１０６  列デコーダ
１０８  ＲＷアンプ
１０９  シフトレジスタ
１１０  制御回路
２００  書き込み装置
１００１ａ  インバータ１００１ａ
１００１ｂ  インバータ１００１ｂ
１００２ａ  スイッチトランジスタ１００２ａ
１００２ｂ  スイッチトランジスタ１００２ｂ
１００３ａ  スイッチトランジスタ１００３ａ
１００３ｂ  スイッチトランジスタ１００３ｂ
１００３ａ  強誘電体１００３ａ
１００３ｂ  強誘電体１００３ｂ
【図１】
2006072842.tif 000003
【図２】
2006072842.tif 000004
【図３】
2006072842.tif 000005
【図４】
2006072842.tif 000006
【図５Ａ】
2006072842.tif 000007
【図５Ｂ】
2006072842.tif 000008
【図６】
2006072842.tif 000009
【図７】
2006072842.tif 000010
【図８】
2006072842.tif 000011
【図９Ａ】
2006072842.tif 000012
【図９Ｂ】
2006072842.tif 000013
【図１０】
2006072842.tif 000014
【図１１】
2006072842.tif 000015
【図１２】
2006072842.tif 000016