Go to the documentation of this file.
38 #include "debug/AMDGPUMem.hh"
39 #include "params/AMDGPUMemoryManager.hh"
47 cacheLineSize(
p.
system->cacheLineSize()),
48 _requestorId(
p.
system->getRequestorId(this))
64 uint8_t *dataPtr =
new uint8_t[gen.
size()];
65 std::memcpy(dataPtr,
data + (gen.
complete()/
sizeof(uint8_t)),
77 DPRINTF(AMDGPUMem,
"Request to %#lx needs retry\n", gen.
addr());
80 DPRINTF(AMDGPUMem,
"Write request to %#lx sent\n", gen.
addr());
92 DPRINTF(AMDGPUMem,
"Recveived Response for %#x\n", sender_state->
_addr);
108 for (
const auto &pkt : retries) {
109 if (!sendTimingReq(pkt)) {
112 DPRINTF(AMDGPUMem,
"Retry for %#lx sent\n", pkt->getAddr());
bool sendTimingReq(PacketPtr pkt)
Attempt to send a timing request to the responder port by calling its corresponding receive function.
bool next()
Advance generator to next chunk.
Addr complete() const
Number of bytes we have already chunked up.
void pushSenderState(SenderState *sender_state)
Push a new sender state to the packet and make the current sender state the predecessor of the new on...
static PacketPtr createWrite(const RequestPtr &req)
AMDGPUMemoryManager(const AMDGPUMemoryManagerParams &p)
void recvReqRetry() override
Called by the peer if sendTimingReq was called on this peer (causing recvTimingReq to be called on th...
std::string csprintf(const char *format, const Args &...args)
bool last() const
Is this the last chunk?
Addr size() const
Return size in bytes of current chunk.
This class takes an arbitrary memory region (address/length pair) and generates a series of appropria...
bool recvTimingResp(PacketPtr pkt) override
Receive a timing response from the peer.
bool done() const
Are we done? That is, did the last call to next() advance past the end of the region?
const RequestorID _requestorId
A Packet is used to encapsulate a transfer between two objects in the memory system (e....
std::deque< PacketPtr > retries
std::shared_ptr< Request > RequestPtr
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
SenderState * senderState
This packet's sender state.
const std::string & name()
The ClockedObject class extends the SimObject with a clock and accessor functions to relate ticks to ...
void writeRequest(Addr addr, uint8_t *data, int size, Request::Flags flag=0, Event *callback=nullptr)
Write size amount of data to device memory at addr using flags and callback.
Addr addr() const
Return starting address of current chunk.
void dataDynamic(T *p)
Set the data pointer to a value that should have delete [] called on it.
Reference material can be found at the JEDEC website: UFS standard http://www.jedec....
Generated on Thu Jun 16 2022 10:41:49 for gem5 by doxygen 1.8.17