830 likes | 1.05k Views
新しいアーキテクチャ . 慶應義塾大学理工学部 天野英晴 hunga@am . ics . keio . ac . jp. 将来のマイクロプロセッサ. 半導体技術の進展 面積は大きくなる しかし、性能はさほど向上しなくなる 0.1μm 以降:スケーリング則の崩壊 スーパスカラプロセッサの複雑化 →設計コストの増大、性能向上の頭打ち 面積に見合った性能をいかに得るか? 拡張された VLIW 方式 SMT (Simultaneous Multi ー Threading) マルチプロセッサ化 Reconfigurable Systems.
E N D
新しいアーキテクチャ 慶應義塾大学理工学部 天野英晴 hunga@am.ics.keio.ac.jp
将来のマイクロプロセッサ • 半導体技術の進展 面積は大きくなる しかし、性能はさほど向上しなくなる 0.1μm以降:スケーリング則の崩壊 • スーパスカラプロセッサの複雑化 →設計コストの増大、性能向上の頭打ち • 面積に見合った性能をいかに得るか? • 拡張されたVLIW方式 • SMT(SimultaneousMultiーThreading) • マルチプロセッサ化 • ReconfigurableSystems
IntelItanium • 64bit用命令セットIA-64に対応 • VLIWの考え方を導入 • コンパイラ主導による複数命令同時発行 • 動的スケジューリングを行わない • しかし、単純なVLIWではなく柔軟性が高い一方、構造はかなり複雑 • 投機的実行を支援 • ループ処理向けの様々な機能を持つ
柔軟なVLIW(命令のグループ化) add r6=@gprel(a#),gp;; group1r6=a[] ldfpd f1,f2=[r6] group2f1=a[0],f2=a[1] ldfdf3=[r5],16;; f3=a[2] fma.df4=f1,f2,f3 group3f4=f1*f2+f3
柔軟なVLIW(グループとバンドル) group Bundle(128bit) Template(5bit) Cycle Break
パイプライン構成 10段パイプライン、6命令同時発行 Instruction Delivery Operand Delivery Execution Frontend IPG FET ROT EXP REN WLD REG EXE DET WRB IPG:InstructionPointer generation FET:Fetch ROT:Rotate EXP:Expand REN:Rename WLD:Word-linedecode REG:Register Read EXE:Execute DET:Execute detect WRB:WriteBack
BlockDiagram L1InstructionCache・Fetch/PrefetchEngine IA-32 Decode and Control Off Chip L3 Cache L2 Cache Branch Prediction B B B M M I I F F RegisterStuck/Re-mapping Score boad etc. Branch Units Integer MMU Units FP Units Bus Controller
分岐命令の削減predicationregister 1の時だけ指定されたレジスタを有効にする cmpeax,ebx jne L30 movebx,CONST1 jmp L31 L30: movebx,CONST2 L31: cmp.eqp7,p8=r14,r15;; (p7) movir15=CONST1 (p8) movi r16=CONST2
AdvancedLoad Advanced Load ld4.ar2=[r33] addr3=4,r0;; st4 [r32]=r3 ld4.cr2=[r33];; addr5=r2,r3 addr3=4,r0;; st4 [r32]=r3 ld4r2=[r33];; addr5=r2,r3 Check st命令との間のデータ依存性は、ALAT(AdvancedLoad Address Table)によって解決する。
Speculative Load add5: ld8.s r1=[r32] cmp.eq p6,p5=r32,r0;; (p6) add r8=-1,r0 (p6) br.ret (p5) chk.s r1,return_error add r8=5,r1 br.ret add5: cmp.eqr6,p5=r32,r0;; (p6)addr8=-1,r0 (p6)br.ret (p5)ld8r1=[r32] addr8=5,r1 br.ret;; page faultした場合、loadは待たされる
ループ演算の性能向上 • カウンタ付きループ命令 • ポストインクリメント命令 昔から存在する複合命令だが、VLIW並列実行の枠組みを 利用して、実行サイクル数を避けることができる
SoftwarePipelining i Loop: LD F0,0(R1) ADDD F4,F0,F2 SD 0(R1),F4 SUBI R1,R1,#8 BNEZ R1,Loop Loop: SD0(R1),F4 ADDDF4,F0,F2 LDF0,-16(R1) SUBIR1,R1,#8 BNEZR1,Loop i-1 i-2 どのようなマシンにも利用可能(これはDLXでのコード例) しかし、初期化と最後の部分がたいへん
SoftwarePipeliningのサポート • ModuloScheduleloop命令 • loopcounterが0になっても実行を終了せず、新たなエピローグカウンタECが0になるまで実行 • レジスタローテーション • ループ毎に自動的にレジスタ番号を一つ増やしてリネームする。
その他 • レジスタスタックによる関数呼び出しの高速化 • 関数呼び出し時のリネーミング
まとめ • 単純なVLIWではない • 命令セットは複雑であるが、RISCの高速化技法を数多く取り入れている • コンパイラへの依存が中途半端 • 代償として構造の複雑化を招く危険性がある • IA-32の実行も可能だが遅い
Simultaneous Multithreading (SMT) • スーパスカラプロセッサ • 複数命令同時発行 • マルチスレッドプロセッサ • コンテキストスイッチをハードウェアでサポート • SMTは両方の特徴を継承 • プロセッサの利用効率が向上
SMTの動作 Issue Slots Issue Slots Issue Slots Clock Cycles fine-grained multithreaded superscalar superscalar SMT
スーパスカラとの比較 Instruction Per Cycle(IPC) による比較 : not OS intensive application SPECInt Apache : OS intensive application
SMTの利点 • 並列度をスレッドレベルから命令レベルへ • IPC の向上 • レイテンシの隠蔽が可能 • OS(kernel)の影響が減少 • コンテキストスイッチをハードウェアで実行
ユニプロセッサ 並列計算機 ユニプロセッサと並列計算機の境目 • どのようなレベルの並列性を利用するか? • ILP(InstructionLevelParallelism) 命令レベルの並列処理 • TraceLevelParallelism • 数命令から成る命令列 • ThreadLevelParallelism • 一定の大きさの命令列(複数プロセス) • ProcessLevelParallelism • プログラマ、コンパイラが分割した一定の処理を行う命令列
高性能化 密結合 同時発行数の増加vs. プロセッサを接続 単一パイプライン 複数命令同時発行 複数Thread同時実行 オンチップ化 共有メモリ、共有レジスタ プロセッサを接続
Flynnの分類 • 命令流(InstructionStream)の数: M(Multiple)/S(Single) • データ流(DataStream)の数:M/S • SISD • ユニプロセッサ(スーパスカラ、VLIWも入る) • MISD:存在しない(AnalogComputer) • SIMD • MIMD
命令 SIMD • 全プロセッサが同一命令で動作 • 柔軟性が低い • Illiac-IV/マルチメディア命令タイプ(粗粒度) • CM-2タイプ(細粒度) 命令メモリ 演算プロセッサ データメモリ
SIMD型の分類 • 粗粒度型:各ノードで浮動小数点演算処理が可能 • ILLIAC-IV,BSP,GF-11 • 最近の高性能CPUのマルチメディア命令 • 細粒度型:各ノードは1bitまたは数bitの演算しかできない • ICLDAP,CM-2,MP-2 • コネクションマシンは応用分野を人工知能に拡大(CmLispの功績)
CM-2のプロセッサ Flags A B F OP C Context s c 256bit memory 1bit serial ALU
P P P P P P P P P P P P P P P P CM2のプロセッサチップ 4096チップで 64KPE 命令 1チップ構成 Router 4x4 Processor Array 12links 4096 Hypercube connection 256bit x 16 PE RAM
SIMD型の将来 • 粗粒度SIMD • 大規模なものの復活はないだろう • マイクロプロセッサの高速化技術として小規模なものが生き残る • 細粒度SIMD • 画像処理等で圧倒的に有利 • CM2 → CM5のようにマルチプロセッサ化した方が性能が高い • 専用SIMDは、将来大いに伸びる可能性がある
全プロセッサが自分の命令を独立に実行 • 同期が必要 • 汎用性が高い • 様々な構成法が存在 MIMD プロセッサ 結合網 メモリ(命令・データ)
共有メモリの形態による分類 • UMA(UniformMemoryAccessModel) • どのプロセッサからでも同様にアクセスすることができる共有メモリを持つ • NUMA(Non-UniformMemoryAccess Model) • 共有メモリは持つがレイテンシが異なる • NORA/NORMA(NoRemoteMemoryAccessModel) • 共有メモリを持たずメッセージ交換で処理を行う
オンチップマルチプロセッサ UMA • 最も単純な共有メモリ型 • 単一プロセッサの延長 • プログラム、OSの開発が楽 • 小規模システムに限られる • バス結合型 • スイッチ結合型 • システム全体をLSI中に収める動きがある
Snoop Cache Snoop Cache Snoop Cache Snoop Cache PU PU PU UMAの一例:バス結合型 MainMemory sharedbus PU SMP(Symmetric MultiProcessor)として標準部品化 オンチップに格納可能
スイッチ結合型UMA .... LocalMemory CPU Interface Switch …. MainMemory スイッチとバスの区別はどんどんなくなりつつある
CPU CPU CPU CPU L1 I Cache L1 I Cache L1 I Cache L1 I Cache L1D Cache L1D Cache L1D Cache L1D Cache Mem.Cont. Mem.Cont. Mem.Cont. Mem.Cont. Write Through Bus(64b) Read/Replace Bus(256b) On-chipL2Cache Off-chipL3CacheInt. Rambus Memory interface I/O Bus Interface Cache SRAM Array Stanford’s Hydra Considerations in the design of Hydra CSL-TR-98-749, DRAM Main Memory I/O
Daytona(Lucent) • MESI Protocol • RISC+DSP • Pipelined operation of bus and memory controller. • 128bit STBus • 0.25μm CMOS4.5m×6mm (small chip)
L1 L1 L1 L1 PE0 PE1 PE2 PE3 Daytona(Lucent) STBus Memoryand I/O Controller semaphores arbiter
Power4(IBM) • 0.18μm copper process, 400m㎡ • 17000M Tr. • Inter-chip interface for MCM(Multi-Chip Module) • TLP(Thread Level Parallelism) • Design considering memory bandwidth • Shared cache + links
L3 Main Cache Memory L2 Shared Cache >500MHz, Wave-Pipelined Expansion Buses >10GByte/s Power4(IBM) >100GByte/s >333MHz >10GByte/s CPU1 CPU2 Chip-to-Chip Interconnect L3 Tags Chip-to-Chip Interconnect >500MHz >35GByte/s
MAJC • Hierarchical structure • Variable length VLIW processing element • Shared cache • I/O for inter-processor communication • I/O for PCI,DRAM • MAJC5200:0.22μm CMOS 220mm square
I-Cache I-Cache FU 0 FU 0 FU 1 FU 1 FU 2 FU 2 FU 3 FU 3 MAJC(MicroprocessorArchitectureforJavaComputing: SUN) Rambus I/O N-UPA PCI I/O Graphic Processor Switch Shared Cache S-UPA
クラスタ+ソフトウェアDSMと競合中 NUMA • それぞれがローカルメモリを持ち、他のプロセッサのメモリをネットワーク経由でアクセスする • アドレス変換、キャッシュ制御が必要でハードウェア制御が複雑 • スケーラブル: • UMAのプログラムがそのまま移植可能 • プロセッサ数を大きくした分の性能向上が得られる
典型的な構成 Node 0 0 Node 1 1 Interconnecton Network 2 Node2 3 論理アドレス空間 Node 3
NUMAの分類 • (ただの)NUMA: • リモートメモリをキャッシュしない • 構成が単純、リモートメモリのアクセスにコストがかかる • CC-NUMA:CacheCoherent • キャッシュの一致制御を保証 • 複雑なハードウェアが必要 • COMA:CacheOnlyMemoryArchitecture • ホームメモリを持たない • ハードウェアがより複雑
Shared Memory 16GB Shared Memory 16GB Shared Memory 16GB Vector Processor Vector Processor Vector Processor Vector Processor Vector Processor Vector Processor Vector Processor Vector Processor Vector Processor … … … 0 0 0 1 1 1 7 7 7 Earth Simulator (2002,NEC) Peak performance 40TFLOPS Interconnection Network (16GB/s x 2) …. Node 0 Node 1 Node 639
SGIOrigin BristledHypercube MainMemory HubChip Network MainMemoryはHubChipから直接リンクを出す 2PEで1Cluster
... ... ... DDM(DataDiffusionMachine) D ...
世界最高性能のスーパーコンピュータは常にNORA世界最高性能のスーパーコンピュータは常にNORA チップ間接続網とパケット転送 クラスタコンピューティング NORA/NORMA • 共有メモリを持たない • 交信はメッセージのやりとりで行う • 最も単純な構成で最大性能を得ることができる 一面、プログラムが難しい。汎用性に乏しい 技術的な問題は、プロセッサ間接続、パケット転送
Fine grain SIMD Coarse grain マルチプロセッサ コントロール フロー制御 バス結合型UMA スイッチ結合型UMA Simple NUMA CC-NUMA COMA MIMD NUMA NORA マルチコンピュータ シストリックアーキテクチャ データフロー制御 混合制御 要求駆動 その他
シストリックアーキテクチャ Data列x 演算アレイ Data列y 特定の演算能力を持つアレイ列に一定の間隔で リズミカルにデータを送りこみ、並列演算
a11 a12 0 0 a21 a22 a23 0 0 a32 a33 a34 0 0 a43 a44 帯行列の行列積 y=Ax y0 y1 y2 y3 x0 x1 x2 x3 = a yi yo X+ yo= a x + y i x
a11 a12 0 0 a21 a22 a23 0 0 a32 a33 a34 0 0 a43 a44 帯行列の行列積 y=Ax a23 a32 a22 a12 a21 a11 X + x1