• ポートフォリオ機能


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

  • この表をプリントする
PDF PDFをダウンロード
審決分類 審判 査定不服 2項進歩性 特許、登録しない。 G06F
管理番号 1299703
審判番号 不服2013-19654  
総通号数 186 
発行国 日本国特許庁(JP) 
公報種別 特許審決公報 
発行日 2015-06-26 
種別 拒絶査定不服の審決 
審判請求日 2013-10-09 
確定日 2015-04-16 
事件の表示 特願2007-211904「並列処理用プロセッサ」拒絶査定不服審判事件〔平成21年 3月 5日出願公開、特開2009- 48306〕について、次のとおり審決する。 
結論 本件審判の請求は、成り立たない。 
理由 第1 手続の経緯

本件審判請求に係る出願(以下、「本願」という。)は、
平成19年8月15日を出願日とする出願であって、
平成22年8月16日に審査請求がなされ、
平成24年1月25日付けで拒絶理由通知(平成24年1月31日発送)がなされ、
平成24年4月2日付けで意見書が提出されるとともに、
同日付けで手続補正書が提出され、
平成24年10月31日付けで最後の拒絶理由通知(平成24年11月6日発送)がなされ、
平成25年1月7日付けで意見書が提出されるとともに、
同日付けで手続補正書が提出され、
平成25年7月1日付けで上記平成25年1月7日付けの手続補正についての補正の却下の決定(平成25年7月9日謄本発送・送達)がなされるとともに、
同日付けで、上記平成24年10月31日付けの拒絶理由通知書に記載した理由によって拒絶査定(平成25年7月9日謄本発送・送達)がなされたものである。

本件審判請求は、上記拒絶査定を不服とし、
平成25年10月9日付けで請求されたものであり、
同日付けで手続補正書が提出され、
平成26年3月27日付けで審査官により特許法第164条第3項に定める報告(前置報告)がなされたものである。


第2 平成25年10月9日付けの手続補正についての補正の却下の決定

[補正の却下の決定の結論]
平成25年10月9日付けの手続補正を却下する。

[理由]
1.補正の内容

平成25年10月9日付けの手続補正(以下、「本件補正」という。)の内容は、平成24年4月2日付けの手続補正により補正された特許請求の範囲の請求項1ないし10の記載

「 【請求項1】
それぞれ固有のプロセスIDを有する複数のプロセスを並列に実行する並列処理用プロセッサであって、
メモリと、
上記メモリから命令を取り出して当該命令を解読し、実行するCPU(Central Processing Unit)と、
上記CPU或いはメモリと、他の並列処理用プロセッサとのデータ送受信を行うリンクブロックと、
上記CPU及びリンクブロックによる上記メモリへのデータ入出力を制御するメモリコントローラと、
を有し、
上記メモリコントローラは、上記CPU或いは上記リンクブロックと上記メモリとの間のデータバスのデータ幅を変換し、上記メモリに対してバイトアクセス及びワードアクセスの両方でアクセス可能とし、
上記CPUは、上記メモリ上にプロセス毎に割り当てたワークスペースを確保し、上記ワークスペースを使用して、待機するプロセスの実行順を示すスケジューリングリストを形成し、上記スケジューリングリストに従って複数のプロセスを順次実行し、
上記CPUは、上記複数のプロセスのうちのいずれかのプロセスの実行中に、他のプロセスとの通信が要求されると、当該通信が上記並列処理用プロセッサの内部のプロセス間の通信である内部通信か、或いは他の並列処理用プロセッサとの間の通信である外部通信か、を判定し、内部通信である場合には、実行中のプロセスである先行プロセスにおける通信命令の実行部分において、上記メモリコントローラを介して通信するデータが格納されたアドレスを当該先行プロセスのワークスペースに格納し、当該先行プロセスを上記スケジューリングリストから外して、上記要求された通信における通信先のプロセスである後発プロセスの実行を開始し、当該後発プロセスにおける通信命令の実行部分において、上記先行プロセスのワークスペースから上記通信するデータが格納されたアドレスを取得して当該アドレスから後発プロセスのワークスペースの所定のアドレスにデータの転送を行う
並列処理用プロセッサ。
【請求項2】
上記複数のプロセスは、CSP(Communicating Sequential Processes)理論に基づくプログラミング言語で記述されたプログラムを構成する
請求項1に記載の並列処理用プロセッサ。
【請求項3】
上記CPUは、上記メモリコントローラを介して、上記通信するデータが格納されたアドレスを上記先行プロセスのワークスペースに格納すると共に、上記メモリ内の1ワードの任意領域であるチャンネルに上記先行プロセスのプロセスID或いは所定の初期値を格納する
請求項1または2に記載の並列処理用プロセッサ。
【請求項4】
上記CPUは、現在処理中のプロセスのプロセスIDを格納するワークスペースポインタレジスタと、待機中のプロセスのプロセスIDを格納する待機プロセス管理レジスタと、次に実行する命令の格納されているメモリアドレスを格納する命令ポインタレジスタと、スタック構造を有する複数のスタックレジスタと、を有する
請求項1から3のいずれか一項に記載の並列処理用プロセッサ。
【請求項5】
上記ワークスペースは、対応するプロセスのプロセスIDを示すアドレスから所定のワード数分確保された記憶領域であり、
上記スケジューリングリストは、先入先出構造を有し、現在実行中のプロセスのワークスペースの所定のアドレスに次に実行するプロセスIDを格納することによりリンクリスト構造に構成される
請求項1から4のいずれか一項に記載の並列処理用プロセッサ。
【請求項6】
上記CPUは、
上記通信が要求されると、上記複数のスタックレジスタのうち、第1のスタックレジスタに通信するデータの通信バイト数を、第2のスタックレジスタに上記チャンネルのアドレスであるチャンネルアドレスを、第3のスタックレジスタに通信するデータが格納されたアドレスをそれぞれ格納した後、内部通信であるか外部通信であるかの上記判定を行い、
当該判定の結果、内部通信であった場合には、上記先行プロセスにおける通信命令の実行部分に至ると、上記メモリコントローラを介して、上記第3のスタックレジスタに格納された、通信するデータが格納されたアドレスを当該先行プロセスのワークスペースに格納する
請求項4または5に記載の並列処理用プロセッサ。
【請求項7】
上記CPUは、上記判定の結果、外部通信であった場合には、上記リンクブロックに上記ワークスペースポインタレジスタ、上記第1のスタックレジスタ、第2のスタックレジスタ及び第3のスタックレジスタに格納された値を上記リンクブロックに渡し、
当該リンクブロックは、上記CPUから渡された値を使用して上記他の並列処理用プロセッサとの間の通信を実行する
請求項6に記載の並列処理用プロセッサ。
【請求項8】
上記CPUは、上記プログラミング言語の並列実行(PAR)命令の実行時に、
開始するPAR命令の先頭プロセスのプロセスIDを、上記複数のスタックレジスタのうち第1のスタックレジスタに格納し、当該先頭プロセス開始時に実行する命令アドレスとオフセットを上記複数のスタックレジスタのうち第2のスタックレジスタに格納し、 待ちプロセスが上記スケジューリングリストに登録されているときには、上記待機プロセス管理レジスタのうち上記スケジューリングリストの最後尾のプロセスIDが示すアドレスに上記第1のスタックレジスタのデータを格納し、待ちプロセスが上記スケジューリングリストに登録されていないときには、上記スケジューリングリストの最後尾のプロセスIDが示すアドレスに第1のスタックレジスタのデータを格納するとともに、上記命令ポインタレジスタの値と上記第2のスタックレジスタの値とを上記メモリの所定アドレスに格納する
請求項4から7のいずれか一項に記載の並列処理用プロセッサ。
【請求項9】
上記CPUは、上記プログラミング言語の複数待機プロセスの選択実行(ALT)命令の実行時に、
当該ALTプロセスの各ガードを構成する論理式の結果値が真値を有し、かつ、上記第2のスタックレジスタに当該ALTプロセス以外の他のプロセスのプロセスIDが格納されている場合に、当該ALTプロセスをレディ状態とするフラグを所定の第1のアドレスに格納すると共に、上記スケジューリングリストの先頭プロセスのプロセスIDを所定の第2のアドレスに格納して上記ALTプロセスと通信するプロセスを上記スケジューリングリストの先頭に移動する
請求項6に記載の並列処理用プロセッサ。
【請求項10】
上記CPUは、上記ALT命令の実行時に、
全てのガードに使用されているチャンネルに当該ALTプロセスのワークスペースポインタが格納されている場合、待機状態を示すフラグを当該ALTプロセスのワークスペースに格納して次の待機プロセスを起動する
請求項9に記載の並列処理用プロセッサ。」
(以下、この特許請求の範囲に記載された請求項を「補正前の請求項」という。)

を、

「 【請求項1】
それぞれ固有のプロセスIDを有する複数のプロセスを並列に実行する並列処理用プロセッサであって、
メモリと、
上記メモリから命令を取り出して当該命令を解読し、実行するCPU(Central Processing Unit)と、
上記CPU或いはメモリと、他の並列処理用プロセッサとのデータ送受信を行うリンクブロックと、
上記CPU及びリンクブロックによる上記メモリへのデータ入出力を制御するメモリコントローラと、
を有し、
上記CPUは、上記メモリ上にプロセス毎に割り当てたワークスペースを確保し、上記ワークスペースを使用して、待機するプロセスの実行順を示すスケジューリングリストを形成し、上記スケジューリングリストに従って複数のプロセスを順次実行し、
上記CPUは、上記複数のプロセスのうちのいずれかのプロセスの実行中に、他のプロセスとの通信が要求されると、当該通信が上記並列処理用プロセッサの内部のプロセス間の通信である内部通信か、或いは他の並列処理用プロセッサとの間の通信である外部通信か、を判定し、内部通信である場合には、実行中のプロセスである先行プロセスにおける通信命令の実行部分において、上記メモリコントローラを介して通信するデータが格納されたアドレスを当該先行プロセスのワークスペースに格納し、当該先行プロセスの実行を中断し、実行の中断された当該先行プロセスを上記スケジューリングリストの最後尾に配置し、当該先行プロセスに代えて上記要求された通信における通信先のプロセスである後発プロセスの実行を開始し、当該後発プロセスにおける通信命令の実行部分において、上記先行プロセスのワークスペースから上記通信するデータが格納されたアドレスを取得して当該アドレスから後発プロセスのワークスペースの所定のアドレスにデータの転送を行い、
上記メモリコントローラは、ワード単位でメモリアクセスが行われるプロセスの実行時と、バイト単位でメモリアクセスが行われる上記プロセス間の通信時と、のそれぞれの場合において、上記CPU或いは上記リンクブロックと上記メモリとの間のデータバスのデータ幅を変換し、上記メモリに対してバイトアクセス及びワードアクセスの両方でのアクセスを可能とする
並列処理用プロセッサ。
【請求項2】
上記並列処理用プロセッサは、CSP(Communicating Sequential Processes)理論に基づき動作する
請求項1に記載の並列処理用プロセッサ。
【請求項3】
上記CPUは、上記メモリコントローラを介して、上記通信するデータが格納されたアドレスを上記先行プロセスのワークスペースに格納すると共に、上記メモリ内の1ワードの任意領域であるチャンネルに上記先行プロセスのプロセスID或いは所定の初期値を格納する
請求項1または2に記載の並列処理用プロセッサ。
【請求項4】
上記CPUは、現在処理中のプロセスのプロセスIDを格納するワークスペースポインタレジスタと、待機中のプロセスのプロセスIDを格納する待機プロセス管理レジスタと、次に実行する命令の格納されているメモリアドレスを格納する命令ポインタレジスタと、スタック構造を有する複数のスタックレジスタと、を有する
請求項1から3のいずれか一項に記載の並列処理用プロセッサ。
【請求項5】
上記ワークスペースは、対応するプロセスのプロセスIDを示すアドレスから所定のワード数分確保された記憶領域であり、
上記スケジューリングリストは、先入先出構造を有し、現在実行中のプロセスのワークスペースの所定のアドレスに次に実行するプロセスIDを格納することによりリンクリスト構造に構成される
請求項1から4のいずれか一項に記載の並列処理用プロセッサ。
【請求項6】
上記CPUは、
上記通信が要求されると、上記複数のスタックレジスタのうち、第1のスタックレジスタに通信するデータの通信バイト数を、第2のスタックレジスタに上記チャンネルのアドレスであるチャンネルアドレスを、第3のスタックレジスタに通信するデータが格納されたアドレスをそれぞれ格納した後、内部通信であるか外部通信であるかの上記判定を行い、
当該判定の結果、内部通信であった場合には、上記先行プロセスにおける通信命令の実行部分に至ると、上記メモリコントローラを介して、上記第3のスタックレジスタに格納された、通信するデータが格納されたアドレスを当該先行プロセスのワークスペースに格納する
請求項4または5に記載の並列処理用プロセッサ。
【請求項7】
上記CPUは、上記判定の結果、外部通信であった場合には、上記リンクブロックに上記ワークスペースポインタレジスタ、上記第1のスタックレジスタ、第2のスタックレジスタ及び第3のスタックレジスタに格納された値を上記リンクブロックに渡し、
当該リンクブロックは、上記CPUから渡された値を使用して上記他の並列処理用プロセッサとの間の通信を実行する
請求項6に記載の並列処理用プロセッサ。」
(当審注:下線は、出願人が付与したものである。以下、この特許請求の範囲に記載された請求項を「補正後の請求項」という。)

に補正することを含むものである。


2.新規事項の有無、補正の目的要件

(1)新規事項の有無

本件補正は、願書に最初に添付した明細書、特許請求の範囲又は図面に記載した事項の範囲内においてなされており、特許法第17条の2第3項の規定に適合している。

(2)補正の目的要件

次に、本件補正が、特許法第17条の2第5項の規定を満たすものであるか否か、すなわち、本件補正が、特許法第17条の2第5項に規定する請求項の削除、特許請求の範囲の減縮(特許法第36条第5項の規定により請求項に記載した発明を特定するために必要な事項を限定するものであって、その補正前の当該請求項に記載された発明とその補正後の当該請求項に記載される発明の産業上の利用分野及び解決しようとする課題が同一であるものに限る)、誤記の訂正、或いは、明りょうでない記載の釈明(拒絶理由通知に係る拒絶の理由に示す事項についてするものに限る)の何れかを目的としたものであるかについて、以下に検討する。

(2-1)補正後の請求項1は、その記載からして、次の補正事項(a)及び(b)を含んでいる。

(a)「当該先行プロセスの実行を中断し、実行の中断された当該先行プロセスを上記スケジューリングリストの最後尾に配置し、当該先行プロセスに代えて上記要求された通信における通信先のプロセスである後発プロセスの実行を開始し」という態様

(b)「上記メモリコントローラは、ワード単位でメモリアクセスが行われるプロセスの実行時と、バイト単位でメモリアクセスが行われる上記プロセス間の通信時と、のそれぞれの場合において、上記CPU或いは上記リンクブロックと上記メモリとの間のデータバスのデータ幅を変換し、上記メモリに対してバイトアクセス及びワードアクセスの両方でのアクセスを可能とする」という態様

(2-2)補正前の請求項1が「スケジューリングリスト」を有する点に注目し、補正事項(a)について、特許請求の範囲の減縮を目的とするものであると仮定する。
補正前に請求項1を間接的に引用している発明であり、補正後に削除された請求項8には、「開始するPAR命令の先頭プロセスのプロセスIDを、上記複数のスタックレジスタのうち第1のスタックレジスタに格納し、当該先頭プロセス開始時に実行する命令アドレスとオフセットを上記複数のスタックレジスタのうち第2のスタックレジスタに格納し、待ちプロセスが上記スケジューリングリストに登録されているときには、上記待機プロセス管理レジスタのうち上記スケジューリングリストの最後尾のプロセスIDが示すアドレスに上記第1のスタックレジスタのデータを格納し、待ちプロセスが上記スケジューリングリストに登録されていないときには、上記スケジューリングリストの最後尾のプロセスIDが示すアドレスに第1のスタックレジスタのデータを格納するとともに、上記命令ポインタレジスタの値と上記第2のスタックレジスタの値とを上記メモリの所定アドレスに格納する」と記載されており、補正前の請求項1には、「当該先行プロセスを上記スケジューリングリストから外して、」との記載があったことから、補正事項(a)の「当該先行プロセスの実行を中断し、」については、請求項1に類似する記載があったものであり、補正事項(a)の「実行の中断された当該先行プロセスを上記スケジューリングリストの最後尾に配置し」については請求項8に類似する記載があったものと認められる。また、補正事項(a)の残りの記載は、「(先行プロセスを中断してデータを退避させた後の)後発プロセスを割り込ませる」処理を記載したものである。

(2-3)補正前の請求項1が「メモリコントローラ」を有する点に注目し、補正事項(b)について、特許請求の範囲の減縮を目的とするものであると仮定すると、補正前の請求項1に記載されており、補正後に削除されてしまった記載である「上記メモリコントローラは、上記CPU或いは上記リンクブロックと上記メモリとの間のデータバスのデータ幅を変換し、上記メモリに対してバイトアクセス及びワードアクセスの両方でアクセス可能とし、」という事項は、「ワード単位でメモリアクセスが行われるプロセスの実行時と、バイト単位でメモリアクセスが行われる上記プロセス間の通信時と、のそれぞれの場合において、」という記載がないだけで、残りの記載は、補正事項(b)と同じ記載である。
そして、「ワード単位でメモリアクセスが行われるプロセスの実行時と、バイト単位でメモリアクセスが行われる上記プロセス間の通信時と、のそれぞれの場合において、」との記載ついても、補正前後に共に記載されている「ワードアクセス」及び「バイトアクセス」という処理が実行される時点を限定するものである。

(2-4)ここで、これらの補正は、補正前の「スケジューリングリスト」及び「メモリコントローラ」に関する事項を限定する補正であり、産業上の利用分野及び解決しようとする課題を変更するものではない。

したがって、本件補正後の請求項1についてする補正は、請求項に記載した発明特定事項を限定するものであって、その補正前の当該補正項に記載された発明とその補正後の当該請求項に記載される発明の産業上の利用分野及び解決しようとする課題が同一であるもの(以下、「限定的減縮」という。)、すなわち、特許法第17条の2第5項第2号に掲げられる事項を目的とするものである。

(2-5)次に、補正後の請求項2は、その記載からして、次の補正事項(c)を含んでいる。

(c)「上記並列処理用プロセッサは、CSP(Communicating Sequential Processes)理論に基づき動作する」という態様

(2-6)当該補正は、平成25年7月1日付け補正の却下の決定の[理由2]において指摘されている特許法第36条第6項第2号違反に対応する補正であり、明りょうでない記載の釈明(拒絶理由通知に係る拒絶の理由に示す事項についてするものに限る)(以下、「不明瞭な記載の釈明」という。)、すなわち、特許法第17条の2第5項第4号に掲げられる事項を目的とするものである。


3.独立特許要件

以上のように、本件補正は限定的減縮又は不明瞭な記載の釈明を目的とする補正事項を含むので、次に、本件補正後の請求項1に記載された発明(以下、「本件補正発明」という。)が特許出願の際独立して特許を受けることができるものであるか(特許法第17条の2第6項において準用する同法第126条第7項の規定に適合するか)、以下に検討する。

(1)本件補正発明

本件補正発明は、前記平成25年10月9日付の手続補正(本件補正)により補正された特許請求の範囲の請求項1に記載されたとおりの次のものである。(再掲する。)

「それぞれ固有のプロセスIDを有する複数のプロセスを並列に実行する並列処理用プロセッサであって、
メモリと、
上記メモリから命令を取り出して当該命令を解読し、実行するCPU(Central Processing Unit)と、
上記CPU或いはメモリと、他の並列処理用プロセッサとのデータ送受信を行うリンクブロックと、
上記CPU及びリンクブロックによる上記メモリへのデータ入出力を制御するメモリコントローラと、
を有し、
上記CPUは、上記メモリ上にプロセス毎に割り当てたワークスペースを確保し、上記ワークスペースを使用して、待機するプロセスの実行順を示すスケジューリングリストを形成し、上記スケジューリングリストに従って複数のプロセスを順次実行し、
上記CPUは、上記複数のプロセスのうちのいずれかのプロセスの実行中に、他のプロセスとの通信が要求されると、当該通信が上記並列処理用プロセッサの内部のプロセス間の通信である内部通信か、或いは他の並列処理用プロセッサとの間の通信である外部通信か、を判定し、内部通信である場合には、実行中のプロセスである先行プロセスにおける通信命令の実行部分において、上記メモリコントローラを介して通信するデータが格納されたアドレスを当該先行プロセスのワークスペースに格納し、当該先行プロセスの実行を中断し、実行の中断された当該先行プロセスを上記スケジューリングリストの最後尾に配置し、当該先行プロセスに代えて上記要求された通信における通信先のプロセスである後発プロセスの実行を開始し、当該後発プロセスにおける通信命令の実行部分において、上記先行プロセスのワークスペースから上記通信するデータが格納されたアドレスを取得して当該アドレスから後発プロセスのワークスペースの所定のアドレスにデータの転送を行い、
上記メモリコントローラは、ワード単位でメモリアクセスが行われるプロセスの実行時と、バイト単位でメモリアクセスが行われる上記プロセス間の通信時と、のそれぞれの場合において、上記CPU或いは上記リンクブロックと上記メモリとの間のデータバスのデータ幅を変換し、上記メモリに対してバイトアクセス及びワードアクセスの両方でのアクセスを可能とする
並列処理用プロセッサ。」

(2)引用文献に記載されている技術的事項及び引用発明の認定

(2-1)引用文献1
本願の出願日前に頒布または電気通信回線を通じて公衆に利用可能となり、原審の拒絶の査定の理由である上記平成24年10月31日付けの拒絶理由通知において引用された文献である「Makoto TANAKA, Naoya FUKUCHI, Yutaka OOKI, Chikara FUKUNAGA,Design of a Transputer Core and its Implementation in an FPGA, Communicating Process Architectures 2004,IOS Press,2004年9月5日,pp.361-372,URL,http://wotug.org/cpa2004/papers/361-tanaka.pdf」(以下、「引用文献1」という。)には、関連する図面とともに、以下の技術的事項が記載されている。
(当審注:下線は、参考のために当審で付与したものである。)

A.「2 Fundamental Architecture of TPCORE
The overall block diagram of TPCORE is shown in Figure 1. TPCORE comprises a CPU, a Link block, Memory Controller and Memory. The memory consists of four 4Kbyte blocks.The Link block has four interfaces (link) to communicate (exchange data) with other TPCOREs.



Figure 1: TPCORE block diagram」(第362頁第9?14行)
当審仮訳:「2 TPCORE基本アーキテクチャ
TPCOREの全体ブロック図が、図1に示されている。TPCOREは、CPU、リンクブロック、メモリコントローラとメモリで構成される。メモリは、4つの4Kバイトブロックで構成される。リンクブロックは、他のTPCOREと通信(データ交換)するための4つのインタフェイス(リンク)を持っている。
図1:TPCOREのブロック図」

B.「2.1 Memory Controller
The memory controller accepts either the memory access requests from the CPU or from the link interfaces, and adjusts the requests according to the specification of the the memory (device) actually embedded in an FPGA. In this way we can simply modify the verilog code for the memory controller and keep the CPU and link block untouched even if we implement TPCORE in another FPGA which has a different memory device of the size or data transfer technology.
The memory controller manages one address and one data bus. Although the address space can be extended over about 4GB, which is expressed with 32 bits, presently we use only 15 bits for the address specification (32kB space). In the original transputer, there was a special address space, which we could access it with faster cycle than the other address space. TPCORE handles, however, all the address space uniformly.
We have not made a dedicated communication bus between the CPU and the link. The data exchange between them is performed using the common data bus managed by the memory controller. If the link block occupies the memory block for communication with external modules, execution in the CPU is blocked.」(第362頁第15行?第363頁第4行)
当審仮訳:「2.1メモリコントローラ
メモリコントローラは、CPUから又はリンクインタフェイスから、メモリアクセス要求を受け付け、実際にFPGA内の内蔵メモリ(デバイス)の仕様に沿って該要求を調整する。このように、我々は単にメモリコントローラ用のVerilogコードを修正して、大きさやデータ転送技術の異なるメモリデバイスを有している別のFPGA内にTPCOREを実装することがあったとしても、CPUとリンクブロックに手を加えず、そのままの状態にしておくことができる。
メモリコントローラは、1つのアドレスと1
つのデータバスを管理する。32ビットで表わされた約4GB以上に、アドレス空間を拡張することが可能であるが、現在、我々はアドレス指定(32KBの空間)のために15ビットだけを使用する。オリジナルのトランスピュータでは、他のアドレス空間よりも速くサイクルでアクセスすることができる特別なアドレス空間があった。しかしながら、TPCOREは、すべてのアドレス空間を一様に処理する。
我々はCPUとリンクとの間の専用通信バスを設けていない。それらの間のデータ交換は、メモリコントローラによって管理される共通データバスを用いて実行される。もし、リンクブロックが、外部モジュールと通信するためにメモリブロックを占有する場合には、CPU内の実行が阻止される。」

C.「2.2 CPU
The block diagram of the CPU is shown in Figure 2. The address and data buses shown in the figure are controlled by the memory block. In order to follow the instruction set of the transputer as much as possible, we implement six almost identical registers in TPCORE. These registers are the instruction pointer (Iptr), the operand (Oreg), the work space pointer (Wptr), and three stack registers (Areg, Breg and Creg). We have given these registers identical roles to the ones of transputer. The value stored in Wptr is recognized as Process ID for a process.The CPU block uses this value to make a local address for the process. The local address for the process is set using Oreg and the lower 4bit of Iptr in addition to Wptr. The least significant bit is used to distinguish the process priority.



Figure 2: CPU block diagram」(第363頁第5?15行)
当審仮訳:「2.2 CPU
CPUのブロック図が図2に示される。図中に示されたアドレス及びデータバスはメモリブロックによって制御される。できるだけトランスピュータの命令セットに従うために、我々はTPCORE内に殆ど同一のレジスタを6つ実装する。これらのレジスタは、命令ポインタ(Iptr)は、オペランド(Oreg)、ワークスペースポインタ(Wptr)、及び3つのスタックレジスタ(Areg、BregとCreg)である。私たちは、トランスピュータのレジスタと同一の役割をこれらのレジスタに与えている。Wptrに格納された値は、とあるプロセスのプロセスIDとして認識される。CPUブロックは、そのプロセスのローカルアドレスを作るために、この値を使用しています。そのプロセスのためのローカルアドレスは、Wptrに加えて、OregとIptrの下位4ビットを使用して設定されている。最下位ビットは、プロセスの優先度を区別するために使用される。
図2:CPUブロック図」

D.「2.3 State Transition Table in Micro-code ROM
All possible states described with items listed in Table 1 in all the components of TPCORE (the memory controller, the link block, and the CPU) are stored in the micro-code ROM. The micro-code ROM has the depth of 512 and the width of 64bit.
We have found two advantages to use the micro-code ROM for description of states and their transitions; one is that we can modify and adjust performance of an instruction by changing appropriate bits of the appropriate address of the micro-code ROM without modifying the verilog code of TPCORE, and the another one is that we can reduce the FPGA space since we pack all the state transitions into an internally embedded memory, and we do not need to install state transition machines into the FPGA wired-space.
Several examples of the contents of the micro-code ROM are given below.

Instruction Fetch State
In order to fetch the instruction to be executed next:
1. Iptr must be selected to Input for the address bus in which Iptr contains the address for the next instruction,
2. memory must be selected to the source for the data bus since the address to be executed next which is kept in Iptr must loaded on the address bus,
3. Ireg must be set to the output destination for the data bus, and
4. the next address of the micro-code ROM must be set to 0x001 to go to the instruction decode state.
The specification is given in this state and is described in the micro-code ROM at address 0x000..

Instruction Decode State
The contents of four higher bits of Ireg or Oreg 32bit are used to specify the next instruction to be done. The next address of the micro-code ROM is then determined conditionally according to the instruction decoded.

Instruction Execution State
If the instruction to be executed is finished in one state transition, then the next state will be back to the Instruction Fetch. Instead if the instruction needs other states to complete, then the next address for the micro-code ROM is an appropriate one for the next state.」(第364頁第2行?第365頁第4行)
当審仮訳:「2.3 マイクロコードROM内の状態遷移テーブル
TPCORE(メモリコントローラ、リンクブロック、およびCPU)のすべてのコンポーネント内で、表1に列挙された項目に記述されているすべての状態がマイクロコードROMに格納されている。マイクロコードROMは、512の深さと64ビットの幅を有している。
私たちは、状態とその遷移の記述のためにマイクロコードROMを使用することに関して2つの利点を発見した。 ひとつは、私たちがTPCOREのVerilogコードを修正することなくマイクロコードROMの適切なアドレスの適切なビットを変更することにより、命令のパフォーマンスを修正・調整することができることであり、もうひとつは、我々は内蔵されたメモリ内に全ての状態遷移をパックしており、FPGAワイヤード空間に状態遷移マシンをインストールする必要がないので、FPGAのスペースを減少させることができることである。
マイクロコードROMの内容のいくつかの例は以下の通りである。

命令フェッチ状態
命令をフェッチするために、以下を実行する:
1. Iptrが次の命令用のアドレスを含んでいるアドレスバス用のInputをIptrは選択する必要があり、
2. アドレスバス上にロードされなければならないIptrに保持されたアドレスは、次に実行されるので、メモリはデータバスのソースに選択されなければならず、
3. Iregは、データバスの出力先に設定されなければならず、
4. マイクロコードROMの次のアドレスは、命令デコード状態に遷移するために0x001に設定されなければならない。
仕様は、この状態(命令フェッチ状態)で与えられ、アドレス0x000でマイクロコードROMに記述されている。

命令デコード状態
Ireg又はOreg32ビットの上位4ビットの内容が実行されるべき次の命令を指定するために使用される。マイクロコードROMの次のアドレスは、条件付きで、デコードされた命令に応じて決定される。

命令実行状態
実行された命令がひとつの状態遷移で終了するならば、次の状態は命令フェッチに戻るであろう。その代わりに、もし命令が完了するために他の状態を必要とするならば、その後マイクロコードROMの次のアドレスは、次の状態に遷移するために適切なアドレスとなる。」

E.「3 Hardware for Parallel Processing
3.1 Process Control
The mechanism of the process control in TPCORE follows basically the one used for transputer as faithfully as possible. The value in Wptr is regarded as the process ID. The first address to be executed in the process is stored in Wptr-4, and the ID of the next process to be executed is stored in Wptr-8. Thus the process itself has the information for the next process. This chain structure for the process queue is prepared separately for the high and low priorities, and the structures are retained in the registers of fptr0, fptr1, bptr0 and bptr1. Since a change of one of these registers in the process scheduling is regarded as the state transition, the process control is also managed by the micro-code ROM.」(第365頁第5?14行)
当審仮訳:「3 並列処理のためのハードウェア
3.1 プロセス制御
TPCOREにおけるプロセス制御のメカニズムは、基本的には可能な限り忠実にトランスピュータに使用されるものに従う。Wptrの値は、プロセスIDとみなされる。そのプロセスで実行される最初のアドレスがWptr-4に格納されると、次のプロセスのIDは実行されるために、Wptr-8に格納される。したがって、プロセス自体は、次の処理のための情報を有している。プロセスキューのためのこのチェーン構造は、高および低優先順位で区別されて用意されており、その構造がfptr0、fptr1、bptr0とbptr1のレジスタに保持されている。プロセススケジューリングにおけるレジスタのいずれかの変更は、状態遷移と見なされるので、プロセス制御は、マイクロコードROMによっても管理されている。」

F.「3.2 Interrupt Process
The mechanism for the interrupt handling is also derived from the one used in transputer. The save or reload of the relevant registers at the beginning and end of an interrupt is described in state changes. The handling of the interrupt is described with the micro-code ROM. Once an interrupt is occurred, the address for the next micro-code ROM is changed to point the addresses to initiate or terminate the interrupt handling (18 and 22 states for the interrupt and return from interrupt respectively). Afterwards normal state transition cycle is resumed.」(第365頁第15?21行)
当審仮訳:「3.2 割込処理
割込処理のためのメカニズムもトランスピュータで使用されるものに由来する。割込の先頭と最後において、関連するレジスタのセーブやリロードは、状態の変更に記載される。割込処理は、マイクロコードROMに記載されている。割込が発生したら、次のマイクロコードROMのアドレスは、割込処理の開始または終了(割込及び割込からの復帰のそれぞれのための18と22の状態)するためのアドレスを指し示すように変更される。その後、通常の状態遷移サイクルが再開される。」

G.「3.3 Link Communication
The communication between two processes in TPCORE is done through channels as is done in the transputer. The communication is one to one and synchronous. The channel facilitates no buffer for data to be transferred. A 32bit word in the memory is used for a channel between two processes running in the same TPCORE while one of a total of four link interfaces (also implemented in a special address space in memory) is used for a channel to communicate with a process running in a different TPCORE. The assembly instructions for communication like in and out distinguish internal and external communication from the address used for the channel. The stack register Creg is used for a pointer to specify the address of the data, Breg is the channel address, and Areg is used to specify the number of bytes to be transferred.
If, for example, out is executed with Breg=0x80000000, the link interface0 will be used to output the message externally, and the CPU asks to the link block to do the external communication by giving contents of the stack registers and the current process ID. Suspending the execution of the process currently executed, the CPU starts the next process taken from the scheduling queue. Once the link communication is over, then the CPU restores the stack registers and the process ID, and resumes the suspended process. The link protocol for the external communication is the same one as defined as Inmos protocol. The TPCORE has a link interface to accept the data over RS232C line. The protocol for data transfer over RS232C is the same one as the Inmos link protocol.」(第365頁第22?40行)
当審仮訳:「3.3 リンク通信
トランスピュータで行われるように、TPCORE内での2プロセス間の通信はチャネルを介して行われる。通信は一対一で同期通信である。転送されるデータのためのバッファを必要としない。同じTPCORE上で動作している2つのプロセスの間のとあるチャネルのために、メモリ内の32ビットワードが使用される。一方、異なるTPCORE上で動作しているプロセスと通信するチャネルのために、(同じくメモリにある特別なアドレス空間に実装された)合計4つのリンクインタフェイスの1つが使用される。inとoutのような通信のためのアセンブリ命令は、チャネルのために使用されるアドレスから内部のおよび外部の通信を区別する。スタックレジスタCregはデータのアドレスを特定するために使われ、Bregはチャネルアドレスであり、Aregは、転送されるバイト数を特定するために使用される。
例えば、もし、outをBreg=0x80000000で実行した場合、リンクインタフェイス0は外部にメッセージを出力するために使用されるであろう。スタックレジスタの内容と現在のプロセスIDを与えられることによって、CPUは、外部との通信を行うことをリンクブロックに要求する。現在実行命令を受けたばかりのプロセスの実行を一時停止し、CPUは、スケジューリングキューから取得した次のプロセスを開始する。一旦、リンク通信が終了すると、CPUはスタックレジスタとプロセスIDを復元し、中断したプロセスを再開する。外部通信用リンクプロトコルは、Inmosプロトコルとして定義されているものと同じである。TPCOREはRS232C回線を介してデータを受け入れるためのリンクインタフェイスを備えている。RS232Cを介したデータ転送のためのプロトコルは、Inmosリンクプロトコルと同じものである。」

ア 引用文献1の記載事項

ここで、上記引用文献1に記載されている事項を検討する。

(ア)上記Eには、「並列処理のためのハードウェア」の「プロセス制御」について記載されており、Wptr(ワークプレイスポインタ)に「プロセスID」を格納して、プロセスの実行を制御する旨が記載されていることから、引用文献1には、「プロセスIDを有するプロセスの実行を制御するものであり、複数のプロセスを並列に処理するハードウェアであるTPCORE」について記載されているといえる。

(イ)上記Aには、「TPCORE」が「メモリ」、「CPU」、「リンクブロック」及び「メモリコントローラ」を有しており、「リンクブロック」は4つのインタフェイス(リンク)を有し、「他のTPCOREと通信する」ことが記載されている。
また、上記Bには、「メモリコントローラは、CPUから又はリンクインタフェイスから、メモリアクセス要求を受け付け」と記載されている。
さらに、上記Dには、TPCOREのコンポーネントの状態遷移について記載されており、CPU内のマイクロコードROMの記述に沿って、「命令フェッチ状態」、「命令デコード状態」及び「命令実行状態」を遷移することが記載されており、「命令フェッチ状態」には、メモリをソースとして選択することが記載されている。
これらの記載から、「TPCOREは、メモリ、CPU、リンクブロック、メモリコントローラで構成され、
CPUは、メモリをソースとして命令をフェッチする状態、命令をデコードする状態、さらに命令を実行する状態といったそれぞれの状態を、状態遷移により実行するマイクロコードROMを備えており、
リンクブロックは、4つのリンクインタフェイスを有して、他のTPCOREと通信をするものであり、
メモリコントローラは、CPU及びリンクインタフェイスとのメモリアクセス要求を受け付ける」ことが読み取れる。

(ウ)上記Cの「CPU」に関する記載から、「CPU内に、6つのレジスタ(命令ポインタIptr、オペランドOreg、ワークスペースポインタWptr、及び3つのスタックレジスタAreg・Breg・Creg)を備えており、ワークスペースポインタはプロセスIDとして認識される値を格納しており、CPUはその値を使用して、ローカルアドレスを生成している」ことが読み取れる。
上記Eの「Wptrの値は、プロセスIDとみなされる。そのプロセスで実行される最初のアドレスがWptr-4に格納されると、次のプロセスのIDは実行されるために、Wptr-8に格納される。したがって、プロセス自体は、次の処理のための情報を有している。プロセスキューのためのこのチェーン構造は、高および低優先順位で区別されてて用意されており、その構造がfptr0、fptr1、bptr0とbptr1のレジスタに保持されている。プロセススケジューリングにおけるレジスタのいずれかの変更は、状態遷移と見なされるので、プロセス制御は、マイクロコードROMによっても管理されている。」という記載から、「プロセスで実行される最初のアドレスがワークスペースポインタWptr-4に格納され、次が同Wptr-8に格納されることで、プロセスキューを構成し、プロセススケジューリングの管理を行う」ことが読み取れる。

(エ)上記Fには、「割込処理」に関する記載があり、「割込が発生したら、次のマイクロコードROMのアドレスは、割込処理の開始または終了するためのアドレスを指し示すように変更される。その後、通常の状態遷移サイクルが再開される。」と記載されている。

(オ)上記Gには、「リンク通信」に関する記載があり、「同じTPCORE上で動作している2つのプロセスの間のとあるチャネルのために、メモリ内の32ビットワードが使用される。一方、異なるTPCORE上で動作しているプロセスと通信するチャネルのために、(同じくメモリにある特別なアドレス空間に実装された)合計4つのリンク・インタフェイスの1つが使用される。inとoutのような通信のためのアセンブリ命令は、チャネルのために使用されるアドレスから内部のおよび外部の通信を区別する。」及び「例えば、もしoutをBreg=0x80000000で実行した場合、リンクインタフェイス0は外部にメッセージを出力するために使用されであろう。スタックレジスタの内容と現在のプロセスIDを与えられることによって、CPUは、外部との通信を行うことをリンクブロックに要求する。実行命令を受けたばかりのプロセスの実行を一時停止し、CPUは、スケジューリングキューから取得した次のプロセスを開始する。一旦、リンク通信が終了すると、CPUはスタックレジスタとプロセスIDを復元し、中断したプロセスを再開する。」と記載されている。
これらの記載から、「内部との通信と外部との通信は区別されており、同一のTPCORE上で動作しているプロセス間の通信(つまり内部通信)では、メモリ内での32ビットワード幅が使用され、異なるTPCORE上で動作しているプロセスとの通信(つまり外部通信)の場合は、4つのリンクインタフェイスのうちの一つを使用する」ことが記載されていると認められ、中断処理の動作の例示として、「例えば、外部との通信が必要なプロセスの場合は、外部との通信をリンクブロックに要求し、プロセスの実行を一時停止させ、CPUはスケジューリングキューから取得した次のプロセスを実行し、リンクインタフェイスを介した外部との通信が終了すると、CPUはスタックレジスタとプロセスIDを復元して、中断したプロセスを再開させる」ことが読み取れる。

(カ)上記Bには、「メモリコントローラ」に関する記載があり、「メモリコントローラは、CPU又はリンクインタフェースからメモリアクセス要求を受け付け、内蔵メモリの仕様に合わせて要求を調整する」と記載されている。
また、引用文献1の図1には、「メモリコントローラは、CPUもしくはリンクブロックとは、32ビット幅で通信を行い、メモリの各ブロックもしくはリンクブロックの各インタフェイス(リンク)とは、8ビット幅で通信を行う」ことが記載されていると認められる。
したがって、これらの記載から、「メモリコントローラは、CPU又はリンクインタフェイスからメモリへのメモリアクセス要求を受け付け、内蔵メモリの仕様に合わせて要求を調整するものであり、CPUもしくはリンクブロックとは、32ビット幅で通信を行い、メモリの各ブロックもしくはリンクブロックの各インタフェイス(リンク)とは、8ビット幅で通信を行う」ことが読み取れる。

引用発明の認定

以上、(ア)?(カ)で検討した事項を踏まえると、引用文献1には、次の発明(以下、「引用発明」という。)が記載されているものと認められる。

「プロセスIDを有するプロセスの実行を制御するものであり、複数のプロセスを並列に処理するハードウェアであるTPCOREであって、
前記TPCOREは、メモリ、CPU、リンクブロック、メモリコントローラで構成され、
前記CPUは、前記メモリをソースとして命令をフェッチする状態、命令をデコードする状態、さらに命令を実行する状態といったそれぞれの状態を、状態遷移により実行するマイクロコードROMを備えており、
前記リンクブロックは、4つのリンクインタフェイスを有して、他のTPCOREと通信をするものであり、
前記メモリコントローラは、前記CPU及び前記リンクインタフェイスとのメモリアクセス要求を受け付けるものであり、
前記CPU内には、6つのレジスタ(命令ポインタIptr、オペランドOreg、ワークスペースポインタWptr、及び3つのスタックレジスタAreg・Breg・Creg)を備えており、前記ワークスペースポインタはプロセスIDとして認識される値を格納しており、前記CPUはその値を使用して、ローカルアドレスを生成しており、前記プロセスで実行される最初のアドレスがワークスペースポインタWptr-4に格納され、次が同Wptr-8に格納されることで、プロセスキューを構成し、プロセススケジューリングの管理を行い、
割込処理において、割込が発生したら、次のマイクロコードROMのアドレスは、該割込処理の開始または終了するためのアドレスを指し示すように変更された後、通常の状態遷移サイクルが再開されるものであり、
該TPCOREにおいて、内部との通信と外部との通信は区別されており、同一のTPCORE上で動作しているプロセス間の通信(つまり内部通信)では、前記メモリ内での32ビットワード幅が使用され、異なるTPCORE上で動作しているプロセスとの通信(つまり外部通信)の場合は、4つのリンクインタフェイスのうちの一つを使用するようになっており、外部との通信が必要なプロセスの場合は、外部との通信を前記リンクブロックに要求し、プロセスの実行を一時停止させ、前記CPUはスケジューリングキューから取得した次のプロセスを実行し、リンクインタフェイスを介した外部との通信が終了すると、前記CPUはスタックレジスタとプロセスIDを復元して、中断したプロセスを再開させるようになっており、
前記メモリコントローラは、前記CPU又は前記リンクインタフェイスから、前記メモリへのメモリアクセス要求を受け付け、内蔵メモリの仕様に合わせて要求を調整するものであり、該メモリコントローラは、前記CPUもしくは前記リンクブロックとは32ビット幅で通信を行い、前記メモリの各ブロックもしくはリンクブロックの各インタフェイス(リンク)とは8ビット幅で通信を行うようになっている
ことを特徴とするTPCORE」

(2-2)引用文献2

本願の出願日前に頒布または電気通信回線を通じて公衆に利用可能となり、原審の拒絶の査定の理由である上記平成24年10月31日付けの拒絶理由通知において引用された文献である、特開昭59-133650号公報(昭和59年8月1日公開。以下、「引用文献2」という。)には、関連する図面とともに、以下の技術的事項が記載されている。
(当審注:参考のために、当審において追加で下線を付与している。)

H.「3.発明の詳細な説明
本発明は、マイクロコンピュータを含むコンピュータに関するものである。
マイクロコンピュータは一般にプロセスとメモリを備え、内蔵されているプログラムから得られる一連の命令に従って動作できる。命令には1組の選択可能な機能から選択されたいわゆる『機能』が含まれ、その命令に応答してプロセッサにより実行される動作を定める。プロセッサは種々のプロセスの間でメッセージを通信したいことがある。同じマイクロコンピュータのプロセスの間および種々のマイクロコンピュータの間で迅速かつ満足できる通信を行うのにこれまでは困難が生じていた。更に、プロセッサがそれの時間を複数の並行プロセスの間に分割使用できるようにプロセスのスケジューリングと脱スケジューリングにおいて困難が生ずる。
本発明の目的は、種々のプロセスの間でのメッセージ同期化とともに効果的なプロセス・スケジューリングが行なわれるような改良したマイクロコンピュータを得ることである。
本発明の別の目的は、同じマイクロコンピュータにより実行される並行プロセスの間でそのようなメモリ同期化を行える改良したマイクロコンピュータを得ることである。」(第4頁下右欄第7行?第5頁上左欄第20行)

I.「この明細書で説明するマイクロコンピユータはTransputer(インモス・インターナシヨナル(Inmos International )plc の商標)の例であって、このTransputerはプロセツサとメモリ、および外部との通信を行うためのリンクを含む1つのシリコンチツプを備えている。このマイクロコンピユータは複数の処理を並行して実行できるとともに、スケジユーリングと、同じチツプ上のプロセスの間または異なるチツプ上のプロセスの間の通信を行うことができる。各マイクロコンピユータはプロセツサが設けられているチツプと同じチツプ上に、プログラム可能なRAMの形のKバイト・メモリを少なくとも1つ有し、プロセツサはチツプのメモリ中のプログラムに従うことができる。このマイクロコンピユータは複数の通信リンク、ここでは直列リンクと呼ぶ、を有する。この直列リンクにより、相互に接続されているマイクロコンピユータのネツトワークにマイクロコンピユータを接続して、任意の1台のマイクロコンピユータをネツトワークのためのビルデイング・ブロツクとして使用できるようにすることができる。任意の2台のマイクロコンピユータの間の通信は1本または2本の特定のピンの間の接続を行う直列リンクにより行われる。各接続によりただ2台のマイクロコンピユータが相互に接続される。各リンクは他のマイクロコンピユータまたはどの外部メモリとも共用されない。このマイクロコンピユータには、ネツトワーク内のマイクロコンピユータの間のデータ伝送において同期をとるための手段が設けられ、2台のマイクロコンピユータの間のリンクを介する通信を受信マイクロコンピユータまたは送信マイクロコンピユータにより開始できるようにする。」(第6頁下右欄第1行?第7頁上左欄第13行)

J.「 同じマイクロコンピユータにおけるプロセス間の通信
先に説明したように、このマイクロコンピユータは同じマイクロコンピユータにおけるプロセス間、または異なるマイクロコンピユータにおけるプロセス間の通信を可能にする。たとえば、1つのプロセスは自動車の走行距離の測定、第2のプロセスはその自動車の走行距離に対する燃料消費量の測定ということがある。第1のプロセスは入力として自動車の車輪の回転を表すデータを受け、走行距離を表す出力を発生する。第2のプロセスは燃料消費量に関連するデータを入力として受けるが、走行距離に対する燃料消費量についての有用な出力を発生できるようになるためには、走行距離についての情報を得るために第1のプロセスと交信することも必要である。同じマイクロコンピユータにおける通信を処理するプロセスの場合には、ここで説明している例では第2図に示されているチヤネル40?43を通じて通信が行われる。このオペレーシヨンには同期オペレーシヨンの使用が含まれる。その同期オペレーシヨンには、機能とオペレーシヨンの前記した表から機能コード13とオペレーシヨン・コード11により成るプログラム命令を要する。各チヤネル40?43はメモリ内の2つの連続する語場所より成る。1つの語場所は『プロセス場所』を与え、第2の語場所は『データ場所』を与える。チヤネルは一方向通信チヤネルであつて、ある1つの時刻には2つの、そしてただ2つのプロセスにより共用される。あるアクテイブ・プロセスxが同じマイクロコンピユータ上のプロセスyと通信することを望んだとすると、第9図a?eを参照して後で説明するシーケンスが行われる。第1に、プロセスxはチヤネル(40)のアドレスを識別し、通信しようと思うデータをそのチヤネルのデータにロードする。また、プロセスxは同期オペレーシヨンのための命令の実行も行う。プロセス場所がデータを受けることを待っているプロセスyの作業域ポインタを有していないとすると、同期オペレーシヨンはプロセスxのWPTRをプロセス場所に記録させ、プロセスxをスケジユールから外すために“wait”手続を使用する。これは第9図bに示されている位置である。今は、プロセスxはプロセスyがデータを受ける準備が整うまで待つ。プロセスyがデータを受けることを希望すると、プロセスyは同期オペレーシヨンのための命令を実行して、通信チヤネル40がデータを送る準備が整つているかどうかを調べる。この命令の実行に際して、プロセスyはプロセスxの作業域ポインタをチヤネル40のプロセス場所に置き、オペレーシヨンのリストにおいて述べた同期オペレーシヨンからわかるように、同期オペレーシヨンの実行により“run”手続がプロセスxの作業域ポインタをチヤネル40から除去させ、実行を待つているプロセスのリストの終りにプロセスxを付け加える。これは第9図cにおける位置である。」(第28頁上左欄第12行?下右欄第7行)

(2-3)引用文献3

原審の拒絶の査定の理由である上記平成24年10月31日付けの拒絶理由通知において引用され、本願の出願日前に頒布または電気通信回線を通じて公衆に利用可能となった文献である、特開2006-146390号公報(平成18年6月8日公開。以下、「引用文献3」という。)には、関連する図面とともに、以下の技術的事項が記載されている。
(当審注:下線は、参考のために当審で付与したものである。)

K.「【0032】
本実施例では、一例としてSDRAM41が64bitでありROM5が32bitでものとする。このビット数の異なるSDRAM41とROM5を一つのメモリコントローラ2で制御するためにメモリバス変換装置40は、ビット幅変換部を備える。他の部分は、実施例1と同様なので説明を省略しメモリバス変換装置40のみについて説明する。」

(2-4)引用文献4

本願の出願日前に頒布または電気通信回線を通じて公衆に利用可能となった文献である、特開2003-204556号公報(平成15年7月18日公開。以下、「引用文献4」という。)には、関連する図面とともに、以下の技術的事項が記載されている。
(当審注:下線は、参考のために当審で付与したものである。)

L.「【0018】外部メモリコントローラ213 は、外部に装着されるフレームメモリを制御するためのものであり、コプロセッサバス202 またはメインバス211 からのデータの場合には全て32ビットの大きさを有しているが、外部メモリのインターフェースは8ビットから32ビットまで可変である。外部メモリコントローラ213 内部では外部フレームメモリ制御だけではなく、ROM 形態のメモリの制御を実行するため、フレームメモリだけでなく初期システムの起動時にプログラムダウンロードのためにROM 形態のメモリを使用することができる。
【0019】外部メモリコントローラ213 の外部インターフェースの形式とビットの数とに応じて、ここではデータの同期を合わせるためのフォーマット変換(バイト単位のデータをまとめてワード単位のデータを生成する過程)を実行し、各マスタープロセッサ(RISC プロセッサ207 、DSCU DMA204 、ポストDMA209、周辺装置DMA210中の一つ) のデータ伝送の大きさに応じて、バーストモードアクセス(burstmode access )を支援する。」


(3)対比

本件補正発明と引用発明とを対比する。

(3-1)引用発明の「メモリ」、「CPU」、「リンクブロック」及び「メモリコントローラ」は、それぞれ、本件補正発明の「メモリ」、「CPU」、「リンクブロック」及び「メモリコントローラ」に相当する。また、引用発明の「TPCORE」は、メモリ、CPU、リンクブロック、メモリコントローラを備えており、「複数のプロセスを並列に処理するハードウェア」であるため、本件補正発明の「並列処理用プロセッサ」に相当する。

(3-2)引用発明の「前記CPUは、前記メモリをソースとして命令をフェッチする状態、命令をデコードする状態、さらに命令を実行する状態といったそれぞれの状態を、状態遷移により実行するマイクロコードROMを備えており」という記載は、本件補正発明の「上記メモリから命令を取り出して当該命令を解読し、実行するCPU(Central Processing Unit)」と同義のものと解される。
引用発明の「前記リンクブロックは、4つのリンクインタフェイスを有して、他のTPCOREと通信をするものであり」及び「前記メモリコントローラは、前記CPU又は前記リンクインタフェイスから、前記メモリへのメモリアクセス要求を受け付け」との記載はそれぞれ、本件補正発明の「上記CPU或いはメモリと、他の並列処理用プロセッサとのデータ送受信を行うリンクブロック」及び「上記CPU及びリンクブロックによる上記メモリへのデータ入出力を制御するメモリコントローラ」に対応する。

(3-3)引用発明の「前記CPU内には、6つのレジスタ(命令ポインタIptr、オペランドOreg、ワークスペースポインタWptr、及び3つのスタックレジスタAreg・Breg・Creg)を備えており、前記ワークスペースポインタはプロセスIDとして認識される値を格納しており、前記CPUはその値を使用して、ローカルアドレスを生成しており、前記プロセスで実行される最初のアドレスがワークスペースポインタWptr-4に格納され、次が同Wptr-8に格納されることで、プロセスキューを構成し、プロセススケジューリングの管理を行い」との記載は、本件補正発明の「上記CPUは、上記メモリ上にプロセス毎に割り当てたワークスペースを確保し、上記ワークスペースを使用して、待機するプロセスの実行順を示すスケジューリングリストを形成し、上記スケジューリングリストに従って複数のプロセスを順次実行し」に相当する。

(3-4)引用発明の「割込処理」は、本件補正発明の「上記複数のプロセスのうちのいずれかのプロセスの実行中に、他のプロセスとの通信が要求される」に相当する。
また、引用発明の「内部との通信と外部との通信は区別されており、同一のTPCORE上で動作しているプロセス間の通信(つまり内部通信)では、・・・(中略)・・・、異なるTPCORE上で動作しているプロセスとの通信(つまり外部通信)の場合は、・・・(中略)・・・」と、本件補正発明の「当該通信が上記並列処理用プロセッサの内部のプロセス間の通信である内部通信か、或いは他の並列処理用プロセッサとの間の通信である外部通信か、を判定し」とは、「内部通信か外部通信かを判定した上で、外部通信の場合と内部通信の場合とを区別して制御している」点で共通している。

(3-5)したがって、一致点及び相違点を整理すると、以下の通りとなる。

(一致点)
「それぞれ固有のプロセスIDを有する複数のプロセスを並列に実行する並列処理用プロセッサであって、
メモリと、
上記メモリから命令を取り出して当該命令を解読し、実行するCPU(Central Processing Unit)と、
上記CPU或いはメモリと、他の並列処理用プロセッサとのデータ送受信を行うリンクブロックと、
上記CPU及びリンクブロックによる上記メモリへのデータ入出力を制御するメモリコントローラと、
を有し、
上記CPUは、上記メモリ上にプロセス毎に割り当てたワークスペースを確保し、上記ワークスペースを使用して、待機するプロセスの実行順を示すスケジューリングリストを形成し、上記スケジューリングリストに従って複数のプロセスを順次実行し、
上記複数のプロセスのうちのいずれかのプロセスの実行中に、他のプロセスとの通信が要求されると、当該通信が上記並列処理用プロセッサの内部のプロセス間の通信である内部通信か、或いは他の並列処理用プロセッサとの間の通信である外部通信か、を判定する、
並列処理用プロセッサ。」

(相違点1)
本件補正発明では、「当該通信が上記並列処理用プロセッサの内部のプロセス間の通信である内部通信か、或いは他の並列処理用プロセッサとの間の通信である外部通信か、を判定し、」の主体が「CPU」であるのに対して、引用発明はそのような限定がなされたものではない点。

(相違点2)
本件補正発明では、「内部通信である場合には、実行中のプロセスである先行プロセスにおける通信命令の実行部分において、上記メモリコントローラを介して通信するデータが格納されたアドレスを当該先行プロセスのワークスペースに格納し、当該先行プロセスの実行を中断し、実行の中断された当該先行プロセスを上記スケジューリングリストの最後尾に配置し、当該先行プロセスに代えて上記要求された通信における通信先のプロセスである後発プロセスの実行を開始し、当該後発プロセスにおける通信命令の実行部分において、上記先行プロセスのワークスペースから上記通信するデータが格納されたアドレスを取得して当該アドレスから後発プロセスのワークスペースの所定のアドレスにデータの転送を行い、」の処理について言及されているが、引用発明では、「割込プロセスが、外部との通信が必要なプロセスであった場合」について例示されているものの、内部との通信の場合については言及されていない点。

(相違点3)
本件補正発明では、「メモリコントローラは、ワード単位でメモリアクセスが行われるプロセスの実行時と、バイト単位でメモリアクセスが行われる上記プロセス間の通信時と、のそれぞれの場合において、上記CPU或いは上記リンクブロックと上記メモリとの間のデータバスのデータ幅を変換し、上記メモリに対してバイトアクセス及びワードアクセスの両方でのアクセスを可能とする」のに対して、引用発明はそのような限定がなされたものではない点。

(4)当審の判断

上記相違点について検討する。

(4-1)相違点1について
本件補正発明では、「CPUは、上記複数のプロセスのうちのいずれかのプロセスの実行中に、他のプロセスとの通信が要求されると、当該通信が上記並列処理用プロセッサの内部のプロセス間の通信である内部通信か、或いは他の並列処理用プロセッサとの間の通信である外部通信か、を判定」するところ、本願の明細書の【0067】には、「TPCORE50では、“in”や“out”のような通信用アセンブリ命令が実効されたとき、まず通信は同じTPCORE50内のプロセスと通信するか他のTPCORE50と通信するかを調べる。」と記載されていることから、「CPU」ではなく、「TPCORE」の処理として記載されているものであり、本願の明細書のその他の記載においても、プロセスの実行中に内部通信であるか外部通信であるかを判定する主体がCPUであることは明記されていないものである。
一方、上記事項が本願の明細書に記載されている事項であったとしても、引用発明では、TPCOREにおいて、内部との通信と外部との通信は区別されており、CPUが、TPCOREの構成要素の一部で、TPCORE内処理を制御しているものであることから、内部通信か外部通信かの判定を、本件補正発明のように、TPCORE内のCPUで判定するようにすることは、当業者であれば適宜実施し得たことに過ぎない。

(4-2)相違点2について
引用文献2には、引用文献1と同様にTransputerを例にしたマイクロコンピュータ(上記Iの記載)について記載されており、「同じマイクロコンピュータにより実行される並行プロセスの間でメモリ同期化を行える(上記Hの記載)」ようにするために、アクティブ・プロセスxとプロセスyとのスケジューリングにおいて、プロセスxをスケジュールから外し、プロセスyの命令を実行すると共に、プロセスxを実行を待っているプロセスのリストの終わりに付け加える(上記Jの記載)」旨が記載されている。
ここで、引用文献2において、「同じマイクロコンピュータにより実行されるプロセスの間」ということは、本件補正発明の「内部通信」に相当し、その場合に、「プロセスyの命令を実行する」とともに、割り込まれたプロセスであるプロセスxを「プロセスのリストの終わりに付け加える」ことから、相違点2の「当該先行プロセスの実行を中断し、実行の中断された当該先行プロセスを上記スケジューリングリストの最後尾に配置し、実行の中断された当該先行プロセスを上記スケジューリングリストの最後尾に配置し、当該先行プロセスに代えて上記要求された通信における通信先のプロセスである後発プロセスの実行を開始し、当該後発プロセスにおける通信命令の実行部分において、上記先行プロセスのワークスペースから上記通信するデータが格納されたアドレスを取得して当該アドレスから後発プロセスのワークスペースの所定のアドレスにデータの転送を行い」という処理は引用文献2に開示されている。

ここで、引用発明及び引用文献2はどちらも、Transputerの仕組みを応用したマイクロコンピュータの発明であることから、引用発明の割込処理に対して、引用文献2のスケジューリング方法を採用するようなことは、当業者であれば容易に想到し得たことである。

(4-3)相違点3について
引用文献1では、上記Bにおいて、「メモリコントローラがCPUから又はリンクインタフェースからメモリアクセス要求を受け付る際に、内蔵メモリ(デバイス)の仕様に沿って要求を調整する」旨が記載されているものの、引用発明はデータ幅の変換を行うことについては言及されていない。
ここで、引用文献3の上記Kあるいは引用文献4の上記Lに記載されているように、ビット幅の異なる構成を接続するメモリコントローラにおいて、ビット幅の変換を行うようなことは、周知慣用手段である。

したがって、引用発明のメモリコントローラにおいて、このような周知慣用手段を採用して、データ幅の変換を行って、メモリアクセス要求を調整するようなことは、当業者が必要に応じて採用する常套手段に過ぎない。

(4-4)小結

上記で検討したごとく、相違点1?相違点3は、引用文献1、引用文献2及び周知技術文献の記載から、容易に想到し得たことであり、そして、本件補正発明の奏する作用効果は、上記引用発明及び当該技術分野の周知技術の奏する作用効果から予測される範囲内のものにすぎず、格別顕著なものということはできない。
したがって、本件補正発明は、上記引用発明及び引用文献2?4の記載に基づいて、当業者が容易に発明をすることができたものであり、特許法第29条第2項の規定により、特許出願の際独立して特許を受けることができない。


4.結び

以上の理由より、本件補正後の請求項1に係る発明は、特許出願の際独立して特許を受けることができるものではないから、特許法第17条の2第6項の規定により準用する同法第126条第7項の規定に違反するので、同法第159条第1項において読み替えて準用する同法第53条第1項の規定により却下すべきものである。

よって、補正の却下の決定の結論のとおり決定する。


第3 本件審判請求の成否について

1.本願発明の認定

平成25年10月9日付けの手続補正は上記のとおり却下されたので、本願の請求項1に係る発明(以下、「本願発明」という。)は、平成24年4月2日付けの手続補正書の特許請求の範囲の請求項1に記載された事項により特定される、以下のとおりのものである。

「それぞれ固有のプロセスIDを有する複数のプロセスを並列に実行する並列処理用プロセッサであって、
メモリと、
上記メモリから命令を取り出して当該命令を解読し、実行するCPU(Central Processing Unit)と、
上記CPU或いはメモリと、他の並列処理用プロセッサとのデータ送受信を行うリンクブロックと、
上記CPU及びリンクブロックによる上記メモリへのデータ入出力を制御するメモリコントローラと、
を有し、
上記メモリコントローラは、上記CPU或いは上記リンクブロックと上記メモリとの間のデータバスのデータ幅を変換し、上記メモリに対してバイトアクセス及びワードアクセスの両方でアクセス可能とし、
上記CPUは、上記メモリ上にプロセス毎に割り当てたワークスペースを確保し、上記ワークスペースを使用して、待機するプロセスの実行順を示すスケジューリングリストを形成し、上記スケジューリングリストに従って複数のプロセスを順次実行し、
上記CPUは、上記複数のプロセスのうちのいずれかのプロセスの実行中に、他のプロセスとの通信が要求されると、当該通信が上記並列処理用プロセッサの内部のプロセス間の通信である内部通信か、或いは他の並列処理用プロセッサとの間の通信である外部通信か、を判定し、内部通信である場合には、実行中のプロセスである先行プロセスにおける通信命令の実行部分において、上記メモリコントローラを介して通信するデータが格納されたアドレスを当該先行プロセスのワークスペースに格納し、当該先行プロセスを上記スケジューリングリストから外して、上記要求された通信における通信先のプロセスである後発プロセスの実行を開始し、当該後発プロセスにおける通信命令の実行部分において、上記先行プロセスのワークスペースから上記通信するデータが格納されたアドレスを取得して当該アドレスから後発プロセスのワークスペースの所定のアドレスにデータの転送を行う
並列処理用プロセッサ。」


2.引用文献に記載されている技術的事項及び引用発明の認定

原査定の拒絶の理由に引用された、引用文献及びその記載事項及び引用発明は、前記「第2 平成25年10月9日付けの手続補正についての補正の却下の決定」の「3.独立特許要件」の「(2)引用文献に記載されている技術的事項及び引用発明の認定」に記載したとおりである。


3.対比・判断

本願発明は、前記「第2 平成25年10月9日付けの手続補正についての補正の却下の決定」の「3.独立特許要件」で検討した本件補正発明から、
「当該先行プロセスの実行を中断し、実行の中断された当該先行プロセスを上記スケジューリングリストの最後尾に配置し、当該先行プロセスに代えて」の下線部分の限定を削除し、「当該先行プロセスを上記スケジューリングリストから外して、」の下線部分に変更したものであり、さらに、
「上記メモリコントローラは、ワード単位でメモリアクセスが行われるプロセスの実行時と、バイト単位でメモリアクセスが行われる上記プロセス間の通信時と、のそれぞれの場合において、上記CPU或いは上記リンクブロックと上記メモリとの間のデータバスのデータ幅を変換し、上記メモリに対してバイトアクセス及びワードアクセスの両方でのアクセスを可能とする」という限定を削除したものである。

ここで、本件補正発明の「先行プロセスの実行を中断し、」という処理に「先行プロセスを上記スケジューリングリストから外して」という処理が含まれるものである。
そうすると、「請求項1記載の発明の構成要件を全て含み、さらに特定の構成要件に限定要件を付加したものに相当する本件補正発明が、前記「第2 平成25年10月9日付けの手続補正についての補正の却下の決定」の「3.独立特許要件」の「(2)引用文献に記載されている技術的事項及び引用発明の認定」?「(4)当審の判断」に記載したとおり、引用発明及び引用文献2?4に基づいて、当業者が容易に発明をすることができたものであるから、本願発明も、同様の理由により、当該引用発明及び周知技術に基づいて、当業者が容易に発明をすることができたものである。


4.むすび

以上のとおり、本願の請求項1に係る発明は、特許法第29条第2項の規定により特許を受けることができないものであるから、その余の請求項に係る発明を検討するまでもなく、本願は拒絶すべきものである。

よって、結論のとおり審決する。
 
審理終結日 2015-02-09 
結審通知日 2015-02-10 
審決日 2015-02-27 
出願番号 特願2007-211904(P2007-211904)
審決分類 P 1 8・ 121- Z (G06F)
最終処分 不成立  
前審関与審査官 井上 宏一  
特許庁審判長 石井 茂和
特許庁審判官 辻本 泰隆
木村 貴俊
発明の名称 並列処理用プロセッサ  
代理人 佐藤 隆久  

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