特許第6892163号(P6892163)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ NECプラットフォームズ株式会社の特許一覧

特許6892163制御装置、システム、制御方法及びプログラム
<>
  • 特許6892163-制御装置、システム、制御方法及びプログラム 図000002
  • 特許6892163-制御装置、システム、制御方法及びプログラム 図000003
  • 特許6892163-制御装置、システム、制御方法及びプログラム 図000004
  • 特許6892163-制御装置、システム、制御方法及びプログラム 図000005
  • 特許6892163-制御装置、システム、制御方法及びプログラム 図000006
  • 特許6892163-制御装置、システム、制御方法及びプログラム 図000007
  • 特許6892163-制御装置、システム、制御方法及びプログラム 図000008
  • 特許6892163-制御装置、システム、制御方法及びプログラム 図000009
  • 特許6892163-制御装置、システム、制御方法及びプログラム 図000010
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】6892163
(24)【登録日】2021年5月31日
(45)【発行日】2021年6月23日
(54)【発明の名称】制御装置、システム、制御方法及びプログラム
(51)【国際特許分類】
   H03K 19/177 20200101AFI20210614BHJP
   H01L 21/82 20060101ALI20210614BHJP
   H01L 21/822 20060101ALI20210614BHJP
   H01L 27/04 20060101ALI20210614BHJP
【FI】
   H03K19/177
   H01L21/82 A
   H01L27/04 T
   H01L27/04 H
【請求項の数】6
【全頁数】16
(21)【出願番号】特願2020-47445(P2020-47445)
(22)【出願日】2020年3月18日
【審査請求日】2020年3月18日
(73)【特許権者】
【識別番号】000227205
【氏名又は名称】NECプラットフォームズ株式会社
(74)【代理人】
【識別番号】100106909
【弁理士】
【氏名又は名称】棚井 澄雄
(74)【代理人】
【識別番号】100134544
【弁理士】
【氏名又は名称】森 隆一郎
(74)【代理人】
【識別番号】100149548
【弁理士】
【氏名又は名称】松沼 泰史
(74)【代理人】
【識別番号】100162868
【弁理士】
【氏名又は名称】伊藤 英輔
(72)【発明者】
【氏名】秋山 英樹
【審査官】 渡井 高広
(56)【参考文献】
【文献】 特開2018−101329(JP,A)
【文献】 特開2009−059422(JP,A)
【文献】 特開平10−084275(JP,A)
【文献】 特開昭63−221443(JP,A)
【文献】 特開昭60−254253(JP,A)
【文献】 特開2010−204073(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H03K 19/177
H01L 21/82
H01L 21/822
H01L 27/04
(57)【特許請求の範囲】
【請求項1】
プログラム可能な回路の構成を決定するための制御装置であって、
SRAMが記憶するCRC情報に基づいて前記SRAMにおけるソフトエラーを検出する障害検出回路と、
前記障害検出回路が前記ソフトエラーを検出し、前記プログラム可能な回路のコンフィギュレーションデータのソースとなるRTLで記述された回路情報によって示される論理接続と、前記コンフィギュレーションデータがマッピングされる論理ブロックの位置とに基づいて、論理的に関連する論理ブロックにルーティングされるように作成されたクロック停止指示信号を受けた場合に、前記SRAMが記憶する前記ソフトエラーに関連する前記論理ブロッククロック信号を停止させる伝搬抑制回路と、
を備える制御装置。
【請求項2】
前記障害検出回路が前記ソフトエラーを検出した前記SRAMのデータを書き直す再コンフィギュレーション制御回路、
を備える請求項1に記載の制御装置。
【請求項3】
前記プログラム可能な回路は、FPGAまたはCPLDであり、
前記SRAMは、前記FPGAまたは前記CPLDに備えられる、
請求項1または請求項2に記載の制御装置。
【請求項4】
請求項1から請求項の何れか一項に記載の制御装置と、
前記SRAMを有し、前記制御装置によってルーティングが再構成されるプログラム可能な回路と、
を備えるシステム。
【請求項5】
プログラム可能な回路の構成を決定するための制御装置が実行する制御方法であって、
SRAMが記憶するCRC情報に基づいて前記SRAMにおけるソフトエラーを検出することと、
前記ソフトエラーを検出し、前記プログラム可能な回路のコンフィギュレーションデータのソースとなるRTLで記述された回路情報によって示される論理接続と、前記コンフィギュレーションデータがマッピングされる論理ブロックの位置とに基づいて論理的に関連する論理ブロックにルーティングされるように作成されたクロック停止指示信号を受けた場合に、前記SRAMが記憶する前記ソフトエラーに関連するブロック単位でクロック信号を停止させることと、
を含む制御方法。
【請求項6】
プログラム可能な回路の構成を決定するための制御装置が有するコンピュータに、
SRAMが記憶するCRC情報に基づいて前記SRAMにおけるソフトエラーを検出することと、
前記ソフトエラーを検出し、前記プログラム可能な回路のコンフィギュレーションデータのソースとなるRTLで記述された回路情報によって示される論理接続と、前記コンフィギュレーションデータがマッピングされる論理ブロックの位置とに基づいて論理的に関連する論理ブロックにルーティングされるように作成されたクロック停止指示信号を受けた場合に、前記SRAMが記憶する前記ソフトエラーに関連するブロック単位でクロック信号を停止させることと、
を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、制御装置、システム、制御方法及びプログラムに関する。
【背景技術】
【0002】
FPGA、CPLDなどは、産業に多用され、高機能化、高集積化が進んでいる。
特許文献1には、関連する技術として、ソフトエラーの検出を行うFPGAに係る技術が開示されている。
特許文献2には、関連する技術として、論理回路において故障が発生した場合、セルアレイ単位でクロック信号を停止する技術が開示されている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2011−013829号公報
【特許文献2】特開平10−084275号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところで、FPGA、CPLDなどの回路構成がプログラム可能な回路の高集積化に伴い、回路構成を決定するFPGA、CPLD内部のSRAMの高集積化も進む。そのため、SRAMにおけるソフトエラーの影響が無視できなくなる。FPGAやCPLDなどにおけるSRAMにソフトエラーが発生した場合、FPGAやCPLDなどの回路構成が適切な回路構成にならない可能性がある。FPGAやCPLDなどにおけるSRAMにソフトエラーが発生した場合、SRAMにおけるソフトエラーに関連する回路の動作を停止するために、例えば、特許文献2に記載の発明のように、セルアレイ単位でクロック信号を停止することが考えられる。
しかしながら、セルアレイ単位でクロック信号を停止した場合、SRAMにおけるソフトエラーと直接関係のない適切な構成の回路へのクロック信号の供給経路も変更されてしまう可能性がある。その結果、回路構成を適切にするための時間が長くなる可能性がある。
そこで、SRAMにソフトエラーが発生した場合に、SRAMにおけるソフトエラーに関連するできるだけ小規模な回路へのクロック信号のみを停止させることのできる技術が求められている。
【0005】
本発明の各態様は、上記の課題を解決することのできる制御装置、システム、制御方法及びプログラムを提供することを目的としている。
【課題を解決するための手段】
【0006】
上記目的を達成するために、本発明の一態様によれば、制御装置は、プログラム可能な回路の構成を決定するための制御装置であって、SRAMが記憶するCRC情報に基づいて前記SRAMにおけるソフトエラーを検出する障害検出回路と、前記障害検出回路が前記ソフトエラーを検出し、前記プログラム可能な回路のコンフィギュレーションデータのソースとなるRTLで記述された回路情報によって示される論理接続と、前記コンフィギュレーションデータがマッピングされる論理ブロックの位置とに基づいて、論理的に関連する論理ブロックにルーティングされるように作成されたクロック停止指示信号を受けた場合に、前記SRAMが記憶する前記ソフトエラーに関連する前記論理ブロックのクロック信号を停止させる伝搬抑制回路と、を備える
【0007】
上記目的を達成するために、本発明の別の態様によれば、システムは、上記の制御装置と、前記SRAMを有し、前記制御装置によってルーティングが再構成されるプログラム可能な回路と、を備える。
【0008】
上記目的を達成するために、本発明の別の態様によれば、制御方法は、プログラム可能な回路の構成を決定するための制御装置が実行する制御方法であって、SRAMが記憶するCRC情報に基づいて前記SRAMにおけるソフトエラーを検出することと、前記ソフトエラーを検出し、前記プログラム可能な回路のコンフィギュレーションデータのソースとなるRTLで記述された回路情報によって示される論理接続と、前記コンフィギュレーションデータがマッピングされる論理ブロックの位置とに基づいて論理的に関連する論理ブロックにルーティングされるように作成されたクロック停止指示信号を受けた場合に、前記SRAMが記憶する前記ソフトエラーに関連するブロック単位でクロック信号を停止させることと、を含む
【0009】
上記目的を達成するために、本発明の別の態様によれば、プログラムは、プログラム可能な回路の構成を決定するための制御装置が有するコンピュータに、SRAMが記憶するCRC情報に基づいて前記SRAMにおけるソフトエラーを検出することと、前記ソフトエラーを検出し、前記プログラム可能な回路のコンフィギュレーションデータのソースとなるRTLで記述された回路情報によって示される論理接続と、前記コンフィギュレーションデータがマッピングされる論理ブロックの位置とに基づいて論理的に関連する論理ブロックにルーティングされるように作成されたクロック停止指示信号を受けた場合に、前記SRAMが記憶する前記ソフトエラーに関連するブロック単位でクロック信号を停止させることと、を実行させる
【発明の効果】
【0010】
本発明の少なくとも1つの態様によれば、SRAMにソフトエラーが発生した場合に、SRAMにおけるソフトエラーに関連するできるだけ小規模な回路へのクロック信号のみを停止させることができる。
【図面の簡単な説明】
【0011】
図1】本発明の一実施形態によるFPGAシステムの構成の一例を示す図である。
図2】本発明の一実施形態におけるクロック信号の停止を説明するための図である。
図3】本発明の一実施形態における故障ブロック番号通知信号を説明するための図である。
図4】本発明の一実施形態における回路の論理の重要性に応じた処理を説明するための図である。
図5】本発明の一実施形態におけるVerilog HDLによりRTLで記載されたSeverity情報の例を示す図である。
図6】本発明の一実施形態によるFPGAシステムの処理フローの一例を示す図である。
図7】本発明の実施形態による最小構成の制御装置を示す図である。
図8】本発明の実施形態による最小構成の処理フローの例を示す図である。
図9】少なくとも1つの実施形態に係るコンピュータの構成を示す概略ブロック図である。
【発明を実施するための形態】
【0012】
以下、図面を参照しながら実施形態について詳しく説明する。
<実施形態>
本発明の一実施形態によるFPGA(Field−Programmable Gate Array)システム1は、クロック信号の伝播に不具合が生じた場合に、論理的に関連するブロックのクロック信号を停止させることによって、障害が伝搬することを抑制するシステムである。FPGAシステム1は、図1に示すように、FPGA10、コンフィギュレーション回路20(制御装置の一例)を備える。
なお、本発明の一実施形態では、回路構成がプログラム可能な回路としてFPGA10を例に説明する。しかしながら、回路構成がプログラム可能な回路はFPGAに限定されるものではない。例えば、回路構成がプログラム可能な回路は、CPLD(Complex Programmable Logic Device)であってよい。
【0013】
FPGA10は、LB(Logic Block)101a、101b、101c、CB(Connection Block)102a、102b、102c、SWB(Switch Block)103、SRAM(Static Random Access Memory)104a、104b、104c、104d、104e、104f、データバス105a、105b、105c、105d、105e、105fを備える。
なお、図1では、SRAM104c、104d、104e、104fは省略されており、代わりに、図2にSRAM104c、104d、104e、104fが記載されている。
【0014】
LB101aは、SLICE101a1、101a2、CRC(Cyclic Redundancy Check)エラー検出回路101a3(障害検出回路の一例)、クロック制御回路101a4(伝搬抑制回路の一例)を備える。
【0015】
SLICE101a1は、ルックアップテーブル(Look Up Table、以下、LUTと記載)101a11、フリップフロップ(Flip Flop、以下、FFと記載)101a12を備える。
【0016】
LB101bは、SLICE101b1、101b2、CRCエラー検出回路101b3(障害検出回路の一例)、クロック制御回路101b4(伝搬抑制回路の一例)を備える。
SLICE101b1は、LUT101b11、FF101b12を備える。
【0017】
LB101cは、SLICE101c1、101c2、CRCエラー検出回路101c3(障害検出回路の一例)、クロック制御回路101c4(伝搬抑制回路の一例)を備える。
SLICE101b1は、LUT101b11、FF101b12を備える。
【0018】
CB102aは、CRCエラー検出回路102a3(障害検出回路の一例)を備える。
CB102bは、CRCエラー検出回路102b3(障害検出回路の一例)を備える。
CB102cは、CRCエラー検出回路102c3(障害検出回路の一例)を備える。
SWB103は、CRCエラー検出回路1033(障害検出回路の一例)を備える。
【0019】
SRAM104aは、LB101aに関するSeverity情報104ai1、コンフィギュレーション制御データ104ai2、CRC情報104ai3、クロック停止指示ルーティング情報104ai4を記憶する。Severity情報は、SRAMの書き直しを判断するための情報である。例えば、Verilog HDLの記述の中で、本来コメントである//部分に特定のコメント文(図5に示す例では、SEVERITYが文頭)をコンパイル指示子として、//SEVERITY_FATAL_BEGINから//SEVERITY_ENDまのでの区間に記述した機能を制御するSRAMが故障した時、FPGAシステム1における回路がどのように動作すべきかをユーザが予めVerilog HDLで記述している。Verilog HDLのコンパイラが、//部分の特定文字列のコンパイル指示子を解釈し、FPGAのSRAMに書き込むデータを作成する時、図4に示すようなSeverity情報を作成する。Severity情報は、FPAGのコンフィギュレーション時に、Verilog HDLで記述された回路を制御する情報を記憶しているSRAMと同一のSRAMに記録される。Verilog HDLで記述された動作を実行するための制御情報が書き込まれたSRAMにおいてCRCエラーが発生した場合、後述する再コンフィギュレーション制御回路201によって、Severity情報に基づいて、動作(具体的には、Correctableエラー、Recoverableエラー、Fatalエラーのいずれを報告するか、SRAMの再書き込みを行うか否か、clockを停止するか否か)が制御される。コンフィギュレーション制御データは、FPGAシステム1が起動されコンフィギュレーションプログラムが実行されたときに、FPGA10の構成を決定するためのコンフィギュレーションデータを用いてルーティングを制御するデータである。コンフィギュレーション制御データにより、コンフィギュレーションデータがLB構成信号104as2としてLB101aに転送される。CRC結果は、CRCエラー検出回路によるルーティングの正当性のチェックにおけるCRCのエラーの検出結果を示す情報である。クロック停止指示ルーティング情報は、CRCエラー検出回路によりCRCのエラーが検出された場合にクロックを停止させるルーティングを示す情報である。
【0020】
SRAM104bは、CB102bに関するSeverity情報104bi1、コンフィギュレーション制御データ104bi2、CRC情報104bi3、クロック停止指示ルーティング情報104bi4を記憶する。
【0021】
SRAM104cは、LB101bに関するSeverity情報104ci1、コンフィギュレーション制御データ104ci2、CRC情報104ci3、クロック停止指示ルーティング情報104ci4を記憶する。
【0022】
SRAM104dは、SWB103に関するSeverity情報104di1、コンフィギュレーション制御データ104di2、CRC情報104di3、クロック停止指示ルーティング情報104di4を記憶する。
【0023】
SRAM104eは、CB102cに関するSeverity情報104ei1、コンフィギュレーション制御データ104ei2、CRC情報104ei3、クロック停止指示ルーティング情報104ei4を記憶する。
【0024】
SRAM104fは、LB101cに関するSeverity情報104fi1、コンフィギュレーション制御データ104fi2、CRC情報104fi3、クロック停止指示ルーティング情報104fi4を記憶する。
【0025】
データバス105aは、LB101aとCB102bとの間に設けられる。データバス105aは、LB101aとCB102bとの間でデータを伝送する。
【0026】
データバス105bは、CB102bとSWB103との間に設けられる。データバス105bは、CB102bとSWB103との間でデータを伝送する。
【0027】
データバス105cは、SWB103とCB102cとの間に設けられる。データバス105cは、SWB103とCB102cとの間でデータを伝送する。
【0028】
データバス105dは、CB102aとSWB103との間に設けられる。データバス105dは、CB102aとSWB103との間でデータを伝送する。
【0029】
データバス105eは、LB101bとCB102cとの間に設けられる。データバス105eは、LB101bとCB102cとの間でデータを伝送する。
【0030】
データバス105fは、CB102cとLB101cとの間に設けられる。データバス105fは、CB102cとLB101cとの間でデータを伝送する。
【0031】
データバス105gは、SWB103と他のCBとの間に設けられる。データバス105fは、SWB103と他のCBとの間でデータを伝送する。
【0032】
データバス105hは、LB101aとCB102aとの間に設けられる。データバス105fは、LB101aとCB102aとの間でデータを伝送する。
【0033】
データバス105iは、CB102aとLB101bとの間に設けられる。データバス105fは、CB102aとLB101bとの間でデータを伝送する。
【0034】
データバス105jは、CB102aと他のSWBとの間に設けられる。データバス105fは、CB102aと他のSWBとの間でデータを伝送する。
【0035】
CLB101aが備えるSLICE101a1内のLUT101a11とFFF101a12の回路構成は、SRAM104aが記憶するコンフィギュレーション制御データ104ai2を用いて制御される。SRAM104aは、ルーティングを決定するコンフィギュレーションデータの正当性をチェックのためのCRC情報104ai3を記憶する。本実施形態では、これらの情報に加えて、上述のように、LB101b、101c、CB102a、102b、102c、SWB103それぞれに対応するSRAMがSeverity情報、コンフィギュレーション制御データ、CRC結果を記憶する。また、SRAMは、SRAMに対応するLB101b、101c、CB102a、102b、102c、SWB103と論理的に関連するその他のLB、CB、SWBなどへのクロックの供給を停止させるルーティングの情報を示すクロック停止指示ルーティング情報を記憶する。
【0036】
クロック制御回路101a4は、FPGA10が備えるSLICE101a1、SLICE101a2、CRCエラー検出回路101a3、及び、SLICE101a1、101a2におけるクロック信号の供給を制御する回路である。
CRCエラー検出回路101a3は、LB101aが備えるSRAM104aに記憶されたCRC情報104ai3に基づいて、Severity情報104ai1、コンフィギュレーション制御データ104ai2をチェックする。
CRCエラー検出回路101a3は、SRAMに書き込まれた、コンフィギュレーション制御データと、クロックルーティング情報と、Severity情報とについて、CRC情報を使用してCRCチェックを行う。CRCエラー検出回路101a3は、CRCエラーが無ければ正常に動作していると判定する。また、CRCエラー検出回路101a3は、CRCエラーを検出した場合、Severity情報に従って、障害を報告するか否か、SRAMの再書き込みを行うか否か、クロックを停止するか否かを判定し、判定した内容の処理を実施する。
【0037】
CRCエラー検出回路101a3は、CRCエラーを検出した場合、CRCエラーが検出されたSRAMが記憶するSeverity情報に応じて、接続されているクロック制御回路101a4、101b4、10101c4にクロック停止指示信号101a3s2を送信する。クロック制御回路101a4、101b4、10101c4は、クロック停止指示信号101a3s2を受信すると、SLICEへのクロック信号の供給を停止させる。
【0038】
ここで、クロック停止指示信号101a3s2のルーティングの制御について説明する。クロック停止指示ルーティング情報104ai4は、FPGA10のコンフィギュレーションデータのソースとなるRTL(Register Transfer Level)で記述された回路情報をコンフィギュレーションデータにコンパイルする処理の中で作成される。クロック停止指示ルーティング情報104ai4は、RTLで記述された回路情報が示す論理接続とコンフィギュレーションデータがマッピングされるLBの位置とに基づいて、論理的に関連するLBにクロック停止指示信号がルーティングされるようにコンパイラが判定して作成される。
例えば、コンパイラは、一定の距離の範囲内に存在するLBへのパスをルーティングする。また、例えば、コンパイラは、一定の配線町の範囲内で接続されているLBへのパスをルーティングする。
【0039】
CB102bは、SRAM104bが記憶するクロック停止指示ルーティング情報に基づいて制御される。CB102bは、図2に示すように、CB102bに接続されるデータバス105a、105bの信号及びその他のLB、CB、SWBなどへのデータバスの信号の接続を、SRAM104b内のコンフィギュレーション制御データ104bi2により制御する。クロック停止指示信号101a3s2のCB102bにおけるルーティングは、CB102bにおけるルーティングを示すSRAM104bが記憶するクロック停止指示ルーティング情報104bi4に基づいて制御される。
【0040】
クロック停止指示信号101a3s2は、データバス105b、105c、105d、その他のLB、CB、SWBなどからのデータバス信号が接続されるSWB103と、データバス105c、105e、105fの信号が接続されるCB102cを経由して、LB101aと論理的に関連するLB101b及びLB101cのクロック制御回路101b4、101c4に送出される。クロック制御回路101b4、101c4は、クロック停止指示信号101a3s2を受けると、自身が供給しているSLICEへのクロック信号の供給を停止する。
以上、クロック停止指示信号101a3s2のルーティングの制御についての説明である。
【0041】
CB102aは、LB101aへのデータバス105hの接続、LB101bへのデータバス105iの接続、SWB103へのデータバス105dの接続、その他のSWBへのデータバス105jの接続を制御する。
再コンフィギュレーション制御回路201は、FPGA10が備える複数のSRAMが記憶するCRC結果をCRCエラー検出信号101a3s1、102b3s1として受けるとともに、複数のSRAMが記憶するSeverity情報をSeverity情報信号104as1、104as4として受ける。再コンフィギュレーション制御回路201は、CRCエラー検出信号101a3s1、102b3s1とSeverity情報信号104as1、104as4を受けると、CRCエラーが発生したSRAMのSeverityに応じてエラー発生Severity報告信号201s1をFPGA10の外部に通知する。
【0042】
また、再コンフィギュレーション制御回路201は、CRCエラーが発生したSRAMが記憶するfpga0の構成部分に応じて、故障したブロックの番号を通知する故障ブロック番号通知信号201s3をコンフィギュレーションデータアドレステーブル202に送出する。なお、故障ブロック番号通知信号201s3は、図3に示すような信号である。
【0043】
更に、再コンフィギュレーション制御回路201は、CRCエラーが発生したSRAMのSeverity情報に応じて、故障したSRAMの再書き込みを実施するか否かを判定する。例えば、再コンフィギュレーション制御回路201は、CRCエラーが発生したSRAMについて、図4で示されるSeverity情報のReconfig bitが1である場合、SRAMの再書き込みを行うと判定する。また、再コンフィギュレーション制御回路201は、CRCエラーが発生したSRAMについて、Reconfig bitが0である場合、SRAMの再書き込みを行わないと判定する。再コンフィギュレーション制御回路201は、SDRAM書き込み指示信号201s2を、SRAMコンフィギュレーションデータ書き込み回路204に送出する。
なお、Severity情報としては、図4に示すように、コンフィギュレーションデータによって構成される回路の論理の重要性を示すFatalレベル、Recoverableレベル、Correctableレベルのいずれかが設定される。Fatalレベルとは、回復できない致命的なレベルのことである。Recoverableレベルとは、回復できるレベルのことである。Correctableレベルとは、正しく直すことが可能なレベルのことである。
【0044】
CRCエラーが発生してSRAMに設定されたSeverity情報がFatalレベルである場合、再コンフィギュレーション制御回路201は、Fatalレベルのエラーが発生したことをFPGA10の外部に通知し、クロック信号を停止し、SRAMが記憶する情報を書き直す。
【0045】
また、CRCエラーが発生してSRAMに設定されたSeverity情報がRecoverableレベルである場合、再コンフィギュレーション制御回路201は、Recoverableレベルのエラーが発生したことをFPGA10の外部に通知し、SRAMが記憶する情報を書き直す。
【0046】
また、CRCエラーが発生してSRAMに設定されたSeverity情報がCorrectableレベルである場合、再コンフィギュレーション制御回路201は、Correctableレベルのエラーが発生したことをFPGA10の外部に通知し、SRAMが記憶する情報を書き直す。
【0047】
Severity情報は、図5に示すように、一般的にプラグマ、または、デレクティブと呼ばれるコンパイラ指示子によって記述される。図5に示すSeverity情報は、Verilog HDL(Hardware Description Language)によりRTLで記述された例である。
図5に示す例では、”//SEVERITY_FATAL_BEGIN”から“//SEVERITY_END”までの論理を決定するSeverity情報がFatalレベルの記載である。
また、”//SEVERITY_CORRECTABLE_BEGIN”から“//SEVERITY_END”までの論理を構成するSeverity情報がCorrectableレベルの記載である。
また、”//SEVERITY_RECOVERABLE_BEGIN”から“//SEVERITY_END”までの論理を構成するSeverity情報がRecoverableレベルの記載である。ここに記載されているコンパイラ指示子によりコンパイラがSeverity情報を解釈し、図4に示すように、SRAMが記憶する情報が書き直される。
【0048】
コンフィギュレーションデータアドレステーブル202は、FPGA10が備えるSRAMに書き込むコンフィギュレーションデータのアドレスとSRAMの番号との対応表を含む。SRAMに故障が発生し、SDRAM書き込み指示信号201s2によりSRAMの再書き込みが指示された場合、再コンフィギュレーション制御回路201は、再コンフィギュレーション制御回路201から送出される故障した故障ブロック番号通知信号201s3をインディックスとして、コンフィギュレーションデータアドレステーブル202を索引する。そして、その索引結果としてコンフィギュレーションデータアドレステーブル202から再コンフィギュレーション対象情報202i1と再コンフィギュレーションデータアドレス情報202i2がSRAMコンフィギュレーションデータ書き込み回路204に出力される。
【0049】
再コンフィギュレーションデータアドレス情報202i2をアドレス情報として、SRAMの書き直しに必要な再コンフィギュレーションデータ203i1がコンフィギュレーションデータストレージ203から読み出される。再コンフィギュレーション対象情報202i1と、コンフィギュレーションデータストレージ203から読み出された再コンフィギュレーションデータ203i1と、SDRAM書き込み指示信号201s2とが、SRAMコンフィギュレーションデータ書き込み回路204に入力される。SRAMコンフィギュレーションデータ書き込み回路204は、対象の故障SDRAMのみに書き込みデータ及び書き込み制御信号204s1を送る。対象の故障SDRAMのみにSRAMデータの書き込みが行われることにより、FPGA10のコンフィギュレーションデータの復旧を完了する。
【0050】
次に、本発明の一実施形態によるFPGAシステム1の処理について説明する。
ここでは、図6に示すFPGAシステム1の処理フローについて説明する。
【0051】
FPGAシステム1の動作中に、FPGA10が備えるLB101aの回路構成を制御するコンフィギュレーション制御データを記憶するSRAM104aにおいてCRCエラーエラー(この例では、ソフトエラー)が発生したとする。SRAM104aにおいてCRCエラーが発生すると(ステップS1)、LB101aが備えるCRCエラー検出回路101a3は、SRAM104aのCRCエラーを検出する(ステップS2)。
【0052】
LB101aにマッピングされた論理ブロックは、LB101bとLB101cである。CB102b、SWB103、CB102c、LB101b、LB101cを経由するクロック停止指示信号101a3s2が伝送される経路は、図2に示すように、予めルーティングされている。LB101aのクロック制御回路101a4においてLB101aのクロック信号が停止されると、それと同時に、CB102b、SWB103、CB102cを経由してクロック停止指示信号101a3s2は、クロック制御回路101b4、101c4に送出される。クロック停止指示信号101a3s2を受信したクロック制御回路101b4、101c4は、LB101bとLB101cのクロック信号を停止させる(ステップS3)。
このクロック停止指示信号101a3s2に応じて、クロック制御回路101b4、101c4が、LB101bとLB101cのクロック信号を停止させることにより、故障したCLBから不正な状態がFPGA10内を伝搬することを最小限に抑えることができる。
【0053】
CRCエラー検出回路101a3は、CRCエラー検出信号101a3s1を、LB101aから再コンフィギュレーション制御回路201に送出する。再コンフィギュレーション制御回路201は、図4に示すように、CRCエラー(この例では、ソフトエラー)が発生したSRAM104aが記憶するSeverity情報に応じたSeverity情報信号104as1と、障害の重要度に応じたエラー発生Severity報告信号201s1とをFPGA10の外部に通知する(ステップS4)。なお、Severity情報には誤り訂正符号(ECC)が付加され、Severity情報の正当性は確保されている。また、再コンフィギュレーション制御回路201は、障害の重要度に応じたSDRAM書き込み指示信号201s2をSRAMコンフィギュレーションデータ書き込み回路204に送出する。再コンフィギュレーション制御回路201は、受信したCRCエラー検出信号101a3s1に基づいて、故障したブロックを判断し故障ブロックの対応する故障ブロック番号通知信号201s3をコンフィギュレーションデータアドレステーブル202に送出する。コンフィギュレーションデータアドレステーブル202には、FPGAにコンフィギュレーションデータを書き込むときに、SRAMからロードするコンフィギュレーションデータのアドレスに対応するSRAMのブロック番号が書き込まれている。
【0054】
SRAMにおいてCRCエラー(この例では、ソフトエラー)が発生した場合、CRCエラー検出回路101a3のCRCエラー検出信号101s3s1、または、CRCエラー検出回路102b3のCRCエラー検出信号102b3s1が再コンフィギュレーション制御回路201に送られる。再コンフィギュレーション制御回路201は、どのCRCエラー検出回路でエラーが発生したか判定し、故障ブロック番号通知信号201s3をコンフィギュレーションデータアドレステーブル202に送る。コンフィギュレーションデータアドレステーブル202は、故障ブロック番号通知信号201s3をインディックスとしてコンフィギュレーションデータアドレステーブル202を索引する(ステップS5)。そして、再コンフィギュレーション対象情報202i1と再コンフィギュレーションデータアドレス情報202i2が出力される。
【0055】
本実施形態における故障の例では、再コンフィギュレーション対象情報202i1としてSRAMブロック番号SRAM101aと、再コンフィギュレーションデータアドレス情報202i2としてSRAM104aに書き込むコンフィギュレーションデータのアドレスとが、コンフィギュレーションデータアドレステーブル202に出力される。再コンフィギュレーションデータアドレス情報202i2は、FPGA10の内部、または、fpga0の外部のFlashメモリまたはEPROM(Erasable Programmable Read Only Memory)などのコンフィギュレーションデータストレージ203に送出される。そして、コンフィギュレーションデータストレージ203からSRAM104aに書き込む再コンフィギュレーションデータ203i1が読み出される(ステップS6)。
本実施形態における故障の例では、再コンフィギュレーションデータ203i1と再コンフィギュレーション対象情報202i1、すなわち、SRAM101aのブロック番号とSDRAM書き込み指示信号201s2とがSRAMコンフィギュレーションデータ書き込み回路204に送信される。SRAMコンフィギュレーションデータ書き込み回路204は、故障したSRAM104aにコンフィギュレーションデータを書き込み直すことにより(ステップS7)、LB101aに対応するSRAM104aが記憶するデータを復旧させる(ステップS8)。SRAM104aが記憶するデータが復旧することにより、CRCエラーが解消され、クロック信号の供給が再開されて(ステップS9)、FPGA10の動作が再開される。
【0056】
以上、本発明の一実施形態によるFPGAシステム1について説明した。
FPGAシステム1において、CRCエラー検出回路101a3は、SRAM104aのCRCエラーを検出する。クロック制御回路101b4、101c4は、SRAM104aを備えるLB101aにマッピングされた論理ブロックであるLB101bとLB101cのクロック信号を停止させる。
こうすることで、FPGAシステム1は、ブロック単位でクロック信号を停止させることができる。その結果、SRAMにおいてソフトエラーが発生した場合に、FPGAシステム1は、例えば、特許文献2などに記載の発明のような、セルアレイ単位でクロック信号を停止した場合に比べて、小さな規模でクロック信号を停止させることができ、回路構成を適切な構成にする処理も変更が少ないため早急に行うことができる。
【0057】
本発明の実施形態による最小構成の制御装置200について説明する。
制御装置200は、図7に示すように、障害検出回路210、伝搬抑制回路220を備える。
障害検出回路210は、SRAMが記憶するCRC情報に基づいて前記SRAMにおけるソフトエラーを検出する。
伝搬抑制回路220は、障害検出回路210が前記ソフトエラーを検出した場合に、前記ソフトエラーに関連するブロック単位でクロック信号を停止させる。
【0058】
次に、本発明の実施形態による最小構成の制御装置200の処理について説明する。
障害検出回路210は、SRAMが記憶するCRC情報に基づいて前記SRAMにおけるソフトエラーを検出する(ステップS11)。
伝搬抑制回路220は、障害検出回路210が前記ソフトエラーを検出した場合に、前記ソフトエラーに関連するブロック単位でクロック信号を停止させる(ステップS12)。
【0059】
以上、本発明の実施形態による最小構成の制御装置200について説明した。
このように、制御装置200を構成することで、SRAMにおいてソフトエラーが発生した場合に、制御装置200は、例えば、特許文献2などに記載の発明のような、セルアレイ単位でクロック信号を停止した場合に比べて、小さな規模でクロック信号を停止させることができ、回路構成を適切な構成にする処理も変更が少ないため早急に行うことができる。
【0060】
なお、本発明の実施形態における処理は、適切な処理が行われる範囲において、処理の順番が入れ替わってもよい。
【0061】
本発明の実施形態におけるSRAM104a、104b、104c、104d、104e、104f、コンフィギュレーションデータアドレステーブル202、コンフィギュレーションデータストレージ203、その他の記憶装置(レジスタ、ラッチを含む)のそれぞれは、適切な情報の送受信が行われる範囲においてどこに備えられていてもよい。また、本発明の実施形態におけるSRAM104a、104b、104c、104d、104e、104f、コンフィギュレーションデータアドレステーブル202、コンフィギュレーションデータストレージ203、その他の記憶装置のそれぞれは、適切な情報の送受信が行われる範囲において複数存在しデータを分散して記憶していてもよい。
【0062】
本発明の実施形態について説明したが、上述のFPGA10、コンフィギュレーション回路20、その他の制御装置は内部に、コンピュータシステムを有していてもよい。そして、上述した処理の過程は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータが読み出して実行することによって、上記処理が行われる。コンピュータの具体例を以下に示す。
【0063】
図8は、少なくとも1つの実施形態に係るコンピュータの構成を示す概略ブロック図である。
コンピュータ5は、図8に示すように、CPU6、メインメモリ7、ストレージ8、インターフェース9を備える。
例えば、上述のFPGA10、コンフィギュレーション回路20、その他の制御装置のそれぞれは、コンピュータ5に実装される。そして、上述した各処理部の動作は、プログラムの形式でストレージ8に記憶されている。CPU6は、プログラムをストレージ8から読み出してメインメモリ7に展開し、当該プログラムに従って上記処理を実行する。また、CPU6は、プログラムに従って、上述した各記憶部に対応する記憶領域をメインメモリ7に確保する。
【0064】
ストレージ8の例としては、HDD(Hard Disk Drive)、SSD(Solid State Drive)、磁気ディスク、光磁気ディスク、CD−ROM(Compact Disc Read Only Memory)、DVD−ROM(Digital Versatile Disc Read Only Memory)、半導体メモリ等が挙げられる。ストレージ8は、コンピュータ5のバスに直接接続された内部メディアであってもよいし、インターフェース9または通信回線を介してコンピュータ5に接続される外部メディアであってもよい。また、このプログラムが通信回線によってコンピュータ5に配信される場合、配信を受けたコンピュータ5が当該プログラムをメインメモリ7に展開し、上記処理を実行してもよい。少なくとも1つの実施形態において、ストレージ8は、一時的でない有形の記憶媒体である。
【0065】
また、上記プログラムは、前述した機能の一部を実現してもよい。さらに、上記プログラムは、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるファイル、いわゆる差分ファイル(差分プログラム)であってもよい。
【0066】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例であり、発明の範囲を限定しない。これらの実施形態は、発明の要旨を逸脱しない範囲で、種々の追加、省略、置き換え、変更を行ってよい。
【符号の説明】
【0067】
1・・・FPGAシステム
5・・・コンピュータ
6・・・CPU
7・・・メインメモリ
8・・・ストレージ
9・・・インターフェース
10・・・FPGA
20・・・コンフィギュレーション回路
101a、101b、101c・・・LB(Logic Block)
101a1、101a2、101b1、101b2、101c1、101c2・・・SLICE
101a3、101b3、101c3・・・CRC(Cyclic Redundancy Check)エラー検出回路
101a4、101b4、101c4・・・クロック制御回路
101a11、101b11・・・ルックアップテーブル
101a12、101b12・・・フリップフロップ
102a、102b、102c・・・CB(Connection Block)
102a3、102b3、102c3、1033・・・CRCエラー検出回路
103・・・SWB(Switch Block)
104a、104b、104c、104d、104e、104f・・・SRAM(Static Random Access Memory)
105a、105b、105c、105d、105e、105f・・・データバス
200・・・制御装置
210・・・障害検出回路
220・・・伝搬抑制回路
【要約】
【課題】SRAMにソフトエラーが発生した場合に、SRAMにおけるソフトエラーに関連するできるだけ小規模な回路へのクロック信号のみを停止させることのできる制御装置を提供する。
【解決手段】制御装置は、SRAMが記憶するCRC情報に基づいて前記SRAMにおけるソフトエラーを検出する障害検出回路と、前記障害検出回路が前記ソフトエラーを検出した場合に、前記ソフトエラーに関連するブロック単位でクロック信号を停止させる伝搬抑制回路と、を備える。
【選択図】図7
図1
図2
図3
図4
図5
図6
図7
図8
図9