JP7157773B2 - プログラマブルデバイス及びこれを用いた制御コントローラ - Google Patents

プログラマブルデバイス及びこれを用いた制御コントローラ Download PDF

Info

Publication number
JP7157773B2
JP7157773B2 JP2020010493A JP2020010493A JP7157773B2 JP 7157773 B2 JP7157773 B2 JP 7157773B2 JP 2020010493 A JP2020010493 A JP 2020010493A JP 2020010493 A JP2020010493 A JP 2020010493A JP 7157773 B2 JP7157773 B2 JP 7157773B2
Authority
JP
Japan
Prior art keywords
cram
error
unit
user logic
inspection
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
JP2020010493A
Other languages
English (en)
Other versions
JP2021117720A (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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2020010493A priority Critical patent/JP7157773B2/ja
Priority to US17/795,025 priority patent/US11822425B2/en
Priority to PCT/JP2020/031159 priority patent/WO2021152887A1/ja
Priority to EP20916427.6A priority patent/EP4099105A4/en
Publication of JP2021117720A publication Critical patent/JP2021117720A/ja
Application granted granted Critical
Publication of JP7157773B2 publication Critical patent/JP7157773B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • 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
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0772Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers
    • 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
    • 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/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • 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/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • 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/1776Structural details of configuration resources for memories
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Mathematical Physics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Detection And Correction Of Errors (AREA)
  • Programmable Controllers (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)

Description

本発明は、プログラマブルデバイス及びこれを用いた制御コントローラの動作継続性を向上させる技術に関する。
プラント制御などのミッションクリティカルなアプリケーション向けの制御コントローラでは、安全規格へ準拠することを求められている。また、コストやセキュリティ、EOL(End of Life)対策などの観点から、制御コントローラへのFPGA(Field Programmable Gate Array)の活用が行われている。
ユーザによって内部論理回路を定義・変更できるプログラマブルデバイスであるFPGAは、コンフィギュレーションメモリ(以下、CRAMと記す)を構成するデバイスにより、SRAM(Static Random Access Memory)型とFlashメモリ型があるが、それぞれには、性能とノイズ耐性のトレードオフがあり、要求性能により使い分けが行われている。ノイズ耐性が比較的低いSRAM型FPGAを活用する場合、CRAMのデータを順番に読み出し冗長コードでエラー検出訂正を行う、CRAM巡回検査が従来行われている。
背景技術としては、国際公開第2015/068285号(特許文献1)がある。特許文献1には、「コンフィギュレーションメモリ9を有するプログラマブルデバイス100において、コンフィギュレーションメモリの診断手段として、コンフィギュレーションメモリのデータをリード、ライトするリードライト部2と、コンフィギュレーションメモリのデータに対してエラーチェックを行う機能ブロック部7と、リードライト部と機能ブロック部に対し、コンフィギュレーションメモリ内の所定の領域のデータを所定の順序でエラーチェックを行うよう制御するシーケンサ部5と、を備える構成とする。これにより、コンフィギュレーションメモリ9のソフトエラー発生時の検出時間および訂正時間を短縮させる。」と記載されている。
国際公開第2015/068285号
SRAM型FPGAは高性能かつ高機能であるが、宇宙線などの外部からのノイズ耐性が低くCRAM格納データの一時的な反転(ソフトエラー)が発生することが知られている。そのため、制御装置などにSRAM型FPGAを適用する場合、安全系などに用いられる多重化などのユーザ回路に対するエラーチェック機構に加え、CRAMの常時検査機構を搭載し、CRAMの正常性を常に確認する必要がある。しかし、エラーが発生してからエラー訂正までの時間を0にすることは原理的に不可能であるため、その間はCRAMにエラーが残存する。そのため、本機構を制御装置に適用した場合、制御装置が誤った値を出力するという課題がある。また、ユーザ回路にエラーチェック機構を搭載してあれば、CRAMで発生したソフトエラーを、CRAM巡回検査で検出する前にエラーチェック機構でエラーを検出して機能異常と判定し、装置停止となり、可用性(動作継続性)が低下するという課題がある。
また、特許文献1では、FPGA内のCRAMのうち、所定の領域を所定の順番でエラーチェックする機構について記載されている。この方法では、エラーチェック領域と順番を適切に設定することで、エラー検出までの時間を短縮できるが、原理的にエラー検出時間を0にすることは不可能であるため、前述の課題がある。
本発明の目的は、多重化などのユーザ回路に対するエラーチェック機構が検出したエラーにより、SRAM型FPGA及びこれを用いた制御コントローラがシャットダウンすることを抑制して、SRAM型FPGA及びこれを用いた制御コントローラの可用性(動作継続性)を向上させることである。
本発明のプログラマブルデバイスの好ましい例では、ユーザ論理を定義するCRAMデータをロードするCRAMを有するプログラマブルデバイスにおいて、多重化されたユーザ論理ブロックよりエラー検出して通知するエラーチェック機構と、最終ユーザ論理ブロックの出力端に接続して、制御周期ごとにユーザ論理ブロックの出力値を取込んで出力する前値保持部と、前記エラーチェック機構より受けたエラー発生通知によりスキャン割込みがかかり、CRAM上のスキャン領域をリードして、エラー検出、およびエラー訂正を実施して、エラー訂正の成否を通知するCRAM検査部と、前記エラー発生通知を受けた時に、前記前値保持部にユーザ論理ブロックの前出力を保持する指示を送信し、前記CRAM検査部よりエラー訂正の成功の通知を受けた時に、前記前値保持部に前値保持を解除する指示を送信すると共に、エラーに該当するユーザ論理ブロックに論理リセット指示を送信するエラー対処部とを備えて構成する。
また、本発明の他の特徴として、前記プログラマブルデバイスにおいて、前記CRAM検査部は、CRAMを巡回検査、またはスキャン割込みの場合はCRAM上のスキャン領域の検査を実行して、リードアドレスごとに読み出したCRAMデータに対して、ECCチェック、およびCRCチェックを実施して、CRCエラーが発生する場合は、正常なCRAMデータでCRAMを上書きしてCRAM上のエラー訂正の成否を判定する。
また、本発明の他の特徴として、前記プログラマブルデバイスにおいて、前記前値保持部は、前記エラー対処部から通知されるユーザ論理ブロックの前出力を保持する指示を受けた時点から、前値保持を解除する指示を受けた時点までの間は、各制御周期の値取得タイミングごとに最終ユーザ論理ブロックの出力値を取込んで出力する動作を停止して、CRAM上のエラー訂正の期間に、最終ユーザ論理ブロックからの出力値がプログラマブルデバイスの出力値となることを防ぐ。
本発明によれば、ソフトエラーにより機能異常が発生した場合であっても、プログラマブルデバイスが誤った値を出力することを防止し、かつ、停止することなく動作継続することを可能とし、可用性向上が可能となる。
本発明の第1の実施形態に係るFPGA及びこれを用いた制御コントローラの構成図である。 CRAMデータ正当性チェック動作を示すフローチャートである。 エラー対処部の動作を示すフローチャートである。 前値保持部7の機能について説明する図である。 本発明の第2の実施形態に係るFPGA及びこれを用いた制御コントローラの構成図である。 第2の実施形態のCRAMデータ正当性チェック動作を示すフローチャートである。 検査回数テーブルとCRAMアドレス範囲情報テーブルの構成例を示す図である。
以下、実施例を、図面を用いて説明する。
図1は、実施例1のFPGA1を搭載した制御コントローラ11の構成例である。FPGA1は、論理回路情報を定義したCRAMデータを格納した例えばフラッシュROMからなるCAMデータ格納部12を外部に接続する。FPGA1に電源が投入されると、CAMデータ格納部12に格納されたCRAMデータがCRAMアクセスインタフェース回路5を介してCRAM2にダウンロードされ、FPGA1はユーザ定義の論理回路が決定して動作を開始する。
FPGA1は、論理回路情報を記憶する領域を表すCRAM2と、ユーザロジックの制御のための演算を行うユーザ論理部3と、ユーザロジックのエラー診断部4と、ユーザロジックのシャットダウン制御部10と、CRAMアクセスインタフェース回路5とで構成される。
ユーザ論理部3は、制御コントローラ機能を実現するための2重化したユーザ論理ブロック(6a~6c)と、エラー診断部4からの指示により、ユーザ論理ブロックのうち最後段のユーザ論理ブロック(6c)の出力を保持する前値保持部7とから構成される。ユーザ論理部3は、入力データ20が入力されると、ユーザ論理ブロック(6a~6c)で演算を実行し、演算実行結果を前値保持部7で保持し、出力データ21を出力する。各ユーザ論理ブロックは2重化されており、両ユーザ論理ブロックの演算結果は比較器で比較されて、もし不一致の場合は、エラー診断部4の前値保持指示部へエラー発生通知33する。
エラー診断部4は、CRAM巡回検査を行うCRAM検査部8と、FPGA内で発生したエラーがソフトエラー起因であるか、否かの判定に応じて、エラー対処の指示を発するエラー対処部9とで構成される。
CRAM検査部8は、ユーザ論理部3の構成情報(論理回路情報)を格納するCRAM2に対して、データリードして、データ正当性をチェックする。CRAM検査部8は、エラー対処部9から、スキャン領域情報を含むスキャン割込み信号31(例えば、ユーザ論理ブロック2(6b)の演算結果が不一致となった場合には、その旨の通知(エラー発生通知)33がエラー対処部9へ届き、エラー対処部9の割込みスキャン指示部が、ユーザ論理ブロック2の構成を定義しているCRAM2に格納されたCRAMデータのアドレスをスキャン領域情報として、スキャン割込み信号31を発する。)が入力されると、常時実行しているCRAM巡回検査のデータ正当性チェックを中断し、入力されたスキャン領域情報で指定された領域のCRAMデータの正当性をチェックする。チェックが完了したら、エラー訂正可否結果を含む正当性チェック結果32をエラー対処部9に通知する。
CRAM検査部8で実行する、CRAMデータの正当性チェックの手法の例として、ECC(Error Correction Code)とCRC(Cycric Redundancy Code)を利用した方法を示す。ECCは、エラー検出能力は高くはないがエラー訂正が出来て、CRCは、エラー検出だけが出来るがエラー検出能力は高い両方法を組み合わせる。
CRAM検査部8のCRAMデータの正当性チェックの処理のフローチャートを図2に示す。
初めに、データ正当性をチェックするCRAM2に格納されたCRAMデータのリードアドレスを初期化する(S101)。
リードアドレスに従い、CRAMデータを読み出して、ECCを用いてエラーチェックを行い(S102)、エラーが発生しているかを確認する(S103)。
S103でエラー発生時には、エラー訂正を行う(S104)。本手順でのエラー訂正は、用いるECCにより、1bit訂正可能や2bit訂正可能など、性能に差がある。例えば、1bit訂正可能なECCを用いて2bitエラーが発生しているデータに対して訂正を行った場合、正しく訂正されないか、エラーなしと誤って認識することがある。
S104でのエラー訂正が正しく行われたかを確認するために、CRAMデータを再リードしてCRCチェックを行い(S105)、CRCエラーの有無を確認する(S106)。
S106でCRCエラーが発生していない場合は、前記手順S104でエラー訂正を行ったか判定し(S107)、訂正を行っていた場合はエラー訂正可通知をエラー対処部9に送信した(S108)後、リードアドレスを更新し(S109)、次のCRAMデータのチェック(S102)に移行する。S109のリードアドレスの更新処理は、CRAM巡回検査時であれば、次のCRAMのリードアドレスに更新する。また、スキャン割込み信号を受けて、スキャン領域情報を検査中であれば、スキャン領域情報内の次のCRAMのリードアドレスに更新する。もし、スキャン領域情報内の全てのリードアドレスの検査が終了した場合であれば、スキャン割込み信号を受信した時点で中断したCRAM巡回検査のリードアドレスに更新する。
手順S106でCRCエラーが発生していることが分かった場合、CRAMデータ格納部12から、リードアドレスに該当するCRAMデータを読み出し、CRAMデータを上書き訂正する(S110)。
手順S110でエラーが訂正できたかを確認するために、CRAM2からCRAMデータを再リードして、CRCチェックを行い(S111)、CRCエラーの有無を確認する(S112)。
S112でCRCエラーが発生していない場合、CRAM2のCRAMデータのソフトエラーは訂正済と判定して、エラー訂正済通知32をエラー対処部9に送信(S108)して、S109のリードアドレスを更新する処理へ移行する。
S112でCRCエラーが発生していた場合、エラーの訂正が出来なかった、またはソフトエラー以外のエラー(ハードエラー等)が発生したと判定して、エラー訂正不可通知32をエラー対処部9に通知し(S113)、動作を終了する。
なお、エラー対処部9からスキャン割込み信号31が入力された場合、リードアドレス初期化手順S101に戻り、スキャン領域情報で指定された領域のCRAMデータアドレスをリードアドレスに設定し、手順S102以降の動作を行う。手順S109のリードアドレスの更新では、指定されたスキャン領域内のアドレスを設定する。
以上のCRAMデータのECC処理、及びCRC処理を実行するために、ECC,CRC用冗長ビットを、例えばFPGA1内のSRAM(図示せず)に保持しておいて、CAMデータ格納部12からCRAMデータがダウンロードされる際に両方の冗長ビットが付加されて、CRAM2に記憶される。
または、CAMデータ格納部12のCRAMデータに、予めECC,CRC用冗長ビットを付加しておくことも考えられる。
エラー対処部9の動作のフローチャートを図3に示す。
ユーザ論理ブロック(6a~6c)からエラー発生通知33があるかを確認し(S201)、エラー発生通知があった場合、前値保持部7に前値保持開始指示信号34を送信し(S202)、CRAM検査部8にスキャン割込み信号を送信する(S203)。その際、エラー発生通知を送信したユーザ論理ブロックの構成情報(論理回路情報)が格納されたCRAM2の領域をスキャン領域情報として同時に送信する。
CRAM検査部8からエラー訂正済通知32または、エラー訂正不可通知32を受信するまで待機する(S204)。
S204でエラー訂正不可通知32を受信した場合は、シャットダウン指示36をシャットダウン制御部10に送信し(S208)、終了する。シャットダウン制御部10は、FPGA1をシャットダウンする。
S204でエラー訂正済通知32を受信した場合は、リセットするユーザ論理ブロックを決定して(S205)、論理リセット指示35を送信する(S206)。リセットするユーザ論理ブロックの決定方法としては、例えば、エラーが発生したユーザ論理ブロックと、そのブロックに続くユーザ論理ブロックをリセット対象とする方法がある。例えば、制御回路は基本的に全て組合わせ回路で構成されていると仮定すると、ユーザ論理ブロック2(6b)でエラーが発生した場合、ユーザ論理ブロック2(6b)とユーザ論理ブロック3(6c)をリセット対象として論理リセット指示35を送信し、それらのユーザ論理ブロックの中に含まれている全てのFF(フリップフロップ)の値を初期値に戻す。
論理リセット指示後、一定時間経過後に前値保持部7に前値保持解除信号34を送信し(S207)、続いてS201へ移行して動作継続する。
図1の前値保持部7の機能について、図4において説明する。ユーザ論理ブロック3(6c)から出てくるデータは、D1,D2,D3と変わって出力される。前値保持部7は、通常は制御周期信号の値取得タイミング41の時に、ユーザ論理ブロック3(6c)の出力の値を受け取って、自身の出力とすることを制御周期ごとに繰り返す。
ユーザ論理ブロック(6a~6c)でエラー発生が起こり、エラー発生通知33に従い、エラー対処部9が前値保持開始指示信号34を送信すると、前値保持部7の前値保持の状態がオン42となり、その後、CRAM2に記憶されるCRAMデータのエラー訂正が成功後、エラー対処部9が前値保持解除信号34を送信して、前値保持部7の前値保持の状態がオフ43となるまで、前値保持部7は出力値を維持する。すなわち、前値保持の状態がオン42からオフ43の間に、制御周期信号が値取得タイミング41となっても、ユーザ論理ブロック3の出力値を受け取ることはせずに、前値D1の出力を維持する。
これは、CRAM2に記憶されるCRAMデータの該当領域のエラー訂正が終了して、ユーザ論理ブロック3(6c)の出力値が正常に戻るまでに、1制御周期の時間範囲に収まるであろうと想定されることによる。すなわち、ユーザ論理ブロック3(6c)の出力値D2は、CRAM2のCRAMデータのソフトエラーに起因して信用出来ない値と予想されるので、前値保持部7の出力とはせずに前値D1にて代用する方法である。
前値保持部7にエラーが発生すると、出力の前値保持が不可能となり、シャットダウンなどの対策が必要となり、制御コントローラの可用性が低下する可能性がある。しかし、前値保持部7の論理規模は、演算などの主機能(6a~6c)と比較して小さいため、主機能にソフトエラーが発生したことによるシャットダウンが可用性低下の支配的要因である。従って、本実施例の構成で可用性を向上させることができる。さらに可用性を向上させるためには、前値保持部7に高ノイズ耐性の部品、例えば、ディスクリート部品や、Flash型FPGAなどを用いる、という構成がある。すなわち、前値保持部7を図1のFPGA1内ではなくて、外に出して制御コントローラ11上に配置することも考えられる。
エラー診断部4にエラーが発生した場合、FPGA1の機能は維持できるが、ユーザ論理ブロック(6a~6c)にエラーが発生しても検出訂正することができなくなる。エラー診断部4のエラー訂正信頼性を向上させるためにエラー診断部4を多重化する方法が考えられる。多重化した各エラー診断部の出力の不一致を監視するエラー診断部のエラー監視部を設け、前記エラー監視部は、出力の不一致発生時にシャットダウン制御部10へシャットダウン制御信号を出力するようにすればよい。
また、エラー診断部4の正常性を診断するために、例えば、CRAM検査部8とエラー対処部9の動作の各ステップごとに、診断データを出力し、外部からチェックする方法などが考えられる。
本実施例のFPGA1によれば、多重化などのユーザ回路に対するエラーチェック機構が検出したエラーにより、制御コントローラがシャットダウンすることを抑制でき、制御コントローラの可用性を向上させることができる。
なお、本実施例のFPGA1は、制御コントローラとしての用途以外に使用しても、同様の効果が期待できる。
図5は第二の実施例である。図1と同じ部分には同じ符号を付しており、構成、動作が同じであるので、説明を省略する。本実施例は、ユーザ論理ブロックに対して、優先度をつけてCRAM検査を実行する形態である。本実施例によるFPGA14は、図1のFPGA1の構成要素であるエラー診断部4に代えて、CRAM検査の検査順序を決定する検査順序決定部17と、検査順序決定部17で決定する検査順序に従い、CRAM検査を常時実行するCRAM検査部16を含むエラー診断部15を構成要素として持つ。
図6に、CRAM検査部16の動作フローを示す。図2の動作フローと同じ部分には同じステップ番号を付しており、動作が同じであるので、説明を省略する。
CRAM検査部16は、CRAM検査動作(S102~S113)を始める前に検査順序決定部17から検査する領域情報を取得する(S114)。領域情報として、少なくとも、領域内に含まれるCRAMアドレス範囲が1つ以上含まれる。
CRAM検査部16は、取得した領域情報のCRAMアドレス範囲内のアドレスの1つをリードアドレスとして設定し(S115)、CRAM検査動作(S102~S113)を実行する。
CRAM検査動作を、エラー無し、または、エラー訂正済通知を送信して完了すると、S114で検査順序決定部17から取得した領域内の全てのCRAMアドレスのCRAMデータの検査が完了したか判定する(S116)。判定方法としては、例えば、S114で取得した領域情報に含まれるCRAMアドレス範囲に対して、候補となる全てのアドレス値をリスト化し、ステップS115でリードアドレスとして設定したら、対象アドレスをリストから削除していき、ステップS116でリストが空であれば領域内のすべてのCRAM検査が完了したと判定する、という方法がある。
ステップS116で領域内の全てのCRAMデータの検査が完了していなければ、S115へ移行して、再度リードアドレスを決定して(S115)、CRAM検査動作を繰り返す。
ステップS116で領域内の全てのCRAMデータの検査が完了していれば、S114へ移行して、検査順序決定部17から次の検査領域情報を取得して(S114)、リードアドレスを設定し(S115)、CRAM検査動作を繰り返す。
検査順序決定部17は、CRAM検査部16から領域情報リクエストを受けると、内部に持つ、検査回数テーブルと、CRAMアドレス範囲情報テーブルを用いて領域情報を生成し、CRAM検査部16へ送信する。図7は、検査回数テーブル51と、CRAMアドレス範囲情報テーブル52の構成例である。
検査回数テーブル51は、検査対象ブロックの名称(53)とそのブロックの検査回数(54)との対応を表すテーブルである。例えば図7の例では、ユーザ論理ブロック1を20回検査、ユーザ論理ブロック3を1回検査、ユーザ論理ブロック2を1回検査、という順番で検査することを示している。
CRAMアドレス範囲情報テーブル52は、ブロックの名称(55)と、そのブロックを形成するCRAMの1つ以上のアドレス範囲(56)との対応を表すテーブルである。
検査順序決定部17は、CRAM検査部16から領域情報リクエストを受けると、検査回数テーブル51を使って決定した検査対象ブロックに該当する、CRAMアドレス範囲情報テーブル52を使ってCRAMアドレス範囲56に変換し、CRAM検査部16へ送信する。
本機能を設けることで、制御コントローラ18に搭載されたFPGA14内のユーザ論理ブロックに対するCRAM検査頻度を自由に設定することができる。検査頻度の設定の考え方としては、例えば、FPGAリソース不足などの理由により、2重化などのエラーチェック機構を設けることができずエラー耐性が低いユーザ論理ブロック(図5では6d)は高頻度に、2重化などのエラーチェック機構を設けているユーザ論理ブロック(図5では6b、6c)は低頻度にCRAM検査を行うようにするなどの方法がある。
その他の例としては、ユーザ論理ブロックを、シーケンサなどの制御機能と、演算などのデータ処理機能とに分割し、制御機能を実現するユーザ論理ブロックのCRAMを高頻度に、データ処理機能を実現するユーザ論理ブロックのCRAMを低頻度に検査するなどの方法がある。
本実施例によれば、ユーザ論理ブロック毎にCRAM検査頻度を自由に設定可能となり、エラーチェック機構を持たないユーザ論理ブロックが含まれる制御コントローラ18であっても可用性を向上させることができる。
なお、本実施例のFPGA14は、制御コントローラとしての用途以外に使用しても、同様の効果が期待できる。
1…FPGA、2…論理回路情報を記憶する領域を表すCRAM、3…ユーザ論理部、4…エラー診断部、5…CRAMアクセスインタフェース回路、6a、6b、6c、6d…ユーザ論理ブロック、7…前値保持部、8…CRAM検査部、9…エラー対処部、10…シャットダウン制御部、11…制御コントローラ、12…CAMデータ格納部、14…実施例2のFPGA、15…実施例2のエラー診断部、16…実施例2のCRAM検査部、17…検査順序決定部、18…実施例2の制御コントローラ、20…入力データ、21…出力データ、31…スキャン割込み信号、32…エラー訂正可否結果を含む正当性チェック結果、33…エラー発生通知、34…前値保持開始指示信号・前値保持解除信号、35…論理リセット指示、36…シャットダウン指示、41…制御周期信号の値取得タイミング、42…前値保持の状態がオン、43…前値保持の状態がオフ、51…検査回数テーブル、52…CRAMアドレス範囲情報テーブル、53…検査対象ブロックの名称、54…検査回数、55…ブロックの名称、56…CRAMアドレス範囲。

Claims (8)

  1. ユーザ論理を定義するCRAMデータをロードするCRAMを有するプログラマブルデバイスにおいて、
    多重化されたユーザ論理ブロックよりエラー検出して通知するエラーチェック機構と、
    最終ユーザ論理ブロックの出力端に接続して、制御周期ごとにユーザ論理ブロックの出力値を取込んで出力する前値保持部と、
    前記エラーチェック機構より受けたエラー発生通知によりスキャン割込みがかかり、CRAM上のスキャン領域をリードして、エラー検出、およびエラー訂正を実施して、エラー訂正の成否を通知するCRAM検査部と、
    前記エラー発生通知を受けた時に、前記前値保持部にユーザ論理ブロックの前出力を保持する指示を送信し、前記CRAM検査部よりエラー訂正の成功の通知を受けた時に、前記前値保持部に前値保持を解除する指示を送信すると共に、エラーに該当するユーザ論理ブロックに論理リセット指示を送信するエラー対処部と、
    を備えることを特徴とするプログラマブルデバイス。
  2. 前記エラー対処部は、前記エラーチェック機構からエラー発生通知を受けた時に、前記前値保持部にユーザ論理ブロックの前出力を保持する指示を送信すると共に、エラー発生箇所のユーザ論理ブロックの構成情報を格納するCRAMの領域をスキャン領域情報として、スキャン割込み信号を前記CRAM検査部へ送信することを特徴とする請求項1に記載のプログラマブルデバイス。
  3. 前記プログラマブルデバイスをシャットダウンさせるシャットダウン制御部を更に備え、
    前記エラー対処部は、前記CRAM検査部からエラー訂正不可通知を受けた場合には、シャットダウン指示を前記シャットダウン制御部へ送信することを特徴とする請求項1に記載のプログラマブルデバイス。
  4. 前記CRAM検査部は、CRAMを巡回検査、またはスキャン割込みの場合はCRAM上のスキャン領域の検査を実行して、リードアドレスごとに読み出したCRAMデータに対して、ECCチェック、およびCRCチェックを実施して、CRCエラーが発生する場合は、正常なCRAMデータでCRAMを上書きしてCRAM上のエラー訂正の成否を判定することを特徴とする請求項1に記載のプログラマブルデバイス。
  5. 前記前値保持部は、前記エラー対処部から通知されるユーザ論理ブロックの前出力を保持する指示を受けた時点から、前値保持を解除する指示を受けた時点までの間は、各制御周期の値取得タイミングごとに最終ユーザ論理ブロックの出力値を取込んで出力する動作を停止して、CRAM上のエラー訂正の期間に、最終ユーザ論理ブロックからの出力値がプログラマブルデバイスの出力値となることを防ぐことを特徴とする請求項1に記載のプログラマブルデバイス。
  6. 前記CRAM検査部のCRAM検査順序と検査回数を定める検査順序決定部を更に備え、
    前記検査順序決定部は、少なくとも
    ユーザ論理ブロックごとの検査回数を定めた検査回数テーブルと、
    ユーザ論理ブロックごとの構成情報(CRAMデータ)が格納されているCRAMのアドレス範囲を定めたCRAMアドレス情報テーブル
    を有しており、
    前記CRAM検査部は、次に検査すべきCRAMのアドレス範囲を前記検査順序決定部から取得して、取得した範囲内の全てのCRAMアドレスのCRAMデータをリードして、エラー検出、およびエラー訂正を実施して、エラー訂正の成否を通知する処理を繰り返すことを特徴とする請求項1に記載のプログラマブルデバイス。
  7. 前記CRAM検査部、および前記エラー対処部は多重化構成され、それぞれの多重化回路同士の出力の不一致を監視する診断部エラー監視部を更に備え、
    前記診断部エラー監視部は、出力不一致発生時にシャットダウン制御部にシャットダウン制御信号を出力することを特徴とする請求項1に記載のプログラマブルデバイス。
  8. 請求項1、または請求項5に記載のプログラマブルデバイスにおいて、
    前記前値保持部を、Flash型FPGAで構成して、プログラマブルデバイスの外に配置したことを特徴とする制御コントローラ。
JP2020010493A 2020-01-27 2020-01-27 プログラマブルデバイス及びこれを用いた制御コントローラ Active JP7157773B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2020010493A JP7157773B2 (ja) 2020-01-27 2020-01-27 プログラマブルデバイス及びこれを用いた制御コントローラ
US17/795,025 US11822425B2 (en) 2020-01-27 2020-08-18 Programmable device, and controller using the same
PCT/JP2020/031159 WO2021152887A1 (ja) 2020-01-27 2020-08-18 プログラマブルデバイス及びこれを用いた制御コントローラ
EP20916427.6A EP4099105A4 (en) 2020-01-27 2020-08-18 PROGRAMMABLE DEVICE AND CONTROLLER THEREFOR

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020010493A JP7157773B2 (ja) 2020-01-27 2020-01-27 プログラマブルデバイス及びこれを用いた制御コントローラ

Publications (2)

Publication Number Publication Date
JP2021117720A JP2021117720A (ja) 2021-08-10
JP7157773B2 true JP7157773B2 (ja) 2022-10-20

Family

ID=77079834

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020010493A Active JP7157773B2 (ja) 2020-01-27 2020-01-27 プログラマブルデバイス及びこれを用いた制御コントローラ

Country Status (4)

Country Link
US (1) US11822425B2 (ja)
EP (1) EP4099105A4 (ja)
JP (1) JP7157773B2 (ja)
WO (1) WO2021152887A1 (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015115727A (ja) 2013-12-11 2015-06-22 三菱電機株式会社 プログラマブルロジックデバイス
WO2016110968A1 (ja) 2015-01-07 2016-07-14 株式会社日立製作所 プログラマブルデバイス及びそれを用いた制御装置、及びその障害対策方法
WO2016207933A1 (ja) 2015-06-22 2016-12-29 株式会社日立製作所 フィールドプログラマブルゲートアレイ
JP2018181206A (ja) 2017-04-20 2018-11-15 日本電気株式会社 データ処理装置、データ処理方法およびプログラム

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7111224B1 (en) * 2001-02-28 2006-09-19 Xilinx, Inc. FPGA configuration memory with built-in error correction mechanism
US20120011423A1 (en) * 2010-07-10 2012-01-12 Mehdi Entezari Silent error detection in sram-based fpga devices
WO2012047735A2 (en) * 2010-09-29 2012-04-12 The Regents Of The University Of California In-place resynthesis and remapping techniques for soft error mitigation in fpga
US8436646B1 (en) * 2011-07-01 2013-05-07 Altera Corporation Reconfigurable logic block with user RAM
US9735784B2 (en) * 2013-09-30 2017-08-15 Hitachi, Ltd. Programmable logic device and logic integration tool
JP6408482B2 (ja) 2013-11-08 2018-10-17 株式会社日立製作所 プログラマブルデバイス及びこれを用いた電子システム装置
JP6488541B2 (ja) 2013-12-18 2019-03-27 富士通株式会社 論理回路及び論理回路の制御方法
JP2016167669A (ja) * 2015-03-09 2016-09-15 富士通株式会社 プログラマブル論理回路装置及びそのエラー検出方法
US9934841B1 (en) * 2016-10-21 2018-04-03 Altera Corporation Systems and methods for refreshing data in memory circuits
US10248484B2 (en) * 2017-02-21 2019-04-02 Intel Corporation Prioritized error-detection and scheduling

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015115727A (ja) 2013-12-11 2015-06-22 三菱電機株式会社 プログラマブルロジックデバイス
WO2016110968A1 (ja) 2015-01-07 2016-07-14 株式会社日立製作所 プログラマブルデバイス及びそれを用いた制御装置、及びその障害対策方法
WO2016207933A1 (ja) 2015-06-22 2016-12-29 株式会社日立製作所 フィールドプログラマブルゲートアレイ
JP2018181206A (ja) 2017-04-20 2018-11-15 日本電気株式会社 データ処理装置、データ処理方法およびプログラム

Also Published As

Publication number Publication date
JP2021117720A (ja) 2021-08-10
US11822425B2 (en) 2023-11-21
EP4099105A1 (en) 2022-12-07
WO2021152887A1 (ja) 2021-08-05
US20230082529A1 (en) 2023-03-16
EP4099105A4 (en) 2024-02-28

Similar Documents

Publication Publication Date Title
JP4643977B2 (ja) プログラマブル・ロジック・デバイス、情報処理装置、プログラマブル・ロジック・デバイスの制御方法
JP6290303B2 (ja) 誤り訂正能力をテストするための回路および方法
KR20130031888A (ko) 데이터 메모리의 모니터링 방법
CN107463516B (zh) 控制装置
JP5608409B2 (ja) 自己診断システム及び検査回路判定方法
JP2018156712A (ja) 半導体装置及び半導体装置の診断方法
JP2021531568A (ja) コモンモード障害信号に応じたメモリスキャン動作
JP2018181206A (ja) データ処理装置、データ処理方法およびプログラム
JP7157773B2 (ja) プログラマブルデバイス及びこれを用いた制御コントローラ
JP5176405B2 (ja) コンピュータの異常検出・復旧方式
WO2015068285A1 (ja) プログラマブルデバイス及びこれを用いた電子システム装置
JP2013175118A (ja) 制御装置、及びそのメモリ故障検出方法、その自己診断方法
US8074120B2 (en) Method for recognizing a power failure in a data memory and recovering the data memory
JP2008176828A (ja) エラー検出訂正回路のテスト回路およびテスト方法
WO2021038923A1 (ja) 制御装置、ユーザプログラムの実行制御方法、およびシステムプログラム
CN106716387B (zh) 存储器诊断电路
US20060090105A1 (en) Built-in self test for read-only memory including a diagnostic mode
EP3882774A1 (en) Data processing device and data processing method
JP7142731B2 (ja) プログラマブルデバイス
US11367499B2 (en) Mitigating single-event upsets using containerization
US11831337B2 (en) Semiconductor device and error detection methods
US7168006B2 (en) Method and system for saving the state of integrated circuits upon failure
JP4357373B2 (ja) 高信頼性制御装置
US20240134743A1 (en) Electronic device, electronic system, method for operating an electronic device, and method for operating an electronic system
US20240160818A1 (en) Method for fault detection in safety mechanisms

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220420

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220726

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220915

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: 20221004

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20221007

R150 Certificate of patent or registration of utility model

Ref document number: 7157773

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150