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

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

Info

Publication number
JP4960137B2
JP4960137B2 JP2007112429A JP2007112429A JP4960137B2 JP 4960137 B2 JP4960137 B2 JP 4960137B2 JP 2007112429 A JP2007112429 A JP 2007112429A JP 2007112429 A JP2007112429 A JP 2007112429A JP 4960137 B2 JP4960137 B2 JP 4960137B2
Authority
JP
Japan
Prior art keywords
error
data
configuration
sensitivity
memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2007112429A
Other languages
English (en)
Other versions
JP2007293856A (ja
Inventor
ルイス デイビッド
ディー. ヌゴ ニン
エル. リー アンディー
ファン ジョセフ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Altera Corp
Original Assignee
Altera Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Altera Corp filed Critical Altera Corp
Publication of JP2007293856A publication Critical patent/JP2007293856A/ja
Application granted granted Critical
Publication of JP4960137B2 publication Critical patent/JP4960137B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1064Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in cache or content addressable memories
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
    • H03K19/17748Structural details of configuration resources
    • H03K19/17764Structural details of configuration resources for reliability

Description

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

Claims (21)

  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に記載の集積回路。
JP2007112429A 2006-04-21 2007-04-20 プログラマブルデバイスに対するソフトエラーロケーションおよび感度検出 Active JP4960137B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US79394606P 2006-04-21 2006-04-21
US60/793,946 2006-04-21
US11/737,089 2007-04-18
US11/737,089 US7702978B2 (en) 2006-04-21 2007-04-18 Soft error location and sensitivity detection for programmable devices

Publications (2)

Publication Number Publication Date
JP2007293856A JP2007293856A (ja) 2007-11-08
JP4960137B2 true JP4960137B2 (ja) 2012-06-27

Family

ID=38309986

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007112429A Active JP4960137B2 (ja) 2006-04-21 2007-04-20 プログラマブルデバイスに対するソフトエラーロケーションおよび感度検出

Country Status (5)

Country Link
US (1) US7702978B2 (ja)
EP (1) EP1848001B1 (ja)
JP (1) JP4960137B2 (ja)
CN (1) CN101063948B (ja)
DE (1) DE602007012165D1 (ja)

Families Citing this family (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7550991B2 (en) 2005-07-15 2009-06-23 Tabula, Inc. Configurable IC with trace buffer and/or logic analyzer functionality
US7839162B2 (en) 2007-06-27 2010-11-23 Tabula, Inc. Configurable IC with deskewing circuits
US8069425B2 (en) 2007-06-27 2011-11-29 Tabula, Inc. Translating a user design in a configurable IC for debugging the user design
US8990651B2 (en) * 2007-09-19 2015-03-24 Tabula, Inc. Integrated circuit (IC) with primary and secondary networks and device containing such an IC
GB2458260A (en) * 2008-02-26 2009-09-16 Advanced Risc Mach Ltd Selectively disabling error repair circuitry in an integrated circuit
US7875854B2 (en) * 2008-04-08 2011-01-25 International Business Machines Corporation Design structure for alpha particle sensor in SOI technology and structure thereof
US7550730B1 (en) 2008-04-08 2009-06-23 International Business Machines Corporation Method for detecting alpha particles in SOI technology
US8525548B2 (en) 2008-08-04 2013-09-03 Tabula, Inc. Trigger circuits and event counters for an IC
US8433950B2 (en) * 2009-03-17 2013-04-30 International Business Machines Corporation System to determine fault tolerance in an integrated circuit and associated methods
US7948792B1 (en) 2009-04-15 2011-05-24 Altera Corporation Memory and techniques for using same
US8037343B2 (en) * 2009-09-15 2011-10-11 Verizon Patent And Licensing, Inc. Trap-based configuration audit
US8072234B2 (en) 2009-09-21 2011-12-06 Tabula, Inc. Micro-granular delay testing of configurable ICs
JP5348418B2 (ja) * 2009-11-19 2013-11-20 横河電機株式会社 コントローラ
CN101834611B (zh) * 2010-05-06 2012-11-21 复旦大学 一种纠正多比特错误的ecc电路
US9081062B1 (en) * 2010-08-27 2015-07-14 Altera Corporation Memory error detection and correction circuitry
US8347154B2 (en) 2010-09-21 2013-01-01 International Business Machines Corporation Use of hashing function to distinguish random and repeat errors in a memory system
US8890567B1 (en) * 2010-09-30 2014-11-18 Altera Corporation High speed testing of integrated circuits including resistive elements
US8522126B1 (en) 2010-12-22 2013-08-27 Lattice Semiconductor Corporation Blocking memory readback in a programmable logic device
US8843808B2 (en) 2011-06-30 2014-09-23 Avago Technologies General Ip (Singapore) Pte. Ltd. System and method to flag a source of data corruption in a storage subsystem using persistent source identifier bits
US8572538B2 (en) * 2011-07-01 2013-10-29 Altera Corporation Reconfigurable logic block
CN103309765B (zh) * 2012-03-08 2016-02-24 深圳迈瑞生物医疗电子股份有限公司 一种在线配置可编程器件的方法
US9230683B2 (en) 2012-04-25 2016-01-05 Semiconductor Energy Laboratory Co., Ltd. Semiconductor device and driving method thereof
US9104639B2 (en) 2012-05-01 2015-08-11 SEAKR Engineering, Inc. Distributed mesh-based memory and computing architecture
US9166598B1 (en) 2012-05-08 2015-10-20 Altera Corporation Routing and programming for resistive switch arrays
WO2014054345A1 (ja) * 2012-10-01 2014-04-10 太陽誘電株式会社 半導体装置
WO2014115289A1 (ja) * 2013-01-25 2014-07-31 株式会社日立製作所 プログラマブルデバイス及び電子システム装置
US9612900B2 (en) 2013-03-15 2017-04-04 SEAKR Engineering, Inc. Centralized configuration control of reconfigurable computing devices
US20150012903A1 (en) 2013-07-04 2015-01-08 Tabula, Inc. Non-intrusive monitoring and control of integrated circuits
US9223715B2 (en) 2013-08-21 2015-12-29 Via Alliance Semiconductor Co., Ltd. Microprocessor mechanism for decompression of cache correction data
US8982655B1 (en) 2013-08-21 2015-03-17 Via Technologies, Inc. Apparatus and method for compression and decompression of microprocessor configuration data
US9348690B2 (en) * 2013-08-21 2016-05-24 Via Alliance Semiconductor Co., Ltd. Correctable configuration data compression and decompression system
WO2015045135A1 (ja) * 2013-09-30 2015-04-02 株式会社日立製作所 プログラマブルロジックデバイス、及び、論理集積ツール
US9601217B1 (en) 2013-10-25 2017-03-21 Altera Corporation Methods and circuitry for identifying logic regions affected by soft errors
WO2015068285A1 (ja) * 2013-11-08 2015-05-14 株式会社日立製作所 プログラマブルデバイス及びこれを用いた電子システム装置
US10095570B2 (en) * 2014-01-24 2018-10-09 Hitachi, Ltd. Programmable device, error storage system, and electronic system device
JP6151655B2 (ja) * 2014-03-11 2017-06-21 ファナック株式会社 数値制御装置
JP2015201813A (ja) * 2014-04-10 2015-11-12 株式会社日立製作所 プログラマブルゲートアレイ
JP2015201814A (ja) * 2014-04-10 2015-11-12 株式会社日立製作所 プログラマブルゲートアレイ及び電子装置
US9606933B2 (en) 2014-05-22 2017-03-28 Via Alliance Semiconductor Co., Ltd. Multi-core apparatus and method for restoring data arrays following a power gating event
US9395802B2 (en) 2014-05-22 2016-07-19 Via Alliance Semiconductor Co., Ltd. Multi-core data array power gating restoral mechanism
US9665490B2 (en) 2014-05-22 2017-05-30 Via Alliance Semiconductor Co., Ltd. Apparatus and method for repairing cache arrays in a multi-core microprocessor
US9524241B2 (en) 2014-05-22 2016-12-20 Via Alliance Semiconductor Co., Ltd. Multi-core microprocessor power gating cache restoral mechanism
US9678864B2 (en) * 2014-12-03 2017-06-13 Seagate Technology Llc Data reallocation upon detection of errors
US9910705B1 (en) * 2015-02-18 2018-03-06 Altera Corporation Modular offloading for computationally intensive tasks
JP2016167669A (ja) * 2015-03-09 2016-09-15 富士通株式会社 プログラマブル論理回路装置及びそのエラー検出方法
US11055177B2 (en) * 2015-03-31 2021-07-06 Pure Storage, Inc. Correlating operational information with an error condition in a dispersed storage network
US10223197B2 (en) * 2015-08-06 2019-03-05 Nxp B.V. Integrated circuit device and method for applying error correction to SRAM memory
US10437666B2 (en) 2015-08-06 2019-10-08 Nxp B.V. Integrated circuit device and method for reading data from an SRAM memory
JP6145482B2 (ja) * 2015-08-13 2017-06-14 富士通株式会社 伝送装置および故障検出方法
JP2017041182A (ja) * 2015-08-21 2017-02-23 ファナック株式会社 数値制御装置
US10268375B2 (en) * 2016-05-27 2019-04-23 Netapp, Inc. Methods for proactive prediction of disk failure in the disk maintenance pipeline and devices thereof
GB2550929A (en) * 2016-05-31 2017-12-06 Advanced Risc Mach Ltd An apparatus and method for generating an error code for a block comprising a plurality of data bits and a plurality of address bits
JP6880795B2 (ja) * 2017-02-08 2021-06-02 オムロン株式会社 制御装置およびその制御方法
US10578669B2 (en) * 2017-07-10 2020-03-03 Deny Hanan Portable device for soft errors testing
JP7104525B2 (ja) 2018-02-21 2022-07-21 日立Astemo株式会社 電子制御装置、構成メモリのエラー検出方法
JP7268554B2 (ja) * 2019-09-17 2023-05-08 オムロン株式会社 制御装置および制御方法

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4369511A (en) 1979-11-21 1983-01-18 Nippon Telegraph & Telephone Public Corp. Semiconductor memory test equipment
USRE38651E1 (en) 1994-05-18 2004-11-09 Altera Corporation Variable depth and width memory device
US5867422A (en) 1995-08-08 1999-02-02 University Of South Florida Computer memory chip with field programmable memory cell arrays (fpmcas), and method of configuring
US5793943A (en) * 1996-07-29 1998-08-11 Micron Electronics, Inc. System for a primary BIOS ROM recovery in a dual BIOS ROM computer system
US5870350A (en) 1997-05-21 1999-02-09 International Business Machines Corporation High performance, high bandwidth memory bus architecture utilizing SDRAMs
US6242767B1 (en) 1997-11-10 2001-06-05 Lightspeed Semiconductor Corp. Asic routing architecture
US6104211A (en) 1998-09-11 2000-08-15 Xilinx, Inc. System for preventing radiation failures in programmable logic devices
US6553523B1 (en) 1999-08-13 2003-04-22 Jeffrey V. Lindholm System and method for verifying configuration of a programmable logic device
US7363422B2 (en) 2000-01-05 2008-04-22 Rambus Inc. Configurable width buffered module
US6530049B1 (en) * 2000-07-06 2003-03-04 Lattice Semiconductor Corporation On-line fault tolerant operation via incremental reconfiguration of field programmable gate arrays
JP3747817B2 (ja) * 2001-07-27 2006-02-22 日本電気株式会社 メモリ制御回路及びメモリ制御方法
US6618281B1 (en) * 2002-05-15 2003-09-09 International Business Machines Corporation Content addressable memory (CAM) with error checking and correction (ECC) capability
US6838899B2 (en) 2002-12-30 2005-01-04 Actel Corporation Apparatus and method of error detection and correction in a radiation-hardened static random access memory field-programmable gate array
US7328377B1 (en) * 2004-01-27 2008-02-05 Altera Corporation Error correction for programmable logic integrated circuits
US7620876B2 (en) * 2005-06-08 2009-11-17 Altera Corporation Reducing false positives in configuration error detection for programmable devices
US7529992B1 (en) * 2006-03-27 2009-05-05 Tabula, Inc. Configurable integrated circuit with error correcting circuitry
US7542324B1 (en) 2006-04-17 2009-06-02 Altera Corporation FPGA equivalent input and output grid muxing on structural ASIC memory

Also Published As

Publication number Publication date
CN101063948B (zh) 2011-10-05
EP1848001A1 (en) 2007-10-24
JP2007293856A (ja) 2007-11-08
US20070283193A1 (en) 2007-12-06
DE602007012165D1 (de) 2011-03-10
CN101063948A (zh) 2007-10-31
US7702978B2 (en) 2010-04-20
EP1848001B1 (en) 2011-01-26

Similar Documents

Publication Publication Date Title
JP4960137B2 (ja) プログラマブルデバイスに対するソフトエラーロケーションおよび感度検出
JP5048972B2 (ja) プログラマブル・デバイスの構成エラー検出の偽陽性の低減
US7328377B1 (en) Error correction for programmable logic integrated circuits
US7596744B1 (en) Auto recovery from volatile soft error upsets (SEUs)
US8065574B1 (en) Soft error detection logic testing systems and methods
US9342402B1 (en) Memory interface with hybrid error detection circuitry for modular designs
US20100082927A1 (en) Secure memory interface
US20050071730A1 (en) Continuous self-verify of configuration memory in programmable logic devices
US8433950B2 (en) System to determine fault tolerance in an integrated circuit and associated methods
US20140026011A1 (en) Memory with Dynamic Error Detection and Correction
US9696923B2 (en) Reliability-aware memory partitioning mechanisms for future memory technologies
Nazar et al. Accelerated FPGA repair through shifted scrubbing
US9575862B1 (en) Integrated circuits with error handling capabilities
US8995217B2 (en) Hybrid latch and fuse scheme for memory repair
KR100402638B1 (ko) 리던던트 디바이스 초기화 방법 및 장치
EP2641174B1 (en) Classifying a criticality of a soft error and mitigating the soft error based on the criticality
US8436646B1 (en) Reconfigurable logic block with user RAM
US9684559B1 (en) Methods and apparatus for storing error correction information on a memory controller circuit
US8576641B1 (en) Method of and circuit for providing non-volatile memory in an integrated circuit
JP2013238926A (ja) 信号処理回路およびそれを用いた試験装置
JP6326422B2 (ja) プログラマブルロジックデバイス、及び、論理集積ツール
US11449397B2 (en) Cache array macro micro-masking
JP2015082671A (ja) 半導体装置
Lu et al. Built-in Scrambling analysis for yield enhancement of embedded memories
US10673464B1 (en) Encoding and decoding information for detecting and correcting bit errors

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100419

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110419

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120215

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120308

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120322

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150330

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4960137

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250