November 14, 2022
TEMU 3.0.0 has now been released. TEMU 3.0.0 is a major milestone in the TEMU product evolution.
The major focus for TEMU 3 has been on the performance and we add two major changes to system to increase performance.
The first change is the introduction of a pre-decoded dispatch interpreter, which converts target architecture instructions to an internal intermediate representation format. TEMU 2 used to fetch and decode instructions every time they were executed, but with TEMU 3 we only decode them once. This speeds up the interpreter by around 50% in measurements we have performed.
The second change for performance is the introduction of a dynamic binary translator engine. This engine can yield an additional 100% performance increase (exact numbers depend on the software running, and they can be higher or lower).
TEMU 3 also introduce the ability to define custom idle patterns, which although the API is currently unstable, could be used to define custom idle loop matchers (e.g. memory scrubbers etc). This is possible since the interpreter (and binary translator) decodes blocks of instructions now.
TEMU 3 also switch to semantic versioning for this and future releases, and although TEMU 2 almost use this system, it was not formally semver compliant. This will add clarity to the question of API and ABI stability and the compatibility of different versions.
- System Configurations
- Bus Models
- e500 PowerPC core (including SPE instruction set)
- P2020 peripherals
- eTSEC Ethernet MAC
- DDR controller
- Coherency module
- Legacy event API has been removed, this was deprecated in TEMU 2.2
- External class support has been removed, the solution is to write wrapper models using pseudo properties.