【事件の表示】
　特願２００７−　　８６６０「ユーザ定義の拡張演算を処理する演算システムおよび方法」拒絶査定不服審判事件〔平成２０年　４月　３日出願公開，特開２００８−　７７６２５〕について，次のとおり審決する。
【結　論】
　本件審判の請求は，成り立たない。
【理　由】
１　手続の経緯
　本願は平成１９年１月１８日（パリ条約による優先権主張２００６年（平成１８年）９月１８日韓国）の出願であって，平成２１年１１月６日付けの拒絶理由の通知に対し，平成２２年２月１０日付けで意見書が提出されるとともに手続補正がなされたが，同年１０月２６日付けで拒絶査定がされ，これに対し，平成２３年３月２日付けで審判請求がなされるとともに手続補正がなされ，同年９月２９日付けで審尋がなされ，これに対して平成２４年１月４日付けで回答書が提出され，同年６月４日付けで拒絶理由が通知され，これに対し，同年９月４日付けで意見書が提出されるとともに手続補正がなされたものである。
　
２　本願の請求項１に係る発明について
（１）本願の請求項１に係る発明
　本願の請求項１ないし１３に係る発明は，平成２４年９月４日付けの手続補正により補正された特許請求の範囲の請求項１ないし１３に記載された事項により特定されるものであるところ，その請求項１に係る発明は，補正された明細書及び図面の記載からみて，その請求項１に記載された事項により特定される，次のとおりのものである。
「基本演算と拡張演算とを含むコンピュータプログラムの演算を処理する演算処理システムにおいて，
　前記基本演算を処理する複数の機能ユニットと，
　前記機能ユニットの制御によって前記拡張演算を処理するプロセッサと，
　前記拡張演算の種類を示す演算番号を，前記演算番号に対応する拡張演算を処理するためのプログラムコードと対応させて格納する記録装置と，を含み，前記機能ユニットは，前記拡張演算の種類を示す演算番号を前記プロセッサに伝送し，前記プロセッサは，前記記録装置を参照して前記演算番号に対応するプログラムコードを実行して前記拡張演算を処理し，
　前記プロセッサで拡張演算を処理するためのプログラムコードを含む拡張演算に対する追加要請をユーザから受信し，前記プロセッサで前記追加要請に対応する拡張演算を処理するためのプログラムコードを前記記録装置に格納する拡張演算追加部と，をさらに含み，
　前記拡張演算は，複数の基本演算が結合されたコントロールフロー（ｃｏｎｔｒｏｌ　ｆｌｏｗ）を含む演算(前記コントロールフローはループ内の分岐を含む)を行うことを特徴とする演算処理システム。」
　
（２）拒絶理由の概要
　当審において平成２４年６月４日付けで通知した拒絶理由の概要は，本願の請求項１ないし１３に記載された発明は，本願の出願優先権主張日前に頒布された下記の刊行物に記載された発明に基づいて当業者が容易に発明をすることができたものであるから，特許法２９条２項の規定により特許を受けることができない，というものである。
　［引用刊行物］
１．特開２００１−１４７９０２号公報
２．特開２００６−２１５５９２号公報
３．特開平８−２８６９０８号公報
４．特表２００６−５０５０５６号公報
５．特開昭６２−１５４１４５号公報
６．特開平４−３０８９３７号公報
７．特開平８−３２０７９６号公報
　
（３）引用例
ア　引用例１
（ア）上記拒絶理由に引用された特開２００１−１４７９０２号公報（以下，「引用例１」という。）には次の記載がある。
ａ　「【０００１】
【発明の属する技術分野】この発明は，プログラムに記述された命令を実行するマイクロプロセッサに関し，特にメインプロセッサとコプロセッサとから構成されるマイクロプロセッサシステムに関する。
【０００２】
【従来の技術】従来，各種の命令セットを実行するための汎用のマイクロプロセッサがある。・・・
【０００３】また，上述のような汎用のマイクロプロセッサをメインプロセッサとし，このメインプロセッサの管理下で動作するマイクロプロセッサをコプロセッサとして備えるマイクロプロセッサシステムがある。この種のマイクロプロセッサシステムでは，コプロセッサは，メインプロセッサの処理の一部を高速化するためのものものであって，例えばメインプロセッサ側のソフトウェア上で行われる特定の命令セットを実行するための専用のハードウェアを備えて構成されている。」
　
ｂ　「【０００６】この発明は，上記事情に鑑みてなされたもので，回路規模の増大を抑えつつ，特定の命令セットを高速に実行することが可能なマイクロプロセッサシステムを提供することを目的とする。」
　
ｃ　「【０００７】【課題を解決するための手段】この発明は，上記課題を解決するため，以下の構成を有する。すなわち，この発明にかかるマイクロプロセッサシステムは，プログラムに記述された命令を実行するマイクロプロセッサシステムであって，第１の命令セット（例えば後述するプログラムメモリ３００に格納されているプログラムの命令）をハードウェア上で実行すると共に第２の命令セット（例えば後述するプログラムメモリ４００に格納されているプログラムの命令）をソフトウェア上で実行するメインプロセッサ（例えば後述するメインプロセッサ１００に相当する構成要素）と，前記メインプロセッサの管理下で動作して前記第２の命令セットを自発的にフェッチしてハードウェア上で実行するコプロセッサ（例えば後述するコプロセッサ２００に相当する構成要素）と，を備えたことを特徴とする。
【０００８】この構成によれば，第２の命令セットについては，メインプロセッサまたはコプロセッサにより適応的に処理することができる。したがって，例えば，原則として第２の命令セットの処理をコプロセッサのハードウェア上で処理することとし，例外として第２の命令セットの内のソフトウェアによる処理に適した命令のみをメインプロセッサで実行するようにすれば，マイクロプロセッサシステムに要求される処理能力に対して，全体としてハードウェアの規模を縮小される。したがって，回路規模の増大を抑えつつ，特定の命令セット（第２の命令セット）を高速に実行することが可能となる。」
　「【００１３】さらに，前記コプロセッサは，例えば，前記第２の命令セットのうち，実行頻度の高い所定の複数の命令に対して予め割り付けられた専用割り込みベクタ（例えば後述する専用割り込み要求信号Ｓ２９０Ａ〜Ｓ２９０Ｆにより指定される専用割り込みベクタに相当する要素）を用いて前記通知を発行することを特徴とする。
【００１４】この構成によれば，第２の命令セットのうち，実行頻度の高い命令に遭遇した場合，この命令に割り付けられた専用割り込み要求信号を用いてメインプロセッサへの通知が行われる。メインプロセッサは，この専用割り込み要求信号により，コプロセッサからの通知に加えて，コプロセッサが遭遇した命令が把握される。したがって，メインプロセッサ側において，コプロセッサからの依頼により処理すべき命令を識別するための処理を省くことが可能となる。」
　
ｄ　「【００２５】・・・
＜実施の形態１＞図１に，この発明の実施の形態１にかかるマイクロプロセッサシステムの構成を示す。このマイクロプロセッサシステムは，異なるプログラム言語で記述された複数種類の命令セットを実行可能なように構成されたものであって，いわゆる汎用レジスタ・アーキテクチャを採用する汎用のマイクロプロセッサ１００と，スタック・アーキテクチャを採用するコプロセッサ２００とを主要な構成要素として備える。
【００２６】メインプロセッサ１００は，Ｃ言語やアセンブラなどのプログラム言語で記述された第１の命令セットをハードウェア上で実行し，Ｊａｖａ言語などの特定のプログラム言語で記述された第２の命令セットをソフトウェア上で実行するものである。また，コプロセッサ２００は，メインプロセッサ１００の管理下で協調動作するものであって，上述の第１の命令セットとは異なるＪａｖａなどの第２の命令セットをハードウェア上で実行するものである。
【００２７】・・・プログラムメモリ４００は，Ｊａｖａなどの第２の命令セットの中間コードを格納する。・・・」
　「【００３１】一方，コプロセッサ２００は，第２の命令セットのうち，メインプロセッサ１００の管理下にあるデータを操作する必要を生ずる特定の命令に遭遇した場合，メインプロセッサ１００に通知して，この命令の実行を依頼するものである。具体的には，コプロセッサ２００は，プログラム中の第２の命令セットを解読してプログラムの進行を制御するための回路系として，このコプロセッサ自体の特定の基本動作を制御するための制御データ（例えば動作開始や動作停止を指示するデータ）を一時的に保持するの制御レジスタ２１０，制御レジスタ２１０に保持された制御データに応じてプログラムメモリ４００から第２の命令セットに属する命令（以下，単に第２の命令と称す）をフェッチするための命令フェッチ回路２２０，フェッチされた第２の命令を一時的に保持する命令キュー２３０，フェッチされた第２の命令を解読する命令デコーダ２４０，スタックされたデータの先頭アドレス（即ちスタックポインタの値，以下，ＳＰ値と称す）を命令デコーダの指示により更新するための加減算器２５０Ａ，ＳＰ値を保持するスタックポインタ２６０Ａ，現在処理中の命令のアドレス（即ちプログラムカウント値，以下ＰＣ値と称す）を命令デコーダの指示により更新するための加算器２５０Ｂ，ＰＣ値を保持するプログラムカウンタ２６０Ｂを有する。・・・
【００３２】また，このコプロセッサ２００は，命令デコーダ２４０の解読結果に応じた演算を実行するための回路系として，第２の命令セットに属する命令を実行する過程で発生する各種のデータ（第２の命令の演算オペランド，ローカル変数，手続オペランド等）を保持するスタックメモリ２７０，このスタックメモリ上のオペランドに演算処理を施す算術論理ユニット（ＡＬＵ）２８０，および命令デコーダ２４０の解読結果に応じてメインプロセッサ１００に対し割り込み要求を発生する割り込み要求発生回路２９０を有する。・・・」
　
ｅ　「【００３８】図４に，メインプロセッサ１００内の割り込み要求受付回路１９０の詳細と，コプロセッサ２００内の割り込み要求発生回路２９０の詳細を示す。割り込み要求発生回路２９０は，割り込み処理用デコーダ２９１と，複数のフリップフロップ２９２とから構成される。割り込み処理用デコーダ２９１は，命令デコーダ２４０からの割り込み要求信号Ｓ２４１Ａに基づき，複数の専用割り込み要求信号Ｓ２９０Ａ〜Ｓ２９０Ｆと，共用の割り込み要求信号Ｓ２９０Ｇとから構成される割り込みベクタＳ２９０を出力する。・・・
【００３９】ここで，専用割り込み要求信号Ｓ２９０Ａ〜Ｓ２９０Ｆは，第２の命令セットのうち，コプロセッサが単独で処理不能な命令であって，比較的実行頻度の高い特定の１つ又は複数の命令に対して予め割り付けられている。つまり，コプロセッサがこの特定の命令に遭遇した場合，この遭遇した命令に割り付けられた専用割り込み要求信号が活性化されることにより，メインプロセッサは，この活性化された専用割り込み要求信号から，遭遇した命令を直接的に把握可能なようになっている。また，共用の割り込み要求信号Ｓ２９０Ｇは，コプロセッサが単独で処理不能な命令であって上述の特定の命令以外の命令に共通に割り付けられている。このように，コプロセッサ２００は，第２の命令セットのうち，実行頻度の高い１つ又は複数の命令に対して予め割り付けられた１つ又は複数の専用割り込み要求信号を用いて「通知」を発行するように構成されている。
【００４０】この実施の形態１では，コプロセッサ側で単独処理可能か否かの判断は，命令を処理（実行）する過程で，メインプロセッサ１００の管理下にあるデータ（例えばデータメモリ５００に格納されたデータ）を操作する必要を生ずるか否かを基準として行われる。つまり，コプロセッサ２００は，メインプロセッサ側の管理下にあるデータを操作する必要を生じる命令については，単独処理不能と判断し，これ以外の命令については単独処理可能と判断する。コプロセッサ２００側で単独処理不能な特定の命令については，予め命令デコーダ２４０の内部に定義されている。」
　
ｆ　「【００７３】また，この実施の形態１では，コプロセッサ２００が単独で処理できない命令として，メインプロセッサの管理下にあるデータを操作する必要が生じる命令を例としたが，これに限定されることなく，ソフトウェアで処理した方が効率的な命令に遭遇した場合に，メインプロセッサ側に処理を依頼するようにしてもよい。この種の命令の例として，上述のメインプロセッサの管理下にあるデータの操作を伴う命令の他に，スタックフレーム（プログラム上で定義された一群のスタックデータの集合）の入れ替えが発生する命令，浮動小数点演算を実行する命令などがある。」
　
（イ）上記記載によれば，引用例１には次の技術的事項が記載されているということができる。
ａ　引用例１に記載された発明は，メインプロセッサとコプロセッサとから構成されるマイクロプロセッサシステムに関するものであり（【０００１】），回路規模の増大を抑えつつ，特定の命令セットを高速に実行することを可能とすることを課題としたものである（【０００６】）。
ｂ　マイクロプロセッサシステムは，プログラムメモリ３００に格納されている第１の命令セットをハードウェア上で実行するとともに，プログラムメモリ４００に格納されている第２の命令セットをソフトウェア上で実行するメインプロセッサ１００と，前記第２の命令セットを自発的にフェッチしてハードウェア上で実行するコプロセッサ２００とを備え（【０００７】，【００２６】），第２の命令セットについては，原則としてコプロセッサ２００のハードウェア上で処理し，第２の命令セットの内，「ソフトウェアによる処理に適した命令（所定の命令）」については，メインプロセッサ１００のソフトウェア上で実行するようにしたものである（【０００８】）。
　ここで，前記コプロセッサ２００は，特定の命令セットを実行するための専用のハードウェアであり，加減算器２５０Ａ，加算器２５０Ｂ，算術論理ユニット（ＡＬＵ）２８０，及びメインプロセッサ１００に対し割り込み要求を発生する割り込み要求発生回路２９０を含む（【０００３】，【００３１】〜【００３２】）。
ｃ　第２の命令セットの内，コプロセッサが単独で処理不能な命令，すなわち「ソフトウェアによる処理に適した命令（所定の命令）」には割り込み要求信号が予め割り付けられており，コプロセッサは，第２の命令セットの内，前記割り込み要求信号が割り付けられた命令に遭遇した場合，この割り込み要求信号を用いて処理すべき命令をメインプロセッサに通知し，メインプロセッサは，コプロセッサから通知された割り込み要求信号により，コプロセッサから要求された処理すべき命令を識別し，ソフトウェア上で実行する（【００１３】，【００１４】，【００３８】〜【００４０】）。
ｄ　なお，引用例１には，「ソフトウェアによる処理に適した命令（所定の命令）」として，スタックフレーム（プログラム上で定義された一群のスタックデータの集合）の入れ替えが発生する命令が例示されている（【００７３】）。
　
（ウ）以上のことから，引用例１には，「第２の命令セット」（以下，単に「命令セット」という。）の処理に着目すれば，次の発明（以下，「引用発明」という。）が記載されている。
　「メインプロセッサとコプロセッサとから構成されるマイクロプロセッサシステムであって，
　プログラムメモリに格納された命令セットをソフトウェア上で実行するメインプロセッサと，前記命令セットをハードウェア上で実行するコプロセッサとを備え，
　コプロセッサは，前記命令セットを実行するための専用のハードウェアであって，加減算器，加算器，算術論理ユニット，及びメインプロセッサに対し割り込み要求を発生する割り込み要求発生回路を備え，
　命令セットの内，コプロセッサが単独で処理不能な命令，すなわちソフトウェアによる処理に適した命令（所定の命令）には割り込み要求信号が予め割り付けられており，
　コプロセッサは，命令セットを，原則としてコプロセッサのハードウェア上で実行し，実行する命令の内，前記割り込み要求信号が割り付けられた命令に遭遇した場合，前記割り込み要求信号を用いて処理すべき命令をメインプロセッサに通知し，
　メインプロセッサは，コプロセッサから通知された前記割り込み要求信号により，コプロセッサから要求された処理すべき命令を識別し，当該命令をメインプロセッサのソフトウェア上で実行する，
　マイクロプロセッサシステム。」
　
イ　引用例２
（ア）上記拒絶理由に引用された特開平４−３０８９３７号公報（以下，「引用例２」という。）には次の記載がある。
　「【０００１】・・・本発明は，複数の命令を並列に実行可能な電子計算機におけるコード生成方法に関する。」
　「【０００７】・・・プログラム中のループ部分の処理（ループ処理）を高速化するためのループ最適化法として，ソフトウェアパイプライニング（Software Pipelining）と呼ばれる命令並べ替えの手法が知られている。これはプログラム中のループの反復１回分の命令を固有のハードウェアリソースに割り当て，仮想的にループの複数反復分の命令を個別の処理ユニットを用いてパイプライン的に同時実行する方式である。」
　「【００１１】このようなソフトウェアパイプライニング処理によって，ハードウェアの持つ複数のユニット（加算，乗算，ロードおよびストア）を遊ばせることなく，効率の良いループ処理が可能になる。・・・
【００１２】ソフトウェアパイプライニングをループに適用する場合，ループ内に分岐がない方が効率の良い命令並べ替えが可能になる。・・・
【００１３】ここで，図５に示すような，ループ終了の分岐条件が複数の論理式の論理積，論理和であるようなループにソフトウェアパイプライニングを適用することを考える。このように分岐条件が論理積，論理和である場合，従来の逐次計算機では図６に示すように，各論理式の評価毎に分岐命令（条件分岐命令）を出力して処理している。・・・しかし，ソフトウェアパイプライニングを適用する場合には，各論理式の評価毎に分岐命令を出力してしまうと，ループ内分岐が起こり，ソフトウェアパイプライニングの処理が煩雑になってしまう。また，仮にソフトウェアパイプライン処理ができても，ループ内分岐のために効率の良い命令実行ができなくなってしまう。
【００１４】さらに，このようなループ内分岐の発生は，他のループ最適化方式においても大きな障害となる場合がある。例えばループの複数反復分の命令を１反復内に展開するループ展開（ループアンローリング）処理を行う場合も，ループ内分岐があるとループ最適化が容易でなく，また分岐によりスムーズなパイプライン処理の実行が阻害されてしまう。」
　
（イ）上記記載によれば，引用例２には次の技術的事項が記載されているということができる。
・技術的事項ａ：「プログラム中のループの反復１回分の命令を固有のハードウェアリソースに割り当て，仮想的にループの複数反復分の命令を個別の処理ユニットを用いてパイプライン的に同時実行することにより，プログラム中のループ部分の処理を高速化するソフトウェアパイプライン方式。」
・技術的事項ｂ：「ソフトウェアパイプラインにおいて，ループ内に分岐がある場合，効率よく処理を行うことができないという課題があること。」
　
ウ　引用例３
（ア）上記拒絶理由に引用された特表２００６−５０５０５６号公報（平成１８年２月９日公表。以下，「引用例３」という。）には次の記載がある。
　「【０００１】・・・本発明は一般的に，高級言語プログラムをハイブリッドの再構成可能なハードウェア命令プロセッサの計算環境で動作するように適合させることに関する。・・・」
　「【０００３】再構成可能な計算は，計算技術において関心の高まっている技術である。従来の汎用計算は，１つ以上の汎用プロセッサで順次実行されるコンピュータコードを特徴とする。再構成可能な計算は，フィールド・プログラマブル・ゲートアレイ（ＦＰＧＡ（Field Programmable Gate Arrays））等の再構成可能なハードウェアを論理ルーチンを実行するようにプログラムすることを特徴とする。
【０００４】再構成可能な計算によって，コンピュータを多用する処理において著しい性能の進歩がもたらされる。たとえば，再構成可能なハードウェアは，従来の命令プロセッサと比較して高い並列性およびパイプライン化の特性を有する論理構成でプログラムされ得る。さらに，再構成可能なハードウェアは，プログラムによって割当てられたタスクを実行するのに非常に効率的なカスタム論理構成でプログラムされ得る。さらに，プログラムの処理要求を命令プロセッサおよび再構成可能なハードウェア間で分割することによって，コンピュータの全体的な処理能力が向上し得る。」
　「【００８１】選択的に，ユーザは追加のハードウェアロジックモジュールを定義してもよく，このモジュールは，ＭＡＰプロシージャのソースにおけるプロシージャをコールするようにコールされてもよく，またはシステムｉｎｆｏファイルに記載された組込システムで定義されたハードウェアロジックモジュールを再定義するために用いられてもよい。・・・」
　
（イ）上記記載によれば，引用例３には次の技術的事項が記載されているということができる。
・技術的事項ｃ：「プログラムの処理要求を命令プロセッサと再構成可能なハードウェアとの間で分割して実行するハードウェア命令プロセッサシステムにおいて，ユーザが追加のハードウェアロジックモジュールを定義することができること。」
　
（４）対比
ア　本願発明と引用発明とを対比する。
（ア）引用発明は，命令セットを実行するマイクロプロセッサシステムに係るものであり，本願発明と同様，「コンピュータプログラムの演算を処理する演算処理システム」の技術分野に属するものであり，いずれも「演算処理システム」ということができる。
　
（イ）ａ　本願明細書を参照すれば，「基本演算」及び「拡張演算」について，「本発明は，拡張演算（extended operation）を別途のプロセッサが処理するようにすることにより，ソフトウェア的に拡張演算を処理できるようにすることを目的とする。」（段落【００１２】），「既存のハードウェア的に処理する演算を基本演算（primitive operation）とし，ユーザが定義した演算を拡張演算（extended operation）とする。」（段落【００１７】），
　「機能ユニット３１０で処理すべき演算が基本演算である場合は，機能ユニット３１０のハードウェアを用いて処理することができる。しかし，処理すべき演算が拡張演算である場合は，拡張演算は機能ユニット３１０のハードウェアを用いて処理することができないので，プロセッサ３２０を制御して処理させる。拡張演算は，普通ソフトウェアパイプラインの実現を困難にするコントロールフロー（control flow）を含む演算であって，複数の基本演算（primitive operation）が結合されたプログラム形態を有する。」（段落【００３７】）との記載があり，また，「機能ユニット」について，「機能ユニット（ＦＵ，functional unit）２３０とは，演算を処理するために構成されたハードウェアのことであり，各機能ユニット２３０別に処理可能な演算が定義されている。」（段落【００２９】），「機能ユニット２３０は，プロセッサ２１０を制御して拡張演算（extended operation）の処理を行うために，プロセッサを制御する機能を果すことができる。例えば，機能ユニット２３０は，プロセッサが認識し得るエクセプション（exception）を発生させることにより，プロセッサが機能ユニット２３０が発生させたエクセプションに対応して拡張演算の処理を行わせる。」（段落【００３０】）との記載がある。
　上記本願明細書の記載を参酌すれば，本願発明の「基本演算」は，機能ユニットによりハードウェア的に処理される演算であり，「拡張演算」は，ユーザにより定義された，「複数の基本演算が結合されたコントロールフロー（control flow）を含む演算(前記コントロールフローはループ内の分岐を含む)」演算，すなわち，機能ユニットのハードウェアを用いて処理することができない演算であって，機能ユニットの制御によって，プロセッサによりソフトウェア的に処理される演算である。また，「機能ユニット」は，各機能ユニット別に処理可能な演算が定義されたハードウェアであって，処理すべき演算が拡張演算である場合は，プロセッサを制御して処理を行わせる機能を含むと解される。
ｂ　他方，引用発明には，「命令セット」は，原則としてコプロセッサのハードウェア上で実行し，実行する命令の内，コプロセッサが単独で処理不能な命令，すなわちソフトウェアによる処理に適した命令（所定の命令）（以下，単に「所定の命令」ともいう。）については，当該命令をメインプロセッサのソフトウェア上で実行するようにしたこと，また，「コプロセッサ」について，命令セットを実行するための専用のハードウェアであって，加減算器，加算器，算術論理ユニット，及びメインプロセッサに対し割り込み要求を発生する割り込み要求発生回路を備えることが特定されている。
　そうすると，引用発明における「命令セット」に含まれる命令のうち，「所定の命令」を除く命令は，「コプロセッサのハードウェア上で実行される命令」であるから，本願発明における「基本演算」に相当し，「所定の命令」は，メインプロセッサのソフトウェア上で実行される命令であるから，その具体的内容は後述のとおり相違するものの，本願発明における「拡張演算」とは，プロセッサでソフトウェア的に処理される演算である点で共通する。
　また，引用発明のコプロセッサは，「加減算器」，「加算器」，「算術論理ユニット」，及び「割り込み要求発生回路」を備え，これらは処理可能な演算が定義されたハードウェアであって，所定の命令の場合にメインプロセッサに対し割り込み要求を発生する機能を有する「割り込み要求発生回路」を含むことから，「コプロセッサ」は，本願発明における，基本演算を処理するとともにプロセッサを制御する「複数の機能ユニット」に相当する構成を含むものである。
　また，引用発明の「メインプロセッサ」は，コプロセッサから通知された割り込み要求信号により，コプロセッサから要求された処理すべき命令を識別し，当該命令をメインプロセッサのソフトウェア上で実行するから，「機能ユニットの制御によって所定の演算を処理するプロセッサ」ということができる。
ｃ　これらのことから，本願発明における「拡張演算」と引用発明における「所定の命令」を包括する上位概念を「所定の演算」とすれば，本願発明と引用発明とは，「基本演算と所定の演算とを含むコンピュータプログラムの演算を処理する演算処理システムにおいて，前記基本演算を処理する複数の機能ユニットと，前記機能ユニットの制御によって前記所定の演算を処理するプロセッサと」を備える点で共通する。
　
（ウ）引用発明は，所定の命令を含む命令セットをプログラムメモリに格納しており，命令セットの内，所定の命令には割り込み要求信号が予め割り付けられていること，及び技術常識から，所定の命令には命令を識別可能な番号が対応付けられていることは明らかであるから，本願発明と引用発明とは，「所定の演算の種類を示す演算番号を，前記演算番号に対応する所定の演算を処理するためのプログラムコードと対応させて格納する記録装置」を含む点で共通する。
　
（エ）引用発明のコプロセッサは，実行する命令の内，割り込み要求信号が割り付けられた命令，すなわち所定の命令に遭遇した場合，割り込み要求信号を用いて処理すべき命令をメインプロセッサに通知し，メインプロセッサは，コプロセッサから通知された割り込み要求信号により，コプロセッサから要求された処理すべき命令を識別し，当該命令をメインプロセッサのソフトウェア上で実行するものであり，前記のとおり，所定の命令には演算番号が対応付けられているということができるから，本願発明と引用発明とは，「所定の演算の種類を示す演算番号をプロセッサに伝送し，前記プロセッサは，記録装置を参照して前記演算番号に対応するプログラムコードを実行して前記所定の演算を処理」する点で共通する。
　
イ　以上のことから，本願発明と引用発明との一致点及び相違点は，次のとおりである。
［一致点］
　「基本演算と所定の演算とを含むコンピュータプログラムの演算を処理する演算処理システムにおいて，
　前記基本演算を処理する複数の機能ユニットと，
　前記機能ユニットの制御によって前記所定の演算を処理するプロセッサと，
　前記所定の演算の種類を示す演算番号を，前記演算番号に対応する所定の演算を処理するためのプログラムコードと対応させて格納する記録装置と，を含み，
　前記機能ユニットは，前記所定の演算の種類を示す演算番号を前記プロセッサに伝送し，前記プロセッサは，前記記録装置を参照して前記演算番号に対応するプログラムコードを実行して前記所定の演算を処理する，
　演算処理システム。」
［相違点１］
　「所定の演算」が，本願発明は，「複数の基本演算が結合されたコントロールフロー（control flow）を含む演算(前記コントロールフローはループ内の分岐を含む)を行う」演算であるに対し，引用発明は，この構成が明らかでない点。
［相違点２］
　本願発明は，「プロセッサで所定の演算を処理するためのプログラムコードを含む所定の演算に対する追加要請をユーザから受信し，前記プロセッサで前記追加要請に対応する所定の演算を処理するためのプログラムコードを記録装置に格納する演算追加部」を含むのに対し，引用発明は，対応する構成について特定されていない点。
　
（５）判断
ア　相違点１について
（ア）引用例２（特開平４−３０８９３７号公報）には，「プログラム中のループの反復１回分の命令を固有のハードウェアリソースに割り当て，仮想的にループの複数反復分の命令を個別の処理ユニットを用いてパイプライン的に同時実行することにより，プログラム中のループ部分の処理を高速化するソフトウェアパイプライン方式」（技術的事項ａ）が記載されており，演算処理システムにおいて，複数の機能ユニットによりハードウェア上でソフトウェアパイプラインを実行することが記載されている。
　さらに，上記引用例２には，「ソフトウェアパイプラインにおいて，ループ内に分岐がある場合，効率よく処理を行うことができないという課題があること」（技術的事項ｃ）が記載されていることから，複数の機能ユニットによりハードウェア上で実行される上記ソフトウェアパイプラインとして，ループ内に分岐を含むソフトウェアパイプライン，すなわち，「複数の基本演算が結合されたコントロールフロー（control flow）を含む演算(前記コントロールフローはループ内の分岐を含む)」を含むソフトウェアパイプラインを実行する技術思想が，実質的に開示されているということができる。
（イ）引用発明は，命令セットについて，原則としてコプロセッサのハードウェア上で実行し，命令セットの内，ソフトウェアによる処理に適した命令については，メインプロセッサのソフトウェア上で実行するようにしたものであり，さらに引用例１には，ソフトウェアによる処理に適した命令には，スタックフレーム（プログラム上で定義された一群のスタックデータの集合）の入れ替えが発生する命令があることが記載されており（引用例１，段落【００７３】），通常，データの入れ替えにかかる処理には分岐が含まれるものであることから，引用例１には，分岐が含まれる演算はソフトウェアによる処理に適していることが示唆されているということができる。
（ウ）そうすると，上記のとおり，ループ内に分岐を含むソフトウェアパイプラインを，複数の機能ユニットによりハードウェア上で実行する技術思想が公知であったことに鑑みれば，引用発明において，コプロセッサのハードウェア上で実行される命令セットとして，ループ内に分岐を含むソフトウェアパイプラインに係る命令セットを実行することは，当業者が容易に想到し得たものである。
　この場合，引用発明は，上記のとおり，命令セットの内，ソフトウェアによる処理に適した命令については，メインプロセッサのソフトウェア上で実行するものであり，引用例１に，分岐が含まれる演算がソフトウェアによる処理に適していることが示唆されていること，及び上記のとおり，ループ内に分岐が含まれる場合，効率よく処理を行うことができないという課題が知られていたことに鑑みれば，引用発明においてループ内に分岐を含むソフトウェアパイプラインを実行するに当たり，「複数の基本演算が結合されたコントロールフロー（control flow）を含む演算(前記コントロールフローはループ内の分岐を含む)」を，ソフトウェアによる処理に適した命令としてメインプロセッサで実行する構成とすることは，当業者であれば当然に考えることである。
（エ）よって，相違点１に係る構成は，引用発明及び引用例２に記載された発明から，当業者が容易に想到し得たものである。
　
イ　相違点２について
（ア）ユーザからの要請によって演算を追加することは，例えば，引用例３（特表２００６−５０５０５６号公報）に，「プログラムの処理要求を命令プロセッサと再構成可能なハードウェアとの間で分割して実行するハードウェア命令プロセッサシステムにおいて，ユーザが追加のハードウェアロジックモジュールを定義することができること」（技術的事項ｃ）が記載されているように周知の技術である。
（イ）引用発明は，命令セットについて，原則としてコプロセッサのハードウェア上で実行し，命令セットの内，ソフトウェアによる処理に適した命令については，メインプロセッサのソフトウェア上で実行するように構成されていることからすれば，追加される命令がコプロセッサのハードウェア上で実行可能であるか否かにかかわらず，任意の演算（命令）を追加し得ることは明らかであり，引用発明において，ユーザが命令セットにソフトウェアによる処理に適した命令，すなわち「所定の演算」を追加する構成を付加することは，当業者が適宜なし得ることである。
　そして，命令セットがプログラムメモリに格納されることからすれば，演算を追加するための構成が，「プロセッサで演算を処理するためのプログラムコードを含む演算に対する追加要請をユーザから受信し，前記プロセッサで前記追加要請に対応する演算を処理するためのプログラムコードを記録装置に格納する追加部」となることは，必然である。
（ウ）よって，相違点２に係る構成は，引用発明及び引用例３に記載された周知技術から，当業者が容易に想到し得たものである。
　
ウ　なお，本願発明には，複数の機能ユニットが再構成可能に構成されていることは，特定されていないが，仮に当該構成が特定されていたとしても，複数の機能ユニットを再構成可能に構成することは，前記引用例２及び引用例３に記載又は示唆されている他，前記拒絶理由に引用された，特開２００６−２１５５９２号公報（段落【００１１】等参照）及び特開平８−２８６９０８号公報（【要約】等参照）にも記載されているように，周知の技術手段であり，引用発明のコプロセッサにおいて，当該技術手段を採用することは，当業者が容易に想到し得たものである。
　
エ　そして，これらの相違点を総合的に勘案しても，本願発明の奏する作用効果は，引用発明，引用例２に記載された発明，及び引用例３に記載された周知技術の奏する作用効果から予測される範囲内のものにすぎず，格別顕著なものということはできない。
　したがって，本願発明は，上記拒絶理由のとおり，引用例１ないし３に記載された発明に基づいて，当業者が容易に発明をすることができたものである。
　
３　本願の請求項９に係る発明について
（１）本願の請求項９に係る発明
　本願の請求項９に係る発明は，補正された明細書及び図面の記載からみて，その請求項９に記載された事項により特定される，次のとおりのものである。
「基本演算と拡張演算とを含むコンピュータプログラムの演算を処理する演算処理方法において，
　プロセッサで前記拡張演算を処理するためのプログラムコードを含む拡張演算に対する追加要請をユーザから受信し，前記プロセッサで前記追加要請に対応する拡張演算を処理するためのプログラムコードを記録装置に格納する段階と，
　機能ユニットで前記演算を受信する段階と，
　前記演算が前記基本演算である場合，前記機能ユニットで前記基本演算を処理する段階と，
　前記演算が前記拡張演算である場合，前記プロセッサを制御して前記拡張演算を処理する段階と，
を含むことを特徴とする演算処理方法。」
　
（２）引用例
　当審の拒絶理由に引用された引用例１，３及びその記載事項は，前記２（３）のとおりであり，引用例１には，「方法」の発明として，次の発明（以下，「引用発明２」という。）が記載されていると認められる。
　「メインプロセッサとコプロセッサとから構成されるマイクロプロセッサシステムにおいて，
　プログラムメモリに格納された命令セットをソフトウェア上で実行するメインプロセッサと，前記命令セットをハードウェア上で実行するコプロセッサとを備え，
　コプロセッサは，前記命令セットを実行するための専用のハードウェアであって，加減算器，加算器，算術論理ユニット，及びメインプロセッサに対し割り込み要求を発生する割り込み要求発生回路を備え，
　命令セットの内，コプロセッサが単独で処理不能な命令，すなわちソフトウェアによる処理に適した命令（所定の命令）には割り込み要求信号が予め割り付けられており，
　コプロセッサは，命令セットを，原則としてコプロセッサのハードウェア上で実行し，実行する命令の内，前記割り込み要求信号が割り付けられた命令に遭遇した場合，前記割り込み要求信号を用いて処理すべき命令をメインプロセッサに通知し，
　メインプロセッサは，コプロセッサから通知された前記割り込み要求信号により，コプロセッサから要求された処理すべき命令を識別し，当該命令をメインプロセッサのソフトウェア上で実行する，方法。」
　
（３）対比
　本願の請求項９に係る発明は，実質的に，前記２で検討した本願発明から「拡張演算は，複数の基本演算が結合されたコントロールフロー（ｃｏｎｔｒｏｌ　ｆｌｏｗ）を含む演算(前記コントロールフローはループ内の分岐を含む)を行う」との発明特定事項を削除し，「方法」の発明として表現したものである。
　そうすると，本願の請求項９に係る発明と引用発明２とを対比すれば，引用発明の「ソフトウェアによる処理に適した命令（所定の命令）」は，本願発明における「拡張演算」と同様にプロセッサでソフトウェア的に処理される演算であることから，本願発明における「拡張演算」に相当するということができ，この点以外については，前記２（４）において検討したとおりであるから，本願の請求項９に係る発明と引用発明２との一致点及び相違点は，次のとおりである。
　
［一致点］
　「基本演算と拡張演算とを含むコンピュータプログラムの演算を処理する演算処理方法において，
　機能ユニットで前記演算を受信する段階と，
　前記演算が前記基本演算である場合，前記機能ユニットで前記基本演算を処理する段階と，
　前記演算が前記拡張演算である場合，前記プロセッサを制御して前記拡張演算を処理する段階と，
　を含む演算処理方法。」
［相違点３］
　本願の請求項９に係る発明は，「プロセッサで拡張演算を処理するためのプログラムコードを含む拡張演算に対する追加要請をユーザから受信し，前記プロセッサで前記追加要請に対応する拡張演算を処理するためのプログラムコードを記録装置に格納する段階」を含むのに対し，引用発明２は，対応する構成について特定されていない点。
　
（４）判断
　相違点３は，前記相違点２に相当するものであり，前記２（５）イと同様の理由により，引用発明２及び引用例３に記載された周知技術から，当業者が容易に想到し得たものである。
　そして，本願の請求項９に係る発明の奏する作用効果は，引用発明２及び引用例３に記載された周知技術の奏する作用効果から予測される範囲内のものにすぎず，格別顕著なものということはできない。
　したがって，本願の請求項９に係る発明は，引用例１及び引用例３に記載された発明に基づいて，当業者が容易に発明をすることができたものである。
　
４　むすび
　以上のとおり，本願の請求項１及び請求項９に係る発明は，特許法２９条２項の規定により特許を受けることができないから，他の請求項に係る発明について検討するまでもなく，本願は拒絶されるべきものである。
　よって，結論のとおり審決する。