PROJET PARA Parallélisme et Amélioration du Rendement des Applications. Spécification de l Interface Reconfigurable PCIe

Dimension: px
Commencer à balayer dès la page:

Download "PROJET PARA Parallélisme et Amélioration du Rendement des Applications. Spécification de l Interface Reconfigurable PCIe"

Transcription

1 ANR : Calcul Intensif et Grille de Calcul PROJET PARA Parallélisme et Amélioration du Rendement des Applications Tache T9 : Accélération matérielle par FPGA Spécification de l Interface Reconfigurable PCIe Introduction Révision 1.0 Dans le cadre de la tâche T9 du projet PARA, nous proposons l élaboration d un accélérateur matériel reconfigurable basé sur le bus PCI Express (PCIe). L accélération est obtenue par l implantation d opérateurs de calcul reconfigurables dans un composant de type FPGA. Ce document a pour objet de proposer une spécification précise d une interface reconfigurable entre une IP PCIe et un opérateur de traitement tous deux implantés dans un FPGA. 1/39

2 Table des matières 1. ARCHITECTURE DE L ACCELERATEUR FONCTIONNALITES DE L INTERFACE RECONFIGURABLE FONCTIONNALITES PRINCIPALES CONTRAINTES PARTICULIERES MODELE D ARCHITECTURE DE L INTERFACE CONCEPT GENERAL GESTION DE LA MEMOIRE PHYSIQUE INTERACTIONS ENTRE LECTEURS ET ECRIVAIN BIBLIOTHEQUE DE MODULES FONCTIONNELS DESCRIPTION DES MODULES Généralités sur les acteurs Généralités sur les transactions Acteur PCI_W Acteur PCI_R Acteur MEM_W Acteur MEM_R Arbitre PCI_ARB Arbitre MEM_ARB Contrôleur OP_CTRL Contrôleur INT_CTRL Contrôleur MAIN_CTRL INTERFACES DE COMMUNICATION INTER MODULES Main CTRL Bus (1) PCI ARB Bus (2) MEM ARB Bus (3) Req-Ack Port (4) Status Port (5) OP CTRL Port (6) Int Port (7) PCIe IP Port (8) MEM CTRL Port (9) GENERATION D UNE INTERFACE CONNEXIONS ENTRE INTERFACE ET OPERATEUR SIGNAUX DE CONTROLE STANDARD PORT DE CONTROLE ET DE STATUT PORTS DE DONNEES GESTION D UN OPERATEUR DE FILTRAGE GESTION DE LA FIN DE TRAITEMENT PAR LES ACTEURS INDICATION DE LA FIN DE TRAITEMENT A L UTILISATEUR PROGRAMMATION PRIMITIVES BAS NIVEAU Identification Concept de transaction Affectation d une zone mémoire à un acteur Demande de transactions sur un acteur Arrêt d un acteur Paramétrage de l opérateur Récupération du statut de l opérateur Réset de l opérateur Récupération du statut de l interface /39

3 Reset de l interface Attente de la fin d un traitement PRIMITIVES HAUT NIVEAU Identification des scénarios de fonctionnement Représentation des interconnections initialisation d un port Arrêt forcé d un port Port en écriture directe Port en écriture avec stockage Port en lecture directe Port en lecture avec stockage Ports en rebouclage CAS CONCRET : COMPARAISON DE CHAINES DE CARACTERES PROGRAMME DE DEPART IMPLEMENTATION MATERIELLE Toutes les chaînes en mémoire centrale Chaînes réparties sur les 2 mémoires Toutes les chaînes en mémoire locale CONSIDERATIONS MATERIELLES GESTION DES INTERRUPTIONS GESTION DU RESET Reset matériel Reset logiciel Reset des acteurs/ports/opérateurs GESTION DE L ADRESSAGE VIRTUEL DE LA MEMOIRE PRINCIPALE Le problème Les huge pages Implémentation des tables de translation /39

4 1. Architecture de l accélérateur Nous nous proposons donc d intégrer des cartes accélératrices dans les calculateurs BULL au moyen de la technologie PCI express. La figure suivante représente, de manière simplifiée, l intégration d une carte accélératrice à base de FPGA dans une machine équipée d un bus PCIe. COMPUTER BOARD FPGA Processor MAIN MEMORY SYSTEM BUS LOCAL MEMORY PCIe BUS Mem CTRL PCIe CTRL Reconfigurable accelerator La carte accélératrice intègre un FPGA pour l implantation de fonctions reconfigurables, et de la mémoire locale pour du stockage temporaire de données. Le bus PCIe permet le contrôle de la carte par le processeur hôte, et les échanges de données entre la carte accélératrice et la mémoire principale du calculateur. L accélérateur reconfigurable se compose de deux modules : un opérateur reconfigurable (ROp), une interface reconfigurable (RIf). La figure de la page suivante montre l architecture générale de l accélérateur et ses connexions avec les ressources mémoire. 4/39

5 Reconfigurable interface Reconfigurable Operator LOCAL MEMORY MEM CTRL IP Control/Status Port MAIN MEMORY 16X PCIe IP RIf Input Ports Output Ports ROp Les deux modules sont «application dependant» : le module ROp intègre un opérateur de traitement spécifique à chaque application, alors que le module RIf doit s adapter pour fournir/récupérer des données à/depuis l opérateur. Dans ce document nous allons principalement nous intéresser à l interface reconfigurable et spécifier : ses fonctionnalités, son modèle d architecture, ses connexions avec l opérateur, son utilisation. 5/39

6 2. Fonctionnalités de l interface reconfigurable 2.1. Fonctionnalités principales L interface reconfigurable a pour fonction d assurer les échanges de données entre l unité de calcul principale (calculateur hébergeant l accélérateur) et l opérateur reconfigurable, par le biais d un bus PCIe. Les données circulant sur le bus PCIe résident dans la mémoire centrale de l unité de calcul principale (mémoire RAM de plusieurs GB). Une mémoire locale peut être utilisée pour augmenter la bande passante à l entrée de l opérateur. Le module RIf comprend donc : un port d interface avec une IP PCIe, un port d interface avec un contrôleur de mémoire locale, un ou plusieurs ports d envoi de données à l opérateur, un ou plusieurs ports de réception de données en provenance de l opérateur, un port de contrôle et de statut de l opérateur. Le nombre et le format (largeur de données) des ports d entrées/sorties est variable d une application à une autre. Les ports d entrée de l opérateur peuvent être alimentés à partir du bus PCIe (mémoire principale) ou à partir de la mémoire locale. De même, les données retournées sur les ports de sortie de l opérateur peuvent être transmises à la mémoire principale ou à la mémoire locale. L interface reconfigurable supporte également des échanges directs de données entre la mémoire principale et la mémoire locale Contraintes particulières La largeur des données au niveau du PCIe et de la mémoire est fixée à 128 bits pour garantir des bandes passantes suffisamment élevées. L opérateur peut posséder au maximum 8 ports d entrée-sortie distincts. 6/39

7 3. Modèle d architecture de l interface Dans ce paragraphe nous allons détailler le modèle d architecture proposé pour la réalisation de l interface reconfigurable Concept général Notre proposition consiste à réaliser une interface basée sur un modèle de modules de transfert de données interconnectés. Ces modules sont capables de transférer des données de ou vers le bus PCIe, la mémoire locale ou l opérateur. Ces modules seront appelés «acteurs» dans la suite du document. Nous distinguerons notamment les acteurs écrivains, faisant des accès en écriture à une mémoire, des acteurs lecteurs, faisant des accès en lecture à une mémoire. Le contrôle des acteurs est centralisé et coordonné par un contrôleur principal. Un contrôleur d interruptions est également défini pour gérer la complétion des transferts réalisés par les acteurs. Enfin, des arbitres doivent également être implémentés pour gérer les accès aux ressources partagées (IP PCIe et contrôleur de mémoire locale). Le fonctionnement général de l interface se traduit par l envoi de requêtes de transfert aux différents acteurs, via le contrôleur principal, dans le but d alimenter l opérateur reconfigurable et de récupérer les résultats qu il génère. Dans cette architecture, les données brutes (utiles) et les données de contrôle sont explicitement identifiées et séparées. Les acteurs ne véhiculent que des données utiles, à traiter ou traitées par l opérateur. Les données de contrôle passent forcément par le contrôleur principal Gestion de la mémoire physique L interface reconfigurable peut contenir plusieurs acteurs qui accèdent aux ressources mémoire de l accélérateur (mémoire principale et mémoire locale). Les mémoires sont donc découpées en zones distinctes, un acteur réalisant des transferts à partir ou vers une zone mémoire dédiée. Deux modes d accès aux zones mémoire sont définis : Mode standard : accès aléatoire standard à une zone mémoire, Mode FIFO : accès circulaire à la mémoire, proche d une implémentation de FIFO en mémoire. Les règles d accès aux zones sont les suivantes : Un écrivain n accède qu à une seule zone mémoire, Un lecteur n accède qu à une seule zone mémoire, Une zone a au maximum un écrivain, Une zone peut avoir plusieurs lecteurs en mode mémoire, 7/39

8 Une zone ne peut avoir qu un seul lecteur en mode FIFO Interactions entre lecteurs et écrivain Du fait du fonctionnement orienté requête de l interface, les lecteurs et écrivains d une même zone doivent être synchronisés. Dans le mode standard un lecteur doit pouvoir connaître l adresse de la dernière donnée écrite par l écrivain pour juger de la validité des données qu il doit lire. En mode FIFO la gestion de l espace mémoire est principalement à la charge de l écrivain. Il écrit les données en mémoire et contrôle le niveau de remplissage de la mémoire. Le lecteur doit savoir s il y a des données disponibles dans la mémoire. L écrivain doit pour sa part être informé des lectures effectuées par le lecteur. Quelque soit le mode, le lecteur doit également pouvoir indiquer à l écrivain de sa zone qu il a terminé ses lectures sur les données de la zone Bibliothèque de modules fonctionnels Pour réaliser le fonctionnement décrit précédemment, nous proposons un modèle d interface configurable basé sur un ensemble de 4 acteurs : Ecrivain PCIe (PCI_W), Lecteur PCIe (PCI_R), Ecrivain mémoire (MEM_W), Lecteur mémoire (MEM_R). L accès aux ressources partagées citées précédemment nécessite l utilisation des 2 modules arbitre suivants : Arbitre PCIe (PCI_ARB), Arbitre mémoire (MEM_ARB). La mise en œuvre de ces modules nécessite l utilisation des 2 modules de contrôle suivants : Contrôleur d interruptions (INT_CTRL), Contrôleur principal (MAIN_CTRL). Enfin, les opérations relatives au contrôle et au statut de l opérateur sont gérées par le module suivant : Contrôleur d opérateur (OP_CTRL). La bibliothèque ainsi constituée est exploitable pour la génération d une interface reconfigurable. La figure suivante présente un exemple d interface réalisable à partir de cette bibliothèque. 8/39

9 MAIN CTRL 7 INT CTRL Interrupts Vers IP PCIe 8 PCI ARB 2 PCI ARB BUS PCI_W 4 PCI_R 4 1 MAIN CTRL BUS 4 PCI_R MEM_W 5 4 MEM_R OP CTRL MEM ARB BUS 3 MEM ARB 9 Vers Contrôleur Mémoire OUT0 IN1 IN0 6 OPERATOR Cet exemple représente l interface reconfigurable associée à un opérateur comportant 2 ports d entrées et 1 port de sortie. Les numéros inscrits sur le schéma identifient les divers types d interconnexions cohabitant au sein de l interface reconfigurable. Ces interconnexions seront détaillées dans la suite de ce document Description des modules Dans ce paragraphe nous allons définir le rôle de chaque module Généralités sur les acteurs Un acteur est un module qui réalise des transferts de données ou transactions. Les acteurs «lecteurs» (MEM_R et PCI_R) lisent des données d une mémoire (mémoire principale via le PCIe ou mémoire locale) et génèrent un flux de données en sortie. Les acteurs «écrivains» reçoivent un flux de données qu ils écrivent dans une mémoire. Pour réaliser une transaction un acteur doit connaître : l adresse mémoire concernée (source ou destination), le nombre de données à transférer Généralités sur les transactions Nous allons distinguer 3 types de transactions : Transactions élémentaires, Transactions répétées, Transactions multiples. Une transaction élémentaire est une transaction unitaire exécutée par un acteur. L acteur transfère N données de ou vers une adresse indiquée. Il peut être nécessaire de réaliser un même transfert de données plusieurs fois, à l intérieur d une boucle par exemple. Plutôt que de 9/39

10 répéter plusieurs la même demande de transaction, nous allons définir un facteur de répétition pour les transactions et donc des transactions répétées. L acteur effectuera K fois la même transaction. Enfin, un traitement peut nécessiter la réalisation de plusieurs transactions. Pour contrôler l opérateur reconfigurable au niveau traitement, nous allons définir des transactions multiples, c'est-à-dire un ensemble de transactions à effectuer les unes à la suite des autres. Nous pouvons donc définir un modèle général définissant une transaction par : Une adresse mémoire (source ou destination), Un nombre de données à transférer (en bytes), Un facteur de répétition, Un indicateur de fin de traitement, actif si la transaction est la dernière d un groupe. Un acteur doit être capable de stocker plusieurs transactions. Le nombre de transactions à effectuer pour un traitement peut être supérieur au nombre de transactions que peut stocker simultanément un acteur. Sa liste de transactions sera donc alimentée, par le contrôleur principal, au fur et à mesure de la complétion des transactions précédentes Acteur PCI_W Ce module a pour fonction le transfert de données vers le bus PCIe (écriture). Les données peuvent provenir de l opérateur ou de la mémoire locale Acteur PCI_R Ce module a pour fonction le transfert de données depuis le bus PCIe (lecture). Les données sont à destination de l opérateur ou de la mémoire locale Acteur MEM_W Ce module a pour fonction le transfert de données vers la mémoire locale (écriture). Les données peuvent provenir du bus PCIe ou de l opérateur Acteur MEM_R Ce module a pour fonction le transfert de données depuis la mémoire locale (lecture). Les données sont à destination du bus PCIe ou de l opérateur Arbitre PCI_ARB Ce module gère l accès à l IP PCIe. De nombreux acteurs peuvent solliciter des accès (en lecture ou écriture) au bus PCIe, mais il n y a qu une seule IP PCIe connectée physiquement au bus. Ce module doit donc arbitrer l accès à l IP PCIe en veillant à satisfaire les requêtes de tous les acteurs. 10/39

11 Arbitre MEM_ARB Ce module gère l accès au contrôleur de la mémoire locale. De nombreux acteurs peuvent solliciter des accès (en lecture ou écriture) à la mémoire locale, mais il n y a qu un seul contrôleur mémoire connecté physiquement à la mémoire externe. Ce module doit donc arbitrer l accès au contrôleur mémoire en veillant à satisfaire les requêtes de tous les acteurs Contrôleur OP_CTRL Ce module gère les communications de contrôle/statut avec l opérateur. Il doit permettre l envoie de données de contrôle, pour le paramétrage de l opérateur, et la récupération d information de statut, pour connaître l état de l opérateur Contrôleur INT_CTRL Ce module gère les interruptions générées par les acteurs. En effet les acteurs fonctionnent de manière asynchrone. La fin de transfert peut être signalée par interruption. Dans ce cas le module INT_CTRL a pour rôle de mémoriser les interruptions générées par les acteurs et d en informer le contrôleur principal. Ce module est donc connecté à tous les acteurs. La fin de traitement de l opérateur est aussi gérée par interruption donc ce module est aussi connecté à l opérateur Contrôleur MAIN_CTRL Ce module est le cœur de l interface reconfigurable. Il assure le contrôle général de l interface. Il reçoit des commandes depuis le bus PCIe et les transmet aux modules concernés (acteurs, contrôleur d interruptions, ou contrôleur de l opérateur). Son implémentation peut être matérielle et/ou logicielle. Ce module devra notamment implémenter des files de stockage de transactions pour chaque acteur de l interface, dans le but de les alimenter en transactions avec une faible latence Interfaces de communication inter modules Les modules introduits ci-dessus sont spécifiques (chacun réalise une fonction particulière) mais possèdent des interfaces de communication compatibles pour autoriser des interconnexions entre modules. La compatibilité entre acteurs, mémoire et opérateur notamment peut être représentée par le schéma suivant. 11/39

12 IN Opérateur OUT IN OUT Interface de type Req - Ack MEM_R MEM_W PCI_R PCI_W Interface compatible arbitre Mémoire Interface compatible arbitre PCIe Une interface permet le transfert de flux de données de l opérateur vers les acteurs écrivain (vers PCIe ou mémoire) ainsi que le transfert de flux vers l opérateur à partir des acteurs lecteur. Les acteurs PCIe doivent pour leur part inclure une interface compatible avec l arbitre PCIe, de même pour les acteurs mémoire avec l arbitre mémoire. Le tableau suivant regroupe les différentes interfaces disponibles sur les modules de la bibliothèque. Interfaces «bus» Interfaces «point à point» Main CTRL Bus PCI ARB Bus MEM ARB Bus Req-Ack Port Status Port OP CTRL Port Int Port PCIe IP Port PCI_W X X X X PCI_R X X X X MEM_W X X X X MEM_R X X X X PCI_ARB X X MEM_ARB X X OP_CTRL X X INT_CTRL X X MAIN_CTRL X X X Les interfaces sont regroupées en 2 familles : les interfaces dites «de type point à point», reliant uniquement 2 modules, et les interfaces dites «de type bus» permettant à un module de communiquer avec plusieurs autres modules. Nous allons maintenant présenter chaque interface Main CTRL Bus (1) C est le bus de contrôle principal de l interface reconfigurable. Il permet au module MAIN_CTRL d envoyer des données de contrôle à tous les acteurs (PCI_W, PCI_R, MEM_W, MEM_R) et contrôleurs (OP_CTRL, INT_CTRL). Le module MAIN_CTRL est maître sur ce bus, les autres modules sont esclaves. Ce bus permet l accès, depuis le maître, à différents registres de contrôle définis dans chaque module esclave. Une MEM CTRL Port 12/39

13 interface standard comprenant bus d adresse, bus de données, signaux de lecture, d écriture, d acquittement et de sélection convient pour cette interface PCI ARB Bus (2) Ce bus véhicule les communications entre l arbitre PCIe et les modules lecteurs et écrivains PCI (PCI_R et PCI_W). Il permet à tout acteurs PCI d envoyer ou de récupérer des données à partir de l arbitre PCI. Il doit pour cela proposer une interface permettant de réaliser des transferts de type DMA MEM ARB Bus (3) Ce bus véhicule les communications entre l arbitre mémoire et les modules lecteurs et écrivains mémoire (MEM_R et MEM_W). Il permet à tout acteur mémoire d envoyer ou de récupérer des données à partir de l arbitre mémoire. Il doit pour cela proposer une interface permettant de réaliser des transferts orientés mémoire, avec BURST Req-Ack Port (4) Les ports «Req-Ack» sont des ports véhiculant des flux de données. Ils permettent des échanges de données entre acteurs, ou entre un acteur et l opérateur. Cette interface de communication doit proposer un fonctionnement de type contrôle de FIFO avec un module initiateur et un module destinataire qui doit acquitter les transferts. Le chronogramme suivant illustre le fonctionnement d un port Req-Ack. clk req ack data C0 C1 C2 C3 C4 L initiateur positionne le signal Req à 1 en présence d une donnée à transmettre (signal data). Le destinataire positionne en retour Ack à 1 quand il a pris en compte le transfert. La donnée et le signal Req sont maintenus tant que le transfert n a pas été acquitté, c est le cas pour la donnée C1 sur le chronogramme Status Port (5) Les ports «Status» sont utilisés par les acteurs couplés, accédant à une même zone mémoire (un écrivain, un ou plusieurs lecteurs possible). Ce port fournit simplement des informations, aucun contrôle n est à priori nécessaire. 13/39

14 L ensemble de signaux suivant peut suffire à la réalisation de cette interface de communication : Wr_pos[n : 0] : pointeur d écriture en mode mémoire, information générée par l écrivain. Tr_end[m : 0] : signaux de fin de transaction. m+1 lecteurs peuvent être connectés à un écrivain en mode mémoire. Empty : indication de mémoire vide en mode FIFO, signal généré par l écrivain. Read_ack : indication de lecture en mode FIFO, signal généré par le lecteur OP CTRL Port (6) Ce port permet l envoie de données à l opérateur (paramétrage) et la récupération d informations en provenance de l opérateur (statut). Une interface de type mémoire accessible en lecture et en écriture peut convenir pour accéder à un ensemble de registres définis dans l opérateur Int Port (7) Ce port correspond au port général d interruption. Il permet au contrôleur d interruptions de demander une interruption au contrôleur principal. Il peut correspondre à un fil unique reliant les 2 modules PCIe IP Port (8) Vers IP PCIe 8 PCI ARB 2 PCI ARB BUS Ce port connecte l arbitre PCIe à l IP PCIe. Il devra respecter le protocole de communication défini par l IP PCIe du coté de l application. 14/39

15 MEM CTRL Port (9) MEM ARB BUS 3 MEM 9 ARB Vers Contrôleur Mémoire Ce port connecte l arbitre mémoire au contrôleur mémoire. Il devra respecter le protocole défini par le contrôleur mémoire du coté de l application Génération d une interface La génération d une interface pour un opérateur dédié consiste donc à spécifier un agencement entre différents modules de la bibliothèque. Il conviendra donc de définir un langage permettant de spécifier un schéma d interconnexion de modules. Basé sur ce langage, un programme ou script capable de générer l architecture matérielle (VHDL ou Verilog) de l interface désirée devra être également développé. 4. Connexions entre interface et opérateur La fonctionnalité générale de l interface reconfigurable est d assurer les échanges de données avec l opérateur reconfigurable. Nous allons donc nous intéresser aux connexions entre les 2 modules. Ces connexions sont d autant plus importantes qu elles conditionnent la conception de chaque opérateur reconfigurable. 15/39

16 Reconfigurable interface Reconfigurable Operator LOCAL MEMORY MEM CTRL IP Control/Status Port MAIN MEMORY 16X PCIe IP RIf Input Ports Output Ports ROp 4.1. Signaux de contrôle standard Indépendamment de la fonction réalisée par l opérateur, celui doit contenir un certain nombre de signaux standard. Signal d horloge : clk Signal de reset : reset Ce signal est généré par l interface et entraîne une initialisation de l opérateur. Il est actif à l état haut Port de contrôle et de statut Pour permettre l accès aux registres de l opérateur les signaux suivants peuvent être utilisés : Adresse du registre : addr[n : 0] Demande d écriture : write Demande de lecture : read Données à écrire : din[m : 0] Données à lire : dout[m : 0] Acquittement : ack Ce signal acquitte l accès demandé. Tous les signaux sont actifs à l état haut Ports de données Les ports de données (entrée ou sortie) ont une interface de communication de type Req-Ack (fonctionnement présenté au paragraphe 3.6.4). L interface reconfigurable est initiatrice des transferts pour les ports d entrée et destinataire pour les ports de sortie. A l inverse, 16/39

17 l opérateur est destinataire pour un port d entrée et initiateur pour un port de sortie. Les signaux présentés dans cette section ne permettent pas la gestion de la fin des traitements dans le cas où l opérateur reconfigurable réalise des opérations de filtrage. Ce point du fonctionnement est présenté dans la section suivante. 5. Gestion d un opérateur de filtrage L opérateur de traitement pouvant réaliser des opérations de filtrage sur les données entrantes, le nombre de données en sortie peut ne pas être connu à l avance. Un signal de fin de traitement est donc généré quand l opérateur a sorti tous les résultats calculés Gestion de la fin de traitement par les acteurs Les acteurs qui envoient des données à l opérateur doivent lui fournir une information de fin de données entrantes. L opérateur est ainsi capable de générer une information de fin de données sortantes, sur ses ports de sortie, à destination des acteurs qui reçoivent des données de l opérateur. Cette information agit comme un ordre de flush pour ces acteurs. Pour réaliser ce fonctionnement un signal «end» pourra être rajouté à l interface Req-Ack décrite précédemment dans ce document comme le montre la figure suivante. clk req ack end data C0 C1 C2 C3 C4 Le signal «end» sera généré par un acteur quand la transaction qu il réalise sera indiquée comme étant la dernière d un groupe. Un signal «end_int» est envoyé vers le contrôleur d interruptions puis remonté vers le contrôleur principal qui signalera la fin du traitement par un message d interruption sur le bus PCIe. 17/39

18 5.2. Indication de la fin de traitement à l utilisateur Si le signalement de la fin de traitement par interruption est choisi par l utilisateur, le contrôleur principal enverra un message d interruption sur le bus PCIe. Le nombre effectif de données transférées pourra être inclus dans le message, ou sera lu dans un registre de statut de l opérateur. 6. Programmation Pour exploiter l accélérateur, l application cible doit pouvoir le configurer et lui envoyer des ordres de transfert de données. Le driver (ou une couche logicielle supérieure basée sur le driver) doit fournir des primitives adaptées à l architecture de l accélérateur, et notamment à celle de l interface reconfigurable Primitives bas niveau Nous allons définir dans ce paragraphe un ensemble de primitive pouvant permettre le contrôle de l interface reconfigurable, et plus généralement de l accélérateur, depuis l application utilisateur Identification Pour commander l interface il est nécessaire d adresser des requêtes de transfert précises à chaque acteur. Les acteurs doivent être clairement identifiés au moment de la génération de l interface. Ainsi le concepteur de l application pourra directement communiquer avec les acteurs pour réaliser les transactions désirées Concept de transaction Comme indiqué précédemment dans ce document, une transaction correspond à un transfert de données réalisé par un acteur. La transaction déplace des données entre une unité mémoire et une interface de type flux (Interface Req-Ack) et peut être répétée par l acteur. Une transaction nécessite donc les informations suivantes : L adresse des données dans l unité mémoire à lire ou écrire, Le nombre de données à transférer, Le nombre de répétition souhaité, L indentification de fin de traitement, et l identifiant de l acteur concerné. Comme indiqué précédemment un acteur réalise des transactions à l intérieur d une zone mémoire. Les mémoires (principale et locale) sont en effet découpées en zone. L adresse indiquée pour la réalisation d une transaction sera donc une adresse relative à l intérieur de la zone affecté à l acteur. Les informations relatives à la zone (adresse de début et taille) 18/39

19 seront indiquées à l acteur avant l envoi des transactions pour la zone concernée. En supposant l identité d un acteur cible connue, on dispose des fonctions suivantes pour commander l interface Affectation d une zone mémoire à un acteur Un acteur doit être initialisé en vue de la réalisation de transactions. L initialisation permet notamment la définition de la zone mémoire sur laquelle travaille l acteur. La fonction act_assign permet d affecter une zone mémoire particulière à un acteur : act_assign (zone_start, zone_size, ACT_ID) Avec : zone_start, l adresse de début de la zone mémoire affectée à l acteur, zone_size, la taille de la zone mémoire, ACT_ID, l identifiant de l acteur concerné Demande de transactions sur un acteur La fonction act_request permet l envoi d une transaction à un acteur : act_request (mem_offset, tx_size, nb_redo, end_tx, ACT_ID) Avec : ofset_addr, offset de lecture/écriture dans la zone mémoire de l acteur, tx_size, le nombre d octets à lire/écrire, nb_redo, le nombre de répétition de la transaction, end_tx, l indicateur de fin de traitement, ACT_ID, l identifiant de l acteur concerné. Cette fonction est non bloquante : elle poste une demande de transaction mais n attend pas la fin de la transaction Arrêt d un acteur Il peut être nécessaire de vouloir interrompre un acteur en cours de fonctionnement. La fonction act_reset provoque une remise à zéro immédiate d un acteur. act_reset (ACT_ID) Avec : ACT_ID, l identifiant de l acteur concerné. 19/39

20 La transaction en cours est arrêtée. Toutes les transactions en attente, au niveau de l acteur et au niveau du contrôleur principal, sont supprimées Paramétrage de l opérateur La fonction rop_config permet l envoie de données de paramétrage à l opérateur : rop_config(*param_buf, nb_param) Avec : param_buf, un buffer contenant un ensemble de couples {reg_num, param_data c'est-à-dire des paires de numéro de registre interne à l opérateur et de valeur à stocker dans le registre, nb_param, le nombre de couple à envoyer à l opérateur Récupération du statut de l opérateur La fonction rop_stat permet la récupération de données de statut de l opérateur : rop_stat(*reg_tab, nb_reg, *stat_buf) Avec : reg_tab, un tableau contenant un ensemble de numéros de registres à lire dans l opérateur, nb_reg, le nombre de numéro contenu dans le tableau reg_tab, stat_buf, le buffer dans lequel les données de statut seront reçues. L exploitation des données retournées est à la charge de l application appelant la fonction Réset de l opérateur La fonction rop_reset initialise l opérateur : rop_reset() Cette fonction ne prend pas de paramètre. Cette fonction entraîne l activation de la broche reset de l opérateur. L effet du reset est donc à la charge du concepteur de l opérateur Récupération du statut de l interface La fonction rif_stat permet de permet de récupérer le statut de l interface reconfigurable : rif_stat(*stat_buf) Avec : 20/39

21 stat_buf, un buffer contenant les données de statut retournées par l interface. Les données de statut devront notamment contenir pour chaque acteur le nombre de transactions qui peuvent lui être envoyées (place disponible dans les files de stockage du contrôleur principal de l interface). Des informations relatives relative à la complétion des transactions peuvent être retournées. Il conviendra de définir une structure de données adaptée pour contenir les données de statut l interface. La taille du buffer stat_buf sera donc fixe et égale à celle de la structure Reset de l interface La fonction rif_reset initialise l interface : rif_reset() Cette fonction ne prend pas de paramètre. Cette fonction provoque un reset de l interface reconfigurable et de l accélérateur comme décrit au paragraphe Attente de la fin d un traitement La fonction get_running_status est permet de vérifier si l accélérateur à terminer son traitement : int get_running_status() Cette fonction n est pas bloquante. Elle interroge le contrôleur principale pour savoir si toutes les transactions envoyées à la carte on été réalisées. Elle retourne 1 si les transactions sont terminées, 0 sinon. Des traitements complexes peuvent être réalisés sur l accélérateur à partir des fonctions que nous venons de décrire. Il demeure toutefois nécessaire de définir des fonctions plus générales de configuration, de reset, de debug, de test ou de débug permettant de contrôle l accélérateur dans son ensemble. Ces fonctions particulières ne seront pas détaillées dans ce document Primitives haut niveau Les fonctions décrites dans ce paragraphe permettent de gérer l interface à un niveau d abstraction plus élevé. Ici la gestion se fait au niveau des ports de l opérateur plutôt qu au niveau des acteurs. Ces fonctions s appuient sur les interconnexions possibles d acteurs en amont et en aval des ports de données de l opérateur reconfigurable. 21/39

22 Identification des scénarios de fonctionnement Nous pouvons identifier 5 modes de traitement des données transitant par les ports de l opérateur comme le montre la figure suivante. Mémoire Mémoire locale locale Stockage temporaire Lecture avec stockage Écriture avec stockage Port0 Port1 Port2 Port3 Opérateur Opérateur reconfigurable reconfigurable Mémoire Mémoire principale principale Écriture directe Lecture directe Port4 Port5 L écriture directe correspond à l alimentation d un port directement depuis la mémoire principale. La lecture directe correspond à la récupération de données depuis un port directement vers la mémoire principale. L écriture avec stockage correspond à l alimentation d un port à partir de données provenant de la mémoire locale. Les données sont initialement copiées à partir de la mémoire principale et transmises au port à mesure que la disponibilité des données augmente en mémoire locale. Les accès suivants se font directement à partir de la mémoire. La lecture avec stockage correspond à la récupération de données depuis un port avec un stockage temporaire en mémoire locale avant de les renvoyer vers la mémoire principale. Ce fonctionnement permet notamment d éviter le remplissage des FIFOs de sortie de l opérateur, si celui-ci renvoie un nombre important de données sur une courte période. Le passage par la mémoire permet ainsi d absorber la latence du bus PCIe. Enfin le stockage temporaire correspond à la lecture d un flux, en provenance d un port de sortie de l opérateur, qui doit être réinjecté sur un port d entrée. Le stockage en mémoire locale permet ainsi la simulation d une FIFO de profondeur importante. Cette liste de scénarios découle de l étude d applications concrètes. Il peut donc exister des scénarios non représentés pour des applications particulières. Cette partie pourra être mise à jour pour prendre en compte de nouveaux scénarios. 22/39

23 Représentation des interconnections Le schéma d interconnexion de l interface reconfigurable doit être exploité pour le contrôle de l interface. Pour un opérateur donné, un fichier (fichier d entête C ou autre langage) pourra par exemple contenir pour chaque port un pointeur vers une structure représentant les acteurs associés avec ce port. Ces structures contiendront les identifiants des acteurs à utiliser pour alimenter ou récupérer des données sur un port donné. La figure suivante représente les différentes structures associées aux scénarios de fonctionnement décrits au paragraphe précédent. L utilisateur a accès à une table représentant les ports de l interface. La table contient une structure à 2 champs par port. La structure contient, d une part, un pointeur vers une structure contenant les identifiants des acteurs intervenant dans la mise en œuvre du port, et d autre part, une valeur représentant le type du port. Nous distinguons 6 types de ports : LoopR : Port lu pour le stockage temporaire en mémoire locale, LoopW : Port écrit après stockage temporaire en mémoire locale, RMem : Port en lecture avec stockage, WMem : Port en écriture avec stockage, Write : Port en écriture directe, RMem : Port en lecture directe. L utilisateur dispose de primitives dédiées pour exploiter ces ports : des primitives d ouverture, de fermeture et d arrêt pour le contrôle, des primitives de transfert pour la demande de transactions sur les ports initialisation d un port Les opérations de transfert (écriture ou lecture) sur un port sont possibles après initialisation du port. L initialisation du port permet 23/39

24 notamment de définir la zone mémoire sur laquelle travaille chaque acteur mis en jeu pour les échanges de données sur ce port. Nous pouvons définir une fonction d initialisation commune à tous les ports. Cette fonction utilise le type du port pour spécialiser l initialisation. port_assign(main_addr, local_addr, zone_size, port_num) main_addr : adresse de début de la zone en mémoire principale, local_addr : adresse de début de la zone en mémoire locale, zone_size : taille de la zone mémoire en octets, port_num : numéro du port à ouvrir. Suivant le type de port une ou deux adresses sont utilisées. Le paramètre inutile sera ignoré par la fonction. La fonction port_open réalise la tache suivante : Port_assign (main_addr,local_addr, zone_size, port_num){ If(port_tab[port_num].type == LoopR){ Act_assign (local_addr, zone_size, port_tab[port_num].ptr->mem_w_id) ; Return ; If(port_tab[port_num].type == LoopW){ Act_assign (local_addr, zone_size, port_tab[port_num].ptr->mem_r_id) ; Return ; If(port_tab[port_num].type == RMem){ Act_assign (main_addr, zone_size, port_tab[port_num].ptr->pci_w_id) ; Act_assign (local_addr, zone_size, port_tab[port_num].ptr->mem_w_id) ; Act_assign (local_addr, zone_size, port_tab[port_num].ptr->mem_r_id) ; Return ; If(port_tab[port_num].type == WMem){ Act_assign (main_addr, zone_size, port_tab[port_num].ptr->pci_r_id) ; Act_assign (local_addr, zone_size, port_tab[port_num].ptr->mem_w_id) ; Act_assign (local_addr, zone_size, port_tab[port_num].ptr->mem_r_id) ; Return ; If(port_tab[port_num].type == Write){ Act_assign (main_addr, zone_size, port_tab[port_num].ptr->pci_r_id) ; Return ; If(port_tab[port_num].type == Read){ Act_assign (main_addr, zone_size, port_tab[port_num].ptr->pci_w_id) ; Return ; 24/39

25 Arrêt forcé d un port Comme pour la gestion au niveau «acteurs» il est possible de forcer l arrêt des transactions sur un port. La fonction d arrêt provoque un reset immédiat de tous les acteurs mis en jeu pour le port sélectionné. Nous pouvons définir une fonction de reset commune à tous les ports. Cette fonction utilise le type du port pour spécialiser l initialisation. port_reset(port_num) port_num : numéro du port à arrêter. La fonction port_reset réalise la tache suivante : Port_reset (port_num){ If(port_tab[port_num].type == LoopR){ Act_reset (port_tab[port_num].ptr->mem_w_id) ; Return ; If(port_tab[port_num].type == LoopW){ Act_reset (port_tab[port_num].ptr->mem_r_id) ; Return ; If(port_tab[port_num].type == RMem){ Act_reset (port_tab[port_num].ptr->pci_w_id) ; Act_reset (port_tab[port_num].ptr->mem_w_id) ; Act_reset (port_tab[port_num].ptr->mem_r_id) ; Return ; If(port_tab[port_num].type == WMem){ Act_reset (port_tab[port_num].ptr->pci_r_id) ; Act_reset (port_tab[port_num].ptr->mem_w_id) ; Act_reset (port_tab[port_num].ptr->mem_r_id) ; Return ; If(port_tab[port_num].type == Write){ Act_reset (port_tab[port_num].ptr->pci_r_id) ; Return ; If(port_tab[port_num].type == Read){ Act_reset (port_tab[port_num].ptr->pci_w_id) ; Return ; 25/39

26 Les fonctions de contrôle sont communes à tous les types de port. Par contre, il existe une fonction de transfert dédiée pour chaque type de port Port en écriture directe Mémoire Mémoire locale locale Mémoire Mémoire principale principale PCI_R Opérateur Opérateur reconfigurable reconfigurable Dans cette configuration, le seul acteur mis en jeu est un PCI_R qui transfère des données de la mémoire principale vers un port d entrée de l opérateur. Nous définissons la fonction suivante : port_write(*tr_buf, nb_tr, port_num) *tr_buf : pointeur vers un tableau de transactions à effectuer, nb_tr : nombre de transactions dans le tableau, port_num : numéro du port concerné par la transaction. Cette fonction demande l exécution de nb_tr transactions, stockées dans le tableau tr_buf, vers le port port_num. Chaque transaction sollicite tout ou partie de la zone mémoire principale désignée. Le tableau tr_buf contient un ensemble de nb_tr transactions représentées par des quadruplets de la forme : offset : adresse relative en mémoire principale des données à transférer, size : taille des données à transférer, redo : nombre de répétition de la transaction, end_tx : indicateur de fon de traitement. La fonction port_write réalise la tache suivante : port_write(src_addr, zone_size, *tr_buf, nb_tr, port_num){ int i ; for(i = 0 ; i<nb_tr ; i++) act_request(tr_buf[i]->offset, tr_buf[i]->size, tr_buf[i]->redo, tr_buf[i]->end_tx, port_tab[port_num].ptr->pci_r_id) ; 26/39

27 Toutes les transactions, contenues dans le tableau tr_buf, sont envoyées à l acteur PCI_R par l intermédiaire de la fonction tr_request Port en écriture avec stockage Mémoire Mémoire locale locale MEM_R MEM_W PCI_R Opérateur Opérateur reconfigurable reconfigurable Mémoire Mémoire principale principale Dans cette configuration, 3 acteurs sont mis en jeu. Un PCI_R lit les données depuis la mémoire principale. Il les envoie à un MEM_W qui les écrit en mémoire locale. Enfin un MEM_R lit la mémoire locale pour alimenter le port d entrée de l opérateur. Nous définissons la fonction suivante : port_write_mem(*tr_buf, nb_tr, port_num) *tr_buf : pointeur vers un tableau de transactions à effectuer, nb_tr : nombre de transactions dans le tableau, port_num : numéro du port concerné par la transaction. Cette fonction demande l exécution de nb_tr transactions, stockées dans le tableau tr_buf, vers le port port_num. Chaque transaction sollicite tout ou partie de la zone mémoire désignée. Le tableau tr_buf contient un ensemble de nb_tr transactions représentées par des quadruplets de la forme : offset : adresse relative en mémoire locale des données à transférer, size : taille des données à transférer, redo : nombre de répétition de la transaction, end_tx : indicateur de fin de traitement. L appel à cette fonction déclanchera une transaction sur le PCI_R, une transaction sur le MEM_W et nb_tr transactions sur le MEM_R. La fonction port_write_mem réalise la tache suivante : 27/39

28 port_write_mem( *tr_buf, nb_tr, port_num){ act_request(0, zone_size, 1, port_tab[port_num]->pci_r_id) ; act_request(0, zone_size, 1, port_tab[port_num]->mem_w_id) ; int i ; for(i = 0 ; i<nb_tr ; i++) act_request(tr_buf[i]->offset, tr_buf[i]->size, tr_buf[i]->redo, port_tab[port_num].ptr->mem_r_id) ; Les transactions permettant la copie des données de la mémoire principale à la mémoire locale sont envoyées aux 2 acteurs PCI_R et MEM_W par 2 appels à la fonction tr_request. Enfin toutes les transactions, contenues dans le tableau tr_buf, sont envoyées au MEM_R par l intermédiaire de la fonction tr_request Port en lecture directe Mémoire Mémoire locale locale Mémoire Mémoire principale principale PCI_W Opérateur Opérateur reconfigurable reconfigurable Dans cette configuration, un seul acteur est mis en jeu. Un PCI_W reçoit des données d un port de sortie de l opérateur et les écrit dans la mémoire principale. Nous définissons la fonction suivante : port_read(*tr_buf, nb_tr, port_num) *tr_buf : pointeur vers un tableau de transactions à effectuer, nb_tr : nombre de transactions dans le tableau, port_num : numéro du port concerné par la transaction. Cette fonction demande l exécution de nb_tr transactions, stockées dans le tableau tr_buf, depuis le port port_num. Chaque transaction écrit tout ou partie de la zone mémoire désignée. Le tableau tr_buf contient un ensemble de nb_tr transactions représentées par des quadruplets de la forme : offset : adresse relative des données à transférer, size : taille des données à transférer, 28/39

29 redo : nombre de répétition de la transaction, end_tx : indicateur de fin de traitement. La fonction port_read réalise la tache suivante : port_read(*tr_buf, nb_tr, port_num){ int i ; for(i = 0 ; i<nb_tr ; i++) act_request(tr_buf[i]->offset, tr_buf[i]->size, tr_buf[i]->redo, tr_buf[i]->end_tx, port_tab[port_num].ptr->pci_w_id) ; Toutes les transactions, contenues dans le tableau tr_buf, sont envoyées à l acteur PCI_W par l intermédiaire de la fonction tr_request Port en lecture avec stockage Mémoire Mémoire locale locale MEM_W MEM_R PCI_W Opérateur Opérateur reconfigurable reconfigurable Mémoire Mémoire principale principale Dans cette configuration, 3 acteurs sont mis en jeu. Un MEM_W lit les données depuis l opérateur et les écrit en mémoire locale. Un MEM_R lit les données de la mémoire locale et les envoie à un PCI_W qui les écrit en mémoire principale. Nous définissons la fonction suivante : port_read_mem(*tr_buf, nb_tr, port_num) *tr_buf : pointeur vers un tableau de transactions à effectuer, nb_tr : nombre de transactions dans le tableau, port_num : numéro du port concerné par la transaction. Cette fonction demande l exécution de nb_tr transactions, stockées dans le tableau tr_buf, vers le port port_num. Chaque transaction sollicite tout ou partie de la zone mémoire désignée. Le tableau tr_buf contient un ensemble de nb_tr transactions représentées par des quadruplets de la forme : 29/39

30 offset : adresse relative en mémoire locale des données à transférer, size : taille des données à transférer, redo : nombre de répétition de la transaction, end_tx : indicateur de fin de traitement. L appel à cette fonction déclanchera nb_tr transactions sur le MEM_W, le MEM_R et le PCI_W. La fonction port_read_mem réalise la tache suivante : port_read_mem(*tr_buf, nb_tr, port_num){ int i ; for(i = 0 ; i<nb_tr ; i++) act_request(tr_buf[i]->offset, tr_buf[i]->size, tr_buf[i]->redo, tr_buf[i]->end_tx, port_tab[port_num].ptr->pci_w_id) ; act_request(tr_buf[i]->offset, tr_buf[i]->size, tr_buf[i]->redo, tr_buf[i]->end_tx, port_tab[port_num].ptr->mem_r_id) ; act_request(tr_buf[i]->offset, tr_buf[i]->size, tr_buf[i]->redo, tr_buf[i]->end_tx, port_tab[port_num].ptr->mem_w_id) ; Toutes les transactions, contenues dans le tableau tr_buf, sont envoyées aux acteurs PCI_W, MEM_R et MEM_W par l intermédiaire de la fonction tr_request Ports en rebouclage Mémoire Mémoire locale locale MEM_R MEM_W Opérateur Opérateur reconfigurable reconfigurable Mémoire Mémoire principale principale Dans cette configuration, 2 acteurs sont mis en jeu. Un MEM_W reçoit des données depuis un port de sortie de l opérateur et les écrit dans la mémoire. D autre part un MEM_R relit les données en mémoire locale pour alimenter un port d entrée de l opérateur. Nous définissons la fonction suivante : port_feedback(*tr_buf, nb_tr, src_port_num, dst_port_num) 30/39

31 *tr_buf : pointeur vers un tableau de transactions à effectuer, nb_tr : nombre de transactions dans le tableau, src_port_num : numéro du port émetteur de données, dst_port_num : numéro du port récepteur de données. Cette fonction demande l exécution de nb_tr transactions, stockées dans le tableau tr_buf, entre les ports src_port_num et dst_port_num. Chaque transaction sollicite tout ou partie de la zone mémoire désignée. Le tableau tr_buf contient un ensemble de nb_tr transactions représentées par des quadruplets de la forme : offset : adresse relative en mémoire locale des données à transférer, size : taille des données à transférer, redo : nombre de répétition de la transaction. end_tx : indicateur de fin de traitement. L appel à cette fonction déclanchera nb_tr transactions sur le MEM_W et nb_tr transactions sur le MEM_R. Les 2 acteurs sont configurés en mode FIFO. La fonction port_feedback réalise la tache suivante : port_feedback(*tr_buf, nb_tr, src_port_num,dst_port_num){ int i ; for(i = 0 ; i<nb_tr ; i++) act_request(tr_buf[i]->offset, tr_buf[i]->size, tr_buf[i]->redo, tr_buf[i]->end_tx, port_tab[port_num].ptr->mem_w_id) ; act_request(tr_buf[i]->offset, tr_buf[i]->size, tr_buf[i]->redo, tr_buf[i]->end_tx, port_tab[port_num].ptr->mem_r_id) ; Toutes les transactions, contenues dans le tableau tr_buf, sont envoyées aux 2 acteurs par l intermédiaire de la fonction tr_request. Dans tous les cas de figure, le paramètre end_tx de la dernière transaction du tableau doit être égal à 1 pour signaler que c est la dernière transaction du traitement. Le paramètre est égal à 0 pour les autres transactions du traitement. 31/39

32 7. Cas concret : Comparaison de chaînes de caractères Nous allons maintenant étudier le portage d une application sur notre architecture. L objectif est de voir, pour un calcul donné, l interface reconfigurable que l on devra générer et les commandes à envoyer à l accélérateur pour réaliser les traitements souhaités Programme de départ Soit le programme suivant réalisant la comparaison de N chaînes de caractères avec P chaînes de caractères. Les chaînes de caractères sont toutes de même taille SIZE_S. char CHAINE_S1[N][SIZE_S] ; char CHAINE_S2[P][SIZE_S] ; int TAB_RES[2*N*P] ; int Compare (char S1[], int N, char S2[], int P, int RES[]){ int sum, max, nb_res; int i ; nb_result = 0 ; for(i1=0 ; i1<n ; i1++){ for(i2=0 ; i2<p ; i2++){ sum=0 ; max=0 ; for(i=0 ; i<size_s ; i++){ sum = sum + SUBST_COST(S1[i1][i], S2[i2][i]) ; if(sum < 0) sum=0 ; if(sum > max) max=sum ; if(max > THRESHOLD){ RES[nb_res++] = i1 ; RES[nb_res++] = i2 ; return nb_res ; void main(){ k=compare(*chaine_s1, *CHAINE_S2, *TAB_RES) Nous proposons d accélérer la fonction Compare() sur notre accélérateur reconfigurable. Les chaînes à comparer sont envoyées à la 32/39

33 carte qui effectue l opération de comparaison et renvoie les numéros des chaînes qui sont semblables Implémentation matérielle L opérateur reconfigurable de comparaison de chaînes à implémenter ici manipule donc 3 flux de données : Entrée S1 Entrée S2 Sortie RES Nous allons donc définir une interface reconfigure capable d alimenter cet opérateur. Dans un premier temps nous proposerons une solution n utilisant pas la mémoire locale, puis une solution utilisant la mémoire locale pour le flux S1, et enfin une solution utilisant la mémoire pour les deux flux d entrées S1 et S2. Cela nous permettra de voir les limitations et contraintes de chaque interface. Dans les schémas d architecture proposés, seuls les acteurs et leurs connexions de données sont représentés : les contrôleurs (contrôleur principal, d interruptions et d opérateur) présents dans toute interface reconfigurable ne seront pas représentés Toutes les chaînes en mémoire centrale Dans cette implémentation toutes les données proviennent de la mémoire centrale par l intermédiaire du bus PCIe. Le schéma de principe de l interface est représenté sur la figure suivante. LOCAL LOCAL MEMORY MEMORY MAIN MAIN MEMORY MEMORY MEM CTRL IP 16X PCIe IP PCIe ARB MEM ARB PCI_R 1 PCI_R 2 3 PCI_W S1 S2 RES Opérateur Opérateur On y retrouve 2 lecteurs PCI (PCI_R) pour les flux S1 et S2, et un écrivain PCI (PCI_W) pour le flux RES. 33/39

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE QCM Remarque : - A une question correspond au moins 1 réponse juste - Cocher la ou les bonnes réponses Barème : - Une bonne réponse = +1 - Pas de réponse = 0

Plus en détail

2. MAQUETTAGE DES SOLUTIONS CONSTRUCTIVES. 2.2 Architecture fonctionnelle d un système communicant. http://robert.cireddu.free.

2. MAQUETTAGE DES SOLUTIONS CONSTRUCTIVES. 2.2 Architecture fonctionnelle d un système communicant. http://robert.cireddu.free. 2. MAQUETTAGE DES SOLUTIONS CONSTRUCTIVES 2.2 Architecture fonctionnelle d un système communicant Page:1/11 http://robert.cireddu.free.fr/sin LES DÉFENSES Objectifs du COURS : Ce cours traitera essentiellement

Plus en détail

Programmation système I Les entrées/sorties

Programmation système I Les entrées/sorties Programmation système I Les entrées/sorties DUT 1 re année Université de Marne La vallée Les entrées-sorties : E/O Entrées/Sorties : Opérations d échanges d informations dans un système informatique. Les

Plus en détail

Contrôle d accès UTIL TP N 1 découverte

Contrôle d accès UTIL TP N 1 découverte Contrôle d accès UTIL TP N 1 découverte A partir de : Documents sur CD TIL : \CD usesame\documentations\produits_til\modules\util_tillys fpr_utilv2.pdf FTe_UTiL_V2.pdf UTiL2_express.pdf \CD usesame\documentations\logiciels_til\tilman

Plus en détail

Dynamic Host Configuration Protocol

Dynamic Host Configuration Protocol Dynamic Host Configuration Protocol 1 2 problèmes de gestion avec IP La Gestion des adresses IP Les adresses IP doivent être unique Nécessité d une liste d ordinateurs avec leurs adresses IP respectives

Plus en détail

Vers du matériel libre

Vers du matériel libre Février 2011 La liberté du logiciel n est qu une partie du problème. Winmodems Modem traditionnel Bon fonctionnement Plus cher Electronique propriétaire Blob sur DSP intégré au modem Bien reçu par les

Plus en détail

Les liaisons SPI et I2C

Les liaisons SPI et I2C DAMÉCOURT BENJAMIN AVRIL 28 Liaisons synchrones Les liaisons SPI et I2C Face arrière d un imac : trois ports USB, un port Firewire 4 et un port Firewire 8 CHRONOLOGIE ANNÉES 7 La liaison SPI et la création

Plus en détail

DHCP et NAT. Cyril Rabat cyril.rabat@univ-reims.fr. Master 2 ASR - Info09115 - Architecture des réseaux d entreprise 2012-2013

DHCP et NAT. Cyril Rabat cyril.rabat@univ-reims.fr. Master 2 ASR - Info09115 - Architecture des réseaux d entreprise 2012-2013 DHCP et NAT Cyril Rabat cyril.rabat@univ-reims.fr Master 2 ASR - Info09115 - Architecture des réseaux d entreprise 22-23 Cours n 9 Présentation des protocoles BOOTP et DHCP Présentation du NAT Version

Plus en détail

Algorithmique des Systèmes Répartis Protocoles de Communications

Algorithmique des Systèmes Répartis Protocoles de Communications Algorithmique des Systèmes Répartis Protocoles de Communications Master Informatique Dominique Méry Université de Lorraine 1 er avril 2014 1 / 70 Plan Communications entre processus Observation et modélisation

Plus en détail

Réseau Global MIDI Note applicative

Réseau Global MIDI Note applicative Réseau Global MIDI Note applicative 1 But du manuel Le but de cette note applicative est de démystifié l utilisation du MIDI transporté dans un Réseau Global MIDI. Ce réseau virtuel offre sans aucune restriction,

Plus en détail

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP COURS PROGRAMMATION INITIATION AU LANGAGE C SUR MICROCONTROLEUR PIC page 1 / 7 INITIATION AU LANGAGE C SUR PIC DE MICROSHIP I. Historique du langage C 1972 : naissance du C dans les laboratoires BELL par

Plus en détail

Network musical jammin

Network musical jammin Network musical jammin Projet PC2R - 2015 Pour ce projet, nous allons réaliser une application permettant d effectuer des jams sessions en temps-réel entre des musiciens répartis à travers le monde. Le

Plus en détail

Structure fonctionnelle d un SGBD

Structure fonctionnelle d un SGBD Fichiers et Disques Structure fonctionnelle d un SGBD Requetes Optimiseur de requetes Operateurs relationnels Methodes d acces Gestion de tampon Gestion de disque BD 1 Fichiers et Disques Lecture : Transfert

Plus en détail

Ordinateurs, Structure et Applications

Ordinateurs, Structure et Applications Ordinateurs, Structure et Applications Cours 10, Les interruptions Etienne Tremblay Université Laval, Hiver 2012 Cours 10, p.1 Les interruptions du 8086 Une interruption interrompt l exécution séquentielle

Plus en détail

Réplication des données

Réplication des données Réplication des données Christelle Pierkot FMIN 306 : Gestion de données distribuées Année 2009-2010 Echange d information distribuée Grâce à un serveur central Une seule copie cohérente Accès à distance

Plus en détail

Chapitre 4 : Exclusion mutuelle

Chapitre 4 : Exclusion mutuelle Chapitre 4 : Exclusion mutuelle Pierre Gançarski Juillet 2004 Ce support de cours comporte un certain nombre d erreurs : je décline toute responsabilité quant à leurs conséquences sur le déroulement des

Plus en détail

Le Multicast. A Guyancourt le 16-08-2012

Le Multicast. A Guyancourt le 16-08-2012 Le Multicast A Guyancourt le 16-08-2012 Le MULTICAST Définition: On entend par Multicast le fait de communiquer simultanément avec un groupe d ordinateurs identifiés par une adresse spécifique (adresse

Plus en détail

Développement d un logiciel de messagerie instantanée avec Dotnet (version simplifiée)

Développement d un logiciel de messagerie instantanée avec Dotnet (version simplifiée) Développement d un logiciel de messagerie instantanée avec Dotnet (version simplifiée) Propriétés Description Intitulé long Formation concernée Matière Présentation Développement d un logiciel de messagerie

Plus en détail

REALISATION d'un. ORDONNANCEUR à ECHEANCES

REALISATION d'un. ORDONNANCEUR à ECHEANCES REALISATION d'un ORDONNANCEUR à ECHEANCES I- PRÉSENTATION... 3 II. DESCRIPTION DU NOYAU ORIGINEL... 4 II.1- ARCHITECTURE... 4 II.2 - SERVICES... 4 III. IMPLÉMENTATION DE L'ORDONNANCEUR À ÉCHÉANCES... 6

Plus en détail

Introduction à la Programmation Parallèle: MPI

Introduction à la Programmation Parallèle: MPI Introduction à la Programmation Parallèle: MPI Frédéric Gava et Gaétan Hains L.A.C.L Laboratoire d Algorithmique, Complexité et Logique Cours du M2 SSI option PSSR Plan 1 Modèle de programmation 2 3 4

Plus en détail

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE ARDUINO DOSSIER RESSOURCE POUR LA CLASSE Sommaire 1. Présentation 2. Exemple d apprentissage 3. Lexique de termes anglais 4. Reconnaître les composants 5. Rendre Arduino autonome 6. Les signaux d entrée

Plus en détail

Poker. A rendre pour le 25 avril

Poker. A rendre pour le 25 avril Poker A rendre pour le 25 avril 0 Avant propos 0.1 Notation Les parties sans * sont obligatoires (ne rendez pas un projet qui ne contient pas toutes les fonctions sans *). Celles avec (*) sont moins faciles

Plus en détail

«clustering» et «load balancing» avec Zope et ZEO

«clustering» et «load balancing» avec Zope et ZEO IN53 Printemps 2003 «clustering» et «load balancing» avec Zope et ZEO Professeur : M. Mignot Etudiants : Boureliou Sylvain et Meyer Pierre Sommaire Introduction...3 1. Présentation générale de ZEO...4

Plus en détail

Administration des ressources informatiques

Administration des ressources informatiques 1 2 La mise en réseau consiste à relier plusieurs ordinateurs en vue de partager des ressources logicielles, des ressources matérielles ou des données. Selon le nombre de systèmes interconnectés et les

Plus en détail

Sur un ordinateur portable ou un All-in-One tactile, la plupart des éléments mentionnés précédemment sont regroupés. 10) 11)

Sur un ordinateur portable ou un All-in-One tactile, la plupart des éléments mentionnés précédemment sont regroupés. 10) 11) 1/ Généralités : Un ordinateur est un ensemble non exhaustif d éléments qui sert à traiter des informations (documents de bureautique, méls, sons, vidéos, programmes ) sous forme numérique. Il est en général

Plus en détail

Gestion de mémoire secondaire F. Boyer, Laboratoire Sardes Fabienne.Boyer@imag.fr

Gestion de mémoire secondaire F. Boyer, Laboratoire Sardes Fabienne.Boyer@imag.fr Gestion de mémoire secondaire F. Boyer, Laboratoire Sardes Fabienne.Boyer@imag.fr 1- Structure d un disque 2- Ordonnancement des requêtes 3- Gestion du disque - formatage - bloc d amorçage - récupération

Plus en détail

Architecture des ordinateurs

Architecture des ordinateurs Architecture des ordinateurs Cours 4 5 novembre 2012 Archi 1/22 Micro-architecture Archi 2/22 Intro Comment assembler les différents circuits vus dans les cours précédents pour fabriquer un processeur?

Plus en détail

Julien MATHEVET Alexandre BOISSY GSID 4. Rapport RE09. Load Balancing et migration

Julien MATHEVET Alexandre BOISSY GSID 4. Rapport RE09. Load Balancing et migration Julien MATHEVET Alexandre BOISSY GSID 4 Rapport Load Balancing et migration Printemps 2001 SOMMAIRE INTRODUCTION... 3 SYNTHESE CONCERNANT LE LOAD BALANCING ET LA MIGRATION... 4 POURQUOI FAIRE DU LOAD BALANCING?...

Plus en détail

TP4 : Firewall IPTABLES

TP4 : Firewall IPTABLES Module Sécurité TP4 : Firewall IPTABLES Ala Rezmerita François Lesueur Le TP donnera lieu à la rédaction d un petit fichier texte contenant votre nom, les réponses aux questions ainsi que d éventuels résultats

Plus en détail

Pré-requis techniques

Pré-requis techniques Sommaire 1. PRÉAMBULE... 3 2. PRÉ-REQUIS TÉLÉCOM... 4 Généralités... 4 Accès Télécom supporté... 4 Accès Internet... 5 Accès VPN... 5 Dimensionnement de vos accès... 6 3. PRÉ-REQUIS POUR LES POSTES DE

Plus en détail

VIII- Circuits séquentiels. Mémoires

VIII- Circuits séquentiels. Mémoires 1 VIII- Circuits séquentiels. Mémoires Maintenant le temps va intervenir. Nous avions déjà indiqué que la traversée d une porte ne se faisait pas instantanément et qu il fallait en tenir compte, notamment

Plus en détail

Bases de programmation. Cours 5. Structurer les données

Bases de programmation. Cours 5. Structurer les données Bases de programmation. Cours 5. Structurer les données Pierre Boudes 1 er décembre 2014 This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License. Types char et

Plus en détail

INTERSYSTEMS CACHÉ COMME ALTERNATIVE AUX BASES DE DONNÉES RÉSIDENTES EN MÉMOIRE

INTERSYSTEMS CACHÉ COMME ALTERNATIVE AUX BASES DE DONNÉES RÉSIDENTES EN MÉMOIRE I N T E RS Y S T E M S INTERSYSTEMS CACHÉ COMME ALTERNATIVE AUX BASES DE DONNÉES RÉSIDENTES EN MÉMOIRE David Kaaret InterSystems Corporation INTERSySTEMS CAChé CoMME ALTERNATIvE AUx BASES de données RéSIdENTES

Plus en détail

Allocation de l adressage IP à l aide du protocole DHCP.doc

Allocation de l adressage IP à l aide du protocole DHCP.doc Allocation de l adressage IP à l aide du protocole DHCP.doc Sommaire 1. Ajout et autorisation d un service Serveur DHCP...2 1.1. Comment le protocole DHCP alloue des adresses IP...2 1.2. Processus de

Plus en détail

TD Architecture des ordinateurs. Jean-Luc Dekeyser

TD Architecture des ordinateurs. Jean-Luc Dekeyser TD Architecture des ordinateurs Jean-Luc Dekeyser Fiche 1 Nombres de l informatique Exercice 1 Une entreprise désire réaliser la sauvegarde de ses données sur un site distant. Le volume de données à sauvegarder

Plus en détail

ASR1 TD7 : Un microprocesseur RISC 16 bits

ASR1 TD7 : Un microprocesseur RISC 16 bits {Â Ö Ñ º ØÖ Ý,È ØÖ ºÄÓ Ù,Æ ÓÐ ºÎ ÝÖ Ø¹ ÖÚ ÐÐÓÒ} Ò ¹ÐÝÓÒº Ö ØØÔ»»Ô Ö Óº Ò ¹ÐÝÓÒº Ö» Ö Ñ º ØÖ Ý»¼ Ö½» ASR1 TD7 : Un microprocesseur RISC 16 bits 13, 20 et 27 novembre 2006 Présentation générale On choisit

Plus en détail

Techniques de stockage. Techniques de stockage, P. Rigaux p.1/43

Techniques de stockage. Techniques de stockage, P. Rigaux p.1/43 Techniques de stockage Techniques de stockage, P. Rigaux p.1/43 Techniques de stockage Contenu de ce cours : 1. Stockage de données. Supports, fonctionnement d un disque, technologie RAID 2. Organisation

Plus en détail

Cahier des charges. driver WIFI pour chipset Ralink RT2571W. sur hardware ARM7

Cahier des charges. driver WIFI pour chipset Ralink RT2571W. sur hardware ARM7 Cahier des charges driver WIFI pour chipset Ralink RT2571W sur hardware ARM7 RevA 13/03/2006 Création du document Sylvain Huet RevB 16/03/2006 Fusion des fonctions ARP et IP. SH Modification des milestones

Plus en détail

Temps Réel. Jérôme Pouiller <j.pouiller@sysmic.org> Septembre 2011

Temps Réel. Jérôme Pouiller <j.pouiller@sysmic.org> Septembre 2011 Temps Réel Jérôme Pouiller Septembre 2011 Sommaire Problèmatique Le monotâche Le multitâches L ordonnanement Le partage de ressources Problèmatiques des OS temps réels J. Pouiller

Plus en détail

INTRODUCTION AUX SYSTEMES D EXPLOITATION. TD2 Exclusion mutuelle / Sémaphores

INTRODUCTION AUX SYSTEMES D EXPLOITATION. TD2 Exclusion mutuelle / Sémaphores INTRODUCTION AUX SYSTEMES D EXPLOITATION TD2 Exclusion mutuelle / Sémaphores Exclusion mutuelle / Sémaphores - 0.1 - S O M M A I R E 1. GENERALITES SUR LES SEMAPHORES... 1 1.1. PRESENTATION... 1 1.2. UN

Plus en détail

Manuel du logiciel PrestaTest.

Manuel du logiciel PrestaTest. Manuel du logiciel. Ce document décrit les différents tests que permet le logiciel, il liste également les informations nécessaires à chacun d entre eux. Table des matières Prérequis de PrestaConnect :...2

Plus en détail

Internet - Outils. Nicolas Delestre. À partir des cours Outils réseaux de Paul Tavernier et Nicolas Prunier

Internet - Outils. Nicolas Delestre. À partir des cours Outils réseaux de Paul Tavernier et Nicolas Prunier Plan Internet - Outils Nicolas Delestre 1 DHCP 2 Firewall 3 Translation d adresse et de port 4 Les proxys 5 DMZ 6 VLAN À partir des cours Outils réseaux de Paul Tavernier et Nicolas Prunier 7 Wake On Line

Plus en détail

LE COURTAGE PRÊT AVEC OCLC 08 octobre 2013. Schéma de fonctionnement du prêt sans courtage. 4

LE COURTAGE PRÊT AVEC OCLC 08 octobre 2013. Schéma de fonctionnement du prêt sans courtage. 4 TABLE DES MATIÈRES Contexte. 2 Fonctionnement du prêt avec OCLC pour les établissements ayant plusieurs services de PEB. 2 Avec ou sans courtage.. 2 Fonctionnement du courtage.. 2 Le rôle du courtier.

Plus en détail

Exécutif temps réel Pierre-Yves Duval (cppm)

Exécutif temps réel Pierre-Yves Duval (cppm) Exécutif temps réel Pierre-Yves Duval (cppm) Ecole d informatique temps réel - La Londes les Maures 7-11 Octobre 2002 Plan Exécutif Tâches Evénements et synchronisation Partage de ressources Communications

Plus en détail

IV- Comment fonctionne un ordinateur?

IV- Comment fonctionne un ordinateur? 1 IV- Comment fonctionne un ordinateur? L ordinateur est une alliance du hardware (le matériel) et du software (les logiciels). Jusqu à présent, nous avons surtout vu l aspect «matériel», avec les interactions

Plus en détail

INF6500 : Structures des ordinateurs. Sylvain Martel - INF6500 1

INF6500 : Structures des ordinateurs. Sylvain Martel - INF6500 1 INF6500 : Structures des ordinateurs Sylvain Martel - INF6500 1 Cours 4 : Multiprocesseurs Sylvain Martel - INF6500 2 Multiprocesseurs Type SISD SIMD MIMD Communication Shared memory Message-passing Groupe

Plus en détail

Protocole de configuration dynamique des hôtes pour IPv6 (DHCPv6)

Protocole de configuration dynamique des hôtes pour IPv6 (DHCPv6) RFC3315 page - 1 - Droms, et autres Groupe de travail Réseau Demande for Comments : 3315 Catégorie : En cours de normalisation juillet 2003 Traduction Claude Brière de L Isle R. Droms, éditeur, Cisco J.

Plus en détail

1 Architecture du cœur ARM Cortex M3. Le cœur ARM Cortex M3 sera présenté en classe à partir des éléments suivants :

1 Architecture du cœur ARM Cortex M3. Le cœur ARM Cortex M3 sera présenté en classe à partir des éléments suivants : GIF-3002 SMI et Architecture du microprocesseur Ce cours discute de l impact du design du microprocesseur sur le système entier. Il présente d abord l architecture du cœur ARM Cortex M3. Ensuite, le cours

Plus en détail

Mise en place Active Directory / DHCP / DNS

Mise en place Active Directory / DHCP / DNS Mise en place Active Directory / DHCP / DNS Guillaume Genteuil Période : 2014 Contexte : L entreprise Diamond Info localisé en Martinique possède une cinquantaine de salariés. Basé sur une infrastructure

Plus en détail

Cours de Systèmes d Exploitation

Cours de Systèmes d Exploitation Licence d informatique Synchronisation et Communication inter-processus Hafid Bourzoufi Université de Valenciennes - ISTV Introduction Les processus concurrents s exécutant dans le système d exploitation

Plus en détail

Petit guide des sous-réseaux IP

Petit guide des sous-réseaux IP Petit guide des sous-réseaux IP Robert Hart, hartr@interweft.com.au version française par Laurent Caillat-Vallet, caillat@univ-lyon1.fr v1.0, 31 Mars 1997 Ce document décrit pourquoi et comment découper

Plus en détail

Table des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction

Table des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS Depuis SAS 9.2 TS2M3, SAS propose un nouveau langage de programmation permettant de créer et gérer des tables SAS : le DS2 («Data Step 2»). Ces nouveautés

Plus en détail

TD n o 8 - Domain Name System (DNS)

TD n o 8 - Domain Name System (DNS) IUT Montpellier - Architecture (DU) V. Poupet TD n o 8 - Domain Name System (DNS) Dans ce TD nous allons nous intéresser au fonctionnement du Domain Name System (DNS), puis pour illustrer son fonctionnement,

Plus en détail

Généralités sur le Langage Java et éléments syntaxiques.

Généralités sur le Langage Java et éléments syntaxiques. Généralités sur le Langage Java et éléments syntaxiques. Généralités sur le Langage Java et éléments syntaxiques....1 Introduction...1 Genéralité sur le langage Java....1 Syntaxe de base du Langage...

Plus en détail

Le langage C. Séance n 4

Le langage C. Séance n 4 Université Paris-Sud 11 Institut de Formation des Ingénieurs Remise à niveau INFORMATIQUE Année 2007-2008 Travaux pratiques d informatique Le langage C Séance n 4 But : Vous devez maîtriser à la fin de

Plus en détail

Serveur FTP. 20 décembre. Windows Server 2008R2

Serveur FTP. 20 décembre. Windows Server 2008R2 Serveur FTP 20 décembre 2012 Dans ce document vous trouverez une explication détaillé étapes par étapes de l installation du serveur FTP sous Windows Server 2008R2, cette présentation peut être utilisée

Plus en détail

Processus! programme. DIMA, Systèmes Centralisés (Ph. Mauran) " Processus = suite d'actions = suite d'états obtenus = trace

Processus! programme. DIMA, Systèmes Centralisés (Ph. Mauran)  Processus = suite d'actions = suite d'états obtenus = trace Processus 1) Contexte 2) Modèles de Notion de Points de vue Modèle fourni par le SX Opérations sur les 3) Gestion des Représentation des Opérations 4) Ordonnancement des Niveaux d ordonnancement Ordonnancement

Plus en détail

Sécurisation du réseau

Sécurisation du réseau Sécurisation du réseau La sécurisation du réseau d entreprise est également une étape primordiale à la sécurisation générale de votre infrastructure. Cette partie a pour but de présenter les fonctionnalités

Plus en détail

Chapitre VI- La validation de la composition.

Chapitre VI- La validation de la composition. Chapitre VI- La validation de la composition. Objectifs du chapitre : Expliquer les conséquences de l utilisation de règles de typage souples dans SEP. Présenter le mécanisme de validation des connexions

Plus en détail

La couche réseau Le protocole X.25

La couche réseau Le protocole X.25 La couche réseau Le protocole X.25 Michel Gardie GET/INT/LOR/RIP 20 décembre 2004 Réseau / X.25 Informations La version de ce document à la date d impression et de révision est temporaire. Quelkes feautes

Plus en détail

UFR de Mathématiques et Informatique Année 2009/2010. Réseaux Locaux TP 04 : ICMP, ARP, IP

UFR de Mathématiques et Informatique Année 2009/2010. Réseaux Locaux TP 04 : ICMP, ARP, IP Université de Strasbourg Licence Pro ARS UFR de Mathématiques et Informatique Année 2009/2010 1 Adressage IP 1.1 Limites du nombre d adresses IP 1.1.1 Adresses de réseaux valides Réseaux Locaux TP 04 :

Plus en détail

Hiérarchie matériel dans le monde informatique. Architecture d ordinateur : introduction. Hiérarchie matériel dans le monde informatique

Hiérarchie matériel dans le monde informatique. Architecture d ordinateur : introduction. Hiérarchie matériel dans le monde informatique Architecture d ordinateur : introduction Dimitri Galayko Introduction à l informatique, cours 1 partie 2 Septembre 2014 Association d interrupteurs: fonctions arithmétiques élémentaires Elément «NON» Elément

Plus en détail

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if Pierre Boudes 28 septembre 2011 This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike

Plus en détail

Transmissions série et parallèle

Transmissions série et parallèle 1. Introduction : Un signal numérique transmet généralement plusieurs digits binaires. Exemple : 01000001 ( huit bits). Dans une transmission numérique on peut envisager deux modes : les envoyer tous en

Plus en détail

OPTENET DCAgent 2.01. Manuel d'utilisateur

OPTENET DCAgent 2.01. Manuel d'utilisateur OPTENET DCAgent 2.01 Manuel d'utilisateur SOMMAIRE 1. INTRODUCTION...1 2. INSTALLATION...2 3. ÉTABLISSEMENT DES PERMISSIONS...4 Pour de plus amples informations, reportez-vous aux annexes «Conditions requises

Plus en détail

10 tâches d administration simplifiées grâce à Windows Server 2008 R2. 1. Migration des systèmes virtuels sans interruption de service

10 tâches d administration simplifiées grâce à Windows Server 2008 R2. 1. Migration des systèmes virtuels sans interruption de service 10 tâches d administration simplifiées grâce à Windows Server 2008 R2 Faire plus avec moins. C est l obsession depuis plusieurs années de tous les administrateurs de serveurs mais cette quête prend encore

Plus en détail

Point sur la virtualisation

Point sur la virtualisation Le 04/03/2013 OBJECTIF VIRTUALISATION mathieuc@exakis.com EXAKIS NANTES Identification du document Titre Projet Date de création Date de modification Point sur la Objectif 04/03/2013 26/03/2013 virtualisation

Plus en détail

Sciences de Gestion Spécialité : SYSTÈMES D INFORMATION DE GESTION

Sciences de Gestion Spécialité : SYSTÈMES D INFORMATION DE GESTION Sciences de Gestion Spécialité : SYSTÈMES D INFORMATION DE GESTION Classe de terminale de la série Sciences et Technologie du Management et de la Gestion Préambule Présentation Les technologies de l information

Plus en détail

Cours d initiation à la programmation en C++ Johann Cuenin

Cours d initiation à la programmation en C++ Johann Cuenin Cours d initiation à la programmation en C++ Johann Cuenin 11 octobre 2014 2 Table des matières 1 Introduction 5 2 Bases de la programmation en C++ 7 3 Les types composés 9 3.1 Les tableaux.............................

Plus en détail

SPF FIN. Patris Spécification de Use Case: 15-UC01 Obtenir de l'information patrimoniale. Version 1.1

SPF FIN. Patris Spécification de Use Case: 15-UC01 Obtenir de l'information patrimoniale. Version 1.1 SPF FIN Patris Spécification de Use Case: 15-UC01 Obtenir de l'information patrimoniale Version 1.1 Spécification de Use Case: 15-UC01 Obtenir de l'information patrimoniale Date: 17/06/2004 Historique

Plus en détail

Plan. École Supérieure d Économie Électronique. Plan. Chap 9: Composants et systèmes de sécurité. Rhouma Rhouma. 21 Juillet 2014

Plan. École Supérieure d Économie Électronique. Plan. Chap 9: Composants et systèmes de sécurité. Rhouma Rhouma. 21 Juillet 2014 École Supérieure d Économie Électronique Chap 9: Composants et systèmes de sécurité 1 Rhouma Rhouma 21 Juillet 2014 2 tagging et port trunk Création des via les commandes sur switch cisco 1 / 48 2 / 48

Plus en détail

Programmation C. Apprendre à développer des programmes simples dans le langage C

Programmation C. Apprendre à développer des programmes simples dans le langage C Programmation C Apprendre à développer des programmes simples dans le langage C Notes de cours sont disponibles sur http://astro.u-strasbg.fr/scyon/stusm (attention les majuscules sont importantes) Modalités

Plus en détail

Cisco Certified Network Associate

Cisco Certified Network Associate Cisco Certified Network Associate Version 4 Notions de base sur les réseaux Chapitre 3 01 Quel protocole de la couche application sert couramment à prendre en charge les transferts de fichiers entre un

Plus en détail

TP 2 Réseaux. Adresses IP, routage et sous-réseaux

TP 2 Réseaux. Adresses IP, routage et sous-réseaux TP 2 Réseaux Adresses IP, routage et sous-réseaux C. Pain-Barre INFO - IUT Aix-en-Provence version du 24/2/2 Adressage IP. Limites du nombre d adresses IP.. Adresses de réseaux valides Les adresses IP

Plus en détail

Consolidation de stockage

Consolidation de stockage (Information sur la technologie Sto-2003-2) Wolfgang K. Bauer Spécialiste stockage Centre de compétence transtec AG Waldhörnlestraße 18 D-72072 Tübingen Allemagne TABLE DES MATIÈRES 1 RÉSUMÉ...3 2 INTRODUCTION...4

Plus en détail

Configuration automatique

Configuration automatique Configuration automatique (/home/terre/d01/adp/bcousin/polys/internet:gestion_reseau/6.dhcp.fm- 29 Septembre 1999 12:07) PLAN Introduction Les principes de DHCP Le protocole DHCP Conclusion Bibliographie

Plus en détail

Prise en main. Prise en main - 0

Prise en main. Prise en main - 0 Prise en main 0404 Prise en main - 0 1- Introduction Creative Professional Merci d avoir choisi le Digital Audio System 0404 d E-MU. Nous avons conçu ce produit E-MU pour qu il soit logique, intuitif et

Plus en détail

Le protocole ARP (Address Resolution Protocol) Résolution d adresses et autoconfiguration. Les protocoles ARP, RARP, TFTP, BOOTP, DHCP

Le protocole ARP (Address Resolution Protocol) Résolution d adresses et autoconfiguration. Les protocoles ARP, RARP, TFTP, BOOTP, DHCP Résolution d adresses et autoconfiguration Les protocoles ARP, RARP, TFTP, BOOTP, DHCP Le protocole ARP (Address Resolution Protocol) Se trouve au niveau de la couche réseau Interrogé par le protocole

Plus en détail

Skype (v2.5) Protocol Data Structures (French) Author : Ouanilo MEDEGAN http://www.oklabs.net

Skype (v2.5) Protocol Data Structures (French) Author : Ouanilo MEDEGAN http://www.oklabs.net Skype (v2.5) Protocol Data Structures (French) Author : Ouanilo MEDEGAN http://www.oklabs.net : Champ Encodé SKWRITTEN() : Champ Variable défini Précédemment & définissant l état des champs à suivre ECT

Plus en détail

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation Base de données S. Lèbre slebre@unistra.fr Université de Strasbourg, département d informatique. Présentation du module Contenu général Notion de bases de données Fondements / Conception Utilisation :

Plus en détail

Rappel: Le routage dans Internet. Contraintes. Environnement et contraintes. La décision dans IP du routage: - Table de routage:

Rappel: Le routage dans Internet. Contraintes. Environnement et contraintes. La décision dans IP du routage: - Table de routage: Administration d un Intranet Rappel: Le routage dans Internet La décision dans IP du routage: - Table de routage: Adresse destination (partie réseau), netmask, adresse routeur voisin Déterminer un plan

Plus en détail

Cours n 12. Technologies WAN 2nd partie

Cours n 12. Technologies WAN 2nd partie Cours n 12 Technologies WAN 2nd partie 1 Sommaire Aperçu des technologies WAN Technologies WAN Conception d un WAN 2 Lignes Louées Lorsque des connexions dédiées permanentes sont nécessaires, des lignes

Plus en détail

CARPE. Documentation Informatique S E T R A. Version 2.00. Août 2013. CARPE (Documentation Informatique) 1

CARPE. Documentation Informatique S E T R A. Version 2.00. Août 2013. CARPE (Documentation Informatique) 1 CARPE (Documentation Informatique) 1 CARPE Version 2.00 Août 2013 Documentation Informatique S E T R A Programme CARPE - Manuel informatique de l'utilisateur CARPE (Documentation Informatique) 2 Table

Plus en détail

Plan du Travail. 2014/2015 Cours TIC - 1ère année MI 30

Plan du Travail. 2014/2015 Cours TIC - 1ère année MI 30 Plan du Travail Chapitre 1: Internet et le Web : Définitions et historique Chapitre 2: Principes d Internet Chapitre 3 : Principaux services d Internet Chapitre 4 : Introduction au langage HTML 2014/2015

Plus en détail

Disponibilité d une architecture virtualisée avec VMware ESX-ESXi

Disponibilité d une architecture virtualisée avec VMware ESX-ESXi Disponibilité d une architecture virtualisée avec VMware ESX-ESXi Travail de diplôme Session 2009 Professeur : LITZISTORF Gérald Étudiant : SANDMEIER Loïc Filière Télécommunications Laboratoire de transmission

Plus en détail

Le stockage. 1. Architecture de stockage disponible. a. Stockage local ou centralisé. b. Différences entre les architectures

Le stockage. 1. Architecture de stockage disponible. a. Stockage local ou centralisé. b. Différences entre les architectures Le stockage 1. Architecture de stockage disponible a. Stockage local ou centralisé L architecture de stockage à mettre en place est déterminante pour l évolutivité et la performance de la solution. Cet

Plus en détail

ET 24 : Modèle de comportement d un système Boucles de programmation avec Labview.

ET 24 : Modèle de comportement d un système Boucles de programmation avec Labview. ET 24 : Modèle de comportement d un système Boucles de programmation avec Labview. Sciences et Technologies de l Industrie et du Développement Durable Formation des enseignants parcours : ET24 Modèle de

Plus en détail

La technologie Java Card TM

La technologie Java Card TM Présentation interne au CESTI La technologie Java Card TM sauveron@labri.u-bordeaux.fr http://dept-info.labri.u-bordeaux.fr/~sauveron 8 novembre 2002 Plan Qu est ce que Java Card? Historique Les avantages

Plus en détail

LIVRE BLANC Pratiques recommandées pour l utilisation de Diskeeper sur les réseaux SAN (Storage Area Networks)

LIVRE BLANC Pratiques recommandées pour l utilisation de Diskeeper sur les réseaux SAN (Storage Area Networks) LIVRE BLANC Pratiques recommandées pour l utilisation de Diskeeper sur les réseaux SAN (Storage Area Networks) Think Faster. [Pensez plus vite] Visitez Condusiv.com RECOMMANDATIONS D UTILISATION DE DISKEEPER

Plus en détail

PG208, Projet n 3 : Serveur HTTP évolué

PG208, Projet n 3 : Serveur HTTP évolué PG208, Projet n 3 : Serveur HTTP évolué Bertrand LE GAL, Serge BOUTER et Clément VUCHENER Filière électronique 2 eme année - Année universitaire 2011-2012 1 Introduction 1.1 Objectif du projet L objectif

Plus en détail

Argument-fetching dataflow machine de G.R. Gao et J.B. Dennis (McGill, 1988) = machine dataflow sans flux de données

Argument-fetching dataflow machine de G.R. Gao et J.B. Dennis (McGill, 1988) = machine dataflow sans flux de données EARTH et Threaded-C: Éléments clés du manuel de références de Threaded-C Bref historique de EARTH et Threaded-C Ancêtres de l architecture EARTH: Slide 1 Machine à flux de données statique de J.B. Dennis

Plus en détail

Windows Internet Name Service (WINS)

Windows Internet Name Service (WINS) Windows Internet Name Service (WINS) WINDOWS INTERNET NAME SERVICE (WINS)...2 1.) Introduction au Service de nom Internet Windows (WINS)...2 1.1) Les Noms NetBIOS...2 1.2) Le processus de résolution WINS...2

Plus en détail

Le cluster à basculement

Le cluster à basculement Le cluster à basculement La technologie de cluster à basculement a une approche très différente de NLB. L objectif est de maintenir des ressources en ligne en permanence. Chaque ressource est instanciée

Plus en détail

SoMachine. Solution logicielle pour votre architecture Machine Atelier de découverte. SoMachine

SoMachine. Solution logicielle pour votre architecture Machine Atelier de découverte. SoMachine Solution logicielle pour votre architecture Machine Atelier de découverte SoMachine Objectif de la manipulation Le programme à réaliser va permettre de gérer le remplissage et la vidange d une cuve en

Plus en détail

Marché Public en procédure adaptée : Infrastructure Informatique régionale hébergée CAHIER DES CHARGES ET DES CLAUSES TECHNIQUES

Marché Public en procédure adaptée : Infrastructure Informatique régionale hébergée CAHIER DES CHARGES ET DES CLAUSES TECHNIQUES GROUPEMENT DE COMMANDES CA54, CA55, CA57, CA88, CRAL Marché Public en procédure adaptée : Infrastructure Informatique régionale hébergée CAHIER DES CHARGES ET DES CLAUSES TECHNIQUES Etabli en application

Plus en détail

Evaluation des performances de programmes parallèles haut niveau à base de squelettes

Evaluation des performances de programmes parallèles haut niveau à base de squelettes Evaluation des performances de programmes parallèles haut niveau à base de squelettes Enhancing the Performance Predictability of Grid Applications with Patterns and Process Algebras A. Benoit, M. Cole,

Plus en détail

Computer Networking: A Top Down Approach Featuring the Internet, 2 nd edition. Jim Kurose, Keith Ross Addison-Wesley, July 2002. ENPC.

Computer Networking: A Top Down Approach Featuring the Internet, 2 nd edition. Jim Kurose, Keith Ross Addison-Wesley, July 2002. ENPC. Computer Networking: A Top Down Approach Featuring the Internet, 2 nd edition. Jim Kurose, Keith Ross Addison-Wesley, July 2002. Réseau 1 Architecture générale Couche : IP et le routage Couche : TCP et

Plus en détail

Le filtrage de niveau IP

Le filtrage de niveau IP 2ème année 2008-2009 Le filtrage de niveau IP Novembre 2008 Objectifs Filtrage : Le filtrage permet de choisir un comportement à adopter vis à vis des différents paquets émis ou reçus par une station.

Plus en détail

La continuité de service

La continuité de service La continuité de service I INTRODUCTION Si la performance est un élément important de satisfaction de l'utilisateur de réseau, la permanence de la disponibilité des ressources l'est encore davantage. Ici

Plus en détail