JP2022011264A - Software development support device and software development support method - Google Patents

Software development support device and software development support method Download PDF

Info

Publication number
JP2022011264A
JP2022011264A JP2020112276A JP2020112276A JP2022011264A JP 2022011264 A JP2022011264 A JP 2022011264A JP 2020112276 A JP2020112276 A JP 2020112276A JP 2020112276 A JP2020112276 A JP 2020112276A JP 2022011264 A JP2022011264 A JP 2022011264A
Authority
JP
Japan
Prior art keywords
model
control
source
software development
development support
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2020112276A
Other languages
Japanese (ja)
Other versions
JP7385536B2 (en
Inventor
耕資 山本
Kosuke Yamamoto
大地 益子
Daichi Masuko
倫彦 長谷川
Tomohiko Hasegawa
健太 塚原
Kenta Tsukahara
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Astemo Ltd
Original Assignee
Hitachi Astemo Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Astemo Ltd filed Critical Hitachi Astemo Ltd
Priority to JP2020112276A priority Critical patent/JP7385536B2/en
Publication of JP2022011264A publication Critical patent/JP2022011264A/en
Application granted granted Critical
Publication of JP7385536B2 publication Critical patent/JP7385536B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

To generate a program from control specifications defined by a feature model and deals with a processor including a plurality of cores.SOLUTION: A software development support device having a first processor comprises: a feature model analysis section that inputs a feature model including execution order of a control model and including control specifications of software, analyzes the control model in the feature model, analyzes an arithmetic period and the execution order, and outputs execution order information; a model source generation section that inputs the control model and generates a model source which includes the arithmetic period and of which filename is the same as the control model's filename; a model source collection section that collects the model source of which name is the same as the control model's name; and a parallel processing generation section that inputs information on a second processor having a plurality of cores and generates allocation information of processing for each core on the basis of the arithmetic period and the execution order information to optimize the software to processing of the plurality of cores with respect to the collected model source.SELECTED DRAWING: Figure 3A

Description

本発明は、機器を制御するモデルベース開発において、制御ソフトウェアの開発を行うソフトウェア開発支援装置及びソフトウェア開発支援方法に関する。 The present invention relates to a software development support device and a software development support method for developing control software in model-based development for controlling a device.

特定の機能を実現するために機械や装置に組み込まれるコンピュータシステムである組み込みシステムのソフトウェア開発では、機器を制御する処理を実装した制御プログラムを実行することにより、当該機器をリアルタイムで制御する。 In software development of an embedded system, which is a computer system embedded in a machine or device to realize a specific function, the device is controlled in real time by executing a control program that implements a process for controlling the device.

近年、制御ソフトウェアの開発においては、開発者が制御ソフトウェアのソースコードを記述することに代えて、より簡易に生成でき視認性の良い「(制御)モデル」によって記述する場合がある。この開発手法をモデルベース開発と呼ぶ。 In recent years, in the development of control software, instead of describing the source code of the control software, the developer may describe it by a "(control) model" that can be generated more easily and has good visibility. This development method is called model-based development.

モデルベース開発に対応したプログラム開発環境としては、例えば、MathWorks(登録商標)社のMATLAB(登録商標)がある。開発者は、MATLAB(登録商標)の一機能であるSimulinkを用いて、モデルを記述する。モデルは、ブロックと呼ばれる機能単位及び機能単位間の入出力関係を示す結線によって記述される。 As a program development environment corresponding to model-based development, for example, there is MATLAB (registered trademark) of MathWorks (registered trademark). The developer describes the model using Simulink, which is a function of MATLAB (registered trademark). The model is described by a functional unit called a block and a connection showing an input / output relationship between the functional units.

Simulink(登録商標)を用いて、制御ソフトウェアが実装した機能を記述したモデルは、制御モデルと呼ばれる。この制御モデルを元に、例えばdSpace(登録商標)社のTargetLink(登録商標)を用いて、ソースコードの生成に必要なデータ型やビットレートなどの情報を付加するプロセスはスケーリングと呼ばれる。制御モデルを基に生成されたソースコードをモデルソースと呼ぶ。 A model that describes the functions implemented by the control software using Simulink® is called a control model. Based on this control model, for example, using TargetLink (registered trademark) of dSpace (registered trademark), the process of adding information such as data type and bit rate necessary for generating source code is called scaling. The source code generated based on the control model is called a model source.

公知例として特許文献1には、制御モデルに対してスケーリングを実施してソースコード生成までを自動化する技術が開示されている。 As a known example, Patent Document 1 discloses a technique of scaling a control model to automate the generation of source code.

また、ソフトウェア開発においてはゼロからソフトウェアを生成してプログラムを生成するよりも、ソフトウェア部品をかき集めて再利用する流用開発を行うことが効果的な手法として知られている。 Further, in software development, it is known as an effective method to carry out diversion development in which software parts are collected and reused, rather than generating software from scratch to generate a program.

公知例として特許文献2には、カテゴリ情報が付与されたソフトウェア部品を用意しておき、開発要求を満たすソフトウェア部品を検索してソースコードの流用開発ができるシステムが開示されている。 As a known example, Patent Document 2 discloses a system in which software components to which category information is added are prepared, software components satisfying development requirements can be searched for, and source code can be diverted and developed.

特開2017-016416号公報Japanese Unexamined Patent Publication No. 2017-016416 特開2008-040969号公報Japanese Unexamined Patent Publication No. 2008-040969

しかし、制御モデルはプログラム全体の仕様は表現されておらず、プログラム全体の制御仕様は、複数の制御モデルで構成されて制御モデル同士の情報の全制御仕様の特徴を表したモデル(以下特徴モデル)によって表現されている。 However, the control model does not express the specifications of the entire program, and the control specifications of the entire program are composed of multiple control models and represent the characteristics of all the control specifications of the information between the control models (hereinafter referred to as the feature model). ).

特許文献1の技術では、制御モデルのモデルソースの生成はできても、特徴モデルの仕様を満たしたプログラムを生成することはできない。 In the technique of Patent Document 1, although the model source of the control model can be generated, the program satisfying the specifications of the feature model cannot be generated.

特徴モデルは多数の制御モデルより構成されているため、特徴モデルの仕様を満たすプログラムを生成する毎に制御モデルよりコード生成を行うと、使用する制御モデルの数だけ生成時間を要してしまう。 Since the feature model is composed of a large number of control models, if code generation is performed from the control model each time a program satisfying the specifications of the feature model is generated, it takes as many generation times as the number of control models to be used.

特許文献2に記載の技術はソフトウェア部品の検索は容易にできるものの、ソースコード単位の管理ではなく、あくまでもソースコードの一部を部品としてカテゴリ別に管理しているため、分類や処理の依存関係から設計者自身が適切な部品を見つけ出した上でソースコードを生成する必要がある。 Although the technology described in Patent Document 2 makes it easy to search for software parts, it does not manage each source code, but manages a part of the source code as parts by category, so it depends on the classification and processing. It is necessary for the designer himself to find the appropriate part and then generate the source code.

そのため、実行プログラムを生成するには、特徴モデルより制御モデル間の依存関係を解析し、実行順序を定義する作業や、異なる演算周期で同一変数を使用する場合に変数の一貫性を確保する受け渡し処理(バッファリング処理)の定義や、コンパイル対象のファイルや設定を定義したコンパイル実行情報(MAKEファイル)をそれぞれ定義する必要があるが、上記特許文献1、2はいずれも上記3点を考慮していない。 Therefore, in order to generate an execution program, the work of analyzing the dependency between control models from the feature model and defining the execution order, and the passing to ensure the consistency of variables when the same variable is used in different calculation cycles. It is necessary to define the processing (buffering processing) and the compilation execution information (MAKE file) that defines the files to be compiled and the settings, but Patent Documents 1 and 2 above take the above three points into consideration. Not.

さらに、例えば自動車用電子制御ユニット(Electric Control Unit、以下ECU)の組み込みソフトウェア開発では、マイクロコンピュータ(以下、マイコン)の性能向上に伴う発熱量や消費電力の増加対策として複数のコアを含むマイコンが登場してきており、ソフトウェアを複数のコアに対応可能な構造にすることが求められている。 Furthermore, for example, in the development of embedded software for an electronic control unit for automobiles (Electronic Control Unit, hereinafter referred to as ECU), a microcomputer including multiple cores is used as a countermeasure against an increase in heat generation and power consumption due to performance improvement of a microcomputer (hereinafter referred to as a microcomputer). With the advent, it is required that the software be structured so that it can support multiple cores.

本発明は、上記のような課題に鑑みて、特徴モデルで定義された制御仕様からプログラムを生成し、モデルソースにカテゴリ情報を付与することなく部品をモデルソース単位で管理することができ、また、複数のコアを含むプロセッサへも対応することができるソフトウェア開発支援装置を提供することを目的とする。 In view of the above problems, the present invention can generate a program from the control specifications defined in the feature model and manage the parts in the model source unit without adding the category information to the model source. The purpose is to provide a software development support device that can support processors including multiple cores.

本発明は、第1のプロセッサとメモリを有するソフトウェア開発支援装置であって、制御モデルの実行順序を含んでソフトウェアの制御仕様を記述した特徴モデルを受け付けて、当該特徴モデルを構成している制御モデルを解析し、前記制御モデルの演算周期と、前記制御モデルの実行順序を解析して実行順序情報として出力する特徴モデル解析部と、前記制御モデルを受け付けて、前記制御モデルの演算周期を含んでファイル名が当該制御モデルと同一となるモデルソースを生成して、生成した前記モデルソースが前記制御モデルの仕様と一致しているかをテストした後にモデルソース記憶部へ格納するモデルソース生成部と、前記特徴モデルから分析された前記制御モデルと同名のモデルソースを前記モデルソース記憶部から収集するモデルソース収集部と、複数のコアを有して前記ソフトウェアを実行する第2のプロセッサの情報を入力するプロセッサ情報を受け付けて、前記収集されたモデルソースに対して、前記ソフトウェアを前記複数のコアの処理に最適化するために前記演算周期と実行順序情報に基づいてコア毎の処理の割り当て情報を生成する並列処理生成部と、を有する。 The present invention is a software development support device having a first processor and a memory, and accepts a feature model that describes software control specifications including an execution order of the control model, and controls constituting the feature model. Includes a feature model analysis unit that analyzes the model, analyzes the calculation cycle of the control model, analyzes the execution order of the control model, and outputs it as execution order information, and accepts the control model and includes the calculation cycle of the control model. Generates a model source whose file name is the same as that of the control model, tests whether the generated model source matches the specifications of the control model, and then stores it in the model source storage unit. Information on a model source collector that collects a model source with the same name as the control model analyzed from the feature model from the model source storage and a second processor that has a plurality of cores and executes the software. Processing allocation information for each core based on the calculation cycle and execution order information in order to optimize the software for the processing of the plurality of cores for the collected model source by receiving the input processor information. It has a parallel processing generation unit and a parallel processing generation unit.

本発明によれば、複数のコアを含むプロセッサ向けに最適化されたソフトウェアを開発することができる。また、ソースコードの収集から、演算の実行順序の設定、接続情報の設定、コンパイル、コア別の処理の割り当てを自動で実施できるので、設計作業の工数削減を図ることができる。 According to the present invention, it is possible to develop software optimized for a processor including a plurality of cores. In addition, since it is possible to automatically perform the collection of source code, the setting of the execution order of operations, the setting of connection information, the compilation, and the allocation of processing for each core, the man-hours for design work can be reduced.

また、本発明は実施形態に制限されず、本発明の範囲を逸脱しなければ、ECU以外の組み込み制御機器やモデル情報を基にしたソフトウェア開発手法に対して様々な応用が可能である。よって、特徴モデルを基に特徴モデルで表現された制御仕様を満たすプログラムを自動で出力することができる。 Further, the present invention is not limited to the embodiment, and various applications can be applied to embedded control devices other than the ECU and software development methods based on model information as long as they do not deviate from the scope of the present invention. Therefore, it is possible to automatically output a program that satisfies the control specifications expressed by the feature model based on the feature model.

本明細書において開示される主題の、少なくとも一つの実施の詳細は、添付されている図面と以下の記述の中で述べられる。開示される主題のその他の特徴、態様、効果は、以下の開示、図面、請求項により明らかにされる。 Details of at least one practice of the subject matter disclosed herein are set forth in the accompanying drawings and in the description below. Other features, embodiments, and effects of the disclosed subject matter are manifested in the following disclosures, drawings, and claims.

本発明の実施例を示し、制御モデルと特徴モデルの関係図である。An embodiment of the present invention is shown, and is a relationship diagram between a control model and a feature model. 本発明の実施例を示し、制御モデルの一例を示す図である。It is a figure which shows the Example of this invention and shows an example of a control model. 本発明の実施例を示し、ソフトウェア開発支援装置の機能の一例を示すブロック図である。It is a block diagram which shows the Example of this invention and shows an example of the function of the software development support apparatus. 本発明の実施例を示し、ソフトウェア開発支援装置の構成の一例を示すブロック図である。It is a block diagram which shows the Example of this invention and shows an example of the structure of the software development support apparatus. 本発明の実施例を示し、ソフトウェア開発支援装置で行われる処理の一例を示すフローチャートである。It is a flowchart which shows the Example of this invention and shows an example of the process performed by the software development support apparatus. 本発明の実施例を示し、特徴モデル解析部で行われる使用モデル特定処理の図である。An embodiment of the present invention is shown, and it is a figure of the use model identification process performed in the feature model analysis unit. 本発明の実施例を示し、特徴モデル解析部の演算周期毎の演算実行順序リストの例である。An embodiment of the present invention is shown, and is an example of a calculation execution order list for each calculation cycle of the feature model analysis unit. 本発明の実施例を示し、特徴モデル解析部の演算周期毎の変数接続処理の定義の一例を示す図である。It is a figure which shows the Example of this invention and shows an example of the definition of the variable connection process for every operation cycle of a feature model analysis part. 本発明の実施例を示し、異なる演算周期で同一変数を使用している制御モデルの図である。An embodiment of the present invention is shown, and it is a figure of a control model which uses the same variable in different operation cycles. 本発明の実施例を示し、ソフトウェア開発支援装置の接続処理追加部の構成図である。An embodiment of the present invention is shown, and it is a block diagram of the connection processing addition part of a software development support apparatus. 本発明の実施例を示し、接続処理追加部の演算周期毎の演算実行順序定義の一例を示す図である。It is a figure which shows the Example of this invention and shows an example of the operation execution order definition for every operation cycle of the connection processing addition part. 本発明の実施例を示し、ソフトウェア開発支援装置の並列処理生成部の構成図である。An embodiment of the present invention is shown, and it is a block diagram of the parallel processing generation part of the software development support apparatus. 本発明の実施例を示し、2つのプロセッサコアに並列処理を割り当てた例を示す図である。It is a figure which shows the Example of this invention and shows the example which assigned the parallel processing to two processor cores.

以下に本発明の実施形態について図面を参照しつつ説明を行う。 Hereinafter, embodiments of the present invention will be described with reference to the drawings.

図1は、制御モデルA102-A~制御モデルG102-Gと特徴モデル101の関係を示した図である。特徴モデル101は複数の制御モデルA102-A2~制御モデルG102-Gによって構成されており、それぞれの制御モデル同士は共通変数の算出と、参照タイミングによって実行順序が決められる。そして、特徴モデル101は、生成するソフトウェア全体の制御仕様及び制御モデルの処理順序が記述されている。 FIG. 1 is a diagram showing the relationship between the control model A102-A to the control model G102-G and the feature model 101. The feature model 101 is composed of a plurality of control models A102-A2 to G102-G, and the execution order of each control model is determined by the calculation of common variables and the reference timing. The feature model 101 describes the control specifications of the entire software to be generated and the processing order of the control model.

なお、以下の説明では、制御モデルA~Gを個々に特定しない場合には「-」以降を省略した符号「制御モデル102」を用いる。また、他の構成要素の符号についても同様である。 In the following description, when the control models A to G are not individually specified, the reference numeral “control model 102” with the “−” and the like omitted is used. The same applies to the symbols of other components.

制御モデルA102-Aの出力は、制御モデルB102-Bと制御モデルE102-Eへ入力される。制御モデルB102-Bは制御モデルA102-Aの出力に所定の処理を行って制御モデルC102-Cへ出力する。制御モデルD102-Dは制御モデルC102-Cの出力に所定の処理を行って制御モデルG102-Gへ出力する。 The output of the control model A102-A is input to the control model B102-B and the control model E102-E. The control model B102-B performs a predetermined process on the output of the control model A102-A and outputs the output to the control model C102-C. The control model D102-D performs a predetermined process on the output of the control model C102-C and outputs the output to the control model G102-G.

制御モデルE102-Eは制御モデルA102-Aの出力に所定の処理を行って制御モデルF102-Fへ出力する。制御モデルF102-Fは制御モデルE102-Eの出力に所定の処理を行って制御モデルG102-Gへ出力する。制御モデルG102-Gは、制御モデルD102-Dと制御モデルF102-Fの出力に所定の処理を行った結果を出力する。 The control model E102-E performs a predetermined process on the output of the control model A102-A and outputs the output to the control model F102-F. The control model F102-F performs a predetermined process on the output of the control model E102-E and outputs the output to the control model G102-G. The control model G102-G outputs the result of performing predetermined processing on the outputs of the control model D102-D and the control model F102-F.

なお、本実施例の制御モデル102は、周知のモデルベース開発で利用されるモデルを用いることができ、制御単位の演算処理を記述したブロック線図などで構成される。 The control model 102 of this embodiment can use a model used in well-known model-based development, and is composed of a block diagram or the like that describes the arithmetic processing of the control unit.

図2は、制御モデル102の内部処理の一例を示した図である。制御モデル102の内部では図に示したように一つ以上の入力値X(201)に対して一つ以上の処理A(211)~処理C(213)を行って一つ以上の出力値(本実施例ではY、Zの2つ)202、203を算出している。また、出力値Y、Z(202、203)はマルチコアのプロセッサで演算を行う場合の演算コアを指定する情報も含む。 FIG. 2 is a diagram showing an example of internal processing of the control model 102. Inside the control model 102, as shown in the figure, one or more processes A (211) to C (213) are performed on one or more input values X (201), and one or more output values ( In this embodiment, Y and Z) 202 and 203 are calculated. Further, the output values Y and Z (202, 203) also include information for designating the calculation core when the calculation is performed by the multi-core processor.

図3Aは、ソフトウェア開発支援装置301の機能の一例を示すブロック図である。 FIG. 3A is a block diagram showing an example of the function of the software development support device 301.

ソフトウェア開発支援装置301は入力として、制御モデル102及び特徴モデル303の情報を必要とする。モデルソース生成部304では、入力された制御モデル102をTargetLink(登録商標)等のオートコーディング機能を使用してC言語で記述されたソースコードを生成する。 The software development support device 301 requires the information of the control model 102 and the feature model 303 as input. The model source generation unit 304 generates a source code written in C language by using an autocoding function such as TargetLink (registered trademark) for the input control model 102.

この制御モデル102を基に出力されたソースコードはモデルソースと呼ばれる。この際に制御モデル102と、生成されたモデルソースとでは拡張子を除いたファイル名が同一であり、モデルソースには実行される演算周期の情報が含まれている。 The source code output based on this control model 102 is called a model source. At this time, the control model 102 and the generated model source have the same file name excluding the extension, and the model source contains information on the calculation cycle to be executed.

本実施例のモデルソース生成部304では、制御モデル102から出力されるモデルソースは1制御モデルから1モデルソースとしているが、制御モデル102内で行われている1つの演算を1つのモデルソースとして出力してもよい。 In the model source generation unit 304 of this embodiment, the model source output from the control model 102 is from one control model to one model source, but one operation performed in the control model 102 is used as one model source. It may be output.

モデルソース生成部304は、生成したソースコードと、入力された制御モデル102とで等価性を検証し、モデルソースに対しての変数の入出力値が仕様通りとなっているか単体テストを実施する。 The model source generation unit 304 verifies the equivalence between the generated source code and the input control model 102, and performs a unit test to see if the input / output values of the variables for the model source are as specified.

制御モデル102は流用変更等で内容が変更された場合は、更新毎にファイル名の末尾に更新回数の数字を付与する等して、名前を変えることで同名ファイルが重複することを防ぐ。 When the content of the control model 102 is changed due to a diversion change or the like, the file with the same name is prevented from being duplicated by changing the name by adding a number of the number of updates to the end of the file name for each update.

モデルソース生成部304で生成されたモデルソースは、モデルソース記憶部305に記憶され、モデルソース記憶部305には特徴モデル101で使用される全ての制御モデル102を予め記憶しておく。特徴モデル解析部306は、入力された特徴モデル101を解析する。(詳細な処理は後述する。) The model source generated by the model source generation unit 304 is stored in the model source storage unit 305, and all the control models 102 used in the feature model 101 are stored in the model source storage unit 305 in advance. The feature model analysis unit 306 analyzes the input feature model 101. (Detailed processing will be described later.)

モデルソース収集部307では、特徴モデル解析部306で特定した制御モデル情報を基に同じ制御モデル102から生成されたモデルソースをモデルソース記憶部305より収集して収集モデルソースリスト901(図9参照)を生成する。 The model source collection unit 307 collects model sources generated from the same control model 102 based on the control model information specified by the feature model analysis unit 306 from the model source storage unit 305, and collects the model source list 901 (see FIG. 9). ) Is generated.

モデルソース収集部307が収集したモデルソースは、それぞれ単体テストを実施済のため、収集したモデルソースに対して新たにテスト等の確認作業を実施する必要はない。 Since each model source collected by the model source collection unit 307 has been unit tested, it is not necessary to newly perform a confirmation work such as a test on the collected model source.

モデルソース収集部307が収集したモデルソースに対しては接続処理追加部308で制御モデル102間の接続情報を定義する(詳細な処理は後述する)。 For the model source collected by the model source collection unit 307, the connection processing addition unit 308 defines the connection information between the control models 102 (detailed processing will be described later).

並列処理生成部309は、マルチコアプロセッサ向けの処理を追加する(詳細な処理は後述する)。並列処理生成部309では、特徴モデル解析部306と、接続処理追加部308と、プロセッサ情報310で入力された制御対象ECUのプロセッサのコア数の情報や、処理能力、コア毎のアドレスの割り当て情報を基に並列処理を生成し、モデルソースへ適用する。 The parallel processing generation unit 309 adds processing for a multi-core processor (detailed processing will be described later). In the parallel processing generation unit 309, the feature model analysis unit 306, the connection processing addition unit 308, the information on the number of cores of the processor of the controlled target ECU input in the processor information 310, the processing capacity, and the address allocation information for each core. Generate parallel processing based on and apply it to the model source.

並列処理が適用されたモデルソースはコンパイルに必要な情報を満たしているため、コンパイル部311でコンパイルを実施できる。コンパイル部311では、モデルソース及び追加した接続処理を基にプロセッサ上で処理を実行可能な実行ファイルへの変換を行う。コンパイル部311でコンパイルが実行されたファイル(プログラム)はプログラム出力部312より出力される。 Since the model source to which parallel processing is applied satisfies the information required for compilation, compilation can be performed by the compilation unit 311. The compilation unit 311 converts the model source into an executable file that can be processed on the processor based on the added connection processing. The file (program) compiled by the compilation unit 311 is output from the program output unit 312.

図3Bは、ソフトウェア開発支援装置301の構成の一例を示すブロック図である。ソフトウェア開発支援装置301はプロセッサ11と、メモリ12と、ストレージ装置13と、入出力装置14と、ネットワーク装置15を含む計算機である。 FIG. 3B is a block diagram showing an example of the configuration of the software development support device 301. The software development support device 301 is a computer including a processor 11, a memory 12, a storage device 13, an input / output device 14, and a network device 15.

入出力装置14は、キーボードやマウスあるいはタッチパネル等の入力装置と、ディスプレイ等の出力装置で構成される。ネットワーク装置15は、ネットワーク16に接続されて、他の装置と通信を行うことができる。 The input / output device 14 includes an input device such as a keyboard, a mouse, or a touch panel, and an output device such as a display. The network device 15 can be connected to the network 16 and communicate with other devices.

メモリ12には、モデルソース生成部304と、特徴モデル解析部306と、モデルソース収集部307と、接続処理追加部308と、並列処理生成部309と、コンパイル部311と、プログラム出力部312がプログラムとしてロードされてプロセッサ11によって実行される。また、メモリ12には、各プログラムが用するデータとしてモデルソース記憶部305が格納される。 The memory 12 includes a model source generation unit 304, a feature model analysis unit 306, a model source collection unit 307, a connection processing addition unit 308, a parallel processing generation unit 309, a compilation unit 311 and a program output unit 312. It is loaded as a program and executed by the processor 11. Further, the memory 12 stores the model source storage unit 305 as data used by each program.

プロセッサ11は、各機能部のプログラムに従って処理を実行することによって、所定の機能を提供する機能部として稼働する。例えば、プロセッサ11は、モデルソース生成プログラムに従って処理を実行することでモデルソース生成部304として機能する。他のプログラムについても同様である。さらに、プロセッサ11は、各プログラムが実行する複数の処理のそれぞれの機能を提供する機能部としても稼働する。計算機及び計算機システムは、これらの機能部を含む装置及びシステムである。 The processor 11 operates as a functional unit that provides a predetermined function by executing a process according to a program of each functional unit. For example, the processor 11 functions as the model source generation unit 304 by executing the process according to the model source generation program. The same applies to other programs. Further, the processor 11 also operates as a functional unit that provides each function of a plurality of processes executed by each program. A computer and a computer system are devices and systems including these functional parts.

ソフトウェア開発支援装置301で行われる処理の一例を図4のフローチャートに示す。ソフトウェア開発支援装置301の特徴モデル解析部306は、特徴モデル303で使用されている制御モデル102の特定と、制御モデル102のリストの生成を行う(401)。この処理については、図5で後述する。 An example of the processing performed by the software development support device 301 is shown in the flowchart of FIG. The feature model analysis unit 306 of the software development support device 301 identifies the control model 102 used in the feature model 303 and generates a list of the control model 102 (401). This process will be described later in FIG.

次に、特徴モデル解析部306は、制御モデル102の処理を行うコアの割り当て情報を抽出する(402)。なお、コアの割り当て情報は、例えば、制御モデル102から抽出することができる。そして、特徴モデル解析部306は、各制御モデル102の演算周期と演算順序を解析して演算実行順序リストを生成する(403)。この処理については、図6で詳述する。 Next, the feature model analysis unit 306 extracts the allocation information of the core that performs the processing of the control model 102 (402). The core allocation information can be extracted from the control model 102, for example. Then, the feature model analysis unit 306 analyzes the calculation cycle and the calculation order of each control model 102 to generate a calculation execution order list (403). This process will be described in detail in FIG.

また、モデルソース生成部304は制御モデルを入力してモデルソースを生成してモデルソース記憶部305に格納する。モデルソース収集部307は、演算実行順序リストに対応するモデルソースを収集して接続処理追加部308へ出力する。 Further, the model source generation unit 304 inputs a control model, generates a model source, and stores it in the model source storage unit 305. The model source collection unit 307 collects the model sources corresponding to the calculation execution order list and outputs them to the connection processing addition unit 308.

その後、接続処理追加部308は、異なる演算周期で同一変数を使用している制御モデル102を検索する(404)。接続処理追加部308は、検索の結果、異なる演算周期で同一変数を使用する制御モデル102が存在する場合には、変数接続処理のソースコードを生成する(405)。 After that, the connection processing addition unit 308 searches for the control model 102 using the same variable in different calculation cycles (404). As a result of the search, the connection processing addition unit 308 generates the source code of the variable connection processing when the control model 102 that uses the same variable in different calculation cycles exists (405).

並列処理生成部309は、生成したソースコードを接続先の演算周期毎に割り当てる(406)。この処理については、図7で後述する。そして、接続処理追加部308は、処理が完了していない変数接続処理があるか否かを判定し(407)、全ての変数接続処理が完了するまでこの上記ステップ404~406の処理を繰り返して実行する。 The parallel processing generation unit 309 allocates the generated source code for each calculation cycle of the connection destination (406). This process will be described later in FIG. Then, the connection processing addition unit 308 determines whether or not there is a variable connection processing for which the processing has not been completed (407), and repeats the processing of steps 404 to 406 until all the variable connection processing is completed. Execute.

上記の処理によって、ソフトウェア開発支援装置301は、異なる演算周期で同一変数を使用している制御モデル102間で変数を受け渡す変数接続処理を自動的に追加することが可能となる。 Through the above processing, the software development support device 301 can automatically add a variable connection processing for passing variables between control models 102 using the same variable in different calculation cycles.

図5は、特徴モデル解析部306の使用モデル特定処理の一例を示す図である。特徴モデル解析部306は、入力された特徴モデル101に含まれる制御モデル102の演算順序を解析し、各制御モデル102毎に予め設定されたコア割り当て情報502-1、502-2を付与する。 FIG. 5 is a diagram showing an example of the use model specifying process of the feature model analysis unit 306. The feature model analysis unit 306 analyzes the calculation order of the control model 102 included in the input feature model 101, and assigns the core allocation information 502-1 and 502-2 preset for each control model 102.

特徴モデル解析部306は、使用する制御モデル102とコアの割り当て情報502を含む使用モデル及びコア割り当てリスト501を生成する。使用モデル及びコア割り当てリスト501には使用する制御モデル102と、制御モデルA102-A~制御モデルG102-Gのコア割り当て情報502が含まれる。 The feature model analysis unit 306 generates a usage model and a core allocation list 501 including the control model 102 to be used and the core allocation information 502. The used model and the core allocation list 501 include the control model 102 to be used and the core allocation information 502 of the control models A102-A to the control model G102-G.

なお、コアの割り当て情報は、ソフトウェア開発支援装置301が生成したプログラムを実行する制御対象ECUのプロセッサコアの情報である。 The core allocation information is information on the processor core of the controlled object ECU that executes the program generated by the software development support device 301.

図6は、特徴モデル解析部306が生成する演算周期毎の演算実行順序リスト600の一例を示す図である。特徴モデル解析部306は、特徴モデル101から抽出した制御モデル102のそれぞれについて制御周期と実行順序を解析して、演算実行順序リスト600を生成する。 FIG. 6 is a diagram showing an example of a calculation execution order list 600 for each calculation cycle generated by the feature model analysis unit 306. The feature model analysis unit 306 analyzes the control cycle and the execution order for each of the control models 102 extracted from the feature model 101, and generates an operation execution order list 600.

演算実行順序リスト600は、例えば、10msの演算周期で実行する制御モデル102のリスト601と、20msの演算周期で実行する制御モデル102のリスト602と、100msの演算周期で実行する制御モデル102のリスト603が含まれる。各リスト601~603内では演算の実行順序で制御モデル102が列記される。 The calculation execution order list 600 is, for example, a list 601 of the control model 102 executed in a calculation cycle of 10 ms, a list 602 of the control model 102 executed in a calculation cycle of 20 ms, and a control model 102 executed in a calculation cycle of 100 ms. Listing 603 is included. In each list 601 to 603, the control model 102 is listed in the execution order of the operation.

図7は、特徴モデル解析部306の演算周期毎の変数接続処理定義701の一例を示す図である。 FIG. 7 is a diagram showing an example of the variable connection processing definition 701 for each calculation cycle of the feature model analysis unit 306.

演算周期毎の変数接続処理定義701は、異なる演算周期で同一変数を使用する制御モデル102で実施する処理のソースコードを含む。 The variable connection process definition 701 for each operation cycle includes the source code of the process to be executed by the control model 102 that uses the same variable in different operation cycles.

図8は、異なる演算周期で同一の変数を使用している制御モデル102間の表記の一例を示す図である。 FIG. 8 is a diagram showing an example of notation between control models 102 using the same variable in different calculation cycles.

図示の例では、10msの周期で演算が行われている制御モデルA(102-A)から同じく10msの周期で演算が行われている制御モデルB(102-B)と20msで演算が行われている制御モデルE(102-E)に変数情報が受け渡されている例を示す。 In the illustrated example, the calculation is performed in 20 ms from the control model A (102-A) in which the calculation is performed in a cycle of 10 ms to the control model B (102-B) in which the calculation is also performed in a cycle of 10 ms. An example is shown in which variable information is passed to the control model E (102-E).

特徴モデルには、同じ演算周期の制御モデル102に変数情報を受け渡す処理はないが、異なる演算周期で変数情報を受け渡す際は、制御モデル102の間に接続処理804を表すブロックが挿入される。よって、異なる演算周期に変数情報を受け渡している箇所は、この接続処理804のブロックを検索すればよい。 In the feature model, there is no process of passing variable information to the control model 102 of the same calculation cycle, but when passing variable information in different calculation cycles, a block representing the connection process 804 is inserted between the control model 102. To. Therefore, the block of the connection process 804 may be searched for the place where the variable information is passed to different calculation cycles.

図9は、接続処理追加部308の構成の一例を示すブロック図である。図3Aで示したモデルソース収集部307で収集された収集モデルソースリスト901に、特徴モデル解析部306で抽出された演算実行順序リスト600と、変数接続処理定義701を適用することで特徴モデル101とモデルソースの振る舞いを一致させる接続処理追加済モデルソース1101を生成する。 FIG. 9 is a block diagram showing an example of the configuration of the connection processing addition unit 308. By applying the operation execution order list 600 extracted by the feature model analysis unit 306 and the variable connection processing definition 701 to the collection model source list 901 collected by the model source collection unit 307 shown in FIG. 3A, the feature model 101 Generates the connection process added model source 1101 that matches the behavior of the model source with.

具体的には、接続処理追加部308は収集モデルソースリスト901から、モデルソースのファイル名及びモデルソースの演算周期の情報を取得する。次に、MAKEファイル生成部904はモデルソースのファイル名の情報を用いてコンパイルの際に対象となるソースファイルを定義するMAKEファイルの生成を行う。 Specifically, the connection processing addition unit 308 acquires the file name of the model source and the information of the calculation cycle of the model source from the collection model source list 901. Next, the MAKE file generation unit 904 generates a MAKE file that defines a target source file at the time of compilation by using the information of the file name of the model source.

関数実行順序定義ファイル生成部905は、モデルソースの演算周期の情報と演算周期毎の演算実行順序リスト600を基に、演算周期毎の関数実行順序定義ファイルを生成する(図10参照)。 The function execution order definition file generation unit 905 generates a function execution order definition file for each calculation cycle based on the information of the calculation cycle of the model source and the calculation execution order list 600 for each calculation cycle (see FIG. 10).

また、変数情報受け渡し処理定義ファイル生成部906は、変数接続処理定義701を基に変数情報受け渡し処理定義ファイルを生成する。そして、接続処理適用部907は、上記の処理で生成されたMAKEファイルと、関数実行順序定義ファイルと、変数情報受け渡し処理定義ファイルを収集モデルソースリスト901に追加して接続処理追加済モデルソース1101として出力し、モデルソースが格納されているフォルダに保存する。 Further, the variable information passing process definition file generation unit 906 generates a variable information passing process definition file based on the variable connection process definition 701. Then, the connection process application unit 907 adds the MAKE file, the function execution order definition file, and the variable information transfer process definition file generated in the above process to the collection model source list 901, and the connection process added model source 1101. And save it in the folder where the model source is stored.

図10は、接続処理追加部308の演算周期毎の演算実行順序定義1001の一例を示す図である。 FIG. 10 is a diagram showing an example of a calculation execution order definition 1001 for each calculation cycle of the connection processing addition unit 308.

演算周期毎の演算実行順序定義1001は、演算周期毎に制御モデル102の実行順序を定義したソースコードで記述される。 The operation execution order definition 1001 for each operation cycle is described by a source code that defines the execution order of the control model 102 for each operation cycle.

図11は、並列処理生成部309の構成の一例を示すブロック図である。並列処理生成部309は、接続処理追加部308から出力された接続処理追加済モデルソース1101に対して、使用プロセッサ情報保管部1102の情報を基に、制御対象ECUのプロセッサのコア毎に制御モデル102の処理を割り当てる。 FIG. 11 is a block diagram showing an example of the configuration of the parallel processing generation unit 309. The parallel processing generation unit 309 controls the connection processing addition model source 1101 output from the connection processing addition unit 308 for each core of the processor of the controlled ECU based on the information of the processor information storage unit 1102 used. Allocate 102 processes.

使用プロセッサ情報保管部1102は、特徴モデル101の入力時又は予め、ソフトウェアの書き込み先の電子基板(制御対象ECU)で使用されているプロセッサのコア数や、各コアの処理能力、コア毎のアドレス割り当て情報をプロセッサ情報310として入力する。また、設定するコア数は2コアに限定されず、シングルコアや2より多いコア数に設定することも可能である。 The processor information storage unit 1102 used is the number of cores of the processor used in the electronic board (controlled ECU) to which the software is written at the time of input of the feature model 101, the processing capacity of each core, and the address of each core. The allocation information is input as the processor information 310. Further, the number of cores to be set is not limited to two cores, and it is possible to set a single core or a number of cores larger than two.

並列化処理適用部1103では、特徴モデル解析部306で生成した使用モデル及びコア割り当てリスト501と、演算実行順序定義1001、使用プロセッサ情報保管部1102、の情報を基に制御モデル102毎にコア割り当て情報502を付与する。具体的にはマイコン毎に定められたアドレスの割り当て情報を基に、各コア毎に割り当てられた処理を該当コアのアドレス領域に定義する。 In the parallel processing application unit 1103, the core allocation for each control model 102 is based on the information of the usage model and core allocation list 501 generated by the feature model analysis unit 306, the calculation execution order definition 1001, and the usage processor information storage unit 1102. Information 502 is added. Specifically, the process assigned to each core is defined in the address area of the corresponding core based on the address allocation information defined for each microcomputer.

図12は、2コアのプロセッサに並列化した処理を割り当てた例を示す。図示の例は、ソフトウェア開発支援装置301で生成したプログラムを制御対象ECU50で実施する例を示す。 FIG. 12 shows an example in which parallel processing is assigned to a two-core processor. The illustrated example shows an example in which the program generated by the software development support device 301 is executed by the controlled object ECU 50.

制御対象ECU50は、デュアルコアのプロセッサ51と、RAM(Random access memory)52と、ROM(Read Only memory)53と図示しないインタフェースを有する。 The controlled ECU 50 has a dual-core processor 51, a RAM (Random access memory) 52, a ROM (Read Only memory) 53, and an interface (not shown).

ソフトウェア開発支援装置301で生成したプログラムはROM53に書き込まれ、RAM52にロードされてからプロセッサ51の第1コア52-1又は第2コア52-2で実行される。 The program generated by the software development support device 301 is written to the ROM 53, loaded into the RAM 52, and then executed by the first core 52-1 or the second core 52-2 of the processor 51.

第1コア52-1には、制御モデルA(102-A)と、制御モデルB(102-B)及び制御モデルC(102-C)の処理が割り当てられ、 第2コア52-2には、制御モデルE(102-E)及び制御モデルF(102-F)の処理が割り当てられる。 The first core 52-1 is assigned the processing of the control model A (102-A), the control model B (102-B), and the control model C (102-C), and the second core 52-2 is assigned. , Control model E (102-E) and control model F (102-F) are assigned.

このようにソフトウェア開発支援装置301は、制御モデル102の単位で第1コア52-1と第2コア52-2に処理を分割して割り当てを行う。本実施例のソフトウェア開発支援装置301を用いれば、特徴モデル101で表現された演算処理の依存関係を反映した並列化処理を自動的に生成することができる。 In this way, the software development support device 301 divides the processing into the first core 52-1 and the second core 52-2 in units of the control model 102 and allocates them. By using the software development support device 301 of this embodiment, it is possible to automatically generate a parallelization process that reflects the dependency of the arithmetic process expressed by the feature model 101.

以上、本開示の好ましい実施形態について説明した。 The preferred embodiments of the present disclosure have been described above.

こうして、本実施例では、ソフトウェア開発支援装置301へ入力された特徴モデル101から制御仕様を満たすプログラムを生成することができる。さらに、マルチコアプロセッサ向けの処理を生成することも可能となる。 In this way, in this embodiment, it is possible to generate a program satisfying the control specifications from the feature model 101 input to the software development support device 301. Furthermore, it is possible to generate processing for a multi-core processor.

この実施例は1つのコンピュータを用いて実行してもよいし、処理毎に異なるコンピュータを用いて実行しても構わない。あるいはインターネット等のネットワークで連携された複数のコンピュータ間で各工程の結果を送受信することでソフトウェア開発を実施するようにしてもよい。 This embodiment may be executed using one computer, or may be executed using a different computer for each process. Alternatively, software development may be carried out by transmitting and receiving the results of each process between a plurality of computers linked by a network such as the Internet.

<結び>
以上のように、上記実施例のソフトウェア開発支援装置301は、以下のような構成とすることができる。
<Conclusion>
As described above, the software development support device 301 of the above embodiment can be configured as follows.

(1)第1のプロセッサ(11)とメモリを有するソフトウェア開発支援装置(301)であって、制御モデル(102)の実行順序を含んでソフトウェアの制御仕様を記述した特徴モデル(101)を受け付けて、当該特徴モデル(101)を構成している制御モデル(102)を解析し、前記制御モデル(102)の演算周期と、前記制御モデル(102)の実行順序を解析して実行順序情報(演算実行順序リスト600)として出力する特徴モデル解析部(306)と、前記制御モデル(102)を受け付けて、前記制御モデル(102)の演算周期を含んでファイル名が当該制御モデル(102)と同一となるモデルソースを生成して、生成した前記モデルソースが前記制御モデル(102)の仕様と一致しているかをテストした後にモデルソース記憶部へ格納するモデルソース生成部(304)と、前記特徴モデル(101)から分析された前記制御モデル(102)と同名のモデルソースを前記モデルソース記憶部(305)から収集するモデルソース収集部(307)と、複数のコア(第1コア52-1、第2コア52-2)を有して前記ソフトウェアを実行する第2のプロセッサ(51)の情報を受け付けて、前記収集されたモデルソースに対して、前記ソフトウェアを前記複数のコア(51)の処理に最適化するために前記演算周期と実行順序情報(600)に基づいてコア毎の処理の割り当て情報を生成する並列処理生成部(309)と、を有することを特徴とするソフトウェア開発支援装置。 (1) A software development support device (301) having a first processor (11) and a memory, and accepts a feature model (101) that describes software control specifications including the execution order of the control model (102). Then, the control model (102) constituting the feature model (101) is analyzed, the calculation cycle of the control model (102) and the execution order of the control model (102) are analyzed, and the execution order information (execution order information ( The feature model analysis unit (306) that outputs as the calculation execution order list 600) and the control model (102) are received, and the file name includes the calculation cycle of the control model (102) and the file name is the control model (102). A model source generation unit (304) that generates the same model source, tests whether the generated model source matches the specifications of the control model (102), and then stores the model source in the model source storage unit, and the above. A model source collecting unit (307) that collects a model source having the same name as the control model (102) analyzed from the feature model (101) from the model source storage unit (305), and a plurality of cores (first core 52-). 1. The software is applied to the plurality of cores (51) with respect to the collected model source by receiving the information of the second processor (51) having the second core 52-2) and executing the software. ), A software development characterized by having a parallel processing generation unit (309) that generates processing allocation information for each core based on the calculation cycle and execution order information (600) in order to optimize the processing. Support device.

上記構成により、ソフトウェア開発支援装置301は、複数のコアを含むプロセッサ向けに最適化されたソフトウェアを開発することができる。 With the above configuration, the software development support device 301 can develop software optimized for a processor including a plurality of cores.

(2)上記(1)に記載のソフトウェア開発支援装置(301)であって、前記特徴モデル解析部(306)は、前記制御モデル(102)が使用する変数情報を抽出し、前記特徴モデル解析部(306)から前記制御モデル(102)の実行順序情報(600)と演算周期と変数情報を取得して、前記制御モデル(102)間で演算周期が異なる変数の接続処理を追加する接続処理追加部(308)と、前記接続処理追加部(308)及び前記並列処理生成部(309)の処理結果を適用された前記モデルソースをコンパイルするコンパイル部(311)と、前記コンパイルされたプログラムを出力するプログラム出力部(312)と、をさらに有することを特徴とするソフトウェア開発支援装置。 (2) In the software development support device (301) according to the above (1), the feature model analysis unit (306) extracts variable information used by the control model (102) and analyzes the feature model. Connection processing that acquires execution order information (600), calculation cycle, and variable information of the control model (102) from the unit (306), and adds connection processing of variables having different calculation cycles between the control models (102). An additional unit (308), a compile unit (311) that compiles the model source to which the processing results of the connection processing additional unit (308) and the parallel processing generation unit (309) are applied, and the compiled program. A software development support device further comprising a program output unit (312) for output.

上記構成により、ソフトウェア開発支援装置301は、ソースコードの収集から、演算の実行順序の設定、接続情報の設定、コンパイル、コア別の処理の割り当てを自動で実施できるので、設計作業の工数削減を図ることができる。 With the above configuration, the software development support device 301 can automatically perform the collection of source code, the setting of the execution order of operations, the setting of connection information, the compilation, and the allocation of processing for each core, thus reducing the man-hours for design work. Can be planned.

(3)上記(2)に記載のソフトウェア開発支援装置(301)であって、前記接続処理追加部(308)は、前記制御モデル(102)間で異なる演算周期で同一の変数を使用している制御モデル(102)を検出した場合に前記変数の接続処理のソースコードを生成することを特徴とするソフトウェア開発支援装置。 (3) In the software development support device (301) according to the above (2), the connection processing addition unit (308) uses the same variable in different calculation cycles between the control models (102). A software development support device characterized in that a source code for connection processing of the variable is generated when an existing control model (102) is detected.

上記構成により、ソフトウェア開発支援装置301は、異なる演算周期で同一変数を使用している制御モデル102間で変数を受け渡す接続処理を自動的に追加することが可能となる。 With the above configuration, the software development support device 301 can automatically add a connection process for passing variables between control models 102 that use the same variables in different calculation cycles.

(4)上記(2)に記載のソフトウェア開発支援装置であって、前記接続処理追加部(308)は、前記特徴モデル解析部(306)で解析された実行順序情報と演算周期と、前記接続処理追加部(308)で検索された変数の接続処理と、前記モデルソース収集部(307)で収集されたモデルソースに基づいて、演算周期毎の実行順序定義ファイルと、演算周期毎の変数情報受け渡し処理定義ファイルと、コンパイル時に使用するMAKEファイルと、を生成して、前記収集されたモデルソースへ追加することを特徴とするソフトウェア開発支援装置。 (4) In the software development support device according to (2) above, the connection processing addition unit (308) has the execution order information and the calculation cycle analyzed by the feature model analysis unit (306), and the connection. Based on the connection processing of the variables searched by the processing addition unit (308) and the model source collected by the model source collection unit (307), the execution order definition file for each operation cycle and the variable information for each operation cycle. A software development support device characterized in that a transfer process definition file and a MAKE file used at compile time are generated and added to the collected model source.

上記構成により、ソフトウェア開発支援装置301は、ソースコードの収集から、演算の実行順序の設定、接続情報の設定、コンパイル、コア別の処理の割り当てを自動で実施できるので、設計作業の工数削減を図ることができる。 With the above configuration, the software development support device 301 can automatically perform the collection of source code, the setting of the execution order of operations, the setting of connection information, the compilation, and the allocation of processing for each core, thus reducing the man-hours for design work. Can be planned.

なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に記載したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加、削除、又は置換のいずれもが、単独で、又は組み合わせても適用可能である。 The present invention is not limited to the above-described embodiment, and includes various modifications. For example, the above-described embodiment is described in detail in order to explain the present invention in an easy-to-understand manner, and is not necessarily limited to the one including all the configurations described. Further, it is possible to replace a part of the configuration of one embodiment with the configuration of another embodiment, and it is also possible to add the configuration of another embodiment to the configuration of one embodiment. Further, for a part of the configuration of each embodiment, any of addition, deletion, or replacement of other configurations can be applied alone or in combination.

また、上記の各構成、機能、処理部、及び処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、及び機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記録装置、又は、ICカード、SDカード、DVD等の記録媒体に置くことができる。 Further, each of the above configurations, functions, processing units, processing means and the like may be realized by hardware by designing a part or all of them by, for example, an integrated circuit. Further, each of the above configurations and functions may be realized by software by the processor interpreting and executing a program that realizes each function. Information such as programs, tables, and files that realize each function can be placed in a memory, a hard disk, a recording device such as an SSD (Solid State Drive), or a recording medium such as an IC card, an SD card, or a DVD.

また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。 In addition, the control lines and information lines indicate those that are considered necessary for explanation, and do not necessarily indicate all the control lines and information lines in the product. In practice, it can be considered that almost all configurations are interconnected.

101 特徴モデル
102-A~102-G 制御モデル
301 ソフトウェア開発支援装置
304 モデルソース生成部
305 モデルソース記憶部
306 特徴モデル解析部
307 モデルソース収集部
308 接続処理追加部
309 並列処理生成部
310 プロセッサ情報入力部
311 コンパイル部
312 プログラム出力部
501 使用モデル及びコア割り当てリスト
502 コア割り当て情報
600 演算実行順序リスト
701 変数接続処理定義
901 収集モデルソース一覧
904 MAKEファイル生成部
905 関数実行順序定義ファイル生成部
906 変数情報受け渡し処理定義ファイル生成部
907 接続処理適用部
1102使用プロセッサ情報保管部
1103並列化処理適用部
101 Feature model 102-A to 102-G Control model 301 Software development support device 304 Model source generation unit 305 Model source storage unit 306 Feature model analysis unit 307 Model source collection unit 308 Connection processing addition unit 309 Parallel processing generation unit 310 Processor information Input unit 311 Compile unit 312 Program output unit 501 Used model and core allocation list 502 Core allocation information 600 Operation execution order list 701 Variable connection processing definition 901 Collection model source list 904 MAKE file generation unit 905 Function execution order definition file generation unit 906 Variable Information transfer processing definition file generation unit 907 Connection processing application unit 1102 Used processor Information storage unit 1103 Parallelization processing application unit

Claims (8)

第1のプロセッサとメモリを有するソフトウェア開発支援装置であって、
制御モデルの実行順序を含んでソフトウェアの制御仕様を記述した特徴モデルを受け付けて、当該特徴モデルを構成している制御モデルを解析し、前記制御モデルの演算周期と、前記制御モデルの実行順序を解析して実行順序情報として出力する特徴モデル解析部と、
前記制御モデルを受け付けて、前記制御モデルの演算周期を含んでファイル名が当該制御モデルと同一となるモデルソースを生成して、生成した前記モデルソースが前記制御モデルの仕様と一致しているかをテストした後にモデルソース記憶部へ格納するモデルソース生成部と、
前記特徴モデルから分析された前記制御モデルと同名のモデルソースを前記モデルソース記憶部から収集するモデルソース収集部と、
複数のコアを有して前記ソフトウェアを実行する第2のプロセッサの情報を受け付けて、前記収集されたモデルソースに対して、前記ソフトウェアを前記複数のコアの処理に最適化するために前記演算周期と実行順序情報に基づいてコア毎の処理の割り当て情報を生成する並列処理生成部と、
を有することを特徴とするソフトウェア開発支援装置。
A software development support device with a first processor and memory,
It accepts a feature model that describes software control specifications, including the execution order of the control model, analyzes the control model that constitutes the feature model, and determines the calculation cycle of the control model and the execution order of the control model. A feature model analysis unit that analyzes and outputs as execution order information,
The control model is accepted, a model source having the same file name as the control model including the calculation cycle of the control model is generated, and whether the generated model source matches the specifications of the control model. A model source generator that is stored in the model source storage after testing, and a model source generator
A model source collecting unit that collects a model source having the same name as the control model analyzed from the feature model from the model source storage unit, and a model source collecting unit.
The calculation cycle for optimizing the software for processing of the plurality of cores with respect to the collected model source by receiving the information of the second processor having the plurality of cores and executing the software. And a parallel processing generator that generates processing allocation information for each core based on execution order information,
A software development support device characterized by having.
請求項1に記載のソフトウェア開発支援装置であって、
前記特徴モデル解析部は、前記制御モデルが使用する変数情報を抽出し、
前記特徴モデル解析部から前記制御モデルの実行順序情報と演算周期と変数情報を取得して、前記制御モデル間で演算周期が異なる変数の接続処理を追加する接続処理追加部と、
前記接続処理追加部及び前記並列処理生成部の処理結果を適用された前記モデルソースをコンパイルするコンパイル部と、
前記コンパイルされたプログラムを出力するプログラム出力部と、
をさらに有することを特徴とするソフトウェア開発支援装置。
The software development support device according to claim 1.
The feature model analysis unit extracts variable information used by the control model and obtains it.
A connection processing addition unit that acquires execution order information, calculation cycle, and variable information of the control model from the feature model analysis unit and adds connection processing for variables having different calculation cycles between the control models.
A compiling unit that compiles the model source to which the processing results of the connection processing addition unit and the parallel processing generation unit are applied.
The program output section that outputs the compiled program and
A software development support device characterized by having more.
請求項2に記載のソフトウェア開発支援装置であって、
前記接続処理追加部は、
前記制御モデル間で異なる演算周期で同一の変数を使用している制御モデルを検出した場合に前記変数の接続処理のソースコードを生成することを特徴とするソフトウェア開発支援装置。
The software development support device according to claim 2.
The connection processing addition part is
A software development support device characterized in that a source code for connection processing of the variables is generated when a control model using the same variable is detected in different calculation cycles between the control models.
請求項2に記載のソフトウェア開発支援装置であって、
前記接続処理追加部は、前記特徴モデル解析部で解析された実行順序情報と演算周期と、前記接続処理追加部で追加された変数の接続処理と、前記モデルソース収集部で収集されたモデルソースに基づいて、演算周期毎の実行順序定義ファイルと、演算周期毎の変数情報受け渡し処理定義ファイルと、コンパイル時に使用するMAKEファイルと、を生成して、前記収集されたモデルソースへ追加することを特徴とするソフトウェア開発支援装置。
The software development support device according to claim 2.
The connection processing addition unit includes the execution order information and the calculation cycle analyzed by the feature model analysis unit, the connection processing of the variables added by the connection processing addition unit, and the model source collected by the model source collection unit. Based on, the execution order definition file for each calculation cycle, the variable information transfer processing definition file for each calculation cycle, and the MAKE file used at compile time are generated and added to the collected model source. Characterized software development support device.
第1のプロセッサとメモリを有する計算機でソフトウェアの開発を支援するソフトウェア開発支援方法であって、
前記計算機が、制御モデルの実行順序を含んでソフトウェアの制御仕様を記述した特徴モデルを受け付けて、当該特徴モデルを構成している制御モデルを解析し、前記制御モデルの演算周期と、前記制御モデルの実行順序を解析して実行順序情報として出力する特徴モデル解析ステップと、
前記計算機が、前記制御モデルを受け付けて、前記制御モデルの演算周期を含んでファイル名が当該制御モデルと同一となるモデルソースを生成して、生成した前記モデルソースが前記制御モデルの仕様と一致しているかをテストした後にモデルソース記憶部へ格納するモデルソース生成ステップと、
前記計算機が、前記特徴モデルから分析された前記制御モデルと同名のモデルソースを前記モデルソース記憶部から収集するモデルソース収集ステップと、
前記計算機が、複数のコアを有して前記ソフトウェアを実行する第2のプロセッサの情報を受け付けて、前記収集されたモデルソースに対して、前記ソフトウェアを前記複数のコアの処理に最適化するために前記演算周期と実行順序情報に基づいてコア毎の処理の割り当て情報を生成する並列処理生成ステップと、
を含むことを特徴とするソフトウェア開発支援方法。
It is a software development support method that supports software development with a computer having a first processor and memory.
The computer accepts a feature model that describes software control specifications including the execution order of the control model, analyzes the control model that constitutes the feature model, and analyzes the calculation cycle of the control model and the control model. Feature model analysis step that analyzes the execution order of and outputs it as execution order information,
The computer accepts the control model, generates a model source having the same file name as the control model including the calculation cycle of the control model, and the generated model source is one with the specifications of the control model. A model source generation step to store in the model source storage after testing whether it is done,
A model source collection step in which the computer collects a model source having the same name as the control model analyzed from the feature model from the model source storage unit.
In order for the computer to receive information from a second processor having a plurality of cores and executing the software, and optimizing the software for processing of the plurality of cores for the collected model source. A parallel processing generation step that generates processing allocation information for each core based on the calculation cycle and execution order information,
A software development support method characterized by including.
請求項5に記載のソフトウェア開発支援方法であって、
前記特徴モデル解析ステップは、前記制御モデルが使用する変数情報を抽出し、
前記計算機が、前記制御モデルの実行順序情報と演算周期と変数情報を取得して、前記制御モデル間で演算周期が異なる変数の接続処理を追加する接続処理追加ステップと、
前記計算機が、前記接続処理追加ステップ及び前記並列処理生成ステップの処理結果が適用された前記モデルソースをコンパイルするコンパイルステップと、
前記計算機が、前記コンパイルされたプログラムを出力するプログラム出力ステップと、
をさらに含むことを特徴とするソフトウェア開発支援方法。
The software development support method according to claim 5.
In the feature model analysis step, the variable information used by the control model is extracted.
A connection processing addition step in which the computer acquires execution order information, calculation cycle, and variable information of the control model and adds connection processing of variables having different calculation cycles between the control models.
A compile step in which the computer compiles the model source to which the processing results of the connection processing addition step and the parallel processing generation step are applied.
A program output step in which the calculator outputs the compiled program,
A software development support method characterized by further including.
請求項6に記載のソフトウェア開発支援方法であって、
前記接続処理追加ステップは、
前記制御モデル間で異なる演算周期で同一の変数を使用している制御モデルを検出した場合に前記変数の接続処理のソースコードを生成することを特徴とするソフトウェア開発支援方法。
The software development support method according to claim 6.
The connection processing addition step is
A software development support method comprising generating a source code for connection processing of the variables when a control model using the same variable is detected between the control models in different operation cycles.
請求項6に記載のソフトウェア開発支援方法であって、
前記接続処理追加ステップは、前記特徴モデル解析ステップで解析された実行順序情報と演算周期と、前記接続処理追加ステップで追加された変数の接続処理と、前記モデルソース収集ステップで収集されたモデルソースに基づいて、演算周期毎の実行順序定義ファイルと、演算周期毎の変数情報受け渡し処理定義ファイルと、コンパイル時に使用するMAKEファイルと、を生成して、前記収集されたモデルソースへ追加することを特徴とするソフトウェア開発支援方法。
The software development support method according to claim 6.
The connection processing addition step includes the execution order information and the calculation cycle analyzed in the feature model analysis step, the connection processing of the variables added in the connection processing addition step, and the model source collected in the model source collection step. Based on, the execution order definition file for each calculation cycle, the variable information transfer processing definition file for each calculation cycle, and the MAKE file used at compile time are generated and added to the collected model source. Characteristic software development support method.
JP2020112276A 2020-06-30 2020-06-30 Software development support device and software development support method Active JP7385536B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2020112276A JP7385536B2 (en) 2020-06-30 2020-06-30 Software development support device and software development support method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020112276A JP7385536B2 (en) 2020-06-30 2020-06-30 Software development support device and software development support method

Publications (2)

Publication Number Publication Date
JP2022011264A true JP2022011264A (en) 2022-01-17
JP7385536B2 JP7385536B2 (en) 2023-11-22

Family

ID=80148059

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020112276A Active JP7385536B2 (en) 2020-06-30 2020-06-30 Software development support device and software development support method

Country Status (1)

Country Link
JP (1) JP7385536B2 (en)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012208843A (en) 2011-03-30 2012-10-25 Keihin Corp Development support device
JP5911044B1 (en) 2015-07-10 2016-04-27 三菱電機株式会社 Program generating apparatus and method thereof

Also Published As

Publication number Publication date
JP7385536B2 (en) 2023-11-22

Similar Documents

Publication Publication Date Title
JP4629768B2 (en) Parallelization processing method, system, and program
US11221834B2 (en) Method and system of intelligent iterative compiler optimizations based on static and dynamic feedback
JP4931978B2 (en) Parallelization processing method, system, and program
JP5209059B2 (en) Source code processing method, system, and program
JP4886838B2 (en) Parallelization method, system, and program
CN111796831B (en) Compiling method and device for multi-chip compatibility
JP2007528059A (en) Systems and methods for software modeling, abstraction, and analysis
JP6021342B2 (en) Parallelization method, system, and program
JP5479942B2 (en) Parallelization method, system, and program
Siracusa et al. A cad-based methodology to optimize hls code via the roofline model
US10380313B1 (en) Implementation and evaluation of designs for heterogeneous computing platforms with hardware acceleration
Banerjee et al. A highly configurable hardware/Software stack for DNN inference acceleration
Panadero et al. A tool for selecting the right target machine for parallel scientific applications
US10528691B1 (en) Method and system for automated selection of a subset of plurality of validation tests
CN116228515A (en) Hardware acceleration system, method and related device
JP7385536B2 (en) Software development support device and software development support method
JP4870956B2 (en) Embedded program generation method, embedded program development system, and information table section
US11514219B1 (en) System and method for assertion-based formal verification using cached metadata
JP7410269B2 (en) Automated verification of high-level construct optimization using test vectors
Harrison et al. Tools for multiple-CPU environments
JP5056493B2 (en) Virtual software generator
Bartsch et al. Efficient SAT/simulation-based model generation for low-level embedded software.
Ittershagen et al. A workload extraction framework for software performance model generation
JP2018147114A (en) Test case generation method, computer, and program
JP2024011231A (en) Software creation system, and software creation method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20221121

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20231012

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20231017

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20231110

R150 Certificate of patent or registration of utility model

Ref document number: 7385536

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150