Patent ID: 8239587

Claim:
A method comprising: receiving, by a direct memory access controller, a first shared data read instruction; determining whether to fetch a first requested data block from a first memory unit to a second memory unit, wherein the second memory unit is accessible by a processor that generated the shared data read instruction, and wherein the determining includes determining whether a first source address included in the first shared data read instruction is included in a shared data physical address array of the direct memory access controller; and in response to determining that the first source address is not included in the shared data physical address array: fetching the first requested data block from the first memory unit to the source address; storing the first requested data block at a first physical address in the second memory unit: storing a first pointer at a second physical address in the second memory unit, wherein the first pointer is to the first physical address and the second physical address is associated with a first destination address included in the first shared data read instruction; and storing the first source address in the shared data physical address array.