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をフルに使えるようにしたのか。どちらが正解かまではここからは読み取れない。