Method and apparatus for accelerated shared data migration
A method and apparatus for accelerated shared data migration between cores. Using an Always Migrate protocol, when a migratory probe hits a directory entry in either modified or owned state, the entry is transitioned to an owned state, and a source done command is sent without sending cache block ownership or state information to the directory.
1. A method for shared data management in a processor comprising:
hitting a directory entry in a first state for a read block command, wherein the first state is a modified (M) state or owned (O) state;
generating a migratory probe based on the first state and the command;
transitioning the directory entry to an O state if the first state is the M state or maintaining the directory entry as an O state if the first state is an O state; and
sending a source done command to indicate a completed transaction without sending cache block ownership information or cache state information to the directory.
2. The method of claim 1 further comprising:
on a condition that the migratory probe hits M, O, exclusive (E), or ModifiedUnWritten (Muw) cache line state, obtaining a copy of the cache line, by a requestor, in the Muw or O cache line state;
updating the state to an invalid (I) or shared (S) based on the migratory probe and the cache line state; and
maintaining cache consistency based on the transitioning.
3. The method of claim 2 , wherein an O directory state hides a cache line state, wherein status information is sent to the directory upon an eviction.
4. The method of claim 3 , wherein the status information includes at least one of cache state of the eviction, an eviction type, or combined evictions.
5. An apparatus comprising:
a processor configured to hit a directory entry in a first state for a read block command, wherein the first state is a modified (M) state or owned (O) state;
a probe generating component configured to generate a migratory probe based on the first state and the read block command;
a controller configured to transition the directory entry to an O state if the first state is the M state or maintaining the directory entry as an O state if the first state is an O state; and configured to send a source done command to indicate a completed transaction without sending cache block ownership information or cache state information to the directory.
6. The apparatus of claim 5 further comprising:
on a condition that the migratory probe hits M, O, exclusive (E), or ModifiedUnWritten (Muw) cache line state, the processor further configured to obtain a copy of the cache line in Muw or O cache line state;
a state updating component configured to update the state to an invalid (I) or shared (S); and
wherein the apparatus is configured to maintain cache consistency.
7. The apparatus of claim 6 , wherein an O directory state hides a cache line state, wherein status information is sent to the directory upon an eviction.
8. The apparatus of claim 7 , wherein the status information includes at least one of cache state of the eviction, an eviction type, or combined evictions.