(57)【特許請求の範囲】
【請求項１】
互いに同一のプログラムを同期実行する第１及び第２のＣＰＵ手段と、
第１及び第２のＣＰＵ手段に夫々設けられ、これらのＣＰＵ手段が同一プログラムを実行したときに同一なメモリイメージを生成する共通機能部と、
第１及び第２のＣＰＵ手段に夫々設けられ、これらのＣＰＵ手段が同一プログラムを実行したときに異なるメモリイメージを生成する差分機能部と、
これらＣＰＵ手段が前記プログラムを実行した結果が反映される第１及び第２の主記憶手段と、
前記第１及び第２のＣＰＵ手段の差分機能部が利用する第１及び第２のエミュレーションライブラリ手段と、
これらエミュレーションライブラリ手段が使用する第１及び第２のエミュレーションバッファ手段とを具備し、
前記第１及び第２の主記憶手段は、
前記第１及び第２のＣＰＵ手段の共通機能部による前記プログラムの実行結果が反映される第１及び第２メモリイメージ領域Ａと、
前記第１及び第２のＣＰＵ手段の差分機能部による前記第１及び第２のエミュレーションライブラリ手段を介した前記プログラムの実行結果が反映される第１及び第２メモリイメージ領域Ｂと、
を有する二重化コンピュータ装置。
【請求項２】
前記第１及び第２のエミュレーションバッファ手段が、前記第１及び第２の主記憶手段に形成されてなる、
請求項１記載の二重化コンピュータ装置。
【請求項３】
前記第１及び第２のＣＰＵ手段の共通機能部による前記プログラムの実行結果が反映される第１及び第２メモリイメージ領域Ａと、前記第１及び第２のＣＰＵ手段の差分機能部による前記第１及び第２のエミュレーションライブラリ手段を介した前記プログラムの実行結果が反映される第１及び第２メモリイメージ領域Ｂとは、完全に一致していることを特徴とする、
請求項１又は２記載の二重化コンピュータ装置。
【請求項４】
前記第１及び第２の主記憶手段に形成される前記第１及び第２のエミュレーションバッファ手段の内容は不一致であることを特徴とする、
請求項１乃至３のいずれかに記載の二重化コンピュータ装置。
【請求項５】
前記第１及び第２のエミュレーションライブラリ手段は、互いに他のＣＰＵに関する論理番地と物理番地を対応させたＭＭＵコンテキスト、ＣＰＵレジスタコンテキスト、割り込み種別情報を具備することを特徴とする、
請求項１乃至４のいずれかに記載の二重化コンピュータ装置。
【請求項６】
前記第１及び第２のＣＰＵ手段が、分散型制御装置における制御ステーションの二重化構成に使用されてなる、
請求項１乃至５のいずれかに記載の二重化コンピュータ装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
分散型制御システムの制御ステーションでは、信頼性及び稼動率向上のために、ＣＰＵカードの二重化構成を実装する場合が多い。本発明は、従来の二重化構成を利用して、制御ステーションを停止せずに、より高機能なＣＰＵカードにアップグレードすることを可能にする機構に関するものである。
【０００２】
【従来の技術】
従来、分散型制御システムの制御ステーションでは、信頼性及び稼動率向上のためＣＰＵカードの二重化構成を有していた。この二重化構成は第１及び第２のＣＰＵカードが全く同一の処理を同期を取りながら同時に実行する方式（以下、同期実行方式）を採用していた。
【０００３】
図４は、同期実行方式のイメージを説明する機能ブロック図である。第１及び第２のＣＰＵカード１及び２が、ある時点で同一のメモリイメージＭ１及びＭ２であり、かつ、その後に実行されるプログラムＰ１及びＰ２が同一であれば、その結果のメモリイメージＭ１´及びＭ２´は常に同一になるという原理に基づいた二重化方式である。従って第１及び第２のＣＰＵカードのメモリイメージは常に一致しながら実行される。
【０００４】
【発明が解決しようとする課題】
従来の二重化構成（同期実行方式）は、片側ＣＰＵカードの故障発生時の制御権交替時間が非常に短いなどの優れた性能を有している反面、２個のＣＰＵカードが同一機種でないと二重化できない、という問題点があった。
【０００５】
つまり、第１及び第２のＣＰＵカードが違う機種、特に採用しているＣＰＵ手段（ＣＰＵチップ）が違う仕様であった場合、各ＣＰＵ手段が生成する主記憶手段メモリイメージが各ＣＰＵカードで一致しなくなる。従って、異なるＣＰＵ手段を実装したカードでは二重化ができない、という問題点があった。
【０００６】
図５は、第１及び第２のＣＰＵカード１及び２で二重化された制御ステーション５において、第２のＣＰＵカード２に故障が発生し、このカードを交換する場合のイメージ図であり、交換されるＣＰＵカード３が、ＣＰＵカード１と同一の旧ＣＰＵカードであれば交換可能であるが、交換されるＣＰＵカード４が、ＣＰＵカード１とは異なる新ＣＰＵカードの場合には、交換不可能である。
【０００７】
一般に、制御ステーションのＣＰＵカードは、ＣＰＵ手段の性能向上に合わせて新しい機種が開発されるが、従来の二重化構成では、制御ステーションを停止しなければ、新しいＣＰＵカードに交換できなかった。
【０００８】
本発明の目的は、ＣＰＵ手段が生成する主記憶手段のイメージを、ＣＰＵ手段の種別に依存しない形にすることで、異なるＣＰＵ手段を採用している２つのＣＰＵカードにより二重化実行できる機構を実現することにある。
【０００９】
【課題を解決するための手段】
このような課題を達成するために、本発明の特徴は次のとおりになっている。
【００１０】
請求項１記載発明の特徴は、
互いに同一のプログラムを同期実行する第１及び第２のＣＰＵ手段と、
第１及び第２のＣＰＵ手段に夫々設けられ、これらのＣＰＵ手段が同一プログラムを実行したときに同一なメモリイメージを生成する共通機能部と、
第１及び第２のＣＰＵ手段に夫々設けられ、これらのＣＰＵ手段が同一プログラムを実行したときに異なるメモリイメージを生成する差分機能部と、
これらＣＰＵ手段が前記プログラムを実行した結果が反映される第１及び第２の主記憶手段と、
前記第１及び第２のＣＰＵ手段の差分機能部が利用する第１及び第２のエミュレーションライブラリ手段と、
これらエミュレーションライブラリ手段が使用する第１及び第２のエミュレーションバッファ手段とを具備し、
前記第１及び第２の主記憶手段は、
前記第１及び第２のＣＰＵ手段の共通機能部による前記プログラムの実行結果が反映される第１及び第２メモリイメージ領域Ａと、
前記第１及び第２のＣＰＵ手段の差分機能部による前記第１及び第２のエミュレーションライブラリ手段を介した前記プログラムの実行結果が反映される第１及び第２メモリイメージ領域Ｂと、
を有する点にある。
【００１１】
請求項２記載発明の特徴は、
前記第１及び第２のエミュレーションバッファ手段が、前記第１及び第２の主記憶手段に形成されてなる点にある。
【００１２】
請求項３記載発明の特徴は、
前記第１及び第２のＣＰＵ手段の共通機能部による前記プログラムの実行結果が反映される第１及び第２メモリイメージ領域Ａと、前記第１及び第２のＣＰＵ手段の差分機能部による前記第１及び第２のエミュレーションライブラリ手段を介した前記プログラムの実行結果が反映される第１及び第２メモリイメージ領域Ｂとは、完全に一致している点にある。
【００１３】
請求項４記載発明の特徴は、
前記第１及び第２の主記憶手段に形成される前記第１及び第２のエミュレーションバッファ手段の内容は不一致である点にある。
【００１４】
請求項５記載発明の特徴は、
前記第１及び第２のエミュレーションライブラリ手段は、互いに他のＣＰＵに関する論理番地と物理番地を対応させたＭＭＵコンテキスト、ＣＰＵレジスタコンテキスト、割り込み種別情報を具備する点にある。
【００１５】
請求項６記載発明の特徴は、
前記第１及び第２のＣＰＵ手段が、分散型制御装置における制御ステーションの二重化構成に使用されてなる、点にある。
【００１６】
【発明の実施の形態】
以下本発明実施態様を、図面を用いて説明する。図１は本発明を適用した二重化コンピュータ装置の構成を説明する機能ブロック図であり、６及び７は第１及び第２のＣＰＵ手段、８及び９は第１及び第２の主記憶手段、１０及び１１は第１及び第２のエミュレーションライブラリ手段である。
【００１７】
ＣＰＵ手段が生成する主記憶手段のイメージをＣＰＵ手段の種別に依存しない形にするための機構は、ＯＳ内部に実装される。出願人の検証例では、第１のＣＰＵ手段として、MIPS-R3500を、第２のＣＰＵ手段としてMIPS-R5432を採用した。
【００１８】
第１及び第２のＣＰＵ手段6及び７において、６１及び７１は同一プログラムを実行したときに同一なメモリイメージを生成する共通機能部、６２及び７２は同一プログラムを実行したときに異なるメモリイメージを生成する差分機能部である。
【００１９】
第１及び第２の主記憶手段８及び９において、８１及び９１は前記共通機能部６１及び７１がプログラム実行処理Ｒ１１及びＲ２１で書き出すメモリイメージ（メモリイメージＡ）であり、両者は本質的に一致している。
【００２０】
第１及び第２の主記憶手段８及び９において、８２及び９２は、前記差分機能部６２及び７２がプログラム実行処理Ｒ１２及びＲ２２で書き出すメモリイメージを、第１及び第２のエミュレーションライブラリ手段１０及び１１を介するエミュレーション処理Ｒ１３及びＲ２３で書き出すメモリイメージ（メモリイメージＢ）であり、両者は一致している。
【００２１】
第１及び第２の主記憶手段８及び９に形成された領域８３及び９３は、第１及び第２のエミュレーションライブラリ手段１０及び１１がエミュレーション処理Ｒ１３及びＲ２３を実行する際に参照されるエミュレーションバッファ手段である。
【００２２】
本来、前記差分機能部６２及び７２がプログラム実行処理Ｒ１２及びＲ２２で書き出すメモリイメージはお互いに不一致であるところ、本発明では、第１及び第２のエミュレーションライブラリ手段を介するエミュレーション処理Ｒ１３及びＲ２３で書き出すメモリイメージ（メモリイメージＢ）が両者で共通になるようにした点を特徴としている。
【００２３】
エミュレーションライブラリ手段１０及び１１は、ＣＰＵ手段６及び７の内部レジスタおよび、エミュレーションバッファ手段８３及び９３を使用して、異なるＣＰＵ手段でも共通のメモリイメージが生成されるように作動する。
【００２４】
この機構により、エミュレーションバッファ手段８３及び９３以外のメモリの内容は、第１のＣＰＵ手段６のメモリイメージ（Ａ＋Ｂ）と第２のＣＰＵ手段７のメモリイメージ（Ａ＋Ｂ）が完全に同一となる。
【００２５】
本発明による二重化構成では、エミュレーションバッファ手段の違いを無視して同期実行することにより、異なるＣＰＵ手段間での同期実行並びに異なるＣＰＵの交換が可能となる。
【００２６】
図２のフローチャートにより、二重化実行時のＯＳの処理の手順を説明する。割り込みやＣＰＵ例外、システムコールなどのトラップが発生したタイミングＳ１でＯＳがコールされる。ＯＳルーチンの先頭では、ステップＳ２、Ｓ３でそのトラップの種別を判断して、システムコール処理Ｓ４、例外処理Ｓ５，割り込み処理Ｓ６に分岐する。
【００２７】
該当処理Ｓ４乃至Ｓ６が終了したら、ステップＳ７でタスクからのトラップであるか否かがチェックされ、タスクからのトラップだった場合は、次に起動するタスクを選択する処理Ｓ８(dispatch処理)を実行後、ステップＳ９でトラップを発生したコンテキストに戻る。
【００２８】
カーネルの各処理Ｓ４、Ｓ５、Ｓ６、Ｓ８では、ＣＰＵ手段毎の差分機能部の処理をエミュレーションするライブラリ手段Ｓ１１、Ｓ１２、Ｓ１３、Ｓ１０が呼び出される。ＣＰＵ手段毎の差分機能部の違いは、これらエミュレーションライブラリ手段内部で吸収されるため、呼び出し側から見ると、どのＣＰＵ手段でも同一機能の関数が実行されているように見える。
【００２９】
図３のフローチャートにより、エミュレーションライブラリ手段の動作手順を説明する。
各エミュレーションライブラリ手段は、まずステップＳ１で動作中のＣＰＵの型を調べた後、それに対応したエミュレーション処理をステップＳ２及びＳ３で実行する。
【００３０】
エミュレーションライブラリ手段によってエミュレーションされる対象は、ＣＰＵに関する論理番地と物理番地を対応させたＭＭＵコンテキスト、ＣＰＵレジスタコンテキスト、割り込み種別である。
【００３１】
実施例では、エミュレーションバッファ手段は主記憶手段の一部を利用する形態を示したが、主記憶手段とは別のハードウェア手段（レジスタ）で実現することも可能である。
【００３２】
【発明の効果】
以上説明したことから明らかなように、本発明によれば制御ステーションを停止せずに、旧ＣＰＵカードから新しいＣＰＵカードへのオンラインでのＣＰＵアップグレードが可能となり、制御ステーションの稼働率を向上させることができる。
【００３３】
旧ＣＰＵカードは部品改廃などの理由で、製造が困難になってくるが、オンラインで最新ＣＰＵカードにアップグレードできるようになることで、ユーザに迷惑をかけない形で、旧ＣＰＵカードの製造停止することができ、開発時のコストダウンが期待できる。
【図面の簡単な説明】
【図１】本発明を適用した二重化コンピュータ装置の構成を説明する機能ブロック図である。
【図２】本発明による二重化実行時のＯＳの処理の手順を説明するフローチャート図である。
【図３】本発明によるエミュレーションライブラリ手段の動作手順を説明するフローチャート図である。
【図４】同期実行方式による二重化コンピュータ装置のイメージを説明する機能ブロック図である。
【図５】二重化された制御ステーションにおいて、ＣＰＵカードの故障によるカード交換のイメージ図である。
【符号の説明】
６  第１ＣＰＵ手段
６１  共通機能部
６２  差分機能部
７  第２ＣＰＵ手段
７１  共通機能部
７２  差分機能部
８  第１主記憶手段
８１  メモリイメージＡ
８２  メモリイメージＢ
８３  エミュレーションバッファ
９  第１主記憶手段
９１  メモリイメージＡ
９２  メモリイメージＢ
９３  エミュレーションバッファ
１０  第１エミュレーションライブラリ手段
１１  第２エミュレーションライブラリ手段
【図１】
0003741268.tif 000002
【図２】
0003741268.tif 000003
【図３】
0003741268.tif 000004
【図４】
0003741268.tif 000005
【図５】
0003741268.tif 000006