IP Library Granted Patent US 10,540,115
Granted Patent B2
US 10,540,115 · App. 15/135,270 · Granted Jan 21, 2020

Controller adaptation to memory program suspend-resume

Inventors: Wei Zang (Fremont, CA); Chun Hok Ho (Foster City, CA)
Assignee: SK hynix Inc.
G06F3/0659G06F3/0611G06F3/0679G11C2029/0411
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,540,115
App. No.
15/135,270
Granted
Jan 21, 2020
Kind
B2
Abstract

Memory systems may include a memory including a plurality of dies, and a controller suitable for receiving a host read request during programming of one of the plurality of dies; determining a suspendable die among the plurality of dies based on a suspension threshold; and suspending the determined suspendable die and performing the received request.

Claims (51)

1. A memory system, comprising:

a memory device including a plurality of dies, each having a plurality of queues, die arbiters, each in communication with the plurality of queues of a corresponding die, channel arbiters, each in communication with at least two of the die arbiters, and a controller for controlling the memory device, wherein each of the die arbiters is configured to:

select a command from one of the plurality of queues of the corresponding die;

wherein each of the channel arbiters is configured to select a request from a particular die among the dies in communication with the corresponding channel arbiter;

wherein the controller is configured to:

program the selected one of the plurality of dies in response to the selected command;

receive a host read request on the selected die during the programming of the selected die;

suspend the programming on the selected die and perform the host read request when a suspension threshold for a current state of the selected die is met, the current state of the selected die being one of a suspend ready state in which the suspension threshold is calculated using a first set of parameters, one of which is representative of suspend overhead, and a resumed state in which the suspension threshold is calculated using a second set of parameters, one of which is representative of suspend-continue overhead, the suspension threshold being updated dynamically in accordance with the state of the selected die; and

continue the programming on the selected die, without suspending programming thereon, when the suspension threshold is not met;

wherein the controller includes a die suspend server to record and control the states of each of the plurality of dies,

wherein execution of the suspend and continue operations reduces read latency.

2. The memory system of claim 1 , wherein the controller is further configured to:

generate suspend and resume requests; and

insert the generated suspend and resume requests into a queue.

3. The memory system of claim 2 , wherein the controller is further configured to insert a suspend request into a head of the queue.

4. The memory system of claim 1 , wherein the first set of parameters includes a remaining program time and a program suspend latency time, and the suspension threshold for the selected die in the suspend ready state is determined to be satisfied when the remaining program time is greater than the program suspend latency time.

5. The memory system of claim 1 , wherein the second set of parameters includes a number of served read requests and a max suspended count, and the suspension threshold for the selected die in the resumed state is determined to be satisfied when the number of served read requests is less than the max suspended count.

6. The memory system of claim 1 , wherein the controller is further configured to calculate a remaining program time.

7. The memory system of claim 6 , wherein the remaining program time is calculated based on the state of the selected die.

8. A method, comprising:

selecting, using a die arbiter, among a plurality of die arbiters, a queue, among a plurality of queues of a die, among a plurality of dies of a memory to be programmed, and selecting a request of the die, using a channel arbiter, among a plurality of channel arbiters, each in communication with at least two of the die arbiters, to select a command from the selected queue of the selected die, the plurality of die arbiters, the plurality of channel arbiters and the plurality of dies being components of a memory system;

programming the selected one of the plurality of dies in response to the selected command;

receiving, with a controller of the memory system, a host read request on the selected die during programming of the selected die;

suspending the programming on the selected die and perform the host read request when a suspension threshold for a current state of the selected die is met, the current state of the selected die being one of a suspend ready state in which the suspension threshold is calculated using a first set of parameters, one of which is representative of suspend overhead, and a resume state in which the suspension threshold is calculated using a second set of parameters, one of which is representative of suspend-continue overhead, the suspension threshold being updated dynamically in accordance with the state of the selected die;

continuing the programming on the selected die, without suspending programming thereon, when the suspension threshold is not met; and

recording and controlling the states of each of the plurality of dies,

wherein execution of the suspending and continuing steps reduces read latency.

9. The method of claim 8 , further comprising:

generating suspend and resume requests; and

inserting the generated suspend and resume requests into a queue.

10. The method of claim 9 , further comprising inserting a suspend request into a head of the queue.

11. The method of claim 8 , wherein the first set of parameters includes a remaining program time and a program suspend latency time, and the suspension threshold for the selected die in the suspend ready state is determined to be satisfied when the remaining program time is greater than the program suspend latency time.

12. The method of claim 8 , wherein the second set of parameters includes a number of served read requests and a max suspended count, and the suspension threshold for the selected die in the resumed state is determined to be satisfied when the number of served read requests is less than the max suspended count.

13. The method of claim 8 , further comprising calculating a remaining program time.

14. The method of claim 13 , wherein the remaining program time is calculated based on the state of the selected die.

15. A memory device comprising:

a plurality of dies, each having a plurality of queues, die arbiters, each in communication with the plurality of queues of a corresponding dies, channel arbiters, each in communication with at least two of the die arbiters, and a controller for controlling the memory device;

each of the arbiters being configured to:

select a command from one of the plurality of queues of the corresponding die;

each of the channel arbiters being configured to select a request from a particular die among the dies in communication with the corresponding channel arbiter; and

the controller being configured to:

program the selected one of the plurality of dies in response to the selected program command;

receive a host read request on the selected die during the programming of the selected die;

suspend the programming on the selected die and perform the host read request when a suspension threshold for a current state of the selected die is met, the current state of the selected die being one of a suspend ready state in which the suspension threshold is calculated using a first set of parameters, one of which is representative of suspend overhead, and a resumed state in which the suspension threshold is calculated using a second set of parameters, one of which is representative of suspend-continue overhead, the suspension threshold being updated dynamically in accordance with the state of the selected die;

continue the programming on the selected die, without suspending programming thereon, when the suspension threshold is not met; and

record and control the states of each of the plurality of dies using a die suspend server,

wherein execution of the suspend and continue operations reduces read latency.

16. The memory device of claim 15 , wherein the first set of parameters includes a remaining program time and a program suspend latency time, and the suspension threshold for the selected die in the suspend ready state is determined to be satisfied when the remaining program time is greater than the program suspend latency time.

17. The memory device of claim 15 , wherein the second set of parameters includes a number of served read request and a max suspended count, and the suspension threshold for the selected die in the resumed state is determined to be satisfied when the number of served read requests is less than the max suspended count.

18. The memory device of claim 15 , wherein the controller is further configured to calculate a remaining program time.

19. The memory device of claim 18 , wherein the remaining program time is calculated based on the state of the selected die.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 16, 2019
From: ZANG, WEI
To: SK HYNIX MEMORY SOLUTIONS AMERICA INC.
Reel/Frame 051293/0091 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 11, 2019
From: HO, CHUN HOK
To: SK HYNIX MEMORY SOLUTIONS AMERICA INC.
Reel/Frame 051248/0477 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 15, 2017
From: SK HYNIX MEMORY SOLUTIONS INC.
To: SK HYNIX INC.
Reel/Frame 044899/0443 →
Continuity (2)
Provisional Application 62150700 · Apr 21, 2015
Related Publication 20160313946A1 · Oct 27, 2016