Methods, systems and computer readable medium for writing and reading data
First Claim
Patent Images
1. A method for writing to a flash memory device, the method comprising:
- receiving multiple logical pages, each logical page having a logical address;
determining to write a logical page into a selected physical page of the flash memory device, the selected physical page has a selected physical page address that is represented by a physical page index, a set index and a block index;
the physical page index being indicative of an order of the selected physical page within a selected set of physical pages, the selected set of physical pages is being identified by the set index, the block index is indicative of a block of the flash memory device that comprises the selected set of physical pages;
calculating a hash value for each logical page of the multiple logical pages in response to (a) a logical address of the logical page and (b) the physical page index, to provide multiple hash values of the multiple logical pages;
searching for a matching logical page that is associated with a hash value that matches the set index;
writing the matching logical page to the selected physical page and updating a first data structure to be indicative of a mapping between a logical address of the matching logical page and the selected physical address; and
writing a mismatch logical page to the selected physical page, updating the first data structure and the second data structure to be indicative of a mapping between a logical address of the mismatch logical page and the selected physical address, if neither one of the multiple logical pages is associated with a hash value that matches the set index.
9 Assignments
0 Petitions
Accused Products
Abstract
A flash memory controller, a computer readable medium and a method for writing to a flash memory device, the method may include receiving multiple logical pages, each logical page having a logical address; determining to write a logical page into a selected physical page of the flash memory device; calculating a hash value for each logical page of the multiple logical pages in response to (a) a logical address of the logical page and (b) a physical page index, to provide multiple hash values of the multiple logical pages.
-
Citations
29 Claims
-
1. A method for writing to a flash memory device, the method comprising:
-
receiving multiple logical pages, each logical page having a logical address; determining to write a logical page into a selected physical page of the flash memory device, the selected physical page has a selected physical page address that is represented by a physical page index, a set index and a block index;
the physical page index being indicative of an order of the selected physical page within a selected set of physical pages, the selected set of physical pages is being identified by the set index, the block index is indicative of a block of the flash memory device that comprises the selected set of physical pages;calculating a hash value for each logical page of the multiple logical pages in response to (a) a logical address of the logical page and (b) the physical page index, to provide multiple hash values of the multiple logical pages; searching for a matching logical page that is associated with a hash value that matches the set index; writing the matching logical page to the selected physical page and updating a first data structure to be indicative of a mapping between a logical address of the matching logical page and the selected physical address; and writing a mismatch logical page to the selected physical page, updating the first data structure and the second data structure to be indicative of a mapping between a logical address of the mismatch logical page and the selected physical address, if neither one of the multiple logical pages is associated with a hash value that matches the set index. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
-
15. A non-transitory computer readable medium that stores instructions comprising:
-
receiving multiple logical pages, each logical page having a logical address; determining to write a logical page into a selected physical page of the flash memory device, the selected physical page has a selected physical page address that is represented by a physical page index, a set index and a block index;
the physical page index being indicative of an order of the selected physical page within a selected set of physical pages, the selected set of physical pages is being identified by the set index, the block index is indicative of a block of the flash memory device that comprises the selected set of physical pages;calculating a hash value for each logical page of the multiple logical pages in response to (a) a logical address of the logical page and (b) the physical page index, to provide multiple hash values of the multiple logical pages; searching for a matching logical page that is associated with a hash value that matches the set index; writing the matching logical page to the selected physical page and updating a first data structure to be indicative of a mapping between a logical address of the matching logical page and the selected physical address; and writing a mismatch logical page to the selected physical page, updating the first data structure and the second data structure to be indicative of a mapping between a logical address of the mismatch logical page and the selected physical address—
if neither one of the multiple logical pages is associated with a hash value that matches the set index. - View Dependent Claims (16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28)
-
-
29. A flash memory controller, comprising:
-
a buffer arranged to receive and store multiple logical pages, each logical page having a logical address; a write circuit arranged to determine to write a logical page into a selected physical page of a flash memory device that is coupled to the flash memory controller, the selected physical page has a selected physical page address that is represented by a physical page index, a set index and a block index;
the physical page index being indicative of an order of the selected physical page within a selected set of physical pages, the selected set of physical pages is being identified by the set index, the block index is indicative of a block of the flash memory device that comprises the selected set of physical pages;a hash circuit arranged to calculate a hash value for each logical page of the multiple logical pages in response to (a) a logical address of the logical page and (b) the physical page index, to provide multiple hash values of the multiple logical pages; a search circuit arranged to search for a matching logical page that is associated with a hash value that matches the set index; wherein the write circuit is arranged to write the matching logical page to the selected physical page and updating a first data structure to be indicative of a mapping between a logical address of the matching logical page and the selected physical address; and write a mismatch logical page to the selected physical page, updating the first data structure and the second data structure to be indicative of a mapping between a logical address of the mismatch logical page and the selected physical address—
if neither one of the multiple logical pages is associated with a hash value that matches the set index.
-
Specification