FLASH MEMORY SYSTEM AND DEFRAGMENTATION METHOD
1 Assignment
0 Petitions
Accused Products
Abstract
Provided is a flash memory system supporting flash defragmentation. The flash memory system includes a host and a flash storage device. In response to a flash defragmentation command by the host, the flash storage device performs flash defragmentation by grouping fragments stored in fragmented blocks of a flash memory on a flash memory management unit basis. The flash memory management unit may be a memory block or page. The flash storage device performs the flash defragmentation regardless of the arrangement order of fragmented files stored in the flash memory.
124 Citations
41 Claims
-
1-20. -20. (canceled)
-
21. A method of defragmenting a flash memory operated under the control of a host, the flash memory being arranged in a plurality of blocks including a free block and a plurality of fragmented blocks respectively storing at least one fragment, the method comprising:
-
identifying a plurality of fragments stored in the plurality of fragmented blocks according to corresponding logical addresses; converting the logical addresses to corresponding physical addresses using a flash translation layer (FTL); using the physical addresses, reading a subset of fragments in the plurality of fragments from at least one of the plurality of fragmented blocks; grouping the subset of fragments within a grouping memory having a size defined by a flash management unit; and writing the grouped subset of fragments from the grouping memory to the free block. - View Dependent Claims (22, 23, 24, 25, 26, 27, 28, 29)
-
-
30. (canceled)
-
31. A method of defragmenting a flash memory, the flash memory being arranged in a plurality of blocks including a free block and a plurality of fragmented blocks storing a plurality of fragments, and the method comprising:
-
managing a mapping table correlating externally applied logical addresses with physical addresses for the flash memory using a flash translation layer (FTL); identifying the plurality of fragmented blocks and a plurality of fragments stored in the plurality of fragmented blocks; reading a subset of fragments among the plurality of fragments without regard to an arrangement order of the plurality of fragments as stored in the fragmented blocks, and writing the subset of fragments in the free block. - View Dependent Claims (32, 33, 34, 35, 36)
-
-
37. A method of defragmenting a flash memory arranged in a plurality of blocks, each block comprising a plurality of pages, the method comprising:
-
identifying a plurality of fragmented blocks among the plurality of blocks; identifying a plurality of fragments stored in the fragmented blocks; identifying N free pages of one fragmented block; reading N fragments among the plurality of fragments from one of the plurality of fragmented blocks other than the one fragmented block without regard of an arrangement order of the N fragments as stored in the plurality of fragmented blocks; and writing the N fragments to fill the N free pages to thereby convert the one fragmented block to a new non-fragmented block. - View Dependent Claims (38, 39, 40)
-
-
41. (canceled)
Specification