RightMark Memory Analyzer 3.8 - D-TLB(グラフ93~107)

グラフ93~95はD-TLB Sizeの判別であるが、この3つのグラフでHaswellとBroadwellは完全に同じ結果になっており、Skylakeのみが異なるという傾向を示した。ここではグラフ56~61で示したI-TLBのケースとは違い、L2 TLBでは1cycleほどLatencyが増えている。また512 EntryあたりでL2 Missとなり、あとはMemory Accessになるのも同じである。

L2 MissのLatencyも1cycleほど多いのは、L2 TLBをMissするとMemory AccessということでL3にTLBの中身が入ることになり、このL3 アクセスのLatencyがSkylakeではHaswell/Broadwellより大きいためと思われる。

それはともかくとして、Shared L2 TLBそのものはBroadwellと同じだとしても1536 Entries存在するから、513 Entry目がMissするのはおかしいと言うことになる。可能性としてはやはり1 Threadから利用できるL2 TLBのEntry数が制限されているというあたりだと思うのだが、そうするとI-TLBの場合とは実装が異なるということになる。このあたりが、「Entry数はBroadwellと変わらず、ただし制御方法を変更している」可能性の根拠というか状況証拠である。

ついでにD-TLBのAssociativity(グラフ96~107)を見てみると、こちらはI-TLBの場合(グラフ62~85)と全く同じ傾向である。つまりBroadwell+1cycleという形の結果になっており、やはりこれを見るとEntry数が若干増えているようにも思われる。

正確なところはいずれIntelが詳細を公開すると思う(現時点ではIntelはSkylakeに対応したIntel 64 and IA-32 Architectures Optimization Reference Manualをリリースしていない。恐らくIDF後にリリースされるのであろう)。