例如
/*
* 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;
}
这显然类似于编程语言,所以当他们说它是用硬件实现时,他们是说这是硬件使用的算法,他们只是用C语法来表达它?
“指令”是什么意思?这是否意味着它有自己的操作码来指示CPU做什么?
答案 0 :(得分:4)
1)完全正确。他们使用C语法来解释硬件操作的结果。他们进一步声明它充当单个原子操作,这意味着它不能被另一个线程中途中断。
2)我没有语句的上下文,但这是我的假设(有一个原子CAS指令,带有操作码,这是描述)。
答案 1 :(得分:1)
看起来你用第二点回答了自己的问题。如果某些东西在硬件中实现,通常意味着有一条指令(即使那条指令实际上是一系列指令包装成一条指令)。这意味着它应该拥有自己的操作码。