https://blog.csdn.net/silent123go/article/details/53169783
什么是协处理器
协处理器是一种芯片,用于减轻系统微处理器的特定处理任务。例如,数学协处理器可以控制数字处理;图形协处理器可以处理视频绘制。例如,intel pentium微处理器就包括内置的数学协处理器。
协处理器可以附属于ARM处理器。一个协处理器通过扩展指令集或提供配置寄存器来扩展内核处理功能。一个或多个协处理器可以通过协处理器接口与ARM内核相连。
协处理器可以通过一组专门的、提供load-store类型接口的ARM指令来访问。例如协处理器15(CP15),ARM处理器使用协处理器15的寄存器来控制cache、TCM和存储器管理。
协处理器也能通过提供一组专门的新指令来扩展指令集。例如,有一组专门的指令可以添加到标准ARM指令集中,以处理向量浮点(VFP)运算。
这些新指令是在ARM流水线的译码阶段被处理的。如果在译码阶段发现是一条协处理器指令,则把它送给相应的协处理器。如果该协处理器不存在,或不认识这条指令,则ARM认为发生了未定义指令异常。这也使得编程者可以用软件来仿真协处理器的行为(使用未定义指令异常服务子程序)。
80486CPU之前有协处理器,提高浮点运算能力,那时cpu较弱才有的协处理器,现在速度是原来数百倍不止,pc机一般不存在协处理器了。
ARM 微处理器可支持多达 16 个协处理器,用于各种协处理操作,在程序执行的过程中,每个协处理器只执行针对自身的协处理指令,忽略 ARM 处理器和其他协处理器的指令。ARM 的协处理器指令主要用于:ARM 处理器初始化,ARM 协处理器的数据处理操作,以及在ARM 处理器的寄存器和协处理器的寄存器之间传送数据,和在 ARM 协处理器的寄存器和存储器之间传送数据。ARM 协处理器指令包括以下 5 条:
— CDP 协处理器数操作指令
— LDC 协处理器数据加载指令
— STC 协处理器数据存储指令
— MCR ARM处理器寄存器到协处理器寄存器的数据传送指令
— MRC 协处理器寄存器到ARM处理器寄存器的数据传送指令
协处理器指令介绍
1、CDP 指令
CDP 指令的格式为:
2、LDC 指令
LDC 指令的格式为:
3、STC 指令
STC 指令的格式为:
4、MCR 指令
MCR 指令的格式为:
5、MRC 指令
MRC 指令的格式为:
CP15协处理器详解
1、CP15的作用及指令
CP15-系统控制协处理器 (the system control coprocessor)他通过协处理器指令MCR和MRC提供具体的寄存器来配置和控制caches、MMU、保护系统、配置时钟模式(在bootloader时钟初始化用到)。CP15的寄存器只能被MRC和MCR(Move to Coprocessor from ARM Register )指令访问,其格式如下:
cond:为指令执行的条件码。当cond忽略时指令为无条件执行。
Opcode_1:协处理器的特定操作码. 对于CP15寄存器来说,opcode1永远为0,不为0时,操作结果不可预知
Rd:作为源寄存器的ARM寄存器,其值将被传送到协处理器寄存器中,或者将协处理器寄存器的值传送到该寄存器里面
CRn:作为目标寄存器的协处理器寄存器,其编 可能是C0,C1,…,C15。
CRm:协处理器中附加的目标寄存器或源操作数寄存器。如果不需要设置附加信息,将CRm设置为c0,否则结果未知
Opcode_2:可选的协处理器特定操作码。(用来区分同一个编 的不同物理寄存器,当不需要提供附加信息时,指定为0)
在基于ARM的嵌入式系统中,存储系统通常是通过系统控制协处理器CP15完成的。CP15可以包含16个32位的寄存器,其编 为0-15。实际上对于某些编 的寄存器可能对应有多个物理寄存器。在指令中指定特定的标志位(CRm和Opcode_2)来区分这些物理寄存器。有些类似于ARM寄存器中,处于不同的处理器模时,ARM某些寄存器可能不同。
2、CP15的寄存器介绍
CP15 的寄存器列表如下表所示:
控制字段位 [23 : 12] 及控制字段位 [11 : 0] 含义
[23:12]用于定义数据cache的属性,[11: 0]用于定义指令cache的属性。编码格式如下:
2.4 CP15 的寄存器 C5
CP15 中的寄存器 C5 是失效状态寄存器,分为指令状态失效和数据状态失效。
MRC p15, 0, , c5, c0, 0 访问数据失效状态寄存器
MRC p15, 0, , c5, c0, 1 访问指令状态失效寄存器
编码格式如下所示:
2.9 CP15的寄存器C13
CP15中的寄存器C13用于快速上下文切换。其编码格式如下所示
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!