したらばTOP ■掲示板に戻る■ 全部 1-100 最新50 | メール | |

PC関連スレ

1■とはずがたり:2002/11/04(月) 22:01
新規購入を検討するスレ

1949とはずがたり:2016/12/05(月) 11:00:33
まだかな〜。

AMDの次世代を担う新CPUアーキテクチャ「Zen」の詳細を解説。IPCを40%も向上させた工夫とは
http://www.4gamer.net/games/300/G030061/20160926086/
ライター:塩田紳二

Zen(開発コードネーム)  AMDの次世代CPUマイクロアーキテクチャである「Zen」については,新しい情報が出るたびに,4Gamerで紹介してきた。ただ,その詳細についてはなかなか情報が出てこなかったため,ヤキモキしているAMDファンもいたことだろう。
 だが,Zenを採用する第1弾のデスクトップPC向けCPU「Summit Ridge」(サミットリッジ,開発コードネーム)が,2016年後半,つまりそう遠くないタイミングで登場する状況になって,ようやくAMDも,マイクロアーキテクチャの詳細な情報を公開するようになってきた(関連記事)。

 そこで本稿では,2016年8月に開かれた半導体関連イベント「Hot Chips 28」に合わせて説明された,Zenマイクロアーキテクチャの詳細について,従来の「Bulldozer」系マイクロアーキテクチャとの比較を行いながら説明してみたい。

2011年から続くBulldozerモジュールを廃止
1基のCPUコアで2スレッドを同時実行するSMTに対応

 Zenの特徴を説明する前に,簡単に現在のAMD製CPUに使われているBulldozerマイクロアーキテクチャがどのようなものであったか,簡単におさらいしておこう。
 2011年10月に最初の採用CPU「FX-8150」が登場したBulldozerは,2基の整数演算ユニットが1基の浮動小数点演算ユニットを共有して1基のモジュールを構成するという,デュアルコアとシングルコアの間をとったようなアーキテクチャが特徴だった(関連記事)。

 この構造であれば,浮動小数点演算を扱わない命令は,実行部であるCPUコアが独立しているので2つのスレッドを同時に実行できる。一方,浮動小数点演算を扱う命令は,2つのスレッドが1つの実行ユニットを共有し,交互に浮動小数点演算命令を実行するという仕組みだった。
 一般的に,プログラムには整数演算命令の割合が多く,浮動小数点演算を行わないプログラムも珍しくはない。逆に,浮動小数点演算の比率が多いプログラムであっても,整数演算命令を含まないということはありえない。そのため,Bulldozerの構造であれば,ほとんどのプログラムがデュアルコアのように動作できるという理屈だった。

 Bulldozerはその後,2012年5月に最初の製品が登場した第2世代の「Piledriver」マイクロアーキテクチャ(関連記事),2014年1月登場の第3世代「Steamroller」(関連記事)と改良が行われ続け,現在使われている最新のものは,「Excavator」と呼ばれるSteamrollerの改良版マイクロアーキテクチャとなっている。
 これらも基本的にBulldozerの構造を踏襲しているのだが,x86/x64命令をCPU内部で実際に処理する「μOp」(マイクロ命令)に変換するデコーダが,モジュール全体で1基しかなかったのに対して,Steamrollerではこれを2基に増やすという改良が加えられたのが大きなトピックだった。
 とはいえ,2基の整数演算ユニットと1基の浮動小数点演算ユニットで1モジュールという基本構造は,変わることなく引き継がれていたわけだ。

Steamrollerでは,命令デコーダ部が2つになるといった,比較的大きな変更があった。直近のExcavatorは,この小改良版だ

 これに対してZenマイクロアーキテクチャでは,Bulldozerのモジュール構造を廃止して,整数演算ユニットと浮動小数点演算ユニットが1対1で1つの物理CPUコアを構成する構造へと転換した。

1950とはずがたり:2016/12/05(月) 11:00:56
>>1949-1950

ZenマイクロアーキテクチャにおけるCPUコアの構造。整数演算ユニット(INTEGER)と浮動小数点演算ユニット(FLOATING POINT)が1対1となっている

 それに加えて,「Simultaneous Multi Threading」(同時マルチスレッディング,以下 SMT)にも対応し,1基のCPUコアで2スレッドの同時実行を可能にするという,Intel製CPUと同じような機能を採用した。
 SMTに対応するCPUコアは,物理的には1基であるものの,OS側からは2つのCPUコア(論理CPUコア)に見えるので,同時に2つのスレッドを割り当てることが可能だ。内部的には,2つのスレッドを1つのCPUコアで切り替えながら実行することになる。SMTの導入により,メインメモリへのアクセスにともなう遅延が見かけ上削減されるので,実行ユニットの利用効率を上げられるわけだ。

Zenマイクロアーキテクチャを採用するCPUの構造図。CPUコア4基を1単位(CPU complex,CCX)として,L2キャッシュ容量は各コアごとに512KB,L3キャッシュ容量はCCX全体で8MBとなる。各CPUコアは2スレッドを同時実行できるので,CCX1基で4コア8スレッドとなり,Summit Ridgeはこれを2基搭載するので,8コア16スレッドとなるわけだ

 こうした改良により,Zenマイクロアーキテクチャは,ExcavatorよりもIPC(Instructions Per Clock,クロックあたりの命令実行数)が40%向上したと,AMDは主張している。
 また,14nm FinFETプロセスで製造したことなどにより,電力効率も向上しており,消費電力当たりの動作クロックも向上しているという。

 現在のAMD製CPUは,高性能を求めるCPU向けにExcavatorを,低消費電力を重視するCPU向けには,整数演算ユニットと浮動小数点演算ユニットが1対1でCPUコアを構成する「Jaguar」を利用している。しかし,Zenでは電力効率が向上したことによって,1つのマイクロアーキテクチャで低消費電力のモバイル向けから高性能なデスクトップPCまで,幅広い範囲をカバーできるという。

CPUコアの詳細をチェック
整数演算ユニットは6個のマイクロ命令を処理可能

 続いては,Zenマイクロアーキテクチャの詳細を見ていこう。
(中略)
 Zenマイクロアーキテクチャの変更点や特徴は,以上のとおりとなる。

 半導体プロセスの変更とアーキテクチャの大幅な変更により,Zenは,IntelのハイエンドCPUと勝負になる性能を実現できるようになったと,AMDは主張している(関連記事)。もちろん,製品の実物が登場していない現状では,第三者による正当な評価ができる状態にはなく,真の実力はまだ未知数だ。
 とはいえ,完全なSMT対応CPUとなったことで,Bulldozerモジュールの構造とWindows 8.x/7のスレッド割り当てアルゴリズムに齟齬が生じるといった,AMD製CPU特有の問題はなくなりそうである(関連記事)。

 最初の製品であるSummit Ridgeが,一般的なPC利用だけでなく,ゲームにおいてもどの程度の実力が発揮できるのか。今は期待を込めて待ちたいと思う。


新着レスの表示


名前: E-mail(省略可)

※書き込む際の注意事項はこちら

※画像アップローダーはこちら

(画像を表示できるのは「画像リンクのサムネイル表示」がオンの掲示板に限ります)

掲示板管理者へ連絡 無料レンタル掲示板