WO2012117746A1 - Computer software system design support device - Google Patents

Computer software system design support device Download PDF

Info

Publication number
WO2012117746A1
WO2012117746A1 PCT/JP2012/001478 JP2012001478W WO2012117746A1 WO 2012117746 A1 WO2012117746 A1 WO 2012117746A1 JP 2012001478 W JP2012001478 W JP 2012001478W WO 2012117746 A1 WO2012117746 A1 WO 2012117746A1
Authority
WO
WIPO (PCT)
Prior art keywords
task
execution time
execution
time
computer software
Prior art date
Application number
PCT/JP2012/001478
Other languages
French (fr)
Japanese (ja)
Inventor
幸一 中本
秀一 大西
Original Assignee
兵庫県
株式会社ヴィッツ
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 兵庫県, 株式会社ヴィッツ filed Critical 兵庫県
Priority to JP2013502203A priority Critical patent/JP5374707B2/en
Publication of WO2012117746A1 publication Critical patent/WO2012117746A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3419Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3457Performance evaluation by simulation

Definitions

  • the present invention relates to a design support method and a design support apparatus for predicting the performance of computer software that operates stand-alone and for pre-evaluating the design and performance of the computer software.
  • Non-Patent Document 1 a queuing model has been conventionally used as a server computer design model as shown in FIG. 15 (for example, Non-Patent Document 1).
  • queuing models have been used in network systems.
  • the queuing model is effective for system design, there is a large gap between the queuing model and the software design model in software design, and it is difficult to say that it is a practical approach.
  • an approach method for estimating the performance of the entire system by estimating the amount of hardware resources required for each step when executing software is presented (Non-Patent Document 2).
  • access to shared resources in the system often has a large effect on performance, but this performance evaluation also uses the queuing model and has the same problem as described above.
  • Patent Document 1 discloses an approach method for predicting performance in a computer system.
  • Patent Document 2 discloses a performance evaluation method for parallel computers.
  • Patent Document 2 uses a queuing network model based on a queuing model and has the same problem as described above.
  • Patent Document 3 there is a system that actually measures performance in a system and performs performance prediction based on the data. Although this method may be effective for the development of affiliated systems, it does not work very well when initially designing a system. Further, there is a performance prediction method at a part level with a coarse particle size in a computer system (Patent Document 4). However, in the case of performance prediction at the level of coarse parts, it is not possible to evaluate the performance of those with severe time constraints such as a real-time system.
  • Embedded software malfunctions account for more than half of the causes of malfunctions in embedded systems.
  • the reason for the failure is that sufficient measures have not been taken against the large scale and complexity of embedded software.
  • new functions are installed to improve product competitiveness, functions are improved using new technologies, and functions are improved to meet customer demands.
  • E-mail function, call function, browser function, video playback function and many other programs are installed. For this reason, the development scale of mobile phones has increased, and verification of the combined operation of programs has become difficult. Over 50% of the causes of defects are caused by programs, and these defects occur at the end of product development or after product shipment.
  • the present invention aims to improve a design process related to a performance problem, which is one of the major causes of failures, and to reduce the development cost by improving the quality of embedded software and reducing the number of reversals.
  • An object is to provide a software design support method and a design support apparatus.
  • a computer software design support method of the present invention is a computer software design support method for predicting the performance of a system equipped with at least one application processing program, and includes the following steps 1) to 4): Is provided. 1) Define at least the priority, start cycle, execution time, and number of executions for each task constituting the application processing program 2) Define the execution flow of the tasks constituting the application processing program 3) Define for each task Step 4) Calculate the execution time of the task execution flow using the priority, start cycle, execution time, and number of executions. 4) Predict system performance from the minimum execution time, maximum execution time, and execution time distribution of the application processing program. Step to perform
  • the application processing program is for causing the computer to realize the functions of the system.
  • a task is a process that is a component for causing a computer to realize a function.
  • the task priority is an index for determining the order in which the computer executes when there are a plurality of executable tasks.
  • the task activation cycle refers to the activation time interval when the task is activated periodically.
  • the activation cycle is set to 0 (zero), for example.
  • the task execution time is an estimated time for the computer to execute the task. This estimated time takes into account the processing volume performed by the task and the processing waiting time when the task accesses the hardware resource. Further, the number of executions of a task means the number of executions of a task that is periodically started up or the number of retries of a task that performs an error retry.
  • the application processing program means, for example, in the case of a mobile phone, a program that realizes a browser function, a program that realizes an e-mail function, a program that realizes a call function, and the like.
  • the execution flow of the tasks constituting the application processing program refers to a flowchart showing the execution order, repetition, conditional branching, exclusive control of resources between tasks, etc. of one or more tasks constituting the application processing program.
  • the task execution time distribution information is preferably added to the task execution time of 1) above.
  • the task execution time distribution information is added by paying attention to the fact that some tasks do not always finish processing at a fixed execution time.
  • the distribution information of task execution time includes distribution information of execution time, distribution information expressed by mathematical expressions such as probability distribution of execution time, and Gaussian distribution. Note that the task execution time distribution information is not limited to this as long as it represents variations in task execution time.
  • the task execution time distribution information is more preferably defined by the estimated execution time and its weight.
  • the weighting may be expressed by a probability that the estimated execution time is reached.
  • the task execution time distribution information preferably includes the access time of the hardware resource when the task accesses the hardware resource.
  • hardware resources include shared memory, flash memory (flash non-volatile semiconductor memory such as memory), USB (Universal Serial Bus) memory, and hard disk.
  • the access time of hardware resources is processing waiting time such as write time and read time for accessing resources.
  • the task execution time distribution information includes the exclusive control processing waiting time when the task includes the exclusive control logic.
  • a timeout time may be set in the exclusive control logic.
  • the task execution time is more preferably used as a reference index value obtained by accumulating the estimated execution time of the application interface function of the system software used for the task.
  • the system software is a program outside the framework of the application processing program, such as an operating system (OS) or a screen drawing service program.
  • the predicted time area that is the performance target for each application processing program is the one that defines the upper limit of the processing time, the one that defines the lower limit, the one that defines the upper and lower limits, the one that defines some time, and the several time areas An example is given below.
  • the simulation of the minimum execution time, maximum execution time, and execution time distribution of the application processing program defines the execution probability for each of one or more tasks that are conditionally executed. It is preferable that an execution time distribution is generated.
  • each execution probability is defined for each of one or more tasks that are conditionally executed. For example, when the process is divided into two processes, the tasks executed depending on the conditions are different. The execution time varies depending on the conditions. Therefore, by defining the execution probability of each task, we decided to simulate the minimum execution time, maximum execution time, and execution time distribution of an application processing program having logic that processes depending on conditions.
  • the simulation of the minimum execution time, maximum execution time, and execution time distribution of the application processing program performs exclusive control on hardware resources that are commonly accessed by a plurality of tasks.
  • an execution time distribution is preferably generated.
  • the exclusive control is usually performed using a flag, a semaphore, a token, or the like. The time until the value of this flag changes or the time until acquisition such as a semaphore is the processing waiting time. Since this processing wait time changes depending on the task execution status, an execution time distribution occurs.
  • a computer software system design support apparatus includes a task definition input means for defining a priority, a start cycle, an execution time, and an execution count for each task constituting an application processing program and registering it as a task information database, and an application processing program Stores program definition input means that defines the execution flow of tasks used every time using flow definition parts registered in advance, and registers it as a program definition database, a task information database, a program definition database, and flow definition parts
  • An execution time distribution simulation means for simulating an execution time distribution for each application processing program, and a result display means for displaying a performance evaluation result of the system.
  • the task definition input means for defining the priority, start cycle, execution time, and number of executions for each task constituting the application processing program and registering it as a task information database
  • the application processing program is for causing the computer to realize the functions of the system.
  • a task is a process that is a component for causing a computer to realize a function.
  • the task priority is an index for determining the order in which the computer executes when there are a plurality of executable tasks.
  • the task activation cycle refers to the activation time interval when the task is activated periodically.
  • the activation cycle is set to 0 (zero), for example.
  • the task execution time is an estimated time for the computer to execute the task. This estimated time takes into account the processing volume performed by the task and the processing waiting time when the task accesses the hardware resource. Further, the number of executions of a task means the number of executions of a task that is periodically started up or the number of retries of a task that performs an error retry.
  • the task information database is a database in which information on the priority, start cycle, execution time, and number of executions can be referred to by a unique identification number assigned to each task.
  • the unique identification number assigned to each task may be a unique task name.
  • program definition input means for defining a task execution flow used for each application processing program using a flow definition component registered in advance and registering it as a program definition database.
  • the application processing program means, for example, in the case of a mobile phone, a program that realizes a browser function, a program that realizes an e-mail function, a program that realizes a call function, and the like.
  • the execution flow of the tasks constituting the application processing program refers to a flowchart showing the execution order, repetition, conditional branching, exclusive control of resources between tasks, etc. of one or more tasks constituting the application processing program.
  • a flow definition component is a symbolic representation of task execution order, repetition, conditional branching, resource exclusion control between tasks, etc. The number of repetitions, probability of conditional branching, timeout of exclusive control, etc. It has the parameter of.
  • the program definition database can refer to the flow definition parts and parameters used by the program, the resources accessed by the program, and the identification numbers of the tasks constituting the program, using a unique identification number assigned to each program. It is a database.
  • the unique identification number assigned to each program may be a unique program name.
  • an execution time distribution simulation means for simulating the execution time for each application processing program using the above-described task information database, program definition database, and flow definition component database in which flow definition components are stored will be described.
  • the simulation of the execution time distribution for each application processing program recognizes the task to be used and the flow definition component to be used from the program definition database corresponding to the program, and executes the priority and execution from the task information database corresponding to the task. Time and the like are recognized, and the processing contents and parameters are recognized from the flow definition component database corresponding to the flow definition component.
  • the execution time of each application processing program is simulated by adding the execution time of each task according to the task execution flow based on the priority and execution time of the recognized task, the recognized execution order, etc. To do.
  • execution times are added in order according to the execution flow of the tasks constituting the application processing program.
  • the processing waiting time is also added.
  • the execution time distribution for each program as a result of the simulation displays the result on a display screen such as a liquid crystal panel attached to the apparatus with the minimum execution time, the maximum execution time, and the occurrence frequency as a graph or a table.
  • the simulation result is stored as a different file for each program or program version.
  • the computer software system design support apparatus preferably further includes performance target information defining means for defining a predicted time region in the program definition database for each application processing program as performance target information for each application processing program.
  • the performance target information is a minimum execution time, a maximum execution time, an average execution time, and a distribution degree.
  • the result display means in the computer software system design support apparatus outputs an alarm to the application processing program when the execution time distribution of the simulation result deviates from the predicted time region.
  • the predicted time area that is the performance target for each application processing program is the one that defines the upper limit of the processing time, the one that defines the lower limit, the one that defines the upper and lower limits, the one that defines some time, and the several time areas An example is given below.
  • the task definition input means in the computer software system design support apparatus includes means for further registering the startup offset time, the real time attribute, and the time slice time for each task in the task information database.
  • the activation offset time is a delay time until the task is activated. For tasks resident in main memory, the delay time can be ignored, but for non-resident tasks where the processing code is read from the hard disk every time it is started, the delay time is also taken into account in designing the overall system performance. The evaluation can be performed correctly.
  • the real-time attribute means an event-driven task such as an interrupt, that is, a task that requires real-time property, or a periodic-driven task that performs processing periodically, that is, periodicity. Or a task attribute indicating whether a round robin method for distributing the CPU time to all executable tasks is required.
  • the task definition input means in the computer software system design support apparatus includes means for estimating the distribution information of the task execution time and registering a plurality of sets as distribution information as one set of the estimated execution time and its weight.
  • the weighting may be expressed by a probability that the estimated execution time is reached.
  • the task execution time distribution information is added by paying attention to the fact that some tasks do not always finish processing at a fixed execution time.
  • the distribution information of task execution time includes distribution information of execution time, distribution information expressed by mathematical expressions such as probability distribution of execution time, and Gaussian distribution. Note that the task execution time distribution information is not limited to this as long as it represents variations in task execution time.
  • the task definition input means in the computer software system design support apparatus further includes a processing wait time registration means for registering an estimated processing time of a hardware resource in which a processing wait time occurs.
  • the hardware resource means a non-volatile semiconductor memory such as a shared memory or a flash memory, a USB memory, a hard disk, or the like, as described above.
  • the access time of hardware resources is processing waiting time such as write time and read time for accessing resources.
  • the hardware resource is more preferably a resource that is commonly accessed by a plurality of tasks. When exclusive control logic is required for resources that are commonly accessed by a plurality of tasks, the processing wait time for exclusive control is included. A timeout time may be set in the exclusive control logic.
  • the exclusive control is usually performed using a flag, a semaphore, a token, or the like.
  • the time until the value of this flag changes or the time until acquisition such as a semaphore is the processing waiting time. Since this processing wait time changes depending on the task execution status, an execution time distribution occurs.
  • the application definition input means can input at least a definition of repetitive processing, conditional branch processing, and parallel execution processing using the components registered in the flow definition component database. .
  • condition execution process can define execution probabilities for each of one or more tasks that are condition-executed.
  • Each execution probability is defined for one or more tasks that are executed conditionally. For example, when the process is divided into two processes, the task executed depends on the condition. The execution time will change. Therefore, by defining the execution probability of each task, we decided to simulate the minimum execution time, maximum execution time, and execution time distribution of an application processing program having logic that processes depending on conditions.
  • parallel execution processing is performed only when all tasks that are executed in parallel are completed, and parallel type execution that advances after that, and split type parallel execution that advances even if all tasks that are executed in parallel do not end. And preferably.
  • Software particularly embedded software incorporated in a device device, needs to be designed under severe hardware constraints such as low CPU capacity and low memory. According to the present invention, it is possible to avoid a situation in which the performance of the entire system is unachieved for the first time at the stage of designing, producing, and embedding the software module in the device. This has the effect of reducing the associated costs.
  • FIG. 1 shows a processing flow of the computer software design support method of the present invention.
  • the computer software design support method of the present invention performs performance prediction for a stand-alone system having one or more application processing programs in the following steps.
  • Step 1 For each task constituting each application processing program, a priority, a start cycle, an execution time, and an execution count are defined.
  • Step 2 For each application processing program, an execution flow of tasks constituting the program is defined.
  • Step 3) Using the priority, start cycle, execution time, and number of executions defined for each task, the execution time of the task execution flow is calculated for each application processing program.
  • System performance prediction is performed based on the minimum execution time, maximum execution time, and execution time distribution of all application processing programs.
  • FIG. 2 is a functional block diagram illustrating an example of an application processing program.
  • the application processing program of FIG. 2 includes processing task 1 and processing task 2. It is assumed that the processing task 1 performs processing for extracting the message data 3 from the message queue 1, processing the message data 3 and writing the data in the shared memory 5.
  • the processing task 2 reads data from the shared memory 5, processes the data, writes data to the flash memory 6, and in some cases reads data from the flash memory 6 and sends it to the message queue 2. Assumed to be performed.
  • step 1 first, the priority, the start cycle, the execution time, and the number of executions are defined for the two tasks of the processing task 1 and the processing task 2.
  • the processing task 1 is designed as a message driven task and the processing task 2 is designed as a periodically driven task.
  • the activation cycle of processing task 1 is 0 (zero), and the activation cycle of processing task 2 is 10 ms, for example.
  • the message driven processing task 1 is generally designed with a high priority. When the process is performed only once, the number of executions is 1, and when the process is repeated a plurality of times, the number of executions is n.
  • the processing performed by the task that is, the data extraction processing from the message queue 1, the writing processing to the shared memory 5, and the estimated time of each are estimated and determined.
  • a process for reading data from the shared memory 5, a process for writing data to the flash memory 6, a process for sending data to the message queue 2, and an estimated time for each are predicted and determined.
  • the estimated time is predicted in consideration of such processing wait times.
  • exclusive control is performed on the shared memory 5 to which the processing task 1 and the processing task 2 respectively write and read, the estimated time is predicted in consideration of the processing waiting time until the control right is received.
  • FIG. 3A shows an example of the types of tasks used in the execution flow of the application processing program. Tasks are finely defined in units that can be estimated. Define things that execute tasks repeatedly, those that execute a large number of cases according to conditions, and those that execute tasks in parallel.
  • FIG. 3B shows an example of hardware resources. A hardware resource is given a task processing wait time for accessing the resource as attribute information.
  • FIG. 4 shows an example of the execution flow of the repetitive task.
  • the initialization task 10 is 10 ⁇ sec
  • the process transaction task 12 is 20 ⁇ sec
  • the end session task 14 is 5 ⁇ sec
  • the execution time of the execution flow shown in FIG. Is 10 + 20 ⁇ 5 + 5 115 ⁇ sec.
  • FIG. 5 shows an example of a case task execution flow.
  • the transaction acquisition task 20 is 15 ⁇ sec
  • the process A task 22 is 20 ⁇ sec
  • the process B task 24 is 40 ⁇ sec
  • the process C task 26 is 25 ⁇ sec
  • the branch probabilities a to c of the case task 28 are 0.5 and 0, respectively. .3, 0.2
  • FIG. 6 shows an example of the execution flow of the pulse task.
  • the user input operation task 30 is 5 ⁇ sec
  • the remote query display task 32 is 15 ⁇ sec
  • the task 34 for displaying the query result on the screen is 25 ⁇ sec
  • the task 36 using the input data as display data is 10 ⁇ sec
  • the display display task 38 is 20 ⁇ sec.
  • the Pardo task 31 includes a logic in which an attached task 32 and task 34 are executed in parallel, and processing does not proceed first unless all these tasks are completed.
  • FIG. 7 shows an example of an execution flow of tasks of two programs for inputting data and writing to the shared memory.
  • the two application processing programs are composed of a program composed of an execution flow of a repetition task 41, a data input task 42, and a write data task 43, and an execution flow of a repetition task 46, a data input task 47, and a write data task 48. It is a program.
  • the execution time of the write data task 43 is 20 ⁇ sec and the execution time of the write data task 48 is 25 ⁇ sec
  • each write data task waits for processing while the other write data task is writing to the shared memory 40.
  • the execution time of the write data task 43 is 20 ⁇ sec
  • the execution time of the write data task 48 is 25 ⁇ sec
  • FIG. 8 shows an example of an execution flow of two program tasks, a process of writing data to the shared memory and a process of reading data.
  • the two application processing programs are composed of a program composed of an execution flow of a repetition task 51, a data input task 52, and a write data task 53, and an execution flow of a repetition task 56, a read data task 57, and a screen display task 58. It is a program. Assume that one program writes data to the shared memory 50 and the other program reads and processes the written data.
  • the execution time of the data input task 52 is 10 ⁇ sec
  • the execution time of the write data task 53 is 20 ⁇ sec
  • the execution time of the read data task 57 is 15 ⁇ sec
  • the execution time of the screen display task 58 is 25 ⁇ sec
  • FIG. 9 shows an example of an execution flow of a task of a program that stores data and stores it in a temporary memory or flash memory.
  • the execution time of the data storage task 60 is 15 ⁇ sec
  • the execution time of the storage task 62 in the temporary memory is 20 ⁇ sec
  • the processing waiting time of the flash memory is estimated as 50 ⁇ sec
  • the execution time of the storage task 63 in the flash memory is 70 ⁇ sec
  • FIG. 11 shows a functional block diagram of the application processing program of the video reproduction apparatus.
  • FIG. 11 shows a file reading task, a video decoding task, a video display task, an audio decoding task, an audio playback task, and a shared memory. The start cycle and start delay of each task, the waiting time of the shared memory, and the access unit are shown. It is shown. First, the data read from the shared memory by the file reading task is written to another shared memory. Next, the video decoding task and the audio decoding task respectively extract and decode the data in the shared memory, and pass them to the video display task and the audio reproduction task via the shared memory, respectively.
  • FIG. 12 is obtained by rewriting the functional block of FIG. 11 into a task execution flow. The execution flow of each task is shown divided into two programs, an audio processing program and a video processing program. Exclusive control is not performed for the shared memories 1 to 5.
  • the file reading task (80, 86) is a common task.
  • the execution time of the file reading task (80, 86) is 20 ⁇ sec
  • the execution time of the audio decoding task 82 is 10 ⁇ sec
  • the execution time of the audio reproduction task 83 is 30 ⁇ sec
  • the execution time of the video decoding task 87 is 40 ⁇ sec
  • the video display task 88 Is 60 ⁇ sec
  • the minimum execution time of the audio processing program is 60 ⁇ sec
  • the minimum execution time of the video processing program is 120 ⁇ sec.
  • the maximum execution time is calculated on the assumption that the processing is delayed by the activation cycle time and that the activation delay time is further added.
  • the computer software system design support apparatus is composed of a general-purpose desktop computer or notebook computer.
  • FIG. 16 shows a functional block diagram of the computer software system design support apparatus.
  • the computer software system design support apparatus includes a task information database, a program definition database, and a flow definition component database surrounded by broken lines in FIG. These databases are usually stored in the hard disk of the computer software system design support apparatus.
  • the task information database has a unique task name, priority, start offset, start cycle, real time attribute, execution time, time slice, and number of executions assigned to each task. This database can be referenced by task name.
  • the program definition database is a database in which flow definition parts and parameters used by the program, resources accessed by the program, and task names constituting the program can be referred to by a unique program name assigned to each program.
  • the flow definition component database also displays flow definition component parameter information such as the number of repetitions, probability of conditional branching, timeout of exclusive control, etc., flow of task execution order, repetition, conditional branching, exclusive control of resources between tasks, etc. It is a database that can be referenced by a unique number assigned to a definition part.
  • the computer software system design support apparatus is pre-registered with task definition input means for defining task information for each task and registering it as a task information database, and a task execution flow used for each program.
  • Program definition input means for defining and registering as a program definition database.
  • an execution time distribution simulation unit for simulating an execution time distribution for each application processing program and a system performance evaluation result display unit are provided.
  • 17 and 18 show a project creation menu and a project creation screen, respectively.
  • the computer software system design support apparatus manages a design target device or a design target system in units of projects. Therefore, create a project first.
  • the task is defined by drawing a class diagram in conformity with UML (Unified Modeling Language) 2.0.
  • UML is a unified notation for program design drawings in object-oriented software development.
  • the definition of an application processing program is to define a task execution flow used for each application processing program using a flow definition component registered in advance. The execution flow of this task is called a software execution model.
  • 19 and 20 show a task creation menu and a task creation screen according to UML 2.0, respectively.
  • FIG. 21 is an application processing program definition screen.
  • FIG. 22 shows the performance requirement analysis menu.
  • the simulation information input screen of FIG. 23 is displayed.
  • the simulation operation environment information is input using the simulation information input screen of FIG. Specifically, a simulation time and a scheduling method are input.
  • the “performance target information” tab in the screen is selected on the screen of FIG. 23, the performance target information list screen of FIG. 24 is displayed.
  • the program time constraint here, the upper limit of the execution time is displayed.
  • the performance target information of each task is created using the performance target information input screen shown in FIG.
  • task information When the “task information” tab in the screen of FIG. 23 is selected, the task information list screen of FIG. 26 is displayed. On the task information list screen, task name, priority, start offset, start cycle, real time attribute, execution time, time slice, and number of executions are displayed in a list for each task. Individual task information is created using the task information input screen of FIG.
  • the simulation time, the total task execution time of the real time attribute, the CPU usage rate, and the program list not achieving the performance target are displayed as the overall information screen.
  • the sequence screen of FIG. 29 is displayed.
  • the program name, performance target, minimum execution time, and maximum execution time are displayed. According to the sequence screen, the execution time distribution of the application processing program can be grasped.
  • the “task trace” tab in the screen of FIG. 28 or 29 is selected, the task trace screen of FIG. 30 is displayed.
  • one program consists of 5 tasks (DecodeAudio task, DecodeVideo task, Timing task, FileReader task, Playbutton task), and after the FileReader task is executed, the timing task is shown. ing.
  • the computer software design support method and the computer software design support apparatus of the present invention are a software design method and a design support apparatus for a stand-alone computer-equipped device such as a mobile phone terminal and an information home appliance, and a plurality of such as an in-vehicle system and a robot control system. It is useful as a design support method and design support device for software installed in a system composed of computers.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Abstract

Provided are a computer software design support method and a design support device, wherein the design step pertaining to performance issues which is one of the serious causes for malfunction is ameliorated and development costs associated with improving the quality of embedded software and reducing the number of back track steps are reduced. At least the priory, activation cycle, execution time and execution frequency are defined for each task constituting an application processing program. Moreover, the execution flow of tasks constituting the application processing program is defined. The execution time for the execution flow of the tasks is calculated by using the priority, activation cycle, execution time and execution frequency defined for each task. The system performance is predicted from the minimum execution time, maximum execution time and execution time distribution of the application processing program.

Description

計算機ソフトウェアシステム設計支援装置Computer software system design support device
 本発明は、スタンドアロンで動作する計算機ソフトウェアの性能予測を行い、計算機ソフトウェアの設計ならびに性能を事前評価するための設計支援方法と設計支援装置に関するものである。 The present invention relates to a design support method and a design support apparatus for predicting the performance of computer software that operates stand-alone and for pre-evaluating the design and performance of the computer software.
 情報家電や携帯電話などの計算機搭載デバイスに要求される機能が増大したことにより、デバイスに搭載されるソフトウェア量が増大し、1つのシステムに搭載されるソフトウェア部品も莫大な数になっている。特に、携帯電話の場合、通話機能、電子メール機能、ブラウザ機能など、200~300のソフトウェア部品が同居している。
 そのため、このような計算機搭載デバイスの品質の問題がつきまとう。かかる品質問題は、シミュレータなどで解決することもできるが、性能問題はソフトウェア部品を結合した後でないと性能が満足するか否かわからないことが多い。
 なぜなら、これらソフトウェア部品は1つのハードウェア資源を共有しながら同時に作動するので、1つのソフトウェア部品の実行が他のソフトウェア部品の実行を遅らせる原因になるからである。性能問題が発見された場合、開発工程の後戻りが発生し、膨大なコストが発生しているのが現状である。
As functions required for computer-mounted devices such as information home appliances and mobile phones have increased, the amount of software mounted on devices has increased, and the number of software components mounted on one system has become enormous. In particular, in the case of a mobile phone, 200 to 300 software components such as a call function, an e-mail function, and a browser function are present together.
Therefore, there is a problem with the quality of such computer-mounted devices. Such a quality problem can be solved by a simulator or the like, but in many cases, it is not known whether or not the performance problem is satisfied only after the software parts are combined.
This is because these software components operate simultaneously while sharing one hardware resource, and therefore execution of one software component causes execution of other software components to be delayed. When a performance problem is discovered, the development process is backtracked, resulting in a huge cost.
 かかる状況下、従来から、図15に示すようなサーバコンピュータの設計モデルには待ち行列モデルが多く利用されている(例えば、非特許文献1)。特に、待ち行列モデルは、ネットワークシステムで利用されてきている。しかしながら、待ち行列モデルはシステム設計には有効なもののソフトウェア設計には待ち行列モデルとソフトウェアの設計モデルに大きいなギャップがあり、実用的なアプローチとは言い難いものであった。
 また、ソフトウェアの実行に際して、必要なハードウェア資源量を各々のステップのまとまり単位で見積って、全体システムの性能を予測するアプローチ方法を提示している(非特許文献2)。但し、システム内の共有資源へのアクセスはしばしば性能に大きいな影響を与えるが、この性能評価においても、待ち行列モデルを利用したものであり、上記と同様の問題がある。
Under such circumstances, a queuing model has been conventionally used as a server computer design model as shown in FIG. 15 (for example, Non-Patent Document 1). In particular, queuing models have been used in network systems. However, although the queuing model is effective for system design, there is a large gap between the queuing model and the software design model in software design, and it is difficult to say that it is a practical approach.
In addition, an approach method for estimating the performance of the entire system by estimating the amount of hardware resources required for each step when executing software is presented (Non-Patent Document 2). However, access to shared resources in the system often has a large effect on performance, but this performance evaluation also uses the queuing model and has the same problem as described above.
 また、コンピュータシステム内の性能予測のアプローチ方法を開示しているものもある(特許文献1)。
 また、並列計算機を対象とした性能評価方法もあるが(特許文献2)、こちらも待ち行列モデルをベースとした待ち行列網モデルを用いており上記と同じ問題がある。
In addition, there is one that discloses an approach method for predicting performance in a computer system (Patent Document 1).
There is also a performance evaluation method for parallel computers (Patent Document 2), which also uses a queuing network model based on a queuing model and has the same problem as described above.
 また、実際にシステムでの性能を測定しそのデータに基づき性能予測を行うものがある(特許文献3)。この方法は、系列システムの開発には有効であろうが、最初にシステムを設計する場合にはあまり有効に機能するものではない。
 また、計算機システム内の粒度の粗い部品レベルでの性能予測方法がある(特許文献4)。しかしながら、粒度の粗い部品レベルでの性能予測の場合、リアルタイムシステムなどの時間制約が厳しいものについては性能評価できない。
In addition, there is a system that actually measures performance in a system and performs performance prediction based on the data (Patent Document 3). Although this method may be effective for the development of affiliated systems, it does not work very well when initially designing a system.
Further, there is a performance prediction method at a part level with a coarse particle size in a computer system (Patent Document 4). However, in the case of performance prediction at the level of coarse parts, it is not possible to evaluate the performance of those with severe time constraints such as a real-time system.
特開平4-363730号公報JP-A-4-363730 特開2000-298598号公報JP 2000-298598 A 特開2004-220453号公報JP 2004-220453 A 特開2004-272582号公報JP 2004-272582 A
 組込みシステムの動作不良原因は、組込みソフトウェア不具合が半数以上を占める。不具合が起きる理由として、組込みソフトウェアの大規模化と複雑化に対して、十分な対策がとられなかったためである。
 例えば、携帯電話の場合、図13に示すように、製品競争力確保のために新機能の搭載や、新技術を利用した機能向上や、顧客要望に対応する機能改善を行っており、ワンセグ機能,メール機能,通話機能,ブラウザ機能,動画再生機能など数多くのプログラムが搭載されている。このため、携帯電話の開発規模が増大し、プログラムの組合せ動作検証が困難になっている。不具合原因の50%以上がプログラムに起因するものであり、それらの不具合が製品開発段階の終盤や製品出荷後に発生している。
 このため、搭載される数多くのプログラムの個々の機能の性能要求を明確化し、事前動作検証を行うことにより、開発期間・工程・後戻り・不具体対策コストの抑制を図るべく、機能だけでなく要求性能を満足できるようにプログラムの設計支援を行えるツールが要望されている(図14を参照)。
Embedded software malfunctions account for more than half of the causes of malfunctions in embedded systems. The reason for the failure is that sufficient measures have not been taken against the large scale and complexity of embedded software.
For example, in the case of mobile phones, as shown in FIG. 13, new functions are installed to improve product competitiveness, functions are improved using new technologies, and functions are improved to meet customer demands. , E-mail function, call function, browser function, video playback function and many other programs are installed. For this reason, the development scale of mobile phones has increased, and verification of the combined operation of programs has become difficult. Over 50% of the causes of defects are caused by programs, and these defects occur at the end of product development or after product shipment.
Therefore, by clarifying the performance requirements of individual functions of many installed programs and performing preliminary operation verification, not only the functions but also the functions are required in order to reduce the development period, process, return, and unspecified countermeasure costs. There is a demand for a tool that can support program design so that performance can be satisfied (see FIG. 14).
 上記状況に鑑みて、本発明は、不具合の重大な原因の1つである性能問題に関連する設計工程を改善し、組込みソフトウェアの品質向上と後戻り工数削減による開発コストの抑制を図るべく、計算機ソフトウェア設計支援方法および設計支援装置を提供することを目的とする。 In view of the above situation, the present invention aims to improve a design process related to a performance problem, which is one of the major causes of failures, and to reduce the development cost by improving the quality of embedded software and reducing the number of reversals. An object is to provide a software design support method and a design support apparatus.
 上記目的を達成すべく、本発明の計算機ソフトウェア設計支援方法は、少なくとも1つのアプリケーション処理プログラムを搭載したシステムの性能予測を行う計算機ソフトウェア設計支援方法であって、以下の1)~4)のステップを備える。
1)アプリケーション処理プログラムを構成するタスク毎に少なくとも優先度,起動周期,実行時間,実行回数を定義するステップ
2)アプリケーション処理プログラムを構成するタスクの実行フローを定義するステップ
3)タスク毎に定義された優先度,起動周期,実行時間,実行回数を用いて、タスクの実行フローの実行時間を算出するステップ
4)アプリケーション処理プログラムの実行最小時間、実行最大時間、実行時間分布からシステムの性能予測を行うステップ
In order to achieve the above object, a computer software design support method of the present invention is a computer software design support method for predicting the performance of a system equipped with at least one application processing program, and includes the following steps 1) to 4): Is provided.
1) Define at least the priority, start cycle, execution time, and number of executions for each task constituting the application processing program 2) Define the execution flow of the tasks constituting the application processing program 3) Define for each task Step 4) Calculate the execution time of the task execution flow using the priority, start cycle, execution time, and number of executions. 4) Predict system performance from the minimum execution time, maximum execution time, and execution time distribution of the application processing program. Step to perform
 かかる構成によれば、携帯電話や情報家電など多くのアプリケーション処理プログラムを搭載したシステムの性能予測について、設計段階において事前検証することができる。
 上記1)のアプリケーション処理プログラムを構成するタスク毎の優先度,起動周期,実行時間,実行回数について説明する。ここで、アプリケーション処理プログラムはシステムが持つ機能をコンピュータに実現させるためのものである。また、タスクは機能をコンピュータに実現させるためのコンポーネントとなる処理のことをいう。タスクの優先度とは、実行可能なタスクが複数存在する場合にコンピュータに実行させる順番を決定するための指標である。また、タスクの起動周期とは、周期的にタスクを起動させる場合はその起動時間間隔をいう。タスクがイベントにより動作する処理である場合は起動周期を例えば0(ゼロ)とする。タスクの実行時間とは、コンピュータがタスクを実行する予測時間である。この予測時間は、タスクが行う処理ボリュームやタスクがハードウェアリソースにアクセスする場合はその処理待ち時間を考慮する。また、タスクの実行回数とは、周期的に起動されるタスクの実行回数やエラーリトライするタスクのリトライ回数をいう。
According to this configuration, it is possible to verify in advance at the design stage the performance prediction of a system equipped with many application processing programs such as a mobile phone and an information home appliance.
The priority, start cycle, execution time, and number of executions for each task constituting the application processing program 1) will be described. Here, the application processing program is for causing the computer to realize the functions of the system. A task is a process that is a component for causing a computer to realize a function. The task priority is an index for determining the order in which the computer executes when there are a plurality of executable tasks. Also, the task activation cycle refers to the activation time interval when the task is activated periodically. If the task is a process that operates according to an event, the activation cycle is set to 0 (zero), for example. The task execution time is an estimated time for the computer to execute the task. This estimated time takes into account the processing volume performed by the task and the processing waiting time when the task accesses the hardware resource. Further, the number of executions of a task means the number of executions of a task that is periodically started up or the number of retries of a task that performs an error retry.
 次に、上記2)のアプリケーション処理プログラムを構成するタスクの実行フローについて説明する。ここで、アプリケーション処理プログラムとは、例えば、携帯電話の場合には、ブラウザ機能を実現するプログラムや、電子メール機能を実現するプログラムや、通話機能を実現するプログラムなどをいう。アプリケーション処理プログラムを構成するタスクの実行フローとは、アプリケーション処理プログラムを構成する1以上のタスクの実行順序、繰り返し、条件分岐、タスク間のリソースの排他制御などをフローチャートの如く示したものをいう。 Next, the execution flow of the tasks constituting the application processing program 2) will be described. Here, the application processing program means, for example, in the case of a mobile phone, a program that realizes a browser function, a program that realizes an e-mail function, a program that realizes a call function, and the like. The execution flow of the tasks constituting the application processing program refers to a flowchart showing the execution order, repetition, conditional branching, exclusive control of resources between tasks, etc. of one or more tasks constituting the application processing program.
 次に、上記3)のタスク毎に定義された優先度,起動周期,実行時間,実行回数を用いて、タスクの実行フローの実行時間をどのように算出するとは、タスクの実行フローにしたがって、各タスクの実行時間を加算していくことである。
 1つのアプリケーション処理プログラムを搭載するシステムの場合、そのアプリケーション処理プログラムを構成するタスクの実行フローにしたがって、順番に実行時間を加算していく。タスクが処理待ち時間を要するリソースにアクセスする場合は、その処理待ち時間も加算する。
Next, how to calculate the execution time of the task execution flow using the priority, start cycle, execution time, and number of executions defined for each task in 3) above is as follows: It is to add the execution time of each task.
In the case of a system equipped with one application processing program, execution times are added in order according to the execution flow of the tasks constituting the application processing program. When a task accesses a resource that requires a processing waiting time, the processing waiting time is also added.
 一方、複数のアプリケーション処理プログラムを搭載するシステムの場合、アプリケーション処理プログラム毎にタスクの実行フローが複数存在する。実行フローが複数存在する場合、実行可能なタスクが複数存在するケースも有り得る。この場合、例えば、1方の実行フローのタスクでリソースの処理待ち時間が生じた場合や特定条件が成立するまで処理を待つアルゴリズムを有する場合は、他方の実行フローで実行可能なタスクに切り替わり当該タスクが実行されるとして実行時間を加算する。また、オペレーティングシステム(OS)によって優先度の高いものが実行されることから、例えば、1方の実行フローで実行可能なタスクの優先度と他方の実行フローで実行可能なタスクの優先度とを比べて、優先度の高い側のタスクが実行されるとして実行時間を加算する。 On the other hand, in the case of a system equipped with a plurality of application processing programs, there are a plurality of task execution flows for each application processing program. If there are multiple execution flows, there may be multiple tasks that can be executed. In this case, for example, if there is a resource processing wait time in one execution flow task or if there is an algorithm that waits for processing until a specific condition is satisfied, the task is switched to a task that can be executed in the other execution flow. The execution time is added as the task is executed. In addition, since a high priority is executed by the operating system (OS), for example, the priority of a task that can be executed in one execution flow and the priority of a task that can be executed in the other execution flow are set. In comparison, the execution time is added assuming that the task with the higher priority is executed.
 本発明の計算機ソフトウェア設計支援方法における上記1)のタスクの実行時間において、タスク実行時間の分布情報が付加されることが好ましい。
 タスクによっては、常に一定の実行時間で処理を終わるものではないものも存在することに着眼して、タスク実行時間の分布情報を加えるものである。タスク実行時間の分布情報とは、実行時間のバラツキ分布や、実行時間の確率分布や、ガウス分布などの数式で示す分布情報などである。なお、タスク実行時間の分布情報は、タスクの実行時間のバラツキを表すものであれば、これらに限定されずとも構わない。
In the computer software design support method of the present invention, the task execution time distribution information is preferably added to the task execution time of 1) above.
The task execution time distribution information is added by paying attention to the fact that some tasks do not always finish processing at a fixed execution time. The distribution information of task execution time includes distribution information of execution time, distribution information expressed by mathematical expressions such as probability distribution of execution time, and Gaussian distribution. Note that the task execution time distribution information is not limited to this as long as it represents variations in task execution time.
 例えば、タスク実行時間の分布情報は、見積り実行時間とその重み付けで定義されることがより好ましい。重み付けは、見積り実行時間になる確率で表現してもよい。 For example, the task execution time distribution information is more preferably defined by the estimated execution time and its weight. The weighting may be expressed by a probability that the estimated execution time is reached.
 例えば、タスク実行時間の分布情報は、該タスクがハードウェアリソースにアクセスする場合に、ハードウェアリソースのアクセス時間を含むことがより好ましい。
 ここで、ハードウェアリソースとは、共有メモリ、フラッシュメモリ(flash
memory)などの不揮発性の半導体メモリ、USB(Universal Serial Bus)メモリ、ハードディスクなどをいう。また、ハードウェアリソースのアクセス時間とは、リソースにアクセスするための書き込み時間、読み込み時間などの処理待ち時間である。
For example, the task execution time distribution information preferably includes the access time of the hardware resource when the task accesses the hardware resource.
Here, hardware resources include shared memory, flash memory (flash
non-volatile semiconductor memory such as memory), USB (Universal Serial Bus) memory, and hard disk. Further, the access time of hardware resources is processing waiting time such as write time and read time for accessing resources.
 また、タスク実行時間の分布情報には、該タスクが排他制御ロジックを含む場合に、排他制御の処理待ち時間を含むことがより好ましい。なお、排他制御ロジックにはタイムアウト時間を設定しても構わない。 Further, it is more preferable that the task execution time distribution information includes the exclusive control processing waiting time when the task includes the exclusive control logic. A timeout time may be set in the exclusive control logic.
 また、タスク実行時間は、該タスクに用いられるシステムソフトウェアのアプリケーションインタフェース関数の見積り実行時間を積み上げたものを参考指標値として用いることがより好ましい。
 ここで、システムソフトウェアとは、オペレーティングシステム(OS)や画面描画サービスプログラムなど、アプリケーション処理プログラムの枠外のプログラムである。
The task execution time is more preferably used as a reference index value obtained by accumulating the estimated execution time of the application interface function of the system software used for the task.
Here, the system software is a program outside the framework of the application processing program, such as an operating system (OS) or a screen drawing service program.
 また、本発明の計算機ソフトウェア設計支援方法において、アプリケーション処理プログラム毎の性能目標となる予測時間領域を定義し、シミュレーション結果の前記実行時間分布が前記予測時間領域と比較して逸脱する場合には、該アプリケーション処理プログラムに対してアラームを出力することが好ましい。
 ここで、アプリケーション処理プログラム毎の性能目標となる予測時間領域とは、処理時間の上限を定めるもの、下限を定めるもの、上下限を定めるもの、いくつかの時間を定めるもの、いくつかの時間領域を定めるものが例として挙げられる。
Further, in the computer software design support method of the present invention, when defining a predicted time region as a performance target for each application processing program, and when the execution time distribution of the simulation result deviates from the predicted time region, It is preferable to output an alarm to the application processing program.
Here, the predicted time area that is the performance target for each application processing program is the one that defines the upper limit of the processing time, the one that defines the lower limit, the one that defines the upper and lower limits, the one that defines some time, and the several time areas An example is given below.
 また、本発明の計算機ソフトウェア設計支援方法において、アプリケーション処理プログラムの実行最小時間、実行最大時間、実行時間分布のシミュレーションは、条件実行される1以上の各タスクに対して、それぞれの実行確率が定義されることにより、実行時間分布が生じることが好ましい。
 ここで、条件実行される1以上の各タスクに対してそれぞれの実行確率が定義されるとは、例えば、条件によって2つの処理に分かれる場合、条件によって実行されるタスクが異なることになることから、条件によって実行時間が変わることになる。そこで、それぞれのタスクの実行確率を定義することで、条件によって処理が分かれるロジックを備えるアプリケーション処理プログラムの実行最小時間、実行最大時間、実行時間分布をシミュレーションすることにしたのである。
In the computer software design support method of the present invention, the simulation of the minimum execution time, maximum execution time, and execution time distribution of the application processing program defines the execution probability for each of one or more tasks that are conditionally executed. It is preferable that an execution time distribution is generated.
Here, each execution probability is defined for each of one or more tasks that are conditionally executed. For example, when the process is divided into two processes, the tasks executed depending on the conditions are different. The execution time varies depending on the conditions. Therefore, by defining the execution probability of each task, we decided to simulate the minimum execution time, maximum execution time, and execution time distribution of an application processing program having logic that processes depending on conditions.
 また、本発明の計算機ソフトウェア設計支援方法において、アプリケーション処理プログラムの実行最小時間、実行最大時間、実行時間分布のシミュレーションは、複数のタスクで共通アクセスされるハードウェアリソースに対して、排他制御を行うことにより、実行時間分布が生じることが好ましい。
 複数のタスクで共通アクセスされるハードウェアリソースに対して排他制御を行う場合、通常、フラグやセマフォやトークンなどを用いて排他制御を行う。このフラグの値が変化するまでの時間やセマフォなど取得までの時間が処理待ち時間となる。この処理待ち時間は、タスクの実行状況によって変化するため実行時間分布が生じることになるのである。
In the computer software design support method of the present invention, the simulation of the minimum execution time, maximum execution time, and execution time distribution of the application processing program performs exclusive control on hardware resources that are commonly accessed by a plurality of tasks. Thus, an execution time distribution is preferably generated.
When performing exclusive control on hardware resources commonly accessed by multiple tasks, the exclusive control is usually performed using a flag, a semaphore, a token, or the like. The time until the value of this flag changes or the time until acquisition such as a semaphore is the processing waiting time. Since this processing wait time changes depending on the task execution status, an execution time distribution occurs.
 次に、本発明の計算機ソフトウェアシステム設計支援装置について説明する。
 本発明の計算機ソフトウェアシステム設計支援装置は、アプリケーション処理プログラムを構成するタスク毎の優先度,起動周期,実行時間,実行回数を定義してタスク情報データベースとして登録するタスク定義入力手段と、アプリケーション処理プログラム毎に用いるタスクの実行フローを、予め登録されているフロー定義部品を用いて定義して、プログラム定義データベースとして登録するプログラム定義入力手段と、タスク情報データベースとプログラム定義データベースおよびフロー定義部品が格納されているフロー定義部品データベースを用いて、アプリケーション処理プログラム毎の実行時間分布をシミュレーションする実行時間分布シミュレーション手段と、システムの性能評価結果を表示する結果表示手段と、を備える。
Next, the computer software system design support apparatus of the present invention will be described.
A computer software system design support apparatus according to the present invention includes a task definition input means for defining a priority, a start cycle, an execution time, and an execution count for each task constituting an application processing program and registering it as a task information database, and an application processing program Stores program definition input means that defines the execution flow of tasks used every time using flow definition parts registered in advance, and registers it as a program definition database, a task information database, a program definition database, and flow definition parts An execution time distribution simulation means for simulating an execution time distribution for each application processing program, and a result display means for displaying a performance evaluation result of the system.
 かかる構成によれば、携帯電話や情報家電など多くのアプリケーション処理プログラムを搭載したシステムの性能予測について、設計段階において事前検証することができる。
 上記のアプリケーション処理プログラムを構成するタスク毎の優先度,起動周期,実行時間,実行回数を定義してタスク情報データベースとして登録するタスク定義入力手段について説明する。ここで、アプリケーション処理プログラムはシステムが持つ機能をコンピュータに実現させるためのものである。また、タスクは機能をコンピュータに実現させるためのコンポーネントとなる処理のことをいう。タスクの優先度とは、実行可能なタスクが複数存在する場合にコンピュータに実行させる順番を決定するための指標である。また、タスクの起動周期とは、周期的にタスクを起動させる場合はその起動時間間隔をいう。タスクがイベントにより動作する処理である場合は起動周期を例えば0(ゼロ)とする。タスクの実行時間とは、コンピュータがタスクを実行する予測時間である。この予測時間は、タスクが行う処理ボリュームやタスクがハードウェアリソースにアクセスする場合はその処理待ち時間を考慮する。また、タスクの実行回数とは、周期的に起動されるタスクの実行回数やエラーリトライするタスクのリトライ回数をいう。
According to this configuration, it is possible to verify in advance at the design stage the performance prediction of a system equipped with many application processing programs such as a mobile phone and an information home appliance.
The task definition input means for defining the priority, start cycle, execution time, and number of executions for each task constituting the application processing program and registering it as a task information database will be described. Here, the application processing program is for causing the computer to realize the functions of the system. A task is a process that is a component for causing a computer to realize a function. The task priority is an index for determining the order in which the computer executes when there are a plurality of executable tasks. Also, the task activation cycle refers to the activation time interval when the task is activated periodically. If the task is a process that operates according to an event, the activation cycle is set to 0 (zero), for example. The task execution time is an estimated time for the computer to execute the task. This estimated time takes into account the processing volume performed by the task and the processing waiting time when the task accesses the hardware resource. Further, the number of executions of a task means the number of executions of a task that is periodically started up or the number of retries of a task that performs an error retry.
 タスク情報データベースは、これらの優先度,起動周期,実行時間,実行回数の情報を、タスク毎に割り当てられたユニークな識別番号により参照できるデータベースである。なお、タスク毎に割り当てられたユニークな識別番号はユニークなタスク名でもよい。 The task information database is a database in which information on the priority, start cycle, execution time, and number of executions can be referred to by a unique identification number assigned to each task. The unique identification number assigned to each task may be a unique task name.
 次に、上記のアプリケーション処理プログラム毎に用いるタスクの実行フローを、予め登録されているフロー定義部品を用いて定義して、プログラム定義データベースとして登録するプログラム定義入力手段について説明する。ここで、アプリケーション処理プログラムとは、例えば、携帯電話の場合には、ブラウザ機能を実現するプログラムや、電子メール機能を実現するプログラムや、通話機能を実現するプログラムなどをいう。アプリケーション処理プログラムを構成するタスクの実行フローとは、アプリケーション処理プログラムを構成する1以上のタスクの実行順序、繰り返し、条件分岐、タスク間のリソースの排他制御などをフローチャートの如く示したものをいう。 Next, a description will be given of program definition input means for defining a task execution flow used for each application processing program using a flow definition component registered in advance and registering it as a program definition database. Here, the application processing program means, for example, in the case of a mobile phone, a program that realizes a browser function, a program that realizes an e-mail function, a program that realizes a call function, and the like. The execution flow of the tasks constituting the application processing program refers to a flowchart showing the execution order, repetition, conditional branching, exclusive control of resources between tasks, etc. of one or more tasks constituting the application processing program.
 また、フロー定義部品とは、タスクの実行順序、繰り返し、条件分岐、タスク間のリソースの排他制御などを、それぞれシンボル図形化したものであり、繰り返し回数、条件分岐の確率、排他制御のタイムアウトなどのパラメータを有するものである。
 また、プログラム定義データベースとは、該プログラムが使用するフロー定義部品とそのパラメータ、該プログラムがアクセスするリソース、該プログラムを構成するタスクの識別番号をプログラム毎に割り当てられたユニークな識別番号により参照できるデータベースである。なお、プログラム毎に割り当てられたユニークな識別番号はユニークなプログラム名でもよい。
A flow definition component is a symbolic representation of task execution order, repetition, conditional branching, resource exclusion control between tasks, etc. The number of repetitions, probability of conditional branching, timeout of exclusive control, etc. It has the parameter of.
The program definition database can refer to the flow definition parts and parameters used by the program, the resources accessed by the program, and the identification numbers of the tasks constituting the program, using a unique identification number assigned to each program. It is a database. The unique identification number assigned to each program may be a unique program name.
 次に、上記のタスク情報データベースとプログラム定義データベースおよびフロー定義部品が格納されているフロー定義部品データベースを用いて、アプリケーション処理プログラム毎の実行時間をシミュレーションする実行時間分布シミュレーション手段について説明する。アプリケーション処理プログラム毎の実行時間分布のシミュレーションは、該プログラムに対応するプログラム定義データベースから、使用されるタスクと使用されるフロー定義部品を認識し、該タスクに対応するタスク情報データベースから優先度や実行時間などを認識し、また該フロー定義部品に対応するフロー定義部品データベースから処理内容とパラメータを認識する。 Next, an execution time distribution simulation means for simulating the execution time for each application processing program using the above-described task information database, program definition database, and flow definition component database in which flow definition components are stored will be described. The simulation of the execution time distribution for each application processing program recognizes the task to be used and the flow definition component to be used from the program definition database corresponding to the program, and executes the priority and execution from the task information database corresponding to the task. Time and the like are recognized, and the processing contents and parameters are recognized from the flow definition component database corresponding to the flow definition component.
 そして、認識したタスクの優先度や実行時間、認識した実行順序などに基づいて、タスクの実行フローにしたがって、各タスクの実行時間を加算していくことにより、アプリケーション処理プログラム毎の実行時間をシミュレーションする。
 1つのアプリケーション処理プログラムを搭載するシステムの場合、そのアプリケーション処理プログラムを構成するタスクの実行フローにしたがって、順番に実行時間を加算していく。タスクが処理待ち時間を要するリソースにアクセスする場合は、その処理待ち時間も加算する。
Then, the execution time of each application processing program is simulated by adding the execution time of each task according to the task execution flow based on the priority and execution time of the recognized task, the recognized execution order, etc. To do.
In the case of a system equipped with one application processing program, execution times are added in order according to the execution flow of the tasks constituting the application processing program. When a task accesses a resource that requires a processing waiting time, the processing waiting time is also added.
 一方、複数のアプリケーション処理プログラムを搭載するシステムの場合、アプリケーション処理プログラム毎にタスクの実行フローが複数存在する。実行フローが複数存在する場合、実行可能なタスクが複数存在するケースも有り得る。この場合、例えば、1方の実行フローのタスクでリソースの処理待ち時間が生じた場合や特定条件が成立するまで処理を待つアルゴリズムを有する場合は、他方の実行フローで実行可能なタスクに切り替わり当該タスクが実行されるとして実行時間を加算する。また、オペレーティングシステム(OS)によって優先度の高いものが実行されることから、例えば、1方の実行フローで実行可能なタスクの優先度と他方の実行フローで実行可能なタスクの優先度とを比べて、優先度の高い側のタスクが実行されるとして実行時間を加算する。 On the other hand, in the case of a system equipped with a plurality of application processing programs, there are a plurality of task execution flows for each application processing program. If there are multiple execution flows, there may be multiple tasks that can be executed. In this case, for example, if there is a resource processing wait time in one execution flow task or if there is an algorithm that waits for processing until a specific condition is satisfied, the task is switched to a task that can be executed in the other execution flow. The execution time is added as the task is executed. In addition, since a high priority is executed by the operating system (OS), for example, the priority of a task that can be executed in one execution flow and the priority of a task that can be executed in the other execution flow are set. In comparison, the execution time is added assuming that the task with the higher priority is executed.
 次に、上記のシステムの性能評価結果を表示する結果表示手段について説明する。シミュレーションした結果のプログラム毎の実行時間分布は、実行最小時間、実行最大時間、発生頻度をグラフや表にして装置に付属する液晶パネルなどの表示画面に結果を表示する。また、シミュレーション結果は、プログラム毎あるいはプログラムのバージョン毎に異なるファイルとして保存される。 Next, a result display means for displaying the performance evaluation result of the system will be described. The execution time distribution for each program as a result of the simulation displays the result on a display screen such as a liquid crystal panel attached to the apparatus with the minimum execution time, the maximum execution time, and the occurrence frequency as a graph or a table. The simulation result is stored as a different file for each program or program version.
 また、上記の計算機ソフトウェアシステム設計支援装置において、アプリケーション処理プログラム毎の性能目標情報として、アプリケーション処理プログラム毎に予測時間領域を上記のプログラム定義データベースに定義する性能目標情報定義手段を更に備えることが好ましい。
 性能目標情報とは、最小実行時間、実行最大時間、平均実行時間、分布度合いである。
The computer software system design support apparatus preferably further includes performance target information defining means for defining a predicted time region in the program definition database for each application processing program as performance target information for each application processing program. .
The performance target information is a minimum execution time, a maximum execution time, an average execution time, and a distribution degree.
 また、上記の計算機ソフトウェアシステム設計支援装置における結果表示手段は、シミュレーション結果の前記実行時間分布が前記予測時間領域と比較して逸脱する場合には、該アプリケーション処理プログラムに対してアラームを出力することが好ましい。
 ここで、アプリケーション処理プログラム毎の性能目標となる予測時間領域とは、処理時間の上限を定めるもの、下限を定めるもの、上下限を定めるもの、いくつかの時間を定めるもの、いくつかの時間領域を定めるものが例として挙げられる。
Further, the result display means in the computer software system design support apparatus outputs an alarm to the application processing program when the execution time distribution of the simulation result deviates from the predicted time region. Is preferred.
Here, the predicted time area that is the performance target for each application processing program is the one that defines the upper limit of the processing time, the one that defines the lower limit, the one that defines the upper and lower limits, the one that defines some time, and the several time areas An example is given below.
 また、上記の計算機ソフトウェアシステム設計支援装置におけるタスク定義入力手段において、タスク毎に起動オフセット時間,実時間属性およびタイムスライス時間を、タスク情報データベースに更に登録できる手段を備えることが好ましい。
 ここで、起動オフセット時間とはタスクが起動するまでの遅れ時間である。主メモリに常駐するタスクの場合、遅れ時間は無視できるが、起動される度にハードディスクから処理コードが読み込まれる非常駐のタスクの場合は遅れ時間も考慮して設計を行うことが、システム全体の性能評価を正しく行えることになる。
 また、実時間属性とは、本明細書において、割り込みのようなイベント駆動型のタスク、すなわちリアルタイム性が要求されるタスクか、周期的に処理を行うような周期駆動型のタスク、すなわち周期性が要求されるタスクか、CPU時間を実行可能な全てのタスクに分配するラウンドロビン方式が要求されるタスクか否かのタスクの属性を意味する。
Moreover, it is preferable that the task definition input means in the computer software system design support apparatus includes means for further registering the startup offset time, the real time attribute, and the time slice time for each task in the task information database.
Here, the activation offset time is a delay time until the task is activated. For tasks resident in main memory, the delay time can be ignored, but for non-resident tasks where the processing code is read from the hard disk every time it is started, the delay time is also taken into account in designing the overall system performance. The evaluation can be performed correctly.
In this specification, the real-time attribute means an event-driven task such as an interrupt, that is, a task that requires real-time property, or a periodic-driven task that performs processing periodically, that is, periodicity. Or a task attribute indicating whether a round robin method for distributing the CPU time to all executable tasks is required.
 また、上記の計算機ソフトウェアシステム設計支援装置におけるタスク定義入力手段において、タスク実行時間の分布情報を見積り実行時間とその重み付けの1セットとして複数セットを分布情報として登録できる手段を備えることが好ましい。
 重み付けは、見積り実行時間になる確率で表現してもよい。タスクによっては、常に一定の実行時間で処理を終わるものではないものも存在することに着眼して、タスク実行時間の分布情報を加えるものである。タスク実行時間の分布情報とは、実行時間のバラツキ分布や、実行時間の確率分布や、ガウス分布などの数式で示す分布情報などである。なお、タスク実行時間の分布情報は、タスクの実行時間のバラツキを表すものであれば、これらに限定されずとも構わない。
Further, it is preferable that the task definition input means in the computer software system design support apparatus includes means for estimating the distribution information of the task execution time and registering a plurality of sets as distribution information as one set of the estimated execution time and its weight.
The weighting may be expressed by a probability that the estimated execution time is reached. The task execution time distribution information is added by paying attention to the fact that some tasks do not always finish processing at a fixed execution time. The distribution information of task execution time includes distribution information of execution time, distribution information expressed by mathematical expressions such as probability distribution of execution time, and Gaussian distribution. Note that the task execution time distribution information is not limited to this as long as it represents variations in task execution time.
 また、上記の計算機ソフトウェアシステム設計支援装置におけるタスク定義入力手段において、処理待ち時間が発生するハードウェアリソースの処理待ち時間の見積り時間を登録する処理待ち時間登録手段を更に備えることが好ましい。
 ここで、ハードウェアリソースとは、上述したように、共有メモリ、フラッシュメモリなどの不揮発性の半導体メモリ、USBメモリ、ハードディスクなどをいう。また、ハードウェアリソースのアクセス時間とは、リソースにアクセスするための書き込み時間、読み込み時間などの処理待ち時間である。
 また、ハードウェアリソースは複数のタスクで共通アクセスされるリソースであることがより好ましい。複数のタスクで共通アクセスされるリソースで排他制御ロジックを要する場合、排他制御の処理待ち時間を含む。なお、排他制御ロジックにはタイムアウト時間を設定しても構わない。複数のタスクで共通アクセスされるハードウェアリソースに対して排他制御を行う場合、通常、フラグやセマフォやトークンなどを用いて排他制御を行う。このフラグの値が変化するまでの時間やセマフォなど取得までの時間が処理待ち時間となる。この処理待ち時間は、タスクの実行状況によって変化するため実行時間分布が生じることになるのである。
Moreover, it is preferable that the task definition input means in the computer software system design support apparatus further includes a processing wait time registration means for registering an estimated processing time of a hardware resource in which a processing wait time occurs.
Here, the hardware resource means a non-volatile semiconductor memory such as a shared memory or a flash memory, a USB memory, a hard disk, or the like, as described above. Further, the access time of hardware resources is processing waiting time such as write time and read time for accessing resources.
The hardware resource is more preferably a resource that is commonly accessed by a plurality of tasks. When exclusive control logic is required for resources that are commonly accessed by a plurality of tasks, the processing wait time for exclusive control is included. A timeout time may be set in the exclusive control logic. When performing exclusive control on hardware resources commonly accessed by multiple tasks, the exclusive control is usually performed using a flag, a semaphore, a token, or the like. The time until the value of this flag changes or the time until acquisition such as a semaphore is the processing waiting time. Since this processing wait time changes depending on the task execution status, an execution time distribution occurs.
 また、上記の計算機ソフトウェアシステム設計支援装置において、アプリケーション定義入力手段は、前記フロー定義部品データベースに登録された部品を用いて、繰り返し処理,条件分岐処理,並列実行処理を少なくとも定義入力できることがより好ましい。 In the computer software system design support apparatus described above, it is more preferable that the application definition input means can input at least a definition of repetitive processing, conditional branch processing, and parallel execution processing using the components registered in the flow definition component database. .
 ここで、条件実行処理は、条件実行される1以上の各タスクに対して、それぞれの実行確率を定義できることが好ましい。
 条件実行される1以上の各タスクに対してそれぞれの実行確率が定義されるとは、例えば、条件によって2つの処理に分かれる場合、条件によって実行されるタスクが異なることになることから、条件によって実行時間が変わることになる。そこで、それぞれのタスクの実行確率を定義することで、条件によって処理が分かれるロジックを備えるアプリケーション処理プログラムの実行最小時間、実行最大時間、実行時間分布をシミュレーションすることにしたのである。
Here, it is preferable that the condition execution process can define execution probabilities for each of one or more tasks that are condition-executed.
Each execution probability is defined for one or more tasks that are executed conditionally. For example, when the process is divided into two processes, the task executed depends on the condition. The execution time will change. Therefore, by defining the execution probability of each task, we decided to simulate the minimum execution time, maximum execution time, and execution time distribution of an application processing program having logic that processes depending on conditions.
 また、並列実行処理は、並列に実行される全てのタスクが終了した場合のみ、その後の処理が進むパルドタイプ並列実行と、並列実行される全てのタスクが終了しなくても進むスプリットタイプ並列実行と、を備えることが好ましい。 In addition, parallel execution processing is performed only when all tasks that are executed in parallel are completed, and parallel type execution that advances after that, and split type parallel execution that advances even if all tasks that are executed in parallel do not end. And preferably.
 ソフトウェア、特にデバイス機器に組み込まれる組み込みソフトウェアでは、CPU能力が低い、メモリが少ないなどの厳しいハードウェア制約の中でソフトウェアを設計する必要がある。
 本発明によれば、ソフトウェアモジュールの設計・製作・デバイスに組込みを行った段階で初めてシステム全体の性能が未達成であることが判明するといった事態を回避でき、ソフトウェア製作の膨大な後戻り工程やそれに伴うコストを削減できるといった効果を有する。
Software, particularly embedded software incorporated in a device device, needs to be designed under severe hardware constraints such as low CPU capacity and low memory.
According to the present invention, it is possible to avoid a situation in which the performance of the entire system is unachieved for the first time at the stage of designing, producing, and embedding the software module in the device. This has the effect of reducing the associated costs.
計算機ソフトウェア設計支援フロー図Computer software design support flow chart アプリケーション処理プログラムの説明図Illustration of application processing program アプリケーション処理プログラムの実行フローに用いるタスクの説明図Explanatory diagram of tasks used in the execution flow of application processing program タスクの実行フローの説明図1Explanation of task execution flow Fig. 1 タスクの実行フローの説明図2Explanation of task execution flow Fig. 2 タスクの実行フローの説明図3Explanation of task execution flow Fig. 3 タスクの実行フローの説明図4Explanation of task execution flow Fig. 4 タスクの実行フローの説明図5Explanation of task execution flow Fig. 5 タスクの実行フローの説明図6Explanation of task execution flow Fig. 6 タスクの実行フローの説明図7Explanation of task execution flow Fig. 7 映像再生システムの機能ブロック図Functional block diagram of video playback system 映像再生システムにおけるプログラムの実行フロー図Flow chart of program execution in video playback system 携帯電話の機能ブロック図1Functional block diagram of mobile phone 1 携帯電話の機能ブロック図2Functional block diagram of mobile phone 2 従来の待ち行列モデルを用いるトランザクションの概念図Conceptual diagram of transaction using conventional queuing model 計算機ソフトウェアシステム設計支援装置の機能ブロック図Functional block diagram of a computer software system design support device プロジェクトの作成メニューProject creation menu プロジェクトの作成画面Project creation screen タスク作成メニューTask creation menu タスク作成画面Task creation screen アプリケーション処理プログラムの定義画面Application processing program definition screen 性能要求解析メニューPerformance requirement analysis menu シミュレーション情報入力画面Simulation information input screen 性能目標情報一覧画面Performance target information list screen 性能目標情報入力画面Performance target information input screen タスク情報一覧画面Task information list screen タスク情報入力画面Task information input screen シミュレーション評価結果表示画面(全体情報画面)Simulation evaluation result display screen (overall information screen) シミュレーション評価結果表示画面(シーケンス画面)Simulation evaluation result display screen (sequence screen) シミュレーション評価結果表示画面(タスクトレース画面)Simulation evaluation result display screen (task trace screen)
 以下、本発明の実施形態について、図面を参照しながら詳細に説明していく。なお、本発明の範囲は、以下の実施例や図示例に限定されるものではなく、幾多の変更及び変形が可能である。 Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings. The scope of the present invention is not limited to the following examples and illustrated examples, and many changes and modifications can be made.
 図1は、本発明の計算機ソフトウェア設計支援方法の処理フローを示している。
 本発明の計算機ソフトウェア設計支援方法は、1以上のアプリケーション処理プログラムを搭載するスタンドアロンのシステムに関する性能予測を以下のステップで行う。
(ステップ1)それぞれのアプリケーション処理プログラムを構成するタスク毎に、優先度,起動周期,実行時間,実行回数を定義する。
(ステップ2)アプリケーション処理プログラム毎に、プログラムを構成するタスクの実行フローを定義する。
(ステップ3)タスク毎に定義された優先度,起動周期,実行時間,実行回数を用いて、それぞれのアプリケーション処理プログラム毎に、タスクの実行フローの実行時間を算出する。
(ステップ4)全てのアプリケーション処理プログラムの実行最小時間、実行最大時間、実行時間分布に基づいて、システムの性能予測を行う。
FIG. 1 shows a processing flow of the computer software design support method of the present invention.
The computer software design support method of the present invention performs performance prediction for a stand-alone system having one or more application processing programs in the following steps.
(Step 1) For each task constituting each application processing program, a priority, a start cycle, an execution time, and an execution count are defined.
(Step 2) For each application processing program, an execution flow of tasks constituting the program is defined.
(Step 3) Using the priority, start cycle, execution time, and number of executions defined for each task, the execution time of the task execution flow is calculated for each application processing program.
(Step 4) System performance prediction is performed based on the minimum execution time, maximum execution time, and execution time distribution of all application processing programs.
 アプリケーション処理プログラムとタスクの関係について、図2を用いて説明する。
 図2は、アプリケーション処理プログラムの一例を示す機能ブロック図である。
 図2のアプリケーション処理プログラムでは、処理タスク1と処理タスク2で構成されている。処理タスク1は、メッセージキュー1からメッセージデータ3を取り出し、メッセージデータ3を加工して共有メモリ5にデータを書き込む処理を行うものとする。また、処理タスク2は、共有メモリ5からデータを読み込み、データを加工して、フラッシュメモリ6にデータを書き込む処理と、場合によってはフラッシュメモリ6からデータを読み出して、メッセージキュー2に送る処理を行うものとする。
The relationship between the application processing program and the task will be described with reference to FIG.
FIG. 2 is a functional block diagram illustrating an example of an application processing program.
The application processing program of FIG. 2 includes processing task 1 and processing task 2. It is assumed that the processing task 1 performs processing for extracting the message data 3 from the message queue 1, processing the message data 3 and writing the data in the shared memory 5. The processing task 2 reads data from the shared memory 5, processes the data, writes data to the flash memory 6, and in some cases reads data from the flash memory 6 and sends it to the message queue 2. Assumed to be performed.
 このようなアプリケーション処理プログラムにおいては、上記(ステップ1)に従って、まず処理タスク1と処理タスク2の2つのタスクに関して、優先度,起動周期,実行時間,実行回数を定義することになる。
 ここで、処理タスク1がメッセージ駆動型のタスクとし、処理タスク2が周期的駆動型のタスクとして設計されるとする。処理タスク1の起動周期は0(ゼロ)で、処理タスク2の起動周期を例えば10msとする。また、メッセージ駆動型の処理タスク1は、一般的に、優先度が高く設計される。また、処理が1回だけ行われる場合、実行回数は1であり、複数回処理が繰り返される場合、実行回数はn回となる。
In such an application processing program, according to the above (step 1), first, the priority, the start cycle, the execution time, and the number of executions are defined for the two tasks of the processing task 1 and the processing task 2.
Here, it is assumed that the processing task 1 is designed as a message driven task and the processing task 2 is designed as a periodically driven task. The activation cycle of processing task 1 is 0 (zero), and the activation cycle of processing task 2 is 10 ms, for example. The message driven processing task 1 is generally designed with a high priority. When the process is performed only once, the number of executions is 1, and when the process is repeated a plurality of times, the number of executions is n.
 実行時間に関しては、処理タスク1の場合、タスクの行う処理、すなわち、メッセージキュー1からデータの取り出し処理、共有メモリ5への書き込み処理、それぞれの見積り時間を予測して決定する。また、処理タスク2の場合、共有メモリ5からデータを読み込み処理、フラッシュメモリ6にデータを書き込む処理、メッセージキュー2にデータを送る処理、それぞれの見積り時間を予測して決定する。
 ここで、共有メモリの書き込み処理、読み込み処理、フラッシュメモリのアクセス処理などに処理待ち時間があればそれらを考慮して見積り時間を予測する。また、処理タスク1と処理タスク2がそれぞれ書き込み・読み込みを行う共有メモリ5に排他制御が行われる場合、制御権を受け取るまでの処理待ち時間も考慮して見積り時間を予測する。
With respect to the execution time, in the case of the processing task 1, the processing performed by the task, that is, the data extraction processing from the message queue 1, the writing processing to the shared memory 5, and the estimated time of each are estimated and determined. Further, in the case of the processing task 2, a process for reading data from the shared memory 5, a process for writing data to the flash memory 6, a process for sending data to the message queue 2, and an estimated time for each are predicted and determined.
Here, if there is a processing waiting time in shared memory write processing, read processing, flash memory access processing, etc., the estimated time is predicted in consideration of such processing wait times. Further, when exclusive control is performed on the shared memory 5 to which the processing task 1 and the processing task 2 respectively write and read, the estimated time is predicted in consideration of the processing waiting time until the control right is received.
 図3(1)は、アプリケーション処理プログラムの実行フローに用いるタスクの種類の一例を示している。タスクは見積り予測が可能な単位に細かく定義する。タスクを繰り返し実行するものや、条件によってケース分けして多数を実行するものや、タスクを並列に実行するものなど定義する。
 また、図3(2)は、ハードウェアリソースの一例を示している。ハードウェアリソースには、リソースにアクセスするためのタスクの処理待ち時間が属性情報として付与されている。
FIG. 3A shows an example of the types of tasks used in the execution flow of the application processing program. Tasks are finely defined in units that can be estimated. Define things that execute tasks repeatedly, those that execute a large number of cases according to conditions, and those that execute tasks in parallel.
FIG. 3B shows an example of hardware resources. A hardware resource is given a task processing wait time for accessing the resource as attribute information.
 次に、アプリケーション処理プログラムを構成するタスクの実行フローについて図4~10を参照して説明する。
 まず、繰り返しタスクの実行フローの一例を示す。図4は繰り返しタスクの実行フローの一例を示している。例えば、初期化処理タスク10が10μsec、プロセストランザクションタスク12が20μsec、終了セッションタスク14が5μsecの見積り時間で、繰り返しタスク16の繰り返し回数n=5とした場合、図4に示す実行フローの実行時間は、10+20×5+5=115μsecとなる。
Next, an execution flow of tasks constituting the application processing program will be described with reference to FIGS.
First, an example of an execution flow of a repetitive task is shown. FIG. 4 shows an example of the execution flow of the repetitive task. For example, assuming that the initialization task 10 is 10 μsec, the process transaction task 12 is 20 μsec, the end session task 14 is 5 μsec, and the number of repetitions of the repetition task 16 is n = 5, the execution time of the execution flow shown in FIG. Is 10 + 20 × 5 + 5 = 115 μsec.
 次に、ケースタスクの実行フローの一例を示す。図5はケースタスクの実行フローの一例を示している。例えば、トランザクション取得タスク20が15μsec、プロセスAタスク22が20μsec、プロセスBタスク24が40μsec、プロセスCタスク26が25μsecの見積り時間で、ケースタスク28の分岐確率a~cがそれぞれ0.5,0.3,0.2とした場合、図5に示す実行フローの実行時間は、最小実行時間が15+20=35μsec、最大実行時間が15+40=55μsecで、実行時間分布が35μsec,55μsec,15+25=40μsecがそれぞれの確率で現れる分布となる。 Next, an example of a case task execution flow is shown. FIG. 5 shows an example of a case task execution flow. For example, the transaction acquisition task 20 is 15 μsec, the process A task 22 is 20 μsec, the process B task 24 is 40 μsec, and the process C task 26 is 25 μsec, and the branch probabilities a to c of the case task 28 are 0.5 and 0, respectively. .3, 0.2, the execution time of the execution flow shown in FIG. 5 is that the minimum execution time is 15 + 20 = 35 μsec, the maximum execution time is 15 + 40 = 55 μsec, and the execution time distribution is 35 μsec, 55 μsec, 15 + 25 = 40 μsec. The distribution appears at each probability.
 次に、パルドタスクの実行フローの一例を示す。図6はパルドタスクの実行フローの一例を示している。例えば、ユーザ入力操作タスク30が5μsec、リモートクエリー表示タスク32が15μsec、クエリー結果をスクリーンに表示させるタスク34が25μsec、入力データを表示データとするタスク36が10μsec、ディスプレイ表示タスク38が20μsecの見積り時間の場合、図6に示す実行フローの実行時間は、5+25+10+20=60μsecとなる。なお、パルドタスク31は付属するタスク32とタスク34が並列実行され、それらのタスクが全て終了しないと先に処理が進まないロジックを備えるものである。 Next, an example of the execution flow of the Pardo task is shown. FIG. 6 shows an example of the execution flow of the pulse task. For example, it is estimated that the user input operation task 30 is 5 μsec, the remote query display task 32 is 15 μsec, the task 34 for displaying the query result on the screen is 25 μsec, the task 36 using the input data as display data is 10 μsec, and the display display task 38 is 20 μsec. In the case of time, the execution time of the execution flow shown in FIG. 6 is 5 + 25 + 10 + 20 = 60 μsec. The Pardo task 31 includes a logic in which an attached task 32 and task 34 are executed in parallel, and processing does not proceed first unless all these tasks are completed.
 次に、共有メモリを排他制御するタスクの実行フローの一例を示す。図7は、データ入力し共有メモリに書き込む2つのプログラムのタスクの実行フローの一例を示している。2つのアプリケーション処理プログラムは、繰り返しタスク41とデータ入力タスク42と書込みデータタスク43の実行フローで構成されるプログラムと、繰り返しタスク46とデータ入力タスク47と書込みデータタスク48の実行フローで構成されるプログラムである。例えば、書込みデータタスク43の実行時間は20μsecで、書込みデータタスク48の実行時間は25μsecとすると、それぞれの書込みデータタスクは他方の書込みデータタスクが共有メモリ40に書込み中は処理待ちとなるため、書込みデータタスク43の実行時間は最小実行時間が20μsec、最大実行時間が20+25=45μsecとなり、書込みデータタスク48の実行時間は最小実行時間が25μsec、最大実行時間が25+20=45μsecとなる。 Next, an example of the execution flow of a task that exclusively controls the shared memory is shown. FIG. 7 shows an example of an execution flow of tasks of two programs for inputting data and writing to the shared memory. The two application processing programs are composed of a program composed of an execution flow of a repetition task 41, a data input task 42, and a write data task 43, and an execution flow of a repetition task 46, a data input task 47, and a write data task 48. It is a program. For example, if the execution time of the write data task 43 is 20 μsec and the execution time of the write data task 48 is 25 μsec, each write data task waits for processing while the other write data task is writing to the shared memory 40. The execution time of the write data task 43 is 20 μsec, the maximum execution time is 20 + 25 = 45 μsec, and the execution time of the write data task 48 is 25 μsec, and the maximum execution time is 25 + 20 = 45 μsec.
 また、図8は、共有メモリにデータを書き込む処理と読み込む処理の2つのプログラムのタスクの実行フローの一例を示している。2つのアプリケーション処理プログラムは、繰り返しタスク51とデータ入力タスク52と書込みデータタスク53の実行フローで構成されるプログラムと、繰り返しタスク56と読込みデータタスク57とスクリーン表示タスク58の実行フローで構成されるプログラムである。共有メモリ50に一方のプログラムがデータを書き込んで、他方のプログラムが書き込まれたデータを読み込んで処理する場合を想定する。例えば、データ入力タスク52の実行時間は10μsec、書込みデータタスク53の実行時間は20μsec、読込みデータタスク57の実行時間は15μsec、スクリーン表示タスク58の実行時間は25μsecとすると、データ入力してそれがスクリーン表示されるまでの最小実行時間は10+20+15+25=70μsecとなる。 FIG. 8 shows an example of an execution flow of two program tasks, a process of writing data to the shared memory and a process of reading data. The two application processing programs are composed of a program composed of an execution flow of a repetition task 51, a data input task 52, and a write data task 53, and an execution flow of a repetition task 56, a read data task 57, and a screen display task 58. It is a program. Assume that one program writes data to the shared memory 50 and the other program reads and processes the written data. For example, if the execution time of the data input task 52 is 10 μsec, the execution time of the write data task 53 is 20 μsec, the execution time of the read data task 57 is 15 μsec, and the execution time of the screen display task 58 is 25 μsec, The minimum execution time until the screen is displayed is 10 + 20 + 15 + 25 = 70 μsec.
 ここで、データ入力タスク52の優先度と読込みデータタスク57の優先度が異なる場合を考える。仮に、データ入力タスク52が、読込みデータタスク57より優先される場合、データ入力してそれがスクリーン表示されるまでの最小実行時間は10+20+10+15+25=80μsecとなる。書込みデータタスク53が終了した後、繰り返しによって再びデータ入力タスク52が動作しそれが終了するまで、読込みデータタスク57が動作しないからである。なお、データ入力タスク10が、スクリーン表示タスク58より優先される場合も同様となる。 Here, consider a case where the priority of the data input task 52 and the priority of the read data task 57 are different. If the data input task 52 has priority over the read data task 57, the minimum execution time until data is input and displayed on the screen is 10 + 20 + 10 + 15 + 25 = 80 μsec. This is because, after the write data task 53 is completed, the read data task 57 is not operated until the data input task 52 is operated again by repetition and the data input task 52 is completed. The same applies when the data input task 10 has priority over the screen display task 58.
 次に、フラッシュメモリにアクセスするタスクの実行フローの一例を示す。図9は、データ格納しそれをテンポラリメモリあるいはフラッシュメモリに格納するプログラムのタスクの実行フローの一例を示している。例えば、データ格納タスク60の実行時間は15μsec、テンポラリメモリへ格納タスク62の実行時間は20μsec、フラッシュメモリの処理待ち時間を50μsecと見積ってフラッシュメモリへ格納タスク63の実行時間は70μsec、終了セッションタスク65の実行時間は5μsec、ケースタスク61の分岐確率がそれぞれ0.8と0.2とすると、図9に示す実行フローの実行時間は、最小実行時間が15+20=40μsec、最大実行時間が15+70+5=90μsecで、実行時間分布が40μsec,90μsecがそれぞれの確率で現れる分布となる。 Next, an example of the execution flow of the task that accesses the flash memory is shown. FIG. 9 shows an example of an execution flow of a task of a program that stores data and stores it in a temporary memory or flash memory. For example, the execution time of the data storage task 60 is 15 μsec, the execution time of the storage task 62 in the temporary memory is 20 μsec, the processing waiting time of the flash memory is estimated as 50 μsec, the execution time of the storage task 63 in the flash memory is 70 μsec, and the end session task If the execution time of 65 is 5 μsec and the branch probabilities of the case task 61 are 0.8 and 0.2, respectively, the execution time of the execution flow shown in FIG. 9 is 15 + 20 = 40 μsec, the minimum execution time is 15 + 70 + 5 = At 90 μsec, the execution time distribution is 40 μsec and 90 μsec is a distribution that appears with respective probabilities.
 次に、メッセージキューからメッセージを受け取るタスクの実行フローの一例を示す。図10は、メッセージキュー70からメッセージ受信しサービスを行うプログラムのタスクの実行フローの一例を示している。例えば、メッセージ受信タスク71の実行時間は10μsec、サービス処理タスク72の実行時間は50μsec、終了セッションタスク73の実行時間は5μsecとすると、図10に示す実行フローの実行時間は、10+50+5=65μsecとなる。 Next, an example of the execution flow of a task that receives a message from the message queue is shown. FIG. 10 shows an example of an execution flow of a task of a program that receives a message from the message queue 70 and performs a service. For example, if the execution time of the message reception task 71 is 10 μsec, the execution time of the service processing task 72 is 50 μsec, and the execution time of the end session task 73 is 5 μsec, the execution time of the execution flow shown in FIG. 10 is 10 + 50 + 5 = 65 μsec. .
(映像再生装置)
 図11に映像再生装置のアプリケーション処理プログラムの機能ブロック図を示す。図11には、ファイル読込みタスク,映像復号タスク,映像表示タスク,音声復号タスク,音声再生タスクおよび共有メモリが示され、それぞれのタスクの起動周期および起動遅延、共有メモリの待ち時間およびアクセス単位が示されている。
 まず、ファイル読込みタスクが共有メモリから読み込んだデータを他の共有メモリに書込む。次に、映像復号タスクと音声復号タスクがそれぞれ共有メモリのデータを取り出して復号し、それぞれ映像表示タスクと音声再生タスクに共有メモリを介して渡す。
 図12は、図11の機能ブロックをタスクの実行フローに書き換えたものである。音声処理プログラムと映像処理プログラムの2つのプログラムに分け、それぞれのタスクの実行フローを示している。共有メモリ1~5について排他制御は行っていない。またファイル読込みタスク(80,86)は共通のタスクである。
(Video playback device)
FIG. 11 shows a functional block diagram of the application processing program of the video reproduction apparatus. FIG. 11 shows a file reading task, a video decoding task, a video display task, an audio decoding task, an audio playback task, and a shared memory. The start cycle and start delay of each task, the waiting time of the shared memory, and the access unit are shown. It is shown.
First, the data read from the shared memory by the file reading task is written to another shared memory. Next, the video decoding task and the audio decoding task respectively extract and decode the data in the shared memory, and pass them to the video display task and the audio reproduction task via the shared memory, respectively.
FIG. 12 is obtained by rewriting the functional block of FIG. 11 into a task execution flow. The execution flow of each task is shown divided into two programs, an audio processing program and a video processing program. Exclusive control is not performed for the shared memories 1 to 5. The file reading task (80, 86) is a common task.
 例えば、ファイル読込みタスク(80,86)の実行時間は20μsec、音声復号タスク82の実行時間は10μsec、音声再生タスク83の実行時間は30μsec、映像復号タスク87の実行時間は40μsec、映像表示タスク88の実行時間は60μsecとすると、音声処理プログラムの最小実行時間は60μsec、映像処理プログラムの最小実行時間は120μsecとなる。また、最大実行時間は、処理が起動周期時間分遅れるとし、さらに起動遅延時間も加わるとして算出する。音声処理プログラムの場合は、(2+1)+(4+1)+(16+1)=25msecを最小実行時間に加算して最大実行時間を算出する。映像処理プログラムの場合は、(2+1)+(4+1)+(16+1)=25msecを最小実行時間に加算して最大実行時間を算出する。それぞれのタスクの起動周期が異なるために実行時間にはバラツキが生じることになるのである。 For example, the execution time of the file reading task (80, 86) is 20 μsec, the execution time of the audio decoding task 82 is 10 μsec, the execution time of the audio reproduction task 83 is 30 μsec, the execution time of the video decoding task 87 is 40 μsec, and the video display task 88 Is 60 μsec, the minimum execution time of the audio processing program is 60 μsec, and the minimum execution time of the video processing program is 120 μsec. Further, the maximum execution time is calculated on the assumption that the processing is delayed by the activation cycle time and that the activation delay time is further added. In the case of a speech processing program, (2 + 1) + (4 + 1) + (16 + 1) = 25 msec is added to the minimum execution time to calculate the maximum execution time. In the case of a video processing program, (2 + 1) + (4 + 1) + (16 + 1) = 25 msec is added to the minimum execution time to calculate the maximum execution time. Since the start cycle of each task is different, the execution time varies.
 実施例2では、計算機ソフトウェアシステム設計支援装置の一態様について説明する。
 計算機ソフトウェアシステム設計支援装置は、汎用のデスクトップ型コンピュータやノート型コンピュータで構成される。
 図16は、計算機ソフトウェアシステム設計支援装置の機能ブロック図を示している。
 計算機ソフトウェアシステム設計支援装置は、図16の破線で囲まれたタスク情報データベースとプログラム定義データベースおよびフロー定義部品データベースを備える。これらのデータベースは、通常、計算機ソフトウェアシステム設計支援装置のハードディスクに保存される。
 タスク情報データベースは、アプリケーション処理プログラムを構成するタスク毎のタスク名,優先度,起動オフセット,起動周期,実時間属性,実行時間,タイムスライス,実行回数の情報を、タスク毎に割り当てられたユニークなタスク名により参照できるデータベースである。
In the second embodiment, an aspect of a computer software system design support apparatus will be described.
The computer software system design support apparatus is composed of a general-purpose desktop computer or notebook computer.
FIG. 16 shows a functional block diagram of the computer software system design support apparatus.
The computer software system design support apparatus includes a task information database, a program definition database, and a flow definition component database surrounded by broken lines in FIG. These databases are usually stored in the hard disk of the computer software system design support apparatus.
The task information database has a unique task name, priority, start offset, start cycle, real time attribute, execution time, time slice, and number of executions assigned to each task. This database can be referenced by task name.
 また、プログラム定義データベースは、プログラムが使用するフロー定義部品とそのパラメータ、該プログラムがアクセスするリソース、プログラムを構成するタスク名をプログラム毎に割り当てられたユニークなプログラム名により参照できるデータベースである。 The program definition database is a database in which flow definition parts and parameters used by the program, resources accessed by the program, and task names constituting the program can be referred to by a unique program name assigned to each program.
 また、フロー定義部品データベースは、繰り返し回数、条件分岐の確率、排他制御のタイムアウトなどのフロー定義部品のパラメータ情報を、タスクの実行順序、繰り返し、条件分岐、タスク間のリソースの排他制御などのフロー定義部品に割り当てられたユニークな番号により参照できるデータベースである。 The flow definition component database also displays flow definition component parameter information such as the number of repetitions, probability of conditional branching, timeout of exclusive control, etc., flow of task execution order, repetition, conditional branching, exclusive control of resources between tasks, etc. It is a database that can be referenced by a unique number assigned to a definition part.
 また、図16に示すように、計算機ソフトウェアシステム設計支援装置は、タスク毎にタスク情報を定義してタスク情報データベースとして登録するタスク定義入力手段と、プログラム毎に用いるタスクの実行フローを予め登録されているフロー定義部品を用いて定義してプログラム定義データベースとして登録するプログラム定義入力手段とを備える。
 また、アプリケーション処理プログラム毎の実行時間分布をシミュレーションするプログラムの実行時間分布シミュレーション手段と、システムの性能評価結果表示手段を備える。
In addition, as shown in FIG. 16, the computer software system design support apparatus is pre-registered with task definition input means for defining task information for each task and registering it as a task information database, and a task execution flow used for each program. Program definition input means for defining and registering as a program definition database.
In addition, an execution time distribution simulation unit for simulating an execution time distribution for each application processing program and a system performance evaluation result display unit are provided.
 以下、計算機ソフトウェアシステム設計支援装置の操作メニューならびに画面を参照しながら説明する。
 図17および図18は、それぞれプロジェクトの作成メニューとプロジェクトの作成画面を示している。計算機ソフトウェアシステム設計支援装置は、設計対象デバイスもしくは設計対象システムをプロジェクト単位に管理する。従って、最初にプロジェクトを作成する。
Hereinafter, description will be made with reference to the operation menu and screen of the computer software system design support apparatus.
17 and 18 show a project creation menu and a project creation screen, respectively. The computer software system design support apparatus manages a design target device or a design target system in units of projects. Therefore, create a project first.
 次に、アプリケーション処理プログラムとそれを構成する個々のタスクを定義する画面について説明する。タスクの定義は、UML(Unified Modeling Language)2.0に沿ったクラス図を描いて定義する。UMLは、オブジェクト指向のソフトウェア開発における、プログラム設計図の統一表記法である。
 また、アプリケーション処理プログラムの定義は、アプリケーション処理プログラム毎に用いるタスクの実行フローを、予め登録されているフロー定義部品を用いて定義することである。このタスクの実行フローをソフトウェア実行モデルと称している。
 図19と図20は、それぞれタスク作成メニューとUML2.0に沿ったタスク作成画面を示している。また図21は、アプリケーション処理プログラムの定義画面である。
Next, a screen for defining an application processing program and individual tasks constituting the application processing program will be described. The task is defined by drawing a class diagram in conformity with UML (Unified Modeling Language) 2.0. UML is a unified notation for program design drawings in object-oriented software development.
The definition of an application processing program is to define a task execution flow used for each application processing program using a flow definition component registered in advance. The execution flow of this task is called a software execution model.
19 and 20 show a task creation menu and a task creation screen according to UML 2.0, respectively. FIG. 21 is an application processing program definition screen.
 次に、性能要求解析について説明する。図22は性能要求解析メニューを示している。メニューから性能要求解析を選択すると、図23のシミュレーション情報入力画面が表示される。図23のシミュレーション情報入力画面を用いて、シミュレーション動作環境情報を入力する。具体的には、シミュレート時間とスケジューリング方式を入力する。
 図23の画面において、画面内の“性能目標情報”タブを選択すると、図24の性能目標情報一覧画面が表示される。性能目標情報として、プログラムの時間制約、ここでは実行時間の上限が表示される。
 個々のタスクの性能目標情報は、図25の性能目標情報入力画面を用いて作成する。
Next, performance requirement analysis will be described. FIG. 22 shows the performance requirement analysis menu. When the performance requirement analysis is selected from the menu, the simulation information input screen of FIG. 23 is displayed. The simulation operation environment information is input using the simulation information input screen of FIG. Specifically, a simulation time and a scheduling method are input.
When the “performance target information” tab in the screen is selected on the screen of FIG. 23, the performance target information list screen of FIG. 24 is displayed. As the performance target information, the program time constraint, here, the upper limit of the execution time is displayed.
The performance target information of each task is created using the performance target information input screen shown in FIG.
 次に、タスク情報について説明する。
 図23の画面において、画面内の“タスク情報”タブを選択すると、図26のタスク情報一覧画面が表示される。タスク情報一覧画面では、タスク毎にタスク名,優先度,起動オフセット,起動周期,実時間属性,実行時間,タイムスライス,実行回数の情報が一覧となって表示される。
 個々のタスク情報は、図27のタスク情報入力画面を用いて作成する。
Next, task information will be described.
When the “task information” tab in the screen of FIG. 23 is selected, the task information list screen of FIG. 26 is displayed. On the task information list screen, task name, priority, start offset, start cycle, real time attribute, execution time, time slice, and number of executions are displayed in a list for each task.
Individual task information is created using the task information input screen of FIG.
 次に、シミュレーションによる性能評価の結果表示画面について説明する。
 全体情報としては、図28に示すように、シミュレート時間、実時間属性のタスク実行時間合計、CPU使用率、性能目標未達成のプログラム一覧が全体情報画面として表示される。
 図28の画面において、画面内の“シーケンス”タブを選択すると、図29のシーケンス画面が表示される。図28のグラフ情報として、プログラム名、性能目標、最小実行時間、最大実行時間が表示される。シーケンス画面によれば、アプリケーション処理プログラムの実行時間分布を把握することができる。
 
 図28又は図29の画面において、画面内の“タスクトレース”タブを選択すると、図30のタスクトレース画面が表示される。タスクトレース画面によれば、アプリケーション処理プログラムを構成するタスクの実行順序と実行時間を把握することができる。図中のグラフでは、1つのプログラムが5個のタスク(DecodeAudioタスク,DecodeVideoタスク,Timingタスク,FileReaderタスク,Playbuttonタスク)から構成され、FileReaderタスクの実行後、Timingタスクが実行される様子が示されている。
Next, the performance evaluation result display screen by simulation will be described.
As the overall information, as shown in FIG. 28, the simulation time, the total task execution time of the real time attribute, the CPU usage rate, and the program list not achieving the performance target are displayed as the overall information screen.
In the screen of FIG. 28, when the “sequence” tab in the screen is selected, the sequence screen of FIG. 29 is displayed. As the graph information in FIG. 28, the program name, performance target, minimum execution time, and maximum execution time are displayed. According to the sequence screen, the execution time distribution of the application processing program can be grasped.

When the “task trace” tab in the screen of FIG. 28 or 29 is selected, the task trace screen of FIG. 30 is displayed. According to the task trace screen, it is possible to grasp the execution order and execution time of the tasks constituting the application processing program. In the graph in the figure, one program consists of 5 tasks (DecodeAudio task, DecodeVideo task, Timing task, FileReader task, Playbutton task), and after the FileReader task is executed, the timing task is shown. ing.
 本発明の計算機ソフトウェア設計支援方法および計算機ソフトウェア設計支援装置は、携帯電話端末や情報家電などスタンドアロンの計算機搭載デバイスのソフトウェア設計方法や設計支援装置として、また、自動車車載システムやロボット制御システムなどの複数の計算機で構成されるシステムに搭載されるソフトウェアの設計支援方法や設計支援装置として有用である。 The computer software design support method and the computer software design support apparatus of the present invention are a software design method and a design support apparatus for a stand-alone computer-equipped device such as a mobile phone terminal and an information home appliance, and a plurality of such as an in-vehicle system and a robot control system. It is useful as a design support method and design support device for software installed in a system composed of computers.
  1,2    メッセージキュー
  3,4    データ
  5      共有メモリ
  6      フラッシュメモリ
  11,12  タスク
 
1, 2 Message queue 3, 4 Data 5 Shared memory 6 Flash memory 11, 12 Task

Claims (20)

  1.  少なくとも1つのアプリケーション処理プログラムを搭載したシステムの性能予測を行う計算機ソフトウェア設計支援方法であって、
     アプリケーション処理プログラムを構成するタスク毎に少なくとも優先度,起動周期,実行時間,実行回数を定義するステップと、
     アプリケーション処理プログラムを構成するタスクの実行フローを定義するステップと、
     前記タスク毎に定義された優先度,起動周期,実行時間,実行回数を用いて、タスクの実行フローの実行時間を算出するステップと、
     アプリケーション処理プログラムの実行最小時間、実行最大時間、実行時間分布からシステムの性能予測を行うステップと、
     を備えたことを特徴とする計算機ソフトウェア設計支援方法。
    A computer software design support method for predicting the performance of a system equipped with at least one application processing program,
    Defining at least priority, start cycle, execution time, number of executions for each task constituting the application processing program;
    Defining the execution flow of the tasks that make up the application processing program;
    Calculating the execution time of the task execution flow using the priority, start cycle, execution time, and number of executions defined for each task;
    Predicting system performance from minimum execution time, maximum execution time, and execution time distribution of application processing program;
    A computer software design support method characterized by comprising:
  2.  前記タスクの実行時間において、タスク実行時間の分布情報が付加されたことを特徴とする請求項1に記載の計算機ソフトウェア設計支援方法。 The computer software design support method according to claim 1, wherein task execution time distribution information is added to the task execution time.
  3.  前記タスク実行時間の分布情報は、見積り実行時間とその重み付けで定義されることを特徴とする請求項2に記載の計算機ソフトウェア設計支援方法。 3. The computer software design support method according to claim 2, wherein the task execution time distribution information is defined by an estimated execution time and its weight.
  4.  前記タスク実行時間の分布情報は、該タスクがハードウェアリソースにアクセスする場合に、ハードウェアリソースのアクセス時間を含むことを特徴とする請求項2に記載の計算機ソフトウェア設計支援方法。 3. The computer software design support method according to claim 2, wherein the task execution time distribution information includes a hardware resource access time when the task accesses a hardware resource.
  5.  前記タスク実行時間の分布情報は、該タスクが排他制御ロジックを含む場合に、排他制御の予想待ち時間を含むことを特徴とする請求項2に記載の計算機ソフトウェア設計支援方法。 3. The computer software design support method according to claim 2, wherein the task execution time distribution information includes an expected waiting time for exclusive control when the task includes exclusive control logic.
  6.  前記タスク実行時間は、該タスクに用いられるシステムソフトウェアのアプリケーションインタフェース関数の見積り実行時間を積み上げたものを参考指標値として用いることを特徴とする請求項2に記載の計算機ソフトウェア設計支援方法。 3. The computer software design support method according to claim 2, wherein as the task execution time, a value obtained by accumulating an estimated execution time of an application interface function of a system software used for the task is used as a reference index value.
  7.  前記アプリケーション処理プログラム毎の予測時間領域を定義し、シミュレーション結果の前記実行時間分布が前記予測時間領域と比較して逸脱する場合には、該アプリケーション処理プログラムに対してアラームを出力することを特徴とする請求項1~6のいずれかに記載の計算機ソフトウェア設計支援方法。 A prediction time region for each application processing program is defined, and an alarm is output to the application processing program when the execution time distribution of the simulation result deviates from the prediction time region. The computer software design support method according to any one of claims 1 to 6.
  8.  前記アプリケーション処理プログラムの実行最小時間、実行最大時間、実行時間分布のシミュレーションは、条件実行される1以上の各タスクに対して、それぞれの実行確率が定義されることにより、実行時間分布が生じることを特徴とする請求項1に記載の計算機ソフトウェア設計支援方法。 In the simulation of the minimum execution time, the maximum execution time, and the execution time distribution of the application processing program, an execution time distribution is generated when each execution probability is defined for one or more tasks that are conditionally executed. The computer software design support method according to claim 1, wherein:
  9.  前記アプリケーション処理プログラムの実行最小時間、実行最大時間、実行時間分布のシミュレーションは、複数のタスクで共通アクセスされるハードウェアリソースに対して、排他制御を行うことにより、実行時間分布が生じることを特徴とする請求項1に記載の計算機ソフトウェア設計支援方法。 In the simulation of the minimum execution time, the maximum execution time, and the execution time distribution of the application processing program, an execution time distribution is generated by performing exclusive control on hardware resources commonly accessed by a plurality of tasks. The computer software design support method according to claim 1.
  10.  アプリケーション処理プログラムを構成するタスク毎の優先度,起動周期,実行時間,実行回数を定義してタスク情報データベースとして登録するタスク定義入力手段と、
     アプリケーション処理プログラム毎に用いるタスクの実行フローを、予め登録されているフロー定義部品を用いて定義して、プログラム定義データベースとして登録するプログラム定義入力手段と、
     前記タスク情報データベースとプログラム定義データベースおよび前記フロー定義部品が格納されているフロー定義部品データベースを用いて、アプリケーション処理プログラム毎の実行時間分布をシミュレーションする実行時間分布シミュレーション手段と、
     システムの性能評価結果を表示する結果表示手段と、
     を備えたことを特徴とする計算機ソフトウェアシステム設計支援装置。
    A task definition input means for defining the priority, start cycle, execution time, and number of executions for each task constituting the application processing program and registering it as a task information database;
    A program definition input means for defining a task execution flow used for each application processing program using a flow definition component registered in advance and registering it as a program definition database;
    An execution time distribution simulation means for simulating an execution time distribution for each application processing program using the task information database, a program definition database, and a flow definition component database in which the flow definition component is stored;
    A result display means for displaying a system performance evaluation result;
    A computer software system design support apparatus characterized by comprising:
  11.  アプリケーション処理プログラム毎の性能目標情報として、アプリケーション処理プログラム毎に予測時間領域を前記プログラム定義データベースに定義する性能目標情報定義手段を更に備えたことを特徴とする請求項10に記載の計算機ソフトウェアシステム設計支援装置。 11. The computer software system design according to claim 10, further comprising performance target information defining means for defining a predicted time region in the program definition database for each application processing program as performance target information for each application processing program. Support device.
  12.  前記結果表示手段は、シミュレーション結果の前記実行時間分布が前記予測時間領域と比較して逸脱する場合には、該アプリケーション処理プログラムに対してアラームを出力することを特徴とする請求項11に記載の計算機ソフトウェアシステム設計支援装置。 The said result display means outputs an alarm with respect to this application processing program, when the said execution time distribution of a simulation result deviates compared with the said prediction time area | region. Computer software system design support device.
  13.  前記タスク定義入力手段において、タスク毎に起動オフセット時間,実時間属性およびタイムスライス時間を、タスク情報データベースに更に登録できる手段を備えたことを特徴とする請求項10~12のいずれかに記載の計算機ソフトウェアシステム設計支援装置。 The task definition input means comprises means for further registering an activation offset time, an actual time attribute, and a time slice time for each task in a task information database. Computer software system design support device.
  14.  前記タスク定義入力手段において、タスク実行時間の分布情報を見積り実行時間とその重み付けの1セットとして複数セットを分布情報として登録できる手段を備えたことを特徴とする請求項10~12のいずれかに記載の計算機ソフトウェアシステム設計支援装置。 The task definition input means comprises means capable of registering a plurality of sets as distribution information as a set of estimated execution time and its weighting distribution information of task execution time as distribution information. The computer software system design support apparatus described.
  15.  前記タスク定義入力手段において、見積り実行時間とその重み付けとを1セットとして、複数セットをタスク実行時間の分布情報として登録できるタスク実行時間分布情報入力手段を更に備えたことを特徴とする請求項10~12のいずれかに記載の計算機ソフトウェアシステム設計支援装置。 11. The task definition input means further comprises task execution time distribution information input means capable of registering a set of estimated execution times and their weights as one set and a plurality of sets as task execution time distribution information. The computer software system design support apparatus according to any one of items 1 to 12.
  16.  前記タスク定義入力手段において、処理待ち時間が発生するハードウェアリソースの処理待ち時間の見積り時間を登録する処理待ち時間登録手段を更に備えたことを特徴とする請求項15に記載の計算機ソフトウェアシステム設計支援装置。 16. The computer software system design according to claim 15, further comprising processing wait time registration means for registering an estimated time of processing wait time of a hardware resource in which processing wait time occurs in the task definition input means. Support device.
  17.  前記ハードウェアリソースが、複数のタスクで共通アクセスされるリソースであることを特徴とする請求項16に記載の計算機ソフトウェアシステム設計支援装置。 17. The computer software system design support apparatus according to claim 16, wherein the hardware resource is a resource that is commonly accessed by a plurality of tasks.
  18.  前記アプリケーション定義入力手段は、前記フロー定義部品データベースに登録された部品を用いて、繰り返し処理,条件分岐処理,並列実行処理を少なくとも定義入力できることを特徴とする請求項10~12のいずれかに記載の計算機ソフトウェアシステム設計支援装置。 13. The application definition input means can input at least definitions of repetition processing, conditional branch processing, and parallel execution processing using components registered in the flow definition component database. Computer software system design support equipment.
  19.  前記条件実行処理は、条件実行される1以上の各タスクに対して、それぞれの実行確率を定義できることを特徴とする請求項18に記載の計算機ソフトウェアシステム設計支援装置。 19. The computer software system design support apparatus according to claim 18, wherein the condition execution process can define execution probabilities for each of one or more tasks to be conditionally executed.
  20.  前記並列実行処理には、並列に実行される全てのタスクが終了した場合のみ、その後の処理が進むパルドタイプ並列実行と、並列実行される全てのタスクが終了しなくても進むスプリットタイプ並列実行と、を備えたことを特徴とする請求項18に記載の計算機ソフトウェアシステム設計支援装置。
     
     
    In the parallel execution process, only when all tasks executed in parallel are finished, a parallel type parallel execution in which the subsequent processing proceeds and a split type parallel execution in which all the tasks executed in parallel do not finish are executed. The computer software system design support apparatus according to claim 18, further comprising:

PCT/JP2012/001478 2011-03-02 2012-03-02 Computer software system design support device WO2012117746A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013502203A JP5374707B2 (en) 2011-03-02 2012-03-02 Computer software system design support device

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2011045594 2011-03-02
JP2011045592 2011-03-02
JP2011-045592 2011-03-02
JP2011-045594 2011-03-02

Publications (1)

Publication Number Publication Date
WO2012117746A1 true WO2012117746A1 (en) 2012-09-07

Family

ID=46757688

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2012/001478 WO2012117746A1 (en) 2011-03-02 2012-03-02 Computer software system design support device

Country Status (2)

Country Link
JP (1) JP5374707B2 (en)
WO (1) WO2012117746A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108292237A (en) * 2015-12-18 2018-07-17 想象技术有限公司 Control the operation of gpu
CN109002377A (en) * 2018-07-26 2018-12-14 郑州云海信息技术有限公司 A kind of processor detection method, processor detection device and computer equipment

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10437699B2 (en) 2015-01-21 2019-10-08 International Business Machines Corporation Measuring execution time of benchmark programs in a simulated environment
CN111861012A (en) * 2020-07-23 2020-10-30 西安奥卡云数据科技有限公司 Test task execution time prediction method and optimal execution node selection method

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000047884A (en) * 1998-07-28 2000-02-18 Toshiba Corp Device and method for scheduling analysis, and medium where program for scheduling analysis is recorded
JP2002268879A (en) * 2001-03-07 2002-09-20 Mitsubishi Electric Corp Device and method for supporting program design and program for performing program design support method by computer
JP2006185055A (en) * 2004-12-27 2006-07-13 Toshiba Corp Design support system and design support program for computer system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000047884A (en) * 1998-07-28 2000-02-18 Toshiba Corp Device and method for scheduling analysis, and medium where program for scheduling analysis is recorded
JP2002268879A (en) * 2001-03-07 2002-09-20 Mitsubishi Electric Corp Device and method for supporting program design and program for performing program design support method by computer
JP2006185055A (en) * 2004-12-27 2006-07-13 Toshiba Corp Design support system and design support program for computer system

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
YUKIKAZU NAKAMOTO ET AL.: "Real Time Seino Kaiseki System ProBA/RTH", NEC TECHNICAL JOURNAL, vol. 47, no. 6, 15 July 1994 (1994-07-15), pages 42 - 43 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108292237A (en) * 2015-12-18 2018-07-17 想象技术有限公司 Control the operation of gpu
CN109002377A (en) * 2018-07-26 2018-12-14 郑州云海信息技术有限公司 A kind of processor detection method, processor detection device and computer equipment

Also Published As

Publication number Publication date
JP5374707B2 (en) 2013-12-25
JPWO2012117746A1 (en) 2014-07-07

Similar Documents

Publication Publication Date Title
JP6678780B2 (en) Process visualization platform
US20210279577A1 (en) Testing of Computing Processes Using Artificial Intelligence
US8352237B2 (en) System and method for system integration test (SIT) planning
CN102279766B (en) Method and system for concurrently simulating processors and scheduler
JP5374707B2 (en) Computer software system design support device
US20170147398A1 (en) Estimating job start times on workload management systems
JP2023086678A (en) Method and apparatus for generating and applying deep learning model based on deep learning framework
CN105453033A (en) Program testing service
JP2020505710A (en) Methods and systems for verifying software programs
US20180150378A1 (en) Verification of model-driven software architecture
WO2014054231A1 (en) Information system construction assistance device, information system construction assistance method, and storage medium
CN110717992A (en) Method, device, computer system and readable storage medium for scheduling model
US11954569B2 (en) Techniques for parallel model training
EP4191492A1 (en) Transaction engine
JP2006185055A (en) Design support system and design support program for computer system
WO2012117747A1 (en) Network-type computer software system design support method
US11544436B1 (en) Hardware-software interaction testing using formal verification
US10114916B1 (en) Method and system to accelerate visualization of waveform data
US20210286785A1 (en) Graph-based application performance optimization platform for cloud computing environment
EP3826233B1 (en) Enhanced selection of cloud architecture profiles
US20200233932A1 (en) Providing ability to simulate production systems at scale in a fast, scalable way
JP5226848B2 (en) Simulation apparatus and program
CN113391903A (en) Method and device for establishing schedulability model, electronic equipment and storage medium
US20230070378A1 (en) Method and system for facilitating a concurrent simulation of multiple robotic tasks
JP2014071775A (en) System development support device and system development support method

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 12752050

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2013502203

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 12752050

Country of ref document: EP

Kind code of ref document: A1