(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-07-22
(45)【発行日】2024-07-30
(54)【発明の名称】プロセッサ及びプロセッサの冗長化方法
(51)【国際特許分類】
G06F 11/20 20060101AFI20240723BHJP
【FI】
G06F11/20 628
(21)【出願番号】P 2020047474
(22)【出願日】2020-03-18
【審査請求日】2023-03-08
(73)【特許権者】
【識別番号】000004260
【氏名又は名称】株式会社デンソー
(74)【代理人】
【識別番号】100113549
【氏名又は名称】鈴木 守
(74)【代理人】
【識別番号】100115808
【氏名又は名称】加藤 真司
(74)【代理人】
【識別番号】100169199
【氏名又は名称】石本 貴幸
(72)【発明者】
【氏名】小林 利彦
【審査官】坂東 博司
(56)【参考文献】
【文献】特開2012-243205(JP,A)
【文献】特開平07-006050(JP,A)
【文献】特開2016-035626(JP,A)
【文献】特開2006-178552(JP,A)
【文献】特開平08-077031(JP,A)
【文献】特開昭57-172459(JP,A)
【文献】特開平6-266574(JP,A)
【文献】鈴木 洋一,フォールト・トレラント・システム,日経コンピュータ no.391 NIKKEI COMPUTER,日本,日経BP社 Nikkei Business Publications,Inc.,1996年05月13日,no.391,146-152
(58)【調査した分野】(Int.Cl.,DB名)
G06F 11/20
(57)【特許請求の範囲】
【請求項1】
正常時に動作する正常時動作コア(12)、及び故障した前記正常時動作コアに代替して動作する代替用コア(14)が設けられるプロセッサ(10)であって、
故障した前記正常時動作コアのレジスタ情報の破損の有無を判定する破損判定手段(32)と、
前記レジスタ情報が破損していない場合、前記代替用コアに前記レジスタ情報を用いて処理を開始させ、前記レジスタ情報が破損している場合、前記代替用コアに前記レジスタ情報を用いることなく処理を開始させる再開制御手段(34)と、
故障した前記正常時動作コアの故障要因を特定する故障要因特定手段(30)と、
を備え
、
前記破損判定手段は、前記故障要因特定手段によって特定した前記故障要因に基づいて、前記レジスタ情報の破損の有無を判定する、
プロセッサ。
【請求項2】
前記代替用コアは、前記レジスタ情報を用いて処理を開始する場合、前記レジスタ情報に含まれるプログラムカウンタに基づいて、前記正常時動作コアの故障発生前からの処理を開始する、請求項
1記載のプロセッサ。
【請求項3】
前記破損判定手段は、前記代替用コアに備えられ、前記代替用コアが前記正常時動作コアに代替して処理を開始する前に、前記レジスタ情報の破損の有無を判定する、請求項1
又は請求項2記載のプロセッサ。
【請求項4】
前記代替用コアの数は、前記正常時動作コアの数よりも少ない数である、請求項1から請求項
3の何れか1項記載のプロセッサ。
【請求項5】
正常時に動作する正常時動作コア、及び故障した前記正常時動作コアに代替して動作する代替用コアが設けられるプロセッサの冗長化方法であって、
故障した前記正常時動作コアのレジスタ情報の破損の有無を
破損判定手段が判定する第1工程と、
前記レジスタ情報が破損していない場合、前記代替用コアに前記レジスタ情報を用いて処理を開始させ、前記レジスタ情報が破損している場合、
再開制御手段が前記代替用コアに前記レジスタ情報を用いることなく処理を開始させる第2工程と、
を有
し、
故障した前記正常時動作コアの故障要因を特定する故障要因特定手段によって特定した前記故障要因に基づいて、前記破損判定手段が前記レジスタ情報の破損の有無を判定する、
プロセッサの冗長化方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プロセッサ及びプロセッサの冗長化方法に関する。
【背景技術】
【0002】
近年、複数のコアプロセッサ(以下「コア」ともいう。)を備えたマルチコアプロセッサシステムが一般的となっている。マルチコアプロセッサシステムには、コアの動作を監視するためにDCLS(Dual Core Lock-Step)のような故障検知機構を備えたものもある。しかしながら、コアの故障を検知した場合に、故障したコアを停止させて故障していないコアのみで動作が継続されると、故障発生後の性能と機能安全性を十分確保できないという課題があった。
【0003】
そこで、特許文献1には、制御システムの安全な動作を担保することを目的として、複数のコアで構成されるマルチコアシステムとロックステップコアシステムとを有する再構成制御装置が開示されている。この再構成制御装置は、マルチコアシステム内のコアにエラーが発生した場合にロックステップコアシステムがマルチコア動作に動的に切り替えられ、コアにエラーが発生した動作不能となったソフトに対応した縮退ソフトをマルチコア動作に切り替えられたコアが実行する。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
特許文献1の再構成制御装置では、故障が発生したコアの代替用コアとしてロックステップコアが機能するものの、代替用コアで行われる処理は故障したコアによる処理からの連続性が失われる。
【0006】
ここで、近年開発が進んでいる車両の自動運転制御等では、プロセッサに故障が発生しても自動運転制御の継続が要求されている。車両の自動運転制御のように高い安全性が求められるような制御処理においては、故障したコアを代替用コアに切り替えた場合であっても処理の連続性を保つことが求められる。
【0007】
本発明は上記背景に鑑み、故障したコアによる処理と切り替えられた代替用コアによる処理との連続性を保つことができる、プロセッサ及びプロセッサの冗長化方法を提供することを目的とする。
【課題を解決するための手段】
【0008】
本発明は上記課題を解決するために以下の技術的手段を採用する。特許請求の範囲及びこの項に記載した括弧内の符号は、ひとつの態様として後述する実施形態に記載の具体的手段との対応関係を示す一例であって、本発明の技術的範囲を限定するものではない。
【0009】
本発明の一態様のプロセッサ(10)は、正常時に動作する正常時動作コア(12)、及び故障した前記正常時動作コアに代替して動作する代替用コア(14)が設けられるプロセッサであって、故障した前記正常時動作コアのレジスタ情報の破損の有無を判定する破損判定手段(32)と、前記レジスタ情報が破損していない場合、前記代替用コアに前記レジスタ情報を用いて処理を開始させ、前記レジスタ情報が破損している場合、前記代替用コアに前記レジスタ情報を用いることなく処理を開始させる再開制御手段(34)と、
を備える。
【発明の効果】
【0010】
本発明によれば、故障したコアによる処理と切り替えられた代替用コアによる処理との連続性を保つことができる。
【図面の簡単な説明】
【0011】
【
図1】実施形態のマルチコアプロセッサの概略図である。
【
図2】実施形態のマルチコアプロセッサのコア切り替えに関する構成図である。
【
図3】実施形態の代替用コアのレジスタ判定処理に関する機能ブロック図である。
【
図4】実施形態の故障コア切替処理の流れを示すフローチャートである。
【発明を実施するための形態】
【0012】
以下、図面を参照して本発明の実施形態を説明する。なお、以下に説明する実施形態は、本発明を実施する場合の一例を示すものであって、本発明を以下に説明する具体的構成に限定するものではない。本発明の実施にあたっては、実施形態に応じた具体的構成が適宜採用されてよい。
【0013】
図1は、本実施形態のマルチコアプロセッサ10の概略図である。なお、本実施形態のマルチコアプロセッサ10は、例えば、自動車やプラント等の制御処理に用いられる。
【0014】
マルチコアプロセッサ10は、正常時に動作する正常時動作コア12(12A~12D)、及び故障が発生した正常時動作コア12に代替して動作する代替用コア14(14X,14Y)が設けられるマルチコアシステムとして構成されている。このため、正常時動作コア12の何れもが故障していない場合には、代替用コア14は動作しない。本実施形態のマルチコアプロセッサ10は、このような正常時動作コア12と代替用コア14との構成により冗長化が行われる。
【0015】
なお、本実施形態の正常時動作コア12及び代替用コア14は、DCLSとして構成されている。しかしながら、マルチコアプロセッサ10は、コアの故障検知を行う機能を有していれば、必ずしも正常時動作コア12及び代替用コア14がDCLS(Dual Core Lock-Step)として構成されていなくてもよい。
【0016】
ここで、二つ以上の正常時動作コア12が同時に故障する確率は非常に低い。そこで、本実施形態の代替用コア14の数は、一例として、正常時動作コア12の数よりも少ない数とされる。
図1の例では、本実施形態の正常時動作コア12は4つであり、代替用コア14は2つである。なお、代替用コア14の数は、一つ以上であればよく、マルチコアプロセッサ10の故障率や性能に応じてその数は決定される。
【0017】
このように、代替用コア14の数を正常時動作コア12の数よりも少ない数とすることで、正常時動作コア12と代替用コア14との数を同数とする構成に比べて、マルチコアプロセッサ10の回路規模を小さくすることができる。また、代替後において動作するコアの数は故障前と変わらないので、マルチコアプロセッサ10は、正常時動作コア12が故障した後であっても、故障前と同じ性能を確保できる。
【0018】
図2は、本実施形態のマルチコアプロセッサ10による正常時動作コア12から代替用コア14への切り替え(以下「コア切り替え」という。)に関する構成図である。
【0019】
マルチコアプロセッサ10は、正常時動作コア12及び代替用コア14と共に、コア切替ユニット20、レジスタ転送ユニット22、及びマルチプレクサ24(24A~24D)を備える。これらは、各々がバス26によって電気的に接続されており、各種情報(データ)の入出力が可能とされている。なお、マルチコアプロセッサ10が備えるマルチプレクサ24の数は、正常時動作コア12の数と同じである。
【0020】
コア切替ユニット20は、ハードウェアユニットであり、正常時動作コア12の故障判定を行うと共に、正常時動作コア12が故障した場合に、代替用コア14への切り替えを行う。このため、コア切替ユニット20は、正常時動作コア12が故障した場合に、代替用コア14X,14Yの何れか一方を選択し、選択した代替用コア14へ動作を開始させるための動作開始信号を出力する。なお、コア切替ユニット20は、故障が発生した正常時動作コア12(以下「故障コア」という。)に対して動作を終了させるための動作終了信号を出力する。
【0021】
そして、コア切替ユニット20は、コア切り替えを行う場合に、故障コアに対応するマルチプレクサ24A~24Dの何れかへ、正常時動作コア12から代替用コア14へ切り替えるための切替信号(mux1~mux4)を送信する。
【0022】
なお、本実施形態のマルチコアプロセッサ10は、一例として、代替用コア14X,14Yに切り替え順が予め定められており、その順番は先に代替用コア14Xが用いられ、次に代替用コア14Yが用いられる。このため、コア切替ユニット20は、複数の正常時動作コア12の何れか一つが故障した場合にまず代替用コア14Xへ切り替え、さらに2つ目の正常時動作コア12が故障した場合に代替用コア14Yへ切り替える。
【0023】
レジスタ転送ユニット22は、ハードウェアユニットであり、故障コアからレジスタ情報を読み出し、故障コアの代替となる代替用コア14へ転送する。これにより、正常時動作コア12の故障発生時におけるレジスタ情報が代替用コア14へ継承される。
【0024】
なお、レジスタ情報は、コントロールレジスタ(CR:Control Resister)、ステータスレジスタ(SR:Status Resister)、汎用レジスタ(GPR:General purpose Register)等で記憶された情報やプログラムカウンタ(PC:Program Counter)等が含まれる。また、本実施形態のレジスタ転送ユニット22は、レジスタ情報と共に他の情報も含むコアコンテキストや、正常時動作コア12の故障が発生したときの情報(以下「故障情報」という。)を正常時動作コア12から読み出し、代替用コア14へ転送する。
【0025】
なお、本実施形態の正常時動作コア12は、故障が発生した場合にその故障要因が特定可能なように設計されている。例えば、正常時動作コア12が有する機能のうちどの機能が故障したのか、DCLSを構成する2つのコアの処理結果を比較する比較回路が故障したのかを特定可能な情報が故障情報に含まれるように、正常時動作コア12が設計される。
【0026】
マルチプレクサ24は、コア切替ユニット20からの切替信号に基づいて、入力された情報のうち、出力する情報を選択的に切り替える。
【0027】
具体的には、マルチプレクサ24Aは、正常時動作コア12A、代替用コア14X,14Yと接続され、正常時動作コア12Aの出力信号又は代替用コア14X,14Yの出力信号が入力される。正常時動作コア12Aが故障していない場合には、マルチプレクサ24Aは、正常時動作コア12Aからの出力信号が入力され、マルチプレクサ24は正常時動作コア12Aからの出力信号を出力する。
【0028】
一方、正常時動作コア12Aに故障が発生した場合には、マルチプレクサ24Aには、コア切替ユニット20からの切替信号mux1が入力される。切替信号が代替用コア14Xへの切り替えを示している場合には、マルチプレクサ24Aは、代替用コア14Xからの出力信号を出力する。切替信号が代替用コア14Yへの切り替えを示している場合には、マルチプレクサ24Aは、代替用コア14Yからの出力信号を出力する。
【0029】
同様に、マルチプレクサ24Bは、正常時動作コア12B、代替用コア14X,14Yと接続され、切替信号mux2に基づいて、正常時動作コア12Bと代替用コア14X,14Yの何れかとの切り替えを行う。同様に、マルチプレクサ24Cは、正常時動作コア12C、代替用コア14X,14Yと接続され、切替信号mux3に基づいて、正常時動作コア12Cと代替用コア14X,14Yの何れかとの切り替えを行う。同様に、マルチプレクサ24Dは、正常時動作コア12D、代替用コア14X,14Yと接続され、切替信号mux4に基づいて、正常時動作コア12Dと代替用コア14X,14Yの何れかとの切り替えを行う。
【0030】
ここで、上述したように、本実施形態のマルチコアプロセッサ10は、コア切り替えを行う場合、故障コアの代替となる代替用コア14へレジスタ情報を転送するものの、レジスタ情報が破損していたら、代替用コア14は安定して動作しない可能性がある。
【0031】
そこで、本実施形態のマルチコアプロセッサ10は、故障コアのレジスタ情報の破損の有無を判定する。そして、マルチコアプロセッサ10は、レジスタ情報が破損していない場合、代替用コア14にレジスタ情報を用いて処理を開始させ、レジスタ情報が破損している場合、代替用コア14にレジスタ情報を用いることなく処理を開始させる。これにより、本実施形態のマルチコアプロセッサ10は、故障コアによる処理と切り替えられた代替用コア14による処理との連続性を保つことができる。
【0032】
本実施形態のマルチコアプロセッサ10は、一例として、このようなレジスタ情報の破損判定、及び代替用コア14によるレジスタ情報の使用有無の決定に関する処理(以下「レジスタ判定処理」という。)を代替用コア14がソフトウェア(プログラム)処理として行う。
【0033】
図3は、本実施形態の代替用コア14のレジスタ判定処理に関する機能ブロック図である。
図3に示されるように、代替用コア14は、故障要因特定部30、レジスタ破損判定部32、及び再開制御部34を備える。なお、これらの機能は、上述のようにソフトウェア(プログラム)により実行されるものであり、レジスタ判定処理を実行するためのプログラムは、マルチコアプロセッサ10が備えるROM(Read Only Memory)又はその他の記憶媒体に記憶されている。
【0034】
故障要因特定部30は、故障コアの故障要因を特定する。本実施形態では、故障コアの故障情報に基づいて、故障要因特定部30が故障要因を特定する。故障情報は、故障コアからレジスタ転送ユニット22を介して、代替用コア14へ転送される。
【0035】
レジスタ破損判定部32は、故障コアのレジスタ情報の破損の有無を判定する。本実施形態では、故障要因特定部30によって特定した故障要因に基づいて、レジスタ破損判定部32がレジスタ情報の破損の有無を判定する。すなわち、特定した故障要因がレジスタ情報を破損させるようなものであれば、レジスタ情報は破損していると判定される。
【0036】
このように本実施形態のレジスタ破損判定部32は、故障コアの故障情報に基づいて、レジスタ情報の破損の有無を判定するが、これに限らず、故障情報を用いることなく、レジスタ情報の内容に基づいて、レジスタ情報の破損の有無が判定されてもよい。なお、レジスタ情報の破損とは、例えば、レジスタ情報のデータ領域の破損をいう。データ領域には、故障コアがそれまでの制御処理によって生成した各種データであって、その後の制御処理によっても用いられる各種データ等が記憶されている。
【0037】
なお、レジスタ破損判定部32は、代替用コア14が故障コアに代替して制御処理を開始する前に、レジスタ情報の破損の有無を判定する。これにより、破損したレジスタ情報を代替用コア14が用いることが防止される。
【0038】
再開制御部34は、レジスタ情報の破損有無に応じて、代替用コア14がレジスタ情報を用いて制御処理を開始(再開)するか否かを決定する。すなわち、再開制御部34は、レジスタ情報が破損していない場合、代替用コア14にレジスタ情報を用いて制御処理を開始させ、レジスタ情報が破損している場合、代替用コア14にレジスタ情報を用いることなく制御処理を開始させる。
【0039】
図4は、マルチコアプロセッサ10による故障コア切替処理の流れを示すフローチャートである。故障コア切替処理は、コア切替ユニット20によって正常時動作コア12の故障が検知された場合に実行される。
【0040】
まず、ステップ100では、レジスタ転送ユニット22が故障コアからレジスタ情報を含むコアコンテキストを読み出して保存する。
【0041】
次のステップ102では、故障情報を保存する。この保存処理は、レジスタ転送ユニット22が行ってもよいし、他のハードウェアが行ってもよい。
【0042】
次のステップ104では、故障コアと代替用コア14とをコア切替ユニット20が切り替える。このため、コア切替ユニット20は、所定の代替用コア14へ動作開始信号を出力すると共に故障コアへ動作停止信号を出力し、故障コアと所定の代替用コア14とに対応するマルチプレクサ24に切替信号を出力する。
【0043】
次のステップ106では、レジスタ判定処理の開始指示をコア切替ユニット20が代替用コア14へ出力する。
【0044】
次のステップ108では、故障情報に基づいて故障コアの故障要因を故障要因特定部30が特定する。
【0045】
次のステップ110では、レジスタ情報が破損しているか否かをレジスタ破損判定部32が判定し、肯定判定の場合はステップ114へ移行し、否定判定の場合はステップ112へ移行する。このステップ110は、換言すると、代替用コア14がレジスタ情報を用いて制御処理の開始が可能か否かを判定するものである。
【0046】
なお、本実施形態のレジスタ破損判定部32は、上述のように、故障要因特定部30によって特定された故障要因に基づいて、レジスタ情報が破損しているか否かを判定する。例えば、レジスタ破損判定部32は、特定された故障要因がレジスタ情報のデータ領域を破損させるような要因である場合にレジスタ情報が破損していると判定する。
【0047】
ステップ112では、レジスタ情報が破損しているため、再開制御部34が代替用コア14をリセットした後に、当該代替用コア14による制御処理を開始させ、本故障コア切替処理を終了する。これにより、代替用コア14は、破損したレジスタ情報を用いることなく処理を開始する。
【0048】
一方、ステップ114では、レジスタ情報が破損していないため、故障発生直前の処理から代替用コア14が制御処理を開始するように、再開制御部34がレジスタ転送ユニット22へ再開指示信号を出力する。
【0049】
次のステップ116では、レジスタ転送ユニット22が故障時のコアコンテキストを代替用コア14に転送する。
【0050】
次のステップ118では、代替用コア14に転送されたレジスタ情報に含まれるプログラムカウンタに基づいて、代替用コア14が正常時動作コア12の故障発生前から制御処理を開始するように、コア切替ユニット20が代替用コア14へ制御開始信号を出力し、本故障コア切替処理を終了する。より具体的には、故障コアに故障が発生したとされる制御処理に対応するプログラムカウンタの直前から、代替用コア14は、制御処理を開始する。これにより、代替用コア14は、転送されたコアコンテキストに含まれるレジスタ情報、及びその他の情報を用いて、故障コアが故障するまでに行っていた制御処理を継続して実行することになる。
【0051】
このように代替用コア14は、レジスタ情報を用いて制御処理を開始する場合、レジスタ情報に含まれるプログラムカウンタに基づいて、正常時動作コア12の故障発生直前からの制御処理を開始するので、制御処理の連続性がより確実なものとなる。
【0052】
以上説明したように、本実施形態の代替用コア14は、故障コアのレジスタ情報が破損していない場合には、故障コアのレジスタ情報を用いて制御処理を開始する。一方で、レジスタ情報が破損している場合には、代替用コア14は故障コアのレジスタ情報を用いることなく制御処理を開始する。これにより、マルチコアプロセッサ10は、故障コアによる制御処理と代替用コア14による制御処理との連続性を保つことができる。
【0053】
以上、本発明を、上記実施形態を用いて説明したが、本発明の技術的範囲は上記実施形態に記載の範囲には限定されない。発明の要旨を逸脱しない範囲で上記実施形態に多様な変更又は改良を加えることができ、該変更又は改良を加えた形態も本発明の技術的範囲に含まれる。
【0054】
上記実施形態では、レジスタ判定処理を代替用コア14で行う形態について説明したが、本発明は、これに限定されるものではない。例えば、レジスタ転送ユニット22やバス26に接続されている他のハードウェアでレジスタ判定処理が行われてもよい。より具体的には、故障要因特定部30、レジスタ破損判定部32及び再開制御部34によって実行される処理をハードウェアで行い、その処理結果が代替用コア14に出力される。
【0055】
すなわち、上記実施形態では、レジスタ判定処理として故障コアの故障情報を利用してソフトウェアで代替用コア14によるレジスタ情報の使用有無の決定を行う形態について説明したが、本発明は、これに限定されるものではない。レジスタ判定処理は、ハードウェア(レジスタ転送ユニット22、その他のハードウェア)とソフトウェアの協調で動作してもよい。例えば、上記実施形態では
図4に示されるフローチャートのステップ108,110,112,114等はソフトウェアによる処理として説明したが、ステップ106開始前の時点で、明らかに代替用コア14のリセットが必要な故障(レジスタ情報が破損している故障)が発生していることがハードウェアによって検出された場合には、ソフトウェアを介さずにハードウェアで代替用コア14のリセットが行われ、当該代替用コア14による制御処理が開始されてもよい。
【符号の説明】
【0056】
10・・・マルチコアプロセッサ、12・・・正常時動作コア、14・・・代替用コア、
32・・・破損判定部、34・・・再開制御部