(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023175145
(43)【公開日】2023-12-12
(54)【発明の名称】半導体装置
(51)【国際特許分類】
G06F 11/20 20060101AFI20231205BHJP
【FI】
G06F11/20 638
【審査請求】未請求
【請求項の数】11
【出願形態】OL
(21)【出願番号】P 2022087448
(22)【出願日】2022-05-30
(71)【出願人】
【識別番号】302062931
【氏名又は名称】ルネサスエレクトロニクス株式会社
(74)【代理人】
【識別番号】110000350
【氏名又は名称】ポレール弁理士法人
(72)【発明者】
【氏名】大谷 敬之
【テーマコード(参考)】
5B034
【Fターム(参考)】
5B034BB01
(57)【要約】
【課題】信頼性を高める技術を提供することにある。
【解決手段】半導体装置は、ディレイドロックステップ方式で動作するメイン装置と、前記メイン装置と並行して動作し、ディレイドロックステップ方式で動作するサブ装置と、前記メイン装置の出力を遅延させる遅延回路と、前記メイン装置の故障情報に基づいて前記メイン装置を前記サブ装置に切替える切替回路と、を含む。
【選択図】
図7
【特許請求の範囲】
【請求項1】
ディレイドロックステップ方式で動作するメイン装置と、
前記メイン装置と並行して動作し、ディレイドロックステップ方式で動作するサブ装置と、
前記メイン装置の出力を遅延させる遅延回路と、
前記メイン装置の故障情報に基づいて前記メイン装置を前記サブ装置に切替える切替回路と、
を含む半導体装置。
【請求項2】
請求項1の半導体装置において、
さらに、前記メイン装置に対して前記サブ装置を遅延させて動作させる遅延回路を含む半導体装置。
【請求項3】
請求項1の半導体装置において、
前記遅延回路は前記故障情報に基づいて出力が制御される半導体装置。
【請求項4】
請求項1の半導体装置において、
さらに、入力信号を前記メイン装置および前記サブ装置に供給する入力制御回路を備え、
前記入力制御回路は前記故障情報により制御される半導体装置。
【請求項5】
請求項1の半導体装置において、
さらに、前記故障情報に基づいて前記メイン装置の出力と前記サブ装置の出力とを切替える切替回路を含む半導体装置。
【請求項6】
請求項5の半導体装置において、
前記遅延回路は前記サブ装置の出力を遅延させる半導体装置。
【請求項7】
請求項2の半導体装置において、
さらに、前記故障情報に基づいて前記サブ装置への入力を制御する回路を含む半導体装置。
【請求項8】
請求項1の半導体装置において、
前記メイン装置は、マスタCPU、チェッカCPUおよび前記マスタCPUの出力と前記チェッカCPUの出力とを比較し、前記故障情報を出力する比較回路を含み、
前記サブ装置は、マスタCPU、チェッカCPUおよび前記マスタCPUの出力と前記チェッカCPUの出力とを比較し、第二の故障情報を出力する比較回路を含む半導体装置。
【請求項9】
請求項1の半導体装置において、さらに、
前記サブ装置の出力を遅延させる第二の遅延回路を含み、
前記故障情報に基づいて前記遅延回路の出力と前記第二の遅延回路の出力とを切替える切替回路を含む半導体装置。
【請求項10】
請求項9の半導体装置において、
前記メイン装置は、マスタCPU、チェッカCPUおよび当該マスタCPUの出力と当該チェッカCPUの出力とを比較し、前記故障情報を出力する比較回路を含み、
前記サブ装置は、マスタCPU、チェッカCPUおよび当該マスタCPUの出力と当該チェッカCPUの出力とを比較し、第二の故障情報を出力する比較回路を含む半導体装置。
【請求項11】
請求項10の半導体装置において、
前記切替回路は前記故障情報および第二の故障情報に基づいて前記遅延回路の出力と前記第二の遅延回路の出力とを切替える半導体装置。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は半導体装置に関し、例えばロックステップ動作を行う半導体装置に適用可能である。
【背景技術】
【0002】
半導体装置の高信頼化技術の一つとして、二つの中央処理装置(Central Processing Unit:CPU)コアを同一サイクルで動作させ、かつ、二つのCPUコアに同一の処理を実行させるロックステップ技術が提案されている。例えば、特許文献1では、一方のCPUの出力を遅延回路で遅延させ、かつ、他方のCPUの入力を遅延回路で遅延させることでクリティカルパスのタイミング制約を緩和するディレイドロックステップ方式の電子装置が開示されている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】米国特許出願公開第2008/0244305号明細書
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかし、特許文献1に開示される電子装置では、CPUを構成するハードウェアが故障した場合には動作を継続することができず、信頼性を高めることができない問題がある。
【0005】
その他の課題と新規な特徴は、本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【0006】
本開示のうち代表的なものの概要を簡単に説明すれば次の通りである。すなわち、半導体装置は、ディレイドロックステップ方式で動作するメイン装置と、前記メイン装置と並行して動作し、ディレイドロックステップ方式で動作するサブ装置と、前記メイン装置の出力を遅延させる遅延回路と、前記メイン装置の故障情報に基づいて前記メイン装置を前記サブ装置に切替える切替回路と、を含む。
【発明の効果】
【0007】
上記半導体装置によれば、信頼性を高めることができる。
【図面の簡単な説明】
【0008】
【
図1】
図1は第一実施形態におけるフェイルオペレーショナルシステムの構成を示すブロック図である。
【
図2】
図2は第一実施例における半導体装置の構成を示すブロック図である。
【
図3】
図3は
図2に示す半導体装置の動作を示すタイミングチャートである。
【
図4】
図4は第二実施例における半導体装置の構成を示すブロック図である。
【
図5】
図5は
図4に示す半導体装置の動作を示すタイミングチャートである。
【
図6】
図6は第三実施例における半導体装置の構成を示すブロック図である。
【
図7】
図7は第四実施例における半導体装置の構成を示すブロック図である。
【
図8】
図8は第二実施形態におけるフェイルオペレーショナルシステムの構成を示すブロック図である。
【
図9】
図9は第五実施例における半導体装置の構成を示すブロック図である。
【
図10】
図10は
図9に示すフェイルオペレーショナルシステムの動作を示すタイミングチャートである。
【
図11】
図11は比較例におけるフェイルオペレーショナルシステムの構成を示すブロック図である。
【
図12】
図12は
図11に示すフェイルオペレーショナルシステムにおける正常動作を示すタイミングチャートである。
【
図13】
図13は
図11に示すフェイルオペレーショナルシステムのプライマリブロックにおいて故障が検出された場合の動作を示すタイミングチャートである。
【発明を実施するための形態】
【0009】
以下、実施形態および実施例について、図面を用いて説明する。ただし、以下の説明において、同一構成要素には同一符号を付し繰り返しの説明を省略することがある。
【0010】
車載用の電子制御装置(Electronic Control Unit:ECU)はフェイルセーフシステムからフェイルオペレーショナル(故障時継続動作)システムに移行しつつある。フェイルセーフシステムは故障が発生すると所定の安全状態に遷移する。フェイルオペレーショナルシステムは実行する機能の故障時であってもある程度実行する機能を確保する。
【0011】
フェイルオペレーショナルシステムは、例えば、冗長化システムとしてのデュプレックスシステム(duplex system)の一つであるホットスタンバイシステム(hot standby system)により実現される。ホットスタンバイシステムは、診断機能によって障害が検出されない限り、プライマリシステム(primary system)が実行する。このとき、バックアップシステム(backup system)はプライマリシステムと並行して動作する。障害が検出された場合、バックアップシステムがプライマリシステムの役割を引き継く。
【0012】
本実施形態では、プライマリシステムおよびバックアップシステムの両方にディレイドロックステップ技術を適用した装置(DDDC装置)によりフェイルオペレーショナルシステムが構築される。ここで、DDDCはデュオデュプレックス遅延比較(Duo Duplex Delayed Comparison)の略である。以下、二つの実施形態について説明する。
【0013】
<第一実施形態>
第一実施形態におけるフェイルオペレーショナルシステムについて
図1を参照して説明する。
図1は第一実施形態における半導体装置の構成を示すブロック図である。
【0014】
第一実施形態におけるフェイルオペレーショナルシステムは、DDDC装置1を備える。DDDC装置1はプライマリブロック(PRM)10とバックアップブロック(BCK)20と入力制御回路(INP_CNT)30と出力制御回路(OUT_CNT)40と遅延回路(DLY)50とを備える。
【0015】
プライマリブロック10は第一のモジュール(MDL1-1)11と第二のモジュール(MDL1-2)12と第一の遅延回路(DLY1-1)13と第二の遅延回路(DLY1-2)14と比較回路(CMP)15とを備える。第二のモジュール12は第一のモジュール11と同等の性能および機能を有している。第二のモジュール12は第一のモジュール11と同じ処理を第一のモジュール11より第二の遅延回路(DLY1-2)14の遅延量分遅くれて実行する。第一のモジュール11および第二のモジュール12はクロックに同期して動作する。第一の遅延回路(DLY1-1)13と第二の遅延回路(DLY1-2)14の遅延量は同じクロックサイクル数である。
【0016】
バックアップブロック20はプライマリブロック10と同等の構成であり、プライマリブロック10と同様に動作する。具体的には、バックアップブロック20は第一のモジュール(MDL2-1)21と第二のモジュール(MDL2-2)22と第一の遅延回路(DLY2-1)23と第二の遅延回路(DLY2-2)24と比較回路(CMP)25とを備える。第一のモジュール21はプライマリブロック10の第一のモジュール11および第二のモジュール12と同等の性能および機能を有している。第二のモジュール22は第一のモジュール21と同等の性能および機能を有している。第二のモジュール22は第一のモジュール21と同じ処理を第一のモジュール21より第二の遅延回路(DLY2-2)24の遅延量分遅くれて実行する。第一のモジュール21および第二のモジュール22はクロックに同期して動作する。第一の遅延回路(DLY2-1)23と第二の遅延回路(DLY2-2)24の遅延量は同じクロックサイクル数である。第一の遅延回路(DLY2-1)23と第一の遅延回路(DLY1-1)13の遅延量は同じクロックサイクル数である
【0017】
入力信号(INP)は入力制御回路30を介してプライマリブロック10に入力されると共に、入力制御回路30および遅延回路50を介してバックアップブロック20に入力される。通常時においては、バックアップブロック20はプライマリブロック10と同等の動作を行う。正常時においては、出力制御回路40はプライマリブロック10の第一のモジュール11の出力信号(Oa)を選択して出力信号(OUT)として出力する。比較回路15がプライマリブロック10の障害を検出すると、出力制御回路40はバックアップブロック20の第一のモジュール21の出力信号(Oc)を選択して出力信号(OUT)として出力する。
【0018】
第二の遅延回路14は、プライマリブロック10の第一のモジュール11に対して第二のモジュール12を遅延させて動作させる。第一の遅延回路13は、第一のモジュール11の出力を遅延させる。比較回路15は第一の遅延回路13の出力信号(Oa’)と第二のモジュール12の出力信号(Ob)とを比較し、不一致の場合は故障として検出する。
【0019】
バックアップブロック20に入力される信号がプライマリブロック10に入力される信号(INP)より遅延されて入力されることで、プライマリブロック10に対してバックアップブロック20の動作が遅延される。これにより、プライマリブロック10とバックアップブロック20との動作に時間差が生じ、その時間差内において、出力制御回路40はプライマリブロック10の動作をバックアップブロック20へ引継ぎ切替えさせることができる。遅延回路(DLY)50の遅延量は第一の遅延回路13の遅延量以上のクロックサイクル数である。
【0020】
プライマリブロック10の比較回路15による比較結果を使用して、入力制御回路30および出力制御回路40がプライマリブロック10への入力信号および出力信号を制御する。これにより、DDDC装置1からの誤情報出力を抑止することができる。また、プライマリブロック10からバックアップブロック20へ切替える期間中のDDDC装置1の外の装置とのプロトコルを維持することができる。ここで、プロトコルとは、例えば、データ信号、バリッド信号(VLD)およびレディ信号(RDY)を用いるバスプロトコルである。バリッド信号(VLD)は送信側がデータ信号に有効なデータを提示していることを示す。レディ信号(RDY)は受信側がデータ信号のデータを受け取れることを示す。
【0021】
プライマリブロック10およびバックアップブロック20にはディレイドロックステップ技術が適用されている。これにより、プライマリブロック10およびバックアップブロック20それぞれの同一信号分配起因の共通要因故障に対する耐性低下による故障検出漏れを抑制することができる。ここで、共通要因故障の例としては、共通クロック電圧降下による状態反転、複数モジュール同時動作による供給電源電圧降下による状態反転および宇宙線(α線)による状態反転等がある。
【0022】
また、遅延回路50が設けられているので、プライマリブロック10からバックアップブロック20へのノイズ等の共通要因故障の伝搬を抑止することができる。
【0023】
[実施例]
以下、第一実施形態における代表的な実施例について、幾つか例示する。以下の実施例の説明において、第一実施例にて説明されているものと同様の構成および機能を有する部分に対しては、第一実施例と同様の符号が用いられ得るものとする。そして、かかる部分の説明については、技術的に矛盾しない範囲内において、第一実施例における説明が適宜援用され得るものとする。また、複数の実施例の全部または一部が、技術的に矛盾しない範囲内において、適宜、複合的に適用され得る。
【0024】
(第一実施例)
図2は第一実施例における半導体装置の構成を示すブロック図である。
【0025】
第一実施例における半導体装置は、例えば、マイクロコントローラユニット(Micro Controller Unit:MCU)であり、DDDC装置1を備える。第一実施例におけるDDDC装置1はメイン装置(M_DCLS)100とサブ装置(S_DCLS)200と入力制御回路(INP_CNT)300と出力制御回路(OUT_CNT)400と遅延回路510とセレクタ(SLCT)310とを備える。メイン装置100は第一実施形態におけるプライマリブロック10に対応する。サブ装置200は第一実施形態におけるバックアップブロック20に対応する。DDDC装置はデュアルDCLS装置ともいう。ここで、DCLSはデュアルコアロックステップ(Dual Core Lock Step)の略である。
【0026】
第一実施例における遅延回路510は第一実施形態における遅延回路50の機能に対応する。また、第一実施例におけるセレクタ310は第一実施形態における入力制御回路30の一部の機能に対応する。
【0027】
メイン装置100は、マスタCPU(M_CPU)110と、チェッカCPU(C_CPU)120と、第一の遅延回路130と、第二の遅延回路140と、比較回路(CMP)150と、を含む。マスタCPU110は第一実施形態における第一のモジュール11に対応する。チェッカCPU120は第一実施形態における第二のモジュール12に対応する。第一の遅延回路130、第二の遅延回路140および比較回路150は、それぞれ第一実施形態における第一の遅延回路13、第二の遅延回路14および比較回路15に対応する。メイン装置100は、ディレイドロックステップ動作を行う。
【0028】
サブ装置200は、マスタCPU(M_CPU)210と、チェッカCPU(C_CPU)220と、第一の遅延回路230と、第二の遅延回路240と、比較回路(CMP)250と、を含む。マスタCPU210は第一実施形態における第一のモジュール21に対応する。チェッカCPU220は第一実施形態における第二のモジュール22に対応する。第一の遅延回路230、第二の遅延回路240および比較回路250は、それぞれ第一実施形態における第一の遅延回路23、第二の遅延回路24および比較回路25に対応する。サブ装置200は、ディレイドロックステップ動作を行う。
【0029】
ディレイドロックステップ動作では、マスタCPU110,210で処理した命令と同じ命令を、チェッカCPU120,220が数クロックサイクル遅れて処理する。そのため、ディレイドロックステップ動作では、厳密には同一のクロックサイクルで同じ命令が処理されるわけではないが、同じ命令を異なるCPUで処理する点でロックステップ動作の一態様となるものである。なお、以下では、マスタCPU110,210とチェッカCPU120,220とが2クロックサイクルの差でロックステップ動作を行うディレイドロックステップ動作を行う。しかし、マスタCPU110,210とチェッカCPU120,220との間のクロックサイクルの差は2クロックサイクルに限られるものではない。
【0030】
第一実施例における半導体装置は、図示されない、RAM(Random Access Memory)およびフラッシュメモリ等の共有メモリ並びに周辺回路等をさらに含む。共有メモリおよび周辺回路はマスタCPU110,210およびチェッカCPU120,220が共通して利用する共有リソースの一つである。また、上述した共有メモリは一例であり、共有メモリは、上記のメモリの一部だけが設けられていても良く、上記のメモリ以外の他のメモリが含まれていても良い。共有メモリは、例えば、マスタCPU110,210およびチェッカCPU120,220によって実行されるプログラムやデータを格納している。なお、共有メモリおよび周辺回路は、いずれも共有リソースであり、少なくとも一方が設けられていればよい。共有リソースの出力は入力制御回路300に入力され、出力制御回路400の出力は共有リソースに出力される。
【0031】
比較回路150は比較結果信号(LE1)を出力制御回路40およびDDDC装置1の外部に出力する。比較回路250は比較結果信号(LE2)を出力制御回路400およびDDDC装置1の外部に出力する。遅延回路130は二段のフリップフロップ回路(FF)130a,130bで構成される。遅延回路140は二段のフリップフロップ回路140a,140bで構成される。遅延回路230,240はそれぞれ遅延回路130,140と同様な構成である。すなわち、遅延回路130,140,230,240は2クロックサイクルの遅延を形成する。遅延回路140の出力は二段のフリップフロップ回路で構成される遅延回路510に入力される。
【0032】
出力制御回路400は遅延回路410,420,430および切替回路としてのセレクタ440を備える。遅延回路410,420,430はそれぞれ二段のフリップフロップ回路で構成される。すなわち、遅延回路410,420,430は2クロックサイクルの遅延を形成する。比較回路150の比較結果信号(LE1)が遅延回路410に入力され、遅延回路410の出力は遅延回路420に入力される。遅延回路420の出力は遅延回路430の後段のフリッピフロップ回路およびセレクタ310に入力される。メイン装置100のマスタCPU110の出力信号(Oa)およびサブ装置200のマスタCPU210の出力信号(Oc)がセレクタ440に入力される。セレクタ440は遅延回路410の出力で制御される。セレクタ440の出力は遅延回路430に入力される。遅延回路430は出力信号(OUT)を出力する。
【0033】
入力信号(INP)は入力制御回路300を介してメイン装置100に入力信号(INa)として入力されると共に、遅延回路140、遅延回路510およびセレクタ310を介してサブ装置200に入力信号(INb)として入力される。これにより、メイン装置100に対してサブ装置200は4クロックサイクル遅延して動作する。なお、遅延回路510には、入力制御回路300の出力ではなく、遅延回路140の出力が入力される。これにより、遅延回路510を構成するフリップフロップ回路の数を削減することができる。
【0034】
サブ装置200に切替え後、サブ装置200への入力信号(INb)をセレクタ310により遅延入力信号(INd)から遅延無し入力信号(INc)に切替える。セレクタ310はメイン装置100の比較回路150の比較結果信号(LE1)を遅延回路410,420により4クロックサイクル遅延した信号(Oe)で制御される。これにより、サブ装置200はメイン装置100の動作時と同入力レイテンシで動作することができる。
【0035】
メイン装置100のマスタCPU110の出力信号(Oa)が遅延回路430により2クロックサイクル遅延されて出力制御回路400から出力信号(OUT)として出力される。遅延回路430の後段のフリップフロップ回路(出力制御回路400の最終段のフリップフロップ回路)はマスタCPU110の比較回路150の比較結果信号(LE1)およびサブ装置200の比較回路250の比較結果信号(LE2)によって制御される。
【0036】
マスタCPU110の比較回路150の比較結果信号(LE1)により、遅延回路430の出力は抑止される。マスタCPU110の比較回路150の比較結果信号(LE1)を遅延回路410,420により4クロックサイクル遅延した信号(Oe)により、遅延回路430の出力は再開される。サブ装置200の比較回路250の比較結果信号(LE2)が不一致の場合、遅延回路430の出力が抑止される。
【0037】
セレクタ440はメイン装置100のマスタCPU110またはサブ装置200のマスタCPU210の出力を選択する。セレクタ440による切替えはマスタCPU110の比較回路150の比較結果信号(LE1)を遅延回路410により2クロックサイクル遅延した信号(Od)によって制御される。セレクタ440の出力は遅延回路430の前段のフリップフロップ回路に入力される。これにより、サブ装置200は、メイン装置100の動作時と同じ出力レイテンシで動作することができる。
【0038】
メイン装置100においてエラーが検出された場合の動作について
図3を用いて説明する。
図3は
図2に示す半導体装置の動作を示すタイミングチャートである。
【0039】
マスタCPU110の出力信号(Oa)、出力信号(Ob)、比較回路150の比較結果信号(LE1)、出力信号(OUT)およびマスタCPU210の出力信号(Oc)はクロック(CLK)の立ち上がりに同期した信号である。
【0040】
正常に動作する場合は、マスタCPU110の出力信号(Oa)、チェッカCPU120の出力信号(Ob)、出力信号(OUT)およびマスタCPU210の出力信号(Oc)の内容はA、B、C、D、E、F、・・・と変化する。
図3では、マスタCPU110の故障によりマスタCPU110の出力信号(Oa)の内容がA、B、C、D’、E、F、・・・と変化する場合が示されている。
【0041】
メイン装置100のチェッカCPU120の出力信号(Ob)はマスタCPU110の出力信号(Oa)より2クロックサイクル(2CLK)遅延している。また、サブ装置200のマスタCPU210の出力信号(Oc)はメイン装置100のマスタCPU110の出力信号(Oa)より4クロックサイクル(4CLK)遅延している。
【0042】
メイン装置100のマスタCPU110の出力信号(Oa)が「D’」、チェッカCPU120の出力信号(Ob)が「D」である場合、比較回路150により不一致が検出され、比較結果信号(LE1)が例えばハイレベル(High Level)にされる。
【0043】
メイン装置100の比較回路150の比較結果信号(LE1)でDDDC装置1の入出力(入力制御回路300および出力制御回路400)が制御される。比較結果信号(LE1)のハイレベルにより、例えば、バスインタフェース(Interface:IF)の入力信号であるレディ信号(RDY)がロウレベル(Low Level)にされたり、出力信号(OUT)の一部の信号であるバリッド信号(VLD)がロウレベルにされたりする。これにより、CPU110,120,210,220は次の処理を行わないと共に、例えば、出力信号(OUT)の一部の信号であるアドレス信号やデータ信号等は無効になる。
【0044】
メイン装置100の比較回路150の比較結果信号(LE1)が2クロックサイクル(2CLK)遅延された信号(Od)でメイン装置100のマスタCPU110の出力信号(Oa)がサブ装置200のマスタCPU210の出力信号(Oc)に切替えられる。
【0045】
メイン装置100の比較回路150の比較結果信号(LE1)が4クロックサイクル(4CLK)遅延された信号(Oe)でサブ装置200の入力が遅延無し入力信号に切替えられる。メイン装置100の比較回路150の比較結果信号(LE1)が4クロックサイクル(4CLK)遅延させた信号(Oe)でDDDC装置1の出力(出力制御回路400の遅延回路430の出力)が有効化される。
【0046】
メイン装置100内のマスタCPU110系のクロックとチェッカCPU120系のクロックとを別系統にして動作させる。また、サブ装置200内のマスタCPU210系のクロックとチェッカCPU220系のクロックとを別系統にして動作させる。これにより、クロック電圧降下起因の誤動作を分離することが可能となる。
【0047】
ここで、マスタCPU110系とはマスタCPU110の他に遅延回路130の前段のフリップフロップ回路130aおよび遅延回路140の前段のフリップフロップ回路140aが含まれる。チェッカCPU120系とはチェッカCPU120の他に遅延回路130の後段のフリップフロップ回路130bおよび遅延回路140の後段のフリップフロップ回路140bが含まれる。マスタCPU210系とはマスタCPU210の他に遅延回路230の前段のフリップフロップ回路230aおよび遅延回路240の前段のフリップフロップ回路240aが含まれる。チェッカCPU220系とはチェッカCPU220の他に遅延回路230の後段のフリップフロップ回路230bおよび遅延回路240の後段のフリップフロップ回路240bが含まれる。
【0048】
遅延回路140によりチェッカCPU120をマスタCPU110から2クロックサイクル遅延動作させることにより、マスタCPU110とチェッカCPU120との同時動作による供給電源の電圧降下を回避することが可能となる。
【0049】
入力信号を分配後、チェッカCPU120側において2段のフリップフロップ回路で受けることにより、チェッカCPU120側へのノイズ(例えば、宇宙線起因)の伝搬を抑止することが可能となる。
【0050】
(第二実施例)
図4は第二実施例における半導体装置の構成を示すブロック図である。
【0051】
第一実施例におけるサブ装置200はメイン装置100に対して4クロックサイクル遅延して動作する。これに対して、第二実施例におけるサブ装置200はメイン装置100に対して2クロックサイクル遅延して動作する。
【0052】
そのため、第二実施例では、遅延回路510には、遅延回路140の出力ではなく、入力制御回路300の出力である入力信号(INc)が入力される。すなわち、入力信号(INP)は入力制御回路30を介してメイン装置100に入力信号(INa)として入力されると共に、遅延回路510およびセレクタ310を介してサブ装置200に入力信号(INb)入力される。
【0053】
また、第二実施例における出力制御回路400には、第一実施例における遅延回路410がなく、遅延回路420には、比較回路150の出力が入力される。第二実施例におけるDDDC装置のその他の構成(メイン装置100、サブ装置200、入力制御回路300)は第一実施例と同様である。
【0054】
メイン装置100においてエラーが検出された場合の動作について
図5を用いて説明する。
図5は第二実施例から第四実施例におけるDDDC装置の動作を示すタイミングチャートである。
【0055】
メイン装置100のチェッカCPU120の出力信号(Ob)はマスタCPU110の出力信号(Oa)より2クロックサイクル(2CLK)遅延している。また、サブ装置200のマスタCPU210の出力信号(Oc)はメイン装置100のマスタCPU110の出力信号(Oa)より2クロックサイクル(2CLK)遅延している。
【0056】
メイン装置100のマスタCPU110の出力信号(Oa)が「D’」、チェッカCPU120の出力信号(Ob)が「D」である場合、比較回路150により不一致が検出され、比較結果信号(LE1)が例えばハイレベルにされる。
【0057】
メイン装置100の比較回路150の比較結果信号(LE1)でメイン装置100のマスタCPU110の出力信号(Oa)がサブ装置200のマスタCPU210の出力信号(Oc)に切替えられる。
【0058】
メイン装置100の比較回路150の比較結果信号(LE1)が2クロックサイクル(2CLK)遅延された信号(Oe)でサブ装置200の入力が遅延無し入力信号に切替えられる。メイン装置100の比較回路150の比較結果信号(LE1)が2クロックサイクル(2CLK)遅延させた信号(Oe)でDDDC装置1の出力(出力制御回路400の遅延回路430の出力)が有効化される。
【0059】
第二実施例は第一実施例よりも出力制御回路400を構成するフリップフロップ回路の数を削減することができる。
【0060】
(第三実施例)
図6は第三実施例における半導体装置の構成を示すブロック図である。
【0061】
第三実施例におけるサブ装置200は、第二実施例と同様に、メイン装置100に対して2クロックサイクル遅延して動作する。ただし、第三実施例における出力制御回路400は第二実施例における出力制御回路400と構成が異なる。以下、第二実施例との相違点を中心に説明する。
【0062】
第三実施例における出力制御回路400には、第二実施例における遅延回路430がなく、その代わりに、セレクタ440の前段に遅延回路450を有する。遅延回路450は二段のフリップフロップ回路で構成される。すなわち、遅延回路450は2クロックサイクルの遅延を形成する。
【0063】
メイン装置100のマスタCPU110の出力信号(Oa)が遅延回路450により2クロックサイクル遅延されて出力制御回路400から出力信号(OUT)として出力される。遅延回路450の後段のフリップフロップ回路はマスタCPU110の比較回路150の比較結果信号(LE1)によって制御される。
【0064】
メイン装置100においてエラーが検出された場合の動作について
図5を用いて説明する。
【0065】
メイン装置100のチェッカCPU120の出力信号(Ob)はマスタCPU110の出力信号(Oa)より2クロックサイクル(2CLK)遅延している。また、サブ装置200のマスタCPU210の出力信号(Oc)はメイン装置100のマスタCPU110の出力信号(Oa)より2クロックサイクル(2CLK)遅延している。
【0066】
メイン装置100のマスタCPU110の出力信号(Oa)が「D’」、チェッカCPU120の出力信号(Ob)が「D」である場合、比較回路150により不一致が検出され、比較結果信号(LE1)が例えばハイレベルにされる。
【0067】
メイン装置100の比較回路150の比較結果信号(LE1)でメイン装置100のマスタCPU110の出力信号(Oa)がサブ装置200のマスタCPU210の出力信号(Oc)に切替えられる。
【0068】
メイン装置100の比較回路150の比較結果信号(LE1)が2クロックサイクル(2CLK)遅延された信号(Oe)でサブ装置200の入力が遅延無し入力信号に切替えられる。
【0069】
第三実施例は第二実施例よりも出力制御回路400内および出力制御回路400への配線を削減することができる。
【0070】
(第四実施例)
図7は第四実施例における半導体装置の構成を示すブロック図である。
【0071】
第四実施例におけるサブ装置200は、第三実施例と同様に、メイン装置100に対して2クロックサイクル遅延して動作する。ただし、第四実施例における半導体装置は、第三実施例におけるセレクタ310を有していない。入力信号(INP)は入力制御回路30を介してメイン装置100に入力信号(INa)として入力されると共に、遅延回路510を介してサブ装置200に入力信号(INd)として入力される。遅延回路510は入力信号(INc)を遅延して入力信号(INd)を出力する。また、第四実施例における出力制御回路400には、第三実施例における遅延回路420を有していない。
【0072】
メイン装置100においてエラーが検出された場合の動作について
図5を用いて説明する。
【0073】
メイン装置100のチェッカCPU120の出力信号(Ob)はマスタCPU110の出力信号(Oa)より2クロックサイクル(2CLK)遅延している。また、サブ装置200のマスタCPU210の出力信号(Oc)はメイン装置100のマスタCPU110の出力信号(Oa)より2クロックサイクル(2CLK)遅延している。
【0074】
メイン装置100のマスタCPU110の出力信号(Oa)が「D’」、チェッカCPU120の出力信号(Ob)が「D」である場合、比較回路150により不一致が検出され、比較結果信号(LE1)が例えばハイレベルにされる。
【0075】
メイン装置100の比較回路150の比較結果信号(LE1)でメイン装置100のマスタCPU110の出力信号(Oa)がサブ装置200のマスタCPU210の出力信号(Oc)に切替えられる。
【0076】
第四実施例は第三実施例よりも出力制御回路400内のフリップフロップ回路の数を削減すると共に、セレクタを削減することができる。
【0077】
<第二実施形態>
第二実施形態におけるフェイルオペレーショナルシステムについて
図8を参照して説明する。
図8は第二実施形態におけるフェイルオペレーショナルシステムの構成を示すブロック図である。
【0078】
第二実施形態におけるフェイルオペレーショナルシステムは、DDDC装置1を備える。DDDC装置1はプライマリブロック(PRM)10とバックアップブロック(BCK)20と入力制御回路(INP_CNT)30と出力制御回路(OUT_CNT)40と遅延回路(DLY)52と遅延回路(DLY)53とを備える。
【0079】
第二実施形態におけるプライマリブロック10、バックアップブロック20および入力制御回路30は第一実施形態におけるプライマリブロック10、バックアップブロック20および入力制御回路30と同様の構成であり、同様に動作する。
【0080】
入力信号(INP)は入力制御回路30を介してプライマリブロック10におよびバックアップブロック20に入力される。通常時においては、バックアップブロック20はプライマリブロック10と同等の動作を行う。
【0081】
遅延回路51はプライマリブロック10の第一のモジュール11の出力信号(Oa)を遅延させて出力制御回路40に出力する。遅延回路52はバックアップブロック20の第一のモジュール21の出力信号(Oc)を遅延させて出力制御回路40に出力する。遅延回路51,52の遅延量は遅延回路13,14,23,24の遅延量以上のクロックサイクル数である。これにより、第一のモジュール11の出力信号(Oa)と比較回路15の比較結果信号(LE1)との間のタイミング差および第一のモジュール21の出力信号(Oc)と比較回路25の比較結果信号(LE2)との間のタイミング差をなくすことができる。
【0082】
出力制御回路40は、比較結果信号(LE1)および比較結果信号(LE2)に基づいて第一のモジュール11の出力信号(Oa)が遅延回路52により遅延された信号または第一のモジュール21の出力信号(Oc)が遅延回路53により遅延された信号を出力する。これにより、プライマリブロック10の動作をバックアップブロック20に切り替えることができる。
【0083】
すなわち、プライマリブロック10が正常の場合、出力制御回路40はプライマリブロック10の第一のモジュール11の出力信号(Oa)が遅延回路52により遅延された信号を選択して出力信号(OUT)として出力する。プライマリブロック10の障害が検出されると共にバックアップブロック20が正常である場合、出力制御回路40はバックアップブロック20の第一のモジュール21の出力信号(Oc)が遅延回路52により遅延された信号を選択して出力信号(OUT)として出力する。
【0084】
第一実施形態と同様に、プライマリブロック10の比較回路15による比較結果を使用して、入力制御回路30および出力制御回路40がプライマリブロック10への入力信号および出力信号を制御する。これにより、DDDC装置1からの誤情報出力を抑止することができる。また、プライマリブロック10からバックアップブロック20へ切替える期間中のDDDC装置1の外の装置とのプロトコルを維持することができる。
【0085】
第一実施形態と同様に、プライマリブロック10およびバックアップブロック20にはディレイドロックステップ技術が適用されている。これにより、プライマリブロック10およびバックアップブロック20それぞれの同一信号分配起因の共通要因故障に対する耐性低下による故障検出漏れを抑制することができる。
【0086】
以下、第二実施形態における代表的な実施例について例示する。以下の実施例の説明において、第一実施形態における実施例にて説明されているものと同様の構成および機能を有する部分に対しては、第一実施形態における実施例と同様の符号が用いられ得るものとする。そして、かかる部分の説明については、技術的に矛盾しない範囲内において、第一実施形態における実施例における説明が適宜援用され得るものとする。また、複数の実施例の全部または一部が、技術的に矛盾しない範囲内において、適宜、複合的に適用され得る。
【0087】
(第五実施例)
図9は第五実施例における半導体装置の構成を示すブロック図である。
【0088】
第五実施例における半導体装置は、DDDC装置1を備える。第五実施例におけるDDDC装置1はメイン装置100とサブ装置200と入力制御回路300と出力制御回路400と遅延回路520と遅延回路530とを備える。メイン装置100は第二実施形態におけるプライマリブロック10に対応する。サブ装置200は第二実施形態におけるバックアップブロック20に対応する。入力制御回路300は第二実施形態における入力制御回路30に対応する。出力制御回路400は第二実施形態における出力制御回路40に対応する。遅延回路520,530は第二実施形態における遅延回路52,53の機能に対応する。
【0089】
第五実施例におけるメイン装置100およびサブ装置200は第一実施例におけるメイン装置100およびサブ装置200と同様の構成であり同様に動作する。ただし、入力信号(INP)は入力制御回路30を介してメイン装置100に入力信号(INa)として、サブ装置200に入力信号(INb)として入力される。入力信号(INb)は入力信号(INa)と同相の信号である。
【0090】
遅延回路520,530はそれぞれ二段のフリップフロップ回路で構成される。すなわち、遅延回路520,530は2クロックサイクルの遅延を形成する。
【0091】
出力制御回路400はセレクタ440を備える。メイン装置100のマスタCPU110の出力信号(Oa)が遅延回路520により遅延された信号およびサブ装置200のマスタCPU210の出力信号(Oc)が遅延回路530により遅延された信号がセレクタ440に入力される。セレクタ440は比較回路150の比較結果信号(LE1)および比較回路250の比較結果信号(LE2)で制御される。セレクタ440は出力信号(OUT)をDDDC装置1の外部に出力する。
【0092】
比較回路150は比較結果信号(LE1)を出力制御回路40およびDDDC装置1の外部に出力する。比較回路250は比較結果信号(LE2)を出力制御回路400およびDDDC装置1の外部に出力する。
【0093】
メイン装置100においてエラーが検出された場合の動作について
図10を用いて説明する。
図10は
図9に示す半導体装置の動作を示すタイミングチャートである。
【0094】
メイン装置100のチェッカCPU120の出力信号(Ob)はマスタCPU110の出力信号(Oa)より2クロックサイクル(2CLK)遅延している。また、サブ装置200のマスタCPU210の出力信号(Oc)はメイン装置100のマスタCPU110の出力信号(Oa)より2クロックサイクル(2CLK)遅延している。メイン装置100の正常動作時は、マスタCPU110の出力信号(Oa)を2クロックサイクル(2CLK)遅延した信号が出力信号(OUT)として出力される。
【0095】
メイン装置100のマスタCPU110の出力信号(Oa)が「D’」、チェッカCPU120の出力信号(Ob)が「D」である場合、比較回路150により不一致が検出され、比較結果信号(LE1)が例えばハイレベルにされる。
【0096】
メイン装置100の比較回路150の比較結果信号(LE1)でメイン装置100のマスタCPU110の出力信号(Oa)がサブ装置200のマスタCPU210の出力信号(Oc)に切替えられる。メイン装置100の故障時は、マスタCPU210の出力信号(Oc)を2クロックサイクル(2CLK)遅延した信号が出力信号(OUT)として出力される。
【0097】
メイン装置100の比較回路150の比較結果信号(LE1)でメイン装置100への入力信号(INP)の入力がマスクされる。メイン装置100およびサブ装置200はそれぞれ比較結果信号(LE1)および比較結果信号(LE2)をDDDC装置1の外部に出力する。
【0098】
<比較例>
本開示をより明確にするため、本開示者が本開示に先立って検討した技術(比較例)について
図11から
図13を用いて説明する。
図11は比較例におけるフェイルオペレーショナルシステムの構成を示すブロック図である。
図12は
図11に示すフェイルオペレーショナルシステムにおける正常動作を示すタイミングチャートである。
図13は
図11に示すフェイルオペレーショナルシステムのプライマリブロックにおいて故障が検出された場合の動作を示すタイミングチャートである。
【0099】
図11に示すように、比較例におけるDDDC装置1はプライマリブロック(PRM)10とバックアップブロック(BCK)20とアビトレーション論理(ARB)60とを備える。入力信号(INP)はプライマリブロック10およびバックアップブロック20に直接入力される。比較例におけるプライマリブロック10およびバックアップブロック20の構成および動作は実施形態と同様である。比較例におけるDDDC装置1は第一実施形態における遅延回路50または第二実施形態における遅延回路52,53を備えていない。比較例におけるDDDC装置1は第一実施形態または第二実施形態における入力制御回路30および出力制御回路40を備えていない。
【0100】
図12に示すように、正常に動作する場合は、第一のモジュール11の出力信号(Oa)、第二のモジュール12の出力信号(Ob)、出力信号(OUT)および第一のモジュール21の出力信号(Oc)の内容はA、B、C、D、E、F、・・・と変化する。なお、
図13では、マスタCPU110の故障によりマスタCPU110の出力信号(Oa)の内容がA、B、C、D’、E、F、・・・と変化する場合が示されている。
【0101】
プライマリブロック10の第二のモジュール12の出力信号(Ob)は第一のモジュール11の出力信号(Oa)より2クロックサイクル(2CLK)遅延している。また、バックアップブロック20の第一のモジュール21の出力信号(Oc)はプライマリブロック10の第一のモジュール11の出力信号(Oa)と同じタイミングで出力される。
【0102】
図13に示すように、プライマリブロック10の第一のモジュール11の出力信号(Oa)が「D’」、第二のモジュール12の出力信号(Ob)が「D」である場合、比較回路15により不一致が検出され、比較結果信号(LE1)が例えばハイレベルにされる。
【0103】
しかし、第一のモジュール11の出力信号(Oa)に対して比較回路15の比較結果信号(LE1)が遅延しているため、比較回路15の比較結果信号(LE1)を使用してアビトレーション論理60の出力(OUT)の誤情報出力(D’)を抑止することはできない。また、バックアップブロック20の第一のモジュール21の出力信号(Oc)に対して比較回路15の比較結果信号(LE1)が遅延しているため、バックアップブロック20へ切り替えて第一のモジュール21の出力信号(Oc)を使用して動作を継続することができない。
【0104】
実施形態(実施例)では、DDDC装置1の出力が遅延回路430、遅延回路450または遅延回路520により第一のモジュール11(マスタCPU110)の出力信号(Oa)に対して遅延される。これにより、比較回路15(比較回路150)の出力である比較結果信号(LE1)が第一のモジュール11(マスタCPU110)の出力信号(Oa)よりも遅れることがなくなり、DDDC装置1(出力制御回路40)は誤情報出力を抑止することができる。また、プライマリブロック10(メイン装置100)の動作をバックアップブロック20(サブ装置200)へ引継ぎ切替えさせることができる。
【0105】
以上、本開示者によってなされた開示を実施形態および実施例に基づき具体的に説明したが、本開示は、上記実施形態および実施例に限定されるものではなく、種々変更可能であることはいうまでもない。
【0106】
例えば、実施例では、第一のモジュール11,21、第二のモジュール12,22がCPUである例を説明したが、DSP(Digital Signal Processor)等の他のプロセッサであってもよい。また、第一のモジュール11,21、第二のモジュール12,22はCPUの他に直接アクセス制御回路(Direct Memory Access Controller:DMAC)等の他のバスマスタを備えてもよい。
【符号の説明】
【0107】
100・・・メイン装置
200・・・サブ装置
440・・・セレクタ(切替回路)
450・・・遅延回路