Hi Daniel,

Thanks for your response! As I understand from the code, the access latency
for parallel-access cache (meaning the cache look up happens in parallel)
is determined in gem5 by max(lookup latency, data latency), and for
sequential access-mode it becomes (lookup latency + data latency).

I was particularly interested in observing what numbers of cycles is spent
in classic cache for handling a miss.

gem5 code designates two such latencies: *lookup latency* and *forward
latency*. *Both of them are exactly equal to the tag latency*. When a cache
miss occurs, gem5 assigns "*lat = lookupLatency*", where "lat" is gem5's
internal latency variable to hold the value of appropriate latency in terms
of clock cycles. This assignment is quite intuitive, and it *creates an
impression that whatever value lookup latency contains is used to handle a
cache miss*. If I pass any value "X" cycles into lat by "lat = X", it does
not get reflected in the system. But if I force forward latency to be "X",
I see it being reflected in the system handling the cache miss.

*So, I find even though the assignment "lat = lookupLatency" created an
impression that "lookupLatency" is used to handle a miss, "forwardLatency"
is actually used.*

All these things do not matter because lookup latency = forward latency =
tag latency (by default).

Regards,
Aritra

On Fri, Sep 25, 2020 at 3:42 PM Daniel Carvalho <oda...@yahoo.com.br> wrote:

> Hello Aritra,
>
> It seems that the tag lookup latency is indeed disregarded on misses
> (except for SW prefetches). The cache behaves as if a miss is always
> assumed to happen and "pre-prepared" in parallel with the tag lookup. I am
> not sure if this was a design decision, or an implementation consequence,
> but my guess is the latter - there is no explicit definition of the cache
> model pursued by the classic cache.
>
> Regards,
> Daniel
> Em sexta-feira, 25 de setembro de 2020 11:00:39 GMT+2, Aritra Bagchi via
> gem5-users <gem5-users@gem5.org> escreveu:
>
>
> Just a humble reminder. Any comment would be highly solicited.
>
> Thanks,
> Aritra
>
> On Thu, 24 Sep, 2020, 12:22 PM Aritra Bagchi, <bagchi95ari...@gmail.com>
> wrote:
>
> Hi all,
>
> While experimenting with gem5 classic cache, I tried to find out how an
> access miss is handled and with what latency.
>
> Even if in *cache/tags/base_set_assoc.hh*, the access (here a miss)
> handling latency *"lat"* gets assigned to the *"lookupLatency"*, the
> actual latency that is used to handle a miss (in *cache/base.cc:
> handleTimingReqMiss( )* method) is the *"forwardLatency"*. This is my
> observation.
>
> Both *"lookupLatency"* and *"forwardLatency"* are assigned to the cache
> *"tag_latency"*, which is okay! But I experimented with different values
> for them and observed that the value of *"forwardLatency"* actually gets
> reflected ( in terms of the clock cycle delay from the *cpu_side* port to
> the *mem_side* port) into the system for handling a cache miss.
>
> Could someone please confirm whether my observation and understanding is
> correct or not?
>
> Regards,
> Aritra
>
> _______________________________________________
> gem5-users mailing list -- gem5-users@gem5.org
> To unsubscribe send an email to gem5-users-le...@gem5.org
> %(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s
>
_______________________________________________
gem5-users mailing list -- gem5-users@gem5.org
To unsubscribe send an email to gem5-users-le...@gem5.org
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s

Reply via email to