Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

PCI Express DMA Engine für Active Buffer Projekt im CBM Experiment Wenxue Gao, Andreas Kugel, Reinhard Männer, Holger Singpiel, Andreas Wurz Uni. Mannheim.

Ähnliche Präsentationen


Präsentation zum Thema: "PCI Express DMA Engine für Active Buffer Projekt im CBM Experiment Wenxue Gao, Andreas Kugel, Reinhard Männer, Holger Singpiel, Andreas Wurz Uni. Mannheim."—  Präsentation transkript:

1 PCI Express DMA Engine für Active Buffer Projekt im CBM Experiment Wenxue Gao, Andreas Kugel, Reinhard Männer, Holger Singpiel, Andreas Wurz Uni. Mannheim DPG Tagung, Gießen 14 März 2007

2 Inhalt Einleitung Blockdiagramm Realisierung Leistung 2 von 15

3 Einleitung – CBM Experiment CBM TSR, Jan. 2006

4 Einleitung – PCI Express 2,5 Gbps pro Link Point-to-Point TLP (Transaction Layer Packet) –Post: MWr (Memory Write Request), … –Non-post: MRd (Memory Read Request), … –Completion: CplD, Cpl, … –Message: Msg 4 von 15

5 Host End-Point PCI Express – Post TLP (MWr, …) Rx Tx Trn.

6 Host End-Point MWr1 PCI Express – Post TLP (MWr, …) Rx Tx Trn.

7 Host End-Point MWr1 PCI Express – Post TLP (MWr, …) Rx Tx Trn.

8 Host End-Point MWr1 PCI Express – Post TLP (MWr, …) Rx Tx Trn.

9 Host End-Point MWr2 PCI Express – Post TLP (MWr, …) Rx Tx Trn. MWr1

10 Host End-Point MWr2 PCI Express – Post TLP (MWr, …) Rx Tx Trn. MWr1

11 Host End-Point MWr2 PCI Express – Post TLP (MWr, …) Rx Tx Trn. MWr1

12 Host End-Point MWr3 PCI Express – Post TLP (MWr, …) Rx Tx Trn. MWr2 MWr1

13 Host End-Point MWr3 PCI Express – Post TLP (MWr, …) Rx Tx Trn. MWr2 MWr1

14 PCI Express – Non-post TLP (MRd, …) End-Point Host Rx Tx Trn.

15 End-Point MRd1 PCI Express – Non-post TLP (MRd, …) Host Rx Tx Trn.

16 PCI Express – Non-post TLP (MRd, …) End-Point Host Rx Tx MRd1 Trn.

17 PCI Express – Non-post TLP (MRd, …) End-Point Host Rx Tx MRd1 Trn.

18 PCI Express – Non-post TLP (MRd, …) End-Point Host Rx Tx MRd1 Trn. MRd2

19 PCI Express – Non-post TLP (MRd, …) End-Point Host Rx Tx MRd1 Trn. MRd2

20 PCI Express – Non-post TLP (MRd, …) End-Point Host Rx Tx MRd1 Trn. MRd2

21 PCI Express – Non-post TLP (MRd, …) End-Point Host Rx Tx MRd1 Trn. MRd2 CplD1

22 PCI Express – Non-post TLP (MRd, …) End-Point Host Rx Tx MRd1 Trn. MRd2 CplD1 CplD2

23 PCI Express – Non-post TLP (MRd, …) End-Point Host Rx Tx MRd1 Trn. MRd2 CplD1 CplD2

24 PCI Express – Non-post TLP (MRd, …) End-Point Host Rx Tx MRd1 Trn. MRd2 CplD1 CplD2

25 PCI Express – Non-post TLP (MRd, …) End-Point Host Rx Tx MRd1 Trn. MRd2 CplD1 CplD2

26 PCI Express – Non-post TLP (MRd, …) End-Point Host Rx Tx MRd1 Trn. MRd2 CplD1 CplD2

27 PCI Express – Non-post TLP (MRd, …) End-Point Host Rx Tx MRd1 Trn. MRd2 CplD1 CplD2

28 PCI Express – Non-post TLP (MRd, …) End-Point Host Rx Tx MRd1 Trn. MRd2 CplD1 CplD2 MRd1 MRd2

29 PCI Express – Non-post TLP (MRd, …) End-Point Host Rx Tx MRd1 Trn. MRd2 CplD1 CplD2 MRd1 MRd2 Tag[7:0]

30 PCI Express – Non-post TLP (MRd, …) End-Point Host Rx Tx MRd1 Trn. MRd2 CplD1 CplD2 MRd1 MRd2 Tag[7:0]

31 Einleitung – SG DMA SG(Scatter/Gather) –Multiple-descriptor chain Voll-Duplex –Downstream: Host Endpoint –Upstream: Endpoint Host Done Zustand –Status Register –Interrupt Downstream Upstream Host Endpoint

32 Blockdiagramm Rx Tx Tx Arbitrator Memory BRAM + FIFO + Registers Upstream DMA Channel Downstream DMA Channel PIO Channel Rx Resolution PCIe Transact. Layer Interface Channel Buffer Tag RAM

33 Channel Buffer TLP Channel FIFO –Breite = 128 –Tiefe = 15 TLP ohne Payload –Alles im Word TLP mit Payload –Lokale Adresse –Zusätzliche Informationen LAdrHdr2Hdr1Hdr0 Rx Tx xxxxHdr2Hdr1Hdr0 LAdrHdr2Hdr1Hdr von 15

34 Realisierung – DMA teilen 4 KB Grenze verboten Address/Length Combination

35 Realisierung – Done bestätigen Wann ist DMA beendet? –Done Zustand nötig CplDs für unterschiedliche MRds kommen nicht folgend –Mögliche Lösungen Tag RAM lesen CplD zählen Channel Buffer leer Letzten Tag triggern (x) Bitmap füllen –128-bit Register für 7-bit Tags 11 von 15

36 Leistungsparameter Zielbaustein –Virtex4 XC4VFX60-11ff672 FFs –9 834 out of ( 19 % ) LUT4s – out of ( 22 % ) RAMb16 –58 out of 232 ( 25 % ) Slices –9 426 out of ( 37 % ) Frequenz ( trn_clk ) –250 MHz Verzögerung (Transaction layer) –PIO: 52 ns (MRd CplD ) –DMA: 80 ns (DMA Start Tx TLP) Theoretische Bandbreite –2Gbps x4 = 8Gbps, bi-directional 12 von 15

37 4-Lane Tests

38 Offene Fragen Kleinerer Channel Buffer –Meistens reichen 64-bit, statt 128-bit Bessere Behandlung von Fehlern –Teilweise unvollständig –Überschreiben von CplD zu vermeiden –Time-out tag Recycling Höhere Bandbreite für downstream DMA

39 Zusammenfassung PCI Express Vorteile –Parallelität –Skalierbarkeit Virtual channels –2 DMA Channels –1 PIO Channel Xilinx Lösung –62,5 MHz für x1 –250 MHz für x4 15 von 15

40

41 x4-ABB Design Summary Logic Utilization: Number of Slice Flip Flops: 9,834 out of 50,560 19% Number of 4 input LUTs: 11,464 out of 50,560 22% Logic Distribution: Number of occupied Slices: 9,426 out of 25,280 37% Total Number 4 input LUTs: 12,993 out of 50,560 25% Number used as logic: 11,464 Number used as a route-thru: 643 Number used for Dual Port RAMs: 202 Number used as Shift registers: 684 Number of bonded IPADs: 18 out of 62 29% Number of bonded OPADs: 16 out of 24 66% Number of bonded IOBs: 1 out of 352 1% Number of BUFG/BUFGCTRLs: 5 out of 32 15% Number used as BUFGs: 4 Number used as BUFGCTRLs: 1 Number of FIFO16/RAMB16s: 58 out of % Number used as FIFO16s: 0 Number used as RAMB16s: 58 Number of DSP48s: 2 out of 128 1% Number of DCM_ADVs: 1 out of 12 8% Number of GT11s: 8 out of 16 50% Number of GT11CLKs: 1 out of 8 12%

42 X4 Test

43 DMA Prozess Buffer-descriptor –SA (Source Address) –DA (Destination Address) –NXA (Next Descriptor Address) –Length (Length in bytes) –Control (Control register) Start/Stop Befehl –Upstream: MWr + MRd (dex) –Downstream: MRd Busy/Done Zustände erkennen –Status Register –Interrupt (Msg)

44 Rx Tx Tx Arbitrator MWr_usp MRd_dsd MRd_usd MRd_dsp Cpl/D MWr Memory BRAM + Registers + FIFO Memory BRAM + Registers + FIFO Tag RAM MRd: CplD Cpl MRd: CplD Cpl CplD MRd Rd Wr Rx Resolution US: MWr MRd Msg US: MWr MRd Msg DS: MRd Msg DS: MRd Msg DMA Upstream Engine Registers DMA Downstream Engine Registers Blockdiagramm

45 Verifizieren PIO + DMA ( $random ) –Transaction length –Address-pair –Chain length (DMA) –Descriptor Address (DMA) –Flow control: *_rdy_n Output checking –tsof/teof –Data –Deskriptor abteilen Downstream (Write) Upstream (Read) RootEndpoint 1 2

46 Memory Space BRAM –16KB FIFO –32 x 32 –Loop-back Registers –Write / Read –Control / Status Eventuelle Erweiterung –DDR (BRAM ähnlich) –GbE (FIFO ähnlich) BRAM Registers Loop-Back Wr Rd OFIFO WrRd WrRd IFIFO


Herunterladen ppt "PCI Express DMA Engine für Active Buffer Projekt im CBM Experiment Wenxue Gao, Andreas Kugel, Reinhard Männer, Holger Singpiel, Andreas Wurz Uni. Mannheim."

Ähnliche Präsentationen


Google-Anzeigen