Logical-to-Physical Address Translation for Solid State Disks
First Claim
1. A method of transferring data between one or more sectors of a storage device and an external device, the sectors of the storage device organized into blocks and superblocks, the method comprising:
- at a flash translation layer;
mapping a physical address in the storage device to a logical sector address, wherein the logical sector address corresponds to mapping data comprising;
i) a page index, ii) a block index, and iii) a superblock number of the storage device;
storing the mapping data in at least one summary page corresponding to the superblock containing the physical address;
storing one or more page offsets of an active block in the superblock in at least one active block table corresponding to the superblock;
storing a block index and a page index of the at least one summary page and an address of the at least one active block table, for each superblock of the storage device, in a page global directory corresponding to the storage device.
8 Assignments
0 Petitions
Accused Products
Abstract
Described embodiments provide logical-to-physical address translation for data stored on a storage device having sectors organized into blocks and superblocks. A flash translation layer maps a physical address in the storage device to a logical sector address. The logical sector address corresponds to mapping data that includes i) a page index, ii) a block index, and iii) a superblock number. The mapping data is stored in at least one summary page corresponding to the superblock containing the physical address. A block index and a page index of a next empty page in the superblock are stored in a page global directory corresponding to the superblock. A block index and a page index of the at least one summary page and the at least one active block table for each superblock are stored in at least one active block table of the storage device.
-
Citations
20 Claims
-
1. A method of transferring data between one or more sectors of a storage device and an external device, the sectors of the storage device organized into blocks and superblocks, the method comprising:
at a flash translation layer; mapping a physical address in the storage device to a logical sector address, wherein the logical sector address corresponds to mapping data comprising;
i) a page index, ii) a block index, and iii) a superblock number of the storage device;storing the mapping data in at least one summary page corresponding to the superblock containing the physical address; storing one or more page offsets of an active block in the superblock in at least one active block table corresponding to the superblock; storing a block index and a page index of the at least one summary page and an address of the at least one active block table, for each superblock of the storage device, in a page global directory corresponding to the storage device. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17)
-
18. An apparatus for transferring data between one or more sectors of a storage device and at least one external device via a communication link, the sectors of the storage device organized into blocks and superblocks, the apparatus comprising:
-
a host layer module adapted to send data to, and receive data from, the communication link, wherein data requests are received from the at least one external device, and wherein the data requests comprise i) a starting logical sector address and ii) a span of sectors to be transferred; a buffer for storing data to be transferred to or from the storage device; a buffer layer module for i) managing the buffer and ii) allocating storage space in the buffer corresponding to the span of sectors to be transferred; at least one active block table corresponding to each superblock, the active block table for storing one or more page offsets of an active block in the corresponding superblock; at least one summary page for storing mapping data corresponding to each superblock, wherein the mapping data maps a physical address in the storage device to a logical sector address, the mapping data comprising;
i) a page index, ii) a block index, and iii) a superblock number;a page global directory for storing a block index and a page index of the at least one summary page and an address of the at least active block table for each superblock of the storage device; a flash translation layer module for i) identifying for the data request, based on the starting logical sector address, the corresponding page index, block index, and superblock number, ii) maintaining the data stored in the page global directory, the active block tables, and the summary pages, and iii) iteratively identifying physical addresses for sectors in the span of sectors based on i) the active block table of the superblock, if the physical address is in the active block of the superblock, otherwise, ii) the summary page of the superblock, based on the block index and page index. - View Dependent Claims (19, 20)
-
Specification