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