Gestion des Périphériques Année 2006 - 2007 (Transparents de F. Dromard) PERI Master ACSI cours 5 - 1 Bus PCI Peripheral Component Interconnect Spécifié en 1992 par Intel et d’autres industriels Bus fond de panier PERI Révision 2.0 en avril 1993 Révision 2.1 au début 1995 Révision 2.2 en décembre 1998 Indépendant du processeur utilisé Performances intéressantes Configuration par logiciel Master ACSI cours 5 - 2 Bus PCI Caractéristiques générales Multiplexé adresse / donnée Mode rafale Largeur 32 ou 64 bits Synchrone à 33 MHz ou 66 MHz Débit crête : 132, 264, 528 Mo/s Bus multimaître Moins de 50 signaux pour 32 bits Contrôleur complexe PERI Master ACSI cours 5 - 3 Bus PCI Exemple de configuration Bus ISA Pont pci/ISA processeur cache Bus PCI 1 Pont pci/pci mémoire Pont hôte Bus PCI 0 Adaptateur Contrôleur Contrôleur Contrôleur SCSI disques vidéo réseau Bus SCSI PERI D1 D2 Master ACSI écran cours 5 - 4 Bus PCI Introduction au fonctionnement du bus PCI Permet à deux agents de communiquer Arbitrage centralisé En parallèle avec les transferts Chaque agent peut avoir la fonction de : PERI Un maître avec une cible Maître seulement Maître et Cible Cible seulement Master ACSI cours 5 - 5 Bus PCI Introduction au fonctionnement du bus PCI Echanges en rafales : Bus synchrone Signaux valides sur front montant de l’horloge Bus sans terminaisons PERI Une phase d’adressage Une à N phases de données Fonctionne par réflexion Master ACSI cours 5 - 6 Bus PCI Déroulement d’une transaction Demande du bus par un agent Bus accordé par l’arbitre Dès que le bus est libre, l’agent devient maître Le maître désigne la cible (phase adressage) La cible répond avec le signal DEVSEL Une ou plusieurs phases de donnée Fin de la transaction, libération du bus PERI Master ACSI cours 5 - 7 Bus PCI Particularités PERI Transactions éclatées (split transactions) Limitation de la durée d’utilisation du bus par temporisateurs de latence Accès direct mémoire en tant que maître du bus Master ACSI cours 5 - 8 Bus PCI Adresses virtuelles physiques bus Agent 3 processeur adresses physiques mémoire adresses virtuelles Pont hôte Bus PCI 0 Agent 2 PERI Agent 1 Master ACSI adresses bus cours 5 - 9 Bus PCI Espaces d’adressage Processeurs ayant 2 espaces d’adressage Bus PCI (adresse bus 32 bits) PERI Espace mémoire (adresse sur 32 bits) Espace E/S (adresse sur 16 bits) Espace Mémoire Espace E/S Espaces de Configuration Master ACSI cours 5 - 10 Bus PCI Espace d’adressage mémoire espace d’adressage mémoire (adr. proc.) Vu du processeur 4Go - 1 processeur pci Agent 3 mémoire Pont hôte Bus PCI 0 Agent 2 agent 3 agent 2 agent 1 mémoire hôte Agent 1 0 PERI Master ACSI cours 5 - 11 Bus PCI Espaces d’adressage mémoire espace d’adressage mémoire (adr. bus) Vu du bus PCI processeur pci Agent 3 mémoire agent 3 agent 2 agent 1 Pont hôte Bus PCI 0 Agent 2 4Go - 1 mémoire hôte Agent 1 0 PERI Master ACSI cours 5 - 12 Bus PCI Espace d’adressage E/S Vu du processeur processeur port // port série espace d’adressage E/S (adr. proc.) 64k - 1 mémoire contrôleur Pont hôte Registres du pont hôte Bus PCI 0 port série pont pci - isa PERI Bus ISA port // 0x3F8 0x378 0 Master ACSI cours 5 - 13 Bus PCI Espace d’adressage E/S Vu du bus PCI espace d’adressage E/S (adr. bus) 4Go - 1 processeur port // port série 64k - 1 mémoire contrôleur Pont hôte Registres du pont hôte Bus PCI 0 port série pont pci - isa PERI Bus ISA port // 0x3F8 0x378 0 Master ACSI cours 5 - 14 Bus PCI Espaces de configuration Zone mémoire de 256 octets maximum, associée à chaque contrôleur Contient : PERI Identification du fabricant Identification du produit Type de produit Registres de base ... Master ACSI cours 5 - 15 Bus PCI Espaces de configuration Obligatoire Permet la configuration automatique, par le processeur Tous aux mêmes adresses : 0 à 255 Signal IDSEL, distinct pour chaque contrôleur PERI Master ACSI cours 5 - 16 Bus PCI Espaces de configuration Vu du processeur processeur cfg cfg mémoire Agent 3 espaces de configuration Pont hôte agt 3 IDSEL 3 IDSEL 2 IDSEL 1 cfg Agent 2 PERI Bus PCI 0 agt 2 cfg Agent 1 255 0 0 255 255 0 Master ACSI pont 255 agt 1 0 cours 5 - 17 Bus PCI Espaces de configuration Vu du bus PCI processeur cfg cfg mémoire Agent 3 espaces de configuration Pont hôte agt 3 IDSEL 3 IDSEL 2 IDSEL 1 cfg Agent 2 PERI Bus PCI 0 agt 2 cfg Agent 1 255 0 0 255 255 0 Master ACSI pont 255 agt 1 0 cours 5 - 18 Bus PCI Accès aux espaces de configuration Par le processeur PERI Type d’espace inconnu du processeur Mécanisme d’accès situé dans le pont hôte Accès à ce mécanisme dans l’espace E/S du processeur Deux registres de 32 bits Master ACSI cours 5 - 19 Bus PCI Accès aux espaces de configuration Par le processeur Registre adresse configuration : CONF_ADDR Accessible à l’adresse E/S : CF8h Accès en 32 bits seulement 31 30 24 23 réservé 16 15 numéro de bus 11 10 numéro de contrôleur 8 numéro de fonction 7 2 numéro de registre 1 0 0 0 bit autorisation : 1 accès autorisé, 0 non autorisé PERI Master ACSI cours 5 - 20 Bus PCI Accès aux espaces de configuration Par le processeur PERI Registre donnée configuration : CONF_DATA Accessible à l ’adresse E/S : CFCh Accès 8 bits, 16 bit, 32 bits Master ACSI cours 5 - 21 Bus PCI Initialisations par le processeur au démarrage Exploration systématique du bus Affectation d’adresses aux contrôleurs PERI Trouve les contrôleurs présents en faisant des accès configuration Détecte les ponts Numérote les bus Dans l’espace mémoire ou E/S Zones d’adresses disjointes Pas de conflits Master ACSI cours 5 - 22 Bus PCI Initialisations par le processeur au démarrage Affectation d’adresses aux contrôleurs Rangées dans l ’espace de configuration du contrôleur Registres de base affectés à cet usage Utilisés par les pilotes logiciel Espace de configuration du contrôleur Adresse 10h 14h Registre de base 0 Registre de base 1 18h PERI Master ACSI cours 5 - 23 Bus PCI-X PCI eXtension Protocole simplifié et amélioré Adresse Données sur 64 bits Fréquence maximum 133 MHz (1 slot) Débit crête : 1 Go/s PERI Master ACSI cours 5 - 24 Bus Série, bus parallèle ? Bus périphériques Inconvénients des bus parallèles PERI Câbles plus gros et plus chers Connecteurs plus gros et plus chers Dispersions de propagation des signaux Limitation en fréquence Diminution de taille des équipements Master ACSI cours 5 - 25 USB Universal Serial Bus Spécifié par Intel, Compaq, Microsoft, NEC, Philips (standard industriel) Bus périphériques PERI Révision 1.1 en septembre1998 Révision 2.0 en avril 2000 Plusieurs périphériques chaînés Branchement à chaud (sous tension) Détection et configuration automatique des périphériques Bus à interrogation (un seul maître) Master ACSI cours 5 - 26 USB Types de transferts Transferts de type «interruption» Transferts de blocs Transferts de contrôle Transferts isochrones PERI Master ACSI cours 5 - 27 USB Débits USB 1.1 USB 2.0 PERI Basse vitesse (low speed) : 1,5 Mb/s ou 187,5 Ko/s Pleine vitesse (full speed) : 12 Mb/s ou 1,5 Mo/s Haute vitesse (high speed) : 480 Mb/s ou 60 Mo/s Master ACSI cours 5 - 28 USB Topologie Connexions point à point bidirectionnelles Extension par des hub Hub hôte Arborescence orientée Pas de boucle nœud 3 nœud 5 PERI Master ACSI hub 2 nœud 2 hub 3 nœud 4 nœud 1 nœud 6 cours 5 - 29 USB Cables Composés de 4 fils 3 à 4 mètres maximum selon la qualité +V D+ paire torsadée DGND PERI Master ACSI cours 5 - 30 USB Hub bus pci contrôleur USB hôte hub racine hub 1 hub 2 device 1 device 2 device 3 PERI Master ACSI device 4 device 5 cours 5 - 31 USB Hub : organisation interne données alimentation switch PERI contrôleur de hub Master ACSI répéteur cours 5 - 32 USB Hub : flux de données flux descendant (downstream) flux montant (upstream) répéteur PERI répéteur Master ACSI cours 5 - 33 USB Principe d’utilisation de la liaison En 1.1 Temps découpé en tranches de 1 ms, les «trames» USB Plusieurs périphériques servis pendant chaque ms 12 MHz PERI ÷ 12 000 1 KHz T = 1 ms En 1ms transfert de 12 Kbits soit 1,5 Koctets Master ACSI cours 5 - 34 USB Principe d’utilisation de la liaison En 2.0 Temps découpé en tranches de 125 µs «microtrames» Plusieurs périphériques servis par tranche 480 MHz PERI ÷ 60 000 8 KHz T = 125 µs En 125 µs transfert de 60 Kbits soit 7,5 Koctets Master ACSI cours 5 - 35 USB Organisation générale impression Système Hôte Périphérique USB logiciel client fonction logiciel USB périphérique logique USB couche USB contrôleur USB couche interface imprimante logiciel matériel PERI contrôleur USB Hôte + hub Liaison USB Master ACSI cours 5 - 36 USB Organisation logicielle I/O Request Packets Logiciel client Pilote bus usb Tr1- 0 IRP1 IRP2 IRP1 IRP2 Tr1- 1 Tr1- 2 Tr2- 0 Tr2- 1 Tr2- 2 Pilote contrôleur usb trame 1 Tr1- 0 matériel PERI Contrôleur USB Tr2- 0 1 ms ou 125 µs Master ACSI trame 2 Tr1- 1 Tr2- 1 1 ms ou 125 µs trame 3 Tr1- 2 Tr2- 2 1 ms ou 125 µs cours 5 - 37 USB Transactions (1) Toujours à l’initiative de l’hôte Composées de 1, 2 ou 3 paquets Token packet Data packet Handshake packet transaction token packet PERI data packet Master ACSI handshake packet cours 5 - 38 USB Transactions (2) Token packet PERI Toujours envoyé par l’hôte Type et direction de l’échange du paquet de donnée Adresse du destinataire (fonction) SOF, SETUP, OUT, IN Master ACSI cours 5 - 39 USB Transactions (3) Data packet Handshake packet PERI Sens d’échange défini par le token packet Contient les données échangées Envoyé par celui qui a reçu les données Acceptation ou refus de l’échange ACK, NACK, STALL Master ACSI cours 5 - 40 USB Exemples de Transactions (1) Mémoire hôte Contrôleur hôte 1 Transaction 1 descripteurs de transferts Transaction 3 Données clavier PERI 2 Transaction 2 4 clavier 3 imprimante 1. Ctrl hôte prend le descripteur 2. C. h. génère une transaction IN 3. Clavier renvoie les données 4. C. h. met les données en mémoire Master ACSI cours 5 - 41 USB Exemples de Transactions (2) Mémoire hôte 1 Transaction 1 descripteurs de transferts Contrôleur hôte 2 Transaction 2 Transaction 3 clavier 4 imprimante 3 Données clavier Données impr. PERI 1. Ctrl hôte prend le descripteur 2. C. h. génère une transaction OUT 3. C. h. prend les données en mémoire 4. C. h. envoie les données à l’impr. Master ACSI cours 5 - 42 USB Exemples de Transactions (3) Mémoire hôte Contrôleur hôte Transaction 1 descripteurs de transferts 1 2 Transaction 2 Transaction 3 clavier 4 imprimante 3 Données clavier Données impr. PERI 1. Ctrl hôte prend le descripteur 2. C. h. génère une transaction OUT 3. C. h. prend les données en mémoire 4. C. h. envoie les données à l’impr. Master ACSI cours 5 - 43 USB Configuration du Bus Etat initial Tous les ports A sont désactivés Tous les ports B répondent à l’adresse 0. Ports A Port B Parcours de l’arbre PERI hôte Activation premier port A Interrogation Si réponse, affectation d’une adresse ... Master ACSI Ports A cours 5 - 44 USB Interface : logiciel - matériel Trois spécifications d’interfaces PERI UHCI : Universal Host Controller Interface. usb 1.x OHCI : Open Host Controller Interface. usb 1.x EHCI : Enhanced Host Controller Interface. usb 2.0 Master ACSI cours 5 - 45