Les bus d'interconnexion Organisation des bus dans un ordinateur 1
Définition et aspect physique Qu'est ce qu'un bus? Un moyen de communication entre composants Métaphore : routes (autoroutes périphérique chemin) Aspect physique Une nappe de fils électriques Généralement gravés dans la carte mère (backplane) Relie les éléments de l'ordinateur par des connecteurs (slots) Connecté aux coupleurs d'i/o, au CPU, à la MC Parcouru par des impulsions électriques (signal binaire) Accès multiples par les connecteurs besoin d'arbitrage 2
Aspect temporel Fonctionnement synchrone Rythmé par son horloge : un mouvement par cycle Requiert la même vitesse pour les éléments connectés au bus Fréquence de fonctionnement F = nombre de cycles par seconde (en Hertz) Débit théorique max (appelé aussi bande passante) D = largeur de bus * fréquence En général, le débit moyen (ou réel) est 2 à 6 fois plus faible que le débit max théorique car l'utilisation n'est jamais pleinement optimisée (idem occupation des secteurs d'un disque dur) 3
Aspect temporel Fonctionnement asynchrone Pas d'horloge sur le bus, rythmé par le signal détection des variations de signal sur le fil Envoi d'informations de contrôle nécessaire Début, fin d'émission, ACK, handshake Ressemble à un protocole réseau Pour mesurer le débit d'un tel bus Voir les horloges internes aux composants connectés La moins rapide est la plus significative Objectif : créer une synchronisation dirigée par les données entre maître et esclave sur le bus 4
Aspect logique Espace d'adressage Notion de largeur de bus => nombre de fils 1 fil = bus série, plusieurs fils = bus parallèle Quantité d'information, système binaire (Shannon) Q = log2(1/p(x)) bits = log2(1/(1/nb valeurs possibles)) Q = log2(2nombre de fils) = nombre de fils bits Découpage de l'espace d'adressage du bus (cf Mem*/IO sur architecture Intel) 5
Aspect logique Transaction désigne un échange entre 2 éléments connectés au bus, prend généralement plusieurs cycles Multiplexage Partage du temps d'utilisation Exemple : Écriture mémoire sur 2 cycles 1 cycle pour écrire l'adresse, 1 cycle pour les données Spécialisation des bus moins de multiplexage = gain de temps, mais coût de fabrication augmenté (plus de connecteurs, protocoles d'échange complexes, taille des cartes) En fonction de données : bus d'adresses, bus de données, bus de commandes Plusieurs éléments connectés sur un même bus besoin d'arbitrage 6
Arbitrage de bus Un seul maître sur le bus à un moment donné Celui qui émet des données (master) Les autres reçoivent les données (slave) Transaction en diffusion possible (broadcast) «One ring to rule them all, one ring to find them, One ring to bring them all and in the darkness bind them.» J.R.R. Tolkien Ex : mise à jour des caches sur le bus Mécanismes d'arbitrages Pour désigner le prochain maître De type statique Signaux utilisés : Bus Request, Bus Grant, Bus Busy Daisy Chain, mixte De type dynamique Centralisé, mixte, décentralisé Besoin d'une stratégie : linéaire, circulaire, cyclique, multiple Fonction du niveau de priorité et de l'ancienneté de la demande de bus 7
Arbitrage de bus Les mécanismes Daisy Chain : déjà vu! Avantages : simple, indépendant nombre modules Inconvénients : priorité statique (position), lenteur réponse (longueur guirlande), intolérance aux pannes (module) Centralisé Avantages : pas de délai, tolérance aux pannes, priorité non statique (à programmer) Inconvénients : beaucoup de «câbles» Mixte Organisation centralisée de séries de modules en daisy chain, Bus Grant donné à une série, puis daisy chain Décentralisé Lignes de bus pour donner la priorité en cours, un arbitre par module L'arbitre local compare la priorité de son module à celle en cours sur le bus Avantages : pratique pour les multi CPU, priorité dynamique Inconvénients : sensible aux pannes 8
Stratégies d'arbitrage Linéaire 3 4 Affectation d'un numéro de priorité à chaque demandeur Simple, mais risque de famine pour le demandeur le moins prioritaire Circulaire (cf round robin) 2 1 Il faut connaître le dernier maître Pas de famine 1 2 4 3 Cyclique Le plus anciennement servi est le plus prioritaire Il faut connaître les dernières «dates» de service Multiple On combine les stratégies ci dessus 9
Les bus spécialisés Bus «processeur» Lien entre CPU, Cache L2, MC, AGP (ou PCIe), et PCI Reliés via le chipset (ou contrôleur) «northbridge» FSB (Frontside, CPU vers chipset), BSB (Backside, CPU vers caches) Plus récents : HyperTransport (AMD), QPI (Intel) Bus «locaux» ISA, PCI, PCI X, VLB, AGP, PCI Express (PCIe), PCIe 2.0 Bus «I/O» Autour du «southbridge» lié au «norhtbridge» via PCI (anciennement) ou DMI (Direct Media Interface, plus récent) «Qu'importe que nous empruntions RS 232, LPT, IDE, ATA, Ultra DMA, PATA, SATA, SCSI, USB, Firewire des itinéraires différents pourvu que nous arrivions au même but.» Ghandi 10
Source:wikipedia (désolé) : ) 11
Architecture de bus Intel X58 Source : intel.com 12
Source : intel.com 13
Architecture de bus AMD 750 Source : AMD.com 14
Architecture de bus AMD 890FX Source : AMD 15
Le bus PCI Peripheral Component Interconnect (1992) Parallèle sur 32 bits, multiplexé @/données Envoi @ puis envoi(s) données (mode rafale possible) Synchrone à 33 Mhz, débit max théorique 126 Mo/s En 1995 : PCI 2.1 à 66 Mhz, possible en 64 bits Indépendance totale du CPU, arbitrage centralisé Mémoire tampon dédiée, architecture plug'n'play Évolution vers PCI X, abandonné au profit de PCI Express 16
Le bus PCI Express Principe de communication x1 série, point à point, symétrique, hot plug, asynchrone Notion de lien (link) Un lien est un couple de lignes (1 ligne = 1 paire de câbles) Chaque ligne est dans une direction (Dual simplex!= full duplex) Nombre de lignes = multiplicateur du lien (x1 x2 x4 x8...) Signal différentiel (moins de parasites, idem hifi câbles symétriques) Codage des données Dans une trame (UK : frame), ou paquet en 8b/10b (8bits sur 10 bits) structure [start databyte end] Vitesse de transfert Signal à 2,5Gbit/s par ligne par direction Exercice : Calculez la bande passante agrégée d'une ligne PCI Express x8 17
Le bus PCI Express Calculez la bande passante agrégée d'une ligne PCI Express x8 2,5 Gbits/s x 2 (directions) x8 (nombre de lignes) /10 (10 bits par octet, pour l'encodage) Résultat = 4Go/s Attention! Dans un sens, on «reste» à 2Go/s 18
Le bus PCI Express Modèle en couches pour l'évolutivité Source : PCI Express system architecture Addison Wesley 19
Le bus PCI Express Source : PCI Express system architecture Addison Wesley 20
Le bus PCI Express Source : PCI Express system architecture Addison Wesley 21
Le bus PCI Express Source : PCI Express system architecture Addison Wesley 22
Le bus USB Universal Serial Bus V. 1 (1995), v. 2.0 (2000), et v. 3.0 (2008) Bus série, multiplexé, maxi 127 périphériques, tous sur le même bus (adresse 7 bits) débit partagé Hot plug, plug'n'play, connecteur standard 4 broches Codage NRZi (non retour à zéro inversé) USB 1.0 : min 1,5 Mbits/s max 12Mbits/s (1,5 Mo/s) USB 2.0 : max 480 Mbits/s (60 Mo/s) USB 3.0 : max 5 Gbits/s (625 Mo/s) car le voltage dans les cables passe de 3,3 à 0,4 volts Connecteurs électriques et optiques http://www.usb.org/developers/docs/ 23
Le bus USB Ressemble à un réseau (hub USB) Dialogue «simultané» des périphériques sur le bus Paquet de type data, token, ack, special Notion de transaction de 1 à 3 paquets Toute transaction commence par un token Indique les caractéristiques de la transaction (sens, type) et adresse de destination (périphérique connecté) Identificateur de paquet (PID) pour chaque token: IN lecture périphérique OUT écriture périphérique SOF Start of frame SETUP indique qu'un paquet de commandes suit ne peut être ignoré Notion de sous adresse (endpoint) permettant d'interagir avec une partie de périphérique seulement En fin de trame : code CRC 24
Le bus USB Transmission de trames De type isochrone ou asynchrone Isochrone garantie débit Réservation d'un espace temps cyclique Priorité par rapport aux paquets asynchrones Pour la VoIP, vidéo, etc Modèle d'interaction «réseau» (ACK, token) Trames synchrones prioritaires sur les asynchrones Modes d'interaction Selon le périphérique : polling ou INT Souris à 60Hz (CPU à 3Ghz) ou Disque dur 25
Le bus USB Source : USB Explained Prentice Hall 26
Interro surprise Quelle bande passante est nécessaire sur le bus relié à votre carte graphique pour visualiser sans ralentissement un film HD sur votre bel écran plat? Hint : la réponse est en Mo/s Pour les rapides Pourquoi le PCI Express convient? Et pour une résolution de 2 560 1 440?? 27
Petits calculs Un pixel en «true colors» = 24 bits Un écran en Full HD = 1920 * 1080 Frame rate acceptable = 60 Hz 24*1920*1080*60 = 2 985 984 000 b/s ~ 356 Mo/s Sachant que le débit réel est (au moins) 2 fois plus faible que le débit max théorique Débit max requis > 700 Mo/s 28
Conclusion Différents types de bus Les «artères» ou «veines» du PC Les caractéristiques changent selon les besoins Construits sur plusieurs niveaux (physique système d'exploitation) Encore des compromis Parallèle/série, sync/async/isoc, Qos etc? Limitations importantes de performances Même si les composants sont individuellement performants en terme de vitesse 29
BACKUP 30
Le bus PCI Présentation générale
Bus PCI, principe, historique
Bus PCI, signaux (sens pour initiateur) bus carte AD[31:0] < > C/BE#[3:0] > PAR < > FRAME# < > TRDY# > IRDY# < > STOP# < > DEVSEL# > LOCK# < > REQ# < GNT# > CLK > RST# > PERR# < > SERR# > bus carte AD[63:32] < > C/BE[7:4] > PAR64 < > REQ64# < > ACK64# > CLKRUN# < > PME# < 3.3Vaux > TDI > TDO < TCLK > TMS > TRST# > INT#[A:D] <
Bus PCI, arbitrage L'arbitre de bus (chipset) reçoit toutes les requêtes (REQ#) et sélectionne un maître en validant durant une période d'horloge son signal GRANT# L'arbitrage se fait durant un cycle d'échange (arbitrage caché), il sera valide à la fin du cycle en cours La politique d'arbitrage dépend de l'arbitre (chipset)
Bus PCI, commandes Lecture E/S Ecriture E/S Lecture mémoire Ecriture mémoire Ecriture mémoire multiple Lecture configuration Ecriture configuration Acquittement interruption Ecriture mémoire et invalidation Lecture ligne mémoire Cycle spécial Cycle d'adresse double
Bus PCI, chronogramme
Bus PCI, les interruptions Chaque connecteur PCI dispose de 4 interruptions matérielles, INTA# à INTD# Un gestionnaire d'interruption affecte les interruptions A à D au interruptions libres du processeur (0 15 dans le cas du PC) Les interruptions peuvent être partagées Le fonctionnement dépend du gestionnaire (chipset) et de la configuration P. & P.
Bus PCI, configuration Les registres de configuration principaux définissent le fabricant et le modèle de la carte D'autres registres de configuration définissent les possibilités et caractéristiques Les plug & play définit les adresses de base de la carte
Bus PCI, gestion des erreurs PERR# définit une erreur de parité qui invalide la transaction en cours SERR# définit une erreur grave mettant en cause l'intégrité du système qui est alors réinitialisé STOP# permet d'arrêter une transaction en cours