SD / MMC卡是否确实通过其自己的控制器磨损了?


51

我找不到有关此的任何可靠信息。我没有SD / MMC卡硬件的完整规格。

是真的吗 使用这些卡时,我的高级应用程序不需要关心损耗平衡吗?

编辑

有人可以确认SD规范可以保证磨损平衡吗?我想确定的是,因为看起来大多数供应商都这样做,但是规范并不需要。


5
并非所有闪存媒体制造商都在损耗均衡算法上进行投资。损耗均衡在SSD由于算法而在制造商中领先市场的SSD中更为普遍。
Chetan Bhargava

Answers:


43

我为曾经是SD协会成员的公司工作,我们熟悉2.0(SDHC)规范。SD卡规格没有用于磨损均衡的条目。如果他们愿意,那完全取决于SD制造商来处理。我们已经看到,有些可能会这样做,而另一些却没有(注意超级便宜的仿制SD卡)。SDXC可能已将其更改为包括损耗平衡,但我不确定。不幸的是,真正表明这一点的唯一方法是获得官方规范。您最有可能在网上找到它,但SD协会确实希望您为此付费。

附带说明一下,拿一张2GB的卡并一遍又一遍地写起来,平均大约需要10TB才能使该卡失效且不再可写。同样,SD卡不会在数据损坏时通知您,即不会像PC硬盘那样返回I / O错误。对于10TB的大量数据而言,这对于嵌入式设计而言可能不是问题,但对于某些人来说,这可能是一个因素。


2
我认为,即使它不在规格中,公司仍希望这样做以保持良好的声誉。尽管超级便宜的仿冒品并不在乎声誉,但它们却卖给了看起来便宜的人。听起来合理吗?
Kellenjb 2012年

1
@Kellenjb这是一个非常合理的假设,我个人会同意您的看法。但是,由于它不在规格范围内,并且不太可能获得任何特定制造商的SD控制器设计的访问权,因此无法真正证明这一点。多年来,我们进行了许多测试,某些主要品牌的表现要好于其他一些。内部算法可能有所不同,也可能完全不同。
克里斯·巴恩森

4
廉价仿冒品将不在乎,即使它在规格中。客户看不到它,它可能会丢失。我们正在谈论的是将铅塞作为IC销售的人。我还没有听说过没有磨损均衡的名牌,但我想这是可能的。
darron 2012年

@KrisBahnsen您能详细说明在发生不可恢复的错误时SD卡实际返回的内容吗?我对此很感兴趣。是否根本无法检测到这种情况?
fred basset 2014年

3
@fredbasset,僵尸线程的方式;)自从我做完SD卡以来,已经有一段时间了。但是,IIRC SD卡本身将物理返回任何感觉。一些较新的驱动程序结合了不错的驱动程序,也许可以检测到IO错误。但是,较旧的SD卡可能只会返回存储在NAND中的错误数据,并将其称为好数据。但是,如果写入无法完成,则会返回IO错误。
克里斯·巴恩森

23

这是真的!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品牌卡的全部内容


1
对我来说,黄兔子绝对足够可信!
vicatcu 2012年

知道这很高兴,但是我将等待可以根据该技术的正式规范启发该问题的人员。
ivarec'3

2
当我尝试查找数据表时,Digikey向我展示了这本无用的SanDisk手册。在怀卡托理工学院Swissbit数据表比较好,都提到磨损均衡。您可以链接到该Digikey托管的数据表吗?
凯文·维米尔

那些比旧的SanDisk更好。
joeforker 2012年

Wintec并不是很好,但是新的SanDisk硬盘是同类产品中最好的!感谢您的修改。
凯文·维米尔

19

是的,SD / MMC卡具有可进行损耗均衡的控制器。如果没有,您可能会在几分钟内用错误的写模式销毁一个。

对于某些嵌入式项目,这实际上是一个问题。绝对没有办法(显然)随时知道哪些扇区可能会磨损,因此在错误的时间重新启动电源可能会破坏卡上任何位置的数据,无论您在哪里书写。(不要问我怎么知道:))

SD卡必须与保证系统干净关闭(或至少允许写入完成)的系统一起使用,否则(最终)会导致数据丢失。

编辑

问题在于,磨损平衡过程是完全隐藏的。磁盘上的任何扇区都可以随时移动(与写入的页面交换),如果在该过程的中间断电,则随机扇区可能会损坏。

尽管有相当安全的方法可以执行此操作,但是它没有任何规范,因此您不能相信该卡可以执行此操作。您可以测试一张卡,使其工作,然后制造商可以在不更改部件号的情况下更改实现,这很麻烦。

从测试来看,我的SD卡的控制器根本无法安全地执行此操作。

我可能会看一看“高可靠性” SD卡,该卡专门针对电源故障容忍度进行了广告宣传……但是您必须相信制造商能够正确地做到这一点,但我没有。我真的想直接控制页面擦除。我仍在设法弄清楚这一点。


4
查看我发布的答案。由于磨损平衡算法由制造商决定,因此它们可能无法发挥作用。良好的损耗平衡算法将首先移动数据,然后将该数据标记为良好,然后进行垃圾收集原始数据。这在某些卡上可能是个问题,也许在其他卡上则不是。当您深入研究SD时,它是一个非常丑陋的设计。
克里斯·巴恩森

2
是的,就我而言,这是一个废话标准。如此无处不在的内存存储标准本质上是不可靠的,这非常令人讨厌。
darron 2012年

2
@jpc:也许我会写一篇博客。我得到的印象是它并不经常被考虑。直到为时已晚,我才意识到自己的含义。我为此奋斗,与我的SD卡制造商进行了交谈,等等。除了减少写时间之外,没有其他解决方案。现在,我写入NAND闪存,并尽快将其复制到SD。有一些ARE SD卡可以“抵抗”随机掉电,但我不确定它们是否完全值得信赖。
darron 2012年

2
@fred basset奇怪的是,自撰写此答案以来,工业卡的规格似乎已更改。我看到microSD存储卡上写入(日志,我认为)保证......现在,他们让没有这样的要求。与制造商交谈,他们现在正在使用超级电容...但是只有紧凑型闪存卡才有空间。安全地执行操作会大大降低性能。他们说只是以某种方式提供了足够的备份能力来完成写操作。考虑到现代ARM SBC的复杂性,如果供应商的参考设计没有做到,这真的很难。我所不知道的事。
darron

2
@freq basset我正在使用UBI和UBIFS。看来运作良好...多年来我已经运行了许多系统,没有任何问题。
darron 2014年

12

使用任何类型的常规NAND闪存的任何类型的SD卡都将必须使用某种类型的扇区虚拟化,因为没有常规的NAND闪存设备可以支持擦除单个512字节扇区,并且没有任何大小的常规NAND闪存设备如果每次写入扇区的尝试都要求设备复制该扇区的擦除块中的所有扇区(甚至到RAM),然后擦除该块并进行写入,则将能够产生甚至在勉强可以接受的数量级范围内的性能。所有部门都回来了。大多数部门虚拟化技术本质上都具有一定的磨损均衡功能。我希望高质量设备与仿冒产品之间最大的差异问题将是设备积极尝试使各个块之间的平衡变得均匀的程度,而不是简单地使用伪随机块分配和希望将产生可接受的接近均匀的结果。实际上,我希望在大多数情况下,即使是随机/希望获得最佳分配也是足够的。


某些制造商实施的“耗损均衡”很可能是由NAND接口本身引起的,并且阻塞到扇区/扇区以阻止虚拟化。
克里斯·巴恩森

1
@KrisBahnsen:我希望声称磨损平衡的制造商将积极监控不同块的相对磨损和其中数据的寿命,如果发现具有长期数据的块处于磨损程度比平均水平低得多的块中,这些数据块中的数据将被移入磨损更大的数据块中(以便最有可能使这些数据块的未来磨损最小化)。这可以使设备的使用寿命提高10倍,该设备的95%填充了永不更改的数据,而剩余的5%的空间则需要频繁地搅动。
2012年

我同意,如果他们在做广告,我想他们会做某种真正的磨损均衡。我对整个话题都持负面态度,对此我深表歉意。我被SD的怪癖折磨了几次。
克里斯·巴恩森

1
@KrisBahnsen:我认为最大的问题是虚拟化模型,该模型假定线性束连续编号的512字节扇区。与DOS进行接口可能很方便,但它与现有的硬件以及主机软件的真正需求并不十分匹配。将块号打开为64位,并允许它们任意不连续,然后安排将文件始终存储在逻辑上连续的块中。要删除文件,请删除其块范围。
2012年

2
这可能是最好的答案。我怀疑这是所有人的做法。如果您考虑一下,就无法使用任何一种真正复杂的算法来进行确定性的磨损均衡,因为磨损历史本身必须存储在同一张卡中的某个位置,并且该零件首先会失效。随机拉平是唯一可行的方法。我不相信SSD会更智能。他们可能只是拥有更多的更换缓冲区,尽管它们存储非常粗糙(因此不经常更新)的磨损信息肯定是有可能的。
Nimrod


2

有趣的是,尽管如此,如果电池电量不足或手机崩溃/关机等情况,很多设备仍会损坏SD和microSD卡,尤其是高密度卡。我怀疑问题在于电源的调节不充分,因为这在某些卡上(咳嗽Ad t /咳嗽)是众所周知的,从而导致某些外部读取器上的卡不可读的现象,但在某些读卡器提供的微型品种上效果很好电脑商店。

目前,我正在通过此故障恢复卡,奇怪的是,大多数数据都可以恢复,但是某些扇区虽然每次尝试都不会改变,但是却无法恢复。磨损平衡本身是否有问题?(是的,尝试过多个读者,同样的错误!)


0

也有一些成功的“裸体”僵尸卡,即不会完成格式或只读的僵尸卡。仅在很小的百分比上起作用,但是它们比大多数“官方”指南对效果更敏感。

如此处理过的测试卡持续了整整四个月,然后再次失败,如果不是因为该设备曾用于提供噪声电压,则其使用寿命可能会更长。


1
“裸体”是指将其放入微波炉?什么瓦数和多长时间?
0x6d64

呃,不:-)为什么当辉光放电(RF)会产生类似的效果并且比我使用的方法危险小得多时,为什么呢?事实证明,由于一侧缺少金属外壳,因此uSD卡更加敏感。
Conundrum5642Z

我不能确认或否认nuking是出于法律原因使用“小工具” 5642 + HVPS。但是,它的确反复起作用,并且该技术现在被称为是我在HaD等上发表的。–
难题
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.