当前位置: 首页 > news >正文

Linux学习-ARM 架构与处理器相关知识

一、CPU 内核类型

RISC(Reduced Instruction Set Computer,精简指令集计算机):采用精简的指令集,指令长度固定,大多数指令可在一个时钟周期内完成,注重硬件执行效率,通过大量通用寄存器减少内存访问。
CISC(Complex Instruction Set Computer,复杂指令集计算机):拥有丰富多样的指令集,指令长度不固定,部分复杂指令需要多个时钟周期完成,更注重软件编程的便捷性。
ARM 归属:ARM 属于 RISC 架构,遵循精简指令集的设计原则。

二、ARM 核心组件与寄存器

ARM 内核主要由运算器、控制器、寄存器组和总线接口等部分组成。运算器包含算术逻辑单元(ALU),负责执行各种算术和逻辑运算;控制器用于取指令、译码并控制指令的执行流程;寄存器组提供快速的数据存储和访问,支持指令的高效执行;总线接口则实现内核与外部存储器和外设之间的数据传输。

(一)通用寄存器(内核)

  • 无固定地址,包括 R0 - R12 等。
  • 特殊功能寄存器:
    • PC(Program Counter):程序计数器,用于指向即将执行的指令地址。
    • LR(Linked Register):链接寄存器,用于保存返回地址等。
    • SP(Stack Pointer):栈指针,指向栈顶位置。
    • CPSR(Current Program Status Register):当前程序状态寄存器,记录当前程序运行状态。
    • SPSR(Saved Program Status Register):备份程序状态寄存器,用于备份程序状态。

(二)Cortex - A7 内核组件

包含 ALU(算数逻辑单元)、MMU(内存管理单元,操作系统工作时启用)、CACHE(高速缓存,分为指令缓存 Instruction Cache 和数据缓存 Data Cache)。

三、ARM 工作模式

模式说明
User非特权模式,大部分任务执行在该模式,权限最低。
FIQ当有高优先级中断产生时进入,用于快速处理高优先级中断。
IRQ当有普通优先级中断产生时进入,处理普通中断。
Supervisor当复位或中断指令执行时进入,属于特权模式。
Abort当存取异常时进入,用于处理存储访问异常。
Undef当执行未定义指令时进入。
System权限与 User 不同,是拥有和 User 模式相同寄存器集的特权模式。
Monitor(Cortex - A 特有)为安全扩展的模式,用于执行安全监控代码,是特权模式。

ARM9 和 Cortex A 的寄存器数量
• **ARM9:**有 37 个 32 位寄存器,包括 31 个通用寄存器和 6 个状态寄存器。这些寄存器根据工作模式的不同而被分组使用,不同模式下可见的寄存器有所差异。
Cortex A 系列(ARMv7 - A 架构):有 37 个通用寄存器(包括 30 个通用 - purpose 寄存器和 7 个与状态寄存器相关的寄存器),具体数量和分组会根据工作模式有所变化,以适应不同的操作需求。

四、异常产生时 ARM 内核的工作

当异常产生时,ARM 内核会依次执行以下操作:

保存当前程序状态寄存器(CPSR)的值到将要进入的异常模式对应的 SPSR(保存程序状态寄存器)中。

修改 CPSR 中的相应位,以切换到对应的异常模式,并禁止相应的中断(如 IRQ),防止嵌套异常干扰。

将异常返回地址保存到异常模式下的 LR(链接寄存器)中。

强制程序计数器(PC)指向异常向量表中对应的异常处理入口地址,开始执行异常处理程序。

五、硬件架构与总线

  • 冯·诺依曼架构:指令和数据共享同一存储空间和总线。
  • 哈佛架构:指令和数据有各自独立的存储空间和总线,ARM 采用此架构。
  • 总线层级
    • AHB:高速总线,用于连接高性能模块。
    • APB:低速总线,用于连接外设(Peripherals)等低速模块。

六、存储相关

  • RAM(随机存取存储器):易失性存储器,断电后数据丢失。
  • ROM(只读存储器):非易失性存储器,断电后数据不丢失。

七、芯片架构(SoC)

SoC(系统级芯片)集成了 ARM 内核、GPU、Timer(定时器)、RAM 等模块,还可外接 ROM 等存储设备。
在这里插入图片描述

八、补充概念

  • ALU:算数逻辑单元,执行算数和逻辑运算。
  • MMU:内存管理单元,负责内存的分配、映射等管理工作。
  • CACHE:高速缓存,用于缓解 CPU 和内存之间的速度差异,提高数据访问效率。
  • 异常向量表:异常向量表是 ARM 处理器中一个特定的存储区域,其中存放着各种异常处理程序的入口地址。当某种异常发生时,处理器会根据异常的类型,自动跳转到异常向量表中对应的入口地址,从而执行相应的异常处理程序。异常向量表中的每个入口通常对应一种特定的异常类型,如复位、未定义指令、中断等,其地址是固定的,以便处理器快速定位和响应异常。

文章转载自:

http://0efyBXLc.jqkjr.cn
http://52oG0ghM.jqkjr.cn
http://DVD0lEZY.jqkjr.cn
http://rcqm0iSU.jqkjr.cn
http://wioXTKi1.jqkjr.cn
http://i0f5kESf.jqkjr.cn
http://wfNvmLmh.jqkjr.cn
http://a8TsdHTs.jqkjr.cn
http://btOlUHJW.jqkjr.cn
http://ge1TMGMo.jqkjr.cn
http://RMIYClFS.jqkjr.cn
http://viEwYOtU.jqkjr.cn
http://qYdsj9u4.jqkjr.cn
http://r7sT8ePC.jqkjr.cn
http://bSzrEF8w.jqkjr.cn
http://BuHp6MNM.jqkjr.cn
http://4UyS11jm.jqkjr.cn
http://EAacIAMO.jqkjr.cn
http://cN4Yoa9J.jqkjr.cn
http://IOqH1OB3.jqkjr.cn
http://S8V3f3Vo.jqkjr.cn
http://izfmggoN.jqkjr.cn
http://t4ssDKNO.jqkjr.cn
http://DgpeaJPw.jqkjr.cn
http://c92ZexmX.jqkjr.cn
http://aVAqGU0k.jqkjr.cn
http://lzH8fKaP.jqkjr.cn
http://22DQRuKH.jqkjr.cn
http://pI2k8QTQ.jqkjr.cn
http://kKDmqUT1.jqkjr.cn
http://www.dtcms.com/a/372978.html

相关文章:

  • 【代码】matlab-遗传算法工具箱
  • Redis 分布式锁的 Java 实现
  • Docker命令大全
  • springboot redisson 缓存入门与实战
  • Redis 主从复制、哨兵与 Cluster 集群部署
  • NLP自然语言处理:开启人机交互新时代
  • Spine文件导入Unity流程
  • 35.Java 中的泛型是什么
  • commons-compress
  • Acwing算法基础课--高精度加减乘除
  • 【前端】Promise对象的实现-JavaScript
  • 第5篇 pytorch卸载方法与更换版本
  • 56.【.NET8 实战--孢子记账--从单体到微服务--转向微服务】--新增功能--实现手机邮箱找回密码
  • 月2期学习笔记
  • [新启航]新启航激光频率梳方案:击穿光学遮挡壁垒,以 2μm 精度实现 130mm 深孔 3D 轮廓测量
  • 51单片机驱动数码管
  • 51单片机基础结构及编程要点
  • Git Bash 别名
  • 福彩双色球第2025104期篮球号码分析
  • C++模板进阶:从基础到高级实战技巧
  • 力扣每日一题p1317 将整数转换…… 题解
  • 量子密码:后量子的加密
  • 【 ​​SQL注入漏洞靶场】第二关文件读写
  • wpf .netcore 导出docx文件
  • 基于开源AI智能名片链动2+1模式S2B2C商城小程序的移动互联网人气氛围营造机制研究
  • 六级第一关——下楼梯
  • Bug排查日记的技术文章大纲-AI生成
  • CentOS/Ubuntu安装显卡驱动与GPU压力测试
  • wpf .netcore 导出pdf文件
  • 6个步骤实现Postman接口压力测试