NAND flash memory management
First Claim
1. A method for accessing memory in a memory device, said method comprising:
- configuring said memory device to comprise a main memory portion and an auxiliary memory portion, wherein;
each of said main memory portion and said auxiliary memory portion comprises a plurality of blocks of memory;
each block comprises a plurality of pages of memory; and
at least one page of each block comprises a status indicator stored therein indicative of a status of a block within which said at least one page is located;
receiving a request to access a page located in said main memory portion;
selecting a block from said main memory portion in which said requested page is located;
determining a status of said selected block to be one of good and bad in accordance a status indicator stored within a predetermined page of said selected block;
for a determined status of good, providing access to said requested page located in said selected block in said main memory portion;
for a determined status of bad, providing access to a corresponding page located in a designated block of said auxiliary memory portion in accordance with an address identifier stored within said predetermined page of said designated block, said address identifier being indicative of an address of said bad block.
2 Assignments
0 Petitions
Accused Products
Abstract
A memory controller is utilized to overcome NAND flash memory'"'"'s propensity for comprising bad blocks of memory. The memory controller utilizes minimal hardware and is essentially transparent to a device requesting access to the NAND memory. A NAND flash memory device is configured to comprise a set of main blocks of memory and a set of auxiliary blocks of memory. Each block is divided into pages of memory and each page includes metadata. The metadata includes a block status indicator, indicating whether a block is good or bad. When receiving a request to access a page in the NAND flash memory, if the block in which the page resides is good, that block is accessed. If the block is bad, auxiliary memory is searched until a block containing the address of the bad block in its metadata is found. The found block is accessed in lieu of the bad block.
-
Citations
20 Claims
-
1. A method for accessing memory in a memory device, said method comprising:
-
configuring said memory device to comprise a main memory portion and an auxiliary memory portion, wherein;
each of said main memory portion and said auxiliary memory portion comprises a plurality of blocks of memory;
each block comprises a plurality of pages of memory; and
at least one page of each block comprises a status indicator stored therein indicative of a status of a block within which said at least one page is located;
receiving a request to access a page located in said main memory portion;
selecting a block from said main memory portion in which said requested page is located;
determining a status of said selected block to be one of good and bad in accordance a status indicator stored within a predetermined page of said selected block;
for a determined status of good, providing access to said requested page located in said selected block in said main memory portion;
for a determined status of bad, providing access to a corresponding page located in a designated block of said auxiliary memory portion in accordance with an address identifier stored within said predetermined page of said designated block, said address identifier being indicative of an address of said bad block. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A memory controller comprising:
-
a first input/output portion coupleable to a memory device;
a second input/output portion coupleable to an interfacing means; and
a memory management processor coupled to said first input/output portion and said second input/output portions, wherein upon receiving a request via said first input/output portion to access a page of memory of said memory device, said memory management processor;
selects a block from a main memory portion of said memory device in which said requested page is located;
determines a status of said selected block to be one of good and bad in accordance a status indicator stored within a predetermined page of said selected block;
for a determined status of good, provides access to said requested page located in said selected block in said main memory portion;
for a determined status of bad, provides access to a corresponding page located in a designated block of an auxiliary memory portion in accordance with an address identifier stored within said predetermined page of said designated block said address identifier being indicative of an address of said bad block. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A computer readable medium having stored thereon a data structure, said data structure comprising:
-
a main memory portion comprising a plurality of blocks of memory; and
an auxiliary memory portion comprising a plurality of blocks of memory, wherein;
each block of memory comprises a plurality of pages of memory;
at least one page of each block of memory comprises;
a payload portion for comprising payload data; and
a metadata portion for comprising metadata, said metadata portion comprising;
a first portion for comprising a value indicative of a status of a block within which said at least one page is located;
a second portion for comprising a value indicative of one of;
an address of a designated block located in said auxiliary memory portion; and
a status of a respective page. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification