A system for cache coherency comprises a memory. The memory comprises a
plurality of data items and a plurality of directory information items,
each data item uniquely associated with one of the plurality of directory
information items. Each of the plurality of data items is configured in
accordance with one of a plurality of access modes. Each of the plurality
of directory information items comprises indicia of the access mode of
its associated data item. A multiplexer couples to the memory and
comprises a multiplex ratio. A plurality of buffers couple to the
multiplexer and to the memory. The multiplex ratio is a function of the
number of buffers in the plurality of buffers. A plurality of
multiplexer/demultiplexers (MDMs) each uniquely couple to a different one
of the plurality of buffers. A plurality of processing elements couple to
the memory; each of the processing elements uniquely couples in a
point-to-point connection to a different one of the plurality of MDMs.
Each of the processing elements is configured to transmit a data request
to its associated MDM, the data request identifying one of the plurality
of data items and an access mode. The memory is configured to transmit a
data response to each of the processing elements in response to a data
request, the data response comprising the identified data item and its
associated directory information. Each of the processing elements is
further configured to receive the data response and to compare the
associated directory information with the access mode of the data request
and in the event that the associated directory information and the access
mode of the data request are not compatible, to initiate coherence
actions for the requested data item. A method for cache coherency is also
provided.