Patent ID: 8255635

Claim:
A method of data processing in a multiprocessor data processing system, said method comprising: in response to a processor request to modify a target granule of a target cache line of data containing multiple granules, a processing unit originating, on an interconnect of the multiprocessor data processing system, a data-claim-partial request that requests permission to promote only said target granule of the target cache line to a unique copy with an intent to modify said target granule; prior to and at said originating, holding the target cache line in a set associative cache array of a cache memory of the processing unit and holding a corresponding directory entry in a cache directory of the contents of the cache array; and in response to a combined response to said data-claim-partial request indicating success, said combined response representing a system-wide response to said data-claim-partial-request, the processing unit promoting only said target granule of the target cache line to a unique copy by updating a coherency state of the target granule in the directory entry for the target cache line in the cache directory from a first data-valid coherency state to a different second data-valid coherency state identifying the target granule as the unique copy and retaining a coherency state of at least one other granule of the target cache line in the directory entry for the target cache line in the cache directory, wherein: the promoting includes identifying with a granule identifier in the directory entry which single granule among the multiple granules of the target cache line was the target granule and indicating the second data-valid coherency state as applicable to only the target granule utilizing a granule coherency state field of the directory entry; and the retaining includes retaining the coherency state of said at least one other granule in a line coherency state field of the directory entry indicating coherence state information shared by at least two other granules of the target cache line.