IP Library Granted Patent US 11,520,519
Granted Patent B2
US 11,520,519 · App. 16/513,470 · Granted Dec 6, 2022

Storage device and method of operating the same

Inventors: Byung Jun Kim (Seoul, KR); Eu Joon Byun (Yongin-si, KR); Hye Mi Kang (Seongnam-si, KR)
Assignee: SK hynix Inc.
G06F3/0656G06F3/0604G06F3/0652G06F3/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,520,519
App. No.
16/513,470
Granted
Dec 6, 2022
Kind
B2
Abstract

Provided herein may be a storage device and a method of operating the same. A memory controller may include a command processor configured to generate a flush command in response to a flush request and determine flush data chunks to be stored, a write operation controller configured to control memory devices to perform a first program operation of storing flush data chunks, and to perform a second program operation of storing data corresponding to a write request that is input later than the flush request, regardless of whether a response to the flush command has been provided to a host, and a flush response controller configured to, when the first program operation is completed, provide a response to the flush command to the host depending on whether responses to flush commands, input earlier than the flush command, have been provided to the host.

Claims (32)

1. A memory controller for controlling a plurality of memory devices, comprising:

a command processor configured to generate a flush command based on a flush request from a host and determine, among write data stored in a buffer, flush data chunks to be written to one or more of the plurality of memory devices based on the flush command;

a write operation controller configured to control the plurality of memory devices to perform a first program operation to write the flush data chunks to the plurality of memory devices in response to the flush command while program operations for previously queued flush commands that are input earlier than the flush command are performed, and to provide commands for a second program operation to write data corresponding to a write request that is input later than the flush request, regardless of whether a response to the flush command has been provided to the host; and

a flush response controller configured to, in response to an operation complete signal of the first program operation from the write operation controller, hold off on providing the response to the flush command to the host until responses to the previously queued flush commands are provided to the host, and to provide the response to the flush command to the host after the responses to the previously queued flush commands are provided to the host.

2. The memory controller according to claim 1 , wherein the command processor comprises a command information storage configured to store flush command information and information about the flush data chunks.

3. The memory controller according to claim 2 , wherein the command processor generates a write command corresponding to a write request received from the host and stores the write command in the command information storage.

4. The memory controller according to claim 1 , wherein the command processor stores the write data in the buffer while the first program operation is being performed.

5. The memory controller according to claim 1 , wherein the flush request is a request for writing, to the plurality of memory devices, data corresponding to a write command that is input earlier than the flush request.

6. The memory controller according to claim 1 , wherein the write operation controller is configured to, when the first program operation is completed, generate the operation complete signal for the flush command and provide the operation complete signal to the flush response controller.

7. The memory controller according to claim 1 , wherein the write operation controller controls the plurality of memory devices to perform the first program operation and the second program operation using an interleaving scheme.

8. The memory controller according to claim 7 , wherein:

the write operation controller comprises die maps respectively corresponding to the plurality of memory devices; and

each of the die maps indicates whether programming of the flush data chunks allocated to a corresponding one of the memory devices has been completed.

9. The memory controller according to claim 8 , wherein the write operation controller updates the die maps whenever a new flush request is input from the host.

10. The memory controller according to claim 1 , wherein the flush response controller comprises a flush information storage configured to store flush information indicating whether operations corresponding to the flush command and the previously queued flush commands input earlier than the flush command have been completed.

11. The memory controller according to claim 10 , wherein the flush response controller updates the flush information when the first program operation is completed.

12. The memory controller according to claim 10 , wherein the flush response controller determines, based on the flush information, whether all of operations for the previously queued flush commands input earlier than the flush command have been completed, and provides the response to the flush command to the host based on a result of the determination.

13. The memory controller according to claim 10 , wherein the flush response controller is configured to, when the response to the flush command is provided to the host, delete flush information related to the flush command from the flush information storage.

14. A method of operating a memory controller for controlling a plurality of memory devices, the method comprising:

generating a flush command based on a flush request from a host;

determining, among write data stored in a buffer, flush data chunks to be written to the plurality of memory devices based on the flush command;

controlling the plurality of memory devices to perform a first program operation to write the flush data chunks to the plurality of memory devices in response to the flush command while program operations for previously queued flush commands that are input earlier than the flush command are performed, and to provide commands for a second program operation to write data corresponding to a write request that is input later than the flush request, regardless of whether a response to the flush command has been provided to the host; and

in response to an operation complete signal of the first program operation, holding off on providing the response to the flush command to the host until responses to the previously queued flush commands are provided to the host, and to provide the response to the flush command to the host after the responses to the previously queued flush commands are provided to the host.

15. The method according to claim 14 , wherein the memory controller controls the plurality of memory devices to perform the first program operation and the second program operation using an interleaving scheme.

16. The method according to claim 14 , wherein the flush request is a request for writing, to the plurality of memory devices, data corresponding to a write command that is input earlier than the flush request, and wherein the method further comprises providing the response to the flush command to the host after the responses to the previously queued flush commands are provided to the host.

17. The method according to claim 14 , further comprising checking whether the first program operation has been completed whenever a new flush request is input from the host, before providing the response to the flush command to the host.

18. A method of performing program operations on a plurality of memory devices, the method comprising:

generating a flush command based on receiving, from a host, a flush request and determining, among write data stored in a buffer, flush data chunks to be written to the plurality of memory devices based on the flush command;

controlling the plurality of memory devices to perform a first program operation to write the flush data chunks to the plurality of memory devices in response to the flush command while program operations for previously queued flush commands are performed, and to provide commands for a second program operation to write data corresponding to a write request that is input later than the flush request, regardless of whether a response to the flush command has been provided to the host;

looking up, from a flush information storage, the previously queued flush commands and a status of the previously queued flush commands;

in response to an operation complete signal of the first program operation, holding off on sending the response to the flush command to the host until responses to the previously queued flush commands are provided to the host; and

sending the response to the flush command to the host after the responses to the previously queued flush commands are provided to the host.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 16, 2019
From: KIM, BYUNG JUN; BYUN, EU JOON; KANG, HYE MI
To: SK HYNIX INC.
Reel/Frame 049769/0254 →
Priority Claims (1)
KR 10-2018-0160246 · Dec 12, 2018 · national
Continuity (1)
Related Publication 20200192599A1 · Jun 18, 2020
Cited By (1)
US 12,579,090