70 for (
auto&
t : *
this) {
81 const std::string &prefix)
const
83 for (
auto&
t : *
this) {
85 t.pkt->print(
os, verbosity,
"");
105 "Write queue entry %#llx should never have more than one "
110 "Write queue entry %#llx should be an uncacheable write or "
111 "a cacheable eviction or a writeclean");
169 const std::string &prefix)
const
171 ccprintf(
os,
"%s[%#llx:%#llx](%s) %s %s %s state: %s %s %s %s %s\n",
184 std::ostringstream str;
Defines global host-dependent types: Counter, Tick, and (indirectly) {int,uint}{8,...
bool sendWriteQueuePacket(WriteQueueEntry *wq_entry)
Similar to sendMSHR, but for a write-queue entry instead.
A Packet is used to encapsulate a transfer between two objects in the memory system (e....
bool trySatisfyFunctional(PacketPtr other)
Check a functional request against a memory value stored in another packet (i.e.
RequestPtr req
A pointer to the original request.
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.
MemCmd cmd
The command field of the packet.
A queue entry base class, to be used by both the MSHRs and write-queue entries.
bool _isUncacheable
True if the entry is uncacheable.
unsigned blkSize
Block size of the cache.
virtual bool matchBlockAddr(const Addr addr, const bool is_secure) const =0
Check if entry corresponds to the one being looked for.
Addr blkAddr
Block aligned address.
Counter order
Order number assigned to disambiguate writes and misses.
bool inService
True if the entry has been sent downstream.
bool isSecure
True if the entry targets the secure memory space.
Tick readyTime
Tick when ready to issue.
void print(std::ostream &os, int verbosity, const std::string &prefix) const
void add(PacketPtr pkt, Tick readyTime, Counter order)
bool trySatisfyFunctional(PacketPtr pkt)
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 sendPacket(BaseCache &cache) override
Send this queue entry as a downstream packet, with the exact behaviour depending on the specific entr...
bool hasTargets() const
Returns true if there are targets left.
void allocate(Addr blk_addr, unsigned blk_size, PacketPtr pkt, Tick when_ready, Counter _order)
Allocate a miss to this entry.
TargetList targets
List of all requests that match the address.
void deallocate()
Mark this entry as free.
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...
Declares a basic cache interface BaseCache.
double Counter
All counters are of 64-bit values.
Copyright (c) 2024 - Pranith Kumar Copyright (c) 2020 Inria All rights reserved.
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
uint64_t Tick
Tick count type.
void ccprintf(cp::Print &print)
Declaration of a request, the overall memory request consisting of the parts of the request that are ...