Review Board 2.0.15


cpu: Add store-access operations

Review Request #2788 - Created May 11, 2015 and updated

Information
Tony Gutierrez
gem5
default
Reviewers
Default
Changeset 10818:d8ed395159dc
---------------------------
cpu: Add store-access operations

This patch was created by Bihn Pham during his internship at AMD.

This patch adds decoupled store operations that are commonly used by
high-performance processors. The patch modifies the O3 CPU model to issue
StoreAccess operations as soon as possible to acquire exclusive permission for
eventual stores. Later data store operations behave as normal.

In the classic memory model, StoreAccess requests are treated as HardPFExReq
and share the existing prefetch queue. Therefore, they affect performance only
if the prefetcher is enabled in the classic model.

In Ruby, StoreAccess requests are treated as RubyStore with NULL data field.

   

Issue Summary

13 13 0 0
Description From Last Updated Status
I am not a huge fan of the massive conditional and the code flow. First simple change is to check ... Stephan Diestelhorst May 14, 2015, 9:11 a.m. Open
What is the point of factoring this out into a separate function? I'd think most of the logic in LSQUnit::write ... Stephan Diestelhorst May 14, 2015, 9:11 a.m. Open
Why is the store access not an invalidate? Stephan Diestelhorst May 14, 2015, 9:11 a.m. Open
Superfluous debug? Should be handled by 302 already. Stephan Diestelhorst May 14, 2015, 9:11 a.m. Open
Drop. Stephan Diestelhorst May 14, 2015, 9:11 a.m. Open
Unneccessary fast-out (althrough I would like the fast-path to be more obvious in gernal in this function). Also.. who deallocates ... Stephan Diestelhorst May 14, 2015, 9:11 a.m. Open
Please don't remove these assertions. Add a more specific one with a justification. Stephan Diestelhorst May 14, 2015, 9:11 a.m. Open
Surperfluous (..) around isHWPrefetch vs quite (too IMHO) sparing usage of () in other introduced conditionals. Stephan Diestelhorst May 14, 2015, 9:11 a.m. Open
pull out blk_addr computation Stephan Diestelhorst May 14, 2015, 9:11 a.m. Open
Why add both and not start out with sending HardPFExReq straight away? Stephan Diestelhorst May 14, 2015, 9:11 a.m. Open
Drop, if not used anywhere except redundant check which could be isInvalidate. Stephan Diestelhorst May 14, 2015, 9:11 a.m. Open
The comment is confusing; the "hence" part. Why isn't the HardPFexReq marked as NeedsResponse, too (similar to HardPFReq)? Stephan Diestelhorst May 14, 2015, 9:11 a.m. Open
See earlier comment regarding NeedsResponse? Stephan Diestelhorst May 14, 2015, 9:11 a.m. Open
Review request changed
Updated (May 26, 2015, 12:44 p.m.)

Description:

~  

Changeset 10845:0aa7c6802baa

  ~

Changeset 10818:d8ed395159dc

   
   

cpu: Add store-access operations

   
   

This patch was created by Bihn Pham during his internship at AMD.

   
   

This patch adds decoupled store operations that are commonly used by

    high-performance processors. The patch modifies the O3 CPU model to issue
    StoreAccess operations as soon as possible to acquire exclusive permission for
    eventual stores. Later data store operations behave as normal.

   
   

In the classic memory model, StoreAccess requests are treated as HardPFExReq

    and share the existing prefetch queue. Therefore, they affect performance only
    if the prefetcher is enabled in the classic model.

   
   

In Ruby, StoreAccess requests are treated as RubyStore with NULL data field.

Diff:

Revision 2 (+229 -17)

Show changes