B2.12 缓存和内存层次结构
内存系统的实现很大程度上取决于微架构,因此内存系统的许多细节是 IMPLEMENTATION DEFINED 。Arm 架构定义了内存系统的应用级别接口,包括具有多个缓存层次结构的分层内存系统。本节描述了此系统的应用级别视图。它包含以下小节:
-
缓存简介。
-
内存层次结构。
-
应用级别对与缓存相关功能的访问。
-
缓存对应用程序开发者的影响。
-
预加载缓存。
B2.12.1 缓存简介
缓存是一个高速存储块,包含多个条目,每个条目包括:
-
主存储器地址信息,通常称为标签(tag)。
-
相关数据。
缓存提高了内存访问的平均速度。缓存考虑了两个局部性原则:
空间局部性
对一个位置的访问可能会跟随对相邻位置的访问。此原则的例子包括:
-
顺序指令执行。
-
访问数据结构。
时间局部性
对内存区域的访问可能在短时间内重复。此原则的一个例子是软件循环的执行。为了最大限度地减少存储的控制信息数量,空间局部性属性将多个位置分组在同一个标签下。这个逻辑块通常称为缓存行。当数据加载到缓存中时,随后的加载和存储的访问时间减少,从而带来整体性能的提升。访问已经在缓存中的信息称为 缓存命中 ,而其他访问称为 缓存未命中 。
通常,缓存是