ltage.hh (13420:5cb2b90e1cb5) | ltage.hh (13442:5314c50529a5) |
---|---|
1/* 2 * Copyright (c) 2014 The University of Wisconsin 3 * 4 * Copyright (c) 2006 INRIA (Institut National de Recherche en 5 * Informatique et en Automatique / French National Research Institute 6 * for Computer Science and Applied Mathematics) 7 * 8 * All rights reserved. --- 121 unchanged lines hidden (view full) --- 130 { 131 int pathHist; 132 int ptGhist; 133 int hitBank; 134 int hitBankIndex; 135 int altBank; 136 int altBankIndex; 137 int bimodalIndex; | 1/* 2 * Copyright (c) 2014 The University of Wisconsin 3 * 4 * Copyright (c) 2006 INRIA (Institut National de Recherche en 5 * Informatique et en Automatique / French National Research Institute 6 * for Computer Science and Applied Mathematics) 7 * 8 * All rights reserved. --- 121 unchanged lines hidden (view full) --- 130 { 131 int pathHist; 132 int ptGhist; 133 int hitBank; 134 int hitBankIndex; 135 int altBank; 136 int altBankIndex; 137 int bimodalIndex; |
138 int loopTag; | 138 uint16_t loopTag; |
139 uint16_t currentIter; 140 141 bool tagePred; 142 bool altTaken; 143 bool loopPred; 144 bool loopPredValid; 145 int loopIndex; 146 int loopHit; --- 86 unchanged lines hidden (view full) --- 233 * branch outcome. 234 * @param ctr Reference to counter to update. 235 * @param taken Actual branch outcome. 236 * @param nbits Counter width. 237 */ 238 void ctrUpdate(int8_t & ctr, bool taken, int nbits); 239 240 /** | 139 uint16_t currentIter; 140 141 bool tagePred; 142 bool altTaken; 143 bool loopPred; 144 bool loopPredValid; 145 int loopIndex; 146 int loopHit; --- 86 unchanged lines hidden (view full) --- 233 * branch outcome. 234 * @param ctr Reference to counter to update. 235 * @param taken Actual branch outcome. 236 * @param nbits Counter width. 237 */ 238 void ctrUpdate(int8_t & ctr, bool taken, int nbits); 239 240 /** |
241 * Updates an unsigned counter based on up/down parameter 242 * @param ctr Reference to counter to update. 243 * @param up Boolean indicating if the counter is incremented/decremented 244 * If true it is incremented, if false it is decremented 245 * @param nbits Counter width. 246 */ 247 void unsignedCtrUpdate(uint8_t & ctr, bool up, unsigned nbits); 248 249 /** |
|
241 * Get a branch prediction from the bimodal 242 * predictor. 243 * @param pc The unshifted branch PC. 244 * @param bi Pointer to information on the 245 * prediction. 246 */ 247 bool getBimodePred(Addr pc, BranchInfo* bi) const; 248 --- 101 unchanged lines hidden (view full) --- 350 const unsigned logSizeTagTables; 351 const unsigned logSizeLoopPred; 352 const unsigned nHistoryTables; 353 const unsigned tagTableCounterBits; 354 const unsigned histBufferSize; 355 const unsigned minHist; 356 const unsigned maxHist; 357 const unsigned minTagWidth; | 250 * Get a branch prediction from the bimodal 251 * predictor. 252 * @param pc The unshifted branch PC. 253 * @param bi Pointer to information on the 254 * prediction. 255 */ 256 bool getBimodePred(Addr pc, BranchInfo* bi) const; 257 --- 101 unchanged lines hidden (view full) --- 359 const unsigned logSizeTagTables; 360 const unsigned logSizeLoopPred; 361 const unsigned nHistoryTables; 362 const unsigned tagTableCounterBits; 363 const unsigned histBufferSize; 364 const unsigned minHist; 365 const unsigned maxHist; 366 const unsigned minTagWidth; |
367 const unsigned loopTableAgeBits; 368 const unsigned loopTableConfidenceBits; 369 const unsigned loopTableTagBits; 370 const unsigned loopTableIterBits; |
|
358 | 371 |
372 const uint8_t confidenceThreshold; 373 const uint16_t loopTagMask; 374 const uint16_t loopNumIterMask; 375 |
|
359 std::vector<bool> btablePrediction; 360 std::vector<bool> btableHysteresis; 361 TageEntry **gtable; 362 LoopEntry *ltable; 363 364 // Keep per-thread histories to 365 // support SMT. 366 struct ThreadHistory { --- 35 unchanged lines hidden --- | 376 std::vector<bool> btablePrediction; 377 std::vector<bool> btableHysteresis; 378 TageEntry **gtable; 379 LoopEntry *ltable; 380 381 // Keep per-thread histories to 382 // support SMT. 383 struct ThreadHistory { --- 35 unchanged lines hidden --- |