o3: make dispatch LSQ full check more selective
Dispatch should not check LSQ size/LSQ stall for non load/store instructions. This work was done while Binh was an intern at AMD Research.
This commit is contained in:
parent
0782d92286
commit
b72c879868
1 changed files with 7 additions and 21 deletions
|
@ -793,25 +793,6 @@ DefaultIEW<Impl>::checkStall(ThreadID tid)
|
||||||
} else if (instQueue.isFull(tid)) {
|
} else if (instQueue.isFull(tid)) {
|
||||||
DPRINTF(IEW,"[tid:%i]: Stall: IQ is full.\n",tid);
|
DPRINTF(IEW,"[tid:%i]: Stall: IQ is full.\n",tid);
|
||||||
ret_val = true;
|
ret_val = true;
|
||||||
} else if (ldstQueue.isFull(tid)) {
|
|
||||||
DPRINTF(IEW,"[tid:%i]: Stall: LSQ is full\n",tid);
|
|
||||||
|
|
||||||
if (ldstQueue.numLoads(tid) > 0 ) {
|
|
||||||
|
|
||||||
DPRINTF(IEW,"[tid:%i]: LSQ oldest load: [sn:%i] \n",
|
|
||||||
tid,ldstQueue.getLoadHeadSeqNum(tid));
|
|
||||||
}
|
|
||||||
|
|
||||||
if (ldstQueue.numStores(tid) > 0) {
|
|
||||||
|
|
||||||
DPRINTF(IEW,"[tid:%i]: LSQ oldest store: [sn:%i] \n",
|
|
||||||
tid,ldstQueue.getStoreHeadSeqNum(tid));
|
|
||||||
}
|
|
||||||
|
|
||||||
ret_val = true;
|
|
||||||
} else if (ldstQueue.isStalled(tid)) {
|
|
||||||
DPRINTF(IEW,"[tid:%i]: Stall: LSQ stall detected.\n",tid);
|
|
||||||
ret_val = true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return ret_val;
|
return ret_val;
|
||||||
|
@ -1074,8 +1055,13 @@ DefaultIEW<Impl>::dispatchInsts(ThreadID tid)
|
||||||
|
|
||||||
++iewIQFullEvents;
|
++iewIQFullEvents;
|
||||||
break;
|
break;
|
||||||
} else if (ldstQueue.isFull(tid)) {
|
}
|
||||||
DPRINTF(IEW, "[tid:%i]: Issue: LSQ has become full.\n",tid);
|
|
||||||
|
// Check LSQ if inst is LD/ST
|
||||||
|
if ((inst->isLoad() && ldstQueue.lqFull(tid)) ||
|
||||||
|
(inst->isStore() && ldstQueue.sqFull(tid))) {
|
||||||
|
DPRINTF(IEW, "[tid:%i]: Issue: %s has become full.\n",tid,
|
||||||
|
inst->isLoad() ? "LQ" : "SQ");
|
||||||
|
|
||||||
// Call function to start blocking.
|
// Call function to start blocking.
|
||||||
block(tid);
|
block(tid);
|
||||||
|
|
Loading…
Reference in a new issue