NOR Flash
概述
SFC 通过单线或四线接口访问片外 NOR Flash,支持 CPU FIFO 与 DMA 数据通路,提供 Flash 读写和文件系统访问能力。
性能概览
NOR:SFC 250 MHz、Flash SCLK 125 MHz 下,四线 DMA 32 KiB 读取达到 54.30 MB/s,四线 DMA 写入达到 2.58 MB/s。
已在 SFC dev clk 100、150、200、250 MHz 四个频点完成读写及 elm/FAT 文件系统验证。
读写性能
测试器件为 W25Q128JVSQ,容量 16 MiB,页大小 256 B,擦除块大小 32 KiB。以下数据均取 32 KiB 数据点,Flash SCLK 为 SFC dev clk 的二分之一。
读取
| SFC dev clk | Flash SCLK | 单线 CPU FIFO | 单线 DMA | 四线 CPU FIFO | 四线 DMA |
|---|---|---|---|---|---|
| 100 MHz | 50 MHz | 6.18 MB/s | 6.15 MB/s | 24.68 MB/s | 23.59 MB/s |
| 150 MHz | 75 MHz | 9.30 MB/s | 9.19 MB/s | 30.19 MB/s | 34.77 MB/s |
| 200 MHz | 100 MHz | 12.36 MB/s | 12.12 MB/s | 28.18 MB/s | 44.46 MB/s |
| 250 MHz | 125 MHz | 15.42 MB/s | 15.06 MB/s | 28.50 MB/s | 54.30 MB/s |
四线 DMA 是 200/250 MHz 高吞吐读取的推荐通路。四线 CPU FIFO 读取约在 28~30 MB/s 饱和;单线 0x03 在 Flash SCLK 高于 50 MHz 时属于超规格实验条件,不能作为量产普通读配置。
写入
| SFC dev clk | Flash SCLK | 单线 CPU FIFO | 单线 DMA | 四线 CPU FIFO | 四线 DMA |
|---|---|---|---|---|---|
| 100 MHz | 50 MHz | 1.80 MB/s | 1.86 MB/s | 2.31 MB/s | 2.40 MB/s |
| 150 MHz | 75 MHz | 2.00 MB/s | 2.09 MB/s | 2.42 MB/s | 2.52 MB/s |
| 200 MHz | 100 MHz | 2.11 MB/s | 2.19 MB/s | 2.41 MB/s | 2.52 MB/s |
| 250 MHz | 125 MHz | 2.21 MB/s | 2.30 MB/s | 2.44 MB/s | 2.58 MB/s |
写入计时包含命令、地址、数据装载及 WIP 轮询,擦除和回读比较不计时。结果为擦除并预写一次后重复页编程的吞吐,不等同于擦除后的首次页编程;提高 SFC 时钟主要缩短总线传输,不能显著缩短 Flash 内部编程时间。
文件系统读写
使用 elm/FAT,对同一个 32 KiB 文件连续执行 8 轮写读,速率不计格式化与挂载耗时。
| SFC dev clk | Flash SCLK | 读取 | 写入 | 数据比较 |
|---|---|---|---|---|
| 100 MHz | 50 MHz | 16.65 MB/s | 0.0289 MB/s | 通过 |
| 150 MHz | 75 MHz | 21.94 MB/s | 0.0289 MB/s | 通过 |
| 200 MHz | 100 MHz | 25.12 MB/s | 0.0288 MB/s | 通过 |
| 250 MHz | 125 MHz | 27.87 MB/s | 0.0290 MB/s | 通过 |
文件系统写速接近 0.029 MB/s,原因是当前 NOR MTD 将 32 KiB 擦除块直接映射为 FAT 扇区,文件数据及元数据扇区写入会触发同步整块擦除。该数值反映当前文件系统与块层组合的覆盖写能力,不等同于 NOR 顺序写或裸页编程速率,提高 SFC 时钟无法消除擦除放大。
工作点与频率边界
以下为离散频点的验证结果。更高频点仅用于边界评估,单次通过不能替代稳定工作点。
| SFC dev clk | 对应 SCLK | 状态 | 结论 |
|---|---|---|---|
| 100/150/200/250 MHz | 50/75/100/125 MHz | 四个频点读写通过 | 250 MHz、SCLK 125 MHz、采样延时 8 为当前板级候选基线,建议四线路径使用 DMA。 |
| 260/266 MHz | 130/133 MHz | 读及 DMA 写通过,四线 CPU FIFO 写失败 | 仅作为实验边界;生产路径若评估该频点必须使用 DMA。 |
| 270 MHz | 135 MHz | 读写失败 | 超过器件标称上限,不作为工作频率。 |
250 MHz 验证直接配置 SFC 时钟,绕过了中间件默认时钟上限;采用该工作点前需同步调整中间件限制,并完成板级信号完整性、重复上电、长时间压力和电源波动验证。
测试条件
| 项目 | 条件 |
|---|---|
| 器件与容量 | W25Q128JVSQ,16 MiB |
| 页 / 擦除块 | 256 B / 32 KiB |
| 测试平台 | G32S103_sk_slt |
| 已验证频点 | SFC 100/150/200/250 MHz |
| 采样延时 | 依次为 5/8/9/8 |
| 时钟关系 | Flash SCLK = SFC dev clk / 2 |
| 数据规模 | 4/8/16/32 KiB 数据点,每点累计 256 KiB |
| 读数据校验 | 每轮传输后比较,比较时间不计入带宽 |
| 写数据口径 | 擦除并预写后重复页编程;擦除与比较不计时 |
| 文件系统 | elm/FAT,32 KiB 文件连续 8 轮 |
| 速率单位 | MB/s,十进制,1 MB = 1,000,000 B |