JP2013025703A - Method, device and program for estimating performance of making software into hardware and recording medium thereof - Google Patents

Method, device and program for estimating performance of making software into hardware and recording medium thereof Download PDF

Info

Publication number
JP2013025703A
JP2013025703A JP2011162340A JP2011162340A JP2013025703A JP 2013025703 A JP2013025703 A JP 2013025703A JP 2011162340 A JP2011162340 A JP 2011162340A JP 2011162340 A JP2011162340 A JP 2011162340A JP 2013025703 A JP2013025703 A JP 2013025703A
Authority
JP
Japan
Prior art keywords
task
processing time
hardware
software
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.)
Granted
Application number
JP2011162340A
Other languages
Japanese (ja)
Other versions
JP5739759B2 (en
Inventor
Kazuhiro Maruyama
和浩 丸山
Tsukasa Inoue
司 井上
Tetsuya Takahashi
徹也 高橋
Takemoto Ishii
建基 石井
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 Communication 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 Communication Engineering Ltd filed Critical Hitachi Information and Communication Engineering Ltd
Priority to JP2011162340A priority Critical patent/JP5739759B2/en
Publication of JP2013025703A publication Critical patent/JP2013025703A/en
Application granted granted Critical
Publication of JP5739759B2 publication Critical patent/JP5739759B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

PROBLEM TO BE SOLVED: To provide a method, device, and program for estimating the performance of making software into hardware and a recording medium thereof.SOLUTION: A central arithmetic processing unit 100 executes a parallelizing performance estimation program 8004, calculates the processing time of each task on the basis of a task name 8002 subjected to parallelization and a degree of parallelization 8003, extracts a timing in which one task starts the other task when variables propagate between the tasks, and determines the execution order of the task having the task name subjected to parallelization such that the processing time becomes the shortest with the degree of parallelization under the consideration of the timing in which one task starts the other task. When the processing time does not satisfy target performance, the central arithmetic processing unit 100 re-executes the parallelizing performance estimation program 8004, and reflects a processing time 8008 of the task to be made into hardware and a timing 8009 in which the task to be made into hardware starts the other task on the determination of the execution order.

Description

本発明は、ソフトウェアのハードウェア化の性能見積り方法、装置、プログラムおよびその記録媒体に関するものである。   The present invention relates to a hardware performance estimation method, apparatus, program, and recording medium thereof.

近年、処理速度向上のために、半導体集積回路により、コンピュータのソフトウェアにより実現される機能の全体あるいは一部のハードウェア化が行われている。ソフトウェアをハードウェア化する半導体集積回路の設計においては、処理速度向上のために、ソフトウェアの全体あるいは一部をハードウェア化する際の、ソフトウェア部分とハードウェア部分を合わせた全体の性能すなわち処理時間を見積る必要がある。すなわち、ハードウェア化に際しては、目標性能を設定し、ソフトウェア部分とハードウェア部分を合わせた全体の性能が、目標性能を満たすかどうかを見積る必要がある。従来、ソフトウェアの機能をマルチプロセッサ向けに並列化する際の性能見積り方法が知られている。特開2004−341750号公報には、並列計算機システムの並列効率などの並列性能の評価指標算出を、プロセッサ数を変えながら行う複数回の測定を不要とし、1回の測定で行う技術が開示されている。   In recent years, in order to improve the processing speed, all or part of functions realized by software of a computer have been implemented by a semiconductor integrated circuit. In designing a semiconductor integrated circuit in which software is implemented as hardware, the overall performance of the software part and the hardware part, ie, processing time, when the whole or part of the software is implemented as hardware in order to improve the processing speed. Need to estimate. That is, when implementing hardware, it is necessary to set a target performance and estimate whether or not the total performance of the software portion and the hardware portion satisfies the target performance. 2. Description of the Related Art Conventionally, a performance estimation method for parallelizing software functions for a multiprocessor is known. Japanese Patent Application Laid-Open No. 2004-341750 discloses a technique in which an evaluation index calculation of parallel performance such as parallel efficiency of a parallel computer system is performed in a single measurement without the need for multiple measurements performed while changing the number of processors. ing.

特開2004−341750号公報JP 2004-341750 A

従来の性能見積り方法は、ソフトウェアを、マルチプロセッサ向けに並列化して動作させた場合の性能見積りはできるが、ソフトウェアの全体あるいは一部をハードウェア化する際の、ソフトウェア部分とハードウェア部分を合わせた全体の性能を見積ることができない。
本発明の目的は、ソフトウェアの全体あるいは一部をハードウェア化して並列化する際の、ソフトウェア部分とハードウェア部分を合わせた全体の性能を見積る、ソフトウェアのハードウェア化の性能見積り方法、装置、プログラムおよびその記録媒体を提供することにある。
The conventional performance estimation method can estimate the performance when the software is operated in parallel for multiprocessors, but the software part is combined with the hardware part when the whole or part of the software is made into hardware. The overall performance cannot be estimated.
The object of the present invention is to estimate the overall performance of the software part and the hardware part when the whole or a part of the software is converted into hardware and to parallelize it, It is to provide a program and its recording medium.

本発明は、上記目的を達成するため以下のようなソフトウェアのハードウェア化の性能見積り方法、装置、プログラムおよびその記録媒体を提供する。
(1)ソフトウェアのハードウェア化の性能見積り方法であって、
指定されたソフトウェア中で並列化するタスク名およびその並列度を入力する工程、
前記並列化するタスク名およびその並列度に基づいてタスクごとの処理時間を算出する工程、
前記タスク間で変数を伝播する場合に一方のタスクが他方のタスクに起動をかけるタイミングを抽出する工程、
前記起動をかけるタイミングを考慮して前記並列度で処理時間が最短となるように前記並列化するタスク名のタスクの実行順序を決定する工程、
前記実行順序による処理時間を出力する工程、
前記処理時間が目標性能を満たさない場合に、前記タスク中でハードウェア化するタスクの処理時間および前記ハードウェア化するタスクによる前記起動をかけるタイミングを入力する工程、および
前記ハードウェア化するタスクの処理時間および前記ハードウェア化するタスクによる前記起動をかけるタイミングを前記実行順序の決定に反映させる工程、
を備えた方法。
(2)ソフトウェアのハードウェア化の性能見積り装置であって、
指定されたソフトウェア中で並列化するタスク名およびその並列度を入力する手段、
前記並列化するタスク名およびその並列度に基づいてタスクごとの処理時間を算出する手段、
前記タスク間で変数を伝播する場合に一方のタスクが他方のタスクに起動をかけるタイミングを抽出する手段、
前記起動をかけるタイミングを考慮して前記並列度で処理時間が最短となるように前記並列化するタスク名のタスクの実行順序を決定する手段、
前記実行順序による処理時間を出力する手段、
前記処理時間が目標性能を満たさない場合に、前記タスク中でハードウェア化するタスクの処理時間および前記ハードウェア化するタスクによる前記起動をかけるタイミングを入力する手段、および
前記ハードウェア化するタスクの処理時間および前記ハードウェア化するタスクによる前記起動をかけるタイミングを前記実行順序の決定に反映させる手段、
を備えた装置。
(3)ソフトウェアのハードウェア化の性能見積りのためにコンピュータを、
指定されたソフトウェア中で並列化するタスク名およびその並列度を入力する手段、
前記並列化するタスク名およびその並列度に基づいてタスクごとの処理時間を算出する手段、
前記タスク間で変数を伝播する場合に一方のタスクが他方のタスクに起動をかけるタイミングを抽出する手段、
前記起動をかけるタイミングを考慮して前記並列度で処理時間が最短となるように前記並列化するタスク名のタスクの実行順序を決定する手段、
前記実行順序による処理時間を出力する手段、
前記処理時間が目標性能を満たさない場合に、前記タスク中でハードウェア化するタスクの処理時間および前記ハードウェア化するタスクによる前記起動をかけるタイミングを入力する手段、および
前記ハードウェア化するタスクの処理時間および前記ハードウェア化するタスクによる前記起動をかけるタイミングを前記実行順序の決定に反映させる手段、
として機能させるためのプログラム。
(4)ソフトウェアのハードウェア化の性能見積りのためにコンピュータを、
指定されたソフトウェア中で並列化するタスク名およびその並列度を入力する手段、
前記並列化するタスク名およびその並列度に基づいてタスクごとの処理時間を算出する手段、
前記タスク間で変数を伝播する場合に一方のタスクが他方のタスクに起動をかけるタイミングを抽出する手段、
前記起動をかけるタイミングを考慮して前記並列度で処理時間が最短となるように前記並列化するタスク名のタスクの実行順序を決定する手段、
前記実行順序による処理時間を出力する手段、
前記処理時間が目標性能を満たさない場合に、前記タスク中でハードウェア化するタスクの処理時間および前記ハードウェア化するタスクによる前記起動をかけるタイミングを入力する手段、および
前記ハードウェア化するタスクの処理時間および前記ハードウェア化するタスクによる前記起動をかけるタイミングを前記実行順序の決定に反映させる手段、
として機能させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
In order to achieve the above object, the present invention provides the following hardware performance estimation method, apparatus, program, and recording medium for software.
(1) A method for estimating the hardware performance of software,
Entering the task name to be parallelized in the specified software and its degree of parallelism,
Calculating a processing time for each task based on the task name to be parallelized and the degree of parallelism thereof,
Extracting a timing when one task activates the other task when a variable is propagated between the tasks;
Determining the task execution order of the task names to be parallelized so that the processing time is the shortest in the degree of parallelism in consideration of the timing of performing the activation;
Outputting a processing time according to the execution order;
When the processing time does not satisfy the target performance, a step of inputting a processing time of a task to be hardwareized in the task and a timing at which the activation by the task to be hardwareized is input; and Reflecting the processing time and the timing of performing the activation by the task to be implemented in hardware in the determination of the execution order;
With a method.
(2) A hardware performance estimation device for software,
A means to input the task name to be parallelized in the specified software and its degree of parallelism,
Means for calculating a processing time for each task based on the task name to be parallelized and the degree of parallelism thereof;
Means for extracting a timing at which one task activates the other task when a variable is propagated between the tasks;
Means for determining the task execution order of the task names to be parallelized so that the processing time is the shortest in the degree of parallelism in consideration of the timing of the activation;
Means for outputting a processing time according to the execution order;
Means for inputting a processing time of a task to be hardwareized in the task and a timing for performing the activation by the task to be hardwareized when the processing time does not satisfy a target performance; and Means for reflecting the processing time and the timing of performing the activation by the task to be implemented in hardware in the determination of the execution order;
With a device.
(3) To estimate the performance of hardware implementation of software,
A means to input the task name to be parallelized in the specified software and its degree of parallelism,
Means for calculating a processing time for each task based on the task name to be parallelized and the degree of parallelism thereof;
Means for extracting a timing at which one task activates the other task when a variable is propagated between the tasks;
Means for determining the task execution order of the task names to be parallelized so that the processing time is the shortest in the degree of parallelism in consideration of the timing of the activation;
Means for outputting a processing time according to the execution order;
Means for inputting a processing time of a task to be hardwareized in the task and a timing for performing the activation by the task to be hardwareized when the processing time does not satisfy a target performance; and Means for reflecting the processing time and the timing of performing the activation by the task to be implemented in hardware in the determination of the execution order;
Program to function as.
(4) To estimate the performance of hardware implementation of software,
A means to input the task name to be parallelized in the specified software and its degree of parallelism,
Means for calculating a processing time for each task based on the task name to be parallelized and the degree of parallelism thereof;
Means for extracting a timing at which one task activates the other task when a variable is propagated between the tasks;
Means for determining the task execution order of the task names to be parallelized so that the processing time is the shortest in the degree of parallelism in consideration of the timing of the activation;
Means for outputting a processing time according to the execution order;
Means for inputting a processing time of a task to be hardwareized in the task and a timing for performing the activation by the task to be hardwareized when the processing time does not satisfy a target performance; and Means for reflecting the processing time and the timing of performing the activation by the task to be implemented in hardware in the determination of the execution order;
A computer-readable recording medium in which a program for functioning as a computer is recorded.

請求項1に係る発明によれば、ソフトウェアの全体あるいは一部をハードウェア化して並列化する際の、ソフトウェア部分とハードウェア部分を合わせた全体の性能を見積る、ソフトウェアのハードウェア化の性能見積り方法を得ることができる。
請求項2に係る発明によれば、ソフトウェアの全体あるいは一部をハードウェア化して並列化する際の、ソフトウェア部分とハードウェア部分を合わせた全体の性能を見積る、ソフトウェアのハードウェア化の性能見積り装置を得ることができる。
請求項3に係る発明によれば、ソフトウェアの全体あるいは一部をハードウェア化して並列化する際の、ソフトウェア部分とハードウェア部分を合わせた全体の性能を見積る、ソフトウェアのハードウェア化の性能見積りのためのプログラムを得ることができる。
請求項4に係る発明によれば、ソフトウェアの全体あるいは一部をハードウェア化して並列化する際の、ソフトウェア部分とハードウェア部分を合わせた全体の性能を見積る、ソフトウェアのハードウェア化の性能見積りのためのプログラムを記録したコンピュータ読み取り可能な記録媒体を得ることができる。
According to the first aspect of the invention, when the entire software or a part of the software is converted into hardware and parallelized, the overall performance of the software portion and the hardware portion is estimated, and the performance estimation of the hardware implementation of the software You can get the method.
According to the second aspect of the present invention, when the whole or a part of the software is converted into hardware and parallelized, the total performance of the software part and the hardware part is estimated, and the hardware performance estimation A device can be obtained.
According to the third aspect of the invention, when the entire software or a part of the software is converted into hardware and parallelized, the total performance of the software portion and the hardware portion is estimated, and the performance estimation of the hardware implementation of the software You can get a program for.
According to the invention of claim 4, the performance estimation of the hardware implementation of the software, which estimates the overall performance of the software portion and the hardware portion when the whole or a part of the software is converted into hardware and parallelized It is possible to obtain a computer-readable recording medium on which a program for recording is recorded.

従来技術によるソフトウェアの性能見積りフローの一例を示す図である。It is a figure which shows an example of the performance estimation flow of the software by a prior art. 本発明によるソフトウェアの性能見積りフローの一例を示す図である。It is a figure which shows an example of the performance estimation flow of the software by this invention. ソフトウェアをマルチプロセッサ向けに並列化し性能見積りする際の従来のシステム構成の一例を示す図である。It is a figure which shows an example of the conventional system structure at the time of parallelizing software for multiprocessors and estimating a performance. 性能を見積る対象とされるソフトウェアの一例を示す図である。It is a figure which shows an example of the software used as the object which estimates performance. 図4のソフトウェアに対して並列度を1に設定してスケジューリングを実施した例を示す図である。FIG. 5 is a diagram illustrating an example in which scheduling is performed with the degree of parallelism set to 1 for the software of FIG. 4. 図4のソフトウェアに対して並列度を2に設定してスケジューリングを実施した例を示す図である。FIG. 5 is a diagram illustrating an example in which scheduling is performed with the degree of parallelism set to 2 for the software of FIG. 4. ソフトウェアのタスクをハードウェア化する際の処理の変化の一例を示す図である。It is a figure which shows an example of the change of the process at the time of hardware-izing a software task. 本発明に係るソフトウェアのハードウェア化の性能見積り方法を実施するためのシステム構成の一例を示す図である。It is a figure which shows an example of the system configuration | structure for implementing the performance estimation method of the hardware implementation of the software which concerns on this invention. 処理速度向上のためにソフトウェアの全体あるいは一部をハードウェア化する際の、ソフトウェア部分とハードウェア部分を合わせた全体の性能を見積るための本発明の実施形態の一例を説明するための図である。The figure for demonstrating an example of embodiment of this invention for estimating the whole performance which match | combined the software part and the hardware part at the time of hardware-izing the whole software or a part for the improvement of a processing speed. is there. 本発明に係るソフトウェアのハードウェア化の性能見積り装置の構成例を示す図である。It is a figure which shows the structural example of the performance estimation apparatus of the hardware implementation of the software which concerns on this invention.

以下、本発明の実施形態を説明する前に、従来のマルチプロセッサ向けの性能見積り方法について説明する。図3は、ソフトウェアをマルチプロセッサ向けに並列化し性能見積りする際の従来のシステム構成の一例を示す図である。図示のように、性能を見積る対象とされるソフトウェア3001を指定し、ソフトウェア中で並列化する機能すなわちタスク名3002、およびその並列度3003を用いて、性能見積りプログラム3004を実行する。性能見積りプログラム3004では、入力されたタスクのスケジューリングを行い、並列化後の処理時間3005を出力する。そして並列化後の処理時間が目標性能を満たしているかどうかを判定する。   Hereinafter, before describing embodiments of the present invention, a conventional performance estimation method for a multiprocessor will be described. FIG. 3 is a diagram showing an example of a conventional system configuration when parallelizing software for a multiprocessor and estimating the performance. As shown in the figure, the performance estimation program 3004 is executed by designating software 3001 whose performance is to be estimated, and using the parallel function in the software, that is, the task name 3002 and the degree of parallelism 3003. The performance estimation program 3004 schedules the input task and outputs a processing time 3005 after parallelization. Then, it is determined whether the processing time after parallelization satisfies the target performance.

ここでスケジューリングとは、複数のタスクにおいてトータルの処理時間が最短となるように各タスクの実行順序を決定することである。その際、タスク間でのタスクの起動および変数の伝播すなわち依存関係を考慮しなければならない。このスケジューリングの様子を以下、図4、図5および図6を用いて説明する。   Here, scheduling is to determine the execution order of each task so that the total processing time is the shortest among a plurality of tasks. At that time, task activation and variable propagation, that is, dependency between tasks must be considered. This scheduling will be described below with reference to FIGS. 4, 5, and 6. FIG.

図4は、性能を見積る対象とされるソフトウェアの一例を示す図である。本例のソフトウェアには、タスク1(ソースコード4001)、タスク2(ソースコード4002)、およびタスク3(ソースコード4003)の、3種類のタスクが存在し、それぞれの処理時間は、タスク2>タスク3>タスク1である。また、本例のソフトウェアでは、タスク2がある時点でタスク3の起動(4004)をかけ、変数c(4005)と変数d(4006)がタスク2からタスク3に伝播する構造である。   FIG. 4 is a diagram illustrating an example of software whose performance is to be estimated. In the software of this example, there are three types of tasks, task 1 (source code 4001), task 2 (source code 4002), and task 3 (source code 4003). Task 3> task 1. In the software of this example, task 3 is activated (4004) when task 2 is present, and variable c (4005) and variable d (4006) are propagated from task 2 to task 3.

図5は、図4のソフトウェアに対して並列度を1に設定してスケジューリングを実施した例を示す図である。並列度を1に設定してスケジューリングを実施すると、並列化せず逐次実行するため、性能見積り結果の処理時間5001は、タスク1の処理時間5002とタスク2の処理時間5003とタスク3の処理時間5004の和となる。   FIG. 5 is a diagram illustrating an example in which scheduling is performed with the parallel degree set to 1 for the software of FIG. When scheduling is performed with the degree of parallelism set to 1, the processing time 5001 of the performance estimation result is the processing time 5002 of the task 1, the processing time 5003 of the task 2, and the processing time of the task 3 5004 is the sum.

図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をハードウェア化する場合の、従来技術における問題点について以下説明する。   FIG. 6 is a diagram illustrating an example in which scheduling is performed with the parallel degree set to 2 for the software of FIG. The task 2 processing time 6002 is longer than the task 1 processing time 6001 and the task 3 processing time 6003. For this reason, if the task 1 and the task 3 are not processed before and after the processing of the task 2, but are processed in parallel with the task 2, the total processing time can be minimized. At this time, since there is no dependency between task 1 and task 2, execution of task 1 and task 2 can be started simultaneously, and scheduling is performed so as to perform parallel processing. However, between task 2 and task 3, task 3 is activated at the end of process 6004 of task 2 and there is a dependency. For this reason, task 3 must wait for processing until processing A 6004 of task 2 is completed. Since there is no dependency relationship between the task 2 A process 6004 and the task 3 and the task 3, the task 2 and the task 3 are scheduled to be processed in parallel after the task 3 activation timing. In this case, the processing time 6005 of the estimation result is equal to the processing time 6002 of the task 2 having the longest processing time as shown in the figure. In FIG. 6, problems in the prior art when the task 2 having the longest processing time is implemented as hardware in order to shorten the processing time will be described below.

図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’が処理されるタイミングが変化する。   FIG. 7 is a diagram illustrating an example of a change in processing when a software task is implemented as hardware. Task 2 (7001) is the same as Task 2 (6002) in FIG. 6, and Task 2 includes A (7002), B (7003), C (7004), D (7005), and E (7006). There is a process of B → C → A → D → E. When this task 2 is made hardware (7007) and speeded up, the hardware task 2 is compared with each processing time 7008 of A, B, C, D, and E, which is each processing of the software task 2. Each processing time 7014 of A ′ (7009), B ′ (7010), C ′ (7011), D ′ (7012), and E ′ (7013), which are the processes of FIG. Further, when the processing B ′ and C ′ of the hardware task 2 are processed in parallel (7015) by the hardware implementation (7007), the timing at which A ′ is processed changes.

すなわち、それまでソフトウェアであったタスク2がハードウェア化されることで、各処理時間7014が、ハードウェア化前の各処理時間7008と比較して短くなり、そしてA’が処理されるタイミングが変化する。これにより、ソフトウェアのタスク1およびタスク3の処理タイミングが変化し、並列処理するタスク間の関係が変化するという影響がある。したがって、ハードウェア化後の、ソフトウェア部分とハードウェア部分を合わせた全体の性能を見積るには、上述の処理タイミングの変化の影響を考慮して再スケジューリングする必要がある。   That is, the task 2 that has been software until now is hardwareized, so that each processing time 7014 becomes shorter than each processing time 7008 before hardware and the timing at which A ′ is processed. Change. As a result, the processing timing of task 1 and task 3 of the software changes, and there is an effect that the relationship between tasks to be processed in parallel changes. Therefore, in order to estimate the overall performance of the software part and the hardware part after hardware conversion, it is necessary to reschedule in consideration of the influence of the change in the processing timing described above.

しかし、従来技術では、タスク2のハードウェア化に対し、そのタスクの処理時間変化をパラメータ化(数値化)し、ハードウェア化検討結果の処理時間を設定すること、およびハードウェア化するタスクが起動をかけるタスクの、起動タイミングをパラメータ化し、ハードウェア化検討結果のタスクの起動タイミングを設定することができない。すなわちハードウェア化検討結果の処理時間と、ハードウェア化検討結果のタスクの起動タイミングを、スケジューリング計算に反映した上で再スケジューリングすることができず、ハードウェア化後の、ソフトウェア部分とハードウェア部分を合わせた全体の性能を見積ることができないという問題がある。   However, in the prior art, with respect to the hardware implementation of task 2, the change in the processing time of the task is parameterized (numerized), the processing time of the result of hardware examination is set, and the task of hardware implementation is It is not possible to parameterize the start timing of the task to be started and set the start timing of the task as a result of the hardware study. In other words, it is not possible to reschedule after reflecting the processing time of the hardware study result and the task start timing of the hardware study result in the scheduling calculation. There is a problem that the overall performance cannot be estimated.

以下、本発明の実施形態について図面を参照しながら詳細に説明する。図8は、本発明に係るソフトウェアのハードウェア化の性能見積り方法を実施するためのシステム構成の一例を示す図である。まず、性能を見積る対象とされるソフトウェア8001を指定し、そのソフトウェア中で並列化するタスク名8002およびその並列度8003を用いて、並列化性能見積りプログラム8004を実行する。続いて、並列化性能見積りプログラム8004にしたがって、上記並列化するタスク名およびその並列度に基づいてタスクごとの処理時間を算出する。ここで、タスク間で変数を伝播する場合には、一方のタスクが他方のタスクに起動をかけるタイミングを抽出する。そして、この起動をかけるタイミングを考慮して上記並列度で処理時間が最短となるように並列化するタスク名のタスクの実行順序を決定(スケジューリング)し、並列化後の実行順序による処理時間8005を出力する。この並列化後の処理時間が目標性能(目標時間)を満たさない場合に、ソフトウェア8001に係る複数のタスク中でハードウェア化するタスク8006を決定し、そのタスク名8007、そのタスクの処理時間8008、およびそのタスクによる上記起動をかけるタイミング8009を用いて、並列化性能見積りプログラム8004を実行する。これにより、上記ハードウェア化するタスクの処理時間および上記ハードウェア化するタスクによる上記起動をかけるタイミングが並列化性能見積りプログラム8004による上記実行順序の決定に反映される。   Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings. FIG. 8 is a diagram showing an example of a system configuration for implementing the hardware performance estimation method for software according to the present invention. First, the software 8001 for which performance is to be estimated is specified, and the parallelized performance estimation program 8004 is executed using the task name 8002 to be parallelized and the degree of parallelism 8003 in the software. Subsequently, according to the parallelization performance estimation program 8004, a processing time for each task is calculated based on the task name to be parallelized and the degree of parallelism. Here, when a variable is propagated between tasks, the timing at which one task activates the other task is extracted. Then, the execution order of tasks with task names to be parallelized is determined (scheduled) so as to minimize the processing time with the above degree of parallelism in consideration of the timing of starting, and the processing time 8005 according to the execution order after parallelization is determined. Is output. When the processing time after the parallelization does not satisfy the target performance (target time), a task 8006 to be hardware-ized among a plurality of tasks related to the software 8001 is determined, and the task name 8007 and the processing time 8008 of the task are determined. The parallelization performance estimation program 8004 is executed using the timing 8009 for performing the activation by the task. As a result, the processing time of the task to be hardwareized and the timing to start the task by the hardwareized task are reflected in the determination of the execution order by the parallelization performance estimation program 8004.

すなわち、並列化後の処理時間が目標性能を満たさない場合、出力された並列化後の処理時間を勘案して、ハードウェア化するタスク8006を決定する。ハードウェア化するタスク名8007に係るタスクの処理時間8008、およびタスクが起動をかけるタスクの起動タイミング8009を用いて並列化性能見積りプログラム8004を実行し、再スケジューリングを行う。これにより並列化後の処理時間が目標性能を満たした場合、並列化したソフトウェアの全体あるいは一部をハードウェア化する際の、ソフトウェア部分とハードウェア部分を合わせた全体処理時間8010を出力する。   That is, when the processing time after parallelization does not satisfy the target performance, the task 8006 to be hardware-ized is determined in consideration of the output processing time after parallelization. The parallelized performance estimation program 8004 is executed using the task processing time 8008 related to the task name 8007 to be hardware and the task start timing 8009 that the task starts to perform rescheduling. As a result, when the processing time after the parallelization satisfies the target performance, the total processing time 8010 of the software part and the hardware part when the whole or part of the parallelized software is converted into hardware is output.

図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は例えばプリンタであるが、これに限定されず、ディスプレイ装置等でもよい。   FIG. 10 is a diagram showing a configuration example of a hardware performance estimation apparatus for software according to the present invention. As illustrated, a central processing unit (CPU) 100, a storage device 101, an input device 102, and an output device 103 are connected as a computer via a bus 104. The storage device 101 stores software 8001 whose performance is to be estimated, a parallelization performance estimation program 8004, a processing time 8005 after parallelization, and a total processing time 8010 that combines the software part and the hardware part. From the input device 102, the task name 8002 to be parallelized, the degree of parallelism 8003, the task name 8007 of the task to be hardwareized, the processing time 8008 of the task to be hardwareized, and the task to be activated by the task to be hardwareized Activation timing 8009 can be input. The output device 103 can output the processing time 8005 after parallelization and the total processing time 8010 that combines the software part and the hardware part. Note that the storage device 101 is shown as a single device in this example, but may be composed of a plurality of storage devices. The storage device 101 is, for example, a semiconductor memory, but is not limited thereto, and may be a hard disk or a combination thereof. The input device 102 is, for example, a keyboard, but is not limited thereto, and may be a touch panel or the like. The output device 103 is, for example, a printer, but is not limited thereto, and may be a display device or the like.

このように、ソフトウェアのハードウェア化の性能見積り装置では、入力装置102より、指定されたソフトウェア中で並列化するタスク名およびその並列度を入力する。中央演算処理装置100は、入力された並列化するタスク名およびその並列度を用いて並列化性能見積りプログラム8004を実行し、タスクごとの処理時間を算出し、またタスク間で変数を伝播する場合に一方のタスクが他方のタスクに起動をかけるタイミングを抽出し、この起動をかけるタイミングを考慮して上記並列度で処理時間が最短となるように並列化するタスク名のタスクの実行順序を決定する。出力装置103は、この実行順序による処理時間(並列化後の処理時間)を出力することができるが、これは必須ではなく、並列化後の処理時間は記憶装置101に出力し格納しておくことができる。入力装置102はまた、上記処理時間が目標性能を満たさない場合に、複数のタスク中でハードウェア化するタスクを決定し、そのタスク名、そのタスクの処理時間、およびそのタスクによる前記起動をかけるタイミングを入力可能とされる。この場合、中央演算処理装置100は、並列化性能見積りプログラム8004を実行して、入力されたハードウェア化するタスクのタスク名、ハードウェア化するタスクの処理時間、およびハードウェア化するタスクによる上記起動をかけるタイミングを、上記実行順序の決定に反映させることができる。   In this way, in the hardware hardware performance estimation device, the input device 102 inputs the task name to be parallelized in the designated software and the degree of parallelism. When the central processing unit 100 executes the parallelization performance estimation program 8004 using the input task name to be parallelized and the degree of parallelism, calculates the processing time for each task, and propagates variables between tasks The task execution timing of the task name to be parallelized so that the processing time is the shortest with the above-mentioned degree of parallelism is determined in consideration of the timing at which one task activates the other task. To do. The output device 103 can output the processing time (processing time after parallelization) according to this execution order, but this is not essential, and the processing time after parallelization is output to the storage device 101 and stored. be able to. Further, when the processing time does not satisfy the target performance, the input device 102 determines a task to be hardwareized in a plurality of tasks, and applies the task name, the processing time of the task, and the activation by the task Timing can be input. In this case, the central processing unit 100 executes the parallelization performance estimation program 8004 and executes the above-described task name of the task to be hardwareized, the processing time of the task to be hardwareized, and the task to be hardwareized. The timing for starting can be reflected in the determination of the execution order.

次に、本発明によるソフトウェアの全体あるいは一部をハードウェア化する際の、ソフトウェア部分とハードウェア部分を合わせた全体の性能を見積るフローを説明するが、その前に従来技術によるソフトウェアの性能見積りフローについて説明する。
図1は、従来技術によるソフトウェアの性能見積りフローの一例を示す図である。図1において、工程1001では、性能を見積る対象とされるソフトウェアを指定する。工程1002では、ソフトウェア中のタスク名をリスト化する。工程1003では、ソフトウェア中で並列化するタスク名およびその並列度を入力する。工程1004では、ソフトウェア中のタスクごとの処理時間を算出する。工程1005では、タスク間でのタスクの起動、変数の伝播を抽出しリスト化する。工程1006では、入力した並列化するタスク名のタスクを、入力した並列度でスケジューリングする。工程1007では、並列化後の処理時間を出力する。工程1008では、並列化後の処理時間が目標性能を満たしているかどうかの判定を行い、目標性能を満たさない場合は、並列化するタスクの追加および変更、もしくは、並列度を変更して、再度工程1003から上記工程を繰り返し、目標性能を満たす場合は工程1009へ進み処理終了となる。
Next, a flow for estimating the total performance of the software portion and the hardware portion when the whole or a part of the software according to the present invention is implemented as hardware will be described. Before that, the performance estimation of the software according to the prior art will be described. The flow will be described.
FIG. 1 is a diagram showing an example of a software performance estimation flow according to the prior art. In FIG. 1, in step 1001, the software whose performance is to be estimated is specified. In step 1002, task names in the software are listed. In step 1003, the task name to be parallelized in software and the degree of parallelism are input. In step 1004, the processing time for each task in the software is calculated. In step 1005, task activation and variable propagation between tasks are extracted and listed. In step 1006, the task with the input task name to be parallelized is scheduled with the input parallelism. In step 1007, the processing time after parallelization is output. In step 1008, it is determined whether or not the processing time after parallelization satisfies the target performance. If the target performance is not satisfied, the addition and change of the task to be parallelized or the parallelism is changed, and then again. The above steps are repeated from step 1003, and when the target performance is satisfied, the process proceeds to step 1009 and the process ends.

図2は、本発明によるソフトウェアの性能見積りフローの一例を示す図である。図2において、工程2001では、性能を見積る対象とされるソフトウェアを指定する。工程2002では、ソフトウェア中のタスク名をリスト化する。工程2003では、ソフトウェア中で並列化するタスク名およびその並列度を入力する。工程2004では、ソフトウェア中のタスクごとの処理時間を算出する。工程2005では、タスク間でのタスクの起動、変数の伝播を抽出しリスト化する。工程2006では、入力した並列化するタスク名のタスクを、入力した並列度でスケジューリングする。工程2007では、並列化後の処理時間を出力する。工程2008では、並列化後の処理時間が目標性能を満たしているかどうかの判定を行い、目標性能を満たさない場合は工程2009を実施し、満たす場合は工程2012へ進み処理終了となる。工程2009では、ハードウェア化するタスクを決定する。工程2010では、ハードウェア化するタスクの処理時間を設定する。工程2011では、ハードウェア化するタスクが起動するタスクの起動タイミングを設定する。その後、工程2006に戻り、ハードウェア化するタスクの処理時間の設定情報と、ハードウェア化するタスクが起動をかけるタスクのタイミングの設定情報をスケジューリング計算に反映して再スケジューリングする。工程2007では、ハードウェア化後の処理時間を出力し、工程2008で目標性能を満足しているかどうか判定する。そして、再び条件を満たさない場合は、工程2009においてハードウェア化するタスクを決定(変更)し、工程2010においてハードウェア化するタスクの処理時間を設定(変更)し、工程2011におけるハードウェア化するタスクが起動するタスクの起動タイミングを設定(変更)して、再度工程2006以降の工程を繰り返す。そして、目標性能を満たす場合は工程2012へ進み処理終了となる。   FIG. 2 is a diagram showing an example of a software performance estimation flow according to the present invention. In FIG. 2, in step 2001, the software whose performance is to be estimated is designated. In step 2002, task names in the software are listed. In step 2003, the task name to be parallelized in software and the degree of parallelism are input. In step 2004, the processing time for each task in the software is calculated. In step 2005, task activation and variable propagation between tasks are extracted and listed. In step 2006, the task with the input task name to be parallelized is scheduled with the input parallelism. In step 2007, the processing time after parallelization is output. In step 2008, it is determined whether or not the processing time after parallelization satisfies the target performance. If the target performance is not satisfied, step 2009 is executed. If the target performance is satisfied, the processing proceeds to step 2012 and the processing ends. In step 2009, a task to be hardware is determined. In step 2010, the processing time of the task to be implemented as hardware is set. In step 2011, the start timing of the task to be started by the task to be hardware is set. Thereafter, the process returns to step 2006, and the setting information of the processing time of the task to be implemented in hardware and the setting information of the timing of the task activated by the task to be implemented in hardware are reflected in the scheduling calculation and rescheduled. In step 2007, the processing time after hardware conversion is output, and it is determined in step 2008 whether the target performance is satisfied. If the condition is not satisfied again, the task to be hardwareized is determined (changed) in step 2009, the processing time of the task to be hardwareized is set (changed) in step 2010, and the hardware is converted in step 2011. The start timing of the task to be started is set (changed), and the processes after the process 2006 are repeated again. And when satisfy | filling target performance, it progresses to the process 2012 and is complete | finished.

従来技術と本発明における実施形態の違いは、図1の従来技術のフローでは、工程1008でスケジューリング後の処理時間が目標性能を満足していない場合、工程1003に戻り、並列化するタスクの追加および変更、もしくは、並列度を変更して再見積りするが、図2の本発明によるフローでは、工程2008の判定でスケジューリング後の処理時間が目標性能を満足していない場合、工程2009にてハードウェア化するタスクを決定し、工程2010にてハードウェア化するタスクの処理時間を設定し、工程2011にてハードウェア化するタスクが起動するタスクの起動タイミングを設定し、それらを用いて工程2006において再度スケジューリングを実施するところにある。   The difference between the prior art and the embodiment of the present invention is that, in the flow of the prior art in FIG. 1, when the processing time after scheduling in step 1008 does not satisfy the target performance, the process returns to step 1003 and the task to be parallelized is added. In the flow according to the present invention in FIG. 2, if the processing time after scheduling does not satisfy the target performance in the determination in step 2008, the hardware is changed in step 2009. The task to be hardware is determined, the processing time of the task to be hardwareized is set in step 2010, the start timing of the task to be activated by the task to be hardware is set in step 2011, and using them, step 2006 is used. In this case, scheduling is performed again.

図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’の処理末尾の起動タイミングとなり、時間的に早くなる。すなわち、全体として処理時間が短縮される。   FIG. 9 illustrates an example of an embodiment of the present invention for estimating the total performance of the software part and the hardware part when the whole or a part of the software is hardwareized to improve the processing speed. FIG. In FIG. 9, the task 1 (processing time 9008), task 2 (processing time 9001), and task 3 (processing time 9003) of software are scheduled with a parallel degree of 2, and the processing time 9009 of the estimation result is the target performance. In the case where the above condition is not satisfied, a state is shown in which rescheduling is performed by making the task 2 in the hardware into hardware. That is, the processing time 9002 of the task 2 to be implemented in hardware and the activation timing 9004 of the task 3 activated from the task 2 are set, and the rescheduling 9005 is performed. After rescheduling 9005, task 2 that has been hardwareized has a reduced processing time 9006 and the start timing of task 3 changes. As a result, the processing time 9007 of the estimation result is the sum of the processing time 9008 of task 1 and the processing time 9003 of task 3. As shown in the figure, the activation timing at the end of the process A in task 2 before hardware implementation becomes the activation timing at the end of the process A 'in task 2 after hardware implementation and is earlier in time. That is, the processing time is shortened as a whole.

上述のものは、コンピュータに次のプログラムを実行させることで実施することができる。すなわち、このプログラムは、ソフトウェアのハードウェア化の性能見積りのためにコンピュータを、指定されたソフトウェア中で並列化するタスク名およびその並列度を入力する手段、前記並列化するタスク名およびその並列度に基づいてタスクごとの処理時間を算出する手段、前記タスク間で変数を伝播する場合に一方のタスクが他方のタスクに起動をかけるタイミングを抽出する手段、前記起動をかけるタイミングを考慮して前記並列度で処理時間が最短となるように前記並列化するタスク名のタスクの実行順序を決定する手段、前記実行順序による処理時間を出力する手段、前記処理時間が目標性能を満たさない場合に、前記タスク中でハードウェア化するタスクの処理時間および前記ハードウェア化するタスクによる前記起動をかけるタイミングを入力する手段、および前記ハードウェア化するタスクの処理時間および前記ハードウェア化するタスクによる前記起動をかけるタイミングを前記実行順序の決定に反映させる手段、として機能させる。このプログラムは、記憶装置に格納しておくことができるが、これに限定されずCDROM等のコンピュータ読み取り可能な記録媒体に記録して又は外部から通信手段によって提供することも可能である。   The above can be implemented by causing a computer to execute the following program. That is, the program includes a task name for parallelizing a computer in specified software and a degree of parallelism for estimating the hardware performance of the software, the task name for parallelization and the degree of parallelism. Means for calculating the processing time for each task based on the above, means for extracting the timing at which one task activates the other task when a variable is propagated between the tasks, and considering the timing at which the activation is performed Means for determining the execution order of tasks of the task names to be parallelized so that the processing time is the shortest in parallel degree, means for outputting the processing time according to the execution order, and when the processing time does not satisfy the target performance, The processing time of the task to be hardwareized in the task and the start by the task to hardwareize That means for inputting the timing, and the hardware implementation to means for reflecting the timing for applying the activation by the task of processing time and the hardware of the task to determine the execution order, to function as a. The program can be stored in a storage device, but is not limited thereto, and can be recorded on a computer-readable recording medium such as a CDROM or provided from outside by a communication unit.

このように本発明は、タスクの処理時間変化をパラメータ化してハードウェア化検討結果の処理時間を設定し、かつハードウェア化するタスクが起動をかけるタスクの起動タイミングをパラメータ化して、ハードウェア化検討結果のタスクの起動タイミングを設定し、前記ハードウェア化検討結果の処理時間と、前記ハードウェア化検討結果のタスクの起動タイミングを、スケジューリング計算に反映した上で再スケジューリングし、ソフトウェアの全体あるいは一部をハードウェア化して並列化する際の、ソフトウェア部分とハードウェア部分を合わせた全体の性能を見積るものである。   As described above, the present invention parameterizes the processing time change of the task to set the processing time of the result of the hardware study, and parameterizes the start timing of the task to be activated by the task to be hardware-implemented. The task start timing of the study result is set, the processing time of the hardware study result and the task start timing of the hardware study result are reflected in the scheduling calculation and rescheduled, and the entire software or It estimates the overall performance of the software part and the hardware part when a part is made into hardware and parallelized.

すなわち、本発明は、処理速度向上のためにソフトウェアの全体あるいは一部をハードウェア化する際の、ソフトウェア部分とハードウェア部分を合わせた全体の性能を見積るものであって、性能を見積る対象とされるソフトウェア、そのソフトウェア中で並列化するタスク名、およびその並列度を入力として、タスクごとの処理時間を算出する機能と、タスク間でのタスクの起動および変数の伝播を抽出し、リスト化する機能と、前記タスクごとの処理時間と、前記タスク間でのタスクの起動、変数の伝播のリストと、前記ソフトウェア中で並列化するタスク名および前記並列度を入力としてスケジューリングする機能を有する。加えて、前記スケジューリングしたソフトウェア中からハードウェア化するタスクを指定する機能と、前記ハードウェア化するタスクの処理時間を設定する機能と、前記リスト化したタスク間でのタスクの起動および変数の伝播をもとに、ハードウェア化するタスクが起動をかけるタスクの起動タイミングを設定する機能と、前記設定したハードウェア化するタスクが起動をかけるタスクの起動タイミングと、前記ハードウェア化するタスクの処理時間の設定情報をスケジューリング計算に反映して再スケジューリングする機能を有するものである。これにより、ソフトウェアの性能すなわち処理時間を目標性能まで向上させるために、ソフトウェアの全体あるいは一部のハードウェア化をする際の、ソフトウェア部分とハードウェア部分を合わせた全体の性能すなわち処理時間を見積ることが容易に可能となり、設計生産性を向上させることができる。   That is, the present invention estimates the total performance of the software part and the hardware part when the whole or a part of the software is hardwareized in order to improve the processing speed. Function, the task name to be parallelized in the software, and the degree of parallelism are input, and the processing time for each task is calculated, and task activation and variable propagation between tasks are extracted and listed. And a processing time for each task, task activation between the tasks, a variable propagation list, a task name to be parallelized in the software, and a function of scheduling with the parallel degree as input. In addition, a function for specifying a task to be hardwareized from among the scheduled software, a function for setting a processing time of the task to be hardwareized, and task activation and variable propagation between the listed tasks Based on the above, a function for setting a start timing of a task to be started by a hardware task, a start timing of a task to be started by the set hardware task, and processing of the hardware task The time setting information is reflected in the scheduling calculation and has a function of rescheduling. In this way, in order to improve the software performance, that is, the processing time, to the target performance, the total performance, that is, the processing time of the software portion and the hardware portion when the whole or a part of the software is converted into hardware is estimated. This makes it possible to improve design productivity.

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:ハードウェア化前の見積り結果の処理時間   3001: Software, 3002: Name of task to be parallelized, 3003: Parallel degree, 3004: Performance estimation program, 3005: Processing time after parallelization, 4001: Source code of task 1, 4002: Source code of task 2, 4003: Task 3 source code, 4004: Task activation, 4005 to 4006: Task 3 input variable, 5001: Estimated result processing time, 5002 to 5004: Task processing time, 6001 to 6003: Task processing time, 6004: Task 2 A processing, 6005: Estimation result processing time, 7001: Task 2, 7002 to 7006: Software task 2 processing, 7007: Hardware implementation, 7008: Software task 2 processing processing time, 7009 To 7013: processing of hardware task 2; 014: Processing time of processing of hardware task 2, 7015: Parallel processing of processing B and processing C, 8001: Software, 8002: Task name to be parallelized, 8003: Parallel degree, 8004: Performance estimation program, 8005: Parallel Processing time after conversion, 8006: Task to be converted to hardware, 8007: Task name of task to be converted to hardware, 8008: Processing time of task to be converted to hardware, 8009: Startup of task that is activated by task to be converted to hardware Timing, 8010: total processing time of software part and hardware part, 9001: task 2 processing time, 9002: task processing time to be hardware, 9003: task 3 processing time, 9004: hardware implementation Task start timing 9005: Re-scheduling processing, 9006: processing time hardware task 2, 9007: processing time estimate results after hardware implementation, 9008: processing time of the task 1, 9009: processing time hardware implementation previous estimation result

Claims (4)

ソフトウェアのハードウェア化の性能見積り方法であって、
指定されたソフトウェア中で並列化するタスク名およびその並列度を入力する工程、
前記並列化するタスク名およびその並列度に基づいてタスクごとの処理時間を算出する工程、
前記タスク間で変数を伝播する場合に一方のタスクが他方のタスクに起動をかけるタイミングを抽出する工程、
前記起動をかけるタイミングを考慮して前記並列度で処理時間が最短となるように前記並列化するタスク名のタスクの実行順序を決定する工程、
前記実行順序による処理時間を出力する工程、
前記処理時間が目標性能を満たさない場合に、前記タスク中でハードウェア化するタスクの処理時間および前記ハードウェア化するタスクによる前記起動をかけるタイミングを入力する工程、および
前記ハードウェア化するタスクの処理時間および前記ハードウェア化するタスクによる前記起動をかけるタイミングを前記実行順序の決定に反映させる工程、
を備えた方法。
A method for estimating the hardware performance of software,
Entering the task name to be parallelized in the specified software and its degree of parallelism,
Calculating a processing time for each task based on the task name to be parallelized and the degree of parallelism thereof,
Extracting a timing when one task activates the other task when a variable is propagated between the tasks;
Determining the task execution order of the task names to be parallelized so that the processing time is the shortest in the degree of parallelism in consideration of the timing of performing the activation;
Outputting a processing time according to the execution order;
When the processing time does not satisfy the target performance, a step of inputting a processing time of a task to be hardwareized in the task and a timing at which the activation by the task to be hardwareized is input; and Reflecting the processing time and the timing of performing the activation by the task to be implemented in hardware in the determination of the execution order;
With a method.
ソフトウェアのハードウェア化の性能見積り装置であって、
指定されたソフトウェア中で並列化するタスク名およびその並列度を入力する手段、
前記並列化するタスク名およびその並列度に基づいてタスクごとの処理時間を算出する手段、
前記タスク間で変数を伝播する場合に一方のタスクが他方のタスクに起動をかけるタイミングを抽出する手段、
前記起動をかけるタイミングを考慮して前記並列度で処理時間が最短となるように前記並列化するタスク名のタスクの実行順序を決定する手段、
前記実行順序による処理時間を出力する手段、
前記処理時間が目標性能を満たさない場合に、前記タスク中でハードウェア化するタスクの処理時間および前記ハードウェア化するタスクによる前記起動をかけるタイミングを入力する手段、および
前記ハードウェア化するタスクの処理時間および前記ハードウェア化するタスクによる前記起動をかけるタイミングを前記実行順序の決定に反映させる手段、
を備えた装置。
A hardware performance estimation device for software,
A means to input the task name to be parallelized in the specified software and its degree of parallelism,
Means for calculating a processing time for each task based on the task name to be parallelized and the degree of parallelism thereof;
Means for extracting a timing at which one task activates the other task when a variable is propagated between the tasks;
Means for determining the task execution order of the task names to be parallelized so that the processing time is the shortest in the degree of parallelism in consideration of the timing of the activation;
Means for outputting a processing time according to the execution order;
Means for inputting a processing time of a task to be hardwareized in the task and a timing for performing the activation by the task to be hardwareized when the processing time does not satisfy a target performance; and Means for reflecting the processing time and the timing of performing the activation by the task to be implemented in hardware in the determination of the execution order;
With a device.
ソフトウェアのハードウェア化の性能見積りのためにコンピュータを、
指定されたソフトウェア中で並列化するタスク名およびその並列度を入力する手段、
前記並列化するタスク名およびその並列度に基づいてタスクごとの処理時間を算出する手段、
前記タスク間で変数を伝播する場合に一方のタスクが他方のタスクに起動をかけるタイミングを抽出する手段、
前記起動をかけるタイミングを考慮して前記並列度で処理時間が最短となるように前記並列化するタスク名のタスクの実行順序を決定する手段、
前記実行順序による処理時間を出力する手段、
前記処理時間が目標性能を満たさない場合に、前記タスク中でハードウェア化するタスクの処理時間および前記ハードウェア化するタスクによる前記起動をかけるタイミングを入力する手段、および
前記ハードウェア化するタスクの処理時間および前記ハードウェア化するタスクによる前記起動をかけるタイミングを前記実行順序の決定に反映させる手段、
として機能させるためのプログラム。
Computer for hardware performance estimation of software,
A means to input the task name to be parallelized in the specified software and its degree of parallelism,
Means for calculating a processing time for each task based on the task name to be parallelized and the degree of parallelism thereof;
Means for extracting a timing at which one task activates the other task when a variable is propagated between the tasks;
Means for determining the task execution order of the task names to be parallelized so that the processing time is the shortest in the degree of parallelism in consideration of the timing of the activation;
Means for outputting a processing time according to the execution order;
Means for inputting a processing time of a task to be hardwareized in the task and a timing for performing the activation by the task to be hardwareized when the processing time does not satisfy a target performance; and Means for reflecting the processing time and the timing of performing the activation by the task to be implemented in hardware in the determination of the execution order;
Program to function as.
ソフトウェアのハードウェア化の性能見積りのためにコンピュータを、
指定されたソフトウェア中で並列化するタスク名およびその並列度を入力する手段、
前記並列化するタスク名およびその並列度に基づいてタスクごとの処理時間を算出する手段、
前記タスク間で変数を伝播する場合に一方のタスクが他方のタスクに起動をかけるタイミングを抽出する手段、
前記起動をかけるタイミングを考慮して前記並列度で処理時間が最短となるように前記並列化するタスク名のタスクの実行順序を決定する手段、
前記実行順序による処理時間を出力する手段、
前記処理時間が目標性能を満たさない場合に、前記タスク中でハードウェア化するタスクの処理時間および前記ハードウェア化するタスクによる前記起動をかけるタイミングを入力する手段、および
前記ハードウェア化するタスクの処理時間および前記ハードウェア化するタスクによる前記起動をかけるタイミングを前記実行順序の決定に反映させる手段、
として機能させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
Computer for hardware performance estimation of software,
A means to input the task name to be parallelized in the specified software and its degree of parallelism,
Means for calculating a processing time for each task based on the task name to be parallelized and the degree of parallelism thereof;
Means for extracting a timing at which one task activates the other task when a variable is propagated between the tasks;
Means for determining the task execution order of the task names to be parallelized so that the processing time is the shortest in the degree of parallelism in consideration of the timing of the activation;
Means for outputting a processing time according to the execution order;
Means for inputting a processing time of a task to be hardwareized in the task and a timing for performing the activation by the task to be hardwareized when the processing time does not satisfy a target performance; and Means for reflecting the processing time and the timing of performing the activation by the task to be implemented in hardware in the determination of the execution order;
A computer-readable recording medium in which a program for functioning as a computer is recorded.
JP2011162340A 2011-07-25 2011-07-25 Software hardware performance estimation method, apparatus, program, and recording medium therefor Active JP5739759B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011162340A JP5739759B2 (en) 2011-07-25 2011-07-25 Software hardware performance estimation method, apparatus, program, and recording medium therefor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011162340A JP5739759B2 (en) 2011-07-25 2011-07-25 Software hardware performance estimation method, apparatus, program, and recording medium therefor

Publications (2)

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

Family

ID=47783948

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011162340A Active JP5739759B2 (en) 2011-07-25 2011-07-25 Software hardware performance estimation method, apparatus, program, and recording medium therefor

Country Status (1)

Country Link
JP (1) JP5739759B2 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09160949A (en) * 1995-12-07 1997-06-20 Hitachi Ltd Design supporting method in mixed system of hardware and software
JP2001184204A (en) * 1999-12-27 2001-07-06 Hitachi Ltd Method for deciding module execution sequence and electronic system and medium for the same
JP2005063136A (en) * 2003-08-12 2005-03-10 Toshiba Corp Design system, design method, and design program of semiconductor integrated circuit
JP2007018313A (en) * 2005-07-08 2007-01-25 Fujitsu Ltd Circuit design program, circuit design device and circuit design method

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09160949A (en) * 1995-12-07 1997-06-20 Hitachi Ltd Design supporting method in mixed system of hardware and software
JP2001184204A (en) * 1999-12-27 2001-07-06 Hitachi Ltd Method for deciding module execution sequence and electronic system and medium for the same
JP2005063136A (en) * 2003-08-12 2005-03-10 Toshiba Corp Design system, design method, and design program of semiconductor integrated circuit
JP2007018313A (en) * 2005-07-08 2007-01-25 Fujitsu Ltd Circuit design program, circuit design device and circuit design method

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JPN6015013517; 倉重克己: '新発想のツール「Impulse C」を使ったソフトウェアのハードウェア化手法' Interface 第30巻,第6号(通巻324号), 20040601, p.119-130, CQ出版株式会社 *

Also Published As

Publication number Publication date
JP5739759B2 (en) 2015-06-24

Similar Documents

Publication Publication Date Title
Guo et al. Hardware acceleration of long read pairwise overlapping in genome sequencing: A race between fpga and gpu
US11449364B2 (en) Processing in a multicore processor with different cores having different architectures
US10089426B2 (en) Logic circuit generation device and method
Schranzhofer et al. Timing analysis for TDMA arbitration in resource sharing systems
Axer et al. Response-time analysis of parallel fork-join workloads with real-time constraints
JP4988789B2 (en) Simulation system, method and program
Berry et al. Event-based parareal: A data-flow based implementation of parareal
JP2010134614A (en) Paralleling processing method, system, and program
US20170024508A1 (en) System and method for managing and composing verification engines
JP2009524866A (en) System and method for parallel execution of programs
JP2011138219A (en) Device and method for displaying result of parallel program analysis
Chaudhuri et al. A solution methodology for exact design space exploration in a three-dimensional design space
KR20140077775A (en) Apparatus and method for predicting performance according to parallelization of hardware acceleration device
Chaudhuri et al. An exact methodology for scheduling in a 3d design space
JP5692739B2 (en) Method, program and system for solving ordinary differential equations
JP5739759B2 (en) Software hardware performance estimation method, apparatus, program, and recording medium therefor
US11657197B2 (en) Support system and computer readable medium
KR102161055B1 (en) Method and Apparatus for instruction scheduling using software pipelining
JP4950325B2 (en) Efficient parallel processing method of Monte Carlo method
Zhai et al. Modeling, analysis, and hard real-time scheduling of adaptive streaming applications
JP6776914B2 (en) Parallelization method, parallelization tool
JP2007018313A (en) Circuit design program, circuit design device and circuit design method
Antolak et al. Validation of task scheduling techniques in multithread time predictable systems
Tuhin et al. Compiling parallel applications to coarse-grained reconfigurable architectures
Li et al. Reducing worst case reaction time of synchronous programs on chip-multiprocessors with application-specific TDMA scheduling

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