【生意多】-免费发布分类信息
当前位置: 首页 » 新闻 » IT资讯 » 正文

arm的协处理器有几个?ARM协处理器详解

放大字体  缩小字体 发布日期:2022-03-30 15:28:42    浏览次数:22
导读

  处理器是英国Acorn有限公司设计的低功耗成本的第一款RISC微处理器。全称为AdvancedRISCMachine。处理器本身是32位设计,但也

  处理器是英国Acorn有限公司设计的低功耗成本的第一款RISC微处理器。全称为AdvancedRISCMachine。处理器本身是32位设计,但也配备16位指令集,一般来讲比等价32位代码节省达35%,却能保留32位系统的所有优势。

  ARM的Jazelle技术使Java加速得到比基于软件的Java虚拟机(JVM)高得多的性能,和同等的非Java加速核相比功耗降低80%。CPU功能上增加DSP指令集提供增强的16位和32位算术运算能力,提高了性能和灵活性。ARM还提供两个前沿特性来辅助带深嵌入处理器的高集成SoC器件的调试,它们是嵌入式ICE-RT逻辑和嵌入式跟踪宏核(ETMS)系列。

  除用户模式外,其余6种模式称为非用户模式或特权模式;用户模式和系统模式之外的5种模式称为异常模式。ARM处理器的运行模式可以通过软件改变,也可以通过外部中断或异常处理改变。

  ARM可支持多达16个协处理器,主要的作用:ARM处理器初始化,ARM与协处理器的数据处理操作,ARM的寄存器与协处理器的寄存器之间传送数据,以及ARM协处理器的寄存器和存储器之间传送数据。共有5条:

  CDP{条件}协处理器编码,协处理器操作码1,目的寄存器,源寄存器1,源寄存器2,协处理器操作码2。

  CDP指令用于ARM处理器通知ARM协处理器执行特定的操作,若协处理器不能成功完成特定的操作,则产生未定义指令异常。其中协处理器操作码1和协处理器操作码2为协处理器将要执行的操作,目的寄存器和源寄存器均为协处理器的寄存器,指令不涉及ARM处理器的寄存器和存储器。

  LDC指令用于将源寄存器所指向的存储器中的字数据传送到目的寄存器中,若协处理器不能成功完成传送操作,则产生未定义指令异常。其中,{L}选项表示指令为长读取操作,如用于双精度数据的传输。

  LDCP3,C4,[R0];将ARM处理器的寄存器R0所指向的存储器中的字数据传送到协处理器P3的寄存器C4中。

  STC指令用于将源寄存器中的字数据传送到目的寄存器所指向的存储器中,若协处理器不能成功完成传送操作,则产生未定义指令异常。其中,{L}选项表示指令为长读取操作,如用于双精度数据的传输。

  STCP3,C4,[R0];将协处理器P3的寄存器C4中的字数据传送到ARM处理器的寄存器R0所指向的存储器中。

  MCR{条件}协处理器编码,协处理器操作码1,源寄存器,目的寄存器1,目的寄存器2,协处理器操作码2。

  MCR指令用于将ARM处理器寄存器中的数据传送到协处理器寄存器中,若协处理器不能成功完成操作,则产生未定义指令异常。其中协处理器操作码1和协处理器操作码2为协处理器将要执行的操作,源寄存器为ARM处理器的寄存器,目的寄存器1和目的寄存器2均为协处理器的寄存器。

  MCRP3,3,R0,C4,C5,6;该指令将ARM处理器寄存器R0中的数据传送到协处理器P3的寄存器C4和C5中。

  MRC{条件}协处理器编码,协处理器操作码1,目的寄存器,源寄存器1,源寄存器2,协处理器操作码2。

  MRC指令用于将协处理器寄存器中的数据传送到ARM处理器寄存器中,若协处理器不能成功完成操作,则产生未定义指令异常。其中协处理器操作码1和协处理器操作码2为协处理器将要执行的操作,目的寄存器为ARM处理器的寄存器,源寄存器1和源寄存器2均为协处理器的寄存器。

  MRCP3,3,R0,C4,C5,6;该指令将协处理器P3的寄存器中的数据传送到ARM处理器寄存器中.

  调试通信通道协处理器DCC(theDebugCommunicaTIonsChannel)提供了两个32bits寄存器用于传送数据,还提供了6bits通信数据控制寄存器控制寄存器中的两个位提供目标和主机调试器之间的同步握手。

  调试器不能利用协处理器14直接访问调试通信通道,因为这对调试器无意义。但调试器可使用扫描链读写DCC寄存器。DCC数据和控制寄存器可映射到EmbeddedICE逻辑单元中的地址。若要查看EmbeddedICE逻辑寄存器,请参阅您的调试器和调试目标的相关文档。

  有关访问ARM10和ARM11内核DCC寄存器的信息,请参阅相应的技术参考手册。ARM9之后的各处理器中,所用指令、状态位位置以及对状态位的解释都有所不同。

  1.目标应用程序检查DCC写入寄存器是否空闲可用。为此,目标应用程序使用MRC指令读取调试通信通道控制寄存器,以检查W位是否已清除。

  2.如果W位已清除,则通信数据写入寄存器已清空,应用程序对协处理器14,使用MCR指令将字写入通信数据写入寄存器。写入寄存器操作会自动设置W位。如果W位已设置,则表明调试器尚未清空通信数据写入寄存器。此时,如果应用程序需要发送另一个字,它必须轮询W位,直到它已清除。

  3.调试器通过扫描链2轮询通信数据控制寄存器。如果调试器发现W位已设置,则它可以读DCC数据寄存器,以读取应用程序发送的信息。读取数据的进程会自动清除通信数据控制寄存器中的W位。

 
关键词: arm32
(文/小编)
打赏
免责声明
• 
本文为小编原创作品,作者: 小编。欢迎转载,转载请注明原文出处:http://www.31duo.com/news/show-3375763.html 。本文仅代表作者个人观点,本站未对其内容进行核实,请读者仅做参考,如若文中涉及有违公德、触犯法律的内容,一经发现,立即删除,作者需自行承担相应责任。涉及到版权或其他问题,请及时联系我们。
 

(c)2016-2019 31DUO.COM All Rights Reserved浙ICP备19001410号-4

浙ICP备19001410号-4