gem5 documentation
      
      
        
      
    
      
        Development
      
      
    
      
        Building
      
      
    
      
        Using KVM
      
      
        
      
    
      
        Sphinx Documentation
      
      
        
      
    
      
        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
        
          v24.1.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: 2025-10-11 17:25:06 +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:
