|
gem5
v19.0.0.0
|
The compactor tracks retired instructions addresses, leveraging the spatial and temporal locality among instructions for compaction. More...
Public Member Functions | |
| CompactorEntry () | |
| CompactorEntry (Addr, unsigned int, unsigned int) | |
| bool | inSameSpatialRegion (Addr addr, unsigned int log_blk_size, bool update) |
| Checks if a given address is in the same defined spatial region as the compactor entry. More... | |
| bool | hasAddress (Addr target, unsigned int log_blk_size) const |
| Checks if the provided address is contained in this spatial region and if its corresponding bit vector entry is set. More... | |
| void | getPredictedAddresses (unsigned int log_blk_size, std::vector< AddrPriority > &addresses) const |
| Fills the provided vector with the predicted addresses using the recorded bit vectors of the entry. More... | |
Public Attributes | |
| Addr | trigger |
| std::vector< bool > | prec |
| std::vector< bool > | succ |
Private Member Functions | |
| Addr | distanceFromTrigger (Addr addr, unsigned int log_blk_size) const |
| Computes the distance, in cache blocks, from an address to the trigger of the entry. More... | |
The compactor tracks retired instructions addresses, leveraging the spatial and temporal locality among instructions for compaction.
It comprises the spatial and temporal compaction mechanisms.
Taking advantage of the spatial locality across instruction blocks, the spatial compactor combines instruction-block addresses that fall within a 'spatial region', a group of adjacent instruction blocks. When an instruction outside the current spatial region retires, the existing spatial region is sent to the temporal compactor.
The temporal compactor tracks a small number of the most-recently-observed spatial region records.
|
inline |
Definition at line 79 of file pif.hh.
References addr, distanceFromTrigger(), getPredictedAddresses(), hasAddress(), inSameSpatialRegion(), and Clocked::update().
| PIFPrefetcher::CompactorEntry::CompactorEntry | ( | Addr | addr, |
| unsigned int | prec_size, | ||
| unsigned int | succ_size | ||
| ) |
Definition at line 53 of file pif.cc.
References addr, and X86ISA::trigger.
|
private |
Computes the distance, in cache blocks, from an address to the trigger of the entry.
| addr | address to compute the distance from the trigger |
| log_blk_distance | log_2(block size of the cache) |
Definition at line 62 of file pif.cc.
References X86ISA::trigger.
Referenced by CompactorEntry().
| void PIFPrefetcher::CompactorEntry::getPredictedAddresses | ( | unsigned int | log_blk_size, |
| std::vector< AddrPriority > & | addresses | ||
| ) | const |
Fills the provided vector with the predicted addresses using the recorded bit vectors of the entry.
| log_blk_distance | log_2(block size of the cache) |
| addresses | reference to a vector to add the generated addresses |
Definition at line 107 of file pif.cc.
References ArmISA::i, and X86ISA::trigger.
Referenced by PIFPrefetcher::calculatePrefetch(), and CompactorEntry().
| bool PIFPrefetcher::CompactorEntry::hasAddress | ( | Addr | target, |
| unsigned int | log_blk_size | ||
| ) | const |
Checks if the provided address is contained in this spatial region and if its corresponding bit vector entry is set.
| target | address to check |
| log_blk_distance | log_2(block size of the cache) |
Definition at line 91 of file pif.cc.
References X86ISA::trigger.
Referenced by CompactorEntry().
| bool PIFPrefetcher::CompactorEntry::inSameSpatialRegion | ( | Addr | addr, |
| unsigned int | log_blk_size, | ||
| bool | update | ||
| ) |
Checks if a given address is in the same defined spatial region as the compactor entry.
| addr | Address to check if it's inside the spatial region |
| log_blk_distance | log_2(block size of the cache) |
| update | if true, set the corresponding succ/prec entry |
Definition at line 73 of file pif.cc.
References X86ISA::trigger.
Referenced by CompactorEntry(), and PIFPrefetcher::notifyRetiredInst().
| std::vector<bool> PIFPrefetcher::CompactorEntry::prec |
| std::vector<bool> PIFPrefetcher::CompactorEntry::succ |
| Addr PIFPrefetcher::CompactorEntry::trigger |
Definition at line 76 of file pif.hh.
Referenced by PIFPrefetcher::notifyRetiredInst().