(57)【要約】【課題】プロセッサエレメントを密に結合することなくマルチプロセッサシステムの機能安全を実現する。【解決手段】複数個のプロセッサエレメントに同じデータ処理を実行させてプロセッサエレメントの機能安全を実現する場合に、当該複数のプロセッサエレメントから発行されたアクセス要求の不一致が確定することをもって安全対策の処理を行い、一致することをもって当該アクセス要求に応答するアクセス処理を開始する制御を行うバスインタフェースユニットを採用する。【選択図】図１
2015153282.tif 000002
【特許請求の範囲】
【請求項１】
複数個のプロセッサエレメントと、
前記プロセッサエレメントによってアクセス可能にされるバススレーブモジュールと、
前記プロセッサエレメントとバススレーブモジュールとの間に配置されたバスインタフェースユニットと、を有し、
前記バスインタフェースユニットは、前記プロセッサエレメントからのバスアクセス要求に対し競合を調停するバスアクセス調停回路と、前記プロセッサエレメントの機能安全を実現するためのフェールセーフ回路ブロックとを有し、
前記フェールセーフ回路ブロックは、複数個の所定の前記プロセッサエレメントが同一のデータ処理を並列的に行うことにより当該複数のプロセッサエレメントから発行されたアクセス要求の不一致が確定することをもって安全対策の処理を行い、一致することをもって当該アクセス要求に応答するアクセス処理を開始する制御を行う、マルチプロセッサシステム。
【請求項２】
請求項１において、前記フェールセーフ回路ブロックは、２個の所定の前記プロセッサエレメントが同一のデータ処理を並列的に行うことにより当該複数個のプロセッサエレメントの一つから第１のアクセス要求が発行されたときこれに一致する第２のアクセス要求を判別することができた場合は第１のアクセス要求と第２のアクセス要求に応答する共通のアクセスを実行し、
２個の所定の前記プロセッサエレメントが同一のデータ処理を並列的に行うことにより当該複数個のプロセッサエレメントの一つから第１のアクセス要求が発行されたときこれに一致する第２のアクセス要求を判別することができない場合は当該第１のアクセス要求の実行を保留し、所定時間が経過するまでに第２のアクセス要求を判別することができた場合は第１のアクセス要求の保留を解除して、第１のアクセス要求と第２のアクセス要求に応答する共通のアクセスを実行し、前記所定時間が経過するまでに第２のアクセス要求を判別することができない場合は前記第１のアクセス要求に関して前記安全対策の処理を行う、マルチプロセッサシステム。
【請求項３】
請求項２において、前記第１のアクセス要求に関する前記安全対策の処理は、前記第１のアクセス要求の破棄である、マルチプロセッサシステム。
【請求項４】
請求項２において、前記第１のアクセス要求に関する前記安全対策の処理は、前記第１のアクセス要求の発行元であるプロセッサエレメントに対する動作停止の指示である、マルチプロセッサシステム。
【請求項５】
請求項２において、前記第１のアクセス要求に関する前記安全対策の処理は、前記第１のアクセス要求の発行元であるプロセッサエレメントに対するリセット処理の指示である、マルチプロセッサシステム。
【請求項６】
請求項３乃至５の何れかにおいて、前記第１のアクセス要求に関する前記安全対策の処理は、マルチプロセッサシステムの外部に対するエラー通知を更に含む、マルチプロセッサシステム。
【請求項７】
請求項１において、前記フェールセーフ回路ブロックは、３個の所定の前記プロセッサエレメントが同一のデータ処理を並列的に行うことにより当該複数個のプロセッサエレメントの一つから第１のアクセス要求が発行されたときこれに一致する第２のアクセス要求及び第３のアクセス要求を判別することができた場合は、第１のアクセス要求、第２のアクセス要求及び第３のアクセス要求に応答する共通のアクセスを実行し、
３個の所定の前記プロセッサエレメントが同一のデータ処理を並列的に行うことにより当該複数個のプロセッサエレメントの一つから第１のアクセス要求が発行されたときこれに一致する第２のアクセス要求及び第３のアクセス要求を判別することができない場合は当該第１のアクセス要求の実行を保留し、所定時間が経過するまでに第２のアクセス要求及び第３のアクセス要求の双方を判別することができた場合は前記第１のアクセス要求の保留を解除して、一致に係るアクセス要求に応答する共通のアクセスを実行し、
前記所定時間が経過するまでに第２のアクセス要求又は第３のアクセス要求の何れか一方を判別することができたときは前記第１のアクセス要求の保留を解除して、一致に係るアクセス要求に応答する共通のアクセスを実行し、且つ、判別することができなかった前記第２のアクセス要求又は前記第３のアクセス要求の他方のアクセス要求に関して前記安全対策の処理を行い、
前記所定時間が経過するまでに第２のアクセス要求及び第３のアクセス要求の双方を判別することができない場合は前記第１のアクセス要求、前記第２のアクセス要求及び前記第３のアクセス要求に関して前記安全対策の処理を行う、マルチプロセッサシステム。
【請求項８】
請求項７において、前記アクセス要求に関する前記安全対策の処理は、対応するアクセス要求の破棄である、マルチプロセッサシステム。
【請求項９】
請求項７において、前記アクセス要求に関する前記安全対策の処理は、対応するアクセス要求の発行元であるプロセッサエレメントに対する動作停止の指示である、マルチプロセッサシステム。
【請求項１０】
請求項７において、前記アクセス要求に関する前記安全対策の処理は、対応するアクセス要求の発行元であるプロセッサエレメントに対するリセット処理の指示である、マルチプロセッサシステム。
【請求項１１】
請求項８乃至１０の何れかにおいて、前記アクセス要求に関する前記安全対策の処理は、マルチプロセッサシステムの外部に対するエラー通知を更に含む、マルチプロセッサシステム。
【請求項１２】
請求項１において、前記フェールセーフ回路ブロックは、３個の所定の前記プロセッサエレメントが同一のデータ処理を並列的に行うことにより当該複数個のプロセッサエレメントの一つから第１のアクセス要求が発行されたときこれに一致する第２のアクセス要求及び第３のアクセス要求を判別することができた場合は、第１のアクセス要求、第２のアクセス要求及び第３のアクセス要求に応答する共通のアクセスを実行し、
３個の所定の前記プロセッサエレメントが同一のデータ処理を並列的に行うことにより当該複数個のプロセッサエレメントの一つから第１のアクセス要求が発行されたときこれに一致する第２のアクセス要求及び第３のアクセス要求を判別することができない場合は当該第１のアクセス要求の実行を保留し、第１時間が経過するまでに第２のアクセス要求及び第３のアクセス要求の双方を判別することができた場合は前記第１のアクセス要求の保留を解除して、一致に係るアクセス要求に応答する共通のアクセスを実行し、
前記第１時間が経過するまでに第２のアクセス要求又は第３のアクセス要求の何れか一方を判別することができたときは前記第１のアクセス要求の保留を解除して、一致に係るアクセス要求に応答する共通のアクセスを実行してアクセス結果をバッファに保持し、更に、第２時間が経過するまでに第２のアクセス要求又は第３のアクセス要求の他方を判別することができた場合は、前記バッファに保持されているアクセス結果を一致に係るアクセス要求に応答する結果として夫々のアクセス要求元に返す制御を行い、前記第２時間が経過するまでに第２のアクセス要求又は第３のアクセス要求の他方を判別することができない場合は、前記バッファに保持されているアクセス結果を一致に係るアクセス要求に応答する結果として夫々のアクセス要求元に返す制御を行い、且つ、不一致に係るアクセス要求に関し前記安全対策の処理を行い、
前記第１時間が経過するまでに第２のアクセス要求及び第３のアクセス要求の双方を判別することができない場合は前記第１のアクセス要求、前記第２のアクセス要求及び前記第３のアクセス要求に関して前記安全対策の処理を行う、マルチプロセッサシステム。
【請求項１３】
請求項１２において、前記アクセス要求に関する前記安全対策の処理は、対応するアクセス要求の破棄である、マルチプロセッサシステム。
【請求項１４】
請求項１２において、前記アクセス要求に関する前記安全対策の処理は、対応するアクセス要求の発行元であるプロセッサエレメントに対する動作停止の指示である、マルチプロセッサシステム。
【請求項１５】
請求項１２において、前記アクセス要求に関する前記安全対策の処理は、対応するアクセス要求の発行元であるプロセッサエレメントに対するリセット処理の指示である、マルチプロセッサシステム。
【請求項１６】
請求項１３乃至１５の何れかにおいて、前記アクセス要求に関する前記安全対策の処理は、マルチプロセッサシステムの外部に対するエラー通知を更に含む、マルチプロセッサシステム。
【請求項１７】
複数個のプロセッサエレメントと、
前記プロセッサエレメントによってアクセス可能にされるバススレーブモジュールと、
前記プロセッサエレメントとバススレーブモジュールとの間に配置されたバスインタフェースユニットと、を有し、
前記バスインタフェースユニットは、前記プロセッサエレメントからのバスアクセス要求に対し競合を調停するバスアクセス調停回路と、前記プロセッサエレメントの機能安全を実現するためのフェールセーフ回路ブロックとを有し、
前記フェールセーフ回路ブロックは、前記複数個のプロセッサエレメントの内からプログラマブルに指定された複数個のプロセッサエレメントを前記機能安全を実現する対象とし、
前記フェールセーフ回路ブロックは、前記プログラマブルに指定された複数個の前記プロセッサエレメントが同一のデータ処理を並列的に行うことにより当該複数のプロセッサエレメントから発行されたアクセス要求の不一致が確定することをもって安全対策の処理を行い、一致することをもって当該アクセス要求に応答するアクセス処理を開始する制御を行う、マルチプロセッサシステム。
【請求項１８】
請求項１７において、前記機能安全の実現対象とされるプロセッサエレメントをプログラマブルに指定するためのコントロールレジスタを有する、マルチプロセッサシステム。
【請求項１９】
請求項１８において、前記フェールセーフ回路ブロックは、前記コントロールレジスタに２個のプロセッサエレメントが指定され場合、同一のデータ処理を並列的に行う当該２個のプロセッサエレメントに対する機能安全を実現する処理としてデュアルロックステップ相当動作を行う、マルチプロセッサシステム。
【請求項２０】
請求項１８において、前記フェールセーフ回路ブロックは、前記コントロールレジスタに３個のプロセッサエレメントが指定された場合、同一のデータ処理を並列的に行う当該３個のプロセッサエレメントに対する機能安全を実現する処理として３値多数決相当動作を行う、マルチプロセッサシステム。
【請求項２１】
請求項１９において、前記フェールセーフ回路ブロックは、２個の所定の前記プロセッサエレメントが同一のデータ処理を並列的に行うことにより当該複数個のプロセッサエレメントの一つから第１のアクセス要求が発行されたときこれに一致する第２のアクセス要求を判別することができた場合は第１のアクセス要求と第２のアクセス要求に応答する共通のアクセスを実行し、
２個の所定の前記プロセッサエレメントが同一のデータ処理を並列的に行うことにより当該複数個のプロセッサエレメントの一つから第１のアクセス要求が発行されたときこれに一致する第２のアクセス要求を判別することができない場合は当該第１のアクセス要求の実行を保留し、所定時間が経過するまでに第２のアクセス要求を判別することができた場合は第１のアクセス要求の保留を解除して、第１のアクセス要求と第２のアクセス要求に応答する共通のアクセスを実行し、前記所定時間が経過するまでに第２のアクセス要求を判別することができない場合は前記第１のアクセス要求に関して前記安全対策の処理を行う、マルチプロセッサシステム。
【請求項２２】
請求項２０において、前記フェールセーフ回路ブロックは、３個の所定の前記プロセッサエレメントが同一のデータ処理を並列的に行うことにより当該複数個のプロセッサエレメントの一つから第１のアクセス要求が発行されたときこれに一致する第２のアクセス要求及び第３のアクセス要求を判別することができた場合は、第１のアクセス要求、第２のアクセス要求及び第３のアクセス要求に応答する共通のアクセスを実行し、
３個の所定の前記プロセッサエレメントが同一のデータ処理を並列的に行うことにより当該複数個のプロセッサエレメントの一つから第１のアクセス要求が発行されたときこれに一致する第２のアクセス要求及び第３のアクセス要求を判別することができない場合は当該第１のアクセス要求の実行を保留し、所定時間が経過するまでに第２のアクセス要求及び第３のアクセス要求の双方を判別することができた場合は前記第１のアクセス要求の保留を解除して、一致に係るアクセス要求に応答する共通のアクセスを実行し、
前記所定時間が経過するまでに第２のアクセス要求又は第３のアクセス要求の何れか一方を判別することができたときは前記第１のアクセス要求の保留を解除して、一致に係るアクセス要求に応答する共通のアクセスを実行し、且つ、判別することができなかった前記第２のアクセス要求又は前記第３のアクセス要求の他方のアクセス要求に関して前記安全対策の処理を行い、
前記所定時間が経過するまでに第２のアクセス要求及び第３のアクセス要求の双方を判別することができない場合は前記第１のアクセス要求、前記第２のアクセス要求及び前記第３のアクセス要求に関して前記安全対策の処理を行う、マルチプロセッサシステム。
【請求項２３】
請求項２０において、前記フェールセーフ回路ブロックは、３個の所定の前記プロセッサエレメントが同一のデータ処理を並列的に行うことにより当該複数個のプロセッサエレメントの一つから第１のアクセス要求が発行されたときこれに一致する第２のアクセス要求及び第３のアクセス要求を判別することができた場合は、第１のアクセス要求、第２のアクセス要求及び第３のアクセス要求に応答する共通のアクセスを実行し、
３個の所定の前記プロセッサエレメントが同一のデータ処理を並列的に行うことにより当該複数個のプロセッサエレメントの一つから第１のアクセス要求が発行されたときこれに一致する第２のアクセス要求及び第３のアクセス要求を判別することができない場合は当該第１のアクセス要求の実行を保留し、第１時間が経過するまでに第２のアクセス要求及び第３のアクセス要求の双方を判別することができた場合は前記第１のアクセス要求の保留を解除して、一致に係るアクセス要求に応答する共通のアクセスを実行し、
前記第１時間が経過するまでに第２のアクセス要求又は第３のアクセス要求の何れか一方を判別することができたときは前記第１のアクセス要求の保留を解除して、一致に係るアクセス要求に応答する共通のアクセスを実行してアクセス結果をバッファに保持し、更に、第２時間が経過するまでに第２のアクセス要求又は第３のアクセス要求の他方を判別することができた場合は、前記バッファに保持されているアクセス結果を一致に係るアクセス要求に応答する結果として夫々のアクセス要求元に返す制御を行い、前記第２時間が経過するまでに第２のアクセス要求又は第３のアクセス要求の他方を判別することができない場合は、前記バッファに保持されているアクセス結果を一致に係るアクセス要求に応答する結果として夫々のアクセス要求元に返す制御を行い、且つ、不一致に係るアクセス要求に関し前記安全対策の処理を行い、
前記第１時間が経過するまでに第２のアクセス要求及び第３のアクセス要求の双方を判別することができない場合は前記第１のアクセス要求、前記第２のアクセス要求及び前記第３のアクセス要求に関して前記安全対策の処理を行う、マルチプロセッサシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は複数のプロセッサエレメントを有するマルチプロセッサシステムに関し、例えば機能安全が必要であって動作継続性が考慮される車載用のＥＣＵ（electronic control unit）若しくはＥＣＵ用のマイクロコンピュータなどに適用して有効な技術に関する。
【背景技術】
【０００２】
近年の自動車の電機化に伴い、機能安全性、動作継続性に対する要求が高まっている。即ち、制御装置に異常が発生する前に通知を行い、事故を未然に防ぐことや、異常が発生しても動作を継続し、修理工場までの自動車の移動を可能にするといった、機能安全（フェールセーフ）に対する要求が高まっている。フェールセーフへの対応技術として従来からＤＬＳ（デュアルロックステップ：Dual Lock Step）や、ＴＭＲ（３値多数決：ternary majority rule）が提供されている。ＤＬＳは例えば同一データ処理を行う２個のプロセッサエレメントを密に結合して動作させ、動作結果を逐一比較し、比較結果が同一であることを条件にデータ処理を継続し、不一致を以って異常と判別することにより代替装置への切り替え等を行う。ＤＬＳについて記載された文献の例として特許文献１がある。
【０００３】
ＴＭＲは３個のプロセッサエレメントを密に結合し、夫々のプロセッサエレメントからの出力を逐一比較し、不一致に対して多数決論を行って一つのプロセッサエレメントに異常があっても救済可能とする技術である。ＴＭＲについて記載された文献の例として特許文献２がある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１３−２４２７４６号公報
【特許文献２】特開平８−２７８８９８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明者は車載用マイクロコンピュータ等の機能安全について検討した。これによれば、複数個のプロセッサエレメントを密に結合してＴＭＲやＤＬＳを実現する従来の場合は、フェールセーフの態様が固定化される。したがって、処理に応じて所要のプロセッサエレメント間でのみフェールセーフ機能を実現したり、所要のデータ処理に関してだけフェールセーフを行うといったプログラマブルなフェールセーフ機能を実現することは難しい。また、一のプロセッサエレメントが故障した場合に、異なったプロセッサエレメントを用いてＴＭＲやＤＬＳを行うプロセッサエレメントのグループを再構成することもできない。ＴＭＲやＤＬＳのための専用ハードウェアを予め全て実装しようとすれば回路規模が増大して冗長に過ぎ、高コストになる。
【０００６】
また、複数個のプロセッサエレメントの実装において、高性能の実現と機能安全の実現とを両立させようとすると、プロセッサエレメントに互いに関係を持たせて密に結合しなければならないという制約は、プロセッサエレメントを最高速で動作させることを難しくする。従来のプロセッサエレメントを密に結合することによる機能安全方式ではプロセッサエレメントの速度制約が大きくなる。
【０００７】
上記並びにその他の課題と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００８】
本願において開示される実施の形態のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【０００９】
すなわち、複数個のプロセッサエレメントに同じデータ処理を実行させてプロセッサエレメントの機能安全を実現する場合に、当該複数のプロセッサエレメントから発行されたアクセス要求の不一致が確定することをもって安全対策の処理を行い、一致することをもって当該アクセス要求に応答するアクセス処理を開始する制御を行うバスインタフェースユニットを採用する。
【発明の効果】
【００１０】
本願において開示される実施の形態のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。
【００１１】
すなわち、プロセッサエレメントを密に結合することなくマルチプロセッサシステムの機能安全を実現することができる。
【図面の簡単な説明】
【００１２】
【図１】図１はマルチプロセッサシステムの第１の例を示すブロック図である。
【図２】図２は２個のプロセッサエレメントを指定してＤＬＳ相当動作を行う場合の動作フローチャートである。
【図３】図３は図２に続く動作フローチャートである。
【図４】図４は図３に続く動作フローチャートである。
【図５】図５は３個のプロセッサエレメントを指定してＴＭＲ相当動作を行う場合の動作フローチャートである。
【図６】図６は図５に続く動作フローチャートである。
【図７】図７は図６に続く動作フローチャートである。
【図８】図８はマルチプロセッサシステムの第２の例を示すブロック図である。
【図９】図９はマルチプロセッサシステムＭＰＳ＿２のフェールセーフ制御動作を示す動作フローチャートである。
【図１０】図１０は図９に続く動作フローチャートである。
【図１１】図１１は図１０に続く動作フローチャートである。
【図１２】図１２は図１１に続く動作フローチャートである。
【図１３】図１３は図１２に続く動作フローチャートである。
【図１４】図１４は図１及び図８で説明したマルチプロセッサシステムを集約した概略説明図である。
【図１５】図１５はフェールセーフ機能をバススレーブモジュール側に拡張した応用例を示す概略説明図である。
【図１６】図１６は実施の形態で説明したマルチプロセッサシステムのフェールセーフ機能を原理的に示した説明図である。
【図１７】図１７は従来のフェールセーフ機能を原理的に示す説明図である。
【発明を実施するための形態】
【００１３】
１．実施の形態の概要
先ず、本願において開示される実施の形態について概要を説明する。実施の形態についての概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
【００１４】
〔１〕＜バスインタフェースユニットを用いたプロセッサエレメントのフェールセーフ機能＞
マルチプロセッサシステム（ＭＰＳ＿１、ＭＰＳ＿２、ＭＰＳ＿３）は、複数個のプロセッサエレメント（１，２，３）と、前記プロセッサエレメントによってアクセス可能にされるバススレーブモジュール（４）と、前記プロセッサエレメントとバススレーブモジュールとの間に配置されたバスインタフェースユニット（５，５Ａ，５Ｂ）と、を有する。前記バスインタフェースユニットは、前記プロセッサエレメントからのバスアクセス要求に対し競合を調停するバスアクセス調停回路（１５Ａ）と、前記プロセッサエレメントの機能安全を実現するためのフェールセーフ回路ブロック（７０，７０Ａ）とを有する。前記フェールセーフ回路ブロックは、複数個の所定の前記プロセッサエレメントが同一のデータ処理を並列的に行うことにより当該複数のプロセッサエレメントから発行されたアクセス要求の不一致が確定することをもって安全対策の処理を行い、一致することをもって当該アクセス要求に応答するアクセス処理を開始する制御を行う。
【００１５】
これによれば、プロセッサエレメントを密に結合することなくマルチプロセッサシステムの機能安全を実現することができる。システムの機能安全と言う点でプロセッサエレメント側ではハードウェア的な対策が不要であり、該当プロセッサエレメント単位でフェールセーフ機能によるチェックの有無、チェック対象とするプロセッサエレメントの組合せを任意に設定することも可能になる。更に、フェールセーフ機能によってプロセッサエレメントの動作速度が制約を受けることもない。このように、フェールセーフの機能選択の自由度が増し、マルチプロセッサシステムにフェールセーフ機能を実装するためのコストを小さくすることができる。
【００１６】
〔２〕＜ＤＬＳ相当動作におけるフェールセーフ制御＞
項１において、前記フェールセーフ回路ブロックは、２個の所定の前記プロセッサエレメントが同一のデータ処理を並列的に行うことにより当該複数個のプロセッサエレメントの一つから第１のアクセス要求が発行されたときこれに一致する第２のアクセス要求を判別することができた場合は第１のアクセス要求と第２のアクセス要求に応答する共通のアクセスを実行する（Ｂ−７，Ｃ−３８）。２個の所定の前記プロセッサエレメントが同一のデータ処理を並列的に行うことにより当該複数個のプロセッサエレメントの一つから第１のアクセス要求が発行されたときこれに一致する第２のアクセス要求を判別することができない場合は当該第１のアクセス要求の実行を保留し（Ｄ−９，Ｂ−３８）、所定時間が経過するまでに第２のアクセス要求を判別することができた場合は第１のアクセス要求の保留を解除して、第１のアクセス要求と第２のアクセス要求に応答する共通のアクセスを実行し（Ｂ−７，Ｃ−３８）、前記所定時間が経過するまでに第２のアクセス要求を判別することができない場合は前記第１のアクセス要求に関して前記安全対策の処理を行う（Ｄ−１０，Ｂ−３９）。図２〜図４、図９〜図１０を参照。
【００１７】
これによれば、ＤＬＳ相当動作におけるフェールセーフ制御を実現することができる。
【００１８】
〔３〕＜アクセス要求の破棄＞
項２において、前記第１のアクセス要求に関する前記安全対策の処理は、前記第１のアクセス要求の破棄である。
【００１９】
これによれば、異常なバスアクセスだけ無効にすれば異常の波及を抑制することができる場合を想定して、対処することができる。
【００２０】
〔４〕＜プロセッサエレメントに対する動作停止の指示＞
項２において、前記第１のアクセス要求に関する前記安全対策の処理は、前記第１のアクセス要求の発行元であるプロセッサエレメントに対する動作停止の指示である。
【００２１】
これによれば、異常なバスアクセス要求の発行元の動作継続を阻止しなければならない場合を想定して、対処することができる。
【００２２】
〔５〕＜プロセッサエレメントに対するリセット処理の指示＞
項２において、前記第１のアクセス要求に関する前記安全対策の処理は、前記第１のアクセス要求の発行元であるプロセッサエレメントに対するリセット処理の指示である。
【００２３】
これによれば、異常なバスアクセス要求の発行元をリセットしてその動作を継続しなければならない場合を想定して、対処することができる。
【００２４】
〔６〕＜マルチプロセッサシステムの外部に対するエラー通知＞
項３乃至５の何れかにおいて、前記第１のアクセス要求に関する前記安全対策の処理は、マルチプロセッサシステムの外部に対するエラー通知を更に含む。
【００２５】
これによれば、プロセッサエレメントの異常がマルチプロセッサシステムの外部に波及する場合を想定して、対処することができる。
【００２６】
〔７〕＜ＴＭＲ相当動作におけるフェールセーフ制御の第１形態＞
項１において、前記フェールセーフ回路ブロックは、３個の所定の前記プロセッサエレメントが同一のデータ処理を並列的に行うことにより当該複数個のプロセッサエレメントの一つから第１のアクセス要求が発行されたときこれに一致する第２のアクセス要求及び第３のアクセス要求を判別することができた場合は、第１のアクセス要求、第２のアクセス要求及び第３のアクセス要求に応答する共通のアクセスを実行する（Ｂ−１７）。３個の所定の前記プロセッサエレメントが同一のデータ処理を並列的に行うことにより当該複数個のプロセッサエレメントの一つから第１のアクセス要求が発行されたときこれに一致する第２のアクセス要求及び第３のアクセス要求を判別することができない場合は当該第１のアクセス要求の実行を保留し（Ｂ−１６）、所定時間が経過するまでに第２のアクセス要求及び第３のアクセス要求の双方を判別することができた場合は前記第１のアクセス要求の保留を解除して、一致に係るアクセス要求に応答する共通のアクセスを実行する（Ｂ−１７）。前記所定時間が経過するまでに第２のアクセス要求又は第３のアクセス要求の何れか一方を判別することができたときは前記第１のアクセス要求の保留を解除して、一致に係るアクセス要求に応答する共通のアクセスを実行し（Ｂ−１７）、且つ、判別することができなかった前記第２のアクセス要求又は前記第３のアクセス要求の他方のアクセス要求に関して前記安全対策の処理を行う（Ｄ−１９，Ｅ−２０）。前記所定時間が経過するまでに第２のアクセス要求及び第３のアクセス要求の双方を判別することができない場合は前記第１のアクセス要求、前記第２のアクセス要求及び前記第３のアクセス要求に関して前記安全対策の処理を行う（Ｃ−１８）。図５〜図７を参照。
【００２７】
これによれば、ＴＭＲ相当動作におけるフェールセーフ制御を実現することができる。
【００２８】
〔８〕＜アクセス要求の破棄＞
項７において、前記アクセス要求に関する前記安全対策の処理は、対応するアクセス要求の破棄である
これによれば、異常なバスアクセスだけ無効にすれば異常の波及を抑制することができる場合を想定して、対処することができる。
【００２９】
〔９〕＜プロセッサエレメントに対する動作停止の指示＞
項７において、前記アクセス要求に関する前記安全対策の処理は、対応するアクセス要求の発行元であるプロセッサエレメントに対する動作停止の指示である。
【００３０】
これによれば、異常なバスアクセス要求の発行元の動作継続を阻止しなければならない場合を想定して、対処することができる。
【００３１】
〔１０〕＜プロセッサエレメントに対するリセット処理の指示＞
項７において、前記アクセス要求に関する前記安全対策の処理は、対応するアクセス要求の発行元であるプロセッサエレメントに対するリセット処理の指示である。
【００３２】
これによれば、異常なバスアクセス要求の発行元をリセットしてその動作を継続しなければならない場合を想定して、対処することができる。
【００３３】
〔１１〕＜マルチプロセッサシステムの外部に対するエラー通知＞
項８乃至１０の何れかにおいて、前記アクセス要求に関する前記安全対策の処理は、マルチプロセッサシステムの外部に対するエラー通知を更に含む。
【００３４】
これによれば、プロセッサエレメントの異常がマルチプロセッサシステムの外部に波及する場合を想定して、対処することができる。
【００３５】
〔１２〕＜ＴＭＲ相当動作におけるフェールセーフ制御の第２形態＞
項１において、前記フェールセーフ回路ブロックは、３個の所定の前記プロセッサエレメントが同一のデータ処理を並列的に行うことにより当該複数個のプロセッサエレメントの一つから第１のアクセス要求が発行されたときこれに一致する第２のアクセス要求及び第３のアクセス要求を判別することができた場合は、第１のアクセス要求、第２のアクセス要求及び第３のアクセス要求に応答する共通のアクセスを実行する（Ｃ−３８）。３個の所定の前記プロセッサエレメントが同一のデータ処理を並列的に行うことにより当該複数個のプロセッサエレメントの一つから第１のアクセス要求が発行されたときこれに一致する第２のアクセス要求及び第３のアクセス要求を判別することができない場合は当該第１のアクセス要求の実行を保留し（Ｂ−３８）、第１時間（Ｂ−３７）が経過するまでに第２のアクセス要求及び第３のアクセス要求の双方を判別することができた場合は前記第１のアクセス要求の保留を解除して、一致に係るアクセス要求に応答する共通のアクセスを実行する（Ｃ−３８）。前記第１時間が経過するまでに第２のアクセス要求又は第３のアクセス要求の何れか一方を判別することができたときは前記第１のアクセス要求の保留を解除して、一致に係るアクセス要求に応答する共通のアクセスを実行してアクセス結果をバッファに保持し（Ｄ−３９，Ｄ−４１）、更に、第２時間（Ｄ−４３）が経過するまでに第２のアクセス要求又は第３のアクセス要求の他方を判別することができた場合は、前記バッファに保持されているアクセス結果を一致に係るアクセス要求に応答する結果として夫々のアクセス要求元に返す制御を行い（Ｆ−４４）、前記第２時間が経過するまでに第２のアクセス要求又は第３のアクセス要求の他方を判別することができない場合は、前記バッファに保持されているアクセス結果を一致に係るアクセス要求に応答する結果として夫々のアクセス要求元に返す制御を行い（Ｄ−４８）、且つ、不一致に係るアクセス要求に関し前記安全対策の処理を行う（Ｄ−４６，Ｄ４７）。前記第１時間が経過するまでに第２のアクセス要求及び第３のアクセス要求の双方を判別することができない場合は前記第１のアクセス要求、前記第２のアクセス要求及び前記第３のアクセス要求に関して前記安全対策の処理を行う（Ｂ−３９）。図９〜図１３を参照。
【００３６】
これによれば、ＴＭＲ相当動作におけるフェールセーフ制御を実現することができる。特に、３個の内の２個のプロセッサエレメントからのアクセス要求が一致した時点で先行アクセス処理を行って、残り１個のアクセス要求の一致／不一致に応じて処理を確定させることができる。
【００３７】
〔１３〕＜アクセス要求の破棄＞
項１２において、前記アクセス要求に関する前記安全対策の処理は、対応するアクセス要求の破棄である。
【００３８】
これによれば、異常なバスアクセスだけ無効にすれば異常の波及を抑制することができる場合を想定して、対処することができる。
【００３９】
〔１４〕＜プロセッサエレメントに対する動作停止の指示＞
項１２において、前記アクセス要求に関する前記安全対策の処理は、対応するアクセス要求の発行元であるプロセッサエレメントに対する動作停止の指示である。
【００４０】
これによれば、異常なバスアクセス要求の発行元の動作継続を阻止しなければならない場合を想定して、対処することができる。
【００４１】
〔１５〕＜プロセッサエレメントに対するリセット処理の指示＞
項１２において、前記アクセス要求に関する前記安全対策の処理は、対応するアクセス要求の発行元であるプロセッサエレメントに対するリセット処理の指示である。
【００４２】
これによれば、異常なバスアクセス要求の発行元をリセットしてその動作を継続しなければならない場合を想定して、対処することができる。
【００４３】
〔１６〕＜マルチプロセッサシステムの外部に対するエラー通知＞
項１３乃至１５の何れかにおいて、前記アクセス要求に関する前記安全対策の処理は、マルチプロセッサシステムの外部に対するエラー通知を更に含む。
【００４４】
これによれば、プロセッサエレメントの異常がマルチプロセッサシステムの外部に波及する場合を想定して、対処することができる。
【００４５】
〔１７〕＜可変可能に指定されたプロセッサエレメントに対するバスインタフェースユニットを用いたフェールセーフ機能＞
マルチプロセッサシステム（ＭＰＳ＿１，ＭＰＳ＿２，ＭＰＳ＿３）は、複数個のプロセッサエレメント（１〜３）と、前記プロセッサエレメントによってアクセス可能にされるバススレーブモジュール（４）と、前記プロセッサエレメントとバススレーブモジュールとの間に配置されたバスインタフェースユニット（５，５Ａ）と、を有する。前記バスインタフェースユニットは、前記プロセッサエレメントからのバスアクセス要求に対し競合を調停するバスアクセス調停回路（１５）と、前記プロセッサエレメントの機能安全を実現するためのフェールセーフ回路ブロック（７０，７０Ａ）とを有する。前記フェールセーフ回路ブロックは、前記複数個のプロセッサエレメントの内からプログラマブルに指定された複数個のプロセッサエレメントを前記機能安全を実現する対象とする。前記フェールセーフ回路ブロックは、前記プログラマブルに指定された複数個の前記プロセッサエレメントが同一のデータ処理を並列的に行うことにより当該複数のプロセッサエレメントから発行されたアクセス要求の不一致が確定することをもって安全対策の処理を行い、一致することをもって当該アクセス要求に応答するアクセス処理を開始する制御を行う。
【００４６】
これによれば、プロセッサエレメントを密に結合することなくマルチプロセッサシステムの機能安全を実現することができる。システムの機能安全と言う点でプロセッサエレメント側ではハードウェア的な対策が不要であり、該当プロセッサエレメント単位でフェールセーフ機能によるチェックの有無、チェック対象とするプロセッサエレメントの組合せを任意に設定することも可能になる。更に、フェールセーフ機能によってプロセッサエレメントの動作速度が制約を受けることもない。フェールセーフの対象とするプロセッサエレメントをプログラマブルに指定することができるので、その指定の仕方によってＴＭＲ又はＤＬＳなどのフェールセーフの態様、特定のデータ処理に対するフェールセーフ機能の動的な実施、複数個のフェールセーフ対象とするプロセッサエレメントの異常発生後における再構成などのような、フェールセーフの機能選択の自由度が大幅に増す。これによりマルチプロセッサシステムに対するフェールセーフ機能の実装コストを小さくすることができる。
【００４７】
〔１８〕＜プロセッサエレメントをプログラマブルに指定するためのコントロールレジスタ＞
項１７において、前記機能安全の実現対象とされるプロセッサエレメントをプログラマブルに指定するためのコントロールレジスタ（４４）を有する。
【００４８】
これにより、特定のプロセッサエレメントにより或いはマルチプロセッサシステムの外部から機能安全実現対象とするプロセッサエレメントを容易に指定することが可能になる。
【００４９】
〔１９〕＜指定した２個のプロセッサエレメントに対するＤＬＳ相当動作＞
項１８において、前記フェールセーフ回路ブロックは、前記コントロールレジスタに２個のプロセッサエレメントが指定され場合、同一のデータ処理を並列的に行う当該２個のプロセッサエレメントに対する機能安全を実現する処理としてデュアルロックステップ相当動作を行う。
【００５０】
これによれば、プログラマブルに指定した２個のプロセッサエレメントに対してＤＬＳ相当動作を容易に実現することができる。
【００５１】
〔２０〕＜指定した３個のプロセッサエレメントに対するＴＭＲ相当動作＞
項１８において、前記フェールセーフ回路ブロックは、前記コントロールレジスタに３個のプロセッサエレメントが指定された場合、同一のデータ処理を並列的に行う当該３個のプロセッサエレメントに対する機能安全を実現する処理として３値多数決相当動作を行う。
【００５２】
これによれば、プログラマブルに指定した３個のプロセッサエレメントに対してＴＭＲ相当動作を容易に実現することができる。
【００５３】
〔２１〕＜ＤＬＳ相当動作におけるフェールセーフ制御＞
項１９において、前記フェールセーフ回路ブロックは、２個の所定の前記プロセッサエレメントが同一のデータ処理を並列的に行うことにより当該複数個のプロセッサエレメントの一つから第１のアクセス要求が発行されたときこれに一致する第２のアクセス要求を判別することができた場合は第１のアクセス要求と第２のアクセス要求に応答する共通のアクセスを実行する。２個の所定の前記プロセッサエレメントが同一のデータ処理を並列的に行うことにより当該複数個のプロセッサエレメントの一つから第１のアクセス要求が発行されたときこれに一致する第２のアクセス要求を判別することができない場合は当該第１のアクセス要求の実行を保留し、所定時間が経過するまでに第２のアクセス要求を判別することができた場合は第１のアクセス要求の保留を解除して、第１のアクセス要求と第２のアクセス要求に応答する共通のアクセスを実行し、前記所定時間が経過するまでに第２のアクセス要求を判別することができない場合は前記第１のアクセス要求に関して前記安全対策の処理を行う（図２〜図４参照、図９〜図１０参照）。
【００５４】
これによれば、ＤＬＳ相当動作におけるフェールセーフ制御を実現することができる。
【００５５】
〔２２〕＜ＴＭＲ相当動作におけるフェールセーフ制御の第１形態＞
項２０において、前記フェールセーフ回路ブロックは、３個の所定の前記プロセッサエレメントが同一のデータ処理を並列的に行うことにより当該複数個のプロセッサエレメントの一つから第１のアクセス要求が発行されたときこれに一致する第２のアクセス要求及び第３のアクセス要求を判別することができた場合は、第１のアクセス要求、第２のアクセス要求及び第３のアクセス要求に応答する共通のアクセスを実行する。３個の所定の前記プロセッサエレメントが同一のデータ処理を並列的に行うことにより当該複数個のプロセッサエレメントの一つから第１のアクセス要求が発行されたときこれに一致する第２のアクセス要求及び第３のアクセス要求を判別することができない場合は当該第１のアクセス要求の実行を保留し、所定時間が経過するまでに第２のアクセス要求及び第３のアクセス要求の双方を判別することができた場合は前記第１のアクセス要求の保留を解除して、一致に係るアクセス要求に応答する共通のアクセスを実行する。前記所定時間が経過するまでに第２のアクセス要求又は第３のアクセス要求の何れか一方を判別することができたときは前記第１のアクセス要求の保留を解除して、一致に係るアクセス要求に応答する共通のアクセスを実行し、且つ、判別することができなかった前記第２のアクセス要求又は前記第３のアクセス要求の他方のアクセス要求に関して前記安全対策の処理を行う。前記所定時間が経過するまでに第２のアクセス要求及び第３のアクセス要求の双方を判別することができない場合は前記第１のアクセス要求、前記第２のアクセス要求及び前記第３のアクセス要求に関して前記安全対策の処理を行う（図５〜図７参照）。
【００５６】
これによれば、ＴＭＲ相当動作におけるフェールセーフ制御を実現することができる。
【００５７】
〔２３〕＜ＴＭＲ相当動作におけるフェールセーフ制御の第２形態＞
項２０において、前記フェールセーフ回路ブロックは、３個の所定の前記プロセッサエレメントが同一のデータ処理を並列的に行うことにより当該複数個のプロセッサエレメントの一つから第１のアクセス要求が発行されたときこれに一致する第２のアクセス要求及び第３のアクセス要求を判別することができた場合は、第１のアクセス要求、第２のアクセス要求及び第３のアクセス要求に応答する共通のアクセスを実行する。３個の所定の前記プロセッサエレメントが同一のデータ処理を並列的に行うことにより当該複数個のプロセッサエレメントの一つから第１のアクセス要求が発行されたときこれに一致する第２のアクセス要求及び第３のアクセス要求を判別することができない場合は当該第１のアクセス要求の実行を保留し、第１時間が経過するまでに第２のアクセス要求及び第３のアクセス要求の双方を判別することができた場合は前記第１のアクセス要求の保留を解除して、一致に係るアクセス要求に応答する共通のアクセスを実行する。前記第１時間が経過するまでに第２のアクセス要求又は第３のアクセス要求の何れか一方を判別することができたときは前記第１のアクセス要求の保留を解除して、一致に係るアクセス要求に応答する共通のアクセスを実行してアクセス結果をバッファに保持し、更に、第２時間が経過するまでに第２のアクセス要求又は第３のアクセス要求の他方を判別することができた場合は、前記バッファに保持されているアクセス結果を一致に係るアクセス要求に応答する結果として夫々のアクセス要求元に返す制御を行い、前記第２時間が経過するまでに第２のアクセス要求又は第３のアクセス要求の他方を判別することができない場合は、前記バッファに保持されているアクセス結果を一致に係るアクセス要求に応答する結果として夫々のアクセス要求元に返す制御を行い、且つ、不一致に係るアクセス要求に関し前記安全対策の処理を行う。前記第１時間が経過するまでに第２のアクセス要求及び第３のアクセス要求の双方を判別することができない場合は前記第１のアクセス要求、前記第２のアクセス要求及び前記第３のアクセス要求に関して前記安全対策の処理を行う（図９〜図１３参照）。
【００５８】
これによれば、ＴＭＲ相当動作におけるフェールセーフ制御を実現することができる。特に、３個の内の２個のプロセッサエレメントからのアクセス要求が一致した時点で先行アクセス処理を行って、残り１個のアクセス要求の一致／不一致に応じて処理を確定させることができる。
【００５９】
２．実施の形態の詳細
実施の形態について更に詳述する。
【００６０】
《マルチプロセッサシステムＭＰＳ＿１》
図１にはマルチプロセッサシステムの一例が示される。図１のマルチプロセッサシステムＭＰＳ＿１は、代表的に示されたプロセッサエレメント（ＰＥ)１，２，３、単数又は複数のバススレーブモジュール（ＢＳＬＶ）４、及びバスインタフェースユニット５を有する。マルチプロセッサシステムＭＰＳ＿１は、シングルチップで構成されてもよいし、マルチチップで構成されても良い。シングルチップで構成される場合には、特に制限されないが、単結晶シリコンなどの１個の半導体基板にＣＭＯＳ集積回路製造技術などを用いて形成することができる。
【００６１】
プロセッサエレメント１〜３は、プログラム処理を行い且つバスマスタとされる回路モジュールであり、例えばＣＰＵコア、プロセッサコア、又はアクセラレータなどと称され、プログラムを実行して所要のデータ処理を行うことができる回路である。
【００６２】
バススレーブモジュール４はプロセッサエレメント１〜３によってアクセス可能な単数又は複数の回路であり、例えば、ＲＡＭや電気的に書き換え可能な不揮発性メモリなどのメモリデバイス、更には周辺回路モジュールに内蔵されたレジスタなどの記憶装置を意味する。
【００６３】
バスインタフェースユニット５はバスインタフェース制御機能とフェールセーフ制御機能を有する。バスインタフェース制御機能は、例えばプロセッサエレメント１〜３からのアクセス要求の調停と、アクセス要求元とアクセス要求先とのルーティングを制御する機能である。このバスインタフェース制御機能には例えばスプリット・トランザクション・バスインタフェース機能を採用すればよい。フェールセーフ制御機能は、プロセッサエレメント１〜３に対するＤＬＳ（デュアルロックステップ：Dual Lock Step）相当動作、ＴＭＲ（３値多数決：ternary majority rule）相当動作によるフェールセーフを実現するための制御機能である。
【００６４】
図１において、バスインタフェースユニット５は、プロセッサエレメント１〜３が接続されるマスタポート１１〜１３、バススレーブモジュール４が接続されるスレーブポート１４、及びバスアクセス調停回路１５を有する。
【００６５】
マスタポート１１〜１３の夫々は、アクセス要求フラグ（ＲＦＬＧ）２０、バスアクセス要求キュー（ＱＲＥＱ）２１、及びアクセス結果キュー（ＱＲＳＬ）２２を有する。アクセス要求フラグ２０は、対応するマスタポートからのアクセス要求があるとセットされ、要求されたアクセスの完了をもってクリアされるフラグレジスタである。バスアクセス要求キュー２１は、対応するマスタポートからのアクセス対象アドレス、リード／ライトのアクセス種別、及びライトアクセス時のライトデータなどのバスアクセス情報をキューイングする所謂ＦＩＦＯ（First-In First-Out）バッファである。アクセス結果キュー２２はバスアクセス要求キュー２１にキューイングされたバスアクセス要求に対応して得られたアクセス結果をキューイングするＦＩＦＯバッファである。アクセス結果は、アクセスの正常終了／異常終了を示すアクセス終了情報、及びリードアクセスの場合のリードデータなどである。
【００６６】
バスアクセス調停回路１５は、夫々のマスタポート１１〜１３のアクセス要求フラグ（ＡＲＦＬＧ）２０が保持するバスアクセス要求及びバスアクセス要求キュー２１が保持するバスアクセス情報をバス３０，３１を介して受け取って、アクセス競合の有無を判別する。競合がなければバスアクセス調停回路１５はそのアクセス要求に答えるバスアクセス情報をスレーブポート１４に与えて、バススレーブモジュール４からのアクセス完了を待つ。ライトアクセスであればアクセス終了情報を受け取り、読出しであればアクセス終了情報とリードデータを受け取る。受け取った情報はバス３２を介してバスアクセス要求元のプロセッサエレメントに返され、アクセス結果キュー２２に格納される。競合が有る場合には、バスアクセス調停回路１５は優先度などに基づいてアクセス要求を調停し、一つのアクセス要求に対して上記同様のアクセス制御処理を行う。バスアクセス要求には、特に制限されないが、アクセス要求元を特定するＩＤ情報を有し、バスアクセス情報にはアクセス要求元を特定するＩＤ情報と共にアクセス先を特定するアドレス情報が含まれる。アクセス終了情報やリードデータはアクセス要求元のＩＤ情報を用いた対応するマスタポートに与えられる。
【００６７】
上記バスアクセス調停回路１５による調停及びルーティングのアクセス制御処理はアクセス要求に対して例えば実行／保留／破棄の３態様で制御される。この制御によってＤＬＳ相当動作及びＴＭＲ相当動作などによるフェールセーフ機能を可能にする。以下、その制御機能について詳述する。
【００６８】
バスインタフェースユニット５でフェールセーフ機能を実現するためのフェールセーフ回路ブロック７０として、例えば、バスアクセス情報記憶回路４０、バスアクセス情報比較器４１、バスアクセス判定／制御回路４２、時間計測装置４３、コントロールレジスタ４４、及びステータスフラグレジスタ４５を有する。
【００６９】
バスアクセス情報記憶回路４０はマスタポート１１〜１３からバス３１に出力されるバスアクセス情報を保持し、マスタポート１１，１２，１３の夫々に個別化された保持領域（第１領域、第２領域、第３領域）を有する。
【００７０】
バスアクセス情報比較器４１はマスタポート１１，１２，１３の夫々に個別化された領域相互間の値を比較し、第１領域の情報と第２領域の情報が一致するか否か、第１領域の情報と第３領域の情報が一致するか否か、第２領域の情報と第３領域の情報が一致するか否かを判別する。
【００７１】
バスアクセス判定／制御回路４２は、バス３０を介してバスアクセス要求があるか否かを判別する。どのプロセッサエレメントからのバスアクセス要求を判別すべきかについてはコントロールレジスタ４４の制御設定情報によってプログラマブルに設定可能にされる。判別すべきバスアクセス要求に対してバスアクセス判定／制御回路４２Ａは、バスアクセス情報比較器４１による比較結果５１を入力して複数のバスアクセス情報の一致／不一致を判別し、その判別結果に基づいて、アクセス要求に応答するバスアクセス調停回路１５によるアクセス制御処理の実行／保留／破棄を制御信号５０で制御する。更に、バスアクセス判定／制御回路４２は、アクセス制御処理の破棄を行ったとき当該アクセス要求の要求元に対応するプロセッサエレメントや、それとのアクセス要求の比較対象にされる他のプロセッサエレメントに対する割込み要求やリセット要求を指示する信号５３を出力する。信号５３による要求が割込み要求又はリセット要求の何れであるのか、更には、その要求先はどのプロセッサエレメントか、などについては、コントロールレジスタ４４の設定内容に従って決定される。比較結果５１の参照タイミングは例えば時間計測装置４３のタイマ動作によるタイムアウトのタイミングを用いる。コントロールレジスタ４４の設定は、何れかのプロセッサエレメントで行ってもよいし、又は別のロジックで行うようにしてもよい。時間計測装置４３に対するタイマ時間の設定はコントロールロールレジスタ４４に対する設定で行われる。設定されたタイマ時間を用いたタイマ動作の開始と停止はバスアクセス判定／制御回路４２が行う。ステータスフラグレジスタ４５はプロセッサエレメント１〜３の状態を保持する。例えば、動作停止中、リセット処理中、などの状態をプロセッサエレメントのＩＤと共に保持する。
【００７２】
バスアクセス判定／制御回路４２によるフェールセーフ制御機能は、特に制限されないが、ＤＬＳ相当動作と、ＴＭＲ相当動作に大別される。何れの動作制御を行うかは、特に制限されないが、コントロールレジスタ４４のモードビットの設定によって決定される。ＤＬＳ相当動作を指定する場合には、例えばコントロールレジスタ４４にアクセス要求の比較対象とされるプロセッサエレメントを２個指定すればよい。ＴＭＲ相当動作を指定する場合にはコントロールレジスタ４４にアクセス要求の比較対象とされるプロセッサエレメントを３個指定すればよい。何れの動作制御を行うかの指定は上記に限らず、アクセス要求の比較対象とされるプロセッサエレメントの数が２個の場合にはＤＬＳ相当動作が指定され、アクセス要求の比較対象とされるプロセッサエレメントの数が３個の場合にはＴＭＲ相当動作が指定されるものとしてもよい。
【００７３】
ここでのフェールセーフ制御の基本的な考え方は、プロセッサエレメントの異常がシステムに障害をもたらすのはプロセッサエレメントが外部に対する誤った処理を行う場合であることに着目し、その誤りを広く検出する手法として同じプログラム処理動作を行うように設定された複数のプロセッサエレメントによるアクセス要求が相互に相違する状態を検出して異常と判別する。その判別に際して、２個のプロセッサエレメントを比較対象とするとき一のプロセッサエレメントからのアクセス要求があったとき、別のプロセッサエレメントから同じアクセス要求がなければ双方のアクセス要求を異常とする。２個の比較対象のプロセッサエレメントの組合せを変えて同じ判別を何回か行うことによって故障を生じたプロセッサエレメントの特定が可能になる。３個のプロセッサエレメントを比較対象とするとき一のプロセッサエレメントからのアクセス要求があったとき、別のプロセッサエレメントから同じアクセス要求が少なくとも一つあればその範囲で正常アクセスを行い、残り一つのプロセッサエレメントからのアクセス要求が異なる場合には当該一つのプロセッサエレメントを故障と判定することができる。
【００７４】
図１のマルチプロセッサシステムＭＰＳ＿１におけるＤＬＳ相当動作と、ＴＭＲ相当動作に大別されるフェールセーフ制御方法について具体例を説明する。図１のマルチプロセッサシステムＭＰＳ＿１において、プロセッサエレメント１〜３の内の指定されたプロセッサエレメントが同じプログラムを正常に実行する場合には夫々のプロセッサエレメントは同じタイミングで動作するものとされる。バスアクセスについて同じタイミングとは、例えば、アクセス要求を行った場合に、一部のプロセッサエレメントが先に次のアクセス要求を行うことはない、と言う意味である。
【００７５】
《マルチプロセッサシステムＭＰＳ＿１を用いたＤＬＳ相当動作》
図２乃至図４には２個のプロセッサエレメントを指定してＤＬＳ相当動作を行う場合の動作フローが例示される。
【００７６】
プロセッサエレメント１乃至３のうちの所要の２個のプロセッサエレメントがコントロールレジスタ４４に指定されて、ＤＬＳ相当動作が設定される。指定された２個のプロセッサエレメントは同じプログラムを並列的に実行する。
【００７７】
プロセッサエレメント１〜３のプログラム実行に従って所要のタイミングでバスアクセスを発行すると（Ａ−１）、バスインタフェースユニット５はその要求をバスアクセス要求キュー（ＱＲＥＱ）２１に受付け、アクセス要求フラグ２０がセットされる（Ａ−２）。バスアクセス判定／制御回路４２はセットされたアクセス要求フラグに基づいてＤＬＳ相当動作の対象にされるプロセッサエレメント（コントロールレジスタ４４で指定されたプロセッサエレメント）による要求か否かを判別する（Ａ−３）。
【００７８】
ＤＬＳ相当動作の対象でなければ、バスアクセス判定／制御回路４２は信号５０によってバスアクセス調停回路１５にそのアクセス要求に対する調停動作を可能とし、バススレーブモジュール４に対してバスアクセスを実行させる（Ａ−４）。バスアクセス調停回路１５はバスアクセスの実行結果をアクセス要求に係るマスタポート２０のアクセス結果キュー２２にキューイングし、アクセス要求フラグ２０をクリアさせる（Ａ−５）。
【００７９】
一方、そのアクセス要求がＤＬＳ相当動作の対象であれば、バスアクセス要求キュー（ＱＲＥＱ）２１に受付けられたバスアクセス情報をバスアクセス情報記憶回路４０に保持させる（Ｂ−４）。バスアクセス情報比較器４１は今回保持されたバスアクセス情報を、ＤＬＳ相当動作の対象となるプロセッサエレメントのためのバスアクセス情報記憶回路４０の領域の情報と比較する（Ｂ−５）。比較の結果、バスアクセス情報が一致するか否かを判別する（Ｂ−６）。
【００８０】
ステップＢ−６の判別結果が一致の場合には、ＤＬＳ相当動作の対象である２個のプロセッサエレメントからの同じアクセス要求が発行されたことになるから、当該バスアクセス要求は正当なアクセス要求であることがわかる。これによって、バスアクセス判定／制御回路４２は信号５０によってバスアクセス調停回路１５にそのアクセス要求に対する調停動作を可能とし、バススレーブモジュール４に対してバスアクセスを実行させる（Ｂ−７）。このときのバススレーブモジュール４に対するバスアクセスは２個のプロセッサエレメントから別々に発行されたアクセス要求に対して一つの共通のバスアクセスとなる。時間計測装置４３によるタイマ動作が起動されているときはタイムアウト前でも当該タイマ動作をクリアする（Ｂ−７）。バスアクセス調停回路１５はバスアクセスの実行結果をＤＬＳ相当動作の対象に係る２個のマスタポート２０の結果キュー２２にキューイングし、アクセス要求の一致に係るアクセス要求フラグ２０をクリアさせる（Ｂ−８）。
【００８１】
一方、ステップＢ−６の判別結果が不一致の場合には、時間計測装置４３によるタイマ動作が有効か（タイマ動作が起動されているか）を判別する（Ｃ−７）。有効でなければ、信号５３などによってアクセス要求の不一致判別に対する即時例外的処理が指定されていることになる。例えば、コントロールレジスタ４４に対する例外的処理の指定に従って、ＤＬＳ相当動作に係る相手方のプロセッサエレメントに対する割込み要求若しくはリセット要求の発生、シングルチップ化されたマルチプロセッサシステムＭＰＳ＿１のチップ外部への例外処理要求、又は今回のアクセス要求に係るプロセッサエレメントの動作停止の指示が行われる（Ｃ−８）。
【００８２】
ステップＣ−７の判別結果によってタイマ動作が有効と判定された場合には、タイマ動作が起動していなければタイマ動作を開始し（Ｄ−８）、タイマ動作により規定時間が計時されたか（タイムアウトしたか）が判別される（Ｄ−９）。タイムアウトしていなければステップＢ−５に戻って上記処理を繰返し、タイムアウトすると、ステップＣ−８と同様に、信号５３などによってアクセス要求の不一致判別に対する例外的処理が指定されていることになり、例えば、ＤＬＳ相当動作に係る相手方のプロセッサエレメントに対する割込み要求若しくはリセット要求の発生、シングルチップ化されたマルチプロセッサシステムＭＰＳ＿１のチップ外部への例外処理要求、又は今回のアクセス要求に係るプロセッサエレメントの動作停止の指示が行われる（Ｄ−１０）。
【００８３】
図２乃至図４のフローチャートにおいて、例えば、プロセッサエレメント１，２を並列的に同一動作させ、プロセッサエレメント３をそれらとは個別動作させる場合の処理ステップの進行形態を整理して示せば、以下の通りとされる。
【００８４】
（１）プロセッサエレメント３によるバスアクセス要求に対してはステップＡ−１、Ａ−２、Ａ−３、Ａ−４、Ａ−５の順に処理されて、バスアクセスが完了される。
【００８５】
（２）プロセッサエレメント１、２の正常動作時には、ステップＡ−１、Ａ−２、Ａ−３、Ｂ−４、Ｂ−５、Ｂ−６（判定一致）、Ｂ−７、Ｂ−８の順に処理されて、バスアクセスが完了される。
【００８６】
（３）プロセッサエレメント１、２の異常動作時に、動作タイミングに差がないものである場合には、ステップＡ−１、Ａ−２、Ａ−３、Ｂ−４、Ｂ−５、Ｂ−６（判定不一致）、Ｃ−７、Ｃ−８の順に処理され、バスアクセス情報が不一致の場合に即座に異常と判定してエラーに対する例外的処理を行う。
【００８７】
（４）プロセッサエレメント１、２の異常動作により、一旦バスアクセス情報が不一致になってから所定時間経過後も不一致の場合には、ステップＡ−１、Ａ−２、Ａ−３、Ｂ−４、Ｂ−５、Ｂ−６（判定不一致）、Ｃ−７、Ｄ−８、Ｄ−９（Ｂ５からＤ９の繰返し）、Ｄ−１０、の順に処理され、所定時間経過後もバスアクセス情報が不一致の場合に異常と判定してエラーに対する例外的処理を行う。
【００８８】
（５）プロセッサエレメント１、２の異常動作により、一旦バスアクセス情報が不一致になってから所定時間経過する前に一致の場合には、ステップＡ−１、Ａ−２、Ａ−３、Ｂ−４、Ｂ−５、Ｂ−６（判定不一致）、Ｃ−７、Ｄ−８、Ｄ−９（Ｂ５からＤ９の繰返し）、Ｂ−６（判定一致）、Ｂ−７、Ｂ−８の順に処理されて、バスアクセスが完了される。
【００８９】
《マルチプロセッサシステムＭＰＳ＿１を用いたＴＭＲ相当動作》
図５乃至図７には３個のプロセッサエレメントを指定してＴＭＲ相当動作を行う場合の動作フローが例示される。
【００９０】
３個のプロセッサエレメント１〜３がコントロールレジスタ４４に指定されて、ＴＭＲ相当動作が設定される。指定された３個のプロセッサエレメントは同じプログラムを並列的に実行する。
【００９１】
プロセッサエレメント１〜３のプログラム実行に従って所要のタイミングでバスアクセスを発行すると（Ａ−１１）、バスインタフェースユニット５はその要求をバスアクセス要求キュー（ＱＲＥＱ）２１に受付け、アクセス要求フラグ２０がセットされる（Ａ−１２）。バスアクセス判定／制御回路４２はセットされたアクセス要求フラグに基づいてＤＬＳ相当動作の対象にされるプロセッサエレメント（コントロールレジスタ４４で指定されたプロセッサエレメント）による要求か否かを判別する（Ａ−１３）。
【００９２】
ＴＭＲ相当動作の対象でなければ、バスアクセス判定／制御回路４２は信号５０によってバスアクセス調停回路１５にそのアクセス要求に対する調停動作を可能とし、バススレーブモジュール４に対してバスアクセスを実行させる（Ａ−１４）。バスアクセス調停回路１５はバスアクセスの実行結果をアクセス要求に係るマスタポート２０のアクセス結果キュー２２にキューイングし、アクセス要求フラグ２０をクリアさせる（Ａ−１５）。尚、図１のマルチプロセッサシステムＭＰＳ＿１の例ではプロセッサエレメントは３個しか搭載されず、３個のプロセッサエレメントを用いて３値多数決相当動作を行うのでステップＡ−１１乃至Ａ−１５の経路を通る処理は発生しない。
【００９３】
そのアクセス要求がＴＭＲ相当動作の対象であれば、バスアクセス要求キュー（ＱＲＥＱ）２１に受付けられたバスアクセス情報をバスアクセス情報記憶回路４０に保持させる（Ｂ−１４）。バスアクセス情報比較器４１は今回保持されたバスアクセス情報を、ＤＬＳ相当動作の対象となるプロセッサエレメントのためのバスアクセス情報記憶回路４０の領域の情報と比較する（Ｂ−１５）。比較の結果、バスアクセス情報が一致するか否かを判別する（Ｂ−１６）。ＴＭＲ相当動作モードの場合において、ステップＢ−１６の判別結果が一致とは、他の１個のバスアクセス情報との一致、又は他の２個のバスアクセス情報との一致を意味する。判別結果が不一致とは、他の１個のバスアクセス情報との不一致、又は他の２個のバスアクセス情報との不一致を意味する。即ち、３個のプロセッサエレメントからのバスアクセス要求が全て一致、その内の２個のアクセス要求が一致、全て不一致の３通りがあるが、２個のアクセス要求の一致は１個のアクセス要求の不一致であるからステップＢ−１６の判別結果は「一致」と「不一致」の双方に分岐することになる。尚、ステップＢ−１６の判別動作は時間計測装置４３によるタイマ動作で所定時間が経過する間での期間で行われるものであり、ステップＤ−８，Ｄ−９に示される処理は図示を省略してある。
【００９４】
ステップＢ−１６の判別結果が一致の場合には、ＴＭＲ相当動作の対象である２個のプロセッサエレメント又は３個のプロセッサエレメントから同じアクセス要求が発行されたことになるから、当該バスアクセス要求は正当なアクセス要求であることがわかる。これによって、バスアクセス判定／制御回路４２は信号５０によってバスアクセス調停回路１５にそのアクセス要求に対する調停動作を可能とし、バススレーブモジュール４に対してバスアクセスを実行させる（Ｂ−１７）。このときのバススレーブモジュール４に対するバスアクセスは２個又は３個のプロセッサエレメントから別々に発行されたアクセス要求に対して一つの共通のバスアクセスとなる。時間計測装置４３によるタイマ動作が起動されているときはタイムアウト前でも当該タイマ動作をクリアする（Ｂ−１７）。バスアクセス調停回路１５はバスアクセスの実行結果をＴＭＲ相当動作の対象に係る２個又は３個のマスタポート２０の結果キュー２２にキューイングし、アクセス要求の一致に係るアクセス要求フラグ２０をクリアさせる（Ｂ−１８）。
【００９５】
ステップＢ−１６の判別結果が不一致の場合には、他の２個のバスアクセス情報と不一致(即ち、３個のプロセッサエレメントからのバスアクセス要求が全て不一致になっている状態）か否かが判別される（Ｃ−１７）。全て不一致と判別された場合には、信号５３などによってアクセス要求の不一致判別に対する即時例外的処理が指定されていることになる。例えば、コントロールレジスタ４４に対する例外的処理の指定に従って、ＴＭＲ相当動作に係る相手方のプロセッサエレメントに対する割込み要求若しくはリセット要求の発生、シングルチップ化されたマルチプロセッサシステムＭＰＳ＿１のチップ外部への例外処理要求、又は今回のアクセス要求に係るプロセッサエレメントの動作停止の指示が行われる（Ｃ−１８）。
【００９６】
ステップＣ−１７の判別結果が全部不一致でなければ、即ち、バスアクセス情報が不一致に係る一つのプロセッサエレメントの異常に対して、当該プロセッサエレメントによる処理を継続するか否かをコントロールレジスタ４４の設定値に基づいて判別する。処理の継続が指示されている場合には、バスアクセス判定／制御回路４２が信号５０を介して異常に係るプロセッサエレメントによる今回のバスアクセス要求を破棄する。この状態は、コントロールレジスタ４４の設定に従って、信号５３により他のプロセッサエレメント又はマルチプロセッサシステムＭＰＳ＿１の外部にエラーとして通知される（Ｄ−１９）。処理の継続が指示されていない場合には、信号５３により異常に係るプロセッサエレメントのバスアクセスを停止させ、更に、コントロールレジスタ４４に対する例外的処理の指定に従って、他のプロセッサエレメント又はシングルチップ化されたマルチプロセッサシステムＭＰＳ＿１のチップ外部にエラーとして通知される（Ｅ−２０）。
【００９７】
尚、図２乃至図７のフローチャートにおいて処理ステップ番号のＡ系列は単体のプロセッサエレメントの実行時経路となる、Ｂ系列は複数プロセッサエレメントによる並列的な実行で一致判定になる場合の経路である。Ｃ系列は不一致のエラー処理になる経路である。全てのプロセッサエレメントで不一致の場合には動作継続は不可能である。Ｄ系列は１つのプロセッサエレメントで異常があり、当該異常に係るプロセッサエレメントの処理を当該バスアクセスの破棄でそれ以降継続可能とする場合である。Ｅ系列は１つのＰＥで異常があり、当該異常に係るプロセッサエレメントのバスアクセスを停止させる場合である。
【００９８】
上記マルチプロセッサシステムＭＰＳ＿１によれば、次の作用効果を得る。従来技術ではプロセッサエレメントをハードウェアでＤＬＳによる二重化やＴＭＲによる３値多数決でその出力を保障することで機能安全や動作継続性を実現していたが、組合せや構成はハードウェアで決められるため、個々のユーザの用途の相違に関わらず、冗長にする必要があり、また、その構成をユーザが適時再構成することが極めて難しい。マルチプロセッサシステムＭＰＳ＿１ではバスインタフェースユニットに組み込まれた機能として、個々のプロセッサエレメントに対してフェールセーフ機能の有効／無効、対象とするプロセッサエレメントの組合せをソフトウェアによりコントロールレジスタ４４に指定することにより、任意に且つ低コストで実現することができる。
【００９９】
また、バスアクセス単位でのフェールセーフ制御となるため、プログラム中の特定処理（スレッド）に対してソフトウェアによりコントロールレジスタ４４に設定することにより、ユーザが任意のタイミングで自由に機能安全動作を実現することができる。
【０１００】
多数のプロセッサエレメントがあるシステムの場合、特定のプロセッサエレメントに故障が発生した場合であっても、任意のプロセッサエレメントの組合せでＤＬＳ相当動作やＴＭＲ相当動作を選択することができ、フェースセーフ機能に関するシステム再構成を簡単且つ低コストで行うことができる。
【０１０１】
《マルチプロセッサシステムＭＰＳ＿２》
図８にはマルチプロセッサシステムの第２の例が示される。図１のマルチプロセッサシステムＭＰＳ＿１の場合にはＤＬＳ相当動作でもＴＭＲ相当動作でも同じプログラムを実行する複数のプロセッサエレメントによる並列的動作の動作タイミングが揃うようにタイミング制御される構成を前提とするから、並列動作されるべき複数のプロセッサエレメントによる同一のバスアクセス要求の発行が命令実行サイクルの複数倍に亘ってずれることがないようにされている。例えば、それはプロセッサエレメント１〜３のハードウェアを完全同一又は同一ソフトウェアの実行によって実現されている。これに対して図８のマルチプロセッサシステムＭＰＳ＿２では個々のプロセッサエレメントによる動作タイミングの一致が保証されていない、若しくは、保証が十分でない場合を想定する。
【０１０２】
図８のマルチプロセッサシステムＭＰＳ＿２はバスインタフェースユニット５Ａを備え、これは、図１のマルチプロセッサシステムＭＰＳ＿１に比べて、リードデータ保持キュー６０とバスアクセス情報保持キュー６１が追加され、それに応じてバスアクセス判定／制御回路４２Ａ及びバスアクセス調停回路１５Ａに新たな制御機能が追加された点が相違する。その他の構成はマルチプロセッサシステムＭＰＳ＿１と同じであり、同一機能を有する構成にはそれと同じ符号を付して詳細な説明を省略する。図８のマルチプロセッサシステムＭＰＳ＿２において７０Ａは、バスインタフェースユニット５Ａでフェールセーフ機能を実現するためのフェールセーフ回路ブロックを示すものである。
【０１０３】
バスアクセス情報保持キュー６１はバスアクセス情報記憶回路４０に一旦保持されたバスアクセス情報をバスアクセス判定／制御回路４２Ａの制御に従って一時的に保持する退避領域として機能される。例えば、バスアクセス情報比較器４１によってバスアクセス情報の一致に係る２個の領域のバスアクセス情報を保持する。したがって、バスアクセス情報比較器４１はマスタポート１１，１２，１３の夫々に個別化されたバスアクセス情報記憶領域４０の領域相互間の値を比較して、第１領域の情報と第２領域の情報が一致するか否か、第１領域の情報と第３領域の情報が一致するか否か、第２領域の情報と第３領域の情報が一致するか否かを判別するだけでなく、バスアクセス情報保持キュー６１に退避された２個の領域のバスアクセス情報とバスアクセス情報記憶領域４０のその他の領域のバスアクセス情報とについても必要に応じて比較する。例えば、バスアクセス情報保持キュー６１に一致に係る第１及び第２領域のバスアクセス情報が退避されている場合にはそのバスアクセス情報がバスアクセス情報記憶領域４０の第３領域のバスアクセス情報と必要に応じて比較される。
【０１０４】
リードデータ保持キュー６０はスレーブポート１４を介してリードされたデータをバスアクセス判定／制御回路４２Ａの制御に従って一時的に保持する退避領域として機能される。例えば、ＴＭＲ相当動作が指定されているとき、２個の一致に係るバスアクセス情報に基づいてバススレーブモジュール４からリードしたデータを保持する。ＴＭＲ相当動作では３個のプロセッサエレメントが正常に動作すれば夫々によるバスアクセス要求は一致することになるが、３個のプロセッサエレメント１〜３による動作タイミングの一致が保証されていないので、２個のプロセッサエレメントによるバスアクセス要求が一致した後、残りのプロセッサエレメントによるバスアクセス要求が到来するまでに別のアクセス要求が介在される事態を想定したとき、当該一致に係るアクセス要求と同じアクセス要求が後から残りのプロセッサエレメントによって発行されたとき、リードデータ保持キュー６０に退避されているリードデータを用いることによって同じアクセスを重ねて行う無駄を排除するようになっている。
【０１０５】
バスアクセス判定／制御回路４２Ａは、バス３０を介してバスアクセス要求があるか否かを判別する。どのプロセッサエレメントからのバスアクセス要求を判別すべきかについてはコントロールレジスタ４４の制御設定情報によってプログラマブルに設定可能にされる。判別すべきバスアクセス要求に対してバスアクセス判定／制御回路４２Ａは、バスアクセス情報比較器４１による比較結果５１を入力して複数のバスアクセス情報の一致／不一致を判別し、その判別結果に基づいて、アクセス要求に応答するバスアクセス調停回路１５によるアクセス制御処理の実行／保留／破棄／バッファ動作を制御信号５０Ａで制御する。バッファ動作とはリードデータ保持キュー６０のプッシュ／ポップ動作である。更に、バスアクセス判定／制御回路４２Ａは、アクセス制御処理の破棄を行ったとき当該アクセス要求の要求元に対応するプロセッサエレメントや、それとのアクセス要求の比較対象にされる他のプロセッサエレメントに対する割込み要求やリセット要求を指示する信号５３を出力する。信号５３による要求が割込み要求又はリセット要求の何れであるのか、更には、その要求先はどのプロセッサエレメントか、などについては、コントロールレジスタ４４の設定内容に従って決定される。比較結果５１の参照タイミングは例えば時間計測装置４３のタイマ動作によるタイムアウトのタイミングを用いる。コントロールレジスタ４４の設定は、何れかのプロセッサエレメントで行ってもよいし、又は別のロジックで行うようにしてもよい。時間計測装置４３に対するタイマ時間の設定はコントロールロールレジスタ４４に対する設定で行われる。設定されたタイマ時間を用いたタイマ動作の開始と停止はバスアクセス判定／制御回路４２が行う。ステータスフラグレジスタ４５はプロセッサエレメント１〜３の状態を保持する。例えば、動作停止中、リセット処理中、などの状態をプロセッサエレメントのＩＤと共に保持する。
【０１０６】
バスアクセス判定／制御回路４２Ａによるフェールセーフ制御機能は、上記同様に、ＤＬＳ相当動作と、ＴＭＲ相当動作に大別され、例えばコントロールレジスタ４４のモードビットの設定によって決定される。
【０１０７】
ここでのフェールセーフ制御の基本的な考え方は、プロセッサエレメントの異常がシステムに障害をもたらすのはプロセッサエレメントが外部に対する誤った処理を行う場合であることに着目し、その誤りを広く検出する手法として同じプログラム処理動作を行うように設定された複数のプロセッサエレメントによるアクセス要求が相互に相違する状態を検出して異常と判別する。その判別に際して、２個のプロセッサエレメントを比較対象とするとき一のプロセッサエレメントからのアクセス要求があったとき、別のプロセッサエレメントから同じアクセス要求がなければ双方のアクセス要求を異常とする。２個の比較対象のプロセッサエレメントの組合せを変えて同じ判別を何回か行うことによって故障を生じたプロセッサエレメントの特定が可能になる。３個のプロセッサエレメントを比較対象とするとき一のプロセッサエレメントからのアクセス要求があったとき、別のプロセッサエレメントから同じアクセス要求が少なくとも一つあればその範囲で正常アクセスを行い、残り一つのプロセッサエレメントからのアクセス要求が異なる場合には当該一つのプロセッサエレメントを故障と判定することができる。マルチプロセッサシステムＭＰＳ＿２の場合には個々のプロセッサエレメントによる動作タイミングの一致が保証されていない、若しくは、保証が十分でない場合を想定するから、残り一つのプロセッサエレメントが後からアクセス要求を行ってきた場合には、アクセス要求情報の一致判別にはバスアクセス情報保持キュー６１に退避してあるアクセス情報を比較対象とし、その比較が一致の場合にはリードデータとしてリードデータ保持キュー６０に退避してあるデータを用いる制御を行う。
【０１０８】
《マルチプロセッサシステムＭＰＳ＿２のフェールセーフ制御動作》
図９乃至図１３にはマルチプロセッサシステムＭＰＳ＿２のフェールセーフ制御動作の動作フローが例示される。ここでは、ＤＬＳ相当動作のフロートとＴＭＲ相当動作のフローとを分けずに双方の動作に対応する処理を一連の動作フローで示す。
【０１０９】
プロセッサエレメント１乃至３のうちの所要の複数個（２個又は３個）のプロセッサエレメントがコントロールレジスタ４４に指定されて、ＤＬＳ相当動作、又はＴＭＲ相当動作が設定される。指定された複数個のプロセッサエレメントは同じプログラムを並列的に実行する。
【０１１０】
プロセッサエレメント１〜３のプログラム実行に従って所要のタイミングでバスアクセスを発行すると（Ａ−３１）、バスインタフェースユニット５Ａはその要求をバスアクセス要求キュー（ＱＲＥＱ）２１に受付け、アクセス要求フラグ２０がセットされる（Ａ−３２）。バスアクセス判定／制御回路４２Ａはセットされたアクセス要求フラグに基づいてＤＬＳ相当動作又はＴＭＲ相当動作の対象にされるプロセッサエレメント（コントロールレジスタ４４で指定されたプロセッサエレメント）による要求か否かを判別する（Ａ−３３）。
【０１１１】
ＤＬＳ相当動作及びＴＭＲ相当動作の対象でなければ、バスアクセス判定／制御回路４２Ａは信号５０Ａによってバスアクセス調停回路１５Ａにそのアクセス要求に対する調停動作を可能とし、バススレーブモジュール４に対してバスアクセスを実行させる（Ａ−３４）。バスアクセス調停回路１５Ａはバスアクセスの実行結果をアクセス要求に係るマスタポート２０のアクセス結果キュー２２にキューイングし、アクセス要求フラグ２０をクリアさせる（Ａ−３５）。
【０１１２】
一方、そのアクセス要求がＤＬＳ相当動作又はＴＭＲ相当動作の対象であれば、バスアクセス要求キュー（ＱＲＥＱ）２１に受付けられたバスアクセス情報をバスアクセス情報記憶回路４０に保持させる（Ｂ−３４）。バスアクセス情報比較器４１は今回保持されたバスアクセス情報を、ＤＬＳ相当動作又はＴＭＲ相当動作の対象となるプロセッサエレメントのためのバスアクセス情報記憶回路４０の領域の情報と比較する（Ｂ−３５）。比較の結果、バスアクセス情報が一致するか否かを判別する（Ｂ−３６）。
【０１１３】
ステップＢ−６の判別結果が不一致の場合には、時間計測装置４３によるタイマ動作が起動されていなければ起動し（Ｂ−３７）、タイマ動作により規定時間が計時されたか（タイムアウトしたか）が判別される（Ｂ−３８）。タイムアウトしていなければステップＢ−３５に戻って上記処理を繰返し、ステップＢ−３８でタイムアウトが判別されると、信号５３などによってアクセス要求の不一致判別に対する即時例外的処理が指定される。例えば、コントロールレジスタ４４に対する例外的処理の指定に従って、ＤＬＳ相当動作又はＴＭＲ相当動作に係る相手方のプロセッサエレメントに対する割込み要求若しくはリセット要求の発生、シングルチップ化されたマルチプロセッサシステムＭＰＳ＿２のチップ外部への例外処理要求、又は今回のアクセス要求に係るプロセッサエレメントの動作停止の指示が行われる（Ｂ−３９）。
【０１１４】
ステップＢ−３６の判別結果が一致の場合には、判定すべきバスアクセス要求数が３以上であって、その全ての要求が発行されていないか否かが判別される（Ｃ−３７）。即ち、他の２個のバスアクセス情報との一致（３個のプロセッサエレメントからのバスアクセス要求が全て一致）、又は他の１個のバスアクセス情報との一致（２個のプロセッサエレメントからのバスアクセス要求が一致）であるか否かが判別される。その判別の結果、他の２個のバスアクセス情報との一致、又は他の１個のバスアクセス情報との一致（Ｃ−３７の判別が否）である場合は、ＤＬＳ相当動作又はＴＭＲ相当動作の対象である複数個全てのプロセッサエレメントから同じアクセス要求が発行されたことになるから、当該バスアクセス要求は正当なアクセス要求であることがわかる。これによって、バスアクセス判定／制御回路４２Ａは信号５０Ａによってバスアクセス調停回路１５Ａにそのアクセス要求に対する調停動作を可能とし、バススレーブモジュール４に対してバスアクセスを実行させる（Ｃ−３８）。このときのバススレーブモジュール４に対するバスアクセスは複数個のプロセッサエレメントから別々に発行されたアクセス要求に対して一つの共通のバスアクセスとなる。バスアクセス調停回路１５Ａはバスアクセスの実行結果をＤＬＳ又はＴＭＲ相当動作の対象に係る複数個のマスタポート２０の結果キュー２２にキューイングし、アクセス要求の一致に係るアクセス要求フラグ２０をクリアさせる（Ｃ−３９）。
【０１１５】
ステップＣ−３７の判別の結果、他の２個のバスアクセス情報との一致、又は他の１個のバスアクセス情報との一致の何れでもない（Ｃ−３７の判別結果が正）場合は、ＴＭＲ相当動作において３個のプロセッサエレメントの内の２個からのアクセス情報だけが一致し、残る一つのプロセッサエレメントが未だバスアクセス要求を発行していないことになる。この場合には、バスアクセス判定／制御回路４２Ａは、残る一つのプロセッサエレメントから出力されることになるバスアクセス情報との比較対象として、先に一致したバスアクセス情報をバスアクセス情報保持キュー６１に退避させる（Ｄ−３８）。更に、バスアクセス判定／制御回路４２Ａは、信号５０Ａによってバスアクセス調停回路１５Ａに先に一致した２個のアクセス要求に対する調停動作を可能とし、バススレーブモジュール４に対してバスアクセス（先行バスアクセス）を実行させる（Ｄ−３９）。
【０１１６】
次いで、バスアクセス調停回路１５Ａは、先行バスアクセスに係るアクセス要求に対応する２個マスタポート２０のアクセス要求フラグ２０をクリアさせると共に（Ｄ−４０）、先行バスアクセスがリードアクセスの場合にそれによってリードしたリードデータをリードデータ保持キュー６０に退避させる（Ｄ−４１）。
【０１１７】
そして後続のバスアクセス要求がＴＭＲ相当動作における残り１個のアクセス要求か否かをバスアクセス情報保持キュー６１に退避されているバスアクセス情報を用いて判別する（Ｄ−４２）。但しアクセスの種別（リード／ライト）について次のステップＥ−４３で判別する。ステップＤ−４２で一致が判別され、ステップＥ−４３でライトアクセスと判定された場合には、既に必要なライトアクセスが完了しているので、当該残り１個のアクセス要求に係るアクセス要求フラグ２０、及びデータ保持キュー６０、６１が保持するデータのクリアを行う（Ｅ−４４）。ステップＥ−４３でリードアクセスと判定された場合は、必要なリードデータは既にリードデータ保持キュー６０に取得されているので、当該残りの１個のアクセス要求に対してはその要求元にリードデータ保持キュー６０のリードデータを渡し（Ｆ−４４）、当該残り１個のアクセス要求に係るアクセス要求フラグ２０、及びデータ保持キュー６０、６１が保持するデータのクリアを行う（Ｆ−４５）。
【０１１８】
ステップＤ−４２でアクセス要求不一致が判定されたときは、時間計測装置４３によるタイマ動作が起動されていなければ起動し（Ｄ−４３）、タイマ動作により規定時間が計時されたか（タイムアウトしたか）が判別される（Ｄ−４４）。タイムアウトしていなければステップＤ−４２に戻って上記処理を繰返し、ステップＤ−４４でタイムアウトが判別されると、ＴＭＲ相当動作において残り一つのバスアクセス要求が一致しないことになるが、既に一致した２個のバスアクセス要求にしたがって予めリードデータ保持キュー６０に保持されているリードデータを一致に係るアクセス要求元のプロセッサエレメントに渡す（Ｄ−４８）。次に、コントロールレジスタ４４の設定に応じたエラー処理の内容が判別される（Ｄ−４５）。即ち、一致する残り一つのバスアクセス要求を発行しなかった異常を生じたプロセッサエレメントの処理を継続可能にするか否かが判別される。継続を許容する場合には、バスアクセス判定／制御回路４２Ａは信号５０Ａにより今回不一致に係るバスアクセス要求をバスアクセス調停回路１５Ａに破棄させると共に、例えばコントロールレジスタ４４への例外的処理の指定に従って、ＴＭＲ相当動作に係る既にアクセス要求が一致の相手方のプロセッサエレメント又はシングルチップ化されたマルチプロセッサシステムＭＰＳ＿２のチップ外部へエラー通知を行う（Ｄ−４６）。一方、継続を許容しない場合には、バスアクセス判定／制御回路４２Ａは今回不一致に係るバスアクセスを要求したプロセッサエレメントのバスアクセスをこれ以降停止させると共に、例えばコントロールレジスタ４４への例外的処理の指定に従ってＴＭＲ相当動作に係る既にアクセス要求が一致の相手方のプロセッサエレメント又はシングルチップ化されたマルチプロセッサシステムＭＰＳ＿２のチップ外部へエラー通知を行う（Ｄ−４７）。プロセッサエレメントのバスアクセスをこれ以降停止させるには、例えば、当該アクセス要求に対するアクセス完了通知を返すことなくペンディングの状態を維持すればよい。或いは動作停止を指示する専用の応答コードを返してもよい。
【０１１９】
上記マルチプロセッサシステムＭＰＳ＿２によればマルチプロセッサシステムＭＰＳ＿１に対して以下の更なる作用効果を得る。即ち、マルチプロセッサシステムＭＰＳ＿２では個々のプロセッサエレメントによる動作タイミングの一致が保証されていなくても、また、保証が十分でない場合でも、ＴＭＲ相当動作を支障なく行う事ができる。
【０１２０】
《マルチプロセッサシステムＭＰＳ＿３》
図１及び図８で説明したマルチプロセッサシステムＭＰＳ＿１、ＭＰＳ＿２は図１４に集約されるように、複数のプロセッサエレメント１〜３のフェールセーフをバスインタフェースユニット５，５Ａのフェールセーフ回路ブロック（バスマスタ用）７０，７０Ａを用いたＤＬＳ相当動作又はＴＭＲ相当動作によって実現するものである。ＭＰＲＴはマスタポート、ＳＰＲＴはスレーブポートを意味する。前記フェールセーフ回路ブロック（バスマスタ用）７０，７０Ａは、図１の場合にはバスアクセス情報記憶回路４０、バスアクセス情報比較器４１、バスアクセス判定／制御回路４２、時間計測装置４３、コントロールレジスタ４４、及びステータスフラグレジスタ４５から成る。図８の場合にはバスアクセス情報記憶回路４０、バスアクセス情報比較器４１、バスアクセス判定／制御回路４２Ａ、時間計測装置４３、コントロールレジスタ４４、ステータスフラグレジスタ４５、リードデータ保持キュー６０、及びバスアクセス情報保持キュー６１から成る。図１５にはそれをバススレーブモジュール側に拡張した応用例を示す。
【０１２１】
図１５に例示するマルチプロセッサシステムＭＰＳ＿３はバスインタフェースユニット５Ｂを有し、これはバスインタフェースユニット５，５Ａに比べて２個のスレーブポート（ＳＰＲ）１４＿１，１４＿２とフェールセーフ回路ブロック（バススレーブ用）７１が追加されている点が相違する。スレーブポート（ＳＰＲ）１４＿１，１４＿２には同じバススレーブモジュール４＿１，４＿２が接続される。フェールセーフ回路ブロック（バススレーブ用）７１はバススレーブモジュール４＿１，４＿２に対するフェールセーフ制御を行う。
【０１２２】
バスマスタ用のフェールセーフ回路ブロック７０、７０Ａが上記制御によってプロセッサエレメントからのアクセス要求に応ずるバスアクセスを許可するとき、バススレーブ用のフェールセーフ回路ブロック７１はそのアクセス要求を２個のスレーブポート１４＿１，１４＿２に与えて夫々のバススレーブモジュール４＿１，４＿２に同一のアクセス動作をさせる。バススレーブ用のフェールセーフ回路ブロック７１はそれによる双方からのアクセス結果を受け取って、それが同一であるかを判別する。リード動作であればリードデータが同一であることを判別し、ライト動作であればライト動作の終了ステータスが同一であるか否かを判別する。同一であればそのアクセス結果をアクセス要求元に返すための制御が行われ、不一致であればバススレーブモジュール４＿１,４＿２の何れかに故障があると判断して、アクセス要求元などにモジュール例外処理の師事を行い、更にはその他のプロセッサエレメントにバススレーブモジュール４＿１,４＿２の異常を通知する。
【０１２３】
これにより、プロセッサエレメントに対するフェールセーフと共にバススレーブモジュールに対する故障検出も行うことができる。尚、故障検出についてはフェースセーフ回路ブロック７１を採用することに限定されず、ＥＣＣやパリティーを利用することができるバススレーブモジュールであればそれを二重化することを要しない。
【０１２４】
《実施の形態におけるフェールセーフ機能の優位性》
図１６には上記実施の形態で説明したマルチプロセッサシステムのフェールセーフ機能を原理的に示した説明図である。これに対して図１７には従来のフェールセーフ機能を原理的に示す。
【０１２５】
従来のＤＬＳ又はＴＭＲは図１７に例示するように、複数個のプロセッサエレメントＰＥを密に結合して、相互の動作一致／不一致をロジック回路で判別し、判別一致の場合にバスインタフェースＢＩＦにバスアクセスを要求する、という原理的な仕組みを有する。即ち、２個の連動するプロセッサエレメントによって一つのバスバスマスタとしてプロセッサエレメントの動作を保証するために、プロセッサエレメントの間は密に結合して非独立にされる。
【０１２６】
一方、上記実施の形態に係るマルチプロセッサシステムではプロセッサエレメント間の動作の一致／不一致をバスアクセス要求に対する一致／不一致によって判別し、その制御をバスインタフェースユニットＢＩＵ（５，５Ａ，５Ｂ）で行う。したがって、プロセッサエレメントの間は独立であってよい。
【０１２７】
上述の差は本実施の形態に係るマルチプロセッサシステムに以下の優位性をもたらす。即ち、図１７の従来手法では２個のプロセッサエレメントが互いに関係を持つため、２個のプロセッサエレメントの実装において、高性能の実現と機能安全の実現とを両立させる実装は、プロセッサエレメントを最高速で動作可能にしなければならないから、難しいと考えられる。本実施の形態のように、互いのプロセッサエレメントはバスインタフェースユニットＢＩＵを介してのみの関係となるため、最も高速なプロセッサエレメント間でのタイミング上の制約がなく、例えばバスインタフェースユニットＢＩＵとプロセッサエレメントＰＥの間での動作速度の点まで速度制約が軽減され、機能安全面での実装に対する制約が少ない。
【０１２８】
更に、密に結合してＴＭＲやＤＬＳを実現しなければならない場合には、フェールセーフの態様は固定化され、処理に応じて所要のプロセッサエレメント間でのみフェールセーフ機能を実現したり、所要のデータ処理に関してだけフェールセーフを行うといったプログラマブルなフェールセーフ機能を実現することは難しい。半導体集積回路の高機能化若しくは論理規模の増大が続く中でそのようにコントロールレジスタを用いたプログラマブルなフェールセーフ機能は従来に対して優位性を持つ。
【０１２９】
このように、システムの機能安全と言う点でプロセッサエレメント側では対策が不要であり、該当バスマスタ単位でフェールセーフ機能によるチェックの有無や、チェック対象とするプロセッサエレメントの組合せを任意に設定することができる。したがって、フェールセーフの機能選択の自由度が大きく、また、複数のプロセッサエレメントを搭載してマルチプロセッサシステムを構成するときの実装コストを小さくすることができる。
【０１３０】
個々のプロセッサエレメントは独立で、バスインタフェースユニットでフェールセーフ機能を実現するから、プロセッサエレメントの実装時の動作周波数を差別化したり、個々のプロセッサエレメントの実装時の配置領域に対する制約を緩和したりすることが可能になる。この点で好適な実施の形態は図８で説明したマルチプロセッサシステムＭＰＳ＿２である。
【０１３１】
本発明は上記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【０１３２】
例えば、プロセッサエレメントの数やバススレーブモジュールの数は上記実施の形態に限定されず、適宜変更可能である。
【０１３３】
また、バスインタフェース制御機能はスプリット・トランザクション・バスインタフェース機能に限定されず、占有バスでもよい。
【０１３４】
また、異常発生時の対処はバスアクセスの廃棄や停止に限定されず、バスアクセス要求から一定時間の間に他のプロセッサエレメントによる同一バスアクセスがない場合に当該プロセッサエレメントを異常発生とみなしたとき、当該異常のプロセッサエレメントに対して、プロセッサエレメントの動作停止、同期クロックの供給の停止、又は電源遮断などを実施して、異常なプロセッサエレメントを他のプロセッサエレメントの動作から完全に切り離して、異常なプロセッサエレメントの影響を他のプロセッサエレメントに与えないようにしてもよい。
【０１３５】
また、アクセス要求に関する安全対策の処理は、上記実施の形態に限定されず、異常と考えられるプロセッサエレメントが発行したアクセス要求の破棄、他のアクセス要求に一致しないアクセス要求の発行元であるプロセッサエレメントに対する動作停止の指示、他のアクセス要求に一致しないアクセス要求の発行元であるプロセッサエレメントに対するリセット処理、及びマルチプロセッサシステムの外部に対するエラー通知の中から選ばれた単数または複数の処理としてもよい。
【符号の説明】
【０１３６】
ＭＰＳ＿１、ＭＰＳ＿２，ＭＰＳ＿３  マルチプロセッサシステム
１，２，３  プロセッサエレメント（ＰＥ)
４  バススレーブモジュール（ＢＳＬＶ）
５、５Ａ  バスインタフェースユニット
１１〜１３  マスタポート
１４  スレーブポート
１５，１５Ａ  バスアクセス調停回路
２０  アクセス要求フラグ（ＲＦＬＧ）
２１  バスアクセス要求キュー（ＱＲＥＱ）
２２  アクセス結果キュー（ＱＲＳＬ）
３０，３１，３２  バス
４０  バスアクセス情報記憶回路
４１  バスアクセス情報比較器
４２，４２Ａ  バスアクセス判定／制御回路
４３  時間計測装置
４４  コントロールレジスタ
４５  ステータスフラグレジスタ
５１  比較結果
５０，５０Ａ  制御信号
５３  信号
６０  リードデータ保持キュー
６１  バスアクセス情報保持キュー
７０，７０Ａ  フェールセーフ回路ブロック
ＰＥ  プロセッサエレメント
ＢＩＵ  バスインタフェースユニット
【図１】
2015153282.tif 000003
【図２】
2015153282.tif 000004
【図３】
2015153282.tif 000005
【図４】
2015153282.tif 000006
【図５】
2015153282.tif 000007
【図６】
2015153282.tif 000008
【図７】
2015153282.tif 000009
【図８】
2015153282.tif 000010
【図９】
2015153282.tif 000011
【図１０】
2015153282.tif 000012
【図１１】
2015153282.tif 000013
【図１２】
2015153282.tif 000014
【図１３】
2015153282.tif 000015
【図１４】
2015153282.tif 000016
【図１５】
2015153282.tif 000017
【図１６】
2015153282.tif 000018
【図１７】
2015153282.tif 000019