ARMv8-A 缓存一致性(1)

网友投稿 633 2022-05-30

一、缓存一致性

一致性:读取操作是否能读到最新的值;

连贯性:一个写入值什么时候才能被读取到(例如写入和传播的延迟可能造成写入值不能马上被读取到)。

二、缓存一致性:处理器的视角

ARMv8-A 缓存一致性(1)

处理器P对位置X进行先写后读操作,在写和读之间没有其他处理器写位置X,则P应读到它上一次写操作写入X的值;

处理器P对位置X进行写操作,然后处理器Q对位置X进行读操作,如果在写和读之间没有其他处理器对位置X进行写操作,且读与写间隔足够长的时间,则Q应读取到P上次写操作写入X的值;

在所有处理器看来,任意两个处理器对相同位置的写入操作的顺序是相同的,这被称为写入操作的串行化。

三、缓存一致性:程序员的视角

任一读操作 R 相对于某一处理器执行完成之前,所有在程序顺序中先于 R 的读操作都必须执行完成;

任一写操作 W 相对于某一处理器执行完成之前,所有在程序顺序中先于 W 的访存操作(包括读操作和写操作)都必须执行完成。

对同步变量的访问满足顺序一致性的要求;

对同步变量的访问,只有在访问操作之前的读操作和写操作都完成之后才能完成;

对数据的读操作和写操作,只有在对访问操作之前的同步变量的访问都完成之后才能完成。

在任一普通访存操作被允许执行之前,所有在同一进程中先于这一访存操作的 Acquire 操作都己完成;

在任一Release 操作被允许执行之前,所有在同一进程中先于这一Release 操作的读操作和写操作都已完成;

Acquire操作和Release操作的顺序必须满足处理器一致性要求。

相对于顺序一致性,处理器一致性模型、弱一致性模型和释放一致性模型放松了对读写操作顺序的要求。处理器一致性模型放松了对读操作和写操作之间顺序的要求,但保持了写操作之间的顺序。而弱一致性模型和释放一致性模型则通过同步操作将排序的权利交给了程序员,进一步放松了对访存操作的顺序要求。释放一致性通过将同步操作分解为Acquire操作和Release操作进一步增加了编程的灵活性。

四、结语

任务调度

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:2020遥感大数据爆发,催生下一个最具普惠价值的AI应用
下一篇:编辑Excel时,断电导致文件没保存,怎么恢复呢?
相关文章