45#ifndef __MEM_CACHE_MSHR_QUEUE_HH__
46#define __MEM_CACHE_MSHR_QUEUE_HH__
81 MSHRQueue(
const std::string &_label,
int num_entries,
int reserve,
82 int demand_reserve, std::string cache_name);
100 Tick when_ready,
Counter order,
bool alloc_on_fill);
Defines global host-dependent types: Counter, Tick, and (indirectly) {int,uint}{8,...
A Class for maintaining a list of pending and allocated memory requests.
void delay(MSHR *mshr, Tick delay_ticks)
Adds a delay to the provided MSHR and moves MSHRs that will be ready earlier than this entry to the t...
void deallocate(MSHR *mshr) override
Deallocate a MSHR and its targets.
const int demandReserve
The number of entries to reserve for future demand accesses.
bool havePending() const
Returns true if the pending list is not empty.
bool canPrefetch() const
Returns true if sufficient mshrs for prefetch.
void markPending(MSHR *mshr)
Mark an in service entry as pending, used to resend a request.
bool forceDeallocateTarget(MSHR *mshr)
Deallocate top target, possibly freeing the MSHR.
void moveToFront(MSHR *mshr)
Moves the MSHR to the front of the pending list if it is not in service.
MSHRQueue(const std::string &_label, int num_entries, int reserve, int demand_reserve, std::string cache_name)
Create a queue with a given number of entries.
void markInService(MSHR *mshr, bool pending_modified_resp)
Mark the given MSHR as in service.
MSHR * allocate(Addr blk_addr, unsigned blk_size, PacketPtr pkt, Tick when_ready, Counter order, bool alloc_on_fill)
Allocates a new MSHR for the request and size.
Miss Status and handling Register.
A Packet is used to encapsulate a transfer between two objects in the memory system (e....
A high-level queue interface, to be used by both the MSHR queue and the write buffer.
Miss Status and Handling Register (MSHR) declaration.
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.
Declaration of the Packet class.
Declaration of a high-level queue structure.