Implement BTB using the cache library (#1537)
This enables the BTB to be associative and use various replacement policies.
This commit is contained in:
@@ -1683,6 +1683,15 @@ class HPI_MMU(ArmMMU):
|
||||
class HPI_BTB(SimpleBTB):
|
||||
numEntries = 128
|
||||
tagBits = 18
|
||||
associativity = 1
|
||||
instShiftAmt = 2
|
||||
btbReplPolicy = LRURP()
|
||||
btbIndexingPolicy = BTBSetAssociative(
|
||||
num_entries=Parent.numEntries,
|
||||
set_shift=Parent.instShiftAmt,
|
||||
assoc=Parent.associativity,
|
||||
tag_bits=Parent.tagBits,
|
||||
)
|
||||
|
||||
|
||||
class HPI_BP(TournamentBP):
|
||||
|
||||
@@ -111,6 +111,15 @@ class O3_ARM_v7a_FUP(FUPool):
|
||||
class O3_ARM_v7a_BTB(SimpleBTB):
|
||||
numEntries = 2048
|
||||
tagBits = 18
|
||||
associativity = 1
|
||||
instShiftAmt = 2
|
||||
btbReplPolicy = LRURP()
|
||||
btbIndexingPolicy = BTBSetAssociative(
|
||||
num_entries=Parent.numEntries,
|
||||
set_shift=Parent.instShiftAmt,
|
||||
assoc=Parent.associativity,
|
||||
tag_bits=Parent.tagBits,
|
||||
)
|
||||
|
||||
|
||||
# Bi-Mode Branch Predictor
|
||||
|
||||
@@ -108,6 +108,15 @@ class ex5_big_FUP(FUPool):
|
||||
class ex5_big_BTB(SimpleBTB):
|
||||
numEntries = 4096
|
||||
tagBits = 18
|
||||
associativity = 1
|
||||
instShiftAmt = 2
|
||||
btbReplPolicy = LRURP()
|
||||
btbIndexingPolicy = BTBSetAssociative(
|
||||
num_entries=Parent.numEntries,
|
||||
set_shift=Parent.instShiftAmt,
|
||||
assoc=Parent.associativity,
|
||||
tag_bits=Parent.tagBits,
|
||||
)
|
||||
|
||||
|
||||
# Bi-Mode Branch Predictor
|
||||
|
||||
Reference in New Issue
Block a user