Hi guys,

I am implementing a timing cache flush that writes back all dirty blocks,
based on the latest stable gem5 (changeset=10005:aaf017eaad7d). I see there
is a functional version in cache_impl.hh, so follow its pattern and add the
following visitor:

template<class TagStore>
bool
Cache<TagStore>::writebackTimingVisitor(BlkType &blk)
{
    if (blk.isDirty()) {
        PacketPtr p = writebackBlk(&blk);
        allocateWriteBuffer(p, clockEdge(hitLatency), true);
    }
    return true;
}

I just would like the block to append to the write buffer. Is it in the
right direction?

Unfortunately, when I run the simulator, the function
Cache<TagStore>::getTimingPacket() in cache_impl.hh meets a failed
assertion:
tags->findBlock(mshr->addr) == NULL

What does it imply? What should I do?

Many thanks!

-- 
任晶磊  Jinglei REN
http://jinglei.ren.systems

清华大学计算机科学与技术系
高性能计算研究所
北京,100084

Institute for High Performance Computing,
Department of Computer Science and Technology,
Tsinghua University, Beijing 100084, China
_______________________________________________
gem5-users mailing list
[email protected]
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

Reply via email to