Cyclone VデバイスでのSEUの緩和

Cyclone V デバイスでの SEU の緩和
2015.06.12
CV-52008
更新情報
8
フィードバック
この章では、Cyclone V デバイスでのエラー検出機能について説明します。この機能を使用して、
SEU(Single Event Upset)やソフト・エラーを緩和します。
関連情報
Cyclone V Device Handbook: Known Issues
Cyclone V Device Handbook の章で予定されている更新をリストしています。
エラー検出機能
オンチップ・エラー検出 CRC 回路の使用により、フィッティング、あるいはデバイスの性能に
影響を与えることなく、以下の動作を行うことができます。
• コンフィギュレーション中の CRC エラーの自動検出
• ユーザー・モードでのオプションの CRC エラー検出と識別
• ユーザー・モードでのオプションの内部スクラブ。有効にした際に、この機能は 1 ビット・
エラーまたは隣接する 2 ビット・エラーを自動的に修正する
• JTAG インタフェースを介した意図的なエラー注入によるエラー検出機能のテスト
コンフィギュレーション・エラー検出
Quartus II ソフトウェアは、コンフィギュレーション・ビットストリームを生成する際に、各フ
レームの 16 ビットの CRC 値も計算します。コンフィギュレーション・ビットストリームは、ビ
ットストリームのデータ・フレームの数に応じて 2 つ以上の CRC 値を含むことができます。デ
ータ・フレームの長さはデバイスごとに異なります。
コンフィギュレーション時に各データ・フレームが FPGA にロードされると、あらかじめ計算さ
れた CRC 値が CRC 回路にシフトされます。同時に、FPGA の CRC エンジンがデータ・フレー
ムの CRC 値を計算し、あらかじめ計算された CRC 値と比較します。両方の CRC 値が一致しな
い場合に、nSTATUS ピンが Low にセットされてコンフィギュレーション・エラーを示します。
この機能の性能は、コンフィギュレーション中にコンフィギュレーション・ビットストリームを
変更する、もしくはコンフィギュレーション・ビットストリームを意図的に破壊することによっ
てテストすることができます。
© 2015 Altera Corporation. All rights reserved. ALTERA, ARRIA, CYCLONE, ENPIRION, MAX, MEGACORE, NIOS, QUARTUS and STRATIX words and logos are
trademarks of Altera Corporation and registered in the U.S. Patent and Trademark Office and in other countries. All other words and logos identified as
trademarks or service marks are the property of their respective holders as described at www.altera.com/common/legal.html. Altera warrants performance
of its semiconductor products to current specifications in accordance with Altera's standard warranty, but reserves the right to make changes to any
products and services at any time without notice. Altera assumes no responsibility or liability arising out of the application or use of any information,
product, or service described herein except as expressly agreed to in writing by Altera. Altera customers are advised to obtain the latest version of device
specifications before relying on any published information and before placing orders for products or services.
www.altera.com
101 Innovation Drive, San Jose, CA 95134
ISO
9001:2008
8-2
CV-52008
2015.06.12
ユーザー・モード・エラー検出
ユーザー・モード・エラー検出
ユーザー・モードでは、コンフィギュレーションされた CRAM ビットの内容が、ソフト・エラ
ーによる影響を受ける可能性があります。これらのソフト・エラーはイオン化した粒子によって
引き起こされますが、アルテラのデバイスにおいて頻繁に発生するものではありません。しか
し、デバイスにエラーのない動作を要求する高信頼性アプリケーションでは、デザインがこれら
のエラーについて考慮されていることが要求されます。
エラー検出回路を有効にして、ソフト・エラーを検出します。CRAM に格納された各データ・
フレームは、あらかじめ計算された 32 ビットの CRC を含んでいます。この機能が有効にされた
際に、エラー検出機能は CRAM の各フレームに対して 32 ビットの CRC 値を連続的に計算し、
その CRC 値をあらかじめ計算された値と比較します。
• CRC 値が一致すると、syndrome レジスタで 32 ビットの CRC・シグネチャが 0 にセットされ、
エラーが検出されなかったことを示す
• それ以外の場合には、syndrome レジスタで得られる 32 ビットの CRC・シグネチャが 0 以外
の値になり、CRC エラーを示す。CRC_ERROR ピンが High に引き上げられ、また、エラー・タ
イプと位置が識別される
フレーム内でエラー検出回路は、すべての 1 ビット、2 ビット、3 ビット、4 ビットおよび 5 ビ
ットのビット・エラーを検出することができます。 1 ビットまたは隣接する 2 ビットのエラーが
検出されると、エラー検出回路はそのビット位置をレポートし、その 1 ビットまたは隣接する 2
ビットのエラーのタイプを特定します。 その他のエラーパターンの発生確率は非常に低くなり
ますが、そのビット位置のレポートは保証されません。 また、ソフトエラーによる 5 ビットを
超える CRAM ビットの反転は、さらに、非常に低くなります。 よって、通常、全てのエラーパ
ターンを検出できる確率は 99.9999%です。 エラー検出プロセスは、nCONFIG 信号の Low へのセ
ットによりデバイスがリセットされるまで継続します。
内部スクラブ
内部スクラブは、ユーザー・モードでソフト・エラーを内部的に修正する機能です。この機能
は、1 ビット・エラーまたは隣接する 2 ビットのエラーを、デバイスのリコンフィギュレーショ
ンを伴うことなく自動的に修正します。
注: SEU 内部スクラブ機能は、パート・ナンバーの末尾に SC の付く Cyclone V E、GX、SE、SX
デバイスで利用可能です。入手可能なデバイスならびに注文に関して詳しくは、日本アルテ
ラまたは販売代理店にお問い合わせください。
図 8-1: ブロック図
Error Detection
State Machine
32-Bit CRC
Calculation and Error
Search Engine
Altera Corporation
Internal Scrubbing
Data Registers, CRC
Registers, and CRAM
Array
Cyclone V デバイスでの SEU の緩和
フィードバック
CV-52008
2015.06.12
仕様
8-3
仕様
この項では、ユーザー・モードでのエラー検出向けに、EMR アップデート間隔、エラー検出の
頻度および CRC 演算に要する時間を示します。
最小 EMR アップデート間隔
エラー・メッセージ・レジスタをアップデートする間隔は、デバイスおよびエラー検出クロック
の周波数によって異なります。 低いクロック周波数を使用すると間隔が長くなり、したがって、
SEU(Single Event Upset)から回復するための所要時間が長くなります。
表 8-1: Cyclone V デバイスでの最小 EMR アップデート間隔の概算
バリアント
Cyclone V E
Cyclone V GX
Cyclone V GT
Cyclone V SE
Cyclone V SX
Cyclone V ST
Cyclone V デバイスでの SEU の緩和
フィードバック
メンバー・コード
タイミング間隔(µs)
A2
1.47
A4
1.47
A5
1.79
A7
2.33
A9
3.23
C3
1.09
C4
1.79
C5
1.79
C7
2.33
C9
3.23
D5
1.79
D7
2.33
D9
3.23
A2
1.77
A4
1.77
A5
2.31
A6
2.31
C4
1.77
C5
2.31
C6
2.31
D5
2.31
D6
2.31
Altera Corporation
8-4
CV-52008
2015.06.12
エラー検出周波数
エラー検出周波数
エラー検出処理の速度は、Quartus II ソフトウェアでクロック周波数の分周係数を設定すること
により制御できます。nを以下の表にリストされたいずれかの値にできる場合に、分母は 2n で
す。
各データ・フレームのエラー検出処理の速度は以下の式から求めます。
図 8-2: エラー検出頻度の方程式
Error Detection Frequency
=
Internal Oscillator Frequency
2n
表 8-2: Cyclone V デバイスのエラー検出のための周波数範囲
以下の表に周波数、および有効な n の値を示します。
内蔵オシレータ周
波数
100 MHz
エラー検出周波数
最大値
100 MHz
390 kHz
分母の範囲
n
最小値
0、1、2、3、4、5、 1~256
6、7、8
デバイス全体の CRC 演算の時間
各フレーム・ビットで CRC 演算が行われる際に、デバイス全体で CRC 演算が完了するまでの所
要時間を把握しておくことが重用になります。 デバイス全体での検出時間とは、デバイス内の
すべてのフレームで CRC 演算を行うために要する時間です。 この時間は、デバイスおよびエラ
ー検出クロックの周波数によって決まります。 また、エラー検出クロックの周波数は、デバイ
スおよび内部オシレータの周波数によって 42.6MHz から 100MHz まで変動します。
いずれの除数に対しても、以下の公式によって最小および最大時間を計算できます。
最大時間(n)= 2^(n-8)* tMAX
最小時間(n)= 2^n * tMIN
ここでの n の範囲は 0 から 8 です。
表 8-3: Cyclone V デバイスでのデバイス EDCRC の検出時間
以下の表に、CRC 値を計算するために要する最小時間と最大時間を示します。
• 最小時間は、最大クロック周波数ならびに除数 0 を用いて導かれる
• 最大時間は、最小クロック周波数ならびに除数 8 を用いて導かれる
バリアント
Cyclone V E
Altera Corporation
メンバー・コード
tMIN(ms)
tMAX(s)
A2
4
2.08
A4
4
2.08
A5
7
3.54
A7
7
3.62
A9
15
7.40
Cyclone V デバイスでの SEU の緩和
フィードバック
CV-52008
2015.06.12
ユーザー・モードでのエラー検出機能の使用
バリアント
Cyclone V GX
Cyclone V GT
Cyclone V SE
Cyclone V SX
Cyclone V ST
メンバー・コード
tMIN(ms)
tMAX(s)
C3
8
4.05
C4
7
3.54
C5
7
3.54
C7
7
3.62
C9
15
7.40
D5
7
3.54
D7
7
3.62
D9
15
7.40
A2
7
3.59
A4
7
3.59
A5
13
6.30
A6
13
6.30
C4
7
3.59
C5
13
6.30
C6
13
6.30
D5
13
6.30
D6
13
6.30
8-5
ユーザー・モードでのエラー検出機能の使用
この項ではユーザー・モードでのエラー検出向けに、ピン、レジスタ、プロセス・フロー、およ
び手順について説明します。
エラー検出の有効化
Quartus II ソフトウェアでユーザー・モードのエラー検出と内部スクラブを有効にするには、以
下のステップを実行します。
Assignments メニューで、Device をクリックします。
Device ダイアログ・ボックスで、Device and Pin Options をクリックします。
Category リストで Error Detection CRC をクリックします。
Enable Error Detection CRC_ERROR pin をオンにします。
CRC_ERROR ピンを出力オープン・ドレインにセットするために、Enable open drain on
CRC_ERROR pin をオンにします。このピンをオフにすると、CRC_ERROR ピンが出力としてセ
ットされます。
6. オンチップ・エラー訂正機能を有効にするために Enable internal scrubbing をオンにします。
7. Divide error check frequency by リストで有効な除数を選択します。
8. OK をクリックします。
1.
2.
3.
4.
5.
Cyclone V デバイスでの SEU の緩和
フィードバック
Altera Corporation
8-6
CV-52008
2015.06.12
CRC_ERROR ピン
CRC_ERROR ピン
表 8-4: ピンの概要
ピン名
ピン・タイプ
概要
I/O または、出力/ アクティブ High の信号であり、High に駆動される
出力オープン・ド と、CRAM ビットでエラーが検出されたことを示
レイン
す。 このピンは、ユーザー・モードでエラー検出を
有効にした際にのみ使用される。 それ以外の場合
には、このピンはユーザー I/O ピンとして使用され
る。
CRC_ERROR
WYSIWYG 機能を使用する際には、crcerror ポート
を WYSIWYG アトムから専用 CRC_ERROR ピンまた
は任意のユーザー I/O ピンに配線する。
ポートをユーザー I/O ピンまで配線する
ために、これらの間に D-type のフリップ・フロップ
を挿入する。
crcerror
エラー検出レジスタ
この項では、ユーザー・モードで使用されるレジスタについて説明します。
図 8-3: ユーザー・モードでのエラー検出のブロック図
以下のブロック図に、ユーザー・モードでのレジスタおよび、データ・フローを示します。
Readback
Bitstream with
Expected CRC
Error
Detection
State
Machine
Error Injection
Block
Fault
Injection
Register
JTAG
Fault
Injection
Register
Control
Signals
32-bit Error Detection
CRC Calculation and
Error Search Engine
Error
Message
Register
Altera Corporation
CRC_ERROR
JTAG
Update
Register
User
Update
Register
JTAG
Shift
Register
User
Shift
Register
JTAG TDO
Syndrome
Register
General Routing
Cyclone V デバイスでの SEU の緩和
フィードバック
CV-52008
2015.06.12
エラー検出レジスタ
8-7
表 8-5: エラー検出レジスタ
レジスタ名
幅(ビット)
概要
シンドローム・レジス
タ
32
現在のフレーム用に計算された 32 ビットの CRC シグネチ
ャを含む。CRC 値が 0 の場合、CRC_ERROR ピンが Low に駆動
されエラーが無いことを表示。それ以外の場合にはピンは
High に引き上げられている
エラー・メッセージ・
レジスタ(EMR)
67
1 ビット・エラーまたは隣接する 2 ビット・エラーの詳細を
含む。エラー検出回路がエラーを検出するたびに回路がレ
ジスタを更新。「エラー・メッセージ・レジスタ・マップ」
の図はこのレジスタのフィールドを示し、
「EMR のエラー・
タイプ」の表は起こりうるエラーの種類を示す
JTAG アップデート・
レジスタ
67
このレジスタは、EMR の内容が検証された 1 クロック・サ
イクル後に EMR レジスタの内容で自動的に更新される。
JTAG アップデート・レジスタはクロック・イネーブルを含
み、これは JTAG アップデート・レジスタの内容が JTAG シ
フト・レジスタに書き込まれる前にアサートされる必要があ
る。この条件により、その内容が JTAG シフト・レジスタに
読み出される際に JTAG アップデート・レジスタの内容が上
書きされることを防ぐ
JTAG シフト・レジス
タ
67
このレジスタにより、SHIFT_EDERROR_REG JTAG 命令を使用し
て、JTAG インタフェースを介して JTAG アップデート・レ
ジスタの内容にアクセスすることができる
ユーザー・アップデー
ト・レジスタ
67
このレジスタは、EMR の内容が検証された 1 クロック・サ
イクル後に EMR レジスタの内容で自動的に更新される。ユ
ーザー・アップデート・レジスタはクロック・イネーブルを
含み、これはユーザー・アップデート・レジスタの内容がユ
ーザー・シフト・レジスタに書き込まれる前にアサートされ
る必要がある。この条件により、その内容がユーザー・シフ
ト・レジスタに読み出される際にユーザー・アップデート・
レジスタの内容が上書きされることを防ぐ
ユーザー・シフト・レ
ジスタ
67
このレジスタにより、ユーザー・ロジックがコア・インタフ
ェースを介してユーザー・アップデート・レジスタの内容に
アクセスすることができる
JTAG フォールト・イ
ンジェクション・レジ
スタ
46
このレジスタを EDERROR_INJECT JTAG 命令と共に使用して、
ビットストリームにエラーを注入する。JTAG フォールト・
インジェクション・レジスタ・マップの表は、このレジスタ
のフィールドをリストしている
フォールト・インジェ
クション・レジスタ
46
このレジスタは、JTAG フォールト・インジェクション・レ
ジスタの内容で更新される
Cyclone V デバイスでの SEU の緩和
フィードバック
Altera Corporation
8-8
CV-52008
2015.06.12
エラー検出プロセス
図 8-4: エラー・メッセージ・レジスタ・マップ
MSB
LSB
Syndrome
Frame Address
32 bits
Double Word
Location
Byte Offset
Bit Offset
10 bits
2 bits
3 bits
16 bits
Error Type
4 bits
表 8-6: EMR のエラー・タイプ
以下の表に、EMR のエラー・タイプ・フィールドでレポートされる可能性のあるエラー・タイプをリ
ストします。
エラー・タイプ
ビッ
ト3
ビッ
ト2
ビッ
ト1
概要
ビッ
ト0
0
0
0
0
CRC エラーなし
0
0
0
1
1 ビット・エラーが検出された位置
0
0
1
0
隣接する 2 ビットのエラーが検出された位置
1
1
1
1
1 ビットまたは隣接する 2 ビット・エラー以外のエラー・タイプ
表 8-7: JTAG フォールト・インジェクション・レジスタ・マップ
フィールド名
ビット範囲
概要
エラー・バイ
ト値
31:0
エラー注入タイプに対応したビット・エ
ラーの位置を示す
バイト位置
41:32
最初のデータ・フレームで注入されたエ
ラーの位置を示す
45:42
エラー・タイ
プ
ビット 以下のエラー・タイプを示す
42
ビット
45
ビット
44
ビット
43
0
0
0
0
エラーなし
0
0
0
1
1 ビット・エラー
0
0
1
0
隣接する 2 ビット・エラー
エラー検出プロセス
有効にすると、FPGA がユーザー・モードに入った際に、ユーザー・モード・エラー検出プロセ
スが自動的にアクティブになります。 このプロセスは、現在のフレームでエラーが検出された
としても、デバイスがリセットされるまで継続的に動作を続けます。
Altera Corporation
Cyclone V デバイスでの SEU の緩和
フィードバック
CV-52008
2015.06.12
エラー検出プロセス
8-9
図 8-5: ユーザー・モードでのエラー検出プロセス・フロー
データ・
フレームを受信
CRC値を
演算し比較
CRC_ERROR信号を
32クロック・サイクル
Lowに引き下げる
No
エラーが
検出された?
Yes
エラー・メッセージ
レジスタを更新
(上書き)
エラーの位置を
調べる
CRC_ERROR
信号をHighに
駆動する
タイミング
ピンは、CRC 演算中の少なくとも 32 クロック・サイクルは常に Low に駆動されてい
ます。 エラーが発生した際に、EMR が更新されたか、32 クロック・サイクルが経過したか、直
近のどちらかにより、ピンが High に駆動されます。 これにより、CRC_ERROR ピンの立ち上がり
エッジで EMR の内容の取得を開始することができます。 ピンは、現在のフレームが読み出され
るまで High にとどまり、次に、再び最短でも 32 クロック・サイクルの間 Low に駆動されます。
情報インテグリティを確かなものにするために、読み出し動作を CRC 検証の 1 フレームの範囲
内で完了させます。 以下の図に、これらのイベントのタイミングを示します。
CRC_ERROR
図 8-6: タイミング要件
Frame
Data Integrity
N
No CRC Error
N+1
N+2
CRC Error
CRC Error
N+3
No CRC Error
N+4
CRC Error
N+5
No CRC Error
Read Data Frame
CRC ERROR Pin
CRC Calculation
(minimum 32 clock
cycles)
Read Error Message
Register (allowed time)
フレームN+1の
エラーメッセージを
読み出し
フレームN+2の
エラーメッセージを
読み出し
フレームN+4の
エラーメッセージを
読み出し
エラー情報の取得
命令を使用して、コア・インタフェースまたは JTAG インタフェースを
介してエラー情報を取得することができます。
SHIFT_EDERROR_REG JTAG
CRC エラーからの回復
FPGA をホストするシステムは、デバイスのリコンフィギュレーションを制御する必要がありま
す。 CRC エラーから回復するには。nCONFIG 信号を Low に駆動します。 システムは、デバイス
がリコンフィギュレーションするまでの時間を待機します。 リコンフィギュレーションが正常
に完了すると、FPGA は意図したとおりに動作します。
Cyclone V デバイスでの SEU の緩和
フィードバック
Altera Corporation
8-10
CV-52008
2015.06.12
エラー検出ブロックのテスト
関連情報
• 8-4 ページの エラー検出周波数
• 8-3 ページの 最小 EMR アップデート間隔
各 Cyclone® V デバイスでの時間間隔について詳しい情報を提供します。
• Test Methodology of Error Detection and Recovery using CRC in Altera FPGA Devices
エラー情報を取得する方法について詳しい情報を提供します。
エラー検出ブロックのテスト
エラー検出ブロックをテストするために、コンフィギュレーション・データにエラーを注入する
ことができます。 このエラー注入の手法により、デザインの検証およびシステム障害の許容特
性評価を行うことができます。
JTAG インタフェースを介したテスト
EDERROR_INJECTJTAG 命令を使用して、コンフィギュレーション・データに 1 ビットの、あるい
は隣接する 2 ビットのエラーを意図的に注入することができます。
表 8-8: EDERROR_INJECT 命令
JTAG 命令
命令コード
00 0001 0101
EDERROR_INJECT
概要
この命令を使用してコンフィギュレーション・デー
タにエラーを注入する。 この命令は JTAG フォー
ルト・インジェクション・レジスタを制御し、この
レジスタがビットストリームに注入するためのエ
ラーを格納している
エラーは、コンフィギュレーション・データの最初のフレームにのみ注入することができます。
しかし、エラー情報はいつでもモニタリングできます。 アルテラは、テストの完了後に FPGA
をリコンフィギュレーションすることを推奨しています。
テストプロセスの自動化
Jam™ファイル(.jam)を作成することにより、テスト・プロセスを自動化することができます。
このファイルを使用して、デバイスのリコンフィギュレーションを伴わずに、イン・システム
で、かつオンザフライで CRC 機能を検証することができます。 その後で、CRC 回路に切り換え
て、SEU に起因する実際のエラーをチェックできます。
関連情報
Test Methodology of Error Detection and Recovery using CRC in Altera FPGA Devices
エラー検出ブロックをテストする方法について詳しい情報を提供します。
改訂履歴
日付
バージョン
2015 年 3 月
2015.03.31
内部スクラブ機能のサポートを追加
2015 年 1 月
2015.01.23
CRC の演算に要する時間の項の説明を更新
Altera Corporation
変更内容
Cyclone V デバイスでの SEU の緩和
フィードバック
CV-52008
2015.06.12
改訂履歴
8-11
日付
バージョン
2014 年 6 月
2014.06.30
CRC の演算に要する時間の項を更新
2013 年 11 月
2013.11.12
• CRC の演算に要する時間の項を更新し、最小および最大時間を
計算する公式を追加
• 最小 EMR アップデート間隔および CRC 演算に要する時間の暫
定値を削除
• 内部スクラブ機能に関する関連情報を削除
2013 年 5 月
2013.05.06
• Knowledge Base の known document issues へのリンクを追加
• Cyclone V E、Cyclone V GX、および Cyclone V GT デバイス向け
の最小 EMR アップデート間隔および CRC 演算に要する時間を
更新
• 参照を容易にするために、すべてのリンクを各トピックの関連
情報のセクションに移動
2012 年 12 月
2012.12.28
• JTAG フォールト・インジェクションおよびフォールト・イン
ジェクション・レジスタの幅を更新
2012 年 6 月
2.0
• 「Basic Description」、「エラー検出機能」、「Types of Error
Detection」、「Error Detection Components」、「Using the Error
Detection Feature」、および「エラー検出ブロックのテスト」の
項を追加
• 表 8-4、表 8-5、および表 8-6 を更新
• 章を改編
2011 年 10 月
1.0
初版
Cyclone V デバイスでの SEU の緩和
フィードバック
変更内容
Altera Corporation