浅谈ARMv7-A协处理器CP15

浅谈ARMv7-A协处理器CP15
协处理器,顾名思义就是协助型处理器,主要协助做⼀些主处理器⽆法执⾏或者执⾏效率不佳的事情,⽐如浮点、图像、⾳频处理这⼀
协处理器,顾名思义就是协助型处理器,主要协助做⼀些主处理器⽆法执⾏或者执⾏效率不佳的事情,
类,随着硬件的发展,⼤多协处理器的功能都慢慢集成到主处理器中,但是某些特定的⼯作还是需要协处理器进⾏辅助。
ARM拥有16个协处理器,常被命名为 CP0—CP15,其中CP0—CP7由⼚家定义协处理功能,⽽CP8—CP15预留给ARM使⽤:
ARM拥有16个协处理器,常被命名为 CP0—CP15
御书院
1.CP15 提供⼀些系统控制功能,这包括体系结构和特征识别,以及控制、状态信息和配置⽀持,还提供了性能监视器寄存器
2.CP14 主要提供 debug 系统的控制、Thumb执⾏环境、Java字节码执⾏。
3.CP10、CP11 两个协处理器⼀起,提供了浮点运算和向量操作,以及⾼级的 SIMD 指令扩展。
摩托罗拉a62884.协处理器8、9、12和13预留给ARM将来使⽤。
CP15寄存器特性:五戒禅师私红莲记
01.CP15寄存器特性:
01.
低利率 通胀
CP15 ⼀共有 16 个寄存器,通常是需要 PL1 特权级才能访问,ARMv7 的 CP15 寄存器都是复合功能寄存器,多种功能对应多个寄存器内存实体,由访问指令的参数来决定访问的是哪种功能对应的内存。
对于 ARMv7 架构⽽⾔,A 系列和 R 系列是统⼀设计的,A 系列带有 MMU 相关的控制,⽽ R 系列带有 MPU 相关控制,针对不同的功能需要做区分,同时⼜因为协处理器 CP15 只⽀持 16 个寄存器,⽽需要⽀持的功能较多,所以通过同⼀寄存器不同功能的⽅式来满⾜需求。
在指令的编码中,⽀持 16 个寄存器只需要使⽤ 4 位,如果需要⽀持 32 个寄存器,就需要多使⽤⼀位寄存器位,要知道,对于指令编码⽽⾔,每⼀位的资源都是⾮常紧缺的,关于指令编码可以参考 ARM指令集编码。
CP15寄存器的访问:
02.
02.CP15寄存器的访问:
ARMv7 中对于协处理器的访问,使⽤ mcr 和 mrc 指令,分别表⽰将 ARM 核⼼寄存器中的值的写到 CP15 寄存器中和从 CP15 寄存器中读到 ARM 核⼼寄存器中,⼤部分指令都需要在 PL1 以及更⾼的特权级下才能正常执⾏,这是因为 CP15 协处理器⼤多都涉及到系统和内存的设置,user 模式没有操作权限,user 模式仅能访问 CP15 中有限的⼏个寄存器⽐如:ISB、DSB、DMB、TPIDRURW、TPIDRURO 寄存器。下⾯以mrc和mcr指令为例,进⾏讲解:
MRC:
作⽤:将协处理器寄存器的值读取到ARM的寄存器中
实例:mrc p15, 0, r0, c0, c1, 1西方公司
将协处理器CP15的寄存器的值读取到ARM的r0寄存器中。
MCR:
作⽤:将ARM的寄存器的值读取到中协处理器寄存器
实例:mcr p15, 0, r0, c0, c1, 1
将ARM的r0寄存器的值读取到协处理器CP15的寄存器中。
CP15寄存器和操作数总览:
03.CP15寄存器和操作数总览:
03.
尽管 CP15 的寄存器是 c0—c15,但是根据上⽂中的介绍,实际上真正的寄存器实体完全不⽌ 16 个,⽽是通过 “<opc1>(通常是0),<CRn>, <CRm>{,#<opc2>}” 来确定需要操作的⽬标寄存器,下表就
是整个 c0—c15 寄存器以及功能的总览:
c0:
c0是标识寄存器,对应的功能列表如下表:
c1:
c1是系统控制寄存器,对应的功能列表如下表:
c2和c3是内存保护和控制寄存器,对应的功能列表如下表:
在ARM v7-A的⼤型物理地址扩展或虚拟化扩展的实现中,CP15的c2寄存器包括⼀些64位的系统控制寄存器。
心灵的微光c4:
c4未使⽤
c5、c6:
c5和c6是内存系统错误寄存器,对应的功能列表如下表:
c7:
c7包括缓存维护、地址转换,以及其他功能,对应的功能列表如下表:
c8:
c8是TLB维护操作,对应的功能列表如下表:

本文发布于:2024-09-23 13:20:13,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/231530.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:寄存器   功能   对应   协处理器   需要   指令
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议