【事件の表示】
　平成　８年特許願第５１７５７０号「高度に相互接続されたモジュラーコンピュータ装置用の保守チャネル」拒絶査定不服審判事件〔平成　８年　６月１３日国際公開、ＷＯ９６／１８１５６、平成１０年　６月　２日国内公表、特表平１０−５０５６９６〕について、次のとおり審決する。
【結　論】
　本件審判の請求は、成り立たない。
【理　由】
１．手続の経緯・本願発明の要旨
　本願は、平成７年９月１９日（パリ条約による優先権主張外国庁受理１９９４年１２月７日、アメリカ合衆国）を国際出願日とする出願であって、その請求項１に係る発明は、特許請求の範囲の請求項１に記載された事項により特定される次のとおりのものと認める（以下、「本願発明」という）。
「処理、蓄積、入力／出力及び誤り検査操作のうち少なくとも１つの操作を行うモジュールであって、他のモジュールと通信するために少なくとも１つのポートを有する、複数のモジュールと、上記複数のモジュールにおけるポートと相互に接続して形成される、相互接続ネットワークと、上記複数のモジュールにおける１つと接続されて当該モジュラーコンピュータ装置の構成、操作及び診断を制御する、保守インターフェイスとにより構成されたモジュラーコンピュータ装置において、
　上記保守インターフェイスからの命令を用いて、モジュールが正常な機能状態にあるかどうかを判定するための健全コードを発生する、健全コード発生手段を設け、
　上記複数のモジュールのそれぞれに、有効な健全コードを認識する、健全コード認識手段と、当該複数のモジュール間で健全コードを転送するようにした相互接続ネットワークを介して受信した有効な健全コードを再転送する、健全コード再転送手段とを設けたことを特徴とする、モジュラーコンピュータ装置」
　
２．当審の拒絶理由
　一方、当審において平成１６年７月２９日付けで通知した拒絶の理由Ａの概要は、本願発明が、本願の優先権主張の日前の１９９４年（平成６年）１１月１０日に頒布された刊行物、国際公開９４／２５９２０号パンフレット（以下、「引用例」という）に記載された発明に基づいて当業者が容易に発明をすることができたものであるから、特許法第２９条第２項の規定により特許を受けることができない、というものである。
　
３．引用例
　そして、引用例には、図面とともに次の事項が記載されている。
１）「Finally, a sanity code is used to determine whether data on a particular path in the interconnect network is valid. The sanity code is also used to detect memory bank or network path failures or to downgrade a system.」（第4頁24〜26行目）
　当該記載の翻訳を以下に記す。
「最後に、相互接続ネットワーク内の特定の経路上のデータが正しいか否かを判定するためにsanity code[健全性コード]が使用される。このsanity code[健全性コード]は、メモリ・バンクもしくはネットワーク経路の故障を検出し、または、システムのグレードを下げるためにも使用される。」
　
２）「FIGURE 9 shows a block diagram of a network module 300. Each network module has sixteen inputs 0-15 and sixteen outputs 0-15.」（第12頁7〜8行目）
　当該記載の翻訳を以下に記す。
「図９は、ネットワーク・モジュール300のブロック図を示す。各ネットワーク・モジュールは、16個の入力0〜15と16個の出力0〜15とを有している。」
　
３）「Detail of the connections between the 32 CPU's 100a-ff and the network modules 300a-p is shown in more detail in FIGURE 4. FIGURE 4 shows eight CPU's 100a-h and the associated interconnections between network modules 300a, 300e, 300i, and 300m. CPUs 100a-ff are connected to network modules 300 such that each CPU has access to each memory bank of the memory modules 600. Thus port 0 of CPU 100a connects to input 0 of network module 300a input 0 of network module 300e, input 0 of network module 300i and input 0 of network module 300m.」（第15頁7〜14行目）
　当該記載の翻訳を以下に記す。
「32個のCPU100a-ffとネットワーク・モジュール300a-pとの間の接続の細部を図4により詳細に示す。図4は、8個のCPUと、ネットワーク・モジュール300a、300e、300iおよび300mの間の、それらのCPUに関連する相互接続とを示している。CPU100a-ffは、各CPUがメモリ・モジュール600の各メモリ・バンクへのアクセス経路を有するように、ネットワーク・モジュール300に接続されている。このようにして、CPU100aのポート0は、ネットワーク・モジュール300aの入力0、ネットワーク・モジュール300eの入力0、ネットワーク・モジュール300iの入力0、およびネットワーク・モジュール300mの入力0に接続される。」
　
４）「FIGURE 5 shows more detail of the connection between network modules 300a-d and memory modules 600a-h of the exemplary 32 CPU system shown in FIGURE 3. Each memory module 600a-h connects to two outputs of each of the four network modules 300a-d. The network and memory modules are connected such that a reference from any of the 32 processors can reach any memory bank in common memory 602.
　    For example, to route a reference from CPU 100d to memory bank 640e of memory module 600h (see FIGURE 3), port 0 of CPU 100d is routed to input 3 of network module 300a (see FIGURE 4). From network module 300a, the message is routed out output 7 of network module 300a (shown in FIGURE 5). This output connects to input 0 of memory module 600h.」（第15頁19〜29行目）
　当該記載の翻訳を以下に記す。
「図5は、図3に示された32個のCPUのシステムの一例における、ネットワーク・モジュール300a-dとメモリ・モジュール600a-hとの間の接続をより詳細に示している。各メモリ・モジュール600a-hは、4個のネットワーク・モジュール300a-dのそれぞれにおける2個の出力に接続されている。このネットワーク・モジュールとメモリ・モジュールは、32個のプロセッサのいずれからの参照も共通メモリ602内のいずれのメモリ・バンクにも到達できるように接続されている。
  例えば、CPU100dからの参照に対しメモリ・モジュール600hのメモリ・バンク640eへ経路を設定するために（図3参照）、CPU100dのポート0はネットワーク・モジュール300aの入力3へ経路が設定される（図4参照）。ネットワーク・モジュール300aからは、メッセージがネットワーク・モジュール300aの出力7より出される（図5に示されている）。この出力はメモリ・モジュール600hの入力0に接続されている。」
　
５）「For systems such as the eight CPU eight memory module multiprocessing system described above, in which all CPU outputs are not used, a mechanism is provided to indicate whether data on each path through the interconnect network is valid. For those outputs which are not used, noise or other invalid information will be sent over a particular processor to memory path. Errors could occur should the memory banks interpret these invalid signal as instructions or data to be read or written to a memory location.
　    To ensure that valid data is on each signal line, each valid processor output sends a serial bit stream into the first switch of the interconnect network. This serial bit stream has a sanity code embedded therein to indicate whether data from that output is valid. The sanity code is a six bit pattern which is sent out serially and continuously to the first network switch interconnect by each valid processor output. Thus, for each CPU shown in FIGURE 2, each valid CPU output sends the sanity code to the first switch of the respective memory module 600. For each CPU shown in FIGURE 3, each valid CPU output sends the sanity code to the first switch of the respective network module 300. The purpose of the sanity code is to protect the interface between modules in the interconnect network. When a correct sanity code is received, the result is broadcast the sanity code to all eight outputs to which that input has access to. Thus, for example, in FIGURE 7, if the CPU output in question connects to input 2 of memory module 600, 1x1 switch 610c checks for the correct sanity code, and if received, broadcasts it to the eight memory banks 640a-h which input 2 has access to.
　    The control circuitry for monitoring the sanity code is shown in FIGURE 13. A sanity check circuit 700 in the first switch of each module, monitors the received sanity code to determine whether the data coming into that input of module is valid. For memory modules 600, there is a sanity check circuit 700 in each 1x1 switch 610a-h corresponding to each input 0-7. For network modules 300, there is a sanity check circuit 700 in each 1x1 switch 310a-p corresponding to each input 0-15.
　    The sanity check circuit 700 acts as an enable to the FIFO of the corresponding switch. If the sanity code is not correctly received, the FIFO in that switch will not be enabled and any information entering the switch will not be loaded into the FIFO buffers.
　    The sanity code must be chosen such that it is very unlikely that noise introduced by an invalid CPU output or by an unconnected input of a network or memory module will ever duplicate the sanity code. One exemplary appropriate six bit sanity code is therefor:
                             010011
　    As described above, this six bit code is sent out serially and continuously only by valid CPU outputs. A memory bank will only be enabled to pay attention to the data on a particular interconnect network path if the sanity check circuit determines that the six bit code is received serially sixteen times in a row. If at any time the proper sanity code is not received, the memory bank will ignore data on that path until the correct six bit code is again received serially sixteen times in a row.
　    The resulting 96 bit code (6 bit sanity code repeated sixteen times) is a signal having very distinct frequencies and signalling patterns embedded therein. These frequencies and signalling patterns are very unlikely to be duplicated by noise.」（第16頁18行目〜第18頁7行目）
　当該記載の翻訳を以下に記す。
「8個のCPUと8個のメモリ・モジュールを有するマルチ処理システムのようなシステムでは、CPUの全ての出力が使用されているわけではなく、そのようなシステムに対しては、相互接続ネットワークにおける各経路上のデータが有効か否かを示す機構が設けられている。使用されていないそれらの出力に対しては、ノイズまたは他の無効な情報が所定のプロセッサからメモリ経路へ送られる。もし、メモリ・バンクがこれらの無効な信号をあるメモリ位置に対して読み出すべき又は書き込むべき命令またはデータと解釈すれば、エラーが発生する可能性がある。
　有効なデータが各信号線に存在することを保証するために、プロセッサの有効な出力のそれぞれは、シリアルなビット・ストリームを相互接続ネットワークの最初のスイッチに送り込む。このシリアルなビット・ストリームは、その出力からのデータが有効か否かを示すために、その中に「sanity code[健全性コード]」が埋め込まれている。このsanity code[健全性コード]は、プロセッサの有効な出力のそれぞれに相互に接続された最初のネットワーク・スイッチへシリアルにかつ連続的に送り出される6ビットのパターンである。したがって、図2に示した各CPUに対しては、CPUの有効な出力のそれぞれが、それぞれのメモリ・モジュール600の最初のスイッチへsanity code[健全性コード]を送る。図3に示した各CPUに対しては、CPUの有効な出力のそれぞれが、それぞれのネットワーク・モジュール300の最初のスイッチへsanity code[健全性コード]を送る。このsanity code[健全性コード]の目的は、相互接続ネットワーク内のモジュール間のインターフェイスを保護することである。正しいsanity code[健全性コード]が受け取られると、その入力がアクセス経路を有している8個の出力の全てに、その受け取ったものが同報送信される。このようにして、例えば、図7では、問題となっているCPUの出力がメモリ・モジュール600の入力2に接続されていれば、1×1スイッチ610cが健全性コードが正しいか否かを調べ、正しいsanity code[健全性コード]を受け取っていれば、それを、入力2がアクセス経路を有している8個のメモリ・バンク640a-hへ同報送信する。
　sanity code[健全性コード]を監視するための制御回路を図13に示す。各モジュールの最初のスイッチにおける健全性検査回路700は、受け取ったsanity code[健全性コード]を監視して、モジュールのその入力に入って来たデータが有効か否かを判定する。メモリ・モジュール600に対しては、各入力0〜7に対応する各1×1スイッチ610a-h内に健全性検査回路700が存在する。ネットワーク・モジュール300に対しては、各入力0〜15に対応する各1×1スイッチ310a-p内に健全性検査回路700が存在する。
　健全性検査回路700は、対応するスイッチのFIFOをイネーブルにするものとして動作する。sanity code[健全性コード]が正しく受信されなければ、そのスイッチ内のFIFOは使用可能とはされず、そのスイッチに入る如何なる情報もFIFOバッファの中へは格納されない。
　無効なCPUによって又はネットワーク・モジュールもしくはメモリ・モジュールの未接続の入力によって生じるノイズがsanity code[健全性コード]と同じになるということが極めてまれであるように、sanity code[健全性コード]を選択しなければならない。したがって、6ビットのsanity code[健全性コード]の適切な一例は、　010011　である。
　上述のように、この6ビットのsanity code[健全性コード]は、CPUの有効な出力によってのみ、シリアルにかつ連続的に送り出される。その6ビットのコードがシリアルに16回連続して受け取られたと健全性検査回路が判定すると、一つのメモリ・バンクが動作可能とされて、相互接続ネットワークの所定の経路上のデータに注意を払うようになるだけである。如何なるときであっても正しいsanity code[健全性コード]が受け取られない場合は、そのメモリ・バンクは、正しい６ビットのコードが再びシリアルに16回連続して受け取られるまで、その経路上のデータを無視する。
　結果として得られる96ビットのコード（6ビットのコードが16回繰り返されたもの）は、非常に明瞭な周波数とその中に組み込まれたsignalling patterns[信号パターン]を有する信号である。これらの周波数および信号パターンがノイズと同じとなるのは極めてまれである。」
　
　したがってこれら記載事項によると、引用例には、
「CPU、ネットワーク・モジュール、メモリ・モジュールであって、他のモジュールと通信するために少なくとも１つのポートを有する、複数のモジュールと、上記複数のモジュールにおけるポートと相互に接続して形成される、相互接続ネットワークとにより構成されたマルチ処理システムにおいて、
上記複数のモジュールのそれぞれに、sanity code[健全性コード]を監視する、健全性検査回路と、当該複数のモジュール間でsanity code[健全性コード]を転送するようにした相互接続ネットワークを介して受信したsanity code[健全性コード]を同報送信する手段、とを設けたマルチ処理システム」
の発明（以下「引用例に記載の発明」という）が記載されている。
　
４．対比
　そこで、本願発明（以下、「前者」という）と引用例に記載の発明（以下、「後者」という）とを対比すると、
イ）後者の「CPU」が、前者の「処理」の「操作を行うモジュール」に相当する。
ロ）後者の「メモリ・モジュール」が、前者の「蓄積」の「操作を行うモジュール」に相当する。
ハ）後者の「ネットワーク・モジュール」が、前者の「入力／出力」の「操作を行うモジュール」に相当する。
ニ）上記３．の５）で示したように、後者の「メモリ・モジュール」又は「ネットワーク・モジュール」は、「健全性検査回路」を有することから、前者の「誤り検査操作」「を行うモジュール」にも該当する。
ホ）後者の「マルチ処理システム」も、「CPU、ネットワーク・モジュール、メモリ・モジュール」といった各「モジュール」から構成されるコンピュータ装置であることから、前者の「モジュラーコンピュータ装置」に相当する。
へ）前者の「健全コード」は、本願国際出願書類の「sanity code」を翻訳したものであるから、後者の「sanity code[健全性コード]」と等価である。
ト）後者の「健全性検査回路」は、上記３．の５）で示したように、「受け取ったsanity code[健全性コード]を監視して、モジュールのその入力に入って来たデータが有効か否かを判定する」ことから、該「sanity code[健全性コード]」の有効性を認識していることに対応し、前者の「健全性認識手段」に相当する。
チ）後者の「sanity code[健全性コード]を同報送信する手段」は、上記３．の５）で示したように、「正しいsanity code[健全性コード]を受け取っていれば、それを、入力2がアクセス経路を有している8個のメモリ・バンク640a-hへ同報送信する」ことから、該「sanity code[健全性コード]」を「再転送」していることに対応し、前者の「健全コード再転送手段」に相当する。
　
　したがって、両者は、
「処理、蓄積、入力／出力及び誤り検査操作のうち少なくとも１つの操作を行うモジュールであって、他のモジュールと通信するために少なくとも１つのポートを有する、複数のモジュールと、上記複数のモジュールにおけるポートと相互に接続して形成される、相互接続ネットワークとにより構成されたモジュラーコンピュータ装置において、
　上記複数のモジュールのそれぞれに、有効な健全コードを認識する、健全コード認識手段と、当該複数のモジュール間で健全コードを転送するようにした相互接続ネットワークを介して受信した有効な健全コードを再転送する、健全コード再転送手段とを設けたモジュラーコンピュータ装置」
である点において一致し、次の点で相違する。
ｉ）前者が、「複数のモジュールにおける１つと接続されて当該モジュラーコンピュータ装置の構成、操作及び診断を制御する、保守インターフェイス」を設けているのに対し、後者では、該「保守インターフェイス」が明示されていない点、
ii）前者が、「保守インターフェイスからの命令を用いて、モジュールが正常な機能状態にあるかどうかを判定するための健全コードを発生する、健全コード発生手段」を設けているのに対し、後者では、該「健全コード」の発生に関して明確にしていない点。
　
５．相違点に対する判断
　次に、上記各相違点について以下に検討する。
ａ）相違点ｉ）について
　上記３．の１）及び５）で示したように、引用例に記載の発明は、健全コードを用いることにより、複数のモジュールから構成される相互接続ネットワーク内の検査（監視）、保護（保守）を行っているものであるが、引用例には、当該検査（監視）、保護（保守）を行うための具体的構成が示されていない。
　しかしながら、複数のモジュールで構成される情報処理システムにおいて、サービスプロセッサ（SVP）又は診断プロセッサといった保守／診断手段から、診断バス、サービスバス、SVPバスといった保守・診断用のインターフェイスを介して、該複数のモジュールの診断／保守を行うようなことは、当該技術分野において周知の技術である。例えば、当該周知性を裏付ける周知例としては、例えば、特開昭６３−２５７５７号公報（以下、「周知例Ａ」という）、特開平４−３３１３１号公報（以下、「周知例Ｂ」という）、特開平５−２９０００９号公報（以下、「周知例Ｃ」という）、特開平６−１０３２５２号公報（以下、「周知例Ｄ」という）、を掲げることができる。
ａ-1）周知例Ａでは、サービスプロセッサがSVPバスを介してコマンドを発行し、複数の情報処理装置を保守、診断している。
ａ-2）周知例Ｂでは、診断プロセッサが診断バスを介して診断コマンドを送り、複数の被診断装置を保守、診断している。
ａ-3）周知例Ｃでは、サービスプロセッサモジュールがサービスバスを介して複数の機能モジュールに指示を出し、該複数の機能モジュールを診断している。
ａ-4）周知例Ｄでは、サービスプロセッサが診断バスを介して複数のプロセッサに要求を出し、該複数のプロセッサを診断している。
　してみれば、引用例に記載の発明における検査（監視）、保護（保守）に関し、上述した周知の技術を適用して、本願発明のような「複数のモジュールにおける１つと接続されて当該モジュラーコンピュータ装置の構成、操作及び診断を制御する、保守インターフェイス」を設けることは、当業者が容易に想到し得ることであり、当該相違点は格別のものとは認められない。
　
ｂ）相違点ii）について
　引用例には、複数のモジュールから構成される相互接続ネットワーク内の検査（監視）、保護（保守）を行うために使用する健全コードについて、その発生に関しての記載がない。しかしながら、該健全コードを使用するためには、それを発生させるための手段が必要となることは当然の設計的事項であるから、引用例に記載の発明においても、該健全コードを発生させるための手段を有していることは、当業者であれば当然のこととして首肯し得るところである。
　また、上記ａ）で示したように、複数のモジュールの診断／保守の操作を、サービスプロセッサ（SVP）又は診断プロセッサといった保守／診断手段からの指令（命令）によって行うことも、周知例Ａ〜Ｄに記載されているように、当該技術分野においては周知の技術である。
　してみれば、引用例に記載の発明において、本願発明のように、健全コード発生手段を設け、該健全コードの発生を保守／診断手段（本願発明でいう「保守インターフェイス」）からの指令（命令）を用いて行うことは、当業者が容易に想到し得ることであり、当該相違点も格別のものとは認められない。
　
　そして、本願発明の作用効果も、引用例、及び、上述した周知の技術から、当業者が予測できる範囲のものである。
　
６．むすび
　したがって、本願発明は、引用例に記載の発明、及び、上述した周知の技術に基づいて、当業者が容易に発明することができたものであるから、特許法第２９条第２項の規定により特許を受けることができない。
　よって、結論のとおり審決する。