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

2 番目のポイントで自分の質問に答えたようです。何かがハードウェアに実装されている場合、それは通常、そのための 1 つの命令があることを意味します (その 1 つの命令が実際には 1 つにラップされた一連の命令であっても)。これは、独自のオペコードを持つ必要があることを意味します。

于 2013-11-04T04:53:08.547 に答える