Repository navigation
Why is IPC Less Than 1? #541
Description
I am currently conducting research on the impact of DRAM bandwidth on the overall CPU system. During my investigation, I encountered an interesting phenomenon, which I have summarized into three questions:
1.When I set the CPU parameters quite aggressively and run 44 memory-intensive traces from SPEC2017, the geometric mean IPC still does not exceed 1. This seems counterintuitive, as an 8-wide issue CPU should typically have an IPC greater than 1. Could there be something unreasonable in my parameter settings? Below are my configurations, and I would greatly appreciate it if any experienced Champsim users could take a look and provide some feedback.
2.Is the following method correct for calculating the theoretical DRAM bandwidth? The amount of data (in GB) transferred per cycle: 8 / 1024 * 1024 * 1024, and the time per cycle (in seconds): 1 / 2554000000. When dividing GB by the time in seconds, the calculated DDR bandwidth comes out to be 19GB/s. Is this calculation accurate?
3.Lastly, can increasing or decreasing DDR bandwidth be achieved simply by adjusting the frequency parameter?
Thank you very much in advance for your time and assistance!
{
"executable_name": "champsim",
"block_size": 64,
"page_size": 4096,
"heartbeat_frequency": 10000000,
"num_cores": 1,
"ooo_cpu": [
{
"frequency": 4000,
"ifetch_buffer_size":64,
"decode_buffer_size":64,
"dispatch_buffer_size":64,
"rob_size": 512,
"lq_size": 128,
"sq_size": 72,
"fetch_width": 8,
"decode_width": 8,
"dispatch_width": 8,
"execute_width": 8,
"lq_width": 3,
"sq_width": 3,
"retire_width": 8,
"mispredict_penalty": 20,
"scheduler_size": 128,
"decode_latency": 2,
"dispatch_latency": 1,
"schedule_latency": 0,
"execute_latency": 0,
"branch_predictor": "hashed_perceptron",
"btb": "basic_btb"
}
],
"DIB": {
"window_size": 16,
"sets": 32,
"ways": 8
},
"L1I": {
"sets": 256,
"ways": 4,
"rq_size": 64,
"wq_size": 64,
"pq_size": 32,
"mshr_size": 12,
"latency": 3,
"max_tag_check": 4,
"max_fill": 4,
"prefetch_as_load": false,
"virtual_prefetch": true,
"prefetch_activate": "LOAD,PREFETCH",
"prefetcher": "no_instr",
"replacement": "lru"
},
"L1D": {
"sets": 256,
"ways": 4,
"rq_size": 64,
"wq_size": 64,
"pq_size": 16,
"mshr_size": 84,
"latency": 3,
"max_tag_check": 4,
"max_fill": 4,
"prefetch_as_load": false,
"virtual_prefetch": false,
"prefetch_activate": "LOAD,PREFETCH",
"prefetcher": "no",
"replacement": "lru"
},
"L2C": {
"sets": 2048,
"ways": 8,
"rq_size": 32,
"wq_size": 32,
"pq_size": 50000,
"mshr_size": 64,
"latency": 5,
"max_tag_check": 2,
"max_fill": 2,
"prefetch_as_load": false,
"virtual_prefetch": false,
"prefetch_activate": "LOAD,PREFETCH",
"prefetcher": "no",
"replacement": "srrip"
},
"ITLB": {
"sets": 16,
"ways": 4,
"rq_size": 16,
"wq_size": 16,
"pq_size": 8,
"mshr_size": 8,
"latency": 1,
"max_tag_check": 2,
"max_fill": 2,
"prefetch_as_load": false,
"replacement": "lru"
},
"DTLB": {
"sets": 16,
"ways": 4,
"rq_size": 16,
"wq_size": 16,
"pq_size": 8,
"mshr_size": 8,
"latency": 1,
"max_tag_check": 2,
"max_fill": 2,
"prefetch_as_load": false,
"replacement": "lru"
},
"STLB": {
"sets": 96,
"ways": 16,
"rq_size": 32,
"wq_size": 32,
"pq_size": 8,
"mshr_size": 16,
"latency": 8,
"max_tag_check": 1,
"max_fill": 1,
"prefetch_as_load": false,
"replacement": "lru"
},
"PTW": {
"pscl5_set": 1,
"pscl5_way": 2,
"pscl4_set": 1,
"pscl4_way": 4,
"pscl3_set": 2,
"pscl3_way": 4,
"pscl2_set": 4,
"pscl2_way": 8,
"rq_size": 16,
"mshr_size": 5,
"max_read": 2,
"max_write": 2
},
"LLC": {
"frequency": 4000,
"sets": 1536,
"ways": 32,
"rq_size": 32,
"wq_size": 32,
"pq_size": 5000,
"mshr_size": 80,
"latency": 31,
"max_tag_check": 1,
"max_fill": 1,
"prefetch_as_load": false,
"virtual_prefetch": false,
"prefetch_activate": "LOAD,PREFETCH",
"prefetcher": "no",
"replacement": "drrip"
},
"physical_memory": {
"frequency": 2554,
"channels": 1,
"ranks": 1,
"banks": 8,
"rows": 65536,
"columns": 128,
"channel_width": 8,
"wq_size": 64,
"rq_size": 64,
"tRP": 12.5,
"tRCD": 12.5,
"tCAS": 12.5,
"turn_around_time": 7.5
},
"virtual_memory": {
"pte_page_size": 4096,
"num_levels": 5,
"minor_fault_penalty": 200
}
}Traces:
602.gcc_s-1850B.champsimtrace.xz
602.gcc_s-2226B.champsimtrace.xz
602.gcc_s-2375B.champsimtrace.xz
602.gcc_s-734B.champsimtrace.xz
603.bwaves_s-1740B.champsimtrace.xz
603.bwaves_s-2609B.champsimtrace.xz
603.bwaves_s-2931B.champsimtrace.xz
603.bwaves_s-891B.champsimtrace.xz
605.mcf_s-1152B.champsimtrace.xz
605.mcf_s-1536B.champsimtrace.xz
605.mcf_s-1554B.champsimtrace.xz
605.mcf_s-1644B.champsimtrace.xz
605.mcf_s-472B.champsimtrace.xz
605.mcf_s-484B.champsimtrace.xz
605.mcf_s-665B.champsimtrace.xz
605.mcf_s-782B.champsimtrace.xz
605.mcf_s-994B.champsimtrace.xz
607.cactuBSSN_s-2421B.champsimtrace.xz
607.cactuBSSN_s-3477B.champsimtrace.xz
607.cactuBSSN_s-4004B.champsimtrace.xz
619.lbm_s-2676B.champsimtrace.xz
619.lbm_s-2677B.champsimtrace.xz
619.lbm_s-3766B.champsimtrace.xz
619.lbm_s-4268B.champsimtrace.xz
620.omnetpp_s-141B.champsimtrace.xz
620.omnetpp_s-874B.champsimtrace.xz
621.wrf_s-6673B.champsimtrace.xz
621.wrf_s-8065B.champsimtrace.xz
623.xalancbmk_s-10B.champsimtrace.xz
623.xalancbmk_s-165B.champsimtrace.xz
623.xalancbmk_s-202B.champsimtrace.xz
627.cam4_s-490B.champsimtrace.xz
628.pop2_s-17B.champsimtrace.xz
649.fotonik3d_s-10881B.champsimtrace.xz
649.fotonik3d_s-1176B.champsimtrace.xz
649.fotonik3d_s-7084B.champsimtrace.xz
649.fotonik3d_s-8225B.champsimtrace.xz
654.roms_s-1007B.champsimtrace.xz
654.roms_s-1070B.champsimtrace.xz
654.roms_s-1390B.champsimtrace.xz
654.roms_s-293B.champsimtrace.xz
654.roms_s-294B.champsimtrace.xz
654.roms_s-523B.champsimtrace.xz
657.xz_s-2302B.champsimtrace.xz
Results:
602.gcc_s-1850B.champsimtrace_output.txt: 2.59 IPC, Accuracy: None, Timeliness: None, Bandwidth: 11.0 GB/S
602.gcc_s-2226B.champsimtrace_output.txt: 0.8119 IPC, Accuracy: None, Timeliness: None, Bandwidth: 13.47 GB/S
602.gcc_s-2375B.champsimtrace_output.txt: 1.593 IPC, Accuracy: None, Timeliness: None, Bandwidth: 0.47 GB/S
602.gcc_s-734B.champsimtrace_output.txt: 2.679 IPC, Accuracy: None, Timeliness: None, Bandwidth: 5.99 GB/S
603.bwaves_s-1740B.champsimtrace_output.txt: 0.7039 IPC, Accuracy: None, Timeliness: None, Bandwidth: 3.28 GB/S
603.bwaves_s-2609B.champsimtrace_output.txt: 0.7017 IPC, Accuracy: None, Timeliness: None, Bandwidth: 3.26 GB/S
603.bwaves_s-2931B.champsimtrace_output.txt: 0.6283 IPC, Accuracy: None, Timeliness: None, Bandwidth: 3.05 GB/S
603.bwaves_s-891B.champsimtrace_output.txt: 3.73 IPC, Accuracy: None, Timeliness: None, Bandwidth: 13.87 GB/S
605.mcf_s-1152B.champsimtrace_output.txt: 0.3592 IPC, Accuracy: None, Timeliness: None, Bandwidth: 1.6 GB/S
605.mcf_s-1536B.champsimtrace_output.txt: 0.4634 IPC, Accuracy: None, Timeliness: None, Bandwidth: 5.43 GB/S
605.mcf_s-1554B.champsimtrace_output.txt: 0.6155 IPC, Accuracy: None, Timeliness: None, Bandwidth: 5.13 GB/S
605.mcf_s-1644B.champsimtrace_output.txt: 0.1253 IPC, Accuracy: None, Timeliness: None, Bandwidth: 4.42 GB/S
605.mcf_s-472B.champsimtrace_output.txt: 0.6634 IPC, Accuracy: None, Timeliness: None, Bandwidth: 5.89 GB/S
605.mcf_s-484B.champsimtrace_output.txt: 0.6601 IPC, Accuracy: None, Timeliness: None, Bandwidth: 5.25 GB/S
605.mcf_s-665B.champsimtrace_output.txt: 0.4465 IPC, Accuracy: None, Timeliness: None, Bandwidth: 1.3 GB/S
605.mcf_s-782B.champsimtrace_output.txt: 0.1199 IPC, Accuracy: None, Timeliness: None, Bandwidth: 2.04 GB/S
605.mcf_s-994B.champsimtrace_output.txt: 0.5694 IPC, Accuracy: None, Timeliness: None, Bandwidth: 2.13 GB/S
607.cactuBSSN_s-2421B.champsimtrace_output.txt: 1.463 IPC, Accuracy: None, Timeliness: None, Bandwidth: 3.14 GB/S
607.cactuBSSN_s-3477B.champsimtrace_output.txt: 3.051 IPC, Accuracy: None, Timeliness: None, Bandwidth: 2.39 GB/S
607.cactuBSSN_s-4004B.champsimtrace_output.txt: 2.802 IPC, Accuracy: None, Timeliness: None, Bandwidth: 2.3 GB/S
619.lbm_s-2676B.champsimtrace_output.txt: 0.2944 IPC, Accuracy: None, Timeliness: None, Bandwidth: 4.08 GB/S
619.lbm_s-2677B.champsimtrace_output.txt: 0.2082 IPC, Accuracy: None, Timeliness: None, Bandwidth: 4.15 GB/S
619.lbm_s-3766B.champsimtrace_output.txt: 0.4426 IPC, Accuracy: None, Timeliness: None, Bandwidth: 3.97 GB/S
619.lbm_s-4268B.champsimtrace_output.txt: 0.2086 IPC, Accuracy: None, Timeliness: None, Bandwidth: 4.14 GB/S
620.omnetpp_s-141B.champsimtrace_output.txt: 0.8806 IPC, Accuracy: None, Timeliness: None, Bandwidth: 3.06 GB/S
620.omnetpp_s-874B.champsimtrace_output.txt: 0.9511 IPC, Accuracy: None, Timeliness: None, Bandwidth: 2.98 GB/S
621.wrf_s-6673B.champsimtrace_output.txt: 0.5347 IPC, Accuracy: None, Timeliness: None, Bandwidth: 3.78 GB/S
621.wrf_s-8065B.champsimtrace_output.txt: 1.684 IPC, Accuracy: None, Timeliness: None, Bandwidth: 4.09 GB/S
623.xalancbmk_s-10B.champsimtrace_output.txt: 1.86 IPC, Accuracy: None, Timeliness: None, Bandwidth: 4.16 GB/S
623.xalancbmk_s-165B.champsimtrace_output.txt: 4.668 IPC, Accuracy: None, Timeliness: None, Bandwidth: 1.75 GB/S
623.xalancbmk_s-202B.champsimtrace_output.txt: 3.103 IPC, Accuracy: None, Timeliness: None, Bandwidth: 10.54 GB/S
627.cam4_s-490B.champsimtrace_output.txt: 2.472 IPC, Accuracy: None, Timeliness: None, Bandwidth: 2.71 GB/S
628.pop2_s-17B.champsimtrace_output.txt: 3.002 IPC, Accuracy: None, Timeliness: None, Bandwidth: 3.55 GB/S
649.fotonik3d_s-10881B.champsimtrace_output.txt: 0.6033 IPC, Accuracy: None, Timeliness: None, Bandwidth: 4.11 GB/S
649.fotonik3d_s-1176B.champsimtrace_output.txt: 1.323 IPC, Accuracy: None, Timeliness: None, Bandwidth: 5.54 GB/S
649.fotonik3d_s-7084B.champsimtrace_output.txt: 0.915 IPC, Accuracy: None, Timeliness: None, Bandwidth: 4.71 GB/S
649.fotonik3d_s-8225B.champsimtrace_output.txt: 1.314 IPC, Accuracy: None, Timeliness: None, Bandwidth: 5.5 GB/S
654.roms_s-1007B.champsimtrace_output.txt: 1.334 IPC, Accuracy: None, Timeliness: None, Bandwidth: 1.69 GB/S
654.roms_s-1070B.champsimtrace_output.txt: 0.6004 IPC, Accuracy: None, Timeliness: None, Bandwidth: 3.89 GB/S
654.roms_s-1390B.champsimtrace_output.txt: 0.8392 IPC, Accuracy: None, Timeliness: None, Bandwidth: 4.66 GB/S
654.roms_s-293B.champsimtrace_output.txt: 2.496 IPC, Accuracy: None, Timeliness: None, Bandwidth: 3.93 GB/S
654.roms_s-294B.champsimtrace_output.txt: 1.325 IPC, Accuracy: None, Timeliness: None, Bandwidth: 3.82 GB/S
654.roms_s-523B.champsimtrace_output.txt: 0.9354 IPC, Accuracy: None, Timeliness: None, Bandwidth: 5.51 GB/S
657.xz_s-2302B.champsimtrace_output.txt: 1.203 IPC, Accuracy: None, Timeliness: None, Bandwidth: 0.8 GB/S
geomean:0.9322
bin/champsim --warmup_instructions 50000000 --simulation_instructions 50000000 ./traces
Activity