以服务于中国广大创业者为己任,立志于做最好的创业网站。

标签云创业博客联系我们

导航菜单

armv7 arm11

armv8

1.前言

本文的主要内容来自于ARMV8白皮书v5,其中对ARMV8进行了概述。它包含以下内容:

首先,从背景入手,讲述ARM的发展历史。然后介绍了ARMV8架构的基本特点。简介A64指令集简介异常级别简介内存管理单元简介编程寄存器简介调试相关ARMV8生态系统演进

2. 背景

ARM RISC架构从1995年ARMV4(主要对应ARM7家族)开始至今,已经发展了20多年。ARM从设计之初就注重低功耗。到2011年,所有ARM-Cotex系列都被设计为使用ARMV7架构。ARM7:采用ARMV4架构

arm 9:arm v4的变体

arm 11:arm v4的变体

Cotex-A8:为了匹配不同的市场,ARMV7从Cotex-A8中分为三个属性:应用配置文件、实时配置文件和微控制器配置文件

Cotex-A9:引入多核

Cotex-A5:引入低功耗低成本网络互联

Cotex-A7:推出卓越能效管理,可延长手机电池寿命

Cotex-A15:引入了许多可选扩展,如LPAE、虚拟化,

为什么要引入ARMV8?(1)考虑到ARMV7被市场广泛接受,已经形成成熟的生态,后续架构升级需要向后兼容;

(2)另外,厂商要愿意将软件系统迁移到新架构,新架构必须具备原架构不具备的优势

(3)为了解决旧架构留下的问题,提供了更清晰的架构,考虑到未来的发展趋势,采用了全新的架构

3. ARMV8架构基本特性

目前,ARMV8只定义了应用程序配置文件ARMV8定义了48位符号虚拟地址,达到了48位物理地址。ARMV8采用了全新的指令集A64。ARMV8与ARMV7兼容。指令A32和A64的转换只能在异常电平转换时发生。

4. A64指令集

A64下的每个指令被定义为固定的32bitA32和A64。分开解码可以简化解码表,分开的解码表可以允许越来越先进的分支预测技术。通用寄存器增加到31 A64。删除了LDM/STM指令,因为LDM/STM实现了更复杂、更少的条件指令,因为实现复杂,没有明显的好处。浮点单元硬件支持SIMD支持,所以A64进行了特别修改,引入了双精度浮点支持

5.异常级别

A32和A64之间的过渡有严格的规则集,例外级别提高。A32可以维护或升级为A64。A64引入了一个特殊的寄存器ELR,用于记录异常返回地址。所有异常条目将被设置为异常条目。中断屏蔽将自动设置每个异常级别,使其有自己的矢量基址寄存器。每个向量按类型区分:同步、IRQ、FIQ或错误关于异常的详细信息在校正子寄存器

6. 内存管理单元

支持48位虚拟地址和物理地址,可以简化硬件,只支持4级页表;对4K和64K页面的支持提供了两个基址,即内核空间和用户空间。从虚拟地址到物理地址的转换需要两个阶段,即VA-IPA和IPA-PA

7.程序寄存器

共有30个通用寄存器(X0-X30),每个寄存器都是64位,其中X30是LR寄存器,只有一个SP寄存器和ELR寄存器。SPSRPstate

8. DEBUG

可以通过调试器直接发送指令,处理器可以提取两种类型的调试:自主机和暂停模式调试

9.生态系统演变