システムの主要機能に使用されているアルテラの Stratix® シリーズ FPGA では、FPGA の動作中に SEU(single event upset) を検出して対処する能力の重要性が、これまで以上に高まっています。すべての Stratix シリーズ FPGA は専用の CRC(Cyclic Redundancy Check) ハードIP (Intellectual Property) 回路を備えています。この回路は、CRAM ビットの反転を検出して、エラーを専用の CRC_ERROR ピンで示します。
130nmプロセス世代 (StratixおよびStratix GX FPGA) 以降、アルテラはすべての FPGA にバックグランド・エラー検出回路を搭載し、ハード CRC チェッカーを使用してデバイス動作中に CRAM の内容を継続的に検証できるようにしています。この CRC は複数ビットのエラーを検出することが保証されています。CRC 回路をオンチップのハード・ゲートに集積することの利点は、堅牢でソフト・エラーに影響されない回路を実現できることです。加えて、CRC 回路は全内蔵型ブロックであり、Quartus® II のコンパイル・オプションのチェックボックスをオンにするだけでイネーブルされます。
プロセスおよびデザイン手法を活用して、アルテラはすべてのテクノロジ世代で FIT/Mb を改善してきました。しかし、テクノロジ世代ごとに集積度が増大したのに伴い、SEU の重要性が増しています。アルテラは、設計者がシステムの信頼性目標を達成するのを支えるために、シリコン、IP、ツールといったさまざまなレベルでソフト・エラー緩和のためのソリューションを提供しています。
このような機能強化の一例として、表1に示すような CRC 回路の機能性向上と高度化があります。
| 表1. Stratix シリーズ FPGA における CRC 機能強化 | |||||||
| Stratix シリーズ FPGA ファミリ (1) | CRAM CRC チェック CRAM 全体 | CRAM CRC チェック CRAM フレーム | CRAM エラー位置 | テスト時の CRAM SEUエラーの注入 | エラーの分類 | CRAM エラーの訂正 | オンチップ・メモリ・エラーのチェック |
|---|---|---|---|---|---|---|---|
| Stratix および Stratix GX | 使用可 | - | - | - | - | - | - |
| Stratix II および Stratix II GX | 使用可 | - | - | - | - | - | - |
| Stratix III | - | 使用可 | 使用可 | 使用可 | 使用可 | - | 使用可 |
| Stratix IV E および Stratix IV GX | - | 使用可 | 使用可 | 使用可 | 使用可 | - | 使用可 |
| Stratix V | - | 使用可 | 使用可 | 使用可 | 使用可 | 使用可 | 使用可 |
- 特定の Stratix FPGA ファミリにおける CRC 機能について詳しくは、適切な Stratix シリーズ・ファミリのリンクを選択してください。
コンフィギュレーション・エラーのチェック
すべてのAltera® Stratix シリーズ FPGA はコンフィギュレーション中に CRC を計算し、それをレジスタに格納します。専用回路が自動で計算されたCRC に対してチェックを行います。エラーが生じた場合はCRC_ERRORピンによって状況が表示されるので、リコンフィギュレーションが容易に行えます。CRC チェックは Quartus II デザイン・ソフトウェアで制御されます。
専用 CRC バックグランド・コンフィギュレーション・チェッカー回路を第一世代の Stratix FPGA に導入して以来、アルテラは以下の通り機能を強化してきました。- デバイス全体に対する1つの CRC 値ではなく、各コンフィギュレーション・フレームの CRC 値を格納することにより、SEU 検出速度を向上 (Stratix III FPGA以降)
- CRCエラー検出エンジンにおいて、シングル・ビットおよび隣接する複数ビット・エラーのSEU位置を提供 (Stratix III FPGA 以降)
- CRCコンフィギュレーション回路において、SEUイベントをシミュレートし緩和策を検証するための各種エラー・インジェクションに対応 (Stratix III FPGA 以降)
- CRC 検出/訂正回路において、エラー検出カバレッジが向上 (99.99999998%)、シングルおよび隣接のダブル・マルチ・ビット・エラーを訂正可能(Stratix V)
- エンハンスト CRC 手法により、Stratix IVファミリと比べて同等の集積度でCRC検出速度が約7倍向上 (Stratix V)
- フォルト・インジェクションが強化され、ユーザーがFPGAに複数のフォルトをインジェクト可能 (Stratix V)
コンフィギュレーション・エラーの分類
コンフィギュレーション・エラーの大部分はFPGAの機能に影響を与えないため、これらの「無関係」のソフト・エラーを無視する機能により、SEUからの実際の平均故障時間 (MTBF) が長くなって、システムのアップタイムが向上します。Stratix シリーズ FPGA (Stratix III FPGA 以降)のエンハンストCRC 回路で提供される位置データ、およびクリティカリティ・マップでエラー位置を照合するための少量のロジックを使用して、SEU が「重大」か「無関係」かを判断できます。
「無関係」のコンフィギュレーション・エラーの場合、SEU を無視してオペレーションを継続することができます。クリティカリティ・マップは Quartus II ソフトウェア開発ツールにより自動的に生成され、アクティブ・シリアル・コンフィギュレーション・メモリなどのユーザー定義インタフェースを介してアクセスされます。クリティカリティ・プロセッサ・ロジックは IP メガファンクションとして Quartus II ソフトウェアに統合されています。コンフィギュレーション・エラーの訂正
SEU エラーの影響を最小限に抑えるために、Stratix V FPGA は、システムのダウンタイムを発生させずに CRAM ビットの反転を訂正することができます。自動 SEU 訂正には以下の2種類があります。
- 内部スクラビング: このオプションを使用すると、CRAM CRC 検出/訂正がバックグランドで実行され、ユーザーのデザインや外部コンポーネントは一切不要です。Quartus II 開発ソフトウェアで有効化すると、FPGA の他の部分が動作している間に、ハード・ロジックに実装された CRC 回路が瞬時にフレーム内の複数ビットのエラーを検出し、シングルまたは隣接のダブル・エラーを訂正します。
- ダイナミック .pof リロード: 外部 .pof ファイルから CRAM イメージをリロードして、CRAM ビットの反転を訂正します。フレームごとの訂正がバックグランドで実行されるか、あるいはそれを手動で開始することもできます。このオプションは、各フレームで、(隣接のダブル・エラーを超える)複数の CRAM ビット反転を訂正する場合に考慮します。
オンチップ・メモリ・エラーのチェック
Stratix シリーズ FPGA (Stratix III FPGA以降) は、コンフィギュレーション・メモリのチェックに加え、オンチップ・メモリの完全性をチェックすることもできます。新しい M20K エンベデッド・メモリ・ブロックは、ハード誤り訂正コード (ECC) 回路を提供し、パイプラインまたは非パイプライン・モードで使用するかまたは完全にバイパスできます。M20K メモリで使用される ECC コードは、最大 3 ビットのエラーを検出し、最大 2 ビットのエラーを訂正できます。強化されたマルチ・ビット・カバレッジ、およびワード内のビットの物理インタリービングにより、Stratix V FPGAではマルチビット・アップセットの緩和が実現します。9 番目のメモリ・ビットと自動で生成された ECC メガファンクションを利用することで、メモリ・ロジック・アレイ・ブロック (MLAB) で構築されたメモリ構造の SEU 緩和を提供することができます。Quartus II 開発ソフトウェアの MegaWizard® Plug-In Managerは、ECC 機能のコンフィギュレーションをシンプルにします。
