IP Library › Granted Patent US 9,251,308
Granted Patent B2
US 9,251,308 · App. 13/555,731 · Granted Feb 2, 2016

Simulation method, system, and program

Inventors: Kohichi Kajitani (Kanagawa, JP); Hideaki Komatsu (Kanagawa, JP); Shu Shimizu (Kanagawa, JP)
Assignee: International Business Machines Corporation
G06F17/5095B60T8/4081G06F17/5009G06F11/3632G06F2217/86
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,251,308
App. No.
13/555,731
Granted
Feb 2, 2016
Kind
B2
Abstract

System and method for achieving reproducibility of a simulation operation while reasonably keeping an operation speed. A peripheral scheduler clears completion flags of all the peripheral emulators to thereby start parallel operations thereof. Then, based on processing break timing set for the individual peripheral emulators, the peripheral scheduler finds one of the peripheral emulators which is scheduled to reach a processing break at the earliest. The found peripheral emulator is referred to as a peripheral P. In a case where a time of the processing break of the peripheral P is T, the peripheral scheduler continues execution of processor emulators and plant simulators up until a time point of the time T. The peripheral scheduler waits for setting of a completion flag of the peripheral P. In response to the setting, the peripheral scheduler performs data synchronization among the peripheral P, the processor emulators, and the plant simulators.

Claims (58)

1. A computer implemented simulation system that performs simulation, the simulation system comprising:

a memory storage device;

one or more processing devices in operative communication with said memory, the one or more devices configured to perform a method comprising:

running a plurality of processor emulators on the computer;

running a plurality of plant simulators on the computer;

running a plurality of peripheral emulators on the computer, each of the peripheral emulators having a respective time information corresponding to specific processing break positions and configured to perform data communication with a corresponding processor emulator and a corresponding plant simulator;

storing, in the memory storage device, a completion flag associated with each peripheral emulator of said plurality, each peripheral emulator configured to set its associated completion flag upon reaching a time of a processing break position; and

running a peripheral scheduler process on the computer, the peripheral scheduler process configured to:

re-set, at a start of a simulation, all completion flags to an off state;

control running of all the processor emulators and all the plant simulators simultaneously and in parallel for said simulation;

obtain time information corresponding to a break position of each said peripheral emulator,

find one of the peripheral emulators which reaches the processing break position at the earliest and defining a processing break timing thereof;

synchronize, responsive to a setting of the completion flag by a peripheral emulator, data communications between the plurality of processor emulators and the plurality of plant simulators at the found processing break timing, and

re-set, upon completion of said synchronizing data communications between said plurality of processor emulators and the plurality of plant simulators, the completion flag provided for said peripheral emulator; and

select as a next target processing break time, a peripheral emulator having a processing break timing closest to the time of a currently performed synchronization,

whereby the simulation system operates according to scheduling based on such processing break timing of the peripheral emulators.

2. The simulation system according to claim 1 , wherein the computer is a multitask system, and the plurality of processor emulators, the peripheral emulators, and the plurality of plant simulators are executed as individual threads or processes of the multiprocessor system.

3. The simulation system according to claim 2 , wherein the computer is a multiprocessor system, and the plurality of processor emulators, the peripheral emulators, and the plurality of plant simulators are assigned to different processors or cores of the multiprocessor system to be executed as individual threads or processes.

4. The simulation system according to claim 2 , wherein the synchronizing the plurality of processor emulators and the plurality of plant simulators comprises: setting further completion flags provided respectively for the plurality of processor emulators and the plurality of plant simulators that are stored in the memory of the computer.

5. The simulation system according to claim 4 , wherein the further completion flags provided respectively for the plurality of processor emulators and the plurality of plant simulators are implemented by using a counter semaphore.

6. The simulation system according to claim 4 , wherein said processor device further performs: storing in the memory, a table including peripheral-emulator-based processing break times, said peripheral scheduler process: selecting from the table, as a target processing break time, a processing break timing closest to the time of a currently performed synchronization.

7. The simulation system according to claim 1 , wherein a number of predetermined processing break points is indicated in an emulator source code specific to a peripheral emulator, wherein said method further comprises:

scanning said source code to locate each of the specific processing breaks in the emulator source code.

8. A simulation computer implemented method for performing simulation, the simulation method comprising the steps of:

running a plurality of processor emulators on the computer;

running a plurality of plant simulators on the computer;

running a plurality of peripheral emulators on the computer, each of the peripheral emulators having time information corresponding to specific processing break positions and configured to perform data communication with a corresponding processor emulator and a corresponding plant simulator;

storing, in a memory storage device associated with the computer, a completion flag associated with each peripheral emulator of said plurality, each peripheral emulator configured to set its associated completion flag upon reaching a time of a processing break position; and

running a peripheral scheduler process on the computer, the peripheral scheduler process:

re-setting, at a start of a simulation, all completion flags to an off state;

controlling the running of all the processor emulators and all the plant simulators simultaneously and in parallel for said simulation;

obtaining time information corresponding to a break position of each said peripheral emulator,

finding one of the peripheral emulators which reaches the processing break position at the earliest and defining a processing break timing thereof; and

synchronizing, responsive to a setting of the completion flag by a peripheral emulator, data communications between the plurality of processor emulators and the plurality of plant simulators at the found processing break timing,

re-setting, upon completion of said synchronizing data communications between said plurality of processor emulators and the plurality of plant simulators, the completion flag provided for said peripheral emulator, and

selecting, as a next target processing break time, a peripheral emulator having a processing break timing closest to the time of a currently performed synchronization.

9. The simulation method according to claim 8 , wherein the computer is a multitask system, and

the plurality of processor emulators, the peripheral emulators, and the plurality of plant simulators are executed as individual threads or processes of the multiprocessor system.

10. The simulation method according to claim 9 , wherein the computer is a multiprocessor system, and the plurality of processor emulators, the peripheral emulators, and the plurality of plant simulators are assigned to different processors or cores of the multiprocessor system to be executed as individual threads or processes.

11. The simulation method according to claim 9 , wherein the synchronizing the plurality of processor emulators and the plurality of plant simulators comprises: setting further completion flags provided respectively for the plurality of processor emulators and the plurality of plant simulators that are stored in a memory of the computer.

12. The simulation method according to claim 11 , wherein the further completion flags provided respectively for the plurality of processor emulators and the plurality of plant simulators are implemented by using a counter semaphore.

13. The simulation method according to claim 11 , further comprising: storing in the memory, a table including peripheral-emulator-based processing break times, said peripheral scheduler process: selecting from the table, as a target processing break time, a processing break timing closest to the time of a currently performed synchronization.

14. A computer program product for performing a simulation, the program product comprising a computer readable medium, said medium not a propagating signal, said computer readable medium storing a simulation program of instructions that are readable by a processing device of a computer for causing the computer to execute the steps of:

running a plurality of processor emulators;

running a plurality of plant simulators;

running a plurality of peripheral emulators each of which has time information corresponding to specific processing break positions and performs data communication with a corresponding processor emulator and a corresponding plant simulator;

storing, in a memory storage device associated with the computer, a completion flag associated with each peripheral emulator of said plurality, each peripheral emulator configured to set its associated completion flag upon reaching a time of a processing break position; and

running a peripheral scheduler process on the computer, the peripheral scheduler process:

re-setting, at a start of a simulation, all completion flags to an off state;

controlling the running of all the processor emulators and all the plant simulators simultaneously and in parallel for said simulation;

obtaining time information corresponding to a break position of each said peripheral emulator, finding one of the peripheral emulators which reaches the processing break position at the earliest and defining a processing break timing thereof; and

synchronizing, responsive to a setting of the completion flag by a peripheral emulator, data communications between the plurality of processor emulators and the plurality of plant simulators at the found processing break timing,

re-setting, upon completion of said synchronizing data communications between said plurality of processor emulators and the plurality of plant simulators, the completion flag provided for said peripheral emulator, and

selecting, as a next target processing break time, a peripheral emulator having a processing break timing closest to the time of a currently performed synchronization.

15. The computer program product according to claim 14 , wherein the computer is a multitask system, and the plurality of processor emulators, the peripheral emulators, and the plurality of plant simulators are executed as individual threads or processes of the multiprocessor system.

16. The computer program product according to claim 15 , wherein the computer is a multiprocessor system, and the plurality of processor emulators, the peripheral emulators, and the plurality of plant simulators are assigned to different processors or cores of the multiprocessor system to be executed as individual threads or processes.

17. The computer program product according to claim 15 , wherein the synchronizing the plurality of processor emulators and the plurality of plant simulators comprises: setting further completion flags provided respectively for the plurality of processor emulators and the plurality of plant simulators that are stored in a memory of the computer.

18. The computer program product according to claim 17 , wherein the further completion flags provided respectively for the plurality of processor emulators and the plurality of plant simulators are implemented by using a counter semaphore.

Assignments (2)
CORRECTIVE ASSIGNMENT TO CORRECT THE THIRD INVENTOR, SHU SHIMIZU, WAS INADVERTENTLY OMITTED ON COVER SHEET PREVIOUSLY RECORDED ON REEL 028615 FRAME 0523. ASSIGNOR(S) HEREBY CONFIRMS THE INVENTORS: KOHICHI KAJITANI DATE: 07/17/2012 HIDEAKI KOMATSU DATE: 07/17/2012 SHU SHIMIZU DATE: 07/17/2012. Recorded Oct 9, 2012
From: KAJITANI, KOHICHI; KOMATSU, HIDEAKI; SHIMIZU, SHU
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 029101/0168 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 23, 2012
From: KAJITANI, KOHICHI; KOMATSU, HIDEAKI
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 028615/0523 →
Continuity (1)
Related Publication 20140025365A1 · Jan 23, 2014