其实原因很简单:
U盘写入数据的时候,U盘里面芯片的内部需要至少一个物理块“Block”作为交换块使用,这是因为U盘内存的写入操作很特殊,必须先擦除,然后才能重新写入数据,而被擦除的最小单位是一个物理块,不过写入数据的最小单位确实一个页“page”。
在U盘内存的储存单位中,一个物理块包含了若干个物理页,因此写入数据的时候,需要有一个空的,而且可以使用的交换快来存放不需要被擦除的数据。由于U盘内存的充放电特性,使得它的读写次数有物理上的限制。一般情况下厂商
都会在U盘内部做一个读写次数的计数,当闪存芯片的某个物理存储区块达到读写指定的最高次数时,该块区将被设定为不再使用的区域,所以,在极度频繁地使用U盘的情况下,U盘的容量就有可能变得越来越小了。
目前市场上的U盘产品包括两类:
1. 无预留缓冲空间的U盘:由于没有预留的空间,U盘在读写的时候交换快的损耗很大,于是就会出现使用越久的U盘容量久越来越小的情况。
2. 有预留缓冲空间的U盘:厂家在设计的时候已经预留了部分的物理块,例如选择1024个物理块中的1000个作为数据存储使用,其余的24个物理块(包括坏块)作为缓冲交换块部分。每次插上U盘后,存储单元的逻辑地址和物理地址需要重
新对照,交换块并不是固定的某一区块,因而每一个物理块进行读写操作的几率几乎相同,不会出现哪一个物理块过早被损坏的现象。对于预留缓冲空间的U盘来说,基本不会出现容量越来越小的情况。