IP Library Granted Patent US 11,366,753
Granted Patent B2
US 11,366,753 · App. 16/525,105 · Granted Jun 21, 2022

Controlling performance of a solid state drive

Inventors: Ka-Ming Keung (San Jose, CA); Dung Viet Nguyen (San Jose, CA)
Assignee: Marvell Asia Pte Ltd
G06F12/0646G06F3/064G06F3/0613G06F3/0679G06F12/0246G11C11/409
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 11,366,753
App. No.
16/525,105
Granted
Jun 21, 2022
Kind
B2
Abstract

A storage access request to access a solid state drive (SSD) is received. A storage access timer is set with a time duration, where the time duration is based on a desired performance of the SSD. A non-volatile memory command associated with the storage access request is sent to non-volatile memory. The storage access timer is started. A determination is made whether the non-volatile memory completed execution of the non-volatile memory command after the storage access timer indicates that the time duration elapsed. An indication that the storage access request is complete is sent to a host if the non-volatile memory completed execution of the non-volatile memory command. Alternatively, the storage access timer is reset with the time duration if the non-volatile memory has not completed execution of the non-volatile memory command.

Claims (70)

1. A method, comprising:

selecting a time duration based on i) a type of a non-volatile memory of a solid state drive (SSD) and ii) a desired performance of the SSD, the selected time duration associated with a time duration for accessing the SSD;

receiving a storage access request to access the SSD;

setting a non-volatile memory access timer with the selected time duration;

sending a non-volatile memory command associated with the storage access request to non-volatile memory;

starting the non-volatile memory access timer;

waiting for the non-volatile memory access timer to indicate that the selected time duration has elapsed before polling the non-volatile memory to determine whether the non-volatile memory completed execution of the non-volatile memory command, the polling being responsive to the non-volatile memory access timer indicating that the selected time duration has elapsed;

providing an indication that the storage access request is complete in response to the polling indicating that the non-volatile memory completed execution of the non-volatile memory command; and

resetting the non-volatile memory access timer in response to the polling indicating that the non-volatile memory has not completed execution of the non-volatile memory command.

2. The method of claim 1 , wherein the non-volatile memory command is a read, write, or erase operation and a type of the received storage access request is a read, write, or erase request; and

wherein selecting the time duration is further based on the type of the received storage access request.

3. The method of claim 1 , wherein the non-volatile memory access timer includes a wait timer and a status polling timer;

wherein setting the non-volatile memory access timer with the selected time duration comprises setting the wait timer with the selected time duration;

wherein resetting the non-volatile memory access timer comprises resetting the status polling timer with a polling time duration associated with the status polling timer; and

wherein the polling time duration is adjusted each time the status polling timer is reset.

4. The method of claim 1 , wherein the selected time duration is a wait time duration until a status polling is sent to the non-volatile memory to determine if execution of the non-volatile memory command is complete;

wherein resetting the non-volatile memory access timer comprises resetting the non-volatile memory access timer with a polling time duration until another status polling is sent to the non-volatile memory to determine if execution of the non-volatile memory command is complete; and

wherein the polling time duration is adjusted for different types of non-volatile memory commands.

5. The method of claim 1 , further comprising receiving a configuration command that includes a time duration field;

wherein setting the non-volatile memory access timer with the selected time duration comprises setting the time duration based on a time duration value in the time duration field.

6. The method of claim 1 , wherein selecting the time duration is further based on one or more of a type of the received storage access request and a configuration of the SSD.

7. The method of claim 1 , wherein selecting the time duration comprises selecting an increased time duration with respect to a previously set time duration to increase time to perform the storage request.

8. A non-transitory computer-readable medium storing instructions that, when executed by one or more processors, cause the one or more processors to at least:

select a time duration based on i) a type of a non-volatile memory of a solid state drive (SSD) and ii) a desired performance of the SSD, the selected time duration associated with a time duration for accessing the SSD;

receive a storage access request to access the SSD;

set a non-volatile memory access timer with the selected time duration;

send a non-volatile memory command associated with the storage access request to non-volatile memory;

start the non-volatile memory access timer;

wait for the non-volatile memory access timer to indicate that the selected time duration has elapsed before polling the non-volatile memory to determine whether the non-volatile memory completed execution of the non-volatile memory command, the polling being responsive to the non-volatile memory access timer indicating that the selected time duration has elapsed;

provide an indication that the storage access request is complete in response to the polling indicating that the non-volatile memory completed execution of the non-volatile memory command; and

reset the non-volatile memory access timer in response to the polling indicating that the non-volatile memory has not completed execution of the non-volatile memory command.

9. The non-transitory computer-readable medium of claim 8 , wherein the non-volatile memory command is a read, write, or erase operation and a type of the received storage access request is a read, write, or erase request; and

wherein the instructions for selecting the time duration comprise instructions for selecting the time duration further based on the type of the received storage access request.

10. The non-transitory computer-readable medium of claim 8 , wherein the non-volatile memory access timer includes a wait timer and a status polling timer;

wherein the instructions for setting the non-volatile memory access timer comprise instructions for setting the wait timer with the selected time duration;

wherein the instructions for resetting the non-volatile memory access timer comprise instructions for resetting the status polling timer with a polling time duration associated with the status polling timer; and

wherein the non-transitory computer-readable medium further instructions that, when executed One Or more processors, cause the one or more processors to adjust the polling time duration each time the status polling timer is reset.

11. The non-transitory computer-readable medium of claim 8 , wherein the selected time duration is a wait time duration until a status polling is sent to the non-volatile memory to determine if execution of the non-volatile memory command is complete;

wherein the instructions for setting the non-volatile memory access timer comprise instructions for setting the non-volatile memory access timer withe the selected time duration;

wherein the instructions for resetting the non-volatile memory access timer comprise instructions for resetting the non-volatile memory access with a polling time duration until another status polling is sent to the non-volatile memory to determine if execution of the non-volatile memory command is complete; and

wherein the non-transitory computer-readable medium further instructions that, when executed One Or more processors, cause the one or more processors to adjust the polling time duration for different types of non-volatile memory commands.

12. The non-transitory computer-readable medium of claim 8 , further storing instructions that, when executed by one or more processors, cause the one or more processors to;

receive a configuration command that includes a time duration field;

wherein the instructions for setting the non-volatile memory access timer with a time duration comprises instructions for setting the time duration based on a time duration value in the time duration field.

13. The non-transitory computer-readable medium of claim 8 , wherein the instructions for selecting the time duration comprise instructions for selecting the time duration further based on one or more of a type of the received storage access request and a configuration of the SSD.

14. The non-transitory computer-readable medium of claim 8 , wherein the instructions for selecting the time duration comprise instructions for selecting an increased time duration with respect to a previously set time duration to increase time to perform the storage request.

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

an SSD controller having a non-volatile memory access timer;

a non-volatile memory;

instructions stored in memory of the SSD controller and that, when executed by one or more processors of the SSD controller, cause the SSD controller to at least:

select a time duration based on i) a type of a non-volatile memory and ii) a desired performance of the SSD, the selected time duration associated with a time duration for accessing the SSD;

receive a storage access request to access the SSD;

set the non-volatile memory access timer with time duration;

send a non-volatile memory command associated with the storage access request to the non-volatile memory;

start the non-volatile memory access timer;

wait for the non-volatile memory access timer to indicate that the selected time duration has elapsed before polling the non-volatile memory to determine whether the non-volatile memory completed execution of the non-volatile memory command, the polling being responsive to the non-volatile memory access timer indicating that the selected time duration has elapsed;

provide an indication that the storage access request is complete in response to the polling indicating that the non-volatile memory completed execution of the non-volatile memory command; and

reset the non-volatile memory access response to the polling indicating that the non-volatile memory has not completed execution of the non-volatile memory command.

16. The SSD of claim 15 , wherein the non-volatile memory command is a read, write, or erase operation and the type of the received storage access request is a read, write, or erase request; and

wherein the instructions for selecting the time duration comprise instructions for selecting the time duration further based on the type of the received storage access request.

17. The SSD of claim 15 , wherein the non-volatile memory access timer includes a wait timer and a status polling timer;

wherein the instructions for setting the non-volatile memory access time comprise instructions for setting the wait timer with the selected time duration;

wherein the instructions for resetting the non-volatile memory access timer comprise instructions for resetting the status polling timer with a polling time duration associated with the status polling timer; and

wherein the memory of the SSD controller further stores instructions that, when executed by one or more processors, cause the one or more processors to adjust the polling time duration each time the status polling timer is reset.

18. The SSD of claim 15 , wherein the time duration is a wait time duration until a status polling is sent to the non-volatile memory to determine if execution of the non-volatile memory command is complete;

wherein the instructions for setting the non-volatile memory access timer comprise instructions for setting the non-volatile memory access timer with the selected time duration;

wherein the instructions for resetting the non-volatile memory access timer comprise instructions for resetting the non-volatile memory access timer with a polling time duration until another status polling is sent to the non-volatile memory to determine if execution of the non-volatile memory command is complete; and

wherein the memory of the SSD controller further stores instructions that, when executed by one or more processors, cause the one or more processors to adjust the polling time duration for different types of non-volatile memory commands.

19. The SSD of claim 15 , wherein the instructions for selecting the time duration comprise instructions for selecting the time duration further based on one or more of a type of the received storage access request and a configuration of the SSD.

20. The SSD of claim 15 , wherein the instructions for selecting the time duration comprise instructions for selecting an increased time duration with respect to a previously set time duration to increase time to perform the storage request.

Assignments (8)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 16, 2020
From: CAVIUM INTERNATIONAL
To: MARVELL ASIA PTE, LTD.
Reel/Frame 053475/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 20, 2020
From: MARVELL INTERNATIONAL LTD.
To: CAVIUM INTERNATIONAL
Reel/Frame 052918/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 17, 2020
From: MARVELL WORLD TRADE LTD.
To: MARVELL INTERNATIONAL LTD.
Reel/Frame 051830/0139 →
LICENSE Recorded Jan 3, 2020
From: MARVELL WORLD TRADE LTD.
To: MARVELL INTERNATIONAL LTD.
Reel/Frame 051408/0619 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 3, 2020
From: MARVELL SEMICONDUCTOR, INC.
To: MARVELL INTERNATIONAL LTD.
Reel/Frame 051408/0537 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 3, 2020
From: MARVELL INTERNATIONAL LTD.
To: MARVELL WORLD TRADE LTD.
Reel/Frame 051408/0577 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 6, 2019
From: KEUNG, KA-MING
To: MARVELL SEMICONDUCTOR, INC.
Reel/Frame 051201/0314 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 6, 2019
From: NGUYEN, DUNG VIET
To: MARVELL SEMICONDUCTOR, INC.
Reel/Frame 051201/0418 →
Continuity (2)
Provisional Application 62712804 · Jul 31, 2018
Related Publication 20200042443A1 · Feb 6, 2020