gem5.components.processors.base_cpu_core module

class gem5.components.processors.base_cpu_core.BaseCPUCore(core: BaseCPU, isa: ISA)

Bases: AbstractCore

An stdlib AbstractCore subclass which wraps a BaseCPU SimObject type.

abstract = False
add_pc_tracker_probe(target_pair: List[PcCountPair], manager: PcCountTrackerManager) None
connect_dcache(port: Port) None

This function should connect the response port from the data cache to the right request port on the core.

Parameters:

port – The response port from the icache to connect to.

connect_icache(port: Port) None

This function should connect the response port from the instruction cache to the right request port on the core.

Parameters:

port – The response port from the icache to connect to.

connect_interrupt(interrupt_requestor: Port | None = None, interrupt_responce: Port | None = None) None

Connect the core interrupts to the interrupt controller

This function is usually called from the cache hierarchy since the optional ports can be implemented as cache ports.

connect_walker_ports(port1: Port, port2: Port) None

Connect the response port from itb and dtb to their respective request ports in the core.

Parameters:
  • port1 – The response port from itb walker to connect to.

  • port2 – The response port from dtb walker to connect to.

cxx_exports = []
cxx_extra_bases = []
cxx_param_exports = []
cxx_template_params = []
get_isa() ISA
get_mmu() BaseMMU

Return the MMU for this core.

This is used in the board to setup system-specific MMU settings.

get_simobject() BaseCPU
is_kvm_core() bool

KVM cores need setup differently than other cores. Frequently it’s useful to know whether a core is a KVM core or not. This function helps with this.

requires_send_evicts() bool

True if the CPU model or ISA requires sending evictions from caches to the CPU. Scenarios warrant forwarding evictions to the CPU: 1. The O3 model must keep the LSQ coherent with the caches. 2. The x86 mwait instruction is built on top of coherence. 3. The local exclusive monitor in ARM systems.

set_switched_out(value: bool) None
set_workload(process: Process) None