Patent ID: 7543116

Claim:
A method of data processing in a data processing system including at least first and second coherency domains, said first coherency domain containing a memory controller and an associated system memory having a target memory block identified by a target address, said method comprising: in the first coherency domain, maintaining a domain indicator indicating whether said target memory block is cached outside said first coherency domain; receiving in the first coherency domain a flush operation broadcast to said first and second coherency domains, said flush operation specifying said target address of said target memory block; receiving in the first coherency domain a combined response to said flush operation representing a system-wide response to said flush operation; in response to receipt in said first coherency domain of said combined response, determining if said combined response indicates that at least one cached copy of said target memory block may remain within the data processing system; in response to a determination that said combined response indicates that at least one cached copy of said target memory block may remain in the data processing system, updating said domain indicator to indicate that said target memory block is cached outside of said first coherency domain, wherein said updating comprises updating said domain indicator only in response to a determination that said flush operation originated outside said first coherency domain; and a processing unit that initiated said flush operation issuing at least one kill operation to invalidate any cached copy of said target memory block in response to said combined response indicating that at least one cached copy of said memory block may remain in the data processing system, wherein said processing unit restricts a scope of said at least one kill operation to a single one of said at least first and second coherency domains that contains the processing unit in response a determination that a cache of said processing unit holds said target memory block in a cache state indicating said target memory block is cached only in a coherency domain among the at least first and second coherency domains containing said processing unit.