結論から言うと「L1データキャッシュが 2-way セットアソシアティブであり、スラッシングが発生するアクセスの仕方をするから」のようです。データシートを軽く見た限りでは、Athlon 64 以降の CPU は全て L1データキャッシュが 2-way のようなので、この問題に引っかかります。

一方、手元の Intel Core 2 Quad Q6600 だと 8-way なのでスラッシングが発生せず、遅くなりません。おそらく 4-way でもスラッシングが発生しないものと思われます。

以下経過と詳細。

Read the rest of this entry