@@ -337,14 +337,17 @@ def setKmhV3IdealParams(args, system):
337
337
cpu .mmu .itb .size = 96
338
338
339
339
cpu .BankConflictCheck = False # real bank conflict 0.2 score
340
+ cpu .EnableLdMissReplay = False
341
+ cpu .EnablePipeNukeCheck = False
342
+ cpu .StoreWbStage = 2 # store writeback at s2
340
343
341
- cpu .scheduler = IdealScheduler ()
344
+ cpu .scheduler = IdealScheduler ()
342
345
# use centralized load/store issue queue, for hmmer
343
346
344
347
# ideal decoupled frontend
345
348
if args .bp_type is None or args .bp_type == 'DecoupledBPUWithFTB' :
346
349
cpu .branchPred .enableTwoTaken = True
347
- cpu .branchPred .numBr = 6
350
+ cpu .branchPred .numBr = 8 # numBr must be a power of 2, see getShuffledBrIndex()
348
351
cpu .branchPred .predictWidth = 64
349
352
cpu .branchPred .tage .enableSC = False # TODO(bug): When numBr changes, enabling SC will trigger an assert
350
353
cpu .branchPred .ftq_size = 256
@@ -353,12 +356,12 @@ def setKmhV3IdealParams(args, system):
353
356
cpu .branchPred .uftb .numEntries = uftb_size
354
357
cpu .branchPred .uftb .numWays = uftb_size
355
358
cpu .branchPred .ftb .numEntries = 16384
356
- cpu .branchPred .tage .numPredictors = 9
357
- cpu .branchPred .tage .baseTableSize = 4096
358
- cpu .branchPred .tage .tableSizes = [4096 ] * 9
359
- cpu .branchPred .tage .TTagBitSizes = [8 ] * 9
360
- cpu .branchPred .tage .TTagPcShifts = [1 ] * 9
361
- cpu .branchPred .tage .histLengths = [8 , 13 , 21 , 35 , 57 , 93 , 151 , 246 , 401 ]
359
+ cpu .branchPred .tage .numPredictors = 14
360
+ cpu .branchPred .tage .baseTableSize = 16384
361
+ cpu .branchPred .tage .tableSizes = [2048 ] * 14
362
+ cpu .branchPred .tage .TTagBitSizes = [13 ] * 14
363
+ cpu .branchPred .tage .TTagPcShifts = [1 ] * 14
364
+ cpu .branchPred .tage .histLengths = [4 , 7 , 12 , 16 , 21 , 29 , 38 , 51 , 68 , 90 , 120 , 160 , 283 , 499 ]
362
365
363
366
# ideal l1 caches
364
367
if args .caches :
@@ -376,6 +379,7 @@ def setKmhV3IdealParams(args, system):
376
379
system .l2_caches [i ].slice_num = 0 # 4 -> 0, no slice
377
380
system .tol2bus_list [i ].forward_latency = 0 # 3->0
378
381
system .tol2bus_list [i ].response_latency = 0 # 3->0
382
+ system .tol2bus_list [i ].hint_wakeup_ahead_cycles = 0 # 2->0
379
383
380
384
if args .l3cache :
381
385
system .l3 .enable_wayprediction = False
0 commit comments