RightMark Memory Analyzer 3.8 - I-TLB(グラフ56~61)
続いてはI-TLB周りの比較である。まずグラフ56~61がI-TLB Sizeの結果である。
グラフを見ていただくと分かるが、どうもL2 TLBのサイズが倍増した様に見える。もともとHaswellとBroadwellのTLB周りのパラメータをまとめると
Haswell | Broadwell | |
L1 I-TLB | 128 Entries/4way | 128 Entries/4way |
---|---|---|
L1 D-TLB | 64 Entries/4way | 64 Entries/4way |
L2 D-TLB | 1024 Entries/8way | 1536 Entries/8way |
ということになっている(4KB Pageの場合)。このうちL1 I-TLBが128 Entriesなのは、Skylakeも同じなので、グラフがきれいに重なる。問題はその先で、128 Entryの先は当然共有のL2 Shared TLBにHitすることになるが、Haswell/Broadwellはいずれの場合もグラフで分かる通り512 EntryあたりでTLB Miss状態になり、Memory Accessになっている。
これに対してSkylakeは1000 Entryまで完全にフラットになっている。ここから考えられる可能性としては2つある。1つはL2 TLBのサイズを増やした(Broadwellで1536なので、2048あたりか?)ことで、1024 Entryあたりまで1つのThreadから利用できるようになったのか。
もう1つはL2 TLBのサイズそのものはBroadwellと同じだが、制御方法を少し変更して1 ThreadからL2 TLBをフルに使えるようにしたのか。どちらが正解かまではここからは読み取れない。