news 2026/10/25 1:05:46

从“死局”到“最优解”:NOR Flash的破局信号

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
从“死局”到“最优解”:NOR Flash的破局信号

这几年做嵌入式硬件,但凡涉及存储芯片选型,几乎每次都要面对一句“NOR Flash不行了”的论断。容量做不大、成本下不来、工艺线停在几十纳米不肯往前走,旁边还有SPI NAND、eMMC一路降价挤压,怎么看都像一盘死局。但这阵子连续做完几个项目,我反而觉得风向变了——不只是“够用”,而是很多场景里NOR Flash正重新变成最优解,甚至和MMC协议家族正面PK时也不落下风。这篇文章就聊聊我在选型、测试和量产中看到的破局信号,以及那些经常被忽略的细节。

1. “僵局”到底僵在哪:NOR Flash的十年围城

1.1 容量天花板:物理结构决定的“小而美”

别被“NOR”这个名字骗了,它和NAND虽然都叫Flash,底层完全不是一个逻辑。NOR的每个存储单元相当于一个并联在位线上的电阻,读的时候靠“或非”逻辑判断0和1,所以地址线直接铺到每一位上,支持字节级随机访问。这个特性成就了它的灵魂——XIP就地执行,但也决定了它的宿命:单元尺寸比NAND大得多,位线布线和接触孔占用面积惊人,容量往上走一颗芯片的芯片面积就会像摊大饼一样迅速膨胀。

过去十年的主流NOR容量段,大概就是8Mb到256Mb兜底,能做到512Mb已经是少数原厂的看家本领。1Gb以上的NOR一直像个传闻,直到近两年才陆续看到量产级产品。对比NAND那边,单片容量已经奔着1Tb去了,3D堆叠层数一百多层往上加,两边根本不在一个数量级。这个“物理决定的容量天花板”就是僵局的第一块砖:你没法在NOR里面塞一部电影,也没法拿它当U盘用。

有开发者跟我说过一句话,我印象很深:NOR Flash不是被时代淘汰的,是被物理结构锁死的。它注定要待在小容量、高可靠、快速启动这些“窄缝”里。问题是,窄缝本身也够活,关键看你怎么认知这条缝。

1.2 成本与工艺:每Bit单价怎么都压不下来

容量做不大的直接后果,就是每Bit成本压不下去。NAND可以用多层堆叠一次性摊薄单位面积成本,NOR却一直停留在平面结构,工艺节点普遍在65nm到45nm之间徘徊。这里插个背景:闪存工艺不是越先进越便宜,而是良率和可靠性先要站得住。NOR对擦写寿命和数据保持的要求极其苛刻,工艺微缩带来的隧穿氧化层变薄,很容易导致电荷保持能力下降,所以原厂在节点迁移上非常保守。

有一段时间,行业里传过“NOR也要做3D堆叠”的说法,实验室里也确实有原型验证,但走到量产就面临一大堆问题:外围电路怎么共享、热效应怎么处理、可靠性怎么保证。结果是3D NOR一直没有成为主流,反而是NAND那边靠着3D结构一路把每GB价格打到白菜价。

这就形成了僵局的第二块砖:成本上打不过NAND,容量上又没得比,好像不管怎么算,NOR都该退出主流舞台了。很多新入行的工程师甚至直接默认“存储选型就该上eMMC”,压根没把NOR放进选项里。

1.3 替代者的夹击:SPI NAND、eMMC都想分一杯羹

替代者不只是NAND家族自己,SPI NAND是最典型的例子。传统并行NAND接口布线太多、主控还要处理坏块和ECC,做小容量代码存储又显得笨重,于是有人把NAND裸片加上SPI接口做成SPI NAND,引脚兼容串行NOR,容量上又比NOR大得多。对很多主控来说,直接从NOR切到SPI NAND,PCB都不用改,软件只要适配一下坏块管理即可,看起来几乎是无痛替换。

eMMC则是在更高容量段对NOR形成了降维打击。一个指甲盖大小的封装里塞着NAND Flash加主控,坏块管理、磨损均衡、ECC全给你处理好了,主机侧只要发标准MMC命令就能读写。容量从4GB起步,读速度动不动几百兆,还自带分区管理。这在任何“容量焦虑”的项目里都是难以拒绝的诱惑。

再加上MCU内置Flash越来越大,很多轻量固件直接烧在片内就完事,外部NOR连上板资格都没了。三条线同时挤压,NOR看起来就是一个“即将被边缘化”的老技术。但真到量产和长期维护阶段,情况却不像纸面上那么一边倒。

2. 破局的关键变量:XIP、即时启动与绝佳可靠性

2.1 XIP就地执行:NOR最硬的一座护城河

NOR Flash最核心、也最无法被替代的能力,是XIP(Execute in Place,就地执行)。CPU可以直接在NOR芯片的地址空间里取指运行,不需要把代码先搬到RAM里。这意味着上电瞬间,只要复位释放、片选拉低,内核就能开始跑代码。那些连DDR都还没初始化的系统,第一口“饭”几乎都是从NOR喂进去的。

很多主控平台的启动流程都是这样走的:CPU内部固化一小段BootROM,BootROM的第一件事就是去外部NOR读引导程序,引导程序再初始化DDR、加载主系统镜像。这个过程可以做到几十毫秒内完成,甚至更快。你要是在这个环节换成eMMC,麻烦就来了——eMMC内部有主控、有固件、有FTL映射表,上电后主机得先发命令完成初始化握手,主控还要做内部搬运,启动时序大概率要往后拖。

有个很直白的类比:NOR是“随手翻到哪页都能直接读的实体书”,eMMC是“得先开机、等系统索引加载完才能查书的电子图书馆”。对启动路径极其敏感的设备,比如车机仪表、工业控制器、光模块,都没有那个耐心去等电子图书馆开机。

2.2 上电时序与可靠性:车规场景没有替补

车规级AEC-Q100认证把存储芯片分成了几个温度等级,NOR Flash在Grade 1(-40℃到125℃)下依然能保持标称的擦写寿命和数据保持时间。常规车规NOR的擦写寿命普遍在10万次以上,数据保持能跨10年到20年。这个指标看起来平淡无奇,但你要知道,同时期的车规级NAND通常只有几千次到几万次的擦写寿命,而且必须依赖ECC和坏块管理才能存活。

在BMS电池管理系统、安全气囊控制器、刹车控制这类“生命周期内有大量固件升级需求”的场景里,NOR这个耐久度优势就很实用。OTA升级一次,往NOR里擦写一块固件,10万次寿命意味着即使一天升级一次也能用将近三百年。相比之下,如果把这活儿交给NAND,主控还得操心磨损均衡,稍有不慎某个块提前退休就会导致整个文件系统出问题。

数据保持同样重要。车辆熄火停在烈日下,车内温度轻松超过85℃,NOR在高温下的电荷保持能力是经过数十年优化验证过的。很多车厂对“常年断电存放后仍能一炮启动”有明确要求,NOR在这方面的口碑远不是年轻存储方案能比的。

2.3 从存储介质到安全载体:角色正在升级

近几年还有一个明显趋势:NOR正在从“存代码的介质”变成“安全信任根”。因为NOR支持随机读取、独立寻址,可以把公钥哈希、设备证书、安全启动校验值放在独立保护区里,配合OTP区域和写保护功能,形成硬件级别的防篡改能力。

安全启动流程一般是这样的:BootROM从NOR固定地址读取公钥和签名固件,先校验签名再执行。NOR的字节寻址能力让这段校验代码可以写得极其简洁,也不依赖额外的驱动和文件系统。而eMMC因为内部有FTL,物理地址到逻辑地址存在映射,想做到“固定物理地址上电即读”,反而要多加一层约束。

我在一个设备认证项目里,就是靠NOR的一个一次性烧写区域保存设备指纹,配合唯一ID生成密钥。这个区域物理上不可擦除,逻辑上也不能被软件绕过,整个信任链的根就钉死在NOR上。这个角色,未来几年只会越来越重要,而不是越来越边缘。

3. 技术突破正在发生:高密度NOR与新工艺不再注定落后

3.1 单颗容量往上探:从256Mb到2Gb怎么实现

单颗NOR容量确实突破了。过去大家觉得512Mb到头,但这两年的新品已经能看到1Gb、2Gb级别。怎么实现的?主要靠三件事:更先进的工艺节点、更优化的单元结构、以及更聪明的多die封装。

先进工艺的事,后面单说。单元结构上,原厂在浮栅极和电荷俘获层之间反复改良,把每bit占用的面积压下来,同时保持电荷保持能力不跳水。多die封装则是最直接的“物理外挂”——把两颗甚至四颗512Mb裸片封装进同一颗芯片,共用SPI接口、用片选扩展寻址。对PCB设计来说,封装尺寸变化不大,容量直接翻几倍,这对那些需要跑轻量AI算法、本地语音识别模型的设备很有吸引力。

有人会杠:多die封装本质还是“拼装货”,不是真正的单晶圆大容量突破。这话没错,但对应用工程师来说,重要的是结果是“板上能放下一颗2Gb NOR”,而不是它内部是不是纯血统。接口、引脚、软件协议都没变,迁移成本极低,这本身就是竞争力。

3.2 接口带宽翻倍:QSPI到Octal DTR,性能不再是短板

NOR过去的槽点之一是读速慢。标准SPI单线跑几十MHz,实际吞吐量也就个位数MB/s,跟eMMC动不动几百MB/s比确实寒碜。但这几年接口演进非常猛:四线QSPI成了家常便饭,八线Octal SPI也不再稀罕,再加上DTR双沿采样,读带宽直接上了两个台阶。

我手头测过一款8线DTR模式的NOR,时钟跑在120MHz左右,DDR模式下理论带宽超过200MB/s,实际连续读测到接近这个值。对代码执行来说,这已经足够做很多事了——有些系统甚至尝试直接从大型NOR里跑压缩率不高的资源文件,省掉一块外部RAM的活儿。

带宽上来之后,“NOR只能当慢速启动盘”的标签就站不住了。它现在是能扛住高分辨率图形刷新的。比如一些高端仪表盘用NOR存开机画面和字库,配合DTR模式做直接映射显示,效果很流畅,没有等eMMC初始化那种停顿感。

3.3 低电压与封装创新:为可穿戴和模块而生

另一个容易被忽略的突破是功耗。传统NOR工作电压3.3V,但现在的低电压版本已经下探到1.2V,读电流在几毫安级,深度掉电模式更是微安级待机。这在TWS耳机、智能手表、蓝牙模块这类电池敏感设备里非常吃香。

TWS耳机算是个典型案例:主控是低功耗MCU,固件只有几百KB到几MB,用NOR存代码和音频提示音,一票底层驱动根本不需要初始化外部存储协议。1.2V供电可以直接和主控在同一个电源域,省掉电平转换,PCB面积也跟着缩小。这种“寸土寸金”的产品里,小封装、低电压、高可靠的NOR反而比大容量eMMC更合适。

封装上也有创新,WLCSP晶圆级封装让NOR芯片的尺寸压缩到和主控差不多大小,可以直接贴在模块基板上。很多5G模组、WiFi模组里就是一颗WLCSP封装的NOR承担着启动代码和校准数据存储。

4. 与MMC/NAND的实战场:争议之下谁更适合

4.1 一张表看懂NOR、并行NAND、eMMC的基本定位

热词里老是有人搜“nor flash和mmc的区别”,说明新人确实容易在这几个词之间绕晕。我尝试用一张表把核心差异列清楚。这里的MMC,我按日常语境理解为MMC协议家族,尤其是eMMC。

对比维度NOR Flash并行NAND FlasheMMC
读取粒度字节/字,随机读页为单位,需先搬进SRAM页为单位,经历FTL映射
是否支持XIP支持,CPU可直接执行不支持不支持
启动时序几十微秒级可读需初始化、坏块扫描毫秒级初始化握手
擦写寿命10万次~100万次SLC几万次,MLC/TLC更低寿命取决于内部NAND及主控策略
ECC/坏块管理基本不需要主机必须处理内部主控处理
单位Bit成本高较低低
常用容量1Mb~2Gb128MB~1TB4GB~512GB
典型用途代码启动、安全存储、小数据记录大容量数据、文件系统系统盘、用户数据分区

看这张表就能明白,NOR和eMMC根本不像是“谁取代谁”的关系,更像不同武装的兵种。NOR负责“立刻开火”,eMMC负责“带够弹药”。你硬让NOR扛4GB的高清地图,它扛不动;你硬让eMMC做5ms内的启动序列,它也做不来。

4.2 主控复杂度与启动路径:为什么很多SoC第一脚还是连NOR

主控的复杂度是另一个决定性因素。刚刚上电的SoC,复位向量指向的地址空间必须是个“立即能响”的设备。eMMC要跑初始化协议、发CMD、读CID、等内部主控Ready,整套流程下来在低端MCU上可能要几十毫秒甚至更多。NOR虽然没有那么高深的“即插即用”,但胜在地址映射简单,主控只要把片选信号拉低,时钟给上,指令就哗哗流出来了。

很多通信模组宁可绕一圈也要在PCB上同时放一颗小容量NOR和一颗eMMC,NOR管开机,eMMC管用户数据。你以为这是重复?其实这是分层设计。系统要的就是“开机路径越短越好”,短到只有一条SPI总线和一颗NOR。

还有一层是调试友好性。用NOR做启动介质,JTAG连接之后你甚至可以直接对着NOR地址空间读写寄存器,代码出问题还能用编程器离线烧录、直接飞线读数据。eMMC一旦内部FTL出问题,连数据提取都要专门工具,量产维护的复杂度完全不同。

4.3 别被“每Bit更便宜”带偏:总成本与场景匹配

很多团队换存储,第一反应是“eMMC每GB更便宜”,但等你算总成本,答案可能反转。eMMC确实单价低、容量大,但要用好它,你得保证主控支持eMMC控制器、PCB走线满足最高时钟频率、电源去耦要做足、软件协议栈要调整。这些硬件改版、软件适配、测试验证的成本,在小批量项目里往往比省下的几块钱芯片差价还高。

反过来,NOR对主控的要求低到离谱,一颗纯SPI接口的MCU配上NOR就能实现“上电即跑”。如果你的代码+字库+配置加起来不超过64MB,擦写频率不高,工作环境又比较恶劣,那NOR的综合成本大概率是更优的。

我参与过一个工业采集项目,原本方案是4GB eMMC存数据,后来发现采集点每天只写几百KB,eMMC的磨损均衡根本没用到,反而因为偶发断电导致FTL元数据损坏,掉一次数据就要返厂。换成NOR之后,虽然单颗价格没便宜多少,但断电安全要好得多,没有FTL崩溃问题。这便是“指标最优”和“场景最优”的偏差。

5. 打破僵局之后的选型建议与实测心得

5.1 场景化选型框架:从四个指标反推型号

现在再选型,我不会先问“用NOR还是eMMC”,而是先问四个问题:代码和资源总量多大、启动时间能不能接受毫秒级、擦写频率和数据保持要求如何、工作温度有多极端。

  • 总量在16KB到64MB之间,建议直接考虑NOR,管脚少、电路简单,没必要给自己找麻烦。
  • 启动时间要求极端严格,比如50ms内出画面,NOR几乎是唯一答案。
  • 常年工作温度高、环境震动大、可能掉电,NOR可靠性更让人放心。
  • 容量超过256MB、主要是连续读写大文件,且设备有专职存储主控,这时候再考虑NAND或eMMC。

这套框架帮我过滤掉了很多“看起来该用大容量存储”的伪需求。很多产品跑着跑着才发现自己根本用不到大容量,反而需要常年在线、永远不丢配置。

5.2 我在NOR Flash上踩过的几个坑

第一坑:兼容片并不完全兼容。市面上号称pin-to-pin兼容的NOR很多,但指令集细节千差万别。尤其是进入四线、八线模式的方式,有的靠发特定命令,有的靠状态寄存器配置,还有的靠硬件引脚。代码里如果写死了某个原厂的握手序列,换上兼容片时可能直接读不出ID。我的建议是:量产前至少找两三家不同来源的芯片做上电时序和读ID交叉验证,别只信任一颗样片。

第二坑:DTR模式下的信号完整性。八线DTR模式把时钟频率拉高之后,串阻和回路电感的影响就暴露了。我遇到过PCB走线过长导致DTR模式下偶发性读错数据的情况,把SPI时钟降一档就恢复。后来把走线缩短、加了一颗22Ω串阻,才在高频下稳定跑。记住:高带宽接口不是把频率寄存器改一下就行,SI始终要实测。

第三坑:写保护寄存器。不少NOR默认上电时WP引脚和状态寄存器里写保护位处于“防写”状态。新设计容易忽略这个,结果量产烧录时设备“静默失败”——烧录器报成功,实际什么都没写进去。批量产线里遇到这种问题,排查成本极高,建议初始化流程里统一把状态寄存器和WP脚配置明确。

5.3 NOR不会翻盘,但也不需要翻盘

再多说一句个人体会。NOR Flash不会把NAND或eMMC挤出主流市场,它没这个容量和成本优势,也不需要。它的路数是把“快启动、高可靠、可XIP、易设计、安全锚点”这几件事做到极致,在每一个需要这些特质的系统里牢牢占住位置。

以前大家觉得NOR被SPI NAND、eMMC夹击是死局,本质上是拿容量和成本这两个NOR天生不擅长的维度去比。现在车载、工业、AIoT、无线模组爆发,设备越来越多、启动要求越来越苛刻、安全需求越来越硬,这些恰恰都是NOR的强项。技术演进的浪潮不总是替大容量者背书,有时候“小而可靠”反而是最稳的船。

如果你正在为某个新项目纠结存储方案,我的建议是别急着跟风上eMMC。先看看你的固件到底多大、启动时序卡不卡、板子空间够不够。按下这些算一遍之后你会发现,那个被唱衰了十年的老存储,其实还远没到谢幕的时候。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/25 1:05:14

STM32F103驱动AT24C02的I2C底层调试全解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/25 1:04:33

Meta开源Muse Gadgets:从零搭建语音交互AI外设的完整指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/25 1:04:33

LLC谐振变换器设计实战:从原理到调试的完整踩坑指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/25 1:04:30

多源传感器空间配准实战:从误差来源到UKF在线估计

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/25 1:03:38

C++算法实现的执行契约:内存布局与算法正确性的深层关系

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/25 1:03:14

新能源汽车HiL测试实战:车身控制器与报文翻译全解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华