NAND Flash

概述

SFC 通过单线或四线接口访问片外 NAND Flash,支持 CPU FIFO 与 DMA 数据通路,提供 Flash 读写和文件系统访问能力。

性能概览

NAND:SFC 230 MHz、NAND SCLK 115 MHz 下,四线 DMA 32 KiB 顺序读取达到 18.86 MB/s,Cache burst 读取达到 39.67 MB/s,写入达到 5.30 MB/s。

已在 SFC dev clk 100、150、200、230 MHz 四个频点完成读写及 YAFFS 文件系统验证。

读写性能

测试器件为 FS35SQA001G,容量 128 MiB,页大小 2048 B,擦除块大小 128 KiB。以下性能表的 4/8/16/32 KiB 为每轮累计数据档位;每次页读或 PROGRAM LOAD 的数据事务固定为 2048 B。表中均取 32 KiB 数据点的结果。

顺序读取 seq

SFC dev clkNAND SCLK单线 CPU FIFO单线 DMA四线 CPU FIFO四线 DMA
100 MHz50 MHz5.14 MB/s5.14 MB/s13.43 MB/s13.41 MB/s
150 MHz75 MHz7.06 MB/s7.06 MB/s13.96 MB/s16.26 MB/s
200 MHz100 MHz8.77 MB/s8.77 MB/s14.68 MB/s18.52 MB/s
230 MHz115 MHz9.51 MB/s9.51 MB/s13.25 MB/s18.86 MB/s

seq 每页先执行 0x13 并等待 OIP,再读取 Cache,因此包含页读时间、命令、地址和轮询开销。230 MHz 下四线顺序读达到 18.86 MB/s。

Cache burst 读取

SFC dev clkNAND SCLK单线 CPU FIFO单线 DMA四线 CPU FIFO四线 DMA
100 MHz50 MHz5.98 MB/s5.99 MB/s21.25 MB/s21.29 MB/s
150 MHz75 MHz8.76 MB/s8.77 MB/s22.68 MB/s29.47 MB/s
200 MHz100 MHz11.50 MB/s11.52 MB/s24.40 MB/s37.28 MB/s
230 MHz115 MHz12.90 MB/s12.92 MB/s21.21 MB/s39.67 MB/s

burst 在页数据已进入 Cache 后连续执行 Cache 读,计时不包含页读时间,更接近纯数据总线能力,不能与 seq 读速直接等同。四线 burst CPU FIFO 读取在约 21~24 MB/s 饱和,230 MHz 高吞吐读取应优先使用 DMA。

写入

SFC dev clkNAND SCLK单线 CPU FIFO单线 DMA四线 CPU FIFO四线 DMA
100 MHz50 MHz2.93 MB/s2.93 MB/s4.58 MB/s4.58 MB/s
150 MHz75 MHz3.48 MB/s3.48 MB/s4.76 MB/s4.91 MB/s
200 MHz100 MHz3.96 MB/s3.98 MB/s5.08 MB/s5.20 MB/s
230 MHz115 MHz4.11 MB/s4.10 MB/s4.94 MB/s5.30 MB/s

写入计时包含页数据装载、0x10 执行、OIP 轮询与状态读取,擦除和回读比较不计时。230 MHz 下 tPROG 为 303.71 µs/页,远高于数据装载时间,因此写吞吐随 SFC 时钟提升的幅度明显小于读取。

文件系统读写

使用 YAFFS,对同一个 32 KiB 文件连续执行 8 轮写读,速率不计格式化、挂载、坏块体检与卸载耗时。

SFC dev clkNAND SCLK读取写入数据比较
100 MHz50 MHz10.43 MB/s1.96 MB/s通过
150 MHz75 MHz12.22 MB/s2.17 MB/s通过
200 MHz100 MHz13.71 MB/s2.33 MB/s通过
230 MHz115 MHz13.78 MB/s2.37 MB/s通过

文件系统连续读包含页读、YAFFS 元数据访问、页到 chunk 映射与软件搬运,因此低于同频 Cache burst 读速。小文件覆盖写还包含 open/truncate、chunk 分配、元数据更新和 close 刷新,不能与裸页编程速率直接等同。

工作点与频率边界

以下为离散频点的验证结果。更高频点仅用于边界评估,单次通过不能替代稳定工作点。

SFC dev clk对应 SCLK状态结论
100/150/200/230 MHz50/75/100/115 MHz四个频点读写通过230 MHz、SCLK 115 MHz、采样延时 8 为当前最高验证点,量产前需补充重复上电和长时间压力验证。
250/260/266 MHz125/130/133 MHz首次通过,采样窗仅 2 档;270 MHz 后复跑失败稳定性不足,不作为有效工作频率,采用 DMA 也不改变该结论。
270 MHz135 MHz未建立有效采样窗口未进入性能测试,不可用于产品配置。

230 MHz 的采样窗已收窄到 2 档,量产前仍需补充重复上电和长时间压力验证。

测试条件

项目条件
器件与容量FS35SQA001G,128 MiB
页 / 擦除块2048 B / 128 KiB
测试平台G32S107_evb
已验证频点SFC 100/150/200/230 MHz
采样延时依次为 5/4/9/8
时钟关系NAND SCLK = SFC dev clk / 2
数据规模4/8/16/32 KiB 数据档,每点累计 256 KiB;单笔事务 2048 B
读数据校验每页 Cache 读后比较,比较时间不计入带宽
写数据口径擦除不计时;包含数据装载、执行、OIP 轮询与状态读取
文件系统YAFFS,32 KiB 文件连续 8 轮
速率单位MB/s,十进制,1 MB = 1,000,000 B

模块详解:SFC 功能与架构 · NAND 配置与接口。