简单同学
宁静致远
展开
-
Cache Stashing
Cache stashing is theability of an external agent to request that a line is brought in (or stashed) to a cache in the cluster. Cache stashing can be performed over the ACP interface, or the CHI master interface. Stash requests can target the L3 cache, or原创 2022-08-21 09:45:03 · 1584 阅读 · 1 评论 -
ARMV8体系结构简介:exclusive monitor
为了支持exclusive操作,硬件会增加exclusive monitor来支持。一、exclusive monitorexclusive monitor分为2类:local monitor: 实现在cpu内部,针对cacheable属性地址进行监测global monitor:实现在cpu外部,针对non-cacheabal属性和device属性地址进行监测从上图,能够看出local monitor和global monitor所处的位置。每个cpu,均有一个local monito原创 2021-06-03 10:09:43 · 1743 阅读 · 0 评论 -
ARMV8体系结构简介:exclusive操作例子
之前,提到了为什么要引入exclusive操作。ARM对于exclusive操作,新增了exclusive指令。下面以一个例子,来说明下,这个是如何工作的。以以下代码进行说明,标准的抢锁代码:线程0执行LDXR指令,exclusive的load操作,读取锁状态。此时线程0的monitor状态变为exclusive状态。当线程0执行STXR指令,exclusive的store操作,此时monitor状态是exclusive状态,因此store可以成功,W2的值被更新为0。当线程0的monito原创 2021-06-03 10:10:20 · 1631 阅读 · 1 评论 -
ARMV8体系结构简介:exclusive操作的引入
AMRv8架构中对于A64,提供了如下的一些exclusive指令,用来支持exclusive操作。那为什么,arm在加入exclusive指令呢?加入这个,主要是为了解决多核情况下,锁的竞争问题。在软件层面,对于共享资源的访问,会设定一个锁,只有能拿到这个锁的程序,才能够访问共享资源,而没有拿到锁的程序,就不能访问该共享资源。拿到锁的程序,在访问完毕后,要释放锁,这样,其他的程序,才可以竞争该锁,从而访问共享资源。其伪代码如下://获取锁get_lock: ldr w1.原创 2021-06-03 10:06:23 · 717 阅读 · 0 评论 -
从Cortex-M33内核认识TrustZone
欢迎大家关注STM32L5课程。本期我们会介绍STM32L5的内核,Cortex-M33。它是ARM在MCU架构上增加了TrustZone这个安全扩展的一种内核实现。从这一期开始,我们进入技术部分的学习。L5快速入门,会由5期的介绍组成,会着重讲解L5的TrustZone安全扩展。除此之外,L5新增了内置SMPS,进一步提高平台的低功耗特性。Cortex-M33内核Cortex-M33,在以往传统的Cortex-M系列内核基础上最大的扩展是新增对TrustZone的...原创 2021-05-28 11:50:54 · 3500 阅读 · 1 评论 -
ARMV8体系结构简介:Procedure Call Standard
1.前言2.术语说明 Term Note ABI Application Binary Interface 应用程序二进制接口 EABI Embedded ABI嵌入式ABI PCS Procedure Call Stand...原创 2020-01-22 14:56:59 · 760 阅读 · 0 评论 -
ARMV8体系结构简介:异常模型
1.前言2.异常类型描述见ARMV8体系结构简介:AArch64系统级体系结构之编程模型(1)-EL/ET/ST一文3. 异常处理路由对比AArch32、AArch64架构下IRQ和Data Abort异常处理流程图对比.3.1IRQ 路由3.1.1. AArch32IRQ 路由图 AArch32 IRQ 路由3....原创 2020-01-22 14:56:50 · 1191 阅读 · 0 评论 -
ARMV8体系结构简介:AArch64系统级体系结构之Generic timer
1.前言2.generate timer2.1 概述 提供了一个系统计数器,用来实时测量流逝的时间; 提供了一个虚拟计数器,用来测量某个虚拟机上流逝的虚拟时间; 定时器,每隔一段时间会触发事件,支持正向计时和倒计时; 通用timer实现必须包含一个内存映射的系统组件:提供system counter; 2.2完整的generic timer...原创 2020-01-22 14:56:41 · 3481 阅读 · 0 评论 -
ARMV8体系结构简介:AArch64系统级体系结构之VMSA
1. 前言2. VMSA概述2.1ARMv8 VMSA naming VMSAv8 整个转换机中,地址转换有一个或两个stage VMSAv8-32 由运行AArch32的异常级别来管理 VMSAv8-64 由运行AArch64的异常级别来管理 2.2...原创 2020-01-22 14:56:34 · 1507 阅读 · 0 评论 -
ARMV8体系结构简介:AArch64系统级体系结构之Self-hosted debug
1. 前言2.关于self-hosted debugDebugger调试器是操作系统或系统软件的一部分,它会处理debug exception或修改debug system register,debugger运行在EL0,提供了用户debugger接口;Debugger异常Debugger异常是在程序正常运行过程中由debugger编程PE来产生,满足如下两个条件,P...原创 2020-01-22 14:56:24 · 1315 阅读 · 0 评论 -
ARMV8体系结构简介:AArch64系统级体系结构之存储模型
1.前言关于存储系统体系架构,可以概述如下: 存储系统体系结构的形式 VMSA 存储属性 2. 存储系统体系结构2.1. 地址空间 指令地址空间溢出 指令地址计算((address_of_current_instruction) + (size_of_executed_instr...原创 2020-01-22 14:56:15 · 522 阅读 · 0 评论 -
ARMV8体系结构简介:AArch64系统级体系结构之编程模型(4)- 其它
1. 前言2.可配置的指令使能/禁用控制和trap控制指令使能/禁用当指令被禁用,则这条指令就会变成未定义指令Trap控制控制某条或某些指令在运行时进入陷阱,进入陷阱的指令会产生trap异常,路由规则如下:(1)当前为EL1,则陷阱异常传递给EL1(HCR_EL2.TGE定义为1时,会路由到EL2);(2)当前为EL2,则陷阱异常传递给EL2;(3)当前为E...原创 2020-01-21 10:53:17 · 901 阅读 · 0 评论 -
ARMV8体系结构简介:AArch64系统级体系结构之编程模型(3)- 异常
1.前言本文介绍异常相关内容,包括异常类型,异常进入,异常返回,异常层次结构,异常的路由等2.RESETARMV8体系结构支持两种类型的RESETCold reset:Reset PE所有的逻辑,包括集成的debug功能Warm reset:Reset PE所有的逻辑,不包括集成的debug功能注:ARMV8也支持外部debug resetReset时pe进入最高...原创 2020-01-21 10:52:26 · 1031 阅读 · 0 评论 -
ARMV8体系结构简介:AArch64系统级体系结构之编程模型(2)- 寄存器
1. 前言2.指令运行与异常处理寄存器ARM体系结构的寄存器分为两类:(1)系统控制和状态报告寄存器(2)指令处理寄存器,如累加、异常处理本部分将主要介绍如上第(2)部分的寄存器,分为AARCH64 state和AARCH32 state2.1 AARCH64下指令运行与异常处理寄存器 寄存器类型 Bit 描述...原创 2020-01-21 10:50:25 · 674 阅读 · 0 评论 -
ARMV8体系结构简介:AArch64系统级体系结构之编程模型(1)-EL/ET/ST
1.前言ARMV8系统级编程模型主要包括异常级别、运行状态、安全状态、同步异常、异步异常、DEBUG本文主要对系统级编程模型做一个概要介绍2. 异常级别2.1Exception level概述 ELx(x<4),x越大等级越高,执行特权越高 执行在EL0称为非特权执行 EL2没有Secure state,只有Non-sec...原创 2020-01-21 10:49:32 · 1543 阅读 · 0 评论 -
ARMV8体系结构简介:AArch64应用级体系结构之Synchronization and semapores
1.前言本文主要介绍原子变量的实现原理,对原子变量的修改有一套特殊的机制2. Local monitor和Global monitorUP时执行Load EX和Store EX时仅需关注Local Monitor的状态即可图 UP时Local Monitor和Global MonitorSMP时执行Load EX和Store EX时需关注Local Monitor和Glob...原创 2020-01-21 10:48:35 · 538 阅读 · 0 评论 -
ARMV8体系结构简介:AArch64应用级体系结构之Memory order
1.前言2.基本概念Observer可以发起对memory read/write访问的都是observer;Observability是一种观察能力,通过read可以感知到别的observer的write,通过感知到别的observer的read而不能write的这种能力;observed write观察到了某个observer的write动作;loca...原创 2020-01-21 10:46:47 · 560 阅读 · 0 评论 -
ARMV8体系结构简介:AArch64应用级体系结构之Atomicity
1.前言Atomicity是内存访问的一个属性,描述为原子性访问,包括single-copy atomicity和multi-copy atomicity2.基本概念observer可以发起对memory read/write访问的都是observerCoherent order全局一致性,即shareability domain中所有的observer观察到的对同个内存...原创 2020-01-21 10:45:18 · 1091 阅读 · 0 评论 -
ARMV8体系结构简介:AArch64应用级体系结构
1.前言本文主要从应用的角度介绍ARMV8的编程模型和存储模型2.AArch64应用级编程模型从应用的角度看到的ARM处理器元素: 可见的元素(寄存器/指令) 说明 可见的寄存器 R0-R30、SP、 PC、 V0-V31、 FPCR、 FPSR 可见的PSTATE位 ...原创 2020-01-21 10:44:13 · 1387 阅读 · 0 评论 -
ARMV8体系结构简介:概述
1. 前言本文主要概括的介绍ARMV8体系结构定义了哪些内容,概括的说:ARM体系结构定义了PE的行为,不会定义具体的实现 ARM体系结构也定义了debug体系结构和trace体系结构 ARM体系结构采用RISC指令集(1)长度一致的寄存器;(2)load/store架构,数据处理操作只能对寄存器内容进行处理,不会直接对内存的内容进行处理;(3)简单寻址方式,load/st...原创 2020-01-21 10:41:12 · 1603 阅读 · 0 评论 -
ARMV8体系结构简介:预备知识
1. 前言ARMv8的架构继承以往ARMv7与之前处理器技术的基础;除了支持现有的16/32bit的Thumb2指令外,也向前兼容现有的A32(ARM 32bit)指令集。基于64bit的AArch64架构,除了新增A64(ARM 64bit)指令集外,也扩充了现有的A32(ARM 32bit)和T32(Thumb2 32bit)指令集,另外还新增加了CRYPTO(加密)模块支持。...原创 2020-01-15 19:41:20 · 1306 阅读 · 0 评论 -
ARMV8体系结构简介
1.前言本文的主要内容来源于ARMV8白皮书v5,对ARMV8做一个概述。包含如下的内容:首先从背景谈起,讲述ARM的发展历程; 之后介绍ARMV8体系结构的基本特征; 介绍A64指令集 介绍异常级别 介绍内存管理单元 介绍编程寄存器 介绍DEBUG相关 ARMV8生态系统的演化2. 背景 ...原创 2020-01-14 16:46:56 · 1590 阅读 · 0 评论