タグから該当するデータをどうやって検索するか
ちなみに、「1回にデータをどれだけ取り込むか」を決めるのが「ラインサイズ」である。32bit CPUの場合、キャッシュから取り込む量は1回4Byte程度にすると、メモリーアクセスが煩雑に発生しすぎる。だからといって4KB程度にすると、効率はいいのだが(Windowsの仮想記憶は1ページ4KBなので収まりがいい)、今度はキャッシュミスが煩雑に起きる。この辺りを勘案して、適当なサイズを決めることになる。
インテルの場合、例えばPentiumやP6(Pentium Pro~Pentium III)では、ラインサイズが32Byteだが、Pentium 4以降のCPUは64Byteになっている。また一部の製品は128Byte Sectorという管理単位もサポートしており、アプリケーションが最適と思われるラインサイズを選べるようになっている。
さて、キャッシュすべきデータが少ないうちはいいが、キャッシュ対象が多くなると、タグを検索するのにも時間が掛かってくる。例えば、図5のようにタグがフルに使われている状態だと、上から順に検索していくのは、かなり時間がかかる。
Core 2プロセッサーの場合、1次キャッシュは32KBで、ラインサイズが64Byteだとすれば、512個のエントリー(タグの格納場所)がある。これをいちいち総なめしていては、猛烈に時間がかかる(ちなみに、総なめ方式はフルアソシエイティブと呼ばれる)。
別の方法は、アドレスの下位部を、タグと1:1で対応させる方式である。32bit CPUの場合、メモリーアドレスは当然32bitである。ラインサイズ64Byte(6bit)、エントリが512個(9bit)という場合、図6のようにアドレスの一部をそのままタグIDと見なす。
この方式だと、目的のタグが一意に決まるので、エントリーを1個だけ確認すればキャッシュヒットかキャッシュミスかを判別でき、キャッシュとのアクセスは非常に高速になる。この方式は「ダイレクトマップ」と呼ばれるが、周期的なデータアクセスで極端に効率が落ちるという欠点も抱える。例えば以下の5つのアドレスにデータが入っていたとする。
- 00010000H
- 00020000H
- 00030000H
- 00040000H
- 00050000H
この場合、図6に従ってタグIDを決めると、すべてのタグIDが「0 0000 0000」になるので、同一エントリを取り合ってしまい、全然キャッシュの効果がないことになってしまう。
こうした欠点もあって、ダイレクトマップとフルアソシエイティブの折衷型とでもいう形で広く利用されているのが、「nウェイセットアソシエイティブ」方式である。ここでの「n」は「いくつのタグを持つか」を示している。
例えば図7は2ウェイセットアソシエイティブの場合である。
各々のタグはどちらもダイレクトマップで構成され、CPUはまず「タグ#1」を参照し、目的のアドレスがあるか検索する。ここでヒットすれば良し、ない場合は次に「タグ#2」を参照し、再度確認するわけだ。
この方式のメリットは、ダイレクトマップよりも周期的アドレスのアクセスでの効果が高いことだ。先ほどの5つのアドレスの例で言えば、5つのアドレスを順次参照する場合、ダイレクトマップでは最初の「00010000H」しかキャッシュできないが、2ウェイセットアソシエイティブならば、「00010000H」と「00020000H」の2つをキャッシュできる。同様に4ウェイなら4つ、8ウェイなら5つすべてをキャッシュできる。
インテルの場合、1次キャッシュは4~8ウェイ程度だが、2次/3次キャッシュでは16ウェイや24ウェイ(PenrynベースのCore 2 Duo)なんて壮絶な数を構成しているものもある。「何ウェイ程度が適当なのか」というのは、やはり理論だけでは決まらず、シミュレーション上でさまざまなテストをしながら実験的に決めているケースが非常に多い。
この連載の記事
-
第806回
PC
トランジスタ最先端! RibbonFETに最適なゲート長とフィン厚が判明 IEDM 2024レポート -
第805回
PC
1万5000以上のチップレットを数分で構築する新技法SLTは従来比で100倍以上早い! IEDM 2024レポート -
第804回
PC
AI向けシステムの課題は電力とメモリーの膨大な消費量 IEDM 2024レポート -
第803回
PC
トランジスタの当面の目標は電圧を0.3V未満に抑えつつ動作効率を5倍以上に引き上げること IEDM 2024レポート -
第802回
PC
16年間に渡り不可欠な存在であったISA Bus 消え去ったI/F史 -
第801回
PC
光インターコネクトで信号伝送の高速化を狙うインテル Hot Chips 2024で注目を浴びたオモシロCPU -
第800回
PC
プロセッサーから直接イーサネット信号を出せるBroadcomのCPO Hot Chips 2024で注目を浴びたオモシロCPU -
第799回
PC
世界最速に躍り出たスパコンEl Capitanはどうやって性能を改善したのか? 周波数は変えずにあるものを落とす -
第798回
PC
日本が開発したAIプロセッサーMN-Core 2 Hot Chips 2024で注目を浴びたオモシロCPU -
第797回
PC
わずか2年で完成させた韓国FuriosaAIのAIアクセラレーターRNGD Hot Chips 2024で注目を浴びたオモシロCPU -
第796回
PC
Metaが自社開発したAI推論用アクセラレーターMTIA v2 Hot Chips 2024で注目を浴びたオモシロCPU - この連載の一覧へ