36 #include "debug/GPUMem.hh"
37 #include "debug/GPUReg.hh"
49 : computeUnit(cu), _name(cu.
name() +
".ScalarMemPipeline"),
50 queueSize(
p.scalar_mem_queue_size),
51 inflightStores(0), inflightLoads(0)
64 bool accessSrf =
true;
67 if ((
m) && (
m->isLoad() ||
m->isAtomicRet())) {
71 w->computeUnit->srf[
w->simdId]->
72 canScheduleWriteOperandsFromLoad(
w,
m);
83 if (
m->isLoad() ||
m->isAtomicRet()) {
84 w->computeUnit->srf[
w->simdId]->
85 scheduleWriteOperandsFromLoad(
w,
m);
89 w->decLGKMInstsIssued();
91 if (
m->isLoad() ||
m->isAtomic()) {
104 if (
m->isStore() ||
m->isAtomic()) {
109 if (
m->isLoad() ||
m->isAtomic()) {
117 w->computeUnit->scalarMemUnit.set(
m->time);
125 if (
mp->isLoad() ||
mp->isAtomic()) {
142 DPRINTF(GPUMem,
"CU%d: WF[%d][%d] Popping scalar mem_op\n",
151 if (gpuDynInst->isLoad()) {
154 }
else if (gpuDynInst->isStore()) {