Download - Organisation-ENIT(3)
Architecture et Organisation des Ordinateurs1re anne Ingnieurs en Informatique ENIT/Informatique
CHAPITRE I
Introduction
Architecture des Ordinateurs 1re anne ENIT/Informatique
2
Cest quoi une Organisation
Electronic Devices
Desired Behavior
Distance entre lectronique et comportement dsir Organisation: Intgration de diffrents composants et lmentsArchitecture des Ordinateurs 1re anne ENIT/Informatique 3
Cest quoi une Organisationcomputer organization software
Electronic Devices
General Purpose Computer
Desired Behavior
Ordinateur : quipement qui aide joindre des composants lectroniques pour un comportement dsirArchitecture des Ordinateurs 1re anne ENIT/Informatique 4
Unit Centrale
1980 10 cartes pour faire un CPU: Central Processing Unit
2000 Unit centrale appele Microprocesseur!
Architecture des Ordinateurs 1re anne ENIT/Informatique
5
Piliers de lInformatique Equipements de calcul universels Turings Thesis: every computation can be performed by some Turing Machine : a theoretical universal computational device
Transformation du problmeConvertir une expression en langage naturel vers des lectrons qui tournent dans des circuit! Cest le Gnie Informatique software & hardware.Architecture des Ordinateurs 1re anne ENIT/Informatique 6
Machine de Turing
Calculateur universel ! Input : programme ou instructions de calcul + donnes Output : rsultatsArchitecture des Ordinateurs 1re anne ENIT/Informatique 7
Niveaux dAbstractionComprtement dsir de lapplication
Natural Language Algorithm
Interfaces standards offrentPortabilit software/hardware de partie tierce Elargir lusage
Program Machine Architecture Micro-architecture Logic Circuits
Les lments (blocks) de contructionArchitecture des Ordinateurs 1re anne ENIT/Informatique
Devices8
Niveau programmeLes ordinateurs xcutent Application Program un programme appel Operating System systme dexploitation (OS). Les programmes utilisateurs (applicatifs) tournent sur la machine (larchitecture) par lintermdiaire de lOS.Program (Software)
Architecture des Ordinateurs 1re anne ENIT/Informatique
9
Niveau Machine-1 Organisation/architecture de lordinateur Spcification de toutes les fonctionnalits que la machine peut excuter; architecture de lensemble dinstructions (ISA)
Microarchitecture Implmentation de lISA sur un microprocesseur spcifiqueArchitecture des Ordinateurs 1re anne ENIT/Informatique 10
Niveau Machine-2 Circuits logiques Chaque composant fonctionnel de la microarchitecture est implment sur un ou plusieurs circuits logiques
Composants lectronique Chaque circuit logique est implment sur un ou plusieurs composants lectronique avec un ensemble de transistors CMOS or NMOS or GaAs (etc.) transistors.Architecture des Ordinateurs 1re anne ENIT/Informatique 11
Historique 17 sicle, calcul arithmtique simple: addition, soustraction PASCAL (1623-1662) effectue mcaniquement des additions et des soustractions LEIBNIZ (1646-1716) envisage quune machine puisse raisonner CHARLES BABBAGE (1792-1871) a construit en 1833 une machine calculer: la machine diffrences. Programmable avec un langage assembleur trs simple ADA AUGUSTA LOVELACE, collaboratrice de BABBAGE et fille de LORD BYRON, a crit le premier programme informatique.Architecture des Ordinateurs 1re anne ENIT/Informatique 12
Historique 1945 : ENIAC (Electronic Numerical Integrator And Calculator) 18 000 tubes 30 tonnes multiplie 2 nombres de 10 chiffres en 3 millisecondes donnes sur cartes perfores, mais programmes cbls en mmoire et donc, pour passer dun programme un autre, il faut dbrancher et rebrancher des centaines de cbles (ce nest pas vraiment le premier ordinateur au sens actuel).
Architecture des Ordinateurs 1re anne ENIT/Informatique
13
Historique 1945 : JOHN VON NEUMANN, associ lENIAC, propose un modle dordinateur qui fait une abstraction du programme et se lance dans la construction du EDVAC (Electronic Discrete Variable Automatic Computer) La machine de VON NEUMANN est ne: Consiste en cinq composants de larchitecture moderne, appele architecture de VON NEUMANN.Architecture des Ordinateurs 1re anne ENIT/Informatique 14
Historique Premire gnration (1945-1955) : tubes vide Tubes vide: pannes frquentes, difficiles dceler, ordinateurs demandant beaucoup de place.
Deuxime gnration (1955-1965) Transistors: organisation de la machine autour dun bus ; stockage sur bande magntique ; crans ; etc.
Troisime gnration (1965-1980) Circuits intgrs (puces) et des processeurs miniaturisation (ordinateurs plus petits, plus rapides et moins chers)Architecture des Ordinateurs 1re anne ENIT/Informatique 15
Historique Gammes de machines avec mme langage dassemblage, do la rutilisation des programmes. Multiprogrammation: plusieurs programmes en mmoire. Lorsquun programme entre en phase dentres-sorties, lUC passe lexcution dun autre programme.
Quatrime gnration ( partir de 1980) Ordinateurs personnels et VLSI (Very Large Scale Intgration) : augmentation du nombre de transistors ; rseaux
Parallles, intelligents...Architecture des Ordinateurs 1re anne ENIT/Informatique 16
Classification des ordinateurs Superordinateurs (5 20M$) Grande pice, applications scientifiques et militaires titanesques (lments finis, mto...) CRAY 2, NEC SX-2, Hitachi, IBM...
Serveurs d'entreprise, mainframe (1 5 M$) Grosses bases de donnes avec de nombreux usagers (banques, rservations de lignes ariennes...) IBM ES/9000, CDC, AT&T NCR, Pyramid, Sequent, Unisys, DEC, HP, SUN.Architecture des Ordinateurs 1re anne ENIT/Informatique 17
Classification des ordinateurs Serveurs dpartementaux (50K$ 1 M$) Grande pice, applications scientifiques et militaires titanesques (lments finis, mto...) CRAY 2, NEC SX-2, Hitachi, IBM...
Serveurs d'entreprise, mainframe (1 5 M$) Grosses bases de donnes avec de nombreux usagers (banques, rservations de lignes ariennes...) IBM ES/9000, CDC, AT&T NCR, Pyramid, Sequent, Unisys, DEC, HP, SUN.
Architecture des Ordinateurs 1re anne ENIT/Informatique
18
Classification des ordinateurs Serveurs dpartementaux (50K$ 1 M$) Serveurs de fichiers, de bases de donnes, de calcul pour un groupe d'environ 100 personnes ou moins. DEC, HP, SUN, IBM, SGI, Data General...
Poste de travail (workstation), (4K$ 50K$) CAO, dveloppement de logiciel, graphisme, multimdia, SUN, HP, IBM, DEC, SGI, NeXT...
Micro-ordinateur (100 4 K$) Bureautique, simple (traitement de texte, administration, jeux...) IBM, APPLE, HP, Dell,
Architecture des Ordinateurs 1re anne ENIT/Informatique
19
Objectifs du cours Les notions suivantes sont traites: Organisation de Van Newman Systme de nombres binaire et reprsentation des donnes au niveau du microprocesseur Familiarisation avec les composants dun ordinateurs Cycle instruction Formats instructions Programmation assembleur Le 8086 (Intel) Le MIPS ISA (notions de 80806)
Architecture des Ordinateurs 1re anne ENIT/Informatique
20
Notions darchitectureArchitecture des Ordinateurs ? Architecture de lensemble dinstructions de la machine + Organisation de la machine Architecture de lensemble dinstructions Organisation dlments mmoires (registres, caches,). Reprsentation des types de donnes et structure de donnes. Ensemble dinstructions et leurs formats. Modes dadressage et types daccs aux lments data et instructions. Autres conditions exceptionnelles de la machine (Interruptions, erreurs,).
Architecture des Ordinateurs 1re anne ENIT/Informatique
21
LangagesEchange (int v[],int k,int k) { Programme en langage de haut niveau int temp ; (en C) temp = v[k] ; v[k] = v[k]; v[k] = temp; Compilateur C } Change: multi $2, S5, 4; add $2, $4, $2; . Assembleur 00000000101000010000000000011000 00000000100011100011000000100001.
Programme en langage assembleur (pour MIPS)
Programme en langage machine binaire (pour MIPS)22
Architecture des Ordinateurs 1re anne ENIT/Informatique
Ensembles dinstructions Exemples densembles dinstructions Digital alpha HP PA-RISC SUN SPARC SGI MIPS INTEL
Les caractristiques dun ensemble dinstructions seront introduites par la suite travers ltude dun ensemble rel dinstructions: MIPS.Architecture des Ordinateurs 1re anne ENIT/Informatique 23
Notions darchitecture
Ordinateur personnel
Ordinateur Processeur Contrle Chemin de donnes Mmoire (programmes en excution) Entres
Clavier, Souries
Disque durSorties
Ecran, ImprimanteArchitecture des Ordinateurs 1re anne ENIT/Informatique 24
Evolutions technologiques1985 : Invention du processeur sur une seule puce et de lordinateur sur une seule plaque (PC, Stations de travail, ) Processeur : (Chaque 1.5 anne depuis 85) 2X en vitesse Mmoire : (Chaque 2 ans depuis 96) Capacit : 2X (DRAM) (64X, dernire dcennie) Disque dur : (Chaque anne) Capacit : 2X (250X, dernire dcennie)Architecture des Ordinateurs 1re anne ENIT/Informatique 25
Fonction darchitecteApplication (Netscape) Systme dexploitation Compilateur Assembleur (Windows 2K) Processeur Mmoire Systme dE/S Chemin de donnes & Contrle Digital Design Circuit Designtransistors
Software Hardware
Architecture de lensemble dinstructions
Coordination entre plusieurs niveaux dabstractionArchitecture des Ordinateurs 1re anne ENIT/Informatique 26
Fonction darchitecte Prvoir l'volution Au moment de l'tude du march, le concepteur doit prvoir ltat de la comptition au moment o le nouvel ordinateur arrivera sur le march.
Architecture des Ordinateurs 1re anne ENIT/Informatique
27
Rfrences Principales David Patterson et John Hennessy. Organisation et conception des ordinateurs, Dunod, 1994. Cours en Franais sur 8086 (Haggge).
Autres Dominic Sweetman. See MIPS Run, 2nd edition, Morgan Kaufman Publishers, Inc. , 2003. Randall. The Art of Assembly Programming (8086): http://homepage.mac.com/randyhyde/webster.cs.u cr.edu/www.artofasm.com/Windows/index.htmlArchitecture des Ordinateurs 1re anne ENIT/Informatique 28
Plan du cours Introduction Nombres binaires et reprsentations des donnes Architecture Van Newman Cycle Instruction Notions de bus mmoires, registres Le MIPS Le 8086 Les interruptions (8086) Le systme mmoire Le systmes E/S (8086)Architecture des Ordinateurs 1re anne ENIT/Informatique 29
CHAPITRE II:
Nombres binaires et reprsentation des donnes
Architecture des Ordinateurs 1re anne ENIT/Informatique
30
Reprsentation en Mmoire Visualiser octet en mmoire1 0 0 1 0 0 0 1
Bit: cellule mmoire = 0/1 Octet : unit de base ou case de mmoire = 8 bits Mot: unit de manipulation = ensemble de 2, 4 ou doctets 8086: 2 octets, 16 bits; MIPS: 4 octets, 32 bits.Architecture des Ordinateurs 1re anne ENIT/Informatique 31
Transfert vers ordinateur Saisie par humain travers clavier, cases en mmoire, conversion en signaux . Processus de conversionTouche clavier code standard enregistrement en mmoire A 65 10000010 1 0
sequence bit
0
0
0
0
1
Architecture des Ordinateurs 1re anne ENIT/Informatique
32
Systme Dcimal On utilise dix symboles diffrents: {0,1,2,3,4,5,6,7,8,9} Nimporte quelle combinaison de ces symboles nous donne un nombre.
2334567Poids fort Poids faible
345 , 567Partie fractionnelle Partie entireArchitecture des Ordinateurs 1re anne ENIT/Informatique 33
Systme Dcimal On utilise dix symboles diffrents: {0,1,2,3,4,5,6,7,8,9} Nimporte quelle combinaison de ces symboles nous donne un nombre.
2334567Poids fort Poids faible
345 , 567Partie fractionnelle Partie entireArchitecture des Ordinateurs 1re anne ENIT/Informatique 34
Systme Dcimal 123 base 10= 1*10**2 + 2 * 10**1 + 3*10**0 = = 100 + 20 + 3
123.456 base 10= 1*10**2 + 2*10**1 + 3*10**0 + 4*10**-1 + 5*10**-2 + 6*10**-3 = 100 + 20 + 3 + 0.4 + 0.05 + 0.006
Architecture des Ordinateurs 1re anne ENIT/Informatique
35
Systme Binaire Le systme binaire utilise uniquement 2 symboles : { 0 , 1}!
Un bit
( 1101)2 ( 1 1 0 1)2
La base
Le bits du poids forts
Le bits du poids faible
Architecture des Ordinateurs 1re anne ENIT/Informatique
36
Systme Binaire Un nombre dans la base 2 peut tre crit aussi sous forme polynomiale 11001010 base 2, conversion vers dcimal= + = = 1*2**7 + 1*2**6 + 0*2**5 + 0*2**4 1*2**3 + 0*2**2 + 1*2**1 + 0*2**0 128 + 64 + 8 + 2 202 (base 10)37
Architecture des Ordinateurs 1re anne ENIT/Informatique
Systme BinaireBinaire 0 0 1 0 0 0 1 1
27 26 25 24 23 22 21 20128 64 32 16 8 4 2 1
Donc,00100012 = 0128+064+132+016+08+04+12+11 = 3510
Architecture des Ordinateurs 1re anne ENIT/Informatique
38
Systme Binaire Diviser nombre par 2 Chiffre correspondant et reste de division Arrt quand quotient= 0
Architecture des Ordinateurs 1re anne ENIT/Informatique
39
Systme Binaire3510 = _________ 2 1. Write down place values 2. Place 1 under the proper place values 3. Place 0 in all other places128 64 32 16 8 4 2 1 1 0 0 1 1 1 0 0 0 1 1
Architecture des Ordinateurs 1re anne ENIT/Informatique
40
Systme Hexadcimal Le systme binaire utilise 10 symboles : { 0 , 1, 2, , 9, A, B, C, D, E, F}!( 1234)16 ou 1234h
1234h = 1 * 16**3 + 2 * 16**2 + 3 * 16**1 + 4 * 16**0 = 4096 + 512 + 48 + 4 = 4660 (dcimal) Exemples : 0DEADh, 0FEEDh, 0DEAFh.Architecture des Ordinateurs 1re anne ENIT/Informatique 41
Systme HexadcimalBinaire 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 Hexadcimal 0 1 2 3 4 5 6 7 8 9 A B C D E F42
1234h = 0001 0010 0011 0100
0DEADh = 0000 1101 1110 1010 1101
Architecture des Ordinateurs 1re anne ENIT/Informatique
Reprsentation des nombresReprsentation distinguant le positif du ngatif :Utilisation de 1 bit de signe : 0 va avoir une reprsentation positive et ngative Un nombre ayant deux reprsentations est plus grave qu'un dsquilibre entre les nombres positifs et les nombres ngatifs. Complment 2 (adopter pour les ordinateurs 32 bits)
0000 0000 0000 0000 0000 0000 0000 0000deux = 0 dix 0000 0000 0000 0000 0000 0000 0000 0001deux = 1dix 0000 0000 0000 0000 0000 0000 0000 0010deux = 2dix..................................................................................
0111 1111 1111 1111 1111 1111 1111 1110deux = 2.147.483.646dix 0111 1111 1111 1111 1111 1111 1111 1111deux = 2.147.483.647dixArchitecture des Ordinateurs 1re anne ENIT/Informatique 43
Reprsentation des nombres0000 0000 0000 0000 0000 0000 0000 0000deux = 0 dix 0000 0000 0000 0000 0000 0000 0000 0001deux = 1dix 0000 0000 0000 0000 0000 0000 0000 0010deux = 2dix..................................................................................
0111 1111 1111 1111 1111 1111 1111 1110deux = 2.147.483.646dix 0111 1111 1111 1111 1111 1111 1111 1111deux = 2.147.483.647dix 1000 0000 0000 0000 0000 0000 0000 0000deux = -2.147.483.648 dix 1000 0000 0000 0000 0000 0000 0000 0001deux = -2.147.483.647 dix..................................................................................
1111 1111 1111 1111 1111 1111 1111 1110deux = -2 dix 1111 1111 1111 1111 1111 1111 1111 1111deux = -1 dixArchitecture des Ordinateurs 1re anne ENIT/Informatique 44
Reprsentation des nombres Cette convention s'appelle complment deux : tous les nombres ngatifs ont un 1 comme bit de poids fort. Le matriel n'a donc besoin de tester que ce bit pour dterminer si un nombre est positif ou non . Ce bit particulier est appel souvent le bit de signe. Un nombre binaire de 32 bits sera alors reprsent comme suit : (x31 * -231)+ ( x30 * 2 30 ) + ................+ ( x1 * 2 1 ) + (x0 * 20) xi : signifie : le ime bit de x x + (-x) = 0 1 seul nombre ngatif -2.147.483.648 dix qui n a pas de nombre positif correspondant45
Architecture des Ordinateurs 1re anne ENIT/Informatique
Reprsentation des nombresExemple: Prendre l'oppos de 2 dix et ajouter 1 2 dix = 0000 0000 0000 0000 0000 0000 0000 0010 deux Prendre l'oppos de ce nombre en inversant ses bits et en ajoutant 1 donne : 1111 1111 1111 1111 1111 1111 1111 1101 deux + 1 deux --------------------------------------------------------= 1111 1111 1111 1111 1111 1111 1111 1110 deux = -2 dixArchitecture des Ordinateurs 1re anne ENIT/Informatique 46
Reprsentation des nombresPar consquent :
-x = x + 1 La manire de convertir un nombre binaire reprsent avec n bits en un nombre reprsent avec plus de n bits: extension signe. Rpliquer le bit du signe: 2 dix -2 dix (16)bits : 0000 0000 0000 0010 deux (32)bits : 0000 0000 0000 0000 0000 0000 0000 0010 deux (16) bits : 1111 1111 1111 1110 deux (32) bits : 1111 1111 1111 1111 1111 1111 1111 1110 deuxArchitecture des Ordinateurs 1re anne ENIT/Informatique 47
CHAPITRE II:
von Newman, Cycle Instruction, Bus
Architecture des Ordinateurs 1re anne ENIT/Informatique
48
von Newman/Turing Programme en mmoire Mmoire centrale contient programme+donnes UAL (Unit Arithmtique et Logique) opre sur donnes binaires UC (Unit de Controle) interprte et excute les instructions du programme E/S controlles par UC! Princeton Institute for Advanced Studies IAS, complt 1952Architecture des Ordinateurs 49
Machine von Newman
Unit Arithmtique et Logique (UAL) Equipements E/S
Mmoire Centrale Unit de Contrle dxcution du programme (UC)
Architecture des Ordinateurs
50
IAS-Dtails 1000 mots x 40 bits Nombres binaires 2 x 20 bit instructions
Registers (mmoire dans UC/CPU) MBR: Memory Buffer Register MAR: Memory Address Register IR: Instruction Register IBR: Instruction Buffer Register PC: Program Counter ACC: Accumulator Registre quotient de multiplicateurArchitecture des Ordinateurs 51
IAS-DtailsCentral Processing Unit Arithmetic and Logic Unit Accumulator MQ
Arithmetic & Logic Circuits Input Output Equipment IBR IR Program Control UnitArchitecture des Ordinateurs
MBR Instructions Main & Data Memory PC MAR Control Circuits Address
52
Concept de Programme Systmes cabls (hardware) inflexibles Hardware gnrique excute diffrents types de tches avec signaux de contrle appropris Au lieu de re-cablage, fournir nouvel ensemble de signaux de commande (contrle)Architecture des Ordinateurs 53
Cest quoi un Programme Une squence dtapes ou oprations Chaque tape/opration, consiste en lexcution dune simple opration arithmtique ou logique Chaque opration ncssite un nouvel ensemble de signaux de contrleArchitecture des Ordinateurs 54
Fonction dUnit de Contrle (Commande) A chaque opration est associ un code opration unique e.g. ADD, MOVE
Un circuit lectronique (un bloc de hardware) accepte le code et gnre les signaux de contrle appropris (correspondants au code opration) Cest un ordinateur!Architecture des Ordinateurs 55
Exemple de ProgrammeAssembleur MIPSExemple en C: if (i==j) goto E1; f = g+h E1: f = f = f-i; F,g,h,i,j correspondent aux cinq registres $17 $21 beq $20,$21,E1 add $17,$18,$19 E1: sub $17,$17,$20 # aller en E1 si i==j # f = g+h #f = f-i
Architecture des Ordinateurs
56
Autres Composants LUC et lUAL constituent le UC (CPU: Central Processing Unit) Introduction des donnes et des instructions dans le systme; et renvoi des rsultats Systme E/S (entres et sorties)
Ncssit denregistrer de manire temporaire les programmes, donnes et rsultats Mmoire centraleArchitecture des Ordinateurs 57
Composants, Vue Haut niveau
Architecture des Ordinateurs
58
Cycle Instruction Deux tapes: Fetch (chargement/lecture instruction) Execute
Architecture des Ordinateurs
59
Cycle Fetch PC contient adresse de prochaine instruction chercher Charger instruction de mmoire de lemplacement point par PC Incrmentation PC Exception saut!
Charger instruction dans Registre Instruction (RI) Interprter instruction et xcuter action correspondanteArchitecture des Ordinateurs 60
Cycle Excution Processeur-Mmoire Transfert de donnes entre CPU et mmoire centrale
Processeur-E/S Transfert de donnes entre le CPU et un module E/S
Opration sur donnes Une opration arithmtique ou logique sur des donnes dans les registres ou en mmoire
Contrle programme Changement du squencement du programme e.g. saut
Combinaison dactions ci-dessus!
Architecture des Ordinateurs
61
Exemple dexcution de programme
Architecture des Ordinateurs
62
Cycle Instruction Diagramme Etats
Architecture des Ordinateurs
63
Interruptions Mchanisme travers lequel dautres modules (e.g. E/S) peuvent interrompre la squence normale dexcution Source : le programme e.g. overflow (dbordement), division par zro
Source: Temporisateur (timer) Gnr par lhorloge systme Systmes multi-tches pour la premption
Source: E/S Controlleur E/S
Source: faute du hardware e.g. erreur de parit de la mmoireArchitecture des Ordinateurs 64
Squencement Programme
Architecture des Ordinateurs
65
Cycle Interruption Sajoute au cycle instruction CPU vrifie prsence dinterruptions Signal dinterruptions
Pas dinterruption => lecture dinstruction suivante Si interruption en attente: Suspendre excution programme Sauvegarde du contexte Chargement dans PC adresse dbut de routine dinterruption Excution de routine dinterruption Restoration contexte programme et continuation
Architecture des Ordinateurs
66
Cycle Instruction Diagramme Etat avec Interruptions!
Architecture des Ordinateurs
67
Interruptions Multiples Fermer les interruptions CPU prend pas en considration les interruptions qui arrivent pendant le traitement dune interruption Interruptions restent dans file attente et trait aprs terminaison Interruption trait dans leur ordre darriv
Dfinition de priorits Priorit faible peut tre interrompu par plus haute priorit Aprs avoir terminer le traitement de haute priorit le CPU traite plus basse prioritArchitecture des Ordinateurs 68
Interruptions Multiples--Squentiels
Architecture des Ordinateurs
69
Iterruptions Multiples--Imbriques
Architecture des Ordinateurs
70
Connecter les Units Les units doivent tre connectes Diffrentes types de connections, appropries pour chaque unit Mmoire E/S CPU
Architecture des Ordinateurs
71
Connections avec Mmoire Envoi et rception de donnes (criture/lecture) Reois adresses (des cases mmoire) Reois signaux de contrle Lecture Ecriture Temps
Architecture des Ordinateurs
72
Connexions E/S Similaire la connexion mmoire du point de vue de lordinateur Sortie Reois donnes de lordinateur Envoi donnes au priphrique
Entres Reois donnes de priphrique Envoi donnes lordinateur
Architecture des Ordinateurs
73
Connexion E/S Reois signaux de control de lordinateur Envoi signaux de contrle aux priphriques e.g. spin disk
Reois adresses de lordinateur e.g. num. de port pour identifier le priphrique
Envoi signaux dinterruptionArchitecture des Ordinateurs 74
Connexion CPU Lecture instructions et donnes Ecriture donnes (aprs traitement) Envoi des signaux de contrle aux autres units Recevoir (et agir sur, ou traitement) des interruptions
Architecture des Ordinateurs
75
Les Bus Il y a un choix entre un grand nombre de systmes dinterconnexion possibles Structures de bus simple avec canal unique et structures de bus complexes avec canaux multiples e.g. Control/Address/Data bus (PC) e.g. Unibus (DEC-PDP)
Architecture des Ordinateurs
76
Cest quoi un Bus Un canal de communication et un chemin de connexion entre 2 ou plusieurs units (priphriques) Typiquement utilise le mcanisme de diffusion (broadcast) Les canaux dun mme bus sont typiquement groups e.g. 32 bit data bus is 32 separate single bit channels
Ligne de puissance sont typiquement omises des schmas de busArchitecture des Ordinateurs 77
Bus de donnes Transport et communication de donnes Il ne faut pas oublier quil y a pas de diffrence entre donnes et instructions, a ce niveau
Largeur est cl dans la caractrisation la performance 8, 16, 32, 64 bit
Architecture des Ordinateurs
78
Bus Adresses Identification de la source et destination des donnes e.g. CPU veut lire une instruction (donnes) partir de certaine cases de la mmoire (adresse = adresse de la premire case) La largeur du bus adresses dtermine la capacit mmoire du systme e.g. 8080 a 16 bit bus addresses = 64k dspace daddresesArchitecture des Ordinateurs 79
Bus de contrle Fournir les information de contrle et de temps Lecture/Ecriture de mmoire Demande dinterruption Signaux horloges
Architecture des Ordinateurs
80
Interconnexion par Bus
Architecture des Ordinateurs
81
Grands et Jaunes Les bus cest quoi physiquement! Des lignes parallle sur circuits Des cbles en rubans Des connecteurs sur les cartes mres e.g. PCI
Un ensemble de fils (avec des circuits de contrle)
Architecture des Ordinateurs
82
Un Seul Bus? Beaucoup dunits sur un mme bus, engendre: Des dlais importants de propagation des signaux Un long chemin de donnes implique que la coordination du bus devient une tache complexe et affecte la performance Et si la sommes des demandes sur le bus approche sa capacit?
La majorit des systme utilisent des bus multiples pour viter les consquences de ces problmesArchitecture des Ordinateurs 83
Bus ISA dOrigine, avec Cache
Architecture des Ordinateurs
84
Bus Haute Performances
Architecture des Ordinateurs
85
Types de Bus Ddies Des lignes dadresses et de donnes spares
Multiplexs Lignes partages Ligne de contrle: Adresses/donnes valide Avantage nombre rduit de ligens Inconvnient Contrle compliqu PerformanceArchitecture des Ordinateurs 86
Question dArbitrage Plus dune unit commande les bus e.g. CPU et DMA Un seul module peut contrler le bus un instant donn Recours larbitrage centralis ou dcentralis
Architecture des Ordinateurs
87
Arbitrage Centralis Un seul module (unit de hardware) contrle lacc au bus Contrleur de bus Cest larbitre
Le contrleur de bus peut faire partie intgrale du CPU ou spar
Architecture des Ordinateurs
88
Arbitrage Rparti Chaque module peut essayer daccder directement au bus Il y a du hardware darbitrage sur chaque module qui globalement dcide celui qui rellement accde au bus un instant donn
Architecture des Ordinateurs
89
Temporisation du Bus Coordination des vnement sur le bus Synchrone Occurrence dvnement dcid par signal horloge Contrle du bus inclue ligne horloge Un cycle bus: 1-0 Tous les module sur le bus accdent au signal horloge Typiquement synchronis sur front montant Typiquement un seul vnement par cycleArchitecture des Ordinateurs 90
Diagramme de Temporisation Synchrone
Architecture des Ordinateurs
91
Diagramme de Temporisation Asynchrone
Architecture des Ordinateurs
92
CHAPITRE III:
Organisation du MIPS, Format Instructions, AssembleurArchitecture des Ordinateurs 1re anne ENIT/Informatique 93
Environnement de Dveloppement pour lAssembleur MIPS Simulateurs/Emulateurs MIPS Excution de programmes en assembleur MIPS-32 MARS: MIPS Assembly and Runtime Simulator Site Web: http://courses.missouristate.edu/KenVollmar/MARS/
PCSPIM Site Web : http://www.cs.wisc.edu/~larus/spim.html
Architecture des Ordinateurs
94
MIPS Organisation/ISA 232 octets mmoire Registres: 31 * 32 bits, R0=0 Registres flottants (nombres rels): 32 * 32 bits, utiliss en paires HI, LO, CP (compteur ordinal ou programme) R0 R1 R31 CP LO HIArchitecture des Ordinateurs 95
0
Les Registres 32 Registres usages gnriques (GPRs) Assembleur utilise $numro $0, ,$31 Registres 32bits/4octets pour MIPS-32 Le registre $0 est cbl = 0 !!
Conventions du software pour standardiser utilisation des registres e. g. $8 - $15 appels $t0 - $t7 et utiliss pour la tenue des valeurs temporaires
Architecture des Ordinateurs
96
Organisation du P MIPS...4 bytes per word
MemoryUp to 232 bytes = 230 words ...
EIU 32 General Purpose Registers Arithmetic & Logic Unit ALU
$0 $1 $2
Execution & Integer Unit (Main proc)
FPU
F0 F1 F2
Floating Point Unit (Coproc 1) 32 Floating-Point Registers
$31
Integer mul/divHi Lo
FP Arith
F31
Floating-Point Arithmetic Unit TMUBadVaddr
Integer Multiplier/Divider Architecture des Ordinateurs
Trap & Status Memory Unit (Coproc 0) CauseEPC
97
Noms et Utilisations de Registres$16 = $s0 $0 $1 $2 $3 $4 $5 $6 $7 $8 $9 = $zero = $at = $v0 = $v1 = $a0 = $a1 = $a2 = $a3 = $t0 $25 = $t9 = $t1 $26 = $k0 $10 = $t2 $27 = $k1 $11 = $t3 $28 = $gp $12 = $t4 $29 = $sp $13 = $t5 $30 = $fp $14 = $t6 $31 = $ra $15 = $t7 $17 = $s1 $18 = $s2 $19 = $s3 $20 = $s4 $21 = $s5 $22 = $s6 $23 = $s7 $24 = $t8
Architecture des Ordinateurs
98
Noms et Utilisations de Registres Assembleur fait rfrence aux registres par nom ou par numro Cest plus simple pour vous dutiliser les noms!Name $zero $at $v0 $v1 $a0 $a3 $t0 $t7 $s0 $s7 $t8 $t9 $k0 $k1 $gp $sp $fp $ra Register $0 $1 $2 $3 $4 $7 $8 $15 $16 $23 $24 $25 $26 $27 $28 $29 $30 $31 Usage Always 0 (forced by hardware) Reserved for assembler use Result values of a function Arguments of a function Temporary Values Saved registers (preserved across call) More temporaries Reserved for OS kernel Global pointer (points to global data) Stack pointer Frame pointer Return address (points to top of stack) (points to stack frame) (used by jal for function call)99
Architecture des Ordinateurs
Format Instructions Type-ROp6 Rs5 Rt5 Rd5 sa5 funct6
Op: code opration (opcode) Spcifie lopration de linstruction Spcifie le format de linstruction
funct: code fonction extension de opcode 26 = 64 fonctions pour mme opcode MIPS opcode 0 pour dfinir instructions de type-R
3 registres arguments Rs, Rt: arguments source Rd: argument destination sa: nombre de bits pour dcalageArchitecture des Ordinateurs 100
Addition/Soustraction Entiers (type-R)Instructionadd $s1, $s2, $s3 addu $s1, $s2, $s3 sub $s1, $s2, $s3
Meaning$s1 = $s2 + $s3 $s1 = $s2 + $s3 $s1 = $s2 $s3 $s1 = $s2 $s3
R-Type Formatop = 0 rs = $s2 rt = $s3 rd = $s1 sa = 0 f = 0x20 op = 0 rs = $s2 rt = $s3 rd = $s1 sa = 0 f = 0x21 op = 0 rs = $s2 rt = $s3 rd = $s1 sa = 0 f = 0x22 op = 0 rs = $s2 rt = $s3 rd = $s1 sa = 0 f = 0x23
subu $s1, $s2, $s3
add & sub: dbordement gnre une exception arithmtique addu & subu: similaires add & subDbordement nest pas pris en considration
Architecture des Ordinateurs
101
Addition/Soustraction Exemple Traduction de : f = (g+h) (i+j) Compilateur va allouer registres aux variables Suppose que f, g, h, i, and j sont placs dans $s0 $s4 Appels les registres save : $s0 = $16, $s1 = $17, , $s7 = $23
Traduction: f = (g+h) (i+j)addu addu subu $t0, $s1, $s2 $t1, $s3, $s4 $s0, $t0, $t1 # $t0 = g + h # $t1 = i + j # f = (g+h)(i+j)
Valeurs temporaires dans $t0 = $8 et $t1 = $9
Traduire: addu $t0,$s1,$s2 vers code binaire Solution:Architecture des Ordinateurs
op
rs = $s1 rt = $s2 rd = $t0
sa
func
000000 10001 10010 01000 00000 100001102
Opration Logiques, bit/bit Oprations logiques bit/bit: and, or, xor, norx y x and y 0 0 1 1 0 1 0 1 0 0 0 1 x y 0 0 1 1 0 1 0 1 x or y 0 1 1 1 x y x xor y 0 0 1 1 0 1 0 1 0 1 1 0 x y x nor y 0 0 1 1 0 1 0 1 1 0 0 0
Instruction AND pour mettre : x and 0 = 0 Instruction OR mettre 1: x or 1 = 1 Instruction XOR pour inverser: x xor 1 = not x NOR peut tre utilise comme NOT, comment? nor $s1,$s2,$s2 quivalent not $s1,$s2Architecture des Ordinateurs 103
Instructions Logiques, bit/bitInstructionand or xor nor $s1, $s2, $s3 $s1, $s2, $s3 $s1, $s2, $s3 $s1, $s2, $s3
Meaning$s1 = $s2 & $s3 $s1 = $s2 | $s3 $s1 = $s2 ^ $s3 $s1 = ~($s2|$s3) op = 0 op = 0 op = 0 op = 0
R-Type Formatrs = $s2 rs = $s2 rs = $s2 rs = $s2 rt = $s3 rt = $s3 rt = $s3 rt = $s3 rd = $s1 rd = $s1 rd = $s1 rd = $s1 sa = 0 sa = 0 sa = 0 sa = 0 f = 0x24 f = 0x25 f = 0x26 f = 0x27
Exemples: Suppose $s1 = 0xabcd1234 et $s2 = 0xffff0000 and $s0,$s1,$s2 or $s0,$s1,$s2 # $s0 = 0xabcd0000 # $s0 = 0xffff1234 # $s0 = 0x54321234 # $s0 = 0x0000edcb104
xor $s0,$s1,$s2 nor $s0,$s1,$s2Architecture des Ordinateurs
Oprations de Dcalage Dcaler cest translater tous les bits dans un registre gauche ou droite Dcaler par un nombre constant de bits: sll, srl, sra sll/srl : shift left/right logique Champ de 5-bits pour valeur du shift sra : shift right arithmtique Le bit de signe (au lieu de 0) est dcaler dans le registre de la gauche 32-bit register sll
shift-out MSB
... ... ...
shift-in 0 shift-out LSB shift-out LSB105
srlshift-in 0
srashift-in sign-bitArchitecture des Ordinateurs
Instructions de DcalageInstructionsll srl sra sllv srlv srav $s1,$s2,10 $s1,$s2,10 $s1, $s2, 10 $s1,$s2,$s3 $s1,$s2,$s3 $s1,$s2,$s3
Meaning$s1 = $s2 >>10 $s1 = $s2 >> 10 $s1 = $s2 >>$s3 $s1 = $s2 >> $s3 op = 0 op = 0 op = 0 op = 0 op = 0 op = 0
R-Type Formatrs = 0 rt = $s2 rs = 0 rt = $s2 rs = 0 rt = $s2 rs = $s3 rt = $s2 rs = $s3 rt = $s2 rs = $s3 rt = $s2 rd = $s1 rd = $s1 rd = $s1 rd = $s1 rd = $s1 rd = $s1 sa = 10 sa = 10 sa = 10 sa = 0 sa = 0 sa = 0 f=0 f=2 f=3 f=4 f=6 f=7
Dcalage par un nombre de bits variable: sllv, srlv, srav Comme sll, srl, sra, mais registre utilis pour spcifier valeur du dcalage
Exemples: $s2 = 0xabcd1234, et $s3 = 16 sll sra $s1,$s2,8 $s1,$s2,4 $s1 = $s24 $s1 = $s2>>>$s3 $s1 = 0xcd123400 $s1 = 0xfabcd123 $s1 = 0x0000abcd
srlv $s1,$s2,$s3
op=000000 rs=$s3=10011 rt=$s2=10010 rd=$s1=10001 sa=00000 f=000110Architecture des Ordinateurs 106
Multiplication Binaire Instruction Shift-left (sll) peut faire multiplication! Quand le multiplicateur est une puissance de 2
On peut factoriser nimporte quel nombre binaire en des puissance de 2 Exemple: multiplier $s1 par36 Factoriser 36 en (4 + 32) et utiliser la distributivit de la multiplication
$s2 = $s1*36 = $s1*(4 + 32) = $s1*4 + $s1*32
sll sll
$t0, $s1, 2 $t1, $s1, 5
; $t0 = $s1 * 4 ; $t1 = $s1 * 32 ; $s2 = $s1 * 36
addu $s2, $t0, $t1
Architecture des Ordinateurs
107
Multiplication ExerciceMultiplier $s1 par 26, en utilisant des instructions de dcalage Ide: 26 = 2 + 8 + 16sll sll addu sll addu $t0, $t1, $s2, $t0, $s2, $s1, $s1, $t0, $s1, $s2, 1 3 $t1 4 $t0 ; ; ; ; ; $t0 $t1 $s2 $t0 $s2 = = = = = $s1 $s1 $s1 $s1 $s1 * * * * * 2 8 10 16 26
Multiplier $s1 by 31, Ide: 31 = 32 1sll $s2, $s1, 5 subu $s2, $s2, $S1 ; $s2 = $s1 * 32 ; $s2 = $s1 - $S1
Architecture des Ordinateurs
108
Format Type-I Constantes utilises dans programmes Le type-R instructions de dcalage utilisent une constante de 5-bits pour spcifier nombre bits dcaler Quoi pour les autres instruction besoin de constantes?
Type-I: Instructions avec arguments immdiatsOp6 Rs5 Rt5 immediate16
16-bits constante immdiate est enregistre avec instruction Rs est le registre source Rt est maintenant le registre destination (pour R-type appel Rd)
Exemples dinstruction Type-I, ALU : Add immd.: OR immd. :Architecture des Ordinateurs
addi $s1, $s2, 5 ori $s1, $s2, 5
# $s1 = $s2 + 5 # $s1 = $s2 | 5109
Type-I Instruction Arith./LogiquesInstructionaddi addiu andi ori xori lui $s1, $s2, 10 $s1, $s2, 10 $s1, $s2, 10 $s1, $s2, 10 $s1, $s2, 10 $s1, 10
Meaning$s1 = $s2 + 10 $s1 = $s2 + 10 $s1 = $s2 & 10 $s1 = $s2 | 10 $s1 = $s2 ^ 10 $s1 = 10 0) = 0)
Architecture des Ordinateurs
114
Instructions SLT MIPS fournit instruction set on less than instructions (mettre 1 si >) slt rd,rs,rt if (rs < rt) rd = 1 else rd = 0 sltu rd,rs,rt sans signe < slti rt,rs,im16 if (rs < im16) rt = 1 else rt = 0 sltiu rt,rs,im16 sans signe < Comparaisons avec signe / sans signe Peut produire rsultat diffrents Suppose $s0 = 1 et $s1 = -1 = 0xffffffff $t0 = 0 slt $t0,$s0,$s1 rsultat stlu $t0,$s0,$s1 rsultat $t0 = 1115
Architecture des Ordinateurs
Suite Branchement Le MIPS ne fournit dinstructions pour blt, bltu branch if less than (signed/unsigned) ble, bleu branch if less or equal (signed/unsigned) bgt, bgtu branch if greater than (signed/unsigned) bge, bgeu branch if greater or equal (signed/unsigned) Peut faire avec une squence de 2 instructions Comment faire: Solution: Comment faire: Solution:Architecture des Ordinateurs
blt slt bne ble slt beq
$s0,$s1,label $at,$s0,$s1 $at,$zero,label $s2,$s3,label $at,$s3,$s2 $at,$zero,label116
Pseudo-Instructions Introduits par assembleur comme des vraies instructions Ils facilitent la programmation en assembleur
Pseudo-Instructions move $s1, $s2 not $s1, $s2 li $s1, 0xabcd li sgt blt $s1, 0xabcd1234 $s1, $s2, $s3 $s1, $s2, label
Conversion to Real Instructions addu $s1, $zero, $s2 nor $s1, $s2, $zero ori $s1, $zero, 0xabcd lui $at, 0xabcd ori $s1, $at, 0x1234 slt $s1, $s3, $s2 slt $at, $s1, $s2 bne $at, $zero, label
Lassembleur rserve $at = $1 pour son utilisation $at cest assembler temporary registerArchitecture des Ordinateurs 117
Instructions saut, slt, branchementInstructionj beq bne blez bgtz bltz bgez label rs, rt, label rs, rt, label rs, label rs, label rs, label rs, label
Meaningjump to label branch if (rs == rt) branch if (rs != rt) branch if (rs 0) branch if (rs < 0) branch if (rs>=0) op6 = 2 op6 = 4 op6 = 5 op6 = 6 op6 = 7 op6 = 1 op6 = 1 rs5 rs5 rs5 rs5 rs5 rs5
Formatimm26 rt5 rt5 0 0 0 1 imm16 imm16 imm16 imm16 imm16 imm16
Instructionslt sltu slti sltiu
Meaningop6 = 0 op6 = 0 0xa 0xb rs5 rs5 rs5 rs5
Formatrt5 rt5 rt5 rt5 rd5 rd5 0 0x2a 0 0x2b imm16 imm16
rd=(rs $s3)) {$s4 = 1;} Utiliser le fall-through pour obtenir du code le plus court que possible bgt $s1, $s2, L1 ble $s2, $s3, next L1: li $s4, 1 next: # yes, execute if part # no: skip if part # set $s4 to 1
bgt, ble, et li sont des pseudo-instructionsTraduits par assembleur vers instructions machineArchitecture des Ordinateurs 122
Traduction IF Traduire IF vers assembleur MIPS $s1 et $s2 contiennent des valeurs unsignedif( $s1