説明

プログラマブルデバイスに対するソフトエラーロケーションおよび感度検出

【課題】プログラマブルデバイスの構成メモリにおけるエラーを検出する方法を提供すること。
【解決手段】プログラマブルデバイスの構成メモリにおけるエラーを検出する方法であって、該構成メモリから構成メモリデータを読み取ることと、該構成メモリデータにおいてエラーが発生したか否かを判断することと、エラーが発生したという判断に応答して、エラーである該構成データに対応する感度データを読み取ることと、該エラーを無視することができるか否かを判断するために該感度データを解析することと、該エラーを無視することができない場合、修復アクティビティを開始することと、該エラーを無視することができる場合、該修復アクティビティを開始しないことによって該エラーを無視することとを包含する、方法。

【発明の詳細な説明】
【技術分野】
【0001】
(関連出願の引用)
本出願は、参考により援用される、2006年4月21日に出願された米国仮特許第60/793,946号の利益を主張する。本出願は、参考により援用される、2006年4月19日に出願された米国特許出願第11/407,519号に関連する。
【0002】
本発明は、一般に、プログラマブルデバイスに関し、より詳細には、プログラマブルデバイスにおける構成エラーを検出するためのシステムおよび方法に関する。
【背景技術】
【0003】
プログラマブルデバイスは典型的に、ユーザ定義のロジック機能を実行するように構成され得るロジックゲートまたはルックアップテーブルから成る数千ものプログラマブルロジック要素を含む。プログラマブルデバイスは、しばしば、特定の機能(加算器、乗算および蓄積回路、位相ロックループおよびメモリのような)に適合されている多数の特殊回路も含む。これらのプログラマブルロジック要素および特殊回路は、プログラマブル相互接続ラインを用いて相互接続され得る。プログラマブル相互接続ラインは、選択的に、プログラマブルロジック要素と特殊回路との間の接続をルートする。プログラマブルロジック要素と、特殊回路と、プログラマブル相互接続ラインとの組み合わせを構成することによって、プログラマブルデバイスは、ほぼすべての種類の情報処理機能をバーチャルに実行するように適合され得る。
【0004】
プログラマブルデバイスの構成は、典型的に、構成RAM(CRAM)セルのセットまたは構成メモリに格納されている構成データによって制御される。典型的に、CRAMセルにおけるデータは、ルックアップテーブルに対するエントリ、プログラマブルロジック要素に含まれるマルチプレクサに対する制御信号、プログラマブル相互接続ラインを制御する値、およびプログラマブルデバイスのためのオペレーションのモードのようなプログラマブルデバイスの他の局面を制御する値を含む。
【0005】
構成データは、典型的に、プログラマブルデバイスと同じチップパッケージ内の、またはプログラマブルメモリデバイスに接続されている外部の構成デバイス上のフラッシュメモリまたはROMのような不揮発性メモリに格納されている。パワーアップ、リセットまたは他の適切な状況においては、この構成は、プログラマブルデバイスを構成するためにフラッシュメモリからプログラマブルデバイスのCRAMセルにロードされる。
【0006】
プログラマブルデバイスの新しい世代の各々は、製造処理における発達によって、それらの旧式のものより小さいトランジスタから成る。CRAMセルの物理的な寸法が減少するとともに、それらは自発的「ソフトエラー」に対して影響をさらに受けやすくなる。ソフトエラーは、アルファ粒子または宇宙線のようなバックグラウンド放射線によって誘導され得、かつCRAMセルが「0」から「1」の状態へまたはその逆に自発的に変わるという結果をもたらし得る。メモリセルが永久的に機能しないハードエラーとは対照的に、メモリセルにおける誤った情報が再プログラミングによって補正され得るため、ソフトエラーはそのように名付けられている。プログラマブルデバイスの機能がCRAMセルに格納されているデータによって判断されるため、CRAMセルの状態における単一の変化でも、プログラマブルデバイスの機能を変更し得るか、または無能にし得る。さらに、プログラマブルデバイスがより複雑になる一方、さらなるCRAMセルが構成データを格納するために必要とされる。これは、ソフトエラーの周波数をさらに増加させる。
【0007】
ソフトエラーを補正するための従来の方法は、CRAMセルからの構成データを読み取るエラー検出回路網を使用し、エラーの存在を判断することを含む。エラーの検出の際、エラー検出回路網は、典型的に、プログラマブルデバイスがその構成データを再ロードし、かつ適切な動作のために再構成されることをもたらすエラー信号を起こす。他のアプローチにおいては、既知のエラーを補正できるエラー補正回路網もデバイス上に含まれる。この回路網は、構成データのセット全体を再ロードをせずにCRAMにおける構成データを補正するために使用され得る。
【0008】
プログラマブルデバイス上にて実行している多数のアプリケーションは、デバイスの回路網の大部分を使用しない。例えば、典型的なアプリケーションは、含まれる回路網の半分のみしか使用し得ない。それは、CRAMセルの約半分のみが、アプリケーションによって使用されるプログラマブルロジック要素、特殊回路およびプログラマブル相互接続ラインの動作を構成するために必要とされることを意味する。何らかの既知のロジック値に設定され得る残りのCRAMセルは、プログラマブルデバイスの機能に影響を与えない。アプリケーションによって使用されていないプログラマブルロジック要素、特殊回路およびプログラマブル相互接続ラインを制御するCRAMセルは、未使用CRAMセルと言われる。未使用CRAMセルにおけるソフトエラーは、重要でなく、しばしば無視され得る。
【0009】
エラー検出回路網は使用されているCRAMセルと未使用CRAMセルとの間を区別しないため、従来の技術を利用するプログラマブルデバイスは、一般に、CRAMセルにおける任意のエラーの検出の際に構成データを再ロードする。しかしながら、CRAMの大部分がプログラマブルデバイスのアプリケーションによって使用されない場合があるので、これらのソフトエラーの多数は、プログラマブルデバイスの機能に対して影響を与えない「偽陽性(false positive)」である。従って、プログラマブルデバイスは、しばしば、構成データの不必要なローディングおよび格納による、構成データのローディングの間のダウンタイムおよび増加された電力散逸によってプログラマブルデバイスの性能を減少させる偽陽性によって構成データを不必要に再ロードする。
【発明の開示】
【発明が解決しようとする課題】
【0010】
従って、必要とされるのは、エラー補正またはデバイス再構成のような不必要な修正処置を回避するための偽陽性ソフトエラーを検出する回路、方法および装置である。
【課題を解決するための手段】
【0011】
従って、本発明の実施形態は、構成データの再ロードまたは他の修正処置が不必要に実行されないように、格納された構成データにおけるソフトエラーが無視され得る偽陽性であるか否かを検出する回路、方法および装置を提供する。
【0012】
本発明の例示的実施形態は、エラー検出回路および感度プロセッサを有する集積回路を提供する。エラー検出回路は、格納された構成データにおけるソフトエラーの存在を検出する。感度プロセッサは、検出されたソフトエラーが無視され得るか否か、または修正行動(エラーフラグを提供するか、デバイスを再構成するか、またはエラーを補正するかのような)が開始される必要があるか否かを判断する。感度プロセッサは、エラーが未使用の回路網を構成するメモリセルにおいて発生したか否かに基づいて、この判断を行い得る。この判断が構成データがチェックされる度に行われる必要がないように、感度プロセッサは、無視され得る既知のエラーを追跡するためにエラーログを利用し得る。
【0013】
本発明の特定の実施形態においては、ビットストリームは、プログラマブルデバイスによって受信され、かつプログラマブルデバイス上に格納される。ビットストリームは、プログラマブルデバイスを形成するプログラマブルロジック要素、特殊回路およびプログラマブル相互接続ラインを構成するために使用される構成データを含む。ビットストリームは、典型的に、構成データから引き出されたエラーチェックビットをさらに含む。これらのエラーチェックビットは、構成ビットの1つ以上が破損し、かついわゆるソフトエラーになったか否かを判断するために使用され得る。エラーチェックビットは、ソフトエラーの存在および位置を判断するために使用され得る。本発明の一部の状況または一部の実施形態において、ソフトエラーの位置が多数のCRAMセルまたはCRAMセルの群の中において見出されるが、典型的に、ソフトエラーの正確な位置、すなわち、正確なCRAMセルが判断される。さらに、複数のエラーの場合、これらのエラーの位置は判断可能ではない場合がある。
【0014】
本発明の特定の一実施形態のおいては、ビットストリームは、感度データをさらに含む。この感度データは、プログラマバルデバイス上の所定回路が、アプリケーションによって必要とされているか否か、または使用されているか否かを指示する。ここで、プログラマブルデバイスは、そのアプリケーションのために構成されている。より詳細に、感度データの各ビットは、エラーが無視され得るように、1つ以上のCRAMセルにおけるエラーが回路性能全体に十分に不利益な影響を与えるか否かを指示する。エラーが、デバイス性能に対して十分に不利益な影響を与えない誤った構成という結果と成った場合、エラーは無視され得る。これは、エラー指示を提供し、エラー補正を実行し、かつデバイス再構成を被るような修正処置が回避されることを可能にする。
【0015】
本発明の様々な実施形態においては、回路網がデバイス性能に対して十分に不利益な影響を与えるように誤って構成された場合に対する基準は変化し得る。例えば、感度は、回路がアプリケーションによって使用されているか否かに基づき得る。本発明の特定の一実施形態においては、プログラマブルロジック要素がアプリケーションによって使用されていない場合、アプリケーションは、そのプログラマブルロジック要素を構成するために使用されるCRAMセルにおけるエラーに対しては影響を受けやすくない。しかしながら、他の実施形態においては、未使用の回路における一部のエラーは、使用されている他の回路に逆に影響し得る。例えば、そのようなエラーは、使用されているドライバを不必要にロードし得るか、電力散逸を増やし得るか、または性能が望ましくなく減少されるそのような他の影響を有し得る。従って、本発明の様々な実施形態においては、これらおよび他の基準は、感度データを生成するのに使用され得る。
【0016】
例えば、感度データの各ビットは、1つのCRAMセルにおけるエラーに対するアプリケーションの感度を指示し得る。しかしながら、これは、大きな感度データベースの使用を必要とする。従って、本発明の特定の一実施形態においては、各感度ビットは、CRAMセルの群の中の任意の1つのCRAMセルにおけるエラーに対するアプリケーションに対する感度を指示する。
【0017】
本発明の特定の一実施形態においては、プログラマブルロジック要素は、ルックアップテーブル部およびレジスタ部を含む。従って、プログラマブルロジック要素のルックアップテーブルまたはレジスタ部を構成するために使用されるCRAMセルの群におけるエラーに対する感度は、1ビットで追跡され得る。代替的に、1つの感度ビットは、プログラマブルロジック要素、またはロジックアレイブロックのようなロジック要素の群を構成するために使用される任意の1つのCRAMセルにおけるエラーに対するアプリケーションの感度を指示し得る。
【0018】
さらに、この特定の実施形態においては、ルーティングは、ルーティングマルチプレクサを用いて構成される。これらのマルチプレクサは、典型的に、6〜15のCRAMセルの制御の下にあり得る。従って、そのようなCRAMセルの群における任意のビットにおけるエラーに対するアプリケーションの感度は、感度ビットで追跡され得る。代替的に、ルーティングマルチプレクサの群に対するCRAMセルにおけるエラーに対する感度は、感度ビットで追跡され得る。例えば、ロジックアレイブロックにおけるローカルルーティングマルチプレクサは、感度ビットで追跡され得る。また、本発明の任意のこれらの実施形態においては、CRAMビットにおけるエラーに対するアプリケーションの感度は、CRAMビットがアプリケーションによって使用される回路網を構成するか否かによって判断され得る。
【0019】
アプリケーションが発生するエラーに対して影響を受けやすい場合、感度プロセッサは、プログラマブルデバイスが再構成されることをもたらす外部デバイスにフラグを提供し得る。それは、アプリケーションがエラーに対して影響を受けにくい場合においては無視され得る。いずれの場合においても、アプリケーションによるデータ収集および解析に対するエラーを追跡することが望ましくあり得る。
【0020】
エラーである構成ビットが無視され得ることが一旦判断されると、構成データがチェックされる度に同じ判断をする必要がないことが望ましい。従って、本発明の他の例示的実施形態は、無視され得るソフトエラーを追跡するエラーログを含む。エラーが検出された場合、エラーが無視され得るか否かをみるためにログがチェックされる。エラーがログされていなかった場合、感度データは、エラーが無視され得るか否かをみるために情報を求める。エラーが無視され得る場合、エラーは次いで、今後の参考のためにログされる。
【0021】
本発明の様々な実施形態においては、エラー補正回路網もまた含まれる。アプリケーションがエラーに対して影響を受けやすい場合、ソフトまたはハードリセットのような、補正のほかのさらなる行動が必要になり得る。さらに、複数のエラーが発生した場合、リセットが必要とされ得る(補正回路網が複数のエラーを補正できない場合)。アプリケーションがエラーに対して影響を受けにくい場合においても、そのようなエラーは典型的に、それらが後のエラーが補正されることができないという状況をつのらせてもたらさないように、補正されるべきである。また、いずれの場合においても、アプリケーションによる解析に対するエラーを追跡することが望ましくあり得る。
【0022】
本発明の様々な実施形態は、本明細書中に説明される1つ以上のこれらまたは他の特徴を組み入れ得る。本発明の本質および利点のより良い理解は、以下の詳細の説明および添付の図面を参照することによって得られ得る。
【0023】
本発明は、さらに以下の手段を提供する。
(項目1)
プログラマブルデバイスの構成メモリにおけるエラーを検出する方法であって、
該構成メモリから構成メモリデータを読み取ることと、
該構成メモリデータにおいてエラーが発生したか否かを判断することと、
エラーが発生したという判断に応答して、
エラーである該構成データに対応する感度データを読み取ることと、
該エラーを無視することができるか否かを判断するために該感度データを解析することと、
該エラーを無視することができない場合、修復アクティビティを開始することと、
該エラーを無視することができる場合、該修復アクティビティを開始しないことによって該エラーを無視することと
を包含する、方法。
(項目2)
上記修復アクティビティを開始しないことによって上記エラーを無視する行動が、エラーログに該エラーの位置を格納することをさらに含む、項目1に記載の方法。
(項目3)
上記エラーが発生したという上記判断に対する上記応答が、
上記感度データを読み取る前に上記位置を上記エラーログと比較することと、
上記エラーの位置が該エラーログに予め格納されていない場合にのみ、該感度データを読み取ることと
をさらに含む、項目2に記載の方法。
(項目4)
発生した上記エラーがエラーチェックビットを用いて判断されていようとなかろうと、上記構成メモリが領域に分割され、かつ該エラーチェックビットが各領域に対して個別に判断される、項目1に記載の方法。
(項目5)
上記修復アクティビティが上記エラーを補正することを含む、項目1に記載の方法。
(項目6)
上記修復アクティビティが上記プログラマブルデバイスを再構成することを含む、項目1に記載の方法。
(項目7)
エラーである上記構成データによって構成されている回路が、上記プログラマブルデバイス上にて実行するアプリケーションによって使用されるか否かに基づいて、上記感度データが部分的に生成される、項目1に記載の方法。
(項目8)
プログラマブルデバイスにおける構成メモリに格納される構成データにおけるエラーをチェックする方法であって、該構成データが第1のアプリケーションのために該プログラマブルデバイスを構成し、該方法は、
該構成メモリから該構成データの一部を読み取ることと、
該構成データの該一部に対応する複数のエラーチェックビットの一部を読み取ることと、
該構成データの該一部にエラーがあるか否かを判断することと、
該エラーがあった場合、ソフトエラーが該第1のアプリケーションに不利益に影響するか否かを判断することと、
不利益に影響すると判断した場合、該ソフトエラーが生じたという指示を提供することと、
不利益に影響しないと判断した場合、該ソフトエラーが生じたという該指示を提供しないことと
を包含する、方法。
(項目9)
上記ソフトエラーが上記第1のアプリケーションに不利益に影響するか否かを判断することが、メモリから感度データを読み取ることによって行われる、項目8に記載の方法。
(項目10)
上記構成データの上記一部を読み取る前に、該構成データを構成デバイスから読み取り、かつ該構成データを上記構成メモリに格納することをさらに包含する、項目8に記載の方法。
(項目11)
上記構成メモリから上記構成データを読み取る前に、該構成データを用いて上記複数のエラーチェックビットを判断することをさらに包含する、項目10に記載の方法。
(項目12)
上記プログラマブルデバイス上に上記複数のエラーチェックビットを格納することをさらに包含する、項目11に記載の方法。
(項目13)
上記エラーが上記第1のアプリケーションに不利益に影響することが判断された場合、上記ソフトエラーを補正することをさらに包含する、項目8に記載の方法。
(項目14)
上記エラーが上記第1のアプリケーションに不利益に影響することが判断された場合、上記プログラマブルデバイスを再構成することをさらに包含する、項目8に記載の方法。
(項目15)
構成データを格納するための第1の複数のメモリセルと、
エラーチェックビットを格納するための第2の複数のメモリセルと、
感度データを格納するための第3の複数のメモリセルと、
該構成データ、該エラーチェックビットおよび該感度データを含む構成ビットストリームを受信し、該第1の複数のメモリセルに該構成データ、該第2の複数のメモリセルに該エラーチェックビット、および該第3の複数のメモリセルに該感度データを書き込むための構成コントローラと、
該第1の複数のメモリセルから該構成データを、および該第2の複数のメモリセルから該エラーチェックビットを読み取り、かつ該構成データにおいてエラーが発生したか否かを判断するためのエラー検出回路であって、該エラーが発生したと判断された場合、該エラーが発生したところに該第1のメモリセルのうちの最初の1つに対してアドレスの少なくとも一部を提供するためのエラー検出回路と、
該アドレスの少なくとも一部を受信し、該アドレスの該少なくとも一部に対応する該感度データを受信し、かつ集積回路上にて実行するアプリケーションが発生した該エラーに対して影響を受けやすいか否かを判断するための感度プロセッサと
を備える、集積回路。
(項目16)
上記エラーが発生し、かつ上記アプリケーションが該エラーに対して影響を受けやすい場合、該エラーが発生したところでデータが上記メモリセルに書き込まれる、項目15に記載の集積回路。
(項目17)
上記エラー検出回路によって検出される上記エラーを補正するためのエラー補正回路をさらに備える、項目16に記載の集積回路。
(項目18)
上記アプリケーションが発生した上記エラーに対して影響を受けやすいものであろうとなかろうと、上記エラー補正回路が、上記エラー検出回路によって検出されるエラーを補正する、項目17に記載の集積回路。
(項目19)
エラーが発生し、かつ上記アプリケーションが該エラーに対して影響を受けやすい場合、上記集積回路が再構成される、項目15に記載の集積回路。
(項目20)
上記プログラマブルデバイスのどの部分が上記第1のアプリケーションによって使用されるかに基づいて、上記複数の感度ビットが部分的に判断される、項目15に記載の集積回路。
(項目21)
上記プログラマブルデバイスの対応する部分が上記第1のアプリケーションによって使用されているか否かに基づいて、上記感度ビットの各々が部分的に判断される、項目15に記載の集積回路。
【0024】
(摘要)
リローディング構成データまたは他の修正処置が不必要に実行されないように、格納された構成データにおいて発生するソフトエラーが無視され得る偽陽性であるか否かを検出する回路、方法および装置。一実施例は、エラー検出回路および感度プロセッサを含む集積回路を提供する。エラー検出回路は、エラーの存在を検出する。感度プロセッサは、検出されたエラーが無視され得るか否か、または修正行動(エラーフラグを提供するか、デバイスを再構成するか、またはエラーを補正するかのような)が開始されるべきであるか否かを判断する。感度プロセッサは、エラーが未使用の回路網を構成するメモリセルにおいて発生したか否かに基づいて、この判断を行い得る。この判断が構成データがチェックされる度に行われる必要がないように、感度プロセッサは、無視され得る既知のエラーを追跡するためにエラーログを利用し得る。
【発明を実施するための最良の形態】
【0025】
図1は、典型的なプログラマブルデバイス100に対するCRAMアレイ110およびプログラミング構造の概観である。プログラマブルデバイス100は、行および列のアレイ110に組織化された幾つかのCRAMセルを含む。アドレスレジスタ120は、ラインのセットを含み、これらのラインそれぞれがCRAMセル110の列をアドレシングする。データレジスタ130は、CRAMセル110の列に書き込むデータまたはプログラミングするデータを含むか、あるいはCRAMセル110の列から読み返されるデータを含む。
【0026】
データがCRAMセル110に書き込まれるとき、構成コントローラ150は、構成メモリからの構成データを読み出すか、あるいは受け入れる。この構成メモリは、構成デバイス140の形態で別個のチップ上にあり得るか、あるいはプログラマブルデバイス100と同じチップ上に含まれ得るかのいずれかでる。データは、構成メモリから読み出され、データレジスタ130に提供される。完全なデータの列が利用可能なとき、1つの列は、アドレスレジスタ120によってアドレシングされたラインの1つをストロボすることで、プログラミングされる。
【0027】
本発明の特定の実施形態において、アドレスレジスタ120は、事前に全て0に設定され、単一の1がシフトされ、プログラミングされるべき列を選択する。別のバリエーションにおいて、アドレスレジスタは、異なるコード化を使用し得る。プログラマブルデバイスは、アドレスまたはデータのより小さなブロックにアレンジされ得るし、データは一度に単一のビットまたは幾つかのビットで読み出され得るし、他の考えられるバリエーションもあり得る。
【0028】
CRAMセルが書き込まれた後に、構成コントローラ150は、周期的にCRAMデータを読み返し、エラーをチェックし得る。構成コントローラ150は、再び、1つ以上の列を介して順序付け、データをデータレジスタ130の中に読み返す。各列が読まれた後に、構成コントローラ150は、このデータを用いて、エラー検出計算(computation)の幾つかのステップを実行する。これは、典型的には、データを構成コントローラ150の中にシフトして、CRCチェックを実行することによって行われる。代替として、構成コントローラ150は、列または行のデータの様々なサブセットを含むCRAMセルのブロック上のエラー検出コードまたはエラー補正コードを計算し得る。代替として、CRAMの任意の数の列および行に及び得るCRAMセルのブロックも、またエラー検出コードまたはエラー補正コードを含み得る。代替として、所与のエラー補正ブロック内のCRAMセルが、必ずしも近接しないように、領域は、複数の行および列にわたって、交互配置され(interleaved)得る。
【0029】
エラーが検出された場合、構成コントローラ150は、エラーフラグ152を上げ得る。このエラーフラグ152は、プログラマブルデバイス100の内部または外部のいずれかにあるロジック信号であり得る。プログラマブルデバイス100をモニタする外部ロジック(図示せず)は、この信号を用いて、このプログラマブルデバイス100を再構成し得る。検出エラーのイベントにおいて、プログラマブルデバイス100の状態は、信頼され得ない。なぜなら、エラーが発生して、それが検出されるまで、どのくらい時間が過ぎたかが分からないので、その結果、プログラマブルデバイス100は、予測できない方法で損なわれ(corrupted)得るからである。プログラマブルデバイス100の再構成および初期化は、これらの状況下での唯一の選択肢であることが多い。
【0030】
例示的なプログラマブルデバイス100の更なるバリエーションは、CRAM110コンテンツを内部で補正するためのエラー補正回路網を含み得るが、これは、偽陽性の問題に対処しない。さらに、一部の構成コントローラ150は、例えば、ライン154上で、構成データを読み返して、その構成データをプログラマブルデバイスから追い出す能力を提供し得る。
【0031】
再び、ソフトエラーが偽陽性の場合、すなわち、そのエラーが使用されていない回路を構成するCRAMセル内のエラーであれば、そのエラーは無視され得る。したがって、エラーが偽陽性であるエラーの検出に引き続いて、デバイスを再構成することは望ましくない。このため、本発明の例示的な実施形態は、プログラマブルデバイスの動作に顕著な影響を与えないCRAMのソフトウェアエラーを無視することによって、プログラマブルデバイスを不必要に再構成することを低減する。本発明の実施形態は、最初に、エラーチェックビットを用い、デバイスの動作に潜在的に影響を与えるソフトエラーを検出し、位置決めする。その後、そのソフトエラーがデバイス性能に望ましくない度合いの顕著な影響を及ぼすエラーであるか、あるいは無視され得るエラーであるかが判断される。
【0032】
本発明の実施形態において、エラー補正コード(ECC)ユニットは、CRAM内に格納された構成データのビットのブロックまたはサブセット上でエラーチェックを実行する。このサブセットは、おそらくは、プログラマブルデバイス内の全てのCRAMデバイスであり得るが、典型的なエラー補正コードは、単一のエラーのみを補正し得、それゆえ、プログラマブルデバイスを構成データの幾つかの小さなブロックで、そのそれぞれが単一のソフトエラーを許容し得るブロックに分割することは、有利である。
【0033】
本発明の実施形態において、ECCユニットは、単一のエラーのロケーションを識別することができる。さらなる実施形態において、少なくとも高い可能性で、2つ以上のソフトエラーが発生したかどうかを識別し得る。これによって、プログラマブルデバイスが多数のソフトエラーを許容できることを示す。ただし、各ブロックにおけるソフトエラーの数が、ECCユニットがエラーのロケーション(単数または複数)を識別する能力を超える場合を除く。
【0034】
図2は、本発明の実施形態に従うプログラマブルデバイスの例示的な構成メモリを示す。この図は、デバイスを構成するために使用されるCRAMセル210、アドレスレジスタ220、データレジスタ230、およびエラーチェックビットを格納するために使用されるCRAMセル240を含む。
【0035】
本発明のこの実施形態において、CRAMセル210の各ブロックは、エラーチェックビットを格納するために使用される1つ以上の追加CRAMセル240の関連コレクションを有する。これらのCRAMセル240は、プログラマブルデバイスの任意の部分を制御するために使用されるのではなく、CRAMセル210のそのブロックに対するエラーチェックビットを格納するために使用される。本発明の一実施形態において、ロケーションのサブセットは、CRAMセル210の列であり、エラーチェックビットは、その列の端に通常なるところを超えて、垂直に拡がり得る。エラーチェックビットは、これらの追加のCRAMセル240の中に格納される。他のバリエーションも可能であり、列の部分、2つ以上の列、またはデータの関連ブロックとして取り扱うのが効率的であるCRAMセルの任意の領域を含む。
【0036】
図3は、本発明の実施形態に従うソフトエラー検出ユニットおよび関連回路網を含むブロック図である。この図は、FPGAまたは他のプログラマブルデバイス300を含む。このFPGAまたは他のプログラマブルデバイス300は、構成コントローラ310、エラー補正コードユニット320、感度プロセッサ330、随意のエラーログ340、感度データデータベースまたはメモリ350、および外部構成デバイス360をさらに含む。
【0037】
構成中に、構成コントローラ310は、構成デバイス360からの構成データを読み出す。構成コントローラ310は、構成データをCRAMセル(図示せず)に書き込む。構成後に、CRAMセル内のデータは、周期的にソフトエラーをチェックされる。これは、CRAMセルから構成データおよびエラーチェックビットを読み出すECCユニット320によって行われ得る。
【0038】
ソフトエラーが検出されると、ECCユニット320は、エラーのロケーションを決定する。ECC算出(calculation)の幾つかのタイプは、2つ以上のロケーションを識別可能であり得、本開示における「ロケーション」の呼称は、1つ以上のロケーションを意味するものと解釈されるべきである。実施形態において、コードによって特定されるロケーションは、不良ビットの正確な指標と同じくらいに厳密である必要はないが、エラーを位置決めする何らかのメリットを提供し、この統計を活かすことができるのに十分厳密であり得る。これは、エラーが、ユーザ回路の動作に影響を与えないロケーションに対応する可能性が高いという意味においてである。
【0039】
本発明の一実施形態において、ロケーションは、特定の不良ビットの正確な指標である。別の実施形態において、ロケーションは、列を備えるビットペアのセットの指標であり得る。したがって、以上の段落で記載された2つの異なるレベルの粒状性(granularity)があることに留意すべきである。すなわち、(1)各ECC算出に使用されるブロックサイズを形成する構成データの量、(2)ソフトエラーがブロック内の発生したロケーションを識別するときの解像度のレベルである。本発明の特定の実施形態において、エラーのロケーションは、不良ビットを有するブロック数と、そのブロック内のビットのロケーションとの双方を備える。
【0040】
エラーチェック回路は、各ブロック上でエラー算出を実行し、エラーが発生する場合、フラグオンライン332を上げる。上述のように、エラーが見つかったとき、ECCユニット320は、またエラーのロケーションを決定する。ハミングコードのようなエラー補正コードの場合、これは、当然、ECC算出の一部であり得る。CRC算出の場合、エラーのロケーションを決定するには、さらなる計算を要し得る。エラー(単数または複数)がECCユニットの能力を超えて発生した場合、ECCユニットは、また信号を送り得る。例えば、シングルビットエラーのロケーションを識別し得るのみであるが、ダブルエラーを検出し得るECCユニットにおいて、ダブルビットエラーの場合である。
【0041】
エラーのロケーションが決定されると、ECCユニット320の実施形態は、フラグおよびソフトエラーのロケーションを感度プロセッサ330にパスする。感度プロセッサ330は、検出されたエラーのロケーションに対応するアドレスを用いて、感度データメモリ350にアクセスする。結果として得られた感度データは、ユーザ回路が特定のロケーションにあるエラーに敏感(sensitive)であるか否かを特定する値である。
【0042】
再び、様々な基準が感度を規定するために使用され得る。本発明の特定の実施形態において、エラーが、現在構成されているようなプログラマブルデバイスの動作に十分に有害であって、修復措置が取られるべきであり、エラーは無視されるべきではない場合、そのエラーは、敏感であると考えられる。異なる設計またはアプリケーションが、このプログラマブルデバイスの異なる部分に利用されているので、このプログラマブルデバイスに対する感度データは、それに従って変動する。本発明の実施形態において、感度データは、プログラマブルデバイスの構成データの決定と関連して、ソフトウェアによって事前に計算され、感度データメモリの中にロードされる。本発明の特定の実施形態において、感度データの各ビットは、CRAMセルの個数に対応する。その個数のCRAMセルの任意の一つにあるエラーが、デバイスの動作に十分に有害であるので、修復措置が取られるべきとき、対応する感度データビットは、その設計がこれらのCRAMセルの一つでソフトエラーに敏感であることを示すように設定される。
【0043】
感度プロセッサ330は、検索された感度データを解析し、検出されたソフトエラーが敏感であるかどうか、すなわち、そのエラーが現在構成されているようなプログラマブルデバイスの動作に十分に有害で、修復措置が必要とされるほどであるかどうかを判断する。感度プロセッサ330は、次いで、信号オンライン332をアサートし、敏感なエラーの存在を示し得る。エラーが敏感でない場合、本発明の随意の実施形態は、そのエラーを随意のエラーログメモリ340にログインし、そのエラーがさらに発生しても、同じ感度のエラーを繰り返し評価させない。この実施形態において、感度プロセッサ330は、感度データメモリ350にアクセスする前に、エラーログ340を調査し、感度プロセッサ330は、そのエラーが以前に検出されたことなく、エラーログメモリ340内に入った場合、単に感度データメモリにアクセスするのみである。
【0044】
CRAMセルは、幾つかの方法で、感度データメモリ350内のデータにマッピングされ得る。本発明の一実施形態において、感度データメモリ350は、各CRAMセルに対する感度ビットを割り当てる。しかしながら、これには、非常に多くの感度データメモリ350を必要とする。それゆえ、本発明の他の実施形態において、感度データメモリ350は、各領域に対する感度ビットを割り当てる。ここで、1つの領域は、幾つかの数のCRAMセルを備える。本発明のこの実施形態において、感度データメモリ350へのアクセスは、CRAMセルの最上位ビットを用いてなされる。例えば、ECC計算は、ビットエラーの厳密なロケーションを識別し得るが、感度データは、CRAMの各2×2長方形に対する感度ビットを格納し得る。それゆえ、ビットエラーロケーションの一部のみが、関連する感度データの対応するロケーションを決定するために使用される必要がある。
【0045】
さらなる実施形態において、感度ビットと関連する領域は、サイズが異なり、プログラマブルデバイスの特定のコンポーネント(例えば、プログラマブル相互接続ラインまたはプログラマブルロジックエレメント)と対応し得る。例えば、感度ビットと関連する領域は、プログラマブルロジックエレメントの一部分(例えば、プログラマブルロジックデバイスのルックアップテーブルまたはレジスタ部分)であり得る。代替として、領域は、プログラマブルロジックエレメント、またはロジックエレメントのグループであり得る。他の領域は、1つのルーティングマルチプレクサ、またはルーティングマルチプレクサのグループ(例えば、ロジックアレイブロックと関連するルーティングマルチプレクサの全て)を含み得る。またさらなる実施形態において、より手の込んだデータ構造(例えば、ツリーまたはハッシュ(hash)テーブル)は、感度データによって構成メモリの領域を表現するように使用され得る。
【0046】
ロジックエレメント内の一つのCRAMビットが使用される場合、ロジックエレメントは、ユーザの設計の一部として構成され、必要とされることが多い。このような状況において、ロジックエレメント内に各CRAMビットが必要とされる。したがって、本発明の実施形態において、1つ以上のロジックエレメントに対応する粗い粒状領域が使用され、感度データに対する非常に少ない量のメモリを用いて、本発明をインプリメントし得る。それによって、オンチップ(on chip)で感度データを格納させることができる。とはいえ、一部の実施形態においては、このデータはオフチップ(off chip)に、例えば、構成デバイス360の中に格納される。本発明の特定の実施形態において、ルーティング構成は、プログラマブルデバイス内の各ロジックブロックまたはLABは、使用されたルーティングを少なくとも一部は含むという仮定の下に、感度データから排除され得る。このルーティング構成に対する感度データの使用は、冗長であるためである。対照的に、感度情報に活かし得る全く未使用のロジックブロックまたはLABが多数あり得る。
【0047】
本発明のさらなる実施形態において、随意のエラーログ340は、ダイに位置され、オフチップメモリにアクセスする必要を減らすことが好ましいが、感度データメモリは、オンチップ(比較的データの量が少ない場合)、あるいはオフチップ(おそらくは構成デバイス360の中)のいずれかに位置され得る。
【0048】
ソフトエラーロケーションが単一のビットで識別され得るさらなる実施形態において、あるいはプログラマブルデバイスCRAMの小さな領域を再構成させることが可能なバリエーションにおいて、感度プロセッサは、不良ビットまたは不良ビット領域の構成データを再ロードして、そのエラーを修復し得る。これは、引き続くエラーが、システムの検出能力を超えないようにするためである。
【0049】
冗長性を有するプログラマブルデバイスの実施形態は、ECCプロセッサによって記述されたロケーション情報に、少なくとも2つの異なる影響を有し得る。第一に、エラーロケーションは、物理的ロケーションであるより、むしろ、ロジカルロケーションに対応し得る。なぜなら、データは、デバイスのプログラミング中にシフトされ得るからである。例えば、データは、悪い行を避けるために、1行だけシフトされ得て(1つの行は、典型的には20〜200である多数の隣接するLABを備える)、所与のビットは、2つのLAB行の一方に物理的に位置し得る。この場合、データは、その悪い行を飛ばして、書き込まれるのと同じ方法で、読み返され得る。そのため、このシフト化は、データストリーム内で見ることができない。
【0050】
対照的に、冗長性の第二の局面によって、CRAMのコンテンツが容易に予測されないような欠陥ロケーションに依存して、構成データ内のビットが変更または移動され得るように、データが処理される原因となり得る。例えば、一つの特定の実施形態は、ビットペアをルーティングするコンテンツを、欠陥のある行のロケーションとその行への距離に依存して変更する。これらのデバイスにおいて、サイズで少なくとも1つのビットペアである領域は使用することが可能である。
【0051】
本発明の実施形態は、プログラマブルデバイス上のハードロジック(すなわち、そのプログラマブルデバイスの専用特殊ロジック)、またはソフトロジック、あるいはソフトロジック(すなわち、そのプログラマブルデバイスのプログラマブルロジックリソースを用いて生成されたロジック)とハードロジックとの組み合わせで、完全にインプリメントされ得る。例えば、組み合わせの実施形態は、ECCロジックを設置して、ハードロジックのエラーロケーションを識別し、この情報をコード化したプログラマブルデバイスのコアに信号を提供し得る。例示的な感度プロセッサ330は、プログラマブルロジックコアの中のソフトロジックから構築され得、エラーロケーションから感度データメモリアドレスにマッピングするアルゴリズムの実質的に任意の選択を可能にする。この感度データは、典型的に、内蔵されたメモリブロックに十分フィットするほど小さな場合、オンチップに位置され得るか、あるいは上述のように、オフチップに位置され得る。感度プロセッサ330は、プログラマブルデバイスにおけるソフトエラーが、エラー検出ロジック内の故障の原因とならないように、三部構成にされ得、感度データは、エラー補正を用いて、ソフトエラーが故障の原因とならないようにする。
【0052】
図4は、本発明の実施形態に従って、構成メモリのエラーを検出する方法の流れ図である。この方法において、デバイスは、最初に構成される。構成に続いて、構成データにおけるソフトエラーのチェックが、実行される。これらのチェックは、周期的または非周期的に実行され得る。エラーが検出されるとき、アプリケーションがそのエラーに対して敏感であるかどうかを判断する。アプリケーションがこのエラーに対して敏感でない場合、エラーは無視される。アプリケーションがこのエラーに敏感である場合、様々な措置(例えば、フラグの提供、エラーの補正、またはデバイスの再構成)が、本発明の実施形態の正確なインプリメンテーションに依存して実行され得る。
【0053】
具体的には、行動400で、エラーチェックビットが決定される。行動402で、感度データが、例えば、ソフトウェアで決定される。行動410で、プログラマブルデバイスが構成され、そして、行動412で、エラーチェックビットおよび感度データが、プログラマブルデバイスに格納される。デバイスは、プログラマブルロジックデバイス、フィールドプログラマブルゲートアレイまたは他のデバイスのようなプログラマブルデバイスであり得る。再び、デバイスは、典型的には、幾つかのCRAMセルの中に構成データを書き込むことによって構成される。構成された後に、CRAMセルに格納されたデータは、エラーをチェックされ得る。このチェックは、定期的または周期的に行われ得るか、所定のイベントに引き続いて行われ得るか、あるいは何らかの他の基準に従って行われ得る。行動420で、構成データの一部分が読み返される。行動430で、対応するエラーチェックビットが読み返される。
【0054】
行動440で、ソフトエラーが発生したかどうかが判断される。ソフトエラーが発生しなかった場合、構成データの次の部分が、行動420で、読み返され得る。エラーが発生した場合、対応する感度が、行動450で、読み出される。この感度データは、アプリケーションがソフトエラーに敏感であるかどうかを示す。本発明の特定の実施形態において、エラーが、アプリケーションによって使用される回路網を構成するCRAMセルで発生する場合、そのアプリケーションは、エラーに敏感である。
【0055】
行動460で、アプリケーションがソフトエラーに敏感であるかどうかが判断される。敏感でない場合、エラーは無視され得、行動420で、次の構成データが読み返される。行動480において、エラー補正回路網が存在する場合、できれば、アプリケーションが敏感でない場合であっても、エラーは補正され得る。これは、エラーが蓄積され、アプリケーションが敏感である後のエラーが補正されない状況に導かれるのを避けるためである。アプリケーションがエラーに敏感である場合、本発明の特定の実施形態に従って、様々な活動が取られ得る。例えば、エラーフラグが、行動470で、提供され得る。また、あるいは代替として、デバイスは、行動472で、再構成され得る。また、プログラマブルデバイスは、エラー補正回路網も含み得る。このような場合、エラーは、行動474で補正され得る。エラーが補正され得る場合、デバイスは、おそらく、行動472で再構成される必要はない。
【0056】
再び、感度データを読み出す時間を節約するために、例えば、行動450で、アプリケーションが敏感でない既知のソフトエラーのログは、保たれ得る。このことによって、アプリケーションが敏感でない既知のソフトエラーを有するCRAMセルをチェックするために、毎回感度データを読み出す必要がなくなるか、あるいは敏感でないエラーが報告されている場合、同じエラーを繰り返し報告することを避ける。実施例が、以下の流れ図に示される。
【0057】
図5は、本発明の実施形態に従って、エラーを検出する方法の流れ図である。再び、デバイスは、最初に構成される。構成に続いて、構成データにおけるソフトエラーのチェックが、実行される。エラーが検出されるとき、そのエラーが、アプリケーションが敏感でない既知のソフトエラーとして、以前にログされたかどうかを判断される。そのようにログされていた場合、エラーは無視され得、チェックが進行し得る。ログされていない場合、アプリケーションがそのエラーに対して敏感であるかどうかを判断する。アプリケーションがこのエラーに対して敏感でない場合、エラーは、後に参照するためにログされ、そうでない場合は、無視されるか、あるいはおそらく補正される。アプリケーションが、エラーに敏感である場合、様々な措置(例えば、フラグの提供、エラーの補正、またはデバイスの再構成)が、本発明の実施形態の正確なインプリメンテーションに依存して実行され得る。
【0058】
具体的には、行動510で、プログラマブルデバイスが構成される。再び、これは、エラーチェックビット、感度データ、ならびに、このデバイスへのこの情報および構成データの格納を含み得る。行動520で、構成データの一部分が読み返される。行動530で、対応するエラーチェックビットが読み返される。
【0059】
行動540で、ソフトエラーが発生したかどうかが判断される。ソフトエラーが発生しなかった場合、構成データの次の部分が、行動520で、読み返され得る。エラーが発生した場合、行動550で、このエラーがアプリケーションに敏感でないソフトエラーとしてログされているかどうかを判断される。ログされていた場合、エラーは無視され得、エラーチェックは、行動520で実行され得る。ソフトエラーがログされていない場合、行動560で、対応する感度データが読み出される。この感度データは、アプリケーションがソフトエラーに敏感であるかどうかを示す。行動570で、アプリケーションがソフトエラーに敏感であるかどうかが判断される。敏感でない場合、行動590で、エラーは、後に参照するためにログされ得る。エラーが回路網に存在する場合、エラーは、おそらく行動592で補正され得る。とはいえ、複数のビットがエラーにあるような一部の場合は、補正され得ない。次いで、構成データは、行動520で、読み返され得る。アプリケーションがエラーに敏感でない場合、本発明の特定の実施形態に依存して、様々な活動が取られ得る。例えば、エラーフラグが、行動580で、提供され得る。また、あるいは代替として、デバイスは、行動582で、再構成され得る。また、エラー補正回路網が含まれる場合、エラーは、行動584で補正され得る。この場合、デバイスは、おそらく、行動582で再構成される必要はない。
【0060】
図6は、本発明に従う技術が利用され得る例示的な高密度プログラマブルロジックデバイスまたはFPGA600の簡略化した部分ブロック図である。PLD600は、プログラマブルロジックアレイブロック(すなわちLAB)602の二次元アレイを含み、これらのブロックは、異なる長さおよび速度の列および行の相互接続のネットワークで、相互接続される。LAB602は、複数の(例えば、10)のロジックエレメント(LE)を含み、LEは、ユーザ定義のロジック機能の効率的なインプリメンテーションを提供する。
【0061】
PLD600は、また、アレイ全体にわたって提供される様々なサイズのRAMブロックを含む分散メモリ構造を含む。RAMブロックは、例えば、512ビットのRAMを提供する512ビットブロック604、4Kブロック606、およびMブロック608を含む。これらのメモリブロックは、シフトレジスタおよびFIFOバッファを含む。PLD600は、さらに、デジタル信号プロセッサ(DSP)ブロック610を含む。このDSPブロック610は、例えば、加算または減算の特徴とともに、乗算をインプリメントし得る。
【0062】
PLD600が、単に例示的な目的のみに、本明細書において記載されたこと、および本発明が、異なるタイプのPLD、FPGAおよび他のタイプのデジタル集積回路で、インプリメントされ得ることは、理解されるべきである。
【0063】
図6に示されるタイプのPLDまたはFPGAは、システムレベルでのソリューションを要する多数のリソースを提供する一方で、本発明は、PLDが幾つかのコンポーネントの一つであるシステムにおいても、またメリットをもたらし得る。
【0064】
図7は、本発明が具現化され得る例示的なデジタルシステム700のブロック図を示す。システム700は、プログラム化されたデジタルコンピュータシステム、デジタル信号処理システム、特殊デジタルスイッチングネットワーク、または他の処理システムであり得る。さらに、このようなシステムは、幅広い様々なアプリケーションに設計され得る。例えば、電気通信システム、自動車システム、制御システム、消費者用電子機器、パーソナルコンピュータ、インターネット通信・ネットワーク化、およびその他に設計され得る。さらに、システム700は、1枚のボード上に、複数枚のボード上に、あるいは複数の筺体内に提供され得る。
【0065】
システム700は、処理ユニット702、メモリユニット704、および1つ以上のバスによって一緒に相互接続された入力/出力ユニット706を含む。この例示的な実施形態において、プログラマブルロジックデバイス(PLD)708は、処理ユニット702に内蔵される。PLD708は、図7のシステム内で、多数の異なる目的に役立ち得る。PLD708は、例えば、処理ユニット702のロジック構築ブロックであり得、その内部および外部での動作をサポートし得る。PLD708は、システム動作におけるその特定の役割を実行するために必要なロジカル機能をインプリメントするようにプログラムされる。PLD708は、接続710を介してメモリ704に、接続712を介して入力/出力ユニット706に、特に結合され得る。
【0066】
処理ユニット702は、処理またはストレージの適切なシステムコンポーネントにデータを導き得るか、メモリ704に格納されたプログラムを実行し得るか、または入力/出力ユニット706を介して送受信し得るか、他の同様な機能を行い得る。処理ユニット702は、中央演算処理装置(CPU)、マイクロプロセッサ、フローティングポイントコ
プロセッサ、グラフィックコプロセッサ、ハードウェアコントローラ、マイクロコントローラ、コントローラとして使用するプログラマブルロジックデバイス、ネットワークコントローラなどであり得る。さらに、多くの実施形態において、CPUを必要としないことが多い。
【0067】
例えば、CPUの代わりに、1つ以上のPLD708は、システムのロジカル動作を制御し得る。実施形態において、PLD708は、必要に応じて、特定の計算タスクを扱うように再プログラミングされ得る再構成可能プロセッサとして機能する。代替として、プログラマブルロジックデバイス708は、それ自身に内蔵されたマイクロプロセッサを含み得る。メモリユニット704は、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、固定またはフレキシブルディスク媒体、PCカードフラッシュディスクメモリ、テープ、または他のストレージ手段、あるいはこれらのストレージ手段の組み合わせであり得る。
【0068】
本発明の例示的な実施形態についての以上の記載は、例示および説明の目的で、提供されてきた。この記載は、網羅することも、本発明を記載された厳密な形態に制限することも意図されず、また、多くの改変およびバリエーションも、以上の教示を考慮すると可能である。実施形態は、本発明の原理およびその実際的なアプリケーションを最適に説明するために、選択され、記載されたので、当業者は、様々な実施形態で、検討された特定の用途に適するように様々な改変を加えて、本発明を最適に利用することができる。
【図面の簡単な説明】
【0069】
【図1】プログラマブルデバイスに対する例示的な構成メモリおよび関連回路網を示す。
【図2】本発明の実施形態に従うプログラマブルデバイスに対する構成メモリの例を示す。
【図3】本発明の実施形態に従うソフトエラー検出ユニットおよび関連回路網の例を示す。
【図4】本発明の実施形態に従って、構成メモリ内のエラーを検出する方法の流れ図である。
【図5】本発明の実施形態に従って、構成メモリ内のエラーを検出する方法の別の流れ図である。
【図6】本発明の実施形態を組み込むことによって改善されるプログラマブルロジックデバイスの簡略化したブロック図である。
【図7】本発明の実施形態を組み込むことによって改善される電子システムのブロック図である。
【符号の説明】
【0070】
100 プログラマブルデバイス
110、210、240 CRAMアレイ
120、220 アドレスレジスタ
130、230 データレジスタ
140 構成デバイス
300 FPGA
310 構成コントローラ
320 エラー補正コードユニット
330 感度プロセッサ
340 エラーログ
350 感度データデータベース
360 外部構成デバイス

【特許請求の範囲】
【請求項1】
プログラマブルデバイスの構成メモリにおけるエラーを検出する方法であって、
該構成メモリから構成メモリデータを読み取ることと、
該構成メモリデータにおいてエラーが発生したか否かを判断することと、
エラーが発生したという判断に応答して、
エラーである該構成データに対応する感度データを読み取ることと、
該エラーを無視することができるか否かを判断するために該感度データを解析することと、
該エラーを無視することができない場合、修復アクティビティを開始することと、
該エラーを無視することができる場合、該修復アクティビティを開始しないことによって該エラーを無視することと
を包含する、方法。
【請求項2】
前記修復アクティビティを開始しないことによって前記エラーを無視する行動が、エラーログに該エラーの位置を格納することをさらに含む、請求項1に記載の方法。
【請求項3】
前記エラーが発生したという前記判断に対する前記応答が、
前記感度データを読み取る前に前記位置を前記エラーログと比較することと、
前記エラーの位置が該エラーログに予め格納されていない場合にのみ、該感度データを読み取ることと
をさらに含む、請求項2に記載の方法。
【請求項4】
発生した前記エラーがエラーチェックビットを用いて判断されていようとなかろうと、前記構成メモリが領域に分割され、かつ該エラーチェックビットが各領域に対して個別に判断される、請求項1に記載の方法。
【請求項5】
前記修復アクティビティが前記エラーを補正することを含む、請求項1に記載の方法。
【請求項6】
前記修復アクティビティが前記プログラマブルデバイスを再構成することを含む、請求項1に記載の方法。
【請求項7】
エラーである前記構成データによって構成されている回路が、前記プログラマブルデバイス上にて実行するアプリケーションによって使用されるか否かに基づいて、前記感度データが部分的に生成される、請求項1に記載の方法。
【請求項8】
プログラマブルデバイスにおける構成メモリに格納される構成データにおけるエラーをチェックする方法であって、該構成データが第1のアプリケーションのために該プログラマブルデバイスを構成し、該方法は、
該構成メモリから該構成データの一部を読み取ることと、
該構成データの該一部に対応する複数のエラーチェックビットの一部を読み取ることと、
該構成データの該一部にエラーがあるか否かを判断することと、
該エラーがあった場合、ソフトエラーが該第1のアプリケーションに不利益に影響するか否かを判断することと、
不利益に影響すると判断した場合、該ソフトエラーが生じたという指示を提供することと、
不利益に影響しないと判断した場合、該ソフトエラーが生じたという該指示を提供しないことと
を包含する、方法。
【請求項9】
前記ソフトエラーが前記第1のアプリケーションに不利益に影響するか否かを判断することが、メモリから感度データを読み取ることによって行われる、請求項8に記載の方法。
【請求項10】
前記構成データの前記一部を読み取る前に、該構成データを構成デバイスから読み取り、かつ該構成データを前記構成メモリに格納することをさらに包含する、請求項8に記載の方法。
【請求項11】
前記構成メモリから前記構成データを読み取る前に、該構成データを用いて前記複数のエラーチェックビットを判断することをさらに包含する、請求項10に記載の方法。
【請求項12】
前記プログラマブルデバイス上に前記複数のエラーチェックビットを格納することをさらに包含する、請求項11に記載の方法。
【請求項13】
前記エラーが前記第1のアプリケーションに不利益に影響することが判断された場合、前記ソフトエラーを補正することをさらに包含する、請求項8に記載の方法。
【請求項14】
前記エラーが前記第1のアプリケーションに不利益に影響することが判断された場合、前記プログラマブルデバイスを再構成することをさらに包含する、請求項8に記載の方法。
【請求項15】
構成データを格納するための第1の複数のメモリセルと、
エラーチェックビットを格納するための第2の複数のメモリセルと、
感度データを格納するための第3の複数のメモリセルと、
該構成データ、該エラーチェックビットおよび該感度データを含む構成ビットストリームを受信し、該第1の複数のメモリセルに該構成データ、該第2の複数のメモリセルに該エラーチェックビット、および該第3の複数のメモリセルに該感度データを書き込むための構成コントローラと、
該第1の複数のメモリセルから該構成データを、および該第2の複数のメモリセルから該エラーチェックビットを読み取り、かつ該構成データにおいてエラーが発生したか否かを判断するためのエラー検出回路であって、該エラーが発生したと判断された場合、該エラーが発生したところに該第1のメモリセルのうちの最初の1つに対してアドレスの少なくとも一部を提供するためのエラー検出回路と、
該アドレスの少なくとも一部を受信し、該アドレスの該少なくとも一部に対応する該感度データを受信し、かつ集積回路上にて実行するアプリケーションが発生した該エラーに対して影響を受けやすいか否かを判断するための感度プロセッサと
を備える、集積回路。
【請求項16】
前記エラーが発生し、かつ前記アプリケーションが該エラーに対して影響を受けやすい場合、該エラーが発生したところでデータが前記メモリセルに書き込まれる、請求項15に記載の集積回路。
【請求項17】
前記エラー検出回路によって検出される前記エラーを補正するためのエラー補正回路をさらに備える、請求項16に記載の集積回路。
【請求項18】
前記アプリケーションが発生した前記エラーに対して影響を受けやすいものであろうとなかろうと、前記エラー補正回路が、前記エラー検出回路によって検出されるエラーを補正する、請求項17に記載の集積回路。
【請求項19】
エラーが発生し、かつ前記アプリケーションが該エラーに対して影響を受けやすい場合、前記集積回路が再構成される、請求項15に記載の集積回路。
【請求項20】
前記プログラマブルデバイスのどの部分が前記第1のアプリケーションによって使用されるかに基づいて、前記複数の感度ビットが部分的に判断される、請求項15に記載の集積回路。
【請求項21】
前記プログラマブルデバイスの対応する部分が前記第1のアプリケーションによって使用されているか否かに基づいて、前記感度ビットの各々が部分的に判断される、請求項15に記載の集積回路。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2007−293856(P2007−293856A)
【公開日】平成19年11月8日(2007.11.8)
【国際特許分類】
【出願番号】特願2007−112429(P2007−112429)
【出願日】平成19年4月20日(2007.4.20)
【出願人】(597154922)アルテラ コーポレイション (163)
【氏名又は名称原語表記】Altera Corporation
【Fターム(参考)】