@@ -31,7 +31,7 @@ def setKmhV3IdealParams(args, system):
3131
3232 # decode
3333 cpu .decodeWidth = 8
34- cpu .enable_loadFusion = True
34+ cpu .enable_loadFusion = False
3535 cpu .enableConstantFolding = False
3636
3737 # rename
@@ -73,6 +73,7 @@ def setKmhV3IdealParams(args, system):
7373 cpu .RAWDequeuePerCycle = 4
7474 cpu .SbufferEntries = 24
7575 cpu .SbufferEvictThreshold = 16
76+ cpu .store_prefetch_train = False
7677
7778 # branch predictor
7879 if args .bp_type == 'DecoupledBPUWithBTB' :
@@ -85,6 +86,7 @@ def setKmhV3IdealParams(args, system):
8586 cpu .dcache .size = '64kB'
8687 cpu .dcache .tag_load_read_ports = 100
8788 cpu .dcache .mshrs = 16
89+ cpu .dcache .simulate_dcache_refill = True
8890
8991 # l2 caches
9092 if args .l2cache :
@@ -97,6 +99,10 @@ def setKmhV3IdealParams(args, system):
9799 l2_wrapper .dir_sram_banks = 2
98100 l2_wrapper .pipe_dir_write_stage = 4
99101 l2_wrapper .dir_read_bypass = True
102+ for j in range (args .l2_slices ):
103+ # Configure XSDRRIP replacement policy (DRRIP mode)
104+ # Each slice: 2MB/4 = 512KB, 8-way, 64B line → 1024 sets
105+ l2_wrapper .slices [j ].inner_cache .replacement_policy = XSDRRIPRP (mode = 2 , num_sets = 1024 )
100106 system .tol2bus_list [i ].forward_latency = 0 # 3->0
101107 system .tol2bus_list [i ].response_latency = 0 # 3->0
102108 system .tol2bus_list [i ].hint_wakeup_ahead_cycles = 0 # 2->0
0 commit comments