Hello,

I've been using gem5 for ~10 years, and this is the first time I've ever
seen this code :D. It  was committed 14 years ago, and it hasn't been
touched since.

It looks to me like it's used for gathering statistics about the activity
of different CPU pipeline stages. However, I *know* it's not actively
maintained, so I would guess that it doesn't work anymore. As far as what
it's doing, I think the comment in activity.hh is probably the best
explanation:

http://doxygen.gem5.org/release/current/classActivityRecorder.html#details

Cheers,
Jason

On Tue, Nov 3, 2020 at 4:49 AM yujiecui--- via gem5-users <
gem5-users@gem5.org> wrote:

> What does TimeBuffer in gem5 do? I read its source code, but there are no
> comments and it is not easy to understand operations. I saw in the tick
> function in the cpu.cc file that every tick() will proceed
>     timeBuffer.advance();
>     fetchQueue.advance();
>     decodeQueue.advance();
>     renameQueue.advance();
>     iewQueue.advance();
> But the function of advance is
> advance()
> {
>  if (++base >= size)
>     base = 0;
>     int ptr = base + future;
>     if (ptr >= (int)size)
>         ptr -= size;
>     (reinterpret_cast<T *>(index[ptr]))->~T();
>     std::memset(index[ptr], 0, sizeof(T));
>     new (index[ptr]) T;
> }
> Just looking at the source code, this is really hard to understand. I
> think if someone can tell me what it is doing? I think it’s easier for me
> to understand this code
> _______________________________________________
> 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