Atomic remote memory operations in cache mirroring storage systems
First Claim
1. A data storage system comprising:
- a local data storage device including a local cache memory having a local processing device coupled thereto; and
a remote data storage device including a remote cache memory having a remote processing device coupled thereto, the remote processing device coupled via a communications link to the local processing device, such that a plurality of memory access operations transmitted from the local processing device to the remote processing device is performed atomically wherein data stored upon the remote data storage device can not be accessed during performance of the plurality of memory access operations.
2 Assignments
0 Petitions
Accused Products
Abstract
Embodiments of the present invention provide methods and apparatuses for accessing MD atomically. For one embodiment, the local cache and the remote cache are each provided with an MBE. To perform an atomic access operation, the local processing system allocates a burst descriptor buffer. The burst descriptor buffer is used to specify the addresses to be atomically accessed. For write operations, the burst descriptor buffer also specifies the update data. The addresses, and data, if any, are then transmitted to the remote cache as a series of packets constituting a single data access request. The MBE of the remote cache then performs the operations contained in the request. Upon completion of all of the operations the remote MBE transmits an acknowledgement. For read operations the remote MBE also transmits the requested data.
28 Citations
44 Claims
-
1. A data storage system comprising:
-
a local data storage device including a local cache memory having a local processing device coupled thereto; and
a remote data storage device including a remote cache memory having a remote processing device coupled thereto, the remote processing device coupled via a communications link to the local processing device, such that a plurality of memory access operations transmitted from the local processing device to the remote processing device is performed atomically wherein data stored upon the remote data storage device can not be accessed during performance of the plurality of memory access operations. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A method comprising:
-
maintaining a first set of data on a local memory device and a second set of data on a remote memory device, the second set of data a mirror copy of the first set of data, the remote memory device having coupled thereto a remote processing device;
updating the first set of data, such that the first set of data is no longer a mirror copy of the second set of data; and
transmitting a memory operation burst containing a set of instructions to perform a plurality of memory update operations to the remote processing device such that the remote processing device performs the plurality of memory update operations atomically wherein the remote memory device can not be accessed while performing the plurality of memory update operations thereby updating the second set of data such that the second set of data becomes a mirror copy of the first set of data. - View Dependent Claims (7, 8, 9, 10, 11)
-
-
12. A machine-readable medium having one or more executable instructions stored thereon, which when executed by a digital processing system, cause the digital processing system to perform a method, the method comprising:
-
maintaining a first set of data on a local memory device and a second set of data on a remote memory device, the second set of data a mirror copy of the first set of data, the remote memory device having coupled thereto a remote processing device;
updating the first set of data, such that the first set of data is no longer a mirror copy of the second set of data; and
transmitting a memory operation burst containing a set of instructions to perform a plurality of memory update operations to the remote processing device such that the remote processing device performs the plurality of memory update operations atomically wherein the remote memory device can not be accessed while performing the plurality of memory update operations thereby updating the second set of data such that the second set of data becomes a mirror copy of the first set of data. - View Dependent Claims (13, 14, 15, 16, 17)
-
-
18. A method comprising:
-
performing a plurality of data update operations to update a corresponding plurality of data words of a local copy of data stored on a local cache memory, each data word having a corresponding memory address;
transmitting the plurality of updated data words and the corresponding memory addresses as a plurality of packets to a remote processing device coupled to a remote cache memory;
storing each packet at the remote processing device until the plurality of packets is received; and
atomically updating a remote copy of data stored on the remote cache memory using the updated data words and the corresponding memory addresses such that access to the remote copy of data is prevented during updating. - View Dependent Claims (19, 20, 21, 22, 23)
-
-
24. A machine-readable medium having one or more executable instructions stored thereon, which when executed by a digital processing system, cause the digital processing system to perform a method, the method comprising:
-
performing a plurality of data update operations to update a corresponding plurality of data words of a local copy of data stored on a local cache memory, each data word having a corresponding memory address;
transmitting the plurality of updated data words and the corresponding memory addresses as a plurality of packets to a remote processing device coupled to a remote cache memory;
storing each packet at the remote processing device until the plurality of packets is received; and
atomically updating a remote copy of data stored on the remote cache memory using the updated data words and the corresponding memory addresses such that access to the remote copy of data is prevented during updating. - View Dependent Claims (25, 26, 27, 28, 29)
-
-
30. A data storage system comprising:
a local data storage device including a local processing unit, a local cache memory, and a local memory burst engine coupled via a communications link to a remote memory burst engine of a remote data storage device, the remote data storage device including a remote cache memory, such that a plurality of memory update operations corresponding to memory updates to the local cache memory are transmitted by the local memory burst engine to the remote memory burst engine, the remote memory burst engine performing the plurality of memory update operations to the remote cache memory atomically such that the remote cache memory can not be accessed during performance of the plurality of memory update operations. - View Dependent Claims (31, 32, 33, 34)
-
35. A method comprising:
-
transmitting a plurality of memory addresses as a plurality of packets to a remote processing device coupled to a remote cache memory;
storing each packet at the remote processing device until the plurality of packets is received;
atomically reading data from the plurality of addresses on a remote copy of data stored on the remote cache memory such that access to the remote copy of data is prevented during the reading; and
transmitting data words read from the plurality of addresses on the remote copy of data to a local processing device. - View Dependent Claims (36, 37, 38, 39)
-
-
40. A machine-readable medium having one or more executable instructions stored thereon, which when executed by a digital processing system, cause the digital processing system to perform a method, the method comprising:
-
transmitting a plurality of memory addresses as a plurality of packets to a remote processing device coupled to a remote cache memory;
storing each packet at the remote processing device until the plurality of packets is received;
atomically reading data from the plurality of addresses on a remote copy of data stored on the remote cache memory such that access to the remote copy of data is prevented during the reading; and
transmitting data words read from the plurality of addresses on the remote copy of data to a local processing device. - View Dependent Claims (41, 42, 43, 44)
-
Specification