Hi, DES is a very well documented topic. You can find a lot of resources about this topic searching for “discrete event simulation”. gem5 implements a simple version of DES compared to, say, SystemC. It is explained in the *learning gem5* tutorial. To put it simply : events are scheduled at specific dates. The simulation kernel advances time to the next scheduled event and triggers it. As a result, the callback associated with the event (aka, the process) is executed. These callbacks are implemented by the user to model the system. Processes can schedule events while the are executed, causing the simulation to continue. When a process is over (the callback returns), the sequence I’ve described repeats.
On top of that, gem5 implements a transaction-level-modeling style. This is the generic terminology borrowed from SystemC/TLM and associated with the functional/atomic/timing protocols used in the classic gem5 memory system. Again, this is very well documented but gem5 implements a rather simple version of that approach and thus the *learning gem5* resource is the best to understand it. Regards, Gabriel.
_______________________________________________ gem5-users mailing list -- gem5-users@gem5.org To unsubscribe send an email to gem5-users-le...@gem5.org