We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent 00b7877 commit 1c538d9Copy full SHA for 1c538d9
source/chapter8/2lock.rst
@@ -705,7 +705,7 @@ RISC-V 提供的另一类原子指令被称为加载保留/条件存储(Load R
705
706
那么 SC 指令是如何判断此前一段时间该内存中的值是否被修改呢?在 RISC-V 架构下,存在一个 **保留集** (Reservation Set) 的概念,这也是“加载保留”这种叫法的来源。保留集用来实现 LR/SC 的检查机制:当 CPU 执行 LR 指令的时候,硬件会记录下此时内存中的值是多少,此外还可能有一些附加信息,这些被记录下来的信息就被称为保留集。之后,当其他 CPU 或者外设对内存这个值进行修改的时候,硬件可以将这个值对应的保留集标记为非法或者删除。等到之前执行 LR 指令的 CPU 执行 SC 指令的时候,CPU 就可以检查保留集是否存在/合法或者保留集记录的值是否与内存中现在的值一致,以这种方式来决定是否进行写入以及目标寄存器 ``rd`` 的值。
707
708
-RISC-V 并不原生支持 CAS/TAS 原子指令,但我们可以通过 LR/SC 指令对来实现它。比如下面是通过 LR/SC 指令对来模拟 CAS 指令。有兴趣的同学可以对照注释自行研究。
+RISC-V 支持 TAS 原子指令 ``amoswap`` ,并不原生支持 CAS 原子指令,但我们可以通过 LR/SC 指令对来实现它。比如下面是通过 LR/SC 指令对来模拟 CAS 指令。有兴趣的同学可以对照注释自行研究。
709
710
.. code-block:: riscv
711
:linenos:
0 commit comments