Bulldozer/Bobcat

さて、今回最大の発表がこちらであろう(Photo10)。まずは次世代のメインストリームとなるBulldozerである(Photo11)、この構造だが、2つのThreadを同時実行できる構造になっている。ただし整数演算に関してはスケジューラもパイプラインも異なり、またデータL1キャッシュも別に用意される。一方FPUは整数演算とは別にスケジュールされ、こちらは2つのスレッドで共用する形になる。構造そのものはこれ以上細かい話は出てこなかったが、もう少し細かい解説もあった(Photo12,13)。まずこの構造についてRick Bergman氏(Senior Vice President and General Manager, Products Group)は「最近のワークロードを見ると、大部分は整数演算となる。なので、スレッド毎にそれぞれ専用の実行パイプラインを用意することで性能を確保した。浮動小数点演算はこれに比べると、ずっと利用頻度が少ない。なので、こちらは2つのスレッドで共用する形をとった」と説明した。

次がBobcatである(Photo14)。2008年末頃には「開発リソースの問題でBobcatは中止」なんて噂も流れたが、ちゃんと開発が続けられていることが明らかにされた。この製品もAtomと似た、1W未満の消費電力を狙ったものであるが、内部構造はだいぶAtomと異なっている。しかも明確にOut of Orderを搭載していると説明されており、言ってみればK7のサブセット的な構造と言っても良い。

ところでこのBobcatが特徴的なのは、Synthesizableであることだ。単にIP化するだけならばK10の時代(厳密にはその前の、Turion X2 Ultraとして発表されたLionコア)に、既にModular化を図ると公表されているが、これはプロセスに最適化されたハードコアの話で、Synthesizableではない。このあたりは単にFusionとの兼ね合い以上の理由があるように感じられる。

Photo10: 両者の棲み分け。Mobileはもとより、スモールフォームファクターのデスクトップなどにもBobcatは入ってくるものと見られる。

Photo11: 他に、2011年に32nm SOIプロセスを使って、サーバー及びデスクトップ向けに製造されること、"128-Bit and 256-Bit XOP, FMA4 and CVT16 Instructions"(要するにIntelのAVX+独自拡張命令のこと。SSE5に代わって新たに採用された)を搭載することが明らかにされている。

Photo12: AMDとしては初の2Thread/CoreのCPUとなる。FPUがDedicatedとSharedをCycle毎に切り替え可能、というのは要するにDecodeの結果として、2つのThreadのFPU命令が混在する場合もあれば、片方のThreadのFPU命令のみが入る場合もある、という話であろう。FMACが2つということで、AVX互換の256bit命令の場合は、両方のユニットが共同して動く形になると思われる。

Photo13: ここでは128bit FMACが2つとされているが、実際にはもう少し複雑な構成になると思われる。恐らくx86のFPU命令を実装するのは片方のみで、もう片方はSSE3とAVXなどの128/256bit演算のみを実装しているのではないかと思われる。それと、遂にIntegerが4Pipelineになったのは注目に値する。恐らくALU+AGUのセットが4組、という構成であろう。

Photo14: もっともK7と大きく異なるのは、ALU+AGUでペアを組ませるというK7以来の伝統的な構造を捨て、ALU(図中のI-Pipe)とLoad Unit(図中のLd-pipe)/Store Unit(図中のSt-pipe)を分離するという、どちらかといえばIntelのPentium Mに近い構造になっていることだ。ダイサイズや性能との兼ね合いでこんな形になったのだろうと思われる。