最近在研究gem5,nvmain, 并将nvmain集成到gem5里面,然后用基准测试spec cpu2006进行测试。之前一直找不到基准测包,现在终于找到了,在此写下实验过程。
我的系统是ubuntu,spec cpu 2006是cpu2006-1.2.iso镜像。
1. 解压cpu2006-1.2.iso
2 .安装spec cpu 2006
执行下面的命令:
./install.sh -d /home/jyf/download/speccpu2006
注意:/home/jyf/download/speccpu2006 是我电脑上的安装路径,可自定义。
3.运行shrc脚本
source shrc
4.修改配置文件
将config目录下的 Example-linux64-amd64-gcc41.cfg配置文件复制下,命名为gcc41.cfg,由于gem5运行spec需要静态可执行文件,所以将gcc41.cfg文件修改:
将
COPTIMIZE = -O2
CXXOPTIMIZE = -O2
FOPTIMIZE = -O2
改为
COPTIMIZE = -O2 -static
CXXOPTIMIZE = -O2 -static
FOPTIMIZE = -O2 -static
5.编译其中一个benchmark(这里是编译的gcc)
runspec –config=gcc41.cfg –action=build –tune=base gcc
若出现runspec找不到命令时,需要回退到spec的安装目录,即输入命令
.空格./shrc
注意:编译成功后会在bencuspec下的cpu2006下的403.gcc包里产生exe和build两个文件。
6.在gem5中用cpu 2006进行基准测试:
./build/X86/gem5.opt ./configs/example/se.py -c ../../speccpu2006/benchspec/CPU2006/450.soplex/exe/soplex_base.gcc41-64bit -o ../../speccpu2006/benchspec/CPU2006/450.soplex/data/test/input/test.mps
注意:
540.sople可以运行,运行结果在/home/jyf/download/gem_nvmain/gem5-master/m5out/stats.txt,但还是会提示:info: Increasing stack size by one page.
运行结果:
---------- Begin Simulation Statistics ----------
sim_seconds 0.051505 # Number of seconds simulated
sim_ticks 51505497500 # Number of ticks simulated
final_tick 51505497500 # Number of ticks from beginning of simulation (restored from checkpoints and never reset)
sim_freq 1000000000000 # Frequency of simulated ticks
host_inst_rate 1446792 # Simulator instruction rate (inst/s)
host_op_rate 2504656 # Simulator op (including micro ops) rate (op/s)
host_tick_rate 1490625852 # Simulator tick rate (ticks/s)
host_mem_usage 688560 # Number of bytes of host memory used
host_seconds 34.55 # Real time elapsed on the host
sim_insts 49990887 # Number of instructions simulated
sim_ops 86543190 # Number of ops (including micro ops) simulated
system.voltage_domain.voltage 1 # Voltage in Volts
system.clk_domain.clock 1000 # Clock period in ticks
system.mem_ctrls.pwrStateResidencyTicks::UNDEFINED 51505497500 # Cumulative time (in ticks) in various power states
system.mem_ctrls.bytes_read::cpu.inst 531676432 # Number of bytes read from this memory
system.mem_ctrls.bytes_read::cpu.data 74198617 # Number of bytes read from this memory
system.mem_ctrls.bytes_read::total 605875049 # Number of bytes read from this memory
system.mem_ctrls.bytes_inst_read::cpu.inst 531676432 # Number of instructions bytes read from this memory
system.mem_ctrls.bytes_inst_read::total 531676432 # Number of instructions bytes read from this memory
system.mem_ctrls.bytes_written::cpu.data 34023529 # Number of bytes written to this memory
system.mem_ctrls.bytes_written::total 34023529 # Number of bytes written to this memory
system.mem_ctrls.num_reads::cpu.inst 66459554 # Number of read requests responded to by this memory
system.mem_ctrls.num_reads::cpu.data 12371630 # Number of read requests responded to by this memory
system.mem_ctrls.num_reads::total 78831184 # Number of read requests responded to by this memory
system.mem_ctrls.num_writes::cpu.data 5590138 # Number of write requests responded to by this memory
system.mem_ctrls.num_writes::total 5590138 # Number of write requests responded to by this memory
system.mem_ctrls.bw_read::cpu.inst 10322712289 # Total read bandwidth from this memory (bytes/s)
system.mem_ctrls.bw_read::cpu.data 1440596065 # Total read bandwidth from this memory (bytes/s)
system.mem_ctrls.bw_read::total 11763308354 # Total read bandwidth from this memory (bytes/s)
system.mem_ctrls.bw_inst_read::cpu.inst 10322712289 # Instruction read bandwidth from this memory (bytes/s)
system.mem_ctrls.bw_inst_read::total 10322712289 # Instruction read bandwidth from this memory (bytes/s)
system.mem_ctrls.bw_write::cpu.data 660580533 # Write bandwidth from this memory (bytes/s)
system.mem_ctrls.bw_write::total 660580533 # Write bandwidth from this memory (bytes/s)
system.mem_ctrls.bw_total::cpu.inst 10322712289 # Total bandwidth to/from this memory (bytes/s)
system.mem_ctrls.bw_total::cpu.data 2101176598 # Total bandwidth to/from this memory (bytes/s)
system.mem_ctrls.bw_total::total 12423888887 # Total bandwidth to/from this memory (bytes/s)
system.mem_ctrls.readReqs 0 # Number of read requests accepted
system.mem_ctrls.writeReqs 0 # Number of write requests accepted
system.mem_ctrls.readBursts 0 # Number of DRAM read bursts, including those serviced by the write queue
system.mem_ctrls.writeBursts 0 # Number of DRAM write bursts, including those merged in the write queue
system.mem_ctrls.bytesReadDRAM 0 # Total number of bytes read from DRAM
system.mem_ctrls.bytesReadWrQ 0 # Total number of bytes read from write queue
system.mem_ctrls.bytesWritten 0 # Total number of bytes written to DRAM
system.mem_ctrls.bytesReadSys 0 # Total read bytes from the system interface side
system.mem_ctrls.bytesWrittenSys 0 # Total written bytes from the system interface side
system.mem_ctrls.servicedByWrQ 0 # Number of DRAM read bursts serviced by the write queue
system.mem_ctrls.mergedWrBursts 0 # Number of DRAM write bursts merged with an existing one
system.mem_ctrls.neitherReadNorWriteReqs 0 # Number of requests that are neither read nor write
system.mem_ctrls.perBankRdBursts::0 0 # Per bank write bursts
system.mem_ctrls.perBankRdBursts::1 0 # Per bank write bursts
system.mem_ctrls.perBankRdBursts::2 0 # Per bank write bursts
system.mem_ctrls.perBankRdBursts::3 0 # Per bank write bursts
system.mem_ctrls.perBankRdBursts::4 0 # Per bank write bursts
system.mem_ctrls.perBankRdBursts::5 0 # Per bank write bursts
system.mem_ctrls.perBankRdBursts::6 0 # Per bank write bursts
system.mem_ctrls.perBankRdBursts::7 0 # Per bank write bursts
system.mem_ctrls.perBankRdBursts::8 0 # Per bank write bursts
system.mem_ctrls.perBankRdBursts::9 0 # Per bank write bursts
system.mem_ctrls.perBankRdBursts::10 0 # Per bank write bursts
system.mem_ctrls.perBankRdBursts::11 0 # Per bank write bursts
system.mem_ctrls.perBankRdBursts::12 0 # Per bank write bursts
system.mem_ctrls.perBankRdBursts::13 0 # Per bank write bursts
system.mem_ctrls.perBankRdBursts::14 0 # Per bank write bursts
system.mem_ctrls.perBankRdBursts::15 0 # Per bank write bursts
system.mem_ctrls.perBankWrBursts::0 0 # Per bank write bursts
system.mem_ctrls.perBankWrBursts::1 0 # Per bank write bursts
system.mem_ctrls.perBankWrBursts::2 0 # Per bank write bursts
system.mem_ctrls.perBankWrBursts::3 0 # Per bank write bursts
system.mem_ctrls.perBankWrBursts::4 0 # Per bank write bursts
system.mem_ctrls.perBankWrBursts::5 0 # Per bank write bursts
system.mem_ctrls.perBankWrBursts::6 0 # Per bank write bursts
system.mem_ctrls.perBankWrBursts::7 0 # Per bank write bursts
system.mem_ctrls.perBankWrBursts::8 0 # Per bank write bursts
system.mem_ctrls.perBankWrBursts::9 0 # Per bank write bursts
system.mem_ctrls.perBankWrBursts::10 0 # Per bank write bursts
system.mem_ctrls.perBankWrBursts::11 0 # Per bank write bursts
system.mem_ctrls.perBankWrBursts::12 0 # Per bank write bursts
system.mem_ctrls.perBankWrBursts::13 0 # Per bank write bursts
system.mem_ctrls.perBankWrBursts::14 0 # Per bank write bursts
system.mem_ctrls.perBankWrBursts::15 0 # Per bank write bursts
system.mem_ctrls.numRdRetry 0 # Number of times read queue was full causing retry
system.mem_ctrls.numWrRetry 0 # Number of times write queue was full causing retry
system.mem_ctrls.totGap 0 # Total gap between requests
system.mem_ctrls.readPktSize::0 0 # Read request sizes (log2)
system.mem_ctrls.readPktSize::1 0 # Read request sizes (log2)
system.mem_ctrls.readPktSize::2 0 # Read request sizes (log2)
system.mem_ctrls.readPktSize::3 0 # Read request sizes (log2)
system.mem_ctrls.readPktSize::4 0 # Read request sizes (log2)
system.mem_ctrls.readPktSize::5 0 # Read request sizes (log2)
system.mem_ctrls.readPktSize::6 0 # Read request sizes (log2)
system.mem_ctrls.writePktSize::0 0 # Write request sizes (log2)
system.mem_ctrls.writePktSize::1 0 # Write request sizes (log2)
system.mem_ctrls.writePktSize::2 0 # Write request sizes (log2)
system.mem_ctrls.writePktSize::3 0 # Write request sizes (log2)
system.mem_ctrls.writePktSize::4 0 # Write request sizes (log2)
system.mem_ctrls.writePktSize::5 0 # Write request sizes (log2)
system.mem_ctrls.writePktSize::6 0 # Write request sizes (log2)
system.mem_ctrls.rdQLenPdf::0 0 # What read queue length does an incoming req see
system.mem_ctrls.rdQLenPdf::1 0 # What read queue length does an incoming req see
system.mem_ctrls.rdQLenPdf::2 0 # What read queue length does an incoming req see
system.mem_ctrls.rdQLenPdf::3 0 # What read queue length does an incoming req see
system.mem_ctrls.rdQLenPdf::4 0 # What read queue length does an incoming req see
system.mem_ctrls.rdQLenPdf::5 0 # What read queue length does an incoming req see
system.mem_ctrls.rdQLenPdf::6 0 # What read queue length does an incoming req see
system.mem_ctrls.rdQLenPdf::7 0 # What read queue length does an incoming req see
system.mem_ctrls.rdQLenPdf::8 0 # What read queue length does an incoming req see
system.mem_ctrls.rdQLenPdf::9 0 # What read queue length does an incoming req see
system.mem_ctrls.rdQLenPdf::10 0 # What read queue length does an incoming req see
system.mem_ctrls.rdQLenPdf::11 0 # What read queue length does an incoming req see
system.mem_ctrls.rdQLenPdf::12 0 # What read queue length does an incoming req see
system.mem_ctrls.rdQLenPdf::13 0 # What read queue length does an incoming req see
system.mem_ctrls.rdQLenPdf::14 0 # What read queue length does an incoming req see
system.mem_ctrls.rdQLenPdf::15 0 # What read queue length does an incoming req see
system.mem_ctrls.rdQLenPdf::16 0 # What read queue length does an incoming req see
system.mem_ctrls.rdQLenPdf::17 0 # What read queue length does an incoming req see
system.mem_ctrls.rdQLenPdf::18 0 # What read queue length does an incoming req see
system.mem_ctrls.rdQLenPdf::19 0 # What read queue length does an incoming req see
system.mem_ctrls.rdQLenPdf::20 0 # What read queue length does an incoming req see
system.mem_ctrls.rdQLenPdf::21 0 # What read queue length does an incoming req see
system.mem_ctrls.rdQLenPdf::22 0 # What read queue length does an incoming req see
system.mem_ctrls.rdQLenPdf::23 0 # What read queue length does an incoming req see
system.mem_ctrls.rdQLenPdf::24 0 # What read queue length does an incoming req see
system.mem_ctrls.rdQLenPdf::25 0 # What read queue length does an incoming req see
system.mem_ctrls.rdQLenPdf::26 0 # What read queue length does an incoming req see
system.mem_ctrls.rdQLenPdf::27 0 # What read queue length does an incoming req see
system.mem_ctrls.rdQLenPdf::28 0 # What read queue length does an incoming req see
system.mem_ctrls.rdQLenPdf::29 0 # What read queue length does an incoming req see
system.mem_ctrls.rdQLenPdf::30 0 # What read queue length does an incoming req see
system.mem_ctrls.rdQLenPdf::31 0 # What read queue length does an incoming req see
system.mem_ctrls.wrQLenPdf::0 0 # What write queue length does an incoming req see
system.mem_ctrls.wrQLenPdf::1 0 # What write queue length does an incoming req see
system.mem_ctrls.wrQLenPdf::2 0 # What write queue length does an incoming req see
system.mem_ctrls.wrQLenPdf::3 0 # What write queue length does an incoming req see
system.mem_ctrls.wrQLenPdf::4 0 # What write queue length does an incoming req see
system.mem_ctrls.wrQLenPdf::5 0 # What write queue length does an incoming req see
system.mem_ctrls.wrQLenPdf::6 0 # What write queue length does an incoming req see
system.mem_ctrls.wrQLenPdf::7 0 # What write queue length does an incoming req see
system.mem_ctrls.wrQLenPdf::8 0 # What write queue length does an incoming req see
system.mem_ctrls.wrQLenPdf::9 0 # What write queue length does an incoming req see
system.mem_ctrls.wrQLenPdf::10 0 # What write queue length does an incoming req see
system.mem_ctrls.wrQLenPdf::11 0 # What write queue length does an incoming req see
system.mem_ctrls.wrQLenPdf::12 0 # What write queue length does an incoming req see
system.mem_ctrls.wrQLenPdf::13 0 # What write queue length does an incoming req see
system.mem_ctrls.wrQLenPdf::14 0 # What write queue length does an incoming req see
system.mem_ctrls.wrQLenPdf::15 0 # What write queue length does an incoming req see
system.mem_ctrls.wrQLenPdf::16 0 # What write queue length does an incoming req see
system.mem_ctrls.wrQLenPdf::17 0 # What write queue length does an incoming req see
system.mem_ctrls.wrQLenPdf::18 0 # What write queue length does an incoming req see
system.mem_ctrls.wrQLenPdf::19 0 # What write queue length does an incoming req see
system.mem_ctrls.wrQLenPdf::20 0 # What write queue length does an incoming req see
system.mem_ctrls.wrQLenPdf::21 0 # What write queue length does an incoming req see
system.mem_ctrls.wrQLenPdf::22 0 # What write queue length does an incoming req see
system.mem_ctrls.wrQLenPdf::23 0 # What write queue length does an incoming req see
system.mem_ctrls.wrQLenPdf::24 0 # What write queue length does an incoming req see
system.mem_ctrls.wrQLenPdf::25 0 # What write queue length does an incoming req see
system.mem_ctrls.wrQLenPdf::26 0 # What write queue length does an incoming req see
system.mem_ctrls.wrQLenPdf::27 0 # What write queue length does an incoming req see
system.mem_ctrls.wrQLenPdf::28 0 # What write queue length does an incoming req see
system.mem_ctrls.wrQLenPdf::29 0 # What write queue length does an incoming req see
system.mem_ctrls.wrQLenPdf::30 0 # What write queue length does an incoming req see
system.mem_ctrls.wrQLenPdf::31 0 # What write queue length does an incoming req see
system.mem_ctrls.wrQLenPdf::32 0 # What write queue length does an incoming req see
system.mem_ctrls.wrQLenPdf::33 0 # What write queue length does an incoming req see
system.mem_ctrls.wrQLenPdf::34 0 # What write queue length does an incoming req see
system.mem_ctrls.wrQLenPdf::35 0 # What write queue length does an incoming req see
system.mem_ctrls.wrQLenPdf::36 0 # What write queue length does an incoming req see
system.mem_ctrls.wrQLenPdf::37 0 # What write queue length does an incoming req see
system.mem_ctrls.wrQLenPdf::38 0 # What write queue length does an incoming req see
system.mem_ctrls.wrQLenPdf::39 0 # What write queue length does an incoming req see
system.mem_ctrls.wrQLenPdf::40 0 # What write queue length does an incoming req see
system.mem_ctrls.wrQLenPdf::41 0 # What write queue length does an incoming req see
system.mem_ctrls.wrQLenPdf::42 0 # What write queue length does an incoming req see
system.mem_ctrls.wrQLenPdf::43 0 # What write queue length does an incoming req see
system.mem_ctrls.wrQLenPdf::44 0 # What write queue length does an incoming req see
system.mem_ctrls.wrQLenPdf::45 0 # What write queue length does an incoming req see
system.mem_ctrls.wrQLenPdf::46 0 # What write queue length does an incoming req see
system.mem_ctrls.wrQLenPdf::47 0 # What write queue length does an incoming req see
system.mem_ctrls.wrQLenPdf::48 0 # What write queue length does an incoming req see
system.mem_ctrls.wrQLenPdf::49 0 # What write queue length does an incoming req see
system.mem_ctrls.wrQLenPdf::50 0 # What write queue length does an incoming req see
system.mem_ctrls.wrQLenPdf::51 0 # What write queue length does an incoming req see
system.mem_ctrls.wrQLenPdf::52 0 # What write queue length does an incoming req see
system.mem_ctrls.wrQLenPdf::53 0 # What write queue length does an incoming req see
system.mem_ctrls.wrQLenPdf::54 0 # What write queue length does an incoming req see
system.mem_ctrls.wrQLenPdf::55 0 # What write queue length does an incoming req see
system.mem_ctrls.wrQLenPdf::56 0 # What write queue length does an incoming req see
system.mem_ctrls.wrQLenPdf::57 0 # What write queue length does an incoming req see
system.mem_ctrls.wrQLenPdf::58 0 # What write queue length does an incoming req see
system.mem_ctrls.wrQLenPdf::59 0 # What write queue length does an incoming req see
system.mem_ctrls.wrQLenPdf::60 0 # What write queue length does an incoming req see
system.mem_ctrls.wrQLenPdf::61 0 # What write queue length does an incoming req see
system.mem_ctrls.wrQLenPdf::62 0 # What write queue length does an incoming req see
system.mem_ctrls.wrQLenPdf::63 0 # What write queue length does an incoming req see
system.mem_ctrls.totQLat 0 # Total ticks spent queuing
system.mem_ctrls.totMemAccLat 0 # Total ticks spent from burst creation until serviced by the DRAM
system.mem_ctrls.totBusLat 0 # Total ticks spent in databus transfers
system.mem_ctrls.avgQLat nan # Average queueing delay per DRAM burst
system.mem_ctrls.avgBusLat nan # Average bus latency per DRAM burst
system.mem_ctrls.avgMemAccLat nan # Average memory access latency per DRAM burst
system.mem_ctrls.avgRdBW 0.00 # Average DRAM read bandwidth in MiByte/s
system.mem_ctrls.avgWrBW 0.00 # Average achieved write bandwidth in MiByte/s
system.mem_ctrls.avgRdBWSys 0.00 # Average system read bandwidth in MiByte/s
system.mem_ctrls.avgWrBWSys 0.00 # Average system write bandwidth in MiByte/s
system.mem_ctrls.peakBW 12800.00 # Theoretical peak bandwidth in MiByte/s
system.mem_ctrls.busUtil 0.00 # Data bus utilization in percentage
system.mem_ctrls.busUtilRead 0.00 # Data bus utilization in percentage for reads
system.mem_ctrls.busUtilWrite 0.00 # Data bus utilization in percentage for writes
system.mem_ctrls.avgRdQLen 0.00 # Average read queue length when enqueuing
system.mem_ctrls.avgWrQLen 0.00 # Average write queue length when enqueuing
system.mem_ctrls.readRowHits 0 # Number of row buffer hits during reads
system.mem_ctrls.writeRowHits 0 # Number of row buffer hits during writes
system.mem_ctrls.readRowHitRate nan # Row buffer hit rate for reads
system.mem_ctrls.writeRowHitRate nan # Row buffer hit rate for writes
system.mem_ctrls.avgGap nan # Average gap between requests
system.mem_ctrls.pageHitRate nan # Row buffer hit rate, read and write combined
system.mem_ctrls_0.actEnergy 0 # Energy for activate commands per rank (pJ)
system.mem_ctrls_0.preEnergy 0 # Energy for precharge commands per rank (pJ)
system.mem_ctrls_0.readEnergy 0 # Energy for read commands per rank (pJ)
system.mem_ctrls_0.writeEnergy 0 # Energy for write commands per rank (pJ)
system.mem_ctrls_0.refreshEnergy 0 # Energy for refresh commands per rank (pJ)
system.mem_ctrls_0.actBackEnergy 0 # Energy for active background per rank (pJ)
system.mem_ctrls_0.preBackEnergy 19778111040 # Energy for precharge background per rank (pJ)
system.mem_ctrls_0.actPowerDownEnergy 0 # Energy for active power-down per rank (pJ)
system.mem_ctrls_0.prePowerDownEnergy 0 # Energy for precharge power-down per rank (pJ)
system.mem_ctrls_0.selfRefreshEnergy 0 # Energy for self refresh per rank (pJ)
system.mem_ctrls_0.totalEnergy 19778111040 # Total energy per rank (pJ)
system.mem_ctrls_0.averagePower 384 # Core power per rank (mW)
system.mem_ctrls_0.totalIdleTime 0 # Total Idle time Per DRAM Rank
system.mem_ctrls_0.memoryStateTime::IDLE 51505497500 # Time in different power states
system.mem_ctrls_0.memoryStateTime::REF 0 # Time in different power states
system.mem_ctrls_0.memoryStateTime::SREF 0 # Time in different power states
system.mem_ctrls_0.memoryStateTime::PRE_PDN 0 # Time in different power states
system.mem_ctrls_0.memoryStateTime::ACT 0 # Time in different power states
system.mem_ctrls_0.memoryStateTime::ACT_PDN 0 # Time in different power states
system.mem_ctrls_1.actEnergy 0 # Energy for activate commands per rank (pJ)
system.mem_ctrls_1.preEnergy 0 # Energy for precharge commands per rank (pJ)
system.mem_ctrls_1.readEnergy 0 # Energy for read commands per rank (pJ)
system.mem_ctrls_1.writeEnergy 0 # Energy for write commands per rank (pJ)
system.mem_ctrls_1.refreshEnergy 0 # Energy for refresh commands per rank (pJ)
system.mem_ctrls_1.actBackEnergy 0 # Energy for active background per rank (pJ)
system.mem_ctrls_1.preBackEnergy 19778111040 # Energy for precharge background per rank (pJ)
system.mem_ctrls_1.actPowerDownEnergy 0 # Energy for active power-down per rank (pJ)
system.mem_ctrls_1.prePowerDownEnergy 0 # Energy for precharge power-down per rank (pJ)
system.mem_ctrls_1.selfRefreshEnergy 0 # Energy for self refresh per rank (pJ)
system.mem_ctrls_1.totalEnergy 19778111040 # Total energy per rank (pJ)
system.mem_ctrls_1.averagePower 384 # Core power per rank (mW)
system.mem_ctrls_1.totalIdleTime 0 # Total Idle time Per DRAM Rank
system.mem_ctrls_1.memoryStateTime::IDLE 51505497500 # Time in different power states
system.mem_ctrls_1.memoryStateTime::REF 0 # Time in different power states
system.mem_ctrls_1.memoryStateTime::SREF 0 # Time in different power states
system.mem_ctrls_1.memoryStateTime::PRE_PDN 0 # Time in different power states
system.mem_ctrls_1.memoryStateTime::ACT 0 # Time in different power states
system.mem_ctrls_1.memoryStateTime::ACT_PDN 0 # Time in different power states
system.pwrStateResidencyTicks::UNDEFINED 51505497500 # Cumulative time (in ticks) in various power states
system.cpu_voltage_domain.voltage 1 # Voltage in Volts
system.cpu_clk_domain.clock 500 # Clock period in ticks
system.cpu.dtb.walker.pwrStateResidencyTicks::UNDEFINED 51505497500 # Cumulative time (in ticks) in various power states
system.cpu.apic_clk_domain.clock 8000 # Clock period in ticks
system.cpu.interrupts.pwrStateResidencyTicks::UNDEFINED 51505497500 # Cumulative time (in ticks) in various power states
system.cpu.itb.walker.pwrStateResidencyTicks::UNDEFINED 51505497500 # Cumulative time (in ticks) in various power states
system.cpu.workload.num_syscalls 74 # Number of system calls
system.cpu.pwrStateResidencyTicks::ON 51505497500 # Cumulative time (in ticks) in various power states
system.cpu.numCycles 103011857 # number of cpu cycles simulated
system.cpu.numWorkItemsStarted 0 # number of work items this cpu started
system.cpu.numWorkItemsCompleted 0 # number of work items this cpu completed
system.cpu.committedInsts 49990887 # Number of instructions committed
system.cpu.committedOps 86543190 # Number of ops (including micro ops) committed
system.cpu.num_int_alu_accesses 78970575 # Number of integer alu accesses
system.cpu.num_fp_alu_accesses 11678267 # Number of float alu accesses
system.cpu.num_func_calls 479089 # number of times a function call or return occured
system.cpu.num_conditional_control_insts 8944290 # number of instructions that are conditional controls
system.cpu.num_int_insts 78970575 # number of integer instructions
system.cpu.num_fp_insts 11678267 # number of float instructions
system.cpu.num_int_register_reads 152630629 # number of times the integer registers were read
system.cpu.num_int_register_writes 60805276 # number of times the integer registers were written
system.cpu.num_fp_register_reads 16464442 # number of times the floating registers were read
system.cpu.num_fp_register_writes 8403341 # number of times the floating registers were written
system.cpu.num_cc_register_reads 54864382 # number of times the CC registers were read
system.cpu.num_cc_register_writes 32213458 # number of times the CC registers were written
system.cpu.num_mem_refs 17952233 # number of memory refs
system.cpu.num_load_insts 12364104 # Number of load instructions
system.cpu.num_store_insts 5588129 # Number of store instructions
system.cpu.num_idle_cycles 0.002000 # Number of idle cycles
system.cpu.num_busy_cycles 103011856.998000 # Number of busy cycles
system.cpu.not_idle_fraction 1.000000 # Percentage of non-idle cycles
system.cpu.idle_fraction 0.000000 # Percentage of idle cycles
system.cpu.Branches 9871276 # Number of branches fetched
system.cpu.op_class::No_OpClass 702089 0.81% 0.81% # Class of executed instruction
system.cpu.op_class::IntAlu 62115548 71.77% 72.59% # Class of executed instruction
system.cpu.op_class::IntMult 28308 0.03% 72.62% # Class of executed instruction
system.cpu.op_class::IntDiv 141980 0.16% 72.78% # Class of executed instruction
system.cpu.op_class::FloatAdd 5603032 6.47% 79.26% # Class of executed instruction
system.cpu.op_class::FloatCmp 0 0.00% 79.26% # Class of executed instruction
system.cpu.op_class::FloatCvt 0 0.00% 79.26% # Class of executed instruction
system.cpu.op_class::FloatMult 0 0.00% 79.26% # Class of executed instruction
system.cpu.op_class::FloatMultAcc 0 0.00% 79.26% # Class of executed instruction
system.cpu.op_class::FloatDiv 0 0.00% 79.26% # Class of executed instruction
system.cpu.op_class::FloatMisc 0 0.00% 79.26% # Class of executed instruction
system.cpu.op_class::FloatSqrt 0 0.00% 79.26% # Class of executed instruction
system.cpu.op_class::SimdAdd 0 0.00% 79.26% # Class of executed instruction
system.cpu.op_class::SimdAddAcc 0 0.00% 79.26% # Class of executed instruction
system.cpu.op_class::SimdAlu 0 0.00% 79.26% # Class of executed instruction
system.cpu.op_class::SimdCmp 0 0.00% 79.26% # Class of executed instruction
system.cpu.op_class::SimdCvt 0 0.00% 79.26% # Class of executed instruction
system.cpu.op_class::SimdMisc 0 0.00% 79.26% # Class of executed instruction
system.cpu.op_class::SimdMult 0 0.00% 79.26% # Class of executed instruction
system.cpu.op_class::SimdMultAcc 0 0.00% 79.26% # Class of executed instruction
system.cpu.op_class::SimdShift 0 0.00% 79.26% # Class of executed instruction
system.cpu.op_class::SimdShiftAcc 0 0.00% 79.26% # Class of executed instruction
system.cpu.op_class::SimdSqrt 0 0.00% 79.26% # Class of executed instruction
system.cpu.op_class::SimdFloatAdd 0 0.00% 79.26% # Class of executed instruction
system.cpu.op_class::SimdFloatAlu 0 0.00% 79.26% # Class of executed instruction
system.cpu.op_class::SimdFloatCmp 0 0.00% 79.26% # Class of executed instruction
system.cpu.op_class::SimdFloatCvt 0 0.00% 79.26% # Class of executed instruction
system.cpu.op_class::SimdFloatDiv 0 0.00% 79.26% # Class of executed instruction
system.cpu.op_class::SimdFloatMisc 0 0.00% 79.26% # Class of executed instruction
system.cpu.op_class::SimdFloatMult 0 0.00% 79.26% # Class of executed instruction
system.cpu.op_class::SimdFloatMultAcc 0 0.00% 79.26% # Class of executed instruction
system.cpu.op_class::SimdFloatSqrt 0 0.00% 79.26% # Class of executed instruction
system.cpu.op_class::MemRead 8937190 10.33% 89.58% # Class of executed instruction
system.cpu.op_class::MemWrite 4318101 4.99% 94.57% # Class of executed instruction
system.cpu.op_class::FloatMemRead 3426914 3.96% 98.53% # Class of executed instruction
system.cpu.op_class::FloatMemWrite 1270028 1.47% 100.00% # Class of executed instruction
system.cpu.op_class::IprAccess 0 0.00% 100.00% # Class of executed instruction
system.cpu.op_class::InstPrefetch 0 0.00% 100.00% # Class of executed instruction
system.cpu.op_class::total 86543190 # Class of executed instruction
system.membus.snoop_filter.tot_requests 0 # Total number of requests made to the snoop filter.
system.membus.snoop_filter.hit_single_requests 0 # Number of requests hitting in the snoop filter with a single holder of the requested data.
system.membus.snoop_filter.hit_multi_requests 0 # Number of requests hitting in the snoop filter with multiple (>1) holders of the requested data.
system.membus.snoop_filter.tot_snoops 0 # Total number of snoops made to the snoop filter.
system.membus.snoop_filter.hit_single_snoops 0 # Number of snoops hitting in the snoop filter with a single holder of the requested data.
system.membus.snoop_filter.hit_multi_snoops 0 # Number of snoops hitting in the snoop filter with multiple (>1) holders of the requested data.
system.membus.pwrStateResidencyTicks::UNDEFINED 51505497500 # Cumulative time (in ticks) in various power states
system.membus.trans_dist::ReadReq 78824648 # Transaction distribution
system.membus.trans_dist::ReadResp 78824648 # Transaction distribution
system.membus.trans_dist::WriteReq 5590138 # Transaction distribution
system.membus.trans_dist::WriteResp 5590138 # Transaction distribution
system.membus.trans_dist::SoftPFReq 6536 # Transaction distribution
system.membus.trans_dist::SoftPFResp 6536 # Transaction distribution
system.membus.pkt_count_system.cpu.icache_port::system.mem_ctrls.port 132919108 # Packet count per connected master and slave (bytes)
system.membus.pkt_count_system.cpu.icache_port::total 132919108 # Packet count per connected master and slave (bytes)
system.membus.pkt_count_system.cpu.dcache_port::system.mem_ctrls.port 35923536 # Packet count per connected master and slave (bytes)
system.membus.pkt_count_system.cpu.dcache_port::total 35923536 # Packet count per connected master and slave (bytes)
system.membus.pkt_count::total 168842644 # Packet count per connected master and slave (bytes)
system.membus.pkt_size_system.cpu.icache_port::system.mem_ctrls.port 531676432 # Cumulative packet size per connected master and slave (bytes)
system.membus.pkt_size_system.cpu.icache_port::total 531676432 # Cumulative packet size per connected master and slave (bytes)
system.membus.pkt_size_system.cpu.dcache_port::system.mem_ctrls.port 108222146 # Cumulative packet size per connected master and slave (bytes)
system.membus.pkt_size_system.cpu.dcache_port::total 108222146 # Cumulative packet size per connected master and slave (bytes)
system.membus.pkt_size::total 639898578 # Cumulative packet size per connected master and slave (bytes)
system.membus.snoops 0 # Total snoops (count)
system.membus.snoopTraffic 0 # Total snoop traffic (bytes)
system.membus.snoop_fanout::samples 84421322 # Request fanout histogram
system.membus.snoop_fanout::mean 0 # Request fanout histogram
system.membus.snoop_fanout::stdev 0 # Request fanout histogram
system.membus.snoop_fanout::underflows 0 0.00% 0.00% # Request fanout histogram
system.membus.snoop_fanout::0 84421322 100.00% 100.00% # Request fanout histogram
system.membus.snoop_fanout::1 0 0.00% 100.00% # Request fanout histogram
system.membus.snoop_fanout::overflows 0 0.00% 100.00% # Request fanout histogram
system.membus.snoop_fanout::min_value 0 # Request fanout histogram
system.membus.snoop_fanout::max_value 0 # Request fanout histogram
system.membus.snoop_fanout::total 84421322 # Request fanout histogram
---------- End Simulation Statistics ----------
这里还存在一个问题:info: Increasing stack size by one page.修改了gem5里一些配置参数,还是不行。
参考博客:
1.gme5集成nvmain
2.报错:Increasing stack size by one page