(R&D) Valpré, 18-21 Septembre 2006David Etasse Comment optimiser l’usage d’un lien Ethernet Gigabit en acquisition de données ? « FASTER »

Slides:



Advertisements
Présentations similaires
Semaine 5 Couche Liaison de données Cours préparé par Marc Aubé
Advertisements

Module Systèmes d’exploitation
GEF 435 Principes des systèmes dexploitation Le matériel des ordinateurs Revue Pt II (Tanenbaum 1.4)
PC / Traitement numérique / Contrôle Environnement logiciel
GEF 435 Principes des systèmes dexploitation Structure du logiciel dE/S Partie II (Tanenbaum & 5.3.4)
GEF 435 Principes des systèmes dexploitation Les systèmes dexploitation en général (Tanenbaum 1.1 et 1.3)
11 - Composants dun routeur. Sommaire 1)Sources de configuration externes 1)Composants de configuration internes et commandes détat associées.
– Spanning Tree Protocol (STP)‏
Le stockage DAS,NAS,SAN.
Le Protocole TCP Chapitre 6.
ANALOGIE ENTRE MODÈLES
GEF 435 Principes des systèmes dexploitation Structure des systèmes dexploitation (Tanenbaum 1.7)
Protocole PPP* *Point-to-Point Protocol.
- Couche 4 - Couche transport. Sommaire 1) Caractéristiques de la couche transport 2) Les protocoles TCP & UDP 3) Méthode de connexion TCP.
Chapitre 5 : Le Modèle OSI La Couche Liaison De Données
Vue d'ensemble Présentation multimédia : Rôle du routage dans l'infrastructure réseau Activation et configuration du service Routage et accès distant Configuration.
Architecture de machines La mémoire
Architecture de machines La mémoire
Introduction aux réseaux
Architecture Réseau Modèle OSI et TCP.
La machine parallèle MPC1 Hardware, protocoles et performances Université P. & M. Curie (PARIS) Laboratoire dInformatique de PARIS6 Olivier Glück.
Pr. Alain Greiner (LIP6 - ASIM) Daniel Millot, Philippe Lalevee (INT)
Projet INF1 Présentation
Introduction En plus de MCS et de MSS, deux systèmes de diagnostic ont été ajoutés à MCP: -MDS (Magnet Diagnostic System) - LAnnonciateur Lobjectif est.
Réunion de collaboration du 9-10 Juillet 2008 J.L. Béney 1 Logiciel At  Client-Serveur Tcp/ip de la station autonome  Influence de l'architecture matérielle.
La machine parallèle MPC1
Gérer la sécurité des mots de passe et les ressources
Cours de Réseaux Informatiques
Cours 5 Le modèle de référence.
Sommaire Dans ce chapitre, nous aborderons :
Communication entre machines, sur Internet…
Suite.
Couche Transport (4) Routeur Messages entre A et B
OSI et TCP/IP CNAM
Les systèmes mono-puce
SURVEILLANCE VIDEO SUR RESEAU ETHERNET
Advisor Advanced IP Présentation Télémaintenance Télésurveillance.
Exemple de mise en oeuvre
TCP/IP Historique La DRPA (Defense Advanced Reasearch Projects Agency) lança un projet de dévélopper un réseau à commutation de paquets : ARPANET.
Système slow-control au LAPP
Les Réseaux Informatiques
Traitement d’obsolescence TVM 430 Emulation logicielle de 3 XPC
Générateur de pattern numérique FIFOFIFO GPIOTX/RXGPIOTX/RX Addr data (32bits*2) Contrôleur Mémoire DDR Externe(TX/RX) 1 (2) DMA + UC gestion signaux ANN.
LAr Upgrade Démonstrateur et l’implémentation d’IPbus
Gestion des Périphériques
SUNDANCE Multiprocessor Technology Ltd. Yann CLIN Stage effectué de février à juin Superviseur technique: Jocelyn SEROT Superviseur industriel: Emmanuel.
Ingénierie des réseaux - Chapitre 2 bis Les sockets en Java
Réseaux Informatiques
Architecture des ordinateurs, Environnement Numérique de Travail
UE3-1 RESEAU Introduction
Ingénierie des réseaux
V- Identification des ordinateurs sur le réseau
Les bases du protocole Modbus
Fonctionnalité et protocole des couches applicatives
SIRVIN Alexis RIVIERE Mathieu VERRIERE Arthur
Les architectures logiques
Salles Pédagogiques en mode Terminal Serveur Enseignement et libre-service.
Synthèse: une journée dans la vie d'une requête Web 5: DataLink Layer5-1.
1 M. Taurigna,,D. Charlet C. Paillé Ethernet Interface But de la R & D : Intégrer un interface Ethernet dans un FPGA avec le minimum de composant externes.
Les Réseaux Informatiques Rappels
M2.22 Réseaux et Services sur réseaux
O. Le Dortz Réunion Omegapix2 3/03/2015 Test d’Irradiation du Circuit Omegapix2 Olivier Le Dortz, LPNHE Paris 3 Mars 2015.
Premiers pas vers l’upgrade du système de déclenchement d’ATLAS : le démonstrateur LArg 1 Nicolas Dumont Dayot/Jasmin Fragnaud- Réunion jeudi LAPP - 20/11/14.
09/09/2008Projet PMM2-N.Dumont Dayot1 Motivations Finalité du démonstrateur Partenaires Electronique frontale Travail au LAPP Conclusion Projet PMM² Photomultiplicateurs.
Journées du LAPP/LAPTH 19 octobre 2011 Nicolas LETENDRE Pour le groupe Virgo.
Préparation du test d’irradiation du circuit Omegapix2 Olivier Le Dortz, LPNHE Paris 13 Mai
Nouvelle électronique pour le calorimètre à Argon Liquide d’ATLAS 05/06/2012 Electronique Calorimètre ATLAS-Journée VLSI-IN2P Nicolas Dumont Dayot.
Département Informatique Les Réseaux Informatiques Couche Transport Protocoles UDP & TCP Laurent JEANPIERRE.
Chaine d’acquisition du Calorimètre LArg ATLAS Nicolas Dumont Dayot pour le groupe ATLAS-LAPP 11/06/2014Acquisition ATLAS LArg-VLSI
Réunion de service 28/02/2012. L1 L2 Détection Action Contrôle  Mesure en permanence la différence de longueur des deux bras (d=L1-L2)  précision de.
Transcription de la présentation:

(R&D) Valpré, Septembre 2006David Etasse Comment optimiser l’usage d’un lien Ethernet Gigabit en acquisition de données ? « FASTER »

FASTER 1.0 et FASTER 10.0 Le but de FASTER 1.0  Permettre au plus petit des FPGA de communiquer sur un lien Ethernet 1 Gbits/s au maximum de sa bande passante.  1 Gbits/s ou 125 MOctets/s ou 1500 Octets en 12 us ou 9600 Octets en 77 us  permettre à des ordinateurs sous Linux de communiquer avec ces FPGA sans utiliser une carte hardware spécifique. utiliser une carte hardware spécifique. « Low Power, Low Cost but very High Speed » ©LPC Le but de FASTER 10.0  la même chose que FASTER 1.0 mais avec un lien 10 Gbits/s Ethernet.  10 Gbits/s ou 1.25 GOctets/s ou 1500 Octets en 1.2 us ou Octets en 12.8 us FASTER 1.0 Fast Acquisition SysTem on Ethernet netwoRk 1 Gbits/s Valpré, Septembre 2006David Etasse« FASTER »

SOMMAIRE  Introduction  Deux façons d’envoyer des données sur Ethernet  CPU, Linux et TCP/IP  Le driver Ethernet  Optimisation de la réception du driver Ethernet  Optimisation de la transmission du driver Ethernet  FPGA et LPC  Le protocole LPC (préliminaires)  Développements futurs Valpré, Septembre 2006David Etasse« FASTER » ©LPC

FPGA RAM PHY 1G FLASH 4 cm 3.7 cm NIOSII µProcessor (Linux embedded) Ethernet MAC Lecture (Écriture) des données TNS Trigger Numérique Introduction ©LPC Valpré, Septembre 2006David Etasse« FASTER »

Introduction ©LPC 7Application ou Processus 6Présentation 5Session 4TransportHôte à hôte 3RéseauInternet 2Liaison Accès Réseau 1Physique Valpré, Septembre 2006David Etasse« FASTER » Operating System Linux Carte réseau Driver Ethernet

SOMMAIRE  Introduction  Deux façons d’envoyer des données sur Ethernet  CPU, Linux et TCP/IP  Le driver Ethernet  Optimisation de la réception du driver Ethernet  Optimisation de la transmission du driver Ethernet  FPGA et LPC  Le protocole LPC (préliminaires)  Développements futurs Valpré, Septembre 2006David Etasse« FASTER » ©LPC

Driver Ethernet Driver Ethernet ©LPC 7Application ou Processus 6Présentation 5Session 4TransportHôte à hôte 3RéseauInternet 2Liaison Accès Réseau 1Physique Valpré, Septembre 2006David Etasse« FASTER » Driver Ethernet  Il permet au système d’exploitation d’être indépendant du hardware  On doit initialiser la structure associée au device ether_setup(dev); dev->open = lpc2g1000_open; dev->stop = lpc2g1000_close; dev->hard_start_xmit= lpc2g1000_start_xmit; dev->tx_timeout= lpc2g1000_timeout; dev->change_mtu = lpc2g1000_change_mtu; …..  On doit définir les handlers des interruptions Rx et Tx  En fonctionnement, on appelle les fonctions de l’OS pour gérer le transfert provenant ou en direction de la couche Internet le transfert provenant ou en direction de la couche Internet

SOMMAIRE  Introduction  Deux façons d’envoyer des données sur Ethernet  CPU, Linux et TCP/IP  Le driver Ethernet  Optimisation de la réception du driver Ethernet  Optimisation de la transmission du driver Ethernet  FPGA et LPC  Le protocole LPC (préliminaires)  Développements futurs Valpré, Septembre 2006David Etasse« FASTER » ©LPC

lpc2g1000_RxInterrupt(){ /* Lecture du nombre d’octets de la trame */ /* Lecture du nombre d’octets de la trame */ /* Allocation mémoire */ /* Allocation mémoire */ /* Lecture de la trame par le CPU */ /* Envoi du pointeur à la couche Internet */ /* Fin*/ } Valpré, Septembre 2006David Etasse« FASTER »  Tache de basse priorité d’allocation mémoire d’allocation mémoire ©LPC (Optimisation de la réception du driver Ethernet) Allocation mémoire

lpc2g1000_RxInterrupt(){ /* Lecture du nombre d’octets de la trame */ /* Lecture du nombre d’octets de la trame */ /* Allocation mémoire */ /* Allocation mémoire */ /* Lecture de la trame par le CPU */ /* Envoi du pointeur à la couche Internet */ /* Fin*/ } Valpré, Septembre 2006David Etasse« FASTER »  Tache de basse priorité d’allocation mémoire d’allocation mémoire  Lecture de la trame par un DMA un DMA ©LPC (Optimisation de la réception du driver Ethernet) Utilisation de DMA

Valpré, Septembre 2006David Etasse« FASTER » Couche Internet Driver Interruption Trame Interruption Trame Driver Interruption Trame Trame Trame Méthode classique Méthode de modération des interruptions ©LPC (Optimisation de la réception du driver Ethernet) Modération des interruptions

lpc2g1000_RxInterrupt(){ /* Lecture du nombre d’octets de la trame */ /* Lecture du nombre d’octets de la trame */ /* Allocation mémoire */ /* Allocation mémoire */ /* Lecture de la trame par le CPU */ /* Lecture de la trame par le CPU */ /* Envoi du pointeur à la couche Internet */ /* Envoi du pointeur à la couche Internet */ /* Fin*/ /* Fin*/} Valpré, Septembre 2006David Etasse« FASTER » ether_setup(dev); dev->open = lpc2g1000_open; dev->stop = lpc2g1000_close; dev->hard_start_xmit= lpc2g1000_start_xmit; dev->tx_timeout= lpc2g1000_timeout; dev->change_mtu = lpc2g1000_change_mtu; dev->poll= lpc2g1000_poll; dev->weight= N; /* */ ….. lpc2g1000_RxInterrupt(){ /* Interdire les interruptions Rx*/ /* Interdire les interruptions Rx*/ /* Demander à l’OS de lancer la fonction /* Demander à l’OS de lancer la fonction de polling */ de polling */ /* Fin*/ /* Fin*/} lpc2g1000_poll(){ /* Lecture du nombre d’octets de la trame */ /* Lecture du nombre d’octets de la trame */ /* Allocation mémoire */ /* Allocation mémoire */ /* Lecture de la trame par le CPU */ /* Lecture de la trame par le CPU */ /* Envoi du pointeur à la couche Internet */ /* Envoi du pointeur à la couche Internet */ /* Tant qu’il y a des trames ou /* Tant qu’il y a des trames ou limite atteinte (weight)*/ limite atteinte (weight)*/ /* Autorisation des interruptions Rx */ /* Autorisation des interruptions Rx */ /* Fin*/ /* Fin*/} ©LPC (Optimisation de la réception du driver Ethernet) Modération des interruptions

Valpré, Septembre 2006David Etasse« FASTER » Exemple : Nios2 (80 Mhz), Linux , T IRQ = 10 us Lecture 1 trameLecture 10 trames (avec NAPI) GainLecture 10 trames (sans NAPI) 80 octets 50 % 7.4 us 84 us 174 us 1500 octets 1.41 ms 6 % 140 us 1.5 ms ©LPC (Optimisation de la réception du driver Ethernet) Modération des interruptions

©LPC Valpré, Septembre 2006David Etasse« FASTER » octets 1 Gbits/s DébitGain Nombre d’interruptions 1500 octets 1 Gbits/s (Optimisation de la réception du driver Ethernet) Utilisation de Jumbo Frame

©LPC Valpré, Septembre 2006David Etasse« FASTER » (Optimisation de la réception du driver Ethernet) Checksum TCP, IP, MAC IPHeaderTCPHeader Checksum  Faire le checksum TCP/IP par le Hardware skb->ip_summed = CHECKSUM_UNNECESSARY;  Ne pas vérifier le checksum TCP/IP pour les réseaux d’acquisition !!!!

©LPC Valpré, Septembre 2006David Etasse« FASTER » (Optimisation de la réception du driver Ethernet) Bilan  Allocation mémoire  Utilisation de DMA  Modération des interruptions  Utilisation de «Jumbo Frame »  Checksum TCP

SOMMAIRE  Introduction  Deux façons d’envoyer des données sur Ethernet  CPU, Linux et TCP/IP  Le driver Ethernet  Optimisation de la réception du driver Ethernet  Optimisation de la transmission du driver Ethernet  FPGA et LPC  Le protocole LPC (préliminaires)  Développements futurs Valpré, Septembre 2006David Etasse« FASTER » ©LPC

lpc2g1000_start_xmit (){ /* On stoppe l’émission des trames venant de la /* On stoppe l’émission des trames venant de la couche Internet*/ couche Internet*/ /* Écriture de la trame par le CPU */ /* Écriture de la trame par le CPU */ /* On prévient la couche réseau qu’elle peut /* On prévient la couche réseau qu’elle peut envoyer la trame*/ envoyer la trame*/ /* Fin*/ } Valpré, Septembre 2006David Etasse« FASTER »  Écriture de la trame par un DMA (cache !!!!) un DMA (cache !!!!) ©LPC (Optimisation de la transmission du driver Ethernet) Utilisation de DMA lpc2g1000_TxInterrupt(){ /* On autorise l’émission des trames venant de /* On autorise l’émission des trames venant de la couche Internet */ la couche Internet */ /* Fin*/ }

Valpré, Septembre 2006David Etasse« FASTER » ©LPC (Optimisation de la transmission du driver Ethernet) Utilisation de DMA 175 μS 33 μS 10 μS DMA (4014 Octets) 10 μS 60 μS

Valpré, Septembre 2006David Etasse« FASTER » ©LPC (Optimisation de la transmission du driver Ethernet) Zéro copie (Scatter/Gather IO) Kernel Space User Space Données Utilisateurs TCP Header Ip Header Application Pile TCP/IP Driver Eth Header Mémoire du FPGA RAMSkb

Valpré, Septembre 2006David Etasse« FASTER » ©LPC (Optimisation de la transmission du driver Ethernet) Zéro copie (Scatter/Gather IO) Kernel Space User Space Mémoire du FPGA Données Utilisateurs TCP Header Ip Header Application Pile TCP/IP Driver Eth Header RAMSkb Page1 Page2 Page3  Prévenir que le driver est de type Scatter/Gather dev->features |= NETIF_F_SC;

©LPC Valpré, Septembre 2006David Etasse« FASTER » Checksum TCP, IP, MAC IPHeaderTCPHeader Checksum  Faire le checksum TCP/IP par le Hardware dev->features |= NETIF_F_HW_CSUM;  Ne pas calculer le checksum TCP/IP pour les réseaux d’acquisition !!!! (Optimisation de la transmission du driver Ethernet)

©LPC Valpré, Septembre 2006David Etasse« FASTER » (Optimisation de la transmission du driver Ethernet) Bilan  Utilisation de DMA  Zéro copie (Scatter/Gather)  Utilisation de «Jumbo Frame »  Checksum TCP

©LPC Valpré, Septembre 2006David Etasse« FASTER » (Optimisation du driver Ethernet) Bilan  Carte TOE (Tcp/Ip Offload Engine)  Jumbo frame  Checksum  Segmentation  ….

©LPC Valpré, Septembre 2006David Etasse« FASTER » (Optimisation du driver Ethernet) Bilan Driver n°1 (JF + DMA) NiosII (80 Mhz) (Cyclone) 1.5 MO/s 2.8 MO/s Driver n°2 (CSUM + NAPI + SG) 4~5 MO/s

Bilan Acquisition Time: 20 minutes Acquisition rate : ~3000 part/sec Dead time : 90 % Acquisition Time : 3 seconds Acquisition rate : ~ part/sec Dead Time : 0 % Standard Acquisition FASTER (TCP/IP protocol) ©LPC Valpré, Septembre 2006David Etasse« FASTER » (Optimisation du driver Ethernet)

SOMMAIRE  Introduction  Deux façons d’envoyer des données sur Ethernet  CPU, Linux et TCP/IP  Le driver Ethernet  Optimisation de la réception du driver Ethernet  Optimisation de la transmission du driver Ethernet  FPGA et LPC  Le protocole LPC (préliminaires)  Développements futurs Valpré, Septembre 2006David Etasse« FASTER » ©LPC

Deux façons d’envoyer des données sur Ethernet NIOSII µProcessor (Linux embedded) Ethernet Mac 16 MO (SDRAM) Je copie de la mémoire du FPGA vers la mémoire (Espace Kernel) Read data from FE Digital trigger, Shape Analysis, Put acquisition header Je copie de l’espace User vers le Kernel et ajoute le TCP/IP header Je copie du kernel vers le user space ©LPC Je copie du kernel vers la mémoire du FPGA Valpré, Septembre 2006David Etasse« FASTER »

Deux façons d’envoyer des données sur Ethernet NIOSII µProcessor (Linux embedded) Ethernet Mac 16 MO (SDRAM) Read data from FE Digital trigger, Shape Analysis, Put acquisition header ©LPC Valpré, Septembre 2006David Etasse« FASTER » Switch LPC Je configure le protocole LPC avant de démarrer l’acquisition Débit : 100 MOctets/sec

SOMMAIRE  Introduction  Deux façons d’envoyer des données sur Ethernet  CPU, Linux et TCP/IP  Le driver Ethernet  Optimisation de la réception du driver Ethernet  Optimisation de la transmission du driver Ethernet  FPGA et LPC  Le protocole LPC (préliminaires)  Développements futurs Valpré, Septembre 2006David Etasse« FASTER » ©LPC

Fermeture <-- LPC-CloseReq LPC-Close --> <-- LPC-Reset Le protocole «LPC» (Préliminaires) Producteur Consommateur Initialisation LPC-Request --> <-- LPC-Response LPC-Ack --> Transfert de données LPC-Data --> <-- LPC-Ack « FASTER » presentation Fermeture LPC-Close --> <-- LPC-Reset ©LPC Valpré, Septembre 2006David Etasse« FASTER » Mesure de temps LPC-Time --> <-- LPC-Ack

Le protocole «LPC» (Préliminaires) ©LPC Valpré, Septembre 2006David Etasse« FASTER » Débit (Mo/sec) = 1500 (C * 12,762 us) + T décision (us) 25 m Débit (Mo/sec) = 9600 (C * 77,762 us) + T décision (us) Débit (Mo/sec) C = octets 121, octets 108,2 T décision = 0.1 us

Le protocole «LPC» (Préliminaires) ©LPC Valpré, Septembre 2006David Etasse« FASTER » Débit (Mo/sec) = 1500 (C * 12,762 us) + T décision (us) 25 m Débit (Mo/sec) C = octets 121, octets 108,2 Débit (Mo/sec) = 9600 (C * 77,762 us) + T décision (us) T décision = 0.1 us Débit (Mo/sec) C = m

Le protocole «LPC» (Préliminaires) ©LPC Valpré, Septembre 2006David Etasse« FASTER » Débit (Mo/sec) = 1500 (C * 12,762 us) + T décision (us) 25 m Débit (Mo/sec) = 9600 (C * 77,762 us) + T décision (us) 25 m  Utilisation de mémoires de 1500 octets

Le protocole «LPC» (Préliminaires) ©LPC Valpré, Septembre 2006David Etasse« FASTER » Débit (Mo/sec) = 1500 (C * 12,762 us) + T décision (us) 25 m Débit (Mo/sec) = 9600 (C* 77,762 us) + T décision (us) Débit (Mo/sec) C = octets octets 14,6 T décision = 90 us Débit (Mo/sec) C = m

Le protocole «LPC» (Préliminaires) ©LPC Valpré, Septembre 2006David Etasse« FASTER » Débit (Mo/sec) = 1500 (C * 12,762 us) + T décision (us) 25 m Débit (Mo/sec) = 9600 (C* 77,762 us) + T décision (us) 25 m  Utilisation de mémoires de 9600 octets

Le protocole «LPC» et Linux IP TCPUDP LPC Socket Physical Component Ethernet Driver ©LPC Kernel Space Application User Space Socket Physical Component Ethernet Driver Application sd = socket (AF_INET, SOCK_STREAM, 0); sd = socket (PF_LPC, SOCK_LPC, 0); Valpré, Septembre 2006David Etasse« FASTER »

SOMMAIRE  Introduction  Deux façons d’envoyer des données sur Ethernet  CPU, Linux et TCP/IP  Le driver Ethernet  Optimisation de la réception du driver Ethernet  Optimisation de la transmission du driver Ethernet  FPGA et LPC  Le protocole LPC (préliminaires)  Développements futurs Valpré, Septembre 2006David Etasse« FASTER » ©LPC

Développements futures Valpré, Septembre 2006David Etasse« FASTER » ©LPC  Hardware  Implantation du protocole « LPC »  Test du checksum TCP  Carte DSP  Carte mère pour Advanced-TCA  Carte de numérisation (1 Ghz 8-10 bits)  Ethernet 10 Gbits/s  Software  Adaptation de U-boot  Implantation du protocole « LPC » pour linux  Amélioration du driver Ethernet (NAPI, Scatter/Gather)

Cyclone II Or Stratix II NiosII Linux RAM FLASH Cyclone II LPC protocol Développements futures Advanced-TCA FEE SwitchEthernet POWER DSP Switch Ethernet 12 ports 1 Gbits/s Switch Ethernet 10 ports 1 Gbits/s 1 port 10 Gbits/s Valpré, Septembre 2006David Etasse« FASTER » ©LPC

SOMMAIRE  Introduction  Deux façons d’envoyer des données sur Ethernet  CPU, Linux et TCP/IP  Le driver Ethernet  Optimisation de la réception du driver Ethernet  Optimisation de la transmission du driver Ethernet  FPGA et LPC  Le protocole LPC (préliminaires)  Développements futurs Valpré, Septembre 2006David Etasse« FASTER » ©LPC