JP3156429B2 - 高信頼型計算機用システム制御lsi及びそれを用いたコンピュータシステム - Google Patents

高信頼型計算機用システム制御lsi及びそれを用いたコンピュータシステム

Info

Publication number
JP3156429B2
JP3156429B2 JP05677793A JP5677793A JP3156429B2 JP 3156429 B2 JP3156429 B2 JP 3156429B2 JP 05677793 A JP05677793 A JP 05677793A JP 5677793 A JP5677793 A JP 5677793A JP 3156429 B2 JP3156429 B2 JP 3156429B2
Authority
JP
Japan
Prior art keywords
failure
processor
cache
processing
processors
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.)
Expired - Fee Related
Application number
JP05677793A
Other languages
English (en)
Other versions
JPH06266574A (ja
Inventor
憲一 黒澤
博志 岩本
浩 大黒
哲明 中三川
道雄 森岡
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP05677793A priority Critical patent/JP3156429B2/ja
Publication of JPH06266574A publication Critical patent/JPH06266574A/ja
Priority to US08/686,486 priority patent/US5748873A/en
Application granted granted Critical
Publication of JP3156429B2 publication Critical patent/JP3156429B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Hardware Redundancy (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、高信頼コンピュータシ
ステム装置に関し、特にプロセッサの2重化によるデー
タの誤り検出率向上ばかりでなく、プロセッサの障害レ
ベルを決め細かく分類し、出来るだけ処理の継続を可能
とする方法に関する。
【0002】
【従来の技術】プロセッサの2重化によりプロセッサの
障害検出率を向上させる方法については、当麻善弘編著
‘フォールトトレラントシステム論’(電子情報通信学
会)に記載されている。この方式では、2重化されたプ
ロセッサの出力を比較器により比較することにより、エ
ラーの発生を検出するものである。
【0003】一方、n重化(n=2m+1,m=1,
2,...)されたプロセッサを用いるものについて
は、当麻善弘編著‘フォールトトレラントシステム論’
(電子情報通信学会)に記載されている。この方式で
は、n重化されたプロセッサの障害検出率向上ばかりで
なく、検出時点のプロセッサの出力データを互いに比較
して、多数決論理により正しいプロセッサを判断し、出
来るだけ処理を継続させるものである。
【0004】
【発明が解決しようとする課題】上記前者の従来技術で
は、エラー発生の検出はできるが、どちらのプロセッサ
が正しいか判断できないため、処理の継続を図ることが
できないという問題があった。更に、上記後者の従来技
術では、高価なプロセッサを多数使用するため、プロセ
ッサの2重化方式に比較してコストパフォーマンスが悪
いという問題があった。
【0005】本発明の第1の目的は、2重化されたプロ
セッサを用いて、出来るだけ処理の継続を行い得る高信
頼計算システムを提供することにある。
【0006】更に本発明の第2の目的は、2重化された
プロセッサに接続され、出来るだけ処理の継続を行い得
るよう制御する高信頼計算機用システム制御LSIを提
供することにある。
【0007】
【課題を解決するための手段】本発明では、主メモリ中
のデータの一部を記憶するキャッシュメモリとアドレス
変換バッファを有するプロセッサを2組設け2重化構成
とし、これら2組のプロセッサとバスを介して接続さ
れ、プロセッサの出力を比較する比較手段を内蔵するシ
ステム制御LSIを有するシステム構成のものにおい
て、比較手段により2組のプロセッサの出力データに不
一致が検出された場合に、これら2組のプロセッサ内で
発生した障害の要因を判定する障害要因判定手段と、こ
の障害要因判定手段の判定結果に基づいて2組のプロセ
ッサのうちいずれか一方の処理の継続を実行させる処理
継続手段を設けたことを特徴とする。また、上記のシス
テム構成のものにおいて、比較手段により2組のプロセ
ッサの出力データに不一致が検出された場合に、これら
2組のプロセッサ内で発生した障害の要因を判定する障
害要因判定手段と、この障害要因判定手段の判定結果に
基づいて2組のプロセッサによる処理の継続を実行すべ
きか否かを判定する処理継続判定手段を設けたことを特
徴とする。
【0008】尚、具体的には、障害要因判定手段はプロ
セッサ内の障害要因レジスタに保持された各プロセッサ
の障害要因、即ち、アドレス変換バッファに障害が発生
しているか、命令キャッシュメモリに障害が発生してい
るか又はデータキャッシュメモリに障害が発生している
かを表すビットを参照し、各プロセッサに生じている障
害を判定するものである。また、処理継続手段は、上記
の障害要因の判定結果により、一方のプロセッサのみに
アドレス変換バッファ,命令キャッシュまたはデータキ
ャッシュの障害が発生しており、他方のプロセッサには
何ら障害が発生していない場合には、障害の発生してい
ないプロセッサの出力を選択して、処理を継続させるも
のである。また、処理継続判定手段は、上記の障害要因
の判定結果により、一方のプロセッサのみにあるいは両
方のプロセッサにアドレス変換バッファまたは命令キャ
ッシュの障害が発生している場合、キャッシュを主メモ
リに書き込み、両方のプロセッサのキャッシュとアドレ
ス変換バッファを無効化し、これら両プロセッサを同期
して処理を再実行させるものである。
【0009】また更に本発明では、2重化された2組の
プロセッサからの出力を比較し、その出力の一致又は不
一致を検出する比較回路を有する高信頼計算機用システ
ム制御LSIにおいて、比較回路により2つの出力デー
タに不一致が検出された場合に、これら2組のプロセッ
サから発生した障害の要因を示す情報を取り込み、この
取り込んだ障害要因情報に基づいて2組のプロセッサの
うちいずれか一方の処理の継続を実行させる処理継続手
段を設けたことを特徴とする。また、上記のシステム制
御LSIにおいて、比較回路により2つの出力データに
不一致が検出された場合、これら2組のプロセッサから
発生した障害の要因を示す情報を取り込み、この取り込
んだ情報に基づいて2組のプロセッサによる処理の継続
を実行すべきか否かを判定する処理継続判定手段を設け
たことを特徴とする。
【0010】
【作用】本発明によれば、2組のプロセッサからの出力
データに不一致が生じた場合、障害要因判定手段により
2組のプロセッサ内で発生した障害の内容、即ち、主メ
モリにそのコピーが存在するような軽度の障害であるア
ドレス変換バッファまたは命令キャッシュの障害か、又
は主メモリにそのコピーが無くシステム内からデータが
消滅してしまうような重度の障害であるデータキャッシ
ュの障害が発生しているのかが判定されることになり、
この判定結果に基づいて処理継続手段により、一方のプ
ロセッサのみにアドレス変換バッファ,命令キャッシュ
またはデータキャッシュの障害が発生し、他方のプロセ
ッサには何ら障害が発生していない場合には、障害の発
生していないプロセッサの出力が選択されて処理が継続
されることになる。また、処理継続判定手段により、一
方のプロセッサのみにあるいは両方のプロセッサにアド
レス変換バッファまたは命令キャッシュの障害が発生し
ている場合、キャッシュが主メモリに書き込まれ、両方
のプロセッサのキャッシュとアドレス変換バッファが無
効化され、同期してこれら両プロセッサが処理を再実行
されることとなるので、プロセッサが2重化された高信
頼コンピュータシステムにおいて、2重化されたプロセ
ッサの出力に不一致が生じた場合であっても、システム
ダウンさせること無く、出来るだけ処理の継続を確保す
ることが可能となる。
【0011】また更に本発明では、比較回路により2つ
の出力データに不一致が検出された場合に、これら2組
のプロセッサから発生した障害の要因を示す情報、即
ち、主メモリにそのコピーが存在するような軽度の障害
であるアドレス変換バッファまたは命令キャッシュに障
害が発生しいているのか、又は主メモリにそのコピーが
無くシステム内からデータが消滅してしまうような重度
の障害であるデータキャッシュに障害が発生しているの
かが入力され、この入力された情報から一方のプロセッ
サのみにアドレス変換バッファ,命令キャッシュまたは
データキャッシュの障害が発生し、他方のプロセッサに
は何ら障害が発生していない場合には、障害の発生して
いないプロセッサの出力が選択されて処理が継続される
ことになる。また、処理継続判定手段により、一方のプ
ロセッサのみにあるいは両方のプロセッサにアドレス変
換バッファまたは命令キャッシュの障害が発生している
場合、キャッシュが主メモリに書き込まれ、両方のプロ
セッサのキャッシュとアドレス変換バッファが無効化さ
れ、これら両プロセッサの処理を再実行させるための同
期化処理が実行されることとなる。これにより、プロセ
ッサが2重化された高信頼コンピュータシステムにおい
て、システム全体の処理を出来るだけ継続させるのに好
適なシステム制御LSIの提供が可能となる。
【0012】
【実施例】本発明の第1の実施例を示す。図1は、一実
施例の全体構成を示したものである。まず最初に、全体
構成について述べ、次にその動作について説明する。
【0013】ここで、C0とC1はキャッシュであり、
P0とP1はプロセッサ、CB0はC0とP0を結ぶキ
ャッシュバス、CB1はC1とP1を結ぶキャッシュバ
スである。T0とT1は各々プロセッサP0とP1のT
LBであり、論理アドレスと物理アドレス対で構成され
ている。ER0とER1はキャッシュやTLB障害要因
を示す障害要因レジスタ、PSW0とPSW1はプロセ
ッサ状態レジスタである。SCはシステム制御LSIで
あり、MMは主メモリ、IOAはIOアダプタ、RST
Cはリセット制御LSIである。PB0はプロセッサP
0とSCを接続するプロセッサバスであり、PB1はプ
ロセッサP1とSCを接続するプロセッサバスである。
プロセッサはこのプロセッサバスを介してシステム制御
LSI(SC)とデータ転送を行うことができる。MC
K0はSC内のマシンチェック報告回路MCKCとプロ
セッサP0を接続するためのマシンチェック信号線であ
り、MCK1もSC内のMCKCとプロセッサP1を接
続するためのマシンチェック信号線である。WSELは
プロセッサバスPB0とPB1のいずれか一方を選択す
るセレクタ回路であり、MCCはその選択を指示するプ
ロセッサ選択レジスタである。マスタチェッカ制御回路
は、このWSELとMCCで構成される。CMPはPB
0とPB1のデータを比較して不一致検出を行うコンペ
ア回路であり、CLは不一致検出時にセットされるチェ
ックラッチである。MWBは主メモリへのライトデータ
を保持するメモリライトバッファであり、メモリアドレ
スとメモリライトデータから構成されている。IOWB
はIOアダプタへのライトデータを保持するIOライト
バッファであり、IOアドレスとIOライトデータから
構成されている。MBはシステム制御LSI(SC)と
主メモリMMを接続するメモリバスであり、IOBもS
CとIOアダプタIOAを接続するIOバスである。R
SELは主メモリからのリードデータとIOアダプタか
らのリードデータとチェックラッチのリードデータを選
択してリードデータバッファRBへ格納するためのセレ
クタ回路である。ここで、主メモリMMからのリードデ
ータはメモリリードバスMRBを介してセレクタRSE
Lと接続され、IOアダプタIOAからのリードデータは
IOリードバスIORBを介してセレクタRSELと接
続され、チェックラッチCLからのリードデータはチェ
ックラッチリードバスCLRBを介してセレクタRSELと
接続されている。また、リードデータバッファRBは、
プロセッサバスPB0とPB1の両方のバスと接続され
ており、リードデータはプロセッサP0とプロセッサP
1へ転送することができる。すなわち、ライトデータは
プロセッサP0またはP1のいずれかが選択されて主メ
モリやIOアダプタへ転送されるが、リードデータはプ
ロセッサP0とP1の両方へ転送される。また、IOラ
イトバッファIOWBとチェックラッチCLを結ぶ信号
線CLCは、チェックラッチCLをリセットするための制
御信号線である。同様に、IOライトバッファIOWB
とマシンチェック報告回路MCKCを結ぶ信号線MCKCC
は、マシンチェック報告回路MCKCをリセットする制
御信号線である。すなわち、チェックラッチCLやマシ
ンチェック報告回路MCKCは、IO空間にマップされ
ており、そのIOアドレスへライトすることによってク
リアすることができる。また、プロセッサ選択レジスタ
MCCは、データ線MCWBを介してIOライトバッフ
ァIOWBと接続されており、MCCレジスタへデータ
‘0’をライトすることによりプロセッサP0を選択
し、逆にデータ‘1’をライトすることによりプロセッ
サP1を選択することができる。これにより、マスタプ
ロセッサとチェッカプロセッサを自由に選択することが
>可能となる。
【0014】一方、PRSTはプロセッサリセットレジ
スタであり、信号線PRSTSを介してリセット制御L
SI(RSTC)と接続している。また、SRSTはシ
ステムリセットレジスタであり、信号線SRSTSを介
してリセット制御LSI(RSTC)と接続している。
この2つのリセットレジスタもIO空間にマップされて
おり、そのIOアドレスへライトすることによりIOラ
イトバッファIOWBを経由してプロセッサリセットレジス
タPRSTやシステムリセットレジスタSRSTへデー
タをライトすることができる。この結果、プロセッサリ
セットレジスタPRSTへリセット指示データがライト
されると、リセット制御LSI(RSTC)内部のOR
回路ORとプロセッサリセット信号線RSTPを経由し
てプロセッサP0のリセット入力端子RSTP0とプロ
セッサP1のリセット端子入力RSTP1へリセット信
号が入力される。この結果プロセッサ状態(障害要因レ
ジスや汎用レジスタ,プログラムカウンタ等)が主メモ
リへ退避され、プロセッサ初期化プログラムを強制的に
起動することができる。また、システムリセットレジス
タSRSTへリセット指示データがライトされると、リ
セット制御LSI(RSTC)を介してプロセッサP0
のリセット端子入力RSTP0とプロセッサP1のリセ
ット入力端子RSTP1へリセット信号が入力され、か
つシステム制御LSI(SC)のリセット入力端子RS
TSとIOアタプタのリセット入力端子RSTIOへも
入力される。この結果、システム全体がリセットされ、
前述したごとく、プロセッサ初期化プログラムが起動さ
れる。
【0015】図2は、障害要因レジスタER0とER1
の構成図を示したものである。
【0016】ビット0はTLB障害が発生したことを示
すTLBDビットであり、ビット1はデータキャッシュ
障害が発生したことを示すCACHEDビットである。
また、ビット2は命令キャッシュ障害が発生したことを
示すCACHEIビットである。これらのビットは、プ
ロセッサがTLBやキャッシュをアクセスした時に、障
害を検出した時プロセッサ自身によってセットされる。
【0017】図13は、プロセッサP0内部のTLBや
キャッシュ障害を検出する回路である。ここでC0はキ
ャッシュ、C0Iは命令キャッシュ、C0Dはデータキ
ャッシュ、CB0はキャッシュバスである。またプロセ
ッサP0内部のPCはパリティチェック回路であり、T
0はTLBである。ここでパリティチェック回路は偶数
パリティ回路とする。すなわち、読みだしたデータの各
ビットを加算して‘0’であれば正しく、‘1’であれ
ば障害発生を意味する。各々のPC回路は、その出力を
障害要因レジスタER0の各ビットへセットしているた
め、ER0にてプロセッサ内部障害発生の有無を判断す
ることができる。
【0018】一般に、プロセッサの障害には、プロセッ
サバス障害や誤演算障害等、他にもいろいろな障害があ
るが、TLBとキャッシュの障害が最も多いため、特に
重要である。
【0019】次に図3から図6を用いて、障害発生時の
動作の説明をする。
【0020】説明を簡単にするため、以降プロセッサP
0をマスタプロセッサ,P1をチェッカプロセッサと仮
定して説明する。この仮定は、本発明にとって本質的な
ものではない。
【0021】まず2組のプロセッサP0とP1の各々の
出力データPB0とPB1に不一致が発生すると、コン
ペア回路CMPが不一致を検出してチェックラッチCL
が‘1’にセットされる。さらに、マシンチェック報告
回路MCKCにも‘1’がセットされるため、マシンチ
ェック信号線MCK0とMCK1を介して接続されたプ
ロセッサP0とP1へマシンチェック信号が入力され
る。
【0022】図3は、マシンチェックがプロセッサP0
とP1へ報告された時に最初に行われる処理を示したも
ので、ハードウェア(プロセッサ)が自動的に行う処理
である。A10は、その時点のプロセッサ状態をプロセ
ッサ状態レジスタPSWへ退避する処理を示している。
ただし実際に格納されるのは、マスタプロセッサP0の
プログラムカウンタである。A20は、マシンチェック
処理プログラムへ分岐する処理である。ただし、分岐ア
ドレスは予め主メモリに設定されているものとする。こ
の結果、プロセッサP0とP1は、共に図4,図9,図
11に示すマシンチェック処理プログラムを実行するこ
とができる。
【0023】ここで図4はマシンチェック処理プログラ
ムの処理フローであり、本処理フローは、マスタプロセ
ッサとしてプロセッサP0を固定した場合のものであ
る。また、図9は、データキャッシュの障害レベルを極
め細かく判定できるように、キャッシュ状態レジスタを
用いた場合のマシンチェック処理プログラムの処理フロ
ーである。最後の図11は、プロセッサP0をマスタプ
ロセッサとして固定せずに、障害レベルに応じてマスタ
プロセッサP0をP1へ切り替えるマシンチェック処理
プログラムの処理フローである。尚、この処理プログラ
ムでは、マスタプロセッサばかりでなくチェッカプロセ
ッサも実行できる。以下、それぞれのマシンチェック処
理プログラムについて詳しく説明する。
【0024】図4は、プロセッサP0をマスタプロセッ
サとして固定した場合のマシンチェック処理プログラム
である。尚、本マシンチェック処理プログラム中、B3
0にてチェックラッチCLのビットが“0”か“1”か
をチェックしているのは、本来プロセッサP0,P1の
出力が一致しているにもかかわらず、マシンチェック報
告回路MCKC自体にハードウェア障害が発生し、マシ
ンチェック信号を誤って出力している場合もあり得るか
らである。B10は、主メモリアドレスT00へプロセ
ッサ状態(PSW,汎用レジスタ)を退避する処理であ
る。これは、処理を継続する際に必要となる。B20
は、マシンチェック報告をプロセッサが受け付けたた
め、マシンチェック報告信号MCK0とMCK1を
“0”にセットするための処理である。すなわち、マシ
ンチェック報告回路MCKCへ“0”をライトすると、
図1のIOライトデータバッファIOWBにそのアドレ
スとデータが格納され、その後に信号線MCKCCを介
してマシンチェック報告回路MCKCがリセットされる。こ
の結果、マシンチェック信号線MCK0とMCK1の信
号レベルは、“0”となる。ただし、ここで実際にMC
KCへライトされたのは、マスタプロセッサP0の出力
データである。B30は、CLビットが“0”であるか
判定することにより、2組のプロセッサの出力データ不
一致が原因で当該マシンチェック処理プログラムが起動
されたことを確認する処理である。CLが“1”の時、
データ不一致障害が発生したことを意味する。もしデー
タ不一致障害が発生した場合は、B40のマシンチェッ
ク報告抑止処理を実行する。この処理はチェックラッチ
CLの状態をそのまま保持し、かつマシンチェック報告
回路MCKCを常にリセットする処理である。この処理
は、図1のCLC信号とMCKCC信号を介して行うこ
とができる。これは、マスタプロセッサとチェッカプロ
セッサの障害要因が異なるとプロセッサの出力データに
不一致が発生し、マシンチェック処理プログラム実行途
中にマシンチェックが強制的に報告されることになり、
その終了まで抑止しておく必要がある。B50は、シス
テム制御LSI内部のリード/ライト可能なレジスタR
EGへ“0”をライトする処理である。これは、以降の
処理でその障害要因判定に使用する。B60は、プロセ
ッサ内部の障害要因レジスタERi(i=0または1)
のTLBDビットが“1”またはCACHEIビットが
“1”であるか判定する処理である。この障害は、処理
の継続が可能な軽度障害である。B70では、軽度障害
を示すため、REGに“1”を加算している。B80で
は、CACHEDビットが“1”であるか判定する処理
で、“1”の時、重度の障害である。B90では、重度
障害を示すため、REGに“2”を加算している。以上
の処理からREGの値により、その障害レベルを判定し
処理の継続または処理の中断を決定する。B100は、
REGが“0”であるか判定する処理で、“0”の時少
なくともマスタプロセッサには障害が検出されなかった
ことを意味する。もし、チェッカプロセッサに障害が発
生していれば、マシンチェック報告要因が明確になるた
め、マスタプロセッサは、処理を継続できる。しかし、
本マシンチェック処理プログラムでは、チェッカプロセ
ッサの障害状況を知る手段が無いため、もしかしたらチ
ェッカプロセッサの障害要因レジスタにも障害検出がさ
れていないかもしれぬ。この場合、原因不明のマシンチ
ェック報告となり、未検出の誤演算障害等がその原因で
ある。このため、REGが“0”の時は、誤りデータの
書き込み防止を実現するためにB110からB150を実行
しシステムリセットしている。B110は、チェックラ
ッチCLをクリアする処理で、B120はプロセッサの
キャッシュを全てフラッシュしている。フラッシュと
は、キャッシュ内容を主メモリへ書き戻した後にそのキ
ャッシュを無効化する処理である。B130は、TLB
を全てパージする処理である。TLBパージとは、TL
Bを無効化する処理である。B140はマシンチェック
報告解除を行っている。これは、この処理は保持状態の
チェックラッチCLを解除し、かつマシンチェック報告
回路MCKCのリセット状態を解除する処理である。こ
の処理は、図1のCLC信号とMCKCC信号を介して
行うことができる。B150は、システムリセットレジ
スタSRSTへリセットコマンドRESETをライトし
ている。この結果、図5のプロセッサリセット処理プロ
グラムを経由して図6のシステムリセット処理プログラ
ムが起動されることになる。次にB160では、REG
が“1”か判定している。“1”の時、軽度の障害と判
断してB170からB200を実行する。まず、B17
0では、キャッシュを全てフラッシュし、B180で
は、TLBを全てパージし、190ではマシンチェック
報告解除を行っている。このように、障害が起きてもそ
のコピーが主メモリに存在する軽度なものは、マスタプ
ロセッサとチェッカプロセッサのキャッシュとTLBの
内容を同じ状態にセットした後に、B200ではプロセ
ッサリセットレジスタPRSTへリセットコマンドRE
SETをライトしている。この結果、図5のプロセッサ
リセット処理プログラムを実行できる。B210では、
REGが“2”または“3”か判定している。もしイエ
スであれば、マスタプロセッサにキャッシュ障害が検出
されたことを意味するため、重度障害である。なぜな
ら、キャッシュにしか存在しない最新データが破壊され
た可能性があるためである。このため、B220では、
マスタプロセッサの障害要因レジスタとその障害アドレ
スを主メモリへ退避した後に、B110からB150を
実行している(システムリセット)。
【0025】以上で、マシンチェック処理プログラムの
詳細な説明を終了する。
【0026】次に、図5のプロセッサリセット処理プロ
グラムを説明する。
【0027】C10は、チェックラッチCLの値が
“1”かどうか判定する処理である。
【0028】“1”の時、図4のマシンチェック処理プ
ログラムから明らかなように、プロセッサリセット処理
により処理継続が可能なケースであり、C20からC5
0を実行する。一方、‘0’の時、重度障害を意味し、
処理を中断すべきケースであるため、C60においてシ
ステムリセット処理(図6)をおこなう。次に、C20
では、チェックラッチCLをクリアし、C30では、プ
ロセッサの初期化処理,C40でキャシュ,TLBの無
効化を行い、プロセッサP0とP1を完全に初期化して
いる。この初期化処理は、プロセッサ自身がプロセッサ
とそのキャッシュとTLBをクリアすることで実現して
いる。次に、C50でメモリアドレスT00に格納されて
いたプロセッサ状態を読みだして、汎用レジスタとプロ
グラムカウンタへセットすることにより処理の継続を実
現している。
【0029】以上、述べたごとく、プロセッサリセット
手段により、プロセッサP0とP1を同期化することが
可能となり、その結果処理の継続が可能となった。
【0030】一方、図6は、システムリセット処理プロ
グラムのフローチャートである。
【0031】D10ではプロセッサの初期化、D20で
はキャッシュの初期化、D30ではシステム制御LSI
の初期化、D40では主メモリの初期化、D50ではI
Oアダプタの初期化を行い、ハードウェアの初期化を完
了している。次にD60では、OSの立ち上げ処理を行
うことでシステムリセット処理を完了している。以上
が、本実施例は、マスタプロセッサをP0に固定した場
合の障害処理動作を実行する本発明の第1の実施例であ
る。表1に本実施例における障害処理動作をまとめる。
【0032】
【表1】
【0033】次に、本発明の第2の実施例について説明
する。
【0034】本実施例では、まず、TLB,キャッシュ
の構成について簡単に説明し、次にキャッシュ状態レジ
スタDREGについて説明し、最後にマシンチェック処
理プログラムを説明する。
【0035】図7は、TLB,キャッシュの構成例を示
したもので、命令キャッシュとデ−タキャッシュは共に
同一構成である。ここで、VADRは仮想アドレス(3
2ビット長)である。VPNは、仮想ページ番号(0ー
19ビット)であり、20から31ビットは、物理アド
レスと一致する。T0,1はTLBであり、C0,1は
キャッシュである。TLBは、仮想ページ部vpnと物
理ページ部ppnの対で構成されており、キャッシュ
は、物理ページ部PPN部とキャッシュの各ラインごと
の状態を示すDビット部とキャッシュの各ラインごとの
有効/無効を示すVビット部と各キャッシュラインから
成るDATA部から構成されている。
【0036】次にVADRを用いてデータdataをキ
ャッシュへライトする手順を説明する。
【0037】TLBのアクセスは、VADRの10から
19ビットを用いて行う。10ビット長であるため、T
LBのエントリ数は、1024エントリとする。この結
果、TLBから唯一つのエントリを選択して、vpnと
ppnを読出してそれぞれデータ線VPNTとPPNT
へ出力する。コンペア回路CMPTLBでは、VADRのV
PNのアドレス線VPNADRとVPNTを比較して、
その結果をAND回路HANDへ出力する。また、VA
DRの18から26ビットに対応したアドレス線CAD
Rを用いてキャッシュC0,1の唯一のエントリを選択
して、そのPPNとデ−タDATAをそれぞれデータ線P
PNCとCB0,1へ出力する。コンペア回路CMPC
ACHEは、データ線PPNTとPPNCを比較して、
その結果をAND回路HANDへ出力する。AND回路
HANDの出力が“1”であれば、キャッシュにヒット
したことを意味する。HIT信号とデータDATAは、
プロセッサへ転送される。プロセッサは、HIT信号が
“1”の時、DATAとdataをマージして再びキャ
ッシュC0,1へライトするとともに、当該キャッシュ
ラインを書き替えたことを示すために当該Dビットを
“1”にセットする。以上で、キャッシュへのdata
書き込みが終了した。このように、キャッシュと主メモ
リ間のデータ不一致が発生したことを示すため、キャッ
シュ内部にDビットをもっている。
【0038】しかし、前述したように、キャッシュやT
LB等のメモリ部は、障害が発生しやすい部位である。
このため、図8に示すキャッシュ状態レジスタDREG
をプロセッサ内部に2重化してもつことにより、信頼性
と処理の継続を出来るだけ可能とすることができる。こ
こで、DECはキャッシュアクセスのためのアドレス線
CADRをデコードするデコータ回路、D0からDnは
データキャッシュの各エントリに対応するDビット情報
である。ただし、この例では、キャッシュのエントリと
一対一の関係でDREGの各ビットを対応させたが、キ
ャッシュ状態レジスタDREGが大きくなるため、キャ
ッシュの複数エントリに対応してDREGの1ビットを対応
させるDREG構成も考えられる。この時、複数エント
リの一つでもDビットが“1”であれば、DREGの対
応するDビットは“1”に設定する必要がある。
【0039】以上述べたキャッシュ状態レジスタDRE
Gを用いたマシンチェック報告プログラムを図9に示
す。処理フローの詳細は、図4と類似しているため、簡
単に説明する。ここで、E10は主メモリアドレスT0
0へPSWと汎用レジスタを退避する。これは、処理が
継続可能である場合に参照される。E20はマシンチェ
ック報告回路MCKCのクリアをしている。E30はチ
ェックラッチCLが“0”か判定し、もし、YESであ
ればE140からE180を実行してシステムリセット
する。もし、NOであればE40にてマシンチェック報
告抑止を行い、E50にてREGをクリアする。次にE
60にてプロセッサの障害要因レジスタERi(i=0
または1)のTLBDビットが“1”またはCACHE
Iビットが“1”であればE70にてREGに“1”を
加算し、次にE80を実行する。E80ではERiのC
ACHEDビットが“1”か判定し、YESであればE
90にてNへ障害アドレスの18から26ビットをセッ
トし、E100を実行する。E100では、DREGの
Nビットが“0”か判定する。もし、YESであればR
EGに“2”を加算してE130を実行し、NOであれ
ばREGに“4”を加算してE130を実行する。E1
30では、REGが“0”か判定する。もし、YESで
あれば、E140にてCLをクリアし、E150にてキ
ャッシュを全てフラッシュし、E160にてTLBを全
てパージし、E170にてマシンチェック報告解除を行
い、E180にてシステムリセットレジスタSRSTへ
リセットコマンドRESETをライトしている。一方、
NOであれば、E190にてREGが“1”または“2”
または“3”か判定する。もし、YESであれば、軽度
の障害ケースであるため、E200にてキャッシュを全
てフラッシュし、E210にてTLBを全てパージし、
E220にてマシンチェック報告解除を行い、E230
にてプロセッサリセットレジスタPRSTへリセットコ
マンドRESETをライトしている。一方、もしNOで
あれば、E240にてREGが“4”または“5”か判
定している。もし、YESであればE250にて主メモ
リMMへ障害要因レジスタERiとキャッシュ状態レジ
スタDREG、および障害アドレスをライトした後に、
E140からE180を実行する。一方、もしNOなら
ばE140からE180を実行する。
【0040】以上で、キャッシュ状態レジスタDREG
に基づくマスタプロセッサP0固定方式の障害処理動作
の説明を終了する。本実施例における障害処理動作を表
2にまとめる。
【0041】
【表2】
【0042】尚、上記表2中、CACHE(c)は、キ
ャッシュライン状態が主メモリと一致したクリーン状態
を示し、CACHE(d)は、キャッシュライン状態が
主メモリと一致しないダーティ状態を示す。
【0043】このように、キャッシュ状態レジスタDR
EGを参照することにより、例えデータキャッシュ中に
障害が発生した場合であっても、それがクリーン状態の
ものであれば、プロセッサをリセットするのみで処理を
継続することが可能となり、処理を継続できるケースが
増える。
【0044】次に、本発明の第3の実施例を示す。
【0045】本実施例は、マスタプロセッサを障害レベ
ルに応じて、P0からP1へ切り替える方式である。図
10にそのハードウェア構成と、図11にその中心の処
理を行うマシンチェック処理プログラムの処理フローを
示す。
【0046】図10のハードウェア構成は、システム制
御LSI(SC)内部に2組のバッファBUF0とBU
F1が追加されたものである。このバッファへ2組のプ
ロセッサの出力データをそれぞれ保持することにより、
マスタプロセッサをP0からP1へ切り替えても出力デ
ータの喪失を防ぐことができる。これは、キャッシュの
フラッシュによりデータが出力されると、当該キャッシ
ュラインは無効化されるため、どうしても当該キャッシ
ュラインのデータをBUF0,BUF1に保持する必要
があるためである。他の部位は、図1と同様なので、説
明を省略する。図11は、マスタプロセッサをP0から
P1へ切り替え可能なマシンチェック処理プログラムで
ある。
【0047】F10では変数Tで指示されたメモリアド
レスへPSWと汎用レジスタを退避する。尚、ここで変
数Tには予めマスタプロセッサP0のプロセッサ状態を
退避するメモリアドレスT00がセットされているもの
とする。一方、チェッカプロセッサP1のプロセッサ状
態を退避するメモリアドレスはT01として以下処理フ
ローを説明する。メモリアドレスTへプロセッサ状態
(PSW,汎用レジスタ)を格納し、F20ではマシンチ
ェック報告回路MCKCをクリアしている。次に、F3
0でチェックラッチCLが“0”か判定している。も
し、YESであればG10からG60を実行してシステ
ムリセットを行う。また、もしNOであればF40のマ
シンチェック報告抑止を行った後に、F50にて障害要
因レジスタERi(i=0または1)のTLBDビット
が“1”か、またはCACHEIビットが“1”か判定
している。もし、YESであればREGに“1”を加算
(F60)してF70を実行する。また、もしNOであ
ればF70を実行する。F70では、CACHEDビッ
トが“1”か判定している。もし、YESであればRE
Gに“2”を加算(F80)してF90を実行する。ま
た、もしNOであればF90を実行する。次に、障害要
因の判定処理が行われる。まずF90では、REGが
“0”か判定している。もし、YESであればREGに
“10”をセット(F100)し、変数Tにチェッカプ
ロセッサP1のプロセッサ状態を退避するメモリアドレ
スT01をセットした(F110)後にH10とH20
を実行する。H10はマシンチェック報告解除で、H2
0はマシンチェック報告を強制的に発生させ、かつマス
タチェッカ制御回路に対してセレクタWSELを切り替
える処理をしている。この結果、プロセッサP0とP1
は再度図3の処理を実行した後に、再度図11のマシン
チェック処理プログラムを実行することになる。ここ
で、マシンチェック処理プログラムが実行されるプロセ
ッサはセレクタWSELにて切り替られたチェッカプロセッ
サP1である。このように、障害要因が未検出であると
き、チェッカプロセッサP1に障害要因がロギングされ
ているか判定することが可能である点が特徴である。ま
た、もしF90の判定にて、NOであればF120を実
行する。F120では、REGが“1”か判定してい
る。もし、YESであれば、I10からI50を実行し
て、プロセッサリセットを行っている。また、もしNO
であればF140を実行する。F140では、REGの
値が“2”または“3”か判定している。もし、YES
であればREGに“100”をセット(F150)し、変
数TにチェッカプロセッサP1のプロセッサ状態を退避
するメモリアドレスT01をセットした(F160)後
にH10とH20を実行して、セレクタWSELにより
チェッカプロセッサに切り替えた上で、再度本マシンチ
ェック処理プログラムを実行する。また、もしNOであ
ればF170を実行する。F170では、REGが“1
0”を判定する。もし、YESであれば、2組のプロセ
ッサP0,P1ともに障害未検出であるため、誤りデー
タの書き込みを防止するためシステムリセット(G10
からG60)する。また、もしNOであればF180を
実行する。F180では、REGが“11”または“1
2”または“13”であるか判定している。もし、YE
Sであれば、マスタチェッカ制御回路MCCへ“0”を
セットしてセレクタ回路WSELを切り替え、再びマス
タプロセッサP0へ変更(F190)した後に、I10
からI50を実行することによりプロセッサリセットす
る。また、NOであればF200を実行する。F200
では、REGが“100”または“101”か判定して
いる。もし、YESであれば、チェック対象のプロセッ
サをチェッカプロセッサP1にした状態のままI10か
らI50を実行することにより、プロセッサリセットす
る。また、もしNOであれば、F210を実行する。F
210では、REGが“102”または“103”か判
定している。もし、YESであればプロセッサP0とP
1共に重度の障害が発生していることを意味するため、
F220にて主メモリMMへERi(i=0または
1)、障害アドレスを格納した後に、G10からG60
を実行することにより、システムリセットする。一方、
もし、NOであれば、G10からG60を実行すること
により、システムリセットする。プロセッサリセット処
理とシステムリセット処理は、それぞれ図5と図6に示
したとおりである。表3にプロセッサ切り替え方式の障
害処理動作をまとめて示す。
【0048】
【表3】
【0049】プロセッサ切り替え方式は、チェッカプロ
セッサの障害要因判定ができるため、他方式と異なり、
P0が障害未検出のケースでも、P1に軽度の障害要因
が検出されていれば、プロセッサリセット可能(処理継
続可能)となっている。
【0050】なお、本第3の実施例では、マスタとチェ
ッカの両方のプロセッサの障害要因を判定した上で、プ
ロセッサリセット又はシステムリセットを行う例を説明
したが、図11において、例えば、F200でREGが
“100”の場合には、マスタプロセッサに重度の障害
が発生し、チェッカプロセッサには何ら障害が発生して
いない場合を示すものであるから、マスタプロセッサを
切り離し、チェッカプロセッサのみの単一プロセッサと
して処理を継続させてもよい。具体的には図10におい
て、BUF1を選択しチェッカプロセッサの出力データ
を選択するようにすることにより、単一プロセッサとし
て処理を継続することが出来る。同様に、図11のF1
20において、チェッカプロセッサに切り替えられた後
に再度、REGが1の場合には、マスタプロセッサに軽
度の障害が発生しており、チェッカプロセッサには何ら
障害が発生してないことを示すものであるから、上記同
様チェッカプロセッサのみの単一プロセッサ処理を行う
ことが出来る。
【0051】以上でマスタプロセッサP0切り替え方式
の障害処理動作の説明を終了する。最後にキャッシュ状
態レジスタとマスタプロセッサ切り替え方式を組み合わ
せた場合の障害処理動作を表4に示す。
【0052】
【表4】
【0053】このように表4からわかるように、キャッ
シュ状態レジスタとプロセッサ切り替えの2方式を組み
合わせることにより、処理継続が可能なケースが増えて
いることがわかる。
【0054】図12に、システム制御LSIが3差路構
成である場合のハードウェア構成を示す。図1と異なる
点は、2つのライトデータバッファMWBとIOWBが
一つのバッファWBで構成され、システムバスSBと接
続されている。主メモリMMは、システムバスSBに接
続されている。また、リードデータセレクタ回路はチェ
ックラッチCLの出力データとシステムバスのデータを
選択する2対1セレクタ回路である。その他の部分につ
いては図1と同一構成なので、説明は省略する。
【0055】
【発明の効果】本発明によれば、プロセッサの2重化に
よりデータの誤り検出率向上ばかりでなく、プロセッサ
の障害レベルを極め細かく分類することにより、処理の
継続を可能とすることができる。また、プロセッサをn
重化(n=2m+1,m=1,2,..)に比較してコ
ストパフォーマンスが良いという効果がある。
【0056】障害発生によりマスタプロセッサとチェッ
カプロセッサの同期実行がズレてしまった場合でも、2
組のキャッシュ,TLB,プロセッサを全てリセットす
る手段により、同一状態に設定することが可能となり、
かつ2組のプロセッサを完全に同期して処理の継続実行
ができる。また、データ不一致検出かつ2組のプロセッ
サに障害要因が検出されていない場合には、誤りデータ
書き込み防止を実現できる。
【0057】キャッシュ状態レジスタをプロセッサに内
蔵することにより、キャッシュ障害が発生しても、軽度
障害か重度障害か判定し、軽度障害の場合には処理を継
続することができる。
【0058】2組のバッファをシステム制御LSI内部
に用意することにより、プロセッサの出力データを喪失
することがないため、マスタプロセッサを他プロセッサ
へ切り替えても、処理を継続することが可能となった。
【図面の簡単な説明】
【図1】本発明の一実施例のハードウェア全体構成図で
ある。
【図2】本発明の一実施例のプロセッサの障害要因レジ
スタ構成図である。
【図3】プロセッサへマシンチェック信号が入力された
時に、プロセッサが最初に行う処理を示した処理フロー
である。
【図4】本発明の一実施例の請求項1から4に関わるマ
シンチェック処理プログラムの処理フローである。
【図5】本発明の一実施例のプロセッサリセット処理プ
ログラムの処理フローである。
【図6】本発明の一実施例のシステムリセット処理プロ
グラムの処理フローである。
【図7】本発明の一実施例のキャッシュとTLB構成図
である。
【図8】本発明の一実施例のキャッシュ状態レジスタ構
成図である。
【図9】本発明の一実施例の請求項5から6に関わるマ
シンチェック処理プログラムの処理フローである。
【図10】本発明の一実施例の請求項7から8に関わる
ハードウェア全体構成図である。
【図11】本発明の一実施例の請求項7から8に関わる
マシンチェック処理プログラムの処理フローである。
【図12】本発明の一実施例の請求項2,4,6,8に
関わるハードウェア全体構成図である。
【図13】プロセッサ内部の障害要因を検出する回路構
成図である。
【符号の説明】
ER0,1…障害要因レジスタ、MCC…プロセッサ選
択レジスタ、WSEL…プロセッサバス選択セレクタ回
路、CMP…データ不一致検出コンペア回路、CL…チ
ェックラッチ、MCKC…マシンチェック報告回路、P
RST…プロセッサリセットレジスタ、SRST…シス
テムリセットレジスタ、BUF0,1…バッファ。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 大黒 浩 神奈川県海老市下今泉810番地 株式会 社 日立製作所 オフィスシステム事業 部内 (72)発明者 中三川 哲明 茨城県日立市大みか町七丁目1番1号 株式会社 日立製作所 日立研究所内 (72)発明者 森岡 道雄 茨城県日立市大みか町七丁目1番1号 株式会社 日立製作所 日立研究所内 (56)参考文献 特開 昭49−55248(JP,A) 特開 平2−202638(JP,A) 特開 平1−318129(JP,A) 特開 昭62−296239(JP,A) 実開 平2−2748(JP,U) (58)調査した分野(Int.Cl.7,DB名) G06F 11/16 - 11/20 G06F 12/08 - 12/10 G06F 15/16 - 15/177

Claims (5)

    (57)【特許請求の範囲】
  1. 【請求項1】主メモリ中のデータの一部を記憶するキャ
    ッシュメモリを有するプロセッサを2組設け2重化構成
    とし、前記2組のプロセッサとバスを介して接続され、
    当該2組のプロセッサの出力を比較する比較手段を有す
    るシステム制御LSIを有するコンピュータシステムで
    あって、 前記比較手段による出力の不一致検出に応じて、前記2
    組のプロセッサのうちいずれか一方又は両方のプロセッ
    サ内で発生した障害が、前記キャッシュメモリにしか存
    在しない最新データが破壊された可能性の有る重度障害
    か、最新データが破壊された可能性の無い軽度障害かを
    判定する障害要因判定手段と、 前記障害要因判定手段の判定結果に基づいて前記2組の
    プロセッサのうちいずれか一方または両方による処理の
    継続が可能であるか否か判定し、前記処理の継続が可能
    な場合は障害から復旧する処理継続判定復旧手段を設け
    たことを特徴とするコンピュータシステム。
  2. 【請求項2】請求項1記載のコンピュータシステムにお
    いて、 前記障害要因判定手段により、一方のプロセッサに発生
    する障害が重度障害と判定され、他方のプロセッサに発
    生する障害が重度障害と判定されなかった場合、前記処
    理継続判定復旧手段によって、前記他方のプロセッサの
    みにて処理を継続させることを特徴とするコンピュータ
    システム。
  3. 【請求項3】請求項1記載のコンピュータシステムにお
    いて、 前記システム制御LSIは前記2組のプロセッサを同時
    にリセットするプロセッサリセット手段を有し、前記処
    理継続判定復旧手段により、前記2組のプロセッサのう
    ち両方による処理の継続が可能と判定された場合、主メ
    モリを含むシステム全体を初期化することなく、前記プ
    ロセッサリセット手段により2組のプロセッサのみを初
    期化して処理を継続させることを特徴とするコンピュー
    タシステム。
  4. 【請求項4】請求項1記載のコンピュータシステムにお
    いて、 前記キャッシュメモリは命令キャッシュメモリ及びデー
    タキャッシュメモリを有し、 前記プロセッサはデータキャッシュ障害の発生を示す障
    害要因レジスタを有し、 前記障害要因判定手段は前記比較手段による出力の不一
    致検出後、前記障害要因レジスタがデータキャッシュ障
    害を示している場合に重度障害であると判定することを
    特徴とするコンピュータシステム。
  5. 【請求項5】請求項4記載のコンピュータシステムにお
    いて、 前記プロセッサはデータキャッシュに含まれる最新デー
    タが主メモリと不一致な状態になっていることを示すキ
    ャッシュ状態レジスタを有し、 前記障害要因判定手段は前記比較手段による出力の不一
    致検出後、前記障害要因レジスタがデータキャッシュ障
    害を示している場合、且つ前記キャッシュ状態レジスタ
    が主メモリと不一致な状態を示している場合に重度障害
    であると判定することを特徴とするコンピュータシステ
    ム。
JP05677793A 1992-09-17 1993-03-17 高信頼型計算機用システム制御lsi及びそれを用いたコンピュータシステム Expired - Fee Related JP3156429B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP05677793A JP3156429B2 (ja) 1993-03-17 1993-03-17 高信頼型計算機用システム制御lsi及びそれを用いたコンピュータシステム
US08/686,486 US5748873A (en) 1992-09-17 1996-07-26 Fault recovering system provided in highly reliable computer system having duplicated processors

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP05677793A JP3156429B2 (ja) 1993-03-17 1993-03-17 高信頼型計算機用システム制御lsi及びそれを用いたコンピュータシステム

Publications (2)

Publication Number Publication Date
JPH06266574A JPH06266574A (ja) 1994-09-22
JP3156429B2 true JP3156429B2 (ja) 2001-04-16

Family

ID=13036879

Family Applications (1)

Application Number Title Priority Date Filing Date
JP05677793A Expired - Fee Related JP3156429B2 (ja) 1992-09-17 1993-03-17 高信頼型計算機用システム制御lsi及びそれを用いたコンピュータシステム

Country Status (1)

Country Link
JP (1) JP3156429B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4117684B2 (ja) 2004-12-20 2008-07-16 日本電気株式会社 フォルトトレラント・二重化コンピュータシステムとその制御方法
US7747932B2 (en) * 2005-06-30 2010-06-29 Intel Corporation Reducing the uncorrectable error rate in a lockstepped dual-modular redundancy system
DE102005037246A1 (de) * 2005-08-08 2007-02-15 Robert Bosch Gmbh Verfahren und Vorrichtung zur Steuerung eines Rechnersystems mit wenigstens zwei Ausführungseinheiten und einer Vergleichseinheit
JP5718600B2 (ja) * 2010-09-10 2015-05-13 日本電気通信システム株式会社 情報処理システム、および、情報処理方法

Also Published As

Publication number Publication date
JPH06266574A (ja) 1994-09-22

Similar Documents

Publication Publication Date Title
US5748873A (en) Fault recovering system provided in highly reliable computer system having duplicated processors
TWI236620B (en) On-die mechanism for high-reliability processor
US7257682B2 (en) Synchronizing memory copy operations with memory accesses
US5504859A (en) Data processor with enhanced error recovery
US7370232B2 (en) Method and apparatus for recovery from loss of lock step
JP2955469B2 (ja) 二重マイクロプロセッサ型処理システム用のプロセッサインターフェイスチップ
US5233616A (en) Write-back cache with ECC protection
US5790775A (en) Host transparent storage controller failover/failback of SCSI targets and associated units
US7415633B2 (en) Method and apparatus for preventing and recovering from TLB corruption by soft error
US7512772B2 (en) Soft error handling in microprocessors
US20030074601A1 (en) Method of correcting a machine check error
US7631214B2 (en) Failover processing in multi-tier distributed data-handling systems
US20070282967A1 (en) Method and system of a persistent memory
US7962782B2 (en) Modifying connection records
JP4132322B2 (ja) 記憶制御装置およびその制御方法
JP4486921B2 (ja) ストレージ仮想化装置およびそれを用いたコンピュータシステム
JP3156429B2 (ja) 高信頼型計算機用システム制御lsi及びそれを用いたコンピュータシステム
US6950907B2 (en) Enhanced protection for memory modification tracking with redundant dirty indicators
JP2842809B2 (ja) キャッシュ索引の障害訂正装置
US6584580B1 (en) Processor and multiprocessor system
US10289332B2 (en) Apparatus and method for increasing resilience to faults
US6981172B2 (en) Protection for memory modification tracking
JP3434735B2 (ja) 情報処理システム及びそれに用いる障害処理方式
JPH0981464A (ja) 計算機システムのメモリ障害回復方法および回復システム
JP2665113B2 (ja) 計算機システムと主メモリ制御装置

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees