Memory command interleaving
First Claim
Patent Images
1. A memory controller comprising:
- a command queue component configured to provide a command queue storing a plurality of memory commands for timely execution by the memory controller; and
a read-modify-write component configured to perform operations comprising;
analyzing the command queue for read-modify-write command sequences;
based on the analyzing the command queue;
placing, in the command queue, read commands of a plurality of read-modify-write command sequences as a read-modify-write group of consecutive read commands; and
placing;
in the command queue, write commands of the plurality of read-modify-write command sequences as a read-modify-write group of consecutive write commands.
2 Assignments
0 Petitions
Accused Products
Abstract
Various embodiments described herein provide for grouping read-modify-writes (RMWs) such that multiple RMW command sequences can be executed (or rearranged in the command queue) in an interleaved manner rather than being executed in order. In particular, various embodiments described herein split the read and write components (commands) of multiple RMW command sequences, group the read components in the command queue to execute consecutively, and group the write components in the command queue to execute consecutively.
11 Citations
20 Claims
-
1. A memory controller comprising:
-
a command queue component configured to provide a command queue storing a plurality of memory commands for timely execution by the memory controller; and a read-modify-write component configured to perform operations comprising; analyzing the command queue for read-modify-write command sequences; based on the analyzing the command queue; placing, in the command queue, read commands of a plurality of read-modify-write command sequences as a read-modify-write group of consecutive read commands; and placing;
in the command queue, write commands of the plurality of read-modify-write command sequences as a read-modify-write group of consecutive write commands. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A method comprising:
-
evaluating, by a memory controller, placement of a read-modify-write command sequence in a command queue, the evaluating comprising determining whether a predetermined maximum number of read-modify-writes has been reached; and in response to determining that the predetermined maximum number of read-modify-writes has not been reached or exceeded; placing, by the memory controller, a first read command of the read-modify-write command sequence in the command queue as part of a read-modify-write group of consecutive read commands in the command queue; and placing, by the memory controller, a first write command of the read-modify-write command sequence in the command queue as part of a read-modify-write group of consecutive write commands. - View Dependent Claims (13, 14, 15, 16, 17, 18)
-
-
19. A method comprising:
-
storing, on a memory, primary data inline with error checking data generated for the primary data using split addressing for memory transactions, the primary data being stored on the memory at a range of inline primary data addresses and the error checking data being stored on the memory at a range of inline error checking data addresses, the range of inline primary data addresses not overlapping with the range of inline error checking data addresses; generating, by a memory controller and based on a requested memory transaction, a first read-modify-write command sequence for particular primary data and a second read-modify-write command sequence for particular error checking data, the particular error checking data being generated for the particular primary data; evaluating, by the memory controller, placement of the first and second read-modify-write command sequences in a command queue, the evaluating placement comprising determining whether a predetermined maximum number of read-modify-writes has been reached; in response to determining that the predetermined maximum number of read-modify-writes has not been reached or exceeded; placing, by the memory controller, both a first read command of the first read-modify-write command sequence and a second read command of the second read-modify-write command sequence in the command queue as part of a read-modify-write group of consecutive read commands in the command queue; and placing, by the memory controller, both a first write command of the first read-modify-write command sequence and a second write command of the second read-modify-write command sequence in the command queue as part of a read-modify-write group of consecutive write commands. - View Dependent Claims (20)
-
Specification