24.22.7.2. gem5 DerivO3CPU default functional units
On gem5 3ca404da175a66e0b958165ad75eb5f54cb5e772, after running:
./run \ --arch aarch64 \ --emulator gem5 \ --userland userland/arch/aarch64/freestanding/linux/hello.S \ --trace-insts-stdout \ -- \ --cpu-type Derivo3CPU \ --caches
we see:
[system.cpu] type=DerivO3CPU children=branchPred dcache dtb fuPool icache interrupts isa itb power_state tracer workload
and following fuPool
:
[system.cpu.fuPool] type=FUPool children=FUList0 FUList1 FUList2 FUList3 FUList4 FUList5 FUList6 FUList7 FUList8 FUList9
so for example FUList0
is:
[system.cpu.fuPool.FUList0] type=FUDesc children=opList count=6 eventq_index=0 opList=system.cpu.fuPool.FUList0.opList [system.cpu.fuPool.FUList0.opList] type=OpDesc eventq_index=0 opClass=IntAlu opLat=1 pipelined=true
and FUList1
:
[system.cpu.fuPool.FUList1.opList0] type=OpDesc eventq_index=0 opClass=IntMult opLat=3 pipelined=true [system.cpu.fuPool.FUList1.opList1] type=OpDesc eventq_index=0 opClass=IntDiv opLat=20 pipelined=false
So summarizing all units we have:
-
0, 1:
IntAlu
withopLat=3
-
2:
IntMult
withopLat=3
andIntDiv
withopLat=20
-
3:
FloatAdd
,FloatCmp
,FloatCvt
withopLat=2
-
TODO lazy to finish the list :-)