[go: up one dir, main page]

WO2011046089A1 - Simulation method, system, and program - Google Patents

Simulation method, system, and program Download PDF

Info

Publication number
WO2011046089A1
WO2011046089A1 PCT/JP2010/067772 JP2010067772W WO2011046089A1 WO 2011046089 A1 WO2011046089 A1 WO 2011046089A1 JP 2010067772 W JP2010067772 W JP 2010067772W WO 2011046089 A1 WO2011046089 A1 WO 2011046089A1
Authority
WO
WIPO (PCT)
Prior art keywords
peripheral
emulators
emulator
processor
simulation
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.)
Ceased
Application number
PCT/JP2010/067772
Other languages
French (fr)
Japanese (ja)
Inventor
周一 清水
秀昭 小松
浩一 梶谷
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Priority to JP2011536125A priority Critical patent/JP5379862B2/en
Priority to CN201080046464.6A priority patent/CN102576325B/en
Priority to GB1205094.4A priority patent/GB2486136B/en
Priority to DE112010004037T priority patent/DE112010004037T5/en
Publication of WO2011046089A1 publication Critical patent/WO2011046089A1/en
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/28Error detection; Error correction; Monitoring by checking the correct order of processing

Definitions

  • the present invention relates to a simulation of a physical system such as an automobile, and more particularly to a software-based simulation system.
  • the ECU generally includes an input interface for A / D conversion, for example, an input interface from a sensor, a logical operation unit (microcomputer) that processes a digital input signal in accordance with a predetermined logic, and the processing result as an actuator. And an output interface for converting into an operation signal.
  • a / D conversion for example, an input interface from a sensor
  • microcomputer logical operation unit
  • ABS Anti-lock Breaking System
  • ESC Electronic Stability Control
  • power steering wiper control and security monitoring system
  • mechanical parts not only mechanical parts but also electronic parts and software account for an important proportion.
  • the development cost for the latter is said to be 25% or 40% of the total, accounting for 70% for hybrid type vehicles.
  • an automobile is composed of a power device such as an engine, a power transmission device, a traveling device such as a steering, a brake device, and other machine parts (plants) such as a body system.
  • the operation of these plants is 30 to 70.
  • the program of the electronic control unit (ECU) described above is dynamically determined according to sensor input (speed etc.) or human input (accelerator etc.).
  • Each ECU basically controls the operation of one plant.
  • the amount and timing of fuel injection (Fuel ⁇ Injection) and ignition (Ignition) into the engine are determined by software by the engine control unit. Since it is software, it is possible to increase or decrease the fuel injection amount according to the mode in a luxury car with a “sport” mode.
  • the engine speed can be adjusted by automatically blipping in accordance with the downshift timing.
  • the ECU of the engine and the ECU of the transmission need to operate in cooperation.
  • ESC Electronic Stability Control
  • Such an “intervention” function can be easily cut because it is software.
  • Such ECU simulations are: (1) Model-in-the-Loop (Simulation) (MILS), which logically expresses the operation of the controller using an expression form such as a state machine, (2) Data accuracy in the logical operation Software-in-the-Loop Simulation (SILS), which introduced some hardware restrictions, such as (3) Virtual processor-in-the-Loop Simulation (V) -PILS), and (4)
  • MILS Model-in-the-Loop
  • Simulation Simulation
  • HILS hardware-in-the-loop
  • MILS / SILS is mainly used in the trial and error phase to bring out the basic performance of the plant.
  • V-PILS uses completed ECU software, so it is very promising as a method for finding and solving unexpected operations (bugs) of the software, but it has reproducible operations. There is no example that has been achieved yet.
  • HILS is always carried out to confirm the final operation of the completed ECU board. However, even if a failure is found, reproducibility is not guaranteed, so it cannot be used for debugging purposes.
  • V-PILS is particularly expected to solve this problem.
  • Fig. 1 shows a typical V-PILS configuration according to the conventional concept.
  • This configuration includes a plurality of ECU emulators, a plurality of plant simulators, and a global scheduler 110 that schedules the overall operation.
  • FIG. 1 for convenience, two ECU emulators 102 and 104 and two plant simulators 106 and 108 are shown. However, it should be understood that actually, there are more ECU emulators and plant simulators than shown. .
  • the ECU emulator 102 includes a processor emulator 102a and a peripheral emulator 102b. Since the ECU emulator 104 is similar, detailed description of the ECU emulator 104 is omitted.
  • a clock converter 106 a is connected to the plant simulator 106. Since the plant simulator 108 is the same, detailed description of the plant simulator 108 is omitted.
  • the plant simulator 106 is a brake simulator, for example, and the plant simulator 108 is an engine simulator.
  • the frequency shown is an exemplary typical number of operating clocks. That is, the processor emulator 102a operates with a relatively high-speed clock of 80 MHz. On the other hand, since the plant simulator 106 is a physical mechanism simulator, it operates at a relatively low speed of 10 KHz.
  • the peripheral emulator is the interface part of the I / O IV of the ECU emulator and connects the plant simulator and processor emulator to each other. It can be seen that it typically operates at a resolution of about 10MHz (on average). This is faster than a plant simulator but slower than a processor emulator.
  • the peripheral emulator sends a pulse signal to the plant simulator.
  • the clock converter is interposed between the peripheral emulator and the plant simulator, and reduces the frequency of the clock signal from the peripheral emulator so as to be compatible with the plant simulator, and the signal from the plant simulator. Has a function to increase the peripheral radix to fit the peripheral emulator.
  • the peripheral emulator sends and receives data to the processor emulator in response to a read / write (R / W) request and sends an interrupt (INT).
  • a network function such as a CAN (controller area network) that interconnects processors requires communication between peripherals.
  • the processor performs a read / write (R / W) operation on the peripheral. It also receives an interrupt signal (INT) from the peripheral.
  • R / W read / write
  • INT interrupt signal
  • the peripheral is the center of the system that interconnects the plant, processor, and processors.
  • One solution is to reduce the synchronization time interval to the greatest common divisor as shown in FIG. 3 according to the global scheduler 110. As a result, accuracy can be achieved, but synchronization processing at an unnecessary timing increases, so the overhead of synchronization processing becomes very large. This significantly reduces the processing speed of the simulation system.
  • peripheral processing delimiter If it is not possible to explicitly use the peripheral processing delimiter, it is difficult to know even the greatest common divisor, so the overhead is further increased by increasing the time resolution.
  • Japanese Patent Application Laid-Open No. 2007-11720 is intended to solve the problem that it is possible to flexibly change the configuration of a system simulator while dealing with a system having a complicated configuration.
  • the system simulator simulates the operation of a CPU. It consists of three types: an instruction set simulator that simulates the bus, a bus simulator that simulates the operation of the bus, and a peripheral simulator that simulates the operation of the peripheral. To disclose. However, this prior art does not suggest a technique for optimizing the synchronization between the peripheral and the CPU.
  • An object of the present invention is to provide a V-PILS that makes it possible to realize the reproducibility of the simulation operation while maintaining the operation speed appropriately.
  • the present invention has been made to solve the above problems, and according to the present invention, a peripheral emulator, a processor emulator, and a peripheral scheduler for controlling the operation timing of the entire plant simulator are prepared.
  • a completion flag corresponding to each of the peripheral emulator, the processor emulator, and the plant simulator is prepared.
  • Each individual peripheral emulator has its own processing delimiter.
  • the peripheral emulator is written in SystemC, and therefore, the source code can be scanned by using a program to check the specific processing delimiter.
  • the line describing wait () is a delimiter.
  • the information of the processing delimiter of each peripheral emulator confirmed in this way is related to the peripheral scheduler.
  • the peripheral scheduler starts parallel operation by releasing (OFF) the completion flag of all peripheral emulators. Then, the peripheral scheduler finds the peripheral emulator that is scheduled to reach the process break earliest based on the process break information of each peripheral emulator. I will call it Peripheral P. Assuming that the time between the processes is T, the peripheral scheduler advances the execution of each processor emulator and each plant simulator until the time T is reached.
  • the peripheral scheduler waits for the peripheral P completion flag to be set.
  • the peripheral P sets a completion flag when it reaches the processing break.
  • the peripheral scheduler synchronizes data between the peripheral P and the processor emulator and plant simulator.
  • peripheral scheduler releases the peripheral P completion flag (OFF) and restarts its operation. This again causes all peripheral emulators to operate in parallel.
  • the peripheral scheduler finds the peripheral emulator that is scheduled to reach the next processing break the earliest based on the set information of each peripheral emulator break.
  • the peripheral scheduler operates the entire simulation system by such operation scheduling based on the timing of the peripheral emulator processing.
  • the reproducibility of the process is guaranteed by the operation scheduling based on the timing of the peripheral emulator process.
  • FIG. 6 is a timing diagram of the operation of a conventional V-PILS system that is synchronized with maximum granularity. It is a block diagram of the hardware constitutions of a computer. It is a block diagram which shows the logical connection relation of a peripheral scheduler, a peripheral emulator, a processor emulator, and a plant simulator. It is a timing diagram which shows operation
  • a plurality of CPU1 404a, CPU2 404b, CPU3 404c,... CPUn 404n are connected to the host bus 402. Further connected to the host bus 402 is a main memory 406 for CPU1 404a, CPU2 404b, CPU3 404c,.
  • a keyboard 410, a mouse 412, a display 414 and a hard disk drive 416 are connected to the I / O bus 408.
  • the I / O bus 408 is connected to the host bus 402 via the I / O bridge 418.
  • the keyboard 410 and the mouse 412 are used by an operator to operate by typing a command or clicking a menu.
  • the display 414 is used to display a menu for operating the process with the GUI as necessary.
  • CPU1 404a, CPU2 404b, CPU3 404c,..., CPUn 404n are, for example, Intel (R) Xeon (R), and the operating system is Windows (trademark) Server 2003.
  • the operating system preferably has a multitasking function.
  • the operating system is stored on the hard disk drive 416 and is read from the hard disk drive 416 into the main memory 406 when the computer system is started.
  • the multiprocessor system is generally intended to be a system using a processor having a plurality of cores of processor functions that can independently perform arithmetic processing. Therefore, a multicore single processor system or a single core multiprocessor system is used. And any multi-core multi-processor system.
  • the hardware of the computer system that can be used for carrying out the present invention is not limited to IBM (R) System X, and any hardware can be used as long as it can run the simulation program of the present invention.
  • a computer system can be used.
  • the operating system is not limited to Windows (R), and any operating system such as Linux (R) or Mac OS (R) can be used.
  • a computer system such as IBM (R) System P whose operating system is AIX (trademark) based on POWER (trademark) 6 may be used.
  • the hard disk drive 416 further stores programs such as a processor emulator, a peripheral scheduler, a peripheral emulator, a clock converter, and a plant simulator, which will be described later, each of which is activated when the computer system is started up. It is loaded into the main memory, assigned to the individual CPUs 1 to CPUn as individual threads or processes, and executed. For this reason, the computer system shown in FIG. 4 preferably has a sufficient number of CPUs to be allocated to individual threads of the processor emulator, peripheral scheduler, peripheral emulator, clock converter and plant simulator.
  • FIG. 5 shows the cooperative relationship between the processor emulator, peripheral scheduler, peripheral emulator, clock converter, and plant simulator that are assigned to the individual CPUs 1 to CPUn and operate as individual threads or processes. It is a functional block diagram shown.
  • the present invention is characterized in that a peripheral scheduler 502, which is itself a single thread or process, is a peripheral emulator 504a, 504b, 504c,... It is to control 504z closely.
  • a peripheral scheduler 502 which is itself a single thread or process, is a peripheral emulator 504a, 504b, 504c,... It is to control 504z closely. This feature will be better understood in contrast to the typical prior art configuration of FIG. 1 where the peripheral emulators are within individual ECU emulators and operate independently of each other.
  • processor emulators 506a, 506b, 506c,... 506m each of which is an independent thread or process, are basically interrupted from the associated peripheral emulators 504a, 504b, 504c,. In response, it operates while communicating, but also receives control from the peripheral scheduler 502 directly. The control mechanism will be described later.
  • plant simulators 508a, 508b,... 508n communicate with peripheral emulators 504a, 504b, 504c,.
  • the plant simulators 508a, 508b,... 508n incorporate a module that performs the function of the clock converter shown in FIG.
  • the operation clock of the peripheral emulator is about 1000 times finer than the operation clock of the plant simulator. Therefore, such a clock converter function is provided to arrive at the plant simulator from the peripheral emulator.
  • the interface needs to be matched by thinning out the pulses while increasing the number of pulses sent from the plant simulator to the peripheral emulator.
  • FIG. 6 is a timing chart showing an outline of operations of the peripheral emulator, the processor emulator, and the plant simulator under the control of the peripheral scheduler.
  • Each of the peripheral emulators has time information corresponding to a specific processing break position, and the value is obtained by, for example, analyzing a SystemC source code for describing the peripheral emulator by a computer program. Can be acquired.
  • the delimiter position of the peripheral emulator corresponds to, for example, a line described as wait () in the case of description in SystemC.
  • the peripheral scheduler can be obtained by multiplying them by an integer. 502 can calculate the timing of the next processing break. However, unless it is very limited, the processing delimiter position of the peripheral emulator is generally not periodic.
  • the process in which the peripheral scheduler 502 selects the peripheral emulator whose timing is to be matched is as follows. That is, for example, by scanning the peripheral emulator SystemC source code in advance with a predetermined program, a table including the time between processing breaks is saved in a shared memory or the like for each peripheral emulator. Peripheral scheduler 502 makes this table available for reference. Accordingly, the peripheral scheduler 502 can additionally calculate the next process break based on the table entry, and selects the next process break from the current simulation time as the next target time. It becomes possible.
  • the timing T 1 related to the peripheral 2 is the timing at which the peripheral scheduler 502 recognizes that the timing of the first peripheral emulator processing after the simulation system starts is the timing T 1.
  • the peripheral scheduler 502 causes all processor emulators and all plant simulators to execute.
  • peripheral scheduler 502 the timing T 2 associated with the peripheral n is aware that it is time for delimiting the processing of the next peripheral emulator after simulation system start, toward the timing T 2, peripheral The scheduler 502 executes all processor emulators and all plant simulators.
  • the peripheral scheduler 502 determines the timing of such sequential peripheral emulator processing delimiters based on the time information of all the peripheral emulator processing delimiter positions stored in advance in the peripheral scheduler 502. Sequentially from the start of the simulation system, by finding the closest timing of any peripheral emulator.
  • FIG. 7 is a diagram schematically showing a mechanism for performing synchronous control by the peripheral scheduler 502. That is, according to this embodiment of the present invention, completion flags 702a, 702b, 702c,... Corresponding to the peripheral emulators 502a, 502b, 502c,. Using the completion flags 702a, 702b, 702c, etc., the peripheral scheduler 502 executes synchronous control for the peripheral emulators 502a, 502b, 502c.
  • step 802 the peripheral scheduler 502 initializes and starts processing of all the peripheral emulators. This initialization includes a process of resetting all the completion flags 702a, 702b, 702c... Corresponding to the peripheral emulators 502a, 502b, 502c.
  • the peripheral scheduler 502 refers to the table including the time between processing breaks for each peripheral emulator, so that the peripheral time expected to arrive at the nearest time is as follows. Find an emulator.
  • step 806 the peripheral scheduler 502 causes all the processor emulators and all the plant simulators to be executed simultaneously and in parallel toward the time point indicated by the closest timing found in step 804. Then wait for the completion.
  • step 808 the peripheral scheduler 502 is set.
  • the peripheral emulator associated with the timing found in step 804 waits for a processing break.
  • the peripheral emulator When the peripheral emulator having the timing found in step 804 as the processing break comes, the peripheral emulator turns on the completion flag and temporarily stops the processing. This process will be described in more detail with reference to the flowchart of FIG. This is communicated to the peripheral scheduler 502 by inter-thread communication, which in step 810, between the peripheral emulator and the processor emulator, and between the peripheral emulator, I / O data and the plant simulator. Synchronize the I / O data with the interrupt. When it completes, the peripheral scheduler 502 turns off the peripheral emulator completion flag associated with the timing found in step 804 and returns to step 804.
  • the peripheral scheduler 502 finds a peripheral emulator that is expected to have a processing break at the next closest point.
  • the peripheral emulator that is expected to complete processing at the next closest time point here is peripheral n in the example of FIG. 6, and timing T 2 is selected in relation to it.
  • step 902 the peripheral emulator waits for the completion flag to be cleared (OFF).
  • step 904 the peripheral emulator performs a specific process.
  • the peripheral emulator sets a completion flag (ON) in step 906, returns to step 902, and waits for the completion flag to be cleared (OFF).
  • a host processor that is, CPU1, CPU2,..., CPUn shown in FIG. 4 executes a guest processor, that is, a program developed for an actual machine such as an automobile embedded system. Is done. At this time, whether the source code is present or only the binary for the guest is present, the code is executed after being converted into binary code on the host processor.
  • a special code is inserted at a key point.
  • T_CPU + Const
  • the following code for determining whether to wait by comparing the simulation time (T_Peripheral) to be stopped with its own progress time at a rate of about 1 in 80 cycles is as follows. Insert into code that runs on the processor. if (T_CPU> T_Peripheral) ⁇ POST Completion_flag; do ⁇ SLEEP_TEMPORARY; ⁇ while (T_CPU>T_Peripheral); ⁇
  • POST Completion_flag is a process of setting (ON) a completion flag (Completion_flag).
  • the completion flag area is preferably secured on the shared memory.
  • T_CPU> T_Peripheral loop performs a sleep operation called SLEEP_TEMPORARY until the T_Peripheral value reserved on the shared memory is overwritten by the peripheral scheduler 502 and the T_CPU> T_Peripheral judgment is false. .
  • FIG. 10 is a functional block diagram for explaining the above processing. That is, the peripheral scheduler 502 sets the time T_Peripheral 1002 based on the timing of the peripheral emulator at which the processing break comes first, and each of the processor emulators 506a, 506b, 506c,. Each has its own time T_CPU1, T_CPU2, T_CPU3,.
  • the peripheral scheduler 502 clears (OFF) the completion flags 1004a, 1004b, 1004c,... Of each processor emulator 506a, 506b, 506c..., And each processor emulator has T_CPU> T_Peripheral. At this point, a standby state is entered by the above code.
  • the peripheral scheduler 502 provides a new T_Peripheral 1002 that satisfies T_CPU ⁇ T_Peripheral, and the completion flags 1004a, 506a, 506b, 506c,. 1004b, 1004c,... Are cleared (OFF).
  • a plant simulator originally calculates and updates an internal state such as a differential equation approximately by cutting time into short steps. Therefore, it can be said that it is highly adaptable to advance the processing to a given time.
  • the peripheral scheduler 502 sets a time T_Peripheral 1002 based on the timing of the peripheral emulator at which the processing break comes first, and each plant simulator 508a, 508b, 508c,. 1104a, 1104b, 1104c,.
  • the peripheral scheduler 502 clears (OFF) the completion flags 1102a, 1102b, 1102c,... Of each plant simulator 508a, 508b, 508c,.
  • the completion flags 1102a, 1102b, 1102c,... are preferably secured on the shared memory.
  • step 1202 the plant simulator waits until the peripheral scheduler sets a new time T. This time is T_Peripheral 1002 shown in FIG.
  • step 1204 the plant simulator determines whether or not my_time> ⁇ T.
  • my_time is the completion times 1104a and 1104b corresponding to the plant simulator shown in FIG.
  • step 1206 If my_time> T is not true, the plant simulator goes to step 1206 to advance a predetermined processing step. In step 1208, my_time is advanced, and the process returns to step 1204.
  • the completion flag of the plant simulator and the processor emulator can be implemented as a counter semaphore as an example.
  • n_plants is the number of plant simulators executed in the simulation system.
  • sem_post & sem_start [k]
  • sem_wait & sem_start [k]
  • POST Completion_flag corresponds to sem_post (& sem_finish) in the processor emulator.
  • the completion flag is shown separately. However, if the counter type semaphore is used as described above, one is sufficient.
  • the present invention is not limited to a specific computer architecture or platform, and can be implemented on any platform capable of realizing multitasking.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

Provided is a V-PILS by which reproducibility of a simulation operation can be achieved while reasonably maintaining a operation speed. A peripheral scheduler starts concurrent operation of all peripheral emulators, identifies a peripheral emulator (peripheral P) which is scheduled to reach a separation of a process earliest on the basis of the process separation time of the set respective peripheral emulators, executes each processor emulator and each plant simulator until the separation time, and synchronizes data between the peripheral P and the processor emulator and the peripheral P and the plant simulator.

Description

シミュレーション方法、システム及びプログラムSimulation method, system and program

 本発明は、自動車などの物理システムのシミュレーションに関し、より詳しくは、ソフトウェア・ベースでのシミュレーション・システムに関するものである。 The present invention relates to a simulation of a physical system such as an automobile, and more particularly to a software-based simulation system.

 自動車は、その初期の時代の20世紀初頭は、動力としてのエンジンと、ブレーキ、アクセル、ハンドル、トランスミッション、サスペンジョンを含む、機構部品からなっていたが、エンジンのプラグの点火、ヘッドライト以外は、電気的な仕組みはほとんど利用していなかった。 In the early twentieth century of the early era, automobiles consisted of mechanical parts including an engine as power and a brake, accelerator, steering wheel, transmission, and suspension. Except for the ignition of the engine plug and the headlight, Almost no electrical mechanism was used.

 ところが、1970年代頃から、大気汚染、石油危機などに備えて、エンジンを効率的に制御する必要性が生じ、このためエンジンの制御に、ECUが使用されるようになってきた。ECUは、一般的に、センサからの入力信号を、例えばA/D変換する入力インターフェースと、決められた論理に従ってディジタル入力信号を処理する論理演算部(マイクロコンピュータ)と、その処理結果を、アクチュエータ作動信号に変換する出力インターフェースとから構成される。 However, since around the 1970s, there has been a need to efficiently control the engine in preparation for air pollution, an oil crisis, and the like. For this reason, ECUs have been used for engine control. The ECU generally includes an input interface for A / D conversion, for example, an input interface from a sensor, a logical operation unit (microcomputer) that processes a digital input signal in accordance with a predetermined logic, and the processing result as an actuator. And an output interface for converting into an operation signal.

 いまや、エンジンやトランスミッションなどの制御システム、Anti-lock Breaking System (ABS)、Electronic Stability Control (ESC)、パワーステアリングだけでなく、ワイパー制御やセキュリティ・モニタリング・システムなどに至るまで、最近の自動車では、機構部品だけでなく、エレクトロニクス部品やソフトウエアが重要な比率を占める。後者に関する開発費は全体の25%とも40%とも言われ、ハイブリッド型の自動車では70%を占める。 Nowadays, not only control systems such as engines and transmissions, Anti-lock Breaking System (ABS), Electronic Stability Control (ESC), power steering, wiper control and security monitoring system, etc. Not only mechanical parts but also electronic parts and software account for an important proportion. The development cost for the latter is said to be 25% or 40% of the total, accounting for 70% for hybrid type vehicles.

 ところで、自動車は、エンジンなどの動力装置や動力伝達装置、ステアリングなどの走行装置、ブレーキ装置、その他ボディ系などの機械部品(プラント)で構成され、また、これらのプラントの動作は、30~70以上の電子制御ユニット(ECU)のプログラムがセンサ入力(速度など)や人間からの入力(アクセルなど)に応じて、動的に決定する。 By the way, an automobile is composed of a power device such as an engine, a power transmission device, a traveling device such as a steering, a brake device, and other machine parts (plants) such as a body system. The operation of these plants is 30 to 70. The program of the electronic control unit (ECU) described above is dynamically determined according to sensor input (speed etc.) or human input (accelerator etc.).

 ECUは、基本的に各々が一つのプラントの動作を制御する。たとえば、エンジンへの燃料噴射(Fuel Injection)や点火(Ignition)は、エンジン・コントロール・ユニットがその量やタイミングをソフトウエアにより決定する。ソフトウエアなので、「スポーツ」モードを用意するような高級車では、モードに応じて燃料噴射量を増量・減量することもできる。また、シフトダウンのタイミングにあわせて、自動的にブリッピング(空ぶかし)してエンジンの回転数を合わせることもできる。この場合には、エンジンのECUとトランスミッションのECUが連携して動作する必要がある。自動車の横滑りなどを防止するための統合車両姿勢安定制御(ESC: Electronic Stability Control)システムでは、さらにブレーキなどの制動装置との連動も必要となり、ECUソフトウエアは複雑になる。なお、このような「介入」機能は、ソフトウエアであるがゆえに、容易にカットすることができる。 Each ECU basically controls the operation of one plant. For example, the amount and timing of fuel injection (Fuel 燃料 Injection) and ignition (Ignition) into the engine are determined by software by the engine control unit. Since it is software, it is possible to increase or decrease the fuel injection amount according to the mode in a luxury car with a “sport” mode. In addition, the engine speed can be adjusted by automatically blipping in accordance with the downshift timing. In this case, the ECU of the engine and the ECU of the transmission need to operate in cooperation. In an integrated vehicle attitude stability control (ESC: Electronic Stability Control) system for preventing a side slip of an automobile, further interlocking with a braking device such as a brake is required, and the ECU software becomes complicated. Such an “intervention” function can be easily cut because it is software.

 さて、プラントの性能を十分に引き出し、かつ、安全に動作させるためには、ECUソフトウエアの設計開発の過程において、動作パラメータのチューニングとテストを十分に行うことが重要である。一般に、実車をプロトタイプしてから、チューニングとテストを繰り返すのではコストと時間がかかりすぎるので、プロトタイプする前にコントローラとプラントを計算機の中で仮想的に実現して、高速にかつ正確に動かして、その動作を確認する方法が強く望まれる。このようなECUシミュレーションは、(1)ステートマシンなどの表現形式を用いてコントローラの動作を論理的に表現する Model-in-the-Loop Simulation (MILS)、(2)その論理動作に、データ精度などハードウエアの制約を一部導入した Software-in-the-Loop Simulation (SILS)、(3)ソフトウエアを完全に実装してECUプロセッサをエミュレートする Virtual Processor-in-the-Loop Simulation (V-PILS)、そして、(4)ECUボードを完全に実装して、リアルタイム・プラント・シミュレーションと接続する Hardware-in-the-Loop Simulation (HILS) の4種類の方式があり、 この順序で、よりプロトタイプに近くなる。 Now, in order to extract the performance of the plant sufficiently and operate it safely, it is important to fully tune and test the operating parameters in the process of ECU software design and development. In general, it is too expensive and time-consuming to prototype and then tune and test repeatedly, so the controller and plant can be virtually implemented in the computer before prototyping to move quickly and accurately. A method for confirming the operation is strongly desired. Such ECU simulations are: (1) Model-in-the-Loop (Simulation) (MILS), which logically expresses the operation of the controller using an expression form such as a state machine, (2) Data accuracy in the logical operation Software-in-the-Loop Simulation (SILS), which introduced some hardware restrictions, such as (3) Virtual processor-in-the-Loop Simulation (V) -PILS), and (4) There are four types of hardware-in-the-loop (Simulation) (HILS) that fully implements the ECU board and connects with real-time plant simulation. Close to the prototype.

 MILS/SILSは主に、プラントの基本的な性能を引き出すための試行錯誤フェーズに用いられている。しかし、実際にECUに搭載されるソフトウエアとは異なる動作をするので、製品の検証用途には利用することができない。一方、V-PILSは完成したECUソフトウエアを利用するので、ソフトウエアの期待しない動作(バグ)を発見して解決するための方式として非常に有望視されているが、再現性のある動作を達成するものとしては、まだ実現した例はない。HILSは、完成したECUボードの最終的な動作確認のために必ず実施されるが、障害が見つかっても再現性が保障されないのでデバッグ目的には利用できない。 MILS / SILS is mainly used in the trial and error phase to bring out the basic performance of the plant. However, since it operates differently from the software actually installed in the ECU, it cannot be used for product verification purposes. On the other hand, V-PILS uses completed ECU software, so it is very promising as a method for finding and solving unexpected operations (bugs) of the software, but it has reproducible operations. There is no example that has been achieved yet. HILS is always carried out to confirm the final operation of the completed ECU board. However, even if a failure is found, reproducibility is not guaranteed, so it cannot be used for debugging purposes.

 HILSにおいて動作が再現できない理由は、HILSの構成が不完全だからではなく、CANなどのネットワークにより各ECUが相互に接続しているためである。一般に、ネットワークはモジュール間の疎な結合を実現しているため、モジュール動作の微妙なタイミングの違いでデータの到着順序が入れ替わり、結果として、システム全体の挙動が異なることがある。したがって、たとえ実車をプロトタイプしたとしても、動作の再現性は期待できない。並列分散システムのデバッグが非常に困難であることと同じ理由である。 The reason why the operation cannot be reproduced in HILS is not because the configuration of HILS is incomplete, but because each ECU is connected to each other by a network such as CAN. In general, since a network realizes loose coupling between modules, the arrival order of data is changed due to a subtle difference in timing of module operation, and as a result, the behavior of the entire system may be different. Therefore, even if an actual vehicle is prototyped, the reproducibility of the operation cannot be expected. This is the same reason that debugging a parallel distributed system is very difficult.

 このように、HILSの構成のまま、すなわち、ECUボードとプラント・シミュレータとの疎結合という構成のままでは、それぞれのコンポーネントを高速化しても動作の一貫性は実現できない。コミュニケーションの順序の一貫性を実現することが、動作の再現性を実現するために必要である。V-PILSは特に、この問題を解消することが期待される。 As described above, with the HILS configuration, that is, the loosely coupled configuration of the ECU board and the plant simulator, it is not possible to achieve operation consistency even if the speed of each component is increased. Realizing the consistency of the communication order is necessary to realize the reproducibility of the movement. V-PILS is particularly expected to solve this problem.

 従来の概念に従う、典型的なV-PILSの構成を図1に示す。この構成は、複数のECUエミュレータと、複数のプラント・シミュレータと、全体の動作をスケジュールするグローバル・スケジューラ110からなる。図1では便宜上、2つのECUエミュレータ102及び104と、2つのプラント・シミュレータ106及び108が図示されているが、実際は図示されているよりも多いECUエミュレータとプラント・シミュレータからなることを理解されたい。 Fig. 1 shows a typical V-PILS configuration according to the conventional concept. This configuration includes a plurality of ECU emulators, a plurality of plant simulators, and a global scheduler 110 that schedules the overall operation. In FIG. 1, for convenience, two ECU emulators 102 and 104 and two plant simulators 106 and 108 are shown. However, it should be understood that actually, there are more ECU emulators and plant simulators than shown. .

 ECUエミュレータ102は、プロセッサ・エミュレータ102aと、ペリフェラル・エミュレータ102bからなる。ECUエミュレータ104も同様であるので、ECUエミュレータ104については、詳しい説明を省略する。 The ECU emulator 102 includes a processor emulator 102a and a peripheral emulator 102b. Since the ECU emulator 104 is similar, detailed description of the ECU emulator 104 is omitted.

 一方、プラント・シミュレータ106には、クロック・コンバータ106aが接続されている。プラント・シミュレータ108も同様であるので、プラント・シミュレータ108については、詳しい説明を省略する。プラント・シミュレータ106は例えは、ブレーキ・シミュレータであり、プラント・シミュレータ108は、エンジン・シミュレータである。 On the other hand, a clock converter 106 a is connected to the plant simulator 106. Since the plant simulator 108 is the same, detailed description of the plant simulator 108 is omitted. The plant simulator 106 is a brake simulator, for example, and the plant simulator 108 is an engine simulator.

 さて、図示されている周波数は、例示的な典型的な動作クロック数である。すなわち、プロセッサ・エミュレータ102aは、80MHzという相対的に高速のクロックで動作する。一方、プラント・シミュレータ106は、物理機構のシミュレータであるため、10KHzという相対的に低速で動作する。 Now, the frequency shown is an exemplary typical number of operating clocks. That is, the processor emulator 102a operates with a relatively high-speed clock of 80 MHz. On the other hand, since the plant simulator 106 is a physical mechanism simulator, it operates at a relatively low speed of 10 KHz.

 次に、図2のタイミング図を参照して、図1の構成の動作について説明する。固定ステップのクロックででシミュレートされるプラント・シミュレータでは、例えば10KHz、すなわち、100μsの時間ステップで入出力を繰り返す。入力は主にコントローラからの指示信号であり、出力はセンサーに送られる。 Next, the operation of the configuration of FIG. 1 will be described with reference to the timing chart of FIG. In a plant simulator simulated with a fixed-step clock, input / output is repeated at a time step of, for example, 10 kHz, that is, 100 μs. The input is mainly an instruction signal from the controller, and the output is sent to the sensor.

 ペリフェラル・エミュレータは、ECUエミュレータのI/O のインターフェイス部にあたり、プラント・シミュレータとプロセッサ・エミュレータを相互に接続する。典型的には(平均的には)10MHz 程度の解像度で動作すると捉えることができる。これは、プラント・シミュレータより高速だが、プロセッサ・エミュレータよりは低速となる。ペリフェラル・エミュレータは、プラント・シミュレータに対しては、パルス状の信号を送る。 The peripheral emulator is the interface part of the I / O IV of the ECU emulator and connects the plant simulator and processor emulator to each other. It can be seen that it typically operates at a resolution of about 10MHz (on average). This is faster than a plant simulator but slower than a processor emulator. The peripheral emulator sends a pulse signal to the plant simulator.

 クロック・コンバータは、ペリフェラル・エミュレータとプラント・シミュレータの間に介在配置されて、ペリフェラル・エミュレータからのクロック信号の周波数を、プラント・シミュレータに適合するように低減し、且つ、プラント・シミュレータからの信号を、ペリフェラル・エミュレータに適合するように周基数を逓増させる機能をもつ。 The clock converter is interposed between the peripheral emulator and the plant simulator, and reduces the frequency of the clock signal from the peripheral emulator so as to be compatible with the plant simulator, and the signal from the plant simulator. Has a function to increase the peripheral radix to fit the peripheral emulator.

 ペリフェラル・エミュレータは、プロセッサ・エミュレータに対しては、読み書き(R/W)の要求を受けてデータを送受信することと、割り込み(INT)を送ることを行う。特に、プロセッサ間を相互に接続するCAN(controller area network)などネットワークの機能は、ペリフェラル間の通信を必要とする。 The peripheral emulator sends and receives data to the processor emulator in response to a read / write (R / W) request and sends an interrupt (INT). In particular, a network function such as a CAN (controller area network) that interconnects processors requires communication between peripherals.

 組み込み用のプロセッサは、80-100MHz 程度で動作するものが多く、従って、ペリフェラルの時間解像度と比べると10倍程度高速である。プロセッサは、ペリフェラルに対しては、読み書き(R/W)操作を行う。また、ペリフェラルから割り込み信号(INT)を受け取る。 組 み 込 み Many embedded processors operate at about 80-100MHz, so they are about 10 times faster than the peripheral time resolution. The processor performs a read / write (R / W) operation on the peripheral. It also receives an interrupt signal (INT) from the peripheral.

 一側面からみると、ペリフェラルは、プラントとプロセッサ、及びプロセッサ間を相互に接続する、システムの中心である。プロセッサは、ペリフェラルよりも細かい時間解像度で R/W 操作を行うが、そのための信号がプラントや他のプロセッサに伝達されるときは、ペリフェラルの時間解像度に支配される。従って、シミュレーション・システム全体では、ペリフェラルの時間解像度でセンサーデータなどの同期処理を行えば、I/O データや割り込みの処理順序は正しく再現される(細粒同期=minimum synchronization)。 From one aspect, the peripheral is the center of the system that interconnects the plant, processor, and processors. The processor performs R / W operation with finer time resolution than the peripheral, but when the signal for that is transmitted to the plant or other processors, it is governed by the time resolution of the peripheral. Therefore, in the entire simulation system, if the synchronization processing of sensor data and the like is performed at the peripheral time resolution, the processing sequence of I / O data and interrupts is correctly reproduced (fine-grain synchronization = minimum synchronization).

 一般に、同期の時間間隔を短くすれば、より正しい動作を実現できるが、逆に処理時間のオーバヘッドを大きくするので全体処理にかかる時間が増加する。細粒同期は、これ以上細かくする必要がないという、時間解像度の上限を与えるものである。 Generally, if the synchronization time interval is shortened, more correct operation can be realized, but conversely, since the processing time overhead is increased, the time required for the entire processing increases. Fine grain synchronization gives an upper limit on time resolution that does not require further refinement.

 1つの解決策は、グローバル・スケジューラ110に従って、図3に示すように、同期の時間間隔を最大公約数まで引き下げることである。これによって、正確性は達成できるが、不要なタイミングでの同期処理が増えるので、同期処理のオーバヘッドが非常に大きくなる。これによって、シミュレーション・システムの処理速度が著しく低下してしまう。 One solution is to reduce the synchronization time interval to the greatest common divisor as shown in FIG. 3 according to the global scheduler 110. As a result, accuracy can be achieved, but synchronization processing at an unnecessary timing increases, so the overhead of synchronization processing becomes very large. This significantly reduces the processing speed of the simulation system.

 もし、ペリフェラルの処理区切りを明示的に利用することができなければ、最大公約数さえも知ることは難しいので、時間解像度を引き上げる対応により、さらにオーバヘッドは大きくなる。 If it is not possible to explicitly use the peripheral processing delimiter, it is difficult to know even the greatest common divisor, so the overhead is further increased by increasing the time resolution.

 一方、時間解像度を粗くすると、多くのI/Oデータや割り込みが同一の時間ステップに押し込められることになり、その時間的前後関係の情報が失われる。これは、シミュレーションを正しく実行できていない、つまり、正確性が達成されていない状況である。特に、割り込み処理の実行順序は、ソフトウエアを意図どおりに動作させるためにも非常に重要である。数少ない現存の V-PILSシステムは、この不正確なシミュレーション状況にあり、その順序情報喪失のために、ECUソフトウエアのデバッグも十分に行えていないという重大な問題がある。 On the other hand, if the time resolution is made coarse, a lot of I / O data and interrupts are pushed into the same time step, and the temporal context information is lost. This is a situation where the simulation is not executed correctly, that is, the accuracy is not achieved. In particular, the execution order of the interrupt processing is very important for operating the software as intended. The few existing V-PILS systems are in this inaccurate simulation situation, and due to the loss of order information, there is a serious problem that the ECU software cannot be sufficiently debugged.

 特開2007-11720号公報は、複雑な構成のシステムに対応しつつ、システムシミュレータの構成を柔軟に変更可能とすることを解決すべき課題とするもので、システムシミュレータを、CPUの動作をシミュレートするインストラクションセットシミュレータ、バスの動作をシミュレートするバスシミュレータ、ペリフェラルの動作をシミュレートするペリフェラルシミュレータの3種類で構成し、各シミュレータ間で互いの状態を参照・変更可能な各インターフェースをそれぞれ設けることを開示する。しかし、この従来技術は、ペリフェラルとCPU間の同期を最適化する技法について示唆するものではない。 Japanese Patent Application Laid-Open No. 2007-11720 is intended to solve the problem that it is possible to flexibly change the configuration of a system simulator while dealing with a system having a complicated configuration. The system simulator simulates the operation of a CPU. It consists of three types: an instruction set simulator that simulates the bus, a bus simulator that simulates the operation of the bus, and a peripheral simulator that simulates the operation of the peripheral. To disclose. However, this prior art does not suggest a technique for optimizing the synchronization between the peripheral and the CPU.

特開2007-11720号公報JP 2007-11720 A

 この発明の目的は、動作速度を妥当に維持しつつ、シミュレーション動作の再現性を実現することを可能ならしめる、V-PILSを提供することにある。 An object of the present invention is to provide a V-PILS that makes it possible to realize the reproducibility of the simulation operation while maintaining the operation speed appropriately.

 この発明は、上記課題を解決するためになされたものであり、この発明によれば、ペリフェラル・エミュレータ、プロセッサ・エミュレータ、及びプラント・シミュレータ全体の動作タイミングを制御するペリフェラル・スケジューラが用意される。 The present invention has been made to solve the above problems, and according to the present invention, a peripheral emulator, a processor emulator, and a peripheral scheduler for controlling the operation timing of the entire plant simulator are prepared.

 この発明によれば、ペリフェラル・スケジューラによる制御を可能ならしめるために、ペリフェラル・エミュレータ、プロセッサ・エミュレータ、及びプラント・シミュレータの各々に個別に対応する完了フラグが用意される。 According to the present invention, in order to enable control by the peripheral scheduler, a completion flag corresponding to each of the peripheral emulator, the processor emulator, and the plant simulator is prepared.

 個々のペリフェラル・エミュレータはそれぞれ、固有の処理の区切りをもつ。典型的にはペリフェラル・エミュレータはSystemCで記述されるので、そのソースコードを、プログラムを用いてスキャンすることによって、固有の処理の区切りを確認することができる。典型的には、wait()と記述された行が区切りとなる。 Each individual peripheral emulator has its own processing delimiter. Typically, the peripheral emulator is written in SystemC, and therefore, the source code can be scanned by using a program to check the specific processing delimiter. Typically, the line describing wait () is a delimiter.

 そのようにして確認された個々のペリフェラル・エミュレータの処理の区切りの情報は、ペリフェラル・スケジューラに関連づけられる。 The information of the processing delimiter of each peripheral emulator confirmed in this way is related to the peripheral scheduler.

 このような準備の下で、ペリフェラル・スケジューラは、全てのペリフェラル・エミュレータの完了フラグを解除(OFF)することによって、並列動作を開始する。そうして、ペリフェラル・スケジューラは、個々のペリフェラル・エミュレータの処理の区切りの情報に基づき、最も早く処理の区切りを迎える予定のペリフェラル・エミュレータを見出す。それをペリフェラルPと呼ぶことにする。その処理の区切りの時間をTとすると、ペリフェラル・スケジューラは、時間Tに達する時点まで、各プロセッサ・エミュレータと、各プラント・シミュレータの実行を進める。 Under such preparation, the peripheral scheduler starts parallel operation by releasing (OFF) the completion flag of all peripheral emulators. Then, the peripheral scheduler finds the peripheral emulator that is scheduled to reach the process break earliest based on the process break information of each peripheral emulator. I will call it Peripheral P. Assuming that the time between the processes is T, the peripheral scheduler advances the execution of each processor emulator and each plant simulator until the time T is reached.

 そうして、ペリフェラル・スケジューラは、ペリフェラルPの完了フラグが設定されるのを待つ。ペリフェラルPは、自身が処理の区切りに達すると、完了フラグを設定する。ペリフェラルPの完了フラグが設定されたことに応答して、ペリフェラル・スケジューラは、ペリフェラルPと、プロセッサ・エミュレータ及びプラント・シミュレータの間でデータを同期させる。 Then, the peripheral scheduler waits for the peripheral P completion flag to be set. The peripheral P sets a completion flag when it reaches the processing break. In response to the peripheral P completion flag being set, the peripheral scheduler synchronizes data between the peripheral P and the processor emulator and plant simulator.

 次にペリフェラル・スケジューラは、ペリフェラルPの完了フラグを解除(OFF)して、その動作を再開する。これにより再び、全てのペリフェラル・エミュレータが並列に動作する。 Next, the peripheral scheduler releases the peripheral P completion flag (OFF) and restarts its operation. This again causes all peripheral emulators to operate in parallel.

 その後、ペリフェラル・スケジューラは、設定された個々のペリフェラル・エミュレータの区切りの情報に基づき、次に最も早く処理の区切りを迎える予定のペリフェラル・エミュレータを見出す。ペリフェラル・スケジューラは、このような、ペリフェラル・エミュレータの処理の区切りのタイミングを基準とした動作スケジューリングで、シミュレーション・システム全体を動作させる。 After that, the peripheral scheduler finds the peripheral emulator that is scheduled to reach the next processing break the earliest based on the set information of each peripheral emulator break. The peripheral scheduler operates the entire simulation system by such operation scheduling based on the timing of the peripheral emulator processing.

 以上のように、この発明によれば、ペリフェラルを介して個々のモジュールが通信するシミュレーション・システムにおいて、ペリフェラル・エミュレータの処理の区切りのタイミングを基準とした動作スケジューリングによって、処理の再現性が保証される、という効果が得られる。また、ペリフェラル・エミュレータの処理の区切りの情報という、細粒同期よりも粗く且つ処理の再現性が保証される最適な粒度で処理の同期が行われるので、シミュレーションの最適化が達成される。 As described above, according to the present invention, in a simulation system in which individual modules communicate via a peripheral, the reproducibility of the process is guaranteed by the operation scheduling based on the timing of the peripheral emulator process. The effect that Further, since the processing synchronization is performed at an optimum granularity that is coarser than the fine-grained synchronization and that guarantees the reproducibility of the processing, that is, processing delimiter information of the peripheral emulator, optimization of the simulation is achieved.

従来のV-PILSシステムの構成を示すブロック図である。It is a block diagram which shows the structure of the conventional V-PILS system. 従来のV-PILSシステムの動作を示すタイミング図である。It is a timing diagram which shows the operation | movement of the conventional V-PILS system. 最大の粒度で同期させる、従来のV-PILSシステムの動作のタイミング図である。FIG. 6 is a timing diagram of the operation of a conventional V-PILS system that is synchronized with maximum granularity. コンピュータのハードウェア構成のブロック図である。It is a block diagram of the hardware constitutions of a computer. ペリフェラル・スケジューラ、ペリフェラル・エミュレータ、プロセッサ・エミュレータ及びプラント・シミュレータの論理的な接続関係を示すブロック図である。It is a block diagram which shows the logical connection relation of a peripheral scheduler, a peripheral emulator, a processor emulator, and a plant simulator. 本発明のシミュレーション・システムの構成の動作を示すタイミング図である。It is a timing diagram which shows operation | movement of the structure of the simulation system of this invention. ペリフェラル・エミュレータに対する完了フラグの機能を示す図である。It is a figure which shows the function of the completion flag with respect to a peripheral emulator. ペリフェラル・スケジューラの動作のフローチャートを示す図である。It is a figure which shows the flowchart of operation | movement of a peripheral scheduler. ペリフェラル・エミュレータの動作のフローチャートを示す図である。It is a figure which shows the flowchart of operation | movement of a peripheral emulator. プロセッサ・エミュレータに対する完了フラグの機能を示す図である。It is a figure which shows the function of the completion flag with respect to a processor emulator. プラント・シミュレータに対する完了フラグの機能を示す図である。It is a figure which shows the function of the completion flag with respect to a plant simulator. プラント・シミュレータの動作のフローチャートを示す図である。It is a figure which shows the flowchart of operation | movement of a plant simulator.

 以下、図面を参照して、本発明の一実施例の構成及び処理を説明する。以下の記述では、特に断わらない限り、図面に亘って、同一の要素は同一の符号で参照されるものとする。なお、ここで説明する構成と処理は、一実施例として説明するものであり、本発明の技術的範囲をこの実施例に限定して解釈する意図はないことを理解されたい。 Hereinafter, the configuration and processing of an embodiment of the present invention will be described with reference to the drawings. In the following description, the same elements are referred to by the same reference numerals throughout the drawings unless otherwise specified. It should be understood that the configuration and processing described here are described as an example, and the technical scope of the present invention is not intended to be limited to this example.

 先ず、図4を参照して、本発明を実施するために使用されるコンピュータのハードウェアについて説明する。図4において、ホスト・バス402には、複数のCPU1 404a、CPU2 404b、CPU3 404c、・・・CPUn 404nが接続されている。ホスト・バス402にはさらに、CPU1 404a、CPU2 404b、CPU3 404c、・・・CPUn 404nの演算処理のためのメイン・メモリ406が接続されている。 First, the hardware of a computer used for carrying out the present invention will be described with reference to FIG. 4, a plurality of CPU1 404a, CPU2 404b, CPU3 404c,... CPUn 404n are connected to the host bus 402. Further connected to the host bus 402 is a main memory 406 for CPU1 404a, CPU2 404b, CPU3 404c,.

 一方、I/Oバス408には、キーボード410、マウス412、ディスプレイ414及びハードティスク・ドライブ416が接続されている。I/Oバス408は、I/Oブリッジ418を介して、ホスト・バス402に接続されている。キーボード410及びマウス412は、オペレータが、コマンドを打ち込んだり、メニューをクリックするなどして、操作するために使用される。ディスプレイ414は、必要に応じて、処理をGUIで操作するためのメニューを表示するために使用される。 On the other hand, a keyboard 410, a mouse 412, a display 414 and a hard disk drive 416 are connected to the I / O bus 408. The I / O bus 408 is connected to the host bus 402 via the I / O bridge 418. The keyboard 410 and the mouse 412 are used by an operator to operate by typing a command or clicking a menu. The display 414 is used to display a menu for operating the process with the GUI as necessary.

 この目的のために使用される好適なコンピュータ・システムのハードウェアとして、IBM(R)System Xがある。その際、CPU1 404a、CPU2 404b、CPU3 404c、・・・CPUn 404nは、例えば、インテル(R)Xeon(R)であり、オペレーティング・システムは、Windows(商標)Server 2003である。オペレーティング・システムは、好適には、マルチタスクの機能を有するものである。オペレーティング・システムは、ハードティスク・ドライブ416に格納され、コンピュータ・システムの起動時に、ハードティスク・ドライブ416からメイン・メモリ406に読み込まれる。 As a suitable computer system hardware used for this purpose, there is IBM® System X. At that time, CPU1 404a, CPU2 404b, CPU3 404c,..., CPUn 404n are, for example, Intel (R) Xeon (R), and the operating system is Windows (trademark) Server 2003. The operating system preferably has a multitasking function. The operating system is stored on the hard disk drive 416 and is read from the hard disk drive 416 into the main memory 406 when the computer system is started.

 本発明を実施するためには、マルチプロセッサ・システムを用いることが望ましい。ここでマルチプロセッサ・システムとは、一般に、独立に演算処理し得るプロセッサ機能のコアを複数もつプロセッサを用いるシステムを意図しており、従って、マルチコア・シングルプロセッサ・システム、シングルコア・マルチプロセッサ・システム、及びマルチコア・マルチプロセッサ・システムのどれかでよいことを理解されたい。 In order to implement the present invention, it is desirable to use a multiprocessor system. Here, the multiprocessor system is generally intended to be a system using a processor having a plurality of cores of processor functions that can independently perform arithmetic processing. Therefore, a multicore single processor system or a single core multiprocessor system is used. And any multi-core multi-processor system.

 なお、本発明を実施するために使用可能なコンピュータ・システムのハードウェアは、IBM(R)System Xに限定されず、本発明のシミュレーション・プログラムを走らせることができるものであれば、任意のコンピュータ・システムを使用することができる。オペレーティング・システムも、Windows(R)に限定されず、Linux(R)、Mac OS(R)など、任意のオペレーティング・システムを使用することができる。さらに、シミュレーション・プログラムを高速で動作させるために、POWER(商標)6ベースで、オペレーティング・システムがAIX(商標)のIBM(R)System Pなどのコンピュータ・システムを使用してもよい。 The hardware of the computer system that can be used for carrying out the present invention is not limited to IBM (R) System X, and any hardware can be used as long as it can run the simulation program of the present invention. A computer system can be used. The operating system is not limited to Windows (R), and any operating system such as Linux (R) or Mac OS (R) can be used. Further, in order to operate the simulation program at a high speed, a computer system such as IBM (R) System P whose operating system is AIX (trademark) based on POWER (trademark) 6 may be used.

 ハードティスク・ドライブ416にはさらに、後述するプロセッサ・エミュレータ、ペリフェラル・スケジューラ、ペリフェラル・エミュレータ、クロック・コンバータ及びプラント・シミュレータなどのプログラムが格納されており、その各々は、コンピュータ・システムの起動時にメイン・メモリにロードされて、個別のスレッドまたはプロセスとして個々のCPU1~CPUnに割当てられて、実行される。このため、図4に示すコンピュータ・システムは、好適には、プロセッサ・エミュレータ、ペリフェラル・スケジューラ、ペリフェラル・エミュレータ、クロック・コンバータ及びプラント・シミュレータの個々のスレッドに割り当てるに十分な個数のCPUをもつ。 The hard disk drive 416 further stores programs such as a processor emulator, a peripheral scheduler, a peripheral emulator, a clock converter, and a plant simulator, which will be described later, each of which is activated when the computer system is started up. It is loaded into the main memory, assigned to the individual CPUs 1 to CPUn as individual threads or processes, and executed. For this reason, the computer system shown in FIG. 4 preferably has a sufficient number of CPUs to be allocated to individual threads of the processor emulator, peripheral scheduler, peripheral emulator, clock converter and plant simulator.

 図5は、そのように個々のCPU1~CPUnに割当てられて個別のスレッドまたはプロセスとして動作するプロセッサ・エミュレータ、ペリフェラル・スケジューラ、ペリフェラル・エミュレータ、クロック・コンバータ及びプラント・シミュレータの間の協働関係を示す機能ブロック図である。 FIG. 5 shows the cooperative relationship between the processor emulator, peripheral scheduler, peripheral emulator, clock converter, and plant simulator that are assigned to the individual CPUs 1 to CPUn and operate as individual threads or processes. It is a functional block diagram shown.

 図5に示すように、本発明の特徴は、それ自身が1つのスレッドまたはプロセスであるペリフェラル・スケジューラ502が、それとは独立のスレッドまたはプロセスであるペリフェラル・エミュレータ504a、504b、504c、・・・504zを緊密に制御することである。この特徴は、ペリフェラル・エミュレータが個々のECUエミュレータ内にあって互いに独立に動作する図1の典型的な従来の構成と対比することで一層より理解されるであろう。 As shown in FIG. 5, the present invention is characterized in that a peripheral scheduler 502, which is itself a single thread or process, is a peripheral emulator 504a, 504b, 504c,... It is to control 504z closely. This feature will be better understood in contrast to the typical prior art configuration of FIG. 1 where the peripheral emulators are within individual ECU emulators and operate independently of each other.

 図5において、それぞれが独立のスレッドまたはプロセスであるプロセッサ・エミュレータ506a、506b、506c、・・・506mは、基本的には、関連するペリフェラル・エミュレータ504a、504b、504c、・・・504zから割り込みを受けて、通信しつつ動作するが、直接ペリフェラル・スケジューラ502からの制御も受ける。その制御の仕組みは、後述する。 In FIG. 5, processor emulators 506a, 506b, 506c,... 506m, each of which is an independent thread or process, are basically interrupted from the associated peripheral emulators 504a, 504b, 504c,. In response, it operates while communicating, but also receives control from the peripheral scheduler 502 directly. The control mechanism will be described later.

 一方、それぞれが独立のスレッドまたはプロセスであるプラント・シミュレータ508a、508b、・・・508nは、ペリフェラル・エミュレータ504a、504b、504c、・・・504zと通信する。なお、図示しないが、プラント・シミュレータ508a、508b、・・・508nは、図1に示すクロック・コンバータの機能を果たすモジュールを内蔵している。一般的に、プラント・シミュレータの動作クロックよりも、ペリフェラル・エミュレータの動作クロックの方が1000倍程度細かいので、そのようなクロック・コンバータの機能を設けて、ペリフェラル・エミュレータからプラント・シミュレータに到来するパルスを間引き、一方、プラント・シミュレータからペリフェラル・エミュレータに送出されるパルスを増加させることによって、インターフェースを合わせる必要がある。 On the other hand, plant simulators 508a, 508b,... 508n, each of which is an independent thread or process, communicate with peripheral emulators 504a, 504b, 504c,. Although not shown, the plant simulators 508a, 508b,... 508n incorporate a module that performs the function of the clock converter shown in FIG. Generally, the operation clock of the peripheral emulator is about 1000 times finer than the operation clock of the plant simulator. Therefore, such a clock converter function is provided to arrive at the plant simulator from the peripheral emulator. The interface needs to be matched by thinning out the pulses while increasing the number of pulses sent from the plant simulator to the peripheral emulator.

 図6は、ペリフェラル・スケジューラの制御の下での、ペリフェラル・エミュレータ、プロセッサ・エミュレータ及びプラント・シミュレータの動作の概要を示すタイミング図である。 FIG. 6 is a timing chart showing an outline of operations of the peripheral emulator, the processor emulator, and the plant simulator under the control of the peripheral scheduler.

 ペリフェラル・エミュレータの各々は、固有の処理の区切り位置に対応する時間の情報をもち、その値は例えば、ペリフェラル・エミュレータを記述するためのSystemCのソースコードを、コンピュータ・プログラムによって解析することにより、取得することができる。ペリフェラル・エミュレータの区切り位置は例えば、SystemCで記述した場合における、wait()と記述された行に対応する。 Each of the peripheral emulators has time information corresponding to a specific processing break position, and the value is obtained by, for example, analyzing a SystemC source code for describing the peripheral emulator by a computer program. Can be acquired. The delimiter position of the peripheral emulator corresponds to, for example, a line described as wait () in the case of description in SystemC.

 このようにして取得された各ペリフェラル・エミュレータの処理の区切り位置に対応する時間の情報は、ペリフェラル・スケジューラ502に予め関連づけられ、ペリフェラル・スケジューラ502は、これらの処理の区切り位置の時間を値を用いて、任意の時点で最も近いペリフェラル・エミュレータの処理の区切りのタイミングを確定して、そのタイミングに向けて、全てのプロセッサ・エミュレータと、全てのプラント・シミュレータを実行させ、同期の足並みを揃えさせる。 Information on the time corresponding to the processing delimiter position of each peripheral emulator acquired in this way is associated in advance with the peripheral scheduler 502, and the peripheral scheduler 502 sets the time of the delimiter position of these processes as a value. To determine the timing of the nearest peripheral emulator processing at any point in time, and run all processor emulators and all plant simulators for that timing, aligning the synchronization steps Let

 このとき、もし各ペリフェラル・エミュレータの処理の区切り位置が周期的であるなら、ペリフェラル・エミュレータ毎にそのような周期の値を予め記憶しておけば、それらを整数倍することで、ペリフェラル・スケジューラ502は、次の処理の区切りのタイミングを計算することができる。しかし、非常に限られた場合を除き、ペリフェラル・エミュレータの処理の区切り位置は、一般的には周期的にはならない。 At this time, if the processing delimiter position of each peripheral emulator is periodic, if the value of such a period is stored in advance for each peripheral emulator, the peripheral scheduler can be obtained by multiplying them by an integer. 502 can calculate the timing of the next processing break. However, unless it is very limited, the processing delimiter position of the peripheral emulator is generally not periodic.

 そこで、ペリフェラル・スケジューラ502が、タイミングを合わせるべきペリフェラル・エミュレータを選ぶ処理は、次のようなものである。すなわち、例えば、所定のプログラムによって予めペリフェラル・エミュレータのSystemCのソースコードをスキャンすることで、ペリフェラル・エミュレータ毎に、その処理の区切り間の時間を含むテーブルを、共有メモリなどに保存しておき、ペリフェラル・スケジューラ502がこのテーブルを参照可能にする。これにより、ペリフェラル・スケジューラ502は、テーブルのエントリに基づき、加算的に次回の処理の区切りを計算することができ、現在のシミュレーション時間から最も近い処理の区切りを、次の目標の時間として選択することが可能となる。 Therefore, the process in which the peripheral scheduler 502 selects the peripheral emulator whose timing is to be matched is as follows. That is, for example, by scanning the peripheral emulator SystemC source code in advance with a predetermined program, a table including the time between processing breaks is saved in a shared memory or the like for each peripheral emulator. Peripheral scheduler 502 makes this table available for reference. Accordingly, the peripheral scheduler 502 can additionally calculate the next process break based on the table entry, and selects the next process break from the current simulation time as the next target time. It becomes possible.

 図6に示す例では、ペリフェラル2に関連するタイミングT1が、シミュレーション・システム開始後の最初のペリフェラル・エミュレータの処理の区切りのタイミングであるとペリフェラル・スケジューラ502が認識するタイミングであり、タイミングT1に向けて、ペリフェラル・スケジューラ502は、全てのプロセッサ・エミュレータと、全てのプラント・シミュレータを実行させる。 In the example shown in FIG. 6, the timing T 1 related to the peripheral 2 is the timing at which the peripheral scheduler 502 recognizes that the timing of the first peripheral emulator processing after the simulation system starts is the timing T 1. Towards 1 , the peripheral scheduler 502 causes all processor emulators and all plant simulators to execute.

 次にペリフェラル・スケジューラ502は、ペリフェラルnに関連するタイミングT2が、シミュレーション・システム開始後の次のペリフェラル・エミュレータの処理の区切りのタイミングであると認識して、タイミングT2に向けて、ペリフェラル・スケジューラ502は、全てのプロセッサ・エミュレータと、全てのプラント・シミュレータを実行させる。 Next peripheral scheduler 502, the timing T 2 associated with the peripheral n is aware that it is time for delimiting the processing of the next peripheral emulator after simulation system start, toward the timing T 2, peripheral The scheduler 502 executes all processor emulators and all plant simulators.

 ペリフェラル・スケジューラ502による、このような順次のペリフェラル・エミュレータの処理の区切りのタイミングの確定は、ペリフェラル・スケジューラ502が予め記憶している全てのペリフェラル・エミュレータの処理の区切り位置の時間の情報に基づき、シミュレーション・システムの開始時点から順次、どれかのペリフェラル・エミュレータの最も近いタイミングを見つけることによって行われる。 The peripheral scheduler 502 determines the timing of such sequential peripheral emulator processing delimiters based on the time information of all the peripheral emulator processing delimiter positions stored in advance in the peripheral scheduler 502. Sequentially from the start of the simulation system, by finding the closest timing of any peripheral emulator.

 図7は、ペリフェラル・スケジューラ502による同期制御する仕組みを模式的に示す図である。すなわち、本発明のこの実施例によれば、メイン・メモリ406の所定の領域に、各ペリフェラル・エミュレータ502a、502b、502c・・・に対応する完了フラグ702a、702b、702c・・・が設けられ、このような完了フラグ702a、702b、702c・・・を使って、ペリフェラル・スケジューラ502は、各ペリフェラル・エミュレータ502a、502b、502cに対する同期制御を実行する。 FIG. 7 is a diagram schematically showing a mechanism for performing synchronous control by the peripheral scheduler 502. That is, according to this embodiment of the present invention, completion flags 702a, 702b, 702c,... Corresponding to the peripheral emulators 502a, 502b, 502c,. Using the completion flags 702a, 702b, 702c, etc., the peripheral scheduler 502 executes synchronous control for the peripheral emulators 502a, 502b, 502c.

 次に、図8のフローチャートを参照して、ペリフェラル・スケジューラ502の処理について説明する。図8において、ステップ802では、ペリフェラル・スケジューラ502は、初期化して、全ての全てのペリフェラル・エミュレータの処理を開始させる。この初期化には、各ペリフェラル・エミュレータ502a、502b、502c・・・に対応する完了フラグ702a、702b、702c・・・を全てOFFにリセットする処理も含まれる。 Next, processing of the peripheral scheduler 502 will be described with reference to the flowchart of FIG. In FIG. 8, in step 802, the peripheral scheduler 502 initializes and starts processing of all the peripheral emulators. This initialization includes a process of resetting all the completion flags 702a, 702b, 702c... Corresponding to the peripheral emulators 502a, 502b, 502c.

 ステップ804では、ペリフェラル・スケジューラ502が、前述のように、ペリフェラル・エミュレータ毎の、処理の区切り間の時間を含むテーブルを参照することにより、最も近い時点で処理の区切りが来ると見込まれるペリフェラル・エミュレータを見出す。 In step 804, as described above, the peripheral scheduler 502 refers to the table including the time between processing breaks for each peripheral emulator, so that the peripheral time expected to arrive at the nearest time is as follows. Find an emulator.

 ステップ806では、ペリフェラル・スケジューラ502が、全てのプロセッサ・エミュレータと、全てのプラント・シミュレータを、ステップ804で見出された最も近いタイミングで示される時点に向けて、同時並列的に実行させる。そして、その完了を待つ。 In step 806, the peripheral scheduler 502 causes all the processor emulators and all the plant simulators to be executed simultaneously and in parallel toward the time point indicated by the closest timing found in step 804. Then wait for the completion.

 ステップ808では、ペリフェラル・スケジューラ502が。ステップ804で見出されたタイミングに関連するペリフェラル・エミュレータが処理の区切りが到来するのを待つ。 In step 808, the peripheral scheduler 502 is set. The peripheral emulator associated with the timing found in step 804 waits for a processing break.

 ステップ804で見出されたタイミングを処理の区切りとしてもつペリフェラル・エミュレータが処理の区切りが来ると、そのペリフェラル・エミュレータは、完了フラグをONにして処理を一旦停止する。この処理は、図9のフローチャートを参照してより詳細に説明する。スレッド間通信によりそのことはペリフェラル・スケジューラ502に伝えられ、ペリフェラル・スケジューラ502はステップ810で、ペリフェラル・エミュレータとプロセッサ・エミュレータの間、及びペリフェラル・エミュレータとI/Oデータとプラント・シミュレータの間で、I/Oデータの同期と、割込みを同期させる。それが完了すると、ペリフェラル・スケジューラ502は、ステップ804で見出されたタイミングに関連するペリフェラル・エミュレータの完了フラグをOFFにして、ステップ804に戻る。 When the peripheral emulator having the timing found in step 804 as the processing break comes, the peripheral emulator turns on the completion flag and temporarily stops the processing. This process will be described in more detail with reference to the flowchart of FIG. This is communicated to the peripheral scheduler 502 by inter-thread communication, which in step 810, between the peripheral emulator and the processor emulator, and between the peripheral emulator, I / O data and the plant simulator. Synchronize the I / O data with the interrupt. When it completes, the peripheral scheduler 502 turns off the peripheral emulator completion flag associated with the timing found in step 804 and returns to step 804.

 ステップ804では、ペリフェラル・スケジューラ502は、次に最も近い時点で処理の区切りが来ると見込まれるペリフェラル・エミュレータを見出す。ここでいう次に最も近い時点で処理が完了すると見込まれるペリフェラル・エミュレータとは、図6の例では、ペリフェラルnであり、それに関連して、タイミングT2が選ばれる。 In step 804, the peripheral scheduler 502 finds a peripheral emulator that is expected to have a processing break at the next closest point. The peripheral emulator that is expected to complete processing at the next closest time point here is peripheral n in the example of FIG. 6, and timing T 2 is selected in relation to it.

 次に、図9のフローチャートを参照して、ペリフェラル・エミュレータの動作を説明する。この動作では最初に、その完了フラグはONになっていると仮定する。そこでステップ902では、ペリフェラル・エミュレータは、完了フラグがクリア(OFF)されるのを待つ。 Next, the operation of the peripheral emulator will be described with reference to the flowchart of FIG. This operation first assumes that the completion flag is ON. Therefore, in step 902, the peripheral emulator waits for the completion flag to be cleared (OFF).

 完了フラグがペリフェラル・スケジューラ502によってクリアされると、処理はステップ904に進み、そこで、ペリフェラル・エミュレータは固有の処理を行う。その処理が完了すると、ペリフェラル・エミュレータはステップ906で完了フラグをセット(ON)して、ステップ902に戻り、完了フラグがクリア(OFF)されるのを待つ。 When the completion flag is cleared by the peripheral scheduler 502, the process proceeds to step 904, where the peripheral emulator performs a specific process. When the processing is completed, the peripheral emulator sets a completion flag (ON) in step 906, returns to step 902, and waits for the completion flag to be cleared (OFF).

 次に、ペリフェラル・スケジューラ502による、プロセッサ・エミュレータの制御について、説明する。この実施例におけるシミュレーション・システムでは、ホストのプロセッサ、すなわち、図4に示すCPU1、CPU2、・・・CPUnにおいて、ゲスト用プロセッサ、すなわち、自動車の組込みシステムなどの実機用に開発されたプログラムが実行される。その際、ソースコードがある場合でも、ゲスト用のバイナリしかない場合でも、コードは、ホスト・プロセッサ上のバイナリ・コードに変換されてから実行されることになる。 Next, control of the processor emulator by the peripheral scheduler 502 will be described. In the simulation system in this embodiment, a host processor, that is, CPU1, CPU2,..., CPUn shown in FIG. 4 executes a guest processor, that is, a program developed for an actual machine such as an automobile embedded system. Is done. At this time, whether the source code is present or only the binary for the guest is present, the code is executed after being converted into binary code on the host processor.

 但し、本発明によれば、そのコード変換の際に、ペリフェラル・スケジューラ502と同期をとるために、特殊なコードが、要所に挿入される。 However, according to the present invention, in order to synchronize with the peripheral scheduler 502 at the time of the code conversion, a special code is inserted at a key point.

 先ず、コードの基本ブロックの先頭やループの最後には、プロセッサ時刻をあらわすデータ(T_CPU)を更新して増やすためのコードが挿入される。すなわち、下記のようにある定数ConstがT_CPUに加算されるのであるが、この定数は、ゲスト・コードの時間解析に基づいて、予め決定される。
 T_CPU += Const
First, a code for updating and increasing the data (T_CPU) representing the processor time is inserted at the beginning of the basic block of the code or at the end of the loop. That is, a certain constant Const is added to T_CPU as described below. This constant is determined in advance based on the time analysis of the guest code.
T_CPU + = Const

 また、例えば80サイクルに1つ程度の割合で、停止すべきシミュレーション時刻(T_Peripheral)と、自身の進行時刻を比較して、待機すべきかどうかを判断するための次のようなコードを、ホスト・プロセッサ上で実行されるコードに挿入する。
 if ( T_CPU > T_Peripheral )  {
  POST Completion_flag;
  do { SLEEP_TEMPORARY; } while (T_CPU > T_Peripheral);
 }
 ここで、POST Completion_flagは、完了フラグ(Completion_flag)を設定(ON)する処理である。完了フラグの領域は好適には、共有メモリ上に確保される。while (T_CPU > T_Peripheral)のループは、共有メモリ上に確保されているT_Peripheralの値が、ペリフェラル・スケジューラ502等によって上書きされ、T_CPU > T_Peripheralの判断がfalseになるまで、SLEEP_TEMPORARYという待機の動作を行う。
For example, the following code for determining whether to wait by comparing the simulation time (T_Peripheral) to be stopped with its own progress time at a rate of about 1 in 80 cycles is as follows. Insert into code that runs on the processor.
if (T_CPU> T_Peripheral) {
POST Completion_flag;
do {SLEEP_TEMPORARY;} while (T_CPU>T_Peripheral);
}
Here, POST Completion_flag is a process of setting (ON) a completion flag (Completion_flag). The completion flag area is preferably secured on the shared memory. The while (T_CPU> T_Peripheral) loop performs a sleep operation called SLEEP_TEMPORARY until the T_Peripheral value reserved on the shared memory is overwritten by the peripheral scheduler 502 and the T_CPU> T_Peripheral judgment is false. .

 図10は、上記の処理を機能ブロック的に説明する図である。すなわち、ペリフェラル・スケジューラ502が、最も早く処理の区切りが来るペリフェラル・エミュレータのタイミングに基づき、T_Peripheral1002という時間を設定し、各プロセッサ・エミュレータ506a、506b、506c・・・は、上述したT_CPUと同等のものである固有の時間T_CPU1、T_CPU2、T_CPU3・・・をそれぞれもつ。 FIG. 10 is a functional block diagram for explaining the above processing. That is, the peripheral scheduler 502 sets the time T_Peripheral 1002 based on the timing of the peripheral emulator at which the processing break comes first, and each of the processor emulators 506a, 506b, 506c,. Each has its own time T_CPU1, T_CPU2, T_CPU3,.

 初期化段階では、ペリフェラル・スケジューラ502は、各プロセッサ・エミュレータ506a、506b、506c・・・の完了フラグ1004a、1004b、1004c・・・をクリア(OFF)し、各プロセッサ・エミュレータは、T_CPU > T_Peripheralとなった時点で、上述のコードによって待機状態に入る。 In the initialization stage, the peripheral scheduler 502 clears (OFF) the completion flags 1004a, 1004b, 1004c,... Of each processor emulator 506a, 506b, 506c..., And each processor emulator has T_CPU> T_Peripheral. At this point, a standby state is entered by the above code.

 各プロセッサ・エミュレータの動作を再開させるためには、ペリフェラル・スケジューラ502は、T_CPU < T_Peripheralとなる新たなT_Peripheral1002を提供し、且つ、各プロセッサ・エミュレータ506a、506b、506c・・・の完了フラグ1004a、1004b、1004c・・・をクリア(OFF)する。 In order to resume the operation of each processor emulator, the peripheral scheduler 502 provides a new T_Peripheral 1002 that satisfies T_CPU <T_Peripheral, and the completion flags 1004a, 506a, 506b, 506c,. 1004b, 1004c,... Are cleared (OFF).

 次に、図11を参照して、ペリフェラル・スケジューラ502と、プラント・シミュレータ508a、508b、・・・508nの間の同期処理を、機能ブロック的に説明する。プラント・シミュレータはもともと、時間を短いステップに刻んで、近似的に微分方程式などの内部状態を計算して更新する。従って、与えられた時刻まで処理を進めることは、適合性が高いと言える。 Next, with reference to FIG. 11, the synchronization processing between the peripheral scheduler 502 and the plant simulators 508a, 508b,. A plant simulator originally calculates and updates an internal state such as a differential equation approximately by cutting time into short steps. Therefore, it can be said that it is highly adaptable to advance the processing to a given time.

 図11において、ペリフェラル・スケジューラ502が、最も早く処理の区切りが来るペリフェラル・エミュレータのタイミングに基づき、T_Peripheral1002という時間を設定し、各プラント・シミュレータ508a、508b、508c・・・はそれぞれ固有の完了時間1104a、1104b、1104c・・・をもつ。初期化段階では、ペリフェラル・スケジューラ502は、各プラント・シミュレータ508a、508b、508c・・・の完了フラグ1102a、1102b、1102c・・・をクリア(OFF)する。なお、完了フラグ1102a、1102b、1102c・・・は、好適には、共有メモリ上にに確保される。 In FIG. 11, the peripheral scheduler 502 sets a time T_Peripheral 1002 based on the timing of the peripheral emulator at which the processing break comes first, and each plant simulator 508a, 508b, 508c,. 1104a, 1104b, 1104c,. In the initialization stage, the peripheral scheduler 502 clears (OFF) the completion flags 1102a, 1102b, 1102c,... Of each plant simulator 508a, 508b, 508c,. The completion flags 1102a, 1102b, 1102c,... Are preferably secured on the shared memory.

 次に、図12のフローチャートを参照して、ペリフェラル・スケジューラ502によるプラント・シミュレータの同期処理をより詳細に説明する。図12において、ステップ1202では、プラント・シミュレータは、ペリフェラル・スケジューラが新しい時間Tをセットするまで待つ。この時間とは、図11に示した、T_Peripheral1002である。 Next, the plant simulator synchronization processing by the peripheral scheduler 502 will be described in more detail with reference to the flowchart of FIG. In FIG. 12, in step 1202, the plant simulator waits until the peripheral scheduler sets a new time T. This time is T_Peripheral 1002 shown in FIG.

 ステップ1204では、プラント・シミュレータは、my_time > Tであるかどうかの判断を行う。ここで、my_timeとは、図11に示した、プラント・シミュレータに対応する完了時間1104a、1104bなどである。 In step 1204, the plant simulator determines whether or not my_time> で T. Here, my_time is the completion times 1104a and 1104b corresponding to the plant simulator shown in FIG.

 もし、my_time > Tでないなら、プラント・シミュレータは、ステップ1206に行って、所定の処理ステップを進める。そして、ステップ1208でmy_timeを進めて、ステップ1204に戻る。 If my_time> T is not true, the plant simulator goes to step 1206 to advance a predetermined processing step. In step 1208, my_time is advanced, and the process returns to step 1204.

 ステップ1204で、プラント・シミュレータが、my_time <= Tであると判断したなら、プラント・シミュレータは、対応する完了フラグをセット(ON)して、ステップ1202に戻る。 In step 1204, if the plant simulator determines that my_time で <= T, the plant simulator sets (ON) the corresponding completion flag and returns to step 1202.

 ところで、プラント・シミュレータ及びプロセッサ・エミュレータの完了フラグは、一実施例として、カウンタ・セマフォという仕組みで実施することができる。 By the way, the completion flag of the plant simulator and the processor emulator can be implemented as a counter semaphore as an example.

 そのために、ペリフェラル・スケジューラ側では、次のようなコードが書かれる。
extern sem_t sem_start[]; /* binary semaphores */
extern sem_t sem_finish;  /* counter semaphore */
extern int n_plants;      /* number of plant tasks */
extern int n_all;         /* number of all tasks */
{
   ・・・
   /* タスクを実行する準備をする */
   /* 例えば、T_Peripheral の更新など */
   ・・・
   /* プラント・タスクを並列実行する */
   for (int k=0; k<n_plants; k++)
      sem_post(&sem_start[k]);
   ・・・
   /* すべてのタスクが終了するまで待つ */
   for (int k=0; k<n_all; k++)
      sem_wait(&sem_finish);
   ・・・
}
Therefore, the following code is written on the peripheral scheduler side.
extern sem_t sem_start []; / * binary semaphores * /
extern sem_t sem_finish; / * counter semaphore * /
extern int n_plants; / * number of plant tasks * /
extern int n_all; / * number of all tasks * /
{
...
/ * Prepare to run the task * /
/ * For example, T_Peripheral update * /
...
/ * Run plant tasks in parallel * /
for (int k = 0; k <n_plants; k ++)
sem_post (& sem_start [k]);
...
/ * Wait until all tasks are finished * /
for (int k = 0; k <n_all; k ++)
sem_wait (&sem_finish);
...
}

 一方、プラント・シミュレータ側では、次のようなコードが書かれる。
extern sem_t sem_start[]; /* binary semaphores */
extern sem_t sem_finish;  /* counter semaphore */
{
   ・・・
   /* 処理開始の指示を待つ */
   sem_wait(&sem_start[k]);
   ・・・
   /* 独自の処理を進める */
   ・・・
   /* 処理の終了を告げる */
   sem_post(&sem_finish);
   ・・・
}
On the other hand, the following code is written on the plant simulator side.
extern sem_t sem_start []; / * binary semaphores * /
extern sem_t sem_finish; / * counter semaphore * /
{
...
/ * Wait for instructions to start processing * /
sem_wait (& sem_start [k]);
...
/ * Proceed with original processing * /
...
/ * Tell the end of processing * /
sem_post (&sem_finish);
...
}

 ここで、n_plants は、シミュレーション・システムで実行されるプラント・シミュレータの数である。
 ペリフェラル・スケジューラにおける
   for (int k=0; k<n_plants; k++)
      sem_post(&sem_start[k]);
 というコードは、n_plants 個のタスクまたはスレッドの各々に処理開始を指示すことであり、これを受けて、プラント・シミュレータ側では、
   sem_wait(&sem_start[k]);
 により、開始の指示を受け取ることになる。
Here, n_plants is the number of plant simulators executed in the simulation system.
For (int k = 0; k <n_plants; k ++) in the peripheral scheduler
sem_post (& sem_start [k]);
Is to instruct each of n_plants tasks or threads to start processing, and on the plant simulator side,
sem_wait (& sem_start [k]);
Thus, a start instruction is received.

 一方、プロセッサ・エミュレータ及びプラント・シミュレータ側のsem_post(&sem_finish)は、ペリフェラル・スケジューラにおける
   for (int k=0; k<n; k++)
      sem_wait(&sem_finish);
 によって待機されており、すなわち、ペリフェラル・スケジューラは、全てのプロセッサ・エミュレータ及びプラント・シミュレータの処理の終了が告げられるのを待つことになる。なお、プロセッサ・エミュレータのコードに挿入されるコードにおいて、POST Completion_flag と記述した部分が、プロセッサ・エミュレータにおけるsem_post(&sem_finish) に当たる。図10や図11では、完了フラグを分けて示したが、上記のようにカウンタ型のセマフォを利用するなら、1つでよい。
On the other hand, sem_post (& sem_finish) on the processor emulator and plant simulator side is for (int k = 0; k <n; k ++) in the peripheral scheduler
sem_wait (&sem_finish);
I.e., the peripheral scheduler will wait for the end of processing for all processor emulators and plant simulators. In the code inserted into the processor emulator code, the part described as POST Completion_flag corresponds to sem_post (& sem_finish) in the processor emulator. In FIG. 10 and FIG. 11, the completion flag is shown separately. However, if the counter type semaphore is used as described above, one is sufficient.

 以上、自動車用の複数のシミュレーション・システムに関連して、本発明の特定の実施例を説明してきたが、本発明はこのような特定の実施例に限定されず、飛行機用のシミュレーション・システムなど、一般的な電子機械制御系システムのシミュレーション・システムに適用可能であることを、この分野の当業者であるなら、理解するであろう。 As mentioned above, specific embodiments of the present invention have been described in relation to a plurality of simulation systems for automobiles. However, the present invention is not limited to such specific embodiments, and simulation systems for airplanes, etc. Those skilled in the art will understand that the present invention can be applied to a general electromechanical control system simulation system.

 また、本発明は、特定のコンピュータのアーキテクチャやプラットフォームに限定されることなく、マルチタスクを実現可能な任意のプラットフォームで実装可能である。 The present invention is not limited to a specific computer architecture or platform, and can be implemented on any platform capable of realizing multitasking.

404・・・プロセッサ
502・・・ペリフェラル・スケジューラ
504・・・ペリフェラル・エミュレータ
506・・・プロセッサ・エミュレータ
508・・・プラント・シミュレータ
702、1004、1102・・・完了フラグ
404 ... Processor 502 ... Peripheral scheduler 504 ... Peripheral emulator 506 ... Processor emulator 508 ... Plant simulator 702, 1004, 1102 ... Completion flag

Claims (15)

 コンピュータの処理により、シミュレーションを行なうシミュレーション・システムにおいて、
 前記コンピュータ上で実行される複数のプロセッサ・エミュレータと、
 前記コンピュータ上で実行される複数のプラント・シミュレータと、
 前記コンピュータ上で実行され、各々が固有の処理の区切りタイミングをもち、前記プロセッサ・エミュレータと前記プラント・シミュレータ間のデータの通信を行う、複数のペリフェラル・エミュレータと、
 前記ペリフェラル・エミュレータのうち、処理の区切りのタイミングが一番早く到来するペリフェラル・エミュレータとその処理の区切りのタイミングを見出す手段と、
 前記見出されたタイミングで、前記複数のプロセッサ・エミュレータと前記複数のプラント・シミュレータを同期させる手段を有する、
 シミュレーション・システム。
In a simulation system that performs simulation by computer processing,
A plurality of processor emulators running on the computer;
A plurality of plant simulators running on the computer;
A plurality of peripheral emulators that are executed on the computer, each having a unique processing break timing, and performing data communication between the processor emulator and the plant simulator;
Among the peripheral emulators, a peripheral emulator that arrives at the earliest timing of processing breaks and a means for finding the timing of the breaks of the processing;
Means for synchronizing the plurality of processor emulators and the plurality of plant simulators at the found timing;
Simulation system.
 前記コンピュータが、マルチタスク・システムであり、前記複数のプロセッサ・エミュレータと、前記ペリフェラル・エミュレータと、前記複数のプラント・シミュレータは、前記マルチプロセッサ・シ個別のスレッドまたはプロセスとして実行される、請求項1に記載のシミュレーション・システム。 The computer is a multitasking system, and the plurality of processor emulators, the peripheral emulator, and the plurality of plant simulators are executed as individual threads or processes of the multiprocessor system. 1. The simulation system according to 1.  前記コンピュータが、マルチプロセッサ・システムであり、前記複数のプロセッサ・エミュレータと、前記ペリフェラル・エミュレータと、前記複数のプラント・シミュレータは、前記マルチプロセッサ・システムの異なるプロセッサまたはコアに割り当てられて個別のスレッドまたはプロセスとして実行される、請求項2に記載のシミュレーション・システム。 The computer is a multiprocessor system, and the plurality of processor emulators, the peripheral emulator, and the plurality of plant simulators are assigned to different processors or cores of the multiprocessor system and are separated from each other. The simulation system according to claim 2, wherein the simulation system is executed as a process.  前記複数のプロセッサ・エミュレータと前記複数のプラント・シミュレータを同期させる手段は、前記コンピュータのメモリに確保され、前記複数のプロセッサ・エミュレータと前記複数のプラント・シミュレータの各々に対応して設けられた完了フラグをセットすることによって同期を達成する、請求項2に記載のシミュレーション・システム。 Means for synchronizing the plurality of processor emulators and the plurality of plant simulators is ensured in a memory of the computer, and is provided corresponding to each of the plurality of processor emulators and the plurality of plant simulators. The simulation system of claim 2, wherein synchronization is achieved by setting a flag.  前記完了フラグは、カウンタ・セマフォにより実現される、請求項4に記載のシミュレーション・システム。 The simulation system according to claim 4, wherein the completion flag is realized by a counter semaphore.  コンピュータの処理により、シミュレーションを行なうシミュレーション方法において、
 前記コンピュータ上で複数のプロセッサ・エミュレータを実行するステップと、
 前記コンピュータ上で複数のプラント・シミュレータを実行するステップと、
 前記コンピュータ上で、各々が固有の処理の区切りタイミングをもち、前記プロセッサ・エミュレータと前記プラント・シミュレータ間のデータの通信を行う、複数のペリフェラル・エミュレータを実行するステップと、
 前記ペリフェラル・エミュレータのうち、処理の区切りのタイミングが一番早く到来するペリフェラル・エミュレータとその処理の区切りのタイミングを見出すステップと、
 前記見出されたタイミングで、前記複数のプロセッサ・エミュレータと前記複数のプラント・シミュレータを同期させるステップを有する、
 シミュレーション方法。
In a simulation method for performing simulation by computer processing,
Executing a plurality of processor emulators on the computer;
Running a plurality of plant simulators on the computer;
Executing a plurality of peripheral emulators on the computer, each having a unique processing delimiter timing and performing data communication between the processor emulator and the plant simulator;
Of the peripheral emulators, a step of finding a peripheral emulator whose processing break timing comes first and a timing of the processing break;
Synchronizing the plurality of processor emulators and the plurality of plant simulators at the found timing;
Simulation method.
 前記コンピュータが、マルチタスク・システムであり、前記複数のプロセッサ・エミュレータと、前記ペリフェラル・エミュレータと、前記複数のプラント・シミュレータは、前記マルチプロセッサ・シ個別のスレッドまたはプロセスとして実行される、請求項6に記載のシミュレーション方法。 The computer is a multitasking system, and the plurality of processor emulators, the peripheral emulator, and the plurality of plant simulators are executed as individual threads or processes of the multiprocessor system. 6. The simulation method according to 6.  前記コンピュータが、マルチプロセッサ・システムであり、前記複数のプロセッサ・エミュレータと、前記ペリフェラル・エミュレータと、前記複数のプラント・シミュレータは、前記マルチプロセッサ・システムの異なるプロセッサまたはコアに割り当てられて個別のスレッドまたはプロセスとして実行される、請求項7に記載のシミュレーション方法。 The computer is a multiprocessor system, and the plurality of processor emulators, the peripheral emulator, and the plurality of plant simulators are assigned to different processors or cores of the multiprocessor system and are separated from each other. The simulation method according to claim 7, wherein the simulation method is executed as a process.  前記複数のプロセッサ・エミュレータと前記複数のプラント・シミュレータを同期させる手段は、前記コンピュータのメモリに確保され、前記複数のプロセッサ・エミュレータと前記複数のプラント・シミュレータの各々に対応して設けられた完了フラグをセットすることによって同期を達成する、請求項7に記載のシミュレーション方法。 Means for synchronizing the plurality of processor emulators and the plurality of plant simulators is ensured in a memory of the computer, and is provided corresponding to each of the plurality of processor emulators and the plurality of plant simulators. The simulation method according to claim 7, wherein synchronization is achieved by setting a flag.  前記完了フラグは、カウンタ・セマフォにより実現される、請求項9に記載のシミュレーション方法。
 
The simulation method according to claim 9, wherein the completion flag is realized by a counter semaphore.
 コンピュータの処理により、シミュレーションを行なうシミュレーション・プログラムであって、前記コンピュータをして、
 複数のプロセッサ・エミュレータを実行するステップと、
 複数のプラント・シミュレータを実行するステップと、
 各々が固有の処理の区切りタイミングをもち、前記プロセッサ・エミュレータと前記プラント・シミュレータ間のデータの通信を行う、複数のペリフェラル・エミュレータを実行するステップと、
 前記ペリフェラル・エミュレータのうち、処理の区切りのタイミングが一番早く到来するペリフェラル・エミュレータとその処理の区切りのタイミングを見出すステップと、
 前記見出されたタイミングで、前記複数のプロセッサ・エミュレータと前記複数のプラント・シミュレータを同期させるステップを実行させる、
 シミュレーション・プログラム。
A simulation program for performing simulation by computer processing, wherein the computer is
Running multiple processor emulators;
Running multiple plant simulators;
Executing a plurality of peripheral emulators, each having a unique processing break timing and communicating data between the processor emulator and the plant simulator;
Of the peripheral emulators, a step of finding a peripheral emulator whose processing break timing comes first and a timing of the processing break;
Causing the plurality of processor emulators and the plurality of plant simulators to synchronize at the found timing;
Simulation program.
 前記コンピュータが、マルチタスク・システムであり、前記複数のプロセッサ・エミュレータと、前記ペリフェラル・エミュレータと、前記複数のプラント・シミュレータは、前記マルチプロセッサ・シ個別のスレッドまたはプロセスとして実行される、請求項11に記載のシミュレーション・プログラム。 The computer is a multitasking system, and the plurality of processor emulators, the peripheral emulator, and the plurality of plant simulators are executed as individual threads or processes of the multiprocessor system. 11. The simulation program according to 11.  前記コンピュータが、マルチプロセッサ・システムであり、前記複数のプロセッサ・エミュレータと、前記ペリフェラル・エミュレータと、前記複数のプラント・シミュレータは、前記マルチプロセッサ・システムの異なるプロセッサまたはコアに割り当てられて個別のスレッドまたはプロセスとして実行される、請求項12に記載のシミュレーション・プログラム。 The computer is a multiprocessor system, and the plurality of processor emulators, the peripheral emulator, and the plurality of plant simulators are assigned to different processors or cores of the multiprocessor system and are separated from each other. The simulation program according to claim 12, which is executed as a process.  前記複数のプロセッサ・エミュレータと前記複数のプラント・シミュレータを同期させる手段は、前記コンピュータのメモリに確保され、前記複数のプロセッサ・エミュレータと前記複数のプラント・シミュレータの各々に対応して設けられた完了フラグをセットすることによって同期を達成する、請求項12に記載のシミュレーション・プログラム。 Means for synchronizing the plurality of processor emulators and the plurality of plant simulators is ensured in a memory of the computer, and is provided corresponding to each of the plurality of processor emulators and the plurality of plant simulators. The simulation program according to claim 12, wherein synchronization is achieved by setting a flag.  前記完了フラグは、カウンタ・セマフォにより実現される、請求項14に記載のシミュレーション・プログラム。 15. The simulation program according to claim 14, wherein the completion flag is realized by a counter semaphore.
PCT/JP2010/067772 2009-10-16 2010-10-08 Simulation method, system, and program Ceased WO2011046089A1 (en)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2011536125A JP5379862B2 (en) 2009-10-16 2010-10-08 Simulation method, system and program
CN201080046464.6A CN102576325B (en) 2009-10-16 2010-10-08 Simulation method, system and program
GB1205094.4A GB2486136B (en) 2009-10-16 2010-10-08 Simulation method, system, and program
DE112010004037T DE112010004037T5 (en) 2009-10-16 2010-10-08 Simulation method, system and program

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2009-238954 2009-10-16
JP2009238954 2009-10-16

Publications (1)

Publication Number Publication Date
WO2011046089A1 true WO2011046089A1 (en) 2011-04-21

Family

ID=43876139

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2010/067772 Ceased WO2011046089A1 (en) 2009-10-16 2010-10-08 Simulation method, system, and program

Country Status (5)

Country Link
JP (1) JP5379862B2 (en)
CN (1) CN102576325B (en)
DE (1) DE112010004037T5 (en)
GB (1) GB2486136B (en)
WO (1) WO2011046089A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9251308B2 (en) 2012-07-23 2016-02-02 International Business Machines Corporation Simulation method, system, and program
US10776139B2 (en) 2015-05-29 2020-09-15 Mitsubishi Electric Corporation Simulation apparatus, simulation method, and computer readable medium

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101522477B1 (en) 2010-08-20 2015-05-21 인터내셔널 비지네스 머신즈 코포레이션 Simulation method, system and program
EP2851815A1 (en) * 2013-09-18 2015-03-25 dSPACE digital signal processing and control engineering GmbH Test device for testing a virtual control device in real time
US11010505B2 (en) 2015-12-01 2021-05-18 International Business Machines Corporation Simulation of virtual processors
DE102015226249A1 (en) * 2015-12-21 2017-06-22 Siemens Aktiengesellschaft Apparatus and method for providing a plurality of reproducible values
JP6770935B2 (en) * 2017-07-03 2020-10-21 日立オートモティブシステムズ株式会社 Verification device for vehicle control device
US11010510B2 (en) 2019-04-30 2021-05-18 Disney Enterprises, Inc. Soft-real-time hub providing data transport for processor-in-the-loop (PIL) simulations
CN113391549B (en) * 2021-05-08 2022-12-23 北京京能电力股份有限公司 Parallel execution mechanism action amount optimal distribution method and device

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10312315A (en) * 1997-05-12 1998-11-24 Nec Corp Software and hardware cooperative simulation system
JP2004013626A (en) * 2002-06-07 2004-01-15 Fujitsu Ten Ltd Logic development system for microcomputer
JP2007011720A (en) * 2005-06-30 2007-01-18 Sharp Corp System simulator, system simulation method, control program, and readable recording medium

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5522029A (en) * 1993-04-23 1996-05-28 International Business Machines Corporation Fault tolerant rendezvous and semaphore for multiple parallel processors
CN101256502B (en) * 2007-02-27 2011-02-09 国际商业机器公司 Systems and methods for simulating a multiprocessor system
CN100573456C (en) * 2007-12-10 2009-12-23 华中科技大学 A Parallel Multiprocessor Virtual Machine System

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10312315A (en) * 1997-05-12 1998-11-24 Nec Corp Software and hardware cooperative simulation system
JP2004013626A (en) * 2002-06-07 2004-01-15 Fujitsu Ten Ltd Logic development system for microcomputer
JP2007011720A (en) * 2005-06-30 2007-01-18 Sharp Corp System simulator, system simulation method, control program, and readable recording medium

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9251308B2 (en) 2012-07-23 2016-02-02 International Business Machines Corporation Simulation method, system, and program
US10776139B2 (en) 2015-05-29 2020-09-15 Mitsubishi Electric Corporation Simulation apparatus, simulation method, and computer readable medium

Also Published As

Publication number Publication date
GB2486136B (en) 2012-12-26
JP5379862B2 (en) 2013-12-25
CN102576325B (en) 2015-04-15
GB2486136A (en) 2012-06-06
GB201205094D0 (en) 2012-05-09
JPWO2011046089A1 (en) 2013-03-07
DE112010004037T5 (en) 2013-01-03
CN102576325A (en) 2012-07-11

Similar Documents

Publication Publication Date Title
JP5379862B2 (en) Simulation method, system and program
US9251308B2 (en) Simulation method, system, and program
KR101522477B1 (en) Simulation method, system and program
Furht et al. Real-time UNIX® Systems: design and application guide
JP5179249B2 (en) Control device simulation method, system, and program
JP5528294B2 (en) Simulation control method, system and program
US10552560B2 (en) Controlling real time during embedded system development
JP5295355B2 (en) Simulation method, system and program
JP5065344B2 (en) Simulation method, system and program
US9612863B2 (en) Hardware device for accelerating the execution of a systemC simulation in a dynamic manner during the simulation
JP5224957B2 (en) Simulation method, system and program
Wurst et al. System performance modelling of heterogeneous hw platforms: An automated driving case study
CN114021311A (en) RTX-based heterogeneous parallel semi-physical simulation device and method
US8412496B2 (en) Simulation system, method, and program
CN112783197A (en) Integrated solution for aircraft guidance control system
US20230409383A1 (en) Simulation system and method
JP5186290B2 (en) Simulation method, system and program
JP2010086207A (en) Simulation method, system, and program
CN117957531A (en) Method and apparatus for sequence monitoring of multiple threads
Vaas et al. The best of both: High-performance and deterministic real-time executive by application-specific multi-core SoCs
US20210141710A1 (en) Development support device
Depoyster et al. Rapid prototyping of chassis control systems
Vaas et al. The R2-D2 toolchain—automated porting of safety-critical applications to FPGAs
JP2010134839A (en) Simulation method, system and program
KR20240070718A (en) Computer-implemented method and electronic control device for deterministic data communication in partitioned embedded systems

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 201080046464.6

Country of ref document: CN

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

Ref document number: 10823357

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 1205094

Country of ref document: GB

Kind code of ref document: A

Free format text: PCT FILING DATE = 20101008

WWE Wipo information: entry into national phase

Ref document number: 1205094.4

Country of ref document: GB

WWE Wipo information: entry into national phase

Ref document number: 2011536125

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 1120100040370

Country of ref document: DE

Ref document number: 112010004037

Country of ref document: DE

122 Ep: pct application non-entry in european phase

Ref document number: 10823357

Country of ref document: EP

Kind code of ref document: A1