説明

ソフトウェアのハードウェア化の性能見積り方法、装置、プログラムおよびその記録媒体

【課題】ソフトウェアのハードウェア化の性能見積り方法、装置、プログラムおよびその記録媒体を提供する。
【解決手段】中央演算処理装置100は、並列化性能見積りプログラム8004を実行して、並列化するタスク名8002およびその並列度8003に基づいてタスクごとの処理時間を算出し、タスク間で変数を伝播する場合に一方のタスクが他方のタスクに起動をかけるタイミングを抽出し、この起動をかけるタイミングを考慮して上記並列度で処理時間が最短となるように並列化するタスク名のタスクの実行順序を決定する。処理時間が目標性能を満たさない場合、並列化性能見積りプログラム8004を再度実行して、ハードウェア化するタスクの処理時間8008およびハードウェア化するタスクによる上記起動をかけるタイミング8009を上記実行順序の決定に反映させる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ソフトウェアのハードウェア化の性能見積り方法、装置、プログラムおよびその記録媒体に関するものである。
【背景技術】
【0002】
近年、処理速度向上のために、半導体集積回路により、コンピュータのソフトウェアにより実現される機能の全体あるいは一部のハードウェア化が行われている。ソフトウェアをハードウェア化する半導体集積回路の設計においては、処理速度向上のために、ソフトウェアの全体あるいは一部をハードウェア化する際の、ソフトウェア部分とハードウェア部分を合わせた全体の性能すなわち処理時間を見積る必要がある。すなわち、ハードウェア化に際しては、目標性能を設定し、ソフトウェア部分とハードウェア部分を合わせた全体の性能が、目標性能を満たすかどうかを見積る必要がある。従来、ソフトウェアの機能をマルチプロセッサ向けに並列化する際の性能見積り方法が知られている。特開2004−341750号公報には、並列計算機システムの並列効率などの並列性能の評価指標算出を、プロセッサ数を変えながら行う複数回の測定を不要とし、1回の測定で行う技術が開示されている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2004−341750号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
従来の性能見積り方法は、ソフトウェアを、マルチプロセッサ向けに並列化して動作させた場合の性能見積りはできるが、ソフトウェアの全体あるいは一部をハードウェア化する際の、ソフトウェア部分とハードウェア部分を合わせた全体の性能を見積ることができない。
本発明の目的は、ソフトウェアの全体あるいは一部をハードウェア化して並列化する際の、ソフトウェア部分とハードウェア部分を合わせた全体の性能を見積る、ソフトウェアのハードウェア化の性能見積り方法、装置、プログラムおよびその記録媒体を提供することにある。
【課題を解決するための手段】
【0005】
本発明は、上記目的を達成するため以下のようなソフトウェアのハードウェア化の性能見積り方法、装置、プログラムおよびその記録媒体を提供する。
(1)ソフトウェアのハードウェア化の性能見積り方法であって、
指定されたソフトウェア中で並列化するタスク名およびその並列度を入力する工程、
前記並列化するタスク名およびその並列度に基づいてタスクごとの処理時間を算出する工程、
前記タスク間で変数を伝播する場合に一方のタスクが他方のタスクに起動をかけるタイミングを抽出する工程、
前記起動をかけるタイミングを考慮して前記並列度で処理時間が最短となるように前記並列化するタスク名のタスクの実行順序を決定する工程、
前記実行順序による処理時間を出力する工程、
前記処理時間が目標性能を満たさない場合に、前記タスク中でハードウェア化するタスクの処理時間および前記ハードウェア化するタスクによる前記起動をかけるタイミングを入力する工程、および
前記ハードウェア化するタスクの処理時間および前記ハードウェア化するタスクによる前記起動をかけるタイミングを前記実行順序の決定に反映させる工程、
を備えた方法。
(2)ソフトウェアのハードウェア化の性能見積り装置であって、
指定されたソフトウェア中で並列化するタスク名およびその並列度を入力する手段、
前記並列化するタスク名およびその並列度に基づいてタスクごとの処理時間を算出する手段、
前記タスク間で変数を伝播する場合に一方のタスクが他方のタスクに起動をかけるタイミングを抽出する手段、
前記起動をかけるタイミングを考慮して前記並列度で処理時間が最短となるように前記並列化するタスク名のタスクの実行順序を決定する手段、
前記実行順序による処理時間を出力する手段、
前記処理時間が目標性能を満たさない場合に、前記タスク中でハードウェア化するタスクの処理時間および前記ハードウェア化するタスクによる前記起動をかけるタイミングを入力する手段、および
前記ハードウェア化するタスクの処理時間および前記ハードウェア化するタスクによる前記起動をかけるタイミングを前記実行順序の決定に反映させる手段、
を備えた装置。
(3)ソフトウェアのハードウェア化の性能見積りのためにコンピュータを、
指定されたソフトウェア中で並列化するタスク名およびその並列度を入力する手段、
前記並列化するタスク名およびその並列度に基づいてタスクごとの処理時間を算出する手段、
前記タスク間で変数を伝播する場合に一方のタスクが他方のタスクに起動をかけるタイミングを抽出する手段、
前記起動をかけるタイミングを考慮して前記並列度で処理時間が最短となるように前記並列化するタスク名のタスクの実行順序を決定する手段、
前記実行順序による処理時間を出力する手段、
前記処理時間が目標性能を満たさない場合に、前記タスク中でハードウェア化するタスクの処理時間および前記ハードウェア化するタスクによる前記起動をかけるタイミングを入力する手段、および
前記ハードウェア化するタスクの処理時間および前記ハードウェア化するタスクによる前記起動をかけるタイミングを前記実行順序の決定に反映させる手段、
として機能させるためのプログラム。
(4)ソフトウェアのハードウェア化の性能見積りのためにコンピュータを、
指定されたソフトウェア中で並列化するタスク名およびその並列度を入力する手段、
前記並列化するタスク名およびその並列度に基づいてタスクごとの処理時間を算出する手段、
前記タスク間で変数を伝播する場合に一方のタスクが他方のタスクに起動をかけるタイミングを抽出する手段、
前記起動をかけるタイミングを考慮して前記並列度で処理時間が最短となるように前記並列化するタスク名のタスクの実行順序を決定する手段、
前記実行順序による処理時間を出力する手段、
前記処理時間が目標性能を満たさない場合に、前記タスク中でハードウェア化するタスクの処理時間および前記ハードウェア化するタスクによる前記起動をかけるタイミングを入力する手段、および
前記ハードウェア化するタスクの処理時間および前記ハードウェア化するタスクによる前記起動をかけるタイミングを前記実行順序の決定に反映させる手段、
として機能させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の効果】
【0006】
請求項1に係る発明によれば、ソフトウェアの全体あるいは一部をハードウェア化して並列化する際の、ソフトウェア部分とハードウェア部分を合わせた全体の性能を見積る、ソフトウェアのハードウェア化の性能見積り方法を得ることができる。
請求項2に係る発明によれば、ソフトウェアの全体あるいは一部をハードウェア化して並列化する際の、ソフトウェア部分とハードウェア部分を合わせた全体の性能を見積る、ソフトウェアのハードウェア化の性能見積り装置を得ることができる。
請求項3に係る発明によれば、ソフトウェアの全体あるいは一部をハードウェア化して並列化する際の、ソフトウェア部分とハードウェア部分を合わせた全体の性能を見積る、ソフトウェアのハードウェア化の性能見積りのためのプログラムを得ることができる。
請求項4に係る発明によれば、ソフトウェアの全体あるいは一部をハードウェア化して並列化する際の、ソフトウェア部分とハードウェア部分を合わせた全体の性能を見積る、ソフトウェアのハードウェア化の性能見積りのためのプログラムを記録したコンピュータ読み取り可能な記録媒体を得ることができる。
【図面の簡単な説明】
【0007】
【図1】従来技術によるソフトウェアの性能見積りフローの一例を示す図である。
【図2】本発明によるソフトウェアの性能見積りフローの一例を示す図である。
【図3】ソフトウェアをマルチプロセッサ向けに並列化し性能見積りする際の従来のシステム構成の一例を示す図である。
【図4】性能を見積る対象とされるソフトウェアの一例を示す図である。
【図5】図4のソフトウェアに対して並列度を1に設定してスケジューリングを実施した例を示す図である。
【図6】図4のソフトウェアに対して並列度を2に設定してスケジューリングを実施した例を示す図である。
【図7】ソフトウェアのタスクをハードウェア化する際の処理の変化の一例を示す図である。
【図8】本発明に係るソフトウェアのハードウェア化の性能見積り方法を実施するためのシステム構成の一例を示す図である。
【図9】処理速度向上のためにソフトウェアの全体あるいは一部をハードウェア化する際の、ソフトウェア部分とハードウェア部分を合わせた全体の性能を見積るための本発明の実施形態の一例を説明するための図である。
【図10】本発明に係るソフトウェアのハードウェア化の性能見積り装置の構成例を示す図である。
【発明を実施するための形態】
【0008】
以下、本発明の実施形態を説明する前に、従来のマルチプロセッサ向けの性能見積り方法について説明する。図3は、ソフトウェアをマルチプロセッサ向けに並列化し性能見積りする際の従来のシステム構成の一例を示す図である。図示のように、性能を見積る対象とされるソフトウェア3001を指定し、ソフトウェア中で並列化する機能すなわちタスク名3002、およびその並列度3003を用いて、性能見積りプログラム3004を実行する。性能見積りプログラム3004では、入力されたタスクのスケジューリングを行い、並列化後の処理時間3005を出力する。そして並列化後の処理時間が目標性能を満たしているかどうかを判定する。
【0009】
ここでスケジューリングとは、複数のタスクにおいてトータルの処理時間が最短となるように各タスクの実行順序を決定することである。その際、タスク間でのタスクの起動および変数の伝播すなわち依存関係を考慮しなければならない。このスケジューリングの様子を以下、図4、図5および図6を用いて説明する。
【0010】
図4は、性能を見積る対象とされるソフトウェアの一例を示す図である。本例のソフトウェアには、タスク1(ソースコード4001)、タスク2(ソースコード4002)、およびタスク3(ソースコード4003)の、3種類のタスクが存在し、それぞれの処理時間は、タスク2>タスク3>タスク1である。また、本例のソフトウェアでは、タスク2がある時点でタスク3の起動(4004)をかけ、変数c(4005)と変数d(4006)がタスク2からタスク3に伝播する構造である。
【0011】
図5は、図4のソフトウェアに対して並列度を1に設定してスケジューリングを実施した例を示す図である。並列度を1に設定してスケジューリングを実施すると、並列化せず逐次実行するため、性能見積り結果の処理時間5001は、タスク1の処理時間5002とタスク2の処理時間5003とタスク3の処理時間5004の和となる。
【0012】
図6は、図4のソフトウェアに対して並列度を2に設定してスケジューリングを実施した例を示す図である。タスク2の処理時間6002は、タスク1の処理時間6001およびタスク3の処理時間6003に比べ最も長い。このため、タスク1およびタスク3は、タスク2の処理前および処理後に処理するのではなく、タスク2と並列に処理するとトータルの処理時間を最短にすることができる。その際、タスク1と、タスク2の間には依存関係が無いため、タスク1とタスク2の実行を同時に開始することが可能であり、並列処理するようにスケジューリングされる。しかし、タスク2とタスク3の間は、タスク2のAの処理6004の末尾でタスク3の起動がかかっており、依存関係が存在する。そのため、タスク2のAの処理6004が完了するまで、タスク3は処理を待機しなければならない。タスク2のAの処理6004以降とタスク3の間には依存関係が無いため、タスク3の起動タイミング以降でタスク2とタスク3を並列処理するようにスケジューリングされる。この場合、見積り結果の処理時間6005は、図示のように、処理時間が最も長いタスク2の処理時間6002に等しい。図6において、処理時間の短縮を図るために処理時間の一番長いタスク2をハードウェア化する場合の、従来技術における問題点について以下説明する。
【0013】
図7は、ソフトウェアのタスクをハードウェア化する際の処理の変化の一例を示す図である。タスク2(7001)は図6のタスク2(6002)と同じものを示しており、タスク2に、A(7002)、B(7003)、C(7004)、D(7005)、E(7006)の処理が存在し、B→C→A→D→Eの順に処理される。このタスク2をハードウェア化(7007)して高速化すると、ソフトウェアのタスク2の各処理である、A、B、C、D、Eの各処理時間7008と比較して、ハードウェアのタスク2の各処理であるA’(7009)、B’(7010)、C’(7011)、D’(7012)、およびE’(7013)の各処理時間7014が短くなる。また、ハードウェアのタスク2の処理B’およびC’がハードウェア化(7007)によって並列に処理(7015)される場合、A’が処理されるタイミングが変化する。
【0014】
すなわち、それまでソフトウェアであったタスク2がハードウェア化されることで、各処理時間7014が、ハードウェア化前の各処理時間7008と比較して短くなり、そしてA’が処理されるタイミングが変化する。これにより、ソフトウェアのタスク1およびタスク3の処理タイミングが変化し、並列処理するタスク間の関係が変化するという影響がある。したがって、ハードウェア化後の、ソフトウェア部分とハードウェア部分を合わせた全体の性能を見積るには、上述の処理タイミングの変化の影響を考慮して再スケジューリングする必要がある。
【0015】
しかし、従来技術では、タスク2のハードウェア化に対し、そのタスクの処理時間変化をパラメータ化(数値化)し、ハードウェア化検討結果の処理時間を設定すること、およびハードウェア化するタスクが起動をかけるタスクの、起動タイミングをパラメータ化し、ハードウェア化検討結果のタスクの起動タイミングを設定することができない。すなわちハードウェア化検討結果の処理時間と、ハードウェア化検討結果のタスクの起動タイミングを、スケジューリング計算に反映した上で再スケジューリングすることができず、ハードウェア化後の、ソフトウェア部分とハードウェア部分を合わせた全体の性能を見積ることができないという問題がある。
【0016】
以下、本発明の実施形態について図面を参照しながら詳細に説明する。図8は、本発明に係るソフトウェアのハードウェア化の性能見積り方法を実施するためのシステム構成の一例を示す図である。まず、性能を見積る対象とされるソフトウェア8001を指定し、そのソフトウェア中で並列化するタスク名8002およびその並列度8003を用いて、並列化性能見積りプログラム8004を実行する。続いて、並列化性能見積りプログラム8004にしたがって、上記並列化するタスク名およびその並列度に基づいてタスクごとの処理時間を算出する。ここで、タスク間で変数を伝播する場合には、一方のタスクが他方のタスクに起動をかけるタイミングを抽出する。そして、この起動をかけるタイミングを考慮して上記並列度で処理時間が最短となるように並列化するタスク名のタスクの実行順序を決定(スケジューリング)し、並列化後の実行順序による処理時間8005を出力する。この並列化後の処理時間が目標性能(目標時間)を満たさない場合に、ソフトウェア8001に係る複数のタスク中でハードウェア化するタスク8006を決定し、そのタスク名8007、そのタスクの処理時間8008、およびそのタスクによる上記起動をかけるタイミング8009を用いて、並列化性能見積りプログラム8004を実行する。これにより、上記ハードウェア化するタスクの処理時間および上記ハードウェア化するタスクによる上記起動をかけるタイミングが並列化性能見積りプログラム8004による上記実行順序の決定に反映される。
【0017】
すなわち、並列化後の処理時間が目標性能を満たさない場合、出力された並列化後の処理時間を勘案して、ハードウェア化するタスク8006を決定する。ハードウェア化するタスク名8007に係るタスクの処理時間8008、およびタスクが起動をかけるタスクの起動タイミング8009を用いて並列化性能見積りプログラム8004を実行し、再スケジューリングを行う。これにより並列化後の処理時間が目標性能を満たした場合、並列化したソフトウェアの全体あるいは一部をハードウェア化する際の、ソフトウェア部分とハードウェア部分を合わせた全体処理時間8010を出力する。
【0018】
図10は、本発明に係るソフトウェアのハードウェア化の性能見積り装置の構成例を示す図である。図示のように、コンピュータとして中央演算処理装置(CPU)100、記憶装置101、入力装置102、および出力装置103がバス104を介して接続されている。記憶装置101には、性能を見積る対象とされるソフトウェア8001、並列化性能見積りプログラム8004、並列化後の処理時間8005、およびソフトウェア部分とハードウェア部分を合わせた全体処理時間8010が格納される。入力装置102からは、並列化するタスク名8002、その並列度8003、ハードウェア化するタスクのタスク名8007、ハードウェア化するタスクの処理時間8008、およびハードウェア化するタスクが起動をかけるタスクの起動タイミング8009が入力可能である。出力装置103は、並列化後の処理時間8005、およびソフトウェア部分とハードウェア部分を合わせた全体処理時間8010を出力可能である。なお、記憶装置101は、本例では単一装置として示されているが、複数の記憶装置で構成してもよい。また記憶装置101は、例えば半導体メモリであるが、これに限定されず、ハードディスク等でもよいし、それらの組合せでもよい。入力装置102は例えばキーボードであるが、これに限定されず、タッチパネル等でもよい。出力装置103は例えばプリンタであるが、これに限定されず、ディスプレイ装置等でもよい。
【0019】
このように、ソフトウェアのハードウェア化の性能見積り装置では、入力装置102より、指定されたソフトウェア中で並列化するタスク名およびその並列度を入力する。中央演算処理装置100は、入力された並列化するタスク名およびその並列度を用いて並列化性能見積りプログラム8004を実行し、タスクごとの処理時間を算出し、またタスク間で変数を伝播する場合に一方のタスクが他方のタスクに起動をかけるタイミングを抽出し、この起動をかけるタイミングを考慮して上記並列度で処理時間が最短となるように並列化するタスク名のタスクの実行順序を決定する。出力装置103は、この実行順序による処理時間(並列化後の処理時間)を出力することができるが、これは必須ではなく、並列化後の処理時間は記憶装置101に出力し格納しておくことができる。入力装置102はまた、上記処理時間が目標性能を満たさない場合に、複数のタスク中でハードウェア化するタスクを決定し、そのタスク名、そのタスクの処理時間、およびそのタスクによる前記起動をかけるタイミングを入力可能とされる。この場合、中央演算処理装置100は、並列化性能見積りプログラム8004を実行して、入力されたハードウェア化するタスクのタスク名、ハードウェア化するタスクの処理時間、およびハードウェア化するタスクによる上記起動をかけるタイミングを、上記実行順序の決定に反映させることができる。
【0020】
次に、本発明によるソフトウェアの全体あるいは一部をハードウェア化する際の、ソフトウェア部分とハードウェア部分を合わせた全体の性能を見積るフローを説明するが、その前に従来技術によるソフトウェアの性能見積りフローについて説明する。
図1は、従来技術によるソフトウェアの性能見積りフローの一例を示す図である。図1において、工程1001では、性能を見積る対象とされるソフトウェアを指定する。工程1002では、ソフトウェア中のタスク名をリスト化する。工程1003では、ソフトウェア中で並列化するタスク名およびその並列度を入力する。工程1004では、ソフトウェア中のタスクごとの処理時間を算出する。工程1005では、タスク間でのタスクの起動、変数の伝播を抽出しリスト化する。工程1006では、入力した並列化するタスク名のタスクを、入力した並列度でスケジューリングする。工程1007では、並列化後の処理時間を出力する。工程1008では、並列化後の処理時間が目標性能を満たしているかどうかの判定を行い、目標性能を満たさない場合は、並列化するタスクの追加および変更、もしくは、並列度を変更して、再度工程1003から上記工程を繰り返し、目標性能を満たす場合は工程1009へ進み処理終了となる。
【0021】
図2は、本発明によるソフトウェアの性能見積りフローの一例を示す図である。図2において、工程2001では、性能を見積る対象とされるソフトウェアを指定する。工程2002では、ソフトウェア中のタスク名をリスト化する。工程2003では、ソフトウェア中で並列化するタスク名およびその並列度を入力する。工程2004では、ソフトウェア中のタスクごとの処理時間を算出する。工程2005では、タスク間でのタスクの起動、変数の伝播を抽出しリスト化する。工程2006では、入力した並列化するタスク名のタスクを、入力した並列度でスケジューリングする。工程2007では、並列化後の処理時間を出力する。工程2008では、並列化後の処理時間が目標性能を満たしているかどうかの判定を行い、目標性能を満たさない場合は工程2009を実施し、満たす場合は工程2012へ進み処理終了となる。工程2009では、ハードウェア化するタスクを決定する。工程2010では、ハードウェア化するタスクの処理時間を設定する。工程2011では、ハードウェア化するタスクが起動するタスクの起動タイミングを設定する。その後、工程2006に戻り、ハードウェア化するタスクの処理時間の設定情報と、ハードウェア化するタスクが起動をかけるタスクのタイミングの設定情報をスケジューリング計算に反映して再スケジューリングする。工程2007では、ハードウェア化後の処理時間を出力し、工程2008で目標性能を満足しているかどうか判定する。そして、再び条件を満たさない場合は、工程2009においてハードウェア化するタスクを決定(変更)し、工程2010においてハードウェア化するタスクの処理時間を設定(変更)し、工程2011におけるハードウェア化するタスクが起動するタスクの起動タイミングを設定(変更)して、再度工程2006以降の工程を繰り返す。そして、目標性能を満たす場合は工程2012へ進み処理終了となる。
【0022】
従来技術と本発明における実施形態の違いは、図1の従来技術のフローでは、工程1008でスケジューリング後の処理時間が目標性能を満足していない場合、工程1003に戻り、並列化するタスクの追加および変更、もしくは、並列度を変更して再見積りするが、図2の本発明によるフローでは、工程2008の判定でスケジューリング後の処理時間が目標性能を満足していない場合、工程2009にてハードウェア化するタスクを決定し、工程2010にてハードウェア化するタスクの処理時間を設定し、工程2011にてハードウェア化するタスクが起動するタスクの起動タイミングを設定し、それらを用いて工程2006において再度スケジューリングを実施するところにある。
【0023】
図9は、処理速度向上のためにソフトウェアの全体あるいは一部をハードウェア化する際の、ソフトウェア部分とハードウェア部分を合わせた全体の性能を見積るための本発明の実施形態の一例を説明するための図である。図9には、ソフトウェアのタスク1(処理時間9008)、タスク2(処理時間9001)、タスク3(処理時間9003)を、並列度を2としてスケジューリングを行い、見積り結果の処理時間9009が目標性能を満たさない場合、その中のタスク2をハードウェア化して再スケジューリングを行う様子を示す。すなわち、ハードウェア化するタスク2の処理時間9002、およびタスク2より起動をかけるタスク3の起動タイミング9004を設定し、再スケジューリング9005を行う。再スケジューリング9005の後、ハードウェア化されたタスク2は処理時間9006が減少し、かつタスク3の起動タイミングが変化する。その結果、見積り結果の処理時間9007は、タスク1の処理時間9008とタスク3の処理時間9003の和となる。図示のように、ハードウェア化前のタスク2のAの処理末尾の起動タイミングは、ハードウェア化後にはタスク2のA’の処理末尾の起動タイミングとなり、時間的に早くなる。すなわち、全体として処理時間が短縮される。
【0024】
上述のものは、コンピュータに次のプログラムを実行させることで実施することができる。すなわち、このプログラムは、ソフトウェアのハードウェア化の性能見積りのためにコンピュータを、指定されたソフトウェア中で並列化するタスク名およびその並列度を入力する手段、前記並列化するタスク名およびその並列度に基づいてタスクごとの処理時間を算出する手段、前記タスク間で変数を伝播する場合に一方のタスクが他方のタスクに起動をかけるタイミングを抽出する手段、前記起動をかけるタイミングを考慮して前記並列度で処理時間が最短となるように前記並列化するタスク名のタスクの実行順序を決定する手段、前記実行順序による処理時間を出力する手段、前記処理時間が目標性能を満たさない場合に、前記タスク中でハードウェア化するタスクの処理時間および前記ハードウェア化するタスクによる前記起動をかけるタイミングを入力する手段、および前記ハードウェア化するタスクの処理時間および前記ハードウェア化するタスクによる前記起動をかけるタイミングを前記実行順序の決定に反映させる手段、として機能させる。このプログラムは、記憶装置に格納しておくことができるが、これに限定されずCDROM等のコンピュータ読み取り可能な記録媒体に記録して又は外部から通信手段によって提供することも可能である。
【0025】
このように本発明は、タスクの処理時間変化をパラメータ化してハードウェア化検討結果の処理時間を設定し、かつハードウェア化するタスクが起動をかけるタスクの起動タイミングをパラメータ化して、ハードウェア化検討結果のタスクの起動タイミングを設定し、前記ハードウェア化検討結果の処理時間と、前記ハードウェア化検討結果のタスクの起動タイミングを、スケジューリング計算に反映した上で再スケジューリングし、ソフトウェアの全体あるいは一部をハードウェア化して並列化する際の、ソフトウェア部分とハードウェア部分を合わせた全体の性能を見積るものである。
【0026】
すなわち、本発明は、処理速度向上のためにソフトウェアの全体あるいは一部をハードウェア化する際の、ソフトウェア部分とハードウェア部分を合わせた全体の性能を見積るものであって、性能を見積る対象とされるソフトウェア、そのソフトウェア中で並列化するタスク名、およびその並列度を入力として、タスクごとの処理時間を算出する機能と、タスク間でのタスクの起動および変数の伝播を抽出し、リスト化する機能と、前記タスクごとの処理時間と、前記タスク間でのタスクの起動、変数の伝播のリストと、前記ソフトウェア中で並列化するタスク名および前記並列度を入力としてスケジューリングする機能を有する。加えて、前記スケジューリングしたソフトウェア中からハードウェア化するタスクを指定する機能と、前記ハードウェア化するタスクの処理時間を設定する機能と、前記リスト化したタスク間でのタスクの起動および変数の伝播をもとに、ハードウェア化するタスクが起動をかけるタスクの起動タイミングを設定する機能と、前記設定したハードウェア化するタスクが起動をかけるタスクの起動タイミングと、前記ハードウェア化するタスクの処理時間の設定情報をスケジューリング計算に反映して再スケジューリングする機能を有するものである。これにより、ソフトウェアの性能すなわち処理時間を目標性能まで向上させるために、ソフトウェアの全体あるいは一部のハードウェア化をする際の、ソフトウェア部分とハードウェア部分を合わせた全体の性能すなわち処理時間を見積ることが容易に可能となり、設計生産性を向上させることができる。
【符号の説明】
【0027】
3001:ソフトウェア、3002:並列化するタスク名、3003:並列度、3004:性能見積りプログラム、3005:並列化後の処理時間、4001:タスク1のソースコード、4002:タスク2のソースコード、4003:タスク3のソースコード、4004:タスクの起動、4005〜4006:タスク3の入力変数、5001:見積り結果の処理時間、5002〜5004:タスクの処理時間、6001〜6003:タスクの処理時間、6004:タスク2のAの処理、6005:見積り結果の処理時間、7001:タスク2、7002〜7006:ソフトウェアのタスク2の処理、7007:ハードウェア化、7008:ソフトウェアのタスク2の処理の処理時間、7009〜7013:ハードウェアのタスク2の処理、7014:ハードウェアのタスク2の処理の処理時間、7015:処理Bと処理Cの並列処理、8001:ソフトウェア、8002:並列化するタスク名、8003:並列度、8004:性能見積りプログラム、8005:並列化後の処理時間、8006:ハードウェア化するタスク、8007:ハードウェア化するタスクのタスク名、8008:ハードウェア化するタスクの処理時間、8009:ハードウェア化するタスクが起動をかけるタスクの起動タイミング、8010:ソフトウェア部分とハードウェア部分をあわせた全体の処理時間、9001:タスク2の処理時間、9002:ハードウェア化するタスクの処理時間、9003:タスク3の処理時間、9004:ハードウェア化するタスクが起動をかけるタスクの起動タイミング、9005:再スケジューリング処理、9006:ハードウェアのタスク2の処理時間、9007:ハードウェア化後の見積り結果の処理時間、9008:タスク1の処理時間、9009:ハードウェア化前の見積り結果の処理時間

【特許請求の範囲】
【請求項1】
ソフトウェアのハードウェア化の性能見積り方法であって、
指定されたソフトウェア中で並列化するタスク名およびその並列度を入力する工程、
前記並列化するタスク名およびその並列度に基づいてタスクごとの処理時間を算出する工程、
前記タスク間で変数を伝播する場合に一方のタスクが他方のタスクに起動をかけるタイミングを抽出する工程、
前記起動をかけるタイミングを考慮して前記並列度で処理時間が最短となるように前記並列化するタスク名のタスクの実行順序を決定する工程、
前記実行順序による処理時間を出力する工程、
前記処理時間が目標性能を満たさない場合に、前記タスク中でハードウェア化するタスクの処理時間および前記ハードウェア化するタスクによる前記起動をかけるタイミングを入力する工程、および
前記ハードウェア化するタスクの処理時間および前記ハードウェア化するタスクによる前記起動をかけるタイミングを前記実行順序の決定に反映させる工程、
を備えた方法。
【請求項2】
ソフトウェアのハードウェア化の性能見積り装置であって、
指定されたソフトウェア中で並列化するタスク名およびその並列度を入力する手段、
前記並列化するタスク名およびその並列度に基づいてタスクごとの処理時間を算出する手段、
前記タスク間で変数を伝播する場合に一方のタスクが他方のタスクに起動をかけるタイミングを抽出する手段、
前記起動をかけるタイミングを考慮して前記並列度で処理時間が最短となるように前記並列化するタスク名のタスクの実行順序を決定する手段、
前記実行順序による処理時間を出力する手段、
前記処理時間が目標性能を満たさない場合に、前記タスク中でハードウェア化するタスクの処理時間および前記ハードウェア化するタスクによる前記起動をかけるタイミングを入力する手段、および
前記ハードウェア化するタスクの処理時間および前記ハードウェア化するタスクによる前記起動をかけるタイミングを前記実行順序の決定に反映させる手段、
を備えた装置。
【請求項3】
ソフトウェアのハードウェア化の性能見積りのためにコンピュータを、
指定されたソフトウェア中で並列化するタスク名およびその並列度を入力する手段、
前記並列化するタスク名およびその並列度に基づいてタスクごとの処理時間を算出する手段、
前記タスク間で変数を伝播する場合に一方のタスクが他方のタスクに起動をかけるタイミングを抽出する手段、
前記起動をかけるタイミングを考慮して前記並列度で処理時間が最短となるように前記並列化するタスク名のタスクの実行順序を決定する手段、
前記実行順序による処理時間を出力する手段、
前記処理時間が目標性能を満たさない場合に、前記タスク中でハードウェア化するタスクの処理時間および前記ハードウェア化するタスクによる前記起動をかけるタイミングを入力する手段、および
前記ハードウェア化するタスクの処理時間および前記ハードウェア化するタスクによる前記起動をかけるタイミングを前記実行順序の決定に反映させる手段、
として機能させるためのプログラム。
【請求項4】
ソフトウェアのハードウェア化の性能見積りのためにコンピュータを、
指定されたソフトウェア中で並列化するタスク名およびその並列度を入力する手段、
前記並列化するタスク名およびその並列度に基づいてタスクごとの処理時間を算出する手段、
前記タスク間で変数を伝播する場合に一方のタスクが他方のタスクに起動をかけるタイミングを抽出する手段、
前記起動をかけるタイミングを考慮して前記並列度で処理時間が最短となるように前記並列化するタスク名のタスクの実行順序を決定する手段、
前記実行順序による処理時間を出力する手段、
前記処理時間が目標性能を満たさない場合に、前記タスク中でハードウェア化するタスクの処理時間および前記ハードウェア化するタスクによる前記起動をかけるタイミングを入力する手段、および
前記ハードウェア化するタスクの処理時間および前記ハードウェア化するタスクによる前記起動をかけるタイミングを前記実行順序の決定に反映させる手段、
として機能させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2013−25703(P2013−25703A)
【公開日】平成25年2月4日(2013.2.4)
【国際特許分類】
【出願番号】特願2011−162340(P2011−162340)
【出願日】平成23年7月25日(2011.7.25)
【出願人】(000233295)日立情報通信エンジニアリング株式会社 (195)
【Fターム(参考)】