38 #include "debug/GPUMem.hh"
39 #include "debug/GPUReg.hh"
48 : computeUnit(cu), _name(cu.
name() +
".ScalarMemPipeline"),
49 queueSize(
p->scalar_mem_queue_size),
50 inflightStores(0), inflightLoads(0)
63 bool accessSrf =
true;
66 if ((
m) && (
m->isLoad() ||
m->isAtomicRet())) {
70 w->computeUnit->srf[
w->simdId]->
71 canScheduleWriteOperandsFromLoad(
w,
m);
82 if (
m->isLoad() ||
m->isAtomicRet()) {
83 w->computeUnit->srf[
w->simdId]->
84 scheduleWriteOperandsFromLoad(
w,
m);
88 w->decLGKMInstsIssued();
90 if (
m->isLoad() ||
m->isAtomic()) {
103 if (
m->isStore() ||
m->isAtomic()) {
108 if (
m->isLoad() ||
m->isAtomic()) {
116 w->computeUnit->scalarMemUnit.set(
m->time);
124 if (
mp->isLoad() ||
mp->isAtomic()) {
141 DPRINTF(GPUMem,
"CU%d: WF[%d][%d] Popping scalar mem_op\n",