赞
踩
对于非共享内存区域,独占访问指令依赖于局部独占监视器,使用Load-Exclusive指令访问的地址会被它标记,使用同一个处理器并且不会被打断的Store-Exclusive指令将清除该标记。
一条Load-Exclusive指令把数据从内存加载到寄存器中,并且:
Store-Exclusive会执行条件存储,这个条件取决于局部监视器的状态,该指令中还包含了保存状态值的寄存器。
如果向标记地址写入数据的处理器和标记该地址的处理器不是同一个,写入数据是否会清除局部监视器中的标记由实现定义。
任何的Load-Exclusive操作都将更新标记的地址为地址x中最重要的位。
对于共享内存区域,独占访问依赖于:
全局监视器可以存在于处理器中,在内存接口上作为辅助监视器存在,监视器的实现定义方面意味着全局监视器和本地监视器可以合并为一个单元。前提是该单元执行全局监视器和局部监视器定义的功能。
Load-Exclusive指令从共享内存中加载数据,全局监视器将该地址标记为该处理器独占访问,该访问将会造成已经被该处理器标记的其他物理地址的独占标记被清除。
全局监视器只支持每个处理器对共享内存的单次独占访问。
一个处理器使用 Load-Exclusive 指令对其他处理器在全局监视器中的状态不会产生影响。
Store-Exclusive指令将会执行条件存储:
全局监视器为每个处理器实现了一个状态机,状态机可以在系统中产生一条 Load-Exclusive 或者 Store-Exclusive 指令。
对于全局监视器的状态机:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。