当处理具有计算密集型需求或接近实时性能要求的项目时,拥有“快如闪电”的RAM对于开发人员来说通常是一件好事。这是 STMicro 在其大量STM32微控制器系列中包含核心耦合内存 (CCM) RAM 的原因之一。
与闪存存储不同,核心耦合内存(CCM) 提供高性能和零等待状态,允许执行指令的时间仅为从闪存存储运行固件所需时间的一小部分。据STMicro 称,它被包含在微控制器中,用于涉及“实时和计算密集型例程[包括]数字电源转换控制环路(开关模式电源、照明)、面向现场的三相电机控制、[和]实时 DSP(数字信号处理)”。
使用了STM32F303CC开发板对比普通SRAM与CCM内存。该开发板具有 256kB 闪存、40kB 静态 RAM (SRAM) 和 8kB 核心耦合存储器 (CCM) RAM。对于固件,采用了 LZ4 压缩算法作为基准,以及允许在闪存 SRAM 和 CCM RAM 上执行的自定义 CMake。在闪存、SRAM 和 CCM 上以不同的时钟速度执行 LZ4 压缩算法。在默认板时钟速度为 72MHz 且块大小为 8k 的情况下,从闪存执行 LZ4 算法需要 279 到 304 毫秒。改用 SRAM 将运行时间进一步降低至 251 毫秒,但改用 CCM 则将其进一步降低至 172 毫秒。为了进一步测试极限, 对设备进行超频,使其时钟速度达到 128MHz,并再次测试了所有三种内存的性能。在块大小与之前相同的新时钟速度下,闪存上的执行时间降至 156-171ms 之间,SRAM 上为 141ms,CCM 上为97ms 。
相互比较可以看出用CCM更快一些。
发表回复