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

Ähnliche Präsentationen


Präsentation zum Thema: "PCI Express DMA Engine für Active Buffer Projekt im CBM Experiment"—  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 PCI Express – Post TLP (MWr, …)
Trn. Host End-Point Rx Tx

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

33 Channel Buffer TLP Channel FIFO TLP ohne Payload TLP mit Payload
Breite = 128 Tiefe = 15 TLP ohne Payload Alles im Word TLP mit Payload Lokale Adresse Zusätzliche Informationen LAdr Hdr2 Hdr1 Hdr0 Rx Tx xxxx 95 127 63 31 9 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 CplD‘s für unterschiedliche MRd‘s 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 FFs LUT4s RAMb16 Slices
Virtex4 XC4VFX60-11ff672 FFs out of ( 19 % ) LUT4s out of ( 22 % ) RAMb16 out of ( 25 % ) Slices out of ( 37 % ) Frequenz ( trn_clk ) 250 MHz Verzögerung (Transaction layer) PIO: 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 Bessere Behandlung von Fehlern
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 Virtual channels Xilinx Lösung
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: ,834 out of 50, % Number of 4 input LUTs: ,464 out of 50, % Logic Distribution: Number of occupied Slices: ,426 out of 25, % Total Number 4 input LUTs: ,993 out of 50, % Number used as logic: ,464 Number used as a route-thru: Number used for Dual Port RAMs: Number used as Shift registers: Number of bonded IPADs: out of % Number of bonded OPADs: out of % Number of bonded IOBs: out of % Number of BUFG/BUFGCTRLs: out of % Number used as BUFGs: Number used as BUFGCTRLs: Number of FIFO16/RAMB16s: out of % Number used as FIFO16s: Number used as RAMB16s: Number of DSP48s: out of % Number of DCM_ADVs: out of % Number of GT11s: out of % Number of GT11CLKs: out of %

42 X4 Test

43 DMA Prozess Buffer-descriptor Start/Stop Befehl
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 Blockdiagramm Rx Memory BRAM + Registers + FIFO Tx Tx Arbitrator
MWr_usp MRd_dsd MRd_usd MRd_dsp Cpl/D MWr Memory BRAM + Registers + FIFO Tag RAM MRd: CplD Cpl MRd Rd Wr Rx Resolution US: Msg DS: DMA Upstream Engine Registers Downstream

45 Verifizieren PIO + DMA ($random) Output checking 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) Root Endpoint 1 2

46 Memory Space BRAM FIFO Registers Eventuelle Erweiterung 16KB 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 IFIFO


Herunterladen ppt "PCI Express DMA Engine für Active Buffer Projekt im CBM Experiment"

Ähnliche Präsentationen


Google-Anzeigen