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

域名拦截检测网站在线生成个人网站

域名拦截检测网站,在线生成个人网站,wordpress内容加密插件,珠海网站品牌设计公司简介一、寄存器的作用 寄存器是CPU的内部组成单元,是CPU运算时取指令和数据最快的地方。它可以用来暂存指令、数据和地址。在CPU的控制部件中,包含的寄存器有指令寄存器(IR)和程序计数器(PC)。CPU的算术逻辑部…

一、寄存器的作用

寄存器是CPU的内部组成单元,是CPU运算时取指令和数据最快的地方。它可以用来暂存指令、数据和地址。在CPU的控制部件中,包含的寄存器有指令寄存器(IR)和程序计数器(PC)。CPU的算术逻辑部件中,包含的寄存器有累加器(ACC),具体的有:

  • 高速访问:寄存器是CPU内部最快的存储单元,比主存(RAM)和缓存(Cache)访问速度更快,通常在一个时钟周期内完成读写操作。
  • 减少等待时间:频繁使用寄存器进行数据存储和操作,减少了对主存的访问,避免了长时间的等待,从而提高了处理速度。
  • 简化指令执行:寄存器直接存储操作数和计算结果,使指令执行更简便,不需要频繁从内存读取数据,简化了指令的执行流程。
  • 并行处理:寄存器支持多条指令的并行执行,通过寄存器重命名技术
  • 避免数据相关性问题,提高指令级并行性和处理器的整体吞吐量。
  • 减少总线冲突:使用寄存器操作数据可以减少总线访问频率,降低总线冲突,提高系统的整体性能和响应速度。

二、寄存器(Register)与寄存器组结构

寄存器结构

每个寄存器由多个触发器组成,输入数据通过写使能信号控制是否写入新值。读出数据通过读口送出。当写使能(Write Enable)为0时,时钟边沿到来时输出不变;当写使能信号为1时,时钟边沿到来时输出开始变为输入。若每个时钟边沿都写入,则不需要Write Enable信号。

寄存器组结构
寄存器组由多个寄存器组成,每个寄存器都可以通过编号来定位。N位编号可以表示2的N次方个寄存器,而M个寄存器的位数则是log M的上取整。

三、ARMv8寄存器介绍

ARMv8中有34个寄存器,包括31个64 位通用寄存器、1个64 位的程序计数(Program Counter, PC)指针寄存器、栈指针(StackPointer, SP)寄存器以及异常链接寄存器(Exception Link Register, ELR),一个处理器状态寄存器PSTATE来表示当前的处理器状态(processor state),

1、通用寄存器
AArch64执行状态支持31个64位的通用寄存器,分别是X0-X30寄存器,而AArch32状态支持16个32位的通用寄存器。除用于数据运算和存储之外,通用寄存器还可以在函数调用过程中起到特殊作用,ARM64体系结构的函数调用标准和规范对此有所约定,如下图所示。

  • X0-X7  用于参数传递
  • X9-X15  在子函数中使用这些寄存器时,直接使用即可, 无需save/restore. 在汇编代码中x9-x15出现的频率极低 在子函数中使用这些寄存器时,直接使用即可, 无需save/restore. 在汇编代码中x9-x15出现的频率极低
  • X19-X29 在callee子函数中使用这些寄存器时,需要先save这些寄存器,在退出子函数时再resotre 在callee子函数中使用这些寄存器时,需要先save这些寄存器,在退出子函数时再resotre
  • X8, X16-X18, X29, X30  这些都是特殊用途的寄存器 – X8: 用于返回结果 – X16、X17 :进程内临时寄存器 – X18 :resrved for ABI – X29 :FP(frame pointer register) – X30 :LR

在 AArch64 状态下,使用 X(如 X0、 X30 等)表示 64 位通用寄存器。另外,还可以使用
W 来表示低 32 位的数据,如 W0 表示 X0 寄存器的低 32 位数据, W1 表示 X1 寄存器的低 32
位数据,
 

2、PSTATE寄存器

AArch64 体系结构使用 PSTATE 寄存器来表示当前处理器状态(processor state),PSTATE的主要字段

  • N(Negative):负数标志位,结果为负数时置1。
  • Z(Zero):零标志位,结果为零时置1。
  • C(Carry):进位标志位,算术运算发生进位时置1。
  • V(Overflow):溢出标志位,算术运算发生溢出时置1。
  • EL(Exception Level):异常级别,指示当前的异常处理级别。
  • SP(Stack Pointer Select):栈指针选择,指示当前使用的栈指针(SP_EL0或SP_ELx)。

3、特殊寄存器

ARMv8架构中还有一些专用寄存器,用于特定功能和操作。主要的专用寄存器包括:

  1. SP_ELx(Stack Pointer Registers for Exception Levels):每个异常级别都有独立的栈指针寄存器(SP_EL0, SP_EL1, SP_EL2, SP_EL3)。
  2. ELR_ELx(Exception Link Registers for Exception Levels):每个异常级别都有独立的异常链接寄存器(ELR_EL1, ELR_EL2, ELR_EL3),用于存储异常返回地址。
  3. SPSR_ELx(Saved Program Status Registers for Exception Levels):每个异常级别都有独立的保存程序状态寄存器(SPSR_EL1, SPSR_EL2, SPSR_EL3),用于保存异常发生时的PSTATE值。

4、系统寄存器

系统寄存器用于控制和管理CPU的操作模式、特权级别、内存管理、中断处理等关键系统功能。主要的系统寄存器包括:

  1. SCTLR_ELx(System Control Register):系统控制寄存器,用于控制和配置处理器的系统级特性,如内存保护、缓存策略等。
  2. TTBR0_ELx(Translation Table Base Register):转换表基地址寄存器,用于定义页表的基地址,支持内存地址转换和虚拟内存管理。
  3. MAIR_ELx(Memory Attribute Indirection Register):内存属性指示寄存器,用于定义不同内存区域的属性,如缓存策略、访问权限等。
  4. TCR_ELx(Translation Control Register):转换控制寄存器,用于控制地址转换的行为和特性,如地址范围、页大小等。
  5. ESR_ELx(Exception Syndrome Register):异常综合症寄存器,用于存储异常发生时的状态信息,帮助调试和错误处理。

 程序可以通过 MSR 和 MRS 指令访问系统寄存器。

mrs X0, TTBR0_EL1 //把 TTBR0_EL1 的值复制到 X0 寄存器
msr TTBR0_EL1, X0 //把 X0 寄存器的值复制到 TTBR0_EL1

参考:

https://mbd.baidu.com/newspage/data/dtlandingsuper?nid=dt_4088083317822557806&sourceFrom=search_a

https://zhuanlan.zhihu.com/p/711014643

ARMv8寄存器详解-CSDN博客

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

相关文章:

  • 软件工程培训网站优化外包多少钱
  • 做网站分成建立网站平台需要多少钱
  • gta5手机网站大全关键词优化报价推荐
  • 唐山做网站多少钱必应搜索引擎下载
  • 怎么做网址导航网站点石关键词排名优化软件
  • 网络工作室创业计划书最新seo新手教程
  • 网站开发费用明细什么是seo?
  • 马鞍山市 网站建设今日重大国际新闻军事
  • 网站建设与管理的网页网络广告电话
  • 网站内容分享yahoo搜索引擎
  • 服务器上怎么做网站付费推广方式有哪些
  • 网站seo方案策划书陕西网站设计
  • 网站建设 增值税税率企业网站推广外包
  • 搭网站可以用自己电脑做服务器吗个人如何优化网站有哪些方法
  • 做搜狗手机网站快速百度问问我要提问
  • 行业门户网站建设方案书自己怎样在百度上做推广
  • 新网登录网站后台兰州seo优化
  • 腾讯建设网站视频可靠的网站优化
  • 网站流程示意服装市场调研报告
  • 深圳 电子商务网站开发搜索引擎排名优化技术
  • 网站建设价格方案seo基础教程
  • 太原建网站的公司手机端竞价恶意点击
  • 一般做自己的网站需要什么能打开各种网站的搜索引擎
  • 网站如何做sem推广汕头seo按天付费
  • 专做轮胎的网站网络优化seo薪酬
  • 合肥网站建设司图网络营销推广方式
  • 深圳品牌策划公司推荐热门seo推广排名稳定
  • 漫画网站开发源码加入网络营销公司
  • 海尔公司网站建设现状环球网疫情最新消息
  • 网站开发待遇怎么样怎么在百度上添加自己的店铺地址