(57)【特許請求の範囲】
【請求項１】
ネットワークに接続される複数台の計算機における各計算機は、
複数の機能を駆動させる複数の駆動ソフトウェアと、
前記複数の駆動ソフトウェアの駆動による処理データを記憶するメモリと、
前記メモリに記憶された処理データを他の計算機に転送することにより、前記複数台の計算機に共通化した処理内容で前記複数の機能を開始させる一致化機構と
を備え、複数台の計算機に同じ処理を多重化して行なわせ、
前記複数の駆動ソフトウェアは、周期駆動ソフトウェアと通信駆動ソフトウェアであり、前記一致化機構により前記複数台の計算機における各ソフトウェアの処理データを一致化させ、
前記一致化機構は、
前記周期駆動ソフトウェアが前記メモリに記憶する処理データを一致化するメモリ一致化機構と、
前記周期駆動ソフトウェアが駆動するタイミングを一致化するタイマ一致化機構と、
前記通信駆動ソフトウェアが同じ受信データから受信できるようにタイミングを一致化する受信一致化機構と
を有し、
前記周期駆動ソフトウェア，前記通信駆動ソフトウェアがそれぞれタイマ駆動待ち，受信待ちとなっている状態で、前記メモリ一致化機構による他の計算機への処理データの転送中に自己の計算機で発生した処理データの更新である差分データのサイズに基づき、前記メモリ一致化機構，前記タイマ一致化機構及び前記受信一致化機構での一致化に要する時間と、前記周期駆動ソフトウェアを次回周期起動するまでの時間とを比較し、前記一致化に要する時間のほうが小さいことを条件として、前記メモリ一致化機構により前記差分データを他の計算機へ転送させるとともに前記タイマ一致化機構及び前記受信一致化機構による一致化処理を行わせる一致化管理機構をさらに備えたことを特徴とする計算機システム。
【請求項２】
前記受信一致化機構は、一致化処理中に受信データを格納しておき、一致化処理が終わった後に、前記通信駆動ソフトウェアに受信データを受信させることで、受信データを連続させて共通化処理を行うことを特徴とする請求項１記載の計算機システム。
【請求項３】
ネットワークに接続される複数台の計算機における各計算機の処理は、
複数の機能を複数の駆動ソフトウェアにより駆動させる駆動ステップと、
前記複数の駆動ソフトウェアの駆動による処理データをメモリに記憶する記憶ステップと、
前記各計算機に備えられた一致化機構により、前記メモリに記憶された処理データを他の計算機に転送することにより、前記複数台の計算機に共通化した処理内容で前記複数の機能を開始させる一致化ステップと
を含み、複数台の計算機に同じ処理を多重化して行なわせ、
前記複数の駆動ソフトウェアは、周期駆動ソフトウェアと通信駆動ソフトウェアであり、前記一致化ステップにより前記複数台の計算機における各ソフトウェアの処理データを一致化させ、
前記一致化ステップは、
前記各計算機に備えられたメモリ一致化機構により、前記周期駆動ソフトウェアが前記メモリに記憶する処理データを一致化するメモリ一致化ステップと、
前記各計算機に備えられたタイマ一致化機構により、前記周期駆動ソフトウェアが駆動するタイミングを一致化するタイマ一致化ステップと、
前記各計算機に備えられた受信一致化機構により、前記通信駆動ソフトウェアが同じ受信データから受信できるようにタイミングを一致化する受信一致化ステップと
を含み、
前記各計算機に備えられた一致化管理機構により、前記周期駆動ソフトウェア，前記通信駆動ソフトウェアがそれぞれタイマ駆動待ち，受信待ちとなっている状態で、前記メモリ一致化ステップによる他の計算機への処理データの転送中に自己の計算機で発生した処理データの更新である差分データのサイズに基づき、前記メモリ一致化ステップ，前記タイマ一致化ステップ及び前記受信一致化ステップでの一致化に要する時間と、前記周期駆動ソフトウェアを次回周期起動するまでの時間とを比較し、前記一致化に要する時間のほうが小さいことを条件として、前記メモリ一致化ステップにより前記差分データを他の計算機へ転送させるとともに前記タイマ一致化ステップ及び前記受信一致化ステップによる一致化処理を行わせる一致化管理ステップをさらに含むことを特徴とする計算機制御方法。
【請求項４】
前記受信一致化ステップは、一致化処理中に受信データを格納しておき、一致化処理が終わった後に、前記通信駆動ソフトウェアに受信データを受信させることで、受信データを連続させて共通化処理を行うことを特徴とする請求項３記載の計算機制御方法。
【請求項５】
ネットワークに接続される複数台の計算機における各計算機のコンピュータに対して、
複数の機能を複数の駆動ソフトウェアにより駆動させる駆動機能と、
前記複数の駆動ソフトウェアの駆動による処理データをメモリに記憶する記憶機能と、
前記メモリに記憶された処理データを他の計算機に転送することにより、前記複数台の計算機に共通化した処理内容で前記複数の機能を開始させる一致化機能と
を実現させることにより、複数台の計算機に同じ処理を多重化して行なわせ、
前記複数の駆動ソフトウェアは、周期駆動ソフトウェアと通信駆動ソフトウェアであり、前記一致化機能により前記複数台の計算機における各ソフトウェアの処理データを一致化させ、
前記一致化機能は、
前記周期駆動ソフトウェアが前記メモリに記憶する処理データを一致化するメモリ一致化機能と、
前記周期駆動ソフトウェアが駆動するタイミングを一致化するタイマ一致化機能と、
前記通信駆動ソフトウェアが同じ受信データから受信できるようにタイミングを一致化する受信一致化機能と
を含み、
前記周期駆動ソフトウェア，前記通信駆動ソフトウェアがそれぞれタイマ駆動待ち，受信待ちとなっている状態で、前記メモリ一致化機能による他の計算機への処理データの転送中に自己の計算機で発生した処理データの更新である差分データのサイズに基づき、前記メモリ一致化機能，前記タイマ一致化機能及び前記受信一致化機能での一致化に要する時間と、前記周期駆動ソフトウェアを次回周期起動するまでの時間とを比較し、前記一致化に要する時間のほうが小さいことを条件として、前記メモリ一致化機能により前記差分データを他の計算機へ転送させるとともに前記タイマ一致化機能及び前記受信一致化機能による一致化処理を行わせる一致化管理機能をさらに前記各計算機のコンピュータに実現させるための計算機制御プログラム。
【請求項６】
前記受信一致化機能は、一致化処理中に受信データを格納しておき、一致化処理が終わった後に、前記通信駆動ソフトウェアに受信データを受信させることで、受信データを連続させて共通化処理を行うことを特徴とする請求項５記載の計算機制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば、複数台の計算機に同じ処理を多重化して行なわせるフォールトトレラントシステムに適用可能な計算機システム、計算機制御方法及び計算機制御プログラムに関するものである。
【背景技術】
【０００２】
１台の計算機に障害が発生した際にも、他の計算機が切り替わって処理をすることで計算機の処理を継続させる多重化システムやフォールトトレラントシステムが知られている（特許文献１参照）。
【０００３】
これらのシステムでは、他の計算機が切り替わる際の時間を短縮するために、複数の計算機にて同じ処理を行ない、切り替わる際には処理結果などを他の計算機に引継ぐという処理を無くしている。
【特許文献１】特開２００７−７２９８０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
上述した特許文献１に記載の技術のように、複数の計算機にて同じ処理を行なうシステムにて、ハードウェア障害などにより１台の計算機が停止し、残りの計算機にて処理を継続している場合、以下のような復旧処理を行う。
【０００５】
すなわち、障害が発生した計算機は、障害要因を特定し、ハードウェア交換等の処置を行なった後、その計算機を起動し、再度、継続していた処理と同じ処理を行なうようにする必要がある。
このため、残りの計算機は、現在実行中の処理を停止し、最新の処理データを復旧する計算機へコピーする。その後、全ての計算機で処理を一斉に起動することで、同じ処理をすることが可能となる。
【０００６】
しかし、計算機で処理するソフトウェアが、周期駆動ソフトウェアのように一定周期で常に行なわれる処理であった場合、この処理を一度停止して、再度処理を開始することとなる。このため、処理データのコピー時間によっては、常に一定周期で行なわれるはずの処理が行なわれない場合に、周期抜けが発生してしまう。
【０００７】
また、通信駆動ソフトウェアのように外部装置からの受信データによって処理をする必要があった場合、このソフトウェアが停止中に外部装置から通信を送信されてきた時に受信することができず、受信抜けが発生してしまう。
【０００８】
そこで、本発明は、復旧する計算機に同じ処理を行なわせるようにする際に、稼動中の計算機で行なわれている周期駆動ソフトウェアの周期抜け、及び通信駆動ソフトウェアの受信抜けが発生しないような計算機システムを提供することを目的とするものである。
【課題を解決するための手段】
【０００９】
上記目的を達成するために、本発明の計算機システムでは、ネットワークに接続される複数台の計算機における各計算機は、複数の機能を駆動させる複数の駆動ソフトウェアと、複数の駆動ソフトウェアの駆動による処理データを記憶するメモリとを備えている。
さらに、各計算機は、メモリに記憶された処理データを他の計算機に転送することにより、複数台の計算機に共通化した処理内容で複数の機能を開始させる一致化機構を備え、複数台の計算機に同じ処理を多重化して行なわせることを特徴とする。
さらに、複数の駆動ソフトウェアは、周期駆動ソフトウェアと通信駆動ソフトウェアであり、一致化機構により複数台の計算機における各ソフトウェアの処理データを一致化させ、
一致化機構は、
周期駆動ソフトウェアがメモリに記憶する処理データを一致化するメモリ一致化機構と、
周期駆動ソフトウェアが駆動するタイミングを一致化するタイマ一致化機構と、
通信駆動ソフトウェアが同じ受信データから受信できるようにタイミングを一致化する受信一致化機構と
を有し、
周期駆動ソフトウェア，通信駆動ソフトウェアがそれぞれタイマ駆動待ち，受信待ちとなっている状態で、メモリ一致化機構による他の計算機への処理データの転送中に自己の計算機で発生した処理データの更新である差分データのサイズに基づき、メモリ一致化機構，タイマ一致化機構及び受信一致化機構での一致化に要する時間と、周期駆動ソフトウェアを次回周期起動するまでの時間とを比較し、一致化に要する時間のほうが小さいことを条件として、メモリ一致化機構により差分データを他の計算機へ転送させるとともにタイマ一致化機構及び受信一致化機構による一致化処理を行わせる一致化管理機構をさらに備えたことを特徴とする。
【００１０】
また、本発明の計算機制御方法では、ネットワークに接続される複数台の計算機における各計算機の処理は、複数の機能を複数の駆動ソフトウェアにより駆動させる駆動ステップと、複数の駆動ソフトウェアの駆動による処理データをメモリに記憶する記憶ステップとを含んでいる。
さらに、各計算機の処理は、各計算機に備えられた一致化機構により、メモリに記憶された処理データを他の計算機に転送することにより、複数台の計算機に共通化した処理内容で複数の機能を開始させる一致化ステップを含み、複数台の計算機に同じ処理を多重化して行なわせることを特徴とする。
さらに、複数の駆動ソフトウェアは、周期駆動ソフトウェアと通信駆動ソフトウェアであり、一致化ステップにより複数台の計算機における各ソフトウェアの処理データを一致化させ、
一致化ステップは、
各計算機に備えられたメモリ一致化機構により、周期駆動ソフトウェアがメモリに記憶する処理データを一致化するメモリ一致化ステップと、
各計算機に備えられたタイマ一致化機構により、周期駆動ソフトウェアが駆動するタイミングを一致化するタイマ一致化ステップと、
各計算機に備えられた受信一致化機構により、通信駆動ソフトウェアが同じ受信データから受信できるようにタイミングを一致化する受信一致化ステップと
を含み、
各計算機に備えられた一致化管理機構により、周期駆動ソフトウェア，通信駆動ソフトウェアがそれぞれタイマ駆動待ち，受信待ちとなっている状態で、メモリ一致化ステップによる他の計算機への処理データの転送中に自己の計算機で発生した処理データの更新である差分データのサイズに基づき、メモリ一致化ステップ，タイマ一致化ステップ及び受信一致化ステップでの一致化に要する時間と、周期駆動ソフトウェアを次回周期起動するまでの時間とを比較し、一致化に要する時間のほうが小さいことを条件として、メモリ一致化ステップにより差分データを他の計算機へ転送させるとともにタイマ一致化ステップ及び受信一致化ステップによる一致化処理を行わせる一致化管理ステップをさらに含むことを特徴とする。
【００１１】
また、本発明の計算機制御プログラムは、ネットワークに接続される複数台の計算機における各計算機のコンピュータに対して、複数の機能を複数の駆動ソフトウェアにより駆動させる駆動機能と、複数の駆動ソフトウェアの駆動による処理データをメモリに記憶する記憶機能とを実現させる。
【００１２】
さらに、計算機制御プログラムは、各計算機のコンピュータに対して、メモリに記憶された処理データを他の計算機に転送することにより、複数台の計算機に共通化した処理内容で複数の機能を開始させる一致化機能を実現させる。これにより、複数台の計算機に同じ処理を多重化して行なわせることを特徴とする。
さらに、複数の駆動ソフトウェアは、周期駆動ソフトウェアと通信駆動ソフトウェアであり、一致化機能により複数台の計算機における各ソフトウェアの処理データを一致化させ、
一致化機能は、
周期駆動ソフトウェアがメモリに記憶する処理データを一致化するメモリ一致化機能と、
周期駆動ソフトウェアが駆動するタイミングを一致化するタイマ一致化機能と、
通信駆動ソフトウェアが同じ受信データから受信できるようにタイミングを一致化する受信一致化機能と
を含み、
周期駆動ソフトウェア，通信駆動ソフトウェアがそれぞれタイマ駆動待ち，受信待ちとなっている状態で、メモリ一致化機能による他の計算機への処理データの転送中に自己の計算機で発生した処理データの更新である差分データのサイズに基づき、メモリ一致化機能，タイマ一致化機能及び受信一致化機能での一致化に要する時間と、周期駆動ソフトウェアを次回周期起動するまでの時間とを比較し、一致化に要する時間のほうが小さいことを条件として、メモリ一致化機能により差分データを他の計算機へ転送させるとともにタイマ一致化機能及び受信一致化機能による一致化処理を行わせる一致化管理機能をさらに各計算機のコンピュータに実現させることを特徴とする。
【発明の効果】
【００１３】
本発明によれば、複数の計算機にて同じ処理を行なうシステムで障害復旧する際、稼動中の計算機で行なわれている周期駆動ソフトウェアの周期抜けや、通信駆動ソフトウェアの受信抜けを起こさないようにすることができるという効果を奏する。
このため、復旧する計算機に稼動中の計算機と連続した同じ処理を行なわせることが可能となるという効果が得られる。
【発明を実施するための最良の形態】
【００１４】
以下、本発明の一実施の形態を、図１〜１２を参照して説明する。
図１は、本実施の形態例のシステム構成例を示している。
図１において、本実施の形態例の計算機システム１０は、演算処理を行なうＣＰＵ（Central Processing Unit）ノード１１〜１４と、演算処理の結果を照合する照合ノード２１〜２８を備えている。
【００１５】
２ｎ（ｎは２以上の自然数）台からなる複数のＣＰＵノード１１〜１４は、それぞれ多重化ネットワーク１に接続し、２ｍ（ｍは２以上の自然数）台からなる複数の照合ノード２１〜２８は、それぞれ多重化ネットワーク１と外部ネットワーク２に接続している。
【００１６】
各ＣＰＵノード１１〜１４及び各照合ノード２１〜２８は、それぞれ“ＣＰＵ１”〜“ＣＰＵ２ｎ”、“照合１”〜“照合２ｍ”のシステム全体でユニークとなるノード番号が割り振られている。ただし、同じノード番号は存在しないものとする。
【００１７】
なお、多重化ネットワーク１は、二重化以上の多重化ネットワークであり、外部ネットワーク２は、二重化以上の多重化ネットワークでも可能とする。また、この２つのネットワークはネットワークに限定しない。すなわち、バス状でもスター状でもよい。
【００１８】
図１は、多重化ネットワーク１をＬＡＮ（Local Area Network）１系３、ＬＡＮ２系４で構成された二重化ネットワークとし、外部ネットワーク２を単一のネットワークとする構成例である。なお、図１に示すＬＡＮの代わりに、イーサネット（登録商標）（Ethernet（登録商標））で構成することもできる。
【００１９】
各照合ノード２１〜２８は２台のノードで１つのペアを組むように構成されており、図１においては、ｍ組の照合ノードペア３１〜３４がとして構成されている。照合ノードペア３１〜３４のうち、１組のペアが主系ペア３１となった場合、他の（ｍ−１）組の照合ノードペアは従系ペア３２〜３４となる。このように、照合ノードペア間において、主従関係を持つように構成される。
【００２０】
主系ペア３１には、“主系”のペア番号４０が割り振られており、各従系ペア３２〜３４はそれぞれ“従系１”〜“従系（ｍ−１）”のペア番号４１〜４３が割り振られている。すなわち、図１では、主系ペア４０、従系ペア４１〜４３となる。システム全体において同じペア番号は存在しないものとする。
【００２１】
ここで、ＣＰＵノード１１〜１４には、図示しないドメインネームサーバにより、それぞれ多重化ネットワーク１に対して、ＬＡＮ１系３においてＩＰ（Internet Protocol）アドレスＡ１、Ｂ１、Ｃ１、Ｄ１が割り当てられ、ＬＡＮ２系４においてＩＰアドレスＡ２、Ｂ２、Ｃ２、Ｄ２が割り当てられている。
【００２２】
また、各照合ノード２１〜２８には、図示しないドメインネームサーバにより、それぞれ多重化ネットワーク１に対して、ＬＡＮ１系３においてＩＰアドレスａ１、ｂ１、ｃ１、ｄ１、ｅ１、ｆ１、ｇ１、ｈ１が割り当てられ、ＬＡＮ２系４においてはＩＰアドレスａ２、ｂ２、ｃ２、ｄ２、ｅ２、ｆ２、ｇ２、ｈ２が割り当てられている。
【００２３】
本発明における多重化システムの再組込みに適用される計算機は、図２のようなペア構成をとる。ここで、再組込みとは、計算機５１が実行中の処理を計算機５２に連続して同じ実行させて、複数台の計算機５１、５２に同じ処理を多重化して行なわせることをいう。
本発明では、複数台の計算機５１、５２が外部ネットワーク５３にて接続される。図２に示す複数台の計算機５１、５２は、図１に示したＣＰＵノード１１〜１４に対応するものである。また、外部ネットワーク５３とは、図１に示した外部ネットワーク２及び照合ノードペア４０〜４３、多重化ネットワーク１に対応するものである。
【００２４】
計算機上５１、５２では、後述する周期タイマ機構６０、７０より駆動される周期駆動ソフトウェア６１、７１と通信機構６２、７２から駆動される通信駆動ソフトウェア６３、７３が動作する。そして、これらのソフトウェアは処理結果や状態を処理データ６５、７５としてメモリ６４、７４上に格納されるように構成されている。
【００２５】
また、複数台の計算機５１、５２が同じ処理をするために、外部ネットワーク５３からの通信パケットは全ての計算機で同じデータを受信できるものとする。
図２では、５１の計算機１が周期駆動ソフトウェア６１と通信駆動ソフトウェア６３を動作している。また、５２の計算機２が復旧する計算機として、周期駆動ソフトウェア７１と通信駆動ソフトウェア７３を計算機１の処理と同じにするために、以下の構成を備えている。
【００２６】
すなわち、５１の計算機１及び５２の計算機２において、一致化管理機構６８、７８、タイマ一致化機構６６、７６、受信一致化機構６７、７７、メモリ一致化機構６９、７９が動作するように構成している。
ここで、周期タイマ機構６０、７０とは、周期駆動ソフトウェア６１、７１から登録された周期時間をタイマ管理テーブルとして管理し、その周期時間分経過した際に、該当するソフトウェアを駆動する機構を有する。
【００２７】
タイマ一致化機構６６、７６では、一致化管理機構６８、７８からの指示によりタイマによる周期駆動を停止する機構を有している。また、周期タイマ機構６０、７０が有するタイマ管理テーブルを稼動中の５１の計算機１と組込みを行なう５２の計算機２にて一致化することで、周期駆動ソフトウェアの起動タイミングを一致化させる機構を有する。
【００２８】
また、通信機構６２、７２とは、外部ネットワーク５３を通じて受信したパケットを受信管理テーブルとして管理し、通信駆動ソフトウェア６３、７３を駆動させる機構を有する。受信一致化機構６７、７７は、受信管理テーブルを５１の計算機１と５２の計算機２で一致化することで、通信駆動ソフトウェア６３、７３への受信パケットを一致化させる機構を有する。
【００２９】
メモリ一致化機構６９、７９とは、メモリ６４上の処理データ６５を５１の計算機１から５２の計算機２のメモリ７４上の処理データ７５へコピーする。コピー中に発生した更新は、差分データとして再一致化を行なう。
一致化管理機構６８、７８は、メモリ一致化機構６９、７９での差分データサイズを確認し、周期駆動ソフトウェア６１，７１に影響を与えない範囲でコピーできると判断すると、以下の処理を行う。
【００３０】
すなわち一致化管理機構６８、７８は、処理データ６５、７５を更新しないように通信機構６２、７２からのソフトウェア駆動を抑止して、処理データ６５、７５の差分の一致化、タイマ管理テーブルの一致化、受信管理テーブルの一致化を行なう。
この後に、一致化管理機構６８、７８は、５１の計算機１と５２の計算機２で共にソフトウェア駆動を再開させることで、処理データ６５、７５が一致化し、かつ、駆動タイミングも一致化することにより、同じ処理を行なわせることが可能となる。
【００３１】
ここで、一致化管理機構６８、７８は、差分データサイズの確認を行なうことで、周期駆動ソフトウェア６１、７１に周期抜けを起こさないようにすることができる。また、通信駆動ソフトウェア６３、７３の抑止中も通信機構６２、７２での受信は継続している。このため、一致化管理機構６８、７８は、一致化終了後に抑止を解除して受信を再開させるため、受信抜けを起こさないようにすることができる。
【００３２】
図３に周期駆動ソフトウェア６１、７１の動作のフローチャートを示す。
図３において、周期駆動ソフトウェア６１、７１は、周期駆動するために周期タイマ機構に対してタイマ登録を行なう（ステップＳ１）。その後、周期駆動ソフトウェア６１、７１は、タイマ駆動待ちとなる（ステップＳ２）。
【００３３】
周期駆動ソフトウェア６１、７１は、周期タイマ機構６０、７０より駆動されると、メモリ６４、７４上から前周期の処理結果や内部状態として処理データ６５、７５を読み込み（ステップＳ３）、周期処理を行なう（ステップＳ４）。
ここで周期処理とは、タイマ駆動にて処理データをもとに行なう処理の総体であり、処理内容については限定しない。
【００３４】
その後、周期駆動ソフトウェア６１、７１は、周期処理にて行なった処理結果を処理データ６５、７５としてメモリ６４、７４へ格納する（ステップＳ５）。また、周期駆動ソフトウェア６１、７１は、周期処理の内部状態を処理状態として処理データ６５、７５へ格納する（ステップＳ６）。
【００３５】
ここで、ステップＳ３、ステップＳ５、ステップＳ６の処理は、ステップＳ４の周期処理が同じ処理データで同じ処理が行なえることを意味する。つまり、このソフトウェアは、複数の計算機で、処理駆動前に処理データを一致させることで同じ処理を行なえるソフトウェアであるということとなる。
【００３６】
図４に通信駆動ソフトウェア６３、７３のフローチャートを示す。
図４において、通信駆動ソフトウェア６３、７３は、受信のための通信初期化処理を行なう（ステップＳ１１）。具体的な例としては、ソケットの作成やソケットとＩＰアドレスやポートとのバインド処理を行なう。次に、通信駆動ソフトウェア６３、７３は、通信機構に対する通信登録処理を行なう（ステップＳ１２）。
【００３７】
その後、通信駆動ソフトウェア６３、７３は、受信待ちとなる（ステップＳ１３）。通信駆動ソフトウェア６３、７３は、通信機構６２、７２にてパケットを受信すると、ステップＳ１３の受信待ちが解除され、受信データを取得する（ステップＳ１４）。通信駆動ソフトウェア６３、７３は、処理データを読み込み（ステップＳ１５）、受信処理を行なう（ステップＳ１６）。
【００３８】
ここで受信処理とは、受信にて処理データをもとに行なう処理の総体であり、処理内容については限定しない。
その後、通信駆動ソフトウェア６３、７３は、受信処理にて行なった処理結果を処理データとしてメモリ６４、７４に格納する（ステップＳ１７）。また、通信駆動ソフトウェア６３、７３は、受信処理の内部状態を処理状態として処理データへ格納する（ステップＳ１８）。
【００３９】
ステップＳ１５、ステップＳ１７、ステップＳ１８は周期駆動ソフトウェア６１、７１と同様に、同じ処理データで受信処理が同じ処理を行なえるということを意味する。つまり、このソフトウェアも複数の計算機で、処理駆動前に処理データを一致させることで同じ処理を行なえるソフトウェアであるということとなる。
【００４０】
図５に周期タイマ機構の構成及び動作のフローチャートを示し、図５Ａはタイマ管理テーブル、図５Ｂはタイマ登録処理、図５Ｃはタイマ割込処理、図５Ｄはタイマ待ち処理である。
図５において、図２に示した周期タイマ機構６０、７０は、タイマ管理テーブル６０ａ、７０ａを有すると共に、タイマ登録処理６０ｂ、７０ｂ、タイマ割込処理６０ｃ、７０ｃ、タイマ待ち処理６０ｄ、７０ｄを実行する。
【００４１】
図５Ａにおいて、タイマ管理テーブル６０ａ、７０ａは、ソフトウェア番号８１、設定値８２、カウンタ８３、ソフトウェア状態８４の各値を保持している。例えば、「１０」のソフトウェア番号８１のタイマ周期の設定値８２は「３」で、カウンタ８３は「２」をカウント中で、ソフトウェア状態８４は「待ち」状態である。「１５」のソフトウェア番号８１のタイマ周期の設定値８２は「５」で、カウンタ８３は「３」をカウント中で、ソフトウェア状態８４は「実行中」状態である。
【００４２】
周期タイマ機構６０、７０は、周期駆動ソフトウェア６１、７１よりタイマ登録処理６０ｂ、７０ｂを呼出す際に、引数として、自身のソフトウェア番号８１及びタイマ周期設定時間を設定値８２として渡す。
【００４３】
図５Ｂにおいて、タイマ登録処理６０ｂ、７０ｂでは、周期タイマ機構６０、７０は、その引数を元に、タイマ管理テーブルへソフト番号８１及び設定値８２を格納する（ステップＳ２１）。周期タイマ機構６０、７０は、タイマ管理テーブル６０ａ、７０ａのカウンタ８３に設定値８２を格納する（ステップＳ２２）。
ここで、ソフトウェア番号８１の具体的な例は、計算機のオペレーティングシステムが提供するプロセスＩＤ番号である。
【００４４】
図５Ｃにおいて、タイマ割込処理６０ｃ、７０ｃは、計算機内のハードウェアクロックが定周期に発生するタイマ割込みにより駆動する処理である。
このタイマ割込処理６０ｃ、７０ｃでは、まず、周期タイマ機構６０、７０は、全てのソフトウェアを走査したか否かを判断する（ステップＳ２３）。すなわち、タイマ管理テーブル６０ａ、７０ａに登録された全てのソフトウェアに対してステップＳ２４以降の処理を行なうか否か判定をする。
【００４５】
ステップＳ２３で全てのソフトウェアを走査した場合、本処理を終了する。ステップＳ２３で全てのソフトウェアを走査していない場合、周期タイマ機構６０、７０は、タイマ管理テーブル６０ａ、７０ａ内の該当するソフトウェア番号８１におけるカウンタ８３の値を減算する（ステップＳ２４）。
【００４６】
周期タイマ機構６０、７０は、そのカウンタ８３が０か否かを判定する（ステップＳ２５）。判定ステップＳ２５でカウンタ８３が０の場合は、周期タイマ機構６０、７０は、当該ソフトウェアを駆動し（ステップＳ２６）、カウンタ８３を設定値８２に戻す（ステップＳ２７）。
【００４７】
判定ステップＳ２５でカウンタ８３が０でない場合や抑止フラグがＯＮの場合には、周期タイマ機構６０、７０は、当該ソフトウェアを駆動はせずに、ステップＳ２３へ戻り、次のソフトウェアの走査へ移る。抑止フラグは、当該ソフトウェアの駆動を抑止するフラグを示す。
【００４８】
図５Ｄにおいて、タイマ待ち処理６０ｄ、７０ｄは、周期駆動ソフトウェア６１、７１より呼出される。このタイマ待ち処理６０ｄ、７０ｄでは、周期タイマ機構６０、７０は、タイマ管理テーブル６０ａ、７０ａ内のソフトウェア状態８４を”待ち”状態として（ステップＳ２９）、タイマ駆動待ちとなる（ステップＳ３０）。
【００４９】
図５Ｃに示したタイマ割込処理でカウンタ８３が０となると、このステップＳ３０のタイマ駆動待ちが解除され、周期タイマ機構６０、７０は、ソフトウェア状態８４を“実行中”へ遷移させる（ステップＳ３１）。
ここで、周期タイマ機構６０、７０のタイマ管理テーブル６０ａ、７０ａにカウンタ８３とソフトウェア状態８４を持たせることで、一致化管理機構６８、７８で、組込み可否判定を行なえるようにする。
【００５０】
図６に通信機構のフローチャートを示し、図６Ａは受信管理テーブル、図６Ｂは通信登録処理、図６Ｃは受信待ち処理、図６Ｄは受信処理である。
図６において、図２に示した通信機構６２、７２は、受信管理テーブル６２ａ、７２ａを有すると共に、通信登録処理６２ｂ、７２ｂ、受信待ち処理６２ｃ、７２ｃ、受信処理６２ｄ、７２ｄを実行する。
【００５１】
図６Ａにおいて、受信管理テーブル６２ａ、７２ａは、通信番号８１、抑止フラグ９２、ソフトウェア状態９３、受信データポインタ９４の各値を保持している。例えば、「１０」の通信番号９１の抑止フラグ９２は「ＯＦＦ」で、ソフトウェア状態９３は「待ち」状態で、受信データポインタ９４は「０ｘｃ８００００００」である。ここで、「０ｘｃ８００００００」の受信データ９５の次ポインタ９６は、次の受信データ９７を指し示すように構成されている。
【００５２】
また、「１５」の通信番号９１の抑止フラグ９２は「ＯＦＦ」で、ソフトウェア状態９３は「待ち」状態で、受信データポインタ９４は「０」である。
通信機構６２、７２は、通信駆動ソフトウェア６３、７３より通信登録処理６２ｂ、７２ｂを呼出す際に、引数として通信番号９１を渡す。
【００５３】
図６Ｂにおいて、通信登録処理６２ｂ、７２ｂでは、通信機構６２、７２は、受信管理テーブル６２ａ、７２ａに通信番号９１を登録する（ステップＳ４１）。ここで、通信番号９１の具体的な例としては、通信向けにオペレーティングシステムが提供するソケットを利用する。
【００５４】
図６Ｃにおいて、受信待ち処理６２ｃ、７２ｃは、通信駆動ソフトウェア６３、７３が受信を行なうための処理であり、通信機構６２、７２は、引数として通信番号９１、受信データポインタ９４を渡す。
受信待ち処理６２ｃ、７２ｃでは、通信機構６２、７２は、受信管理テーブル６２ａ、７２ａでソフトウェア状態を待ち状態にする（ステップＳ４２）。通信機構６２、７２は、受信があるか否かを判断する（ステップＳ４３）。
【００５５】
すなわち、通信機構６２、７２は、受信管理テーブル６２ａ、７２ａを参照し、受信データポインタ９４がある場合は、判断ステップＳ４３で受信ありとして、データコピー処理へ進む（ステップＳ４５）。
判断ステップＳ４３で受信がない場合には、通信機構６２、７２は、受信するまで駆動待ちとなる（ステップＳ４４）。判断ステップＳ４３で受信ありの場合、受信処理が動作し、通信機構６２、７２は、パケットを受信すると、受信したパケットを、引数で渡された受信データエリアへコピーする（ステップＳ４５）。
【００５６】
その後、通信機構６２、７２は、受信データポインタ９４を更新する（ステップＳ４６）。次の受信データがある場合は、通信機構６２、７２は、その受信データポインタ９４を格納し、次の受信データがない場合は０を格納する。そして、通信機構６２、７２は、ソフトウェア状態９３を実行中に遷移させる（ステップＳ４７）。
【００５７】
図６Ｄにおいて、受信処理６２ｄ、７２ｄは、外部装置よりパケットを受信した時に駆動する処理である。通信機構６２、７２は、受信したデータが受信管理テーブル６２ａ、７２ａに登録された通信番号か否かを判定する（ステップＳ４８）。
【００５８】
判定ステップＳ４８で登録された通信番号でない場合は、処理を終了する。判定ステップＳ４８で登録された通信番号の際には、通信機構６２、７２は、受信データポインタ９４を登録する（ステップＳ４９）。また、既に次の受信データ９５、９７がある場合には、受信管理テーブル６２ａ、７２ａに示すように受信データ９５、９７をリストとして管理する。
【００５９】
次に、通信機構６２、７２は、駆動抑止中か否かを判定する（ステップＳ５０）。このため、通信機構６２、７２は、受信管理テーブル６２ａ、７２ａの抑止フラグ９２を判定し、抑止フラグ９２がＯＦＦの場合には、該当通信の受信待ちを駆動する（ステップＳ５１）。抑止フラグ９２がＯＮの場合には、該当通信の受信待ちを駆動せずに処理を終了する。
【００６０】
図７にタイマ一致化機構の動作のフローチャートを示し、図７Ａはタイマ一致化送信処理、図７Ｂはタイマ一致化受信処理である。図７は、図２に示した５１の計算機１と５２の計算機２のコンピュータが計算機制御プログラムを実行させることにより実現される機能による処理を示している。
【００６１】
図２に示したタイマ一致化機構６６、７６は、図７Ａに示すタイマ一致化送信処理と図７Ｂに示すタイマ一致化受信処理を実行する。図７Ａに示すタイマ一致化送信処理では、タイマ一致化機構６６は、送信のための通信初期化処理を行なう（ステップＳ６１）。具体的な例としては、ソケットの生成を行なう。
【００６２】
次に、タイマ一致化機構６６は、一致化管理機構６８からの指示、すなわち一致化送信要求を待つ（ステップＳ６２）。ステップＳ６２の一致化送信要求を受けると、待ちが解除され、タイマ一致化機構６６は、タイマ管理テーブル６０ａをタイマ一致化機構７６へ送信する（ステップＳ６３）。
送信後、タイマ一致化機構６６は、一致化管理機構６８へタイマ管理テーブル６０ａの送信を完了したことを連絡する（ステップＳ６４）。
【００６３】
図７Ｂに示すタイマ一致化受信処理では、タイマ一致化機構７６は、受信のための通信初期化処理を行なう（ステップＳ６５）。具体的な例としては、ソケットの作成やＩＰアドレスやポートとのバインド処理を行なう。
次にタイマ一致化機構７６は、タイマ管理テーブル６０ａの受信待ちとなる（ステップＳ６６）。図７Ａに示すタイマ一致化送信処理からタイマ管理テーブル６０ａが転送され、タイマ一致化機構７６は、それを受信すると、待ちが解除される。
【００６４】
タイマ一致化機構７６は、受信したタイマ管理テーブル６０ａの内容を、本計算機２内のタイマ管理テーブル７０ａにコピーする（ステップＳ６７）。ステップＳ６７のタイマ管理テーブル７０ａへのコピーを終了すると、タイマ一致化機構６６、７６は、一致化管理機構６８へ一致化が完了したことを連絡する（ステップＳ６８）。
【００６５】
図８に受信一致化機構の動作のフローチャートを示し、図８Ａは受信一致化送信処理、図８Ｂは受信一致化受信処理である。図８は、図２に示した５１の計算機１と５２の計算機２のコンピュータに計算機制御プログラムを実行させることにより実現される機能による処理を示している。
【００６６】
図２に示した受信一致化機構６７、７７は、図８Ａに示す受信一致化送信処理と図８Ｂに示す受信一致化受信処理を実行する。図８Ａに示す受信一致化送信処理では、受信一致化機構６７は、送信のための通信初期化処理を行なう。具体的な例としては、ソケットの生成を行なう（ステップＳ７１）。
【００６７】
次に、受信一致化機構６７は、一致化管理機構６８からの一致化送信要求を待つ（ステップＳ７２）。一致化送信要求を受けると、ステップＳ７２の待ちが解除される。受信一致化機構６７は、登録された通信番号を全て送信したか否かを判断する（ステップＳ７３）。すなわち、受信一致化機構６７は、受信管理テーブル６２ａを参照し、登録された通信番号９１の分だけ、次のステップＳ７４の処理を行なう。
【００６８】
受信一致化機構６７は、受信管理テーブル６２ａの通信番号９１及び受信データポインタ９４を受信一致化機構７７へ送信する（ステップＳ７４）。ステップＳ７４で受信管理テーブル６２ａ内に登録された通信番号９１を全て送信したら、受信一致化機構６７は、送信が完了したことを組込み計算機２へ通知する（ステップＳ７５）。
次に、受信一致化機構６７は、一致化管理機構６８へ一致化送信が完了したことを連絡する（ステップＳ７６）。
【００６９】
図８Ｂに示す受信一致化受信処理では、受信一致化機構７７は、受信のための通信初期化処理を行なう（ステップＳ７７）。具体的な例としては、ソケットの作成やＩＰアドレスやポートとのバインド処理を行なう。次に、受信一致化機構７７は、一致化用データの受信待ちを行う（ステップＳ７８）。すなわち、受信一致化機構７７は、図８Ａに示した受信一致化送信処理より送信される通信番号９１及び受信データポインタ９４、又は、完了通知を受信する。
【００７０】
受信一致化機構６７、７７は、受信したデータが完了通知であるか否かを判断する（ステップＳ７９）。判断ステップＳ７９で、完了通知でない場合には、受信一致化機構６７、７７は、受信データポインタ９４が合致するか否かを判断する（ステップＳ８０）。すなわち、受信一致化機構６７、７７は、組込み計算機２の受信管理テーブル７２ａを参照し、受信した通信番号９１に該当するエントリの受信データポインタ９４と、受信した受信データポインタ９４を比較する。
【００７１】
判断ステップＳ８０で、受信データポインタ９４が合致しない場合には、その受信データは稼動中の計算機２では処理済みであるため、受信一致化機構６７、７７は、その受信データを廃棄する（ステップＳ８１）。ステップＳ８１でその受信データを廃棄する際には、当該受信データに付与された次の受信へのポインタを受信データポインタ９４として格納する。
【００７２】
ステップＳ８１でその受信データを廃棄した後、判断ステップＳ８０に戻り、次に受信一致化機構６７、７７は、受信したデータポインタ９４を参照して両者が合致するか否かを判定する。この処理は受信データポインタ９４が合致するまで繰り返される。
【００７３】
判断ステップＳ８０で、受信データポインタ９４が合致すると、次の通信番号９１のデータを受信するために、ステップＳ７８の処理へ戻る。これらの処理を受信管理テーブル７２ａの全てに対して行なうことで、組込み以降に駆動する処理を同じにする。判断ステップＳ７９にて受信データが完了通知であった場合は、受信一致化機構６７、７７は、一致化管理機構６８、７８への完了連絡を行なう（ステップＳ８２）。
【００７４】
図９にメモリ一致化機構のフローチャートを示し、図９Ａは全面転送処理、図９Ｂは差分検出処理、図９Ｃは差分転送処理、図９Ｄはメモリ一致化受信処理、図９Ｅはメモリ一致化用通信データである。図９は、５１の計算機１と５２の計算機２のコンピュータに計算機制御プログラムを実行させることにより実現される機能による処理を示している。
【００７５】
図２に示したメモリ一致化機構６９、７９は、図９Ａに示す全面転送処理、図９Ｂに示す差分検出処理、図９Ｃに示す差分転送処理、図９Ｄに示すメモリ一致化受信処理を実行する。図９Ａに示す全面転送処理では、メモリ一致化機構６９は、一致化管理機構６８より呼出され、送信のための通信初期化処理を行なう（ステップＳ９１）。具体的な例としては、ソケットの生成を行なう。次に、メモリ一致化機構６９は、現時点のメモリ６４上にある処理データ６５をコピーする（ステップＳ９２）。
【００７６】
次に、メモリ一致化機構６９は、ステップＳ９２でコピーしたデータを５２の組込み計算機２に対して送信する（ステップＳ９３）。この通信データは、図９Ｅのメモリ一致化用通信データのように、処理データ１９３のエリア内のオフセット１０１と送付するデータ１０３のサイズを示すデータ長１０２を、データ１０３にヘッダとして付加される。
【００７７】
図９Ｂに示す差分検出処理では、メモリ一致化機構６９は、一致化管理機構６８より呼出され、現時点の処理データ６５と前回送信時点のコピーデータを比較する（ステップＳ９４）。メモリ一致化機構６９は、ステップＳ９４で比較し両データに差分があるか否かを判断する（ステップＳ９５）。判断ステップＳ９５で差分がない場合は本処理を終了し、差分がある場合は、メモリ一致化機構６９は、差分の部分を差分データとして保存する（ステップＳ９６）。
【００７８】
次に、メモリ一致化機構６９は、差分データの合計サイズを算出する（ステップＳ９７）。差分検出処理を終了する際、メモリ一致化機構６９は、一致化管理機構６８に対して、算出した差分データの合計サイズを返す。
【００７９】
図９Ｃに示す差分転送処理では、一致化管理機構６８より呼出され、メモリ一致化機構６９は、図９Ｂに示した差分検出処理にて保存した差分データがあるか否かを判断する（ステップＳ９８）。判断ステップＳ９８で差分がある場合には、メモリ一致化機構６９は、その差分データを５２の組込み計算機２に転送する（ステップＳ９９）。転送が終了すると、メモリ一致化機構６９は、保存してあった差分データを消去する（ステップＳ１００）。
【００８０】
図９Ｄに示すメモリ一致化受信処理は、５２の組込み計算機２にて動作する。メモリ一致化機構７９は、受信のための通信初期化処理を行なう（ステップＳ１０１）。具体的な例としては、ソケットの作成やＩＰアドレスやポートとのバインド処理を行なう。次に、メモリ一致化機構７９は、処理データの受信を待つ（ステップＳ１０２）。
【００８１】
処理データを受信するとステップＳ１０２の待ちが解除される。メモリ一致化機構７９は、処理データを処理データエリアへコピーする（ステップＳ１０３）。すなわち、メモリ一致化機構７９は、受信データのヘッダに含まれる処理データエリアに対するオフセット１０１及びデータ長１０２を参照し、処理データの示す特定箇所へデータ１０３をコピーする。本処理を終了するとステップＳ１０２の受信待ちの処理に戻る。
【００８２】
図１０に一致化管理機構のフローチャートを示し、図１０Ａは一致化管理処理、図１０Ｂは通信駆動関数である。図１０は、５１の計算機１と５２の計算機２のコンピュータが計算機制御プログラムを実行させることにより実現される機能による処理を示している。
一致化管理機構６８、７８は、起動モードの判断をする（ステップＳ１１１）。起動モードの判断とは、この機構が別の計算機で動作しておらず、初めて起動する場合には、一致化管理機構６８、７８は、稼動中計算機モードであると判断する。また、別の計算機でこの機構が動作している場合は、一致化管理機構６８、７８は、組込み計算機モードと判断する。
【００８３】
この判断は、５１の計算機１と５２の計算機２の各計算機の一致化管理機構６８、７８間で通信することで行なう。最初に起動した５１の計算機１では稼動中計算機モードとなり、一致化管理機構６８は、周期駆動ソフトウェア６１を起動し（ステップＳ１２０）、通信駆動ソフトウェア６３を起動する（ステップＳ１２１）。その後、一致化管理機構６８は、５２の組込み計算機２よりコピー要求の受信を待つ（ステップＳ１２２）。
【００８４】
次に、５２の組込み計算機２が起動し、この一致化管理機構７８が動作した場合、組込み計算機モードと判断される（ステップＳ１１１）。一致化管理機構７８は、図６Ａに示した受信管理テーブル７２ａ内の抑止フラグ９２の領域をＯＮに設定する（ステップＳ１１２）。その後、一致化管理機構７８は、周期駆動ソフトウェア７１を起動し（ステップＳ１１３）、通信駆動ソフトウェア７３を起動する（ステップＳ１１４）。これらのソフトウェアは初期化処理や登録処理などを行なった後、タイマ駆動待ち及び受信待ちとなる。
【００８５】
しかし、ステップＳ１１２にて抑止フラグ９２をＯＮに設定しているため、周期時間を超過してもステップＳ１１３の周期駆動ソフトウェア７１は動作しない。また、受信データがあってもステップＳ１１４通信駆動ソフトウェア７３は動作しない。
【００８６】
ただし、受信については、図６Ａに示した受信管理テーブル７２ａの受信データ９５、９７への次ポインタ９６、９８の繋がりを示す情報は、受信データポインタ９４からのリストに付加される。その後、一致化管理機構７８は、稼動中計算機の一致化管理機構６８に対して、コピー要求を送付する（ステップＳ１１５）。その後、一致化管理機構７８は、一致化完了となるまで待つ（ステップＳ１１６）。
【００８７】
稼動中計算機の一致化管理機構６８は、ステップＳ１１５のコピー要求を受け、ステップＳ１２２のコピー要求待ちが解除される。一致化管理機構６８は、メモリ一致化機構６９の全面転送処理を行なう（ステップＳ１２３）。ステップＳ１２３の全面転送処理を完了すると、一致化管理機構６８は、図６Ａに示した受信管理テーブル６２ａの抑止フラグ９２をＯＮにする（ステップＳ１２４）。その後、一致化管理機構６８は、メモリ一致機構６９の差分検出処理を行なう（ステップＳ１２５）。本処理にて検出された差分データの合計サイズを得る。
【００８８】
一致化管理機構６８は、組込みを行なえるか否かを判定する（ステップＳ１２６）。ここで、組込みが行なえるかどうかは、以下の基準による。すなわち、図５Ａに示すタイマ管理テーブル６０ａ、図６Ａに示す受信管理テーブル６２ａにてすべてのソフトウェア状態８４、９３が待ち状態であることを基準とする。かつ、一致化する必要がある差分データを一致化するのにかかる時間とタイマ管理テーブル６０ａの一致化にかかる時間、受信管理テーブル６２ａの一致化にかかる時間が、次に周期駆動タスクが動作するまでの時間よりも十分小さいかどうかを基準として判断する。
【００８９】
一致化にかかる時間が周期駆動タスクが動作するまでの時間よりも十分小さければ、周期抜けを起こすことなくなる。また、処理データ６５及びタイマ管理テーブル６０ａ、受信管理テーブル６２ａが完全に一致化した状態で処理を再開でき、稼動中計算機と組込み計算機で周期駆動ソフトウェア６１、７１と通信駆動ソフトウェア６３、７３が同じ処理をすることができる。
【００９０】
具体的に再組込み判定方法の時間判定について説明する。差分データの一致化にかかる時間αは、差分データサイズＳと単位サイズの転送時間Ｔによって求められる。ここで、差分データサイズＳはメモリ一致化機構により取得され、単位サイズの転送時間Ｔは、稼動中計算機と組込み計算機間でのネットワーク性能を測定することで求められる値に通信のゆらぎを加味した値である。
【００９１】
差分データ一致化時間αは、α＝Ｓ×Ｔの式で求められる。また、同様の考えで、タイマ管理テーブル６０ａの一致化時間βは、タイマ管理テーブル６０ａのサイズＭとすると、β＝Ｍ×Ｔで求められる。受信管理テーブル６２ａの一致化時間γは、登録された通信番号９１の数をＮ、通信番号９１のデータサイズＤ１、受信データポインタ９４のデータサイズＤ２とすると、通信番号９１と受信データポインタ９４を登録された通信番号９１の数分だけ送信するため、γ＝Ｎ×（（Ｄ１＋Ｄ２）×Ｔ）となる。
【００９２】
ただし、完了通知及び受信側での受信データ廃棄処理の時間はγに対して十分小さいため、ここでは、γには加味していない。組込み可否判定は、一致化時間の合計であるα＋β＋γと、次に周期駆動タスクが動作するまでの時間を比較する。次に周期駆動が動作するまでの時間は、タイマ管理テーブル６０ａのカウンタ値で最も小さな値Ｃを採用する。
【００９３】
ただし、Ｃはタイマ割込みタイミングで減算されるため、本テーブルを参照したタイミングが、タイマ割込みの周期内のどこで参照するかによって誤差を生じる。そこで、判定の際は（Ｃ−１）で判定する。組込み可否判定は、（Ｃ−１）≧（α＋β＋γ）であれば、次周期の処理に間に合わないため、組込み不可と判定し、逆に、（Ｃ−１）＜（α＋β＋γ）であれば、組込み可能と判定する。
【００９４】
ステップＳ１２６の組込み可否判定で、組込み不可であった場合、一致化管理機構６８は、受信管理テーブル６２ａの抑止フラグ９２をＯＦＦにして（ステップＳ１２７）、抑止中に受信があった通信駆動ソフトウェア６３を駆動する。この通信駆動ソフトウェア６３の駆動は、図１０Ｂに示す通信駆動関数にて行なう（ステップＳ１２８）。図１０Ｂにおいて、通信駆動関数は、受信管理テーブル６２ａを参照して（ステップＳ１４０）、全ての通信番号９１に対して、受信待ちを駆動する処理を行なう（ステップＳ１４１）。
【００９５】
ステップＳ１４１の処理は、受信管理テーブル６２ａの受信データポインタ９４を参照して、受信があった場合には、ソフト状態９３が待ち状態となっていた場合に、その通信番号９１の受信待ちを駆動するものである。その後、一致化管理機構６８は、メモリ一致化機構６９の差分転送処理を行なう（ステップＳ１２９）。この差分転送処理を終了すると、再度ステップＳ１２４の処理へ戻り、ステップＳ１２４〜ステップＳ１２９までの処理を繰り返して処理する。
【００９６】
ステップＳ１２６の組込み可否判定にて、組込み可能と判断された場合、一致化管理機構６８は、メモリ一致化機構６９の差分転送処理を行なう（ステップＳ１３０）。組込み可能と判断された場合は、全てのソフトウェアが待ち状態であるため、処理データは更新されていないことを意味している。そこで、ステップＳ１３０の差分転送処理を行なうことにより、稼動中計算機と組込み計算機にて処理データが一致化することとなる。
【００９７】
次に、一致化管理機構６８は、一致化送信指示を、タイマ一致化機構６６及び受信一致化機構６７に対して行なう（ステップＳ１３１）。この一致化送信指示を受けたタイマ一致化機構６６及び受信一致化機構６７は、一致化管理機構６８からの指示待ちが解除され、組込み計算機へ各種情報を送信して、稼動中計算機と組込み計算機にて、タイマ管理テーブル６０ａと受信管理テーブル６２ａが同じ状態となる。
【００９８】
このステップＳ１３０からステップＳ１３２の処理にて一致化の完了待ちをし（ステップＳ１３２）、処理データ６５及びタイマ管理テーブル６０ａと受信管理テーブル６２ａの状態の一致化が完了する。そこで、両計算機にて周期駆動ソフトウェア６１及び通信駆動ソフトウェア６３の処理を開始させる準備を完了する。通信駆動ソフトウェア６３の処理を再開するため、一致化管理機構６８は、受信管理テーブル６２ａの抑止フラグ９２をＯＦＦする（ステップＳ１３３）。
【００９９】
その後、一致化管理機構６８は、通信駆動関数を呼出し、抑止中に受信のあった通信番号に対して受信待ちを駆動させる（ステップＳ１３４）。この処理により、組込みを行なうための一致化処理中にも、受信データを欠損することなく、通信駆動ソフトウェア６３に受信させることが可能となる。
【０１００】
一方、組込み計算機では、稼動中計算機のタイマ一致化機構６６から送信されたタイマ管理テーブル６０ａをタイマ一致化機構７６が受信し、タイマ管理テーブル７０ａを一致化させる。一致化を完了すると、タイマ一致化機構７６は一致化管理機構７８に対して完了連絡を行なう。また、稼動中計算機の受信一致化機構６７から送信された一致化のための情報を受信一致化機構７７が受信し、受信管理テーブル７２ａの処理の一致化を行なう。
【０１０１】
この一致化が完了すると、タイマ一致化機構７６と同様に、受信一致化機構７７は一致化管理機構７８に対して完了連絡を行なう。この連絡を受け、一致化管理機構７８は、一致化完了の待ちが解除される（ステップＳ１１６）。その後、一致化管理機構７８は、受信管理テーブル７２ａの抑止フラグ９２をＯＦＦし（ステップＳ１１７）、通信駆動関数を呼出し（ステップＳ１１８）、抑止中に受信のあった通信番号に対して受信待ちを駆動させる。
この時、稼動中計算機と組込み計算機にて受信管理テーブル６２ａ、７２ａが一致化しているため、組込み計算機の通信駆動ソフトウェア７３が稼動中計算機の通信駆動ソフトウェア６３と同じデータより受信することができ、同じ処理を行なうことが可能となる。
【０１０２】
図１１は、一致化処理の例を示すタイミングチャートである。
図１１において、５１の計算機１では、周期駆動ソフトウェア６１による周期処理１１１と、通信駆動ソフトウェア６３による通信処理１１２と、処理データ１１３を示している。また、５２の計算機２では、処理データ１１４と、周期駆動ソフトウェア７１による周期処理１１５と、通信駆動ソフトウェア７３による通信処理１１６を示している。
【０１０３】
周期処理１１１及び通信処理１１２は、処理データ１１３を読み込み、そのデータに１を加算して、その処理結果を処理データ１１３へ格納する処理を行なうものとする。そのため、Ｔ１時点でソフト番号１０の周期処理１１１が動作すると処理データ１１３の「０」を読込み、そのデータに１を加算して、「１」を処理データ１１３へ格納する。
【０１０４】
次に、Ｔ２時点でソフト番号１５の周期処理１１１が動作すると、処理データ１１３の「１」を読込み、そのデータに１を加算して、「２」を処理データ１１３へ格納する。周期処理１１１は、設定値に基づき、ソフト番号１０はＰ１の間隔で周期的に動作し、ソフト番号１５はＰ２の間隔で周期的に動作する。
【０１０５】
通信処理１１２は、Ｔ３時点で通信番号１０へのデータを受信すると、通信番号１０の通信処理１１２が動作し、処理データ１１３の「２」を読込み、そのデータに１を加算して、「３」を処理データ１１３へ格納する。
【０１０６】
Ｔ４時点で、計算機２にて再組込み処理１２３を開始したとする。開始すると、メモリ一致化処理１２１が動作し、処理データ１１３を処理データ１１４へコピーする。Ｔ４時点では、処理データ１１３が「３」であるため、「３」を処理データ１１４へコピーする。そのコピー処理が完了すると、コピー中に更新がなかったかどうか、差分検出処理をする。
【０１０７】
ここで、Ｔ５時点で、通信番号１５の通信処理１１２が動作し、処理データ１１３が「４」となっていると、差分検出処理にて、差分有りと判定して、再コピーをする。これにより、処理データ１１４が「４」となる。
【０１０８】
また、組込み判定を行ない、ソフト番号１０の周期処理１１５及びソフト番号１５の周期処理１１５が開始するまでの時間と、再組込みの処理時間を比較して、次回の周期処理１１５の開始であるＴ８時点までに、再組込み処理を完了できると判断すると、受信一致化１２５及びタイマ一致化１２４の再組込み処理１２３を行なう。
【０１０９】
なお、Ｐ３で示す期間は、抑止フラグＯＮの状態であり、通信処理１１６は動作しない。この間に通信番号１０への受信があった場合は、抑止フラグをＯＦＦした後の通信処理１１６にて、動作を開始し、Ｔ７時点で、計算機１及び計算機２にて同じように処理を行なうようになる。
【０１１０】
これにて再組込みを完了し、この時点で処理データ１１３，１１４は計算機１及び計算機２にて一致され、これ以降、ソフト番号１０の周期処理１１１，１１５はＴ８時点で、ソフト番号１５の周期処理１１１，１１５はＴ１０時点で、計算機１及び計算機２にて同じ処理を行えるようになる。また、Ｔ９時点で通信番号１５の通信処理１１２，１１６へのデータの受信があった場合には、同様に、計算機１と計算機２にて同じ処理を行なえる。
【０１１１】
なお、上述した本実施の形態例に限らず、特許請求の範囲に記載された本発明の要旨を逸脱しない限り、適宜変更しうることは言うまでもない。
【図面の簡単な説明】
【０１１２】
【図１】本発明の一実施の形態によるシステム構成例を示す説明図である。
【図２】各計算機の機能を示すブロック図である。
【図３】周期駆動ソフトウェアの動作を示すフローチャートである。
【図４】通信駆動ソフトウェアの動作を示すフローチャートである。
【図５】周期タイマ機構の構成及び動作のフローチャートを示し、図５Ａはタイマ管理テーブル、図５Ｂはタイマ登録処理、図５Ｃはタイマ割込処理、図５Ｄはタイマ待ち処理である。
【図６】通信機構のフローチャートを示し、図６Ａは受信管理テーブル、図６Ｂは通信登録処理、図６Ｃは受信待ち処理、図６Ｄは受信処理である。
【図７】タイマ一致化機構の動作のフローチャートを示し、図７Ａはタイマ一致化送信処理、図７Ｂはタイマ一致化受信処理である。
【図８】受信一致化機構の動作のフローチャートを示し、図８Ａは受信一致化送信処理、図８Ｂは受信一致化受信処理である。
【図９】メモリ一致化機構のフローチャートを示し、図９Ａは全面転送処理、図９Ｂは差分検出処理、図９Ｃは差分転送処理、図９Ｄはメモリ一致化受信処理、図９Ｅはメモリ一致化用通信データである。
【図１０】一致化管理機構のフローチャートを示し、図１０Ａは一致化管理処理、図１０Ｂは通信駆動関数である。
【図１１】一致化処理の例を示すタイミングチャートである。
【符号の説明】
【０１１３】
５１…計算機１、５２…計算機２、５３…外部ネットワーク、６０、７０…周期タイマ機構、６１、７１…周期駆動ソフトウェア、６２、７２…通信機構、６３、７３…通信駆動ソフトウェア、６４、７４…メモリ、６５、７５…処理データ、６６、７６…タイマ一致化機構、６７、７７…受信一致化機構、６８、７８…一致化管理機構、６９、７９…メモリ一致化機構
【図１】
0005158788.tif 000002
【図２】
0005158788.tif 000003
【図３】
0005158788.tif 000004
【図４】
0005158788.tif 000005
【図５】
0005158788.tif 000006
【図６】
0005158788.tif 000007
【図７】
0005158788.tif 000008
【図８】
0005158788.tif 000009
【図９】
0005158788.tif 000010
【図１０】
0005158788.tif 000011
【図１１】
0005158788.tif 000012