新城@筑波大学情報です。こくにちは。

CPU の中にはいっている Level 1 の cache と Level 2 の cache 
は、どのくらい速度が違うのでしょうか。たとえば、Pentium 4
3GHz くらいなら。

手元の PC でこんな表示があります。

% dmesg|egrep '^CPU.*cache'
CPU: Trace cache: 12K uops, L1 D cache: 8K
CPU: L2 cache: 512K
% 

L1 D cacheは、32K くらいかなあと思っていたら、8K しかありま
せん。命令の方は、よく見ると I cache でなくて、uops だから、
micro operations ですかね。可変長の命令を内部的に固定長に展
開したものでしたっけ。

メモリの所の速度は、バスの速度とかメモリのレイテンシで計算す
ればいいんですよね。

マイクロベンチマークを走らせると、この辺りのキャッシュの問題
かなにかで、結果がフラフラしたり、扱うデータを大きくしていく
とガクンと性能が落ちたりします。こちらが計りたいのは、ソフト
ウェアの部分で頑張った分がどのくらいなのかなのに。ハードウェ
アが気を効かせて過ぎると、よく分からなくなります。何かうまい
手はないですかね。

\\ 新城 靖 (しんじょう やすし) \\
\\ 筑波大学 電子・情報       \\