High speed selective mirroring of cached data
First Claim
1. An apparatus for selectively maintaining data coherency between local memory segments within a local memory and corresponding remote memory segments within a remote memory, the apparatus comprising:
- a random access memory (RAM) configured to store remote addresses of respective remote memory segments;
a content addressable memory (CAM) configured to store addresses of respective local memory segments to be mirrored to respective remote memory segments, and to store indexes into said RAM for respective local memory segments;
means, responsive to update of data in said local memory, for determining from said CAM if said data was updated in one of said local memory segments, and if so, determining from said CAM an index into said RAM for said one local memory segment; and
means, responsive to said index, for identifying from said RAM a remote address corresponding to said one local memory segment, and transmitting to said remote memory said corresponding remote address along with said data such that said data updated in said local memory segment is mirrored to the corresponding remote memory segment.
2 Assignments
0 Petitions
Accused Products
Abstract
A mirror table that facilitates selective data coherency between local memory segments and remote memory segments includes a content addressable memory (CAM) and a random access memory (RAM). The CAM stores the addresses of local memory segments that are selected to be mirrored, and provides a segment index when presented with a segment address stored therein. The RAM stores one or more remote segment addresses for the mirrored segments along with additional data, and provides the remote segment addresses along with the additional data when presented with the segment index. A mirror link assembles and transmits an update packet comprising the remote segment addresses, a segment offset, the corresponding data, and the additional data to a remote destination. Each indicated remote address is updated with the corresponding data, thus maintaining data coherency between the selected local and remote memory segments.
37 Citations
15 Claims
-
1. An apparatus for selectively maintaining data coherency between local memory segments within a local memory and corresponding remote memory segments within a remote memory, the apparatus comprising:
-
a random access memory (RAM) configured to store remote addresses of respective remote memory segments;
a content addressable memory (CAM) configured to store addresses of respective local memory segments to be mirrored to respective remote memory segments, and to store indexes into said RAM for respective local memory segments;
means, responsive to update of data in said local memory, for determining from said CAM if said data was updated in one of said local memory segments, and if so, determining from said CAM an index into said RAM for said one local memory segment; and
means, responsive to said index, for identifying from said RAM a remote address corresponding to said one local memory segment, and transmitting to said remote memory said corresponding remote address along with said data such that said data updated in said local memory segment is mirrored to the corresponding remote memory segment. - View Dependent Claims (2, 3, 4)
-
-
5. An apparatus for selectively maintaining data coherency between local memory segments and memory segments within at least one remote memory, the apparatus comprising:
-
a content addressable memory (CAM) configured to store a local segment address for a plurality of mirrored segments and to provide a segment index when presented with a segment address stored therein;
a random access memory (RAM) configured to store at least one remote segment address for the plurality of mirrored segments and to provide the at least one remote segment address when presented with the segment index; and
a mirror link configured to receive the at least one remote segment address along with corresponding data and transmit each remote segment address and corresponding data to a remote memory. - View Dependent Claims (6, 7, 8, 9)
-
-
10. An apparatus selectively maintaining data coherency between local memory segments and memory segments within at least one remote memory, the apparatus comprising:
-
a content addressable memory (CAM) configured to store a local segment address for a plurality or mirrored segments of a selectable size and to provide a segment index when presented with a segment address stored therein;
a random access memory (RAM) configured to store additional data and at least one remote segment address for the plurality of mirrored segments and to provide the additional data and the at least one remote segment address when presented with the segment index;
a mirror link configured to receive the additional data and the at least one remote segment address along with corresponding data and transmit the additional data and each remote segment address along with corresponding data to a remote memory; and
the CAM and the RAM further configured to enable access to both the local segment address and the at least one remote segment address with a single memory cycle.
-
-
11. A method for selectively maintaining data coherency between local memory segments within a local memory and corresponding remote memory segments within a remote memory, said method comprising the steps of:
-
storing, within or local to said local memory, remote addresses of respective remote memory segments;
storing, within or local to said local memory, addresses of respective local memory segments to be mirrored to respective remote memory segments, and indexes into the stored remote addresses for respective local memory segments;
in response to update of data in said local memory, determining from the stored addresses of said local memory segments if said data was updated in one of said local memory segments, and if so, determining from the stored indexes an index into the stored remote addresses for said one local memory segment; and
in response to said index, determining from the stored remote addresses a remote address corresponding to said one local memory segment, and transmitting to said remote memory said corresponding remote address along with said data such that said data updated in said local memory segment is mirrored to the corresponding remote memory segment. - View Dependent Claims (12, 13, 14)
-
-
15. A system for selectively mirroring data between dual active raid controllers, the system comprising:
-
a first RAID controller comprising a mirror table and a mirror link, the mirror table configured to selectively map local addresses to remote addresses, the mirror link configured to transmit a mapped address and corresponding data to a second RAID controller, the second RAID controller configured to receive the mapped address and corresponding data and to store the data at a memory location indicated by the mapped address; and
wherein the mirror table comprises;
a content addressable memory (CAM) configured to store a local segment address for a plurality of mirrored segments and to provide a segment index when presented with a segment address stored therein; and
a random access memory (RAM) configured to store a remote segment address for the plurality of mirrored segments and to provide the remote segment address when presented with the segment index.
-
Specification