【事件の表示】
　特願２００９−５２３９２４「プロセッサ命令セット動作モードを比較するデバッグ回路」拒絶査定不服審判事件〔平成２０年　２月２１日国際公開、ＷＯ２００８／０２１７６３、平成２２年　１月　７日国内公表、特表２０１０−５００６６１、請求項の数（２０）〕について、次のとおり審決する。
【結　論】
　原査定を取り消す。
　本願の発明は、特許すべきものとする。
【理　由】
１．手続の経緯 
　本願は、平成１９年８月３日を国際出願日（優先権主張日：２００６年８月９日、米国）とする出願であって、平成２３年８月２９日付けで拒絶理由通知がなされ、平成２４年１月６日付けで意見書の提出とともに手続補正がなされたが、同年６月６日付けで拒絶査定がなされ、これに対して平成２４年１０月１２日付けで拒絶査定不服審判請求がなされたものである。 
 　 
２．本願発明
　本願の請求項１乃至２０に係る発明は、平成２４年１月６日付けの手続補正で補正された特許請求の範囲に記載された事項により特定される、以下のとおりのものである。
「【請求項１】
　少なくとも２つの異なる命令セット動作モードを有するプロセッサ上で、複数の命令を備えるソフトウェアコードをデバッグする方法であって、
　任意のコード命令の実行前に、ターゲット命令セット動作モードを受け取ることと、
　コード命令を実行し、実行された各命令について、カレントプロセッサ命令セット動作モードと、前記ターゲット命令セット動作モードとを比較することと、
　前記カレントプロセッサ命令セット動作モードと、前記ターゲット命令セット動作モードとが一致した場合、警告をトリガすることと、
　任意のコード命令の実行前に、ターゲットアドレス範囲を受け取ることと、
　実行された各命令について、カレント命令アドレスと、前記ターゲットアドレス範囲とを比較することと、
　前記カレントプロセッサ命令セット動作モードが前記ターゲット命令セット動作モードと一致し、前記カレント命令アドレスが前記ターゲットアドレス範囲内である場合のみ、前記警告をトリガすることと、
を備え、前記警告は、命令実行を停止することを備える方法。
　　【請求項２】
　請求項１に記載の方法において、
　前記警告は、追跡動作を制御することを備える方法。
　　【請求項３】
　請求項１に記載の方法において、
　前記警告は、例外を引き起こすことを備える方法。
　　【請求項４】
　請求項１に記載の方法において、
　前記警告は、前記カレントプロセッサ命令セット動作モードと、前記ターゲット命令セット動作モードとの間の一致を示す信号を出力することを備える方法。
　　【請求項５】
　請求項１に記載の方法において、
　前記警告は、前記カレントプロセッサ命令セット動作モードが前記ターゲット命令セット動作モードと一致する命令のアドレスを出力することを備える方法。
　　【請求項６】
　少なくとも第１及び第２の命令セット動作モードを有するプロセッサ上でソフトウェアを実行する方法であって、
　前記プロセッサが、前記第１の命令セット動作モードから前記第２の命令セット動作モードへ切り換わるアドレスを特定することと、
　前記特定に応答して警告をトリガすることと、
　前記プロセッサが、前記第１の命令セット動作モードから前記第２の命令セット動作モードへ切り換わるアドレスを特定することは、前記アドレスが予め定められたアドレス範囲内にあった場合のみ、前記アドレスを特定することと、
を備え、前記警告は、命令実行を停止することを備える方法。
　　【請求項７】
　請求項６に記載の方法において、
　前記警告は、追跡動作を制御することを備える方法。
　　【請求項８】
　請求項６に記載の方法において、
　前記警告は、例外を引き起こすことを備える方法。
　　【請求項９】
　請求項６に記載の方法において、
　前記警告は、命令セット動作モードにおける変更を示す信号を出力することを備える方法。
　　【請求項１０】
　請求項６に記載の方法において、
　前記警告は、特定された前記命令のアドレスを出力することを備える方法。
　　【請求項１１】
　各々が異なる命令セット動作モードにある２つ又はそれ以上の命令セット符号化に従って命令を実行するように動作するプロセッサであって、
　カレント命令セット動作モードインジケータと、
　ターゲット命令セット動作モードインジケータを格納するように動作するデータ記憶場所と、
　カレント命令セット動作モードに従って命令を実行するように動作する実行ユニットと、
　各命令の実行中、前記カレント命令セット動作モードと前記ターゲット命令セット動作モードとを比較し、前記カレント命令セット動作モードが前記ターゲット命令セット動作モードと一致する場合、インジケーションを出力するように動作する比較回路と、
　ターゲットアドレス範囲を格納するように動作するデータ記憶場所と、
を備え、
　前記比較回路は、前記カレント命令セット動作モードが前記ターゲット命令セット動作モードと一致し、かつ現在実行されている命令のアドレスが前記ターゲットアドレス範囲内にある場合のみ、インジケーションを出力するように動作し、
　前記インジケーションは、命令実行を停止するように動作する信号を備えるプロセッサ。
　　【請求項１２】
　請求項１１に記載のプロセッサにおいて、
　前記インジケーションは、追跡動作を制御するように動作する信号を備えるプロセッサ。
　　【請求項１３】
　請求項１１記載のプロセッサにおいて、
　前記インジケーションは、例外を引き起こすように動作する信号を備えるプロセッサ。
　　【請求項１４】
　請求項１１に記載のプロセッサにおいて、
　前記インジケーションは、前記カレント命令セット動作モードが、前記ターゲット命令セット動作モードと一致することを示す信号を備えるプロセッサ。
　　【請求項１５】
　請求項１１に記載のプロセッサにおいて、
　前記インジケーションは、前記カレント命令セット動作モードと前記ターゲット命令セット動作モードとの間で一致が検出された場合、実行中の命令のアドレスを備えるプロセッサ。
　　【請求項１６】
　２つ又はそれ以上の命令セット符号化の各々を、異なる命令セット動作モードで実行するように動作するプロセッサであって、
　前記命令セット動作モードにおける変更を検出し、前記検出に応答して、前記命令セット動作モードの変更と、前記変更が起こった命令アドレスとのインジケーションを出力するように動作する比較回路と、
を備え、
　前記比較回路は、前記変更が起こった命令アドレスが、予め定められたアドレス範囲内にある場合のみ、前記命令セット動作モードにおける変更を検出し、
　前記インジケーションは、命令実行を停止するように動作する信号を備えるプロセッサ。
　　【請求項１７】
　請求項１６に記載のプロセッサにおいて、
　前記インジケーションは、追跡動作を制御するように動作する信号を備えるプロセッサ。
　　【請求項１８】
　請求項１６に記載のプロセッサにおいて、
　前記インジケーションは、例外を引き起こすように動作する信号を備えるプロセッサ。
　　【請求項１９】
　請求項１６に記載のプロセッサにおいて、
　前記インジケーションは、命令セット動作モードにおける変更を示す信号を備えるプロセッサ。
　　【請求項２０】
　請求項１６に記載のプロセッサにおいて、
　前記インジケーションは、前記命令セット動作モード変更アドレスを備えるプロセッサ。」
  　
３．原査定の理由の概要
理由１　・・・（中略）・・・
理由２　・・・（中略）・・・　
理由３　・・・（中略）・・・
理由４　この出願の下記の請求項に係る発明は、その出願前に日本国内又は外国において、頒布された下記の刊行物に記載された発明又は電気通信回線を通じて公衆に利用可能となった発明に基いて、その出願前にその発明の属する技術の分野における通常の知識を有する者が容易に発明をすることができたものであるから、特許法第２９条第２項の規定により特許を受けることができない。
     　
　　　　　記　　　（引用文献等については引用文献等一覧参照）
第１　・・・（中略）・・・
第２　・・・（中略）・・・
第３　・・・（中略）・・・
第４　理由４について
・・・（中略）・・・
   　
　　　　　　　　　　　引　用　文　献　等　一　覧
文献１．特開２００２−３０４２９１号公報
文献２．特開平０６−２０２９０７号公報
文献３．特開２００３−２５６２３７号公報
　　
４．当審の判断
４−１．請求項１に係る発明について　
（１）引用例
（１−１）原査定の拒絶の理由に引用され、本願の優先権主張日前に出願公開された特開２００２−３０４２９１号公報（以下、「引用例１」という。）には、図面とともに以下の各記載がある。なお、下線は当審で付加したものである。
（ａ）「【請求項１７】　命令セット情報の格納方法であって、処理回路が処理命令の複数の命令セットのいずれかからの処理命令を実行するようにされており、各処理命令はメモリ内のその処理命令の場所を識別する命令アドレスにより指定され、異なる命令セット内の処理命令に対して命令アドレス内に異なる命令アドレスビット数を指定する必要があり、前記方法は、
その命令に対応する命令セットによって決まるビットパターンを指定された命令アドレスビットにプリペンドすることにより指定された命令アドレスビットをｎ−ビットへ拡張する、
のと等価の計算を実施することにより、その命令に対応する命令セットの表示を有する命令アドレスを符号化してｎ−ビット符号化命令アドレスを発生するステップを含む方法。」
（ｂ）「【００３９】図１は
オンチップトレーシング機構を提供するデータ処理システム
　・・・（中略）・・・
【００４２】同期論理１００が着信信号をオンチップトレースモジュール内で使用するのにより適切な信号の内部バージョンへ変換するようにされている。次に、これらの内部バージョンはトリガー１１０および制御論理１２０へ送られるが、トリガー１１０および制御論理１２０は必ずしも同じ信号を受信する必要はないことがお判りであろう。基本的に、
トリガー１１０はトリガー可能なイベント、例えば、命令アドレス、データ値、レジスタアクセス、等に関連するデータを受信する必要がある。制御論理１２０はトリガー１１０により発せられるイネーブル信号に応じてトレースする必要がある任意のデータを受信する必要がある。
【００４３】トレースストリームの発生を来たさなければならないイベントを検出する時は常に、トリガー１１０はパス１３５を介して制御論理１２０へイネーブル信号を送ってトレースをターンオンオフさせる。
制御論理はパス１４５を介して必要なトレースデータをトレースバァッファへ出力することにより反応する。
【００４４】好ましい実施例では、オンチップトレースモジュール１０の
制御論理１２０には命令アドレスを有する命令セット情報を符号化し、次にこのような符号化命令アドレスをパス１４５を介してトレースバァッファへ出力する前に圧縮できるようにする
【００４５】制御論理１２０内で実施される符号化が図３に略示されており、プロセッサコア６により使用される３つの異なる命令セットは“ＡＲＭ”，“Ｔｈｕｍｂ”および“Ｊａｖａ（登録商標）”の名称で識別されている。
　・・・（中略）・・・
【００４７】本発明の実施例では、論理１値は各命令アドレスの第３３ビットとしてプリペンド（ｐｒｅ−ｐｅｎｄｅｄ）される（すなわち、ビット位置３２に配置される）。次に、命令アドレスの任意の無関係な最下位ビットを除去するための適切な右シフトを適用することにより符号化命令アドレスが作り出される。Ｊａｖａ命令に対しては、３２ビット全てを指定する必要があるため、右シフトは実施されず、符号化命令アドレス２５０は論理１値をオリジナル３２ビットＪａｖａ命令アドレス２２０へプリペンドして与えられる単なる３３ビット値である。Ｔｈｕｍｂ命令に対しては、最下位ビットを除去するために１の右シフトが適用され、それにより最上位２ビットが“０１”である３３ビット符号化命令アドレス２４０が作り出される。最後に、ＡＲＭ命令に対しては、最下位２ビットを除去するために２ビット位置の右シフトが適用され、それにより最上位３ビットが“００１”である３３ビット符号化命令アドレス２３０が作り出される。
【００４８】したがって、命令アドレスが関連する命令セットの表示が３３ビット符号化命令アドレスの最上位３ビットにより与えられることがお判りであろう。特に、最上位３ビットの“００１”は命令をＡＲＭ命令として識別し、“０１ｘ”は命令をＴｈｕｍｂ命令として識別し（ｘは任意値を示す）、最上位３ビットとしての“１ｘｘ”は命令をＪａｖａ命令として識別する。
【００４９】好ましい実施例では、３３−ビット符号化命令アドレスはパス１４５を介してトレースバァッファへ出力される前に、図４に略示された技術を使用して、圧縮される。
　・・・（中略）・・・
【００５６】図６は所要の符号化および圧縮を行う本発明の好ましい実施例に従ったオンチップトレースモジュール１０の制御論理１２０内に設けることができる論理のブロック図である。レジスタ６１０が設けられその最上位３ビット６０７は予め定められたビットパターン、好ましい実施例では“００１”、を格納する。レジスタ６１０の最下位３２ビットはパス６０２を介して３２−ビット命令アドレス６０５を受信する。さらに、パス６０３を介して通され
レジスタ６１０内に格納された３２−ビット命令アドレスが関連する命令を識別する命令セット識別子を格納するラッチ６３０が設けられる
      　
　上記（ａ）及び（ｂ）によると、引用例１には以下の発明（以下、「引用発明」という。）が記載されていると認められる。
「オンチップトレーシング機構を提供するデータ処理システムにおいて、
　命令を識別する命令セット識別子を格納するラッチが設けられ、
　制御論理はトリガー（例えば、命令アドレス、データ値、レジスタアクセス等）により発せられるイネーブル信号に応じてトレースする必要がある任意のデータを受信し、必要なトレースデータをトレースバァッファへ出力するものであり、さらに、制御論理には命令アドレスを有する命令セット情報を符号化し、次にこのような符号化命令アドレスをトレースバァッファへ出力する前に圧縮できるようにするものであり、
　命令セット情報の格納方法であって、
　処理回路が処理命令の複数の命令セットのいずれかからの処理命令を実行するようにされており、各処理命令はメモリ内のその処理命令の場所を識別する命令アドレスにより指定され、異なる命令セット内の処理命令に対して命令アドレス内に異なる命令アドレスビット数を指定する必要があり、前記方法は、
　その命令に対応する命令セットによって決まるビットパターンを指定された命令アドレスビットにプリペンドすることにより指定された命令アドレスビットをｎ−ビットへ拡張する、のと等価の計算を実施することにより、その命令に対応する命令セットの表示を有する命令アドレスを符号化してｎ−ビット符号化命令アドレスを発生するステップを含む方法。」
   　
（１−２）原査定の拒絶の理由に周知技術として引用され、本願の優先権主張日前に出願公開された特開平６−２０２９０７号公報（以下、「引用例２」という。）には、図面とともに以下の記載がある。なお、下線は当審で付加したものである。
（ｃ）「【００２０】以下、本実施例のデバッグ支援装置の作用の一例を説明する。
【００２１】まず、
アドレスブレイクを行う場合、目的のアドレス値を比較データラッチ６に設定し、マイクロプロセッサ３のアドレスバス１１をアドレス比較回路７により監視し、比較データラッチ６の内容と一致するか否かの判定を行う。
【００２２】次に、
アドレス比較回路７においてアドレスが一致したと判定された場合
目的のアドレスの命令語が、実行パイプライン１３において実行サイクルに入ったことを契機として、ホールド制御回路１４にホールド要求を出力し、当該ホールド制御回路１４により、マイクロプロセッサ３の実行動作を停止させる。
    　
（１−３）原査定の拒絶の理由に周知技術として引用され、本願の優先権主張日前に出願公開された特開２００３−２５６２３７号公報（以下、「引用例３」という。）には、図面とともに以下の各記載がある。なお、下線は当審で付加したものである。
（ｄ）「【００３１】ステップＳ４１１では、
プログラムが予め設定されているブレークポイントに到達したかを判断する。
【００３２】本実施の形態においては、
ブレイクポイントは、メモリ上の所定のアドレスにブレーク発生命令（デバッグ例外を発生させる命令）を書き込むことにより実現するものとする。ただし、デバッグ例外を発生させるアドレスを記憶するブレークポイント・レジスタと、このブレークポイント・レジスタの値とプログラムカウンタの値とを比較するコンパレータとを具備することにより、所定のアドレスにデバッグ例外を発生させる
    　
（２）対比
　そこで、本願の請求項１に係る発明（以下、本願発明という）と引用発明とを対比する。
（２−１）引用発明の「オンチップトレーシング機構を提供するデータ処理システムにおいて」、及び、「制御論理はトリガー（例えば、命令アドレス、データ値、レジスタアクセス等）により発せられるイネーブル信号に応じてトレースする必要がある任意のデータを受信し、必要なトレースデータをトレースバァッファへ出力するものであり」との記載は、いわゆるプログラム（ソフトウェアコード）のデバッグのために、トリガーに応じてプログラム（ソフトウェアコード）の命令実行順序を示すトレースデータをトレースバァッファへ出力するものである。
　そうすると、本願発明と引用発明は、後記する点を除いて、
「複数の命令を備えるソフトウェアコードをデバッグする方法」
である点で共通するものである。
（２−２）引用発明の「命令を識別する命令セット識別子を格納するラッチが設けられ」、「処理回路が処理命令の複数の命令セットのいずれかからの処理命令を実行するようにされており、各処理命令はメモリ内のその処理命令の場所を識別する命令アドレスにより指定され、異なる命令セット内の処理命令に対して命令アドレス内に異なる命令アドレスビット数を指定する必要があり」との記載、及び、上記（ｂ）の第【００４５】段落の「制御論理１２０内で実施される符号化が図３に略示されており、プロセッサコア６により使用される３つの異なる命令セットは“ＡＲＭ”，“Ｔｈｕｍｂ”および“Ｊａｖａ（登録商標）”の名称で識別されている。」との記載から、引用発明のデータ処理システムにおけるプロセッサは、３つの異なる命令セットを実行可能であり、現在実行中の命令セットが「命令セット識別子」としてラッチされることから、それぞれの動作モードを有していることは明らかである。
　そうすると、本願発明と引用発明は、後記する点を除いて、
「少なくとも２つの異なる命令セット動作モードを有するプロセッサ」
を備える点で共通するものである。
（２−３）引用発明の「命令を識別する命令セット識別子を格納するラッチが設けられ」との記載によると、現在実行中の命令が３つの異なる命令セットのどの命令セットであるのかを「命令セット識別子」として示すものであるから、この「命令セット識別子」は本願発明の「カレントプロセッサ命令セット動作モード」に相当するものである。
　そうすると、本願発明と引用発明は、後記する点を除いて、
「コード命令を実行し、実行された各命令について、カレントプロセッサ命令セット動作モード」
を有する点で共通するものである。
（２−４）引用発明の「制御論理はトリガー（例えば、命令アドレス、データ値、レジスタアクセス等）により発せられるイネーブル信号に応じてトレースする必要がある任意のデータを受信し、必要なトレースデータをトレースバァッファへ出力するものであり」との記載によれば、引用発明は命令の実行中に所定の条件に合致した場合にトリガーを発するものであり、このトリガーは次の処理に対する警告であるともいえる。
　そうすると、本願発明と引用発明は、後記する点を除いて、
「所定の条件に合致した場合に警告をトリガーする」
点で共通するものである。
（２−５）以上のことから、本願発明と引用発明とは、
「少なくとも２つの異なる命令セット動作モードを有するプロセッサ上で、複数の命令を備えるソフトウェアコードをデバッグする方法であって、
　コード命令を実行し、実行された各命令について、カレントプロセッサ命令セット動作モードを有し、
　所定の条件に合致した場合に警告をトリガーする、方法。」
　である点で一致し、以下の点で相違する。  
　　
［相違点１］
　本願発明では、「任意のコード命令の実行前に、ターゲット命令セット動作モードを受け取ることと、コード命令を実行し、実行された各命令について、カレントプロセッサ命令セット動作モードと、前記ターゲット命令セット動作モードとを比較することと、前記カレントプロセッサ命令セット動作モードと、前記ターゲット命令セット動作モードとが一致した場合、警告をトリガすることと、任意のコード命令の実行前に、ターゲットアドレス範囲を受け取ることと、実行された各命令について、カレント命令アドレスと、前記ターゲットアドレス範囲とを比較することと、前記カレントプロセッサ命令セット動作モードが前記ターゲット命令セット動作モードと一致し、前記カレント命令アドレスが前記ターゲットアドレス範囲内である場合のみ、前記警告をトリガすること」を備えているのに対し、引用発明ではそのようになっていない点。
［相違点２］
　本願発明では、「前記警告は、命令実行を停止すること」を備えているのに対し、引用発明ではそのようになっていない点。
   　
（３）当審の判断  
（３−１）［相違点１］について
　引用発明では、確かに複数の命令セットを実行可能であり、現在実行中の命令セットを識別するための「命令セット識別子」が使用されているものの、該「命令セット識別子」は「命令セットによって決まるビットパターンを指定された命令アドレスビットにプリペンドする」ために使用されるものであって、本願発明の「任意のコード命令の実行前に、ターゲット命令セット動作モードを受け取ることと、コード命令を実行し、実行された各命令について、カレントプロセッサ命令セット動作モードと、前記ターゲット命令セット動作モードとを比較すること」とは使用目的が明らかに異なるものである。
　また、引用例２として示されるように、プロセッサの命令アドレスを比較回路により監視し、所定のアドレスと一致した場合にプロセッサの動作を停止させることが周知技術であり、また、引用例３として示されるように、ブレークポイントに到達（所定の命令アドレスに到達）した際にデバッグ例外を発生させることが周知技術であったとしても、本願発明の特に「任意のコード命令の実行前に、ターゲット命令セット動作モードを受け取ることと、コード命令を実行し、実行された各命令について、カレントプロセッサ命令セット動作モードと、前記ターゲット命令セット動作モードとを比較することと、前記カレントプロセッサ命令セット動作モードと、前記ターゲット命令セット動作モードとが一致した場合、警告をトリガすること」の動機づけになるものとはいえないから、当該周知技術を引用発明に適用したとしても上記相違点１に係る構成を導き出せるものではなく、当業者が容易に想到しえたことであるとはいえないものである。
　したがって、上記相違点１に係る構成は、引用発明及び周知技術から当業者が容易に想到しえたといえないものである。
（３−２）［相違点２］について
　引用例２として示されるように、プロセッサの命令アドレスを比較回路により監視し、所定のアドレスと一致した場合にプロセッサの動作を停止させることは周知技術であり、所定の条件に合致した場合をトリガー（警告）としてプロセッサの動作を停止させることは適宜なしえたことであるから、引用発明に当該周知技術を適用することにより上記相違点２に係る構成とすることは、当業者であれば容易に想到しえたことである。
　したがって、上記相違点２に係る構成は格別のものではない。
   　
（４）まとめ
　以上のとおりであるから、本願の請求項１に係る発明は、引用発明及び周知技術に基づいて当業者が容易に発明をすることができたものとはいえないものである。
　　
４−２．請求項２乃至２０に係る発明について
　請求項２乃至２０に係る発明についても、上記引用発明及び周知技術に基づいて当業者が容易に発明をすることができたものとはいえないものである。
　　
５．むすび
　以上のとおり、本願の請求項１乃至２０に係る発明は、引用発明及び周知技術に基づいて当業者が容易に発明をすることができたものとすることができないから、原査定の理由によっては、本願を拒絶することはできない。
　また、他に本願を拒絶すべき理由を発見しない。
　　
　よって、結論のとおり審決する。