TLB Opitimization(Photo08)

Photo08:ここでの主な項目は、エンタープライズ向けに広大なメモリ空間を使う場合の対応を施したという事であり、1GBytes/Page構成に対応するといった内容が主眼。

さて、次はいよいよ問題のTLBである。TLBの基本的な構造そのものはAthlon 64 X2もPhenomも差がない(Photo09)。実際、RMMAのTLB Infoを見比べてみると(Photo10、11)、どちらも2レベルのTLBを搭載していることが判る。既に流れている解説記事の中には、L3 TLB云々という記述を見かけることもあるが、"Software Optimization Guide for AMD Family 10h Processors"のA.10でも明確に"The AMD Family 10h processors utilize a two-level TLB structure."と記述されており、L3 TLBなるものは存在しない。間違えやすいのは、この2 Level TLBとキャッシュの構成は無関係な事。つまりL2 TLBというのは別にL2用のキャッシュという意味ではない。あくまでもTLBはTLBとしてキャッシュの構造とは独立に構成されている。実際、例えばCore 2 Quadの場合、Data TLBは2つ用意されるが、Instruction TLBは1つだけである(Photo12)。

Photo09:もっともこの図は2001年の時点での概念図で、最終的にはちょっと異なっている。そもそもエントリ数が合っていない。

Photo10:こちらはAthlon 64 X2 5000+のもの。L1 Data TLBは32エントリとなっている。

Photo11:こちらがPhenom 9900のもの。L1 Data TLBが48エントリに増えていることが判る。

Photo12:Intel系プロセッサのTLBの構造は"Intel 64 and IA-32 Architectures Software Developer's Manual Volume 3A: System Programming Guide"のCHAPTER 10が判りやすい。ちなみにIntelの場合、Pentium 4やPentium M/Core DuoはData TLBも1 Levelである。

話を戻すと、Athlon 64 X2とPhenomのTLBのスペックの違いを表3と表4にまとめてみた。大きな相違点は、そんなわけでPhoto08に示すようにLarge Pageの対応である。ちなみにL1 Data TLBで1GB Pageの詳細が"???"なのは、"Support for 1-Gbyte pages has also been added."としかないからで、下手をすると1エントリなんて可能性もある。

表3

表4