運営:アスタミューゼ株式会社
  • ポートフォリオ機能


追加

関連審決 不服2000-14810
関連ワード 容易に実施 /  アクセス /  周知技術 /  技術常識 /  発明の詳細な説明 /  パリ条約 /  優先権 /  優先日 /  実施 /  審理範囲 /  拒絶査定不服審判 /  拒絶査定 /  請求の範囲 /  変更 / 
元本PDF 裁判所収録の全文PDFを見る pdf
事件 平成 15年 (行ケ) 159号 審決取消請求事件
原告 エルジー・エレクトロニクス・インコーポレーテッド
同訴訟代理人弁護士 鈴木修
同 深井俊至
同 下田憲雅
同訴訟代理人弁理士 大塚住江
被告 特許庁長官小川洋
同指定代理人 前田典之
同 川名幹夫
同 小曳満昭
同 涌井幸一
同 宮下正之
裁判所 東京高等裁判所
判決言渡日 2004/09/28
権利種別 特許権
訴訟類型 行政訴訟
主文 1 特許庁が不服2000―14810号事件について平成14年12月11日にした審決を取り消す。
2 訴訟費用は被告の負担とする。
事実及び理由
請求
主文第1項と同旨
前提となる事実
1 特許庁における手続の経緯(当事者間に争いがない。) ウォング・ラボラトリーズ・インコーポレイテッドは,特許庁に対し,平成元年9月11日にアメリカ合衆国においてされた特許出願に基づきパリ条約4条による優先権を主張して,平成2年3月28日,発明の名称を「キャッシュ/メインメモリのコンシステンシを維持するための装置及び方法」とする発明(以下「本願発明」という。)につき特許出願(特願平2-507465。以下「本願」という。)を行った。
平成10年4月14日,本願の出願名義人をウォング・ラボラトリーズ・インコーポレイテッドからエルジー・セミコン・カンパニー・リミテッドに変更する旨の届出がされた。
特許庁は,平成12年6月7日,本願について拒絶査定をした。
そこで,エルジー・セミコン・カンパニー・リミテッドは,同年9月18日,拒絶査定不服審判の請求をした(不服2000―14810号)ところ,特許庁は,平成14年12月11日,「本件審判の請求は,成り立たない。」との審決(以下「本件審決」という。)をし,その謄本は,同月20日,エルジー・セミコン・カンパニー・リミテッドに送達された。
その後,平成15年2月20日,本願の出願名義人をエルジー・セミコン・カンパニー・リミテッドから原告に変更する旨の届出がされた。
2 特許請求の範囲(甲4,8) 平成12年10月18日付け手続補正書により補正された後の本願に係る明細書(甲4,7,8。以下「本願明細書」という。)の特許請求の範囲の記載は,次のとおりである。
【請求項1】プロセッサおよびキャッシュメモリを有する第1エージェントと関連する装置であって,システムメモリ手段と,該システムメモリ手段にアクセス可能な前記第1エージェントと,前記システムメモリ手段にアクセス可能な第2エージェントとを有するシステムにおける前記第1エージェントの外部にある前記システムメモリ手段と前記キャッシュメモリとの間の整合性を維持するための装置において, 前記第1エージェントの前記キャッシュメモリと並列に前記第1エージェントの前記プロセッサに結合され,前記プロセッサから少なくとも1つのデータ,前記1つのデータに関連するアドレス,および前記1つのデータに関連する制御コマンドを受信し,前記1つのデータがシステムバスを通じて前記システムメモリ手段へ書き込まれる前に,前記1つのデータ,前記1つのデータに関連する前記アドレスおよび前記制御コマンドを一時的に記憶する手段であって,前記制御コマンドは,前記1つのデータの全体を前記システムメモリ手段へ書込むことを示す全書込み制御コマンド又は前記1つのデータの一部のみを前記システムメモリ手段へ書込むことを示す部分書込み制御コマンドを備えるものである,受信して一時的に記憶する手段と, 前記システムバスに結合され,前記システムメモリ手段への前記第2エージェントによる書込みアクセスの発生を前記システムバスから検出する手段と, 前記受信して一時的に記憶する手段と前記検出する手段とに結合され且つ応答して,(1)前記第2エージェシトによる前記書込みアクセスの発生が検出されず,前記制御コマンドが部分書込み制御コマンドとして記憶されている場合には,前記制御コマンドを全書込み制御コマンドへ選択的に変換し,(2)前記第2エージェントによる前記書込みアクセスの発生が検出された場合には,前記制御コマンドを変更せずに維持する手段と, 前記受信して一時的に記憶する手段に応答して,前記システムバスを介して前記システムメモリ手段へ,記憶された前記1つのデータと,記憶された前記アドレスと,選択的に変換された前記制御コマンドまたは維持された前記制御コマンドとを供給する手段と を備える装置。
(【請求項2】ないし【請求項13】は省略) 3 本件審決の理由の要旨(当事者間に争いがない。) 本件審決は,次のとおり,本願明細書の発明の詳細な説明は,当業者が容易にその実施をすることができる程度に,その発明の目的,構成及び効果が記載されておらず,平成2年法律第30号による改正前の特許法(以下「旧特許法」という。)36条3項に規定する要件を満たしていないから,本願は拒絶すべきであるとした。
(1) 当審で通知した拒絶の理由 当審で平成13年5月17日付で通知した拒絶の理由(以下「当審で通知した拒絶の理由」という。)では,理由2)において, 次のとおり,「コンパレータ29」において,何が比較されているのか,比較の結果どのような信号が出力されているのか,の二点について不明瞭であると,不備を指摘している。
「本願は,明細書及び図面の記載が次の点で不備のため,特許法36条3項に規定する要件を満たしていない。すなわち,本願明細書8頁19行乃至9頁1行に,「CPU10は,SB20に結合された他の作用物がメモリ24に書き込みを行うときに検出するための,コンパレータ29のような,回路を含む。この他のバス作用物は,例によると,マルチCPUシステムのたのCPUであり得,またディスク又は通信ポートのようなI/Oデバイスからメモリ24にデータを書き込むために使用可能なI/Oインターフェース回路であり得る。他の作用物による書込みアクセスの発生はキャッシュ14の問い合わせ(interrogation)及び,もし必要なら,キャッシュ14の無効(invalidation)が結果となる。これらの機能を行う回路(示さず)は公知である。更にSB20を通じてのそのような書き込みアクセスの発生はコンパレータ29によって検出され,”システム外部書込み保留(system external write pending)”(SXWP)信号を生成する」と記載されているが,該記載に対応する図面第2図を参照すると,該「コンパレータ29」には「NANDバッファ26b〜26f」の出力が入力され,他に入力されている信号が見当たらないので,該「コンパレータ29」において何が比較され,何が出力されているのか,本願明細書の記載の内容からは不明瞭である。」 (2) 出願人の主張 これに対し出願人は,平成13年11月19日付の意見書において,次のとおり主張している。
「本願発明では,FIFOに記憶されメインメモリへ書き込まれるデータのアドレスか,別のエージェントによりアクセスされSB20で検出されるアドレスかにかかわらず,SB20で検出される何れの書き込みアクセスに対しても,SXWP信号を生成する(例えば,本願明細書の10頁21行〜11頁1行を参照)。
コンパレータ29へはMC0*,MC1*,MC2*,MC3*の4つのみの入力が示されている。MC0*〜MC3*は,メモリ制御装置へ結合されており,第2エージェントがメインメモリへアクセスすると,MC0*〜MC3*の状態が,第2エージェントのアクセスを反映する。即ち,第1エージェントは,第2エージェントによるメインメモリへのアクセスを,MC0*〜MC3*により検出することができる。 また,本願発明は,更なる回路を追加することにより,検出されたシステムバス書き込みがFIFO内に有るアドレスと同じアドレスに対してのものであるときのみ,SXWP信号を生成するようにすることも開示する。 即ち,コンパレータ29への入力はMC0*〜MC3*であり,出力はSXWP信号である。 上記の説明により,指摘された点は明瞭になったものと思料する。」 (3) 検討 出願人の前記主張について,検討する。 ア まず,出願人の, 「本願発明では,FIFOに記憶されメインメモリへ書き込まれるデータのアドレスか,別のエージェントによりアクセスされSB20で検出されるアドレスかにかかわらず,SB20で検出される何れの書き込みアクセスに対しても,SXWP信号を生成する(例えば,本願明細書の10頁21行〜11頁1行を参照)。 コンパレータ29へはMC0*,MC1*,MC2*,MC3*の4つのみの入力が示されている。MC0*〜MC3*は,メモリ制御装置へ結合されており,第2エージェントがメインメモリへアクセスすると,MC0*〜MC3*の状態が,第2エージェントのアクセスを反映する。即ち,第1エージェントは,第2エージェントによるメインメモリへのアクセスを,MC0*〜MC3*により検出することができる。」 という主張について検討するに,前記主張には,「コンパレータ29」において何が比較されているのか,比較の結果どのような信号が出力されているのかについて,何も述べられておらず,当審で通知した拒絶の理由で指摘した前記の点は,依然として不明瞭なままである。 イ 次に,出願人の, 「また,本願発明は,更なる回路を追加することにより,検出されたシステムバス書き込みがFIFO内に有るアドレスと同じアドレスに対してのものであるときのみ,SXWP信号を生成するようにすることも開示する。」 という主張について検討するに,前記主張で開示されているとされた構成の根拠となる記載は, 「本発明の現在好ましい実施例では,SXWP信号はSB20で検出されるいずれの書き込みアクセスについても生成される。しかしながら,例えば,キャッシュ14内に含まれている頁と同じメモリ24のページへの書込みの発生のときにのみSXWP信号を生成するために書き込みの発生に関連してシステムアドレスバスを復号するように,更なるロジックが用いられうることが理解されるであろう。その上,SB20アドレスバスの更なる復号をもって,SXWP信号は,検出されたシステムバス書き込みがアドレス,即ち現在FIFO18内にあるアドレスと同じアドレス,に発生するときのみ生成される。」(本願明細書10頁21行目から28行目参照,以下「根拠記載」という。) であると認められるが,前記根拠記載は,SXWP信号を生成するためには,更なるロジック(論理回路)が用いられうることが理解されるであろうという推測を示したに過ぎないものである。この推測に,技術常識,周知技術を加味したとしても,システムバス書き込みがFIFO内に有るアドレスと同じアドレスに対するものであるときのみ,SXWP信号を生成するような,具体的な論理回路を当業者が想起することは不可能である。 したがって,前記主張は当業者が実施することができない構成に基づく主張であるから,そもそも,前記主張における「コンパレータ29」に関する主張について検討するまでもない。念のために検討しても,前記主張には,「コンパレータ29」において何が比較されているのか,比較の結果どのような信号が出力されているのかについては,何も述べられていないので,当審で通知した拒絶の理由で指摘した前記の点は,依然として不明瞭なままである。 ウ 次に,出願人の, 「即ち,コンパレータ29への入力はMC0*〜MC3*であり,出力はSXWP信号である。」 という主張について検討するに,この主張においても「コンパレータ29」において何が比較されているのか,比較の結果どのような信号が出力されているのかについては,何も述べられていないので,当審で通知した拒絶の理由で指摘した前記の点は,依然として不明瞭なままである。 エ そして,本願明細書の発明の詳細な説明の記載は,本願明細書の「発明の分野」に記載の, 「本発明はデータ処理用の装置及び方法に関し,より詳細には,ライトスルーキャッシュと書き込みデータをバッファリングするための前記キャッシュと平行するローカルバッファメモリとを有する中央処理装置(CPU)に関する。CPUは外部で生じたメインメモリへの書き込みの発生(occurrence)を検出する回路,及びメインメモリのデータがバッファメモリからの新しくない可能性のあるデータで重ね書きされるのを避けるために,関連するメモリコマンドを書き込みアクセスワード形式から,書き込みアクセスのワード形式より少ないように変更する回路を含む」(本願明細書1頁4行目から11行目参照) 旨のものを開示しており,詳細には, 「更に本発明に従うと,CPU10は,SB20に結合された他の作用物がメモリ24に書き込みを行うときに検出するための,コンパレータ29のような,回路を含む」(本願明細書8頁19行目から21行目参照) ものであるから,前述のように,SXWP信号を出力するコンパレータ29の比較処理及び出力信号に関する記載が不明瞭なままでは,当業者が本願明細書の発明の詳細な説明に記載された構成を実現することはできない。 したがって,本願明細書の発明の詳細な説明の記載は,当業者が容易にその実施ができる程度に,その発明の構成を記載したものであるとは認められない。
(4) むすび 以上のとおり,本願明細書の発明の詳細な説明は,当業者が容易にその実施をすることができる程度に,その発明の目的,構成及び効果が記載されているとは認められず,特許法36条3項に規定する要件を満たしていないから,本願は,前記当審で通知した拒絶の理由により拒絶するものとする。
原告主張に係る本件審決の取消事由の要点
本件審決は,本願明細書の記載を誤って解釈し,その結果,本願明細書の発明の詳細な説明の記載が旧特許法36条3項の要件を満たしていないと誤って判断したものであり,その誤りは本件審決の結論に影響を及ぼすことが明らかであるから,違法として取り消されるべきである。
1 本件審決は,本願明細書8頁19行〜9頁1行の記載に関して,コンパレータ29において,何が比較されているのか,比較の結果どのような信号が出力されているのか,不明瞭である旨判断したが,次のとおり,本願明細書には,コンパレータ29で比較される信号や,その比較の結果出力される信号が記載されているから,上記判断は誤りである。
(1) 本願発明の実施例において,コンパレータ29は,他の作用物がメインメモリ24に書き込みを行うことを示すメモリ制御信号(ワード書込み,ハーフワード書込み,バイト書き込みの3種類の信号)がSB20上にあるか否かを検出するために,SB20上の信号と基準信号とを比較する。
比較対象信号は,次の様式でコード化されたワード書き込み,ハーフワード書き込み及びバイト書き込みの各メモリ制御信号である。
MC0* MC1* MC2* MC3* 0 0 0 0 ワード書き込み 0 0 1 0 ハーフワード書き込み 0 0 1 1 バイト書き込み コンパレータ29は,上記のメモリ書き込みのための制御信号を検出するのであるから,上記コード化パターンが基準制御信号として設定されていることは自明である。
これらのことは,本願明細書の「MCn*制御ビットは以下の様式でメモリアクセスの形式をメモリ制御装置22に識別するようにコード化される。」(7頁7〜8行),「CPU10は,SB20に結合された他の作用物がメモリ24に書き込みを行うときに検出するための,コンパレータ29のような,回路を含む」(8頁19〜21行)及び「SB20を通じてそのような書き込みアクセスの発生はコンパレータ29によって検出され」(8頁26〜27行)との記載から明らかである。
本願の優先日前である昭和63年3月25日に公開された特開昭63―66634号公報(甲11)には,内部に基準値を予め設定して記憶しておき,外部から比較する信号(被比較信号)のみを入力し,基準値と被比較信号との比較結果を示す信号を出力するデジタル型のウインドウコンパレータ(デジタルコンパレータの一種)が開示されている。このことは,本願が出願される以前より,比較する信号のみが入力され,その信号とコンパレータ内に記憶された基準信号とを比較するようなコンパレータが一般に知られていたことを示すものである。
(2) 本願発明の実施例において,コンパレータ29からの出力信号は,システム外部書き込み保留(SXWP)信号である。コンパレータ29は,SB20に結合された作用物がメインメモリ24のデータを更新しようとするときのメモリ制御信号を検出した場合,JKフリップフロップ(F/F)30に対し,システム外部書き込み保留(SXWP)信号を出力する。
このことは,本願明細書の「SB20を通じてそのような書き込みアクセスの発生はコンパレータ29によって検出され,“システム外部書き込み保留(system external write pending)”(SXWP)信号を生成する。この信号はJKフリップ/フロップ(F/F)30への入力であり,この信号のアサートはF/F30が次のクロック(CLK)入力のエッジにセットするように影響する」(8頁26行〜9頁3行),「SXWP信号はSB20で検出されるいずれの書き込みアクセスについても生成される。」(10頁21〜22行)との記載から明らかである。
コンパレータ29から出力されるSXWP信号は,いくつかの処理回路を経て,強制ワード書き込み処理を無効とする。強制ワード書き込み処理とは,バッファ26a,26bを介してメモリ制御信号のうちのMC2*及びMC3*を「0」とすることにより,ハーフワード書き込みまたはバイト書き込みを強制的にワード書き込み形式に変換する処理(本願明細書7頁23〜26行及び図2)である。この強制ワード書き込み処理を無効にすることにより,ハーフワード書き込みはハーフワード書き込みのまま,バイト書き込みはバイト書き込みのまま維持され,メインメモリ24のデータを更新させる。
2 被告が指摘する以下の点は,いずれも理由がないばかりか,そもそも本件審決が指摘していない点であるから,本件訴訟の審理範囲に入らない。
(1) 第4,2の主張について,ハーフワード書き込み及びバイト書き込み処理を強制ワード書き込み処理に変更することは,メインメモリ24への書き込み方法を変更することであり,書き換えるべきデータやそのアドレス等の属性情報を変更するものではない。
本願明細書において,FIFO18は,データライン12a,関連するアドレスライン12b,及び関連する制御ライン12cと結合されており(図1参照),これらのラインからFIFO18へ入力される種々の情報により,書き換えられるデータの属性情報が認識・維持されることは,当業者であれば理解できることである。また,「制御ラインはデータ及びアドレスに関連するメモリアクセスの形式を識別する。即ち,制御ラインはプロセッサ12がFIFO18に記憶された関連するワードのデータをバイト書き込み,ハーフワード書き込み,又はワード書き込みを行ったかどうかを示す。」(6頁25〜28行)との記載からも,書き換えられたデータの属性情報が維持されることは明らかである。
なお,ワードは2つのハーフワードで構成されるものであり,あるハーフワードがいずれのワードに属するかは,ハーフワードに付随するアドレス情報及びワードに付随するアドレス情報に基づいて判別可能である。
したがって,FIFO18に一時的に記憶されている,ハーフワード書き込み処理がなされたデータは,属性情報,すなわち,書き換えられたデータの部分に対応するアドレス等の情報を維持しており,FIFO18内においても書き換えられた部位を特定することが可能であることは,当業者にとって自明である。
また,データには上述のようなアドレス情報が付随しているのであるから,それぞれの書き込み(バイト書き込み,ハーフワード書き込み,ワード書き込み)命令に対応したデータ単位でデータをFIFOから読み出す構成も,当業者であれば理解できることである。
(2) 第4,3の主張について,甲12に示されるように,本願発明のような複数の作用物(CPU)を含むマルチプロセッサシステムがバス・ロック機能を備えることは,本願発明が属する技術分野の当業者にとって周知のことである。
したがって,MC0*ないしMC3*には,当時点でSB20を占有している唯一のCPUnからのデータ・信号が反映されていることは明らかであり,ある作用物からの信号に他の作用物からの信号がさらに作用し得る不安定な状態になることはない。
(3) 第4,4の主張について,本願明細書の「信号名に続く星印は,従来の様式で論理零または以下のときに信号はアサートされる(asserted)ことを示す」(7頁6〜7行)という記載から,実施例の回路は負論理を採用していることが明らかである。つまり,MC0*〜MC3*の信号は,論理0のときにアサートの状態であり,論理1のときにデアサートの状態であるということが理解できる。
そうすると,ある作用物においてSB20をアクセスしない処理が行われているとき,つまり,その作用物がバスアクセス権を有さず,SAEN信号がデアサートとなっているとき,MC0*〜MC3*上の信号がすべて1になり,他の作用物がメモリ24への書き込みアクセスを行うと,その書き込み種別はMC0*〜MC3*に反映されることになる。
したがって,被告が主張するような「他の作用物の書き込みを判別することができなくなる」という問題が生じることはない。
(4) 第4,5の主張について,CPUnがメインメモリへデータを書き込み,その後にバスアクセス権を解放し,その後にCPU1がバスアクセス権を得るまでの間の時間(つまり,CPU1のコンパレータ29がSXWP信号を出力した時から,CPU1がバスアクセス権を得る時までの時間)は,CPU1における書き込み方法の変更のために要する2クロック分の遅延時間よりも長いものである。また,「プロセッサ12は典型的にはSB20よりも速いクロック値で動作し」(本願明細書5頁9〜10行)という記載からも,一般的に作用物(CPU)内部のクロック速度がバスのクロック速度よりも速いことが理解できる。
すなわち,CPUnがバスを解放してCPU1がバスアクセス権を得るまではデータがCPU1からバスへ出力されず,FIFOに保留されることになり,且つ,CPU1がバスアクセス権を得るまでの間にCPU1内部において書き込みの方法が変更されることになる。したがって,CPU1の内部においてSXWP信号から2クロック分遅れてUNFWW信号が出力されること,つまり,書き込み方法の変更に2クロック分の時間を要することによる動作上の不具合は全くない。
被告の反論の要点
本件審決の判断に誤りはなく,原告の主張する本件審決の取消事由には理由がない。
1 コンパレータには,基準信号と比較する信号とがそれぞれ入力されるのが通常であり,原告の主張するような,その内部に基準値が予め複数個設定され,比較する信号のみを入力するようなコンパレータは一般には知られていない。例えば,市販されている一般的なICの規格を示した「'90年最新74シリーズIC規格表」(1990年6月30日CQ出版株式会社発行)(乙1)には,基準信号と比較する信号とがそれぞれ入力される2入力のコンパレータしか示されていない。
原告の主張するコンパレータ29は,4ビットの入力値を,内部に設定した4ビットの複数の設定値のいずれかと比較して一致するか否かを検出し,出力するものであるが,甲11記載のコンパレータは,複数個(6個)の4ビット比較器を使用する従来例のコンパレータを小型化するという目的からしても,4ビット以下の比較を前提とし得ないものであり,しかも,ウインドウコンパレータであるから,その比較は設定値と比較して一致を出力するものではない。したがって,甲11は,原告の主張するようなコンパレータが一般に知られていることの裏付けにはならない。
2 本願明細書の記載からは,CPU1によるハーフワード書き込み処理を,FIFO18内に記憶しておいたワードデータに対し行うと,もはや,CPU1が上位又は下位のいずれのハーフワードを書き換えたのか区別がつかなくなるから,そうすると,FIFO18のワードデータに基づき,ハーフワード書き込みでメインメモリ24のデータを書き換えようとしても,FIFO18の上位又は下位のいずれのハーフワードを用いて書き換えればよいのか判断できなくなる。
また,本願明細書の記載からは,強制ワード書き込みを無効とすることにより,強制ワード書き込みをハーフワード書き込み又はバイト書き込みに変更し,ハーフワード書き込みはハーフワード書き込みのまま,バイト書き込みはバイト書き込みのまま維持する際に,アドレスデータをどのように変更するのか,また,書き込みデータをワードデータからハーフワード又はバイトのデータにどのように変更するのか,が明らかでない。
さらに,本願明細書の記載からは,書き込み命令に対応したデータ単位でデータをFIFO18から読み出すための具体的構成や,FIFO18から読み出した情報を処理してメモリ制御装置に渡すための具体的構成が不明である。
3 本願明細書の「バッファ26c乃至26fはSB20に4ビットメモリ制御信号(MC0*乃至MC3*)を与え」(7頁4〜5行)等の記載によれば,SB20には,各作用物のMC0*〜MC3*が与えられている。そして,各作用物は,それぞれ独立して動作するものと考えられるから,SB20上に与えられるMC0*〜MC3*は,ある時点においてどの作用物からの信号が反映されているのか明確でなく,ある作用物からの信号に他の作用物からの信号が更に作用し得る不安定な状態になってしまうという問題が生じる。しかしながら,その解決方法は何ら記載されていない。
なお,原告が主張するように,本願発明のものがバスロック機構を備えているとすると,バスロック機能は,他の作用物のバスに対するすべてのアクセスを禁止するものであるから,バスにアクセスできない他の作用物は,当該占有した作用物の書き込み信号を,バスの一部であるMC0*〜MC3*によって検知し得ないこととなる。したがって,本願発明のものにバスロック機構があると,本願発明の機能を阻害することになる。
また,図2の回路に,どのようにバスロック機構を組み込めば原告の主張するような機能を発揮できるのか,その具体的構成を本願明細書から読み取ることはできない。例えば,本願明細書の発明の詳細な説明には,バスロックをどの時点からどの時点まで行うか,バスロックの際にFIFO18に各種データがどのようにして保留されるのか等について記載がない。
4 本願明細書記載のものでは,ある作用物において,SB20をアクセスしないレジスタ演算等の処理が行われている場合は,図2のSAEN信号がLとなり,ワイアード・オア結合されたMC0*〜MC3*には常に1が出力される。これによって,コンパレータ29の4本の入力はすべて1に固定されるので,他の作用物がメモリ24へワード書き込みでアクセスしたとしても,その書き込み種別はMC0*〜MC3*に反映されず,正常にその書き込みを判別することができなくなってしまうという問題が生じる。しかしながら,その解決方法は何ら記載されていない。
5 本願明細書の発明の詳細な説明と図2とを参照すると,SXWP信号は,JKフリップフロップ30及び36を経て,2クロック分遅れて,キャッシュヒットによる強制ワード書き込み信号FWWを無効にするUNFWW信号となる。したがって,FIFO18から前記強制ワード書き込みデータ,アドレス,制御信号が出力されてから,最も早い場合でも,2クロック後にUNFWW信号が出力されることとなる。ところが,この2クロックの間にも,当該作用物のFIFO18を含め他の作用物のFIFO18からも,本来無効にされるべきワード書き込みのためのデータ,アドレス,制御信号が出力され得るとの問題が生じる。しかしながら,その解決方法は何ら記載されていない。
なお,原告の主張するように,CPUnがメインメモリヘデータを書き込み,その後にバスアクセス権を解放し,その後にCPU1がバスアクセス権を得るまでの間の時間が,CPU1における書き込み方法の変更のために要する2クロック分の遅延時間よりも長いものであるとすると,作用物(CPU)内部のクロック速度がバスのクロック速度よりも速いのであるから,CPUnがメモリ制御装置に指令を渡し終えた後,バスのロックを解除し,CPU1がバスを占有するまでの間に,常識的には,CPU1において2クロック以上経過することとなる。そして,その2クロック以上の間に作用物のSXWP信号が通り過ぎたJKフリップフロップ30,36のKはHレベルとなっており,SXWP信号のない状態がMC0*〜MC3*に伝搬されているから,新たにバスを占有したCPU1においては,MC0*〜MC3*においてCPUnがメモリにアクセスした時のSXWP信号を検出することはできないこととなる。したがって,原告主張のとおりであれば,そもそも本願発明が機能しない。
当裁判所の判断
1 原告は,「本件審決は,本願明細書の記載に関して,コンパレータ29において,何が比較されているのか,比較の結果どのような信号が出力されているのかが不明瞭である旨判断したが,本願明細書には,コンパレータ29で比較される信号や,その比較の結果出力される信号が記載されているから,上記判断は誤りである。」旨主張する。
(1) 本願明細書及び図面には,本願発明の目的及び実施例等について,次のように記載されている。
ア 「本発明はデータ処理用の装置及び方法に関し,より詳細には,ライトスルーキャッシュと書き込みデータをバッファリングするための前記キャッシュと平行するローカルバッファメモリとを有する中央処理装置(CPU)に関する。CPUは外部で生じたメインメモリへの書き込みの発生(occurrence)を検出する回路,及びメインメモリのデータがバッファメモリからの新しくない可能性のあるデータで重ね書きされるのを避けるために,関連するメモリコマンドを書き込みアクセスのワード形式から,書き込みアクセスのワード形式より少ないように変更する回路を含む。」(1頁4〜11行) イ 「ここで説明される発明は,マルチバイトのメモリワードを記憶するために編成された複数のメモリ装置をメモリ制御装置が制御するデータ処理システムの形式で特に有用である。そのようなメモリでは,エラー検出及び訂正シンドロームビットは典型的にはメモリの多数のバイト,例えば32ビットメモリワードの4バイト,にわたって生成される。中央処理装置CPUがそのようなメモリにデータのワードを書き込むとき,エラーシンドロームビットはそのワード全体に対して生成され,関連するメモリ装置に記憶される。しかしながら,CPUが,1バイト(8ビット)又はハーフワード(16ビット)のデータなどのような,全ワードのデータよりも少ない書き込みをするときには,メモリ制御装置は最初に全ワードのデータを読み,そのバイトをマージし,全マージされたワードにわたってエラーシンドロームビットを生成し,関連するシンドロームビットをもつマージされたワードをメモリに戻して書き込むように動作する。周知のように,この読み取り/変更(modify)/書き込み形式のアクセスは時間のかかる処理である。
あるシステムでは複数のCPUが共通のシステムバスに結合され,そしてそのバスを通じて1つまたはそれ以上のメモリユニットに結合されている。各CPUはローカルキャッシュメモリを有しており,メインシステムメモリの一部分のコピーが維持される。そのようなシステムでは,キャッシュメモリ内のデータの変化に正確に反映してメインメモリが更新されることが,望まれる目標である。例えば,そのようなシステムはライトスルー形式のキャッシュメモリを用いており,キャッシュに書き込まれたデータはまたキャッシュを”スルー(through)”してメインメモリに書き込まれる。こうするためにキャッシュと平行に先入れ先出し(FIFO)メモリが用いられる。FIFOはCPUから書き込みデータを受け入れて,そのデータをシステムバスを通じてメインメモリにあたえる前に一時的にそのデータをバッファリングする。FIFOは通常はワード幅又はそれ以上である。
幅が1つのワードよりも少ないこれらの書き込み動作に対しては,FIFO内に記憶されたデータは読み取り/変更/書き込み形式のアクセスの結果に反映され,そこではバイト又はハーフワードはCPUによってキャッシュワードと既にマージされている。よって,バイト又はハーフワードをメモリに書き込みそしてエラーシンドロームビットの生成における読み取り/変更/書き込みサイクルの時間遅延を被る代わりに,より効率的なキャッシュメモリライトスルー技術は全かつ既にマージされたワードをFIFOからメモリに書き込む。
しかしながら,マルチプロセッサシステムの他のCPUのような他のシステムバス作用物(agent)が,ワードのデータが一時的にFIFOにバッファされる時間の間隔の間に,メインメモリに書き込むときに問題が起こる。この場合,メインメモリのワード,即ちFIFOのターゲット,は他のバス作用物によって今更新されたところかも知れない。FIFOからフルワードが書き込まれることを許すと,FIFO内に含まれる古いデータによって新しいデータが重ね書きされ,メインメモリの新しいデータが壊される結果となる。
従って本発明の1つの目的は,ローカルキャッシュメモリへの書き込み動作の結果としてメインメモリ内のデータを更新するための方法及び装置を提供することである。
本発明の他の目的は,FIFOバッファのようなデュアルポートメモリをキャッシュメモリと平行に与えることによってメインメモリ内のデータを更新するライトスルーキャッシュを用いるための方法及び装置を提供し,更にいつFIFOバッファからメインメモリへのフルワード書き込みのデータを無効にする書き込みがメインメモリに起こるかを検出するための回路を提供することである。
更に本発明の目的は,FIFOバッファをキャッシュメモリと平行に与えることによってメインメモリ内のデータを更新する,ライトスルーキャッシュを用いるための方法及び装置を提供し,更にいつ書き込みがメインメモリに起こるかを検出するための回路,及びメインメモリのデータが新しくない可能性のあるデータで重ね書きされるのを避けるために,関連するメモリコマンドをワード書き込み(word write)アクセスから,書き込みアクセスのワード形式より少ないように変更する回路を提供することである。」(1頁13行〜3頁13行) ウ 「図1は本発明に従って構成され動作するデータ処理システム1の一部分のブロック図である。システム1はCPU1からCPUnで示されたような少なくとも1つの中央処理装置(CPU)を含む。典型的には各CPU10は他のCPUと同じ構成である。CPU10は,マイクロプロセッサデバイスのようなプロセッサ12を含み,それは複数のデータライン(DATA)12a,アドレスライン(ADDR)12b及び制御ライン(CONT)12cを経由でローカルキャッシュメモリ14に結合されている。キャッシュメモリ14はバス14aを経由してバスインターフェースユニット16に結合されていて,そのバスインターフェースユニット16はシステムバス(SB)20との両方向データ通信を提供する。」(4頁18〜26行) エ 「FIFOバッファ18のようなデュアルポートメモリデバイスがキャッシュ14と並列に結合されている。FIFO18は,メインメモリ24を更新することを意図している書き込みデータを短期間バッファするように機能し,メインメモリ24はメモリ制御装置22を介してシステムバス20に結合されている。FIFO18は,書き込みデータがSB20に与えられる前に,プロセッサ12からデータを受信し記憶するように動作する。」(5頁3〜8行) オ 「1つの ワード よりも 短い書き込み動作 については ,FIFO 18 に記憶された データ はキャッシュ 書き込みヒット の結果 を反映 し,そこでは 読み取り/変更 /書き込み形式 のアクセス は1つの バイト 又はハーフワード とキャッシュワードとを マージ するように プロセッサ 12 によって 行われる 。また,あるCONT12ラインは,ワード書き込みとして書き込みが成されたことをメモリ制御装置22に示し,それによって読み取り/変更/書き込みのメモリ制御装置サイクルを達成するのに要求される付加的な時間を除去する。しかしながら,例えば,ワードのデータが一時的にFIFO18にバッファされる時間の間隔の間にCPUnがメモリ24に書き込むとき,前記の問題が起こる。この場合,メインメモリのワード,即ちFIFO18書き込みのターゲット,はCPUnによってちょうど変えられたところかもしれない。もしFIFO18書き込みがワード書き込みとして処理されることが許されたら,新しいデータはキャッシュ14からの古いデータによって重ね書きされてしまうであろう。CPUn又は他のバス作用物によってメモリ24になされた書き込みをCPU1内で検出し,そしてCONT12cメモリコマンドラインがワード書き込みの代わりにバイト書き込み又はハーフワード書き込み動作を示すように変えることによって,この問題は避けられることを説明する。このことによって,メモリ制御装置22は書き込まれたバイト又はハーフワードのデータにのみ動作し,そしてバイト又はハーフワードとメインメモリからのワードとをマージするように従来の読み取り/変更/書き込み形式のサイクルを行うようにする。バイト又はハーフワードはアドレスの最下位側ビットによって識別され,それもはたFIFOによってバッファされる。」(5頁24行〜6頁16行) カ 「図2を参照すると,FIFO18が詳細に示されている。単一のデバイスとして示されているが,FIFO18 は32 データライン 12 a, 関連 する 32ビットアドレスライン 12 b, 及び関連 する 制御 ライン 12 cをバッファ するために 典型的 には 複数 の個別 のFIFO デバイス を備えている ことに留意されたい。
例によると,制御ライン はデータ 及びアドレス に関連 する メモリアクセス の形式 を識別 する 。即ち,制御 ライン はプロセッサ 12 がFIFO 18 に記憶 された 関連 するワード のデータ にバイト 書き込み,ハーフワード 書き込み,又はワード 書き込みを行ったかどうかを 示す。バス18aはFIFO18の出力からの,バッファされたデータ(BDATA),バッファされたアドレス(BADDR),及びバッファされた制御ライン(BCONT)を含む。複数のシステムバス20ドライバはFIFO18の出力18aと関連している。図2ではBCONTラインの一部分と関連しているそれらドライバ26のみが示されている。バッファ26 c乃至 26 fはSB20 に4ビットメモリ 制御信号 (MC 0*乃至 MC 3*) を与え,信号名 に続く星印 は,従来 の様式 で論理零又 は以下 のときに 信号 はアサート される (asserted )ことを 示す。MCn* 制御 ビット は以下 の様式 でメモリアクセス の形式 をメモリ 制御装置 22 に識別 するように コード 化される 。
MC 0* MC 1* MC 2* MC 3* 0 0 0 0 ワード書き込み 0 0 1 0 ハーフワード書き込み 0 0 1 1 バイト書き込み NANDバッファ26cから26fは,制御システムアクセスイネーブル(SAEN)信号がCPU10の回路(示さず)にアサートされたときに,それらの関連するメモリ制御ビットをSB20に駆動するようにイネーブル(使用可能)にされる。SAENのアサートはCPU10からSB20へのデータの駆動をイネーブル(enable)にする。
2個の更なるNANDバッファ26a及び26bがバッファ26c及び26dに関連していて,それらの出力はそれぞれバッファ26cと26dの出力にワイヤーオアド(wire-ored)されている。好ましくは バッファ 26 はオープン 制御装置形式 のデバイス であり ,そこではそのような ワイヤーオアド 接続 は容易 になされている 。
バッファ 26 a及び26 bの目的 は,制御信号表示 をMC 2*及びMC3*が両方低 のワード 書き込み表示 にするよう ,バイト 書き込み又はハーフワード書き込み制御信号表示 ,MC 2*及びMC 3*高又 はMC 2*高及 びMC 3*低を,それぞれ ,通常無効 にすることである 。バッファ 26 a及び26 bの各々は入力信号 として ゲート 28 の出力 を有し,ゲート 28 は入力信号 として ”強制 ワード書き込み(force word write )”(FWW) 信号 を有する 。FWW はバッファ された制御 ライン のひとつであって FIFO 18 から 出力 されており ,FWW はプロセッサ 12 書き込みが キャッシュ をヒット するときに アサート される キャッシュ 書き込みヒット (CACHE WRITE HIT) 信号 の結果 として 高とアサート される。」(6頁21行〜8頁4行)。
キ 「更に本発明 に従うと ,CPU 10 は,SB 20 に結合 された 他の作用物がメモリ 24 に書き込みを 行うときに 検出 するための ,コンパレータ 29 のような,回路 を含む。」(8頁19〜21行) ク 「更にSB 20 を通じてのそのような 書き込みアクセス の発生 はコンパレータ 29 によって 検出 され ,”システム 外部書 き込み保留 (system external write pending )”(SXWP) 信号 を生成 する 。この 信号 はJK フリップフロップ(F/F) 30 への 入力 であり ,この 信号 のアサート はF/F 30 が次のクロック(CLK) 入力 のエッジ にセット するように 影響 する 。F/F 30 のQ出力 は”外部書 き込み保留 ”(XWP) と表示 された 信号 であり ,アサート されたときに ,それは 外部 で生成 された 書き込みが SB 20 に起こったことを 示す。」(8頁26行〜9頁5行) ケ 「F/F30 からの XWP 信号出力 は,FIFO 18 からの EMPTY*フラグ と関連 して AND ゲート 34 に与えられる 。FIFO18が空のとき,即ちFIFO18がバッファされた書き込みを含んでいないとき,EMPTY*信号は低でありANDゲート34からの低を強制する。FIFO18が1個又はそれ以上のバッファされた書き込みを含むときEMPTY*信号はデアサート又は高である。XWPが高,XWPはメモリ24への外部システムバス書き込みの発生を示す,であるのに関連してEMPTY*が高であると,ANDゲート34は高の出力を有するようになる。ANDゲート 34 からの 高の出力 はJK F/F 36 のJ入力に加えられ ,CLK のエッジ と関連 して ,Q* 出力 が低に行くようにする 。F/F36 のQ* 出力 は”強制 ワード 書き込みアンドゥ (undo forced word write )”(UNFWW*) で表された 信号 である 。外部システムバス書き込みが検出されキャッシュ問い合わせが保留され(XWPは高)そしてFIFO18が少なくとも1個のバッファされた書き込みを含んでいる(EMPTY*は高)ときのみ,UNFWW*信号は低にアサートされる。UNFWW*がアサート され ,即ち低であることが AND ゲート 28 の出力 を低にし ,更にNAND ゲート 26 a及び26 bの出力を高にするようにする 。これが FWW のアサート により 強制 された ワード 書き込みを 無効 にし ,バッファ された メモリ 制御信号 (BMC 2とBMC 3)の状態 が,それぞれ メモリ 制御 ラインドライバ 26 dと26 cの出力 で反映 されるようにする。言い換えると ,もし プロセッサ 12 がFIFO 18 内での ワード のデータ の生成において バイト 書き込み又はハーフワード 書き込みを 達成 したら ,MC 0*乃至MC 3*ライン はメモリ 制御装置 22 にそれを 表示 する 。バイト 書き込み又はハーフワード 書き込みメモリ 制御信号 の発生 は,アドレスバス と関連 して ,メモリ 24のアドレス された ワード への 読み取り/変更 /書き込みサイクル として メモリ 制御装置 22 によって 解釈 される 。アドレスバス の最下位側 ビット によって 識別 されるバイト 又はハーフワード が,メインメモリ から 読まれる データワード とマージ され,ECC シンドロームビット が生成 され ,ワード がメモリ に戻して 書き込まれる。この様式では他のバス作用物によって最近変えられたかもしれないワード内のいずれの他のデータもFIFO18内のフルワードのデータによって重ね書きされない。
もしUNFWW* がアサート されなければ ,FWW がアサート されている間はAND ゲート 28 の出力 は高である 。この 高は,SAEN がアサート されているのと 関連 し,オープンコレクタバッファ 26 aと26 bの出力 の両方 が低であるようにする 。これらの 出力 の各々に結合 された ワイヤーオアドノード は従って 論理低 に強制 され ,そして メモリ 制御信号 がメモリ 制御装置 22 への ワード 書き込み(MC 0*乃至 MC 3*すべて 低)として 現れる 結果 となる 。」(9頁11行〜10頁17行) コ 図2には,制御信号MC0*〜MC3*がコンパレータ29に入力されること,コンパレータ29の出力SXWP信号がJKF/F30に入力されること,JKF/F30の出力XWP信号がANDゲート34を介してJKF/F36に入力されること,FIFO18の出力BCONT信号がNANDバッファ26c〜26fを介して制御信号MC0*〜MC3*として出力されること,FIFO18の出力FWW信号とJKF/F36の出力UNFWW信号がANDゲート28に入力され,その出力はNANDバッファ26a及び26bを介してそれぞれNANDバッファ26c及び26dの出力と接続されることが記載されている。
(2) 以上の記載を総合すると,@本願発明は,各々がライトスルー型式のキャッシュメモリとバッファのための記憶手段(FIFOメモリ)とを有する複数のCPUが,共通のシステムバスを通じてメインメモリに結合されたマルチプロセッサシステムであって,メインメモリはマルチバイトのメモリワード(例えば,32ビット)を記憶するように構成され,CPUがバイト(8ビット)又はハーフワード(例えば,16ビット)でデータの書き込みを行うときにキャッシュメモリ内に存在する1ワードのデータとマージして記憶手段(FIFO)内に蓄積し,フルワードとしてメインメモリに書き込むようにされたシステムにおいて,ある1つのCPUがデータを更新する際に,そのキャッシュ内に存在する更新されていない古いデータとマージしてワード書き込みを行う場合に生じる問題を解決することを目的とし,各CPUに他のCPUが行った書き込み(バイト書き込み,ハーフワード書き込み及びワード書き込み)を検出するための手段を設け,他のCPUの書き込みが検出された場合には,ワード書き込みをするところを,元の書き込み方法(バイト書き込み,ハーフワード書き込み)による書き込みに変更するものであること,Aそのために,本願発明の実施例では,各CPUに検出手段としてのコンパレータ29を設け,コンパレータ29は,システムバスSB20上の各CPUからの制御信号MC0*〜MC3*を入力し,ワード書き込みを表す(0,0,0,0)(順に,MC0*〜MC3*の各信号を表す。以下同様である。),ハーフワード書き込みを表す(0,0,1,0)及びバイト書き込みを表す(0,0,1,1)を検出すること,この検出に応じて出力されるSXWP信号は,JKF/F等を介してUNFWW信号としてANDゲート28に入力され,強制ワード書き込み信号FWW信号を無効化すること,ANDゲート28の出力は,(強制ワード書き込み信号FWW信号が出力されたときは,NANDバッファ26a及び26bを介してMC2*及びMC3*を論理0とし,ワード書き込みを表す(0,0,0,0)の信号を形成するが,)UNFWW信号により強制ワード書き込み信号が無効化された場合は,NANDバッファ26a及び26bの出力はMC2*及びMC3*に影響を及ぼさなくなることが記載されているものということができる。
そして,上記のとおり,コンパレータ29の機能,すなわち,制御信号MC0*〜MC3*が入力され,制御信号が,ワード書き込みを表す(0,0,0,0),ハーフワード書き込みを表す(0,0,1,0)及びバイト書き込みを表す(0,0,1,1)になったことを検出することが,本願明細書に明確に記載されている以上,当業者であれば,コンパレータ29には,上記書き込みを表す信号が基準信号として与えられており,制御信号MC0*〜MC3*との論理の一致を検出する機能を有するものであること(したがって,コンパレータ29が甲11のもののように内部に基準信号を有するか,または,単に,コンパレータ29に入力される基準信号についての記載が本願明細書において省略されたにすぎないものと解されること)は,十分理解することができるというべきである。
そうすると,本願明細書の記載から,コンパレータ29は,ワード書き込みを表す(0,0,0,0),ハーフワード書き込みを表す(0,0,1,0)及びバイト書き込みを表す(0,0,1,1)の各基準信号と制御信号MC0*〜MC3*とを比較し,その比較により両信号の論理の一致が検出されれば,SXWP信号(システム外部書き込み保留信号)を出力するものであることが明らかである。したがって,本件審決の「コンパレータ29において,何が比較されているのか,比較の結果どのような信号が出力されているのかが不明瞭である」旨の判断は,誤りである。
(3) これに対し,被告は,以下のとおり主張するが,いずれも理由がない。
ア 被告は,「コンパレータには,基準信号と比較する信号とがそれぞれ入力されるのが通常であり,その内部に基準値が予め複数個設定され,比較する信号のみを入力するようなコンパレータは一般には知られていない。」旨主張する。
しかしながら,本願の優先日前である昭和63年3月25日に国内で頒布された甲11(特開昭63―66634号公報)には,「〔問題点を解決するための手段〕上記目的は,予め所定の内容に設定された記憶素子のアドレス入力に被比較値を印加し,該記憶素子の出力を比較結果とする構成をとることにより,達成される。〔作用〕記憶素子は,アドレス入力信号によって指定された番地のデータ出力を行なうように動作する。それによって,或る値以下のアドレスに対応するデータを負極性,その値を越えるアドレスに対応するデータを正極性に設定しておくことにより,該記憶素子のアドレス入力信号として印可した被比較値が或る値以下にあるか,上にあるかを該記憶素子の出力から知ることができる。また該記憶素子のある範囲内のみのデータを他と逆極性にすることにより,被比較値が範囲内にあるか否かを判定することができる。」との記載があるから,本願出願前に,その内部に基準値が予め複数個設定され,比較する信号のみを入力するコンパレータが一般に知られていたことが明らかである。
これに対し,被告は,「甲11記載のコンパレータは,4ビット以下の比較を前提とし得ないものであり,しかも,その比較は設定値と比較して一致を出力するものではない。」旨主張するが,甲11のものが,その内部に基準値が予め複数個設定され,比較する信号のみを入力するコンパレータである以上,ビット数の多寡や,比較機能の差(ウインドウ型であるか,一致検出機能を有するものであるか)の点は,上記認定を何ら左右しない。
イ 被告は,「@本願明細書の記載からは,ハーフワード書き込みでメインメモリのデータ書き換えを行う場合,FIFO18内のワードデータの上位又は下位のいずれのハーフワードを用いて書き換えればよいのか判断できないという問題がある。A強制ワード書き込みを無効とすることにより,アドレスデータをどのように変更するのか,書き込みデータをワードデータからハーフワード又はバイトのデータにどのように変更するのかが明らかでない。」旨主張する。
しかしながら,本願明細書には,前記(1)で指摘したように,「1つのワードよりも短い書き込み動作については,FIFO18に記憶されたデータはキャッシュ書き込みヒットの結果を反映し,そこでは読み取り/変更/書き込み形式のアクセスは1つのバイト又はハーフワードとキャッシュワードとをマージするようにプロセッサ12によって行われる」こと(前記(1)オ),「FIFO18は32データライン12a,関連する32ビットアドレスライン12b,及び関連する制御ライン12cをバッファするために典型的には複数の個別のFIFOデバイスを備え」,「制御ラインはプロセッサ12がFIFO18に記憶された関連するワードのデータにバイト書き込み,ハーフワード書き込み,又はワード書き込みを行ったかどうかを示す」ものであり,「バッファ26a及び26bの目的は,制御信号表示をMC2*及びMC3*が両方低のワード書き込み表示にするよう,バイト書き込み又はハーフワード書き込み制御信号表示,MC2*及びMC3*高又はMC2*高及びMC3*低を,それぞれ,通常無効にする」こと(前記(1)カ),コンパレータによる外部書き込み保留信号(SXWP)の発生は,強制されたワード書き込みを無効にし,これにより,「バッファされたメモリ制御信号(BMC2とBMC3)の状態が,それぞれメモリ制御ラインドライバ26dと26cの出力で反映され」,「バイト書き込み又はハーフワード書き込みメモリ制御信号の発生は,アドレスバスと関連して,メモリ24のアドレスされたワードへの読み取り/変更/書き込みサイクルとしてメモリ制御装置22によって解釈され」,「アドレスバスの最下位側ビットによって識別されるバイト又はハーフワードが,メインメモリから読まれるデータワードとマージされ,ECCシンドロームビットが生成され,ワードがメモリに戻して書き込まれる」こと(前記(1)ク,ケ)が記載されている。
そうすると,上記記載から,CPUからのハーフワード書き込みのデータは,FIFO18において,キャッシュメモリからのデータとマージされてフルワードとして記憶され,同時に,CPUからのアドレス信号及び書き込み形式を指定する制御信号もFIFO18に記憶され,データとともにメモリ制御装置に送られるものであること,ハーフワード書き込みであることは上記制御信号により示され,いずれのハーフワードであるかは,アドレスの最下位側ビットによって判別することができること,ワード書き込みを行う場合は,制御信号のMC2*及びMC3*を強制的に低レベルにするが,コンパレータの検出動作により書き込みが検出されると,制御信号MC2*及びMC3*の低レベルへの強制が無効とされること,ワード書き込みを無効にするときにアドレスデータや書き込みデータの変更は行われないことが明らかである。
したがって,上記@の主張については,アドレスの最下位側ビットによりワード内のハーフワードやバイトの位置を特定できるから,被告の主張するような「FIFO18内のワードデータの上位又は下位のいずれのハーフワードを用いて書き換えればよいのか判断できない」という問題が生じることはない。また,上記Aの主張については,強制ワード書き込みを無効とする際にアドレスデータや書き込みデータの変更は必要でないから,主張の前提を欠き,理由がない。
また,被告は,「書き込み命令に対応したデータ単位でデータをFIFO18から読み出す具体的構成や,読み出した情報を処理してメモリ制御装置に渡す具体的構成が不明である。」旨主張する。しかしながら,書き込み命令に対応したデータの単位は,アドレス及び制御信号により判別可能であることが明らかであるし,また,メモリ制御装置に情報を渡す構成に関しては,キャッシュメモリ及びFIFOメモリ18がバスインターフェースを介してシステムバス20に接続されることが図1に記載されている。したがって,それ以上に上記各具体的構成の開示がなくても,当業者であれば,本願発明を容易に実施することができるものというべきである。
ウ 被告は,「SB20には,各作用物(CPU)のMC0*〜MC3*が与えられており,各作用物は,それぞれ独立して動作すると考えられるから,SB20上に与えられるMC0*〜MC3*は,どの作用物からの信号が反映されているのか明確でなく,ある作用物からの信号に他の作用物からの信号が更に作用し得る不安定な状態となる。」旨主張する。しかしながら,原告が主張するように,複数のCPUを含むマルチプロセッサシステムにおいて,複数の作用物が同時にバスにアクセスできないことは,周知の技術常識である(例えば,甲12)から,上記のような問題が生じることは考えられない。
これに対し,被告は,「バスロック機能は,他の作用物のバスに対するすべてのアクセスを禁止するものであるから,バスにアクセスできない他の作用物は,バスを占有した作用物の書き込み信号を検知し得ない。したがって,本願発明のものにバスロック機構があると,本願発明の機能を阻害する。」旨主張する。しかしながら,バスロック機能は,他のCPUのバスの使用を禁止するものであり,他のCPUがバス上の信号をコンパレータで検知するのに,バスへのアクセス権を必要とすることは考えられないし,他のCPUのコンパレータの検出動作がアクセス権を有するCPUのバスアクセス動作に反するものであるとも認められない。
また,被告は,「バスロック機構をどのように組み込むかについての具体的構成が記載されていない。」旨主張する。しかしながら,バスロック機構自体は周知の技術常識であるところ,本願発明は,バスロック機構を前提としたものであって,特段,バスロック機構と矛盾する原理や機能を有するものではないから,本願発明にバスロック機構をどのように組み込むかについての具体的構成が本願明細書に開示されていなくても,当業者であれば,本願発明を容易に実施することができるものというべきである。
エ 被告は,「ある作用物において,SB20をアクセスしないレジスタ演算等の処理が行われている場合には,SAEN信号がLとなり,ワイアード・オア結合されたMC0*〜MC3*には常に1が出力される。これによって,コンパレータ29の入力がすべて1に固定されるので,他の作用物がメモリ24にワード書き込みでアクセスしたとしても,その書き込み種別がMC0*〜MC3*に反映されず,正常にその書き込みを判別することができなくなる。」旨主張する。
本願明細書には,上記のように,「バッファ26c乃至26fはSB20に4ビットメモリ制御信号(MC0*乃至MC3*)を与え,信号名に続く星印は,従来の様式で論理零又は以下のときに信号はアサートされる(asserted)ことを示す」(前記(1)カ)と記載されており,このことは,MC0*〜MC3*の信号は,論理0のときにその信号が意味をもつこと(いわゆる負論理)を表している。
また,「好ましくはバッファ26はオープン制御装置形式のデバイスであり,そこではそのようなワイヤーオアド接続は容易になされている」(前記(1)カ)ものであり,バッファ26aと26bはオープンコレクタバッファである(前記(1)ケ〔10頁14行〕)から,バッファ26の出力が,論理0の場合は接地され,論理1の場合はオープンであることも記載されている。
そうすると,SAEN信号がLレベルとなれば,NANDバッファ26a〜26fの出力は論理1となるが,この状態は,本願明細書にいう「デアサート」(出力オープン)であるから,制御信号MC0*〜MC3*の状態を強制しないものであり,他の作用物がSB20のラインに論理0の「アサート」(出力接地)信号を送出すれば,MC0*〜MC3*はこれを反映して論理0の状態となり,コンパレータで検知できることは明らかである。
また,「もしUNFWW*がアサートされなければ,FWWがアサートされている間はANDゲート28の出力は高である。この高は,SAENがアサートされているのと関連し,オープンコレクタバッファ26aと26bの出力の両方が低であるようにする。これらの出力の各々に結合されたワイヤーオアドノードは従って論理低に強制され,そしてメモリ制御信号がメモリ制御装置22へのワード書き込み(MC0*乃至MC3*すべて低)として現れる結果となる。」(前記(1)ケ)との記載によれば,強制ワード書き込み信号(FWW信号)が出力されると,NANDバッファ26a及び26bは論理0の出力をMC3*及びMC2*に出力し,これにより,NANDバッファ26c及び26dの出力が仮に論理1であっても,MC3*及びMC2*は論理0となり,ワード書き込みを表すことになるものであるから,この観点からも,上記のとおり,NANDバッファ26a〜26fの出力が論理1の状態は,「デアサート」(出力オープン)であって,制御信号MC0*〜MC3*の状態を強制しないものであり,他の作用物が論理0の「アサート」(出力接地)信号を送出すれば,MC0*〜MC3*はこれを反映して論理0の状態となることが明らかである。
したがって,「MC0*〜MC3*に1が出力されると,コンパレータ29の入力がすべて1に固定される」ことはない。
オ 被告は,「SXWP信号は,JKF/Fのために2クロック分遅れてUNFWW信号となるところ,この間にも,当該作用物のFIFOを含め他の作用物のFIFOからも,本来無効にされるべきワード書き込みのためのデータ,アドレス,制御信号が出力され得るとの問題がある。」旨主張する。しかしながら,コンパレータ29がSXWP信号を検出した時点では,当該書き込みを行った別の作用物(CPUn)がバスのアクセス権を有しており,他の作用物がバスのアクセス権を得るまでに一定の時間が必要であることは明らかである。上記2クロック分の時間は,この点も考慮したものと考えられるから,被告の主張するような問題が生じるとは認められない。また,仮に,被告の主張するような問題が生じ得るとしても,そのような問題は,当業者であれば,2クロック分の時間を適宜調整することにより,容易に解決し得ることであるから,それによって,当業者が本願発明を容易に実施することができないということはできない。
これに対し,被告は,「CPUnがメインメモリへデータを書き込み,その後にCPU1がバスアクセス権を得るまでの時間が,CPU1における書き込み方法の変更のために要する2クロック分の遅延時間よりも長いとすると,その間に,SXWP信号のない状態がMC0*〜MC3*に伝搬されているから,新たにバスを占有したCPU1は,SXWP信号を検出することができない。」旨主張する。この主張は,2クロックの遅延時間中に,SXWP信号を伝達するJKF/F30,36のK入力にHレベルの信号が入力し,2クロックの遅延時間経過後は,JKF/F30,36がクリアされてしまい,強制ワード書き込みを無効にすることができない旨の主張と解される。しかるに,本願明細書の図2には,JKF/F30のK入力には,SXWP信号とCLRXWP信号(外部書き込み保留クリア信号)を入力とする論理ゲート32の出力が入力され,JKF/F36のK入力には,EMPTY*信号が入力されることが記載されているのみであり,書き込みを行う以前にCLRXWP信号(外部書き込み保留クリア信号)やEMPTY*信号によりJKF/F30,36がクリアされてしまう旨の記載は本願明細書には一切ないから,上記主張は,本願明細書の記載に基づかないものである。また,前記(2)のとおり,本願発明は,マルチプロセッサシステムにおいて,ある1つのCPUがデータを更新する際に,そのキャッシュ内に存在する更新されていない古いデータとマージしてワード書き込みを行う場合に生じる問題を解決することを目的とするものであるから,その目的に照らして,書き込みを行う以前にJKF/F30,36がクリアされてしまうような時点において,CLRXWP信号が出力されることは考えられない。
2 以上のとおり,本願明細書の発明の詳細な説明の記載不備に関する本件審決の判断は誤りであり,この誤りが本件審決の結論に影響を及ぼすことは明らかであるから,本件審決は取消しを免れない。
したがって,原告の本件請求は理由があるから,これを認容することとし,主文のとおり判決する。
裁判長裁判官 北山元章
裁判官 青柳馨
裁判官 沖中康人