Memory mapping techniques
First Claim
Patent Images
1. A method comprising:
- obtaining a read request associated with one or more logical sectors that are mapped to physical pages in non-volatile memory, the read request including a sector address corresponding to a first page address in the non-volatile memory;
checking an index table of contents (TOC) in volatile memory to determine if the first page address is contained in an index table cache in the volatile memory, wherein the index TOC is configured for storing a physical address of an index table that is included in the non-volatile memory for holding physical addresses of data pages, the index TOC including an entry storing (i) a second page address of an index table entry in the non-volatile memory that holds the first page address and (ii) a pointer to an entry in the index table cache that is storing the first page address or to an indicator that the first page address is not stored in the index table cache;
based on determining that the first page address is contained in the index table cache;
reading the first page address from the index table cache; and
performing the read operation on the non-volatile memory using the first page address.
1 Assignment
0 Petitions
Accused Products
Abstract
Memory mapping techniques for non-volatile memory are disclosed where logical sectors are mapped into physical pages using data structures in volatile and non-volatile memory. In some implementations, a first lookup table in non-volatile memory maps logical sectors directly into physical pages. A second lookup table in volatile memory holds the physical address of the first lookup table in non-volatile memory. In some implementations, a cache in volatile memory holds the physical addresses of the most recently written logical sectors. Also disclosed is a block TOC describing block content which can be used for garbage collection and restore operations.
98 Citations
25 Claims
-
1. A method comprising:
-
obtaining a read request associated with one or more logical sectors that are mapped to physical pages in non-volatile memory, the read request including a sector address corresponding to a first page address in the non-volatile memory; checking an index table of contents (TOC) in volatile memory to determine if the first page address is contained in an index table cache in the volatile memory, wherein the index TOC is configured for storing a physical address of an index table that is included in the non-volatile memory for holding physical addresses of data pages, the index TOC including an entry storing (i) a second page address of an index table entry in the non-volatile memory that holds the first page address and (ii) a pointer to an entry in the index table cache that is storing the first page address or to an indicator that the first page address is not stored in the index table cache; based on determining that the first page address is contained in the index table cache; reading the first page address from the index table cache; and performing the read operation on the non-volatile memory using the first page address. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A method comprising:
-
obtaining a write request associated with one or more logical sectors that are mapped to physical pages in non-volatile memory, the write request including a logical sector address corresponding to page addresses in the non-volatile memory; determining if a current data block is full, wherein the current data block includes a plurality of pages, wherein one page of the plurality of pages is designated to store a block table of contents (TOC) that includes information mapping logical sectors to pages only in the current data block, and wherein the current data block is full when the plurality of pages have been written except for the one page; based on determining that the current data block is full; writing the block TOC to the one page of the current data block; determining if a free block is available; and upon determining that a free block is not available; performing a garbage collection operation to generate a free block; and allocating the generated free block as the current data block. - View Dependent Claims (10, 11, 12, 13, 14, 15)
-
-
16. A memory system, comprising:
-
volatile memory storing an index table cache and an index table of contents; non-volatile memory storing an index table that is configured for storing physical addresses of data pages corresponding to logical sectors; a controller coupled to the volatile memory and non-volatile memory and operable for performing operations comprising; obtaining a read request associated with a logical sector corresponding to a first page address in the non-volatile memory; checking the index table of contents to determine if the first page address is stored in the index table cache, wherein the index table of contents includes an entry storing (i) a second page address of an index table entry that holds the first page address and (ii) a pointer to an entry in the index table cache that is storing the first page address or to an indicator that the first page address is not stored in the index table cache; based on determining that the first page address is stored in the index table cache; reading the first page address from the index table cache; and performing the read operation on the non-volatile memory using the first page address. - View Dependent Claims (17, 18, 19)
-
-
20. A memory system, comprising:
-
volatile memory storing an index table cache and an index table of contents; non-volatile memory storing an index table with entries storing addresses of physical pages in the non-volatile memory, the physical pages corresponding to logical sectors; a controller coupled to the volatile memory and non-volatile memory and operable for performing operations comprising; obtaining a write request associated with one or more logical sectors, the write request including a first sector address corresponding to a data block in the non-volatile memory; determining if a current data block is full, wherein the current data block includes a plurality of pages, wherein one page of the plurality of pages is designated to store a block table of contents (TOC) that includes information mapping logical sectors to pages only in the current data block, and wherein the current data block is full when the plurality of pages have been written except for the one page; based on determining that the current data block is full; writing the block TOC to the one page of the current data block; determining if a free block is available; upon determining that a free block is not available, performing a garbage collection operation to generate a free block; and allocating the free block as the current data block. - View Dependent Claims (21, 22, 23, 24, 25)
-
Specification