【事件の表示】
　特願２００３−　　３０３８「コンテキスト切り替え方法及び装置、コンテキスト切り替えプログラム及びそれを記憶したコンピュータ読み取り可能な記憶媒体」拒絶査定不服審判事件〔平成１６年　８月　５日出願公開、特開２００４−２２００７０〕について、次のとおり審決する。
【結　論】
　本件審判の請求は、成り立たない。
【理　由】
１．手続の経緯
　本願は、平成１５年１月９日の出願であって、同年４月７日付けで拒絶の理由が通知され、同年６月１０日付けで手続補正がなされたものの、平成１６年８月２０日付けで拒絶査定がなされた。
　
　これに対し、同年９月２９日に拒絶査定に対する審判請求がなされるとともに、同年１０月２０日付けで手続補正がなされ、当審において、平成１９年８月３０日付けで平成１６年１０月２０日付けの手続補正を却下する旨の決定がなされるとともに、同日付けで拒絶理由が通知され、平成１９年１１月１日付けで意見書が提出されるとともに手続補正がなされたものである。
　
２．本願発明
　本願の請求項１に係る発明（以下、「本願発明」という。）は、平成１９年１１月１日付けの手続補正書によって補正された特許請求の範囲の請求項１に記載された次のとおりのものである。
　
「複数のコンテキストを切り替えるコンテキスト切り替え装置であって、
　読み出しポートと書き込みポート及びコンテキストスイッチ用読み出しポートと書き込みポートを有し、演算論理ユニット又はメモリアクセスユニットで実行すべきスレッドに関するコンテキストが記憶されたレジスタファイルと、
　読み出しポートと書き込みポートを有し、前記レジスタファイルに直接接続され、フリップフロップを用い、中央演算装置内にオンチップで実装されてコンテキストを保持するためのコンテキストキャッシュと、
　前記コンテキストキャッシュの読み出しポート及び書き込みポートを、前記レジスタファイルのコンテキストスイッチ用書き込みポート及び読み出しポートとそれぞれ接続する復帰用バス及び退避用バスを有し、前記レジスタファイルと前記コンテキストキャッシュを接続するコンテキストスイッチ専用バスと、
　前記コンテキストキャッシュに記憶されているスレッドのコンテキストを識別するためのスレッド識別子（スレッドＩＤ）を記憶するスレッドＩＤテーブルを有し、演算論理ユニット及びメモリアクセスユニットと並列に接続され、前記コンテキストキャッシュと前記レジスタファイルとの間のデータ伝送を制御するスレッド制御ユニットと、
　命令及びデータをそれぞれキャッシュする命令キャッシュ及びデータキャッシュと、
　前記命令キャッシュから命令をフェッチ及びデコードする命令フェッチユニットと、
　前記レジスタファイルに記憶された命令に従い各種演算を行い、演算結果を前記レジスタファイルに書き戻す演算論理ユニットと、
　前記レジスタファイルからオペランドと命令が送られ、前記データキャッシュをアクセスし、ロード又はストアを実行するメモリアクセスユニットと、
　前記レジスタファイル、前記演算論理ユニット、前記メモリアクセスユニット及び前記スレッド制御ユニットを並列に接続する演算バスと
を備え、
　前記スレッド制御ユニットは、コンテキストを入れ替えるスワップ命令を実行する場合、オペレーティングシステムのソフトウェアからスレッド識別子（スレッドＩＤ）をオペランドとして含むスワップ命令が発行されると、該スワップ命令と新たに入れ替えるスレッドＩＤを受け、
　前記スレッド制御ユニットは、スレッドＩＤに基づき前記スレッドＩＤテーブルを検索して、新たに入れ替えるコンテキストが記憶されている復帰すべき前記コンテキストキャッシュのアドレスと、実行中のコンテキストが記憶されている退避すべき前記レジスタファイルのレジスタ識別子を求め、
　前記スレッド制御ユニットは、求められたアドレスを前記コンテキストキャッシュに送り、同時にレジスタ識別子を前記レジスタファイルに送り、
　前記レジスタファイルは、前記スレッド制御ユニットから与えられたレジスタ識別子をもとに、退避すべきコンテキストのデータを前記コンテキストスイッチ用読み出しポートから出力すると共に、これと同時に、前記コンテキストキャッシュの読み出しポートから復帰用バスを介してコンテキストスイッチ用書き込みポートに送られてくる復帰すべきコンテキストのデータを該レジスタ識別子に対応するレジスタに書き込み、
　一方、前記コンテキストキャッシュは、前記スレッド制御ユニットから与えられたアドレスをもとに、復帰すべきコンテキストのデータを読み出しポートから出力すると共に、これと同時に、前記レジスタファイルのコンテキストスイッチ用読み出しポートから退避用バスを介して書き込みポートに送られてくる退避すべきコンテキストのデータを該アドレスに書き込むことにより
　前記レジスタファイルから前記コンテキストキャッシュへ実行中のスレッドのコンテキストを退避すると同時に、前記コンテキストキャッシュから前記レジスタファイルへ新しく入れ替えるスレッドのコンテキストを送り、自動的に必要な数だけ前記レジスタファイル内のデータと前記コンテキストキャッシュ内のデータを入れ替える
　前記コンテキスト切り替え装置。」
　
３．引用発明
（１）引用発明１
　本願の出願日前に頒布された刊行物であり、当審の拒絶理由に引用された、特開平１１−３９１７１号公報（以下、「引用文献１」という。）には、図面とともに以下の事項が記載されている。
　
Ａ．「【０００１】
【発明の属する技術分野】本発明は、マルチタスク処理装置、マルチタスク処理制御方法及び制御プログラム記憶媒体に係り、特にマルチタスキングにおいて、コンテキストスイッチング（Context switching ）を行なうマルチタスク処理装置、マルチタスク処理制御方法及びマルチタスク制御用プログラムを記憶した制御プログラム記憶媒体に関する。」
　
Ｂ．「【００３４】マイクロプロセッサ３０は、大別すると、後述のＭ個のレジスタファイル（レジスタ群）２４-1〜２４-Mを有し、退避／復帰処理を行なうレジスタ回路１０と、レジスタファイル２４-1〜２４-Mの内容に基づいて各種演算を行なう演算回路２６と、後述のレジスタファイル２４-1〜２４-Mと演算回路２６を接続する内部バス（内部アドレスバス及び内部データバス）１７と、内部バス１７及び後述の外部バス１３を制御するためのバス制御回路２２と、を備えて構成されている。
【００３５】レジスタ回路１０は、内部バス１７とは別個に設けられ、後述のレジスタファイル２４-1〜２４-Mと接続されている退避／復帰用内部バス１１と、演算回路２６の処理状態に応じてコンテキストの退避／復帰を制御すべくタスクの処理に用いるレジスタファイルを選択するための制御信号ＳC を出力する退避／復帰制御回路１２と、退避／復帰用内部バス１１を介して退避したコンテキストを格納するためのコンテキスト用メモリ１４と、それぞれ一のタスクのコンテキストを格納するＭ個（Ｍ；２以上の整数）のレジスタファイル（レジスタ群）２４-1〜２４-Mと、を備えて構成されている。
【００３６】バス制御回路２２には、各種データを記憶する外部メモリとしてのデータ用メモリ２０が接続された外部バス１３が接続されている。退避／復帰制御回路１２は、複数のレジスタファイル２４-1〜２４-Mにいずれのタスクに対応するコンテキストが格納されているかを判別するレジスタファイル選択回路１２Ａを備えて構成されている。」
　
Ｃ．「【００３７】次に概要動作を説明する。この場合において、マルチタスク制御用のプログラムは、図示しないＲＯＭ等の不揮発性メモリに書き込まれ、あるいは、外部バスを介して外部の記憶媒体（フレキシブルディスク、ハードディスク、光ディスク、半導体メモリ等）から供給され、または、外部から通信により受信することにより図示しないＲＡＭに格納されてマイクロプロセッサにより処理されるものとする。
１）  処理すべきタスク数Ｎがレジスタファイル数Ｍ以下の場合（Ｎ≦Ｍ）
【００３８】従って、タスク切換えが発生した場合には、レジスタファイル選択回路１２Ａは、切換え先のタスクに対応するレジスタファイルを複数のレジスタファイル２４-1〜２４-Mのうちから判別し、対応するレジスタファイル２４-X（Ｘ＝１〜Ｍ）のみをアクティブにするための制御信号ＳC を出力する。
【００３９】・・・（中略）・・・
２）  処理すべきタスク数Ｎがレジスタファイル数Ｍより多い場合（Ｎ＞Ｍ）
ｉ）  退避／復帰処理を行なわない場合の制御
そこで、タスク切換えが発生した場合には、レジスタファイル選択回路１２Ａは、内部バス１７、バス制御回路２２、外部バス１３及びデータ用メモリ２０を用いて現在行なわれている演算回路２６のタスクの処理と並行して、切換え先のタスクに対応するコンテキストがレジスタファイル２４-1〜２４-Mのいずれかに存在するか否かを判別する。
【００４０】このレジスタファイル選択回路１２Ａの判別に基づいて退避／復帰制御回路１２は、いずれかのレジスタファイル２４-1〜２４-Mに当該切換え先のタスクに対応するコンテキストが存在する場合には、対応するレジスタファイル２４-X（Ｘ＝１〜Ｍ）のみをアクティブにするための制御信号ＳC を出力する。
【００４１】・・・（中略）・・・
ｉｉ）  退避／復帰処理を行なう場合の制御
一方、いずれのレジスタファイル２４-1〜２４-Mにも当該切換え先のタスクに対応するコンテキストが存在しない場合には、レジスタファイル選択回路１２Ａは、タスクの優先度等に基づいてコンテキスト用メモリ１４に退避すべきコンテキストが格納されているレジスタファイル２４-Y（Ｙ＝１〜Ｍ）を判別する。
【００４２】これにより退避／復帰制御回路１２は、制御信号ＳC により、レジスタファイル２４-Yに格納されているコンテキストを退避／復帰用内部バス１１を介してコンテキスト用メモリ１４に退避する。レジスタファイル２４-Yに格納されているコンテキストのコンテキスト用メモリ１４への退避が終了すると、退避／復帰制御回路１２は、再び制御信号ＳC により、レジスタファイル２４-Yに復帰させるべきコンテキストを退避／復帰用内部バス１１を介してレジスタファイル２４-Yに格納する。
・・・（中略）・・・
【００４４】以上の退避／復帰処理は、内部バス１７、バス制御回路２２、外部バス１３及びデータ用メモリ２０を用いて現在行なわれている演算回路２６のタスクの処理と並行して行なうことができるので、現在実行中のタスクの処理を中断する必要がなく、レジスタファイルの切換時間のオーバーヘッドを削減することが可能となる。従って、マイクロプロセッサ全体のパフォーマンスを向上させることができる。」
　
Ｄ．「【００６１】さらにコンテキスト用メモリを外部バスと比較してより高速処理が可能な内部バス（＝退避／復帰用内部バス）に接続しているため、コンテキスト用メモリを退避／復帰用バス制御回路及び退避／復帰用の外部バスを介してマイクロプロセッサの外部に接続する場合と比較して回路構成を簡略化することができ、タスク切替時間の短縮化が図れる。
【００６２】また、マイクロプロセッサがコンテキスト用メモリを内蔵しているため、マイクロプロセッサとコンテキスト用メモリを接続する必要もなく、接続ミス等による誤動作が発生することがないため、信頼性を向上することができる。」
　
　上記Ａの記載からみて、引用文献１には、コンテキストスイッチングを行うマルチタスク処理装置が記載されている。
　
　上記Ｂに記載されているように、退避／復帰用内部バスは、内部バスとは別個に設けられたものであること、上記Ｃの段落【００４４】には、退避／復帰処理は、内部バスを用いて行われる演算回路のタスクの処理と並行して行うことができる旨の記載があること、及び、引用文献１の図１における各レジスタファイルと内部バス及び退避／復帰用内部バスとの接続関係からみて、各レジスタファイルは、内部バス及び退避／復帰用内部バスのそれぞれに接続するための独立したポートを備えているものと認められる。
　また、上記Ｂに記載されているように、各レジスタファイルは、タスクのコンテキストを格納するものである。そして、上記Ｃの段落【００４４】に「演算回路のタスクの処理」と記載されているように、演算回路はタスクの実行を行うものであるから、各レジスタファイルは、演算回路で実行すべきタスクに関するコンテキストを格納するものである。
　
　上記Ｂにおける「退避／復帰用内部バス１１を介して退避したコンテキストを格納するためのコンテキスト用メモリ１４」との記載、及び、引用文献１の図１の記載からみて、コンテキスト用メモリは、退避／復帰用内部バスに接続されており、そのためのポートを備えているものと認められる。
　また、上記Ｄの記載からみて、コンテキスト用メモリは、マイクロプロセッサに内蔵、すなわち、オンチップで実装されているものであり、バス制御回路及び外部バスを介することなく、退避／復帰用内部バスにより各レジスタファイルに直接接続されている。
　
　上記Ｂの記載からみて、退避／復帰制御回路は、コンテキスト用メモリとレジスタファイルの間でのコンテキストの退避／復帰、すなわち、コンテキスト用メモリとレジスタファイルとの間のデータ伝送、を制御するものである。
　
　上記Ｂに記載されているように、演算回路は、レジスタファイルの内容に基づいて各種演算を行うものである。
　
　上記Ｂ及び引用文献１の図１の記載からみて、内部バスは、各レジスタファイルと演算回路を並列に接続するものである。
　
　上記Ｃの記載からみて、退避／復帰制御回路は、マルチタスク制御用のプログラムによりタスク切換えが発生した場合で、退避／復帰処理を行う必要がある場合（段落【００４０】以下に記載された２）のｉｉ）の場合）に、コンテキスト用メモリに退避すべきコンテキストが格納されているレジスタファイルを特定した上で、制御信号を用いて、前記特定されたレジスタファイルから前記コンテキスト用メモリへ前記退避すべきコンテキストを退避するとともに、前記コンテキスト用メモリから前記特定されたレジスタファイルへ復帰させるべきコンテキストを復帰させることにより、前記特定されたレジスタファイル内のデータとコンテキスト用メモリ内のデータを入れ替えるものである。
　
　したがって、上記Ａ−Ｄの記載事項及び関連する図面を参照すると、引用文献１には、次の発明（以下、「引用発明１」という。）が記載されている。
　
「コンテキストスイッチングを行うマルチタスク処理装置であって、
　内部バス接続用のポート及び退避／復帰用内部バス接続用のポートを有し、演算回路で実行すべきタスクに関するコンテキストが格納された複数のレジスタファイルと、
　退避／復帰用内部バス接続用のポートを有し、前記複数のレジスタファイルに直接接続され、マイクロプロセッサ内にオンチップで実装されてコンテキストを格納するためのコンテキスト用メモリと、
　前記コンテキスト用メモリの退避／復帰用内部バス接続用のポートを、前記複数のレジスタファイルの退避／復帰用内部バス接続用のポートと接続し、前記複数のレジスタファイルと前記コンテキスト用メモリを接続する退避／復帰用内部バスと、
　前記コンテキスト用メモリと前記レジスタファイルとの間のデータ伝送を制御する退避／復帰制御回路と、
　前記レジスタファイルの内容に基づいて各種演算を行う演算回路と、
　前記複数のレジスタファイルと前記演算回路を並列に接続する内部バスと
を備え、
　前記退避／復帰制御回路は、マルチタスク制御用のプログラムによりタスク切換えが発生した場合で、退避／復帰処理を行う必要がある場合に、
　コンテキスト用メモリに退避すべきコンテキストが格納されているレジスタファイルを特定し、
　制御信号を用いて、前記特定されたレジスタファイルから前記コンテキスト用メモリへ前記退避すべきコンテキストを退避するとともに、前記コンテキスト用メモリから前記特定されたレジスタファイルへ復帰させるべきコンテキストを復帰させることにより、前記特定されたレジスタファイル内のデータと前記コンテキスト用メモリ内のデータを入れ替える
　前記コンテキストスイッチングを行うマルチタスク処理装置。」
　
（２）引用発明２
　本願の出願日前に頒布された刊行物であり、当審の拒絶理由に引用された、CUI, G., et al.，Parallel Replacement Mechanism for MultiThread，Advances in Parallel and Distributed Computing, 1997. Proceedings，米国，IEEE，１９９７年３月２１日，ｐ．３３８−３４４（以下、「引用文献２」という。）には、図面とともに以下の事項が記載されている。
　
Ｅ．「Abstract
This paper presents a new rapid thread replacement mechanism which is important in multithread technology.」（３３８頁左欄１行〜４行）
　
（当審訳）
　この論文では、マルチスレッド技術において重要である新規な高速スレッド置換機構を提示する。
　
Ｆ．「Figure 3-0 shows a kind of mechanism which overlaps the replacement with computation. In this mechanism, a path between contexts and memory, and a control unit are added. The control unit executes the following functions:
　　(1) to select a thread from all the contexts which are switched down most recently and put it into memory.
　　(2) to load the selected ready thread into the most recently emptied context. Because these operations are independent of thread computation, these two processes can be done concurrently and the replacement overhead can be reduced. However, the efficiency of this mechanism is still dependent on the relationship between replacement interval INT(p) and the absolute replacement time A(p). Only when the probability of INT(p)A(p) is small enough, can this mechanism play a better role. So the reduction of A(p) is very important in this mechaism. To deal with this, two temporary register sets are added to reside contexts being loaded from memory or to be unloaded into memory (see figure 3-1).
　　In figure 3-1, Temp1 and Temp2 are two register sets to preserve unloaded and loaded threads respectively. Besides this, a thread control unit is configured to control the data moving between temporary register sets and memory. This mechanism works as follows:
　　(1) Thread transferring from temporary register set to empty context
　　First, the control unit checks the Temp2: if temp2 is empty, nothing to do; if not, only when one of the contexts is empty, delivers the data in temp2 into the empty context and empties the temp2.
　　(2) Thread transferring from context to temporary register set
　　The control unit checks the state of temp1 at first. If temp1 is not empty, nothing to do; if empty, the thread blocked at the latest time is transferred into temp1.
　　(3) Thread transferring from temporary register sets to memory
　　The control unit checks the state of temp1 at first. If not empty, delivers it to memory; if empty, nothing to do.
　　(4) Thread transferring from memory to temporary context
　　The control unit checks the state of temp2 at first. If empty, moves a selected ready thread into temp2; if not, nothing to do.
The four steps are done in parallel and the absolute replacement overhead can be reduced fifty percent of its original value.」（３４０頁左欄１０行〜同頁右欄２４行）
　
（当審訳）
　図３−０には、置換と計算とをオーバーラップさせるための機構の一つが示されている。この機構においては、コンテキストとメモリの間の経路及び制御ユニットが追加されている。この制御ユニットは、次の機能を実行する：
（１）直近に実行停止（switched down）されたすべてのコンテキストから１つのスレッドを選びメモリに格納する。
（２）選択された実行可能なスレッド（ready thread）を、直近に空にされたコンテキストにロードする。これらの操作は、スレッドの計算と独立しているので、これらの２つの工程は並行に行うことができ、置換オーバーヘッドを削減することができる。しかしながら、この機構の効率は、依然として置換インターバルINT(p)と絶対置換時間A(p)の関係に依存している。INT(p)A(p)となる蓋然性が十分に小さい場合にのみ、この機構はより良い役割を果たすことができる。したがって、この機構において、A(p)の削減は非常に重要である。これに対処するため、メモリからロードされる又はメモリへとアンロードされるコンテキストを保持するための２つの一時レジスタセットが追加される（図３−１参照）。
　図３−１では、Temp1とTemp2が、アンロードおよびロードされたスレッドをそれぞれ保持する２つのレジスタセットである。これに加え、制御ユニットは、一時レジスタとメモリの間を移動するデータの制御を行うように構成される。この機構は次のように動作する：
（１）一時レジスタセットから空のコンテキストへのスレッドの転送
　まず、制御ユニットがTemp2をチェックする：もしTemp2が空なら何もしない；もし空でなければ、コンテキストの一つが空の場合のみ、Temp2のデータをその空のコンテキストに引渡しTemp2を空にする。
（２）コンテキストから一時レジスタセットへのスレッドの転送
　制御ユニットは、まず、Temp1の状態をチェックする。もしTemp1が空でなければ何もしない。もし空であれば、最後にブロックされたスレッドがTemp1に転送される。
（３）一時レジスタセットからメモリへのスレッドの転送
　制御ユニットは、まず、Temp1の状態をチェックする。もし空でなければ、それをメモリに引渡し、もし空であれば、何もしない。
（４）メモリから一時コンテキストへのスレッドの転送
　制御ユニットは、まず、Temp2の状態をチェックする。もし空であれば、選択された実行可能なスレッドをTemp2に移動する。もし空でなければ、何もしない。
　この４つのステップは並列に行われ、絶対的な置換処理のオーバーヘッドを、その元々の値の５０％減らすことができる。
　
Ｇ．「In mechanism of 3-1, the parallelism between thread computation and replacement is exploited by hardware parallelism. Different structures can be designed according to different memory implementation. (1) In single port memory, only one read or write access can be done at one time.・・・（中略）・・・(2) On the other hand, multiple read ports and write ports are designed in the multiport memory and multiple accesses can be executed concurrently.・・・（中略）・・・Therefore, the parallelism between thread computation and replacement can be explored by multiport memory. This structure is shown in figure 3-1.」（３４３頁左欄１行〜２３行）
　
（当審訳）
　３−１の機構では、スレッドの計算と置換の間の並列性は、ハードウェア並列性により活用されている。メモリ実装の違いに従って、異なる構成が設計可能である。（１）シングルポートメモリの場合には、一度に１つの読み出し又は書き込みアクセスだけが可能である。・・・（中略）・・・（２）一方、マルチポートメモリにおいては、複数の読み出しポートと書き込みポートが設計され、複数のアクセスが同時に実行可能である。・・・（中略）・・・したがって、スレッドの計算と置換の間の並列性は、マルチポートメモリによって探求され得る。
　
　上記Ｅ、Ｆの記載からみて、引用文献２には、コンテキストとメモリの間におけるスレッド置換機構が記載されている。
　なお、引用文献２における「コンテキスト」は、上記引用文献１における「コンテキスト」とは異なり、データではなく、データとしてのスレッドを格納するための記憶装置である。
　
　上記Ｆ、Ｇの記載からみて、引用文献２の図３−０、図３−１の構成では、コンテキストとメモリの間にスレッドの置換用の経路を別途設けるとともに、マルチポートメモリを採用することにより、スレッドの置換とスレッドの計算を並列に行うことが可能とされている。
　
　上記Ｆの記載からみて、引用文献２の図３−１の構成では、２つの一時レジスタセットを前記スレッドの置換用の経路に更に設け、コンテキストからメモリへのスレッドのアンロード（退避）とメモリからコンテキストへのスレッドのロード（復帰）のための処理を並列に行うことにより、置換処理の時間を半分にすることが可能となっている。
　また、図３−１の記載からみて、スレッドの退避用の経路と、スレッドの復帰用の経路が独立して設けられ、それぞれ、コンテキスト及びメモリに接続されている。
　
　したがって、上記Ｅ−Ｇ及び関連する図面を参照すると、引用文献２には、次の発明（以下、「引用発明２」という。）が記載されている。
　
「コンテキストとメモリの間にスレッド置換用の経路を別途設けた、高速スレッド置換機構であって、
　前記スレッド置換用の経路として、スレッドの退避用の経路と復帰用の経路とを独立して設けるとともに、各経路にそれぞれ一時レジスタセットを設けることにより、コンテキストからメモリへのスレッドの退避と、メモリからコンテキストへのスレッドの復帰を並列に実行する高速スレッド置換機構。」
　
４．対比
ａ）本願発明と引用発明１とを対比すると、引用発明１の「タスク」、「コンテキスト」、「マイクロプロセッサ」及び「内部バス」は、それぞれ、本願発明の「スレッド」、「コンテキスト」、「中央演算装置」及び「演算バス」に相当する。
　また、引用発明１の「退避／復帰用内部バス」は、コンテキストの退避／復帰を行うための専用バスである点で、本願発明の「コンテキストスイッチ専用バス」に対応し、引用発明１の「コンテキストスイッチングを行うマルチタスク処理装置」は、コンテキストスイッチング、すなわち、複数のコンテキストの切り替えを行う装置である点で、本願発明の「複数のコンテキストを切り替えるコンテキスト切り替え装置」に対応する。
　
ｂ）レジスタファイルの内容に基づいて各種演算を行う演算回路がその演算結果をレジスタファイルに書き戻すことは、通常のマイクロプロセッサにおいてごく一般的に行われていることであり、レジスタファイルの内容は演算回路における演算内容を規定する指示データでもあるから、引用発明１における「前記レジスタファイルの内容に基づいて各種演算を行う演算回路」と、本願発明の「前記レジスタファイルに記憶された命令に従い各種演算を行い、演算結果を前記レジスタファイルに書き戻す演算論理ユニット」との間に実質的な相違はない。
　
ｃ）引用発明１における「レジスタファイル」は、演算論理ユニットで実行すべきスレッドに関するコンテキストが格納すなわち記憶されるものである点で、本願発明の「レジスタファイル」に対応するものである。
　また、引用発明１のレジスタファイルが有する「内部バス接続用のポート」は、演算バスへの接続用ポートである点で、本願発明のレジスタファイルが有する「読み出しポートと書き込みポート」を併せたものに対応する。
　同様に、引用発明１のレジスタファイルが有する「退避／復帰用内部バス接続用のポート」は、コンテキストスイッチ専用バスへの接続用ポートである点で、本願発明のレジスタファイルが有する「コンテキストスイッチ用読み出しポートと書き込みポート」を併せたものに対応する。
　よって、引用発明１の「内部バス接続用のポート及び退避／復帰用内部バス接続用のポートを有し、演算回路で実行すべきタスクに関するコンテキストが格納された」レジスタファイルは、演算バスへの接続用ポート及びコンテキストスイッチ接続バスへの接続用ポートを有し、演算論理ユニットで実行すべきスレッドに関するコンテキストが記憶されたレジスタファイルである点で、本願発明の「読み出しポートと書き込みポート及びコンテキストスイッチ用読み出しポートと書き込みポートを有し、演算論理ユニット又はメモリアクセスユニットで実行すべきスレッドに関するコンテキストが記憶されたレジスタファイル」と一致する。
　
ｄ）引用発明１における「コンテキスト用メモリ」は、中央演算装置内にオンチップで実装されてコンテキストを格納すなわち保持するためのものである点で、本願発明の「コンテキストキャッシュ」に対応するものである。
　また、引用発明１のコンテキスト用メモリが有する「退避／復帰用内部バス接続用のポート」は、コンテキストスイッチ専用バスへの接続用ポートである点で、本願発明のコンテキストキャッシュが有する「読み出しポートと書き込みポート」を併せたものに対応する。
　よって、引用発明１の「退避／復帰用内部バス接続用のポートを有し、前記複数のレジスタファイルに直接接続され、マイクロプロセッサ内にオンチップで実装されてコンテキストを格納するためのコンテキスト用メモリ」は、コンテキストスイッチ専用バスへの接続用ポートを有し、前記レジスタファイルに直接接続され、中央演算装置内にオンチップで実装されてコンテキストを保持するためのコンテキストキャッシュである点で、本願発明の「読み出しポートと書き込みポートを有し、前記レジスタファイルに直接接続され、フリップフロップを用い、中央演算装置内にオンチップで実装されてコンテキストを保持するためのコンテキストキャッシュ」と一致する。
　
ｅ）上記ａ）、ｃ）及びｄ）の検討結果からみて、引用発明１の「前記コンテキスト用メモリの退避／復帰用内部バス接続用のポートを、前記複数のレジスタファイルの退避／復帰用内部バス接続用のポートと接続し、前記複数のレジスタファイルと前記コンテキスト用メモリを接続する退避／復帰用内部バス」は、前記コンテキストキャッシュのコンテキストスイッチ専用バスへの接続用ポートを、前記レジスタファイルのコンテキストスイッチ専用バスへの接続用ポートと接続し、前記レジスタファイルと前記コンテキストキャッシュを接続するコンテキストスイッチ専用バスである点で、本願発明の「前記コンテキストキャッシュの読み出しポート及び書き込みポートを、前記レジスタファイルのコンテキストスイッチ用書き込みポート及び読み出しポートとそれぞれ接続する復帰用バス及び退避用バスを有し、前記レジスタファイルと前記コンテキストキャッシュを接続するコンテキストスイッチ専用バス」と一致する。
　
ｆ）上記ｃ）及びｄ）の検討結果からみて、引用発明１の「退避／復帰制御回路」は、前記コンテキストキャッシュと前記レジスタファイルとの間のデータ伝送を制御するものである点で、本願発明の「スレッド制御ユニット」に対応するものである。
　
ｇ）引用発明１における「マルチタスク制御用のプログラムによりタスク切換えが発生した場合で、退避／復帰処理を行う必要がある場合」は、コンテキストの入れ替えを行う場合である点で、本願発明の「コンテキストを入れ替えるスワップ命令を実行する場合」と上位概念で一致する。
　
ｈ）本願発明において「前記レジスタファイルから前記コンテキストキャッシュへ実行中のスレッドのコンテキストを退避する」場合の「実行中のスレッドのコンテキスト」は、退避対象となっているコンテキストであり、同様に、本願発明において「前記コンテキストキャッシュから前記レジスタファイルへ新しく入れ替えるスレッドのコンテキストを送」る場合の「新しく入れ替えるスレッドのコンテキスト」は、復帰対象となっているコンテキストである。
　したがって、引用発明１の「前記特定されたレジスタファイルから前記コンテキスト用メモリへ前記退避すべきコンテキストを退避するとともに、前記コンテキスト用メモリから前記特定されたレジスタファイルへ復帰させるべきコンテキストを復帰させることにより、前記特定されたレジスタファイル内のデータと前記コンテキスト用メモリ内のデータを入れ替える」ことは、前記レジスタファイルから前記コンテキストキャッシュへ退避対象のコンテキストを退避するとともに、前記コンテキストキャッシュから前記レジスタファイルへ復帰対象のコンテキストを復帰させることにより、前記レジスタファイル内のデータと前記コンテキストキャッシュのデータを入れ替える点で、本願発明の「前記レジスタファイルから前記コンテキストキャッシュへ実行中のスレッドのコンテキストを退避すると同時に、前記コンテキストキャッシュから前記レジスタファイルへ新しく入れ替えるスレッドのコンテキストを送り、自動的に必要な数だけ前記レジスタファイル内のデータと前記コンテキストキャッシュ内のデータを入れ替える」ことと一致する。
　
　したがって、本願発明と引用発明１とは、
　
「複数のコンテキストを切り替えるコンテキスト切り替え装置であって、
　演算バスへの接続用ポート及びコンテキストスイッチ接続バスへの接続用ポートを有し、演算論理ユニットで実行すべきスレッドに関するコンテキストが記憶されたレジスタファイルと、
　コンテキストスイッチ専用バスへの接続用ポートを有し、前記レジスタファイルに直接接続され、中央演算装置内にオンチップで実装されてコンテキストを保持するためのコンテキストキャッシュと、
　前記コンテキストキャッシュのコンテキストスイッチ専用バスへの接続用ポートを、前記レジスタファイルのコンテキストスイッチ専用バスへの接続用ポートと接続し、前記レジスタファイルと前記コンテキストキャッシュを接続するコンテキストスイッチ専用バスと、
　前記コンテキストキャッシュと前記レジスタファイルとの間のデータ伝送を制御するスレッド制御ユニットと、
　前記レジスタファイルに記憶された命令に従い各種演算を行い、演算結果を前記レジスタファイルに書き戻す演算論理ユニットと、
　前記レジスタファイルと前記演算論理ユニットを並列に接続する演算バスと
を備え、
　前記スレッド制御ユニットは、コンテキストの入れ替えを行う場合に、
　前記レジスタファイルから前記コンテキストキャッシュへ退避対象のコンテキストを退避するとともに、前記コンテキストキャッシュから前記レジスタファイルへ復帰対象のコンテキストを復帰させることにより、前記レジスタファイル内のデータと前記コンテキストキャッシュのデータを入れ替える
　前記コンテキスト切り替え装置。」
　
である点で一致し、以下の点で相違している。
　
［相違点１］
　本願発明においては、レジスタファイルが複数あるとの限定はなく、複数のレジスタファイルから退避対象のコンテキストが格納されているレジスタファイルを特定する工程がないのに対し、引用発明１においては、レジスタファイルが複数あるため、退避すべきコンテキストが格納されているレジスタファイルを特定する工程が必要である点。
　
［相違点２］
　レジスタファイルからコンテキストキャッシュへの退避対象のコンテキストが、本願発明では、実行中のスレッドのコンテキストであるのに対し、引用発明１では、前記退避すべきコンテキストが格納されているレジスタファイルを特定する工程で特定されたレジスタファイルに格納されているコンテキストである点。
　
［相違点３］
　本願発明においては、コンテキストスイッチ専用バスが、復帰用バスと退避用バスを有するとともに、これに対応し、レジスタファイル及びコンテキストキャッシュが、それぞれ、復帰用バスと退避用バスに接続するための独立したポート（レジスタファイルの「コンテキストスイッチ用読み出しポートと書き込みポート」及びコンテキストキャッシュの「読み出しポートと書き込みポート」）を有しており、前記復帰用バスと退避用バスが対応するポート同士をそれぞれ接続しているのに対し、引用発明１では、退避／復帰用内部バスが、退避用と復帰用とで独立したバスを持たず、レジスタファイル及びコンテキスト用メモリが有する退避／復帰用内部バス接続用のポートも同様に、退避用と復帰用で独立していない点。
　
［相違点４］
　レジスタファイルからコンテキストキャッシュへの退避対象のコンテキストの退避と、コンテキストキャッシュからレジスタファイルへの復帰対象のコンテキストの復帰が、本願発明では同時に行われるのに対し、引用発明１では逐次的に行われる点。
　
［相違点５］
　本願発明においては、スレッド制御ユニットが、
・コンテキストキャッシュに記憶されているスレッドのコンテキストを識別するためのスレッド識別子（スレッドＩＤ）を記憶するスレッドＩＤテーブルを有し、
・スレッドＩＤに基づき前記スレッドＩＤテーブルを検索して、新たに入れ替えるコンテキストが記憶されている復帰すべき前記コンテキストキャッシュのアドレスを求め、
・求められたアドレスを前記コンテキストキャッシュに送り、
コンテキストキャッシュが、
・前記スレッド制御ユニットから与えられたアドレスをもとに、復帰すべきコンテキストのデータを読み出しポートから出力するとともに、
・これと同時に、前記レジスタファイルのコンテキストスイッチ用読み出しポートから退避用バスを介して書き込みポートに送られてくる退避すべきコンテキストのデータを該アドレスに書き込む
ことで、コンテキストキャッシュとの間のコンテキストの退避及び復帰処理を行っているのに対し、引用発明１においては、退避／復帰制御回路において、コンテキスト用メモリに記憶されているタスクのコンテキストをどのように管理し、具体的にどのような制御信号をコンテキスト用メモリに送って、コンテキスト用メモリとの間のコンテキストの退避及び復帰を行っているのか、その詳細について特定されていない点。
　
［相違点６］
　コンテキストの入れ替えを行う場合が、本願発明においては、「コンテキストを入れ替えるスワップ命令を実行する場合」であり、スレッド制御ユニットは、オペレーティングシステムのソフトウェアからスレッド識別子（スレッドＩＤ）をオペランドとして含むスワップ命令が発行されると、該スワップ命令と新たに入れ替えるスレッドＩＤを受け取るのに対し、引用発明１においては、「マルチタスク制御用のプログラムによりタスク切換えが発生した場合で、退避／復帰処理を行う必要がある場合」であり、具体的にどのような契機でタスク切換え及びそれに伴う退避／復帰処理が発生し、退避／復帰制御回路がどのような情報を受け取るのか、その詳細について特定されていない点。
　
［相違点７］
　本願発明においては、スレッド制御ユニットが、
・実行中のコンテキストが記憶されている退避すべき前記レジスタファイルのレジスタ識別子を求め、
・コンテキストキャッシュにアドレスを送るのと同時に、レジスタ識別子を前記レジスタファイルに送り、
レジスタファイルが、
・前記スレッド制御ユニットから与えられたレジスタ識別子をもとに、退避すべきコンテキストのデータを前記コンテキストスイッチ用読み出しポートから出力するととともに、
・これと同時に、前記コンテキストキャッシュの読み出しポートから復帰用バスを介してコンテキストスイッチ用書き込みポートに送られてくる復帰すべきコンテキストのデータを該レジスタ識別子に対応するレジスタに書き込む
ことで、レジスタファイル内のデータとコンテキストキャッシュ内のデータを、自動的に必要な数だけ入れ替えているのに対し、引用発明１においては、退避／復帰制御回路がレジスタファイル及びコンテキスト用メモリ内の複数のデータを具体的にどのようにして入れ替えるのか、レジスタファイル側の動作は、具体的にどのように行われるのか、その詳細について特定されていない点。
　
［相違点８］
　本願発明が、命令及びデータをそれぞれキャッシュする命令キャッシュ及びデータキャッシュと、前記命令キャッシュから命令をフェッチ及びデコードする命令フェッチユニットと、前記レジスタファイルからオペランドと命令が送られ、前記データキャッシュをアクセスし、ロード又はストアを実行するメモリアクセスユニットとを備えており、本願発明のスレッドは、演算論理ユニット又はメモリアクセスユニットで実行すべきスレッドであるのに対し、引用発明１においては、本願発明の命令キャッシュ、データキャッシュ、命令フェッチユニット、及び、メモリアクセスユニットに相当する構成についての特定がなく、タスクがメモリアクセスユニットで実行すべきものである点についても特定されていない点。
　
［相違点９］
　本願発明では、レジスタファイル、演算論理ユニット、メモリアクセスユニット及びスレッド制御ユニットが演算バスにより並列に接続されているのに対して、引用発明１では、レジスタファイル及び演算回路のみが内部バスにより並列に接続されている点。
　
［相違点１０］
　本願発明のコンテキストキャッシュが、フリップフロップを用いたものであるのに対し、引用発明１では、コンテキスト用メモリがどのような回路によって構成されているのか特定されていない点。
　
［相違点１１］
　レジスタファイルの有する演算バスへの接続用ポートが、本願発明では、読み出しポートと書き込みポートに分かれているのに対し、引用発明１においては、読み出し用と書き込み用で独立したポートとして構成されていない点。
　
５．当審の判断
　以下、上記各相違点について検討する。
　
［相違点１及び相違点２について］
　引用文献１の段落【０００２】〜【０００１５】における「従来の技術」の説明及び「発明が解決しようとする課題」の説明に記載されているように、引用発明１は、レジスタファイルを１組しか持たなかった従来技術の問題点を解決するため、レジスタファイルを複数設けた他の従来技術を更に改良するためになされたものであって、引用発明１による改良点である、コンテキスト用メモリをマイクロプロセッサ内にオンチップで実装し、レジスタファイルとコンテキスト用メモリを接続する退避／復帰用内部バスを別途設けたことによるコンテキストの退避／復帰処理のオーバーヘッドの削減は、レジスタファイルが１組しかない場合であっても有効であることは、当業者には明らかであるから、回路の単純化又はコストの削減のために、引用発明１において、レジスタファイルを１組だけ設けた構成とすることは、当業者が容易に想到し得ることである。
　
　そして、この場合には、レジスタファイルが１組しかないのであるから、退避すべきコンテキストが格納されているレジスタファイルを特定する工程が不要となること、及び、退避すべきコンテキストが、唯一のレジスタファイル上のコンテキスト、すなわち、現在実行中のタスク（本願発明の「スレッド」に相当。）のコンテキストとなることは論理的必然である。
　
［相違点３及び相違点４について］
　上記３．（２）で認定した引用発明２に見られるように、スレッド（引用発明１及び本願発明の「コンテキスト」に相当。）置換用の経路（同「バス」に相当。）として、退避用の経路と復帰用の経路を独立して設けるとともに、各経路にそれぞれ一時レジスタセットを設けることにより、スレッドの退避と復帰を並列に、すなわち、同時に実行することによって、スレッドの置換を高速化することは公知の技術である。
　
　また、レジスタやメモリを、複数の独立したバスに接続する際に、それぞれのバスに対応した独立のポートを設けることは、本願の出願日前に頒布された刊行物である、
・上記引用文献２（上記３．（２）のＦ、Ｇの記載及び図３−０、図３−１を参照。コンテキストとメモリの間に新たに追加された経路と既存の経路との両者に接続するために、マルチポートメモリを使用することの記載がある。）、及び、
・特開平７−４９７９２号公報（以下、「刊行物１」という。）（段落【０００２】〜【０００３】及び図６には、リードバスＲＢ１、ＲＢ２、ライトバスＷＢ１、ＷＢ２、及び、専用バスＷＢＢに接続される汎用レジスタは、２個の読出しポートと３個の書き込みポートを有すること、リードバスＲＢ１、ＲＢ２、及び、専用バスＷＢＢに接続される退避レジスタは、１個の読出しポートと２個の書き込みポートを有することの記載がある。）
に記載されているように、当業者における周知技術である。
　
　したがって、引用発明２と同様、コンテキストの退避／復帰処理の高速化を目的とする引用発明１において、レジスタファイルとコンテキスト用メモリとの退避／復帰処理を更に高速化するために、引用発明２の公知技術を適用するとともに、上記周知技術を考慮し、レジスタファイルとコンテキスト用メモリとの間の退避／復帰処理に用いられる退避／復帰用内部バスについて、退避用バスと復帰用バスを独立して設け、各経路にそれぞれ一時レジスタセットを設けることにより、レジスタファイルからコンテキスト用メモリへの退避すべきコンテキストの退避と、コンテキスト用メモリからレジスタファイルへの復帰させるべきコンテキストの復帰を同時に行うようにするとともに、レジスタファイル及びコンテキスト用メモリが有する退避／復帰用内部バス接続用のポートについて、退避／復帰用内部バスの退避用バスと復帰用バスに対応して独立したポート（本願発明のレジスタファイルの「コンテキストスイッチ用読み出しポートと書き込みポート」及びコンテキストキャッシュの「読み出しポートと書き込みポート」に相当するポート）を設け、前記退避用バスと復帰用バスにより、対応するポート同士がそれぞれ接続されるようにすることは、当業者が容易になし得ることである。
　
　なお、本願発明においては、上記一時レジスタセットに対応する構成は、発明特定事項とされていないが、そのような構成を含まないこともまた、発明特定事項とはされていない。この点に関連し、平成１９年１１月１日付けの意見書において、審判請求人が、コンテキストキャッシュからレジスタファイルへのコンテキストの復帰とレジスタファイルからコンテキストキャッシュへのコンテキストの退避とを並列に行うための回路の例として、上記一時レジスタセットに相当するフリップフロップを用いた回路図を提示していることは、上記一時レジスタセットを含む構成も本願発明の範囲内であることの証左である。
　
［相違点５について］
　レジスタファイルとコンテキストの退避用メモリとの間で、コンテキストの退避／復帰処理を行う場合に、タスクの識別子を用いた管理を行い、コンテキストの退避用メモリに記憶されているコンテキストに対応するタスクの識別子を記憶するテーブルを設けて、当該テーブルを検索することによりコンテキストの退避先アドレスを求め、求められたアドレスを用いてコンテキストの退避用メモリとの間のコンテキストの退避／復帰処理を行うことは、本願の出願日前に頒布された刊行物である、
・特開平８−１６１１８１号公報（以下、「刊行物２」という。）（段落【００３４】〜【００３６】及び図１には、主記憶装置内のＴＣＢ（「コンテキストの退避用メモリ」に相当）に記憶されているタスク状態データ（「コンテキスト」に相当）に対応するタスクのタスク識別番号（「識別子」に相当）を記憶するＴＣＢ対応テーブルに基づき、選択したタスクのＴＣＢが格納されている領域を示すＴＣＢアドレス信号を得て、タスク状態データの交換（「退避／復帰処理」に相当）を行うことが記載されている。）、
・特開平５−１６５６７２号公報（以下、「刊行物３」という。）（段落【００１８】〜【００２０】及び図１には、コンテキストの退避／復帰をシリアルなタスク番号で管理して行うことの記載があり、さらに、段落【００２４】には、シリアルなタスク番号以外の識別子を用いても良いこと、段落【００２５】には、テーブル形式やポインタ形式の検索方法を用いても良いことの記載がある。）、及び、
・特開２００２−１４０２００号公報（以下、「刊行物４」という。）（段落【００１７】〜【００１９】、【００４７】、【００５０】、【００６５】及び図１には、スレッドに仮想スレッド番号を割り当てて、その待避／復帰を管理し、仮想スレッド番号と該スレッドが待避されているローカル・メモリの先頭番地を含むＲｅａｄｙテーブルを用いて、復帰させるスレッドが格納されているローカル・メモリの先頭番地を得て、該スレッドに関するデータ（コンテキスト）の復帰を行うことの記載がある。）
に記載されているように、当業者における周知技術である。
　
　したがって、上記刊行物２−４に記載の周知技術と同様、レジスタファイルとコンテキストの退避用メモリとの間で、コンテキストの退避／復帰処理を行う技術である引用発明１において、上記刊行物２−４に記載の周知技術、並びに、上記［相違点３及び相違点４について］において検討した、コンテキストの退避用のバスと復帰用のバスを独立させ、コンテキストの退避と復帰を同時に行う公知技術、及び、レジスタやメモリを、複数の独立したバスに接続する際に、それぞれのバスに対応した独立のポートを設ける周知技術を考慮し、引用発明１の退避／復帰制御回路を、
・コンテキスト用メモリに記憶されているタスクのコンテキストを識別するためのタスク識別子（タスクＩＤ）を記憶するタスクＩＤテーブルを有し、
・タスクＩＤに基づき前記タスクＩＤテーブルを検索して、新たに入れ替えるコンテキストが記憶されている復帰すべき前記コンテキスト用メモリのアドレスを求め、
・求められたアドレスを前記コンテキスト用メモリに送る
ように構成するとともに、コンテキスト用メモリが、
・前記退避／復帰制御回路から与えられたアドレスをもとに、復帰すべきコンテキストのデータを退避／復帰用内部バスの復帰用バス接続用のポートから出力するとともに、
・これと同時に、前記レジスタファイルの退避／復帰用内部バスの退避用バス接続用のポートから退避用バスを介して退避／復帰用内部バスの退避用バス接続用のポートに送られてくる退避すべきコンテキストのデータを該アドレスに書き込む
ようにすることは、当業者が容易になし得ることである。
　
［相違点６について］
　レジスタファイルとコンテキストの退避用メモリとの間で、コンテキストの退避／復帰処理を行う場合に、タスクの識別子を用いた管理を行うとともに、オペレーティングシステムのソフトウェアがタスクの識別子をオペランドとして含む専用の切り替え命令を発行することにより、コンテキストの入れ替えを行うことは、本願の出願日前に頒布された刊行物である、
・上記刊行物３（段落【００１８】〜【００２１】及び図１には、リアルタイムＯＳがタスク遷移の際に、タスク番号をオペランドとして含むコンテキストスイッチ命令（ＬＤＣＴＸ　＃３、ＳＴＣＴＸ　＃３）を使用することの記載がある。）、及び、
・上記刊行物４（段落【００５２】及び図５には、Ｃｏｐ＿ｓｌｅｅｐ命令が実行されたときは、該当する仮想スレッド番号のスレッドについてコンテキストを退避することの記載がある。）
に記載されているように、当業者における周知技術である。
　
　したがって、上記刊行物３及び４に記載の周知技術と同様、レジスタファイルとコンテキストの退避用メモリとの間で、コンテキストの退避／復帰処理を行う技術である引用発明１に、上記刊行物３及び４に記載の周知技術を適用し、コンテキストの入れ替えを行う場合について、本願発明のスワップ命令に相当する、コンテキストの入れ替えを行う専用の切り替え命令を実行することによって入れ替え指示を行うようにするとともに、オペレーティングシステムのソフトウェアがタスクの識別子をオペランドとして含む前記専用の切り替え命令を発行した場合、コンテキストの入れ替え処理を行う退避／復帰制御回路に対し、オペランドとして指定されたタスクの識別子を渡すようにすることは、当業者が容易になし得ることである。
　
［相違点７について］
　引用発明１におけるレジスタファイルは、上記３．（１）Ｂに記載されているようにレジスタ群であり、複数のレジスタを含むものであるから、退避／復帰制御回路の制御により行われるレジスタファイルとコンテキスト用メモリの間でのコンテキストの入れ替えでは、複数のデータが転送され、入れ替えられる。
　
　そして、複数のデータを転送する場合に、その転送元及び転送先を順次指定しながら、必要な数だけデータの転送を自動的に行うことは、本願の出願日前に頒布された刊行物である、
・上記刊行物２（段落【００３７】〜【００４１】及び図２には、レジスタ群の各レジスタに格納されているデータと、ＴＣＢに退避されているデータとの交換を、順次自動的に行うことの記載がある。）
に記載されているように、当業者における周知技術であり、複数のレジスタが存在する場合に、各レジスタをレジスタＩＤで識別することも、ごく一般的に行われていることであるから、上記［相違点３及び相違点４について］において検討したように、コンテキストの退避用のバスと復帰用のバスを独立させ、コンテキストの退避と復帰を同時に行う技術が、引用発明１と同一の技術分野における公知技術であることも考慮し、引用発明１の退避／復帰制御回路が、
・実行中のコンテキストが記憶されている退避すべき前記レジスタファイルのレジスタ識別子を求め、
・コンテキスト用メモリにアドレスを送るのと同時に、レジスタ識別子を前記レジスタファイルに送り、
レジスタファイルが、
・前記退避／復帰制御回路から与えられたレジスタ識別子をもとに、退避すべきコンテキストのデータを退避／復帰用内部バスの退避用バス接続用のポートから出力するとともに、
・これと同時に、前記コンテキスト用メモリの退避／復帰用内部バスの復帰用バス接続用のポートから復帰用バスを介して退避／復帰用内部バスの復帰用バス接続用のポートに送られてくる復帰すべきコンテキストのデータを該レジスタ識別子に対応するレジスタに書き込む
ことで、レジスタファイル内のデータとコンテキスト用メモリ内のデータを、自動的に必要な数だけ入れ替えるようにすることは、当業者が容易になし得ることである。
　
［相違点８及び９について］
　命令キャッシュ、データキャッシュ、命令フェッチユニット及びメモリアクセスユニットとを備える構成は、本願の出願日前に頒布された刊行物である、
・国際公開第０２／０６９１５０号パンフレット（以下、「刊行物５」という。）（１頁１２行〜３頁１行及び図４には、命令キャッシュ、データ・キャッシュ、フェッチ・ユニット、外部メモリからのデータの読み出しを制御する図示しないコントロール・ユニット等を備えたマイクロプロセッサ・ユニットが記載されている。）、及び、
・上記刊行物４（段落【００１８】及び図１には、命令キャッシュ、データ・キャッシュ、フェッチ／デコード部を備えたプロセッサが記載されている。）
に記載されているように、マイクロプロセッサとして周知の構成である。
　
　また、マイクロプロセッサ内の各構成要素を内部バスによって並列に接続することは、ごく一般的な構成であるから、引用発明１の前提とするマイクロプロセッサにおいて、上記周知の構成を採用し、本願発明と同様、命令及びデータをそれぞれキャッシュする命令キャッシュ及びデータキャッシュと、前記命令キャッシュから命令をフェッチ及びデコードする命令フェッチユニットと、レジスタファイルからオペランドと命令が送られ、データキャッシュをアクセスし、ロード又はストアを実行するメモリアクセスユニットを備えたものとするとともに、レジスタファイルと演算回路に加えて、退避／復帰制御回路とメモリアクセスユニットについても、内部バスにより並列に接続するよう構成し、また、タスクを実行する主体としてメモリアクセスユニットを明示することに、格別の困難性はない。
　
［相違点１０について］
　キャッシュやレジスタ等の高速アクセスが必要なメモリ装置を構成する際に、ＳＲＡＭやフリップフロップ等の高速な記憶素子を用いることは、本願の出願日前に頒布された刊行物である、
・社団法人情報処理学会編，「新版　情報処理ハンドブック」，第１版，株式会社オーム社，平成７年１１月２５日，ｐ．２４３−２４４（以下、「刊行物６」という。）（２４３頁左欄１２行〜３４行に、ＳＲＡＭはアクセスが高速なものが実現可能であり、高速性を生かしてキャッシュメモリなどに用いられる旨の記載がある。）、及び、
・上記刊行物１（段落【００３０】には、汎用レジスタ及び退避レジスタ一体型レジスタをフリップフロップなどの記憶素子を用いて構成することの記載がある。）
に記載されているように、当業者における周知技術である。
　
　また、ＳＲＡＭは、フリップフロップ型回路で構成される記憶素子である（上記刊行物６の２４３頁右欄７行〜９行には、「〔１〕ＳＲＡＭのメモリセル　記憶セルは電気的に二つの安定状態を持つフリップフロップ型回路で構成する。」との記載がある。）から、ＳＲＡＭを用いたメモリ装置は、フリップフロップを用いたメモリ装置でもある。
　
　そして、引用発明１のコンテキスト用メモリは、コンテキストの退避／復帰処理の高速化を目的としてマイクロプロセッサ内の内蔵メモリとして設けられたものであって、高速にアクセスできることが求められるものであるから、引用発明１のコンテキスト用メモリを、高速な記憶素子であるフリップフロップ又はＳＲＡＭを用いて構成することにより、フリップフロップを用いたものとすることに、格別の困難性は認められない。
　
［相違点１１について］
　マイクロプロセッサ内のレジスタファイルに対し、読み出し用ポートと書き込み用ポートを独立して設けることは、本願の出願日前に頒布された刊行物である、
・上記刊行物１（段落【０００２】〜【０００３】及び図６に記載された汎用レジスタは、リードバスＲＢ１、ＲＢ２、ライトバスＷＢ１、ＷＢ２のそれぞれに接続するために、独立した読出しポートと書き込みポートを備えている。）
に記載されているように、当業者における周知技術であるから、引用発明１において、レジスタファイルの有する内部バス接続用のポートを、読み出し用ポートと書き込み用ポートで独立した構成とすることに、格別の困難性はない。
　
　以上、各相違点について順次検討したが、本願発明を全体として見ても、引用発明１、引用発明２及び周知技術に基づき、当業者が本願発明の構成に想到することについて、格別の困難性があるとは認められない。
　
　そして、本願発明の作用効果も、引用発明１、引用発明２及び周知技術から当業者が容易に予測できる範囲のものであるから、本願発明は、引用発明１、引用発明２及び周知技術に基づいて、当業者が容易に発明をすることができたものである。
　
６．むすび
　以上のとおり、本願発明は、引用文献１に記載された発明、引用文献２に記載された発明及び周知技術に基づいて、当業者が容易に発明をすることができたものであるから、特許法第２９条第２項の規定により特許を受けることができない。
　
　よって、結論のとおり審決する。