Ejemplo n.º 1
0
static void dowrite(MemObj *cache, AddrType addr)
{
  num_operations++;
  DInst *stClone = st->clone();
  stClone->setAddr(addr);

	while(cache->isBusy(addr))
		EventScheduler::advanceClock();

  wrDoneCB *cb = wrDoneCB::create(stClone);
  printf("wr %x @%lld\n", (unsigned int)addr,(long long)globalClock);

	MemRequest::sendReqWrite(cache, stClone->getStatsFlag(), addr, cb);
	wr_pending++;
}
Ejemplo n.º 2
0
static void doprefetch(MemObj *cache, AddrType addr)
{
  num_operations++;
  DInst *ldClone = ld->clone();
  ldClone->setAddr(addr);

  while(cache->isBusy(addr))
    EventScheduler::advanceClock();

  rdDoneCB *cb = rdDoneCB::create(ldClone);
  printf("rd %x @%lld\n", (unsigned int)addr,(long long)globalClock);

  MemRequest::sendReqReadPrefetch(cache, ldClone->getStatsFlag(), addr, cb);
  rd_pending++;
}