Review Board 2.0.15


Prefetch: Do not prefetch on cache & MSHR misses

Review Request #3622 - Created Sept. 1, 2016 and updated

Information
Taehoon Kim
gem5
Reviewers
Default

This diff fixes incorrect prefetch notification.

If we set the option on_miss in BasePrefetch.py, prefetch should generated at MSHR misses.
However, prefetch controller doesn't generate prefetch request.

I just change the order of notify() in cache.cc


   
Posted (Oct. 19, 2016, 9:32 a.m.)

Interesting. This seems a problem worth correcting, but I fail to see how this change accomplishes it. What prevents the notification from happening? Presumably there is some state being modified, but it is entirely unclear what or where. Have you looked into that?

  1. Thanks to reply.

    In the notify function, it checks the access type of packet using observeAccess function. Let's see the code of observeAccess function.

    if (onMiss) {
    return !inCache() && !inMissQueue();
    }

    When the option "on_miss" is on, prefetch controller generates prefetches if the packet's address is not allocated in MissQueue.
    However, if the notify function is located after the allocateMissBuffer function, the oberserveAccess function always returns false.

    So, I tried to change the location of notify function.