Architecture des ordinateurs 3
Upcoming SlideShare
Loading in...5
×
 

Architecture des ordinateurs 3

on

  • 2,909 views

cours Architecture des ordinateurs 3

cours Architecture des ordinateurs 3
par : http://coursuniversite.com

Statistics

Views

Total Views
2,909
Views on SlideShare
2,909
Embed Views
0

Actions

Likes
3
Downloads
66
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft Word

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Architecture des ordinateurs 3 Architecture des ordinateurs 3 Document Transcript

    • architecture des ordinateurs 3Langage de programmation• Le langage machine est le langage compris par le microprocesseur. Celangage est difficile à maîtriser puisque chaque instruction est codée par uneséquence propre de bits. Afin de faciliter la tâche du programmeur, on a créédifférents langages plus ou moins évolués.• Le langage assembleur est le langage le plus « proche » du langage machine.Il est composé par des instructions en général assez rudimentaires que l’onappelle des mnémoniques. Ce sont essentiellement des opérations de transfert dedonnées entre les registres et lextérieur du microprocesseur (mémoire oupériphérique), ou des opérations arithmétiques ou logiques. Chaque instructionreprésente un code machine différent. Chaque microprocesseur peut posséder unassembleur différent.• La difficulté de mise en œuvre de ce type de langage, et leur forte dépendanceavec la machine a nécessité la conception de langages de haut niveau, plusadaptés à lhomme, et aux applications quil cherchait à développer. Faisantabstraction de toute architecture de machine, ces langages permettentlexpression dalgorithmes sous une forme plus facile à apprendre, et à dominer(C, Pascal, Java, etc.…). Chaque instruction en langage de haut niveaucorrespondra à une succession d’instructions en langage assembleur. Une foisdéveloppé, le programme en langage de haut niveau n’est donc pascompréhensible par le microprocesseur. Il faut le compiler pour le traduire enassembleur puis l’assembler pour le convertir en code machine compréhensiblepar le microprocesseur. Ces opérations sont réalisées à partir de logicielsspécialisés appelés compilateur et assembleur.Performances d’un microprocesseur• On peut caractériser la puissance d’un microprocesseur par le nombred’instructions qu’il est capable de traiter par seconde. Pour cela, on définit :o Le CPI (Cycle Par Instruction) qui représente le nombre moyen de cyclesd’horloge nécessaire pour l’exécution d’une instruction pour un microprocesseurdonné.o Le MIPS (Millions dInstructions Par Seconde) qui représente la puissancede traitement du microprocesseur :• Pour augmenter les performances d’un microprocesseur, on peut donc soitaugmenter la fréquence dhorloge (limitation matérielle), soit diminuer le CPI(choix dun jeu dinstruction adapté).
    • Notion d’architecture CISC et RISC• Actuellement l’architecture des microprocesseurs se compose de deuxgrandes familles :o L’architecture CISC (Complex Instruction Set Computer)o L’architecture RISC (Reduced Instruction Set Computer)L’architecture CISCpourquoi• CISC est l’architecture la plus ancienne, était la seule envisageable pour lesmachines à microprocesseur.• En effet, vu que la mémoire travaillait très lentement par rapport auprocesseur, on pensait qu’il était plus intéressant de soumettre aumicroprocesseur des instructions complexes.• Ainsi, plutôt que de coder une opération complexe par plusieurs instructionsplus petites (qui demanderaient autant d’accès mémoire très lent).• Il semblait préférable d’ajouter au jeu d’instructions du microprocesseur uneinstruction complexe qui se chargerait de réaliser cette opération.• On a donc eu tendance à incorporer au niveau processeur des instructionsplus proches de la structure de ces langages.comment• C’est donc une architecture avec un grand nombre d’instructions où lemicroprocesseur doit exécuter des tâches complexes par instruction unique.• Pour une tâche donnée, une machine CISC exécute ainsi un petit nombred’instructions mais chacune nécessite un plus grand nombre de cycles d’horloge.• Le code machine de ces instructions varie d’une instruction à l’autre etnécessite donc un décodeur complexe (micro-code).L’architecture RISCpourquoi• Des études statistiques menées au cours des années 70 ont clairement montréque les programmes générés par les compilateurs se contentaient le plus souventdaffectations, dadditions et de multiplications par des constantes.• Ainsi, 80% des traitements des langages de haut niveau faisaient appel àseulement 20% des instructions du microprocesseur.• D’où l’idée de réduire le jeu d’instructions à celles le plus courammentutilisées et d’en améliorer la vitesse de traitement.comment• C’est donc une architecture dans laquelle les instructions sont en nombreréduit (chargement, branchement, appel sous-programme).• Les architectures RISC peuvent donc être réalisées à partir de séquenceurcâblé. Leur réalisation libère de la surface permettant d’augmenter le nombre deregistres ou d’unités de traitement par exemple.• Chacune de ces instructions s’exécutent ainsi en un cycle d’horloge.• Les accès à la mémoire s’effectuent seulement à partir de deux instructions(Load et Store). Par contre, les instructions complexes doivent être réalisées àpartir de séquences basées sur les instructions élémentaires, ce qui nécessite uncompilateur très évolué dans le cas de programmation en langage de haut
    • niveau.comparaisonLe choix dépendra des applications visées. En effet, si on diminue le nombredinstructions, on crée des instructions complexes (CISC) qui nécessitent plus decycles pour être décodées et si on diminue le nombre de cycles par instruction, oncrée des instructions simples (RISC) mais on augmente alors le nombredinstructions nécessaires pour réaliser le même traitement.Amélioration de l’architecture de base• Lensemble des améliorations des microprocesseurs visent à diminuer letemps dexécution du programme :1. La première idée qui vient à l’esprit est d’augmenter tout simplement lafréquence de l’horloge du microprocesseur. Mais l’accélération des fréquencesprovoque un surcroît de consommation ce qui entraîne une élévation detempérature. On est alors amené à équiper les processeurs de systèmes derefroidissement ou à diminuer la tension d’alimentation.2. Une autre possibilité d’augmenter la puissance de traitement d’unmicroprocesseur est de diminuer le nombre moyen de cycles d’horloge nécessaireà l’exécution d’une instruction :o Dans le cas d’une programmation en langage de haut niveau, cetteamélioration peut se faire en optimisant le compilateur. Il faut qu’il soit capablede sélectionner les séquences d’instructions minimisant le nombre moyen decycles par instructions.o Une autre solution est d’utiliser une architecture de microprocesseur quiréduise le nombre de cycles par instruction.Architecture Pipelineprincipe• L’exécution d’une instruction est décomposée en une succession d’étapes et
    • chaque étape correspond à l’utilisation d’une des fonctions du microprocesseur.Lorsqu’une instruction se trouve dans l’une des étapes, les composants associésaux autres étapes ne sont pas utilisés. Le fonctionnement d’un microprocesseursimple n’est donc pas efficace.• L’architecture pipeline permet d’améliorer l’efficacité du microprocesseur.En effet, lorsque la première étape de l’exécution d’une instruction est achevée,l’instruction entre dans la seconde étape de son exécution et la première phase del’exécution de l’instruction suivante débute.• Il peut donc y avoir une instruction en cours d’exécution dans chacune desétapes et chacun des composants du microprocesseur peut être utilisé à chaquecycle d’horloge.• Une machine pipeline se caractérise par le nombre d’étapes utilisées pourl’exécution d’une instruction, on appelle aussi ce nombre d’étapes le nombred’étages du pipeline Gain de performance• Dans cette structure, la machine débute l’exécution d’une instruction àchaque cycle et le pipeline est pleinement occupé à partir du quatrième cycle.• Le gain obtenu dépend donc du nombre d’étages du pipeline.• En effet, pour exécuter n instructions, en supposant que chaque instructions’exécute en k cycles d’horloge, il faut :o n.k cycles d’horloge pour une exécution séquentielle.o k cycles d’horloge pour exécuter la première instruction puis n-1 cycles pourles n-1 instructions suivantes si on utilise un pipeline de k étages. Donc lorsque le nombre n d’instructions à exécuter est grand par rapport à k,on peut admettre qu’on divise le temps d’exécution par k.Exemples :• Les Pentium 2, 3 et 4 d’Intel comprennent respectivement un pipeline de 10,12 et 20 étages. Notion de cache mémoire Principe• Depuis le début des années 80, une des solutions utilisées pour masquer cettelatence est de disposer une mémoire très rapide entre le microprocesseur et lamémoire. Elle est appelée cache mémoire.• On compense ainsi la faible vitesse relative de la mémoire en permettant aumicroprocesseur d’acquérir les données à sa vitesse propre.• Au départ cette mémoire était intégrée en dehors du microprocesseur maiselle fait maintenant partie intégrante du microprocesseur.• Le principe de cache est très simple : le microprocesseur n’a pas consciencede sa présence et lui envoie toutes ses requêtes comme s’il agissait de la mémoireprincipale:o Soit la donnée ou l’instruction requise est présente dans le cache et elle estalors envoyée directement au microprocesseur. On parle de succès de cache.o Soit la donnée ou l’instruction n’est pas dans le cache, et le contrôleur decache envoie alors une requête à la mémoire principale. Une fois l’informationrécupérée, il la renvoie au microprocesseur tout en la stockant dans le cache. On
    • parle de défaut de cache.Architecture superscalaire• Une autre façon de gagner en performance est d’exécuter plusieursinstructions en même temps.• Lapproche superscalaire consiste à doter le microprocesseur de plusieursunités de traitement travaillant en parallèle.• Les instructions sont alors réparties entre les différentes unités dexécution.Remarque :Cest le type darchitecture mise en œuvre dans les premiers Pentium dIntelapparus en 1993.Architecture pipeline et superscalaire• Le principe est d’exécuté les instructions de façon pipeliné dans chacune desunités de traitement travaillant en parallèle.Etude du processeur 8088• Le processeur 8086 dIntel est à la base des processeurs Pentium actuels. Lesprocesseurs successifs (de PC) se sont en effet construits petit à petit enajoutant à chaque processeurs des instructions et des fonctionnalitéssupplémentaires, mais en conservant à chaque fois les spécificités duprocesseur précédent.Architecture externe du 8088
    • • Nombre de broches : 40.• Bus de données de AD0 à AD7 : 8 broches.• Bus d’adresses de AD0 à AD7 et de A8 à A19 : 20 broches.(AD0 à AD7 représente à la fois le bus de données et une partie du busd’adresses).• Capacité de la mémoire centrale adressable est : 220bit = 1 MégaOctet.• L’adresse d’un mot mémoire est sur 5 bits : de 00000 H à FFFFF H.Bus de Commande: : Broche de lecture mémoire ou interface.
    • Si le microprocesseur effectue une lecture de données à partir de la mémoire oud’une interface d’E/S.WR : Broche d’écriture.Si le microprocesseur effectue une écriture dans la mémoire ou dans l’interfaced’E/S. : Broche de selection.Si c’est la mémoire qui est sélectionnée pour une lecture ou une écriture.Si c’est l’interface qui est sélectionnée pour une lecture ou une écriture.• ALE : validité du bus d’adresse AD0 à AD7.o Si ALE = 1, AD0 à AD7 représente l’octet faible d’une adresse : AD0 à AD7 etAD8 à AD19 (20 broches).o Si ALE = 0, AD0 à AD7 représente le bus de données.• READY : Broche de synchronisation.o Si READY = 1, la mémoire ou l’interface d’E/S est prête à recevoir desinformations où à fournir des informations au microprocesseur.o Si READY = 0, mémoire où interface d’E/S non prête pour le dialogue.
    • • INTR : Interruption masquable (considérée ou non par le microprocesseur).o Si INTR = 1, une interruption est demandée.Remarque : au niveau du registre d’état, il y a un bit appelé IF. Il est utilisé pouraccepter l’interruption demandée. • Si IF = 1, l’interruption sera prise en compte par le microprocesseur → saut au sous programme de dialogue : microproc – Interface d’E/S. • Si IF = 0, l’interruption ne sera pas prise en compte par le microprocesseur → pas de saut au sous programme de dialogue : microproc – Interface d’E/S.Si INTR est acceptée → INTR = 1 et IF = 1.• : Broche de réponseo Si , pour informer l’interface d’E/S que l’interruptiondemandée a été acceptée.• NMI : Broche d’interruption non masquable.o Si NMI = 1, saut obligatoire à un sous programme de dialogue avecl’interface d’E/S qui a générée l’interruption NMI.• HOLD : Broche de demande des bus de données, d’adresses et decommande.o Si HOLD = 0, les bus de données, d’adresses et de commande effectuent la
    • liaison entre le microprocesseur et la mémoire.→ Echange d’information entre le microprocesseur et la mémoire.o Si HOLD = 1, le contrôleur du disque dur demande les bus de données,d’adresses et de commande (liaison entre le contrôleur et la mémoire).→ Echange d’information entre le contrôleur et la mémoire.Utilisation : dans le cas d’un transfert d’une grande quantité d’informationsentre une interface d’E/S et la mémoire. Ceci pour augmenter la vitesse detransfert d’informations.• HOLDA : Broche de réponse à HOLD.o Si HOLDA = 1, le microprocesseur informe l’interface qu’il est déconnectéde ses bus.→ Elle pourra faire l’échange d’informations avec la mémoire Architecture interne du 8088Il existe deux unités internes distinctes: lUE (Unité dExécution) et lUIB(Unité dInterfaçage avec le Bus).UIB• Elle est constituée d’un ensemble de registres d’adressage, d’ungénérateur d’adresse (compteur ordinal) et d’une file d’attente (registred’instruction), son rôle est de chercher séquentiellement les instructionset les données stockées dans la mémoire.UE• Elle est destinée au traitement de données, elle se compose essentiellementd’une UAL, d’une unité de commande et des registres opérationnels etd’adressage. Son rôle est de lire les instructions stockées dans la file d’attentepour décodage et d’exécution.Les registres du 8088• Un registre est une petite partie de mémoire intégrée au microprocesseur,dans le but de recevoir des informations spécifiques, notamment des adresseset des données stockées durant lexécution dun programme.• Les registres peuvent être utilisés dans toutes les opérations arithmétiques etlogiques que le programmeur insère dans le code assembleur.• Un registre complet présente une grandeur de 16 bits.• chaque registre est en réalité divisé en deux registres distincts de 8 bits.• De cette façon, nous pouvons utiliser une partie du registre si nous désirons ystocker une valeur nexcédant pas 8 bits.• Si, au contraire, la valeur que nous désirons y ranger excède 8 bits,nous utiliserons le registre complet, cest à dire 16 bits.• Le programmeur dispose de 8 registres internes de 16 bits quon peut diviseren deux groupes :o Groupe de données : formé par 4 registres de 16 bits (AX, BX, CX, et DX)chaque registre peut être divisé en deux registres de 8 bits (AH, AL, BH,BL, CH, CL, DH et DL).o Groupe de pointeur et indexe : formé de 4 registres de 16 bits (SI, DI, SP, BP)et font généralement référence à un emplacement en mémoire.
    • Groupe de donnéesRegistre AX : (Accumulateur)• Toutes les opérations de transferts de données avec les entrées-sorties ainsique le traitement des chaînes de caractères se font dans ce registre, de même lesopérations arithmétiques et logiques.Registre BX : (Registre de Base)• Il contient une adresse de décalage par rapport à une adresse de référence.Par exemple, ladresse de début dun tableau.Registre CX : (Le Compteur)• Lors de lexécution dune boucle on a souvent recours à un compteur deboucles pour compter le nombre ditérations, le registre CX a été fait pour servircomme compteur lors des instructions de boucle.Registre DX :• On utilise le registre DX pour les opérations de multiplication et de divisionmais surtout pour contenir le numéro dun port dentrée/sortie pouradresser les interfaces dE/S.Groupe de pointeurs et indexes• Ces registres sont plus spécialement adaptés au traitement des élémentsdans la mémoire. Ils sont en général munis de propriétés dincrémentationet de décrémentation.Registre SP : pointeur sommet de la pile (Stack Pointer)• Une pile est un ensemble de cases mémoire définie dans une RAM pourstocker temporairement les données d’un programme et les contenues desregistres interne du microprocesseur. Elle est utilisée dans le cas d’une rupturede séquence d’un programme, saut à un sous programme ou appel à uneprocédure.• Si on n’effectue pas l’empilement des registres interne (AX, BX, CX et DX)utilisés par un programme, leurs contenues peuvent être détruits par lesinstructions du sous programme ou de la procédure appelée.• Le registre SP (Pointeur de Pile) à une longueur de 16 bits, il permetl’adressage des cases mémoire de la pile. Il pointe toujours sur la première casemémoire libre de la pile.• La pile a une structure LIFO (Last In First Out), dernier entré premiersortie, ainsi :o Lors d’un empilement du contenu d’un registre interne, le contenu duregistre SP est décrémenté par 2 (SP=SP-2).o Lors du dépilement, le contenu du registre SP est incrémenté par 2(SP=SP+2).Registre SP : pointeur sommet de la pile (Stack Pointer) • Une pile est un ensemble de cases mémoire définie dans une RAM pour stocker temporairement les données d’un programme et les contenues des registres interne du microprocesseur. Elle est utilisée dans le cas d’une rupture de séquence d’un programme, saut à un sous programme ou appel à une procédure. • Si on n’effectue pas l’empilement des registres interne (AX, BX, CX et
    • DX) utilisés par un programme, leurs contenues peuvent être détruits par les instructions du sous programme ou de la procédure appelée.• Le registre SP (Pointeur de Pile) à une longueur de 16 bits, il permet l’adressage des cases mémoire de la pile. Il pointe toujours sur la première case mémoire libre de la pile.• La pile a une structure LIFO (Last In First Out), dernier entré premier sortie, ainsi : o Lors d’un empilement du contenu d’un registre interne, le contenu du registre SP est décrémenté par 2 (SP=SP-2). o Lors du dépilement, le contenu du registre SP est incrémenté par 2 (SP=SP+2)