JP4795025B2 - ダイナミックリコンフィギャラブルデバイス、制御方法、及びプログラム - Google Patents

ダイナミックリコンフィギャラブルデバイス、制御方法、及びプログラム Download PDF

Info

Publication number
JP4795025B2
JP4795025B2 JP2006006295A JP2006006295A JP4795025B2 JP 4795025 B2 JP4795025 B2 JP 4795025B2 JP 2006006295 A JP2006006295 A JP 2006006295A JP 2006006295 A JP2006006295 A JP 2006006295A JP 4795025 B2 JP4795025 B2 JP 4795025B2
Authority
JP
Japan
Prior art keywords
processing
data
error
unit
input data
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.)
Expired - Fee Related
Application number
JP2006006295A
Other languages
English (en)
Other versions
JP2007188315A5 (ja
JP2007188315A (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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2006006295A priority Critical patent/JP4795025B2/ja
Priority to US11/622,738 priority patent/US7698594B2/en
Publication of JP2007188315A publication Critical patent/JP2007188315A/ja
Publication of JP2007188315A5 publication Critical patent/JP2007188315A5/ja
Application granted granted Critical
Publication of JP4795025B2 publication Critical patent/JP4795025B2/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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/142Reconfiguring to eliminate the error
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1438Restarting or rejuvenating
    • 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
    • G06F11/1629Error detection by comparing the output of redundant processing systems
    • G06F11/1637Error detection by comparing the output of redundant processing systems using additional compare functionality in one or some but not all of the redundant processing components

Description

本発明は、実行中に動的再構成可能デバイスの故障が発生した後も処理を継続可能にする場合に好適なダイナミックリコンフィギャラブルデバイス、制御方法、及びプログラムに関する。
近年、LSIの設計期間を短縮する技術に対する必要性が高まっている。これに伴い、LSI設計期間を短縮する1つの解決策として、動的再構成可能デバイス(ダイナミックリコンフィギャラブルデバイス)が注目されている。動的再構成可能デバイスとは、LSI中に演算器(ALU)を有する処理ユニット(プロセッシングエレメント)を複数組み込み、処理ユニット内部のALU制御及び処理ユニット間の接続を動的(LSI稼動中)に切り替え可能としたデバイスである。
他方、回路を再構成可能なデバイスとしては、FPGA(Field Programmable Gate Arrays)のようにトランジスタ間の接続を変更可能なアーキテクチャもある。しかしながら、FPGA自体は、回路を動的に変更するには時間がかかるため、アプリケーションプログラム(以下アプリケーション)の実行中に回路を動的に制御することは難しい。
これに対し、動的再構成可能デバイスは、回路を高速に切り替えることが可能である。その理由は、FPGAはゲートレベルで回路の変更を行うのに対して、動的再構成可能デバイスはプロセッシングエレメント(PE)単位で回路変更を行うためである。これにより、回路の変更に必要な構成情報が少なくて済むことに加えて、構成を変更するための回路が簡単になることで、高速な構成情報の変更が可能となる。
動的再構成可能デバイスは、アプリケーションの実行中に回路を動的に切り替えることにより、同一のLSIで複数のアプリケーションに対応することが可能となる。代表的な動的再構成可能デバイスとしては、DAPDNA、DRPなどがある。どちらも、数百のプロセッシングエレメントを内部に備えることで、高い処理性能を維持している。
上述した動的再構成可能デバイスに関しては各種の技術が提案されている(例えば、特許文献1参照)。
特開2004−005739号公報
通常、LSIには、LSI製造後のアプリケーションの実行中に故障(エラー)が発生した場合に対応するため、エラー原因が何かを特定するためのエラー検出回路が組み込まれている。そのため、LSIは、アプリケーションの実行中にエラーが発生した場合にエラーを即座に検出することができ、エラー内容に対応したメンテナンスが行われる。発生したエラーが致命的なエラーであった場合はLSIの交換が行われ、発生したエラーが致命的でない場合は性能を落として処理を継続させるなどの措置がとられる。
しかしながら、上記従来の動的再構成可能デバイス自体はエラー検出手段を備えていない。そのため、LSI製造後のアプリケーションの実行中に動的再構成可能デバイスでエラーが発生した場合、エラーを即座に検出することができない。これは、ミッションクリティカルなシステム(高度な信頼性や耐障害性が必要な基幹系システム)で利用するには致命的である。更に、動的再構成可能デバイスがエラー検出手段を備えていないことは、致命的でないエラーが発生した場合にもLSIを交換しなければならず、コストが増加するという問題もある。
本発明の目的は、動的再構成可能デバイスが有する複数のプロセッシングエレメントのいずれかに故障などのエラーが発生した場合であっても、動的に且つ高速に回路を再構成することを可能としたダイナミックリコンフィギャラブルデバイス、制御方法、及びプログラムを提供することにある。
上述の目的を達成するために、本発明のダイナミックリコンフィギャラブルデバイスは、構成情報を保持する保持手段と、演算器を有する処理ユニットを複数備え前記構成情報に従った前記演算器の構成及び前記処理ユニット間の接続に基づいて処理を行うデータ処理手段と、前記データ処理手段の備える前記複数の処理ユニットの各々に対応し、対応する処理ユニットエラー発生していることを検出する複数の検出手段と、前記検出手段の結果に応じて、前記検出手段によりエラーが検出された処理ユニットが処理に使用されないように、前記演算器の構成及び前記処理ユニット間の接続を動的に変更させる構成情報を前記保持手段に設定する再構成処理手段と、を備えることを特徴とする。
本発明によれば、動的再構成可能なデバイスが有する複数のプロセッシングエレメントのいずれかに故障などのエラーが発生した場合であっても、動的に且つ高速に回路を再構成することができる。特に、簡単な構成によって、プロセッシングエレメントのエラー検出後も処理を継続することが可能となる。
以下、本発明の実施の形態を図面を参照して説明する。
図1は、本発明の実施の形態に係るデバイス故障検出装置としての動的再構成可能デバイス故障検出装置の構成を示すブロック図である。
図1において、動的再構成可能デバイス故障検出装置は、エラー情報保持部105、プロセッサ107、プロセッシングエレメントマトリックスコア120、プロセッシングエレメントマトリックスリセット制御部121、外部メモリ145を備えている。更に、プロセッシングエレメントマトリックスコア120は、PEマトリックス101、ロードバッファ110、ストアバッファ111、入力データ合計値制御部112、入力データ値バッファ113を備えている。以下の説明ではプロセッシングエレメントを適宜PEと表記する。
動的再構成可能デバイス故障検出装置は、LSI製造後のアプリケーションの実行中に動的再構成可能デバイスが故障した場合、構成情報の変更及びエラーが発生した処理の再実行を行うことで、故障が発生した後も処理を継続可能にするものである。
PEマトリックス101は、内部に1つ以上の演算器を有する処理ユニット(プロセッシングエレメント)を複数備え、演算器の構成及び処理ユニット間の接続を、後述の構成情報の変更により動的に変更可能な動的再構成可能デバイスである。PEマトリックス101は、最小の処理ユニットであるプロセッシングエレメントの2次元アレイ構造を内部に備える。ロードバッファ110は、プロセッシングエレメントに外部メモリ145から入力される入力データを一時的に保存する。
ストアバッファ111は、プロセッシングエレメントから出力されるデータを一時的に保存する。ストアバッファ111の出力データは、外部メモリ145に送出される。入力データ合計値制御部112は、PEマトリックス101内で現在使用している入力データ数の合計値を算出する制御を行うものであり、PEマトリックス101内で処理中のデータ数の算出に使用する。入力データ値バッファ113は、ストアバッファ111内のデータが使用した入力データ数を保存する。
エラー情報保持部105は、PEマトリックス101で発生したエラーを示すエラー情報を保持する。プロセッサ107は、構成情報書き換え信号144により外部メモリ145内の構成情報の書き換えを行い、また、リセット指示信号142によりPEマトリックスリセット制御部121に対しリセット指示を行う。PEマトリックスリセット制御部121は、PEマトリックス101をリセットする制御を行う。外部メモリ145は、入力データ、出力データ、構成情報104を記憶する。構成情報104は、プロセッシングエレメントのコンフィグレーション情報である。
割り込み信号140は、エラー情報保持部105にエラー情報がセットされたことをプロセッサ107に通知するための信号である。処理停止信号139は、エラー情報保持部105にエラー情報がセットされた際にPEマトリックス101を停止するための信号である。リセット信号143は、PEマトリックス101をリセットするための信号である。前記信号以外の他の信号については後述する。
図9は、PEマトリックス101内部の最小構成要素であるプロセッシングエレメントの構成を示すブロック図である。
図9において、ALU102は、プロセッシングエレメント150内に設けられた演算器である。エラー検出回路103は、プロセッシングエレメント150内に設けられると共にALUを内蔵しており、該ALUの演算結果と上記ALU102の演算結果とを比較することで(ALUの二重化)、プロセッシングエレメントのエラーの検出を行う。加算器114は、プロセッシングエレメントで処理する入力データの数の加算に使用する。入力データ130、131は、ALU102に入力されるデータであり、他のプロセッシングエレメントまたはロードバッファ110から入力される。
信号132、133は、プロセッシングエレメントへの入力データ130、131にそれぞれ対応する入力データ数を示す信号であり、入力データ130、131が作成される際に元データが幾つ消費されたかを示している。信号135は、ALU102で計算された計算結果を示す信号である。信号136は、エラー検出回路103でエラー検出された結果を示す信号である。信号137は、加算器114で加算された入力データ数を示す信号である。
次に、本実施の形態の動的再構成可能デバイス故障検出装置によるエラー検出処理及びエラー制御方法について図1及び図9に基づき説明する。
例えば、LSI製造後にプロセッシングエレメント内のALU102が故障した場合、プロセッシングエレメント内のエラー検出回路103は、ALU102の出力結果とエラー検出回路103の出力結果とを比較する。そして、出力結果が異なっていた場合に、エラー検出回路103はエラーを検出する。エラー検出回路103で検出されたエラー情報は、フリップフロップ151を経由してエラー信号136として出力される。エラー信号136として出力されたエラー情報は、エラー情報保持部105にセットされ保持される。尚、エラー情報はプロセッシングエレメント毎に通知される。
エラー情報保持部105にエラー情報の値が新たにセットされると、エラー情報保持部105は、割り込み信号140をアサートし、プロセッサ107に対して割り込みを通知する。同時に、エラー情報保持部105にエラー情報の値がセットされると、エラー情報保持部105は、PEマトリックスコア120の処理を停止する処理停止信号139をアサートし、PEマトリックスコア120での処理を停止させる。
信号141は、エラー情報保持部105内のエラー情報として出力する信号である。プロセッサ107は、割り込み信号140を受信した際、信号141(エラー情報)をリードすることで、故障したプロセッシングエレメントに関する情報を取得する。割り込みマスク信号160は、割り込み信号140をマスクするための信号である。プロセッサ107は、割り込みマスク信号160をアサートすることで、割り込み信号140をマスクする。
プロセッサ107は、故障したプロセッシングエレメントに関する情報を取得した後、故障したプロセッシングエレメントを使用しないようにするため構成情報104を書き換える。また、プロセッサ107は、入力データ合計値制御部112からPEマトリックスコア120内で使用されている入力データ数を信号612より取得し、入力データを再ロードする際の外部メモリアドレス算出論理(後述)を用いて再ロードアドレスを算出する。その後、プロセッサ107は、リセット指示信号142をアサートする。
これに伴い、PEマトリックスリセット制御部121は、リセット信号143をアサートすることで、PEマトリックスコア120をリセットする。リセット後、プロセッサ107は、信号190をアサートすることにより処理停止信号139をデアサートすることで、PEマトリックスコア120を処理可能にする。更に、プロセッサ107は、上記算出した再ロードアドレスから入力データをPEマトリックスコア120に再ロードする。これにより、PEマトリックスコア120における処理が正常に再開される。
図2は、動的再構成可能デバイス故障検出装置のエラー情報保持部105の構成を示すブロック図である。
図2において、エラー情報保持部105は、複数のフリップフロップ202、フリップフロップ204、複数のフリップフロップ210、フリップフロップ221、レジスタ222、複数のアンドゲート、複数のオアゲートを備えている。
エラー信号136は、PEマトリックス101からエラー情報保持部105に出力された信号(エラー情報)である。フリップフロップ202は、エラー信号136(エラー情報)の値を内部にセットする。フリップフロップ202は、セットされた値がエラーであった場合、フリップフロップ内に値を保持する。フリップフロップ202は、セットされた値がエラーでない場合は、PEマトリックス101から出力された次のエラー信号136(エラー情報)をセットする。
リセット信号180は、PEマトリックスリセット制御部121からエラー情報保持部105に出力された信号である。リセット信号180は、動的再構成可能デバイス故障検出装置の電源投入時にアサートされ、エラー情報保持部105内の全フリップフロップをリセットする際に利用される。
割り込みマスク信号160は、プロセッサ107からエラー情報保持部105に出力された信号である。フリップフロップ210は、割り込みマスク信号160の値をセットする。フリップフロップ210は、エラー情報のマスク用のフリップフロップである。フリップフロップ202から出力されたエラー情報と、フリップフロップ210にセットされたマスク情報との“AND”(論理積)をとることで、エラー情報をマスクする。
信号140は、フリップフロップ210によりマスクされた後の全エラー情報の“OR”(論理和)をとった信号であり、エラー情報保持部105からプロセッサ107に対する割り込み信号140として使用される。
信号190は、プロセッサ107からエラー情報保持部105に出力される、PEマトリックスコア120の処理を停止する処理停止信号139をマスクするための信号である。フリップフロップ221は、処理停止信号139のマスク用のフリップフロップである。フリップフロップ221は、信号190の値をセットする。
レジスタ222は、処理停止信号139を出力する。レジスタ222は、エラー情報保持部105内の全エラー情報の“OR”(論理和)をとった値(信号)と、フリップフロップ221にセットされた値との“AND”(論理積)をとった値(信号)をセットする。レジスタ222は、内部にエラー情報がセットされると、フリップフロップ221の値によりエラー情報がクリアされるまで処理停止信号139をアサートし続ける。
処理停止信号139は、PEマトリックスコア120の処理を停止する信号として使用される。信号141は、フリップフロップ202から出力された信号(エラーPE情報)である。プロセッサ107は、信号141(エラーPE情報)に基づき、故障したプロセッシングエレメントの判定を行う。
次に、本実施の形態における入力データの再ロード時のアドレスの算出方法について説明する。
本実施の形態では、プロセッシングエレメントでエラーが発生した場合、一旦、エラー情報保持部105によりPEマトリックスコア120の処理を停止し、PEマトリックスリセット制御部121によりPEマトリックスコア120内の全データを無効化する。更に、エラーが発生したプロセッシングエレメントを使用しないようにするためプロセッサ107により構成情報を変更した後、無効化したデータに相当する入力データを外部メモリ145から再ロードしてPEマトリックスコア120の処理を再実行する。これにより、PEマトリックスコア120の処理を継続する方式を採用する。
そこで、上記方式を実現するため、外部メモリ145からPEマトリックスコア120に再ロードする入力データのアドレスの計算を行う必要がある。再ロードするアドレスは、正常に処理を継続していた場合に次にデータを読み出すアドレスから、PEマトリックス101内で使用中の入力データ数を差し引いたアドレスとなる。再ロード時のアドレスの計算式を次に示す。
再ロード時のアドレス=次にデータを読み出すアドレス
−PEマトリックス内で処理中の入力データ数
ここで、PEマトリックス101内で処理中の入力データ数とは、PEマトリックスコア120内で処理中の入力データ数のことである。即ち、PEマトリックス101内で処理中の入力データ数と、ロードバッファ110とストアバッファ111で処理中の入力データ数とを合計したものである。ストアバッファ111は、少なくともPEマトリックス101でエラーが発生してからPEマトリックスコア120が停止するまでの間、PEマトリックス101から出力された全てのデータを保持可能な容量を有する。
次に、PEマトリックス101の全プロセッシングエレメント内で処理中の入力データ数を算出する方法を図3乃至図5を用いて説明する。
図3は、PEマトリックス内データ数計算例で用いた配線情報を示す図である。図4は、PEマトリックス内データ数計算例で最初の入力状態の入力データ数を示す図である。図5は、PEマトリックス内データ数計算例で図4の状態から4クロックサイクル後の入力データ数を示す図である。
図3乃至図5において、図3は、4×4プロセッシングエレメントの接続関係を示したものである。301は、プロセッシングエレメントである。304は、プロセッシングエレメント間の配線である。接続関係がないプロセッシングエレメント間には配線304を図示していない。プロセッシングエレメントの入力データ302は、ロードバッファ110から入力され、プロセッシングエレメントの出力データ303は、ストアバッファ111へ出力される。また、入力データ数信号305は、入力データ値バッファ113へ出力される。
図4、図5は、図3のプロセッシングエレメント構成を用いた場合の各プロセッシングエレメントで処理に使用した入力データ数のクロックによる違いを示したものである。図4は、ロードバッファ110から出力された入力データ302が最初にPEマトリックス101内に入力された時の、各プロセッシングエレメント内で使用した入力データ数を示している。
プロセッシングエレメント内に記述された値は、各プロセッシングエレメント内で使用した入力データ数を示す。ロードバッファ110からの入力が2系統あるプロセッシングエレメントの入力データ数は“2”となり、ロードバッファ110からの入力が1系統のプロセッシングエレメントの入力データ数は “1”となる。
図5は、図4の状態から4クロックサイクル後の各プロセッシングエレメントで処理に使用した入力データ数を示している。プロセッシングエレメント内に記述された値は、各プロセッシングエレメント内で使用した入力データ数を示す。その値は、接続関係のあるプロセッシングエレメント内の入力データ値を加算した値となる。また、PEマトリックス101からは、出力データ303及び入力データ数信号305の両方が出力され、それぞれストアバッファ111及び入力データ値バッファ113へ送出される。ここで、入力データは、ロードバッファ110から毎サイクル入力されているものとする。
図5の時点で、全プロセッシングエレメントで処理中の入力データ数は、各プロセッシングエレメント内の入力データ数の合計26であることが分かる。従って、加算器114(図9)により各プロセッシングエレメントについて入力データ数の加算を行い合計を算出することで、全プロセッシングエレメント内で現在処理中の入力データ数を算出することができる。更に、加算器114によりロードバッファ110内のデータ数及びストアバッファ111内のデータ数に対応する入力データ数を加算することで、PEマトリックス内で処理中の全入力データ数を算出することができる。
図6は、ストアバッファ111及び入力データ値バッファ113の概略構成を示す図である。
図6において、ストアバッファ111及び入力データ値バッファ(入力データ数バッファ部)113の2つのブロックと信号の入出力関係は、ストアバッファ111内のデータに対応する入力データ数を算出するための方法を示している。データ信号303は、PEマトリックス101から出力された信号である。ストアバッファ111は、出力データ303を出力データ603としてバッファリングする。データ信号604は、外部メモリ145へ出力する信号である。
信号305は、PEマトリックス101から出力された入力データ数を示す信号である。入力データ数613は、出力データ603に対応する。入力データ合計数612は、入力データ値バッファ113内の全入力データ数を合計した値であり、入力データ合計値制御部112へ出力する信号である。入力データ合計数612は、出力データ603に応じて増減する。
PEマトリックス101から出力された出力データがストアバッファ111の出力データ603としてセットされる毎に、入力データ値バッファ113に対応する入力データ数がセットされる。ストアバッファ111の出力データ603が出力される毎に、入力データ値バッファ113から対応する入力データ数が削除される。従って、入力データ合計数612の値は、ストアバッファ111の出力データ603が使用した入力データ数の合計となる。
また、アルゴリズムによっては、プロセッシングエレメントの出力データと対応する入力データ数の比が一定の場合がある。そのような場合は、ストアバッファ111内の出力データ数を整数倍して入力データ数を求めても良いことは明らかである。
図7は、入力データ合計値制御部112の構成を示すブロック図である。
図7において、入力データ合計値制御部112は、上記図1で説明したように、PEマトリックス101内の全入力データ数を合計する。信号612は、入力データ値バッファ113から出力された信号である。信号137は、入力データ数137(図9)の信号に対応しており、全プロセッシングエレメントからの出力信号を示している。入力データ数704は、ロードバッファ110内の入力データ数である。入力データ合計値制御部112は、複数の加算器705及び加算器706により全ての入力信号の加算を行う。加算結果は、信号707としてプロセッサ107へ出力され、再ロードアドレス計算に使用される。
次に、本実施の形態の動的再構成可能デバイス故障検出装置内部の各部の動作を図8及び図10乃至図13を参照しながら説明する。
図8は、動的再構成可能デバイス故障検出装置内部の各部間のデータ処理タイミング及びデータ処理の流れを示す図である。図10は、エラー情報保持部105の処理を示すフローチャートである。図11は、プロセッサ107の処理を示すフローチャートである。図12は、PEマトリックスリセット制御部121の処理を示すフローチャートである。図13は、PEマトリックスコア120の処理を示すフローチャートである。
図8において、上方から下方に向かい時間の経過を示している。各部(エラー検出回路103、エラー情報保持部105、PEマトリックスコア120、入力データ合計値制御部112、PEマトリックスリセット制御部121、プロセッサ107、外部メモリ145)の間の矢印は各部間の信号を示している。また、矢印は信号の向かう方向を示している。
図8及び図10乃至図13において、エラー検出回路103は、プロセッシングエレメントのエラーを検出した場合、エラー信号810をエラー情報保持部105に出力し、エラー情報を伝達する。これに伴い、エラー情報保持部105は、エラー情報を保持する(ステップS1)。また、エラー情報保持部105は、割り込み信号812をプロセッサ107に出力し、エラー情報を通知する(ステップS2)。また、エラー情報保持部105は、PEマトリックスコア120の処理を停止するために、機能停止信号811をPEマトリックスコア120に出力し、PEマトリックスコア120の処理を停止する(ステップS3)。
プロセッサ107は、エラー情報保持部105から割り込み信号812を受信した後、エラー情報814を取得する(ステップS11)。プロセッサ107は、エラー情報814を取得した後、割り込みマスク信号840をエラー情報保持部105に出力し、割り込み信号812をマスクする(ステップS12)。プロセッサ107は、割り込み信号812をマスクした後、外部メモリ145から構成情報816(図1の104)を取得する。更に、プロセッサ107は、上記エラー情報814を基に、故障したプロセッシングエレメントを使用しないようにするため、構成情報変更処理817により外部メモリ145の構成情報を新しい構成情報に書き換える(ステップS13)。
その後、プロセッサ107は、取得処理841により入力データ合計値制御部112からPEマトリックス内の入力データ数を取得し、アドレス計算処理818によりPEマトリックス用入力データの再ロードアドレスを計算する(ステップS14)。プロセッサ107は、アドレス計算処理818が終了した後、リセット信号(PEマトリックスデータクリア指示)819をPEマトリックスリセット制御部121に出力する(ステップS15)。
PEマトリックスリセット制御部121は、プロセッサ107からリセット信号819を受信した後(ステップS21)、リセット信号842をPEマトリックスコア120に出力し、PEマトリックスコア120内の全データを無効化する(ステップS22)。この場合、PEマトリックスリセット制御部121により無効化されたデータは、入力データ合計値制御部112により計数する。プロセッサ107は、PEマトリックス101のリセット後、PEマトリックス機能停止解除信号820をエラー情報保持部105に出力する(ステップS16)。
エラー情報保持部105は、PEマトリックス機能停止解除信号820を受信した後、デアサート処理811により機能停止信号をデアサートし、PEマトリックス101を処理可能状態にする(ステップS4)。その後、PEマトリックスコア120は、外部メモリ145から構成情報843をPEマトリックスコア120にロードし、新しい構成情報に変更する(ステップS31)。更に、PEマトリックスコア120は、処理821により入力データをPEマトリックスコア120に再ロードする(ステップS32)。これにより、プロセッシングエレメントが実行中に故障した場合も、LSIを交換することなく正常に処理を再開することができる。
以上説明したように、本実施の形態によれば、LSI製造後のアプリケーション実行中に動的再構成可能デバイス内のプロセッシングエレメントでエラーが発生した場合、エラー情報保持部105によりPEマトリックスコア120の処理を停止する。
更に、プロセッサ107によりエラーが発生したプロセッシングエレメントから外部メモリ145へエラーデータが出力されないように制御し、PEマトリックスリセット制御部121によりPEマトリックスコア120内の全データを無効化する。
更に、エラーが発生したプロセッシングエレメントを使用しないようにするため、プロセッサ107により構成情報を変更した後、無効化したデータに相当する入力データを外部メモリ145から再ロードしてPEマトリックスコア120の処理を再実行する。
これにより、LSI製造後のアプリケーションの実行中にPEマトリックス101内のプロセッシングエレメントでエラーが発生した場合、プロセッシングエレメントのエラーを即座に検出することが可能となる。また、プロセッシングエレメントのエラー検出後も、PEマトリックス101で処理を継続することが可能となる。
[他の実施の形態]
また、本発明の目的は、前述した各実施の形態の機能を実現するソフトウェアのプログラムコードを記憶した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)が記憶媒体に格納されたプログラムコードを読み出し実行することによっても達成される。
この場合、記憶媒体から読み出されたプログラムコード自体が前述した各実施の形態の機能を実現することになり、そのプログラムコード及び該プログラムコードを記憶した記憶媒体は本発明を構成することになる。
また、プログラムコードを供給するための記憶媒体としては、例えば、フロッピー(登録商標)ディスク、ハードディスク、光ディスク、磁気テープ、不揮発性のメモリカード、ROM等を用いることができる。または、プログラムコードをネットワークを介してダウンロードしてもよい。
また、コンピュータが読み出したプログラムコードを実行することにより、前述した各実施の形態の機能が実現されるだけではなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているOS(オペレーティングシステム)等が実際の処理の一部または全部を行い、その処理によって前述した各実施の形態の機能が実現される場合も含まれる。
更に、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、次のプログラムコードの指示に基づき、その拡張機能を拡張ボードや拡張ユニットに備わるCPU等が実際の処理の一部または全部を行い、その処理によって前述した各実施の形態の機能が実現される場合も含まれる。
本発明の実施の形態に係るデバイス故障検出装置としての動的再構成可能デバイス故障検出装置の構成を示すブロック図である。 動的再構成可能デバイス故障検出装置のエラー情報保持部の構成を示すブロック図である。 PEマトリックス内データ数計算例で用いた配線情報を示す図である。 PEマトリックス内データ数計算例で最初の入力状態の入力データ数を示す図である。 PEマトリックス内データ数計算例で図4の状態から4クロックサイクル後の入力データ数を示す図である。 ストアバッファ及び入力データ値バッファの概略構成を示す図である。 入力データ合計値制御部の構成を示すブロック図である。 動的再構成可能デバイス故障検出装置内部の各部間のデータ処理タイミング及びデータ処理の流れを示す図である。 PEマトリックス内部の最小構成要素であるPEの構成を示すブロック図である。 エラー情報保持部の処理を示すフローチャートである。 プロセッサの処理を示すフローチャートである。 PEマトリックスリセット制御部の処理を示すフローチャートである。 PEマトリックスコアの処理を示すフローチャートである。
符号の説明
101 PEマトリックス(ダイナミックリコンフィギャラブルデバイス)
102 ALU(演算器)
103 エラー検出回路(検出手段)
104 構成情報
105 エラー情報保持部
107 プロセッサ(計算手段)
110 ロードバッファ
111 ストアバッファ
112 入力データ合計値制御部
120 PEマトリックスコ
121 PEマトリックスリセット制御部
145 外部メモリ(記憶手段)

Claims (3)

  1. 構成情報を保持する保持手段と、
    演算器を有する処理ユニットを複数備え前記構成情報に従った前記演算器の構成及び前記処理ユニット間の接続に基づいて処理を行うデータ処理手段と、
    前記データ処理手段の備える前記複数の処理ユニットの各々に対応し、対応する処理ユニットにエラーが発生していることを検出する複数の検出手段と、
    前記検出手段によりエラーが発生している処理ユニットが検出されたときに前記データ処理手段が処理していたデータの再読み込みを行うために、次にデータを読み出すアドレスと前記複数の処理ユニットで処理中のデータ数とに基づいて再読み込みを行う記憶手段のアドレスを計算する計算手段と、
    前記検出手段の結果に応じて、前記検出手段によりエラーが検出された処理ユニットが処理に使用されないように、前記演算器の構成及び前記処理ユニット間の接続を動的に変更させる構成情報を前記保持手段に設定し、前記処理ユニットによって前記計算手段により計算したアドレスからデータを読み込ませる再構成処理手段と、
    を備えることを特徴とするダイナミックリコンフィギャラブルデバイス。
  2. 構成情報を保持する保持手段と、演算器を有する処理ユニットを複数備え前記構成情報に従った前記演算器の構成及び前記処理ユニット間の接続に基づいて処理を行うデータ処理手段と、を備えるダイナミックリコンフィギャラブルデバイスの制御方法であって、
    前記データ処理手段の備える前記複数の処理ユニットの各々に対応する複数の検出手段が、前記ダイナミックリコンフィギャラブルデバイス内の前記処理ユニット毎にエラーの発生を検出する検出手順と、
    前記検出手順によりエラーが発生している処理ユニットが検出されたときに前記データ処理手段が処理していたデータの再読み込みを行うために、次にデータを読み出すアドレスと前記複数の処理ユニットで処理中のデータ数とに基づいて再読み込みを行う記憶手段のアドレスを計算する計算手順と、
    前記検出手順におけるエラー検出に伴い前記エラーが検出された処理ユニットが処理に使用されないように、前記演算器の構成及び前記処理ユニット間の接続を動的に変更させる構成情報を前記保持手段に設定し、前記処理ユニットによって前記計算手順により計算したアドレスからデータを読み込ませ再構成処理手順と、を備えることを特徴とする制御方法。
  3. 構成情報を保持する保持手段と、演算器を有する処理ユニットを複数備え前記構成情報に従った前記演算器の構成及び前記処理ユニット間の接続に基づいて処理を行うデータ処理手段と、を備えるダイナミックリコンフィギャラブルデバイスの制御方法をコンピュータに実行させるコンピュータ読み取り可能なプログラムであって、
    前記データ処理手段の備える前記複数の処理ユニットの各々に対応する複数の検出手段からの信号に基づいて、前記ダイナミックリコンフィギャラブルデバイス内の前記処理ユニット毎にエラーの発生を検出する検出手順と、
    前記検出手順によりエラーが発生している処理ユニットが検出されたときに前記データ処理手段が処理していたデータの再読み込みを行うために、次にデータを読み出すアドレスと前記複数の処理ユニットで処理中のデータ数とに基づいて再読み込みを行う記憶手段のアドレスを計算する計算手順と、
    前記検出手順におけるエラー検出に伴い前記エラーが検出された処理ユニットが処理に使用されないように、前記演算器の構成及び前記処理ユニット間の接続を動的に変更させる構成情報を前記保持手段に設定し、前記処理ユニットによって前記計算手順により計算したアドレスからデータを読み込ませ再構成処理手順と、
    をコンピュータに実行させるプログラム。
JP2006006295A 2006-01-13 2006-01-13 ダイナミックリコンフィギャラブルデバイス、制御方法、及びプログラム Expired - Fee Related JP4795025B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006006295A JP4795025B2 (ja) 2006-01-13 2006-01-13 ダイナミックリコンフィギャラブルデバイス、制御方法、及びプログラム
US11/622,738 US7698594B2 (en) 2006-01-13 2007-01-12 Reconfigurable processor and reconfiguration method executed by the reconfigurable processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006006295A JP4795025B2 (ja) 2006-01-13 2006-01-13 ダイナミックリコンフィギャラブルデバイス、制御方法、及びプログラム

Publications (3)

Publication Number Publication Date
JP2007188315A JP2007188315A (ja) 2007-07-26
JP2007188315A5 JP2007188315A5 (ja) 2009-02-19
JP4795025B2 true JP4795025B2 (ja) 2011-10-19

Family

ID=38323569

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006006295A Expired - Fee Related JP4795025B2 (ja) 2006-01-13 2006-01-13 ダイナミックリコンフィギャラブルデバイス、制御方法、及びプログラム

Country Status (2)

Country Link
US (1) US7698594B2 (ja)
JP (1) JP4795025B2 (ja)

Families Citing this family (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100824792B1 (ko) * 2006-07-11 2008-04-24 삼성전자주식회사 커맨드 처리 장치와 방법 및 이를 포함하는 시스템
US9207661B2 (en) * 2007-07-20 2015-12-08 GM Global Technology Operations LLC Dual core architecture of a control module of an engine
JP2009129046A (ja) * 2007-11-21 2009-06-11 Panasonic Corp リコンフィギュラブル回路,リコンフィギュラブル回路の機能変更方法および通信装置
JP5332598B2 (ja) * 2008-12-25 2013-11-06 富士通セミコンダクター株式会社 設計方法及び設計装置
US8464032B2 (en) * 2009-07-10 2013-06-11 Via Technologies, Inc. Microprocessor integrated circuit with first processor that outputs debug information in response to reset by second processor of the integrated circuit
US8762779B2 (en) * 2010-01-22 2014-06-24 Via Technologies, Inc. Multi-core processor with external instruction execution rate heartbeat
US8495344B2 (en) * 2010-01-22 2013-07-23 Via Technologies, Inc. Simultaneous execution resumption of multiple processor cores after core state information dump to facilitate debugging via multi-core processor simulator using the state information
US8370684B2 (en) * 2010-02-16 2013-02-05 Via Technologies, Inc. Microprocessor with system-robust self-reset capability
US8639919B2 (en) 2011-01-18 2014-01-28 Via Technologies, Inc. Tracer configuration and enablement by reset microcode
WO2013100783A1 (en) 2011-12-29 2013-07-04 Intel Corporation Method and system for control signalling in a data path module
US10331583B2 (en) 2013-09-26 2019-06-25 Intel Corporation Executing distributed memory operations using processing elements connected by distributed channels
HRP20221172T1 (hr) 2013-10-29 2023-02-03 Biotech Institute, Llc Uzgoj, proizvodnja, prerada i uporaba specijalnog sinsemilla kanabisa
US9529654B2 (en) * 2013-11-27 2016-12-27 Electronics And Telecommunications Research Institute Recoverable and fault-tolerant CPU core and control method thereof
KR20150062650A (ko) * 2013-11-29 2015-06-08 삼성전자주식회사 재구성 가능 프로세서 제어 방법 및 제어 장치
CN103914404B (zh) * 2014-04-29 2017-05-17 东南大学 一种粗粒度可重构系统中的配置信息缓存装置及压缩方法
JP6040966B2 (ja) * 2014-07-18 2016-12-07 株式会社デンソー 信号処理装置
WO2016075800A1 (ja) * 2014-11-14 2016-05-19 株式会社日立製作所 プログラマブル回路
US10402168B2 (en) 2016-10-01 2019-09-03 Intel Corporation Low energy consumption mantissa multiplication for floating point multiply-add operations
US10474375B2 (en) 2016-12-30 2019-11-12 Intel Corporation Runtime address disambiguation in acceleration hardware
US10416999B2 (en) 2016-12-30 2019-09-17 Intel Corporation Processors, methods, and systems with a configurable spatial accelerator
US10572376B2 (en) 2016-12-30 2020-02-25 Intel Corporation Memory ordering in acceleration hardware
US10558575B2 (en) * 2016-12-30 2020-02-11 Intel Corporation Processors, methods, and systems with a configurable spatial accelerator
DE102017200456A1 (de) * 2017-01-12 2018-07-12 Robert Bosch Gmbh Recheneinheit und Betriebsverfahren hierfür
US10445451B2 (en) 2017-07-01 2019-10-15 Intel Corporation Processors, methods, and systems for a configurable spatial accelerator with performance, correctness, and power reduction features
US10469397B2 (en) 2017-07-01 2019-11-05 Intel Corporation Processors and methods with configurable network-based dataflow operator circuits
US10445234B2 (en) 2017-07-01 2019-10-15 Intel Corporation Processors, methods, and systems for a configurable spatial accelerator with transactional and replay features
US10467183B2 (en) 2017-07-01 2019-11-05 Intel Corporation Processors and methods for pipelined runtime services in a spatial array
US10515046B2 (en) 2017-07-01 2019-12-24 Intel Corporation Processors, methods, and systems with a configurable spatial accelerator
US10387319B2 (en) 2017-07-01 2019-08-20 Intel Corporation Processors, methods, and systems for a configurable spatial accelerator with memory system performance, power reduction, and atomics support features
US10515049B1 (en) 2017-07-01 2019-12-24 Intel Corporation Memory circuits and methods for distributed memory hazard detection and error recovery
US11086816B2 (en) 2017-09-28 2021-08-10 Intel Corporation Processors, methods, and systems for debugging a configurable spatial accelerator
US10496574B2 (en) 2017-09-28 2019-12-03 Intel Corporation Processors, methods, and systems for a memory fence in a configurable spatial accelerator
US10445098B2 (en) 2017-09-30 2019-10-15 Intel Corporation Processors and methods for privileged configuration in a spatial array
US10380063B2 (en) 2017-09-30 2019-08-13 Intel Corporation Processors, methods, and systems with a configurable spatial accelerator having a sequencer dataflow operator
DE102017217908A1 (de) * 2017-10-09 2019-04-11 Robert Bosch Gmbh Recheneinheit und Betriebsverfahren hierfür
US10565134B2 (en) 2017-12-30 2020-02-18 Intel Corporation Apparatus, methods, and systems for multicast in a configurable spatial accelerator
US10417175B2 (en) 2017-12-30 2019-09-17 Intel Corporation Apparatus, methods, and systems for memory consistency in a configurable spatial accelerator
US10445250B2 (en) 2017-12-30 2019-10-15 Intel Corporation Apparatus, methods, and systems with a configurable spatial accelerator
US11307873B2 (en) 2018-04-03 2022-04-19 Intel Corporation Apparatus, methods, and systems for unstructured data flow in a configurable spatial accelerator with predicate propagation and merging
US10564980B2 (en) 2018-04-03 2020-02-18 Intel Corporation Apparatus, methods, and systems for conditional queues in a configurable spatial accelerator
US10853073B2 (en) 2018-06-30 2020-12-01 Intel Corporation Apparatuses, methods, and systems for conditional operations in a configurable spatial accelerator
US10459866B1 (en) 2018-06-30 2019-10-29 Intel Corporation Apparatuses, methods, and systems for integrated control and data processing in a configurable spatial accelerator
US11200186B2 (en) 2018-06-30 2021-12-14 Intel Corporation Apparatuses, methods, and systems for operations in a configurable spatial accelerator
US10891240B2 (en) 2018-06-30 2021-01-12 Intel Corporation Apparatus, methods, and systems for low latency communication in a configurable spatial accelerator
US10678724B1 (en) 2018-12-29 2020-06-09 Intel Corporation Apparatuses, methods, and systems for in-network storage in a configurable spatial accelerator
US11029927B2 (en) 2019-03-30 2021-06-08 Intel Corporation Methods and apparatus to detect and annotate backedges in a dataflow graph
US10965536B2 (en) 2019-03-30 2021-03-30 Intel Corporation Methods and apparatus to insert buffers in a dataflow graph
US10817291B2 (en) 2019-03-30 2020-10-27 Intel Corporation Apparatuses, methods, and systems for swizzle operations in a configurable spatial accelerator
US10915471B2 (en) 2019-03-30 2021-02-09 Intel Corporation Apparatuses, methods, and systems for memory interface circuit allocation in a configurable spatial accelerator
US11037050B2 (en) 2019-06-29 2021-06-15 Intel Corporation Apparatuses, methods, and systems for memory interface circuit arbitration in a configurable spatial accelerator
US11907713B2 (en) 2019-12-28 2024-02-20 Intel Corporation Apparatuses, methods, and systems for fused operations using sign modification in a processing element of a configurable spatial accelerator

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS57143647A (en) * 1981-03-03 1982-09-04 Nec Corp Error recovery system for logical device
JPH0760395B2 (ja) * 1992-11-06 1995-06-28 日本電気株式会社 フォールトトレラントコンピュータシステム
JP3365581B2 (ja) * 1994-07-29 2003-01-14 富士通株式会社 自己修復機能付き情報処理装置
JPH10222389A (ja) * 1997-02-10 1998-08-21 Nec Eng Ltd 全体再構成方式フォールト・トレラント情報処理システム
JP4113934B2 (ja) * 1998-07-09 2008-07-09 株式会社豊田中央研究所 フェールセーフ機能付き情報処理装置
JP2000311156A (ja) * 1999-04-27 2000-11-07 Mitsubishi Electric Corp 再構成可能並列計算機
EP1215569B1 (en) * 1999-08-30 2010-04-28 IP Flex Inc. Data processor
JP2006236106A (ja) * 2005-02-25 2006-09-07 Canon Inc データ処理装置及びデータ処理方法

Also Published As

Publication number Publication date
US20070180315A1 (en) 2007-08-02
US7698594B2 (en) 2010-04-13
JP2007188315A (ja) 2007-07-26

Similar Documents

Publication Publication Date Title
JP4795025B2 (ja) ダイナミックリコンフィギャラブルデバイス、制御方法、及びプログラム
Spainhower et al. IBM S/390 parallel enterprise server G5 fault tolerance: A historical perspective
JP5014899B2 (ja) 再構成可能デバイス
US7620841B2 (en) Re-utilizing partially failed resources as network resources
JP2008311767A (ja) 半導体装置
CN107451019B (zh) 处理器核心中的自测试
US11150899B2 (en) Selecting a precision level for executing a workload in an electronic device
US8095829B1 (en) Soldier-on mode to control processor error handling behavior
US20140053036A1 (en) Debugging multiple exclusive sequences using dsm context switches
Schölzel Software-based self-repair of statically scheduled superscalar data paths
US20090249174A1 (en) Fault Tolerant Self-Correcting Non-Glitching Low Power Circuit for Static and Dynamic Data Storage
Eisenhardt et al. Spatial and temporal data path remapping for fault-tolerant coarse-grained reconfigurable architectures
US10185635B2 (en) Targeted recovery process
KR101478907B1 (ko) 신호 처리 회로 및 이를 사용한 시험 장치
Condia et al. A dynamic reconfiguration mechanism to increase the reliability of GPGPUs
US8332596B2 (en) Multiple error management in a multiprocessor computer system
US10289332B2 (en) Apparatus and method for increasing resilience to faults
CN116893927A (zh) 用于对时钟选通寄存器信号执行错误检测的方法和电路
US7191313B2 (en) Microprocessor
US20020087841A1 (en) Circuit and method for supporting misaligned accesses in the presence of speculative load Instructions
Erez et al. Fault tolerance techniques for the merrimac streaming supercomputer
CN114780283B (zh) 一种故障处理的方法及装置
Magalhães Pereira et al. Dynamic reconfigurable computing: The alternative to homogeneous multicores under massive defect rates
Yao et al. [2009] A stage-level recovery scheme in scalable pipeline modules for high dependability
JPH02132524A (ja) 情報処理装置

Legal Events

Date Code Title Description
RD05 Notification of revocation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7425

Effective date: 20070626

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090106

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090106

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100906

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101116

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110114

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110201

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110426

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20110502

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110727

R151 Written notification of patent or utility model registration

Ref document number: 4795025

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140805

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees