MEMORY CONTROLLERS, MEMORY SYSTEMS, SOLID STATE DRIVES AND METHODS FOR PROCESSING A NUMBER OF COMMANDS
First Claim
Patent Images
1. A memory controller, comprising:
- a plurality of back end channels;
a command queue communicatively coupled to the plurality of back end channels, the command queue being configured to hold host commands communicated by a host; and
circuitry configured to;
generate a number of back end commands at least in response to a number of the host commands in the command queue, anddistribute the number of back end commands to a number of the plurality of back end channels.
8 Assignments
0 Petitions
Accused Products
Abstract
The present disclosure includes methods and devices for a memory controller. In one or more embodiments, a memory controller includes a plurality of back end channels, and a command queue communicatively coupled to the plurality of back end channels. The command queue is configured to hold host commands received from a host. Circuitry is configured to generate a number of back end commands at least in response to a number of the host commands in the command queue, and distribute the number of back end commands to a number of the plurality of back end channels.
152 Citations
68 Claims
-
1. A memory controller, comprising:
-
a plurality of back end channels; a command queue communicatively coupled to the plurality of back end channels, the command queue being configured to hold host commands communicated by a host; and circuitry configured to; generate a number of back end commands at least in response to a number of the host commands in the command queue, and distribute the number of back end commands to a number of the plurality of back end channels. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A memory controller, comprising:
-
a plurality of back end channels; and a front end command dispatcher communicatively coupled to the plurality of back end channels and a command queue configured to hold a number of read commands, wherein the command dispatcher is configured to determine a net read from memory to be accomplished by the number of read commands, and to modify one or more of the number of read commands in order to optimize distribution of the number of read commands among the plurality of back end channels. - View Dependent Claims (12, 13, 14)
-
-
15. A memory controller, comprising:
-
a plurality of back end channels; and a front end command dispatcher communicatively coupled to the plurality of back end channels and a command queue configured to hold a number of write commands, wherein the command dispatcher is configured to determine a net change to memory to be accomplished by the number of write commands, and to modify one or more of the number of write commands in order to optimize distribution of the number of write commands among the plurality of back end channels. - View Dependent Claims (16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30)
-
-
31. A memory system, comprising:
-
a number of memory devices; and a controller having a front end direct memory access module (DMA) and a number of back end channels communicatively coupled between a respective one of the number of memory devices and the front end DMA;
the front end DMA being configured to process a payload associated with a single host command communicated by the host, wherein respective portions of the payload are associated with corresponding multiple back end commands that are being substantially simultaneously executed across the number of back end channels. - View Dependent Claims (32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43)
-
-
44. A solid state drive, comprising:
-
a plurality of flash memory devices; a memory controller, comprising; a plurality of back end channels, each communicatively coupled to a number of the plurality of memory devices; a front end direct memory access (DMA) communicatively coupled to the plurality of back end channels; a front end command dispatcher communicatively coupled to the DMA having a command queue configured to hold a number of commands; wherein the command dispatcher is configured to process commands to optimize their distribution among the plurality of back end channels based on the number of commands then held in the command queue, and the front end DMA is configured to process respective payload associated with at least one command that involves more than one of the plurality of back end channels. - View Dependent Claims (45, 46, 47, 48, 49)
-
-
50. A method of processing a number of commands before distributing the number of commands among a plurality of back end channels, comprising:
-
receiving a number of commands from a host in an order; processing the number of commands to improve front end throughput, the processing comprising; re-ordering the commands; combining multiple commands into a single command; and
/ordeleting a command that involves a memory location determined to be overwritten by a subsequently-executed command without an intervening operation involving the memory location, wherein at least one of the number of commands is distributed to more than one back end channel. - View Dependent Claims (51, 52, 53, 54, 55, 56, 57)
-
-
58. A method of processing a number of commands, comprising:
-
receiving a number of commands from a host in an order; processing at least one command associated with payload involving more than one of the plurality of back end channels. - View Dependent Claims (59, 60, 61, 62, 63, 64, 65, 66, 67, 68)
-
Specification