(57)【特許請求の範囲】
【請求項１】
インタフェース回路の種類に対応付けて、データ転送能力を算出するための算出式が記述されるインタフェース転送能力情報を記憶する記憶部と、
複数の演算処理の実行を分担する複数の演算機器を接続するインタフェース回路として複数のインタフェース回路の中から指定された指定インタフェース回路の種類に対応する算出式を前記インタフェース転送能力情報から取得し、取得した算出式を用いて、前記指定インタフェース回路のデータ転送能力を算出する転送能力算出部とを有する情報処理装置。
【請求項２】
前記記憶部は、
インタフェース回路の種類と演算機器の種類との組合せに対応付けて前記算出式が記述されるインタフェース転送能力情報を記憶し、
前記転送能力算出部は、
前記指定インタフェース回路の種類と前記複数の演算機器のうちのいずれかの演算機器の種類との組合せに対応する算出式を前記インタフェース転送能力情報から取得する請求項１に記載の情報処理装置。
【請求項３】
前記情報処理装置は、更に、
前記複数の演算処理の実行を前記複数の演算機器で分担する際に前記複数の演算機器の間で転送されるデータ量を推定し、推定したデータ量を前記指定インタフェース回路を介して転送する際のデータ転送時間を、前記転送能力算出部により算出された前記指定インタフェース回路のデータ転送能力に基づき算出する転送時間算出部を有する請求項１に記載の情報処理装置。
【請求項４】
前記情報処理装置は、更に、
前記複数の演算機器による前記複数の演算処理の分担パターンを複数生成する分担パターン生成部を有し、
前記転送時間算出部は、
分担パターンごとに、前記複数の演算処理の実行を前記複数の演算機器で分担する際に前記複数の演算機器の間で転送されるデータ量を推定し、
分担パターンごとに、推定したデータ量を前記指定インタフェース回路を介して転送する際のデータ転送時間を算出する請求項３に記載の情報処理装置。
【請求項５】
前記分担パターン生成部は、
前記複数の演算機器による前記複数の演算処理の分担パターンをハードウェア／ソフトウェア分割により複数生成する請求項４に記載の情報処理装置。
【請求項６】
前記転送能力算出部は、
取得した算出式にパラメータ値を適用して、前記指定インタフェース回路のデータ転送能力を算出し、
前記情報処理装置は、更に、
前記転送時間算出部により算出されたデータ転送時間と、データ転送についての制約時間とを比較する時間比較部と、
前記時間比較部による比較の結果、前記データ転送時間が前記制約時間以下である場合に、前記パラメータ値を評価情報として出力する評価情報出力部とを有する請求項３に記載の情報処理装置。
【請求項７】
前記転送能力算出部は、
前記時間比較部による比較の結果、前記データ転送時間が前記制約時間を超える場合に、前記パラメータ値と異なる代替パラメータ値を前記算出式に適用して、前記指定インタフェース回路のデータ転送能力を代替データ転送能力として算出し、
前記転送時間算出部は、
前記転送能力算出部により算出された前記代替データ転送能力に基づくデータ転送時間を算出し、
前記時間比較部は、
前記転送時間算出部により前記代替データ転送能力に基づいて算出されたデータ転送時間と前記制約時間とを比較する請求項６に記載の情報処理装置。
【請求項８】
前記情報処理装置は、更に、
分担パターンごとに、前記転送時間算出部により算出されたデータ転送時間と、データ転送についての制約時間とを比較し、データ転送時間が前記制約時間以下である分担パターンを出力する時間比較部を有する請求項４に記載の情報処理装置。
【請求項９】
インタフェース回路の種類に対応付けて、データ転送能力を算出するための算出式が記述されるインタフェース転送能力情報を記憶するコンピュータが、
複数の演算処理の実行を分担する複数の演算機器を接続するインタフェース回路として複数のインタフェース回路の中から指定された指定インタフェース回路の種類に対応する算出式を前記インタフェース転送能力情報から取得し、取得した算出式を用いて、前記指定インタフェース回路のデータ転送能力を算出する情報処理方法。
【請求項１０】
インタフェース回路の種類に対応付けて、データ転送能力を算出するための算出式が記述されるインタフェース転送能力情報を記憶するコンピュータに、
複数の演算処理の実行を分担する複数の演算機器を接続するインタフェース回路として複数のインタフェース回路の中から指定された指定インタフェース回路の種類に対応する算出式を前記インタフェース転送能力情報から取得する処理と、取得した算出式を用いて、前記指定インタフェース回路のデータ転送能力を算出する処理とを実行させる情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法及び情報処理プログラムに関する。
【背景技術】
【０００２】
例えば、組込みシステムの設計では、組込みシステムに要求される制約条件（性能、サイズ、コスト等）を満たすように部品が選定される。そして、組込みシステムに要求される演算処理が各部品に割り振られる。一般的には、演算処理量が多く、部品の性能を逼迫する演算処理がハードウェア又はソフトウェアの高速処理が可能なプロセッサに割り振られる。ハードウェアは、例えば、ＦＰＧＡ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）である。また、ソフトウェアの高速処理が可能なプロセッサは、例えば、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）、ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）等である。また、逐次処理や全体制御等が他の種類のプロセッサに割り振られる。逐次処理や全体制御等は、例えば、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）に割り振られる。
しかし、制約条件によってコストを安く抑えることが最優先に求められるような場合は、演算処理量が多い演算処理が、高速なインタフェース回路に対応していないＣＰＵに割り振られることがある。このような場合は、演算処理量のみでは演算処理の割り振りを決定できない。つまり、このような場合は、演算処理の割り振りに、インタフェース回路のデータ転送能力を考慮する必要がある。【０００３】
特許文献１では、ハードウェアとソフトウェアを実行するプロセッサとの間でデータの受け渡しを行うインタフェース回路の影響を評価する技術が開示されている。
より具体的には、特許文献１の技術では、インタフェース回路に接続されている演算機器（ハードウェア及びプロセッサ）のレイテンシ及びプロトコルタイプ（ハンドシェイク型かキュー型）が示されるインタフェース回路情報が読み込まれる。そして、特許文献１の技術では、インタフェース回路の接続先となる演算機器から結果が得られるまでの時間及びデータ投入サイクルがモデル情報として生成され、ハードウェアとソフトウェアの分割が制約を満足するかどうかがチェックされる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０００−５７１９９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
インタフェース回路のデータ転送性能は、インタフェース回路の種類ごとに、接続されるＣＰＵ等の種類や、レジスタ設定によって変化する。このため、接続先の演算機器のレイテンシや、プロトコルタイプがハンドシェイク型かキュー型かの情報だけでは不十分である。つまり、インタフェース回路のデータ転送能力を算出するためには、インタフェース回路情報をインタフェース回路の種類ごとに変える必要があり、ユーザが、インタフェース回路の種類ごとに、インタフェース回路のデータ転送能力の算出に必要な情報を与える必要がある。
このように、特許文献１では、ユーザがインタフェース回路の種類ごとに、インタフェース回路の転送能力を算出するための情報を設定しなければならず、利便性を欠くという課題がある。【０００６】
本発明は、このような課題を解決することを主な目的の一つとしている。より具体的には、ユーザがインタフェース回路の種類ごとに設定を行わなくてもインタフェース回路の転送能力を算出することができる構成を得ることを主な目的とする。
【課題を解決するための手段】
【０００７】
本発明に係る情報処理装置は、
インタフェース回路の種類に対応付けて、データ転送能力を算出するための算出式が記述されるインタフェース転送能力情報を記憶する記憶部と、
複数の演算処理の実行を分担する複数の演算機器を接続するインタフェース回路として複数のインタフェース回路の中から指定された指定インタフェース回路の種類に対応する算出式を前記インタフェース転送能力情報から取得し、取得した算出式を用いて、前記指定インタフェース回路のデータ転送能力を算出する転送能力算出部とを有する。
【発明の効果】
【０００８】
本発明によれば、ユーザがインタフェース回路の種類ごとに設定を行わなくてもインタフェース回路の転送能力を算出することができる。
【図面の簡単な説明】
【０００９】
【図１】実施の形態１に係る情報処理装置の機能構成例を示す図。
【図２】実施の形態１に係るアーキテクチャ情報の記述例を示す図。
【図３】実施の形態１に係る機能モデルの動作記述例を示す図。
【図４】実施の形態１に係る制約条件の記述例を示す図。
【図５】実施の形態１に係るインタフェース転送能力情報の例を示す図。
【図６】実施の形態１に係る分割最終候補の記述例を示す図。
【図７】実施の形態１に係る情報処理装置のハードウェア構成例を示す図。
【図８】実施の形態１に係る情報処理装置の動作例を示すフローチャート。
【発明を実施するための形態】
【００１０】
以下、本発明の実施の形態について、図を用いて説明する。以下の実施の形態の説明及び図面において、同一の符号を付したものは、同一の部分または相当する部分を示す。
【００１１】
実施の形態１．
＊＊＊構成の説明＊＊＊
図１は、本実施の形態に係る情報処理装置１の機能構成例を示す。
また、図７は、本実施の形態に係る情報処理装置１のハードウェア構成例を示す。
なお、情報処理装置１により行われる動作は、情報処理方法及び情報処理プログラムに相当する。
【００１２】
最初に、図７を参照して情報処理装置１のハードウェア構成例を説明する。
【００１３】
本実施の形態に係る情報処理装置１は、コンピュータである。
情報処理装置１は、ハードウェアとして、プロセッサ９０１、メモリ９０２、記憶装置９０３、入力装置９０４及び出力装置９０５を備える。
記憶装置９０３には、図１に示す分割候補生成部２、転送時間評価部３、演算時間算出部４、制約時間算出部５、分割決定部６及び評価情報出力部８の機能を実現するプログラムが記憶されている。
これらプログラムは記憶装置９０３からメモリ９０２にロードされる。そして、プロセッサ９０１がこれらプログラムをメモリ９０２から読み出す。プロセッサ９０１は、これらプログラムを実行して、後述する分割候補生成部２、転送時間評価部３、演算時間算出部４、制約時間算出部５、分割決定部６及び評価情報出力部８の動作を行う。
図７では、プロセッサ９０１が分割候補生成部２、転送時間評価部３、演算時間算出部４、制約時間算出部５、分割決定部６及び評価情報出力部８の機能を実現するプログラムを実行している状態を模式的に表している。
また、記憶装置９０３は、図１に示すデータベース７を構成する。すなわち、記憶装置９０３は、インタフェース転送能力情報を格納する。
入力装置９０４は、後述するアーキテクチャ情報９、機能モデル１０及び制約条件１１の入力に用いられる。
記憶装置９０３内のインタフェース転送能力情報は、キーボード等の入力装置９０４から書き換えることが可能である。また、インタフェース転送能力情報は、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）メモリ等を用いて入れ替えることが可能である。
出力装置９０５は、後述する分割最終候補１２及び評価情報１３を出力する。
【００１４】
次に、図１を参照して、情報処理装置１の機能構成例を説明する。
情報処理装置１は、分割候補生成部２、転送時間評価部３、演算時間算出部４、制約時間算出部５、分割決定部６、データベース７及び評価情報出力部８から構成される。
【００１５】
分割候補生成部２は、アーキテクチャ情報９及び機能モデル１０を取得する。
機能モデル１０は、Ｃ、Ｃ＋＋等のプログラム記述言語で記述されたプログラムである。機能モデル１０には、複数の演算処理が含まれる。
アーキテクチャ情報９には、機能モデル１０を実行するシステム（例えば、組込みシステム）に含まれる演算機器、メモリ、インタフェース回路の種類及び接続関係等が記述されている。演算機器には、ＦＰＧＡ、ＡＳＩＣ等のハードウェアと、ＤＳＰ、ＧＰＵ及びＣＰＵ等のソフトウェアを実行するプロセッサが含まれる。
分割候補生成部２は、アーキテクチャ情報９を参照して、機能モデル１０内のどの演算処理をソフトウェア、ハードウェアに割り当てるかの分割候補を生成する。つまり、分割候補生成部２は、複数の演算機器による複数の演算処理の分担パターンをハードウェア／ソフトウェア分割により複数生成する。なお、分割候補生成部２が生成する分担パターンを、以下、分割候補という。
図２は、アーキテクチャ情報９の記述例を示す。図３は、機能モデル１０の動作記述例を示す。
図２及び図３の詳細は後述する。
分割候補生成部２は、分担パターン生成部に相当する。
【００１６】
転送時間評価部３は、データベース７からインタフェース転送能力情報を取得する。
図５は、インタフェース転送能力情報の例を示す。図５の詳細は後述するが、インタフェース転送能力情報には、インタフェース回路の種類と演算機器の種類との組合せに対応付けて、データ転送能力を算出するための算出式が記述される。
転送時間評価部３は、アーキテクチャ情報９において指定されているインタフェース回路の種類と演算機器の種類との組み合わせに対応する算出式をインタフェース転送能力情報から取得する。なお、アーキテクチャ情報９において指定されているインタフェース回路を指定インタフェース回路という。
転送時間評価部３は、取得した指定インタフェース回路の算出式を用いて指定インタフェース回路のデータ転送能力を算出する。
また、転送時間評価部３は、分割候補ごとに、複数の演算処理の実行を複数の演算機器で分担する際に複数の演算機器の間で転送されるデータ量を推定する。更に、転送時間評価部３は、分割候補ごとに、推定したデータ量を指定インタフェース回路を介して転送する際のデータ転送時間を、算出した指定インタフェース回路の転送能力に基づき算出する。
転送時間評価部３は、転送能力算出部及び転送時間算出部に相当する。
【００１７】
演算時間算出部４は、分割候補ごとに、複数の演算機器の各々での演算時間を算出する。
【００１８】
制約時間算出部５は、制約条件１１を取得する。
制約条件１１には、全体要求性能が示される。全体要求性能は、機能モデル１０を実行するシステムに要求される処理時間が示される。
図４は、制約条件１１の記述例を示す。図４の詳細は後述する。
制約時間算出部５は、分割候補ごとに、制約条件１１に示される全体要求性能から、演算時間算出部４で算出された演算時間を差し引いて、データ転送についての制約時間を算出する。
【００１９】
分割決定部６は、転送時間評価部３で算出された分割候補のデータ転送時間と、制約時間算出部５で算出した制約時間とを比較する。
分割決定部６は、時間比較部に相当する。
【００２０】
データベース７は、インタフェース転送能力情報を格納する。
データベース７は記憶部に相当する。
【００２１】
＊＊＊動作の説明＊＊＊
次に、図８を参照して、本実施の形態に係る情報処理装置１の動作例を説明する。
【００２２】
まず、分割候補生成ステップ（ステップＳ１）について説明する。
分割候補生成ステップ（ステップＳ１）では、分割候補生成部２が、アーキテクチャ情報９に基づき分割候補を生成する。すなわち、分割候補生成部２は、ソフトウェアに割り当てる演算処理及びハードウェアに割り当てる演算処理の組み合わせを複数生成する。ソフトウェアに割り当てる演算処理及びハードウェアに割り当てる演算処理の組み合わせが分割候補に相当する。
分割候補生成部２は、考え得る全通りの組合せを分割候補として生成してもよいし、データベース等から経験的に規定数の分割候補を生成するようにしてもよい。
分割候補生成部２は、例えば関数単位で機能モデル１０を分割する。また、分割候補生成部２は、関数単位だけでなく、関数を展開してｆｏｒ文等ループを分割単位にして機能モデル１０を分割してもよい。
【００２３】
次に、データ転送時間評価ステップ（ステップＳ２）について説明する。
データ転送時間評価ステップ（ステップＳ２）では、転送時間評価部３が、アーキテクチャ情報９を参照して、機能モデル１０を実行するシステムに含まれるインタフェース回路を特定する。転送時間評価部３が特定したインタフェース回路は指定インタフェース回路に相当する。また、転送時間評価部３は、アーキテクチャ情報９を参照して、機能モデル１０を実行するシステムに含まれる演算機器を特定する。
更に、転送時間評価部３は、データベース７に格納されているインタフェース転送能力情報を参照する。転送時間評価部３は、インタフェース転送能力情報から、指定インタフェース回路の種類と演算機器の種類の組合せに対応する算出式を取得する。そして、転送時間評価部３は、取得した算出式を用いて、指定インタフェース回路のデータ転送能力を算出する。
また、転送時間評価部３は、分割候補生成部２から得た分割候補について、機能モデル１０を用いて各分割点の入出力変数が通るインタフェース機器のルートを割り出す。そして、転送時間評価部３は、そのインタフェース機器を経由する全変数の総転送ビット数を算出する。なお、分割点とは、機能モデル１０の分割により得られたプログラムコードのブロックである。
更に、転送時間評価部３は、分割候補ごとに、指定インタフェース回路のデータ転送能力と総転送ビット数から指定インタフェース回路のデータ転送時間を算出する。また、転送時間評価部３は、指定インタフェース回路のデータ転送時間の算出に用いた条件を出力する。
【００２４】
次に、演算時間見積もりステップ（ステップＳ３）について説明する。
演算時間見積もりステップ（ステップＳ３）では、演算時間算出部４が、分割候補生成部２から得た分割候補について、機能モデル１０とアーキテクチャ情報９から各演算処理の処理時間を演算時間として見積もる。なお、この演算時間にはデータ転送に要する時間は含まれない。演算時間算出部４は、例えば、機能モデル１０の記述を解析し、データベース７等を照会して各演算処理の演算時間を静的に見積もる。また、演算時間算出部４は、機能モデル１０を用いたシミュレーションを行って、演算処理の演算時間を動的に見積もってもよい。
【００２５】
次に、制約時間算出ステップ（ステップＳ４）について説明する。
制約時間算出ステップ（ステップＳ４）では、制約時間算出部５が、分割候補生成部２から得た分割候補の各変数のルートについて、制約条件１１に示される全体要求性能から、演算時間算出部４で見積もられた演算時間を差し引いて、データ転送についての制約時間を算出する。
【００２６】
次に、評価情報出力ステップ（ステップＳ５）について説明する。
評価情報出力ステップ（ステップＳ５）では、評価情報出力部８が、評価情報１３を出力する。
評価情報１３には、転送時間評価部３にてデータ転送時間を評価する際に用いた評価条件、および、評価結果等が含まれる。
【００２７】
次に、分割決定ステップ（ステップＳ６）について説明する。
分割決定ステップ（ステップＳ６）では、分割決定部６が、転送時間評価部３で算出された分割候補のデータ転送時間と、制約時間算出部５で算出した制約時間とを比較する。データ転送時間が制約時間を超えている場合は、分割決定部６は、転送時間評価部３にデータ転送時間が制約時間を超えている度合いを通知する。
【００２８】
転送時間評価部３は、分割決定部６からデータ転送時間が制約時間を超えていることが通知されると、同じ分割候補において、指定インタフェース回路の設定変更により制約時間が満たせるかどうかを探索する。
つまり、転送時間評価部３は、指定インタフェース回路の転送能力情報が図５の１行目のように算出式である場合は、前回のデータ転送能力の算出に用いたパラメータ値と異なるパラメータ値（以下、代替パラメータ値という）を算出式に適用する。この結果、転送時間評価部３は、指定インタフェース回路のデータ転送能力として新たなデータ転送能力を得る。以下、この新たなデータ転送能力を代替データ転送能力という。そして、転送時間評価部３は、代替データ転送能力に基づくデータ転送時間を算出する。
算出した代替データ転送能力に基づくデータ転送時間が制約時間以下であれば、転送時間評価部３は、当該データ転送時間を分割決定部６に通知する。
また、算出した代替データ転送能力に基づくデータ転送時間が制約時間を超える場合は、転送時間評価部３は、更に、異なるパラメータを算出式に適用して、更なる代替データ転送能力を得る。また、転送時間評価部３は、更なる代替データ転送能力に基づくデータ転送時間を算出する。制約時間以下のデータ転送時間が得られなかった場合は、転送時間評価部３は、算出した複数のデータ転送時間の中で最短のデータ転送時間を分割決定部６に通知する。
【００２９】
分割決定部６は、データ転送時間が制約時間以下の分割候補を分割最終候補のひとつとして残す。
分割決定部６は、データ転送時間が制約時間を超える分割候補は分割最終候補から除外する。分割決定部６は、最終的に残った分割候補の全てを分割最終候補１２として出力してもよいし、最もデータ転送時間が短い分割候補のみを分割最終候補１２として出力してもよい。
【００３０】
（分割手順例１）
次に、図２、図３、図４及び図５を用いて、本実施の形態に係る情報処理装置１が分割最終候補１２を得る手順を説明する。
前述したように、図２は、アーキテクチャ情報９の記述例である。
また、図３は、機能モデル１０の動作記述例である。
また、図４は、制約条件１１の記述例である。
また、図５は、データベース７に格納されているインタフェース転送能力情報の例である。
また、図６は、情報処理装置１によって得られる分割最終候補１２の記述例である。
【００３１】
図２のアーキテクチャ情報９には、機能モデル１０を実行するシステムにＣＰＵ０（型番がＡ１２３４５６）とＦＰＧＡ０（型番がＦ９８７６５４）が備わっていることが示されている。また、図２のアーキテクチャ情報９には、ＣＰＵ０は２０ＭＨｚで動作することが示される。また、図２のアーキテクチャ情報９には、ＦＰＧＡ０は１００ＭＨｚで動作することが示される。また、図２のアーキテクチャ情報９には、ＣＰＵ０とＦＰＧＡ０を接続するインタフェース回路がＢＵＳ０であることが示される。また、図２のアーキテクチャ情報９には、ＢＵＳ０がＳＰＩ（Ｓｅｒｉａｌ  Ｐｅｒｉｐｈｅｒａｌ  Ｉｎｔｅｒｆａｃｅ）であることが示される。ＢＵＳ０は指定インタフェース回路に相当する。
【００３２】
図４の制約条件１１には、機能モデル１０の実行時間、すなわち機能モデル１０を実行するシステムの処理性能が４０μｓｅｃであることが示されている。
【００３３】
図５のインタフェース転送能力情報には、インタフェース回路の種類ごとに、設定条件と、データ転送能力が示される。
図５において、ビット幅、周波数、接続機器、パラメータ１（ｐｒｍ１）、パラメータ２（ｐｒｍ２）の欄に記載される値が設定条件である。また、データ転送能力の欄には、データ転送能力を算出するための算出式又はデータ転送能力の値が示される。
図５の１行目では、インタフェース回路の種類（ＳＰＩ）と演算機器の種類（型番：Ａ１２３４５６）の組合せに対応付けて、データ転送能力を算出するための算出式が記述されている。
【００３４】
分割候補生成部２は、図２のアーキテクチャ情報９と、図４の制約条件１１と、図３の機能モデル１０が入力されると、機能モデル１０の分割候補を生成する。すなわち、分割候補生成部２は、ＣＰＵ０で実行させるブロックとＦＰＧＡ０で実行させるブロックの組合せの候補を複数生成する。
例えば、分割候補生成部２は、動作記述のトップ記述である関数ｔｏｐ（）のうち、関数ｆｕｎｃ（）全体をＦＰＧＡ０に実行させる分割候補１を生成する。更に、分割候補生成部２は、関数ｆｕｎｃ（）内の動作記述（２）のｆｏｒ文のみをＦＰＧＡ０に実行させる分割候補２を生成する。
【００３５】
転送時間評価部３は、図２のアーキテクチャ情報９を参照して、ＣＰＵ０とＦＰＧＡ０との間のインタフェース回路であるＢＵＳ０の種類がＳＰＩであると認識する。また、転送時間評価部３は、ＣＰＵ０の型番がＡ１２３４５６であることから、インタフェース転送能力情報から、図５の１行目のＳＰＩのデータ転送能力の欄に記載の算出式を取得する。つまり、転送時間評価部３は、「＝ｆ／｛２＊（ｐｒｍ１＋１）＊（２＾ｐｒｍ２）｝」を取得する。
仮に周波数ｆ＝２０ＭＨｚ、ｐｒｍ１＝３、ｐｒｍ２＝０が与えられたとすると、転送時間評価部３は、ＢＵＳ０（ＳＰＩ）のデータ転送能力として、２０ＭＨｚ／｛２＊（３＋１）＊２＾０＝２．５Ｍｂｐｓを得る。
【００３６】
次に、転送時間評価部３は、分割候補生成部２で生成された分割候補１と、分割候補２について、それぞれデータ転送時間の評価を行う。
【００３７】
（分割候補１のデータ転送時間の評価）
分割候補１では、関数ｆｕｎｃ全体をハードウェア化するため、ハードウェアへの入出力変数は、ｏｕｔＥ、ｉｎＡ、ｉｎＢ、ｉｎＣ、ｉｎＤである。関数ｆｕｎｃを１回実行するためには、ＣＰＵ０とＦＰＧＡ０との間でＢＵＳ０（ＳＰＩ）を介して、ｏｕｔＥ＝３０ビット、ｉｎＡ＝１２ビット、ｉｎＢ＝１２ビット、ｉｎＣ＝１２ビット、ｉｎＤ＝１５ビットの総ビット数＝８１ビット分の転送を行う必要がある。転送時間評価部３は、分割候補１に従って機能モデル１０の実行をＣＰＵ０とＦＰＧＡ０とで分担させる場合に、ＣＰＵ０からＦＰＧＡ０に８１ビットのデータが転送されると推定する。ＳＰＩのデータ転送能力が２．５Ｍｂｐｓであるので、転送時間評価部３は、以下のデータ転送時間を得る。
８１ビット÷２．５Ｍｂｐｓ＝３２．４μｓｅｃ
【００３８】
（分割候補２のデータ転送時間の評価）
分割候補２では、動作記述（２）をハードウェア化するため、ハードウェアへの入出力変数は、ｏｕｔＥ、ｉｎＤ、ｔｅｍｐである。動作記述（２）を１回実行するためには、ＣＰＵ０とＦＰＧＡ０との間でＳＰＩを介して、ｉｎＤ＝１５ビット、ｔｅｍｐ＝１５ビット、ｏｕｔＥ＝３０ビットの総ビット数＝６０ビット分の転送を行う必要がある。転送時間評価部３は、分割候補２に従って機能モデル１０の実行をＣＰＵ０とＦＰＧＡ０とで分担させる場合に、ＣＰＵ０からＦＰＧＡ０に６０ビットのデータが転送されると推定する。ＳＰＩのデータ転送能力が２．５Ｍｂｐｓであるので、転送時間評価部３は、以下のデータ転送時間を得る。
６０ビット÷２．５Ｍｂｐｓ＝２４．０μｓｅｃ
【００３９】
次に、演算時間算出部４は、分割候補１及び分割候補２のそれぞれの演算時間を算出する。
分割候補１と分割候補２との差が動作記述（１）の部分をハードウェアで実行するか、ソフトウェアで実行するかのみであるため、ここでは、動作記述（１）の演算時間の見積もりのみを説明するが、実際には、演算時間算出部４は、機能モデル１０の全ての部分について演算時間を見積もる。
【００４０】
（分割候補１の演算時間の見積）
動作記述（１）をハードウェアで実行する際のサイクル数＝１サイクルである。また、ＦＰＧＡ０は１００ＭＨｚで動作する。このため、演算時間算出部４は、分割候補１の動作記述（１）の演算時間として、１０ｎｓｅｃを得る。
【００４１】
（分割候補２の演算時間の見積）
動作記述（１）をソフトウェアで実行する際のサイクル数＝４サイクルである。また、ＣＰＵ０は２０ＭＨｚで動作する。このため、演算時間算出部４は、分割候補２の動作記述（１）の演算時間として、５０ｎｓｅｃ＊４＝２００ｎｓｅｃを得る。
【００４２】
機能モデル１０の他の部分については、分割候補１、分割候補２に共通して、ソフトウェアとハードウェアの合計で３２μｓｅｃかかるものとする。
【００４３】
次に、制約条件１１に全体の処理時間が４０μｓｅｃと指定されていることから、制約時間算出部５が、各分割候補のデータ転送についての制約時間を以下のように算出する。
（分割候補１の制約時間）
４０μｓｅｃ−（３２μｓｅｃ＋１０ｎｓｅｃ）＝７．９９μｓｅｃ
（分割候補２の制約時間）
４０μｓｅｃ−（３２μｓｅｃ＋２００ｎｓｅｃ）＝７．８０μｓｅｃ
【００４４】
次に、分割決定部６が、転送時間評価部３が算出したデータ転送時間と、制約時間算出部５が算出した制約時間とを比較する。そして、分割決定部６は、各分割候補のデータ転送時間が制約時間以下であるか否かを判定する。
分割候補１のデータ転送時間と制約時間及び分割候補２のデータ転送時間と制約時間は、以下の通りである。
分割候補１のデータ転送時間＝３２．４μｓｅｃ
分割候補１の制約時間＝７．９９μｓｅｃ
分割候補２のデータ転送時間＝２４．０μｓｅｃ
分割候補２の制約時間＝７．８０μｓｅｃ
【００４５】
分割候補１及び分割候補２のいずれにおいても、データ転送時間は制約時間を超えている。
このため、分割決定部６は、分割候補１の場合、現在の指定インタフェース回路（ＢＵＳ０）の４．０６倍（＝３２．４μｓｅｃ÷７．９９μｓｅｃ）以上のデータ転送能力が必要であることを転送時間評価部３に通知する。また、分割決定部６は、分割候補２の場合、現在の指定インタフェース回路（ＢＵＳ０）の３．０８倍（＝２４．０μｓｅｃ÷７．８０μｓｅｃ）以上のデータ転送能力が必要であることを転送時間評価部３に通知する。
【００４６】
次に、転送時間評価部３は、指定インタフェース回路において、必要なデータ転送能力を実現できる設定を探索する。
探索の結果、転送時間評価部３は、分割候補１の場合は、４．０６倍以上のデータ転送能力、すなわち、指定インタフェース回路のデータ転送能力を１０．１５Ｍｂｐｓにできる設定がないと判定する（ｐｒｍ１＝１、ｐｒｍ２＝０としても、データ転送能力は１０Ｍｂｐｓまでしか向上されない）。
一方、転送時間評価部３は、分割候補２の場合は、ｐｒｍ１＝１、ｐｒｍ２＝０とすれば、指定インタフェース回路のデータ転送能力は１０Ｍｂｐｓとなり、必要なデータ転送能力（２．５Ｍｂｐｓ＊３．０８＝７．７Ｍｂｐｓ）を実現できると判定する。
このため、転送時間評価部３は、以下のデータ転送時間を分割決定部６に出力する。
分割候補１のデータ転送時間＝８１ビット÷１０Ｍｂｐｓ＝８．１μｓｅｃ
分割候補２のデータ転送時間＝６０ビット÷１０Ｍｂｐｓ＝６．０μｓｅｃ
また、転送時間評価部３は、インタフェース評価条件としてｐｒｍ１＝１、ｐｒｍ２＝０を評価情報出力部８に出力する。なお、ｐｒｍ１＝１及びｐｒｍ２＝０は、代替パラメータ値に相当する。
【００４７】
分割決定部６は、転送時間評価部３で算出したデータ転送時間と、制約時間算出部５で算出した制約時間とを再度比較する。そして、分割決定部６は、各分割候補のデータ転送時間が制約時間以下であるか否かを判定する。
分割候補１のデータ転送時間と制約時間及び分割候補２のデータ転送時間と制約時間は、以下の通りである。
分割候補１のデータ転送時間＝８．１μｓｅｃ
分割候補１の制約時間＝７．９９μｓｅｃ
分割候補２のデータ転送時間＝６．０μｓｅｃ
分割候補２の制約時間＝７．８０μｓｅｃ
【００４８】
この例では、分割候補２のみ、データ転送時間が制約時間以下となるので、分割決定部６は、分割候補２のみを分割最終候補１２として出力する。つまり、分割決定部６は、図６のような分割最終候補１２を出力する。
【００４９】
＊＊＊実施の形態の効果の説明＊＊＊
本実施の形態では、インタフェース回路の種類に対応付けてデータ転送能力の算出式が用意されている。そして、本実施の形態では、転送時間評価部３が、指定インタフェース回路の種類に対応する算出式を用いて、指定インタフェース回路のデータ転送能力を算出する。このため、本実施の形態によれば、ユーザがインタフェース回路の種類ごとに設定を行わなくてもインタフェース回路の転送能力を算出することができる。
また、本実施の形態では、評価情報出力部８が制約条件を満たす設定を探索し、制約条件を満たす設定を評価情報として出力する。このため、ユーザが設定情報を都度変更しながらインタフェース回路を探索する必要がなくなる。この結果、本実施の形態によれば、データ転送能力を考慮したハードウェア／ソフトウェア分割を効率的に求めることができる。
【００５０】
＊＊＊ハードウェア構成の説明＊＊＊
最後に、情報処理装置１のハードウェア構成の補足説明を行う。
図７に示すプロセッサ９０１は、プロセッシングを行うＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）である。プロセッサ９０１は、ＣＰＵ、ＤＳＰ等である。
図７に示すメモリ９０２は、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）である。図７に示す記憶装置９０３は、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、フラッシュメモリ、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）等である。
【００５１】
また、記憶装置９０３には、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）も記憶されている。
そして、ＯＳの少なくとも一部がメモリ９０２にロードされ、プロセッサ９０１により実行される。
プロセッサ９０１はＯＳの少なくとも一部を実行しながら、分割候補生成部２、転送時間評価部３、演算時間算出部４、制約時間算出部５、分割決定部６及び評価情報出力部８の機能を実現するプログラムを実行する。
プロセッサ９０１がＯＳを実行することで、タスク管理、メモリ管理、ファイル管理、通信制御等が行われる。
また、分割候補生成部２、転送時間評価部３、演算時間算出部４、制約時間算出部５、分割決定部６及び評価情報出力部８の処理の結果を示す情報、データ、信号値及び変数値の少なくともいずれかが、メモリ９０２、記憶装置９０３、プロセッサ９０１内のレジスタ及びキャッシュメモリの少なくともいずれかに記憶される。
また、分割候補生成部２、転送時間評価部３、演算時間算出部４、制約時間算出部５、分割決定部６及び評価情報出力部８の機能を実現するプログラムは、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ（登録商標）ディスク、ＤＶＤ等の可搬記憶媒体に記憶されてもよい。
【００５２】
また、分割候補生成部２、転送時間評価部３、演算時間算出部４、制約時間算出部５、分割決定部６及び評価情報出力部８の「部」を、「回路」又は「工程」又は「手順」又は「処理」に読み替えてもよい。
また、情報処理装置１は、ロジックＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）、ＧＡ（Ｇａｔｅ  Ａｒｒａｙ）、ＡＳＩＣ、ＦＰＧＡといった電子回路により実現されてもよい。
この場合は、分割候補生成部２、転送時間評価部３、演算時間算出部４、制約時間算出部５、分割決定部６及び評価情報出力部８は、それぞれ電子回路の一部として実現される。
なお、プロセッサ及び上記の電子回路を総称してプロセッシングサーキットリーともいう。
【符号の説明】
【００５３】
１  情報処理装置、２  分割候補生成部、３  転送時間評価部、４  演算時間算出部、５  制約時間算出部、６  分割決定部、７  データベース、８  評価情報出力部、９  アーキテクチャ情報、１０  機能モデル、１１  制約条件、１２  分割最終候補、１３  評価情報。
【図１】
0006580288.tif 000002
【図２】
0006580288.tif 000003
【図３】
0006580288.tif 000004
【図４】
0006580288.tif 000005
【図５】
0006580288.tif 000006
【図６】
0006580288.tif 000007
【図７】
0006580288.tif 000008
【図８】
0006580288.tif 000009