Hello Victor,
Everything depends on your design and when the extra latency should be applied.
If it is within the tag-data access, you should likely put it inside
calculateXLatency. The compressor, for example, adds latency after the data has
been accessed, so the decompression latency is added after the
calculateXLatency function has been called (search for getDecompressionLatency,
in src/mem/cache/base.cc).
I don't know which gem5 version you have, nor which line you are showing, but
in general the latency will be used by the function that calls access(),
recvTiminReq(). This latency is used to define when blocks will be sent for
eviction, and when the response will be sent. It is an event based approach, so
the execution will only continue at the specified cycle; if there are multiple
things scheduled for a specific cycle, they will all happen at the same cycle.
Regards,Daniel
Em segunda-feira, 14 de outubro de 2019 04:41:16 GMT+2, Victor Kariofillis
<[email protected]> escreveu:
Hi,
I am interested in adding additional latencies during a cache access. I have
implemented some extra functionality that happens in the cache and I am
wondering about how to model the extra time it will take for that to happen.
Where would I add the extra latency? For example, inside the access() function
there is this line of code:
// Calculate access latency on top of when the packet arrives. This
// takes into account the bus delay.
lat = calculateTagOnlyLatency(pkt->headerDelay, tag_latency);
Right below that, there is a "return false;" line. How is that latency being
used? Also, how can I make sure whether the execution stalls until something
else has finished or things that can happen concurrently?
Thank you,Victor
_______________________________________________
gem5-users mailing list
[email protected]
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users _______________________________________________
gem5-users mailing list
[email protected]
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users