AMDの次世代CPU

http://pc.watch.impress.co.jp/docs/column/kaigai/20091217_336298.html
後藤さんの推測によると、Bulldozerは1サイクルあたり最大4つのx86命令をデコードし、各コア最大2つずつ実行するアーキテクチャになるらしい。もともと単スレッドで9割の性能が目標なので実際には7-8割の性能だろうから、実行ユニットを1つ削るという推測は正しい気がする。
わざわざ苦労して4命令をデコードして2命令しか実行しないのはもったいない気もする。しかし、Intelも多めにデコードして実行しているのをみると並列化する可能性が上がる点が重要なのだろう。デコーダーが遊ばないように、2スレッド実行にすればデコード効率が更に上昇する。
実行ユニットを削る理由は、デコーダーをこれ以上大きくできないなど複数ありそうだが、消費電力効率とマルチコア推進のための販売戦略によって決定したと思われる。現在のチップでは、面積の半分をキャッシュが占めるので面積を減らす効果は少なく、消費電力を減らす意味の方が大きい。
Intelは多めのリソースを用意し、利用できないときは電力を切ることで電力あたりの実行効率を上げている。更にコア毎のクロックと電力を制御することでスレッドの少ない時とマルチスレッド時の効率を両立する。この方法は、単コアのコア毎のピーク性能が高くマルチコア実行時にも消費電力も押さえる事ができ、現在のPCの利用方法では合理的だと思われる。
AMDの方法は、ある程度以上のスレッド数がある状態でないでないと恩恵が少ない。しかし、全てのコアを利用しているような状態では電力効率の相当良くなる。また、実効性能が下がっているのでキャッシュを少し減らしてコア数を多めにしても効率が下がらない。AMDは、マルチスレッドでスループット効率の高いCPUを目指している開発している事がわかる。
最近のcloud computingnetbookの話を前提にすると、AMDがBulldozer を開発する理由が戦略的決定した事がわかってくる。AMDの考えでは、近い将来、インターネットを介したサーバー&クライアント型の利用方法が多くなる。その結果、個人の持つPCは小型で低価格になり、それを支えるサーバーは集積されてシビアなスループット性能と効率の両立が求められて二極化が進む。Bulldozer はWebサーバー群やHPC向けのPCであり、低価格のBobcatプロセッサ開発と完全なコンビネーションとなる。