IP Library › Granted Patent US 11,847,332
Granted Patent B2
US 11,847,332 · App. 17/516,392 · Granted Dec 19, 2023

Data storage apparatus and operating method thereof

Inventors: Hye Mi Kang (Icheon, KR); Eu Joon Byun (Icheon, KR)
Assignee: SK hynix Inc.
G06F3/064G06F3/0604G06F3/0655G06F3/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,847,332
App. No.
17/516,392
Granted
Dec 19, 2023
Kind
B2
Abstract

A data storage apparatus includes storage including a plurality of memory blocks and a controller configured to set an attribute of each of the memory blocks as a random memory block or a sequential memory block, and to manage validity of map data for data stored in each of the memory blocks using a map segment bitmap. The controller configures at least one memory block set by combining a set number of memory blocks, as a housekeeping event is triggered, and selects a victim block set from the at least one memory block set based on continuity of a logical address, or a number of valid map data, or both.

Claims (37)

1. A data storage apparatus comprising:

storage including a plurality of memory blocks; and

a controller configured to set an attribute of each of the memory blocks as a random memory block or a sequential memory block, and to manage validity of map data for data stored in each of the memory blocks using a map segment bitmap,

wherein the controller configures at least one memory block set by combining a set number of memory blocks, as a housekeeping event is triggered, and selects a victim block set from the at least one memory block set based on continuity of a logical address, or a number of valid map data, or both,

wherein the controller is further configured to generate a cross bitmap by performing a logical OR operation on map segment bitmaps of the set number of memory blocks in each of the memory block sets, and to determine the continuity of the logical address based on continuity of valid bits in the cross bitmap or determine the number of valid map data in the cross bitmap.

2. The data storage apparatus of claim 1 , wherein the controller is further configured to detect one or more memory block sets having maximum continuity of the logical address and to, when a plurality of memory block sets are detected, select the victim block set among the detected memory block sets by additionally determining the number of valid map data.

3. The data storage apparatus of claim 1 , wherein the controller determines the number of valid map data based on a number of valid bits in the cross bitmap.

4. The data storage apparatus of claim 3 , wherein the controller is further configured to detect one or more memory block sets having a minimum number of valid map data, and to, when a plurality of memory block sets are detected, select the victim block set among the detected memory block sets by additionally determining the continuity of the logical address.

5. The data storage apparatus of claim 1 , wherein the controller is configured to generate the map segment bitmap for the random memory block.

6. The data storage apparatus of claim 1 , wherein the housekeeping event includes a garbage collection event, and the garbage collection event is triggered when a number of random memory blocks is equal to or larger than a given threshold value.

7. The data storage apparatus of claim 1 , wherein the controller configures the at least one memory block set by combining the set number of non-overlapping random memory blocks regardless of order, as the housekeeping event is triggered.

8. An operating method of a data storage apparatus, wherein the apparatus includes storage including a plurality of memory blocks and a controller configured to control the storage, the method comprising:

setting, by the controller, an attribute of each of the memory blocks as a random memory block or a sequential memory block;

managing, by the controller, validity of map data for data stored in each of the memory blocks as a map segment bitmap;

configuring, by the controller, at least one memory block set by combining a set number of memory blocks, as a housekeeping event is triggered; and

selecting, by the controller, a victim block set from the at least memory block set based on continuity of a logical address, or a number of valid map data, or both,

wherein the selecting of the victim block set includes:

generating, by the controller, a cross bitmap by performing a logical OR operation on map segment bitmaps of the set number of memory blocks in each of the memory block sets; and

determining, by the controller, the continuity of the logical address based on continuity of valid bits in the cross bitmap or determining, by the controller, the number of valid map data in the cross bitmap.

9. The method of claim 8 , wherein the selecting of the victim block set further includes:

detecting, by the controller, one or more memory block sets having maximum continuity of the logical address; and

selecting, by the controller, when a plurality of memory block sets are detected, the victim block set among the detected memory block sets by additionally determining the number of valid map data.

10. The method of claim 8 , wherein

the number of valid map data is determined based on a number of valid bits in the cross bitmap.

11. The method of claim 10 , wherein the selecting of the victim block set further includes:

detecting, by the controller, one or more memory block sets having minimum valid map data; and

selecting, by the controller, when a plurality of memory block sets are detected, the victim block set among the detected memory block sets by additionally determining the continuity of the logical address.

12. The method of claim 8 , wherein the map segment bitmap is generated with respect to the random memory block.

13. The method of claim 8 , wherein the housekeeping event includes a garbage collection event, and the garbage collection event is triggered when a number of random memory blocks is equal to or larger than a given threshold value.

14. The method of claim 8 , wherein the configuring of the at least one memory block set includes configuring, by the controller, the at least one memory block set by selecting the set number of non-overlapping random memory blocks regardless of order.

15. A data storage apparatus comprising:

storage including a plurality of memory blocks; and

a controller configured to transmit and receive data to and from the storage in response to a request of a host apparatus,

wherein the controller manages an attribute of each of the memory blocks as a random memory block or a sequential memory block based on continuity of a logical address for data stored in each of the memory blocks, generates a map segment bitmap for each of the memory blocks based on validity of map data for the data stored in each of the memory blocks, configures at least one memory block set by selecting a given number of memory blocks among random memory blocks, as a housekeeping event is triggered, and performs the housekeeping operation by selecting a memory block set having maximum continuity of a logical address from the at least one memory block set, as a victim block set,

wherein the controller is further configured to generate a cross bitmap by performing a logical OR operation on map segment bitmaps of the given number of memory blocks in each of the at least one memory block set and determine the continuity of the logical address based on continuity of valid bits in the cross bitmap.

16. The data storage apparatus of claim 15 , wherein the controller is further configured to, when a plurality of memory block sets having the maximum continuity of the logical address are detected, select a memory block set having a minimum number of valid map data among the detected memory block sets, as the victim block set.

17. The data storage apparatus of claim 15 , wherein the controller is further configured to arrange data included in victim blocks of the victim block set based on the logical address and copy the arranged data to a destination block.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 2, 2021
From: KANG, HYE MI; BYUN, EU JOON
To: SK HYNIX INC.
Reel/Frame 057993/0397 →
Priority Claims (1)
KR 10-2021-0026222 · Feb 26, 2021 · national
Continuity (1)
Related Publication 20220276783A1 · Sep 1, 2022