System and method for dynamic mirror-bank addressing
First Claim
1. In a memory controller having access to a plurality of memory banks, a method for writing data that is mirrored at two memory banks, the method comprising the steps of:
- receiving a write request specifying a selected one of the two memory banks, the write request indicating that it is a mirror write request;
identifying the second memory bank at which the data is mirrored;
issuing the write request to the two memory banks at which the data is mirrored; and
executing the write request at the two memory banks without locking either memory bank.
1 Assignment
0 Petitions
Accused Products
Abstract
A dynamic addressing technique mirrors data across multiple banks of a memory resource. Information stored in the memory banks is organized into separately addressable blocks, and memory addresses include a mirror flag. To write information mirrored across two memory banks, a processor issues a single write transaction with the mirror flag asserted. A memory controller detects that the mirror flag is asserted and, in response, waits for both memory banks to become available. At that point, the memory controller causes the write to be performed at both banks. To read data that has been mirrored across two memory banks, the processor issues a read with the mirror flag asserted. The memory controller checks the availability of both banks having the desired information. If either bank is available, the read request is accepted and the desired data is retrieved from the available bank and returned to the processor.
98 Citations
18 Claims
-
1. In a memory controller having access to a plurality of memory banks, a method for writing data that is mirrored at two memory banks, the method comprising the steps of:
-
receiving a write request specifying a selected one of the two memory banks, the write request indicating that it is a mirror write request;
identifying the second memory bank at which the data is mirrored;
issuing the write request to the two memory banks at which the data is mirrored; and
executing the write request at the two memory banks without locking either memory bank. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. In a memory controller having access to a plurality of memory banks, a method for reading data that is mirrored at first and second memory banks, the method comprising the steps of:
-
receiving a read request specifying the first memory bank, the read request indicating that it is a mirror read request;
identifying the second memory bank at which the data is mirrored; and
issuing the read request to the second memory bank provided that the first memory bank specified by the read request is unavailable. - View Dependent Claims (9, 10, 11, 12)
-
-
13. In a memory controller having access to a plurality of memory banks, a method of performing an atomic read-modify-write transaction to data mirrored at first and second memory banks, the method comprising the steps of:
-
receiving an atomic read-modify-write transaction specifying a selected one of the two memory banks, the read-modify-write transaction indicating that it is a mirror read-modify-write transaction;
identifying the second memory bank at which the data is mirrored;
selecting one of the first and second memory banks from which to read the data depending on the availability of the first and second memory banks;
modifying the data read from the selected memory bank;
issuing the write request to the two memory banks at which the data is mirrored; and
executing the write request at the two memory banks without locking either memory bank. - View Dependent Claims (14)
-
-
15. A memory controller configured to access a plurality of memory banks in which data at a first memory bank is mirrored at a second memory bank, the memory controller comprising:
-
a plurality of buffers for storing requests received by the memory controller, the requests specifying data stored at the memory banks;
means for identifying at least one request as a mirror read request specifying data stored at the first memory bank;
means for identifying the second memory bank at which the data specified by the mirror read request mirrored;
means for selecting one of the first and second memory banks from which to read the specified data, depending on the availability of the first and second memory banks; and
means for retrieving the data from the selected one of the first and second memory banks. - View Dependent Claims (16, 17, 18)
-
Specification