IP Library Granted Patent US 11,314,461
Granted Patent B2
US 11,314,461 · App. 16/658,386 · Granted Apr 26, 2022

Data storage device and operating method of checking success of garbage collection operation

Inventor: Dae Gon Cho (Gyeonggi-do, KR)
Assignee: SK hynix Inc.
G06F3/0679G06F3/0617G06F3/0653G06F2212/7205
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,314,461
App. No.
16/658,386
Granted
Apr 26, 2022
Kind
B2
Abstract

A data storage device may include a memory device including a plurality of memory blocks having a plurality of free memory blocks and a controller configured to control an operation of the memory device, wherein the controller performs a block allocation operation of allocating one or more free memory blocks among the plurality of free memory blocks as one or more programmable memory blocks, and performs a garbage collection (GC) error defense operation of checking whether a GC operation for the plurality of memory blocks has performed successfully, in response to the block allocation operation.

Claims (47)

1. A data storage device comprising:

a memory device including a plurality of memory blocks having a plurality of free memory blocks; and

a controller configured to control an operation of the memory device,

wherein the controller performs a block allocation operation of allocating one or more free memory blocks among the plurality of free memory blocks as one or more programmable memory blocks,

wherein the controller performs a garbage collection (GC) error defense operation in response to the block allocation operation, and

wherein the GC error defense operation includes:

an operation of determining whether a GC operation of the plurality of memory blocks has been performed successfully based on a maximum number of programmable memory blocks among the plurality of memory blocks and a GC count, and

wherein, the controller waits in an operation suspended state until a reset operation is performed by a host, responsive to a determination that the GC operation has not performed successfully.

2. The data storage device of claim 1 , further comprising a memory configured to store the GC count corresponding to a number of memory blocks erased by the GC operation.

3. The data storage device of claim 2 , wherein the memory is positioned in the controller.

4. The data storage device of claim 2 , wherein the controller stores a GC error defense module in the memory, the GC error defense module indicating a group of source codes performing the GC error defense operation.

5. The data storage device of claim 4 , wherein the controller executes the GC error defense module to perform the GC error defense operation, whenever performing the block allocation operation.

6. The data storage device of claim 5 , wherein, when the GC error defense module is executed, the controller determines whether a number of the plurality of free memory blocks is less than a threshold number,

wherein, when it is determined that the number of the plurality of free memory blocks is less than the threshold number, the controller checks whether the maximum number of the programmable memory blocks and the GC count are a value of 0,

wherein, when both of the maximum number of the programmable memory blocks and the GC count are a value of 0, the controller determines that the GC operation has not performed successfully.

7. The data storage device of claim 6 , wherein, when the number of the plurality of free memory blocks is greater than or equal to the threshold number, the controller resets the maximum number of the programmable memory blocks and the GC count, and then controls the memory device to perform an operation corresponding to a command received from the host.

8. The data storage device of claim 6 , wherein, when the maximum number of the programmable memory blocks is not a value of 0, the controller decreases the maximum number of the programmable memory blocks regardless of the GC count, and then controls the memory device to perform an operation corresponding to a command received from the host.

9. The data storage device of claim 6 , wherein, when the GC count is not a value of 0, the controller determines that the GC operation has been performed successfully, resets the maximum number of the programmable memory blocks and the GC count, and then controls the memory device to perform an operation corresponding to a command received from the host.

10. The data storage device of claim 6 , wherein the controller controls the memory device to store error information indicating that the GC operation has not performed successfully.

11. An operating method of a data storage device which includes a controller and a memory device including a plurality of memory blocks including a plurality of free memory blocks, the operating method comprising:

performing, by the controller, a block allocation operation of allocating one or more free memory blocks among the plurality of free memory blocks as one or more programmable memory blocks; and

performing, by the controller, a garbage collection (GC) error defense operation in response to the block allocation operation,

wherein the GC error defense operation includes:

an operation of determining whether a GC operation of the plurality of memory blocks has been performed successfully based on a maximum number of programmable memory blocks among the plurality of memory blocks and a GC count, and

waiting, by the controller, in an operation suspended state until a reset operation is performed by a host, responsive to a determination that the GC operation has not performed successfully.

12. The operating method of claim 11 , wherein the performing the GC error defense operation comprises:

determining, by the controller, whether a number of the plurality of free memory blocks is less than a threshold number;

checking, by the controller, whether the maximum number of the programmable memory blocks is a value of 0, responsive to the number of the plurality of free memory blocks is less than the threshold number;

checking, by the controller, whether the GC count is a value of 0, responsive to the maximum number of the programmable memory blocks is a value of 0;

determining, by the controller, that the GC operation has not performed successfully, responsive to the GC count is a value of 0.

13. The operating method of claim 12 , wherein the GC count corresponds to a number of memory blocks erased by the GC operation.

14. The operating method of claim 12 , wherein the determining whether the number of the plurality of free memory blocks is less than the threshold number comprises:

resetting the maximum number of programmable memory blocks and the GC count, responsive to the number of the plurality of free memory blocks is greater than or equal to the threshold number; and

controlling the memory device to perform an operation corresponding to a command received from the host.

15. The operating method of claim 12 , wherein the checking whether the maximum number of the programmable memory blocks is a value of 0 comprises:

decreasing the maximum number of the programmable memory blocks regardless of the GC count, responsive to the maximum number of the programmable memory blocks is not a value of 0; and

controlling the memory device to perform an operation corresponding to a command received from the host.

16. The operating method of claim 12 , wherein the checking whether the GC count is a value of 0 comprises:

determining that the GC operation has been performed successfully, responsive to the GC count is not a value of 0;

resetting the maximum number of programmable memory blocks and the GC count, responsive to a determination that the GC operation has been performed successfully;

and controlling the memory device to perform an operation corresponding to a command received from the host.

17. A data storage device comprising:

a memory device including a plurality of memory blocks; and

a controller suitable for:

determining whether a number of free blocks among the plurality of memory blocks is less than a threshold number;

determining, when it is determined that the number of free blocks among the plurality of memory blocks is less than the threshold number, whether a garbage collection (GC) has been performed successfully, based on a maximum number of programmable memory blocks among the plurality of memory blocks and a garbage collection (GC) count; and

waiting, when it is determined that the garbage collection has not performed successfully, in an operation suspended state until a reset operation is performed by a host.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 7, 2024
From: SK HYNIX INC.
To: MIMIRIP LLC
Reel/Frame 067335/0246 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 21, 2019
From: CHO, DAE GON
To: SK HYNIX INC.
Reel/Frame 050775/0134 →
Priority Claims (1)
KR 10-2019-0081297 · Jul 5, 2019 · national
Continuity (1)
Related Publication 20210004325A1 · Jan 7, 2021