79247756

Date: 2024-12-03 13:21:47
Score: 1
Natty:
Report link

Depends.

You notified others that you are going to make a change in this cacheline, which means you know what you are going to change in this cacheline. Simply, you can't scream to others "Hey, i'm going to change this block" without any idea about the new value, since you are an engineer, not a politician. =)

If this later load request, wants to read the part of the cache line you won't change, there is no difference between S or SM^AD.

If this later load request, wants to read the part of the cache line you will change, if a cacheline is in SM^AD stated, that means you'll change a part of this cacheline, maybe all of it, you should know the data you'll change right? Cache took that part of data in the older store request. So you have the data you'll write. You can respond with data you are holding to change, to this new request.

But ofc order of the load-store sequence should be kept till cache. Cache shouldn't see a load-store sequence as a store-load. (If you can escape from wrong responses in LSU or somewhere, it is ok too)

Reasons:
  • Long answer (-1):
  • No code block (0.5):
  • Contains question mark (0.5):
  • Low reputation (1):
Posted by: Erkmen