CPU キャッシュのストライド値がキャッシュ ライン サイズ以上になる可能性があることは理解していますが、ストライド値が必要な理由がわかりません。
CPU キャッシュのストライド値がキャッシュ ライン サイズよりも大きくなるのはいつですか?
ストライド値が実際に使用されるのはいつですか? フラッシング中ですか?
CPU キャッシュ ストライドについてさらに多くの情報を検索しましたが、多くの情報を見つけることができませんでした。
CPU キャッシュのストライド値がキャッシュ ライン サイズ以上になる可能性があることは理解していますが、ストライド値が必要な理由がわかりません。
CPU キャッシュのストライド値がキャッシュ ライン サイズよりも大きくなるのはいつですか?
ストライド値が実際に使用されるのはいつですか? フラッシング中ですか?
CPU キャッシュ ストライドについてさらに多くの情報を検索しましたが、多くの情報を見つけることができませんでした。
ストライドはメモリ アクセス パターンのプロパティであり、キャッシュ ハードウェアなどとは関係ありません。
たとえば、メモリ アクセス パターンR(0), R(2), R(4),..
には stride2
があり、ここでR
は を表しread
、括弧内の数字はメモリ内のバイトのアドレスです。パターンR(0), R(15), R(30)
... のストライドは 15 です。
キャッシュの合計メモリ容量は、同じサイズの行に分割されます。キャッシュライン サイズは、キャッシュ内の 1 つのラインのサイズ (バイト単位) です。これは、キャッシュ ハードウェアのパラメータです。
現在、キャッシュ ライン サイズに対するストライドの長さは、キャッシュのパフォーマンスに影響を与える可能性があります。ストライドがライン サイズよりもはるかに小さい場合、多くの連続するアクセスがキャッシュ内の同じラインに移動します。ストライドがキャッシュ ライン サイズよりも大きい場合、連続するアクセスは別のキャッシュ ラインに移動します。アクセスの総数が固定されている場合、通常、前者のケースは後者よりもはるかに高速です。その理由を理解するには、CPU キャッシュがどのように構成されているかを検索してみてください。