Flash memory architecture with separate storage of overhead and user data
First Claim
1. A method of storing digital data within a Flash Memory System comprising the steps:
- a. mapping a non-volatile memory medium within the Flash Memory System into a plurality of independently addressable, independently programmable and independently erasable memory blocks including a plurality of Dedicated Data Blocks and a plurality of Dedicated Overhead Blocks comprising a first Dedicated Overhead Block and a second Dedicated Overhead Blocks;
b. mapping each of the plurality of Dedicated Overhead Blocks into a plurality of pages, wherein the plurality of pages within each Dedicated Overhead Block are addressed according to an identical set of consecutive page addresses;
c. mapping each of the plurality of Overhead Pages into a plurality of Overhead Segments, wherein the plurality of Overhead Segments within each page are addressed according to an identical set of consecutive segment addresses, each Overhead Segment comprising a plurality of registers including a Physical Address Register and a flag field; and
d. correlating the plurality of consecutive Overhead Page addresses within the first Dedicated Overhead Block to a respective plurality of consecutive Virtual Logical Block Addresses including a first Logical Block Address defining a first Logical Block of User Data correlated to a first Overhead Page address defining a first Overhead Page.
10 Assignments
0 Petitions
Accused Products
Abstract
A flash memory system segregates overhead data from user data so that overhead data may be addressed, programmed and erased independently from user data. The non-volatile memory medium of a flash memory system is mapped into a plurality of separately addressable memory blocks that are independently programmable and independently erasable, including a plurality of Dedicated Overhead Blocks and Dedicated Data Blocks. The Dedicated Overhead Blocks are mapped according to a plurality of distinguishably addressable segments, and include a first Dedicated Overhead Block and a second Dedicated Overhead Block. User Data defined by a VLBA is stored in a Dedicated Data Block within the flash memory.
168 Citations
49 Claims
-
1. A method of storing digital data within a Flash Memory System comprising the steps:
-
a. mapping a non-volatile memory medium within the Flash Memory System into a plurality of independently addressable, independently programmable and independently erasable memory blocks including a plurality of Dedicated Data Blocks and a plurality of Dedicated Overhead Blocks comprising a first Dedicated Overhead Block and a second Dedicated Overhead Blocks; b. mapping each of the plurality of Dedicated Overhead Blocks into a plurality of pages, wherein the plurality of pages within each Dedicated Overhead Block are addressed according to an identical set of consecutive page addresses; c. mapping each of the plurality of Overhead Pages into a plurality of Overhead Segments, wherein the plurality of Overhead Segments within each page are addressed according to an identical set of consecutive segment addresses, each Overhead Segment comprising a plurality of registers including a Physical Address Register and a flag field; and d. correlating the plurality of consecutive Overhead Page addresses within the first Dedicated Overhead Block to a respective plurality of consecutive Virtual Logical Block Addresses including a first Logical Block Address defining a first Logical Block of User Data correlated to a first Overhead Page address defining a first Overhead Page. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A method of data storage within a Flash Memory comprising the steps:
-
a. mapping a non-volatile memory medium within the Flash Memory System into a plurality of independently addressable, independently programmable and independently erasable memory blocks including a plurality of Dedicated Data Blocks and a plurality of Dedicated Overhead Blocks comprising a first Dedicated Overhead Block and a second Dedicated Overhead Block; b. mapping each of the plurality of Dedicated Overhead Blocks into a plurality of consecutively addressed Overhead Segments, wherein the plurality of segments within each Dedicated Overhead Block are addressed according to an identical set of distinct segment addresses, each segment comprising a Physical Address Register and a Flag Field; c. correlating the first Dedicated Overhead Block to a first group of Virtual Logical Block Addresses including a first Virtual Logical Block Address; d. receiving from a host a first set of User Data defined according to a first Virtual Logical Block Address; e. identifying a first available Overhead Segment within the first Dedicated Overhead Block, the first available Overhead Segment comprising a lowest addressable available Overhead Segment within the first Dedicated Overhead Block, an available Overhead Segment comprising an Overhead Segment that is unused, non-defective, and not obsolete; f. storing the first set of User Data in a first Dedicated Data Block defined according to a first Virtual Physical Block Address; and g. storing an address of the first Dedicated Data Block in the Physical Address Register of the first available Overhead Segment, wherein user data and overhead data are segregated in separate memory blocks, such that the user data are stored only in the plurality of dedicated data blocks and the overhead data are separately stored only in the plurality of dedicated overhead blocks. - View Dependent Claims (15, 16, 17, 18, 19, 20, 21)
-
-
22. A method of storing digital data within a Flash Memory System comprising the steps:
-
a. mapping a non-volatile memory medium within the Flash Memory System into a plurality of separately addressable, separately programmable and separately erasable memory blocks comprising a plurality of Dedicated Data Blocks and a plurality of Dedicated Overhead Blocks, the plurality of Dedicated Overhead Blocks including a first Dedicated Overhead Block and a second Dedicated Overhead Block; b. mapping each of the plurality of Dedicated Overhead Blocks into a fixed overhead field and a random overhead field, wherein the fixed overhead field of each of the plurality of Dedicated Overhead Blocks comprises a plurality of consecutively addressable Overhead Segments defined according to an identical sequence of Overhead Segment addresses, and a random overhead field comprises a plurality of consecutively addressable Overhead Segments, each Overhead Segment comprising a plurality of registers including a Physical Address Register; and c. correlating the plurality of consecutively addressable Overhead Segment within the fixed overhead field of the first Dedicated Overhead Block to a first group of consecutively addressable Virtual Logical Block Addresses including a first fixed segment correlated to a first Virtual Logical Block Address. - View Dependent Claims (23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33)
-
-
34. A method of storing digital data within a Flash Memory System comprising the steps:
-
a. mapping a non-volatile memory medium within the Flash Memory System into a plurality of separately addressable, separately programmable and separately erasable memory blocks comprising a plurality of Dedicated Data Blocks and a plurality of Dedicated Overhead Blocks, the plurality of Dedicated Overhead Blocks including a first Dedicated Overhead Block and a second Dedicated Overhead Block; b. mapping each of the plurality of Dedicated Overhead Blocks into plurality of Super Overhead Fields, including a first Super Overhead Field within the first Dedicated Overhead Block; c. mapping each of the plurality of Super Overhead Fields into an identical set of consecutively addressable Overhead Segments, each of the plurality of Overhead Segments comprising a plurality of registers including a Physical Address Register; d. correlating a first Super Virtual Logical Block Address defined by consecutive Virtual Logical Block Addresses to the first Dedicated Overhead Block; and e. correlating a first Virtual Logical Block Address within the first Super Virtual Logical Block Address to a first Overhead Segment Address within the first Dedicated Overhead Block. - View Dependent Claims (35, 36, 37, 38, 39, 40, 41, 42, 43, 44)
-
-
45. A flash memory device for storing User Data comprising a plurality of separate, independently addressable, independently programmable and independently erasable non-volatile Physical Memory Blocks distinguishably defined by a plurality of Physical Block Addresses including:
-
a. a plurality of dedicated data Blocks for storing User Data only; and b. a plurality of consecutively addressed Dedicated Overhead Blocks for storing Overhead Data only including a first Dedicated Overhead Block and a second Dedicated Overhead Block, wherein the plurality of dedicated data blocks is segregated from the plurality of dedicated overhead blocks, wherein each Dedicated Overhead Block is identically comprised of a plurality of separately addressable Overhead Pages, each block following an identical sequence of page addresses, wherein each Overhead Page is comprised of a plurality of independently addressable and independently programmable segments, including a plurality of Overhead Segments, wherein the plurality of independent Overhead Segments are used for storing Overhead Data, each Overhead Segment supporting one Virtual Logical Block of User Data, each Overhead Segment comprising; a. physical Address Register for storing a Physical Address for locating corresponding User Data; and b. a flag field, wherein a first group of Virtual Logical Block Addresses including a first VLBA are assigned to the first Dedicated Overhead Block, such that overhead data generated in support of the first VLBA will be stored in an Overhead Segment within the first Dedicated Overhead Block, wherein sequential VLBA'"'"'s within the first group of VLBA'"'"'s are respectively correlated to sequentially addressed Overhead Page Addresses within the first Dedicated Overhead Block, including a first Virtual Logical Block Address correlated to a first Overhead Page within the first Dedicated Overhead Block, such that Overhead Data supporting the first Virtual Logical Block Address will be stored in an Overhead Segment within the first Overhead Page.
-
-
46. A Flash Memory Device for storing User Data comprising a plurality of separate, independently addressable, independently programmable and independently erasable non-volatile Physical Memory Blocks distinguishably defined by a plurality of Physical Block Addresses including:
-
a. a plurality of dedicated data Blocks for storing User Data only; and b. a plurality of consecutively addressed Dedicated Overhead Blocks for storing Overhead Data only including a first Dedicated Overhead Block and a second Dedicated Overhead Block, wherein the plurality of dedicated data blocks is segregated from the plurality of dedicated overhead blocks, wherein each Dedicated Overhead Block is identically comprised of a plurality of separately addressable Overhead Pages, each block following an identical sequence of page addresses, wherein each Overhead Page is comprised of a plurality of independently addressable and independently programmable segments, including a plurality of Overhead Segments, wherein the plurality of independent Overhead Segments are used for storing Overhead Data, each Overhead Segment supporting one Virtual Logical Block of User Data, each Overhead Segment comprising; a. physical Address Register for storing a Physical Address for locating corresponding User Data; and b. a flag field, wherein a first group of Virtual Logical Block Addresses including a first VLBA are assigned to the first Dedicated Overhead Block, such that overhead data generated in support of the first VLBA will be stored in an Overhead Segment within the first Dedicated Overhead Block, wherein each of the plurality of Dedicated Overhead Blocks further comprise of a fixed Overhead Field and a Random Overhead Field, the fixed Overhead Field being comprised of a plurality of consecutively addressed Overhead Pages, and the Random Overhead Field being comprised of a plurality of consecutively addressed Overhead Pages. - View Dependent Claims (47, 48)
-
-
49. A Flash Memory Device for storing User Data comprising a plurality of separate, independently addressable, independently programmable and independently erasable non-volatile Physical Memory Blocks distinguishably defined by a plurality of Physical Block Addresses including:
-
a. a plurality of dedicated data Blocks for storing User Data only; and b. a plurality of consecutively addressed Dedicated Overhead Blocks for storing Overhead Data only including a first Dedicated Overhead Block and a second Dedicated Overhead Block, wherein the plurality of dedicated data blocks is segregated from the plurality of dedicated overhead blocks, wherein each Dedicated Overhead Block is identically comprised of a plurality of separately addressable Overhead Pages, each block following an identical sequence of page addresses, wherein each Overhead Page is comprised of a plurality of independently addressable and independently programmable segments, including a plurality of Overhead Segments, wherein the plurality of independent Overhead Segments are used for storing Overhead Data, each Overhead Segment supporting one Virtual Logical Block of User Data, each Overhead Segment comprising; a. physical Address Register for storing a Physical Address for locating corresponding User Data; and b. a flag field, wherein a first group of Virtual Logical Block Addresses including a first VLBA are assigned to the first Dedicated Overhead Block, such that overhead data generated in support of the first VLBA will be stored in an Overhead Segment within the first Dedicated Overhead Block, wherein each Dedicated Overhead Block is further comprised of a plurality of Super Overhead Fields including a first Super Overhead Field, a Super Overhead Field comprised of a whole number of pages, each Super Overhead Field within the first Dedicated Overhead Block comprised of an identical number of pages, wherein consecutive Overhead Segments within first Super Overhead Region are respectively assigned to consecutively addressed Virtual Logical Block Addresses which comprise a first SuperBlock.
-
Specification