IP Library Granted Patent US 10,331,351
Granted Patent B2
US 10,331,351 · App. 14/680,614 · Granted Jun 25, 2019

Memory controllers, memory systems, solid state drives and methods for processing a number of commands

Inventors: Mehdi Asnaashari (Danville, CA); Yu-Song Liao (San Jose, CA); Jui-Yao Yang (San Jose, CA); Siamack Nemazie (Los Altos Hills, CA)
Assignee: Micron Technology, Inc.
G06F3/061G06F3/067G06F3/0659G06F3/0679G06F3/0688G06F13/161G06F13/28
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,331,351
App. No.
14/680,614
Granted
Jun 25, 2019
Kind
B2
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.

Claims (47)

1. A solid state drive, comprising:

a plurality of flash memory devices;

a memory controller, comprising:

a plurality of back end channels, each back end channel communicatively coupled to a different flash memory device of the plurality of flash 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; and

re-order the number of commands,

wherein the command dispatcher is configured to:

process commands to modify their distribution among the plurality of back end channels based, at least in part, on the number of commands in the command queue by selectively combining re-ordered commands to logically adjacent memory locations associated with the number of the plurality of memory devices such that fewer commands are sent to achieve a same net read from the plurality of memory devices in order to economize distribution of the commands among the plurality of back end channels; and

process commands by deleting commands that involve a memory location that will be overwritten by a subsequently-executed command of the number of commands without an intervening operation involving the memory location.

2. The solid state drive of claim 1 , wherein the front end DMA is configured to process a respective payload associated with at least one command that involves more than one of the plurality of back end channels.

3. The solid state drive of claim 1 , including a Serial Advanced Technology Attachment (SATA) interface communicatively coupled to the memory controller, the SATA interface being configured to communicate with a host.

4. The solid state drive of claim 1 , wherein each of the plurality of back end channels is communicatively coupled to a respective one of the plurality of memory devices.

5. The solid state drive of claim 4 , wherein the plurality of flash memory devices comprises eight NAND flash memory devices.

6. The solid state device of claim 4 , wherein the plurality of back end channels comprises eight back end channels.

7. The solid state drive of claim 1 , wherein the command dispatcher is configured to process commands on a front end of the controller to optimize their distribution to a back end of the controller by selectively reordering commands, and/or selectively deleting commands.

8. The solid state drive of claim 7 , wherein each of the plurality of back end channels is configured to further process respectively received commands to expedite the execution of the respectively received commands by selectively reordering received commands, selectively combining received commands, and/or selectively deleting commands.

9. 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 and each corresponding to a different flash memory device among the plurality of flash memory devices;

a front end direct memory access (DMA) communicatively coupled to the plurality of back end channels; and

a front end command dispatcher communicatively coupled to the front end DMA having a command queue configured to hold a number of commands;

wherein the front end DMA is configured to:

receive the number of commands in a particular order;

re-order the number of commands; and

process a respective payload associated with at least one command of the number of commands; and

wherein the command dispatcher is configured to process the number of re-ordered commands to optimize their distribution among the plurality of back end channels by modifying the particular order of the number of commands,

wherein the command dispatcher is configured to selectively combine commands that involve a memory location that will be overwritten by a subsequently-executed command of the number of commands without an intervening operation involving the memory location to logically adjacent memory locations of the number of the plurality of memory devices such that fewer commands are sent to achieve a same net read from the plurality of memory devices in order to economize distribution of the commands among the plurality of back end channels.

10. The solid state drive of claim 9 , wherein the command dispatcher is configured to process the number of commands in response to a respective channel buffer of at least one of the plurality of back end channels being full.

11. The solid state drive of claim 9 , wherein the command dispatcher is configured to optimize distribution of the number of commands by combining at least two commands of the number of commands in response to determining that the at least two commands of the number of commands are for a same operation.

12. The solid state drive of claim 11 , wherein the at least two commands of the number of commands involve two or more logically overlapping memory locations.

13. The solid state drive of claim 11 , wherein the at least two commands of the number of commands involve two or more logically adjacent memory locations.

14. The solid state drive of claim 12 , wherein the two or more logically adjacent memory locations are associated with a same back end channel.

15. A method performed using a solid state drive comprising a plurality of flash memory devices and a flash memory controller, comprising:

receiving a number of commands to a front end direct memory access (DMA) from a command queue in an order;

re-ordering the number of commands;

processing a respective payload associated with the number commands with the front end DMA; and

processing the number of commands to:

optimize a distribution of the number of re-ordered commands among a plurality of back end channels corresponding to different memory devices by selectively combining commands such that fewer commands accomplish a same net change to a memory device connected to the plurality of back end channels in order to economize distribution of the commands among the plurality of back end channels; and

optimize a distribution of the number of re-ordered commands among a plurality of back end channels corresponding to different memory devices by selectively combining commands that involve a memory location that will be overwritten by a subsequently-executed command of the number of commands without an intervening operation involving the memory location.

16. The method of claim 15 , wherein the number of commands involve more than one of the plurality of back end channels.

17. The method of claim 15 , comprising processing the number of commands to optimize their distribution based on the number of commands held in the command queue.

18. The method of claim 15 , comprising processing the number of commands on a front end of a memory controller to optimize their distribution to a back end of the controller by selectively reordering commands, selectively combining commands, and/or selectively deleting commands.

19. The method of claim 15 , comprising configuring each back end channel of the plurality of back end channels to further process respectively received commands by selectively modifying the number of commands to expedite execution of the number of commands.

20. The method of 19 , wherein modifying the number of commands includes selectively reordering received commands, selectively combining received commands, and/or selectively deleting received commands.

Assignments (8)
RELEASE OF SECURITY INTEREST Recorded Nov 12, 2019
From: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: MICRON TECHNOLOGY, INC.; MICRON SEMICONDUCTOR PRODUCTS, INC.
Reel/Frame 051028/0001 →
RELEASE OF SECURITY INTEREST Recorded Oct 9, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
To: MICRON TECHNOLOGY, INC.
Reel/Frame 050937/0001 →
RELEASE OF SECURITY INTEREST Recorded Aug 23, 2018
From: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: MICRON TECHNOLOGY, INC.
Reel/Frame 047243/0001 →
SECURITY INTEREST Recorded Jul 13, 2018
From: MICRON TECHNOLOGY, INC.; MICRON SEMICONDUCTOR PRODUCTS, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 047540/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REPLACE ERRONEOUSLY FILED PATENT #7358718 WITH THE CORRECT PATENT #7358178 PREVIOUSLY RECORDED ON REEL 038669 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY INTEREST. Recorded Jun 8, 2017
From: MICRON TECHNOLOGY, INC.
To: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 043079/0001 →
PATENT SECURITY AGREEMENT Recorded Jun 2, 2016
From: MICRON TECHNOLOGY, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 038954/0001 →
SECURITY INTEREST Recorded May 12, 2016
From: MICRON TECHNOLOGY, INC.
To: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 038669/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 7, 2015
From: ASNAASHARI, MEHDI; LIAO, YU-SONG; YANG, JUI-YAO; NEMAZIE, SIAMACK
To: MICRON TECHNOLOGY, INC.
Reel/Frame 035350/0169 →
Continuity (6)
Division 14268125 · May 2, 2014
Division 13796851 · Mar 12, 2013
Division 13599594 · Aug 30, 2012
Division 13242535 · Sep 23, 2011
Division 12421093 · Apr 9, 2009
Related Publication 20150212734A1 · Jul 30, 2015
Cited By (1)
US 12,608,160