organisation-enit(3)

Upload: faten-yahiaoui

Post on 12-Jul-2015

85 views

Category:

Documents


0 download

TRANSCRIPT

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