JP2016212674A - ソフトウエアハードウエア割り当て装置、ソフトウエアハードウエア割り当て方法、および、ソフトウエアハードウエア割り当てプログラム - Google Patents
ソフトウエアハードウエア割り当て装置、ソフトウエアハードウエア割り当て方法、および、ソフトウエアハードウエア割り当てプログラム Download PDFInfo
- Publication number
- JP2016212674A JP2016212674A JP2015096490A JP2015096490A JP2016212674A JP 2016212674 A JP2016212674 A JP 2016212674A JP 2015096490 A JP2015096490 A JP 2015096490A JP 2015096490 A JP2015096490 A JP 2015096490A JP 2016212674 A JP2016212674 A JP 2016212674A
- Authority
- JP
- Japan
- Prior art keywords
- hardware
- software
- information
- model
- performance
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Abstract
【課題】割り当て時間の短縮されたソフトウエアハードウエア割り当て装置、ソフトウエアハードウエア割り当て方法、および、ソフトウエアハードウエア割り当てプログラムを提供する。【解決手段】複数の分割要素をユーザが結線することで機能モデルを作成するための情報の記憶されたデータベースと、機能モデルと制約条件に対して、制約条件を満たすように機能モデルの分割要素のいずれをソフトウエア若しくはハードウエアに割り当てるかを探索する分割解探索部と、を有する。データベースには、分割要素の情報として、ソフトウエア固有のソフト情報、ハードウエア固有のハード情報、および、ソフトウエアとハードウエアそれぞれの処理時間が記憶され、制約条件として、ソフト情報を制約するソフト制約条件、ハード情報を制約するハード制約条件、および、処理時間を制約する制約時間がある。【選択図】図5
Description
本発明は、ユーザが作成した機能モデルに含まれる分割要素を、制約条件を満たすようにソフトウエア若しくはハードウエアに割り当てるソフトウエアハードウエア割り当て装置、ソフトウエアハードウエア割り当て方法、および、ソフトウエアハードウエア割り当てプログラムに関するものである。
特許文献1に示されるように、プログラムコードに含まれる実行単位を、処理負荷が閾値を超えないように、ハードウエア化対象、若しくは、ソフトウエア化対象に割り当てるハードウエア/ソフトウエア協調設計装置が知られている。
上記したように特許文献1に示されるハードウエア/ソフトウエア協調設計装置は、処理負荷に応じて、実行単位をハードウエア化対象、若しくは、ソフトウエア化対象に割り当てる。しかしながらハードウエア化およびソフトウエア化に伴って、ハードウエアおよびソフトウエアそれぞれ固有の情報が増減する。例えばハードウエア化した場合には回路面積が増大し、ソフトウエア化した場合には容量が増大する。なおソフトウエアの容量とは、プログラムファイルの容量、および、そのプログラムの一部をCPUが一時的に記憶して処理する容量に相当する。
これに対して上記のハードウエア/ソフトウエア協調設計装置は、処理負荷(処理時間)のみを考慮して実行単位をハードウエア化、若しくは、ソフトウエア化の対象に割り当てており、上記の固有の情報を加味していない。そのためにこのハードウエア/ソフトウエア協調設計装置によって実行単位をハードウエア化対象およびソフトウエア化対象に割り当てたとしても、その後に設計者(ユーザ)が結局のところ上記の固有の情報を考慮して再度割り当てを行なうこととなる。この結果、割り当て時間が長くなる、という問題がある。
そこで本発明は上記問題点に鑑み、割り当て時間の短縮されたソフトウエアハードウエア割り当て装置、ソフトウエアハードウエア割り当て方法、および、ソフトウエアハードウエア割り当てプログラムを提供することを目的とする。
上記した目的を達成するための開示された発明の1つは、機能モデルを構成する複数の分割要素それぞれを表す記号をユーザが適宜選択して結線することで、ユーザが機能モデルを作成するための情報の記憶されたデータベース(20)と、
ユーザが作成した機能モデル、および、ユーザが定めた制約条件に対して、制約条件を満たすように機能モデルを構成する複数の分割要素の内のいずれをソフトウエア若しくはハードウエアに割り当てるかを探索する分割解探索部(12)と、を有し、
データベースには、分割要素の情報として、ソフトウエア固有のソフト情報、ハードウエア固有のハード情報、および、ソフトウエアとハードウエアそれぞれの処理時間が記憶され、
制約条件として、ソフト情報を制約するソフト制約条件、ハード情報を制約するハード制約条件、および、処理時間を制約する制約時間がある。
ユーザが作成した機能モデル、および、ユーザが定めた制約条件に対して、制約条件を満たすように機能モデルを構成する複数の分割要素の内のいずれをソフトウエア若しくはハードウエアに割り当てるかを探索する分割解探索部(12)と、を有し、
データベースには、分割要素の情報として、ソフトウエア固有のソフト情報、ハードウエア固有のハード情報、および、ソフトウエアとハードウエアそれぞれの処理時間が記憶され、
制約条件として、ソフト情報を制約するソフト制約条件、ハード情報を制約するハード制約条件、および、処理時間を制約する制約時間がある。
このように本発明では、処理時間だけではなく、ソフトウエア固有のソフト情報、ハードウエア固有のハード情報を加味して、ソフトウエアかハードウエアかを分割要素に割り当てる。これによれば、単に機能モデルの処理時間だけに着目してソフトウエアかハードウエアかを分割要素に割り当てる構成とは異なり、ユーザが上記のソフト情報やハード情報を考慮して再度割り当てを行わなくとも良くなる。このように本発明は、上記の比較構成と比べてユーザの要望により適った割り当てを行うことができ、割り当て時間を短縮することができる。
なお、特許請求の範囲に記載の請求項、および、課題を解決するための手段それぞれに記載の要素に括弧付きで符号をつけている。この括弧付きの符号は実施形態に記載の各構成要素との対応関係を簡易的に示すためのものであり、実施形態に記載の要素そのものを必ずしも示しているわけではない。括弧付きの符号の記載は、いたずらに特許請求の範囲を狭めるものではない。
以下、本発明の実施形態を図に基づいて説明する。
(第1実施形態)
以下においてはソフトウエア、ハードウエアを、ソフト、ハードと省略して示す。したがって例えばソフトウエアハードウエア割り当て装置は、ソフトハード割り当て装置と表記する。
(第1実施形態)
以下においてはソフトウエア、ハードウエアを、ソフト、ハードと省略して示す。したがって例えばソフトウエアハードウエア割り当て装置は、ソフトハード割り当て装置と表記する。
図1〜図7に基づいて、本実施形態に係るソフトハード割り当て装置を説明する。図1に示すようにソフトハード割り当て装置100は、解析装置10とデータベース20を有する。ソフトハード割り当て装置100は所謂コンピュータであり、解析装置10は演算処理を行うCPU、データベース20はROMやRAMから成るメモリである。このデータベース20に機能モデルを構成する分割要素のいずれをソフト、若しくは、ハードに割り当てるかを探索するためのソフトハード割り当てプログラムが記憶されている。解析装置10は上記のプログラムをデータベース20から読み込み、ユーザから入力された機能モデル(入力モデル)の分割要素をソフトやハードに割り当てる。こうすることで入力モデルの分割要素がソフトやハードに設定された機能モデル(出力モデル)が生成される。なお上記のプログラムは予めデータベース20に記憶されていても良いし、記憶媒体に記憶されていても良い。記憶媒体に上記のプログラムが記憶されている場合、解析装置10がその記憶媒体からプログラムを読み込み、それを一時的にデータベース20に記憶させる。
図示しないが、ソフトハード割り当て装置100には、ユーザが操作して情報を入力するためのキーボードやマウスが接続されている。またソフトハード割り当て装置100には、ユーザが入力モデルと出力モデル、および、その性能を視覚で確認するためのディスプレイも接続されている。
解析装置10は、ユーザから上記プログラムの実行入力が成されると、上記した分割要素を示す記号をデータベース20から読み出し、それをディスプレイに表示する。これに対してユーザが例えば図1にブロックで示す分割要素をマウスなどによって適宜選択して結線することで、入力モデルが構成される。また解析装置10は、制約条件の入力指示をディスプレイに表示する。これに対してユーザがキーボードなどを適宜操作することで、制約条件が入力される。ユーザから入力モデルと制約条件とが入力されると解析装置10は、制約条件を満たすように入力モデルの分割要素をソフトやハードに割り当てる。そして解析装置10は、その割り当てられた出力モデルとその性能とをディスプレイに画像表示する。解析装置10については後で詳説する。
図2に示すように、上記の制約条件としては、ソフト制約条件、ハード制約条件、制約時間、および、ターゲット情報がある。そして図3に示すようにソフト固有の情報としては、ROM容量やRAM容量があり、ハード固有の情報としては、回路面積や消費電力がある。なお上記のROM容量とはプログラムファイルの容量に相当し、RAM容量とはプログラムの一部をCPUが一時的に記憶して処理する容量に相当する。
入力モデルを構成する分割要素に対してソフトに割り当てられる数が増大すると、それに伴ってそのモデルの容量も増大する。同様にして入力モデルを構成する分割要素に対してハードに割り当てられる数が増大すると、それに伴ってそのモデルの回路面積や消費電力も増大する。また、概して処理時間はソフトよりもハードの方が短い。そのため、入力モデルを構成する分割要素におけるハードに割り当てられる数が増大すると、それに伴ってそのモデルの処理時間が短くなる。
上記のソフト制約条件は機能モデルのROM容量やRAM容量の上限を定める値であり、ハード制約条件は機能モデルの回路面積や消費電力の上限を定める値である。また制約時間は機能モデルの処理時間の上限を定める値であり、ターゲット情報は入力モデルをどのような仕様の製品によって構成するのかを指定する情報である。
図2に示すように、データベース20には各ターゲット情報に対するソフト情報とハード情報とが記憶されている。図3に示すようにソフト情報としては、各種ターゲットS1、S2…における、分割要素a,b…に関するROM容量、RAM容量、および、処理時間がある。またハード情報としては、各種ターゲットS1、S2…における、分割要素a,b…に関する回路面積、消費電力、および、処理時間がある。なお図3に示すように本実施形態のデータベース20には、複数の分割要素a,bを結線して最適化した場合のソフト情報、ハード情報、処理時間も記憶されている。また詳しくは図示しないが、結線された複数の分割要素間の通信遅延時間も記憶されている。
なお、図3ではソフト情報とハード情報とに処理時間が含まれるように記載されているが、この処理時間はソフトやハード固有の情報ではない。したがって以下においてはソフト固有の情報であるROM容量やRAM容量をソフト情報、ハード固有の情報である回路面積や消費電力をハード情報として記載する。また上記した最適化とは、上記のソフト情報、ハード情報、および、処理時間を最適な状態に近づけることを示している。
次に、解析装置10を詳説する。解析装置10は、図2に示すようにモデル情報保持部11、分割解探索部12、および、探索結果反映部13を有する。
モデル情報保持部11は、ユーザから入力モデルが入力されると、それを一時的に保存するものである。モデル情報保持部11は、入力モデルを構成する複数の分割要素と、各分割要素の結線情報を保持する。
分割解探索部12は、モデル情報保持部11から入力モデルを構成する複数の分割要素とその結線情報を読み込むとともに、ユーザから入力された制約条件も読み込む。そして分割解探索部12は入力モデルに含まれる分割要素のソフト情報、ハード情報、処理時間、通信遅延時間それぞれをデータベース20から読み込む。その後に分割解探索部12は、制約情報に含まれるソフト制約条件、ハード制約条件、および、制約時間を満たすように、入力モデルの分割要素をソフト若しくはハードに割り当てる。分割解探索部12は割り当てが終了すると、出力モデルの分割要素のいずれがソフトでありハードであるのかを探索結果反映部13に出力するとともに、ディスプレイに出力モデルの性能を表示させる。また分割解探索部12は割り当てが成功したのかそれとも失敗したのかの結果もディスプレイに表示させる。
なお上記の通信遅延時間はユーザによって指定可能となっており、ユーザから通信遅延時間が入力されている場合、分割解探索部12はデータベース20から読み込んだ通信遅延時間だけではなく、ユーザが指定した通信遅延時間にも基づいて機能モデルの処理時間を計算する。この通信遅延時間の指定は、ユーザが上記の制約条件に含めることで成される。
分割解探索部12は、特許請求の範囲に記載のソフト化手段、性能計算手段、第1判定手段、第2判定手段、および、ハード化手段を有している。したがって分割解探索部12は、特許請求の範囲に記載の割合順位計算手段、重みづけ設定手段、大きさ順位計算手段、ハード化優先順位計算手段、および、仮モデル生成手段も有している。図2に示すように分割解探索部12が上記の複数の手段それぞれの機能を有しているが、この機能を複数の要素が有してもよい。
探索結果反映部13は、モデル情報保持部11にて保持されていた入力モデルの分割要素と結線情報とを読み込むとともに、分割解探索部12から分割要素のソフトとハードの割り当て結果を受け取る。そして探索結果反映部13は割り当てが成功した場合、入力モデルの分割要素の内のハードに割り当てられた部位を例えば図1および図2において破線で示すように視覚的に強調して、ディスプレイに画像表示するための画像データを作成する。これとは異なり割り当てが失敗した場合、探索結果反映部13は制約条件を満たすのに障害となっている分割要素を他の分割要素よりも視覚的に強調して、ディスプレイに画像表示するための画像データを作成する。若しくは、探索結果反映部13は上記の障害となっている分割要素を除いた場合に制約条件を満たす複数の分割要素を、障害となっている分割要素よりも視覚的に強調して、ディスプレイに画像表示するための画像データを作成する。これにより解析装置10によって探索された出力モデルとその性能、および、割り当ての成功と失敗がディスプレイを介してユーザに画像表示される。探索結果反映部13が特許請求の範囲に記載の画像形成手段に相当する。
次に、入力モデルのソフトハード割り当て処理(ソフトハード割り当て方法)を図4〜図6に基づいて説明する。図4に示すように解析装置10は、ステップS10においてユーザからの入力モデルと制約条件の入力があったか否かを判定する。入力モデルと制約条件の入力があった場合、解析装置10はステップS20へと進む。これとは異なり入力モデルと制約条件の入力がない場合、解析装置10はステップS10を繰り返し、入力モデルと制約条件の入力があるまで待機する。
ステップS20へ進むと解析装置10は、入力モデルの分割要素に関する情報を読み出す。そして解析装置10はステップS30へと進む。このステップS20が、特許請求の範囲に記載の読み出しステップに相当する。
ステップS30へ進むと解析装置10は、制約条件を満たす分割要素のソフトとハードの割り当て解(分割解)を探索する。そして解析装置10はステップS40へと進む。この分割解の探索に関しては後で詳説する。ステップS30が特許請求の範囲に記載の探索ステップに相当する。
ステップS40へ進むと解析装置10は、分割解の探索の結果得られた出力モデルとその性能、および、割り当ての成功若しくは失敗をユーザに画像表示する。
次に、図5に基づいてステップS30の分割解の探索処理(分割解の探索方法)を詳説する。ステップS50において解析装置10(分割解探索部12)は、先ず入力モデルの分割要素の全てをソフトに指定した仮モデルを生成する。ただし、ユーザによってソフトとハードの割り当て対象(分割対象)が指定されている場合、分割解探索部12は分割対象に含まれる分割要素のみをソフトに指定する。この後に分割解探索部12はステップS60へと進む。なお分割対象から外れた分割要素は、ユーザによってソフト若しくはハードに指定されている。この分割対象の指定とソフトとハードの割り当て指定は、ユーザが上記の制約条件に含めることで成される。ステップS50が特許請求の範囲に記載のソフト化処理とソフト化ステップに相当する。
ステップS60へ進むと分割解探索部12は、仮モデルの性能を計算する。すなわち分割解探索部12は、仮モデルのソフト情報(ROM容量、RAM容量)、ハード情報(回路面積、消費電力)、および、処理時間を計算する。そして分割解探索部12はステップS70へと進む。ステップS60が特許請求の範囲に記載の性能計算処理と性能計算ステップに相当する。
なお仮モデルの処理時間は、仮モデルを構成する分割要素単体の処理時間を単に加算しただけでは算出されず、仮モデルの結線状態(回路構成)に依存する。例えば複数の分割要素が並列接続されている場合、その並列接続の処理時間は、並列接続された複数の分割要素の内の最も処理時間の長い分割要素が仮モデルの処理時間に関わり、他の分割要素の処理時間は関わりが無い。また仮モデルの一部がループを成している場合、そのループにて処理にかかる時間は、ループを構成する分割要素それぞれの単体の処理時間を加算した値ではなく、その値を複数回積算した値になる場合がある。
このように仮モデルの処理時間を厳密に計算する場合、仮モデルの結線状態を考慮する必要がある。すなわち、仮モデルをシミュレーションする必要がある。しかしながらこのような計算を行っていると仮モデルの性能計算に多くの時間を割くことと成る。したがって仮モデルの性能を厳密に計算するのか、それともある仮定を設けて仮モデルの性能を疎漏に計算するのかを、ユーザによって指定することが分割解探索部12において可能となっている。この処理時間の計算指定は、ユーザが上記の制約条件に含めることで成される。
上記したある仮定とは、例えば、仮モデルの結線状態を全く考慮せずに仮モデルの分割要素1つ1つの処理時間を単に加算したり、上記のように並列接続の場合の処理時間を考慮して加算したりする仮定である。またループを構成する場合、例えばそのループを構成する分割要素の処理時間の総和を5回積算した値を、そのループで最終的にかかる処理時間として算出する、という仮定である。
ステップS70へ進むと分割解探索部12は、仮モデルの性能が制約条件を満たしているか否かを判定する。仮モデルの性能が制約条件を満たしている場合、分割解探索部12はソフトとハードの割り当てが成功した(分割が成功した)と判定する。そして分割解探索部12は図4に示すステップS40へと進む。これとは異なり、仮モデルの性能が制約条件を満たしていない場合、分割解探索部12はステップS80へと進む。ステップS70が特許請求の範囲に記載の第1判定処理と第1判定ステップに相当する。
ステップS80へ進むと分割解探索部12は、仮モデルの性能が制約条件を満たしていないのは、仮モデルの性能におけるハード性能(回路面積と消費電力)が、ハード制約条件を超えたためであるのか否かを判定する。仮モデルのハード性能がハード制約条件を超えた場合、分割解探索部12はソフトとハードの割り当てが失敗した(分割が失敗した)と判定する。そして分割解探索部12は図4に示すステップS40へと進む。これとは異なり、仮モデルのハード性能がハード制約条件を超えていない場合、分割解探索部12はステップS90へと進む。ステップS80が特許請求の範囲に記載の第2判定処理と第2判定ステップに相当する。
ステップS90へ進むと分割解探索部12は、仮モデルの分割対象に含まれるソフトの分割要素のハード化優先順位を計算する。なお、仮モデルの分割対象に含まれる複数の分割要素の一部がグループとしてユーザに指定されている場合、分割解探索部12はグループを構成する複数の分割要素を1つの分割要素とみなしてハード化優先順位を計算する。そして分割解探索部12はステップS100へと進む。このグループ指定は、ユーザが上記の制約条件に含めることで成される。ハード化優先順位については後で詳説する。
ステップS100へ進むと分割解探索部12は、ハード化優先順位の最も高い分割要素をハードに設定し、ステップS60へと進む。このようにステップS100においてハード化する分割要素の数は1つであるが、このハード化する数(ハード化数)は、ユーザによって指定可能である。このハード化数の指定は、ユーザが上記の制約条件に含めることで成される。ステップS90とステップS100が特許請求の範囲に記載のハード化処理とハード化ステップに相当する。そしてステップS100が特許請求の範囲に記載の仮モデル生成ステップに相当する。
次に、分割解探索部12が上記のステップS60〜ステップS100を繰り返した結果、分割が成功した場合の例を図5および図6に基づいて説明する。
入力モデルの分割要素の全てが分割対象となっている場合、分割解探索部12はステップS50において入力モデルの分割要素の全てをソフトに指定する。したがってこの場合、仮モデルのソフト情報は最大となっており、ハード情報はゼロとなっている。
この仮モデルの場合、処理時間が最も長くなっている。そのため分割解探索部12はステップS70において制約条件を満たしていないと判定する可能性が高い。しかしながらこの仮モデルのハード情報はゼロとなっている。そのため分割解探索部12がステップS70において制約条件を満たしていないと判定して、ステップS80に進んだとしても、ステップS80において仮モデルのハード性能がハード制約条件を超えていないと判定する。そのために分割解探索部12はステップS90へと進む。この際に分割解探索部12は仮モデルのハード化優先順位を計算する。
この計算が行われると、例えば図6の(a)欄に数字で示すように、仮モデルを構成する各分割要素のハード化優先順位が算出される。この後にステップS100へ進むと分割解探索部12は、図6の(a)欄において数字1の記されている分割要素(ハード化優先順位1位の分割要素)を、図6の(b)欄において破線で示すようにハードに設定する。
分割解探索部12は再びステップS60へ進むと、この1つの分割要素がハードに設定された仮モデルの性能を計算し、ステップS70において仮モデルの性能が制約条件を満たしているのか否かを判定する。そして分割解探索部12は仮モデルの性能が制約条件を満たしていないと判定するとステップS80へと進み、ステップS80において仮モデルのハード性能がハード制約条件を超えたか否かを判定する。分割解探索部12は仮モデルのハード性能がハード制約条件を超えていないと判定するとステップS90へと進み、仮モデルのハード化優先順位を再び計算する。
この計算が行われると、例えば図6の(b)欄に数字で示すように、ハードに設定された分割要素を除く分割要素(ソフトに設定された分割要素)のハード化優先順位が算出される。この後にステップS100へ進むと分割解探索部12は、図6の(b)欄において数字1の記されている分割要素を、図6の(c)欄において破線で示すようにハードに設定する。
分割解探索部12は再びステップS60へ進むと、この新たに1つの分割要素がハードに設定された仮モデルの性能を計算し、ステップS70において仮モデルの性能が制約条件を満たしているのか否かを判定する。分割解探索部12は、仮モデルの性能が制約条件を満たしている場合、ソフトとハードの割り当てが成功した(分割が成功した)と判定し、図4に示すステップS40へと進む。
なおこれとは異なり、この新たに1つの分割要素がハードに設定された仮モデルの性能が制約条件を満たしていない場合、分割解探索部12は再びステップS80へと進む。そして分割解探索部12はステップS80において仮モデルのハード性能がハード制約条件を超えたと判定すると、ソフトとハードの割り当てが失敗した(分割が失敗した)と判定し、図4に示すステップS40へと進む。
次に、ハード化優先順位の算出処理(ハード化優先順位の算出方法)を図7に基づいて詳説する。ステップS210において分割解探索部12は、仮モデルの性能の内、ソフト情報にかかわる性能(ソフト性能)、ハード情報にかかわる性能(ハード性能)、制約時間に関わる性能(処理時間)それぞれと、ソフト制約条件、ハード制約条件、制約時間それぞれとの割合を計算する。すなわち分割解探索部12は、ソフト性能をソフト制約条件で割ったソフト割合、ハード性能をハード制約条件で割ったハード割合、処理時間を制約時間で割った時間割合を計算する。そしてこれら複数の割合の1からの乖離幅を算出し、その乖離幅の高い順に順位付けを行う。すなわち割合順位を計算する。
なお、上記のソフト性能としては、ROM性能、RAM性能があり、ハード性能としては、回路面積性能、消費電力性能がある。したがって割合順位は5位まで決定される。ステップS210が特許請求の範囲に記載の割合順位計算処理と割合順位計算ステップに相当する。この後に分割解探索部12はステップS220へと進む。
ステップS220へ進むと分割解探索部12は、割合順位に準じて、ソフト情報の割合、ハード情報の割合、処理時間の割合それぞれの重みづけを設定する。例えば割合順位においてソフト情報の割合が1位、処理時間の割合が2位、ハード情報の割合が3位の場合、ソフト情報の割合の重みづけを最も重くする。そして処理時間の割合の重みづけを次に重くし、ハード情報の割合の重みづけを最も軽くする。もちろん、上記のようにソフト性能とハード性能とを細かく分けた場合、割合順位は5位まで決定され、重みづけも5段階に分けられる。ステップS220が特許請求の範囲に記載の重みづけ設定処理と重みづけ設定ステップに相当する。この後に分割解探索部12はステップS230へと進む。
ステップS230へ進むと分割解探索部12は、分割対象に含まれ、ソフトに設定された複数の分割要素それぞれのソフト情報、ハード情報、および、処理時間それぞれを比較し、その大きさの順位付けを行う。例えば図6の(a)欄に示すように仮モデルが6つの分割要素を有する場合、この6つの分割要素それぞれのソフト情報、ハード情報、および、処理時間に関する大きさ順位付けを行う。したがってソフト情報について6位までの大きさ順位が計算され、ハード情報について6位までの大きさ順位が計算され、処理時間について6位までの大きさ順位が計算される。なお処理時間はソフトの場合とハードの場合とで異なるが、ここで順位づけ対象となる処理時間は、ハードの場合の処理時間である。ステップS230が特許請求の範囲に記載の大きさ順位計算処理と大きさ順位計算ステップに相当する。この後に分割解探索部12はステップS240へと進む。
ステップS240へ進むと分割解探索部12は、割合順位に対応する重みづけ、および、大きさ順位に基づいて、分割要素それぞれのハード化優先順位を計算する。上記した6位まである5つの大きさ順位に対して、5つの重みづけを乗算し、この5つの乗算値を分割要素それぞれに対して算出する。この5つの乗算値の総和の順位が上記のハード化優先順位に相当し、図6の(a)欄に示すように、各分割要素に対しての順位が決定される。ステップS240が特許請求の範囲に記載のハード化優先順位計算処理とハード化優先順位計算ステップに相当する。
なお、ハード化優先順位の計算結果、乗算値の総和が同率で1位になる場合がある。この場合、この同率の分割要素それぞれをハード化してもよい。若しくは、入力に最も近いほうをハード化してもよいし、その逆に入力から最も遠いほう(出力に最も近い方)をハード化してもよい。さらに例示すれば、その1位の分割要素と結線された分割要素がソフトかハードかによって決定してもよい。ハードの分割要素同士を結線した構成のほうが、ハードの分割要素とソフトの分割要素とを結線した構成よりも、通信遅延時間が短くなる。そのため、すでにハードに指定された分割要素と結線された1位の分割要素がある場合、この分割要素をハード化してもよい。
次に、本実施形態に係るソフトハード割り当て装置100、ソフトハード割り当て方法、および、ソフトハード割り当てプログラムの作用効果を説明する。上記したように、入力モデルの処理時間だけではなく、ソフト固有のソフト情報、ハード固有のハード情報を加味して、ソフトかハードかを分割要素に割り当てる。これによれば、単に入力モデルの処理時間だけに着目してソフトかハードかを分割要素に割り当てる構成とは異なり、ユーザが上記のソフト情報やハード情報を考慮して再度割り当てを行わなくとも良くなる。このように本実施形態のソフトハード割り当て装置100、方法、および、プログラムは、上記の比較構成と比べてユーザの要望により適った割り当てを行うことができ、割り当て時間を短縮することができる。
分割解探索部12は、分割対象の全てをソフトに割り当てた後、制約条件を満たすまで、若しくは、ハード制約条件を超えるまで、順次ハード化優先順位を計算し、その順位に準じてソフトに割り当てられた分割要素をハードに割り当てることを繰り返す。これによれば、ハード情報が大きくなることの抑制された出力モデルを得ることができる。すなわち、回路面積や消費電力の抑えられた出力モデルを得ることができる。
分割解探索部12は、ソフト性能、ハード性能、および、処理時間に関わる割合順位を計算し、その割合順位に準じて重みづけを設定する。また分割解探索部12は、複数の分割要素それぞれのソフト情報、ハード情報、および、処理時間の大きさの順位付けを計算する。そして分割解探索部12は、大きさ順位に対して重みづけを乗算してハード化優先順位を決定する。これによれば、未達の制約条件に対して、それを満たすのに最も有効な分割要素をハードの割り当て対象に選択することができる。
データベース20には、複数の分割要素a,bを結線して最適化した場合のソフト情報、ハード情報、および、処理時間が記憶されている例を示した。これによれば、出力モデルのソフト情報、ハード情報、および、処理時間をより正確に計算することができる。
通信遅延時間がユーザによって指定可能である。これによればデータベースに記憶されていない情報に基づいて、処理時間を計算することができる。
仮モデルの性能を厳密に計算するのか、それともある仮定を設けて仮モデルの性能を疎漏に計算するのかをユーザによって指定可能である。これによれば出力モデルの算出時間を調整することができる。
ハード化数がユーザによって指定可能である。これによればハード化数を大きくすることで出力モデルの算出を早めることができる。これとは反対にハード化数を小さくすることでハード性能の増大の抑制された出力モデルを得ることができる。
以上、本発明の好ましい実施形態について説明したが、本発明は上記した実施形態になんら制限されることなく、本発明の主旨を逸脱しない範囲において、種々変形して実施することが可能である。
本実施形態のデータベース20には、複数の分割要素a,bを結線して最適化した場合のソフト情報、ハード情報、処理時間が記憶されている例を示した。しかしながらデータベース20にこれらの情報が記憶されていなくともよい。
本実施形態のデータベース20には、結線された複数の分割要素間の通信遅延時間が記憶されている例を示した。しかしながらデータベース20にこの情報が記憶されていなくともよい。
本実施形態では通信遅延時間がユーザによって指定可能である例を示した。しかしながら通信遅延時間はユーザによって指定可能となっていなくともよい。
本実施形態の探索結果反映部13は割り当てが成功した場合、入力モデルの分割要素の内のハードに割り当てられた部位を視覚的に強調してディスプレイに画像表示するための画像データを作成する例を示した。しかしながらこれとは反対に、探索結果反映部13は割り当てが成功した場合、入力モデルの分割要素の内のソフトに割り当てられた部位を視覚的に強調してディスプレイに画像表示するための画像データを作成してもよい。
本実施形態では入力モデルを構成する複数の分割要素の内の一部がユーザによって分割対象に指定できる例を示した。しかしながら分割対象をユーザによって指定できなくともよい。
本実施形態では仮モデルの処理時間を厳密に計算するのか、それともある仮定を設けて疎漏に計算するのかをユーザによって指定可能である例を示した。しかしながら処理時間の計算の厳密性をユーザによって指定できなくともよい。処理時間を疎漏に計算するように固定されていてもよいし、厳密に計算するように固定されていてもよい。
本実施形態ではハード化数がユーザによって指定可能である例を示した。しかしながらハード化数はユーザによって指定可能でなくともよい。
10…解析装置
12…分析解探索部
20…データベース
100…ソフトハード割り当て装置
12…分析解探索部
20…データベース
100…ソフトハード割り当て装置
Claims (19)
- 機能モデルを構成する複数の分割要素それぞれを表す記号をユーザが適宜選択して結線することで、ユーザが前記機能モデルを作成するための情報の記憶されたデータベース(20)と、
ユーザが作成した前記機能モデル、および、ユーザが定めた制約条件に対して、前記制約条件を満たすように前記機能モデルを構成する複数の前記分割要素の内のいずれをソフトウエア若しくはハードウエアに割り当てるかを探索する分割解探索部(12)と、を有し、
前記データベースには、前記分割要素の情報として、前記ソフトウエア固有のソフト情報、前記ハードウエア固有のハード情報、および、前記ソフトウエアと前記ハードウエアそれぞれの処理時間が記憶され、
前記制約条件として、前記ソフト情報を制約するソフト制約条件、前記ハード情報を制約するハード制約条件、および、前記処理時間を制約する制約時間があるソフトウエアハードウエア割り当て装置。 - 前記分割解探索部は、
前記機能モデルの内、分割対象となる全ての前記分割要素を前記ソフトウエアに設定した仮モデルを生成するソフト化処理を行うソフト化手段と、
前記仮モデルの性能を計算する性能計算処理を行う性能計算手段と、
前記仮モデルの性能が前記制約条件を満たすか否かを判定する第1判定処理を行う第1判定手段と、
前記仮モデルの性能が前記制約条件を満たさない場合、前記仮モデルの性能が前記ハード制約条件を超えたか否かを判定する第2判定処理を行う第2判定手段と、
前記仮モデルの性能の内の前記ハード情報に関わるハード性能が前記ハード制約条件を超えていない場合、前記制約条件と前記分割要素の情報とに基づいて、前記ソフトウエアに設定された複数の前記分割要素の内の少なくとも1つを前記ハードウエアに設定して新たな前記仮モデルを生成するハード化処理を行うハード化手段と、を有し、
前記第1判定手段が前記仮モデルは前記制約条件を満たすと判定する、若しくは、前記第2判定手段が前記仮モデルは前記ハード制約条件を超えると判定するまで、前記性能計算手段、前記第1判定手段、前記第2判定手段、および、前記ハード化手段は、前記性能計算処理、前記第1判定処理、前記第2判定処理、および、前記ハード化処理を繰り返す請求項1に記載のソフトウエアハードウエア割り当て装置。 - 前記第1判定手段は、前記第1判定処理において前記仮モデルが前記制約条件を満たすと判定すると、前記機能モデルの前記ソフトウエアと前記ハードウエアの割り当てが成功したと判定し、
前記第2判定手段は、前記第2判定処理において前記仮モデルが前記ハード制約条件を超えたと判定すると、前記機能モデルの前記ソフトウエアと前記ハードウエアの割り当てが失敗したと判定する請求項2に記載のソフトウエアハードウエア割り当て装置。 - 前記ハード化手段は、
前記仮モデルにおける前記ソフト制約条件に対する前記ソフト情報の割合、前記ハード制約条件に対する前記ハード情報の割合、および、前記制約時間に対する前記処理時間の割合を計算して、その割合の大きさに対する割合順位を計算する割合順位計算手段と、
前記割合順位に準じて、前記ソフト情報の割合、前記ハード情報の割合、前記処理時間の割合それぞれの重みづけを設定する重みづけ設定手段と、
前記仮モデルにおける前記分割対象に含まれ、前記ソフトウエアに設定された複数の前記分割要素それぞれの前記ソフト情報、前記ハード情報、および、前記処理時間を比較して、それぞれの大きさ順位を計算する大きさ順位計算手段と、
前記割合順位に対応する前記重みづけ、および、前記大きさ順位に基づいて、前記ソフトウエアに設定された複数の前記分割要素の内のいずれを前記ハードウエアに設定するのかを決定するハード化優先順位を計算するハード化優先順位計算手段と、
少なくとも前記ハード化優先順位において最も順位の高い前記分割要素を前記ハードウエアに設定して新たな前記仮モデルを生成する仮モデル生成手段と、を有する請求項2または請求項3に記載のソフトウエアハードウエア割り当て装置。 - 1度の前記ハード化処理において前記分割要素を前記ハードウエアに設定する数は、予め前記データベースに記憶されているとともに、ユーザによって指定変更可能である請求項4に記載のソフトウエアハードウエア割り当て装置。
- 前記データベースには、前記分割要素間の通信遅延時間も記憶されており、
前記性能計算手段は、前記通信遅延時間を考慮して、前記仮モデルの前記処理時間を計算する請求項2〜5いずれか1項に記載のソフトウエアハードウエア割り当て装置。 - 前記データベースには、複数の前記分割要素間を結線して最適化した場合の前記ソフト情報、前記ハード情報、前記処理時間、および、前記通信遅延時間も記憶されており、
前記性能計算手段は、複数の前記分割要素間の結線の最適化を考慮して、前記仮モデルの前記処理時間を計算する請求項6に記載のソフトウエアハードウエア割り当て装置。 - 前記ソフト化手段は、ユーザによって指定された前記分割対象に含まれる前記分割要素を前記ソフトウエアに設定する請求項2〜7いずれか1項に記載のソフトウエアハードウエア割り当て装置。
- 前記性能計算手段は、前記分割対象に含まれ、前記ソフト化手段および前記ハード化手段によって前記ソフトウエアか前記ハードウエアかに設定された前記分割要素、および、前記分割対象から外され、ユーザによって前記ソフトウエア、若しくは、前記ハードウエアに指定された前記分割要素から構成される前記仮モデルの性能を計算する請求項8に記載のソフトウエアハードウエア割り当て装置。
- 前記分割解探索部は、前記機能モデルを構成する複数の前記分割要素が前記ソフトウエア若しくは前記ハードウエアに割り当てられた出力モデルを、ディスプレイを介してユーザに画像表示するための画像データを形成する画像形成手段を有する請求項1〜9いずれか1項に記載のソフトウエアハードウエア割り当て装置。
- 前記画像形成手段は、前記出力モデルに含まれる前記ハードウエアと前記ソフトウエアの一方を他方よりも視覚的に強調して前記ディスプレイに表示するように前記画像データを形成する請求項10に記載のソフトウエアハードウエア割り当て装置。
- 前記分割解探索部は、前記ディスプレイを介して、前記出力モデルの性能をユーザに画像表示する請求項10または請求項11に記載のソフトウエアハードウエア割り当て装置。
- 前記ソフト情報にはROM容量、および、RAM容量が含まれ、
前記ハード情報には回路面積、および、消費電力が含まれる請求項1〜12いずれか1項に記載のソフトウエアハードウエア割り当て装置。 - ユーザが作成した機能モデル、および、ユーザが定めた制約条件に対して、データベース(20)から前記機能モデルを構成する分割要素の情報を読み出す読み出しステップと、
前記読み出しステップ後、前記制約条件を満たすように前記機能モデルを構成する複数の前記分割要素の内のいずれをソフトウエア若しくはハードウエアに割り当てるかを分割解探索部(12)に探索させる探索ステップと、を有し、
前記データベースには、前記分割要素の情報として、前記ソフトウエア固有のソフト情報、前記ハードウエア固有のハード情報、および、前記ソフトウエアと前記ハードウエアそれぞれの処理時間が記憶され、
前記制約条件として、前記ソフト情報を制約するソフト制約条件、前記ハード情報を制約するハード制約条件、および、前記処理時間を制約する制約時間があるソフトウエアハードウエア割り当て方法。 - 前記探索ステップは、
前記機能モデルの内、分割対象となる全ての前記分割要素を前記ソフトウエアに設定した仮モデルを生成するソフト化ステップと、
前記仮モデルの性能を計算する性能計算ステップと、
前記性能計算ステップ後、前記仮モデルの性能が前記制約条件を満たすか否かを判定する第1判定ステップと、
前記第1判定ステップにおいて前記仮モデルの性能が前記制約条件を満たさない場合、前記仮モデルの性能が前記ハード制約条件を超えたか否かを判定する第2判定ステップと、
前記第2判定ステップにおいて前記仮モデルの性能の内の前記ハード情報に関わるハード性能が前記ハード制約条件を超えていない場合、前記制約条件と前記分割要素の情報とに基づいて、前記ソフトウエアに設定された複数の前記分割要素の内の少なくとも1つを前記ハードウエアに設定して新たな前記仮モデルを生成するハード化ステップと、を有し、
前記第1判定ステップにおいて前記仮モデルが前記制約条件を満たすと判定する、若しくは、前記第2判定ステップにおいて前記仮モデルが前記ハード制約条件を超えると判定するまで、前記性能計算ステップ、前記第1判定ステップ、前記第2判定ステップ、および、前記ハード化ステップを前記分割解探索部によって繰り返えさせる請求項14に記載のソフトウエアハードウエア割り当て方法。 - 前記ハード化ステップは、
前記仮モデルにおける前記ソフト制約条件に対する前記ソフト情報の割合、前記ハード制約条件に対する前記ハード情報の割合、および、前記制約時間に対する前記処理時間の割合を計算して、その割合の大きさに対する割合順位を計算する割合順位計算ステップと、
前記割合順位計算ステップ後、前記割合順位に準じて、前記ソフト情報の割合、前記ハード情報の割合、前記処理時間の割合それぞれの重みづけを設定する重みづけ設定ステップと、
前記仮モデルにおける前記分割対象に含まれ、前記ソフトウエアに設定された複数の前記分割要素それぞれの前記ソフト情報、前記ハード情報、および、前記処理時間を比較して、それぞれの大きさ順位を計算する大きさ順位計算ステップと、
前記重みづけ設定ステップ、および、前記大きさ順位計算ステップ後、前記割合順位に対応する前記重みづけ、および、前記大きさ順位に基づいて、前記ソフトウエアに設定された複数の前記分割要素の内のいずれを前記ハードウエアに設定するのかを決定するハード化優先順位を計算するハード化優先順位計算ステップと、
前記ハード化優先順位計算ステップ後、少なくとも前記ハード化優先順位において最も順位の高い前記分割要素を前記ハードウエアに設定して新たな前記仮モデルを生成する仮モデル生成ステップと、を有する請求項15に記載のソフトウエアハードウエア割り当て方法。 - ユーザが作成した機能モデル、および、ユーザが定めた制約条件に対して、データベースから前記機能モデルを構成する分割要素の情報を読み出す読み出しステップと、
前記読み出しステップ後、前記制約条件を満たすように前記機能モデルを構成する複数の前記分割要素の内のいずれをソフトウエア若しくはハードウエアに割り当てるかを探索する探索ステップと、をコンピュータに実行させるソフトウエアハードウエア割り当てプログラムであって、
前記データベースには、前記分割要素の情報として、前記ソフトウエア固有のソフト情報、前記ハードウエア固有のハード情報、および、前記ソフトウエアと前記ハードウエアそれぞれの処理時間が記憶され、
前記制約条件として、前記ソフト情報を制約するソフト制約条件、前記ハード情報を制約するハード制約条件、および、前記処理時間を制約する制約時間があるソフトウエアハードウエア割り当てプログラム。 - 前記探索ステップは、
前記機能モデルの内、分割対象となる全ての前記分割要素を前記ソフトウエアに設定した仮モデルを生成するソフト化ステップと、
前記仮モデルの性能を計算する性能計算ステップと、
前記性能計算ステップ後、前記仮モデルの性能が前記制約条件を満たすか否かを判定する第1判定ステップと、
前記第1判定ステップにおいて前記仮モデルの性能が前記制約条件を満たさない場合、前記仮モデルの性能が前記ハード制約条件を超えたか否かを判定する第2判定ステップと、
前記第2判定ステップにおいて前記仮モデルの性能の内の前記ハード情報に関わるハード性能が前記ハード制約条件を超えていない場合、前記制約条件と前記分割要素の情報とに基づいて、前記ソフトウエアに設定された複数の前記分割要素の内の少なくとも1つを前記ハードウエアに設定して新たな前記仮モデルを生成するハード化ステップと、を有し、
前記第1判定ステップにおいて前記仮モデルが前記制約条件を満たすと判定する、若しくは、前記第2判定ステップにおいて前記仮モデルが前記ハード制約条件を超えると判定するまで、前記性能計算ステップ、前記第1判定ステップ、前記第2判定ステップ、および、前記ハード化ステップを前記コンピュータに繰り返えさせる請求項17に記載のソフトウエアハードウエア割り当てプログラム。 - 前記ハード化ステップは、
前記仮モデルにおける前記ソフト制約条件に対する前記ソフト情報の割合、前記ハード制約条件に対する前記ハード情報の割合、および、前記制約時間に対する前記処理時間の割合を計算して、その割合の大きさに対する割合順位を計算する割合順位計算ステップと、
前記割合順位計算ステップ後、前記割合順位に準じて、前記ソフト情報の割合、前記ハード情報の割合、前記処理時間の割合それぞれの重みづけを設定する重みづけ設定ステップと、
前記仮モデルにおける前記分割対象に含まれ、前記ソフトウエアに設定された複数の前記分割要素それぞれの前記ソフト情報、前記ハード情報、および、前記処理時間を比較して、それぞれの大きさ順位を計算する大きさ順位計算ステップと、
前記重みづけ設定ステップ、および、前記大きさ順位計算ステップ後、前記割合順位に対応する前記重みづけ、および、前記大きさ順位に基づいて、前記ソフトウエアに設定された複数の前記分割要素の内のいずれを前記ハードウエアに設定するのかを決定するハード化優先順位を計算するハード化優先順位計算ステップと、
前記ハード化優先順位計算ステップ後、少なくとも前記ハード化優先順位において最も順位の高い前記分割要素を前記ハードウエアに設定して新たな前記仮モデルを生成する仮モデル生成ステップと、を有する請求項18に記載のソフトウエアハードウエア割り当てプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015096490A JP2016212674A (ja) | 2015-05-11 | 2015-05-11 | ソフトウエアハードウエア割り当て装置、ソフトウエアハードウエア割り当て方法、および、ソフトウエアハードウエア割り当てプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015096490A JP2016212674A (ja) | 2015-05-11 | 2015-05-11 | ソフトウエアハードウエア割り当て装置、ソフトウエアハードウエア割り当て方法、および、ソフトウエアハードウエア割り当てプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2016212674A true JP2016212674A (ja) | 2016-12-15 |
Family
ID=57551295
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015096490A Pending JP2016212674A (ja) | 2015-05-11 | 2015-05-11 | ソフトウエアハードウエア割り当て装置、ソフトウエアハードウエア割り当て方法、および、ソフトウエアハードウエア割り当てプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2016212674A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107038280A (zh) * | 2017-03-10 | 2017-08-11 | 烽火通信科技股份有限公司 | 一种软硬件协同仿真的验证系统及其方法 |
-
2015
- 2015-05-11 JP JP2015096490A patent/JP2016212674A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107038280A (zh) * | 2017-03-10 | 2017-08-11 | 烽火通信科技股份有限公司 | 一种软硬件协同仿真的验证系统及其方法 |
CN107038280B (zh) * | 2017-03-10 | 2020-09-15 | 烽火通信科技股份有限公司 | 一种软硬件协同仿真的验证系统及其方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6449761B1 (en) | Method and apparatus for providing multiple electronic design solutions | |
US6446239B1 (en) | Method and apparatus for optimizing electronic design | |
CN103226467B (zh) | 数据并行处理方法、系统及负载均衡调度器 | |
JP4719265B2 (ja) | 確率的相互接続構造設計のためのシステムおよび方法 | |
US10496436B2 (en) | Method and apparatus for automatically scheduling jobs in computer numerical control machines using machine learning approaches | |
JP6892424B2 (ja) | ハイパーパラメータチューニング方法、装置及びプログラム | |
US10969764B2 (en) | Support device, design support method and computer-readable non-transitory medium | |
US9996391B2 (en) | Parallel computer system, method of controlling parallel computer system, and recording medium | |
Deng et al. | A data and task co-scheduling algorithm for scientific cloud workflows | |
JP2018514869A (ja) | 並列プロセッサカーネルのディスパッチサイズのコンカレンシーファクタを決定するシステム及び方法 | |
CN114386349A (zh) | 系统级数字电路的布线方法及装置、设备、存储介质 | |
CN112257368B (zh) | 时钟布局方法、装置、eda工具及计算机可读存储介质 | |
US20200089729A1 (en) | Optimization problem arithmetic method and optimization problem arithmetic apparatus | |
US20200052635A1 (en) | Method for searching excitation signal of motor, and electronic device | |
US20100162185A1 (en) | Electronic circuit design | |
JP2016212674A (ja) | ソフトウエアハードウエア割り当て装置、ソフトウエアハードウエア割り当て方法、および、ソフトウエアハードウエア割り当てプログラム | |
US20180174084A1 (en) | Device for deciding number of persons to be assigned and method for deciding number of persons to be assigned | |
JP2018116507A (ja) | 作業編成装置、作業編成方法及び作業編成プログラム | |
JP2009098924A (ja) | 部材割付システム | |
CN110928253B (zh) | 自动制造系统的动态加权启发式调度方法 | |
JP2006209432A (ja) | セルインスタンス生成方法 | |
JP2009020786A (ja) | ネットリストの配線難易度計算方法 | |
JP5835103B2 (ja) | 充足可能性問題の計算方法、充足可能性問題の計算システム及びプログラム | |
US12019964B1 (en) | Optimizing use of computer resources in implementing circuit designs through machine learning | |
US11928500B1 (en) | Multi-threaded network routing based on partitioning |