“闪存阵列一个单元内可放入的比特数越多,闪存阵列就越小,存储器件的价格也越便宜。但是,尺寸减小是有代价的。存储比特越小,闪存单元能经受的编程/擦除周期 (P/E) 就越少,因此容易出现故障。当每个单元中放入多个比特并通过缓存闪存控制器寻址时,可以实现非常快的速度,但存储阵列在读写时耗电也越多。
”作者:Bill Giovino
每个工程师手头都有各种 microSD 卡。我的卡则随意摆放在桌面上各个方便的位置。每当我的电话、平板电脑或单板机 (SBC) 需要 microSD 时,它就会像蝙蝠侠一样神秘地出现。我的方法一直很管用,直到发生了“2019 年桌面吸尘器大事件”——装有实验性 Linux 发行版的 16 GB microSD 突然消失了。吸尘袋里没有,所以我猜它现在是在隐藏的时空维度,那些不可更换的螺丝和电工胶带就消失于其中。
当然,这导致我把所有的 microSD 卡放到一个地方,作为工程师的我,还得把这些闪存卡归类。最初,我想按存储容量组织这些卡,但当看到这些不经意的收藏时,我决定采用不同的策略。
我不考虑容量,而是考虑哪些 microSD 卡对我有用,哪些卡因数据损坏而失效。我开始研究闪存卡,当看到闪存卡评分时,我发现网上有大量错误信息。当看到我的那些因数据损坏而失效的 microSD 卡常被网上的“公正”评论者评为速度最快、排名最高的闪存卡时,我开始怀疑起来。所以,像任何优秀的工程师一样,我自己做了研究,发现 microSD 闪存卡就像生活一样,没有提到的东西比提到的东西重要得多。
闪存类型基本知识
要了解闪存,我们需要知道存储单元的半导体结构。单阶存储单元 (SLC) 闪存是每个单元一个比特(图 1)。多阶存储单元 (MLC) 闪存指每个单元多个比特,实际上相当于每个单元两个比特。我认为这是一种营销失败,其后果我稍后会谈到。三阶存储单元 (TLC) 是每个单元三个比特,四阶存储单元 (QLC) 是每个单元四个比特。
图 1:闪存类型根据每个单元的比特数进行区分,从 SLC 到 QLC 比特数依次增加,每种类型有各自的含义。(图片来源:Micron Technology)
闪存阵列一个单元内可放入的比特数越多,闪存阵列就越小,存储器件的价格也越便宜。但是,尺寸减小是有代价的。存储比特越小,闪存单元能经受的编程/擦除周期 (P/E) 就越少,因此容易出现故障。当每个单元中放入多个比特并通过缓存闪存控制器寻址时,可以实现非常快的速度,但存储阵列在读写时耗电也越多。这点很重要,因为我意识到,所有 SLC 和真正的 MLC microSD 卡都没有给我带来过任何麻烦。
之所以说“真正的”MLC,是因为从技术角度看,这种每单元两个比特的说法指的就是多个比特。一些声誉较差的闪存产品制造商——授权电子器件分销商不会销售这样的产品——喜欢将其 TLC 和 QLC 产品标榜为 MLC,声称:“嘿,这就是多个比特,不是吗?”
关于 microSD 闪存卡,谈论较少的是其功耗。消费级闪存卡制造商很少发布其器件的功耗。因此,将闪存卡用于重要工作时,务必检查该参数。这需要费一番工夫,但我发现,我的所有发生数据损坏的 microSD 卡的功耗都在较高范围端,其中包括一些速度最快的闪存卡。
在诸如 Raspberry Pi 3 Model A+(图 2)等单板机 (SBC) 中使用闪存卡时,如果电路板将在远程位置无人看管下工作,你可能想要在期望特性列表中强调低功耗,因为可能无法执行定期维护检查以查看闪存卡状况。长期来看,速度最快或密度最高的闪存卡可能不是最可靠的解决方案。
图 2:在为 Raspberry Pi 3 Model A+ 等 SBC 选择 microSD 卡时,应当检查其是否为低功耗产品,因为这关系到可靠性的高低。(图片来源:Raspberry Pi)
一款工业用途的可靠型闪存卡的实例是 Delkin Devices 的 S304TLNJM-U1000-3 4 GB microSD 卡(图 3)。这是一种 SLC 闪存卡,工作温度范围很宽(-40°C 至 +85°C),因此适合于恶劣的工业环境。microSD 卡通常仅规定 3 到 5 年的数据保留期,但这款 4 GB SLC 闪存卡的数据保留期为 10 年,对于 microSD 卡来说非常难得。
图 3:S304TLNJM-U1000-3 是一款 4 GB SLC 工业级 microSD 闪存卡,拥有低功耗特性和 10 年的数据保留期。(图片来源:Delkin Devices)
S304TLNJM-U1000-3 闪存卡的功耗非常低。读取电流消耗额定值小于 50 毫安 (mA)(典型值),比大多数消费级闪存卡的读取电流低得多。写入电流额定值小于 100 mA(典型值),同样显著低于消费级闪存卡。对于可能需要在系统中升级闪存的电池供电型物联网 (IoT) 节点,写入电流很重要。待机电流小于 0.500 mA(典型值),这对于电池供电型 IoT 节点至关重要,因为在某些应用中,microSD 卡更多时候是处于空闲而非使用状态。
所有这些导致其具有非常出色的耐久性,P/E 周期数达 60,000 次。很难将这些数字与竞品进行比较,因为许多制造商既不说明也不公布这些数字,而当其公布时,则必须仔细查看其条件参数。例如,另一款闪存卡有 50 年的数据保留期,但殊不知,其条件是在保留期内再也不写入数据到卡中。Delkin Devices 非常明确:S304TLNJM-U1000-3 的 10 年数据保留期的条件是 60,000 P/E 周期使用了 10%。
结语
显然,并非所有 microSD 卡都一样,因此应精挑细选,尤其是对于可能需要运行多年而无人看管的嵌入式系统,而且要对存储期限执行维护检查的可能性很小。对于这些特定应用,SLC 存储器有许多优势。
这些规格让我想起了 The Worker’s Dilemma(工人困境)中的一句很有智慧的话:“没做或没说的总是比做过或说过的更重要。”
分享到:
猜你喜欢