Stratix シリーズ FPGA の CRC (Cyclic Redundancy Check)

システムの主要機能に使用されているアルテラの 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
エラー 位置
テスト時の
CRM SEU
エラーの
注入
エラーの
分類
CRAM
エラーの
訂正

オンチップ・
メモリ・

エラーの
チェック

Stratix GX 使用可 - - - - - -
Stratix II
および Stratix II GX
使用可 - - - - - -
Stratix III - 使用可 使用可 使用可 使用可 - 使用可
Stratix IV E
および
Stratix IV GX
- 使用可 使用可 使用可 使用可 - 使用可
Stratix V - 使用可 使用可 使用可 使用可 使用可 使用可

注:

  1. 特定の Stratix FPGA ファミリにおける CRC 機能について詳しくは、適切な Stratix シリーズ・ファミリのリンクを選択してください。  

コンフィギュレーション・エラーのチェック

すべての 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種類があります。

  1. 内部スクラビング: このオプションを使用すると、CRAM CRC 検出/訂正がバックグランドで実行され、ユーザーのデザインや外部コンポーネントは一切不要です。Quartus II 開発ソフトウェアで有効化すると、FPGA の他の部分が動作している間に、ハード・ロジックに実装された CRC 回路が瞬時にフレーム内の複数ビットのエラーを検出し、シングルまたは隣接のダブル・エラーを訂正します。
  2. ダイナミック .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 機能のコンフィギュレーションをシンプルにします。

リソース