础滨驱动的设计应用
Synopsys 产物营销经理 Rich Collins
多年来,内存管理技术一直是处理器架构的关键。处理器的物理地址空间定义了系统中以物理方式存在的内存 (RAM) 的地址范围。内存管理动态地将部分物理内存分配给一个进程,并在不需要时将其释放以供其他进程重用。
虚拟寻址将这些进程所需的内存地址与物理内存地址分离,从而允许虚拟地址空间大于物理内存空间。内存管理单元 (MMU) 通过将虚拟页码映射到主内存中的物理页码,高效地将特定进程所需的内存空间“分页”或“交换”到次级存储单元(图 1)。
图 1:虚拟地址到物理地址的转换
大多数低功耗嵌入式(和深度嵌入式)应用不需要利用诸如 Linux 之"类的富操作系统。这些应用通常在“裸机”(无操作系统)或实时操作系统 (RTOS) 上运行。这些选项不需要架构 MMU 提供的虚拟到物理转换。Synopsys DesignWare? ARC? EM 处理器 IP 通常用于运行 RTOS 的深度嵌入式应用。
但是,在某些情况下,虚拟地址到物理地址的转换有助于提高性能,例如位于慢速辅助内存中的大型代码库。然后,进程可以被分页到更快、更小的片上内存中,称为页 RAM (PRAM)。在以单个进程(一个进程 ID 或 PID)的形式运行所有代码的系统中,使用一个大型虚拟地址空间,其中虚拟地址和次级存储单元(如闪存或 DRAM)中选定的一大块区域之"间有一一对应关系,地址转换可用于检测某一段(或一页或多页)代码何时驻留在 PRAM 中,并在 PRAM 中提供该页的物理地址。
Synopsys 最近增加了对这一概念的支持,称为“硬件 Overlay 管理”,作为 ARC EM 处理器的一个附加选项。
当 Overlay Manager (OLM) 存在时,ARC EM 处理器支持虚拟内存寻址(图 2)。如果不存在 OLM 选项,或者 OLM 选项存在但被禁用,则所有虚拟地址都将直接映射到物理地址。
如图 1 所示,Overlay Manager 具有转换后援缓冲器 (TLB),用于 4KB、8KB 或 16KB 内存页的地址转换和保护,以及未转换内存的固定映射。未转换内存段的上半部分是未缓存的(用于 IO),而未转换内存段的下半部分是缓存的(用于操作系统内核)。
启用 OLM 选项后,ARC EM 内核为指令和数据访问定义了一个公共地址空间。内存转换和保护系统可以安排为在公共地址空间内提供用于指令和数据访问的独立、非叠加受保护内存区域。
图 2:ARC EM 管道内的 OLM 组件
可以将 OLM 选项的 TLB 架构视为页描述符的两级缓存:用于指令和数据的“微 TLB”(μI-TLB 和 μD-TLB)作为第一级,而“联合”TLB (J-TLB) 作为第二级。
主页表包含映射供内核或用户任务使用的每个页的完整详细信息(图 3)。μTLB、J-TLB 和未命中处理程序相结合,提供了对操作系统页表的缓存访问。操作系统(或微内核)需要让加载到 OLM 中的页表条目与内存中的主页表保持同步(一致)。
从辅助存储中引入一个新页可能涉及从 PRAM 中逐出一个现有页(如果 PRAM 已满)。使用最近最少使用 (LRU) 算法执行逐出。
图 3:OLM 页表结构
为了促进高效的操作,需要一个外部模块(由客户定义)来跟踪页使用情况,并向软件提供指示,以便在物理内存已完全分配且需要加载新页时替换受害页。OLM 模块提供了一个 LRU 接口,使外部模块可以访问跟踪已用页所需的必要内部信号。
通常,低功耗嵌入式(和深度嵌入式)应用依赖于 RTOS,不需要 MMU 为富操作系统(如 Linux)提供的地址转换,但在边缘设备上运行的应用的快速增长已将桌面级系统需求推向超低功耗嵌入式处理器。
由于功耗和面积总是非常宝贵的,因此,通常基于架构 MMU 的系统成本太高,并且已经实现了许多基于软件的解决方案(例如自动叠加管理)来解决这些嵌入式设备有限的内存资源中的可编程性。
为了补充这些软件解决方案,Synopsys 为 ARC EM 处理器 IP 提供了基于硬件的轻量级迭加管理解决方案,从而以最小的功耗和面积开销实现了地址转换和访问权限验证。该选项增强了在 ARC EM 内核上运行更大、数据更密集的应用的能力,比如那些在 AIoT“始终开启”和无线基带应用领域中日益流行的应用。