Cortex-A8处理器之寄存器(处理器内部寄存器)

本文深入探讨了ARM指令集架构下,不同模式中寄存器的分配与使用,包括通用寄存器、堆栈指针、链接寄存器及程序计数器的功能。同时,解析了指令流水线的运作流程,从预读取到寄存器回写,以及分支预测机制,如静态预测和动态预测的BATC和BTB。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ARM指令下,八种模式下寄存器的分布:

a.其中R0~R12是32bit通用寄存器,放通用数据
b.各个模式的R0~R12J寄存器与USR模式是共享的(除了FIQ,R8~R12),PC、CPSR是共享的
c.USR模式没有SPSR。
CPSR:(Current program status register)当前程序状态寄存器
SPSR:(saved programstatus register)程序状态保存寄存器
SPSR用于保存CPSR的状态,以便异常返回后恢复异常发生时的工作状态
R13(SP):常作为堆栈指针,存储栈地址
R14(LR):链接寄存器,1、存储子程序返回地址,2、存储异常返回地址。
R15(PC): 程序计数器


指令流水线:
三级流水线:指令读取、译码、执行
多级流水线:双ALU流水线、超标量流水线
分解指令过程:

  • 指令预读取(决定出内存哪里读取指令)
  • 指令读取
  • 指令译码(解读指令)
  • 寄存器读取(提供寄存器的值给操作单元)
  • 分配(分配指令给执行单元)
  • 执行
  • 内存访问(数据的存取)

寄存器回写(更新运行结果到寄存器)


分支预测:
早期的静态预测
现在的动态预测:BATC(Branch terget address cache)、BTB(Branch target buffer)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值