九、RA8P1 MRAM速度测试和各种Flash技术对比

📅 2026/7/11 2:36:27
九、RA8P1 MRAM速度测试和各种Flash技术对比
一、背景Renesas RA8P1 是首款搭载 Cortex-M85 内核的 MCU主频可达 1 GHz。其片内集成了Code MRAM磁阻随机存取存储器作为非易失存储介质替代传统的嵌入式闪存eFlash。本文档记录了对 RA8P1 Code MRAM 写入/读取性能的实际测试结果、与 DCache 的兼容性问题以及系统总线数据路径分析。扩展对比eFlashNOR、MRAMSTT-MRAM、RRAM、PCMPRAM、FRAMFeRAM二、测试环境配置时钟配置时钟域频率来源CPU内核1 GHzPLL1P ÷ 1MRICLKMRAM 总线时钟250 MHzPLL1P ÷ 4MRPCLKMRAM 外设时钟125 MHzPLL1P ÷ 8来源ra_gen/bsp_clock_cfg.hMRAM 硬件规格来源RA8P1 用户手册 R01UH1064EJ0110 §60参数值Code MRAM 容量最大 1 MB地址0x0208_0000编程数据缓冲区32 字节写入触发条件缓冲区满32 B或 MRCFLR.MRCFL 强制刷新总线接口MRC0BICode MRAM Bus Interface额外 MRAMMRE0BI只读接口最大总线频率500 MHzMRICLK计时方法DWT 循环计数器DWT-CYCCNT在主频 1 GHz 下以 CPU 周期计数1 周期 1 ns。计数器为 32 位约每 4.3 秒回绕一次2³² ns。所有测试均在回绕时间内完成无需处理溢出。三、写入速度测试3.1 时序公式手册 §70.16.1 Table 70.121Normal 模式tPMC(Typ) 137.8/FMRICLK 6.452 µs每 32 BHigh-speed 模式tPMC(Typ) 137.8/FMRICLK 4.452 µs每 32 BHigh-speed 模式由 FSP 驱动r_mram.c:907中设置MRPSC.MHSPEN 1启用。MRICLK 250 MHz 时理论值~5.0 µs/32 B → ~6.4 MB/s3.2 实测结果数据模式写入速度MB/s说明递增种子6.07混合比特翻转约 50%最慢全 0xFF擦除态→写入8.19翻转最少最快全 0x00上一轮后7.08介于之间速度差异的根本原因MRAM 写入时间与比特翻转方向相关。0→1 翻转最快1→0 次之混合方向最慢。手册的 Typ 值~6.4 MB/s假定 50% 比特翻转。3.3 读取速度操作512 KB 耗时等效带宽memcpyMRAM → SRAM~18.9 ms~26.4 MB/sCRC-32 查表~35.7 ms~14.3 MB/s读取速度固定与数据内容无关。读取期间 DCache 关闭实测为纯 MRAM 访问速度。3.4 测试代码结构文件src/mram_test.chal_entry() └─ mram_auto_test() ├─ 读取种子0x020FF000 ├─ 可选关闭 DCache ├─ 构建 CRC-32 表 ├─ test_pattern(incremental, fill_inc, seed) ← 写 读 CRC ├─ test_pattern(all-0xFF, fill_const, 0xFF) ├─ test_pattern(all-0x00, fill_const, 0x00) ├─ 种子 1 写回 MRAM关中断保护 └─ 可选恢复 DCache计时DWT 周期计数器1 GHz 下 1 周期 1 ns块大小1 KB512 次写操作 512 KB 总写量验证CRC-32 查表写入前计算源 CRC读取后对比00 MRAM Write/Read Test 00 FW: 512 KB 0x02080000, Chunk: 1024 B, Seed: 0x23 00 00 --- Pattern: incremental (seed) --- 00 Write 1KB: 158 us 6329 KB/s (6.180 MB/s) 00 Write all: 82047 us 6240 KB/s (6.093 MB/s) 00 Read: 18947 us 27022 KB/s (26.388 MB/s) 00 CRC: 35681 us, check: PASS 00 00 --- Pattern: all-0xFF --- 00 Write 1KB: 115 us 8695 KB/s (8.491 MB/s) 00 Write all: 61067 us 8384 KB/s (8.187 MB/s) 00 Read: 18947 us 27022 KB/s (26.388 MB/s) 00 CRC: 35680 us, check: PASS 00 00 --- Pattern: all-0x00 --- 00 Write 1KB: 135 us 7407 KB/s (7.233 MB/s) 00 Write all: 70601 us 7252 KB/s (7.082 MB/s) 00 Read: 18947 us 27022 KB/s (26.388 MB/s) 00 CRC: 35681 us, check: PASS 00 00 Done 四、DCache 兼容性问题4.1 症状R_MRAM_Write() → FSP_ERR_IN_USE错误码 8于 r_mram.c:317错误条件为R_MRMS-MRCPS (ABUFFULL | PRGBSYC)在上一次写入后未清零。4.2 根因分析MRAM 的写入机制与传统 Flash 不同它通过内存映射 AXI store*dest *src将数据送入 32 字节编程数据缓冲区然后在 P/EProgram/Erase模式下写入存储单元。数据必须在 P/E 模式窗口内通过 AXI 总线到达 MRAM 控制器。RA8P1 总线系统包含四级缓存Figure 15.1, §15CPU 核 → [D-Cache] → CPU0MAXIBI → [C-Cache] → [S-Cache] → 总线矩阵 → MRC0BI → MRAMD-CacheARM L1 Data Cache, 16 KB: 在 CPU 核内部Cortex-M85 标配C-CacheCode-bus Cache, 16 KB: Renesas 自定义 IP仅缓存代码总线S-CacheSystem-bus Cache, 16 KB: Renesas 自定义 IP缓存系统总线三种状态的对比§15 Figure 15.1, §2.16, §60.4DCache 状态AXI 写事务MRAM 编程结果关闭store 直达总线矩阵 → MRC0BI → MRAM 缓冲区✅ 正常写入开启 Write-Back默认store 被 D-Cache 吸收不发总线❌ Error 8开启 FORCEWT1store 经 Write-Through 走总线但 write buffer 可能延迟/合并 AXI 事务⚠️ 可能失败注意BSP_CFG_DCACHE_FORCE_WRITETHROUGHMEMSYSCTL-MSCR.FORCEWT§63.2.4默认 1强制 D-Cache 使用 Write-Through 策略。但 Write-Through 仍经过 write buffer连续字节 store 可能被合并延迟无法保证在 P/E 模式窗口内到达 MRAM 控制器。4.4 驱动的缺失文件是否有 DCache 处理r_mram.cFSP 驱动❌ 无。未调用任何CleanDCache/InvalidateDCachemram_ep.c官方示例❌ 无。仅__disable_irq()/__enable_irq()mram_test.c本测试✅ 测试前后关闭/恢复 DCache来源FSP v5.9ra/fsp/src/r_mram/r_mram.c全文检索 cache 无匹配。4.5 临时解决SCB_CleanInvalidateDCache(); SCB_DisableDCache(); // ... MRAM 写入操作 ... SCB_EnableDCache();五、嵌入式非易失存储技术对比下表对比 MCU 片内嵌入式非易失存储技术。数据来源RA8P1 手册 R01UH1064EJ0110、Renesas ISSCC 2024 STT-MRAM 论文、英飞凌 TC4xx RRAM 白皮书、意法半导体 Stellar P6 PCM 资料、JEDEC 标准。参数eFlashNORMRAMSTT-MRAMRRAMPCMPRAMFRAMFeRAM存储原理浮栅电荷存储磁阻隧道结MTJ电阻态转变氧空位硫系化合物相变晶态/非晶态铁电体极化PZT 膜MCU 代表产品传统 MCU40 nmRA8P1/T2/M2/D2Renesas 22 nmS32K5NXP 16 nm FinFETAURIX TC4x英飞凌 28 nmnRF54L15Nordic 22 nm ULLStellar P6ST 28 nm FD-SOISTM32V8MSP430 FRAM 系列TI、Ramtron写入方式页擦除→页编程FCUAXI store*addrdata位写入无需擦除位覆写位写入无需擦除典型写速度~0.1 MB/s~6 MB/s实测~0.18 MB/sNordic nRF54L15注①~0.38 MB/sST 18nm ePCM注①~16 MB/s125 ns/word 8 MHzTI MSP430注②读速度受 Wait State 限制~26 MB/s实测未公开快于 eFlashSRAM 同等速度系统时钟耐久度次10K~100K100K~1M100K~1M10K~100K1012~1015几乎无限写入前擦除需要不需要不需要不需要不需要比特覆写❌✅✅✅✅数据保持20 年 85°C10 年 125°C10 年 85°C10 年 125°C10 年 85°C最小制程40 nm受限22 nm / 16 nm FinFET28 nm28 nm FD-SOI130 nm~500 nm密度受限存储密度高中/高中中单元面积最小注③低通常 ≤16 Mb代表产品/官方资料—Renesas RA8P1NXP S32K516纳米FinFET嵌入式MRAMInfineon 新闻稿明确 RRAM产品概览 PDFRRAM-NVMNordic nRF54L15TSMC 22ULL eReRAMST Stellar P6STM32V8MSP430FR2422 数据手册tWRITESLAA498B 写速度应用报告125 ns/word是否需要 DCache 特殊处理否FCU 写是待评估待评估否CPU 本地总线核心优势技术成熟、成本低无需擦除、密度与速度均衡、适合代码存储结构最简单、可扩展至先进制程、位写入单元面积最小注③、耐温最高165°C写入最快125 ns/word同 SRAM、耐久度几乎无限10^15注①RRAM 写入速度来自 Nordic nRF54L15 第三方分析Argenox顺序地址写入 22 μs/32 bit word → ~0.18 MB/snRF54L15 v1.0 §11.16.1。Infineon TC4x 的 RRAM 官方文档未公开明确写入时序仅声明RRAM 使用与 eFlash 相同的软件接口功能行为一致。PCM 写入速度来自 ST 白皮书 18nm FD-SOI and ePCM~3 Mbps → ~0.38 MB/s85 μs/32 B。ST Stellar P6/STM32V8 官方数据手册需 NDA 或注册访问仅描述fast read/write speeds with single-bit alterability。注②FRAM 写入速度来自 TI 官方应用报告 SLAA498BMaximizing Write Speed on the MSP430 FRAMTable 1125 ns/word16 bit word。FRAM 控制器在 8 MHz 以下是零等待1 周期/word超过 8 MHz 需插入等待周期NWAITSx。FRAM 本质是与 SRAM 速度相同的 NVM——写入速度受限于 CPU/总线频率而非 FRAM 存储单元本身。耐久度 10^15 次、无需擦除、位写入。注③ST 官方博客2026-01-29STM32V8 发布声明其 PCM 单元面积为 MRAM 和 RRAM 的一半——our PCM allows us to halve the memory footprint compared to MRAM and RRAM, thus offering the smallest non-volatile memory cells in an MCU。FRAM 与 TI OptiFlash 的区别FRAM 是新型 NVM介质铁电体存储直接替代 eFlash/RAM 作为 MCU 片内统一存储器。TI OptiFlash 是外置 NOR Flash 硬件加速器的组合方案包括 RL2 缓存控制器、Flash 线性控制器 FLC、和执行加速器 RAT并非新型 NVM 介质。两者是不同层面的技术FRAM 改变存储介质本身OptiFlash 改变访问架构。六、待解决问题MPU 方案通过ARM_MPU_SetRegion()将 MRAM 标记为 Non-cacheable无需关 DCache第一次尝试调用ARM_MPU_Disable()后触发 HardFault —— 原因禁用 MPU 时会丢弃所有 BSP 预设的 MPU 区域导致系统关键内存属性丢失第二次尝试不调用ARM_MPU_Disable()仅执行ARM_MPU_SetRegion()后仍崩溃 —— 根因可能为MRAM 的旧 DCache 行缓存了 Write-Back 数据SetRegion 后属性变更但脏行未失效待测试修复ARM_MPU_SetRegion()前增加SCB_InvalidateDCache_by_Addr()清理 MRAM 范围内的缓存行代码已写未验证读性能优化利用 MRAM Prefetch BufferMRCPFB、Memory-to-Memory DMA 加速读取S-Cache 影响S-CacheSystem-bus Cache, 16 KB默认未启用R_BSP_FlashCacheEnable() 仅启用 C-Cache。若启用并设为 Write-Through 模式需评估其对 MRAM 写入的影响CPU1Cortex-M33架构与 CPU0 相同Figure 15.1同样存在 D-Cache → CPU0MAXIBI → C-Cache → S-Cache → 总线矩阵 → MRC0BI 路径预计 D-Cache 对 MRAM 写入的影响与 CPU0 一致待实测确认七、总结RA8P1 Code MRAM 实测 AXI 写入速度 6.07~8.19 MB/s符合手册公式理论值~6.4 MB/s Typ50% 翻转读取速度 ~26.4 MB/s。D-Cache 开启时 MRAM P/E 模式写入会失败Error 8根本原因在于 store 被缓存吸收无法在 P/E 窗口内到达 MRAM 控制器。当前可靠方案写入前关 DCacheSCB_DisableDCache()写入后恢复。FSP 驱动及官方示例均未处理此问题属于系统集成层面的文档与设计空白。行业全景——各主要厂商的新型 NVM 路线MRAMRenesasRA8P1/T2/M2/D222 nm、NXPS32K516 nm FinFETRRAMInfineonAURIX TC4x28 nm、NordicnRF54L15TSMC 22ULL eReRAMPCMSTStellar P6 28 nm FD-SOI、STM32V8 18 nm FD-SOIFRAMTIMSP430 系列密度受限主攻低功耗计量/RFID外置 Flash 加速器TI OptiFlash非新型 NVM 介质代工厂支撑TSMC 提供 22 nm/16 nm MRAM、28 nm/6 nm RRAMGlobalFoundries 提供 22FDX eMRAMAuto Grade 1150°C500K 次耐久国产动态目前国产MCU尚无量产集成新型NVM的产品但国产RRAM已取得突破——新忆科技清华孵化55 nm→22 nm RRAM累计出货超2000万颗良率99%、昕原半导体28 nm RRAM量产线、合肥睿科微兆易创新合资ISSCC 2026发表55 nm RRAM存算一体芯片3D堆叠。中芯国际40 nm RRAM已量产。国产MCU厂商正在与代工厂评估28~16 nm节点的RRAM/MRAM方案。新型NVM无需擦除、按位覆写正在各细分领域加速替代传统 eFlash。官方文档写速度对比按 32 B 归一化FRAMTI MSP430: 2 µs/32 B ~16 MB/s125 ns/16 bit word8 MHzSLAA498BMRAMRenesas RA8P1: 4.7 µs/32 B ~6.4 MB/stPMC high-speed 公式R01UH1064 §70.16.1RRAMNordic nRF54L15: 176 µs/32 B ~0.18 MB/s22 µs/32 bit word 顺序写入nRF54L15 v1.0 §11.16.1PCMST 18 nm ePCM: 85 µs/32 B ~0.38 MB/s~3 MbpsST 白皮书 18nm FD-SOI and ePCM