09. 微細化への対応

44
09. 微微微微微微微 微微 微微

Upload: macon

Post on 05-Jan-2016

46 views

Category:

Documents


6 download

DESCRIPTION

09. 微細化への対応. 五島 正裕. 内容. 配線遅延 キャッシュのパイプライン化,多階層化 演算器のクラスタ化 VLIW プロセッサ. 配線遅延. ゲート遅延,配線遅延とスケーリング. スケーリング: 最小加工寸法 : 1/ S 倍 ゲ ー ト 遅 延 : 1/ S 倍 ローカル 配線遅延 : 1 倍 グローバル 配線遅延: 1/ S ~ 1 倍. 配線 遅延とスケーリング. 配線遅延 ∝ RCL 2 R : 単位長さ当たりの抵抗 C : 単位長さ当たりの容量 L : 配線長 ローカル配線: 1 倍 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 09.  微細化への対応

09. 微細化への対応

五島 正裕

Page 2: 09.  微細化への対応

内容

1. 配線遅延

2. キャッシュのパイプライン化,多階層化

3. 演算器のクラスタ化

4. VLIW プロセッサ

Page 3: 09.  微細化への対応

配線遅延

Page 4: 09.  微細化への対応

ゲート遅延,配線遅延とスケーリング

スケーリング: 最小加工寸法: 1/S 倍

ゲ ー ト 遅 延 : 1/S 倍 ローカル 配線遅延 : 1 倍 グローバル 配線遅延: 1/S ~ 1 倍

Page 5: 09.  微細化への対応

配線遅延とスケーリング

配線遅延 ∝ RCL2

R : 単位長さ当たりの抵抗 C : 単位長さ当たりの容量 L : 配線長

ローカル配線: 1 倍 細くなる(高さ一定) ⇒ R : S 倍 隣の配線と近くなる ⇒ C : S 倍 短くなる ⇒ L : 1/S

グローバル配線: < 1 倍 細くしない,高くする ⇒ R : < S 倍 隣の配線と離す ⇒ C : < S 倍 短くなる,リピータを挿入する

⇒ L : < 1/S 倍

L

最小加工寸法

Page 6: 09.  微細化への対応

配線遅延

配線世代(ピッチ)と信号遅延時間の関係( SIA National Technology Roadmap for Semiconductors 1997 )

Page 7: 09.  微細化への対応

スーパスカラ・プロセッサのパイプラインステージ名 ユニット

F 命令フェッチ分岐予測器

命令キャッシュ

Nレジスタ・リネーミング

リネーミング・ロジック

D ディスパッチ ペイロード RAM

S命令スケジューリング

スケジューリング・ロジック

I 発行 ペイロード RAM

R レジスタ読み出し レジスタ・ファイル

X実行(アドレス計算)

演算器

オペランド・バイパス

11 次データ・キャッシュ

1 次データ・キャッシュ

W ライトバック レジスタ・ファイル

演算器ゲート遅延

それ以外:メモリ配線遅延

Page 8: 09.  微細化への対応

配線遅延

100nm 世代以前 ゲート遅延が支配的 ARC はそのままでも,微細化するとクロックが上がり,性能が

上がる

サブ 100nm 世代 配線遅延が支配的に… ARC がそのままだと,微細化してもクロックは上がらず,性能

も上がらない

Page 9: 09.  微細化への対応

サブ 100nm 世代の ARC

パイプライン化 (pipelining)

非集中化 (decentralization) 水平 垂直

Page 10: 09.  微細化への対応

パイプライン化

多段に分割 クロックは速くなる が 実時間は変わらない(ちょっと伸び

る) レイテンシ(サイクル数)が長くなる

レイテンシが性能に与える影響を最小化する必要がある 投機との組み合わせが重要

Page 11: 09.  微細化への対応

最近のスーパスカラ・プロセッサのパイプライン

ステージ名 ユニットサイクル

F 命令フェッチ分岐予測器

命令キャッシュ2 ~ 4

Nレジスタ・リネーミング

リネーミング・ロジック 2 ~ 3

D ディスパッチ ペイロード RAM 1 ~ 2

S命令スケジューリング

スケジューリング・ロジック

1

I 発行 ペイロード RAM 1 ~ 2

R レジスタ読み出し レジスタ・ファイル 2 ~ 3

X実行(アドレス計算)

演算器

オペランド・バイパス1

11 次データ・キャッシュ

1 次データ・キャッシュ 2 ~ 4

W ライトバック レジスタ・ファイル 2 ~ 3

Page 12: 09.  微細化への対応

非集中化 (decentralization)

水平 (ほぼ)対等な複数のユニット

に 多バンク化(メモリの場合) 多重化(ポートの削減)

垂直(多階層化) 小型と大型(元)に ヒット/ミス

Page 13: 09.  微細化への対応

サブ 100nm 世代の ARC

パイプライン化,非集中化 IPC は,必ず低下する!

100nm 世代 あまるトランジスタを何に使って, IPC を向上させるか

サブ 100nm 世代 ILP (Instruction-Level Parallelism) も限界 クロックを上げつつ, IPC をどう維持するか

Page 14: 09.  微細化への対応

非集中化の例

命令ウィンドウの非集中化 整数,ロード/ストア,浮動小数点

演算器の可変レイテンシ化 キャリーが伝搬しないと予測すれば, 1 サイクルで 多ビットのシフトは 2 サイクルで

演算結果再利用 最近の演算結果をとっておき,入力が同じなら再利用する 入力が同じ(ヒット)なら, 1 サイクルで

キャッシュの多階層化 演算器のクラスタ化 (clustering)

Page 15: 09.  微細化への対応

キャッシュのパイプライン化,多階層化

Page 16: 09.  微細化への対応

キャッシュのパイプライン化,多階層化

最近のプロセッサの 1 次命令/データ・キャッシュ 2 ~ 4 サイクル(パイプライン化されている)

ex) Athlon , Core

16 ~ 32KM 程度の RAM のアクセスには,いつでも 1nsec 程度かかる 1GHz の時代: 1 サイクル ⇒ 1nsec 3GHz の時代: 3 サイクル ⇒ 1nsec

Page 17: 09.  微細化への対応

0 次キャッシュの追加

0 次キャッシュの追加 1 サイクルでアクセスできるように 32B × 32 エントリ = 1KB 程度 主に空間局所性を抽出 ヒット率は当然低い(最悪 70% 程度) ヒット/ミス予測が欲しい

Page 18: 09.  微細化への対応

レイテンシ予測

演算器のレイテンシを予測する 可変レイテンシ演算器

キャリーが伝搬しないとき 1 サイクルで 入力が同じ(ヒット)なら, 1 サイクルで

キャッシュ・ヒット/ミス予測

Page 19: 09.  微細化への対応

SchedSched

レイテンシ予測

cycle

II OROR EXEX L1L1 WBWB

SchedSched II OROR L1L1 WBWB

キャッシュヒット/ミス判

投機的に発行

Page 20: 09.  微細化への対応

SchedSched

レイテンシ予測

cycle

II OROR EXEX

SchedSched

キャッシュ

ミス!

L1L1

II OROR

L2L2 L2L2

SchedSched

WBWB

再スケジュール

II OROR EXEX WBWB

キャッシュ

リフィル

キャンセル

投機的に発行(静的にヒットと予

測)

Page 21: 09.  微細化への対応

SchedSched

レイテンシ予測

II OROR EXEX

SchedSched

cycle

L1L1 L2L2

SchedSched

L2L2

II OROR

キャッシュ

リフィル

WBWB

EXEX

キャッシュ

ミス!

WBWB

発行しない(ミスと予

測)

Page 22: 09.  微細化への対応

演算器のクラスタ化

Page 23: 09.  微細化への対応

演算器のクラスタ化

オペランド・バイパス 長い 配線遅延が問題

Page 24: 09.  微細化への対応

オペランド・バイパス

RFRF

Page 25: 09.  微細化への対応

クラスタ化

RFRF

Page 26: 09.  微細化への対応

RF

クラスタ化 レイアウト

063

RF

063

Page 27: 09.  微細化への対応

クラスタ化と命令ステアリング

クラスタ化 配 線 長 : 1/2 配線遅延: 1/4

配線遅延 ∝ (配線長) 2

クラスタ間のオペランド受け渡し ≥ 1 サイクル ある種の可変レイテンシ

命令ステアリング (instruction steering) 命令の振り分け クリティカルな命令を同じクラスタに

Page 28: 09.  微細化への対応

ここまでのまとめ

Page 29: 09.  微細化への対応

配線遅延

配線遅延: スケーリングされない ARC がそのままだと,クロックは向上しない

対策 パイプライン化 非集中化

垂直 水平

Page 30: 09.  微細化への対応

配線遅延

パイプライン化,非集中化 IPC は必ず低下する! クロックを上げつつ, IPC をどう維持するか ヒット率の向上

「あたると速いハードを作って,あてる」

Page 31: 09.  微細化への対応

VLIW プロセッサ

Page 32: 09.  微細化への対応

VLIW プロセッサとは

VLIW (Very Long Instruction Word)

最も naive な定義: 命令は,演算器 1 つ 1 つに対して,その操作フィールドを持つ 毎サイクル,すべての演算器の動作を逐一 指定する

することがなければ, nop を指定

Page 33: 09.  微細化への対応

VLIW とは

ALU0 ALU1 L/S L/S f MUL f ADD

≒ 32b

branch f DIV

VLIW :

cycle

Page 34: 09.  微細化への対応

VLIW とは

メリット 簡単

ディメリット nop の圧縮が必須 命令互換性がない,特に下位 (backward) 高性能なコンパイラが必須

商業的な成功例はない

Page 35: 09.  微細化への対応

Intel Itanium プロセッサ

EPIC (Explicitly Parallel Instruction Computing)

レジスタ 128 x 64b GR 128 x 82b FR 64 x 1 b Predication Registers

Stacked Register for Argument Passing Rotating Register for Software Pipelining

既存の VLIW 研究の成果など,やりたいことは全部入れた複雑なARC

Page 36: 09.  微細化への対応

EPIC

24 Templates :命令の種類と Stop Bit

命令グループ (instruction group) 並列に実行可能な命令 Stop Bit から Stop Bit

M I I

M I I

M LX

M M I

M M I

M F I

M M F

M I B

M B B

B B B

M M B

M F B

M I I

M I I

M LX

M M I

M M I

M F I

M M F

M I B

M B B

B B B

M M B

M F B

: Stop Bit128b

Page 37: 09.  微細化への対応

EPIC

うまくスケジューリングすると nop を削減できる

M1

M3

F6

I2

M4 M5

M1 I2 nopM3 M4 nopM5 F6 nop

M1 M3 I2M4 M5 F6

M1M3 I2M4 M5 F6

cycle

Page 38: 09.  微細化への対応

VLIW とは

より一般的な定義: ILP プロセッサで,動的に命令をスケジューリング…

す る: スーパスカラ しない: VLIW

本講義での定義: 分解できない命令グループがある: VLIW

Page 39: 09.  微細化への対応

分解できない命令グループ

分解できない命令グループ パイプライン・ストール

レイテンシの変化に柔軟に対処できない

cycle cycle

VLIW スーパスカラ

I4

I1 I2

I3

I5 I6

I4

I1 I2

I3

I5

I6

Page 40: 09.  微細化への対応

分解できない命令グループ 例えば, 1 次キャッシュのレイテンシ:

2 にすると, グループ内にロード命令が 1 つでもあれば, 1 サイクル ストールす

る ほとんどすべてのグループに,ロード命令はある 実質,性能は半分に

1 のままにすると, 微細化しても,クロックが上がらない

実際の例( 2009/06 現在): Intel Itanium 2 : 1.66GHz ( L1: 16KB , 1 サイクル) Intel Core i7 : 3.06GHz ( L1: 32KB , 4 サイクル)

Page 41: 09.  微細化への対応

今日のまとめ

Page 42: 09.  微細化への対応

配線遅延

配線遅延: スケーリングされない ARC がそのままだと,クロックは向上しない

対策 パイプライン化 非集中化

Page 43: 09.  微細化への対応

配線遅延

パイプライン化,非集中化 IPC は必ず低下する! クロックを上げつつ, IPC をどう維持するか ヒット率の向上

Risk-Taking なアーキテクチャ あたれば速い,そしてあたる VLIW は,最悪を見込まないといけないのでダメ

Itanium (1.66GHz) が Core (3.06GHz) よりクロックが遅いのは,理由がある

Page 44: 09.  微細化への対応

今後の予定

マルチスレッド・プロセッサ SIMD 命令