9
AMD の 64 ののののののののののの のののののの http://chip-architect.com/news/ 2003_09_21_Detailed_Architecture_of_AMDs_64bit_Core.html 翻翻 : @msyksphinz

Understanding the detailed architecture of amd's 64 bit core

Embed Size (px)

Citation preview

Page 1: Understanding the detailed architecture of amd's 64 bit core

AMDの 64ビットコア詳細アーキテクチャの理解http://chip-architect.com/news/

2003_09_21_Detailed_Architecture_of_AMDs_64bit_Core.html翻訳 : @msyksphinz

Page 2: Understanding the detailed architecture of amd's 64 bit core

The 64bit Processor Core of AMD’s Opteron

浮動小数点ユニット

データキャッシュユニット

整数演算ユニット

命令デコードユニット

Page 3: Understanding the detailed architecture of amd's 64 bit core

The 64bit Processor Core of AMD’s Opteron

浮動小数点ユニット

データキャッシュユニット

整数演算ユニット

命令デコードユニット

Page 4: Understanding the detailed architecture of amd's 64 bit core

第 1章 : 整数コア : 整数スーパハイウェイ

Page 5: Understanding the detailed architecture of amd's 64 bit core

1.1 整数スーパーハイウェイ 64bit のバスが中央を走っている

ビットインタリーブ : 約 20 種類のバスがビット単位で走っている 右からビット 0 、左側へビット 64(Byte 7)

Bit-0Bit-1Bit-32Bit-63

Bus-FBus-EBus-DBus-CBus-BBus-A

Page 6: Understanding the detailed architecture of amd's 64 bit core

1.2 3-wayスーパスカラCISCアーキテクチャ

Opteron: 3-way スーパスカラプロセッサ 1 サイクルあたり 3 つの x86 命令をデコード、実行、リタイア 命令形式 : CISC, 複数 (2 以上 ) のソースオペランド

Pentium 4: はサイクルあたり 3uOps Prescott: サイクルあたり最大で 4uOps

x86 命令命令形式 F(reg, reg) F(reg, mem) F(mem, reg) 整数命令において一般的

第一オペランド : ソースと出力の両方を取ることができる 1 つのソースオペランドがメモリから読み込まれ、結果は同じ領域に書き戻される。 整数パイプラインは、浮動小数点命令とマルチメディア命令を含む、全ての処理においてロードとストア処理を実行するのに利用される。

整数命令、 MMX 、 SSE(2) で一般的

Page 7: Understanding the detailed architecture of amd's 64 bit core

1.3 命令の 3種の階層 : ダブルディスパッチ操作 Athlon32: DirectPath と VectorPath

DirectPath : 複雑度の低い命令で、ハードウェアで直接実行 VectorPath : 複雑な命令。マイクロコードプログラムが実行される。 命令はマイクロコード ROM から読み込まれ、 3-way パイプラインに挿入される。

Opteron の新しい命令実行方式 : Double Dispatch パイプラインの最後のステージで 2 つの独立した命令に分割する 3-way パイプラインの場合には最大で 1 サイクルあたり 6 つの命令を生成 この追加されたパイプラインステージは、投機実行のために追加された

Page 8: Understanding the detailed architecture of amd's 64 bit core

1.4 128bit SSE(2)命令はDoublesに分解される 全ての命令のどのクラスに分類されるかが記述されている。

ほとんどの 128bit の SSE 、 SSE2 命令 : Double Dispatch 命令 独立した 64bit の命令に分割できないもの : VectorPath( マイクロコード ) 命令 SSE2 命令の 128bit レジスタの半分しか使わない命令 : Single 命令 (Direct Path)

Double Dispatch 命令の性能面でのトレードオフ 欠点 : 128bit SSE2 命令のデコード率がサイクルあたり 1.5 に制限される

しかしこれは全体の性能に影響を与えない 最大スループットは 128bitSSE Single 命令において FP ユニットとリタイアのハードウェアに制限されるため

利点サイクルレイテンシの削減が可能なこと Pentium4 スタイルの実装により生じるレイテンシの問題を避けることができる。

Page 9: Understanding the detailed architecture of amd's 64 bit core

1.5 128bit SSE(2)命令にDoubleを使うことにより 25%のレイテンシペナルティの発生を避けることができる Pentium 4 の SSE2 命令の実装方法

128 ビットのソースデータをそのまま受け取り、後段で 2 つに分割する 2 つの結果をつなげて最後に 128 ビットの 1 つのデータとする→全体のレイテンシは 1 サイクル増加

x87 の FADD 命令 :5 サイクル 128bitSSE:6 サイクル x87 の FMUL 命令 :7 サイクル 128bitSSE:8 サイクル

Opteron の実装方法 FADD と FMUL 命令を 4 サイクルで実行する。 SSE2 の命令は同一の 4 サイクルのレイテンシで実行される 1 サイクルも増加しない

次期 Pentium プロセッサ、コードネーム Prescott 浮動小数乗算帰途、浮動小数点加算器を追加することでこの問題を解消しようとしている。 この追加された FP ユニットはシングルポートだが、 128 ビットの演算ができるものと予想する。 これにより SSE2 のレイテンシは元に戻り、加算と乗算は 5 サイクルと 7 サイクルで実行できるようになるだろう。