• ポートフォリオ機能


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

  • この表をプリントする
PDF PDFをダウンロード
審決分類 審判 査定不服 2項進歩性 取り消して特許、登録 G06F
管理番号 1281692
審判番号 不服2013-7207  
総通号数 169 
発行国 日本国特許庁(JP) 
公報種別 特許審決公報 
発行日 2014-01-31 
種別 拒絶査定不服の審決 
審判請求日 2013-04-18 
確定日 2013-12-03 
事件の表示 特願2010-531979「プロセッサの設計方法および設計システム」拒絶査定不服審判事件〔平成21年 5月 7日国際公開、WO2009/058017、平成23年 1月27日国内公表、特表2011-503695、請求項の数(8)〕について、次のとおり審決する。 
結論 原査定を取り消す。 本願の発明は、特許すべきものとする。 
理由 第1 手続の経緯・本願発明
1 手続の経緯
本願は、2008年10月31日(パリ条約による優先権主張外国庁受理2007年11月1日、米国)を国際出願日とする出願であって、平成22年8月31日付けで手続補正がなされ、平成24年5月21日付けで拒絶理由が通知され、平成24年11月19日付けで意見書が提出されると同時に手続補正がなされたが、平成24年12月13日付け(発送日同年12月18日)で拒絶査定がなされたものである。
本件は、本願についてなされた上記拒絶査定を不服として平成25年4月18日付けで請求された拒絶査定不服審判請求である。

2 本願発明
(1)本願発明
本願の請求項1?8に係る発明(以下、それぞれの発明を項番を用いて「本願発明1」等という。)は、平成22年8月31日付け手続補正及び平成24年11月19日付け手続補正により補正された特許請求の範囲、明細書及び図面の記載からみて、その特許請求の範囲の請求項1?8に記載された事項によって特定されるものであるところ、その請求項1?8の記載は次のとおりのものである。

「 【請求項1】
プロセッサの設計方法であって、
複数のリソースをリソースパラメータと前記複数のリソースの相互関係に基づいて特定する、前記プロセッサの初期モデルを提供する第1のステップと、
選択されたアプリケーションで使用が必要なリソースを示す統計量を提供する第2のステップと
統計量に基づいて、少なくとも1つのリソースパラメータの緩和、および/または初期仕様で特定されたリソースの量の制限を行う第3のステップとを含み、
前記設計されたプロセッサは、このプロセッサに埋め込まれたROMまたはこのプロセッサに一体化されたROMを備え、このROMは選択されたアプリケーションを備え、
前記第3のステップに関与するリソースは、複数の処理リソース、複数の記憶リソースおよび複数の通信リソースに制限され、これらのリソースの少なくとも1つを含むように制限されることを特徴とするプロセッサの設計方法。
【請求項2】
請求項1に記載のプロセッサの設計方法において、
前記プロセッサはVLIWプロセッサであることを特徴とするプロセッサの設計方法。
【請求項3】
請求項1に記載のプロセッサの設計方法において、
前記プロセッサは時間固定プロセッサであることを特徴とするプロセッサの設計方法。
【請求項4】
請求項1に記載のプロセッサの設計方法において、
前記プロセッサはデータ固定プロセッサであることを特徴とするプロセッサの設計方法。
【請求項5】
請求項1乃至4のいずれか1項に記載のプロセッサの設計方法において、
前記プロセッサはマイクロコード化したプロセッサであることを特徴とするプロセッサ
の設計方法。
【請求項6】
請求項1に記載のプロセッサの設計方法において、
選択されたアプリケーションで前記の使用が必要とされる前期リソースを示す前記統計量が、前記選択されたアプリケーションで用いられるソフトウェアをコンパイルするコンパイラによって提供されることを特徴とするプロセッサの設計方法。
【請求項7】
選択されたアプリケーションを備える埋込まれたROMまたは一体化されたROMを備えるプロセッサを設計するための、プロセッサの設計システムであって、
前記プロセッサの初期モデル(20)を受け取るための装置(11)を備え、前記初期モデルはリソースパラメータおよびそれらの相互関係に関連して、複数のリソースを指定し、
更に、前記選択されたアプリケーション(22)で使用が必要な前記リソースを示す統計量を提供する装置(12)を更に備え、
更に、前記統計量に基づいて、少なくとも1つのパラメータを緩和するための、および/または前期初期仕様で指定されたリソースの量を制限するための装置(13)を備え、前記装置(13)が関与するリソースは、複数の処理リソース、複数の記憶リソースおよび複数の通信リソースに限定され、これらのリソースの少なくとも1つを含むように限定されることを特徴とするプロセッサの設計システム。
【請求項8】
請求項7に記載のプロセッサの設計システムにおいて、
サーバステーション(S)と、クライアントステーション(C)とを備え、
前記クライアントステーション(C)は、前記選択されたアプリケーション22に前記使用が必要な前記リソースを示す統計量を提供する前記装置(12)と、前記統計量に基づいて、少なくとも1つのパラメータを緩和するための、および/または前記初期仕様で指定されたリソースの量を制限するための前記装置(13)とを持ち、
前記サーバステーション(S)は、前記プロセッサの前記初期モデルを受け取るための前記装置(11)を持つことを特徴とするプロセッサの設計システム。」

(2)本願発明1
ここで、本願発明1の文言を解釈する。
本願発明1は、
「複数のリソースをリソースパラメータと前記複数のリソースの相互関係に基づいて特定する、前記プロセッサの初期モデルを提供する第1のステップ」、
「統計量に基づいて、少なくとも1つのリソースパラメータの緩和、および/または初期仕様で特定されたリソースの量の制限を行う第3のステップ」
とを含んでいる。
この記載から、「プロセッサの初期モデル」は「複数のリソースをリソースパラメータと前記複数のリソースの相互関係に基づいて特定」されるものであり、「第3のステップ」において、「統計量に基づいて、少なくとも1つのリソースパラメータの緩和、および/または初期仕様で特定されたリソースの量の制限を行う」ものである。「第3のステップ」においては、「および/または」の記載があり、統計量に基づいて、「少なくとも1つのリソースパラメータの緩和」、「初期仕様で特定されたリソースの量の制限」がそれぞれ一方が行われるか、両方が行われるものと認められる。「第3のステップ」においては、「初期仕様で特定されたリソースの量の制限」だけが行われることがあるが、この場合においても、「プロセッサの初期モデル」は「複数のリソースをリソースパラメータと前記複数のリソースの相互関係に基づいて特定」されるものであって、その「リソースパラメータ」は、「第3のステップ」において「緩和」が行われることが想定されるものである。
したがって、本願発明1においては、「プロセッサの初期モデル」は「複数のリソースをリソースパラメータと前記複数のリソースの相互関係に基づいて特定」されるものであり、統計量に基づいて、「リソースパラメータの緩和」が想定されているものである。

第2 引用文献の記載事項
1 引用文献1
原査定における拒絶の理由に引用された特開2006-259805号公報(以下「引用文献1」という。)には、図面と共に次に掲げる事項が記載されている。

「【技術分野】
【0001】
本発明はプロセッサ設計装置、プロセッサ設計方法およびプロセッサ設計プログラムに関し、特に、特定のアプリケーションの実行に適したプロセッサ・モデルの生成方法に適用して好適なものである。
【背景技術】
【0002】
従来のプロセッサの設計方法では、基本的な命令セットを備えた論理合成可能なプロセッサ・モデルをベースとして、特定のアプリケーションをより効率よく実行するプロセッサ・モデルを設計するために、設計者が新たな命令セットを定義し、定義した命令セットを含めてコンパイル可能なコンパイラを自動生成するとともに、定義した命令を実行するためのハードウェア資源をプロセッサ・モデルに自動的に追加するシステムがある(特許文献1)。
【特許文献1】特表2003-518280号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
しかしながら、従来のプロセッサの設計方法では、設計者が新たな命令セットを定義する必要があるため、特定アプリケーションの処理内容を詳細に調査し、性能向上のために最も効果的な演算を見出す必要があり、設計作業に時間がかかるという問題があった。
また、新たに定義した命令セットを含めてコードを生成することが可能なコンパイラを用意したり、定義した命令セットを用いるために、プログラム・コードの中に特別な表記を加えたりする必要があり、設計作業に手間がかかるという問題があった。
【0004】
さらに、新たに定義した命令セットを論理合成可能なプロセッサ・モデルに追加する必要があるため、定義した命令セットが複雑な場合、論理合成したプロセッサ・モデルが想定していた動作周波数で動作せず、結果として目標性能を達成することができなくなるという問題があった。
そこで、本発明の目的は、特定のアプリケーションの実行に適したプロセッサ・モデルを効率よく生成することが可能なプロセッサ設計装置、プロセッサ設計方法およびプロセッサ設計プログラムを提供することである。」

「【0017】
以下、本発明の実施形態に係るプロセッサ設計装置およびその方法について図面を参照しながら説明する。
図1は、本発明の一実施形態に係るプロセッサ設計装置の機能的な構成を示すブロック図である。
図1において、プロセッサ設計装置には、コンパイル手段2、ハードウェアリソース情報抽出手段4および不要ハードウェアリソース削除手段7が設けられるとともに、論理合成可能ベースプロセッサ・モデル6が予め用意されている。ここで、論理合成可能ベースプロセッサ・モデル6には、命令セットやレジスタ・ファイルなどの汎用的なハードウェアリソースを予め定めておくことができ、例えば、汎用的に処理を行うことが可能なフルセット命令を備えることができる。また、コンパイル手段2は、論理合成可能ベースプロセッサ・モデル6上で動作するプログラムを生成することができる。ハードウェアリソース情報抽出手段4は、アプリケーション・プログラム1を動作させるために必要なハードウェアリソース情報5を抽出することができる。なお、ハードウェアリソース情報5としては、例えば、命令セット、レジスタ・ファイル、レジスタ・ファイルへの入出力ポートなどを挙げることができる。不要ハードウェアリソース削除手段7は、ハードウェアリソース情報抽出手段4にて抽出されたハードウェアリソース情報5に基づいて、論理合成可能ベースプロセッサ・モデル6に設けられたハードウェアリソースを削除することにより、プリケーション・プログラム1の実行に適した論理合成可能ターゲットプロセッサ・モデル8を生成することができる。
【0018】
すなわち、アプリケーション・プログラム(ソース・コード)1がコンパイル手段2に入力されると、アプリケーション・プログラム1がコンパイルされ、論理合成可能ベースプロセッサ・モデル6上で動作するオブジェクトコード3が生成される。そして、アプリケーション・プログラム1のオブジェクトコード3はハードウェアリソース情報抽出手段4に入力され、アプリケーション・プログラム1を動作させるために必要なハードウェアリソース情報5を抽出する。そして、ハードウェアリソース情報抽出手段4にて抽出されたハードウェアリソース情報5は、不要ハードウェアリソース削除手段7に入力される。そして、不要ハードウェアリソース削除手段7は、ハードウェアリソース情報5に基づいて、論理合成可能ベースプロセッサ・モデル6に設けられたハードウェアリソースを削除することにより、プリケーション・プログラム1の実行に適した論理合成可能ターゲットプロセッサ・モデル8を生成する。
【0019】
これにより、論理合成可能ベースプロセッサ・モデル6に予め備えられたハードウェアリソースを選択することで、特定のアプリケーション・プログラム1の実行に適した論理合成可能ターゲットプロセッサ・モデル8を生成することが可能となる。このため、特定のアプリケーション・プログラム1の実行に適した論理合成可能ターゲットプロセッサ・モデル8を生成するために、設計者が新たな命令セットを定義したり、新たに定義した命令セットを含めてコードを生成することが可能なコンパイラを用意したりする必要がなくなり、論理合成可能ターゲットプロセッサ・モデル8の設計作業にかかる負担を軽減することが可能となる。
【0020】
図2は、一実施形態に係るプロセッサ設計装置の概略構成を示すブロック図である。
図2において、プロセッサ設計装置には、コンパイル手段12、ハードウェアリソース情報抽出手段14、不要ハードウェアリソース削除手段17および論理合成手段18が設けられるとともに、不要ハードウェアリソース削除手段17には論理合成可能ベースプロセッサ・モデル16が予め用意されている。ここで、コンパイル手段12は、論理合成可能ベースプロセッサ・モデル16上で動作するプログラムを生成することができる。ハードウェアリソース情報抽出手段14は、アプリケーション・プログラム11を動作させるために必要なハードウェアリソース情報15を抽出することができる。不要ハードウェアリソース削除手段17は、ハードウェアリソース情報抽出手段14にて抽出されたハードウェアリソース情報15に基づいて、論理合成可能ベースプロセッサ・モデル16に設けられたハードウェアリソースを削除することができる。論理合成手段18は、アプリケーション・プログラム11の実行に不要なハードウェアリソースが削除された論理合成可能ベースプロセッサ・モデル16に基づいて、アプリケーション・プログラム11の実行に適したターゲットプロセッサ・ネットリスト19を生成することができる。
【0021】
すなわち、アプリケーション・プログラム11がコンパイル手段12に入力されると、アプリケーション・プログラム11がコンパイルされ、論理合成可能ベースプロセッサ・モデル16上で動作するオブジェクトコード13が生成される。そして、アプリケーション・プログラム11のオブジェクトコード13はハードウェアリソース情報抽出手段14に入力され、アプリケーション・プログラム11を動作させるために必要なハードウェアリソース情報15を抽出する。そして、ハードウェアリソース情報抽出手段14にて抽出されたハードウェアリソース情報15は、不要ハードウェアリソース削除手段17に入力される。そして、不要ハードウェアリソース削除手段17は、ハードウェアリソース情報15に基づいて、論理合成可能ベースプロセッサ・モデル16に設けられたハードウェアリソースを削除し、アプリケーション・プログラム11の実行に不要なハードウェアリソースが削除された論理合成可能ベースプロセッサ・モデル16を論理合成手段18に出力する。そして、論理合成手段18は、アプリケーション・プログラム11の実行に不要なハードウェアリソースが削除された論理合成可能ベースプロセッサ・モデル16に基づいて、アプリケーション・プログラム11の実行に適したターゲットプロセッサ・ネットリスト19を生成する。
【0022】
なお、ハードウェアリソース情報抽出手段14は、オブジェクトコード13から命令コードを1つずつ取り出して調べることにより、ハードウェアリソース情報15を抽出することができる。
図3は、本発明の一実施形態に係る命令コードの形式の例を示す図である。
図3において、例えば、32ビット固定長命令を持った命令コードの形式として、レジスタ間の演算を定義するR形式、即値を持ったI形式やJ形式などがある。ここで、
op:オペコード(命令操作コード)
rs:第1ソース・オペランド・レジスタ(演算対象の格納先)
rt:第2ソース・オペランド・レジスタ(演算対象の格納先)
rd:デスティネーション・オペランド・レジスタ(演算結果の格納先)
shamt:シフト量
funct:機能拡張用コード
を表している。
【0023】
そして、オペコードopまたは機能拡張用コードfunctを確認することにより、オブジェクトコード13で使われている命令の種類を抽出することができる。
図4は、本発明の一実施形態に係るハードウェアリソース情報の生成方法を示すフローチャートである。
図4において、オブジェクトコード13に命令コードがあるかどうかを示すフラグを0に初期化した後(ステップS1?S4)、オブジェクトコード13から命令コードを順次読み込み、その命令コードに対応したフラグを1に設定する(ステップS5?S7)。そして、命令コードに対応したフラグが1に設定されている場合、その命令コードをハードウェアリソース情報15として出力する(ステップS8?S12)。
【0024】
そして、ハードウェアリソース情報15に基づいて、論理合成可能ベースプロセッサ・モデル16に設けられたハードウェアリソースを削除するには、例えば、コンパイル識別子を用いることができる。
例えば、ハードウェアリソース情報15としてADD命令が抽出された場合、’define ADDという記述をテキスト・ファイルに出力することができる。すなわち、ハードウェアリソース情報15として、例えば、以下のような記述をテキスト・ファイルに出力することができる。
’define ADD
’define SUB
’define LW



そして、ハードウェアリソース情報15として’define定義されたテキスト・ファイルが出力されると、コンパイル識別子を使って論理合成可能ベースプロセッサ・モデル16のうち’define定義された命令のみを有効化することにより、アプリケーション・プログラム11の実行に不要なハードウェアリソースが削除された論理合成可能ベースプロセッサ・モデル16を構築することができる。
【0025】
図5は、本発明の一実施形態に係る論理合成可能ベースプロセッサ・モデルのRTLソース・コード上でハードウェアリソースを有効化する方法を示す図である。
図5において、論理合成可能ベースプロセッサ・モデル16として、’ifdef XXXと’endifとの間にハードウェアリソース(例えば、その名称をXXXとする)が記述されたRTLソース・コードKを用意する。そして、XXXというハードウェアリソースを有効化するには、RTLソース・コードKの先頭に挿入されるインクルード・ファイルに’define XXXと記述する。一方、XXXというハードウェアリソースを無効化するには、RTLソース・コードKの先頭に挿入されるインクルード・ファイルには何も記述しないようにする。
【0026】
こうすることで、インクルード・ファイルに’define XXXと記述されていれば、’ifdef XXXと’endifとの間に記述されたXXXというハードウェアリソースが有効になり、XXXというハードウェアリソースを論理合成手段18にて回路合成させることができる。一方、インクルード・ファイルに’define XXXと記述されていなければ、’ifdef XXXと’endifとの間に記述されたXXXというハードウェアリソースはRTLソース・コードKに記述されていないとみなさせることが可能となり、XXXというハードウェアリソースを論理合成手段18にて回路合成させないようにすることができる。
【0027】
例えば、RTLソース・コードKにおいて、’ifdef ADDと’endifとの間にADD命令の動作が記述され、’ifdef SUBと’endifとの間にSUB命令の動作が記述されているものとする。そして、RTLソース・コードKの先頭に挿入されるインクルード・ファイルに’define ADDと記述することにより、RTLソース・コードKに記述されたADD命令を有効化することができる。また、RTLソース・コードKの先頭に挿入されるインクルード・ファイルに’define SUBと記述することにより、RTLソース・コードKに記述されたSUB命令を有効化することができる。」

2 引用文献2
原査定における拒絶の理由に引用された特開2005-269025号公報(以下「引用文献2」という。)には、図面と共に次に掲げる事項が記載されている。

「【技術分野】
【0001】
本発明は、プログラマブルロジックデバイスのプログラマブルロジック部に形成する電子回路の配線配置を設定する論理合成サーバおよびそれにより製造されたプログラマブルロジックデバイスに関する。
【背景技術】
【0002】
従来のプログラマブルロジック部を備えたプログラマブルロジックデバイスは、仮想コンピュータオペレーティングシステムを用いてプロセッサ部が実行するソースプログラムをシミュレートし、プロセッサ部が処理に用いるフル命令セットに多数の命令セットを付加すると共に、ソースプログラムが実行する機能をソフトウェアまたはハードウェアに配分してプログラマブルロジックデバイスによるグラフィックスアプリケーション等の処理を実行している。(例えば、特許文献1参照。)。
【特許文献1】特表2002-530780号公報(第8頁段落0004-第10頁 段落0013、第4図)
【発明の開示】
【発明が解決しようとする課題】
【0003】
しかしながら、上述した従来の技術においては、プロセッサ部が処理に用いるフル命令セットに多数の命令セットを付加してプログラマブルロジックデバイスによる処理を実行しているため、フル命令セットの命令の中には実行プログラムには用いられていない命令が存在し、その電子回路がプログラマブルロジック部のプロセッサ部に形成され、これに伴ってユーザI/O等のプログラマブルロジックデバイスが必要とする各種のモジュールの電子回路を形成するためのプログラマブルロジック部のモジュール部の領域が狭くなるという問題がある。
【0004】
このため、実行プログラムの処理の実行にはプログラマブルロジック部の容量が大きいプログラマブルロジックデバイスを用いる必要が生じる。
また、プログラマブルロジック部に不必要な命令のための電子回路が存在することでプログラマブルロジック部に形成する電子回路の配線配置が非効率となり、プロセッサ部が実行する処理の処理速度が低下するという問題がある。
【0005】
本発明は、上記の問題点を解決するためになされたもので、プログラマブルロジックデバイスのプログラマブルロジック部のモジュール部の領域を拡大する手段を提供することを目的とする。
【課題を解決するための手段】
【0006】
本発明は、上記課題を解決するために、論理合成サーバが、プログラマブルロジックデバイスの全ての機能を記したデバイス基本データと、前記プログラマブルロジックデバイスのプロセッサ部が処理に用いるフル命令セットの全ての命令名のフル命令名リストとを格納するサーバ記憶部と、高級言語により記述されたベースプログラムから前記プロセッサ部が実行する実行プログラムを編集して機械語に変換し、該変換結果を前記サーバ記憶部に保存するプログラムコンパイル部と、前記サーバ記憶部のフル命令名リストの命令名から、前記変換結果に用いられている命令の命令名を除いて前記ベースプログラムの実行に不必要な命令名の不要命令名リスト生成し、該不要命令名リストに基づいて、前記サーバ記憶部のデバイス基本データから不要な命令を削除して必要な命令のみを必要命令セットとして組込んだ基本機能データを生成するカスタマイズ部とを備えることを特徴とする。
【発明の効果】
【0007】
これにより、本発明は、一般的にプログラマブルロジック部に形成されるプロセッサ部のフル命令セットの領域が必要命令セットのみの領域に減少することに伴ってプロセッサ部の領域が減少し、モジュール部の領域を拡大することができ、同一の実行プログラムの処理を実行するFPGAの小型化を図ることができるという効果が得られる。
また、プログラマブルロジック部に不必要な命令のための電子回路が存在しなくなり、プログラマブルロジック部の電子回路を効率的な配線配置で形成することができ、プロセッサ部が実行する処理の処理速度を向上させることができるという効果が得られる。
【発明を実施するための最良の形態】
【0008】
以下に、図面を参照して本発明による論理合成サーバの実施例について説明する。
【実施例1】
【0009】
図1は実施例1の論理合成サーバを示すブロック図、図2は実施例1のプログラマブルロジックデバイスを示すブロック図である。
図2において、1はプログラマブルロジックデバイスとしてのFPGA(Field Programmable Gate Array)である。
2はFPGA1のプログラマブルロジック部であり、複数の基本素子(セルという。)が格子状に配置された素子であって、格子状に配置されたセルを接続することによって特定の機能を有する電子回路が形成可能に構成されている。
【0010】
3はプロセッサ部であり、プログラマブルロジック部2に形成されたCPU(Central Processing Unit)であって、高級言語としてのC言語で記述されたソースプログラムから生成された実行プログラムを実行する機能を有する他、レジスタやキャッシュメモリ等を備えている。
4は必要命令セットであり、プロセッサ部3に配置され、プロセッサ部3が処理を実行するために一般的に用意されている四則演算や分岐、比較等の基本的な命令の全てで構成される命令セット(フル命令セットという。)からプロセッサ部3が実行する実行プログラムには不必要な命令を削除して必要な命令のみにより構成される命令セットである。
【0011】
5はモジュール部であり、ユーザI/Oや外部インターフェース等のプログラマブルロジックデバイスを構成する各種モジュールの電子回路が形成される領域である。
6はFPGA1に付属するコンフィグレーションROM(Read Only Memory)であり、不揮発性のメモリであって、FPGA1の機能を形成するためのプログラマブルロジック部2のセル接続データが書込まれて格納される。
【0012】
図1において、10は論理合成サーバである。
11は、論理合成サーバ10の主制御部であり、論理合成サーバ10の各部を制御する他、アプリケーションソフトウェアによりそのアプリケーションの機能を備えたハードウェア構成する機能を有している。
12はプログラムメモリであり、主制御部11に直結するキャッシュメモリ等に確保された記憶エリアであって、各種のアプリケーションソフトウェアが読込まれる。
【0013】
13はハードディスク等のサーバ記憶部であり、プロセッサ部3やそのフル命令セット4よびモジュール部5に形成するモジュール等のFPGA1が備えるべき全ての機能を記したデバイス基本データ14と、プロセッサ部3が処理に用いるフル命令セットの全ての命令名のリストであるフル命令名リスト15を格納している。
16は表示部であり、CRTやLCD等の表示画面を備えており、主制御部11が生成したデータの確認画面や操作手順等を表示する。
【0014】
17はデータ入出力部であり、フレキシブルディスク等の磁気ディスクやコンパクトディスク等の光ディスク等の記録媒体に記録されたデータを読取る機能および記録媒体にデータを書込む機能を有している。
18は入力部であり、キーボードやマウスを備えており、担当者が数字入力や文字入力、選択入力等を行うために使用する。
【0015】
19はROM書込部であり、機械語で記述された実行プログラムを実行プログラム用ROMに書込む機能を有している。
21はプログラムコンパイル部であり、FPGA1のプロセッサ部3が処理すべきソースプログラムと同一の高級言語で記述されたベースプログラムを解読してプロセッサ部3が実行可能なプログラムを編集し、これを機械語であるバイナリコードに変換してその変換結果をインテル形式のバイナリファイルとして出力する機能を有するアプリケーションソフトウェアと主制御部11とで形成されるハードウェアである。
【0016】
本実施例では、ベースプログラムとしてC言語で記述されたソースプログラムが用いられ、プログラムコンパイル部21はプロセッサ部3がその処理を実行するための実行プログラムを編集する。
22はカスタマイズ部であり、プログラムコンパイル部21から出力されたバイナリファイルを解読してそこに用いられている命令を抽出し、サーバ記憶部13に保存されているフル命令名リスト15からベースプログラムの実行に用いられている命令の命令名を除いて不必要な命令名のリスト(不要命令名リストという。)を生成し、この不要命令名リストに基づいてサーバ記憶部13に格納されているデバイス基本データ14のフル命令セットの命令から不要な命令を削除した必要命令セット4を組込んだFPGA1の基本機能データ生成し、これをハードウェア記述言語としてのHDL(Hardware Description Language)言語で記述して出力する機能を有するアプリケーションソフトウェアと主制御部11とで形成されるハードウェアである。
【0017】
23は接続リスト生成部であり、カスタマイズ部22で生成されたHDL言語の基本機能データを解読してプログラマブルロジック部2に形成するプロセッサ部3やその必要命令セット4およびモジュール部5の各モジュールの論理回路を編集し、この論理回路を構成するセルの接続方法等を記したリスト(接続リストという。)を生成して出力する機能を有するアプリケーションソフトウェアと主制御部11とで形成されるハードウェアである。
【0018】
24はフィッタ部であり、接続リスト生成部23で生成された接続リストに基づいてプログラマブルロジック部2に前記論理回路を形成するための電子回路の配線配置を決定し、この配線配置となるように各電子回路にセルを割り当て、その割り当てたセルの隣接するセル間の接続点等を記述したセル接続データを出力する機能を有するアプリケーションソフトウェアと主制御部11とで形成されるハードウェアである。
【0019】
上記のプログラムコンパイル部21やカスタマイズ部22等を形成するアプリケーションソフトウェアは通常はサーバ記憶部13に格納されており、論理合成サーバ10が処理を実行する時にプログラムメモリ12に読込まれて主制御部11と共に上記した各部を形成する。
上述した構成の作用について説明する。
【0020】
本実施例のFPGA1は、パーソナルコンピュータ等の汎用性を有するコンピュータの基板に実装されるものではなく、アドインボードや特定の処理を行う装置の基板、例えばプリンタや磁気カードリーダの基板に実装されるものである。
このため、プログラマブルロジック部2に形成されるプロセッサ部3が実行する実行プログラムは特定の処理のみを実行するプログラムであって、フル命令セットの全ての命令を用いなくても必要命令セット4を用いれば処理の実行が可能なプログラムである。
【0021】
しかしながら、実行プログラムは特定の処理のみを実行するプログラムといえども、その処理は実装される基板によって異なり、必要命令セット4を画一的に構成することが不可能であるので、以下に示す命令セット削減処理により必要命令セット4をその実行プログラムに対応させて構成する必要がある。
本実施例の命令セット削減処理に用いるベースプログラムは、C言語で記述したソースプログラムである。
【0022】
また、論理合成サーバ10のサーバ記憶部13には、予め前記のFPGA1のデバイス基本データ14と、そのプロセッサ部3が一般に備えるフル命令セットのニーモニック言語の命令名のフル命令名リスト15が格納されている。
以下に、図3に示すフローチャートを用い、Sで示すステップに従って本実施例の命令セット削減処理の作動について説明する。
【0023】
S1、担当者は、予め作成したC言語で記述されたソースプログラムを記録した記録媒体をデータ入出力部17に装填する。
これを検知した論理合成サーバ10の主制御部11は、データ入出力部17により記録媒体に記録されたソースプログラムを読取る。
S2、ソースプログラムを読取った主制御部11は、プログラムコンパイル部21にソースプログラムを引渡してそのバイナリファイルを生成する。
【0024】
すなわち、ソースプログラムの引渡しを受けたプログラムコンパイル部21は、そのC言語のソースプログラムを解読し、実行の順序やレジスタの割付等を設定してプロセッサ部3が実行する実行プログラムを編集し、これをバイナリコードに変換してその変換結果をバイナリファイルとしてサーバ記憶部13に保存する。
S3、プログラムコンパイル部21がバイナリファイルを保存したことを確認した主制御部11は、サーバ記憶部13のバイナリファイルを読出すと共に、表示部16に実行プログラムを出力する旨の文言を表示する。これを確認した担当者はROM書込部19に実行プログラム用ROMを装着する。
【0025】
実行プログラム用ROMを装着を検知した主制御部11は、読出したバイナリファイルにバイナリコードで記述されている実行プログラムをROM書込部19により実行プログラム用ROMに書込む。
S4、これと平行して主制御部11は、カスタマイズ部22にバイナリファイルの在処を引渡して基本機能データを生成する。
【0026】
すなわち、バイナリファイルの在処の引渡しを受けたカスタマイズ部22は、サーバ記憶部13の実行プログラムのバイナリファイルを読出してこれを解読し、そこに用いられている命令を抽出してニーモニック言語に変換すると共にサーバ記憶部13に格納されているフル命令名リスト15を読出し、このフル命令名リスト15のニーモニック言語の命令名から実行プログラムに用いられている命令名を消去して実行プログラムに不必要な不要命令名リストを生成し、サーバ記憶部13に格納されているデバイス基本データ14を読出して生成した不要命令名リストに基づいてデバイス基本データ14のフル命令セットの命令から不要な命令を削除する。
【0027】
そして、削除後に残った命令、つまり必要な命令を必要命令セット4として再構成し、これをデバイス基本データ14の命令セットとして組込んでHDL言語で記述した基本機能データを生成し、これをサーバ記憶部13に保存する。
S5、カスタマイズ部22が基本機能データを保存したことを確認した主制御部11は、接続リスト生成部23に基本機能データの在処を引渡してFPGA1のプログラマブルロジック部2の接続リストを生成する。
【0028】
すなわち、基本機能データの在処の引渡しを受けた接続リスト生成部23は、サーバ記憶部13のHDL言語の基本機能データを読出してこれを解読し、FPGA1のプログラマブルロジック部2に形成するプロセッサ部3やその必要命令セット4およびモジュール部5の各モジュールの論理回路を編集してこの論理回路を構成するセルの接続方法等を記した接続リストを生成し、これをサーバ記憶部13に保存する。
【0029】
S6、接続リスト生成部23が接続リストを保存したことを確認した主制御部11は、フィッタ部24に接続リストの在処を引渡してプログラマブルロジック部2のセル接続データを生成する。
すなわち、接続リストの在処の引渡しを受けたフィッタ部24は、サーバ記憶部13の接続リストを読出し、その接続リストに基づいて必要命令セット4の命令のその使用頻度等を考慮してプログラマブルロジック部2に形成するプロセッサ部3やその必要命令セット4等の論理回路のための電子回路の配線配置を決定し、この配線配置となるように各電子回路にセルを割り当て、その割り当てたセルの隣接するセル間の接続点等を記したセル接続データを生成し、これをサーバ記憶部13に保存する。
【0030】
S7、フィッタ部24がセル接続データを保存したことを確認した主制御部11は、サーバ記憶部13のセル接続データを読出すと共に、表示部16にセル接続データを出力する旨の文言を表示する。これを確認した担当者は、データ入出力部17に記録媒体を装填する。
記録媒体を装填を検知した論理合成サーバ10の主制御部11は、データ入出力部17により読出したセル接続データを記録媒体に書込み、書込が終了した時に上記の命令セット削減処理を終了させる。
【0031】
その後、担当者はセル接続データが書込まれた記録媒体を用いて図示しないROMライタ等によりセル接続データをFPGA1に付属するコンフィグレーションROM6に書込んで格納する。
この場合に、論理合成サーバ10にROMライタを設け、またはROM書込部19を利用してセル接続データをFPGA1に付属するコンフィグレーションROM6に書込むようにしてもよい。
【0032】
これにより、ステップS3で実行プログラム用ROMに書込まれた実行プログラムの処理の実行に必要な命令のみを必要命令セット4として組込んだ基本機能データの機能を発揮するFPGA1が製造される。
そして、このFPGA1は、実行プログラム用ROMと共に基板に実装され、その基板に電源が投入されると、コンフィグレーションROM6に格納されているセル接続データがFPGA1に読込まれ、このセル接続データに基づいてプログラマブルロジック部2にプロセッサ部3やその必要命令セット4およびモジュール部5の各モジュール等の電子回路が形成され、形成されたプロセッサ部3が実行プログラム用ROMから実行プログラムを読出して必要命令セット4を用いてその演算等を行うと共に、モジュール部5の各モジュールに指令して実行プログラムに応じた処理を実行する。
【0033】
以上説明したように、本実施例では、論理合成サーバのサーバ記憶部にデバイス基本データとフル命令名リストとを格納しておき、プログラムコンパイル部がソースプログラムから実行プルグラムを編集して機械語に変換したバイナリファイルをカスタマイズ部が解読してフル命令名リストから実行プログラムが用いている命令の命令を除いた不要命令名リストを生成し、不要命令名リストに基づいてデバイス基本データのフル命令セットから不要な命令を削除し、必要命令セットを組込んだ基本機能データを生成するようにしたことによって、図4(a)に示す一般的にプログラマブルロジック部に形成されるプロセッサ部のフル命令セットの領域が図4(b)に示す必要命令セットのみの領域に減少することに伴ってプロセッサ部の領域が減少し、モジュール部の領域を図4(a)に示す領域から図4(b)に示す領域に拡大することができる。
【0034】
これにより、同一の実行プログラムの処理を実行するFPGAの小型化を図ることができる。
また、プロセッサ部に必要命令セットのみを設けるようにしたことによって、プログラマブルロジック部に不必要な命令のための電子回路が存在しなくなり、プログラマブルロジック部の電子回路を効率的な配線配置で形成することができ、プロセッサ部が実行する処理の処理速度を向上させることができる。」

第3 対比・判断
1 引用文献に記載された発明
引用文献1には、段落【0017】?【0019】に「プロセッサ設計装置およびその方法」が記載されており、「プロセッサ設計方法」は、次のとおりのものである。

「アプリケーション・プログラム(ソース・コード)1がコンパイル手段2に入力されると、アプリケーション・プログラム1がコンパイルされ、論理合成可能ベースプロセッサ・モデル6上で動作するオブジェクトコード3が生成され」、「アプリケーション・プログラム1のオブジェクトコード3はハードウェアリソース情報抽出手段4に入力され、アプリケーション・プログラム1を動作させるために必要なハードウェアリソース情報5を抽出」し、「ハードウェアリソース情報抽出手段4にて抽出されたハードウェアリソース情報5は、不要ハードウェアリソース削除手段7に入力され」、「不要ハードウェアリソース削除手段7は、ハードウェアリソース情報5に基づいて、論理合成可能ベースプロセッサ・モデル6に設けられたハードウェアリソースを削除することにより、プリケーション・プログラム1の実行に適した論理合成可能ターゲットプロセッサ・モデル8を生成する」(段落【0018】)。
そして、「論理合成可能ベースプロセッサ・モデル6には、命令セットやレジスタ・ファイルなどの汎用的なハードウェアリソースを予め定めておくことができ、例えば、汎用的に処理を行うことが可能なフルセット命令を備えることができる」(段落【0017】)から、「論理合成可能ベースプロセッサ・モデル6」は、「命令セットやレジスタ・ファイルなどの汎用的なハードウェアリソースを予め定めてお」き、「汎用的に処理を行うことが可能なフルセット命令を備える」ものである。

以上より、引用文献1には、次の発明(以下「引用発明」という。)が記載されていると認められる。

「アプリケーション・プログラム(ソース・コード)1がコンパイル手段2に入力されると、アプリケーション・プログラム1がコンパイルされ、論理合成可能ベースプロセッサ・モデル6上で動作するオブジェクトコード3が生成され、アプリケーション・プログラム1のオブジェクトコード3はハードウェアリソース情報抽出手段4に入力され、アプリケーション・プログラム1を動作させるために必要なハードウェアリソース情報5を抽出し、ハードウェアリソース情報抽出手段4にて抽出されたハードウェアリソース情報5は、不要ハードウェアリソース削除手段7に入力され、不要ハードウェアリソース削除手段7は、ハードウェアリソース情報5に基づいて、論理合成可能ベースプロセッサ・モデル6に設けられたハードウェアリソースを削除することにより、アプリケーション・プログラム1の実行に適した論理合成可能ターゲットプロセッサ・モデル8を生成し、
上記論理合成可能ベースプロセッサ・モデル6は、命令セットやレジスタ・ファイルなどの汎用的なハードウェアリソースを予め定めておき、汎用的に処理を行うことが可能なフルセット命令を備える
ことを特徴とするプロセッサ設計方法。」

2 本願発明1について
(1)対比
本願発明1と引用発明とを対比する。

ア 「プロセッサの設計方法」
引用発明は、「プロセッサ設計方法」であり、「プロセッサの設計方法」といえる。

イ 「複数のリソースをリソースパラメータと前記複数のリソースの相互関係に基づいて特定する、前記プロセッサの初期モデルを提供する第1のステップ」

引用発明は、「上記論理合成可能ベースプロセッサ・モデル6は、命令セットやレジスタ・ファイルなどの汎用的なハードウェアリソースを予め定めておき、汎用的に処理を行うことが可能なフルセット命令を備える」ものであり、「命令セットやレジスタ・ファイルなどの汎用的なハードウェアリソースを予め定めてお」くものであるから、「論理合成可能ベースプロセッサ・モデル6」は、「プロセッサの初期モデル」といえ、引用発明は、「前記プロセッサの初期モデルを提供する第1のステップ」を含んでいるといえる。
しかしながら、引用発明における「論理合成可能ベースプロセッサ・モデル6」は、「複数のリソースをリソースパラメータと前記複数のリソースの相互関係に基づいて特定する」ものではなく、本願発明1と相違する。

ウ 「選択されたアプリケーションで使用が必要なリソースを示す統計量を提供する第2のステップ」「統計量に基づいて、少なくとも1つのリソースパラメータの緩和、および/または初期仕様で特定されたリソースの量の制限を行う第3のステップ」

引用発明は、「アプリケーション・プログラム(ソース・コード)1がコンパイル手段2に入力される」ものであるから、アプリケーション・プログラムは、入力の際に選択されるものであって、「選択されたアプリケーション」といえる。
また、引用発明は、「アプリケーション・プログラム1を動作させるために必要なハードウェアリソース情報5を抽出し、ハードウェアリソース情報抽出手段4にて抽出されたハードウェアリソース情報5は、不要ハードウェアリソース削除手段7に入力され、不要ハードウェアリソース削除手段7は、ハードウェアリソース情報5に基づいて、論理合成可能ベースプロセッサ・モデル6に設けられたハードウェアリソースを削除する」ものであり、「アプリケーション・プログラム1を動作させるために必要なハードウェアリソース情報5を抽出」することは、「選択されたアプリケーションで使用が必要なリソース」か否かを判断していることになり、必要か否かは数値として表されるから、「統計量」といえ、引用発明は、「選択されたアプリケーションで使用が必要なリソースを示す統計量を提供する第2のステップ」を含んでいるといえる。
そして、引用発明は「不要ハードウェアリソース削除手段7は、ハードウェアリソース情報5に基づいて、論理合成可能ベースプロセッサ・モデル6に設けられたハードウェアリソースを削除する」ものであり、「統計量に基づいて、」リソースの「制限を行う第3のステップ」を含んでいるといえる。
しかしながら、リソースの「制限」が本願発明1においては、「少なくとも1つのリソースパラメータの緩和、および/または初期仕様で特定されたリソースの量の制限」であるのに対し、引用発明においては、「リソースの削除」である点で相違し、このリソースの制限を行うために基づく「統計量」が、本願発明においては、「少なくとも1つのリソースパラメータの緩和、および/または初期仕様で特定されたリソースの量の制限」を行うための「統計量」であるのに対し、引用発明においては、「リソースを削除」するための必要か否かを示す「統計量」である点で相違する。

エ 「前記設計されたプロセッサは、このプロセッサに埋め込まれたROMまたはこのプロセッサに一体化されたROMを備え、このROMは選択されたアプリケーションを備え」

本願発明1においては、「前記設計されたプロセッサは、このプロセッサに埋め込まれたROMまたはこのプロセッサに一体化されたROMを備え、このROMは選択されたアプリケーションを備え」ているのに対し、引用発明においては、そうではない点で相違する。

オ 「前記第3のステップに関与するリソースは、複数の処理リソース、複数の記憶リソースおよび複数の通信リソースに制限され、これらのリソースの少なくとも1つを含むように制限される」

引用発明においては、「上記論理合成可能ベースプロセッサ・モデル6は、命令セットやレジスタ・ファイルなどの汎用的なハードウェアリソースを予め定めておき、汎用的に処理を行うことが可能なフルセット命令を備える」ものであり、上記(ウ)のとおり、「不要ハードウェアリソース削除手段7は、ハードウェアリソース情報5に基づいて、論理合成可能ベースプロセッサ・モデル6に設けられたハードウェアリソースを削除する」ことは、「統計量に基づいて、」リソースの「制限を行う第3のステップ」といえ、「命令セット」、「レジスタ・ファイル」は、「ハードウエアリソース」であって、それぞれ、「処理リソース」、「記憶リソース」といえるから、引用発明においては、「前記第3のステップに関与するリソースは、複数の処理リソース、複数の記憶リソースに制限され、これらのリソースの少なくとも1つを含むように制限される」といえる。
そして、「前記第3のステップに関与するリソースは、複数の処理リソース、複数の記憶リソースに制限され、これらのリソースの少なくとも1つを含むように制限される」ことは、「前記第3のステップに関与するリソースは、複数の処理リソース、複数の記憶リソースおよび複数の通信リソースに制限され、これらのリソースの少なくとも1つを含むように制限される」ことに含まれるから、引用発明は、「前記第3のステップに関与するリソースは、複数の処理リソース、複数の記憶リソースおよび複数の通信リソースに制限され、これらのリソースの少なくとも1つを含むように制限される」といえる。

(2)一致点、相違点
上記(1)イにおける相違点及び上記(1)ウにおける相違点は、「リソースパラメータ」に関する相違点として、1つの相違点とすることができる。
したがって、本願発明1と引用発明との一致点、相違点は、次のとおりである。

(一致点)
プロセッサの設計方法であって、
前記プロセッサの初期モデルを提供する第1のステップと、
選択されたアプリケーションで使用が必要なリソースを示す統計量を提供する第2のステップと
統計量に基づいて、リソースの制限を行う第3のステップとを含み、
前記第3のステップに関与するリソースは、複数の処理リソース、複数の記憶リソースおよび複数の通信リソースに制限され、これらのリソースの少なくとも1つを含むように制限されることを特徴とするプロセッサの設計方法。

(相違点1)
「前記プロセッサの初期モデル」が、
本願発明1においては、「複数のリソースをリソースパラメータと前記複数のリソースの相互関係に基づいて特定する」ものであるのに対し、
引用発明においては、そうではなく、
「統計量に基づいて、リソースの制限を行う第3のステップ」における「リソースの制限」が、
本願発明1においては、「少なくとも1つのリソースパラメータの緩和、および/または初期仕様で特定されたリソースの量の制限」であるのに対し、
引用発明においては、「リソースの削除」であり、
このリソースの制限を行うために基づく「統計量」が、本願発明においては、「少なくとも1つのリソースパラメータの緩和、および/または初期仕様で特定されたリソースの量の制限」を行うための「統計量」であるのに対し、引用発明においては、「リソースを削除」するための必要か否かを示す「統計量」である点

(相違点2)
本願発明1においては、「前記設計されたプロセッサは、このプロセッサに埋め込まれたROMまたはこのプロセッサに一体化されたROMを備え、このROMは選択されたアプリケーションを備え」ているのに対し、
引用発明においては、そうではない点。

(3)判断
ア 相違点1について
引用文献2には、「プロセッサの初期モデル」が「リソースパラメータ」に基づいて特定されることは開示されていない。
また、上記第1の2(2)のとおり、本願発明1においては、統計量に基づいて、「リソースパラメータの緩和」が想定されているものであるのに対し、このようなことは引用文献2に開示されていない。
さらに、引用文献2には、「リソースパラメータの緩和」を行うために基づく「統計量」について、開示されていない。
したがって、引用発明に引用文献2に開示されている技術を適用して、引用発明において、相違点1の構成にすることは、当業者が容易に想到できたものとは認められない。

イ 相違点2について
引用発明は、特定のアプリケーションを実行するためのプロセッサを設定するものであり、特定用途のプロセッサにおいて、プログラムをプロセッサに一体化したROMに格納することは周知の技術(例えば、特開2007-233990号公報(段落【0011】、図15)、特開2005-100188(段落【0022】?【0026】)、特開2000-349159(段落【0056】)参照)であるから、引用発明における「プロセッサ」を「このプロセッサに埋め込まれたROMまたはこのプロセッサに一体化されたROMを備え、このROMは選択されたアプリケーションを備え」るようにすることは、当業者が容易に想到し得ることである。

ウ さらに、本願発明1と引用文献2に記載された発明とを対比しても、上記(2)の相違点1と同じ相違点があり、この相違点1に係る技術は、引用文献1には開示されていないから、相違点1の構成にすることは、当業者が容易に想到できたものとは認められない。

(4)まとめ
以上のとおりであるから、本願発明1は、引用文献1に記載された発明、引用文献2に記載された発明に基づいて当業者が容易になし得たものとは認められない。

3 本願発明2?6について
本願発明2?6は、請求項1を直接または間接的に引用しており、上記2の本願発明1についてと同じ理由で、引用文献1に記載された発明、引用文献2に記載された発明に基づいて当業者が容易になし得たものとは認められない。

4 本願発明7について
本願発明7は、「プロセッサの設計方法」である本願発明1を、「装置」の発明として、「プロセッサの設計システム」としたものである。上記2と同様な「相違点1」があり、上記2のとおり、その「相違点1」の構成にすることは、当業者が容易に想到できたものとは認められない。
したがって、本願発明7は、引用文献1に記載された発明、引用文献2に記載された発明に基づいて当業者が容易になし得たものとは認められない。

5 本願発明8について
本願発明8は、請求項7を引用しており、上記4の本願発明8についてと同じ理由で、引用文献1に記載された発明、引用文献2に記載された発明に基づいて当業者が容易になし得たものとは認められない。

第4 むすび
以上のとおり、本願の請求項1?8に係る発明は、引用文献1に記載された発明及び引用文献2に記載された発明に基づいて当業者が容易に発明をすることができたものとは認められない。

また、他に本願を拒絶すべき理由を発見しない。

よって、結論のとおり審決する。
 
審決日 2013-11-15 
出願番号 特願2010-531979(P2010-531979)
審決分類 P 1 8・ 121- WY (G06F)
最終処分 成立  
前審関与審査官 早川 学  
特許庁審判長 渡邊 聡
特許庁審判官 小池 正彦
清水 正一
発明の名称 プロセッサの設計方法および設計システム  
代理人 永井 冬紀  
代理人 網屋 美湖  

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