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

网站开发实用案例教程爱站网域名查询

网站开发实用案例教程,爱站网域名查询,域名注册需要什么资料,网站改域名如何做百度优化目录 参考资料 1.程序状态 - PSTATE 2.用户模式的 PSTATE 信息 2.1.状态标志 2.2.溢出/饱和标志 2.3.大于等于标志 2.4.指令集状态 2.5.IT 块状态 2.6.端序控制 2.7.指令执行时间控制 3.用户模式访问 PSTATE - APSR 寄存器 4.系统模式的 PSTATE 信息 4.1.状态标志…

目录

参考资料

1.程序状态 - PSTATE

2.用户模式的 PSTATE 信息

2.1.状态标志

2.2.溢出/饱和标志

2.3.大于等于标志

2.4.指令集状态

2.5.IT 块状态

2.6.端序控制

2.7.指令执行时间控制

3.用户模式访问 PSTATE - APSR 寄存器

4.系统模式的 PSTATE 信息

4.1.状态标志

4.2.溢出/饱和标志

4.3.大于等于标志

4.4.PE 状态控制

4.5.异步异常(中断)标志

4.6.PE 模式

4.7.权限控制(ARMv8.1 可用)

4.8.指令执行时间控制

4.9.Speculation 控制

5.系统模式访问 PSTATE - CPSR 寄存器


参考资料

// ARMv9 架构手册:ARM Architecture Reference Manual for A-profile Architecture// https://www.cnblogs.com/frankfankk/p/15738453.html

1.程序状态 - PSTATE

ARM AArch32 架构中的程序状态 Process State(PSTATE),用于指示当前指令执行的状态

指令执行时会产生进位、溢出、运算结果为负数(对于二进制编码,使用最高位指示正负)等情况,例如,系统架构为 32-bit,即该架构中的地址寄存器、数据寄存器等为 32-bit 长度,如果两个数据寄存器进行加法运算,但计算结果大于 32-bit,则此时会产生溢出,CPU 无法直接通过这两个数据寄存器中的值得知是否产生溢出,因此,CPU 会设置程序状态 PSTATE 的溢出标志位 V(Overflow Condition flag),以表明刚才执行的指令产生了溢出情况,需要进行处理

2.用户模式的 PSTATE 信息

// 手册位置
// 手册:ARM Architecture Reference Manual for A-profile Architecture
// 章节:E1 The AArch32 Application Level Programmers’ Model

ARM 在用户模式下(异常等级 EL0),提供的 PSTATE 信息如下:

2.1.状态标志

  • N:Negative Condition flag,负数标志,如果需要将指令计算结果视为二进制有符号整数,则该位为:

    • 1:表示结果为负数;

    • 0:表示结果为正数或者 0;

    • 注意:当计算结果需要用更高的位来保存时就会产生进位,例如,计算 8 + 9 = 17,二进制表示为 1 0 0 0 + 1 0 0 1 = 1 0 0 0 1,这便是进位的一种情况;

  • Z:Zero Condition flag,计算结果为 0,常用于表示比较的结果为相等:

    • 1:表示结果为 0;

    • 0:其他;

  • C:Carry Condition flag,进位标志:

    • 1:指令计算产生了进位,例如,无符号整数加法运算溢出也是一种进位;

  • V:Overflow Condition flag,溢出标志:

    • 1:指令计算产生溢出,例如,有符号整数的加法运算导致溢出;

    • 0:其他;

条件指令基于这些状态标志,结合指令中的信息确定是否执行下一条指令,或者执行哪一条指令,即基于上一条指令的执行结果,确定下一条需要执行的指令

2.2.溢出/饱和标志

  • Q:Overflow or Saturation flag,溢出/饱和标志,某些指令(通常为 DSP 相关的指令)会设置该位:

    • 1:表示指令执行的结果产生溢出或饱和;

    • 0:其他情况下不会发生改变;

2.3.大于等于标志

  • GE[3:0]:Greater than or equal flags,大于等于标志,并行加法/减法指令会使用该标志位,用于指示单字节或半字节运算的结果;

2.4.指令集状态

  • J、T:Instruction set state,指令集状态(正在执行哪个指令集),其中:

    • J 在 ARMv8 之前的架构中用于指示 CPU 是否为 Jazelle 状态(正在执行的指令集为 Jazelle,Jazelle 技术使 CPU 可以直接运行 Java 字节码);

    • T 用于指示 CPU 当前使用的是 Thumb 指令集还是 ARM 指令集;

    • J、T 两位组合使用,指示当前 CPU 所使用的指令集;

注意:在 ARMv8 之前的架构中,{J,Z} = {1,0} 表示指令集为 Jazelle,{J,Z} = {1,1} 表示指令集为 T32EE,从 ARMv8 架构开始,不再支持这两个指令集(指令集未实现),AArch32 中仍然需要 Trivial Jazelle 指令集扩展

2.5.IT 块状态

  • IT[7:0]:IT block state,T32 指令集中的 IT 指令使用该字段(If-Then Control,控制 IT 指令块);

2.6.端序控制

  • E:Endianness mapping,端序选择:

    • 0:小端序(Little-endian);

    • 1:大端序(Big-endian);

    • 指令集只会使用小端序,并且忽略 PSTATE.E;

2.7.指令执行时间控制

  • DIT:Data Independent Timing,控制指令执行的时间,例如,计算 1 + 1 和计算 12345789 + 123456789 所耗费的时间是不一样的,但是启用该功能后,所有指令执行所花费的时间均相同(为了安全);

3.用户模式访问 PSTATE - APSR 寄存器

在用户模式中(EL0 权限),可以通过 APSR 寄存器(Application Program Status Register)访问 PSTATE

在 EL0 权限下,只可以访问部分 PSTATE 字段,通过 MRS 指令进行读取,通过 MSR 指令进行写入

APSR 寄存器的描述如下(可访问的 PSTATE 字段):

APSR 寄存器只提供了对 N、Z、C、V、Q、GE[3:0] 字段的访问,用户模式下,对剩余保留位执行的写入操作会被忽略,保留位虽然可以进行读取,但是读取出来的值是未知的

在更高的权限等级中(大于等于 EL1),可通过 CPSR 寄存器(Current Program Status Register)访问 PSTATE,CPSR 寄存器会提供更多的信息

4.系统模式的 PSTATE 信息

// 手册位置
// 手册:ARM Architecture Reference Manual for A-profile Architecture
// 章节:G The AArch32 System Level Programmers’ Model

AArch32 架构中,系统模式下的 PSTATE 信息如下所示:

4.1.状态标志

  • N:Negative Condition flag,负数标志;

  • Z:Zero Condition flag,计算结果为 0;

  • C:Carry Condition flag,进位标志;

  • V:Overflow Condition flag,溢出标志;

状态标志的含义和用户模式中的一致

4.2.溢出/饱和标志

  • Q:Overflow or Saturation flag,溢出/饱和标志;

该标志的含义和用户模式中的一致

4.3.大于等于标志

  • GE[3:0]:Greater than or equal flags,大于等于标志;

该标志的含义和用户模式中的一致

4.4.PE 状态控制

  • J、T:Instruction set state,指令集状态,该标志位的含义和用户模式中的一致:

    • AArch32 架构 PL1 权限下,处理异常时,通过系统控制寄存器(System Control Register,SCTLR)的 TE(T32 Exception Enable)位设置 T 标志位,表示当前执行的指令集为 T32({J、T} = {0,1});

    • AArch32 架构 PL2 权限下,通过 Hypervisor 系统控制寄存器(Hyp System Control Register,HCTLR)的 TE (T32 Exception Enable)位设置 T 标志位,表示当前执行的指令集为 T32({J、T} = {0,1});

  • IT[7:0]:IT block state,IT 块的状态,该标志位的含义和用户模式中的一致;

  • E:Endianness of data accesses,端序控制,该标志位的含义和用户模式中的一致,如果平台同时支持大端序和小端序,则:

    • AArch32 架构下执行 Warm Reset 时,该位的值依赖具体的平台实现:

      • 如果平台异常权限的最高等级不为 EL2,则将该位设置为 SCTLR.EE 中的值;

      • 如果平台异常权限的最高等级为 EL2,则将该位设置为 HSCTLR.EE 中的值;

    • 处理异常时:

      • AArch32 架构 PL1 权限下,将该位设置为 SCTLR.EE 中的值;

      • AArch32 架构 PL2 权限下,将该位设置为 HSCTLR.EE 中的值;

  • IL:Illegal Execution state,非法执行状态;

4.5.异步异常(中断)标志

  • A:SError interrupt mask bit,SError 中断标记;

    • 1:产生了该类型的异常;

    • 0:未产生该类型的异常;

  • I:IRQ interrupt mask bit,IRQ 中断标记;

    • 1:产生了该类型的异常;

    • 0:未产生该类型的异常;

  • F:FIQ interrupt mask bit,FIQ 中断标记;

    • 1:产生了该类型的异常;

    • 0:未产生该类型的异常;

4.6.PE 模式

  • M[4:0]:Current mode of PE,当前 PE 的模式(User、IRQ、Hyp 等),支持的模式如下:

其中的编码 Encoding 即为 M[4:0] 字段的可能值

其中 M[4] 用于指示当前处理器的状态:

  • M[4] 为 0:处理器为 AArch64 状态;

  • M[4] 为 1:处理器为 AArch32 状态;

AArch32 架构中执行 Warm Reset 时,M[4:0] 的值设置如下:

  • 如果系统最高权限等级不为 EL2,则该字段设置为 0b10011,表示 Supervisor 模式;

  • 如果系统最高权限等级为 EL2,则该字段设置为 0b11010,表示 Hypervisor 模式;

AArch32 架构中处理异常时,M[4:0] 会设置为异常类型所对应的模式

4.7.权限控制(ARMv8.1 可用)

  • PAN:Privileged Access Never (PAN) state,ARMv8.1 架构中,当 PAN 位置 1 时,将受 PL1 或 EL2 权限保护的数据,拷贝至仅受 EL0 权限保护的虚拟内存中时,会产生权限受限错误,该位置 0 时,系统行为和 ARMv8.0 保持一致;

4.8.指令执行时间控制

  • DIT:Data Independent Timing (DIT) bit,该标志位的含义和用户模式中的一致,仅当架构实现了 FEAT_DIT 相关指令时,该位有效;

4.9.Speculation 控制

  • SSBS:Speculative Store Bypass Safe (SSBS) bit,用于防止 Speculative Store Bypass 漏洞,仅当架构实现了 FEAT_SSBS 相关指令时,该位有效;

5.系统模式访问 PSTATE - CPSR 寄存器

用户模式下(EL0)仅能通过 APSR 寄存器访问一小部分 PSTATE 字段,在其他模式中(如中断 IRQ 模式)可以通过 CPSR 寄存器(Current Program Status Register)访问大部分 PSTATE 字段,同样的,通过 MRS 指令进行读取,通过 MSR 指令进行写入

CPSR 寄存器的描述如下(可访问的 PSTATE 字段):

CPSR 可以访问除 IL、IT[7:0]、J、E、T 字段的其余字段,这些字段可以通过 SPSR 寄存器(Saved Program Status Register)访问(仅在处理异常时可以访问),读写这些位需要使用对应的指令,例如,使用 SETEND BE 指令将 PSTATE.E 置 1,使用 SETEND LE 将 PSTATE.E 置 0 等等

http://www.dtcms.com/wzjs/165805.html

相关文章:

  • 电子商务网站技术seo常见的优化技术
  • 找人做网站属于了解些什么呢营销手段有哪些方式
  • 宁夏正丰建设集团公司联网站软文广告图片
  • python制作网页的基本步骤北京seo优化
  • 网站和app可以做充值余额功能成都百度seo优化公司
  • 网站建设3a模型是什么常州seo排名收费
  • 代理登陆网站郑州seo优化大师
  • 东营做网站优化多少钱互联网搜索引擎有哪些
  • 个人旅游网站建设方案站长之家网站流量查询
  • 代做论文的网站有哪些好的站长工具网
  • wordpress 图片大小设置广告优化师工资一般多少
  • 品牌推广软文广州网站排名优化公司
  • 军事网站模板下载崇左网站建设
  • 音乐网站用什么语言做网站搭建平台都有哪些
  • 国外可以做推广的网站活动营销的方式有哪些
  • 西宁网站建设的公司哪家好windows优化大师功能
  • 上海备案证查询网站查询网站查询百度问答平台
  • 营销型网站页面布局百度免费下载安装百度
  • 我要做网站做网站临泉外贸网站免费建站
  • 网站建设模板怎么用郑州网站推广优化公司
  • 餐饮网站系统亚马逊关键词工具哪个最准
  • 企业网站设计制作教程外贸推广方式都有哪些
  • 做网站要找什么软件站长工具查询网站信息
  • 帝国cms做动态网站性能如何网站关键词全国各地的排名情况
  • 网站建设与小程序开发熊掌号百度关键词工具入口
  • 贵阳专业做网站的公司有哪些整合营销理论主要是指
  • 音乐中文网站模板下载郑州网站建设方案
  • 手机网站用什么软件做百度推广营销中心
  • 网站风格类型郑州网络推广公司排名
  • 成都手机网站设计百度网盘客服人工电话