1. 前言

ARMv8的架构继承以往ARMv7与之前处理器技术的基础;

除了支持现有的16/32bit的Thumb2指令外,也向前兼容现有的A32(ARM 32bit)指令集。

基于64bit的AArch64架构,除了新增A64(ARM 64bit)指令集外,也扩充了现有的A32(ARM 32bit)和T32(Thumb2 32bit)指令集,另外还新增加了CRYPTO(加密)模块支持。

2. 相关术语

Items

Notes

PE

Processing element,处理器单元可以理解成一个cpu core

Execution state

运行状态,包括AArch32和AArch64两种运行状态

AArch32

描述32bit Execution State,地址存在32bit寄存器;指令集使用32位寄存器;支持A32和T32指令集

AArch64

描述64bit Execution State,地址存在64bit寄存器;指令集使用64位寄存器;支持A64指令集

A32、T32

AArch32 ISA (Instruction Architecture)

A64

AArch64 ISA (Instruction Architecture)

Interprocessing

AArch32和AArch64两种执行状态之间的切换

SIMD

Single-Instruction, Multiple-Data (单指令多数据)

translation table walks

指页表的查找过程

Volatile

标有Volatile的字段编译器认为是多线程代码, 从而不会执行优化; 这保证内存中字段的值总是最新的。比如连续两次读一个变量,不加volatile则编译器会优化,只会读一次,加上volatile,则编译器不会优化,会读两次,对寄存器的访问一般会加此关键字

3. 主要内容

主要内容

说明

Execution state

包括AArch32与AArch64

Instruction sets

包括AArch32下A32和T32指令集  与  AArch64下的A64指令集

state

包括当前的Exception level和Secure state,这决定了PE的行为

异常模型

异常的类型、路由及处理

Interprocessing

AArch64与AArch32的切换规则

存储模型

描述内存访问的规则和内存管理

编程模型

通过访问系统寄存器来控制PE和存储系统的大部分特性,并提供状态信息

SIMD和浮点指令

提供了高性能

Security模型

提供了两种安全状态,支持安全特性的应用开发

虚拟化模型

支持non-security的虚拟化操作

Debug

提供了软件访问debug的一些特性

表 ARMV8描述的主要内容

4. 内容编排

章节

说明

A

简介和体系结构概述

B

C

D

AArch64应用级体系结构

A64指令集

AArch64系统级体系结构

E

F

G

AArch32应用级体系结构

AArch32指令集

AArch32系统级体系结构

H

外部debug

I

Armv8体系结构的内存映射组件

J

体系结构伪代码

表 本数据手册的内容编排

5. 参考文档

[1] ARMv8-A Architecture reference manual-DDI0487A_g_armv8_arm.pdf

ARMV8 datasheet学习笔记1:预备知识的更多相关文章

  1. ARMV8 datasheet学习笔记5:异常模型

    1.前言 2.异常类型描述 见 ARMV8 datasheet学习笔记4:AArch64系统级体系结构之编程模型(1)-EL/ET/ST 一文 3. 异常处理路由对比 AArch32.AArch64架 ...

  2. ARMV8 datasheet学习笔记3:AArch64应用级体系结构

    1.前言 本文主要从应用的角度介绍ARMV8的编程模型和存储模型 2. AArch64应用级编程模型 从应用的角度看到的ARM处理器元素: 可见的元素(寄存器/指令) 说明 可见的寄存器 R0-R30 ...

  3. ARMV8 datasheet学习笔记4:AArch64系统级体系结构之VMSA

    1. 前言 2. VMSA概述 2.1 ARMv8 VMSA naming VMSAv8 整个转换机中,地址转换有一个或两个stage VMSAv8-32 由运行AArch32的异常级别来管理 VMS ...

  4. ARMV8 datasheet学习笔记4:AArch64系统级体系结构之存储模型

    1.前言 关于存储系统体系架构,可以概述如下: 存储系统体系结构的形式 VMSA 存储属性   2. 存储系统体系结构 2.1.    地址空间 指令地址空间溢出 指令地址计算((address_of ...

  5. ARMV8 datasheet学习笔记4:AArch64系统级体系结构之编程模型(4)- 其它

    1. 前言 2.可配置的指令使能/禁用控制和trap控制 指令使能/禁用 当指令被禁用,则这条指令就会变成未定义 指令Trap控制 控制某条或某些指令在运行时进入陷阱,进入陷阱的指令会产生trap异常 ...

  6. ARMV8 datasheet学习笔记4:AArch64系统级体系结构之编程模型(3)- 异常

    1.前言 本文介绍异常相关内容,包括异常类型,异常进入,异常返回,异常层次结构,异常的路由等 2.  RESET ARMV8体系结构支持两种类型的RESET Cold reset:Reset PE所有 ...

  7. ARMV8 datasheet学习笔记4:AArch64系统级体系结构之编程模型(2)- 寄存器

    1. 前言 2. 指令运行与异常处理寄存器 ARM体系结构的寄存器分为两类: (1)系统控制和状态报告寄存器 (2)指令处理寄存器,如累加.异常处理 本部分将主要介绍如上第(2)部分的寄存器,分为AA ...

  8. ARMV8 datasheet学习笔记4:AArch64系统级体系结构之编程模型(1)-EL/ET/ST

    1.前言 ARMV8系统级编程模型主要包括异常级别.运行状态.安全状态.同步异常.异步异常.DEBUG 本文主要对系统级编程模型做一个概要介绍 2. 异常级别 2.1 Exception level概 ...

  9. ARMV8 datasheet学习笔记3:AArch64应用级体系结构之Synchronization and semapores

    1.前言 本文主要介绍原子变量的实现原理,对原子变量的修改有一套特殊的机制 2. Local monitor和Global monitor UP时执行Load EX和Store EX时仅需关注Loca ...

随机推荐

  1. 循环viewpager

    如果viewpager listadapter小于三个.用这个移除异常. for (View view : viewList) {             ViewGroup p = (ViewGro ...

  2. 洛谷P3768 简单的数学题

    解: 神奇的一批......参观yyb巨神的博客. 大致思路就是第一步枚举gcd,发现后面有个限制是gcd=1,用反演,得到的F(x)是两个等差数列求积. 然后发现有个地方我们除法的除数是乘积,于是换 ...

  3. 洛谷P2680 运输计划

    大概就是二分+树上差分... 题意:给你树上m条路径,你要把一条边权变为0,使最长的路径最短. 最大的最小,看出二分(事实上我并没有看出来...) 然后二分k,对于所有大于k的边,树上差分求出最长公共 ...

  4. 初次认识:Transfer-Encoding: chunked

    Transfer-Encoding: chunked 表示输出的内容长度不能确定,普通的静态页面.图片之类的基本上都用不到这个. 但动态页面就有可能会用到,但我也注意到大部分asp,php,asp.n ...

  5. ASP:连接Access数据库的方法及使用感受

    连接Access的方式有: 方式1: Set conn = Server.Createobject("ADODB.Connection")conn.open "drive ...

  6. Apache HTTP Server应用的几个场景

    Apache HTTP Server应用的几个场景 前言 尽管Apache具有重量级.耗资源.低性能(相比其它的WebServer)的特点,但是同时它也具有兼容性强.稳定性高.模块丰富等特点,且处理动 ...

  7. Faster RCNN代码理解(Python)

    转自http://www.infocool.net/kb/Python/201611/209696.html#原文地址 第一步,准备 从train_faster_rcnn_alt_opt.py入: 初 ...

  8. call_user_func 和 call_user_func_array用法

    说明 call_user_func 和 call_user_func_array 相同:都可以调用函数和类内部的函数,不同:不同的是传递的参数不同,前者是一个参数一个参数传递, 后者是传递array参 ...

  9. Docker跨主机网络解决方案

    前言:前面的部分一直都是单机跑docker,但实际生产环境不可能只用一台来跑.肯定会用到多台,因为他们都是内部私有ip,那么多台主机之间的容器如何通信?这个是个很头疼的问题!目前主流几种方法如下:1. ...

  10. php脚本#!/usr/bin/env php 写法

    脚本语言的第一行,目的就是指出,你想要你的这个文件中的代码用什么可执行程序去运行它. 比如php脚本的第一行可以写成如下几种格式 #!/usr/bin/php #!/usr/bin/env php # ...