JP2003296111A - プログラム生成装置 - Google Patents

プログラム生成装置

Info

Publication number
JP2003296111A
JP2003296111A JP2002095892A JP2002095892A JP2003296111A JP 2003296111 A JP2003296111 A JP 2003296111A JP 2002095892 A JP2002095892 A JP 2002095892A JP 2002095892 A JP2002095892 A JP 2002095892A JP 2003296111 A JP2003296111 A JP 2003296111A
Authority
JP
Japan
Prior art keywords
control
program
code
control code
processing
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.)
Pending
Application number
JP2002095892A
Other languages
English (en)
Inventor
Yoshitaka Uematsu
義貴 植松
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.)
Denso Corp
Original Assignee
Denso Corp
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 Denso Corp filed Critical Denso Corp
Priority to JP2002095892A priority Critical patent/JP2003296111A/ja
Publication of JP2003296111A publication Critical patent/JP2003296111A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

(57)【要約】 【課題】複数の制御コードを、処理速度や記憶容量等の
条件に従って選択してプログラムを生成するプログラム
生成装置を構築すること。 【解決手段】制御仕様1からプログラムを生成するに際
し、複数の制御コードから条件を満たす制御コードを選
択してプログラムを生成する。制御コード選択条件2
は、各制御部分の処理優先度と処理頻度、生成されるプ
ログラムの処理速度と記憶容量が条件となる。処理速度
が要求される場合は、インライン展開の制御コードが選
択され、プログラム容量を優先させる場合は、サブルー
チンの制御コードが選択される。プログラム生成ルーチ
ン5aは、選択された制御コードからプログラムを生成
する。飽和演算を含む制御仕様に対して本装置を適用
し、有効性を示した。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、例えば車載制御装
置のプログラムの生成に適用されるものであり、設定入
力される制御仕様および選択条件に基づいて、事前に用
意された複数の制御コードの中から選択条件に適合する
制御コードを選択するようにし、プログラムの生成効率
を向上できるプログラム生成装置に関する。
【0002】
【従来の技術】従来、車両を制御するためのプログラム
を生成する方法としては、例えば特開平2000−20
291号公報に開示された技術のように、種々の技術が
知られている。そして、かかる技術において、プログラ
ムをECU内のロム等に格納する際に、ロム等の容量に
制限がある場合には、プログラムの中で共通の処理が複
数箇所存在する部分をサブルーチン化して、プログラム
の容量(プログラムコードサイズ)を低減するようにし
ていた。
【0003】
【発明が解決しようとする課題】しかしながら、上記従
来の技術では、制御仕様の一動作における処理頻度や処
理優先度を考慮していないため、以下に示す問題が生じ
ている。
【0004】これは、プログラムを実行するに際してサ
ブルーチンを読み出す場合には、レジスタやプログラム
カウンタ等のデータを退避、復帰させる動作に時間を要
するといったいわゆるオーバーヘッドモジュールが生じ
るため、処理頻度の高い処理や優先度の高い処理のよう
に、処理速度が要求される処理の実行に十分に対処しき
れないといった問題である。
【0005】特に車両のエンジン制御においては、エン
ジン制御用ECUの制御プログラム(以下、制御プログ
ラムとする)の記憶容量はコスト等の制約から、できる
だけ小さくすることが要求される。その一方、種々の車
両の状態に適したエンジン制御を行うために、エンジン
制御用ECUは制御プログラムを予め決められたタイミ
ングで(≒リアルタイムで)処理を完了することが要求
される。さらに、制御プログラムは複数の制御が集約さ
れたプログラムであるため、制御プログラム中の個々の
処理は、処理速度や処理優先度を考慮して処理する必要
がある。このような要求を満たすようなプログラムを開
発するには非常に工数がかかり、開発効率の向上を妨げ
る要因となる。
【0006】本発明は、上記問題に鑑み成されたもので
あり、開発効率の向上を妨げることなく、記憶容量の低
減を図りつつ、制御仕様の任意の一動作における処理の
高速化を図ることが可能なプログラム生成装置を提供す
ることを目的とする。
【0007】
【課題を解決するための手段】上記目的を達成するため
に、請求項1に記載のプログラム生成装置は、制御仕様
および選択条件を入力する入力手段と、制御仕様に基づ
いたプログラムを生成するプログラム生成手段と、複数
の制御コードを記憶するコード記憶手段と、プログラム
生成手段の要求に応じて、制御仕様の一動作に対応する
制御コードをコード記憶手段内から選択し、プログラム
生成手段に提供するコード選択手段と、プログラム生成
手段が生成したプログラムを出力するプログラム出力手
段とを備え、コード記憶手段は、制御仕様の一動作に対
応する制御コードを複数個有し、コード選択手段は、入
力された選択条件に従って、複数個の制御コードの中か
ら、プログラム生成に必要な制御コードを選択すること
を特徴とする。
【0008】これにより、プログラム生成装置は、ユー
ザが入力した制御仕様と選択条件に基づいて、制御仕様
の一動作に対応する複数の制御コードの中から、生成プ
ログラムに適用する制御コードを選択することにより、
ユーザの要求する条件を満足するプログラムを生成する
ことができる。
【0009】請求項2に記載のプログラム生成装置は、
コード選択手段が制御仕様における一動作の処理頻度を
選択条件として、制御コードを選択することを特徴とす
る。特に制御仕様における一動作の処理頻度が高い場
合、その一動作に対応する制御コードを頻繁に処理する
こととなるため、その一動作に対して選択する制御コー
ドによって、プログラムの処理速度が大きく変化する。
このため、処理頻度を考慮して制御コードを選択するこ
とにより、例えばリアルタイム性が求められる処理を含
むエンジン制御を好適に行うことができるプログラムを
生成することができる。
【0010】その具体例として、請求項3に記載のよう
に、コード選択手段は、制御仕様において処理頻度が高
い一動作には、インライン展開による処理を指示する制
御コードを選択し、制御仕様において処理頻度が低い一
動作には、サブルーチンによる処理を指示する制御コー
ドを選択することが望ましい。このように、制御仕様に
おいて処理頻度が高い一動作に対してインライン展開に
よる処理を指示する制御コードを選択すると、レジスタ
やプログラムカウンタ等のデータを退避、復帰させる動
作に時間を要するといったいわゆるオーバーヘッドモジ
ュールが発生せず、高速な処理が可能となる。また、制
御仕様において処理頻度が低い一動作に対して、サブル
ーチンによる処理を指示する制御コードを選択すること
により、インライン展開処理を指示する制御コードでプ
ログラムを生成した場合と比較して、記憶容量が低減さ
れる。これにより、処理速度の高速化と記憶容量の低減
とのトレードオフが好適に行いえるため、例えばエンジ
ン制御プログラムを生成する場合、処理の高速化と記憶
容量の低減との要求をともに満足させることができる。
【0011】また、請求項4に記載のように、コード選
択手段は、制御仕様における一動作の処理優先度を選択
条件として、制御コードを選択してもよい。処理優先度
の高い制御仕様の一動作に対応する制御コードは、それ
よりも処理優先度の低い一動作に対応する制御コードに
優先して処理される。従って、特に処理優先度の高い制
御仕様の一動作に対して付与する制御コードによって、
プログラム全体の処理速度が大きく変化する。
【0012】その具体例として、請求項5に記載のよう
に、コード選択手段は、制御仕様において処理優先度が
高い一動作には、インライン展開による処理を指示する
制御コードを選択し、制御仕様において処理優先度が低
い一動作には、サブルーチンによる処理を指示する制御
コードを選択することが望ましい。このように、制御仕
様において処理優先度が高い一動作に対しては、インラ
イン展開による処理を指示する制御コードを選択して処
理の高速化を図り、処理優先度が低い一動作には、サブ
ルーチンによる処理を指示するコードを選択して記憶容
量の低減を図るのである。
【0013】本プログラム生成装置は、車両のエンジン
制御プログラムを生成するために好適に用いることがで
きる。自動車のエンジン制御用ECUの制御プログラム
は、リアルタイムな処理が要求され、かつ、制御プログ
ラム中の個々の処理は、処理速度や処理優先度を考慮し
て処理する必要がある。そのため、本プログラム生成装
置によって制御プログラムを生成することで、開発効率
の向上を妨げることなく、記憶容量の低減を図りつつ制
御仕様の一動作に応じて処理の高速化を図ることが可能
となるためである。
【0014】
【発明の実施の形態】まず、本実施形態を展開する上で
の背景として、車載ECUに用いられるROM(EEP
ROMやフラッシュメモリも含む広い意味の固定メモ
リ)の記憶容量には制限があるため、制御プログラムを
このROMに記憶させるROM効率と、この制御プログ
ラムによって期待されるECUの処理速度とはトレード
オフ(相反する)関係がある。そこで、両者を考慮して
いかにバランスよく制御プログラムを生成するかが、要
求されている。
【0015】図1は、本発明の一実施形態における全体
構成を示すブロック図である。
【0016】制御仕様としては、本実施形態では、自動
車などの車両の内燃機関制御装置(ECU)の制御仕様
1を適用する。上述の制御仕様1は、ユーザによって記
述されたブロック図と属性データからなる。ブロック図
は、制御仕様1の制御の流れとデータの流れについて記
述したものであり、属性データは、制御仕様1の各制御
部分に関する処理優先度や処理頻度について記述したも
のである。
【0017】制御コード選択条件2としては、本実施形
態では、図2で示すように、生成されるプログラムのプ
ログラム容量と記憶容量との条件、生成されたプログラ
ムの処理速度とプログラム容量との条件、制御仕様1の
各制御部分における処理頻度と処理優先度との条件とし
た。また、各条件には優先関係が設けられている。
【0018】入力機器として、本実施形態では、キーボ
ード3とマウス4を適用する。ユーザは、キーボード3
とマウス4によって、プログラム生成ルーチン5aへ入
力する制御仕様1と制御コード選択条件2を指定する。
【0019】プログラム生成装置5は、本実施形態では
パソコン6を用いて構成される。
【0020】プログラム生成ルーチン5aは、ユーザが
キーボード3とマウス4で記述した制御仕様1を読み込
んで、制御仕様1のブロック図に記述されている各ブロ
ックに対応する制御コードを、制御コード選択ルーチン
5bに要求する。また、制御コード選択ルーチン5bが
選択した制御コードを受け取り、制御仕様1のプログラ
ムを生成し、プログラム出力ルーチン5cへ出力する。
【0021】制御コード選択ルーチン5bは、ユーザが
キーボード3とマウス4で記述した制御コード選択条件
2を読み込み、処理頻度と処理優先度のうち、優先する
項目をプログラム生成ルーチン5aへ通知する。また、
制御コード選択ルーチン5bは上述の制御コード選択条
件2に基づいて、制御コード記憶ファイル5dに記憶さ
れた複数の制御コードから、条件に適合する制御コード
を選択し、プログラム生成ルーチン5aへ出力すること
も行う。
【0022】プログラム出力ルーチン5cは、プログラ
ム生成ルーチン5aが生成した制御仕様1のプログラム
を受け取り、プログラム生成装置5の外部へ出力する。
【0023】制御コード記憶ファイル5dは、複数の制
御コードを記憶しており、制御コード選択ルーチン5c
の指示に従って、制御コードを制御コード選択ルーチン
5cへ出力する。
【0024】パソコン6は、内部にプログラム生成装置
5を持ち、プログラム生成装置5の各ルーチンを実行す
る。
【0025】次に、プログラム生成装置5が制御仕様1
と制御コード選択条件2を読み込んで、プログラムを出
力するまでの一連の流れを説明する。
【0026】はじめに、ユーザは制御仕様1と制御コー
ド選択条件2をパソコン6に入力する。制御仕様1と制
御コード選択条件2の入力に際しては、キーボード2や
マウス3を用いる。
【0027】パソコン6に入力された制御仕様1は、プ
ログラム生成ルーチン5aへ読み込まれ、制御コード選
択条件2は、制御コード選択ルーチン5cへ読み込まれ
る。
【0028】制御コード選択ルーチン5bは、読み込ん
だ制御コード選択条件2から、処理優先度と処理頻度の
どちらが優先となっているかを、プログラム生成ルーチ
ン5aへ通知する。
【0029】プログラム生成ルーチン5aは、この通知
に基づいて、制御仕様1のブロック図に記述されている
各ブロックに対する制御コードを、制御コード選択ルー
チン5bへ要求する。
【0030】制御コード選択ルーチン5cは、プログラ
ム生成ルーチン5aからの要求に対して、制御データ記
憶ファイル5dに記憶された複数の制御コードから、制
御コード選択条件2に適合する制御コードを選択し、プ
ログラム生成ルーチン5bへ出力する。
【0031】プログラム生成ルーチン5aは、制御コー
ド選択ルーチン5bから転送された制御コードを用い
て、制御仕様1のプログラムを生成する。
【0032】なお、プログラム生成ルーチン5aにおけ
るプログラムの生成方法は、従来と同じ生成方法でよい
ため、説明を省略する。
【0033】図3は、制御仕様に含まれる各ブロックに
対して、制御コードを選択する際のフローチャートであ
る。
【0034】ステップS301では、プログラム生成ル
ーチン5aは、ユーザが作成した制御仕様1を読み込
む。
【0035】ステップS302では、制御コード選択ル
ーチン5bは、ユーザが設定した制御コード選択条件2
を読み込み、処理優先度と処理頻度のどちらが優先とな
っているかを、プログラム生成ルーチン5aへ通知す
る。
【0036】ステップS303では、プログラム生成ル
ーチン5aは、ステップS301で読み込んだ制御仕様
1のブロック図と、ステップS302で制御コード選択
ルーチン5bから受け取った通知に基づいて、制御コー
ド選択ルーチン5bへ制御コードを要求するブロックを
決定し、当該ブロックの制御コードを要求する。
【0037】ステップS304では、制御コード選択ル
ーチン5bは、上記ステップで要求されたブロックに対
応する複数の制御コードのうち、制御コード選択条件2
に設定された処理優先度と処理頻度うち、優先となって
いる方に、より適合する制御コードを、制御コード記憶
ファイル5dから読み出す。
【0038】ステップS305では、制御コード選択ル
ーチン5bは、上記ステップで読み出した制御コードが
制御コード選択条件2を満たしているかを判定する。制
御コード選択条件2を満たしていれば、ステップS30
6へ進む。制御コード選択条件2を満たしていない場合
は、ステップS304に戻り、制御コード記憶ファイル
5dから新たな制御コードを一つ読み出して判定を繰り
返す。
【0039】ステップS306では、ステップS304
で取り出した制御コードを、生成するプログラムに適用
する制御コードとして選択する。
【0040】ステップS307では、制御仕様1のブロ
ック図に含まれる全てのブロックに対して、制御コード
を選択したかを判定する。全てのブロックに対して制御
コードを選択したら、制御コード選択ルーチンの処理を
終了する。もし、まだ制御コードを選択していないブロ
ックがあれば、ステップS303へ戻り、処理を続行す
る。
【0041】こうして、プログラム生成装置5は、ユー
ザが設定した制御コード選択条件2(例えば、図2)に
基づいて、制御仕様1の一動作に対応する複数の制御コ
ードから、制御コード選択条件2をより多く満たす制御
コードを選択し、プログラムを生成する。以上から、プ
ログラム生成装置5は、プログラムの生成に際し処理速
度を優先させたり、記憶容量を優先させたりすることが
可能となる。
【0042】図4は、本実施形態に適用した制御仕様を
示す図である。
【0043】制御仕様1は3つの制御部分からなり、各
制御部分は一定時間が経過するごとに呼び出され、それ
ぞれ制御を行う。上述の各制御部分は、いずれも飽和演
算を行うブロックSを含んでいる。飽和演算とは、入力
されたデータの値が、事前に設定された上限値を上回っ
たり、下限値を下回ったりした場合に、当該データの値
を上限値もしくは下限値に置き換える演算である。そし
て、各制御部分にはそれぞれ属性データが付加されてい
る。属性データは、各制御部分の処理優先度と処理頻度
からなり、処理優先度は1〜10までの整数値で表現さ
れ、処理頻度はms単位の数値で表現される。処理優先
度は、値が小さいほど制御に関する優先度が高いことを
示す。処理頻度は、各制御部分がいったん制御を行った
後、次に制御を開始するまでの時間間隔を示している。
【0044】制御仕様A41は、ブロックM1からの出
力データc1と、ブロックM2からの出力データc2に
対して、それぞれ飽和演算を行う。そして、出力データ
c1sとc2sを加算して、制御データcaを出力す
る。制御仕様A41の属性データ42は、処理優先度が
1、処理頻度が4msである。
【0045】制御仕様B43は、ブロックM3からの出
力データc3に対して飽和演算を行い、制御データcb
を出力する。制御仕様B43の属性データ44は、処理
優先度が1、処理頻度が8msである。
【0046】制御仕様C45は、ブロックM4からの出
力データc4と、ブロックM5からの出力データc5に
対して、それぞれ飽和演算を行う。そして、出力データ
c4sとc5sを加算して、制御データccを出力す
る。制御仕様C45の属性データ46は、処理優先度が
2、処理頻度が64msである。
【0047】なお、本実施形態では、制御仕様1の各制
御部分に含まれる飽和演算ブロックのみに対して、制御
コードの選択を行うものとする。
【0048】図5は、制御コード記憶ファイル5dに記
憶された、飽和演算ブロックに対応する複数の制御コー
ドである。
【0049】制御コード51は飽和演算をインライン展
開で記述した制御コードである。ここでインライン展開
とは、サブルーチン呼び出しをせずに、該当プログラム
コードを処理関数内に直接記述することである。一般的
に、サブルーチンの呼び出しに通常使われるサブルーチ
ンジャンプ命令などが不要になり、レジスタやプログラ
ムカウンタ等のデータの退避や、退避したデータの復帰
等のオーバーヘッドが削除されることで、その分高速な
コードが得られるプログラム方法である。本コードを選
択した場合は、各制御部分の飽和演算ブロックに制御コ
ードが直接展開されることとなるため、処理速度を向上
させることができる。ただし、展開した制御コードを他
の制御部分に含まれる飽和演算ブロックと共用すること
ができないため、プログラム容量は増加する。
【0050】制御コード52は飽和演算をサブルーチン
で記述した制御コードである。本コードを選択した場合
は、制御コードは各制御部分の飽和演算ブロックに直接
展開されず、外部にサブルーチンとして展開される。そ
のため、当該制御コードは他の制御部分の飽和演算ブロ
ックと共用することができ、プログラム容量を低減する
ことができる。ただし、各制御部分における当該部分の
処理に際しては、サブルーチン呼び出しとなるため、レ
ジスタやプログラムカウンタ等のデータの退避や、退避
したデータの復帰等のオーバーヘッドが発生するため、
インライン展開の制御コードを適用した場合と比較し
て、処理速度は低下する。
【0051】制御コード53は上記制御コード52が選
択された場合に、サブルーチンとして外部に展開される
処理内容であり、制御コード51と全く同じ処理内容と
なっている。
【0052】次に、本実施形態において、制御コード選
択条件2に設定する選択条件について説明する(図
2)。
【0053】プログラム容量に対する条件は、所定の容
量を超えないものとした。生成されたプログラムにおけ
る飽和演算処理のための容量は、上記で設定された容量
を超えることはできない。生成されるプログラムにおけ
る飽和演算処理のための容量は、実際にプログラムを生
成する前に試算することが可能である。
【0054】処理速度に対する条件は、できる限り速く
処理することとした。また、処理速度に対する条件は、
プログラム容量に対する条件に対して優先させるものと
した。
【0055】さらに、各制御部分における処理頻度と処
理優先度では、処理優先度を優先するものとし、処理優
先度の高い制御部分から制御コードの選択を行うものと
した。処理優先度が同等の制御部分に対しては、処理頻
度の高いものから、制御コードの選択を行うものとし
た。
【0056】なお、これらの条件には優先関係があり、
優先度の高い条件を満たさずに、優先度の低い条件を満
たすような制御コードは、選択されないものとした。
【0057】図6は、本実施形態において、制御仕様に
含まれる飽和演算ブロックに対する制御コードを選択す
るフローチャートである。
【0058】ステップS601では、プログラム生成ル
ーチン5aは、制御仕様1を読み込む。制御仕様1は、
図4で示したブロック図に含まれる3つの制御部分A、
制御部分B、制御部分Cからなる。
【0059】ステップS602では、制御コード選択ル
ーチン5bは、制御コード選択条件2を読み込む。本実
施形態では、生成されるプログラムの処理速度とプログ
ラム容量とでは、処理速度を優先する。各制御部分の処
理優先度と処理頻度では、処理優先度を優先する。ただ
し、飽和演算に使用できるプログラム容量は、所定の記
憶容量を越えることはできない。本実施形態では、飽和
演算処理に対して100バイトの記憶容量が使用可能で
あるとした。
【0060】飽和演算ブロックに対してインライン展開
の制御コードを選択すると、20バイトの記憶容量が必
要となる。一方、サブルーチンの制御コードを選択する
と、サブルーチンの呼び出しのために5バイト、サブル
ーチンの制御コードに20バイトの記憶容量が必要とな
る。ただし、サブルーチンの制御コードは各制御部分の
外部に展開されるため、複数のブロックでサブルーチン
の制御コードを選択した場合は、サブルーチンの制御コ
ード本体は1個しか生成されず、サブルーチンの呼び出
しコードは選択した制御コードの数だけ生成される。こ
れより、複数のサブルーチンの制御コードを選択した場
合は、サブルーチンの制御コードが1つ増加しても、必
要となる記憶容量は5バイトづつしか増加しない。な
お、本実施形態では、はじめに全ての飽和演算ブロック
にサブルーチンの制御コードを選択した場合のプログラ
ム容量を計算しておく。プログラム容量は、45バイト
となる。
【0061】ステップS603では、プログラム生成ル
ーチン5aは、制御仕様1の各制御部分に対して、処理
優先度の高い制御部分から順に飽和演算ブロックを取り
出し、当該ブロックの制御コードを制御コード選択ルー
チン5bへ要求する。要求する飽和演算ブロックの選択
にあたっては、まず、処理優先度の最も高い制御部分A
と制御部分Bの飽和演算ブロックが候補となる。しか
し、処理頻度は制御部分Bよりも制御部分Aの方が高い
ため、最初に取り出されるのは制御部分Aの飽和演算ブ
ロックとなる。
【0062】ステップS604では、制御コード選択ル
ーチン5bは、制御部分Aの飽和演算ブロックに対する
制御コードを選択し、制御コード選択条件2を満たすか
どうかの判定を行う。制御コード選択条件2において、
プログラム容量よりも処理速度が優先されているため、
インライン展開した制御コードを選択できるかどうかを
試算する。制御部分Aの1個目の飽和演算ブロックに対
して、インライン展開した制御コードを選択すると、必
要となる記憶容量は15バイト増加する。現在のプログ
ラムのプログラム容量を15バイト増加した結果、飽和
演算処理に使用できる記憶容量の100バイトを超えて
いなければ、ステップS605へ進む。もし超えてしま
った場合は、ステップS607へ進む。
【0063】ステップS605では、制御コード選択ル
ーチン5bは、インライン展開の制御コードを選択し、
これを飽和演算ブロックに対する制御コードとする。
【0064】ステップS606では、制御コード選択ル
ーチン5bは、インライン展開の制御コード選択による
プログラム容量増加分として、15バイトを加算する。
【0065】ステップS607では、制御コード選択ル
ーチン5bは、サブルーチンの制御コードを選択し、こ
れを飽和演算ブロックに対する制御コードとする。本実
施形態では、ステップS602において、最初に全ての
飽和演算ブロックにサブルーチンの制御コードを適用し
た場合のプログラム容量を算出してあるため、ここでは
プログラム容量の増加はない。
【0066】ステップS608では、プログラム生成ル
ーチン5aは、制御仕様1に含まれる全ての飽和演算ブ
ロックに対して、制御コードを選択したかを確認する。
全てのブロックに対して、制御コードを選択したら、処
理を終了する。そうでない場合は、ステップS603へ
戻り、処理を続行する。
【0067】図7は、本実施形態において、生成された
プログラムにおける各制御部分の制御関数である。
【0068】制御関数71は、制御部分Aに該当する制
御関数である。制御部分Aは他の制御部分よりも処理優
先度が高く、処理頻度も高いため、含まれている飽和演
算ブロックは全てインライン展開の制御コードが選択さ
れている。
【0069】制御関数72は、制御部分Bに該当する制
御関数である。制御部分Bは処理優先度に関しては制御
部分Aと同じであるが、処理頻度に関しては制御部分A
よりも低い。しかし、制御部分Bの飽和演算ブロックに
対する制御コードを選択する時点では、記憶容量に余裕
があったため、含まれている飽和演算ブロックは全てイ
ンライン展開の制御コードが選択されている。
【0070】制御関数73は、制御部分Cに該当する制
御関数である。制御部分Cは他の制御部分よりも処理優
先度が低く、処理頻度も低い。しかも、制御部分Cの飽
和演算ブロックに対する制御コードを選択する時点で
は、残された記憶容量はわずかであった。そのため、制
御部分Cの飽和演算ブロックに対してインライン展開の
制御コードを選択すると、そのプログラム容量は、飽和
演算処理で使用することができる記憶容量を越えてしま
うこととなり、制御コード選択条件2を満たさなくなっ
てしまう。よって、制御部分Cの飽和演算ブロックは全
てサブルーチンの制御コードが選択されている。
【0071】こうして、全ての飽和演算ブロックがイン
ライン展開またはサブルーチン展開され、使用可能なR
OM容量以内に納まりつつ、かつ可能な範囲内で高速化
されたプログラムが生成される。
【0072】このように、ユーザは、制御コード選択条
件として、プログラムの処理速度や記憶容量、処理頻度
や処理優先度等の条件をプログラム生成装置に与え、プ
ログラム生成装置は、ユーザから与えられた条件に従っ
て制御コードを選択して、プログラムを生成する。その
ため、本発明で提案したプログラム生成装置は、効率よ
くプログラムを生成することが可能である。
【図面の簡単な説明】
【図1】本発明の一実施形態における全体構成を示すブ
ロック図である。
【図2】本実施形態で入力した制御コード選択条件を示
す図である。
【図3】制御コード選択ルーチンが、制御仕様のブロッ
ク図に含まれる各ブロックに対して、制御コードを選択
する際のフローチャートである。
【図4】本実施形態に適用した制御仕様を示す図であ
る。
【図5】制御コード記憶ファイルに記憶された、飽和演
算ブロックに対応する複数の制御コードを示す図であ
る。
【図6】本実施形態において、制御仕様に含まれる飽和
演算ブロックに対する制御コードを選択するフローチャ
ートである。
【図7】本実施形態において、生成されたプログラムに
おける各制御部分の制御関数を示す図である。
【符号の説明】
1…制御仕様、2…制御コード選択条件、3…キーボー
ド(入力手段)、4…マウス(入力手段)、5…プログ
ラム生成装置、5a…プログラム生成ルーチン(プログ
ラム生成手段)、5b…制御コード選択ルーチン(コー
ド選択手段)、5c…プログラム出力ルーチン(プログ
ラム出力手段)、5d…制御コード記憶ファイル(コー
ド記憶手段)、6…パソコン

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】制御仕様および選択条件を入力する入力手
    段と、 前記制御仕様に基づいたプログラムを生成するプログラ
    ム生成手段と、 複数の制御コードを記憶するコード記憶手段と、 前記プログラム生成手段の要求に応じて、前記制御仕様
    の一動作に対応する制御コードを前記コード記憶手段内
    から選択し、前記プログラム生成手段に提供するコード
    選択手段と、 前記プログラム生成手段が生成したプログラムを出力す
    るプログラム出力手段とを備え、 前記コード記憶手段は、前記制御仕様の一動作に対応す
    る制御コードを複数個有し、 前記コード選択手段は、入力された前記選択条件に従っ
    て、前記複数個の制御コードの中から、プログラム生成
    に必要な制御コードを選択することを特徴とするプログ
    ラム生成装置。
  2. 【請求項2】前記コード選択手段は、前記制御仕様にお
    ける一動作の処理頻度を選択条件として、前記制御コー
    ドを選択することを特徴とする請求項1記載のプログラ
    ム生成装置。
  3. 【請求項3】前記コード選択手段は、前記制御仕様にお
    いて処理頻度が高い一動作には、インライン展開による
    処理を指示する制御コードを選択し、前記制御仕様にお
    いて処理頻度が低い一動作には、サブルーチンによる処
    理を指示する制御コードを選択することを特徴とする請
    求項2記載のプログラム生成装置。
  4. 【請求項4】前記コード選択手段は、前記制御仕様にお
    ける一動作の処理優先度を選択条件として、前記制御コ
    ードを選択することを特徴とする請求項1記載のプログ
    ラム生成装置。
  5. 【請求項5】前記コード選択手段は、前記制御仕様にお
    いて処理優先度が高い一動作には、インライン展開によ
    る処理を指示する制御コードを選択し、前記制御仕様に
    おいて処理優先度が低い一動作には、サブルーチンによ
    る処理を指示する制御コードを選択することを特徴とす
    る請求項4記載のプログラム生成装置。
  6. 【請求項6】前記制御仕様は、車両のエンジン制御仕様
    であることを特徴とする請求項1記載のプログラム生成
    装置。
JP2002095892A 2002-03-29 2002-03-29 プログラム生成装置 Pending JP2003296111A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002095892A JP2003296111A (ja) 2002-03-29 2002-03-29 プログラム生成装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002095892A JP2003296111A (ja) 2002-03-29 2002-03-29 プログラム生成装置

Publications (1)

Publication Number Publication Date
JP2003296111A true JP2003296111A (ja) 2003-10-17

Family

ID=29387319

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002095892A Pending JP2003296111A (ja) 2002-03-29 2002-03-29 プログラム生成装置

Country Status (1)

Country Link
JP (1) JP2003296111A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006011665A (ja) * 2004-06-23 2006-01-12 Ricoh Co Ltd 画像処理制御装置
JP2015212911A (ja) * 2014-05-07 2015-11-26 富士通株式会社 ソフトウェア選択装置、ソフトウェア選択方法、及びソフトウェア選択プログラム
JP2016062300A (ja) * 2014-09-18 2016-04-25 日本電気株式会社 ソースコード生成装置、ソースコード生成方法およびソースコード生成プログラム

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006011665A (ja) * 2004-06-23 2006-01-12 Ricoh Co Ltd 画像処理制御装置
JP2015212911A (ja) * 2014-05-07 2015-11-26 富士通株式会社 ソフトウェア選択装置、ソフトウェア選択方法、及びソフトウェア選択プログラム
JP2016062300A (ja) * 2014-09-18 2016-04-25 日本電気株式会社 ソースコード生成装置、ソースコード生成方法およびソースコード生成プログラム

Similar Documents

Publication Publication Date Title
US6059840A (en) Automatic scheduling of instructions to reduce code size
JP5256967B2 (ja) 動的再構成支援プログラム、動的再構成支援装置および動的再構成支援方法
US7724984B2 (en) Image processing apparatus
US9043806B2 (en) Information processing device and task switching method
JP2007234017A (ja) 優先順位による不揮発性メモリの演算処理装置及び方法
JP4241462B2 (ja) 制御ユニットおよびマイクロコンピュータ
US20100228958A1 (en) Information processing apparatus, method for controlling information processing apparatus and computer readable medium
CN111158875B (zh) 基于多模块的多任务处理方法、装置及系统
JP5108690B2 (ja) Dma装置及びdma転送方法
JP2003296111A (ja) プログラム生成装置
JP2009080583A (ja) 情報処理装置、並列処理最適化方法およびプログラム
US20050229124A1 (en) Distributed BDD reordering
US20110061032A1 (en) High-level synthesis apparatus, high-level synthesis method, and computer readable medium comprising high-level synthesis program
JP2005092780A (ja) リアルタイムプロセッサシステム及び制御方法
JP2009211614A (ja) 動作合成装置、動作合成方法、および、プログラム
JP5228546B2 (ja) 動作合成装置、および、プログラム
CN115470901A (zh) 支持移动端异构处理器分载的混合精度训练方法及设备
CN115480902A (zh) 关联周期任务的多核处理器节能调度方法、装置及介质
JP2005258509A (ja) ストレージ装置
JP2002099435A (ja) マルチタスク制御方法および情報処理装置
JP7367365B2 (ja) タスク実行管理装置、タスク実行管理方法、および、タスク実行管理プログラム
Thepayasuwan et al. Layout conscious approach and bus architecture synthesis for hardware/software codesign of systems on chip optimized for speed
CN109189477B (zh) 一种面向多上下文粗粒度数据流结构的指令发射控制方法
JP3795055B1 (ja) 値予測装置、マルチプロセッサシステムおよび値予測方法
JP5347544B2 (ja) 半導体集積回路

Legal Events

Date Code Title Description
A621 Written request for application examination

Effective date: 20040723

Free format text: JAPANESE INTERMEDIATE CODE: A621

A977 Report on retrieval

Effective date: 20070126

Free format text: JAPANESE INTERMEDIATE CODE: A971007

A131 Notification of reasons for refusal

Effective date: 20070220

Free format text: JAPANESE INTERMEDIATE CODE: A131

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20070619