IP Library › Granted Patent US 12,748,540
Granted Patent B2
US 12,748,540 · App. 18/908,260 · Granted Sep 29, 2026

Sub block based storage device and method for managing sub block thereof

Inventors: Dongin Kim (Suwon-si, KR); Youngjo Park (Suwon-si, KR); Seungjun Yang (Suwon-si, KR)
Assignee: SAMSUNG ELECTRONICS CO., LTD.
G06F3/0631G06F3/0614G06F3/0644G06F3/0673
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 12,748,540
App. No.
18/908,260
Granted
Sep 29, 2026
Kind
B2
Abstract

A storage device includes: memory device including a plurality of memory blocks, each of the plurality of memory blocks comprising a plurality of sub-blocks, wherein at least two sub-blocks of the plurality of sub-blocks have different sizes; and a memory controller configured to manage the plurality of memory blocks and the plurality of sub-blocks, wherein the memory controller is further configured to: based on a predetermined sub-block attribute criteria, select at least one sub-block from the plurality of sub-blocks, add the selected at least one sub-block to at least one sub-block pool, and based on the predetermined sub-block attribute criteria, allocate the selected at least one sub-block in the at least one sub-block pool to a virtual memory block.

Claims (75)

1 . A storage device comprising:

a memory device comprising a plurality of memory blocks, each of the plurality of memory blocks comprising a plurality of sub-blocks, wherein at least two sub-blocks of the plurality of sub-blocks have different sizes; and

a memory controller configured to manage the plurality of memory blocks and the plurality of sub-blocks,

wherein the memory controller is further configured to:

based on a predetermined sub-block attribute criteria, select at least one sub-block from the plurality of sub-blocks,

add the selected at least one sub-block to at least one sub-block pool, and

based on the predetermined sub-block attribute criteria, allocate the selected at least one sub-block in the at least one sub-block pool to a virtual memory block,

wherein the predetermined sub-block attribute criteria includes at least one of an erase count or a data access frequency of the at least one sub-block.

2 . The storage device of claim 1 , wherein the plurality of sub-blocks comprise:

a first sub-block with a first capacity being the smallest capacity;

a second sub-block with a second capacity that is larger than the first capacity of the first sub-block; and

a third sub-block with a third capacity that is larger than the second capacity of the second sub-block,

wherein the memory controller is further configured to:

based on the first capacity, the second capacity, and the third capacity, select one of the first sub-block, the second sub-block and the third sub-block,

add the first sub-block to a first sub-block pool,

add the second sub-block to a second sub-block pool, and

add the third sub-block to a third sub-block pool.

3 . The storage device of claim 2 , wherein the memory controller is further configured to:

sequentially or randomly select sub-blocks from the first sub-block pool, the second sub-block pool or the third sub-block pool, and

add the sequentially or randomly selected sub-blocks to the virtual memory block.

4 . The storage device of claim 1 , wherein the memory controller is further configured to:

select, from the at least one sub-block pool, a set of sub-blocks having the same capacities, and

add the selected set of sub-blocks to the virtual memory block.

5 . The storage device of claim 1 , wherein the memory controller is further configured to:

select, from the at least one sub-block pool, a set of sub-blocks having different capacities each other, and

add the selected set of sub-blocks to the virtual memory block.

6 . The storage device of claim 1 , wherein the plurality of sub-blocks comprises:

a first sub-block with a first erase count being the lowest erase count;

a second sub-block with a second erase count that is higher than the first erase count of the first sub-block; and

a third sub-block with a third erase count that is higher than the second erase count of the second sub-block,

wherein the memory controller is further configured to:

based on the first erase count, the second erase count, and the third erase count, select one of the first sub-block, the second sub-block and the third sub-block,

add the first sub-block to a first sub-block pool,

add the second sub-block to a second sub-block pool, and

add the third sub-block to a third sub-block pool.

7 . The storage device of claim 1 , wherein the memory controller is further configured to:

select, from the at least one sub-block pool, a set of sub-blocks having the same erase count, and

add the selected set of sub-blocks to the virtual memory block.

8 . The storage device of claim 1 , wherein the memory controller is further configured to:

obtain, from the at least one sub-block pool, the selected at least one sub-block, and

add the obtained at least one sub-block to a sub-block pool in a sub-block group.

9 . The storage device of claim 8 , wherein the memory controller is further configured to obtain the selected at least one sub-block, based on at least one of a capacity, the erase count, or the data access frequency.

10 . The storage device of claim 8 , wherein the sub-block group comprises at least one of a minimum erase count sub-block pool, a hot data sub-block pool, or a cold data sub-block pool.

11 . A method performed by a storage device comprising a plurality of memory blocks, the method comprising:

based on a predetermined sub-block attribute criteria, selecting at least one sub-block from a plurality of sub-blocks in the plurality of memory blocks;

adding the selected at least one sub-block to a sub-block pool; and

based on the predetermined sub-block attribute criteria, allocating the selected at least one sub-block in the sub-block pool to a virtual memory block,

wherein at least two sub-blocks of the plurality of sub-blocks have different sizes, and

wherein the predetermined sub-block attribute criteria includes at least one of an erase count or a data access frequency of at least one sub-block.

12 . The method of claim 11 , wherein the selecting the at least one sub-block from the plurality of sub-blocks comprises:

adding the selected at least one sub-block to a first sub-block pool when a capacity of the selected at least one sub-block is the smallest in one of the plurality of memory blocks;

adding the selected at least one sub-block to a second sub-block pool when the capacity of the selected at least one sub-block is the largest among the plurality of memory blocks; and

adding the selected at least one sub-block to a third sub-block pool when the capacity of the selected at least one sub-block is an average among the plurality of memory blocks.

13 . The method of claim 11 , wherein the selecting the at least one sub-block from the plurality of sub-blocks comprises:

adding the selected at least one sub-block to a first sub-block pool when an erase count of the selected at least one sub-block is less than a first reference value;

adding the selected at least one sub-block to a second sub-block pool when the erase count of the selected at least one sub-block is greater than a second reference value; and

adding the selected at least one sub-block to a third sub-block pool when the erase count of the selected at least one sub-block is greater than the first reference value and less than the second reference value.

14 . The method of claim 11 , wherein the selecting the at least one sub-block from the plurality of sub-blocks comprises:

determining that a workload is high when a data access frequency is higher than a first threshold, data write commands are more frequent than a second threshold, or write commands are performed; and

adding, to a hot data sub-block pool, a sub-block having an erase count being smaller than a third threshold.

15 . The method of claim 14 , wherein the selecting the at least one sub-block from the plurality of sub-blocks comprises:

determining that the workload is low when the data access frequency or a data write frequency is lower than a fourth threshold, and

based on a determination that the workload is low, adding the selected at least one sub-block to a cold data sub-block pool.

16 . A method performed by a storage device, the method comprising:

receiving, from a host, a virtual memory block allocation requirement;

confirming the virtual memory block allocation requirement;

based on the virtual memory block allocation requirement, selecting at least one sub-block;

selecting a sub-block pool and adding the selected at least one sub-block to the selected sub-block pool;

combining a virtual memory block using the selected at least one sub-block of the selected sub-block pool;

comparing the combined virtual memory block and the virtual memory block allocation requirement and checking whether the virtual memory block allocation requirement is satisfied; and

based on a determination that the virtual memory block allocation requirement is satisfied, allocating the virtual memory block.

17 . The method of claim 16 , wherein the virtual memory block allocation requirement comprises a request for a data size.

18 . The method of claim 17 , wherein the selecting the at least one sub-block comprises selecting the at least one sub-block with the least surplus space when the virtual memory block allocation requirement comprises the request for the data size.

19 . The method of claim 16 , wherein the selecting the at least one sub-block comprises selecting the at least one sub-block based on a capacity of the at least one sub-block or an erase count of the at least one sub-block.

20 . The method of claim 17 , wherein the combining the virtual memory block comprises combining the virtual memory block based on at least one of a capacity of the at least one sub-block, an erase count of the at least one sub-block and a data access frequency.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 7, 2024
From: KIM, DONGIN; PARK, YOUNGJO; YANG, SEUNGJUN
To: SAMSUNG ELECTRONICS CO., LTD.
Reel/Frame 068817/0376 →
Priority Claims (1)
KR 10-2024-0014821 · Jan 31, 2024 · national
Continuity (1)
Related Publication 20250244892A1 · Jul 31, 2025
References Cited (15)
US 6219772B1 · Gadangi · 2001 [cited by examiner]
US 9583201B1 · Lee · 2017 [cited by applicant]
US 10614891B2 · Park et al. · 2020 [cited by applicant]
US 11287989B2 · Mishra et al. · 2022 [cited by applicant]
US 11456050B2 · Chandramani et al. · 2022 [cited by applicant]
US 11487454B2 · Nishikawa et al. · 2022 [cited by applicant]
US 11646081B2 · Yang et al. · 2023 [cited by applicant]
US 20040080985A1 · Chang · 2004 [cited by examiner]
US 20110107052A1 · Narayanasamy · 2011 [cited by examiner]
US 20130311705A1 · Cheng · 2013 [cited by examiner]
US 20180046556A1 · Marathe · 2018 [cited by examiner]
JP 4691348B2 · 2011 [cited by applicant]
KR 100723504B1 · 2007 [cited by applicant]
KR 102312404B1 · 2021 [cited by applicant]
S. Teshome and T.-S. Chung, “A Tri-Pool Dynamic Wear-Leveling Algorithm for Large Scale Flash Memory Storage Systems,” 2011 International Conference on Information Science and Applications, Jeju, Korea (South), 2011, pp… [cited by examiner]