TEMU 4.0.0
TEMU 4.0.0 was released on 2023-06-30.
Features
-
Parallelization of TEMU. TEMU has a parallel scheduler, that enables the execution of different simulated processor cores on different host processors. This enables the high speed simulation of multi-core processors. Note that as this effects full determinism, so it is possible to still select the single threaded scheduler.
-
User configurable speed factor. The Cycles per Instruction (CPI) or Instructions per Cycle (IPC) can now be set by the user. This is combined with the elimination of the per instruction timing model. All instructions now execute in one step, the CPI/IPC values are used to convert between steps to / from cycles.
API Changes
Event functions now take a temu_TimeSource
pointer as argument.
The TimeSource
pointer in temu_Object
has also been updated to this type.
This may lead to failed builds if using C++.
To update the models, make sure you pass a temu_TimeSource
pointer
in place of a temu_Object
pointer to these functions.
As with the introduction of temu_Object
pointers in the API of TEMU 3.0.0,
to keep compiling without changes, set the pre-processor flag:
TEMU_TYPE_ERASED_POINTERS
.
API Additions
-
Scheduler Control
-
temu_runSecs()
-
temu_step()
-
temu_stop()
-
temu_asyncStop()
-
-
Time Conversions
-
temu_cyclesToSteps()
-
temu_stepsToCycles()
-
temu_cyclesToStepsRoundedUp()
-
temu_stepsToCyclesRoundedUp()
-
temu_convertToOtherFrequencyTruncated()
-
temu_convertToOtherFrequencyRoundedUp()
-