ARM V8A体系结构-第一章 序

本文介绍了ARMv8架构,包括其支持的64位指令集、执行状态切换方式及优势等。ARMv8架构能够支持两种执行状态:AArch64(64位)和AArch32(32位)。文中详细阐述了如何在不同状态间进行切换,并讨论了64位指令集在性能提升方面的具体表现。

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

概述

ARMv8是支持64位指令集的处理器架构,可以包含32bit和64bit两种执行状态,分别为AArch64和AAch32,两种状态的切换需要先进入到异常模式EL中。AArch32和ARMv7a较为类似。AArch64常吃那个也被写作ARM64。
ARMV7:Cortex-A5, Cortex-A7, Cortex-A8, Cortex-A9, Cortex-A15, and Cortex-A17
ARMV8: Cortex-A53 and Cortex-A57
ARMv8通常支持由ARMv7编写的可执行程序,但是需要将ARMv8切换到aarch32模式。但是aarch64的代码无法在armv7架构运行。

切换模式

状态的切换只能发生在异常或复位时
如果是64bit的cpu,则支持AArch64指令集和AArch32指令集
若想使用32位指令集,则可以通过armv7的arm指令集,即通过cpsr寄存器来修改模式,其中cpsr.bit4是模式位,在ARMv7中此位默认1(32bit模式),ARMv8中将其设置成0即可。
若想使用64位指令集,由于在64位指令集中已移除cpsr寄存器,它的类似功能被一组寄存器 替代,这个寄存器组 叫做PSTATE,可通过相应的寄存器设置。

优势

1、64位指令集提高了性能,寄存器增多,aapcs约定在函数调用时超过4个参数时,ARMv7会采用栈来传参,这样会降低响应速度,而在ARMv8体系下,可以有8个寄存器参与函数调用过程中的传参。
2、64位的寄存器在运算过程中速度也更快,相同的机器周期能够完成的运算也会提高
3、aarch64能够访问更大的虚拟地址空间,虽然LPAE将32位的处理器物理地址总线扩展到了40bit,但是它并不拓展虚拟地址范围,因此应用程序能够访问的地址空间仍然是4GB
4、使用64位系统会造成内存的增大,每个指针都需要存储在内存中,而这是从4字节到8字节的增加。此外内存空间的加大也会造成cache命中率的下降,这在一定程度上降低了性能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值