Atomic remote memory operations in cache mirroring storage systems
First Claim
1. A method, comprising:
- (a) allocating a memory buffer for use in a data mirroring operation;
(b) updating a local copy of data stored in a local cache while storing, in said memory buffer, addresses of memory locations of the local cache that are modified during said updating;
(c) performing a burst update to a remote cache communicatively coupled to the local cache by (i) fetching data words identified by the addresses of the memory locations of the local cache, (ii) transmitting the data words to the remote cache, and (iii) receiving and storing the data words in a temporary location accessible by the remote cache until an end-of-burst signal is received;
(d) following receipt of the end-of-burst signal, updating, using the data words, memory locations in the remote cache that correspond to the addresses of the memory locations of the local cache, said updating taking place atomically so as not to permit intervening access to the remote cache; and
(e) sending an acknowledgement indicating the updating of the remote cache is complete.
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.
-
Citations
34 Claims
-
1. A method, comprising:
-
(a) allocating a memory buffer for use in a data mirroring operation; (b) updating a local copy of data stored in a local cache while storing, in said memory buffer, addresses of memory locations of the local cache that are modified during said updating; (c) performing a burst update to a remote cache communicatively coupled to the local cache by (i) fetching data words identified by the addresses of the memory locations of the local cache, (ii) transmitting the data words to the remote cache, and (iii) receiving and storing the data words in a temporary location accessible by the remote cache until an end-of-burst signal is received; (d) following receipt of the end-of-burst signal, updating, using the data words, memory locations in the remote cache that correspond to the addresses of the memory locations of the local cache, said updating taking place atomically so as not to permit intervening access to the remote cache; and (e) sending an acknowledgement indicating the updating of the remote cache is complete. - View Dependent Claims (2, 3, 4, 5, 6, 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:
-
(a) allocating a memory buffer for use in a data mirroring operation; (b) updating a local copy of data stored in a local cache while storing, in said memory buffer, addresses of memory locations of the local cache that are modified during said updating; (c) performing a burst update to a remote cache communicatively coupled to the local cache by (i) fetching data words identified by the addresses of the memory locations of the local cache, (ii) transmitting the data words to the remote cache, and (iii) receiving an acknowledgement from the remote cache indicating that updating of the remote cache has been completed, said updating of the remote cache involving first storing the data words in a temporary location accessible by the remote cache until an end-of-burst signal is received, following receipt of the end-of-burst signal, updating, using the data words, memory locations in the remote cache that correspond to the addresses of the memory locations of the local cache, said updating taking place atomically so as not to permit intervening access to the remote cache; and sending the acknowledgement. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20)
-
-
21. A method, comprising:
-
(a) allocating a memory buffer for use in a data mirroring operation; (b) populating the memory buffer with addresses that need to be read atomically from a remote cache; (c) initiating a burst read operation; (d) transmitting the contents of the memory buffer; (e) receiving, at the remote cache, the contents of the memory buffer and storing them in a temporary location until an end-of-burst signal is received; (f) following receipt of the end-of-burst signal, performing read operations to all of the addresses in the remote cache atomically while allowing no intervening access to the remote cache; (g) transmitting a series of response packets corresponding to the read operations; (h) receiving the response packets and placing data values for the addresses in the memory buffer; and (i) upon receipt of an end of response indicator for the burst read operation, updating a status indicator to indicate completion of the burst read operation. - View Dependent Claims (22, 23, 24, 25, 26, 27)
-
-
28. 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:
-
(a) allocating a memory buffer for use in a data mirroring operation; (b) populating the memory buffer with addresses that need to be read atomically from a remote cache; (c) initiating a burst read operation; (d) transmitting the contents of the memory buffer; (e) receiving a series of response packets indicating completion of the burst read operation by which the contents of the memory buffer were received and stored in a temporary location until an end-of-burst signal was received, after which read operations to all of the addresses in the remote cache were performed atomically while allowing no intervening access to the remote cache, and the response packets corresponding to the read operations transmitted upon completion thereof; and (f) upon receipt of an end of response indicator for the burst read operation, updating a status indicator to indicate completion of the burst read operation. - View Dependent Claims (29, 30, 31, 32, 33, 34)
-
Specification