(57)【特許請求の範囲】
【請求項１】
装置であって、該装置は、
第１の機能を実行するように該装置の第１の構成に使用される第１のセットの回路要素と、
該第１の機能とは異なる第２の機能を実行するように該装置の第２の構成に使用される第２のセットの回路要素と
を含み、
該装置の信頼性を向上させるために、該装置の該第１の構成が該装置の該第２の構成に切り替えられる、装置。
【請求項２】
前記装置の前記第１の構成は、負バイアス温度不安定性（ＮＢＴＩ）および／または正バイアス温度不安定性（ＰＢＴＩ）の影響を減少させるために、該装置の前記第２の構成に切り替えられる、請求項１に記載の装置。
【請求項３】
前記装置の前記第１の構成は、該装置の少なくとも一部分におけるストレスの影響を減少させるために、該装置の前記第２の構成に切り替えられる、請求項１に記載の装置。
【請求項４】
前記第１のセットの回路を前記第１の構成に割り当てることと、前記第２のセットの回路要素を前記第２の構成に割り当てることとを行うように適合されているコントローラをさらに含む、請求項１に記載の装置。
【請求項５】
前記コントローラは、前記第１のセットの回路要素と前記第２のセットの回路要素とが重ならないように、該第１のセットの回路要素と該第２のセットの回路要素とを割り当てるように適合されている、請求項４に記載の装置。
【請求項６】
前記コントローラは、前記第１のセットの回路要素および前記第２のセットの回路要素において少なくとも１つの回路要素が重なるように、該第１のセットの回路要素および該第２のセットの回路要素を割り当てるように適合されている、請求項４に記載の装置。
【請求項７】
前記コントローラは、前記装置の前記第１の構成を該装置の前記第２の構成に切り替えるように適合されている、請求項４に記載の装置。
【請求項８】
前記コントローラは、前記第１のセットの回路要素を停止させることと、前記第２のセットの回路要素を起動することとによって、前記装置の前記第１の構成を該装置の前記第２の構成に切り替えるように適合されている、請求項７に記載の装置。
【請求項９】
前記装置は、該装置が前記第２の構成に切り替えられる前に、第１の期間の時間の間前記第１の構成で動作されるように適合されている、請求項４に記載の装置。
【請求項１０】
前記装置は、該装置が前記第１の構成に戻るように切り替えられる前に、第２の期間の時間の間前記第２の構成で動作されるように適合されている、請求項９に記載の装置。
【請求項１１】
前記装置の１つ以上の追加の対応する構成に使用される少なくとも１つ以上の追加のセットの回路要素をさらに含み、該装置の前記第１の構成が、該装置の前記第２の構成に切り替えられ、その後、該装置の該第２の構成が、該装置の該追加の対応する構成のうちの１つ以上に切り替えられる、請求項１に記載の装置。
【請求項１２】
前記第１のセットの回路要素および前記第２のセットの回路要素のうちの少なくとも１つは、プログラマブル論理および／またはプログラマブル相互接続を含む、請求項１に記載の装置。
【請求項１３】
前記第１のセットの回路要素および前記第２のセットの回路要素のうちの少なくとも１つは、ルーティング回路網を含む、請求項１に記載の装置。
【請求項１４】
方法であって、該方法は、
第１の構成に割り当てられた第１のセットの回路要素を使用することによって、該第１の構成で集積回路（ＩＣ）を動作させることであって、該第１のセットの回路要素は、第１の機能を実行する、ことと、
第２の構成に割り当てられた第２のセットの回路要素を使用することによって、該第２の構成で該ＩＣを動作させることであって、該第２のセットの回路要素は、該第１の機能とは異なる第２の機能を実行する、ことと
を含み、
該第１の構成で該ＩＣを動作させた後に該第２の構成で該ＩＣを動作させることは、該ＩＣの信頼性を向上させる、方法。
【請求項１５】
前記第１の構成で前記ＩＣを動作させることは、前記第１のセットの回路要素を起動することをさらに含む、請求項１４に記載の方法。
【請求項１６】
前記第２の構成で前記ＩＣを動作させることは、前記第１のセットの回路要素を停止させることと、前記第２のセットの回路要素を起動することとをさらに含む、請求項１５に記載の方法。
【請求項１７】
前記第１の構成で前記ＩＣを動作させることは、第１の期間の時間の間前記第１のセットの回路要素を使用することをさらに含み、前記第２の構成で該ＩＣを動作させることは、第２の期間の時間の間前記第２のセットの回路要素を使用することをさらに含む、請求項１４に記載の方法。
【請求項１８】
前記第１の期間の時間の持続期間は、前記第１のセットの回路要素が、負バイアス温度不安定性（ＮＢＴＩ）および／または正バイアス温度不安定性（ＰＢＴＩ）の影響から回復することを可能にするように選択され、前記第２の期間の時間の持続期間は、前記第２のセットの回路要素が、ＮＢＴＩおよび／またはＰＢＴＩの影響から回復することを可能にするように選択される、請求項１４に記載の方法。
【請求項１９】
前記第１の期間の時間および前記第２の期間の時間は、前記第１のセットの回路要素および前記第２のセットの回路要素のそれぞれが、ストレスの影響から回復することを可能にするように選択される、請求項１４に記載の方法。
【請求項２０】
集積回路（ＩＣ）を構成する方法であって、該方法は、
第１の機能を実行するように第１のセットの回路要素を該ＩＣの第１の構成に割り当てることと、
該第１の機能とは異なる第２の機能を実行するように第２のセットの回路要素を該ＩＣの第２の構成に割り当てることと、
該ＩＣの信頼性を向上させるように、該ＩＣの該第１の構成が該ＩＣの該第２の構成に切り替えられるように該ＩＣを構成することと
を含む、方法。
【請求項２１】
前記ＩＣを構成することは、該ＩＣが、第１の期間の時間の間前記第１の構成を使用した後に、該ＩＣの該第１の構成が、該ＩＣの前記第２の構成に切り替えられるように該ＩＣを構成することをさらに含む、請求項２０に記載の方法。
【請求項２２】
前記ＩＣが、第２の期間の時間の間前記第２の構成を使用した後に、該ＩＣの該第２の構成が、該ＩＣの前記第１の構成に切り替えられるように該ＩＣを構成することをさらに含む、請求項２１に記載の方法。
【請求項２３】
前記第１のセットの回路要素が回復することを可能にするために十分な長さを有するように前記第１の期間の時間を選択することと、前記第２のセットの回路要素が回復することを可能にするために十分な長さを有するように前記第２の期間の時間を選択することとをさらに含む、請求項２２に記載の方法。
【請求項２４】
前記第１のセットの回路要素を割り当てることは、プログラマブル論理および／またはプログラマブル相互接続を前記ＩＣの前記第１の構成に割り当てることをさらに含み、前記第２のセットの回路要素を割り当てることは、プログラマブル論理および／またはプログラマブル相互接続を該ＩＣの前記第２の構成に割り当てることをさらに含む、請求項２０に記載の方法。
【請求項２５】
前記第１のセットの回路要素および前記第２のセットの回路要素は、該第１のセットの回路要素と該第２のセットの回路要素とが重ならないように割り当てられる、請求項２０に記載の方法。
【請求項２６】
前記第１のセットの回路要素および前記第２のセットの回路要素は、該第１のセットの回路要素と該第２のセットの回路要素とが少なくとも部分的に重なるように割り当てられる、請求項２０に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
（技術分野）
本明細書で開示される概念は、概して、電子回路網およびデバイスに関し、より具体的には、電子デバイスおよび回路網（例えば、フィールドプログラマブルゲートアレイ（ＦＰＧＡ））を向上させるための装置ならびに関連する方法に関する。
【背景技術】
【０００２】
（背景）
エレクトロニクスにおける発展は、半導体デバイス（例えば、集積回路（ＩＣ））によって実現される機能および能力の数がますます増加することをもたらす。それらの機能および能力を提供するために、半導体デバイス（例えば、ＩＣ）は、継続的に、ますます増加する数のトランジスターを含む。
【０００３】
コストを減らし、なお多くの機能および能力のための仕様を満たすために、半導体テクノロジーは、より高いデバイス密度およびより小さなデバイス形状に向う傾向を推進し続けてきた。それらの傾向は、半導体デバイスの特性に影響する。例えば、ある半導体デバイスは、半導体デバイスが半導体デバイスの寿命の終わりに近いときには、半導体デバイスが半導体デバイスの寿命の始まりに近いときに有する特性と異なる特性を有する傾向がある。
【発明の概要】
【課題を解決するための手段】
【０００４】
（概要）
さまざまな実施形態に従う装置および関連する方法は、電子回路網または装置（例えば、ＩＣ）の信頼性を向上させる。１つの代表的な実施形態において、装置は、装置の２つの構成に使用される２つのセットの回路要素を含む。第１のセットの回路要素が、装置の第１の構成に使用され、その一方で、第２のセットの回路要素が、装置の第２の構成に使用される。装置の第１の構成は、装置の信頼性を向上させるために、装置の第２の構成に切り替えられる。
【０００５】
別の代表的な実施形態において、方法は、第１の構成に割り当てられた第１のセットの回路要素を使用することによって、第１の構成でＩＣを動作させることと、第２の構成に割り当てられた第２のセットの回路要素を使用することによって、第２の構成でＩＣを動作させることとを含む。この方法に従って、第１の構成でＩＣを動作させた後に第２の構成でＩＣを動作させることは、ＩＣの信頼性を向上させる。
【０００６】
なお別の代表的な実施形態において、ＩＣを構成する方法は、第１のセットの回路要素をＩＣの第１の構成に割り当てることと、第２のセットの回路要素をＩＣの第２の構成に割り当てることとを含む。方法は、ＩＣの第１の構成が、ＩＣの信頼性を向上させるように、ＩＣの第２の構成に切り替えられるようにＩＣを構成することをさらに含む。
【０００７】
本発明は、例えば、以下の項目を提供する。
（項目１）
装置であって、該装置は、
該装置の第１の構成に使用される第１のセットの回路要素と、
該装置の第２の構成に使用される第２のセットの回路要素と
を含み、
該装置の信頼性を向上させるために、該装置の該第１の構成が該装置の該第２の構成に切り替えられる、装置。
（項目２）
上記装置の上記第１の構成は、負バイアス温度不安定性（ＮＢＴＩ）および／または正バイアス温度不安定性（ＰＢＴＩ）の影響を減少させるために、該装置の上記第２の構成に切り替えられる、上記項目のいずれかに記載の装置。
（項目３）
上記装置の上記第１の構成は、該装置の少なくとも一部分におけるストレスの影響を減少させるために、該装置の上記第２の構成に切り替えられる、上記項目のいずれかに記載の装置。
（項目４）
上記第１のセットの回路を上記第１の構成に割り当てることと、上記第２のセットの回路要素を上記第２の構成に割り当てることとを行うように適合されているコントローラをさらに含む、上記項目のいずれかに記載の装置。
（項目５）
上記コントローラは、上記第１のセットの回路要素と上記第２のセットの回路要素とが重ならないように、該第１のセットの回路要素と該第２のセットの回路要素とを割り当てるように適合されている、上記項目のいずれかに記載の装置。
（項目６）
上記コントローラは、上記第１のセットの回路要素および上記第２のセットの回路要素において少なくとも１つの回路要素が重なるように、該第１のセットの回路要素および該第２のセットの回路要素を割り当てるように適合されている、上記項目のいずれかに記載の装置。
（項目７）
上記コントローラは、上記装置の上記第１の構成を該装置の上記第２の構成に切り替えるように適合されている、上記項目のいずれかに記載の装置。
（項目８）
上記コントローラは、上記第１のセットの回路要素を停止させることと、上記第２のセットの回路要素を起動することとによって、上記装置の上記第１の構成を該装置の上記第２の構成に切り替えるように適合されている、上記項目のいずれかに記載の装置。
（項目９）
上記装置は、該装置が上記第２の構成に切り替えられる前に、第１の期間の時間の間上記第１の構成で動作されるように適合されている、上記項目のいずれかに記載の装置。
（項目１０）
上記装置は、該装置が上記第１の構成に戻るように切り替えられる前に、第２の期間の時間の間上記第２の構成で動作されるように適合されている、上記項目のいずれかに記載の装置。
（項目１１）
上記装置の１つ以上の追加の対応する構成に使用される少なくとも１つ以上の追加のセットの回路要素をさらに含み、該装置の上記第１の構成が、該装置の上記第２の構成に切り替えられ、その後、該装置の該第２の構成が、該装置の該追加の対応する構成のうちの１つ以上に切り替えられる、上記項目のいずれかに記載の装置。
（項目１２）
上記第１のセットの回路要素および上記第２のセットの回路要素のうちの少なくとも１つは、プログラマブル論理および／またはプログラマブル相互接続を含む、上記項目のいずれかに記載の装置。
（項目１３）
上記第１のセットの回路要素および上記第２のセットの回路要素のうちの少なくとも１つは、ルーティング回路網を含む、上記項目のいずれかに記載の装置。
（項目１４）
方法であって、該方法は、
第１の構成に割り当てられた第１のセットの回路要素を使用することによって、該第１の構成で集積回路（ＩＣ）を動作させることと、
第２の構成に割り当てられた第２のセットの回路要素を使用することによって、該第２の構成で該ＩＣを動作させることと
を含み、
該第１の構成で該ＩＣを動作させた後に該第２の構成で該ＩＣを動作させることは、該ＩＣの信頼性を向上させる、方法。
（項目１５）
上記第１の構成で上記ＩＣを動作させることは、上記第１のセットの回路要素を起動することをさらに含む、上記項目のいずれかに記載の方法。
（項目１６）
上記第２の構成で上記ＩＣを動作させることは、上記第１のセットの回路要素を停止させることと、上記第２のセットの回路要素を起動することとをさらに含む、上記項目のいずれかに記載の方法。
（項目１７）
上記第１の構成で上記ＩＣを動作させることは、第１の期間の時間の間上記第１のセットの回路要素を使用することをさらに含み、上記第２の構成で該ＩＣを動作させることは、第２の期間の時間の間上記第２のセットの回路要素を使用することをさらに含む、上記項目のいずれかに記載の方法。
（項目１８）
上記第１の期間の時間の持続期間は、上記第１のセットの回路要素が、負バイアス温度不安定性（ＮＢＴＩ）および／または正バイアス温度不安定性（ＰＢＴＩ）の影響から回復することを可能にするように選択され、上記第２の期間の時間の持続期間は、上記第２のセットの回路要素が、ＮＢＴＩおよび／またはＰＢＴＩの影響から回復することを可能にするように選択される、上記項目のいずれかに記載の方法。
（項目１９）
上記第１の期間の時間および上記第２の期間の時間は、上記第１のセットの回路要素および上記第２のセットの回路要素のそれぞれが、ストレスの影響から回復することを可能にするように選択される、上記項目のいずれかに記載の方法。
（項目２０）
集積回路（ＩＣ）を構成する方法であって、該方法は、
第１のセットの回路要素を該ＩＣの第１の構成に割り当てることと、
第２のセットの回路要素を該ＩＣの第２の構成に割り当てることと、
該ＩＣの信頼性を向上させるように、該ＩＣの該第１の構成が該ＩＣの該第２の構成に切り替えられるように該ＩＣを構成することと
を含む、方法。
（項目２１）
上記ＩＣを構成することは、該ＩＣが、第１の期間の時間の間上記第１の構成を使用した後に、該ＩＣの該第１の構成が、該ＩＣの上記第２の構成に切り替えられるように該ＩＣを構成することをさらに含む、上記項目のいずれかに記載の方法。
（項目２２）
上記ＩＣが、第２の期間の時間の間上記第２の構成を使用した後に、該ＩＣの該第２の構成が、該ＩＣの上記第１の構成に切り替えられるように該ＩＣを構成することをさらに含む、上記項目のいずれかに記載の方法。
（項目２３）
上記第１のセットの回路要素が回復することを可能にするために十分な長さを有するように上記第１の期間の時間を選択することと、上記第２のセットの回路要素が回復することを可能にするために十分な長さを有するように上記第２の期間の時間を選択することとをさらに含む、上記項目のいずれかに記載の方法。
（項目２４）
上記第１のセットの回路要素を割り当てることは、プログラマブル論理および／またはプログラマブル相互接続を上記ＩＣの上記第１の構成に割り当てることをさらに含み、上記第２のセットの回路要素を割り当てることは、プログラマブル論理および／またはプログラマブル相互接続を該ＩＣの上記第２の構成に割り当てることをさらに含む、上記項目のいずれかに記載の方法。
（項目２５）
上記第１のセットの回路要素および上記第２のセットの回路要素は、該第１のセットの回路要素と該第２のセットの回路要素とが重ならないように割り当てられる、上記項目のいずれかに記載の方法。
（項目２６）
上記第１のセットの回路要素および上記第２のセットの回路要素は、該第１のセットの回路要素と該第２のセットの回路要素とが少なくとも部分的に重なるように割り当てられる、上記項目のいずれかに記載の方法。
【０００８】
（摘要）
代表的な実施形態において、装置は、第１のセットの回路要素と第２のセットの回路要素とを含む。第１のセットの回路要素が、装置の第１の構成に使用され、第２のセットの回路要素が、装置の第２の構成に使用される。装置の第１の構成は、装置の信頼性を向上させるために、装置の第２の構成に切り替えられる。
【０００９】
添付した図面は、単に、代表的な実施形態を例示するものであり、それゆえに、それらの範囲を限定するものとして考慮されるべきではない。本開示の利益を享受する当業者は、本明細書で開示される概念が、当業者に他の同等の有効な実施形態を与えることを認識する。図面において、２つ以上の図面に使用された同じ数値の指示子は、同じ、類似、または同等の機能、構成要素、またはブロックを示す。
【図面の簡単な説明】
【００１０】
【図１】図１は、２つ以上の構成への割り当てのための複数の回路要素を含む代表的な実施形態に従う回路を例示する。
【図２】図２は、代表的な実施形態に従う構成の切り替えのための回路網を描く。
【図３】図３は、別の代表的な実施形態に従う構成の切り替えのための回路網を示す。
【図４】図４は、代表的な実施形態に従うＦＰＧＡのブロックダイヤグラムを例示する。
【図５】図５は、代表的な実施形態に従うＦＰＧＡの平面図を描く。
【図６】図６は、代表的な実施形態に従うＦＰＧＡにおけるプログラマブル論理およびプログラマブル相互接続のブロックダイヤグラムを描く。
【図７】図７は、代表的な実施形態に従うＦＰＧＡ  ＣＡＤフローを例示する。
【図８】図８は、代表的な実施形態に従う２つの構成によってＦＰＧＡリソースの使用の例を示す。
【図９】図９は、代表的な実施形態に従う２つの構成によってＦＰＧＡリソースの使用の例を示す。
【図１０】図１０は、代表的な実施形態に従う２つの構成によってＦＰＧＡリソースの使用の例を示す。
【図１１】図１１は、代表的な実施形態に従ってＦＰＧＡに構成情報を提供するための回路配列を示す。
【図１２】図１２は、代表的な実施形態に従ってＦＰＧＡに構成情報を提供するための回路配列を示す。
【図１３】図１３は、本明細書で開示された概念に従う情報処理のための代表的なシステムのブロックダイヤグラムを描く。
【発明を実施するための形態】
【００１１】
（詳細な説明）
本明細書で開示される概念は、概して、電子回路網およびデバイス（例えば、ＩＣ）の信頼性および性能に関する。より具体的には、本明細書で開示される概念は、電子回路網またはデバイス（例えば、ＩＣ）の信頼性を向上させるための装置および方法を提供する。
【００１２】
現代の半導体製造テクノロジー（例えば、相補型金属酸化膜半導体（ＣＭＯＳ）デバイスおよびＩＣを作るために使用されたテクノロジー）は、ときどき、比較的に重要な態様で、デバイス（例えば、ｐ型金属酸化物半導体（ＰＭＯＳ）トランジスターまたはｎ型金属酸化物半導体（ＮＭＯＳ）トランジスターなどのトランジスター）の特性を変える新たな機構または現象の導入をもたらす。当業者にとって公知であるこのような不利な現象の例は、ＰＭＯＳデバイスにおける負バイアス温度不安定性（ＮＢＴＩ）と、ＮＭＯＳデバイスにおける正バイアス温度不安定性（ＰＢＴＩ）とを含む。
【００１３】
他の現象もデバイス特性を変え得、信頼性を減少させ得る。例は、少なくとも回路の一部分（例えば、ＩＣ）上のストレス（電気的、機械的、環境的（熱い、寒いなど）等）と、時間関連の現象（例えば、エージング）とを含む。上記現象のうちのいくつかは、用途に依存してよりはっきりになり得る。例えば、自動車、軍事または航空宇宙の用途は、他の用途に比べると、回路網に増加したストレスを受けさせ得る。
【００１４】
上記現象または他の現象の結果として、デバイスまたは回路の特性は、回路要素（例えば、トランジスター）のライフサイクル中に変化する。例として、トランジスターは、トランジスター（またはＩＣ）の動作寿命の始まりにおいて、トランジスターがトランジスター（またはＩＣ）の動作寿命の終わりに近いときに有する特性と異なる特性を有し得る。デバイス特性の変動は、不利にデバイスの信頼性に影響し得る。
【００１５】
本発明の実施形態に従う装置および方法は、上記現象または他の現象の影響を減少させることによって、電子回路網およびデバイスの信頼性および／または寿命期間を向上させる利点を提供する。概して、本開示は、回路に不利に影響し得るストレスおよび現象の影響を除去するために、回路内の回路要素（例えば、ＩＣ）の２つ以上の構成を使用する。より具体的には、代表的な実施形態に従う装置および方法は、２つ以上の構成の間で切り替え（または回転し、取り替え、変更し、代用し、またはシフトさせ）、従って、回路要素の使用を切り替えさせる。より具体的には、回路の回路要素（例えば、ＩＣ）が、２つ以上のセットに割り当てられる。１つの構成において、１つの回路要素のセットが使用され（例えば、アクティブであり）、その一方で、いくつかの他の回路要素のセット（例えば、未使用の回路要素またはブロック）が、非アクティブである。
【００１６】
一定期間の時間の後に、別の構成が使用され、以前は非アクティブな回路要素のうちのいくつか（および、いくつかの実施形態においては、同様に、以前はアクティブな回路要素のいくつか）の使用をアクティブにさせ得、その逆も同様である。このように、構成が、以前の構成に代わって切り替えられる。このプロセスが繰り返され得、所与の構成が、対応する期間の時間に対して使用され得る。代表的な実施形態において、一定期間の時間は、所与の構成に対応する回路要素のうちの少なくともいくつかが、前述のストレスおよび／または他の不利な現象の影響から回復し、または実質的に回復する（例えば、回路要素の以前の特性に戻し、あるいは回路要素の以前の特性に実質的にまたは有効的に戻す）ことを可能にするために十分な長さを有するように選択される。例えば、構成の切り替えは、ＮＢＴＩおよび／またはＰＢＴＩの影響から回復する（または回路要素のその後の使用を可能にするために十分に回復する）ために、以前に使用された（例えば、直前に使用された）回路要素に対して、十分に長期間の時間の後に発生し得る。
【００１７】
当業者が理解するように、いくつかの現象が存在し得、回路構成要素は、この現象の影響から有効に回復できず、または回復しない。たとえこのような状況においても、電子回路網の有効寿命が、（例えば、以下により詳細に説明されるように、Ｎ個の構成が使用される場合にはＮ倍で）増加され得る。
【００１８】
一般的に言えば、回路内で利用可能または存在する回路要素（例えば、ＩＣ）が、選択され、２つ以上の構成に割り当てられる。いくつかの実施形態において、予備の（または余分なもしくは未使用の）回路要素（すなわち、回路網またはデバイス全体における回路要素が、全部の機能を行うために必要とされるかまたは使用される回路要素より多い）が、１つ以上の追加の構成を実装するために使用され得る。いくつかの他の実施形態において、以下に示されるように、いくつかの回路要素が、２つ以上の回路構成に対して共通であり得る。
【００１９】
図１は、代表的な実施形態に従う回路１０を示す。回路１０は、図１に示されるように、ＩＣまたは概して任意タイプの回路であり得る。回路１０は、複数の回路要素２０を含む。回路要素２０は、個々のトランジスターからいくつかのトランジスター、ブロック、サブシステム等を含む回路まで及ぶ幅広い種類の回路網を構成し得る。粒度のレベルは、回路１０の用途、回路要素２０の数等のような因子に依存する。
【００２０】
回路要素２０の各々は、他の回路要素２０と同じ機能または異なる機能を実現または提供し得る。従って、いくつかの実施形態において、回路要素２０のすべては、同じ機能、または実質的に同じ機能を提供する。他の実施形態において、回路要素２０の各々は、他の回路要素２０の機能と異なる機能を提供する。なお他の実施形態において、回路要素２０のうちのいくつかは、同じ機能、または実質的に同じ機能を提供し、その一方で、他の回路要素２０は、１つ以上の異なる機能を提供する。
【００２１】
回路１０は、コントローラ３０をさらに含む。コントローラ３０は、回路要素２０を選択し、かつ回路要素２０を２つ以上の構成に割り当て得る。代替的には、構成に対する回路要素の選択および割り当ては、ユーザー、ソフトウェアまたはファームウェア、および／または他の回路網、例えば、ＩＣ外の回路網によって行われ得る。どちらの場合においても、構成は、電子回路網（例えば、ＩＣ、電子回路網へ通信されるファイル）に対して外部に格納され、電子回路網（例えば、ＩＣの回路網ブロック、またはＩＣ内の広がり）に対して内部に格納され得る。回路１０の所与の構成において、コントローラ３０は、１つ以上の回路要素をアクティブにさせ得、すなわち、回路１０の全部の機能を実現させるのにおいて関与させ、またはアクティブにさせ得る。言い換えると、所与の構成に対して、コントローラ３０は、回路１０の全部の所望の機能を実現させるために、どの回路要素２０が動作し、またはアクティブになるかを決定する。例えば、回路要素２０が論理ゲートを構成し、回路２０の所望の全部の機能がマルチプレクサー（ＭＵＸ）機能であることを想定する。コントローラ３０は、所与の構成に対して所望のＭＵＸ機能を実装するために、アクティブになるようにいくつかの論理ゲートを選択し、割り当て得る。
【００２２】
所与の構成、例えば、初期構成において、コントローラ３０は、回路１０の１つの構成の（すなわち、その構成に割り当てられる）間に、アクティブになるように、１つの回路要素のセット、例えば、回路要素２０Ａ〜２０Ｄを選択する。その後に、コントローラ３０（単独に、またはいくつかの他の機構に関連して）は、回路要素２０Ａ〜２０Ｄに所望の機能を実現させる。コントローラ３０は、回路１０の各構成に対して使用されている回路要素２０の追跡を保つ。従って、上記の例において、コントローラ３０は、構成に使用されるときに、回路要素２０Ａ〜２０Ｄを標識する（またはそれらの追跡を保つ）。コントローラ３０はまた、回路要素のセット２０がどれほど最近に使用され、すなわち、回路１０の機能の少なくとも一部分を実現するためにアクティブになったかの追跡を保ち得る。一定の期間の時間の後に、コントローラ３０は、回路１０の別の構成に対して、別の回路要素のセット、例えば、回路要素２０Ｅ〜２０Ｇを選択し、前の構成を使用するのを中止し、新たな構成を使用し（回路要素２０Ａ〜２０Ｄを非アクティブにし、回路要素２０Ｅ〜２０Ｇをアクティブにし）、すなわち、別の構成に代わって１つの構成に切り替える。言い換えると、回路１０の第２の構成において、コントローラ３０は、（停止になる）回路要素２０Ａ〜２０Ｄに代わって、回路要素２０Ｅ〜２０Ｇを作動させる。この後に、回路要素２０Ｅ〜２０Ｇは、この構成において回路１０の機能の少なくとも一部分を実現させる。
【００２３】
コントローラ３０は、さまざまな方法で所与の構成に対応する回路要素２０を停止させ得る。いくつかの実施形態において、コントローラ３０は、それらの回路要素を停止させ、または回路要素の電力をオフにし得る。いくつかの実施形態において、コントローラ３０は、例えば、回路要素の可能な入力の使用を介してそれらの回路要素を無効にし得る。他の実施形態において、コントローラ３０は、それらの回路要素をスリープモードに進入させる。
【００２４】
コントローラ３０は、構成の切り替えを行い得、すなわち、さまざまな方法で回路要素２０のアクティブな状態と非アクティブな状態との切り替えおよび変更を行い得る。例えば、いくつかの実施形態において、コントローラ３０は、（例えば、タイマーまたはアクティブな回路要素２０Ａ〜２０Ｄの性能のいくつかの測定等を用いて）自動的に切り替えを達成し得る。他の実施形態において、コントローラ３０は、少なくとも部分的に、回路１０への外部入力、例えば、ユーザーからの入力に応じて切り替えを行い得る。
【００２５】
代表的な実施形態、例えば、前述の例において、切り替えの前のアクティブな回路要素は、構成の切り替えの後のアクティブな回路要素と重ならない。従って、上記の例において、回路要素２０Ａ〜２０Ｄは、回路要素２０Ｅ〜２０Ｇと重ならない（異なる）。他の代表的な実施形態において、構成の切り替えの前と後との回路要素は、ある程度に重なり得る。なお別の実施形態において、構成の切り替えの前と後との回路要素は、重なり得、ただし、好ましくは重ならない。なお他の代表的な実施形態において、構成の切り替えの前と後とのアクティブな回路要素は、利用可能な回路要素のプールからランダムに、または擬似ランダムに選択され得る。
【００２６】
他の代表的な実施形態において、構成の切り替えの前と後との回路要素のうちのいくつかは、重なり得、または同じでもあり得、ただし、構成の切り替えの前の回路要素のうちの少なくともいくつかの入力および／または出力での論理値は、構成の切り替えの後の対応する値の反対のブール論理である。例えば、切り替えの前のコンバータ２０Ｈは、論理１入力と、従って論理０出力とを有し得る。構成を切り替えた後に、コンバータ２０Ｈが、論理０入力と、従って論理１出力とを有するように、コンバータ２０Ｈは、全体の回路１０においてコントローラ３０（または別の機構）によって使用され、そして／また配列される。
【００２７】
いくつかの実施形態において、１つ以上の追加の構成（すなわち、回路網、ＩＣ等において回路要素の３つ以上の構成）が使用され得る。言い換えると、２つの構成に対応する２つの回路要素のセットを有することではなく、３つ以上の回路要素のセットおよび／または２つ以上の構成の切り替えを有し得る。構成の数は、多くの因子、例えば、回路の複雑さ、さまざまな回路要素によって経験されたストレスのレベル、予備の回路要素のタイプおよび／または数、構成の中または間に所望の、または可能にされた重なりの程度等に依存し得る。
【００２８】
回路要素の正確な配列と、構成を切り替えるために使用されたスキーム全体とにかかわらず、回路要素の割り当て、かつ構成の切り替えの目的は、回路要素、回路網（例えば、回路１０）、またはデバイスの信頼性および／または寿命スパンに不利に影響する現象、例えば、前述の現象の影響を減少させることである。回路網、例えば、ＩＣの信頼性および／または寿命スパンは、比較的にかなりの量で向上され、または増加され得る（いくつかの実施形態において、寿命の２倍または３倍になる）。増加された信頼性および／または寿命スパンは、いくつかの利点、例えば、（例えば、取り替えのための）減少されたコスト、増加された顧客またはエンドユーザーの満足度、および／または比較的に要求の厳しい用途（例えば、自動車、軍事、航空宇宙）に対して増加された適合性をもたらす。
【００２９】
より具体的には、回路１０の構成において使用される回路要素２０のうちのいくつか（例えば、図１の回路要素２０Ａ〜２０Ｄ）は、アクティブになり、それゆえに、前述の現象を受ける。結果として、構成に使用される回路要素のデバイスの１つ以上の特性は、劣化になり得、そして／または回路要素２０は、典型的に、時間にわたってストレスになり得る。一定期間の時間の後に、コントローラ３０は、回路１０を新たな構成に切り替える。従って、上記の例において、コントローラ３０は、回路要素２０Ａ〜２０Ｄを非アクティブにさせ、回路要素２０Ｅ〜２０Ｇをアクティブにさせる。
【００３０】
構成の切り替えプロセスが、所望のように繰り返され得る。従って、いくつかの実施形態において、コントローラ３０は、一定期間の時間の後に第１の構成に戻すように切り替え得、次に、第２の構成に戻すように切り替え得、他も同様である。３つ以上の構成を有する実施形態において、コントローラ３０は、さまざまな方法、例えば、連続、ランダム、擬似ランダム、規定の順序で、構成の中に切り替え得る。
【００３１】
本開示の１つの局面に従って、回路１０は、コントローラ３０が回路１０の構成を切り替えることを可能にする回路網および結合機構（例えば、ＭＵＸ、デマルチプレクサー（ＤＥＭＵＸ）、パストランジスター、切り替え行列等）を含む。言い換えると、このような回路網および結合機構は、コントローラ３０が、回路１０の全部の所望の機能を提供する方式で、所与の構成にアクティブな回路要素２０を結合させることを可能にする。同様に、このような回路網および結合機構は、コントローラ３０に、他の回路要素２０（例えば、回路１０の他の構成に使用されたその回路要素）を結合解除し、または停止させるための能力を提供し、すなわち、その回路要素２０がその特定の構成の間に、回路１０の機能を実現させないようにその回路要素２０を構成する。
【００３２】
図２は、代表的な実施形態に従う、構成を切り替えるための回路網を描く。この例において、回路要素２０Ｉおよび２０Ｊは、それぞれ、回路１０の２つの構成においてアクティブである（すなわち、回路要素２０Ｉは、１つの構成においてアクティブであり、回路要素２０Ｊは、別の構成においてアクティブである）。第１の構成の間に、コントローラ３０は、制御信号３５Ａを使用し、デマルチプレクサー（ＤＥＭＵＸ）３５に、入力信号３２（例えば、回路１０の内部信号または回路１０に対する外部信号）を回路要素２０Ｉに提供させる。ＤＥＭＵＸ３５からの信号３５Ｂに応じて、回路要素２０Ｉは、出力信号３８Ｂを提供する。制御信号３８Ａを用いて、コントローラ３０は、ＭＵＸ３８に、信号３８ＢをＭＵＸ３８の出力信号４０として提供させる。
【００３３】
回路１０の第２の（または別の）構成中に、コントローラ３０は、制御信号３５Ａを使用し、デマルチプレクサー（ＤＥＭＵＸ）３５に、信号３２を回路要素２０Ｊに提供させる。ＤＥＭＵＸ３５からの信号３５Ｃに応じて、回路要素２０Ｊは、出力信号３８Ｃを提供する。制御信号３８Ａを用いて、コントローラ３０は、ＭＵＸ３８に、信号３８Ｃを出力信号４０として提供させる。
【００３４】
図３は、別の代表的な実施形態に従う構成の切り替えのための回路網を示す。この実施形態において、コントローラ３０は、それぞれの制御されたスイッチ４２、４４、４６、および４８を制御するために、それぞれの信号４２Ａ、４４Ａ、４６Ａ、および４８Ａを使用する。それらのそれぞれの制御信号に応じて、スイッチ４２、４４、４６、および４８は、所望のように、開放し、または閉鎖し得る。従って、信号４２Ａの１つの値は、スイッチ４２を閉鎖させ得、その一方で、信号４２Ａの別の値は、スイッチ４２を開放させ得る。同様に、スイッチ４４、４６、および４８は、それらのそれぞれの制御信号、すなわち、制御信号４４Ａ、４６Ａ、および４８Ａに応じて動作する。
【００３５】
１つの構成において、コントローラ３０は、信号４２Ａを使用し、スイッチ４２を閉鎖させ、それゆえに、入力信号３２を回路要素２０Ｉの入力に提供する。同様に、信号４６Ａを用いて、コントローラ３０は、スイッチ４６を閉鎖させ、そして回路要素２０Ｉの出力信号を出力信号４０として提供する。別の実施形態において、コントローラ３０は、信号４４Ａを使用し、スイッチ４４を閉鎖させ、その結果、入力信号３２を回路要素２０Ｊの入力に提供する。同様に、信号４８Ａを用いて、コントローラ３０は、スイッチ４８を閉鎖させ、次に、回路要素２０Ｊの出力信号を出力信号４０として提供する。
【００３６】
上述されたように、構成の切り替えのためのさまざまな回路網およびスキームは、当業者に理解されるために可能である。図２〜３は、単に２つの例を提供する。さらに、図３のスイッチ４２、４４、４６、および４８が、当業者に理解されるように、さまざまな方法で実装され得る。例えば、代表的な実施形態において、トランジスター、伝送ゲート、論理ゲート等が使用され得る。
【００３７】
本開示の１つの局面は、プログラマブル回路網を有するＩＣ、例えば、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）の信頼性および／または寿命スパンを不利に影響する現象の影響を減少させることに関する。本明細書で開示される概念に従う装置および方法は、ＮＢＴＩ、ＰＢＴＩ、ストレス等のような現象の不利な影響を克服し、または減少させる利点を提供し、特に、ＦＰＧＡにおいて、ＦＰＧＡのルーティング相互接続またはプログラマブル相互接続を実装するために、パスゲートまたはパストランジスターを使用する。
【００３８】
ＦＰＧＡに対して、前述の信頼性および寿命スパンを向上させるための技術を適用するために、ＦＰＧＡのさまざまな回路ブロックを２つ以上の構成に割り当て、次に構成を切り替え得る。いくつかの実施形態において、回路ブロックは、ＦＰＧＡの骨組の回路網（例えば、プログラマブル論理および／またはプログラマブル相互接続）を含み得る。概して、前述のように、構成に割り当てられるべきである回路ブロックとして、ＦＰＧＡの任意の回路網（またはこのような回路網の一部分または複数のこのような回路網）を扱い得る。
【００３９】
図４は、代表的な実施形態に従うＦＰＧＡ１０３の一般的ブロックダイヤグラムを例示する。ＦＰＧＡ１０３は、構成回路網１３０、構成メモリ（ＣＲＡＭ）１３３、コントローラ３０、プログラマブル論理１０６、プログラマブル相互接続１０９、およびＩ／Ｏ回路網１１２を含む。加えて、ＦＰＧＡ１０３は、所望のように、テスト／デバッグ回路網１１５、１つ以上のプロセッサ１１８、１つ以上の通信回路網１２１、１つ以上のメモリ１２４、１つ以上のコントローラ１２７、および初期化回路１３９を含み得る。図面が、ＦＰＧＡ１０３の一般的ブロックダイヤグラムを示すことを留意する。従って、ＦＰＧＡ１０３は、当業者に理解されるように、他のブロックおよび回路網を含み得る。このような回路網の例は、クロック生成および分配回路などを含む。さらに、ＦＰＧＡ１０３は、所望のように、アナログ回路網、他のデジタル回路網、および／または混合信号回路網、ヒューズ、アンチヒューズ等を含み得る。
【００４０】
プログラマブル論理１０６は、構成可能またはプログラマブル論理回路網、例えば、ルックアップテーブル（ＬＵＴ）、積項論理、パスゲート、マルチプレクサー（ＭＵＸ）、論理ゲート、レジスタ、メモリ等を含む。プログラマブル相互接続１０９は、プログラマブル論理１０６に結合し、（例えば、パスゲートおよび／またはＭＵＸを使用することによって）プログラマブル論理１０６内のさまざまなブロックと、ＦＰＧＡ１０３内または外側の他の回路網との間に構成可能な相互接続（結合機構）を提供する。いくつかの実施形態において、プログラマブル論理１０６および／またはプログラマブル相互接続１０９は、追加の柔軟性またはプログラム化を提供するために、ヒューズおよび／またはアンチヒューズを含み得る。
【００４１】
コントローラ３０は、構成の切り替えおよび回路要素の割り当てを含む、ＦＰＧＡ１０３内のさまざまな動作を制御する。コントローラ３０の管理の下で、ＦＰＧＡ構成回路網１３０は、構成データ（構成データが、供給源、例えば、格納デバイス、ホスト等から、またはＦＰＧＡ１０３の構成の切り替えの間に得られ得る）を使用し、ＦＰＧＡ１０３の機能をプログラム化し、または構成する。構成データが、典型的にＣＲＡＭ１３３に格納される。ＣＲＡＭ１３３の内容は、ＦＰＧＡ１０３のさまざまなブロック、例えば、プログラマブル論理１０６およびプログラマブル相互接続１０９の機能を決定する。構成データは、以下に説明されるように、コンピュータ支援（ＣＡＤ）フローを用いて生成され得る。いくつかの実施形態において、構成データは、複数の構成のための情報またはデータを含み得る。代替的には、いくつかの実施形態において、コントローラ３０は、ＦＰＧＡ１０３の初期構成のための初期構成データを使用し得、初期構成に基づいて１つ以上の追加の構成を生成し得る。代表的な実施形態において、ＣＲＡＭ１３３は、構成回路網１３０内に含み得、別個の回路ブロックであり得、またはＦＰＧＡ１０３内に広げられ得る。
【００４２】
初期化回路１３９は、ＦＰＧＡ１０３のリセットまたは電力アップでさまざまな機能を行わせ得る。Ｉ／Ｏ回路網１１２は、幅広い種類のＩ／Ｏデバイスまたは回路を構成し得る。Ｉ／Ｏ回路網１１２は、ＦＰＧＡ１０３のさまざまな部分、例えば、プログラマブル論理１０６およびプログラマブル相互接続１０９に結合し得る。Ｉ／Ｏ回路網１１２は、外部の回路網またはデバイスと通信するために、ＦＰＧＡ１０３内のさまざまなブロックに機構および回路網を提供する。テスト／デバッグ回路網１１５は、ＦＰＧＡ１０３内のさまざまなブロックおよび回路のテストおよびトラブルシュートを容易にする。テスト／デバッグ回路網１１５は、当業者に公知のさまざまなブロックまたは回路を含み得る。例えば、テスト／デバッグ回路網１１５は、所望のように、ＦＰＧＡ１０３が電力アップし、またはリセットした後にテストを行うための回路を含み得る。テスト／デバッグ回路網１１５はまた、所望のように、コーディングおよびパリティー回路を含み得る。
【００４３】
ＦＰＧＡ１０３は、１つ以上のプロセッサ１１８を含み得る。プロセッサ１１８は、ＦＰＧＡ１０３内の他のブロックおよび回路に結合し得る。プロセッサ１１８は、当業者に理解されるように、ＦＰＧＡ１０３内または外部の回路からデータおよび情報を受信し得、幅広い種類の方法で情報を処理し得る。１つ以上のプロセッサ１１８は、デジタル信号プロセッサ（ＤＳＰ）を構成し得る。ＤＳＰは、所望のように、幅広い種類の信号処理タスク、例えば、圧縮、解凍、オーディオ処理、ビデオ処理、フィルターリング等を行うことを可能にする。
【００４４】
ＦＰＧＡ１０３はまた、１つ以上の通信回路１２１を含み得る。通信回路１２１は、当業者に理解されるように、ＦＰＧＡ１０３内のさまざまな回路とＦＰＧＡ１０３外部の回路との間のデータおよび情報の交換を容易にし得る。通信回路１２１の例は、トランシーバー、ネットワークインターフェース回路等を含む。ＦＰＧＡ１０３は、１つ以上のメモリ１２４および１つ以上のコントローラ１２７をさらに含み得る。メモリ１２４は、ＦＰＧＡ１０３内のさまざまなデータおよび情報（例えば、ユーザーデータ、中間結果、計算結果等）の格納を可能にする。メモリ１２４は、所望のように、粒度またはブロックの形状を有し得る。メモリコントローラ１２７は、ＦＰＧＡの外側の回路にインターフェースでつなぐことと、その回路の動作およびさまざまな機能を制御することを可能にする。例えば、メモリコントローラ１２７は、外部同期の動的ランダムアクセスメモリ（ＳＤＲＡＭ）にインターフェースでつなぎ、かつ制御し得る。
【００４５】
上述されたように、いくつかの実施形態において、ＦＰＧＡの骨組またはコアが、１つ以上の構成に対応する回路ブロックとして割り当てられ得る。ＦＰＧＡ１０３の骨組またはコアは、さまざまな形状をとり得る。いくつかの実施形態において、ＦＰＧＡ１０３のコア回路網は、他の回路網の中に、プログラマブル論理１０６およびプログラマブル相互接続１０９を含む。プログラマブル論理１０６およびプログラマブル相互接続１０９は、しばしば、アレイまたは規則的な構造、例えば、２次元アレイのＦＰＧＡ内にある。従って、いくつかの実施形態において、ＦＰＧＡ１０３の骨組またはコアが、行と列で配列され得る。
【００４６】
図５は、代表的な実施形態に従うＦＰＧＡ１０３の平面図を描く。ＦＰＧＡ１０３は、２次元アレイとして配列されたプログラマブル論理１０６を含む。水平相互接続セグメントおよび垂直相互接続セグメントとして配列されたプログラマブル相互接続１０９は、プログラマブル論理１０６のブロックを互いに結合する。当業者に理解されるように、ユーザーの設計を実装するように特定の方式でブロックを置き得る。ブロック、ブロックの一部分、またはブロックのセットは、ＦＰＧＡ１０３のタイルまたは領域を構成し得る。従って、ＦＰＧＡ１０３は、当業者に理解されるように、所望の配置で（２等分、４等分等のように）配列されるいくつかのタイルを含み得る。他の実施形態において、ＦＰＧＡ１０３は、行および／または列の回路網または回路網のブロックを含み得る。
【００４７】
ＦＰＧＡ１０３のコアまたは骨組は、プログラマブル回路網（プログラマブル論理、プログラマブル相互接続等）のより小さい粒度の構造を含み得る。図６は、代表的な実施形態に従うＦＰＧＡ１０３のプログラマブル論理１０６およびプログラマブル相互接続１０９のブロックダイヤグラムを示す。示される代表的な実施形態において、プログラマブル論理１０６は、論理要素またはプログラマブル論理要素、回路、またはブロック１５０、ローカル相互接続１５２、インターフェース回路１５３、およびインターフェース回路１５６を含む。
【００４８】
論理要素１５０は、当業者に理解されるように、構成可能またはプログラマブル論理機能、例えば、ＬＵＴ、フリップフロップ、レジスタ、積項論理等を提供する。ローカル相互接続１５２は、所望のように、論理要素１５０のための構成可能またはプログラマブル機構を提供し、論理要素１５０を互いに、またはプログラマブル相互接続１０９（ときどき、「グローバル相互接続」と呼ばれる）に結合する。インターフェース回路１５６およびインターフェース回路１５９は、回路網のプログラマブル論理１０６ブロックための構成可能またはプログラマブル方法を提供し、プログラマブル論理１０６ブロックをプログラマブル相互接続１０９（および、従って他のプログラマブル論理１０６）に結合する。インターフェース回路１５６およびインターフェース回路１５９は、本発明の説明の利益を得る当業者に理解されるように、ＭＵＸ、ＤＥＭＵＸ、レジスタ、バッファー、パスゲート、ドライバー等を含み得る。より高いレベルにおいて、より大きなプログラマブルブロックを実現するために、いくつかの論理要素１５０および関連の回路網を組み合わせ得る。所望のレベルの粒度のプログラム化を有する回路網のプログラマブルブロックを生成するために、所与の状況で所望または適切のように、このプロセスを繰り返し得る。
【００４９】
ＦＰＧＡ１０３内のさまざまな回路またはブロックが、１つ以上の構成に割り当てられるべきである回路要素として（例えば、回路要素２０（図１を参照する）として）扱われ得る。代表的な実施形態において、回路要素の割り当てのための粒度のさまざまなレベルが使用され得る。例えば、いくつかの実施形態において、個々のトランジスター（例えば、パスゲートとして働くトランジスター）を、１つ以上の構成に割り当てられるべきである回路要素として扱い得る。別の例として、プログラマブル論理１０６の回路要素の割り当てを考慮する。いくつかの実施形態において、論理要素（または論理要素内の部品またはブロック）または論理要素のセットが、１つ以上の構成に割り当てられ得る。他の例は、当業者にとって明白であり、例えば、論理要素のブロック、タイル、四分円、行、列等である。
【００５０】
同様に、プログラマブル相互接続１０９内の回路網のさまざまな部分またはブロックが、１つ以上の構成に割り当てられ得る。例えば、１つ以上のローカル相互接続が、１つ以上の構成に割り当てられ得る。別の例として、１つ以上のグローバル相互接続（または１つ以上のこのような相互接続の一部分）が、１つ以上の構成に割り当てられ得る。他の例が、問題のＦＰＧＡの構造のような因子、ＦＰＧＡのコアまたは骨組の粒度のレベル等に依存することは、当業者にとって明白である。
【００５１】
図４を参照すると、プログラマブル論理１０６およびプログラマブル相互接続１０９に加えて、または代わりに、ＦＰＧＡ１０３内の他の回路またはブロックが、１つ以上の構成に割り当てられ得る。例えば、いくつかの実施形態において、メモリ１２４が、ＦＰＧＡ１０３内のメモリのブロックとして実装され得る。メモリ１２４内の１つ以上のメモリのブロックが、１つ以上の構成に割り当てられ得る。プロセッサ１１８、通信回路１２１、Ｉ／Ｏ回路網１１２等に対して、同様な可能性が存在する。概して話すと、ＦＰＧＡ１０３の１つ以上の回路または回路のブロックの一部分または全部が、ＦＰＧＡ１０３の信頼性および／または寿命スパンを向上させるために前述のように切り替えられ得る１つ以上の構成に割り当てられ得る。
【００５２】
ＦＰＧＡ１０３の複数の構成を使用するためのさまざまなスキームが可能である。本開示の１つの局面は、ＦＰＧＡ１０３のための複数の構成を生成するために、ＦＰＧＡ  ＣＡＤフローまたはソフトウェアを使用することに関する。図７は、代表的な実施形態に従うＦＰＧＡ  ＣＡＤフローを例示する。ＣＡＤフローは、設計エントリーモジュール２０３、合成モジュール２０６、設置およびルートモジュール２０９、ならびに検証モジュール２１０を含む。設計エントリーモジュール２０３は、所望のように、回路またはその挙動のグラフィックまたはテキストの記述、例えば、概略図、ハードウェア記述言語（ＨＤＬ）、または波形を用いてさまざまな設計記述ファイルの編集を可能にする。ユーザーは、所望のように、設計エントリーモジュール２０３を使用することによって、またはさまざまな電子設計自動化（ＥＤＡ）またはＣＡＤツール（例えば、産業標準ＥＤＡツール）を使用することによって設計ファイルを生成し得る。ユーザーは、所望のように、グラフィック形式、波形ベースの形式、概略的形式、テキストまたは２進の形式、またはそれらの形式の組み合わせで設計を入力し得る。
【００５３】
合成モジュール２０６は、設計エントリーモジュール２０３の出力を受信する。ユーザーから提供された設計に基づいて、合成モジュール２０６は、ユーザーから提供された設計を実現させる適切な論理回路網を生成する。１つ以上のＦＰＧＡ（明白に示されていない）、例えば、図１のＦＰＧＡ１０３は、合成された全設計またはシステムを実装する。合成モジュール２０６はまた、ユーザー設計においてさまざまなモジュールの組込み、正しい動作およびインターフェイシングを可能にする任意のグルー論理を生成し得る。例えば、合成モジュール２０６は、適切なハードウェアを提供し、その結果、１つのブロックの出力は、別のブロックの入力を正しくインターフェースでつなぐ。合成モジュール２０６は、全設計またはシステムのモジュールの各々の仕様に満たすように、適切なハードウェアを提供し得る。さらに、合成モジュール２０６は、合成された設計を最適化するためのアルゴリズムおよびルーチンを含み得る。最適化を通じて、合成モジュール２０６は、全設計またはシステムを実装する１つ以上のＦＰＧＡのリソースをより効率的に使用するように求める。合成モジュール２０６は、その出力を設置およびルートモジュール２０９に提供する。合成の後に、テクノロジーマッピングモジュールを含み得る（図７に示されていない）。
【００５４】
設置およびルートモジュール２０９は、最適の論理マッピングおよび設置を行うために、設計者の仕様、例えば、時間仕様を使用する。論理マッピングおよび設置は、ＦＰＧＡ内に論理リソースの使用を決定する。特定のリソース、例えば、設計のある部分のための、ＦＰＧＡ内のプログラマブル論理１０６および／またはプログラマブル相互接続を使用することによって、設置およびルートモジュール２０９は、全設計またはシステムの性能を最適化することを助ける。ＦＰＧＡリソースの正しい使用によって、設置およびルートモジュール２０９は、全設計またはシステムの臨界タイミングパスを満たすことを助ける。設置およびルートモジュール２０９はまた、より速い閉鎖のタイミングを提供することを助けるために、臨界タイミングパスを最適化し得る。結果として、全設計およびシステムは、より速い性能を達成し得る（すなわち、より高いクロックレートで動作し、またはより高いスループットを有する）。
【００５５】
検証モジュール２１０は、設計のシミュレーションおよび検証を行う。シミュレーションおよび検証は、部分的に、設計がユーザーの規定された使用に応じることを検証しようとする。シミュレーションおよび検証はまた、設計を試作する前に、任意の設計問題を検出し、かつ修正することを支援する。従って、検証モジュール２１０は、全設計またはシステムの全コストおよびタイム−マーケットを減少させるようにユーザーを助ける。検証モジュール２１０は、所望のように、さまざまな検証およびシミュレーションオプションを支持し、かつ行い得る。オプションは、機能の検証、テストベンチの生成、静的タイミング分析、タイミングシミュレーション、ハードウェア／ソフトウェアシミュレーション、システム内の検証、ボードレベルタイミング分析、信号保全性分析および電磁気適合性（ＥＭＣ）、形式のネットリスト検証などを含み得る。所望のように、他のまたは追加の検証技術を行い得ることを留意する。さらに、設計の検証はまた、適切、かつ所望のように、フローの他の層で行われ得る。
【００５６】
ＦＰＧＡ  ＣＡＤフロー、特に設置およびルートモジュール２０９は、ＦＰＧＡ１０３のための複数の構成の使用を生成し、かつ／または管理するために使用され得る。例えば、いくつかの実施形態において、２つ以上の相補的構成が使用され得る。言い換えると、構成は、１つの構成によって使用されたルーティングパスゲート（または伝送ゲート、ＭＵＸ、ＤＥＭＵＸ等）が、他の構成によって使用されていないように生成される。このように行うために、ユーザーの設計は、まず１つの構成に対してマップ化され得、この構成に使用された（またはその使用のために選択された）リソース（パスゲート、伝送ゲート、ＭＵＸ、ＤＥＭＵＸ等）がマークを付けられ、または目印を付けられ得る。次に、追加の（第２の）構成が、制限内に生成され得、第１の構成によって使用された対応するリソースのうちの任意を使用しない（または可能なら、使用しない）。
【００５７】
いくつかの実施形態において、設置およびルートモジュール２０９は、リソースがどれほど最近に使用されたかを決定することを可能にする情報、例えば、カウントも含み得る。このように、設置およびルートモジュール２０９は、構成に用いられるために、ごくわずか前に使用され、それゆえに、前述の不利な現象から回復するのにより多くの時間を有するそのリソースを選択し得る。
【００５８】
典型的には、比較的少ない比率のルーティングリソースが、ユーザーの設計において使用される。さらに、比較的少ない数のルーティングＭＵＸのパスゲートまたはパストランジスターが、（ルーティングＭＵＸが構成において使用されるときに）使用される。その結果、このスキームは、追加の構成をルーティングさせるのにおいて特定のいくつかの制約を強要しない。いくつかの実施形態において、設置およびルートモジュール２０９は、別の構成によって前に使用されたルーティングリソースまたは接続の使用を否定する（可能にしない）ように構成され得る。代替物として、設置およびルートモジュール２０９は、可能なら、１つ以上の別の構成によって前に使用されたリソースを使用することを回避するために、バイアスされ得る。
【００５９】
図８〜１０は、代表的な実施形態に従う２つの構成によるＦＰＧＡリソースの使用の例を示す。より具体的には、図８〜１０は、設置およびルートモジュール２０９が、可能なら、別の構成によって前に使用されたルーティングリソースまたは接続へのアクセスの使用を否定し、または回避する状況に対応する。図８は、ＦＰＧＡ１０３のルーティングリソースの一部分を示す。入力バッファー３０３は、複数の信号を受信し、そしていくつかのパスゲートまたはパストランジスターを用いて、それらの信号を出力バッファー３０６へルーティングさせる。入力信号は、合成されたユーザーの設計によって指定されるような任意の所望の供給源から来得る。同様に、バッファー３０６の出力信号は、任意の所望の目的地に供給し得る。
【００６０】
一般性を失うことなしに、ユーザー設計が２つの信号をルーティングさせるのを指定することを想定する。このように行うために、設置およびルートモジュール２０９は、ＦＰＧＡ１０３のさまざまなリソース、例えば、複数またはプールのパストランジスター３１０、入力バッファー３０３、および出力バッファー３０６を使用し得る。構成（例えば、ＦＰＧＡ１０３のための第１の構成）を作り、または生成する場合に、設置およびルートモジュール２０９は、例えば、バッファー３０３Ｂおよび３０３Ｅを使用し、それらのそれぞれの供給源から２つの信号を受信し得、そしてバッファー３０６Ｂおよび３０６Ｃを使用し、信号をそれらのそれぞれの目的地に提供し得る。従って、示される例において、設置およびルートモジュール２０９は、バッファー３０３Ｂの出力をバッファー３０６Ｂの入力に結合するために、パストランジスター３１０Ａを使用することによって第１の信号をルーティングさせる。同様に、設置およびルートモジュール２０９は、バッファー３０３Ｅの出力をバッファー３０６Ｃの入力に結合するために、パストランジスター３１０Ｂを使用することによって第２の信号をルーティングさせる。その結果、ＦＰＧＡ１０３の第１の構成（例えば、初期構成）は、前述のように２つの信号をルーティングさせるために、バッファー３０３Ｂ、３０３Ｅ、３０６Ｂ、３０６Ｃ、ならびにパストランジスター３１０Ａおよび３１０Ｂを使用する。設置およびルートモジュール２０９は、１つの構成に使用されるように、バッファー３０３Ｂ、３０３Ｅ、３０６Ｂ、３０６Ｃ、ならびにパストランジスター３１０Ａおよび３１０Ｂにマークを付ける。（回路要素または部品にマークを付ける）この情報が、設置およびルートモジュール２０９によるさらなる使用（さらなる働きまたはアクティビティ）のために、例えば、ディスクのような持続性格納デバイス内に保存され得る。
【００６１】
別の構成（例えば、第２の構成）を生成するために、設置およびルートモジュール２０９は、利用可能なルーティングリソースのプールを試験する。図９に示されるように、この例において、バッファー３０３Ｂ、３０３Ｅ、３０６Ｂ、３０６Ｃ、およびパストランジスター３１０Ａ、３１０Ｂが、前に使用される。従って、設置およびルートモジュール２０９は、可能なら、それらの使用を否定し、または回避する。３０３Ｃとしてラベルを付けられた１つの入力バッファーが未使用、かつ利用可能であり、図９の３１０Ｃおよび３１０Ｄとしてラベルを付けられる２つのパストランジスターも利用可能であること想定する。概して、設置およびルートモジュール２０９は、前に使用されていない（または最近に使用されていない）回路要素、または概してリソースを使用しようとする。図９に示される例において、入力バッファー３０３Ｃおよび３０３Ｅのみが利用されることを想定する。２つの信号をルーティングさせるために、設置およびルートモジュール２０９は、たとえ入力バッファー３０３Ｃおよび入力バッファー３０３Ｅが構成において前に使用されても、それらを選択する。設置およびルートモジュール２０９は、この例において、他の使用のための入力バッファーがないので、入力バッファー３０３Ｅを再使用する。同様に、設置およびルートモジュール２０９は、出力バッファー３０６Ｂおよび３０６Ｃが、ユーザー設計の２つの信号をルーティングさせるための、２つの利用可能な出力バッファーであるので、それらを選択する。最後、設置およびルートモジュール２０９は、２つの信号のルーティングを完成させるために、パストランジスター３１０Ｃ、３１０Ｄを選択する。図１０は、追加または第２の構成のためのルーティングリソースの結果的配列を示す。
【００６２】
いくつかの実施形態において、１つ以上の構成のルーティングの１つ以上の反復が、リソースの再使用を回避し、または否定するように使用され得る。例えば、構成に対するリソールの前のルーティングが、（例えば、２つ以上の構成によってリソースを再使用することを避けるのが望ましい状況において）、２つ以上の構成によって使用されるいくつかのリソースをもたらす場合に、設置およびルートモジュール２０９は、別の構成をルーティングさせた後に１つの構成を再ルーティングさせ得る。別の例として、設置およびルートモジュール２０９は、ルーティングリソース（ただし、他のリソースではない）の再使用（または別の構成による使用）を回避するように構成され得る。ルーティングリソースが、前述の不利な現象のより多くの結果を受ける傾向があるので、設置およびルートモジュール２０９は、同時に両方の構成をルーティングさせ得、２つ以上の構成がＦＰＧＡ１０３内にルーティングリソース以外のリソースを使用することを可能にし得る。
【００６３】
ＦＰＧＡのルーティングリソースが、ＰＢＴＩ、ＮＢＴＩ、および他の不利な影響を最も受けやすいＦＰＧＡリソースになる傾向があるが、ＦＰＧＡ１０３の他のリソースもそれらの影響によって影響され得る。いくつかの実施形態において、ルーティングリソースに加えて、設置およびルートモジュール２０９はまた、構成の含むものの再使用を回避するように、構成の含むものに対してＦＰＧＡ１０３の他のリソース、例えば、プログラマブル論理１０６を選択するように構成され得る。例えば、ＦＰＧＡ１０３の論理要素（例えば、図６の論理要素１５０）は、組み合わせＬＵＴおよびレジスタを含み得る。ＬＵＴおよびレジスタのどちらまたは両方が構成において未使用であり得る。いくつかの実施形態において、設置およびルートモジュール２０９は、好ましくは、前の構成に使用されていない（または少しまたはごくわずか前に使用された）構成のレジスタおよび／またはＬＵＴを使用するように構成され得る。
【００６４】
類似の技術が、ＦＰＧＡ１０３のメモリ／複数のメモリ１２４に適用され得る。典型的には、メモリ１２４のセルまたは場所の全部が所与の構成に使用されていない。メモリ１２４の粒度のような因子に依存して、別の構成のための論理を合成するときに、合成モジュール２０６（図７を参照する）は、２つ以上の構成に対して、未使用のアドレスビットを異なる値に設定し得、それにより、異なるメモリビットが異なる構成によって使用される。代替的には、メモリ１２４の粒度に依存して、設置およびルートモジュール２０９は、メモリの再使用を回避し、または防止する（異なるメモリ場所またはブロックが異なる構成によって使用されることをさせる）ように、異なる構成に対してメモリの場所またはブロックを選択し得る。
【００６５】
本開示のさらなる局面は、信号値の確率に基づいて構成を生成することに関する。具体的には、論理１または論理０の値を有する各ノード（またはノードのセットまたはサブセット）の確率が、計算され得る（このような確率が、典型的に、さまざまな理由、例えば、ＦＰＧＡ回路網の電力消費を推定するために計算される）。次に、ユーザーの設計は、（例えば、図７の合成モジュール２０６を用いて）、２つの構成に使用されるＦＰＧＡ１０３の任意のノードが、１つの実施形態において論理１の値を有し、かつ他の実施形態において論理０の値を有する比較的に高い確率を有する確率を増大させ、または最大化するように合成され得る。さらに、１つの構成の未使用のＦＰＧＡリソース（例えば、未使用のプログラマブル論理１０６）は、未使用の回路ノードの期待された論理値が、別の構成による使用のために選択され、かつプログラム化されるときのそのノードの期待された論理値と反対であるようにプログラム化され得る。それらは、ただ異なるリソースがどのように同じ設計の異なる実装で使用され得る（または、好ましくは使用され得る）かの少数の例である。さまざまな他のスキームはまた、当業者に理解されるように使用され得る。
【００６６】
いったん２つ以上の構成が生成されると、ＦＰＧＡ１０３は、前述のように、デバイスの信頼性および／または長寿命を増加させるために、構成の間または中に切り替え得る。図１１は、代表的な実施形態に従ってＦＰＧＡ１０３に構成情報を提供するための回路配列を示す。構成デバイス４０３（または構成情報の他の供給源）は、いくつかの構成（概して、ｍ個構成、ここで、ｍは、１より大きな正整数である）に対して情報を含み、または格納する。図１１に示される例において、構成デバイス４０３は、１６進アドレス０ｘ００００００００で始まる「構成１」、および１６進アドレス０ｘ８０００００００で始まる「構成２」を含む。ＦＰＧＡ１０３は、特定の構成に対して構成情報にアクセスするために、アドレスライン４０６（または、他の可能なシリアルモードの制御ライン）を使用する。例えば、「構成１」にアクセスするために、ＦＰＧＡ１０３は、アドレスライン４０６を介して１６進アドレス０ｘ００００００００を構成デバイス４０３に提供し得る。応じて、構成デバイス４０３は、構成データライン４１２（または、例えば、並列モードインターフェースのいくつかのライン）を介して指定された構成のための情報をＦＰＧＡ１０３に提供する。
【００６７】
加えて、または代替的には、ＦＰＧＡ１０３は、構成デバイス４０３に、Ｎとして示された数字または値４０９を提供し得、数字または値４０９は、検索されるべきである所望の構成、またはアドレス、または両方を指定する。従って、いくつかの実施形態において、例えば、図１２に示されるように、Ｎは、アドレス情報の一部分として提供され得、ここで、Ｎは、「構成１」と「構成２」との間に選択するように１ビットの情報を構成する。応じて、構成デバイス４０３は、ライン４１２を介して所望の構成に対応する情報を提供する。従って、Ｎ＝０は、構成デバイス４０３に、「構成１」のための情報を提供させ、その一方で、Ｎ＝１は、構成デバイス４０３に、「構成２」のための情報を提供させる。いくつかの実施形態において、アドレス情報は、構成のための情報を選択し、または検索するために使用され得る。いくつかの実施形態において、Ｎは、構成のための情報を選択し、または検索するために使用され得る。
【００６８】
当業者に理解されるように、さまざまな他のスキームおよび回路配列が可能である。例えば、構成情報は、ＦＰＧＡ１０３の内部に格納され得、例えば、ＦＰＧＡ１０３は、構成情報の比較的少量を使用する。さらに、他のタイプのインターフェースおよび制御スキームおよび回路網が、エンドの使用、システムの考慮、所望の速度、柔軟性等のような因子に依存して、使用され得る。
【００６９】
ＦＰＧＡ１０３は、さまざまな方法で構成を切り替え得る。いくつかの実施形態において、ＦＰＧＡ１０３は、それが電力アップし、または自身を構成するときに、構成（例えば、初期構成から、第２、第３、第４（またはそれ以上）の構成）に切り替え得る。例えば、バッテリーバックアップ回路によってバックアップされ、非揮発性メモリまたは格納域内に格納される等の内部のフラッグまたは値は、デバイスが構成され、または構成の切り替えが発生するときに、切り換えられ、または変えられ得る。値またはフラッグは、次にどの構成を使用するかを指定し得る。値は、循環的やり方で増加され得（または減少され得）、すなわち、最後の値が、所望のように、最初の値に対して増加され得る（減少され得る）。
【００７０】
別の例として、構成の切り替えが、自動的に行われ得、例えば、（例えば、電力アップされる場合に）ＦＰＧＡ１０３が構成されるｋ回目ごとに（ｋが、正整数を示す）、または（例えば、前述の不利な現象のために）前の構成が失敗するとき等に、ＦＰＧＡ１０３は、１つ以上の失敗が、構成のうちの１つにおいて検出されるまでに（その時点で、その構成が「使用しない」としてマークを付けられ得る）構成の間に切り換え、または切り替え得る。このスキームは、その構成の再使用を防止し得る。代替的には、構成の失敗に応じて、次の構成（または別の構成）への移動が加えられ得、失敗した構成が何回に試され得た後に、次のｎ回サイクル（ｎが、正整数を示す）に対して失敗した構成を無視し得る。このスキームは、組込み自己テストが、ときどき、（失敗が検出された構成が、同等に検索され得、ただし、各他の構成と同じ頻度に検索されないので）、デバイス摩耗以外の原因に対してエラーに目印を付ける場合、有用であり得る。なお別の例として、構成は、それがユーザーの設計において失敗を引き起こすまでに（その時点で、別の構成への切り替えが加えられ得る）使用され得る。（ユーザー設計における失敗は、典型的に、ＦＰＧＡ１０３の内部に実装された自己テスト回路網、または、例えば、システム広域エラー検出回路網のような外部の回路網によって検出され得る。）別の例として、構成回路網１３０（図４を参照する）への入力が、ユーザーによって主張され得、構成選択値を変えさせ、または切り換えさせ得る。なお別の例として、いくつかの実施形態において、構成の間の切り替えが、ＦＰＧＡ１０３に結合されたカスタム回路網を介して、ＦＰＧＡユーザーによって起動し得る。１つの実施形態において、構成が、ユーザー選択可能であり得る所定の期間の時間が通過するまでに（その時点で、別の構成への切り替えが加えられ得る）使用され得る。
【００７１】
前述のように、どの構成が所与の時間で使用され、またはロードされるべきであるかを決定するための回路網（例えば、制御回路網またはコントローラ）は、ＦＰＧＡ１０３の外側に存在し得る。例えば、このような決定は、例えば、ユーザー、プロセッサ上にソフトウェアを働かせる外部システム等によって、ＦＰＧＡ１０３の外部で作られ得る。いくつかの実施形態において、ＦＰＧＡ１０３は、別のデバイスに対してスレーブであり得る。このような状況において、構成データが、外部回路網によって、ＦＰＧＡ１０３上に「押され得」、またはＦＰＧＡ１０３に通信され得る（この場合において、ＦＰＧＡ１０３が、前述のアドレス情報を提供しない場合もある）。
【００７２】
本明細書で開示された概念の１つの局面に従って、アルゴリズム、方法、フロー、またはソフトウェアが設計され、かつ実装され得、さまざまな装置の実施形態、例えば、前述のような実施形態、または装置および方法の組み合わせ、例えば、ファームウェアに対応する。１つの代表的な実施形態において、方法は、第１の構成に割り当てられた回路要素の第１のセットを使用することによって第１の構成においてＩＣを動作させることと、第２の構成に割り当てられた回路要素の第２のセットを使用することによって第２の構成においてＩＣを動作させることとを含む。方法に従って、第１の構成においてＩＣを動作させた後に第２の構成においてＩＣを動作させるのは、ＩＣの信頼性を向上させる。別の代表的な実施形態において、ＩＣ構成する方法は、回路要素の第１のセットをＩＣの第１の構成に割り当てることと、回路要素の第２のセットをＩＣの第２の構成に割り当てることとを含む。方法は、ＩＣの信頼性を向上させるように、ＩＣの第１の構成が、ＩＣの第２の構成に切り替えられるようにＩＣを構成することをさらに含む。
【００７３】
本明細書で開示された概念の１つの局面に従って、コンピュータシステム、デバイス、プロセッサ、コントローラ等上に、本明細書で開示されたアルゴリズム、方法、フロー、またはソフトウェアを行い、働かせ、または実行し得る。図１３は、本明細書で開示された概念に従って情報を処理するための代表的なシステム１０００のブロックダイヤグラムを示す。システム１０００は、コンピュータデバイス１００５、入力デバイス１０１０、ビデオ／ディスプレイデバイス１０１５、および格納／出力デバイス１０２０を含むが、所望のように、それらのデバイスの各々の２つ以上を含み得る。
【００７４】
コンピュータデバイス１００５は、入力デバイス１０１０、ビデオ／ディスプレイデバイス１０１５、および格納／出力デバイス１０２０に結合する。システム１０００は、所望のように、２つ以上のコンピュータデバイス１００５、例えば、関連のコンピュータデバイスまたはシステムのセットを含み得る。
【００７５】
典型的には、システム１０００は、ユーザーからの入力に関連して動作する。ユーザー入力は、典型的に、システム１０００に、情報処理タスク、例えば、構成の生成、回路要素の選択等を含む、本明細書で開示された情報処理タスクを行わせる。システム１０００は、それらのタスクを行うために、部分的にコンピュータデバイス１００５を使用する。コンピュータデバイス１００５は、情報処理回路網、例えば、中央処理ユニット（ＣＰＵ）、コントローラ、マイクロコントローラ等を含むが、当業者に理解されるように、２つ以上のこのようなデバイスまたは情報処理回路網を使用し得る。
【００７６】
入力デバイス１０１０は、ユーザーから入力を受信し、処理のために、コンピュータデバイス１００５に利用可能な入力を作る。ユーザー入力は、所望のように、データ、命令、または両方を含み得る。入力デバイス１０１０は、英数字入力デバイス（例えば、キーボード）、ポインティングデバイス（例えば、マウス、ローラーボール、ライトペン、タッチセンサー式の装置、例えば、タッチセンサー式のディスプレイ、またはタブレット）、または両方を構成し得る。ユーザーは、英数字キーボードを動作させ、テキスト、例えば、ＡＳＣＩＩ文字をコンピュータデバイス１００５に提供する。同様に、ユーザーは、ポインティングデバイスを動作させ、カーソル位置または制御情報をコンピュータデバイス１００５に提供する。
【００７７】
ビデオ／ディスプレイデバイス１０１５は、ユーザーに視覚的画像を表示する。ビデオ／ディスプレイデバイス１０１５は、所望のように、グラフィック回路網、例えば、グラフィックプロセッサを含み得る。視覚的画像は、コンピュータデバイス１００５の動作についての情報、例えば、グラフ、絵、画像、およびテキストを含み得る。ビデオ／ディスプレイデバイス１０１５は、当業者に理解されるように、コンピュータモニターまたはディスプレイ、投影デバイス等を含み得る。システム１０００が、タッチセンサー式のディスプレイを使用する場合に、ディスプレイはまた、ユーザー入力をコンピュータデバイス１００５に提供するように動作し得る。
【００７８】
格納／出力デバイス１０２０は、コンピュータデバイス１００５が、追加の処理または後の検索のための情報を格納すること（例えば、ソフトコピー）、またはさまざまな形で情報を表すこと（例えば、ハードコピー）、または両方のことを可能にする。例として、格納／出力デバイス１０２０は、所望の媒体上に、かつ所望の形式で情報を格納することが可能である磁気、光学、半導体、または磁気光学のドライブを含み得る。別の例として、格納／出力デバイス１０２０は、コンピュータデバイス１００５からの情報の、プリントされ、またはプロットされた表示を生成するために、プリンター、プロッター、または他の出力デバイスを構成し得る。
【００７９】
コンピュータ読み取り可能な媒体１０２５は、構造的かつ機能的にコンピュータデバイス１００５に相関する。コンピュータ読み取り可能な媒体１０２５は、機能的記述材料を格納し、暗号化し、記録し、そして／または実施する。例示として、機能的記述材料は、コンピュータプログラム、コンピュータコード、コンピュータアプリケーション、および／または情報構造（例えば、データ構造またはファイルシステム）を含み得る。コンピュータ読み取り可能な媒体１０２５によって格納され、暗号化され、記録され、そして／または実施される場合に、機能的記述材料は、機能を授ける。機能的記述材料は、コンピュータ読み取り可能な媒体１０２５に相関する。
【００８０】
機能的記述材料内の情報構造は、情報構造と、コンピュータ読み取り可能な媒体１０２５および／またはシステム１０００の他の局面との間の構造的かつ機能的相関を規定する。これらの相関は、情報構造の機能の実現を可能にする。
【００８１】
さらに、このような機能的記述材料内に、コンピュータプログラムは、コンピュータプログラムと、コンピュータ読み取り可能な媒体１０２５および／またはシステム１０００の他の局面との間の構造的かつ機能的相関を規定する。これらの相関は、コンピュータプログラムの機能の実現を可能にする。従って、一般的な意味では、コンピュータ読み取り可能な媒体１０２５は、情報、例えば、コンピュータデバイス１００５によって実行されるときに、コンピュータデバイス１００５（概して、システム１０００）に、コンピュータ読み取り可能な媒体１０２５に（部分的に、または全部に）含まれるようなコンピュータプログラム、ソフトウェア、方法、アルゴリズム等によって規定される機能を提供させる命令を含む。
【００８２】
例示として、コンピュータデバイス１００５は、コンピュータデバイス１００５のコンピュータメモリ（図面において明白に示されていない）内の機能的記述材料を読み取り、アクセスし、またはそれらをコンピュータメモリ内にコピーする。コンピュータデバイス１００５は、コンピュータメモリに存在する材料に応じて動作を行う。コンピュータデバイス１００５は、コンピュータデバイス１００５に追加の動作を行わせるコンピュータアプリケーションを処理する動作を行い得る。従って、機能的記述材料は、コンピュータデバイス１００５がプロセスを実行し、かつ動作を行う方法と機能的相関を示す。
【００８３】
さらに、コンピュータ読み取り可能な媒体１０２５は、装置を構成し、コンピュータデバイス１００５は、装置から、コンピュータ情報、プログラム、コード、および／またはアプリケーションにアクセスし得る。コンピュータデバイス１００５は、コンピュータデバイス１００５に追加の、または所望のタスクまたは動作を行わせる情報、プログラム、コード、および／またはアプリケーションを処理し得る。
【００８４】
当業者に理解されるように、さまざまな方法でコンピュータ読み取り可能な媒体１０２５を実装し得ることを留意する。例えば、コンピュータデバイス１００５内のメモリは、所望のように、コンピュータ読み取り可能な媒体１０２５を構成し得る。
【００８５】
代替的には、コンピュータ読み取り可能な媒体１０２５は、例えば、コンピュータデバイス１００５が、コンピュータデバイスまたは情報処理システムのネットワークから機能的記述材料を受信する場合に、関連され、相関され、（例えば、導体、ファイバー等を介して）結合され、またはネットワークでつなげられたコンピュータ読み取り可能な媒体のセットを含み得る。コンピュータデバイス１００５は、所望のように、コンピュータ読み取り可能な媒体１０２５、ネットワーク、または両方から、機能的記述材料を受信し得ることを留意する。
【００８６】
上記の開示は、ＦＰＧＡの信頼性および／または寿命スパンを向上させるための技術および回路網を部分的に議論するが、本明細書で開示された概念は、概して、プログラマブルまたは構成可能な回路網を有するＩＣに適用する。このようなＩＣは、プログラマブル論理デバイス（ＰＬＤ）、複雑なＰＬＤ（ＣＰＬＤ）等として当業者にとって公知であり得る。
【００８７】
図面を参照すると、当業者は、さまざまな示されたブロックが、主に概念的機能および信号フローを描き得ることを留意する。実際の回路実装は、さまざまな機能的ブロックに対して別個の識別可能なハードウェアを含み得、または含まない場合もあり、示される特定の回路網を含み得、または含まない場合もある。例えば、所望のように、１つの回路ブロック内にさまざまなブロックの機能を組み合わせ得る。さらに、所望のように、いくつかの回路ブロックにおいて、単一なブロックの機能を実現し得る。回路実装の選択肢は、当業者に理解されるように、所与の実装のための特定の設計および性能仕様のようなさまざまな因子に依存する。ここで説明された実施形態に加えて、他の変更および代替的な実施形態は、当業者によって明白である。従って、この説明は、当業者に、開示された概念を実行する方式を教示し、そして単に例示として解釈されるべきである。
【００８８】
示され、説明された形状および実施形態は、例示的な実施形態としてとられるべきである。当業者は、このドキュメントに開示された概念の範囲から逸脱することなしに、パーツの形状、大きさおよび配列においてさまざまな変化を行い得る。例えば、当業者は、本明細書で例示され、説明された要素に対して同等の要素を代わりに用い得る。さらに、本開示の利益を得る当業者は、本明細書で開示された概念の範囲から逸脱することなしに、他の特徴の使用に独立して、本明細書で開示された概念のある特徴を使用し得る。
【符号の説明】
【００８９】
１０  回路
２０  回路要素
３０  コントローラ
【図１】
0005969284.tif 000002
【図２】
0005969284.tif 000003
【図３】
0005969284.tif 000004
【図４】
0005969284.tif 000005
【図５】
0005969284.tif 000006
【図６】
0005969284.tif 000007
【図７】
0005969284.tif 000008
【図８】
0005969284.tif 000009
【図９】
0005969284.tif 000010
【図１０】
0005969284.tif 000011
【図１１】
0005969284.tif 000012
【図１２】
0005969284.tif 000013
【図１３】
0005969284.tif 000014