|
发表于 2005-12-9 18:50:24
|
显示全部楼层
不过提一个问题:SanDisk的white paper上提到在SD卡上做文件系统的时候要考虑扇区负荷均衡(Wear Leveling)的问题,但不清楚到底这个事情是SD卡本身已经做掉了,或者是应用程序自己做?因为在其他文档上看到互相矛盾的说法。
原文如下:
WEAR LEVELING METHODOLOGY
Current products available in the industrial channel use NAND flash memory. It is important to
understand the NAND memory architecture to gain insight into the wear leveling mechanism.
Each memory chip is divided into blocks. A block is an array of memory cells organized as
sectors. The number of blocks and sectors vary from product to product. The minimum unit for a
write or read operation is a page (or sector). The minimum unit for an erase operation is a block.
Physical blocks are logically grouped into zones. For the current technology, a typical zone size is
4 MB. However, this may change from product to product. Wear leveling is done within a zone.
The current firmware does not spread the wear across the capacity of the card. Each zone has
about 3% additional “spare blocks” beyond what is assigned to meet the logical capacity of the
flash card. This group of blocks is commonly referred to as the “Erase Pool”.
With the introduction of SanDisk’s Write-before-Erase architecture, each time a host writes data
to the same logical address (CHS or LBA), data is written into a newly assigned, empty physical
block from the “Erase Pool”. The intrinsic nature of writing to a new physical location each time a
logical address is written to is the basis for wear leveling found in SanDisk cards. This action
spreads the writes over the zone, thus greatly extending the overall life of the card. The
methodology of using a large number of physical addresses to manage a smaller logical address
table allows for rotation of the physical addresses among the entire group of physical blocks
within a zone. The resulting wear leveling optimizes the effective life of the media and avoids
prematurely reaching the end of life on frequently written to host addresses.
When a card detects that a block has reached the end of its useful life, it removes that block from
the blocks that are available for write operations. The result is a reduction of the size of the erase
pool. This does not affect the capacity of the card as seen by the host. When the pool of blocks
available for write operations has been exhausted due to wear, the card will reach the end of its
useful life for write operations.
-----此内容被mig29于2005-12-09,18:51:10编辑过 |
|