Präsentation herunterladen
Veröffentlicht von:Johann Schmieding Geändert vor über 10 Jahren
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
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
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.