Go to the documentation of this file.
41 #ifndef __MEM_RUBY_STRUCTURES_PERFECTCACHEMEMORY_HH__
42 #define __MEM_RUBY_STRUCTURES_PERFECTCACHEMEMORY_HH__
44 #include <unordered_map>
47 #include "mem/ruby/protocol/AccessPermission.hh"
95 void print(std::ostream& out)
const;
103 std::unordered_map<Addr, PerfectCacheLineState<ENTRY> >
m_map;
106 template<
class ENTRY>
115 template<
class ENTRY>
122 template<
class ENTRY>
129 template<
class ENTRY>
138 template<
class ENTRY>
149 template<
class ENTRY>
154 assert(num_erased == 1);
158 template<
class ENTRY>
162 panic(
"cacheProbe called in perfect cache");
167 template<
class ENTRY>
175 template<
class ENTRY>
182 template<
class ENTRY>
183 inline AccessPermission
189 template<
class ENTRY>
192 AccessPermission new_perm)
199 template<
class ENTRY>
205 #endif // __MEM_RUBY_STRUCTURES_PERFECTCACHEMEMORY_HH__
void print(std::ostream &out) const
bool isTagPresent(Addr address) const
Addr makeLineAddress(Addr addr)
bool cacheAvail(Addr address) const
Addr cacheProbe(Addr newAddress) const
void deallocate(Addr address)
AccessPermission getPermission(Addr address) const
void allocate(Addr address)
ENTRY * lookup(Addr address)
std::unordered_map< Addr, PerfectCacheLineState< ENTRY > > m_map
std::ostream & operator<<(std::ostream &out, const PerfectCacheLineState< ENTRY > &obj)
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
PerfectCacheMemory & operator=(const PerfectCacheMemory &obj)
void changePermission(Addr address, AccessPermission new_perm)
AccessPermission m_permission
#define panic(...)
This implements a cprintf based panic() function.
Generated on Wed Sep 30 2020 14:02:13 for gem5 by doxygen 1.8.17