alice-trd digital chip falk lesser kirchhoff institut für physik [email protected]
TRANSCRIPT
2
Inhalt
• Ziele des ALICE-Experiments
• Das TRD-System
• Lineare Regression
• Implementierungsansätze
• Der Prozessorkern femtoJava 1
• Projekt-Status
3
Ziele des ALICE-Experiments• ALICE ist eines der vier großen Experimente am LHC
• Studien am Quark Gluonen Plasma (QGP)
• Ereignisrate beträgt 4*103 Kollisionen pro Sekunde (Pb + Pb)
• Teilchenmultiplizität von etwa 16000 Teilchen in der Akzeptanz des Detektors (zentrales Event)
• Suche nach high pt Elektron-Positron Paaren (e+ e-)
– Teilchen mit einem Transversalimpuls 3 GeV/c
– 5 % aller zentralen Pb + Pb beinhalten e+e- -Paare
– Identifizierung der Teilchen über die Ablenkung in r/ -Ebene
– Ablenkung der gesuchten Teilchen < 2.0 mm bei pt 3 GeV/c
– ohne Trigger jährliche Produktion Y = 1000
• Trigger auf interessante Ereignisse
4
Gesamtübersicht des Detektor
• TRD umgibt die TPC
• TRD ist der Level 0 Trigger der TPC
• TPC besitzt sehr lange Latenzzeiten
• Anforderung: Gute Spurauflösung, schnelle Triggerentscheidung
• Pionenunterdrückung
• Verarbeitet Daten aus 1.2 Millionen Kanälen (occupancy = 12 %)
5
Der Detektor
• (TR) -Photonen werden emittiert beim Übergang eines Teilchens durch zwei Medien unter-schiedlicher Dielektrizitätskonstanten 1 => 2
• Intensität der Übergangsstrahlung | 2 - 1 |
• Abgestrahlte Intensität Lorentzfaktor L
(Identifikation); Hochrelativistisch L >> 1
• Elektronen L = 2000 (Größenordnung)
• Partikel ionisieren Gas (Xe/CO2 oder Xe/C4H10) und setzen freie Elektronen ab
• Elektronen driften entlang eines elektr. Feldes
• Detektion am Auslesepad
• Insgesamt 1.2 Millionen Auslesekanäle
Pionenunterdrückung:
Track-Detection:
6
Zeitablauf
• Alle e+ e- mit minimaler Ablenkung sollen gefunden werden
• Ermittlung der Position, Winkel und Amplitude aller high pt tracks Infos zur Track Matching Unit (TMU).
• Datenreduktion von 1800 Hz (clean min bias) auf 40 Hz (e+ e-) Ereignisrate
• Selektion der steifen Tracks über lin. Regression parallel für alle Lagen
• Berechnung der Regressionsparameter in Echtzeit
• Berechnung charakteristischer Werte mit Hilfe einer microCPU
• Berechneten Werte in 32 Bit-Wert zusammenfassen und an TMU übergeben
• TMU korreliert Spursegmente und fällt Triggerentscheidung
7
Datenauslese
• 12 % Occupancy bei Detektoroberfläche von 108 m2 (plane 1)
• 200 000 Pads/Lage => 4,5 cm2 pro Pad
• Ladungsteilung zwischen benachbarten Pads
• Ortsauflösung von 200 m
timebin
Pad
Amplitude
8
Simulation
• Teilchenmultiplizität von etwa 16000 Teilchen/s (Pb + Pb)
• Anzahl der Kanäle 1.200.000
• 30 Werte pro Kanal (Timebins)
• Sampling rate 15-20 MHz
• Auflösung der ADCs 8 Bit
• Gesamtaufkommen an Rohdaten 36 MByte
Erste Simulation:
9
Datenaufkommen
Berechnungsdauer: 2 s Driftzeit
Datenformat: 8 Bit/pro Timebin und Kanal
Rohdaten: 30 Bytes pro Ereignis
Daten: 30 Bytes x 1.2 Millionen Kanäle = 36 MByte
Insgesamt : 18 TByte/s
. .. . .
timebin
Elektronik: Auf dem Detektor
10
Datenanalyse
timebin
Pad-No.
30
ab
11
min)]([ 2
1
i
n
i
bxayi
Algorithmus• Insgesamt 5 s Verarbeitungsdauer davon 2 s Driftzeit
• Positionen und Fit-Parameter während der Driftzeit bestimmbar
• Stichprobenwerte (xi, yi): i = 1, 2, ... N
• x-Wert ist diskret (timebin), y-Wert ist gemessene Position (Spur + Meßfehler)
• KQ-Methode:
• Zu Berechnen sind die Erwartungswerte für a, b
Regressionsgerade:
N yi xi - xi yi
N xi2 - (xi)2
yi xi2 - yi xi xi
b =
a =N xi
2 - (xi)2
y(x) = a + bx
2=
AP+1 - AP-1
N-1 [yi - ( a + bx)]2
AP-1 + AP + AP+1
yi =
12
Anforderungen
xi = Summe Timebin
yi = Summe Ort
xi yi = Summe Ort * Timebin
yi = Ort
A = Achsenabschnitt
Während der Driftzeit: Nach der Driftzeit:
B = Steigung
Allg. Größen = f( yi, xi)
2 = Qualitätsmaß für den Fit
N = Hitcount
Keine Iteration notwendig am Ende der Driftzeit! Zeitersparnis 2 s
Pipelineverarbeitung in Hardware:
yi =xi
yi
xi yi
yi2
Calculate sums Calculate Position
Calculate fit summands
xi yi xi2
xi2
yi2
DiDo
x i <
497
x
i2 < 1
0417
y
' i2 <
307
53
y'
i < 9
93
x
i y' i <
153
77
Sum Memory
8
8
8 5 +1
15
14
14 +1 3
4 Op. 3 Op. 6 Op. 12 Op.
64 64
AP+1
AP
AP-1
AP+1 - AP-1
AP-1 + AP + AP+1
13
Rechenleistung im Vergleich
Notwendige Operationen: Lineare Regression
Ziel: Geradengleichung
Regressionsparameter : 25 Operationen pro Timebin
30 Werte pro Track: 750 Operationen pro Track
Werte a, b: 11 Operationen für jeden Parameter
Wert 2 : 30 Operationen
Insgesamt: 791 Arithmetische Operationen (AOPS)
16 000 Tracks: 12,656 * 106 Arithmetische Operationen
Rechenzeit 2 s 6,328 * 1012 AOPS insgesamt
y(x) = a + b x
14
Lösungsansatz
Problem: Gesamtaufkommen an Daten: 18 TByte/s
Erforderliche Rechenleistung: 6,328 * 1012 AOPS
Lösung: Netzwerk aus 75 000 CPUs
Jeder Kanal berechnet die Regressionsparameter
microCPU verarbeitet die Daten von 16 Kanälen
• 16 (18) Verarbeitungskanäle auf jedem Chip
• 16 HSLP-ADCs für jeden Chip • Funktionseinheiten von 16
Kanäle auf MCM• Algorithmen in Java-Bytecode• AMS035 CMOS-Technologie
I II III
15
I/O-Daten der Fit-Logik
• Input-Daten– 8 Bit (256 Quantisierungsstufen)
– 16 Datenkanäle + 2 benachbarte Kanäle
– Samplingrate 15-20 MHz (62,5 - 50 ns)
• Output Daten– 32 Bit Ausgabedaten teilen sich auf in
• r Position 11 Bits
• Korrigierter -Winkel bzw. Displacement 5 Bit
• z-Position 6 Bits (Position aus Chip-Nummer, Padrow, Sektor)
• Amplitude 8 Bits
• TR-Qualität 2 Bits
16
ImplementierungsansätzePad 1 Pad 2 Pad 3 Pad 8 Pad 9 Pad 10 Pad 16
TH
-Log
ic
TH
-Log
ic
TH
-Log
ic
TH
-Log
ic
TH
-Log
ic
TH
-Log
ic
TH
-Log
ic
Sub
A5 ... A8
A1 ..A4
Div
Zentr.Zentr.
RegReg
Evt
. Buf
fer
Selektion der OperandenSelektion der Operanden
Shift
Sub
A5 ..A8
Div
RegReg
Shift
A1 ... A4
Sub
A9 ..A12
Div
RegReg
Shift
Sub
A13 ..A16
Div
RegReg
Shift
A9 ... A12 A13 ... A16
RegRegRegReg yy y y
17
Ausschnitt aus der TH-Logik
TH TH TH
Comp
Pad 1 Pad 2 Pad 3 Pad 8
Comp Comp CompComp
Pad 9
& & & &
& & &
Zentr. Zentr. Zentr.
Sum
SumSum
Selektion der ADC-Werte:
• AP-1 + AP + AP+1 > TH
• (AP-1 < AP) & (AP+1 < AP)
Datenreduktion:
Faktor 4
(30 x 1 Byte => 4 x 1 Byte)
Die virtuelle Java Maschine
• Definition eines abstrakten Maschinenmodells
• Funktionale Verhalten ist genau spezifiziert
• Spezifikation der JVM ist von Implementierungsdetails entkoppelt
• Flexibler Triggercode
• Ideal spezifizierter Prozessor
Quellprogramme
A.javaA.java
B.javaB.java
C.javaC.java
JavaCompilerJava
Compiler
Kompilierte Programme
A.classA.class
B.classB.class
C.classC.class
Kompilierte Programme
A.classA.class
B.classB.class
C.classC.class
Execution Engine
Class-Loader
Standard Java-Klassen (API)
X.classX.class
Y.classY.class
Z.classZ.class
JavaVirtual
Machine
19
Spezifikation der JVM
• Befehlssatz besteht aus 201 Opcodes
• Laden/Speichern
• Arithmetische/Logische Befehle
• Typumwandlungsbefehle
• Befehle zur Verwaltung des Operandenstapels
• Kontrolltransferbefehle
• Befehle zum Erzeugen und Manipulieren von Objekten
• Spezialbefehle:
– N yi xi - xi yi
– N xi2 - (xi)2
• Befehlsformat 8 Bit
• Datenformat 32 Bit (hier 16 Bit)
Hardwarestruktur des femtoJava 1
• Dreistufige Pipelinestruktur
• Fetch/Decode (Pipe 1)
• Fetch Operands, Execute Control, Write Back (Pipe 2)
• Execute (Pipe 3)
Pipe 2Pipe 2Pipe 1Pipe 1 Pipe 3 (4)Pipe 3 (4)
Data-MemoryData-Memory
Instr.-MemoryInstr.-Memory
KontrollsignaleVerarbeitungsdatenReset
Initialisierung
Kontrollsignale
Instruktionen
femtoJava 1
Instruktionen
21
Die erste Pipelinestufe
idleidle
fetchfetch
decodedecode
fetch2fetch2
GoPipe 2
GoPipe 2
Aktivität an Pipelinestufe 2
300 301 302
goto Op 1 Op2
goto
Operand 1
Operand 2
Instruktionswort zu goto
Konstante zu goto
Kontrolleinheit
Clk
Read_instr
Instr_ready
Instr_addr
Opcode
Code
temp1
temp2
anweisung
const
Temp 2Temp 2Temp 1Temp 1CodeCodeConstConstAnweisAnweis
InstruktionsSpeicher
InstruktionsSpeicher
PC-LogikPC-
Logik
Addr.BefehlsDecoderBefehlsDecoder
Kontroll-Einheit
Kontroll-Einheit
Datenpfad
Pipelinestufe 2Pipelinestufe 2
Opcode/Data
Start
1. LZ
2. LZ
Decode abgeschlossen
Reset
LZ fortsetzen
Neuer LZ
LZ fortsetzen
LZ fortsetzen
22
Kontrolleinheit der zweiten Stufe
ReaddecodeReaddecode ExecutedecodeExecutedecode WritedecodeWritedecode
ExecuteALU-CtrExecuteALU-Ctr
Write_ix8Write_ix8 Write_ix_1Write_ix_1 Write _ixWrite _ix
Write_ix8_d1Write_ix8_d1 Write_ix1_d1Write_ix1_d1 Write _ix_d1Write _ix_d1
Write_ix8_d2Write_ix8_d2 Write_ix1_d2Write_ix1_d2 Write _ix_d2Write _ix_d2
Write _ix1_3_1Write _ix1_3_1 Write _ix1_3_2Write _ix1_3_2 Write _ix1_3_3Write _ix1_3_3
Write _ix1_4_1Write _ix1_4_1 Write _ix1_4_2Write _ix1_4_2 Write _ix1_4_3Write _ix1_4_3
Write _ix1_4_6Write _ix1_4_6 Write _ix1_4_5Write _ix1_4_5 Write _ix1_4_4Write _ix1_4_4
Read_ix8Read_ix8
Read_ix8_2Read_ix8_2
Read_ixRead_ix
Read_ix_2Read_ix_2
Read_ix_2d1Read_ix_2d1
Read_ix_2d2Read_ix_2d2
• Readdecode: Daten laden
• Executedecode: Operationen der ALU steuern
• Writedecode: Speichern von Daten
Pipe 1
Zeitgleich zum WBnächsten Fetchzyklus
23
Datenpfad der zweiten Stufe
Pipelinestufe 3Pipelinestufe 3
Pipelinestufe 1Pipelinestufe 1
constconstanweisunganweisung opcodeopcode Temp 1Temp 1 Temp 2Temp 2
R5R5R4R4R2R2R1R1
DatenSpeicherDaten
Speicher
ExtensionExtension
KontrollEinheit
KontrollEinheit
VorzeichenCheck
VorzeichenCheck
vars
vars
Opt
opO
ptop
AddAdd
AddAdd
• Vorverarbeitung der geladenen Daten und Operanden
• Laden und Speichern von Daten
• Zusammensetzen geladener Daten
• Alle Datenpfade sind vollständig voneinander entkoppelt
Funktion:
AddAdd
AddAdd
24
Kontrolleinheit der dritten Stufe
ExecutedecodeExecutedecode WritedecodeWritedecode
Lmul1Lmul1
Lmul2Lmul2
Lmul3Lmul3
ALUALU
Go_WBGo_WB
idleidle
• Steuerung der ALU-Operation
• Decodierung des ALU-Steuerwortes
• Freigabe des Ausgangsregisters
Funktion:
ReaddecodeReaddecode
Nächster Fetch
ALU-Operation selektierenALU-Operation selektieren
Freigabe Register
Execute Ready
25
Datenpfad der dritten Stufe
Pipelinestufe 2Pipelinestufe 2
R2R2R1R1 R4R4 R5R5
AssembleAssemble Typkonv.Typkonv.
ShiftShift Add/SubAdd/Sub BoolscheBoolsche
R6R6
MACMAC
Temp RegTemp Reg
C1 C2
C3
AssAss
• ALU verarbeitet 44 Befehle
• 17 Vergleichsoperationen
• 16 Arithmetische/Logische
• 6 Schiebeoperationen
• 5 Typkonvertierungen
• 42 Befehle werden innerhalb eines Taktes verarbeitet
• Aufwendige Befehle (64 Bit Mul) werden innerhalb von drei Takten verarbeitet
Funktion:
26
Hardwaresynthese Xilinx FPGA-Bibliothek:
• Gesamtentwurf umfaßt 3615 CLBs
• Kritische Pfad besitzt Signallaufzeit von 254 ns (ca. 4 MHz)
AMS08 Standardzellenbibliothek
• Gesamtentwurf umfaßt 38,63 mm2 Chipfläche
• Kritische Pfad besitzt Signallaufzeit von 62 ns (ca. 16 MHz)
• Gatteräquivalent von 29834 Gatter
AMS035 Standardzellenbibliothek
• Gesamtentwurf umfaßt 7,27 mm2 Chipfläche (femtoJava 2)
• Kritische Pfad besitzt Signallaufzeit von 19 ns (ca. 52 MHz)
Test-Layout des femtoJava 1
27
Projektstatus
• Implementierung der „Linear track fit engine“– Simulationsmodel liegt vor und wird iterativ verbessert
– Werte aus Simulation bestimmen die Implementierungsstruktur der Hardwarerealisierung
• Erster Prototyp der microCPU ist vorhanden– Hardwarerealiesierung der LTFE liegt vor (VHDL-Modell)
– Tape out Q1 `00
– Nächster Designschritt der microCPU Q2 `00