AnadTechのBarcelona Architectureまとめを読んだ

http://www.anandtech.com/cpuchipsets/showdoc.aspx?i=2939 特に新しいことは書いてないけど、Core 2 Duoと丁寧に比較しながら解説してあるので、最新のCPUの機構がわかってよい。

SSE演算器の強化、間接分岐予測、投機ロードはC2Dに追いつく感じ。prefetch機構はC2Dの方が進んでいて、命令プリフェッチの帯域やメモリコントローラはBarcelonaが進んでいる。C2Dの性能の良さはL2キャッシュが優れている為だと思ったけど、分岐予測も含めてキャッシュ関連のものが絡み合って性能を上げていることがわかった。

Barcelonaは同じクロックならC2Dと同じ性能が出そうな気がするが、C2Dより上限クロックが低そうだ。

L3キャッシュの制御は、共有されるデータのみL3にコピーを置き続けて後は排他キャッシュだろうけど、どうやって判定いるのか相変わらず分からなかった。

今年なんとか一台欲しいけど、単コアで今のAthlon64 2GHzの倍以上の処理性能を求めるのは難しい。困ったマルチコアなのか、自信ねー。

20070819追記

http://pc11.2ch.net/test/read.cgi/jisaku/1183558273/l50x MACオタさんの発言

Anandtechの記事にわ,自動的にコア間で共有されるデータを判断してL3に残す機能が
あるとのことす。
http://www.anandtech.com/cpuchipsets/showdoc.aspx?i=2939&p=9
  ---------------------------
  Pure data load requests however go through a separate process. The cache
  controller looks at history and if the data has been shared before, a
  copy will be left in the L3 cache; otherwise it will be invalidated.
  ---------------------------

過去の履歴をみてデータをL3で共有するようだ。一度L1, L2$にロードされたデータが別のCPUからアクセスされるとL3へ移動する。なるほど、これなら排他キャッシュでも共有するデータをL3に持ってくることができる。
1度目と2度目のアクセスはレイテンシが大きいが、キャッシュ本来の繰り返し利用するデータなら問題ない。排他キャッシュ機構によってL3$に落ちたデータと共有データのバランスはアクセス頻度で制御できる。
L2$とL3$の比からみて、大規模なデータ共有でなくデータ通信を目的にしているようでメモリ共有モデルからすると疑問がある。今のメモリ共有モデルのプログラムだと、理論上は何処までもデータに共通してアクセスできてしまう。でも実際はパフォーマンスが低下してしまうから、それほど共有データの隅々までアクセスしないから良いのかな?
アクセスの結構ややこしい機構なるので、2コアならIntelのようなL2共有キャッシュのほうが良さそう。4コアチップを中心に考えた設計だろうな。