Patent ID: 9176877
Filing Date: 2015-11-03
Classification: G06F

Abstract:
1. A memory controller for controlling access to a system memory at a lowest level of a volatile memory hierarchy of a data processing system, the memory controller comprising: a memory channel interface adapted to be coupled to a system fabric of the data processing system and a memory buffer adapted to be coupled to the memory channel interface by a memory channel and to be further coupled to the system memory, wherein the memory channel interface includes a timer and the memory buffer includes a memory controller cache; wherein the memory channel interface, responsive to snooping a read-type memory access request of a requestor on a system fabric of the data processing system, forwards the read-type memory access request via the memory channel to the memory buffer and starts the timer; wherein the memory buffer, responsive to the forwarded read-type memory access request, performs a lookup of a target address of the read-type memory access request in the memory controller cache, and responsive to the lookup resulting in a hit in a coherence state permitting provision of early data, provides the memory channel interface both a response indicating the early data and a copy of a target memory block of the read-type memory access request; wherein the memory channel interface, responsive to receipt prior to expiration of the timer of the response from the memory buffer indicating the early data, transmits the copy of the target memory block to the requestor via the system fabric prior to receiving a combined response of the data processing system to the read-type memory access request; and the memory channel interface, responsive to receipt of the response from the memory buffer indicating early data prior to expiration of the timer, provides a partial response to the read-type memory access request that indicates the memory controller interface will transmit a copy of the target memory block to the requestor prior to receiving the combined response.