61 emplace_back(pkt, readyTime, order);
67 for (
auto&
t : *
this) {
78 const std::string &prefix)
const 80 for (
auto&
t : *
this) {
82 t.pkt->print(os, verbosity,
"");
102 "Write queue entry %#llx should never have more than one " 107 "Write queue entry %#llx should be an uncacheable write or " 108 "a cacheable eviction or a writeclean");
166 const std::string &prefix)
const 168 ccprintf(os,
"%s[%#llx:%#llx](%s) %s %s %s state: %s %s %s %s %s\n",
174 ccprintf(os,
"%s Targets:\n", prefix);
181 std::ostringstream str;
void ccprintf(cp::Print &print)
Declares a basic cache interface BaseCache.
bool isSecure
True if the entry targets the secure memory space.
bool inService
True if the entry has been sent downstream.
TargetList targets
List of all requests that match the address.
void print(std::ostream &os, int verbosity, const std::string &prefix) const
Declaration of a request, the overall memory request consisting of the parts of the request that are ...
bool matchBlockAddr(const Addr addr, const bool is_secure, const int blk_size) const
Check if packet corresponds to a given block-aligned address and address space.
Tick readyTime
Tick when ready to issue.
Counter order
Order number assigned to disambiguate writes and misses.
bool sendWriteQueuePacket(WriteQueueEntry *wq_entry)
Similar to sendMSHR, but for a write-queue entry instead.
void deallocate()
Mark this entry as free.
RequestPtr req
A pointer to the original request.
uint64_t Tick
Tick count type.
bool trySatisfyFunctional(PacketPtr other)
Check a functional request against a memory value stored in another packet (i.e.
Defines global host-dependent types: Counter, Tick, and (indirectly) {int,uint}{8,16,32,64}_t.
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
bool trySatisfyFunctional(PacketPtr pkt)
int64_t Counter
Statistics counter type.
A Packet is used to encapsulate a transfer between two objects in the memory system (e...
A queue entry base class, to be used by both the MSHRs and write-queue entries.
virtual bool matchBlockAddr(const Addr addr, const bool is_secure) const =0
Check if entry corresponds to the one being looked for.
bool hasTargets() const
Returns true if there are targets left.
Addr blkAddr
Block aligned address.
MemCmd cmd
The command field of the packet.
bool matchBlockAddr(const Addr addr, const bool is_secure) const override
Check if entry corresponds to the one being looked for.
bool trySatisfyFunctional(PacketPtr pkt)
std::string print() const
A no-args wrapper of print(std::ostream...) meant to be invoked from DPRINTFs avoiding string overhea...
bool conflictAddr(const QueueEntry *entry) const override
Check if given entry's packets conflict with this' entries packets.
#define panic_if(cond,...)
Conditional panic macro that checks the supplied condition and only panics if the condition is true a...
bool sendPacket(BaseCache &cache) override
Send this queue entry as a downstream packet, with the exact behaviour depending on the specific entr...
void allocate(Addr blk_addr, unsigned blk_size, PacketPtr pkt, Tick when_ready, Counter _order)
Allocate a miss to this entry.
unsigned blkSize
Block size of the cache.
void add(PacketPtr pkt, Tick readyTime, Counter order)
bool _isUncacheable
True if the entry is uncacheable.