• ポートフォリオ機能


ポートフォリオを新規に作成して保存
既存のポートフォリオに追加保存

  • この表をプリントする
PDF PDFをダウンロード
審決分類 審判 査定不服 2項進歩性 取り消して特許、登録 G06F
管理番号 1286309
審判番号 不服2012-20166  
総通号数 173 
発行国 日本国特許庁(JP) 
公報種別 特許審決公報 
発行日 2014-05-30 
種別 拒絶査定不服の審決 
審判請求日 2012-10-12 
確定日 2014-04-15 
事件の表示 特願2009-523924「プロセッサ命令セット動作モードを比較するデバッグ回路」拒絶査定不服審判事件〔平成20年 2月21日国際公開、WO2008/021763、平成22年 1月 7日国内公表、特表2010-500661、請求項の数(20)〕について、次のとおり審決する。 
結論 原査定を取り消す。 本願の発明は、特許すべきものとする。 
理由 1.手続の経緯
本願は、平成19年8月3日を国際出願日(優先権主張日:2006年8月9日、米国)とする出願であって、平成23年8月29日付けで拒絶理由通知がなされ、平成24年1月6日付けで意見書の提出とともに手続補正がなされたが、同年6月6日付けで拒絶査定がなされ、これに対して平成24年10月12日付けで拒絶査定不服審判請求がなされたものである。

2.本願発明
本願の請求項1乃至20に係る発明は、平成24年1月6日付けの手続補正で補正された特許請求の範囲に記載された事項により特定される、以下のとおりのものである。
「【請求項1】
少なくとも2つの異なる命令セット動作モードを有するプロセッサ上で、複数の命令を備えるソフトウェアコードをデバッグする方法であって、
任意のコード命令の実行前に、ターゲット命令セット動作モードを受け取ることと、
コード命令を実行し、実行された各命令について、カレントプロセッサ命令セット動作モードと、前記ターゲット命令セット動作モードとを比較することと、
前記カレントプロセッサ命令セット動作モードと、前記ターゲット命令セット動作モードとが一致した場合、警告をトリガすることと、
任意のコード命令の実行前に、ターゲットアドレス範囲を受け取ることと、
実行された各命令について、カレント命令アドレスと、前記ターゲットアドレス範囲とを比較することと、
前記カレントプロセッサ命令セット動作モードが前記ターゲット命令セット動作モードと一致し、前記カレント命令アドレスが前記ターゲットアドレス範囲内である場合のみ、前記警告をトリガすることと、
を備え、前記警告は、命令実行を停止することを備える方法。
【請求項2】
請求項1に記載の方法において、
前記警告は、追跡動作を制御することを備える方法。
【請求項3】
請求項1に記載の方法において、
前記警告は、例外を引き起こすことを備える方法。
【請求項4】
請求項1に記載の方法において、
前記警告は、前記カレントプロセッサ命令セット動作モードと、前記ターゲット命令セット動作モードとの間の一致を示す信号を出力することを備える方法。
【請求項5】
請求項1に記載の方法において、
前記警告は、前記カレントプロセッサ命令セット動作モードが前記ターゲット命令セット動作モードと一致する命令のアドレスを出力することを備える方法。
【請求項6】
少なくとも第1及び第2の命令セット動作モードを有するプロセッサ上でソフトウェアを実行する方法であって、
前記プロセッサが、前記第1の命令セット動作モードから前記第2の命令セット動作モードへ切り換わるアドレスを特定することと、
前記特定に応答して警告をトリガすることと、
前記プロセッサが、前記第1の命令セット動作モードから前記第2の命令セット動作モードへ切り換わるアドレスを特定することは、前記アドレスが予め定められたアドレス範囲内にあった場合のみ、前記アドレスを特定することと、
を備え、前記警告は、命令実行を停止することを備える方法。
【請求項7】
請求項6に記載の方法において、
前記警告は、追跡動作を制御することを備える方法。
【請求項8】
請求項6に記載の方法において、
前記警告は、例外を引き起こすことを備える方法。
【請求項9】
請求項6に記載の方法において、
前記警告は、命令セット動作モードにおける変更を示す信号を出力することを備える方法。
【請求項10】
請求項6に記載の方法において、
前記警告は、特定された前記命令のアドレスを出力することを備える方法。
【請求項11】
各々が異なる命令セット動作モードにある2つ又はそれ以上の命令セット符号化に従って命令を実行するように動作するプロセッサであって、
カレント命令セット動作モードインジケータと、
ターゲット命令セット動作モードインジケータを格納するように動作するデータ記憶場所と、
カレント命令セット動作モードに従って命令を実行するように動作する実行ユニットと、
各命令の実行中、前記カレント命令セット動作モードと前記ターゲット命令セット動作モードとを比較し、前記カレント命令セット動作モードが前記ターゲット命令セット動作モードと一致する場合、インジケーションを出力するように動作する比較回路と、
ターゲットアドレス範囲を格納するように動作するデータ記憶場所と、
を備え、
前記比較回路は、前記カレント命令セット動作モードが前記ターゲット命令セット動作モードと一致し、かつ現在実行されている命令のアドレスが前記ターゲットアドレス範囲内にある場合のみ、インジケーションを出力するように動作し、
前記インジケーションは、命令実行を停止するように動作する信号を備えるプロセッサ。
【請求項12】
請求項11に記載のプロセッサにおいて、
前記インジケーションは、追跡動作を制御するように動作する信号を備えるプロセッサ。
【請求項13】
請求項11記載のプロセッサにおいて、
前記インジケーションは、例外を引き起こすように動作する信号を備えるプロセッサ。
【請求項14】
請求項11に記載のプロセッサにおいて、
前記インジケーションは、前記カレント命令セット動作モードが、前記ターゲット命令セット動作モードと一致することを示す信号を備えるプロセッサ。
【請求項15】
請求項11に記載のプロセッサにおいて、
前記インジケーションは、前記カレント命令セット動作モードと前記ターゲット命令セット動作モードとの間で一致が検出された場合、実行中の命令のアドレスを備えるプロセッサ。
【請求項16】
2つ又はそれ以上の命令セット符号化の各々を、異なる命令セット動作モードで実行するように動作するプロセッサであって、
前記命令セット動作モードにおける変更を検出し、前記検出に応答して、前記命令セット動作モードの変更と、前記変更が起こった命令アドレスとのインジケーションを出力するように動作する比較回路と、
を備え、
前記比較回路は、前記変更が起こった命令アドレスが、予め定められたアドレス範囲内にある場合のみ、前記命令セット動作モードにおける変更を検出し、
前記インジケーションは、命令実行を停止するように動作する信号を備えるプロセッサ。
【請求項17】
請求項16に記載のプロセッサにおいて、
前記インジケーションは、追跡動作を制御するように動作する信号を備えるプロセッサ。
【請求項18】
請求項16に記載のプロセッサにおいて、
前記インジケーションは、例外を引き起こすように動作する信号を備えるプロセッサ。
【請求項19】
請求項16に記載のプロセッサにおいて、
前記インジケーションは、命令セット動作モードにおける変更を示す信号を備えるプロセッサ。
【請求項20】
請求項16に記載のプロセッサにおいて、
前記インジケーションは、前記命令セット動作モード変更アドレスを備えるプロセッサ。」

3.原査定の理由の概要
理由1 ・・・(中略)・・・
理由2 ・・・(中略)・・・
理由3 ・・・(中略)・・・
理由4 この出願の下記の請求項に係る発明は、その出願前に日本国内又は外国において、頒布された下記の刊行物に記載された発明又は電気通信回線を通じて公衆に利用可能となった発明に基いて、その出願前にその発明の属する技術の分野における通常の知識を有する者が容易に発明をすることができたものであるから、特許法第29条第2項の規定により特許を受けることができない。

記 (引用文献等については引用文献等一覧参照)
第1 ・・・(中略)・・・
第2 ・・・(中略)・・・
第3 ・・・(中略)・・・
第4 理由4について
・・・(中略)・・・

引 用 文 献 等 一 覧
文献1.特開2002-304291号公報
文献2.特開平06-202907号公報
文献3.特開2003-256237号公報

4.当審の判断
4-1.請求項1に係る発明について
(1)引用例
(1-1)原査定の拒絶の理由に引用され、本願の優先権主張日前に出願公開された特開2002-304291号公報(以下、「引用例1」という。)には、図面とともに以下の各記載がある。なお、下線は当審で付加したものである。
(a)「【請求項17】 命令セット情報の格納方法であって、処理回路が処理命令の複数の命令セットのいずれかからの処理命令を実行するようにされており、各処理命令はメモリ内のその処理命令の場所を識別する命令アドレスにより指定され、異なる命令セット内の処理命令に対して命令アドレス内に異なる命令アドレスビット数を指定する必要があり、前記方法は、
その命令に対応する命令セットによって決まるビットパターンを指定された命令アドレスビットにプリペンドすることにより指定された命令アドレスビットをn-ビットへ拡張する、
のと等価の計算を実施することにより、その命令に対応する命令セットの表示を有する命令アドレスを符号化してn-ビット符号化命令アドレスを発生するステップを含む方法。」
(b)「【0039】図1はオンチップトレーシング機構を提供するデータ処理システム2を略示している。集積回路4はマイクロプロセッサコア6、キャッシュメモリ8、オンチップトレースモジュールコントローラ10およびオンチップトレースバァッファ12を含んでいる。集積回路4はキャッシュメモリ8内でキャッシュミスが生じる時にアクセスされる外部メモリ14に接続されている。汎用コンピュータ16がオンチップトレースモジュールコントローラ10およびオンチップトレースバァッファ12に接続され、汎用コンピュータ16で実行するソフトウェアを使用してこれらの要素からのトレーシングデータのストリームを回復および解析するように働く。
・・・(中略)・・・
【0042】同期論理100が着信信号をオンチップトレースモジュール内で使用するのにより適切な信号の内部バージョンへ変換するようにされている。次に、これらの内部バージョンはトリガー110および制御論理120へ送られるが、トリガー110および制御論理120は必ずしも同じ信号を受信する必要はないことがお判りであろう。基本的に、トリガー110はトリガー可能なイベント、例えば、命令アドレス、データ値、レジスタアクセス、等に関連するデータを受信する必要がある。制御論理120はトリガー110により発せられるイネーブル信号に応じてトレースする必要がある任意のデータを受信する必要がある。制御論理120は、さらに、汎用コンピュータ16からパス125を介して構成情報を受信するようにされており、次に、トリガー論理構成をセットアップするために、パス115を介してトリガー110へ信号を発するようにされている。
【0043】トレースストリームの発生を来たさなければならないイベントを検出する時は常に、トリガー110はパス135を介して制御論理120へイネーブル信号を送ってトレースをターンオンオフさせる。制御論理はパス145を介して必要なトレースデータをトレースバァッファへ出力することにより反応する。パス135を介して多様なイネーブル信号を提供してトレースすべき信号のタイプ、例えば、トレースオンリー命令、トレース命令およびデータ等を識別できることが判る。
【0044】好ましい実施例では、オンチップトレースモジュール10の制御論理120には命令アドレスを有する命令セット情報を符号化し、次にこのような符号化命令アドレスをパス145を介してトレースバァッファへ出力する前に圧縮できるようにする追加論理が提供される。
【0045】制御論理120内で実施される符号化が図3に略示されており、プロセッサコア6により使用される3つの異なる命令セットは“ARM”,“Thumb”および“Java(登録商標)”の名称で識別されている。
・・・(中略)・・・
【0047】本発明の実施例では、論理1値は各命令アドレスの第33ビットとしてプリペンド(pre-pended)される(すなわち、ビット位置32に配置される)。次に、命令アドレスの任意の無関係な最下位ビットを除去するための適切な右シフトを適用することにより符号化命令アドレスが作り出される。Java命令に対しては、32ビット全てを指定する必要があるため、右シフトは実施されず、符号化命令アドレス250は論理1値をオリジナル32ビットJava命令アドレス220へプリペンドして与えられる単なる33ビット値である。Thumb命令に対しては、最下位ビットを除去するために1の右シフトが適用され、それにより最上位2ビットが“01”である33ビット符号化命令アドレス240が作り出される。最後に、ARM命令に対しては、最下位2ビットを除去するために2ビット位置の右シフトが適用され、それにより最上位3ビットが“001”である33ビット符号化命令アドレス230が作り出される。
【0048】したがって、命令アドレスが関連する命令セットの表示が33ビット符号化命令アドレスの最上位3ビットにより与えられることがお判りであろう。特に、最上位3ビットの“001”は命令をARM命令として識別し、“01x”は命令をThumb命令として識別し(xは任意値を示す)、最上位3ビットとしての“1xx”は命令をJava命令として識別する。
【0049】好ましい実施例では、33-ビット符号化命令アドレスはパス145を介してトレースバァッファへ出力される前に、図4に略示された技術を使用して、圧縮される。
・・・(中略)・・・
【0056】図6は所要の符号化および圧縮を行う本発明の好ましい実施例に従ったオンチップトレースモジュール10の制御論理120内に設けることができる論理のブロック図である。レジスタ610が設けられその最上位3ビット607は予め定められたビットパターン、好ましい実施例では“001”、を格納する。レジスタ610の最下位32ビットはパス602を介して32-ビット命令アドレス605を受信する。さらに、パス603を介して通されレジスタ610内に格納された32-ビット命令アドレスが関連する命令を識別する命令セット識別子を格納するラッチ630が設けられる。」

上記(a)及び(b)によると、引用例1には以下の発明(以下、「引用発明」という。)が記載されていると認められる。
「オンチップトレーシング機構を提供するデータ処理システムにおいて、
命令を識別する命令セット識別子を格納するラッチが設けられ、
制御論理はトリガー(例えば、命令アドレス、データ値、レジスタアクセス等)により発せられるイネーブル信号に応じてトレースする必要がある任意のデータを受信し、必要なトレースデータをトレースバァッファへ出力するものであり、さらに、制御論理には命令アドレスを有する命令セット情報を符号化し、次にこのような符号化命令アドレスをトレースバァッファへ出力する前に圧縮できるようにするものであり、
命令セット情報の格納方法であって、
処理回路が処理命令の複数の命令セットのいずれかからの処理命令を実行するようにされており、各処理命令はメモリ内のその処理命令の場所を識別する命令アドレスにより指定され、異なる命令セット内の処理命令に対して命令アドレス内に異なる命令アドレスビット数を指定する必要があり、前記方法は、
その命令に対応する命令セットによって決まるビットパターンを指定された命令アドレスビットにプリペンドすることにより指定された命令アドレスビットをn-ビットへ拡張する、のと等価の計算を実施することにより、その命令に対応する命令セットの表示を有する命令アドレスを符号化してn-ビット符号化命令アドレスを発生するステップを含む方法。」

(1-2)原査定の拒絶の理由に周知技術として引用され、本願の優先権主張日前に出願公開された特開平6-202907号公報(以下、「引用例2」という。)には、図面とともに以下の記載がある。なお、下線は当審で付加したものである。
(c)「【0020】以下、本実施例のデバッグ支援装置の作用の一例を説明する。
【0021】まず、アドレスブレイクを行う場合、目的のアドレス値を比較データラッチ6に設定し、マイクロプロセッサ3のアドレスバス11をアドレス比較回路7により監視し、比較データラッチ6の内容と一致するか否かの判定を行う。
【0022】次に、アドレス比較回路7においてアドレスが一致したと判定された場合、現在、マイクロプロセッサ3は命令語取り込みサイクル中か否かを状態判断回路16により判定し、判定結果が読み取りサイクルであればマイクロプロセッサ3に対するアドレス通過検出入力17を真にする。その後、マイクロプロセッサ3は実行パイプライン13に当該アドレス通過検出入力17を入力し、目的のアドレスの命令語が、実行パイプライン13において実行サイクルに入ったことを契機として、ホールド制御回路14にホールド要求を出力し、当該ホールド制御回路14により、マイクロプロセッサ3の実行動作を停止させる。」

(1-3)原査定の拒絶の理由に周知技術として引用され、本願の優先権主張日前に出願公開された特開2003-256237号公報(以下、「引用例3」という。)には、図面とともに以下の各記載がある。なお、下線は当審で付加したものである。
(d)「【0031】ステップS411では、プログラムが予め設定されているブレークポイントに到達したかを判断する。ブレークポイントに到達していなければNOに分岐して、ブレークポイントに到達したならばYESに分岐する。
【0032】本実施の形態においては、ブレイクポイントは、メモリ上の所定のアドレスにブレーク発生命令(デバッグ例外を発生させる命令)を書き込むことにより実現するものとする。ただし、デバッグ例外を発生させるアドレスを記憶するブレークポイント・レジスタと、このブレークポイント・レジスタの値とプログラムカウンタの値とを比較するコンパレータとを具備することにより、所定のアドレスにデバッグ例外を発生させるとしても良い。」

(2)対比
そこで、本願の請求項1に係る発明(以下、本願発明という)と引用発明とを対比する。
(2-1)引用発明の「オンチップトレーシング機構を提供するデータ処理システムにおいて」、及び、「制御論理はトリガー(例えば、命令アドレス、データ値、レジスタアクセス等)により発せられるイネーブル信号に応じてトレースする必要がある任意のデータを受信し、必要なトレースデータをトレースバァッファへ出力するものであり」との記載は、いわゆるプログラム(ソフトウェアコード)のデバッグのために、トリガーに応じてプログラム(ソフトウェアコード)の命令実行順序を示すトレースデータをトレースバァッファへ出力するものである。
そうすると、本願発明と引用発明は、後記する点を除いて、
「複数の命令を備えるソフトウェアコードをデバッグする方法」
である点で共通するものである。
(2-2)引用発明の「命令を識別する命令セット識別子を格納するラッチが設けられ」、「処理回路が処理命令の複数の命令セットのいずれかからの処理命令を実行するようにされており、各処理命令はメモリ内のその処理命令の場所を識別する命令アドレスにより指定され、異なる命令セット内の処理命令に対して命令アドレス内に異なる命令アドレスビット数を指定する必要があり」との記載、及び、上記(b)の第【0045】段落の「制御論理120内で実施される符号化が図3に略示されており、プロセッサコア6により使用される3つの異なる命令セットは“ARM”,“Thumb”および“Java(登録商標)”の名称で識別されている。」との記載から、引用発明のデータ処理システムにおけるプロセッサは、3つの異なる命令セットを実行可能であり、現在実行中の命令セットが「命令セット識別子」としてラッチされることから、それぞれの動作モードを有していることは明らかである。
そうすると、本願発明と引用発明は、後記する点を除いて、
「少なくとも2つの異なる命令セット動作モードを有するプロセッサ」
を備える点で共通するものである。
(2-3)引用発明の「命令を識別する命令セット識別子を格納するラッチが設けられ」との記載によると、現在実行中の命令が3つの異なる命令セットのどの命令セットであるのかを「命令セット識別子」として示すものであるから、この「命令セット識別子」は本願発明の「カレントプロセッサ命令セット動作モード」に相当するものである。
そうすると、本願発明と引用発明は、後記する点を除いて、
「コード命令を実行し、実行された各命令について、カレントプロセッサ命令セット動作モード」
を有する点で共通するものである。
(2-4)引用発明の「制御論理はトリガー(例えば、命令アドレス、データ値、レジスタアクセス等)により発せられるイネーブル信号に応じてトレースする必要がある任意のデータを受信し、必要なトレースデータをトレースバァッファへ出力するものであり」との記載によれば、引用発明は命令の実行中に所定の条件に合致した場合にトリガーを発するものであり、このトリガーは次の処理に対する警告であるともいえる。
そうすると、本願発明と引用発明は、後記する点を除いて、
「所定の条件に合致した場合に警告をトリガーする」
点で共通するものである。
(2-5)以上のことから、本願発明と引用発明とは、
「少なくとも2つの異なる命令セット動作モードを有するプロセッサ上で、複数の命令を備えるソフトウェアコードをデバッグする方法であって、
コード命令を実行し、実行された各命令について、カレントプロセッサ命令セット動作モードを有し、
所定の条件に合致した場合に警告をトリガーする、方法。」
である点で一致し、以下の点で相違する。

[相違点1]
本願発明では、「任意のコード命令の実行前に、ターゲット命令セット動作モードを受け取ることと、コード命令を実行し、実行された各命令について、カレントプロセッサ命令セット動作モードと、前記ターゲット命令セット動作モードとを比較することと、前記カレントプロセッサ命令セット動作モードと、前記ターゲット命令セット動作モードとが一致した場合、警告をトリガすることと、任意のコード命令の実行前に、ターゲットアドレス範囲を受け取ることと、実行された各命令について、カレント命令アドレスと、前記ターゲットアドレス範囲とを比較することと、前記カレントプロセッサ命令セット動作モードが前記ターゲット命令セット動作モードと一致し、前記カレント命令アドレスが前記ターゲットアドレス範囲内である場合のみ、前記警告をトリガすること」を備えているのに対し、引用発明ではそのようになっていない点。
[相違点2]
本願発明では、「前記警告は、命令実行を停止すること」を備えているのに対し、引用発明ではそのようになっていない点。

(3)当審の判断
(3-1)[相違点1]について
引用発明では、確かに複数の命令セットを実行可能であり、現在実行中の命令セットを識別するための「命令セット識別子」が使用されているものの、該「命令セット識別子」は「命令セットによって決まるビットパターンを指定された命令アドレスビットにプリペンドする」ために使用されるものであって、本願発明の「任意のコード命令の実行前に、ターゲット命令セット動作モードを受け取ることと、コード命令を実行し、実行された各命令について、カレントプロセッサ命令セット動作モードと、前記ターゲット命令セット動作モードとを比較すること」とは使用目的が明らかに異なるものである。
また、引用例2として示されるように、プロセッサの命令アドレスを比較回路により監視し、所定のアドレスと一致した場合にプロセッサの動作を停止させることが周知技術であり、また、引用例3として示されるように、ブレークポイントに到達(所定の命令アドレスに到達)した際にデバッグ例外を発生させることが周知技術であったとしても、本願発明の特に「任意のコード命令の実行前に、ターゲット命令セット動作モードを受け取ることと、コード命令を実行し、実行された各命令について、カレントプロセッサ命令セット動作モードと、前記ターゲット命令セット動作モードとを比較することと、前記カレントプロセッサ命令セット動作モードと、前記ターゲット命令セット動作モードとが一致した場合、警告をトリガすること」の動機づけになるものとはいえないから、当該周知技術を引用発明に適用したとしても上記相違点1に係る構成を導き出せるものではなく、当業者が容易に想到しえたことであるとはいえないものである。
したがって、上記相違点1に係る構成は、引用発明及び周知技術から当業者が容易に想到しえたといえないものである。
(3-2)[相違点2]について
引用例2として示されるように、プロセッサの命令アドレスを比較回路により監視し、所定のアドレスと一致した場合にプロセッサの動作を停止させることは周知技術であり、所定の条件に合致した場合をトリガー(警告)としてプロセッサの動作を停止させることは適宜なしえたことであるから、引用発明に当該周知技術を適用することにより上記相違点2に係る構成とすることは、当業者であれば容易に想到しえたことである。
したがって、上記相違点2に係る構成は格別のものではない。

(4)まとめ
以上のとおりであるから、本願の請求項1に係る発明は、引用発明及び周知技術に基づいて当業者が容易に発明をすることができたものとはいえないものである。

4-2.請求項2乃至20に係る発明について
請求項2乃至20に係る発明についても、上記引用発明及び周知技術に基づいて当業者が容易に発明をすることができたものとはいえないものである。

5.むすび
以上のとおり、本願の請求項1乃至20に係る発明は、引用発明及び周知技術に基づいて当業者が容易に発明をすることができたものとすることができないから、原査定の理由によっては、本願を拒絶することはできない。
また、他に本願を拒絶すべき理由を発見しない。

よって、結論のとおり審決する。
 
審決日 2014-03-31 
出願番号 特願2009-523924(P2009-523924)
審決分類 P 1 8・ 121- WY (G06F)
最終処分 成立  
前審関与審査官 井出 和水  
特許庁審判長 金子 幸一
特許庁審判官 田中 秀人
辻本 泰隆
発明の名称 プロセッサ命令セット動作モードを比較するデバッグ回路  
代理人 福原 淑弘  
代理人 幸長 保次郎  
代理人 砂川 克  
代理人 峰 隆司  
代理人 堀内 美保子  
代理人 岡田 貴志  
代理人 中村 誠  
代理人 河野 直樹  
代理人 野河 信久  
代理人 井関 守三  
代理人 白根 俊郎  
代理人 蔵田 昌俊  
代理人 佐藤 立志  
代理人 竹内 将訓  

プライバシーポリシー   セキュリティーポリシー   運営会社概要   サービスに関しての問い合わせ