ALICE-TRD digital chip - Inhalt

 
WEITER LESEN
ALICE-TRD digital chip - Inhalt
ALICE-TRD digital chip

        Falk Lesser
        Kirchhoff Institut für Physik
        lesser@kip.uni-heidelberg.de

                                        Inhalt

    •   Ziele des ALICE-Experiments
    •   Das TRD-System
    •   Lineare Regression
    •   Implementierungsansätze
    •   Der Prozessorkern femtoJava 1
    •   Projekt-Status

2

                                                 1
ALICE-TRD digital chip - Inhalt
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

3

                   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 %)
4

                                                                             2
ALICE-TRD digital chip - Inhalt
Der Detektor
                                          Pionenunterdrückung:
                                          • (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)
                                          Track-Detection:
                                          • 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

5

                                                                  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
6

                                                                                              3
ALICE-TRD digital chip - Inhalt
Datenauslese

                                        Amplitude

                                                                        Pad

                                                              timebin

    •   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
7

                                                            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:

8

                                                                              4
ALICE-TRD digital chip - Inhalt
Datenaufkommen
                            Datenformat:                 8 Bit/pro Timebin und Kanal
                  .
           ..               Berechnungsdauer:            2 μs Driftzeit
     . .
                  timebin   Rohdaten:                    30 Bytes pro Ereignis

                            Daten:              30 Bytes x 1.2 Millionen Kanäle = 36 MByte

                                                Insgesamt : 18 TByte/s
                            Elektronik:                  Auf dem Detektor

9

                                                         Datenanalyse
                Pad-No.

                                                                                 30

                                                                             timebin

                                        a
                                            b

10

                                                                                             5
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)
                                            n
       • KQ-Methode:                       ∑ [ y − (a + bx )]
                                           i =1
                                                  i
                                                                    i
                                                                        2
                                                                            = min

       • Zu Berechnen sind die Erwartungswerte für a, b

                       N ∑yi xi - ∑xi ∑yi                                       yi =
                                                                                              AP+1 - AP-1
           b=
                       N ∑xi2 - (∑xi)2                                                     AP-1 + AP + AP+1

                       ∑yi ∑xi2 - ∑yi xi ∑xi
           a=                                                                   χ2= N-1 ∑ [yi - ( a + bx)]2
                       N     ∑xi2      -   (∑xi)2

           Regressionsgerade: y(x) = a + bx
 11

                                                                                           Anforderungen
       Während der Driftzeit:                                                   Nach der Driftzeit:

       N = Hitcount                                                              A = Achsenabschnitt
       yi = Ort                                                                  B = Steigung
       ∑xi = Summe Timebin
                                                                                 Allg. Größen = f(∑ yi, ∑xi)
       ∑yi = Summe Ort
                                                                                 χ2 = Qualitätsmaß für den Fit
       ∑ xi yi = Summe Ort * Timebin

                    Keine Iteration notwendig am Ende der Driftzeit! Zeitersparnis 2 μs

  Pipelineverarbeitung in Hardware:                                                                            64
                                                                                     Do              64                                         Di

                     Calculate                    Calculate fit                  Calculate sums
                                                                                                                                       ∑ xi y'i < 15377

AP+1 8
                                                                                                                                                                          ∑ y'i2 < 30753
                                                                                                                                                          ∑ xi2 < 10417

                     Position                     summands              15
AP 8
                                                                                                                          ∑y'i < 993
                                                                                                              ∑xi < 497

                                       5 +1
                      AP+1 - AP-1                                       14 +1                             3
             yi =                                             yi2                ∑xi         ∑ xi2
AP-1   8            AP-1 + AP + AP+1                                    14       ∑yi         ∑ yi2
                                                  xi yi       xi2
                                                                                 ∑ xi yi

 12                  4 Op.                            3 Op.                          6 Op.                     12 Op.                      Sum Memory

                                                                                                                                                                                           6
Rechenleistung im Vergleich
 Notwendige Operationen:                     Lineare Regression
                                             Ziel: Geradengleichung   y(x) = a + b x

            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

13

                                                          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
        I                   II         III
                                                   • 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
14

                                                                                       7
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

15

                                                                   Implementierungsansätze
                     Pad 1                    Pad 2              Pad 3                                Pad 8          Pad 9                   Pad 10                        Pad 16
                                 TH-Logic

                                                      TH-Logic

                                                                            TH-Logic

                                                                                                          TH-Logic

                                                                                                                              TH-Logic

                                                                                                                                                  TH-Logic

                                                                                                                                                                                 TH-Logic
       Evt. Buffer

                                                                                       Zentr.                                                                 Zentr.

                             Selektion der Operanden                                                                         Selektion der Operanden

                     A1 ..A4                                      A5 ..A8                                            A9 ..A12                                A13 ..A16

                      Sub                                          Sub                                                Sub                                     Sub
                                            ∑A1 ... ∑A4                                 ∑A5 ... ∑A8                                      ∑A9 ... ∑A12                       ∑A13 ... ∑A16
                     Shift                                        Shift                                              Shift                                   Shift

                     Reg                       Reg                Reg                  Reg                           Reg                    Reg              Reg           Reg

                                  Div                                       Div                                                Div                                   Div

16                               Reg            y                         Reg           y                                     Reg             y                      Reg    y

                                                                                                                                                                                            8
Ausschnitt aus der TH-Logik
      Pad 1                  Pad 2              Pad 3                 Pad 8         Pad 9         Selektion der ADC-Werte:

              ∑                ∑                                              ∑                   • AP-1 + AP + AP+1 > TH
                                                                                                  • (AP-1 < AP) & (AP+1 < AP)
              TH              TH                                              TH

 Comp              Comp                  Comp                      Comp            Comp
                                                                                                  Datenreduktion:
     &                   &                   &                            &                       Faktor 4
                   Sum                Sum
                                                                                                  (30 x 1 Byte => 4 x 1 Byte)
              &                &                                              &

 Zentr.             Zentr.                                           Zentr.

                                                                     Sum

17

                                                  Die virtuelle Java Maschine
                                                                                              Kompilierte Programme
                                          Quellprogramme
                                                                                        A.class      B.class       C.class
                                A.java       B.java      C.java                        A.class      B.class       C.class
                               A.java       B.java      C.java

                                                                                        Class-Loader
                                              Java                                                                             Java
                                             Java
                                            Compiler                                           Execution Engine               Virtual
                                           Compiler
                                                                                                                             Machine

                                A.class      B.class     C.class                        X.class      Y.class       Z.class
                               A.class      B.class     C.class                        X.class      Y.class       Z.class

                                   Kompilierte Programme                                    Standard Java-Klassen (API)

          •       Definition eines abstrakten Maschinenmodells
          •       Funktionale Verhalten ist genau spezifiziert
          •       Spezifikation der JVM ist von Implementierungsdetails entkoppelt
          •       Flexibler Triggercode
          •       Ideal spezifizierter Prozessor

                                                                                                                                        9
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)

19

                    Hardwarestruktur des femtoJava 1
                                                         Data-Memory
                                                          Data-Memory

                                             Verarbeitungsdaten     Kontrollsignale        femtoJava 1
      Reset

      Initialisierung
                                   Pipe
                                    Pipe11                    Pipe
                                                               Pipe22                 Pipe
                                                                                       Pipe33(4)
                                                                                              (4)

                                       Kontrollsignale

                                                    Instr.-Memory
                                                     Instr.-Memory
                             Instruktionen

       •      Dreistufige Pipelinestruktur
       •      Fetch/Decode (Pipe 1)
       •      Fetch Operands, Execute Control, Write Back (Pipe 2)
       •      Execute (Pipe 3)

                                                                                                         10
Die erste Pipelinestufe

                                  Aktivität an
                                  Pipelinestufe 2                                                                               Pipelinestufe22
                                                                                                                                Pipelinestufe
                  Reset                          Clk
                                 Go
                                  Go                                                                                       Anweis
                                                                                                                           Anweis       Const
                                                                                                                                        Const     Code
                                                                                                                                                  Code        Temp
                                                                                                                                                              Temp11       Temp
                                                                                                                                                                           Temp22
        idle
         idle                                    Read_instr
                                Pipe
                                Pipe 22
Start                                            Instr_ready
                        Neuer LZ
                                                 Instr_addr      300    301       302
                                                                                                                                                                  Opcode/Data
    fetch
     fetch
                                                 Opcode          goto   Op 1      Op2
                 LZ fortsetzen
1. LZ
                LZ fortsetzen                    Code                              goto
                                                                                                                     Befehls
                                                                                                                      Befehls                                 Addr. Instruktions
                                                                                                                                                                     Instruktions
   decode
   decode                                        temp1                              Operand 1                        Decoder
                                                                                                                     Decoder                                             Speicher
                                                                                                                                                                         Speicher
                                                                                                                                                     PC-
                                                                                                                                                     PC-
                                                                                                                                                    Logik
                                                                                                                                                    Logik
                                                 temp2                                    Operand 2                                   Kontroll-
                                                                                                                                      Kontroll-
2. LZ                                                                                                                                  Einheit
                                                                                                                                       Einheit
                 LZ fortsetzen                                           Instruktionswort zu goto
                                                 anweisung
   fetch2
    fetch2                                                                     Konstante zu goto
                                                 const
                                 Decode
                                 abgeschlossen

                                          Kontrolleinheit                                                                               Datenpfad
   21

                            Kontrolleinheit der zweiten Stufe
                                                                                        Execute
                                                                                         Execute                                                              Zeitgleich zum WB
                                                                                        ALU-Ctr
                                                                                        ALU-Ctr                                                               nächsten Fetchzyklus
    Pipe 1

                                  Readdecode
                                  Readdecode                                       Executedecode
                                                                                   Executedecode                                      Writedecode
                                                                                                                                      Writedecode

                  Read_ix8
                  Read_ix8                             Read_ix
                                                       Read_ix                                          Write_ix8
                                                                                                        Write_ix8                   Write_ix_1
                                                                                                                                    Write_ix_1               Write
                                                                                                                                                             Write _ix
                                                                                                                                                                   _ix

                Read_ix8_2
                Read_ix8_2                         Read_ix_2
                                                   Read_ix_2                                          Write_ix8_d1
                                                                                                      Write_ix8_d1              Write_ix1_d1
                                                                                                                                Write_ix1_d1                Write
                                                                                                                                                            Write _ix_d1
                                                                                                                                                                  _ix_d1

                                                  Read_ix_2d1
                                                  Read_ix_2d1                                         Write_ix8_d2
                                                                                                      Write_ix8_d2              Write_ix1_d2
                                                                                                                                Write_ix1_d2                Write
                                                                                                                                                            Write _ix_d2
                                                                                                                                                                  _ix_d2

                                                  Read_ix_2d2
                                                  Read_ix_2d2

                                                                                                      Write
                                                                                                      Write _ix1_3_1
                                                                                                            _ix1_3_1            Write
                                                                                                                                Write _ix1_3_2
                                                                                                                                      _ix1_3_2           Write
                                                                                                                                                         Write _ix1_3_3
                                                                                                                                                               _ix1_3_3

   • Readdecode:                                 Daten laden
                                                                                                      Write
                                                                                                      Write _ix1_4_1
                                                                                                            _ix1_4_1            Write
                                                                                                                                Write _ix1_4_2
                                                                                                                                      _ix1_4_2           Write
                                                                                                                                                         Write _ix1_4_3
                                                                                                                                                               _ix1_4_3
   • Executedecode: Operationen der ALU steuern
   • Writedecode:                                Speichern von Daten                                  Write
                                                                                                      Write _ix1_4_6
                                                                                                            _ix1_4_6            Write
                                                                                                                                Write _ix1_4_5
                                                                                                                                      _ix1_4_5           Write
                                                                                                                                                         Write _ix1_4_4
                                                                                                                                                               _ix1_4_4
   22

                                                                                                                                                                                     11
Datenpfad der zweiten Stufe
                                                                       Pipelinestufe 3
 Funktion:
                                                                                                 R1
                                                                                                 R1           R2
                                                                                                              R2               R4
                                                                                                                               R4             R5
                                                                                                                                              R5

• Vorverarbeitung der geladenen
  Daten und Operanden                              Daten
                                                    Daten
                                                  Speicher
                                                  Speicher
• Laden und Speichern von Daten
• Zusammensetzen geladener                                                                            Add
                                                                                                      Add

                                                                                                                    vars
                                                                                                                    vars
  Daten                                                                      Add
                                                                             Add
                                                  Kontroll
                                                  Kontroll
                                                  Einheit
                                                   Einheit
• Alle Datenpfade sind vollständig                                                                                             Extension
                                                                                                                               Extension

  voneinander entkoppelt

                                                                                                                    Optop
                                                 Vorzeichen

                                                                                                                    Optop
                                                 Vorzeichen
                                                   Check                     Add
                                                                             Add
                                                   Check                                              Add
                                                                                                      Add

                                                         anweisung
                                                         anweisung        const
                                                                          const            opcode
                                                                                           opcode           Temp
                                                                                                            Temp 11                 Temp
                                                                                                                                    Temp 22

                                                                        Pipelinestufe 1
23

          Kontrolleinheit der dritten Stufe
                                                                                                                   Readdecode
                              Readdecode

 Funktion:                                          Executedecode
                                                    Executedecode                                     Writedecode
                                                                                                      Writedecode
                                                                                                                                Nächster Fetch
                                                                                                    Execute Ready
• Steuerung der ALU-Operation
• Decodierung des ALU-                                                                                Freigabe Register
                                               Lmul1
                                               Lmul1                 Lmul3
                                                                     Lmul3
  Steuerwortes
• Freigabe des Ausgangsregisters                                                                                            Go_
                                                                                                                            Go_
                                                             Lmul2                                                          WB
                                                                                                                            WB
                                                             Lmul2

                                                                                           ALU
                                                                                           ALU

                                                                                                                            idle
                                                                                                                             idle
                                                               ALU-Operation selektieren
                                           ALU-Operation selektieren

24

                                                                                                                                                   12
Datenpfad der dritten Stufe
                                                             R6
                                                             R6
                                                                                              C1          C2
 Funktion:
                                                                                                    C3
• ALU verarbeitet 44 Befehle
                                                                                                          Ass
                                                                                                          Ass
• 17 Vergleichsoperationen
• 16 Arithmetische/Logische                                                             Temp
                                                                                        Temp Reg
                                                                                             Reg
                                            Shift
                                            Shift     Add/Sub
                                                      Add/Sub       Boolsche
                                                                    Boolsche
• 6 Schiebeoperationen                                                                   MAC
                                                                                         MAC

• 5 Typkonvertierungen
                                           Assemble   Typkonv.
• 42 Befehle werden innerhalb              Assemble   Typkonv.

  eines Taktes verarbeitet
• Aufwendige Befehle (64 Bit Mul)
  werden innerhalb von drei Takten
                                                        R1           R2        R4            R5
  verarbeitet                                           R1           R2        R4            R5

                                                                 Pipelinestufe 2
25

                                                    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
                                                                                    Test-Layout des femtoJava 1

     AMS035 Standardzellenbibliothek

     • Gesamtentwurf umfaßt 7,27 mm2 Chipfläche (femtoJava 2)
     • Kritische Pfad besitzt Signallaufzeit von 19 ns (ca. 52 MHz)
26

                                                                                                                  13
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

27

                                                                        14
Sie können auch lesen