JPWO2017029766A1 - 情報処理回路 - Google Patents

情報処理回路 Download PDF

Info

Publication number
JPWO2017029766A1
JPWO2017029766A1 JP2017535224A JP2017535224A JPWO2017029766A1 JP WO2017029766 A1 JPWO2017029766 A1 JP WO2017029766A1 JP 2017535224 A JP2017535224 A JP 2017535224A JP 2017535224 A JP2017535224 A JP 2017535224A JP WO2017029766 A1 JPWO2017029766 A1 JP WO2017029766A1
Authority
JP
Japan
Prior art keywords
circuit
simultaneous linear
information processing
input signal
linear equation
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
JP2017535224A
Other languages
English (en)
Other versions
JP6550465B2 (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
Publication of JPWO2017029766A1 publication Critical patent/JPWO2017029766A1/ja
Application granted granted Critical
Publication of JP6550465B2 publication Critical patent/JP6550465B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/16Error detection or correction of the data by redundancy in hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/11Complex mathematical operations for solving equations, e.g. nonlinear equations, general mathematical optimization problems
    • G06F17/12Simultaneous equations, e.g. systems of linear equations

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Operations Research (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • Algebra (AREA)
  • Quality & Reliability (AREA)
  • Complex Calculations (AREA)
  • Retry When Errors Occur (AREA)

Abstract

入力信号を受け取る演算回路と、前記入力信号を受け取る検算回路と、を有し、前記演算回路は、前記入力信号に基づき演算した数値解を前記検算回路へ出力し、前記検算回路は、前記演算回路から受け取った前記数値解を復元後入力信号へ復元し、復元した前記復元後入力信号と受け取った前記入力信号とに基づきエラーの有無を判定し、エラーの有無の判定結果を出力することで、回路を2重化するよりも少ない回路量でエラー検出が可能になる。

Description

本発明は、情報処理回路に関する。
近年、半導体のビット内情報が反転するシングルイベントアップセットの問題が顕在化している。これは半導体製造技術の進歩にともなうプロセスルールの微細化により、半導体の臨界電荷量が減少しているためである。臨界電荷量とはデータの反転を引き起こすために必要な電荷量であり、例えば高エネルギーの中性子放射線が半導体に衝突し反応することで臨界電荷量を上回る。臨界電荷量を上回るとデータ(ビット内情報)が反転し、シングルイベントアップセットが生じる。産業応用を目的とする組込システムには高い信頼性が求められており、演算回路上に発生するシングルイベントアップセットの影響を低減するための技術開発が必要となる。特開平5−308399号公報(特許文献1)には、同一の回路を2つ並べて並列に動作させ、その出力を比較することで回路上に発生したエラーを検出する技術が開示されている。
特開平5−308399号公報
特許文献1に開示されている技術では、エラー検出により故障を未然に防ぐことができ、システムの信頼性が向上する。しかしながら、特許文献1に開示されている技術では、回路を2重化することで2倍の回路量が必要となり、ハードウェアの実装コストが大きくなるという問題点あった。本発明の目的は、回路を2重化するよりも少ない回路量でエラー検出が可能な情報処理回路を提供することである。
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次の通りである。
本発明の一実施の形態の情報処理回路は、入力信号を受け取る演算回路と、前記入力信号を受け取る検算回路とを有する。また、前記演算回路は、前記入力信号に基づき演算した数値解を前記検算回路へ出力する。また、前記検算回路は、前記演算回路から受け取った前記数値解を復元後入力信号へ復元し、復元した前記復元後入力信号と受け取った前記入力信号とに基づきエラーの有無を判定し、エラーの有無の判定結果を出力する。
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。
本発明の代表的な実施の形態によれば、回路を2重化するよりも少ない回路量でエラー検出が可能な情報処理回路を実現できる。
実施の形態1における情報処理回路の構成例の概要を示す図である。 実施の形態1における連立一次方程式演算回路の構成例の概要を示す図である。 実施の形態1における連立一次方程式検算回路の構成例の概要を示す図である。 実施の形態1における情報処理回路のタイミングチャートである。 実施の形態1における情報処理回路のタイミングチャートである。 実施の形態1における情報処理回路のタイミングチャートである。 実施の形態1における情報処理回路のタイミングチャートである。 実施の形態1における情報処理回路の動作を示す状態遷移図である。 実施の形態1における連立一次方程式検算回路の動作を示す状態遷移図である。 実施の形態1における情報処理回路による処理の概要を示すフローチャートである。 実施の形態1における連立一次方程式演算回路による処理の概要を示すフローチャートである。 実施の形態1における連立一次方程式検算回路による処理の概要を示すフローチャートである。 実施の形態2における連立一次方程式演算回路の構成例の概要を示す図である。 実施の形態2における立一次方程式演算回路によるCG法を用いた処理の概要を示すフローチャートである。 実施の形態3における連立一次方程式演算回路の構成例の概要を示す図である。 実施の形態3における連立一次方程式演算回路によるSOR法を用いた処理の概要を示すフローチャートである。 実施の形態4における連立一次方程式演算回路の構成例の概要を示す図である。 実施の形態4における連立一次方程式演算回路によるLU分解を用いた処理の概要を示す図である。 実施の形態5における情報処理回路の構成例の概要を示す図である。 実施の形態5における非線形方程式演算回路の構成例の概要を示す図である。 実施の形態5における非線形方程式検算回路の構成例の概要を示す図である。 実施の形態5における情報処理回路による処理の概要を示すフローチャートである。 実施の形態5における非線形方程式演算回路による処理の概要を示すフローチャートである。 実施の形態5における非線形方程式検算回路による処理の概要を示すフローチャートである。 実施の形態6における情報処理回路の構成例の概要を示す図である。 実施の形態6における情報処理回路の構成例の概要を示す図である。 実施の形態6における情報処理回路の構成例の概要を示す図である。 実施の形態7における情報処理回路の構成例の概要を示す図である。 実施の形態7における情報処理回路の構成例の概要を示す図である。
(実施の形態1)
以下、本発明の実施の形態1を、図1〜図12を用いて詳細に説明する。なお、実施の形態を説明するための全図において、同一部には原則として同一の符号を付し、その繰り返しの説明は省略する。
<全体構成>
図1は、実施の形態1における情報処理回路100の構成例の概要を示す図である。図1に示されるように、情報処理回路100は、入力線101と、出力線102と、通知線103と、連立一次方程式演算回路104と、連立一次方程式検算回路105とを有する。
入力線101は、クロックを入力するためのCLKと、リセット信号を入力するためのRSTと、演算開始信号を入力するためのIVLDと、入力信号を入力するためのIDATとからなる。
入力線101は、情報処理回路100に入ると分岐し、連立一次方程式演算回路104と連立一次方程式検算回路105とに接続する。すなわち、入力線101のCLKとRSTとIVLDとIDATは、それぞれが情報処理回路100の内部で分岐し、連立一次方程式演算回路104と連立一次方程式検算回路105とに接続する。
連立一次方程式演算回路104と接続する出力線102は、OVLDとODATとからなる。また、出力線102は、情報処理回路100の内部で分岐し、一方が情報処理回路100の上位システムに接続し、他方が連立一次方程式検算回路105に接続する。すなわち、出力線102のOVLDとODATとは、それぞれが情報処理回路100の内部で分岐し、一方が情報処理回路100の上位システムに接続し、他方が連立一次方程式検算回路105に接続する。
連立一次方程式演算回路104は、入力線101を介して、入力信号である連立一次方程式の係数行列Aと右辺ベクトルbとが出力され、以下の連立一次方程式(式(1))を解くことで数値解x’を演算する。
式(1):Ax=b
そして、連立一次方程式演算回路104は、入力信号に基づき演算した数値解x’を出力信号として出力線102(連立一次方程式検算回路105と接続する出力線)を介して連立一次方程式検算回路105へ出力するとともに、数値解x’を出力線102(上位システムと接続する出力線)を介して情報処理回路100の上位システムへ出力する。
連立一次方程式検算回路105は、入力線101を介して入力信号である連立一次方程式の係数行列Aと右辺ベクトルbとを受け取る。また、連立一次方程式検算回路105は、出力線102を介して、連立一次方程式演算回路104によって演算された数値解x’を受け取る。連立一次方程式検算回路105は、これら入力データである、係数行列Aと右辺ベクトルbと数値解x’を用いて、式(2)に表される連立一次方程式の検算を行う。
式(2):||b−Ax’||<epsilon
連立一次方程式検算回路105は、連立一次方程式演算回路104から受け取った数値解x’を復元後入力信号である右辺ベクトルb’へと復元し、復元した右辺ベクトルb’と、入力信号の右辺ベクトルbとに基づき連立一次方程式の検算を行うことで、エラーの有無を判定する。そして、連立一次方程式検算回路105は、エラーの有無の判定結果を示すエラー判定結果を、通知線103を介して上位システムへ出力する。例えば、連立一次方程式検算回路105は、係数行列Aと数値解x’との行列ベクトル積の演算を行うことで右辺ベクトルb’を復元し、入力信号として予め受け取っていた右辺ベクトルbと復元した右辺ベクトルb’とを比較する。また、連立一次方程式検算回路105は、演算で得られた右辺ベクトルb’と受け取った右辺ベクトルbを比較するために、それらの差分のノルム||b−b’||を演算し、演算したノルム||b−b’||と、許容誤差epsilonと比較する。
ここで、許容誤差epsilonを導入した理由は、実数演算が丸め誤差の影響を受けるためである。連立一次方程式などの実数演算の数値解x’は真の解xとは異なり、また実数演算によって復元した右辺ベクトルb’は本来の右辺ベクトルbと異なる。したがって許容誤差epsilonを導入することで、数値解x’が真の解xの近傍に存在することを上述した式(2)により評価する。連立一次方程式検算回路105は、式(2)が成立する場合(||b−b’||が、許容誤差epsilon未満である場合)には数値解x’に誤りがなく、したがって連立一次方程式演算回路104にエラーが無いと判定する。逆に式(2)が成立しない場合(||b−b’||が、許容誤差epsilon以上である場合)には、連立一次方程式検算回路105は、数値解x’に誤りが存在し、したがって連立一次方程式演算回路104にエラーが有ると判定する。連立一次方程式検算回路105は、エラーの有無の判定結果を示すエラー判定結果を、通知線103を介して上位システムへ出力する。
<詳細構成>
図2は、実施の形態1における連立一次方程式演算回路104の構成例の概要を示す図である。
図2に示されるように、連立一次方程式演算回路104は、連立一次方程式(Ax=b)の係数行列Aと右辺ベクトルbを入力するための入力線101と、数値解x’を出力するための出力線102と、バス110と、連立一次方程式演算制御ユニット111と、演算ユニット112と、演算データ保持ユニット113とを有する。
入力線101と出力線102とは、バス110に接続されている。また、連立一次方程式演算制御ユニット111と演算ユニット112と演算データ保持ユニット113とはバス110を介して相互に接続されている。
演算ユニット112は、数値解x’を求めるのに必要な処理(後述する、S142〜S144、S147、S148の処理)を行うための、行列ベクトル積演算ユニット114とスカラーベクトル積演算ユニット115と複数のベクトルの積和演算ユニット116とベクトルの内積演算ユニット117とギブンス回転演算ユニット118と後退代入演算ユニット119とを有する。
演算データ保持ユニット113は、GMRES法演算途中で発生する一次データを保存可能な記憶領域を持ち、連立一次方程式検算回路105の演算データ保持ユニット124と同等の大きさのキュー125を備える。なお、演算データ保持ユニット113が、連立一次方程式検算回路105の演算データ保持ユニット124と同等の大きさのキュー125を備えるのは、連立一次方程式演算回路104と連立一次方程式検算回路105のスループットが同等のためである。
連立一次方程式演算制御ユニット111は、リセット信号や演算開始信号に応じて、後述する図8に示す状態遷移を行うほか、演算データ保持ユニット113に対して入力信号(係数行列Aと右辺ベクトルb)の一時的な保存を行う。
また、連立一次方程式演算制御ユニット111は、連立一次方程式演算回路104による処理(後述、図11)に応じて、演算ユニット112の呼び出しを行い、演算の途中で生じたデータの演算データ保持ユニット113への保存や読み出しを行う。
また、連立一次方程式演算制御ユニット111は、演算の結果として数値解x’が演算されると、演算終了信号とともに数値解x’を出力信号として出力線102から出力させる。
図3は、実施の形態1における連立一次方程式検算回路105の構成例の概要を示す図である。
図3に示されるように、連立一次方程式検算回路105は、連立一次方程式(Ax=b)の係数行列Aと右辺ベクトルbを入力するための入力線101と、連立一次方程式演算回路104が出力する連立一次方程式(Ax=b)の数値解x’を受け取るための出力線102と、連立一次方程式検算回路105がエラー判定結果を上位システムに通知するための通知線103と、バス110と、連立一次方程式検算制御ユニット120と、演算ユニット123と、演算データ保持ユニット124とを有する。
入力線101と出力線102と通知線103とは、バス110に接続されている。また、連立一次方程式検算制御ユニット120と演算ユニット123と演算データ保持ユニット124とは、バス110を介して相互に接続されている。そして、連立一次方程式検算制御ユニット120と演算ユニット123と演算データ保持ユニット124とは、バス110を介して相互に演算データや入出力信号の通信を行う。
演算ユニット123は、エラーの有無を判定するのに必要な処理(後述する、S151の処理)を行うための、行列ベクトル積演算ユニット114と、ベクトルの積和演算ユニット116と、ベクトルの内積演算ユニット117とを有する。
演算データ保持ユニット124は、演算の中間データの記憶領域として機能し、入力信号(係数行列Aと右辺ベクトルb)を蓄積するためのキュー125を備える。
連立一次方程式検算制御ユニット120は、比較ユニット121を含み、比較ユニット121には、許容誤差122が保存されている。
連立一次方程式検算制御ユニット120は、リセット信号1や演算開始信号や演算終了信号に応じて、後述する図9に示す状態遷移を行うほか、演算データ保持ユニット124に対して入力信号や出力信号の一時的な保存と読み出しを行う。
また、連立一次方程式検算制御ユニット120は、連立一次方程式検算回路105による処理(後述、図12)に応じて、演算ユニット123の呼び出しを行い、演算の中間で生じたデータの演算データ保持ユニット124への保存や読み出しを行う。
また、連立一次方程式検算制御ユニット120は、比較結果から情報処理回路100中のエラーの有無を判定し、エラー判定結果を通知線103から出力する。
以下、実施の形態1の情報処理回路100の回路面積について説明する。実施の形態1における連立一次方程式演算回路104の回路面積をSmとし、連立一次方程式検算回路105の回路面積をSvとすると、情報処理回路100の回路面積はSmにSvを加算した値(Sm+Sv)である。また、連立一次方程式演算回路104を2重化した場合の回路面積はSmの2倍(2×Sm)である。
連立一次方程式演算回路104の構成要素である連立一次方程式演算制御ユニット111の回路面積をSm0、演算ユニット112の回路面積をSm1、演算データ保持ユニットの回路面積をSm2とすると次の式(3)が成り立つ。
式(3):Sm=Sm0+Sm1+Sm2
また、連立一次方程式検算回路105の構成要素である連立一次方程式検算制御ユニットの回路面積をSv0、演算ユニット123の回路面積をSv1、演算データ保持ユニットの回路面積をSv2とすると次の式(4)が成り立つ。
式(4):Sv=Sv0+Sv1+Sv2
連立一次方程式演算回路104による処理(後述、図11)と連立一次方程式検算回路105による処理(後述、図12)を比較することで、連立一次方程式検算制御ユニット120よりも連立一次方程式演算制御ユニット111のほうが複雑な演算制御を行っていることがわかる。したがって次の式(5)が成り立つ。
式(5):Sm0>Sv0
また、連立一次方程式演算回路104の演算ユニット112は、連立一次方程式検算回路105の演算ユニット123に対して、複数のベクトルの内積演算ユニット117と、ギブンス回転演算ユニット118と、後退代入演算ユニット119とを有する。したがって次の式(6)が成り立つ。
式(6):Sm1>Sv1
GMRES法では数値解x’を得るためにはk本のベクトルを保存する記憶領域が必要であることがわかっている。これに対して、検算に必要な記憶領域は1本のベクトルが保存できればよい。連立一次方程式演算回路と連立一次方程式検算回路のスループットが等しくキューの大きさが等しいことを考慮すれば、次の式(7)が成り立つ。
式(7):Sm2>Sv2
そして、式(3)、式(4)、式(5)、式(6)、式(7)から、次の式(8)が成り立つ。
式(8):2×Sm>Sm+Sv
したがって、本発明の情報処理回路100の回路面積は、連立一次方程式演算回路104を2重化した回路面積よりも小さい。
なお、本発明の情報処理回路100は連立一次方程式の演算を行った後に連立一次方程式の検算を行うため、エラー検出のための時間が2重化と比較して多い。つまり、実行時間と回路面積にトレードオフの関係があり、その点に留意して設計する必要がある。
<情報処理回路のタイミングチャート>
図4、図5、図6、図7は実施の形態1における情報処理回路100のタイミングチャートであり、各信号の前後関係を示す図である。図4〜図7に示されるように情報処理回路100には入力線101のCLKを介してクロック182が入力されており、このクロック182により上位システムと連立一次方程式演算回路104と連立一次方程式検算回路105は同期して動作する。
図4は入力線101のRSTを介してリセット信号184が上位システムから入力された場合の、情報処理回路100の内部回路である連立一次方程式演算回路104と連立一次方程式検算回路105との初期化の様子を示すタイミングチャートである。リセット信号184を受け取ると、連立一次方程式演算回路104は、記憶領域の初期化185を行う。また、リセット信号184を受け取ると、連立一次方程式検算回路105は、内部の記憶領域の初期化186を行う。これによって、連立一次方程式演算回路104と連立一次方程式検算回路105とが演算可能な状態となる。
図5は、入力線101のIVLDを介して演算開始信号187が上位システムから入力された場合の、連立一次方程式演算回路104が演算を開始する様子を示すタイミングチャートである。演算開始信号187を受け取ると、連立一次方程式演算回路104は、連立一次方程式の演算189を開始するとともに、入力線101のIDATを介して入力信号188すなわち、上述した連立一次方程式(Ax=b)の係数行列Aと右辺ベクトルbとを受け取る。
連立一次方程式検算回路105は、演算開始信号187を受け取ることでアイドル状態183となるとともに、IDATを介して入力信号188(係数行列Aと右辺ベクトルb)を受け取る。
図6は、出力線102のOVLDを介して演算終了信号190が連立一次方程式演算回路104から出力された場合の、連立一次方程式検算回路105が検算を開始する様子を示すタイミングチャートである。連立一次方程式演算回路104が連立一次方程式の演算189を終了することで、連立一次方程式演算回路104は、演算終了信号190を連立一次方程式検算回路105へ出力する。このとき、連立一次方程式検算回路105は、アイドル状態183を終了し、連立一次方程式の検算192を開始する。
連立一次方程式演算回路104は、演算終了信号190を出力した後に出力線102のODATを介して出力信号191すなわち連立一次方程式の数値解x’を、連立一次方程式検算回路105へ出力する。連立一次方程式検算回路105は出力信号191(数値解x’)を受け取った後に連立一次方程式の検算192を行う。
図7は、連立一次方程式検算回路105が連立一次方程式の検算192を終了した場合の、エラー判定結果193を出力する様子を示すタイミングチャートである。連立一次方程式検算回路105は連立一次方程式の検算192の結果からエラー判定結果193を上位システムへ出力する。上位システムはこのエラー判定結果193を受けて出力信号191を用いた処理を続行するか否かを決定する。なお、連立一次方程式検算回路105は、エラーがあると判定する場合のみ、エラーがあることを示すエラー判定結果193を上位システムへ出力するようにしても良い。
<状態遷移>
図8は、実施の形態1における情報処理回路100の動作を示す状態遷移図である。
状態170は、情報処理回路100が動作を停止している、いわば初期状態である。
状態171は、情報処理回路100の連立一次方程式演算回路104および連立一次方程式検算回路105が、それぞれの内部の記憶領域の初期化を行っている初期化状態である。
状態172は、情報処理回路100が、上位システムからの演算開始信号187および入力信号188(係数行列Aと右辺ベクトルb)の入力を待っているアイドル状態である。
状態173は、情報処理回路100の連立一次方程式演算回路104が、演算189を行っている演算中状態である。
状態174は、情報処理回路100の連立一次方程式検算回路105が、検算192を行っている検算中状態である。
状態175は、上位システムが連立一次方程式検算回路105からエラーがあることを示すエラー判定結果193を受け取ったため、情報処理回路100の動作を停止し代替システムによる処理を行っている、フェイルセーフ状態である。このとき情報処理回路100には、シングルイベントアップセットによるエラーが発生している。
状態170(初期状態)にて、情報処理回路100が上位システムからリセット信号184を受け取ることで、状態170(初期状態)から状態171(初期化状態)に状態遷移280する。
状態171(初期化状態)にて、情報処理回路100の連立一次方程式演算回路104および連立一次方程式検算回路105がそれぞれの記憶領域の初期化185を終了することで、自動で状態171(初期化状態)から状態172(アイドル状態)に状態遷移281する。
状態172(アイドル状態)にて、情報処理回路100が上位システムからリセット信号184を受け取ることで、状態172(アイドル状態)から状態171(初期化状態)に状態遷移282する。
状態172(アイドル状態)にて、情報処理回路100が上位システムから演算開始信号187および入力信号188である係数行列Aと右辺ベクトルbとを受け取ることで、状態172(アイドル状態)から状態173(演算中状態)に状態遷移283する。
状態173(演算中状態)にて、情報処理回路100が上位システムからリセット信号184を受け取ることで、状態173(演算中状態)から状態171(初期化状態)に状態遷移284する。
状態173(演算中状態)にて、情報処理回路100の連立一次方程式演算回路104が演算189を終了し、上位システムおよび連立一次方程式検算回路105に演算終了信号190と出力信号(数値解x’)191を出力することで、状態173(演算中状態)から状態174(検算中状態)に状態遷移285する。
状態174(検算中状態)にて、情報処理回路100が上位システムからリセット信号184を受け取ることで、状態174(検算中状態)から状態171(初期化状態)に状態遷移286する。
状態174(検算中状態)にて、情報処理回路100の連立一次方程式検算回路105が検算192を終了し、エラー無とのエラー判定結果193を上位システムに通知することで、自動的に状態174(検算中状態)から状態172(アイドル状態)に状態遷移287する。
状態174(検算中状態)にて、情報処理回路100の連立一次方程式検算回路105が検算192を終了し、エラーがあることを示すエラー判定結果193を上位システムに通知したことで、状態174(検算中状態)から状態175(フェイルセーフ状態)に状態遷移288する。
図9は、実施の形態1における連立一次方程式検算回路105の動作を示す状態遷移図である。
状態160は、連立一次方程式検算回路105が動作せず停止している、いわば初期状態である。
状態161は、連立一次方程式検算回路105が記憶領域の初期化185を行っている初期化状態である。
状態162は、連立一次方程式検算回路105が上位システムからの演算開始信号187および入力信号188の入力を待っているアイドル状態(アイドル状態A)である。なお、状態162(アイドル状態A)では、情報処理回路100が有する連立一次方程式演算回路104および連立一次方程式検算回路105は、上位システムからの演算開始信号187および入力信号(係数行列Aと右辺ベクトルb)188の入力を待つ。
状態163は、連立一次方程式検算回路105が連立一次方程式演算回路104からの演算終了信号190および出力信号191の入力を待っているアイドル状態(アイドル状態B)である。なお、状態163(アイドル状態B)では、情報処理回路100が有する連立一次方程式演算回路104が出力信号(数値解x’)191を演算しており、連立一次方程式検算回路105は連立一次方程式演算回路104からの演算終了信号190および出力信号191の入力を待っている。
状態164は、連立一次方程式検算回路105が検算192を行い、上述した式(2)の判定を行っている検算中状態である。
状態160(初期状態)にて、連立一次方程式検算回路105が上位システムからリセット信号184を受け取ることで、状態160(初期状態)から状態161(初期化状態)に状態遷移290する。
状態161(初期化状態)にて、連立一次方程式検算回路105が記憶領域の初期化185を終了することで、自動で状態161(初期化状態)から状態162(アイドル状態A)に状態遷移291する。
状態162(アイドル状態A)にて、連立一次方程式検算回路105が上位システムからリセット信号184を受け取ることで、状態162(アイドル状態A)から状態161(初期化状態)に状態遷移292する。
状態162(アイドル状態A)にて、連立一次方程式検算回路105が上位システムから演算開始信号187および入力信号188である係数行列Aと右辺ベクトルbとを受け取ることで、状態162(アイドル状態A)から状態163(アイドル状態B)に状態遷移293する。このとき連立一次方程式検算回路105は入力信号188を記憶領域のキューに保存する。
状態162(アイドル状態A)にて、連立一次方程式検算回路105が連立一次方程式演算回路104から演算終了信号190および出力信号191である数値解x’を受け取ることで、状態162(アイドル状態A)から状態164(検算中状態)に状態遷移294する。このとき連立一次方程式検算回路105は記憶領域のキューから入力信号188である係数行列Aと右辺ベクトルbとを取り出して演算に利用する。
状態163(アイドル状態B)にて、連立一次方程式検算回路105が上位システムからリセット信号184を受け取ることで、状態163(アイドル状態B)から状態161(初期化状態)に状態遷移295する。
状態163(アイドル状態B)にて、連立一次方程式検算回路105が連立一次方程式演算回路104から演算終了信号190および出力信号191を受け取ることで、状態163(アイドル状態B)から状態164(検算中状態)に状態遷移296する。このとき連立一次方程式検算回路105は記憶領域のキューから入力信号188を読みだして演算に利用する。
状態163(アイドル状態B)にて、連立一次方程式検算回路105が上位システムから演算開始信号187および入力信号188を受け取った場合、状態163(アイドル状態B)にとどまる(状態遷移297)。このとき連立一次方程式検算回路105は入力信号188を記憶領域のキューに保存する。
状態164(検算中状態)にて、連立一次方程式検算回路105が上位システムからリセット信号184を受け取ることで、状態164(検算中状態)から状態161(初期化状態)に状態遷移298する。
状態164(検算中状態)にて、連立一次方程式検算回路105が検算192を終了しエラー判定結果193を上位システムに通知することで、自動的に状態164(検算中状態)から状態162(アイドル状態A)に状態遷移299する。
<フローチャート>
図10は、実施の形態1における情報処理回路100による処理の概要を示すフローチャートである。
まず、S130にて、情報処理回路100が、上位システムから連立一次方程式の係数行列Aと右辺ベクトルbとを受け取る。そして、入力線101を介して情報処理回路100の連立一次方程式演算回路104と連立一次方程式検算回路105が、数行列Aと右辺ベクトルbとを受け取る。
次に、S131にて、連立一次方程式演算回路104による処理(後述、図11)が実行される。そして、連立一次方程式演算回路104は、係数行列Aと右辺ベクトルbとに基づいて、連立一次方程式(Ax=b)の数値解x’を演算する。
次に、S132にて、連立一次方程式演算回路104が、演算結果である、連立一次方程式(Ax=b)の数値解x’を、出力線102を介して、上位システムに出力するとともに連立一次方程式検算回路105に出力する。
次に、S133にて、連立一次方程式検算回路105による処理(後述、図12)が実行される。
次に、S134にて、連立一次方程式検算回路105が、エラー判定結果193を、通知線103を介して上位システムに出力する。
図11は、実施の形態1における連立一次方程式演算回路104による処理(S131)の概要を示すフローチャートである。実施の形態1では、連立一次方程式を解くためのアルゴリズムとして、GMRES法を用いる。GMRES法とは、行列ベクトル積を繰り返すことでKrylov部分空間の基底を拡張しながら、そのKrylov部分空間の中から連立一次方程式(Ax=b)の解を効率的に探索するアルゴリズムである。すなわち、図11に示される連立一次方程式演算回路104による処理は、GMRES法のアルゴリズムに基づくものである。
まず、S140にて、連立一次方程式演算回路104は、適当な初期解x0からその残差r0=b−Ax0を計算し、1本目の基底ベクトルq0=r0/||r0||を生成する。なお、初期解x0には、ランダムな値が設定される。
次に、S141にて、連立一次方程式演算回路104は、ループ変数iを1で初期化する。
次に、S142にて、連立一次方程式演算回路104は、連立一次方程式の係数行列Aと(i−1)本目の基底ベクトルq(i−1)の行列ベクトル積v=Aq(i−1)を行うことでKrylov部分空間の基底を拡張する。
次に、S143にて、連立一次方程式演算回路104は、ベクトルvとKrylov部分空間の正規直交基底{q0、…、q(i−1)}の正規直交化を行うことで、i本目の正規直交基底ベクトルqiを求める。この処理では、内積演算とベクトルの積和演算が必要となる。
次に、S144にて、連立一次方程式演算回路104は、ギブンス回転によるヘッセンベルグ行列のQR分解を行う。
次に、S145にて、連立一次方程式演算回路104は、最大反復回数kとループ変数iとを比較する。そして、連立一次方程式演算回路104が比較した結果、iがk未満であければ(i<k)ループを繰り返すためにステップ146に進む。一方、連立一次方程式演算回路104が比較した結果、iがk以上であれば(i≧k)ステップ147に進む。
次に、S146にて、連立一次方程式演算回路104は、ループ変数iをインクリメント(i=i+1)する。S146の次は、S142へ戻る。
S145にてiがk以上であると判定する場合、S147にて、連立一次方程式演算回路104は、生成した正規直交基底の一次結合で連立一次方程式(Ax=b)の数値解x’を求めるために、基底それぞれの係数{y0、…、yk}を求める。このために、連立一次方程式演算回路104は、ヘッセンベルグ行列をQR分解した上三角行列Rを係数行列とする、k次連立一次方程式を後退代入で求める。
次に、S148にて、連立一次方程式演算回路104は、生成した正規直交基底とそれぞれの係数の和により連立一次方程式(Ax=b)の数値解x’を求める。このためには、連立一次方程式演算回路104は、ベクトルの積和演算をk回行う必要がある。
図12は、実施の形態1における連立一次方程式検算回路105による処理(S133)の概要を示すフローチャートである。
まず、S150にて、連立一次方程式検算回路105は、右辺ベクトルbのノルム||b||を演算する。ノルムにはユークリッドノルムを用い、連立一次方程式検算回路105は、ベクトルbとbの内積演算の演算結果の平方根をノルム||b||として保存する。また、連立一次方程式検算回路105は、連立一次方程式演算回路104が出力した数値解x’と連立一次方程式の真の解xの距離を、残差ノルム||r||により演算する。なお、連立一次方程式検算回路105は、残差(r=b−Ax)を行列ベクトル積とベクトル和の演算によって求める。
次に、S151にて、連立一次方程式検算回路105の演算ユニット123は、相対誤差||r||/||b||をスカラー値の浮動小数点数の除算によって求め、相対誤差||r||/||b||と許容誤差epsilonとを比較する。情報処理回路100で用いられる浮動小数点数はIEEE754で定義される倍精度浮動小数点数であり、許容誤差epsilon=1.0e−8程度に設定する。相対誤差||r||/||b||が許容誤差epsilonを満足する場合(相対誤差が許容誤差未満である場合)は、ステップ152に進む。一方、相対誤差が許容誤差を逸脱する場合(相対誤差が許容誤差以上である場合)はステップ153に進む。
相対誤差が許容誤差未満である場合、S152にて、連立一次方程式検算回路105は、演算器にエラーが存在しないと判定する。
一方、相対誤差が許容誤差以上である場合、S153にて、連立一次方程式検算回路105は、演算器にエラーが存在すると判定する。
<実施の形態1の効果>
以上説明した実施の形態1における情報処理回路100によれば、検算回路である連立一次方程式検算回路105が、演算回路である連立一次方程式演算回路104が出力する数値解を復元後入力信号(右辺ベクトルb’)へ復元し、復元した復元後入力信号と受け取った入力信号(右辺ベクトルb)とに基づきエラーの有無を判定ことで、回路量を減らしても、エラー検出が可能になる。例えば、連立一次方程式演算回路104を二つ設けた場合と比較して、一方の連立一次方程式演算回路104から、複数のベクトルの内積演算ユニット117と、ギブンス回転演算ユニット118と、後退代入演算ユニット119とを除外してもエラー検出が可能になる。
(実施の形態2)
連立一次方程式(Ax=b)はその係数行列Aの種類に応じて解法を適切に選択する必要がある。係数行列Aが密行列の場合は、解法として、行列を簡易な行列の積となるように分解することで解を求めやすくする直接法を用いる。また、係数行列Aが疎行列の場合は、解法として、行列ベクトル積を主とする関数を反復計算することで数値解x’を真の解xに近付ける反復法を用いる。
反復法は、定常反復法と非定常反復法の2種類に大別される。非定常反復法はベクトル長がNの場合に、高々N回の反復で解に至る高速な手法として広く用いられている。また、係数行列Aが疎行列でかつ非対称の場合に用いられる非定常反復法がGMRES法であり、係数行列Aが疎行列でかつ対称正定値の場合に用いられる非定常反復法がCG法である。
実施の形態1では、連立一次方程式演算回路104がGMRES法で連立一次方程式(Ax=b)の解を求めているのに対し、実施の形態2では、連立一次方程式(Ax=b)の解を求めるためのアルゴリズムとしてCG法を用いている点で異なる。以下、本発明の実施の形態2を実施の形態1と異なる点を主に図13、図14を用いて説明する。
<詳細構成>
図13は、実施の形態2における連立一次方程式演算回路104の構成例の概要を示す図である。
図13に示される連立一次方程式演算回路104は、CG法を用いた処理(後述、図14)を実現する回路構成となっている。
演算ユニット112は、CG法で必要となる演算を処理するために、行列ベクトル積演算ユニット114とベクトルの積和演算ユニット116とベクトルの内積演算ユニット117と不完全LU分解前処理ユニット206とを有する。
なお、実施の形態1と同様に、実施の形態2においても上述した、式(8):2×Sm>Sm+Svが成立する。すなわち、従来のCG法を解く情報処理回路100の回路面積と比較しても、CG法を解く実施の形態2の情報処理回路100の回路面積の方が小さい。
<フローチャート>
図14は、実施の形態2における連立一次方程式演算回路104によるCG法を用いた処理の概要を示すフローチャートである。
まず、S200にて、連立一次方程式演算回路104は、適当な初期解x0からその残差r0=b−Ax0を計算し、1本目の直交ベクトルを生成する。ここで、反復法における反復回数は、係数行列Aの固有値分布に依存することが知られており、固有値分布を改善することで反復回数が減少し、高速に連立一次方程式を解くことが可能である。したがって、一般的な反復法では行列を前処理する。行列を前処理する場合、連立一次方程式演算回路104は、次の式(9)と式(10)とを解く。
式(9):AMy=b
式(10):My=x
行列AMの固有値が縮退することで反復回数が削減される。行列の前処理を行う場合、アルゴリズムの中でMz(i)=r(i)を解く必要がある。このステップでは、Mz0=r0を解く。
次に、S201にて、連立一次方程式演算回路104は、ループ変数iを1で初期化する。
次に、S202にて、連立一次方程式演算回路104は、係数行列Aと直交ベクトルrの行列ベクトル積の演算により勾配ベクトルpを生成し、Krylov部分空間を拡張する。
次に、S203にて、連立一次方程式演算回路104は、ベクトルの内積演算とベクトルの積和演算により、直交基底ベクトルと解ベクトルを更新する。
次に、S204にて、連立一次方程式演算回路104は、不完全LU分解によりMz(i)=r(i)を解くことで、係数行列Aの前処理を行う。
次に、S205にて、連立一次方程式演算回路104は、ベクトルの内積演算とベクトルの積和演算により、勾配ベクトルを更新する。
次に、S206にて、連立一次方程式演算回路104は、S204で求めた内積の値が許容誤差を下回っているかを確認することで収束判定を行う。内積の値に丸め誤差が蓄積されている場合は、i反復目の数値解x(i)を用いて次の式(11)を判定することで収束判定を行う。連立一次方程式演算回路104が、収束したと判定する場合(S206−YES)、処理を終了する。一方、連立一次方程式演算回路104が、収束していないと判定する場合(S206−NO)、S207へ進む。
式(11):||b-Ax(i)||/||b||<epsilon
次に、S207にて、連立一次方程式演算回路104は、ループ変数iをインクリメント(i=i+1)する。S207の次は、S202へ戻る。
<実施の形態2の効果>
以上説明した実施の形態2における情報処理回路100によれば、演算回路である連立一次方程式演算回路104が、反復法を用いて連立一次方程式を解くことで、実施の形態1と同様の効果に加えてエラー検出されるまでの時間を短くできる。
また、連立一次方程式演算回路104が、CG法を用いることで、実施の形態1と同様の効果に加えて係数行列Aが疎行列でかつ対称正定値の場合であっても、連立一次方程式を解きやすくなる。
(実施の形態3)
実施の形態1では、連立一次方程式演算回路104がGMRES法で連立一次方程式(Ax=b)の解を求めているのに対し、実施の形態3では、連立一次方程式(Ax=b)の解を求めるアルゴリズムとしてSOR法を用いている点で異なる。SOR法は定常反復法の一つで、速度は非定常反復法に劣るものの、プログラミングが容易なことで知られている。以下、本発明の実施の形態3を実施の形態1と異なる点を主に図15、図16を用いて説明する。
<詳細構成>
図15は、実施の形態3における連立一次方程式演算回路104の構成例の概要を示す図である。図15に示される連立一次方程式演算回路104は、SOR法を用いた処理(後述、図16)を実現する回路構成となっている。すなわち、連立一次方程式演算回路104の演算ユニット112は、行列ベクトル積に相当する演算とベクトルの積和演算に相当する演算と行列の前処理に相当する演算を行うことで、解ベクトルの更新ベクトルrを求める行列前処理ユニット213を含む。
なお、実施の形態1と同様に、実施の形態3においても式(8):2×Sm>Sm+Svが成立する。すなわち、従来のCG法を解く情報処理回路100の回路面積と比較して、CG法を解く実施の形態3の情報処理回路100の回路面積の方が小さい。
<フローチャート>
図16は、実施の形態3における連立一次方程式演算回路104によるSOR法を用いた処理の概要を示すフローチャートである。
まず、S210にて、連立一次方程式演算回路104は、ループ変数iを1で初期化する。
次に、S211にて、連立一次方程式演算回路104は、行列ベクトル積に相当する演算とベクトルの積和演算に相当する演算と行列の前処理に相当する演算を行うことで、解ベクトルの更新ベクトル(残差)rを求める。
次に、S212にて、連立一次方程式演算回路104は、ベクトルの積和演算により、更新ベクトルに加速パラメータを乗算して解ベクトルに加算する。
次に、S213にて、連立一次方程式演算回路104は、i反復目の数値解x(i)を用いて次の式(11)を判定することで収束判定を行う。連立一次方程式演算回路104が、収束した判定する場合(S213−YES)、処理を終了する。一方、連立一次方程式演算回路104が、収束していないと判定する場合(S213−NO)、S214へ進む。
式(11):||b-Ax(i)||/||b||<epsilon
次に、S214にて、連立一次方程式演算回路104は、ループ変数iをインクリメント(i=i+1)する。S214の次は、S211へ戻る。
<実施の形態3の効果>
以上説明した実施の形態3における情報処理回路100によれば、演算回路である連立一次方程式演算回路104が、SOR法を用いて連立一次方程式を解くことで、実施の形態1と同様の効果に加えて、情報処理回路100を実現するのに必要なプログラミングが容易になる。
(実施の形態4)
実施の形態1では、連立一次方程式演算回路104がGMRES法で連立一次方程式(Ax=b)の解を求めているのに対し、実施の形態4では、連立一次方程式演算回路104がLU分解により連立一次方程式(Ax=b)を解いている点で異なる。LU分解とは、係数行列Aを、上三角行列Lと下三角行列Uとに分解する。分解後にまずLy=bの簡単な連立一次方程式を前進代入で解き、次にUx=yの簡単な連立一次方程式を後退代入で解く。以下、本発明の実施の形態4を実施の形態1と異なる点を主に図17、図18を用いて説明する。
<詳細構成>
図17は、実施の形態4における連立一次方程式演算回路104の構成例の概要を示す図である。図17に示される連立一次方程式演算回路104は、連立一次方程式演算回路104によるLU分解を用いた処理(後述、図18)を実現するための回路構成となっている。すなわち、連立一次方程式演算回路104の演算ユニット112は、係数行列Aを、上三角行列Lと下三角行列Uとに分解する処理を行うための、スカラーベクトル積演算ユニット223と、ベクトル積演算ユニット224と行列和演算ユニット225とを含む。また、連立一次方程式演算回路104の演算ユニット112は、前進代入によりLy=bの簡単な連立一次方程式を解く前進代入演算ユニット226を含む。また、連立一次方程式演算回路104の演算ユニット112は、後退代入によりUx=yの簡単な連立一次方程式を解く後退代入演算ユニット119を含む。
なお、実施の形態1と同様に、実施の形態4においても式(8):2×Sm>Sm+Svが成立する。すなわち、従来のCG法を解く連立一次方程式演算回路104の回路面積と比較して、CG法を解く実施の形態4の情報処理回路100の回路面積の方が小さい。
<フローチャート>
図18は、実施の形態4における連立一次方程式演算回路104によるLU分解を用いた処理の概要を示す図である。
まず、S220にて、連立一次方程式演算回路104は、公知の技術により、係数行列Aを、上三角行列Lと下三角行列Uとに分解する。このとき、連立一次方程式演算回路104は、スカラーベクトル積の演算や、ベクトルベクトル積の演算や、行列和の演算を行う。
次に、S221にて、連立一次方程式演算回路104は、前進代入によりLy=bの簡単な(上三角行列の)連立一次方程式を解く。
次に、S222にて、連立一次方程式演算回路104は、後退代入によりUx=yの簡単な(下三角行列の)連立一次方程式を解く。
<実施の形態4の効果>
以上説明した実施の形態4における情報処理回路100によれば、演算回路である連立一次方程式演算回路104が、LU分解により連立一次方程式を解くことで、係数行列Aが密行列の場合にて解を求めやすくする。
(実施の形態5)
実施の形態1では、情報処理回路100が線形方程式である連立一次方程式(Ax=b)を解いていたのに対し、実施の形態5では情報処理回路100が下記の式(11)に示す非線形方程式を解く点で異なる。
式(11):y=f(x)
この非線形方程式である式(11)においては左辺ベクトルyと関数形fが既知であり情報処理回路100の入力となる。実施の形態5では、ニュートン法を用いて非線形方程式である式(11)を解くことで、解ベクトルxを求める。以下、本発明の実施の形態5を実施の形態1と異なる点を主に図19〜図24を用いて説明する。
<全体構成>
図19は、実施の形態5における情報処理回路100の構成例の概要を示す図である。図19に示されるように、情報処理回路100は、入力線101と、出力線102と、通知線103と、非線形方程式演算回路230と、非線形方程式検算回路231とを有する。
入力線101は、情報処理回路100に入ると分岐し、非線形方程式演算回路230と非線形方程式検算回路231とに接続する。
非線形方程式演算回路230と接続する出力線102は、情報処理回路100の内部で分岐し、一方が情報処理回路100の上位システムに接続し、他方が非線形方程式検算回路231に接続する。
非線形方程式検算回路231は、通知線103からエラー判定を出力する。
非線形方程式である式(11):y=f(x)を解く情報処理回路100のタイミングチャートと状態遷移図は、連立一次方程式(Ax=b)を解く情報処理回路100と同様である。そして、上述した連立一次方程式演算回路104を非線形方程式演算回路230に置き換え、上述した連立一次方程式検算回路105を非線形方程式検算回路231に置き換えるのみで情報処理回路100が実現可能である。
<詳細構成>
図20は、実施の形態5における非線形方程式演算回路230の構成例の概要を示す図である。図20に示されるように、非線形方程式演算回路230は、非線形方程式(y=f(x))の左辺ベクトルyと非線形方程式の関数fのパラメータを入力するための入力線101と、非線形方程式演算回路230が出力する非線形方程式(y=f(x))の数値解x’を受け取るための出力線102と、バス110と、非線形方程式演算制御ユニット247と、演算ユニット112と、演算データ保持ユニット113を有する。
演算ユニット112は、新たに導入した非線形方程式を評価する処理と、関数g(x)をxで偏微分したヤコビ行列Jgを生成し、後述する式(12)を解くことで更新ベクトルrを求める処理と、ベクトルの積和演算によりx(i+1)=x(i)-rの演算で解ベクトルを更新する処理と、新たに得た解ベクトルで非線形方程式g(x(i+1))を評価しノルムを演算する処理とを実現するための、非線形方程式評価演算ユニット243とベクトルの積和演算ユニット116とベクトルの内積演算ユニット117とヤコビ行列生成ユニット248と連立一次方程式演算ユニット249を有する。
図21は、実施の形態5における非線形方程式検算回路231の構成例の概要を示す図である。図21に示されるように、非線形方程式検算回路231は、非線形方程式(y=f(x))の左辺ベクトルyと非線形方程式の関数fのパラメータを入力するための入力線101と、非線形方程式演算回路230が出力する非線形方程式(y=f(x))の数値解x’を受け取るための出力線102と、非線形方程式検算回路231がエラー判定結果を上位システムに通知するための通知線103と、バス110と、非線形方程式検算制御ユニット242と、演算ユニット123と、演算データ保持ユニット124とを有する。
演算ユニット123は、新たに得た解ベクトルで非線形方程式g(x(i+1))を評価し、ノルムを演算するために必要な演算を行うための、非線形方程式評価演算ユニット243とベクトルの積和演算ユニット116とベクトルの内積演算ユニット117とを有する。
<フローチャート>
図22は、実施の形態5における情報処理回路100による処理の概要を示すフローチャートである。図22は、実施の形態5に示される処理では、ニュートン法を用いて非線形方程式である式(y=f(x))を解く処理の概要を示す。
まず、S232にて、情報処理回路100は、入力線101のIDATから非線形方程式の左辺ベクトルyと非線形方程式の関数fとのパラメータを受け取る。
次に、S233にて、非線形方程式演算回路230により処理(後述、図23)が実行される。
次に、S234にて、非線形方程式演算回路230が、演算結果である、非線形方程式(y=f(x))の数値解x’を、出力線102を介して、上位システムに出力するとともに、非線形方程式検算回路231に出力する。
次に、S235にて、非線形方程式検算回路231による処理(後述、図24)が実行される。
次に、S236にて、非線形方程式検算回路231が、エラー判定結果193を、通知線103を介して上位システムに出力する。
図23は、実施の形態5における非線形方程式演算回路230による処理(S233)の概要を示すフローチャートである。
まず、S240にて、非線形方程式演算回路230は、ループ変数iを1で初期化する。
次に、S241にて、非線形方程式演算回路230は、新たに導入した非線形方程式g(x(i))=y-f(x(i))を評価する。g(x)=0のとき非線形方程式(11)は解を持つ。
次に、S242にて、非線形方程式演算回路230は、関数g(x)をxで偏微分したヤコビ行列Jgを生成し、次の式(12)を解くことで更新ベクトルrを求める。
g(x(i)) = Jgr … (12)
次に、S243にて、非線形方程式演算回路230は、ベクトルの積和演算により、x(i+1)=x(i)-rの演算で解ベクトルを更新する。
次に、S244にて、非線形方程式演算回路230は、新たに得た解ベクトルで非線形方程式g(x(i+1))を評価し、ノルムを演算する。
次に、S245にて、非線形方程式演算回路230は、||g(x(i+1))||<epsilonを評価する。||g(x(i+1))||が許容誤差を満足すると判定する場合(S245−YES)処理を終了する。一方、非線形方程式演算回路230が、許容誤差を満足しないと判定する場合(S245−NO)、S246に進む。
次に、S246にて、非線形方程式演算回路230は、ループ変数iをインクリメント(i=i+1)する。S246の次は、S241へ戻る。
図24は、実施の形態5における非線形方程式検算回路231による処理(S131)の概要を示すフローチャートである。
まず、S240にて、非線形方程式検算回路231は、非線形方程式演算回路230の数値解x’を受け取り、非線形方程式の評価演算とベクトルの積和演算により、g(x’)=y-f(x’)の演算を行う。次にそのノルムである||g(x’)||の評価をベクトルの内積演算により行う。
次に、S241にて、非線形方程式検算回路231は、ノルム(||g(x’)||)を許容誤差epsilonと比較することで、ノルム(||g(x’)||)が許容誤差を満足するか否かを判定する。非線形方程式検算回路231が、ノルム(||g(x’)||)が許容誤差を満足する(ノルムが許容誤差未満である場合)と判定する場合(S241−YES)、S242へ進む。一方、非線形方程式検算回路231が、ノルム(||g(x’)||)が許容誤差を満足しない(ノルムが許容誤差以上である場合)と判定する場合(S241−NO)、S243へ進む。
相対誤差が許容誤差未満である場合、S242にて、非線形方程式検算回路231は、演算器にエラーが存在しないと判定する。
一方、相対誤差が許容誤差以上である場合、S243にて、非線形方程式検算回路231は、演算器にエラーが存在すると判定する。
なお、実施の形態5においても、実施の形態1と同様にして、非線形方程式検算回路231の回路面積は非線形方程式演算回路230の回路面積よりも小さい。従って非線形方程式演算回路230を2重化した情報処理回路よりも、実施の形態5の情報処理回路100の回路面積の方が小さい。
<実施の形態5の効果>
以上説明した実施の形態5における情報処理回路100によれば、演算回路である非線形方程式演算回路230が非線形方程式を解くことで数値解を演算し、検算回路である非線形方程式検算回路231が復元した復元後入力信号と受け取った入力信号とに基づき非線形方程式の検算を行うことで、非線形方程式演算回路230を二つ設けた情報処理回路100よりも回路量を減らしてもエラー検出が可能になる。
(実施の形態6)
実施の形態6が実施の形態1と異なる点は、実施の形態6の情報処理回路100が後処理回路250を有している点である。以下、本発明の実施の形態6を実施の形態1と異なる点を主に図25を用いて説明する。
図25に示されるように、情報処理回路100は、入力線101と、出力線102と、通知線103と、出力線251と、連立一次方程式演算回路104と、連立一次方程式検算回路105と、後処理回路250とを有する。
後処理回路250は、連立一次方程式演算回路104の出力線102が情報処理回路100から出る直前(手前)の位置に設けられ、出力線102を介して連立一次方程式演算回路104と接続される。
連立一次方程式演算回路104は、出力信号(数値解x’)を後処理回路250に出力する。
後処理回路250は、連立一次方程式検算回路105と異なる演算(連立一次方程式検算回路105では不可能な演算)である後処理を行い、演算結果を出力線251を介して出力する。例えば、後処理回路250は、出力信号(数値解x’)に所定の処理を加えてから出力線251を介して演算結果である信号を出力する。
なお、図26に示されるように、情報処理回路100が、制御線252を有するようにしても良い。この場合、連立一次方程式検算回路105と後処理回路250とは、制御線252を介して接続される。また、連立一次方程式検算回路105は、連立一次方程式(または非線形方程式)の検算が終了するまで、出力信号(数値解x’)を、制御線252を介して後処理回路250へ出力する。これによって、例えば、後処理回路250が連立一次方程式演算回路104の演算結果をラッチし、通知線103のエラー判定結果と同時に出力可能になる。
また、図27に示されるように、情報処理回路100の後処理回路250が連立一次方程式演算回路104と連立一次方程式検算回路105との間に設けられるようにしても良い。この場合、連立一次方程式演算回路104と後処理回路250とは、出力線102を介して接続される。
連立一次方程式演算回路104は、出力信号(数値解x’)を後処理回路250へ出力する。
後処理回路250は、連立一次方程式演算回路104から出力された数値解が連立一次方程式検算回路105で処理可能なデータでない場合に、出力された数値解を基づき連立一次方程式検算回路105で処理可能なデータを生成し、生成したデータを連立一次方程式検算回路105へ出力する。
<実施の形態6の効果>
以上説明した実施の形態6における情報処理回路100によれば、連立一次方程式演算回路104が数値解を後処理回路250へ出力し、後処理回路250が連立一次方程式検算回路105と異なる演算を行い、演算結果を出力することで、連立一次方程式検算回路105で処理可能な演算結果を出力線102でいったん出力し、連立一次方程式検算回路105で処理できない演算(連立一次方程式検算回路105と異なる演算)を後処理回路250で処理可能になる。
また、連立一次方程式演算回路104は、数値解を後処理回路250へ出力し、後処理回路250は、出力された数値解が連立一次方程式検算回路105で処理可能なデータでない場合に、出力された数値解を基づき連立一次方程式検算回路105で処理可能なデータを生成し、生成したデータを連立一次方程式検算回路105へ出力することで、連立一次方程式演算回路104が出力する出力信号(数値解x’)が連立一次方程式検算回路105で処理可能なデータでない場合であっても、連立一次方程式検算回路105で検算可能になる。
(実施の形態7)
実施の形態7が実施の形態1と異なる点は、実施の形態7の情報処理回路100が後処理回路250を有している点である。以下、本発明の実施の形態7を実施の形態1と異なる点を主に図28を用いて説明する。
図28に示されるように、前処理回路254は、入力信号が連立一次方程式検算回路105に入力される直前(手前)に設けられる。前処理回路254は、入力された入力信号に対する前処理を行うことで、前処理後入力信号を生成する。そして、前処理回路254は、生成した前処理後入力信号を連立一次方程式検算回路105へ出力する。
連立一次方程式演算回路104は、入力信号に基づき演算した数値解を連立一次方程式検算回路105へ出力する。
連立一次方程式検算回路105は、連立一次方程式演算回路104が出力する数値解を復元後入力信号へ復元し、復元した復元後入力信号と、受け取った前処理後入力信号とに基づきエラーの有無を判定し、エラーの有無の判定結果を出力する。
なお、図29に示されるように、入力信号が連立一次方程式演算回路104に入力される直前(手前)に前処理回路254が設けられるようにしても良い。
ここで、連立一次方程式演算回路104が、入力線101を介して受け取る入力データを用いて連立一次方程式の演算するためには、入力データを高精度化させるための処理などが前処理回路で必要な場合がある。一方で、こうした入力データを高精度化させるための処理は連立一次方程式検算回路105では必要ない。
例えば、実施の形態1では、入力データを高精度化させるための処理は、連立一次方程式演算回路104と連立一次方程式検算回路105の両方で実行されている。
図29に示される情報処理回路100は、入力データを高精度化させるための処理をする前処理回路254を連立一次方程式演算回路104の手前に設けることで、連立一次方程式検算回路105から前処理を行うユニットを削減でき連立一次方程式検算回路105の回路量を減少できる。
この場合、前処理回路254は、入力信号に対する前処理を行うことで、前処理後入力信号を生成し、生成した前処理後入力信号を連立一次方程式演算回路104へ出力する。
連立一次方程式演算回路104は、前処理後入力信号に基づき演算した数値解を連立一次方程式検算回路105へ出力する。
連立一次方程式検算回路105は、連立一次方程式演算回路104を介して受け取る数値解を復元後入力信号へ復元し、復元した復元後入力信号と、受け取った入力信号とに基づきエラーの有無を判定し、エラーの有無の判定結果を出力する。
<実施の形態7の効果>
以上説明した実施の形態7における情報処理回路100によれば、前処理回路254が入力信号に対する前処理を行い、前処理を行った後の前処理後入力信号を連立一次方程式検算回路105へ出力することで、入力データが、連立一次方程式検算回路105で処理可能なデータでない場合であっても、連立一次方程式検算回路105で検算可能になる。
また、前処理回路254が、入力された入力信号に対する前処理を行うことで、前処理後入力信号を生成し、生成した前処理後入力信号を連立一次方程式演算回路104へ出力することで、連立一次方程式検算回路105から前処理を行うユニットを削減でき連立一次方程式検算回路105の回路量を減少できる。
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は上記した実施の形態に限定されるものではなく、様々な変形例が含まれている。例えば、上記した実施の形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施の形態の構成の一部を他の実施の形態の構成に置き換えることが可能であり、また、ある実施の形態の構成に他の実施の形態の構成を加えることも可能である。また、各実施の形態の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記録装置、または、ICカード、SDカード、DVD等の記録媒体に置くことができる。
100…情報処理回路、104…連立一次方程式演算回路、105…連立一次方程式検算回路、
230…非線形方程式演算回路、231…非線形方程式検算回路。

Claims (14)

  1. 入力信号を受け取る演算回路と、前記入力信号を受け取る検算回路と、を有し、
    前記演算回路は、前記入力信号に基づき演算した数値解を前記検算回路へ出力し、
    前記検算回路は、前記演算回路から受け取った前記数値解を復元後入力信号へ復元し、復元した前記復元後入力信号と受け取った前記入力信号とに基づきエラーの有無を判定し、エラーの有無の判定結果を出力する、
    情報処理回路。
  2. 請求項1に記載の情報処理回路において、
    前記演算回路は、連立一次方程式を解くことで前記数値解を演算し、
    前記検算回路は、復元した前記復元後入力信号と受け取った前記入力信号とに基づき前記連立一次方程式の検算を行う、
    情報処理回路。
  3. 請求項2に記載の情報処理回路において、
    前記演算回路は、反復法を用いて前記連立一次方程式を解く、
    情報処理回路。
  4. 請求項3に記載の情報処理回路において、
    前記演算回路は、GMRES法を用いて前記連立一次方程式を解く、
    情報処理回路。
  5. 請求項3に記載の情報処理回路において、
    前記演算回路は、CG法を用いて前記連立一次方程式を解く、
    情報処理回路。
  6. 請求項3に記載の情報処理回路において、
    前記演算回路は、SOR法を用いて前記連立一次方程式を解く、
    情報処理回路。
  7. 請求項2に記載の情報処理回路において、
    前記演算回路は、直接法を用いて前記連立一次方程式を解く、
    情報処理回路。
  8. 請求項2に記載の情報処理回路において、
    前記演算回路は、LU分解を用いて前記連立一次方程式を解く、
    情報処理回路。
  9. 請求項1に記載の情報処理回路において、
    前記演算回路は、非線形方程式を解くことで前記数値解を演算し、
    前記検算回路は、復元した前記復元後入力信号と受け取った前記入力信号とに基づき前記非線形方程式の検算を行う、
    情報処理回路。
  10. 請求項9に記載の情報処理回路において、
    前記演算回路は、ニュートン法を用いて前記非線形方程式を解く、
    情報処理回路。
  11. 請求項1に記載の情報処理回路において、
    前記演算回路と接続される後処理回路をさらに有し、
    前記演算回路は、前記数値解を前記後処理回路へ出力し、
    前記後処理回路は、前記検算回路と異なる演算を行い、演算結果を出力する、
    情報処理回路。
  12. 請求項1に記載の情報処理回路において、
    前記演算回路と接続される後処理回路をさらに有し、
    前記演算回路は、前記数値解を前記後処理回路へ出力し、
    前記後処理回路は、出力された前記数値解が前記検算回路で処理可能なデータでない場合に、前記数値解に基づき前記検算回路で処理可能なデータを生成し、生成した前記データを前記検算回路へ出力する、
    情報処理回路。
  13. 入力信号を受け取る演算回路と、前記入力信号を受け取る前処理回路と、前記前処理回路および前記演算回路と接続される検算回路と、を有し、
    前記演算回路は、前記入力信号に基づき演算した数値解を前記検算回路へ出力し、
    前記前処理回路は、受け取った入力信号に対する前処理を行うことで、前処理後入力信号を生成し、生成した前処理後入力信号を前記検算回路へ出力し、
    前記検算回路は、前記演算回路から受け取った前記数値解を復元後入力信号へ復元し、復元した前記復元後入力信号と、受け取った前記前処理後入力信号とに基づきエラーの有無を判定し、エラーの有無の判定結果を出力する、
    情報処理回路。
  14. 入力信号を受け取る前処理回路と、前記入力信号を受け取る検算回路と、を有し、
    前記前処理回路は、前記入力信号に対する前処理を行い、前処理を行った後の前処理後入力信号を演算回路へ出力し、
    前記演算回路は、前記前処理後入力信号に基づき演算した数値解を前記検算回路へ出力し、
    前記検算回路は、前記演算回路から受け取った前記数値解を復元後入力信号へ復元し、復元した前記復元後入力信号と、受け取った前記入力信号とに基づきエラーの有無を判定し、エラーの有無の判定結果を出力する、
    情報処理回路。
JP2017535224A 2015-08-20 2015-08-20 情報処理回路 Expired - Fee Related JP6550465B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2015/073429 WO2017029766A1 (ja) 2015-08-20 2015-08-20 情報処理回路

Publications (2)

Publication Number Publication Date
JPWO2017029766A1 true JPWO2017029766A1 (ja) 2018-04-05
JP6550465B2 JP6550465B2 (ja) 2019-07-24

Family

ID=58051487

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017535224A Expired - Fee Related JP6550465B2 (ja) 2015-08-20 2015-08-20 情報処理回路

Country Status (2)

Country Link
JP (1) JP6550465B2 (ja)
WO (1) WO2017029766A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6981223B2 (ja) * 2017-12-15 2021-12-15 富士通株式会社 疎行列ベクトル積演算装置及び疎行列ベクトル積演算方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0520348A (ja) * 1991-07-12 1993-01-29 Matsushita Electric Ind Co Ltd 並列演算装置
JPH0981610A (ja) * 1995-09-12 1997-03-28 Toshiba Corp シミュレーション方法及びその装置
JP2003167755A (ja) * 2001-11-30 2003-06-13 Nippon Signal Co Ltd:The 信号処理系の故障診断方法および装置
JP2007279836A (ja) * 2006-04-03 2007-10-25 Univ Of Tsukuba 数値計算アルゴリズム性能表示装置および数値計算アルゴリズム性能表示方法
JP2009266230A (ja) * 2008-04-25 2009-11-12 Intel Corp パラレル処理を利用した連立一次方程式を解くための装置、システム及び方法
JP2012521591A (ja) * 2009-03-24 2012-09-13 インターナショナル・ビジネス・マシーンズ・コーポレーション 連立1次方程式を処理するための装置およびコンピュータ・プログラム

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0520348A (ja) * 1991-07-12 1993-01-29 Matsushita Electric Ind Co Ltd 並列演算装置
JPH0981610A (ja) * 1995-09-12 1997-03-28 Toshiba Corp シミュレーション方法及びその装置
JP2003167755A (ja) * 2001-11-30 2003-06-13 Nippon Signal Co Ltd:The 信号処理系の故障診断方法および装置
JP2007279836A (ja) * 2006-04-03 2007-10-25 Univ Of Tsukuba 数値計算アルゴリズム性能表示装置および数値計算アルゴリズム性能表示方法
JP2009266230A (ja) * 2008-04-25 2009-11-12 Intel Corp パラレル処理を利用した連立一次方程式を解くための装置、システム及び方法
JP2012521591A (ja) * 2009-03-24 2012-09-13 インターナショナル・ビジネス・マシーンズ・コーポレーション 連立1次方程式を処理するための装置およびコンピュータ・プログラム

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
平山弘: "C++言語用double−double型4倍精度演算ライブラリの開発とその応用", 情報処理学会 研究報告 ハイパフォーマンスコンピューティング(HPC) 2014−HPC−143 [, JPN6018023664, 24 February 2014 (2014-02-24), JP, pages 1 - 7, ISSN: 0003965920 *
櫻井隆雄ほか: "数値計算ポリシーインターフェース付行列計算ライブラリの開発と評価", 情報処理学会 シンポジウム ハイパフォーマンスコンピューティングと計算科学シンポジウム(HPCS), JPN6018023662, 11 January 2011 (2011-01-11), JP, pages 109 - 117, ISSN: 0003965921 *

Also Published As

Publication number Publication date
JP6550465B2 (ja) 2019-07-24
WO2017029766A1 (ja) 2017-02-23

Similar Documents

Publication Publication Date Title
Chen et al. Stochastic computational models for accurate reliability evaluation of logic circuits
Elliott et al. Quantifying the impact of single bit flips on floating point arithmetic
Drozd et al. Checkability of the digital components in safety-critical systems: problems and solutions
US8918747B2 (en) Formal verification of a logic design
Stoyanov et al. Numerical analysis of fixed point algorithms in the presence of hardware faults
An et al. State estimation under sparse sensor attacks: A constrained set partitioning approach
Schöll et al. Efficient algorithm-based fault tolerance for sparse matrix operations
Castro-Gonzalez et al. Accurate solution of structured least squares problems via rank-revealing decompositions
Thomas et al. Sirius: Neural network based probabilistic assertions for detecting silent data corruption in parallel programs
Shumsky Redundancy relations for fault diagnosis in nonlinear uncertain systems
Kashirin et al. Mosaic-skeleton method as applied to the numerical solution of three-dimensional Dirichlet problems for the Helmholtz equation in integral form
WO2017029766A1 (ja) 情報処理回路
Agullo et al. Interpolation-restart strategies for resilient eigensolvers
Efanov et al. Ways to set up a concurrent error detection system for logical circuits without memory
Sargsyan et al. Fault resilient domain decomposition preconditioner for PDEs
Aponte-Moreno et al. Ftxac: Leveraging the approximate computing paradigm in the design of fault-tolerant embedded systems to reduce overheads
Хаханова Developing method of vector synthesis deductive logic for computer systems fault analysis
Siládi et al. Adapted parallel Quine-McCluskey algorithm using GPGPU
Devadze et al. Extraction of a computer-certified ODE solver
Loh et al. Fault tolerance through invariant checking for iterative solvers
Agullo et al. Hard faults and soft-errors: possible numerical remedies in linear algebra solvers
Salkuyeh et al. Numerical accuracy of a certain class of iterative methods for solving linear system
Krstić et al. Improved circuitry for soft error correction in combinational logic in pipelined designs
Anwer et al. Analytic reliability evaluation for fault-tolerant circuit structures on FPGAs
Salloum et al. In-situ mitigation of silent data corruption in PDE solvers

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20171117

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180626

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190205

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190326

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190701

R150 Certificate of patent or registration of utility model

Ref document number: 6550465

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees