• ポートフォリオ機能


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

  • この表をプリントする
PDF PDFをダウンロード
審決分類 審判 査定不服 2項進歩性 特許、登録しない。 G06F
管理番号 1235614
審判番号 不服2009-1379  
総通号数 138 
発行国 日本国特許庁(JP) 
公報種別 特許審決公報 
発行日 2011-06-24 
種別 拒絶査定不服の審決 
審判請求日 2009-01-15 
確定日 2011-04-18 
事件の表示 特願2004-528735「超長命令語プロセッサにおける可変長命令の処理を可能にさせる装置、方法およびコンパイラ」拒絶査定不服審判事件〔平成16年 2月26日国際公開、WO2004/017197、平成17年11月24日国内公表、特表2005-535974〕について、次のとおり審決する。 
結論 本件審判の請求は、成り立たない。 
理由 第1.手続の経緯
本願は、
2003年7月18日(パリ条約による優先権主張外国庁受理2002年8月16日、欧州特許庁)を国際出願日とする出願であって、
平成17年2月16日に特許法第184条の5第1項に規定される書面が提出されるとともに、国際出願日における明細書、請求の範囲及び要約の翻訳文が提出され、
平成20年5月21日付けで最初の拒絶理由通知(同年同月23日発送)がなされ、
同年9月22日付けで意見書が提出されるとともに、手続補正がなされ、
同年10月22日付けで拒絶査定(同年同月24日発送)がなされ、
平成21年1月15日付けで審判請求されたものである。

第2.本願発明の認定
本願の請求項10に係る発明(以下、「本願発明」という。)は、平成20年9月22日付けの手続補正により補正された、本願の特許請求の範囲の請求項10に記載されたとおりの次のものと認められる。

「NOP演算の符号化のための専用ビットを含む圧縮VLIW命令にグループ化される命令のセットの系列を備えた情報担体であって、
前記、命令のセットは並列実行のため配列され、前記命令セットは少なくとも第1の命令および第2の命令を含み、
前記生成された命令のセットの系列が、少なくとも第1の発行スロットおよび第2の発行スロットを具備した処理装置による実行のため配列され、前記第1の発行スロットが前記第1の命令に対応した第1の固定幅の第1の制御語によって制御され、前記第2の発行スロットが前記第2の命令に対応した第2の固定幅の第2の制御語によって制御され、前記第1の制御語の幅が前記第2の制御語の幅とは異なる、
情報担体。」

第3.引用発明の認定
3の1.引用例1に記載されている技術的事項
原審が拒絶理由通知において引用した特開平11-7387号公報(平成11年1月12日出願公開。以下、「引用例1」という。)には、図面とともに以下の技術事項が記載されている。

(1-1)
「【0003】VLIWプロセッサは、内部に複数の演算ユニットを備え、1個のVLIWに置かれた複数のオペレーションを同時並列に実行する。このようなVLIWは、コンパイラ(に)よってソースプログラムにおけるオペレーションレベルでの並列性が検出されスケジューリングされた後に生成されたものである。ところが、特に機器組み込み用途においては、プログラムのコードサイズが問題となるために、256ビットの如く長いVLIWや、無動作命令(以下、「NOP命令」という。)が頻繁に挿入されたコード効率の悪いVLIWは好ましくない。」(上記の「(に)」の部分は明らかな脱字であるので、当審が補った。)

(1-2)
「【0013】本プロセッサは、VLIWプロセッサであり、32ビット固定長の命令を解読実行する。図1(a)は、本プロセッサが実行する命令50のフィールド構成を示す図である。図1(b)?図1(d)は16種類の命令フォーマットを示す図であり、そのうち、図1(b)は3オペレーション …(中略)… を同時に指定できる命令フォーマットである。
【0014】この命令50は、32ビット固定長であり、4ビットずつに区切られた8個のフィールド(上位よりP0.0フィールド51、P1.0フィールド52、…、P3.2フィールド58)からなる。なお、P2.0フィールド53?P2.2フィールド55のグループをまとめて第1演算フィールド59と呼び、P3.0フィールド56?P3.2フィールド58のグループをまとめて第2演算フィールド60と呼ぶ。」

(1-3)
「【0021】次に、図1(a)に示された各フィールド51、52、59、60の特徴を説明する。 …(中略)…
【0022】P1.0フィールド52は、定数又は分岐用のオペコードを置くためのフィールドである。このP1.0フィールド52に定数が置かれた場合(フォーマットコード=0、1、4?9の場合)には、その定数は、定数レジスタ36に格納する対象となる場合(フォーマットコード=0、1、4、5の場合) …(中略)… がある。 …(中略)…
【0023】一方、このP1.0フィールド52に分岐用のオペコード“cc”が置かれた場合(フォーマットコード=2、3、Aの場合)には、定数レジスタ36に格納された定数を分岐先の絶対番地として、又は、相対番地(ディスプレースメント)として分岐することを意味する。第1演算フィールド59は、本プロセッサと外部(メモリ)とのデータの転送を伴わないオペレーション(算術論理演算、レジスタ間転送)を指定するためのオペコードとオペランド(ソース及びデスティネーション)との組又は定数が置かれる。
【0024】第2演算フィールド60は、上記第1演算フィールド59の場合に加えて、本プロセッサと外部(メモリ)とのデータの転送を伴う(オ)ペレーション(レジスタ・メモリ間転送)を指定するためのオペコードとオペランドとの組が置かれることもある。 …(後略)…」(上記の「(オ)」の部分は明らかな脱字であるので、当審が補った。)

(1-4)
「【0026】第2に、本プロセッサでは、1個の命令に最大3つのオペレーションを指定することができるが、その場合には、図1(b)に示された3オペレーション用の命令フォーマットから判るように、それら3つのオペレーションの種類は次のいずれかの組み合わせになる。
(1)4ビットの定数を定数レジスタ36にセットするオペレーションと2個の汎用オペレーション(フォーマットコードが“0”、“1”の場合)
(2)定数レジスタ36にセットされた値を絶対番地又は相対番地として分岐するオペレーションと2個の汎用オペレーション(フォーマットコードが“2”、“3”の場合)
このように、本プロセッサの命令は、わずか32ビット長でありながら最大3つのオペレーションを同時に指定することができるコード効率の高いフィールド構成を有している。」

(1-5)
「【0027】図3は、本発明に係るプロセッサのハードウェア構成を示すブロック図である。本プロセッサは、上述したように、最大3つのオペレーションを並列実行するVLIWプロセッサであり、大きく分けて、命令レジスタ10、解読部20及び実行部30から構成される。
【0028】命令レジスタ10は、命令フェッチ部39から送られてきた1個の命令を保持する32ビットのレジスタである。解読部20は、命令レジスタ10に保持された命令を解読し、その解読結果に応じた制御線を実行部30に出力するものであり、大きく分けて、フォーマットデコーダ21と命令デコーダ22とからなる。
【0029】命令デコーダ22はさらに、P1.0フィールド12に保持されたオペコード“cc”を解読しその結果に基づいてPC部33を制御する分岐デコーダ23と、P2.0フィールド13に保持されたオペコードを解読しその結果に基づいて第1演算部37を制御する第1演算デコーダ24と、P3.0フィールド16に保持されたオペコードを解読しその結果に基づいて第2演算部38及びオペランドアクセス部40を制御する第2演算デコーダ25とからなる。」

(1-6)
「【0031】 …(中略)… 実行部30は、解読部20での解読結果に基づいて、最大3つのオペレーションを並列実行する回路ユニットであり、実行制御部31、PC部33、レジスタ群34、第1演算部37、第2演算部38、命令フェッチ部39及びオペランドアクセス部40からなる。 …(後略)… 」

(1-7)
「【0033】PC(プログラムカウンタ)部33は、分岐デコーダ23による制御の下で、次に解読実行すべき命令が置かれている図示されていない外部メモリ上のアドレスを命令フェッチ部39に出力する。命令フェッチ部39は、32ビットのIA(インストラクションアドレス)バス及び32ビットのID(インストラクションデータ)バスを通じて図示されていない外部メモリから命令ブロックをフェッチし、内部の命令キャッシュに保持すると共に、PC部33から出力されたアドレスに相当する命令を命令レジスタ10に供給する。」

(1-8)
「【0035】第1演算部37は、2個の32ビットデータに対して算術論理演算を行なうALUと乗算を行う乗算器とを内部に有し、第1演算デコーダ24による制御の下で2種類のオペレーション(算術論理演算とレジスタ間転送)を実行する。第2演算部38も、第1演算部37と同様に、2個の32ビットデータに対して算術論理演算を行なうALUと乗算を行う乗算器とを内部に有し、第2演算デコーダ25による制御の下で2種類のオペレーション(算術論理演算とレジスタ間転送)を実行する。
【0036】オペランドアクセス部40は、第2演算デコーダによる制御の下でレジスタ群34と図示されていない外部メモリとの間でオペランドの転送を行なう回路であり、そのオペランドやオペランドアドレスを保持するバッファを内部に有する。 …(後略)… 」

(1-9)
「【0061】 …(中略)… (2)また、32ビット固定長命令によって3個のオペレーションを同時に指定することができる命令の構造として、図1(a)に示された命令構造の他に、図14(a)?図14(d)に示された命令構造とすることもできる。 …(中略)…
【0062】 …(中略)… 図14(b)?図14(d)に示された構造の命令であれば、上記実施形態の命令に比較し、2個のオペコード(“op2”、“op3”)の桁数が大きいので、より多くの種類のオペレーションを定義することができる点において優る。 …(後略)… 」

(1-10)
「【0064】これによって、命令中の全てのオペレーションフィールドが同じ語長でなければならないという制限から解放され、コード効率のよい命令フォーマットを定義することが可能となるので、比較的短い語長の命令であって、かつ、同時に多くのオペレーションを指定することができるコード効率のよい構造を有する命令を実行するVLIWプロセッサが実現される。
…(中略)…
【0066】また、複数のオペレーションフィールドからなる命令を実行するVLIWプロセッサにおいて、前記オペレーションフィールドのうち少なくとも1つはオペランドの数が異なるものであるとすることもできる。これによって、命令中の全てのオペレーションフィールドが同じ個数のオペランドを有さなければならないという制限から解放されるので、コード効率のよい命令フォーマットを定義することが可能となる。」

(1-11)
命令50を構成するP1.0フィールドについて、【図1】では52という番号が付されている一方で、【図3】では12という番号が付されている。同様に、P2.0フィールドについて、【図1】では53という番号が付されている一方で、【図3】では13という番号が付されている。P2.1フィールドについて、【図1】では54という番号が付されている一方で、【図3】では14という番号が付されている。P2.2フィールドについて、【図1】では55という番号が付されている一方で、【図3】では15という番号が付されている。P3.0フィールドについて、【図1】では56という番号が付されている一方で、【図3】では16という番号が付されている。P3.1フィールドについて、【図1】では57という番号が付されている一方で、【図3】では17という番号が付されている。P3.2フィールドについて、【図1】では58という番号が付されている一方で、【図3】では18という番号が付されている。

3の2.引用例1発明の認定
上記(1-2)の「本プロセッサは、VLIWプロセッサであり、32ビット固定長の命令を解読実行する。図1(a)は、本プロセッサが実行する命令50のフィールド構成を示す図である。図1(b)?図1(d)は16種類の命令フォーマットを示す図であり、そのうち、図1(b)は3オペレーション …(中略)… を同時に指定できる命令フォーマットである。この命令50は、32ビット固定長であり、4ビットずつに区切られた8個のフィールド(上位よりP0.0フィールド51、P1.0フィールド52、…、P3.2フィールド58)からなる。なお、P2.0フィールド53?P2.2フィールド55のグループをまとめて第1演算フィールド59と呼び、P3.0フィールド56?P3.2フィールド58のグループをまとめて第2演算フィールド60と呼ぶ。」という記載、上記(1-3)の「このP1.0フィールド52に分岐用のオペコード“cc”が置かれた場合(フォーマットコード=2、3、Aの場合)には、定数レジスタ36に格納された定数を分岐先の絶対番地として、又は、相対番地(ディスプレースメント)として分岐することを意味する。第1演算フィールド59は、本プロセッサと外部(メモリ)とのデータの転送を伴わないオペレーション(算術論理演算、レジスタ間転送)を指定するためのオペコードとオペランド(ソース及びデスティネーション)との組 …(中略)… が置かれる。第2演算フィールド60は、上記第1演算フィールド59の場合に加えて、本プロセッサと外部(メモリ)とのデータの転送を伴う(オ)ペレーション(レジスタ・メモリ間転送)を指定するためのオペコードとオペランドとの組が置かれることもある。」という記載、及び、上記(1-11)の記載から、引用例1におけるVLIWプロセッサのための命令50は、P1.0フィールド52(または12)に格納されるオペコード、第1演算フィールド59(または13乃至15)に格納されるオペコード及びオペランド、及び、第2演算フィールド60(または16乃至18)に格納されるオペコード及びオペランドからなる、命令のセットを含むVLIW命令であると認められる。
また、上記(1-5)の「本プロセッサは、上述したように、最大3つのオペレーションを並列実行するVLIWプロセッサであり、」という記載から、VLIW命令にグループ化される上記した命令のセットは並列実行のために配列されているものと認められる。
さらに、上記(1-7)の「命令フェッチ部39は、32ビットのIA(インストラクションアドレス)バス及び32ビットのID(インストラクションデータ)バスを通じて図示されていない外部メモリから命令ブロックをフェッチし、 …(中略)… PC部33から出力されたアドレスに相当する命令を命令レジスタ10に供給する。」という記載と、上記(1-5)の「命令レジスタ10は、命令フェッチ部39から送られてきた1個の命令を保持する32ビットのレジスタである。」という記載から、外部メモリから、VLIW命令にグループ化される上記した命令のセットが順次フェッチされるものと認められるので、外部メモリは、VLIW命令にグループ化される上記した命令のセットの系列を備えるものと認められる。

上記(1-1)の「VLIWプロセッサは、内部に複数の演算ユニットを備え、1個のVLIWに置かれた複数のオペレーションを同時並列に実行する。このようなVLIWは、コンパイラ(に)よってソースプログラムにおけるオペレーションレベルでの並列性が検出されスケジューリングされた後に生成されたものである。」という記載から、VLIW命令にグループ化される上記した命令のセットはコンパイラに基づいて生成されたものであると認められる。

上記(1-2)の「この命令50は、32ビット固定長であり、4ビットずつに区切られた8個のフィールド(上位より …(中略)… P1.0フィールド52、…(中略)… )からなる。」という記載、上記(1-5)の「P1.0フィールド12に保持されたオペコード“cc”を解読しその結果に基づいてPC部33を制御する分岐デコーダ23」という記載、上記(1-7)の「PC(プログラムカウンタ)部33は、分岐デコーダ23による制御の下で、次に解読実行すべき命令が置かれている図示されていない外部メモリ上のアドレスを命令フェッチ部39に出力する。」という記載、及び、上記(1-11)の記載から、分岐デコーダ23及びPC(プログラムカウンタ)部33がP1.0フィールド52(または12)に格納されるオペコードに対応した4ビットの固定幅の制御語によって制御されるものと認められる。
上記(1-2)の「この命令50は、32ビット固定長であり、4ビットずつに区切られた8個のフィールド( …(中略)… )からなる。なお、P2.0フィールド53?P2.2フィールド55のグループをまとめて第1演算フィールド59と呼び」という記載、上記(1-3)の「第1演算フィールド59は、本プロセッサと外部(メモリ)とのデータの転送を伴わないオペレーション(算術論理演算、レジスタ間転送)を指定するためのオペコードとオペランド(ソース及びデスティネーション)との組 …(中略)… が置かれる。」という記載、上記(1-5)の「P2.0フィールド13に保持されたオペコードを解読しその結果に基づいて第1演算部37を制御する第1演算デコーダ24」という記載、上記(1-8)の「第1演算部37は、2個の32ビットデータに対して算術論理演算を行なうALUと乗算を行う乗算器とを内部に有し、第1演算デコーダ24による制御の下で2種類のオペレーション(算術論理演算とレジスタ間転送)を実行する。」という記載、及び、上記(1-11)の記載から、第1演算デコーダ24及び第1演算部37が第1演算フィールド59(または13乃至15)に格納されるオペコード及びオペランドに対応した12ビットの固定幅の制御語によって制御されるものと認められる。
上記(1-2)の「この命令50は、32ビット固定長であり、4ビットずつに区切られた8個のフィールド(上位より …(中略)… P3.2フィールド58)からなる。なお、 …(中略)… P3.0フィールド56?P3.2フィールド58のグループをまとめて第2演算フィールド60と呼ぶ。」という記載、上記(1-3)の「第1演算フィールド59は、本プロセッサと外部(メモリ)とのデータの転送を伴わないオペレーション(算術論理演算、レジスタ間転送)を指定するためのオペコードとオペランド(ソース及びデスティネーション)との組 …(中略)… が置かれる。」及び「第2演算フィールド60は、上記第1演算フィールド59の場合に加えて、本プロセッサと外部(メモリ)とのデータの転送を伴う(オ)ペレーション(レジスタ・メモリ間転送)を指定するためのオペコードとオペランドとの組が置かれることもある。」という記載、上記(1-5)の「P3.0フィールド16に保持されたオペコードを解読しその結果に基づいて第2演算部38及びオペランドアクセス部40を制御する第2演算デコーダ25」という記載、上記(1-8)の「第2演算部38も、第1演算部37と同様に、2個の32ビットデータに対して算術論理演算を行なうALUと乗算を行う乗算器とを内部に有し、第2演算デコーダ25による制御の下で2種類のオペレーション(算術論理演算とレジスタ間転送)を実行する。」及び「オペランドアクセス部40は、第2演算デコーダによる制御の下でレジスタ群34と図示されていない外部メモリとの間でオペランドの転送を行なう回路であり、そのオペランドやオペランドアドレスを保持するバッファを内部に有する。」という記載、及び、上記(1-11)の記載から、第2演算デコーダ25、第2演算部38及びオペランドアクセス部40が第2演算フィールド60(または16乃至18)に格納されるオペコード及びオペランドに対応した12ビットの固定幅の制御語によって制御されるものと認められる。
上記で示したように、分岐デコーダ23及びPC(プログラムカウンタ)部33がP1.0フィールド52(または12)に格納されるオペコードに対応した4ビットの固定幅の制御語によって制御され、第1演算デコーダ24及び第1演算部37が第1演算フィールド59(または13乃至15)に格納されるオペコード及びオペランドに対応した12ビットの固定幅の制御語によって制御され、第2演算デコーダ25、第2演算部38及びオペランドアクセス部40が第2演算フィールド60(または16乃至18)に格納されるオペコード及びオペランドに対応した12ビットの固定幅の制御語によって制御されるものであるので、命令のセットの系列が、分岐デコーダ23及びPC(プログラムカウンタ)部33と、第1演算デコーダ24及び第1演算部37と、第2演算デコーダ25、第2演算部38及びオペランドアクセス部40とを具備したVLIWプロセッサによる実行のため配列されるものと認められ、また、P1.0フィールド52(または12)に格納されるオペコードに対応した制御語の幅(4ビット)と第1演算フィールド59(または13乃至15)に格納されるオペコード及びオペランドに対応した制御語の幅(12ビット)とは異なり、P1.0フィールド52(または12)に格納されるオペコードに対応した制御語の幅(4ビット)と第2演算フィールド60(または16乃至18)に格納されるオペコード及びオペランドに対応した制御語の幅(12ビット)とは異なるものと認められる。

上記引用例1の記載事項及び図面を総合勘案すると、引用例1には、次の発明(以下、「引用例1発明」という。)が記載されていると認められる。

「VLIW命令にグループ化される命令のセットの系列を備えた外部メモリであって、
命令のセットは並列実行のため配列され、命令のセットは、P1.0フィールド52(または12)に格納されるオペコード、第1演算フィールド59(または13乃至15)に格納されるオペコード及びオペランド、及び、第2演算フィールド60(または16乃至18)に格納されるオペコード及びオペランドを含み、
コンパイラに基づいて生成された命令のセットの系列が、分岐デコーダ23及びPC(プログラムカウンタ)部33と、第1演算デコーダ24及び第1演算部37と、第2演算デコーダ25、第2演算部38及びオペランドアクセス部40とを具備したVLIWプロセッサによる実行のため配列され、分岐デコーダ23及びPC(プログラムカウンタ)部33がP1.0フィールド52(または12)に格納されるオペコードに対応した4ビットの固定幅の制御語によって制御され、第1演算デコーダ24及び第1演算部37が第1演算フィールド59(または13乃至15)に格納されるオペコード及びオペランドに対応した12ビットの固定幅の制御語によって制御され、第2演算デコーダ25、第2演算部38及びオペランドアクセス部40が第2演算フィールド60(または16乃至18)に格納されるオペコード及びオペランドに対応した12ビットの固定幅の制御語によって制御され、P1.0フィールド52(または12)に格納されるオペコードに対応した制御語の幅(4ビット)と第1演算フィールド59(または13乃至15)に格納されるオペコード及びオペランドに対応した制御語の幅(12ビット)とは異なり、P1.0フィールド52(または12)に格納されるオペコードに対応した制御語の幅(4ビット)と第2演算フィールド60(または16乃至18)に格納されるオペコード及びオペランドに対応した制御語の幅(12ビット)とは異なる、
外部メモリ。」

3の3.周知例に記載されている技術的事項
3の3の1.周知例1に記載された技術的事項
原審が拒絶理由通知において引用した国際公開第98/27486号(1998年6月25日国際公開。以下、「周知例1」という。)には、図面とともに以下の技術事項が記載されている。(なお、周知例1の下記の記載事項に付した仮訳は、当審が訳出したものである。)

「Other portions of the program may not require all of the resources of processor. In this case, some of the execution units are idle, and one or more operation fields of the VLIW are not filled. The number of unfilled operation fields in a program may be significant. Storing instruction words with significant numbers of unfilled operation fields in memory is wasteful of valuable memory space. To avoid inefficient use of memory techniques, for storing wide instruction words in compressed format have been proposed.
In one prior art approach, compressed instruction words are stored with a mask word. The operation fields of the instruction words are stored in consecutive memory locations, or words. The mask word encodes where the memory words are inserted in the expanded instruction word. Since the mask word is normally only a few bits wide, two or more mask words can be grouped in the same memory word. This approach is illustrated in Fig.1. An instruction word pair is stored in compressed format in memory as a mask word 20 followed in consecutive memory locations by operations W00, W02, W05, W06, and W07 of a first instruction word and operations W12 and W14 of a second instruction word. A mask field 22 in mask word 20 indicates the locations of the operations W00, W02, W05, W06 and W07 in a first line 34 of instruction cache 24, and mask field 26 indicates the positions of operations W12 and W14 in a second line 36 of instruction cache 24. 」
(明細書第2頁第7行目?同頁第27行目。
仮訳:プログラムの他の部分はプロセッサのリソースの全てを必要とするわけではないかもしれない。この場合には、実行ユニットのいくつかはアイドルとなり、VLIWの1つまたは複数のオペレーションフィールドは満たされない。プログラム内における満たされないオペレーションフィールドの数は重要である。満たされないオペレーションフィールドを多く持つ命令語をメモリに格納することは、高価なメモリスペースの浪費になる。メモリの非効率な利用を避けるために、長い命令語を圧縮した形式で格納する技術が提案されてきた。
従来技術におけるアプローチでは、圧縮された命令語はマスク語とともに格納される。命令語内の各オペレーションフィールドは、連続したメモリロケーション、つまり、連続した語に格納される。伸長された命令語においてメモリ語をどこに挿入するのかを示す符号を、マスク語は持つ。マスク語は通常数ビットであるので、2つまたはそれ以上のマスク語は同じメモリ語内にグループ化することができる。このアプローチは図1に図示されている。命令語のペアはメモリに圧縮された形式で格納され、連続したメモリロケーションにおいて、マスク語20の後に、第1の命令語内のオペレーションW00、W02、W05、W06、W07と、第2の命令語内のオペレーションW12、W14が続いている。マスク語20内のマスクフィールド22は、命令キャッシュ24内の第1のライン34における、オペレーションW00、W02、W05、W06、W07の位置を示す。また、マスクフィールド26は、命令キャッシュ24内の第2のライン36における、オペレーションW12、W14の位置を示す。)

3の3の2.周知例2に記載された技術的事項
本願の優先日前に頒布された刊行物である国際公開第02/061574号(2002年8月8日国際公開。以下、「周知例2」という。)には、図面とともに以下の技術事項が記載されている。(なお、周知例2の下記の各記載事項に付した仮訳は、周知例2のパテントファミリである特表2004-519028号に基づくものである。)

(周知例2の1)
「In operation, instruction issue unit 32 fetches memory lines from memory 30 , decompresses instructions from the memory lines and sends the instructions to the instruction processing unit 34 for execution. The instruction processing unit 34 decodes the instructions, fetches operands of the instruction, executes the instructions and writes back results of the instructions. By way of example, the invention will be discussed for a VLIW processor (VLIW=Very Large Instruction Word), which has a number of issue slots 340a-c for receiving respective instructions (usually called "operations") that the processor will execute in parallel. 」
(明細書第7頁第13行目?同頁第20行目。
仮訳:動作において、命令発行ユニット32は、メモリ30からメモリ・ラインをフェッチし、メモリ・ラインからの命令を解凍し、命令を実行のために命令処理ユニット34へ送る。命令処理ユニット34は、命令をデコードし、命令のオペランドをフェッチし、命令を実行し、命令の結果を書き戻す。例として、本発明はVLIWプロセッサについて説明されることになる(VLIW=Very Large Instruction Word、極長命令ワード)。VLIWプロセッサは、並列に実行するそれぞれの命令(通常、「操作」と呼ばれる)を受け取るための多数の発行スロット340a?340cを有する。)

(周知例2の2)
「The VL^(2)IW instruction format depicted in FIG.1 comprises a header 1 followed by a number of operation segments 2. The number of operation segments 2 may not exceed the number of operations which the processor can issue in parallel, in this case C. The header 1 contains C expansion control bits E_(1) . . . E_(C) . In case the i^(th) slot should execute a Non-Operative (NOP) operation, the expansion control bit E_(i) is '0'. Otherwise it is '1' and the VL^(2)IW contains an operation segment for issue slot i.
When a slot executes a NOP operation, this means that the slot in question is idle during the clock cycle in question. In the VLIW architecture a group of instructions is executed simultaneously. In order to do this it is necessary to ensure that the individual instructions are not dependent on each other. For this purpose it may be necessary to include NOPs in the instructions. When an instruction is compressed this is normally done by removing the NOPs. When the instructions at a later time are to be executed the NOPs have to be re-inserted in order to comply with the requirement that the instructions being executed simultaneously are not dependent on each other.」
(明細書第9頁第11行目?同頁第24行目。
仮訳:図1に示されるVL^(2)IW命令フォーマットは、ヘッダ1、およびそれに続いた多数の操作セグメント2を含む。操作セグメント2の数は、プロセッサが並列に発行することのできる操作の数、この場合はC、を超過してはならない。ヘッダ1はC個の伸長制御ビットE_(1)...E_(C)を含む。i番目のスロットが無操作(NOP)を実行する場合、伸長制御ビットE_(i)は「0」である。そうでない場合、それは「1」であり、VL^(2)IWは発行スロットiのために操作セグメントを含む。
スロットがNOP操作を実行する時に、それは問題のスロットが問題のクロック・サイクルの間アイドルであることを意味する。VLIWアーキテクチャにおいて、命令のグループが同時に実行される。これを行なうため、個々の命令は相互に依存しないことを確認することが必要である。この目的のため、命令の中にNOPを含めることが必要であるかも知れない。命令が圧縮される時に、これは通常NOPを除去することによって行なわれる。命令が後の時点で実行されなければならない時に、同時に実行される命令が相互に依存しないという要件を満足させるため、NOPが再挿入されなければならない。)

(周知例2の3)
「Figure 4 shows a flow chart of a instruction generation process for a program of instructions, as executed for example by a compiler program that compiles instructions for the VLIW processor. The flow chart contains a first step 41 in which the operations in an instruction are generated. In the header of the instruction the P, S and R bits are cleared. In a second step 42 it is determined whether the instruction contains NOP operations. If not, a third step 43a is executed which sets the instruction length to the full instruction length and fills the expansion control bits so as to indicate that no issue slot should receive a NOP. If there are NOPs in the instruction, an alternative step 43b is executed, in which the non-NOP operations are moved to the positions of the NOP operations, effectively cutting the NOPS out of the instruction. The expansion control bits are set to indicate the position(s) of the NOPs and the length is set according to the number of non-NOP operations left in the instruction.」
(明細書第14頁第24行目?第15頁第2行目。
仮訳:図4は、命令のプログラムのために、例えば、VLIWプロセッサの命令をコンパイルするコンパイラ・プログラムによって実行される命令生成プロセスのフローチャートである。フローチャートは、命令内の操作が生成される最初のステップ41を含む。命令のヘッダの中で、P、S、およびRビットがクリアされる。2番目のステップ42において、命令がNOP操作を含むか否かが決定される。もし含まなければ、3番目のステップ43aが実行される。ステップ43aは、命令の長さをフル命令長へ設定し、発行スロットがNOPを受け取らないことを指示するように、伸長制御ビットを充填する。もし命令の中にNOPがあれば、代替のステップ43bが実行される。ステップ43bにおいて、非NOP操作がNOP操作の位置へ移動され、命令からNOPを効果的にカットする。伸長制御ビットは、NOPの位置を指示するように設定され、長さは、命令の中に残された非NOP操作の数に従って設定される。)

3の3の3.周知例3に記載された技術的事項
本願の優先日前に頒布された刊行物である特開平4-40525号公報(平成4年2月10日出願公開。以下、「周知例3」という。)には、図面とともに以下の技術事項が記載されている。

「第3図は実施例の構成図である。外部メインメモリ22には可変長命令パケットにより命令が格納されている。マイクロプロセッサ21はこの可変長命令パケットを固定長命令パケットに変換する必要がある。パケット内の命令フォーマットを第4図に示す。第4図(a)は固定長命令パケットである。これは第3図の並列実行ユニット28の並列処理にあわせて決められる。第4図(b)は可変長命令パケットを固定長命令パケットに変換する方法を示す。可変長命令パケット42は4命令分のフィールドを持ちヘッダ1命令と有効な3命令で構成される。まずヘッダ内に10101という情報を持つ。これは固定長命令パケットに対応し1の部分は命令が有効で0の部分はダミー命令をいれることを意味する。これにより固定長命令パケット43が作成できる。第3図では1命令ずつ外部メインメモリ22よりフェッチしFirstInput-FirstOutput方式のプリフェチキュー23にいれてゆく。第4図(b)の例ではヘッダ、整数演算命令、load命令、分岐命令の順にプリフェッチキュー23に入ってゆく。まずプリフェッチキュー23よりセレクタ24にヘッダ情報がはいる。つぎにヘッダ情報の10101に従い5命令長パケツト26の左端より右端へ1ならプリフェッチキュー23より命令を入力し0ならダミー命令を入力してゆく。5命令長パケツト26にいれ終わったら、パケットキャッシュ27に移す。並列実行ユニット28は実行するパケットをパケットキャッシュよりフェッチし実行する。並列実行ユニット28中には、整数演算処理29、浮動小数点処理30、load処理31、store処理32、分岐処理33が含まれ、それぞれの処理命令フィールドを並列にデコードし実行することにより並列処理可能となっている。」
(第2頁右上欄第3行目?同頁左下欄第18行目)

3の3の4.周知例4に記載された技術的事項
原審が拒絶理由通知において引用した特表2001-515635号公報(平成13年9月18日国内公表。以下、「周知例4」という。)には、図面とともに以下の技術事項が記載されている。

「VLIWプロセッサの例は、フィリップスエレクトロニクス社のTM-1000プロセッサ(TriMedia)である。 …(中略)… VLIWプロセッサの場合、インストラクションの並列実行は、単一の長いインストラクションワードにおいて多重基本マシンコマンドを結合することによって得られる。 …(中略)…
TM-1000のプロセッサは、非常に長いインストラクションワード発行レジスタの各発行スロットに、各々、コマンドを並列に発生させる。各発行スロットは、機能ユニットの各グループと、レジスタファイルへの2つの読み込みポートと1つの書き込みポートとに関連している。特定のコマンドは、特定の発行スロットに関連するグループの機能ユニットの中の特定のユニットに向けられている。」
(第6頁第8行目?同頁第22行目)

3の4.NOP演算のための専用ビットを含む圧縮VLIW命令に関する周知技術の認定
周知例1の「圧縮された命令語はマスク語とともに格納される。命令語内の各オペレーションフィールドは、連続したメモリロケーション、つまり、連続した語に格納される。伸長された命令語においてメモリ語をどこに挿入するのかを示す符号を、マスク語は持つ。」及び「マスク語20内のマスクフィールド22は、命令キャッシュ24内の第1のライン34における、オペレーションW00、W02、W05、W06、W07の位置を示す。また、マスクフィールド26は、命令キャッシュ24内の第2のライン36における、オペレーションW12、W14の位置を示す。」という記載、周知例2における、上記(周知例2-2)の「図1に示されるVL^(2)IW命令フォーマットは、ヘッダ1、およびそれに続いた多数の操作セグメント2を含む。操作セグメント2の数は、プロセッサが並列に発行することのできる操作の数、この場合はC、を超過してはならない。ヘッダ1はC個の伸長制御ビットE_(1)...E_(C)を含む。i番目のスロットが無操作(NOP)を実行する場合、伸長制御ビットE_(i)は「0」である。そうでない場合、それは「1」であり、VL^(2)IWは発行スロットiのために操作セグメントを含む。」及び「命令が圧縮される時に、これは通常NOPを除去することによって行なわれる。命令が後の時点で実行されなければならない時に、同時に実行される命令が相互に依存しないという要件を満足させるため、NOPが再挿入されなければならない。」という記載、上記(周知例2-3)の「もし命令の中にNOPがあれば、代替のステップ43bが実行される。ステップ43bにおいて、非NOP操作がNOP操作の位置へ移動され、命令からNOPを効果的にカットする。伸長制御ビットは、NOPの位置を指示するように設定され、長さは、命令の中に残された非NOP操作の数に従って設定される。」という記載、周知例3の「第4図(b)は可変長命令パケットを固定長命令パケットに変換する方法を示す。可変長命令パケット42は4命令分のフィールドを持ちヘッダ1命令と有効な3命令で構成される。まずヘッダ内に10101という情報を持つ。これは固定長命令パケットに対応し1の部分は命令が有効で0の部分はダミー命令をいれることを意味する。これにより固定長命令パケット43が作成できる。」という記載に例示されるような、NOP演算の符号化のための専用ビット(周知例1における「マスク語」、周知例2における「伸長制御ビット」(周知例2のFIG.1では「E_(1)...E_(C)」で示されるビット、FIG.2では「expansion」で示されるビット)、周知例3における「ヘッダ」。)を用いてVLIW命令を圧縮することは当業者には周知である(以下、当該周知技術を「周知技術1」という。)。

3の5.VLIWプロセッサにおける発行スロットに関する周知技術の認定
周知例2における、上記(周知例2の1)の「VLIWプロセッサは、並列に実行するそれぞれの命令(通常、「操作」と呼ばれる)を受け取るための多数の発行スロット340a?340cを有する。」という記載、周知例4の「VLIWプロセッサの場合、インストラクションの並列実行は、単一の長いインストラクションワードにおいて多重基本マシンコマンドを結合することによって得られる。」及び「TM-1000のプロセッサは、非常に長いインストラクションワード発行レジスタの各発行スロットに、各々、コマンドを並列に発生させる。各発行スロットは、機能ユニットの各グループと、レジスタファイルへの2つの読み込みポートと1つの書き込みポートとに関連している。特定のコマンドは、特定の発行スロットに関連するグループの機能ユニットの中の特定のユニットに向けられている。」という記載に例示されるような、VLIW命令に含まれる各命令に対応した制御語毎に、制御される対象である発行スロットをVLIWプロセッサに設けることは当業者には周知である(以下、当該周知技術を「周知技術2」という。)

第4.対比
本願発明と引用例1発明とを比較する。

本願においては「情報担体」という語については、請求項10に「NOP演算の符号化のための専用ビットを含む圧縮VLIW命令にグループ化される命令のセットの系列を備えた情報担体」と記載され、また請求項10の末尾に「情報担体。」と記載されている他は、明細書の【0004】に「本発明は、少なくとも第1および第2の命令を含み並列実行のため配列された命令のセットの系列を備えた情報担体にさらに関係する。」と記載され、明細書の【0019】に「データを処理する本発明による処理装置によって実行される命令のセットの系列を含む情報担体は請求項14に記載されている。」と記載され、平成20年9月22日付け手続補正書による手続補正前の請求項14に「少なくとも第1の命令および第2の命令を含み並列実行のため配列された命令のセットの系列を備えた情報担体」と記載され、同請求項14の末尾に「情報担体。」と記載されているのみである。よって「情報担体」は、命令セットの系列をなんらかの形で保持したものであると解される。そのため、引用例1発明における「外部メモリ」は、VLIW命令にグループ化される命令のセットの系列を備えた情報担体であるという点で、本願発明における「情報担体」に一致する。

引用例1発明における「P1.0フィールド52(または12)に格納されるオペコード」は、本願発明における「第1の命令」に相当する。
引用例1発明における「第1演算フィールド59(または13乃至15)に格納されるオペコード及びオペランド」または「第2演算フィールド60(または16乃至18)に格納されるオペコード及びオペランド」のいずれも、本願発明における「第2の命令」に相当する。
引用例1発明における「分岐デコーダ23及びPC(プログラムカウンタ)部33」と本願発明における「第1の発行スロット」はともに、第1の命令(既に示したように、「第1の命令」は、引用例1発明における「P1.0フィールド52(または12)に格納されるオペコード」に相当する。)に対応した固定幅の制御語によって制御される第1の手段であるという点で一致する。
引用例1発明における「第1演算デコーダ24及び第1演算部37」、引用例1発明における「第2演算デコーダ25、第2演算部38及びオペランドアクセス部40」、及び、本願発明における「第2の発行スロット」は、互いに、第2の命令(既に示したように、「第2の命令」は、引用例1発明における「第1演算フィールド59(または13乃至15)に格納されるオペコード及びオペランド」または「第2演算フィールド60(または16乃至18)に格納されるオペコード及びオペランド」のいずれにも相当する。)に対応した固定幅の制御語によって制御される第2の手段であるという点で一致する。
引用例1発明における「VLIWプロセッサ」は、本願発明における「処理装置」に相当する。
引用例1発明における「4ビットの固定幅」は、本願発明における「第1の固定幅」に相当する。
引用例1発明における「12ビットの固定幅」は、本願発明における「第2の固定幅」に相当する。

すると、本願発明と引用例1発明とは、次の点で一致する。

<一致点>
VLIW命令にグループ化される命令のセットの系列を備えた情報担体であって、
前記、命令のセットは並列実行のため配列され、前記命令セットは少なくとも第1の命令および第2の命令を含み、
前記生成された命令のセットの系列が、少なくとも第1の手段および第2の手段を具備した処理装置による実行のため配列され、前記第1の手段が前記第1の命令に対応した第1の固定幅の第1の制御語によって制御され、前記第2の手段が前記第2の命令に対応した第2の固定幅の第2の制御語によって制御され、前記第1の制御語の幅が前記第2の制御語の幅とは異なる、
情報担体。

一方で、両者は、次の点で相違する。

<相違点1>
VLIW命令に関して、本願発明では「NOP演算の符号化のための専用ビットを含む圧縮VLIW命令」であるのに対して、引用例1発明ではNOP演算の符号化のための専用ビットを含む圧縮VLIW命令ではない点。

<相違点2>
「前記第1の命令に対応した第1の固定幅の第1の制御語によって制御され」る第1の手段に関して、本願発明では「第1の発行スロット」であるのに対して、引用例1発明における「分岐デコーダ23及びPC(プログラムカウンタ)部33」が発行スロットであるか否かについて、引用例1には記載されていない点。
同様に、本願発明では、「前記第2の発行スロットが前記第2の命令に対応した第2の固定幅の第2の制御語によって制御され」る第2の手段に関して、本願発明では「第2の発行スロット」であるのに対して、引用例1発明における「第1演算デコーダ24及び第1演算部37」または「第2演算デコーダ25、第2演算部38及びオペランドアクセス部40」のいずれについても、発行スロットであるか否かについて、引用例1には記載されていない点。

第5.判断
上記した相違点について検討する。

5の1.相違点1について
引用例1において、実行するプログラムの内容次第によっては、NOP命令の代わりに置くべき定数等がないなどのためVLIW命令にNOP命令を配置せざるを得ない状況が生じることは、引用例1に接した当業者であれば認識できることである。
このことは、引用例1発明と同様の形式のVLIW命令を用いた発明について記載された、特開平11-53186号公報(平成11年2月26日出願公開。以下、「参考例1」という。)の【0080】に「図16に、定数レジスタが1本のみの構成のプロセッサにおいて、図15と同一内容の処理を行うプログラムの例を示す。図16と図15とを比較して判るように、定数レジスタが1本のみの構成のプロセッサ用のプログラムは、本発明に係るプロセッサ用のものよりも1個の命令だけ多くなっている。図16においては、演算用の定数を蓄積している間は分岐用の定数を設定することができないため、無動作オペレーション“nop”を挿入せざるを得なくなっている。」と記載されていることや、引用例1発明と同様の形式のVILW命令を用いた発明について記載された、特開平11-53187号公報(平成11年2月26日出願公開。以下、「参考例2」という。)の【0095】に「図11は、上記従来のプロセッサにおいて、図10と同一内容の処理を行なうプログラムの例を示す。ただし、定数レジスタ名はR15であるとする。図11と図10を比較して判るように、上記従来のプロセッサ用のプログラムは、本発明に係るプロセッサ用のものよりも1個の命令だけ多くなっている。図11においては、1つのオペレーションでは、定数レジスタへの値の設定もしくは定数レジスタの格納値の利用のいずれか一方しか行なうことができないため、24ビットの定数を設定するのに必要な2個の命令と、その定数を利用する命令とを合わせた3個の命令が必要になっている。その結果、無動作オペレーション“nop”を挿入せざるを得なくなっている。」と記載されていることからもうかがうことができる。
してみると、引用例1発明におけるVLIW命令に対して、NOP演算の符号化のための専用ビットを用いてVLIW命令を圧縮する周知技術1を適用する動機付けは存在し、引用例1発明におけるVLIW命令をNOP演算の符号化のための専用ビットを含む圧縮VLIW命令とすることに特段の困難性はない。
よって、上記相違点1は格別のものではない。

なお、平成20年9月22日付け意見書において審判請求人(出願人)は「しかし、引用文献1の命令フォーマットは、NOP符号化の原理と互換性、共通性がない。引用文献1の命令フォーマットは、図1に示されているように、4ビットのフォーマットフィールドを有しており、これにより、演算フィールド52、59、60の内容を指定している。この4ビットのフォーマットフィールドを用いることにより、プロセッサは、各演算フィールドの内容を特定することができるのである。しかし、引用文献1には、符号化したNOP演算を、如何にこの命令フィールドに組み込んで使用するかについては、何の開示も示唆もされていない。
したがって、引用文献3に命令を圧縮する技術が開示されているとしても、これを引用文献1と組み合わせて、本願の請求項1に係る処理装置を案出することはできないと考えられる。」と主張している。
しかしながら、引用例1発明に周知技術1を適用するに際しては、NOP演算の符号化のための専用ビットを、P1.0フィールド52(または12)のために1ビット、第1演算フィールド59(または13乃至15)に格納されるオペコード及びオペランドのために1ビット、第2演算フィールド60(または16乃至18)に格納されるオペコード及びオペランドのために1ビット備えるようにして、それぞれのフィールドに非NOP演算や定数のいずれも格納されないときに、対応するNOP演算の符号化のための専用ビットを有効とするように制御すれば済むことは、当業者であれば当然想到することであり、同意見書による主張は失当である。

5の2.相違点2について
引用例1発明はVLIW命令を実行するVLIWプロセッサに関するものであるから、VLIW命令に含まれる各命令に対応した制御語毎に、制御される対象である発行スロットをVLIWプロセッサに設ける周知技術2を、引用例1発明に適用して、(本願発明の「前記第1の命令に対応した第1の固定幅の第1の制御語」に対応する)引用例1発明における「P1.0フィールド52(または12)に格納されるオペコードに対応した4ビットの固定幅の制御語」によって制御されるものを第1の発行スロットとし、(本願発明の「前記第2の発行スロットが前記第2の命令に対応した第2の固定幅の第2の制御語」に対応する)引用例1発明における「第1演算フィールド59(または13乃至15)に格納されるオペコード及びオペランドに対応した12ビットの固定幅の制御語」または「第2演算フィールド60(または16乃至18)に格納されるオペコード及びオペランドに対応した12ビットの固定幅の制御語」によって制御されるものを第2のスロットとすることに、特段の困難性はない。
よって、上記相違点2は格別のものではない。

5の3.小括
また、本願発明が有する作用効果は、引用例1発明、周知技術1及び周知技術2から当業者が予測できた範囲内のものである。

よって、本願発明は、引用例1発明、(周知例1、周知例2及び周知例3に例示されている)周知技術1及び(周知例2及び周知例4に例示されている)周知技術2に基いて、当業者が容易に発明をすることができたものである。

第6.むすび
したがって、本願の請求項10に係る発明は、その優先日前に日本国内又は外国において頒布された刊行物に記載された発明に基いて、当業者が容易に発明をすることができたものであるから、他の請求項について検討をするまでもなく、本願は特許法第29条第2項の規定により特許を受けることができない。

よって、結論のとおり審決する。
 
審理終結日 2010-11-24 
結審通知日 2010-11-26 
審決日 2010-12-07 
出願番号 特願2004-528735(P2004-528735)
審決分類 P 1 8・ 121- Z (G06F)
最終処分 不成立  
前審関与審査官 塚田 肇鳥居 稔  
特許庁審判長 赤川 誠一
特許庁審判官 石井 茂和
清木 泰
発明の名称 超長命令語プロセッサにおける可変長命令の処理を可能にさせる装置、方法およびコンパイラ  
代理人 吉武 賢次  
代理人 川崎 康  
代理人 佐藤 泰和  
代理人 吉元 弘  
代理人 橘谷 英俊  
代理人 関根 毅  

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