さて、こうした構成のために、各コアのLLC及びMemory AccessのLatencyが「物理的な場所によって異なる」という、従来には無い特徴を持つことになったのもポイントだろう。まずLLCへのアクセスである。例えば図4の様に、4コアの構成を考えてみる。
各コアが、自身のLLCにアクセスするLatencyを0(つまりこれを基準値)とし、他のコアのLLCにアクセスする場合にどれだけ余分なLatencyが必要かを考えると、表2の様になる。ここから算出した平均の追加Latencyは2.5Cycleほどになる計算だ。同じ事を2コアでやると1.0Cycle(表1)、6コアでは3.89Cycle(表3)、8コアでは5.25Cycle(表4)ほどになり、確かにLLCへのレイテンシを考える限り、スケーラビリティがある(つまりコア数の増加に比べてレイテンシの増え方が緩やか)。
| ■表1 | ||
| LLC Block 1 | LLC Block 2 | |
|---|---|---|
| Core 1 | 0 | 2 |
| Core 2 | 2 | 0 |
| ■表2 | ||||
| LLC Block 1 | LLC Block 2 | LLC Block 3 | LLC Block 4 | |
|---|---|---|---|---|
| Core 1 | 0 | 2 | 4 | 6 |
| Core 2 | 2 | 0 | 2 | 4 |
| Core 3 | 4 | 2 | 0 | 2 |
| Core 4 | 6 | 4 | 2 | 0 |
| ■表3 | ||||||
| LLC Block 1 | LLC Block 2 | LLC Block 3 | LLC Block 4 | LLC Block 5 | LLC Block 6 | |
|---|---|---|---|---|---|---|
| Core 1 | 0 | 2 | 4 | 6 | 8 | 10 |
| Core 2 | 2 | 0 | 2 | 4 | 6 | 8 |
| Core 3 | 4 | 2 | 0 | 2 | 4 | 6 |
| Core 4 | 6 | 4 | 2 | 0 | 2 | 4 |
| Core 5 | 8 | 6 | 4 | 2 | 0 | 2 |
| Core 6 | 10 | 8 | 6 | 4 | 2 | 0 |
| ■表4 | ||||||||
| LLC Block 1 | LLC Block 2 | LLC Block 3 | LLC Block 4 | LLC Block 5 | LLC Block 6 | LLC Block 7 | LLC Block 8 | |
|---|---|---|---|---|---|---|---|---|
| Core 1 | 0 | 2 | 4 | 6 | 8 | 10 | 12 | 14 |
| Core 2 | 2 | 0 | 2 | 4 | 6 | 8 | 10 | 12 |
| Core 3 | 4 | 2 | 0 | 2 | 4 | 6 | 8 | 10 |
| Core 4 | 6 | 4 | 2 | 0 | 2 | 4 | 6 | 8 |
| Core 5 | 8 | 6 | 4 | 2 | 0 | 2 | 4 | 6 |
| Core 6 | 10 | 8 | 6 | 4 | 2 | 0 | 2 | 4 |
| Core 7 | 12 | 10 | 8 | 6 | 4 | 2 | 0 | 2 |
| Core 8 | 14 | 12 | 10 | 8 | 6 | 4 | 2 | 0 |
次はMemory Accessである。とりあえずDDR3の実際のMemory AccessのLatencyは当然不明なので措いておくとして、とりあえずSystem AgentにアクセスするまでのLatencyを考えると、例えば図4のケースではCore 1はリクエストを出すのに1Cycle、結果を受け取るのに1Cycleでトータル2CycleのLatencyが掛かる計算だ。これがCore 4の場合はというと、リクエストを出すのに4Cycle、結果を受け取るのに4Cycleで、合計8Cycleが必要になる。つまり位置によって6Cycleの差が出るわけだ。
このLatecyは、当然ながらコア数によっても差が出てくる。これも2Core~8Coreまで試算したのが表5だが、見てお判りの通り平均Latencyは「コア数+1」Cycleで、LLCに比べると厳しい数字である。
| ■表5 | ||||
| 2Core | 4Core | 6Core | 8Core | |
|---|---|---|---|---|
| Core 1 | 2 | 2 | 2 | 2 |
| Core 2 | 4 | 4 | 4 | 4 |
| Core 3 | 6 | 6 | 6 | |
| Core 4 | 8 | 8 | 8 | |
| Core 5 | 10 | 10 | ||
| Core 6 | 12 | 12 | ||
| Core 7 | 14 | |||
| Core 8 | 16 | |||
| Average | 3 | 5 | 7 | 9 |
こう考えると、6ないし8コアについては、ひょっとすると図5(これは6コアの場合)の様な構造になっている可能性もあるだろう。論理的にはこちらの方がメモリアクセスのLatencyが大幅に減るし、LLCへのLatencyもそれほど悪化しない。問題はダイのレイアウト的にこうした配置が可能かどうか、というあたりで、このあたりは今後の情報開示に期待したいところだ。