中花

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1281|回复: 0
打印 上一主题 下一主题

[转贴] 闪存盘真实容量测算方法[转]

[复制链接]

584

主题

5759

帖子

2085

积分

精灵王

积分
2085

会员最具活力勋章贴图大师勋章财富勋章团队最酷帅哥勋章

跳转到指定楼层
楼主
发表于 2007-12-15 18:58:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
闪存盘真实容量测算方法[转]
我们在平时使用闪盘时,细心的话,会发现产品的实际容量往往要比其标称容量小。举个例子,一个全新的闪盘产品标称容量为64MB,而在操作系统中格式化后其实际容量可能只有61.8MB。那么这里少的2.2MB的容量到哪儿去了?难道厂商卖给我们的产品“短斤少两”?

闪存盘


  这2.2MB的空间并非凭空蒸发了,而主要是操作系统识别与硬件设备生产厂商两者容量计算公式上的不同所致。生产厂商为了计算方便,往往设定1KB=1000Bytes、1MB=1000KB、1GB=1000MB。而操作系统的换算则为1KB=1024Bytes、1MB=1024KB、1GB=1024MB。这就产生了存储设备标配容量和实际使用容量出现差异的情况。

  由此推算可知128MB闪盘的实际容量理论上应为125MB,64MB闪盘的容量应该为62.5MB,以此类推。此外,由于闪存芯片本身在制造时的问题,闪存介质允许有坏块(Bad Block)的存在,这些坏块不能被使用,也不算做有效容量。

  最后还有一点,与硬盘一样,闪存盘也是采用FAT文件系统,而FAT文件系统包括MBR主引导分区、FAT文件分配表和ROOT目录区等,这些区域也要占用闪存空间,一般需要占用几百KB。

  除了上述原因之外,闪盘作为一项比较常用的移动存储解决方案,个别厂商在其产品中加入了诸如保密、QQ聊天记录备份等功能,这些功能实际上需要占用闪盘中的部分物理块来存放特殊配置信息或数据。

  另外,有些朋友发现自己的闪盘在使用一段时间后,再次格式化,其容量竟然会自动变小了。这又是什么原因呢?

  数据写入的时候,闪存芯片内部需要有至少一个物理块(Block)作为交换块使用。这是因为闪存的写操作很特殊,必须是先擦除,然后才能写入数据,而擦除的最小单位是一个物理块,但写数据的最小单位却是一个页(Page)。

  在闪存的存储单位中,一个物理块包含若干个物理页。因此写数据时,需要有一个空的、可以使用的交换块来存放不需要被擦除的数据。由于闪存的充放电特性,使得它的读写次数有物理上的限制。

  通常厂商会在闪盘内部做一个读写次数的计数,当闪存芯片的某个物理存储区块达到读写指定的最高次数时,那么该块区将被设定为不再使用的区域,所以闪盘有可能在极度频繁地使用下,容量越来越小。不过,目前多数闪盘产品已经可以保证擦写百万次以上的使用寿命。



多数闪盘产品可以保证百万次以上的擦写

  目前市场上的闪存产品包括两类:1. 未预留缓冲空间的;2. 预留有缓冲空间的。对于第一种情况,因为没有预留空间,闪存在读写时交换块的损耗相当大,于是就会出现容量越来越小的情况。对于第二种情况,厂商在设计时已经预留部分物理块,比如选择1024个物理块中的1000个作为数据存储使用,其余24个物理块(包括坏块)用作缓冲交换块部分。

  每次上电后,存储单元的逻辑地址和物理地址需要重新对照,交换块并不是固定的某一区块,因而每一个物理块进行读写操作的几率几乎相同,不会出现哪一个物理块过早被损坏的现象。对于预留缓冲空间的闪盘来说,基本不会出现容量越来越小的情况。

凡所有相,皆是虚妄
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|中花 ( 鲁ICP备07009421

GMT+8, 2024-11-30 19:00 , Processed in 0.124800 second(s), 22 queries .

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表