为了进行性能比较,使用了三种不同的存储芯片,即Everspin EM064LX 64Mib STT‐MRAM、Micron MT25Q 128Mib NOR闪存和Micron MT29F 1Gib SLC NAND闪存。
该基准测试在STM32H755ZI上运行,Cortex‐M7内核的时钟频率为240MHz。Quad SPI总线用于1‐4‐4配置,时钟频率为120MHz,接近133MHz的最大支持频率(所有三个设备都相同)。除了内存驱动程序之外,所有三种设备的基准测试代码和配置都完全相同。
从测试芯片获得的平均写入吞吐量如图1所示。有几件事立刻引人注目。首先也是最明显的一点是,MRAM的写入性能大约是NAND闪存的五倍,是NOR闪存的两百倍。从图1中可以看出MRAM的性能是如何受CPU限制的。也就是说,对于小的访问,在驱动程序代码中花费的时间,特别是为请求的传输设置DMA的时间,与实际传输时间相比足够长,从而限制了整体吞吐量。这表明,随着原始设备性能的提高,数据存储软件的挑战在未来可能会发生变化。对于闪存技术,尤其是NOR闪存,吞吐量优化主要是最小化读写放大。在CPU周期中付出的额外成本几乎总是值得的。
图:所有测试设备的平均写入吞吐量。MT25Q吞吐量(图中不可见)约为280KB/s,与访问大小无关。
EMxxLX系列几乎在各个方面都优于闪存。MRAM和闪存之间的性能差距,特别是在访问速度方面,特别是考虑到写入吞吐量、写入延迟和RAM使用之间的关系。