Hi,

Can you please explain the difference between WriteReq and 
WriteAllocate. (and also between UpgradeReq and UpgradeAllocate)

Thanks
- Mrinal



Thomas Wenisch wrote:
> Hi,
> 
> 
> On Thu, 14 Sep 2006, Mrinal Nath wrote:
> 
>> Hi,
>>
>> I wanted to know the difference between "snoop" and "request".
> 
> 
> In general, Snoop messages have to do with coherence, while Request 
> messages initiate new memory transactions.  Both the Snoop and Request 
> channels travel "down" the cache hierarchy (from the CPU towards memory).
> 
> The reason we separate the two channels again has to do with our DSM 
> coherence protocol.  The key requirement for the coherence protocol to 
> work is that invalidations and downgrades cannot be blocked by request 
> messages (that is; an invalidation reply has to be sent even if there 
> are request messages that were issued before it that are waiting to be 
> serviced by the memory system).  If the invalidation/downgrade were 
> stuck in a queue behind a request, the protocol can deadlock.
> 
> Thus, we separate requests and coherence messages into two virtual 
> channels, Snoop and Request.  Each channel has separate queue and 
> buffering resources.  Messages in the Snoop channel can bypass messages 
> in the request channel (i.e., a snoop message may be processed by the 
> cache before a request message even if the request message arrived 
> earlier). However, Requests may not bypass snoops (a snoop message that 
> arrives earlier *must* be processed before any new request messages).
> 
> Note that in some cases, when a snoop bypasses a request, it modifies 
> the request message.  The simplest example of this arises when a clean 
> line is upgraded.  Initially the line is present in L1D and clean, and 
> the CPU stores to the line.  The L1D sends an UpgradeRequest to L2.  
> Now, while the Upgrade is still pending, an invalidation arrives for the 
> line, and L1D invalidates its copy.  When the InvalidationAck is 
> processed by L2, the UpgradeRequest is changed to a WriteRequest, 
> because L1 now needs data as well as permission for the line.
> 
> As a side note, all messages which carry data away from the CPU (e.g., 
> InvUpdateAck, EvictDirty, ...) travel in the Snoop channel.  You can see 
> exactly which messages use the snoop channel in 
> Common/Slices/MemoryMessage.hpp.  Look for the usesSnoopChannel() function.
> 
> Let me know if you have questions about specific message types in 
> MemoryMessage.hpp.  Note that there are some message types in there that 
> are not used in the simulation models we have released publicly (e.g., 
> the FlushReq).
> 
> Regards,
> -Tom Wenisch
> Computer Architecture Lab
> Carnegie Mellon University
> 
>>
>> By looking at the function 'runSnoopProcess' in CacheController.hpp, 
>> it seems to me that snoops are only related to instruction fetches.
>>
>> Also, can someone please clarify the flow of messages in the cache 
>> hierarchy. (who sends what types of messages to whom under what 
>> conditions?)
>>
>> Any help will be greatly appreciated.
>> Thanks
>> - Mrinal
>>
>>
> _______________________________________________
> SimFlex mailing list
> [email protected]
> https://sos.ece.cmu.edu/mailman/listinfo/simflex
> SimFlex web page: http://www.ece.cmu.edu/~simflex
From jsmolens+ at ece.cmu.edu  Sun Oct  1 21:18:23 2006
From: jsmolens+ at ece.cmu.edu (Jared C. Smolens)
List-Post: [email protected]
Date: Sun Oct  1 21:18:28 2006
Subject: [Simflex] What is the difference between WriteReq and
Message-ID: <[email protected]>


Hi Mrinal,

The MemoryMessage types are documented in:

  components/Common/Slices/MemoryMessage.hpp

- Jared

Excerpts From Mrinal Nath <[email protected]>:
 Re: [Simflex] What is the differenc: Mrinal Nath <[email protected]>
>Can you please explain the difference between WriteReq and 
>WriteAllocate. (and also between UpgradeReq and UpgradeAllocate)


Jared Smolens ----------- Electrical and Computer Engineering
www.rabidpenguin.org ------------- Carnegie Mellon University
jsmolens AT ece.cmu.edu ------ HH A-313 ------ Pittsburgh, PA

Reply via email to