JP2870202B2 - プロセッサ間相互監視方法及びその装置 - Google Patents

プロセッサ間相互監視方法及びその装置

Info

Publication number
JP2870202B2
JP2870202B2 JP3036275A JP3627591A JP2870202B2 JP 2870202 B2 JP2870202 B2 JP 2870202B2 JP 3036275 A JP3036275 A JP 3036275A JP 3627591 A JP3627591 A JP 3627591A JP 2870202 B2 JP2870202 B2 JP 2870202B2
Authority
JP
Japan
Prior art keywords
processor
common memory
data
processors
memory
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
JP3036275A
Other languages
English (en)
Other versions
JPH04275664A (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.)
Fuji Electric Co Ltd
Original Assignee
Fuji Electric Co 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 Fuji Electric Co Ltd filed Critical Fuji Electric Co Ltd
Priority to JP3036275A priority Critical patent/JP2870202B2/ja
Publication of JPH04275664A publication Critical patent/JPH04275664A/ja
Application granted granted Critical
Publication of JP2870202B2 publication Critical patent/JP2870202B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)
  • Multi Processors (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、複数のプロセッサから
なるコンピュータシステムにおけるプロセッサ相互間の
監視方法及びその装置に関する。
【0002】
【従来の技術】複数のプロセッサからなるコンピュータ
システムでは、通常個々のプロセッサが自己診断機能を
有しており、自己の異常を検出したときには、異常の発
生を他のプロセッサに通知するようになっている。
【0003】この自己診断機能により、例えばある機械
を制御するコンピュータシステムにおいて、制御を行っ
ているプロセッサが自己の異常を検出すると、他のプロ
セッサに異常の発生が通知され、正常に動作している他
のプロセッサが機械を安全に停止させることができる。
【0004】しかしながら、例えばプロセッサ自身が動
作を停止してしまうような故障では、当然のことながら
自己診断機能も働かなくなってしまうので、他のプロセ
ッサは異常の発生を知ることができないという問題点が
あった。
【0005】そこで、従来、複数のプロセッサ間で相互
に動作の監視を行い、1つのプロセッサが故障して自己
診断機能が動作しない場合でも、他のプロセッサがその
プロセッサの異常を検出できるようにしている。
【0006】以下、少なくとも2個のプロセッサA、B
と、それらのプロセッサによりアクセスされる共通メモ
リC、Dとで構成されるマルチプロセッサシステムを例
にとり、従来の相互監視方法を説明する。
【0007】図11〜図15は、従来の相互監視方法に
おけるプロセッサA及びプロセッサBの処理内容を示す
フローチャートである。このプロセッサシステムでは、
プロセッサAにおいて周期t0 、t1 毎に相互監視の為
のプログラムA−1、A−2が実行され、プロセッサB
において周期t 2 、t3 毎に相互監視の為のプログラム
B−1、B−2が実行される。
【0008】先ず、図11及び図12を参照してプロセ
ッサA側での処理を説明する。プロセッサAでは、周期
0 毎に図11に示すプログラムA−1が起動される。
このプログラムA−1では、図11のステップS1に示
すように共通メモリCを「0」にクリアする。
【0009】さらに、プロセッサAでは、周期t1 毎に
図12に示すプログラムA−2が起動される。このプロ
グラムA−2では、ステップS2で共通メモリCのデー
タを読み出し、次のステップS3で今回読み出したデー
タと前回読み出したデータとが一致するか否かを判別す
る。
【0010】データが一致しないときは、共通メモリC
が、後述するプロセッサB側のプログラムB−1により
「1」づつインクリメントされている場合であり、この
場合には、ステップS4でプロセッサBが正常に動作し
ているものと判断して、処理を終了させる。
【0011】他方、ステップS3の判別で今回読み出し
たデータと前回読み出したデータとが一致した場合には
ステップ5で、プロセッサBに何らかの異常が発生して
共通メモリCのデータがインクリメントされなかったも
のと判断して、処理を終了させる。
【0012】次に、プロセッサB側での処理を図13及
び図14を参照して説明する。プロセッサBでは、周期
2 毎に図13に示すプログラムB−1が実行される。
このプログラムB−1では、図13のステップS6で共
通メモリCのデータを読み出し、次のステップS7でそ
の値をインクリメントする。さらに、ステップS8でそ
のインクリメントしたデータを共通メモリCに書き込
む。
【0013】また、プロセッサBでは、周期t3 毎に図
14に示すプログラムB−2が実行される。このプログ
ラムB−2では、図14のステップS9で共通メモリC
のデータを読み出し、次のステップS10でそのデータ
が規定値未満か否かを判別する。
【0014】共通メモリCのデータが規定値未満のとき
は、上述したプロセッサB側のプログラムB−1により
「1」づつインクリメントされる共通メモリCの内容
が、プロセッサA側のプログラムA−1により周期t0
毎にクリアされている場合である。
【0015】この場合には、ステップS11でプロセッ
サAが正常動作をしているものと判断して、処理を終了
させる。他方、ステップS10の判別で共通メモリCの
データが規定値以上のときは、プログラムA−1が実行
されず共通メモリCがクリアされない状態で、プログラ
ムB−1により共通メモリCのデータがインクリメント
され規定値以上となった場合である。
【0016】この場合には、ステップS12でプロセッ
サAに異常が発生したものと判断し、さらに次のステッ
プS13で共通メモリCに上記規定値を書き込み、処理
を終了させる。
【0017】尚、プログラムB−1の起動周期t2 とプ
ログラムB−2の起動周期t3 とが等しいときには、そ
れらのプログラムを1つにまとめて、図15に示すプロ
グラムB−0を作成することができる。
【0018】このプログラムB−0では、ステップS1
4で共通メモリCのデータを読み出し、ステップS15
で読み出したデータが規定値未満か否かを判別する。読
み出したデータが規定値未満であれば、ステップS16
でプロセッサAは正常に動作しているものと判定し、次
のステップS17で共通メモリCのデータを「1」イン
クリメントし、さらにステップS18でそのデータを共
通メモリCに書き込んだ後、処理を終了する。
【0019】他方、共通メモリCのデータが規定値以上
場合には、ステップS19でプロセッサAに異常が発
生したものと判定し、次のステップS20で規定値をセ
ットし、さらにステップS18でその規定値を共通メモ
リCに書き込んだ後、処理を終了する。
【0020】次に、プロセッサA、Bが正常なとき、あ
るいはプロセッサA又はBに異常が発生したときのプロ
セッサの動作を、図16〜図18の動作タイムチャート
を参照して説明する。
【0021】プロセッサA、Bが正常に動作していると
きには、図16の動作タイムチャートに示すように、プ
ログラムB−1により周期t2 毎に共通メモリCのデー
タが「1」づつ増加し、さらに、プログラムA−1によ
り周期t0 毎に共通メモリCの内容がクリアされる。
【0022】このときプロセッサAにおいて周期t1
に実行されるプログラムA−2により、共通メモリCの
値が変化していることが検出できるので、プロセッサB
が正常に動作しているものと判定できる。
【0023】また、図16には示していないが、プロセ
ッサBにおいて周期t3 毎に実行されるプログラムB−
2により、共通メモリCのデータが規定値未満であるこ
とが検出できるので、プロセッサAが正常に動作してい
るものと判定できる。
【0024】次に、プロセッサAに異常が発生した場合
の動作を、図17の動作タイムチャートを参照して説明
する。プロセッサAに異常が発生すると、プロセッサB
側のプログラムB−1により共通メモリCの内容はイン
クリメントされるが、プログラムA−1により共通メモ
リCの内容が「0」にクリアされなくなるので、図17
に示すように共通メモリCの値が次第に増大していく。
【0025】その結果、プロセッサBにおいて周期t3
毎に実行されるプログラムB−2により、共通メモリC
の値が規定値以上であることが検出され、プロセッサA
は異常と判定される。
【0026】次に、プロセッサBに異常が発生した場合
の動作を、図18の動作タイムチャート参照して説明す
る。プロセッサBに異常が発生すると、上述したプログ
ラムB−1により共通メモリCの値がインクリメントさ
れなくなり、図18に示すように共通メモリCの値が一
定値となる。
【0027】その結果、プロセッサAで周期t1 毎に実
行されるプログラムA−1により、共通メモリCから今
回読み出したデータと前回読み出したデータとの一致が
検出され、プロセッサBは異常と判定される。
【0028】なお、プロセッサBに異常が発生した場合
でも、プロセッサAにより共通メモリCがクリアされる
前後に共通メモリCのデータを読み出して比較したとき
には、今回のデータと前回のデータが一致しないことに
なるので、プロセッサBが正常と判断される場合が起こ
る。
【0029】この場合でも、プログラムA−2での共通
メモリCのデータの比較を複数回繰り返すようにすれ
ば、プロセッサBに異常が発生している場合には、クリ
アした後の共通メモリCの内容が一定値「0」となるの
で、プロセッサBの異常を確実に検出することができ
る。
【0030】なお、各プログラムの起動周期t0
1 、t2 は、次のような関係を満たす必要がある。 t0 >t2 1 >t2 1 ≠n×t0 (n=1、2、・・・) の条件は、正常時に共通メモリCのデータが増えてい
くための条件であり、の条件との条件は、正常時に
共通メモリCの前回の読み出しデータと今回の読み出し
データが一致しない為の条件である。
【0031】
【発明が解決しようとする課題】しかしながら、上述し
た従来の相互監視方法では、プロセッサAとプロセッサ
Bとが非同期で動作している場合に、例えば図19に示
すタイミングでプログラムが起動すると問題が生じる。
【0032】図19に示すように、プロセッサBが共通
メモリCのデータを読み出した直後に、プロセッサAが
共通メモリCを「0」にクリアした場合には、次にプロ
グラムB−1により、読み出したデータがインクリメン
トされ、そのインクリメントされたデータが共通メモリ
Cに書き込まれる。
【0033】この結果、共通メモリCのデータはクリア
されずデータが増え続け、規定値以上となった時点でプ
ログラムB−2によりプロセッサAに異常が発生したも
のと誤って判定されてしまう。
【0034】本発明の目的は、複数のプロセッサからな
るシステムにおいて、プロセッサの動作状態を正確に検
出できるプロセッサ間の相互監視方法及びその装置を提
供することである。
【0035】
【課題を解決するための手段】図1は、本発明の原理説
明図である。複数のプロセッサとその複数のプロセッサ
からアクセス可能な共通メモリC、Dとからなるシステ
に用いられるプロセッサ間相互監視方法であって、複
数のプロセッサの中で互いに動作を監視しているプロセ
ッサA、Bの一方のプロセッサAが、周期t0 毎に共通
メモリDにメッセージを書き込む。さらに、周期t1
に共通メモリCのデータを読み出し、今回読み出したデ
ータと前回読み出したデータとを比較し、データが不一
致であればプロセッサBは正常と判定し、データが一致
すればプロセッサBは異常と判定する。
【0036】他方のプロセッサBが、周期t 1 よりも短
周期t2 毎に共通メモリDのメッセージを読み出し、
プロセッサAからのメッセージの有無を判断し、メッセ
ージが存在する場合には共通メモリCをクリア又は所定
値を設定し、メッセージが存在しない場合には共通メモ
リCのデータをインクリメント又はディクリメントす
る。さらに、共通メモリCのデータと基準値とを比較
し、データが基準値以内であればプロセッサAは正常と
判定し、基準値を越えたならプロセッサAは異常と判定
する
【0037】
【作用】本発明の相互監視方法では、一方のプロセッサ
Aが共通メモリDに所定のメッセージを書き込んだか否
かにより、他方のプロセッサBが共通メモリCのデータ
をクリア、あるいはインクリメント(又はディクリメン
ト)するようにした。
【0038】従って、従来のようにプログラムの起動タ
イミングによって、例えば共通メモリCのデータをイン
クリメント(又はディクリメント)している途中で、そ
の共通メモリCの内容がクリアされるということが発生
せず、プロセッサが正常に動作しているのに、誤って異
常と判定することを防止できる。
【0039】
【実施例】以下、本発明の実施例を図面を参照しながら
説明する。図2は、本発明の第1実施例のプロセッサシ
ステムの構成図である。プロセッサカードA(例えば、
プロセッサAが搭載されたボード)と、N枚のプロセッ
サカードB〔以下、このカード上の任意のプロセッサを
プロセッサBM (M=1、2・・・N)と呼ぶ〕と、そ
れらのプロセッサから共通にアクセスされる共通メモリ
カードXとは、それぞれシステムバスEを介して接続さ
れている。
【0040】プロセッサカードAとプロセッサカードB
とは、共通メモリカードXを経由して互いのデータを受
け渡しする。共通メモリカードX内には多数のデータ格
納領域があり、このデータ格納領域には、プロセッサA
によりメッセージが書き込まれ、プロセッサBM により
そのメッセージが読み出される共通メモリDと、プロセ
ッサBM によりクリア又はインクリメント(又はディク
リメント)され、プロセッサAによりその内容が読み出
されるN個の共通メモリCM (M=1、2、3・・・
N)等が設けられている。
【0041】なお、この実施例では、N個のプロセッサ
Bの異常の有無を検出する為にN個の共通メモリCM
設けている。次に、第1実施例のプロセッサA及びBM
で実行される相互監視プログラムについて、図3〜図6
のフローチャートを参照しながら説明する。
【0042】図3は、プロセッサAで周期t0 毎に実行
されるプログラムA−1のフローチャートである。この
プログラムA−1は、共通メモリDにメッセージとして
「0」又は「1」を書き込むプログラムである。
【0043】先ず、図3のステップS21で、前回共通
メモリDにメッセージとして「0」を書き込んだか否を
判別する。前回共通メモリDに「0」を書き込んでいる
場合には、ステップS22に進み、今回は共通メモリD
にメッセージとして「1」を書き込む。
【0044】一方、前回共通メモリDに「1」を書き込
んでいる場合には、ステップS23に進み今回は、共通
メモリDにメッセージとして「0」を書き込む。ここ
で、プログラムA−1において、共通メモリDにメッセ
ージとして「0」と「1」を交互に書き込んでいるの
は、プロセッサBM 側でプロセッサAが正常に動作して
いるか否かを判定できるようにする為である。
【0045】次に、図4は、プロセッサAで周期t1
に実行されるプログラムA−2のフローチャートであ
る。このプログラムA−2は、共通メモリCM から今回
読み出したデータと、前回読み出したデータとを比較す
ることで、プロセッサBM の異常を検出する処理であ
る。
【0046】先ず、図4のステップS24で共通メモリ
M のデータを読み出す。次にステップS25で今回読
み出した共通メモリCM のデータと前回読み出したデー
タとを比較し、両者が一致するか否かを判別する。
【0047】データが一致しない場合は、ステップS2
6でプロセッサBMは正常に動作しているものと判断
し、処理を終了する。他方、データが一致する場合は、
プロセッサBM において後述するプログラムBM −1が
実行されず、共通メモリCM の値がインクリメントされ
ない場合であり、この場合にはステップS27でプロセ
ッサBM に異常が発生したものと判断し、処理を終了す
る。
【0048】次に図5は、プロセッサBM で周期t2
に実行されるプログラムBM −1のフローチャートであ
る。このプログラムBM −1は、共通メモリDの値が前
回の値と同じか否かにより、共通メモリCM をクリア又
はインクリメントする処理である。
【0049】先ず、図5のステップS28で共通メモリ
Dの内容を読み出す。そして、ステップS29で今回読
み出した共通メモリDの内容と、前回読み出した共通メ
モリDの内容とを比較し、両者が一致するか否かを判別
する。
【0050】共通メモリDの内容が一致しないときは、
プロセッサAにより前述したプログラムA−1が実行さ
れ、共通メモリDの値が「0」から「1」に、あるいは
「1」から「0」に周期t0 毎に交互に書き換えられて
いる場合であり、この場合には、ステップS30に進み
共通メモリCM を「0」にクリアして、処理を終了す
る。
【0051】他方、共通メモリDの値が一致する場合
は、時間t0 の間プログラムA−1が実行されず、共通
メモリDの値が書き換えられていない場合であり、この
場合には、ステップS31に進み共通メモリCM
「1」インクリメントして、処理を終了する。
【0052】次に図6は、プロセッサBM で周期t3
に実行されるプログラムBM ー2のフローチャートであ
る。このプログラムBM −2は、共通メモリCM のデー
タを規定値(基準値)と比較することで、プロセッサA
の異常を検出する処理である。
【0053】先ず、図6のステップS32で共通メモリ
M のデータを読み出す。次に、ステップS33で、読
み出した共通メモリCM のデータが規定値未満か否かを
判別する。
【0054】共通メモリCM のデータが規定値未満であ
ったときには、プロセッサAにより周期t0 毎に共通メ
モリDの内容が書き換えられ、その結果に基づいてプロ
グラムBM −1により一定周期t2毎に共通メモリCM
が「0」にクリアされている場合である。
【0055】この場合には、ステップS34でプロセッ
サAが正常に動作しているものと判断して、処理を終了
する。他方、共通メモリCM のデータが規定値以上であ
ったときには、プログラムA−1により共通メモリDの
値が書き換えられていない為に、プログラムBM −1に
より共通メモリCM がインクリメントされ規定値以上と
なった場合である。
【0056】この場合には、ステップS35でプロセッ
サAに異常が発生したものと判断し、さらに次のステッ
プS36で共通メモリCM に規定値を設定してプロセッ
サAに異常が発生したことを記憶する。
【0057】次に、プロセッサA及びBM で上述したプ
ログラムが実行されたときの共通レジスタD及びCM
値の時間的変化を示した図7〜図9の動作タイムチャー
トを参照しながら、各プロセッサの動作を説明する。
【0058】先ず、プロセッサA及びBM が正常なとき
のプロセッサの動作を、図7の動作タイムチャートを参
照して説明する。ある時刻にプロセッサAがプログラム
A−1を実行して共通メモリDのデータ値を「1」から
「0」に書き換えた後に、プロセッサBM がプログラム
M −1を実行したとする。この場合、共通メモリDか
ら今回読み出した値と前回読み出した値とは一致しない
ので、プログラムBM −1により共通メモリCM
「0」にクリアされる。
【0059】次にプログラムA−1が実行されるまでの
0 期間、共通メモリDの値は「0」のまま変化しない
ので、その間プロセッサBM によりプログラムBM −1
が実行される毎に共通メモリCM の値が順次増加してい
く。
【0060】そして、周期t0 後に再びプログラムA−
1が実行されて共通メモリDのデータ値が「0」から
「1」に書き換えられると、プログラムBM −1により
共通メモリDの今回の読み出し値と前回の読み出し値と
の不一致が検出され、再び共通メモリCM が「0」にク
リアされる。
【0061】すなわち、プロセッサAが正常に動作して
いるときには、共通メモリDの値が「1」から「0」
へ、あるいは「0」から「1」へ交互に書き換えられ、
プロセッサB側のプログラムBM −1で共通レジスタD
の前回の値と今回の値の不一致が検出され、共通メモリ
Cがクリアされる。この結果、共通メモリCM の値が一
定値以下に抑えられるので、プログラムBM −2により
プロセッサAが正常に動作していると判定される。
【0062】また、プロセッサBが正常に動作している
ときには、プログラムBM −1により周期t2 毎に共通
メモリCM の値が「1」づつインクリメントされるの
で、この共通メモリCM の値の変化がプロセッサA側の
プログラムA−1で検出され、プロセッサBが正常に動
作していると判定される。
【0063】次に、プロセッサBM に異常が発生した場
合の動作を、図8の動作タイムチャートを参照して説明
する。図8に示すようにプロセッサBM に異常が発生す
ると、プロセッサBM 側のプログラムBM −1が実行さ
れなくなり、共通メモリCM の値がクリア又はインクリ
メントされなくなる。その為、共通メモリCM のデータ
値は増加せず一定値となる。
【0064】すると、プロセッサAで周期t1 毎に実行
されるプログラムA−2で読み出される共通メモリCM
の今回の読み出し値と前回の読み出し値とが一致する。
これによりプロセッサAは、プロセッサBM に異常が発
生したことを検出できる。
【0065】次に、プロセッサAに異常が発生した場合
の動作を、図9の動作タイムチャートを参照しながら説
明する。図9に示すようにプロセッサAに異常が発生す
ると、プロセッサA側のプログラムA−1が実行されな
くなり、共通メモリDの値が書き換えられなくなる。共
通メモリDの値が変化しなくなると、プロセッサB側の
プログラムBM −1で共通メモリCM の値が「0」にク
リアされず、その値が次第に増大する。
【0066】この結果、プロセッサBM で周期t3 毎に
実行されるプログラムBM −2により共通メモリCM
値が規定値以上となったことが検出される。これにより
プロセッサBM は、プロセッサAに異常が発生したこと
を検出できる。
【0067】ここで、従来の相互監視方法でプロセッサ
異常と誤って判定してしまった原因について検討して見
る。従来の相互監視方法では、プロセッサBのプログラ
ムB−1が共通メモリCのデータを読み出した直後に、
プロセッサAのプログラムA−1が共通メモリCの値を
「0」にクリアした場合に問題が発生していた。
【0068】すなわち、従来の相互監視方法では、プロ
セッサA側のプログラムA−1で共通メモリCをクリア
し、プロセッサB側のプログラムB−1で共通メモリC
のデータをインクリメントしていたので、両者の起動タ
イミングによっては共通メモリCの値が増大してしまう
場合があった。
【0069】これに対して本実施例の相互監視方法で
は、プロセッサAが共通メモリDのメッセージ(この場
合、「0」又は「1」)を書き換えているか否かに基づ
いて、プロセッサB側のプログラムBM −1が共通メモ
M の内容をクリア又はインクリメント(又はディク
リメント)するようにしている。
【0070】従って、プログラムの起動タイミングによ
って共通メモリ M の値が増大することが原理的に起こ
り得ず、判定誤りを完全になくすことができる。なお、
この実施例では、プロセッサA自身が共通メモリDの値
を、例えば「0」から「1」(あるいは「1」から
「0」)に交互に書き換えるようにしているので、共通
メモリのメッセージの書き換えをプロセッサB側のプロ
グラムから独立して行うことができる。
【0071】次に、本発明の第2実施例を説明する。こ
の実施例は、基本的には図2に示した第1実施例のシス
テム構成と同じ構成を有し、各プロセッサA、BM で実
行される各プログラムも基本的な部分は第1実施例と同
じである。
【0072】以下、第2実施例の特徴となる部分につい
て説明する。この実施例では、プロセッサA側のプログ
ラムA−1が、周期t0 毎に共通メモリDに数値データ
Yを書き込んでいる。
【0073】そして、その共通メモリDの内容が数値デ
ータYであれば、プロセッサBM 側のプログラムBM
1が、周期t3 毎に共通メモリDと共通メモリCM とを
「0」にクリアし、共通メモリDの内容が数値データY
でなければ、共通メモリCM の値を「1」づつインクリ
メント(又はディクリメント)している。
【0074】なお、プログラムA−2とプログラムBM
ー2は第2実施例と同じである。上述したプログラムに
より、例えばプロセッサAに異常が発生して共通メモリ
Dに数値データYが書き込まれなくなると、プロセッサ
B側のプログラムBM −1により共通メモリCM の値が
増大し、規定値に達した時点でプロセッサAの異常と判
定される。
【0075】次に、本発明の第3実施例を説明する。図
10は、第3実施例のプロセッサシステムのシステム構
成図である。この実施例は、前述したプロセッサAがN
個、プロセッサBが1個存在する場合の例である。
【0076】図10において、プロセッサBが搭載され
たプロセッサカードBと、N個のプロセッサAM (M=
1、2、・・・N)がそれぞれ搭載されたN枚のプロセ
ッサカードAと、共通メモリカードXとは共通バスEに
接続されている。
【0077】共通メモリカードX内には、1つの共通メ
モリCとプロセッサAM からのメッセージ(例えば、数
値「1」又は「0」)が書き込まれるN個の共通メモリ
M とが設けられている。
【0078】また、プロセッサカードB内には、プロセ
ッサBがアクセス可能なN−1個のメモリCM (この実
施例では、プロセッサカードB内のプロセッサBがアク
セスするN−1個のメモリをメモリCM と呼ぶ)が設け
られている。
【0079】プロセッサAM 側で実行されるプログラム
M −1は、周期t0 毎に起動され、共通メモリDM
メッセージとして「0」と「1」とを交互に書き込む処
理である。
【0080】また、プログラムAM −2は、周期t1
に起動され、共通メモリCのデータを読み出し、今回読
み出したデータと前回読み出したデータと比較し、一致
すればプロセッサBは異常、不一致であればプロセッサ
Bは正常と判定する処理である。
【0081】プロセッサB側で実行されるプログラムB
−1は、周期t2 毎に起動され、共通メモリDM の内容
を読み出し、今回読み出した値と前回読み出した値とを
比較し、一致すれば(プロセッサAM からのメッセージ
が存在しない場合)、メモリCM (共通メモリCを含
む、以下同じ)のデータをインクリメント(又はディク
リメント)し、不一致であれば(プロセッサAM からの
メッセージが存在する場合)、メモリCを「0」にクリ
アする処理である。
【0082】また、プログラムB−2は、周期t3 毎に
起動され、メモリCM のデータ値と規定値とを比較し、
データ値が規定値より小さければ、プロセッサAM は正
常と判定し、データ値が規定値以上であれば、プロセッ
サAM は異常と判定する処理である。
【0083】これらのプログラムにより、上述した第1
及び第2実施例と同様にして、プロセッサAM 及びプロ
セッサBが、お互いのプロセッサの異常を検出すること
ができる。
【0084】この実施例では、プロセッサBが1個であ
るので、プロセッサBの異常を検出する為にN個のプロ
セッサAM から読み出す必要のある共通メモリCは1個
で充分である。そこで、共通メモリCを1個とし、N−
1個のプロセッサAM の異常を検出する為に必要なN−
1個のメモリC(残りの1個のプロセッサAM に付いて
は共通メモリCを使用する)を、プロセッサBからだけ
アクセスできるプロセッサカードB内に設けている。
【0085】これにより、N個のプロセッサAの異常を
検出する為のメモリ(第1実施例の共通メモリCM に相
当する)を、必ずしも共通メモリとする必要がなくな
り、プロセッサカードB内のメモリ領域を使用すること
ができるので、メモリ構成がより自由になる。
【0086】次に、本発明の第4実施例を説明する。こ
の実施例のシステム構成は、図10に示した第3実施例
のシステム構成と同じであり、また各プロセッサAM
Bで実行される各プログラムも基本となる部分は、第3
実施例のプログラムと同じである。以下、第4実施例の
特徴となる部分について説明する。
【0087】この実施例は、プロセッサAM が一定周期
毎に共通メモリDM にメッセージとして数値データYを
書き込んでいる。そして、共通メモリDM に数値データ
Yが書き込まれているときには、プロセッサBが一定周
期毎にその共通メモリDM とメモリCM (共通メモリC
を含む、以下同じ)とを「0」にクリアし、数値データ
Yが書き込まれていないときには、メモリCM をインク
リメントするようにしている。
【0088】以下、プロセッサAM 及びBで実行される
プログラムについて説明する。プロセッサAM で実行さ
れるプログラムAM −1は、周期t0 毎に起動され、共
通メモリDM に数値データYを書き込む。
【0089】プロセッサBで実行されるプログラムB−
1は、周期t2 毎に起動され、共通メモリDM の内容を
読み出し、読み出したデータが数値データYならば、メ
モリCM と共通メモリDM を「0」にクリアし、読み出
したデータが数値データYでなければ、メモリCM
「1」インクリメントする処理である。
【0090】また、プログラムAM −2とプログラムB
−2は、第3実施例のプログラムと同一である。これら
のプログラムにより、プロセッサAM が正常に動作して
いて共通メモリDM に数値データYが書き込まれている
場合には、一定周期毎にメモリCM のデータが「0」に
クリアされ、メモリCM のデータが常に規定値未満とな
る。一方、プロセッサAM に異常が発生すると、メモリ
M のデータが規定値以上となるので、N個のプロセッ
サAM が正常か否かを誤りなく判定することができる。
【0091】また、メモリCM の値が変化しているか否
かにより、プロセッサBが正常に動作しているか否かを
判定することができる。以上述べたように上記実施例で
は、複数のプロセッサが非同期で動作するプロセッサシ
ステムにおいて、共通メモリ領域を少なくとも2種類用
意し(例えば、共通メモリCと共通メモリD)、一方の
プロセッサAが、一定周期毎に共通メモリDにメッセー
ジとして、例えば「0」又は「1」を交互に書き込んで
いる。そして、プロセッサAにより共通メモリDのメッ
セージが書き換えられているときには、他のプロセッサ
Bが別の共通メモリCの値を「0」にクリアし、メッセ
ージが書き換えられていないときには、共通メモリCの
データをインクリメント(又はディクリメント)するよ
うにしている。
【0092】これにより、プロセッサAが正常に動作し
ている場合には、共通メモリCの値が増大せず、プロセ
ッサAに異常が発生した場合にだけ共通メモリCの値が
規定値以上となる。よって、この共通メモリCの値と規
定値とを比較することで、プロセッサAの異常を正確に
検出することができる。
【0093】また、共通メモリCの値が変化しているか
否かによりプロセッサBが正常に動作しているか否かを
検出している。しかも上述した相互監視方法では、一方
のプロセッサBが、他方のプロセッサAによって共通メ
モリDに書き込まれるメッセージに基づいて、共通メモ
リCを「0」にクリア、あるいはインクリメント(又は
ディクリメント)するようにしている。
【0094】従って、従来の相互監視方法のようにプロ
グラムの起動タイミングによって、共通メモリCがクリ
アされないでその値が増大してしまうという問題が発生
ぜず、プロセッサの異常の検出の誤りをなくすことがで
きる。
【0095】尚、上記実施例では、1個のプロセッサA
(又はB)と複数のプロセッサBM (又はAM )からな
るプロセッサシステムについて説明したが、プロセッサ
A、Bがそれぞれ1個でもよいし、あるいはプロセッサ
A、Bがそれぞれ複数あっても良い。
【0096】また、共通メモリDに書き込むメッセージ
は、実施例に述べた「0」、「1」、あるいは数値デー
タに限らずどのようなメッセージであっても良く、一方
のプロセッサが何らかの情報を書き込めば良い。
【0097】
【発明の効果】本発明によれば、複数のプロセッサから
なるシステムにおいて、個々のプロセッサのプログラム
の起動タイミングにより発生するプロセッサの動作状態
の検出誤りをなくすことができる。
【図面の簡単な説明】
【図1】本発明の原理説明図である。
【図2】本発明の第1実施例のシステム構成図である。
【図3】実施例のプロセッサAで実行されるプログラム
A−1のフローチャートである。
【図4】実施例のプロセッサAで実行されるプログラム
A−2のフローチャートである。
【図5】実施例のプロセッサBM で実行されるプログラ
ムBM −1のフローチャートである。
【図6】実施例のプロセッサBM で実行されるプログラ
ムB−2のフローチャートである。
【図7】実施例の相互監視方法でプロセッサA、BM
正常なときの動作タイムチャートである。
【図8】実施例の相互監視方法でプロセッサBM に異常
が発生した場合の動作タイムチャートである。
【図9】実施例の相互監視方法でプロセッサAに異常が
発生した場合の動作タイムチャートである。
【図10】第3実施例のシステム構成図である。
【図11】従来の相互監視方法におけるプロセッサAの
処理フローチャートである。
【図12】従来の相互監視方法におけるプロセッサAの
処理フローチャートである。
【図13】従来の相互監視方法におけるプロセッサBの
処理フローチャートである。
【図14】従来の相互監視方法におけるプロセッサBの
処理フローチャートである。
【図15】t3 =t2 の場合のプロセッサBの処理フロ
ーチャートである。
【図16】従来の相互監視方法でプロセッサA、Bが正
常なときの動作タイムチャートである。
【図17】従来の相互監視方法でプロセッサAに異常が
発生した場合の動作タイムチャートである。
【図18】従来の相互監視方法でプロセッサBに異常が
発生した場合の動作タイムチャートである。
【図19】従来の相互監視方法の問題点の説明図であ
る。
【符号の説明】
A、B、AM 、BM プロセッサ C、D、CM 、DM 共通メモリ Ci メモリ
───────────────────────────────────────────────────── フロントページの続き (58)調査した分野(Int.Cl.6,DB名) G06F 15/16 G06F 11/00

Claims (4)

    (57)【特許請求の範囲】
  1. 【請求項1】複数のプロセッサと該複数のプロセッサか
    らアクセス可能な共通メモリC、Dとからなるシステム
    に用いられるプロセッサ間相互監視方法であって、 前記複数のプロセッサの中で互いに動作を監視している
    プロセッサA、Bの一方のプロセッサAが、 周期t0 毎に前記共通メモリDにメッセージを書き込
    み、 周期t1 毎に前記共通メモリCのデータを読み出し、今
    回読み出したデータと前回読み出したデータとを比較
    し、データが不一致であればプロセッサBは正常と判定
    し、データが一致したならプロセッサBは異常と判定
    し、 他方のプロセッサBが、前期周期t 1 よりも短い 周期t2 毎に前記共通メモリD
    の内容を読み出し、プロセッサAからのメッセージの有
    無を判断し、 メッセージが存在する場合には前記共通メモリCをクリ
    又は所定値を設定し、メッセージが存在しない場合に
    は前記共通メモリCのデータをインクリメント又はディ
    クリメントし、前記 共通メモリCのデータと基準値とを比較し、基準値
    以内であればプロセッサAは正常と判定し、基準値を
    えたならプロセッサAは異常と判定する、 ことを特徴とするプロセッサ間相互監視方法。
  2. 【請求項2】少なくとも1個のプロセッサAとN個のプ
    ロセッサBM (M=1、2・・・N)と、該プロセッサ
    A、BM からアクセス可能な共通メモリDとN個の共通
    メモリCM とからなるシステムに用いられるプロセッサ
    間相互監視方法であって、 プロセッサAが、 周期t0 毎に前記共通メモリDにメッセージを書き込
    み、 周期t1 毎に前記共通メモリCM のデータを読み出し、
    今回読み出したデータと前回読み出したデータとを比較
    し、データが不一致であれば、該共通メモリCM に対応
    するプロセッサBM は正常と判定し、データが一致した
    ならプロセッサBM は異常と判定し、 プロセッサBM が、前期周期t 1 よりも短い 周期t2 毎に前記共通メモリD
    の内容を読み出し、プロセッサAからのメッセージの有
    無を判断し、 メッセージが存在する場合には前記共通メモリCM の内
    容をクリア又は所定値を設定し、メッセージが存在しな
    い場合には該共通メモリCM の内容をインクリメント又
    はディクリメントし、前記 共通メモリCM のデータと基準値とを比較し、基準
    以内であればプロセッサAは正常と判定し、基準値を
    越えたならプロセッサAは異常と判定する、 ことを特徴とするプロセッサ間相互監視方法。
  3. 【請求項3】N個のプロセッサAM (M=1、2・・・
    N)と少なくとも1個のプロセッサBと、該プロセッサ
    M 、Bからアクセス可能なN個の共通メモリDM と少
    なくと1個の共通メモリCと、該プロセッサBからアク
    セス可能な複数のメモリCi とからなるシステムに用い
    られるプロセッサ間相互監視方法であって、 プロセッサAM が、 周期t0 毎に前記共通メモリDM にメッセージを書き込
    み、 周期t1 毎に前記共通メモリCのデータを読み出し、今
    回読み出したデータと前回読み出したデータとを比較
    し、データが不一致であればプロセッサBは正常と判定
    し、データが一致したならプロセッサBは異常と判定
    し、 プロセッサBが、前期周期t 1 よりも短い 周期t2 毎に前記共通メモリD
    M の内容を読み出し、プロセッサAM からのメッセージ
    の有無を判断し、 メッセージが存在する場合にはプロセッサAM に対応す
    る前記共通メモリC又はメモリCi の内容をクリア又は
    所定値を設定し、メッセージが存在しない場合には該共
    通メモリC又はメモリCi の内容をインクリメント又は
    ディクリメントし、前記 共通メモリC及びメモリCi のデータと基準値とを
    比較し、基準値以内であれば該メモリに対応するプロセ
    ッサAM は正常と判定し、基準値を越えたならプロセッ
    サAM は異常と判定する、 ことを特徴とするプロセッサ間相互監視方法。
  4. 【請求項4】複数のプロセッサと該複数のプロセッサか
    らアクセス可能な共通メモリC、Dとからなるシステム
    であって、 前記複数のプロセッサの中で互いに動作を監視している
    プロセッサA、Bの一方のプロセッサAが、 周期t0 毎に前記共通メモリDにメッセージを書き込
    み、 周期t1 毎に前記共通メモリCのデータを読み出し、今
    回読み出したデータと前回読み出したデータとを比較
    し、データが不一致であればプロセッサBは正常と判定
    し、データが一致したならプロセッサBは異常と判定
    し、 他方のプロセッサBが、前期周期t 1 よりも短い 周期t2 毎に前記共通メモリD
    の内容を読み出し、プロセッサAからのメッセージの有
    無を判断し、 メッセージが存在する場合には前記共通メモリCをクリ
    又は所定値を設定し、メッセージが存在しない場合に
    は前記共通メモリCのデータをインクリメント又はディ
    クリメントし、前記 共通メモリCのデータと基準値とを比較し、基準値
    以内であればプロセッサAは正常と判定し、基準値を
    えたならプロセッサAは異常と判定する、 ことを特徴とするプロセッサ間相互監視装置。
JP3036275A 1991-03-01 1991-03-01 プロセッサ間相互監視方法及びその装置 Expired - Fee Related JP2870202B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP3036275A JP2870202B2 (ja) 1991-03-01 1991-03-01 プロセッサ間相互監視方法及びその装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3036275A JP2870202B2 (ja) 1991-03-01 1991-03-01 プロセッサ間相互監視方法及びその装置

Publications (2)

Publication Number Publication Date
JPH04275664A JPH04275664A (ja) 1992-10-01
JP2870202B2 true JP2870202B2 (ja) 1999-03-17

Family

ID=12465225

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3036275A Expired - Fee Related JP2870202B2 (ja) 1991-03-01 1991-03-01 プロセッサ間相互監視方法及びその装置

Country Status (1)

Country Link
JP (1) JP2870202B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4475598B2 (ja) * 2007-06-26 2010-06-09 株式会社日立製作所 ストレージシステム及びストレージシステムの制御方法
JP5383590B2 (ja) * 2010-05-21 2014-01-08 株式会社東芝 異常検出方法および車両制御装置

Also Published As

Publication number Publication date
JPH04275664A (ja) 1992-10-01

Similar Documents

Publication Publication Date Title
US4852092A (en) Error recovery system of a multiprocessor system for recovering an error in a processor by making the processor into a checking condition after completion of microprogram restart from a checkpoint
EP0664511A2 (en) Microprocessor fault log
JP3481737B2 (ja) ダンプ採取装置およびダンプ採取方法
JP2870202B2 (ja) プロセッサ間相互監視方法及びその装置
JP3192354B2 (ja) コンピュータシステムのリトライ処理装置
JPH04241642A (ja) マイクロコンピュータの暴走検出方式
JP3094924B2 (ja) 通信装置制御回路
JPS62106552A (ja) ル−プ検出装置
JP3154853B2 (ja) イリーガルメモリアクセス検出方式
JPS62175834A (ja) 中央処理装置の暴走検出回路
JPH06214831A (ja) 中央処理装置の異常検出装置
JPH0822419A (ja) 誤書込防止方式
JPS60233743A (ja) 計算機システムの異常検出回路
JP2635777B2 (ja) プログラマブル・コントローラ
JPH0619744A (ja) マルチプロセッサシステムの動作監視方式
JPH086864A (ja) メモリ制御用アドレスバス診断方式
JPS6074052A (ja) ヒストリ・メモリ制御方式
JPH05289946A (ja) メモリ制御方式
JPS5827538B2 (ja) 相互監視方式
JPS62166449A (ja) 論理装置の履歴記憶装置
JPS6132701B2 (ja)
JPH02103647A (ja) インテリジェント計測カードの制御方法
JPS63150732A (ja) プログラム走行監視装置
JPH04338842A (ja) エラー検出機能付き情報処理装置
JPH0480860A (ja) プログラムロード方式

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 19981201

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080108

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090108

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100108

Year of fee payment: 11

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110108

Year of fee payment: 12

LAPS Cancellation because of no payment of annual fees