Answers:
我为曾经是SD协会成员的公司工作,我们熟悉2.0(SDHC)规范。SD卡规格没有用于磨损均衡的条目。如果他们愿意,那完全取决于SD制造商来处理。我们已经看到,有些可能会这样做,而另一些却没有(注意超级便宜的仿制SD卡)。SDXC可能已将其更改为包括损耗平衡,但我不确定。不幸的是,真正表明这一点的唯一方法是获得官方规范。您最有可能在网上找到它,但SD协会确实希望您为此付费。
附带说明一下,拿一张2GB的卡并一遍又一遍地写起来,平均大约需要10TB才能使该卡失效且不再可写。同样,SD卡不会在数据损坏时通知您,即不会像PC硬盘那样返回I / O错误。对于10TB的大量数据而言,这对于嵌入式设计而言可能不是问题,但对于某些人来说,这可能是一个因素。
这是真的!MicroSD卡包含一个NAND闪存芯片,该芯片与封装在某种黑色塑料中的(ARM)微控制器相连。http://www.bunniestudios.com/blog/?p=898解释。
在后续文章的结尾处,http: //www.bunniestudios.com/blog/ ? p = 918集成控制器的Bunnie假定的成本可能比预先测试闪存要低。
引用SanDisk的SD卡产品手册:“ 1.9损耗平衡。损耗平衡是使用NAND存储器的SD卡擦除池功能的本质部分。” 您可以在数据表中阅读有关SanDisk品牌卡的全部内容。
是的,SD / MMC卡具有可进行损耗均衡的控制器。如果没有,您可能会在几分钟内用错误的写模式销毁一个。
对于某些嵌入式项目,这实际上是一个问题。绝对没有办法(显然)随时知道哪些扇区可能会磨损,因此在错误的时间重新启动电源可能会破坏卡上任何位置的数据,无论您在哪里书写。(不要问我怎么知道:))
SD卡必须与保证系统干净关闭(或至少允许写入完成)的系统一起使用,否则(最终)会导致数据丢失。
编辑
问题在于,磨损平衡过程是完全隐藏的。磁盘上的任何扇区都可以随时移动(与写入的页面交换),如果在该过程的中间断电,则随机扇区可能会损坏。
尽管有相当安全的方法可以执行此操作,但是它没有任何规范,因此您不能相信该卡可以执行此操作。您可以测试一张卡,使其工作,然后制造商可以在不更改部件号的情况下更改实现,这很麻烦。
从测试来看,我的SD卡的控制器根本无法安全地执行此操作。
我可能会看一看“高可靠性” SD卡,该卡专门针对电源故障容忍度进行了广告宣传……但是您必须相信制造商能够正确地做到这一点,但我没有。我真的想直接控制页面擦除。我仍在设法弄清楚这一点。
使用任何类型的常规NAND闪存的任何类型的SD卡都将必须使用某种类型的扇区虚拟化,因为没有常规的NAND闪存设备可以支持擦除单个512字节扇区,并且没有任何大小的常规NAND闪存设备如果每次写入扇区的尝试都要求设备复制该扇区的擦除块中的所有扇区(甚至到RAM),然后擦除该块并进行写入,则将能够产生甚至在勉强可以接受的数量级范围内的性能。所有部门都回来了。大多数部门虚拟化技术本质上都具有一定的磨损均衡功能。我希望高质量设备与仿冒产品之间最大的差异问题将是设备积极尝试使各个块之间的平衡变得均匀的程度,而不是简单地使用伪随机块分配和希望将产生可接受的接近均匀的结果。实际上,我希望在大多数情况下,即使是随机/希望获得最佳分配也是足够的。
Sandisk拥有一份白皮书,解释了其卡中的损耗均衡逻辑,并继续给出了在多种情况下该卡寿命的估算值。内容提要:除非您不停地刷卡,否则它将持续数十年。
也有一些成功的“裸体”僵尸卡,即不会完成格式或只读的僵尸卡。仅在很小的百分比上起作用,但是它们比大多数“官方”指南对效果更敏感。
如此处理过的测试卡持续了整整四个月,然后再次失败,如果不是因为该设备曾用于提供噪声电压,则其使用寿命可能会更长。