IP Library Granted Patent US 8,781,808
Granted Patent B2
US 8,781,808 · App. 12/987,481 · Granted Jul 15, 2014

Prediction-based distributed parallel simulation method

Inventor: Sei Yang Yang (Busan, KR)
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 8,781,808
App. No.
12/987,481
Granted
Jul 15, 2014
Kind
B2
Abstract

The simulation consists of a front-end simulation and a back-end simulation. The front-end simulation can use an equivalent model at different abstraction level, or a simulation model for the back-end simulation. The back-end simulation uses the simulation result of front-end simulation so that it can run one or more simulation runs sequentially or in parallel. Alternatively, models at lower level of abstraction are simulated together with a model at higher level of abstraction in parallel using two or more simulators.

Claims (72)

1. A distributed parallel simulation method for a predetermined model at a specific abstraction level comprising:

(a) obtaining expected inputs and expected outputs for at least one local simulation among a plurality of local simulations in the distributed parallel simulation for the predetermined model, wherein the local simulation is defined as each of simulations for local design objects in case of executing a parallel simulation by spatially dividing the predetermined model into a plurality of local design objects; and

(b) for at least one part of entire simulation time period, executing said at least one local simulation in the distribution parallel simulation for the predetermined model by using the expected inputs and the expected outputs,

wherein the expected inputs and the expected outputs for the at least one local simulation of the step (a) is obtained by:

(a1) while executing the distributed parallel simulation for the predetermined model at the specific abstraction level,

in said at least one local simulation, simultaneously simulating a first model and a local design object corresponding to the local simulation, wherein the first model is same to the predetermined model except that an abstraction level of the first model is higher than an abstraction level of the predetermined model, and

the step (b) comprises:

(b1) determining whether actual outputs match with the expected outputs obtained in the step (a), wherein the actual outputs are outputs obtained from an execution in which said at least one local simulation among the plurality of local simulations is executed independently with other local simulations by using the expected inputs as inputs of simulation for local design object corresponding to the local simulation while not performing a communication and a synchronization, which maintains causality relationship between the plurality of local simulations, with other local simulations;

(b2) if it is determined that the actual outputs do not match with the expected outputs in the step (b1), executing at least one local simulation among the plurality of local simulations by using actual inputs as inputs of simulation for local design object corresponding to the local simulation, wherein the actual inputs are inputs obtained from an execution in which the at least one local simulation is executed while performing the communication and the synchronization with other local simulations;

(b3) while executing the at least one local simulation according to the step (b2), determining whether actual outputs match with the expected outputs obtained in the step (a), wherein the actual outputs are outputs obtained from an execution in which the at least one local simulation among the plurality of local simulations is executed by using the actual inputs, which is obtained through the communication and the synchronization with other local simulations, as inputs of simulation for local design object corresponding to the local simulation; and

(b4) if it is determined that, in the step (b3), the actual outputs match with the expected outputs at least for a predetermined times in a specific time point, executing the at least one local simulation among the plurality of local simulations by using again the expected inputs and the expected outputs of the step (a) from the specific time point while not performing the communication and the synchronization with other local simulations.

2. The distributed parallel simulation method of claim 1 , wherein, through the step (b), at least one local simulation among said plurality of local simulations is executed while performing at least one checkpoint, the checkpoint being performed for a roll-back which can happen in a future,

wherein the step (b2) comprises:

(c1) if the actual outputs do not match with the expected outputs in the step (b1), informing other local simulations of an occurrence of mismatch and a corresponding simulation time at which the mismatch occurred,

(c2) in each of the local simulations, determining whether the roll-back is needed by comparing the corresponding simulation time informed by the local simulation in which the mismatch occurred in the step (c1) to a current simulation time, and performing the roll-back if it is determined that the roll-back is needed, and

(c3) executing at least one local simulation among said plurality of local simulations by using actual inputs as inputs of simulation for local design object corresponding to the local simulation, wherein the actual inputs are inputs obtained from an execution in which the at least one local simulation is executed while performing the communication and the synchronization with other local simulations, at the same time, output of the local design object corresponding to the local simulation is being compared with the expected output for returning to the local simulation with the expected input, which could eliminate the communication and the synchronization with other local simulations.

3. The distributed parallel simulation method of claim 1 , wherein, through the step (b), at least one local simulation among said plurality of local simulations is executed while performing at least one checkpoint, the checkpoint being performed for a roll-back which can happen in a future,

wherein the step (b2) comprises:

(d1) if the actual outputs do not match with the expected outputs in the step (b1), informing other local simulations of an occurrence of mismatch and a simulation time t_d, wherein the simulation time t_d is a time at which the mismatch occurred,

(d2) in each of the local simulations, comparing the simulation time t_d, which is informed by the local simulation in which the mismatch occurred in the step (d1), to a simulation time t_c of each of local simulations, wherein the simulation time t_c is a current simulation time of the each of local simulations,

(d3) setting the current simulation time of every local simulation identical by either determining that a roll-back is needed if the simulation time t_c is later than the simulation time t_d (i.e., t_c>t_d) and performing a roll-back, or determining that a roll-forward is needed if the simulation time t_c is earlier than the simulation time t_d (i.e., t_c<t_d) and performing a roll-forward, and

(d4) executing said every local simulation by using actual inputs as inputs of simulation for local design object corresponding to the local simulation, wherein the actual inputs are inputs obtained from an execution in which said every local simulation is executed while performing the communication and the synchronization with other local simulations, at the same time, output of the local design object corresponding to the local simulation is being compared with the expected output for returning to the local simulation with the expected input, which could eliminate the communication and the synchronization with other local simulations.

4. The distributed parallel simulation method of claim 1 , wherein said specific abstraction level of said predetermined model is GL (Gate Level), and the abstraction level of said first model is RTL (Register Transfer Level) or mixed level of RTL and GL (Gate level).

5. The distributed parallel simulation method of claim 1 , wherein said specific abstraction level of said predetermined model is RTL, and the abstraction level of said first model is ESL (Electronic System Level) or mixed level of ESL and RTL.

6. A distributed parallel simulation method for a predetermined model at a specific abstraction level comprising:

(a) obtaining expected inputs and expected outputs for at least one local simulation among a plurality of local simulations in the distributed parallel simulation for the predetermined model, wherein the local simulation is defined as each of simulations for local design objects in case of executing a parallel simulation by spatially dividing the predetermined model into a plurality of local design objects; and

(b) for at least one part of entire simulation time period, executing said at least one local simulation in the distribution parallel simulation for the predetermined model by using the expected inputs and the expected outputs,

wherein the expected inputs and the expected outputs for the at least one local simulation of the step (a) is obtained by:

prior to execution of the distributed parallel simulation for the predetermined model at the specific abstraction level,

while performing a simulation with a first model which is same to the predetermined model except that an abstraction level of the first model is higher than an abstraction level of the predetermined model,

storing input information and output information for at least one design object, which exist in the first model, as the expected inputs and the expected outputs, and

the step (b) comprises:

(b1) determining whether actual outputs match with the expected outputs obtained in the step (a), wherein the actual outputs are outputs obtained from an execution in which said at least one local simulation among the plurality of local simulations is executed independently with other local simulations by using the expected inputs as inputs of simulation for local design object corresponding to the local simulation while not performing a communication and a synchronization, which maintains causality relationship between the plurality of local simulations, with other local simulations;

(b2) if it is determined that the actual outputs do not match with the expected outputs in the step (b1), executing at least one local simulation among the plurality of local simulations by using actual inputs as inputs of simulation for local design object corresponding to the local simulation, wherein the actual inputs are inputs obtained from an execution in which the at least one local simulation is executed while performing the communication and the synchronization with other local simulations;

(b3) while executing the at least one local simulation according to the step (b2), determining whether actual outputs match with the expected outputs obtained in the step (a), wherein the actual outputs are outputs obtained from an execution in which the at least one local simulation among the plurality of local simulations is executed by using the actual inputs, which is obtained through the communication and the synchronization with other local simulations, as inputs of simulation for local design object corresponding to the local simulation; and

(b4) if it is determined that, in the step (b3), the actual outputs match with the expected outputs at least for a predetermined times in a specific time point, executing the at least one local simulation among the plurality of local simulations by using again the expected inputs and the expected outputs of the step (a) from the specific time point while not performing the communication and the synchronization with other local simulations.

7. The distributed parallel simulation method of claim 6 , wherein said specific abstraction level of said predetermined model is GL (Gate Level), and the abstraction level of said first model is RTL (Register Transfer Level) or mixed level of RTL and GL (Gate level).

8. The distributed parallel simulation method of claim 6 , wherein said specific abstraction level of said predetermined model is RTL, and the abstraction level of said first model is ESL (Electronic System Level) or mixed level of ESL and RTL.

9. The distributed parallel simulation method of claim 6 , wherein, through the step (b), at least one local simulation among said plurality of local simulations is executed while performing at least one checkpoint, the checkpoint being performed for a roll-back which can happen in a future,

wherein the step (b2) comprises:

(c1) if the actual outputs do not match with the expected outputs in the step (b1), informing other local simulations of an occurrence of mismatch and a corresponding simulation time at which the mismatch occurred,

(c2) in each of the local simulations, determining whether the roll-back is needed by comparing the corresponding simulation time informed by the local simulation in which the mismatch occurred in the step (c1) to a current simulation time, and performing the roll-back if it is determined that the roll-back is needed, and

(c3) executing at least one local simulation among said plurality of local simulations by using actual inputs as inputs of simulation for local design object corresponding to the local simulation, wherein the actual inputs are inputs obtained from an execution in which the at least one local simulation is executed while performing the communication and the synchronization with other local simulations, at the same time, output of the local design object corresponding to the local simulation is being compared with the expected output for returning to the local simulation with the expected input, which could eliminate the communication and the synchronization with other local simulations.

10. The distributed parallel simulation method of claim 6 , wherein, through the step (b), at least one local simulation among said plurality of local simulations is executed while performing at least one checkpoint, the checkpoint being performed for a roll-back which can happen in a future,

wherein the step (b2) comprises:

(d1) if the actual outputs do not match with the expected outputs in the step (b1), informing other local simulations of an occurrence of mismatch and a simulation time t_d, wherein the simulation time t_d is a time at which the mismatch occurred,

(d2) in each of the local simulations, comparing the simulation time t_d, which is informed by the local simulation in which the mismatch occurred in the step (d1), to a simulation time t_c of each of local simulations, wherein the simulation time t_c is a current simulation time of the each of local simulations,

(d3) setting the current simulation time of every local simulation identical by either determining that a roll-back is needed if the simulation time t_c is later than the simulation time t_d (i.e., t_c>t_d) and performing a roll-back, or determining that a roll-forward is needed if the simulation time t_c is earlier than the simulation time t_d (i.e., t_c<t_d) and performing a roll-forward, and

(d4) executing said every local simulation by using actual inputs as inputs of simulation for local design object corresponding to the local simulation, wherein the actual inputs are inputs obtained from an execution in which said every local simulation is executed while performing the communication and the synchronization with other local simulations, at the same time, output of the local design object corresponding to the local simulation is being compared with the expected output for returning to the local simulation with the expected input, which could eliminate the communication and the synchronization with other local simulations.

11. A distributed parallel simulation method for a predetermined model at a specific abstraction level comprising:

(a) obtaining expected inputs and expected outputs for at least one local simulation among a plurality of local simulations in the distributed parallel simulation for the predetermined model, wherein the local simulation is defined as each of simulations for local design objects in case of executing a parallel simulation by spatially dividing the predetermined model into a plurality of local design objects; and

(b) for at least one part of entire simulation time period, executing said at least one local simulation in the distribution parallel simulation for the predetermined model by using the expected inputs and the expected outputs,

wherein the expected inputs and the expected outputs for the at least one local simulation of the step (a) is obtained by:

prior to execution of the distributed parallel simulation for the predetermined model at the specific abstraction level,

while performing a simulation with a first model which is same to the predetermined model except that at least one design modification exists in at least one design object in the predetermined model,

storing input information and output information for at least one design object, which exist in the first model, as the expected inputs and the expected outputs, and

the step (b) comprises:

(b1) determining whether actual outputs match with the expected outputs obtained in the step (a), wherein the actual outputs are outputs obtained from an execution in which said at least one local simulation among the plurality of local simulations is executed independently with other local simulations by using the expected inputs as inputs of simulation for local design object corresponding to the local simulation while not performing a communication and a synchronization, which maintains causality relationship between the plurality of local simulations, with other local simulations;

(b2) if it is determined that the actual outputs do not match with the expected outputs in the step (b1), executing at least one local simulation among the plurality of local simulations by using actual inputs as inputs of simulation for local design object corresponding to the local simulation, wherein the actual inputs are inputs obtained from an execution in which the at least one local simulation is executed while performing the communication and the synchronization with other local simulations;

(b3) while executing the at least one local simulation according to the step (b2), determining whether actual outputs match with the expected outputs obtained in the step (a), wherein the actual outputs are outputs obtained from an execution in which the at least one local simulation among the plurality of local simulations is executed by using the actual inputs, which is obtained through the communication and the synchronization with other local simulations, as inputs of simulation for local design object corresponding to the local simulation; and

(b4) if it is determined that, in the step (b3), the actual outputs match with the expected outputs at least for a predetermined times in a specific time point, executing the at least one local simulation among the plurality of local simulations by using again the expected inputs and the expected outputs of the step (a) from the specific time point while not performing the communication and the synchronization with other local simulations.

12. The distributed parallel simulation method of claim 11 , wherein, through the step (b), at least one local simulation among said plurality of local simulations is executed while performing at least one checkpoint, the checkpoint being performed for a roll-back which can happen in a future,

wherein the step (b2) comprises:

(c1) if the actual outputs do not match with the expected outputs in the step (b1), informing other local simulations of an occurrence of mismatch and a corresponding simulation time at which the mismatch occurred,

(c2) in each of the local simulations, determining whether the roll-back is needed by comparing the corresponding simulation time informed by the local simulation in which the mismatch occurred in the step (c1) to a current simulation time, and performing the roll-back if it is determined that the roll-back is needed, and

(c3) executing at least one local simulation among said plurality of local simulations by using actual inputs as inputs of simulation for local design object corresponding to the local simulation, wherein the actual inputs are inputs obtained from an execution in which the at least one local simulation is executed while performing the communication and the synchronization with other local simulations, at the same time, output of the local design object corresponding to the local simulation is being compared with the expected output for returning to the local simulation with the expected input, which could eliminate the communication and the synchronization with other local simulations.

13. The distributed parallel simulation method of claim 11 , wherein, through the step (b), at least one local simulation among said plurality of local simulations is executed while performing at least one checkpoint, the checkpoint being performed for a roll-back which can happen in a future,

wherein the step (b2) comprises:

(d1) if the actual outputs do not match with the expected outputs in the step (b1), informing other local simulations of an occurrence of mismatch and a simulation time t_d, wherein the simulation time t_d is a time at which the mismatch occurred,

(d2) in each of the local simulations, comparing the simulation time t_d, which is informed by the local simulation in which the mismatch occurred in the step (d1), to a simulation time t_c of each of local simulations, wherein the simulation time t_c is a current simulation time of the each of local simulations,

(d3) setting the current simulation time of every local simulation identical by either determining that a roll-back is needed if the simulation time t_c is later than the simulation time t_d (i.e., t_c>t_d) and performing a roll-back, or determining that a roll-forward is needed if the simulation time t_c is earlier than the simulation time t_d (i.e., t_c<t_d) and performing a roll-forward, and

(d4) executing said every local simulation by using actual inputs as inputs of simulation for local design object corresponding to the local simulation, wherein the actual inputs are inputs obtained from an execution in which said every local simulation is executed while performing the communication and the synchronization with other local simulations, at the same time, output of the local design object corresponding to the local simulation is being compared with the expected output for returning to the local simulation with the expected input, which could eliminate the communication and the synchronization with other local simulations.

Priority Claims (13)
KR 10-2005-0095803 · Oct 10, 2005 · national
KR 10-2005-0098941 · Oct 18, 2005 · national
KR 10-2005-0122926 · Dec 12, 2005 · national
KR 10-2005-0126636 · Dec 19, 2005 · national
KR 10-2006-0006079 · Jan 20, 2006 · national
KR 10-2006-0019738 · Mar 1, 2006 · national
KR 10-2006-0037412 · Apr 25, 2006 · national
KR 10-2006-0038426 · Apr 27, 2006 · national
KR 10-2006-0043611 · May 15, 2006 · national
KR 10-2006-0048394 · May 29, 2006 · national
KR 10-2006-0068811 · Jul 23, 2006 · national
KR 10-2006-0092573 · Sep 22, 2006 · national
KR 10-2006-0092574 · Sep 22, 2006 · national
Continuity (2)
Continuation In Part 12089665
Related Publication 20110184713A1 · Jul 28, 2011