全国高校eスポーツ選手権運営の舞台裏。●AMDが2012年のBulldozerチップのサンプルを公開プレスカンファレンスでの様子AMDは台湾で開催されているCOMPUTEXのプレスカンファレンスで、次世代CPUアーキテクチャ「Bulldozer(ブルドーザ)」ベースのCPUの計画のアップデートを行なうとともに、メインストリームPC向けBulldozerチップを公開した。Group)は、遅れが噂されていたBulldozerベースのCPU「Zambezi(ザンベジ)」について、この夏から出荷を行なうことを発表した。来年(2012年)投入する予定の、メインストリームPC向けのBulldozerベースAPU「Trinity(トリニティ)」の実チップが完成したことを発表。サンプルチップを公開した。Unit)製品で、Zambeziと同じ32nmプロセスで製造される。Bulldozerでは2個のCPUコアを融合させて1モジュールにしている。Trinityでは、Bulldozerのモジュールを2個、4CPUコアに相当するコアを搭載していると見られる。6970(Cayman)世代のGPUコアを統合したものがTrinityだと推定される。CPUアーキテクチャの移行PDF版はこちら今回のCOMPUTEXでの発表で、ついにAMDのCPUコアアーキテクチャの刷新が秒読み態勢に入った。64/Opteron(K8)」から「Phenom(K10)」へと機能を拡張して来た。その間、12年間、CPUコアの基本アーキテクチャは据え置いたままだった。それに対して、Bulldozerは、完全にゼロから設計された新アーキテクチャとなる。AMDにとってメインストリームCPUの12年振りのアーキテクチャ改革だ。Intelが同様にアーキテクチャを刷新するのは次々世代の「Haswell(ハスウェル)」となる。CPUは、シングルスレッドの性能を重視していた時代に開発されたK7をベースにして来た。それに対して、Bulldozerではマルチスレッド性能を効率よく高めることにフォーカスしている。そのため、Bulldozerではクラスタベースマルチスレッディングと呼ばれる技術を導入する。マルチスレッディング技術の一種だが、マルチコアともHyper-Threadingとも異なる。2つのCPUコアを密接に結合させたモジュールで、2つのスレッドを同時に実行する。CPUコアのうち、パフォーマンスへの影響が大きな部分は、それぞれのスレッドの専用ユニットにして、あまり使われない部分は共有ユニットにしている。具体的には整数演算ユニットと整数演算命令スケジューラ、そしてレジスタ、L1データキャッシュなどがスレッドそれぞれの占有ユニットとなっている。Multithreading)化されて2スレッドで共有する。フロントエンドの命令デコードなどは時分割で細粒度にスレッドを切り替えて共有する仕組みとなっている。マルチスレッディングアーキテクチャの比較PDF版はこちらBulldozerのマルチスレッディングPDF版はこちらBulldozerアーキテクチャの利点は、シングルスレッド性能を一定に保ったまま、ダイ面積当たりのマルチスレッド性能を引き上げることができる点。AMDが今回発表したハイエンドデスクトップ向けBulldozerであるZambeziは、4モジュールで8コア相当のCPUコアを搭載する。下がZambeziのダイ「Orochi(オロチ)」の写真だ。ダイサイズは推定で300平方mm以下。コンパクトに8コア分のリソースを納めている。6コアのダイサイズ346平方mmよりも一回り小さい。CPUコアと比較すると、もっとよくわかる。同じプロセス技術では、Bulldozerモジュールは、K10コアの2倍をちょっと切る程度のダイ面積となる。K10からBulldozerで、CPU自体の機能は大幅に拡張されている。K10よりも機能を増やしたCPUコア2個分を、K10で2個分のサイズに納めていることになる。効率のいいモジュールだ。AMDのコアサイズ比較PDF版はこちらBulldozerモジュールとLlano、Bobcatとの比較PDF版はこちらブロックダイヤグラム単位の比較PDF版はこちらBulldozerモジュールがK10コア2個分程度のサイズであることは、AMDがBulldozerを容易にメインストリームPCに投入できることを意味している。以前、AMDが公開したK10ベースのAPU「Llano(ラノ)」のウェハから試算したLlanoのダイサイズは220平方mm程度。COMPUTEXで初公開されたTrinityも同程度のダイサイズに収まっていると推定される。CPUのダイサイズの推移PDF版はこちら従来は、CPUコアアーキテクチャが変わると、同じコア数でもダイサイズが大きくなり、消費電力も増えた。今回のK10からBulldozerへの移行では、原理的にはダイサイズは一定に止め、電力も抑えることが可能になると推定される。Conference)で発表されたK10とBulldozerのクロックアクティビティの比較を見ると、Bulldozerの方がアクティブ電力を抑えられることがわかる。5870(Cypress)世代のGPUアーキテクチャを搭載することを明らかにしている。1年遅れで登場するTrinityでは、それより進んだGPUアーキテクチャが搭載されるだろう。6970(Cayman:ケイマン)」で、GPUアーキテクチャを改良。Word)アーキテクチャから4-wayのVLIW4へと切り替え、命令並列性を下げ、スレッド並列性を上げて、アプリケーションの実行効率を上げた。Data)アレイとして構成されている。SIMDアレイの中に複数のSIMDエンジンが含まれており、各SIMDエンジンに16個のVLIWスレッドプロセッサを備える。個々のSIMDエンジンに搭載される16個のVLIWスレッドプロセッサは、複数サイクルで1つのスレッドバッチである「ウェイブフロント(Wavefront)」を実行する。現在はWavefrontは64スレッドで構成されている。VLIWスレッドプロセッサは、5-wayの演算ユニットを備えていた。4個の単純な単精度FP積和算ユニットと、1個のスーパーファンクションユニット(SFU)の組み合わせだ。実際には分岐ユニットも備えるため、VLIW命令の命令スロットは6個。スーパーファンクションユニットが積和算も実行できるため、ピークで5個の単精度FP積和算を実行可能だった。5並列の命令並列性を得られる率が低いため、結果としてスレッドプロセッサの演算ユニットの稼働率は低かった。それに対して、Caymanでは4個の積和算ユニットの構成に再編し、ピークで4個の単精度FP積和算へと並列度を下げた。命令レベルの並列化が容易になった分だけ、プロセッサの稼働率が上がる。従来、スーパーファンクションユニットが実行していた三角関数などは、積和算ユニットに機能を実装することで実行する。VLIWの3個の命令イシュースロットを使って1個の超越関数系の命令を発行する仕組みとなっている。この改良で、VLIWスレッドプロセッサのパフォーマンス/ダイ面積は10%向上したという。Trinityに搭載されるGPUコアは、このVLIW4アーキテクチャの世代になると推定される。CaymanのSIMDエンジンPDF版はこちら●K10よりも細くなった整数演算コアCOMPUTEXでの発表で、いよいよ登場の時が近づいたBulldozer。そのパフォーマンスはどの程度なのか。最大のポイントは、Bulldozerが従来のK7からK10までの流れのCPUとは、全く異なる発想で設計されている点にある。そのため、従来CPUと比べると、性能の上がる部分と上がらない部分のばらつきがあると推定される。目立つのは整数演算ユニットの構成だ。Bulldozerの整数演算ユニットは2本の整数演算パイプと2本のロード/ストアパイプ、それに16KBのL1データキャッシュで構成されている。CPUは、3個のx86命令をデコードし、6個の内部命令(マイクロオプス:uOPs)を実行できる整数ユニットを備えていた。それに対してBulldozerは、4個のx86命令をデコードし、4個のuOPsを実行できる整数ユニットを2個備えている。uOPs実行と比べると、同クロック時の整数演算性能は落ちる場合が出る可能性がある。Bulldozerでは、動作周波数を上げることで、性能を維持するようだ。ISSCCでは、Bulldozerの「FO4(Fanout-Of-4)」ディレイは、従来アーキテクチャと比べて20%も減少したと説明された。FO4が減少すると、その分、動作周波数を上げやすくなる。AMDは製品化の段階でBulldozerのクロック向上に苦労していると言う情報もあるが、原理的にはクロックを上げやすい。BulldozerのアーキテクチャPDF版はこちらBulldozerの整数演算コアPDF版はこちら●効率的なBulldozerの浮動小数点(FP)ユニット浮動小数点(FP)ユニットについては、Bulldozerでは巧妙で効率的な設計がなされている。従来のK10は128-bitの乗算ユニットと加算ユニットの2ユニットと、他の処理を担当するユニットを備えていた。Bulldozerでは、128-bitの積和算ユニットが2ユニット分と、その他のユニット群を備えている。従来の2パイプのFP演算ユニットを、それぞれ積和算ユニットにしたイメージだ。スループットは積和算時には倍になるが、面積的には倍にはなっていない。実行ユニットは、大きく3つのブロックに分かれている。Handles)」だ。ローワーとアッパーが積和算ユニットで、ミドルがシャッフルなどのレジスタ操作やロードのユニットとなっている。File)」に分かれている。ローワーFPレジスタは91-bit幅でXMMレジスタとYMMレジスタの下半分とX87/MMXレジスタを格納する。ハイヤーFPレジスタは73-bit幅で反対にXMM/YMMレジスタの上半分を格納する。両レジスタファイルは、それぞれ演算ユニットに対して、6リード/2ライトのポートを備えている。2個の積和算ユニットが、1クロックに各3オペランドを読み出し、各1ディスティネーションを書き込むことができる。積和算ユニット自体はSIMDなら1個の倍精度演算または2個の単精度演算を処理できる。SSE命令では、アッパーとローワーそれぞれの対称演算ユニットが同一命令を実行することになる。AVX命令では全演算ユニットが同一命令を実行する。Bulldozerの浮動小数演算ユニットPDF版はこちらBulldozerの浮動小数演算ユニットのダイPDF版はこちらこうして概観するだけでも、Bulldozerが従来のK10とは全く異なるCPUアーキテクチャであることがわかる。そのアーキテクチャ選択が正しかったかどうかが、もうすぐ登場する実チップで試される。