20、Arm处理器指令集详解

Arm处理器指令集详解

1. 独占访问与处理器特性

在Cortex - M3和M4处理器中,无论地址的可共享属性如何,所有独占访问都使用独占边带信号。而在使用Cortex - M23和Cortex - M33处理器时,如果信号量数据要被多个处理器访问,有两种操作方式:
- 对MPU进行编程,将信号量变量的地址标记为可共享。
- 将ACTLR.EXTEXCLALL设置为1。

需要注意的是,Armv6 - M处理器(如Cortex - M0、Cortex - M0 + 处理器)不支持独占访问。

2. 加载获取 - 存储释放指令

2.1 指令概述

加载获取和存储释放指令是具有内存排序要求的内存访问指令,是Cortex - M处理器家族中的新特性,旨在帮助处理多处理器系统中的数据访问,包括C11标准中引入的原子变量处理。

2.2 内存访问重排序问题

在高性能处理器中,为了提高性能,处理器硬件会对内存访问进行重排序。重排序技术主要有以下两种:
- 数据读取 :处理器可以选择提前执行读取操作,以防止后续使用该数据的处理操作停滞。在长流水线的高性能处理器中,只要内存位置不是外设,读取操作可以在流水线中提前进行推测性启动,且不会违反安全管理,如TrustZone安全扩展的内存分区。
- 数据写入 :处理器可能会实现一个具有多个缓冲区条目的写缓冲区。在这种情况下,写操作可能会延迟并在写缓冲区中停留一段时间,导致后续写操作可能先于它到达内存。

在单处理器系统中,这种内存访问重

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值