Reserved Block Area

Top  Previous  Next

 

This method is based on the idea of replacing invalid blocks with good blocks by re-directing reading and writing operations to these good blocks. To implement this method the programming equipment splits the entire memory in three linear memory areas following each other from the start  address of the memory device. Each of these areas may include both good and bad blocks:
 

The User Block Area (UBA) - a linear memory array for storing the user's data;

The Block Reservoir - a linear memory array that follows right after the User Block Area; good blocks from the Block Reservoir replaces invalid blocks from the User Block Area;

The Reserved Block Area (RBA) - this part of the device's memory stores the information about bad blocks in the User Block Area replaced by good blocks from the Block Reservoir. This map is represented by pair of addresses of the invalid UBA's blocks and corresponding good blocks from the data reservoir. The first good block in the RBA stores the the RBA map table, the second a duplicate of it in case of the RBA table corruption.

 

The programming algorithm works in the following way:

1) it splits blocks of the device in three areas: User Block Area, Block Reservoir and Reserved Block Area;

2) it reads the Spare Area and builds the RBA map table with the following structure of the data fields:

 

Field:

RBA Marker

Count Field

Invalid Block

Replaced Block

Invalid Block

Replaced Block

.......

Invalid Block

Replaced Block

Size:

2 байта

2 байта

2 байта

2 байта

2 байта

2 байта

.......

2 байта

2 байта

 

where:

RBA Marker - is 0FDFEh (there is an equivalent term for this parameter used in some NAND Flash device data sheets: Transition Field).

Count Field - starts from 1 and increments by one for each page of the map table.

Invalid Block - Number of the invalid block in the UBA being replaced.

Replaced Block - Number of the valid block in the Block Reservoir that replaces the invalid block above.

 

The Invalid Block - Replaced Block pairs follow each other till the page break.

 

When the programming equipment detects an invalid block in the User Block Area it appoints the first available valid block in the Block Reservoir and updates the RBA table to keep track of relation between invalid blocks in the User Block Area and replaced good ones in the Block Reservoir.