Plan Historique : inventions (1) - demay.iut.lr.free.frdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1...

91
Architecture de base Architectures des ordinateurs Cours 1 Présentation Présentation Architecture Étude et description du fonctionnement des composants internes d’un ordinateur type et codage des informations manipulées dialogue entre les composants fonctionnement logique interne des composants Plan Plan Historique Historique Architecture de base Architecture de base Générations d’ordinateurs Générations d’ordinateurs Présentation du cours Présentation du cours Historique : inventions (1) Historique : inventions (1) -500 : apparition de l’abaque et du boulier 17ème siècle : certaines tâches sont suffisamment mécaniques pour être automatisables 1632 : L'Anglais Oughtred invente la Règle à calcul 1642 : Pascal invente la Pascaline, destinée à effectuer mécaniquement des additions et soustractions. L’automatisation était réalisée à l’aide de roues dentées. 1694 : Leibnitz améliore la Pascaline (+,-,*,/) 1728 : Falcon construit métier à tisser utilisant les cartes perforées

Transcript of Plan Historique : inventions (1) - demay.iut.lr.free.frdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1...

Page 1: Plan Historique : inventions (1) - demay.iut.lr.free.frdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · Programmation en langage machine Registres d’indexation

Architecture de base

Architectures des ordinateursCours 1

PrésentationPrésentation

Architecture

� Étude et description du fonctionnement des composants internes d’un ordinateur

� type et codage des informations manipulées� dialogue entre les composants� fonctionnement logique interne des composants

PlanPlan

HistoriqueHistorique

Architecture de baseArchitecture de base

Générations d’ordinateursGénérations d’ordinateurs

Présentation du coursPrésentation du cours

Historique : inventions (1)Historique : inventions (1)

� -500 : apparition de l’abaque et du boulier

�17ème siècle : certaines tâches sont suffisamment mécaniques pour être automatisables

� 1632 : L'Anglais Oughtred invente la Règle à calcul

� 1642 : Pascal invente la Pascaline, destinée à effectuer mécaniquement des additions et soustractions. L’automatisation était réalisée à l’aide de roues dentées.

�1694 : Leibnitz améliore la Pascaline (+,-,*,/)

�1728 : Falcon construit métier à tisser utilisant les cartes perforées

Page 2: Plan Historique : inventions (1) - demay.iut.lr.free.frdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · Programmation en langage machine Registres d’indexation

Historique : inventions (2)Historique : inventions (2)

� 1833 : Charles Babbage construit la machine à différence

� principes du métier à tisser (cartons troués articulés)� 4 opérations arithmétiques de bases en séquences� cartes numériques pour la navigation en mer : résultats gravés sur un plateau de cuivre

� il imagine ensuite une machine analytique

� quatre parties : magasin (mémoire), moulin (unité de calcul), entrée (lecteur de cartes perforées) et sortie (perforation ou impression)� opérations arithmétiques, test, branchement conditionnel� machine programmable grâce à un langage d’assemblage très simple� Ada Lovelace écrit le premier programme informatique� non construit faute de moyen (il existe une reconstitution de 3tonnes)

PhotosPhotos

Pascaline Abaque

Boulier Chinois

Métier à tisser de Falcon Machine à différence (1931)

Historique : théories Historique : théories

� -300 : Aristote définit les concepts de la logique

� 1623 : Francis Bacon invente le Code Bilitère utilisant 5 symboles à deux valeurs, permettant de coder les lettres de l’alphabet

� Leibniz (1646-1713) envisage q’une machine puisse raisonner� enchaîner des propositions élémentaires pour faire des déductions

� 1840 : Ada Lovelace définit le principe des itérations successives� elle nomme le processus logique d’exécution du programme algorithme

� 1854 : George Boole reprend l’étude de Leibniz� démontre (Une étude des lois de la pensée) que tous les processus logiques peuvent être modélisés par des fonctions logiques utilisant les opérateurs de base (ET, OU, NON) appliqués à des variables à deux états.

Historique : théories modernes Historique : théories modernes

� 1937 : Alan Turing publie un document sur les fonctions calculables

� résolution de problèmes mathématiques décidables avec une machine nommée Machine de Turing

� 1938 : Shannon est le premier à faire le rapprochement entre les nombres binaires, l’algèbre de Boole et les circuits électriques.

� il démontre que le système binaire manipulé par les opérations logiques de Boole (0=faux, 1=vrai) permet de réaliser toutes les opérations logiques et arithmétiques� il définit la quantité d’information élémentaire : bit (BInary digiT)

� 1945 : John Von Neuman publie le premier rapport décrivant ce que devrait être un ordinateur à programme enregistré

Page 3: Plan Historique : inventions (1) - demay.iut.lr.free.frdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · Programmation en langage machine Registres d’indexation

PlanPlan

HistoriqueHistorique

Architecture de baseArchitecture de base

Générations d’ordinateursGénérations d’ordinateurs

Présentation du coursPrésentation du cours

Structure générale (1)Structure générale (1)

� CPU : central Processing Unit� interprète et exécute les instructions d’un programme� CPU n bits : les informations sont codées sur n bits� cherche une exécution en mémoire, l’exécute, cherche la suivante…

� Horloge : cadence l’activité de l’ordinateur pour que tous les circuits électroniques travaillent ensemble

� Fréquence exprimée en MHz

Bus de données + adresses + commandes

ROMCPU RAM

Périphériques E/S

horloge

Structure générale (2)Structure générale (2)

� ROM : Read Only Memory

� Mémoire morte que l’on ne peut que lire� stocke l’information : programmes et données

� RAM : Random Access Memory

� mémoire vive (lecture, écriture) et volatile (se vide quand il n’y a plus de courant)� suite de case contenant 8 bits (1 octet), chaque case possède sa propre adresse

� Périphériques

� E/S : disque dur, lecteur de disquette, accès réseau� E : clavier, souris, lecteur cd-rom, scanner� S : écran, imprimante, graveur

Structure générale (3)Structure générale (3)

� Un Bus permet de transmettre en parallèle plusieurs données entre les différentes unités de l’ordinateur

� Ensemble de n fils conducteurs : 1 fil = 1 bit

� 4 Types de Bus :

� Bus d’adresse : transmet adresse mémoire lire/écrire, il est composé de a fils (adresse de a bits), la mémoire peut posséder au maximum 2a emplacements� Bus de données : bidirectionnel, transmet données cf. commande� Bus de commande : travail du processeur

� Bus d’extensions : ISA, EISA, PCI, AGP, SCSI, USB

� Largeur du Bus = limite le débit des données, E/S…

Page 4: Plan Historique : inventions (1) - demay.iut.lr.free.frdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · Programmation en langage machine Registres d’indexation

Carte mèreCarte mère

Bios

Slots d’extension ISA / PCI Port Série / Parallèle USB

Mémoire:EDO

SDRAM

Pile

ChipsetContrôleurDisque

Connecteurs : IDE / Disquette Alimentation

CPU

Quartz

Contrôleur

Clavier / Souris

Machine de Machine de Von Neuman Von Neuman (1)(1)

Unité de contrôle

Unité de commande

Unité de traitement

UALAccumulateur

Entrée Sortie

Mémoire

Instructions

Données

Bus

Machine de Machine de Von Neuman Von Neuman (2)(2)

� UAL (Unité Arithmétique et Logique)

� effectue les opérations sur deux données : opérandes� une opérande dans l’accumulateur, l’autre en mémoire de donnée : résultat mis dans l’accumulateur

� Accumulateur

� registre qui contient une opérande et le résultat du calcul

� Unité de commande

� séquence les micro-opérations d’une instruction

Machine de Machine de Von Neuman Von Neuman (3)(3)

Caractéristiques

� Machine universelle contrôlée par programme

� non dédiée aux seules opérations arithmétiques

� Instructions et données sous format binaires et stockées en mémoire

� instructions et données dans la même mémoire

Page 5: Plan Historique : inventions (1) - demay.iut.lr.free.frdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · Programmation en langage machine Registres d’indexation

PlanPlan

HistoriqueHistorique

Architecture de baseArchitecture de base

Générations d’ordinateursGénérations d’ordinateurs

Présentation du coursPrésentation du cours

Ordinateurs : première générationOrdinateurs : première génération

� Ordinateurs à usage scientifique ne traitant que les nombres

� 1946 : Création de l’ENIAC (Electronic Numerical Integrator and Computeur)

� 19000 tubes à vides, 30 tonnes, 72m², 5000 addition/s, 330 multiplication/s, 100 000Hz (signal passant de 0 à 5V 100 000 fois par seconde), consommation 140 000 Watts� programmes câblés en mémoire : centaines à rebrancher pour changer de programme

� 1904 : John Flemming invente le tube àvide. C’est un interrupteur électronique commandé par un signal électrique

� pannes fréquentes� encombrement : 2cm sur 10cm

ENIAC

Première génération : innovationPremière génération : innovation

� La plupart des concepts architecturaux des ordinateurs actuels ont été inventés à cette époque

� Programmation en langage machine� Registres d’indexation� Microprogrammation� Représentation des nombres en virgules flottante� Interruptions de programmes…

� 1947 : Invention du transistor (Bell Téléphone).

� interrupteur commandé électroniquement� consomme moins d’énergie� moins encombrant : 1 cm sur 0,5 cm

Ordinateurs : deuxième générationOrdinateurs : deuxième génération

� Ordinateurs à usage général : traitement des données et des nombres

� remplacement des tubes à vide par des transistors� organisation de la machine autour d’un bus� stockage sur bande magnétique� écrans…

� 1965 : Digital présente le mini ordinateur PDP8

� miniaturisation, diminution du prix� microprocesseur 12 bits� 1MHz = 1 000 000 Hz� mémoire : 4096 mots de 12 bits� consommation : 780 Watts PDP8

Page 6: Plan Historique : inventions (1) - demay.iut.lr.free.frdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · Programmation en langage machine Registres d’indexation

Deuxième génération : innovationDeuxième génération : innovation

� 1965 : Gordon Moore écrit que la complexité des circuits intégrés doublera tous les deux ans

� cette affirmation s’est révélée exacte� connue sous le nom de loi de Moore� cette vitesse à tout de même tendance à diminuer depuis quelque temps

� 1961 : Fairchild Semiconductorcommercialise la première série de circuits intégrés

� un circuit intégré contient un ensemble de transistors

Ordinateurs : troisième générationOrdinateurs : troisième génération

� Traitement des données et de l’information

� apparition des circuits intégrés (puces) et des processeurs� miniaturisation� multiprogrammation : plusieurs programmes en même temps

� 1971 : Intel met en vente le premier microprocesseur i4004

� microprocesseur 4 bits� 108 KHz� Adressage de 640 informations mémoires� 60000 instructions par secondes� 2300 transistors : circuit SSI (Small Size Integration)�Taille des transistors : 10-3 m� 1400 Francs 4004

Troisième génération : innovationTroisième génération : innovation

� 1978 : Intel met en vente le premier microprocesseur 16 bits, le 8086 le premier de la gamme x86 ou i86

� 200 KHz� adressage de 16384 informations mémoires� 330 000 instructions par seconde� 20 000 transistors en technologie 80 micron (80.10-6m)

� 1981 : IBM commercialise le premier PC (Personnal Computeur)

� microprocesseur 8086� 16384 informations mémoire� 4.77 MHz i8086

Ordinateurs : quatrième générationOrdinateurs : quatrième génération

� Nos ordinateurs

� ordinateurs personnels� VLSI (Very Large Scale Integration)� augmentation du nombre de transistors� réseaux, terminaux…

� 1985 : Intel met en vente le premier microprocesseur 32 bits

� le 80386� 2MHz� adressage de 4Go de mémoire� 1 000 000 d’instructions par seconde� 200 000 transistors

� 1986 : Première machine multiprocesseur 80386

Page 7: Plan Historique : inventions (1) - demay.iut.lr.free.frdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · Programmation en langage machine Registres d’indexation

Quatrième génération : les PCQuatrième génération : les PC

� 1990 : Les PC deviennent multimédia, connectés en réseau

� 2002 : Caractéristiques des PC actuels

� Fréquence de l’ordre de 2 Giga Hertz � 42 000 000 de transistors de 0,18 micron (Pentium IV)� accélération 3D� consommation d’énergie plus faible (portables)…

Évolution de la complexitéÉvolution de la complexité

Évolution de la puissanceÉvolution de la puissance Évolution de la technologieÉvolution de la technologie

Page 8: Plan Historique : inventions (1) - demay.iut.lr.free.frdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · Programmation en langage machine Registres d’indexation

LangageLangage

� CPU� cherche une instruction en mémoire, l’exécute, cherche la suivante…

� Une instruction est une suite de bits contenant le code de l’information (addition, soustraction…) et ses opérandes (arguments de l’opération� Pour éviter d’avoir à connaître ce langage on définit des langages de plus haut niveau

� Interprétation :� chaque instruction du langage Ln est traduite en séquence de Ln-1 exécutable par Mn-1. Ré interprétation à chaque fois.

� Compilation� programme de Mn traduit en entier en un programme en Ln-1 exécutable par Mn-1

Machine virtuelle M0

Langage Machine L0

Machine virtuelle Mn

Langage Machine Ln

Machine virtuelle Mn-1

Langage Machine Ln-1

Fonctionnement en couchesFonctionnement en couches

Niveau 0

Niveau 1

Niveau 2

Niveau 3

Niveau 5

Niveau 4

Couche physique

Couche microprogrammée

Couche machine

Système d’exploitation

Langage d’assemblage

Langages d’applicationComp ou int

traduction

interprétation

interprétation

Exécution

Pascal, C, Java

Instr. assembleur

Routines

Langage machine codé en binaire

Langage interne du microprocesseur

Non

Prog

ram

mab

lePr

ogra

mm

able

PlanPlan

HistoriqueHistorique

Architecture de baseArchitecture de base

Générations d’ordinateursGénérations d’ordinateurs

Présentation du coursPrésentation du cours

Plan du coursPlan du cours� Représentation des données

� Algèbre de Boole, Portes et circuits logiques � outils théoriques

� Circuits combinatoires et séquentiels � de la logique au chemin des données

� Introduction au langage machine et assembleur 8086 � architecture détaillée� instructions de la machine et programmation � Interruptions� Système d’exploitation

� Hardware � Mémoires, Entrées/Sorties, Périphériques

� Autres architectures (super-ordinateurs, grilles…)

Page 9: Plan Historique : inventions (1) - demay.iut.lr.free.frdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · Programmation en langage machine Registres d’indexation

Représentation et codage des données

Architectures des ordinateursCours 2

PlanPlan

BasesBases

� numération en base b� opération arithmétiques et conversions� représentation des nombres

CodageCodage

� codage des entiers� codage des réels� codage des caractères

Numération en base Numération en base bb

� Numérotation romaine

� MCMXCIX : M vaut toujours 1000, C vaut 100…

� Numérotation arabe : représentation positionnelle

� la rang de chaque chiffre indique son poids� dans 1999 le 9 le plus à droite vaut 9, le deuxième 90…� la valeur d’un chiffre dépend de sa position

� Représentations courantes des nombres

� plusieurs bases : XXXb indique que le nombre XXX est écrit en base b� représentation usuelle : base 10� représentations courantes en informatique : bases 2 (binaire, interne), 8 (octal) et 16 (hexadécimal)

Numération en base Numération en base 2, 8, 10 et 162, 8, 10 et 16

�En base b on utilise b chiffres

� x = anan-1…a1a0� a0 est le chiffre des unités

0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,Fb = 16 ou Hexadécimal0,1,2,3,4,5,6,7,8,9b = 10 ou Décimal

0,1,2,3,4,5,6,7b = 8 ou Octal0,1b = 2 ou Binaire

ai ∈∈∈∈ {Chiffres}Bases

Page 10: Plan Historique : inventions (1) - demay.iut.lr.free.frdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · Programmation en langage machine Registres d’indexation

Numération : exemplesNumération : exemples

� Pour les bases supérieures à 10 on peut également introduire des symboles séparateurs :

� système sexagésimal : longitude = 2°20’14’’

� Exo1

E2A116 = 580171016 ou Hexadécimal1281010 ou Décimal

1428 = 98108 ou Octal10012 = 9102 ou BinaireExemplesBases

Changement de base : b à 10Changement de base : b à 10

� N(10) = d0.b0 + … + di.bi +… + dn.bn

� i : rang� bi : poids du chiffre� le chiffre le plus à gauche est le chiffre de poids fort, celui le plus à droite le chiffre de poids faible

� Exemple :

� 143(5) = 3*50 + 4*51 + 1*52 = 3+20+25 = 48(10)

� AB(16) = 11*160 + 10*161 = 11+160 = 171(10)

� 1001(2) = 1*20 + 0*21 + 0*22 + 1*23 = 1+0+0+8 = 9(10)

� le poids des chiffres en binaire et 1, 2, 4, 8, 16, 32, 64…

Intervalle d’un nombre de Intervalle d’un nombre de nn chiffreschiffres

� Avec n chiffres on peut coder en base b, la valeur maximale suivante (cas où tous les chiffres sont à la valeur maximale soit b-1)

Nmax(10) = (b-1).b0 + … + (b-1).bi + … + (b-1).b(n-1)

= (b-1) . (1 + … + bi + … + b(n-1))= b . (1 + … + bi + … + b(n-1)) - (1 + … + bi + … + b(n-1))= b + … + bi + … + bn – (1 + … + bi + … + b(n-1) )= bn – 1

�Avec n chiffres on donc coder bn valeurs en base b

� Dans un ordinateur on code les nombres sur 8, 16 ou 32 bits

� 8 bits : Nmax = 28 – 1 = 255 on peut coder 256 valeurs� 16 bits : Nmax = 65 535 (65 000 couleurs…)� 32 bit : Nmax = 4 294 967 296

Kilo, Méga, Kilo, Méga, TeraTera

� On utilise souvent en informatique Kilo, Mega at Tera.

� traditionnellement un Kilo vaut 1000 : 1Km = 1000m� en base 2, 1000 n’est pas une puissance de 2, on prend la valeur immédiatement supérieure

� 1 Kilo = 210 = 1024� 1 Mega = 220 = 1 048 576� 1 Tera = 230 = 1 073 741 824

� Un octet est un regroupement de 8 bits

� 1 Ko = 1024 octets� 1 Mo = 1024 Ko� 1 Go = 1024 Mo

Page 11: Plan Historique : inventions (1) - demay.iut.lr.free.frdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · Programmation en langage machine Registres d’indexation

Changement de base : 10 à bChangement de base : 10 à b

� Algorithme des divisions successives

� on divise le nombre par la base� puis le quotient par la base� ainsi de suite jusqu’à obtention d’un quotient nul� la suite des restes correspond aux chiffres dans la base visée� on obtient en premier le bit de poids faible et en dernier le bit de poids fort

� Pour convertir un nombre d’une base b1 vers une base b2, il suffit de convertir le nombre de la base b1 en base 10, puis ce nombre en base 10 en base b2

Base 10 à 2 et 16 : exemplesBase 10 à 2 et 16 : exemples

conversion de 11(10) en base 2

11 2

51

ResteBit de poids 1

2

21 2

10

11(10) = 1 0 1 1 (2)

Vérification :

1*1 + 1*2 + 0*4 + 1*8 = 11

conversion de 1023(10) en base 16

Bit depoids 8

1023 16

6315

Restedigit de poids

1

16

315 16

03Reste

digit de poids 16Reste

digit de poids 2561023(10) = 3FF (16)

Vérification :

3*16² + 15*16 + 15*1 = 1023

Particularité : bases 2, 8 et 16Particularité : bases 2, 8 et 16

� Bases correspondant à des puissances de 2 : conversions très faciles

� base 8 : découpage par blocs de 3 chiffres

� 001 010 011 101� 1 2 3 5 = 12358

� base 16 : découpage par blocs de 4 chiffres

� 0010 1001 1101� 2 9 D = 29D16

� Pour simplifier la notation binaire on utilise en informatique la notation hexadécimale

� simplification de la lecture et écriture des adresses mémoires…

Opérations arithmétiquesOpérations arithmétiques

� Mêmes principes que ceux utilisés en base 10

� Dans l’ordinateur, les opérations sont faites en base 2

� Il existe aussi des opérations logiques (Cours n°3)

1 1 1 1 1 1 1 1+ 1 1 1 1 1 1 1 11 1 1 1 1 1 1 1 01 1 1 1 1 1 1 1 0

255+ 255

510retenue

F F+ F F1 1 01 F E

255+ 255

510retenue

1 0 11 0 1

1 0 11 0 1

1 0 1

1 1 0 0 1

XA CORRIGER

Page 12: Plan Historique : inventions (1) - demay.iut.lr.free.frdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · Programmation en langage machine Registres d’indexation

Représentation des nombres Représentation des nombres

� Les nombres sont codés en binaire

� Pour les nombres fractionnaires

� on écrit la partie entière en binaire� on garde la virgule� la partie décimale se décompose en puissances négatives de 2

� Exemple : 0,7510

� 0,75 * 2 = 1,5 (on garde 1 reste 0,5)� 0,5 * 2 = 1 (on garde 1 reste 0 : terminé)

� 0,7510 = 0,112 = 1 * 2-1 + 1 * 2-2 = ½ + ¼

PlanPlan

BasesBases

� numération en base b� opération arithmétiques et conversions� représentation des nombres

CodageCodage

� codage des entiers� codage des réels� codage des caractères

Types d’informationsTypes d’informations

� Les types d’informations directement traitées par un processeurs sont :

�Les données

� entiers : entiers naturels et entiers relatifs� flottants : décrivent les réels, simple et double précision� caractères � le codage de ces trois types est défini par des standards (normes spécifiées par des organisations internationales)

�Les instructions

� leur codage est spécifique d’un processeur

L’informationL’information

� Dans un ordinateur, l’information est numérisée (digitale)

� L’information est la connaissance d’un état parmi un nombre fini d’états possibles � Une information non numérisée est une information analogique : une grandeur physique continue (tension ou courant)

� L’unité de mesure de l’information est le bit

� un bit est la quantité d’information liée à la connaissance d’un état parmi deux� un bit d’information peut être représenté par un digit binaire prenant les valeurs 0 ou 1� rappel : avec n bits, on peut représenter 2n états

Page 13: Plan Historique : inventions (1) - demay.iut.lr.free.frdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · Programmation en langage machine Registres d’indexation

Codage : dépassement de capacitéCodage : dépassement de capacité

� Codage = représentation avec un nombre limité de bits

� Problème pour le dépassement de capacité

� Exemple pour les entiers naturels

1 0 1 0 1 0 1 0+ 1 1 0 0 0 0 0 0

1 0 1 1 0 1 0 1 0

170+ 192

362

Représentation Codage sur 8 bits

1 0 1 0 1 0 1 0+ 1 1 0 0 0 0 0 0

1 0 1 1 0 1 0 1 0

362 est trop petit pour être codé sur 8 bits

Codage des entiers naturelsCodage des entiers naturels

� Entiers naturels (unsigned en C) codés sur un nombre d’octets fixé (un octet = 8 bits)

� généralement 1, 2 (short en C) ou 4 (int ou long en C)

� Sur un octet on peut coder les nombres de 0 à 255 (28

possibilités) : attentions aux dépassements (overflow)

� deux possibilités : ignorer l’overflow (tourne) ou provoquer l’exécution d’une routine particulière

� Nombre représenté en base 2, les bits sont rangés dans des cellules correspondant à leur poids, on complète à gauche par des 0

0 0 0 0 1 1 0 1

128 64 32 16 8 4 2 1

Codage des entiers relatifsCodage des entiers relatifs

� Problème : coder le signe du nombre

� Idée simple : introduire un bit de signe (0 : + ; 1 : -)

� sur 4 bits : 0110 = 6 et 1110 = - 6� sur n bits on code [-(2n-1-1),2n-1-1] : car on utilise n-1 bits pour coder le nombre

� Limitations de ce type de solution

� deux représentations pour 0 : 0000 ou 1000� addition difficile alors que c’est l’opération la plus utilisée (extraction du signe, test pour faire une addition ou une soustraction, calcul du nouveau signe)

� Pour simplifier l’addition on représente les entiers négatifs en complément à 2

Complément à deuxComplément à deux

� La représentation de –x est obtenue par le complément àdeux de x

� on code en binaire sa valeur absolue� on complémente (inverse) tous les bits� on ajoute 1

� Exemple : pour x = 22 sur 1 octet

� X = 0 0 0 1 0 1 1 0 : on complémente� 1 1 1 0 1 0 0 1 : on ajoute 1� -X = 1 1 1 0 1 0 1 0

� Le premier bit d’un nombre indique son signe, s’il est négatif, son complément permet de retrouver sa valeur absolue

Page 14: Plan Historique : inventions (1) - demay.iut.lr.free.frdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · Programmation en langage machine Registres d’indexation

Complément à 2 et entiers relatifs Complément à 2 et entiers relatifs

� En machine les nombres négatifs sont directement codés en complément

� soustraction : on complémente la deuxième opérande et on effectue une addition� addition et soustraction : un seul circuit réalisant l’addition� on ne considère pas le signe des nombres

� Représentation non complètement symétrique : le plus petit nombre n’a pas d’opposé : sur n bits

� le plus grand entier positif est 2n-1-1� le plus petit entier négatif est - 2n-1

Entiers relatifs : exemple Entiers relatifs : exemple

01-1

2-2

3-3-4

000

001

010

011

100

101

110

111

0 0 0 0 0 0 0 1+ 1 0 0 0 0 0 0 1

1 0 0 0 0 0 1 0

Algorithme d’addition traditionnel avec les deux méthodes

+1 –1 = -2 la méthode simple du bit de signe ne

fonctionne pas

0 0 0 0 0 0 0 1+ 1 1 1 1 1 1 1 1

0 0 0 0 0 0 0 0+1 –1 = 0 la méthode du

complément à deux fonctionne

retenue

1

Codage des réels : virgule flottanteCodage des réels : virgule flottante

� Par exemple codifié 3,25 qui s’écrit (11,01)2

� première machine = virgule fixe : nombre séparé en deux parties (chiffres avant et après la virgule)

� Depuis les années soixante : virgule flottante

� flottant stocké sous la forme M * BE

� M : Mantisse ; B : Base ; E : Exposant� exemple : 123 . 103 = 123 000

� Représentation IEEE 754 (signe 1 bit, exposant et mantisse sur 32 ou 64 bits pour simple et double précision)

� SM : signe de la mantisse : 1 bit� Eb : exposant biaisé : 8 ou 11 bits� M : Mantisse : 23 ou 52 bits SM Eb M

Mantisse et exposantMantisse et exposant

� Signe : bit de poids fort (0 = + ; 1 = -)

� Exposant

� placé avant la mantisse pour simplifier les comparaisons (pour ceci il ne doit pas être représenté en complément à deux : 2-1 > 2)� sans signe mais biaisé de 127 (simple précision) :

� Eb = 0 ⇒ E = 0 – 127 = -127 � Eb = 255 ⇒ E = 255 – 127 = 128

� les exposants 128 (erreur) et 0 (nb dénormalisé) sont interdits

� Mantisse

� normalisée : bit de poids fort n’est pas 0 et un seul chiffre avant la virgule� ex : 11,01 = 1,101 * 21

Page 15: Plan Historique : inventions (1) - demay.iut.lr.free.frdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · Programmation en langage machine Registres d’indexation

Évaluation d’un réelÉvaluation d’un réel

� Comme le bit de poids fort de la mantisse est nécessairement 1 : on ne l’indique pas (gaspillage de place), il est implicite

� Mantisse

� partie fractionnaire = f1f2 …fn ⇒ m = 1,f1f2…fn

� nombre x = (-1)SM * 1,M * 2Eb-127

� Exemple

� x = (-2,5)10 = -1,01*212 (SM = 1 ; Eb = 1000 0000 ; M = 01)

SM Eb M

f1f2…fn

OpérationsOpérations

� Additions et soustractions

� il faut que les exposants aient la même valeur� exemple : 3 * 103 + 9,98 * 105 =� on dénormalise : 3 * 103 = 0,03 * 105

� on additionne les mantisses : 0,03 + 9,98 = 10,01� on normalise : 10,01 * 105 = 1,001 * 106

� Multiplications et divisions

� on additionne ou on soustrait les exposants� on multiplie les mantisses� on normalise le résultat

� Nombre infini de valeurs dans un intervalle : codées avec un nombre fini de bits ⇒ problème de précision (arrondi)

Codage des caractères Codage des caractères � Caractères : symboles alphanumériques (& , . A 5 …)

� données non numériques (l’addition n’a pas de sens) � comparaison ou tri utile� table de correspondance entre les nombres et les caractères

� Code ASCII (American Standard Code for Information Interchange)

� 7 bits pour représenter les caractères (ASCII étendu = 8 bits)� 0 (00) à 31 (1F) : caractères spéciaux : sauts, bips…� 48 à 57 : chiffres dans l’ordre (valeur = 4 bits de poids faible)� 65 à 90 les majuscules et 97 à 122 les minuscules (on modifie le 5ème bit pour passer des majuscules aux minuscules : +32)…

� En machine on accède aux mots par octet

� ASCII étendu : caractères accentués…� Compatibilité : nécessaire d’expliciter le codage utilisé : iso-latin-1

Code ASCII Code ASCII

Page 16: Plan Historique : inventions (1) - demay.iut.lr.free.frdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · Programmation en langage machine Registres d’indexation

Algèbre de Boole et circuits logiques

Architectures des ordinateursCours 3

PlanPlan

Algèbre de BooleAlgèbre de Boole

Circuits combinatoiresCircuits combinatoires

Circuits séquentiels : basculesCircuits séquentiels : bascules

Application des basculesApplication des bascules

UALUAL

ÉlectroniqueÉlectronique

Logique des propositionsLogique des propositions

� Proposition = énoncé vrai ou faux

� a : les élèves sont présents� b : le professeur est présent� cours si a et b

� Combinaison par des connecteurs

� ¬¬¬¬ (non logique) ∧∧∧∧ (et logique) ∨∨∨∨ (ou logique non exclusif)

VF

FV¬¬¬¬ pp

F

V

V

V

p ∨∨∨∨ q

FFF

FVF

FFV

VVV

p ∧∧∧∧ qqp

tables de vérités

Notion ensemblisteNotion ensembliste

R

a

a

R

a b

ba ∪

R

a b

ba ∩

Page 17: Plan Historique : inventions (1) - demay.iut.lr.free.frdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · Programmation en langage machine Registres d’indexation

Passage à l’algèbre de BoolePassage à l’algèbre de Boole

� Il y a d’autres connecteurs et quelques lois dans la logique des propositions : ¬¬¬¬ a ∧∧∧∧ ¬¬¬¬ b = ¬¬¬¬ (a ∨∨∨∨ b)…

V

F

F

F

¬¬¬¬ a ∧∧∧∧ ¬¬¬¬ b

V

F

V

F

¬¬¬¬ b

F

V

V

V

a ∨∨∨∨b

V

V

F

F

¬¬¬¬ a

VFF

FVF

FFV

FVV

¬¬¬¬ (a ∨∨∨∨ b)ba

� Georges Boole a exprimé la logique des propositions en termes algébriques

� Claude Shannon a proposé : V = 1 et F = 0 aaa

babababa

−=⇒¬⇒∧

+⇒∨

1.

Algèbre de BooleAlgèbre de Boole

� Il existes 16 fonctions à deux variables : toutes ne sont pas intéressantes

0

1

1

1

0

1

1

0

0

0

0

1

1

0

0

0

1

1

1

0

111

001

010

100

a b ba + ba + ab ab ba ⊕ ba ⊕

Ou exclusif ou xor

Non ou ou nor

Non et ou nand

bababa +=⊕

ba +

ab

Opérations de baseOpérations de base

� Toutes les fonctions peuvent s’exprimer à l’aide des trois opérations logiques et, ou, non

� Avec n variables on peut construire 2n fonctions� Une fonction à trois variables peut se décomposée en deux

� f(a,b,c) = f(0,b,c) si a=0 et f(a,b,c) = f(1,b,c) si a=1 � f(a,b,c) = a.f(1,b,c) + a.f(0,b,c)

� groupe logique complet = ensemble de fonction à partir desquels il est possible de réaliser toutes les fonctions {et,ou,non}…� Fonctions à n variables décomposables et fonctions à 2 variables exprimable avec {et,ou,non} ⇒ récurrence…

� L’algèbre de Boole se construit sur les booléens à partir des trois opérations internes : +, * et

Théorèmes et axiomes (1)Théorèmes et axiomes (1)

� Théorème des constantes

� Idempotence

� Complémentation

� Commutativité

aa =+ 0 00 =×a11 =+a aa =×1

aaa =+ aaa =×

1=+ aa 0=× aa

abba +=+ abba ×=×

1=⊕ aa

0=⊕ aa

aa =⊕ 0aa =⊕1

abba ⊕=⊕

Page 18: Plan Historique : inventions (1) - demay.iut.lr.free.frdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · Programmation en langage machine Registres d’indexation

Théorèmes et axiomes (2)Théorèmes et axiomes (2)

� Distributivité

� Associativité

))(()( cababca ++=+acabcba +=+ )(

cbacbacba ++=++=++ )()(abccabbca == )()(

� Théorème de De Morgan

baab +=baba ×=+

Table de vérité et équationTable de vérité et équation

� Pour concevoir un circuit, il faut le modéliser.

� on utilise une table de vérité� on obtient une équation qu’on simplifie (algébrique ou Karnaugh)� on trace le schéma électrique du circuit

� éléments constitutifs d’un ordinateur : exclusivement portes nand ou bien nor (système complet)

� Table de vérité : présente toutes les combinaisons possibles des n entrés (2n lignes) et les états de sortie correspondant

� Une fois la table de vérité écrite, il faut la transformer en équation logique

� somme (fonction ou) de produit (fonction et)

Équation : exempleÉquation : exemple

F(a,b)=1 si

a=0 et b=0 soit a=1 et b=1 donc si a.b=1a=1 et b=0 soit a=1 et b=1 donc si a.b=1 a=1 et b=1 donc si a.b=1

F(a,b) = a.b+a.b+a.b

111101010100

F(a,b)ba

Simplification algébrique de l’équation

abbaF

abbaF

abbaF

abaabaF

ababaF

ababaF

ababaF

bbababaF

+=

+=

=

+=

+=

=

+=

++=

),(

),(

.),(

..),(

).(),(

))..((),(

.),(

).(.),(

Diagrammes de Diagrammes de KarnaughKarnaugh

� Table de Karnaugh : principe

� départ : somme de produits où chaque produit doit contenir toutes les variables : (a+a)b = b

� chaque colonne diffère de sa voisine d’un seul littéral� les tables de Karnaugh sont à deux dimensions : on regroupe

des variables� on regroupe les 1 en morceaux rectangulaires

1. plus grands morceaux possibles2. moins de morceaux possibles3. nouveau morceau que s’il permet de regrouper des 1 non

encore regroupés4. la ligne du haut et du bas ainsi que colonne de droite et de

gauche sont adjacentes

� Morceau = produit de variable : variable et son inverse dans le même morceau = élimination de la variable

Page 19: Plan Historique : inventions (1) - demay.iut.lr.free.frdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · Programmation en langage machine Registres d’indexation

KarnaughKarnaugh : exemple n°1: exemple n°1

babababaF ...),( ++=

abbaF +=),(

a

a

b b1 1

10

KarnaughKarnaugh : exemple n°2: exemple n°2

abccbacbacbabaF

abcccbacbabaF

abcbacbabaF

+++=

+++=

++=

),(

)(..),(

..),(

cbacbaF +=),(

a

a

bc cb1 1

00

cb11

cb00

Portes et circuits logiquesPortes et circuits logiques

� Un ordinateur travaille en base 2

� Électroniquement 0 correspondait à une tension de 0 à 0,8V et 1 à une tension de 2,8 à 2,5V (tensions données par les constructeurs de composants)� Toute fonction binaire peut être représentée par une expression booléenne� Tout circuit électrique ou électronique à deux valeurs de tension peut être représenté par une expression booléenne

� Préférable de représenter les circuits par des symboles logiques et non par des expressions booléennes

� Correspondance entre les différentes fonctions logiques (+,*…) et des symboles appelés portes logiques

Portes logiquesPortes logiques

ET

NON

OU

OUexclusif

XOR

a

ba×

ba +

ba ⊕

Page 20: Plan Historique : inventions (1) - demay.iut.lr.free.frdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · Programmation en langage machine Registres d’indexation

Portes logiques et circuitsPortes logiques et circuits

a

ba +

ba×

ba ⊕

Portes logiques : mise en sériePortes logiques : mise en série

NON ETNAND

NON OUNOR

ID

ba×

ba +

ba ⊕

SchémaSchéma

�Exemple du schéma électrique de la fonction

111101010100

F(a,b)ba

abbaF

babababaF

+=

++=

),(

...),(

a

b

Système complet (1)Système complet (1)

� Porte NAND = la plus simple à réaliser du point de vue technologique.� Possible de réaliser toutes les fonctions logiques en utilisant uniquement NAND (http://www.univ-lemans.fr/enseignements/physique/02/electro/portes2.html)

ET

XOR

OU

NON

Page 21: Plan Historique : inventions (1) - demay.iut.lr.free.frdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · Programmation en langage machine Registres d’indexation

Système complet (2)Système complet (2)

NON OU

Représentation des assemblages de portes NAND (TTL : 7400 ou CMOS : 4011) qui réalisent les différentes fonctions logiques

PlanPlan

Algèbre de BooleAlgèbre de Boole

Circuits combinatoiresCircuits combinatoires

Circuits séquentiels : basculesCircuits séquentiels : bascules

Application des basculesApplication des bascules

UALUAL

ÉlectroniqueÉlectronique

Cristal et dopageCristal et dopage

� Trois type de cristaux (structures régulières d’atomes)

� Isolants : dioxyde de Silicium (SiO2)� Conducteurs : Cuivre, Aluminium, Or…� Semi-conducteurs : Silicium, Germanium, Arséniure de Gallium

� isolant à très basse température et conducteurs sinon

� Dopage : insérer des atomes d’un matériau A dans un cristal d’atomes B = modification de la conductivité du cristal

� négatif : on introduit un excès d’électrons dans le cristal. Exemple : un excès d’un atome de Phosphore dans un cristal de Silicium divise par 30000 sa résistivité� positif : on retire des électrons� le Silicium est facilement dopable

Transistor à effet de champ MOSTransistor à effet de champ MOS

� Transistor à canal N :

� à l’intérieur d’un substrat faiblement dopé P on délimite 2 zones fortement dopées N (source et drain) espacée d’une distance L� à la surface du substrat (entre source et drain) on dépose une couche d’isolant (dioxyde de Silicium) puis de Silicium dopéP

Page 22: Plan Historique : inventions (1) - demay.iut.lr.free.frdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · Programmation en langage machine Registres d’indexation

Temps de réponseTemps de réponse

� Temps de Propagation (Propagation Delay)

� passage de l' état logique "0" à l' état logique "1", et inversement ne sont pas instantanés mais prennent un temps :� tPLH temps de propagation LOW to HIGH� tPHL = temps de propagation HIGH to LOW .� Ex : tPLH = 8 ns pour le 74LS21� signal électrique : 200 000 km/s dans un conducteur mais 2 km/s dans un semi-conducteur

� Puissance consommée

� La puissance consommée " p" en mW par un boîtier dépend de sa fréquence d' utilisation et du nombre d' opérateurs utilisés .Ex : 2mW par opérateur pour le 74LS21

Transistor à canal PTransistor à canal P

� Même principe mais bloquant si VG = 5V passant sinon

� Tensions des circuits électronique de l’ordre de 3,3 V ou 5 V

� pour représenter les valeurs logiques (1 et 0) il est impossible de prendre 0V pour 0 ou 5V pour 1 (bruits parasites)� 0 logique : tension comprise entre 0 et 0,75 V� 1 logique : tension comprise entre 4,5 et 5 V

on peut modéliser un transistor sous forme d’un circuitcourant à gauche = active l’électro-aimant = ferme l’interrupteur

Portes logiquesPortes logiques

� A partir de ce dispositif on peut réaliser des portes de base (ET, OU…)

�Portes logiques : regroupées dans des circuits intégrés (2 types de technologies différentes TTL ou CMOS)

Circuits intégrésCircuits intégrés

� Plaquette de Silicium contenant :

� des éléments actifs : transistor (amplification de tension)� des éléments passifs : résistances, condensateurs, diodes.� entre 5 et 500 mm² : peut contenir plusieurs million d’éléments

� Les circuits intégrés (chip) peuvent être classifiés

� SSI (Small Scale Integration) contenant moins de 100 portes� MSI (Medium) : entre 100 et 1000 portes� LSI (Large) : entre 1000 et 105 portes� VLSI (Very Large) : entre 105 et 107 portes� ULSI (Ultra Large) : plus de 107 portes

� Largeur des connexions entre éléments : influence sur la densité des transistors au mm² (0,13 microns)

Page 23: Plan Historique : inventions (1) - demay.iut.lr.free.frdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · Programmation en langage machine Registres d’indexation

Introduction aux circuits logiquesIntroduction aux circuits logiques

� Portes logiques : réalisées électroniquement par un ou deux transistors

� Plusieurs portes logiques forment un circuit logique = circuit intégré

� circuits combinatoires : ne font que combiner les variables d’entrée selon une table de vérité� circuits séquentiels : construits à partir de circuits combinatoires + capacité de mémorisation

� La réalisation d’un circuit passe par la recherche des expressions booléennes, puis par leur simplification (règles ou tableau de Karnaugh)

PlanPlan

Algèbre de BooleAlgèbre de Boole

Circuits combinatoiresCircuits combinatoires

Circuits séquentiels : basculesCircuits séquentiels : bascules

Application des basculesApplication des bascules

UALUAL

ÉlectroniqueÉlectronique

DemiDemi--additionneuradditionneur

� Addition de deux bits x et y

0110S

111001010000Ryx

xyyxyxS

xyR

).( +=⊕=

=

Additionneur complet Additionneur complet

� Addition de deux nombres

� addition bit à bit� considération de la retenue précédente� somme de 3 bits = additionneur complet

x

y

re

rs

S

� Somme S

� vaut 1 si entre x, y et re (retenue d’entrée) : le nombre de bits à1 est impaire

� Retenue de sortie rs

� vaut 1 si x et y valent 1, ou si l’un des deux vaut 1 alors que re vaut 1

Page 24: Plan Historique : inventions (1) - demay.iut.lr.free.frdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · Programmation en langage machine Registres d’indexation

Additionneur complet : circuitAdditionneur complet : circuit

� Un additionneur se réalise à l’aide d’additionneurs 3 bits mis bout à bout

10011111110100110101

01100000001011001010

Sre rsyx

).(..yxrexyrsreyrexxyrs

yxreS

⊕+=++=

⊕⊕=

Additionneur 2n bits : propagationAdditionneur 2n bits : propagation

� Forme la plus simple : propagation de retenue

� le calcul sur chaque bit se fait de façon différée � rang 0 en premier puis rang 1 avec la retenue du rang 0…

� Temps de calcul

� si un additionneur 1 bit met 1T pour calculer la retenue et 1,5T pour le résultat� rs0 à T et S0 à 1,5T� rs1 à 2T et S1 à 2,5T� rsn-1 à nT et Sn-1 à (n+0,5)T

� Temps : (n+0,5)*T = linéaire

x0y0

re0=0

rs0

S0

x1y1

rs1

S1

xn-1yn-1

rsn-1

Sn-1

Additionneur 2n bits : anticipationAdditionneur 2n bits : anticipation

� Anticipation de retenue

� partie complexe : calcule en un temps très court toutes les retenues à partir des différents bits à additionner

� Temps de calcul

� si un additionneur 1 bit met 1,5T pour calculer le résultat et si l’anticipation de retenue met 3T� Temps : 4,5T = constant

Ant

icip

atio

nde

rete

nue x0

y0S0

xn-1yn-1

Sn-1

rsn-1

rsn-2

IncrémenteurIncrémenteur

� Ajouter ou retrancher 1 : opération fréquente d’un processeur

� utiliser l’addition : utilisation non optimale� Exemple : incrémenteur 4 bits

Page 25: Plan Historique : inventions (1) - demay.iut.lr.free.frdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · Programmation en langage machine Registres d’indexation

MultiplexeurMultiplexeur

� Permet d’envoyer sur la sortie (C) l’état d’une entrée (A) ou de l’autre (B) en fonction d’un signal de sélection (S)

1100S

11X00X1X10X0CBA

SBSAC

SBAASBBAC

..

.).()..(

+=

+++=

A

BC0

1

Multiplexeur / DemultiplexeurMultiplexeur / Demultiplexeur

� Multiplexeur à deux et 2n entrées

� Demultiplexeur : aiguille l’entrée sur la sortie n°S

PlanPlan

Algèbre de BooleAlgèbre de Boole

Circuits combinatoiresCircuits combinatoires

Circuits séquentiels : basculesCircuits séquentiels : bascules

Application des basculesApplication des bascules

UALUAL

ÉlectroniqueÉlectronique

UAL : principeUAL : principe

� UAL : Unité Arithmétique et logique

� effectue les opérations de bases (arithmétiques et logiques°� un code d’entrée détermine la partie du circuit qui va effectuer les opérations

� UAL 1 bit : opération ET / OU

� en fonction d’un signal Op le circuit calcul a ET b ou bien a OU b

a ou b1a et b0

SOp

urmultiplexeOpyOpxS

OpbaOpbaS

⇒+=

++=

..

).(..

Page 26: Plan Historique : inventions (1) - demay.iut.lr.free.frdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · Programmation en langage machine Registres d’indexation

UAL : ET, OU, +UAL : ET, OU, +

� UAL 2 bits : opération ET / OU / +

� on ajoute un additionneur

librea + ba ou ba et b

S

11011000

Op0Op1

UAL n bitsUAL n bits

Traitement de données codées sur n bits

UAL : représentation UAL : représentation

� UAL chargée des opérations

� logique : AND, OR, XOR, NOT, CMP, LSL, LSR, ASR (décalages)� arithmétiques : ADD, SUB, MUL, DIV, INC (+1), DEC (-1)

UAL : autre représentationUAL : autre représentation

� UAL 8 bits

Page 27: Plan Historique : inventions (1) - demay.iut.lr.free.frdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · Programmation en langage machine Registres d’indexation

PlanPlan

Algèbre de BooleAlgèbre de Boole

Circuits combinatoiresCircuits combinatoires

Circuits séquentiels : basculesCircuits séquentiels : bascules

Application des basculesApplication des bascules

UALUAL

ÉlectroniqueÉlectronique

Circuits séquentiels : définitionCircuits séquentiels : définition

� Définition

� circuit séquentiel : pour la même combinaison des données, la sortie peut prendre diverses valeurs en fonction du temps� mémorisation des états passés� table de vérité : on trouve en plus des entrées, la valeur de sortie àl’état précédent

� Les circuits séquentiels de base sont les bascules

� particularité : deux états stables = conservation de l’état de leur sortie même si la combinaison des signaux d’entrée l’ayant provoquée disparaît

� Horloge : composant passant d’un niveau haut à bas (0101010…)

� bascules synchrones (avec horloge) insensibles aux bruits entre deux tops ou asynchrone (sans)

Bascules RS (1)Bascules RS (1)

� Circuit le plus simple

� une entrée S (Set – mise à un) et une sortie R (Reset – remise à0) qui permettent de changer l’état de la bascule� bascule asynchrone : pas d’horloge

?0110Q

InterditEffacement

Mise à 1Q=Q-Q=Q-

X01X

X10Q-

11

100000SR

))((

)).((

).(

)..(

...

−++=

−+=

−+=

−+=

−+=

QSRQ

QSRQ

QSRQQSSRQ

QSRSRQ

Mise à 1 et mise à 0

Bascules RS (2)Bascules RS (2)

� Effet mémoire représenté par le retour des sorties

� Bascules RS fréquemment utilisées dans les circuits anti-rebond.

?0110Q

InterditEffacement

Mise à 1Q=Q-Q=Q-

X01X

X10Q-

11

100000SR

))(()).((

).()..(

...

−++=−+=

−+=−+=

−+=

QRSQRSQ

QRSQRRSQ

QSRSRQ

Page 28: Plan Historique : inventions (1) - demay.iut.lr.free.frdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · Programmation en langage machine Registres d’indexation

Bascules RSC ou RSHBascules RSC ou RSH

� Bascule RS asynchrone : deux problèmes

� sensibilité aux bruits parasites (prise en compte des entrées à tout moment)� synchronisation (quand peut-on prendre les données)

� Solution : R et S pris en compte à des instants déterminés àl’aide d’une horloge (période plus grande que le temps de stabilisation)

Q-?01Q-Q

111X

010S

X0

110101RC

Bascules DHBascules DH

� Pour supprimer l’état indéterminé (Horloge ou Clock)

� on utilise un signal D qui va être mémorisé dans la bascule RS� D permet de fabriquer deux signaux R et S (différents de 11)� H : signal d’horloge permet de mémoriser le signal dans une plage de temps fixée (quand H vaut 1)

DHSDHR

..

==

0110Q

R=1;Q=0S=1;Q=1

Q=Q-Q=Q-

X01X10Q-

11X0X0DH

Bascules DH sur frontBascules DH sur front

� On mémorise à un instant précis

� front descendant : signal d’horloge passe de 1 à 0� fonctionnement de bascule synchrone

� Signal d’horloge = 1 : D est stocké dans la 1ère bascule

� Passage à 0 : le signal issu de la 1ère bascule est stockée dans la 2ème

Bascules D avec validationBascules D avec validation

� Branchement de plusieurs bascules sur un bus de données

� attention : une seule sortie validée à un instant donnée� on ajoute, en sortie de bascule, un interrupteur commandé par un signal de validation� la sortie de bascule est reliée à l’extérieur si Val = 1

NC01Q-Q

XX001XD

↓1↓1X1HVal

Page 29: Plan Historique : inventions (1) - demay.iut.lr.free.frdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · Programmation en langage machine Registres d’indexation

Bascules complètesBascules complètes

� Elles possèdent à la fois des entrées

� asynchrones : PRESET (=0 mise à 1) et CLEAR (=0 mise à 0)� synchrones : changement de sortie qu’à des moments précis (H,D)

�Elles constituent les mémoires statiques de l’ordinateur

110XX1001XX1?00XX1

X

111

PRESET

X

111

CLEAR

NC

01Q-Q

XX0

01XD

↓1↓1X1HVal

RegistresRegistres

� Application des bascules : utilisées pour leurs effets mémoire, chacune permet de stocker un bit

� Registres

� parallèles synchrones (bascules DH sur front montant)� parallèles asynchrones (PRESET et CLEAR)� Série (bascules connectées en séries) : pour transmettre des informations n bit sur un seul fil : modem, imprimante série…

� compteurs binaires

� Décalage

� rotation…

Registres : exempleRegistres : exemple

// synchrone// synchrone

// asynchrone// asynchrone

sériesérie

Registres : repérageRegistres : repérage

� Dans un microprocesseur les données et le résultat d’une opération UAL sont stockés dans les registres (2 ports d’entrée et 1 port de sortie)

� un registre est repéré par un numéro� pour la lecture on a besoin de deux multiplexeurs à 2n entrées

Page 30: Plan Historique : inventions (1) - demay.iut.lr.free.frdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · Programmation en langage machine Registres d’indexation

Mémoire SRAMMémoire SRAM

� SRAM (Static Random Access Memory)

� composée d’un ensemble de 2n lignes de données de m bits� signal Lecture(0)/Écriture(1) en mémoire� un décodeur permet de valider une ligne de bascules (un registre)

� SRAM : 1 bit = 1 bascule = 2 portes NOR = 4 transistors

� mémoire très rapide ≠ DRAM = 1 transistor + 1 condensateur qui se décharge vite et qui doit être périodiquement rechargé (Dynamic)� DRAM moins rapide que SRAM car on ne peut pas faire d’accès pendant le temps de rechargement mais moins chère.

� SRAM : registres processeur, mémoire cache� DRAM : mémoire centrale

PlanPlan

Algèbre de BooleAlgèbre de Boole

Circuits combinatoiresCircuits combinatoires

Circuits séquentiels : basculesCircuits séquentiels : bascules

Application des basculesApplication des bascules

UALUAL

ÉlectroniqueÉlectronique

Multiplieur V1 (1)Multiplieur V1 (1)

� Multiplication simple : multiplication, décalage, addition

� 9*5=1001*0101=1001+00000+100100+0000000=101101=45� Algorithme :

Pour i de 1 à Taille des donnéesSi (bit 0 de n1 = 1) alors

produit = produit + n2FinsiDécaler à gauche n2Décaler à droite n1

101101…01001000001001+100100=101101

10011001

Produit

11001001010010

1011001MultiplicateurMultiplicande

Multiplieur V1 (2)Multiplieur V1 (2)

� Si n1 et n2 sont codés sur 32 bits, on a besoin de :

� un registre 64 bits pour décaler n2� un registre 32 bits pour n1� une UAL 64 bits pour le calcul� un registre 64 bits pour stocker le résultat

Page 31: Plan Historique : inventions (1) - demay.iut.lr.free.frdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · Programmation en langage machine Registres d’indexation

Multiplieur V2 (1)Multiplieur V2 (1)

� Pour limiter le matériel :� sur les 64 bits du registre contenant n2 : 32 utilisés� Algorithme :Pour i de 1 à Taille des données

Si (bit 0 de n1 = 1) alors32 bits MSB du produit=32 bits MSB du produit+n2

FinsiDécaler à droite produitDécaler à droite n1

Multiplieur V2 (2)Multiplieur V2 (2)

À la fin de la 32ème itération…000101101

32 bits MSB+1001=1011…0101101000000000000…

32 bits MSB+0000=0100…00100100000000000…

32 bits MSB+1001=1001…010010000000…

Produit

11001

101001

1011001

MultiplicateurMultiplicande

� on a besoin de :

� deux registres 32 bits pour n1 et n2 � une UAL 32 bits pour le calcul� un registre 64 bits pour stocker le résultat

Multiplieur V3 (1)Multiplieur V3 (1)

� Dans le résultat : les 32 bits de poids faible ne sont pas utilisés au début : on peut y placer n1 décalé en // au produit

� Algorithme :Pour i de 1 à Taille des données

Si (bit 0 de n1 = 1) alors32 bits MSB du produit=32 bits MSB du

produit+n2

FinsiDécaler à droite produitDécaler à droite n1

�on a besoin de :

� un registre 32 bits pour décaler n2 � une UAL 32 bits pour le calcul� un registre 64 bits pour stocker le résultat et n1

Multiplieur V3 (2)Multiplieur V3 (2)

À la fin de la 32ème itération00…001001101

32 bits LSB 01000….000132 bits MSB+1001=1011

…01011010000…001

32 bits LSB 1000….0001032 bits MSB+0000=0100

…0010010000…001

32 bits LSB 000000….010132 bits MSB+1001=1001

…010010000…0010

Produit

1001

1001

1001

Multiplicande

Page 32: Plan Historique : inventions (1) - demay.iut.lr.free.frdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · Programmation en langage machine Registres d’indexation

Additionneur de réels (1)Additionneur de réels (1)

� Pour réaliser l'addition de n1 + n2 on utilise l'algorithme suivant:

Si (exposant n1 > exposant n2)alors décaler la mantisse de n2 à droite de

(exposant n1 - exposant n2) rang(s)sinon décaler la mantisse de n1 à droite de

(exposant n2 - exposant n1) rang(s)FinsiAdditionner les mantisses de n1 et n2Si retenue sortante de l'addition = 1

alors ajouter 1 à l'exposant et décaler la mantissed'un rang à droiteFinSi

� Remarque : Au niveau des décalages de la mantisse, ce sont les bits de la mantisse qui sont décalés à droite, ce qui correspond à un décalage à gauche de la virgule.

Additionneur de réels (2)Additionneur de réels (2)

Additionneur de réels : exempleAdditionneur de réels : exemple

� Exemple 1

� n1 = 2,5 = 1,01 l'exposant = 128 et la mantisse normalisée = 01� n2 = 0,25 = 1,0 l'exposant = 125 et la mantisse normalisée = 1

Lors de l'addition l'exposant de n1 > exposant de n2, alors la mantisse et le bit de normalisation de n2 sont décalés à droite de 128-125 = 3 rangs.

� n1 = 1,01 (1.25 21) et maintenant � n2 = 0,001 (0,125 21)� soit au total 1,011 (1,375 21) soit 2,75, il n'y a pas de changement de l'exposant à faire dans ce cas.

Additionneur de réels : exempleAdditionneur de réels : exemple

� Exemple 2

� n1 = 2,5 = 1,01 l'exposant = 128 et la mantisse normalisée = 01� n2 = 2,5 = 1,01 l'exposant = 128 et la mantisse normalisée =01

lors de l'addition l'exposant de n1 = exposant de n2, alors la mantisse et le bit de normalisation de n2 sont décalés à droite de 0 rang.

� n1 = 1,01 et maintenant � n2 = 1,01 soit au total 10,1. � Comme il y génération d'une retenue, il faut ajouter 1 à l'exposant (qui vaut 2 pour avoir un chiffre avant la virgule et décaler la mantisse de 1 rang à gauche (1,01 x 22 = 5)

Page 33: Plan Historique : inventions (1) - demay.iut.lr.free.frdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · Programmation en langage machine Registres d’indexation

Langage machine : assembleur 8086

Architectures des ordinateursCours 4

PlanPlan

Architecture d’un processeurArchitecture d’un processeur

Processeur 8086Processeur 8086

Pile et ProcéduresPile et Procédures

Systèmes d’exploitation et appels systèmesSystèmes d’exploitation et appels systèmes

AssembleurAssembleur

UAL : RappelUAL : Rappel

� Unité chargée

� Des opérations arithmétiques :� ADD (+), SUB (-), MUL (*), DIV (:), INC (+ 1), DEC (- 1)

� Des opérations logiques :� AND, OR, XOR, NOT, CMP� LSL, LSR, ASR (décalages)

Architecture de Architecture de Von NeumanVon Neuman

Page 34: Plan Historique : inventions (1) - demay.iut.lr.free.frdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · Programmation en langage machine Registres d’indexation

Chemin des donnéesChemin des données Les composantsLes composants

� Registres

� Adresse, Donnée� INST, IP, SP , constantes (0, 1, ...), Registres A, B, C, …� Registres tampons (TampA, TampB)� Registre des drapeaux de l'UAL (Flags)

� 2 Bus

� Signaux de commande

� Bus 1 : entrée (RO), sortie (AI, TA, TB)� UAL : M (sélection de Donnée ou TampA), C (choix de l'opération), FI (mise à jour des Flags)� Bus 2 : sortie (DI I, RI)� Lecture/ Écriture : DI E , DO

SéquencementSéquencement des actionsdes actions

Exemple : Reg A ← Reg A + Reg B Signaux

Actions :

Transfert (Bus 1) Reg A →Tamp A RO10 , TATransfert (Bus 1) Reg B → Tamp B RO11 , TBChoix UAL (C= 100, M= 0, Flags) C 2C1C 0 ,M, FITransfert (Bus 2) UAL → Reg A RI10

Une micro- instruction = ensemble des actions faisant fonctionner une fois le chemin de données

μ- instruction

μ- instruction = 5 sous- cycles:

1. Transfert n° 1 par le Bus 12. Transfert n° 2 par le Bus 13. Opération UAL4. Transfert résultat par le Bus 2 (+ observation des FLAGS)5. Accès à la mémoire (READ / WRITE)

Page 35: Plan Historique : inventions (1) - demay.iut.lr.free.frdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · Programmation en langage machine Registres d’indexation

μ- programmes (1)

1. Faire l’addition de 2 registres et mettre le résultat dans l’un des deuxex : IP ← IP + Reg1

10: TampA ← IP ; TampB ← Reg1 ; UAL ← TampA+ TampB ; IP ← UAL;(signaux: RO1,TA ; RO4,TB ; C= 100 , M= 0 , FI ; RI1 )

2. Faire des sauts conditionnels :

Conditions possibles = FLAGS en sortie de l ’UAL (Bus 2)ex : Si RegA= 0 aller en 30

10: TampA ← RegA ; TampB . ← Reg0 ; UAL . ← TampA+ TampB; on ZF jmp 30 ;(signaux: RO10,TA ; RO3,TB ; C= 100 , M= 0 , FI ; )

Il faut faire une opération pour calculer ZF mais UAL ← TampA n ’en est pas une

μ- programmes (2)

3. Envoyer le contenu d’une case mémoire d’adresse XX dans un registre : (Hypothèse: l’adresse XX est dans un autre registre)ex : RegA ←←←← [RegB]

– il faut commencer par mettre RegB dans Adresse et déclencher une opération de lecture (Un accès à la mémoire (READ / WRITE) prend 2 cycles)10: Adresse ← RegB ; ; ; ; READ(signaux: AI , TB ; ; ; ; DIE )11: ; ; ; ; READ

– la valeur est ensuite disponible dans Donnée . Pour l ’envoyer dans un autre registre, il faut passer par l ’UAL

12: ; ;UAL ← Donnée ; RegA ← UAL ;(signaux: ; ; C= 001, M= 1 ; RI10 )

Optimisation

� Occuper les bus le + possible :ex : RegA ← [RegB]

10: Adresse ← RegB ; ; ; ; READ11: ; ; ; ; READ12: ; ; UAL ← Donnée ; RegA ← UAL ;

IP ← IP + Reg1

13: TampA ← IP ; TampB ← Reg1; UAL ← TampA+ TampB; IP ← UAL;

Ici, on peut faire les 2 opérations en même temps

10: Adresse ← RegB ; ; ; ; READ11: TampA ← IP ; TampB ← Reg1 ; UAL ← TampA+ TampB ; IP ← UAL ; READ12: ; ; UAL ← Donnée ; RegA ← UAL ;

L’unité de commande

�L’unité de commande exécute les opérations suivantes :

� Lecture du code de l’opération� Lecture des arguments� Traitement� Sauvegarde du résultat� Passage à l’instruction suivante

� μ-programme de lecture du code de l’opération (l’opération àeffectuer est en mémoire à l’adresse IP)

- lecture de l ’opération0: Adresse ←IP ; ; ; ; READ- on en profite pour passer à la case mémoire suivante1: TampA ← IP ; TampB ← Reg1 ; UAL ← TampA+ TampB ; IP ← UAL ; READ- exécution du μ -programme correspondant à l’opération2: ; ; UAL ← Donnée ; INST ← UAL, jmp μ -Prog[ INST];

Page 36: Plan Historique : inventions (1) - demay.iut.lr.free.frdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · Programmation en langage machine Registres d’indexation

Exemple 1

Add RegA, XX (RegA ← RegA + [XX])

1. L ’UC lit le « codop » de Add RegA dans la mémoire et déclenche le μ-programme correspondant (0: 1: 2:)

2. Exécution du μ -programme[ Add RegA, XX]

� 2. 1 : Lecture de l’argument XX en mémoire� lecture de la valeur XX en mémoire (INST ← [IP])� lecture de la valeur située à l’adresse XX (Donnée ← [INST])

� 2.2 : Traitement de l’opération (RegA ← RegA + Donnée)� 2.3 : Sauvegarde du résultat� 2.4 : Passage à l ’instruction suivante (IP ← IP + 1)

Exemple 1: code

- lecture de l ’opération0: Adresse ← IP ; ; ; ; READ- on en profite pour passer à la case mémoire suivante1: TampA ← IP ; TampB ← Reg1 ; UAL ← TampA+ TampB ; IP ← UAL ; READ- exécution du μ -programme correspondant à l’opération2: ; ; UAL ← Donnée ; INST ← UAL, jmp μ -Prog[ INST];

- lecture de la valeur de XX en mémoire20: Adresse ← IP ; ; ; ; READ21: TampA ← IP ;TampB ← Reg1 ; UAL ← TampA+ TampB ; IP ← UAL ; READ22: ; ; UAL ← Donnée ; INST ← UAL ;

- lecture de la valeur située à l’adresse XX23: Adresse ← INST ; ; ; ; READ24: ; ; ; ; READ

Traitement de l’opération (RegA ← RegA + Donnée)25: ; TampP← RegA ;UAL ← Donnée+TampB ;RegA ← UAL, jmp 0

;

Exemple 2

JZ xx (va en IP+ xx+ 1 si le résultat de l ’UAL est nul)

1. L ’UC lit le « codop » de JZ dans la mémoire et déclenche le μ-programme correspondant (0: 1: 2:)

2. Exécution de μ -programme[ JZ XX]

� 2. 1 : Lecture de l ’argument XX en mémoire (Donnée ← [IP])� 2. 2 : Traitement de l ’opération (Test sur ZF, IP ← IP+ 1+ xx)� (2.3 : Sauvegarde du résultat)� 2. 4 : Passage à l ’instruction suivante si la condition n ’est pas

réalisée

Exemple 2 : code

1. L ’UC lit le « codop » de JZ dans la mémoire et déclenche le μ-programme correspondant (0: 1: 2:)

0: Adresse ← IP ; ; ; ; READ1: TampA ← IP ; TampB ← Reg1 ; UAL ← TampA+ TampB ; IP ← UAL ; READ2: ; ; UAL ← Donnée ; INST ← UAL, jmp μ -Prog[ INST];

2. Exécution de μ -programme[ JZ XX]� 2. 1 : Lecture de l ’argument XX en mémoire (Donnée ← [IP])� 2. 2 : Traitement de l ’opération (Test sur ZF, IP ← IP+ 1+ xx)� (2.3 : Sauvegarde du résultat)� 2. 4 : Passage à l ’instruction suivante si la condition n ’est pas

réalisée

30: Adresse ← IP ; ; ; on ZF jmp 32 ; READ31: TampA ← IP ; TampB ← Reg1 ; UAL ← TampA+ TampB ; IP ← UAL, jmp 0 ;32: TampA ← IP ; TampB ← Reg1 ; UAL ← TampA+ TampB ; IP ← UAL ; READ33: ; TampB ← IP ; UAL ← Donnée+ TampB ; IP ← UAL, jmp 0 ;

Page 37: Plan Historique : inventions (1) - demay.iut.lr.free.frdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · Programmation en langage machine Registres d’indexation

Code opération : assembleur

Programme en langage machine 80486 implanté à l’adresse mémoire 0100H

A1 01 10 03 06 01 12 A3 01 14

� Ce programme additionne le contenu de deux cases mémoire et range le résultat dans une troisième

� Voici une transcription langage symbolique du programme complet.L'adresse de début de chaque instruction est indiquée à gauche (en hexadécimal).

Adresse Contenu MP Langage Symbolique Explication en francais

0100 A1 01 10 MOV AX, [0110] Charger AX avec le contenude 0110.

0103 03 06 01 12 ADD AX, [0112] Ajouter le contenu de 0112a AX (resultat dans AX).

0107 A3 01 14 MOV [0114],AX Ranger AX en 0114.

Code opération : assembleur

Symbole Code Op. Octets

MOV AX, valeur B8 3 AX ← valeur

MOV AX, [ adr ] A1 3 AX ← contenu de l'adresse adr.

MOV [ adr ], AX A3 3 range AX à l'adresse adr.

ADD AX, valeur 05 3 AX ← AX + valeur

ADD AX, [ adr ] 03 06 4 AX ← AX + contenu de adr.

SUB AX, valeur 2D 3 AX ← AX - valeur

SUB AX, [ adr ] 2B 06 4 AX ← AX - contenu de adr.

SHR AX, 1 D1 E8 2 décale AX à droite.

� On utilise des programmes spéciaux, appelés assembleurs,pour traduire automatiquement le langage symbolique en code machine.

Fonctionnement de l’UC

� L ’UC possède un registre spécial pour stocker la μ-instruction en cours

Autre représentation (1)

Page 38: Plan Historique : inventions (1) - demay.iut.lr.free.frdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · Programmation en langage machine Registres d’indexation

Autre représentation (2) Fonctionnement de l’UC

� A partir du registre de µ-instruction, il faut générer les signaux de commande de l’UAL dans un ordre précis …

Séquencement des opérations

� Chaque partie de μ-INST est reliée à un DCD (ou un DMX) qui déclenchera le bon signal de commande, au bon moment :

� Ex : R3 = registre destination de la sortie de l’UAL par le Bus 2 (DI I , RI 0 … RI 15 )

Signal d’horloge CK

� CK i = Sous- cycles de CK correspondants aux sous-cycles des μ-instructions

� Une fréquence d'horloge d'un microprocesseur à 500MHz donne des cycles élémentaires de 2 nanosecondes.

Page 39: Plan Historique : inventions (1) - demay.iut.lr.free.frdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · Programmation en langage machine Registres d’indexation

Schéma de l’unité de commande Schéma de l’unité de commande

� Lorsqu’une instruction arrive dans RI, son Codop est envoyédans une table de conversion qui indique l’adresse du μ-Programme correspondant.

� Ce μ -Programme est exécuté ligne par ligne : chaque μ -instruction est envoyée dans le registre de μ -instruction oùsont générés séquentiellement les signaux de commande de l ’UAL

Schéma MMI, RMI et MCO

� MMI ou mémoire de micro-instructions = élément central de la logique de contrôle

� RMI (son registre associé) contient une micro instruction (tps t)

� La MMI, généralement une mémoire morte, contient toutes les micro-instructions qui sont nécessaires au processeur pour exécuter les instructions du langage machine.

� MCO, ou compteur ordinal du microprogramme : Il s'agit d'un registre qui contient l'adresse de la prochaine micro instruction à exécuter c'est-à-dire celle qui doit être placée dans le RMI, seul lieu où une micro instruction peut agir sur le circuit de données.

Page 40: Plan Historique : inventions (1) - demay.iut.lr.free.frdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · Programmation en langage machine Registres d’indexation

Niveaux de programmation Technologies de processeurs

CISC (Intel 8086, Pentium…, Motorola)

Complex Instruction Set Computer : calculateur à jeu d'instructions complexe. Caractérise les microprocesseurs qui disposent d'un jeu étendu d'instructions avec de nombreux modes d'adressage. La plupart ne sert que dans des cas relativement rares. Ces instructions complexes nécessitent d'être micro-codées et s'exécutent donc en plusieurs cycles.

RISC : IBM/Motorola (PowerPC),SUN (Supersparc), DIGITAL (Alpha)

Reduced Instruction Set Computer : calculateur à jeu d'instructions réduit. En utilisateur un jeu d'instructions plus réduit que la technologie CISC, les processeurs RISC peuvent disposer d'un jeu d'instructions entièrement cablé (donc sans microcode) ce qui permet une exécution des instructions en un cycle.

La mémoire cache

� Depuis pas mal d'années, les circuits de mémoire ne sont plus assez rapides pour suivre la cadence des microprocesseurs

� on intercale entre le microprocesseur et la mémoire RAM, une autre mémoire allant à la même vitesse que le microprocesseur

� celle-ci est de taille assez réduite car elle coûte bien plus cher que la mémoire RAM standard

� souvent, il y a deux caches, un pour le programme et un pour lesdonnées

� Augmentation de la taille des bus d’adresses et de données

� Le micro-processeur est alimenté plus vite� Bus d’adresse à 32 ou 64 bits = architecture à 32 ou 64 bits

Le cache

processeur cache

80386 0

80486 1 cache interne 8Ko

pentium 1 cache interne donnée 8 Ko et 1 cache interne instructions 8 Ko

pentium 2 1 cache interne donnée 16 Ko et 1 cache interne instructions 16 Ko

1 cache externe 256 Ko commun au 2 caches internes

pentium 3 1 cache interne donnée 16 Ko et 1 cache interne instructions 16 Ko

1 cache externe 256 Ko commun au 2 caches internes

Page 41: Plan Historique : inventions (1) - demay.iut.lr.free.frdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · Programmation en langage machine Registres d’indexation

Le Pipeline

� Un pipeline est composé de plusieurs étages

� chacun de ces étages est dédié à un traitement particulier

� Dans un processeur sans pipeline, les instructions sont exécutées les unes après les autres

� il ne rentrera une nouvelle instruction dans le pipeline que lorsquel'instruction précédente est passée par tous les étages et est terminée� le processeur n'utilise qu'un seul étage à la fois, donc les autres

étages sont inactifs.

� Avec un processeur à 5 étages sans pipeline

Le Pilpeline

� But : utiliser tous les étages en même temps

� lorsqu'une instruction est dans un étage, 4 autres instructions sont en cours de traitement.

� grâce au débit de la mémoire cache de niveau 1 les instructions peuvent s'enchaîner suffisamment vite pour que le pipeline soit constamment alimenté.

Processeurs superscalaires

� Un microprocesseur est de type superscalaire quand il intègre plus d'une unité entière (ALU) en con cœur.

� les deux unités sont indépendantes et fonctionnent en parallèle,� chacune se charge d'exécuter une instruction sur deux.� Il est ainsi possible d'exécuter deux instructions par cycle d'horloge.

Coprocesseurs mathématiques

� Jusqu'au 386, celui-ci était parfois assisté par un coprocesseur mathématique optionnel permettant d'accroître les capacités de calcul en virgule flottante (très

� utilisé par les tableurs et les logiciels de traitement graphique).� Aujourd’hui, ce coprocesseur fait partie intégrante du CPU.

Page 42: Plan Historique : inventions (1) - demay.iut.lr.free.frdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · Programmation en langage machine Registres d’indexation

Efficacité architecturale

� Croissance du nombre d’instructions exécutées par cycle d’horloge

Processeur Nb d'instructions par cycle d'horloge

i386 1/8i486 1/2

Pentium 1Pentium Pro 1,5

P4 2,5

PlanPlan

Architecture d’un processeurArchitecture d’un processeur

Processeur 8086Processeur 8086

Pile et ProcéduresPile et Procédures

Systèmes d’exploitation et appels systèmesSystèmes d’exploitation et appels systèmes

AssembleurAssembleur

Processeurs 80x86

� Micro-processeurs 80x86 équipent les PC et compatibles

� Premiers PC (début 80) = 8086, micro-processeur 16 bits� Puis 80286, 80386, 80486, Pentium…� Augmentation de la fréquence d’horloge, de la largeur des bus

d’adresses et de données� Ajout de nouvelles instructions et de registres

� Compatibilité ascendante

� Un programme écrit dans le langage machine du 286 peut s’exécuter sur un 386 (l’inverse est faux)

� En TP on utilisera un assembleur 8086 et on exécutera le programme sur les Pentium de l’IUT

Caractéristiques du 8086

� Bus de données : 16 bits� Bus d’adresse : 20 bits� Registres : 16 bits

� 4 accumulateurs 16 bits

� Accumulateur (AX)� Base (BX)� Counter (CX)� Accumulateur auxiliaire (DX)

� Registres accessibles sous forme de 2 info 8 bits

� AX se décompose en AH (poids fort) et AL (poids faible de AX)…

Page 43: Plan Historique : inventions (1) - demay.iut.lr.free.frdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · Programmation en langage machine Registres d’indexation

Caractéristiques du 8086

� 4 accumulateurs 16 bits

� AX, BX, CX ,DX

� Registres d’index :

� Pointeur d’instruction (IP)� Index source ou destination(SI, DI)� Pointeur de Pile ou de base (SP, BP)

� 3+1 registres segment :

� Segment de code (CS) : contient le prog en cours d’exécution� Segment data (DS) : contient les données du programme � Segment stack (SS) : contient des données particulières� Extra Segment (ES)

Segmentation de la mémoire

� Largeur du bus d’adresse = 20 bits

� Possibilité d’adressage mémoire = 220 = 1 Mo

� Le pointeur d’instruction fait 16 bits

� Possibilité d’adresser 216 = 64 Ko (ce qui ne couvre pas la mémoire)

� On utilise deux registres pour indiquer une adresse au processeur

� Chaque segment débute à l'endroit spécifié par un registre spécial nommé registre segment.

� Le déplacement permet de trouver une information à l'intérieur du segment.

� CS:IP : lecture du code d’une instruction (CS registre segment et IP déplacement)

� DS : accès aux données (MOV AX,[1045] = lecture du mot mémoire d’adresse DS:1045H)

Segmentation de la mémoire

� Registres de déplacement = sélectionner une information dans un segment.

� Dans le segment de code CS : le compteur de programme IP joue ce rôle. CS:IP permet d'accéder à une information dans le segment de code.

� Dans les segments de DS : les deux index SI ou DI jouent ce rôle. Le déplacement peut être aussi une constante. DS:SI ou DS:DI permettent d'accéder à une information dans le segment de données.

� Dans le segment de pile SS le registre SP (stack pointer) et BP (base pointer) jouent ce rôle. SS:SP ou SS:BP permettent d'accéder à une information dans le segment de pile.

Jeu d’instruction (1)

� Instruction d’affectation : MOV(Transfert CPU Mémoire)

� Instructions arithmétiques : INC (incrémentation)(Opération Acc / Donnée) : DEC (décrementation)

: ADD (addition): SUB (soustraction): CMP (soustraction sans sauvegarde): NEG

� Instructions logiques : NOT, OR, XOR: AND, TEST (= AND sans sauvegarde): SHL (SHR), SAL (SAR): ROL (ROR), RCL (RCR)

Page 44: Plan Historique : inventions (1) - demay.iut.lr.free.frdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · Programmation en langage machine Registres d’indexation

Jeu d’instruction (2)

� Branchement : JMP� Branchements conditionnels : JE/ JZ (JNE/ JNZ) : Jump if

zero: JO (JNO) : Jump if overflow: JS (JNS) : Jump if sign

� Comparaison de valeurs

CMP AX, BX suivi d ’un test :

(entiers naturels) (complément à 2)AX > BX ? JA ( >= JAE) JG (JGE)AX < BX ? JB (JBE) JL (JLE)

Branchements

� Le processeur exécute une instruction en mémoire puis passe àcelle qui suit en mémoire : séquentiel

� Besoin de faire répéter au processeur une suite d’instructions� Besoin de déclencher une action qui dépend d’un test

� Utilisation d’une instruction de branchement ou saut

� On indique au processeur l’adresse de la prochaine instruction

� On distingue deux catégories de branchements

� le saut est toujours effectué (sauts inconditionnels)� il est effectué seulement si une condition est vérifiée (sauts

conditionnels).

Rappel sur le registre IP

� Le registre IP du processeur conserve l'adresse de la prochaine instruction à exécuter

� Le processeur effectue les actions suivantes pour chaque instruction :

1. lire et décoder l'instruction à l'adresse IP; 2. IP ←IP + taille de l'instruction;3. exécuter l'instruction.

� Pour modifier le déroulement normal d'un programme

� l'exécution de l'instruction doit modifier la valeur de IP� c'est ce que font les instructions de branchement.

Sauts inconditionnels

� Principale instruction de saut inconditionnel = JMP

� L'opérande de JMP est un déplacement, c'est à dire une valeur qui va être ajoutée à IP. L'action effectuée par JMP est :

� IP = IP + déplacement

� Le déplacement est un entier relatif sur codée 8 bits. La valeur du déplacement est :

� déplacement = adr. instruction visée - adr. instruction suivante

Page 45: Plan Historique : inventions (1) - demay.iut.lr.free.frdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · Programmation en langage machine Registres d’indexation

Sauts inconditionnels : exemple

� Exemple : le programme suivant écrit indéfiniment la valeur 0 àl'adresse 0140H.

� La première instruction est implantée à l'adresse 100H.

Adresse Contenu MP Langage Symbolique Explication en français

0100 B8 00 00 MOV AX, 0 met AX a zéro0103 A3 01 40 MOV [140], AX écrit à l'adresse 140

0106 EB FC JMP 0103 branche en 1030107 xxx -> instruction jamais exécutée

� Le déplacement est ici égal à FCH, c'est à dire -4 (=103H-107H).

Indicateurs

� Les instructions de branchement conditionnels utilisent les indicateurs,

� bits spéciaux positionnés par l'UAL après certaines opérations. � nous étudierons ici les indicateurs nommés ZF, CF, SF et OF.

ZF : Zero Flag

Cet indicateur est mis à 1 lorsque le résultat de la dernière opération est zéro. Sinon, ZF est positionné à 0.

CF : Carry Flag

C'est l'indicateur de report (retenue). Il est positionné par les instructions ADD, SUB et CMP (entiers naturels).CF = 1 s'il y a une retenue

Indicateurs (suite)

� SF : Sign Flag

SF est positionné à 1 si le bit de poids fort du résultat d'une addition ou soustraction est 1; sinon SF=0. SF est utile lorsque l'on manipule des entiers relatifs, car le bit de poids fort donne alors le signe du résultat.

� OF : Overflow Flag (Indicateur de débordement)

OF=1 si le résultat d'une addition ou soustraction donne un nombre qui n'est pas codable en relatif dans l'accumulateur (par exemple si l'addition de 2 nombres positifs donne un codage négatif).

� CMP = SUB, mais ne stocke pas le résultat de la soustraction (positionner les indicateurs)

� CMP AX, 5 : ZF = 1 si AX contient 5, et ZF = 0 si AX ≠ 5.

Sauts conditionnels : exemples

JE Jump if Equal (ou JZ)saut si ZF = 1;

JNE Jump if Not Equal (ou JNZ)saut si ZF = 0;

JG Jump if Greatersaut si ZF = 0 et SF = OF;

JLE Jump if Lower or Equalsaut si ZF=1 ou SF = OF;

JS (JNS) Jump if Signsaut si SF=1;

JA Jump if Abovesaut si CF=0 et ZF=0;

JBE Jump if Below or Equalsaut si CF=1 ou ZF=1.

JB Jump if Belowsaut si CF=1.

JO (JNO) Jump if Overflowsaut si OF=1…

Page 46: Plan Historique : inventions (1) - demay.iut.lr.free.frdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · Programmation en langage machine Registres d’indexation

Décalage et rotations

� Décalage vers la gauche ou vers la droite les bits de l'accumulateur.

� opérations utilisées pour décoder bit à bit des données� ou pour diviser ou multiplier rapidement par une puissance de 2. � En effet : décaler AX de n bits vers la gauche revient à le multiplier

par 2n

� De même, un décalage vers la droite revient à diviser par 2n.

� Ces opérations peuvent opérer sur les registres AX ou BX (16 bits) ou sur les registres de 8 bits AH, AL, BH et BL.

� SHL, SHR, ROL, ROR, RCL, RCR…

Décalage

SHL registre, 1 (Shift Left)

Décale les bits du registre d'une position vers la gauche. Le bit de gauche est transféré dans l'indicateur CF. Les bits introduits à droite sont à zéro.

SHR registre, 1 (Shift Right)

Comme SHL mais vers la droite. Le bit de droite est transféré dans CF. SHL et SHR peuvent être utilisé pour multiplier/diviser des entiers

naturels (et non des relatifs car le bit de signe est perdu)

Rotations

ROL registre, 1 (Rotate Left)

Rotation vers la gauche : le bit de poids fort passe à droite, et est aussi copié dans CF. Les autres bits sont décalés d'une position.

ROR registre, 1 (Rotate Right)

Comme ROL, mais à droite.

Décalage et rotations

RCL registre, 1 (Rotate Carry Left)

Rotation vers la gauche en passant par l'indicateur CF. CF prend la place du bit de poids faible; le bit de poids fort part dans CF.

RCR registre, 1 (Rotate Carry Right)

Comme RCL, mais vers la droite.

RCL et RCR sont utiles pour lire bit à bit le contenu d'un registre7.

Page 47: Plan Historique : inventions (1) - demay.iut.lr.free.frdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · Programmation en langage machine Registres d’indexation

Opérations logiques

� 3 opérateurs logiques : ET, OU et OU exclusif.

� jamais propagation de retenue lors de ces opérations (chaque bit du résultat est calculé indépendamment des autres)

� Opérations sont de la forme : OR destination, source

� destination : registre ou emplacement mémoire (adresse) où doit être placé le résultat.

� source : constante (adressage immédiat), registre (adressage implicite), ou adresse (adressage direct).

OR AX, FF00 ; AX <- AX ou FFOOOR AX, BX ; AX <- AX ou BXOR AX, [1492] ; AX <- AX ou [1492]

Opérations logiques

� OR destination, source (OU : 1 ou 0 =1 ; 1 ou 1 = 1…)

� OR est souvent utilisé pour forcer certains bits à 1. Par exemple après OR AX, FF00, l'octet de poids fort de AX vaut FF, tandis que l'octet de poids faible est inchangé.

� AND destination, source (ET : 1 et 1 = 1 …)

� AND est souvent utilisé pour forcer certains bits à 0. Après AND AX, FF00, l'octet de poids faible de AX vaut 00, tandis que l'octet de poids fort est inchangé.

� XOR destination, source (OU EXCLUSIF : 1 xor 1 = 0…)

� XOR est souvent utilisé pour inverser certains bits. Après XOR AX, FFFF, tous les bits de AX sont inversés

Codage

� Les instructions et leurs opérandes (paramètres) sont stockés en mémoire principale

� La taille totale d'une instruction (nombre de bits nécessaires pour la représenter en mémoire) dépend du type d'instruction et aussi du type d'opérande.

� Chaque instruction est toujours codée sur un nombre entier d'octets, afin de faciliter son décodage par le processeur. Une instruction est composée de deux champs :

� le code opération, qui indique au processeur quelle instruction réaliser;

� le champ opérande qui contient la donnée, ou la référence à une donnée en mémoire (son adresse).

Codage

� Selon la manière dont la donnée est spécifiée, c'est à dire selon le mode d'adressage de la donnée, une instruction sera codée par 1, 2, 3 ou 4 octets.

� Nous distinguerons ici quatre modes d'adressage :

� Implicite� immédiat� direct� relatif

Page 48: Plan Historique : inventions (1) - demay.iut.lr.free.frdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · Programmation en langage machine Registres d’indexation

Types d’adressage

� Adressage implicite ou par registre

ADD AX, BXINC AXPas d’accès mémoire pour les opérandes

L'instruction contient seulement le code opération, sur 1 ou 2 octets.

L'instruction porte sur des registres ou spécifie une opération sans opérande

Types d’adressage

� Adressage immédiat

ADD AX, valeur1 accès mémoire pour lire la valeur

Le champ opérande contient la donnée (une valeur constante sur 1 ou 2 octets).

Exemple : ``Ajouter la valeur 5 à AX''. Ici l'opérande 5 est codée sur 2 octets puisque l'opération porte sur un registre 16 bits (AX).

Types d’adressage

� Adressage direct

ADD AX, [adresse]2 accès mémoire : adresse puis valeur

Le champ opérande contient l'adresse de la donnée en mémoire principale sur 2 octets.

Attention : dans le 80x86, les adresses sont toujours manipulées sur 16 bits, quelle que soit la taille réelle du bus.

Exemple : ``Placer dans AX la valeur contenue à l'adresse 130H''.

Types d’adressage

� Adressage relatif ou indexé

ADD AX, [adresse+index]MOV AX, [SI+1]

� 2 accès mémoire

Ce mode d'adressage est utilisé pour certaines instructions de branchement.

Le champ opérande contient un entier relatif codé sur 1 octet, nommédéplacement, qui sera ajouté à la valeur courante de IP.

Page 49: Plan Historique : inventions (1) - demay.iut.lr.free.frdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · Programmation en langage machine Registres d’indexation

PlanPlan

Architecture d’un processeurArchitecture d’un processeur

Processeur 8086Processeur 8086

Pile et ProcéduresPile et Procédures

Systèmes d’exploitation et appels systèmesSystèmes d’exploitation et appels systèmes

AssembleurAssembleur

Code opération : assembleur

Programme en langage machine 80486 implanté à l’adresse mémoire 0100H

A1 01 10 03 06 01 12 A3 01 14

� Ce programme additionne le contenu de deux cases mémoire et range le résultat dans une troisième

� Voici une transcription langage symbolique du programme complet.L'adresse de début de chaque instruction est indiquée à gauche (en hexadécimal).

Adresse Contenu MP Langage Symbolique Explication en francais

0100 A1 01 10 MOV AX, [0110] Charger AX avec le contenude 0110.

0103 03 06 01 12 ADD AX, [0112] Ajouter le contenu de 0112a AX (resultat dans AX).

0107 A3 01 14 MOV [0114],AX Ranger AX en 0114.

Code opération : assembleur

Symbole Code Op. Octets

MOV AX, valeur B8 3 AX ← valeur

MOV AX, [ adr ] A1 3 AX ← contenu de l'adresse adr.

MOV [ adr ], AX A3 3 range AX à l'adresse adr.

ADD AX, valeur 05 3 AX ← AX + valeur

ADD AX, [ adr ] 03 06 4 AX ← AX + contenu de adr.

SUB AX, valeur 2D 3 AX ← AX - valeur

SUB AX, [ adr ] 2B 06 4 AX ← AX - contenu de adr.

SHR AX, 1 D1 E8 2 décale AX à droite.

� On utilise des programmes spéciaux, appelés assembleurs,pour traduire automatiquement le langage symbolique en code machine.

Processus d’assemblage

� 3 phases :1. Saisie du code source avec un éditeur de texte

2. Compilation du code source

3. Édition des liens� permet de lier plusieurs codes objets en un seul

exécutable

� permet d ’inclure des fonctions prédéfinies dans des bibliothèques

Page 50: Plan Historique : inventions (1) - demay.iut.lr.free.frdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · Programmation en langage machine Registres d’indexation

Assembleur : NASMAssembleur : NASM

Val equ 12Var1 db 69Var2 dw 0FFFFhTab resb 100

[BITS 16][ORG 0x0100]

[SEGMENT .text]BEGIN:

jmp START

FIN:mov ax, 0x4C00int 0x21

START:mov [Var1], 3jmp FIN

EnEn--têtetête

� [BITS16] : indique au compilateur qu’on travaille en mode 16 bits (programme DOS)

� [ORG 0x100] : le programme est chargé en mémoire àpartir de l’adresse 0x100h (programme .com)

� [SEGMENT .text] : déclaration du segment dans lequel on travaille, dans un programme .com : 1 seul segment pour le code et les données

� [int 0x20] : Interruption = appel système pour rendre la main au dos

VariablesVariables

DB : Variable 8 bitsDW : Variable 16 bitsEQU : Constante

RESB : Variable 8 bits (tableau)RESW : Variable 16 bits (tableau)

BYTE : Taille d'une variable mémoire 8 bitsWORD : Taille d'une variable mémoire 16 bitsEtiquette : adresse d’une méthode/ branchement

Représentation mémoire : .Représentation mémoire : .comcom

CS, DS, SS Header DOS100h

SP

Programme

Variables

IP

64 Ko

Page 51: Plan Historique : inventions (1) - demay.iut.lr.free.frdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · Programmation en langage machine Registres d’indexation

Fichier .Fichier .comcom

� Un seul segment de 64 Ko pour les données le programme et la pile

� .exe : on peut avoir un segment pour chaque

� Au début du programme

� IP pointe sur l’adresse 100h du segment (header DOS)� CS, DS, SS pointent au début� SP pointe à la fin (tête de pile) : attention que votre pile n’écrase pas votre programme ou vos données

Exemple de programme NASMExemple de programme NASM[BITS 16]

[ORG 0x100]

[SEGMENT .text]

mov AX,0x13

int 0x10

mov AX,0xA000

mov ES,AX

mov DI,6720

boucle:

mov byte [ES:DI],5

add DI,321

cmp DI,12000

jb boucle

int 0x20

PlanPlan

Architecture d’un processeurArchitecture d’un processeur

Processeur 8086Processeur 8086

Pile et ProcéduresPile et Procédures

Systèmes d’exploitation et appels systèmesSystèmes d’exploitation et appels systèmes

AssembleurAssembleur

PilePile

� Structure de « rangement » de données

� définie dans un segment de mémoire particulier (.exe) ou dans le même que le code et les données (.com)� fonctionnement LIFO (Last In, First Out)

� Comment y accéder :

� adresse du dernier élément posé : SS:SP� empiler : PUSH Reg16 (registre 16 bits)� dépiler : POP Reg16 (registre 16 bits)

� La pile augmente vers les adresses faibles

� PUSH : SP ← SP- 2, POP : SP ← SP+ 2

Page 52: Plan Historique : inventions (1) - demay.iut.lr.free.frdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · Programmation en langage machine Registres d’indexation

Pile : exemple d’utilisation (1)Pile : exemple d’utilisation (1)

� PUSH registre

� empile le contenu du registre sur la pile.

� POP registre

� retire la valeur en haut de la pile et la place dans le registres spécifié.

� Exemple : transfert de AX vers BX en passant par la pile.

PUSH AX ; Pile <- AXPOP BX ; BX <- Pile

Note : cet exemple n'est pas très utile, il vaut mieux employer MOV AX, BX.)

Pile : exemple d’utilisation (2)Pile : exemple d’utilisation (2)

� La pile est souvent utilisée pour sauvegarder temporairement le contenu des registres :

;AX et BX contiennent des données a conserverPUSH AXPUSH BXMOV BX, truc ; on utilise AXADD AX, BX ; et BXPOP BX ; récupère l'ancien BXPOP AX ; et l'ancien AX

� On voit que la pile peut conserver plusieurs valeurs.

� La valeur dépilée par POP est la dernière valeur empilée; c'est pourquoi on parle ici de pile LIFO (Last In First Out,Premier Entré Dernier Sorti).

Pile : registres SS et SPPile : registres SS et SP

� Le registre SS (StackSegment) = registre segment qui contient l'adresse du segment de pile courant (16 bits de poids fort de l'adresse). Il est normalement initialisé au début du programme et reste fixé par la suite.

� Le registre SP (Stack Pointer)contient le déplacement du sommet de la pile (16 bits de poids faible de son adresse).

PUSH POP

SP

16 bits

Pile : registres SPPile : registres SP

� L'instruction PUSH effectue les opérations suivantes :

SP ← SP - 2[SP] ← valeur du registre 16 bits.

Notons qu'au début (pile vide), SP pointe ``sous'' la pile

� L'instruction POP effectue le travail inverse :

registre destination ← [SP]SP ← SP + 2

Si la pile est vide, POP va lire une valeur en dehors de l'espace pile, donc imprévisible.

Page 53: Plan Historique : inventions (1) - demay.iut.lr.free.frdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · Programmation en langage machine Registres d’indexation

Pile : registres SPPile : registres SP

16 bits

Emplacementlibre

SPSP-2

PUSH POP

Adresses

Croissantes

Procédures (1)Procédures (1)

� Déclaration d’une procédure :

� nous utiliserons une étiquette ou label pour définir le début et le nom d’une procédure

� Appel de la procédure dans le programme

� CALL NEAR label

...CALL NEAR affiche

affiche :MOV AH,9INT 0x21RETN

Procédures (2)Procédures (2)

� Comment l’unité de traitement arrive-t-elle à retourner au programme principal à la fin de la procédure ?

� Au moment de l’appel de la fonction, l’adresse de l’instruction suivante est sauvegardée dans la pile :

� sauvegarde de IP

� A la fin de la procédure, l ’Unité de Traitement récupère les valeurs sauvegardées pour retourner au programme principal

� RETN = dépilement de IP

Passage de paramètresPassage de paramètres

� 2 méthodes de passage de paramètres :

� par registre� par la pile

� Passage de paramètres par registre :

� les paramètres d’entrée de la procédure sont mis dans des registres avant l’appel de la procédure� les paramètres de sortie sont aussi rangés dans des registres� avantage = rapidité� inconvénients = peu de registres

Page 54: Plan Historique : inventions (1) - demay.iut.lr.free.frdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · Programmation en langage machine Registres d’indexation

Passage par registrePassage par registre

;Procédure

Moyenne :

Add AX, BXSHR AX, 1RETN

;programme principal...

Mov AX, N1Mov BX, N2

Call Near Moyenne

Mov Res, AX

...Retn = dépilement de IP

pour retourner auprogramme principal

Passage par la pile (1)Passage par la pile (1)

� Les paramètres d’entrée sont empilés avant l’appel de la procédure� Les paramètres de sortie sont dépilés par le programme principal

� avantage = « portabilité »� inconvénients = récupération des

paramètres plus « lourde »;Procédure

Moyenne :PUSH BPMov BP, SPMov AX, [BP+4]Add AX, [BP+6]SHR AX, 1Mov [BP+ 6], AXPOP BPRetn 2

;programme...PUSH N1PUSH N2Call Near MoyennePOP Res...

Passage par la pile (2)Passage par la pile (2)

� Évolution de la pile

� A quoi sert BP ?

� BP = référence de la pile au début de la procédure� permet d’avoir une référence fixe pour récupérer les paramètres� ici : [BP+ 4] pour N2 et [BP+ 6] pour N1

Passage par la pile (3)Passage par la pile (3)

� Sauvegarde du résultat et nettoyage de la pile

Page 55: Plan Historique : inventions (1) - demay.iut.lr.free.frdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · Programmation en langage machine Registres d’indexation

Rappels : Registres de segmentRappels : Registres de segment

Nom Taille Fonction

Cs (Code Segment)16 bits Mémorise le segment où se trouve le code en cours d'exécution (ne peut pas être modifié par le programme)

Ds (Data Segment) 16 bits Mémorise le segment où se trouve les données du programme.

Ss (Stack Segment)16 bits Mémorise le segment où se trouve la pile de données du programme

Es (Extra Segment) 16 bits Ce segment peut être utilisé pour faire ce que l'on veut. Par exemple, il peut pointer sur la mémoire écran.

Rappels : Registres de travailRappels : Registres de travail

Nom Taille Fonction

Ax (Accumulateur) 16 bits On l'utilise généralement pour des opérations arithmétiques, telles que MUL (multiplication) ou DIV (division). Ax peut se diviser en deux sous-registres de 8 bits. Ah représente les 8 premiers bits, et Al les 8 derniers.

Bx (Base) 16 bits Bx est utilisé lors de l'accès à une zone mémoire sous forme de tableau, il représente l'indice de ce tableau. Par exemple, on écrira Mov Dx, Es:[Bx]. Bx peut se diviser en deux sous-registres de 8 bits. Bh représente les 8 premiers bits, et Bl les 8 derniers.

Rappels : Registres de travailRappels : Registres de travail

Nom Taille Fonction

Cx (Compteur) 16 bits Lors de l'appel d'instructions comme REP (répéter) ou LOOP (boucle), c'est le registre Cx qui est lu Cx peut se diviser en deux sous-registres de 8 bits. Ch représente les premiers bits, et Cl les 8 derniers.

Dx (Données) 16 bits Ce registre est généralement utilisé pour stocker des données provisoires. Dx peut se diviser en deux sous-registres de 8 bits. Dh représente les 8 premiers bits, et D les 8 derniers.

Rappels : Registres d'offsetRappels : Registres d'offset

(à combiner avec une adresse de segment)

Nom Taille Fonction

Si (Source Index) 16 bits Lors d'opérations sur les chaînes de caractères, comme MOVSB ou SCASB, Ds:[Si] désigne la variable 'source'.

Di (Dest Index) 16 bits Lors d'opérations sur les chaînes de caractères, comme MOVSB ou SCASB, Es:[Di] désigne la variable 'destination'.

Bp (Base Pointeur) 16 bits Bp a un rôle proche de celui de Bx, mais il est généralement utilisé avec le segment de pile (Ss:[Bp]).

Page 56: Plan Historique : inventions (1) - demay.iut.lr.free.frdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · Programmation en langage machine Registres d’indexation

Rappels : Registres d'offsetRappels : Registres d'offset

(à combiner avec une adresse de segment)

Nom Taille Fonction

Ip (Instruction Point)16 bits Cs:[Ip] indique la prochaine instruction àexécuter. Tout comme Cs, Ip ne peut être manipulé par le programme exécuté.

Sp (Stack Pointeur) 16 bits Ss:[Sp] indique le dernier élément de la pile. Chaque opération PUSH (empiler) ou POP (dépiler) modifie le registre Sp.

Exemple de programme NASMExemple de programme NASM[BITS 16]

[ORG 0x100]

[SEGMENT .text]

PILE PROC

PlanPlan

Architecture d’un processeurArchitecture d’un processeur

Processeur 8086Processeur 8086

Pile et ProcéduresPile et Procédures

Systèmes d’exploitation et appels systèmesSystèmes d’exploitation et appels systèmes

AssembleurAssembleur

Interpréteur et compilateur (1)Interpréteur et compilateur (1)

� On distingue grossièrement deux familles de langages informatique

� les langages interprétés� les langages compilés

� Un programme en langage interprété va être traduit au fur et à mesure de son exécution par un interpréteur

� interpréteur : programme chargé de décoder chaque instruction du langage et d'exécuter les actions correspondantes

� Programmes compilés : traduction en langage machine a lieu une fois pour toute.

� Le compilateur (traducteur) traduit chaque instruction du langage en une suite d'instructions en langage machine

Page 57: Plan Historique : inventions (1) - demay.iut.lr.free.frdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · Programmation en langage machine Registres d’indexation

Interpréteur et compilateur (2)Interpréteur et compilateur (2)

� Les programmes compilés s'exécutent ainsi plus rapidement que les programmes interprétés

� La traduction est déjà faite� Mais on perd en souplesse de programmation, car les types de données doivent être connus au moment de la compilation

� Compilateur = traduit un programme source écrit dans un langage de haut niveau (C) en un autre programme dans un langage de bas niveau (par exemple l'assembleur)

� Opération de traduction complexe� Compilateurs = programmes sophistiqués

Principaux langagesPrincipaux langages

� Les principaux langages compilés sont :

� C/C++ : programmation système et scientifique� ADA : logiciels embarqués � Cobol : gestion� Fortran : calcul scientifique� Pascal : enseignement

� Quelques langages interprétés :

� BASIC : bricolage� LISP, Prolog : Intelligence Artificielle� Python : programmation système, Internet � Java : applets internet � MATLAB : calcul scientifique

� LISP, Java ou Python : une première phase de compilation vers un langage intermédiaire (bytecode), qui sera lui même interprété.

Compilation du CCompilation du C

� Traduction en assembleur des programmes en langage C

� Le détail de cette traduction (ou compilation) dépend

� Compilateur utilisé� Système d'exploitation (DOS, Windows, UNIX,...). � Taille des types : exemple int (16 ou 32 bits)� Modèle de mémoire utilisé (pointeurs sur 16 ou 32 bits, données et code dans des segments différents ou non, etc.)

� Exemple : compilateur Turbo C++ version 3 sous DOS (entiers de 16 bits et le modèle de mémoire « small »)

� Génère directement du code objet (fichier .OBJ) à partir d'un fichier source en langage C � Il est cependant possible de demander l'arrêt de la compilation pour obtenir du langage assembleur (fichier .ASM)

C et assembleurC et assembleur� Introduction d’instructions assembleur dans des programmes en langage C (ou C++).

� Programme non portable, car le langage assembleur diffère d'un type d'ordinateur à l'autre

� Pour un programme utilisant les ressources matérielles d'une machine : plus confortable d'écrire un programme C contenant quelques lignes d'assembleur que de tout écrire en assembleur.

� Exemple avec Turbo C++/TASM

void main(void) {int A = 20;asm{MOV AX, ASHL AX, 1}printf(’’AX =%d\n’’,_AX);}Ce programme affiche 40.

Page 58: Plan Historique : inventions (1) - demay.iut.lr.free.frdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · Programmation en langage machine Registres d’indexation

Système d’exploitationSystème d’exploitation

� OS : Operating System : le programme permettant d'utiliser les circuits qui ont été câblés.

� Soit entièrement en ROM � Soit un code de boot en ROM se chargeant de placer en RAM le reste de l'OS à partir de la disquette ou du DD� Souvent, une ROM de boot contient néanmoins la partie de l'OS la plus primitive: le BIOS.

� But de l'OS = décharger le programme des tâches répétitives et de bas niveau.

� Gain de temps lors du développement programmes � Pas à se soucier du fonctionnement de la circuiterieélectronique

Système d’exploitationSystème d’exploitation

� Le système d’exploitation doit s’occuper de :

� l ’exécution des commandes d’entrée/ sortie� la gestion de la mémoire� la gestion des fichiers� la multi- programmation (« multi- tâche »)

� Comment exécuter plusieurs programmes à la fois ?� Et si ces programmes veulent tous accéder à l ’imprimante en même temps ?� Et s’ils doivent échanger des informations ?…� Comment exécuter un seul programme avec plusieurs processeurs ?

� la sécurité (gestion des accès,…)

� Le SE doit aussi fournir :

� un langage de commande� divers utilitaires (compilateurs, éditeurs, outils, …)� une interface graphique pour l’utilisateur

Système d’exploitationSystème d’exploitation

� Windows 95/ 98, Windows NT (Microsoft) :� processeurs 80x86

� OS/ 2 (IBM)

� MacOS (Apple) :� processeurs 68000 puis PowerPC

� UNIX = famille de SE : � Versions payantes généralement spécialisées à un type de machine :

� SunOS/ Solaris (Sun)� AIX (IBM)� HP/ UX (HP)

� Versions libres :�LINUX : 80x86, 68000, PowerPC, Sparc …

Présentation du BIOSPrésentation du BIOS

� BIOS (Basic Input Output System) : partie de l'OS du plus bas niveau

� opérations très primitives: lecture du clavier, affichage écran en mode texte, accès simplifié au lecteur de disquette et au disque dur, accès au ports série et parallèle.

� Le programme du BIOS se trouve en mémoire morte (ROM)

� une mémoire gardant son contenu lorsque l'on interrompt son alimentation électrique

� Chaque modèle de PC est vendu avec une version du BIOS adapté à sa configuration matérielle.

Page 59: Plan Historique : inventions (1) - demay.iut.lr.free.frdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · Programmation en langage machine Registres d’indexation

Fonctions du BIOSFonctions du BIOS

� BIOS ≈ librairie de fonctions

� Chaque fonction effectue une tâche bien précise (par exemple afficher un caractère donné sur l'écran)

� L'appel de l'une de ces fonctions = appel système

� Fonctions du BIOS ≠ procédures appelées avec l'instruction CALL

� il a été prévu de pouvoir modifier le comportement du BIOS en cours d'utilisation (par exemple pour gérer un nouveau périphérique) � Code du BIOS en ROM = non modifiable � Le BIOS étant différent d'un ordinateur à l'autre, les adresses des fonctions changent...

Vecteurs d’interruption (1)Vecteurs d’interruption (1)

� Problème résolu par l'utilisation d'une table d'indirection = la table des vecteurs d'interruptions

� table est placée en RAM : contient les adresses (en ROM ou en RAM) des fonctions du BIOS� implantée à partir de l'adresse 00000000H (première case mémoire)� elle est initialisée par le BIOS lui même au moment du démarrage du PC (boot).

Adresse contenu0000 adresse de la première fonction du BIOS0004 adresse de la deuxième fonction du BIOS...

Vecteurs d’interruptionVecteurs d’interruption

� Chaque élément de la table occupe 4 octets (adresse 32 bits).

� table à 256 éléments (1Ko). � exemple : si l'on sait que la fonction du BIOS qui affiche un caractère est la 33ième, on va l'appeler en lisant la 33ième ligne de la table, puis en allant exécuter les instructions à l'adresse trouvée :

Adresse contenu...0084H F1234560H (car 4x33 = 84H)....

� La table des vecteurs d'interruptions contient des valeurs différentes pour chaque version de BIOS

� peut être modifiée pour pointer sur du code en mémoire principale, modifiant alors le BIOS existant.

InterruptionsInterruptions

� Unité de Traitement exécute séquentiellement les instructions ou effectue des sauts programmés (JMP, CALL)

� Il existe des situations où l ’U. T. est « déroutée » de sa tâche :

� Reset : signal envoyé au processeur pour un (re-) démarrage� Exceptions (interruptions internes) : débordement de pile, dépassement de capacité, div /0, …� Appels systèmes (int. logicielles) : appels du programme lui- même « int 21h » …� Interruptions physiques (int. externes) : appels d’autres périphériques

Page 60: Plan Historique : inventions (1) - demay.iut.lr.free.frdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · Programmation en langage machine Registres d’indexation

Interruptions logicielles : INT nInterruptions logicielles : INT n

� L'instruction INT n permet d'appeler la n-ièmefonction de la table des vecteurs d'interruptions.

� n est un entier compris entre 0 et 255 (1 octet), car il y a 256 vecteurs d'interruptions dans la table (ex: Int 21h )

� L'instruction INT n est semblable à l'instruction CALL

� sauf que l'adresse de destination est donnée par la table des vecteurs d'interruptions� que les indicateurs sont automatiquement sauvegardés sur la pile. � l’adresse de retour complète (32 bits) doit être empilée car le traitant d’interruption n’est pas nécessairement dans le même segment de code que le programme

Interruptions : déroulementInterruptions : déroulement

� Le déroulement de INT n se passe comme suit :

1. sauvegarde les indicateurs du registre d'état sur la pile (les indicateurs sont regroupés dans un mot de 16 bits);

2. sauvegarde CS et IP sur la pile;

3. CS et IP sont chargés avec la valeur lue à l'adresse 4 n, n étant le paramètre de INT. L'exécution continue donc au début du traitant d'interruption.

Interruptions : fonctionnementInterruptions : fonctionnement

� Lorsque l’interruption est déclenchée, l ’U. T. doit exécuter un bout de programme précis : le traitant de l’interruption.

l ’U. T. doit savoir où se trouve l ’adresse (CS: IP) du traitant numéro nCette information est stockée en mémoire (0000: 0000 à 0000: 03FFh)

Appels systèmeAppels système

� Le système DOS (Disk Operating System) repose sur le BIOS,

� il appelle les fonctions du BIOS pour interagir avec le matériel

� Les fonctions du DOS s'utilisent comme celles du BIOS, via des vecteurs d'interruptions

� fonctionnalités de plus haut niveau que le BIOS (entrées/sorties, ouverture de fichiers sur disque, etc.)

� Les fonctions du DOS s'appellent à l'aide du vecteur 21H

� La valeur du registre AH permet d'indiquer quelle est la fonction que l'on appelle : MOV AH, numero_fonction INT 21H� fonction 4CH du DOS = terminer un programme et de revenir àl'interpréteur de commandes DOS : MOV AH, 4CH INT 21H

Page 61: Plan Historique : inventions (1) - demay.iut.lr.free.frdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · Programmation en langage machine Registres d’indexation

Fonctions du BIOSFonctions du BIOS

INT Fonction

0 Division par 0 appelé automatiquement lors de div. par 0

5 Copie d'écran

10H Écran gestion des modes vidéo

12H Taille mémoire

13H Gestion disque dur (initialiser, lire/écrire secteurs)

14H Interface série

16H Clavier (lire caractère, état du clavier)

Fonctions du DOSFonctions du DOS

Numéro Fonction

01H Lecture caractère met le code ascii lu dans AL 02H Affiche caractère code ascii dans registre DL 09H Affiche chaîne de car DX=adresse début chaîne,

terminée par '$'0BH Lit état clavier met AL=1 si caractère, 0 sinon.

� Ce programme lit un caractère au clavier et l'affiche en majuscule :

MOV AH, 01H ; code fonction DOS INT 21H ; attente et lecture d'un caractère AND AL, 11011111b ; passe en majuscule MOV DL, AL ; MOV AH, 02H ; code fonction affichage INT 21H ; affiche le caractère

ExempleExemple

Affichage d'un octet en binaire : afficher la valeur contenue dans un registre 8 bits (BL). L'idée est d'utiliser un masque BL AND 10000000 pour tester le bit degauche, et de décaler BL à gauche pour parcourir ainsi tous les bits.

mov BL, 10 ; on teste le prog avec BL=10mov CX,8 ; compteur de boucle

masque: Test BL, 10000000b JNZ bit1

bit0: Mov DL,"0"jmp affiche

bit1: Mov DL,"1"affiche: mov AH,2 ; affichage

int 21h SHL BL,1 Loop masque

fin:mov ah,4Chint 21h

Architectures Parallèles

Architectures des ordinateursCours 6

Page 62: Plan Historique : inventions (1) - demay.iut.lr.free.frdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · Programmation en langage machine Registres d’indexation

PlanPlan

Les principes du parallélismeLes principes du parallélisme

Les ordinateurs parallèlesLes ordinateurs parallèles

Les réseaux d’interconnexionLes réseaux d’interconnexion

� Architecture :� Nombre, puissance, mémoire, E/S…

� Communications :� Comment les processeurs communiquent

� Coopération :� Synchronisation, degré d’autonomie, OS …

� Type de problèmes :� potentiel de parallélisme, spécialisation des machines, choix des algo, langages...

Problèmes

� Amélioration des performances de calcul� Accroissement de la taille des problèmes à résoudre

� 2048 proc à 64 Mo de mémoire moins chers qu ’une machine séquentielle à 130 Go

� Résistance aux pannes et tolérance aux fautes

� Répartition géographique de l’application

� ex : logiciel de gestion de banque, problème de la cohérence des données partagées sur les différents sites

Le parallélisme pourquoi ? Le parallélisme

� Renault :

� simulations, modélisation,

� Météorologie et climatologie

� Industries Aéronautiques

� simulation et modélisation, réalité virtuelle

� Simulation grandes échelle : tectonique, modèles atmosphériques…

� EDF : simulation Temps-réel

� ONERA : simulation de phénomènes physiques

� Cinéma : effets spéciaux, films d'animations…

Page 63: Plan Historique : inventions (1) - demay.iut.lr.free.frdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · Programmation en langage machine Registres d’indexation

Le parallélisme au CEA : exemple

� Takakaw : application parallèle pour la simulation numérique de dynamique moléculaire.

� Les objectifs initiaux sont

� étude des structures des protéines ainsi que l'étude des interactions mécaniques entre des protéines d'assemblage complexe de grande taille (> 100 000 atomes).

� L'une des applications cibles est la simulation numérique des protéines d'une membrane cellulaire dans leur environnement.

� L'utilisation du calcul parallèle est donc nécessaire pour diminuer les temps de simulation et augmenter l'espace mémoire utilisable etaugmenter la taille des systèmes moléculaires traités.

� Accélération = gain de temps obtenu lors de la parallélisation du programme séquentiel.

� Définition : Soit T1 le temps nécessaire à un programme pour résoudre le problème A sur un ordinateur séquentiel et soitTp le temps nécessaire à un programme pour résoudre le même problème A sur un ordinateur parallèle contenant p processeurs, alors l ’accélération (Speed-Up) est le rapport : S(p) = T1 / Tp

� Cette définition n’est pas très précise

� Pour obtenir des résultats comparables il faut utiliser les mêmes définitions d ’Ordinateur Séquentiel et de Programme Séquentiel …

Notion d’accélération

0P = nombre de processeurs

S(p)

Région des accélérations sub-linéaires

Région des accélérations sur-linéaires

accélératio

n linéaire

Notion d’accélération

� Soit T1(n) le temps nécessaire à l’algorithme pour résoudre uneinstance de problème de taille n avec un seul processeur, soit Tp(n) celui que la résolution prend avec p processeurs et soit s(n,p) = T1(n) / Tp(n) le facteur d’accélération. On appelle efficacité de l ’algorithme le nombre

E(n,p) = S(n,p) / p

� Efficacité = normalisation du facteur d ’accélération

Notion d’efficacité

Page 64: Plan Historique : inventions (1) - demay.iut.lr.free.frdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · Programmation en langage machine Registres d’indexation

Efficacité/Accélération

� Multiplication de matrices ( A moins bon que B)

� Algorithme A

Temps en séquentiel : 10 minutesNombre de processeurs : 10Temps en // : 2 minutesAccélération : 10/2 = 5 (l'application va 5 foisplus vite)Efficacité : 5/10 = 1/2

� Algorithme B

Temps en séquentiel : 10 minutesNombre de processeurs : 3Temps en // : 4 minutesAccélération : 10/4 = 5/2 = 2,5 < 5Efficacité : (5/2)/3 = 0,8 > 0,5

� Une accélération linéaire correspond à un gain de temps égal au nombre de processeurs (100% activité)

� Une accélération sub-linéaire implique un taux d ’activité des processeurs < 100 % (communication, coût du parallélisme...)

� Une accélération sur-linéaire implique un taux d’utilisation des processeurs > à 100 % ce qui paraît impossible (en accord avec la loi d ’Amdhal)

� Cela se produit parfois (architecture, mémoire cache mieux adaptée que les machines mono-processeurs…)

Bilan

� Nous retrouvons couramment MIPS ou FLOPS

� MIPS (Machine Instructions Per Second) représente le nombre d ’instructions effectuées par seconde� FLOPS (FLoating Point Operations Per Second) représente le nombre d ’opérations en virgule flottante effectuées par seconde

� Les multiplicatifs : K = 210 ; M = 220 ; G = 230

� Certains processeurs vectoriels ont une puissance de calcul de 300 Mflops par exemple.

Puissance de calcul

PERF 2002

Machines parallèles : centres nationaux

� CINES : Centre Informatique National de l'Enseignement Supérieur (Montpellier)

� IBM SP2 (207 proc. P2SC et 112 proc. Power3) � Origin2000 (256 proc. R12000)

� IDRIS : Institut du Développement et des Ressources en Informatique Scientifique (Orsay)

� NEC SX-5 � SGI-Cray T3E (256 proc.) � Fujitsu VPP300 (8 proc.)

Page 65: Plan Historique : inventions (1) - demay.iut.lr.free.frdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · Programmation en langage machine Registres d’indexation

Machines parallèles : organismes publiques

� CEA� Grenoble : Compaq SC232 (232 procs EV67 à 667 MHz), VPP5000/15 � Bruyères-Le-Chatel : SGI-Cray T3E (176 proc.), T90 (24 proc.)

� Électricité de France (Direction des Études et Recherches) � Deux Cray C98 (8 proc. chacun) � Deux HP/Convex SPP2000 (16 proc. chacun)

� Météo France, Toulouse � Fujitsu VPP700E (26 proc.)

� ONERA, Chatillon � NEC SX-5 (16 proc.), SGI Origin2000 (12 proc.)

Machines parallèles : organismes privés

� CGG

� Deux Origin2000 (32 proc.)

� Renault

� Origin2000 (32 proc.) � NEC SX-5 (10 proc.) � Cray SV-1 (32 proc.)

� SNECMA Villaroche

� Origin2000 (32 proc.)

TOP 500 (2002)

� http://www.top500.org/� Puissance en GFlops

PlanPlan

Les principes du parallélismeLes principes du parallélisme

Les ordinateurs parallèlesLes ordinateurs parallèles

Les réseaux d’interconnexionLes réseaux d’interconnexion

Page 66: Plan Historique : inventions (1) - demay.iut.lr.free.frdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · Programmation en langage machine Registres d’indexation

� Les machines vectorielles multi-processeurs :� Faible nombre de processeurs puissants (1 à 16)� Mémoire partagée� Limite atteinte, coût important

� Les multi-processeurs à mémoires distribuées :� Grand nombre de processeurs ordinaires à mémoire locale� Communication par envoi de messages à travers des réseaux de communication� Les processeurs ont leur propre séquenceur

� Les machines synchrones :� Très grand nombre d ’éléments de calcul (4096 à 65536) de faible puissance avec une toute petite mémoire locale� Un séquenceur unique : exécution d ’une même instruction sur des données différentes

Types d’ordinateurs

� On se dirige vers l ’utilisation des multi-processeurs à mémoires distribuées :

� Les machines à mémoire partagée ont atteint leur limite� Les machines synchrones sont trop rigides� Bon rapport coût/performance

� Futur : stations de travail reliées par un réseaux à très haut débit

� développement d ’OS spécifiques� développement de bibliothèques de communication (PVM, MPI)� Méta-Computing, Grille de calculs…

Tendance

Tendance

La grappe de PC conçue par hp Laboratories

Grenoble et INRIA Rhône-Alpes

� Classification de Flyn

Flot de données

Flot

d’in

stru

ctio

n

Unique

Unique

Multiple

Multiple

SISD (von Neumann)

MISD (pipeline) MIMD (multi-processeurs)

SIMD (tab de processeurs)

Classification des machines

Page 67: Plan Historique : inventions (1) - demay.iut.lr.free.frdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · Programmation en langage machine Registres d’indexation

Classification des machines

� SIMD (Single Instruction Multiple Data)� séquenceur unique� tableau de processeurs

� MISD (Multiple Instruction Single Data)� classe bizarre � pipeline ?

� MIMD (Multiple Instruction Multiple Data)� Classe la plus importante� processeurs autonomes� Mémoire partagée ou distribuée

Cette classification n’est pas en corrélation avec les machines réelles

Classification des machines

SISD et pipeline SIMD

Page 68: Plan Historique : inventions (1) - demay.iut.lr.free.frdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · Programmation en langage machine Registres d’indexation

MIMD

Réseau d ’interconnexion

M M M M

P P P P

Organisation de la mémoire : DM

Bus

M

P P P P

Mémoire partagée

Organisation de la mémoire : SM

� SIMD-SM� Contrôle centralisé de données centralisées� Machine vectorielles mono-processeurs� Instruction unique appliquée de manière séquentielle à des données de type vecteur� Fonctionnement en mode pipeline

� Pilpeline :� Décomposition de l ’opérateur f = f3 ° f2 ° f1� On applique successivement f1, f2 puis f3 sur cette donnée� circuits dans les processeurs� circuit = composant électronique qui prend d en entrée et donne f(d) en sortie� séquence de circuits en étages

Classification unifiée

Page 69: Plan Historique : inventions (1) - demay.iut.lr.free.frdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · Programmation en langage machine Registres d’indexation

� SIMD-DM :� Contrôle centralisé, données distribuées� Processeurs de faible puissance = éléments de calcul� Séquenceur unique

� MIMD-DM :� Contrôle distribué, données distribuées� Un processeur = entité de calcul autonome (processeur + mémoire)� Communication par envoi de messages : importance du réseau d ’interconnexion� Avantage : facile d ’augmenter le nb de proc� Inconvénients : performances étroitement liées au réseau et besoin d ’OS nouveaux.

Classification unifiée

� MIMD-SM :

� Mémoire divisée en plusieurs bancs� Synchronisation des accès à la mémoire, un seul processeur peut accéder en lecture ou écriture à un banc� Machine multi-processeurs : Cray 2, NEC SX-3� Faible nombre de processeurs� Puissance de la machine repose sur la puissance des processeurs et non sur le nombre

Classification unifiée

PlanPlan

Les principes du parallélismeLes principes du parallélisme

Les ordinateurs parallèlesLes ordinateurs parallèles

Les réseaux d’interconnexionLes réseaux d’interconnexion

� Premières architectures : mémoire partagée, liaison directe entre les constituants

� Accès mémoire = goulot d’étranglement� On découpe donc en bancs mémoire� Un élément de calcul qui veut accéder à un banc verrouille l ’accès en lecture/écriture à ce banc

� Réseau d ’interconnexion = graphe complet qui relie les processeurs aux bancs mémoires

� si le nombre de proc est trop grand il est impossible de reliertous les proc à tous les bancs : nb de liens trop important.� Dans ce cas on utilise un réseau à étages

Les types de réseaux

Page 70: Plan Historique : inventions (1) - demay.iut.lr.free.frdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · Programmation en langage machine Registres d’indexation

� Bande passante� SM : il faut pouvoir alimenter tous les processeurs : plusieurs Go/s� DM : Quelques centaines de Mo/s

� Latence� SM : petite car tout accès à la mémoire prend un temps qui est égal à la latence du réseau et de la mémoire. Chemins de communication courts et rapides.� DM : la latence est moins critique

� Informations à transporter� SM : liens entre les bus de données et d ’adresse d ’un processeur et d ’un banc mémoire� DM : données uniquement

Différence entre les réseaux SM et DM

� Trois types en fonctions du nombre d’étages nécessaires pour relier un processeur quelconque à un banc mémoire quelconque

� zéro étage� un étage� multi-étages

� Le nombre d’étages dépend du nombre de processeurs et de bancs mémoire à relier.

Les réseaux d’interconnexion SM

� Réseaux connectés en bus� Mémoire = un seul banc mémoire� Les processeurs se connectent par leur bus de données et d’adresses� Un processeur qui obtient l’accès au bus bloque tous les autres� Bande passante faible par processeur� Faible nombre de processeurs : goulot d ’étranglement

Besoin de diviser la mémoire en bancs

Les réseaux à zéro étage (SM)

Bus

M

P P P P

Mémoire partagée

Organisation de la mémoire : SM

Page 71: Plan Historique : inventions (1) - demay.iut.lr.free.frdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · Programmation en langage machine Registres d’indexation

Réseau d ’interconnexion

M M M M

P P P P

Mémoire partagée

Découpage en banc

� Si on divise la mémoire en plusieurs bancs, il est impératif d’utiliser des réseaux à au moins un étage pour régler les problèmes d ’accès concurrents aux ressources

� La latence est indépendante du nombre de processeurs et de bancs

� Tous les liens possibles correspondent à des liens physiques

� On parle de réseau crossbar� Le crossbar permet de connecter N processeurs à N bancs mémoires. Il est constitué de 2N connections et de N² switches.� Il est donc coûteux et n’est utilisé que pour des machines contenant quelques dizaines de processeurs� Avantage : il est non bloquant (tout proc inactif peut être connecté à tout moment à tout banc inutilisé).

Les réseaux à un étage (SM)

processeurs

mémoires

switches

Le Crossbar (SM)

processeurs

mémoires

switches

Le Crossbar (SM)

Page 72: Plan Historique : inventions (1) - demay.iut.lr.free.frdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · Programmation en langage machine Registres d’indexation

� Latence fonction du nombre des éléments reliés (-)

� Plus besoin de matériel qui réalise physiquement le graphe complet (+)

� Plus pratique et moins coûteux pour augmenter le nb de proc

� Réseaux basés sur des circuits réalisant des connexions entre leurs entrées et leurs sorties

� ces circuits (boîte d ’échange) sont pilotés par des signaux de contrôle� chaque boîte aura b entrées et b sorties (en pratique b vaut 2)� l ’ensemble du réseau sera constitué d ’un certain nombre de couches appelées étages.

Les réseaux multi- étages (SM)

01

23

45

67

01

23

45

67

processeurs mémoires4 à 7

Les réseaux connectés en cubesLes réseaux multi- étages (SM)

01

23

45

67

01

23

45

67

processeurs mémoires4 à 7 et 7 à 1

Pas de conflit

Les réseaux connectés en cubesLes réseaux multi- étages (SM)

01

23

45

67

01

23

45

67

processeurs mémoires4 à 7 et 5 à 3

Les réseaux connectés en cubesLes réseaux multi- étages (SM)

Page 73: Plan Historique : inventions (1) - demay.iut.lr.free.frdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · Programmation en langage machine Registres d’indexation

� Le réseau relie les différents processeurs entre eux (chacun possède sa propre mémoire)

� Les grandeurs importantes� diamètre : distance entre deux processeurs, il doit être petit� connectivité : nb de manières différentes dont deux sommets peuvent être reliés, plus elle est grande plus le réseau est robuste� faisabilité : la topologie doit être non dépendante du nb de proc� sous-topologies : elles doivent être simples� adéquation du point de vue de la programmation :graphe régulier et simple pour faciliter la tâche du programmeur� largeur de bissection : plus elle est grande, plus on a de possibilités de faire des communications entre les différentes parties de la machine sans provoquer de congestion. (on coupe en deux le graphe et on compte le nb d ’arêtes qu’il a fallu couper)

L’interconnexion des réseaux DM L’interconnexion des réseaux DM

� Problème de faisabilité des machines :

� Faisabilité des composants � nb de broches des processeurs� nb et disposition des liens physiques

� Problème du refroidissement� Problème du coût� Problème de l ’évolutivité� Facilité de maintenance (remplacement d ’un processeur en panne)� ….

Réalisation physique Exemple MIMD

IBM SP

IBM SP-2 (from MHPCC)

IBM SP

IBM SP 680

IBM SP 680 specs

IBM X server

Cray T3E

Compaq (DEC) Alpha Chips ( Alpha white paper )

Cray white paper

SGI Origin 2000 , (3000)

performance Tuning for the Origin2000

R10000 Chip , R10000 Brief , Other MIPS Chips , MIPS

Page 74: Plan Historique : inventions (1) - demay.iut.lr.free.frdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · Programmation en langage machine Registres d’indexation

Exemple MIMD

Compaq Servers, GS320 server

Distributed Memory Vector

NEC (Japan)

Fujitsu (Japan)

Hitachi (Japan)

Beowulf Projects

Beowulf slides (Modi)

Intel Teraflop Machine , ( Performance Tuning )

Linux Intro , Installing Linux , Linux Palmtops

Windows NT/2000 based Beowulf Systems , ( MPICH )

� La machine de chez CRAY, deux types de modèles, refroidissement à air (pas plus de 128 processeurs) ou par un liquide (jusqu'à 2048 processeurs). En amalgamant les deux de 16 à 2048nœuds comprenant chacun :

� un DEC Alpha EV5 (600 MFlops) de 64 Mo à 2 Go de mémoire vive� un réseau d'interconnexion en tore 3D (bande passante de 2 à 128 Go/s).

Performance de crête de 9.6 GFlops à 1.2 TFlops, jusqu'à 4 To de mémoire vive.

Exemple : Cray T 3E

Exemple SIMD

�CM-1, CM-2, & CM-200 ( NPAC )

� Maspar MP-1 & MP-2

� Cambridge Parallel Processing ( NPAC pages , Overview )

� Oxford Micro

� Pentium 4

� Intel SIMD

� Intel MMX SIMD (UBC)

�Motorola 7450

� Motorola 7400 processor

� Motorola Altivec

Exemple SIMD

Page 75: Plan Historique : inventions (1) - demay.iut.lr.free.frdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · Programmation en langage machine Registres d’indexation

Hardware

Architectures des ordinateursCours 5

PlanPlan

MémoiresMémoires

Les disques durs et interfaces IDELes disques durs et interfaces IDE

ProcesseursProcesseurs

Cartes mères et BIOSCartes mères et BIOS

Les ports (parallèles et séries)Les ports (parallèles et séries)

Les IRQLes IRQ

Schéma d'une carte mèreSchéma d'une carte mère ChipsetChipset

� Chipset = famille de composants utilisées par la carte mère.

� en principe composée de 2 à 5 puces.� elles contrôlent un ou plusieurs éléments de la carte

mère. Parmis ces éléments on a :

1. Le bus PCI2. Le bus ISA 3. Le bus AGP4. Le bus EISA ( très rare aujourd'hui ) 5. Le bus USB 6. La mémoire principale 7. La mémoire cache de second niveau pour les Pentium 8. Les ports IDE 9. La gestion des canaux DMA ...

Page 76: Plan Historique : inventions (1) - demay.iut.lr.free.frdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · Programmation en langage machine Registres d’indexation

ChipsetChipset

• Actuellement quatre grands fabricants de chipsets se partagent le marché.

Descriptif Lien URL utilisé Intel http://www.intel.com VIA http://www.via.com.tw SiS http://www.sis.com.tw ALI http://www.ali.com.tw

Exemple de Exemple de chipsetschipsets

� Chipsets permettant de gérer des Pentium II :

440 FX 440 EX 440 LX 440 BX Nombre de CPU 2 1 2 2Taille mémoire 1 Go 256 Mo 1 Go 1 Go FPM-EDO-BEDO-SDRAM-ECC o/o/o/-/o o/o/o/-/o o/o/-/o/o o/o/-/o/o USB Oui Oui Oui Oui IDE BMIDE UDMA33 UDMA33 UDMA33 Type PIIX3 PIIX4 PIIX4 PIIX4e AGP Non Oui Oui Oui Vitesse Bus Mémoire 66 Mhz 66 Mhz 66 Mhz 100 Mhz

Pentium II

ChipsetChipset : 2002: 2002

� Chipset AMD-760™ MPX

� Système bi-processeur symétrique pour processeurs AMD Athlon MP � Bus système Athlon 266 MHz, offrant des débits de données allant jusqu'à 2,1 Go/s � Contrôleur mémoire DDR (Double Data Rate) 266-MHz (PC2100) supportant jusqu'à 4 Go de mémoire � Interface AGP-4X (supporte les modes 1X et 2X) � Bus PCI primaire 66 MHz, 32 ou 64 bits conforme à la spécification PCI 2.2 � Bus PCI secondaire 33 MHz, 32 bits conforme à la spécification PCI 2.2 � Contrôleur bus maître EIDE compatible ATA-33, ATA-66 et ATA-100 � Bus SM � Bus LPC ( Low Pin Count ) � Contrôleur hôte USB OHCI (quatre ports)

Importance des Importance des chipsetschipsets

� Le type de chipset utilisé par une carte mère influe sur les performances de cette carte.

� il limitera les caractéristiques de la carte (taille et la rapidité de la mémoire cache, le type et la capacité de la mémoire principale, le type et le nombre de processeur supportés, les types de bus supportés, etc)

� Ils évoluent continuellement

� ex: plusieurs types de chipsets pour cartes mères Pentiumcomme le 450NX qui gère jusqu'à 8Go de mémoire ECC, permet de gérer plusieurs bus PCI, 4 processeurs Pentium II Xeon à 100Mhz ...

Page 77: Plan Historique : inventions (1) - demay.iut.lr.free.frdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · Programmation en langage machine Registres d’indexation

Composants des Composants des chipsetschipsets

� Un contrôleur de bus local (AGP, PCI ...)

� Un contrôleur de mémoire cache,

� Un contrôleur de mémoire principale

� Un contrôleur pour la passerelle entre le bus PCI et le bus ISA

� Un contrôleur du bus USB, des ports IDE, ainsi que plusieurs autres circuits

Les BUSLes BUS

� Le bus PCI

� Le bus ISA

� Le bus AGP

� Le bus EISA ( très rare aujourd'hui )

� Les bus USB, SCSI, PCMCIA

ISA ISA EISA PCI PCI v2.1 PCI-X

AGP 1x

AGP 2x

AGP 4x

Largeur du bus de données 8 16 32 32 64 64 32 32 32Fréquence du bus en Mhz 4,77 8,33 8,33 33,33 33,33 133 66,66 66,66 66,66Taux de transfert en Mo/s 4,66 16,66 33,33 133,33 266,66 1066,6 266,66 533,33 1066,6

Fréquence des busFréquence des bus

� La vitesse du bus PCI est un diviseur de la vitesse du bus processeur.

� Si la vitesse du bus est de 50 Mhz alors la vitesse du bus PCI est 50/1.5 = 33,333 Mhz

Vitesse du bus processeur 66 Mhz 75 Mhz 83 Mhz

Fréquence du bus PCI33 333 333

Hz 37 500 000

Hz 41 500 000

Hz Taux de transfert 133 Mo/s 146 Mo/s 162 Mo/s

� 2002 : Chipset AMD-760™ MPX

� Bus système Athlon 266 MHz = 2,1 Go/s

Débit Max d'un busDébit Max d'un bus

� Fréquence_Bus_En_Hertz*Largeur_du_Bus_en_bits = Nombre de bits par seconde

� Exemple : Pour un bus PCI la fréquence du bus est de 33 Mhz et sa largeur est de 32 bits on a donc :

� (((33 333 333*32 ) /8) / 1024) / 1024 = 127.15 MB/s� B = Byte = Octet

� Attention : pour des raisons de marqueting : taux de transfert exprimés en Million d'octects.

� ((33 333 333*32 )/8) / 1 000 000) = 133.33 Mo/s� 1Mo = 1 Million d'octets

Page 78: Plan Historique : inventions (1) - demay.iut.lr.free.frdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · Programmation en langage machine Registres d’indexation

Le bus mémoireLe bus mémoire

� Le bus mémoire

� le bus mémoire fonctionne à la même fréquence que le bus processeur

Mem EDO Mem SDRAM

Mem SDRAM PC100

Mem SDRAM PC133

Mem DDR SDRAM PC1600

Mem DDR SDRAM PC2100

Largeur du bus de données en bit

32 64 64 64 64 64

Fréquence du bus en Mhz

66 66 100 133 100 133

Taux de transfert en Mo/s

266,66 533,33 800 1064 1600 2133

Taux de transfert en MB/s

254,31 508,62 762.93 1017.25 1525.87 2034.50

Les autres busLes autres bus

BM IDE DMA/33 USB USB v2.0 IEEE 1394 IEEE 1394 BDébit maximun 16,7 Mo/s 33,4 Mo/s 1,5 Mo/s 60 Mo/s 50 Mo/s 200 Mo/sNombre maximum de périphériques

2 4 127 127 63 63

� IDE : Disques durs, CDROM, Graveur

� DMA : Disques durs (Ultra DMA)

� USB 1 et 2 : Souris, clavier, Caméra, CDROM…

� IEEE 1394 : Firewire = concurrent USB2

Les autres busLes autres bus

� SCSI

� SCSI-1 à 32 Mbits/s, � SCSI-2, 3 et Wide SCSI jusqu'à 160 Mbits/s� Ultra 2 Wide SCSI à 640 Mbits/s.

� AGP :

� Avec un bus de 32 bits = 4,2 Gbits/s� AGP 2X, 4X et bientôt 8X, qui lui permettent

d'atteindre la vitesse respectable de 33,6 Gbits/s

Interfaces faible débitInterfaces faible débit

� PS/2 : vitesse jusqu'à 25 kbits/s (clavier et la souris)

� en cours de remplacement par USB

� Interface Infrarouge : jusqu'à 4 Mbits/s

� agenda personnel, un téléphone GSM� appelée à être remplacée par les interfaces Bluetooth.

� Interface Série : jusqu'à 115 kbits/s,

� modem, agenda personnel, téléphone GSM, liaison de PC à PC,� quasiment remplacée par l'interface USB dans toutes ses

fonctions.

Page 79: Plan Historique : inventions (1) - demay.iut.lr.free.frdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · Programmation en langage machine Registres d’indexation

Interfaces faible débitInterfaces faible débit

� Interface Port Jeux : jusqu'à 31 kbits/s

� manettes de jeux, volants et instruments de musique MIDI� remplacement par l'interface USB pour toutes ses applications

� Interface Parallèle : jusqu'à 1,2 Mbits/s

� imprimante, liaison PC à PC,� remplacement par l'interface USB

Le BIOSLe BIOS

� Bios = Basic Input Output System

� ensemble de routines (programmes) permettant au système d'exploitation de gérer les différents éléments de la carte mère.

� Chaque évolution technologique peut nécessiter une évolution du Bios.

� exemple : l'arrivée du lecteur LS-120 a nécessité l'ajout de routines permettant de gérer ce lecteur.� LS120 : 120 Mo de mémoire sur une disquette 3.5'' + taux de transfert environ égal à 565 Ko/s contre 60 Ko/s

Le BIOSLe BIOS

� Les instructions du Bios sont stockées dans une EEPROM.

� mise à jour est donc = plus complexe et plus risqué que celui d'un logiciel normal.

� Mauvaise manipulation

� le contenu de l'EEPROM du Bios peut être altéré, ce qui empêchera le PC de fonctionner correctement et même d'empêcher une autre mise à jour. un Bios corrompu.

� Pour entrer dans Setup du Bios de la carte mère,

� généralement : maintenir la touche Suppr (ou Del pourles claviers anglais), enfoncée au moment du boot

Quand flasher le BIOSQuand flasher le BIOS

� Le Bios de votre PC peut comporter des bugs (rare)

� Exemple : la gestion d'énergie : sur certaines cartes mères, laversion 4.50PG du Bios AWard a tendance à éteindre l'écran de façon aléatoire ou à couper l'alimentation du disque alors que celui-ci fonctionne. La version 4.51PG a corrigé ce problème.

� Nouvelles fonctionnalités

� Exemple : certains Bios n'offrent pas à l'origine, la possibilité de booter le PC depuis un lecteur Zip ou LS120 ou d'utiliser le mode LBA sur 48 bits pour dépasser la barre des 128 Go. Ou encore d'utiliser des fréquences de bus plus élevé qu'a l'origine

� Une mise à jour du Bios est alors nécessaire.

Page 80: Plan Historique : inventions (1) - demay.iut.lr.free.frdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · Programmation en langage machine Registres d’indexation

Flasher le BIOSFlasher le BIOS

� Pour flasher le Bios de votre carte vous devez disposer :

� d'un programme de flashage � du fichier contenant le code du Bios à flasher.

� Puis redémarrer votre ordinateur, de préférence avec une disquette de boot ne contenant pas de config.sys ni d'autoexec.bat.

� Selon la marque du Bios vous n'aurez qu'à taper

� Pour le Bios AWard awdflash xxx.bin ou pflash xxx.awd� Pour le Bios AMI amiflash xxx.bin� Pour le Bios MrBios mrflash xxx.bin

BIOS : exempleBIOS : exemple

Carte mèreCarte mère PhotoPhoto

Page 81: Plan Historique : inventions (1) - demay.iut.lr.free.frdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · Programmation en langage machine Registres d’indexation

PlanPlan

MémoiresMémoires

Les disques durs et interfaces (IDE)Les disques durs et interfaces (IDE)

ProcesseursProcesseurs

Cartes mères et BIOSCartes mères et BIOS

Les ports (parallèles et séries)Les ports (parallèles et séries)

Les IRQLes IRQ

Mémoires : caractéristiquesMémoires : caractéristiques

� Méthodes d’accès :

� séquentiel (temps d’accès linéaire) bande� direct (temps d’accès constant) mémoire principale� mixte (accès direct au voisinage de la donnée + parcours séquentiel) disque� associatif (accès à la donnée en recherchant une clé dans une table : temps constant) cache

� Supports physiques� semi-conducteur� magnétique� optique

�Caractéristiques� volatile / non volatile� effaçable / non effaçable

Mémoires : caractéristiquesMémoires : caractéristiques

� Capacité de la mémoire :

� nombre de mots� taille du mot (généralement 1 octet)

� Unité de transfert : mot, bloc, page, fichier, …

� Performances :� Temps d’accès� Temps de cycle (= entre 2 accès)� Débit de transfert (= 1 / Temps Cycle)

Mémoires : exemplesMémoires : exemples

� RAM (Random Access Memory / Mémoire Vive)

� accès direct (temps d ’accès : SRAM + rapide que DRAM)� volatile

� ROM (Read Only Memory / Mémoire Morte)

� accès direct� non volatile : information figée lors de la fabrication� utilisation : microprogrammes + programmes systèmes de base (BIOS)

� PROM (Programmable ROM) : ROM enregistrable 1 fois par l’utilisateur� EPROM (Erasable PROM) : PROM effaçable (par rayonnement UV)� EEPROM (Electricaly EPROM) : PROM effaçable (signaux électriques)� FLASH EEPROM : EEPROM effaçable par bloc

Page 82: Plan Historique : inventions (1) - demay.iut.lr.free.frdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · Programmation en langage machine Registres d’indexation

Différentes mémoires DRAMDifférentes mémoires DRAM

� Barrettes de mémoire :

� SIM (single Inline memory) : deux rangés de 30 contacts fonctionnant en 8 bits et avec des temps d'accès de 70 à 80 ns.

� SIMM (single inline memory module) : deux rangées de 72 contacts en 32 bits, avec des temps d'accès de 60 ou 70 ns et le mode fast page, très vite relayé par le mode EDO (enhanceddata output).

� Maintenant : barrettes DIMM (dual inline memory module) : temps d'accès compris entre 7 et 15 ns et avec une largeur de 64 bits.

Différentes mémoires DRAMDifférentes mémoires DRAM

� La mémoire se connecte sur un port

� SIMM : mémoire vive EDO,� DIMM : SDRAM (meilleurs temps d'accès)

� Barrettes SDRAM

� SDRAM pc 66, la pc 100 et la pc 133.� fréquence en MHZ du bus système que peut supporter la barrette.

Temps de cycleTemps de cycle

� Mémoire idéale = grande capacité, rapide, pas chère.

� La réalité :

� les mémoires de grande capacité sont lentes� les mémoires rapides sont chères� Ex:

� Processeur avec une horloge de 2 GHz (cycle = 0,5 ns)� SDRAM : temps de cycle de 7 ns� 1 cycle d’accès à la mémoire = 14 cycles processeur !

� Comment faire ?

� Faire des accès parallèles à la mémoire� Utiliser une hiérarchie de mémoires

HiérarchieHiérarchie

Page 83: Plan Historique : inventions (1) - demay.iut.lr.free.frdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · Programmation en langage machine Registres d’indexation

HiérarchieHiérarchie

CDROM 52x = 80 ms

Mémoires DRAMMémoires DRAM

Mem EDO Mem SDRAM

Mem SDRAM PC100

Mem SDRAM PC133

Mem DDR SDRAM PC4000

Mem QDR SDRAM

Largeur du bus de données en bit 32 64 64 64 64 2x64 Fréquence du bus en Mhz 66 66 100 133 200 1500Taux de transfert en Mo/s 266,66 533,33 800 1064 3200 24000Taux de transfert en MB/s 254,31 508,62 762.93 1017.25 3051.75 22888

PlanPlan

MémoiresMémoires

Les disques durs et interfaces (IDE)Les disques durs et interfaces (IDE)

ProcesseursProcesseurs

Cartes mères et BIOSCartes mères et BIOS

Les ports (parallèles et séries)Les ports (parallèles et séries)

Les IRQLes IRQ

Interface IDEInterface IDE

� IDE : Integrated Drive Electronics

� nom donné aux disques durs qui intègrent leur contrôleur sur le disque.

� L'interface d'un disque IDE s'appelle officiellement ATA ( AT Attachment )

Page 84: Plan Historique : inventions (1) - demay.iut.lr.free.frdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · Programmation en langage machine Registres d’indexation

Maître / EsclaveMaître / Esclave

� Interface ATA = deux disques durs

� problèmes car chaque DD possède son propre contrôleur (ils doivent fonctionner en étant connectés au même bus)� assurer qu'un seul contrôleur à la fois réponde à une chaque commande

� ATA : connecter deux disques durs par l'intermédiaire d'une nappe en chaîne.

� DD primaire (disque 0) est qualifié de "maître" � DD secondaire (disque 1) est qualifié "d'esclave"� Statut de maître ou d'esclave : cavalier ou interrupteur

NappeNappe

� Le câble de l'interface ATA.

� véhicule les signaux entre les circuits de l'adaptateur de bus et le disque dur (le contrôleur) � nappe à 40 fils (80 pour UDMA133 et +)

� Pour garantir un signal aussi intègre que possible et éliminer les risques de diaphonie, la longueur du câble ne doit pas dépasser 46 cm.

Disque durDisque dur

� Plusieurs plateaux de forme circulaire en aluminium ou en verre.

� Contrairement aux disquettes, ces plateaux ne sont absolument pas flexibles = qualifié de dur

� La densité en bits par pouce carré

� résultat exprimé en Megabits par pouce carré ( 6.45 cm2)� sert à mesurer l'efficacité de la technologie d'enregistrement utilisée par les disques durs (ex : 25,7 Gbits/pouces2)

� La densité en bits par pouce carré (et par conséquent la capacité) des disques durs double tous les deux ou trois

Structure physiqueStructure physique

� Disque dur constitué de plusieurs plateaux de forme circulaire en aluminium ou en verre.

� Comme les disquettes : doivent être formatés avant que l'OS puisse commencer à y écrire des données.

� 2 formatages: l'un physique et l'autre logique.

Préparation physique de la surface magnétique :

� les plateaux du lecteur reçoivent des éléments de structure

Page 85: Plan Historique : inventions (1) - demay.iut.lr.free.frdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · Programmation en langage machine Registres d’indexation

Structure logiqueStructure logique

� Piste trop importante pour stocker convenablement des données

� capacité de stockage de 50 000 octets et + � donc : division en plusieurs sous-unités de stockage numérotées appelées secteurs..

� Différents types de disques durs et de disquettes

� découpages en secteurs différents selon la densité des pistes.

� Les secteurs créés par la procédure de formatage standard d'un PC ont une capacité de 512 octets

Formatage du disqueFormatage du disque

�Partitionnement

� permet à plusieurs types de systèmes d'exploitation d'utiliser le même disque dur � ou à un seul d'utiliser ce disque sous forme de plusieurs volumes ou lecteurs logiques.

� Le formatage s'effectue en trois étapes:

� Formatage de bas niveau - Il est fait en usine par le fabricant.� Partitionnement - Fait par l'utilisateur � Formatage de haut niveau - Fait par l'utilisateur (SF)

PartitionnementPartitionnement

� Diviser le disque dur en plusieurs zones appelées partitions pouvant chacune contenir leur propre système d'exploitation.

� Les OS actuels utilisent différents types de systèmes de fichiers (formatage de haut niveau) :

� FAT16� FAT32� NTFS� EXT2� EXT3…

� Différence de format et de gestion du placement des données

Système de fichier : FATSystème de fichier : FAT

�FAT (File Allocation Table)

� SF utilisé par DOS, OS/2, Windows 3.x et 95 et NT� table d'allocation des fichiers = une structure contenant la liste des clusters utilisés et non utilisés.

�La structure d'un volume est constitué:

� secteur de boot = Master Boot Record (MBR) contenant la structure de l'unité physique (nombre de partitions, leur taille, leur type (principale ou étendue) et le nombre d'unités logiques avec leur taille)� La première table d'allocation de fichier.� Une ou plusieurs copies de la table d'allocation de fichier.� Le répertoire racine avec le nom de volume.� La zone de données pour les fichiers et les sous répertoires.

Page 86: Plan Historique : inventions (1) - demay.iut.lr.free.frdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · Programmation en langage machine Registres d’indexation

Système de fichier : FATSystème de fichier : FAT

� Les segments de la FAT acceptent des noms de fichiers pouvant comprendre jusqu'à 11 caractères

� 8 caractères pour le nom plus 3 caractères pour l'extension

� FAT 16 bits ne permet d'adresser qu'un volume de 2 Go au maximum ( 216 * 32768 ).

FAT 16 bits FAT 32 bits

Nombre d'unités d'allocation 216 = 65536 entrées 232 = 4 294 967 296 entrées

Capacité avec un cluster de 32768 octets 2 147 483 648 octets = 2 Go 131 072 Go = 128 To (Teraoctet)

Caractéristique 2002Caractéristique 2002

�Disques Durs IDE

Dell - Hard Drive 20GB 5400rpm IDE pour Optiplex GX50SF/S 155,48 €Dell - Hard Drive 20GB 7200rpm ATA-100 IDE pour Precision 167,44 €

Western digital - Disque Dur - WD1200BB - 120 Go 329,00 €Seagate technology - Disque Dur - Barracuda ATA IV - 40 Go 109,00 €Seagate technology - Disque Dur - Barracuda ATA IV - 60Go 119,00 €

PlanPlan

MémoiresMémoires

Les disques durs et interfaces (IDE)Les disques durs et interfaces (IDE)

ProcesseursProcesseurs

Cartes mères et BIOSCartes mères et BIOS

Les ports (parallèles et séries)Les ports (parallèles et séries)

Les IRQLes IRQ

Processeurs IntelProcesseurs Intel

� Support : socket ou slot

� FPU

� Unité de calcul en virgule flottante (i. e. qui manipule des nombres réels) : C'est un circuit intégré� Composant d'un microprocesseur qui est sollicitée de façon importante lors des calculs d'images ou de scènes en 3D

� Type de cache

� Write Back : Caractérise un cache dont le gestionnaire ne met pas forcément à jour la mémoire principale à chaque modification. Opposé à write-thru

Page 87: Plan Historique : inventions (1) - demay.iut.lr.free.frdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · Programmation en langage machine Registres d’indexation

Processeurs IntelProcesseurs Intel

4004 4040 8008 8080 8085 8086 8088

Date de sortie Novenbre 71 Fevrier 72 Avril 72 avr-74 juin-76 juin-78 juin-79

Fréquence 108 KHz 747 KHz 200 KHz 2 Mhz 5 Mhz 5-8-10 Mhz 5-8 Mhz

Largeur du bus de donné 4 bits 4 bits 8 bits 8 bits 8 bits 16 bits 8 bits

Largeur du bus d'adresse 10 bits 12 bits 14 bits 16 bits 20bits 20 bits 20 bits

Mémoire adressable 640 octect 640 octect 16 Ko 64 Ko 1 Mo 1 Mo 1 Mo

Nombre de transistor 2 300 2 300 3 500 6 000 6 500 29 000 29 000Taille de la gravure en micro 10 10 8 6 3 3 3

Voltage externe 5 V 5 V 5 V 5 V 5 V 5 V 5 V

Support Soudé Soudé Soudé Soudé DIPP DIPP DIPP

� Du 4004 au 8088

Processeurs IntelProcesseurs Intel

� Pentium IV

Pentium IV Willamette

Pentium IV Prescott

Pentium IV M

Pentium IV Xeon

Pentium IV Xeon

Pentium IV Xeon MP

Pentium IV Northwood

A

Pentium IV Northwood

BDate de sortie nov-00 Aout 2001 mars-02 mai-01 janv-02 mars-02 janv-02 mai-02

Fréquences GHz1,3-1,4-1,5-1,6-1,7-1,8 1,9-2,0

1,4-1,5-1,6-1,7-1,8-1,9-

2,01,4-1,5-1,7-

2,0 1,4-1,5-1,61,8-1,9-2,0-

2,2-2,42,0A et 2,2A

et 2,4A

2,26B-2,4B-2,53B-2,6-2,66-2,8

Fréquences Bus CPU 400 400 400 400 400 400 400 533Largeur du bus de donné 64 bits 64 bits 64 bits 64 bits 64 bits 64 bits 64 bits 64 bitsLargeur du bus d'adresse 36 bits 36 bits 36 bits 36 bits 36 bits 36 bits 36 bits 36 bitsMémoire adressable 64 Go 64 Go 64 Go 64 Go 64 Go 64 Go 64 Go 64 GoFPU interne Oui Oui Oui Oui Oui Oui Oui Oui

Cache interne L1 1x8 Ko et 1x12 Ko

1x8 Ko et 1x12 Ko

1x8 Ko et 1x12 Ko 2x16 Ko

1x8 Ko et 1x12 Ko

1x8 Ko et 1x12 Ko

1x8 Ko et 1x12 Ko

1x8 Ko et 1x12 Ko

256 Ko+ cache L3 = 512 ou 1024 Ko

Type de cache Write Back Write Back Write Back Write Back Write Back Write Back Write Back Write BackTaille de la gravure 0,18 0,18 0,13 0,18 0,13 0,13 0,13 0,13Nombre de transistor 42 000 000 42 000 000 - - - - 55 000 000 55 000 000Voltage externe 1,7 et 1,75 1,7 et 1,75 1,3 v 1,85 1,75 1,7 1,3 v 1,3 vFormat du CPU PGA423 PGA478 uFC-BGA FC-BGA FC-BGA FC-BGA PGA478 PGA478Support 423 Socket 478 Socket 478 Socket 603 Socket 603 Socket 603 Socket 478 Socket 478 Socket

Cache interne L2 256 Ko 256 Ko 512 Ko 256 Ko 512 Ko 512 Ko 512 Ko

Processeurs 64 bitsProcesseurs 64 bits

� Itanium : Intel

� Hammer : AMD 1 To = 1024 Go Itanium

Date de sortie 2001Fréquences MHz 733-800Fréquences Bus CPU 266Largeur du bus de donné 64 bitsLargeur du bus d'adresse 44 bitsMémoire adressable 16 ToFPU interne OuiCache interne L1 2x16 KoCache interne L2 96 Ko

Cache interne L32 Mo ou 4

MoType de cache Write BackTaille de la gravureNombre de transistor 25 000 000Voltage externe 3,3Format du CPU PAC418Support VLIF Socket

Processeurs 64 bitsProcesseurs 64 bits

� Architecture 64 bits : IA64

� nouvelles puces d'Intel destinées à remplacer les x86. � rupture totale avec la série x86

� le jeu d'instruction n'a plus rien à voir� ni les éléments de l'architecture du processeur

� Résultat :

� nettement plus simple, donc plus rapide � contrôle plus fin au logiciel (en particulier les compilateurs) sur le matériel.

� Attention à la compatibilité des applications

Page 88: Plan Historique : inventions (1) - demay.iut.lr.free.frdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · Programmation en langage machine Registres d’indexation

PlanPlan

MémoiresMémoires

Les disques durs et interfaces (IDE)Les disques durs et interfaces (IDE)

ProcesseursProcesseurs

Cartes mères et BIOSCartes mères et BIOS

Les ports (parallèles et séries)Les ports (parallèles et séries)

Les IRQLes IRQ

Les ports // et sérieLes ports // et série

� Initialement la communication entre les machines se faisait à travers les ports série et les ports parallèle.

� Le port série

� périphériques fonctionnant en mode bidirectionnel avec l'ordinateur (modems, scanners, souris, certaines imprimantes, lecteur de code barre, config routeur)

� Le port parallèle

� essentiellement utilisé avec des imprimantes.

Interface sérieInterface série

� Interface asynchrone

� le signal de cette interface n'est pas synchronisé avec celui d'un bus quelconque.� les bits des données sont envoyés les uns après les autres (un seul fil pour l'émission et un autre fil pour la réception)� chaque caractère est délimité par un signal de début (bit à 0) et par signal de fin standard qui peut correspondre à un ou deux bits de fin, cela permet d'indiquer que le caractère a été envoyé.

� L'interface asynchrone est orienté caractère

� on doit utiliser les signaux de début et de fin pour identifier un caractère.� augmente la duré des transferts de presque 25 %. En effet pour chaque ligne de 8 bits il faut au minimum 2 bits.

Port parallèlePort parallèle

� Pour le port série, les bits étaient envoyés les uns après les autres sur un seul fil.

� Pour le port parallèle, on utilise 8 fils pour l'émission et 8 fils pour la réception.

� on envoie simultanément 8 bits (taux de transfert * 8)� généralement utilisée par les imprimantes, car elles utilisent beaucoup de donnés.

� Limite physique lié aux problèmes de diaphonie entre les fils

� limitation de la longueur des câbles parallèles (au delàde 10 m atténuation significative du signal)� Ceci dit il existe des amplificateurs de signal

Page 89: Plan Historique : inventions (1) - demay.iut.lr.free.frdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · Programmation en langage machine Registres d’indexation

Port parallèlePort parallèle

� Évolution des besoins en débit des imprimantes

� différents types de ports parallèles sont apparus :

� Unidirectionnel ( 4 bits )� Bidirectionnel ( 8 bits )� Type I ( Standard )� Type 3 DMA ( Spécifique à IBM )� EPP ( Port Parallèle étendu )� ECP ( Port à Capacités étendues )

PlanPlan

MémoiresMémoires

Les disques durs et interfaces (IDE)Les disques durs et interfaces (IDE)

ProcesseursProcesseurs

Cartes mères et BIOSCartes mères et BIOS

Les ports (parallèles et séries)Les ports (parallèles et séries)

Les IRQ (Interruption matériel)Les IRQ (Interruption matériel)

E/S : Entrées / SortiesE/S : Entrées / Sorties

� Clavier (entrée) 0.01 Ko/ s� Souris (entrée) 0. 02 Ko/ s� Disquette (sauvegarde) 50 Ko/ s� Imprimante Laser (sortie) 100 Ko/ s� CD- Rom (sauvegarde) 500 Ko/ s� Disque Dur (sauvegarde) 5000 Ko/ s� Écran graphique (sortie) 30000 Ko/ s

� Le processeur doit gérer des périphériques :

� de différents rôles (entrée, sortie, sauvegarde)� de différentes vitesses !� avec des « langages » différents

� Sous-traitance de cette gestion à des contrôleurs

E/S : Périphérique et contrôleurE/S : Périphérique et contrôleur

� Chaque périphérique est « piloté » par un contrôleur qui

� contient souvent son propre microprocesseur, ses registres et sa mémoire « tampon »� s’occupe des commandes détaillées du périphérique :

� gestion des incidents� détection d’erreurs� conversion de format ...

Page 90: Plan Historique : inventions (1) - demay.iut.lr.free.frdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · Programmation en langage machine Registres d’indexation

E/S : Périphérique et contrôleurE/S : Périphérique et contrôleur

� Le dialogue Processeur/ Contrôleur s ’effectue grâce aux registres du contrôleur (ses ports) contenant :

� des données� l ’état du contrôleur� les commandes à effectuer

� Chaque E/ S est « implantée » en mémoire :

� une partie de la mémoire est réservée aux E/ S� lire/ écrire dans cette zone = commander le périphérique (TP1)

� Modes de transfert :

� par scrutation� par interruption� direct entre le contrôleur et la mémoire

E/S par scrutationE/S par scrutation

� Avantages : simplicité (le programme fait tout le travail)

� Inconvénients : consomme beaucoup de temps processeur

E/S par interruptionE/S par interruption

� Avantages : prg utilisateur arrêté que pendant le temps du transfert

� Inconvénients : besoin de plus de matériel

� contrôleur doit savoir générer une interruption� processeur doit savoir la détecter, ...

E/S par transfert direct (DMA)E/S par transfert direct (DMA)

� Avantages :

� DMA externe / processeur� transfert de données sans passer par le processeur !� DMA prioritaire sur le Bus

�Le processeur envoie au contrôleur DMA :

� l’adresse de début� la longueur des données� le sens du transfert

puis il déclenche le transfert.

�Le contrôleur DMA prend en charge� les commandes pour le contrôleur de périphériques� les commandes et adresses pour la mémoire

Page 91: Plan Historique : inventions (1) - demay.iut.lr.free.frdemay.iut.lr.free.fr/doc/1A/Informatique/I2-1 - Codage et circuits... · Programmation en langage machine Registres d’indexation

InterruptionsInterruptions

� Appelées IRQ

� 16 IRQ reconnues par leur numéro

� Conflit si deux contrôleurs utilisent le même numéro d'IRQ

� sauf sur le BUS PCI = partage d'interruption

� Windows :

� Panneau de configuration / Système / Gestionnaire de périphériques : pour voir les IRQ utilisées

IRQ : exemplesIRQ : exemples

Exemple : port sérieExemple : port série

� Quand un caractère est reçu par un port série

� il doit attirer l'attention de l'ordinateur en activant un canal de requête d'interruption. � Les ordinateurs à bus ISA 8 bits comportent 8 canaux de ce type. Les ordinateurs à bus ISA 16 bits en comportent 16.

� Sur une configuration standard, le port série COM1 utilise l'IRQ4 et le port série COM2 utilise l'IRQ3.

� Lorsqu'un port série est installé sur un ordinateur, il doit être configuré pour utiliser des adresses d'E/S spécifiques (appelées "ports") et des interruptions (appelées IRQ)

IRQ : port série et parallèleIRQ : port série et parallèle

Système COMx Port IRQTous COM1 3F8h - 3FF IRQ4Tous COM2 2F8h - 2FF IRQ3

Bus ISA COM3 3E8h - 3EF IRQ4*Bus ISA COM4 2E8h - 2EF IRQ3*Bus ISA COM5 3EOh IRQ4*Bus ISA COM6 2EOh IRQ3*Bus ISA COM7 338h IRQ4*Bus ISA COM8 238h IRQ3*

BusPort

Standard Autre Port E/S IRQISA 8bits LPT1 3BCh IRQ7ISA 8 bits LPT1 LPT2 378h AucuneISA 8 bits LPT1 LPT3 278h Aucune

ISA 16 bits LPT1 3BCh IRQ7ISA 16 bits LPT1 LPT2 378h IRQ7ISA 16 bits LPT2 LPT3 278h AucuneTous MCA LPT1 3BCh IRQ7Tous MCA LPT2 789h IRQ7Tous MCA LPT3 278h IRQ7

PortSérie

Port //