Comments
Description
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