IP Library › Granted Patent US 11,210,005
Granted Patent B2
US 11,210,005 · App. 16/789,355 · Granted Dec 28, 2021

Unbalanced plane management method, associated data storage device and controller thereof

Inventor: Han-Hung Lin (Hsinchu County, TW)
Assignee: Silicon Motion, Inc.
G06F3/064G06F3/0604G06F3/0679G06F3/061G06F3/0631G06F3/0688G06F12/0246G06F12/0292G06F12/0623G06F2212/1016G06F2212/7204G06F2212/7208G11C16/02
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,210,005
App. No.
16/789,355
Granted
Dec 28, 2021
Kind
B2
Abstract

An unbalanced plane management method, an associated data storage device and the controller thereof are provided. The unbalanced plane management method may include: setting an unbalanced plane number; selecting at least one plane with a plane count calculated by subtracting the unbalanced plane number from a maximum plane number, and recording at least one set of blocks of the at least one plane to a block skip table; according to block numbers as indexes, combining blocks of unselected planes into superblocks, wherein said superblocks respectively correspond to said block numbers; and recording total capacity of all superblocks and the unbalanced plane number, to generate a latest record of records of multiple types of storage capacity, for further setting storage capacity configuration of the data storage device, wherein said all superblocks include said superblocks.

Claims (38)

1. An unbalanced plane management method, applicable to a data storage device, the data storage device comprising a non-volatile (NV) memory, the NV memory comprising a plurality of NV memory elements, the plurality of NV memory elements comprising a plurality of blocks, the unbalanced plane management method comprising:

setting an unbalanced plane number, wherein the unbalanced plane number is less than a maximum plane number, and the maximum plane number represents a summation of numbers of respective planes of the plurality of NV memory elements;

selecting at least one plane with a plane count calculated by subtracting the unbalanced plane number from the maximum plane number, and recording at least one set of blocks of the at least one plane into a block skip table;

combining blocks of unselected planes into superblocks according to block numbers as indexes, wherein said superblocks correspond to said block numbers respectively;

determining whether at least one block number of said block numbers is less than a block threshold in order to generate a determination result, wherein the block threshold is equal to a maximum value of all available block numbers, and the determination result indicates whether said at least one block number of said block numbers is less than the block threshold;

in response to the determination result indicating that said at least one block number of said block numbers is less than the block threshold, combining other blocks of the unselected planes and blocks recorded in the block skip table into other superblocks according to remaining block numbers of said all available block numbers as indexes; and

recording a total capacity of all superblocks and the unbalanced plane number to generate a latest record of records of multiple types of storage capacity, for further setting storage capacity configuration of the data storage device, wherein said all superblocks comprise said superblocks.

2. The unbalanced plane management method of claim 1 , wherein the block skip table comprises at least one set of block skip indexes; and said at least one set of block skip indexes is an array, the array comprises one or more sub-arrays, and a sub-array count of said one or more sub-arrays of the array is equal to the maximum plane number minus the unbalanced plane number, wherein the size of the array is equal to the total number of said at least one set of blocks.

3. The unbalanced plane management method of claim 1 , wherein said remaining block numbers comprise subsequent block numbers of said block numbers, said other blocks of the unselected planes comprise subsequent blocks corresponding to said subsequent block numbers, and said other superblocks comprise subsequent superblocks of said superblocks.

4. The unbalanced plane management method of claim 1 , wherein the step of determining whether said at least one block number of said block numbers is less than the block threshold in order to generate the determination result comprises:

comparing the last block number within a block number sequence formed by said block numbers with the block threshold in order to generate the determination result, wherein said last block number has the maximum value among said block numbers.

5. The unbalanced plane management method of claim 1 , wherein the records of said multiple types of storage capacity respectively correspond to multiple possible values of the unbalanced plane number, to allow a user to select a record corresponding to a possible value of said multiple possible values from the records of said multiple types of storage capacity based on demands.

6. A data storage device, comprising:

a non-volatile (NV) memory, arranged to store information, wherein the NV memory comprises a plurality of NV memory elements, and the plurality of NV memory elements comprises a plurality of blocks; and

a controller, coupled to the NV memory, the controller arranged to control operations of the data storage device, wherein the controller comprises:

a processing circuit, arranged to control the controller according to a plurality of host commands from a host device, to allow the host device to access the NV memory via the controller, wherein:

the controller sets an unbalanced plane number, wherein the unbalanced plane number is less than a maximum plane number representing a summation of numbers of respective planes of the plurality of NV memory elements;

the controller selects at least one plane with a plane count calculated by subtracting the unbalanced plane number from the maximum plane number, and records at least one set of block of the at least one plane to a block skip table;

according to block numbers as indexes, the controller combines blocks of unselected planes into superblocks, wherein said superblocks are corresponding to said block numbers respectively;

the controller determines whether at least one block number of said block numbers is less than a block threshold in order to generate a determination result, wherein the block threshold is equal to the maximum value of all available block numbers, and the determination result indicates whether said at least one block number of said block numbers is less than the block threshold;

in response to the determination result indicating that said at least one block number of said block numbers is less than the block threshold, the controller combines other blocks of the unselected planes and blocks recorded in the block skip table into other superblocks according to remaining block numbers of said all available block numbers as indexes; and

the controller records the total capacity of all superblocks and the unbalanced plane number to generate a latest record of records of multiple types of storage capacity, for further setting storage capacity configuration of the data storage device, wherein said all superblocks comprise said superblocks.

7. The data storage device of claim 6 , wherein the block skip table comprises at least one set of block skip indexes; and said at least one set of block skip indexes is an array that comprises one or more sub-arrays, and a sub-array count of said one or more sub-arrays of the array is equal to the maximum plane number minus the unbalanced plane number, wherein the size of the array is equal to the total number of said at least one set of blocks.

8. The data storage device of claim 6 , wherein said remaining block numbers comprise subsequent block numbers of said block numbers, said other blocks of the unselected planes comprise subsequent blocks corresponding to said subsequent block numbers, and said other superblocks comprise subsequent superblocks of said superblocks.

9. The data storage device of claim 6 , wherein the controller compares the last block number in a block number sequence formed by said block numbers with the block threshold in order to generate the determination result, wherein said last block number has the maximum value among said block numbers.

10. The data storage device of claim 6 , wherein the records of said multiple types of storage capacity correspond to multiple possible values of the unbalanced plane number respectively, to allow a user to select a record corresponding to a possible value of said multiple possible values from the records of said multiple types of storage capacity based on demands.

11. A controller of a data storage device, the data storage device comprising the controller and a non-volatile (NV) memory, the NV memory comprising a plurality of NV memory elements, the plurality of NV memory elements comprising a plurality of blocks, and the controller comprising:

a processing circuit, arranged to control the controller according to a plurality of host commands from a host device, to allow the host device to access the NV memory via the controller, wherein:

the controller sets an unbalanced plane number, wherein the unbalanced plane number is less than a maximum plane number, and the maximum plane number represents a summation of numbers of respective planes of the plurality of NV memory elements;

the controller selects at least one plane with a plane count calculated by subtracting the unbalanced plane number from the maximum plane number, and records at least one set of block of the at least one plane to a block skip table;

according to block numbers as indexes, the controller combines blocks of unselected planes into superblocks, wherein said superblocks are corresponding to said block numbers respectively;

the controller determines whether at least one block number of said block numbers is less than a block threshold in order to generate a determination result, wherein the block threshold is equal to the maximum value of all available block numbers, and the determination result indicates whether said at least one block number of said block numbers is less than the block threshold;

in response to the determination result indicating that said at least one block number of said block numbers is less than the block threshold, the controller combines other blocks of the unselected planes and blocks recorded in the block skip table into other superblocks according to remaining block numbers of said all available block numbers as indexes; and

the controller records a total capacity of all superblocks and the unbalanced plane number, to generate a latest record of records of multiple types of storage capacity, for further setting storage capacity configuration of the data storage device, wherein said all superblocks comprise said superblocks.

12. The controller of claim 11 , wherein the block skip table comprises at least one set of block skip indexes; and said at least one set of block skip indexes is an array that comprises one or more sub-arrays, and a sub-array count of said one or more sub-arrays of the array is equal to the maximum plane number minus the unbalanced plane number, wherein the size of the array is equal to the total number of said at least one set of blocks.

13. The controller of claim 11 , wherein said remaining block numbers comprise subsequent block numbers of said block numbers, said other blocks of the unselected planes comprise subsequent blocks corresponding to said subsequent block numbers, and said other superblocks comprise subsequent superblocks of said superblocks.

14. The controller of claim 11 , wherein the controller compares the last block number in a block number sequence formed by said block numbers with the block threshold in order to generate the determination result, wherein said last block number is the maximum value of said block numbers.

15. The controller of claim 11 , wherein the records of said multiple types of storage capacity correspond to multiple possible values of the unbalanced plane number respectively, to allow a user to select a record corresponding to a possible value of said multiple possible values from the records of said multiple types of storage capacity based on demands.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 12, 2020
From: LIN, HAN-HUNG
To: SILICON MOTION, INC.
Reel/Frame 051805/0829 →
Priority Claims (1)
TW 108129939 · Aug 22, 2019 · national
Continuity (2)
Provisional Application 62813169 · Mar 4, 2019
Related Publication 20200285393A1 · Sep 10, 2020