Patent ID: 8024527

Claim:
A method of data processing in a multiprocessor data processing system, said method comprising: the multiprocessor data processing system dynamically determining during execution by reference to a performance metric whether memory access patterns favor partial cache line accesses, wherein the performance metric depends upon a relation between an accumulated number of multiple different first cache lines to which access to a single granule was made while the first cache lines were cached and an accumulated number of multiple different second cache lines to which access to multiple granules was made while the second cache lines were cached; in response to the determining, the multiprocessor data processing system setting an access mode to a partial cache line access mode in response to determining that memory access patterns favor partial cache line access and otherwise setting the access mode to a full cache line access mode; in response to a request by a requesting processor core to access a target granule of a target cache line of data containing multiple granules, a processing unit that includes the requesting processor core originating on an interconnect of the multiprocessor data processing system a partial cache line request that requests permission to access only said target granule of the target cache line if the access mode is set to the partial cache line access mode, and otherwise originating on the interconnect a full cache line access request that requests permission to access multiple granules of the target cache line; and in response to a combined response to said partial cache line request indicating success, said combined response representing a system-wide response to said partial cache line request, the processing unit receiving said target granule of the target cache line, supplying the target granule to the requesting processor core, and updating a coherency state of the target granule while retaining a coherency state of at least one other granule of the target cache line.