JP2018077638A - データ処理装置、これを用いた伝送装置、及びデータ処理方法 - Google Patents
データ処理装置、これを用いた伝送装置、及びデータ処理方法 Download PDFInfo
- Publication number
- JP2018077638A JP2018077638A JP2016218375A JP2016218375A JP2018077638A JP 2018077638 A JP2018077638 A JP 2018077638A JP 2016218375 A JP2016218375 A JP 2016218375A JP 2016218375 A JP2016218375 A JP 2016218375A JP 2018077638 A JP2018077638 A JP 2018077638A
- Authority
- JP
- Japan
- Prior art keywords
- value
- crc
- calculated value
- memory
- data processing
- 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.)
- Pending
Links
Images
Landscapes
- Detection And Correction Of Errors (AREA)
- Logic Circuits (AREA)
Abstract
【課題】プログラマブルデバイスの再コンフィグレーションが行われない場合に、複数回のソフトエラーの検出を可能にする。
【解決手段】外部から転送されるコンフィグレーションデータにより回路が形成されるプログラマブルデバイスを有するデータ処理装置は、転送された前記コンフィグレーションデータを記憶する第1のメモリと、前記コンフィグレーションデータを用いてあらかじめ計算された第1の計算値を記録する第2のメモリと、前記プログラマブルデバイスの動作中に前記第1のメモリの前記コンフィグレーションデータに所定の演算を行って第2の計算値を求める計算部と、前記第1の計算値と前記第2の計算値を比較する比較部と、前記第1の計算値と前記第2の計算値が一致しない場合に、前記第2のメモリに前記第2の計算値を書き込む制御部と、を有する。
【選択図】図3
【解決手段】外部から転送されるコンフィグレーションデータにより回路が形成されるプログラマブルデバイスを有するデータ処理装置は、転送された前記コンフィグレーションデータを記憶する第1のメモリと、前記コンフィグレーションデータを用いてあらかじめ計算された第1の計算値を記録する第2のメモリと、前記プログラマブルデバイスの動作中に前記第1のメモリの前記コンフィグレーションデータに所定の演算を行って第2の計算値を求める計算部と、前記第1の計算値と前記第2の計算値を比較する比較部と、前記第1の計算値と前記第2の計算値が一致しない場合に、前記第2のメモリに前記第2の計算値を書き込む制御部と、を有する。
【選択図】図3
Description
本発明は、データ処理装置、これを用いた伝送装置、及びデータ処理方法に関し、特にプログラマブルデバイスにおけるエラー検出に関する。
プログラマブルロジックデバイスのひとつに、フィールドプログラマブルゲートアレイ(FPGA)がある。FPGAは、インタフェース経由で転送された設定情報にしたがって論理回路をプログラムするデバイスである。FPGA内部で論理回路を構築する基本回路は、ルックアップテーブル(LUT)と呼ばれる回路ブロックによって形成される。LUTは、コンフィグレーションメモリ(CRAM:Configuration Random Access Memory)をもっており、CRAMに記憶された設定情報によって論理回路を構築する。CRAMの設定情報を変更することにより、論理回路を自由に構成することができる。設定情報はFPGAの外部の不揮発性メモリに格納されており、FPGAの起動時に設定情報が不揮発性メモリからCRAMへ転送される。
CRAMにソフトエラーが発生し、記憶されている設定情報が変化した場合、FPGA内の論理回路が意図しない構成となることで誤作動を引き起こす可能性がある。FPGAでのCRAMのエラーを検出する仕組みとして、CRC(Cyclic Redundancy Check:巡回冗長検査)のチェックサム計算値と期待値とを比較する方法が知られている(たとえば、特許文献1参照)。また、CRAMで発生したエラーを無視することができるか否かを判断する手法や(たとえば、特許文献2参照)、CRAMのエラー履歴を時系列上に記録して障害発生原因の解析を容易にする手法(たとえば、特許文献3参照)が提案されている。
CRAMの使用領域でエラーが発生した場合、FPGA内部の論理回路に異常をきたして誤作動を引き起こす可能性がある。他方、CRAMの未使用領域でエラーが発生した場合は、論理回路に影響がないため誤作動は発生しない。エラーチェック用のCRC値はCRAMの全領域から計算されるため、エラー発生箇所がCRAMの使用領域か未使用領域かを判断することができない。
CRAMのエラーを解消するためにFPGAの再コンフィグレーション(再設定)が行われるが、再コンフィグレーション中はFPGAの機能が停止する。そのため、FPGAが適用される装置によっては、CRAMにエラーが検出されても、論理回路の誤作動が検出されない限り、エラーの対処を保留する場合がある。この場合、CRAMに次のソフトエラーが発生しても、CRC値の比較結果が期待値と不一致の状態のままになっているため、エラーを検出することができない。また、次のエラー発生箇所がCRAMの使用領域で発生した場合は誤作動が生じる可能性が高いが、その誤作動がCRAMのソフトエラーに起因するものであることを特定することができない。
そこで、再コンフィグレーションが行われない場合に、ソフトエラーの発生を複数回検出することのできるデータ処理の技術を提供することを目的とする。
一つの態様では、外部から転送されるコンフィグレーションデータにより回路が形成されるプログラマブルデバイスを有するデータ処理装置は、
転送された前記コンフィグレーションデータを記憶する第1のメモリと、
前記コンフィグレーションデータを用いてあらかじめ計算された第1の計算値を記録する第2のメモリと、
前記プログラマブルデバイスの動作中に、前記第1のメモリの前記コンフィグレーションデータに所定の演算を行って第2の計算値を求める計算部と、
前記第1の計算値と前記第2の計算値を比較する比較部と、
前記第1の計算値と前記第2の計算値が一致しない場合に、前記第2のメモリに前記第2の計算値を書き込む制御部と、
を有する。
転送された前記コンフィグレーションデータを記憶する第1のメモリと、
前記コンフィグレーションデータを用いてあらかじめ計算された第1の計算値を記録する第2のメモリと、
前記プログラマブルデバイスの動作中に、前記第1のメモリの前記コンフィグレーションデータに所定の演算を行って第2の計算値を求める計算部と、
前記第1の計算値と前記第2の計算値を比較する比較部と、
前記第1の計算値と前記第2の計算値が一致しない場合に、前記第2のメモリに前記第2の計算値を書き込む制御部と、
を有する。
上記構成により、再コンフィグレーションが行われない場合に、ソフトエラーの発生を複数回検出することが可能になる。
実施形態では、計算されたCRC値と期待値が不一致となった場合、CRCの計算値を次回のエラーチェックの比較の基準値として用いることで、複数回のソフトエラーの検出を可能にする。
図1は、実施形態のデータ処理装置100が適用される伝送装置1のハードウェア構成図である。データ処理装置100は、プログラマブルデバイスの一例であるFPGA10と、FPGA10の論理回路の構築に用いられる設定情報(コンフィグレーションデータ)を保持する不揮発性メモリ2を有する。設定情報は、FPGA10の論理回路を構築する際に、不揮発性メモリ2からFPGA10内のCRAM11に転送され、記憶される。
半導体デバイスの微細化にともなって、CRAM11の素子サイズは減少を続け、ソフトエラーの影響を受けやすくなっている。ソフトエラーは、α線等の宇宙線の入射によって引き起こされる自然発生的なビット反転である。ソフトエラーの発生箇所によっては、装置の動作に影響せず、また再コンフォグレーションにより補正されるため、セル自体の機能が阻害されるハードエラーと区別して「ソフトエラー」と呼ばれている。
従来のCRC値の比較によるエラー検出では、CRC計算値と期待値が異なる場合にCRAM11にエラーが発生したと判断されてエラー信号が出力される。これにより、1回目はソフトエラーの発生を認識することができる。ただし、実際にRPGAの論理回路の構築に用いられるセルはCRAM11の一部であり、使用されていないセルも多数ある。CRAM11にソフトエラーが発生しても、伝送装置1の動作に影響しない場合もある。現実の運用では、ソフトエラーが検出されても、装置の動作に不具合が生じていない場合はそのまま使用を継続して、動作の中断を回避している。CRAM11のエラーを解消するには、FPGA10を再コンフィグレーションしてCRAM11内の設定情報を正しいデータに書き換える必要があるが、再コンフィグレーションの間、伝送装置1の処理機能が停止してしまうからである。
この状態で2回目のソフトエラーが発生した場合、すでにCRAM11内のセルにビット反転(ソフトエラー)が生じており、エラーチェックのためのCRC値が正しく計算されない。したがって、CRC計算値を期待値と比較しても、追加のソフトエラーが発生しているのか否かを正しく判断することができない。また、2回目のソフトエラーがCRAM11の使用領域で発生した場合は、誤作動の原因となるが、ソフトエラーが誤作動の原因なのか否かを特定することができない。
このような技術的課題に鑑みて、実施形態のデータ処理装置100では、CRCの計算値と期待値が不一致となった場合、CRCの計算値を次回のエラーチェックの比較の基準値として用いる。
図1に戻って、データ処理装置100は、伝送装置1で送受信されるパケットの処理を行う。伝送装置1は、データ処理装置100の他に、スイッチインタフェース(SW−IF)3、PHY/MAC(Media Access Control)チップ4、モジュール5、及び監視デバイス6を有する。モジュール5は、たとえばパーソナルコンピュータ(PC)等の情報機器を伝送装置1に接続するコネクタ等の部品である。PHY/MACチップ4は、シリアル/パラレル変換等の物理層の処理と、MACアドレスの付与、識別等のMAC層の処理を行う。スイッチインタフェース3は、ポート間の切り替え、ネットワークへの接続等を行う。監視デバイス6は、データ処理装置100の動作を監視する。
図2は、伝送装置1の機能ブロック図である。伝送装置1は、設定情報保持部12a〜12c、ネットワーク接続部13、PHY−MAC処理部14、機器接続部15、監視部16、OAM(Operation Administration Maintenance:運用・管理・保守)機能部17、受信パケット処理部18、及び送信パケット処理部19を有する。
ネットワーク接続部13は、図1のスイッチインタフェース3によって実現され、ポート間の切り替えやネットワーク接続を処理する。機器接続部15は、図1のモジュール5で実現され、伝送装置1と各情報機器とを接続する。PHY−MAC処理部14は、図1のPHY−MACチップ4で実現され、物理層及びMAC層の処理を行う。
OMA機能部17は、ネットワーク接続部13の接続状態やスイッチング動作を管理する。受信パケット処理部18は、PC等の機器から受信されMAC処理されたパケットのエラーチェックを行い、ネットワークの伝送に適した形式に変換する。送信パケット処理部19は、ネットワークで伝送されてきたパケットの解析とエラーチェックを行い、PHY/MAC処理部19へ渡す。監視部16は、OAM機能部17、受信パケット処理部18、及び送信パケット処理部19に誤動作が発生しないかを監視する。
図2の例では、少なくともOAM機能部17、受信パケット処理部18、及び送信パケット処理部19が、図1のFPGA10によって実現される。設定情報保持部12a〜12cは、図1の不揮発性メモリ2によって実現される。OAM機能部17、受信パケット処理部18、及び送信パケット処理部19は、それぞれ個別のFPGA10によって実現されてもよいし、ひとつのFPGAチップで実現されてもよい。ひとつのFPGAチップを用いる場合は、OAM、受信パケット処理、送信パケット処理の各機能に応じた数のCRAM11がFPGAチップ上に配置される。各機能に応じた複数の不揮発性メモリ2を用いて、対応するFPGA10に接続してもよいし、ひとつの不揮発性メモリ2の領域を分けて、対応するFPGA10の回路形成のための設定情報(コンフィグレーションデータ)を記憶してもよい。監視部16は、図1の監視デバイス6で実現されてもよいし、FPGA10によって実現されてもよい。
OAM機能部17、受信パケット処理部18、及び送信パケット処理部19がそれぞれ個別のFPGA10で実現される場合、対応するCRAM11のいずれにおいてもソフトエラーが発生し得る。ソフトエラーは、CRAM11の使用領域、未使用領域を問わずに発生する。伝送装置1のように絶えず通信のやりとりを行っている装置では、ソフトエラーの検出の都度、FPGA10の再コンフィグレーションを行うと、通信の妨げになる。ソフトエラーが検出されても誤作動が認識されない場合は、エラー状態を保持したまま通信処理を続けるほうが効率が良いが、引き続き発生する可能性のあるエラーの検出は必要である。そこで、データ処理装置100に、複数回のエラーチェックを可能にする構成を持たせる。
<第1実施例>
図3は、第1実施例のデータ処理装置100Aの構成例を示す。データ処理装置100Aは、不揮発性メモリ12と、FPGA10Aを有する。不揮発性メモリ12は、FPGA10Aの論理回路の構成に用いられる設定情報121と、CRC期待値122を格納する。FPGA10Aは、CRAM11と、CRC記録部102と、CRC制御部103、CRC比較部104を有する。
<第1実施例>
図3は、第1実施例のデータ処理装置100Aの構成例を示す。データ処理装置100Aは、不揮発性メモリ12と、FPGA10Aを有する。不揮発性メモリ12は、FPGA10Aの論理回路の構成に用いられる設定情報121と、CRC期待値122を格納する。FPGA10Aは、CRAM11と、CRC記録部102と、CRC制御部103、CRC比較部104を有する。
不揮発性メモリ12に保持されている設定情報121は、FPGA10Aのコンフィグレーション時にFPGA10の内部のCRAM11に転送され、CRC期待値122はCRC記録部102に転送される。コンフィグレーションが完了してFPGA10Aが通常動作を開始すると、CRC制御部103は定期的にCRAM11のデータを読み出して、CRC値を計算する。CRAM11に記憶されている設定情報121(すなわちFPGA10の論理回路を構築するためのデータ)は、LUTへのエントリやFPGA10Aの動作モードの制御値、相互接続線の制御値等を含む。FPGA10Aの動作は、これらのデータが正しい値を持っていることが前提となっているので、定期的にエラーチェックが行われる。CRC値の計算は、たとえばデータ処理装置100Aが適用される伝送装置1の伝送規格で規定されている計算式を用いて行われる。
CRC比較部104は、CRC記録部102に記録されている期待値を読み出して、CRC制御部103によって演算されたCRCの計算値と期待値を比較する。CRCの計算値と期待値が一致する場合は、CRAM11の設定情報にエラーは発生していないので、CRC制御部103による次のCRC値の計算を待つ。
比較結果が不一致の場合は、外部の監視デバイス6とCRC制御部103にエラー通知を送信する。エラー通知を受け取ったCRC制御部103は、不一致となったCRCの計算値をCRC記録部102に書き込む。以降の比較処理では、このCRC記録部102に記録されたCRCの計算値が用いられる。不一致判断がなされたCRCの計算値は、従前の期待値に上書きされてもよいし、期待値と異なるアドレスに記録されてもよい。監視デバイス6は、エラー通知を受けて、FPGA10Aで実現される機能に誤作動が生じていないか否かを判断する。誤作動が生じていなければ、CRAM11の未使用領域にソフトエラー(ビット反転)が発生しているが、CRAM11内の設定情報自体に問題はない。この場合は、監視デバイス6は、再コンフィグレーションの要求を出さずにFPGA10Aの動作を継続させる。
CRC制御部103は、次のエラーチェックのタイミングでCRAM11のデータを読み出してCRC値を計算する。CRC比較部104は、CRC制御部103で演算されたCRCの計算値を、CRC記録部102に記録された前回エラー発生時のCRCの計算値と比較する。CRC比較部104での比較結果が一致する限り、CRAM11の未使用領域にビット反転が生じている状態であっても、FPGA10Aの設定情報に変化はなく、適正な動作が維持される。
2回目以降のエラーチェックで、CRC比較部104で不一致が検出されたときは、CRAM11の別のセルでビット反転が生じていると考えられる。CRC比較部104はエラー通知をCRC制御部103と外部の監視デバイス6へ出力する。監視デバイス6からの再コンフィグレーション要求がない場合は、CRC制御部103は、2回目の不一致となったCRCの計算値をCRC記録部102に書き込む。このCRCの計算値は、前回の不一致時のCRCの計算値に上書きされてもよいし、期待値及び前回の不一致時のCRCの計算値と異なるアドレスに記録されて、エラー履歴が生成されてもよい。エラー履歴を残す場合は、不一致結果をもたらした最新のCRCの計算値が、以降のエラーチェックの基準値として用いられる。
このようにして、再コンフィグレーションを要する誤作動が生じていないかぎり、CRAM11に生じたソフトエラー状態を容認してFPGA10Aの動作を継続させ、かつ、2回目以降のエラー検出の機能も担保する。これによって、FPGA10Aの動作中断を回避しつつ、複数回のエラー検出が可能になる。
なお、監視デバイス6が誤差動を検出した場合は、CRAM11の使用領域のセル、すなわちCRAM11に設定されたコンフィグレーションデータ自体にエラーが発生していると判断される。この場合は、FPGA10Aの再コンフィグレーションを行って、正常動作を回復する。
図4は、図3のFPGA10Aのエラーチェックの処理フローを示す図である。図3の説明と重複する部分は簡略化して説明する。まず、FPGA10Aのコンフィグレーションが開始される(S11)。コンフィグレーションにより、たとえば、受信パケット処理、送信パケット処理などのユーザ定義の処理機能がFPGA10Aに設定される。コンフィグレーションが開始されると、FPGA10Aは、外部の不揮発性メモリ12から設定情報121とCRC期待値122の転送を受ける(S12)。コンフィグレーションが完了してFPGA10Aの通常動作が始まると、所定のタイミングでCRAM11に保存された設定情報からCRC値が計算され(S13)、CRC比較部104でCRCの計算値と期待値122が比較される(S14)。期待値122は設定情報についてあらかじめ計算されている値である。期待値とCRCの計算値を比較することで、CRAM11に記憶されている設定情報が正確であるか否かが確認される。
CRCの計算値と期待値が一致する場合は(S15でYES)、CRAM11に記憶されている設定情報にエラーはない。この場合は、ステップS13に戻って、次のエラーチェックのタイミングでステップS13〜S15の処理を繰り返す。次回のエラーチェックのループでも、CRC記録部102に記録された期待値が用いられる。
CRCの計算値と期待値が一致しない場合は(S15でNO)、外部の監視デバイス6とCRC制御部103に不一致(エラー)が通知される(S16)。不一致の通知により、今回のCRCの計算値がCRC記録部102に記録される(S17)。
CRC制御部103は、外部の監視デバイス6からの再コンフィグレーション要求が受信されたか否かを判断する(S18)。再コンフィグレーション要求がない場合は(S18でNO)、FPGA10Aの動作に影響しないCRAM11の未使用領域でのエラー発生の可能性が高い。そこで、発生したエラーをそのままにして、ステップS13へ戻り、次のエラーチェックのタイミングでCRAM11の設定情報のエラーチェックを行う。次回以降の比較処理(S14)では、CRC記録部102に記録された不一致結果のCRCの計算値が、比較の基準として用いられる。
外部から再コンフィグレーション要求を受け取った場合は(S18でYES)、CRAM11の設定情報自体にエラーが発生していることを意味する。この場合は、ステップS11に戻って、FPGA10Aを再コンフィグレーションする。
FPGA10Aの動作に影響しないエラー検出時のCRCの計算値を次回以降の比較の基準として用いることで、再コンフィグレーションされるまでに複数回のエラーチェックが可能になる。
また、従来は誤作動が発生したときにエラー箇所を特定できない場合は、正常な素子を多数含んでいてもFPGAごと交換することもあるが、本発明の構成と手法により、部品交換を減らし、障害調査時間を短縮できるという効果が得られる。
<第2実施例>
図5は、第2実施例のデータ処理装置100Bの構成例を示す。データ処理装置100Bは、不揮発性メモリ12と、FPGA10Bを有する。不揮発性メモリ12は、FPGA10Aの論理回路の構成に用いられる設定情報121と、CRC期待値122を格納する。FPGA10Bの構成要素は、図3のFPGA10Aと同じであるが、データ処理の手法が異なる。第1実施例では、FPGA10AのCRC制御部103が、不一致結果となったCRCの計算値をCRC記録部102に記録するが、第2実施例2では、CRC記録部102のCRCの計算値の更新を外部のデバイスが行う。
<第2実施例>
図5は、第2実施例のデータ処理装置100Bの構成例を示す。データ処理装置100Bは、不揮発性メモリ12と、FPGA10Bを有する。不揮発性メモリ12は、FPGA10Aの論理回路の構成に用いられる設定情報121と、CRC期待値122を格納する。FPGA10Bの構成要素は、図3のFPGA10Aと同じであるが、データ処理の手法が異なる。第1実施例では、FPGA10AのCRC制御部103が、不一致結果となったCRCの計算値をCRC記録部102に記録するが、第2実施例2では、CRC記録部102のCRCの計算値の更新を外部のデバイスが行う。
FPGA10Bのコンフィグレーション時に、不揮発性メモリ12に保持されている設定情報121がCRAM11に転送され、CRC期待値122がCRC記録部102に転送される。コンフィグレーションが完了してFPGA10Bが通常動作を開始すると、CRC制御部103は定期的にCRAM11のデータを読み出して、CRC値を計算する。
CRC比較部104は、エラーチェックのタイミングで、CRC記録部102に記録されている期待値を読み出して、CRC制御部103で演算されたCRCの計算値と期待値を比較する。CRCの計算値と期待値が一致する場合は、CRAM11の設定情報にエラーは発生していないので引き続きCRC制御部103でのCRCの計算を待つ。
比較結果が不一致の場合は、CRC比較部104はFPGA10Bの外部の監視デバイス6にエラー通知を送信する。監視デバイス6は、CRC監視部161と動作監視部162を有する。エラー通知を受け取ったCRC監視部161は、CRC制御部103から不一致となったCRCの計算値を読み出して、CRC記録部102に書き込む。書き込まれた不一致のCRCの計算値は、以降の比較処理で基準値として用いられる。第1実施例と同様に、不一致判断がなされたCRCの計算値は従前の期待値に上書きされてもよいし、期待値と異なるアドレスに記録されてもよい。
他方、動作監視部162は、エラー通知を受けて、FPGA10Bで実現される機能に誤作動が生じていないか否かを判断する。誤作動が生じていなければ、CRAM11の未使用領域でのソフトエラー(ビット反転)の発生である可能性が高いので、監視デバイス6は、再設定なしにFPGA10Bの動作を継続させる。
CRC制御部103は、所定のタイミングでCRAM11のデータの読み出しとCRCの計算を繰り返す。CRC比較部104は、エラーチェックのタイミングで、CRC制御部103で演算されたCRCの計算値を、CRC記録部102に記録された前回エラー発生時のCRCの計算値と比較する。CRC比較部104での比較結果が一致する限り、CRAM11の未使用領域にビット反転が生じている状態であっても、FPGA10Bのデータ処理にエラーは発生していない。
2回目以降にCRC比較部104で不一致が検出されたときは、CRAM11の別のセルでビット反転が生じている可能性がある。CRC比較部104はエラー通知をCRC制御部103と外部の監視デバイス6へ出力する。監視デバイス6は、動作監視部162で誤作動が検出されない限り、CRC監視部161で2回目の不一致となったCRCの計算値を読み出して、CRC記録部102に書き込む。次回以降のエラーチェックでは、最新のCRCの不一致の計算値が、比較処理の基準値として用いられる。
動作監視部162が誤差動を検出した場合は、FPGA10Bの再コンフィグレーションを行って正常動作を回復する。すなわち、不揮発性メモリ12から設定情報121がCRAM11に転送されて、ロジックが再設定される。
図6は、図5のFPGA10Bのエラーチェックの処理フローを示す図である。図5の説明と重複する部分は簡略化して説明する。まず、FPGA10Bのコンフィグレーションが開始される(S21)。コンフィグレーションが開始されると、FPGA10Bは、外部の不揮発性メモリ12から、設定情報121とCRC期待値122の転送を受ける(S22)。FPGA10BのCRC制御部103で、CRAM11に保存された設定情報からCRC値が計算され(S23)、CRC比較部104でCRCの計算値と期待値122が比較される(S24)。
CRCの計算値と期待値が一致する場合は(S25でYES)、CRAM11に記憶されている設定情報にエラーは発生しておらず、ステップS23に戻って、次のエラーチェックのタイミングでステップS23〜S25の処理を繰り返す。次回のエラーチェックのループでも、CRC記録部102に記録された期待値が用いられる。
CRCの計算値と期待値が一致しない場合は(S25でNO)、外部の監視デバイス6に不一致(エラー)を通知する(S26)。外部の監視デバイス6(たとえばCRC監視部161)により読み出されたCRC制御部103の不一致のCRCの計算値が、CRC記録部102に記録される(S27)。
CRC制御部103は、外部の監視デバイス6からの再コンフィグレーション要求が受信されたか否かを判断する(S28)。再コンフィグレーション要求がない場合は(S28でNO)、FPGA10Bの動作に影響しないCRAM11の未使用領域でのエラー発生の可能性が高い。そこで、発生したエラーをそのままにして、ステップS23へ戻って、CRAM11の設定情報のエラーチェックを行う。次回以降の比較処理(S24)では、CRC記録部102に記録された不一致結果のCRCの計算値が、比較の基準として用いられる。
外部から再コンフィグレーション要求を受け取った場合は(S18でYES)、CRAM11の設定情報自体にエラーが発生していることを意味するので、ステップS21に戻って、FPGA10Bを再コンフィグレーションする。
FPGA10Bの動作に影響しないエラー検出時のCRCの計算値を次回以降の比較の基準として用いることで、再コンフィグレーションされるまでに複数回のエラーチェックが可能になる。
第2実施例でも、不要な部品交換を減らし、障害調査時間を低減できるという効果が得られる。
<変形例>
図7は、データ処理装置の変形例としてのデータ処理装置200を示す。データ処理装置200は、データ処理装置100と同様に、伝送装置31に適用される。
<変形例>
図7は、データ処理装置の変形例としてのデータ処理装置200を示す。データ処理装置200は、データ処理装置100と同様に、伝送装置31に適用される。
データ処理装置200は、不揮発性メモリ2と、FPGA10と、監視デバイス6と、メモリ7を有する。不揮発性メモリ2は、FPGA10をコンフィグレーションするための設定情報と期待値を有する。FPGA10はCRAM11を有する。監視デバイス6はFPGA10の動作を監視するとともに、CRAM11に設定された設定情報のエラーチェック結果を管理する。監視デバイス6は、FPGA10のエラーチェックで不一致となったCRCの計算値を、FPGA10内部のCRC記録部102の期待値または従前の不一致のCRC計算値に上書きする。CRC記録部102は、単一の比較基準値を保持し、次回のエラー判定には、CRCの計算結果は、CRC記録部102に現在保持されているCRC計算値と比較される。
比較結果が不一致でFPGA10からエラー通知が出力される都度、エラーの発生時間と、そのとき比較の基準に用いられているCRC計算値、誤動作の有無、再コンフィグレーションの有無等の情報を対応付けて、順次メモリ7に記録してもよい。メモリ7に記録された情報を、後日のエラー解析に用いることができる。エラー解析により、CRAM11のどの部分にソフトエラーが発生しやすいか、どの時間帯にソフトエラーが発生しやすいか等を認識することができる。
データ処理装置200が適用される伝送装置31は、図1の伝送装置1と同様に、スイッチインタフェース3、PHY/MACチップ4、モジュール5を有し、データ処理装置200のFPGA10で、受信パケット処理、送信パケット処理、運用・管理・保守等の各機能が実現される。
図7の伝送装置31では、受信パケット処理、送信パケット処理、運用・管理・保守の各機能において、ソフトエラーの発生状態を複数回チェックすることができる。加えて、データ処理装置200のメモリ7に記録されたエラー履歴を用いて、各機能の動作状況を解析することができる。これにより、不要な部品交換を減らし、障害調査を効率的に行うことができる。
上述の実施例で、CRC制御部103は、特許請求の範囲に記載される計算部に対応する。CRC制御部103とCRC監視部161は、特許請求の範囲に記載される制御部に対応する。不一致の場合のCRC記録部102へのCRC計算値の書き込みは、FPGAの内部で行ってもよいし、外部のモニタ回路から行ってもよい。
以上の説明に対し、以下の付記を提示する。
(付記1)
外部から転送されるコンフィグレーションデータにより回路が形成されるプログラマブルデバイスを有するデータ処理装置において、
転送された前記コンフィグレーションデータを記憶する第1のメモリと、
前記コンフィグレーションデータを用いてあらかじめ計算された第1の計算値を記録する第2のメモリと、
前記プログラマブルデバイスの動作中に、前記第1のメモリの前記コンフィグレーションデータに所定の演算を行って第2の計算値を求める計算部と、
前記第1の計算値と前記第2の計算値を比較する比較部と、
前記第1の計算値と前記第2の計算値が一致しない場合に、前記第2のメモリに前記第2の計算値を書き込む制御部と、
を有することを特徴とするデータ処理装置。
(付記2)
前記制御部は、前記第1の計算値と前記第2の計算値が一致しない場合に、前記第2のメモリの前記第1の計算値を、前記第2の計算値と置き換えることを特徴とする付記1に記載のデータ処理装置。
(付記3)
前記制御部は、前記第1の計算値と前記第2の計算値が一致しない場合に、前記第2のメモリの前記第1の計算値と異なるアドレスに前記第2の計算値を記録し、
前記比較部は、前記第2の計算値を次の比較の基準値として用いることを特徴とする付記1に記載のデータ処理装置。
(付記4)
前記計算部は、次の演算タイミングで前記コンフィグレーションデータに前記所定の演算を行って第3の計算値を求め、
前記比較部は、前記第2の計算値と前記第3の計算値を比較することを特徴とする付記1〜3のいずれかに記載のデータ処理装置。
(付記5)
前記制御部は、前記第2の計算値と前記第3の計算値が一致しない場合に、前記第2のメモリに前記第3の計算値を書き込むことを特徴とする付記4に記載のデータ処理装置。
(付記6)
前記第1の計算値と前記第2の計算値が一致しない場合に、不一致の発生を記録する第3のメモリ、
をさらに有することを特徴とする付記1〜5のいずれかに記載のデータ処理装置。
(付記7)
前記比較部は、前記第1の計算値と前記第2の計算値が一致しない場合に、エラーを外部に通知することを特徴とする付記1〜6の何れかに記載のデータ処理装置。
(付記8)
前記第1の計算値と前記第2の計算値が一致しない場合に、前記プログラマブルデバイスが外部から再コンフィグレーション要求を受信した場合は、前記第1のメモリに前記コンフィグレーションデータが再設定されることを特徴とする付記1〜7のいずれかに記載のデータ処理装置。
(付記9)
前記制御部は、前記プログラマブルデバイスの内部に配置されることを特徴とする付記1〜8のいずれかに記載のデータ処理装置。
(付記10)
前記制御部は、前記プログラマブルデバイスの外部に配置されることを特徴とする付記1〜8のいずれかに記載のデータ処理装置。
(付記11)
付記1〜10のいずれかに記載のデータ処理装置と、
情報機器との接続部と、
ネットワークへの切り替え接続部と
を有する伝送装置。
(付記12)
外部から転送されるコンフィグレーションデータにより回路が形成されるプログラマブルデバイスに対するデータ処理方法であって、
外部から転送されたコンフィグレーションデータを第1のメモリに記憶し、
前記コンフィグレーションデータを用いてあらかじめ計算された第1の計算値を第2のメモリに記憶し、
前記プログラマブルデバイスの運用中に、前記第1のメモリの前記コンフィグレーションデータに所定の演算を行って第2の計算値を計算し、
前記第1の計算値と前記第2の計算値を比較し、
前記第1の計算値と前記第2の計算値が一致しない場合に、前記第2のメモリに前記第2の計算値を書き込む、
ことを特徴とするデータ処理方法。
(付記1)
外部から転送されるコンフィグレーションデータにより回路が形成されるプログラマブルデバイスを有するデータ処理装置において、
転送された前記コンフィグレーションデータを記憶する第1のメモリと、
前記コンフィグレーションデータを用いてあらかじめ計算された第1の計算値を記録する第2のメモリと、
前記プログラマブルデバイスの動作中に、前記第1のメモリの前記コンフィグレーションデータに所定の演算を行って第2の計算値を求める計算部と、
前記第1の計算値と前記第2の計算値を比較する比較部と、
前記第1の計算値と前記第2の計算値が一致しない場合に、前記第2のメモリに前記第2の計算値を書き込む制御部と、
を有することを特徴とするデータ処理装置。
(付記2)
前記制御部は、前記第1の計算値と前記第2の計算値が一致しない場合に、前記第2のメモリの前記第1の計算値を、前記第2の計算値と置き換えることを特徴とする付記1に記載のデータ処理装置。
(付記3)
前記制御部は、前記第1の計算値と前記第2の計算値が一致しない場合に、前記第2のメモリの前記第1の計算値と異なるアドレスに前記第2の計算値を記録し、
前記比較部は、前記第2の計算値を次の比較の基準値として用いることを特徴とする付記1に記載のデータ処理装置。
(付記4)
前記計算部は、次の演算タイミングで前記コンフィグレーションデータに前記所定の演算を行って第3の計算値を求め、
前記比較部は、前記第2の計算値と前記第3の計算値を比較することを特徴とする付記1〜3のいずれかに記載のデータ処理装置。
(付記5)
前記制御部は、前記第2の計算値と前記第3の計算値が一致しない場合に、前記第2のメモリに前記第3の計算値を書き込むことを特徴とする付記4に記載のデータ処理装置。
(付記6)
前記第1の計算値と前記第2の計算値が一致しない場合に、不一致の発生を記録する第3のメモリ、
をさらに有することを特徴とする付記1〜5のいずれかに記載のデータ処理装置。
(付記7)
前記比較部は、前記第1の計算値と前記第2の計算値が一致しない場合に、エラーを外部に通知することを特徴とする付記1〜6の何れかに記載のデータ処理装置。
(付記8)
前記第1の計算値と前記第2の計算値が一致しない場合に、前記プログラマブルデバイスが外部から再コンフィグレーション要求を受信した場合は、前記第1のメモリに前記コンフィグレーションデータが再設定されることを特徴とする付記1〜7のいずれかに記載のデータ処理装置。
(付記9)
前記制御部は、前記プログラマブルデバイスの内部に配置されることを特徴とする付記1〜8のいずれかに記載のデータ処理装置。
(付記10)
前記制御部は、前記プログラマブルデバイスの外部に配置されることを特徴とする付記1〜8のいずれかに記載のデータ処理装置。
(付記11)
付記1〜10のいずれかに記載のデータ処理装置と、
情報機器との接続部と、
ネットワークへの切り替え接続部と
を有する伝送装置。
(付記12)
外部から転送されるコンフィグレーションデータにより回路が形成されるプログラマブルデバイスに対するデータ処理方法であって、
外部から転送されたコンフィグレーションデータを第1のメモリに記憶し、
前記コンフィグレーションデータを用いてあらかじめ計算された第1の計算値を第2のメモリに記憶し、
前記プログラマブルデバイスの運用中に、前記第1のメモリの前記コンフィグレーションデータに所定の演算を行って第2の計算値を計算し、
前記第1の計算値と前記第2の計算値を比較し、
前記第1の計算値と前記第2の計算値が一致しない場合に、前記第2のメモリに前記第2の計算値を書き込む、
ことを特徴とするデータ処理方法。
1、31 伝送装置
2 不揮発性メモリ
6 監視デバイス
10、10A、10B FPGA(プログラマブルデバイス)
11 CRAM(第1のメモリ)
102 CRC記録部(第2のメモリ)
103 CRC制御部
104 CRC比較部
161 CRC監視部
162 動作監視部
2 不揮発性メモリ
6 監視デバイス
10、10A、10B FPGA(プログラマブルデバイス)
11 CRAM(第1のメモリ)
102 CRC記録部(第2のメモリ)
103 CRC制御部
104 CRC比較部
161 CRC監視部
162 動作監視部
Claims (7)
- 外部から転送されるコンフィグレーションデータにより回路が形成されるプログラマブルデバイスを有するデータ処理装置において、
転送された前記コンフィグレーションデータを記憶する第1のメモリと、
前記コンフィグレーションデータを用いてあらかじめ計算された第1の計算値を記録する第2のメモリと、
前記プログラマブルデバイスの動作中に、前記第1のメモリの前記コンフィグレーションデータに所定の演算を行って第2の計算値を求める計算部と、
前記第1の計算値と前記第2の計算値を比較する比較部と、
前記第1の計算値と前記第2の計算値が一致しない場合に、前記第2のメモリに前記第2の計算値を書き込む制御部と、
を有することを特徴とするデータ処理装置。 - 前記制御部は、前記第1の計算値と前記第2の計算値が一致しない場合に、前記第2のメモリの前記第1の計算値を、前記第2の計算値と置き換えることを特徴とする請求項1に記載のデータ処理装置。
- 前記制御部は、前記第1の計算値と前記第2の計算値が一致しない場合に、前記第2のメモリの前記第1の計算値と異なるアドレスに前記第2の計算値を記録し、
前記比較部は、前記第2の計算値を次の比較の基準値として用いることを特徴とする請求項1に記載のデータ処理装置。 - 前記計算部は、次の演算タイミングで前記コンフィグレーションデータに前記所定の演算を行って第3の計算値を求め、
前記比較部は、前記第2の計算値と前記第3の計算値を比較することを特徴とする請求項1〜3のいずれか1項に記載のデータ処理装置。 - 前記制御部は、前記第2の計算値と前記第3の計算値が一致しない場合に、前記第2のメモリに前記第3の計算値を書き込むことを特徴とする、請求項4に記載のデータ処理装置。
- 請求項1〜5のいずれか1項に記載のデータ処理装置と、
情報機器との接続部と、
ネットワークへの切り替え接続部と
を有する伝送装置。 - 外部から転送されるコンフィグレーションデータにより回路が形成されるプログラマブルデバイスに対するデータ処理方法であって、
外部から転送されたコンフィグレーションデータを第1のメモリに記憶し、
前記コンフィグレーションデータを用いてあらかじめ計算された第1の計算値を第2のメモリに記憶し、
前記プログラマブルデバイスの運用中に、前記第1のメモリの前記コンフィグレーションデータに所定の演算を行って第2の計算値を計算し、
前記第1の計算値と前記第2の計算値を比較し、
前記第1の計算値と前記第2の計算値が一致しない場合に、前記第2のメモリに前記第2の計算値を書き込む、
ことを特徴とするデータ処理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016218375A JP2018077638A (ja) | 2016-11-08 | 2016-11-08 | データ処理装置、これを用いた伝送装置、及びデータ処理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016218375A JP2018077638A (ja) | 2016-11-08 | 2016-11-08 | データ処理装置、これを用いた伝送装置、及びデータ処理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2018077638A true JP2018077638A (ja) | 2018-05-17 |
Family
ID=62149113
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016218375A Pending JP2018077638A (ja) | 2016-11-08 | 2016-11-08 | データ処理装置、これを用いた伝送装置、及びデータ処理方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2018077638A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2021047526A (ja) * | 2019-09-17 | 2021-03-25 | オムロン株式会社 | 制御装置および制御方法 |
-
2016
- 2016-11-08 JP JP2016218375A patent/JP2018077638A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2021047526A (ja) * | 2019-09-17 | 2021-03-25 | オムロン株式会社 | 制御装置および制御方法 |
JP7268554B2 (ja) | 2019-09-17 | 2023-05-08 | オムロン株式会社 | 制御装置および制御方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11403170B2 (en) | Method and device for monitoring data error status in a memory | |
EP2075706B1 (en) | Memory device and refresh adjusting method | |
CN101477480B (zh) | 内存控制方法、装置及内存读写系统 | |
US7848232B2 (en) | Time division multiplexed communication bus and related methods | |
KR102378466B1 (ko) | 메모리 장치 및 모듈 | |
CN110580235B (zh) | 一种sas扩展器通信方法及装置 | |
US10410730B1 (en) | Selectively synchronizing flash memory block refreshes based in part upon memory block temperature | |
US20110087826A1 (en) | Flash memory accessing apparatus and accessing method thereof | |
JP2008287351A (ja) | メモリシステム、メモリコントローラ、制御方法及び制御プログラム | |
US11037648B2 (en) | Memory system for improving memory reliability and memory management method for the same | |
JP2009181425A (ja) | メモリモジュール | |
CN115408321A (zh) | 接口电路及其控制方法、信号传输系统和电子设备 | |
TWI810652B (zh) | 可在記憶體裝置上執行的方法、記憶體裝置及非暫態性電腦可讀媒體 | |
US8176388B1 (en) | System and method for soft error scrubbing | |
JP2014052781A (ja) | Fpga監視制御回路 | |
JP2018077638A (ja) | データ処理装置、これを用いた伝送装置、及びデータ処理方法 | |
JPWO2015068285A1 (ja) | プログラマブルデバイス及びこれを用いた電子システム装置 | |
JP2011145208A (ja) | 基板 | |
US10581555B2 (en) | Information processing device and burst error reproducing method | |
US20220114052A1 (en) | Field programmable gate array (fpga) for improving reliability of key configuration bitstream by reusing buffer memory | |
WO2023024248A1 (zh) | 一种总线异常处置方法、装置、电子设备及可读存储介质 | |
US9658920B1 (en) | Method for reconfiguring an erroneous memory frame in an integrated circuit | |
US10461804B2 (en) | Elimination of crosstalk effects in non-volatile storage | |
TWI738627B (zh) | 具有錯誤偵測功能的智能網卡系統及錯誤偵測方法 | |
US12001288B2 (en) | Devices and methods for safe mode of operation in event of memory channel misbehavior |