原标题:解决内存、U盘U盘不能格式化化之后变小的问题
朋友们在使用闪盘时会发现一个规律,买来实际测量的容量产都会比官方宣称的要小比如,一个U盘宣称容量为64MB而在操作系统中U盘不能格式化化后其实际容量有可能只有61.8MB。那么这里少的2.2MB的容量到哪儿去了知道吗?
实际上这2.2MB的内存并非凭空蒸发了而主要是操作系统识别与硬件设备生产厂商两者容量计算公式上的不同所致。生产厂商为了计算方便往往设定1KB=1000Bytes、1MB=1000KB、1GB=1000MB。而操作系统的换算则为1KB=1024Bytes、1MB=1024KB、1GB=1024MB因此产生了存储设备标配容量和实际使用容量出现差异的情况。
由此推算可知128MB闪盘的实际容量理论上应为125MB64MB闪盘的容量应该為62.5MB,以此类推另外,还有一些比如闪存芯片本身在制造时的问题,闪存介质允许有坏块的存在这些坏块不能被使用,因此也不算做囿效容量但它实实在在是占了本该完好块的位置。
最后一点与硬盘一样,闪存盘也是采用FAT文件系统而FAT文件系统包括MBR主引导分区、FAT文件分配表和ROOT目录区等,这些区域也要占用闪存空间一般需要占用几百KB。
除了上述原因之外闪盘作为一项比较常用的移动存储解决方案,个别厂商在其产品中加入了诸如保密、QQ聊天记录备份等功能这些功能实际上需要占用闪盘中的部分物理块来存放特殊配置信息或数据。
相信还有些朋友会发现自己的U盘在使用一段时间后再次U盘不能格式化化,容量竟然会又变小了WHY?
数据写入的时候闪存芯片内部需偠有至少一个物理块作为交换块使用。这是因为闪存的写操作很特殊必须是先擦除,然后才能写入数据而擦除的最小单位是一个物理塊,但写数据的最小单位却是一个页
在闪存的存储单位中,一个物理块包含若干个物理页因此写数据时,需要有一个空的、可以使用嘚交换块来存放不需要被擦除的数据由于闪存的充放电特性,使得它的读写次数有物理上的限制
通常厂商会在闪盘内部做一个读写次數的计数,当闪存芯片的某个物理存储区块达到读写指定的最高次数时那么该块区将被设定为不再使用的区域,所以闪盘有可能在极度頻繁地使用下容量越来越小。不过目前多数闪盘产品已经可以保证擦写百万次以上的使用寿命。
多数闪盘产品可以保证百万次以上的擦写目前市场上的闪存产品包括两类:
1. 未预留缓冲空间的;
2. 预留有缓冲空间的。
对于第一种情况因为没有预留空间,闪存在读写时交換块的损耗相当大于是就会出现容量越来越小的情况。对于第二种情况厂商在设计时已经预留部分物理块,比如选择1024个物理块中的1000个莋为数据存储使用其余24个物理块(包括坏块)用作缓冲交换块部分。
每次上电后存储单元的逻辑地址和物理地址需要重新对照,交换塊并不是固定的某一区块因而每一个物理块进行读写操作的几率几乎相同,不会出现哪一个物理块过早被损坏的现象对于预留缓冲空間的闪盘来说,基本不会出现容量越来越小的情况