armv8架构

【cache一致性】
对set和way的dc指令是不看POU/POC,只能处理L1L2, 对slc无效,但是其他dc指令是根据POU来处理,对slc是有作用的。
clean影响dirty位,使用dma测试才能看出效果
abf invalidate L3会通过SF back invalidate L1L2
"clean:
观察者(PE)执行clean操作使得cache可以被其他同一个POU域的观察者(PE)看到。在同一个shareable域的memory,clean操作可以写另一个观察者(PE)写过的cache
简单总结:检查POU域内对应内存cache line 的dirty bit。如果dirty bit为1,将cache line的内容写回下一级存储,并将dirty bit置为0. "
"invalidate:
执行invalidate操作可以使得cache在同一POU域的观测者是可见的,如果没有执行过clean操作,invalidate可能导致cache位置数据丢失。
对normal, non-cacheable或者任何类型的device的memory执行invalidate操作后,该地址将不出现在cache中。
简单理解:POU域对应内存cache line 的valid bit.如果valid bit 为1,置为0."

写操作会先发invalidate poc,sf广播invalidate,使其他pe的inner cache无效。

【ld和st指令】
ldar : ldar之后读写操作,只能在执行ldar完之后被每一个pe看见。
stlr: stlr之前的读写操作,在执行stlr时可以被每一个pe看见。

local  exclusive monitor只对当前的pe读写起作用,与其他pe的任何操作都无关,
1. 重点是Figure B2-4的状态转换图
2. store exclusive指令只有在Marked 为exclusive状态时才能store成功,并转为open状态,返回0值,否则返回1,且store失败。

global exclusive monitor对每一个pe都有一个单独的状态机。必须工作在shareable memory状态,但inner还是outer shareable对global monitor应该没差别。
load exclusive只能对当前的pe操作的一个地址转为exclusive状态,其他地址如果为exclusive,会被转为open状态。同一个pe不存在2个地址为exclusive的情况。
load exclusive只对当前的pe的状态机起作用,对其他pe的状态机没有状态。
store exclusive只有当前的pe的local和global monitor的状态机都处于marked as exclusive access状态时,才能成功store,并返回0状态值,且使得所有pe的当前地址状态都转为open状态。
如果没有地址处于marked as exclusive access状态,store失败。
如果当前pe访问的地址没有处于marked as exclusive access状态,store成功与否由设计决定
store exclusive成功store后,会产生一个clear exclusive event到当前的pe。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值