Cellだけじゃないけど2nd chasheのレイテンシが長いなあ
http://www.watch.impress.co.jp/game/docs/20060329/3dps3.htm
Cellプロセッサのキャッシュ。メモリのレイテンシを眺めてみる。
レジスタ | 1サイクル |
L1キャッシュ | 8サイクル |
L2キャッシュ | 32サイクル |
メインメモリ | 140サイクル |
Cellのメインメモリのレイテンシは思ったよりは少ないけど、キャッシュのレイテンシが大きいな。P4ではレジスタすら投機的にロードしていたというから、それよりはマシなのかもしれないけど。ちなにみx86のCPUでは以下のようなレイテンシだろそうだ。
CPU | L1 | L2 |
---|---|---|
Athlon 64 | 3cycles | 12cycles |
Northwood | 2cycles | 18cycles |
Prescott | 4cycles | 29cycles |
L1 chashe1に入っても8サイクルかかるので、早いうちにレジスタにロードしておく必要がある。L2キャッシュはヒットしても実行処理がストールしてしまうな。ほとんど外と思ったほうが良い。OoO未実装はコンパイラががんばるとしても32kのL1に収めるのは困難だろう。レポートでも指摘されているとおり、2スレッドでないと有効に使う事ができそうにない。x86系はレジスタの数が少ないままなので、ここまでレイテンシをとってしまうことはないと思うが、将来的にキャッシュは大きくなるけど、レイテンシも大きくなることを覚悟しなければいけないかな。