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

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

Info

Publication number
JP5739759B2
JP5739759B2 JP2011162340A JP2011162340A JP5739759B2 JP 5739759 B2 JP5739759 B2 JP 5739759B2 JP 2011162340 A JP2011162340 A JP 2011162340A JP 2011162340 A JP2011162340 A JP 2011162340A JP 5739759 B2 JP5739759 B2 JP 5739759B2
Authority
JP
Japan
Prior art keywords
task
processing time
software
hardware
timing
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.)
Active
Application number
JP2011162340A
Other languages
English (en)
Other versions
JP2013025703A (ja
Inventor
和浩 丸山
和浩 丸山
司 井上
司 井上
高橋 徹也
徹也 高橋
建基 石井
建基 石井
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Information and Telecommunication Engineering Ltd
Original Assignee
Hitachi Information and Telecommunication Engineering Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hitachi Information and Telecommunication Engineering Ltd filed Critical Hitachi Information and Telecommunication Engineering Ltd
Priority to JP2011162340A priority Critical patent/JP5739759B2/ja
Publication of JP2013025703A publication Critical patent/JP2013025703A/ja
Application granted granted Critical
Publication of JP5739759B2 publication Critical patent/JP5739759B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Description

本発明は、ソフトウェアのハードウェア化の性能見積り方法、装置、プログラムおよびその記録媒体に関するものである。
近年、処理速度向上のために、半導体集積回路により、コンピュータのソフトウェアにより実現される機能の全体あるいは一部のハードウェア化が行われている。ソフトウェアをハードウェア化する半導体集積回路の設計においては、処理速度向上のために、ソフトウェアの全体あるいは一部をハードウェア化する際の、ソフトウェア部分とハードウェア部分を合わせた全体の性能すなわち処理時間を見積る必要がある。すなわち、ハードウェア化に際しては、目標性能を設定し、ソフトウェア部分とハードウェア部分を合わせた全体の性能が、目標性能を満たすかどうかを見積る必要がある。従来、ソフトウェアの機能をマルチプロセッサ向けに並列化する際の性能見積り方法が知られている。特開2004−341750号公報には、並列計算機システムの並列効率などの並列性能の評価指標算出を、プロセッサ数を変えながら行う複数回の測定を不要とし、1回の測定で行う技術が開示されている。
特開2004−341750号公報
従来の性能見積り方法は、ソフトウェアを、マルチプロセッサ向けに並列化して動作させた場合の性能見積りはできるが、ソフトウェアの全体あるいは一部をハードウェア化する際の、ソフトウェア部分とハードウェア部分を合わせた全体の性能を見積ることができない。
本発明の目的は、ソフトウェアの全体あるいは一部をハードウェア化して並列化する際の、ソフトウェア部分とハードウェア部分を合わせた全体の性能を見積る、ソフトウェアのハードウェア化の性能見積り方法、装置、プログラムおよびその記録媒体を提供することにある。
本発明は、上記目的を達成するため以下のようなソフトウェアのハードウェア化の性能見積り方法、装置、プログラムおよびその記録媒体を提供する。
(1)ソフトウェアのハードウェア化の性能見積り方法であって、
指定されたソフトウェア中で並列化するタスク名およびその並列度を入力する工程、
前記並列化するタスク名およびその並列度に基づいてタスクごとの処理時間を算出する工程、
前記タスク間で変数を伝播する場合に一方のタスクが他方のタスクに起動をかけるタイミングを抽出する工程、
前記起動をかけるタイミングを考慮して前記並列度で処理時間が最短となるように前記並列化するタスク名のタスクの実行順序を決定する工程、
前記実行順序による処理時間を出力する工程、
前記処理時間が目標性能を満たさない場合に、前記タスク中でハードウェア化するタスクの処理時間および前記ハードウェア化するタスクによる前記起動をかけるタイミングを入力する工程、および
前記ハードウェア化するタスクの処理時間および前記ハードウェア化するタスクによる前記起動をかけるタイミングを前記実行順序の決定に反映させる工程、
を備えた方法。
(2)ソフトウェアのハードウェア化の性能見積り装置であって、
指定されたソフトウェア中で並列化するタスク名およびその並列度を入力する手段、
前記並列化するタスク名およびその並列度に基づいてタスクごとの処理時間を算出する手段、
前記タスク間で変数を伝播する場合に一方のタスクが他方のタスクに起動をかけるタイミングを抽出する手段、
前記起動をかけるタイミングを考慮して前記並列度で処理時間が最短となるように前記並列化するタスク名のタスクの実行順序を決定する手段、
前記実行順序による処理時間を出力する手段、
前記処理時間が目標性能を満たさない場合に、前記タスク中でハードウェア化するタスクの処理時間および前記ハードウェア化するタスクによる前記起動をかけるタイミングを入力する手段、および
前記ハードウェア化するタスクの処理時間および前記ハードウェア化するタスクによる前記起動をかけるタイミングを前記実行順序の決定に反映させる手段、
を備えた装置。
(3)ソフトウェアのハードウェア化の性能見積りのためにコンピュータを、
指定されたソフトウェア中で並列化するタスク名およびその並列度を入力する手段、
前記並列化するタスク名およびその並列度に基づいてタスクごとの処理時間を算出する手段、
前記タスク間で変数を伝播する場合に一方のタスクが他方のタスクに起動をかけるタイミングを抽出する手段、
前記起動をかけるタイミングを考慮して前記並列度で処理時間が最短となるように前記並列化するタスク名のタスクの実行順序を決定する手段、
前記実行順序による処理時間を出力する手段、
前記処理時間が目標性能を満たさない場合に、前記タスク中でハードウェア化するタスクの処理時間および前記ハードウェア化するタスクによる前記起動をかけるタイミングを入力する手段、および
前記ハードウェア化するタスクの処理時間および前記ハードウェア化するタスクによる前記起動をかけるタイミングを前記実行順序の決定に反映させる手段、
として機能させるためのプログラム。
(4)ソフトウェアのハードウェア化の性能見積りのためにコンピュータを、
指定されたソフトウェア中で並列化するタスク名およびその並列度を入力する手段、
前記並列化するタスク名およびその並列度に基づいてタスクごとの処理時間を算出する手段、
前記タスク間で変数を伝播する場合に一方のタスクが他方のタスクに起動をかけるタイミングを抽出する手段、
前記起動をかけるタイミングを考慮して前記並列度で処理時間が最短となるように前記並列化するタスク名のタスクの実行順序を決定する手段、
前記実行順序による処理時間を出力する手段、
前記処理時間が目標性能を満たさない場合に、前記タスク中でハードウェア化するタスクの処理時間および前記ハードウェア化するタスクによる前記起動をかけるタイミングを入力する手段、および
前記ハードウェア化するタスクの処理時間および前記ハードウェア化するタスクによる前記起動をかけるタイミングを前記実行順序の決定に反映させる手段、
として機能させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
請求項1に係る発明によれば、ソフトウェアの全体あるいは一部をハードウェア化して並列化する際の、ソフトウェア部分とハードウェア部分を合わせた全体の性能を見積る、ソフトウェアのハードウェア化の性能見積り方法を得ることができる。
請求項2に係る発明によれば、ソフトウェアの全体あるいは一部をハードウェア化して並列化する際の、ソフトウェア部分とハードウェア部分を合わせた全体の性能を見積る、ソフトウェアのハードウェア化の性能見積り装置を得ることができる。
請求項3に係る発明によれば、ソフトウェアの全体あるいは一部をハードウェア化して並列化する際の、ソフトウェア部分とハードウェア部分を合わせた全体の性能を見積る、ソフトウェアのハードウェア化の性能見積りのためのプログラムを得ることができる。
請求項4に係る発明によれば、ソフトウェアの全体あるいは一部をハードウェア化して並列化する際の、ソフトウェア部分とハードウェア部分を合わせた全体の性能を見積る、ソフトウェアのハードウェア化の性能見積りのためのプログラムを記録したコンピュータ読み取り可能な記録媒体を得ることができる。
従来技術によるソフトウェアの性能見積りフローの一例を示す図である。 本発明によるソフトウェアの性能見積りフローの一例を示す図である。 ソフトウェアをマルチプロセッサ向けに並列化し性能見積りする際の従来のシステム構成の一例を示す図である。 性能を見積る対象とされるソフトウェアの一例を示す図である。 図4のソフトウェアに対して並列度を1に設定してスケジューリングを実施した例を示す図である。 図4のソフトウェアに対して並列度を2に設定してスケジューリングを実施した例を示す図である。 ソフトウェアのタスクをハードウェア化する際の処理の変化の一例を示す図である。 本発明に係るソフトウェアのハードウェア化の性能見積り方法を実施するためのシステム構成の一例を示す図である。 処理速度向上のためにソフトウェアの全体あるいは一部をハードウェア化する際の、ソフトウェア部分とハードウェア部分を合わせた全体の性能を見積るための本発明の実施形態の一例を説明するための図である。 本発明に係るソフトウェアのハードウェア化の性能見積り装置の構成例を示す図である。
以下、本発明の実施形態を説明する前に、従来のマルチプロセッサ向けの性能見積り方法について説明する。図3は、ソフトウェアをマルチプロセッサ向けに並列化し性能見積りする際の従来のシステム構成の一例を示す図である。図示のように、性能を見積る対象とされるソフトウェア3001を指定し、ソフトウェア中で並列化する機能すなわちタスク名3002、およびその並列度3003を用いて、性能見積りプログラム3004を実行する。性能見積りプログラム3004では、入力されたタスクのスケジューリングを行い、並列化後の処理時間3005を出力する。そして並列化後の処理時間が目標性能を満たしているかどうかを判定する。
ここでスケジューリングとは、複数のタスクにおいてトータルの処理時間が最短となるように各タスクの実行順序を決定することである。その際、タスク間でのタスクの起動および変数の伝播すなわち依存関係を考慮しなければならない。このスケジューリングの様子を以下、図4、図5および図6を用いて説明する。
図4は、性能を見積る対象とされるソフトウェアの一例を示す図である。本例のソフトウェアには、タスク1(ソースコード4001)、タスク2(ソースコード4002)、およびタスク3(ソースコード4003)の、3種類のタスクが存在し、それぞれの処理時間は、タスク2>タスク3>タスク1である。また、本例のソフトウェアでは、タスク2がある時点でタスク3の起動(4004)をかけ、変数c(4005)と変数d(4006)がタスク2からタスク3に伝播する構造である。
図5は、図4のソフトウェアに対して並列度を1に設定してスケジューリングを実施した例を示す図である。並列度を1に設定してスケジューリングを実施すると、並列化せず逐次実行するため、性能見積り結果の処理時間5001は、タスク1の処理時間5002とタスク2の処理時間5003とタスク3の処理時間5004の和となる。
図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をハードウェア化する場合の、従来技術における問題点について以下説明する。
図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’が処理されるタイミングが変化する。
すなわち、それまでソフトウェアであったタスク2がハードウェア化されることで、各処理時間7014が、ハードウェア化前の各処理時間7008と比較して短くなり、そしてA’が処理されるタイミングが変化する。これにより、ソフトウェアのタスク1およびタスク3の処理タイミングが変化し、並列処理するタスク間の関係が変化するという影響がある。したがって、ハードウェア化後の、ソフトウェア部分とハードウェア部分を合わせた全体の性能を見積るには、上述の処理タイミングの変化の影響を考慮して再スケジューリングする必要がある。
しかし、従来技術では、タスク2のハードウェア化に対し、そのタスクの処理時間変化をパラメータ化(数値化)し、ハードウェア化検討結果の処理時間を設定すること、およびハードウェア化するタスクが起動をかけるタスクの、起動タイミングをパラメータ化し、ハードウェア化検討結果のタスクの起動タイミングを設定することができない。すなわちハードウェア化検討結果の処理時間と、ハードウェア化検討結果のタスクの起動タイミングを、スケジューリング計算に反映した上で再スケジューリングすることができず、ハードウェア化後の、ソフトウェア部分とハードウェア部分を合わせた全体の性能を見積ることができないという問題がある。
以下、本発明の実施形態について図面を参照しながら詳細に説明する。図8は、本発明に係るソフトウェアのハードウェア化の性能見積り方法を実施するためのシステム構成の一例を示す図である。まず、性能を見積る対象とされるソフトウェア8001を指定し、そのソフトウェア中で並列化するタスク名8002およびその並列度8003を用いて、並列化性能見積りプログラム8004を実行する。続いて、並列化性能見積りプログラム8004にしたがって、上記並列化するタスク名およびその並列度に基づいてタスクごとの処理時間を算出する。ここで、タスク間で変数を伝播する場合には、一方のタスクが他方のタスクに起動をかけるタイミングを抽出する。そして、この起動をかけるタイミングを考慮して上記並列度で処理時間が最短となるように並列化するタスク名のタスクの実行順序を決定(スケジューリング)し、並列化後の実行順序による処理時間8005を出力する。この並列化後の処理時間が目標性能(目標時間)を満たさない場合に、ソフトウェア8001に係る複数のタスク中でハードウェア化するタスク8006を決定し、そのタスク名8007、そのタスクの処理時間8008、およびそのタスクによる上記起動をかけるタイミング8009を用いて、並列化性能見積りプログラム8004を実行する。これにより、上記ハードウェア化するタスクの処理時間および上記ハードウェア化するタスクによる上記起動をかけるタイミングが並列化性能見積りプログラム8004による上記実行順序の決定に反映される。
すなわち、並列化後の処理時間が目標性能を満たさない場合、出力された並列化後の処理時間を勘案して、ハードウェア化するタスク8006を決定する。ハードウェア化するタスク名8007に係るタスクの処理時間8008、およびタスクが起動をかけるタスクの起動タイミング8009を用いて並列化性能見積りプログラム8004を実行し、再スケジューリングを行う。これにより並列化後の処理時間が目標性能を満たした場合、並列化したソフトウェアの全体あるいは一部をハードウェア化する際の、ソフトウェア部分とハードウェア部分を合わせた全体処理時間8010を出力する。
図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は例えばプリンタであるが、これに限定されず、ディスプレイ装置等でもよい。
このように、ソフトウェアのハードウェア化の性能見積り装置では、入力装置102より、指定されたソフトウェア中で並列化するタスク名およびその並列度を入力する。中央演算処理装置100は、入力された並列化するタスク名およびその並列度を用いて並列化性能見積りプログラム8004を実行し、タスクごとの処理時間を算出し、またタスク間で変数を伝播する場合に一方のタスクが他方のタスクに起動をかけるタイミングを抽出し、この起動をかけるタイミングを考慮して上記並列度で処理時間が最短となるように並列化するタスク名のタスクの実行順序を決定する。出力装置103は、この実行順序による処理時間(並列化後の処理時間)を出力することができるが、これは必須ではなく、並列化後の処理時間は記憶装置101に出力し格納しておくことができる。入力装置102はまた、上記処理時間が目標性能を満たさない場合に、複数のタスク中でハードウェア化するタスクを決定し、そのタスク名、そのタスクの処理時間、およびそのタスクによる前記起動をかけるタイミングを入力可能とされる。この場合、中央演算処理装置100は、並列化性能見積りプログラム8004を実行して、入力されたハードウェア化するタスクのタスク名、ハードウェア化するタスクの処理時間、およびハードウェア化するタスクによる上記起動をかけるタイミングを、上記実行順序の決定に反映させることができる。
次に、本発明によるソフトウェアの全体あるいは一部をハードウェア化する際の、ソフトウェア部分とハードウェア部分を合わせた全体の性能を見積るフローを説明するが、その前に従来技術によるソフトウェアの性能見積りフローについて説明する。
図1は、従来技術によるソフトウェアの性能見積りフローの一例を示す図である。図1において、工程1001では、性能を見積る対象とされるソフトウェアを指定する。工程1002では、ソフトウェア中のタスク名をリスト化する。工程1003では、ソフトウェア中で並列化するタスク名およびその並列度を入力する。工程1004では、ソフトウェア中のタスクごとの処理時間を算出する。工程1005では、タスク間でのタスクの起動、変数の伝播を抽出しリスト化する。工程1006では、入力した並列化するタスク名のタスクを、入力した並列度でスケジューリングする。工程1007では、並列化後の処理時間を出力する。工程1008では、並列化後の処理時間が目標性能を満たしているかどうかの判定を行い、目標性能を満たさない場合は、並列化するタスクの追加および変更、もしくは、並列度を変更して、再度工程1003から上記工程を繰り返し、目標性能を満たす場合は工程1009へ進み処理終了となる。
図2は、本発明によるソフトウェアの性能見積りフローの一例を示す図である。図2において、工程2001では、性能を見積る対象とされるソフトウェアを指定する。工程2002では、ソフトウェア中のタスク名をリスト化する。工程2003では、ソフトウェア中で並列化するタスク名およびその並列度を入力する。工程2004では、ソフトウェア中のタスクごとの処理時間を算出する。工程2005では、タスク間でのタスクの起動、変数の伝播を抽出しリスト化する。工程2006では、入力した並列化するタスク名のタスクを、入力した並列度でスケジューリングする。工程2007では、並列化後の処理時間を出力する。工程2008では、並列化後の処理時間が目標性能を満たしているかどうかの判定を行い、目標性能を満たさない場合は工程2009を実施し、満たす場合は工程2012へ進み処理終了となる。工程2009では、ハードウェア化するタスクを決定する。工程2010では、ハードウェア化するタスクの処理時間を設定する。工程2011では、ハードウェア化するタスクが起動するタスクの起動タイミングを設定する。その後、工程2006に戻り、ハードウェア化するタスクの処理時間の設定情報と、ハードウェア化するタスクが起動をかけるタスクのタイミングの設定情報をスケジューリング計算に反映して再スケジューリングする。工程2007では、ハードウェア化後の処理時間を出力し、工程2008で目標性能を満足しているかどうか判定する。そして、再び条件を満たさない場合は、工程2009においてハードウェア化するタスクを決定(変更)し、工程2010においてハードウェア化するタスクの処理時間を設定(変更)し、工程2011におけるハードウェア化するタスクが起動するタスクの起動タイミングを設定(変更)して、再度工程2006以降の工程を繰り返す。そして、目標性能を満たす場合は工程2012へ進み処理終了となる。
従来技術と本発明における実施形態の違いは、図1の従来技術のフローでは、工程1008でスケジューリング後の処理時間が目標性能を満足していない場合、工程1003に戻り、並列化するタスクの追加および変更、もしくは、並列度を変更して再見積りするが、図2の本発明によるフローでは、工程2008の判定でスケジューリング後の処理時間が目標性能を満足していない場合、工程2009にてハードウェア化するタスクを決定し、工程2010にてハードウェア化するタスクの処理時間を設定し、工程2011にてハードウェア化するタスクが起動するタスクの起動タイミングを設定し、それらを用いて工程2006において再度スケジューリングを実施するところにある。
図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’の処理末尾の起動タイミングとなり、時間的に早くなる。すなわち、全体として処理時間が短縮される。
上述のものは、コンピュータに次のプログラムを実行させることで実施することができる。すなわち、このプログラムは、ソフトウェアのハードウェア化の性能見積りのためにコンピュータを、指定されたソフトウェア中で並列化するタスク名およびその並列度を入力する手段、前記並列化するタスク名およびその並列度に基づいてタスクごとの処理時間を算出する手段、前記タスク間で変数を伝播する場合に一方のタスクが他方のタスクに起動をかけるタイミングを抽出する手段、前記起動をかけるタイミングを考慮して前記並列度で処理時間が最短となるように前記並列化するタスク名のタスクの実行順序を決定する手段、前記実行順序による処理時間を出力する手段、前記処理時間が目標性能を満たさない場合に、前記タスク中でハードウェア化するタスクの処理時間および前記ハードウェア化するタスクによる前記起動をかけるタイミングを入力する手段、および前記ハードウェア化するタスクの処理時間および前記ハードウェア化するタスクによる前記起動をかけるタイミングを前記実行順序の決定に反映させる手段、として機能させる。このプログラムは、記憶装置に格納しておくことができるが、これに限定されずCDROM等のコンピュータ読み取り可能な記録媒体に記録して又は外部から通信手段によって提供することも可能である。
このように本発明は、タスクの処理時間変化をパラメータ化してハードウェア化検討結果の処理時間を設定し、かつハードウェア化するタスクが起動をかけるタスクの起動タイミングをパラメータ化して、ハードウェア化検討結果のタスクの起動タイミングを設定し、前記ハードウェア化検討結果の処理時間と、前記ハードウェア化検討結果のタスクの起動タイミングを、スケジューリング計算に反映した上で再スケジューリングし、ソフトウェアの全体あるいは一部をハードウェア化して並列化する際の、ソフトウェア部分とハードウェア部分を合わせた全体の性能を見積るものである。
すなわち、本発明は、処理速度向上のためにソフトウェアの全体あるいは一部をハードウェア化する際の、ソフトウェア部分とハードウェア部分を合わせた全体の性能を見積るものであって、性能を見積る対象とされるソフトウェア、そのソフトウェア中で並列化するタスク名、およびその並列度を入力として、タスクごとの処理時間を算出する機能と、タスク間でのタスクの起動および変数の伝播を抽出し、リスト化する機能と、前記タスクごとの処理時間と、前記タスク間でのタスクの起動、変数の伝播のリストと、前記ソフトウェア中で並列化するタスク名および前記並列度を入力としてスケジューリングする機能を有する。加えて、前記スケジューリングしたソフトウェア中からハードウェア化するタスクを指定する機能と、前記ハードウェア化するタスクの処理時間を設定する機能と、前記リスト化したタスク間でのタスクの起動および変数の伝播をもとに、ハードウェア化するタスクが起動をかけるタスクの起動タイミングを設定する機能と、前記設定したハードウェア化するタスクが起動をかけるタスクの起動タイミングと、前記ハードウェア化するタスクの処理時間の設定情報をスケジューリング計算に反映して再スケジューリングする機能を有するものである。これにより、ソフトウェアの性能すなわち処理時間を目標性能まで向上させるために、ソフトウェアの全体あるいは一部のハードウェア化をする際の、ソフトウェア部分とハードウェア部分を合わせた全体の性能すなわち処理時間を見積ることが容易に可能となり、設計生産性を向上させることができる。
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:ハードウェア化前の見積り結果の処理時間

Claims (4)

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

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011162340A JP5739759B2 (ja) 2011-07-25 2011-07-25 ソフトウェアのハードウェア化の性能見積り方法、装置、プログラムおよびその記録媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011162340A JP5739759B2 (ja) 2011-07-25 2011-07-25 ソフトウェアのハードウェア化の性能見積り方法、装置、プログラムおよびその記録媒体

Publications (2)

Publication Number Publication Date
JP2013025703A JP2013025703A (ja) 2013-02-04
JP5739759B2 true JP5739759B2 (ja) 2015-06-24

Family

ID=47783948

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011162340A Active JP5739759B2 (ja) 2011-07-25 2011-07-25 ソフトウェアのハードウェア化の性能見積り方法、装置、プログラムおよびその記録媒体

Country Status (1)

Country Link
JP (1) JP5739759B2 (ja)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09160949A (ja) * 1995-12-07 1997-06-20 Hitachi Ltd ハードウエアとソフトウエアの混在システムの設計支援方法
JP2001184204A (ja) * 1999-12-27 2001-07-06 Hitachi Ltd モジュール実行順序決定方法、電子システム及びそのための媒体
JP2005063136A (ja) * 2003-08-12 2005-03-10 Toshiba Corp 半導体集積回路の設計装置、設計方法、及び設計プログラム
JP2007018313A (ja) * 2005-07-08 2007-01-25 Fujitsu Ltd 回路設計プログラム、回路設計装置、回路設計方法

Also Published As

Publication number Publication date
JP2013025703A (ja) 2013-02-04

Similar Documents

Publication Publication Date Title
US11449364B2 (en) Processing in a multicore processor with different cores having different architectures
Canis et al. Modulo SDC scheduling with recurrence minimization in high-level synthesis
Guo et al. Hardware acceleration of long read pairwise overlapping in genome sequencing: A race between fpga and gpu
Schranzhofer et al. Timing analysis for TDMA arbitration in resource sharing systems
JP6378128B2 (ja) 性能検証装置、システム、方法、およびコンピュータに当該方法を実行させるためのプログラム
Axer et al. Response-time analysis of parallel fork-join workloads with real-time constraints
JP4988789B2 (ja) シミュレーション・システム、方法及びプログラム
US7096438B2 (en) Method of using clock cycle-time in determining loop schedules during circuit design
JP2010134614A (ja) 並列化処理方法、システム、及びプログラム
JP2004302706A (ja) プログラム並列化装置,プログラム並列化方法およびプログラム並列化プログラム
JP2009524866A (ja) プログラムの並列実行のためのシステム及び方法
JP2011138219A (ja) 並列プログラム解析結果表示装置および並列プログラム解析結果表示方法
Chaudhuri et al. A solution methodology for exact design space exploration in a three-dimensional design space
KR20140077775A (ko) 하드웨어 가속 장치의 병렬화에 따른 성능 예측 장치 및 방법
Maiti et al. Scheduling precedence-constrained jobs on related machines with communication delay
Chaudhuri et al. An exact methodology for scheduling in a 3d design space
JP5692739B2 (ja) 常微分方程式を解くための方法、プログラム及びシステム
Guzel et al. Using high-level synthesis for rapid design of video processing pipes
JP5739759B2 (ja) ソフトウェアのハードウェア化の性能見積り方法、装置、プログラムおよびその記録媒体
US11657197B2 (en) Support system and computer readable medium
KR102161055B1 (ko) 소프트웨어 파이프라이닝을 이용한 명령어 스케줄링 방법 및 장치
JP4950325B2 (ja) モンテカルロ法の効率的な並列処理手法
JP6776914B2 (ja) 並列化方法、並列化ツール
JP2007018313A (ja) 回路設計プログラム、回路設計装置、回路設計方法
Tuhin et al. Compiling parallel applications to coarse-grained reconfigurable architectures

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140709

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150318

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20150407

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150424

R150 Certificate of patent or registration of utility model

Ref document number: 5739759

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250