【事件の表示】
　平成　９年特許願第３０６０７４号「フォールトトレラントコンピュータ」拒絶査定に対する審判事件［平成１１年　５月２８日出願公開、特開平１１−１４３７２９］について、次のとおり審決する。
【結　論】
　本件審判の請求は、成り立たない。
【理　由】
　
１．手続の経緯・本願発明　
　本願は、平成９年１１月７日の出願であって、その請求項１に係る発明は、平成１３年６月６日付けで手続補正された明細書の特許請求の範囲の請求項１に記載されたとおりの次のもの（以下、本願発明という。）である。　
　
「【請求項１】二重冗長構成とされた演算制御部と、各演算制御部にそれぞれ設けられ、互いにバスを介して接続された判断部とから構成されたフォールトトレラントコンピュータであって、　
　前記判断部は、前記演算制御部を同時に動作状態に設定する二重冗長構成と、一方の演算制御部を動作状態とし他方の演算制御部を休止状態とする待機冗長構成とのいずれかに選択する機能と、　
　前記二重冗長構成においていずれかの演算制御部が故障した場合に該故障した演算制御部を識別して前記バスから隔離する機能と、　
　前記二重冗長構成において各演算制御部に同時に同じ演算制御を行わせてシステムを多重化する構成と、一方の演算制御部に他方の演算制御部と異なる演算制御を行わせて機能を分散させてシステム全体の演算制御能力を向上させるとともに一方の故障による全機能の喪失を防止する構成とのいずれかに選択する機能と、　
を有することを特徴とするフォールトトレラントコンピュータ。」　
　
２．引用例　
　これに対して、原査定の拒絶の理由に引用された特開平４−７８９０２号公報（平成４年３月１２日出願公開、以下、引用例という。）には、図面とともに、以下のことが記載されている。　
　
「３．発明の詳細な説明　
［発明の目的］　
（産業上の利用分野）　
　本発明は、鉄鋼、製紙プラントや上下水道などの公共システム、自動車産業など、産業用のシステムの制御に広く使用されているプログラマブルコントローラ（以下ＰＣと略す）に係り、特にその信頼性向上の為にＣＰＵを二重化したり、制御機能の向上の為にＰＣを並列化する為に使用するバスコントローラに関するものである。　
　・・・　
（従来の技術）　
　・・・　
　冗長系の制御の内、２重系のシステムとしては同期２重系、待機２重系などのシステムがある。同期２重系とは２台のＰＣに同一のプログラムを実行させ、その演算結果が一致していることを確認した後、制御に使用するものである。・・・待機２重系は２台のＰＣが同一のプログラムを持ち、その内の１台だけがプログラムを実行して制御を行うものであり、他の１台は実行中のＰＣが故障した場合などに制御動作を継続させる為にプログラムの実行を開始するシステムである。・・・　
　３台以上のＰＣを冗長系として使用するシステムでは、多数決制御システムがある。これは複数のＰＣの演算結果の多数決をとり、多数である結果を制御出力とするものである。この場合には多数決回路が必須である。　
　この他、冗長系とは異なるが、２台以上のＰＣに別々の制御プログラムを実行させ、共通の入出力モジュールとの入出力を行わせるシステムもある。これは１台のＰＣだけでは処理が遅くなる場合に、複数のＰＣに制御を分担実行させる方法である。この方式では１台のＰＣの制御能力が不足した際に次々とＰＣを付け加えて制御能力を増すことも可能である。この場合のＰＣはアドオンＣＰＵと呼ばれることもある。　
（発明が解決しようとする課題）　
　・・・　
　本発明は上記の問題に鑑みてなされたもので、・・・これらの回路を用途により選択して機能させることにより同期２重系、待機２重系、機能分担２重系などのシステムを構築可能とすることを目的としている。」（・・・は引用箇所の省略を意味し、以下、同様とする。）（公報１頁右下欄１３行〜２頁右下欄３行）、　
「（実施例）
　本発明の一実施例のハードウェア構成を第１図に示す。第１図において１−１，１−２はＰＣであり、説明を容易にする為に１−１をＡ系のＰＣ、１−２をＢ系のＰＣと呼ぶことにする。２−１，２−２は各ＰＣのシステムバス、３はバスコントローラ、３１は制御回路、３２はハンドシェークレジスタ、３３はＩ／Ｏバスアービタ、３４はアドレス一致検出回路、３５はデータ一致検出回路、３６はアドレスマルチプレクサ、３７はデータマルチプレクサ、４はＩ／Ｏバス、５はＩ／Ｏモジュールである。　
　本発明のバスコントローラを使用することにより、同期２重化運転、待機２重化運転、並列２重化運転などが可能である。
　まず同期２重化運転の方法について第２図を用いて説明する。同期２重化運転ではＡ系のＰＣ１−１、Ｂ系のＰＣ１−２には同一のプログラムを格納しておく。制御回路３１にＰＣ又は外部から同期２重化運転の指令を書き込み、バスコントローラ３を同期２重化モードにする。このときＩ／Ｏバスアービタ３３の動作は停止させられ、アドレスマルチプレクサ３６、データマルチプレクサ３７はＡ系のＰＣ１−１（又はＢ系のＰＣ１−２）のアドレスおよびデータをＩ／Ｏバス４に入出力するように設定される。・・・　
　Ｉ／Ｏモジュール５へのデータ出力の場合には、両系のＰＣから出力されたアドレス、データの内容がアドレス一致検出回路３４及びデータ一致検出回路３５により調べられる。両系のＰＣからのアドレス、データが一致している場合にはアドレスマルチプレクサ３６及びデータマルチプレクサ３７の動作を可能とし、アドレス、データはＩ／Ｏバス４に出力される。・・・アドレス又はデータが一致していなかった場合は何回かのリトライ動作を試みる。リトライ動作によっても不一致が消失しない場合には両系のＰＣを停止させる。２系のＰＣの内どちらかのＰＣが故障しているかがハンドシェークレジスタ３２内のステータスで明らかに決定できる場合には、健全なＰＣを１台だけ使用して運転を継続することも可能である。なお、アドレス、データの不一致は不一致検出回路からハンドシェークレジスタ３２にエラー信号として伝えられ、両系のＰＣから読み出すことが可能である。
　・・・　
　次に待機２重化運転の方法につて（「ついて」の誤記と認められる。）第３図を用いて説明する。待機２重化運転の場合もＡ系のＰＣ１−１、Ｂ系のＰＣ１−２には同一のプログラムを格納しておく。制御回路３１にＰＣ又は外部からの待機２重化運転の指令を書き込み、バスコントローラ３を待機２重化モードにする。このときアドレス不一致検出回路３４及びデータ不一致検出回路３５の動作は停止させられ、Ｉ／Ｏバスアビータ３３も本来の調停動作は行わずに制御回路３１からの指令に従って アドレスマルチプレクサ３６及びデータマルチプレクサ３７にバスの選択指令を出すだけの動作を行う。又、コマンド制御回路３８はコマンドマルチプレクサの動作を行い、制御回路３１の指令に従ってＡ系のＰＣ１−１又はＢ系のＰＣ１−２のコマンドをＩ／Ｏバス４に選択して出力するだけの機能を果たすようになる。この待機２重系ではまずＡ系のＰＣ１一1が現用系として動作を開始するものとする。このとき、アドレスマルチプレクサ３６、データマルチプレクサ３７及びコマンド制御回路３８は全てＡ系ＰＣのバスを選択してＩ／Ｏバス４に接続している。従ってＡ系のＰＣ１−１のプログラム実行及びＩ／Ｏモジュール５との入出力はＡ系のＰＣが単独で制御を行っている場合と変わりがない。一方、Ｂ系のＰＣ１−２はプログラムの実行は行わずに、ハンドシェークレジスタ３２を介してＡ系のＰＣの動作をモニタし、レジスタデータの転送処理やＡ系のＰＣの故障検出を行っている。Ａ系のＰＣは１スキャンのプログラム実行を終えるとＩ／Ｏモジュール５との間でデータの入出力を行う。このときＡ系のＰＣとＢ系のＰＣの内部状態を同一にする為に、Ａ系のＰＣ１−１からＢ系のＰＣ１−２にハンドシェークレジスタ３２を介して内部レジスタの情報を転送する。ハンドシェークレジスタ３２には２系のＰＣ間の通信用フラグの他に、ＰＣの内部レジスタ情報を転送するのに十分なレジスタ容量があるものとする。　
　上記の状態で、もし、Ａ系のＰＣが故障した際にはＢ系のＰＣ１−２は前回のスキャン実行後の内部レジスタ状態を使用して、Ａ系のＰＣが実行中であったスキャン実行の先頭から、プログラムを継続して実行することができる。このときＡ系のＰＣ１−１の故障信号を検出した制御回路３１はアドレスマルチプレクサ３６、データマルチプレクサ３７及びコマンド制御回路３８にバス切替え信号を出力し、Ｂ系のＰＣ１−２のシステムバス２−２をＩ／Ｏバス４に接続させる。この後Ｂ系のＰＣ１−２はスキャン実行の度に内部レジスタ情報をＡ系のＰＣ１−１に転送する動作を開始し、Ａ系のＰＣへの切換え準備を行う。上記のようにして２系のＰＣを待機２重化運転させることが可能である。　
　次に並列２重化運転の方法について第４図を用いて説明する。並列２重化運転ではＡ系のＰＣ１−１、Ｂ系のＰＣ１−２は異なるプログラムを持っている。ＰＣ又は外部からの制御回路３１に並列２重化運転の指令を書き込み、バスコントローラ３を並列２重化モードにする。このときアドレス不一致検出回路３４及びデータ不一致検出回路３５の動作は停止させられる。Ｉ／Ｏバスアービタ３３は本モードのときのみ本来の機能を果す。つまり、Ａ系のＰＣ１−１又はＢ系のＰＣ１−２からＩ／Ｏモジュール５に対してアクセスがあった際に、先に要求のあったＰＣにＩ／Ｏバス４の使用権を与え、そのアクセスが終了するまでその使用権を保持させるのである。このとき他のＰＣは使用権を持つＰＣの アクセスが終わるまでアドレス、コマンド信号あるいはデータ信号を出力したまま待機する。アドレスマルチプレクサ３６及びデータマルチプレクサ３７はＩ／Ｏバスア一ビタ３３の指令に従い、Ｉ／Ｏバス４の使用権を持つ側のＰＣのシステムバスをＩ／Ｏバス４に接続する動作を行う。コマンド制御回路３８はこのモードのとき単なるコマンドバスマルチプレクサの動作を行い.上記のアドレスマルチプレクサ及びデータマルチプレクサと同様の動作を行う。　
　並列２重化運転を行うとき、２台のＰＣは同期して運転することも可能であるし、同期しなくとも動作可能である。・・・２台のＰＣが使用するＩ／Ｏモジュール５は通常別々のモジュールであるが、重複していても構わない。但しこのときには入力データの同一化の為に一方のＰＣが読み込んだデータをハンドシェークレジスタ３２を介して他方のＰＣに転送するのが通常の方法である。　
　さて、２台のＰＣは上記の方法によりＩ／Ｏバス４及びＩ／Ｏモジュール５を共有してプログラムを実行し制御動作を行うことができる。演算データの内で共有する必要があるものは、やはりハンドシェークレジスタ３２を介して他方のＰＣに転送される。並列２重化運転では２台のＰＣが別々のプログラムを実行するので、同様のプログラムを１台のＰＣで実行した場合に比してスキャン実行時間を短くすることが可能であり、制御の応答性が増す。又は１台のＰＣがシーケンス制御動作、他の１台のＰＣが数値演算動作などという使用法も可能である。
　なお、本発明のバスコントローラを使用したＰＣシステムでは、待機２重化運転において待機側のＰＣを取外したときと同様の使用法により、１台だけのＰＣでも制御動作を行うことが可能である。これにより、・・・デバッグの効率が増すと共に、重大故障により１台のＰＣが取外された場合でも残りのＰＣで制御の継続が可能である。」（公報３頁左上欄２行〜５頁右上欄１１行）　
　
　上記の記載及び図面を勘案すると、引用例には、　
　冗長系であって二重化されたプログラマブルコントローラと、バスコントローラとから構成されたシステムであって、　
　上記バスコントローラは、同期２重系の構成と、一方のプログラマブルコントローラがプログラムを実行し、他方のプログラマブルコントローラが一方のプログラマブルコントローラの動作のモニタ及び故障検出を行う待機２重系の構成のいずれかの構成を選択する機能と、　
　いずれかのプログラマブルコントローラが故障した場合に該故障したプログラマブルコントローラを決定して他方のプログラマブルコントローラだけを使用して運転する機能と、　
　上記同期２重系の構成と、機能分担２重系の構成のいずれかの構成を選択する機能と、　
を有するシステム（以下、引用発明という。）　
が記載されていると認められる。　
　
３．対比　
　本願発明と引用発明を対比する。　
　
（１）引用発明の「プログラマブルコントローラ」は、制御システムにおいてプログラムを実行しシーケンス制御動作、数値演算動作などを行い演算結果を出力するものであるから、本願発明の「演算制御部」に対応し、したがって、引用発明の「冗長系であって二重化されたプログラマブルコントローラ」は、本願発明の「二重冗長構成とされた演算制御部」に対応する。　
　
（２）引用発明の「システム」は、上記二重冗長構成を用いて故障が発生した場合にも運転を継続するコンピュータシステムであるから、その点で本願発明の「フォールトトレラントコンピュータ」に対応する。　
　
（３）引用発明の「同期２重系の構成」は、二重冗長構成であって、それぞれの上記演算制御部に同一のプログラムを同期して実行させる構成であるから、本願発明の「前記演算制御部を同時に動作状態に設定する二重冗長構成」及び「前記二重冗長構成において各演算制御部に同時に同じ演算制御を行わせてシステムを多重化する構成」に対応する。　
　又、引用発明の「待機２重系の構成」は、一方のプログラマブルコントローラだけがプログラムを実行する構成であり、その点で本願発明の「一方の演算制御部を動作状態とする待機冗長構成」に対応する。　
　してみると、引用発明の「同期２重系の構成と、待機２重系の構成のいずれかの構成を選択する機能」は、本願発明の「前記演算制御部を同時に動作状態に設定する二重冗長構成と、一方の演算制御部を動作状態とする待機冗長構成とのいずれかに選択する機能」に対応する。　
　
（４）引用発明のいずれかのプログラマブルコントローラが故障した場合に該故障したプログラマブルコントローラを決定して他方のプログラマブルコントローラだけを使用して運転する機能は、引用例の上記「上記の状態で、もし、Ａ系のＰＣが故障した際には・・・制御回路３１はアドレスマルチプレクサ３６、データマルチプレクサ３７及びコマンド制御回路３８にバス切替え信号を出力し、Ｂ系のＰＣ１−２のシステムバス２−２をＩ／Ｏバス４に接続させる。」という記載をさらに勘案すると、いずれかの上記演算制御部が故障した場合に該故障した上記演算制御部を決定してＩ／Ｏバス４及びＩ／Ｏモジュール５への接続を切り離す機能であると認められ、したがって、引用発明の「いずれかのプログラマブルコントローラが故障した場合に該故障したプログラマブルコントローラを決定して他方のプログラマブルコントローラだけを使用して運転する機能」は、本願発明の「前記二重冗長構成においていずれかの演算制御部が故障した場合に該故障した演算制御部を識別して前記バスから隔離する機能」に対応する。　
　
（５）引用発明の「機能分担２重系の構成」は、それぞれの上記演算制御部に、異なるプログラムあるいはシーケンス動作と数値演算動作といった異なる動作を行わせて分担実行させるものである。　
　さらに、引用例に「これは１台のＰＣだけでは処理が遅くなる場合に、複数のＰＣに制御を分担実行させる方法である。」、「並列２重化運転では２台のＰＣが別々のプログラムを実行するので、同様のプログラムを１台のＰＣで実行した場合に比してスキャン実行時間を短くすることが可能であり、制御の応答性が増す。」、及び「なお、本発明のバスコントローラを使用したＰＣシステムでは、待機２重化運転において待機側のＰＣを取外したときと同様の使用法により、１台だけのＰＣでも制御動作を行うことが可能である。これによりプログラムのデバッグの効率が増すと共に、重大故障により１台のＰＣが取外された場合でも残りのＰＣで制御の継続が可能である。」と記載されていることからも、このような機能分担２重系の構成を用いた場合に、システム全体の演算制御能力が向上し、一方の故障によって全機能が喪失することが防止できることは明らかである。　
　したがって、引用発明の「上記同期２重系の構成と、機能分担２重系の構成のいずれかの構成を選択する機能」は、本願発明の「前記二重冗長構成において各演算制御部に同時に同じ演算制御を行わせてシステムを多重化する構成と、一方の演算制御部に他方の演算制御部と異なる演算制御を行わせて機能を分散させてシステム全体の演算制御能力を向上させるとともに一方の故障による全機能の喪失を防止する構成とのいずれかに選択する機能」に対応する。　
　
（６）引用発明の「バスコントローラ」は、上記（３）〜（５）の機能を有するという点で、本願発明の「判断部」に対応する。　
　
　したがって、本願発明と引用発明は、
　二重冗長構成とされた演算制御部と、判断部とから構成されたフォールトトレラントコンピュータであって、　
　前記判断部は、前記演算制御部を同時に動作状態に設定する二重冗長構成と、一方の演算制御部を動作状態とする待機冗長構成とのいずれかに選択する機能と、　
　前記二重冗長構成においていずれかの演算制御部が故障した場合に該故障した演算制御部を識別して前記バスから隔離する機能と、　
　前記二重冗長構成において各演算制御部に同時に同じ演算制御を行わせてシステムを多重化する構成と、一方の演算制御部に他方の演算制御部と異なる演算制御を行わせて機能を分散させてシステム全体の演算制御能力を向上させるとともに一方の故障による全機能の喪失を防止する構成とのいずれかに選択する機能と、　
を有するフォールトトレラントコンピュータ　
である点で一致し、次の点で相違する。　
　
［相違点１］　
　判断部が、本願発明では、各演算制御部にそれぞれ設けられ、互いにバスを介して接続されているのに対して、引用発明では、そのような構成でない点。　
　
［相違点２］　
　待機冗長構成が、本願発明では、他方の演算制御部を休止状態とするものであるのに対して、引用発明では、他方の演算制御部を一方の演算制御部の動作のモニタ及び故障検出の状態とするものである点。　
　　
４．相違点についての判断　
　上記相違点について検討する。　
　
［相違点１について］　
　例えば、原査定に参考文献として提示された特開平４−７１０３７号公報（平成４年３月５日出願公開、以下、周知例という。）の「２．特許請求の範囲　
　２台のＣＰＵを用いてフォールトトレラント・コンピュータシステムを構成する電子計算機の二重化方式において、　
　上記２台のＣＰＵそれぞれのバス制御モジュールに備えられ自ＣＰＵと相手方ＣＰＵの出力データ同士の一致／不一致を比較検出する出力比較手段と、・・・」（公報１頁左下欄４行〜１１行）、「第１図は・・・各ＣＰＵ２０，３０にはそれぞれ・・・演算制御モジュール（ＡＣＰ）２２，３２、バス制御モジュール２３，３３が備えられ、・・・　
　バス制御モジュール２３，３３は、・・・ＣＰＵ間同期ケーブル４０を介して相手方バス制御モジュールとの出力信号の比較を行うもので、・・・」（公報４頁左上欄１行〜１６行）という記載及び第１図、第２図を勘案すると、上記周知例には、各演算制御モジュールにそれぞれ設けられ、互いにＣＰＵ間同期ケーブルを介して接続されたバス制御モジュールという構成が開示されていると解され、してみれば、フォールトトレラント・コンピュータシステムにおいて、引用発明のバスコントローラに相当し、バス制御を行うものであって一方の演算制御部の出力と他方の演算制御部の出力を比較する手段を、各演算制御部にそれぞれ設け、互いに所定の回線を介して接続するという構成は、本願出願前周知の技術であると認められる。　
　したがって、引用発明において、上記周知の技術を参酌して、判断部が、各演算制御部にそれぞれ設けられ、互いにバスを介して接続されているようにすることは、当業者が容易になし得るものである。　
　
［相違点２について］　
　まず、引用例の「なお、本発明のバスコントローラを使用したＰＣシステムでは、待機２重化運転において待機側のＰＣを取外したときと同様の使用法により、１台だけのＰＣでも制御動作を行うことが可能である。これによりプログラムのデバッグの効率が増すと共に、重大故障により１台のＰＣが取外された場合でも残りのＰＣで制御の継続が可能である。」という記載から、引用発明のものにおいても、待機２重化運転時などに他方の演算制御部を全く使用しない構成が記載されていると認められる。　
　又、一般的な待機２重系、待機冗長構成において、一方の演算制御部を動作状態とするとともに、他方の演算制御部を電源を落とした休止状態とすることは本願出願前周知の技術である。（例えば、特開平４−２６８６４３号公報、特開平６−１６１８０２号公報参照。）　
　したがって、引用発明において、上記周知の技術を参酌して、待機冗長構成を一方の演算制御部を動作状態とするとともに、他方の演算制御部を休止状態とするようにすることは、当業者が容易になし得るものである。　
　
５．むすび　
　したがって、本願発明は、引用例に記載された発明及び周知の技術に基づき、当業者が容易に発明をすることができたものであるので、特許法第２９条第２項の規定により特許を受けることができない。　
　
　よって、結論のとおり審決する。