Cortex-A7 MPCore简单介绍

news/2024/10/18 2:38:07/

1.简介

  在 28nm 工艺下, Cortex-A7 可以运行在 1.2~1.6GHz,并且单核面积不大于 0.45mm2(含有浮点单元、 NEON 和 32KB 的 L1 缓存),在典型场景下功耗小于 100mW, 这使得它非常适合对功耗要求严格的移动设备,这意味着 Cortex-A7 在获得与 Cortex-A9 相似性能的情况下,其功耗更低。
   Cortex-A7 MPCore 支持在一个处理器上选配 1~4 个内核, Cortex-A7 MPCore 多核配置如图所示:
在这里插入图片描述

2.Cortex-A处理器运行模型

  Cortex-A7处理器有9种处理模式:
在这里插入图片描述  除了 User(USR)用户模式以外,其它 8 种运行模式都是特权模式。这几个运行模式可以通过软件进行任意切换,也可以通过中断或者异常来进行切换。大多数的程序都运行在用户模式,用户模式下是不能访问系统所有资源的,有些资源是受限的,要想访问这些受限的资源就必须进行模式切换。但是用户模式是不能直接进行切换的,用户模式下需要借助异常来完成模式切换,当要切换模式的时候,应用程序可以产生异常,在异常的处理过程中完成处理器模式切换。
  当中断或者异常发生以后,处理器就会进入到相应的异常模式种,每一种模式都有一组寄存器供异常处理程序使用,这样的目的是为了保证在进入异常模式以后,用户模式下的寄存器不会被破坏。
  相比较而言,STM32只有两种运行模式,特权模式和非特权模式,但Cortex-A有9种。。

3.Cortex-A寄存器组

  ARM 架构提供了 16 个 32 位的通用寄存器(R0~R15)供软件使用,前 15 个(R0~R14)可以用作通用的数据存储, R15 是程序计数器 PC,用来保存将要执行的指令。 ARM 还提供了一个当前程序状态寄存器 CPSR 和一个备份程序状态寄存器 SPSR, SPSR 寄存器就是 CPSR 寄存器的备份。
在这里插入图片描述  总结一下, CortexA 内核寄存器组成如下:
① 34 个通用寄存器,包括 R15 程序计数器(PC),这些寄存器都是 32 位的。
② 8 个状态寄存器,包括 CPSR 和 SPSR。
③ Hyp 模式下独有一个 ELR_Hyp 寄存器。

  下图是九种模式所对应的寄存器:
在这里插入图片描述
  浅色字体的是与 User 模式所共有的寄存器,蓝绿色背景的是各个模式所独有的寄存器。假如某个程序在 FIQ 模式下访问 R13 寄存器,那它实际访问的是寄存器 R13_fiq,如果程序处于 SVC 模式下访问 R13 寄存器,那它实际访问的是寄存器 R13_svc。
  备份寄存器 R13 一共有 8 个物理寄存器,其中一个是用户模式(User)和系统模式(Sys)共用的,剩下的 7 个分别对应 7 种不同的模式。 R13 也叫做 SP,用来做为栈指针。基本上每种模式都有一个自己的 R13 物理寄存器,应用程序会初始化 R13,使其指向该模式专用的栈地址,这就是常说的初始化 SP 指针。
  备份寄存器 R14 一共有 7 个物理寄存器,其中一个是用户模式(User)、系统模式(Sys)和超级监视模式(Hyp)所共有的,剩下的 6 个分别对应 6 种不同的模式。R14 也称为连接寄存器(LR),LR 寄存器在 ARM 中主要用作如下两种用途:
① 每种处理器模式使用 R14(LR)来存放当前子程序的返回地址,如果使用 BL 或者 BLX来调用子函数的话, R14(LR)被设置成该子函数的返回地址,在子函数中,将 R14(LR)中的值赋给 R15(PC)即可完成子函数返回。
② 当异常发生以后,该异常模式对应的 R14 寄存器被设置成该异常模式将要返回的地址,R14 也可以当作普通寄存器使用。
  程序计数器 R15 也叫做 PC, R15 保存着当前执行的指令地址值加 8 个字节,这是因为 ARM的流水线机制导致的。 ARM 处理器 3 级流水线:取指->译码->执行,这三级流水线循环执行,比如当前正在执行第一条指令的同时也对第二条指令进行译码,第三条指令也同时被取出存放
在 R15(PC)中。我们喜欢以当前正在执行的指令作为参考点,也就是以第一条指令为参考点,那么 R15(PC)中存放的就是第三条指令,换句话说就是 R15(PC)总是指向当前正在执行的指令地址再加上 2 条指令的地址。
  所有的处理器模式都共用一个 CPSR 物理寄存器,因此 CPSR 可以在任何模式下被访问。CPSR 是当前程序状态寄存器,该寄存器包含了条件标志位、中断禁止位、当前处理器模式标志等一些状态位以及一些控制位。所有的处理器模式都共用一个 CPSR 必然会导致冲突,为此,除了 User 和 Sys 这两个模式以外,其他 7 个模式每个都配备了一个专用的物理状态寄存器,叫做 SPSR(备份程序状态寄存器),当特定的异常中断发生时, SPSR 寄存器用来保存当前程序状态寄存器(CPSR)的值,当异常退出以后可以用 SPSR 中保存的值来恢复 CPSR。
  因为 User 和 Sys 这两个模式不是异常模式,所以并没有配备 SPSR,因此不能在 User 和Sys 模式下访问 SPSR,会导致不可预知的结果。


http://www.ppmy.cn/news/191387.html

相关文章

STM32H7 DAC2+BDMA

最近准备用H7做一个小东西需要用到DAC2生成波形,本以为很简单的事,只需把之前在F4上做的例子搬过来就好,但是发现实际上有个坑。 之前的想法是DAC DMA TIM6 Trig,但是发现DAC2始终无输出,HAL_DAC_SetValue()直接输出…

Cortex-M7 Cache 操作

目录 【Cortex-M7内核的L1 Cache】 二,Cache4种策略 三,Cache读操作和写操作 【cache配合MPU使用】 【什么是 cache 一致性问题】 一,第一种情况 二,第二种情况 【解决cache一致性问题,有两种可选方案】 一&am…

TXAA,MSAA,SMAA,FXAA

1 TXAA是英伟达开发的目前画质最高的抗锯齿模式,且TXAA x2可以达到MSAA x8的效百果,配置要求也没有MSAA x8那么高。目前只有600和700系列的英伟达显卡支持。 2 MSAA还原度很高,但是配置要求最高。 3 SMAA是性耗比最佳的模式,度用适…

Cortex-A7中断系统

一、中断向量表 中断向量表存放的是中断向量,中断服务程序的入口地址或存放中断服务程序的首地址成为中断向量,因此中断向量表是一系列中断服务程序入口地址组成的表。当某个中断被触发以后就会自动跳转到中断向量表中对应的中断服务程序(函数)入口地址…

STM32H7系列 双核系列:基于Arm® Cortex®-M7和Cortex®-M4的双核产品

基于ARM Cortex-M7的STM32H7 MCU系列采用了ST的非易失性存储器(NVM)技术。从片内闪存执行代码时,其处理器性能得分为1327 DMIPS/ 3224 CoreMark。 STM32H7产品线包括三个系列: 双核系列:基于Arm Cortex-M7和Cortex-M4…

给索尼A7 A7R A7RII选个挂机头?

https://www.zhihu.com/question/31510587 著作权归作者所有。 商业转载请联系作者获得授权,非商业转载请注明出处。 作者:Asa WANG 链接:https://www.zhihu.com/question/31510587/answer/77144848 来源:知乎 基本原则: 既然是挂…

20230426 cortex-A7 cortex-M4核综合实验

cortex-M4核综合实验 1.通过配置开发板LED1/LED2/LED3三盏灯 2.当KEY1/KEY2/KEY3/光电开关/火焰传感器/人体红外中断触发,需要完成以下内容 1)中断触发,在串口工具打印一句话 2)中断触发,对应LED灯状态取反 3.需求:实验中的内容&a…

redisson 随笔 0-入门

0. 虽说时运不佳,仍欲提桶跑路 分布式锁的常见实现方案 常用锁的用例 runoob Lua教程 对于分布式锁的实现方案,本文如标题所言,简单梳理了redisson的实现方案 redisson 也是基于redis的多个命令组合来实现的,为保证执行多个命…