IP Library Granted Patent US 8,924,627
Granted Patent B2
US 8,924,627 · App. 13/073,638 · Granted Dec 30, 2014

Flash memory device comprising host interface for processing a multi-command descriptor block in order to exploit concurrency

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 8,924,627
App. No.
13/073,638
Granted
Dec 30, 2014
Kind
B2
Abstract

A flash memory device is disclosed comprising a flash controller for accessing a first flash memory over a first channel and a second flash memory over a second channel. A multi-command descriptor block is received from a host, wherein the multi-command descriptor block comprises identifiers for identifying a plurality of access commands that the host is preparing to request. A first group of the access commands are selected to execute concurrently and a second group of the access commands are selected to execute concurrently. The first group of access commands are received from the host and executed concurrently by accessing at least the first and second flash memories concurrently. The second group of access commands are received from the host and executed concurrently by accessing at least the first and second flash memories concurrently.

Claims (69)

1. A flash memory device comprising:

a plurality of flash memories, including a first flash memory and a second flash memory;

a flash controller for accessing the first flash memory over a first channel and the second flash memory over a second channel; and

a host interface operable to:

receive a multi-command descriptor block from a host, wherein the multi-command descriptor block comprises identifiers for identifying a plurality of access commands that the host is preparing to request;

select a first group of the access commands to execute concurrently and select a second group of the access commands to execute concurrently;

after receiving the multi-command descriptor block, receive the first group of access commands from the host;

execute the first group of access commands concurrently by accessing at least the first and second flash memories concurrently;

after receiving the multi-command descriptor block, receive the second group of access commands from the host; and

execute the second group of access commands concurrently by accessing at least the first and second flash memories concurrently.

2. The flash memory device as recited in claim 1 , wherein:

the first group of access commands comprises a first group of write commands; and

the second group of access commands comprises a second group of write commands.

3. The flash memory device as recited in claim 2 , wherein the host interface is further operable to:

receive the first group of write commands from the host including first write data; and

after receiving the first group of write commands and first write data, concurrently write the first write data to at least the first and second flash memories.

4. The flash memory device as recited in claim 3 , wherein the host interface is further operable to receive the second group of write commands from the host including second write data concurrently with writing the first write data to at least the first and second flash memories.

5. The flash memory device as recited in claim 4 , wherein after concurrently writing the first write data to at least the first and second flash memories, the host interface is further operable to concurrently write the second write data to at least the first and second flash memories.

6. The flash memory device as recited in claim 5 , wherein after concurrently writing the second write data to at least the first and second flash memories, the host interface is further operable to notify the host of an execution status of the access commands identified by the multi-command descriptor block.

7. The flash memory device as recited in claim 1 , wherein:

the first group of access commands comprises a first group of read commands; and

the second group of access commands comprises a second group of read commands.

8. The flash memory device as recited in claim 7 , wherein the host interface is further operable to:

concurrently read first data from at least the first and second flash memories, wherein the first data corresponds to the first group of read commands;

receive the first group of read commands from the host; and

transfer the first data to the host.

9. The flash memory device as recited in claim 8 , wherein the host interface is further operable to receive the first group of read commands from the host concurrently with reading the first data from at least the first and second flash memories.

10. The flash memory device as recited in claim 9 , wherein:

after concurrently reading the first data from at least the first and second flash memories, the host interface is further operable to concurrently read second data from at least the first and second flash memories; and

the second data corresponds to the second group of read commands.

11. The flash memory device as recited in claim 1 , wherein:

the first group of access commands comprises at least one write command; and

the second group of access commands comprises at least one erase command.

12. The flash memory device as recited in claim 1 , wherein:

the first group of access commands comprises at least one read command; and

the second group of access commands comprises at least one erase command.

13. A method of operating a flash memory device comprising, the flash memory device comprising a plurality of flash memories, including a first flash memory and a second flash memory, and a flash controller for accessing the first flash memory over a first channel and the second flash memory over a second channel, the method comprising:

receiving a multi-command descriptor block from a host, wherein the multi-command descriptor block comprises identifiers for identifying a plurality of access commands that the host is preparing to request;

selecting a first group of the access commands to execute concurrently and selecting a second group of the access commands to execute concurrently;

after receiving the multi-command descriptor block, receiving the first group of access commands from the host;

executing the first group of access commands concurrently by accessing at least the first and second flash memories concurrently;

after receiving the multi-command descriptor block, receiving the second group of access commands from the host; and

executing the second group of access commands concurrently by accessing at least the first and second flash memories concurrently.

14. The method as recited in claim 13 , wherein:

the first group of access commands comprises a first group of write commands; and

the second group of access commands comprises a second group of write commands.

15. The method as recited in claim 14 , further comprising:

receiving the first group of write commands from the host including first write data; and

after receiving the first group of write commands and first write data, concurrently writing the first write data to at least the first and second flash memories.

16. The method as recited in claim 15 , further comprising receiving the second group of write commands from the host including second write data concurrently with writing the first write data to at least the first and second flash memories.

17. The method as recited in claim 16 , wherein after concurrently writing the first write data to at least the first and second flash memories, further comprising concurrently writing the second write data to at least the first and second flash memories.

18. The method as recited in claim 17 , wherein after concurrently writing the second write data to at least the first and second flash memories, further comprising notifying the host of an execution status of the access commands identified by the multi-command descriptor block.

19. The method as recited in claim 13 , wherein:

the first group of access commands comprises a first group of read commands; and

the second group of access commands comprises a second group of read commands.

20. The method as recited in claim 19 , further comprising:

concurrently reading first data from at least the first and second flash memories, wherein the first data corresponds to the first group of read commands;

receiving the first group of read commands from the host; and

transferring the first data to the host.

21. The method as recited in claim 20 , further comprising receiving the first group of read commands from the host concurrently with reading the first data from at least the first and second flash memories.

22. The method as recited in claim 21 , wherein:

after concurrently reading the first data from at least the first and second flash memories, further comprising concurrently reading second data from at least the first and second flash memories; and

the second data corresponds to the second group of read commands.

23. The method as recited in claim 13 , wherein:

the first group of access commands comprises at least one write command; and

the second group of access commands comprises at least one erase command.

24. The method as recited in claim 13 , wherein:

the first group of access commands comprises at least one read command; and

the second group of access commands comprises at least one erase command.

Assignments (13)
SECURITY AGREEMENT (SUPPLEMENTAL) Recorded Nov 14, 2024
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 069411/0208 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 11, 2024
From: SANDISK TECHNOLOGIES, INC.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 069168/0273 →
PATENT COLLATERAL AGREEMENT Recorded Aug 23, 2024
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS THE AGENT
Reel/Frame 068762/0494 →
CHANGE OF NAME Recorded Jun 27, 2024
From: SANDISK TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067982/0032 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 29, 2024
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067567/0682 →
PATENT COLLATERAL AGREEMENT - A&R LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 064715/0001 →
PATENT COLLATERAL AGREEMENT - DDTL LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 067045/0156 →
RELEASE OF SECURITY INTEREST AT REEL 038744 FRAME 0481 Recorded Feb 8, 2022
From: JPMORGAN CHASE BANK, N.A.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 058982/0556 →
RELEASE OF SECURITY INTEREST Recorded Mar 5, 2018
From: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 045501/0714 →
SECURITY AGREEMENT Recorded May 17, 2016
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 038722/0229 →
SECURITY AGREEMENT Recorded May 17, 2016
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 038744/0481 →
SECURITY AGREEMENT Recorded May 17, 2016
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 038744/0281 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 3, 2011
From: SYU, MEI-MAN L.; HORN, ROBERT L.; WILKINS, VIRGIL V.; SURYABUDI, DOMINIC S.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 026385/0249 →