1.44k likes | 2.56k Views
Architecture des Ordinateurs. Communication de données entre éléments Communication processeur mémoire Évaluation de performances La gestion de périphériques Plus loin dans l ’assembleur : le processeur MIPS gestion de périphériques en assembleur les exceptions
E N D
Architecture des Ordinateurs Communication de données entre éléments Communication processeur mémoire Évaluation de performances La gestion de périphériques Plus loin dans l ’assembleur : le processeur MIPS gestion de périphériques en assembleur les exceptions Quelques architectures parallèles
Rappel Échange de données via : bus d ’adresse (unidirectionnel) bus de données (bidirectionnel) Micro-processeur Mémoire
Rappel Terme générique de BUS : englobe bus de donnés, bus d ’adresse, signaux de commande Micro-processeur Mémoire commandes RAM CPU BUS
Autres dispositifs • Communication avec d’autres éléments : • clavier • moniteur (carte vidéo) • souris • cartes contrôleur (USB, SCSI, Firewire) • disques, lecteurs/graveurs • imprimantes • autres cartes (réseau, acquisition vidéo, etc…)
Autres dispositifs Communications entre processeur et éléments, mais aussi d’élément à élément. Communication par BUS BUS : canal de communication plusieurs sortes de BUS imprimante Écran autres Disque RAM CPU BUS
Autres dispositifs Éléments échangent des données via le bus. 1 seul bus : 1 seul dialogue à la fois 2 éléments concernés : le dialogue doit être organisé : stratégie de type Maître/Esclave Maître : donne des commandes via le bus Esclave : effectue l’action demandée Exemples avec CPU et Mémoire
Échanges CPU/Mémoire Comment utiliser le (?) bus… LE bus : abus de langage : facilite la présentation en fait : bus d ’adresse, bus de données le plus souvent : pistes de cuivre contiguës : apparence d’un seul bus. De plus : signaux de commande pour piloter l’esclave En cas d’échange CPU/mémoire Maître : CPU Esclave : Mémoire
Échanges CPU/Mémoire Établissement d ’un dialogue initié par le CPU : 2 possibilités : a) Lire une donnée à une certaine adresse b) Écrire une donnée à une certaine adresse quel élément fournit les informations pour ces deux cas ? a) CPU fournit adresse ou lire : via le bus d ’adresse commande READ via signaux de commande RAM fournit valeur stockée via le bus de données
Échanges CPU/Mémoire b) CPU fournit adresse ou lire : via le bus d ’adresse commande WRITE via signaux de commande valeur à écrire via le bus de données la RAM est passive ? Les éléments du dialogue sont ordonnés chronologiquement ! La RAM ne peut pas traiter la requête instantanément
Échanges CPU/Mémoire Cas a) CPU : "voici l’adresse, voici la commande READ" quand la donnée sera-t-elle fournie par la RAM ? La RAM fonctionne-t-elle bien ? RAM : fournit un premier accusé de réception de la commande envoyée par le processeur : "bien reçu !" RAM : temps d’attente (délai de latence) pour répondre une fois ce délai passé : RAM "voici la donnée, elle peut être lue" CPU "bien reçu !" RAM "ok, je suis de nouveau disponible"
Échanges CPU/Mémoire Cas b) CPU : "voici l’adresse, voici la commande WRITE, voici la donnée" quand la donnée sera-t-elle inscrite par la RAM ? La RAM fonctionne-t-elle bien ? RAM : fournit un premier accusé de réception de la commande envoyée par le processeur : "bien reçu !" RAM : temps d’attente (délai de latence) pour répondre une fois ce délai passé : RAM "j'ai écrit la donnée" CPU "bien reçu !" RAM "ok, je suis de nouveau disponible"
Types de BUS Deux grandes familles de bus pour traiter ce type d'échange BUS synchrone : possède sa propre fréquence, synchronisation des dispositifs par rapport au BUS utilisation des fronts du signal d'horloge du bus comme points de repère : toute transaction occupe un nombre entier de cycles de bus
Types de BUS Bus synchrone : signal d'horloge représentation : Front descendant t ns Front montant 1 cycle de bus Temps de montée non négligeable par rapport au temps de cycle
Types de BUS Toute information est prise en compte à l'apparition d'un front (montant ou descendant). Certains dispositifs utilisent les deux fronts (ex : RAM de type DDR) permet des transferts par blocs (plusieurs données)
Types de BUS BUS asynchrone : pas d'horloge, les points de repère sont fournis pas des signaux annexes de synchronisation. Chaque élément pilote un tel signal de synchronisation signal MSYN : synchronisation maître signal SSYN : synchronisation esclave
Chronogrammes de BUS Reprise des exemples de dialogue Détail de la transaction ,des signaux délivrés au fur et à mesure du temps : chronogramme de bus. Découpé ou non en cycles ! Déroulement temporel Horloge ! Synchrone/asynchrone : Même dialogue, synchronisation différente.
MREQ MSYN SSYN RD Chronogrammes de BUS Bus asynchrone Les signaux ADRESSES DONNEES
ADRESSES MREQ MSYN SSYN RD DONNEES Chronogrammes de BUS Relation de cause à effet entre signaux
Chronogrammes de BUS Bus synchrone, fréquence F= 40 MHz C2 C1 C3 ADRESSES MREQ RD WAIT DONNEES
Chronogrammes de BUS Contrainte de temps sur un bus synchrone Adapter le temps de réponse de la mémoire à la fréquence du bus. But : minimiser les cycles en wait-state car : occupation du bus monopolisation de l'UC (instruction en cours) le bus peut être plus lent que l'UC. L'UC s'organise en conséquence (déséquencement)
Chronogrammes de BUS Contrainte de temps sur un bus synchrone Sur l'exemple précédent : calcul du temps de réponse de la mémoire en fonction des caractéristiques du bus: la mémoire commence à réagir lorsque les signaux MREQ et RD sont actifs. pourquoi pas de réaction avec le bus d'adresse ?
Chronogrammes de BUS Contrainte de temps sur un bus synchrone Temps disponible dans chaque cycle cycle C1 : reste (à peu près) : 10 ns (après stabilisation de MREQ et RD) cycle C2 : on accepte un cycle en wait-state : 25 ns (la mémoire indique qu'elle ne peut répondre) cycle C3 : la donnée doit être stable à la moitié du cycle : 10 ns (car donnée lue au front descendant d'horloge dans C3) total : 45 ns = limite supérieure du temps de réaction avec 1 wait-state
Chronogrammes de BUS Contrainte de temps sur un bus synchrone Démarche inverse : on connaît le temps de réponse de la mémoire, combien y aura-t-il de cycles d'attente ? Nombre de cycles en wait-state 4 3 2 1 0 45 70 95 120 Temps de réponse (ns)
Mode bloc (bus synchrone) Transfert de plusieurs données à la suite : une seule adresse fournie (sinon : plusieurs transactions) plusieurs valeurs concernées (lecture ou écriture) donc valeurs localisées à des adresses successives Utilité ? 1) taille de donnée transmise = taille D du bus de données rappelez-vous le M68000 ! D taille M d'une cellule mémoire taille R d'un registre de données ! 2) Anticipation des accès futurs
Mode bloc (bus synchrone) Ajout d'un signal supplémentaire BLOCK pour demande de lectures successives. Principe : le CPU donne : l'adresse, le nombre de données à fournir (sur bus de données) et utilise un signal BLOCK. La mémoire indique les cycles de wait-state, puis transmet les données demandées à raison d'une par cycle. Exemple d'un tel chronogramme :
Chronogramme de transfert de bloc C2 C4 C1 C3 ADRESSES BLOCK MREQ RD WAIT data data nombre DONNEES
Comparaison de performance Avec un bus synchrone : transfert de N données (lecture) mode 'simple' : N transactions, chacune consommant C cycles. décomposons C : 1 cycle de préparation W cycle(s) d'attente (wait state) 1 cycle de lecture d'où C = W+2 d'où temps total de transfert (on considère que les transactions s'enchaînent sans temps mort) : N.C = N.(W+2)
Comparaison de performance Avec un bus synchrone : transfert de N données (lecture) mode 'bloc' : 1 transactions, consommant C' cycles. décomposons C' : 1 cycle de préparation W cycle(s) d'attente (wait state) N cycles de lecture (car mode bloc) d'où temps total de transfert (on considère que les transactions s'enchaînent sans temps mort) : 1.C' = 1+W+N
Autres types de transactions Communications avec autres dispositifs ? Avec le même principe : synchronisation d'un dialogue pré établi entre maître et esclave, via le bus. Maître : "voici l'adresse, voici la commande (et éventuellement la donnée)" Esclave : (au bout d'un certain temps) : "Ok, bien reçu, c'est fait" Maître : "Bien reçu, j'ai terminé de mon côté" Esclave : "Je suis de nouveau disponible"
Autres types de transactions Tout dispositif ou périphérique est adressable par le CPU où un autre dispositif (nous y reviendrons plus tard)
Limites des familles de BUS Bus synchrone : présence de cycles transactions en nombre entiers de cycles coût peu élevé : synchro faite par le bus. Efficace pour une gamme de fréquence Bus asynchrone : transactions réglées au plus vite signaux supplémentaires coût élevé : synchro faite par les périphériques ! Efficace quelle que soit le débit du périphérique
Architecture des bus d'un PC Basé sur des BUS synchrones. Quels types de bus connus ? ISA / EISA : ancien bus de PC PCI (VLB) : Bus générique à l'origine USB : Universal Serial Bus AGP : Accelerated Graphic Port : cartes graphiques IDE/EIDE/(S)ATA : Integrated Drive Electronics / AT Attachment : Disques SCSI : Disques
CPU BUS Processeur Carte Vidéo Chipset 1 "NorthBridge" RAM BUS MEM BUS AGP Gfx RAM BUS interne USB FireWire IDE ATA Chipset 2 "SouthBridge" Audio/Modem/Réseau Clavier/souris/floppy/Midi BUS PCI
Caractéristiques des bus PC • Le FireWire (ou IEEE 1394-1995) • partie intégrante de la norme SCSI-3, utilisation d'un bus série. • Standard for a High Performance Serial Bus : nom de norme originale • FireWire : nom déposé par Apple Computers Inc. • Avantages prévus : • interface numérique (pas de CAN/CNA) • taille réduite : câble fin, peu coûteux • Hot Plug and Play • topologie flexible • garantie de bande passante pour tous les périphériques
Caractéristiques des bus PC Le FireWire (ou IEEE 1394-1995) Destiné à relier : ordinateurs, produits manipulant de l'audio et de la vidéo (caméscopes), imprimantes, scanners, disques durs. Proche de l'USB, bande passante bien supérieure, apparition de l'IEEE 1394b pour concurrencer l'USB 2.0
Caractéristiques des bus PC Le SCSI (Small Computer System Interface) créée en 1986 à partir de l'interface SASI. Possibilité de connecter des périphériques internes, contrôleur évolué non prévu en série sur les différents chipsets : carte SCSI et matériels onéreux en général. Gestion des accès et des transferts réalisés par des puces spécialisées : décharge du processeur. Débit de 1,5 Mo/s (SCSI-1) à 320 Mo/s (SPI-Ultra320)
Caractéristiques des bus PC L'USB (Universal Serial Bus) Première version commerciale de l´Universal Serial Bus, l´interface USB 1.1 permet de connecter à un micro-ordinateur jusqu´à 127 périphériques pour un débit maximal de 12 Mbits/s, soit 1.5 Mo/s, le tout sur un bus série comme son nom l´indique. Principalement destiné aux périphériques lents, l´interface a été développée par Compaq, Hewlett-Packard, Intel, Lucent, Microsoft, NEC et Philips depuis 1994 pour aboutir sur le marché grand public en 1998.
Caractéristiques des bus PC • L'USB (Universal Serial Bus) • Les principaux critères du développement de ce bus ont été les suivants : • Facilité d´utilisation • Solution bas-prix pour des périphériques pouvant communiquer jusqu´à 12 Mbits/s • Transmission en temps réel de la voix, du son et de vidéos compressées • Support de l´architecture CTI (Computer Telephony Integration) • Facilité et ajout de possibilités d´extensions pour tout micro-ordinateur
Caractéristiques des bus PC Le protocole L´USB prend en charge principalement deux modes de transmission : le mode asynchrone, tout comme un port série classique; le mode isochrone, qui permet une communication périodique et continue entre le contrôleur maître et les périphériques. À chaque milliseconde précisément, le contrôleur maître transmet un paquet pour maintenir tous les périphériques synchronisés. Il y a quatre sortes de paquets: les paquets de contrôle, les paquets isochrones, les paquets en vrac et les paquets d´interruption.
Caractéristiques des bus PC Les paquets de contrôle servent à configurer des périphériques, à leur donner des commandes et les interroger sur leur statut. Les paquets isochrones servent aux périphériques temps réel comme les webcams et les téléphones, qui ont besoin d´envoyer ou de recevoir des données à des intervalles de temps réguliers. Ils ont un délai fixe, mais ne permettent pas de retransmission en cas d´erreur. Les paquets en vrac servent pour des transferts en direction ou en provenance d´un périphérique sans exigence de temps réel, comme des imprimantes. Les paquets d´interruption sont nécessaires parce que le USB ne support pas les interruptions.
Caractéristiques des bus PC Le bus AGP de la carte graphique en lui ouvrant un canal direct d'accès à la mémoire, sans passer par le contrôleur d'entrée-sorite. Ainsi le contrôleur vidéo peut accéder directement à la mémoire vive centrale Le port AGP 1X est cadencé à 66 MHz, contre 33 MHz pour le bus PCI, ce qui lui offre une bande passante de 264 Mo/s (pour le bus PCI 132 Mo/s à partager entre les différentes cartes), soit de bien meilleures performances, notamment pour l'affichage de scènes 3D complexes.
Caractéristiques des bus PC • Le bus AGP • Avec l'apparition du port AGP 4X, la bande passante est passée à 1Go/s. • Maintenant la nouvelle norme est en AGP Pro 8x avec une bande passante de 2Go/s. • Les débits des différentes normes AGP sont les suivants : • AGP 2X : 66,66 MHz x 2(coef.) x 32 bits = 533.67 Mo/s • AGP 4X : 66,66 MHz x 4(coef.) x 32 bits = 1,06 Go/s • AGP 8X : 66,66 MHz x 8(coef.) x 32 bits = 2,11 Go/s
Performances de bus Dépend de la largeur de bus = taille de la donnée transmise Dépend du temps de transmission de la donnée = temps de présence sur le bus. Ce temps dépend de la fréquence de bus. Soit un bus synchrone de fréquence F (en MHz), et d'une largeur de N bits (N fils de données). Fréquence F : nombre de changements d'état par seconde, chaque ligne de bus est indépendante : Débit Dmax = F. N (en bits/s-1).
Performances de bus Applications numériques : F= 133 MHz, N=64 bits : Dmax = 64.133.106 bits.s-1, soit 1 064 000 000 octets/s, soit 0,99 Go/s, en divisant par 10243. Un constructeur fait ce calcul mais : il divise par 10003 : 1,064 Go/s. Sa mémoire est de la DDR : il double le débit : 2,128 Go/s, convertit et Mo et appelle sa mémoire : PC2100
Performances de bus Valable avec d'autres dispositifs ! Exemple avec un dispositif vidéo : Quelle doit être la bande passante d'un bus vidéo pour réaliser un affichage de 60 images/s avec une résolution de 1024 768 en 32 bits ? combien d'octets occupe une image 1024 768 en 32 bits ? 1024 768 4 = 3 Mo ! (60 images de 3 Mo) /s = 180 Mo/s
Performances de bus Valable avec d'autres dispositifs ! Exemple avec un dispositif vidéo : Quelle doit être la bande passante d'un bus vidéo pour réaliser un affichage de 60 images/s avec une résolution de 1024 768 en 32 bits ? combien d'octets occupe une image 1024 768 en 32 bits ? 1024 768 4 = 3 Mo ! (60 images de 3 Mo) /s = 180 Mo/s
Gestion de bus, conflits • Plusieurs éléments communicants • un seul canal un seul dialogue à un instant donné • arbitrage de l'accès au bus nécessaire ! (réseaux) • Arbitrage dynamique : allouer le bus sur demande, lorsqu'il est libre, à un maître potentiel qui le demande via un signal Bus Request (BR) • il peut y avoir plusieurs demandes simultanées : choix d'une allocation/attribution :
Gestion de bus, conflits • suivant une priorité affectée de manière unique à chaque maître potentiel • de manière "équitable" (pour éviter les pbs de famine) • en combinant les deux politiques : départager équitablement deux demandes de même priorité • libération de bus peut intervenir de plusieurs manières : • fin de transaction • sur demande : le maître conserve le bus jusqu'à une nouvelle demande • par préemption
Mécanisme matériels d'arbitres • La réalisation du mécanisme d'arbitrage peut être distribuée : répartie entre les éléments : Arbitrage décentralisé • Cet arbitrage peut aussi être centralisé : se trouve sur un seul des modules connectés au bus, ou sur un module dédié, nommé arbitre de bus • réalisation basée sur 3 signaux : • BR : Bus Request : demande de bus de la part des maîtres potentiels • BA/BG : Bus Acknowledge/Bus Grant : attribution de bus • BB : Bus Busy : bus occupé