Exemplo n.º 1
0
void TaggedPrefetcher::processAck(PAddr addr)
{
  uint paddr = addr & defaultMask;

  penFetchSet::iterator itF = pendingFetches.find(paddr);
  if(itF == pendingFetches.end()) 
    return;

  bLine *l = buff->fillLine(paddr);

  penReqMapper::iterator it = pendingRequests.find(paddr);

  if(it != pendingRequests.end()) {
    LOG("NLAP: returnAccess [%08lx]", paddr);
    std::queue<MemRequest *> *tmpReqQueue;
    tmpReqQueue = (*it).second;
    while (tmpReqQueue->size()) {
      tmpReqQueue->front()->goUpAbs(nextBuffSlot());
      tmpReqQueue->pop();
    }
    pendingRequests.erase(paddr);
    activeMemReqPool.in(tmpReqQueue);
  }
  pendingFetches.erase(paddr);
}
Exemplo n.º 2
0
void TestMessage::garbageCollect() 
{
    refCount--;
    if (refCount == 0) {
      LOG("destroying TestMessage");
      tmpool.in(this); 
    }
}
Exemplo n.º 3
0
 void garbageCollect() {
   msgPool.in(this);
 }