IP Library › Granted Patent US 11,188,245
Granted Patent B2
US 11,188,245 · App. 16/746,842 · Granted Nov 30, 2021

Data storage device, system, and data writing method

Inventors: Hui Wen (Shanghai, CN); Qun Zhao (Shanghai, CN); Qian Cheng (Shanghai, CN); Ying Chu (Shanghai, CN); Cheng-Yun Hsu (Shanghai, CN)
Assignee: INNOGRIT TECHNOLOGIES CO., LTD.
G06F3/0634G06F3/061G06F3/0604G06F3/064G06F3/0614G06F3/0629G06F3/0647G06F3/0659G06F3/0673G06F3/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,188,245
App. No.
16/746,842
Granted
Nov 30, 2021
Kind
B2
Abstract

The present disclosure relates to a data storage device, system, and a data writing method. The device comprises a controller and a plurality of storage blocks, each storage block consisting of an idle storage block and a non-idle storage block, the controller connecting to each storage block respectively, wherein the controller is configured to generate, when receiving a data writing command, a self-adapting adjustment instruction according to a comparison between a storage distribution state of the storage block and a first threshold value to configure the idle-storage block as an SLC block or an XLC block; the storage block is configured to correspondingly adjust the storage distribution state according to the self-adapting adjustment instruction to store written data in the SLC block or the XLC block of the idle storage block. By dynamically configuring the storage blocks as an SLC block or an XLC block according to the storage distribution state, the data storage device, system, and the data writing method according to the embodiments of the present disclosure is capable of maintaining the reading/writing performance of the storage device for a relatively long period.

Claims (58)

1. A data storage device, comprising:

a controller; and

a plurality of storage blocks, each storage block being an idle storage block or a non-idle storage block;

wherein the controller is connected to each of the plurality of storage blocks respectively, and configured to

generate, responsive to receiving a data writing command, a self-adapting adjustment instruction according to a comparison between a storage distribution state of the plurality of storage blocks and a first threshold value, and

configure an idle storage block of the plurality of storage blocks as an X-level cell (XLC) block for data writing when the comparison indicates that an amount of non-idle single-level cell (SLC) blocks of the plurality of storage blocks is not smaller than the first threshold value;

wherein the storage block is configured to correspondingly adjust the storage distribution state of the plurality of storage blocks according to the self-adapting adjustment instruction to store written data in the configured XLC block of the plurality of storage blocks.

2. The data storage device according to claim 1 , wherein the plurality of storage blocks includes the non-idle SLC block and the non-idle XLC block, the non-idle SLC block and the non-idle XLC block being the non-idle storage block.

3. The data storage device according to claim 2 , wherein the controller is configured for

receiving the data writing command;

retrieving the storage distribution state; and

comparing a retrieved result with the first threshold value.

4. The data storage device according to claim 2 , wherein the controller is further configured for

controlling the storage block to perform data transfer responsive to an amount of the idle-storage blocks being smaller than a second threshold value.

5. The data storage device according to claim 4 , wherein controlling the storage block to perform data transfer comprises:

selecting and configuring an idle storage block as an XLC block serving as a target block;

selecting a non-idle SLC block as a data source block, transferring data in the data source block to the target block;

releasing the data source block, released source block serving as an idle storage block.

6. The data storage device according to claim 5 , wherein selecting a non-idle SLC block as a data source block, transferring data in the data source block to the target block comprises:

selecting a non-idle SLC block having the least valid data as the data source block, transferring the valid data in the data source block to the target block by GC; or

selecting a non-idle SLC block having the most valid data as the data source block, transferring all data in the data source block to the target block by COPYBACK.

7. The data storage device according to claim 1 , wherein the first threshold value is not greater than 1/N of a capacity of the data storage device, wherein N is an amount of bits of data stored in the XLC block of the plurality of storage blocks.

8. A data writing method for a data storage device, comprising receiving a data writing command;

retrieving a storage distribution state of a plurality of storage blocks in the data storage device, each storage blocks being an idle storage block or a non-idle storage block;

configuring an idle storage block of the plurality of storage blocks as an X-level cell (XLC) block for data writing when a comparison between the retrieved storage distribution and a first threshold value indicates that an amount of non-idle SLC blocks of the plurality of storage blocks is not smaller than the first threshold value;

writing data into the configured XLC block of the plurality of idle storage blocks.

9. The data writing method according to claim 8 , wherein the first threshold value is not greater than 1/N of a capacity of the data storage device, wherein N is an amount of bits of data stored in the XLC block of the plurality of storage blocks.

10. The data writing method according to claim 8 , further comprising:

controlling the storage block to perform data transfer responsive to an amount of the idle storage blocks being smaller than a second threshold value.

11. The data writing method according to claim 10 , wherein controlling the storage block to perform data transfer comprises:

selecting and configuring an idle storage block as an XLC block serving as a target block;

selecting a non-idle SLC block as a data source block, transferring data in the data source block to the target block;

releasing the data source block, released source block serving as an idle storage block.

12. The data writing method according to claim 11 , wherein selecting a non-idle SLC block as a data source block, transferring data in the data source block to the target block comprises:

selecting a non-idle SLC block having the least valid data as the data source block, transferring the valid data in the data source block to the target block by GC; or

selecting a non-idle SLC block having the most valid data as the data source block, transferring all data in the data source block to the target block by COPYBACK.

13. A data storage system, comprising

a data storage device, comprising a controller and a plurality of storage blocks, each storage block being an idle storage block or a non-idle storage block, the controller connecting to each of the plurality of storage blocks respectively, wherein

the controller is configured to

generate, responsive to receiving a data writing command, a self-adapting adjustment instruction according to a comparison between a storage distribution state of the plurality of storage blocks and a first threshold value, and

configure an idle storage block of the plurality of storage blocks as an X-level cell (XLC) block for data writing when the comparison indicates that an amount of non-idle single-level cell (SLC) blocks of the plurality of storage blocks is not smaller than the first threshold value;

wherein the storage block is configured to correspondingly adjust the storage distribution state of the plurality of storage blocks according to the self-adapting adjustment instruction to store written data in the configured XLC block of the plurality of storage blocks;

a data writing device for writing data into the data storage device.

14. The data storage system according to claim 13 , wherein the plurality of storage blocks includes the non-idle SLC block and the non-idle XLC block, the non-idle SLC block and the non-idle XLC block being the non-idle storage block.

15. The data storage system according to claim 14 , wherein the controller is further configured for

controlling the storage block to perform data transfer responsive to an amount of the idle-storage blocks being smaller than a second threshold value.

16. The data storage system according to claim 15 , wherein controlling the storage block to perform data transfer comprises:

selecting and configuring an idle storage block as an XLC block serving as a target block;

selecting a non-idle SLC block as a data source block, transferring data in the data source block to the target block;

releasing the data source block, released source block serving as an idle storage block.

17. The data storage system according to claim 16 , wherein selecting a non-idle SLC block as a data source block, transferring data in the data source block to the target block comprises:

selecting a non-idle SLC block having the least valid data as the data source block, transferring the valid data in the data source block to the target block by GC; or

selecting a non-idle SLC block having the most valid data as the data source block, transferring all data in the data source block to the target block by COPYBACK.

18. The data storage system according to claim 13 , wherein the controller is configured for

receiving the data writing command;

retrieving the storage distribution state; and

comparing a retrieved result with the first threshold value.

19. The data storage system according to claim 13 , wherein the first threshold value is not greater than 1/N of a capacity of the data storage device, wherein N is an amount of bits of data stored in the XLC block of the plurality of storage blocks.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 4, 2020
From: WEN, HUI; ZHAO, QUN; CHENG, QIAN; CHU, YING; HSU, CHENG-YUN
To: INNOGRIT TECHNOLOGIES CO., LTD.
Reel/Frame 052314/0447 →
Priority Claims (1)
CN 201910114383.8 · Feb 14, 2019 · national
Continuity (1)
Related Publication 20200264789A1 · Aug 20, 2020
Cited By (1)
US 12,277,064