IP Library Granted Patent US 11,748,027
Granted Patent B2
US 11,748,027 · App. 17/565,768 · Granted Sep 5, 2023

Storage system and method for avoiding clustering of reads during a program suspend

Inventors: Nagi Reddy Chodem (Bangalore, IN); Evangelos Vazaios (Bangalore, IN)
Assignee: Western Digital Technologies, Inc.
G06F3/0655G06F3/0611G06F3/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 11,748,027
App. No.
17/565,768
Granted
Sep 5, 2023
Kind
B2
Abstract

A storage system suspends an ongoing program operation to execute a read command. There is a limit on the number of times the storage system can suspend the program operation, and latencies occur for read commands that are received after the limit has been reached. To improve read quality of service, a blackout window is established that prevents the storage system from suspending the program operation for a period of time after the program operation resumes. The period of time can be chosen such that program suspensions are evenly distributed over the course of the program operation.

Claims (29)

1. A storage system comprising:

a memory; and

a controller coupled with the memory and configured to:

receive a read command while the memory is undergoing a program operation, wherein the program operation can be suspended a limited number of times;

calculating a period of time of a blackout window based on the limited number of times that the program operation can be suspended;

in response to the program operation not being suspended more than the limited number of times, suspend the program operation to execute the read command, wherein suspending the program operation instead of waiting for program operation to finish decreases read latency of the read command;

resume the program operation after executing the read command; and

limiting a maximum read latency of subsequent read commands by preventing the program operation from being suspended again for the period of time specified in the blackout window after the program operation resumes after a suspend, wherein the preventing causes suspends of the program operation to be evenly distributed over the program operation and prevents clustering of suspends during early stages of the program operation.

2. The storage system of claim 1 , wherein the program operation comprises a plurality of program pulses, and wherein the program operation is suspended during one of the program pulses.

3. The storage system of claim 2 , wherein the period of time is long enough to prevent the program operation from being suspended again until after a start of a next program pulse.

4. The storage system of claim 1 , wherein the period of time is determined based on at least one memory parameter.

5. The storage system of claim 1 , wherein the period of time is long enough to improve a read quality of service.

6. The storage system of claim 1 , wherein the memory comprises a quad-level cell memory.

7. The storage system of claim 1 , wherein the memory comprises a three-dimensional memory.

8. In a memory of a storage system comprising a controller, a method comprising:

receiving a command from the controller to suspend a program operation to execute a read command, wherein the program operation can be suspended a limited number of times;

receiving a command from the controller to resume the program operation, wherein the command to resume the program operation provides the memory with a blackout window during which the memory is prevented from suspending the program operation again, wherein a period of time of the blackout window is based on the limited number of times that the program operation can be suspended; and

limiting a maximum read latency of a subsequent read command by preventing the program operation from being suspended again for the period of time specified in the blackout window after the program operation resumes after a suspend, wherein the preventing causes suspends of the program operation to be evenly distributed over the program operation and prevents clustering of suspends during early stages of the program operation.

9. The method of claim 8 , further comprising translating the period of time in the blackout window to an equivalent program and erase pulse count.

10. The method of claim 8 , wherein the program operation comprises a plurality of program pulses, the program operation is suspended during one of the program pulses, and the blackout window is long enough to prevent the program operation from being suspended again until after a start of a next program pulse.

11. The method of claim 8 , wherein the blackout window comprises an amount of time that accounts for a natural resume latency of the memory.

12. The method of claim 8 , wherein the blackout window comprises an amount of time in addition to a time representing a natural resume latency of the memory.

13. The method of claim 8 , wherein the blackout window is long enough to improve a read quality of service.

14. A storage system comprising:

a memory;

means for suspending a program operation to execute a read command, wherein the program operation can be suspended a limited number of times;

means for calculating a period of time of a blackout window based on the limited number of times that the program operation can be suspended;

means for suspending the program operation to execute a read command in response to the program operation not being suspended more than the limited number of times, wherein suspending the program operation instead of waiting for program operation to finish decreases read latency of the read command; and

means for limiting a maximum read latency of subsequent read commands by preventing the program operation from being suspended again for the period of time specified in the blackout window after the program operation resumes after a suspend, wherein the preventing causes suspends of the program operation to be evenly distributed over the program operation and prevents clustering of suspends during early stages of the program operation.

Assignments (8)
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 30, 2021
From: CHODEM, NAGI REDDY; VAZAIOS, EVANGELOS
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 058508/0118 →