Methods, systems and computer program products to maintain cache coherency
in a System-On-a-Chip (SOC) which is part of a distributed shared memory
system are described. A local SOC unit that includes a local controller
and an on-chip memory is provided. In response to receiving a request
from a remote controller of a remote SOC to access a memory location, the
local controller determines whether the local SOC has exclusive ownership
of the requested memory location, sends data from the memory location if
the local SOC has exclusive ownership of the memory location and stores
an entry in the on-chip memory that identifies the remote SOC as having
requested data from the memory location. The entry specifies whether the
request from the remote SOC is for exclusive ownership of the memory
location. The entry also includes a field that identifies the remote SOC
as the requester. The requested memory location may be external or
internal to the local SOC unit.