(57)【特許請求の範囲】
【請求項１】
演算処理を行う演算手段と、
自素子から出力される演算結果に異常が無いかを自己診断する自己診断手段と、
自素子とは別の基本論理素子から演算結果の出力権限が放棄されたことを示す権限信号を受け取った場合に、前記演算結果の出力権限が自素子に与えられたものとして、前記自己診断手段による診断結果に基づいて前記演算結果の出力権限を保持するか否かを決定するとともに、前記自己診断手段によって前記演算結果に異常があると診断された場合に、前記演算結果の出力権限を保持せずに放棄することを示す権限信号を出力する管理手段と、
前記管理手段によって前記出力権限が保持されているか否かに基づいて、前記演算手段による演算結果を出力するか否かを制御する出力制御手段と、
を備えた、基本論理素子。
【請求項２】
前記管理手段は、前記自己診断手段によって前記演算結果に異常がないと診断された場合、前記出力権限を保持し、前記自己診断手段によって前記演算結果に異常があると診断された場合、前記出力権限を保持せずに放棄するように構成され、
前記出力制御手段は、前記管理手段によって前記出力権限が保持されている場合、前記演算手段による演算結果を出力し、前記管理手段によって前記出力権限が放棄されている場合、前記演算手段による演算結果の出力を停止するように構成されている、
請求項１に記載の基本論理素子。
【請求項３】
前記自己診断手段は、前記演算手段による演算結果から得られた自己診断データと、自素子とは別の少なくとも一つ以上の基本論理素子から出力された自己診断データと、を比較することによって、自素子から出力される演算結果に異常が無いかを自己診断するように構成されている、
請求項１又は２に記載の基本論理素子。
【請求項４】
前記自己診断手段は、前記演算手段による演算結果から得られた自己診断データが、当該自己診断データ、及び、自素子とは別の前記少なくとも一つ以上の基本論理素子から出力された自己診断データ、のうち多数を占める値を示すか否かによって、自素子から出力される演算結果に異常が無いかを自己診断するように構成されている、
請求項３に記載の基本論理素子。
【請求項５】
前記管理手段は、前記自己診断手段によって前記演算結果に異常があると診断された場合、自素子とは別の前記少なくとも一つ以上の基本論理素子から出力された自己診断データを、自素子の自己診断データの代わりに出力させるように構成されている、
請求項３又は４に記載の基本論理素子。
【請求項６】
ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）上に設けられた複数の基本論理素子の少なくとも一つ以上に用いられる、
請求項１〜５の何れか一項に記載の基本論理素子。
【請求項７】
並列に設けられた複数の基本論理素子を備え、
前記複数の基本論理素子の各々は、
演算処理を行う演算手段と、
自素子から出力される演算結果に異常が無いかを自己診断する自己診断手段と、
前記複数の基本論理素子のうちの何れか一つのみに与えられる前記演算結果の出力権限が自素子に与えられた場合に、前記自己診断手段による診断結果に基づいて前記演算結果の出力権限を保持するか否かを決定するとともに、前記自己診断手段によって前記演算結果に異常があると診断された場合に、前記演算結果の出力権限を保持せずに放棄することを示す権限信号を自素子とは別の基本論理素子に出力することによって、自素子とは別の基本論理素子に前記演算結果の出力権限を移行させる、管理手段と、
前記管理手段によって前記出力権限が保持されているか否かに基づいて、前記演算手段による演算結果を出力するか否かを制御する出力制御手段と、
を有する、半導体装置。
【請求項８】
演算処理を行うステップと、
演算結果に異常が無いかを自己診断するステップと、
自素子とは別の基本論理素子から演算結果の出力権限が放棄されたことを示す権限信号を受け取った場合に、前記演算結果の出力権限が自素子に与えられたものとして、自己診断の結果に基づいて前記演算結果の出力権限を保持するか否かを決定するとともに、自己診断によって前記演算結果に異常があると診断された場合に、前記演算結果の出力権限を保持せずに放棄することを示す権限信号を出力するステップと、
前記出力権限が保持されているか否かに基づいて、前記演算結果を出力するか否かを制御するステップと、
を備えた、基本論理素子の出力制御方法。
【請求項９】
演算処理を行う演算手段と、自素子から出力される演算結果に異常が無いかを自己診断する自己診断手段と、自素子とは別の基本論理素子から演算結果の出力権限が放棄されたことを示す権限信号を受け取った場合に、前記演算結果の出力権限が自素子に与えられたものとして、前記自己診断手段による診断結果に基づいて前記演算結果の出力権限を保持するか否かを決定するとともに、前記自己診断手段によって前記演算結果に異常があると診断された場合に、前記演算結果の出力権限を保持せずに放棄することを示す権限信号を出力する管理手段と、前記管理手段によって前記出力権限が保持されているか否かに基づいて、前記演算手段による演算結果を出力するか否かを制御する出力制御手段と、を備えた、基本論理素子を複数組み合わせることにより所定の回路を構成する処理を、
コンピュータに実行させる制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、基本論理素子、それを備えた半導体装置、基本論理素子の出力制御方法、及び、制御プログラムに関する。
【背景技術】
【０００２】
ＦＰＧＡでは、信頼性向上のため、例えば、複数の基本論理素子に同一の演算処理を行わせて多数を占める値の演算結果を正式な演算結果として採用する冗長回路の構成が用いられている。なお、ＦＰＧＡは、Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙの略である。また、基本論理素子は、ＢＬＥ（Ｂａｓｉｃ  Ｌｏｇｉｃ  Ｅｌｅｍｅｎｔ）とも称す。【０００３】
関連する技術が非特許文献１に開示されている。非特許文献１に開示された冗長回路は、同一の演算処理を並行して行う複数の演算回路と、複数の演算回路による演算結果のうち多数を占める値の演算結果を選択して出力する多数決回路と、を備える。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】D. Alnajjar, H. Konoura, Y. Mitsuyama, H. Shimada, K. Kobayashi, H. Kanbara, H. Ochi, T. Imagawa, S. Noda, K. Wakabayashi, M. Hashimoto, T. Onoye, and H. Onodera, "Reliability-Configurable Mixed-Grained Reconfigurable Array Supporting C-To-Array Mapping and Its Radiation Testing", in Proc. IEEE A-SSCC, 2013, pp. 313-316.
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、非特許文献１に開示された冗長回路の構成では、複数の演算回路による演算結果が集中する単一故障点である多数決回路に異常（故障）が発生した場合、正しい演算結果を出力することができなかった。つまり、非特許文献１に開示された冗長回路の構成では、依然として信頼性を向上させることができない、という課題があった。【０００６】
本開示の目的は、上述した課題を解決する基本論理素子、それを備えた半導体装置、基本論理素子の出力制御方法、及び、制御プログラムを提供することにある。
【課題を解決するための手段】
【０００７】
一実施の形態によれば、基本論理素子は、演算処理を行う演算部と、自素子から出力される演算結果に異常が無いかを自己診断する自己診断部と、前記自己診断部による診断結果に基づいて前記演算結果の出力権限を保持するか否かを決定するとともに、その決定結果を権限信号として出力する管理部と、前記管理部によって前記出力権限が保持されているか否かに基づいて、前記演算部による演算結果を出力するか否かを制御する出力制御部と、を備える。【０００８】
一実施の形態によれば、半導体装置は、並列に設けられた複数の基本論理素子を備え、前記複数の基本論理素子の各々は、演算処理を行う演算部と、自素子から出力される演算結果に異常が無いかを自己診断する自己診断部と、前記自己診断部による診断結果に基づいて前記演算結果の出力権限を保持するか否かを決定するとともに、その決定結果を権限信号として出力する管理部と、前記管理部によって前記出力権限が保持されているか否かに基づいて、前記演算部による演算結果を出力するか否かを制御する出力制御部と、を有する。【０００９】
一実施の形態によれば、基本論理素子の出力制御方法は、演算処理を行うステップと、
演算結果に異常が無いかを自己診断するステップと、自己診断の結果に基づいて前記演算結果の出力権限を保持するか否かを決定するとともに、その決定結果を権限信号として出力するステップと、前記出力権限が保持されているか否かに基づいて、前記演算結果を出力するか否かを制御するステップと、を備える。【００１０】
一実施の形態によれば、制御プログラムは、演算処理を行う演算部と、自素子から出力される演算結果に異常が無いかを自己診断する自己診断部と、前記自己診断部による診断結果に基づいて前記演算結果の出力権限を保持するか否かを決定するとともに、その決定結果を権限信号として出力する管理部と、前記管理部によって前記出力権限が保持されているか否かに基づいて、前記演算部による演算結果を出力するか否かを制御する出力制御部と、を備えた、基本論理素子を複数組み合わせることにより所定の回路を構成する処理を、コンピュータに実行させる。
【発明の効果】
【００１１】
前記一実施の形態によれば、信頼性を向上させることが可能な基本論理素子、それを備えた半導体装置、基本論理素子の出力制御方法、及び、制御プログラムを提供することができる。
【図面の簡単な説明】
【００１２】
【図１】実施の形態１にかかる基本論理素子の構成例を示すブロック図である。
【図２】図１に示す基本論理素子が用いられた冗長回路の構成例を示すブロック図である。
【図３】実施の形態２にかかる基本論理素子の構成例を示すブロック図である。
【図４】図３に示す基本論理素子の具体的な構成例を示す図である。
【図５】図３に示す基本論理素子が用いられた冗長回路の構成例を示すブロック図である。
【図６】実施の形態１に至る前の構想にかかる基本論理素子の構成例を示すブロック図である。
【図７】図６に示す基本論理素子が用いられた冗長回路の構成例を示すブロック図である。
【発明を実施するための形態】
【００１３】
以下、図面を参照しつつ、実施の形態について説明する。なお、図面は簡略的なものであるから、この図面の記載を根拠として実施の形態の技術的範囲を狭く解釈してはならない。また、同一の要素には、同一の符号を付し、重複する説明は省略する。
【００１４】
以下の実施の形態においては便宜上その必要があるときは、複数のセクションまたは実施の形態に分割して説明する。ただし、特に明示した場合を除き、それらはお互いに無関係なものではなく、一方は他方の一部または全部の変形例、応用例、詳細説明、補足説明等の関係にある。また、以下の実施の形態において、要素の数等（個数、数値、量、範囲等を含む）に言及する場合、特に明示した場合および原理的に明らかに特定の数に限定される場合等を除き、その特定の数に限定されるものではなく、特定の数以上でも以下でもよい。
【００１５】
さらに、以下の実施の形態において、その構成要素（動作ステップ等も含む）は、特に明示した場合および原理的に明らかに必須であると考えられる場合等を除き、必ずしも必須のものではない。同様に、以下の実施の形態において、構成要素等の形状、位置関係等に言及するときは、特に明示した場合および原理的に明らかにそうでないと考えられる場合等を除き、実質的にその形状等に近似または類似するもの等を含むものとする。このことは、上記数等（個数、数値、量、範囲等を含む）についても同様である。
【００１６】
＜事前検討＞
まず、本発明者によって事前検討された基本論理素子及びそれを備えた冗長回路について説明する。
【００１７】
図６は、実施の形態１に至る前の構想にかかる基本論理素子５０の構成例を示すブロック図である。図６に示す基本論理素子５０は、例えば、ＦＰＧＡを構成する複数の基本論理素子の一部又は全部に用いられる。ＦＰＧＡでは、配線上に設けられた複数のバストランジスタのオンオフを切り替えて、これら複数の基本論理素子間の接続関係を切り替えることにより、所望の回路構成が実現されている。
【００１８】
具体的には、基本論理素子（ＢＬＥ）５０は、ルックアップテーブル（ＬＵＴ）５１と、フリップフロップ５２と、セレクタ５３，５４と、を備える。ルックアップテーブル５１は、例えば入力信号ＤＩ０〜ＤＩ４に応じた値を出力する。セレクタ５３は、ルックアップテーブル５１の出力信号、及び、入力信号ＩＰＩＮの何れかを選択して出力する。なお、入力信号ＩＰＩＮは、例えば、複数の基本論理素子がカスケード接続して用いられる場合における、自素子とは別の基本論理素子の出力信号などである。フリップフロップ５２は、セレクタ５３によって選択された信号を、クロック信号ＣＬＫに同期して取り込み、出力する。セレクタ５４は、セレクタ５３によって選択された信号、及び、フリップフロップ５２の出力信号の何れかを選択して、基本論理素子５０の出力信号ＯＰＩＮとして出力する。
【００１９】
≪基本論理素子５０が用いられた冗長回路５００の構成例≫
図７は、基本論理素子５０が用いられた冗長回路５００の構成例を示すブロック図である。冗長回路５００は、同一の演算処理を並行して行う３個の基本論理素子５０（以下、基本論理素子５０＿１〜５０＿３と称す）と、基本論理素子５０＿１〜５０＿３の出力信号のうち多数を占める値の出力信号を選択して出力する多数決回路６０と、を備える。それにより、冗長回路５００は、基本論理素子５０＿１〜５０＿３のうち、例えば基本論理素子５０＿１が故障した場合でも、故障していない基本論理素子５０＿２，５０＿３の出力信号を正式な出力信号として採用することができる。つまり、冗長回路５００は、信頼性を向上させることができる。なお、本例では、冗長回路５００に同一の演算処理を行う３個の基本論理素子５０が設けられた場合について説明しているが、当然ながら４個以上の基本論理素子５０が設けられても良い。
【００２０】
しかしながら、冗長回路５００の構成では、基本論理素子５０＿１〜５０＿３の出力信号が集中する単一故障点である多数決回路６０に異常（故障）が発生した場合、正しい出力信号を出力することができなかった。つまり、冗長回路５００の構成では、依然として信頼性を向上させることができなかった。
【００２１】
そこで、そのような問題を解決することが可能な、実施の形態１にかかる基本論理素子１及びそれを備えた冗長回路１００が見いだされた。
【００２２】
＜実施の形態１＞
図１は、実施の形態１にかかる基本論理素子１の構成例を示すブロック図である。
図１に示す基本論理素子１は、例えば、ＦＰＧＡを構成する複数の基本論理素子の一部又は全部に用いられる。ＦＰＧＡでは、配線上に設けられた複数のバストランジスタのオンオフを切り替えて、これら複数の基本論理素子間の接続関係を切り替えることにより、所望の回路構成が実現される。
【００２３】
具体的には、基本論理素子１は、演算部１１と、自己診断部１２と、管理部１３と、出力制御部１４と、を少なくとも備える。
【００２４】
演算部１１は、入力信号ＤＩに対して演算処理を実行して、演算結果を出力する。演算部１１は、ルックアップテーブルのほか、ＭＣＵ（Ｍｉｃｒｏ−Ｃｏｎｔｒｏｌｌｅｒ  Ｕｎｉｔ）、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）及びＶＰＥ（Ｖｅｃｔｏｒ  Ｐｒｏｃｅｓｓｉｎｇ  Ｅｌｅｍｅｎｔ）等の演算器であっても良い。
【００２５】
自己診断部１２は、基本論理素子（自素子）１から出力端子ＯＰＩＮを介して外部に出力される演算結果に異常が無いかを診断する。例えば、自己診断部１２は、演算部１１による演算結果と、自素子から出力端子ＯＰＩＮを介して外部に出力される演算結果と、を比較する。そして、自己診断部１２は、演算部１１による演算結果と、自素子から出力端子ＯＰＩＮを介して外部に出力される演算結果と、の比較結果が一致する場合、自素子から出力端子ＯＰＩＮを介して外部に出力される演算結果に異常がないと診断する。他方、自己診断部１２は、演算部１１による演算結果と、自素子から出力端子ＯＰＩＮを介して外部に出力される演算結果と、の比較結果が一致しない場合、自素子から出力端子ＯＰＩＮを介して外部に出力される演算結果に異常があると診断する。
【００２６】
なお、自己診断部１２による自己診断方法は、上記以外の様々な診断方法が用いられて良い。例えば、自己診断部１２は、演算部１１による演算結果と、自素子から出力端子ＯＰＩＮを介して外部に出力される演算結果と、をそれぞれ一定期間蓄積させたうえで比較しても良い。
【００２７】
管理部１３は、自素子による演算結果の出力権限（データ出力権限）を保持するか否かを管理する。
【００２８】
例えば、管理部１３は、第１の別の基本論理素子１からデータ出力権限を放棄する（換言すると、データ出力権限を移行させる）ことを示す権限信号ＭＲＩを受け取ることによって、データ出力権限を得ることができる。ここで、管理部１３は、自己診断部１２による自己診断結果に基づいて、データ出力権限を保持し続けるか否かを決定する。
【００２９】
例えば、管理部１３は、自己診断部１２によって自素子の演算結果に異常がないと診断された場合、データ出力権限を引き続き保持し、異常があると診断された場合、データ出力権限を保持せずに放棄する。管理部１３は、データ出力権限を保持するか否かを示す権限信号ＭＲＯを、第２の別の基本論理素子に出力する。
【００３０】
出力制御部１４は、例えば、トライステートバッファであって、管理部１３によってデータ出力権限が保持されているか否かに応じて、演算部１１による演算結果を、出力端子ＯＰＩＮを介して自素子の外部（例えば共有バス）に出力するか否かを制御する。
【００３１】
例えば、管理部１３によってデータ出力権限が保持されている場合、出力制御部１４は、演算部１１による演算結果を、出力端子ＯＰＩＮを介して自素子の外部に出力する。それに対し、管理部１３によってデータ出力権限が放棄されている場合、出力制御部１４は、演算部１１による演算結果を、自素子の外部に出力するのを停止する。
【００３２】
≪基本論理素子１が用いられた冗長回路１００の構成例≫
図２は、基本論理素子１が用いられた冗長回路１００の構成例を示すブロック図である。冗長回路１００は、同一の演算処理を並行して行う３個の基本論理素子１（以下、基本論理素子１＿１〜１＿３と称す）を備える。なお、本例では、冗長回路１００に同一の演算処理を行う３個の基本論理素子１が設けられた場合について説明するが、２個以上の基本論理素子１が設けられていれば良い。
【００３３】
冗長回路１００では、例えば、基本論理素子１＿１〜１＿３のうち基本論理素子１＿１に対してデータ出力権限が与えられる。データ出力権限が与えられた基本論理素子１＿１は、自素子に異常が無いか自己診断を行い、異常が無いと診断された場合、演算部１１による演算結果を自素子の外部に出力する。なお、このとき、基本論理素子１＿１によってデータ出力権限が保持されており、基本論理素子１＿２，１＿３はデータ出力権限を持たない。そのため、基本論理素子１＿２，１＿３から演算結果は出力されない。したがって、冗長回路１００では、基本論理素子１＿１の出力信号が、正式な出力信号として用いられる。
【００３４】
それに対し、基本論理素子１＿１は、自素子の演算結果に異常があると診断された場合、演算部１１による演算結果を自素子の外部に出力するのを停止する。このとき、基本論理素子１＿１によって保持されていたデータ出力権限は放棄され、例えば、基本論理素子１＿２に移行する。データ出力権限が与えられた基本論理素子１＿２は、自素子に異常が無いか自己診断を行い、異常が無いと診断された場合、演算部１１による演算結果を自素子の外部に出力する。なお、このとき、基本論理素子１＿２によってデータ出力権限が保持されており、基本論理素子１＿１，１＿３はデータ出力権限を持たない。そのため、基本論理素子１＿１，１＿３から演算結果は出力されない。したがって、冗長回路１００では、基本論理素子１＿２の出力信号が、正式な出力信号として用いられる。
【００３５】
同様にして、基本論理素子１＿２は、自素子の演算結果に異常があると診断された場合、演算部１１による演算結果を自素子の外部に出力するのを停止する。このとき、基本論理素子１＿２によって保持されていたデータ出力権限は放棄され、例えば、基本論理素子１＿３に移行する。データ出力権限が与えられた基本論理素子１＿３は、自素子に異常が無いか自己診断を行い、異常が無いと診断された場合、演算部１１による演算結果を自素子の外部に出力する。なお、このとき、基本論理素子１＿３によってデータ出力権限が保持されており、基本論理素子１＿１，１＿２はデータ出力権限を持たない。そのため、基本論理素子１＿１，１＿２から演算結果は出力されない。したがって、冗長回路１００では、基本論理素子１＿３の出力信号が、正式な出力信号として用いられる。
【００３６】
このように、本実施の形態にかかる基本論理素子１は、自己診断によって自素子に異常があると診断された場合、演算結果の出力を停止して自素子を全体構成から離脱（セルフパージング）させるとともに、データ出力権限を別の基本論理素子１に移行させる。このような基本論理素子１を用いて構成された冗長回路１００は、単一故障点となる多数決回路等を備える必要がないため、信頼性を向上させることができる。
【００３７】
＜実施の形態２＞
図３は、実施の形態２にかかる基本論理素子２の構成例を示すブロック図である。
基本論理素子２では、自己診断部１２が、自素子の演算結果（自己診断データ）だけでなく、自素子とは別の基本論理素子２から出力された演算結果（自己診断データ）を用いて、自己診断を行っている。以下、具体的に説明する。
【００３８】
図３に示すように、基本論理素子２は、基本論理素子１の構成に加えて、シリアルパラレル変換部１５と、バッファ１６と、スイッチ１７，１８と、を備える。なお、シリアルパラレル変換部１５及びバッファ１６は、演算処理の一部であり、必要に応じて省略されても良い。
【００３９】
シリアルパラレル変換部１５は、演算部１１によるシリアルの演算結果をパラレルに変換する。出力制御部１４は、シリアルパラレル変換部１５の出力を、自素子から出力端子ＯＰＩＮを介して外部に出力するか否かを制御する。バッファ１６は、演算部１１による演算結果（より詳細には、シリアルパラレル変換部１５の出力）をドライブして出力する。
【００４０】
自己診断部１２は、自素子において生成された演算結果（自己診断データ）と、別の基本論理素子２から入力端子ＬＤＩに供給された自己診断データと、さらに別の基本論理素子２から入力端子ＲＤＩに供給された自己診断データと、を比較する。そして、自己診断部１２は、その比較結果に基づいて、自素子から出力端子ＯＰＩＮを介して外部に出力される演算結果に異常が無いかを診断する。以下、自素子の入力端子ＬＤＩに自己診断データを供給する自素子とは別の基本論理素子２を、第１の別の基本論理素子２と称し、自素子の入力端子ＲＤＩに自己診断データを供給する自素子とは別の基本論理素子２を、第２の別の基本論理素子２と称す。
【００４１】
例えば、自素子において生成された自己診断データが、３つの自己診断データのうち多数を占める値を示す場合、自己診断部１２は、自素子から出力端子ＯＰＩＮを介して外部に出力される演算結果に異常が無いと診断する。他方、自素子において生成された自己診断データが、３つの自己診断データのうち多数を占める値を示さない場合、自己診断部１２は、自素子から出力端子ＯＰＩＮを介して外部に出力される演算結果に異常があると診断する。
【００４２】
なお、本実施の形態では、自己診断部１２が、自素子において生成された自己診断データと、自素子とは別の２つの基本論理素子２のそれぞれから出力された自己診断データと、を比較する場合について説明しているが、これに限られない。自己診断部１２は、自素子において生成された自己診断データを含む２つ以上の自己診断データを比較する構成に適宜変更可能である。
【００４３】
管理部１３は、自素子による演算結果の出力権限（データ出力権限）を保持するか否かを管理する。
【００４４】
例えば、管理部１３は、第１の別の基本論理素子２からデータ出力権限を放棄する（換言すると、データ出力権限を移行させる）ことを示す権限信号ＭＲＩを受け取ることによって、データ出力権限を得ることができる。ここで、管理部１３は、自己診断部１２による自己診断結果に基づいて、データ出力権限を保持し続けるか否かを決定する。
【００４５】
例えば、管理部１３は、自己診断部１２によって自素子の演算結果に異常がないと診断された場合、データ出力権限を引き続き保持し、異常があると診断された場合、データ出力権限を保持せずに放棄する。管理部１３は、データ出力権限を保持するか否かを示す権限信号ＭＲＯを、第２の別の基本論理素子２に出力する。
【００４６】
さらに、管理部１３は、自己診断部１２による自己診断結果に基づいて、スイッチ１７，１８の切り替えを制御する。スイッチ１７は、自素子において生成された自己診断データと、第１の別の基本論理素子２から入力端子ＬＤＩに供給された自己診断データと、の何れかを選択して出力する。スイッチ１８は、自素子において生成された自己診断データと、第２の別の基本論理素子２から入力端子ＲＤＩに供給された自己診断データと、の何れかを選択して出力する。
【００４７】
例えば、自己診断部１２によって自素子の演算結果に異常がないと診断された場合、スイッチ１７は、自素子において生成された自己診断データを選択して、出力端子ＬＤＯを介して、第２の別の基本論理素子２に出力する。また、このとき、スイッチ１８は、自素子において生成された自己診断データを選択して、出力端ＲＬＤＯを介して、第１の別の基本論理素子２に出力する。
【００４８】
それに対し、自己診断部１２によって自素子の演算結果に異常があると診断された場合、スイッチ１７は、第１の別の基本論理素子２から入力端子ＬＤＩに供給された自己診断データを選択して、出力端子ＬＤＯを介して、第２の別の基本論理素子２に出力する。また、このとき、スイッチ１８は、第２の別の基本論理素子２から入力端子ＲＤＩに供給された自己診断データを選択して、出力端子ＲＤＯを介して、第１の別の基本論理素子２に出力する。
【００４９】
つまり、基本論理素子２は、自己診断部１２によって自素子の演算結果に異常があると診断された場合、自素子において生成された自己診断データを、別の基本論理素子２に出力しないようにする。このとき、基本論理素子２は、自素子において生成された自己診断データの代わりに、第１の別の基本論理素子２の自己診断データを、自素子を介して、第２の別の基本論理素子２に出力する。また、基本論理素子２は、自素子において生成された自己診断データの代わりに、第２の別の基本論理素子２の自己診断データを、自素子を介して、第１の別の基本論理素子２に出力する。
【００５０】
換言すると、基本論理素子２は、自素子に異常が無いという診断結果により冗長構成から離脱していない状態では、自素子において生成された自己診断データを（右側の）第２の別の基本論理素子２へ伝搬させる。他方、基本論理素子２は、自素子に異常があるという診断結果により冗長構成から離脱した場合、（左側の）第１の別の基本論理素子２から入力される自己診断データを、自己をバイパスして、（右側の）第２の別の基本論理素子２に伝搬させる。同様にして、基本論理素子２は、自素子に異常が無いという診断結果により冗長構成から離脱していない状態では、自素子において生成された自己診断データを（左側の）第１の別の基本論理素子２へ伝搬させる。他方、基本論理素子２は、自素子に異常があるという診断結果により冗長構成から離脱した場合、（右側の）第２の別の基本論理素子２から入力される自己診断データを、自己をバイパスして、（左側の）第１の別の基本論理素子２に伝搬させる。
【００５１】
基本論理素子２のその他の構成については、基本論理素子１の場合と同様であるため、その説明を省略する。
【００５２】
≪基本論理素子２の具体的な構成の一例≫
図４は、基本論理素子２の具体的な構成例を基本論理素子２ａとして示す図である。
図４に示すように、基本論理素子２ａは、ＧＣＥ（Ｇｎｅｒｉｃ  Ｃｏｒｅ  Ｅｌｅｍｅｎｔ）２１と、フリップフロップ２２，２３と、セレクタ２４〜２９と、を備える。
【００５３】
なお、ＧＣＥ２１は、図３における管理部１３の一部、自己診断部１２、及び、演算部１１の機能を有する。セレクタ２４，２６及びフリップフロップ２２を含む回路群は、例えば、図３における出力制御部１４の機能を有する。セレクタ２５，２７及びフリップフロップ２３を含む回路群は、例えば、図３における管理部１３の一部の機能を有する。セレクタ２８は、図３におけるスイッチ１７に相当する。セレクタ２９は、図３におけるスイッチ１８に相当する。
【００５４】
ＧＣＥ２１は、演算部１１の機能として、入力信号ＤＩ０〜ＤＩ４に対して演算処理を実行して、演算結果を出力する。ＧＣＥ２１は、ルックアップテーブルのほか、ＭＣＵ、ＤＳＰ及びＶＰＥ等の演算器であっても良い。
【００５５】
また、ＧＣＥ２１は、自己診断部１２の機能として、自素子で生成された自己診断データと、第１の別の基本論理素子２から入力端子ＬＤＩに供給された自己診断データと、第２の別の基本論理素子２から入力端子ＲＤＩに供給された自己診断データと、を比較する。そして、ＧＣＥ２１は、その比較結果に基づいて、自素子から出力される演算結果に異常が無いかを診断する。
【００５６】
また、ＧＣＥ２１は、管理部１３の機能として、データ出力権限を保持するか否かを管理する。例えば、ＧＣＥ２１は、第１の別の基本論理素子２からデータ出力権限を放棄することを示す権限信号ＭＲＩを受け取った場合、セレクタ２５の選択を切り替えることによって、データ出力権限をフリップフロップ２３に保持させる。ここで、ＧＣＥ２１は、自己診断結果に基づいて、データ出力権限を保持し続けるか否かを決定する。
【００５７】
例えば、ＧＣＥ２１は、自素子の演算結果に異常が無いと診断された場合、データ出力権限をフリップフロップ２３に引き続き保持させ、異常があると診断された場合、フリップフロップ２３に保持されたデータ出力権限を放棄させる。このフリップフロップ２３の出力は、権限信号ＭＲＯとして、例えば第２の別の基本論理素子２に出力される。なお、ＧＣＥ２１は、自素子の演算結果に異常があると診断された場合、セレクタ２７の選択を切り替えることによって、権限信号ＭＲＩを、フリップフロップ２３を介さずにそのまま権限信号ＭＲＯとして出力させることもできる。
【００５８】
さらに、ＧＣＥ２１は、管理部１３の機能として、自己診断結果に基づいて、セレクタ２８，２９の切り替えを制御する。セレクタ２８は、自素子において生成された自己診断データと、第１の別の基本論理素子２から入力端子ＬＤＩに供給された自己診断データと、の何れかを選択して、出力端子ＬＤＯを介して、第２の別の基本論理素子２に出力する。セレクタ２９は、自素子において生成された自己診断データと、第２の別の基本論理素子２から入力端子ＲＤＩに供給された自己診断データと、の何れかを選択して、出力端子ＲＤＯを介して、第１の別の基本論理素子２に出力する。セレクタ２８，２９の動作については、スイッチ１７，１８と同様であるため、その説明を省略する。
【００５９】
セレクタ２４，２６及びフリップフロップ２２を含む回路群は、出力制御部１４の機能として、フリップフロップ２３にデータ出力権限が保持されているか否かに応じて、ＧＣＥ２１による演算結果を自素子の外部に出力するか否かを制御する。セレクタ２４，２６及びフリップフロップ２２を含む回路群の動作については、出力制御部１４の動作と同様であるため、その説明を省略する。
【００６０】
なお、基本論理素子２の具体的な構成は、図３に示す構成に限られず、同等の機能を実現可能な他の構成に適宜変更可能である。
【００６１】
≪基本論理素子２が用いられた冗長回路２００の構成例≫
図５は、基本論理素子２が用いられた冗長回路２００の構成例を示すブロック図である。冗長回路２００は、同一の演算処理を並行して行う４個の基本論理素子２（以下、基本論理素子２＿１〜２＿４と称す）を少なくとも備える。なお、本例では、冗長回路２００に同一の演算処理を行う４個の基本論理素子２が設けられた場合について説明するが、２個以上の基本論理素子２が設けられていれば良い。
【００６２】
冗長回路２００では、例えば、基本論理素子２＿１〜２＿４のうち基本論理素子２＿１に対してデータ出力権限が与えられる。データ出力権限が与えられた基本論理素子２＿１は、自素子において生成された自己診断データと、基本論理素子２＿４，２＿１のそれぞれから出力された自己診断データと、を比較することにより、自素子に異常が無いか自己診断を行う。ここで、基本論理素子２＿１は、異常がないと診断された場合、演算結果を自素子の外部に出力する。このとき、基本論理素子２＿１によってデータ出力権限が保持されており、基本論理素子２＿２〜２＿４はデータ出力権限を持たない。そのため、基本論理素子２＿２〜２＿４から演算処理は出力されない。したがって、冗長回路２００では、基本論理素子２＿１の出力信号が、正式な出力信号として用いられる。
【００６３】
それに対し、基本論理素子２＿１は、自素子の演算結果に異常があると診断された場合、自素子の演算結果の出力を停止する。このとき、基本論理素子２＿１によって保持されていたデータ出力権限は放棄され、例えば、基本論理素子２＿２に移行する。データ出力権限が与えられた基本論理素子２＿２は、自素子において生成された自己診断データと、基本論理素子２＿１，２＿３のそれぞれから出力された自己診断データと、を比較することにより、自素子に異常が無いか自己診断を行う。ここで、基本論理素子２＿２は、異常がないと診断された場合、演算結果を自素子の外部に出力する。このとき、基本論理素子２＿２によってデータ出力権限が保持されており、基本論理素子２＿１，２＿３，２＿４はデータ出力権限を持たない。そのため、基本論理素子２＿１，２＿３，２＿４から演算処理は出力されない。したがって、冗長回路２００では、基本論理素子２＿２の出力信号が、正式な出力信号として用いられる。
【００６４】
同様にして、基本論理素子１＿２は、自素子の演算結果に異常があると診断された場合、演算部１１による演算結果を自素子の外部に出力するのを停止する。このとき、基本論理素子１＿２によって保持されていたデータ出力権限は放棄され、例えば、基本論理素子１＿３に移行する。基本論理素子２＿３，２＿４の動作については、基本的には基本論理素子２＿１の場合と基本的には同様であるため、その説明を省略する。
【００６５】
このように、本実施の形態にかかる基本論理素子２は、自己診断によって自素子に異常があると診断された場合、演算結果の出力を停止して自素子を全体構成から離脱（セルフパージング）させるとともに、データ出力権限を別の基本論理素子２に移行させる。このような基本論理素子２を用いて構成された冗長回路２００は、単一故障点となる多数決回路等を備える必要がないため、信頼性を向上させることができる。
【００６６】
特に、高い耐放射線性が求められる宇宙機搭載用ＦＰＧＡをコスト削減のため民生品ベースで開発する場合、基本論理素子１，２を用いて構成された冗長回路を用いることで、民生品の回路技術を大きく変更すること無く、高い信頼性を維持することができる。
【００６７】
以上、図面を参照して、本開示の実施の形態について詳しく説明してきたが、具体的な構成は上述のものに限られることはなく、本開示の要旨を逸脱しない範囲内において様々な設計変更等が可能である。
【００６８】
上記実施の形態１，２では、基本論理素子１，２が、ＦＰＧＡ上に設けられた複数の基本論理素子の一部又は全部に用いられた場合を例に説明したが、これに限られない。基本論理素子１，２は、例えば、動的再構成プロセッサ（Ｄｙｎａｍｉｃ  Ｒｅｃｏｎｆｉｇｕｒａｂｌｅ  Ｐｒｏｃｅｓｓｏｒ：ＤＲＰ）に設けられた複数の基本論理素子の一部又は全部に用いられても良い。
【００６９】
また、ＦＰＧＡや動的再構成プロセッサに設けられた複数の基本論理素子１（又は基本論理素子２）の間の接続関係を切り替えることによって所定の回路構成を実現する処理を、ＣＰＵにコンピュータプログラムを実行させることにより実現することが可能である。なお、ＣＰＵは、Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔの略である。
【００７０】
また、上述したプログラムは、様々なタイプの非一時的なコンピュータ可読媒体（ｎｏｎ−ｔｒａｎｓｉｔｏｒｙ  ｃｏｍｐｕｔｅｒ  ｒｅａｄａｂｌｅ  ｍｅｄｉｕｍ）を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体（ｔａｎｇｉｂｌｅ  ｓｔｏｒａｇｅ  ｍｅｄｉｕｍ）を含む。非一時的なコンピュータ可読媒体は、例えば、磁気記録媒体、光磁気記録媒体、ＣＤ−ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリを含む。半導体メモリは、例えば、マスクＲＯＭ、ＰＲＯＭ（Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）、ＥＰＲＯＭ（Ｅｒａｓａｂｌｅ  ＰＲＯＭ）、フラッシュＲＯＭ、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などである。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体（ｔｒａｎｓｉｔｏｒｙ  ｃｏｍｐｕｔｅｒ  ｒｅａｄａｂｌｅ  ｍｅｄｉｕｍ）によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【００７１】
上記の実施の形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
【００７２】
（付記１）
演算処理を行う演算部と、
自素子から出力される演算結果に異常が無いかを自己診断する自己診断部と、
前記自己診断部による診断結果に基づいて前記演算結果の出力権限を保持するか否かを決定するとともに、その決定結果を権限信号として出力する管理部と、
前記管理部によって前記出力権限が保持されているか否かに基づいて、前記演算部による演算結果を出力するか否かを制御する出力制御部と、
を備えた、基本論理素子。
【００７３】
（付記２）
前記管理部は、前記自己診断部によって前記演算結果に異常がないと診断された場合、前記出力権限を保持し、前記自己診断部によって前記演算結果に異常があると診断された場合、前記出力権限を保持せずに放棄するように構成され、
前記出力制御部は、前記管理部によって前記出力権限が保持されている場合、前記演算部による演算結果を出力し、前記管理部によって前記出力権限が放棄されている場合、前記演算部による演算結果の出力を停止するように構成されている、
付記１に記載の基本論理素子。
【００７４】
（付記３）
前記管理部は、自素子とは別の基本論理素子から演算結果の出力権限が放棄されたことを示す権限信号を受け取ることによって、前記出力権限を保持するように構成されている、
付記１又は２に記載の基本論理素子。
【００７５】
（付記４）
前記自己診断部は、前記演算部による演算結果から得られた自己診断データと、自素子とは別の少なくとも一つ以上の基本論理素子から出力された自己診断データと、を比較することによって、自素子から出力される演算結果に異常が無いかを自己診断するように構成されている、
付記１〜３の何れか一項に記載の基本論理素子。
【００７６】
（付記５）
前記自己診断部は、前記演算部による演算結果から得られた自己診断データが、当該自己診断データ、及び、自素子とは別の前記少なくとも一つ以上の基本論理素子から出力された自己診断データ、のうち多数を占める値を示すか否かによって、自素子から出力される演算結果に異常が無いかを自己診断するように構成されている、
付記４に記載の基本論理素子。
【００７７】
（付記６）
前記管理部は、前記自己診断部によって前記演算結果に異常があると診断された場合、自素子とは別の前記少なくとも一つ以上の基本論理素子から出力された自己診断データを、自素子の自己診断データの代わりに出力させるように構成されている、
付記４又は５に記載の基本論理素子。
【００７８】
（付記７）
ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）上に設けられた複数の基本論理素子の少なくとも一つ以上に用いられる、
付記１〜６の何れか一項に記載の基本論理素子。
【００７９】
（付記８）
動的再構成プロセッサに設けられた複数の基本論理素子の少なくとも一つ以上に用いられる、
付記１〜６の何れか一項に記載の基本論理素子。
【００８０】
（付記９）
並列に設けられた複数の基本論理素子を備え、
前記複数の基本論理素子の各々は、
演算処理を行う演算部と、
自素子から出力される演算結果に異常が無いかを自己診断する自己診断部と、
前記自己診断部による診断結果に基づいて前記演算結果の出力権限を保持するか否かを決定するとともに、その決定結果を権限信号として出力する管理部と、
前記管理部によって前記出力権限が保持されているか否かに基づいて、前記演算部による演算結果を出力するか否かを制御する出力制御部と、
を有する、半導体装置。
【００８１】
（付記１０）
前記複数の基本論理素子の各々において、
前記管理部は、前記自己診断部によって前記演算結果に異常がないと診断された場合、前記出力権限を保持し、前記自己診断部によって前記演算結果に異常があると診断された場合、前記出力権限を保持せずに放棄するように構成され、
前記出力制御部は、前記管理部によって前記出力権限が保持されている場合、前記演算部による演算結果を出力し、前記管理部によって前記出力権限が放棄されている場合、前記演算部による演算結果の出力を停止するように構成されている、
付記９に記載の半導体装置。
【００８２】
（付記１１）
前記複数の基本論理素子の各々において、前記管理部は、自素子とは別の基本論理素子から演算結果の出力権限が放棄されたことを示す権限信号を受け取ることによって、前記出力権限を保持するように構成されている、
付記９又は１０に記載の半導体装置。
【００８３】
（付記１２）
前記複数の基本論理素子の各々において、前記自己診断部は、前記演算部による演算結果から得られた自己診断データと、自素子とは別の少なくとも一つ以上の基本論理素子から出力された自己診断データと、を比較することによって、自素子から出力される演算結果に異常が無いかを自己診断するように構成されている、
付記９〜１１の何れか一項に記載の半導体装置。
【００８４】
（付記１３）
前記複数の基本論理素子の各々において、前記自己診断部は、前記演算部による演算結果から得られた自己診断データが、当該自己診断データ、及び、自素子とは別の前記少なくとも一つ以上の基本論理素子から出力された自己診断データ、のうち多数を占める値を示すか否かによって、自素子から出力される演算結果に異常が無いかを自己診断するように構成されている、
付記１２に記載の半導体装置。
【００８５】
（付記１４）
前記複数の基本論理素子の各々において、前記管理部は、前記自己診断部によって前記演算結果に異常があると診断された場合、自素子とは別の前記少なくとも一つ以上の基本論理素子から出力された自己診断データを、自素子の自己診断データの代わりに出力させるように構成されている、
付記１２又は１３に記載の半導体装置。
【００８６】
（付記１５）
前記複数の基本論理素子は、ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）上に設けられた複数の基本論理素子の一部である、
付記９〜１４の何れか一項に記載の半導体装置。
【００８７】
（付記１６）
前記複数の基本論理素子は、動的再構成プロセッサに設けられた複数の基本論理素子の一部である、
付記９〜１４の何れか一項に記載の半導体装置。
【００８８】
（付記１７）
演算処理を行うステップと、
演算結果に異常が無いかを自己診断するステップと、
自己診断の結果に基づいて前記演算結果の出力権限を保持するか否かを決定するとともに、その決定結果を権限信号として出力するステップと、
前記出力権限が保持されているか否かに基づいて、前記演算結果を出力するか否かを制御するステップと、
を備えた、基本論理素子の出力制御方法。
【００８９】
（付記１８）
演算処理を行う演算部と、自素子から出力される演算結果に異常が無いかを自己診断する自己診断部と、前記自己診断部による診断結果に基づいて前記演算結果の出力権限を保持するか否かを決定するとともに、その決定結果を権限信号として出力する管理部と、前記管理部によって前記出力権限が保持されているか否かに基づいて、前記演算部による演算結果を出力するか否かを制御する出力制御部と、を備えた、基本論理素子を複数組み合わせることにより所定の回路を構成する処理を、
コンピュータに実行させる制御プログラム。
【００９０】
以上、実施の形態を参照して本願発明を説明したが、本願発明は上記によって限定されるものではない。本願発明の構成や詳細には、発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【００９１】
この出願は、２０１９年４月２６日に出願された日本出願特願２０１９−０８５３３０を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【符号の説明】
【００９２】
１  基本論理素子
１＿１〜１＿３  基本論理素子
２  基本論理素子
２ａ  基本論理素子
２＿１〜２＿４  基本論理素子
１１  演算部
１２  自己診断部
１３  管理部
１４  出力制御部
１５  シリアルパラレル変換部
１６  バッファ
１７  スイッチ
１８  スイッチ
２１  ＧＣＥ
２２  フリップフロップ
２３  フリップフロップ
２４〜２９  セレクタ
１００  冗長回路
２００  冗長回路
【図１】
0006973877.tif 000002
【図２】
0006973877.tif 000003
【図３】
0006973877.tif 000004
【図４】
0006973877.tif 000005
【図５】
0006973877.tif 000006
【図６】
0006973877.tif 000007
【図７】
0006973877.tif 000008