很多工程师容易被 NOR Flash 的理论带宽误导,原文 “每秒三个字” 是一个通俗比喻,核心意思是 NOR Flash 不能只拿 SPI 时钟、位宽直接算带宽,还要把指令、地址、等待时序、页编程、擦除耗时全部计入,区分读带宽、写带宽、擦除带宽,分开核算才是真实可用的 NOR Flash 带宽。NOR Flash 大多是 SPI/QSPI/OSPI 串行接口,很多人直接按时钟乘以数据线数量算速度,忽略先发读指令、再发地址、芯片内部的访问延迟,写操作还有页缓冲上限,一次只能写一页,写完要等待编程完成,擦除更是按扇区来,不能单字节擦,这些开销占比很高,所以纸面理论值和实际业务吞吐差距巨大。核算 NOR Flash 带宽的常规步骤,先确认接口模式(SDR/DDR、1 线 / 2 线 / 4 线 / 8 线)、最高时钟频率,先算出理论传输带宽,然后叠加指令、地址、CS 片选、内部 tACC 访问延时得到单次读取耗时;写带宽要按页大小、页编程时间计算;擦除带宽按扇区容量、扇区擦除时间计算;最后结合 DMA、FIFO、驱动开销,得到系统侧实测带宽。把这笔带宽账算清楚之后,做 MCU 固件本地加载、字库、图片存储、日志存储的时候,就不会出现带宽预估过高、系统卡顿,方便合理划分哪些数据放 RAM、哪些放 NOR Flash。
一、NOR Flash 带宽基础计算公式清单
- SDR 模式理论读带宽(MB/s)= 时钟频率 (MHz) × IO 数量 ÷ 8
- DDR 模式理论读带宽(MB/s)= 时钟频率 (MHz) × IO 数量 × 2 ÷ 8
- 单次读取总耗时 = 指令周期 + 地址周期 + 芯片访问延迟 (tACC) + 数据传输时间
- 页写平均带宽 = 页大小 (Byte) ÷ 页编程总耗时(含传输时间 + 内部编程时间)
- 扇区擦除带宽 = 扇区大小 (Byte) ÷ 扇区擦除时间
二、常见串行 NOR Flash 带宽参考样例表
| 接口模式 | 时钟 | 理论带宽 | 实际连续读(DMA) | 页写带宽 | 4K 扇区擦除等效带宽 |
|---|---|---|---|---|---|
| SPI 单线 SDR | 50MHz | 6.25MB/s | 5~5.8MB/s | 300~600KB/s | 几十 KB/s 级别 |
| QSPI 四线 SDR | 133MHz | 66.5MB/s | 55~62MB/s | 500~700KB/s | 几十 KB/s 级别 |
| OSPI 八线 DDR | 200MHz | 400MB/s | 300~340MB/s | 1~2MB/s | 一百多 KB/s 级别 |
三、拉低 NOR Flash 实际带宽的关键开销
- 协议开销:每次读都要先发 8bit 指令、24bit 地址,短包场景占比极高
- 芯片固有延迟:tACC 访问等待时间,Flash 阵列读出需要等待
- 写限制:必须按页写入,一页写完要等待内部编程,不能流式持续写
- 擦除限制:最小擦除单元是扇区,擦除时间很长,日志频繁覆写场景带宽暴跌
- 主控侧开销:无 DMA 轮询模式、SPI FIFO 太小、驱动中断开销
四、“每秒三个字” 通俗比喻的含义
这里的 “字” 一般指 16bit/32bit 数据,用来提醒:不要盯着 MB/s 大数字,在频繁小随机读、小量更新、频繁擦写的场景,NOR Flash 有效带宽会变得很低,看上去每秒只能读出、写入很少的有效数据,和大长度连续批量读取完全是两个性能水平。
【相关 FAQ】
问题 1:计算 NOR Flash 带宽的时候,为什么不能直接套用 SPI 理论速率?
回答 1:计算 NOR Flash 带宽除了 SPI 传输速度,还要计入指令、地址发送时间、芯片内部访问延迟,写和擦除还有芯片内部固有耗时,所以 NOR Flash 真实带宽通常低于 SPI 理论速率。
问题 2:NOR Flash 的读带宽、写带宽差距为什么特别大?
回答 2:NOR Flash 读是阵列直接读出,主要受 SPI 接口时序限制;写需要页编程,写完要等待芯片内部电荷注入,擦除要高压隧擦扇区,所以 NOR Flash 写带宽远低于读带宽。
问题 3:QSPI 四线模式下核算 NOR Flash 带宽,SDR 和 DDR 有什么区别?
回答 3:核算 QSPI NOR Flash 带宽时,SDR 只在时钟沿单边采样,DDR 双边沿采样,同样时钟频率下 DDR 模式 NOR Flash 理论带宽是 SDR 的两倍。
问题 4:做固件方案评估 NOR Flash 带宽账,哪些场景带宽缩水最明显?
回答 4:频繁小扇区擦除、零散小数据包写入、不带 DMA 轮询读写、短指令短数据随机读取场景,NOR Flash 带宽会大幅缩水,很容易出现类似 “每秒三个字” 的低吞吐效果。
【参考资料】
[2026-10-12](MCU+ SDK 上 OSPI 和 QSPI 串行 NOR/NAND 闪存操作的吞吐量特性)德州仪器
[2026-09-03](串行 Nor Flash 驱动与吞吐测试)先楫半导体知识库
[2026-07-18](SPI Flash 带宽与时序开销分析)电子工程世界
[2025-12-20](MT25Q/MT35X Xccela NOR Flash 规格与性能说明)美光科技
[2025-06-11](W25Q 系列 NOR Flash 读写时序与性能测算)华邦电子技术白皮书
【免责声明】
本文仅对 NOR Flash 带宽计算逻辑、时序开销做科普说明,不替代 Flash 器件 datasheet;NOR Flash 实际带宽受主控、PCB 信号、驱动代码、DMA 配置影响,上面表格数值仅为典型参考;正式产品带宽评估,需要在目标硬件上做实测,不能直接套用理论估算值。
本文来自作者[极涡同步]投稿,不代表乌兰科技网立场,如若转载,请注明出处:https://www.wlcbnews.com/bdt/202611/595.html
评论列表(4条)
我是乌兰科技网的签约作者“极涡同步”!
希望本篇文章《NOR Flash 带宽计算方式解析》能对你有所帮助!
本站[乌兰科技网]内容主要涵盖:互联网行业的追踪与探索
本文概览:很多工程师容易被 NOR Flash 的理论带宽误导,原文 “每秒三个字” 是一个通俗比喻,核心意思是 NOR Flash 不能只拿 SPI 时钟、位宽直接算带宽,还要把指令、地址、等待时序、页编程、擦除耗时全部计入,区分读带宽、写带宽、擦除带宽,分开核算才是真实可用的 NOR Flash 带宽。NOR Flash 大多是 SPI QSPI OSPI 串行接口,很多人直接按时钟乘以数据线数量算速度,忽略先发读指令、再发地址、芯片内部的访问延迟,写操作还有页缓冲上限,一次只能写一页,写完要等待编程完成,擦除更是按扇区来,不能单字节擦,这些开销占比很高,所以纸面理论值和实际业务吞吐差距巨大。核算 NOR Flash 带宽的常规步骤,先确认接口模式(SDR DDR、1 线 2 线 4 线 8 线)、最高时钟频率,先算出理论传输带宽,然后叠加指令、地址、CS 片选、内部 tACC 访问延时得到单次读取耗时;写带宽要按页大小、页编程时间计算;擦除带宽按扇区容量、扇区擦除时间计算;最后结合 DMA、FIFO、驱动开销,得到系统侧实测带宽。把这笔带宽账算清楚之后,做 MCU 固件本地加载、字库、图片存储、日志存储的时候,就不会出现带宽预估过高、系统卡顿,方便合理划分哪些数据放 RAM、哪些放 NOR Flash。