JP2016157247A - 情報処理装置 - Google Patents

情報処理装置 Download PDF

Info

Publication number
JP2016157247A
JP2016157247A JP2015034217A JP2015034217A JP2016157247A JP 2016157247 A JP2016157247 A JP 2016157247A JP 2015034217 A JP2015034217 A JP 2015034217A JP 2015034217 A JP2015034217 A JP 2015034217A JP 2016157247 A JP2016157247 A JP 2016157247A
Authority
JP
Japan
Prior art keywords
core
cores
program
error
error level
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
JP2015034217A
Other languages
English (en)
Other versions
JP6277971B2 (ja
Inventor
雅史 大久保
Masafumi Okubo
雅史 大久保
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.)
Toyota Motor Corp
Original Assignee
Toyota Motor Corp
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 Toyota Motor Corp filed Critical Toyota Motor Corp
Priority to JP2015034217A priority Critical patent/JP6277971B2/ja
Publication of JP2016157247A publication Critical patent/JP2016157247A/ja
Application granted granted Critical
Publication of JP6277971B2 publication Critical patent/JP6277971B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Hardware Redundancy (AREA)

Abstract

【課題】本発明は、情報処理装置に係り、並列処理を行うコアごとに対応してロックステップコアを設けることなく、エラー許容できないレベルのプログラムを適切にロックステップコアに同期して実行させつつ、各コアそれぞれを適切に監視することにある。【解決手段】複数のコアとそのコア数よりも少数のロックステップコアとを有するマルチコアプロセッサを備える情報処理装置は、エラー許容できない第1エラーレベルのプログラムスレッドがロックステップコアの数を超えて時間重複しないようにプログラムをスケジューリングする。第1エラーレベルのプログラムスレッドがあるときは第1エラーレベルのプログラムスレッドを、第1エラーレベルのプログラムスレッドが無いときは何れかのコアが実行する第2エラーレベルのプログラムスレッドを、それぞれロックステップコアに同期実行させる。コアとロックステップコアとの命令実行結果の比較によりコアを監視する。【選択図】図1

Description

本発明は、情報処理装置に関する。
従来、ロックステップ式の情報処理装置が知られている(例えば、特許文献1参照)。この特許文献1記載の情報処理装置は、複数(例えば2つ)のコアを含むマルチコアプロセッサを備えている。この情報処理装置においては、複数のコアが同じプログラムのスレッドを実行すると共に、それらの各命令実行結果の比較結果に基づいて例えば中性子線などの影響によるソフトエラーが検出される。
特表2009−501367号公報
ところで、マルチコアプロセッサに監視対象のコアが複数ある場合、それらのコアごとに対応して監視用のロックステップコアを設けることが考えられる。かかる構造によれば、複数のコアが並列処理を行うとき、各コアそれぞれをそれぞれ独立したロックステップコアを用いて確実かつ適切に監視することができる。また、エラーを許容できないエラーレベルのプログラムが複数ある場合、それら複数のプログラムを複数のロックステップコアで同時期に実行させることができるので、そのエラー許容できないエラーレベルのプログラムをスケジュール管理することは不要である。
しかし、このように監視対象のコアごとにロックステップコアを設けるものとすると、ロックステップコアの数の増大に伴って、チップ面積が増大し或いはコストが上昇するなどの不都合が生ずる。一方、ロックステップコアの数を監視対象のコアの数よりも少なくできれば、上記の不都合を低減することはできる。しかし、かかる構成においては、エラー許容できないエラーレベルのプログラムが適切にスケジュール管理されていないと、コアがそのエラー許容できないエラーレベルのプログラムを実行するときに、そのプログラムをロックステップコアが同期して実行することができない事態が生じてしまう。
本発明は、上述の点に鑑みてなされたものであり、並列処理を行うコアごとに対応してロックステップコアを設けることなく、エラー許容できないエラーレベルのプログラムを適切にロックステップコアに同期して実行させつつ、各コアそれぞれを適切に監視することが可能な情報処理装置を提供することを目的とする。
本発明の一態様は、複数のコアと前記コアの数よりも少ない数のロックステップコアとを有するマルチコアプロセッサに、エラーを許容できない第1エラーレベルのプログラムと所定のエラーを許容できる第2エラーレベルのプログラムとを少なくとも含む複数のプログラムのスレッドを並列処理させる情報処理装置であって、プログラムのエラーレベルに基づいて、前記第1エラーレベルのプログラムのスレッドが前記ロックステップコアの数を超えて時間的に重複しないようにプログラムのスケジューリングを行うスケジュール管理手段と、すべての前記コアそれぞれで同時期に実行されるスレッドのうちの何れかが前記第1エラーレベルのプログラムのスレッドであるときに、該第1エラーレベルのプログラムのスレッドを前記ロックステップコアに同期して実行させ、また、すべての前記コアそれぞれで同時期に実行されるスレッドのうちに含まれる前記第1エラーレベルのプログラムのスレッドの数が前記ロックステップコアの数に満たないときに、何れかの前記コアが実行する前記第2エラーレベルのプログラムのスレッドを前記ロックステップコアに同期して実行させる同期制御手段と、前記コアでの命令実行結果と前記ロックステップコアでの命令実行結果との比較結果に基づいて該コアを監視するコア監視手段と、を備える情報処理装置である。
本発明によれば、並列処理を行うコアごとに対応してロックステップコアを設けることなく、エラー許容できないエラーレベルのプログラムを適切にロックステップコアに同期して実行させつつ、各コアそれぞれを適切に監視することができる。
本発明の一実施例である情報処理装置のハードウェア構成図である。 本実施例の情報処理装置における動作イメージ図である。 エラーレベルがエラーレベルBであるプログラムの機能ごとの処理周期T1及び規定時間T2の一例を表した図である。 本実施例の情報処理装置においてロックステップコアが同期して実行する同期対象コアの切り替え手法を説明するための図である。 本実施例の情報処理装置においてエラーレベルBのプログラム実行に対するコアを監視すべく実行される制御ルーチンの一例のフローチャートである。 本実施例の情報処理装置におけるエラー検出対象の命令セットの一例を表した図である。
以下、図面を用いて、本発明に係る情報処理装置の具体的な実施の形態について説明する。
図1は、本発明の一実施例である情報処理装置10のハードウェア構成図を示す。また、図2は、本実施例の情報処理装置10における動作イメージ図を示す。
本実施例の情報処理装置10は、例えば車載制御を実行するうえで用いられるマイクロコンピュータ(マイコン)である。情報処理装置10は、実行制御に対する信頼性を確保しながら、マルチコアプロセッサの性能を極大化するためにマルチスレッドの単位を細分化した並列プログラミングソフトを効率的に動作させるためのプロセッサ構造やソフトウェア制御構造に特徴を有する。
図1に示す如く、情報処理装置10は、マルチコアプロセッサ12を備えている。マルチコアプロセッサ12は、並列処理を行う三以上のコア14を含んでいる。以下、各コア14をコア14−1,14−2,14−3,・・・,14−Nとする。尚、Nは、マルチコアプロセッサ12が有するコア14の数である(N≧3)。マルチコアプロセッサ12の各コア14はそれぞれ、互いに独立して動作実行することが可能である。
マルチコアプロセッサ12を構成するすべてのコア14には、クロック生成回路16が接続されている。クロック生成回路16は、所定周期のクロックを生成して各コア14に出力することが可能である。各コア14はそれぞれ、クロック生成回路16からのクロックに従って、動作実行することが可能である。
マルチコアプロセッサ12を構成するすべてのコア14には、レジスタ・メモリ18が接続されている。レジスタ・メモリ18と各コア14とは、アドレスバス20を介して接続されていると共に、データバス22を介して接続されている。アドレスバス20は、レジスタ・メモリ18と各コア14との間でメモリアドレスを転送するための線である。データバス22は、レジスタ・メモリ18と各コア14との間でデータを転送するための線である。
レジスタ・メモリ18は、コア14の動作に必要なデータを記憶する要素であり、各コア14で共有される。レジスタ・メモリ18には、各コア14が実行可能な制御プログラムが複数格納されている。複数の制御プログラムはそれぞれ、コア14の動作実行によって車載制御として予め定められた機能を実現させるものである。この機能としては、例えば、ブレーキ制御やアクセル制御,操舵制御,ダイアグノーシス制御,通信制御,記憶制御などである。各機能には、予め処理周期(割り込み周期)やエラー許容時間などが定められている。
コア14には、他のコア14の動作を監視するロックステップコア24が含まれる。ロックステップコア24は、マルチコアプロセッサ12を構成する三以上のコア14のうち唯一つである。以下、ロックステップコア24を除くコア14を通常コア25と称す。すなわち、マルチコアプロセッサ12は、コア14として、複数の通常コア25と、一つのロックステップコア24と、を有する。ロックステップコア24は、クロック生成回路16から供給されるクロックに従って、すべての通常コア25のうちの監視対象である一つの通常コア25が実行するスレッドと同じスレッドを同期して実行する。
情報処理装置10は、また、RTOS(リアルタイムオペレーティングシステム)26と、切替器28と、を備えている。RTOS26は、各コア14(具体的には、通常コア25)にて動作させるスレッドを配分してスケジューリングする機能を有する。切替器28は、すべての通常コア25のうちで、同じスレッドをロックステップコア24が同期して実行する同期対象の通常コア25(以下、この通常コア25を同期対象コア25と称す。)を切り替える機能を有する。
各コア14で実行可能な制御プログラムにはそれぞれ、エラーを許容できる或いはできない段階を示すエラーレベルが予め定められている。すなわち、制御プログラムごとにエラーレベルが定められている。エラーレベルは、例えば3段階ある。各制御プログラムは、レジスタ・メモリ18に、プログラム範囲として開始アドレスと終了アドレスとが予め割り当てられて格納されている。制御プログラムとエラーレベルとの関係は、ROMに格納されたエラーレベルマップ30に記憶されている。エラーレベルマップ30に記憶される関係は、エラーレベルごとの各制御プログラムのプログラム範囲で定められる。
エラーレベルは、何れのエラーでも許容できるレベル(以下、エラーレベルAとする。)と、ソフトエラーを許容できる一方でハードエラーを許容できないレベル(すなわち、エラーが規定時間以上継続しなければよいレベル或いは規定時間内のエラー継続を許容できるレベル;以下、エラーレベルBとする。)と、ハードやソフトに関係なくエラーを許容できないレベル(以下、エラーレベルCとする。)と、を含むものである。尚、エラーレベルは、少なくとも上記のエラーレベルB及び上記のエラーレベルCを含むものであればよい。
例えば図2に示す如く、上記のエラーレベルCのプログラムは、割り当てられたプログラム範囲が開始アドレス"0000"から終了アドレス"0100"までであるプログラムと、割り当てられたプログラム範囲が開始アドレス"1100"から終了アドレス"2000"までであるプログラムと、である。上記のエラーレベルBのプログラムは、割り当てられたプログラム範囲が開始アドレス"0200"から終了アドレス"0300"までであるプログラムと、割り当てられたプログラム範囲が開始アドレス"5000"から終了アドレス"FFFF"までであるプログラムと、である。また、上記のエラーレベルAのプログラムは、割り当てられたプログラム範囲が上記のエラーレベルBのプログラム範囲と上記のエラーレベルCのプログラム範囲とを除いた範囲であるプログラムである。
上記した切替器28には、上記したエラーレベルマップ30が接続されている。切替器28は、エラーレベルマップ30と各通常コア25のプログラムカウンタ値(すなわち、次に実行すべき命令が格納されているメモリアドレス値)とを参照して、ロックステップコア24にて監視する同期対象コア25を切り替えることが可能である。
RTOS26は、上記エラーレベルCのプログラムのスレッドが二以上、時間的に重複しないようにすなわち互いに異なる通常コア25で同時期に実行されないように、各プログラムのスレッドのスケジューリングを行う。すなわち、RTOS26は、ロックステップコア24が同期対象コア25と同期して同じスレッドを実行する際にその同期対象コア25とは別の通常コア25にてエラーレベルCのプログラムを実行しないように、各プログラムのスレッドのスケジューリングを行う。
例えば、上記エラーレベルCのプログラムのスレッドが二以上の通常コア25で同時期に実行されようとするときは、その実行前に、それらの通常コア25のうち何れかの通常コア25に対してそのエラーレベルCのプログラムによる命令実行を待機させ或いは他スレッドを優先して命令実行させるスケジューリングが行われる。また、ロックステップコア24にてエラーレベルCのプログラムのスレッドが実行されているときは、そのエラーレベルCのプログラムを命令実行する通常コア25以外の通常コア25に対してエラーレベルCのプログラムによる命令実行を待機させ或いは他スレッドを優先して命令実行させるスケジューリングが行われる。
また、RTOS26は、何れかの通常コア25にエラーレベルCのプログラムのスレッドを実行させないときは、エラーレベルB又はエラーレベルCのプログラムのスレッドを各通常コア25に実行させるようにスケジューリングを行う。
通常コア25とロックステップコア24とを有するマルチコアプロセッサ12は、エラーレベルA〜Cのプログラムのスレッドを並列処理することが可能である。各通常コア25はそれぞれ、RTOS26のスケジューリングに従って割り当てられたスレッドを命令実行する。各通常コア25はそれぞれ、命令実行して得られた結果(命令実行結果)を示すデータをデータバス22を介してレジスタ・メモリ18に転送する。レジスタ・メモリ18に転送されたデータは、レジスタ・メモリ18に記憶される。
切替器28は、入力端子32と、スイッチ34と、出力端子36と、を有している。入力端子32は、通常コア25の数と同数だけ設けられており、それらの通常コア25とデータバス22とを繋ぐ通信線38に接続されている。各入力端子32には、通常コア25それぞれがデータバス22を介してレジスタ・メモリ18に向けて出力するデータが入力される。スイッチ34は、出力端子36に接続させる端子を何れか一の入力端子32に切り替えるスイッチである。切替器28は、出力端子36に、同期対象コア25として設定された通常コア25に接続する入力端子32が接続されるように、スイッチ34をオンする。
情報処理装置10は、また、比較・エラー検出器40を備えている。比較・エラー検出器40には、切替器28の出力端子36が接続されていると共に、ロックステップコア24とデータバス22とを繋ぐ通信線42が接続されている。比較・エラー検出器40には、同期対象コア25から出力された命令実行結果を示すデータが切替器28を介して供給されると共に、ロックステップコア24から出力された命令実行結果を示すデータが供給される。比較・エラー検出器40は、同期対象コア25から出力された命令実行結果を示すデータと、ロックステップコア24から出力された命令実行結果を示すデータと、を比較することにより、その同期対象コア25において生ずるエラーを検出する監視を行う。
次に、図3〜図6を参照して、本実施例の情報処理装置10において、通常コア25である同期対象コア25とロックステップコア24とが互いに同じスレッドを実行するうえで、その同期対象コア25を設定する手法について説明する。
本実施例の情報処理装置10において、RTOS26は、各コア14(具体的には、通常コア25)にて動作させるプログラムのスレッドを配分してスケジューリングする。このスケジューリングは、エラーレベルがエラーレベルCであるプログラムのスレッドが互いに異なる通常コア25で同時期に実行されないように、或いは、ロックステップコア24が同期対象コア25と同期して同じスレッドを実行する際にその同期対象コア25とは別の通常コア25にてエラーレベルCのプログラムを実行しないように行われる。また、上記のスケジューリングは、エラーレベルがエラーレベルCであるプログラムのスレッドの実行が何れかのコア14で時間的に連続して行われることが無いように、すなわち、エラーレベルがエラーレベルCであるプログラムのスレッドの実行が何れのコア14でも行われていない期間が生じるように行われる。
切替器28は、プログラムとエラー許容レベルとの関係を規定したエラーレベルマップ30と、各コア14のプログラムカウンタ値と、を参照して、ロックステップコア24にて監視すべき同期対象コア25を切り替える。
具体的には、切替器28は、RTOS26でのスケジューリングの結果、マルチコアプロセッサ12を構成する複数の通常コア25のうちに、エラーを許容できないエラーレベルCのプログラムのスレッドを実行する通常コア25があるときは、そのエラーレベルCのプログラムを実行する通常コア25を同期対象コア25に設定して、その通常コア25に同期対象コア25を切り替える。この同期対象コア25の切り替えは、その通常コア25がエラーレベルCのプログラムのスレッドの実行を開始するタイミングで行われる。
また、切替器28は、RTOS26でのスケジューリングの結果、マルチコアプロセッサ12を構成する複数の通常コア25のうちに、エラーレベルCのプログラムのスレッドを実行する通常コア25が無いときは、通常コア25を一つずつ時間をずらしながら同期対象コア25に設定して、同期対象コア25を順次切り替える。具体的には、すべての通常コア25それぞれでの全監視対象の命令実行が行われることを確認できるように、同期対象コア25をそれらの通常コア25のうちで所定順に切り替える。このすべての通常コア25への同期対象コア25の切り替えは、エラーレベルが規定時間内のエラー継続を許容できるエラーレベルBであるすべてのプログラムのうち、その規定時間が最小であるプログラム(以下、最短プログラムと称す。)のその規定時間(以下、最短エラー許容時間と称す。)内にできるだけ収まるように行われる。
図3は、エラーレベルがエラーレベルBであるプログラムごとの処理周期T1及び規定時間T2の一例を表した図を示す。
エラーレベルがエラーレベルBであるプログラムは、例えば図3に示す如く、3つの機能X,Y,Zを含むプログラムである。各機能X,Y,Zはそれぞれ、演算処理周期(割り込み周期)T1が互いに異なると共に、規定時間T2が互いに異なるものである。この場合、全機能X,Y,Zのうち規定時間T2が最小である機能(図3に示す例では、規定時間T2が200ミリ秒である機能X)のプログラムが、上記の最短プログラムとして設定される。尚、エラーレベルBのプログラムの規定時間T2は、機能ごとに、安全性や商品性などを確保できるエラー継続を許容できる時間(例えば、アクチュエータ応答性や人間工学などに基づく導出されてもよい。)に設定される。
エラーレベルがエラーレベルBであるプログラムについては、その実行時にエラーが規定時間T2以上継続しなければよいので、エラーレベルがエラーレベルBであるすべてのプログラムの規定時間T2のうち最短エラー許容時間T2内に、すべての通常コア25それぞれの全監視対象の命令実行が正しく行われることを確認できれば、すべての通常コア25に最短エラー許容時間T2以上継続するハードエラーが生じていないことを確認することが可能となる。
図4は、本実施例の情報処理装置10においてロックステップコア24が同期して実行する同期対象コア25の切り替え手法を説明するための図を示す。図5は、本実施例の情報処理装置10においてエラーレベルBのプログラム実行に対する通常コア25を監視すべく実行される制御ルーチンの一例のフローチャートを示す。また、図6は、本実施例の情報処理装置10における監視対象(エラー検出対象)の命令セットの一例を表した図を示す。
本実施例において、情報処理装置10は、上記の最短エラー許容時間T2内に、マルチコアプロセッサ12内のすべての通常コア25をロックステップコア24に監視させる。すなわち、通常コア25ごとに一つずつ全監視対象の命令実行に対する監視をロックステップコア24に行わせる。
マルチコアプロセッサ12の有する各通常コア25は、予めコア番号no.(=0〜N−2)が定められている。上記の全監視対象の命令実行に対する監視は、例えばコア番号no.の小さい方から順に行われる。切替器28は、例えばコア番号no.の小さい方から順に時間をずらしながら一の通常コア25を同期対象コア25に設定して、同期対象コア25を順次切り替える(図4参照)。この切り替えは、一の通常コア25の監視が完了するごとに行われる。
情報処理装置10は、コア番号no.がコアカウント値cnt_coreに一致する通常コア25について全監視対象の命令の監視が未完了である限り図5に示すループ1の処理を行う。尚、コアカウント値cnt_coreは、監視が完了した通常コア25の数を示す値であって、その初期値は"0"である。
ループ1の処理では、コア番号no.がコアカウント値cnt_coreに一致する通常コア25が同期対象コア25に設定されて、切替器28がそのコア番号no.の通常コア25に同期対象コア25を切り替えたうえで、その同期対象コア25が実行するスレッドの命令に対する演算結果がロックステップコア24にて監視される(ステップ100)。そして、そのコア番号no.の通常コア25での命令実行結果とロックステップコア24での命令実行結果とが一致するか否かが比較・エラー検出器40にて判別される(ステップ102)。
上記ステップ102の処理結果、命令実行結果が一致しないと判別した場合は、そのコア番号no.の通常コア25にエラーが生じていると判定され、エラー通知などのフェールセーフ処理が行われ(ステップ104)、本ルーチンが終了される。一方、命令実行結果が一致すると判別した場合は、監視対象命令カウント値cnt_instがゼロにリセットされ(ステップ106)、その後、その監視対象命令カウント値cnt_instが監視対象命令セットにおける命令数N_inst未満である限りループ2の処理が行われる。
尚、監視対象命令カウント値cnt_instは、図6に示す如く、監視対象としての通常コア25が実行すべき命令(例えば、加算ADD、引き算SUB、・・・、比較CMPなど)ごとに割り当てられた命令番号のうち、その時点で監視すべき命令の命令番号を示すものである。また、監視対象命令セットにおける命令数N_instは、通常コア25ごとに実行すべき命令の総数のことであり、予め定められている。
ループ2の処理では、同期対象コア25とロックステップコア24とがそれぞれ実行した命令が、監視対象命令カウント値cnt_instに現に割り当てられている命令Inst[cnt_core][cnt_inst]に一致するか否かが判別される(ステップ110)。その結果、実行した命令が、監視対象命令カウント値cnt_instに対応した命令Inst[cnt_core][cnt_inst]に一致しないと判別した場合は、その監視対象命令カウント値cnt_instが"1"だけインクリメントされてループ2の処理が繰り返し行われる。
一方、上記ステップ110において、実行した命令が、監視対象命令カウント値cnt_instに対応した命令Inst[cnt_core][cnt_inst]に一致すると判別した場合は、その時点で同期対象コア25として設定されている通常コア25に対して、実行した命令に対する監視が完了したことを示す監視完了フラグ[cnt_core][cnt_inst]がオンされる(ステップ112)。かかる処理が行われると、ループ2の処理が中途終了され、ループ1の処理が終了される。この場合には、その終了時点で同期対象コア25として設定されている、コア番号no.がコアカウント値cnt_coreである通常コア25に対するロックステップコア24による監視が終了される。
上記の如くコア番号no.の通常コア25に対するロックステップコア24による監視が終了されると、次に、コアカウント値cnt_coreが"1"だけインクリメントされ(ステップ120)。そして、そのインクリメント後のコアカウント値cnt_coreがコア数N_core未満であるか否かが判別される(ステップ122)。尚、コア数N_coreは、マルチコアプロセッサ12の有する通常コア25の数のことである(N_core=N−1)。
上記ステップ122において、インクリメント後のコアカウント値cnt_coreがコア数N_core未満であると判別した場合は、すべての通常コア25の監視が完了していないとして、以後、ループ1の処理が繰り返し行われる。具体的には、コア番号no.がインクリメント後のコアカウント値cnt_coreに一致する通常コア25が同期対象コア25に設定されて、切替器28がそのコア番号no.の通常コア25に同期対象コア25を切り替えたうえで、ロックステップコア24による監視が行われる。
一方、上記ステップ122において、インクリメント後のコアカウント値cnt_coreがコア数N_core未満でないと判別した場合は、すべての通常コア25の監視が完了したとして、コアカウント値cnt_coreがゼロにリセットされ(ステップ124)、以後、ループ1の処理が繰り返し行われる。
このように、本実施例の情報処理装置10においては、マルチコアプロセッサ12を構成するすべての通常コア25のうちに、エラーを許容できないエラーレベルCのプログラムのスレッドを実行する通常コア25があるとき、すなわち、すべての通常コア25で同時期に実行されるスレッドのうちの何れかがエラーレベルCのプログラムのスレッドであるときは、その通常コア25のそのスレッドの実行タイミングでその通常コア25に同期対象コア25を切り替えることで、ロックステップコア24にその通常コア25を監視させることができる。
また、すべての通常コア25のうちに、エラーレベルCのプログラムのスレッドを実行する通常コア25が無いとき、すなわち、すべての通常コア25で同時期に実行されるスレッドのうちに含まれるエラーレベルCのプログラムのスレッドの数がロックステップコア24の数(具体的には、一つ)に満たないときは、その通常コア25が無いタイミング中に、すべての通常コア25を一つずつ時間をずらしながら同期対象コア25に設定して同期対象コア25を順次切り替えることで、ロックステップコア24に各通常コア25を監視させることができる。尚、同期対象コア25の切り替えを、具体的には、各通常コア25の全監視対象の命令実行が正しく行われたことが確認される毎に行うことができる。
そして、ロックステップコア24による監視の結果、同期対象コア25での命令実行結果とロックステップコア24での命令実行結果とを比較して、両命令実行結果が互いに異なる場合に、同期対象コア25に設定されている通常コア25にエラーが生じていると判定し、エラー通知などのフェールセーフ処理を行うことができる。
上記したシステムによれば、同じスレッドをロックステップコア24が同期して実行する監視対象の同期対象コア25を、複数の通常コア25の間で切替器28により切り替えることができる。そして、並列処理を行う複数の通常コア25を一つのロックステップコア24にて監視することができ、各通常コア25のエラー検出を一つのロックステップコア24を用いて実現することができる。このため、本実施例によれば、ロックステップコア24を監視対象のコア14ごとに対応して設けることは不要であり、情報処理装置10内のロックステップコア24が占めるチップ面積が増大するのを防止することができ、コスト上昇を抑えることができる。
また、上記したシステムにおいては、エラーを許容できないエラーレベルCのプログラムのスレッドは、RTOS26により、二以上のスレッドが時間的に重複しないようにすなわち互いに異なる通常コア25で同時期に実行されないようにスケジューリングされている。そして、エラーレベルCのプログラムのスレッドを実行する通常コア25があるときは、その実行開始タイミングでその通常コア25に同期対象コア25を切り替えることができる。
一方、エラーレベルCのプログラムのスレッドを実行する通常コア25が無いときは、そのタイミングですべての通常コア25を一つずつ時間をずらしながら同期対象コア25に設定して同期対象コア25を順次切り替えることができると共に、その同期対象コア25の切り替えを、各通常コア25それぞれの全監視対象の命令実行が正しく行われることが確認される毎に行うことができる。
かかるシステムによれば、マルチコアプロセッサ12のすべての通常コア25を一つのロックステップコア24にて監視するうえで、エラーレベルCのプログラムを確実かつ適切にロックステップコア24に同期して実行させると共に、エラーレベルCのプログラムを実行する通常コア25が無いタイミングで各通常コア25それぞれの監視を適切に行うことができる。従って、本実施例の情報処理装置10によれば、通常コア25ごとに一つずつ対応してロックステップコア24を設けることなく、エラーレベルCのプログラムを適切にロックステップコアに同期して実行させつつ、各通常コア25それぞれを適切に監視することができる。
尚、上記の実施例においては、エラーレベルCが特許請求の範囲に記載した「第1エラーレベル」に、エラーレベルBが特許請求の範囲に記載した「第2エラーレベル」に、RTOS26が特許請求の範囲に記載した「スケジュール管理手段」に、切替器28が特許請求の範囲に記載した「同期制御手段」及び「切替手段」に、比較・エラー検出器40が特許請求の範囲に記載した「コア監視手段」に、それぞれ相当している。
ところで、上記の実施例においては、すべての通常コア25のうちにエラーレベルCのプログラムのスレッドを実行する通常コア25が無いタイミング中に、すべての通常コア25を一つずつ時間をずらしながら同期対象コア25に設定して同期対象コア25を順次切り替えることで、ロックステップコア24に各通常コア25を監視させることとしている。かかる構成においては、実行プログラムにおける命令の分布上、すべての通常コア25の全監視対象の命令実行が正しく行われることの確認が開始されてから完了するまでに要する時間(すなわち、ロックステップコア24による最初のコア14の監視開始から最後のコア14の監視終了までの時間)が、エラーレベルBの最短プログラムの最短エラー許容時間を超える可能性がある。そこで、かかる事態が生じるような場合に、明示的に残存した監視対象の命令を模擬したダミー命令をスケジュール実行し、その最短エラー許容時間内でのロックステップコア24による通常コア25の監視を確保することとしてもよい。
また、上記の実施例においては、マルチコアプロセッサ12を構成するすべてのコア14のうちロックステップコア24を一つだけ設けることとする。そして、すべての通常コア25のうちに、エラーを許容できないエラーレベルCのプログラムのスレッドを実行する通常コア25があるときに、ロックステップコア24にその通常コア25を監視させ、また、すべての通常コア25のうちにエラーレベルCのプログラムのスレッドを実行する通常コア25が無いときに、同期対象コア25を順次切り替えてロックステップコア24に各通常コア25を監視させることとしている。
しかし、本発明はこれに限定されるものではなく、ロックステップコア24を通常コア25の数よりも少ない数だけ設けたシステムに適用することが可能である。例えば、マルチコアプロセッサ12が、2つのロックステップコア24と、3つ以上の通常コア25と、を有するものとしてもよい。
かかる変形例においては、すべての通常コア25それぞれで同時期に実行されるスレッドのうちの何れかがエラーレベルCのプログラムのスレッドであるときに、そのエラーレベルCのプログラムのスレッドをロックステップコア24に同期して実行させて、そのエラーレベルCのプログラムのスレッドを実行する通常コア25を監視させる。また、すべての通常コア25それぞれで同時期に実行されるスレッドのうちに含まれるエラーレベルCのプログラムのスレッドの数がロックステップコア24の数に満たないときに、何れかの通常コア25が実行するエラーレベルBのプログラムのスレッドをロックステップコア24に同期して実行させて、各通常コア25を監視させることとすればよい。
また、上記の実施例においては、ソフトエラーを許容できる一方でハードエラーを許容できないエラーレベルBを、そのエラーが規定時間以上継続しなければよいレベル或いは規定時間内のエラー継続を許容できるレベルとした。しかし、本発明はこれに限定されるものではなく、そのエラーレベルBを、時間をかけてもエラー有無を検出できればよいレベルとしてもよい。
10 情報処理装置
12 マルチコアプロセッサ
14 コア
16 クロック生成回路
18 レジスタ・メモリ
24 ロックステップコア
25 通常コア
26 リアルタイムオペレーティングシステム(RTOS)
28 切替器
30 エラーレベルマップ
40 比較・エラー検出器

Claims (4)

  1. 複数のコアと前記コアの数よりも少ない数のロックステップコアとを有するマルチコアプロセッサに、エラーを許容できない第1エラーレベルのプログラムと所定のエラーを許容できる第2エラーレベルのプログラムとを少なくとも含む複数のプログラムのスレッドを並列処理させる情報処理装置であって、
    プログラムのエラーレベルに基づいて、前記第1エラーレベルのプログラムのスレッドが前記ロックステップコアの数を超えて時間的に重複しないようにプログラムのスケジューリングを行うスケジュール管理手段と、
    すべての前記コアそれぞれで同時期に実行されるスレッドのうちの何れかが前記第1エラーレベルのプログラムのスレッドであるときに、該第1エラーレベルのプログラムのスレッドを前記ロックステップコアに同期して実行させ、また、すべての前記コアそれぞれで同時期に実行されるスレッドのうちに含まれる前記第1エラーレベルのプログラムのスレッドの数が前記ロックステップコアの数に満たないときに、何れかの前記コアが実行する前記第2エラーレベルのプログラムのスレッドを前記ロックステップコアに同期して実行させる同期制御手段と、
    前記コアでの命令実行結果と前記ロックステップコアでの命令実行結果との比較結果に基づいて該コアを監視するコア監視手段と、
    を備えることを特徴とする情報処理装置。
  2. 前記同期制御手段は、同じスレッドを前記ロックステップコアが同期して実行する前記コアを切り替える切替手段を含むことを特徴とする請求項1記載の情報処理装置。
  3. 前記同期制御手段は、すべての前記コアそれぞれでの全監視対象の命令実行が行われたことを確認できるように、前記コアごとに所定順に、該コアが実行する前記第2エラーレベルのプログラムのスレッドを前記ロックステップコアに同期して実行させることを特徴とする請求項1又は2記載の情報処理装置。
  4. 前記切替手段は、一の前記コアの全監視対象の命令実行が正しく行われたことが確認された場合に、該一の前記コアとは別の前記コアに、同じスレッドを前記ロックステップコアが同期して実行する前記コアを切り替えることを特徴とする請求項2記載の情報処理装置。
JP2015034217A 2015-02-24 2015-02-24 情報処理装置 Expired - Fee Related JP6277971B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015034217A JP6277971B2 (ja) 2015-02-24 2015-02-24 情報処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015034217A JP6277971B2 (ja) 2015-02-24 2015-02-24 情報処理装置

Publications (2)

Publication Number Publication Date
JP2016157247A true JP2016157247A (ja) 2016-09-01
JP6277971B2 JP6277971B2 (ja) 2018-02-14

Family

ID=56826224

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015034217A Expired - Fee Related JP6277971B2 (ja) 2015-02-24 2015-02-24 情報処理装置

Country Status (1)

Country Link
JP (1) JP6277971B2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111400997A (zh) * 2020-03-26 2020-07-10 超验信息科技(长沙)有限公司 一种基于同步执行的处理器核验证方法、系统及介质
US11385977B2 (en) 2017-04-25 2022-07-12 Hitachi, Ltd. Reconfiguration control device
WO2023281766A1 (ja) * 2021-07-09 2023-01-12 株式会社デンソー 自動車用コンピュータの制御方法、及び車両用電子制御装置
US11663069B2 (en) 2018-09-25 2023-05-30 Panasonic Intellectual Property Management Co., Ltd. Processing system, sensor system, mobile object, abnormality determination method, and non-transitory storage medium

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006302289A (ja) * 2005-04-19 2006-11-02 Hewlett-Packard Development Co Lp ロックステップ及びフリーステップの両プロセッサモードによる計算処理
JP2012068788A (ja) * 2010-09-22 2012-04-05 Toyota Motor Corp 情報処理装置、異常検出方法
JP2013528850A (ja) * 2010-04-15 2013-07-11 ザイリンクス インコーポレイテッド ロックステップ同期のためのシステムおよび方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006302289A (ja) * 2005-04-19 2006-11-02 Hewlett-Packard Development Co Lp ロックステップ及びフリーステップの両プロセッサモードによる計算処理
JP2013528850A (ja) * 2010-04-15 2013-07-11 ザイリンクス インコーポレイテッド ロックステップ同期のためのシステムおよび方法
JP2012068788A (ja) * 2010-09-22 2012-04-05 Toyota Motor Corp 情報処理装置、異常検出方法

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11385977B2 (en) 2017-04-25 2022-07-12 Hitachi, Ltd. Reconfiguration control device
US11663069B2 (en) 2018-09-25 2023-05-30 Panasonic Intellectual Property Management Co., Ltd. Processing system, sensor system, mobile object, abnormality determination method, and non-transitory storage medium
CN111400997A (zh) * 2020-03-26 2020-07-10 超验信息科技(长沙)有限公司 一种基于同步执行的处理器核验证方法、系统及介质
CN111400997B (zh) * 2020-03-26 2023-08-08 超睿科技(长沙)有限公司 一种基于同步执行的处理器核验证方法、系统及介质
WO2023281766A1 (ja) * 2021-07-09 2023-01-12 株式会社デンソー 自動車用コンピュータの制御方法、及び車両用電子制御装置
JPWO2023281766A1 (ja) * 2021-07-09 2023-01-12
JP7409567B2 (ja) 2021-07-09 2024-01-09 株式会社デンソー 自動車用コンピュータの制御方法、及び車両用電子制御装置

Also Published As

Publication number Publication date
JP6277971B2 (ja) 2018-02-14

Similar Documents

Publication Publication Date Title
US9823983B2 (en) Electronic fault detection unit
JP6277971B2 (ja) 情報処理装置
US20110066779A1 (en) Data processing system, data processing method, and apparatus
US9405644B2 (en) Redundant automation system
US20120317576A1 (en) method for operating an arithmetic unit
US10114356B2 (en) Method and apparatus for controlling a physical unit in an automation system
JP2015018414A (ja) マイクロコンピュータ
US10379931B2 (en) Computer system
US20090119540A1 (en) Device and method for performing switchover operations in a computer system having at least two execution units
WO2012132692A1 (ja) 並列処理システム及び並列処理システムの動作方法
RU2360280C2 (ru) Способ и устройство для обработки операндов в процессоре
JP2014191655A (ja) マルチプロセッサ、電子制御装置、プログラム
JP6934346B2 (ja) コンピュータ化されたシステムおよび冗長システム
US8060769B2 (en) Duplexed field controller
JP2017102633A (ja) 情報処理装置および半導体集積回路装置
JP5537140B2 (ja) 安全制御装置、及びその安全制御プログラム
US8316168B2 (en) Method and communications system for the configuration of a communications module containing a logic component
JP2013054625A (ja) 情報処理装置、情報処理方法
JP2009075948A (ja) マルチコアプロセッサ
JP7512529B2 (ja) データ処理のためのデータ処理ネットワーク
KR102023164B1 (ko) 알티오에스 마이컴의 오에스 태스크의 모니터링 방법
US20150100759A1 (en) Pipelined finite state machine
CN111201514B (zh) 在包括多核处理器的平台上执行软件应用期间实施分区的电子设备和方法、相关联的计算机程序和电子系统
US9325520B2 (en) System and method for an asynchronous processor with scheduled token passing
US10719356B1 (en) High integrity multicore computing environment with granular redundant multi-threading

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170315

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20171010

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171204

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180101

R151 Written notification of patent or utility model registration

Ref document number: 6277971

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

LAPS Cancellation because of no payment of annual fees