WO2012023397A1 - シミュレーション方法、システム及びプログラム - Google Patents
シミュレーション方法、システム及びプログラム Download PDFInfo
- Publication number
- WO2012023397A1 WO2012023397A1 PCT/JP2011/067132 JP2011067132W WO2012023397A1 WO 2012023397 A1 WO2012023397 A1 WO 2012023397A1 JP 2011067132 W JP2011067132 W JP 2011067132W WO 2012023397 A1 WO2012023397 A1 WO 2012023397A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- processor
- plant
- emulator
- time
- peripheral scheduler
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/26—Functional testing
- G06F11/261—Functional testing by simulating additional hardware, e.g. fault simulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/28—Error detection; Error correction; Monitoring by checking the correct order of processing
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B17/00—Systems involving the use of models or simulators of said systems
- G05B17/02—Systems involving the use of models or simulators of said systems electric
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 constraints, such as (3) Processor-in-the-Loop Simulation (PILS), which fully implements the software and emulates an ECU processor Or Virtual Hardware-in-the-Loop Simulation (V-HILS), and (4) Hardware-in-the-Loop Simulation (HILS) that fully implements the ECU board and connects with real-time plant simulation.
- MILS Model-in-the-Loop
- Simulation Simulation
- S Software-in-the-Loop Simulation
- PILS Processor-in-the-Loop Simulation
- V-HILS Virtual Hardware-in-the-Loop Simulation
- HILS Hardware-in-the-Loop Simulation
- MILS / SILS is mainly used in the trial and error phase to bring out the basic performance of the plant.
- V-HILS uses completed ECU software, so it is very promising as a method for finding and solving unexpected operations (bugs) of the software.
- HILS is always performed for the final operation check of the completed ECU board, but even if a failure is found, reproducibility is not guaranteed, so it cannot be used for debugging purposes.
- V-HILS is particularly expected to solve this problem.
- a typical V-HILS configuration consists of a plurality of ECU emulators, a plurality of plant simulators, and a global scheduler that schedules the overall operation.
- the ECU emulator consists of a processor emulator and a peripheral emulator.
- the plant simulator includes a brake simulator, an engine simulator, and the like.
- the processor emulator operates with a relatively high resolution clock of, for example, 80 MHz.
- the plant simulator is a physical mechanism simulator, it operates at a relatively low resolution of, for example, 10 KHz. In general, since a low resolution can be simulated at a higher speed, a plant simulator is often faster.
- Plant simulators do not always perform numerical calculations repeatedly with a fixed processing step time, but there are cases where variable steps are required depending on the timing of discontinuous change points, etc. Many.
- an instruction signal is received from the controller in each step, and the internal state is output to the sensor. Note that the instruction signal is often pulsed in order to represent the on / off state of the switch.
- 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. Also, the internal state is read as quantitative data from the plant simulator.
- 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 CAN (controller area network) that connects processors to each other
- the transmission data is received from the processor (W)
- communication is performed between peripherals via a bus
- the processor Sends an interrupt (INT) and responds to the received data read request (R) from the processor.
- the peripheral is the center of the system that interconnects the plant, processor, and processors. If there is a time resolution sufficient to distinguish the order of signals passing through the peripherals, the order can be correctly reproduced with respect to the interaction between the plant and the processor. However, if the time taken until the next signal determines the accuracy of the data (such as speed calculation), the finer the time resolution, the better. That is, the magnitude of the data error is determined according to the time resolution.
- Time synchronization In this method, simulations are executed while the processor emulator communicates with each other. There is a trade-off between execution speed and time accuracy, and there is a time quantization error. Further, as described above, this method is not a realistic solution because the synchronous communication cost between the processor and the emulator is high.
- Optimistic event synchronization In this method, each processor / emulator sends and receives events with time information and synchronizes with the other party. However, since the simulation is executed speculatively while leaving the possibility of “flying”, if the speculation is off, it is necessary to roll back the processor emulator appropriately.
- each processor / emulator sends and receives events with time information and synchronizes with the other party.
- a deadlock may occur due to waiting for an event.
- the cost of avoidance may increase, such as sending special null messages frequently for sending time.
- Japanese Patent Application Laid-Open No. 2007-11720 is intended to solve the problem that the configuration of a system simulator can be flexibly changed while supporting a system having a complicated configuration.
- this prior art does not suggest a technique for optimizing the synchronization between the peripheral and the CPU.
- the inventors of the present application have developed a conservative event synchronization mechanism and provided a simulation technique using a peripheral scheduler described in the specification of Japanese Patent Application No. 2009-238954.
- the peripheral scheduler starts parallel operation by clearing (OFF) the completion flag of all peripheral emulators. Then, the peripheral scheduler finds the peripheral emulator that is scheduled to reach the earliest process break based on the set process break timing of each individual 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. Then, the peripheral scheduler waits for the peripheral P completion flag to be set. 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.
- JP 2007-11720 A Japanese Patent Application No. 2009-238954
- an object of the present invention is to perform simulation at a high speed with sufficient time accuracy and small data error in a system having a plurality of ECUs and plants that notify (interrupt) data asynchronously with each other.
- asynchronous data notification refers to, for example, notifying a controller of a state change that occurs irregularly in a plant, asynchronous CAN communication between processors, and the like.
- Another object of the present invention is to couple three types of processor emulator, peripheral emulator, and plant simulator so as to simulate an entire system having an ECU and a plant to be controlled.
- peripherals are divided into three types of mutual peripherals, external peripherals, and internal peripherals, and a unique scheduler is provided for each. These three types of schedulers cooperate to realize an efficient and accurate coupled operation.
- the mutual peripheral is an intermediate layer that handles communication between processors, and has a unique mutual peripheral scheduler. It has a function to process asynchronous communication between processors at high speed.
- External peripheral is an intermediate layer that connects a plant and a processor, and has a specific external peripheral scheduler. It has a function of receiving an asynchronous notification from the plant and transmitting it to the processor, and sending an instruction from the processor to the plant.
- the internal peripheral is a peripheral layer that is connected only to a specific processor. For example, Watch Dog Timer and memory are applicable. There is no exchange of signals with the plant or other processors. Has its own internal peripheral scheduler (or processor scheduler).
- the mutual peripheral scheduler, the external peripheral scheduler, and the internal peripheral scheduler operate in parallel in the form of a coroutine.
- the plant simulator is preferably created by a continuous numerical simulation modeling system such as MATLAB (R) / Simulink (R).
- the peripheral emulator is a transaction type emulator, and is preferably created by SystemC / TLM.
- the processor emulator performs emulation by an instruction set simulator (ISS).
- the external peripheral scheduler selects the earlier of the “reaction delay time” of the processor emulator and the time when the next event occurs, and executes the plant simulator in advance until that time. Then, all processor schedulers (or internal peripheral schedulers) are notified so as to execute the execution up to the time when the plant simulator actually stops.
- the reaction delay time refers to the minimum time difference between the time when a notification of a state change is received from the plant, the time when the instruction to the corresponding plant is calculated, and the time when the instruction is actually effective in the plant.
- the inter-peripheral scheduler selects all the processor schedulers (or internal peripheral schedulers) so that the “communication delay time” between processor emulators and the time until the next event occurs are selected earlier, and execution is performed up to that time.
- the communication delay time refers to the minimum time required from when a processor transmits data to when another processor receives the data.
- the processor scheduler (or internal peripheral scheduler) proceeds to the earliest time of the notified target synchronization time. In this way, deadlock between processors can be avoided at low cost by proceeding conservatively toward the synchronization time given by two types of peripheral schedulers without adjusting the time between processors. To do.
- Each peripheral layer receives the time of the slowest progressing processor as an event, and advances its processing until that time. Further, the next synchronization time notification is determined based on the updated time.
- the simulation proceeds in the order of the plant, the processor, and the peripheral, so that the processing in which the cooperation between different types is coupled as a whole is realized.
- the processor emulator since the processor emulator is executed in advance using the reaction delay time of the processor emulator and the communication delay time between the processor emulator, a conservative event without overhead for avoiding deadlock. High-speed simulation by synchronization is possible.
- the synchronization method is based on an event that can represent an arbitrary time instead of synchronization at a fixed time interval, an accurate simulation with a small time error is possible.
- FIG. 6 illustrates an example of a peripheral emulation operation. It is an example of the simulation operation of a plant. It is a figure which shows the component of an internal peripheral scheduler. It is a figure which shows the flowchart of a process of an internal peripheral scheduler. It is a figure which shows the flowchart of a process of an internal peripheral scheduler.
- DELTA communication delay
- Tc of a processor. It is a diagram for explaining a reaction delay [Delta] T R of the processor. It is a figure for demonstrating the simulation of a shared memory access. It is a figure for demonstrating emulating the peripheral with high communication frequency with a processor by the same core as ISS. It is a figure for demonstrating the simulation of the operation
- FIG. 1 computer hardware used to implement the present invention will be described.
- a plurality of CPU1 104a, CPU2 104b, CPU3 104c,..., CPUn 104n are connected to the host bus 102.
- the host bus 102 is further connected to a main memory 106 for arithmetic processing of the CPU 1 104a, CPU 2 104b, CPU 3 104c,.
- a keyboard 110, a mouse 112, a display 114, and a hard disk drive 116 are connected to the I / O bus 108.
- the I / O bus 108 is connected to the host bus 102 via the I / O bridge 118.
- the keyboard 110 and the mouse 112 are used by an operator to input commands and click menus.
- the display 114 is used to display a menu for operating the process with the GUI as necessary.
- CPU1 104a, CPU2 104b, CPU3 104c,..., CPUn 104n 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 116 and is read from the hard disk drive 116 into the main memory 106 when the computer system is started.
- a multiprocessor system is generally intended to be a system that uses a processor having a plurality of cores of processor functions that can independently perform arithmetic processing. Therefore, a multicore single processor system, a single core multiprocessor system, or It should be understood that either a processor system or a multi-core multi-processor system may be used.
- 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 the Windows (R) system, 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 116 further stores programs such as a processor emulator, a peripheral emulator, a plant simulator, an internal peripheral scheduler, a mutual peripheral scheduler, an external peripheral scheduler, and a CAN emulator, which will be described later. Each of them is loaded into the main memory 106 when the computer system is started up, assigned to the individual CPUs 1 to CPUn as individual threads or processes, and executed. For this reason, the computer system shown in FIG. 1 is preferably individually assigned to individual threads such as a processor emulator, a peripheral emulator, a plant simulator, a mutual peripheral scheduler, an external peripheral scheduler, and a CAN emulator. Has a sufficient number of CPUs.
- FIG. 2 shows a processor emulator, a peripheral emulator, a plant simulator, a mutual peripheral scheduler, an external peripheral scheduler, a CAN emulator, etc. that are assigned to the individual CPU1 to CPUn and operate as individual threads or processes. It is a functional block diagram which shows the cooperation relationship between processing programs.
- This configuration is a simulation system consisting of a processor emulator and peripheral emulator corresponding to the ECU, and a plant simulator. Peripheral emulators are divided into mutual peripherals and external peripherals. Although not shown in the figure, it should be understood that the internal peripheral is included in the block of the processor emulator. As a whole, it can be regarded as a four-layer simulation system in the horizontal direction of the figure.
- processor emulators 202a, 202b,... 202z function as a central controller of the ECU functions in the simulation system.
- the processor emulators 202a, 202b,... 202z load software code and perform emulation by an instruction set simulator (ISS).
- ISS instruction set simulator
- the peripheral emulators 204a, 204b,... 204z and the CAN emulator 212 are transaction-type emulators, and are preferably created by SystemC / TLM.
- the plant simulators 206a, 206b,... 206z are preferably created by a continuous numerical simulation modeling system such as MATLAB® / Simulink®. Each of the plant simulators 206a, 206b,... 206z corresponds to a power device such as an engine, a power transmission device such as a transmission, a traveling device such as a steering, and an automobile mechanism device such as a brake device.
- a power device such as an engine
- a power transmission device such as a transmission
- a traveling device such as a steering
- an automobile mechanism device such as a brake device.
- the processor emulators 202a, 202b,... 202z typically operate with a relatively high resolution clock of 80 MHz, for example.
- the plant simulators 206a, 206b,... 206z are physical mechanism simulators, for example, they typically operate at a relatively low resolution of 10 KHz.
- the peripheral emulators 204a, 204b since the processor emulators 202a, 202b,... 202z and the plant simulators 206a, 206b,... 206z cannot be directly connected, the peripheral emulators 204a, 204b,. Intervening, changes in state from the plant simulator and sensor values are converted into events and passed to the processor simulator. Conversely, instructions (signaling) from the processor emulator are converted into events and converted into the plant simulator. Play a passing role.
- the internal peripheral scheduler schedules the processor emulator and the peripheral emulator connected to it.
- the peripheral emulator connected to the processor emulator processes peripheral functions (internal peripheral) such as ROM, RAM, watch dog timer, etc. that are not directly related to other processors and plants.
- peripheral functions internal peripheral
- the internal peripheral scheduler refers to the memory map specification of the ECU, and has an important function of distributing the load / store instruction from the ISS to the internal peripheral scheduler, the mutual peripheral scheduler, and the external peripheral scheduler.
- the internal peripheral scheduler may be described in other words as a processor scheduler, but it should be noted that both indicate the same function.
- the external peripheral scheduler 208 is a scheduler that processes the peripheral emulators 204a, 204b,... 204z connected to the plant simulators 206a, 206b,.
- the external peripheral scheduler 208 schedules the plant simulators 206a, 206b,... 206z to be executed in advance by the reaction delay time (or time until the next event) of the processor emulators 202a, 202b,. To do.
- the plant simulator stops at a specified time or an earlier time if notification of an internal state update is required. Then, the processor emulator is notified to execute in advance until the time when the plant simulators 206a, 206b,.
- the external peripheral scheduler 208 gives signaling or sampling instructions requested by the controller to the plant simulators 206a, 206b,.
- the signaling is an event for the controller to actuate the plant, for example, an operation for instructing a switch ON / OFF signal.
- Sampling is an event for instructing reading of a value when the controller monitors the state of the plant. For example, the controller reads the voltage value of the battery cell (plant).
- the controller is a logic that generates a control signal for the plant by software loaded in the processor emulator. In the signaling and sampling, the controller determines the timing regardless of whether the processing to be emulated is periodic.
- the external peripheral scheduler 208 receives a notification as a state change event from the plant simulators 206a, 206b,... 206z. This is an event in which the plant notifies the controller of a change in state, and the plant determines its timing. This may also be periodic or aperiodic.
- the mutual peripheral scheduler 210 is a scheduler that provides a mutual peripheral function for connecting the processor emulators 202a, 202b,... 202z.
- the mutual peripheral scheduler 210 executes the processor emulators 202a, 202b,... 202z in advance by the communication delay time (or time until the next event) between the processor emulators 202a, 202b,. Notice.
- the processor emulators 202a, 202b,... 202z proceed conservatively until the earliest time of the notified times.
- communication between the processor and the emulator is performed by, for example, a CAN (Controller Area Network) emulator 212.
- a simulation when a shared memory is used for communication between the processors of the ECU will be described later with reference to FIG.
- an event from the external peripheral scheduler 208 and the mutual peripheral scheduler 210 to the processor emulators 202a, 202b,... 202z takes place in the form of an interrupt (INT).
- Events from the emulators 202a, 202b,... 202z to the external peripheral scheduler 208 and the mutual peripheral scheduler 210 are performed in a read / write (R / W) format.
- the external peripheral scheduler 208 causes the plant simulator 206 to execute in advance.
- T plant be the time that actually preceded. - the upper limit of the preceding is to time, the following signaling or is closer of [Delta] T R.
- ⁇ T R is the minimum delay time from the input time from the plant simulator until the response of the processor emulator is transmitted to the plant simulator and becomes effective. Is made.
- the external peripheral scheduler 208 notifies the processor emulator 202 to perform execution up to the position (T plant ) where the plant simulator 206 actually stopped.
- the mutual peripheral scheduler 210 executes the processor emulator 202 in advance until the earlier communication delay time between the processor emulator 202 and the time until the next event. To be notified. In the figure, an example in which the communication delay time is earlier is shown. The communication delay time ⁇ T c will be described in more detail with reference to FIG.
- the processor emulator 202 advances the process conservatively to the earliest time of the notified two times, but the process is not necessarily interrupted until that time.
- the emulation of the processor is realized as an ISS (Instruction Set Simulator).
- the processor emulation is executed aiming at a specified time, issues an access (R / W) request according to an instruction (instruction word), and accepts irregular interrupts generated from peripherals.
- an instruction to the ISS and a request from the ISS are described as follows.
- FIG. 4 shows an example of the emulation operation of the processor according to such an instruction.
- the processor receives an instruction of advance (t g ).
- the processor outputs load (t 1 , a 1 ) at time t 1 .
- the processor receives resume (v 1 ).
- the processor outputs store (t 2 , a 2 , v 2 ) at time t 2 .
- the processor When the time tg is reached, the processor outputs complete () according to the previously received advance (t g ). The processor may then receive interrupt (i) depending on the plant response. Otherwise, it receives the next advance () instruction.
- peripheral emulation performs transactions according to events stuck in the task queue.
- Events include register READ requests and WRITE requests.
- peripheral emulation these events are sequentially extracted from the top of the task queue, interpreted, executed as a transaction, converted into a new event, and inserted into the task queue again. It may be converted into one or more events, or it may not generate any events at all. The interpretation and execution of events depends on the function of the individual peripheral. By repeating this process until the event runs out, peripheral emulation is performed. That is, it is a repetition of pop (retrieve), execute (execute), push (insert).
- the peripheral scheduler adds the event to the appropriate task queue. That is, it is a repetition of pop, execute, push or ⁇ ⁇ ⁇ ⁇ export (insertion or transfer), import (transfer).
- import ⁇ ⁇ ⁇ ⁇ ⁇ is optional (none) depending on the cycle.
- the input / output to the plant simulator is a ⁇ port_update, t, p, v> event. This notifies the value “y” that the port “p” takes at the time “t”. For example, an instruction (signaling) to the plant and a notification of a state change from the plant are expressed by this.
- Requests issued from the processor are ⁇ read, t, r> event and ⁇ write, t, r, v> event, respectively, an event requesting reading of the value taken by the register r at time t, and register r at time t. This event requests that the value v be written to.
- the processor receives a ⁇ register_update, t, r, v> event, which notifies the value of the register r at time t in response to the ⁇ read, t, r> request.
- ⁇ interrupt, t, i> is a reception event, which is an event notifying that an interrupt i occurs at time t.
- New events returned by next include internal events closed to peripherals, such as timer firing.
- events that should be passed to other peripherals are ⁇ interrupt, t, i>, ⁇ register_update, t, r, v> And ⁇ port_update, t, p, v>.
- FIG. 5 shows an example of peripheral emulation operation.
- the task queue operation instruction insert e 1 [t 1 ]
- the event e 1 is accumulated in the task queue so as to be a FIFO. Or a task queue is empty, the time of other events if there is later than t 1, e 1 is clogged at the beginning of the task queue.
- e 1 is a register read request.
- FIG. 5 (3) represents a state in which a state change notification is received from the plant and is transmitted to the processor using an interrupt signal.
- the scheduler puts a notification of a state change in the task queue and inserts it from (insert (e 3 [t 3 ])) and executes it, it is converted into a new event ⁇ interrupt, t, i> It is transferred (exported) to the processor.
- the plant simulation is preferably realized by a continuous numerical simulation modeling system such as MATLAB® / Simulink®.
- the plant first calculates an output (vector) according to an internal state (vector) and an external input (vector) at a specified time.
- the internal state change (vector) is output.
- the internal state change is adjusted based on the specified error range, plant-specific maximum step width, zero crossing, etc. Determine the next step time.
- FIG. 6 shows an example of a plant simulation operation.
- advance (t g ) arrives at the plant.
- the plant outputs output (t 1 , y 1 ) at simulation time t 1 .
- input (u 1 ) arrives at the plant.
- the plant outputs output (t 2 , y 2 ) at simulation time t 2 .
- the internal peripheral scheduler, the mutual peripheral scheduler, and the external peripheral scheduler play major roles.
- an outline of a conservative event synchronization simulation and its terms will be described.
- FIG. 7 is a diagram showing processing related to the input queue and the output queue in the internal peripheral scheduler.
- the input queue includes IP (Input Queue from Processors), that is, a queue that receives an event (shared memory update notification) from another processor, and IQ, that is, a message from a mutual peripheral or an external peripheral.
- IP Input Queue from Processors
- IQ a queue that receives an event (shared memory update notification) from another processor
- IQ that is, a message from a mutual peripheral or an external peripheral.
- P i and P j are the i-th and j-th processors, respectively.
- the data placed in the IQ is a CAN reception or interrupt event message or a null message.
- the output queue includes OP (Output (Queue to Processors), that is, a queue that sends an event (shared memory update notification) to another processor, and an OQ, that is, a queue that sends a message to a mutual peripheral or an external peripheral. is there.
- the data placed in the OQ is a CAN transmission event message or a progress null message.
- IP and OP When exchanging events between processors, one set of IP and OP is used for each partner processor.
- T k of the kth event that arrives at IQ / IP satisfies the following condition. T k ⁇ T k + 1
- the internal peripheral scheduler waits for queue input e in step 802, and in step 804, determines whether all IQs are filled (one or more messages have arrived), and if so, in step 806 Then, the earliest time in all IQs is set to T 0, and a subroutine “parallel” is called in step 808 to perform the process of proceeding in parallel with other processors.
- the processing of the “parallel” subroutine will be described later with reference to the flowchart of FIG.
- the internal peripheral scheduler determines in step 902 whether the process was “read” and if so, calls the “fill” subroutine in step 904.
- step 906 If the process is not “read” in step 902, the process proceeds directly to step 906.
- step 908 the internal peripheral scheduler, the processor, to execute the aim of T 1. In other words, the process proceeds until the time specified by the mutual peripheral scheduler or the external peripheral scheduler.
- step 910 the internal peripheral scheduler advances the time T while executing the processor, and in step 912, OQ / OP is updated / flushed.
- step 916 If it is determined at step 916 that the last notification from the ISS is not "read”, then at step 918, either writing to shared memory, sending CAN, or sending a null message is performed, Return to step 908.
- the internal peripheral scheduler creates a temporary list of entries in the IP queue. After creating the temporary list, all messages having a time stamp older than the current time in the IP are removed and added to the temporary list.
- step 1004 the internal peripheral scheduler determines whether all IPs are filled. If so, in step 1006, all the events in the temporary list (writing to the shared memory from other processors) are reflected in order of time stamp. After processing the temporary list, the fill subroutine is complete.
- step 1004 If it is determined in step 1004 that all IPs are not filled, the process proceeds to step 1008, where the internal peripheral scheduler waits for an event e from the IP.
- step 1010 it is determined whether or not T> T e, and if so, in step 1014, and updated by the addition of e to the temporary list, returns to step 1008.
- step 1010 if it is determined not equal T> T e, the internal peripheral scheduler, in addition to e to the IP at step 1012, it returns to step 1004.
- FIG. 11 is a diagram illustrating a process related to a queue in the mutual peripheral scheduler. As shown in the figure, the input queue IQ receives an event from P i and P j , which is transmitted to the CAN emulator.
- a task queue TQ which causes firing of CAN emulator reception.
- an event clogged in a task queue may be called a task in order to distinguish it from an input queue or an output queue.
- step 1202 the inter-peripheral scheduler waits for an IQ update.
- step 1204 it is determined whether all IQs are filled. Otherwise, the process returns to step 1202 to continue waiting for the IQ update.
- step 1204 the mutual peripheral scheduler, the entire IQ is determined to [filled, in step 1206, placing the closest time and T 0 in all IQ.
- event e 1 is an event that reads the value of register r at ⁇ read, t, r>, that is, time t
- event e 2 is a register at time ⁇ write, t, r, v>, that is, time t This event updates the value of r to v.
- an ⁇ interrupt, t, i>, ⁇ register_update, t, r, v> event that is notified to the processor when CAN data is received occurs.
- step 1222 the mutual peripheral scheduler updates all OQs and returns to step 1216.
- the mutual peripheral scheduler adds a null message at time min (T + ⁇ T c , T top ) to all OQs in step 1226, flushes the OQ in step 1228, and proceeds to step 1204.
- ⁇ T c is the communication delay time of the processor.
- the mutual peripheral scheduler flushes the OQ at step 1228 and returns to step 1204.
- FIG. 15 shows an example of entering / exiting the TQ and the corresponding IQ and OQ events along the time in the mutual peripheral scheduler for reference. Dotted arrows indicate the progress of guest time.
- events of messages arriving at the IQ from the processor scheduler are CAN abort, CAN transmission, null (progress message event), and CAN reset in chronological order. All the messages other than null are events that occur when the processor issues a command to the CAN device (register writing).
- CAN abort is an event that issues a command to cancel the transmission standby state when arbitration is lost and to notify the processor of an interrupt.
- CAN transmission is an event that issues a command to transmit data set in advance.
- FIG. 15 shows an example in which CAN transmission events arrive continuously from two different processors.
- the CAN reset is an event that issues a command to disconnect the CAN device from the bus and return to the initial state.
- the event of the message sent from the OQ to the processor scheduler is null (null message event), abort notification, and CAN reception in chronological order.
- the CAN reception is an event in which the CAN device notifies the processor that CAN data has been received by an interrupt.
- the abort notification is an event in which the CAN device notifies the processor that the arbitration has been lost by an interrupt.
- a CAN transmission event occurs (arrives at IQ)
- data that has started transmission may be being transferred.
- a CAN reception event (first) is accumulated at the beginning of the TQ due to the completion of the previously started transfer.
- arbitration for the next data transfer is performed.
- the time stamp of the null event arriving at the IQ is the same as the CAN reception / arbitration guest time.
- the inter-peripheral scheduler of the present invention includes a process of notifying (sending a null message) to the processor / scheduler so that the preceding execution is performed until the start time of the TQ.
- the null that arrives at IQ in FIG. 15 is a progress message that the processor scheduler notifies that the processor has reached the time notified by this processing.
- the null message that is initially sent in the OQ in the figure indicates that the processor / scheduler is notified of the preceding execution in this process.
- FIG. 13 is a diagram showing processing related to a queue in the external peripheral scheduler. As shown in the figure, messages come from P i and P j to the input queue IQ.
- An interrupt notification event message and a null message are sent to the output queue OQ, which are taken out by P i and P j .
- Task queue TQ is sorted by time stamp (time stamp).
- the external peripheral scheduler holds the current signal value of the I / O port connected to the plant.
- step 1402 the external peripheral scheduler waits for an IQ update.
- step 1404 it is determined whether all IQs are filled. If not, the process returns to step 1402 to continue waiting for the IQ update.
- step 1404 the external peripheral scheduler, the entire IQ is determined to [filled, in step 1406, placing the closest time and T 0 in all IQ.
- a T ⁇ T 0 ⁇ T P, T P is the current plant time.
- event e 1 is an event that reads the value of register r at ⁇ read, t, r>, that is, time t
- event e 2 is a register at time ⁇ write, t, r, v>, that is, time t This event updates the value of r to v.
- e 4 is an event for executing the plant until time min ⁇ T top , T + ⁇ T R ⁇ .
- step 1418 the process proceeds to a determination step of step 1420.
- T T P not equal when it is determined directly, the process proceeds to step 1420.
- step 1426 When the external peripheral scheduler determines in step 1420 that k is a plant execution, in step 1426, it calls advance () to execute the plant.
- the external peripheral scheduler updates the TQ. Specifically, it receives output (t, y), executes pusg (e 3 [t]), refers to PV, and notifies input (u). Then send a null message.
- e 3 is an event in which the value of the port p is updated to v by ⁇ port_update, p, v>.
- next step 1430 the external peripheral scheduler updates T p, and in the next step 1432, it is determined whether the processing is completed. If it is determined that the process is completed, the process returns to step 1420. If it is determined that the process is not completed, the task is returned in step 1434 and then the process returns to step 1420.
- the external peripheral scheduler proceeds to step 1436 and calls next () to execute the task. Specifically, it executes ⁇ interrupt>, ⁇ register value>, ⁇ register_update>, ⁇ port_update> and sends a null message.
- the external peripheral scheduler updates the OQ.
- add tasks ⁇ plant_go> ignite at time T + [Delta] T R to TQ. That is, insert (e 4 [T + ⁇ T R ]) is executed, but more specifically, e 4 is to execute the plant up to time min ⁇ T top , T + ⁇ T R ⁇ .
- step 1440 the external peripheral scheduler flushes the OQ and returns to step 1420.
- deadlock occurs when performing conservative event synchronization, and that a null message is necessary to avoid it. This is not a new discovery, but a knowledge that has been known.
- FIG. 16 shows the configuration of the logical process.
- the logical process includes an input queue IQ for message reception, an output queue OQ for message transmission, and a scheduled simulation task. It has a task queue TQ for storing and a scalar value indicating the current time. IQ and OQ are FIFOs, and TQs are sorted in time order.
- FIG. 17 is a diagram illustrating a state in which a plurality of logical processes (LP1 to LP4) are connected via a communication channel.
- each logical process has IQ and OQ for each communication channel.
- the logical process exchanges messages having time information (time stamps) using IQ and OQ.
- the time stamp of a message sent / received to / from IQ / OQ increases monotonously every time sending / receiving is performed. Therefore, when a logical process receives a message from all other logical processes, the simulation can proceed without rolling back to the smallest time stamp among the received messages.
- Exchanged messages include event messages and null messages.
- the event message related to the event e at time t is a message notifying that “the time of the next event that occurs from the transmission side to the reception side is t and the event that occurs is e”.
- the null message at time t is a message that tells that "the time of the next event that occurs from the sender to the receiver is later than t" and has an effect on the simulation area of the receiver. Absent.
- the purpose of the null message is to prevent the deadlock described below.
- conservative event synchronization in order to prevent rollback, processing is stopped until a message with a time stamp greater than the current time is received from all other logical processes. However, when the other logical process waiting for message reception also waits for reception from the logical process at the same time, as shown in FIG. Thus, “prefetching” how far an event from outside does not occur from the current time and sending a null message as shown in FIG. 18B prevents deadlock.
- a null message (null message having the current time at the time of transmission as a time stamp) that does not perform “look ahead” is particularly called a progress message.
- the purpose of the progress message is to avoid frequent synchronization caused by null messages with a small read-ahead width.
- the internal peripheral scheduler sends a progress message. This is because the ISS that drives the internal peripheral scheduler can only predict the next event to other logical processes with a small width.
- the communication delay ⁇ T c of the processor will be described with reference to FIG. That is, as shown, from the writing to each other peripherals (write), the minimum value of the delay until the interrupt to a receiving / transmitting-side processor is generated is communication delay [Delta] T c of the processor.
- the maximum delay of the data frame is 44 ⁇ s (the minimum number of bits of the frame is 44), which is a reference value for ⁇ T c .
- reaction delay [Delta] T R of the processor that is, the reaction delay [Delta] T R of the processor, as shown, from the input time of the plant, due to the reaction of the processor it is the minimum of delay until the effective transmitted to plant.
- T R is the minimum time at which the reaction of the processor may reach the plant when TQ is empty.
- T trigger ⁇ T R ⁇ T reaction
- time T trigger the time from when the processor determines the operation (time T trigger ) to when the actuator operates (time T reaction ) is prefetched. It does not lose time accuracy, in order to utilize the knowledge that the reaction delay [Delta] T R of the processor is used.
- processor response delay As a first example, in engine fuel injection control, when a rotation pulse (state change) is generated from the plant every 15 ° of crank, fuel injection and ignition instructions use a timer to make the time accurate. Executed. Since the time set to the timer is calculated when one or more previous rotation pulses occur, one or more pulse intervals before injection / ignition, that is, a pulse interval of ⁇ 250 ⁇ s or more is sufficient at a maximum speed of 10,000 rpm There is a significant delay. This is the reaction delay.
- the reaction delay is very small.
- this type of control often performs periodic tasks for physical phenomena that are dull compared to a processor (eg, a PWM signal indication to a fan with a controlled temperature as a control temperature, a throttle with a vehicle speed as a controlled variable) Opening instruction).
- the guideline for the control cycle of temperature, speed, and torque is 1 second, 1 millisecond, and 0.1 millisecond, respectively, and there is no need to give instructions to the plant with finer time granularity. For this reason, the time determined from the coarse time granularity of the plant is used as the reaction delay.
- FIG. 22 shows an example of assignment of the ISS, peripheral emulator, plant simulator, and three scheduler functions of the present invention to the core of the host computer.
- the internal peripheral scheduler refers to the memory map specification of the ECU, and distributes load / store instructions from the ISS to internal peripherals (SystemC in the core), mutual peripherals, and external peripherals.
- FIG. 23 shows an example in which the two processors 1 and 2 make a CAN frame transmission request to the CAN device.
- the frame requested by the processor 1 has a higher priority than the frame requested by the processor 2.
- the processor 2 issues a command to the CAN device to cancel the transmission standby state and notify the interrupt when the arbitration is lost (Abort Set).
- the vertical arrows in the figure indicate the progress of the guest time.
- the CAN device emulator (described in SystemC or the like) starts the arbitration process.
- the arbitration start event is added to the TQ by the CAN device emulator, and all processors synchronize the guest time at this time (start arbitration) by the processing of the mutual peripheral scheduler.
- the abort set, two transmission sets, and arbitration in this example correspond to the CAN abort arriving at IQ, the two CAN transmissions arriving at IQ, and the arbitration event added to TQ in FIG.
- the processing of the mutual peripheral scheduler that synchronizes the processor time in FIG. 23 is the transmission of a null message and reception of a progress message at the beginning of the TQ, and is the same as the processing described in relation to FIG. .
- FIG. 23 shows that when arbitration is started, the emulator of the CAN device adds an event of the loss notification time to the TQ.
- the time stamp of the null message to be sent is not ⁇ T C but the time of the loss notification added here. For this reason, the processor 2 does not pass the loss notification time (overhead requiring rollback).
- the processor 1 that issued a CAN frame request with a high priority between the start of the arbitration and the completion of the arbitration (confirmation of victory and defeat of the frame) Indicates resetting.
- arbitration is started, as described in the example of FIG. 23, an event for abort notification to the processor 2 is added to the TQ by the emulator of the CAN device.
- the CAN device emulator checks whether there is a reset notification before issuing an abort notification and determines whether to perform the abort notification. It shows that
- the CAN device emulator recalculates which CAN frame wins the arbitration when there is a reset notification.
- the processor is not notified of the abort.
- FIG. 24 shows that the scheduled abort notification is not performed as a result of the CAN frame (scheduled to be lost at the start of arbitration) that the processor 2 has requested for transmission having won arbitration as a result of recalculation.
- the processor erroneously receives an abort notification (overhead requiring a rollback) even though no abort occurs due to the reset. There is no.
- processor emulators 2502a,..., 2502m, 2504a,..., 2504n are functionally substantially the same as the processor emulators 202a,.
- Peripheral emulators 2506a,..., 2506m, 2508a,..., 2508n are functionally substantially the same as the peripheral emulators 204a,.
- the configuration of FIG. 25 is different from the configuration of FIG. 2 in that the plant simulator is an active plant simulator 2510a,..., 2510m, and a passive plant simulator 2512a,. , 2512n.
- the active plant simulator is a plant simulator having a function of autonomously determining the timing of state change and the like, like an engine simulator.
- the engine is a plant that informs the crank angle in pulses of 15 degrees, but the timing cannot be determined on the controller (ECU) side.
- a passive plant simulator is a plant simulator in which the controller can determine the timing, for example, a plant that monitors (samples) the voltage of the battery at a specified timing.
- a sensor plant such as a temperature sensor, a pressure sensor, and a rotation speed sensor corresponds to a passive plant. If the brake or suspension senses the state by sampling, it is classified as a passive plant.
- the external peripheral scheduler In response to the sorting of such an active plant simulator and a passive plant simulator, the external peripheral scheduler also schedules an external peripheral scheduler 2514a for scheduling a peripheral emulator connected to the active plant simulator, An external peripheral scheduler 2514b is provided that schedules a peripheral simulator connected to the passive plant emulator.
- the peripheral processor connected to the active plant simulator has a two-way action of receiving a state change while the corresponding processor emulator notifies the signal update, but the passive plant simulator In principle, the corresponding processor emulator only notifies the signal update and the sampling notice to the connected peripheral emulator.
- the operation of the mutual peripheral scheduler 2516 is substantially the same as that of FIG. It is the same as the mutual peripheral scheduler 210, and the CAN emulator 2518 is substantially the same as the CAN emulator 212 of FIG.
- the external peripheral scheduler 2514a for the active plant simulator is functionally substantially identical to the external peripheral scheduler 208 of FIG. 2, but the external peripheral scheduler 2514b for the passive plant simulator. Does not require a process of calculating a time width for causing the processor to precede the plant.
- the external peripheral scheduler for the passive plant simulator only has to repeat the process of catching up with the time of the preceding processor every time the time is notified.
- step 2602 the external peripheral scheduler 2514 b waits for the IQ update.
- step 2604 it is determined whether all IQs are filled. If not, the process returns to step 2602 to continue waiting for the IQ update.
- step 2604 the external peripheral scheduler 2514b is, when all the IQ is determined to [filled, at step 1406, the closest time in the entire IQ put and T 0.
- step 2616 the external peripheral scheduler 2514b executes the plant up to T.
- the external peripheral scheduler 2514b does not receive notification of a state change.
- the external peripheral scheduler 2514b executes the TQ entry (T) in step 2618 and returns to step 2604.
- CAN is described as the in-vehicle LAN protocol handled by the mutual peripheral scheduler
- the simulation system of the present invention is not limited to CAN, and can be applied to any in-vehicle LAN protocol such as LIN and FlexRay. is there.
- 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)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Software Systems (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Debugging And Monitoring (AREA)
Abstract
Description
(1) 時間同期:この方式では、プロセッサ・エミュレータが互いに通信しつつ、シミュレーションを実行する。実行速度と時間精度のトレードオフがあり、時間の量子化誤差がある。また、上記でも示したように、この方式では、プロセッサ・エミュレータ間の同期通信コストが大きいので、現実的な解法とはならない。
(2) 楽観的なイベント同期:この方式では、各プロセッサ・エミュレータが時刻情報付きのイベントを送り、また受信することで相手と同期する。ただし、「フライング」となる可能性を残したまま、投機的にシミュレーションを実行するので、その投機が外れていた場合には、プロセッサ・エミュレータを適宜、ロールバックする必要がある。同期にかかるコストは、時間同期の方法に比べて小さいが、ロールバックに備えて、状態を遂次記録しておいたりするコストが大きすぎて、現実的でない。
(3) 保守的なイベント同期:この方式では、各プロセッサ・エミュレータが時刻情報付きのイベントを送り、また受信することで相手と同期する。ただし、因果関係が矛盾しないように「保守的」にシミュレーションを進めるために、互いにイベントを待ちあうことになってデッドロックが生じることがある。そのようなデッドロックを避けるためには、時間送りのために特別な nullメッセージを高頻度で送るなど、回避のためのコストが大きくなることがある。
・先ず、図3(1)に示すように、外部ペリフェラル・スケジューラ208が、プラント・シミュレータ206を先行実行させる。実際に先行した時間を、Tplantとする。
・先行させる時間の上限は、次のシグナリング、あるいは、ΔTRの近い方である。ここで、ΔTRとは、プラント・シミュレータからの入力時刻から、それによるプロセッサ・エミュレータの反応がプラント・シミュレータに伝わって有効となるまでの遅延の最小値であり、図20で、より詳しい説明がなされる。
・次に、図3(2)に示すように、外部ペリフェラル・スケジューラ208は、実際にプラント・シミュレータ206が停止した位置(Tplant)まで、プロセッサ・エミュレータ202に先行実行するように通知する。
・次に、図3(3)に示すように、相互ペリフェラル・スケジューラ210は、プロセッサ・エミュレータ202間の通信遅延時間および次のイベントまでの時間の早いほうまで、プロセッサ・エミュレータ202に先行実行するように通知する。図では、通信遅延時間のほうが早い例を示している。
・通信遅延時間ΔTcについては、図19で、より詳しい説明がなされる。
・次に、図3(4)に示すように、プロセッサ・エミュレータ202は、通知された2つの時間のうち最も早い時刻まで保守的に処理を進めるが、必ずしもその時刻まで中断することなく処理を進められるとは限らず、たとえば、共有メモリの読取り(R)があるとその時刻で一旦停止する。図では、時刻(3)まで処理を進める前に時刻(4)で一旦停止している様子を示している。共有メモリへのアクセスがなければ、時刻(3)まで一度に進む。
・図3(5)に示すように、相互ペリフェラル・スケジューラ、外部ペリフェラル・スケジューラは、プロセッサから受取ったイベントのうち最も早い時刻まで、自身の処理を進める。
ISSへの指示あるいは通知
advance(t) : 最大で時刻 t まで実行するようにISSに指示する。ただし、その時刻に達する前にコミュニケーションが必要であれば、ISSはその要求を出して処理を中断する。
resume(v) : 読み出しの要求に対応するデータをISSに通知して実行を再開する。
interrupt(i) : 割込み i が生じたことをISSに通知する。
ISSからの要求あるいは通知
load(t,a) : 時刻tにa番地のデータを読み出すことを要求する。その後、resume 通知を受けるまで処理を中断する。
store(t,a,v) : 時刻tにa番地にデータvを書き込むことを要求する。
complete() : advanceで指示された時刻 t まで進んだら、完了の通知を行う。
insert(e[t]) : 時刻tに発生するイベント e[t]をタスク・キューに追加する
next() : k : タスク・キューの先頭を取り出(pop)して発火(execute)して、その応答として必要なら、新しいイベントを返す。
peek() : t : タスク・キューの先頭にあるイベントの時刻tを返す。
プラントへの指示
advance(t) : 最大で時刻 t まで実行するようにプラントに指示する。ただし、時刻 t までステップを伸ばせない場合には、それ以前の時刻で停止する。
input(u) : プラントへの入力ベクトル u を更新する
プラントからの通知
complete() : advance で指定された時刻まで実行が完了したことを通知される
output(t,y) : 時刻 t において、プラントからの出力ベクトル y が更新されたことを通知される
mdlGetTimeOfNextVarHit()の呼出し complete()
mdlGetTimeOfNextVarHit()のリターン advance(t)
mdlOutputs()の呼出し output(t,y)
mdlOutputs()のリターン input(u)
Tk ≦ Tk+1
Ttopは、IPの先頭時刻であり、IPがない(共有メモリ通信を行うプロセッサがない)またはIPが空の場合はTtop = ∞とおく。
(1) 全てのIQにメッセージが到着するまで待機
(2) IQの中で最も時刻の早いメッセージ(t = T0)をポップ
(3) T0まで現在時刻を進めながら、シミュレーションを実行(タスクキューをポップして実行)
(a) 未来のイベントはタスクキューに追加
(b) 発生した外部へのイベントは逐次OQに追加
(c) イベント追加がないOQには、nullメッセージを追加(t = 現在時刻 + 先読み時間)
(2)でポップしたメッセージを処理して(1)に戻る
Ttrigger << TR ≦ Treaction
プロセッサが動作を決定(時刻Ttrigger)してからアクチュエータが動作(時刻Treaction)するまでの時間を先読みとしてプラントを先行実行しても。時間正確性は失わない、という知見を利用するために、プロセッサの反応遅延ΔTRが使用される。
<ISS>
int: interrupt
rs: resume
a: advance
l: load
s: store
c: complete
<SystemC>
r: read
w: write
ru: register update
int: interrupt
pu: port update
<plant>
a: advance
i: input
c: complete
o: output
<通信チャネル>
r: read
w: write
ru: register update
int: interrupt
104a,・・・104n CPU
106 メイン・メモリ
116 ハードティスク・ドライブ
202,2502,2504 プロセッサ・エミュレータ
204,2506,2508 ペリフェラル・エミュレータ
206,2510,2512 プラント・シミュレータ
208,2514a,2514b 外部ペリフェラル・スケジューラ
210,2516 相互ペリフェラル・スケジューラ
212,2518 CANエミュレータ
Claims (21)
- コンピュータの処理により、シミュレーションを行なうシミュレーション・システムにおいて、
前記コンピュータ上で実行される複数のプロセッサ・エミュレータと、
前記コンピュータ上で実行される複数のプラント・シミュレータと、
前記コンピュータ上で実行され、前記プロセッサ・エミュレータの反応遅延時間まで、前記プラント・シミュレータを先行実行させ、実際に前記プラント・シミュレータが停止した時間まで前記プロセッサ・エミュレータに先行実行するようにペリフェラル・エミュレータを介して通知する、外部ペリフェラル・スケジューラと、
前記コンピュータ上で実行され、前記プロセッサ・エミュレータ間の通信遅延時間だけ、前記プロセッサ・エミュレータに先行実行するように通知する、相互ペリフェラル・スケジューラとを有し、
前記プロセッサ・エミュレータは、通知された時間まで、保守的に処理を進められる、
シミュレーション・システム。 - 前記コンピュータが、マルチタスク・システムであり、前記複数のプロセッサ・エミュレータと、前記複数のプラント・シミュレータと、前記外部ペリフェラル・スケジューラと、前記相互ペリフェラル・スケジューラは、個別のスレッドまたはプロセスとして実行される、請求項1に記載のシミュレーション・システム。
- 前記コンピュータが、マルチコアまたはマルチプロセッサ・システムであり、前記複数のプロセッサ・エミュレータと、前記複数のプラント・シミュレータと、前記外部ペリフェラル・スケジューラと、前記相互ペリフェラル・スケジューラは、前記マルチプロセッサ・システムの異なるプロセッサまたはコアに個別に割り当てられて個別のスレッドまたはプロセスとして実行される、請求項2に記載のシミュレーション・システム。
- 前記プラント・シミュレータと、該プラント・シミュレータと通信する前記ペリフェラル・エミュレータが、同一のコアまたはプロセッサに割りあてられている、請求項3に記載のシミュレーション・システム。
- 前記複数のプラント・シミュレータは、自発的に状態を決定する能動的プラント・シミュレータと、タイミングを前記プロセッサ・エミュレータ側で決定する受動的プラント・シミュレータを有し、前記外部ペリフェラル・スケジューラは、前記能動的プラント・シミュレータと通信する能動的プラント用の外部ペリフェラル・スケジューラと、前記受動的プラント・シミュレータと通信する受動的プラント用の外部ペリフェラル・スケジューラからなる、請求項1に記載のシミュレーション・システム。
- CANエミュレータをもち、該CANエミュレータは、相互ペリフェラル・スケジューラによってスケジュールされる、請求項1に記載のシミュレーション・システム。
- 前記プロセッサ・エミュレータはそれぞれ、キューをもつ内部ペリフェラル・スケジューラと協働し、該キューの書込みイベントの時間により、複数の前記プロセッサ・エミュレータによる共有メモリ・アクセスのデッドロックが回避される、請求項1に記載のシミュレーション・システム。
- コンピュータの処理により、シミュレーションを行なうシミュレーション方法において、
前記コンピュータ上で、複数のプロセッサ・エミュレータを実行させるステップと、
前記コンピュータ上で、複数のプラント・シミュレータを実行させるステップと、
前記コンピュータ上で、前記プロセッサ・エミュレータの反応遅延時間まで、前記プラント・シミュレータを先行実行させ、実際に前記プラント・シミュレータが停止した時間まで前記プロセッサ・エミュレータに先行実行するようにペリフェラル・エミュレータを介して通知する、外部ペリフェラル・スケジューラを実行させるステップと、
前記コンピュータ上で、前記プロセッサ・エミュレータ間の通信遅延時間だけ、前記プロセッサ・エミュレータに先行実行するように通知する、相互ペリフェラル・スケジューラを実行させるステップとを有し、
前記プロセッサ・エミュレータは、通知された時間まで、保守的に処理を進められる、
シミュレーション方法。 - 前記コンピュータが、マルチタスク・システムであり、前記複数のプロセッサ・エミュレータと、前記複数のプラント・シミュレータと、前記外部ペリフェラル・スケジューラと、前記相互ペリフェラル・スケジューラは、個別のスレッドまたはプロセスとして実行される、請求項8に記載のシミュレーション方法。
- 前記コンピュータが、マルチコアまたはマルチプロセッサ・システムであり、前記複数のプロセッサ・エミュレータと、前記複数のプラント・シミュレータと、前記外部ペリフェラル・スケジューラと、前記相互ペリフェラル・スケジューラは、前記マルチプロセッサ・システムの異なるプロセッサまたはコアに個別に割り当てられて個別のスレッドまたはプロセスとして実行される、請求項9に記載のシミュレーション方法。
- 前記プラント・シミュレータと、該プラント・シミュレータと通信する前記ペリフェラル・エミュレータが、同一のコアまたはプロセッサに割りあてられている、請求項10に記載のシミュレーション方法。
- 前記複数のプラント・シミュレータは、自発的に状態を決定する能動的プラント・シミュレータと、タイミングを前記プロセッサ・エミュレータ側で決定する受動的プラント・シミュレータを有し、前記外部ペリフェラル・スケジューラは、前記能動的プラント・シミュレータと通信する能動的プラント用の外部ペリフェラル・スケジューラと、前記受動的プラント・シミュレータと通信する受動的プラント用の外部ペリフェラル・スケジューラからなる、請求項8に記載のシミュレーション方法。
- CANエミュレータを実行させるステップを有し、該CANエミュレータは、相互ペリフェラル・スケジューラによってスケジュールされる、請求項8に記載のシミュレーション方法。
- 前記プロセッサ・エミュレータはそれぞれ、キューをもつ内部ペリフェラル・スケジューラと協働し、該キューの書込みイベントの時間により、複数の前記プロセッサ・エミュレータによる共有メモリ・アクセスのデッドロックが回避される、請求項8に記載のシミュレーション方法。
- コンピュータの処理により、シミュレーションを行なうシミュレーション・プログラムにおいて、
前記コンピュータに、
複数のプロセッサ・エミュレータを実行させるステップと、
複数のプラント・シミュレータを実行させるステップと、
前記プロセッサ・エミュレータの反応遅延時間まで、前記プラント・シミュレータを先行実行させ、実際に前記プラント・シミュレータが停止した時間まで前記プロセッサ・エミュレータに先行実行するようにペリフェラル・エミュレータを介して通知する、外部ペリフェラル・スケジューラを実行させるステップと、
前記プロセッサ・エミュレータ間の通信遅延時間だけ、前記プロセッサ・エミュレータに先行実行するように通知する、相互ペリフェラル・スケジューラを実行させるステップを実行させ、
前記プロセッサ・エミュレータは、通知された時間まで、保守的に処理を進められる、
シミュレーション・プログラム。 - 前記コンピュータが、マルチタスク・システムであり、前記複数のプロセッサ・エミュレータと、前記複数のプラント・シミュレータと、前記外部ペリフェラル・スケジューラと、前記相互ペリフェラル・スケジューラは、個別のスレッドまたはプロセスとして実行される、請求項15に記載のシミュレーション・プログラム。
- 前記コンピュータが、マルチコアまたはマルチプロセッサ・システムであり、前記複数のプロセッサ・エミュレータと、前記複数のプラント・シミュレータと、前記外部ペリフェラル・スケジューラと、前記相互ペリフェラル・スケジューラは、前記マルチプロセッサ・システムの異なるプロセッサまたはコアに個別に割り当てられて個別のスレッドまたはプロセスとして実行される、請求項16に記載のシミュレーション・プログラム。
- 前記プラント・シミュレータと、該プラント・シミュレータと通信する前記ペリフェラル・エミュレータが、同一のコアまたはプロセッサに割りあてられている、請求項17に記載のシミュレーション・プログラム。
- 前記複数のプラント・シミュレータは、自発的に状態を決定する能動的プラント・シミュレータと、タイミングを前記プロセッサ・エミュレータ側で決定する受動的プラント・シミュレータを有し、前記外部ペリフェラル・スケジューラは、前記能動的プラント・シミュレータと通信する能動的プラント用の外部ペリフェラル・スケジューラと、前記受動的プラント・シミュレータと通信する受動的プラント用の外部ペリフェラル・スケジューラからなる、請求項15に記載のシミュレーション・プログラム。
- CANエミュレータを実行させるステップを有し、該CANエミュレータは、相互ペリフェラル・スケジューラによってスケジュールされる、請求項15に記載のシミュレーション・プログラム。
- 前記プロセッサ・エミュレータはそれぞれ、キューをもつ内部ペリフェラル・スケジューラと協働し、該キューの書込みイベントの時間により、複数の前記プロセッサ・エミュレータによる共有メモリ・アクセスのデッドロックが回避される、請求項15に記載のシミュレーション・プログラム。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020137005015A KR101522477B1 (ko) | 2010-08-20 | 2011-07-27 | 시뮬레이션 방법, 시스템 및 프로그램 |
US13/817,597 US9147016B2 (en) | 2010-08-20 | 2011-07-27 | Multi-ECU simulation by using 2-layer peripherals with look-ahead time |
CN201180038696.1A CN103098032B (zh) | 2010-08-20 | 2011-07-27 | 仿真方法和系统 |
JP2012529543A JP5583773B2 (ja) | 2010-08-20 | 2011-07-27 | シミュレーション方法、システム及びプログラム |
EP11818040.5A EP2608040A4 (en) | 2010-08-20 | 2011-07-27 | Simulation method, system and program |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010184845 | 2010-08-20 | ||
JP2010-184845 | 2010-08-20 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2012023397A1 true WO2012023397A1 (ja) | 2012-02-23 |
Family
ID=45605058
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2011/067132 WO2012023397A1 (ja) | 2010-08-20 | 2011-07-27 | シミュレーション方法、システム及びプログラム |
Country Status (6)
Country | Link |
---|---|
US (1) | US9147016B2 (ja) |
EP (1) | EP2608040A4 (ja) |
JP (1) | JP5583773B2 (ja) |
KR (1) | KR101522477B1 (ja) |
CN (1) | CN103098032B (ja) |
WO (1) | WO2012023397A1 (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102682214A (zh) * | 2012-05-14 | 2012-09-19 | 于永利 | 基于保守机制的小步长时间推进算法 |
JP2015106179A (ja) * | 2013-11-28 | 2015-06-08 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | シミュレーション装置、シミュレーション方法、およびプログラム |
CN105843071A (zh) * | 2016-03-21 | 2016-08-10 | 大连理工大学 | 一种智能车辆运动控制实物仿真系统 |
CN111123764A (zh) * | 2019-12-04 | 2020-05-08 | 东风电驱动系统有限公司 | 一种can信号打包处理方法及系统 |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9037448B2 (en) * | 2009-08-07 | 2015-05-19 | Hitachi, Ltd. | Computer system, program, and method for assigning computational resource to be used in simulation |
JP5528294B2 (ja) * | 2010-10-20 | 2014-06-25 | インターナショナル・ビジネス・マシーンズ・コーポレーション | シミュレーション制御方法、システム及びプログラム |
WO2013145270A1 (ja) * | 2012-03-30 | 2013-10-03 | 三菱電機株式会社 | 空調機試験システム、空調システムシミュレータ及びプログラム |
US9251308B2 (en) * | 2012-07-23 | 2016-02-02 | International Business Machines Corporation | Simulation method, system, and program |
CN103441904B (zh) * | 2013-09-03 | 2017-04-12 | 北京邮电大学 | 一种基于时间限制的通信调度模拟方法 |
EP2851815A1 (de) | 2013-09-18 | 2015-03-25 | dSPACE digital signal processing and control engineering GmbH | Testeinrichtung zum Echtzeittest eines virtuellen Steuergeräts |
WO2015135740A1 (en) * | 2014-03-10 | 2015-09-17 | Mhwirth As | Improved method for testing a control system |
US9864864B2 (en) * | 2014-09-23 | 2018-01-09 | Accenture Global Services Limited | Industrial security agent platform |
CN105159755A (zh) * | 2015-10-12 | 2015-12-16 | 无锡还有网络科技有限公司 | 多处理器的仿真处理系统 |
US11314907B2 (en) * | 2016-08-26 | 2022-04-26 | Hitachi, Ltd. | Simulation including multiple simulators |
CN106326599B (zh) * | 2016-09-14 | 2020-03-10 | 苏州浪潮智能科技有限公司 | 一种多处理器系统仿真的系统状态监测方法和装置 |
US10157158B2 (en) * | 2017-01-27 | 2018-12-18 | Ford Global Technologies, Llc | Method and apparatus for distributed computing using controller area network protocols |
JP6770935B2 (ja) * | 2017-07-03 | 2020-10-21 | 日立オートモティブシステムズ株式会社 | 車両制御装置用の検証装置 |
EP3454234A1 (de) * | 2017-09-06 | 2019-03-13 | dSPACE digital signal processing and control engineering GmbH | Verfahren zum bereitstellen einer echtzeitfähigen simulation für die steuergerätentwicklung und simulationsvorrichtung für die steuergerätentwicklung |
CN108447330B (zh) * | 2018-01-30 | 2020-07-03 | 王志强 | 一种虚实结合的数控设备级联系统及方法 |
EP3521949B1 (de) * | 2018-02-01 | 2021-01-13 | Siemens Aktiengesellschaft | Vorrichtung zum simulieren einer gesteuerten maschine oder anlage sowie verfahren |
CN109101456B (zh) * | 2018-08-30 | 2021-10-15 | 浪潮电子信息产业股份有限公司 | 一种仿真ssd中的数据交互通信方法、装置及终端 |
CN110059329B (zh) * | 2018-12-05 | 2023-06-20 | 中国航空工业集团公司西安飞机设计研究所 | 一种精细化的机电系统能量综合仿真方法及综合仿真系统 |
KR102608939B1 (ko) * | 2021-12-28 | 2023-12-01 | 재단법인대구경북과학기술원 | 멀티코어 프로세서를 이용한 주변 장치 공유 방법 및 이를 이용하는 전자 장치 |
CN115643124A (zh) * | 2022-06-23 | 2023-01-24 | 南京轶诺科技有限公司 | 一种pc机模拟汽车can总线通信系统 |
CN115134254B (zh) * | 2022-06-28 | 2023-11-03 | 抖音视界(北京)有限公司 | 一种网络模拟方法、装置、设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10312315A (ja) * | 1997-05-12 | 1998-11-24 | Nec Corp | ソフトウェア/ハードウェア協調シミュレーション方式 |
JP2007011720A (ja) | 2005-06-30 | 2007-01-18 | Sharp Corp | システムシミュレータ、システムシミュレート方法、制御プログラムおよび可読記録媒体 |
JP2009238954A (ja) | 2008-03-26 | 2009-10-15 | Fujifilm Corp | 金属研磨用組成物、及び化学的機械的研磨方法 |
JP2010002968A (ja) * | 2008-06-18 | 2010-01-07 | Internatl Business Mach Corp <Ibm> | シミュレーション方法、システム及びプログラム |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5737711A (en) * | 1994-11-09 | 1998-04-07 | Fuji Jukogyo Kabuishiki Kaisha | Diagnosis system for motor vehicle |
JP2002073374A (ja) | 2000-08-30 | 2002-03-12 | Canon Inc | 割り込みシミュレーション方法及び装置 |
JP4152659B2 (ja) | 2001-04-06 | 2008-09-17 | 株式会社ガイア・システム・ソリューション | データ処理システムおよび設計システム |
JP2004206699A (ja) * | 2002-12-12 | 2004-07-22 | Matsushita Electric Ind Co Ltd | シミュレーション装置、シミュレーション方法及びプログラム |
JP4057989B2 (ja) * | 2003-09-26 | 2008-03-05 | 株式会社東芝 | スケジューリング方法および情報処理システム |
JP2005128692A (ja) * | 2003-10-22 | 2005-05-19 | Matsushita Electric Ind Co Ltd | シミュレータ及びシミュレーション方法 |
TW200532560A (en) * | 2003-11-13 | 2005-10-01 | Qualcomm Inc | System and method for dynamically simulating devices at a computing device |
JP4717492B2 (ja) * | 2005-04-12 | 2011-07-06 | 富士通株式会社 | マルチコアモデルシミュレータ |
JP4997360B2 (ja) | 2005-10-28 | 2012-08-08 | 株式会社神戸機械製作所 | 成形米飯食品製造装置 |
US8352231B2 (en) * | 2007-08-30 | 2013-01-08 | International Business Machines Corporation | System for performing a co-simulation and/or emulation of hardware and software |
JP5153465B2 (ja) * | 2008-06-09 | 2013-02-27 | インターナショナル・ビジネス・マシーンズ・コーポレーション | シミュレーション方法、システム及びプログラム |
US20100070748A1 (en) * | 2008-09-17 | 2010-03-18 | Au Group Electronics | Device and methods for simulating controller area network signals |
JP4629768B2 (ja) * | 2008-12-03 | 2011-02-09 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 並列化処理方法、システム、及びプログラム |
JP4988789B2 (ja) * | 2009-05-19 | 2012-08-01 | インターナショナル・ビジネス・マシーンズ・コーポレーション | シミュレーション・システム、方法及びプログラム |
JP4852629B2 (ja) * | 2009-06-02 | 2012-01-11 | インターナショナル・ビジネス・マシーンズ・コーポレーション | シミュレーション・システム、方法及びプログラム |
JP5065344B2 (ja) * | 2009-07-14 | 2012-10-31 | インターナショナル・ビジネス・マシーンズ・コーポレーション | シミュレーション方法、システム及びプログラム |
JP5379862B2 (ja) | 2009-10-16 | 2013-12-25 | インターナショナル・ビジネス・マシーンズ・コーポレーション | シミュレーション方法、システム及びプログラム |
-
2011
- 2011-07-27 JP JP2012529543A patent/JP5583773B2/ja not_active Expired - Fee Related
- 2011-07-27 CN CN201180038696.1A patent/CN103098032B/zh not_active Expired - Fee Related
- 2011-07-27 WO PCT/JP2011/067132 patent/WO2012023397A1/ja active Application Filing
- 2011-07-27 KR KR1020137005015A patent/KR101522477B1/ko active IP Right Grant
- 2011-07-27 EP EP11818040.5A patent/EP2608040A4/en not_active Withdrawn
- 2011-07-27 US US13/817,597 patent/US9147016B2/en not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10312315A (ja) * | 1997-05-12 | 1998-11-24 | Nec Corp | ソフトウェア/ハードウェア協調シミュレーション方式 |
JP2007011720A (ja) | 2005-06-30 | 2007-01-18 | Sharp Corp | システムシミュレータ、システムシミュレート方法、制御プログラムおよび可読記録媒体 |
JP2009238954A (ja) | 2008-03-26 | 2009-10-15 | Fujifilm Corp | 金属研磨用組成物、及び化学的機械的研磨方法 |
JP2010002968A (ja) * | 2008-06-18 | 2010-01-07 | Internatl Business Mach Corp <Ibm> | シミュレーション方法、システム及びプログラム |
Non-Patent Citations (1)
Title |
---|
See also references of EP2608040A4 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102682214A (zh) * | 2012-05-14 | 2012-09-19 | 于永利 | 基于保守机制的小步长时间推进算法 |
JP2015106179A (ja) * | 2013-11-28 | 2015-06-08 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | シミュレーション装置、シミュレーション方法、およびプログラム |
US9563471B2 (en) | 2013-11-28 | 2017-02-07 | International Business Machines Corporation | Simulation apparatus, simulation method, and program |
CN105843071A (zh) * | 2016-03-21 | 2016-08-10 | 大连理工大学 | 一种智能车辆运动控制实物仿真系统 |
CN111123764A (zh) * | 2019-12-04 | 2020-05-08 | 东风电驱动系统有限公司 | 一种can信号打包处理方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN103098032B (zh) | 2015-10-14 |
KR20130105609A (ko) | 2013-09-25 |
JP5583773B2 (ja) | 2014-09-03 |
KR101522477B1 (ko) | 2015-05-21 |
EP2608040A4 (en) | 2018-02-07 |
CN103098032A (zh) | 2013-05-08 |
JPWO2012023397A1 (ja) | 2013-10-28 |
US9147016B2 (en) | 2015-09-29 |
US20130151220A1 (en) | 2013-06-13 |
EP2608040A1 (en) | 2013-06-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5583773B2 (ja) | シミュレーション方法、システム及びプログラム | |
Zeng et al. | Stochastic analysis of can-based real-time automotive systems | |
EP2318922B1 (en) | Controlling real time clock during embedded system development | |
JP5295355B2 (ja) | シミュレーション方法、システム及びプログラム | |
US9251308B2 (en) | Simulation method, system, and program | |
JP5651251B2 (ja) | シミュレーション実行方法、プログラム及びシステム | |
JP2009295126A (ja) | シミュレーション方法、システム及びプログラム | |
CN103823706A (zh) | 一种基于RTLinux的被控对象模型模拟仿真实时调度方法 | |
CN103853598B (zh) | 实现嵌入式虚拟机硬实时虚拟定时器响应的方法 | |
CN112166428A (zh) | 用于系统的基于事件的模拟的方法 | |
JP5224957B2 (ja) | シミュレーション方法、システム及びプログラム | |
WO2011046089A1 (ja) | シミュレーション方法、システム及びプログラム | |
Wurst et al. | System performance modelling of heterogeneous hw platforms: An automated driving case study | |
EP4092531A1 (en) | Systems, methods, and apparatus for coordinating computation systems | |
Rehm et al. | Performance modeling of heterogeneous HW platforms | |
JP2012093899A (ja) | 計算機システム、シミュレーション方法、及びプログラム | |
Lee et al. | Probabilistically guaranteeing end-to-end latencies in autonomous vehicle computing systems | |
JP5186290B2 (ja) | シミュレーション方法、システム及びプログラム | |
CN114021311A (zh) | 一种基于rtx的异构并行半实物仿真装置和方法 | |
JP2590179B2 (ja) | 並列論理シミュレーション制御方式 | |
JP2010086207A (ja) | シミュレーション方法、システム及びプログラム | |
Orlic et al. | Real-time and fault tolerance in distributed control software | |
Munawar et al. | On-time data exchange in fully-parallelized co-simulation with conservative synchronization | |
Grolleau | Introduction to Real‐Time Scheduling | |
CN118112946A (zh) | 一种虚实结合的多节点信号级仿真方法及平台 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WWE | Wipo information: entry into national phase |
Ref document number: 201180038696.1 Country of ref document: CN |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 11818040 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 2012529543 Country of ref document: JP Kind code of ref document: A |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2011818040 Country of ref document: EP |
|
WWE | Wipo information: entry into national phase |
Ref document number: 13817597 Country of ref document: US |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
ENP | Entry into the national phase |
Ref document number: 20137005015 Country of ref document: KR Kind code of ref document: A |