0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

从NOR转向使用CS SD NAND:为什么必须加入缓存(Cache)机制?

jim 来源:雷龙发展 作者:雷龙发展 2025-12-16 17:11 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

在传统使用 NOR Flash 的系统中,工程师通常习惯“随写随存”:写入数据粒度小,可以随机写入,不需要复杂的缓存或写入管理机制。不过随着使用场景发生转变,NOR Flash容量小,单位容量成本高,写入速度慢等成为瓶颈,很多工程师开始转向使用CS SD NAND这种NAND Flash产品. 在使用NAND过程中时如果仍然沿用 NOR 的写法,就容易遇到两个问题:

1️⃣ 寿命容易折损

2️⃣ 写入性能不稳定,出现延迟变慢

这些问题背后的根本原因就是:NAND Flash 不同于 NOR Flash,必须配合缓存(Cache/Buffer)来优化写入策略。

一、根本区别:写入粒度与擦除粒度完全不同

项目 NOR Flash NAND Flash(SD NAND)
写入最小粒度 Byte/Word 级 Page(页)级,通常 2KB~16KB
擦除粒度 Sector(扇区,约4KB) Block(块),通常包含 64~128 个 Page
坏块管理 一般不需要 芯片内部已自带
写入策略 可随机写入 建议先缓存,再合并写入
是否需要管理算法 通常不需要 芯片内部已有FTL(Flash Translation Layer)

→ 重点:NAND 的最小写入单位是 Page(NOR是Byte),而擦除单位是 Block,这决定了它必须配合缓存使用。

二、不用缓存的后果:写入放大(Write Amplification)

假设主机只写入 200 字节数据(Bytes),这小于 Page 大小,例如SD NAND内部存储单元的物理 page 为 4K。那么 SD NAND 必须执行:

1.把原始 Page 内容读取到 RAM

2.在 RAM 中修改那 200 字节

3.将整个 Page(4KB)重新写回

4.如果要写回的Block 已写满,还需要触发 Block 搬移与擦除(擦除一个新的Block,

然后将本次修改后的page数据和旧Block中有效page一个一个的写入新Block中!)(即 Block Copy / Block Merge)

于是就出现了“写入放大(Write Amplification)”:

主机写 200 Bytes 数据,NAND Flash 实际却写了 4KB 甚至更多。

WA(写放大倍数)越高 → Flash 寿命消耗越快 → 性能越不稳定。

缓存机制的意义,就是把零碎数据先暂存,再“合并写入”,减少写入放大。

而NOR Flash由于写入最小颗粒度是Byte,直接写入200字节的数据就好,写入放大的问题比较轻微。只是写入耗时 相比 做了缓存的NAND会多很多。

三、写入放大的影响

1️⃣ 寿命加速折损(P/E Cycle 快速消耗)

NAND Flash 的寿命主要取决于擦写次数(P/E Cycle)。例如 SLC NAND 一般是 50K~100K 次,如果写入放大严重,实际擦写次数会远高于用户真实写入次数:

示例:

主机实际写入 1GB 数据,但 WA=4,

Flash 实际写入 4GB 数据,相当于寿命减少到 原来的 1/4。

我们在客户端碰到过一个极端例子,客户做数据记录设备,写入频次非常高也不做缓存,每次只往SD NAND写入几个字节,几个月以后发现产品寿命出现折损。客户按照自己的理论值推算,总写入量只有20~30GB,远没有达到产品的总写入量,我们预估这种场景下的WA至少是100~上千,因此寿命折损相当厉害

2️⃣ 响应延迟和写入速度变慢

当写入放大导致频繁的后台操作(GC 垃圾回收、Block Merge、Wear-Leveling 磨损均衡),会导致:

写入性能不稳定

存在明显的延迟(几百毫秒甚至更长)

有时主机以为“Flash 卡住了”

这些现象并不是 Flash 性能差,而是没有缓存 + 没有合理写入策略导致的。

具体在使用时会碰到:刚用的时候好好的,用一段时间感觉产品变卡了,响应变慢了也是这个原因。刚开始使用时flash里面都是空白,不太会触发以上操作,但满盘写入几次之后就开始触发频繁的后台操作,响应明显变慢。

四、加入缓存的好处:可控、可预测、可优化

是否使用缓存 写入性能 寿命 响应速度 是否便于调试
未使用 不稳定 快速下降 波动大 难定位问题
使用缓存 稳定 可评估 可预测 可持续优化

➡ 缓存不仅提升速度,更重要的是让系统行为变得“可控”和“可维护”。

➡ 对产品化非常重要。

五、SD NAND 的角色:不仅是 NAND,更是“简化控制器方案”

wKgZO2lBIiOAZQ46AByL1H0Zhvo420.gif

创世CS的 SD NAND已经内置了基础的 FTL、坏块管理与控制器逻辑,相比裸 NAND 更容易使用。但即便如此仍然建议:建立写入缓存(例如 4KB/8KB)

简言之:SD NAND 已经帮工程师做了一层管理,但它仍然不是 NOR,不建议 “随写随存”。

特别是针对数据记录和采集设备,医疗记录设备。都存在ms级别的数据采集,单次数据采集量都非常小(几个~几百字节)这种场景,一定要先做缓存再写入!

六、总结

从 NOR 转向 NAND(包含所有使用NAND Flash的产品,比如SD NAND, eMMC, SSD等) 时,为什么必须使用缓存?

✔ NAND 的写入必须以 Page 为单位、擦除必须以 Block 为单位

✔ 如果不做缓存,就会出现写入放大(Write Amplification)

✔ 写入放大会导致:

寿命快速折损

写入性能/响应速度不稳定

系统行为不可预测

采用缓存机制后,既能发挥NAND Flash容量大,价格便宜,写入速度快的优势,又得到一个可预测、可调优、可维护,使用寿命长的系统。

亲爱的卡友们,欢迎光临雷龙官网,如果看完文章之后还是有疑惑或不懂的地方,

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • SD NAND
    +关注

    关注

    0

    文章

    109

    浏览量

    1743
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    NOR Flash到NAND Flash和SD NAND底层结构到应用差异

    NAND 如果直接写,会出现:   写入放大   卡顿   坏块不可控   寿命快速衰减   因此 NAND 必须配套:   ECC   Page Cache
    发表于 12-08 17:54

    解锁SD NAND、TF卡、SD卡的应用密码

    在科技飞速发展的今天,数据存储的需求渗透到生活与工作的每一个角落——手腕上的智能手表,到专业摄影师的相机,再到工厂里的工业路由器,都离不开高效可靠的存储介质。SD NAND、TF卡和SD
    的头像 发表于 11-24 11:04 274次阅读
    解锁<b class='flag-5'>SD</b> <b class='flag-5'>NAND</b>、TF卡、<b class='flag-5'>SD</b>卡的应用密码

    一文秒懂XTX SD NAND

    :原理、性能与应用 随着消费电子、工业控制、汽车电子和安防监控等领域对高密度、低成本存储需求的不断攀升,SD NAND闪存因其体积小、集成度高、易于部署的特点,成为SD卡(SD、SDH
    的头像 发表于 10-30 08:38 457次阅读
    一文秒懂XTX <b class='flag-5'>SD</b> <b class='flag-5'>NAND</b>

    CS创世SD NAND在北京君正平台和瑞芯微RK平台的应用

    发送至开发板运行测试,运行结果以及程序见下面两张图; 第二个示例:使用文件io(open,write,read,lseek,close)对未挂载文件系统的SD NAND直接操作;实现的功能是
    发表于 08-22 17:01

    CS SD NAND 在AI领域的应用和注意事项

    。今天跟大家聊聊这个,以及在实际应用有哪些注意事项。 1,为什么会选择CS SD NAND? 首先是容量适中,覆盖多种需求,传统 NOR Flash 容量较小,而 eMMC 容量又偏大
    的头像 发表于 08-15 17:56 590次阅读

    【嵌入式开发】SD卡—雷龙 SD NAND

    的芯片及转接板,两片贴片式nand芯片+一个转接板,一种一个已让官方焊接完好; 通过转接板,可以将CS SD NAND(贴片式TF卡)转变为常见的TF卡,利用读卡器插入电脑中当作存储设
    发表于 07-21 17:56

    什么是Flash闪存以及STM32使用NAND Flash

    和再编程。任何flash器件的写入操作只能在空或已擦除的单元内进行,所以大多数情况下,在进行写入操作之前必须先执行擦除。NAND器件执行擦除操作是十分简单的,而NOR则要求在进行擦除前先要将目标块内
    发表于 07-03 14:33

    高性能缓存设计:如何解决缓存伪共享问题

    缓存行,引发无效化风暴,使看似无关的变量操作拖慢整体效率。本文从缓存结构原理出发,通过实验代码复现伪共享问题(耗时3709ms优化至473ms),解析其底层机制;同时深入剖析高性能
    的头像 发表于 07-01 15:01 523次阅读
    高性能<b class='flag-5'>缓存</b>设计:如何解决<b class='flag-5'>缓存</b>伪共享问题

    MCU缓存设计

    Flash或外部存储器读取的指令,减少CPU因等待指令加载而停滞,适用于实时性要求高的场景(如中断服务程序)。 D-Cache‌:缓存Flash、SRAM或外部存储器读取的数据,加
    的头像 发表于 05-07 15:29 869次阅读

    雷龙 SD NAND 简单使用

    识别,非常方便,有关读写速度,我看有小伙伴在论坛已经有详细的介绍 雷龙CS SD NAND:贴片式TF卡体验与性能测试。这里我就不再赘述,本文的重点是记录自己的焊接经验,希望对后来人有所帮助。
    发表于 01-31 15:41

    雷龙SD NAND试用

    、CSNP32GCR01-AOW分别为8GB、4GB雷龙二代SD NAND.前者样片帮焊接在转接板上,后者单芯片可以在需要SD NAND的开发板上焊接上直接替换
    发表于 01-19 13:26

    SD NAND、SPI NAND 和 Raw NAND 的定义与比较

    问题,再也不用为SD卡的接触稳定性操心! SD nandSD 卡、SPI Nor flash、 n
    的头像 发表于 01-15 18:16 1463次阅读
    <b class='flag-5'>SD</b> <b class='flag-5'>NAND</b>、SPI <b class='flag-5'>NAND</b> 和 Raw <b class='flag-5'>NAND</b> 的定义与比较

    SD NAND、SPI NAND 和 Raw NAND 的定义与比较

    问题,再也不用为SD卡的接触稳定性操心!   SD nandSD 卡、SPI Nor flash、
    发表于 01-15 18:15

    EE-285: ADSP-21065L转向使用ADSP-21375 SHARC处理器

    电子发烧友网站提供《EE-285: ADSP-21065L转向使用ADSP-21375 SHARC处理器.pdf》资料免费下载
    发表于 01-07 13:52 0次下载
    EE-285: <b class='flag-5'>从</b>ADSP-21065L<b class='flag-5'>转向使</b>用ADSP-21375 SHARC处理器

    什么是缓存(Cache)及其作用

    缓存Cache)是一种高速存储器,用于临时存储数据,以便快速访问。在计算机系统中,缓存的作用是减少处理器访问主存储器(如随机存取存储器RAM)所需的时间。 缓存
    的头像 发表于 12-18 09:28 1.5w次阅读