32#ifndef CPU_TESTERS_PROTOCOL_TESTER_ADDRESS_MANAGER_HH_
33#define CPU_TESTERS_PROTOCOL_TESTER_ADDRESS_MANAGER_HH_
35#include <unordered_map>
36#include <unordered_set>
165 return "(TesterThread ID " + std::to_string(
threadId) +
166 ", CU ID " + std::to_string(
cuId) +
167 ", Episode ID " + std::to_string(
episodeId) +
168 ", Value " + std::to_string(
value) +
227 typedef std::unordered_map<Location, LdStBits>
LdStMap;
Defines global host-dependent types: Counter, Tick, and (indirectly) {int,uint}{8,...
std::unordered_set< Value > ExpectedValueSet
bool inSecondRegion(int idx) const
bool inFirstRegion(int idx) const
std::vector< LocProperty > LocPropTable
std::unordered_map< Location, LdStBits > LdStMap
void releaseLoc(Location loc)
std::pair< int, int > LocProperty
AtomicStruct(Location atom_loc, Location loc_begin, Location loc_end)
bool inThirdRegion(int idx) const
bool isExpectedValue(Value val)
ExpectedValueSet expectedValues
std::pair< bool, bool > LdStBits
void swap(LocProperty &prop_1, LocProperty &prop_2)
void update(int _thread, int _cu, int _episode, Value _value, Tick _tick)
const std::string print() const
Value getLastStoredValue() const
Addr getAddress(Location loc)
AtomicStructTable atomicStructs
std::vector< Addr > AddressMap
Location getStoreLoc(Location atomic_loc)
Value getLoggedValue(Location loc) const
AddressManager(int n_atomic_locs, int numNormalLocsPerAtomic)
AddressMap randAddressMap
std::string printLastWriter(Location loc) const
std::vector< AtomicStruct * > AtomicStructTable
void updateLogTable(Location loc, int threadId, int episodeId, Value new_value, Tick curTick, int cuId=-1)
static const int INVALID_LOCATION
Location getLoadLoc(Location atomic_loc)
static const int INVALID_VALUE
void finishLocSelection(Location atomic_loc)
void releaseLocation(Location atomic_loc, Location loc)
std::vector< LastWriter * > LogTable
bool validateAtomicResp(Location loc, Value ret_val)
Copyright (c) 2024 - Pranith Kumar Copyright (c) 2020 Inria All rights reserved.
Tick curTick()
The universal simulation clock.
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
uint64_t Tick
Tick count type.