【事件の表示】
　平成１０年特許願第５３０２５９号「変換後命令を使用する選択的エミュレーションインタープリテーション」拒絶査定不服審判事件〔平成１０年　７月　９日国際公開、ＷＯ９８／２９８０２、平成１４年　１月２２日国内公表、特表２００２−５０２５１６〕について、次のとおり審決する。
【結　論】
　本件審判の請求は、成り立たない。
【理　由】
１．手続の経緯・本願発明
　本願は、平成９年１２月２４日（パリ条約による優先権主張１９９６年１２月３１日、米国）の国際出願であって、平成１４年９月２６日付けで拒絶査定がなされ、これに対し、平成１５年１月６日に審判請求がなされたが、前置審査により同年３月１０日付けで拒絶理由通知がなされ、これに対し、同年９月１８日に手続補正がなされたものである。そして、その請求項１に係る発明は、特許請求の範囲の請求項１に記載されたとおりの次のものと認める。（以下、「本願発明」という。）
　
　「エミュレーションホスト計算システムにおいてターゲットコンピュータシステムをエミュレートするための方法であって、前記ターゲットコンピュータシステムは、一つまたは二つ以上の命令バンクにストアされる複数のターゲット命令を実行することができ、前記方法は、
　（ａ）ターゲット命令（１８、２０）を命令バンク（１６）からそれらの実行の順番で連続的に受取るステップと、
　（ｂ）各ターゲット命令ごとにそのターゲット命令により行われるそれぞれの機能を特定するために命令バンクからのターゲット命令各々をそれらの実行の順番で解釈するステップと、
　（ｃ）エミュレーションホスト計算システム（１０）のネイティブモード機械語およびハードウェアを使用して、前記解釈するステップにおいて特定された前記それぞれの機能の各々を実行するステップと、
　（ｄ）ターゲット命令のうち選択されたターゲット命令を変換後命令（５０）に変換するステップとを含み、前記変換後命令は、各々、ターゲット命令とそれぞれの変換タイプコード（６２）とを含み、前記それぞれの変換タイプコードは、前記変換後命令の各々の後の実行を達成するためエミュレーションホスト計算システムによって行われるアクションを示し、前記方法はさらに、
　（ｅ）前記変換後命令に前もって変換されたターゲット命令の各々に対する前記それぞれの変換タイプコードを分析し、エミュレーションホスト計算システムのネイティブモード機械語およびハードウェアを使用して前記それぞれの変換タイプコードに応答した態様で、変換後命令の対応する機能を実行するステップを含み、前記解釈するステップと前記変換するステップとは、前記変換後命令の後の発生の際にはバイパスされる、エミュレーションホスト計算システムにおいてターゲットコンピュータシステムをエミュレートするための方法。」
　
２．引用発明
　これに対して、原査定の拒絶の理由に引用された、本願の優先権主張の日前である平成元年６月２７日に頒布された刊行物である特開平１−１６２９３３号公報（以下「引用文献」という。）には、次の事項が記載されている。
　
（ア）「インタプリタによってテキストを解釈実行する処理実行方式において、
　テキスト（４−１）中のいずれの命令テキストに対してオウンコード化するか否か、および既にオウンコード化されているか否かを表すオウンコード生成・制御フラグ（４−２）と、
　テキスト（４−１）から読み込んだ命令テキストが上記オウンコード生成・制御フラグ（４−２）を参照してオウンコード化すべきものであって、かつ未だオウンコード化されていないと判明したときに、オウンコード（４−３）を生成してメモリに格納するオウンコード生成部（２）と、
　テキスト（４−１）から読み込んだ命令テキストが上記オウンコード生成・制御フラグ（４−２）を参照して既にオウンコード化されている場合に該当するオウンコード（４−３）を取り出して処理を実行し、一方、オウンコード化されていないがオウンコード化する必要がある場合に上記オウンコード生成部（２）に対してオウンコード（４−３）を生成させた後、このオウンコード（４−３）によって処理を実行し、他方、オウンコード生成・制御フラグ（４−２）を参照してオウンコード化する必要がないと判明した場合にその都度、解釈・インタプリット処理を行う処理実行部（３）とを備え、
　テキスト（４−１）から読み込んだ命令テキストを順次実行するように構成したことを特徴とするインタプリタによる処理実行方式。」
（特許請求の範囲）
　
（イ）「テキスト４−１は、利用者プログラムをコードに返還した命令テキストの集まりである。
　オウンコード生成・制御フラグ４−２は、テキスト４−１中のいずれの命令テキストに対してオウンコード化すべきか否か、および既にオウンコード化されているか否かなどの情報を格納するものである。
　オウンコード４−３は、命令テキストを解釈してプロセッサが実行し得る状態に変換したコード（例えば機械語）である。」
（第２頁右下欄第１２行−第３頁左上欄第１行）
　
（ウ）「第３図において、利用者プログラム５中の各命令（コード化された命令テキスト）に対応づけてオウンコード生成・制御フラグ４−２を構成するオウンコード化必要フラグＦＬＧ２およびオウンコード変換済フラグＦＬＧ２が夫々設けられている。オウンコード化必要フラグＦＬＧ２は、第２図を用いて説明した方法（１）ないし（２）によってオウンコード化が必要と判断された場合に、セット例えば”１”にセットされるものである。オウンコード変換済フラグＦＬＧ１は、命令を解釈し、オウンコード化してオウンコード４−３として作業域に記憶させた場合にセット例えば”１”にセットされるものである。これら両者のフラグは、利用者プログラム５中あるいはインタプリタ中のいずれか、あるいは両者などに持たせるようにすればよい。」
（第３頁右下欄第１２行−第４頁左上欄第６行）
　
（エ）「第５図において、コンピュータ１１は、ＣＰＵ（中央演算処理装置）１２、メモリ１３などから構成され、処理を実行するものである。
　メモリ１３中には、図示のように、本発明に関わるインタプリタ１３−１、命令テキスト群からなる定義体（テキスト）１３−２、オウンコード生成・制御フラグ４−２を格納するＦＬＡＧ領域１３−３、生成したオウンコードを格納する作業域１３−４が格納あるいは設けられている。」
（第４頁右上欄第７−１５行）
　
（オ）「第５図において、図中【１１】は、命令の取り出しを行うことを示す。これは、後述する第６図手順によってメモリ１３中に格納された定義体１３−２中から、点線を用いて示すように、命令テキスト（命令）例えば命令テキストiを１つ取り出すことを表す。
　図中【１２】は、命令に対応するFLAG領域１３−３の参照を行うことを表す。これは、点線を用いて示すように、FLAG領域１３−３中から図中【１１】で取り出した例えば命令テキスト１に対応するオウンコード生成・制御フラグを構成するFLG１、FLG２を読み込んで参照することを表す。
　図中【１３】は、ＦＬＧ１＝ＯＮか否かを判別することを示す。ＹＥＳの場合（図中【１２】の参照によって、ＦＬＧ１（オウンコード変換済フラグ）がＯＮの場合、即ちオウンコード化されている場合）には、図中【１２】で点線を用いて示すようにＦＬＡＧ領域１３−３中のアドレス（ポインタ）を参照し、図中【１８】の点線を用いて示すように作業域１３−４中から該当するオウンコードを取り出して実行した後、後尾の”ＲＴＮ”によって図中【１１】に復帰する。これにより、命令テキストをその都度、解釈することを省略して高速に処理を行うことが可能となる。ＮＯの場合（オウンコード化されていない場合）には、図中【１４】を実行する。
　図中【１４】は、ＦＬＧ２＝ＯＮか否かを判別することを示す。ＹＥＳの場合（図中【１２】の参照によって、ＦＬＧ２（オウンコード化必要フラグ）がＯＮの場合、即ちオウンコード化が必要な命令テキストの場合）には、図中【１５】ないし【１８】を実行する。ＮＯの場合（オウンコード化が不要の命令テキストの場合）には、図中【１９】で従来と同様に、命令の解釈とインタプリット処理を行い、図中【１１】以下を繰り返し実行する。
　図中【１５】は、命令の解析と、オウンコードの生成を行うことを示す。これは、点線を用いて示すように、オウンコード生成用ライブラリ１４−１を参照して命令（命令テキスト）を解釈してオウンコードの生成を行い、作業域１３−４に格納することを示す。
　図中【１６】は、ＦＬＡＧ領域にオウンコードノアドレスを設定することを示す。これは、ＦＬＡＧ領域１３−３中の該当するＦＬＧ１、ＦＬＧ２に対応づけてオウンコードを格納した作業域１３−４をポイントするアドレスを格納することを表す。
　図中【１７】および【１８】は、既述したように、ＦＬＡＧ領域中のアドレスによってポイントされる作業域１３−４から該当するオウンコードを取り出して実行することを示す。」
（注：【】付きの数字は、いずれも丸囲みの数字。以降の記載においても同じ。）
（第４頁左下欄第１１行−第５頁左上欄第１９行）
　
　上記（ア）乃至（オ）の記載及び技術常識からして、命令テキストの命令がメモリから連続的に受け取られて解釈・実行されること、インタプリット処理が、命令の機能を特定するために行われていること、命令の実行がコンピュータのハードウェアを用いて実行されること、及び、オウンコード変換済フラグＦＬＧ１がＯＮの場合は、対応するオウンコードを実行することにより、命令の対応する機能を実行していることは自明である。
　また、図３の【１３】において、命令に対応するＦＬＡＧ領域のオウンコード変換済フラグＦＬＧ１がＯＮの場合は、【１９】に係るインタプリット処理と、【１５】及び【１６】に係るオウンコードの生成及びオウンコードのアドレスの設定がバイパスされている。
　
　よって、上記（ア）乃至（オ）からして、引用文献には次の発明（以下「引用発明」という。）が記載されている。
　
　コンピュータにおいて命令を実行する方法であって、前記方法は、
　（ａ）命令をメモリからそれらの実行の順番で連続的に受取るステップと、
　（ｂ）各命令ごとにその命令により行われるそれぞれの機能を特定するためにメモリからの命令各々をそれらの実行の順番でインタプリット処理するステップと、
　（ｃ）コンピュータのオウンコード及びハードウェアを使用して、前記インタプリット処理するステップにおいて特定された前記それぞれの機能の各々を実行するステップと、
　（ｄ）命令のうちオウンコード化必要フラグＦＬＧ２により選択された命令に対応するＦＬＡＧ領域において、オウンコード変換済フラグＦＬＧ１をＯＮに設定するステップであって、ＯＮに設定されたオウンコード変換済フラグＦＬＧ１は、計算機によって行われるオウンコードの実行を示し、前記方法はさらに、
　（ｅ）命令のオウンコード変換済フラグＦＬＧ１が前もってＯＮに設定された命令の各々に対するオウンコード変換済フラグを分析し、コンピュータのオウンコード及びハードウェアを使用して、オウンコード変換済フラグのＯＮに応答した態様で、すなわち、前記インタプリット処理するステップと設定するステップとがバイパスされる態様で、命令の対応する機能を実行するステップとを含み、前記インタプリット処理するステップと設定するステップは、命令のオウンコード変換済をＯＮに設定した後にはバイパスされる、計算機において命令を実行するための方法。
　
３．本願発明と引用発明との対比
　本願発明と引用発明とを対比すると、引用発明の「インタプリット処理」は、本願発明の「解釈」と対応している。
　引用発明の「命令」と本願発明の「ターゲット命令」とは、実行対象となる命令（実行対象命令）である点で一致している。
　引用発明の「コンピュータ」と本願発明の「エミュレーションホスト計算システム」とは、実行対象命令を変換又は解釈して実行する計算機である点で一致している。
　引用発明の「メモリ」と本願発明の「命令バンク」とは、実行対象となる命令をストアする記憶手段である点で一致している。
　引用発明の「オウンコード」と本願発明の「ネイティブモード機械語」とは、命令を変換し、計算機が命令に対応する機能を実行できるようにしたコード（実行コード）である点で一致している。
　
　本願発明は、「命令バンク」から受け取られる「ターゲット命令」と「変換後命令」とがどのような構成を有しているのか具体的に特定していないが、明細書の第１１頁第２５−２７行の記載「オリジナル命令については、フィールド６２はその命令は未だ変換されていないことを示す予め定められていた値に設定されている。たとえば、フィールド６２は本発明の一実施例においてはクリアされていて、それがゼロビットのみを含むようにされる。すなわち、フィールド６２は「ゼロで埋められる」。」、及び、図３のステップ１０２の記載「命令は変換されているか？（ＴＹＰＥは”ＯＲＩＧＩＮＡＬ”ではないか？）」からすると、「命令バンク」から受け取られる変換前のターゲット命令にも、「変換タイプコード」のフィールド６２が予め含まれている。つまり、本願発明の「変換後命令」は、変換前の「ターゲット命令」の「変換タイプコード」を、「変換するステップ」において書き換えられたものであり、「ターゲット命令」は、該「変換タイプコード」が書き換えられていないものと解釈できる。
　ここで、引用発明の「オウンコード変換済フラグ」は、命令ごとに設けられ、初期値はＯＦＦであり、一回目の解釈・実行とオウンコードの生成によりＯＮに設定されるものであり、かつ、計算機は、該「オウンコード変換済フラグ」を分析し、これがＯＮ又はＯＦＦであるかに応答した態様で、オウンコードを実行するか、若しくは、オウンコードの生成又は命令のインタプリット処理のいずれを実行するかアクションを決定している。
　よって、引用発明の「オウンコード変換済フラグ」は、本願発明の「変換タイプコード」に対応し、引用発明の、初期状態（ＯＦＦ）における「オウンコード変換済フラグ」と「命令」とを合わせたものが、本願発明の「ターゲット命令」に相当し、引用発明において、ＯＮに設定された「オウンコード変換済フラグ」と「命令」とを合わせたものが、本願発明の「変換後命令」に相当し、引用発明の設定するステップは、該「変換タイプコード」の書き換えを行うステップである点で本願発明の「変換するステップ」と一致している。
　また、本願明細書の第１４頁第１４−２３行の記載によると、変換後命令の「変換タイプコード」には、「実行済（ＥＸＥＣＵＴＥＤ）」が含まれ、明細書の第１６頁下から２行目−第１７頁第２行の記載「ＴＹＰＥが「ＥＸＥＣＵＴＥＤ」である場合、変換が行われることはなく、これは、解釈がやはり必要であることを意味する。処理はその後サブルーチン２３８に進み、変換されていない命令を解釈する解釈ルーチンが行われる。」からすると、「変換後命令」の実行の際には、命令を解釈して実行する場合もあると把握できる。よって、本願発明の「前記解釈するステップと前記変換するステップとは、前記変換後命令の後の発生の際にはバイパスされる」は、「変換タイプコードに対応した態様」のうちの一つであり、変換後命令の実行の際に、解釈するステップと変換するステップとが必ずしもバイパスされないと解釈することが合理的である。そして、引用発明においても、２回目以降の実行であっても、オウンコード変換済フラグがＯＦＦのままである場合は従来どおり解釈するステップを実行しているから、この点において本願発明と差異はない。
　よって、両者は、
　
　計算機において実行対象命令を変換又は解釈して実行する方法であって、前記計算機は、記憶手段にストアされる複数の実行対象命令を実行することができ、前記方法は、
　（ａ）実行対象命令と変換前の変換タイプコードとを記憶手段からそれらの実行の順番で連続的に受取るステップと、
　（ｂ）各実行対象命令ごとにその実行対象命令により行われるそれぞれの機能を特定するために記憶手段からの実行対象命令各々をそれらの実行の順番で解釈するステップと、
　（ｃ）計算機の実行コードおよびハードウェアを使用して、前記解釈するステップにおいて特定された前記それぞれの機能の各々を実行するステップと、
　（ｄ）実行対象命令のうち選択された実行対象命令の変換タイプコードを書き換えるステップとを含み、前記それぞれの変換タイプコードは、変換タイプコードが書き換えた後の命令の各々の実行を達成するため計算機によって行われるアクションを示し、前記方法はさらに、
　（ｅ）実行対象命令の前記変換タイプコードが前もって書き換えられた実行対象命令の各々に対する前記それぞれの変換タイプコードを分析し、計算機の実行コードおよびハードウェアを使用して前記それぞれの変換タイプコードに応答した態様で、変換タイプコードが書き換えられた実行対象命令の対応する機能を実行するステップを含み、前記態様の一つは、前記解釈するステップと前記書き換えるステップとは、前記実行対象命令の変換タイプコードが書き換えられた後はバイパスされる、計算機において実行対象命令を変換又は解釈して実行する方法。
　
　の点で一致し、以下の点で相違している。
　
［相違点１］
　本願発明は、ターゲットコンピュータシステムをエミュレートすることを目的とし、実行対象命令が、該ターゲットコンピュータシステムが実行することができるターゲット命令であり、その機能を実現する実行コードがネイティブモード機械語であるのに対し、引用発明は、エミュレートを目的としたものではなく、実行対象命令の機能を実現する実行コードがオウンコードである点。
　
［相違点２］
　変換タイプコードが、本願発明では、実行対象命令に含まれるのに対し、引用発明では、実行対象命令に対応した別の領域に格納されている点。
　
［相違点３］
　実行対象命令がストアされる記憶手段が、本願発明では「一つまたは二つ以上の命令バンク」であるのに対し、引用発明では、そのようなバンク構成を有していない点。
　
４．当審の判断
　上記相違点について、以下検討する。
　
［相違点１について］
　ターゲットマシン上で実行される命令を疑似実行（エミュレート、シミュレート）するために、当該命令を他のマシンが解釈し、該他のマシンが自身のマシンコードを用いて当該命令の機能を実現する手法は、例えば、上記拒絶理由通知において提示した特開平５−１８９２６９号公報及び特開平７−２１０３９７号公報に記載されているように周知技術であり、かつ、これらは、命令を解釈して自らの機械語を用いて命令の機能を実現している点で引用発明の手法と共通しているから、引用発明において、ターゲットコンピュータシステムをエミュレートすることを目的とすると共に、実行対象命令を、該ターゲットコンピュータシステムが実行することができるターゲット命令とし、その機能を実現する実行コードとしてエミュレートを行うマシンの機械語、すなわち、ネイティブモード機械語を用いるように構成することに格別な困難性はない。
　
［相違点２について］
　命令コードにその命令コードに関連する制御ビットを付加することは計算機の分野における常套手段である。
　よって、引用発明において、実行対象命令に対応するオウンコード変換済フラグを、実行対象命令に含めるようコード化することは当業者が容易に想到し得たものである。
　
［相違点３について］
　複数のバンクを有した記憶手段は周知であり、かつ、このような記憶手段に命令（プログラム）をストアすることも本願の優先日において通常実施されていたことである。
　よって、引用発明において、実行対象命令を、一つ又は二つ以上の命令バンクにストアするよう構成することに格別な困難性はない。
　
　そして、本願発明の作用効果も、引用発明及び周知技術から当業者が容易に予測できる範囲内のものである。
　
　なお、請求人は、平成１５年９月１８日付けの意見書において、「本発明のタイプコードは、審査官殿が述べているように、命令が変換されるべきか翻訳されて実行されるべきかを制御するものでも、指示するものでもありません。」と主張しているが、本願発明には、「変換タイプコードは、前記変換後の各々の後の実行を達成するため…行われるアクションを示し」、「変換タイプコードに応答した態様で、変換後命令の対応する機能を実行する」としか記載がなく、「アクション」及び「応答した態様」とは如何なるものであるのか具体的に特定していないから、実施例に記載された「ＪＵＭＰ」や「ＰＯＩＮＴＥＲ」に限定されず、あらゆる「アクション」及び「応答した態様」を含むこととなる。（なお、発明の詳細な説明の記載を参酌すると、本願発明の「変換タイプコード」には、命令が解釈・実行されるべきであることを示す「実行済（ＥＸＥＣＵＴＥＤ）」が含まれるから、上記主張「命令が変換されるべきか翻訳されて実行されるべきかを制御するものでも、指示するものでもありません。」はそもそも矛盾したものである。）
　つまり、請求人の主張は、特許請求の範囲に記載された本願発明の構成に基づいたものではない。また、発明の詳細な説明の記載を参酌しても、請求人が主張する「変換タイプコード」の定義は、「ＪＵＭＰ」や「ＰＯＩＮＴＥＲ」など一部についてのみ正しいものであって、全部に当てはまるものではない。
　よって、請求人の主張は採用しない。
　
５．むすび
　したがって、本願発明は、引用発明及び周知技術に基いて当業者が容易に発明をすることができたものであるので、特許法第２９条第２項の規定により特許を受けることができない。
　よって、結論のとおり審決する。