SunVTS 4.5 テストリファレンスマニュアル

mpconstest のサブテスト

表 37-1 mpconstest のサブテスト

テスト 

説明 

cons1 

各 CPU は、バイト、ハーフワード、またはフルワードのストライドサイズで、連続した位置に書き込みを行います。このサブテストは、単一のキャッシュラインに対して競合を作成します。共有メモリーへの書き込みが継続して行われる間、他の読み込みや格納は実行されません。 

cons2 

各 CPU は、最後の書き込み位置から cachesize バイト分離れた位置から、読み取りを実行します。読み取りのたびに、直前に書き込まれたラインが書き戻されます。このテストは、キャッシュ内のすべてのラインを CPU がアクセスするまで継続します。

cons3 

各ラインのただ 1 つのダブルワードがアクセスされること以外は、cons1 と同様です。このサブテストは、単一のキャッシュラインではなく複数のキャッシュラインに対して同時競合を作成します。 

cons4 

各 CPU が CPU ID の検出と次の CPU ID の書き込みの間に、1 つの store byte (storeb) 操作と 1 つの load byte (loadb) 操作を行うこと以外は、cons2 と同様です。storeb 操作と loadb 操作の対象は、CPU が読み取ったばかりのライン内の固有な 1 バイトです。この対象は、共有ラインの cachesize バイト内の異なるダブルワードとして認識されます。

cons5 

各 CPU が CPU ID の検出と次の CPU ID の書き込みの間に、1 つの storeb 操作と 1 つの loadb 操作を行うこと以外は、cons3 と同様です。storeb 操作の対象は、CPU が CPU ID から読み取ったばかりのライン内の次のダブルワードの固有な 1 バイトです。storeb 操作のデータは各 CPU に対して一意であり、対象ラインのアドレスが変わるたびに変わります。

cons6 

各ラインのただ 1 つのダブルワードがアクセスされること以外は、cons1 と同様です。このサブテストは、単一のキャッシュラインではなく複数のキャッシュラインに対して同時競合を作成します。 

cons7 

各 CPU が CPU ID の検出と次の CPU ID の書き込みの間に、2 つの storeb 操作と 1 つの loadh 操作を行うこと以外は、cons3 と同様です。storeb 操作と loadh 操作の対象は、ID を含んでいる共有メモリーバッファの一部になっていない、共有ライン内のダブルワードの 2 つの連続したバイトです。対象となる storeb 命令と loadh 命令のアドレスは、一定に保たれます。最初の storeb 命令がキャッシュラインの所有権を取得し、2 番目の storeb 命令は書き込みヒットとして実行されます。この動作は、その他の CPU が ID を含む共有ラインの読み取りと書き込みを実行している間に同時に行われます。

cons8 

各 CPU が CPU ID の検出と次の CPU ID の書き込みの間に、1 つのstoreb 操作と 1 つの loadb 操作を行うこと以外は、cons3 と同様です。storeb 操作と loadb 操作の対象は、そのライン番号が ID を含むライン番号と同一である、専用 (非共有) ラインのダブルワードの 1 つの固有なバイトです。storeb 操作のデータは各 CPU に対して一意であり、ID を含むラインのアドレスが変わるたびに変わります。

cons9 

storeb 操作と loadb 操作の対象が、そのアドレスがテスト全体を通じて変わらない、専用ラインのダブルワードの 1 つの固有なバイトであること以外は、cons8 と同様です。

cons10 

2 つのstoreb 操作と 2 つの loadb 操作が専用 (非共有) ラインに対して行われること以外は、cons9 と同様です。2 番目の storeb 操作の対象は、最初の storeb 操作の対象から cachesize バイト分離れた位置にあります。直接マップキャッシュでは、この操作で、最初の storeb 操作で書き込まれた非共有データが書き戻されます。loadb 操作は、書き戻しが正しく行われることを保証するために storeb 操作の後に実行されます。

cons11 

storeb 操作と loadb 操作の対象が専用ラインではなく、共有ラインに対してであること以外は、cons10 と同様です。

cons12 

storeb 操作と loadb 操作の代わりに、2 つの store double (stored) 操作と load double (loadd) 操作が使用されること以外は、cons7 と同様です。stored 操作と loadd 操作の対象は、共有ラインの連続する 2 ダブルワードです。このテストは、ID を含むラインの共有と所有の状態が変化している間にも、ダブルワード操作が正しく行われることを検証するように設計されています。

cons13 〜 cons17 

これらのテストは、中間操作、ストライドサイズなどを少し変えたもので、新たなインタフェースは何も必要ありません。