Re: [Gems-users] Ruby Question about MESI_CMP and implications of a Blocking Protocol


Date: Wed, 23 Mar 2011 09:31:41 +0900
From: "Jiho \"Ray\" Choi" <jray319@xxxxxxxxx>
Subject: Re: [Gems-users] Ruby Question about MESI_CMP and implications of a Blocking Protocol
I am not 100% confident with my answers.

1) 'Unblock/Exclusive Unblock' messages are to change L1 cache line states (to/from Exclusive states) and they have nothing to do with blocking/non-blocking cache.

2) Ruby models blocking cache as default. I am not sure if you can model non-blocking cache in Ruby, but if you want, you may look into SimicsDriver, SimicsProcessor and Sequencer.
And blocking cache serves memory transactions such as read and store one by one.
Regarding your example, I think it is possible. Think of the scenario when L1 is full and the cache line of Y is selected as a victim. If the cache line of Y is dirty, L1 needs to write it back to L2. Apparently, STORE X doesn't "block" writing back the cache line of Y.

Ray


[← Prev in Thread] Current Thread [Next in Thread→]