Device and method for managing a flash memory
First Claim
1. A method for accessing a flash memory, the method comprises:
- receiving a read request that is associated with a logical address that is mapped to a physical address of a set of flash memory cells;
accessing multiple mapping data structures of different granularity to obtain the physical address of the set of flash memory cells;
wherein the accessing comprises accessing a first mapping data structure that maps logical erase block addresses to physical erase block addresses and accessing a second mapping data structure that comprises mapping information relating to multiple physical or logical pages;
wherein the flash memory comprises multiple erase blocks, each erase block comprises multiple physical pages that are written in a sequential manner and are associated with logical page addresses that are assigned in a random manner;
reading a content of the set of flash memory cells;
writing to an erase block of the flash memory the second mapping data structure only after all the multiple physical pages of the erase block were written to the erase block;
accessing the first mapping data structure, the second mapping data structure and a third mapping data structure;
wherein the second mapping data structure maps logical page addresses to indexes into the third mapping data structure;
wherein the third mapping data structure maps the indexes to locations of sets of flash memory cells to overcome misalignments between information unit representations stored in the physical pages of the flash memory and physical page boundaries of the flash memory; and
wherein at least one erasure block comprises at least two sets of flash memory cells that differ from each other by their size but store representations of information units of the same size.
9 Assignments
0 Petitions
Accused Products
Abstract
A method for accessing a flash memory, the method includes: receiving a read request that is associated with a logical address that is mapped to a physical address of a set of flash memory cells; accessing multiple mapping data structures of different granularity to obtain the physical address of the set of flash memory cells; wherein during at least one point in time at least one mapping data structure is stored in an erase block and wherein the erase block comprises multiple physical pages that are written in a sequential manner and are associated with logical page addresses that are assigned in a random manner; and reading a content of the set of flash memory cells.
330 Citations
22 Claims
-
1. A method for accessing a flash memory, the method comprises:
-
receiving a read request that is associated with a logical address that is mapped to a physical address of a set of flash memory cells; accessing multiple mapping data structures of different granularity to obtain the physical address of the set of flash memory cells; wherein the accessing comprises accessing a first mapping data structure that maps logical erase block addresses to physical erase block addresses and accessing a second mapping data structure that comprises mapping information relating to multiple physical or logical pages; wherein the flash memory comprises multiple erase blocks, each erase block comprises multiple physical pages that are written in a sequential manner and are associated with logical page addresses that are assigned in a random manner; reading a content of the set of flash memory cells; writing to an erase block of the flash memory the second mapping data structure only after all the multiple physical pages of the erase block were written to the erase block; accessing the first mapping data structure, the second mapping data structure and a third mapping data structure; wherein the second mapping data structure maps logical page addresses to indexes into the third mapping data structure; wherein the third mapping data structure maps the indexes to locations of sets of flash memory cells to overcome misalignments between information unit representations stored in the physical pages of the flash memory and physical page boundaries of the flash memory; and wherein at least one erasure block comprises at least two sets of flash memory cells that differ from each other by their size but store representations of information units of the same size. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A system having flash memory management capabilities, the system comprises a management module that is coupled to a flash memory, another memory unit, and an interface;
-
wherein the interface receives a read request that is associated with a logical address that is mapped to a physical address of a set of flash memory cells;
wherein the flash memory comprises multiple erase blocks;wherein the management module is adapted to; access multiple mapping data structures of different granularity to obtain the physical address of the set of flash memory cells;
wherein the multiple mapping data structures comprise a first mapping data structure that maps logical erase block addresses to physical erase block addresses and a second mapping data structure that comprises mapping information relating to multiple physical or logical pages;wherein the erase block comprises multiple physical pages that are written in a sequential manner and are associated with logical page addresses that are assigned in a random manner; access the set of flash memory cells; and write to an erase block of the flash memory the second mapping data structure only after all the multiple physical pages of the erase block were written to the erase block; wherein the management module accesses the first mapping data structure, the second mapping data structure and a third mapping data structure;
wherein the second mapping data structure maps logical page addresses to indexes into the third mapping data structure to overcome misalignments between information unit representations stored in the physical pages of the flash memory and physical page boundaries of the flash memory;
wherein the third data structure maps the indexes to locations of sets of flash memory cells;
wherein at least one erasure block comprises two sets of flash memory cells that differ from each other by their size but store representations of information units of the same size. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20)
-
-
21. A system having flash memory management capabilities, the system comprises a management module that is coupled to a flash memory, another memory unit, and an interface;
-
wherein the interface receives a write request to write content, wherein the write request is associated with a logical address;
wherein the logical address comprises a logical erase block address and a logical inter erase block address;wherein the flash memory comprises multiple erase blocks; wherein the management module is adapted to; write the write content to a new set of flash memory cells that follow a last set of flash memory cells that were written to; and update at least one mapping data structure out of multiple mapping data structures to reflect the writing to the new set of flash memory cells; wherein the multiple mapping data structures are of different granularity; wherein the multiple mapping data structures comprise a first mapping data structure that maps logical erase block addresses to physical erase block addresses and a second mapping data structure that maps inter erase block addresses to physical inter erase block addresses of an entire erase block; and write to an erase block of the flash memory the second mapping data only after all the multiple physical pages of the erase block were written to the erase block; wherein the erase block comprises multiple physical pages that are written in a sequential manner and are associated with logical page addresses that are assigned in a random manner; wherein the management module accesses the first mapping data structure, the second mapping data structure and a third mapping data structure;
wherein the second mapping data structure maps logical page addresses to indexes into the third mapping data structure to overcome misalignments between information unit representations stored in the physical pages of the flash memory and physical page boundaries of the flash memory;
wherein the third data structure maps the indexes to locations of sets of flash memory cells;
wherein at least one erasure block comprises two sets of flash memory cells that differ from each other by their size but store representations of information units of the same size.
-
-
22. A method for writing to a flash memory, the method comprises:
-
receiving a write request to write content, wherein the write request is associated with a logical address; writing the write content to a new set of flash memory cells that follow a last set of flash memory cells that were written to; updating at least one mapping data structure out of multiple mapping data structures to reflect the writing to the new set of flash memory cells;
wherein the multiple mapping data structures are of different granularity;
wherein the multiple mapping data structures comprise a first mapping data structure that maps logical erase block addresses to physical erase block addresses and a second mapping data structure that comprises mapping information relating to multiple physical or logical pages;writing to an erase block of the flash memory the second mapping data structure only after all the multiple physical pages of the erase block were written to the erase block; wherein the erase block comprises multiple physical pages that are written in a sequential manner and are associated with logical page addresses that are assigned in a random manner; and accessing the first mapping data structure, the second mapping data structure and a third mapping data structure;
wherein the second mapping data structure maps logical page addresses to indexes into the third mapping data structure;
wherein the third mapping data structure maps the indexes to locations of sets of flash memory cells to overcome misalignments between information unit representations stored in the physical pages of the flash memory and physical page boundaries of the flash memory;
wherein at least one erasure block comprises at least two sets of flash memory cells that differ from each other by their size but store representations of information units of the same size.
-
Specification