diff options
author | Pau Cabre <pau.cabre@metempsy.com> | 2018-11-18 02:40:13 +0100 |
---|---|---|
committer | Pau Cabre <pau.cabre@metempsy.com> | 2018-11-22 11:46:54 +0000 |
commit | d7409ddbaffa18f6c7066a521fb24f38130c5a99 (patch) | |
tree | c9142c04049ee12b5846708e81da200319027b8e /src/cpu/pred/ltage.hh | |
parent | 290a35401bbd261b4274c82354b03b3ac1898437 (diff) | |
download | gem5-d7409ddbaffa18f6c7066a521fb24f38130c5a99.tar.xz |
cpu: Made LTAGE parameters configurable
This includes TAGE tag sizes, TAGE table sizes, U counters reset period,
loop predictor associativity, path history size, the USE_ALT_ON_NA size
and the WITHLOOP size
Change-Id: I935823f0a5794f5d55b744263798897a813dc1bd
Signed-off-by: Pau Cabre <pau.cabre@metempsy.com>
Reviewed-on: https://gem5-review.googlesource.com/c/14417
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Maintainer: Jason Lowe-Power <jason@lowepower.com>
Diffstat (limited to 'src/cpu/pred/ltage.hh')
-rw-r--r-- | src/cpu/pred/ltage.hh | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/src/cpu/pred/ltage.hh b/src/cpu/pred/ltage.hh index 68aef1cc9..8b417d44d 100644 --- a/src/cpu/pred/ltage.hh +++ b/src/cpu/pred/ltage.hh @@ -354,9 +354,7 @@ class LTAGE: public BPredUnit */ void specLoopUpdate(Addr pc, bool taken, BranchInfo* bi); - const unsigned logSizeBiMP; const unsigned logRatioBiModalHystEntries; - const unsigned logSizeTagTables; const unsigned logSizeLoopPred; const unsigned nHistoryTables; const unsigned tagTableCounterBits; @@ -364,16 +362,19 @@ class LTAGE: public BPredUnit const unsigned histBufferSize; const unsigned minHist; const unsigned maxHist; - const unsigned minTagWidth; + const unsigned pathHistBits; const unsigned loopTableAgeBits; const unsigned loopTableConfidenceBits; const unsigned loopTableTagBits; const unsigned loopTableIterBits; - + const unsigned logLoopTableAssoc; const uint8_t confidenceThreshold; const uint16_t loopTagMask; const uint16_t loopNumIterMask; + const std::vector<unsigned> tagTableTagWidths; + const std::vector<int> logTagTableSizes; + std::vector<bool> btablePrediction; std::vector<bool> btableHysteresis; TageEntry **gtable; @@ -404,16 +405,16 @@ class LTAGE: public BPredUnit std::vector<ThreadHistory> threadHistory; - int tagWidths[15]; - int tagTableSizes[15]; int *histLengths; int *tableIndices; int *tableTags; int8_t loopUseCounter; int8_t useAltPredForNewlyAllocated; - int tCounter; - int logTick; + uint64_t tCounter; + uint64_t logUResetPeriod; + unsigned useAltOnNaBits; + unsigned withLoopBits; }; #endif // __CPU_PRED_LTAGE |