id:hyoshiok:20050825 の続き。アプリケーションレベルでハードウェアキャッシュを意識することはまあそうそうないが(それよりも計算量の少ないアルゴリズムを考えろつーことだ)OSだとその手のことをいろいろ考えないといけない場合が多くなってきた。spinlockなんかはメインメモリに必ずアクセスしに行くのでコストの高いオペレーションだということがよく知られているし、ロック競合を減らすためにもspinlockをいかにして減らすかということがカーネルプログラマの興味の中心(?)だったりもする。 とはいうものの、多くのプログラマはハードウェアキャッシュのことを意識していない。例えば、メモリに対するアクセスコストは等価だと仮定してプログラミングするが、(多くの場合はそれで十分なのだけど)、ハードウェアキャッシュとメインメモリへのアクセスは100倍以上コストが違う。メモリアクセスは非常に