FTL With NAND Flash

10 May

Take the address mapping table number, each initialization through all the physical block to find the latest numbered address mapping table.

Initializes but if each NANDFlash the need that the address mapping table to find the last stored one by one physical block, and through all the physical blocks, greatly increasing the time required to initialize. In order to reduce the initialization time, we will have a fixed physical block is used to store the last normal uninstall before NANDFlash module of the address mapping table FTL mark, indicating that the normal uninstall this block is the latest address mapping table. This initialization only first read the physical block to see if properly labeled, called the address mapping table is read into memory to complete the initialization, if not on behalf of the non-normal uninstall one by one physical block, continue to search for the latest address mapping table. Thus, in the case of normal unloading modules, greatly reducing the time of initialization.

In order to reduce the the frequent physical block read and write and faster read and write, we use the cache, we apply for a block size of space in memory as a cache. Actual drive, any read and write operations are in fact the cache operation, when the physical block to read and write in the cache, the cache operation, when the physical block to read and write is not in the cache, FTL now the cache block is written back to the corresponding physical block, then the requested block is read into the cache operation. Cache block is the most convenient is the easiest to implement a cache, the methods used in this design. However, with the the single block NANDFlash increase in storage capacity, is bound to increase because of the use of cache and memory overhead, so we can consider only cache a fixed number of pages, rather than the block cache.

Due to inherent reason NANDFlash, bad block is inevitable, so we drive must have a bad block management, bad block is divided into the factory bad blocks and use bad block will be marked by the manufacturer NANDFLASH factory factory bad blocks, driven design in the initialization process will read the corresponding flag bit, if it is a bad block will be recorded later use is no longer the bad block; during the operation, the operation of block 3 of failures, we think that this block is broken, which is in bad blocks, the block is marked as bad blocks, and from the reserved block to find one to replace it, the reserved block is reserved in advance for bad the block replacement block, set aside a block does not directly participate in the reading and writing, only used for load balancing, the reserved block size is not in entire NANDFlash can use storage space, this design is to avoid because of bad blocks For easier for the user to accept, caused by the continuous reduction of the storage capacity, the number of reserved block can be in the driver based on the demand adjusted.


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: