Ordinateurs, Structure et Applications



Documents pareils
Ordinateurs, Structure et Applications

Ordinateurs, Structure et Applications

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

Ordinateurs, Structure et Applications

Leçon 1 : Les principaux composants d un ordinateur

Spécifications détaillées

Cours n 12. Technologies WAN 2nd partie

REALISATION d'un. ORDONNANCEUR à ECHEANCES

Choix d'un serveur. Choix 1 : HP ProLiant DL380 G7 Base - Xeon E GHz

Présentation du système informatique utilisé et éléments d architecture des ordinateurs

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)

Introduction à l architecture des ordinateurs. Adrien Lebre Décembre 2007

CH.3 SYSTÈMES D'EXPLOITATION

Matériel & Logiciels (Hardware & Software)

Gestion de mémoire secondaire F. Boyer, Laboratoire Sardes

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

Chapitre 4 : Les mémoires

IV- Comment fonctionne un ordinateur?

Structure de base d un ordinateur

Structure et fonctionnement d'un ordinateur : hardware

Hubert & Bruno Lundi 12 octobre 2009 SAINT-QUENTIN (02)

THEME 1 : L ORDINATEUR ET SON ENVIRONNEMENT. Objectifs

HP 600PD TWR i G 4.0G 39 PC

Micro ordinateur & Périphériques Mémoire de masse Disque dur (SOLUTION)

Tests de performance du matériel

Informatique pour scientifiques hiver Plan général Systèmes d exploitation

ERP Service Negoce. Pré-requis CEGID Business version sur Plate-forme Windows. Mise à jour Novembre 2009

MODULE I1. Plan. Introduction. Introduction. Historique. Historique avant R&T 1ère année. Sylvain MERCHEZ

Spécifications détaillées

NOTIONS DE RESEAUX INFORMATIQUES

et dépannage de PC Configuration Sophie Lange Guide de formation avec exercices pratiques Préparation à la certification A+

Réseaux grande distance

GPA770 Microélectronique appliquée Exercices série A

Chapitre V : La gestion de la mémoire. Hiérarchie de mémoires Objectifs Méthodes d'allocation Simulation de mémoire virtuelle Le mapping

Cisco Discovery - DRSEnt Module 7

Démontage d'un ordinateur

Éléments d'architecture des ordinateurs

Architecture des ordinateurs Introduction à l informatique

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

Architecture matérielle des systèmes informatiques

Cours Informatique 1. Monsieur SADOUNI Salheddine

qwertyuiopasdfghjklzxcvbnmqwerty uiopasdfghjklzxcvbnmqwertyuiopasd fghjklzxcvbnmqwertyuiopasdfghjklzx cvbnmqwertyuiopasdfghjklzxcvbnmq

TD Architecture des ordinateurs. Jean-Luc Dekeyser

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

Version de novembre 2012, valable jusqu en avril 2013

Architecture des Ordinateurs. Partie II:

Les techniques de multiplexage

Consolidation de stockage

Architecture des calculateurs

Comme chaque ligne de cache a 1024 bits. Le nombre de lignes de cache contenu dans chaque ensemble est:

Guide Mémoire NETRAM

Les liaisons SPI et I2C

Le Programme SYGADE SYGADE 5.2. Besoins en équipement, logiciels et formation. UNCTAD/GID/DMFAS/Misc.6/Rev.7

Concepts et systèmes de stockage

Architecture des ordinateurs

Structure fonctionnelle d un SGBD

Tout sur l USB L USB (Universal Serial Bus) a été élaboré en 1996 par Intel, Compaq,Digital,IBM,Microsoft,NEC et NorthTelec (USB 1.0).

5.5 Utiliser le WiFi depuis son domicile

Exécution des instructions machine

Systèmes d exploitation

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

Matériel. Matériel de bureau

Livre blanc Haute disponibilité sous Linux

L informatique en solo

CAHIER. DES CLAUSES TECHNIQUES PARTICULIERES N du 16 avril 2007 ORDINATEURS. C.I.E.P 1, Avenue Léon JOURNAULT SEVRES

ATELIERS DE FORMATION TECHNICIEN DE MAINTENANCE INFORMATIQUE

Manuel d administration de Virtual Box MANUEL D UTILISATION VIRTUAL BOX

Architecture des ordinateurs

Stockage des machines virtuelles d un système ESXi jose.tavares@hesge.ch & gerald.litzistorf@hesge.ch

Cours 3 : L'ordinateur

LOT N 1 : ORDINATEURS BORDEREAU DE PRIX IDENTIFICATION DU FOURNISSEUR. Code DESIGNATION QTE PU HT EN EURO MONTANT TOTAL HT EN EURO MONTANT TTC EN EURO

Temps Réel. Jérôme Pouiller Septembre 2011

White Paper - Livre Blanc

Transmissions série et parallèle

Université de La Rochelle. Réseaux TD n 6

Cahier des Clauses Techniques Particulières

TASCAM MX Utilisation du SCSI

Conférence sur les microcontroleurs.

Architectures d implémentation de Click&DECiDE NSI

Démarrer et quitter... 13

systèmes étendus Guide des Version 6.7 pour systèmes HD sous Macintosh ou Windows Digidesign

Cours CCNA 1. Exercices

Carte IEEE Version 1.0

Prise en main. Prise en main - 0

Tsoft et Groupe Eyrolles, 2005, ISBN :

Initiation à l informatique. Module 1 : Le Matériel

Windows Internet Name Service (WINS)

Mes documents Sauvegardés

Acquisition de matériels informatiques

ELP 304 : Électronique Numérique. Cours 1 Introduction

Cahier des charges pour la mise en place de l infrastructure informatique

Le Raid c est quoi? Comment ca marche? Les différents modes RAID :

Configuration matérielle et logicielle requise et prérequis de formation pour le SYGADE 6

Fiche produit FUJITSU ETERNUS DX200F Baie de stockage Flash

Samsung Magician v.4.3 Guide d'introduction et d'installation

Guide pour l Installation des Disques Durs SATA et la Configuration RAID

CARTE INTERFACE PCI PARALLÈLE

Transcription:

Ordinateurs, Structure et Applications Cours 16, Les Entrées/Sorties Etienne Tremblay Université Laval, Hiver 2012 Cours 16, p.1

Les Entrées/Sorties Entrées/Sorties (E/S, Input/Output ou I/O en anglais) désigne l ensemble des transferts de données qui permettent au microprocesseur et à la mémoire de communiquer avec le restant du monde. Une entrée est une donnée allant du monde extérieur vers le microprocesseur. Une sortie est une donnée allant du microprocesseur vers le monde extérieur. Un périphérique est un appareil qui interagit avec microprocesseur et la mémoire. Certains périphériques sont branchés à l intérieur de l ordinateur (disques durs, carte réseau, ) alors que d autres sont branchés sur des interfaces externes de l ordinateur (clavier, écrans, souris, etc.). Les Entrées/Sorties proviennent des périphériques. Le traitement des E/S est complexe pour plusieurs raisons: Les périphériques ont des modes de fonctionnement variés. Les périphériques ont souvent leur propres formats de données. Les périphériques ne vont pas à la même vitesse que le CPU. Beaucoup sont très lents par rapport à ce dernier alors que certains sont plus rapide Pour chaque périphérique, il existe une unité spéciale appelée module d E/S (I/O module) qui sert d interface entre le périphérique et le microprocesseur. Cours 16, p.2

Modules d Entrées/Sorties (1/2) Les modules d E/S sont des interfaces entre le microprocesseur et un périphérique spécifique. Ces modules sont habituellement appelés «contrôleur». Par exemple, le module d E/S servant d interface entre le microprocesseur et un disque dur sera appelé contrôleur de disque. Les modules d E/S ont plusieurs fonctions. En voici les principales: Lire ou écrire des données du périphérique. Lire ou écrire des données du Microprocesseur/Mémoire. Cela implique du décodage d adresses, de données et de lignes de contrôle. Certains modules d E/S doivent générer des interruptions ou accéder directement à la mémoire. Contrôler le périphérique et lui faire exécuter des séquences de tâches. Tester le périphérique et détecter des erreurs. Mettre certaines données du périphérique ou du microprocesseur en mémoire tampon afin d ajuster les vitesses de communication. Il existe plusieurs techniques pour communiquer à partir du CPU/Mémoire vers un périphériques à travers un module de I/O. Les trois principales techniques sont les E/S programmées, les E/S avec interruptions et le DMA. Cours 16, p.3

Modules d Entrées/Sorties (2/2) Le diagramme ci-dessous montre les principales composantes d un module d E/S. Ainsi qu illustré, le module comprends de la mémoire tampon pour des données (sous forme de registres dans l illustration), une logique de contrôle pour décoder l adresse et les lignes de contrôle (ou pour faire du DMA), et une ou plusieurs interfaces avec un ou plusieurs périphériques. Ce diagramme est simple. Certains module d E/S sont très rudimentaires alors que d autres sont très complexes (exemples de caractéristiques qui rendent le module complexe: DMA, support pour interruptions, programmes exécutés à l intérieur du module, etc.). Bus de Données Registres de données Registres de statut/ commande Interface avec le périphérique Données État Contrôle Bus d Adresses Bus de contrôle Logique de contrôle Interface avec le périphérique Module d E/S Tiré de «Organisation et architecture d un ordinateur», p.210 Cours 16, p.4

Éntrées/Sorties Programmées La technique d E/S programmées consiste à concevoir un programme, exécuté par le microprocesseur, qui communiquera avec le module d E/S afin d obtenir des données du périphérique. Le microprocesseur peut tester, lire, écrire ou contrôler le périphérique à travers le module d E/S. Les E/S programmées sont très simples. Le programmeur a un contrôle direct sur le périphérique. Pour accéder à un périphérique, le microprocesseur exécute un programme qui aura les grandes lignes suivantes: Vérifier si le périphérique est prêt Envoyer une requête au périphérique Attendre que la requête soit finie en interrogeant les registres de statut du périphérique (polling) Envoyer une autre requête et attendre encore. Recommencer ces deux opérations tant que le programme n est pas terminé Les E/S programmées ont un désavantage majeur évident: c est très lent. Le microprocesseur attend après un périphérique pour passer à la prochaine instruction! Les E/S programmées ont d autres désavantages. Par exemple, il peut y avoir des tâches complexes au niveau matériel qui exigent un contrôle très rapide et très poussé du périphériques. Dans de tel cas, il peut devenir impossible de faire un programme qui pourra contrôler le périphérique. Cours 16, p.5

Éntrées/Sorties avec Interruptions Une façon d éliminer les délais d attente du microprocesseur est d utiliser des interruptions. La méthode d E/S avec interruption consiste à accéder au module d E/S lors d interruptions provenant de ce dernier afin de signaler un évènement particulier (la fin d une tâche par exemple!). Nous avons déjà vu les interruptions. Néanmoins, voici un rappel de ce qui se produit lorsqu une interruption survient: Le périphérique émet un signal d interruption géré par le contrôleur d interruptions. Ce dernier achemine le signal au microprocesseur. Le microprocesseur termine l instruction en cours. Le microprocesseur vérifie s il doit traiter l interruption en fonction de sa priorité et de ses registres internes. Finalement, il envoie un accusé réception au contrôleur d interruptions. Le microprocesseur sauvegarde l emplacement du programme en cours (l adresse de retour) et toute l information nécessaire pour reprendre l exécution du programme en cours (drapeaux par exemple). Le microprocesseur détermine l adresse de la routine à exécuter afin de traiter l interruption. Le microprocesseur appelle la routine de traitement de l interruption (ISR). La routine de traitement de l interruption est exécutée. En temps normal, l ISR sauvegarde les registres utilisés dans l ISR sur la pile et l ISR se termine avec une instruction de retour vers le programme exécuter avant l interruption. Cours 16, p.6

Interruptions multiples, types et priorités Lorsque plusieurs périphériques peuvent faire des interruptions, il faut identifier qui fait l interruption et déterminer quelle interruption est la plus prioritaire. Il existe quatre méthodes de détection de la source d interruption: Plusieurs lignes d interruption. Le microprocesseur détermine qui a fait l interruption en fonction de la ligne activée. Cette approche requiert trop de ligne pour les interruptions! Interrogation logicielle (software polling). Lors d interruption, un programme est exécuté afin de demander à chaque périphérique s il a généré l interruption. Cette approche prend beaucoup de temps. Chaînage en série (interruption matérielle vectorisée). Lors d interruption, le périphérique ayant fait l interruption mettra un numéro (ou vecteur) sur le bus de donnée après l accusé réception du microprocesseur. Cette technique est celle du 8086 vue précédemment et de la plupart des microprocesseurs. Arbitrage de bus. Comme le chaînage en série, sauf que le périphérique prend le contrôle du bus de données avant de générer l interruption. Il y a plusieurs types d interruption tel que vu avec le 8086: Situation anormale (exceptions). Exemple: division par 0. Interruption logicielle. Exemple: appeler une routine I/O du BIOS. Interruption matérielle. Exemple:une touche de clavier. Cette catégorie se divise en plusieurs sous catégories. Une interruption matérielle peut annoncer une situation anormale, la fin d une tâche, un évènement externe, Les interruptions ont habituellement des priorités tel que vu pour le 8086. Cours 16, p.7

Direct Memory Access (DMA) (1/4) Le Direct Memory Access (DMA) est un transfert de données direct entre un périphérique et la mémoire ou vice versa, effectué sans intervention du microprocesseur. Le contrôleur de DMA est un circuit intégré qui gère le transfert par DMA. Le transfert par DMA se fait par bloc de données, les données étant à des adresses contigües de la mémoire et provenant habituellement du même périphérique. Mémoire Entrée/ sortie Microprocesseur BUS D'ADRESSE BUS DE DONNÉES BUS DE CONTRÔLE MEMR, MEMW, IOR, IOW, AEN... HRQ HLDA 8237 Contrôleur de DMA DRQ0 DRQ1 DRQ2 DRQ3 Cours 16, p.8

Direct Memory Access (DMA) (2/4) Les transferts par DMA sont configurés par des instructions de la mémoire exécutées par le microprocesseur. Habituellement, le microprocesseur configure le transfert de DMA en exécutant ces instructions. Au minimum, les instructions configureront: La plage de mémoire visée par le transfert de données (l adresse de départ et le nombre de données à transférer). Le périphérique visé par le DMA La vitesse de transfert, la taille des données transférées et le mode de transfert (la façon dont sera déclenchée le transfert, seul le mode de transfert unique un seul bloc de données- sera vu dans le cadre du cours). Une fois le transfert configuré, le transfert par DMA débute automatiquement lors d un signal de périphérique ou lors que le microprocesseur exécute une instruction initiant le transfert, en fonction du mode de transfert. Lors de l initialisation d un transfert par DMA, le contrôleur de DMA négocie l accès au bus de données avec le microprocesseur. Dans l exemple de la page précédente (qui est un vieil exemple), un périphérique demande un transfert par DMA en activant DRQ2. Ensuite, le contrôleur de DMA (8237) active la ligne HRQ pour demander un accès au bus de données au microcontrôleur. Enfin, le microcontrôleur active HLDA pour permettre le transfert. Cours 16, p.9

Direct Memory Access (DMA) (3/4) Lors d un transfert par DMA, le contrôleur de DMA gère les bus de contrôle d adresse et de données pour effectuer le transfert. Le microcontrôleur et le contrôleur de DMA ne peuvent contrôler les bus en même temps. Le transfert s effectue habituellement avec un compteur sur le bus d adresse. Lors du transfert de chaque données, le compteur d adresse est incrémenté à partir de l adresse de base du bloc de mémoire visé. Le contrôleur de DMA possède souvent un tampon de mémoire pour emmagasiner les données échangées entre la mémoire et un périphérique. Le transfert se fait en deux temps: lecture de données puis écriture de données. Le transfert par DMA est beaucoup plus rapide que le transfert avec des instructions MOV ou IN/OUT et il soulage le microprocesseur de cette tâche: Entre le transfert de chaque données, le microprocesseur n a pas à lire et exécuter des instructions. Le transfert se fait par bloc, directement de la mémoire au périphérique ou vice versa: les données ne sont pas entreposées temporairement dans des registres du microprocesseur. Pendant le transfert, le microprocesseur peut effectuer d autres tâches. Cours 16, p.10

Direct Memory Access (DMA) (4/4) Dans les systèmes modernes, le microprocesseur n est pas pausé (HALT) pendant le transfert par DMA. Plusieurs stratégies peuvent permettre l exécution d instructions même si le contrôleur de DMA contrôle un bus d accès à la mémoire de données: Dans l architecture Harvard, le contrôleur de DMA monopolise le bus de données seulement. Le bus d instruction relié à la mémoire d instruction reste sous le contrôle du microprocesseur qui peut lire et exécuter des instructions pendant le transfert, sauf si ces instructions accèdent à la mémoire de données. Deux bus d accès à la mémoire peuvent permettre au contrôleur de DMA et au microprocesseur d accéder simultanément à la mémoire. L accès au bus de données par le contrôleur de DMA est subordonné à celui du microprocesseur: le contrôleur de DMA effectue le transfert entre chaque moment d utilisation du bus par le microcontrôleur. Les caches contiennent des données utilisées par le microprocesseur alors que le transfert par DMA modifie la mémoire seulement. Le DMA est utilisé abondamment dans vos ordinateurs: transfert de données entre la mémoire et le disque dur, transfert de données vers la carte graphique ou la carte de son, etc. Cours 16, p.11

E/S et Système d Exploitation (1/3) Le système d exploitation gère presque tous les accès aux périphériques dans les ordinateurs. C est le système d exploitation qui implémente presque toutes les fonctions d accès à ceux-ci, quelle que soit la méthode d accès aux E/Ss. Cette gestion du matériel par le système d exploitation a plusieurs avantages: Le programmeur n a pas à se préoccuper de la nature des périphériques de l ordinateur lorsqu il fait des programmes qui ne sont pas spécifiques à un périphérique. Le système d exploitation peut gérer l exécution des processus en fonction de leurs accès aux périphériques: Si le périphérique est lent, le processus deviendra bloqué jusqu à ce que le périphérique termine la tâche qui lui a été demandée. Si plusieurs processus utilisent le même périphérique, la système d exploitation gère les conflits de ressource entre les processus. Les accès aux périphériques sont habituellement vus comme des accès à un fichier pour les applications du programmeur. Avec le DOS, les accès aux périphériques se faisaient à travers des interruptions logicielles, mais, sous Windows, ils faut appeler des fonctions spécifiques. Les routines traitant les interruptions (ISR) demeurent des routines du système d exploitation. C est le système d exploitation qui initialise la table des vecteurs d interruptions et établit les ISRs en fonction de ses pilotes de périphériques. Cours 16, p.12

E/S et Système d Exploitation (2/3) Pour communiquer avec un périphérique, une application doit ouvrir un lien de communication avec le périphérique (Open file), puis faire des écritures et des lectures (Read/Write file). Un handle est un numéro qui est attribué à un fichier lors de son ouverture. Ce numéro sert à identifier le fichier/périphérique pour toutes les opérations sur le fichier subséquentes. Les requêtes d I/Os sont envoyées à l I/O manager (gestionnaire d E/S). Une routine d I/O crée un IRP (I/O Request Paquet) qui est envoyé au pilote de périphérique approprié. Un IRP dernier est un objet décrivant une requête d I/O. Le pilote de périphérique, un ensemble de fonctions réalisant des tâches précises, traite le IRP. Il envoie des commandes au périphérique. Le périphérique reçoit les commandes du pilote de périphérique. Il les exécute, puis signale qu elles sont terminées par une(des) interruption(s). La routine d interruption (ISR) redonne le contrôle au pilote de périphérique qui termine le transfert de donnée du/vers le périphérique. Le pilote de périphérique signale à la routine d I/O que l opération est complétée. La routine d I/O, à son tour, signale au processus qu l opération est complétée. Cours 16, p.13

E/S et Système d Exploitation (3/3) Processus utilisateur WriteFile(Handle, char* BufferOut, BufferOut,...) ReadFile(Handle, char* BufferIn, #datatoread,...) 1 6 Routine d'i/o du I/O manager Fait le lien entre le handle et le périphérique Contrôle les paramètres de la fonction Suspend le processus usager Construit l'irp. Signale la requête au"driver" approprié. Se met en attente Remet le processus ready Vérifie les erreurs Si nécessaire, transfert des données de l'espace noyau vers l'espace du processusé Détruit l'irp Exit Noyau 2 5 Pilote de périphérique Vérifie s'il y a une requête dans sa file d'attente. Extrait et traite l'irp reçu. Initie la communication avec le périphérique Se met en attente Effectue du traitement sur les données provenant du périphérique Envoyer les données à destination Vérifie les erreurs Signale la fin du traitement 4 Vers le périph (HAL et contrôleurs de bus) Traite l'interruption Détermine qui a fait une requête au périphérique Transfert des données au driver pour du posttraitement Signale au driver la réponse du périphérique 3 Interrupt Tiré des notes de cours de IFT-10544, Université Laval, session A04. Modifié par Etienne Tremblay Cours 16, p.14

Architectures CPU/Mémoire/E-S Un ordinateur a cinq composantes de base: le processeur, la mémoire, les modules entrées/sorties, les périphériques et les bus. Il y a une multitude de façon d agencer tous ces éléments entre eux. Chacune de ces façons est une architecture qui a ses avantages et ses inconvénients. Deux architectures sont essentiellement utilisées de nos jours: l architecture de bus (avec hiérarchie de bus, bus I/O) et l architecture de canaux (Channel I/O). L architecture de bus se retrouve habituellement dans vos PCs. L architecture de canaux est principalement utilisée par IBM pour les serveurs. Les acétates qui suivent présentent ces deux architectures. Cours 16, p.15

Architecture de Bus Rappel: Un bus est un ensemble de lignes électriques. Dans une architecture de bus, les modules d E/S sont connectés sur des bus, reliés à d autres bus par des contrôleurs de bus (souvent appelés interfaces ou ponts). Le processeur et la mémoire sont eux-mêmes sur des contrôleurs de bus. Les contrôleurs de BUS et les lignes de BUS doivent supporter le DMA et les interruptions d un bus à l autre. Il doit être toujours possible de faire des entrées/sorties programmées, par interruption ou avec DMA. Il existe une hiérarchie de bus. Plusieurs bus de plus en plus lents vont du processeur aux E/S principalement parce que: les E/S ont des taux de transfert de données différents, les bus rapides doivent êtres courts afin de limiter les délais de propagation et les pertes d énergie, il ne faut pas surcharger un bus d appareils. Cours 16, p.16

Description des Bus (1/3) Chaque bus a ses propres caractéristiques. Les bus peuvent être fort différents. Néanmoins, tous les bus ont une largeur (un nombre de lignes!) comprenant un nombre de lignes de données et d adresses, une vitesse de communication, un type de connecteur et un protocole qui décrit la façon dont sont échangées les données sur le bus. Voici quelques termes que l on retrouve couramment dans la description de bus: Ligne dédiée. Ligne de bus réservée à une fonction unique. Ligne multiplexée. Ligne de bus qui peut avoir plusieurs rôles. Par exemple, nous avons vu le multiplexage temporel pour les lignes d adresses et de données du 8086. Méthode d arbitrage. La méthode d arbitrage détermine qui contrôle le bus. Dans les systèmes simples que nous avons vu, il n y avait que le CPU qui pouvait contrôler le bus et l arbitrage était tout simple: le CPU contrôle toujours le bus! Toutefois, lors de DMA ou lorsqu il y a plusieurs CPU, il faut une convention pour savoir qui contrôle le bus: c est la méthode d arbitrage. Il y en deux types: centralisée (un arbitre décide qui contrôle le bus) et distribuée (les contrôleurs de bus s échangent le contrôle à tour de rôle). Bus synchrone ou asynchrone. Dans un bus synchrone, une ligne du bus sert d horloge. Dans un bus asynchrone, la vitesse de communication est préétablie et l occurrence d un évènement dépend des évènements survenus auparavant. Point à point ou multipoint. Un bus point à point est un bus sur lequel deux appareils seulement sont connectés. Il y aura plusieurs appareils sur un bus multipoint. Bloc ou Données en rafales (burst). Les données peuvent être échangées par blocs de taille fixes ou en blocs de tailles variables, en rafale. Protocole Série ou parallèle (ne pas confondre avec port série et port parallèle). Un bus série est un bus ou les bits sont transmis sur une seule ligne, un après l autre. Sur un bus parallèle, plusieurs bits sont transmis simultanément. Cours 16, p.17

Description des Bus (2/3) Pour tous les bus existants, une vitesse de communication maximale est toujours annoncée. Ce chiffre est toujours supérieur à la vitesse maximale réelle à laquelle peut se transférer les données d un usager: Des pertes de temps surviennent afin d arbitrer les bus. Des bits peuvent être ajoutés aux données brutes afin de détecter et/ou corriger des erreurs. Des bits peuvent être ajoutés aux données afin d assurer la synchronisation des messages Des bits peuvent être ajoutés afin d éviter de longues séquences de 1 ou 0 et/ou de limiter la puissance des harmoniques secondaires du signal transmis. Il y a toujours un temps de latence au début d une communication entre deux appareils. Il est possible et même très probable que la communication ne puisse pas se faire à vitesse maximum pendant un intervalle de temps très long. Les données des usagers sont presque toujours encapsulées dans plusieurs couches de protocole de communication. Les bytes de protocole ajoutés ont plusieurs fonctions comme identifier la source et la destination du message ou donner un numéro de référence au message. La vitesse effective/réelle est la vitesse à laquelle les données d un usager sont échangées sur un bus. Cette vitesse est souvent sensiblement inférieure à la vitesse maximale. Certaines vitesses sont en bits/secondes (bps). D autres sont en octets ou bytes par secondes. La vitesse en bps est 8 fois plus grande que celle en bytes et elle est meilleure vendeuse Cours 16, p.18

Description des Bus (3/3) La majorité des bus à l intérieur des ordinateurs modernes adoptent des protocoles de type série. À très haute fréquence, les délais de transmission d un signal électrique dans un fil court peuvent devenir considérable par rapport à la période d un bit. Lorsque plusieurs traces (fils électriques sur des PCBs) sont en parallèle, elles ne peuvent pas avoir la même longueur pour des raisons purement mécanique. Des signaux électriques qui partent en même temps d un transmetteur n atteignent pas en même temps le receveur si les fils qui propagent les signaux n ont pas la même longueur. À haute fréquence, il est possible que des bits d un fil arrivent décalés par rapport au bits des autres fils. De ce fait,un bus parallèle est peu envisageable pour des fréquences supérieure à 1 GHz. Les BUS récents sont des bus avec plusieurs liens point à point Si l appareil A est relié à l appareil B et que l appareil B est reliée à l appareil C, les messages de l appareil A à l appareil C seront reçus et retransmis par l appareil B. La bande passante d un bus multipoint doit être répartie entre tous les appareils connectés sur le bus. Avec plusieurs liens point à point, la communication entre plusieurs paires d appareils peut se faire simultanément. Les bits transmis sont encodés en mode différentiel La différence de tension entre deux signaux propagés sur deux lignes différentes détermine la valeur d un bit transmis. Des symboles différents sont transmis si la différence est positive ou négative. Le bruit commun sur les deux lignes propageant le signal est éliminé lorsque la différence est effectuée. Très robuste. Lorsque la différence est nulle, le bit est invalide ou une autre information peut être transmise. Cours 16, p.19

Les Bus de votre Ordinateur (1/4) Cache L1 CPU Back Side Bus (BSB) Cache L2 Carte Video Bus AGP Front Side Bus (FSB) Interface AGP Chipset North Bridge Bus Mémoire/ Système Memoire DRAM Autre carte PCI Interface USB Chipset South Bridge Interface PCI Bus SATA Interface SATA Interface réseau Disque Dur Contrôleur de disque SCSI ou ATA (IDE) Architecture possible des Bus d un PC acheté en 2003 Bus PCI Interface de port série Interface PCI/ISA Interface de port parallèle Bus ISA Cours 16, p.20

Les Bus de votre Ordinateur (2/4) Architecture de base des bus d un PC Cache L1 CPU Cache L2 Back Side Bus (BSB) Cache L3 Carte Video Bus PCI Express Front Side Bus (FSB) Interface PCI Express Interface USB 2.0 Interface USB 2.0 Interface PCI Express Interface PCI Express Chipset North Bridge Chipset South Bridge Bus Mémoire/ Système Interface SATA Interface PCI Express Memoire DRAM Disque Dur Interface réseau Architecture possible des Bus d un PC acheté en 2007 Autre carte PCI Carte de son Interface PCI Interface de port série Interface de port parallèle Bus PCI Cours 16, p.21

Les Bus de votre Ordinateur (3/4) Microprocesseur Carte Video Coeur Graphique Coeur 1 Coeur 2 Cache L1 Cache L2 Coeur 3 Coeur 4 Cache L3 Memory Management Unit Bus Mémoire/ Système Memoire DRAM Interface USB 2.0 Interface USB 2.0 Interface PCI Express Interface PCI Express Chipset South Bridge Interface SATA Interface PCI Express Disque Dur Interface réseau Architecture possible des Bus d un PC acheté en 2011 Autre carte PCI Carte de son Interface PCI Interface de port série Interface de port parallèle Bus PCI Cours 16, p.22

Les Bus de votre Ordinateur (3/4) Dans un ordinateur PC actuel, vous devriez rencontrer plusieurs bus tels que présentés dans les acétates précédentes. Habituellement, le CPU communique avec ses caches sur un bus dédié, le back side bus (BSB). Il communique également avec la mémoire, la carte video et les E/S à partir du front side bus (FSB). Le chipset, du moins la partie nord, est responsable de router les échanges entre la mémoire et le CPU, la mémoire et la carte vidéo et le CPU et la carte vidéo. De larges quantités de données sont rapidement échangées dans cette partie de l ordinateur, habituellement concentrée sur la carte mère. Le chipset est également responsable de la communication entre le CPU (ou la mémoire dans le cas de DMA) et les autres E/S par sa partie sud (pont ou bridge). Ces échanges sont plus lents et moins volumineux que dans la partie nord. Le North Bridge et même un processeur graphique sont parfois intégrés dans les microprocesseurs modernes au même titre que la cache L3. Le bus PCI ou le bus PCI express est le principal bus sur lequel se connecte tous les modules d E/S. Il s y connecte habituellement le disque dur, les cartes réseaux, le port USB et d autres bus plus lents, s il y en a. Dans les figures précédentes, on retrouve le clavier et la souris sur un bus ISA, plus lent que le bus PCI auquel il est connecté. Les figures montrant l architecture typique d un PC ne sont que des exemples qui ne s appliquent pas à tous les ordinateurs! Ces figures ne s appliquent généralement pas aux serveurs, ni aux ordinateurs ayant plusieurs deux coeurs, ni aux ordinateurs n ayant pas de bus ISA, ni aux ordinateurs n ayant pas une cache externe, ni aux ordinateurs Cours 16, p.23

BUS PCI Le Bus PCI (Peripherical Component Interface) a été créé au début des années 1990 par Intel. Il a été rapidement mis dans le domaine publique (Open Source) afin d en permettre la diffusion à large échelle. Depuis, il s agit d un standard qui est/sera remplacé par le PCI Express. Le bus PCI a 32 lignes d adresses et 32 ou 64 lignes de données. Pour avoir 64 bits de données, du multiplexage temporel est fait avec les 32 lignes d adresses. Incluant ces lignes de données/adresses, le bus PCI a 120 lignes. Le bus PCI a une horloge de 66MHz (version 2.2), indépendante de l horloge du CPU. Les données y sont transférées de façons synchrones à un débit pouvant aller jusqu à 66MHz*64bits en parallèle, soit 4.224Gbit/s. Notez que la version originale du PCI avait une horloge de 33MHz et qu il existe des versions à 133Mhz (PCI-X). Il y a un arbitre central sur le BUS PCI déterminant qui contrôle bus. Il est possible de connecter plusieurs processeur à un seul bus PCI. Il est également possible de faire du DMA. Le bus PCI supporte les interruptions. Il a quatre lignes pour y connecter des contrôleurs d interruptions et supporter le transfert d Interrupt Acknowledge du CPU vers un périphérique. Les données sont transmises par bloc sur le bus PCI. Elles sont emmagasinées dans un cache qui permet d adapter la vitesse des modules d E/S à celle du CPU. Il existe des chips simples et peu coûteux permettant d attacher d autres bus comme le bus ISA au bus PCI. Le bus a été conçu en tenant compte des autres bus existants. Pour plus d information sur le bus PCI ou sur le PCI-X, lire: http://www.pcstats.com/articleview.cfm?articleid=1087 Les connecteurs des cartes dextension (un peu vieux, mais!) Cours 16, p.24

BUS ATA (IDE), SCSI et SATA Les bus ATA (IDE), SCSI et SATA ont été créés afin de communiquer avec des disques durs. Le bus IDE (Integrated Disk Electronics) est le plus vieux, le moins performant et le moins cher. Il s agit du câble à ruban plat de 40 pins que l on retrouve encore dans certaines machines. Le bus ATA (Advanced Technology Attachment) est du même type que le bus IDE, mais en plus performant. Il utilise le même câble, mais à de plus hautes vitesses. Il existe plusieurs versions de ATA, ATA-1 étant la même chose qu IDE. Le bus SCSI (Small/Smart Computer Standard Interface) a été créé afin de suppléer aux limitations du bus IDE (nombre de disques limité, peu de support pour le RAID, etc.). Le bus SATA (Serial Advanced Technology Attachment) utilise un protocole série, contrairement au ATA ou au SCSI. Il est sorti en 2003-2004. Vous pourrez trouver davantage d information sur chacun de ces bus sur internet. Voici deux liens à titre d exemples: http://sophia.dtp.fmph.uniba.sk/pchardware/idescsi.html http://www.interfacebus.com/design_connector_serial_ata.html Cours 16, p.25

BUS ISA, AT, EISA, et VLBUS Le BUS ISA (Industry Standard Architecture) a été développé par IBM dans les années 1980 à 1981. Ce bus 8 bits (nombre de lignes de données!) devait fournir un bus plus puissant que les quelques bits disponibles sur le port parallèle des PCs. Toutefois, il a été remplacé rapidement, en 1984, par une version 16bits, le bus AT. Le bus EISA (Extended ISA), également une version plus récente du bus ISA, est sur 32 bits. Le VLBUS (Video Electronics Standard Association Local BUS) a été créé dans les années 1990 pour supporter des cartes graphiques plus performantes. Bien que décrits dans «Les connecteurs des cartes dextension.doc», vous ne retrouverez pratiquement plus ces bus dans les ordinateurs modernes. Ils sont désuets, car ils ont tous été supplantés par le bus PCI. Seules quelques vieilles interfaces pratiques demeurent sur ces bus (port série et port parallèle sur le bus ISA!). Cours 16, p.26

BUS AGP Le bus AGP (Accelerated Graphics Port) a été créé par Intel en 1996 afin d améliorer les vitesses de communication avec les cartes graphiques. Les transferts de données nécessaires aux besoins graphiques modernes ne peuvent pas être supportés par le bus PCI qui est trop lent et trop encombré (presque tous les périphériques sont connectés au bus PCI!!!). Il n y a qu un seul périphérique connecté sur le bus AGP: la carte graphique! Pour plus de détail sur ce bus, voir des sites internet comme http://www.hardwaresecrets.com/article/155. Cours 16, p.27

BUS PCI EXPRESS Le bus PCI EXPRESS a été créé par Intel en 2004 afin de remplacer le bus AGP et le bus PCI trop encombré (même sans la carte graphique, le bus PCI n est pas capable de fournir une carte Ethernet Gigabyte, des périphériques USB2.0, du FireWire et plusieurs autres périphériques). De nos jours (2011), le PCI Express a remplacé l AGP sur presque toutes les cartes mères, mais le PCI demeure pour les périphériques ayant peu de besoins en terme de bande passante (peu de données à échanger par unité de temps). Le bus PCI Express est un bus série transmettant en mode différentiel à 5Gbps. Il est possible de doubler, quadrupler la paire de fils utilisés pour passer à 10Gps ou 20Gbps. Il est aussi possible de multiplier le nombre de fils par 8 ou 16 Les bytes de données de l usager sont codés sur 10 bits. 2 bits sont ajoutés essentiellement afin de détecter les erreurs. On parle d encodage 8b/10b. Le PCI Express a aussi de nombreuses couches de communication qui ajoute une entête aux données de l usager. Le bus PCI Express est Point à point. Plusieurs connections point à point étant potentiellement disponibles à partir du Chipset (ou du microprocesseur directement). Pour plus de détail sur ce bus, voir des sites internet comme: http://www.dell.com/content/topics/global.aspx/vectors/en/2004_pciexpress?c=us&l=en&s=gen www.intel.com/technology/pciexpress/devnet/docs/whatispciexpress.pdf Cours 16, p.28

Architecture de Canaux (1/2) Dans l architecture de canaux, le CPU n exécute aucune instruction d E/S. Une composante appelée canal se charge des E/S pour lui. Le canal d E/S reçoit des requêtes du CPU et exécute des programmes contenus dans la mémoire afin de communiquer avec le périphérique. Une fois les données du périphérique mise en mémoire tampon, elles sont transférée dans la mémoire par DMA. On parle de canal, parce que le CPU ouvre une «voie» d un périphérique à la mémoire. Cette «voie» est contrôlée par du matériel externe au CPU qui prend les données des périphériques et les place en mémoire. Ce matériel, capable d exécuter des instructions, libère le CPU des tâches longues et fastidieuses reliées aux E/S. Il existe deux types principaux de canaux d E/S: les canaux sélecteurs et les canaux multiplexeurs. Un canal sélecteur contrôle plusieurs modules d E/S haute vitesse. À tout instant, il est dédié au transfert des données d un unique périphérique vers la mémoire. Un canal multiplexeur contrôle plusieurs modules d E/S «simultanément». Il répartit la bande passante entre chaque appareil habituellement basse vitesse pour aller chercher de leur données à tour de rôle. Cours 16, p.29

Architectures de Canaux (2/2) Illustration d un canal sélecteur Cours 16, p.30

Interfaces externes et périphériques En plus de tous les bus présentés dans ce cours, il existe plusieurs bus qui sortent de l ordinateurs. Ces bus sont appelées interfaces externes. En voici une liste non exhaustive qui sera le sujet du prochain cours: ports parallèle et série, port PS/2 (clavier et souris), USB, FireWire, Ethernet, InfiniBand Cours 16, p.31

Références et exercices Références Irv Englander: Chapitre 9 William Stallings: Chapitre 3 et Chapitre 7, sauf 7.7 IRQ+DMA.doc Les connecteurs des cartes dextension.doc Cours 16, p.32