JP2006011840A - Integrated system - Google Patents

Integrated system Download PDF

Info

Publication number
JP2006011840A
JP2006011840A JP2004188241A JP2004188241A JP2006011840A JP 2006011840 A JP2006011840 A JP 2006011840A JP 2004188241 A JP2004188241 A JP 2004188241A JP 2004188241 A JP2004188241 A JP 2004188241A JP 2006011840 A JP2006011840 A JP 2006011840A
Authority
JP
Japan
Prior art keywords
execution
hardware
software
code
unit
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
JP2004188241A
Other languages
Japanese (ja)
Inventor
Shigeki Namikado
茂樹 南角
Teruaki Tanaka
輝明 田中
Hideaki Minamide
英明 南出
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2004188241A priority Critical patent/JP2006011840A/en
Publication of JP2006011840A publication Critical patent/JP2006011840A/en
Pending legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To realize an integrated system for facilitating countermeasures to large change which cannot be coped with only by the change of software. <P>SOLUTION: A processor 101 of an integrated device 100 executes software processing based on a software code generated by a generating means 1. A variable logic element 103 of the integrated device 100 executes hardware processing based on a hardware code generated by the generating means 1. Software processing is analyzed by the optimization deciding means 10, and information showing the execution rate of software processing and hardware processing is applied to a generation means 1 based on the analysis result. The generation means 1 generates the software code and the hardware code based on it. <P>COPYRIGHT: (C)2006,JPO&NCIPI

Description

この発明は、外部環境によりソフトウェアとハードウェアの両方の内部構造を変化させることにより、動作を変化させる組み込みシステムに関するものである。   The present invention relates to an embedded system that changes its operation by changing the internal structure of both software and hardware according to an external environment.

従来、組み込みシステムにおいて、その動作を変化させるためには、プログラム、即ちソフトウェアのみをバーションアップさせることにより実現していた(例えば、特許文献1参照)。   Conventionally, in an embedded system, in order to change its operation, it has been realized by upgrading only a program, that is, software (see, for example, Patent Document 1).

特開2002−333990号公報JP 2002-333990 A

従来の組み込みシステムにおける動作の変更はソフトウェアの変更のみで実施しているため、ソフトウェアの変更のみでは対応できない大きな変更はできないという問題があった。   Since the operation change in the conventional embedded system is performed only by the software change, there is a problem that a large change that cannot be handled only by the software change cannot be made.

この発明は上記のような課題を解決するためになされたもので、ソフトウェアの変更のみでは対応できないような大きな変更にも対処することのできる組み込みシステムを実現することを目的とする。   The present invention has been made to solve the above-described problems, and an object thereof is to realize an embedded system that can cope with a large change that cannot be dealt with only by a change in software.

この発明に係る組み込みシステムは、組み込み装置を構成するソフトウェアとハードウェアを区別なく記述したシステム記述からソフトウェアコードとハードウェアコードとを生成する生成手段と、組み込み装置に設けられ、生成手段で生成されたソフトウェアコードに基づく処理を実行するソフトウェア実行手段と、組み込み装置に設けられ、生成手段で生成されたハードウェアコードに基づいたハードウェアにより処理を実行するハードウェア実行手段と、ソフトウェア実行手段の実行状況を解析し、この解析結果に基づいて、ハードウェア実行手段の実行割合を決定する最適化判定手段とを備え、生成手段は、最適化判定手段の決定結果に基づいて、ソフトウェアコードとハードウェアコードを生成するようにしたものである。   The embedded system according to the present invention includes a generating means for generating software code and hardware code from a system description in which software and hardware constituting the embedded apparatus are described without distinction, and is provided in the embedded apparatus and generated by the generating means. Software execution means for executing processing based on software code, hardware execution means provided in the embedded device for executing processing by hardware based on the hardware code generated by the generation means, and execution status of the software execution means And an optimization determination unit that analyzes and determines the execution ratio of the hardware execution unit based on the analysis result, and the generation unit generates software code and hardware code based on the determination result of the optimization determination unit It is what you do.

この発明の組み込みシステムは、ソフトウェアとハードウェアの両者で処理を実行している組み込み装置のソフトウェア実行状況を解析し、この解析結果に基づいてソフトウェア処理とハードウェア処理との実行割合を制御するようにしたので、組み込み装置の内部構造を変化させ、より実行速度が速く、かつ、消費電力が少ない組み込み装置に変化していくことができるという効果がある。   The embedded system of the present invention analyzes the software execution status of an embedded device that executes processing by both software and hardware, and controls the execution ratio of software processing and hardware processing based on the analysis result. Thus, there is an effect that the internal structure of the embedded device can be changed, and the embedded device can be changed to an embedded device with higher execution speed and lower power consumption.

実施の形態1.
図1は、この発明の実施の形態1による組み込みシステムを示す構成図である。
図示の組み込みシステムは、対象とする組み込み装置のハードウェアとソフトウェアの内部構造を変化させるようにした環境適応型組み込みシステムを示している。
Embodiment 1 FIG.
FIG. 1 is a block diagram showing an embedded system according to Embodiment 1 of the present invention.
The illustrated embedded system is an environment adaptive embedded system in which the hardware and software internal structures of the target embedded device are changed.

図において、組み込みシステムは、生成手段1、コンパイル手段2、リンク手段3、メモリ書込手段4、高位合成手段5、論理合成手段6、配置・配線手段7、構成用メモリ書込手段8、実行状況記録手段9、最適化判定手段10からなる。また、組み込み装置100は、プロセッサ101、メモリ102、可変論理素子103、可変論理素子構成用メモリ104、バス105を備えている。   In the figure, the embedded system includes a generating means 1, a compiling means 2, a linking means 3, a memory writing means 4, a high-level synthesis means 5, a logic synthesis means 6, a placement / wiring means 7, a configuration memory writing means 8, and an execution. It consists of status recording means 9 and optimization determination means 10. The embedded device 100 includes a processor 101, a memory 102, a variable logic element 103, a variable logic element configuration memory 104, and a bus 105.

生成手段1は、システム全体をソフトウェアとハードウェアの区別なく記述したシステム記述11から、最適化判定手段10の判定結果に基づいて、ソフトウェアコード、ハードウェアのコードおよびソフトウェアとハードウェアのインタフェースを生成する機能を有している。図中、ソフトウェアコード(S/Wコード)12、ハードウェアコード(H/Wコード)13は、生成手段1によって生成されたソフトウェアコードとハードウェアコードを示している。   The generation unit 1 generates a software code, a hardware code, and a software / hardware interface based on a determination result of the optimization determination unit 10 from a system description 11 in which the entire system is described without distinguishing between software and hardware. It has a function to do. In the figure, software code (S / W code) 12 and hardware code (H / W code) 13 indicate the software code and hardware code generated by the generation means 1.

システム記述11として、ソフトウェアとハードウェアの区別なくシステム全体を記述できる言語としては、例えばSpecC などのシステム記述言語がある。また、これを用いた記述から、生成手段1は、ソフトウェアの生成物であるソフトウェアコード12としてC やC++ 言語を、ハードウェアの生成物であるハードウェアコード13としてVerilogHDLやVHDLなどを生成する。   As a system description 11, there is a system description language such as SpecC as a language that can describe the entire system without distinguishing between software and hardware. Further, from the description using this, the generating means 1 generates C or C ++ language as software code 12 that is a software product, and VerilogHDL or VHDL as hardware code 13 that is a hardware product.

コンパイル手段2は、ソフトウェアコード12をコンパイルする機能部であり、リンク手段3は、関数とそのロケートアドレスとの対応関係の情報を生成する機能部である。オブジェクトコード14は、コンパイル手段2によって生成されるオブジェクトコードである。また、メモリ書込手段4は、オブジェクトコード14を、組み込み装置100におけるメモリ102に書き込むための機能部である。   The compiling unit 2 is a functional unit that compiles the software code 12, and the linking unit 3 is a functional unit that generates information on the correspondence between the function and its locate address. The object code 14 is an object code generated by the compiling unit 2. The memory writing unit 4 is a functional unit for writing the object code 14 into the memory 102 in the embedded device 100.

高位合成手段5は、生成手段1で生成されたハードウェアコード13のように、対象となる処理のアルゴリズムを直接的に記述した動作記述から、レジスタやクロックによる同期などハードウェアに特有の概念を意識したRTL(Register Transfer Level)記述を自動的に合成する高位合成処理を行うための機能部である。論理合成手段6は、高位合成手段5が出力するRTL記述から、対象となる可変ハードウェアの構造に適した論理回路を生成する機能部である。この論理合成手段6は、例えば、ハードウェアを記述するHDL(Hardware Description Language)などのコードを論理回路に変換する機能を有している。配置・配線手段7は、HDL等のコードから変換された論理回路をLSIに実装するためのコンフィグレーションデータ15を出力する機能部である。   The high-level synthesis means 5 is conscious of concepts specific to hardware such as synchronization by registers and clocks, from the operation description that directly describes the algorithm of the target processing, such as the hardware code 13 generated by the generation means 1. This is a functional unit for performing high-level synthesis processing for automatically synthesizing the registered RTL (Register Transfer Level) description. The logic synthesis unit 6 is a functional unit that generates a logic circuit suitable for the structure of the target variable hardware from the RTL description output from the high-level synthesis unit 5. The logic synthesis means 6 has a function of converting a code such as HDL (Hardware Description Language) describing hardware into a logic circuit, for example. The placement / wiring means 7 is a functional unit that outputs configuration data 15 for mounting a logic circuit converted from a code such as HDL on an LSI.

コンフィグレーションデータ15は、例えばネットリストであり、ソフトウェアにおけるオブジェクトコード14にあたる回路を直接表すデータに相当するものである。構成用メモリ書込手段8は、コンフィグレーションデータ15を、組み込み装置100における可変論理素子構成用メモリ104に書き込むための機能部である。   The configuration data 15 is a net list, for example, and corresponds to data directly representing a circuit corresponding to the object code 14 in software. The configuration memory writing unit 8 is a functional unit for writing the configuration data 15 to the variable logic element configuration memory 104 in the embedded device 100.

組み込み装置100は、例えば、レーダやロボットあるいは工作機械といったソフトウェア処理とハードウェア処理とが強調して行われる装置である。プロセッサ101は、メモリ102上に書き込まれたソフトウェアコードを実行し、種々の処理を行うものである。メモリ102は、RAM等からなるメモリである。可変論理素子103は、例えば、FPGAといった可変論理のハードウェア回路である。可変論理素子構成用メモリ104は、構成用メモリ書込手段8によって書き込まれたコンフィグレーションデータ15を、可変論理素子103に与えるためのメモリである。バス105は、プロセッサ101、メモリ102および可変論理素子103を相互に接続するための装置内バスである。   The embedded device 100 is a device in which software processing and hardware processing such as radar, robot, or machine tool are emphasized. The processor 101 executes software code written on the memory 102 and performs various processes. The memory 102 is a memory composed of a RAM or the like. The variable logic element 103 is a variable logic hardware circuit such as an FPGA. The variable logic element configuration memory 104 is a memory for supplying the configuration data 15 written by the configuration memory writing means 8 to the variable logic element 103. The bus 105 is an in-device bus for connecting the processor 101, the memory 102, and the variable logic element 103 to each other.

また、プロセッサ101とメモリ102が、組み込み装置100におけるソフトウェア実行手段に相当し、可変論理素子103と可変論理素子構成用メモリ104がハードウェア実行手段に相当している。   The processor 101 and the memory 102 correspond to software execution means in the embedded device 100, and the variable logic element 103 and the variable logic element configuration memory 104 correspond to hardware execution means.

実行状況記録手段9は、プロセッサ101の実行状況を記録する手段であり、具体的には次のように構成されている。
図2は、組み込み装置100と実行状況記録手段9との接続状態を示す説明図である。
図3は、実行状況記録手段9の内部構成を示すブロック図である。
The execution status recording means 9 is a means for recording the execution status of the processor 101, and is specifically configured as follows.
FIG. 2 is an explanatory diagram showing a connection state between the embedded device 100 and the execution status recording unit 9.
FIG. 3 is a block diagram showing the internal configuration of the execution status recording means 9.

図2に示すように、実行状況記録手段9は、組み込み装置100におけるプロセッサ101のアドレス線16に接続され、このアドレス線16のアドレスに基づいて、ソフトウェアの実行状況を記録するよう構成されている。   As shown in FIG. 2, the execution status recording means 9 is connected to the address line 16 of the processor 101 in the embedded device 100, and is configured to record the software execution status based on the address of the address line 16. .

即ち、プロセッサ101の実行中にジャンプ命令や関数呼び出し、サブルーチン呼び出しなど、通常は順番に実行されるプログラムの流れに変化があった時に、プロセッサ101から外部に割り込みを発行することにより知らせるものであり、その時プロセッサ101のアドレス線には、実行の流れが変化した後のアドレスが示される。従って、このアドレスの記録を行うことによって、ソフトウェアの実行状況を記録することができるものである。   That is, when there is a change in the flow of a program that is normally executed in sequence, such as a jump instruction, a function call, or a subroutine call, during execution of the processor 101, it is notified by issuing an interrupt from the processor 101 to the outside. At that time, the address line of the processor 101 indicates the address after the flow of execution has changed. Therefore, the execution status of the software can be recorded by recording this address.

実行状況記録手段9は、図3に示すように、プロセッサ91、タイマ92、実行記録用メモリ93を備えている。プロセッサ91は、組み込み装置100のプロセッサ101とは別に設けられた実行状況記録手段9のプロセッサであり、アドレス線16を流れるアドレスに基づいてプロセッサ101の実行状況を演算するものである。タイマ92は、プロセッサ91が実行状況の記録を行う際に、時刻情報を供給するためのタイマである。実行記録用メモリ93は、プロセッサ91によって記録されるアドレスと発生時刻の情報(実行時刻対応表201)を記録するためのメモリである。   As shown in FIG. 3, the execution status recording means 9 includes a processor 91, a timer 92, and an execution recording memory 93. The processor 91 is a processor of the execution status recording unit 9 provided separately from the processor 101 of the embedded device 100, and calculates the execution status of the processor 101 based on the address flowing through the address line 16. The timer 92 is a timer for supplying time information when the processor 91 records the execution status. The execution recording memory 93 is a memory for recording information on addresses and occurrence times recorded by the processor 91 (execution time correspondence table 201).

図4は、実行記録用メモリ93に記録される実行時刻対応表201の説明図である。
図示のように、実行時刻対応表201は、発生時刻とアドレスのレコードが記録されるようになっている。
FIG. 4 is an explanatory diagram of the execution time correspondence table 201 recorded in the execution recording memory 93.
As shown in the figure, the execution time correspondence table 201 records a record of occurrence time and address.

最適化判定手段10は、実行状況記録手段9の実行状況の記録情報を解析し、その解析結果に基づいてハードウェア処理の実行割合を決定して、その結果を生成手段1に出力する機能部である。即ち、最適化判定手段10は、ソフトウェア実行手段での処理時間の長い処理の順にハードウェア実行手段が実行する処理となるよう実行割合を決定する機能を有している。   The optimization determination unit 10 analyzes the recording information of the execution status of the execution status recording unit 9, determines the execution rate of the hardware processing based on the analysis result, and outputs the result to the generation unit 1 It is. In other words, the optimization determination unit 10 has a function of determining the execution ratio so that the processing is executed by the hardware execution unit in the order of processing with a long processing time in the software execution unit.

次に、実施の形態1の動作について説明する。
最初に、システム全体を記述したシステム記述1のうちどの部分をソフトウェアで実行させどの部分をハードウェアウェアで実行させるかは任意であるが、経験などに基づいて、人間が判断し、生成手段1に適当に指示する。生成手段1は、その指示に従って、ソフトウェアコード12とハードウェアコード13とを各々生成する。あるいは、生成手段1に対して、最初は全てソフトウェアで実行すると指示してもよい。その場合、生成手段1はシステム記述1を全てソフトウェアで実行するように、ソフトウェアコード12を生成する。
Next, the operation of the first embodiment will be described.
First, it is arbitrary which part of the system description 1 that describes the entire system is executed by software and which part is executed by hardware. Instruct appropriately. The generation unit 1 generates the software code 12 and the hardware code 13 according to the instruction. Or you may instruct | indicate to the production | generation means 1 to perform by software initially. In that case, the generation means 1 generates the software code 12 so that the system description 1 is entirely executed by software.

上記のように生成され、組み込み装置100で実行されるコードは、その実行中に、実行状況記録手段9によってそれぞれの実行を記録される。この実行状況記録手段9のプロセッサ91は、記録対象である組み込み装置100のプロセッサ101で実行されるソフトウェアコードの実行の流れが変化した時の割り込み信号が入力された時に、アドレス線16のデータを読み取り、実行記録用メモリ93に書き込む。また同時に、実行状況記録手段9に備えられているタイマ92からの時刻情報を得、これを記録する。即ち、実行記録用メモリ93には、図4に示すようなデータ構造で実行状況が記録される。但し、最初の行にはシステムの電源投入時など、実行記録を開始する時刻とプロセッサによって固有の実行開始アドレスを記録する。電源投入時と記録の開始が同時でない場合は最初の組み込み装置100のプロセッサ101からの割り込みから記録を開始する。   The code generated as described above and executed by the embedded device 100 is recorded by the execution status recording unit 9 during execution. The processor 91 of the execution status recording unit 9 receives the data on the address line 16 when an interrupt signal when the flow of execution of the software code executed by the processor 101 of the embedded device 100 to be recorded is changed is input. Read and write to the execution recording memory 93. At the same time, the time information from the timer 92 provided in the execution status recording means 9 is obtained and recorded. That is, the execution status is recorded in the execution recording memory 93 in a data structure as shown in FIG. However, the first line records the execution start address and the execution start address unique to the processor, such as when the system is turned on. When the power is turned on and the recording is not started at the same time, the recording is started from the interrupt from the processor 101 of the first embedded device 100.

実行記録用メモリ93に記録データが一杯になった時、あるいは、任意のタイミングで対象の組み込み装置100の実行を停止して、最適化判定手段10による最適化判定処理を実行する。この処理の流れを以下に示す。   When the recording data becomes full in the execution recording memory 93 or at an arbitrary timing, the execution of the target embedded device 100 is stopped, and the optimization determination process by the optimization determination unit 10 is executed. The flow of this process is shown below.

図5は、最適化判定処理のフローチャートである。
最適化判定処理では、先ず、最適化判定手段10は、実行状況記録手段9の実行記録用メモリ93のデータ(実行時刻対応表201)を読み込む(ステップST1)。次いで、リンク手段3によって生成される関数とそのロケートアドレスの対応表を読み込む(ステップST2)。ここでいう対応表とは、関数名とその関数が組み込み装置100のメモリ102のどこのアドレスに配置されるかの対応表である。尚、このリンク手段3と最適化判定手段10とを結ぶ線は図1では省略している。
FIG. 5 is a flowchart of the optimization determination process.
In the optimization determination process, first, the optimization determination unit 10 reads the data (execution time correspondence table 201) in the execution recording memory 93 of the execution status recording unit 9 (step ST1). Next, a correspondence table between the function generated by the linking means 3 and its locate address is read (step ST2). The correspondence table here is a correspondence table indicating the function name and the address where the function is arranged in the memory 102 of the embedded device 100. Note that the line connecting the link means 3 and the optimization determination means 10 is omitted in FIG.

次いで、読み込んだ対応表を元に、実行時刻対応表201から無効情報を削除する(ステップST3)。ここでいう無効情報とは次のような意味である。例えば、最初に全てソフトウェアで実行するようにシステムを生成した場合、一般にソフトウェアで実行する部分をハードウェアで実行するようにすると実行速度が向上し、更に消費電力も低減できる。しかし通常はシステム全体をハードウェア化するほど可変論理素子103などの容量は大きくない。そこで組み込み装置100のどの部分をハードウェアで実行するかをハードウェアの容量の範囲内で選択しなければならない。一般的には、ソフトウェアで実行される時間が長い処理ほどハードウェア化することが効果的である。しかしその部分を前もって決めることは難しく、また環境によってその動作が異なり、実際に設置されるまでその実行パターンが決められない組み込み装置も多い。   Next, invalid information is deleted from the execution time correspondence table 201 based on the read correspondence table (step ST3). The invalid information here has the following meaning. For example, when a system is first generated so as to be executed entirely by software, the execution speed is improved and the power consumption can be further reduced by generally executing the part executed by software by hardware. However, the capacity of the variable logic element 103 and the like is usually not so large that the entire system is made hardware. Therefore, which part of the embedded device 100 is to be executed by hardware must be selected within the range of hardware capacity. In general, it is more effective to implement hardware for a process that takes longer time to be executed by software. However, it is difficult to determine the part in advance, and the operation varies depending on the environment, and there are many embedded devices whose execution pattern cannot be determined until it is actually installed.

そこで実際に設置した時のデータでハードウェア化する部分を決めることが望ましいことになる。しかし実行時に一番長時間実行されていてもその部分が何も実行することがない場合に実行されるアイドルループなど、意味のない処理の場合はその部分をハードウェア化して実行速度を向上させても意味を持たない。従って、そのようなハードウェア化しても意味のない部分を削除する必要があり、ステップST3の処理はこれを行うためのものである。   Therefore, it is desirable to determine the part to be hardwareized by the data when it is actually installed. However, in the case of a meaningless process such as an idle loop that is executed when the part is executed for the longest time at the time of execution but nothing is executed, improve the execution speed by hardwareizing the part. Also has no meaning. Therefore, it is necessary to delete a portion that does not make sense even if it is implemented in hardware, and the process of step ST3 is for this purpose.

次に、最適化判定手段10は、実行時刻対応表201のデータに基づき、実行時刻から実行時間を処理単位で計算して関数と実行時間の対応表を作成する(ステップST4)。
図6は、実行時間対応表202の説明図である。
上述したリンク手段3の情報と、実行記録用メモリ93から実行される関数名とそれが実行される時間は計算できる。なぜならば、関数呼び出しが発生すると実行記録用メモリ93にそのアドレスが発生時刻と共に記録され、ある関数の実行開始時刻と次の関数実行開始時刻の差がその関数の実行時間になるからである。もちろん同じ関数が複数呼び出される場合も多く、その場合は実行記録用メモリ93の別の場所にも同じアドレスが現れるがそれは一つにまとめることとする。また、当然ながら、実行時間はすべての同じ関数の実行時間の合計とする。
Next, the optimization determining means 10 creates a function-execution time correspondence table by calculating execution time from the execution time in units of processing based on the data of the execution time correspondence table 201 (step ST4).
FIG. 6 is an explanatory diagram of the execution time correspondence table 202.
The information of the link means 3 described above, the name of the function executed from the execution recording memory 93, and the time for executing it can be calculated. This is because when a function call occurs, its address is recorded in the execution recording memory 93 together with the time of occurrence, and the difference between the execution start time of one function and the next function execution start time becomes the execution time of that function. Of course, there are many cases where the same function is called a plurality of times. In this case, the same address appears in another location in the execution recording memory 93, but it is assumed that they are combined into one. Of course, the execution time is the sum of the execution times of all the same functions.

尚、実行時間対応表202は、最適化判定手段10の内部に備えられている図示しない記録用メモリ上に作成するものである。   The execution time correspondence table 202 is created on a recording memory (not shown) provided in the optimization determination means 10.

このようにして、実行時間対応表202を作成すると、その中から実行時間が最も長い処理を選択し、この情報を判定結果として生成手段1に送出する(ステップST5)。生成手段1は、その関数を記述しているシステム記述11の部分から、今度はハードウェアコードを生成する(ステップST6)。また、最適化判定手段10は、実行時間対応表202から今選択した部分を削除する(ステップST7)。   In this way, when the execution time correspondence table 202 is created, a process with the longest execution time is selected from the table, and this information is sent to the generation unit 1 as a determination result (step ST5). The generation means 1 generates a hardware code this time from the part of the system description 11 describing the function (step ST6). Further, the optimization determining means 10 deletes the currently selected portion from the execution time correspondence table 202 (step ST7).

次に、最適化判定手段10は、ステップST6で生成されたハードウェアコードと対照の組み込み装置のハードウェアの容量を比較して、容量の範囲以内であるかを判定する(ステップST8)。尚、最適化判定手段10は、その内部に組み込み装置100におけるハードウェア容量の情報を保持しているとする。ステップST8において、容量の範囲内であれば、高位合成手段5〜構成用メモリ書込手段8により、最初に説明した手順に従って対象の組み込み装置100の可変論理素子構成用メモリ104に書き込む(ステップST9)。   Next, the optimization determination means 10 compares the hardware code generated in step ST6 with the hardware capacity of the control embedded device, and determines whether it is within the capacity range (step ST8). It is assumed that the optimization determination unit 10 holds hardware capacity information in the embedded device 100 therein. In step ST8, if it is within the capacity range, the high level synthesis means 5 to the configuration memory writing means 8 write to the variable logic element configuration memory 104 of the target embedded device 100 according to the procedure described first (step ST9). ).

次に、最適化判定手段10は、残りハードウェアの容量を更新し(ステップST10)、実行時間対応表202の関数を全て調べたかを判定する(ステップST11)。このステップST11において、関数がまだ残っている場合は、ステップST5に戻り、全て調べた場合は、最適化判定処理を終了する。   Next, the optimization determination unit 10 updates the remaining hardware capacity (step ST10), and determines whether all the functions of the execution time correspondence table 202 have been checked (step ST11). If the function still remains in step ST11, the process returns to step ST5. If all the functions are examined, the optimization determination process is terminated.

このような処理により、ソフトウェア処理の実行時間の長い順にハードウェア処理となるよう実行割合が変更されていき、そして、これがハードウェアの容量までハードウェア処理が行われるよう設定され、組み込み装置100は最初と異なる内部構成のものとなる。   By such processing, the execution rate is changed so that the hardware processing is performed in the order of the longest execution time of the software processing, and this is set so that the hardware processing is performed up to the capacity of the hardware. The internal structure is different from the first.

尚、上記実施の形態1では、図5で示したソフトウェアで実行している部分をハードウェア化する判定処理のなかで、対象外となった部分を実行時間対応表202から削除する処理としたが、テーブルの項目を増やして無効フラグを追加するような実装方法でも、上記実施の形態と同様の効果がある。   In the first embodiment, in the determination process for converting the part executed by the software shown in FIG. 5 into hardware, the part that has been excluded from the execution time correspondence table 202 is deleted. However, an implementation method in which the number of items in the table is increased and an invalid flag is added has the same effect as the above embodiment.

また、上記実施の形態1では、対象の組み込み装置100を停止させて内部構造の書き換えを行ったが、変更する部分と別の部分を実行中に書き換えても、上記実施の形態1と同様の効果がある。   Further, in the first embodiment, the target embedded device 100 is stopped and the internal structure is rewritten. However, even if a part different from the part to be changed is rewritten during execution, the same as in the first embodiment is performed. effective.

以上のように、実施の形態1によれば、組み込み装置を構成するソフトウェアとハードウェアを区別なく記述したシステム記述からソフトウェアコードとハードウェアコードとを生成する生成手段と、組み込み装置に設けられ、生成手段で生成されたソフトウェアコードに基づく処理を実行するソフトウェア実行手段と、組み込み装置に設けられ、生成手段で生成されたハードウェアコードに基づいたハードウェアにより処理を実行するハードウェア実行手段と、ソフトウェア実行手段の実行状況を解析し、この解析結果に基づいて、ハードウェア実行手段の実行割合を決定する最適化判定手段とを備え、生成手段は、最適化判定手段の決定結果に基づいて、ソフトウェアコードとハードウェアコードを生成するようにしたので、組み込み装置の内部構造を変化させ、より実行速度が速く、かつ消費電力が少ない組み込み装置に変化させることができるという効果がある。   As described above, according to the first embodiment, the generation unit that generates the software code and the hardware code from the system description in which the software and the hardware constituting the embedded device are described without distinction, and the generation device Software execution means for executing processing based on the software code generated by the means, hardware execution means provided in the embedded device for executing processing by hardware based on the hardware code generated by the generation means, and software execution Analyzing the execution status of the means, and based on the analysis result, an optimization determination means for determining the execution ratio of the hardware execution means, and the generation means, based on the determination result of the optimization determination means, software code Hardware code is generated. Of changing the internal structure, there is an effect that more execution speed is high and power consumption can be varied in small embedded device.

また、実施の形態1によれば、最適化判定手段は、ソフトウェア実行手段での処理時間の長い処理の順にハードウェア実行手段が実行する処理となるよう実行割合を決定するようにしたので、より効率的に、実行速度が速く、かつ、消費電力が少ない組み込み装置とすることができる。   Further, according to the first embodiment, the optimization determination unit determines the execution ratio so that the hardware execution unit executes the processing in the order of the processing with the long processing time in the software execution unit. Efficiently, an embedded device with high execution speed and low power consumption can be obtained.

実施の形態2.
図7は実施の形態2の組み込みシステムの構成図である。
実施の形態2では、実施の形態1では別構成としていた生成手段1、コンパイル手段2、リンク手段3、メモリ書込手段4、高位合成手段5、論理合成手段6、配置・配線手段7、構成用メモリ書込手段8、実行状況記録手段9、最適化判定手段10を、組み込み装置100a内に設けるようにしたものである。即ち、これら生成手段1〜最適化判定手段10を、組み込み装置100aにおけるプロセッサ101を用いて実現するようにしたものである。
Embodiment 2. FIG.
FIG. 7 is a configuration diagram of the embedded system according to the second embodiment.
In the second embodiment, the generating unit 1, the compiling unit 2, the linking unit 3, the memory writing unit 4, the high-level synthesis unit 5, the logic synthesis unit 6, the arrangement / wiring unit 7, and the configuration, which are different configurations in the first embodiment. The memory writing means 8, the execution status recording means 9, and the optimization determination means 10 are provided in the embedded device 100a. That is, the generation means 1 to the optimization determination means 10 are realized by using the processor 101 in the embedded device 100a.

従って、システム記述11や、生成手段1によって生成されるソフトウェアコード12およびハードウェアコード13、また、オブジェクトコード14やコンフィグレーションデータ15の構成は実施の形態1と同様であるため、ここでの説明は省略する。   Accordingly, the configuration of the system description 11, the software code 12 and the hardware code 13 generated by the generation unit 1, and the object code 14 and the configuration data 15 are the same as those in the first embodiment. Omitted.

また、実行状況記録手段9もプロセッサ101を用いて構成されているため、プロセッサ101におけるソフトウェアコードの実行を記録するには、実行状況記録手段9を実現するためのプロセッサ101の動作によって行うものとする。   Since the execution status recording means 9 is also configured using the processor 101, the execution of the software code in the processor 101 is recorded by the operation of the processor 101 for realizing the execution status recording means 9. To do.

このように構成された実施の形態2の組み込みシステムにおける最適化処理は、実施の形態1と同様に行われるため、その動作説明は省略する。   Since the optimization processing in the embedded system of the second embodiment configured as described above is performed in the same manner as in the first embodiment, description of the operation is omitted.

以上のように、実施の形態2によれば、生成手段と最適化判定手段を、組み込み装置に一体に組み込むようにしたので、組み込みシステムとして構成を簡素化できると共に、任意の時間にソフトウェアとハードウェアの最適化を実行できる効果がある。   As described above, according to the second embodiment, since the generation unit and the optimization determination unit are integrated into the embedded device, the configuration can be simplified as an embedded system, and software and hardware can be installed at an arbitrary time. It is possible to execute wear optimization.

実施の形態3.
図8は実施の形態3の組み込みシステムの構成図である。
実施の形態3では、システム記述11よりも抽象度の高いUML(Unified Modeling Language)といったモデル記述言語で記述されたシステム仕様17から、SLDLコード生成手段18によってシステム記述11を生成するようにしたものである。その他の生成手段1〜最適化判定手段10および組み込み装置100の構成は、実施の形態1と同様であるため、対応する部分に同一符号を付してその説明を省略する。
Embodiment 3 FIG.
FIG. 8 is a configuration diagram of the embedded system according to the third embodiment.
In the third embodiment, the system description 11 is generated by the SLDL code generation means 18 from the system specification 17 described in a model description language such as UML (Unified Modeling Language) having a higher abstraction level than the system description 11. It is. Other configurations of the generation unit 1 to the optimization determination unit 10 and the built-in device 100 are the same as those in the first embodiment, and accordingly, the corresponding parts are denoted by the same reference numerals and description thereof is omitted.

このように構成された組み込みシステムでは、UMLで記述されたシステム仕様17から、SLDLコード生成手段18は、UMLよりやや抽象化度の低いシステム記述言語を生成し、これをシステム記述11として出力する。これ以降の動作は実施の形態1と同様である。   In the embedded system configured as described above, the SLDL code generation unit 18 generates a system description language having a slightly lower degree of abstraction than the UML from the system specification 17 described in UML, and outputs this as a system description 11. . Subsequent operations are the same as those in the first embodiment.

以上のように、実施の形態3によれば、システム記述を、そのシステム記述よりも抽象化度の高いモデル記述言語から生成するようにしたので、組み込みシステムの開発効率をより効率化することができる。   As described above, according to the third embodiment, the system description is generated from the model description language having a higher abstraction level than the system description, so that the development efficiency of the embedded system can be further improved. it can.

尚、上記各実施の形態では、実行状況記録手段9と最適化判定手段10とを別の構成として図示しているが、もちろんこの両者は一つの装置として実現しても同様の効果がある。   In each of the above embodiments, the execution status recording unit 9 and the optimization determining unit 10 are illustrated as different configurations, but of course, the same effect can be obtained even if both are realized as a single device.

この発明の実施の形態1による組み込みシステムを示す構成図である。BRIEF DESCRIPTION OF THE DRAWINGS It is a block diagram which shows the embedded system by Embodiment 1 of this invention. この発明の実施の形態1の組み込みシステムにおける組み込み装置と実行状況記録手段との接続状態を示す説明図である。It is explanatory drawing which shows the connection state of the embedded apparatus and execution status recording means in the embedded system of Embodiment 1 of this invention. この発明の実施の形態1の組み込みシステムにおける実行状況記録手段の内部構成を示すブロック図である。It is a block diagram which shows the internal structure of the execution condition recording means in the embedded system of Embodiment 1 of this invention. この発明の実施の形態1の組み込みシステムにおける実行時刻対応表の説明図である。It is explanatory drawing of the execution time corresponding | compatible table in the embedded system of Embodiment 1 of this invention. この発明の実施の形態1の組み込みシステムにおける最適化判定処理のフローチャートである。It is a flowchart of the optimization determination process in the embedded system of Embodiment 1 of this invention. この発明の実施の形態1の組み込みシステムにおける実行時間対応表の説明図である。It is explanatory drawing of the execution time correspondence table | surface in the embedded system of Embodiment 1 of this invention. この発明の実施の形態2による組み込みシステムを示す構成図である。It is a block diagram which shows the embedded system by Embodiment 2 of this invention. この発明の実施の形態3による組み込みシステムを示す構成図である。It is a block diagram which shows the embedded system by Embodiment 3 of this invention.

符号の説明Explanation of symbols

1 生成手段、9 実行状況記録手段、10 最適化判定手段、17 システム仕様、18 SLDLコード生成手段、100,100a 組み込み装置、101 プロセッサ、102 メモリ、103 可変論理素子、104 可変論理素子構成用メモリ。   DESCRIPTION OF SYMBOLS 1 Generation | occurrence | production means, 9 Execution status recording means, 10 Optimization determination means, 17 System specification, 18 SLDL code generation means, 100, 100a Embedded apparatus, 101 Processor, 102 Memory, 103 Variable logic element, 104 Memory for variable logic element structure .

Claims (4)

組み込み装置を構成するソフトウェアとハードウェアを区別なく記述したシステム記述からソフトウェアコードとハードウェアコードとを生成する生成手段と、
前記組み込み装置に設けられ、前記生成手段で生成されたソフトウェアコードに基づく処理を実行するソフトウェア実行手段と、
前記組み込み装置に設けられ、前記生成手段で生成されたハードウェアコードに基づいたハードウェアにより処理を実行するハードウェア実行手段と、
前記ソフトウェア実行手段の実行状況を解析し、当該解析結果に基づいて、ハードウェア実行手段の実行割合を決定する最適化判定手段とを備え、
前記生成手段は、前記最適化判定手段の決定結果に基づいて、ソフトウェアコードとハードウェアコードを生成することを特徴とする組み込みシステム。
Generating means for generating software code and hardware code from a system description in which software and hardware constituting the embedded device are described without distinction;
Software execution means that is provided in the embedded device and executes processing based on the software code generated by the generation means;
Hardware execution means that is provided in the embedded device and executes processing by hardware based on the hardware code generated by the generation means;
Analyzing the execution status of the software execution means, and based on the analysis result, comprising an optimization determination means for determining the execution ratio of the hardware execution means,
The embedded system generates the software code and the hardware code based on the determination result of the optimization determination unit.
生成手段と最適化判定手段は、組み込み装置に一体に組み込まれていることを特徴とする請求項1記載の組み込みシステム。   The embedded system according to claim 1, wherein the generation unit and the optimization determination unit are integrated in the embedded device. システム記述は、当該システム記述よりも抽象化度の高いモデル記述言語から生成することを特徴とする請求項1または請求項2記載の組み込みシステム。   3. The embedded system according to claim 1, wherein the system description is generated from a model description language having a higher abstraction level than the system description. 最適化判定手段は、ソフトウェア実行手段での処理時間の長い処理の順にハードウェア実行手段が実行する処理となるよう実行割合を決定することを特徴とする請求項1から請求項3のうちのいずれか1項記載の組み込みシステム。   The optimization determination unit determines the execution ratio so that the processing is executed by the hardware execution unit in the order of processing with a long processing time in the software execution unit. The embedded system according to claim 1.
JP2004188241A 2004-06-25 2004-06-25 Integrated system Pending JP2006011840A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004188241A JP2006011840A (en) 2004-06-25 2004-06-25 Integrated system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004188241A JP2006011840A (en) 2004-06-25 2004-06-25 Integrated system

Publications (1)

Publication Number Publication Date
JP2006011840A true JP2006011840A (en) 2006-01-12

Family

ID=35779039

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004188241A Pending JP2006011840A (en) 2004-06-25 2004-06-25 Integrated system

Country Status (1)

Country Link
JP (1) JP2006011840A (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009251996A (en) * 2008-04-08 2009-10-29 Nippon Telegr & Teleph Corp <Ntt> Processing unit, processing method, and program thereof
JP2012509537A (en) * 2008-11-21 2012-04-19 コリア ユニバーシティ インダストリアル アンド アカデミック コラボレイション ファウンデーション Method and system for converting high-level language code into HDL code
JP2015076007A (en) * 2013-10-10 2015-04-20 株式会社日立情報通信エンジニアリング Board design assistance system and board design assistance method
WO2017056427A1 (en) * 2015-09-30 2017-04-06 日本電気株式会社 Program rewrite device, method, and storage medium

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11232077A (en) * 1998-02-12 1999-08-27 Fuji Xerox Co Ltd Information processing system
JPH11259553A (en) * 1998-03-13 1999-09-24 Omron Corp Design supporting method for system where hardware and software coexist
JP2000284945A (en) * 1999-03-29 2000-10-13 Sharp Corp Digital equipment and developing method therefor
WO2004042498A2 (en) * 2002-10-31 2004-05-21 Src Computers, Inc. System and method for partitioning control-dataflow graph representations

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11232077A (en) * 1998-02-12 1999-08-27 Fuji Xerox Co Ltd Information processing system
JPH11259553A (en) * 1998-03-13 1999-09-24 Omron Corp Design supporting method for system where hardware and software coexist
JP2000284945A (en) * 1999-03-29 2000-10-13 Sharp Corp Digital equipment and developing method therefor
WO2004042498A2 (en) * 2002-10-31 2004-05-21 Src Computers, Inc. System and method for partitioning control-dataflow graph representations

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009251996A (en) * 2008-04-08 2009-10-29 Nippon Telegr & Teleph Corp <Ntt> Processing unit, processing method, and program thereof
JP2012509537A (en) * 2008-11-21 2012-04-19 コリア ユニバーシティ インダストリアル アンド アカデミック コラボレイション ファウンデーション Method and system for converting high-level language code into HDL code
JP2015076007A (en) * 2013-10-10 2015-04-20 株式会社日立情報通信エンジニアリング Board design assistance system and board design assistance method
WO2017056427A1 (en) * 2015-09-30 2017-04-06 日本電気株式会社 Program rewrite device, method, and storage medium

Similar Documents

Publication Publication Date Title
JP3835754B2 (en) Integrated circuit design method and integrated circuit designed thereby
JPH10283381A (en) Method for supporting gated clock design and device therefor and computer readable record medium for storing program for supporting gated clock design
KR19980032933A (en) Method and apparatus for design verification using emulation and simulation
JP4492803B2 (en) Behavioral synthesis apparatus and program
GB2370134A (en) Method of co-simulating a digital circuit
WO2006024325A1 (en) Method for estimating power consumption
JP2006048525A (en) Simulation method
US7676774B2 (en) System LSI verification system and system LSI verification method
Potkonjak et al. Considering testability at behavioral level: use of transformations for partial scan cost minimization under timing and area constraints
JP2002366602A (en) Simulation method, system and program for software and hardware
JP2006011840A (en) Integrated system
JP5228546B2 (en) Behavioral synthesis apparatus and program
Ortega et al. Models and methods for hw/sw intellectual property interfacing
US7971167B2 (en) Semiconductor design support device, semiconductor design support method, and manufacturing method for semiconductor integrated circuit
JP4271072B2 (en) Software verification model generation method
US20040143813A1 (en) System development supporting apparatus, system development supporting method, and computer-readable recorded medium
JP4152659B2 (en) Data processing system and design system
JP2008204341A (en) Interface composite device
JP2005321848A (en) System simulation execution program and hardware description conversion program
JP2004013227A (en) Simulation device and simulation model generation program
JP4006120B2 (en) Logic synthesis device
JP2004310568A (en) Simulator device, simulation method and performance analysis method
JP2005182359A (en) Method for designing data processor and recording medium
JP2009217720A (en) Program generating device and program generating method
JP2009129367A (en) Behavioral synthesis system, behavioral synthesis method, and program for behavioral synthesis

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20061227

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20071015

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20080718

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20091006

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100302

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100629