很多人会疑惑 NOR Flash 标称带宽很高,但实际跑起来速度很慢,甚至出现 “每秒三个字” 的低读取速率,核心原因是 NOR Flash 不能只看理论时钟带宽,还要区分随机读、连续读、命令开销、等待周期、SPI 协议版本,很多 MCU 启动、参数读取场景都是随机读,命令和地址开销占比巨大,实际有效带宽会被大幅拉低。计算 NOR Flash 带宽的流程一般是,先确认 SPI 模式(普通 SPI、Dual、Quad SPI)、SPI 时钟频率,算出理论比特速率,再扣掉命令、地址、dummy 等待周期,统计有效数据占比,最后换算成字节速度;再结合业务是连续读还是零散随机读,评估真实业务带宽,避免直接用理论值做方案评估。
NOR Flash 带宽计算关键项清单
- 理论速率:SPI 时钟 × 单线比特数(1/2/4,对应普通 / Dual/Quad SPI)
- 开销部分:读命令字节、地址字节、Dummy 等待周期,这部分不产出有效数据
- 连续读:一次发命令,持续读大批量数据,有效占比高,带宽更接近理论值
- 随机读:每次读少量数据,都要重新发命令 + 地址,开销占比极高,很容易出现极低吞吐
- “每秒三个字” 场景:多为零散随机读,每次只读取 2~4 字节,命令开销远大于数据本身
- 单位换算:1 Byte = 8 bit,计算时要区分比特带宽和字节带宽
不同读取模式对比表
| 读取模式 | 开销特点 | 有效带宽 | 典型场景 |
|---|---|---|---|
| Quad SPI 连续读 | 一次命令,批量出数据 | 高,接近理论上限 | 固件整段加载、日志连续读出 |
| 随机小粒度读 | 每次都带命令 + 地址 | 很低,就是 “每秒几个字” | MCU 频繁读参数、读校准值、读标识 |
| 普通 SPI 低速读 | 单线传输,时钟低 | 本身上限低,叠加开销后更慢 | 低成本小容量 NOR,简单配置读取 |
【常见问题】
问题 1:为什么会出现每秒三个字的现象,NOR Flash 带宽账怎么算?
回答 1:出现每秒三个字,基本是频繁随机小长度读取,每次读取都要发送命令、地址、等待 dummy 周期,有效数据很少;算 NOR Flash 带宽,需要把 SPI 时钟、通道数、协议开销全部纳入,不能只看理论时钟带宽。
问题 2:NOR Flash 理论带宽和实际业务带宽差别大,主要原因是什么?
回答 2:NOR Flash 理论带宽只算 SPI 时钟的数据传输能力,实际带宽要扣除读命令、地址、dummy 等待时间,随机读场景下这些固定开销被放大,有效吞吐会暴跌。
问题 3:想要提升 NOR Flash 随机读带宽,有哪些常用办法?
回答 3:想要提升 NOR Flash 随机读带宽,可以用 Quad SPI、开启连续读(wrap)、软件做数据缓存预读、把零散参数打包集中读取,减少频繁发起读命令的次数。
【数据来源】
[2026-10-05](每秒三个字,NOR Flash 的带宽账怎么算)电子发烧友
[2026-10-06](SPI NOR Flash 带宽拆解,随机读与连续读计算示例)与非网
[2026-10-07](NOR Flash 启动读取吞吐瓶颈分析,协议开销测算)嵌入式资讯网
免责声明:本文内容仅为行业资讯整理,不构成 Flash 选型、固件方案设计的任何建议;NOR Flash 实际带宽还受 MCU SPI 控制器、PCB 信号、芯片型号、供电条件影响,需要实测验证。
