【事件の表示】
　特願２００８−３２７６０９「マルチプロセッサ・システムにおけるキャッシュ・コヒーレンスにおいて用いるフォワード状態」拒絶査定不服審判事件〔平成２１年　３月２６日出願公開、特開２００９−　６４４７１〕について、次のとおり審決する。
【結　論】
　本件審判の請求は、成り立たない。
【理　由】
１．手続の経緯
　本願は、平成１５年１２月３日に出願された特願２００４−５６５１７１号の一部を分割して、平成２０年１２月２４日に出願（パリ条約による優先権主張平成１４年１２月１９日、米国）されたものであって、平成２３年１０月２６日付けで拒絶理由が通知され、これに対し、平成２４年１月２６日に意見書が提出されたが、同年６月２１日付けで拒絶査定がされ（発送日同月２６日）、これに対し、同年１０月２５日に拒絶査定不服審判の請求がなされたものである。
　
　
２．本願発明
　本願の請求項１に係る発明（以下、「本願発明」という。）は、特許請求の範囲に記載された次のとおりのものである。
　
「【請求項１】
　システムにおける何れの他のノードとも各ノードが直接に通信することができる完全に接続されたポイント・ツー・ポイント・システムにおいて、
　複数のキャッシュ・メモリを有するシステムにおける1つ又は複数のキャッシュ・メモリにデータ・ブロックの複製を記憶させる工程であって、関連付けられたプロセッサを各キャッシュ・メモリが有し、前記データ・ブロックの前記複製のうちの１つの複製がフォワード状態において記憶され、前記データ・ブロックの前記複製のうちのその他の複製が共有状態において記憶される工程；
　前記フォワード状態において記憶された前記データ・ブロックの前記複製を、該データ・ブロックの複製の要求に応答するのに用いる対象として指定する工程；
　該データ・ブロックの該要求に、該データ・ブロックの該指定複製を記憶している該キャッシュ・メモリに該データ・ブロックの複製を提供することによって応答する工程；
　前記複製が提供される前記キャッシュ・メモリによって記憶された前記データ・ブロックの前記複製を前記共有状態に変更させる工程：及び
　要求側のキャッシュ・メモリに、前記データ・ブロックの受信された複製を前記フォワード状態において記憶させる工程を備えることを特徴とする方法。」
　
　
３．引用例等について
（１）　引用例
　原査定の拒絶の理由に引用された、本願優先日前に公開された、Seong Tae Jhang, Chu Shik Jhon, A NEW WRITE-INVALIDATE SNOOPING CACHE COHERENCE PROTOCOL FOR SPLIT TRANSACTION BUS-BASED MULTIPROCESSOR SYSTEMS，Proceedings of TENCON'93，米国，IEEE，１９９３年，p.229-232（以下、「引用例」という。）には、図面とともに以下の記載がある（下線は当審付与。訳は当審訳。以下同様。）。 
 　　 
（ａ）　２２９ページ左欄１〜１６行
「ABSTRACT
　　　In this paper, we present a new write-invalidate snooping cache coherence protocol called MMESSII cache protocol which addresses several significant drawbacks of existing write-invalidate snooping protocols under the split transaction bus based multiprocessor environment.  In this protocol, each cache block maintains the ID information to identify the processor module that invalidated the block most recently. It also maintains seven cache states which consist of two updated states, one exclusive state, two shared states and two invalidated states. By using these states and the ID information, our protocol can reduce the contention for both memory modules and system bus significantly. We also present the simulation results which show better performance of our protocol than that of existing write-invalidate protocols.」
（＜アブストラクト＞
　本論文で、我々は、
MMESSIIキャッシュ・プロトコルと呼ばれる、書き込み時無効化(write-invalidate)スヌープ方式の新規なキャッシュ・コヒーレンス・プロトコル
は、分割トランザクション(split transaction)・バスによるマルチプロセッサ環境における、既存の書き込み時無効化スヌープ方式プロトコルのいくつかの主要な欠点に対処して
　
（ｂ）　２２９ページ左欄１７行〜同頁右欄２７行
「INTRODUCTION
　　The contention for both memory modules and the system bus increases the effective memory access time, and thus increasing the processors' idle time.  Therefore, this contention can be regarded as a major factor of the performance degradation of shared memory multiprocessor systems with a common bus[l,2].
   In order to address this contention problem, it may be necessary to increase the effective bandwidth of the system bus. As a means of increasing the effective bandwidth, it may be desirable to employ the split transaction bus[3,4,5] rather than the non-split transaction bus as a system bus.  Under the non-split transaction bus environment, the bus is not released during the memory access or non-local cache access. Under the environment of the split transaction bus, the current bus owner releases the bus between a completion of the request transfer and the initiation of the corresponding response transfer. Consequently, the split transaction bus allows other modules to use the bus during the idle bus period, and thus increasing the effective bandwidth of the bus.
　　In order to address this contention problem, every processor module needs to have its private cache which stores the blocks to be frequently used by the processor.  The employment of private cache in the processor module can reduce the frequency of the processor's accesses to memory modules through the system bus. The use of such private caches may incur the duplications of a block in one or more private caches at the same time. However, the consistency among the duplicated copies must be maintained. Several protocols have been proposed to solve this cache coherence problem[6,7]. Especially, write-invalidate snooping cache coherence protocols have been widely used for shared memory multiprocessor systems with a common bus. In a write-invalidate snooping cache protocol, when a processor module updates a block in its private cache, the module invalidates all the copies of the block.　
　　Under the environment of the split transaction bus, existing write-invalidate snooping protocols depend heavily upon the broadcast read/write requests, and thus exhibiting several significant drawbacks. In this paper, we present a new write-invalidate snooping cache coherence protocol called MMESSII cache protocol which addresses the drawbacks of existing write-invalidate snooping protocols under the split transaction bus environment. We also perform the simulation so as to compare the performance of our protocol with that of two write-invalidate cache protocols, Illinois cache protocol[8] and Berkeley cache protocol[9].
　　This paper is organized as follows: In the following section, we discuss the drawbacks of existing write-invalidate snooping protocols under the split transaction bus environment. This is followed by the description of our MMESSII cache protocol. In the subsequent section, we present the simulation results which exhibit better performance of our protocol rather than that of existing write-invalidate protocols. Finally, we conclude our work.」
（＜イントロダクション＞
　
メモリ・モジュールとシステムバスの両方に対する競合
を、共通バス方式の共有メモリ・マルチプロセッサ・システムにおける性能劣化の主な要因と見なすことができ
　
この競合の問題に対処するために、システムバスの実効的な帯域幅を増加させることが必要であ
　
この競合の問題に対処するために、プロセッサが頻繁に使用するブロックを格納する、プライベート・キャッシュを、すべてのプロセッサ・モジュールが備える必要があ
書き込み時無効化スヌープ方式キャッシュ・コヒーレンス・プロトコルが、共通バス方式の共有メモリ・マルチプロセッサ・システムに対して、広く利用されて
書き込み時無効化スヌープ方式キャッシュ・プロトコルでは、プロセッサ・モジュールがそのプライベート・キャッシュ中のブロックを更新するとき、そのモジュールは、そのブロックのすべてのコピーを無効化
　分割トランザクション・バス環境下では、既存の書き込み時無効化スヌープ方式プロトコルは、ブロードキャストされる読み出し／書き込みリクエストに極度に依存しており、このために、いくつかの著しい欠点を示す。本論文において、我々は、MMESSIIキャッシュ・プロトコルと呼ばれる、新規な書き込み時無効化(write-invalidate)スヌープ方式キャッシュ・コヒーレンス・プロトコルを示す。このプロトコルは、既存の書き込み時無効化スヌープ方式プロトコルの、分割トランザクション・バス環境下における、欠点に対処している。さらに我々は、我々のプロトコルの性能を、イリノイ・キャッシュ・プロトコル[8]、バークレー・キャッシュ・プロトコル[9]という、２つの書き込み時無効化方式キャッシュ・プロトコルと比較するために、シミュレーションを実行する。
　本論文は、次のように構成される：次章で、我々は、既存の書き込み時無効化スヌープ方式プロトコルの、分割トランザクション・バス環境下での欠点について論じる。これに続けて、我々のMMESSIIプロトコルを記述する。その後、既存の書き込み時無効化方式プロトコルよりも良い性能を示す我々のプロトコルのシミュレーション結果を示す。最後に、まとめを述べる。）
　
（ｃ）　２２９ページ右欄２８行〜２３０頁左欄１２行
「WRITE-INVALIDATE SNOOPING CACHE COHERENCE PROTOCOLS
　　In write-invalidate snooping cache coherence protocols, when a processor module attempts to access an invalidated block in its private cache, the cache miss called invalidation miss occurs. It is emphasized that the ratio of invalidation misses to total cache misses significantly increases as the cache size and the number of processors increase[l0,11,12].
　　When an invalidation miss occurs in a processor module, the module broadcasts a read/write request for the block to a memory module and all the other processor modules. Each processor module then starts to examine the state of the block stored in its private cache. On the other hand, the memory module also starts to process the request. In cases where there is a processor module which contains an updated copy of the block, the module informs the memory module so that it can stop reading the block from its memory. This processor module also sends the valid copy to the processor module which incurred the invalidation miss for the block.
　　As discussed in the above, in existing write-invalidate protocols, whenever a processor module incurs an invalidation miss, it broadcasts a request to a memory module and all the other processor modules. The excessive broadcasts in existing write-invalidate protocols become a serious factor in system performance degradation, especially under the split transaction bus environment.  Notable drawbacks of existing write-invalidate protocols under the split transaction bus environment over those under the non-split transaction bus environment are illustrated in the following, assuming that system bus has one memory module with one request buffer:」
（＜書き込み時無効化スヌープ方式キャッシュ・コヒーレンス・プロトコル＞
　
書き込み時無効化スヌープ方式キャッシュ・コヒーレンス・プロトコルでは、プロセッサ・モジュールが、そのプライベート・キャッシュ中の無効化されたブロックにアクセスを試みるとき、無効化ミスと呼ばれるキャッシュ・ミスが発生
　プロセッサ・モジュールで、無効化ミスが発生すると、そのモジュールは、そのブロックの読み出し／書き込みリクエストを、メモリ・モジュール及び他のすべてのプロセッサ・モジュールに対してブロードキャストする。その後、それぞれのプロセッサ・モジュールは、そのプライベート・キャッシュに格納されたブロックの状態の検査を開始する。他方では、メモリ・モジュールもまた、リクエストの処理を開始する。そのブロックの最新のコピーを保有するプロセッサ・モジュールが存在する場合、そのモジュールは、メモリ・モジュールに対して、メモリからのブロックの読み出しを停止できるように通知をする。このプロセッサ・モジュールは、また、ブロックの無効化ミスが生じたプロセッサ・モジュールに対して、有効なコピーを送信する。
　上で述べたとおり、既存の書き込み時無効化方式プロトコルでは、プロセッサ・モジュールが無効化ミスを生じたときはいつでも、メモリ・モジュール及び他のすべてのプロセッサ・モジュールに対して、リクエストをブロードキャストする。既存の書き込み時無効化方式プロトコルにおける過度のブロードキャストは、特に(especially)、分割トランザクション・バス環境下において、システム性能低下の重大な要因になる。以下では、システムバスが１つのリクエスト用バッファを備えた１つのメモリ・モジュールを備えると仮定して、非分割トランザクション・バス環境下のものに対する、分割トランザクション・バス環境下の既存の書き込み時無効化プロトコルの注目すべき欠点を例証する：）
　
（ｄ）　２３０ページ左欄３８行〜同頁右欄５３行
「MMESSII SNOOPING CACHE COHERENCE PROTOCOL
　　In this section, we present the MMESSII cache protocol which addresses several drawbacks of existing write-invalidate snooping protocols under the split transaction bus environment.  The idea behind our protocol is to allow point-to-point communication and broadcasting communication for only processor modules, when an invalidation miss occurs in a processor module. It is noted that in existing write-invalidate protocols, when an invalidation miss occurs in a processor module, a broadcast request is sent to a memory module and all the other processor modules.  However, in our protocol, cache-to-cache communication or cache-to-caches communication is used instead of a broadcasting communication, and thus reducing the contention for both memory modules and the system bus, and the effective memory access time.
　　In order to provide a cache-to-cache communication, our protocol employs the ID field in each cache block.  The ID field is used for the identification of the processor module that invalidated the block most recently. Then, when an invalidation miss occurs in a processor module, the module can get an updated copy of the block from the processor module indicated by the corresponding ID field through point-to-point communication. In order to provide both cache-to-cache and cache-to-caches communication, our protocol employs seven states as follows: MODIFIED(MO), MODIFIED-SHARED(MS), EXCLUSIVE(EX), SHARED(SH), SHARED-SOURCE(SS), INVALID-BY-OTHER(IO) and INVALID(IV).
　　MODIFIED and MODIFIED-SHARED states denote that the block has been locally modified in the private cache, and thus being inconsistent with the memory module. In contrast to MODIFIED-SHARED state, MODIFIED state denotes that there does not exist a valid copy of the block in any other processor module. EXCLUSIVE, SHARED-SOURCE and SHARED states denote that the block is valid as well as consistent with the memory module. EXCLUSIVE state denotes that there does not exist a valid copy of the block in any other processor module. In contrast to SHARED state, SHARED-SOURCE state denotes that other processor modules cannot maintain the block as MODIFIED or MODIFIED-SHARED state and also this processor module incurred a read miss for the block most recently.  INVALID and INVALID-BY-OTHER states denote that the block is invalidated by other processor modules.  INVALID state denotes that there does not exist a processor module which maintains the block as MODIFIED or MODIFIED-SHARED state due to the block replacement process. INVALID-BY-OTHER state denotes that there exists a processor module which maintains the block as MODIFIED or MODIFIED-SHARED state. By using these two invalidated states and the ID information, when an invalidation miss occurs in a processor module, the module can establish a point-to-point communication with the processor module which contains an updated copy of the block, in contrast to existing write-invalidate snooping protocols.
　　Our protocol requires three signal lines VALID, DIRTY, and MEMORY-INHIBIT so as to deal with the broadcast read or write requests effectively. In cases where a processor module broadcasts the read request to all the other processor modules and a memory module as the result of cache miss for a block, the module can recognize whether or not other processor modules maintain the block as EXCLUSIVE, SHARED or SHARED-SOURCE state by examining VALID line. In this case, the processor module also can recognize whether or not a processor module maintains the block as MODIFIED or MODIFIED-SHARED state by examining DIRTY line. Also, the memory module can recognize whether or not the module needs to stop reading the block from its memory by examining MEMORY-INHIBIT line. In addition, our protocol requires both source ID lines and destination ID lines so as to deal with both the cache-to-cache read request and cache-to-caches write request effectively when an invalidation miss occurs in a processor module. The source ID lines are used to identify the processor module which incurred an invalidation miss for a block.  Also, the destination ID lines are used to identify the processor module which contains an updated copy of the block.」
（＜MMESSIIスヌープ方式キャッシュ・コヒーレンス・プロトコル＞
　このセクションで、我々は、
分割トランザクション・バス環境下の、既存の書き込み時無効化スヌープ方式プロトコルのいくつかの欠点に対処する、MMESSIIキャッシュ・プロトコル
　キャッシュ間１体１(cache-to-cache)通信を提供するために、我々のプロトコルは、各キャッシュ・ブロック中でIDフィールドを採用する。IDフィールドは、そのブロックを最も最近無効化したプロセッサ・モジュールを識別するために使用される。それで、無効化ミスがプロセッサ・モジュールに生じた場合、そのモジュールは、ポイント・ツー・ポイント通信によって、対応するIDフィールドに示されたプロセッサ・モジュールからブロックの最新のコピーを得ることができる。キャッシュ間１対１、及び、キャッシュ間１対多通信の両方を提供するために、我々のプロトコル
は、以下の７つの状態を採用
MODIFIED(MO)、MODIFIED-SHARED(MS)、EXCLUSIVE(EX)、SHARED(SH)、SHARED-SOURCE(SS)、INVALID-BY-OTHER(IO)、及び、INVALID(IV)
　MODIFIED及びMODIFIED-SHARED状態は、ブロックがプライベート・キャッシュ内でローカルに修正され、そしてこれによって、メモリ・モジュールとは一致しないことを示す。MODIFIED-SHARED状態とは対照的に、MODIFIED状態は、ブロックの有効なコピーが他のどのプロセッサ・モジュールにも存在しないことを示す。
EXCLUSIVE、SHARED-SOURCE及びSHARED状態は、そのブロックが有効であると共にメモリ・モジュールと一致することを示
EXCLUSIVE状態は、ブロックの有効なコピーが他のどのプロセッサ・モジュールにも存在しないことを示
SHARED状態とは対照的に、SHARED-SOURCE状態は、他のプロセッサ・モジュールはそのブロックをMODIFIED、又は、MODIFIED-SHARED状態で維持することはあり得ず、かつまた、このプロセッサ・モジュールは、そのブロックに対する読み出しミスを最も最近生じたことを示
　我々のプロトコルは、
ブロードキャストされる読み出し又は書き込みリクエストを効率良く処理するために、３つの信号線VALID、DIRTY、及び、MEMORY-INHIBITを必要と
ブロックのキャッシュ・ミスの結果として、プロセッサ・モジュールが、他のすべてのプロセッサ・モジュール及びメモリ・モジュールに対して読み出しリクエストをブロードキャストする場合に、VALID線を検査することによって、他のプロセッサ・モジュールが、EXCLUSIVE、SHARED又はSHARED-SOURCE状態でそのブロックを維持しているか否かを、認識でき
この場合に、また、プロセッサ・モジュールは、DIRTY線を検査することによって、あるプロセッサ・モジュールが、MODIFIED又はMODIFIED-SHARED状態でそのブロックを維持しているか否かを、認識でき
さらに、メモリ・モジュールは、MEMORY-INHIBIT線を検査することによって、メモリからのブロック読み出しをやめる必要があるか否かを、認識でき
　
（ｅ）　２３０ページ右欄５４行〜２３１頁左欄２７行
「We now describe how our protocol works for read hit, read miss, write hit, and write miss cases. By block replacement, we mean that when a cache miss for a block occurs in a processor module, the block is written back to the memory module, in cases where the module maintains the block as MODIFIED or MODIFIED-SHARED state and all the processor modules which maintain the block as INVALID-BY-OTHER state change the state of the block into INVALID state. Figure 1 shows a cache state transition diagram of our protocol.
　　
Read hit
　　
Read miss
（我々は、これから、読み出しヒット、
読み出しミス
の
場合において
　
読み出しヒット
　
読み出しミス
プロセッサ・モジュールは、自身のキャッシュ内にそのブロックが含まれていない場合、ブロック置き換えを実行
プロセッサ・モジュールは、そのブロックをINVALID状態に維持するものであるが、そのモジュールは、メモリ・モジュール及び他のすべてのプロセッサ・モジュールに対して、そのブロックの読み出しリクエストを、ブロードキャスト
リクエストの結果として、他のプロセッサ・モジュールは、それぞれのキャッシュにおけるブロックの状態に応じて、VALID、DIRTY、MEMORY-INHIBIT線をアサート
この場合に、EXCLUSIVE又はSHARED-SOURCE状態でそのブロックを維持しているプロセッサ・モジュールは、自身のキャッシュに対して、そのブロックへのアクセスを開始すると共に、そのブロックの状態をSHARED状態に変更
読み取りミスの生じたプロセッサ・モジュールが、メモリ・モジュール又はプロセッサ・モジュールのいずれかから、ブロックの最新のコピーを受け取った場合に、VALID線とDIRTY線の両方を検査して、そのブロックの状態を適切な状態に変更
VALID線はアサートされるが、DIRTY線はアサートされない場合、モジュールは、そのブロックをSHARED-SOURCE状態に維持
DIRTY線はアサートされるが、VALID線はアサートされない場合、モジュールは、そのブロックをSHARED状態に維持
VALID線とDIRTY線の両方がアサートされない場合、モジュールは、そのブロックをEXCLUSIVE状態に維持する
　
　また、２３１ページ「Figure 1」には、「State transition diagram of MMESSII protocol」（MMESSIIプロトコルの状態遷移ダイヤグラム）として、
  「EX」（EXCLUSIVE状態）、又は、「SS」（SHARED-SOURCE状態）を起点として、それぞれ、「BR」（バス読み出し）が発生した場合、「SH」（SHARED状態）へと遷移すること、
　「RM」（読み出しミス）、又は、「IV」（INVALID状態）を始点として、それぞれ、「vd  not dt」（VALID線がアサートされており、DIRTY線がアサートされない）場合、「SS」（SHARED-SOURCE状態）へと遷移すること、
　同じく、「RM」（読み出しミス）、又は、「IV」（INVALID状態）を始点として、それぞれ「not vd  not dt」（VALID線はアサートされない、DIRTY線はアサートされない）場合、「EX」（EXCLUSIVE状態）へと遷移すること、が示されていると認められる。
　
　よって、引用例には、以下の発明（以下、「引用発明」という。）が開示されていると認められる。 
　
「MMESSIIキャッシュ・プロトコルと呼ばれる、書き込み時無効化(write-invalidate)スヌープ方式の新規なキャッシュ・コヒーレンス・プロトコルは、分割トランザクション(split transaction)・バスによるマルチプロセッサ環境における、既存の書き込み時無効化スヌープ方式プロトコルのいくつかの主要な欠点に対処しており、
　メモリ・モジュールとシステムバスの両方に対する競合を、共通バス方式の共有メモリ・マルチプロセッサ・システムにおける性能劣化の主な要因と見なすことができ、
　この競合の問題に対処するために、システムバスの実効的な帯域幅を増加させることが必要であり、
　この競合の問題に対処するために、プロセッサが頻繁に使用するブロックを格納する、プライベート・キャッシュを、すべてのプロセッサ・モジュールが備える必要があり、
　書き込み時無効化スヌープ方式キャッシュ・コヒーレンス・プロトコルが、共通バス方式の共有メモリ・マルチプロセッサ・システムに対して、広く利用されており、
　書き込み時無効化スヌープ方式キャッシュ・プロトコルでは、プロセッサ・モジュールがそのプライベート・キャッシュ中のブロックを更新するとき、そのモジュールは、そのブロックのすべてのコピーを無効化しており、
　書き込み時無効化スヌープ方式キャッシュ・コヒーレンス・プロトコルでは、プロセッサ・モジュールが、そのプライベート・キャッシュ中の無効化されたブロックにアクセスを試みるとき、無効化ミスと呼ばれるキャッシュ・ミスが発生し、
　分割トランザクション・バス環境下の、既存の書き込み時無効化スヌープ方式プロトコルのいくつかの欠点に対処する、MMESSIIキャッシュ・プロトコルは、MODIFIED(MO)、MODIFIED-SHARED(MS)、EXCLUSIVE(EX)、SHARED(SH)、SHARED-SOURCE(SS)、INVALID-BY-OTHER(IO)、及び、INVALID(IV)の７つの状態を採用し、　
　EXCLUSIVE、SHARED-SOURCE及びSHARED状態は、そのブロックが有効であると共にメモリ・モジュールと一致することを示し、EXCLUSIVE状態は、ブロックの有効なコピーが他のどのプロセッサ・モジュールにも存在しないことを示し、SHARED状態とは対照的に、SHARED-SOURCE状態は、他のプロセッサ・モジュールがそのブロックをMODIFIED、又は、MODIFIED-SHARED状態で維持することはあり得ず、かつまた、このプロセッサ・モジュールは、そのブロックに対する読み出しミスを最も最近生じたことを示し、
　ブロードキャストされる読み出し又は書き込みリクエストを効率良く処理するために、３つの信号線VALID、DIRTY、及び、MEMORY-INHIBITを必要とし、
　ブロックのキャッシュ・ミスの結果として、プロセッサ・モジュールが、他のすべてのプロセッサ・モジュール及びメモリ・モジュールに対して読み出しリクエストをブロードキャストする場合に、
　VALID線を検査することによって、他のプロセッサ・モジュールが、EXCLUSIVE、SHARED又はSHARED-SOURCE状態でそのブロックを維持しているか否かを、認識でき、
　この場合に、また、プロセッサ・モジュールは、DIRTY線を検査することによって、あるプロセッサ・モジュールが、MODIFIED又はMODIFIED-SHARED状態でそのブロックを維持しているか否かを、認識でき、
　さらに、メモリ・モジュールは、MEMORY-INHIBIT線を検査することによって、メモリからのブロック読み出しをやめる必要があるか否かを、認識でき、
　読み出しミスの場合において、
　プロセッサ・モジュールは、自身のキャッシュ内にそのブロックが含まれていない場合、ブロック置き換えを実行し、
　プロセッサ・モジュールは、そのブロックをINVALID状態に維持するものであるが、そのモジュールは、メモリ・モジュール及び他のすべてのプロセッサ・モジュールに対して、そのブロックの読み出しリクエストを、ブロードキャストし、
　リクエストの結果として、他のプロセッサ・モジュールは、それぞれのキャッシュにおけるブロックの状態に応じて、VALID、DIRTY、MEMORY-INHIBIT線をアサートし、
　この場合に、EXCLUSIVE又はSHARED-SOURCE状態でブロックを維持しているプロセッサ・モジュールは、自身のキャッシュに対して、そのブロックへのアクセスを開始すると共に、そのブロックの状態をSHARED状態に変更し、
　読み取りミスの生じたプロセッサ・モジュールが、メモリ・モジュール又はプロセッサ・モジュールのいずれかから、ブロックの最新のコピーを受け取った場合に、VALID線とDIRTY線の両方を検査して、そのブロックの状態を適切な状態に変更し、
　VALID線はアサートされるが、DIRTY線はアサートされない場合、モジュールは、そのブロックをSHARED-SOURCE状態に維持し、
　DIRTY線はアサートされるが、VALID線はアサートされない場合、モジュールは、そのブロックをSHARED状態に維持し、
　VALID線とDIRTY線の両方がアサートされない場合、モジュールは、そのブロックをEXCLUSIVE状態に維持する、
　共通バス方式の共有メモリ・マルチプロセッサ・システム。」
　
　
（２）　周知文献Ａ
　周知文献Ａ（米国特許出願公開第２００２／００８７８０４号明細書）には、以下の記載がある。
「［0014］　FIG. 1 illustrates one embodiment of a computer system 100.  Computer system 100  includes an interconnection network 110.  According to one embodiment, network 110 includes switches coupled to a multitude of network nodes.  The network nodes in computer system 100 include processor nodes 105 and one or more input/output (I/O) nodes 120 coupled via network  110.・・・（中略）・・・
［0015］　A scalability port (SP) is an inter-node interface used to enable the implementation of a shared memory architecture, multi-processor system.  The scalability port is a point to point cache coherent interface for interconnection of processor nodes 105 with local memory, I/O nodes 120 and network switches.  Cache coherence is a mechanism to provide a consistent view of memory in a shared memory system with multiple caching agents that could have copies of data in private caches. ・・・（中略）・・・
［0016］　According to one embodiment, the functionality of the SP is portioned into three layers. ・・・（中略）・・・The layers from bottom to top are the physical layer, the link layer and the protocol layer.  The physical layer is a point to point interface between any two SP agents. The physical layer is responsible for electrical transfer of information on a physical medium. The electrical transfer is achieved by not requiring the physical layer to support any protocol level functionality.」（段落【００１４】−【００１６】）
（【００１４】　図１は、コンピュータ・システム100の１つの実施例を示す。コンピュータ・システム100は、相互接続ネットワーク110を含む。１つの実施例によれば、ネットワーク110は、多数のネットワーク・ノードにつながれたスイッチを含む。コンピュータ・システム100中のネットワーク・ノードは、ネットワーク110によって接続された、プロセッサ・ノード105と、１つ以上の入力／出力（Ｉ／Ｏ）ノード120を含む。・・・（中略）・・・
【００１５】　スケーラビリティ・ポート（ＳＰ）は、共有メモリ・アーキテクチャのマルチプロセッサ・システムを実現可能にするために使用される、ノード間インタフェースである。スケーラビリティ・ポートは、ローカルメモリを備えたプロセッサ・ノード105、Ｉ／Ｏノード120、及び、ネットワーク・スイッチの相互接続のための、ポイント・ツー・ポイント方式のキャッシュ・コヒーレント・インタフェースである。キャッシュ・コヒーレンスとは、プライベート・キャッシュにデータのコピーを持ち得る、複数のキャッシュ・エージェントに、共有メモリ・システムのメモリの一貫性のある見方を提供するメカニズムである。・・・（中略）・・・
【００１６】 １つの実施例によれば、ＳＰの機能は３階層に分配される。・・・（中略）・・・階層とは、下層から上層に向けて、物理層、リンク層、及び、プロトコル層である。
物理層は、任意の２つのＳＰエージェント間のポイント・ツー・ポイント・インタフェースである
　
（３）　周知文献Ｂ
　周知文献Ｂ（国際公開第０２／１７１０３号）には、以下の記載がある。
「FIG. 1 shows a system 100 which is a computer system that includes processors, memory devices, and input/output devices. Components in system 100 are arranged into architectural units that are referred to herein as nodes. Each node may contain one or more processors, memories, or input/output devices. In addition, the components within a node may be connected to other components in that node though one or more busses or lines. Each node in system 100 has a node connection that may be used by the components within that node to communicate with components in other nodes. In one embodiment, the node connection for a particular node is used for any communication from a component within that node to another node. In system 100, the node connection for each node is connected to a receiving agent 140.  A system that has multiple nodes is referred to as a multi-node system. A multi-node system for which each node communicates to other nodes though a dedicated connection may be said to have a point-to-point architecture.」（２ページ１３−２５行）
（図１は、プロセッサ、メモリ素子、及び、入出力装置を含んだコンピュータ・システムである、システム100を示す。システム100の要素は、ここにノードと呼ばれるアーキテクチャ上のユニットに配置される。各ノードは、１つ以上のプロセッサ、メモリ、又は、入出力装置を含み得る。さらに、ノード内で、要素は、当該ノード中の他の要素と１つ以上のバス又は伝送路で接続され得る。システム100の各ノードは、他ノードの要素と通信するために使用できる、ノード・コネクションを備える。１つの実施例では、特定ノードのためのノード・コネクションは、そのノード内の要素から異なるノードまでのすべての通信に用いられる。システム100では、各ノードのノード・コネクションは、受信エージェント140に接続される。多数のノードを持つシステムは、多ノード・システムと呼ばれる。
多ノード・システムであって、各ノードが、他のノードと、専用のコネクションを介して通信するものは、ポイント・ツー・ポイントのアーキテクチャを備えるといわれ得る
　
（４）　周知文献Ｃ
　周知文献Ｃ（国際公開第０２／１７０８６号）には、以下の記載がある。
「For one embodiment, coherency is maintained between the cache memories 147 and the memories 140 and 145 using the well-known MESI (modified, exclusive, shared or invalid) state protocol in conjunction with coherent system interconnect buses 160, 165 and/or 170. The coherent system interconnect buses 160, 165 and 170 communicate information between processing nodes 105 and 110 and the I/O node 120 via the interconnection network 115 in order to maintain coherency between the various memories 140, 145 and a coherent cache buffer in the I/O node 120 that is described in more detail below. For one embodiment, the coherent system interconnect buses 160, 165 and 170 are point-to-point interconnects without ordering restrictions in terms of communicating transactions between the processing nodes and the I/O node(s). 
　　　
　　　・・・（中略）・・・
　　　
Further, coherency of the memories may be maintained in accordance with a different protocol and/or using a different type of interconnection approach.」（４ページ４行−５ページ５行）
（１つの実施例では、キャッシュ・メモリ１４７とメモリ140、145間のコヒーレンスは、良く知られたＭＥＳＩ（変更 modified、排他 exclusive、共有 shared、又は、無効 invalid）状態を利用して、コヒーレント・システム相互接続バス160、165、170に関連して、維持される。コヒーレント・システム相互接続バス160、165、170は、以下でより詳しく記述されるように、種々のメモリ140、145と、Ｉ／Ｏノード内のコヒーレント・キャッシュ・バッファの間のコヒーレンスを維持するために、プロセッサ・ノード105、110とＩ／Ｏノード120の間で相互接続ネットワークを通じて情報を通信する。１つの実施例では、コヒーレント・システム相互接続バス160、165、170は、プロセッサ・ノードとＩ／Ｏノード間の通信トランザクションに関して、順序性の制約を持たない、
ポイント・ツー・ポイント相互接続である
　　　
　　　・・・（中略）・・・
　　　
さらに、メモリのコヒーレンスは、異なるプロトコルによって、及び／又は、異なるタイプの相互接続のアプローチによって、維持できる。）
　
（５）　周知文献Ｄ
　周知文献Ｄ（ジョン・Ｌ・ヘネシー 外、コンピュータの構成と設計［下］、日経ＢＰ社、１９９７年２月２４日、初版、ｐ．５６４〜５６９）には、「ネットワークトポロジ」のセクションとして、以下の記載がある。
「
ネットワークトポロジ
　
プロセッサとメモリからなるノードを結合する簡単明瞭な方法は，各ノード間に専用の通信リンクを設けることである
この全結合(fully connect)ネットワークの場合，性能当たりのコストが最も高くなる
バスを用いた場合が，性能当たりのコストは最も低くなる
この２つの間に，様々な形態のネットワークがあり，コスト性能比の観点から広範な取捨選択の余地がある
　　　
　　　・・・（中略）・・・
　　　
　リングの対極にあるのが，
全結合ネットワーク(fully connected network)である
これは全プロセッサを他のプロセッサと双方向リンクで結んだものであ
　全結合ネットワークの性能は著しくなるが，一方でコストも著しく上昇する．このため，コンピュータ設計者はコスト及び性能がリングと全結合ネットワークの中間に位置する，新しいトポロジを各種考案した．こうしたトポロジが成功か否かの評価は，そのマシン上で並列プログラムという実負荷をかけたときに，どのような通信が発生するかに大きく依存する．・・・（後略）」（５６７ページ１行〜５６９ページ１１行）
　
　
４．対比
　本願発明と引用発明とを対比する。
　
（１） 引用発明の「共通バス方式の共有メモリ・マルチプロセッサ・システム」は、本願発明の「システム」に相当する。また、引用発明のマルチプロセッサ・システムを構成する、各「プロセッサ・モジュール」と「メモリ・モジュール」は、本願発明のシステムにおける「ノード」に相当する。
　引用発明のマルチプロセッサ・システムは、読み出しミスの場合に、「プロセッサ・モジュール」（ノード）から、「メモリ・モジュール及び他のすべてのプロセッサ・モジュールに対して」、読み出しリクエストをブロードキャストしているから、本願発明の「システムにおける何れの他のノードとも各ノードが
直接に
完全に接続されたポイント・ツー・ポイント・
　
（２）（ア）　引用発明のマルチプロセッサ・システムが、「競合の問題に対処するために、
プロセッサが頻繁に使用するブロックを格納する
プライベート・キャッシュを、すべてのプロセッサ・モジュールが備える
　
（イ）　引用発明は、「そのブロックが有効であると共にメモリ・モジュールと一致することを示」す状態を、さらに「EXCLUSIVE状態」、「SHARED-SOURCE状態」及び「SHARED状態」の３つの状態に分けており、そのうち「EXCLUSIVE状態」は、「ブロックの有効なコピーが他のどのプロセッサ・モジュールにも
存在しない
存在している
　上記２つの状態のうち「SHARED-SOURCE状態」は、（SHARED状態とは対照的に）「他のプロセッサ・モジュールがそのブロックをMODIFIED、又は、MODIFIED-SHARED状態で維持してはならず、かつまた、このプロセッサ・モジュールは、そのブロックに対する読み出しミスを
最も最近生じた
　よって、引用発明のマルチプロセッサ・システムにおいて、ある１つのプロセッサ・モジュールが、自身のキャッシュ内に、あるブロックを「SHARED-SOURCE状態」で維持していることは、本願発明の「前記データ・ブロックの前記複製のうちの１つの複製がフォワード状態において記憶され」る工程と、「前記データ・ブロックの前記複製のうちの１つの複製がある特定の状態において記憶され」る工程である点で共通する。
　
（ウ）　引用発明において、上記の単一の「SHARED-SOURCE状態」のプロセッサ・モジュールが存在する場合、それ以外に、「ブロックの有効なコピー」を保持する他のプロセッサ・モジュールも通常存在していることが明らかであって、しかも、このようなプロセッサ・モジュールは、「EXCLUSIVE状態」にも、「SHARED-SOURCE状態」にも該当しないから、結局、上記の単一の「SHARED-SOURCE状態」のプロセッサ・モジュールが存在する場合、それ以外に、「SHARED状態」のプロセッサ・モジュールも通常存在するものであって、これは、本願発明の「前記データ・ブロックの前記複製のうちのその他の複製が共有状態において記憶される」工程に相当するといえる。
　
（３）　引用発明において、読み出しミスの場合に、「メモリ・モジュール及び他のすべてのプロセッサ・モジュールに対して、そのブロックの読み出しリクエストを、ブロードキャストし」、その「リクエストの結果として」、「SHARED-SOURCE状態でブロックを維持しているプロセッサ・モジュールは、自身のキャッシュに対して、そのブロックへのアクセスを開始し」、これによって、「読み取りミスの生じたプロセッサ・モジュールが、メモリ・モジュール又はプロセッサ・モジュールのいずれかから、ブロックの最新のコピーを受け取」ることは、本願発明の「該データ・ブロックの該要求に、該データ・ブロックの該指定複製を記憶している該キャッシュ・メモリに該データ・ブロックの複製を提供することによって応答する工程」に相当するといえる。
　（審決注：本願発明における「該データ・ブロックの該指定複製を記憶している該キャッシュ・メモリ
に
によって
に対して
　なお、上記(b)のように解釈できたとしても、「該指定複製を記憶している」該キャッシュ・メモリに対して、さらに同じ「該データ・ブロックの複製を提供する」工程を設ける点は、当業者が適宜なすべき設計的事項に過ぎない。）
　また、具体的な工程の明記はないものの、引用発明において「リクエストの結果として」、「SHARED-SOURCE状態でブロックを維持しているプロセッサ・モジュールは、自身のキャッシュに対して、そのブロックへのアクセスを開始」することの前提として、引用発明も、「SHARED-SOURCE状態でブロックを維持しているプロセッサ・モジュール」に関して、本願発明の「
前記フォワード状態
前記ある特定の状態
　
（４）　引用発明において、「読み出しミスの場合に」、プロセッサ・「モジュールは、メモリ・モジュール及び他のすべてのプロセッサ・モジュールに対して、そのブロックの読み出しリクエストを、ブロードキャストし、リクエストの結果として」、「
SHARED-SOURCE状態
そのブロックの状態をSHARED状態に変更
　
（５）　引用発明のマルチプロセッサ・システムにおいて、「読み取りミスの生じたプロセッサ・モジュールが、メモリ・モジュール又はプロセッサ・モジュールのいずれかから、ブロックの最新のコピーを受け取った場合に、VALID線とDIRTY線の両方を検査して、そのブロックの状態を適切な状態に変更し、VALID線はアサートされるが、DIRTY線はアサートされない場合、モジュールは、そのブロックをSHARED-SOURCE状態に維持し」ていることは、本願発明の「要求側のキャッシュ・メモリに、前記データ・ブロックの受信された複製を前記フォワード状態において記憶させる工程」と、「要求側のキャッシュ・メモリに、前記データ・ブロックの受信された複製を
前記ある特定の状態
　
　したがって、本願発明と引用発明との一致点・相違点は次のとおりである。
　
＜一致点＞
「システムにおける何れの他のノードとも各ノード
が通
るシ
　複数のキャッシュ・メモリを有するシステムにおける1つ又は複数のキャッシュ・メモリにデータ・ブロックの複製を記憶させる工程であって、関連付けられたプロセッサを各キャッシュ・メモリが有し、前記データ・ブロックの前記複製のうちの１つの複製が
ある特定の状態
　
前記ある特定の状態
　該データ・ブロックの該要求に、該データ・ブロックの該指定複製を記憶している該キャッシュ・メモリに該データ・ブロックの複製を提供することによって応答する工程；
　前記複製が提供される前記キャッシュ・メモリによって記憶された前記データ・ブロックの前記複製を前記共有状態に変更させる工程：及び
　要求側のキャッシュ・メモリに、前記データ・ブロックの受信された複製を
前記ある特定の状態
　
＜相違点１＞ 
　本願発明のシステムは、「システムにおける何れの他のノードとも各ノードが直接に通信することができる完全に接続されたポイント・ツー・ポイント・システム」であるのに対して、引用発明のシステムは、「共通バス方式の共有メモリ・マルチプロセッサ・システム」であって、各ノードが直接に通信することができる、完全に接続されたポイント・ツー・ポイント・システムではない点。
　
＜相違点２＞
　本願発明は、「複数のキャッシュ・メモリを有するシステムにおける1つ又は複数のキャッシュ・メモリにデータ・ブロックの複製を記憶させる工程であって、関連付けられたプロセッサを各キャッシュ・メモリが有し、前記データ・ブロックの前記複製のうちの１つの複製が
フォワード状態において
前記フォワード状態において
　
　
５．当審の判断
＜相違点１＞について
　一般的に、複数ノードを接続するネットワーク・トポロジとして、システムにおける何れの他のノードとも各ノードが直接に通信することができる完全に接続されたポイント・ツー・ポイント・システムは、周知技術である（上記３（２）−（５）の周知文献Ａ−Ｄの摘記を参照。）
　また、システムのネットワーク・トポロジとして、どのような形態のものを採用するかは、当業者がコストや性能を考慮して適宜選択すべき設計的事項であると認められる（上記３（５）の周知文献Ｄの摘記を参照。）。
　引用文献には、上記３（１）（ｂ）の摘記のとおり「
メモリ・モジュールとシステムバスの両方に対する競合
この競合の問題に対処するために、システムバスの実効的な帯域幅を増加させることが必要であ
　したがって、引用発明のシステムにおいて、ネットワーク・トポロジとして、上記周知技術の、システムにおける何れの他のノードとも各ノードが直接に通信することができる完全に接続されたポイント・ツー・ポイント・システムを採用することによって、相違点１に係る構成とすることは当業者が容易になし得たことである。
　
＜相違点２＞について
　ネットワーク上のノードが、受け取ったデータを、他のノードに対して再び送信することを、「転送」（forward）と呼ぶことは、普通に行われている。
　引用発明の「SHARED-SOURCE状態」とは、最新の読み出しミスを生じた結果として、受け取った有効なブロックを、自身のキャッシュに保持している状態であって、その後、もしも他ノードから当該ブロックのリクエストがブロードキャストされれば、キャッシュに保持しているブロックを、リクエストをブロードキャストしたノードに、再び提供（送信）するものと認められる。
　したがって、引用発明の「SHARED-SOURCE状態」を、自身が受け取ったデータを、さらに、他のノードに対して送信する、「転送」（forward）の機能に着目して、「フォワード状態」と称呼することにより、「複数のキャッシュ・メモリを有するシステムにおける1つ又は複数のキャッシュ・メモリにデータ・ブロックの複製を記憶させる工程であって、関連付けられたプロセッサを各キャッシュ・メモリが有し、前記データ・ブロックの前記複製のうちの１つの複製が
フォワード状態において
前記フォワード状態において
　
　さらに、本願発明の効果も、引用発明及び周知技術に基づいて、当業者が予測し得る範囲内のものである。
　
　
６．むすび
　したがって、本願発明は、引用発明、及び、周知技術に基づいて、当業者が容易に発明をすることができたものであるから、本願は、特許法第２９条第２項の規定により特許を受けることができない。
　よって、結論のとおり審決する。