IP Library Granted Patent US 8,769,232
Granted Patent B2
US 8,769,232 · App. 13/080,800 · Granted Jul 1, 2014

Non-volatile semiconductor memory module enabling out of order host command chunk media access

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,769,232
App. No.
13/080,800
Granted
Jul 1, 2014
Kind
B2
Abstract

A non-volatile semiconductor memory module is disclosed comprising a memory device and memory controller operably coupled to the memory device, wherein the memory controller is operable to receive a host command, split the host command into one or more chunks comprising a first chunk comprising at least one logical block address (LBA), and check the first chunk against an active chunk coherency list comprising one or more active chunks to determine whether the first chunk is an independent chunk, and ready to be submitted for access to the memory device, or a dependent chunk, and deferred access to the memory device until an associated dependency is cleared.

Claims (42)

1. A non-volatile semiconductor memory module comprising:

a memory device; and

a memory controller operably coupled to the memory device, the memory controller operable to:

receive a command from a host;

split the command into one or more chunks, the one or more chunks comprising a first chunk associated with at least one logical block address (LBA);

check the first chunk against an active chunk coherency list including entries associated with each of one or more active chunks to determine whether the first chunk overlaps one of the one or more active chunks at least in part by determining whether the first chunk accesses a same Logical Chunk Number (LCN) as one of the one or more active chunks;

when it is determined that the first chunk does not overlap one of the one or more active chunks, submit the first chunk to the memory device; and

when it is determined that the first chunk overlaps one of the one or more active chunks, store a forward dependency pointer identifying the first chunk in an entry associated with the overlapped chunk, and defer submission of the first chunk to the memory device until an associated dependency link is cleared.

2. The non-volatile semiconductor memory module as recited in claim 1 , wherein the entries of the active chunk coherency list each include a state indication field indicating a state associated with the respective chunk.

3. The non-volatile semiconductor memory module as recited in claim 1 , wherein the memory controller is further operable to clear the dependency link after the overlapped chunk has completed execution in the memory device.

4. The non-volatile semiconductor memory module as recited in claim 1 , wherein the forward dependency pointer triggers submission of the first chunk to the memory device after the overlapped chunk has completed execution in the memory device.

5. The non-volatile semiconductor memory module as recited in claim 1 , wherein the memory controller is further operable to determine that the first chunk overlaps one of the one or more active chunks when at least one LBA associated with the first chunk is the same as at least one LBA associated with the active chunk.

6. The non-volatile semiconductor memory module as recited in claim 1 , wherein the memory controller comprises a buffer, and wherein the controller is further operable to store the first chunk in the buffer until the dependency link is cleared.

7. The non-volatile semiconductor memory module as recited in claim 1 , wherein each of the one or more active chunks associated with entries in the active chunk coherency list have not completed execution in the memory device.

8. The non-volatile semiconductor memory module as recited in claim 1 , wherein the one or more chunks further comprise a second chunk, wherein the second chunk is associated with at least one LBA, and wherein the memory controller is operable to:

determine that the second chunk does not overlap any of the one or more active chunks associated with entries in the active chunk coherency list; and

submit the second chunk to the memory device.

9. The non-volatile semiconductor memory module as recited in claim 1 , wherein the memory controller is further operable to check the first chunk against the one or more active chunks associated with entries in the active chunk coherency list in order from latest to oldest active chunk until an overlapped active chunk is identified or all of the one or more active chunks have been checked.

10. The non-volatile semiconductor memory module as recited in claim 1 , wherein each of the one or more active chunks associated with entries in the active chunk coherency list is associated with a previously received host command.

11. The non-volatile semiconductor memory module as recited in claim 1 , wherein the first chunk has a size that corresponds to at least one programming unit of flash memory.

12. The non-volatile semiconductor memory module as recited in claim 11 , wherein the at least one programming unit corresponds to a page of flash memory.

13. The non-volatile semiconductor memory module as recited in claim 1 , wherein the memory device comprises a flash memory device.

14. A method of operating a non-volatile semiconductor memory module comprising a memory device, the method comprising:

receiving a command from a host;

splitting the command into one or more chunks, the one or more chunks comprising a first chunk associated with at least one logical block address (LBA);

checking the first chunk against an active chunk coherency list including entries associated with each of one or more active chunks to determine whether the first chunk overlaps one of the one or more active chunks at least in part by determining whether the first chunk accesses a same Logical Chunk Number (LCN) as one of the one or more active chunks;

when it is determined that the first chunk does not overlap one of the one or more active chunks, submitting the first chunk to the memory device; and

when it is determined that the first chunk overlaps one of the one or more active chunks, storing a forward dependency pointer identifying the first chunk in an entry associated with the overlapped chunk and deferring submission of the first chunk to the memory device until an associated dependency link is cleared.

15. The method as recited in claim 14 , wherein the entries of the active chunk coherency list each include a state indication field indicating a state associated with the respective chunk.

16. The method as recited in claim 14 , further comprising clearing the dependency link after the overlapped chunk has completed execution in the memory device.

17. The method as recited in claim 14 , wherein the forward dependency pointer triggers submission of the first chunk to the memory device after the overlapped chunk has completed execution in the memory device.

18. The method as recited in claim 14 , further comprising determining that the first chunk overlaps one of the one or more active chunks when at least one LBA associated with the first chunk is the same as at least one LBA associated with the active chunk.

19. The method as recited in claim 14 , further comprising storing the first chunk in a buffer until the dependency link is cleared.

20. The method as recited in claim 14 , wherein each of the one or more active chunks associated with entries in the active chunk coherency list have not completed execution in the memory device.

21. The method as recited in claim 14 , wherein the one or more chunks further comprise a second chunk, wherein the second chunk is associated with at least one LBA, and further comprising:

determining that the second chunk does not overlap any of the one or more active chunks associated with entries in the active chunk coherency list; and

submitting the second chunk to the memory device.

22. The method as recited in claim 14 , further comprising checking the first chunk against the one or more active chunks associated with entries in the active chunk coherency list in order from latest to oldest active chunk until an overlapped active chunk is identified or all of the one or more active chunks have been checked.

23. The method as recited in claim 14 , wherein each of the one or more active chunks associated with entries in the active chunk coherency list is associated with a previously received host command.

24. The method as recited in claim 14 , wherein the first chunk has a size that corresponds to at least one programming unit of flash memory.

25. The method as recited in claim 24 , wherein the at least one programming unit corresponds to a page of flash memory.

26. The method as recited in claim 14 , wherein the memory device comprises a flash memory device.

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 - DDTL LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 067045/0156 →
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 →
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: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 038744/0281 →
SECURITY AGREEMENT Recorded May 17, 2016
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 038744/0481 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 6, 2011
From: SURYABUDI, DOMINIC S.; SYU, MEI-MAN L.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 026083/0023 →