...

CPU - 山中卓研究室

by user

on
Category: Documents
1

views

Report

Comments

Transcript

CPU - 山中卓研究室
PIENU実験のための
COPPER 500MHz Flash-ADC システムの開発
室井章(大阪大学久野研究室)
青木正治、久野良孝、吉田誠、山田薫(大阪大学)
五十嵐洋一、田内一弥、池野正弘(KEK)
2007/12/25
久野・山中研 合同年末発表会
発表の流れ
PIENU実験と私の担当
COPPER(Common Pipelined Platform for Electronics Readout)を用いた読み出しシステムの構築
COPPER Flash ADCシステム概観
2006年冬ビームテストでのDAQ/今後の要求
データサイズ、DAQレートのスタディ
on-FPGAデータサプレサの開発について
まとめ、今後の予定
PIENU 実験と私の担当
崩壊分岐比 R = Γ( π+ →e+ νe ) / ( π+ →μ+ νμ ) の精密測定
理論計算 RSM = 1.2350 ± 0.0004 × 10-4 [0.03%]
R0 = Γ
!
π + →e+ ν
π + →µ+ ν
"
ge2 m2e
= 2 2
gµ mµ
!
m2π − m2e
m2π − m2µ
"2
∼ 10−4
Rexp = 1.2265 ± 0.0034 ± 0.0044 × 10-4 [0.5%] (1992,TRIUMF )
2008年夏、DAQ開始予定 @ TRIUMF [0.1%以下を目指す]
COPPERモジュール (KEK)
ドーターカード × 4 (Flash-ADCカードなど)
COPPERモジュール
1 MB FIFO × 4
PMCスロット × 3 (EPC6315 800MHz Pentium Ⅲ-M)
ネットワークでホストPCへ転送
ターゲット、その他カウンタの読み出しに用いる
COPPER-FADCで取得した波形
Finesse 500MHz Flash-ADC card
Flash ADC (8 bit / 500 MHzサンプル , 2 ch )
FIFO ( 1.9 KB × 2 × 2 ch )
FPGA ( Field Programming Gate Array )
Flash-ADC
ドーターカード
上位ロジックからゲート、トリガ、リセットを受ける
7.8 μs 前∼トリガまでのデータを記録(BG π , μ )
dead time = 45 μs
C O P P E R ( CPU )
F I N E S S E ( FPGA)
2ch
32 b
125MHz
1ch 250MHz
FADC
FADC
FIFO
32 b
125MHz
EPC6315
800MHz Pentium Ⅲ-M
32 b
21MHz×2
EVENT
FIFO
FPGA
PCI
32 b
32 b
42MHz
gate , trig
buffering
CPU
100Mbps
host PC
2008年本実験ランで必要な
DAQパフォーマンス
2006beamtest → 2008本実験ラン
ビームレート
78 kHz → 96 kHz
π レート
25 kHz eレート
37kHz → 10 kHz
μレート
16kHz → 26 kHz
トリガーレート
1.4kHz → 3 kHz∼
入力データサイズ(ゲート幅)
31.2 KB ( 7.8μs ) → 31.2 KB
出力データサイズ( 4 Finesse分 )
0.92 KB → 0.92 ~ 1.1 KB
COPPER最大DAQレート
→ 60 kHz
2.3 kHz → 4 kHz ∼
現在の最大値
必要なDAQレート
‘06 冬ビームテストビームレートの向上
アブソーバのインストールでeレートは約12kHzまで下がり、トータルでは約
1.2倍のビームレートになる。
システムの最大DAQレート、4kHz以上である必要がある。(改善が必要)
トリガーレート vs DAQレート
同サイズの擬似シグナルでレートの限界を調べた。
COPPER DAQレート[kHz]
12
[%] [Mbps]
・ DAQレート[kHz]
CPUフル稼働
・ Network速度[MB/s]
10
100
DAQ上限 ∼ 2.3 kHz
CPU の稼働率とともに達する
100
・ CPU稼働率[割]
C P U
8
6
50
・ゼロサプレション
50
(7.8 KB × 4 =) 31.2 KB → 1.1 KB
4
@ 2006 ビームテスト
2
0
0
1
2
3
トリガーレート[kHz]
4
0
5
・データのフォーマッティング
0
CPUでのゼロサプレション
Clock数を記録・サプレス
Threshold
Margin HEAD
HIT
Margin TAIL
Margin HEAD
HIT
Margin TAIL
FPGA処理、CPU処理にかかる時間
F I N E S S E ( FPGA)
C O P P E R ( CPU )
32bit
125MHz
2ch
1ch 250MHz
FADC
EPC6315
800MHz Pentium Ⅲ-M
FADC
FIFO
32bit
125MHz
EVENT
FIFO
FPGA
32 bit
21MHz×2
CPU
32 bit
32 bit
42MHz
100Mbps
buffering
host PC
処理時間の違い
45μs
PCI
FPGA処理(FADC FIFO → EVENT FIFO)
420 μs ( = 2.3 kHz -1 )
CPU処理
(ゼロサプレス、フォーマッティング)
データサイズとDAQレートの依存性
ゲート幅を変えて、CPU処理時間をスタディした
16 KB以下のデータサイズ・・・4
kHz以上のDAQレート を実現できることがわかる
サプレス後 ~ 1 KB
CPU稼働率[%]
90
Network速度[Mbps]
100
11
10
9
8
DAQレート
[kHz]
50
7
6
目標
50
5
現在
4
3
2
41
28
3
12
4
16
5
20
6
24
7
28
8
32
0
0
CPUが処理するデータサイズ[KB]
FPGA でもデータサプレスをし、CPU処理の負担を軽減する
FPGAデータサプレション
FPGA中のRAM ( 36 bit × 512 )
RAMにデータを一時格納、不要なデータはClock数のみ記録
ラフなサプレス( ブロック化 RAM の使用)
1ワード=32bitごとのサプレスは必要ない(より単純なアルゴリズムで充分)
7.8KB = 2000ワード を50ワード単位( = 1 ブロック )でバッファリング→サプレス
HITがあるブロック+前後1ブロック (パルス直前後の情報を記録するため )
RAMを4分割して
HIT
Margin
用いる
50
pedestal
HIT
HIT
HIT
pedestal
Margin
Margin-TAIL(読み出し開始)
Margin-HEAD(読み出し開始)
サプレス
HIT
pedestal
Margin
pedestal
32 b
・・
HIT
Margin
Margin
HIT(読み出し開始)
HIT(読み出し開始)
FPGAデータサプレション
約 1/10 のサイズにサプレス
平均有効データ∼ 60ワード ~ 2 ブロック
前後 1 ブロックと合わせて 4 ブロック ( 40 ブロック中)
COPPERへの転送の前に、RAM書き込み/読み出し部分を追加
データの流れ
RAM
write
component
FADC
FIFO
read
component
COPPER
内部シグナルで
ブロックごとに制御
読み出しを制御
RAM_state
full,empty,hit
外部からgate , trig
F P GA
RAMへの読み書き【開発中】
RAMへの読み書きは正常に動作→コンパレータ部分のデバッグ中
デッドタイムの見積ができた(45μs → ~ 50 μs )
GATE
FPGAデッドタイム
∼50μs
『2nd ブロック書込中』
『2nd ブロック読出中』
FPGAサプレスによるCPU処理の軽減
平均有効データ ∼ 240 B = 60 ワード
読出ブロック ~
4 ブロック / 40ブロック(2000ワード)
→ 1/10のサプレス
デッドタイムは +5μs 程度(サプレションファクターによらない)
CPU処理は大幅に短縮される( 3.1 KB → 1 KB なら 最大10
FPGA処理のデッドタイム
データサイズ
FADC FIFO
31.2 KB
kHz (前述のスタディより))
変更前
45μs
変更後
50μs
FPGAサプレス
3.1 KB
COPPER FIFO
a
CPU処理時間
変更前
420 μs
CPUサプレス
変更後
1 KB suppressed data
100 μs
CPUの処理時間が大幅に短縮
Summary
COPPER 500MHz Flash-ADCシステムを用いて、ターゲット中の波形を記録する。
COPPERボード上のCPUにより、ソフトウェアでゼロサプレスしている
平均 1 / 30 のサプレスを行っており、DAQレートの上限に関わる
処理データサイズとDAQレートの関連をスタディした
本番のために、DAQレートを向上させる(4 kHz 以上)
FPGAで10%にデータサプレス、COPPERへ転送するようにする
FPGAのデッドタイム: 45μs → ~50μs 程度
CPU処理時間:420μs → ~100μs に短縮( 10 kHz のDAQが可能になる)
FPGAサプレッサを完成させる(現在はコンパレータ部分の実装・デバッグ段階)
BACK UP SLIDES
Suppress on Local FPGA
DAQレート[kHz]
14
11MB/s ~ 90Mbps
12
10
4.2 kHz
8
2.3 kHz
6
4
2
2
3
32bit
FIFO
32bit
32bit
5
6
7
8
ゲート幅[μs](入力サイズ)
D[31:0]
IN
Address[8:0]
36 × 512
O[31:0]
WCLK
WEN
RAM Location
FPGA
Yes
Threshold judge
FIFO
No
COUNTER
suppressed
data
32bit
~4μs
32bit
32bit
32bit Local bus
FADC
・・・・・・・・・
32bit
4
・・・・
1
・・・
0
On-board suppressor
EVENT FIFOのデータを読み込み、
data > threshold となるワードを転送
DMA
I/O メモリ
CPU
31.2kB
raw data
(8μsゲートの場合)
network
~1kB
suppressed data
local FPGAで制御
データの流れ
sample数
data size( /event)
suppressed size ( /event)
DAQ rate
4000
31.2 kB
~ 1 kB
2.3 kHz
2000
15.6 kB
~ 1 kB
4.8 kHz
1000
7.8 kB
~ 1 kB
7.7 kHz
500
3.9 kB
~ 1 kB
10 kHz
CPU使用率
COPPER board block diagram
local FPGAで制御
on-board
processor
Processor PMC
RadiSys社
400MHz ULVCeleron
650MHzCeleron
800MHz Pentium III -M
プロセッサ搭載
31.2KB ÷ 4 = 3.9KB での
deadtime = 45us
COPPER 500MHz Flash-ADC system
・Flash-ADC card
- 8bit 250MHz FADC ×2 => 500MHz sampling ×2 ch
- FADC → 2KB FIFOバッファ → COPPER event FIFOへと転送(42MHz)
・COPPER module
- 4 front slot , PMC slot ,Trigger module slot
- 1 MB × 4 FIFO
・Processor
- PMC上のプログラムで不要データをサプレスしている
COPPER マザーボード
- 1イベントあたり8μs Gate = 4000 sample point = 31.2 KB (4 finesse)
- 31KB から1KB 程度へサプレス、1.4kHzのパフォーマンスを実現
- 処理するデータサイズでレート上限決まる
DAQ limit study
1 Finesse分のメモリ
全データ
有効データ
サイズ
サイズ
0B
∼ 256 B
25.6 B
∼ 3.9KB
0.08us
∼ 7.8us
(CPU処理)
2ch × 4 finesse = ×8
CPU使用率 =
CPU使用率 =
Local FPGAのevent FIFOへ
DAQレート
転送するデッドタイム
DAQレート
vs 全データサイズ
vs 有効データサイズ
vs 全データサイズ
( 有効データにはよらない )
( 有効データ
= 120 B × 8 =950B /event で一定 )
( 全データ= 7.8usで一定 )
CPU処理時間が制限するデッドタイム =
( 全データサイズ) × 12.3 us + (有効データサイズ) × 48.5us + 10.7us
Data size vs DAQ Rate
CPU稼働率 Network速度
[%] [Mbps]
DAQレート[kHz]
90
10
100
サプレス前 ~ 30 KB
8
80
70
60
50
6
4
50
40
0
0
2
0
0
5
10
15
サプレス後データサイズ
(擬似シグナルの幅により決まる)
20
Fly UP