目录
[2.1 关于系统控制协处理器](#2.1 关于系统控制协处理器)
[2.2 寄存器](#2.2 寄存器)
2.1 关于系统控制协处理器
所有标准内存和系统设施都由协处理器15(CP15)控制,因此它被称为系统控制协处理器。有些设施也使用其他控制方法,这些方法在描述这些设施的章节中有描述。例如,第B3章"内存管理单元"中描述的内存管理单元也由内存中的页表控制。
如果系统中没有实现任何标准内存和系统设施,那么系统控制协处理器可能不存在。在这种情况下,没有协处理器接受CP15指令,因此所有此类指令都是未定义的(UNDEFINED)。
然而,内存和系统架构的新实现必须实现系统控制协处理器,并必须遵循一些额外的规则,这些规则涉及哪些设施被实现。有关这些规则的详细信息,请联系ARM Ltd。
本章描述了系统控制协处理器的总体设计以及如何访问其寄存器。对其寄存器的一些详细信息进行了介绍。其他寄存器被分配给其他章节中详细描述的设施,并且仅在本章中进行了总结。
2.2 寄存器
系统控制协处理器可以包含多达16个主要寄存器,每个寄存器都是32位长。对于这些寄存器中的一些,寄存器访问指令中的额外位被用来识别寄存器的特定版本和/或对寄存器的特定类型的访问,因此CP15中物理32位寄存器的数量可能超过16个。然而,4位的主要寄存器号被用来在系统控制协处理器的描述中识别寄存器,因为它是决定寄存器功能的主要因素。
CP15寄存器可以是只读的、只写的或读写的。寄存器的详细描述指定了:
- 允许访问的类型
- 每种类型的访问调用的功能
- 是否一个主要寄存器识别多个物理寄存器,如果是的话,它们是如何区分的
- 任何与寄存器使用相关的其他细节。
系统控制协处理器CP15是ARM架构中用于控制内存和系统功能的关键组件。它包含多个寄存器,用于管理缓存、内存管理单元(MMU)、保护系统等。以下是CP15的一些主要功能和寄存器的简介:
-
系统控制和配置:CP15允许配置整个系统的控制参数,包括处理器的工作模式、权限级别、异常处理等。
-
缓存配置和管理:CP15包含用于控制数据缓存和指令缓存的寄存器,可以开启或关闭缓存、配置缓存的属性以优化数据访问性能。
-
内存管理单元(MMU)的配置和管理:CP15的某些寄存器用于配置MMU,实现虚拟地址到物理地址的转换、内存保护等功能。
-
L2缓存的预加载引擎:在一些ARM实现中,CP15可能包含用于L2缓存的预加载引擎,以提高缓存效率。
-
系统性能监控:CP15的一些寄存器可用于监视处理器的性能,例如通过性能计数器来跟踪指令执行次数和缓存命中率。
CP15寄存器的访问通常需要特定的指令,如MRC
(Move to Register from Coprocessor)用于从CP15寄存器读取数据,MCR
(Move to Coprocessor from Register)用于向CP15寄存器写入数据。这些指令只能在特权模式下执行。
CP15的寄存器包括但不限于以下几类:
- 处理器ID寄存器(如c0):用于标识处理器的类型、制造商和版本信息。
- 控制寄存器(如c1):包含控制位,用于控制MMU、缓存等系统功能。
- 地址转换表基址寄存器(如c2):用于存储内存地址转换所需的表基址。
- 域访问控制寄存器(如c3):用于控制内存访问权限。
- 高速缓存和写缓存控制寄存器(如c7):用于控制缓存的操作,如缓存清理和刷新。
在使用CP15时,需要注意操作系统的要求,避免出现兼容性问题,并仔细阅读相关文档,确保对CP15寄存器的操作是安全的。