IP Library › Granted Patent US 10,929,303
Granted Patent B2
US 10,929,303 · App. 16/028,005 · Granted Feb 23, 2021

Data storage device utilizing virtual blocks to improve performance and data storage method thereof

Inventor: Chien-Chung Chung (Taipei, TW)
Assignee: SILICON MOTION, INC.
G06F12/1009G06F3/061G06F3/064G06F3/0631G06F3/0665G06F3/0679G06F3/0688G06F12/0246G06F2212/7201
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 10,929,303
App. No.
16/028,005
Granted
Feb 23, 2021
Kind
B2
Abstract

The data storage method includes selecting one of a plurality of blocks in a flash memory as an active block; dividing the active block into a plurality of virtual blocks; selecting and accessing one of the virtual blocks; and maintaining a mapping table corresponding to the selected virtual block. The mapping table records mapping information between a plurality of logical addresses and a plurality of physical addresses of the selected virtual block.

Claims (41)

1. A data storage method, comprising:

selecting one of a plurality of blocks in a flash memory as an active block;

dividing the active block into a plurality of virtual blocks, wherein each of the virtual blocks has a mapping table;

selecting and accessing one of the virtual blocks; and

maintaining the mapping table corresponding to the selected virtual block, wherein the mapping table corresponding to the selected virtual block records mapping information between a plurality of logical addresses and a plurality of physical addresses of the selected virtual block.

2. The data storage method as claimed in claim 1 , wherein the mapping tables are stored in the flash memory or in a RAM.

3. The data storage method as claimed in claim 1 , further including:

counting and saving the number of valid data of the selected virtual block.

4. The data storage method as claimed in claim 1 , the method further comprising:

selecting and accessing another virtual block after the selected virtual block is closed.

5. The data storage method as claimed in claim 4 , wherein the mapping table corresponding to the selected virtual block is stored when the selected virtual block is closed.

6. The data storage method as claimed in claim 4 , wherein the mapping table corresponding to the selected virtual block further corresponds to another selected virtual block, and further records mapping information between a plurality of logical addresses and a plurality of physical addresses of the another selected virtual block.

7. The data storage method as claimed in claim 4 , the method further comprising:

maintaining another mapping table corresponding to the another virtual block, wherein the another mapping table records mapping information between a plurality of logical addresses and a plurality of physical addresses of the another virtual block.

8. A data storage method, comprising:

selecting one of a plurality of blocks in a data storage device as an active block;

dividing the active block into a plurality of virtual blocks, wherein each of the virtual blocks has a mapping table;

selecting one of the virtual blocks;

issuing a command with a physical address of the selected virtual block to the data storage device; and

updating the mapping table corresponding to the selected virtual block to recode mapping information between a logical address and the physical address.

9. The data storage method as claimed in claim 8 , wherein the mapping table corresponding to the selected virtual block is updated after the command is executed successfully.

10. The data storage method as claimed in claim 8 , the method further comprising:

selecting another virtual block after the selected virtual block is closed.

11. The data storage method as claimed in claim 10 , further comprising:

issuing another command to write a mapping table including mapping information between the physical address and the logical addresses to the data storage device to close the selected virtual block.

12. The data storage method as claimed in claim 10 , further comprising:

counting and saving the number of valid data of the selected virtual block.

13. A method of data moving for a data storage device, comprising:

selecting a source block;

dividing the source block into a plurality of virtual blocks;

selecting one of the virtual blocks of the source block;

selecting a destination block;

determining whether the number of valid pages of the selected virtual block is zero; and

if the determination is true, selecting another virtual block of the source block.

14. The method of data moving as claimed in claim 13 , wherein if the determination is false, moving valid data from the selected virtual block into the destination block.

15. A data storage device, comprising:

a flash memory, comprising a plurality of blocks, wherein each of the blocks comprises a plurality of pages; and

a controller, configured to select one of the blocks as an active block, and divide the active block into a plurality of virtual blocks, wherein each of the virtual blocks has a mapping table, the controller is further configured to select and access one of the virtual blocks and maintain the mapping table corresponding to the selected virtual block, wherein the mapping table corresponding to the selected virtual block records mapping information between a plurality of logical addresses and a plurality of physical addresses of the selected virtual block.

16. The data storage device as claimed in claim 15 , wherein the controller counts and saves the number of valid data of the selected virtual block.

17. The data storage device as claimed in claim 15 , wherein the controller selects and accesses another virtual block after the selected virtual block is closed.

18. The data storage device as claimed in claim 15 , wherein the controller further saves a mapping table recording mapping information between the physical addresses of the selected virtual block and the logical addresses when the selected virtual block is closed.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 5, 2018
From: CHUNG, CHIEN-CHUNG
To: SILICON MOTION, INC.
Reel/Frame 046272/0552 →
Priority Claims (1)
TW 106131913 · Sep 18, 2017 · national
Continuity (1)
Related Publication 20190087349A1 · Mar 21, 2019
Cited By (2)
US 12,339,771 US 12,572,463