The SimpleCPU is a purely functional, in-order model that is suited for cases where a detailed model is not necessary. This can include warm-up periods, client systems that are driving a host, or just testing to make sure a program works.
It has recently been re-written to support the new memory system, and is now broken up into three classes.
The BaseSimpleCPU serves several purposes:
- Holds architected state, stats common across the SimpleCPU models.
- Defines functions for checking for interrupts, setting up a fetch request, handling pre-execute setup, handling post-execute actions, and advancing the PC to the next instruction. These functions are also common across the SimpleCPU models.
- Implements the ExecContext interface.
The AtomicSimpleCPU is the version of SimpleCPU that uses atomic memory accesses (see Memory System for details).