- ベストアンサー
CPUのL2キャッシュメモリとは??
CPUのL2キャッシュメモリというのをよく目にしますが、これは大きければ大きいほど性能が向上するということなのでしょうか?たとえば平均で何MB、最高でどのくらいまで乗っているのでしょうか?
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
Q/これは大きければ大きいほど性能が向上するということなのでしょうか? A/一般に言えばそう考えられがちですが、そうではありませんよ。 セカンドキャッシュ(L2やL2キャッシュともいう)の役割は、CPUとメモリとの速度差を埋めることで見かけの速度をなるべく落とさないようにするという役割があります。 そのため、使用頻度の高いデータから順にTrace(Netburstのみ)、L1、L2、L3・・・メインメモリという順番で配置します。使用頻度が低ければメモリ上にあり、メモリ上にも収まらないが本来はメモリ上になければいけないメモリはOSの命令で仮想メモリ(ハードディスクなどの外部記憶装置)の一部に展開されています。 キャッシュ上のデータはCPUが先読みして取り込んだものであり、駆動中は常にキャッシュにはデータが満たされています。 その先読みで誤ったデータをキャッシュしていることが判明すると、謝ったデータをメモリに返し、新しい要求を出す必要があります。本来の速度が1としたら、先読みのミスがあるとデータの戻しに1、取り出しに1を要求するため、3倍時間が掛かるようになります。 キャッシュが少なければ、先読みする件数は少なくミスヒットする確率は下がりますが、キャッシュが増えると先読みは難しくなるのです。そのため、小さなデータを大量に扱う用途などでは、キャッシュ容量の多さが徒となり遅くなる可能性もあります。要は4096KBのキャッシュがあり、4096KB以上のデータを扱うならキャッシュが4096KBあると256KBのものより速くなりますが、データが2KBで2048個キャッシュされている場合は同じ先読み機能を搭載していると仮定すると今度は、256KBの方がキャッシュ面では有利になる可能性があるのです。 これは、天気予報のようなものです。明日の天気は95%以上の確率で当たっても一週間、一ヶ月の天気は確率が下がりますよね。キャッシュも1つのデータをキャッシュするならよいが、10個20個となると当たり外れがあり、最悪少ない物より遅くなります。 そのためキャッシュ容量は、ソフトウェアの開発状況やCPUの性能(予測性能)に合わせて決められており、大きくなればなるほど速いわけではないのです。 Q/たとえば平均で何MB、最高でどのくらいまで乗っているのでしょうか? A/現在のCPU統合キャッシュが出来たのは、インテル社のi486(インテル486)からです。そのときは、8KBの1次キャッシュが実装されていました。私が初めて触れたx86系の32bitプロセッサだったので、当時は恐ろしく速いプロセッサだと思った記憶があります。 現在x86系では、6MB×2の12MBまでは普通に手に入りますよ。 x86以外のプロセッサでは24MBのItanium 2プロセッサ(Montecito)が製品化されています。主流は、3~4MBでしょう。あまり、これを知ったところで役に立つことはないと思いますよ。 尚、Itaniumは現在主流のパソコン用プロセッサであるx86系とは異なる技術を用いたプロセッサです。CPUにはx86の他にも、Itanium、SPARC、MIPS、ARM、SX、Powerなどなど多数の製品が存在します。(それぞれのプロセッサを活用するにはそれぞれに対応したソフトウェアを使う必要があります)
お礼
かなり参考になりました。多ければ多いほどいいという短絡的なものでなく、用途によって選ぶという感じですね。ただ普通にブラウジングする(動画などをダウンロードする)や、高速な回線速度や性能が求められるゲームなどにおいてはどのくらいが適しているのでしょうか?