inorder: don't stall after stores

once a ST is sent off, it's OK to keep processing, however it's a little more
complicated to handle the packet acknowledging the store is completed
This commit is contained in:
Korey Sewell 2011-06-19 21:43:38 -04:00
parent 379c23199e
commit e8082a28c8
2 changed files with 7 additions and 7 deletions

View file

@ -240,17 +240,17 @@ CacheUnit::removeAddrDependency(DynInstPtr inst)
inst->unsetMemAddr();
// Erase from Address List
vector<Addr>::iterator vect_it = find(addrList[tid].begin(),
std::list<Addr>::iterator list_it = find(addrList[tid].begin(),
addrList[tid].end(),
mem_addr);
assert(vect_it != addrList[tid].end() || inst->splitInst);
assert(list_it != addrList[tid].end() || inst->splitInst);
if (vect_it != addrList[tid].end()) {
if (list_it != addrList[tid].end()) {
DPRINTF(AddrDep,
"[tid:%i]: [sn:%i] Address %08p removed from dependency "
"list\n", inst->readTid(), inst->seqNum, (*vect_it));
"list\n", inst->readTid(), inst->seqNum, (*list_it));
addrList[tid].erase(vect_it);
addrList[tid].erase(list_it);
// Erase From Address Map (Used for Debugging)
addrMap[tid].erase(addrMap[tid].find(mem_addr));

View file

@ -187,9 +187,9 @@ class CacheUnit : public Resource
bool cachePortBlocked;
std::vector<Addr> addrList[ThePipeline::MaxThreads];
std::list<Addr> addrList[ThePipeline::MaxThreads];
std::map<Addr, InstSeqNum> addrMap[ThePipeline::MaxThreads];
m5::hash_map<Addr, InstSeqNum> addrMap[ThePipeline::MaxThreads];
public:
int cacheBlkSize;