ここまで調べたので、ついでにL1 I-CacheのAssosiativityの確認も行ってみた。先に述べたとおりZacateが2way、Atomが8way、Nanoが16wayという数字は既に明らかであるが、では実際にアクセスするとどう影響するかを確認してみた。グラフ38~43がそれで、Near Jump/Far JumpでForward/Backward/Randomの3パターン(このテストにはPseudo-randomはない)での結果である。
結果を見てみると、まずAtomの極端に大きなスパイクが非常に目立つ。Segment数で言えばまず8がL1 Hit/Missの境目、次の16がL2 Hit/Missの境目で、ここまではまぁ判る。謎なのが32にある一番大きなピークである。ここは既にL2 MissでMemory Accessに入っている領域の筈で、ここまで極端なピークが出る理由がちょっと不明である。とはいえ、こんな具合にそれぞれの境目でスパイク状になるのは、ある意味ストレートな設計で判りやすいとは言える。
一方Nanoは? というとL1/L2ともに16way set Associativityだが、急にスパイク上に増加するというわけではなく、ゆるやかに増える傾向にあるのが非常に面白い。おそらくL1 MissなりL2 Missなりが発生するタイミングでPrefetchが入り、急激にLatencyが増えないようなCache Refillが行われているものと思われる。とはいえ次第にLatencyが増えてゆき、最終的に120cycle程度までゆくのは、グラフ30~37のMemory AccessのLatencyを踏まえればそれほど不思議ではない。さてZacateは? というと、Nanoに比べたらずっと緩やかではあるが、それでも明確にピークが出ているのが判る。Zacateの場合は、L1 I-Cacheが2wayと少ない代わりにL2が16wayなため、最初はちょっとLatencyが増えるが、その先が比較的緩やかに推移しているのが特徴的である。