Download - 09. 微細化への対応
![Page 1: 09. 微細化への対応](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813adb550346895da3243d/html5/thumbnails/1.jpg)
09. 微細化への対応
五島 正裕
![Page 2: 09. 微細化への対応](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813adb550346895da3243d/html5/thumbnails/2.jpg)
内容
1. 配線遅延
2. キャッシュのパイプライン化,多階層化
3. 演算器のクラスタ化
4. VLIW プロセッサ
![Page 3: 09. 微細化への対応](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813adb550346895da3243d/html5/thumbnails/3.jpg)
配線遅延
![Page 4: 09. 微細化への対応](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813adb550346895da3243d/html5/thumbnails/4.jpg)
ゲート遅延,配線遅延とスケーリング
スケーリング: 最小加工寸法: 1/S 倍
ゲ ー ト 遅 延 : 1/S 倍 ローカル 配線遅延 : 1 倍 グローバル 配線遅延: 1/S ~ 1 倍
![Page 5: 09. 微細化への対応](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813adb550346895da3243d/html5/thumbnails/5.jpg)
配線遅延とスケーリング
配線遅延 ∝ RCL2
R : 単位長さ当たりの抵抗 C : 単位長さ当たりの容量 L : 配線長
ローカル配線: 1 倍 細くなる(高さ一定) ⇒ R : S 倍 隣の配線と近くなる ⇒ C : S 倍 短くなる ⇒ L : 1/S
倍
グローバル配線: < 1 倍 細くしない,高くする ⇒ R : < S 倍 隣の配線と離す ⇒ C : < S 倍 短くなる,リピータを挿入する
⇒ L : < 1/S 倍
L
最小加工寸法
![Page 6: 09. 微細化への対応](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813adb550346895da3243d/html5/thumbnails/6.jpg)
配線遅延
配線世代(ピッチ)と信号遅延時間の関係( SIA National Technology Roadmap for Semiconductors 1997 )
![Page 7: 09. 微細化への対応](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813adb550346895da3243d/html5/thumbnails/7.jpg)
スーパスカラ・プロセッサのパイプラインステージ名 ユニット
F 命令フェッチ分岐予測器
命令キャッシュ
Nレジスタ・リネーミング
リネーミング・ロジック
D ディスパッチ ペイロード RAM
S命令スケジューリング
スケジューリング・ロジック
I 発行 ペイロード RAM
R レジスタ読み出し レジスタ・ファイル
X実行(アドレス計算)
演算器
オペランド・バイパス
11 次データ・キャッシュ
1 次データ・キャッシュ
W ライトバック レジスタ・ファイル
演算器ゲート遅延
それ以外:メモリ配線遅延
![Page 8: 09. 微細化への対応](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813adb550346895da3243d/html5/thumbnails/8.jpg)
配線遅延
100nm 世代以前 ゲート遅延が支配的 ARC はそのままでも,微細化するとクロックが上がり,性能が
上がる
サブ 100nm 世代 配線遅延が支配的に… ARC がそのままだと,微細化してもクロックは上がらず,性能
も上がらない
![Page 9: 09. 微細化への対応](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813adb550346895da3243d/html5/thumbnails/9.jpg)
サブ 100nm 世代の ARC
パイプライン化 (pipelining)
非集中化 (decentralization) 水平 垂直
![Page 10: 09. 微細化への対応](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813adb550346895da3243d/html5/thumbnails/10.jpg)
パイプライン化
多段に分割 クロックは速くなる が 実時間は変わらない(ちょっと伸び
る) レイテンシ(サイクル数)が長くなる
レイテンシが性能に与える影響を最小化する必要がある 投機との組み合わせが重要
![Page 11: 09. 微細化への対応](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813adb550346895da3243d/html5/thumbnails/11.jpg)
最近のスーパスカラ・プロセッサのパイプライン
ステージ名 ユニットサイクル
数
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. 微細化への対応](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813adb550346895da3243d/html5/thumbnails/12.jpg)
非集中化 (decentralization)
水平 (ほぼ)対等な複数のユニット
に 多バンク化(メモリの場合) 多重化(ポートの削減)
垂直(多階層化) 小型と大型(元)に ヒット/ミス
![Page 13: 09. 微細化への対応](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813adb550346895da3243d/html5/thumbnails/13.jpg)
サブ 100nm 世代の ARC
パイプライン化,非集中化 IPC は,必ず低下する!
100nm 世代 あまるトランジスタを何に使って, IPC を向上させるか
サブ 100nm 世代 ILP (Instruction-Level Parallelism) も限界 クロックを上げつつ, IPC をどう維持するか
![Page 14: 09. 微細化への対応](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813adb550346895da3243d/html5/thumbnails/14.jpg)
非集中化の例
命令ウィンドウの非集中化 整数,ロード/ストア,浮動小数点
演算器の可変レイテンシ化 キャリーが伝搬しないと予測すれば, 1 サイクルで 多ビットのシフトは 2 サイクルで
演算結果再利用 最近の演算結果をとっておき,入力が同じなら再利用する 入力が同じ(ヒット)なら, 1 サイクルで
キャッシュの多階層化 演算器のクラスタ化 (clustering)
![Page 15: 09. 微細化への対応](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813adb550346895da3243d/html5/thumbnails/15.jpg)
キャッシュのパイプライン化,多階層化
![Page 16: 09. 微細化への対応](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813adb550346895da3243d/html5/thumbnails/16.jpg)
キャッシュのパイプライン化,多階層化
最近のプロセッサの 1 次命令/データ・キャッシュ 2 ~ 4 サイクル(パイプライン化されている)
ex) Athlon , Core
16 ~ 32KM 程度の RAM のアクセスには,いつでも 1nsec 程度かかる 1GHz の時代: 1 サイクル ⇒ 1nsec 3GHz の時代: 3 サイクル ⇒ 1nsec
![Page 17: 09. 微細化への対応](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813adb550346895da3243d/html5/thumbnails/17.jpg)
0 次キャッシュの追加
0 次キャッシュの追加 1 サイクルでアクセスできるように 32B × 32 エントリ = 1KB 程度 主に空間局所性を抽出 ヒット率は当然低い(最悪 70% 程度) ヒット/ミス予測が欲しい
![Page 18: 09. 微細化への対応](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813adb550346895da3243d/html5/thumbnails/18.jpg)
レイテンシ予測
演算器のレイテンシを予測する 可変レイテンシ演算器
キャリーが伝搬しないとき 1 サイクルで 入力が同じ(ヒット)なら, 1 サイクルで
キャッシュ・ヒット/ミス予測
![Page 19: 09. 微細化への対応](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813adb550346895da3243d/html5/thumbnails/19.jpg)
SchedSched
レイテンシ予測
cycle
II OROR EXEX L1L1 WBWB
SchedSched II OROR L1L1 WBWB
キャッシュヒット/ミス判
定
投機的に発行
![Page 20: 09. 微細化への対応](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813adb550346895da3243d/html5/thumbnails/20.jpg)
SchedSched
レイテンシ予測
cycle
II OROR EXEX
SchedSched
キャッシュ
ミス!
L1L1
II OROR
L2L2 L2L2
SchedSched
WBWB
再スケジュール
II OROR EXEX WBWB
キャッシュ
リフィル
キャンセル
投機的に発行(静的にヒットと予
測)
![Page 21: 09. 微細化への対応](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813adb550346895da3243d/html5/thumbnails/21.jpg)
SchedSched
レイテンシ予測
II OROR EXEX
SchedSched
cycle
L1L1 L2L2
SchedSched
L2L2
II OROR
キャッシュ
リフィル
WBWB
EXEX
キャッシュ
ミス!
WBWB
発行しない(ミスと予
測)
![Page 22: 09. 微細化への対応](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813adb550346895da3243d/html5/thumbnails/22.jpg)
演算器のクラスタ化
![Page 23: 09. 微細化への対応](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813adb550346895da3243d/html5/thumbnails/23.jpg)
演算器のクラスタ化
オペランド・バイパス 長い 配線遅延が問題
![Page 24: 09. 微細化への対応](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813adb550346895da3243d/html5/thumbnails/24.jpg)
オペランド・バイパス
RFRF
![Page 25: 09. 微細化への対応](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813adb550346895da3243d/html5/thumbnails/25.jpg)
クラスタ化
RFRF
![Page 26: 09. 微細化への対応](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813adb550346895da3243d/html5/thumbnails/26.jpg)
RF
クラスタ化 レイアウト
063
RF
063
![Page 27: 09. 微細化への対応](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813adb550346895da3243d/html5/thumbnails/27.jpg)
クラスタ化と命令ステアリング
クラスタ化 配 線 長 : 1/2 配線遅延: 1/4
配線遅延 ∝ (配線長) 2
クラスタ間のオペランド受け渡し ≥ 1 サイクル ある種の可変レイテンシ
命令ステアリング (instruction steering) 命令の振り分け クリティカルな命令を同じクラスタに
![Page 28: 09. 微細化への対応](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813adb550346895da3243d/html5/thumbnails/28.jpg)
ここまでのまとめ
![Page 29: 09. 微細化への対応](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813adb550346895da3243d/html5/thumbnails/29.jpg)
配線遅延
配線遅延: スケーリングされない ARC がそのままだと,クロックは向上しない
対策 パイプライン化 非集中化
垂直 水平
![Page 30: 09. 微細化への対応](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813adb550346895da3243d/html5/thumbnails/30.jpg)
配線遅延
パイプライン化,非集中化 IPC は必ず低下する! クロックを上げつつ, IPC をどう維持するか ヒット率の向上
「あたると速いハードを作って,あてる」
![Page 31: 09. 微細化への対応](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813adb550346895da3243d/html5/thumbnails/31.jpg)
VLIW プロセッサ
![Page 32: 09. 微細化への対応](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813adb550346895da3243d/html5/thumbnails/32.jpg)
VLIW プロセッサとは
VLIW (Very Long Instruction Word)
最も naive な定義: 命令は,演算器 1 つ 1 つに対して,その操作フィールドを持つ 毎サイクル,すべての演算器の動作を逐一 指定する
することがなければ, nop を指定
![Page 33: 09. 微細化への対応](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813adb550346895da3243d/html5/thumbnails/33.jpg)
VLIW とは
ALU0 ALU1 L/S L/S f MUL f ADD
≒ 32b
branch f DIV
VLIW :
cycle
![Page 34: 09. 微細化への対応](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813adb550346895da3243d/html5/thumbnails/34.jpg)
VLIW とは
メリット 簡単
ディメリット nop の圧縮が必須 命令互換性がない,特に下位 (backward) 高性能なコンパイラが必須
商業的な成功例はない
![Page 35: 09. 微細化への対応](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813adb550346895da3243d/html5/thumbnails/35.jpg)
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. 微細化への対応](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813adb550346895da3243d/html5/thumbnails/36.jpg)
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. 微細化への対応](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813adb550346895da3243d/html5/thumbnails/37.jpg)
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. 微細化への対応](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813adb550346895da3243d/html5/thumbnails/38.jpg)
VLIW とは
より一般的な定義: ILP プロセッサで,動的に命令をスケジューリング…
す る: スーパスカラ しない: VLIW
本講義での定義: 分解できない命令グループがある: VLIW
![Page 39: 09. 微細化への対応](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813adb550346895da3243d/html5/thumbnails/39.jpg)
分解できない命令グループ
分解できない命令グループ パイプライン・ストール
レイテンシの変化に柔軟に対処できない
cycle cycle
VLIW スーパスカラ
I4
I1 I2
I3
I5 I6
I4
I1 I2
I3
I5
I6
![Page 40: 09. 微細化への対応](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813adb550346895da3243d/html5/thumbnails/40.jpg)
分解できない命令グループ 例えば, 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. 微細化への対応](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813adb550346895da3243d/html5/thumbnails/41.jpg)
今日のまとめ
![Page 42: 09. 微細化への対応](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813adb550346895da3243d/html5/thumbnails/42.jpg)
配線遅延
配線遅延: スケーリングされない ARC がそのままだと,クロックは向上しない
対策 パイプライン化 非集中化
![Page 43: 09. 微細化への対応](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813adb550346895da3243d/html5/thumbnails/43.jpg)
配線遅延
パイプライン化,非集中化 IPC は必ず低下する! クロックを上げつつ, IPC をどう維持するか ヒット率の向上
Risk-Taking なアーキテクチャ あたれば速い,そしてあたる VLIW は,最悪を見込まないといけないのでダメ
Itanium (1.66GHz) が Core (3.06GHz) よりクロックが遅いのは,理由がある
![Page 44: 09. 微細化への対応](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813adb550346895da3243d/html5/thumbnails/44.jpg)
今後の予定
マルチスレッド・プロセッサ SIMD 命令