gem5 documentation
Development
Building
Doxygen
gem5 APIs
Full System
Checkpoints
Directed Testers
Debugging
Architecture Support
Power and Thermal Model
Compiling Workloads
Stats Package
Stats API
Develop Branch
v19.0.0.0
v20.0.0.0
v20.0.0.2
v20.0.0.3
v20.1.0.0
v20.1.0.1
v20.1.0.5
v21.0.0.0
v21.0.1.0
v21.1.0.0
v21.1.0.1
v21.1.0.2
gem5 Resources
Creating Disk Images
Devices
m5term
Building Linux ARM Kernel
Building Android Marshmallow
Guest binaries
Memory System
Memory System
gem5 Memory System
Replacement Policies
Indexing Policies
Classic memory system coherence
Classic caches
Ruby Memory System
Ruby
Cache Coherence Protocols
Garnet 2.0
MOESI CMP directory
Garnet Synthetic Traffic
SLICC
MI example
Garnet standalone
Interconnection network
MOESI hammer
MOESI CMP token
MESI two level
CHI
Replacement Policies
CPU Models
GPU Models
M5ops
ARM Implementation
Supported features and modes
The ARM Architecture models within gem5 support an ARMv8.0-A profile of the ARMĀ® architecture with multi-processor extensions. This includes both AArch32 and AArch64 state at all ELs. This basically means supporting:
The baseline model is ARMv8.0 compliant, we also support some mandatory/optional ARMv8.x features (with x > 0) While the best way to get a synced version of Arm architectural features is to have a look at Arm ID registers:
Here you will find a summary of some (but not all) notable`architectural extensions supported in gem5:
- ARMv8.1-LSE, Armv8.1 Large System Extensions
- ARMv8.1-PAN, Privileged access never
- ARMv8.2-SVE, Scalable Vector Extension
- ARMv8.3-JSConv, Javascript conversion instructions
- ARMv8.3-PAuth, Pointer Authentication