(58)【調査した分野】(Int.Cl.,DB名)
前記装置の前記第1の構成は、負バイアス温度不安定性(NBTI)および/または正バイアス温度不安定性(PBTI)の影響を減少させるために、該装置の前記第2の構成に切り替えられる、請求項1に記載の装置。
前記装置の前記第1の構成は、該装置の少なくとも一部分におけるストレスの影響を減少させるために、該装置の前記第2の構成に切り替えられる、請求項1に記載の装置。
前記第1のセットの回路を前記第1の構成に割り当てることと、前記第2のセットの回路要素を前記第2の構成に割り当てることとを行うように適合されているコントローラをさらに含む、請求項1に記載の装置。
前記コントローラは、前記第1のセットの回路要素と前記第2のセットの回路要素とが重ならないように、該第1のセットの回路要素と該第2のセットの回路要素とを割り当てるように適合されている、請求項4に記載の装置。
前記コントローラは、前記第1のセットの回路要素および前記第2のセットの回路要素において少なくとも1つの回路要素が重なるように、該第1のセットの回路要素および該第2のセットの回路要素を割り当てるように適合されている、請求項4に記載の装置。
前記コントローラは、前記第1のセットの回路要素を停止させることと、前記第2のセットの回路要素を起動することとによって、前記装置の前記第1の構成を該装置の前記第2の構成に切り替えるように適合されている、請求項7に記載の装置。
前記装置は、該装置が前記第1の構成に戻るように切り替えられる前に、第2の期間の時間の間前記第2の構成で動作されるように適合されている、請求項9に記載の装置。
前記装置の1つ以上の追加の対応する構成に使用される少なくとも1つ以上の追加のセットの回路要素をさらに含み、該装置の前記第1の構成が、該装置の前記第2の構成に切り替えられ、その後、該装置の該第2の構成が、該装置の該追加の対応する構成のうちの1つ以上に切り替えられる、請求項1に記載の装置。
前記第1のセットの回路要素および前記第2のセットの回路要素のうちの少なくとも1つは、プログラマブル論理および/またはプログラマブル相互接続を含む、請求項1に記載の装置。
前記第2の構成で前記ICを動作させることは、前記第1のセットの回路要素を停止させることと、前記第2のセットの回路要素を起動することとをさらに含む、請求項15に記載の方法。
前記第1の構成で前記ICを動作させることは、第1の期間の時間の間前記第1のセットの回路要素を使用することをさらに含み、前記第2の構成で該ICを動作させることは、第2の期間の時間の間前記第2のセットの回路要素を使用することをさらに含む、請求項14に記載の方法。
前記第1の期間の時間の持続期間は、前記第1のセットの回路要素が、負バイアス温度不安定性(NBTI)および/または正バイアス温度不安定性(PBTI)の影響から回復することを可能にするように選択され、前記第2の期間の時間の持続期間は、前記第2のセットの回路要素が、NBTIおよび/またはPBTIの影響から回復することを可能にするように選択される、請求項14に記載の方法。
前記第1の期間の時間および前記第2の期間の時間は、前記第1のセットの回路要素および前記第2のセットの回路要素のそれぞれが、ストレスの影響から回復することを可能にするように選択される、請求項14に記載の方法。
前記ICを構成することは、該ICが、第1の期間の時間の間前記第1の構成を使用した後に、該ICの該第1の構成が、該ICの前記第2の構成に切り替えられるように該ICを構成することをさらに含む、請求項20に記載の方法。
前記ICが、第2の期間の時間の間前記第2の構成を使用した後に、該ICの該第2の構成が、該ICの前記第1の構成に切り替えられるように該ICを構成することをさらに含む、請求項21に記載の方法。
前記第1のセットの回路要素が回復することを可能にするために十分な長さを有するように前記第1の期間の時間を選択することと、前記第2のセットの回路要素が回復することを可能にするために十分な長さを有するように前記第2の期間の時間を選択することとをさらに含む、請求項22に記載の方法。
前記第1のセットの回路要素を割り当てることは、プログラマブル論理および/またはプログラマブル相互接続を前記ICの前記第1の構成に割り当てることをさらに含み、前記第2のセットの回路要素を割り当てることは、プログラマブル論理および/またはプログラマブル相互接続を該ICの前記第2の構成に割り当てることをさらに含む、請求項20に記載の方法。
前記第1のセットの回路要素および前記第2のセットの回路要素は、該第1のセットの回路要素と該第2のセットの回路要素とが重ならないように割り当てられる、請求項20に記載の方法。
前記第1のセットの回路要素および前記第2のセットの回路要素は、該第1のセットの回路要素と該第2のセットの回路要素とが少なくとも部分的に重なるように割り当てられる、請求項20に記載の方法。
【発明の概要】
【課題を解決するための手段】
【0004】
(概要)
さまざまな実施形態に従う装置および関連する方法は、電子回路網または装置(例えば、IC)の信頼性を向上させる。1つの代表的な実施形態において、装置は、装置の2つの構成に使用される2つのセットの回路要素を含む。第1のセットの回路要素が、装置の第1の構成に使用され、その一方で、第2のセットの回路要素が、装置の第2の構成に使用される。装置の第1の構成は、装置の信頼性を向上させるために、装置の第2の構成に切り替えられる。
【0005】
別の代表的な実施形態において、方法は、第1の構成に割り当てられた第1のセットの回路要素を使用することによって、第1の構成でICを動作させることと、第2の構成に割り当てられた第2のセットの回路要素を使用することによって、第2の構成でICを動作させることとを含む。この方法に従って、第1の構成でICを動作させた後に第2の構成でICを動作させることは、ICの信頼性を向上させる。
【0006】
なお別の代表的な実施形態において、ICを構成する方法は、第1のセットの回路要素をICの第1の構成に割り当てることと、第2のセットの回路要素をICの第2の構成に割り当てることとを含む。方法は、ICの第1の構成が、ICの信頼性を向上させるように、ICの第2の構成に切り替えられるようにICを構成することをさらに含む。
【0007】
本発明は、例えば、以下の項目を提供する。
(項目1)
装置であって、該装置は、
該装置の第1の構成に使用される第1のセットの回路要素と、
該装置の第2の構成に使用される第2のセットの回路要素と
を含み、
該装置の信頼性を向上させるために、該装置の該第1の構成が該装置の該第2の構成に切り替えられる、装置。
(項目2)
上記装置の上記第1の構成は、負バイアス温度不安定性(NBTI)および/または正バイアス温度不安定性(PBTI)の影響を減少させるために、該装置の上記第2の構成に切り替えられる、上記項目のいずれかに記載の装置。
(項目3)
上記装置の上記第1の構成は、該装置の少なくとも一部分におけるストレスの影響を減少させるために、該装置の上記第2の構成に切り替えられる、上記項目のいずれかに記載の装置。
(項目4)
上記第1のセットの回路を上記第1の構成に割り当てることと、上記第2のセットの回路要素を上記第2の構成に割り当てることとを行うように適合されているコントローラをさらに含む、上記項目のいずれかに記載の装置。
(項目5)
上記コントローラは、上記第1のセットの回路要素と上記第2のセットの回路要素とが重ならないように、該第1のセットの回路要素と該第2のセットの回路要素とを割り当てるように適合されている、上記項目のいずれかに記載の装置。
(項目6)
上記コントローラは、上記第1のセットの回路要素および上記第2のセットの回路要素において少なくとも1つの回路要素が重なるように、該第1のセットの回路要素および該第2のセットの回路要素を割り当てるように適合されている、上記項目のいずれかに記載の装置。
(項目7)
上記コントローラは、上記装置の上記第1の構成を該装置の上記第2の構成に切り替えるように適合されている、上記項目のいずれかに記載の装置。
(項目8)
上記コントローラは、上記第1のセットの回路要素を停止させることと、上記第2のセットの回路要素を起動することとによって、上記装置の上記第1の構成を該装置の上記第2の構成に切り替えるように適合されている、上記項目のいずれかに記載の装置。
(項目9)
上記装置は、該装置が上記第2の構成に切り替えられる前に、第1の期間の時間の間上記第1の構成で動作されるように適合されている、上記項目のいずれかに記載の装置。
(項目10)
上記装置は、該装置が上記第1の構成に戻るように切り替えられる前に、第2の期間の時間の間上記第2の構成で動作されるように適合されている、上記項目のいずれかに記載の装置。
(項目11)
上記装置の1つ以上の追加の対応する構成に使用される少なくとも1つ以上の追加のセットの回路要素をさらに含み、該装置の上記第1の構成が、該装置の上記第2の構成に切り替えられ、その後、該装置の該第2の構成が、該装置の該追加の対応する構成のうちの1つ以上に切り替えられる、上記項目のいずれかに記載の装置。
(項目12)
上記第1のセットの回路要素および上記第2のセットの回路要素のうちの少なくとも1つは、プログラマブル論理および/またはプログラマブル相互接続を含む、上記項目のいずれかに記載の装置。
(項目13)
上記第1のセットの回路要素および上記第2のセットの回路要素のうちの少なくとも1つは、ルーティング回路網を含む、上記項目のいずれかに記載の装置。
(項目14)
方法であって、該方法は、
第1の構成に割り当てられた第1のセットの回路要素を使用することによって、該第1の構成で集積回路(IC)を動作させることと、
第2の構成に割り当てられた第2のセットの回路要素を使用することによって、該第2の構成で該ICを動作させることと
を含み、
該第1の構成で該ICを動作させた後に該第2の構成で該ICを動作させることは、該ICの信頼性を向上させる、方法。
(項目15)
上記第1の構成で上記ICを動作させることは、上記第1のセットの回路要素を起動することをさらに含む、上記項目のいずれかに記載の方法。
(項目16)
上記第2の構成で上記ICを動作させることは、上記第1のセットの回路要素を停止させることと、上記第2のセットの回路要素を起動することとをさらに含む、上記項目のいずれかに記載の方法。
(項目17)
上記第1の構成で上記ICを動作させることは、第1の期間の時間の間上記第1のセットの回路要素を使用することをさらに含み、上記第2の構成で該ICを動作させることは、第2の期間の時間の間上記第2のセットの回路要素を使用することをさらに含む、上記項目のいずれかに記載の方法。
(項目18)
上記第1の期間の時間の持続期間は、上記第1のセットの回路要素が、負バイアス温度不安定性(NBTI)および/または正バイアス温度不安定性(PBTI)の影響から回復することを可能にするように選択され、上記第2の期間の時間の持続期間は、上記第2のセットの回路要素が、NBTIおよび/またはPBTIの影響から回復することを可能にするように選択される、上記項目のいずれかに記載の方法。
(項目19)
上記第1の期間の時間および上記第2の期間の時間は、上記第1のセットの回路要素および上記第2のセットの回路要素のそれぞれが、ストレスの影響から回復することを可能にするように選択される、上記項目のいずれかに記載の方法。
(項目20)
集積回路(IC)を構成する方法であって、該方法は、
第1のセットの回路要素を該ICの第1の構成に割り当てることと、
第2のセットの回路要素を該ICの第2の構成に割り当てることと、
該ICの信頼性を向上させるように、該ICの該第1の構成が該ICの該第2の構成に切り替えられるように該ICを構成することと
を含む、方法。
(項目21)
上記ICを構成することは、該ICが、第1の期間の時間の間上記第1の構成を使用した後に、該ICの該第1の構成が、該ICの上記第2の構成に切り替えられるように該ICを構成することをさらに含む、上記項目のいずれかに記載の方法。
(項目22)
上記ICが、第2の期間の時間の間上記第2の構成を使用した後に、該ICの該第2の構成が、該ICの上記第1の構成に切り替えられるように該ICを構成することをさらに含む、上記項目のいずれかに記載の方法。
(項目23)
上記第1のセットの回路要素が回復することを可能にするために十分な長さを有するように上記第1の期間の時間を選択することと、上記第2のセットの回路要素が回復することを可能にするために十分な長さを有するように上記第2の期間の時間を選択することとをさらに含む、上記項目のいずれかに記載の方法。
(項目24)
上記第1のセットの回路要素を割り当てることは、プログラマブル論理および/またはプログラマブル相互接続を上記ICの上記第1の構成に割り当てることをさらに含み、上記第2のセットの回路要素を割り当てることは、プログラマブル論理および/またはプログラマブル相互接続を該ICの上記第2の構成に割り当てることをさらに含む、上記項目のいずれかに記載の方法。
(項目25)
上記第1のセットの回路要素および上記第2のセットの回路要素は、該第1のセットの回路要素と該第2のセットの回路要素とが重ならないように割り当てられる、上記項目のいずれかに記載の方法。
(項目26)
上記第1のセットの回路要素および上記第2のセットの回路要素は、該第1のセットの回路要素と該第2のセットの回路要素とが少なくとも部分的に重なるように割り当てられる、上記項目のいずれかに記載の方法。
【0008】
(摘要)
代表的な実施形態において、装置は、第1のセットの回路要素と第2のセットの回路要素とを含む。第1のセットの回路要素が、装置の第1の構成に使用され、第2のセットの回路要素が、装置の第2の構成に使用される。装置の第1の構成は、装置の信頼性を向上させるために、装置の第2の構成に切り替えられる。
【0009】
添付した図面は、単に、代表的な実施形態を例示するものであり、それゆえに、それらの範囲を限定するものとして考慮されるべきではない。本開示の利益を享受する当業者は、本明細書で開示される概念が、当業者に他の同等の有効な実施形態を与えることを認識する。図面において、2つ以上の図面に使用された同じ数値の指示子は、同じ、類似、または同等の機能、構成要素、またはブロックを示す。
【発明を実施するための形態】
【0011】
(詳細な説明)
本明細書で開示される概念は、概して、電子回路網およびデバイス(例えば、IC)の信頼性および性能に関する。より具体的には、本明細書で開示される概念は、電子回路網またはデバイス(例えば、IC)の信頼性を向上させるための装置および方法を提供する。
【0012】
現代の半導体製造テクノロジー(例えば、相補型金属酸化膜半導体(CMOS)デバイスおよびICを作るために使用されたテクノロジー)は、ときどき、比較的に重要な態様で、デバイス(例えば、p型金属酸化物半導体(PMOS)トランジスターまたはn型金属酸化物半導体(NMOS)トランジスターなどのトランジスター)の特性を変える新たな機構または現象の導入をもたらす。当業者にとって公知であるこのような不利な現象の例は、PMOSデバイスにおける負バイアス温度不安定性(NBTI)と、NMOSデバイスにおける正バイアス温度不安定性(PBTI)とを含む。
【0013】
他の現象もデバイス特性を変え得、信頼性を減少させ得る。例は、少なくとも回路の一部分(例えば、IC)上のストレス(電気的、機械的、環境的(熱い、寒いなど)等)と、時間関連の現象(例えば、エージング)とを含む。上記現象のうちのいくつかは、用途に依存してよりはっきりになり得る。例えば、自動車、軍事または航空宇宙の用途は、他の用途に比べると、回路網に増加したストレスを受けさせ得る。
【0014】
上記現象または他の現象の結果として、デバイスまたは回路の特性は、回路要素(例えば、トランジスター)のライフサイクル中に変化する。例として、トランジスターは、トランジスター(またはIC)の動作寿命の始まりにおいて、トランジスターがトランジスター(またはIC)の動作寿命の終わりに近いときに有する特性と異なる特性を有し得る。デバイス特性の変動は、不利にデバイスの信頼性に影響し得る。
【0015】
本発明の実施形態に従う装置および方法は、上記現象または他の現象の影響を減少させることによって、電子回路網およびデバイスの信頼性および/または寿命期間を向上させる利点を提供する。概して、本開示は、回路に不利に影響し得るストレスおよび現象の影響を除去するために、回路内の回路要素(例えば、IC)の2つ以上の構成を使用する。より具体的には、代表的な実施形態に従う装置および方法は、2つ以上の構成の間で切り替え(または回転し、取り替え、変更し、代用し、またはシフトさせ)、従って、回路要素の使用を切り替えさせる。より具体的には、回路の回路要素(例えば、IC)が、2つ以上のセットに割り当てられる。1つの構成において、1つの回路要素のセットが使用され(例えば、アクティブであり)、その一方で、いくつかの他の回路要素のセット(例えば、未使用の回路要素またはブロック)が、非アクティブである。
【0016】
一定期間の時間の後に、別の構成が使用され、以前は非アクティブな回路要素のうちのいくつか(および、いくつかの実施形態においては、同様に、以前はアクティブな回路要素のいくつか)の使用をアクティブにさせ得、その逆も同様である。このように、構成が、以前の構成に代わって切り替えられる。このプロセスが繰り返され得、所与の構成が、対応する期間の時間に対して使用され得る。代表的な実施形態において、一定期間の時間は、所与の構成に対応する回路要素のうちの少なくともいくつかが、前述のストレスおよび/または他の不利な現象の影響から回復し、または実質的に回復する(例えば、回路要素の以前の特性に戻し、あるいは回路要素の以前の特性に実質的にまたは有効的に戻す)ことを可能にするために十分な長さを有するように選択される。例えば、構成の切り替えは、NBTIおよび/またはPBTIの影響から回復する(または回路要素のその後の使用を可能にするために十分に回復する)ために、以前に使用された(例えば、直前に使用された)回路要素に対して、十分に長期間の時間の後に発生し得る。
【0017】
当業者が理解するように、いくつかの現象が存在し得、回路構成要素は、この現象の影響から有効に回復できず、または回復しない。たとえこのような状況においても、電子回路網の有効寿命が、(例えば、以下により詳細に説明されるように、N個の構成が使用される場合にはN倍で)増加され得る。
【0018】
一般的に言えば、回路内で利用可能または存在する回路要素(例えば、IC)が、選択され、2つ以上の構成に割り当てられる。いくつかの実施形態において、予備の(または余分なもしくは未使用の)回路要素(すなわち、回路網またはデバイス全体における回路要素が、全部の機能を行うために必要とされるかまたは使用される回路要素より多い)が、1つ以上の追加の構成を実装するために使用され得る。いくつかの他の実施形態において、以下に示されるように、いくつかの回路要素が、2つ以上の回路構成に対して共通であり得る。
【0019】
図1は、代表的な実施形態に従う回路10を示す。回路10は、
図1に示されるように、ICまたは概して任意タイプの回路であり得る。回路10は、複数の回路要素20を含む。回路要素20は、個々のトランジスターからいくつかのトランジスター、ブロック、サブシステム等を含む回路まで及ぶ幅広い種類の回路網を構成し得る。粒度のレベルは、回路10の用途、回路要素20の数等のような因子に依存する。
【0020】
回路要素20の各々は、他の回路要素20と同じ機能または異なる機能を実現または提供し得る。従って、いくつかの実施形態において、回路要素20のすべては、同じ機能、または実質的に同じ機能を提供する。他の実施形態において、回路要素20の各々は、他の回路要素20の機能と異なる機能を提供する。なお他の実施形態において、回路要素20のうちのいくつかは、同じ機能、または実質的に同じ機能を提供し、その一方で、他の回路要素20は、1つ以上の異なる機能を提供する。
【0021】
回路10は、コントローラ30をさらに含む。コントローラ30は、回路要素20を選択し、かつ回路要素20を2つ以上の構成に割り当て得る。代替的には、構成に対する回路要素の選択および割り当ては、ユーザー、ソフトウェアまたはファームウェア、および/または他の回路網、例えば、IC外の回路網によって行われ得る。どちらの場合においても、構成は、電子回路網(例えば、IC、電子回路網へ通信されるファイル)に対して外部に格納され、電子回路網(例えば、ICの回路網ブロック、またはIC内の広がり)に対して内部に格納され得る。回路10の所与の構成において、コントローラ30は、1つ以上の回路要素をアクティブにさせ得、すなわち、回路10の全部の機能を実現させるのにおいて関与させ、またはアクティブにさせ得る。言い換えると、所与の構成に対して、コントローラ30は、回路10の全部の所望の機能を実現させるために、どの回路要素20が動作し、またはアクティブになるかを決定する。例えば、回路要素20が論理ゲートを構成し、回路20の所望の全部の機能がマルチプレクサー(MUX)機能であることを想定する。コントローラ30は、所与の構成に対して所望のMUX機能を実装するために、アクティブになるようにいくつかの論理ゲートを選択し、割り当て得る。
【0022】
所与の構成、例えば、初期構成において、コントローラ30は、回路10の1つの構成の(すなわち、その構成に割り当てられる)間に、アクティブになるように、1つの回路要素のセット、例えば、回路要素20A〜20Dを選択する。その後に、コントローラ30(単独に、またはいくつかの他の機構に関連して)は、回路要素20A〜20Dに所望の機能を実現させる。コントローラ30は、回路10の各構成に対して使用されている回路要素20の追跡を保つ。従って、上記の例において、コントローラ30は、構成に使用されるときに、回路要素20A〜20Dを標識する(またはそれらの追跡を保つ)。コントローラ30はまた、回路要素のセット20がどれほど最近に使用され、すなわち、回路10の機能の少なくとも一部分を実現するためにアクティブになったかの追跡を保ち得る。一定の期間の時間の後に、コントローラ30は、回路10の別の構成に対して、別の回路要素のセット、例えば、回路要素20E〜20Gを選択し、前の構成を使用するのを中止し、新たな構成を使用し(回路要素20A〜20Dを非アクティブにし、回路要素20E〜20Gをアクティブにし)、すなわち、別の構成に代わって1つの構成に切り替える。言い換えると、回路10の第2の構成において、コントローラ30は、(停止になる)回路要素20A〜20Dに代わって、回路要素20E〜20Gを作動させる。この後に、回路要素20E〜20Gは、この構成において回路10の機能の少なくとも一部分を実現させる。
【0023】
コントローラ30は、さまざまな方法で所与の構成に対応する回路要素20を停止させ得る。いくつかの実施形態において、コントローラ30は、それらの回路要素を停止させ、または回路要素の電力をオフにし得る。いくつかの実施形態において、コントローラ30は、例えば、回路要素の可能な入力の使用を介してそれらの回路要素を無効にし得る。他の実施形態において、コントローラ30は、それらの回路要素をスリープモードに進入させる。
【0024】
コントローラ30は、構成の切り替えを行い得、すなわち、さまざまな方法で回路要素20のアクティブな状態と非アクティブな状態との切り替えおよび変更を行い得る。例えば、いくつかの実施形態において、コントローラ30は、(例えば、タイマーまたはアクティブな回路要素20A〜20Dの性能のいくつかの測定等を用いて)自動的に切り替えを達成し得る。他の実施形態において、コントローラ30は、少なくとも部分的に、回路10への外部入力、例えば、ユーザーからの入力に応じて切り替えを行い得る。
【0025】
代表的な実施形態、例えば、前述の例において、切り替えの前のアクティブな回路要素は、構成の切り替えの後のアクティブな回路要素と重ならない。従って、上記の例において、回路要素20A〜20Dは、回路要素20E〜20Gと重ならない(異なる)。他の代表的な実施形態において、構成の切り替えの前と後との回路要素は、ある程度に重なり得る。なお別の実施形態において、構成の切り替えの前と後との回路要素は、重なり得、ただし、好ましくは重ならない。なお他の代表的な実施形態において、構成の切り替えの前と後とのアクティブな回路要素は、利用可能な回路要素のプールからランダムに、または擬似ランダムに選択され得る。
【0026】
他の代表的な実施形態において、構成の切り替えの前と後との回路要素のうちのいくつかは、重なり得、または同じでもあり得、ただし、構成の切り替えの前の回路要素のうちの少なくともいくつかの入力および/または出力での論理値は、構成の切り替えの後の対応する値の反対のブール論理である。例えば、切り替えの前のコンバータ20Hは、論理1入力と、従って論理0出力とを有し得る。構成を切り替えた後に、コンバータ20Hが、論理0入力と、従って論理1出力とを有するように、コンバータ20Hは、全体の回路10においてコントローラ30(または別の機構)によって使用され、そして/また配列される。
【0027】
いくつかの実施形態において、1つ以上の追加の構成(すなわち、回路網、IC等において回路要素の3つ以上の構成)が使用され得る。言い換えると、2つの構成に対応する2つの回路要素のセットを有することではなく、3つ以上の回路要素のセットおよび/または2つ以上の構成の切り替えを有し得る。構成の数は、多くの因子、例えば、回路の複雑さ、さまざまな回路要素によって経験されたストレスのレベル、予備の回路要素のタイプおよび/または数、構成の中または間に所望の、または可能にされた重なりの程度等に依存し得る。
【0028】
回路要素の正確な配列と、構成を切り替えるために使用されたスキーム全体とにかかわらず、回路要素の割り当て、かつ構成の切り替えの目的は、回路要素、回路網(例えば、回路10)、またはデバイスの信頼性および/または寿命スパンに不利に影響する現象、例えば、前述の現象の影響を減少させることである。回路網、例えば、ICの信頼性および/または寿命スパンは、比較的にかなりの量で向上され、または増加され得る(いくつかの実施形態において、寿命の2倍または3倍になる)。増加された信頼性および/または寿命スパンは、いくつかの利点、例えば、(例えば、取り替えのための)減少されたコスト、増加された顧客またはエンドユーザーの満足度、および/または比較的に要求の厳しい用途(例えば、自動車、軍事、航空宇宙)に対して増加された適合性をもたらす。
【0029】
より具体的には、回路10の構成において使用される回路要素20のうちのいくつか(例えば、
図1の回路要素20A〜20D)は、アクティブになり、それゆえに、前述の現象を受ける。結果として、構成に使用される回路要素のデバイスの1つ以上の特性は、劣化になり得、そして/または回路要素20は、典型的に、時間にわたってストレスになり得る。一定期間の時間の後に、コントローラ30は、回路10を新たな構成に切り替える。従って、上記の例において、コントローラ30は、回路要素20A〜20Dを非アクティブにさせ、回路要素20E〜20Gをアクティブにさせる。
【0030】
構成の切り替えプロセスが、所望のように繰り返され得る。従って、いくつかの実施形態において、コントローラ30は、一定期間の時間の後に第1の構成に戻すように切り替え得、次に、第2の構成に戻すように切り替え得、他も同様である。3つ以上の構成を有する実施形態において、コントローラ30は、さまざまな方法、例えば、連続、ランダム、擬似ランダム、規定の順序で、構成の中に切り替え得る。
【0031】
本開示の1つの局面に従って、回路10は、コントローラ30が回路10の構成を切り替えることを可能にする回路網および結合機構(例えば、MUX、デマルチプレクサー(DEMUX)、パストランジスター、切り替え行列等)を含む。言い換えると、このような回路網および結合機構は、コントローラ30が、回路10の全部の所望の機能を提供する方式で、所与の構成にアクティブな回路要素20を結合させることを可能にする。同様に、このような回路網および結合機構は、コントローラ30に、他の回路要素20(例えば、回路10の他の構成に使用されたその回路要素)を結合解除し、または停止させるための能力を提供し、すなわち、その回路要素20がその特定の構成の間に、回路10の機能を実現させないようにその回路要素20を構成する。
【0032】
図2は、代表的な実施形態に従う、構成を切り替えるための回路網を描く。この例において、回路要素20Iおよび20Jは、それぞれ、回路10の2つの構成においてアクティブである(すなわち、回路要素20Iは、1つの構成においてアクティブであり、回路要素20Jは、別の構成においてアクティブである)。第1の構成の間に、コントローラ30は、制御信号35Aを使用し、デマルチプレクサー(DEMUX)35に、入力信号32(例えば、回路10の内部信号または回路10に対する外部信号)を回路要素20Iに提供させる。DEMUX35からの信号35Bに応じて、回路要素20Iは、出力信号38Bを提供する。制御信号38Aを用いて、コントローラ30は、MUX38に、信号38BをMUX38の出力信号40として提供させる。
【0033】
回路10の第2の(または別の)構成中に、コントローラ30は、制御信号35Aを使用し、デマルチプレクサー(DEMUX)35に、信号32を回路要素20Jに提供させる。DEMUX35からの信号35Cに応じて、回路要素20Jは、出力信号38Cを提供する。制御信号38Aを用いて、コントローラ30は、MUX38に、信号38Cを出力信号40として提供させる。
【0034】
図3は、別の代表的な実施形態に従う構成の切り替えのための回路網を示す。この実施形態において、コントローラ30は、それぞれの制御されたスイッチ42、44、46、および48を制御するために、それぞれの信号42A、44A、46A、および48Aを使用する。それらのそれぞれの制御信号に応じて、スイッチ42、44、46、および48は、所望のように、開放し、または閉鎖し得る。従って、信号42Aの1つの値は、スイッチ42を閉鎖させ得、その一方で、信号42Aの別の値は、スイッチ42を開放させ得る。同様に、スイッチ44、46、および48は、それらのそれぞれの制御信号、すなわち、制御信号44A、46A、および48Aに応じて動作する。
【0035】
1つの構成において、コントローラ30は、信号42Aを使用し、スイッチ42を閉鎖させ、それゆえに、入力信号32を回路要素20Iの入力に提供する。同様に、信号46Aを用いて、コントローラ30は、スイッチ46を閉鎖させ、そして回路要素20Iの出力信号を出力信号40として提供する。別の実施形態において、コントローラ30は、信号44Aを使用し、スイッチ44を閉鎖させ、その結果、入力信号32を回路要素20Jの入力に提供する。同様に、信号48Aを用いて、コントローラ30は、スイッチ48を閉鎖させ、次に、回路要素20Jの出力信号を出力信号40として提供する。
【0036】
上述されたように、構成の切り替えのためのさまざまな回路網およびスキームは、当業者に理解されるために可能である。
図2〜3は、単に2つの例を提供する。さらに、
図3のスイッチ42、44、46、および48が、当業者に理解されるように、さまざまな方法で実装され得る。例えば、代表的な実施形態において、トランジスター、伝送ゲート、論理ゲート等が使用され得る。
【0037】
本開示の1つの局面は、プログラマブル回路網を有するIC、例えば、フィールドプログラマブルゲートアレイ(FPGA)の信頼性および/または寿命スパンを不利に影響する現象の影響を減少させることに関する。本明細書で開示される概念に従う装置および方法は、NBTI、PBTI、ストレス等のような現象の不利な影響を克服し、または減少させる利点を提供し、特に、FPGAにおいて、FPGAのルーティング相互接続またはプログラマブル相互接続を実装するために、パスゲートまたはパストランジスターを使用する。
【0038】
FPGAに対して、前述の信頼性および寿命スパンを向上させるための技術を適用するために、FPGAのさまざまな回路ブロックを2つ以上の構成に割り当て、次に構成を切り替え得る。いくつかの実施形態において、回路ブロックは、FPGAの骨組の回路網(例えば、プログラマブル論理および/またはプログラマブル相互接続)を含み得る。概して、前述のように、構成に割り当てられるべきである回路ブロックとして、FPGAの任意の回路網(またはこのような回路網の一部分または複数のこのような回路網)を扱い得る。
【0039】
図4は、代表的な実施形態に従うFPGA103の一般的ブロックダイヤグラムを例示する。FPGA103は、構成回路網130、構成メモリ(CRAM)133、コントローラ30、プログラマブル論理106、プログラマブル相互接続109、およびI/O回路網112を含む。加えて、FPGA103は、所望のように、テスト/デバッグ回路網115、1つ以上のプロセッサ118、1つ以上の通信回路網121、1つ以上のメモリ124、1つ以上のコントローラ127、および初期化回路139を含み得る。図面が、FPGA103の一般的ブロックダイヤグラムを示すことを留意する。従って、FPGA103は、当業者に理解されるように、他のブロックおよび回路網を含み得る。このような回路網の例は、クロック生成および分配回路などを含む。さらに、FPGA103は、所望のように、アナログ回路網、他のデジタル回路網、および/または混合信号回路網、ヒューズ、アンチヒューズ等を含み得る。
【0040】
プログラマブル論理106は、構成可能またはプログラマブル論理回路網、例えば、ルックアップテーブル(LUT)、積項論理、パスゲート、マルチプレクサー(MUX)、論理ゲート、レジスタ、メモリ等を含む。プログラマブル相互接続109は、プログラマブル論理106に結合し、(例えば、パスゲートおよび/またはMUXを使用することによって)プログラマブル論理106内のさまざまなブロックと、FPGA103内または外側の他の回路網との間に構成可能な相互接続(結合機構)を提供する。いくつかの実施形態において、プログラマブル論理106および/またはプログラマブル相互接続109は、追加の柔軟性またはプログラム化を提供するために、ヒューズおよび/またはアンチヒューズを含み得る。
【0041】
コントローラ30は、構成の切り替えおよび回路要素の割り当てを含む、FPGA103内のさまざまな動作を制御する。コントローラ30の管理の下で、FPGA構成回路網130は、構成データ(構成データが、供給源、例えば、格納デバイス、ホスト等から、またはFPGA103の構成の切り替えの間に得られ得る)を使用し、FPGA103の機能をプログラム化し、または構成する。構成データが、典型的にCRAM133に格納される。CRAM133の内容は、FPGA103のさまざまなブロック、例えば、プログラマブル論理106およびプログラマブル相互接続109の機能を決定する。構成データは、以下に説明されるように、コンピュータ支援(CAD)フローを用いて生成され得る。いくつかの実施形態において、構成データは、複数の構成のための情報またはデータを含み得る。代替的には、いくつかの実施形態において、コントローラ30は、FPGA103の初期構成のための初期構成データを使用し得、初期構成に基づいて1つ以上の追加の構成を生成し得る。代表的な実施形態において、CRAM133は、構成回路網130内に含み得、別個の回路ブロックであり得、またはFPGA103内に広げられ得る。
【0042】
初期化回路139は、FPGA103のリセットまたは電力アップでさまざまな機能を行わせ得る。I/O回路網112は、幅広い種類のI/Oデバイスまたは回路を構成し得る。I/O回路網112は、FPGA103のさまざまな部分、例えば、プログラマブル論理106およびプログラマブル相互接続109に結合し得る。I/O回路網112は、外部の回路網またはデバイスと通信するために、FPGA103内のさまざまなブロックに機構および回路網を提供する。テスト/デバッグ回路網115は、FPGA103内のさまざまなブロックおよび回路のテストおよびトラブルシュートを容易にする。テスト/デバッグ回路網115は、当業者に公知のさまざまなブロックまたは回路を含み得る。例えば、テスト/デバッグ回路網115は、所望のように、FPGA103が電力アップし、またはリセットした後にテストを行うための回路を含み得る。テスト/デバッグ回路網115はまた、所望のように、コーディングおよびパリティー回路を含み得る。
【0043】
FPGA103は、1つ以上のプロセッサ118を含み得る。プロセッサ118は、FPGA103内の他のブロックおよび回路に結合し得る。プロセッサ118は、当業者に理解されるように、FPGA103内または外部の回路からデータおよび情報を受信し得、幅広い種類の方法で情報を処理し得る。1つ以上のプロセッサ118は、デジタル信号プロセッサ(DSP)を構成し得る。DSPは、所望のように、幅広い種類の信号処理タスク、例えば、圧縮、解凍、オーディオ処理、ビデオ処理、フィルターリング等を行うことを可能にする。
【0044】
FPGA103はまた、1つ以上の通信回路121を含み得る。通信回路121は、当業者に理解されるように、FPGA103内のさまざまな回路とFPGA103外部の回路との間のデータおよび情報の交換を容易にし得る。通信回路121の例は、トランシーバー、ネットワークインターフェース回路等を含む。FPGA103は、1つ以上のメモリ124および1つ以上のコントローラ127をさらに含み得る。メモリ124は、FPGA103内のさまざまなデータおよび情報(例えば、ユーザーデータ、中間結果、計算結果等)の格納を可能にする。メモリ124は、所望のように、粒度またはブロックの形状を有し得る。メモリコントローラ127は、FPGAの外側の回路にインターフェースでつなぐことと、その回路の動作およびさまざまな機能を制御することを可能にする。例えば、メモリコントローラ127は、外部同期の動的ランダムアクセスメモリ(SDRAM)にインターフェースでつなぎ、かつ制御し得る。
【0045】
上述されたように、いくつかの実施形態において、FPGAの骨組またはコアが、1つ以上の構成に対応する回路ブロックとして割り当てられ得る。FPGA103の骨組またはコアは、さまざまな形状をとり得る。いくつかの実施形態において、FPGA103のコア回路網は、他の回路網の中に、プログラマブル論理106およびプログラマブル相互接続109を含む。プログラマブル論理106およびプログラマブル相互接続109は、しばしば、アレイまたは規則的な構造、例えば、2次元アレイのFPGA内にある。従って、いくつかの実施形態において、FPGA103の骨組またはコアが、行と列で配列され得る。
【0046】
図5は、代表的な実施形態に従うFPGA103の平面図を描く。FPGA103は、2次元アレイとして配列されたプログラマブル論理106を含む。水平相互接続セグメントおよび垂直相互接続セグメントとして配列されたプログラマブル相互接続109は、プログラマブル論理106のブロックを互いに結合する。当業者に理解されるように、ユーザーの設計を実装するように特定の方式でブロックを置き得る。ブロック、ブロックの一部分、またはブロックのセットは、FPGA103のタイルまたは領域を構成し得る。従って、FPGA103は、当業者に理解されるように、所望の配置で(2等分、4等分等のように)配列されるいくつかのタイルを含み得る。他の実施形態において、FPGA103は、行および/または列の回路網または回路網のブロックを含み得る。
【0047】
FPGA103のコアまたは骨組は、プログラマブル回路網(プログラマブル論理、プログラマブル相互接続等)のより小さい粒度の構造を含み得る。
図6は、代表的な実施形態に従うFPGA103のプログラマブル論理106およびプログラマブル相互接続109のブロックダイヤグラムを示す。示される代表的な実施形態において、プログラマブル論理106は、論理要素またはプログラマブル論理要素、回路、またはブロック150、ローカル相互接続152、インターフェース回路153、およびインターフェース回路156を含む。
【0048】
論理要素150は、当業者に理解されるように、構成可能またはプログラマブル論理機能、例えば、LUT、フリップフロップ、レジスタ、積項論理等を提供する。ローカル相互接続152は、所望のように、論理要素150のための構成可能またはプログラマブル機構を提供し、論理要素150を互いに、またはプログラマブル相互接続109(ときどき、「グローバル相互接続」と呼ばれる)に結合する。インターフェース回路156およびインターフェース回路159は、回路網のプログラマブル論理106ブロックための構成可能またはプログラマブル方法を提供し、プログラマブル論理106ブロックをプログラマブル相互接続109(および、従って他のプログラマブル論理106)に結合する。インターフェース回路156およびインターフェース回路159は、本発明の説明の利益を得る当業者に理解されるように、MUX、DEMUX、レジスタ、バッファー、パスゲート、ドライバー等を含み得る。より高いレベルにおいて、より大きなプログラマブルブロックを実現するために、いくつかの論理要素150および関連の回路網を組み合わせ得る。所望のレベルの粒度のプログラム化を有する回路網のプログラマブルブロックを生成するために、所与の状況で所望または適切のように、このプロセスを繰り返し得る。
【0049】
FPGA103内のさまざまな回路またはブロックが、1つ以上の構成に割り当てられるべきである回路要素として(例えば、回路要素20(
図1を参照する)として)扱われ得る。代表的な実施形態において、回路要素の割り当てのための粒度のさまざまなレベルが使用され得る。例えば、いくつかの実施形態において、個々のトランジスター(例えば、パスゲートとして働くトランジスター)を、1つ以上の構成に割り当てられるべきである回路要素として扱い得る。別の例として、プログラマブル論理106の回路要素の割り当てを考慮する。いくつかの実施形態において、論理要素(または論理要素内の部品またはブロック)または論理要素のセットが、1つ以上の構成に割り当てられ得る。他の例は、当業者にとって明白であり、例えば、論理要素のブロック、タイル、四分円、行、列等である。
【0050】
同様に、プログラマブル相互接続109内の回路網のさまざまな部分またはブロックが、1つ以上の構成に割り当てられ得る。例えば、1つ以上のローカル相互接続が、1つ以上の構成に割り当てられ得る。別の例として、1つ以上のグローバル相互接続(または1つ以上のこのような相互接続の一部分)が、1つ以上の構成に割り当てられ得る。他の例が、問題のFPGAの構造のような因子、FPGAのコアまたは骨組の粒度のレベル等に依存することは、当業者にとって明白である。
【0051】
図4を参照すると、プログラマブル論理106およびプログラマブル相互接続109に加えて、または代わりに、FPGA103内の他の回路またはブロックが、1つ以上の構成に割り当てられ得る。例えば、いくつかの実施形態において、メモリ124が、FPGA103内のメモリのブロックとして実装され得る。メモリ124内の1つ以上のメモリのブロックが、1つ以上の構成に割り当てられ得る。プロセッサ118、通信回路121、I/O回路網112等に対して、同様な可能性が存在する。概して話すと、FPGA103の1つ以上の回路または回路のブロックの一部分または全部が、FPGA103の信頼性および/または寿命スパンを向上させるために前述のように切り替えられ得る1つ以上の構成に割り当てられ得る。
【0052】
FPGA103の複数の構成を使用するためのさまざまなスキームが可能である。本開示の1つの局面は、FPGA103のための複数の構成を生成するために、FPGA CADフローまたはソフトウェアを使用することに関する。
図7は、代表的な実施形態に従うFPGA CADフローを例示する。CADフローは、設計エントリーモジュール203、合成モジュール206、設置およびルートモジュール209、ならびに検証モジュール210を含む。設計エントリーモジュール203は、所望のように、回路またはその挙動のグラフィックまたはテキストの記述、例えば、概略図、ハードウェア記述言語(HDL)、または波形を用いてさまざまな設計記述ファイルの編集を可能にする。ユーザーは、所望のように、設計エントリーモジュール203を使用することによって、またはさまざまな電子設計自動化(EDA)またはCADツール(例えば、産業標準EDAツール)を使用することによって設計ファイルを生成し得る。ユーザーは、所望のように、グラフィック形式、波形ベースの形式、概略的形式、テキストまたは2進の形式、またはそれらの形式の組み合わせで設計を入力し得る。
【0053】
合成モジュール206は、設計エントリーモジュール203の出力を受信する。ユーザーから提供された設計に基づいて、合成モジュール206は、ユーザーから提供された設計を実現させる適切な論理回路網を生成する。1つ以上のFPGA(明白に示されていない)、例えば、
図1のFPGA103は、合成された全設計またはシステムを実装する。合成モジュール206はまた、ユーザー設計においてさまざまなモジュールの組込み、正しい動作およびインターフェイシングを可能にする任意のグルー論理を生成し得る。例えば、合成モジュール206は、適切なハードウェアを提供し、その結果、1つのブロックの出力は、別のブロックの入力を正しくインターフェースでつなぐ。合成モジュール206は、全設計またはシステムのモジュールの各々の仕様に満たすように、適切なハードウェアを提供し得る。さらに、合成モジュール206は、合成された設計を最適化するためのアルゴリズムおよびルーチンを含み得る。最適化を通じて、合成モジュール206は、全設計またはシステムを実装する1つ以上のFPGAのリソースをより効率的に使用するように求める。合成モジュール206は、その出力を設置およびルートモジュール209に提供する。合成の後に、テクノロジーマッピングモジュールを含み得る(
図7に示されていない)。
【0054】
設置およびルートモジュール209は、最適の論理マッピングおよび設置を行うために、設計者の仕様、例えば、時間仕様を使用する。論理マッピングおよび設置は、FPGA内に論理リソースの使用を決定する。特定のリソース、例えば、設計のある部分のための、FPGA内のプログラマブル論理106および/またはプログラマブル相互接続を使用することによって、設置およびルートモジュール209は、全設計またはシステムの性能を最適化することを助ける。FPGAリソースの正しい使用によって、設置およびルートモジュール209は、全設計またはシステムの臨界タイミングパスを満たすことを助ける。設置およびルートモジュール209はまた、より速い閉鎖のタイミングを提供することを助けるために、臨界タイミングパスを最適化し得る。結果として、全設計およびシステムは、より速い性能を達成し得る(すなわち、より高いクロックレートで動作し、またはより高いスループットを有する)。
【0055】
検証モジュール210は、設計のシミュレーションおよび検証を行う。シミュレーションおよび検証は、部分的に、設計がユーザーの規定された使用に応じることを検証しようとする。シミュレーションおよび検証はまた、設計を試作する前に、任意の設計問題を検出し、かつ修正することを支援する。従って、検証モジュール210は、全設計またはシステムの全コストおよびタイム−マーケットを減少させるようにユーザーを助ける。検証モジュール210は、所望のように、さまざまな検証およびシミュレーションオプションを支持し、かつ行い得る。オプションは、機能の検証、テストベンチの生成、静的タイミング分析、タイミングシミュレーション、ハードウェア/ソフトウェアシミュレーション、システム内の検証、ボードレベルタイミング分析、信号保全性分析および電磁気適合性(EMC)、形式のネットリスト検証などを含み得る。所望のように、他のまたは追加の検証技術を行い得ることを留意する。さらに、設計の検証はまた、適切、かつ所望のように、フローの他の層で行われ得る。
【0056】
FPGA CADフロー、特に設置およびルートモジュール209は、FPGA103のための複数の構成の使用を生成し、かつ/または管理するために使用され得る。例えば、いくつかの実施形態において、2つ以上の相補的構成が使用され得る。言い換えると、構成は、1つの構成によって使用されたルーティングパスゲート(または伝送ゲート、MUX、DEMUX等)が、他の構成によって使用されていないように生成される。このように行うために、ユーザーの設計は、まず1つの構成に対してマップ化され得、この構成に使用された(またはその使用のために選択された)リソース(パスゲート、伝送ゲート、MUX、DEMUX等)がマークを付けられ、または目印を付けられ得る。次に、追加の(第2の)構成が、制限内に生成され得、第1の構成によって使用された対応するリソースのうちの任意を使用しない(または可能なら、使用しない)。
【0057】
いくつかの実施形態において、設置およびルートモジュール209は、リソースがどれほど最近に使用されたかを決定することを可能にする情報、例えば、カウントも含み得る。このように、設置およびルートモジュール209は、構成に用いられるために、ごくわずか前に使用され、それゆえに、前述の不利な現象から回復するのにより多くの時間を有するそのリソースを選択し得る。
【0058】
典型的には、比較的少ない比率のルーティングリソースが、ユーザーの設計において使用される。さらに、比較的少ない数のルーティングMUXのパスゲートまたはパストランジスターが、(ルーティングMUXが構成において使用されるときに)使用される。その結果、このスキームは、追加の構成をルーティングさせるのにおいて特定のいくつかの制約を強要しない。いくつかの実施形態において、設置およびルートモジュール209は、別の構成によって前に使用されたルーティングリソースまたは接続の使用を否定する(可能にしない)ように構成され得る。代替物として、設置およびルートモジュール209は、可能なら、1つ以上の別の構成によって前に使用されたリソースを使用することを回避するために、バイアスされ得る。
【0059】
図8〜10は、代表的な実施形態に従う2つの構成によるFPGAリソースの使用の例を示す。より具体的には、
図8〜10は、設置およびルートモジュール209が、可能なら、別の構成によって前に使用されたルーティングリソースまたは接続へのアクセスの使用を否定し、または回避する状況に対応する。
図8は、FPGA103のルーティングリソースの一部分を示す。入力バッファー303は、複数の信号を受信し、そしていくつかのパスゲートまたはパストランジスターを用いて、それらの信号を出力バッファー306へルーティングさせる。入力信号は、合成されたユーザーの設計によって指定されるような任意の所望の供給源から来得る。同様に、バッファー306の出力信号は、任意の所望の目的地に供給し得る。
【0060】
一般性を失うことなしに、ユーザー設計が2つの信号をルーティングさせるのを指定することを想定する。このように行うために、設置およびルートモジュール209は、FPGA103のさまざまなリソース、例えば、複数またはプールのパストランジスター310、入力バッファー303、および出力バッファー306を使用し得る。構成(例えば、FPGA103のための第1の構成)を作り、または生成する場合に、設置およびルートモジュール209は、例えば、バッファー303Bおよび303Eを使用し、それらのそれぞれの供給源から2つの信号を受信し得、そしてバッファー306Bおよび306Cを使用し、信号をそれらのそれぞれの目的地に提供し得る。従って、示される例において、設置およびルートモジュール209は、バッファー303Bの出力をバッファー306Bの入力に結合するために、パストランジスター310Aを使用することによって第1の信号をルーティングさせる。同様に、設置およびルートモジュール209は、バッファー303Eの出力をバッファー306Cの入力に結合するために、パストランジスター310Bを使用することによって第2の信号をルーティングさせる。その結果、FPGA103の第1の構成(例えば、初期構成)は、前述のように2つの信号をルーティングさせるために、バッファー303B、303E、306B、306C、ならびにパストランジスター310Aおよび310Bを使用する。設置およびルートモジュール209は、1つの構成に使用されるように、バッファー303B、303E、306B、306C、ならびにパストランジスター310Aおよび310Bにマークを付ける。(回路要素または部品にマークを付ける)この情報が、設置およびルートモジュール209によるさらなる使用(さらなる働きまたはアクティビティ)のために、例えば、ディスクのような持続性格納デバイス内に保存され得る。
【0061】
別の構成(例えば、第2の構成)を生成するために、設置およびルートモジュール209は、利用可能なルーティングリソースのプールを試験する。
図9に示されるように、この例において、バッファー303B、303E、306B、306C、およびパストランジスター310A、310Bが、前に使用される。従って、設置およびルートモジュール209は、可能なら、それらの使用を否定し、または回避する。303Cとしてラベルを付けられた1つの入力バッファーが未使用、かつ利用可能であり、
図9の310Cおよび310Dとしてラベルを付けられる2つのパストランジスターも利用可能であること想定する。概して、設置およびルートモジュール209は、前に使用されていない(または最近に使用されていない)回路要素、または概してリソースを使用しようとする。
図9に示される例において、入力バッファー303Cおよび303Eのみが利用されることを想定する。2つの信号をルーティングさせるために、設置およびルートモジュール209は、たとえ入力バッファー303Cおよび入力バッファー303Eが構成において前に使用されても、それらを選択する。設置およびルートモジュール209は、この例において、他の使用のための入力バッファーがないので、入力バッファー303Eを再使用する。同様に、設置およびルートモジュール209は、出力バッファー306Bおよび306Cが、ユーザー設計の2つの信号をルーティングさせるための、2つの利用可能な出力バッファーであるので、それらを選択する。最後、設置およびルートモジュール209は、2つの信号のルーティングを完成させるために、パストランジスター310C、310Dを選択する。
図10は、追加または第2の構成のためのルーティングリソースの結果的配列を示す。
【0062】
いくつかの実施形態において、1つ以上の構成のルーティングの1つ以上の反復が、リソースの再使用を回避し、または否定するように使用され得る。例えば、構成に対するリソールの前のルーティングが、(例えば、2つ以上の構成によってリソースを再使用することを避けるのが望ましい状況において)、2つ以上の構成によって使用されるいくつかのリソースをもたらす場合に、設置およびルートモジュール209は、別の構成をルーティングさせた後に1つの構成を再ルーティングさせ得る。別の例として、設置およびルートモジュール209は、ルーティングリソース(ただし、他のリソースではない)の再使用(または別の構成による使用)を回避するように構成され得る。ルーティングリソースが、前述の不利な現象のより多くの結果を受ける傾向があるので、設置およびルートモジュール209は、同時に両方の構成をルーティングさせ得、2つ以上の構成がFPGA103内にルーティングリソース以外のリソースを使用することを可能にし得る。
【0063】
FPGAのルーティングリソースが、PBTI、NBTI、および他の不利な影響を最も受けやすいFPGAリソースになる傾向があるが、FPGA103の他のリソースもそれらの影響によって影響され得る。いくつかの実施形態において、ルーティングリソースに加えて、設置およびルートモジュール209はまた、構成の含むものの再使用を回避するように、構成の含むものに対してFPGA103の他のリソース、例えば、プログラマブル論理106を選択するように構成され得る。例えば、FPGA103の論理要素(例えば、
図6の論理要素150)は、組み合わせLUTおよびレジスタを含み得る。LUTおよびレジスタのどちらまたは両方が構成において未使用であり得る。いくつかの実施形態において、設置およびルートモジュール209は、好ましくは、前の構成に使用されていない(または少しまたはごくわずか前に使用された)構成のレジスタおよび/またはLUTを使用するように構成され得る。
【0064】
類似の技術が、FPGA103のメモリ/複数のメモリ124に適用され得る。典型的には、メモリ124のセルまたは場所の全部が所与の構成に使用されていない。メモリ124の粒度のような因子に依存して、別の構成のための論理を合成するときに、合成モジュール206(
図7を参照する)は、2つ以上の構成に対して、未使用のアドレスビットを異なる値に設定し得、それにより、異なるメモリビットが異なる構成によって使用される。代替的には、メモリ124の粒度に依存して、設置およびルートモジュール209は、メモリの再使用を回避し、または防止する(異なるメモリ場所またはブロックが異なる構成によって使用されることをさせる)ように、異なる構成に対してメモリの場所またはブロックを選択し得る。
【0065】
本開示のさらなる局面は、信号値の確率に基づいて構成を生成することに関する。具体的には、論理1または論理0の値を有する各ノード(またはノードのセットまたはサブセット)の確率が、計算され得る(このような確率が、典型的に、さまざまな理由、例えば、FPGA回路網の電力消費を推定するために計算される)。次に、ユーザーの設計は、(例えば、
図7の合成モジュール206を用いて)、2つの構成に使用されるFPGA103の任意のノードが、1つの実施形態において論理1の値を有し、かつ他の実施形態において論理0の値を有する比較的に高い確率を有する確率を増大させ、または最大化するように合成され得る。さらに、1つの構成の未使用のFPGAリソース(例えば、未使用のプログラマブル論理106)は、未使用の回路ノードの期待された論理値が、別の構成による使用のために選択され、かつプログラム化されるときのそのノードの期待された論理値と反対であるようにプログラム化され得る。それらは、ただ異なるリソースがどのように同じ設計の異なる実装で使用され得る(または、好ましくは使用され得る)かの少数の例である。さまざまな他のスキームはまた、当業者に理解されるように使用され得る。
【0066】
いったん2つ以上の構成が生成されると、FPGA103は、前述のように、デバイスの信頼性および/または長寿命を増加させるために、構成の間または中に切り替え得る。
図11は、代表的な実施形態に従ってFPGA103に構成情報を提供するための回路配列を示す。構成デバイス403(または構成情報の他の供給源)は、いくつかの構成(概して、m個構成、ここで、mは、1より大きな正整数である)に対して情報を含み、または格納する。
図11に示される例において、構成デバイス403は、16進アドレス0x00000000で始まる「構成1」、および16進アドレス0x80000000で始まる「構成2」を含む。FPGA103は、特定の構成に対して構成情報にアクセスするために、アドレスライン406(または、他の可能なシリアルモードの制御ライン)を使用する。例えば、「構成1」にアクセスするために、FPGA103は、アドレスライン406を介して16進アドレス0x00000000を構成デバイス403に提供し得る。応じて、構成デバイス403は、構成データライン412(または、例えば、並列モードインターフェースのいくつかのライン)を介して指定された構成のための情報をFPGA103に提供する。
【0067】
加えて、または代替的には、FPGA103は、構成デバイス403に、Nとして示された数字または値409を提供し得、数字または値409は、検索されるべきである所望の構成、またはアドレス、または両方を指定する。従って、いくつかの実施形態において、例えば、
図12に示されるように、Nは、アドレス情報の一部分として提供され得、ここで、Nは、「構成1」と「構成2」との間に選択するように1ビットの情報を構成する。応じて、構成デバイス403は、ライン412を介して所望の構成に対応する情報を提供する。従って、N=0は、構成デバイス403に、「構成1」のための情報を提供させ、その一方で、N=1は、構成デバイス403に、「構成2」のための情報を提供させる。いくつかの実施形態において、アドレス情報は、構成のための情報を選択し、または検索するために使用され得る。いくつかの実施形態において、Nは、構成のための情報を選択し、または検索するために使用され得る。
【0068】
当業者に理解されるように、さまざまな他のスキームおよび回路配列が可能である。例えば、構成情報は、FPGA103の内部に格納され得、例えば、FPGA103は、構成情報の比較的少量を使用する。さらに、他のタイプのインターフェースおよび制御スキームおよび回路網が、エンドの使用、システムの考慮、所望の速度、柔軟性等のような因子に依存して、使用され得る。
【0069】
FPGA103は、さまざまな方法で構成を切り替え得る。いくつかの実施形態において、FPGA103は、それが電力アップし、または自身を構成するときに、構成(例えば、初期構成から、第2、第3、第4(またはそれ以上)の構成)に切り替え得る。例えば、バッテリーバックアップ回路によってバックアップされ、非揮発性メモリまたは格納域内に格納される等の内部のフラッグまたは値は、デバイスが構成され、または構成の切り替えが発生するときに、切り換えられ、または変えられ得る。値またはフラッグは、次にどの構成を使用するかを指定し得る。値は、循環的やり方で増加され得(または減少され得)、すなわち、最後の値が、所望のように、最初の値に対して増加され得る(減少され得る)。
【0070】
別の例として、構成の切り替えが、自動的に行われ得、例えば、(例えば、電力アップされる場合に)FPGA103が構成されるk回目ごとに(kが、正整数を示す)、または(例えば、前述の不利な現象のために)前の構成が失敗するとき等に、FPGA103は、1つ以上の失敗が、構成のうちの1つにおいて検出されるまでに(その時点で、その構成が「使用しない」としてマークを付けられ得る)構成の間に切り換え、または切り替え得る。このスキームは、その構成の再使用を防止し得る。代替的には、構成の失敗に応じて、次の構成(または別の構成)への移動が加えられ得、失敗した構成が何回に試され得た後に、次のn回サイクル(nが、正整数を示す)に対して失敗した構成を無視し得る。このスキームは、組込み自己テストが、ときどき、(失敗が検出された構成が、同等に検索され得、ただし、各他の構成と同じ頻度に検索されないので)、デバイス摩耗以外の原因に対してエラーに目印を付ける場合、有用であり得る。なお別の例として、構成は、それがユーザーの設計において失敗を引き起こすまでに(その時点で、別の構成への切り替えが加えられ得る)使用され得る。(ユーザー設計における失敗は、典型的に、FPGA103の内部に実装された自己テスト回路網、または、例えば、システム広域エラー検出回路網のような外部の回路網によって検出され得る。)別の例として、構成回路網130(
図4を参照する)への入力が、ユーザーによって主張され得、構成選択値を変えさせ、または切り換えさせ得る。なお別の例として、いくつかの実施形態において、構成の間の切り替えが、FPGA103に結合されたカスタム回路網を介して、FPGAユーザーによって起動し得る。1つの実施形態において、構成が、ユーザー選択可能であり得る所定の期間の時間が通過するまでに(その時点で、別の構成への切り替えが加えられ得る)使用され得る。
【0071】
前述のように、どの構成が所与の時間で使用され、またはロードされるべきであるかを決定するための回路網(例えば、制御回路網またはコントローラ)は、FPGA103の外側に存在し得る。例えば、このような決定は、例えば、ユーザー、プロセッサ上にソフトウェアを働かせる外部システム等によって、FPGA103の外部で作られ得る。いくつかの実施形態において、FPGA103は、別のデバイスに対してスレーブであり得る。このような状況において、構成データが、外部回路網によって、FPGA103上に「押され得」、またはFPGA103に通信され得る(この場合において、FPGA103が、前述のアドレス情報を提供しない場合もある)。
【0072】
本明細書で開示された概念の1つの局面に従って、アルゴリズム、方法、フロー、またはソフトウェアが設計され、かつ実装され得、さまざまな装置の実施形態、例えば、前述のような実施形態、または装置および方法の組み合わせ、例えば、ファームウェアに対応する。1つの代表的な実施形態において、方法は、第1の構成に割り当てられた回路要素の第1のセットを使用することによって第1の構成においてICを動作させることと、第2の構成に割り当てられた回路要素の第2のセットを使用することによって第2の構成においてICを動作させることとを含む。方法に従って、第1の構成においてICを動作させた後に第2の構成においてICを動作させるのは、ICの信頼性を向上させる。別の代表的な実施形態において、IC構成する方法は、回路要素の第1のセットをICの第1の構成に割り当てることと、回路要素の第2のセットをICの第2の構成に割り当てることとを含む。方法は、ICの信頼性を向上させるように、ICの第1の構成が、ICの第2の構成に切り替えられるようにICを構成することをさらに含む。
【0073】
本明細書で開示された概念の1つの局面に従って、コンピュータシステム、デバイス、プロセッサ、コントローラ等上に、本明細書で開示されたアルゴリズム、方法、フロー、またはソフトウェアを行い、働かせ、または実行し得る。
図13は、本明細書で開示された概念に従って情報を処理するための代表的なシステム1000のブロックダイヤグラムを示す。システム1000は、コンピュータデバイス1005、入力デバイス1010、ビデオ/ディスプレイデバイス1015、および格納/出力デバイス1020を含むが、所望のように、それらのデバイスの各々の2つ以上を含み得る。
【0074】
コンピュータデバイス1005は、入力デバイス1010、ビデオ/ディスプレイデバイス1015、および格納/出力デバイス1020に結合する。システム1000は、所望のように、2つ以上のコンピュータデバイス1005、例えば、関連のコンピュータデバイスまたはシステムのセットを含み得る。
【0075】
典型的には、システム1000は、ユーザーからの入力に関連して動作する。ユーザー入力は、典型的に、システム1000に、情報処理タスク、例えば、構成の生成、回路要素の選択等を含む、本明細書で開示された情報処理タスクを行わせる。システム1000は、それらのタスクを行うために、部分的にコンピュータデバイス1005を使用する。コンピュータデバイス1005は、情報処理回路網、例えば、中央処理ユニット(CPU)、コントローラ、マイクロコントローラ等を含むが、当業者に理解されるように、2つ以上のこのようなデバイスまたは情報処理回路網を使用し得る。
【0076】
入力デバイス1010は、ユーザーから入力を受信し、処理のために、コンピュータデバイス1005に利用可能な入力を作る。ユーザー入力は、所望のように、データ、命令、または両方を含み得る。入力デバイス1010は、英数字入力デバイス(例えば、キーボード)、ポインティングデバイス(例えば、マウス、ローラーボール、ライトペン、タッチセンサー式の装置、例えば、タッチセンサー式のディスプレイ、またはタブレット)、または両方を構成し得る。ユーザーは、英数字キーボードを動作させ、テキスト、例えば、ASCII文字をコンピュータデバイス1005に提供する。同様に、ユーザーは、ポインティングデバイスを動作させ、カーソル位置または制御情報をコンピュータデバイス1005に提供する。
【0077】
ビデオ/ディスプレイデバイス1015は、ユーザーに視覚的画像を表示する。ビデオ/ディスプレイデバイス1015は、所望のように、グラフィック回路網、例えば、グラフィックプロセッサを含み得る。視覚的画像は、コンピュータデバイス1005の動作についての情報、例えば、グラフ、絵、画像、およびテキストを含み得る。ビデオ/ディスプレイデバイス1015は、当業者に理解されるように、コンピュータモニターまたはディスプレイ、投影デバイス等を含み得る。システム1000が、タッチセンサー式のディスプレイを使用する場合に、ディスプレイはまた、ユーザー入力をコンピュータデバイス1005に提供するように動作し得る。
【0078】
格納/出力デバイス1020は、コンピュータデバイス1005が、追加の処理または後の検索のための情報を格納すること(例えば、ソフトコピー)、またはさまざまな形で情報を表すこと(例えば、ハードコピー)、または両方のことを可能にする。例として、格納/出力デバイス1020は、所望の媒体上に、かつ所望の形式で情報を格納することが可能である磁気、光学、半導体、または磁気光学のドライブを含み得る。別の例として、格納/出力デバイス1020は、コンピュータデバイス1005からの情報の、プリントされ、またはプロットされた表示を生成するために、プリンター、プロッター、または他の出力デバイスを構成し得る。
【0079】
コンピュータ読み取り可能な媒体1025は、構造的かつ機能的にコンピュータデバイス1005に相関する。コンピュータ読み取り可能な媒体1025は、機能的記述材料を格納し、暗号化し、記録し、そして/または実施する。例示として、機能的記述材料は、コンピュータプログラム、コンピュータコード、コンピュータアプリケーション、および/または情報構造(例えば、データ構造またはファイルシステム)を含み得る。コンピュータ読み取り可能な媒体1025によって格納され、暗号化され、記録され、そして/または実施される場合に、機能的記述材料は、機能を授ける。機能的記述材料は、コンピュータ読み取り可能な媒体1025に相関する。
【0080】
機能的記述材料内の情報構造は、情報構造と、コンピュータ読み取り可能な媒体1025および/またはシステム1000の他の局面との間の構造的かつ機能的相関を規定する。これらの相関は、情報構造の機能の実現を可能にする。
【0081】
さらに、このような機能的記述材料内に、コンピュータプログラムは、コンピュータプログラムと、コンピュータ読み取り可能な媒体1025および/またはシステム1000の他の局面との間の構造的かつ機能的相関を規定する。これらの相関は、コンピュータプログラムの機能の実現を可能にする。従って、一般的な意味では、コンピュータ読み取り可能な媒体1025は、情報、例えば、コンピュータデバイス1005によって実行されるときに、コンピュータデバイス1005(概して、システム1000)に、コンピュータ読み取り可能な媒体1025に(部分的に、または全部に)含まれるようなコンピュータプログラム、ソフトウェア、方法、アルゴリズム等によって規定される機能を提供させる命令を含む。
【0082】
例示として、コンピュータデバイス1005は、コンピュータデバイス1005のコンピュータメモリ(図面において明白に示されていない)内の機能的記述材料を読み取り、アクセスし、またはそれらをコンピュータメモリ内にコピーする。コンピュータデバイス1005は、コンピュータメモリに存在する材料に応じて動作を行う。コンピュータデバイス1005は、コンピュータデバイス1005に追加の動作を行わせるコンピュータアプリケーションを処理する動作を行い得る。従って、機能的記述材料は、コンピュータデバイス1005がプロセスを実行し、かつ動作を行う方法と機能的相関を示す。
【0083】
さらに、コンピュータ読み取り可能な媒体1025は、装置を構成し、コンピュータデバイス1005は、装置から、コンピュータ情報、プログラム、コード、および/またはアプリケーションにアクセスし得る。コンピュータデバイス1005は、コンピュータデバイス1005に追加の、または所望のタスクまたは動作を行わせる情報、プログラム、コード、および/またはアプリケーションを処理し得る。
【0084】
当業者に理解されるように、さまざまな方法でコンピュータ読み取り可能な媒体1025を実装し得ることを留意する。例えば、コンピュータデバイス1005内のメモリは、所望のように、コンピュータ読み取り可能な媒体1025を構成し得る。
【0085】
代替的には、コンピュータ読み取り可能な媒体1025は、例えば、コンピュータデバイス1005が、コンピュータデバイスまたは情報処理システムのネットワークから機能的記述材料を受信する場合に、関連され、相関され、(例えば、導体、ファイバー等を介して)結合され、またはネットワークでつなげられたコンピュータ読み取り可能な媒体のセットを含み得る。コンピュータデバイス1005は、所望のように、コンピュータ読み取り可能な媒体1025、ネットワーク、または両方から、機能的記述材料を受信し得ることを留意する。
【0086】
上記の開示は、FPGAの信頼性および/または寿命スパンを向上させるための技術および回路網を部分的に議論するが、本明細書で開示された概念は、概して、プログラマブルまたは構成可能な回路網を有するICに適用する。このようなICは、プログラマブル論理デバイス(PLD)、複雑なPLD(CPLD)等として当業者にとって公知であり得る。
【0087】
図面を参照すると、当業者は、さまざまな示されたブロックが、主に概念的機能および信号フローを描き得ることを留意する。実際の回路実装は、さまざまな機能的ブロックに対して別個の識別可能なハードウェアを含み得、または含まない場合もあり、示される特定の回路網を含み得、または含まない場合もある。例えば、所望のように、1つの回路ブロック内にさまざまなブロックの機能を組み合わせ得る。さらに、所望のように、いくつかの回路ブロックにおいて、単一なブロックの機能を実現し得る。回路実装の選択肢は、当業者に理解されるように、所与の実装のための特定の設計および性能仕様のようなさまざまな因子に依存する。ここで説明された実施形態に加えて、他の変更および代替的な実施形態は、当業者によって明白である。従って、この説明は、当業者に、開示された概念を実行する方式を教示し、そして単に例示として解釈されるべきである。
【0088】
示され、説明された形状および実施形態は、例示的な実施形態としてとられるべきである。当業者は、このドキュメントに開示された概念の範囲から逸脱することなしに、パーツの形状、大きさおよび配列においてさまざまな変化を行い得る。例えば、当業者は、本明細書で例示され、説明された要素に対して同等の要素を代わりに用い得る。さらに、本開示の利益を得る当業者は、本明細書で開示された概念の範囲から逸脱することなしに、他の特徴の使用に独立して、本明細書で開示された概念のある特徴を使用し得る。