システムLSIとアーキテクチャ 技術

Download Report

Transcript システムLSIとアーキテクチャ 技術

新しいアーキテクチャ
慶應義塾大学理工学部
天野英晴
hunga@am.ics.keio.ac.jp
将来のマイクロプロセッサ

半導体技術の進展
面積は大きくなる
しかし、性能はさほど向上しなくなる
0.1μm以降:スケーリング則の崩壊

スーパスカラプロセッサの複雑化
→設計コストの増大、性能向上の頭打ち

面積に見合った性能をいかに得るか?




拡張されたVLIW方式
SMT (Simultaneous MultiーThreading)
マルチプロセッサ化
Reconfigurable Systems
Intel Itanium


64bit用命令セットIA-64に対応
VLIWの考え方を導入





コンパイラ主導による複数命令同時発行
動的スケジューリングを行わない
しかし、単純なVLIWではなく柔軟性が高い一方、構
造はかなり複雑
投機的実行を支援
ループ処理向けの様々な機能を持つ
柔軟なVLIW(命令のグループ化)
add
r6=@gprel(a#),gp;; group1 r6=a[]
ldfpd f1,f2=[r6]
ldfd
group2 f1=a[0],f2=a[1]
f3=[r5],16;;
f3=a[2]
fma.d f4=f1,f2,f3
group3 f4=f1*f2+f3
柔軟なVLIW
(グループとバンドル)
group
Bundle(128bit)
Template(5bit)
Cycle
Break
パイプライン構成
10段パイプライン、6命令同時発行
Front end
Instruction Operand
Delivery
Delivery
Execution
IPG FET ROT EXP REN WLD REG EXE DET WRB
IPG:Instruction Pointer generation
FET:Fetch
DET:Execute detect
ROT:Rotate
WRB:Write Back
EXP:Expand
REN:Rename
WLD:Word-line decode
REG:Register Read
EXE:Execute
Block Diagram
L1 Instruction Cache・Fetch/Prefetch Engine
Branch
Prediction
B B B
L2
Cache
MM I I
F F
RegisterStuck/Re-mapping
Score Branch Integer
boad
Units
MMU
etc.
Units
Bus Controller
FP
Units
IA-32
Decode
and
Control
Off
Chip
L3
Cache
分岐命令の削減
predication register
1の時だけ指定されたレジスタを有効にする
cmp eax,ebx
jne
L30
mov ebx,CONST1
(p7) movi r15=CONST1
jmp
(p8)
L31
L30: mov ebx,CONST2
L31:
r15;;
cmp.eq p7,p8=r14,
movi r16=CONST2
Advanced Load
add r3=4,r0;;
ld4.a r2=[r33]
st4 [r32]=r3
add r3=4,r0;;
ld4 r2=[r33];;
st4 [r32]=r3
add r5=r2,r3
ld4.c r2=[r33];;
Advanced
Load
Check
add r5=r2,r3
st命令との間のデータ依存性は、ALAT(Advanced Load
Address Table)によって解決する。
Speculative Load
add5: cmp.eq r6,p5=r32,r0;; add5: ld8.s r1=[r32]
cmp.eq p6,p5=r32,r0;;
(p6)
add r8=-1,r0
(p6)
br.ret
(p6)
add
(p5)
ld8 r1=[r32]
(p6)
br.ret
add r8=5,r1
(p5)
chk.s r1,return_error
br.ret;;
page faultした場合、loadは待たされる
r8=-1,r0
add r8=5,r1
br.ret
ループ演算の性能向上


カウンタ付きループ命令
ポストインクリメント命令
昔から存在する複合命令だが、VLIW並列実行の枠組みを
利用して、実行サイクル数を避けることができる
Software Pipelining
Loop: LD
F0,0(R1)
Loop: SD 0(R1),F4
ADDD F4,F0,F2
ADDD F4,F0,F2
SD
0(R1),F4
LD F0,-16(R1)
SUBI R1,R1,#8
SUBI R1,R1,#8
BNEZ R1,Loop
BNEZ R1,Loop
i
i-1
i-2
どのようなマシンにも利用可能(これはDLXでのコード例)
しかし、初期化と最後の部分がたいへん
Software Pipeliningのサポート

Modulo Schedule loop命令


loop counterが0になっても実行を終了せず、新たな
エピローグカウンタECが0になるまで実行
レジスタローテーション

ループ毎に自動的にレジスタ番号を一つ増やしてリネ
ームする。
その他


レジスタスタックによる関数呼び出しの高速化
関数呼び出し時のリネーミング
まとめ





単純なVLIWではない
命令セットは複雑であるが、RISCの高速化技法
を数多く取り入れている
コンパイラへの依存が中途半端
代償として構造の複雑化を招く危険性がある
IA-32の実行も可能だが遅い
Simultaneous Multithreading (SMT)

スーパスカラプロセッサ


マルチスレッドプロセッサ


複数命令同時発行
コンテキストスイッチをハードウェアでサポート
SMTは両方の特徴を継承

プロセッサの利用効率が向上
SMTの動作
Issue Slots
Issue Slots
superscalar
fine-grained
multithreaded
superscalar
SMT
Clock Cycles
Issue Slots
スーパスカラとの比較
Instruction Per Cycle(IPC) による比較
SPECInt
OS
superscalar
SMT
無し
有り
3.0
5.9
2.6
5.6
Apache
無し
有り
1.1
4.6
SPECInt : not OS intensive application
Apache : OS intensive application
SMTの利点

並列度をスレッドレベルから命令レベルへ


レイテンシの隠蔽が可能


IPC の向上
OS(kernel)の影響が減少
コンテキストスイッチをハードウェアで実行
ユニプロセッサと並列計算機の境目

どのようなレベルの並列性を利用するか?

ILP(Instruction Level Parallelism)
命令レベルの並列処理

Trace Level Parallelism


Thread Level Parallelism


数命令から成る命令列
一定の大きさの命令列(複数プロセス)
ユニプロ
セッサ
Process Level Parallelism

プログラマ、コンパイラが分割した一定の処理を行う命
令列
並列計算機
同時発行数の増加vs.
プロセッサを接続
単一パイプライン
複数命令同時発行
高性能化
複数Thread同時実行
オンチップ化
共有メモリ、共有レジスタ
プロセッサを接続
密結合
Flynnの分類


命令流(Instruction Stream)の数:
M(Multiple)/S(Single)
データ流(Data Stream)の数:M/S

SISD




ユニプロセッサ(スーパスカラ、VLIWも入る)
MISD:存在しない(Analog Computer)
SIMD
MIMD
SIMD
•全プロセッサが同一命令で
動作
•柔軟性が低い
•Illiac-IV/マルチメディア命令
タイプ(粗粒度)
•CM-2タイプ(細粒度)
命令メモリ
命令
演算プロセッサ
データメモリ
SIMD型の分類

粗粒度型:各ノードで浮動小数点演算処理が可能



ILLIAC-IV,BSP,GF-11
最近の高性能CPUのマルチメディア命令
細粒度型:各ノードは1bitまたは数bitの演算しかできな
い


ICL DAP, CM-2,MP-2
コネクションマシンは応用分野を人工知能に拡大(CmLispの功
績)
CM-2のプロセッサ
Flags
A
B
F
OP
s
256bit
memory
c
C
Context
1bit serial ALU
CM2のプロセッサチップ
4096チップで
64K PE
命令
1チップ構成
Router
P
P
P
P
P P P
P P P
P P P
P P P
4x4 Processor Array
12links 4096 Hypercube
connection
256bit x 16 PE RAM
SIMD型の将来

粗粒度SIMD



細粒度SIMD



大規模なものの復活はないだろう
マイクロプロセッサの高速化技術として小規模なもの
が生き残る
画像処理等で圧倒的に有利
CM2 → CM5のようにマルチプロセッサ化した方が
性能が高い
専用SIMDは、将来大いに伸びる可能性がある
•全プロセッサが自分の命令
を独立に実行
•同期が必要
•汎用性が高い
•様々な構成法が存在
MIMD
プロセッサ
結合網
メモリ(命令・データ)
共有メモリの形態による分類

UMA(Uniform Memory Access Model)


NUMA(Non-Uniform Memory Access M
odel)


どのプロセッサからでも同様にアクセスすることが
できる共有メモリを持つ
共有メモリは持つがレイテンシが異なる
NORA/NORMA(No Remote Memory
Access Model)

共有メモリを持たずメッセージ交換で処理を行う
UMA




最も単純な共有メモリ型
単一プロセッサの延長
プログラム、OSの開発が楽
小規模システムに限られる



バス結合型
スイッチ結合型
システム全体をLSI中に収める動きがある
オンチップマルチプロセッサ
UMAの一例:バス結合型
Main Memory
shared bus
Snoop
Cache
Snoop
Cache
Snoop
Cache
Snoop
Cache
PU
PU
PU
PU
SMP(Symmetric MultiProcessor)として標準部品化
オンチップに格納可能
スイッチ結合型UMA
.
.
.
.
Local Memory
CPU
Interface
Switch
….
Main Memory
スイッチとバスの区別はどんどんなくなりつつある
Stanford’s Hydra
Considerations in the design
of Hydra CSL-TR-98-749,
CPU
CPU
CPU
CPU
L1 I
L1 D
Cache
Cache
Mem. Cont.
L1 I
L1 D
Cache
Cache
Mem. Cont.
L1 I
L1 D
Cache
Cache
Mem. Cont.
L1 I
L1 D
Cache
Cache
Mem. Cont.
Write Through Bus(64b)
Read/Replace Bus(256b)
On-chip L2 Cache
Off-chip L3 Cache Int.
Rambus Memory
interface
I/O Bus Interface
Cache SRAM Array
DRAM Main Memory
I/O
Daytona(Lucent)





MESI Protocol
RISC+DSP
Pipelined operation of bus and memory
controller.
128bit STBus
0.25μm CMOS 4.5m×6mm (small chip)
Daytona(Lucent)
STBus
PE0
L
1
PE1
L
1
PE2
L
1
Memory and
I/O Controller
semaphores
arbiter
PE3
L
1
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
Power4(IBM)
CPU1
L2 Shared
Cache
CPU2
L3 Tags
Chip-to-Chip Interconnect
>100GByte/s
Chip-to-Chip Interconnect
>500MHz
>35GByte/s
>333MHz
>10GByte/s
L3
Cache
Main
Memory
>500MHz,
Wave-Pipelined
Expansion Buses
>10GByte/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
MAJC(Microprocessor Architecture
for Java Computing: SUN)
Rambus
I/O
I-Cache
FU FU FU FU
0 1 2 3
N-UPA
PCI I/O
Graphic
Processor
I-Cache
Switch
Shared
Cache
S-UPA
FU FU FU FU
0 1 2 3
NUMA



それぞれがローカルメモリを持ち、他のプロセ
ッサのメモリをネットワーク経由でアクセスす
る
アドレス変換、キャッシュ制御が必要でハード
ウェア制御が複雑
スケーラブル:


UMAのプログラムがそのまま移植可能
プロセッサ数を大きくした分の性能向上が得られ
る
クラスタ+ソフトウェアDSMと競合中
典型的な構成
Node 0
0
Node 1
1
Interconnecton
Network
2
Node 2
3
Node 3
論理アドレス空間
NUMAの分類

(ただの)NUMA:



CC-NUMA:Cache Coherent



リモートメモリをキャッシュしない
構成が単純、リモートメモリのアクセスにコストがか
かる
キャッシュの一致制御を保証
複雑なハードウェアが必要
COMA:Cache Only Memory Architecture


ホームメモリを持たない
ハードウェアがより複雑
Earth Simulator (2002,NEC)
Peak performance
40TFLOPS
Interconnection Network (16GB/s x 2)
Node 1
7
0
1
…
Vector Processor
1
….
Vector Processor
0
…
Shared Memory
16GB
Vector Processor
Vector Processor
1
7
Node 0
…
Vector Processor
Vector Processor
Shared Memory
16GB
Vector Processor
0
Vector Processor
Vector Processor
Shared Memory
16GB
7
Node 639
SGI Origin
Bristled Hypercube
Main Memory
Hub
Chip
Network
Main MemoryはHub Chipから直接リンクを出す
2PEで1Cluster
DDM(Data Diffusion Machine)
D
...
...
...
...
NORA/NORMA



共有メモリを持たない
交信はメッセージのやりとりで行う
最も単純な構成で最大性能を得ることができる
世界最高性能のスーパーコンピュータは常にNORA
一面、プログラムが難しい。汎用性に乏しい
技術的な問題は、プロセッサ間接続、パケット転送
チップ間接続網とパケット転送
クラスタコンピューティング
Fine grain
SIMD
Coarse grain
マルチプロセッサ
バス結合型UMA
スイッチ結合型UMA
コントロール
フロー制御
MIMD
Simple NUMA
NUMA CC-NUMA
COMA
NORA マルチコンピュータ
シストリックアーキテクチャ
その他 データフロー制御
混合制御
要求駆動
シストリックアーキテクチャ
Data列x
演算アレイ
Data列y
特定の演算能力を持つアレイ列に一定の間隔で
リズミカルにデータを送りこみ、並列演算
帯行列の行列積 y=Ax
y0
a11 a12 0
0
x0
y1
a21 a22 a23 0
x1
0
a32 a33 a34
x2
0
0
x3
y2
=
y3
a43 a44
a
yi
yo
x
X+
yo= a x + y i
帯行列の行列積 y=Ax
a11 a12 0
0
a21 a22 a23 0
a23
a32
a22
a12
a21
a11
X+
x1
0
a32 a33 a34
0
0
a43 a44
帯行列の行列積 y=Ax
a11 a12 0
0
a21 a22 a23 0
a33
a23
a32
a22
a12 y1=a11x1
a21
X+
x2
X+
x1
0
a32 a33 a34
0
0
a43 a44
帯行列の行列積 y=Ax
a11 a12 0
0
a21 a22 a23 0
a34
a43
a33
a23
0
a32 a33 a34
0
0
a32
a22
y1=a11 x1+
a12 x2
y2=a21 x1
X+
x3
x2
x1
a43 a44
帯行列の行列積 y=Ax
a11 a12 0
a21 a22 a23 0
a44
a34
a43
a33
a23 y2=a21 x1+
a32
a22 x2
X+
x3
0
X+
x2
0
a32 a33 a34
0
0
a43 a44
帯行列の行列積 y=Ax
a11 a12 0
0
a21 a22 a23 0
a44
a34
0
a32 a33 a34
0
0
a43
y2=a21 x1+
a22 x2+
a23 x3
a33 y3= a32 x2
X+
x3
x2
a43 a44
シストリックアーキテクチャの
特長




入出力ピン数が少ない
単純な同期制御
近接接続のみで構成可能
1980年代Kungらの提案により注目されたがLSI
実装面積の不足により普及しなかった
他の「VLSIアルゴリズム」と共に復活の可能性
オンチップメモリが活用されないのが問題
データフローアーキテクチャ



データをトークンとして考え、到着と共に計算処
理が駆動される。
記憶要素を明示的に指定しない。
アルゴリズムの持つ並列性を最大限に引き出す
ことができる。
データフローグラフ
d
a
b
c
+
e
x
+
x
(a+b)x(c+(dxe))
命令実行サイクル
命令読み出し
データ待ち合せ
データ読み出し
命令読み出し
命令実行
命令実行
データ格納
あて先指定
通常のプロセッサ
データフローマシン
データフローマシンの問題点





純粋なデータフローマシン(Dennisのマシン)は
無駄が多い。
色付きトークン等の導入でデータフローグラフの
再利用。
構造の複雑化
演算器レベルの処理時間とそれに要する時間
の比率の問題
局所性の無視
Reconfigurable System
(Custom Computing Machine)

SRAM型プログラマブルデバイスから構成さ
れるシステム上で問題の解法アルゴリズムを
直接ハードウェア化して実行する



専用マシンのスピード
汎用マシンの柔軟性
プログラム格納型計算機とはまったく異なる
原理でしかも堂々たる体系を作ることができ
る
しかし誰も騒いでくれない
最近のFPGA/PLD



ゲート数は1000Kゲートに及ぶ(半分嘘だけ
ど、、)
最大動作周波数は設計次第だが30MHz程度
ならば容易に実現
内部データ格納用SRAMを持つ
単純なゲートアレイは、使われなくなっている。
5入力テーブル
SRAM型FPGA
(Field Programmable Gate Array)
スイッチ設定
2 F.F.
I/O
Logic Block
Switch
Configuration Memory
Look Up Table
SRAM型CPLD
(Complex Programmable Logic Device)
I/O
Logic Block
Switch
SRAM(Configuration Memory)
代表的なReconfigurable System

独立実行型
 スタンドアローンで動作


Splash 1・2, RM-I,II,III,IV, FLEMING
コ・プロセッサ型


汎用プロセッサの一部の処理を高速化
PRISM I,II、 DISC II
Reconfigurable Systemの分類

スタンドアローン型
 独立性の高い専用システム


Splash 1・2, RM-I,II,III,IV, RASH(三菱)、
ATTRACTOR(NTT)
コ・プロセッサ型


汎用プロセッサの一部の処理を高速化
PRISM I,II、DISC-II、PipeRench、CHIMAERA,
Chameleonなど
Reconfigurable Systemの発達
Stand Alone Co-processor
1990年 第1回FPL
SPLASH
1992年 第1回Japanese SPLASH-2
FPGA/PLD Conf.
RM-I
RM-II
1993年 第1回FCCM
RM-III
RM-IV
YARDS
1995年
RM-V
2000年
PRISM-I
PRISM-II
New Device
MPLD
WASMII
Cache Logic
DISC
DISC-II
Mult.Context
FPGA
HOSMII
ATTRACTOR
FIPSOC
Cont.Switch.FPGA
RASH
PipeRench
DRL
PCA
CHIMERA
Chamereon
Splash-2 (Arnoldら 92)





米国計算機科学センター
文字列検索、画像処理、
DNAの塩基配列間の距
離を求める問題でCray-II
の330倍の性能を発揮
直線シストリックアレイ構
造
VHDL, 並列Cによるプ
ログラミング
Annapolis Micro
Systems社より商用化
(WILDFIRE)
Splash-II




米国計算機科学センタ
文字列検索、画像処理、DNAの塩基配列間の
距離を求める問題でCray-IIの330倍の性能を発
揮
直線アレイ構造
VHDL,並列Cによるプログラミング
RM-IV(神戸大学)
mem.
FPGA
FPGA
mem.
mem.FPGA
FPGA
mem.
mem.
FPGA
FPGAmem.
mem.
FPGA
FPIC
FPGA
FPGA
mem.
FPGA
mem.
mem.FPGA
FPGA
mem.
mem.
mem.
FPGA
FPGAmem.
mem.
FPGA
FPGA
Interface
mem.
RASH
(三菱電機)
CompactPCI bus
CPUボード
EXEボード
ディスプレイ
Ethernet
LAN
CD
disk
RASH unit
1Unit: 最大6枚のEXEボードとCPUボード(Pentium)
複数のUnitを接続可能
This slide is supported by Dr.Nakajima of Mitsubishi.
&p
70
EXEボードの構成
PCI-bus
リンク接続とバス接続
PCI-bus I/F
PCI Local-bus
EXE-board controller
FPGA
FPGA
SRAM
(2MB)
Clocks/Cont. signals
Local-bus
FPGA
FPGA
2系統のクロック
PCIバスI/F
SRAM搭載
DRAM付加ボード搭載可
FPGA
FPGA
FPGA
FPGA
FPGA Altera FLEX10K100A (62K-158KGate)
&p
71
ATTRACTOR(NTT)
高速シリアルリンク
(1Gbps)
ATM
I/O
RISC
FPGA
RAM
(LUT)
ATM
SW
FPGA
Buffer
RISC
RISC
RISC
RISC
RISC
Ethernet
ATM通信処理に
特化したシステム
MPU
Mem.
Compact PCI
多種類のボードを接続
ボードレベルで再構成可能
コ・プロセッサ型



Core CPUと密接続
プログラムの一部を高速化
最近、Core CPUと同一チップ上に実装が可能
になり、様々なシステムが提案されている

NAPA, Garp, Chameleon, Chimaera,
PipeRench
PRISM II(Brown大学)
Am2955
CPU
Data
Address
Control
Boot ROM
DRAM
Burst Mode
Memory Controller
Switch
DRAM
FPGA Module
FPGA Module
FPGA Module
プログラムのよく使う部分を高速化
コプロセッサ型の元祖
Garp (Hauserら 97)
Memory queue




UCBのプロジェクト
MIPSコアとReconfigurable
Arrayが強結合しメモリ階層を
共有
コンパイラの静的解析により
ループ処理を抽出しハードウ
ェア化
画像処理などでUltrasparcの
43倍の性能
MIPS
Cache
Q Q Q
Crossbar
32bit buses x 5
Reconfigurable Array
DISC (Wirthlinら 95)



Brigham Young大学
動的な部分書き換え機能を用
いた汎用プロセッサ
任意のカスタム命令を基本命
令セットに追加可能



各モジュールをユーザが設計
C言語上から関数として利用
FPGAをカスタム命令モジュー
ルのキャッシュのように使用
FPGA 3
Processor
Core
System
Memory
FPGA 1
FPGA 2
Bus I/F
Configuration
Controller
Custom
Instruction
Space
Host P/C
CHIMAERA (Yeら 2000)





Northwestern大学
スーパスカラプロセッ レジスタ
サのデータパスに可変 ファイル
構造アレイを挿入
シャドウレジスタファイ
ルから9レジスタを一度
に読込み
uPコア
Out of Order制御
10~20%の高速化
シャドウレジスタ
ファイル
可変構造
アレイ
コントローラ
Chameleon(Chameleon社)

Field Programmable System Level
Integrated Circuits (FPSLICs)


疎粒度のReconfigurable Processing Fabric、
RISC Core、PCI Controller、Memory Controller、
DMA Controller、SRAMを1チップ上に混載
信号処理、通信プロトコル処理用、高速DSPの5-10
倍の性能
Chameleon CS2112
32-bit PCI Bus
64-bit Memory Bus
Memory
RISC Core
Controller
PCI Cont.
128-bit RoadRunner Bus
Configuration
Subsystem
DMA
Subsystem
Reconfigurable
Processing
Fabric
160-pin Programmable I/O
CTL中の最大8命令をDPU中で
実行可能
Reconfigurable Processing Fabricの構
造
CTLは、同じサイクルで次の命
令を決定可能
LM
DPU 新しいbit
CTL
LM DPU
streamをloadする
ことで構成を変えられる
Tile 0
Slice 0
CTL
Tile 0
Slice 3
108のDPU(Data Path Unit)が4つのSlice(各3Tile)を構成
1Tile: 9DPU=32bit ALU X 7 16bit + 16bit乗算器 X 2
DPUの構成
OP:C、Verilog演算子サポート
DPU単位のSIMD,パイプライン
Routing
MUX
Routing
MUX
Instruction
Register
&
Mask
Barrel
Shifter
OP
Register
&
Mask
Register
Register
Reconfigurable Systemの
問題点




SRAM型FPGAの演算器は専用CPU,DSPより
も10倍遅く、10倍集積度が劣る
メモリとの接続が脆弱
アルゴリズムを変換するための標準的方法が存
在しない
問題サイズがシステムサイズを越えるとお手上
げ
おわりに



様々な新しいアーキテクチャを概観した
今回の話はイントロのみ
個人的には並列アーキテクチャと
Reconfigurable Systemsに中心を置いて研究
を進めている