The machine class is used to assemble and group related processors in machines. The machine class is intended to be used for SMP and multi-core systems. It provides the following capabilities:

  1. A multi-CPU scheduler that executes all the CPUs in the machine in sequence (for a fixed time quanta).

  2. A synchronised event queue. CPUs can post events in the next time quanta to be executed after all the processors have reached a specific time point.

  3. A scheduling interface enabling the machine to be run for a time specified in seconds, not cycles.

Note that the machine class supports the scheduling of different CPUs with different clock frequencies.

Synchronised events are posted on a CPUs event queue by adding the flag TEMU_EVENT_SYNC to the posting function, this will bypass the CPU event queue and put it in the machine object’s queue.


Table 1. Machine Properties
Property Type Purpose



Length of time quanta in nanoseconds



Considered when checking whether the CPUs are synced


CpuIface Object Array

For controlling CPUs


EventIface Object Array

For distributing machine resets


  • The machine class cannot have more than 64 CPU cores connected.