JP2020064382A - 格納装置及び格納方法 - Google Patents

格納装置及び格納方法 Download PDF

Info

Publication number
JP2020064382A
JP2020064382A JP2018194763A JP2018194763A JP2020064382A JP 2020064382 A JP2020064382 A JP 2020064382A JP 2018194763 A JP2018194763 A JP 2018194763A JP 2018194763 A JP2018194763 A JP 2018194763A JP 2020064382 A JP2020064382 A JP 2020064382A
Authority
JP
Japan
Prior art keywords
data
unit
input
processing unit
registers
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.)
Granted
Application number
JP2018194763A
Other languages
English (en)
Other versions
JP6889138B2 (ja
Inventor
光治 西谷
Koji Nishiya
光治 西谷
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.)
NEC Platforms Ltd
Original Assignee
NEC Platforms 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 NEC Platforms Ltd filed Critical NEC Platforms Ltd
Priority to JP2018194763A priority Critical patent/JP6889138B2/ja
Publication of JP2020064382A publication Critical patent/JP2020064382A/ja
Application granted granted Critical
Publication of JP6889138B2 publication Critical patent/JP6889138B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Logic Circuits (AREA)
  • Hardware Redundancy (AREA)

Abstract

【課題】正常時に冗長性を有する複数の演算部に格納されたデータの再同期化に要する時間を短縮し得る格納装置等の提供。【解決手段】格納装置は、複数のシフトレジスタの各々に含まれる所定のレジスタから連続する所定の数のレジスタに同時に保持されるデータ列の種類の単複を検出する検出部と、前記種類が二以上であると検出された場合に、前記同時に保持するシフトレジスタが最多の前記種類の前記データ列と等しいものを、前記複数のシフトレジスタのうち前記最多の前記種類の前記データ列を前記同時に保持しない前記シフトレジスタに格納させる処理部とを備える。【選択図】 図1

Description

本発明は、演算装置における冗長性の縮退の回復方法に関する。
FPGA(field−programmable gate array)などのプログラマブルデバイスにおいて、放射線によるソフトエラー(特許文献1参照)の対策として回路を冗長化する方法が知られている。
例えば、特許文献2は、同等の構成を有する三つ以上の論理デバイスからの出力データのうち多数のものをボータ論理回路により出力することによりシングル・イベント故障を許容し得る、冗長性を持たせたシステムを開示する。
しかしながら、特許文献2が開示するシステムにおいて冗長構成の一つについてソフトエラーが発生すると冗長性が縮退し、場合によっては冗長性が失われる。そのため、使用を中止した回路の迅速な復旧が求められる。
ここで、一般的なFPGAは、CRAMに格納する構成情報(コンフィグレーションデータ)に異常を検出すると、自動的に、各素子間の配線を訂正又は再構成(リコンフィグレーション)を行う機能を備えている。ここで、CRAMは、configuration random access memoryの略である。CRAMにソフトエラーが発生した場合にも、構成情報に異常が検出された場合には、当該機能により、FPGAは、前記訂正又は再構成(以下、「訂正等」という。)を実行する。
ここで、FPGAは、当該訂正等を行うために異常が発生したモジュールへのデータの入力を止める等の措置を行う。ここで、モジュールは、FPGAが備える、前記冗長構成を構成する複数の部分の各々をいうこととする。
FPGAは、構成情報が異常であってもCRAMが保持する構成情報を実構成に反映する。FPGAが、構成情報において異常が発生したモジュールへのデータの入力を止める措置を行う理由は、誤った構成情報が実構成に反映されたモジュールが、誤ったデータを出力しないようにするためである。
そのモジュールへのデータの送付が停止している間も、他のモジュールへはデータが送付され、当該他のモジュールは所定の演算を行い、演算後のデータを出力する。そのため、当該モジュールの備えるレジスタに格納されるデータは、他のモジュールのレジスタが格納するデータとの間で同期が失われている。ここで、「同期」は、格納されるデータの演算による推移についての順序が設定されたレジスタからなるレジスタ群に格納されたデータ列が互いに等しいことをいう。
また、FPGAにおいて、CRAM以外の部分においてソフトエラーが発生し、同期が失われることもある。
上記場合は、いずれも、FPGAの冗長性が縮退している。そのため、訂正等が行われたFPGAにおいて、再同期化を行うことが必要である。
ここで、特許文献3は、装置内の複数のレジスタ各々を縦続接続して構成され、診断装置からスキャンイン及びスキャンアウト自在なスキャンパスを有する情報処理装置を開示する。
特開2013−046181号公報 特表2009−534738号公報 特開平03−068038号公報
ここで、一般的に、冗長性を有する回路への入力データの再同期化は、論理回路の動作を中断した状態で行われる(特許文献2参照)。そのため、再同期化には、ある程度の動作停止時間を要するという課題がある。
本発明は、シフトレジスタに格納されたデータの再同期化に要する時間を短縮し得る格納装置等の提供を目的とする。
本発明の格納装置は、複数のシフトレジスタの各々に含まれる所定のレジスタから連続する所定の数のレジスタに同時に保持されるデータ列の種類の単複を検出する検出部と、前記種類が二以上であると検出された場合に、前記同時に保持するシフトレジスタが最多の前記種類の前記データ列と等しいものを、前記複数のシフトレジスタのうち前記最多の前記種類の前記データ列を前記同時に保持しない前記シフトレジスタに格納させる処理部とを備える。
本発明の格納装置等は、シフトレジスタに格納されたデータの再同期化に要する時間を短縮し得る。
本実施形態のプログラマブルデバイスの構成例を表す概念図である。 演算部の構成例を表す概念図である。 多数決部の動作例を表すイメージ図である。 再同期化モードの各レジスタの動作例を表すイメージ図である。 CRAMにおいてソフトエラーが発生した場合のFPGAの各構成が行う動作を表すシーケンスチャートである。 FPGAの各構成が行う再同期化動作を表すシーケンスチャートである。 モジュールにおいてソフトエラーが発生した場合のFPGAの各構成が行う動作を表すシーケンスチャートである。 処理部が行う再同期化処理の処理フロー例を表す概念図である。 実施形態の格納装置の最小限の構成を表すブロック図である。
本実施形態のプログラマブルデバイスは、冗長性を有する複数の演算部のレジスタ群が格納するデータ列の同期が喪失したことを検出した場合に、まず、各演算部が備える各レジスタを所定の順序で直列に接続させる。ここで、「同期」は、格納されるデータの推移についての順序が設定されたレジスタからなるレジスタ群(シフトレジスタ)に格納されたデータ列が互いに等しいことをいう。また、同期の喪失は、プログラマブルデバイスが行う再構成(リコンフィグレーション)や前記演算部における前述のソフトエラー等により生じるものである。
次に、前記プログラマブルデバイスは、まだ同期が失われていない最多数の演算部のレジスタ群が格納するデータ列に等しいデータ列を出力する多数決部から出力されるデータ列を各演算部のレジスタ群に、クロックタイミング(CT)に順次格納させる。そのため、前記最多数の演算部のレジスタ群に、そのレジスタ群が格納していたデータ列に等しいデータ列が格納されたCTになると、前記同期が失われた演算部のレジスタ群にも、同じデータ列が格納される。つまり、当該CTでは、すべての演算部の同期が回復した再同期状態にある。
前記再同期を行うのに要する時間は、例えば、最後段の前記レジスタに格納されていたデータが、前記多数決部及び前記レジスタ群を順次移行し、前記最終段の前記レジスタに到達するために要する時間程度の短いものである。通常の演算結果の出力が行われない当該期間は、特許文献2が開示する一般的な再同期化に要する期間と比較して格段に短いものである。そのため、前記プログラマブルデバイスは、正常時に冗長性を有する複数の演算部に格納されたデータの再同期化に要する時間を短縮し得る。
[構成と動作]
図1は、本実施形態のプログラマブルデバイスの例であるFPGA101の構成を表す概念図である。ここで、FPGAはfield−programmable gate arrayの略である。
FPGA101は、モジュール111乃至11nと、多数決部214と、処理部215と記憶部216とを備える。
モジュール111乃至11nは、例えば、互いに同等の構成を有するn個のモジュールである。
各モジュールは、対応する演算部(演算部311乃至31nのうちのいずれか)を備える。各演算部は、正常時には互いに同等の出力を行い得る。
各演算部は、所定の演算を行うために論理素子を組み合わせた組合せ回路、前記組合せ回路内における所定の前記論理素子間の接続を切り替えるスイッチ類及び各組合せ回路の前段及び後段に設けられたレジスタ等からなる素子群を備える。当該素子群の各素子は、共通のクロック信号に同期した動作を行う。そして、各モジュールは、前記素子群の所定の素子間の接続を、処理部215から送付される構成指示情報により、切り替えることにより、入力情報について所定の演算を行う演算回路を構成し又は修復する。当該動作は、FPGAが行う一般的な動作なので、ここでは、詳細説明は省略される。
各演算部は、処理部215により、前記組合せ回路の動作を確認し得る構成になっている。当該構成は一般的なFPGAが備えるものである。当該構成の具体例は、図2を参照して後述される。
各演算部は、処理部215からの指示信号により、二つのモードを切り替える。
第一のモード(通常モード)は、通常の演算処理を行うためのものである。通常モードにおいては、各レジスタ間には、前述の組合せ回路が挿入されている。通常モードにおいては、一つのレジスタが保持するデータは、1クロックタイミングで、組合せ回路に送られ、その後に次段のレジスタに格納される。ここで、クロックタイミングは、例えば、クロック信号の立ち上がり及び立下りのうちのいずれか一方のタイミングである。以下、クロックタイミングを「CT」と表記する場合がある。
第二のモード(再同期化モード)は、処理部215からの指示信号により、再同期化を行うモードである。再同期化モードにおいては、前記素子群に含まれるすべてのレジスタは、予め定められた所定の順序に直列に接続される。それにより、各モジュールに入力されたデータは、クロック周期の経過に伴い、直列に接続されたレジスタ群の各レジスタを逐次移動し、最終的には出力される。
多数決部214は、例えば、背景技術の項において説明したボータ論理回路である。
多数決部214は、各CTにおいて各モジュールから出力された出力データのうち最も数が多いデータを処理部215の端子Lへ出力する。多数決部214は、また、各CTにおいて各モジュールから出力された出力データが他のモジュールと一致していないモジュールがあることを表す不一致情報を、処理部215の端子Mへ出力する。
処理部215は、記憶部216が備えるCRAM217に格納された構成情報(コンフィグレーションデータ)を監視する。ここで、CRAMは、configuration random access memoryの略である。そして、処理部215は、CRAM217が保持する、各モジュールについてのそのモジュールが備える前記素子群の各素子間の配線の構成情報に異常を検出したとする。その場合、処理部215は、当該構成情報において当該異常が発生していることを検出したモジュールへのデータの送付を止める。そして、処理部215は、そのモジュールの前記配線の訂正又は再構成(以下、「訂正等」という。)を指示する指示情報を、そのモジュールに送付する。処理部215は、当該送付を、端子群E,F及びGのうちそのモジュールに接続されたものから信号線を介して行う。当該指示情報の送付を受けたモジュールは、その指示情報により、前記訂正等を行う。
処理部215は、また、各モジュールの前記素子群が備える各レジスタの保持するデータの再同期化を行うかについての判定を行う。ここで、「同期」は、格納されるデータの演算による推移についての順序が設定されたレジスタからなるレジスタ群に格納されたデータ列が互いに等しいことをいう。また、「再同期化」は、喪失された同期を回復することをいう。
処理部215が、前記再同期化を行うことを判定する場合には、以下の二つの場合が含まれる。
第一の場合は、処理部215が、前記訂正等が完了したことを判定した場合である。前述のように、処理部215は、あるモジュールについて前記訂正等を行う場合には、そのモジュールへのデータの送付を止める。そのモジュールへのデータの送付が停止している間も、他のモジュールへはデータが送付され、当該他のモジュールは所定の演算を行い、演算後のデータを出力する。そのため、前記訂正等が終了した時点において、そのモジュールの前記データ列は、他のモジュールの前記データ列と異なっている。すなわち、前記訂正等の終了は、前記再同期化が必要であることを意味する。
第二の場合は、処理部215が、多数決部214から前記不一致情報の入力を受けた場合である。多数決部214が前記不一致情報出力する場合は、入力データの同期が失われたことを意味する。そのため、前記再同期化が必要になる。
処理部215は前記再同期化を行うことを決定した場合には、すべてのモジュールへの通常データの入力を停止する。ここで、「通常データ」は、FPGAに、設定された通常の演算処理を行わせるために、入力されるデータをいうこととする。前記通常データは、処理部215が、端子Iから、各演算部へ入力される。
処理部215が前記再同期化の際に通常データの入力を止めるのは、再同期化中に入力された通常データが失われるのを防ぐためである。処理部215は、再同期化中に入力端子Jから入力されたデータを、例えば、図示しないバッファ等に格納して保持する。
そして、処理部215は、各モジュールの各演算部に、前記通常モードを前記再同期化モードに切り替えさせる指示情報を送付する。これにより、各演算部に含まれる各レジスタは、予め定められた順序に直列に接続される。
そして、処理部215は、多数決部214から端子Lに送付されたデータを、端子Hから、各演算部に入力させる。処理部215は、当該動作を、端子Lの接続先を、出力端子Kから端子Hに切り替えることに行う。処理部215は、当該切替えを行うスイッチ類を備えているものとする。
その後、処理部215は、通常データの各演算部への送付を停止するのに用いたCTからT個のCTが経過すると、各演算部を前記再同期化モードから前記通常モードへ切り替えさせる指示情報を送付する。Tは、通常入力中止時点で、同期演算部の各レジスタが保持するデータが、多数決部214を経由して、再び同期演算部の各レジスタに、前記通常入力中止時点と同じように格納されるCTの数である。ここで、前記通常入力中止時点は、処理部215が、前記通常データの各モジュールへの入力を止めるためのCTである。また、同期演算部は、前記同期が失われていない最多数の演算部である。
Tは、一つのデータが多数決部214を通過するのに要するCTの数をQとすると、例えば、T=Q+mである。ここで、mは、図2に表すレジスタの数である。
上記動作により、T個のCTが経過した後に前記再同期化が図られる。
記憶部216は、CRAM217を備える。
記憶部216は、処理部215が格納を指示する情報のうち、各モジュールにおける前記素子群の所定の各素子間の接続に関する構成情報(コンフィグレーションデータ)をCRAM217に格納する。記憶部216は、処理部215の指示により、前記構成情報を格納又は変更する。
記憶部216は、前記構成情報以外の情報を、処理部215の指示に従い、CRAM以外の記憶領域に格納する。当該記憶領域は、処理部215が上記動作を行うために必要な情報を予め保持する。
記憶部216は、また、処理部215から指示された情報を読み出し、処理部215へ送付する。
図2は、図1に表す演算部311乃至31nの各々の例である演算部310の構成を表す概念図である。
演算部310は、セレクタ321乃至32mと、レジスタ331乃至33mと、組合せ回路341乃至34(m−1)とを備える。
セレクタ321乃至32mの各々(各レジスタ)は、例えば、互いに同等の構成を備える。
各セレクタは、例えば、処理部215から入力される信号(指示データ)が前記通常モード用のレベル(例えば、ハイレベル及びローレベルの一方)の場合は、図の下側の入力配線を出力配線に接続する。なお、図2に表す各素子等の左側の配線がその素子等にとっての入力用であり、右側の配線がその素子等にとっての出力用である。
当該構成は、処理部215が、組合せ回路341乃至34(m−1)の各々(各組合せ回路)の動作を確認するためのものである。当該構成は、前述のように、一般的なFPGAに備えられている構成である。なお、当該構成により各組合せ回路の動作を確認する方法は、本発明の動作とは直接関係ないので、その説明は省略される。
セレクタ321は、処理部215から演算部310を備えるモジュールへの入力の初段のセレクタである。セレクタ321は、前記通常モードの場合は、前記動作により、レジスタ331への出力を、処理部215の端子Iから入力された前記通常データにする。
セレクタ322乃至32mの各々は、前記通常モードの場合には、前記動作により、次段のレジスタへ送付するデータを、下側の入力配線を介して対応する組合せ回路から送付されたデータにする。
一方、各セレクタは、処理部215から入力される信号(指示データ)が前記再同期化モード用のレベル(例えば、前記通常モード用と逆のレベル)の場合は、図の上側の入力配線を出力配線に接続する。
セレクタ321は、前記再同期化モードの場合は、当該動作により、処理部215の端子Hから入力された前述の、多数決部214からの出力データを、レジスタ331へ送付する。
セレクタ322乃至32mの各々は、前記再同期化モードの場合は、前記動作により、上側の入力配線を介して前段のレジスタから送付されたデータを、出力配線を介して接続された後段のレジスタへ出力する。
レジスタ331乃至33mの各々はシフトレジスタを構成する。レジスタ331乃至33mの各々は、入力配線を経由して入力されたデータを保持する。そして、次のCTで、保持したデータを出力配線に出力する。各レジスタは、典型的には、フリップフロップである。
各組合せ回路は、必ずしも、互いに同じ構成であるとは限らない。各組合せ回路は、前述のように、所定の演算を行うために論理素子を組み合わせた回路である。
図3は、多数決部214の動作例を表すイメージ図である。同図には、説明の理解を容易にするため、図1に表す各符号の末尾のnが3である場合を記述してある。
多数決部214は、前述のように、各CTにおいて各モジュールから出力された出力データのうち最も数が多いデータを処理部215の端子Lへ出力する。
図3に表すように、多数決部214に、演算部311から(01011)というデータ列が、演算部312及び313の各々から(11001)というデータ列が、それぞれ入力されたとする。その場合、多数決部214は、入力が多数(3入力のうち2入力)の(11001)のデータ列を、当該データ列の右側のデータから、CTごとに順次出力する。
図4は、各演算部のモードが前記再同期化モードの時の、各レジスタの動作を表すイメージ図である。ここでは、説明の理解を容易にするため、図2に表す各符号の末尾のmが4であるものとしてある。また、前記再同期化モードでは、図1に表す各レジスタはレジスタ間を接続する配線と等価なため、図示を省略してある。また、図1に表す各組合せ回路も、当該動作と関係ないため、図示を省略してある。
各レジスタに格納されたデータは、1CTが経過すると、一つ右側のレジスタに格納される。また、レジスタ334が格納するデータは、1CTが経過すると、出力配線へ出力される。
レジスタ331に(・・・0110)のデータ列の各データが右側のデータから順次入力されたとする。その場合、前記データ列の一番右側の(0)がレジスタ331に格納されてから3CTが経過した時点では、図4に表すカッコ内の各データが各レジスタに格納される。
図5は、CRAM217においてソフトエラーが発生した場合の、FPGA101の各構成が行う動作を表すシーケンスチャートである。同図は、ソフトエラーの発生から処理部215が再同期化を決定するまでの動作を表す。また、同図においては、説明の理解を容易にするため、図1に表す各符号の末尾のnは3であるとしている。
まず、同図に表すように、CRAM217においてソフトエラーが発生したとする。ここでは、当該ソフトエラーは、CRAM217における、モジュール111についての前記構成情報を格納する部分で発生したことを仮定する。
すると、CRAM217が格納している前記構成情報を監視している処理部215は、A101の動作として、モジュール111に係る前記構成情報の異常を検出する。
そして、処理部215は、A102の動作として、モジュール111の構成についての前述の訂正等を行うことを決定する。
そして、処理部215は、A103の動作として、モジュール111へ、前記訂正等を指示する指示情報を送付する。
当該指示情報の送付を受けたモジュール111は、A104の動作として、前記訂正等を行う。ここで、モジュール111は、前記訂正等を行う際に、前記通常データの入力を停止する。各モジュールは、自己が備える各演算部の前段に、入力を停止又は停止の解除を行い得るスイッチ類を備えているものとする。各モジュールは、前記訂正等が終了すると前記停止を解除する。
次に、モジュール111は、前記訂正等が完了すると、A105の動作として、前記訂正等が完了したことを表す通知を処理部215へ送付する。
処理部215は、当該通知の送付を受けて、A106の動作として、再同期化を行うことを決定する。
そして、FPGA101は図6に表すA107の動作を行う。
図6は、FPGAの各構成が行う再同期化動作を表すシーケンスチャートである。
処理部215は、まず、A107の動作として、前記通常データの各モジュールへの入力を停止する。
そして、処理部215は、A108の動作として、各モジュールの演算部が備える各セレクタ(図2参照)へ、入力配線を前記再同期化モード用に切り替えさせる指示信号を送付する。
当該指示信号の送付を受けて、各モジュールの前記各セレクタは、A109の動作として、入力配線を前記再同期化モード用のものに切り替える。
そして、処理部215は、A110の処理として、図1に表す処理部215の端子Lの接続先を出力端子Kから端子Hに切り替える。処理部215は、当該切替えを、A107の動作を行ったCTにおいて多数決部214の内部にあったデータがすべて出力端子Kから出力された直後のCTで行う。
次に、処理部215は、A111の動作として、各セレクタへ入力を前記通常モード用に切り替えさせるための指示情報を送付する。処理部215は、当該送付を、A107の動作の時点でモジュール112及び113の最終出力段のレジスタにあったデータに等しいデータが、モジュール112及び113の最終出力段のレジスタに格納されるCTで行う。このCTでは、演算部311の各レジスタに格納されるデータ列は、演算部312又は313の各レジスタに格納されるデータ列と等しくなっている。
当該指示情報の送付を受けて、各モジュールの各セレクタは、A112の動作として、入力を前記通常モード用に切り替える。
そして、処理部215は、A113の動作として、前記通常データの各モジュールの演算部への入力を再開する。
そして、処理部215は、A114の動作として、処理部215が備える端子Lの接続先を、端子Hから出力端子Kに切り替える。処理部215は、当該切替えを、次のCTで多数決部214が、A113の動作を行った時点で前記最終段のレジスタに格納されていたデータに対応するデータを端子Lへ出力するCTで行う。その理由は、そのタイミングまでに多数決部214から端子Lへ入力されるダミーデータが出力端子Kから出力されないようにするためである。そのタイミングまでに端子Lへ入力されたダミーデータは端子Hから各モジュールへ送付される。しかしながら、各モジュールの初段のレジスタは、入力を端子Iからの配線に既に切り替えているので、当該ダミーデータは各レジスタの初段のレジスタから先へは入力されない。
なお、図5に表すようにソフトエラーが発生して、A101乃至A104の、モジュール111の構成に係る前記訂正等が行われても、図6に表すA110の動作による出力端子の切替えが行われるまでは、FPGA101は、通常の演算結果を出力する。ただし、この間、FPGA101がモジュールを三つ備えることによる前記冗長性は、縮退し、なくなっている。そのため、この期間に仮に新たなソフトエラー等が発生すると、FPGA101は、正常な演算結果の出力は行わなくなる。
また、FPGA101は、A110からA114の間は、再同期化動作のために、演算結果の出力を行わない。
そして、FPGA101は、A114の動作が完了すると、通常の演算を行い、演算結果を出力すると共に、前記冗長性を有する状態に回復する。そのため、この期間に仮に新たなソフトエラー等が発生したとしても、FPGA101は、そのソフトエラーが単発的で次に行う図6に表す処理に準じた処理により回復可能なものであれば、前記冗長性を回復し得る。
図7は、CRAMではなくモジュールでソフトエラーが発生した場合にFPGA101が行う再同期化動作を表すシーケンスチャートである。同図には、ソフトエラーの発生から処理部215が再同期化を決定するまでの動作を表してある。
まず、図7に表すように、モジュール111でソフトエラーが発生し、モジュール111のあるレジスタが格納するデータが他のモジュールの対応するレジスタの格納するデータと異なる非同期状態になったとする。
すると、多数決部214は、モジュール111からの入力データが、他のモジュールからの入力データと異なるCTで、その旨を表す前記不一致情報を、図1に表す処理部215の端子Mへ出力する。
処理部215は、当該不一致情報の入力を受けて、A202の動作として、前記再同期化の実行を決める。
その後、FPGA101は、図6に表すA107乃至A114の動作を行う。A106乃至A109の動作の説明は前述の通りである。
図8は、処理部215が行う再同期化処理の処理フロー例を表す概念図である。
処理部215は、例えば、外部からの開始情報の入力により図8に表す処理を開始する。
そして、処理部215は、S101の処理として、同期化を実行するかについての判定を行う。処理部215は、当該判定を、例えば、あるモジュールについての前記訂正等が完了した(図5のA105参照)か、又は、あるモジュールが非同期状態か(図7のA201参照)を判定することにより行う。
処理部215は、S101の処理による判定結果がyesの場合は、S102の処理を行う。同場合は、図5に表すA106の動作又は図7に表すA202の動作に対応する。
一方、処理部215は、S101の処理による判定結果がnoの場合は、S101の処理を再度行う。
処理部215は、S102の処理を行う場合は、同処理として、前記通常データの各モジュールへの入力を停止する。
そして、処理部215は、S103の処理として、各モジュールの各セレクタ(図2参照)に、入力を前記通常モード用から前記再同期化モード用に切り替えさせる指示信号を送付する。
そして、処理部215は、S104の処理として、S102の処理を行うCTからQ個のCTが経過したかについての判定を行う。ここで、Qは、S102の処理を行うCTからQ個のCTが経過したCTに、S102の処理を行う時点で多数決部214に格納されていたデータがすべて出力端子Kから出力されるという意味を持つ数である。
処理部215は、S104の処理による判定結果がyesの場合は、S105の処理を行う。
一方、処理部215は、S104の処理による判定結果がnoの場合は、S104の処理を再度行う。
処理部215は、S105の処理を行う場合は、同処理として、端子Lからの入力データの出力先を、出力端子Kから端子Hに切り替える。
そして、処理部215は、S106の処理としてS105のCTからm個のCTが経過したかについての判定を行う。ここで、S105のCTからm個のCTの経過時点で、S102の処理を行う時点で同期化が行われていたモジュールの演算部の最終出力段のレジスタに格納されていたデータに等しいデータが、当該レジスタに格納されるものとする。mは、各演算部に含まれるレジスタの数に等しい。
処理部215は、S106の処理による判定結果がyesの場合は、S107の処理を行う。
一方、処理部215は、S106の処理による判定結果がnoの場合は、S106の処理を再度行う。
処理部215は、S107の処理を行う場合は、同処理として、各演算処理部の各セレクタへ、入力を再同期化モード用から通常モードへ切り替えさせる指示信号を送付する。
そして、処理部215は、S108の処理として、S107の処理が行われるCTの次のCTで、通常データの各演算部への入力を再開する。
そして、処理部215は、S109の処理として、CTがQ個経過したかについての判定を行う。Qは、S104の説明で述べた意味と共に、S108の処理が行われたCTで前記最終段のレジスタに格納されたデータに等しいデータが、次のCTで多数決部214から出力される状態にあることを意味する。
処理部215は、S109の処理による判定結果がyesの場合は、S110の処理を行う。
一方、処理部215は、S109の処理による判定結果がnoの場合は、S109の処理を再度行う。
処理部215は、S110の処理を行う場合は、多数決部214から端子Lに入力されたデータの出力先を、端子Hから出力端子Kへ切り替える。
そして処理部215は、S111の処理として、図8に表す処理を終了するかについての判定を行う。処理部215は、当該判定を、例えば、外部からの終了情報の入力の有無を判定することにより行う。
処理部215は、S111の処理による判定結果がyesの場合は、図8に表す処理を終了する。
一方、処理部215は、S111の処理による判定結果がnoの場合は、S101の処理を再度行う。
なお、処理部215は図8に表す処理の一部をハードウエア構成により行っても構わない。
[効果]
本実施形態のプログラマブルデバイスは、冗長性を有する複数の演算部のレジスタ群が格納するデータ列の同期が失われたことを検出した場合に、まず、各演算部が備える各レジスタを所定の順序で直列に接続させる。「同期」は、格納されるデータの演算による推移についての順序が設定されたレジスタからなるレジスタ群(シフトレジスタ)に格納されたデータ列が互いに等しいことをいう。そして、前記プログラマブルデバイスは、まだ同期が失われていない最多数の演算部のレジスタ群が格納するデータ列に等しい、多数決部から出力されるデータ列を各演算部のレジスタ群に、同じクロックタイミング(CT)で、順次格納させる。そのため、前記最多数の演算部のレジスタ群に、そのレジスタ群が格納していたデータ列に等しいデータ列が格納されたCTでは、前記同期が失われた演算部のレジスタ群にも、同じデータ列が格納される。つまり、当該CTでは、すべての演算部の同期が回復した再同期状態にある。
前記再同期を行うための時間は、最後段の前記レジスタに格納されていたデータが、前記多数決部及び前記レジスタ群を順次移行し、前記最終段の前記レジスタに到達するために要するCTの経過程度の短い期間で行い得る。通常の演算結果の出力が行われない当該期間は、特許文献2が開示する一般的な再同期化に要する期間と比較して格段に短いものである。
すなわち、正常時に冗長性を有する複数の演算部に格納されたデータの再同期化に要する時間を短縮し得る。
以上の説明では、同期が喪失される原因がソフトエラーにある場合の例を主に説明した。しかしながら、実施形態において同期が喪失される原因は任意である。
図9は実施形態の格納装置の最小限の構成である格納装置215xの構成を表すブロック図である。
格納装置215xは、検出部215axと、処理部215bxとを備える。
検出部215axは、複数のシフトレジスタの各々に含まれる所定のレジスタから連続する所定の数のレジスタに同時に保持されるデータ列の種類の単複を検出する。
処理部215bxは、前記種類が二以上であると検出された場合に、前記同時に保持するシフトレジスタが最多の前記種類の前記データ列と等しいものを、前記複数のシフトレジスタのうち前記最多の前記種類の前記データ列を前記同時に保持しない前記シフトレジスタに格納させる。
格納装置215xは、前記同時に保持するシフトレジスタが最多の前記種類の前記データ列と等しいものを、前記複数のシフトレジスタのうち前記最多の前記種類の前記データ列を前記同時に保持しない前記シフトレジスタに格納させる。従い、前記データ列を前記クロック信号に従い順次格納させたとしても、当該格納に要する時間は、一つのデータが前記前記シフトレジスタを通過するのに要するクロック信号の周期程度の短いものである。
従い、格納装置215xは、シフトレジスタに格納されたデータの再同期化に要する時間を短縮し得る。
そのため、格納装置215xは、前記構成により、[発明の効果]の項に記載した効果を奏する。
なお、図9に表す格納装置215xは、例えば、図1に表す処理部215である。また、検出部215axは、例えば、処理部215の、図5に表すA106の動作、図7に表すA205の動作、又は、図8に表すS101の処理を行う部分である。また、処理部215bxは、例えば、処理部215の、図6に表すA108、A110及びA111の動作、又は、図8に表すS103乃至S107の処理を行う部分である。また、前記シフトレジスタは、例えば、図2に表すレジスタ331乃至33nからなるシフトレジスタである。
以上、本発明の各実施形態を説明したが、本発明は、前記した実施形態に限定されるものではなく、本発明の基本的技術的思想を逸脱しない範囲で更なる変形、置換、調整を加えることができる。例えば、各図面に示した要素の構成は、本発明の理解を助けるための一例であり、これらの図面に示した構成に限定されるものではない。
また、前記の実施形態の一部又は全部は、以下の付記のようにも記述され得るが、以下には限られない。
(付記1)
複数のシフトレジスタの各々に含まれる所定のレジスタから連続する所定の数のレジスタに同時に保持されるデータ列の種類の単複を検出する検出部と、
前記種類が二以上であると検出された場合に、前記同時に保持するシフトレジスタが最多の前記種類の前記データ列と等しいものを、前記複数のシフトレジスタのうち前記最多の前記種類の前記データ列を前記同時に保持しない前記シフトレジスタに格納させる処理部と
を備える格納装置。
(付記2)
前記複数のシフトレジスタは正常時に冗長構成を有する、付記1に記載された格納装置。
(付記3)
前記保持情報が所定の演算に係る途中演算の結果であり、前記複数の前記シフトレジスタの各々は、正常時においては入力データに対して互いに同等の前記演算による結果を出力し得る、前記複数の演算部の各々に含まれる、付記2に記載された格納装置。
(付記4)
前記演算部は、前記演算を行う第一モードと、前記シフトレジスタを構成する各レジスタを所定の序列に従い前記演算を行う演算回路を介さずに直列に接続する第二モードとを前記処理部からの指示信号により切り替え、前記処理部は、前記演算部の各々へ、その前記演算部を前記第二モードにさせる第二モード化信号を送付した後に、前記格納を行わせる、付記3に記載された格納装置。
(付記5)
前記演算部は、前記第二モード化信号により、入力配線を、前記入力データを入力するためのものから、前記同時に保持するシフトレジスタが最多の前記種類の前記データ列を保持する最多数シフトレジスタから出力される前記データ列と同等の前記データ列を入力するためのものへ切り替える、初段入力切替部をさらに備え、前記処理部は、前記送付の対象に、前記初段入力切替部への前記第二モード化信号を含める、付記4に記載された格納装置。
(付記6)
前記処理部は前記入力データの前記演算部の各々への入力を停止する入力停止部をさらに備え、前記処理部は、前記入力停止部により前記停止を行った後に、前記格納を行わせる、付記5に記載された格納装置。
(付記7)
前記演算部は、前記各レジスタの各々の前段に、その前記各レジスタへの入力を、前段の前記各レジスタからのものと、前記前段の前記各レジスタから前記途中演算を行う途中演算部を介してのものとを切り替える後段入力切替部をさらに備え、前記処理部は、前記送付の対象に、前記後段入力切替部への前記第二モード化信号を含める、付記4乃至付記6のうちのいずれか一に記載された格納装置。
(付記8)
前記演算部の前記途中演算を行う部分は、所定の論理素子又はその組合せからなる回路を含む、付記3乃至付記7のうちのいずれか一に記載された格納装置。
(付記9)
前記処理部は、前記最多数シフトレジスタから出力される、前記演算部から出力されるデータである第一出力データ、に等しいデータである第二出力データの出力先を外部と前記演算部の各々とで切り替える出力切替部を備え、前記出力切替部により前記出力先を前記演算部の各々に切り替えた後に、前記格納を行わせる、付記3乃至付記8のうちのいずれか一に記載された格納装置。
(付記10)
前記演算部の各々からの前記第一出力データから、前記第二出力データを導出する多数決部をさらに備える、付記9に記載された格納装置。
(付記11)
付記3乃至付記10のうちのいずれか一に記載された格納装置と、前記演算部とを備える、演算装置。
(付記12)
プログラマブルデバイスである、付記11に記載された演算装置。
(付記13)
field−programmable gate array(FPGA)である、付記11又は付記12に記載された演算装置。
(付記14)
前記不一致が、ソフトエラーによるものである、付記11乃至付記13のうちのいずれか一に記載された演算装置。
(付記15)
前記ソフトエラーが、前記演算部に含まれる素子群の接続状態を表す情報である構成情報を記憶する構成情報格納部で生じ、前記不一致が、当該構成情報の異常を検出したことにより、前記異常を検出した前記構成情報に係る前記演算部について行われた、前記接続状態の訂正又は再構築により生じたものである、付記14に記載された演算装置。
(付記16)
前記ソフトエラーが、前記演算部で生じたものである、付記14に記載された演算装置。
(付記17)
複数のシフトレジスタの各々に含まれる所定のレジスタから連続する所定の数のレジスタに同時に保持されるデータ列の種類の単複を検出し、
前記種類が二以上であると検出された場合に、前記同時に保持するシフトレジスタが最多の前記種類の前記データ列と等しいものを、前記複数のシフトレジスタのうち前記最多の前記種類の前記データ列を前記同時に保持しない前記シフトレジスタに格納させる
格納方法。
101 FPGA
111、112、113 モジュール
214 多数決部
215 処理部
215x 格納装置
215ax 検出部
215bx 処理部
216 記憶部
217 CRAM
310、311、312、313 演算部
321、322、323、32m セレクタ
331、332、333、334、33m レジスタ
341、342、34(m−1) 組合せ回路
E、F、G 端子群
H、I、L、M 端子
J 入力端子
K 出力端子

Claims (10)

  1. 複数のシフトレジスタの各々に含まれる所定のレジスタから連続する所定の数のレジスタに同時に保持されるデータ列の種類の単複を検出する検出部と、
    前記種類が二以上であると検出された場合に、前記同時に保持するシフトレジスタが最多の前記種類の前記データ列と等しいものを、前記複数のシフトレジスタのうち前記最多の前記種類の前記データ列を前記同時に保持しない前記シフトレジスタに格納させる処理部と
    を備える格納装置。
  2. 前記複数のシフトレジスタは正常時に冗長構成を有する、請求項1に記載された格納装置。
  3. 前記保持情報が所定の演算に係る途中演算の結果であり、前記複数の前記シフトレジスタの各々は、正常時においては入力データに対して互いに同等の前記演算による結果を出力し得る、前記複数の演算部の各々に含まれる、請求項2に記載された格納装置。
  4. 前記演算部は、前記演算を行う第一モードと、前記シフトレジスタを構成する各レジスタを所定の序列に従い前記演算を行う演算回路を介さずに直列に接続する第二モードとを前記処理部からの指示信号により切り替え、前記処理部は、前記演算部の各々へ、その前記演算部を前記第二モードにさせる第二モード化信号を送付した後に、前記格納を行わせる、請求項3に記載された格納装置。
  5. 前記演算部は、前記第二モード化信号により、入力配線を、前記入力データを入力するためのものから、前記同時に保持するシフトレジスタが最多の前記種類の前記データ列を保持する最多数シフトレジスタから出力される前記データ列と同等の前記データ列を入力するためのものへ切り替える、初段入力切替部をさらに備え、前記処理部は、前記送付の対象に、前記初段入力切替部への前記第二モード化信号を含める、請求項4に記載された格納装置。
  6. 前記処理部は前記入力データの前記演算部の各々への入力を停止する入力停止部をさらに備え、前記処理部は、前記入力停止部により前記停止を行った後に、前記格納を行わせる、請求項5に記載された格納装置。
  7. 前記演算部は、前記各レジスタの各々の前段に、その前記各レジスタへの入力を、前段の前記各レジスタからのものと、前記前段の前記各レジスタから前記途中演算を行う途中演算部を介してのものとを切り替える後段入力切替部をさらに備え、前記処理部は、前記送付の対象に、前記後段入力切替部への前記第二モード化信号を含める、請求項4乃至請求項6のうちのいずれか一に記載された格納装置。
  8. 前記演算部の前記途中演算を行う部分は、所定の論理素子又はその組合せからなる回路を含む、請求項3乃至請求項7のうちのいずれか一に記載された格納装置。
  9. 前記処理部は、前記最多数シフトレジスタから出力される、前記演算部から出力されるデータである第一出力データ、に等しいデータである第二出力データの出力先を外部と前記演算部の各々とで切り替える出力切替部を備え、前記出力切替部により前記出力先を前記演算部の各々に切り替えた後に、前記格納を行わせる、請求項3乃至請求項8のうちのいずれか一に記載された格納装置。
  10. 複数のシフトレジスタの各々に含まれる所定のレジスタから連続する所定の数のレジスタに同時に保持されるデータ列の種類の単複を検出し、
    前記種類が二以上であると検出された場合に、前記同時に保持するシフトレジスタが最多の前記種類の前記データ列と等しいものを、前記複数のシフトレジスタのうち前記最多の前記種類の前記データ列を前記同時に保持しない前記シフトレジスタに格納させる
    格納方法。
JP2018194763A 2018-10-16 2018-10-16 格納装置及び格納方法 Active JP6889138B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2018194763A JP6889138B2 (ja) 2018-10-16 2018-10-16 格納装置及び格納方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018194763A JP6889138B2 (ja) 2018-10-16 2018-10-16 格納装置及び格納方法

Publications (2)

Publication Number Publication Date
JP2020064382A true JP2020064382A (ja) 2020-04-23
JP6889138B2 JP6889138B2 (ja) 2021-06-18

Family

ID=70388326

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018194763A Active JP6889138B2 (ja) 2018-10-16 2018-10-16 格納装置及び格納方法

Country Status (1)

Country Link
JP (1) JP6889138B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7268826B1 (ja) 2022-02-21 2023-05-08 Necプラットフォームズ株式会社 三重化冗長回路における復元装置及び復元方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008251013A (ja) * 2008-04-02 2008-10-16 Nec Electronics Corp 半導体集積回路およびその制御方法
JP2009253023A (ja) * 2008-04-07 2009-10-29 Oki Semiconductor Co Ltd 半導体集積回路の設計方法
JP2013046181A (ja) * 2011-08-24 2013-03-04 Hitachi Ltd プログラマブルデバイス、プログラマブルデバイスのリコンフィグ方法および電子デバイス

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008251013A (ja) * 2008-04-02 2008-10-16 Nec Electronics Corp 半導体集積回路およびその制御方法
JP2009253023A (ja) * 2008-04-07 2009-10-29 Oki Semiconductor Co Ltd 半導体集積回路の設計方法
JP2013046181A (ja) * 2011-08-24 2013-03-04 Hitachi Ltd プログラマブルデバイス、プログラマブルデバイスのリコンフィグ方法および電子デバイス

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7268826B1 (ja) 2022-02-21 2023-05-08 Necプラットフォームズ株式会社 三重化冗長回路における復元装置及び復元方法
JP2023121471A (ja) * 2022-02-21 2023-08-31 Necプラットフォームズ株式会社 三重化冗長回路における復元装置及び復元方法

Also Published As

Publication number Publication date
JP6889138B2 (ja) 2021-06-18

Similar Documents

Publication Publication Date Title
US7290169B2 (en) Core-level processor lockstepping
US7296181B2 (en) Lockstep error signaling
US7237144B2 (en) Off-chip lockstep checking
EP2787401A1 (en) Method and apparatus for controlling a physical unit in an automation system
JP2003015900A (ja) 追走型多重化システム、及び追走により信頼性を高めるデータ処理方法
JP6889138B2 (ja) 格納装置及び格納方法
JP2018181206A (ja) データ処理装置、データ処理方法およびプログラム
US10891186B2 (en) Semiconductor device and semiconductor system including the same
US10313095B2 (en) Control system
JP2006178730A (ja) 安全信号i/f装置およびその二重化信号入力処理方法
US20140372837A1 (en) Semiconductor integrated circuit and method of processing in semiconductor integrated circuit
EP3296874B1 (en) Apparatus and associated method
JP3217993B2 (ja) パリティチェック回路
RU2580791C2 (ru) Устройство для мажоритарного выбора сигналов (3 варианта)
US11385288B2 (en) Device, method and system of error detection and correction in multiple devices
JP7268826B1 (ja) 三重化冗長回路における復元装置及び復元方法
JP2013219473A (ja) プログラマブルロジックデバイス
JP7567399B2 (ja) 情報処理装置及び情報処理方法
WO2023112079A1 (ja) 故障検出回路、故障検出システムおよび故障検出方法
WO2017033319A1 (ja) 制御システム
JP2740492B2 (ja) Lsi間非同期データ転送回路
JPH03232040A (ja) データ処理装置
JP6194679B2 (ja) データ補正回路及びデータ補正方法
JP2769064B2 (ja) 系統選択制御方式
JP3361919B2 (ja) プログラマブルコントローラ

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200217

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210129

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210302

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210412

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210520

R150 Certificate of patent or registration of utility model

Ref document number: 6889138

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150