2、存储介质基础:存储介质的分类与关键性能指标
大家好,我是你们的老朋友。今天咱们聊聊存储介质的基础知识。说实话,我在黑匣子项目里踩过的坑,有一半都跟介质选型有关。你想想看,飞机坠毁了,黑匣子要是因为存储介质失效而没录下数据,那后果多严重?
所以这一节,我带你把存储介质的底裤都扒干净。咱们从分类开始,再到那几个绕不开的性能指标。
2.1 存储介质的分类:易失性与非易失性
存储介质分两大类:易失性和非易失性。说白了,就是断电后数据还在不在。
2.1.1 易失性存储器
断电就丢数据。典型代表就是 SRAM 和 DRAM。
- SRAM(静态随机存取存储器):速度快,功耗低,但容量小、成本高。我习惯用它做 CPU 的缓存,或者黑匣子里的临时数据缓冲。
- DRAM(动态随机存取存储器):容量大,成本低,但需要定期刷新。黑匣子里很少直接用 DRAM 做主存储,因为断电就没了。不过,有些设计会用 DRAM 做数据暂存,然后定期写到非易失介质里。
我的经验: 在黑匣子设计中,SRAM 常用于存储关键的状态寄存器。有一次,我发现系统复位后某些参数丢了,查了半天才发现是 SRAM 的供电电容没选对。嗯,从那以后,我对 SRAM 的掉电保持电路格外上心。
2.1.2 非易失性存储器
断电后数据还在。这才是黑匣子的主角。
- Flash(闪存):目前最主流的选择。NAND Flash 容量大、成本低,NOR Flash 读取快、可靠性高。
- EEPROM:可以字节擦写,但容量小、速度慢。我一般用它存配置参数,比如黑匣子的采样率、通道配置。
- FRAM(铁电存储器):读写速度快,功耗极低,寿命长(10^12 次擦写)。但容量小,价格贵。我在一些高端黑匣子里见过它做日志存储。
- MRAM(磁阻存储器):速度接近 SRAM,非易失,抗辐射能力强。航天级黑匣子偶尔会用,但成本感人。
注意: 我曾经在一个项目中,为了省钱选了某品牌的低端 NAND Flash。结果高温测试时,数据保持时间直接缩水到标称值的十分之一。从那以后,我选 Flash 只看工业级或车规级,绝不碰消费级。
2.2 关键性能指标
选存储介质,你得盯着四个指标:容量、速度、功耗、寿命。缺一不可。
2.2.1 容量
黑匣子要录多久?录什么格式?音频、视频、还是传感器数据?
- 音频:一般 8kHz 采样,16bit,一小时约 57MB。
- 视频:1080p 压缩后,一小时约 1-2GB。
- 传感器数据:取决于通道数和采样率,一小时可能几十 MB 到几 GB。
我建议你按最恶劣情况算,再留 20% 余量。比如,要求录 2 小时 1080p 视频,那至少需要 2.4GB 的可用容量。考虑到文件系统和坏块管理,实际选型要 4GB 以上。
2.2.2 速度
速度分两种:读写速度和随机访问速度。
- 连续读写速度:黑匣子主要做顺序写入,所以连续写速度更重要。NAND Flash 的连续写速度一般在 10-500 MB/s 之间。
- 随机访问速度:黑匣子很少随机读,但系统启动时需要快速读取配置。NOR Flash 的随机读取延迟在 50-100ns,而 NAND 需要几百微秒。
避坑指南: 我曾经选了一款标称写速度 50MB/s 的 NAND Flash,结果实际测试只有 15MB/s。为什么?因为它的写入速度是在 4KB 页面连续写条件下测的,而我的系统每次写 512 字节。所以,一定要用你的实际写入模式去测速。
2.2.3 功耗
黑匣子通常由飞机或车辆的电源供电,但掉电瞬间需要靠电容或电池完成最后的写入。所以,写入功耗是关键。
| 介质类型 | 典型写入功耗 | 待机功耗 |
|---|---|---|
| NAND Flash | 100-300 mW | 10-50 μW |
| NOR Flash | 50-150 mW | 5-20 μW |
| FRAM | 10-50 mW | 1-10 μW |
| MRAM | 50-200 mW | 10-50 μW |
你看,FRAM 的写入功耗最低。但容量太小,不适合做大容量存储。我一般这样搭配:FRAM 存关键参数,NAND Flash 存大块数据。
2.2.4 寿命
寿命主要看擦写次数和数据保持时间。
- 擦写次数:NAND Flash 的 SLC 约 10 万次,MLC 约 1 万次,TLC 约 3000 次。黑匣子需要频繁写入,所以至少选 MLC,最好选 SLC 或 pSLC 模式。
- 数据保持时间:黑匣子要求数据能保存 10 年甚至更久。NAND Flash 在高温下数据保持时间会急剧缩短。我见过一个案例,黑匣子在沙漠里暴晒后,数据只保留了 3 年。
我的教训: 曾经有个项目,用了 TLC NAND 做黑匣子,还开了高密度模式。结果一年后,坏块率飙升到 30%。从那以后,我坚持用 SLC 或工业级 MLC,并且强制开启 ECC 和坏块管理。
2.3 选型建议
说了这么多,给你一个简单的选型思路:
- 容量需求:先算总数据量,再除以 0.8(留余量),得到最小容量。
- 速度需求:根据写入带宽选介质。比如,需要 100MB/s 连续写,那 NAND Flash 是唯一选择。
- 功耗约束:如果掉电保持时间有限,优先选写入功耗低的介质,或者加超级电容。
- 寿命要求:黑匣子至少 10 年寿命,擦写次数按最恶劣情况算。SLC 或 pSLC 是首选。
我的习惯: 我一般先画一个表格,把候选介质的四个指标列出来,然后加权打分。容量权重 30%,速度 20%,功耗 20%,寿命 30%。这样选出来的介质,基本不会出大问题。
好了,存储介质的基础就聊到这儿。下一节,咱们深入讲讲 NAND Flash 的内部结构和管理策略。到时候我会分享一个我亲手调过的坏块管理算法,保证让你少走弯路。