定义一种互斥读(Load-Exclusive )指令 。该指令与普通的读指令类似,向存储器进行一次次读操作
• 定义一种互斥写( Store-Exclus ve )指令。该指令与普通的写指令类似,但是它不一定能够执行成功。该指令会向其结果寄存器写回操作成功或是失败的标志信息,如果执行失败,意味着没有真正写入存储器。
LR.W指令(lr.w rd,(rs1)
x[rd] = LoadReserved32(M[x[rs1]])
- 从内存中地址为x[rs1]中加载四个字节,符号位扩展后写入x[rd],并对这个内存字注册保留。
SC.W指令(lw rd,offset(rs1))
x[rd]=StoreConditonal32(M[x[rs1],x[rs2])
- 内存地址x[rs1]上存在加载保留,将x[rs2]寄存器中的4个字节数存入该地址。如果存入成功,向寄存器x[rd]中存入0,否则存入一个非0的错误码。
• 在系统中实现一个监测器(Monitor )。该监测器能够保证只有当互斥读(Load Exclusive)和互斥写( Store-Exclusive )指令成对地访