(57)【要約】【課題】記憶装置の冗長回路として好適なリコンフィギャラブル回路を提供する。【解決手段】プログラマブル・ロジック・エレメント（ＰＬＥ）は、ｋ個のロジック回路（例えば、ＸＮＯＲ回路）、ｋ個のコンフィギュレーション・メモリ（ＣＭ）、ｋ個のロジック回路の出力が入力される他のロジック回路（例えば、ＡＮＤ回路）を有する。ＡＮＤ回路の出力は、ＰＬＥのｋ個の入力のデータが、それぞれ、対応するｋ個のＣＭに格納されているコンフィギュレーション・データと全て一致しているか否かを表している。例えば、ＣＭに記憶装置の不良ブロックのアドレスを格納しておき、ＰＬＥにアクセス要求された記憶装置のアドレスデータを入力することで、ＡＮＤ回路の出力から不良ブロックへのアクセスであるか否かを判定することができる。【選択図】図６
2015111821.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも１つのプログラマブル・ロジック・エレメントを備えており、
前記プログラマブル・ロジック・エレメントは、
第１乃至第ｋのロジック回路と（ｋは２以上の整数）、
第１乃至第ｋのコンフィギュレーション・メモリと、
プログラム可能なルックアップテーブルと、
レジスタと、
マルチプレクサと、
を有し、
前記レジスタは、前記ルックアップテーブルから出力されるデータを格納し、
前記マルチプレクサは、前記ルックアップテーブルから出力されるデータ、または前記レジスタから出力されるデータを選択して出力し、
前記第１乃至前記第ｋのロジック回路は、それぞれ、第１乃至第ｋのデータと、前記第１乃至前記第ｋのコンフィギュレーション・メモリから出力される第１乃至第ｋのコンフィギュレーション・データとの排他的否定論理和を求め、演算結果を第ｋ＋１乃至第２ｋのデータとして出力し、
前記ルックアップテーブルは、前記第ｋ＋１乃至前記第２ｋのデータ、および第２ｋ＋１のデータの論理演算を行い、演算結果を第２ｋ＋２のデータとして出力することを特徴とするリコンフィギャラブル回路。
【請求項２】
請求項１において、
ｈ個（ｈは２以上の整数）の前記プログラマブル・ロジック・エレメントにおいて、ｈ個の前記ルックアップテーブルがカスケード接続されており、
ｈ個の前記ルックアップテーブルから出力された前記第２ｋ＋２のデータは、それぞれ次段の前記ルックアップテーブルの前記第２ｋ＋１のデータとして入力されることを特徴とするリコンフィギャラブル回路。
【請求項３】
少なくとも１つのプログラマブル・ロジック・エレメントを備えており、
前記プログラマブル・ロジック・エレメントは、
第１乃至第ｋ＋１のロジック回路と（ｋは２以上の整数）、
第１乃至第ｋのコンフィギュレーション・メモリと、
プログラム可能なルックアップテーブルと、
レジスタと、
マルチプレクサと、
を有し、
前記レジスタは、前記ルックアップテーブルから出力されるデータを格納し、
前記マルチプレクサは、前記ルックアップテーブルから出力されるデータ、または前記レジスタから出力されるデータを選択して出力し、
前記第１乃至前記第ｋのロジック回路は、それぞれ、第１乃至第ｋのデータと、前記第１乃至前記第ｋのコンフィギュレーション・メモリから出力される第１乃至第ｋのコンフィギュレーション・データとの排他的否定論理和を演算し、演算結果を第ｋ＋１乃至第２ｋのデータとして出力し、
前記第ｋ＋１のロジック回路は、前記第ｋ＋１乃至前記第２ｋのデータ、および第２ｋ＋１のデータの論理演算を行い、演算結果を第２ｋ＋２のデータとして出力し、
前記ルックアップテーブルに前記第ｋ＋１乃至前記第２ｋのデータが入力されることを特徴とするリコンフィギャラブル回路。
【請求項４】
請求項３において、
ｈ個（ｈは２以上の整数）の前記プログラマブル・ロジック・エレメントにおいて、ｈ個の前記第ｋ＋１のロジック回路がカスケード接続されており、
ｈ個の前記第ｋ＋１のロジック回路から出力された前記第２ｋ＋２のデータは、それぞれ次段の前記第ｋ＋１のロジック回路の前記第２ｋ＋１のデータとして入力されるリコンフィギャラブル回路。
【請求項５】
請求項３または４において、
前記第ｋ＋１のロジック回路は、ＡＮＤ回路であるリコンフィギャラブル回路。
【請求項６】
複数のメモリセルを有するメモリセルアレイを有するメモリ部と、
冗長回路と、
を有し、
前記メモリ部は、
前記複数のメモリセルが配列されている前記メモリセルアレイと、
論理アドレスにより指定された少なくとも１つの前記メモリセルを選択状態にして、データの読み出しおよび書き込みを行う機能を有する周辺回路と、
を有し、
前記メモリセルアレイは、
２ｎ個（ｎは１以上の整数）のブロックを含む第１の記憶エリアと、
前記第１の記憶エリアの不良メモリセルが存在する不良ブロックと置き換えられるｍ個（ｍは整数、１≦ｍ＜２ｎ）の冗長ブロックを含む第２の記憶エリアと、
を有し、
前記第１および前記第２の記憶エリアの物理アドレスは、上位ｍビットが冗長アドレスとして機能し、前記２ｎ個のブロックの物理アドレスは、それぞれ、当該論理アドレスの上位ビットに冗長アドレスを追加した構造を有し、前記２ｎ個のブロックの冗長アドレスは同じであり、
前記ｍ個の冗長ブロックの冗長アドレスは、互いに異なり、かつ、前記第１の記憶エリアの冗長アドレスとも異なり、
前記冗長回路は、
前記第１の記憶エリアの前記不良ブロックの論理アドレスを記憶するメモリを有し、
前記メモリに記憶されている論理アドレスと、アクセス要求された前記第２の記憶エリアの論理アドレスから、前記冗長アドレスを生成し、
前記周辺回路は、前記冗長回路で生成された冗長アドレスが、前記ｍ個の冗長ブロックの冗長アドレスのいずれかと一致する場合、該当する冗長ブロックを選択する機能を有する
ことを特徴とする記憶装置。
【請求項７】
請求項６において、
前記冗長回路は、前記メモリ部をテストするためのデータを生成する機能を有するように再構成が可能であり、
前記第１の記憶エリアをテストする場合は、前記冗長回路は、少なくともテスト対象となる前記ブロックの論理アドレスを、前記テストデータとして前記周辺回路に出力し、
前記第２の記憶エリアをテストする場合は、前記冗長回路は、前記テストデータとして、前記冗長ブロックの前記冗長アドレスを前記周辺回路に出力することを特徴とする記憶装置。
【請求項８】
請求項６又は７において、
前記冗長回路は、請求項１乃至５の何れか１項に記載のリコンフィギャラブル回路である記憶装置。
【請求項９】
請求項６乃至８の何れか１項に記載の記憶装置を有する電子機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、物、方法、または、製造方法に関する。または、本発明は、プロセス、マシン、マニュファクチャ、または、組成物（コンポジション・オブ・マター）に関する。例えば、本発明は、半導体装置、その駆動方法、または、そのテスト方法等に関する。例えば、本発明は、リコンフィギャラブル回路若しくはその駆動方法、または、記憶装置若しくはそのテスト方法等に関する。
【背景技術】
【０００２】
フラッシュメモリなどの記憶装置の製造歩留まりを向上する目的で、あらかじめ冗長なメモリセルを準備しておき、不良メモリセルを冗長メモリセルに置き換えるための冗長回路を設けた記憶装置が提案されている。また、専用のテスト回路を内蔵して、メモリセルのテストを行う記憶装置が提案されている。
【０００３】
例えば、特許文献１は、フラッシュメモリに、論理アドレスをセクタの物理アドレスに変換するテーブルＲＡＭを設け、不良メモリセルを有するセクタ（不良セクタ）の物理アドレスを避けるため、不良セクタの物理アドレスをその他の不良メモリセルの無いセクタ（正常セクタ）の物理アドレスに変換する構成を開示している。
【０００４】
半導体集積回路の一つとして、出荷後にユーザがプログラミングすることにより回路機能を変更することが可能なリコンフィギャラブル（再構成可能）回路が知られている。リコンフィギャラブル回路は、例えば、小規模なＰＡＬ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ａｒｒａｙ  Ｌｏｇｉｃ）やＧＡＬ（Ｇｅｎｅｒｉｃ  Ａｒｒａｙ  Ｌｏｇｉｃ）、規模の大きなＣＰＬＤ（Ｃｏｍｐｌｅｘ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）、ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）が挙げられる。なお、リコンフィギャラブル回路は、リコンフィギャラブル・デバイス等と呼ばれる場合もあり、また、プログラマブル回路でもある。
【０００５】
リコンフィギャラブル回路は、コンフィギュレーション・メモリに格納するコンフィギュレーション・データを書き換える、あるいは、コンフィギュレーション・メモリから読み出すコンフィギュレーション・データを変更することにより、１つの回路で複数の用途に使い分けることが可能である。例えば、特許文献２は、ＦＰＧＡを半導体チップに組み込み、ＦＰＧＡを用いて、半導体チップ内のＣＰＵ、ＳＲＡＭ、およびＤＲＡＭのテストを行うことを開示している。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０００−１２２９３５号公報
【特許文献２】国際公開第００／６２３３９号
【発明の概要】
【発明が解決しようとする課題】
【０００７】
特許文献１では、正常セクタに対応する論理アドレスに対しても、物理アドレスへの変換データをテーブルＲＡＭに格納しておく必要がある。したがって、テーブルＲＡＭのサイズが膨大になってしまう。また、当該テーブルＲＡＭに物理アドレスへの変換データを書き込むためのプログラムを、フラッシュメモリの先頭セクタに書き込んでおき、起動する度に当該プログラムを実行する必要がある。したがって、このフラッシュメモリでは、先頭セクタは本来の目的には使用できないため、実効的に利用可能なメモリ容量が減少してしまう。また、起動してから通常の動作を開始できるまでに時間がかかるため、このフラッシュメモリは、モバイル機器のように消費電力を低減する目的で頻繁に電源遮断を行うようなアプリケーションには不向きである。
【０００８】
また、記憶装置に専用のテスト回路を内蔵することで、製品出荷時のテスト時間の短縮などが可能となる。しかし、製品出荷後には、当該テスト回路は不要となるため、高機能なテスト回路は記憶装置の製造コストの上昇を招く。
【０００９】
本発明の一形態の課題は、新規な半導体装置（例えば、リコンフィギャラブル回路、記憶装置、冗長回路等）、または新規なその駆動方法、または新規なそのテスト方法などを提供することにある。例えば、本発明の一形態の課題は、コンフィギュレーションが容易なリコンフィギャラブル回路を提供すること、または、記憶装置の冗長回路として好適なリコンフィギャラブル回路を提供すること、または、冗長回路を備えつつも、起動時間が短縮された記憶装置を提供すること、または、不良メモリセルを冗長メモリセルへの置換を可能にしつつ、メモリ容量を有効に利用することが可能な記憶装置を提供すること、または、テスト回路を備えつつも、製造コストを抑えることが可能な記憶装置を提供することにある。
【００１０】
なお、複数の課題の記載は、互いの課題の存在を妨げるものではない。なお、本発明の一態様は、これらの課題の全て解決する必要はない。また、列記した以外の課題が、明細書、図面、請求項などの記載から、自ずと明らかとなるものであり、これらの課題も本発明の一形態の課題となり得る。
【課題を解決するための手段】
【００１１】
少なくとも１つのプログラマブル・ロジック・エレメントを備えており、プログラマブル・ロジック・エレメントは、第１乃至第ｋのロジック回路と（ｋは２以上の整数）、第１乃至第ｋのコンフィギュレーション・メモリと、プログラム可能なルックアップテーブルと、レジスタと、マルチプレクサと、を有し、レジスタは、ルックアップテーブルから出力されるデータを格納し、マルチプレクサは、ルックアップテーブルから出力されるデータ、またはレジスタから出力されるデータを選択して出力し、第１乃至第ｋのロジック回路は、それぞれ、第１乃至第ｋのデータと、第１乃至第ｋのコンフィギュレーション・メモリから出力される第１乃至第ｋのコンフィギュレーション・データとの排他的否定論理和を求め、演算結果を第ｋ＋１乃至第２ｋのデータとして出力し、ルックアップテーブルは、第ｋ＋１乃至第２ｋのデータ、および第２ｋ＋１のデータの論理演算を行い、演算結果を第２ｋ＋２のデータとして出力することを特徴とするリコンフィギャラブル回路である。
【００１２】
本発明の一形態は、少なくとも１つのプログラマブル・ロジック・エレメントを備えており、プログラマブル・ロジック・エレメントは、第１乃至第ｋ＋１のロジック回路と（ｋは２以上の整数）、第１乃至第ｋのコンフィギュレーション・メモリと、プログラム可能なルックアップテーブルと、レジスタと、マルチプレクサと、を有し、レジスタは、ルックアップテーブルから出力されるデータを格納し、マルチプレクサは、ルックアップテーブルから出力されるデータ、またはレジスタから出力されるデータを選択して出力し、第１乃至第ｋのロジック回路は、それぞれ、第１乃至第ｋのデータと、第１乃至第ｋのコンフィギュレーション・メモリから出力される第１乃至第ｋのコンフィギュレーション・データとの排他的否定論理和を演算し、演算結果を第ｋ＋１乃至第２ｋのデータとして出力し、第ｋ＋１のロジック回路は、第ｋ＋１乃至第２ｋのデータ、および第２ｋ＋１のデータの論理演算を行い、演算結果を第２ｋ＋２のデータとして出力し、ルックアップテーブルに第ｋ＋１乃至第２ｋのデータが入力されるリコンフィギャラブル回路である。
【００１３】
複数のメモリセルを有するメモリセルアレイを有するメモリ部と、冗長回路と、を有し、メモリ部は、複数のメモリセルが配列されているメモリセルアレイと、論理アドレスにより指定された少なくとも１つのメモリセルを選択状態にして、データの読み出しおよび書き込みを行う機能を有する周辺回路と、を有し、メモリセルアレイは、２ｎ個（ｎは１以上の整数）のブロックを含む第１の記憶エリアと、第１の記憶エリアの不良メモリセルが存在する不良ブロックと置き換えられるｍ個（ｍは整数、１≦ｍ＜２ｎ）の冗長ブロックを含む第２の記憶エリアと、を有し、第１および第２の記憶エリアの物理アドレスは、上位ｍビットが冗長アドレスとして機能し、２ｎ個のブロックの物理アドレスは、それぞれ、当該論理アドレスの上位ビットに冗長アドレスを追加した構造を有し、２ｎ個のブロックの冗長アドレスは、同じであり、ｍ個の冗長ブロックの冗長アドレスは、互いに異なり、かつ、第１の記憶エリアの冗長アドレスとも異なり、冗長回路は、第１の記憶エリアの不良ブロックの論理アドレスを記憶するメモリを有し、メモリに記憶されている論理アドレスと、アクセス要求された第２の記憶エリアの論理アドレスから、冗長アドレスを生成し、周辺回路は、冗長回路で生成された冗長アドレスが、ｍ個の冗長ブロックの冗長アドレスのいずれかと一致する場合、該当する冗長ブロックを選択する機能を有する記憶装置である。
【発明の効果】
【００１４】
本発明の一形態により、新規な半導体装置、または、新規なその駆動方法、または、新規なそのテスト方法などを提供することが可能になる。例えば、本発明の一形態により、コンフィギュレーションが容易なリコンフィギャラブル回路を提供すること、記憶装置の冗長回路として好適なリコンフィギャラブル回路を提供すること、または、冗長回路を備えつつも、起動時間が短縮された記憶装置を提供すること、または、不良メモリセルを冗長メモリセルへの置換を可能にしつつ、メモリ容量を有効に利用することが可能な記憶装置を提供すること、または、テスト回路を備えつつも、製造コストを抑えることが可能な記憶装置を提供することが、可能になる。
【００１５】
なお、これらの効果の記載は、他の効果の存在を妨げるものではない。なお、本発明の一形態は、必ずしも、これらの効果の全てを有する必要はない。また、本発明の形態について、上記以外の課題、効果、および新規な特徴については、本明細書の記載および図面から自ずと明らかになるものである。
【図面の簡単な説明】
【００１６】
【図１】プログラマブル・ロジック・エレメント（ＰＬＥ）の構成の一例を示す回路図。
【図２】ＰＬＥの構成の一例を示す回路図。
【図３】リコンフィギャラブル回路の構成の一例を示す平面図。
【図４】記憶装置の構成の一例を示すブロック図。
【図５】記憶装置のアドレス空間の構成の一例を説明する図。
【図６】記憶装置に組み込まれたリコンフィギャラブル回路（ＲＣＦＧＣ）の構成の一例を示す図。
【図７】ＣＰＵの構成の一例を示すブロック図。
【図８】無線チップの構成の一例を示すブロック図。
【図９】Ａ−Ｆ：ＲＦＩＤタグの使用例を示す図。
【図１０】Ａ−Ｆ：電子機器等の一例を示す図。
【発明を実施するための形態】
【００１７】
本明細書において、半導体装置とは半導体素子（トランジスタ、ダイオード等）を含む回路、及び同回路を有する装置をいう。また、半導体特性を利用することで機能しうる装置全般をいう。例えば、集積回路、集積回路を備えたチップは、半導体装置である。なお、記憶装置、表示装置、発光装置、照明装置、電子機器、電気機器、および機械装置等は、本発明の一形態に係る半導体装置を有している場合がある。
【００１８】
以下に、図面を用いて、本発明の実施の形態について詳細に説明する。ただし、本発明は以下の説明に限定されず、本発明の趣旨およびその範囲から逸脱することなくその形態および詳細を様々に変更し得ることは、当業者であれば容易に理解される。したがって、本発明は、以下に示す実施の形態の記載内容に限定して解釈されるものではない。
【００１９】
また、発明の実施の形態の説明に用いられる図面において、同一部分または同様な機能を有する部分には同一の符号を付し、その繰り返しの説明は省略する。
【００２０】
また、以下に複数の本発明の実施の形態を示すが、互いの実施の形態を適宜組み合わせることが可能である。また、１つの実施の形態の中に、いくつかの構成例が示される場合は、互いの構成例を適宜組み合わせることが可能である。
【００２１】
（実施の形態１）
本実施の形態では、リコンフィギャラブル回路について説明する。
【００２２】
まず、ＰＬＥの構成例について説明する。ＰＬＥは、リコンフィギャラブル回路のロジック部の基本論理ブロック（基本ロジックセル）を構成する。ＰＬＥ自体もリコンフィギャラブル回路であり、少なくとも、複数の入力値に対して１のデータ値を出力するルックアップテーブル（ＬＵＴ）、データを格納するレジスタ、およびコンフィギュレーション・データを格納するコンフィギュレーション・メモリを有する。
【００２３】
リコンフィギャラブル回路は、例えば、複数のＰＬＥがアレイ状に配列されたロジックアレイと、配線、配線とＰＬＥとの接続を制御するスイッチ回路等を有する。リコンフィギャラブル回路には、ロジックアレイ部を複数設けることができる。後述するように、ロジックアレイでは、隣接するＰＬＥのレジスタをカスケード接続することで、レジスタ・チェーンが構成される。また、ＰＬＥにキャリー・ロジック回路を設けた場合、キャリー・ロジック回路をカスケード接続することで、キャリー・チェーンを構成することができる。以下、図１、図２を参照して、ＰＬＥの構成例について説明する。
【００２４】
＜＜ＰＬＥの構成例１＞＞
図１は、ＰＬＥの構成の一例を示す回路図である。
【００２５】
図１に示すように、ＰＬＥ１１は、ＬＵＴ１０１、レジスタ（ＲＥＧ）１１０、マルチプレクサ（ＭＵＸ）１２１、ＭＵＸ１２２、コンフィギュレーション・メモリ（ＣＭ）１３１、ＣＭ１３２、ロジック回路１４０―１４３、およびＣＭ１５０―１５３を有する。
【００２６】
ＰＬＥ１１は、４入力（ＩＮ［０］―ＩＮ［３］）、２出力（ＰＬＥＯＵＴ、ＲＥＧＯＵＴ）のロジック回路である。入力、出力の数はこれに限定されるものでななく、入力は２以上、出力は１以上であればよい。
【００２７】
ＬＵＴ１０１は、入力データ（Ａ［０］―Ａ［３］）、およびデータＣＭＰＩＮに対して、データＹを出力する。ＬＵＴ１０１の演算機能は、その内部のＣＭに格納されたコンフィギュレーション・データにより設定される。つまり、ＬＵＴ１０１はプログラム可能なロジック回路であって、ＣＭに格納されているコンフィギュレーション・データを書き換える、あるいは、ＣＭから読み出すコンフィギュレーション・データを変更することで、ＬＵＴ１０１のロジック回路としての機能を変更することが可能である。
【００２８】
データＹは、データＣＭＰＯＵＴとしてＰＬＥ１１から出力される。ＣＭＰＯＵＴは、次段のＰＬＥ１１のＬＵＴ１０１にＣＭＰＩＮとして入力される。ＣＭＰＩＮは、前段のＰＬＥ１１のＬＵＴ１０１からの出力データＣＭＰＯＵＴ（Ｙ）に対応するデータである。なお、ＬＵＴ１０１に入力されるデータＣＭＰＩＮは、前段のＰＬＥ１１の出力データＣＭＰＯＵＴに限定されるものではなく、ＰＬＥ１１の回路構成によって変更すればよく、例えば、外部から入力されるデータや、他のＰＬＥ１１の出力データＰＬＥＯＵＴとすることができる。
【００２９】
なお、上述したように、データＣＭＰＯＵＴを、ＣＭＰＯＵＴと省略して記載する場合がある。これは、他のデータ、信号、回路、素子、および配線などについても同様である。
【００３０】
ＭＵＸ１２１、１２２は、ＣＭ１３１、１３２に格納されているコンフィギュレーション・データに応じて、２つの入力データのうち一方を出力する。ＭＵＸ１２２には、ＭＵＸ１２１、およびＲＥＧ１１０の出力が入力され、いずれか一方を、ＰＬＥ１１の出力データＰＬＥＯＵＴとして出力する。つまり、ＭＵＸ１２２は、ＰＬＥＯＵＴをクロック信号ＣＬＫに対する同期出力、もしくは非同期出力とする機能を有する。
【００３１】
また、ＲＥＧ１１０の出力データＲＥＧＯＵＴは、次段のＰＬＥ１１のＭＵＸ１２１の入力データＲＥＧＩＮとすることができる。このような接続構造により、複数のＲＥＧ１１０がカスケード接続された、レジスタ・チェーン（シフトレジスタ）が構成されている。ＭＵＸ１２１及びＲＥＧ１１０はレジスタ・チェーン・ロジック回路を構成しており、ＭＵＸ１２１は、ＰＬＥ１１の出力データＲＥＧＯＵＴを、ＬＵＴ１０１の出力データＹ、またはレジスタ・チェーンの入力データＲＥＧＩＮに切り換える機能を有する。
【００３２】
ＰＬＥ１１の入力データ（ＩＮ［０］―ＩＮ［３］）は、それぞれ、ロジック回路１４０―１４３に入力される。ロジック回路１４０―１４３は、ＣＭ１５０―１５３から出力されるコンフィギュレーション・データとＩＮ［０］―ＩＮ［３］を論理演算して、データＡ［０］―Ａ［３］を出力する。
【００３３】
ロジック回路１４０は、ＩＮ［０］と同じ論理値、もしくは、それを反転した論理値を出力する機能を有する。ここでは、ロジック回路１４０を、２入力の排他的否定論理和回路（ＸＮＯＲ）で構成している。ロジック回路１４０（ＸＮＯＲ）の一方の入力は、ＩＮ［０］であり、他方の入力は、ＣＭ１５０の出力である。ＣＭ１５０の出力とは、ＣＭ１５０に格納されているコンフィギュレーション・データになる。ロジック回路１４０の出力の論理値は、ＣＭ１５０に格納されているコンフィギュレーション・データにより決定される。
【００３４】
他の、ロジック回路１４１―１４３も、ロジック回路１４０と同様である。以下では、ロジック回路１４０―１４３を、ＸＮＯＲ［０］―ＸＮＯＲ［３］と呼び、ＣＭ１５０―１５３をＣＭ［０］―ＣＭ［３］と呼ぶ場合がある。
【００３５】
ＸＮＯＲ［０］―ＸＮＯＲ［３］は、全ての入力が同じ論理値の場合”１”を出力し、それ以外は”０”を出力するロジック回路である。よって、ＣＭ［０］―ＣＭ［３］に格納されているコンフィギュレーション・データが、”１”の場合、Ａ［０］―Ａ［３］は、ＩＮ［０］―ＩＮ［３］と同じ論理値となり、それが”０”の場合、Ａ［０］―Ａ［３］は、ＩＮ［０］―ＩＮ［３］を反転した論理値となる。
【００３６】
このように、ＰＬＥ１１は、入力データＩＮ［０］―ＩＮ［３］の論理値を反転したデータを内部で生成することができるので、ＰＬＥ１１の出力を反転した信号の生成が不要になる。例えば、２つのＰＬＥ１１において、一方のＣＭ［０］―ＣＭ［３］に、”１”を格納し、他方には”０”を格納し、これらのＰＬＥ１１に、同じデータがＩＮ［０］―ＩＮ［３］として入力される場合、一方のＰＬＥ１１では、ＩＮ［０］―ＩＮ［３］を論理演算し、他方のＰＬＥ１１では入力ＩＮ［０］―ＩＮ［３］の反転信号を論理演算することができる。そのため、ＰＬＥ１１を用いることで、リコンフィギャラブル回路のコンフィギュレーションが簡単化される。
【００３７】
また、ＰＬＥ１１の具体的な回路構成例として、ＬＵＴ１０１を入力データ（Ａ［０］―Ａ［３］、ＣＭＰＩＮ）の論理積を演算するＡＮＤ回路となるように設定する。これにより、ＰＬＥ１１は、ＩＮ［０］―ＩＮ［３］が、それぞれ、ＣＭ［０］―ＣＭ［３］に格納されているコンフィギュレーション・データと一致しているか、否かを検出することが可能になる。
【００３８】
ＩＮ［０］―ＩＮ［３］の論理値が、それぞれ、ＣＭ［０］―ＣＭ［３］のコンフィギュレーション・データと一致していれば、Ａ［０］―Ａ［３］は”１”となり、かつ、ＣＭＰＩＮが”１”であれば、ＬＵＴ１０１の出力データＹ（ＣＭＰＯＵＴ）が”１”となる。他方、ＩＮ［０］―ＩＮ［３］の論理値のいずれが、ＣＭ［０］―ＣＭ［３］のコンフィギュレーション・データと異なっていると、該当するＡ［０］―Ａ［３］が”０”となるため、ＣＭＰＩＮの論理値に関わらずＣＭＰＯＵＴは”０”となる。つまり、ＣＭＰＯＵＴの論理値は、ＩＮ［０］―ＩＮ［３］の論理値が対応するＣＭ［０］―ＣＭ［３］のコンフィギュレーション・データとすべて一致しているか、否かを表している。したがって、ＰＬＥ１１を、４ビットの入力データ（ＩＮ［０］―ＩＮ［３］）に関する４ビットの一致回路として動作させることができる。
【００３９】
また、上述したように、複数のＰＬＥ１１を含むリコンフィギャラブル回路の場合、隣接する複数のＰＬＥ１１において、ＬＵＴ１０１をカスケード接続することで、より多くのビット数の入力データに対する一致回路として機能させることができる。
【００４０】
＜＜ＰＬＥの構成例２＞＞
図２は、ＰＬＥの構成の一例を示す回路図である。
【００４１】
図２に示すように、ＰＬＥ１２は、ＰＬＥ１１に、キャリー・ロジック回路１０２、およびロジック回路１６０を追加した回路に相当する。また、ＰＬＥ１２においても、ロジック回路１４０―１４３を排他的否定論理和回路で構成することで、ＰＬＥ１１と同様に、ＰＬＥ１２のコンフィギュレーションを簡単化することができる。
【００４２】
キャリー・ロジック回路１０２は、キャリー信号を生成する機能を有する。キャリー・ロジック回路１０２では、ＬＵＴ１０１からの入力データＹと、前段のキャリー・ロジック回路１０２からの入力データＣＡＲＲＹＩＮを論理演算して、キャリー信号（ＣＡＲＲＹＯＵＴ）を生成し、出力する。ＣＡＲＲＹＯＵＴは、次段のＰＬＥ１２のキャリー・ロジック回路１０２に、ＣＡＲＲＹＩＮとして入力される。つまり、複数のＰＬＥ１２でなるロジックアレイにおいて、キャリー・ロジック回路１０２がカスケード接続され、キャリー・チェーンが構成される。キャリー・チェーンを設けることで、複数のＰＬＥ１２により、加算回路などの算術演算回路を構成することが容易になる。なお、ＰＬＥ１１（図１）にも、ＰＬＥ１２と同様に、キャリー・ロジック回路１０２を設けるようにしてもよい。
【００４３】
ロジック回路１６０は、Ａ［０］―Ａ［３］およびＣＭＰＩＮを論理演算し、その結果をデータＣＭＰＯＵＴとして出力する。ＣＭＰＯＵＴは、次段のＰＬＥ１２に、データＣＭＰＩＮとして入力される。つまり、複数のＰＬＥ１２でなるロジックアレイにおいて、複数のロジック回路１６０がカスケード接続されている。
【００４４】
なお、ここでは、ロジック回路１６０をＡＮＤ回路で構成しているが、これに限定されるものではない。図２の例では、ロジック回路１６０の入力データ（Ａ［０］―Ａ［３］、ＣＭＰＩＮ）の論理値が全て”１”であれば、ＣＭＰＯＵＴは”１”となり、それ以外の場合は、ＣＭＰＯＵＴは”０”となる。
【００４５】
図２に示すように、ロジック回路１６０をＡＮＤ回路とすることで、ロジック回路（１４０―１４３、および１６０で構成される回路）を、ＩＮ［０］―ＩＮ［３］の論理値が、対応するＣＭ［０］―ＣＭ［３］のコンフィギュレーション・データと全て一致しているかを判定する一致回路として機能させることが可能になる。
【００４６】
１つのＰＬＥ１２において、ＣＭ［０］―ＣＭ［３］に格納されているコンフィギュレーション・データが、全て”０”の場合を例に、この一致回路の動作を説明する。この場合は、ロジック回路１６０には、ＣＭＰＩＮとして”１”が入力される。ＩＮ［０］―ＩＮ［３］が全て”０”であれば、ＸＮＯＲ［０］―ＸＮＯＲ［３］の出力データＡ［０］―Ａ［３］は全て”１”となる。よって、ロジック回路１６０において、入力データ（ＣＭＰＩＮ、Ａ［０］―Ａ［３］）が”１”であるため、その出力データＣＭＰＯＵＴは”１”となる。また、ＩＮ［０］―ＩＮ［３］のいずれかが”１”であれば、ロジック回路１６０の出力データＣＭＰＯＵＴは”０”となる。つまり、ＣＭＰＯＵＴの論理値は、ＩＮ［０］―ＩＮ［３］の論理値が対応するコンフィギュレーション・データと全て一致しているか否かを表している。このように、ＰＬＥ１２も、ＰＬＥ１１と同様に、４ビットの入力（ＩＮ［０］―ＩＮ［３］）に関する４ビットの一致回路として動作させることができる。
【００４７】
また、ＰＬＥ１２を用いたロジックアレイにおいて、複数のロジック回路１６０をカスケード接続することで、より多くのビット数の入力データに対して、対応するコンフィギュレーション・メモリに格納されているデータと一致しているか、否かを検出することが可能になる。
【００４８】
＜＜リコンフィギャラブル回路の構成例＞＞
図３は、リコンフィギャラブル回路の構成例を示す平面図である。リコンフィギャラブル回路１００は、ロジックアレイ１７０、ＰＬＬ（ｐｈａｓｅ  ｌｏｃｋ  ｌｏｏｐ）１７２、および入出力部（ＩＯ）１８０、を有する。
【００４９】
ロジックアレイ１７０は、複数のＰＬＥ１７１、および配線リソース１７５を有する。ＰＬＥ１７１に、本実施の形態に係る他のＰＬＥを用いることができる。配線リソース１７５は、配線及び、配線とＰＬＥ１７１間の接続を制御するプログラム可能なスイッチ回路を含む。ＰＬＬ１７２は、クロック信号を生成する機能を有する。ＩＯ１８０は、図示のように複数の入出力回路１８１がアレイ状に配列されており、配線リソース１７５のスイッチ回路により、ＰＬＥ１７１は、ＩＯ１８０のいずれかの入出力回路１８１に接続することができる。
【００５０】
もちろん、リコンフィギャラブル回路１００の構成は図３に限定されるものではない。例えば、ＰＬＥ１７１のコンフィギュレーション・メモリを駆動するための周辺回路（例えば、ドライバ回路、コントロール回路）を設けてもよい。或いは、ＰＬＬ１７２を設けずに、外部からクロック信号を入力するようにしてもよい。
【００５１】
（実施の形態２）
本実施の形態では、記憶装置、特に冗長回路を備えた記憶装置について説明する。
【００５２】
図４は、記憶装置の構成の一例を示すブロック図である。記憶装置２０は、メモリ部２００および、リコンフィギャラブル回路（ＲＣＦＧＣ）２５０を有する。ＲＣＦＧＣ２５０は冗長回路として機能する。
【００５３】
＜＜メモリ部＞＞
メモリ部２００はメモリセルアレイ２１０および周辺回路２２０を有する。メモリセルアレイ２１０は、複数のメモリセルがアレイ状に配列されている回路である。各メモリセルは、アドレスによりその位置を特定することが可能となっている。メモリセルアレイ２１０は、外部からの制御信号（ＣＥ、ＷＥ，ＲＥ）やアドレスデータＡＤＤＲ等に従って、メモリセルアレイ２１０に対するデータの書き込み、読み出し等を制御する機能、外部とのデータのやり取りを制御する機能を有する。
【００５４】
メモリ部２００の構造は特段の制約はなく、例えば、ＳＲＡＭ、ＤＲＡＭ、フラッシュメモリ（ＮＯＲ型、ＮＡＮＤ型）、相変化ＲＡＭ（ＰＲＡＭ）、磁気抵抗ＲＡＭ（ＭＲＡＭ）、抵抗変化型ＲＡＭ（ＲｅＲＡＭ）等とすることができる。
【００５５】
周辺回路２２０の回路構成や信号経路はメモリセルアレイ２１０の回路構成によって異なる。図４の例では、メモリセルアレイ２１０は、コントロール回路２２１、行ドライバ回路２２２、列ドライバ回路２２３を有する。また、周辺回路２２０には、外部から、アドレスデータＡＤＤＲ、書き込みデータＷＤＡＴＡ、制御信号（ＣＥ、ＷＥ、ＲＥ）が入力されている。ＣＥは、チップイネーブル信号であり、ＷＥは書き込みイネーブル信号であり、ＲＥは読み出しイネーブル信号である。これらの信号すべてが必要というわけではなく、また他の信号を入力してもよい。
【００５６】
コントロール回路２２１は、メモリ部２００の制御を行う機能を有し、外部からの制御信号等に従い、周辺回路２２０に設けられている他の回路（２２２、２２３）の制御信号を生成し、出力する。図４の例では、ＣＥ、ＷＥ、ＲＥがコントロール回路２２１に入力される。
【００５７】
行ドライバ回路２２２は、行配線（具体的には、ワード線）の電位を制御するドライバ回路である。行ドライバ回路２２２は、具体的には、ＡＤＤＲで指定されたメモリセルアレイ２１０の行を選択状態にする信号を生成する機能を有する。行ドライバ回路２２２には、例えば、ＡＤＤＲをデコードする行デコーダや、ＡＤＤＲを保持するアドレスバッファなどを設けることができる。
【００５８】
列ドライバ回路２２３は、メモリセルアレイ２１０に書き込むデータＷＤＡＴＡが入力され、また、読み出したデータＲＤＡＴＡを出力する。列ドライバ回路２２３は、列配線（具体的には、ビット線）の電位を制御するドライバ回路であり、書き込みあるいは読み出し要求に応じて、ＡＤＤＲ等で指定されたメモリセルアレイ２１０の列のビット線の電位を制御する機能を有する。例えば、列ドライバ回路２２３には、ＡＤＤＲをデコードするアドレスデコーダ、ＷＤＡＴＡに対応する電位をビット線に与える書き込み回路、センスアンプ、メモリセルアレイ２１０からセンスアンプを介して読み出した信号をＲＤＡＴＡとして出力する読み出し回路等を設けることができる。
【００５９】
メモリセルアレイ２１０は、通常のアクセス対象となる複数のブロックでなる通常エリアと、冗長エリアとを有する。冗長エリアは１つまたは複数のブロックでなり、このブロックは通常エリアに不良ブロックがある場合、それと置き換わるブロックである。通常エリアおよび冗長エリアの各ブロックは複数のメモリセルでなる。
【００６０】
ＲＣＦＧＣ２５０は、実施の形態１のＰＬＥを備えており、使用に応じてその回路構成を変更することができる。ＲＣＦＧＣ２５０は、例えば、テスト工程において、メモリ部２００のテスト回路として機能させ、出荷後は、欠陥のあったメモリセルを救済するための冗長回路として機能させることができる。以下、図５、および図６を用いて、ＲＣＦＧＣ２５０の構成例、およびその動作例を説明する。
【００６１】
＜アドレス空間＞
まず、図５を用いて、メモリ部２００のアドレス空間について説明する。図５は、ＲＣＦＧＣ２５０の構成例、およびメモリセルアレイ２１０のアドレス空間の構成例を説明する図である。
【００６２】
なお、ここでは、メモリセルアレイ２１０の通常エリア２１１および冗長エリア２１２のブロックの単位をメモリセルアレイ２１０の１行としている。また、アドレス空間のブロックの単位を１行とし、メモリセルアレイ２１０の行数を１８とし、通常エリア２１１の行数を１６とし、冗長エリア２１２の行数を２としている。図５に示すように、メモリセルアレイ２１０は、１８のブロックでなり、うち、通常エリア２１１は１６個のブロックでなり、冗長エリア２１２は２つの冗長ブロックでなる。
【００６３】
ここでは、メモリセルアレイ２１０の物理アドレスのアドレス長を６ビットとしている。通常エリア２１１の物理アドレスの下位１乃至４ビットが、記憶装置２０（メモリセルアレイ２１０）の論理アドレスに相当する。通常エリア２１１の物理アドレスは、”００００００”、”０００００１”、”００００１０”、・・・、”００１１１０”、”００１１１１”である。他方、冗長エリア２１２の物理アドレスは、”０１ＸＸＸＸ”、”１０ＸＸＸＸ”である。”ＸＸＸＸ”は任意のアドレスを表している。このように冗長ブロックの物理アドレスの下位４ビットを特定のアドレスにする必要がないのは、周辺回路２２０において、アドレスデータのデコードを行わずに、アクセスすべき冗長ブロックを選択できるからである。これについては後述する。そのため、冗長エリア２１２の２つの冗長ブロックの下位４ビットのアドレス”ＸＸＸＸ”は、共通でもよいし、異なっていてもよい。
【００６４】
メモリセルアレイ２１０の物理アドレスの上位２ビットは、各ブロックが、通常エリア２１１のものか冗長エリア２１２のものであるかを識別するデータであり、ここでは冗長アドレスと呼ぶことにする。通常エリア２１１の冗長アドレスは”００”で、全てのブロックで共通である。他方、冗長エリア２１２では、各冗長ブロックの冗長アドレスは互いに異なり、かつ、通常エリア２１１の冗長アドレスとも異なる。ここでは、冗長エリア２１２の冗長アドレスは、”０１”，”１０”としている。
【００６５】
なお、図５の例では、通常エリア２１１のブロック数を１６＝２４とし、冗長エリア２１２のブロック数を２としたが、これに限定されるものではない。一般化すると、通常エリア２１１のブロック数を２ｎ（ｎは１以上の整数）とし、冗長エリア２１２のブロック数をｍ（ｍは整数、１≦ｍ＜２ｎ）とすることができる。この場合、論理アドレスのビット長はｎとなり、冗長アドレスのビット長はｍとなる。通常エリア２１１の冗長アドレスは”０”がｍ個並んだものになり、その物理アドレスは、ｎビットの論理アドレスの上位ビットに、ｍ個の”０”を追加したものになる。また、ｍ個の冗長ブロックの冗長アドレスは、互いに異なり、いずれか１つのビットが”１”であり他のビットが”０”となる。例えば、冗長ブロックが３個の場合、それらの冗長アドレスは、”００１”、”０１０”、”１００”となる。
【００６６】
メモリ部２００のアドレス空間を図５のようにすることで、通常エリア２１１の不良ブロックを冗長ブロックと置き換えるためのアドレス変換用のテーブルを保存するメモリ部を設けることが不要になる。図６の例では、不良ブロックにアクセス要求があった場合、ＲＣＦＧＣ２５０において、イネーブル信号（ＲＡＤＥ）を生成することで、冗長ブロックがアクセスされるようにしている。図６を参照して、ＲＣＦＧＣ２５０の構成例、および記憶装置２０の動作例について説明する。
【００６７】
＜＜リコンフィギャラブル回路（ＲＣＦＧＣ）の構成例＞＞
図６の例では、メモリセルアレイ２１０に２つの冗長ブロックを設けたため、メモリセルアレイ２１０は２個の不良ブロックの発生が許容される。冗長ブロックの数に対応して、ＲＣＦＧＣ２５０は、少なくとも２つのＰＬＥ１２を有する。記憶装置２０が通常動作を行っている間は、ＲＣＦＧＣ２５０は冗長回路として機能する。ここでは、ＲＣＦＧＣ２５０は、アクセス要求された論理アドレスが、不良ブロックのアドレスであるか否かを検出し、その検出結果を、冗長アドレスイネーブル信号ＲＡＤＥ［１：０］として、メモリ部２００の周辺回路２２０に出力する。
【００６８】
ここでは、２つのＰＬＥ１２のうち、一方をＰＬＥ［０］と呼び、他方をＰＬＥ［１］と呼ぶ場合がある。ＰＬＥ［０］、ＰＬＥ［１］のＣＭ［０］―ＣＭ［３］には、互いに異なる不良ブロックの論理アドレスが格納されている。ここでは、ＣＭ［０］―ＣＭ［３］に格納されているコンフィギュレーション・データは、論理アドレス（ＡＤＤＲ［３：０］）の最上位ビット（第４ビット）から最下位ビット（第１ビット）のデータとする。ＰＬＥ［０］、ＰＬＥ［１］には、アクセス要求があった論理アドレスが、ＡＤＤＲ［３］―ＡＤＤＲ［０］として入力される。ＡＤＤＲ［３］―ＡＤＤＲ［０］は、それぞれ論理アドレスの最上位ビット（第４ビット）から最下位ビット（第１ビット）のデータである。ＰＬＥ［０］は、ＡＤＤＲ［３］―ＡＤＤＲ［０］が対応するＣＭ［３］―ＣＭ［０］に保存されているアドレスデータと全て一致している場合、ＲＡＤＥ［０］として”１”を出力し、それ以外の場合は”０”を出力する。ＰＬＥ［１］でも同様である。この例では、ＲＣＦＧＣ２５０で不良ブロックへのアクセスが検出された場合、ＲＡＤＥ［１：０］は、”１０”または”０１”となり、それ以外の場合は、”００”となる。周辺回路２２０では、ＲＡＤＥ［１：０］により、通常エリア２１１にアクセスするか、冗長エリア２１２にアクセスするかが判定される。以下、具体例を挙げて、記憶装置２０が通常動作しているときのＲＣＦＧＣ２５０の動作例を説明する。
【００６９】
＜記憶装置の通常動作＞
ここでは、論理アドレス”０１００”および”１０１１”のブロックが不良ブロックであり、これらの冗長ブロックの物理アドレスを”０１ＸＸＸＸ”、”１０ＸＸＸＸ”とする。ＰＬＥ［０］のＣＭ［０］―ＣＭ［３］には、不良ブロックの論理アドレス”０１００”が格納され、ＰＬＥ［１］のＣＭ［０］―ＣＭ［３］には、不良ブロックの論理アドレス”１０１１”が格納されている（図６参照）。また、論理アドレスが４ビットのデータであるため、ＲＡＤＥ［１：０］の各ビットのデータを生成するには、１段のＰＬＥ１２を使用すればよいので、ＰＬＥ［０］、ＰＬＥ［１］には、ＣＭＰＩＮとして”１”のデータが入力される。なお、不良ブロックが１つ、あるいは存在しない場合、不良ブロックの論理アドレスを格納しないＰＬＥ１２には、ＣＭＰＩＮとして”０”を入力する。
【００７０】
正常なブロックがアクセスされる場合、例えば、論理アドレス”０００１”のブロックにアクセス要求がある場合、ＰＬＥ［０］、ＰＬＥ［１］には、ＡＤＤＲ［３：０］として”０００１”が入力されるため、ＲＣＦＧＣ２５０から出力されるＲＡＤＥ［１：０］は”００”となる。ＲＡＤＥ［１：０］が”００”の場合、周辺回路２２０では、ＡＤＤＲ［３：０］をデコードし、通常エリア２１１の論理アドレス”０００１”のブロックを選択する。
【００７１】
また、不良ブロックがアクセスされる場合、具体的には、ＡＤＤＲ［３：０］が”０１００”、”１０１１”の場合、ＲＡＤＥ［１：０］は”０１”、”１０”となる。周辺回路２２０は、ＲＡＤＥ［１：０］が”００”ではない場合、ＲＡＤＥ［１：０］と同じ冗長アドレスを有する不良ブロックを選択する。ＲＡＤＥ［１：０］が”０１”の場合、不要ブロック”０１ＸＸＸＸ”が選択状態となり、”１０”の場合、不良ブロック”１０ＸＸＸＸ”が選択状態となる。
【００７２】
このように、メモリセルアレイ２１０のアドレス空間を図５で示したような構造とすることにより、ＲＣＦＧＣ２５０（冗長回路）で、アクセス要求のあったアドレスが不良ブロックの論理アドレスに一致しているか否かを検出し、その検出結果を示すデータ（ＲＡＤＥ）を用いることで、アドレス変換テーブルを使用せずに、冗長ブロックへのアクセスが可能となる。そのため、ＲＣＦＧＣ２５０は高速なアドレス変換が可能である。
【００７３】
ここでは、論理アドレスのビット長を４としたがこれに限定されるものではない。ビット長が４を超える場合、ＲＡＤＥ［０］、ＲＡＤＥ［１］の生成のため、それぞれ、ロジック回路１６０がカスケード接続された複数段のＰＬＥ１２を用いればよい。また、冗長ブロックの数は２に限定するものではない。冗長ブロックの数により冗長アドレスイネーブル信号（ＲＡＤＥ）のビット長が決まるため、ＲＡＤＥの各ビットのデータを生成できるように、複数のＰＬＥ１２の接続構造を決定すればよい。
【００７４】
また、メモリセルアレイ２１０をサブアレイにし、メモリ部２００に複数のサブアレイを設けることでメモリ容量を増やすことができる。この場合、各サブアレイに対してＲＡＤＥを出力可能になるように、ＲＣＦＧＣ２５０の回路構成を設定すればよい。
【００７５】
＜記憶装置のテスト＞
ＲＣＦＧＣ２５０は、記憶装置２０（メモリセルアレイ２１０）のテスト回路として動作させることが可能である。メモリセルアレイ２１０のテストは、指定されたアドレスのメモリセルにデータの書き込み、データの読み出しを行い、読み出したデータと期待値とを論理演算し、期待された論理値が得られれば、そのメモリセルは正常と判定され、得られなかった場合は不良と判定される。ここでは、ＲＣＦＧＣ２５０を検査対象となるブロックのアドレスデータ（論理アドレス、冗長アドレス）を生成する回路として動作させ、メモリセルアレイ２１０に書き込むデータの生成、および読み出したデータと期待値との論理演算は、記憶装置２０の外部のコンピュータシステム（例えば、テスタ）で行うこととする。なお、ＲＣＦＧＣ２５０の回路規模に応じて、データの生成および／又は読み出したデータと期待値との論理演算をＲＣＦＧＣ２５０で行うようにしてもよい。
【００７６】
通常エリア２１１をテストする際には、ＲＣＦＧＣ２５０からＲＡＤＥ［１：０］として”００”が周辺回路２２０に出力される。また、ＲＣＦＧＣ２５０は、１６個の論理アドレスを順次生成し、周辺回路２２０に出力する。周辺回路２２０では、ＲＣＦＧＣ２５０で生成された論理アドレスに従い、通常エリア２１１の各ブロックにアクセスして、データの書き込み、データの読み出しを行う。冗長エリア２１２をテストする際には、ＲＣＦＧＣ２５０では、ＲＡＤＥ［１：０］として冗長エリア２１２の冗長アドレスを順次生成する。周辺回路２２０では、ＲＡＤＥ［１：０］に従い、冗長エリア２１２の冗長ブロックにアクセスして、データの書き込み、データの読み出しを行う。
【００７７】
外部のコンピュータシステムでは、メモリセルアレイ２１０の不良ブロックが検出された場合、その論理アドレスが記憶される。通常エリア２１１の不良ブロックの数が２を超えている場合、記憶装置２０は不良品とされる。また、冗長エリア２１２の冗長ブロックが不良の場合も、記憶装置２０は不良品とされる。なお、この場合、通常エリア２１１の不良ブロックの数が冗長エリア２１２の正常な冗長ブロックの数を超えていない場合は、出荷が可能な正常品として扱ってもよい。
【００７８】
テストの終了後、正常品であるが、不良ブロックが存在する記憶装置２０では、ＲＣＦＧＣ２５０のＰＬＥ［０］および／またはＰＬＥ［１］のコンフィギュレーション・メモリ（ＣＭ［０］―ＣＭ［３］）に、外部のコンピュータシステムに記憶された不良ブロックの論理アドレスデータが書き込まれる。
【００７９】
なお、記憶装置２０の通常動作時では、ＰＬＥ［０］、ＰＬＥ［１］において、ＣＭ［０］―ＣＭ［３］、ＸＮＯＲ［０］―ＸＮＯＲ［３］およびロジック回路１６０以外の回路は、冗長回路としての実質的な動作には寄与しないので、このような回路への電源電圧の供給を遮断可能な構成としてもよい。また、ＲＣＦＧＣ２５０において、ＰＬＥ１２毎に電源電圧の供給を遮断可能な構成とし、冗長回路やテスト回路として動作しないＰＬＥ１２への電源電圧の供給を遮断する構成としてもよい。これにより、記憶装置２０の消費電力を削減することができる。
【００８０】
なお、ＲＣＦＧＣ２５０を冗長回路としてのみ動作させることもできる。この場合は、ＲＣＦＧＣ２５０に、ＲＡＤＥの生成に必要な回路のみ設ければよいので、さらに回路規模を縮小することができる。ＰＬＥ［０］、ＰＬＥ［１］には、ＣＭ［０］―ＣＭ［３］、ＸＮＯＲ［０］―ＸＮＯＲ［３］およびロジック回路１６０のみ設けることが可能である。
【００８１】
また、図６の例は、記憶装置２０に設けられる冗長回路の構成の一例であり、冗長回路は、アクセス要求された論理アドレスが不良ブロックの論理アドレスと一致した場合、冗長アドレスイネーブル信号を生成する機能を有していればよい。また、不良ブロックの論理アドレスを格納するメモリは、冗長回路に組み込んでもよいし、別の回路として設けてもよい。
【００８２】
また、図６の例では、ＲＣＦＧＣ２５０のプログラマブル・ロジック・エレメントとして、ＰＬＥ１２を用いたが、これに限定されるものではなく、例えば、ＰＬＥ１１など、実施の形態１に係るプログラマブル・ロジック・エレメントを用いることができる。ＰＬＥ１１を用いる場合、記憶装置２０の通常動作時には、ＣＭ［０］―ＣＭ［３］、ＸＮＯＲ［０］―ＸＮＯＲ［３］およびＬＵＴ１０１以外の回路への電源供給を遮断できるような回路構成とすればよい。
【００８３】
上述したように、記憶回路にリコンフィギャラブル回路を内蔵することで、リコンフィギャラブル回路を、製造過程ではテスト回路として動作させ、出荷後では、不良ブロックを冗長ブロックに置き換えるための冗長回路として動作させることができるため、記憶装置の製造コストの上昇を抑えることができる。
【００８４】
本実施の形態の冗長回路は、不良ブロックのアドレスのみを記憶することで動作可能であるため、全ての論理アドレスを記憶するようなアドレス変換用のメモリ部を設ける必要がない。このため、冗長回路の回路規模が小さくなるため、記憶装置の製造歩留りを向上させることができる。また、このアドレス変換用のメモリ部を制御するプログラムを記憶エリアに格納する必要がなく、よってこのプログラムを実行する必要もなくなる。そのため、記憶エリアの無駄がなく、かつ先頭の記憶エリアを有効に利用することができ、また、起動時間を短縮することができる。
【００８５】
（実施の形態３）
実施の形態１に係るリコンフィギャラブル回路は、デジタル信号処理、ソフトウェア無線、アビオニクス（通信機器、航法システム、自動操縦装置、飛行管理システム等の航空に関する電子機器）、ＡＳＩＣのプロトタイピング、医療用画像処理、音声認識、暗号、バイオインフォマティクス（生物情報科学）、機械装置のエミュレータ、及び電波天文学における電波望遠鏡等、幅広い分野のプロセッサ（例えば、ＣＰＵ、マイクロコントローラ、無線チップ）に用いることができる。
【００８６】
また、実施の形態２に係る記憶装置は、ＵＳＢメモリ、ＳＤメモリーカード、ＳＳＤ（ソリッド  ステート  ドライブ）等の各種の記憶装置として用いることができる。あるいは、様々なプロセッサ（例えば、ＣＰＵ、マイクロコントローラ、無線チップ（例えばＲＦＩＤタグ））のメインメモリとして、ストレージに用いることができる。ＣＰＵコアなどの演算処理部と記憶装置、入出力回路等を１つのＩＣチップに組み込むことで、ＣＰＵチップ（あるいはＣＰＵチップセット）や、マイクロコントローラ、無線チップなどを構成することができる。図７に、ＣＰＵの構成例を示し、図８に、無線チップの構成例を示す。
【００８７】
＜ＣＰＵ＞
図７に示すように、ＣＰＵ１１９０は、ＡＬＵ１１９１（ＡＬＵ：Ａｒｉｔｈｍｅｔｉｃ  ｌｏｇｉｃ  ｕｎｉｔ、演算回路）、ＡＬＵコントローラ１１９２、インストラクションデコーダ１１９３、インタラプトコントローラ１１９４、タイミングコントローラ１１９５、レジスタ１１９６、レジスタコントローラ１１９７、バスインターフェース１１９８、メモリ部１１９９、およびメモリインターフェース１１８９を有している。メモリ部１１９９は、ＣＰＵ１１９０のメインメモリとして機能し、命令やデータが格納される。ＣＰＵ１１９０で扱うデータのビット長は、例えば８ビット、１６ビット、３２ビット、６４ビット等とすることができる。
【００８８】
ＣＰＵ１１９０を構成する回路は、１つのＩＣチップに組み込まれている。メモリ部１１９９に実施の形態２に係る記憶装置を適用することができる。これにより、メモリ部１１９９の製造歩留りを向上できるため、ＣＰＵ１１９０自体の製造歩留りも向上することができる。
【００８９】
バスインターフェース１１９８を介して入力された命令は、インストラクションデコーダ１１９３に入力され、デコードされた後、ＡＬＵコントローラ１１９２、インタラプトコントローラ１１９４、レジスタコントローラ１１９７、タイミングコントローラ１１９５に入力される。
【００９０】
ＡＬＵコントローラ１１９２、インタラプトコントローラ１１９４、レジスタコントローラ１１９７、およびタイミングコントローラ１１９５は、デコードされた命令に基づき、各種制御を行なう。具体的には、ＡＬＵコントローラ１１９２は、ＡＬＵ１１９１の動作を制御するための信号を生成する。また、インタラプトコントローラ１１９４は、プログラム実行中に、外部の入出力装置や、周辺回路からの割り込み要求を、その優先度やマスク状態から判断し、処理する。レジスタコントローラ１１９７は、レジスタ１１９６のアドレスを生成し、ＣＰＵ１１９０の状態に応じてレジスタ１１９６の読み出しや書き込みを行なう。
【００９１】
また、タイミングコントローラ１１９５は、ＡＬＵ１１９１、ＡＬＵコントローラ１１９２、インストラクションデコーダ１１９３、インタラプトコントローラ１１９４、およびレジスタコントローラ１１９７の動作のタイミングを制御する信号を生成する。例えばタイミングコントローラ１１９５は、外部から入力された基準クロック信号ＣＬＫ１を元に、内部クロック信号ＣＬＫ２を生成する内部クロック生成部を備えており、図示のように内部クロック信号ＣＬＫ２がＣＰＵ１１９０の内部回路に供給される。
【００９２】
なお、図７は、ＣＰＵの構成を簡略化して示した一例であり、実際のＣＰＵはその用途によって多種多様な構成を有している。例えば、演算回路やレジスタ等の回路群を一つのコアとし、当該コアを複数含み、それぞれのコアが並列で動作するような構成としてもよい。
【００９３】
＜無線チップ＞
図８に示すように、無線チップ１２００は、アンテナ１２０４、整流回路１２０５、定電圧回路１２０６、復調回路１２０７、変調回路１２０８、ロジック部１２０９、およびメモリ部１２１０を有する。なお、これらの回路は、用途などに合わせて適宜取捨選択することができる。
【００９４】
無線チップ１２００を構成する回路が１つのＩＣチップに組み込まれている。メモリ部１２１０に実施の形態２に係る記憶装置を適用することができる。よって、メモリ部１２１０の製造歩留りが向上されているため、無線チップ１２００自体の製造歩留りを向上することができる。
【００９５】
アンテナ１２０４は、通信器１２０１に接続されたアンテナ１２０２との間で無線信号１２０３の送受信を行うためのものである。データの伝送形式は、一対のコイルを対向配置して相互誘導によって交信を行う電磁結合方式、誘導電磁界によって交信する電磁誘導方式、電波を利用して交信する電波方式の３つに大別される。無線チップ１２００は、そのいずれの方式に用いることも可能である。整流回路１２０５は、アンテナ１２０４で無線信号を受信することにより生成される入力交流信号を整流、例えば、半波２倍圧整流し、後段に設けられた容量素子により、整流された信号を平滑化することで入力電位を生成するための回路である。なお、整流回路１２０５の入力側または出力側に、リミッタ回路を設けてもよい。リミッタ回路は、入力交流信号の振幅が大きく、内部生成電圧が大きい場合に、ある電力以上の電力を後段の回路に入力しないように制御するための回路である。
【００９６】
定電圧回路１２０６は、整流回路１２０５からの入力信号から電源電圧を生成し、内部回路に供給するための回路である。なお、定電圧回路１２０６は、内部にリセット信号生成回路を有していてもよい。リセット信号生成回路は、電源電圧の立ち上がりを利用して、ロジック部１２０９のリセット信号を生成するための回路である。
【００９７】
復調回路１２０７は、入力交流信号を包絡線検出することにより復調し、復調信号を生成するための回路である。また、変調回路１２０８は、アンテナ１２０４より出力するデータに応じて変調をおこなうための回路である。
【００９８】
ロジック部１２０９は復調信号を解析し、処理を行うための回路である。メモリ部１２１０は、ロジック部１２０９のアクセス要求に応じて、データの書き込みまたはデータの読み出しが行われる。メモリ部１２１０には、例えば、固有番号（ＩＤ）などのデータが格納される。
【００９９】
図９に、無線チップの使用例を示す。ここでは、無線チップを物品などの個体情報を管理するＲＦＩＤタグとして使用する例を示す。
【０１００】
ＲＦＩＤタグ４０００の用途は多岐にわたる。その用途として、例えば、紙幣、硬貨、有価証券類、無記名債券類、証書類（運転免許証や住民票等、図９Ａ）、包装用容器類（包装紙やボトル等、図９Ｃ）、記録媒体（ＤＶＤソフトやビデオテープ等、図９Ｂ）、輸送手段（自転車等、図９Ｄ））、身の回り品（鞄や眼鏡等）、食品類、植物類、動物類、人体、衣類、生活用品類、薬品や薬剤を含む医療品、または電子機器（液晶表示装置、ＥＬ表示装置、スマートフォン、携帯電話、時計、腕時計）等の物品、若しくは各物品に取り付けるタグ（図９Ｅ、図９Ｆ）等に設けて使用することができる。
【０１０１】
ＲＦＩＤタグ４０００は、表面に貼る、または埋め込むことにより、物品に固定することができる。例えば、ＲＦＩＤタグ４０００を、本であれば紙に埋め込み、有機樹脂からなるパッケージであれば当該有機樹脂の内部に埋め込めばよい。ＲＦＩＤタグ４０００は、小型、薄型、軽量を実現するため、物品に固定した後もその物品自体のデザイン性を損なうことがない。また、紙幣、硬貨、有価証券類、無記名債券類、および証書類等にＲＦＩＤタグ４０００を設けることにより、認証機能を付与することができる。この認証機能を活用すれば、偽造を防止することができる。また、包装用容器類、記録媒体、身の回り品、食品類、衣類、生活用品類、または電子機器等にＲＦＩＤタグ４０００を取り付けることにより、検品システム、在庫管理システム等のシステムの効率化を図ることができる。また、乗り物類にＲＦＩＤタグ４０００を取り付けることにより、セキュリティを高めることができる。
【０１０２】
＜電子機器等＞
プロセッサおよび／または記憶装置を備えた電子機器（あるいは電気機器）の例として、表示機器、パーソナルコンピュータ、記録媒体を備えた画像再生装置（ＤＶＤ等の記録媒体の画像データを読み出し、その画像を表示するディスプレイを有する装置）に用いることができる。その他に、携帯電話、携帯型を含むゲーム機、携帯情報端末、電子書籍、カメラ（例えば、ビデオカメラ、デジタルスチルカメラ）、ウエアラブル・ディスプレイ（例えば、ヘッドマウント型、ゴーグル型、眼鏡型、腕時計型）、ナビゲーションシステム、音響再生装置（カーオーディオ、デジタルオーディオプレーヤ等）、複写機、ファクシミリ、プリンタ、プリンタ複合機、冷凍冷蔵庫、洗濯機等の家電製品等が挙げられる。また、プロセッサおよび記憶装置は、様々な分野の装置に用いられる半導体装置であり、半導体製造装置や産業用ロボットなどの各種産業機械、並びに、自動車、列車、船舶および航空機などの輸送手段等にも用いられる。図１０に、プロセッサおよび／または記憶装置を備えた装置の例を示す。
【０１０３】
図１０Ａは、携帯型ゲーム機の構成例を示す外観図である。携帯型ゲーム機５０００は、筐体５００１、筐体５００２、表示部５００３、表示部５００４、マイクロホン５００５、スピーカ５００６、操作キー５００７、及びスタイラス５００８等を有する。
【０１０４】
図１０Ｂは、携帯情報端末の構成例を示す外観図である。携帯情報端末５０２０は、筐体５０２１、筐体５０２２、表示部５０２３表示部５０２４、接続部５０２５、及び操作キー５０２６等を有する。表示部５０２３は筐体５０２１に設けられており、表示部５０２４は筐体５０２２に設けられている。筐体５０２１と筐体５０２２とは、接続部５０２５により接続されており、筐体５０２１と筐体５０２２の間の角度は、接続部５０２５により変更可能となっている。表示部５０２３における映像の切り替えを、接続部５０２５における筐体５０２１と筐体５０２２との間の角度に従って行う構成としてもよい。また、表示部５０２３及び表示部５０２４の一方または双方に、位置入力機能が付加された表示装置を用いるようにしてもよい。例えば、表示装置にタッチパネルを設けることで、あるいは、フォトセンサとも呼ばれる光電変換素子を表示装置の画素部に設けることで、位置入力機能を表示装置に付加することができる。
【０１０５】
図１０Ｃは、ノート型パーソナルコンピュータ（ＰＣ）の構成例を示す外観図である。ＰＣ５０４０は、筐体５０４１、表示部５０４２、キーボード５０４３、及びポインティングデバイス５０４４等を有する。
【０１０６】
図１０Ｄは、電気冷凍冷蔵庫の構成例を示す外観図である。電気冷凍冷蔵庫５０６０は、筐体５０６１、冷蔵室用扉５０６２、及び冷凍室用扉５０６３等を有する。
【０１０７】
図１０Ｅは、ビデオカメラの構成例を示す外観図である。ビデオカメラ５０８０は、筐体５０８１、筐体５０８２、表示部５０８３、操作キー５０８４、レンズ５０８５、及び接続部５０８６等を有する。操作キー５０８４及びレンズ５０８５は筐体５０８１に設けられており、表示部５０８３は筐体５０８２に設けられている。そして、筐体５０８１と筐体５０８２は、接続部５０８６により接続されており、筐体５０８１と筐体５０８２の間の角度は、接続部５０８６により変えることが可能な構造となっている。筐体５０８１に対する筐体５０８２の角度によって、表示部５０８３に表示される画像の向きの変更や、画像の表示／非表示の切り替えを行うことができる。
【０１０８】
図１０Ｆは、自動車の構成例を示す外観図である。自動車５１００は、車体５１０１、車輪５１０２、ダッシュボード５１０３、及びライト５１０４等を有する。
【符号の説明】
【０１０９】
１１、１２  プログラマブル・ロジック・エレメント（ＰＬＥ）
２０  記憶装置
１００  リコンフィギャラブル回路
１０１  ルックアップテーブル（ＬＵＴ）
１０２  キャリー・ロジック回路
１１０  レジスタ（ＲＥＧ）
１２１、１２２  マルチプレクサ（ＭＵＸ）
１３１、１３２、１５０―１５３  コンフィギュレーション・メモリ（ＣＭ）
１４０―１４３、１６０  ロジック回路
１７０  ロジックアレイ
１７１  ＰＬＥ
１７２  ＰＬＬ
１７５  配線リソース
１８０  入出力部（ＩＯ）
１８１  入出力回路
２００  メモリ部
２１０  メモリセルアレイ
２１１  通常エリア
２１２  冗長エリア
２２０  周辺回路
２２１  コントロール回路
２２２  行ドライバ回路
２２３  列ドライバ回路
２５０  リコンフィギャラブル回路（ＲＣＦＧＣ）
【図１】
2015111821.tif 000003
【図２】
2015111821.tif 000004
【図３】
2015111821.tif 000005
【図４】
2015111821.tif 000006
【図５】
2015111821.tif 000007
【図６】
2015111821.tif 000008
【図７】
2015111821.tif 000009
【図８】
2015111821.tif 000010
【図９】
2015111821.tif 000011
【図１０】
2015111821.tif 000012