(57)【要約】【課題】割り当て時間の短縮されたソフトウエアハードウエア割り当て装置、ソフトウエアハードウエア割り当て方法、および、ソフトウエアハードウエア割り当てプログラムを提供する。【解決手段】複数の分割要素をユーザが結線することで機能モデルを作成するための情報の記憶されたデータベースと、機能モデルと制約条件に対して、制約条件を満たすように機能モデルの分割要素のいずれをソフトウエア若しくはハードウエアに割り当てるかを探索する分割解探索部と、を有する。データベースには、分割要素の情報として、ソフトウエア固有のソフト情報、ハードウエア固有のハード情報、および、ソフトウエアとハードウエアそれぞれの処理時間が記憶され、制約条件として、ソフト情報を制約するソフト制約条件、ハード情報を制約するハード制約条件、および、処理時間を制約する制約時間がある。【選択図】図５
2016212674.tif 000002
【特許請求の範囲】
【請求項１】
機能モデルを構成する複数の分割要素それぞれを表す記号をユーザが適宜選択して結線することで、ユーザが前記機能モデルを作成するための情報の記憶されたデータベース（２０）と、
ユーザが作成した前記機能モデル、および、ユーザが定めた制約条件に対して、前記制約条件を満たすように前記機能モデルを構成する複数の前記分割要素の内のいずれをソフトウエア若しくはハードウエアに割り当てるかを探索する分割解探索部（１２）と、を有し、
前記データベースには、前記分割要素の情報として、前記ソフトウエア固有のソフト情報、前記ハードウエア固有のハード情報、および、前記ソフトウエアと前記ハードウエアそれぞれの処理時間が記憶され、
前記制約条件として、前記ソフト情報を制約するソフト制約条件、前記ハード情報を制約するハード制約条件、および、前記処理時間を制約する制約時間があるソフトウエアハードウエア割り当て装置。
【請求項２】
前記分割解探索部は、
前記機能モデルの内、分割対象となる全ての前記分割要素を前記ソフトウエアに設定した仮モデルを生成するソフト化処理を行うソフト化手段と、
前記仮モデルの性能を計算する性能計算処理を行う性能計算手段と、
前記仮モデルの性能が前記制約条件を満たすか否かを判定する第１判定処理を行う第１判定手段と、
前記仮モデルの性能が前記制約条件を満たさない場合、前記仮モデルの性能が前記ハード制約条件を超えたか否かを判定する第２判定処理を行う第２判定手段と、
前記仮モデルの性能の内の前記ハード情報に関わるハード性能が前記ハード制約条件を超えていない場合、前記制約条件と前記分割要素の情報とに基づいて、前記ソフトウエアに設定された複数の前記分割要素の内の少なくとも１つを前記ハードウエアに設定して新たな前記仮モデルを生成するハード化処理を行うハード化手段と、を有し、
前記第１判定手段が前記仮モデルは前記制約条件を満たすと判定する、若しくは、前記第２判定手段が前記仮モデルは前記ハード制約条件を超えると判定するまで、前記性能計算手段、前記第１判定手段、前記第２判定手段、および、前記ハード化手段は、前記性能計算処理、前記第１判定処理、前記第２判定処理、および、前記ハード化処理を繰り返す請求項１に記載のソフトウエアハードウエア割り当て装置。
【請求項３】
前記第１判定手段は、前記第１判定処理において前記仮モデルが前記制約条件を満たすと判定すると、前記機能モデルの前記ソフトウエアと前記ハードウエアの割り当てが成功したと判定し、
前記第２判定手段は、前記第２判定処理において前記仮モデルが前記ハード制約条件を超えたと判定すると、前記機能モデルの前記ソフトウエアと前記ハードウエアの割り当てが失敗したと判定する請求項２に記載のソフトウエアハードウエア割り当て装置。
【請求項４】
前記ハード化手段は、
前記仮モデルにおける前記ソフト制約条件に対する前記ソフト情報の割合、前記ハード制約条件に対する前記ハード情報の割合、および、前記制約時間に対する前記処理時間の割合を計算して、その割合の大きさに対する割合順位を計算する割合順位計算手段と、
前記割合順位に準じて、前記ソフト情報の割合、前記ハード情報の割合、前記処理時間の割合それぞれの重みづけを設定する重みづけ設定手段と、
前記仮モデルにおける前記分割対象に含まれ、前記ソフトウエアに設定された複数の前記分割要素それぞれの前記ソフト情報、前記ハード情報、および、前記処理時間を比較して、それぞれの大きさ順位を計算する大きさ順位計算手段と、
前記割合順位に対応する前記重みづけ、および、前記大きさ順位に基づいて、前記ソフトウエアに設定された複数の前記分割要素の内のいずれを前記ハードウエアに設定するのかを決定するハード化優先順位を計算するハード化優先順位計算手段と、
少なくとも前記ハード化優先順位において最も順位の高い前記分割要素を前記ハードウエアに設定して新たな前記仮モデルを生成する仮モデル生成手段と、を有する請求項２または請求項３に記載のソフトウエアハードウエア割り当て装置。
【請求項５】
１度の前記ハード化処理において前記分割要素を前記ハードウエアに設定する数は、予め前記データベースに記憶されているとともに、ユーザによって指定変更可能である請求項４に記載のソフトウエアハードウエア割り当て装置。
【請求項６】
前記データベースには、前記分割要素間の通信遅延時間も記憶されており、
前記性能計算手段は、前記通信遅延時間を考慮して、前記仮モデルの前記処理時間を計算する請求項２〜５いずれか１項に記載のソフトウエアハードウエア割り当て装置。
【請求項７】
前記データベースには、複数の前記分割要素間を結線して最適化した場合の前記ソフト情報、前記ハード情報、前記処理時間、および、前記通信遅延時間も記憶されており、
前記性能計算手段は、複数の前記分割要素間の結線の最適化を考慮して、前記仮モデルの前記処理時間を計算する請求項６に記載のソフトウエアハードウエア割り当て装置。
【請求項８】
前記ソフト化手段は、ユーザによって指定された前記分割対象に含まれる前記分割要素を前記ソフトウエアに設定する請求項２〜７いずれか１項に記載のソフトウエアハードウエア割り当て装置。
【請求項９】
前記性能計算手段は、前記分割対象に含まれ、前記ソフト化手段および前記ハード化手段によって前記ソフトウエアか前記ハードウエアかに設定された前記分割要素、および、前記分割対象から外され、ユーザによって前記ソフトウエア、若しくは、前記ハードウエアに指定された前記分割要素から構成される前記仮モデルの性能を計算する請求項８に記載のソフトウエアハードウエア割り当て装置。
【請求項１０】
前記分割解探索部は、前記機能モデルを構成する複数の前記分割要素が前記ソフトウエア若しくは前記ハードウエアに割り当てられた出力モデルを、ディスプレイを介してユーザに画像表示するための画像データを形成する画像形成手段を有する請求項１〜９いずれか１項に記載のソフトウエアハードウエア割り当て装置。
【請求項１１】
前記画像形成手段は、前記出力モデルに含まれる前記ハードウエアと前記ソフトウエアの一方を他方よりも視覚的に強調して前記ディスプレイに表示するように前記画像データを形成する請求項１０に記載のソフトウエアハードウエア割り当て装置。
【請求項１２】
前記分割解探索部は、前記ディスプレイを介して、前記出力モデルの性能をユーザに画像表示する請求項１０または請求項１１に記載のソフトウエアハードウエア割り当て装置。
【請求項１３】
前記ソフト情報にはＲＯＭ容量、および、ＲＡＭ容量が含まれ、
前記ハード情報には回路面積、および、消費電力が含まれる請求項１〜１２いずれか１項に記載のソフトウエアハードウエア割り当て装置。
【請求項１４】
ユーザが作成した機能モデル、および、ユーザが定めた制約条件に対して、データベース（２０）から前記機能モデルを構成する分割要素の情報を読み出す読み出しステップと、
前記読み出しステップ後、前記制約条件を満たすように前記機能モデルを構成する複数の前記分割要素の内のいずれをソフトウエア若しくはハードウエアに割り当てるかを分割解探索部（１２）に探索させる探索ステップと、を有し、
前記データベースには、前記分割要素の情報として、前記ソフトウエア固有のソフト情報、前記ハードウエア固有のハード情報、および、前記ソフトウエアと前記ハードウエアそれぞれの処理時間が記憶され、
前記制約条件として、前記ソフト情報を制約するソフト制約条件、前記ハード情報を制約するハード制約条件、および、前記処理時間を制約する制約時間があるソフトウエアハードウエア割り当て方法。
【請求項１５】
前記探索ステップは、
前記機能モデルの内、分割対象となる全ての前記分割要素を前記ソフトウエアに設定した仮モデルを生成するソフト化ステップと、
前記仮モデルの性能を計算する性能計算ステップと、
前記性能計算ステップ後、前記仮モデルの性能が前記制約条件を満たすか否かを判定する第１判定ステップと、
前記第１判定ステップにおいて前記仮モデルの性能が前記制約条件を満たさない場合、前記仮モデルの性能が前記ハード制約条件を超えたか否かを判定する第２判定ステップと、
前記第２判定ステップにおいて前記仮モデルの性能の内の前記ハード情報に関わるハード性能が前記ハード制約条件を超えていない場合、前記制約条件と前記分割要素の情報とに基づいて、前記ソフトウエアに設定された複数の前記分割要素の内の少なくとも１つを前記ハードウエアに設定して新たな前記仮モデルを生成するハード化ステップと、を有し、
前記第１判定ステップにおいて前記仮モデルが前記制約条件を満たすと判定する、若しくは、前記第２判定ステップにおいて前記仮モデルが前記ハード制約条件を超えると判定するまで、前記性能計算ステップ、前記第１判定ステップ、前記第２判定ステップ、および、前記ハード化ステップを前記分割解探索部によって繰り返えさせる請求項１４に記載のソフトウエアハードウエア割り当て方法。
【請求項１６】
前記ハード化ステップは、
前記仮モデルにおける前記ソフト制約条件に対する前記ソフト情報の割合、前記ハード制約条件に対する前記ハード情報の割合、および、前記制約時間に対する前記処理時間の割合を計算して、その割合の大きさに対する割合順位を計算する割合順位計算ステップと、
前記割合順位計算ステップ後、前記割合順位に準じて、前記ソフト情報の割合、前記ハード情報の割合、前記処理時間の割合それぞれの重みづけを設定する重みづけ設定ステップと、
前記仮モデルにおける前記分割対象に含まれ、前記ソフトウエアに設定された複数の前記分割要素それぞれの前記ソフト情報、前記ハード情報、および、前記処理時間を比較して、それぞれの大きさ順位を計算する大きさ順位計算ステップと、
前記重みづけ設定ステップ、および、前記大きさ順位計算ステップ後、前記割合順位に対応する前記重みづけ、および、前記大きさ順位に基づいて、前記ソフトウエアに設定された複数の前記分割要素の内のいずれを前記ハードウエアに設定するのかを決定するハード化優先順位を計算するハード化優先順位計算ステップと、
前記ハード化優先順位計算ステップ後、少なくとも前記ハード化優先順位において最も順位の高い前記分割要素を前記ハードウエアに設定して新たな前記仮モデルを生成する仮モデル生成ステップと、を有する請求項１５に記載のソフトウエアハードウエア割り当て方法。
【請求項１７】
ユーザが作成した機能モデル、および、ユーザが定めた制約条件に対して、データベースから前記機能モデルを構成する分割要素の情報を読み出す読み出しステップと、
前記読み出しステップ後、前記制約条件を満たすように前記機能モデルを構成する複数の前記分割要素の内のいずれをソフトウエア若しくはハードウエアに割り当てるかを探索する探索ステップと、をコンピュータに実行させるソフトウエアハードウエア割り当てプログラムであって、
前記データベースには、前記分割要素の情報として、前記ソフトウエア固有のソフト情報、前記ハードウエア固有のハード情報、および、前記ソフトウエアと前記ハードウエアそれぞれの処理時間が記憶され、
前記制約条件として、前記ソフト情報を制約するソフト制約条件、前記ハード情報を制約するハード制約条件、および、前記処理時間を制約する制約時間があるソフトウエアハードウエア割り当てプログラム。
【請求項１８】
前記探索ステップは、
前記機能モデルの内、分割対象となる全ての前記分割要素を前記ソフトウエアに設定した仮モデルを生成するソフト化ステップと、
前記仮モデルの性能を計算する性能計算ステップと、
前記性能計算ステップ後、前記仮モデルの性能が前記制約条件を満たすか否かを判定する第１判定ステップと、
前記第１判定ステップにおいて前記仮モデルの性能が前記制約条件を満たさない場合、前記仮モデルの性能が前記ハード制約条件を超えたか否かを判定する第２判定ステップと、
前記第２判定ステップにおいて前記仮モデルの性能の内の前記ハード情報に関わるハード性能が前記ハード制約条件を超えていない場合、前記制約条件と前記分割要素の情報とに基づいて、前記ソフトウエアに設定された複数の前記分割要素の内の少なくとも１つを前記ハードウエアに設定して新たな前記仮モデルを生成するハード化ステップと、を有し、
前記第１判定ステップにおいて前記仮モデルが前記制約条件を満たすと判定する、若しくは、前記第２判定ステップにおいて前記仮モデルが前記ハード制約条件を超えると判定するまで、前記性能計算ステップ、前記第１判定ステップ、前記第２判定ステップ、および、前記ハード化ステップを前記コンピュータに繰り返えさせる請求項１７に記載のソフトウエアハードウエア割り当てプログラム。
【請求項１９】
前記ハード化ステップは、
前記仮モデルにおける前記ソフト制約条件に対する前記ソフト情報の割合、前記ハード制約条件に対する前記ハード情報の割合、および、前記制約時間に対する前記処理時間の割合を計算して、その割合の大きさに対する割合順位を計算する割合順位計算ステップと、
前記割合順位計算ステップ後、前記割合順位に準じて、前記ソフト情報の割合、前記ハード情報の割合、前記処理時間の割合それぞれの重みづけを設定する重みづけ設定ステップと、
前記仮モデルにおける前記分割対象に含まれ、前記ソフトウエアに設定された複数の前記分割要素それぞれの前記ソフト情報、前記ハード情報、および、前記処理時間を比較して、それぞれの大きさ順位を計算する大きさ順位計算ステップと、
前記重みづけ設定ステップ、および、前記大きさ順位計算ステップ後、前記割合順位に対応する前記重みづけ、および、前記大きさ順位に基づいて、前記ソフトウエアに設定された複数の前記分割要素の内のいずれを前記ハードウエアに設定するのかを決定するハード化優先順位を計算するハード化優先順位計算ステップと、
前記ハード化優先順位計算ステップ後、少なくとも前記ハード化優先順位において最も順位の高い前記分割要素を前記ハードウエアに設定して新たな前記仮モデルを生成する仮モデル生成ステップと、を有する請求項１８に記載のソフトウエアハードウエア割り当てプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ユーザが作成した機能モデルに含まれる分割要素を、制約条件を満たすようにソフトウエア若しくはハードウエアに割り当てるソフトウエアハードウエア割り当て装置、ソフトウエアハードウエア割り当て方法、および、ソフトウエアハードウエア割り当てプログラムに関するものである。
【背景技術】
【０００２】
特許文献１に示されるように、プログラムコードに含まれる実行単位を、処理負荷が閾値を超えないように、ハードウエア化対象、若しくは、ソフトウエア化対象に割り当てるハードウエア／ソフトウエア協調設計装置が知られている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１３−１２５４１９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記したように特許文献１に示されるハードウエア／ソフトウエア協調設計装置は、処理負荷に応じて、実行単位をハードウエア化対象、若しくは、ソフトウエア化対象に割り当てる。しかしながらハードウエア化およびソフトウエア化に伴って、ハードウエアおよびソフトウエアそれぞれ固有の情報が増減する。例えばハードウエア化した場合には回路面積が増大し、ソフトウエア化した場合には容量が増大する。なおソフトウエアの容量とは、プログラムファイルの容量、および、そのプログラムの一部をＣＰＵが一時的に記憶して処理する容量に相当する。
【０００５】
これに対して上記のハードウエア／ソフトウエア協調設計装置は、処理負荷（処理時間）のみを考慮して実行単位をハードウエア化、若しくは、ソフトウエア化の対象に割り当てており、上記の固有の情報を加味していない。そのためにこのハードウエア／ソフトウエア協調設計装置によって実行単位をハードウエア化対象およびソフトウエア化対象に割り当てたとしても、その後に設計者（ユーザ）が結局のところ上記の固有の情報を考慮して再度割り当てを行なうこととなる。この結果、割り当て時間が長くなる、という問題がある。
【０００６】
そこで本発明は上記問題点に鑑み、割り当て時間の短縮されたソフトウエアハードウエア割り当て装置、ソフトウエアハードウエア割り当て方法、および、ソフトウエアハードウエア割り当てプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記した目的を達成するための開示された発明の１つは、機能モデルを構成する複数の分割要素それぞれを表す記号をユーザが適宜選択して結線することで、ユーザが機能モデルを作成するための情報の記憶されたデータベース（２０）と、
ユーザが作成した機能モデル、および、ユーザが定めた制約条件に対して、制約条件を満たすように機能モデルを構成する複数の分割要素の内のいずれをソフトウエア若しくはハードウエアに割り当てるかを探索する分割解探索部（１２）と、を有し、
データベースには、分割要素の情報として、ソフトウエア固有のソフト情報、ハードウエア固有のハード情報、および、ソフトウエアとハードウエアそれぞれの処理時間が記憶され、
制約条件として、ソフト情報を制約するソフト制約条件、ハード情報を制約するハード制約条件、および、処理時間を制約する制約時間がある。
【０００８】
このように本発明では、処理時間だけではなく、ソフトウエア固有のソフト情報、ハードウエア固有のハード情報を加味して、ソフトウエアかハードウエアかを分割要素に割り当てる。これによれば、単に機能モデルの処理時間だけに着目してソフトウエアかハードウエアかを分割要素に割り当てる構成とは異なり、ユーザが上記のソフト情報やハード情報を考慮して再度割り当てを行わなくとも良くなる。このように本発明は、上記の比較構成と比べてユーザの要望により適った割り当てを行うことができ、割り当て時間を短縮することができる。
【０００９】
なお、特許請求の範囲に記載の請求項、および、課題を解決するための手段それぞれに記載の要素に括弧付きで符号をつけている。この括弧付きの符号は実施形態に記載の各構成要素との対応関係を簡易的に示すためのものであり、実施形態に記載の要素そのものを必ずしも示しているわけではない。括弧付きの符号の記載は、いたずらに特許請求の範囲を狭めるものではない。
【図面の簡単な説明】
【００１０】
【図１】ソフトハード割り当て装置の概略構成を示すブロック図である。
【図２】図１に示すソフトハード割り当て装置の詳細構成を示すブロック図である。
【図３】データベースに記憶された情報を示す概念図である。
【図４】ソフトハード割り当て方法を示すフローチャートである。
【図５】分割解の探索処理を示すフローチャートである。
【図６】分割解探索処理を説明するためのモデルを示す図表である。
【図７】ハード化優先順位の算出処理を示すフローチャートである。
【発明を実施するための形態】
【００１１】
以下、本発明の実施形態を図に基づいて説明する。
（第１実施形態）
以下においてはソフトウエア、ハードウエアを、ソフト、ハードと省略して示す。したがって例えばソフトウエアハードウエア割り当て装置は、ソフトハード割り当て装置と表記する。
【００１２】
図１〜図７に基づいて、本実施形態に係るソフトハード割り当て装置を説明する。図１に示すようにソフトハード割り当て装置１００は、解析装置１０とデータベース２０を有する。ソフトハード割り当て装置１００は所謂コンピュータであり、解析装置１０は演算処理を行うＣＰＵ、データベース２０はＲＯＭやＲＡＭから成るメモリである。このデータベース２０に機能モデルを構成する分割要素のいずれをソフト、若しくは、ハードに割り当てるかを探索するためのソフトハード割り当てプログラムが記憶されている。解析装置１０は上記のプログラムをデータベース２０から読み込み、ユーザから入力された機能モデル（入力モデル）の分割要素をソフトやハードに割り当てる。こうすることで入力モデルの分割要素がソフトやハードに設定された機能モデル（出力モデル）が生成される。なお上記のプログラムは予めデータベース２０に記憶されていても良いし、記憶媒体に記憶されていても良い。記憶媒体に上記のプログラムが記憶されている場合、解析装置１０がその記憶媒体からプログラムを読み込み、それを一時的にデータベース２０に記憶させる。
【００１３】
図示しないが、ソフトハード割り当て装置１００には、ユーザが操作して情報を入力するためのキーボードやマウスが接続されている。またソフトハード割り当て装置１００には、ユーザが入力モデルと出力モデル、および、その性能を視覚で確認するためのディスプレイも接続されている。
【００１４】
解析装置１０は、ユーザから上記プログラムの実行入力が成されると、上記した分割要素を示す記号をデータベース２０から読み出し、それをディスプレイに表示する。これに対してユーザが例えば図１にブロックで示す分割要素をマウスなどによって適宜選択して結線することで、入力モデルが構成される。また解析装置１０は、制約条件の入力指示をディスプレイに表示する。これに対してユーザがキーボードなどを適宜操作することで、制約条件が入力される。ユーザから入力モデルと制約条件とが入力されると解析装置１０は、制約条件を満たすように入力モデルの分割要素をソフトやハードに割り当てる。そして解析装置１０は、その割り当てられた出力モデルとその性能とをディスプレイに画像表示する。解析装置１０については後で詳説する。
【００１５】
図２に示すように、上記の制約条件としては、ソフト制約条件、ハード制約条件、制約時間、および、ターゲット情報がある。そして図３に示すようにソフト固有の情報としては、ＲＯＭ容量やＲＡＭ容量があり、ハード固有の情報としては、回路面積や消費電力がある。なお上記のＲＯＭ容量とはプログラムファイルの容量に相当し、ＲＡＭ容量とはプログラムの一部をＣＰＵが一時的に記憶して処理する容量に相当する。
【００１６】
入力モデルを構成する分割要素に対してソフトに割り当てられる数が増大すると、それに伴ってそのモデルの容量も増大する。同様にして入力モデルを構成する分割要素に対してハードに割り当てられる数が増大すると、それに伴ってそのモデルの回路面積や消費電力も増大する。また、概して処理時間はソフトよりもハードの方が短い。そのため、入力モデルを構成する分割要素におけるハードに割り当てられる数が増大すると、それに伴ってそのモデルの処理時間が短くなる。
【００１７】
上記のソフト制約条件は機能モデルのＲＯＭ容量やＲＡＭ容量の上限を定める値であり、ハード制約条件は機能モデルの回路面積や消費電力の上限を定める値である。また制約時間は機能モデルの処理時間の上限を定める値であり、ターゲット情報は入力モデルをどのような仕様の製品によって構成するのかを指定する情報である。
【００１８】
図２に示すように、データベース２０には各ターゲット情報に対するソフト情報とハード情報とが記憶されている。図３に示すようにソフト情報としては、各種ターゲットＳ１、Ｓ２…における、分割要素ａ，ｂ…に関するＲＯＭ容量、ＲＡＭ容量、および、処理時間がある。またハード情報としては、各種ターゲットＳ１、Ｓ２…における、分割要素ａ，ｂ…に関する回路面積、消費電力、および、処理時間がある。なお図３に示すように本実施形態のデータベース２０には、複数の分割要素ａ，ｂを結線して最適化した場合のソフト情報、ハード情報、処理時間も記憶されている。また詳しくは図示しないが、結線された複数の分割要素間の通信遅延時間も記憶されている。
【００１９】
なお、図３ではソフト情報とハード情報とに処理時間が含まれるように記載されているが、この処理時間はソフトやハード固有の情報ではない。したがって以下においてはソフト固有の情報であるＲＯＭ容量やＲＡＭ容量をソフト情報、ハード固有の情報である回路面積や消費電力をハード情報として記載する。また上記した最適化とは、上記のソフト情報、ハード情報、および、処理時間を最適な状態に近づけることを示している。
【００２０】
次に、解析装置１０を詳説する。解析装置１０は、図２に示すようにモデル情報保持部１１、分割解探索部１２、および、探索結果反映部１３を有する。
【００２１】
モデル情報保持部１１は、ユーザから入力モデルが入力されると、それを一時的に保存するものである。モデル情報保持部１１は、入力モデルを構成する複数の分割要素と、各分割要素の結線情報を保持する。
【００２２】
分割解探索部１２は、モデル情報保持部１１から入力モデルを構成する複数の分割要素とその結線情報を読み込むとともに、ユーザから入力された制約条件も読み込む。そして分割解探索部１２は入力モデルに含まれる分割要素のソフト情報、ハード情報、処理時間、通信遅延時間それぞれをデータベース２０から読み込む。その後に分割解探索部１２は、制約情報に含まれるソフト制約条件、ハード制約条件、および、制約時間を満たすように、入力モデルの分割要素をソフト若しくはハードに割り当てる。分割解探索部１２は割り当てが終了すると、出力モデルの分割要素のいずれがソフトでありハードであるのかを探索結果反映部１３に出力するとともに、ディスプレイに出力モデルの性能を表示させる。また分割解探索部１２は割り当てが成功したのかそれとも失敗したのかの結果もディスプレイに表示させる。
【００２３】
なお上記の通信遅延時間はユーザによって指定可能となっており、ユーザから通信遅延時間が入力されている場合、分割解探索部１２はデータベース２０から読み込んだ通信遅延時間だけではなく、ユーザが指定した通信遅延時間にも基づいて機能モデルの処理時間を計算する。この通信遅延時間の指定は、ユーザが上記の制約条件に含めることで成される。
【００２４】
分割解探索部１２は、特許請求の範囲に記載のソフト化手段、性能計算手段、第１判定手段、第２判定手段、および、ハード化手段を有している。したがって分割解探索部１２は、特許請求の範囲に記載の割合順位計算手段、重みづけ設定手段、大きさ順位計算手段、ハード化優先順位計算手段、および、仮モデル生成手段も有している。図２に示すように分割解探索部１２が上記の複数の手段それぞれの機能を有しているが、この機能を複数の要素が有してもよい。
【００２５】
探索結果反映部１３は、モデル情報保持部１１にて保持されていた入力モデルの分割要素と結線情報とを読み込むとともに、分割解探索部１２から分割要素のソフトとハードの割り当て結果を受け取る。そして探索結果反映部１３は割り当てが成功した場合、入力モデルの分割要素の内のハードに割り当てられた部位を例えば図１および図２において破線で示すように視覚的に強調して、ディスプレイに画像表示するための画像データを作成する。これとは異なり割り当てが失敗した場合、探索結果反映部１３は制約条件を満たすのに障害となっている分割要素を他の分割要素よりも視覚的に強調して、ディスプレイに画像表示するための画像データを作成する。若しくは、探索結果反映部１３は上記の障害となっている分割要素を除いた場合に制約条件を満たす複数の分割要素を、障害となっている分割要素よりも視覚的に強調して、ディスプレイに画像表示するための画像データを作成する。これにより解析装置１０によって探索された出力モデルとその性能、および、割り当ての成功と失敗がディスプレイを介してユーザに画像表示される。探索結果反映部１３が特許請求の範囲に記載の画像形成手段に相当する。
【００２６】
次に、入力モデルのソフトハード割り当て処理（ソフトハード割り当て方法）を図４〜図６に基づいて説明する。図４に示すように解析装置１０は、ステップＳ１０においてユーザからの入力モデルと制約条件の入力があったか否かを判定する。入力モデルと制約条件の入力があった場合、解析装置１０はステップＳ２０へと進む。これとは異なり入力モデルと制約条件の入力がない場合、解析装置１０はステップＳ１０を繰り返し、入力モデルと制約条件の入力があるまで待機する。
【００２７】
ステップＳ２０へ進むと解析装置１０は、入力モデルの分割要素に関する情報を読み出す。そして解析装置１０はステップＳ３０へと進む。このステップＳ２０が、特許請求の範囲に記載の読み出しステップに相当する。
【００２８】
ステップＳ３０へ進むと解析装置１０は、制約条件を満たす分割要素のソフトとハードの割り当て解（分割解）を探索する。そして解析装置１０はステップＳ４０へと進む。この分割解の探索に関しては後で詳説する。ステップＳ３０が特許請求の範囲に記載の探索ステップに相当する。
【００２９】
ステップＳ４０へ進むと解析装置１０は、分割解の探索の結果得られた出力モデルとその性能、および、割り当ての成功若しくは失敗をユーザに画像表示する。
【００３０】
次に、図５に基づいてステップＳ３０の分割解の探索処理（分割解の探索方法）を詳説する。ステップＳ５０において解析装置１０（分割解探索部１２）は、先ず入力モデルの分割要素の全てをソフトに指定した仮モデルを生成する。ただし、ユーザによってソフトとハードの割り当て対象（分割対象）が指定されている場合、分割解探索部１２は分割対象に含まれる分割要素のみをソフトに指定する。この後に分割解探索部１２はステップＳ６０へと進む。なお分割対象から外れた分割要素は、ユーザによってソフト若しくはハードに指定されている。この分割対象の指定とソフトとハードの割り当て指定は、ユーザが上記の制約条件に含めることで成される。ステップＳ５０が特許請求の範囲に記載のソフト化処理とソフト化ステップに相当する。
【００３１】
ステップＳ６０へ進むと分割解探索部１２は、仮モデルの性能を計算する。すなわち分割解探索部１２は、仮モデルのソフト情報（ＲＯＭ容量、ＲＡＭ容量）、ハード情報（回路面積、消費電力）、および、処理時間を計算する。そして分割解探索部１２はステップＳ７０へと進む。ステップＳ６０が特許請求の範囲に記載の性能計算処理と性能計算ステップに相当する。
【００３２】
なお仮モデルの処理時間は、仮モデルを構成する分割要素単体の処理時間を単に加算しただけでは算出されず、仮モデルの結線状態（回路構成）に依存する。例えば複数の分割要素が並列接続されている場合、その並列接続の処理時間は、並列接続された複数の分割要素の内の最も処理時間の長い分割要素が仮モデルの処理時間に関わり、他の分割要素の処理時間は関わりが無い。また仮モデルの一部がループを成している場合、そのループにて処理にかかる時間は、ループを構成する分割要素それぞれの単体の処理時間を加算した値ではなく、その値を複数回積算した値になる場合がある。
【００３３】
このように仮モデルの処理時間を厳密に計算する場合、仮モデルの結線状態を考慮する必要がある。すなわち、仮モデルをシミュレーションする必要がある。しかしながらこのような計算を行っていると仮モデルの性能計算に多くの時間を割くことと成る。したがって仮モデルの性能を厳密に計算するのか、それともある仮定を設けて仮モデルの性能を疎漏に計算するのかを、ユーザによって指定することが分割解探索部１２において可能となっている。この処理時間の計算指定は、ユーザが上記の制約条件に含めることで成される。
【００３４】
上記したある仮定とは、例えば、仮モデルの結線状態を全く考慮せずに仮モデルの分割要素１つ１つの処理時間を単に加算したり、上記のように並列接続の場合の処理時間を考慮して加算したりする仮定である。またループを構成する場合、例えばそのループを構成する分割要素の処理時間の総和を５回積算した値を、そのループで最終的にかかる処理時間として算出する、という仮定である。
【００３５】
ステップＳ７０へ進むと分割解探索部１２は、仮モデルの性能が制約条件を満たしているか否かを判定する。仮モデルの性能が制約条件を満たしている場合、分割解探索部１２はソフトとハードの割り当てが成功した（分割が成功した）と判定する。そして分割解探索部１２は図４に示すステップＳ４０へと進む。これとは異なり、仮モデルの性能が制約条件を満たしていない場合、分割解探索部１２はステップＳ８０へと進む。ステップＳ７０が特許請求の範囲に記載の第１判定処理と第１判定ステップに相当する。
【００３６】
ステップＳ８０へ進むと分割解探索部１２は、仮モデルの性能が制約条件を満たしていないのは、仮モデルの性能におけるハード性能（回路面積と消費電力）が、ハード制約条件を超えたためであるのか否かを判定する。仮モデルのハード性能がハード制約条件を超えた場合、分割解探索部１２はソフトとハードの割り当てが失敗した（分割が失敗した）と判定する。そして分割解探索部１２は図４に示すステップＳ４０へと進む。これとは異なり、仮モデルのハード性能がハード制約条件を超えていない場合、分割解探索部１２はステップＳ９０へと進む。ステップＳ８０が特許請求の範囲に記載の第２判定処理と第２判定ステップに相当する。
【００３７】
ステップＳ９０へ進むと分割解探索部１２は、仮モデルの分割対象に含まれるソフトの分割要素のハード化優先順位を計算する。なお、仮モデルの分割対象に含まれる複数の分割要素の一部がグループとしてユーザに指定されている場合、分割解探索部１２はグループを構成する複数の分割要素を１つの分割要素とみなしてハード化優先順位を計算する。そして分割解探索部１２はステップＳ１００へと進む。このグループ指定は、ユーザが上記の制約条件に含めることで成される。ハード化優先順位については後で詳説する。
【００３８】
ステップＳ１００へ進むと分割解探索部１２は、ハード化優先順位の最も高い分割要素をハードに設定し、ステップＳ６０へと進む。このようにステップＳ１００においてハード化する分割要素の数は１つであるが、このハード化する数（ハード化数）は、ユーザによって指定可能である。このハード化数の指定は、ユーザが上記の制約条件に含めることで成される。ステップＳ９０とステップＳ１００が特許請求の範囲に記載のハード化処理とハード化ステップに相当する。そしてステップＳ１００が特許請求の範囲に記載の仮モデル生成ステップに相当する。
【００３９】
次に、分割解探索部１２が上記のステップＳ６０〜ステップＳ１００を繰り返した結果、分割が成功した場合の例を図５および図６に基づいて説明する。
【００４０】
入力モデルの分割要素の全てが分割対象となっている場合、分割解探索部１２はステップＳ５０において入力モデルの分割要素の全てをソフトに指定する。したがってこの場合、仮モデルのソフト情報は最大となっており、ハード情報はゼロとなっている。
【００４１】
この仮モデルの場合、処理時間が最も長くなっている。そのため分割解探索部１２はステップＳ７０において制約条件を満たしていないと判定する可能性が高い。しかしながらこの仮モデルのハード情報はゼロとなっている。そのため分割解探索部１２がステップＳ７０において制約条件を満たしていないと判定して、ステップＳ８０に進んだとしても、ステップＳ８０において仮モデルのハード性能がハード制約条件を超えていないと判定する。そのために分割解探索部１２はステップＳ９０へと進む。この際に分割解探索部１２は仮モデルのハード化優先順位を計算する。
【００４２】
この計算が行われると、例えば図６の（ａ）欄に数字で示すように、仮モデルを構成する各分割要素のハード化優先順位が算出される。この後にステップＳ１００へ進むと分割解探索部１２は、図６の（ａ）欄において数字１の記されている分割要素（ハード化優先順位１位の分割要素）を、図６の（ｂ）欄において破線で示すようにハードに設定する。
【００４３】
分割解探索部１２は再びステップＳ６０へ進むと、この１つの分割要素がハードに設定された仮モデルの性能を計算し、ステップＳ７０において仮モデルの性能が制約条件を満たしているのか否かを判定する。そして分割解探索部１２は仮モデルの性能が制約条件を満たしていないと判定するとステップＳ８０へと進み、ステップＳ８０において仮モデルのハード性能がハード制約条件を超えたか否かを判定する。分割解探索部１２は仮モデルのハード性能がハード制約条件を超えていないと判定するとステップＳ９０へと進み、仮モデルのハード化優先順位を再び計算する。
【００４４】
この計算が行われると、例えば図６の（ｂ）欄に数字で示すように、ハードに設定された分割要素を除く分割要素（ソフトに設定された分割要素）のハード化優先順位が算出される。この後にステップＳ１００へ進むと分割解探索部１２は、図６の（ｂ）欄において数字１の記されている分割要素を、図６の（ｃ）欄において破線で示すようにハードに設定する。
【００４５】
分割解探索部１２は再びステップＳ６０へ進むと、この新たに１つの分割要素がハードに設定された仮モデルの性能を計算し、ステップＳ７０において仮モデルの性能が制約条件を満たしているのか否かを判定する。分割解探索部１２は、仮モデルの性能が制約条件を満たしている場合、ソフトとハードの割り当てが成功した（分割が成功した）と判定し、図４に示すステップＳ４０へと進む。
【００４６】
なおこれとは異なり、この新たに１つの分割要素がハードに設定された仮モデルの性能が制約条件を満たしていない場合、分割解探索部１２は再びステップＳ８０へと進む。そして分割解探索部１２はステップＳ８０において仮モデルのハード性能がハード制約条件を超えたと判定すると、ソフトとハードの割り当てが失敗した（分割が失敗した）と判定し、図４に示すステップＳ４０へと進む。
【００４７】
次に、ハード化優先順位の算出処理（ハード化優先順位の算出方法）を図７に基づいて詳説する。ステップＳ２１０において分割解探索部１２は、仮モデルの性能の内、ソフト情報にかかわる性能（ソフト性能）、ハード情報にかかわる性能（ハード性能）、制約時間に関わる性能（処理時間）それぞれと、ソフト制約条件、ハード制約条件、制約時間それぞれとの割合を計算する。すなわち分割解探索部１２は、ソフト性能をソフト制約条件で割ったソフト割合、ハード性能をハード制約条件で割ったハード割合、処理時間を制約時間で割った時間割合を計算する。そしてこれら複数の割合の１からの乖離幅を算出し、その乖離幅の高い順に順位付けを行う。すなわち割合順位を計算する。
【００４８】
なお、上記のソフト性能としては、ＲＯＭ性能、ＲＡＭ性能があり、ハード性能としては、回路面積性能、消費電力性能がある。したがって割合順位は５位まで決定される。ステップＳ２１０が特許請求の範囲に記載の割合順位計算処理と割合順位計算ステップに相当する。この後に分割解探索部１２はステップＳ２２０へと進む。
【００４９】
ステップＳ２２０へ進むと分割解探索部１２は、割合順位に準じて、ソフト情報の割合、ハード情報の割合、処理時間の割合それぞれの重みづけを設定する。例えば割合順位においてソフト情報の割合が１位、処理時間の割合が２位、ハード情報の割合が３位の場合、ソフト情報の割合の重みづけを最も重くする。そして処理時間の割合の重みづけを次に重くし、ハード情報の割合の重みづけを最も軽くする。もちろん、上記のようにソフト性能とハード性能とを細かく分けた場合、割合順位は５位まで決定され、重みづけも５段階に分けられる。ステップＳ２２０が特許請求の範囲に記載の重みづけ設定処理と重みづけ設定ステップに相当する。この後に分割解探索部１２はステップＳ２３０へと進む。
【００５０】
ステップＳ２３０へ進むと分割解探索部１２は、分割対象に含まれ、ソフトに設定された複数の分割要素それぞれのソフト情報、ハード情報、および、処理時間それぞれを比較し、その大きさの順位付けを行う。例えば図６の（ａ）欄に示すように仮モデルが６つの分割要素を有する場合、この６つの分割要素それぞれのソフト情報、ハード情報、および、処理時間に関する大きさ順位付けを行う。したがってソフト情報について６位までの大きさ順位が計算され、ハード情報について６位までの大きさ順位が計算され、処理時間について６位までの大きさ順位が計算される。なお処理時間はソフトの場合とハードの場合とで異なるが、ここで順位づけ対象となる処理時間は、ハードの場合の処理時間である。ステップＳ２３０が特許請求の範囲に記載の大きさ順位計算処理と大きさ順位計算ステップに相当する。この後に分割解探索部１２はステップＳ２４０へと進む。
【００５１】
ステップＳ２４０へ進むと分割解探索部１２は、割合順位に対応する重みづけ、および、大きさ順位に基づいて、分割要素それぞれのハード化優先順位を計算する。上記した６位まである５つの大きさ順位に対して、５つの重みづけを乗算し、この５つの乗算値を分割要素それぞれに対して算出する。この５つの乗算値の総和の順位が上記のハード化優先順位に相当し、図６の（ａ）欄に示すように、各分割要素に対しての順位が決定される。ステップＳ２４０が特許請求の範囲に記載のハード化優先順位計算処理とハード化優先順位計算ステップに相当する。
【００５２】
なお、ハード化優先順位の計算結果、乗算値の総和が同率で１位になる場合がある。この場合、この同率の分割要素それぞれをハード化してもよい。若しくは、入力に最も近いほうをハード化してもよいし、その逆に入力から最も遠いほう（出力に最も近い方）をハード化してもよい。さらに例示すれば、その１位の分割要素と結線された分割要素がソフトかハードかによって決定してもよい。ハードの分割要素同士を結線した構成のほうが、ハードの分割要素とソフトの分割要素とを結線した構成よりも、通信遅延時間が短くなる。そのため、すでにハードに指定された分割要素と結線された１位の分割要素がある場合、この分割要素をハード化してもよい。
【００５３】
次に、本実施形態に係るソフトハード割り当て装置１００、ソフトハード割り当て方法、および、ソフトハード割り当てプログラムの作用効果を説明する。上記したように、入力モデルの処理時間だけではなく、ソフト固有のソフト情報、ハード固有のハード情報を加味して、ソフトかハードかを分割要素に割り当てる。これによれば、単に入力モデルの処理時間だけに着目してソフトかハードかを分割要素に割り当てる構成とは異なり、ユーザが上記のソフト情報やハード情報を考慮して再度割り当てを行わなくとも良くなる。このように本実施形態のソフトハード割り当て装置１００、方法、および、プログラムは、上記の比較構成と比べてユーザの要望により適った割り当てを行うことができ、割り当て時間を短縮することができる。
【００５４】
分割解探索部１２は、分割対象の全てをソフトに割り当てた後、制約条件を満たすまで、若しくは、ハード制約条件を超えるまで、順次ハード化優先順位を計算し、その順位に準じてソフトに割り当てられた分割要素をハードに割り当てることを繰り返す。これによれば、ハード情報が大きくなることの抑制された出力モデルを得ることができる。すなわち、回路面積や消費電力の抑えられた出力モデルを得ることができる。
【００５５】
分割解探索部１２は、ソフト性能、ハード性能、および、処理時間に関わる割合順位を計算し、その割合順位に準じて重みづけを設定する。また分割解探索部１２は、複数の分割要素それぞれのソフト情報、ハード情報、および、処理時間の大きさの順位付けを計算する。そして分割解探索部１２は、大きさ順位に対して重みづけを乗算してハード化優先順位を決定する。これによれば、未達の制約条件に対して、それを満たすのに最も有効な分割要素をハードの割り当て対象に選択することができる。
【００５６】
データベース２０には、複数の分割要素ａ，ｂを結線して最適化した場合のソフト情報、ハード情報、および、処理時間が記憶されている例を示した。これによれば、出力モデルのソフト情報、ハード情報、および、処理時間をより正確に計算することができる。
【００５７】
通信遅延時間がユーザによって指定可能である。これによればデータベースに記憶されていない情報に基づいて、処理時間を計算することができる。
【００５８】
仮モデルの性能を厳密に計算するのか、それともある仮定を設けて仮モデルの性能を疎漏に計算するのかをユーザによって指定可能である。これによれば出力モデルの算出時間を調整することができる。
【００５９】
ハード化数がユーザによって指定可能である。これによればハード化数を大きくすることで出力モデルの算出を早めることができる。これとは反対にハード化数を小さくすることでハード性能の増大の抑制された出力モデルを得ることができる。
【００６０】
以上、本発明の好ましい実施形態について説明したが、本発明は上記した実施形態になんら制限されることなく、本発明の主旨を逸脱しない範囲において、種々変形して実施することが可能である。
【００６１】
本実施形態のデータベース２０には、複数の分割要素ａ，ｂを結線して最適化した場合のソフト情報、ハード情報、処理時間が記憶されている例を示した。しかしながらデータベース２０にこれらの情報が記憶されていなくともよい。
【００６２】
本実施形態のデータベース２０には、結線された複数の分割要素間の通信遅延時間が記憶されている例を示した。しかしながらデータベース２０にこの情報が記憶されていなくともよい。
【００６３】
本実施形態では通信遅延時間がユーザによって指定可能である例を示した。しかしながら通信遅延時間はユーザによって指定可能となっていなくともよい。
【００６４】
本実施形態の探索結果反映部１３は割り当てが成功した場合、入力モデルの分割要素の内のハードに割り当てられた部位を視覚的に強調してディスプレイに画像表示するための画像データを作成する例を示した。しかしながらこれとは反対に、探索結果反映部１３は割り当てが成功した場合、入力モデルの分割要素の内のソフトに割り当てられた部位を視覚的に強調してディスプレイに画像表示するための画像データを作成してもよい。
【００６５】
本実施形態では入力モデルを構成する複数の分割要素の内の一部がユーザによって分割対象に指定できる例を示した。しかしながら分割対象をユーザによって指定できなくともよい。
【００６６】
本実施形態では仮モデルの処理時間を厳密に計算するのか、それともある仮定を設けて疎漏に計算するのかをユーザによって指定可能である例を示した。しかしながら処理時間の計算の厳密性をユーザによって指定できなくともよい。処理時間を疎漏に計算するように固定されていてもよいし、厳密に計算するように固定されていてもよい。
【００６７】
本実施形態ではハード化数がユーザによって指定可能である例を示した。しかしながらハード化数はユーザによって指定可能でなくともよい。
【符号の説明】
【００６８】
１０…解析装置
１２…分析解探索部
２０…データベース
１００…ソフトハード割り当て装置
【図１】
2016212674.tif 000003
【図２】
2016212674.tif 000004
【図３】
2016212674.tif 000005
【図４】
2016212674.tif 000006
【図５】
2016212674.tif 000007
【図６】
2016212674.tif 000008
【図７】
2016212674.tif 000009