36 #include "debug/RubyTest.hh"
39 : m_num_writers(_num_writers), m_num_readers(_num_readers),
45 const int size2 = 100;
47 DPRINTF(RubyTest,
"Adding false sharing checks\n");
50 for (
int i = 0;
i < size1;
i++) {
56 DPRINTF(RubyTest,
"Adding cache conflict checks\n");
60 for (
int i = 0;
i < size2;
i++) {
66 DPRINTF(RubyTest,
"Adding cache conflict checks2\n");
68 for (
int i = 0;
i < size2;
i++) {
87 panic(
"Check not aligned");
99 DPRINTF(RubyTest,
"Adding check for address: %s\n", address);
120 DPRINTF(RubyTest,
"Looking for check by address: %s\n", address);
128 assert(check != NULL);
std::vector< Check * > m_check_vector
Addr bitSelect(Addr addr, unsigned int small, unsigned int big)
void addCheck(Addr address)
std::enable_if< std::is_integral< T >::value, T >::type random()
Use the SFINAE idiom to choose an implementation based on whether the type is integral or floating po...
void print(std::ostream &out) const
CheckTable(int _num_writers, int _num_readers, RubyTester *_tester)
const int CHECK_SIZE_BITS
RubyTester * m_tester_ptr
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
int floorLog2(unsigned x)
Check * getCheck(Addr address)
std::unordered_map< Addr, Check * > m_lookup_map