gem5 documentation
Development
Building
Using KVM
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
v21.2.0.0
v21.2.1.0
v21.2.1.1
v22.0.0.0
v22.0.0.1
v22.1.0.0
v23.0.0.0
v23.0.0.1
gem5 standard library
Standard Library Overview
Hello World Tutorial
X86 Full-System Tutorial
Developing Your Own Components Tutorial
How To Create Your Own Board Using The gem5 Standard Library
How to use local resources and data sources in gem5
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
HeteroGarnet
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
last edited: 2024-10-15 17:01:42 +0000
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)
From gem5 v21.2
The best way to get a synced version of Arm architectural features is to have a look at the ArmExtension enum used by the release object and the available example releases provided within the same file.
A user can choose one of the following options:
- Use the default release
- Use another example release (e.g. Armv82)
- Generate a custom release from the available ArmExtension enum values
Before gem5 v21.2
The best way to get a synced version of Arm architectural features is to have a look at Arm ID registers and boolean values: