Logical to physical table fragments
AssigneeMicron Technology, Inc.
InventorsDaniele Balluchi, Dionisio Minopoli
Life of this patent
Estimating the term…
Abstract
Logical to physical tables each including logical to physical address translations for first logical addresses can be stored. Logical to physical table fragments each including logical to physical address translations for second logical address can be stored. A first level index can be stored. The first level index can include a physical table address of a respective one of the logical to physical tables for each of the first logical addresses and a respective pointer to a second level index for each of the second logical addresses. The second level index can be stored and can include a physical fragment address of a respective logical to physical table fragment for each of the second logical addresses.
Claims22
A method comprising:
- storing a plurality of logical to physical tables in secondary storage, each including logical to physical address translations for first logical addresses;
- storing a plurality of logical to physical table fragments in a first dedicated area of the secondary storage, each including logical to physical address translations for second logical address, wherein storing the plurality of logical to physical table fragments comprises:
- storing a respective first portion of each of the plurality of logical to physical table fragments in the first dedicated area of the secondary storage;
- and
- storing a respective second portion of each of the plurality of logical to physical table fragments in a second dedicated area of the secondary storage;
- storing a first level index in the secondary storage, the first level index including:
- a physical table address of a respective one of the plurality of logical to physical tables for each of the first logical addresses;
- and
- a respective pointer to a second level index for each of the second logical addresses;
- storing the second level index in the secondary storage, the second level index including a physical fragment address of a respective logical to physical table fragment for each of the second logical addresses;
- and
- caching the first level index and the second level index in primary storage.
A method comprising:
- storing a plurality of logical to physical tables, each including logical to physical address translations for first logical addresses;
- storing a plurality of logical to physical table fragments each including logical to physical address translations for second logical address;
- storing a first level index including:
- a physical table address of a respective one of the plurality of logical to physical tables for each of the first logical addresses;
- and
- a respective pointer to a second level index for each of the second logical addresses, wherein storing the first level index includes:
- storing a first fragmentation indicator associated with the first logical addresses;
- and
- storing a second fragmentation indicator and a respective second level index type indicator associated with the second logical addresses;
- and
- storing the second level index including a physical fragment address of a respective logical to physical table fragment for each of the second logical addresses.
A method comprising:
- storing a plurality of logical to physical tables, each including logical to physical address translations for first logical addresses;
- storing a plurality of logical to physical table fragments each including logical to physical address translations for second logical address;
- storing a first level index including:
- a physical table address of a respective one of the plurality of logical to physical tables for each of the first logical addresses;
- and
- a respective pointer to a second level index for each of the second logical addresses;
- storing the second level index including a physical fragment address of a respective logical to physical table fragment for each of the second logical addresses;
- starting a table copy operation to copy one of the plurality of logical to physical tables;
- and
- suspending the table copy operation after copying only a portion of the logical to physical address translations corresponding to an integer quantity of logical to physical table fragments.
An apparatus, comprising:
- primary storage;
- secondary storage;
- and
- a controller coupled to the primary storage and to the secondary storage, wherein the controller is configured to:
- in response to receiving a logical address:
- search a first level index in the primary storage of logical to physical tables using the logical address;
- retrieve, from a logical to physical table, a first physical address of the secondary storage corresponding to the logical address in response to finding a physical table address of the logical to physical table stored in the first level index for the logical address;
- search a second level index of logical to physical table fragments in response to finding a pointer to the second level index stored in the first level index for the logical address;
- and
- retrieve, from a logical to physical table fragment, a second physical address of the secondary storage corresponding to the logical address in response to finding a physical fragment address of the logical to physical table fragment stored in the second level index for the logical address;
- and
- in response to the physical table address of the logical to physical table being stored in the first level index for the logical address;
- and
- in response to more than a hot threshold quantity of writes of data associated with the logical address over a measurement interval:
- copy the data associated with the logical address to the second physical address of the secondary storage;
- add, to the first level index, the pointer to the second level index for the logical address;
- and
- remove the physical table address of the logical to physical table stored in the first level index for the logical address.
An apparatus, comprising:
- primary storage;
- secondary storage;
- and
- a controller coupled to the primary storage and to the secondary storage, wherein the controller is configured to:
- in response to receiving a logical address:
- search a first level index in the primary storage of logical to physical tables using the logical address;
- retrieve, from a logical to physical table, a first physical address of the secondary storage corresponding to the logical address in response to finding a physical table address of the logical to physical table stored in the first level index for the logical address;
- search a second level index of logical to physical table fragments in response to finding a pointer to the second level index stored in the first level index for the logical address;
- and
- retrieve, from a logical to physical table fragment, a second physical address of the secondary storage corresponding to the logical address in response to finding a physical fragment address of the logical to physical table fragment stored in the second level index for the logical address:
- in response to the pointer to the second level index being stored in the first level index for the logical address;
- and
- in response to less than a cold threshold quantity of writes of data associated with the logical address over a measurement interval:
- copy the data associated with the logical address to a third physical address of the secondary storage;
- remove, from the first level index, the pointer to the second level index for the logical address;
- add, to the first level index, the physical table address of the logical to physical table for the logical address;
- and
- update the logical to physical table with the third physical address of the secondary storage corresponding to the logical address.
Dependencies are inferred from the claim text.