JPH05173984A - 複数処理ユニット間の同期制御方法 - Google Patents
複数処理ユニット間の同期制御方法Info
- Publication number
- JPH05173984A JPH05173984A JP3338818A JP33881891A JPH05173984A JP H05173984 A JPH05173984 A JP H05173984A JP 3338818 A JP3338818 A JP 3338818A JP 33881891 A JP33881891 A JP 33881891A JP H05173984 A JPH05173984 A JP H05173984A
- Authority
- JP
- Japan
- Prior art keywords
- processing
- value
- time
- processing units
- interrupt
- 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.)
- Pending
Links
- 230000001360 synchronised effect Effects 0.000 title claims abstract description 20
- 238000000034 method Methods 0.000 title claims description 36
- 230000015654 memory Effects 0.000 description 6
- 239000013256 coordination polymer Substances 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000000994 depressogenic effect Effects 0.000 description 1
Landscapes
- Multi Processors (AREA)
Abstract
(57)【要約】
【目的】 複数の処理ユニットを有する並列処理システ
ムに対して緻密な制御を行なわせる。 【構成】 ステップS7でループが終了する毎に複数の
処理ユニット間で同期を取る。ステップS10でインタ
ーバルタイマの値をタイマ値として読込む。ステップ8
でインターバルタイマをプリセットする。ステップ11
でタイマ値を他方の処理ユニットへ転送する。ステップ
12でタイマ値の最小のものを選択する。ステップ13
で比較値からこの選択したタイマ値を引いた値を、次の
ループの初回の比較値とする。割込み処理ルーチンで
は、ステップ9で比較値を予め設定した値(2ミリ秒)
に戻す。
ムに対して緻密な制御を行なわせる。 【構成】 ステップS7でループが終了する毎に複数の
処理ユニット間で同期を取る。ステップS10でインタ
ーバルタイマの値をタイマ値として読込む。ステップ8
でインターバルタイマをプリセットする。ステップ11
でタイマ値を他方の処理ユニットへ転送する。ステップ
12でタイマ値の最小のものを選択する。ステップ13
で比較値からこの選択したタイマ値を引いた値を、次の
ループの初回の比較値とする。割込み処理ルーチンで
は、ステップ9で比較値を予め設定した値(2ミリ秒)
に戻す。
Description
【0001】
【産業上の利用分野】本発明は、クロックに同期して同
一の所定の処理を行う複数の処理ユニットを有し、これ
ら複数の処理ユニットの処理結果がすべて一致したとき
にのみこの一致した処理結果を外部へ制御信号として発
生する並列処理システムに係り、特に、これら複数の処
理ユニットがそれぞれ別のクロック発振器から供給され
るクロックに同期して動作する並列処理システムにおけ
る複数処理ユニット間の同期制御方法に関する。
一の所定の処理を行う複数の処理ユニットを有し、これ
ら複数の処理ユニットの処理結果がすべて一致したとき
にのみこの一致した処理結果を外部へ制御信号として発
生する並列処理システムに係り、特に、これら複数の処
理ユニットがそれぞれ別のクロック発振器から供給され
るクロックに同期して動作する並列処理システムにおけ
る複数処理ユニット間の同期制御方法に関する。
【0002】
【従来の技術】マルチプロセッサシステムは複数の処理
ユニットを有するシステムである。このマルチプロセッ
サシステムの1つに並列処理システムがある。並列処理
システムとは、複数の処理ユニットに同一の所定の処理
を行なわせ、これら複数の処理ユニットの処理結果がす
べて一致したときにのみこの一致した処理結果を外部へ
制御信号として発生するシステムのことである。並列処
理システムは並列冗長システムとも呼ばれる。このよう
な並列処理システムは、一般に、信頼性が要求され、人
命に係わるような制御システムにおいて使用される。並
列処理システムは、例えば、カーエレクトロニクスの分
野では、アンチロックブレーキシステム(以下、AB
S)制御回路において使用されている。すなわち、ブレ
ーキ制御は非常に危険が伴う制御系なので、確実な制御
が要求されるからである。ABS制御回路は、周知のよ
うに、急ブレーキを掛けたときに、車輪がロックするの
を防止して、最適な制動作用を得るようにした制御回路
である。以下では、ABS制御回路を例にとって説明す
る。
ユニットを有するシステムである。このマルチプロセッ
サシステムの1つに並列処理システムがある。並列処理
システムとは、複数の処理ユニットに同一の所定の処理
を行なわせ、これら複数の処理ユニットの処理結果がす
べて一致したときにのみこの一致した処理結果を外部へ
制御信号として発生するシステムのことである。並列処
理システムは並列冗長システムとも呼ばれる。このよう
な並列処理システムは、一般に、信頼性が要求され、人
命に係わるような制御システムにおいて使用される。並
列処理システムは、例えば、カーエレクトロニクスの分
野では、アンチロックブレーキシステム(以下、AB
S)制御回路において使用されている。すなわち、ブレ
ーキ制御は非常に危険が伴う制御系なので、確実な制御
が要求されるからである。ABS制御回路は、周知のよ
うに、急ブレーキを掛けたときに、車輪がロックするの
を防止して、最適な制動作用を得るようにした制御回路
である。以下では、ABS制御回路を例にとって説明す
る。
【0003】まず、ABS制御回路の概要について説明
する。車は車体と車輪とを有する。車が走行していると
き、車体および車輪は、それぞれ、零でない車体速およ
び車輪速で動いている。普通に走行している状態では、
もちろん、車体速と車輪速とは同一の速度である。換言
すれば、スリップ率は実質的に零である。ここで、スリ
ップ率とは車体速に対して車輪速がどれだけ落ちたかを
示す値であって、(車体速−車輪速)/車体速で表され
る。
する。車は車体と車輪とを有する。車が走行していると
き、車体および車輪は、それぞれ、零でない車体速およ
び車輪速で動いている。普通に走行している状態では、
もちろん、車体速と車輪速とは同一の速度である。換言
すれば、スリップ率は実質的に零である。ここで、スリ
ップ率とは車体速に対して車輪速がどれだけ落ちたかを
示す値であって、(車体速−車輪速)/車体速で表され
る。
【0004】ところが、ブレーキペダルを急に踏むと、
車輪はロックに向かい、車輪速は零に向かうが、慣性に
より車体速は急には零にはならない。このままの状態で
は、スリップにより車は慣性により急には止まることが
できず、制動距離が非常に長くなってしまう。したがっ
て、スリップ率が所定の率以上になったときに、ブレー
キを緩めるような制御を行えば、車のスリップをなくす
ことができ、短い制動距離で短時間に車を止めることが
出来る。
車輪はロックに向かい、車輪速は零に向かうが、慣性に
より車体速は急には零にはならない。このままの状態で
は、スリップにより車は慣性により急には止まることが
できず、制動距離が非常に長くなってしまう。したがっ
て、スリップ率が所定の率以上になったときに、ブレー
キを緩めるような制御を行えば、車のスリップをなくす
ことができ、短い制動距離で短時間に車を止めることが
出来る。
【0005】この制御を行うのがABS制御回路であ
る。したがって、ABS制御回路では、車体速と車輪速
とを常時監視する必要がある。このために、ABS制御
回路は、車のタイヤに取り付けられたホイールセンサか
らの検知信号を取り入れる。ABS制御回路は、2つの
処理ユニットを有し、各処理ユニットでは、この取り入
れた検知信号から車体速と車輪速とを計算し、この計算
して得られた車体速と車輪速とから上記スリップ率を求
めている。これらの計算は、所定時間の周期で繰り返し
行われる。すなわち、2つの処理ユニットでは、それら
のROMに全く同一のプログラムが格納されていて、そ
れらのCPUがこのプログラムに従って所定時間の周期
で繰り返し処理を行っている。つまり、プログラムを実
行するのに所定時間かかり、処理がプログラムの終了点
に達すると再びそのプログラムの先頭に戻って、プログ
ラムに従った処理を再開する。この所定時間はループタ
イムと呼ばれる。このループタイムは、例えば、6ミリ
秒である。各ループタイム中で求められたスリップ率が
所定の率以上のときに、油圧ブレーキシステムのソレノ
イドバルブに制御信号を送ることにより、ソレノイドバ
ルブを駆動してブレーキの油圧を緩める。上述したよう
に、この制御信号は、2つの処理ユニットの処理結果が
一致したときにのみ発生される。
る。したがって、ABS制御回路では、車体速と車輪速
とを常時監視する必要がある。このために、ABS制御
回路は、車のタイヤに取り付けられたホイールセンサか
らの検知信号を取り入れる。ABS制御回路は、2つの
処理ユニットを有し、各処理ユニットでは、この取り入
れた検知信号から車体速と車輪速とを計算し、この計算
して得られた車体速と車輪速とから上記スリップ率を求
めている。これらの計算は、所定時間の周期で繰り返し
行われる。すなわち、2つの処理ユニットでは、それら
のROMに全く同一のプログラムが格納されていて、そ
れらのCPUがこのプログラムに従って所定時間の周期
で繰り返し処理を行っている。つまり、プログラムを実
行するのに所定時間かかり、処理がプログラムの終了点
に達すると再びそのプログラムの先頭に戻って、プログ
ラムに従った処理を再開する。この所定時間はループタ
イムと呼ばれる。このループタイムは、例えば、6ミリ
秒である。各ループタイム中で求められたスリップ率が
所定の率以上のときに、油圧ブレーキシステムのソレノ
イドバルブに制御信号を送ることにより、ソレノイドバ
ルブを駆動してブレーキの油圧を緩める。上述したよう
に、この制御信号は、2つの処理ユニットの処理結果が
一致したときにのみ発生される。
【0006】この制御信号はループタイムを単位として
発生されても良い。しかしながら、ループタイムを単位
とすると、ループタイムは6ミリ秒と長いので、ブレー
キの油圧の制御が荒くなってしまう。この制御をきめ細
かく(緻密に)行うために、ループタイムを所定数で割
った時間を単位として制御信号を発生することが行われ
ている。具体例として、所定数には3が選ばれ、したが
って、単位時間は2ミリ秒である。すなわち、2ミリ秒
毎にチョッピングを行う。
発生されても良い。しかしながら、ループタイムを単位
とすると、ループタイムは6ミリ秒と長いので、ブレー
キの油圧の制御が荒くなってしまう。この制御をきめ細
かく(緻密に)行うために、ループタイムを所定数で割
った時間を単位として制御信号を発生することが行われ
ている。具体例として、所定数には3が選ばれ、したが
って、単位時間は2ミリ秒である。すなわち、2ミリ秒
毎にチョッピングを行う。
【0007】このような緻密な制御を行うために、従
来、各処理ユニットは、予め設定した(2ミリ秒に対応
する)比較値とインターバルタイマの値とを常に比較し
ている。これらの値が一致したときに割込みを発生させ
ると共に、インターバルタイマをプリセットする。これ
により、割込みは2ミリ秒経過毎に発生することにな
る。この割込み回数を割込み処理ルーチン内でカウント
する。割込み処理ルーチンからメイン処理ルーチンに復
帰後、この割込み回数をチェックし、それが3となった
ときでメイン処理ルーチンの最初に戻ることにより、ル
ープタイムを作っている。
来、各処理ユニットは、予め設定した(2ミリ秒に対応
する)比較値とインターバルタイマの値とを常に比較し
ている。これらの値が一致したときに割込みを発生させ
ると共に、インターバルタイマをプリセットする。これ
により、割込みは2ミリ秒経過毎に発生することにな
る。この割込み回数を割込み処理ルーチン内でカウント
する。割込み処理ルーチンからメイン処理ルーチンに復
帰後、この割込み回数をチェックし、それが3となった
ときでメイン処理ルーチンの最初に戻ることにより、ル
ープタイムを作っている。
【0008】従来のABS制御回路では、2つの処理ユ
ニットには1つのクロック発生器からのクロックが供給
されていた。すなわち、2つの処理ユニットは同一のク
ロックに同期して動作している。これは、2つの処理ユ
ニットを全く同じ動作で動作させる必要があるからであ
る。換言すれば、2つの処理ユニットは、全く同じ時計
をもっている。この場合、2つの処理ユニットは常に同
期が取れているので、同期をとるための特別の処理が不
要である。
ニットには1つのクロック発生器からのクロックが供給
されていた。すなわち、2つの処理ユニットは同一のク
ロックに同期して動作している。これは、2つの処理ユ
ニットを全く同じ動作で動作させる必要があるからであ
る。換言すれば、2つの処理ユニットは、全く同じ時計
をもっている。この場合、2つの処理ユニットは常に同
期が取れているので、同期をとるための特別の処理が不
要である。
【0009】しかしながら、1つのクロック発生器から
供給されるクロックに同期して2つの処理ユニットが駆
動されるので、このクロック発生器が故障してしまう
と、2つの処理ユニットは同時にその動作を停止、すな
わち、ダウンしてしまう。これでは、並列冗長構成にし
た意味がなくなり、高い信頼性を保つことができない。
また、同時に2つの処理ユニットがダウンしてしまう
と、後述するような、フェイルセイフを行うことができ
ない。
供給されるクロックに同期して2つの処理ユニットが駆
動されるので、このクロック発生器が故障してしまう
と、2つの処理ユニットは同時にその動作を停止、すな
わち、ダウンしてしまう。これでは、並列冗長構成にし
た意味がなくなり、高い信頼性を保つことができない。
また、同時に2つの処理ユニットがダウンしてしまう
と、後述するような、フェイルセイフを行うことができ
ない。
【0010】この問題を解決するため、本願発明者は2
つの処理ユニットをそれぞれ別々のクロック発振器から
のクロックで動作させれば良いのではないかと思料し
た。しかしながら、全く同じクロック周波数をもつクロ
ックを発振できるクロック発振器を手に入れることは実
質上不可能である。また、ほとんど同じクロック周波数
をもつクロックを発振できる高精度のクロック発振器は
高価である。従って、この場合、2つの処理ユニット
は、互いにほぼ等しいけれども、若干誤差のあるクロッ
ク周波数をもつクロックで動作することになる。換言す
れば、2つの処理ユニットは、それぞれ、互いに異なる
時計をもつことになる。このような互いに異なるクロッ
ク周波数をもつクロックで動作する2つの処理ユニット
は、時間の経過につれて、それぞれの時計が示す時刻が
しだいにずれていき、誤差が累積していく。この誤差の
累積値が大きくなると、2つの処理ユニットの処理結果
の一致をとることが不可能になってしまう。
つの処理ユニットをそれぞれ別々のクロック発振器から
のクロックで動作させれば良いのではないかと思料し
た。しかしながら、全く同じクロック周波数をもつクロ
ックを発振できるクロック発振器を手に入れることは実
質上不可能である。また、ほとんど同じクロック周波数
をもつクロックを発振できる高精度のクロック発振器は
高価である。従って、この場合、2つの処理ユニット
は、互いにほぼ等しいけれども、若干誤差のあるクロッ
ク周波数をもつクロックで動作することになる。換言す
れば、2つの処理ユニットは、それぞれ、互いに異なる
時計をもつことになる。このような互いに異なるクロッ
ク周波数をもつクロックで動作する2つの処理ユニット
は、時間の経過につれて、それぞれの時計が示す時刻が
しだいにずれていき、誤差が累積していく。この誤差の
累積値が大きくなると、2つの処理ユニットの処理結果
の一致をとることが不可能になってしまう。
【0011】そこで、本願発明者は、2つの処理ユニッ
ト間の同期を取る方法、すなわち、互いの時計が示す時
刻を合わせる方法を提案し、既に、特願平3−1789
49号として出願した。
ト間の同期を取る方法、すなわち、互いの時計が示す時
刻を合わせる方法を提案し、既に、特願平3−1789
49号として出願した。
【0012】以下、図5および図6を参照して、上記提
案した従来の同期制御方法について説明する。ここで
は、ループタイムLTが6ミリ秒、予め設定された比較
値CMが2ミリ秒に相当するとする。また、2つの処理
ユニットを、それぞれ、第1の処理ユニットCPU1お
よび第2の処理ユニットCPU2と呼ぶことにする。第
1の処理ユニットCPU1に供給される第1のクロック
の第1のクロック周波数よりも第1の処理ユニットCP
U2に供給される第2のクロックの第2のクロック周波
数の方が若干高いとする。したがって、第1の処理ユニ
ットCPU1の第1の時計(第1のインターバルタイマ
IT1)よりも第2の処理ユニットCPU2の第2の時
計(第2のインターバルタイマIT2)の方が若干速く
進むことになる。また、第1および第2の処理ユニット
CPU1およびCPU2は、それぞれ、第1および第2
の読出し専用メモリを備え、これらには全く同一のプロ
グラムが格納されている。このプログラムはメイン処理
ルーチン(図5(a))と割込み処理ルーチン(図5
(b))とを有する。第1および第2の処理ユニットC
PU1およびCPU2の各々は、各ループタイムLTの
間に、メイン処理ルーチンと割込み処理ルーチンとをそ
れぞれ3回繰り返すことになる。この同期制御方法で
は、説明を進めていくと明らかになるように、第1およ
び第2の処理ユニットCPU1およびCPU2間の同期
を取るために、進みの遅い第1の処理ユニットCPU1
の第1の時計の時刻の方に進みの速い第2の処理ユニッ
トCPU2の第2の時計の時刻を合わせる。
案した従来の同期制御方法について説明する。ここで
は、ループタイムLTが6ミリ秒、予め設定された比較
値CMが2ミリ秒に相当するとする。また、2つの処理
ユニットを、それぞれ、第1の処理ユニットCPU1お
よび第2の処理ユニットCPU2と呼ぶことにする。第
1の処理ユニットCPU1に供給される第1のクロック
の第1のクロック周波数よりも第1の処理ユニットCP
U2に供給される第2のクロックの第2のクロック周波
数の方が若干高いとする。したがって、第1の処理ユニ
ットCPU1の第1の時計(第1のインターバルタイマ
IT1)よりも第2の処理ユニットCPU2の第2の時
計(第2のインターバルタイマIT2)の方が若干速く
進むことになる。また、第1および第2の処理ユニット
CPU1およびCPU2は、それぞれ、第1および第2
の読出し専用メモリを備え、これらには全く同一のプロ
グラムが格納されている。このプログラムはメイン処理
ルーチン(図5(a))と割込み処理ルーチン(図5
(b))とを有する。第1および第2の処理ユニットC
PU1およびCPU2の各々は、各ループタイムLTの
間に、メイン処理ルーチンと割込み処理ルーチンとをそ
れぞれ3回繰り返すことになる。この同期制御方法で
は、説明を進めていくと明らかになるように、第1およ
び第2の処理ユニットCPU1およびCPU2間の同期
を取るために、進みの遅い第1の処理ユニットCPU1
の第1の時計の時刻の方に進みの速い第2の処理ユニッ
トCPU2の第2の時計の時刻を合わせる。
【0013】図6に於いて、1行目に第1の処理ユニッ
トCPU1の第1のインターバルタイマIT1の値を示
し、2行目に第1の処理ユニットCPU1の割込みタイ
ミングを示す。そして、3行目に第2の処理ユニットC
PU2の第2のインターバルタイマIT2の値を示し、
4行目に第2の処理ユニットCPU2の割込みタイミン
グを示す。
トCPU1の第1のインターバルタイマIT1の値を示
し、2行目に第1の処理ユニットCPU1の割込みタイ
ミングを示す。そして、3行目に第2の処理ユニットC
PU2の第2のインターバルタイマIT2の値を示し、
4行目に第2の処理ユニットCPU2の割込みタイミン
グを示す。
【0014】まず、第1および第2の処理ユニットCP
U1およびCPU2の第1および第2のインターバルタ
イマIT1およびIT2がプリセットされることによ
り、ループタイムLTが開始する。この時点から、1回
目のメイン処理ルーチンが第1および第2の処理ユニッ
トCPU1および2の各々で開始する。この1回目のメ
イン処理ルーチンの処理(ステップS1)中、第1およ
び第2の処理ユニットCPU1およびCPU2では、そ
れぞれ、第1および第2のインターバルタイマIT1お
よびIT2の値と比較値とを比較する。上述したよう
に、第1のインターバルタイマIT1よりも第2のイン
ターバルタイマIT2の方が速く進むので、先に第2の
インターバルタイマIT2の値と比較値とが一致する。
この一致時点で、第2の処理ユニットCPU2のメイン
処理ルーチンで第1の割込み1が発生する。ループタイ
ムLTの開始時点から第1の割込み1の発生時点まで間
は、第2の処理ユニットCPU2の第2の時計の2ミリ
秒に相当する。第1の割込みの発生後、第2の処理ユニ
ットCPU2において、1回目の割込み処理ルーチンの
処理(図5(b))が行われる。この割込み処理ルーチ
ンでは、まず割込みの回数をカウント(ステップS2)
し、そして、第2のインターバルタイマIT2をプリセ
ットする(ステップS3)。
U1およびCPU2の第1および第2のインターバルタ
イマIT1およびIT2がプリセットされることによ
り、ループタイムLTが開始する。この時点から、1回
目のメイン処理ルーチンが第1および第2の処理ユニッ
トCPU1および2の各々で開始する。この1回目のメ
イン処理ルーチンの処理(ステップS1)中、第1およ
び第2の処理ユニットCPU1およびCPU2では、そ
れぞれ、第1および第2のインターバルタイマIT1お
よびIT2の値と比較値とを比較する。上述したよう
に、第1のインターバルタイマIT1よりも第2のイン
ターバルタイマIT2の方が速く進むので、先に第2の
インターバルタイマIT2の値と比較値とが一致する。
この一致時点で、第2の処理ユニットCPU2のメイン
処理ルーチンで第1の割込み1が発生する。ループタイ
ムLTの開始時点から第1の割込み1の発生時点まで間
は、第2の処理ユニットCPU2の第2の時計の2ミリ
秒に相当する。第1の割込みの発生後、第2の処理ユニ
ットCPU2において、1回目の割込み処理ルーチンの
処理(図5(b))が行われる。この割込み処理ルーチ
ンでは、まず割込みの回数をカウント(ステップS2)
し、そして、第2のインターバルタイマIT2をプリセ
ットする(ステップS3)。
【0015】引き続いて、第1のインターバルタイマI
T1の値と比較値とが一致し、この一致時点で、第1の
処理ユニットCPU1のメイン処理ルーチンで第1の割
込み1が発生する。ループタイムLTの開始時点から第
1の割込み1の発生時点まで間は、第1の処理ユニット
CPU1の第1の時計の2ミリ秒に相当する。第2の処
理ユニットCPU2の場合と同様に、第1の割込みの発
生後、第1の処理ユニットCPU1において、1回目の
割込み処理ルーチン(図5(b))の処理が行われる。
この割込み処理ルーチンでは、まず割込みの回数をカウ
ント(ステップS2)し、そして、第1のインターバル
タイマIT1をプリセットする(ステップS3)。
T1の値と比較値とが一致し、この一致時点で、第1の
処理ユニットCPU1のメイン処理ルーチンで第1の割
込み1が発生する。ループタイムLTの開始時点から第
1の割込み1の発生時点まで間は、第1の処理ユニット
CPU1の第1の時計の2ミリ秒に相当する。第2の処
理ユニットCPU2の場合と同様に、第1の割込みの発
生後、第1の処理ユニットCPU1において、1回目の
割込み処理ルーチン(図5(b))の処理が行われる。
この割込み処理ルーチンでは、まず割込みの回数をカウ
ント(ステップS2)し、そして、第1のインターバル
タイマIT1をプリセットする(ステップS3)。
【0016】このようにして、第1および第2の処理ユ
ニットCPU1およびCPU2において、1回目の割込
み処理ルーチンの処理(ステップS4)が行われ、最初
に第2の処理ユニットCPU2の割込み処理ルーチンの
処理が終了し、引き続いて、第1の処理ユニットCPU
1の割込み処理ルーチンの処理が終了する。ここで、第
1の処理ユニットCPU1の割込み処理ルーチンの処理
時間がxミリ秒であるとする。第1および第2の処理ユ
ニットCPU1およびCPU2の各々において、割込み
処理ルーチンの処理が終了したら、メイン処理ルーチン
(図5(a))に復帰し、2回目のメイン処理ルーチン
が実行される。
ニットCPU1およびCPU2において、1回目の割込
み処理ルーチンの処理(ステップS4)が行われ、最初
に第2の処理ユニットCPU2の割込み処理ルーチンの
処理が終了し、引き続いて、第1の処理ユニットCPU
1の割込み処理ルーチンの処理が終了する。ここで、第
1の処理ユニットCPU1の割込み処理ルーチンの処理
時間がxミリ秒であるとする。第1および第2の処理ユ
ニットCPU1およびCPU2の各々において、割込み
処理ルーチンの処理が終了したら、メイン処理ルーチン
(図5(a))に復帰し、2回目のメイン処理ルーチン
が実行される。
【0017】以下同様にして、第1および第2の処理ユ
ニットCPU1およびCPU2の各々において、2ミリ
秒経過毎に、第2および第3の割込みが発生し、2回目
および3回目の割込み処理ルーチンの処理が行われる。
この3回目の割込み処理ルーチンにおいて、割込みの回
数として“3”がカウントされる。3回目の割込み処理
ルーチンの処理終了後、第1および第2の処理ユニット
CPU1およびCPU2の各々において、再びメイン処
理ルーチンに復帰する。ここで、最初に第2の処理ユニ
ットCPU2がメイン処理ルーチンに復帰し、割込み回
数が“3”なので(ステップS5のYES)、割込み回
数を“0”にリセット(ステップS6)した後、第1の
処理ユニットCPU1と間で同期を取るために、第2の
処理ユニットCPU2は第1の処理ユニットCPU1へ
同期信号を転送する(ステップS7)。そして、第2の
処理ユニットCPU2は待ち状態に入る。引き続いて、
第1の処理ユニットCPU1がメイン処理ルーチンに復
帰し、割込み回数が“3”なので(ステップS5のYE
S)、割込み回数を“0”にリセット(ステップS6)
した後、第2の処理ユニットCPU2と間で同期を取る
ために、第1の処理ユニットCPU1は第2の処理ユニ
ットCPU2へ同期信号を転送する(ステップS7)。
ニットCPU1およびCPU2の各々において、2ミリ
秒経過毎に、第2および第3の割込みが発生し、2回目
および3回目の割込み処理ルーチンの処理が行われる。
この3回目の割込み処理ルーチンにおいて、割込みの回
数として“3”がカウントされる。3回目の割込み処理
ルーチンの処理終了後、第1および第2の処理ユニット
CPU1およびCPU2の各々において、再びメイン処
理ルーチンに復帰する。ここで、最初に第2の処理ユニ
ットCPU2がメイン処理ルーチンに復帰し、割込み回
数が“3”なので(ステップS5のYES)、割込み回
数を“0”にリセット(ステップS6)した後、第1の
処理ユニットCPU1と間で同期を取るために、第2の
処理ユニットCPU2は第1の処理ユニットCPU1へ
同期信号を転送する(ステップS7)。そして、第2の
処理ユニットCPU2は待ち状態に入る。引き続いて、
第1の処理ユニットCPU1がメイン処理ルーチンに復
帰し、割込み回数が“3”なので(ステップS5のYE
S)、割込み回数を“0”にリセット(ステップS6)
した後、第2の処理ユニットCPU2と間で同期を取る
ために、第1の処理ユニットCPU1は第2の処理ユニ
ットCPU2へ同期信号を転送する(ステップS7)。
【0018】第1および第2の処理ユニットCPU1お
よびCPU2の両方において、自己が発生した同期信号
と他方からの同期信号とを確認する(ステップS7のY
ES)と、第1および第2の処理ユニットCPU1およ
びCPU2は、それぞれ、第1および第2のインターバ
ルタイマIT1およびIT2をプリセットする(ステッ
プS8)。これにより、第1および第2の処理ユニット
CPU1およびCPU2間で同期が取られ、次のループ
タイムLTが開始する。
よびCPU2の両方において、自己が発生した同期信号
と他方からの同期信号とを確認する(ステップS7のY
ES)と、第1および第2の処理ユニットCPU1およ
びCPU2は、それぞれ、第1および第2のインターバ
ルタイマIT1およびIT2をプリセットする(ステッ
プS8)。これにより、第1および第2の処理ユニット
CPU1およびCPU2間で同期が取られ、次のループ
タイムLTが開始する。
【0019】ここで、図6に示したように、第1の処理
ユニットCPU1における実際のループタイムLTは、
第1の時計で6ミリ秒ではなく、(6+x)ミリ秒であ
ることに注意されたい。もちろん、第2の処理ユニット
CPU2における実際のループタイムLTは、第2の時
計では、(6+x)ミリ秒より長くなる。とにかく、上
述の説明から明らかように、進みの遅い第1の処理ユニ
ットCPU1の第1の時計の時刻に進みの速い第2の処
理ユニットCPU2の第2の時計の時刻を合わせること
ができる。
ユニットCPU1における実際のループタイムLTは、
第1の時計で6ミリ秒ではなく、(6+x)ミリ秒であ
ることに注意されたい。もちろん、第2の処理ユニット
CPU2における実際のループタイムLTは、第2の時
計では、(6+x)ミリ秒より長くなる。とにかく、上
述の説明から明らかように、進みの遅い第1の処理ユニ
ットCPU1の第1の時計の時刻に進みの速い第2の処
理ユニットCPU2の第2の時計の時刻を合わせること
ができる。
【0020】このように、2つの処理ユニットはそれぞ
れ別々のクロック発振器からのクロックに同期して動作
しているので、一方の側の処理ユニットの側のクロック
発振器が故障しても、他方のクロック発振器が正常に動
作している限りは、このクロック発振器からクロックが
供給される処理ユニットは正常に動作することになる。
この場合、動作不能な処理ユニットからはいくら待って
も同期信号が送出されてこないので、正常に動作してい
る処理ユニットでは、この同期信号が所定時間待っても
送られてこないことを確認した時点で、他方の処理ユニ
ットに障害が発生したと判断する。これにより、正常に
動作している処理ユニットは、当該ABS制御回路によ
るブレーキ制御を解除して、通常のブレーキ制御へ戻す
ような処理を行うことができる。すなわち、フェイルセ
イフを行うことができる。
れ別々のクロック発振器からのクロックに同期して動作
しているので、一方の側の処理ユニットの側のクロック
発振器が故障しても、他方のクロック発振器が正常に動
作している限りは、このクロック発振器からクロックが
供給される処理ユニットは正常に動作することになる。
この場合、動作不能な処理ユニットからはいくら待って
も同期信号が送出されてこないので、正常に動作してい
る処理ユニットでは、この同期信号が所定時間待っても
送られてこないことを確認した時点で、他方の処理ユニ
ットに障害が発生したと判断する。これにより、正常に
動作している処理ユニットは、当該ABS制御回路によ
るブレーキ制御を解除して、通常のブレーキ制御へ戻す
ような処理を行うことができる。すなわち、フェイルセ
イフを行うことができる。
【0021】
【発明が解決しようとする課題】上述した従来の同期制
御方法では、ループタイムを6ミリ秒に設定したにも拘
らず、実際のループタイムは、割込み処理時間(xミリ
秒)分だけ加算された(6+x)ミリ秒になってしま
う。この割込み処理時間に基づくループタイムの誤差
は、ブレーキによる制動を行っている時間に比例して累
積していく。一方、読出し専用メモリROMに格納され
たプログラムは、ループタイムが6ミリ秒のときに、最
適な制動作用を得ることができるように予めプログラム
されている。したがって、従来の同期制御方法を採用し
ているABS制御回路では、ループタイムの誤差の累積
により、緻密なABS制御を行うことができない。
御方法では、ループタイムを6ミリ秒に設定したにも拘
らず、実際のループタイムは、割込み処理時間(xミリ
秒)分だけ加算された(6+x)ミリ秒になってしま
う。この割込み処理時間に基づくループタイムの誤差
は、ブレーキによる制動を行っている時間に比例して累
積していく。一方、読出し専用メモリROMに格納され
たプログラムは、ループタイムが6ミリ秒のときに、最
適な制動作用を得ることができるように予めプログラム
されている。したがって、従来の同期制御方法を採用し
ているABS制御回路では、ループタイムの誤差の累積
により、緻密なABS制御を行うことができない。
【0022】このような従来の同期制御方法による欠点
は、何もABS制御回路においてのみ現れるものではな
く、他の並列処理システム(並列冗長システム)に対し
ても同様に現れる欠点である。
は、何もABS制御回路においてのみ現れるものではな
く、他の並列処理システム(並列冗長システム)に対し
ても同様に現れる欠点である。
【0023】したがって本発明の目的は、複数の処理ユ
ニットを有する並列処理システムに対して緻密な制御を
行なわせることができる複数処理ユニット間の同期制御
方法を提供することにある。
ニットを有する並列処理システムに対して緻密な制御を
行なわせることができる複数処理ユニット間の同期制御
方法を提供することにある。
【0024】
【課題を解決するための手段】本発明による複数処理ユ
ニット間の同期制御方法は、それぞれが専用のクロック
発振器を有し、このクロック発振器から供給されるクロ
ック信号に同期して、所定のループタイム内に所定の回
数割込み処理を行う処理を繰り返し、前記ループタイム
および前記各割込み処理の開始時点毎にプリセットされ
前記クロック信号を計時する計時動作を開始し、その計
時値が所定の比較値と一致したときに、新たに前記割込
み処理を行う処理ユニットが、複数存在するときに、前
記各処理ユニットの前記ループタイムにおける最後の割
込み処理が終了した時点で、前記各処理ユニット間の同
期を取り、全ての前記処理ユニットの前記ループタイム
の開始時点を一致させる同期制御方法において、前記処
理ユニットは、それぞれ前記割込み処理の開始直後は前
記比較値として、前記ループタイムを前記割込み処理の
回数で除した値とし、前記ループタイムの開始直後は前
記比較値として、全ての前記処理ユニットで平行して実
行された前回のループタイムの最後の前記割込み処理終
了時点での前記計時値の内で最小のものを前記所定の比
較値から差し引いた値とすることを特徴とする。
ニット間の同期制御方法は、それぞれが専用のクロック
発振器を有し、このクロック発振器から供給されるクロ
ック信号に同期して、所定のループタイム内に所定の回
数割込み処理を行う処理を繰り返し、前記ループタイム
および前記各割込み処理の開始時点毎にプリセットされ
前記クロック信号を計時する計時動作を開始し、その計
時値が所定の比較値と一致したときに、新たに前記割込
み処理を行う処理ユニットが、複数存在するときに、前
記各処理ユニットの前記ループタイムにおける最後の割
込み処理が終了した時点で、前記各処理ユニット間の同
期を取り、全ての前記処理ユニットの前記ループタイム
の開始時点を一致させる同期制御方法において、前記処
理ユニットは、それぞれ前記割込み処理の開始直後は前
記比較値として、前記ループタイムを前記割込み処理の
回数で除した値とし、前記ループタイムの開始直後は前
記比較値として、全ての前記処理ユニットで平行して実
行された前回のループタイムの最後の前記割込み処理終
了時点での前記計時値の内で最小のものを前記所定の比
較値から差し引いた値とすることを特徴とする。
【0025】
【実施例】次に、本発明の実施例について図面を参照し
て説明する。
て説明する。
【0026】図2は本発明による同期制御方法が適用で
きる並列処理システムを示すブロック図である。本実施
例において、図示の並列処理システムは、ABS制御回
路である。
きる並列処理システムを示すブロック図である。本実施
例において、図示の並列処理システムは、ABS制御回
路である。
【0027】ABS制御回路は、第1および第2の処理
ユニットCPU1およびCPU2を有する。第1および
第2の処理ユニットCPU1およびCPU2には、それ
ぞれ、第1および第2のクロック発振器CO1およびC
O2から第1および第2のクロック周波数をもつ第1お
よび第2のクロックが供給される。
ユニットCPU1およびCPU2を有する。第1および
第2の処理ユニットCPU1およびCPU2には、それ
ぞれ、第1および第2のクロック発振器CO1およびC
O2から第1および第2のクロック周波数をもつ第1お
よび第2のクロックが供給される。
【0028】第1および第2の処理ユニットCPU1お
よびCPU2は、それぞれ、後述するように、第1およ
び第2の同期信号線11および12を介して第1および
第2の同期信号を第2および第1の処理ユニットCPU
2およびCPU1へ転送する。第1および第2の処理ユ
ニットCPU1およびCPU2はデータバス13を介し
て互いに接続されている。このデータバス13を介し
て、後述するように、第1および第2のタイマ値が、そ
れぞれ、第1および第2の処理ユニットCPU1および
CPU2から第2および第1の処理ユニットCPU2お
よびCPU1へ転送される。
よびCPU2は、それぞれ、後述するように、第1およ
び第2の同期信号線11および12を介して第1および
第2の同期信号を第2および第1の処理ユニットCPU
2およびCPU1へ転送する。第1および第2の処理ユ
ニットCPU1およびCPU2はデータバス13を介し
て互いに接続されている。このデータバス13を介し
て、後述するように、第1および第2のタイマ値が、そ
れぞれ、第1および第2の処理ユニットCPU1および
CPU2から第2および第1の処理ユニットCPU2お
よびCPU1へ転送される。
【0029】第1および第2の処理ユニットCPU1お
よびCPU2はそれぞれ第1および第2の制御信号を出
力する。第1および第2の制御信号はアンド回路14で
論理積が取られた後、アクチュエータ(ソレノイドバル
ブ)へ送出される。すなわち、アンド回路14では第1
の制御信号と第2の制御信号とが一致したときのみ、そ
の一致した制御信号をアクチュエータへ送出する。
よびCPU2はそれぞれ第1および第2の制御信号を出
力する。第1および第2の制御信号はアンド回路14で
論理積が取られた後、アクチュエータ(ソレノイドバル
ブ)へ送出される。すなわち、アンド回路14では第1
の制御信号と第2の制御信号とが一致したときのみ、そ
の一致した制御信号をアクチュエータへ送出する。
【0030】第1および第2の処理ユニットCPU1お
よびCPU2は、それぞれ、第1および第2の読出し専
用メモリ(図示せず)を備え、これらには全く同一のプ
ログラムが格納されている。したがって、第1および第
2の処理ユニットCPU1およびCPU2は、それぞ
れ、第1および第2のクロック発振器CO1およびCO
2から供給される第1および第2のクロックに同期して
同一の所定の処理を行う。従来の技術を説明するために
なされた仮定がここでもなされる。すなわち、ループタ
イムLTが6ミリ秒、予めレジスタ(後述する)に設定
される比較値CMが2ミリ秒に相当するとする。第1の
処理ユニットCPU1に供給される第1のクロックの第
1のクロック周波数よりも第1の処理ユニットCPU2
に供給される第2のクロックの第2のクロック周波数の
方が若干高いとする。したがって、第1の処理ユニット
CPU1の第1の時計(第1のインターバルタイマIT
1)よりも第2の処理ユニットCPU2の第2の時計
(第2のインターバルタイマIT2)の方が若干速く進
むことになる。
よびCPU2は、それぞれ、第1および第2の読出し専
用メモリ(図示せず)を備え、これらには全く同一のプ
ログラムが格納されている。したがって、第1および第
2の処理ユニットCPU1およびCPU2は、それぞ
れ、第1および第2のクロック発振器CO1およびCO
2から供給される第1および第2のクロックに同期して
同一の所定の処理を行う。従来の技術を説明するために
なされた仮定がここでもなされる。すなわち、ループタ
イムLTが6ミリ秒、予めレジスタ(後述する)に設定
される比較値CMが2ミリ秒に相当するとする。第1の
処理ユニットCPU1に供給される第1のクロックの第
1のクロック周波数よりも第1の処理ユニットCPU2
に供給される第2のクロックの第2のクロック周波数の
方が若干高いとする。したがって、第1の処理ユニット
CPU1の第1の時計(第1のインターバルタイマIT
1)よりも第2の処理ユニットCPU2の第2の時計
(第2のインターバルタイマIT2)の方が若干速く進
むことになる。
【0031】図1に第1および第2の読出し専用メモリ
に格納されるプログラムを示す。図5に示されたものと
同様に、図1に示したプログラムはメイン処理ルーチン
(図1(a))と割込み処理ルーチン(図1(b))と
を有する。第1および第2の処理ユニットCPU1およ
びCPU2の各々は、各ループタイムLTの間に、メイ
ン処理ルーチンと割込み処理ルーチンとをそれぞれ3回
繰り返すことになる。
に格納されるプログラムを示す。図5に示されたものと
同様に、図1に示したプログラムはメイン処理ルーチン
(図1(a))と割込み処理ルーチン(図1(b))と
を有する。第1および第2の処理ユニットCPU1およ
びCPU2の各々は、各ループタイムLTの間に、メイ
ン処理ルーチンと割込み処理ルーチンとをそれぞれ3回
繰り返すことになる。
【0032】図1において、従来の同期制御方法を実現
するプログラムを示す図5と同様のステップには同一参
照符号を付し、説明を簡単にするためにそれらの説明に
ついては省略する。図1において、図5と相違する点
は、割込み処理ルーチンに、比較値として予め設定した
値をレジスタに格納するステップS9を追加し、メイン
処理ルーチンに、タイマ値を読込むためのステップS1
0、タイマ値を他方のCPUへ転送するためのステップ
S11、自CPUと他方のCPUのタイマ値の小さい方
をタイマ値TMとして選択するステップS12、および
比較値として予め設定した値からタイマ値TMを差し引
いて得られる値をレジスタに格納するステップS13を
付加したことである。
するプログラムを示す図5と同様のステップには同一参
照符号を付し、説明を簡単にするためにそれらの説明に
ついては省略する。図1において、図5と相違する点
は、割込み処理ルーチンに、比較値として予め設定した
値をレジスタに格納するステップS9を追加し、メイン
処理ルーチンに、タイマ値を読込むためのステップS1
0、タイマ値を他方のCPUへ転送するためのステップ
S11、自CPUと他方のCPUのタイマ値の小さい方
をタイマ値TMとして選択するステップS12、および
比較値として予め設定した値からタイマ値TMを差し引
いて得られる値をレジスタに格納するステップS13を
付加したことである。
【0033】以下、本発明による同期制御方法につい
て、図1、図2および図3を参照して説明する。
て、図1、図2および図3を参照して説明する。
【0034】メイン処理ルーチンにおいて、ステップS
7で第1および第2の処理ユニットCPU1およびCP
U2との両方で同期信号が確認されたなら、第1および
第2の処理ユニットCPU1およびCPU2は、それぞ
れ、第1および第2のインターバルタイマIT1および
IT2の値を第1および第2のタイマ値TM1およびT
M2として読み込ん(ステップS10)だ後、第1およ
び第2のタイマ値TM1およびTM2をプリセットする
(ステップS8)。それから、第1および第2の処理ユ
ニットCPU1およびCPU2は、それぞれ、その読込
んだ第1および第2のタイマ値TM1およびTM2をデ
ータバス13(図2)を介して、第2および第1の処理
ユニットCPU2およびCPU1へ転送する(ステップ
S11)。第1および第2の処理ユニットCPU1およ
びCPU2では、各々、第1および第2のタイマ値TM
1およびTM2の中で小さい値の方をタイマ値TMとし
て選択する(ステップS12)。この例では、第1のタ
イマ値TM1の方が第2のタイマ値TM2より小さいの
で、タイマ値TMとして第1のタイマ値TM1が選択さ
れる。
7で第1および第2の処理ユニットCPU1およびCP
U2との両方で同期信号が確認されたなら、第1および
第2の処理ユニットCPU1およびCPU2は、それぞ
れ、第1および第2のインターバルタイマIT1および
IT2の値を第1および第2のタイマ値TM1およびT
M2として読み込ん(ステップS10)だ後、第1およ
び第2のタイマ値TM1およびTM2をプリセットする
(ステップS8)。それから、第1および第2の処理ユ
ニットCPU1およびCPU2は、それぞれ、その読込
んだ第1および第2のタイマ値TM1およびTM2をデ
ータバス13(図2)を介して、第2および第1の処理
ユニットCPU2およびCPU1へ転送する(ステップ
S11)。第1および第2の処理ユニットCPU1およ
びCPU2では、各々、第1および第2のタイマ値TM
1およびTM2の中で小さい値の方をタイマ値TMとし
て選択する(ステップS12)。この例では、第1のタ
イマ値TM1の方が第2のタイマ値TM2より小さいの
で、タイマ値TMとして第1のタイマ値TM1が選択さ
れる。
【0035】第1および第2の処理ユニットCPU1お
よびCPU2では、各々、予め設定した比較値CMから
タイマ値TMを差し引き、その差し引いて得られる値
を、レジスタ(図示せず)に新しい比較値CMとして格
納する(ステップS13)。すなわち、次のループタイ
ムLTの初回の比較値CMとして、予め設定した比較値
CMからタイマ値TMを差し引いた値が設定される。
よびCPU2では、各々、予め設定した比較値CMから
タイマ値TMを差し引き、その差し引いて得られる値
を、レジスタ(図示せず)に新しい比較値CMとして格
納する(ステップS13)。すなわち、次のループタイ
ムLTの初回の比較値CMとして、予め設定した比較値
CMからタイマ値TMを差し引いた値が設定される。
【0036】一方、2回目および3回目の比較値CM
は、それぞれ、1回目および2回目の割込み処理中に、
割込み処理ルーチンのステップS9で、予め設定した値
(2ミリ秒に相当する)にセットされる。
は、それぞれ、1回目および2回目の割込み処理中に、
割込み処理ルーチンのステップS9で、予め設定した値
(2ミリ秒に相当する)にセットされる。
【0037】この結果、図3に示されるように、ループ
タイムLTの開始時点から第1の割込み発生時点までの
時間は2ミリ秒からタイマ値TMを引いた時間に等し
い。また、第1の割込み発生時点から第2の割込み発生
時点までの時間および第2の割込み発生時点から第3の
割込み発生時点までの時間は2ミリ秒に等しい。そし
て、第3の割込み発生時点から次のループタイムLTの
開始時点までの時間、すなわち、割込み処理時間はタイ
マ値TMに等しい。その結果、各ループタイムLTは丁
度、遅い方のCPUの時計で、6ミリ秒に等しくなる。
タイムLTの開始時点から第1の割込み発生時点までの
時間は2ミリ秒からタイマ値TMを引いた時間に等し
い。また、第1の割込み発生時点から第2の割込み発生
時点までの時間および第2の割込み発生時点から第3の
割込み発生時点までの時間は2ミリ秒に等しい。そし
て、第3の割込み発生時点から次のループタイムLTの
開始時点までの時間、すなわち、割込み処理時間はタイ
マ値TMに等しい。その結果、各ループタイムLTは丁
度、遅い方のCPUの時計で、6ミリ秒に等しくなる。
【0038】上記実施例では、ソフトウェアによって本
発明による同期制御方法を実現する例について説明した
が、以下に述べるように、ハードウェアによって本発明
による同期制御方法を実現しても良い。
発明による同期制御方法を実現する例について説明した
が、以下に述べるように、ハードウェアによって本発明
による同期制御方法を実現しても良い。
【0039】図3に本発明による同期制御方法を実現す
る第1および第2の処理ユニットCPU1およびCPU
2の構成例を示す。
る第1および第2の処理ユニットCPU1およびCPU
2の構成例を示す。
【0040】第1および第2の処理ユニットCPU1お
よびCPU2の各々は、計時動作を行うインターバルタ
イマ21と、比較値CMを格納するレジスタ22とを有
する。従来においては、レジスタ22に格納される比較
値CMは固定値であるが、本発明では固定値ではなく後
述するように選択的に設定される。インターバルタイマ
21は後述するようにプリセットされる。インターバル
タイマ21の値と比較値CMとは比較器23で比較さ
れ、これらの値が一致したとき、比較器23は値一致信
号を出力する。この値一致信号は割込み信号として割込
み処理部24に供給される。また、値一致信号はオアゲ
ート25を介してインターバルタイマ21をプリセット
する。この値一致信号に応答して、カウンタ26は割込
み回数をカウントする。割込み回数と所定数(この例で
は“3”)とは比較器27で比較され、これらの数が一
致すると、比較器27は数一致信号を出力する。この数
一致信号はラッチ回路28でラッチされる。また、数一
致信号によってカウンタ26はリセットされる。
よびCPU2の各々は、計時動作を行うインターバルタ
イマ21と、比較値CMを格納するレジスタ22とを有
する。従来においては、レジスタ22に格納される比較
値CMは固定値であるが、本発明では固定値ではなく後
述するように選択的に設定される。インターバルタイマ
21は後述するようにプリセットされる。インターバル
タイマ21の値と比較値CMとは比較器23で比較さ
れ、これらの値が一致したとき、比較器23は値一致信
号を出力する。この値一致信号は割込み信号として割込
み処理部24に供給される。また、値一致信号はオアゲ
ート25を介してインターバルタイマ21をプリセット
する。この値一致信号に応答して、カウンタ26は割込
み回数をカウントする。割込み回数と所定数(この例で
は“3”)とは比較器27で比較され、これらの数が一
致すると、比較器27は数一致信号を出力する。この数
一致信号はラッチ回路28でラッチされる。また、数一
致信号によってカウンタ26はリセットされる。
【0041】数一致信号をラッチすると、ラッチ回路2
8はそのラッチした信号をアンドゲート29へ供給す
る。アンドゲート29には割込み処理部24から割込み
処理終了信号が供給される。したがって、アンドゲート
29は、割込み回数が“3”になった後に供給される割
込み処理終了信号を通過させる。このアンドゲート29
を通過した信号は同期信号として他のCPUへ送出され
ると共にアンドゲート3へも供給される。この通過した
割込み処理終了信号に応答して、レジスタ31はインタ
ーバルタイマ21の値を保持する。この保持した値は、
割込み処理時間に対応するタイマ値に等しい。このレジ
スタ31に保持されたタイマ値は、データバス13を介
して他のCPUへ転送される。一方、レジスタ32は他
のCPUから転送されてきたタイマ値を保持する。
8はそのラッチした信号をアンドゲート29へ供給す
る。アンドゲート29には割込み処理部24から割込み
処理終了信号が供給される。したがって、アンドゲート
29は、割込み回数が“3”になった後に供給される割
込み処理終了信号を通過させる。このアンドゲート29
を通過した信号は同期信号として他のCPUへ送出され
ると共にアンドゲート3へも供給される。この通過した
割込み処理終了信号に応答して、レジスタ31はインタ
ーバルタイマ21の値を保持する。この保持した値は、
割込み処理時間に対応するタイマ値に等しい。このレジ
スタ31に保持されたタイマ値は、データバス13を介
して他のCPUへ転送される。一方、レジスタ32は他
のCPUから転送されてきたタイマ値を保持する。
【0042】アンドゲート30には他のCPUから転送
されてきた同期信号が供給される。したがって、アンド
ゲート30は自CPUと他のCPUの両方から同期信号
を受け取ると、同期タイミング信号をオアゲート25を
介してインターバルタイマ21へ供給してインターバル
タイマ21をプリセットする。また、この同期タイミン
グ信号によって、ラッチ回路28はリセットされる。
されてきた同期信号が供給される。したがって、アンド
ゲート30は自CPUと他のCPUの両方から同期信号
を受け取ると、同期タイミング信号をオアゲート25を
介してインターバルタイマ21へ供給してインターバル
タイマ21をプリセットする。また、この同期タイミン
グ信号によって、ラッチ回路28はリセットされる。
【0043】最小値選択回路33は2つのレジスタ31
および32に保持されたタイマ値の内、小さい値の方を
選択して、選択したタイマ値TMを出力する。減算器3
4は、予め設定した値(この値は2ミリ秒に相当し、本
例では“10”)からタイマ値TMを減算して、減算結
果を出力する。減算結果と予め設定された値との一方が
セレクタ35で選択され、この選択した値が比較値CM
としてレジスタ22に格納される。セレクタ35には、
ラッチ回路28から出力されるラッチした信号を遅延回
路36で所定遅延時間だけ遅延した信号が選択指示信号
として供給される。ここで、ラッチ回路28から出力さ
れるラッチした信号を、直接、選択指示信号としてセレ
クタ35に供給せず、遅延回路36からの遅延した信号
をセレクタ35の選択指示信号として使用した理由につ
いては、遅延回路36の所定遅延時間の範囲と共に、後
で詳述する。とにかく、セレクタ35は、選択指示信号
が論理ハイレベルHを示しているときには、選択した値
として減算結果を選択し、選択指示信号が論理ロウレベ
ルLを示しているときには、選択した値として予め設定
した値を選択する。
および32に保持されたタイマ値の内、小さい値の方を
選択して、選択したタイマ値TMを出力する。減算器3
4は、予め設定した値(この値は2ミリ秒に相当し、本
例では“10”)からタイマ値TMを減算して、減算結
果を出力する。減算結果と予め設定された値との一方が
セレクタ35で選択され、この選択した値が比較値CM
としてレジスタ22に格納される。セレクタ35には、
ラッチ回路28から出力されるラッチした信号を遅延回
路36で所定遅延時間だけ遅延した信号が選択指示信号
として供給される。ここで、ラッチ回路28から出力さ
れるラッチした信号を、直接、選択指示信号としてセレ
クタ35に供給せず、遅延回路36からの遅延した信号
をセレクタ35の選択指示信号として使用した理由につ
いては、遅延回路36の所定遅延時間の範囲と共に、後
で詳述する。とにかく、セレクタ35は、選択指示信号
が論理ハイレベルHを示しているときには、選択した値
として減算結果を選択し、選択指示信号が論理ロウレベ
ルLを示しているときには、選択した値として予め設定
した値を選択する。
【0044】以下、本発明のハードウェアによる同期制
御方法について、図2、図3および図4を参照して説明
する。
御方法について、図2、図3および図4を参照して説明
する。
【0045】第1および第2の処理ユニットCPU1お
よびCPU2との両方で同期信号がアンドゲート30に
より確認されたなら、第1および第2の処理ユニットC
PU1およびCPU2は、それぞれ、第1および第2の
インターバルタイマIT1およびIT2の値を第1およ
び第2のタイマ値TM1およびTM2としてレジスタ3
1および32に読み込んだ後、第1および第2のタイマ
値TM1およびTM2をプリセットする。それから、第
1および第2の処理ユニットCPU1およびCPU2
は、それぞれ、その読込んだ第1および第2のタイマ値
TM1およびTM2をデータバス13(図2)を介し
て、第2および第1の処理ユニットCPU2およびCP
U1へ転送する。第1および第2の処理ユニットCPU
1およびCPU2では、各々、最小値選択器33によ
り、第1および第2のタイマ値TM1およびTM2の中
で小さい値の方をタイマ値TMとして選択する。この例
では、第1のタイマ値TM1の方が第2のタイマ値TM
2より小さいので、タイマ値TMとして第1のタイマ値
TM1が選択される。
よびCPU2との両方で同期信号がアンドゲート30に
より確認されたなら、第1および第2の処理ユニットC
PU1およびCPU2は、それぞれ、第1および第2の
インターバルタイマIT1およびIT2の値を第1およ
び第2のタイマ値TM1およびTM2としてレジスタ3
1および32に読み込んだ後、第1および第2のタイマ
値TM1およびTM2をプリセットする。それから、第
1および第2の処理ユニットCPU1およびCPU2
は、それぞれ、その読込んだ第1および第2のタイマ値
TM1およびTM2をデータバス13(図2)を介し
て、第2および第1の処理ユニットCPU2およびCP
U1へ転送する。第1および第2の処理ユニットCPU
1およびCPU2では、各々、最小値選択器33によ
り、第1および第2のタイマ値TM1およびTM2の中
で小さい値の方をタイマ値TMとして選択する。この例
では、第1のタイマ値TM1の方が第2のタイマ値TM
2より小さいので、タイマ値TMとして第1のタイマ値
TM1が選択される。
【0046】第1および第2の処理ユニットCPU1お
よびCPU2では、各々、減算器34によって予め設定
した比較値CMからタイマ値TMを差し引き、その差し
引いて得られる値を、セククタ35を介してレジスタ2
2に新しい比較値CMとして格納する。すなわち、次の
ループタイムLTの初回の比較値CMとして、予め設定
した比較値CMからタイマ値TMを差し引いた値が設定
される。
よびCPU2では、各々、減算器34によって予め設定
した比較値CMからタイマ値TMを差し引き、その差し
引いて得られる値を、セククタ35を介してレジスタ2
2に新しい比較値CMとして格納する。すなわち、次の
ループタイムLTの初回の比較値CMとして、予め設定
した比較値CMからタイマ値TMを差し引いた値が設定
される。
【0047】ここで、減算器34からの減算値を、セク
クタ35を介してレジスタ22に新しい比較値CMとし
て格納する格納タイミングについて、上記遅延回路36
の所定遅延時間と関連づけて説明する。この格納タイミ
ングは、次の条件を満足する必要がある。格納タイミ
ングが図3の『CM=CM−TM』時点より前であるこ
と。図3の『CM=CM−TM』時点で、セレクタ3
5は減算器34側を選択していること。この2つの条件
を満足させるために、遅延回路36に設定される所定遅
延時間Tdは、次の数式1で表される範囲を満足する必
要がある。
クタ35を介してレジスタ22に新しい比較値CMとし
て格納する格納タイミングについて、上記遅延回路36
の所定遅延時間と関連づけて説明する。この格納タイミ
ングは、次の条件を満足する必要がある。格納タイミ
ングが図3の『CM=CM−TM』時点より前であるこ
と。図3の『CM=CM−TM』時点で、セレクタ3
5は減算器34側を選択していること。この2つの条件
を満足させるために、遅延回路36に設定される所定遅
延時間Tdは、次の数式1で表される範囲を満足する必
要がある。
【0048】
【数1】
【0049】一方、2回目および3回目の比較値CM
は、それぞれ、割込み処理部24での1回目および2回
目の割込み処理中に、セレクタ35によって予め設定し
た値(2ミリ秒に相当する“10”)にセットされる。
は、それぞれ、割込み処理部24での1回目および2回
目の割込み処理中に、セレクタ35によって予め設定し
た値(2ミリ秒に相当する“10”)にセットされる。
【0050】この結果、図3に示されるように、ループ
タイムLTの開始時点から第1の割込み発生時点までの
時間は2ミリ秒からタイマ値TMを引いた時間に等し
い。また、第1の割込み発生時点から第2の割込み発生
時点までの時間および第2の割込み発生時点から第3の
割込み発生時点までの時間は2ミリ秒に等しい。そし
て、第3の割込み発生時点から次のループタイムLTの
開始時点までの時間、すなわち、割込み処理時間はタイ
マ値TMに等しい。その結果、各ループタイムLTは丁
度、遅い方のCPUの時計で、6ミリ秒に等しくなる。
タイムLTの開始時点から第1の割込み発生時点までの
時間は2ミリ秒からタイマ値TMを引いた時間に等し
い。また、第1の割込み発生時点から第2の割込み発生
時点までの時間および第2の割込み発生時点から第3の
割込み発生時点までの時間は2ミリ秒に等しい。そし
て、第3の割込み発生時点から次のループタイムLTの
開始時点までの時間、すなわち、割込み処理時間はタイ
マ値TMに等しい。その結果、各ループタイムLTは丁
度、遅い方のCPUの時計で、6ミリ秒に等しくなる。
【0051】上述した実施例では、同期制御方法をAB
S制御回路に適用した場合について説明したが、カーエ
レクトロニクスの分野で高信頼性が要求され、暴走を回
避しなければならないシステム、例えば、4輪操舵制御
回路やトラクション制御回路にも適用できる。さらに、
カーエレクトロニクスの分野以外にも信頼性が要求され
るシステム、例えば、航空機の制御システム等へも本発
明の同期制御方法が適用可能である。
S制御回路に適用した場合について説明したが、カーエ
レクトロニクスの分野で高信頼性が要求され、暴走を回
避しなければならないシステム、例えば、4輪操舵制御
回路やトラクション制御回路にも適用できる。さらに、
カーエレクトロニクスの分野以外にも信頼性が要求され
るシステム、例えば、航空機の制御システム等へも本発
明の同期制御方法が適用可能である。
【0052】また、上記実施例では、処理ユニットを2
個含む並列処理システムの場合について説明したが、3
個以上の処理ユニットを有する並列処理システムにも同
様に適用できる。
個含む並列処理システムの場合について説明したが、3
個以上の処理ユニットを有する並列処理システムにも同
様に適用できる。
【0053】
【発明の効果】以上説明したように、本発明によれば、
ループが終了する毎に複数の処理ユニット間で同期を取
り、各々の処理ユニットのタイマ値をデータ転送し、タ
イマ値の最小のものを比較値から引いた値を、次のルー
プの初回の比較値とすることにより、割込み間隔を常に
同じにすることができ、また、ループタイムも割込み処
理により作ることができるので、割込み処理内で制御出
力を行え、並列処理システムに対してより緻密な制御を
行なわせることができる。
ループが終了する毎に複数の処理ユニット間で同期を取
り、各々の処理ユニットのタイマ値をデータ転送し、タ
イマ値の最小のものを比較値から引いた値を、次のルー
プの初回の比較値とすることにより、割込み間隔を常に
同じにすることができ、また、ループタイムも割込み処
理により作ることができるので、割込み処理内で制御出
力を行え、並列処理システムに対してより緻密な制御を
行なわせることができる。
【図1】本発明の一実施例による同期制御方法を実現す
るために各処理ユニットの読出し専用メモリに格納され
るプログラムを表すフローチャートである。
るために各処理ユニットの読出し専用メモリに格納され
るプログラムを表すフローチャートである。
【図2】本発明が適用される並列処理システムを示すブ
ロック図である。
ロック図である。
【図3】本発明の一実施例による同期制御方法を説明す
るためのタイムチャートである。
るためのタイムチャートである。
【図4】並列処理システムを構成する各処理ユニットの
機能ブロック図である。
機能ブロック図である。
【図5】従来の同期制御方法を実現するために各処理ユ
ニットの読出し専用メモリに格納されるプログラムを表
すフローチャートである。
ニットの読出し専用メモリに格納されるプログラムを表
すフローチャートである。
【図6】従来の同期制御方法を説明するためのタイムチ
ャートである。
ャートである。
S1 メイン処理ルーチン中のメイン処理ステップ S2 割込み回数計数ステップ S3 タイマプリセットステップ S5 割込み回数判定ステップ S6 割込み回数リセットステップ S7 同期確認ステップ S8 タイマプリセットステップ S9 比較値設定ステップ S10 タイマ値読込みステップ S11 タイマ値転送ステップ S12 タイマ値選択ステップ S13 比較値設定ステップ
Claims (1)
- 【請求項1】 それぞれが専用のクロック発振器を有
し、このクロック発振器から供給されるクロック信号に
同期して、所定のループタイム内に所定の回数割込み処
理を行う処理を繰り返し、前記ループタイムおよび前記
各割込み処理の開始時点毎にプリセットされ前記クロッ
ク信号を計時する計時動作を開始し、その計時値が所定
の比較値と一致したときに、新たに前記割込み処理を行
う処理ユニットが、複数存在するときに、前記各処理ユ
ニットの前記ループタイムにおける最後の割込み処理が
終了した時点で、前記各処理ユニット間の同期を取り、
全ての前記処理ユニットの前記ループタイムの開始時点
を一致させる同期制御方法において、 前記処理ユニットは、それぞれ前記割込み処理の開始直
後は前記比較値として、前記ループタイムを前記割込み
処理の回数で除した値とし、前記ループタイムの開始直
後は前記比較値として、全ての前記処理ユニットで平行
して実行された前回のループタイムの最後の前記割込み
処理終了時点での前記計時値の内で最小のものを前記所
定の比較値から差し引いた値とすることを特徴とする複
数処理ユニット間の同期制御方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP3338818A JPH05173984A (ja) | 1991-12-20 | 1991-12-20 | 複数処理ユニット間の同期制御方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP3338818A JPH05173984A (ja) | 1991-12-20 | 1991-12-20 | 複数処理ユニット間の同期制御方法 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH05173984A true JPH05173984A (ja) | 1993-07-13 |
Family
ID=18321741
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP3338818A Pending JPH05173984A (ja) | 1991-12-20 | 1991-12-20 | 複数処理ユニット間の同期制御方法 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH05173984A (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2007316815A (ja) * | 2006-05-24 | 2007-12-06 | Nec Corp | クロック異常検出方法及びクロック異常検出プログラム |
-
1991
- 1991-12-20 JP JP3338818A patent/JPH05173984A/ja active Pending
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2007316815A (ja) * | 2006-05-24 | 2007-12-06 | Nec Corp | クロック異常検出方法及びクロック異常検出プログラム |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5684702A (en) | Control system having data correlation for controlling a vehicular anti-lock braking system | |
| JP2746587B2 (ja) | 複合計算機装置の計算機の動作監視およびエラー修正方法及び複合計算機装置 | |
| US6943590B2 (en) | Clock monitoring apparatus | |
| JPS59209940A (ja) | 車輪情報演算装置 | |
| JPH10513286A (ja) | プログラム制御回路の機能をモニタするための処理及び回路構成 | |
| JP3752884B2 (ja) | 自己監視機能付き車載用電子制御装置 | |
| US5485379A (en) | Method and system for detecting the proper functioning of an ABS control unit utilizing substantially identical programmed microprocessors | |
| JP2968733B2 (ja) | シリアルバスコントローラ | |
| US5490072A (en) | Method and system for detecting the proper functioning of an ABS control unit utilizing dual programmed microprocessors | |
| JP3916495B2 (ja) | フェイルセーフ機能を備えたコントローラ | |
| JPH0581222A (ja) | 2cpuの動作監視方法 | |
| JPH06321076A (ja) | 複数cpuを備えた車両制御用コンピュータシステムにおける演算同期方法 | |
| JPS61120247A (ja) | 制御装置の暴走検出装置 | |
| JPH08305664A (ja) | Cpu監視方法及びcpu監視装置 | |
| JPH08305611A (ja) | Cpu監視方法及びcpu監視装置 | |
| JP3314791B2 (ja) | マルチプロセッサシステムの同期化方式 | |
| JP3415636B2 (ja) | プロセッサ装置 | |
| JP2879480B2 (ja) | 冗長計算機システムの同期外れ時の切替方式 | |
| JP2588290B2 (ja) | データ入出力システム | |
| JP2536789Y2 (ja) | マイクロコンピュータシステムの誤動作防止装置 | |
| JPS5855535B2 (ja) | 車両用マルチコンピユ−タ装置 | |
| JPS6224820B2 (ja) | ||
| JPH09198280A (ja) | システム監視用パルス生成方法および監視用パルス生成機能を備えたリアルタイム・オペレーティングシステム | |
| JP2000035903A (ja) | マイクロコンピュータの暴走監視装置 | |
| JPS59127164A (ja) | マルチシステムの同期化装置 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20000308 |