【事件の表示】
　特願２００２−　２１７１８「インサーキットエミュレータ」拒絶査定不服審判事件〔平成１５年　８月　８日出願公開、特開２００３−２２３３３９〕について、次のとおり審決する。
【結　論】
　本件審判の請求は、成り立たない。
【理　由】
１．手続の経緯 
　本願は、平成１４年１月３０日の出願であって、平成１９年８月２０日付けで拒絶理由が通知され、同年１０月２６日付けで手続補正がなされたものの、平成２０年２月２５日付けで拒絶査定がなされた。これに対し、同年４月３日に拒絶査定に対する審判請求がなされたものである。
 
２．本願発明
　本願の請求項１に係る発明（以下、「本願発明」という。）は、平成１９年１０月２６日付け手続補正書で補正された明細書及び図面の記載からみて、その請求項１に記載されたとおりの次のものと認められる。
　
「複数個のＣＰＵ（１２，１３）を保有するマイクロプロセッサシステム（１０）をターゲットとしたインサーキットエミュレータであって、
　前記マイクロプロセッサシステム（１０）の各ＣＰＵ（１２，１３）に対応して用意されたＣＰＵ（２７，２８）毎にレジスタ（３０，３１）がそれぞれ用意されるとともに、外部装置（４０）の指令に基づいて一つのＣＰＵ（２７）が特定アドレスへのアクセスとなった時または特定データでのアクセスとなった時または特定のアクセス方式となった場合にそこでストップさせるブレークポイントであるとして最優先割り込み信号（ＮＭＩ）を出力する観測ポイント比較器（３２，３３）を備え、この観測ポイント比較器を通じて前記最優先割り込み信号（ＮＭＩ）が出力されると、当該ＣＰＵ（２７）が他のＣＰＵ（２８）に対応する前記レジスタ（３０）のデータをそれまでの観測非実行から実行に反転させ、このデータの反転動作を受けて対応するＣＰＵ（２８）が観測実行状態に移行するようにしたことを特徴とするインサーキットエミュレータ。」
　
３．引用例
　原査定の拒絶の理由に引用された特開平８−２０２５８０号公報（以下、「引用文献２」という。）には、以下の事項が図面と共に記載されている。
　
Ａ．「【０００１】
【産業上の利用分野】本発明は、エミュレータに関し、特に、２個以上の複数のマイクロコンピュータが使用される応用システムにおけるシステムデバッグに適用して有効な技術に関するものである。
【０００２】
【従来の技術】本発明者が検討したところによれば、ユーザが開発中の応用システムに２個以上の複数のマイクロコンピュータが使用されている、いわゆる、マルチＣＰＵ方式の応用システムにおけるデバッグは、たとえば、２個のマイクロコンピュータが使用された応用システムの場合、２台のエミュレータを用いて行っている。
【０００３】なお、この種のエミュレータについて詳しく述べてある例としては、株式会社日立製作所、平成５年７月発行、「Ｅ７０００  ＳＨ７０３２  ＳＨ７０３４エミュレータユーザーズマニュアル」がある。
【０００４】
【発明が解決しようとする課題】ところが、上記のようなマルチＣＰＵ方式の応用システムにおけるエミュレータのデバックでは、次のような問題点があることが本発明者により見い出された。
【０００５】すなわち、マルチＣＰＵ方式における応用システムを複数のエミュレータでエミュレートする場合では、同一のバスが使用されているために、高速動作時に容量性負荷が増加してしまい、高速動作が困難となる傾向にあり、ディレイが長時間となる恐れが生じてくる。
【０００６】また、複数のエミュレータを使用することによって、エミュレータの内蔵機能を共有することが簡単なインターフェイスにより実現することが困難となっている。
【０００７】本発明の目的は、複数のマイクロコンピュータが使用されているマルチＣＰＵ方式の応用システムにおけるエミュレーションを１台のエミュレータにより行うことのできるエミュレータを提供することにある。
【０００８】本発明の前記ならびにその他の目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【０００９】
【課題を解決するための手段】本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、以下のとおりである。
【００１０】すなわち、本発明のエミュレータは、１台のエミュレータに応用システムに設けられたマイクロコンピュータの機能を代行するスレーブマイクロコンピュータを複数のマイクロコンピュータと見合った数だけ設け、マルチＣＰＵ方式の応用システムのデバッグを行うものである。」
　
Ｂ．「【００１９】（実施例１）図１は、本発明の実施例１によるエミュレータと応用システムとの接続図、図２は、本発明の実施例１によるエミュレータの要部ブロック図、図３は、本発明の実施例１によるエミュレータにおけるクロック発振回路およびリセット回路の回路図である。
【００２０】本実施例１において、ユーザが開発中の複数のマイクロコンピュータが設けられた応用システム１とソフトウェア開発用の親計算機であるパーソナルコンピュータ２との間には、ソフトウェアおよびハードウェアのデバッグを行うエミュレータ３が所定のケーブルＣＡ１，ＣＡ２により接続されている。
【００２１】ここで、本実施例において、応用システム１は２個のマイクロコンピュータ（図示せず）が設けられている２ＣＰＵ方式とする。
【００２２】また、このエミュレータ３は、マイクロコンピュータのＣＰＵコアをサポートする部分などＡＳ（Ａｐｐｉｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ）化に係わらないエミュレータユニット３ａと、周辺機能の疑似回路などのＡＳ化により変化するターゲットプローブ３ｂとに分割され、エミュレータユニット３ａとターゲットプローブ３ｂ間も所定のケーブルＣＡ３によって接続されている。
【００２３】さらに、エミュレータユニット３ａは、エミュレータの制御を司るマスタマイクロコンピュータ、パーソナルコンピュータ２とのデータ通信を行うシリアルインタフェース部、プログラムの実行、トレースの停止条件を設定し、条件成立時にプログラムまたはトレースを停止させるブレークポイント制御部などの図示しない回路によって構成されている。
【００２４】また、ターゲットプローブ３ｂは、図２に示すように、２個のマイクロコンピュータの内、一方のマイクロコンピュータであるターゲットマイコンの機能を代行するスレーブマイクロコンピュータ（以下、スレーブマイコン）４および他方のマイクロコンピュータであるターゲットマイコンの機能を代行するスレーブマイコン５が設けられている。」
　
Ｃ．「【００３８】ここで、このクロック発振回路１６において、応用システム１に設けられた発振器を使用する場合につて説明する。
【００３９】応用システム１（図１に示す）に設けられた発振器を使用するには、たとえば、ユーザがパーソナルコンピュータ２によって応用システム１に設けられた発振器を選択するコマンドを入力する。」
　
Ｄ．「【００５４】ここで、応用システム１から出力された第２のリセット信号によるスレーブマイコン４，５のリセットを行う場合について説明する。
【００５５】まず、パーソナルコンピュータ２によって、ユーザが応用システム１から出力される第２のリセット信号によりスレーブマイコン４，５のリセットを行うコマンドを入力する。」
　
（あ）上記Ａの記載によれば、引用文献２のものはマルチＣＰＵ方式の応用システムのデバッグを１台のエミュレータで行うことができるものである。
　
（い）上記Ｂ及び図１の記載によれば、エミュレータのターゲットプローブには、ターゲットマイコンの機能を代行する２個のスレーブマイクロコンピュータが設けられている。また、エミュレータのエミュレータユニットには、条件成立時にプログラムを停止させるブレークポイント制御部が設けられている。
　
（う）上記Ｃ．Ｄの記載によれば、ターゲットプローブの発振器の選択やリセット信号の切り換えはユーザがパーソナルコンピュータから入力するコマンドによって行われているから、エミュレータユニットに接続されたパーソナルコンピュータはエミュレータに指令を与えることができるものである。
　
　以上より、引用文献２には次の発明（以下、「引用発明」という。）が記載されている。
　
　マルチＣＰＵ方式の応用システムをデバッグする１台のエミュレータであって、
　該エミュレータには、応用システムに設けられたマルチＣＰＵの機能を代行する複数のスレーブマイクロコンピュータを有するターゲットプローブと、
　パーソナルコンピュータと接続され、条件成立時にプログラムを停止させるブレークポイント制御部を有するエミュレータユニットが設けられ、
　ユーザはパーソナルコンピュータによって前記エミュレータに指令を与えることができるエミュレータ
　
　また、原査定の拒絶の理由に引用された特開平６−３３２７４７号公報（以下、「引用文献１」という。）には、以下の事項が図面と共に記載されている。
　
Ｅ．「【０００１】
【産業上の利用分野】本発明は、メモリを共有する密結合型マルチプロセッサシステムのプログラムデバッグ方法に関し、特にオペレーティング・システムのデバッグ方法に関する。
【０００２】
【従来の技術】プログラムのデバッグ方法としては従来より種々の方法が提案されているが、その中で、マルチプロセッサシステムのプログラムデバッグに適用可能な技術としては、例えば特開昭６０−２０７９３７号公報に見られるように、サポートプロセッサと称される特別なプロセッサを、デバッグ対象となるプログラムが動作するプロセッサに接続して、このサポートプロセッサ上でデバッガを動作させることにより、デバッグを進める方法がある。
【０００３】
【発明が解決しようとする課題】このような従来方法によれば、マルチプロセッサシステムのプログラムデバッグにおいても、シングルプロセッサシステムの場合と同様に、デバッガは１つのプロセッサのみを意識していれば済むため、デバッガ自体の構造が簡単になるという。しかしながら、このような従来方法では、サポートプロセッサといった特別なプロセッサが必要になる上、複数のプロセッサが同時並行的に動作するというマルチプロセッサシステムの特徴を踏まえたデバッグが行えない。
【０００４】即ち、マルチプロセッサシステムのオペレーティング・システム（ＯＳ）のデバッグにおいては、或るクリティカルリージョン（排他の必要な部分）の排他が十分かどうかを確認することが必要であり、そのためには、複数のプロセッサが一斉に同一のクリティカルリージョンを実行しようとするタイミングを作る必要があるが、従来方法では、そのようなタイミングを作ることは困難である。」
　
Ｆ．「【００３１】（３）ブレークポイントの設定（図１，図２，図５参照）
オペレータがデバッガ１１１に対してデバッガ用コンソール１７から、オペレーティング・システム１１０内のブレークポイントを設定すべき箇所のアドレス、及びオペレーティング・システム１１０実行中のプロセッサがブレークポイントとして指定されたアドレスを実行しようとしたときに全プロセッサを停止させるのか或いはブレークポイント例外を発生させたプロセッサのみ停止させるのかを指定したコマンドを入力すると、デバッガ基本部２２は、共有メモリ１６上のオペレーティング・システム１１０の該当するアドレスの内容をデバッガによるブレークポイント命令で書き換えることによりブレークポイントを設定する。また、ブレークポイント例外時に、ブレークポイント例外を発生したプロセッサのみ停止させるのか、或いは全プロセッサを停止させるのかを示す停止モード指示データを共有メモリ１６上の所定の領域に設定しておく。なお、オペレーティング・システム１１０にブレークポイントを設定する場合、上記（１）に示した方法でプロセッサ１１〜１４の動作を停止した状態で行うのが望ましい。
【００３２】さて、上述のようにオペレーティング・システム１１０にブレークポイントが設定された後、プロセッサ１１〜１４が全て実行されている状態において、オペレーティング・システム１１０実行中の或るプロセッサ（例えばプロセッサ１１とする）がブレークポイントとして指定されたアドレスを実行すると、ブレークポイント例外が発生し（図５のＳ２１）。ブレークポイント例外処理が行われる。ブレークポイント例外処理では、例外発生原因となったブレークポイントがデバッガ１１１の設定によるものであるかどうかを、例えばブレークポイント命令のオペランドによって判断し（Ｓ２２）、デバッガ１１１による設定の場合、更に全プロセッサを停止するのか、例外発生プロセッサのみ停止するのかを共有メモリ１６上の上記停止モード指示データから判断する（Ｓ２３）。
【００３３】全プロセッサを停止する場合、プロセッサ１１は、プロセッサ間割り込みを使って、デバッガ動作用プロセッサ１５以外の残りの全プロセッサ１２〜１４に対して、デバッガ１１１がプロセッサ動作停止手段２３を使って他のプロセッサを停止したのと同じ方式で動作停止を指示する（Ｓ２４）。このため、動作停止指示を受けたプロセッサ１２〜１４は、停止指示がデバッガ１１１から直接来た場合と同様に、自プロセッサの動作を停止状態とした後、応答をプロセッサ１５に返すことになる。その後、プロセッサ１１自身は、共有メモリ１６上のプロセッサ１５との間のプロセッサ間通信情報格納域へブレークポイントで停止した旨を書き込み（Ｓ２５）、プロセッサ１５へプロセッサ間割り込みを発行し（Ｓ２６）、前述と同様に共有メモリ１６上の所定の領域をリードするループに入って自プロセッサ１１を停止状態とする（Ｓ２７）。」
　
　上記Ｅ．Ｆの記載によれば、引用文献１には、
「マルチプロセッサシステムのプログラムのデバッグに適用する技術として、全てのプロセッサが実行されているときに、あるプロセッサがブレークポイントを指定されたアドレスを実行すると、ブレークポイント例外を発生し、他のプロセッサに対して、プロセッサ間割り込みを使って全てのプロセッサを停止状態とする技術」（以下、「引用文献１に記載の技術」という。）
が記載されている。
　
  また、原査定の拒絶の理由に引用された特開平４−１０１２３９号公報（以下、「引用文献３」という。）には、以下の事項が図面と共に記載されている。
　
Ｇ．「第１図に示す情報処理装置のデバッグ方式は、接続されたデバッグ機器３からの停止信号６を受信したとき、スレーブプロセッサ４に対する最優先割込みレベルを設定し、最優先割込みレベル信号７を送出する最優先割込みレベル信号送出手段を有するマスタプロセッサ１、最優先割込みレベル信号７を受信して停止割込み信号８を出力する割込みレベル設定回路２、最優先割込みレベル信号７を受信したとき、有効制御情報をあらかじめ定められた有効情報域にコピーする制御情報コピー手段を有したスレーブプロセッサ４、制御情報域９及び有効情報域１０を有するメモリ５から構成されている。」
　
　上記Ｇの記載によれば、引用文献３には、
「デバッグ時のプロセッサの停止のために最優先割込みレベルを用いる技術」（以下、「引用文献３に記載の技術」という。）が記載されている。
　
３．対比
　本願発明と引用発明とを対比すると、
　引用発明の「マルチＣＰＵ」「応用システム」「複数のスレーブマイクロコンピュータ」「パーソナルコンピュータ」は、それぞれ、本願発明の「複数のＣＰＵ（１２，１３）」「マイクロプロセッサシステム」「前記マイクロプロセッサシステム（１０）の各ＣＰＵ（１２，１３）に対応して用意されたＣＰＵ（２７，２８）」「外部装置（４０）」に相当し、
インサーキットエミュレータ とは、マイクロプロセッサの機能をエミュレートするために実際のマイクロプロセッサと同じ機能を実装したものであるから、引用発明の「エミュレータ」は本願発明の「インサーキットエミュレータ」に相当するものである。
　デバッグのための停止条件にはアドレス一致の他に種々の条件があることは周知のことであるから、本願発明の「 ＣＰＵ（２７）が特定アドレスへのアクセスとなった時または特定データでのアクセスとなった時または特定のアクセス方式となった場合にそこでストップさせるブレークポイント」と引用発明の「条件成立時にプログラムを停止させるブレークポイント」は同等のものである。
　そして、引用発明のブレークポイント制御部はブレークポイントに達したときにマイクロコンピュータを停止するものであり、本願発明の「観測実行状態」とは、ＣＰＵが停止した状態のことであるから、本願発明の
「ＣＰＵ（２７，２８）毎にレジスタ（３０，３１）がそれぞれ用意されるとともに、最優先割り込み信号（ＮＭＩ）を出力する観測ポイント比較器（３２，３３）を備え、この観測ポイント比較器を通じて前記最優先割り込み信号（ＮＭＩ）が出力されると、当該ＣＰＵ（２７）が他のＣＰＵ（２８）に対応する前記レジスタ（３０）のデータをそれまでの観測非実行から実行に反転させ、このデータの反転動作を受けて対応するＣＰＵ（２８）が観測実行状態に移行する」ことと、引用発明の「ブレークポイント制御部」の動作態様とは、ブレークポイントでＣＰＵを停止させる点で共通している。
　
　よって、本願発明と引用発明とは次の一致点で一致し、相違点で相違している。
　
（一致点）
　複数個のＣＰＵ（１２，１３）を保有するマイクロプロセッサシステム（１０）をターゲットとしたインサーキットエミュレータであって、
　前記マイクロプロセッサシステム（１０）の各ＣＰＵ（１２，１３）に対応して用意されたＣＰＵ（２７，２８）に対し、外部装置（４０）の指令に基づいて一つのＣＰＵ（２７）が特定アドレスへのアクセスとなった時または特定データでのアクセスとなった時または特定のアクセス方式となった場合にそこでストップさせるブレークポイントであるとしてＣＰＵを停止させることを特徴とするインサーキットエミュレータ
　
（相違点）
　ブレークポイントでＣＰＵを停止させる態様が、本願発明では 「ＣＰＵ（２７，２８）毎にレジスタ（３０，３１）がそれぞれ用意されるとともに、最優先割り込み信号（ＮＭＩ）を出力する観測ポイント比較器（３２，３３）を備え、この観測ポイント比較器を通じて前記最優先割り込み信号（ＮＭＩ）が出力されると、当該ＣＰＵ（２７）が他のＣＰＵ（２８）に対応する前記レジスタ（３０）のデータをそれまでの観測非実行から実行に反転させ、このデータの反転動作を受けて対応するＣＰＵ（２８）が観測実行状態に移行する」ものであるのに対し、引用発明の「ブレークポイント制御部」がどのような態様のものであるか不明である点
 　 
４．相違点についての検討
　マルチプロセッサシステムのデバッグのためにＣＰＵを停止させる場合、並列動作している複数のＣＰＵを同時に停止させる必要があることは、
引用文献１の【０００２】〜【０００４】の記載や特開平６−７５８２０号公報の【０００２】
「【従来の技術】従来よりプログラムをデバッグするためのデバッガはよく知られている。デバッガとしては各種存在するが、基本的な機能の１つにブレークポイントがある。ブレークポイントとは、あらかじめ指定したアドレス（ブレークポイント）を実行したとき、プログラムの実行を停止（ブレーク）し、デバッガを呼び出す機能である。ブレークポイント機能は、一般的にブレークさせたいアドレスの命令を、実行すると例外を発生するような命令（例えばモトローラ社製の６８０００系プロセッサなら不当命令、ＭＩＰＳのＲＩＳＣプロセッサならBREAK 命令など）に書き換えることにより実現される。ブレークポイント機能は、シングルプロセッサシステムのデバッグのみならず、マルチプロセッサシステムのデバッグにも不可欠な機能である。マルチプロセッサシステムの場合、あるプロセッサがブレークポイントを実行した時にそのプロセッサのみならず全プロセッサの実行を停止させる必要がある。したがって、ブレークポイントを実行したプロセッサの例外処理の中で、他のすべてのプロセッサへ割り込み（ブロードキャスト）を発生させる。」
の記載に示されるように公知の課題である。
　従って、マルチプロセッサシステムを対象とする引用発明の「ブレークポイント制御部」が２つのＣＰＵを同時に停止させる機能を必要とすることは当然のことである。２つのＣＰＵを同時に停止させる手法としては、引用文献１に記載の技術に示されるように、あるプロセッサがブレークポイントを指定されたアドレスを実行すると、ブレークポイント例外を発生し、他のプロセッサに対して、プロセッサ間割り込みを使って全てのプロセッサを停止状態とする技術が知られている。そして、ブレークポイント検出から２つのＣＰＵを停止する手段を実現するものとしては、ブレークポイントに達したことを検知する手段として一つのＣＰＵがアクセスするアドレスを特定アドレスと比較する比較器を用いることは通常のことであり、また、プロセッサ間割り込みを最優先割り込みレベルとすることも引用文献３に記載の技術に示されるように周知のものであり、更に、割り込み信号をフリップフロップでラッチしてプロセッサに入力することも通常の形態にすぎない（例えば、特開平２−５９８４７号公報の従来例を参照）ものであるから、引用発明に引用文献１に記載された技術を適用する際に、その実現手段として上記各周知技術を用いて、ＣＰＵ（２７，２８）毎にレジスタ（３０，３１）がそれぞれ用意されるとともに、最優先割り込み信号（ＮＭＩ）を出力する観測ポイント比較器（３２，３３）を備え、この観測ポイント比較器を通じて前記最優先割り込み信号（ＮＭＩ）が出力されると、当該ＣＰＵ（２７）が他のＣＰＵ（２８）に対応する前記レジスタ（３０）のデータをそれまでの観測非実行から実行に反転させ、このデータの反転動作を受けて対応するＣＰＵ（２８）が観測実行状態に移行するように構成することは容易になし得ることである。
　従って、この相違点を格別のものということはできない。
　
　そして、本願発明の作用効果も、各引用文献及び周知技術から当業者が容易に予測できる範囲のものである。
　
５．むすび
　以上のとおりであるから、本願発明は引用文献１−３に記載された発明及び周知技術に基づいて容易に発明をすることができたものであり、特許法第２９条第２項の規定により特許を受けることができない。
　よって、結論のとおり審決する。