IP Library Granted Patent US 10,635,352
Granted Patent B2
US 10,635,352 · App. 15/976,456 · Granted Apr 28, 2020

Distributed flash interface module processing

Inventors: Amir Shaharabany (Kochav Yair, IL); Yoav Markus (Tel Aviv, IL); Opher Lieber (Hadera, IL)
Assignee: WESTERN DIGITAL TECHNOLOGIES, INC.
G06F3/0659G06F3/0604G06F3/0679
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,635,352
App. No.
15/976,456
Granted
Apr 28, 2020
Kind
B2
Abstract

Aspects of the disclosure provide for distributed flash interface module (FIM) processing in a solid state drive (SSD). Methods and apparatus lock a queue and retrieve a command from the queue. The command indicates an operation to be executed in conjunction with one or more non-volatile (NVM) dies of the SSD. The methods and apparatus then lock a NVM interface corresponding to the one or more NVM dies, determine whether the operation is a transfer operation, and execute the operation using the locked NVM interface according to whether the operation is the transfer operation. When the operation is determined to be the transfer operation, the queue is unlocked to allow execution of a second operation from the queue by a second controller in parallel with the operation executed by the controller. Thereafter, the NVM interface is unlocked after execution of the operation is complete.

Claims (87)

1. A method of performing an operation at a controller, the operation related to one or more non-volatile memory (NVM) dies of a solid state drive (SSD), the method comprising:

locking a queue to retrieve a first operation;

retrieving the first operation from the queue to be executed in conjunction with one or more NVM dies;

determining whether the first operation is a transfer operation; and

executing the first operation in either a parallel manner or a serial manner with a second operation from the queue to be executed by a second controller according to whether the first operation is the transfer operation, wherein the executing the first operation includes:

locking a NVM interface corresponding to the one or more NVM dies, wherein the first operation is executed using the locked NVM interface, and

unlocking the NVM interface after execution of the first operation is complete.

2. The method of claim 1 ,

wherein when the first operation is determined to be the transfer operation, the executing the first operation includes unlocking the queue to allow execution of the second operation from the queue by the second controller, wherein the first operation is executed in the parallel manner with the second operation.

3. The method of claim 1 ,

wherein when the first operation is determined to not be the transfer operation, the executing the first operation includes maintaining a lock on the queue to prevent execution of the second operation from the queue by the second controller while the first operation is executed by the controller, wherein the first operation is executed in the serial manner with the second operation.

4. The method of claim 1 ,

wherein the queue is locked to facilitate exclusive usage of the queue to execute the first operation when the first operation is determined to not be the transfer operation, and

wherein the NVM interface is locked to facilitate exclusive usage of the NVM interface to execute the first operation.

5. The method of claim 1 ,

wherein the NVM interface is one of at least two NVM interfaces of the SSD via which the first operation can be executed, and

wherein an identity of the NVM interface to lock is indicated by the first operation.

6. The method of claim 1 , wherein when the first operation is determined to not be the transfer operation, the first operation is at least one of:

a die selection operation;

a programming operation;

a sense operation;

a read die status operation;

an erase operation; or

a latch move operation.

7. The method of claim 1 , wherein the first operation is executed in the parallel manner with the second operation when the second operation does not involve accessing the one or more NVM dies.

8. A solid state drive (SSD), comprising:

one or more non-volatile memory (NVM) dies;

a queue;

a NVM interface corresponding to the one or more NVM dies; and

a controller communicatively coupled to a host device, the one or more NVM dies, the queue, and the NVM interface, wherein the controller is configured to:

lock the queue to retrieve a first operation,

retrieve the first operation from the queue to be executed in conjunction with the one or more NVM dies,

determine whether the first operation is a transfer operation,

execute the first operation in either a parallel manner or a serial manner with a second operation from the queue to be executed by a second controller according to whether the first operation is the transfer operation,

lock the NVM interface corresponding to the one or more NVM dies, wherein the first operation is executed using the locked NVM interface, and

unlock the NVM interface after execution of the first operation is complete.

9. The solid state drive of claim 8 , wherein the first operation corresponds to a first set of dies of the one or more NVM dies and the second operation corresponds to a second set of dies of the one or more NVM dies, and wherein the first set of dies and the second set of dies are mutually exclusive.

10. The solid state drive of claim 8 , wherein when the first operation is determined to be the transfer operation, the controller configured to execute the first operation is further configured to:

unlock the queue to allow execution of the second operation from the queue by the second controller; and

execute the first operation in the parallel manner with the second operation.

11. The solid state drive of claim 8 , wherein when the first operation is determined to not be the transfer operation, the controller configured to execute the operation is further configured to:

maintain a lock on the queue to prevent execution of the second operation from the queue by the second controller while the first operation is executed by the controller; and

execute the first operation in the serial manner with the second operation.

12. The solid state drive of claim 8 , wherein:

the controller is configured to lock the queue to facilitate exclusive usage of the queue to execute the first operation when the first operation is determined to not be the transfer operation, and

the controller is configured to lock the NVM interface to facilitate exclusive usage of the NVM interface to execute the first operation.

13. The solid state drive of claim 8 ,

wherein the NVM interface is one of at least two NVM interfaces of the SSD via which the first operation can be executed, and

wherein an identity of the NVM interface to lock is indicated by the first operation.

14. The solid state drive of claim 8 , wherein when the first operation is determined to not be the transfer operation, the first operation is at least one of:

a die selection operation;

a programming operation;

a sense operation;

a read die status operation;

an erase operation; or

a latch move operation.

15. An apparatus for performing an operation at a controller of the apparatus, the operation related to one or more non-volatile memory (NVM) dies of the apparatus, the apparatus comprising:

means for locking a queue to retrieve a first operation;

means for retrieving the first operation from the queue to be executed in conjunction with one or more NVM dies;

means for determining whether the first operation is a transfer operation; and

means for executing the first operation in either a parallel manner or a serial manner with a second operation from the queue to be executed by a second controller according to whether the first operation is the transfer operation, wherein the means for executing the first operation is configured to:

lock a NVM interface corresponding to the one or more NVM dies, wherein the first operation is executed using the locked NVM interface, and

unlock the NVM interface after execution of the first operation is complete.

16. The apparatus of claim 15 , wherein when the first operation is determined to be the transfer operation, the means for executing the first operation is configured to:

unlock the queue to allow execution of the second operation from the queue by the second controller; and

execute the first operation in the parallel manner with the second operation.

17. The apparatus of claim 15 , wherein when the first operation is determined to not be the transfer operation, the means for executing the first operation is configured to:

maintain a lock on the queue to prevent execution of the second operation from the queue by the second controller while the first operation is executed by the controller; and

execute the first operation in the serial manner with the second operation.

18. The apparatus of claim 15 , wherein the transfer operation includes at least one of:

a transfer of data from the one or more NVM dies to a buffer external to the apparatus; or

a transfer of data from the buffer external to the apparatus to the one or more NVM dies.

19. A method of performing an operation at a controller of a solid state drive (SSD), the operation related to one or more non-volatile memory (NVM) dies of the SSD, the method comprising:

locking a queue;

retrieving a command from the queue, the command indicating an operation to be executed in conjunction with one or more NVM dies;

locking a NVM interface corresponding to the one or more NVM dies;

determining whether the operation is a transfer operation;

executing the operation using the locked NVM interface according to whether the operation is the transfer operation; and

unlocking the NVM interface after execution of the operation is complete.

20. The method of claim 19 , wherein when the operation is determined to be the transfer operation, the executing the operation includes unlocking the queue to allow execution of a second operation from the queue by a second controller, wherein the operation is executed in a parallel manner with the second operation.

21. The method of claim 19 , wherein when the operation is determined to not be the transfer operation, the executing the operation includes maintaining a lock on the queue to prevent execution of a second operation from the queue by a second controller while the operation is executed by the controller, wherein the operation is executed in a serial manner with the second operation.

22. The method of claim 19 ,

wherein the queue is locked to facilitate exclusive usage of the queue to execute the operation when the operation is detected to not be the transfer operation, and

wherein the NVM interface is locked to facilitate exclusive usage of the NVM interface to execute the operation.

23. The method of claim 19 ,

wherein the NVM interface is one of at least two NVM interfaces of the SSD via which the operation can be executed, and

wherein an identity of the NVM interface to lock is indicated by the operation.

Assignments (10)
PARTIAL RELEASE OF SECURITY INTERESTS Recorded Apr 25, 2025
From: JPMORGAN CHASE BANK, N.A., AS AGENT
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 071382/0001 →
SECURITY AGREEMENT Recorded Apr 25, 2025
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 071050/0001 →
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 052915 FRAME 0566 Recorded Feb 8, 2022
From: JPMORGAN CHASE BANK, N.A.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 059127/0001 →
SECURITY INTEREST Recorded Feb 6, 2020
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS AGENT
Reel/Frame 052915/0566 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 10, 2018
From: SHAHARABANY, AMIR; MARKUS, YOAV; LIEBER, OPHER
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 045770/0909 →