HIERARCHICAL FLASH TRANSLATION LAYER
First Claim
1. A method for translating a logical address to a physical address in a flash memory, comprising:
- receiving a Logical Sector Number as the location for a data access operation;
using the Logical Sector Number to obtain a {Section ID, Section Relative Sector ID} tuple;
using the Section ID to identify and access one of a plurality of Sector Translation Tables;
accessing the identified Sector Translation Table using Section Relative Sector ID as an index to access a {Section Local Block Table ID, Physical Page Number, Page Offset} tuple;
using the Section Local Block Table ID to identify a physical block in the flash memory that is represented by a {Flash Device ID, DIE, Logical Unit, Block Number} tuple; and
accessing a particular location in the physical block of the flash memory identified by the {Flash Device ID, DIE, Logical Unit, Block Number, Physical Page Number, Page Offset} tuple.
6 Assignments
0 Petitions
Accused Products
Abstract
A flash memory system comprises a flash device operable to store data in a plurality of physical blocks assigned to a plurality of sections, a plurality of Flash Translation Tables stored in a memory comprising a Forward Translation Table that maps a Section to a plurality of physical blocks, and a Sector Translation Table for each Section, the Sector Translation Table operable to map to a Physical Page Number identifying a particular Page, a Page Offset identifying a particular location within the Page, and a Section Local Block Table comprising Block Physical Addresses indexed by a Section Local Block Table ID.
-
Citations
9 Claims
-
1. A method for translating a logical address to a physical address in a flash memory, comprising:
-
receiving a Logical Sector Number as the location for a data access operation; using the Logical Sector Number to obtain a {Section ID, Section Relative Sector ID} tuple; using the Section ID to identify and access one of a plurality of Sector Translation Tables; accessing the identified Sector Translation Table using Section Relative Sector ID as an index to access a {Section Local Block Table ID, Physical Page Number, Page Offset} tuple; using the Section Local Block Table ID to identify a physical block in the flash memory that is represented by a {Flash Device ID, DIE, Logical Unit, Block Number} tuple; and accessing a particular location in the physical block of the flash memory identified by the {Flash Device ID, DIE, Logical Unit, Block Number, Physical Page Number, Page Offset} tuple. - View Dependent Claims (2, 3)
-
-
4. A method for an hierarchical flash translation layer for a flash device, comprising:
-
forming a table that maps a fixed number of Physical Blocks in the flash device to Section Numbers; and forming a Sector Translation Table for each Section Number, the Sector Translation Table operable to map to a Physical Page Number identifying a particular Page, a Page Offset identifying a particular location within the Page, and a Section Local Block Table comprising Block Physical Addresses indexed by a Section Local Block Table ID.
-
-
5. A method for booting a flash memory device comprising:
-
determining a Section ID for a boot sector; loading a Section Local Block Table for the section identified by the Section ID, the Section Local Block Table containing the address of a plurality of blocks; reading data in the blocks identified in the Section Local Block Table to initialize a Sector Translation Table for the section identified by the Section ID; determining a Section Relative Sector ID; accessing the identified Sector Translation Table using Section Relative Sector ID as an index to access a {Section Local Block Table ID, Physical Page Number, Page Offset} tuple; using the Section Local Block Table ID to identify a physical block in the flash memory that is represented by a {Flash Device ID, DIE, Logical Unit, Block Number} tuple; and accessing a particular location in the physical block of the flash memory containing boot records identified by the {Flash Device ID, DIE, Logical Unit, Block Number, Physical Page Number, Page Offset} tuple.
-
-
6. A flash memory system comprising:
-
a flash device operable to store data in a plurality of physical blocks assigned to a plurality of sections; hierarchical Flash Translation Tables stored in a memory; and a plurality of DSP core processors operable to process, in parallel, a plurality of Flash Translation Table lookup operations each associated with a section of the flash device. - View Dependent Claims (7)
-
-
8. A flash memory system comprising:
-
a flash device operable to store data in a plurality of physical blocks assigned to a plurality of sections; a plurality of Flash Translation Tables stored in a memory comprising; a Forward Translation Table that maps a Section to a plurality of physical blocks; and a Sector Translation Table for each Section, the Sector Translation Table operable to map to a Physical Page Number identifying a particular Page, a Page Offset identifying a particular location within the Page, and a Section Local Block Table comprising Block Physical Addresses indexed by a Section Local Block Table ID. - View Dependent Claims (9)
-
Specification