• ポートフォリオ機能


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

  • この表をプリントする
PDF PDFをダウンロード
審決分類 審判 査定不服 2項進歩性 取り消して特許、登録 G06F
審判 査定不服 1項3号刊行物記載 取り消して特許、登録 G06F
管理番号 1284670
審判番号 不服2012-18584  
総通号数 172 
発行国 日本国特許庁(JP) 
公報種別 特許審決公報 
発行日 2014-04-25 
種別 拒絶査定不服の審決 
審判請求日 2012-09-24 
確定日 2014-02-25 
事件の表示 特願2009-537298「マルチスレッド化デジタル信号プロセッサに関する非侵入型、スレッド選択式デバッギング方法及びシステム」拒絶査定不服審判事件〔平成20年 5月22日国際公開、WO2008/061067、平成22年 4月 2日国内公表、特表2010-510581、請求項の数(21)〕について、次のとおり審決する。 
結論 原査定を取り消す。 本願の発明は、特許すべきものとする。 
理由 1.手続の経緯
本願は、平成19年11月12日を国際出願日(優先権主張日:2006年11月15日、米国)とする出願であって、平成23年8月31日付けで拒絶理由通知がなされ、平成24年3月6日付けで手続補正がなされるとともに同年3月15日付けで意見書が提出されたが、同年5月18日付けで拒絶査定がなされ、これに対して平成24年9月24日付けで拒絶査定不服審判請求がなされたものである。

2.本願発明
本願の請求項1乃至21に係る発明は、平成24年3月6日付けの手続補正で補正された特許請求の範囲に記載された事項により特定される、以下のとおりのものである。
「【請求項1】
マルチスレッド化デジタル信号プロセッサをデバッグするための非侵入型方法であって、
前記マルチスレッド化デジタル信号プロセッサにおける複数のスレッドによって複数の処理命令を実行することと、
前記複数のスレッドの1つ以上の指示されたスレッドに対して少なくとも1つのデバッギングイベントを生成するための1つ以上のブレークポイント命令を識別することと、
前記1つ以上のブレークポイント命令に対応する前記1つ以上の指示されたスレッドを決定するためにインシリコンデバッギングシステム(ISDB)を用いることと、
前記ブレークポイント命令のうちの少なくとも1つを実行することに応じて、前記1つ以上の指示されたスレッドに対する前記少なくとも1つのデバッギングイベントを生成することと、
前記少なくとも1つのデバッギングイベントに応じて複数のデバッギング命令を実行することであって、前記デバッギング命令は、前記マルチスレッド化デジタル信号プロセッサの前記1つ以上の指示されたスレッドをデバッギングモードに移行させることによって、前記マルチスレッド化デジタル信号プロセッサにおいて、前記複数の処理命令の実行を非侵入方式でデバッグするためのものであることと、
前記複数のデバッギング命令の実行から少なくとも1つのデバッギングリターンを生成して前記複数のデバッギング命令の実行を報告することと、を備える、非侵入型方法。
【請求項2】
前記少なくとも1つのデバッギングイベントは、前記マルチスレッド化デジタル信号プロセッサ内において内部生成されたインスタンスに応じて発生する請求項1に記載の方法。
【請求項3】
前記少なくとも1つのデバッギングイベントは、外部生成されたインスタンスに応じて発生する請求項1に記載の方法。
【請求項4】
前記少なくとも1つのデバッギングイベントは、前記マルチスレッド化デジタル信号プロセッサ内においてプログラムカウンタが予め決められたカウントに達することに応じて発生する請求項1に記載の方法。
【請求項5】
前記マルチスレッド化デジタル信号プロセッサの前記1つ以上の指示されたスレッドは、前記デバッキングモードから動作モードに移行し、前記動作モードは、待機モード、ユーザモード、スーパバイザモード、OFFモードを含む請求項1に記載の方法。
【請求項6】
少なくとも1つ以上の命令スタッフィング命令は、前記マルチスレッド化デジタル信号プロセッサの動作に関連する予め決められたデバッギングアルゴリズムを実行する請求項1に記載の方法。
【請求項7】
前記マルチスレッド化デジタル信号プロセッサ内における少なくとも1つのデバッギング命令は、前記複数のデバッギング命令の前記実行と、前記複数の処理命令の前記実行との間においてジョイントテストアクショングループ(JTAG)インタフェースを用いる請求項1に記載の方法。
【請求項8】
マルチスレッド化デジタル信号プロセッサを非侵入方式でデバッグするためのシステムであって、
デジタル信号マルチスレッド化プロセッサにおいて複数の処理命令を実行するための複数のスレッドと、
前記複数のスレッドの1つ以上の指示されたスレッドを決定するためのインシリコンデバッギングシステム(ISDB)であって、前記1つ以上の指示されたスレッドは一組のブレークポイント命令に対応し、前記一組のブレークポイント命令は、前記複数のスレッドの前記1つ以上の指示されたスレッドに関連する少なくとも1つのデバッキングイベントを生成するものであり、前記1つ以上の指示されたスレッドはマスクによって指示されるインシリコンデバッギングシステム(ISDB)と、
を具備し、
前記少なくとも1つのデバッキングイベントは、前記ブレークポイント命令のうちの少なくとも1つを実行することに応じて前記1つ以上の指示されたスレッドに対して生成され、
前記デバッキング命令は、前記少なくとも1つのデバッキングイベントに応じて、前記複数のスレッドの1つ以上によって実行され、
前記デバッギング命令は、前記マルチスレッド化デジタル信号プロセッサの前記1つ以上の指示されたスレッドをデバッギングモードに移行させることによって、前記マルチスレッド化デジタル信号プロセッサにおいて前記複数の処理命令を実行することを非侵入方式でデバッギングするものであり、
少なくとも1つのデバッギングリターン命令は、前記複数のデバッキング命令の実行から生成され、
前記マルチスレッド化デジタル信号プロセッサの前記1つ以上の指示されたスレッドにおける前記複数のデバッギング命令の実行の報告が生成される、システム。
【請求項9】
前記マルチスレッド化デジタル信号プロセッサ内においてプログラムカウンタが予め決められたカウントに達することに応じて前記1つ以上のデバッギングイベントを発生するための回路と命令とをさらに備える請求項8に記載のシステム。
【請求項10】
前記マルチスレッド化デジタル信号プロセッサの前記1つ以上の指示されたスレッドを前記デバッギングモードから動作モードに移行させるための回路と命令とをさらに備え、前記動作モードは、待機モード、ユーザモード、スーパバイザモード、OFFモードを含む請求項8に記載のシステム。
【請求項11】
一組の命令スタッフィング命令が前記マルチスレッド化デジタル信号プロセッサの動作に関連する予め決められたデバッギングアルゴリズムの実行のために実行可能である請求項8に記載のシステム。
【請求項12】
ジョイントテストアクショングループ(JTAG)インタフェースを用いて前記マルチスレッド化デジタル信号プロセッサを非侵入方式でデバッグするための回路と命令とをさらに備える請求項8に記載のシステム。
【請求項13】
マルチスレッド化デジタル信号プロセッサであって、マルチスレッド化処理中にデバッグするための非侵入型デバッキング手段を備え、該非侵入型デバッキング手段は、
前記マルチスレッド化デジタル信号プロセッサの複数のスレッドを用いてマルチスレッド化プロセッサにおいて複数の処理命令を実行するための手段と、
前記複数のスレッドの1つ以上の指示されたスレッドに対する少なくとも1つのデバッギングイベントを生成するための1つ以上のブレークポイント命令を識別するための手段と、
前記1つ以上のブレークポイント命令に対応する前記1つ以上の指示されたスレッドを決定するための手段と、
前記ブレークポイント命令のうちの少なくとも1つを実行することに応じて、前記1つ以上の指示されたスレッドに対する少なくとも1つのデバッギングイベントを生成するための手段と、
前記少なくとも1つのデバッギングイベントに応じて複数のデバッギング命令を実行するための手段であって、前記デバッギング命令は、前記マルチスレッド化デジタル信号プロセッサの前記1つ以上の指示されたスレッドをデバッギングモードに移行させることによって、前記マルチスレッド化デジタル信号プロセッサにおいて前記複数の処理命令の実行を非侵入方式でデバッグするためのものである手段と、
前記複数のデバッギング命令の実行から少なくとも1つのデバッギングリターンを生成して、前記マルチスレッド化デジタル信号プロセッサの前記1つ以上の指示されたスレッドにおいて、前記複数のデバッギング命令の実行を報告するための手段と、
を備える、マルチスレッド化デジタル信号プロセッサ。
【請求項14】
前記少なくとも1つのデバッキングイベントは、前記マルチスレッド化デジタル信号プロセッサ内において内部生成されたインスタンスに応じて発生する請求項13に記載のマルチスレッド化デジタル信号プロセッサ。
【請求項15】
前記少なくとも1つのデバッキングイベントは、外部生成されたインスタンスに応じて発生する請求項13に記載のマルチスレッド化デジタル信号プロセッサ。
【請求項16】
前記少なくとも1つのデバッキングイベントは、前記マルチスレッド化デジタル信号プロセッサ内においてプログラムカウンタが予め決められたカウントに達することに応じて発生する請求項13に記載のマルチスレッド化デジタル信号プロセッサ。
【請求項17】
前記マルチスレッド化デジタル信号プロセッサの前記1つ以上の指示されたスレッドを前記デバッギングモードから動作モードに移行させるための手段をさらに備え、前記動作モードは、待機モード、ユーザモード、スーパバイザモード、OFFモードを含む請求項13に記載のマルチスレッド化デジタル信号プロセッサ。
【請求項18】
前記マルチスレッド化デジタル信号プロセッサの動作に関連する予め決められたデバッギングアルゴリズムを実行するための手段をさらに備える請求項13に記載のマルチスレッド化デジタル信号プロセッサ。
【請求項19】
マルチスレッド化デジタル信号プロセッサを非侵入方式でデバッグするための前記マルチスレッド化デジタル信号プロセッサにおける処理命令に関してここにおいて具現化されたコンピュータによって読み取り可能なプログラムコードを有するコンピュータによって使用可能な記憶媒体であって、
前記マルチスレッド化デジタル信号プロセッサにおける複数のスレッドを用いて複数の処理命令を実行するためのコンピュータによって読み取り可能なプログラムコードと、
前記複数のスレッドの1つ以上の指示されたスレッドに対して少なくとも1つのデバッギングイベントを生成するために1つ以上のブレークポイント命令を識別するためのコンピュータによって読み取り可能なプログラムコードと、
前記1つ以上の指示されたスレッドを決定するために、インシリコンデバッギングシステム(ISDB)のレジスタを読み取るためのコンピュータによって読み取り可能なプログラムコードであって、前記1つ以上の指示されたスレッドは、マスクビットによって前記レジスタにおいて各々識別されるコンピュータによって読み取り可能なプログラムコードと、
前記ブレークポイント命令のうちの少なくとも1つを実行することに応じて、前記1つ以上の指示されたスレッドに対する前記少なくとも1つのデバッギングイベントを生成するためのコンピュータによって読み取り可能なプログラムコードと、
前記少なくとも1つのデバッギングイベントに応じて前記複数のデバッギング命令を実行するためのコンピュータによって読み取り可能なプログラムコードであって、前記デバッギング命令は、前記マルチスレッド化デジタル信号プロセッサの前記1つ以上の指示されたスレッドをデバッギングモードに移行させることによって、前記マルチスレッド化デジタル信号プロセッサにおいて前記複数の処理命令の前記実行を非侵入方式でデバッグするものであるコンピュータによって読み取り可能なプログラムコードと、
前記複数のデバッギング命令の実行から少なくとも1つのデバッギングリターンを生成して、前記マルチスレッド化デジタル信号プロセッサの前記1つ以上の指示されたスレッドにおいて、前記複数のデバッギング命令の実行を報告するためのコンピュータによって読み取り可能なプログラムコードと、を備える、コンピュータによって使用可能な記憶媒体。
【請求項20】
前記少なくとも1つのデバッギングイベントに応じて、前記複数のデバッキング命令を実行するためのコンピュータによって読み取り可能なプログラムコードをさらに具備し、前記少なくとも1つのデバッキングイベントは、前記マルチスレッド化デジタル信号プロセッサ内において内部生成されたインスタンスに応じて発生する請求項19に記載のコンピュータによって使用可能な記憶媒体。
【請求項21】
前記1つ以上の指示されたスレッドを決定するために前記ISDBを使用することは、前記ISDBで前記1つ以上のブレークポイント命令を受信することと、
前記1つ以上のブレークポイント命令に対応する前記1つ以上の指示されたスレッドを決定するために前記ISDBのレジスタを読み取ることと、を具備し、
前記1つ以上の指示されたスレッドはマスクビットによってレジスタにおいて各々識別される請求項1に記載の方法。」

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

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

引 用 文 献 等 一 覧
文献1.特開2004-171564号公報

4.当審の判断
4-1.請求項1に係る発明について
(1)引用例
原査定の拒絶の理由に引用され、本願の優先権主張日前の2004年6月17日に出願公開された特開2004-171564号公報(以下、「引用文献」という。)には、図面とともに以下の各記載がある。なお、下線は当審で付加したものである。
(a)「【0277】
本技術に係わるプロセッサでは、停止デバッグモードおよびモニタデバッグモードを含むいくつかのモードでデバッグを作動させることができる。これらモードは割り込み的であり、そのときに作動しているプログラムをストップさせる。停止デバッグモードにおいて、ブレークポイントまたはウォッチポイントが生じると、コアを停止し、システムの他の部分からアイソレートし、コアはデバッグ状態に入る。入力時にコアは停止され、パイプラインはフラッシングされ、命令はプリフェッチされない。PCはフリーズされ、どの割り込み(IRQおよびFIQ)も無視される。(JTAGシリアルインターフェースを介し)コアの内部ステートだけでなくメモリシステムのステートも検査できる。このステートはそのときのモードを変更したり、レジスタの内容を変えたりすることができるように、プログラムの実行に対して侵入的である。一旦デバッグが終了されると、コアはデバッグTAP(テストアクセスポート)を通した再スタート命令においてスキャニングをすることによりデバッグステートから脱出する。次にプログラムは実行を再開する。
【0278】
モニタデバッグモードでは、ブレークポイントまたはウォッチポイントはコアをアボートモードにし、それぞれプリフェッチベクトルまたはデータアボートベクトルを取り込む。この場合、コアはまだ機能モードにあり、停止デバッグモードと同じように停止されない。アボートハンドラーはデバッガーアプリケーションと通信し、プロセッサおよびコプロセッサのステートまたはダンプメモリにアクセスする。デバッグハードウェアをソフトウェアデバッガーの間をデバッグモニタプログラムがインターフェースするようになっている。デバッグステートおよび制御レジスタDSCRのビット11がセットされた場合(後の記載を参照)、割り込み(FIQおよびIRQ)を禁止できる。モニタデバッグモードでは、ベクトルのキャッチがデータアボートおよびプリフェッチアボートでディスエーブルされ、モニタデバッグモードに対して発生されたアボートの結果としてプロセッサが回復不能なステートになるのを防止できる。モニタデバッグモードはあるタイプのデバッグモードであり、安全な世界と非安全な世界との間の切り替えを監督するモードであるプロセッサのモニタモードには関連していないことに留意すべきである。
【0279】
デバッグはある時間におけるプロセッサのステートのスナップショットを提供できる。デバッグはデバッグの開始リクエストが受信されたときに種々のレジスタにおける値を注目することによりこれを行う。これら値はスキャンチェーン(図67の541、544)に記録され、これら値はJTAGコントローラ(図1の18)を使ってシリアルに出力される。
【0280】
コアをモニタする別の方法はトレースによる方法である。このトレースは割り込み的ではなく、コアが作動し続ける際のその後のステートを記録する。このトレースハう1の埋め込みトレースマクロセル(ETM)22、26で作動する。ETMはトレースポートを有し、このトレースポートを通してトレース情報が出力され、トレースポートは外部トレースポートアナライザによって分析される。」
(b)「【0291】
モニタ機能の開始を制御するためには、機能をどのように開始できるかについて知ることが重要である。図60はモニタ機能を開始する可能な方法、開始されるモニタ機能のタイプおよびかかる開始命令をプログラム化できるようにする方法を示す表である。
【0292】
一般にソフトウェアまたはハードウェアを介し、例えばJTAGコントローラを介し、これらモニタ命令を入力できる。モニタ機能の開始を制御するために制御値が使用される。これら値は条件に応じたイネーブルビットを含むので、特定の条件が存在した場合、イネーブルビットがセットされた場合にしかモニタは開始が認められない。これらビットはICE530(図67参照)にある安全レジスタCP14(デバッグおよびステータス制御レジスタ、DSCR)に記憶される。
【0293】
好ましい実施例では割り込み的および観測可能なデバッグをイネーブル/ディスエーブルするビットが4つ設けられ、これらビットは安全デバッグイネーブルビット、安全トレースイネーブルビット、安全ユーザーモードイネーブルビットおよび安全スレッドアウェアイネーブルビットを含む。これら制御値はモニタ機能のためのある程度の制御可能な粒度を提供するように働き、例えば特定のドメインからのデータの漏れをストップするように働くことができる。図61は、これらビットの概要およびこれらビットにどのようにアクセスできるかを示している。
【0294】
これら制御ビットは安全ドメイン内のレジスタに記憶され、このレジスタへのアクセスは3つの可能性に限定される。ARMコプロセッサのMRC/MCR命令を介してソフトウェアのアクセスが行われ、これら命令は安全スーパーバイザーモードからしか認められない。これとは異なり、認証コードを使用することにより他のモードからのソフトウェアへのアクセスを行うことができる。更に別の方法は、更にハードウェアのアクセスに関連し、入力ポートを介したJTAGへの命令の書き込みに関係する。更にモニタ機能の利用性に関連する制御値を入力するのに使用される他に、この入力ポートはプロセッサの他の機能に関連する制御値を入力するのに使用できる。」
(c)「【0306】
図68はデバッグ初期化の制御を略図で示す。この図では、コア600の一部は記憶素子601(この素子は前に説明したようにCP15レジスタでよい)を含み、この素子内にシステムが安全な世界であるか否かを表示する安全ステータスビットSが記憶されている。コア600はプロセッサが作動しているときのモード、例えばユーザーモードを表示するビットを含むレジスタ602と、現在コアで作動中のアプリケーションまたはスレッドを識別するコンテクスト識別子を発生するレジスタ603も含む。
【0307】
ブレークポイントに達すると、レジスタ611に記憶されたブレークポイントとレジスタ612に記憶されたコアのアドレスとを比較するコンパレータ610が制御ロジック620へ信号を送る。制御ロジック620は安全ステートS、モード602およびスレッド(コンテクスト識別子)603を見て、これらと制御値およびレジスタCP14上に記憶された条件インジケータとを比較する。システムが安全な世界内で作動していない場合、「デバッグ進入」信号が630で出力される。しかしながら、システムが安全な世界で作動する場合、制御ロジック620はモード602を見る。このモードがユーザーモードであれば、ユーザーモードイネーブルビットおよびデバッグイネーブルビットがセットされているかどうかを見るためにチェックする。そうである場合、スレッドアウェアビットが初期化されていないことを条件に、デバッグが初期化される。これまでの説明は制御値の階層的性質を示すものである。
【0308】
図68にはレジスタCP14に記憶された制御値を、どのように安全スーパーバイザーモードだけから変更できるのか(この実施例ではプロセッサは製造段階にあり、JSDAENはアースに接続されている)と共に、モニタ制御のスレッドアウェア部分も略図で示されている。安全ユーザーモードから認証コードを使って安全スーパーバイザーモードを入力し、次にCP14に制御値をセットできる。
【0309】
スレッドに対してデバッグが可能なことをスレッドコンパレータ640が示すことを条件に、ブレークポイントに達したことをアドレスコンパレータ610が表示したときに、制御ロジック620は「デバッグ進入」信号を出力する。このことは、CP14にスレッドアウェア初期化ビットがセットされることを仮定している。ブレークポイントの後でスレッドアウェア初期化ビットがセットされあ場合、アドレスおよびコンテクスト識別子がブレークポイントおよび許容できるスレッドインジケータ内に表示された識別子に一致する場合にしか、デバッグまたはトレースに入ることはできない。モニタ機能の開始後にコンテクスト識別子がコンパレータ640により許容されたスレッドとして検出される間にしか、診断データの捕捉が続かない。アプリケーションの作動が認められない作動であることをコンテクスト識別子が示すと、診断データの捕捉が抑制される。」

上記(a)乃至(c)によると、引用文献には以下の発明(以下、「引用発明」という。)が記載されていると認められる。
「プロセッサをデバッグするための方法であって、
プロセッサでは、停止デバッグモードおよびモニタデバッグモードを作動させることができ、
停止デバッグモードでは、ブレークポイントまたはウォッチポイントが生じると、コアを停止し、システムの他の部分からアイソレートし、コアはデバッグ状態に入り、入力時にコアは停止され、パイプラインはフラッシングされ、命令はプリフェッチされず、PCはフリーズされ、どの割り込み(IRQおよびFIQ)も無視され、JTAGシリアルインターフェースを介してコアの内部ステートだけでなくメモリシステムのステートも検査できるものであり、
モニタデバッグモードでは、ブレークポイントまたはウォッチポイントはコアをアボートモードにし、それぞれプリフェッチベクトルまたはデータアボートベクトルを取り込み、この場合コアはまだ機能モードにあり、アボートハンドラーはデバッガーアプリケーションと通信し、プロセッサおよびコプロセッサのステートまたはダンプメモリにアクセスするものであり、デバッグハードウェアとソフトウェアデバッガーの間をデバッグモニタプログラムがインターフェースするようになっているものであり、
コアには、モニタ機能の開始を制御するために制御値が記憶される安全レジスタと、プロセッサが作動しているときのモードが記憶されるレジスタと、現在コアで作動中のスレッドを識別するコンテクスト識別子が記憶されるレジスタを備え、
ブレークポイントに達すると、レジスタに記憶されたブレークポイントとコアのアドレスとを比較するコンパレータが制御ロジックへ信号を送り、
前記制御ロジックは前記レジスタに記憶されたモードおよびスレッド(コンテクスト識別子)と、前記安全レジスタに記憶された制御値とを比較し、スレッドに対してデバッグが可能なことをスレッドコンパレータが示すことを条件に、制御ロジックはデバッグ進入信号を出力する、方法。」

(2)対比
そこで、本願の請求項1に係る発明(以下、本願発明という)と引用発明とを対比する。
(2-1)引用発明は、スレッドに対するデバッグを可能とするものであることから、引用発明のプロセッサもいわゆるマルチスレッドによる処理を行うものであることは明らかである。
そうすると、本願発明と引用発明は、後記する点を除いて、
「プロセッサにおける複数のスレッドによって複数の処理命令を実行すること」
を備える点で共通するものである。
(2-2)引用発明の「ブレークポイントに達すると、レジスタに記憶されたブレークポイントとコアのアドレスとを比較するコンパレータが制御ロジックへ信号を送り、前記制御ロジックは前記レジスタに記憶されたモードおよびスレッド(コンテクスト識別子)と、前記安全レジスタに記憶された制御値とを比較し、スレッドに対してデバッグが可能なことをスレッドコンパレータが示すことを条件に、制御ロジックはデバッグ進入信号を出力する」によれば、引用発明ではコアのアドレス、すなわちプログラムカウンタによるブレークポイントが設定されており、さらにデバッグ対象となるスレッドも指定されるものであって、条件の成立により制御ロジックがデバッグ進入信号を出力するもの、つまりデバッギングイベントを生成するものといえる。
そうすると、本願発明と引用発明は、後記する点を除いて、
「前記複数のスレッドの1つ以上の指示されたスレッドに対して少なくとも1つのデバッギングイベントを生成するための1つ以上のブレークポイント命令を識別すること」及び「前記ブレークポイント命令のうちの少なくとも1つを実行することに応じて、前記1つ以上の指示されたスレッドに対する前記少なくとも1つのデバッギングイベントを生成すること」
を備える点で共通するものである。
(2-3)引用発明の「停止デバッグモードでは、ブレークポイントまたはウォッチポイントが生じると、コアを停止し、システムの他の部分からアイソレートし、コアはデバッグ状態に入り、入力時にコアは停止され、パイプラインはフラッシングされ、命令はプリフェッチされず、PCはフリーズされ、どの割り込み(IRQおよびFIQ)も無視され、JTAGシリアルインターフェースを介してコアの内部ステートだけでなくメモリシステムのステートも検査できるものであり」によると、「停止デバッグモード」では「JTAGシリアルインターフェースを介してコアの内部ステートだけでなくメモリシステムのステートも検査できる」もの、つまり「コアの内部ステート」及び「メモリシステムのステート」をデバッグの結果として出力(報告)可能とするものといえる。
また、引用発明の「モニタデバッグモードでは、ブレークポイントまたはウォッチポイントはコアをアボートモードにし、それぞれプリフェッチベクトルまたはデータアボートベクトルを取り込み、この場合コアはまだ機能モードにあり、アボートハンドラーはデバッガーアプリケーションと通信し、プロセッサおよびコプロセッサのステートまたはダンプメモリにアクセスするものであり、デバッグハードウェアとソフトウェアデバッガーの間をデバッグモニタプログラムがインターフェースするようになっているものであり」についても、デバッグの結果として「デバッガーアプリケーション」に「プロセッサおよびコプロセッサのステート」や「ダンプメモリ」の内容を通信(報告)するものといえる。
そうすると、本願発明と引用発明は、後記する点を除いて、
「前記複数のデバッギング命令の実行から少なくとも1つのデバッギングリターンを生成して前記複数のデバッギング命令の実行を報告すること」
を備える点で共通するものである。
(2-4)上記(2-1)で示したように、引用発明のプロセッサもマルチスレッドによる処理を行う「マルチスレッド化プロセッサ」であって、また、引用発明はスレッドに対するデバッグを行う方法である。
そうすると、本願発明と引用発明は、後記する点を除いて、
「マルチスレッド化プロセッサをデバッグするための方法」
である点で共通するものである。
(2-5)以上のことから、本願発明と引用発明とは、
「マルチスレッド化プロセッサをデバッグするための方法であって、
前記マルチスレッド化プロセッサにおける複数のスレッドによって複数の処理命令を実行することと、
前記複数のスレッドの1つ以上の指示されたスレッドに対して少なくとも1つのデバッギングイベントを生成するための1つ以上のブレークポイント命令を識別することと、
前記ブレークポイント命令のうちの少なくとも1つを実行することに応じて、前記1つ以上の指示されたスレッドに対する前記少なくとも1つのデバッギングイベントを生成することと、
前記複数のデバッギング命令の実行から少なくとも1つのデバッギングリターンを生成して前記複数のデバッギング命令の実行を報告することと、を備える、方法。」
である点で一致し、以下の点で相違する。

[相違点1]
本願発明では、「マルチスレッド化デジタル信号プロセッサ」のデバッグを行うものであるのに対し、引用発明では「マルチスレッド化プロセッサ」のデバッグである点。
[相違点2]
本願発明では、「デバッグするための非侵入型方法」であるのに対し、引用発明はそのようになっていない点。
[相違点3]
本願発明では、「前記1つ以上のブレークポイント命令に対応する前記1つ以上の指示されたスレッドを決定するためにインシリコンデバッギングシステム(ISDB)を用いること」を備えているが、引用発明ではそのようになっていない点。
[相違点4]
本願発明では、「前記少なくとも1つのデバッギングイベントに応じて複数のデバッギング命令を実行することであって、前記デバッギング命令は、前記マルチスレッド化デジタル信号プロセッサの前記1つ以上の指示されたスレッドをデバッギングモードに移行させることによって、前記マルチスレッド化デジタル信号プロセッサにおいて、前記複数の処理命令の実行を非侵入方式でデバッグするためのものであること」を備えているが、引用発明ではそのようになっていない点。

(3)当審の判断
(3-1)[相違点1]について
本願発明は、「マルチスレッド化デジタル信号プロセッサ」を対象としたデバッグであるが、請求項1の記載をみても「デジタル信号プロセッサ」特有の構成があるわけでもなく、引用発明のプロセッサとなんら変わるものではないから、この点は単なる設計事項にすぎないものである。
したがって、この点において本願発明と引用発明は相違するものではない。
(3-2)[相違点2]及び[相違点4]について
本願発明のデバッグは、デバッグ対象のスレッドによる処理命令の実行を継続しながらデバッグを行う点で“非侵入型”の方法であるが、引用発明の「停止デバッグモード」及び「モニタデバッグモード」によるものは、ブレークポイントに到達した時点で対象スレッドの動作を止めて、その時点での各種ステートを出力するものである点で相違するものである。
また、この点について、上記(a)の第【0280】段落には「コアをモニタする別の方法はトレースによる方法である。このトレースは割り込み的ではなく、コアが作動し続ける際のその後のステートを記録する。このトレースハう1の埋め込みトレースマクロセル(ETM)22、26で作動する。ETMはトレースポートを有し、このトレースポートを通してトレース情報が出力され、トレースポートは外部トレースポートアナライザによって分析される。」と記載されており、確かにこの「トレースマクロセル(ETM)」によるトレースは本願発明と同様に“非侵入型”のトレース方法といえるものではあるが、この「トレースマクロセル(ETM)」がコア内のスレッドの制御を行うことまで記載されているわけではないから、当該記載を参酌したとしても上記相違点4に係る構成を導き出せるものではなく、当業者が容易に想到しえたことであるとはいえないものである。
したがって、上記相違点2及び相違点4に係る構成は、引用文献に記載されていないものであるし、また、当業者が容易に想到しえたともいえないものである。
(3-3)[相違点3]について
引用発明においても、1つ以上のブレークポイントをレジスタに設定可能ではあるが、上記相違点3に係る構成である「前記1つ以上のブレークポイント命令に対応する前記1つ以上の指示されたスレッドを決定するためにインシリコンデバッギングシステム(ISDB)を用いること」についてまでは記載されていないし、当業者が容易に想到しえたといえる理由もない。
したがって、上記相違点3に係る構成は、引用文献に記載されていないものであるし、また、当業者が容易に想到しえたともいえないものである。

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

5-2.請求項2乃至21に係る発明について
請求項2乃至7及び請求項21は請求項1を引用するものであるから、前記5-1で示した理由により、引用発明と同一であるとも、また、引用発明に基づいて当業者が容易に発明をすることができたものともいえないものである。
また、請求項8、請求項13、及び請求項19に係る発明は、前記5-1で示した請求項1に係る発明と引用発明に関しての相違点2乃至4と同じ構成を有しており、また、請求項9乃至12は請求項8を引用し、また、請求項14乃至18は請求項13を引用し、また、請求項20は請求項19を引用するものであるから、これら請求項8乃至20に係る発明についても、前記5-1で示した理由により引用発明と同一であるとも、また、引用発明に基づいて当業者が容易に発明をすることができたものともいえないものである。

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

よって、結論のとおり審決する。
 
審決日 2014-02-13 
出願番号 特願2009-537298(P2009-537298)
審決分類 P 1 8・ 113- WY (G06F)
P 1 8・ 121- WY (G06F)
最終処分 成立  
前審関与審査官 井出 和水  
特許庁審判長 金子 幸一
特許庁審判官 仲間 晃
飯田 清司
発明の名称 マルチスレッド化デジタル信号プロセッサに関する非侵入型、スレッド選択式デバッギング方法及びシステム  
代理人 竹内 将訓  
代理人 白根 俊郎  
代理人 福原 淑弘  
代理人 中村 誠  
代理人 河野 直樹  
代理人 佐藤 立志  
代理人 幸長 保次郎  
代理人 井関 守三  
代理人 峰 隆司  
代理人 野河 信久  
代理人 岡田 貴志  
代理人 堀内 美保子  
代理人 砂川 克  
代理人 蔵田 昌俊  
  • この表をプリントする

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