Efficient prefetching and asynchronous writing for flash memory
First Claim
Patent Images
1. A flash file system, comprising:
- a file system;
a Flash Translation Layer (FTL) for receiving Local Block Addresses (LBAs) from the file system, and translating the LBAs into Physical Block Address (PBAs); and
flash memory for receiving the resulting PBAs;
wherein the FTL includes a memory block in which a multi-stage clustered hash table for mapping the LBAs to the PBAs is stored, and performs the address translation using the multi-stage clustered hash table,wherein the multi-stage clustered hash table stored in the memory block comprises a first clustered hash table and a second clustered hash table of a page translation type and a third clustered hash table of a block translation type, each of the clustered hash tables including buckets into each of which a predetermined number of pieces of consecutive address data is grouped,wherein each of the LBAs recorded in each of the first clustered hash table and the second clustered hash table includes a bit vector that includes a reference bit and a modification bit respectively indicative of reference and modification of the LBA, andwherein address data recorded in each of the clustered hash tables is migrated from the first clustered hash table to the second clustered hash table and from the second clustered hash table to the third clustered hash table on a basis of the bit vectors.
2 Assignments
0 Petitions
Accused Products
Abstract
Disclosed herein are a flash file system and an address translation method. The flash file system includes a file system, a Flash Translation Layer (FTL), and flash memory. The FTL receives Local Block Addresses (LBAs) from the file system, and translates the LBAs into Physical Block Address (PBAs. The flash memory receives the resulting PBAs. The FTL includes a memory block in which a multi-stage clustered hash table for mapping the LBAs to the PBAs is stored, and performs the address translation using the clustered hash table.
-
Citations
13 Claims
-
1. A flash file system, comprising:
-
a file system; a Flash Translation Layer (FTL) for receiving Local Block Addresses (LBAs) from the file system, and translating the LBAs into Physical Block Address (PBAs); and flash memory for receiving the resulting PBAs; wherein the FTL includes a memory block in which a multi-stage clustered hash table for mapping the LBAs to the PBAs is stored, and performs the address translation using the multi-stage clustered hash table, wherein the multi-stage clustered hash table stored in the memory block comprises a first clustered hash table and a second clustered hash table of a page translation type and a third clustered hash table of a block translation type, each of the clustered hash tables including buckets into each of which a predetermined number of pieces of consecutive address data is grouped, wherein each of the LBAs recorded in each of the first clustered hash table and the second clustered hash table includes a bit vector that includes a reference bit and a modification bit respectively indicative of reference and modification of the LBA, and wherein address data recorded in each of the clustered hash tables is migrated from the first clustered hash table to the second clustered hash table and from the second clustered hash table to the third clustered hash table on a basis of the bit vectors. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. An address translation method using a Clustered Flash Translation Layer (CFTL), comprising the steps of:
-
(a) searching a page translation-type first clustered hash table for an LBA, translation of which has been requested; (b) determining whether data corresponding to the LBA exists in the first clustered hash table, and, if the data exists, translating the LBA into a PBA; (c) If, as a result of the determination at step (b), the data of the LBA does not exist, determination whether the data of the LBA exists in a page translation-type second clustered hash table, and, if the data exists, translating the LBA into a PBA; and (d) if, as a result of the determination at step (c), the data of the LBA does not exist, translating the LBA into a PBA using a block translation-type third clustered hash table. - View Dependent Claims (8, 9, 10, 11, 12, 13)
-
Specification