1

例如

/*
* This C-like algorithm is implemented in
* hardware as a single, atomic CAS instruction.
*/
int
CAS(int* ptr, int old, int new) 
{
    int tmp = *ptr;
    if (*ptr == old)
        *ptr = new;
    return tmp;
} 
  1. 这显然类似于一种编程语言,所以当他们说它是在硬件中实现时,他们是否意味着这是硬件使用的算法,而他们只是使用 C 语法来表达它?

  2. “指示”是什么意思?这是否意味着它有自己的操作码来指示 CPU 做什么?

4

2 回答 2

4

1) 完全正确。他们使用 C 语法来解释硬件操作的结果。他们进一步指出它充当单个原子操作,这意味着它不能被另一个线程中途中断。

2)我没有该语句的上下文,但这是我的假设(这是描述的带有操作码的原子 CAS 指令)。

于 2013-11-04T04:53:04.520 回答
1

看起来你用你的第二点回答了你自己的问题。如果某些东西是在硬件中实现的,这通常意味着有一条指令(即使该指令实际上是一系列包含在一条指令中的指令)。这意味着它应该有自己的操作码。

于 2013-11-04T04:53:08.547 回答