...

IPバスコンピュータアーキテクチャと並列処理

by user

on
Category: Documents
18

views

Report

Comments

Transcript

IPバスコンピュータアーキテクチャと並列処理
IPバスコンピュータアーキテクチャと並列処理
(The IP Bus Computer Architecture and
Pararell Processing )
2008年9月 WIDE合宿 研究発表資料
慶應義塾大学 村井研究室
松谷 健史
[email protected]
[email protected]
1
IPバスコンピュータアーキテクチャと並列処理
目次







背景
目的
関連技術
アプローチ
並列処理
設計・実装
評価
 高遅延環境におけるキャッシュの有効性評価
 まとめ
2
背景
 LANの高速化
 バスの制限の問題
 距離、接続数、再構成可能性
 バスのネットワーク化
 シリアル通信
 通信階層
 ハブ接続
 PCI Express
 InfiniBand
 エンドポイントIP化
3
目的
 アプリケーションやユーザの要求に応じてハ
ードウェアを動的に割り当てるコンピュータア
ーキテクチャを実現
 バスの距離と数の制限に関する問題を解決する
 アプリケーションやユーザーからの要求による構成変
更
 遠い場所、長い距離でのハードウェア接続
 多くのCPU 、メモリ、I/O機器の同時サポート
4
CPU,メモリ,I/Oを接続する関連技術





Connection
level
IP-level connections (Software/Hardware implementation)
 iSCSI & USB/IP
Microcode-level connections
 Virtualization
Peripheral buses & networks
 PCI BUS
 PCI Express BUS
 InfiniBand
 RDMA (Remote Direct Memory Access)
 ExpEther
Chipset-level connections (North/South Bridge)
 vPro
Memory interconnects
 NUMA (Non-Uniform Memory Access)
 NORA (No Remote Memory Access), Distributed
Memory
5
ネットワークセントリック・コンピュータアーキテクチャ概念図
CPU Centric・Computer
Network
Centric・Computer
入力回路
Memory
Memory
Memory
Memory
HUB
CPU
CPU
LAN
LAN
Node-1
Client
Node-2
Server
・Node-1と2でプログラム実行
・Node-1でプログラム実行
BUS
・Node-2サーバへの要求
IP Network
・入力回路への要求
・Node-1クライアントへの応答
6
アプローチ
 チップセットレベルでの相互接続
 IPとバスの変換機構を持つIPバスブリッジの開発
 遅延を下げる仕組
 ハードウェアによる専用LANコントローラの設計
 ローカル資源の操作はネットワークを経由しない
 高遅延対策
 キャッシュ機構の設計
 ネットワークにつながる回路との接続性向上
 2つ以上の重なるアドレス空間の接続と動的回路構成の仕組
 TLB(Translation Look-aside Buffer)/PTEによるアドレス変換
 すべての回路にアドレス空間を割り当てる
 TLBレジスタ、CPUレジスタへのメモリ空間割り当て
 常時接続するために
 ハードウェアによるネットワークレイヤの実装
7
TLB Operation
Write Data
$10000
$AC $DE
$30000
$5B $7F
CPU
TLB Register
論理・物理アドレス対応表
CPU /
Device
Logical
Address
$10000
IPバスブリッジ
$40000
$5B $DE
$7F
$20000 $AC
TLB
$50000
$40000
$30000
$20000
$10000
$00000
$AC $DE
Local
Address
$30000
$50000
$40000
$30000
$20000
$10000
$00000
Location
Local
RemoteA
Physical
Address
$20000
$40000
$5B $7F
Remote-A
8
TLB Table Memory Map
TLB Register
$FFFF0000
未定義
Address
Data
TLB Register
$FFFF003C
00081000
4 Host ID (0:Local)等
$FFFF0038
$80000000
4 Physical Address
$FFFF0034
$0003FFFF
4 Logical Address End
$FFFF0030
$00030000
4 Logical Address Start
$FFFF002C
00080100
3 Host ID (0:Local)等
$FFFF0028
$00000000
3 Physical Address
$FFFF0024
$0002FFFF
3 Logical Address End
$FFFF0020
$00020000
3 Logical Address Start
$FFFF001C
00001000
2 Host ID (0:Local)等
$FFFF0018
$80000000
2 Physical Address
$FFFF0014
$0001FFFF
2 Logical Address End
$FFFF0010
$00010000
2 Logical Address Start
$FFFF000C
hhhhLCRO
1 ホストID (0:ローカル)等
$FFFF0008
$00000000
1 Physical Address
$FFFF0004
$0000FFFF
1 Logical Address End
$FFFF0000
$00000000
1 Logical Address Start
未定義
$00040000
$00030000
Remote I/O
Remote Memory
$00020000
Local I/O
$00010000
Local Memory
$00000000
Logical
Address
番号
hhhh:Host ID(0:Local) L:Location(0:Memory 1:Peripheral 2:CPU 3:LAN)
C:Cache R:Replication O:Read Only
内容
9
LANコントローラによる低遅延機構
送信処理概要
Remote Bus
Acess
(FIFO書込)
!"
RJ-45
#$%&
( )*+,-.*/012-)*34*56-7869-:+:9*
#'&
(;<
= )*+,-.*/012-)*34*56-7869046-:+:9* ((<
Send FIFO
MLT-3
$102(END)
$103(CRC32)
Data(nbyte)
Length(2byte
)
Addr(4byte)
Cmd(2byte)
> ?186*-.*/012-)*34*56-7869-:+:9*
(@<
A ?186*-.*/012-)*34*56-7869046-:+:9* (B<
NRZI
CD E+:9*-F8G*-G-85-HGI+J8,-K)*5*1I*,L
4B/5B
PHY
(4Bit)
UDP Header
IP Header
=@<
M E0/NJ*680G-7869-O+6+
)*3P@;<
Q E0/NJ*680G-7869046-O+6+
)*3PE;<
C@ )*NJ8:+680G-.*/012-R1*+
=;<
CB HG6*114N6-)*34*56
>;<
<Send FIFO(ASYNC9Bit)>
Protocol Type
4Bit H
SRC MAC
Dest MAC
$101(START)
4Bit
L
8Bit Data
9B/8B
$00-$FF:Data
$101:プレアンプル部生成指示
$102:Frame終了指示
$103:CRC32の計算書き込み指示
10
CPUレジスタ メモリ空間
Address
Data
+$0088~
内容
Pipeline Register
+$0084
LOW
レジスタLOW
+$0080
HI
レジスタHIGH
+$007C
R31
レジスタ31
+$0078
R30
レジスタ30
--
--
--
+$0020
R8
レジスタ08
+$001C
R7
レジスタ07
+$0018
R6
レジスタ06
+$0014
R5
レジスタ05
+$0010
R4
レジスタ04
+$000C
R3
レジスタ03
+$0008
R2
レジスタ02
+$0004
R1
レジスタ01
+$0000
PC
Program Counter
先頭アドレス標準値:$FFFFF000
MIPS R3000相当のCPU上でス
レーブデバイスとしてレジスタ空間
をアクセスできるように拡張
書き込みを行うとCPUはHALTから解除
11
Intel Multi Processorの起動手順
Processor1
Processor2
Processor3
Processor4
電源オン
BIOS実行
MP対応
OS実行
Boot Strap Processor / Application Processorの決定
BSPに決定
APに決定
APに決定
APに決定
Boot loader
HALT
HALT
HALT
SMP対応OS A
にて割り込み発
行
OS A実行
Interrrupt
OS A実行
Interrupt
OS A実行
OS A実行
Processor間は密結合(同一筐体または同一ダイに存在)
12
CPUレジスタ空間を用いたリモート
Processorの起動手順
MP要求
Processor
1状況
Memor
y
○○○
○
CPU Register
☆☆☆
Processor1
Processor2
Processor3
Processor4
OS A実行
OS B実行
OS C実行
HALT中や
ROMなしCPU
各CPU/TLBレジス
タ空間の読み込み
CPU/TLB Register
CPU/TLB Register
Processor1のメモ
リをさすように各
TLBを設定
Processor1の
CPUレジスタ空間
をコピーする
OS A実行
TLB書込
TLB書込
CPU Register
OS A実行
Processor4
状況
CPU Register
OS A実行
Processor間はIPネットワークによる接続を想定
OS A実行
Memor
Memor
y
y
○○○
××××
○
CPU Register
13
△□○
☆☆☆
実装環境
概要
実装基板
FPGA
32ビットRISCコンピュータ
Xilinx Spartan 3AN Starter Kit
Xilinx Spartan 3AN(70万ゲート)
CPU
FPGA上に実装
オリジナル32bit RISC (12.5MHz)
MIPS I命令サブセット
下記I/O回路をFPGA内に作成
PS/2 Interface
VGA Controller(640×480,80×25)
DMA Controller
I/O
BIOS/Monitor
RAM/VRAM
CGRO
ブリッジ
16K Byte (MIPS Assembler)
24K Byte / 4KByte
4K
本バスブリッジ
FPGA上に実装
データバス幅
32 bit
LAN
100Base-T
バスブリッジ専用
14
IP-BUSワークステーション設計
IP-BUS Bridge
CPU
Decoder
32Bit MIPS
R3000相当
ALU
I-TLB
8Entry
CPU
Instruction
BUS
32 Bit
Command
Local
Memory
Access
CPU
Data BUS
32 Bit
Service
Reply FIFO
Command
Reply FIFO
Service
Service
Recie FIFO
D-TLB
8Entry
Memory
Controller
Memory
BUS
32 Bit
Keyboard
Controller
Remote
Memory
Access
Command
Send FIFO
Memory
BUS
32 Bit
Memory
SRAM(24K)
Clock domain crossing
CLK
Full
Write
Device
BUS
32 Bit
DMA
Controller
ASYNC
FIFO
Data
CLK
Empty
Read
Data
LAN
Controller
Device
Controller
E_TX_CLK
Empty
Read
Data
E_RX_CLK
ASYNC
FIFO
Full
LAN
BUS
Ethernet
PHY Layer
100 Mbps
Write
Data
φ = 25MHz
TLB
Device
BUS
32 Bit
VGA
Controller
FONT ROM
(4K)
15
ワークステーション
デバイスI/O、ビデオ メモリーマップ
TRAM, I/O
未定義
$FFFFF000
$FFFF0000
$FEE00000
$F8000000
$F0001000
$F0000000
内容
RS232C(DATA)
$F8000030
RS232C(W:Mode/W:Status)
未定義
$F800002C
$70
Color:b6-4:Fore b2-0:Back
$F8000028
0,1
0:width40 1:width80
未定義
$F8000024
0~24
CRTC: Cursor Y
I/O
$F8000020
0~79
CRTC: Cursor X
未定義
$F8000010
LED / SWITCH
$F8000000
KEYBOARD
$F8000000
I/O開始
$F0000F9F
テキストVRAM終了
Local APIC
Text RAM
$00004000
RAM/ROM
$F0000F00
$00200020
25ライン目
$F0000E60
$00200020
24ライン目
$F0000280
$00200020
4ライン目
$F0000140
$00200020
3ライン目
$F00000A0
$00200020
2ライン目
$F0000000
$00200020
1ライン目 (AATTAATT形式)
$F0000000
物理アドレ
ス
データ
$F8000034
未定義
$00000000
アドレス
CPU Register
TLB Register
テキストRAM開始(80
25)
16
評価
 機能評価
 実装機能が動作し、ネットワーク経由でCPU、メモ
リ、I/O機器の動的増設および共有ができること
 高遅延環境におけるキャッシュの有効性の評
価
!"
5&,7895&,78:;<=456>?@
B$%&C$95&,78:;<=456>?@
5&,789B$%&C$:;<=456>?@
B$%&C$9B$%&C$:;<=456>?@
#$%&'(
A
A
A
A
)$*+,$
A
A
A
A
-./0123 4560123
A
A
A
A
A
A
A
A
17
パフォーマンス
Data BUS=32bit (4byte)
18
LAN環境で接続したCPUとメモリ
1万回の数値演算実行時間
Program Size
Cache Line
キャッシュヒット数
キャッシュミス数
キャッシュヒット率
: 192バイト
: 64バイト
: 10,002回
:
3回
:99.979%
理論実行時間= ローカルでの実行時間(ms) + キャッシュのミス数
× (リモートでの4byte読み込み時間 + 60バイトメディア転送時間)
■Ethernet, TP(キャッシュ有)の場合
= 0.97 + 3 × ( 0.00789889 + 0.0048) = 1.01
■Ethernet, HUB(キャッシュ有)の場合
= 0.97 + 3 × ( 0.02639915 + 0.0048) = 1.06
19
リモート環境で接続したCPUとメモリ
100万回の数値演算実行時間
Program Size
Cache Line
キャッシュヒット数
キャッシュミス数
キャッシュヒット率
:
192バイト
:
64バイト
:1,000,002回
:
3回
:99.9997%
理論実行時間= ローカルでの実行時間(ms) + キャッシュのミス数
× (リモートでの4byte読み込み時間 + 60バイトメディア転送時間)
■遅延16ms(キャッシュ有)の場合
= 970 + 3 × ( 16.0025604 + 0.0048) = 1018
■遅延200ms(キャッシュ有)の場合
= 970 + 3 × ( 200.400802 + 0.0048) = 1571
20
まとめ
 まとめ
 200ミリ秒の高遅延環境でも高いキャッシュヒット率であれば、演
算ができることを確認した
 ハードウェアにおける拡張の制限を取り除くため、バスのプロトコ
ルとインターネットプロトコルとを相互に変換するIPバスワークス
テーションを設計し、実装、評価し、CPUとメモリとI/O拡張ができ
ることを確認した
 Future work
 OS(Linux)の稼働と必要な機構の実装
 Interrupt信号、IDE Device Support





エラー時のリカバリー(リトライまたは他のノードへ送信してFT等)
高遅延環境における排他制御手法の確立
リソース管理
21
セキュリティ対策
高速化(TLB内プリフェッチ予測)
参考 スクリーンショット
22
Fly UP