命令トレース供給方式事件

  • 日本判例研究レポート
  • 知財判決例-審取(査定係)
判決日 2012.09.27
事件番号 H23(行ケ)10320
担当部 知財高裁第3部
発明の名称 命令トレース供給方式
キーワード 動機付け、阻害要因
事案の内容 拒絶査定不服審判において請求は成り立たないとした審決が取り消された事案。
引用発明には本願発明に至る動機付けがなく、また、引用発明の課題を考慮すると、本願発明のように構成することには阻害要因があると判示された点がポイント。

事案の内容

【請求項1】(符号は筆者が付した。下線は相違点に関する箇所)

メモリ164から命令を取り出して実行する取り出し回路及び実行回路と,CPU162によって実行される命令のメモリ164内のアドレスを含む命令ポインタを順次保持する命令ポインタレジスタ406と,を含んで構成されるオン-チップCPU162であって,前記CPU162の前記実行回路は,前記取り出し回路に新しいメモリ位置から命令の取り出しを開始させると共に,前記アドレスの1つが,そのアドレスの前回アドレスのメモリ164内の次に続くアドレスではないという不連続を示す制御信号を生成するよう動作可能である,オン-チップCPU162と,

前記CPU162にバス310により接続され,前記CPU162から前記バス310を介して前記命令ポインタレジスタに順次保持された命令ポインタを受信し,前記受信した命令ポインタのアドレスを監視するように作動可能である命令トレースコントローラ400であって,トレースストレージ位置402に接続され,前記受信した命令ポインタのアドレスのうちの選択された1つを前記トレース位置402に記憶させる命令トレースコントローラ400と,

を含んで構成され,

前記命令トレースコントローラ400はさらに,前記CPU162から前記バス310を介して前記命令ポインタと同時に前記命令トレースコントローラ400に送信される前記制御信号を受信し,前記制御信号の検知に基づいて前記アドレスのうちの選択された1つを前記トレース位置402に記憶する

単一チップ集積回路装置。

 

【審決の理由】

原審では、特開平5-158734(引用文献1)に記載された発明(引用発明)および周知技術に基づいて、当業者が容易に発明をすることができたものであり、特許を受けることができないとされた。

 

【審決が認定した引用発明の内容】(符号は筆者が付した)

命令キャッシュを有し,次サイクルで実行する命令を読み出す命令プリフェッチ部20と,命令プリフェッチ部20より読み出された命令をデコードする命令デコーダ30と,命令デコーダ30により指示された命令を実行する命令実行部50とを単一の集積回路に有し,

分岐先アドレスと分岐命令信号を受けて分岐先アドレスをトレース装置に格納するバス制御部60を含んで構成され,

命令実行部50はデコードされた命令が分岐命令であった場合,分岐先アドレスを計算し,分岐アドレスバスに出力すると共に,分岐条件が成立又は無条件に分岐が行われることを示す分岐命令信号を出力するものであり,

命令キャッシュ20を有する命令プリフェッチ部10は,次サイクルにおいて実行する命令のアドレスを計算し,分岐が発生しない場合は前記計算されたアドレスにより,また,分岐が発生する場合は分岐アドレスバス上の分岐先アドレスにより分岐先アドレスの命令を読み出すものであり,

バス制御部60は,命令実行部50から分岐先アドレスバスを介して受信した分岐先アドレスを分岐アドレスレジスタ70に格納した後,分岐命令信号に基づいてバスアドレス情報を生成し,バスアドレス情報により分岐先アドレスをトレース装置に書き込むように制御することにより命令アドレストレースを行うマイクロプロセッサ。

 

【引用発明との相違点】(相違点2は判断していないため省略)

<相違点1>

制御信号の検出に基づいて受信したトレースすべき候補のアドレスをトレース位置に記憶させることに関して,

本願発明では,命令ポインタレジスタに順次保持された命令ポインタを受信し,命令ポインタと同時に送信される制御信号の検知に基づいてアドレスのうちの1つを選択するものであるのに対し,

引用発明では分岐先アドレスを受信し,分岐命令信号から生成されたバスアドレス情報に基づいてトレース装置に書き込むものである点。

 

以下、相違点1について分かりやすく解説された判決文中の説明を転載

「 なお,本願発明は,命令ポインタレジスタから出力され,CPUによって実行されるアドレス(命令ポインタ)のうち,命令トレースに必要な不連続アドレス(分岐先アドレス)のみを,アドレスの不連続を示す制御信号を用いて抽出するものである。

これに対し,引用発明においては,命令実行部がアドレス計算部を備え,分岐先アドレスを計算して出力するが,分岐が発生しない場合には,命令プリフェッチ部10において,次サイクルにおいて実行する命令のアドレスが計算され,命令キャッシュ内にある命令が読み出されるものであって,アドレス計算部から出力されるのは,不連続な分岐先アドレスのみであり,CPUによって実行される命令のアドレス全てを出力するものではないから,

引用発明におけるアドレス計算部は,本願発明における命令ポインタレジスタに対応するものともいえない。」

 

【知財高裁の判断】

当裁判所は,審決の相違点1に係る容易想到性判断には誤りがあり,審決は,その余の点について判断するまでもなく,これを取り消すべきものと判断する。・・・

 

審決は,相違点1に関して,引用発明において,本願発明のように,メモリにアクセスするアドレスを含む命令ポインタを,全て命令トレースコントローラに送っておき,不連続なアドレスを示す制御信号により命令トレースコントローラによって選択するようにすることは当業者が容易になし得たことであると認定,判断する。

しかし,審決の上記認定,判断には,誤りがある。すなわち,

 

(1) 本願発明に係る特許請求の範囲及び本願明細書の上記記載によれば,本願発明は,

《1》メモリから命令を取り出して実行する取り出し回路及び実行回路と,CPUによって実行される命令のメモリ内のアドレスを含む命令ポインタを順次保持する命令ポインタレジスタとを含んで構成され,前記CPUの実行回路は,取り出し回路に新しいメモリ位置から命令の取り出しを開始させると共に,前記アドレスの1つが,そのアドレスの前回アドレスのメモリ内の次に続くアドレスではないという不連続を示す制御信号を生成するよう動作可能であるオン-チップCPUと,

《2》前記アドレスを監視するように作動可能であり,トレースストレージ位置に接続されて,前記アドレスの1つが前記アドレスの前回アドレス後のメモリ内の次に続くアドレスではないことを検出したことに応じて,前記アドレスのうちの選択されたアドレスを前記トレース位置に記憶させる命令トレースコントローラと,を含んで構成される単一チップ集積回路装置である。

 

他方,引用文献1の上記記載によれば,

《1》引用発明は,命令用キャッシュメモリ装置を内蔵するマイクロプロセッサの実行状態をマイクロプロセッサ外部に出力する装置に関するものであること,

《2》マイクロプロセッサは,命令用のキャッシュを内蔵する場合,内蔵キャッシュがヒットしている場合には,命令の実行状況がマイクロプロセッサの外部に出力されず,マイクロプロセッサのアドレスバス及びデータバスの情報を記録するだけでは,マイクロプロセッサの実行する命令をトレースすることができないこと,

《3》他方,全ての命令のアドレスを記録すると容量の大きい記憶装置が必要となり,常にマイクロプロセッサの実行情報を外部に出力することは,マイクロプロセッサの性能低下を招く上,マイクロプロセッサの実行する命令のトレースを行う場合のみマイクロプロセッサの実行情報を出力する方法では,トレースを行う場合とそうでない場合で実行環境が大きく変化し,正確な情報を得ることが困難であるなどの課題があったこと,

《4》このような課題を解決するため,引用発明は,命令の実行の終了を示す命令終了信号と,分岐を行うことを示す分岐信号と,命令数をカウントする命令実行カウンタと,分岐先の命令のアドレスを計算し出力するアドレス計算部と,バス制御部などを備えた発明であることが認められる。

そして,引用発明においては,分岐が発生しない場合の命令アドレスは,命令プリフェッチ部10において計算され,分岐先アドレスはアドレス計算部により計算されるものであるからアドレス計算部により計算された分岐先アドレスに代えて命令ポインタレジスタから出力される全てのアドレスから,命令トレースに必要な不連続アドレスのみをアドレスの不連続を示す制御信号を用いて抽出する構成に変更することは,自明とはいえない。

 

そもそも,引用発明は,上記のとおり,分岐先アドレスを出力することで,出力される実行情報の量を抑制することを目的とするものであるから,引用発明において,この目的を達成することが可能なアドレス計算部の出力する分岐先アドレスを用いるのに代えて,実行する命令のアドレス全てを出力するとの構成に至る動機付けがない。むしろ,引用文献1の上記記載によれば,引用発明は,内蔵キャッシュがヒットしている場合,命令の実行状況がマイクロプロセッサのアドレスバスやデータバスに出力されない構成である上,常にマイクロプロセッサの実行情報をプロセッサの外部に出力することは,バスの競合が発生し,マイクロプロセッサの性能の低下を招くとの認識を前提としており,引用発明において,実行する命令のアドレス全てを出力するように構成することには,阻害事由があるといえる

 

これに対し,審決は,本願発明において,制御信号によって不連続であることが通知されたアドレス以外は,命令トレースコントローラで何ら使用されることなく,捨てられるだけであり,全ての命令ポインタを命令トレースコントローラに送ることによって格別の効果を生ずるものではないとして,相違点1は格別のものではないと認定,判断するが,不連続でないアドレスが利用されないからといって,引用発明から本願発明を容易に想到できたとはいえない。

 

以上によれば,引用発明において,本願発明のように,メモリにアクセスするアドレスを含む命令ポインタを,全て命令トレースコントローラに送っておき,不連続なアドレスを示す制御信号により命令トレースコントローラによって選択するようにすることは当業者が容易になし得たことであるとの審決の認定,判断には,誤りがある。

 

(2) これに対し,被告は,CPUの実行命令のトレースを行う装置において,実行アドレス値の出力のうちアドレスの変化の不連続を検出した時に,当該アドレス値をCPUに接続された手段にて記録するように構成することは周知技術である(甲2,4,乙3)から,上記周知技術にならって,引用発明において,実行命令をトレースするためCPUに接続されたバスインタフェース60においてアドレスの変化の不連続を検出した時に当該アドレス値を記録するように構成することは,当業者が容易に想到できたものであると主張する。

 

しかし,被告の上記主張は,失当である。すなわち,甲2,4,乙3には,連続したアドレスを含む命令のアドレスを出力し,アドレス変化が不連続であることを検出したときにアドレスを記録することは記載されているものの,上記のとおり,引用発明は,連続したアドレスを含む命令のアドレスを出力するものではないから,上記周知技術によっても引用発明から相違点1に係る構成に想到することが容易であるとはいえない。

 

・・・

 

3 結論

以上のとおり,審決の相違点1に係る容易想到性判断には誤りがあり,その余の点について判断するまでもなく,原告の請求には理由がある。その他,被告は,縷々主張するが,いずれも理由がない。よって,主文のとおり判決する。

 

【所感】

 引用発明は、分岐先アドレスを出力することで,出力される実行情報の量を抑制することを目的とするもののため、本願発明のように、実行する命令のアドレス全てを出力する構成に至る動機付けはない。また、「常にマイクロプロセッサの実行情報をプロセッサの外部に出力することは,バスの競合が発生し,マイクロプロセッサの性能の低下を招く」という引用発明の課題を考慮すると、本願発明のように、実行する命令のアドレス全てを出力するように構成することには阻害要因がある。よって、裁判所の判断は妥当である。

 ただし、原告および被告が示した証拠(甲2,4,乙3)には、「CPUの実行命令のトレースを行う装置において,実行アドレス値の出力のうちアドレスの変化の不連続を検出した時に当該アドレス値を,CPUに接続された手段にて記録するように構成すること」が記載されているようなので、これらの証拠を主引例とした場合には、異なる判断になった可能性があると考える。