gem5 v24.0.0.0
|
#include <scalar_memory_pipeline.hh>
Public Member Functions | |
ScalarMemPipeline (const ComputeUnitParams &p, ComputeUnit &cu) | |
void | exec () |
std::queue< GPUDynInstPtr > & | getGMReqFIFO () |
std::queue< GPUDynInstPtr > & | getGMStRespFIFO () |
std::queue< GPUDynInstPtr > & | getGMLdRespFIFO () |
void | issueRequest (GPUDynInstPtr gpuDynInst) |
void | injectScalarMemFence (GPUDynInstPtr gpuDynInst, bool kernelMemSync, RequestPtr req) |
bool | isGMLdRespFIFOWrRdy () const |
bool | isGMStRespFIFOWrRdy () const |
bool | isGMReqFIFOWrRdy (uint32_t pendReqs=0) const |
const std::string & | name () const |
Private Attributes | |
ComputeUnit & | computeUnit |
const std::string | _name |
int | queueSize |
int | inflightStores |
int | inflightLoads |
std::queue< GPUDynInstPtr > | issuedRequests |
std::queue< GPUDynInstPtr > | returnedStores |
std::queue< GPUDynInstPtr > | returnedLoads |
Definition at line 59 of file scalar_memory_pipeline.hh.
gem5::ScalarMemPipeline::ScalarMemPipeline | ( | const ComputeUnitParams & | p, |
ComputeUnit & | cu ) |
Definition at line 45 of file scalar_memory_pipeline.cc.
void gem5::ScalarMemPipeline::exec | ( | ) |
Definition at line 54 of file scalar_memory_pipeline.cc.
References gem5::Shader::coissue_return, computeUnit, gem5::Wavefront::computeUnit, gem5::ComputeUnit::cu_id, DPRINTF, inflightLoads, inflightStores, issuedRequests, gem5::ArmISA::m, gem5::ArmISA::mp, queueSize, gem5::WaitClass::rdy(), returnedLoads, returnedStores, gem5::ComputeUnit::scalarMemToSrfBus, gem5::ComputeUnit::scalarMemUnit, gem5::Shader::ScheduleAdd(), gem5::WaitClass::set(), gem5::ComputeUnit::shader, gem5::ComputeUnit::srf, and gem5::MipsISA::w.
Referenced by gem5::ComputeUnit::exec().
|
inline |
Definition at line 67 of file scalar_memory_pipeline.hh.
References returnedLoads.
|
inline |
Definition at line 65 of file scalar_memory_pipeline.hh.
References issuedRequests.
|
inline |
Definition at line 66 of file scalar_memory_pipeline.hh.
References returnedStores.
void gem5::ScalarMemPipeline::injectScalarMemFence | ( | GPUDynInstPtr | gpuDynInst, |
bool | kernelMemSync, | ||
RequestPtr | req ) |
Definition at line 164 of file scalar_memory_pipeline.cc.
References computeUnit, gem5::curTick(), gem5::Request::INV_L1, gem5::Request::KERNEL, gem5::MemCmd::MemSyncReq, gem5::Packet::pushSenderState(), gem5::ComputeUnit::requestorId(), gem5::ComputeUnit::scalar_req_tick_latency, gem5::ComputeUnit::scalarDataPort, gem5::EventManager::schedule(), and gem5::ComputeUnit::sqcPort.
Referenced by gem5::ComputeUnit::doSQCInvalidate().
|
inline |
Definition at line 75 of file scalar_memory_pipeline.hh.
References queueSize, and returnedLoads.
|
inline |
Definition at line 87 of file scalar_memory_pipeline.hh.
References issuedRequests, and queueSize.
Referenced by gem5::ScheduleStage::dispatchReady().
|
inline |
Definition at line 81 of file scalar_memory_pipeline.hh.
References queueSize, and returnedStores.
void gem5::ScalarMemPipeline::issueRequest | ( | GPUDynInstPtr | gpuDynInst | ) |
Definition at line 146 of file scalar_memory_pipeline.cc.
References issuedRequests, gem5::Wavefront::outstandingReqs, gem5::Wavefront::scalarOutstandingReqsRdGm, gem5::Wavefront::scalarOutstandingReqsWrGm, gem5::Wavefront::scalarRdGmReqsInPipe, gem5::Wavefront::scalarWrGmReqsInPipe, and gem5::Wavefront::validateRequestCounters().
|
inline |
Definition at line 92 of file scalar_memory_pipeline.hh.
References _name.
|
private |
Definition at line 96 of file scalar_memory_pipeline.hh.
Referenced by name().
|
private |
Definition at line 95 of file scalar_memory_pipeline.hh.
Referenced by exec(), and injectScalarMemFence().
|
private |
Definition at line 102 of file scalar_memory_pipeline.hh.
Referenced by exec().
|
private |
Definition at line 101 of file scalar_memory_pipeline.hh.
Referenced by exec().
|
private |
Definition at line 106 of file scalar_memory_pipeline.hh.
Referenced by exec(), getGMReqFIFO(), isGMReqFIFOWrRdy(), and issueRequest().
|
private |
Definition at line 97 of file scalar_memory_pipeline.hh.
Referenced by exec(), isGMLdRespFIFOWrRdy(), isGMReqFIFOWrRdy(), and isGMStRespFIFOWrRdy().
|
private |
Definition at line 114 of file scalar_memory_pipeline.hh.
Referenced by exec(), getGMLdRespFIFO(), and isGMLdRespFIFOWrRdy().
|
private |
Definition at line 110 of file scalar_memory_pipeline.hh.
Referenced by exec(), getGMStRespFIFO(), and isGMStRespFIFOWrRdy().