一、Data ScratchPad RAM是什么?
Data ScratchPad RAM(缩写DSRAM),中文可以理解为数据 ScratchPad RAM。
- 类型:它是一种片上存储器(On-Chip Memory),通常位于CPU核心附近,或者集成在片上系统(Soc)中。
- 管理方式:关键在于“ScratchPad”这个词。它不是像 Cache 那样由硬件自动管理的。数据的加载、存储和替换完全由软件(程序员和或编译器)显示控制。CPU需要通过特定的指令(如LDR到指定地址,STR到指定地址)来直接读写 DSRAM 中的数据。
- 特性:访问延迟通常非常的低,且是可预测的,因为数据就在CPU附近,不需要像访问主内存那样经过复杂的总线传输和Cache命中判断。
二、DSRAM 的作用是什么?
DSRAM 的主要作用是提供一种由软件控制的、低延迟、低功耗的数据存储区域。以优化特定应用的性能。主要优势体现在以下几个方面:
- 1、确定性:由于访问延迟固定且低,DSRAM 非常适合实时系统。在这些系统中,任务必须在严格的时间限制内完成,Cache 的不确定延迟(可能发生未命中,导致长延迟)是不可接受的。DSRAM 提供了可预测的访问时间。
- 2、性能优化:对于某些计算密集型或数据局部性非常好的应用,程序员可以通过将频繁访问的数据块手动放入 DSRAM,避免反复访问较慢的主内存,从而显著减少访问延迟,提高运行速度。这需要程序员对数据访问模式有深入的了解。
- 3、功耗降低:相比访问片外的主内存,访问片上的 DSRAM 通常功耗更低。在低功耗应用中,这是一个重要的考虑因素。
- 4、避免 Cache 冲突/污染:有时,将某些关键数据放入 DSRAM 可以避免它们与频繁访问的其他数据在 Cache 中竞争,减少 Cache 未命中的情况。
三、DMA 将其作为目的地址有什么好处?
DMA(Direct Memory Access,直接内存访问)控制器可以在不占用 CPU 资源的情况下,在内存的不同区域之间传输数据。当 DMA 将 DSRAM 作为目的地址时,主要有以下好处:
- 1、加速数据加载,减少 CPU 干预:对于需要将大量数据(如传感器数据、图像帧、音频流等)快速加载到 CPU 需要频繁访问的区域的情况,DMA 可以将这些数据直接传输到 DSRAM。如此,CPU 就不必花费时间去执行加载指令(LDR)从内存读取这些数据,可以腾出时间去做其他计算或控制任务。
- 2、利用 DSRAM 的低延迟特性:一旦数据通过 DMA 传输到 DSRAM,CPU后续访问这些数据时就能享受到 DSRAM 提供的低延迟和高宽带。这对于需要快速处理刚刚接收到的数据的场景尤其有利。
- 3、提高系统整体效率:DMA的传输是并行于 CPU 工作的。CPU 可以在 DMA 传输数据到 DSRAM 的同时,开始准备处理这些数据(例如,从 DSRAM 读取数据进行计算)。这大大提高了系统的并行度和整体效率。
- 4、适用于流式数据:对于持续流入的数据流,DMA 可以持续地将新数据写入 DSRAM 的特定区域,而 CPU 可以专注于从 DSRAM 的另一个区域读取并处理旧数据,实现一种流水线的工作方式。
四、DSRAM 的核心特点
-
软件控制:程序员必须手动管理数据的进出。
-
低延迟:访问速度快。
-
确定性:延迟可预测。
-
与 DMA 结合:可以高效地将数据预加载到 DSRAM 中,供 CPU 快速访问。
DSRAM 是一种需要程序员精心设计和管理的优化手段,适用于对延迟、功耗或确定性有特殊要求的嵌入式系统和实时应用。