首页 > 编程知识 正文

ARM寄存器,armv8和armv9

时间:2023-05-04 02:36:15 阅读:120442 作者:2433

ARMv8寄存器说明1通用寄存器ARMv8提供31个通用寄存器R0~R30; 在AArch32架构中,通用寄存器w0~w30为32比特宽; 在AArch64架构中,通用寄存器x0~x30为64位宽; 2特殊寄存器堆栈指针(sp )指向当前堆栈的指针; AArch64架构为SP AArch32架构为WSP;

程序计数器(PC )是指当前命令的地址; 连接寄存器LR,保存子程序的返回地址; AArch32架构中LR使用R14,SP在R13 AArch64架构中LR使用x30;

在PSTATE(processstate )进程状态信息的集合中,包含条件寄存器NZCV、异常屏蔽寄存器DAIF、SP选择寄存器SPSEL、异常电平寄存器CurrentEL,所有的指令集在pstate中关闭状态此外,在发生了异常情况下,这些标志位信息被保存在对应的异常电平的SPSR寄存器中;

可以用mrs指令读取寄存器的值,用msr指令将值写入寄存器;

系统注册、系统寄存器支持运行控制、状态和常规系统配置。 大多数系统寄存器不能由EL0访问,但可以在系统初始化时配置部分系统寄存器,允许在EL0级执行程序访问。 从EL0访问禁用访问权限的系统寄存器时,指令表示为UNDEFINED。

EL0可以访问的寄存器如下。

33558 www.Sina.com/the CTR _ El0anddczid _ El0registersprovideimplementationparametersforel0cachemanagementsuport。

33558 www.Sina.com/adebugcommunication schannelissupportedbythemdccsr _ el0,DBGDTR_EL0,dbgdtrrx_El0anddbgdtrtx

33558 www.Sina.com/thetpidr _ el0 andtpidrro _ el0 registersaretwothreadidregisterswithdifferentaccesssrights。

3358 www.Sina.com/inar mv8 thefollowingoperationsareperformed 3360

readaccesstothesystemcounterclockfrequencyusingcntfrq _ el0。

physicalandvirtualtimercountregisters,CNTPCT_EL0 and CNTVCT_EL0。

物理上行计数比较,下行计数计算时间控制器registers,

CNTP_CVAL_EL0,CNTP_TVAL_EL0,and CNTP_CTL_EL0。

虚拟上计数比较,下计数数值控制注册,

CNTV_CVAL_EL0,CNTV_TVAL_EL0,and CNTV_CTL_EL0。

3 ARMv8架构CPU的内部配置:控制单元、逻辑运算单元、存储单元(包括内部总线和缓冲区); 控制单元完成数据处理全过程的调配工作,逻辑单元完成各指令以获得程序最终期望的结果,存储单元负责存储原始数据和运算结果; ALU )逻辑运算单元、x0~x30及特殊寄存器组)存储器单元; MMU )存储器管理单元,包括地址转换模块和TLB表模块;

特殊寄存器的说明:

gic接口的寄存器位于id注册寄存器中; SPSR和SP寄存器是Special-purpose registers寄存器,主要是Cache ID registers; (在发生中断或异常的情况下,SPSR_EL1存储作为处理器的状态信息的PSTATE,ELR_EL1存储当前指令的地址PC,ESR_EL1存储错误的异常信息; ) PSTATE位于基本系统注册寄存器中。 其中,PSTATE是一组状态寄存器,包括NZCV、DAIF和Currentel。 主要是Debug registers

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。