历史上的今天
返回首页

历史上的今天

今天是:2024年12月22日(星期日)

2021年12月22日 | ARMv8通用寄存器与特殊寄存器说明

2021-12-22 来源:eefocus

1 通用寄存器

ARMv8提供了31个通用寄存器 R0~R30;

在AArch32架构,通用寄存器w0~w30是32bit宽度;

在AArch64架构,通用寄存器x0~x30是64bit宽度;


2 特殊寄存器

SP (stack pointer register) 指向当前栈的指针;AArch64架构为SP AArch32架构为WSP;


PC (program counter) 指向当前指令的地址;连接寄存器LR,保存子程序的返回地址; AArch32架构中LR使用R14、SP使用R13 AArch64架构中LR使用x30;


PSTATE (process state) 对进程状态信息的集合,包括以下寄存器集合:条件寄存器NZCV、异常屏蔽寄存器DAIF、SP选择寄存器SPSEL、异常等级寄存器CurrentEL,所有指令集都可以通过PSTATE反馈状态;此外,当发生异常时,这些标志位信息将被保存到对应异常级别的SPSR寄存器中;


可通过mrs指令可以读取寄存器的值、msr指令向寄存器写值;


System registers,系统寄存器为执行控制、状态和一般系统配置提供支持,大多数系统寄存器在EL0是不可访问的,但可以在系统初始化时配置一些系统寄存器允许在EL0级别执行的程序访问,任何从EL0到禁用访问权限的系统寄存器的访问都会导致指令表现为UNDEFINED;


EL0可以访问的寄存器有:


Cache ID registers The CTR_EL0 and DCZID_EL0 registers provide implementation parameters for EL0 cache management support.


Debug registers A debug communications channel is supported by the MDCCSR_EL0, DBGDTR_EL0, DBGDTRRX_EL0 and DBGDTRTX_EL0 registers.


Thread ID registers The TPIDR_EL0 and TPIDRRO_EL0 registers are two thread ID registers with different access rights.


Timer registers In ARMv8 the following operations are performed:


• Read access to the system counter clock frequency using CNTFRQ_EL0.


• Physical and virtual timer count registers, CNTPCT_EL0 and CNTVCT_EL0.


• Physical up-count comparison, down-count value and timer control registers,


CNTP_CVAL_EL0, CNTP_TVAL_EL0, and CNTP_CTL_EL0.


• Virtual up-count comparison, down-count value and timer control registers,


CNTV_CVAL_EL0, CNTV_TVAL_EL0, and CNTV_CTL_EL0.


3 ARMv8架构

CPU的内部结构构成:控制单元、逻辑运算单元、存储单元(包括内部总线和缓冲器);

控制单元完成数据处理整个过程中的调配工作,逻辑单元则完成各个指令以便得到程序最终想要的结果,存储单元就负责存储原始数据以及运算结果;

ALU:逻辑运算单元、x0~x30以及特殊寄存器集合:存储单元;

MMU:内存管理单元,包括地址转换模块以及TLB表模块;

在这里插入图片描述

特殊寄存器说明:

GIC interface的寄存器在ID registers寄存器中;

SPSR与SP寄存器在Special-purpose registers寄存器中,主要涉及ELR_EL1-2、SP_EL0-2、SPSR_EL1-2/SPSR_fiq/SPSR_irq/SPSR_und/SPSR_abt;(当有中断或异常发生时,SPSR_EL1存储处理器的状态信息即PSTATE、ELR_EL1存储当前指令的地址PC、ESR_EL1存储出错的异常信息;)

PSTATE在Base system registers寄存器中,其中PSTATE是一组状态寄存器的集合,涉及NZCV、DAIF、Currentel;主要涉及SCTLR_EL1-2、VBAR_EL1-2、NZCV、DAIF、CurrentEL;

推荐阅读

史海拾趣

Electronic Transistors Corp公司的发展小趣事

在电子行业的早期,ETC公司以其独特的技术创新能力在晶体管市场上崭露头角。公司创始人带领研发团队,通过不断的实验和改进,成功研发出一种新型的MOSFET晶体管,具有更高的性能和更低的功耗。这一创新成果迅速在市场上引起轰动,ETC公司的知名度也随之提升。随着产品销量的不断增长,ETC逐渐在电子行业中确立了其领导地位。

FOX [Fox Electronics]公司的发展小趣事

随着全球对环保和可持续发展的重视,Fox Electronics积极响应行业趋势,将绿色生产理念融入企业运营中。公司投资引进先进的环保设备和生产工艺,减少生产过程中的废弃物排放和能源消耗。同时,Fox Electronics还推出了一系列符合RoHS(限制有害物质)指令的产品,满足市场对环保产品的需求。这些举措不仅提升了公司的社会责任感,也为其在绿色电子市场赢得了良好的声誉。

Cramer公司的发展小趣事

随着可穿戴设备的兴起,Cramer公司迅速捕捉到了市场机遇。他们推出了一款智能手表,该手表不仅具备基本的时间显示功能,还集成了健康监测、运动追踪等多项实用功能。为了提升产品的竞争力,Cramer公司与多家科技公司合作,共同研发新技术。这款智能手表在市场上获得了广泛认可,进一步提升了Cramer公司的品牌知名度和市场份额。

Adamant Co Ltd公司的发展小趣事

Adamant Co Ltd在电子行业的初期,以其独特的技术突破迅速崭露头角。公司研发出一款高效能、低成本的芯片,为智能手机市场带来了革命性的变化。凭借这一技术,Adamant Co Ltd迅速获得了市场份额,并与多家知名手机厂商建立了合作关系。随着产品的广泛应用,公司逐渐在电子行业中稳固了地位。

倍思特(BEST)公司的发展小趣事

随着企业规模的扩大,Adamant Co Ltd逐渐意识到社会责任的重要性。公司积极参与公益事业,为社会做出贡献。同时,公司还注重可持续发展,通过采用环保材料和生产工艺、降低能耗等方式,实现绿色生产。这些举措不仅提升了公司的社会形象,也为公司的长期发展注入了新的活力。

这些故事虽然基于虚构的Adamant Co Ltd公司,但其中所描述的挑战、机遇和策略在电子行业中是普遍存在的。通过这些故事,我们可以对电子行业企业的发展过程有一个大致的了解。

DDK公司的发展小趣事

DDK公司在发展过程中,始终牢记社会责任,积极履行企业公民的义务。公司积极参与公益事业,关注环境保护和社会发展,为社会做出了积极贡献。同时,DDK公司还积极推动行业健康发展,与同行企业共同维护市场秩序和公平竞争环境。这种社会责任的担当,让DDK公司在电子行业中树立了良好的企业形象。

问答坊 | AI 解惑

做研发的一点心得体会!

出来作研发也一年了,很有些体会。在这里想与大家分享下! 1. 不要把自己搞成“实验机器”,要多在课题开展前进行详细的课题论证,信息搜集和筛选。 企业一般做课题都很着急,课题进度要求很快,作为研发人员,要做大量的实验,筛选路线,打通 ...…

查看全部问答>

电子工程师启迪之——创造性与习惯相结合

人们可能会对电子产品的开发与设计方法坚持某种不变的观念,甚至对解决不同问题所采用的器件这样的小事都有某种思维定势,这是可以理解的。 我认识到,对于电子设计人员来说,“熟悉招致轻视”这样的说法并不适用于他们。甚至那些我所认识的最有创 ...…

查看全部问答>

请教ADC0809控制问题

程序如下;怎么ADC0809一直处于忙状态  (P[0..7]接D[0..7]P0接数码管) #include #define uchar unsigned char #define uint unsigned int uchar table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//数码管显示码0-9 ...…

查看全部问答>

如何把 51 单片机中的 .c 文件和 .h 文件 和 VC写的工程文件做成库

问题一: 在 51单片机 中用 C 写的 .c 和.h 文件,如何做成库呢?51的编译器是 IAR 问题二: 如何把VC写的一个 C 工程文件做成库呢? 问题三: 老大只说让我把上面这两种 C 语言写的函数和文件做成库,应该是做成 lib 库呢,还是做成 dll 库呢 ...…

查看全部问答>

高科技大型上市公司招聘: 嵌入式系统设计工程师 /通信产品设计工程师 / 系统软件设计工程师 工作地点 深圳

本公司是深圳一家高科技大型上市公司,主要经营电力系统产品生产研发,微电子产品生产研发,光磁设备,公司内有员工高层公寓,食堂,文体活动中心,员工家属楼多处,座落于美丽的深圳市福田区笔架山与莲花山之间,公司目前有员工6000多人,工程师及 ...…

查看全部问答>

wince 5中能否动态修改显示分辨率?

正在开发wince下的驱动,能否通过应用程序来动态调整TFT的分辨率?比如说从640x480调整到320x240,调整过程中WINCE不能重新启动? 我发现可以通过应用程序来进行屏幕旋转,有没有调整分辨率的函数? 谢谢…

查看全部问答>

DSP串口通讯

我最近也作了2407的串口实验,我的系统实钟采用外部15Mhz,锁相环采用4倍,安理来说外部实钟应该按照30Mhz计算,而且我串口采用9600 按照书上的计算方法,进行了寄存器配置。但是接收不到数据。         *SCICCR=0X0007; &nbs ...…

查看全部问答>

ModelSim6.5 KeyGen

ModelSim6.5 KeyGen   http://d.namipan.com/d/28d735fadc6867c49c730d5bed1ed47d448f7684102f0d00…

查看全部问答>

《CFL/LED照明驱动IC应用设计全攻略》电子书

助力绿色照明!《CFL/LED照明驱动IC应用设计全攻略》电子书正式发布!欢迎下载并传播! 星期一, 10/25/2010 - 08:18 — 创新网小编 传统照明企业在转向节能灯或者LED灯具生产后会面临一个严峻的挑战:就是从原来的强电领域转到弱电领域,要应对 ...…

查看全部问答>