Architecture des ordinateurs - cours,...

177
Architecture des ordinateurs 1 Année Académique 2017-2018 Mr Radouane CHAHIN Site web :https://sites.google.com/a/uca.ma/r-chahin/

Transcript of Architecture des ordinateurs - cours,...

Page 1: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

Architecture des ordinateurs

1

Année Académique 2017-2018

Mr Radouane CHAHIN

Site web :https://sites.google.com/a/uca.ma/r-chahin/

Page 2: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

Plan du cours

2

1- Introduction

2- Représentation de l’information

- Représentation des caractères

- Représentation des entiers

- Représentation des réels

- Entiers relatifs

- Représentation des données alphanumériques

3- Architecture matériel de l’ordinateur

- Modéliser le fonctionnement des ordinateurs.

- Décrire l'organisation interne des ordinateurs.

- Connaitre la pyramide des types de mémoires informatique.

- Comparer les mémoires suivant différents critères et caractéristiques.

- Maitriser les bases de l‘algèbre booléenne.

- Éléments de logique combinatoire et séquentielle

- Éléments fonctionnels d’un processeur

- Construction du processeur : Architecture Intel x86

4- Architecture logicielle du processeur

- Modèle d’exécution

- Format des instructions

- Instructions arithmétiques et logiques

- Instructions d’accès mémoire

- Instructions de comparaison

- Instructions de saut et de branchement

Page 3: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

Introduction

3

But de cours:

1 Décrire l'organisation interne des ordinateurs et son évolution.

2 Modéliser le fonctionnement des ordinateurs.

3 Représenter des données alphanumériques.

4 Modéliser le calcul arithmétique et logique.

5 Ecrire un petit programme en langage assembleur.

6 Appréhender les principes généraux sous-jacents a la programmation.

Page 4: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

Introduction:Définitions

4

Ordinateur

Une machine de traitement de l'information (acquérir, conserver, traiter et restituer).

Type d'information & représentation

Valeurs numériques, textes, images, son, vidéos représentés sous forme de données numériques(Des 0 et des 1 ).

Informatique

Science du traitement de l'information.

Système informatique

Ensemble des moyens logiciels & matériels nécessaires pour satisfaire les besoins informatiques des utilisateurs.

Page 5: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

Qu’est-ce qu’un ordinateur ?

• « Machine automatique de traitement de l’information obéissant à des programmes formés par des suites d’opérations arithmétiques et logiques » (Larousse 2002)

• Différents niveaux d’approche : utilisateur, programmeur machine, concepteur de circuits logiques …

5

Page 6: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

Qu’est ce qu’un microprocesseur ?

• Un microprocesseur est un circuit intégré complexe. Il résulte de l’intégration sur une puce de fonctions logiques combinatoires (logiques et/ou arithmétique) et séquentielles (registres, compteur, etc…). Il est capable d'interpréter et d'exécuter les instructions d'un programme. Son domaine d’utilisation est donc presque illimité.

6

Page 7: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

Où trouve-t-on des systèmes à microprocesseur ?

• Les applications des systèmes à microprocesseurs sont multiples et variées :

Ordinateur, PDA, console de jeux, calculatrice, télévision, téléphone portable, distributeur automatique d’argent, robotique, lecteur carte à puce, code barre, automobile, instrumentation, etc…

Ordinateurmicro-ordinateur nano-ordinateur(65mm x 30mm x 5mm)

7

Page 8: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

Introduction: Utilisation des ordinateurs

Programme

Suite d'instructions dans un langage donnée, définissant un traitement exécutable par un ordinateur

• programmes systèmes

• programmes d'application

Système d'exploitation

Programme système qui gère les différentes ressources de la machine

Programmation

A partir d'un problème donne, réaliser un programme dont l‘exécution apporte une solution satisfaisante au problème pose

• langages de programmation (machine, assembleur, évolues)

8

Page 9: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

Evolution schématique des langages

9

Page 10: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

De quoi allons-nous parler et quel chemin allons nous suivre ?

10

Page 11: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

Représentation de l’information

11

Objectifs du chapitre

1 Comprendre le principes des codages binaires.

2 Représenter des nombres entiers dans diverses représentations classiques (vas, C1, C2).

3 Représenter des nombres réels en IEEE 754

4 Comprendre le lien entre représentation des nombres et calcul arithmétique

5 Représenter des données alphanumériques ASCII, UNCODE (UTF8,UTF16,UTF32)

Page 12: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

Représentation de l’information

Différents types d'informations

• Instructions

• Données

• Nombres (entiers, réels)

• Images

• Vidéos

• Sons

• etc.

• Toujours représentées sous forme binaire (0 ou 1) a l'aide de bits.

12

Page 13: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

Système binaire

• Binaire: 0, 1

• Décimal: 0, 1, …, 9

• Octal: 0, 1, …, 7

• Hexadécimal: 0, 1, …, 9, A, B, C, D, E, F

• E.g. Binaire-Décimal-Hexadécimal

0000 = 0= 0 ; 0101 = 5 =5; 1010 = 10 = A

13

Décimal Binaire Hexadécimal octal

1 1 1 1

2 10 2 2

3 11 3 3

4 100 4 4

5 101 5 5

6 110 6 6

7 111 7 7

8 1000 8 10

9 1001 9 11

10 1010 A 12

11 1011 B 13

12 1100 C 14

13 1101 D 15

14 1110 E 16

15 1111 F 17

Page 14: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

Valeur numérique binaire• Un nombre qui s'exprime en base B par les quatre chiffres 1101

s'analyse :1*B3 + 1*B2 + 0*B1 + 1*B0 = (1101)10

qui donne :

• 1101 en base B = 10 :1*103 + 1*102 + 0*101 + 1*100 = (1101)10

• 1101 en base B = 8 :

1*83 + 1*82 + 0*81 + 1*80 = (577)10

• 1101 en base B = 2 :

1*23 + 1*22 + 0*21 + 1*20 = (13)10

14

Page 15: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

Conversion• Binaire décimal: (10010)2=1*24 + 0*23 + 0*22 + 1*21 + 0*20 = (18)10

• Décimal binaire

(25)10 25÷2 = 12 reste 1

12÷2 = 6 reste 0

6÷2 = 3 reste 0

3÷2 = 1 reste 1

1÷2 = 0 reste 1

On obtient: (25)10 = (11001)2

• Binaire octal

On effectue le remplacement, de droite à gauche, de 3 bits par le chiffre octal correspondant. Si le nombre de bits n’est pas un multiple de 3, on complète a gauche avec des zéros.

(101101)2 = (101 101)2 =(55)8

• Binaire hexadécimale

On effectue le remplacement, de droite à gauche, de 4 bits par le chiffre hexadécimal correspondant. Si le nombre de bits n’est pas un multiple de 4, on complète a gauche avec des zéros.

(101101)2 = (0010 1101)2 = (2D)16 15

Page 16: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

Un autre exemple• Convertissons (01001101)2 en décimal à l'aide du schéma ci-dessous:

• Le nombre en base 10 est

(01001101)2 =26 + 23 + 22 + 20 = 64 + 8 + 4 + 1 = (77)10

• Le nombre en base 8 est

(01001101)2 = (001 001 101)2 = (115)8

(115)8 = 82 + 81 + 5*80 =64+8+5= (77)10

• Le nombre en base 1 est

(01001101)2 = (0100 1101)2 = (4D)16

(4D)16 = 4*161 + 13*160 =64+13= (77)10

16

27 26 25 24 23 22 21 20

0 1 0 0 1 1 0 1

Page 17: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

Dans le sens inverse

• De décimal en binaire: (77)10

• Résultat = (1001101)2

17

Page 18: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

Valeurs: comparaison• Comparer dans l’ordre de gauche à droite(comme nombre décimal)

• Si à une position, ai<bi, alors a<b

• Dans l’ordre croissant

000

001

010

011

100

101

110

11118

Page 19: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

Valeurs: addition

• 60+17 en base 211 1 1 1 0 0

+ 0 1 0 0 0 1

1 0 0 1 1 0 1

77

• 25 + 24 + 23 + 22 = 32 +16 + 8 + 4 = (60)10

• 24 + 20 = 16 + 1= (17)10

• 26 + 23 + 22 + 20 = 64 + 8 + 4 + 1 = (77)10

19

Page 20: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

Valeurs: soustraction

• 8-1 en base 2

1 10 10 10

- 01 01 01 1

0 1 1 1

7

• 23 = (8)10

• 20 = (1)10

• 22 + 21 + 20 = 4 + 2 + 1 = (7)10

20

Page 21: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

Valeurs: multiplication

7*5 en base 21 1 1

* 1 0 1 1 1 1

1 1 01 0 0 .1 1 1 . .

1 0 0 0 1 1 35• 22 + 21 + 20 = 4 + 2 + 1 = (7)10

• 22 + 20 = 4+ 1= (5)10

• 25 + 21 + 20 = 32+ 2+ 1 = (35)10

21

Page 22: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

Valeurs: division

• 37/5 en base 2

1 0 0 1 0 1/ 1 0 1

0 0 0 1 1 1

7

• Tapez une équation ici.

• 25 + 22 + 20 = 32+ 4+ 1 = (37)10

• 22 + 20 = 4+ 1= (5)10

• 22 + 21 + 20 = 4 + 2 + 1 = (7)10

22

100101 101-000 00111

100- 0001001- 101

1000- 1010111- 101

010

Page 23: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

Valeurs: négatives décimal binaire

23

3 façons de représenter +/- N avec n bits:

• Module et signe (noté M&S)• on utilise le bit le plus à gauche pour représenter le signe

• Exemple mots de 4 bits ((3)10=(011)2) donc (0011)2 =(3)10 et (1011)2 =(-3)10

• Complément à 1 (noté Cà1)• pour un nombre négatif, on prend la représentation de la partie entière et on

inverse tous les bits

• Exemple mots de 4 bits: ((4)10=(100)2) donc (0100)2=4 et (1011)2 =(-4)10

• Complément à 2 (noté Cà2)• idem, mais avant d ‘inverser, on soustrait 1 (ou on inverse puis on ajoute 1)

• Exemple mots de 4 bits : ((6)10=(110)2) donc (0110)2=6 et (1010)2=(-6)10

Page 24: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

Exemples: binaire décimal de nombre négative

24

nombre Négative en M&S 1.on remplace bit de signe par - ;2. on calcule équivalent décimal (comme

précédemment partie nombre positive)

nombre Négative en Cà1 1.on remplace bit de signe par - ;2. On inverse chaque bits de Cà1( résultat M&S);

3. On calcule équivalent décimal comme précédemment

nombre Négative en Cà2 méthode 1 1.on remplace bit de signe par - ;2. On soustrais 1 ;3. On inverse chaque

bits de Cà1( résultat M&S);4. On calcule équivalent décimal comme précédemment

nombre Négative en Cà2 méthode 2 1.on remplace bit de signe par - ;2. On inverse chaque bits;3. On ajoute

1 (résultat M&S);4. On calcule équivalent décimal comme précédemment

Comparaison méthode 1 et 2 exemple : #101 on inverse 110 on ajoute 111 #101 on soustrait 100 on inverse 111

Décimal si :M&S Décimal si :Cà1 Décimal si :Cà2

011010001000111110101100

3210-3-2-1-0

3210-0-1-2-3

3210-1-2-3-4

Page 25: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

Calcule :Addition (ADD)et soustraction(SUB)

25

• Le bit signe est traité comme tous les autres bits (on les additionne,…… !)

• La soustraction est un cas particulier de l’addition

• les nombres négatifs sont traités comme des nombres à additionner

Exemple mots de 3 bits:

• Addition par Cà1, (si Retenue? on ajoute 1 au résultat)

0102+1102 = 10002un retenu +1 0012 équivalent on décimal 2+(-1)=1

0012+1012 = 1102pas de retenu 1102 équivalent on décimal 1+(-2)=-1

• Addition par Cà2 (Directe)

0102+1112 = 1 00120012 équivalent on décimal 2+(-1)=1

0012+1102 = 11121112 équivalent on décimal 1+(-2)=-1

Page 26: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

Retenu ≠ débordement(à éviter)

26

• Le retenu (Carry )est rencontrée lorsqu’une retenue (carry) existe à la fin de l’opération d’addition ou soustraction(comme décimal).

• La condition Overflow (débordement) est rencontrée lorsque l’addition de deux nombres produit un nombre trop grand pour être représenté. En complément 2, cela se produit si:

(+A) + (+B) = −C ; (−A) + (−B) = +C ; (+A) − (−B) = −C ; (−A) − (+B) = +C;

• Exemple débordement 7+3, mots de 4 bits, Cà2

(+7) 0 1 1 1

+ (+3) 0 0 1 1

(-5) 1 0 1 0

Autre exemple mots de 4 bits, Cà21111 + 0001 = 0000 (-1)+1=0 retenu, pas de débordement

1100 + 1100 = 1000 (-4)+(-4)=(-8) retenu, pas de débordement

0000 - 0001 = 1111 0-1=(-1) retenu, pas de débordement

0111 + 0001 = 1000 7+1=(-8) pas de retenu, débordement

1000 - 0001 = 0111 (-8)-1=7 pas de retenu, débordement

0100 + 0100 = 1000 4+4=(-8) pas de retenu ,débordement

1000 + 1000 = 0000 (-8)+(-8)=0 retenu ,débordement

0100 + 0001 = 0101 4+1=5 pas de retenu, pas de débordement

0110 + 1001 = 1111 6+(-7)=(-1)pas de retenu, pas de débordement

1000 + 0001 = 1001 (-8)+1=(-7) pas de retenu, pas de débordement

0 = 0000 -8 = 1000

1 = 0001 -7 = 1001

2 = 0010 -6 = 1010

3 = 0011 -5 = 1011

4 = 0100 -4 = 1100

5 = 0101 -3 = 1101

6 = 0110 -2 = 1110

7 = 0111 -1 = 1111

Tableau Cà2 sur 4 bit

Page 27: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

Capacité de représentation• Valeur entière avec 8 bits

• Valeur positive max: de 000000002 à 111111112 de 0 à 25510

• Valeur max (complément à 1): Positive de 000000002 à 011111112 de 0 à 12710

Négative de 100000002 à 111111112de -127 à -010

• Valeur max (complément à 2): Positive de 000000002 à 011111112de 0 à 12710

Négative de 100000002 à 111111112 de -128 à -110

• Capacité de Représentation = Pour les valeurs positifs: intervalle [0, 2 nombre bits -1] Pour négative (complément à 1): intervalle [1-(2 nombre bits)/2, -1+(2 nombre bits)/2] Pour négative (complément à 2): intervalle [-(2 nombre bits)/2, -1+(2 nombre bits)/2]

Exemple pour 3 bits: Pour les valeurs positifs: intervalle [0, 23-1][0, 7] Pour négative (complément à 1): intervalle [1-(23)/2, -1+(23)/2][1-4, -1+4][-3,3] Pour négative (complément à 2): intervalle [-(23)/2, -1+(23)/2][-4, -1+4][-4,3]

27

M&S Cà1 Cà2

011010001000111110101100

3210-3-2-1-0

3210-0-1-2-3

3210-1-2-3-4

Page 28: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

Conversion chiffre réel Binaire décimal• Virgule fixe dn-1 dn-2 dn-3 ….. d2 d1 d0 d-1 d-2 d-m avec n et m fixe

• Un nombre qui s'exprime en base B par 3 bits avec n=2 et m=1 le chiffres 101 s'analyse :1*B1 + 0*B0 +1*B-1

en binaire (10,1)2 = 1*21 + 0*20 +1*2-1=(2,5)10

en octale(10,1)8 = 1*81 + 0*80 +1*8-1=(8,125)10

en hexadécimal (10,1)16 = 1*161 + 0*160 +1*16-1=(16,0625)10

• Incertitude constant =2-m

pour m=1 est de +0,5

]1,5; 1,5+0,5[est codé par (01,1)2

pour m=2 est de +0,25

]0,75; 0,75+0,25[

est codé par (0,11)2

28

n=3 m=0 n=2 m=1 n=1 m=2 n=0 m=3

000001010011100101110111

01234567

00,511,522,533,5

00,250,50,7511,251,51,75

00,1250,250,3750,50,6250,750,875

Page 29: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

Conversion chiffre réel décimale Binaire• Exemple 77,75 avec n=8 et m=2

• Pour la partie entier il faut faire une diversion

successive des quotients sur 2 puis écrire les

restes en commençant par le dernier: 77,7510

• Pour la partie réel il faut faire une multiplication successive des parties réel par 2 puis écrire la suite de la partie entier en commençant par le premier

• 0,75*2=1,5

• 0,5*2 =1

• on binaire 0,11 (vérification 1*2 -1 +1*2 -2 =0,5 + 0,25 = 0,75) Résultat 77,7510 = 01001101,112

• Exemple 0,4 avec n=1 et m=4 incertitude est ± 0,0625

• 0,4*2 =0,8

• 0,8*2 =1,6

• 0,6*2 =1,2

• 0,2*2 =0,4

• on a 4 chiffre après la virgule on (tronque) arrêt le calcule (le résultat est approximatif).Résultat 0,410 =0,01102

0,01102 = 0*2 -1 +1*2 -2 + 1*2 -3 + 0*2 -4 = 0,25+0,125= 0,37510 + 0,0625 =]0,375; 0,375+0,0625[=] 0,375; 0,4375 [

29

Page 30: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

Valeurs: réel négative (virgule fixe)• Pour les valeurs négatives ont utilisent les mêmes règles de représentations vu avant M&S, Cà1 et Cà2

Exemple pour n=3 et m=2:

• Calcule Pour n et m fixes, e.g. en Cà2:

• Pour d’autres n et m fixes, la même opération à différentes interprétations selon les valeurs de n et m

30

décimale M&S Cà1 Cà2

-1,25 10101 11010 11011

1 1 1

n=5 et m=0

n=3 et m=2

0 0 1 1 0 6 1,5

+ 1 1 0 1 1 -5 -1,25

0 0 0 0 1 1 0,25

n=5 et m=0

n=3 et m=2

0 0 1 1 0 6 1,5

- 0 0 1 0 1 5 1,25

0 0 0 0 1 1 0,25

Page 31: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

Valeurs: réel (virgule flottant)• virgule flottante : la position de la virgule n'est pas fixe. Ces nombres sont des

approximations de nombres réels. Ecriture sous cette forme mantisse * Bexposant

Avec mantisse d0 d-1 d-2 d-m avec m fixe et exposant dn-1 dn-2 dn-3 ….. d2 d1avec n fixe

• Exemple 236,43= 0,23643 * 103

L’exposant et la mantisse peut être signé.

31

Page 32: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

Valeurs: réel (norme virgule flottant)Codage de la mantisse

• Taille de la mantisse bornée.

• mantisse peut être signé +/-

• La mantisse -1<Mantisse<1

• Changement de base (décimal binaire) obtenu par multiplications successives par 2.

• Si cela ne converge pas vers 1 alors il n'y a pas de représentation exacte de ce nombre, on tronque alors suivant la taille de la mantisse.

• Si la taille de la mantisse augmente, la précision des valeurs possibles représentables grandit.

• Exemple conversion de 0,375

0,375*2 =0,75

0,75*2 =1,5

0,5*2 =1,0

0,37510 = 0,0112

0,375= 0*2-1 +1*2-2 + 1*2-3 = 0*0,5 + 1*0,25+ 1*0,125

0,0112 Soit 0,11 * 2-1mantisse =11

32

Page 33: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

Valeurs: réel (norme virgule flottant)Codage de l'exposant

• Taille de l'exposant bornée.

• Codage par excèdent n : on décale l'exposant on lui ajoutant une valeur n. mantisse * Bexposant-n

=> Pas d'exposant négatifs

=> Facilite les opérations de tri (pas besoin de conversion au décimal pour trier)

• Exemple , sur 3 bits, excèdent à 4 : (111)2 =7-4=3 et (000)2 =0-4=-4

+3 111

+2 110

+1 101

0 100

-1 011

-2 010

-3 001

-4 000

• Si la taille de l'exposant augmente alors l'intervalle des valeurs possibles représentables grandit.

• Incertitude varie entre ±2-4 à ±23

Exemple(suit): mantisse =11

0,375=0,0112 = 0,11 * 2-1 soit avec exposant excèdent à 4 0,11 * 23-4 exposant=011

33

Page 34: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

Valeurs: réel (virgule flottant: Norme IEEE 754)• Objectif: harmoniser les représentations en virgule flottante et définir le comportement en cas

d’exception(dépassement, sous-passement)

• Bit de signe S (signe(+)=0,signe (-)=1)

• Mantisse normalisée en base de 2 avec un bit caché (1,)(1≤M<2)

• Exposant code en excédent 2(n-1)-1 , n est le nombre de bit d’exposant

• Incertitude varie de ±1,4×10−45 à ± 2×1031 (de ±2-127 à ±2127)

S E M

En simple précision, x = (-1)S * (1,M)*2(E-127) 1bit 8bit 23 bit

En double précision, x = (-1)S * (1,M)*2(E-1023) 1bit 11bit 52 bit

34

Type Exposant Mantisse Valeur approchée Écart / préc

Zéro 0000 0000 000 0000 0000 0000 0000 0000 0,0

Plus petit nombre dénormalisé 0000 0000 000 0000 0000 0000 0000 0001 1,4×10−45 1,4×10−45

Nombre dénormalisé suivant 0000 0000 000 0000 0000 0000 0000 0010 2,8×10−45 1,4×10−45

Nombre dénormalisé suivant 0000 0000 000 0000 0000 0000 0000 0011 4,2×10−45 1,4×10−45

……. …….. ……. ……. ……

Presque le plus grand nombre 1111 1110 111 1111 1111 1111 1111 1110 3,40282326×1038

Plus grand nombre normalisé 1111 1110 111 1111 1111 1111 1111 1111 3,40282346×1038 2×1031

Infini 1111 1111 xxx xxxx xxxx xxxx xxxx xxxx Infini ou NAN

Page 35: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

Valeurs: réel (virgule flottant: Norme IEEE 754)Exemple décimal binaire

• -0,75 en simple précision

0,75*2 =1,5 ; 0,5*2 =1,0

0,7510 = 0,112

0,375= 0*2-1 +1*2-2 = 0*0,5 + 1*0,25

0,112 Soit 1,1 * 2-1 = 1,1 * 2126-127 en forme normalisée

Mantisse= 0,1= 100 0000 0000 0000 0000 0000 avec n=0 et m=23

Exposant = 12610= 011111102-0,75 en simple précision 1 01111110 10000000000000000000000= BF40000016

Exemple binaire décimal

• 1 10000001 01000000000000000000000= C0A00000 16 en simple précision

Signe=1

Exposant= 100000012=129

Mantisse =0,012= 0*2-1 +1*2-2=0,2510

(-1)S * (1,M)*2(E-127) = (-1)1 * (1,25)*2(129-127) =-1*1,25*22 =-1,25*4= -5 10

35

Page 36: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

Opérations flottantes(Norme IEEE 754)• Les opérations flottantes impliquent un traitement simultané :

• des mantisses (c'est a dire des parties fractionnaires), et des exposants.

• Opérations de base:

• L'addition (ou soustraction) implique:

1. Dénormalisation du nombre le plus petit pour que les exposants deviennent égaux,

2. Addition (soustraction) des mantisses,

3. Renormalisation éventuelle du résultat.

• La multiplication (division) implique:

1. la multiplication (division) des mantisses,

2. Calcule des exposants par l'addition (soustraction). (attention pour exposant code en excédent avec E1+E2 -127 (ou E1-E2 +127))

3. Renormalisation éventuelle du résultat

36

Page 37: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

Exemples :Opérations flottantes(Norme IEEE 754)

Addition A+B= (1,11 *21 )2 +(1,0101*22)2

1. Dénormalisation de A (plus petit exposant)

A= (1,11 *21)2 = (0,111 *22)2

2. Addition des mantisses

(0,111)2+(1,0101)2=(10,0011)2

3. Renormalisation

A+B=(10,0011*22)2=(1,00011*23)2

Alors A+B=(1,00011*2130-127)2

E=(130)10 =(10000010)2

• A+B=0 10000010 00011000000000000000000

• Vérification

(1,00011*2130-127)2=(1,00011*23)2 = (1000,11)2 = (8,75)10

Et (3,5)10 +(5,25)10 =(8,75)10

Multiplication A*B=(1,11 *21 )2 *(1,0101*22)2

1. multiplication des mantisses

(1,11)2*(1,0101)2=(10,010011)2

2. Calcule des exposants

Méthode 1: (21 )2*(22)2 = (23)2 =(2130-127)2

E=(130)10 =(10000010)2

Méthode 2:E=128+129-127=(130)10

3. Renormalisation

A*B=(10,010011*2130-127)2=(1,0010011 *2131-127)2

E=(131)10 =(10000011)2

• A*B= 0 10000011 00100110000000000000000

• Vérification

(1,0010011 *2131-127)2 =(1,0010011 *24)2= (10010,011)2 = (18,375)10

Et (3,5)10 *(5,25)10 = (18,375)10

37

Soit deux nombres: A= (3,5)10 = (1,75*2)10=(1,11 *21)2 =(1,11 *2128-127)2

E=(128)10 =(10000000)2

A=0 10000000 11000000000000000000000

B=(5,25)10 =(101,01)2= (1,0101*22)2=(1,0101*2129-127)2

E=(129)10 =(10000001)2

B=0 10000001 01010000000000000000000

Page 38: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

Encoder des lettres ASCII (7 bits)Binary Oct Dec Hex Glyph

010 0000 040 32 20

010 0001 041 33 21 !

010 0010 042 34 22 "

010 0011 043 35 23 #

011 0000 060 48 30 0

011 0001 061 49 31 1

011 0010 062 50 32 2

100 0001 101 65 41 A

100 0010 102 66 42 B

110 0001 141 97 61 a

110 0010 142 98 62 b

110 0011 143 99 63 c

• Les caractères usuels anglo-saxons utilisent généralement un code sur 7 bits appelé codage ASCII ; les codes varient entre 0 et 127.

• Comme ces codes de 7 bits sont toujours plongés dans un octet (mot de 8 bits), des codages étendus sur 8 bits ont été développés, d’abord de façon propriétaire, puis de façon organisée par la norme ISO-8859

• UNICODE sur 16 bites

• UTF-8, qui représente chaque code-point par une suite de 1 à 4 octets. Les codes-points inférieurs à 0+0080 (les codes ASCII) sont représentés par un unique octet contenant cette valeur :l’UTF-8 est donc rétrocompatible avec l’ASCII

38

Page 39: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

Un “texte” en ASCIICher ami,

67 104 101 114 32 97 109 105 44 (en décimal)

Il faut différencier entre

• Nombre

12 =(12)10=(00000000 001100)2

• Texte

"12" ou '12'= (49 50) 10

=(00110001 00110010)2

39

Page 40: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

Un “texte” en UNICODE UTF-8 Cher ami,

67 104 101 114 32 97 109 105 44 (en décimal)

• ASCII dans UTF-8

• UTF-16

• UTF-32

40

Page 41: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

Encodage de l'information 1/2• Objectif : Utilisation des codes pour représenter l'information afin de résoudre 3 types de problèmes :

• Assurer l‘ intégrité de l'information (détection et correction d'erreurs)

• Codes autovérificateurs (contrôle de parité ou somme de contrôle ), exemple code ASCII : 7 bits étaient utilisés le bit 8 bits est la somme de nombre de 1 dans le code.

• Codes autocorrecteurs (double parité(2 bit ligne et colonne), hamming, codes polynomiaux).

• Minimiser la taille de l'information (compression), (Codage de Huffman)

• Garantir la sécurité de l'information (encryptage/chiffrement).

41

Page 42: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

Encodage de l'information 2/2Codage de Huffman

• consiste a remplacer les caractères les plus fréquents par des codes courts et les caractères les moins fréquents par des codes longs

• utilise la notion de code préfixe

42

Page 43: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

Méthode de codage de Huffman 1/3• exemple : "recherchechatchatain"

1. Construction du tableau :Il faut compter tout d’abord tous les caractères du fichier a coder et affecter a chacun d’entre eux son ≪ poids ≫ d’apparition. On obtient alors un tableau ou chaque case correspond a un caractère et son poids, tout étant range dans l'ordre du codage ASCII (ordre alphabétique)

2. Construction de l'arbre: Chacune des cellules du tableau sera une feuille de cet arbre. Pour compléter cet arbre, il faut associer les feuilles (caractères ensemble). Dans chaque étape on va associer les caractères ayant le plus petit poids pour former un nouveau nœud.(chercher la plus petite somme de deux poids possible)

• Ainsi, on commence par choisir les deux caractères ayant les ≪ poids ≫ les plus faibles. En cas d'égalité entre différents ≪ poids ≫, on choisit en priorité le premier caractère dans l'ordre correspondant au codage ASCII.

• Apres cela, on ajoute un nœud à l'arbre avec la somme des deux poids des (feuilles) caractères (ou nœud)choisis précédemment.

• On réitère le processus en considérant l'arbre obtenu (ôte des deux caractères précédemment sélectionnes mais avec le nœud supplémentaire). En cas d'égalité entre différents ≪ poids ≫, on choisit en priorité une somme de deux feuilles que une somme de feuille-nœud selon l'ordre correspondant au codage ASCII.

• Ensuite, on refait ainsi pour tous les caractères suivants jusqu'au dernier.

3. Association bits/lettres : Une fois l'arbre termine on va associer un bit aux branches de l’arbre, c'est-a-dire que l’on va choisir, par convention, que les branches de gauche correspondent a 0 et que les branches de droite correspondent a 1.

43

caractère a c e h i n r t

poids 3 4 3 4 1 1 2 2

Page 44: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

Méthode de codage de Huffman 2/3• exemple : "recherchechatchatain" 2 Construction de l'arbre (suit exemple):

44

1) poids 1+1>=1 deux nœuds successives de 1 2) poids 2+2 >=2 deux nœuds successives de 2

3) poids 2+3 >=3, on ajout le 1er nœud dans l'ordre ASCI nœud (a) au racine 2

4) poids 4+3>=5 , le plus proche dans l’ordre ASCIsont (c) et (e)

5) poids 4+4>=7, on ajout le nœud (h) dans l'ordre ASCI au racine 4

6) poids 5+7>=7

cacher

cacher

cacher

cacher

Page 45: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

Méthode de codage de Hoffman 3/3• exemple : "recherchechatchatain" 3 Association bits/lettres(suit exemple):

On obtient le codage suivant :

010 110 111 00 110 010 111 00 110 111 00 101 011 111 00 101 011 101 1000 1001

r e c h e r c h e c h a t c h a t a i n 45

caractère code

a3 101

c4 111

e3 110

h4 00

i1 1000

n1 1001

r2 010

t2 011

Page 46: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

Représentation des primitives d'un langage (exemple, langage C)

46

Type de donnée Signification Taille (en octets) Plage de valeurs acceptée

char Caractère 1 -128 à 127

unsigned char Caractère non signé 1 0 à 255

short int Entier court 2 -32 768 à 32 767

unsigned short int Entier court non signé 2 0 à 65 535

int Entier2 (sur processeur 16 bits)4 (sur processeur 32 bits)

-32 768 à 32 767-2 147 483 648 à 2 147 483 647

unsigned int Entier non signé2 (sur processeur 16 bits)4 (sur processeur 32 bits)

0 à 65 5350 à 4 294 967 295

long int Entier long 4-2 147 483 648 à 2 147 483 647

unsigned long int Entier long non signé 4 0 à 4 294 967 295

float Flottant (réel) 4 3.4*10-38 à 3.4*1038

double Flottant double 8 1.7*10-308 à 1.7*10308

long double Flottant double long 10 3.4*10-4932 à 3.4*104932

Page 47: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

Récapitulatif des différentes représentations relatives aux données

47

données

numériques

Nombres entiers positifs

Conversion directe

(Décimal binaire)

Nombres entiers négatifs

(M&S, Cà1, Cà2)

Nombres fractionnaires

(virgule fixe, virgule flottante(mantisse, base,

exposant))

Non numériquesCodage par tables (ASCII,UNICODE)

Page 48: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

Les composantes de l’ordinateur

48

Objectifs du chapitre

1. Modéliser le fonctionnement des ordinateurs.

2. Décrire l'organisation interne des ordinateurs.

3. Connaitre la pyramide des types de mémoires informatique.

4. Comparer les mémoires suivant différents critères et caractéristiques.

5. Maitriser les bases de l‘algèbre booléenne.

6. Éléments de logique combinatoire

7. Éléments de logique séquentielle

8. Éléments fonctionnels d’un processeur

9. Construction du processeur Architecture Intel x86

Page 49: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

Modèle de von Neumann: Turing machine – 1936

49

Page 50: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

Le modèle de Von Neumann

• Von Neumann

• Harvard

50

• • • • •

MÉMOIRECPU

Unité central ES ES ES

MÉMOIRE

DONNÉESCPU ES • • • • •ES ES

BUS INSTRUCTIONS

MÉMOIRE

INSTRUCTION

BUS DONNÉES

Page 51: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

Bus: organisation des bus 1/2

51

On considère qu'il existe deux générations de bus bien distinctes :

une première génération avec un bus unique, la plus ancienne ;

une seconde génération avec des bus segmentés

Page 52: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

Bus: organisation des bus 2/2

52

Page 53: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

La mémoire :definitions et presentations

53

Une mémoire est un circuit à semi-conducteur permettant d’enregistrer, de conserver et de restituer des informations (instructions et variables).

Une mémoire peut être représentée comme une armoire de rangement constituée de différents tiroirs. Chaque tiroir représente alors une case mémoire qui peut contenir un seul élément : des données. Le nombre de cases mémoires pouvant être très élevé, il est alors nécessaire de pouvoir les identifier par un numéro. Ce numéro est appelé adresse. Chaque donnée devient alors accessible grâce à son adresse

La taille d’une case mémoire est de 1 octets en général

adresse Case mémoire

0=000

1=001

2=010

3=011

4=100

5=101

6=110

7=111 0001 1010

Page 54: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

Représentation en mémoire : texteEn informatique, Un texte est une chaîne de caractères est à la fois conceptuellement une suite ordonnée de caractères et physiquement une suite ordonnée d'unité de code (code unit exemple ASCII)

Dans une mémoire informatique, l'adresse mémoire du premier caractère est connu. Deux méthodes pour délimiter la fin de la chaîne:

• soit elle est terminée par un caractère de fin de chaîne (zéro binaire en langage C, et on parle alors d’ASCIIZ pour indiquer « terminé par un zéro »),

• soit le nombre de caractères est stocké en parallèle au début (BASIC,Pascal, PL/I).

Exemple mot « Bonjour » en mémoire avec les deux méthodes

54

FRANK en mémoire, délimité par un caractère nul (utilisé pour afficher en écran en DOS)

B o n j o u r NUL B w

42 6F 6E 6A 6F 75 72 00 42 77

FRANK en mémoire stocké avec la longueur (utilisé pour lire de clavier en DOS)

longueur B o n j o u r B w

07 42 6F 6E 6A 6F 75 72 42 77

Page 55: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

Écriture en mémoire : Endianness• En informatique, certaines données telles que les nombres entiers peuvent être représentées sur plusieurs octets.

L'ordre dans lequel ces octets sont organisés en mémoire est appelé Endianness

• Gros boutiens (Big endian): octet de poids fort en premier

exemple 0xA0B70708 en notation hexadécimales

Exemple famille : Motorola 68K, PowerPC, MIPS,…

Big-endian

• Petits boutiens (Little endian):octet de poids faible en premier

• exemple 0xA0B70708 en notation hexadécimales

Exemple famille : intel, ARM, Alpha…

Little endian 55

mémoire

Adr 08

Adr+1 07

Adr+2 B7

Adr+3 A0

registre

A0B7O708

A0B7O708

registre

mémoire…

Adr A0

Adr+1 B7

Adr+2 07

Adr+3 08

Page 56: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

Mémoire: type d’accès au données(accès direct)

• accès direct : les informations ont une adresse propre unique.

56

adresse Case mémoire

0=000

1=001

2=010

3=011

4=100

5=101

6=110

7=111 0001 1010

Type d’accès au donnée une case mémoire:accès directe par adresse: on accède directement à n'importe quelle information dont on connaît l'adresse et que le temps mis pour obtenir cette information ne dépend pas de l'adresse.accès séquentiel :pour accéder à une information sur bande magnétique, il faut dérouler la bande en repérant tous les enregistrements jusqu'à ce que l'on trouve celui que l'on désire. On dit alors que l'accès à l'information est séquentiel. Le temps d'accès est variable selon la position de l'information recherchée.accès semi-séquentiel :combinaison des accès direct et séquentiel. Pour un disque magnétique par exemple l'accès à la piste est direct, puis l'accès au secteur est séquentiel.

Page 57: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

Mémoire: type d’accès au données(accès séquentiel )• accès séquentiel : Le plus lent. Pour accéder à une information particulière, on est obligé de parcourir toutes

celles qui la précèdent.

• Cas particulier de fonctionnement de pile:

Pour enlever une assiette il faut enlever tous les assiette au dessus.

Empiler assiette couleur argent A

Empiler assiette couleur bleu B

Dépiler

Dépiler

57

Page 58: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

La mémoire :Caractéristiques

58

Adresse : valeur numérique désignant un élément physique de mémoire (exemple adresse d'un mot).

Capacité : (taille) nombre d'information que la mémoire peut contenir.

Vitesse :

Temps d'accès : temps de l’exécution d'une opération de lecture ou d’écriture:– accès séquentiel : Le plus lent. Pour accéder à une information

particulière, on est obligé de parcourir toutes celles qui la précèdent.

– accès direct : les informations ont une adresse propre.

– accès semi-séquentiel : combinaison des accès direct et séquentiel

Cycle mémoire : temps minimal entre 2 accès (plus long que le temps d’accès).

Débit : nombre d'informations lues ou écrites par secondes.

Volatilité : caractérise la permanence des informations dans une mémoire (i.e., ce qui ce passe si on coupe le courant !)

Type d’opération :

Mémoire vive : lecture / écriture

Mémoire morte : lecture seulement

Page 59: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

La mémoire :Différents types de mémoire

59

Une mémoire vive (RAM de l'anglais Random Access Memory) désigne une mémoire où chaque information stockée peut en tout temps être consultée, ou modifiée.

Une mémoire morte (ROM, de l'anglais Read Only Memory) est une mémoire où les informations ne peuvent pas être modifiées(exp BIOS).

Une mémoire volatile est une mémoire où les informations sont perdues lors de la mise hors tension de l'appareil.

une mémoire rémanente ou non volatile est une mémoire où les informations sont conservées même après la mise hors tension de l'appareil.

Une mémoire flash est une mémoire rémanente dont le contenu peut être intégralement effacé en une seule opération. Les premières mémoires de ce type pouvaient être effacées par une exposition à l'ultraviolet.

Page 60: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

La mémoire :Utilisation

60

Pour des raisons économiques, les mémoires sont en général divisées en plusieurs familles traitées, la plupart du temps, différemment par le système d'exploitation. Par ordre de coût croissant, on peut distinguer :

Une mémoire de masse ou mémoire de stockage sert à stocker à long terme des grandes quantités d'informations. Les technologies les plus courantes des mémoires de masse sont électromécaniques, elles visent à obtenir une capacité de stockage élevée à faible coût et ont généralement une vitesse inférieure aux autres mémoires ;

La mémoire vive est l'espace principal de stockage, dont le contenu disparaît des la mise hors tension de l'ordinateur ;

Une mémoire cache sert à conserver un court instant des informations fréquemment consultées. Les technologies des mémoires caches visent à accélérer la vitesse des opérations de consultation. Elles ont une très grande vitesse, et un coût élevé pour une faible capacité de stockage ;

La registre de processeur est intégrée au processeur. Ce type de mémoire est très rapide mais aussi très cher et est donc réservé à une très faible quantité de données.

Page 61: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

Principe :Hiérarchie des mémoires• Depuis le début des années 80, une des solutions utilisées pour masquer cette latence est de disposer une mémoire

très rapide entre le microprocesseur et la mémoire. Elle est appelée cache mémoire. On compense ainsi la faible vitesse relative de la mémoire en permettant au microprocesseur d’acquérir les données à sa vitesse propre.

• Soit la donnée ou l’instruction requise est présente dans le cache et elle est alors envoyée directement au microprocesseur.

• soit la donnée ou l’instruction n’est pas dans le cache, et le contrôleur de cache envoie alors une requête à la mémoire principale. Une fois l’information récupérée, il la renvoie au microprocesseur tout en la stockant dans le cache.

61

Page 62: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

La mémoire :Hiérarchie des mémoires

62

Architecture Von Neumann

Architecture Harvard

Architecture Harvard “réelle”

Mémoire

cache

(niveau 1)

Mémoire

non-volatile

(disque dur)

Mémoire

volatile

(RAM)

Mémoire

cache

(niveau 2)

Registres

CPU

(niveau 0)

Mémoire

volatile

instructions

Cache

instructions

(niveau 1)Mémoire

non-volatile

(disque dur)

Cache

instructions

(niveau 2)

Cache

données

(niveau 1)

Mémoire

volatile

données

Cache

données

(niveau 2)

Registres

CPU

(niveau 0)

Cache

instructions

(niveau 1)Mémoire

non-volatile

(disque dur)

Mémoire

volatile

(RAM)

Mémoire

cache

(niveau 2) Cache

données

(niveau 1)

Registres

CPU

(niveau 0)

Page 63: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

La mémoire :types de mémoire (registre 1/4)

63

Un registre est une élément de mémoire ayant une fonction particulière.

Très grande vitesse

Très faible capacité (e.g., taille d'un mot mémoire)

Volatile

Généralement intègres dans le CPU

(mais aussi parfois en mémoire centrale)

Servent principalement au stockage des opérandes et résultats intermédiaires.

Type de registre: visible, invisible

Exemples de registre : RA, RM, RI, CO, SP

Taille des registres mot RM et adresse RA: La taille qu'il faut pour stocker un mot mémoire et la taille qu'il faut pour stocker le nombre possible de mot mémoire

n bits 2n possibilités (donc 2n mots) ;

x possibilités log2(x) = log2(2y ) = y bits.

Si la mémoire comporte 256 mots de 32 bits, le registre d'adresse doit avoir log2(256) = log2(28) = 8 bits tandis que le registre mot doit avoir 32 bits.

Page 64: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

La mémoire :Types de mémoires (mémoire cache 2/4)

64

la mémoire cache (ou antémémoire) utilisée comme mémoire tampon(buffer) entre le CPU et la mémoire centrale :

Grande vitesse

Faible capacité

Volatile

Intégrée dans le processeur et cadencée a la même fréquence

Accès par le contenu en utilisant l'adresse en mémoire centrale comme clé.

Divers niveaux de mémoire cache: Mémoire cache des microprocesseurs L1, L2 et L3

Généralement de type SRAM, Le bit mémoire d'une RAM statique (SRAM) est composé d'une bascule. Chaque bascule contient entre 4 et 6 transistors.

En informatique, une mémoire cache est

chargée d’enregistrer et de partager

temporairement des copies d’informations

(données ou code) venant d’une autre

source (Cache Processeur, Cache disque

dur ….)

Page 65: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

La mémoire :Types de mémoires (mémoire centrale 3/4)

65

La mémoire centrale est l'organe principal de rangement des informations utilisées par le CPU. Elle contient les instructions et les données lors de l‘exécution d'un programme :

Vitesse moyenne

Capacité moyenne

Volatile

mémoire a semi-conducteurs

Utilise des bistables comme point mémoire (i.e., bit)

Mémoire a accès direct ( Random Access Memory (RAM))

Divers types de mémoire vive:

Mémoire vive dynamique Mémoire vive statique

Page 66: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

La mémoire :Types de mémoires mémoire de stockage 4/4)

66

Ce sont des mémoires utilisées pour le stockage permanent de l'information, constituées de périphériques divers (disque dur, supports optiques ou magnétiques, etc.)

Vitesse lente

Grande et très grande capacité

Non volatile

Mémoires a accès séquentiel et semi-séquentiel

Les mémoires de masse sont utilisées pour la sauvegarde et l'archivage de l'information

Mémoire flash est une mémoire de masse à semi-conducteurs réinscriptible de type EEPROM (mémoire morte effaçable électriquement et programmable)

Page 67: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

La mémoire :Notion de hiérarchie mémoire

67

Page 68: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

La mémoire :Gestion de mémoire 1/4• La Gestion de l’espace de la mémoire centrale (RAM)ou de stockage (disque dur)ce base sur trois principe:

• Le partitionnement

• La pagination

• La segmentation

• La protection

• Le partitionnement

Le partitionnement de la mémoire, consiste à découper, de façon arbitraire

et « définitive », l’espace mémoire centrale en plusieurs partitions

(ne pas confondre avec la partition du disque dur).

68

Page 69: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

La mémoire :Gestion de mémoire 2/4• La pagination:

• La technique de la pagination, qui rappelle celle du partitionnement statique, utilise un découpage de la mémoire en segments de même taille, eux-mêmes décomposés en petits blocs d’espace mémoire (128, 256 octets…) appelés pages. Pas confondre avec la pagination de disque dur dont la taille de page diffère selon le type de disque et type de partition (FAT32, NTFS,etc.)

• Translation adresses linéaires (dans la table des page)

en adresses physiques( réel )

69

Page 70: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

La mémoire :Gestion de mémoire 3/4• La segmentation

La segmentation est une technique qui consiste à diviser l’espace mémoire en N segments de longueur variable, un numéro étant attribué à chacun des segments de l’espace adressable.

70

Page 71: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

Mappage adresse virtuel / réel 3/4

La mémoire utilise les deux technique la segmentation et la pagination, l’adresse virtuel est alors traduite en une adresse physique en effectuant le calcul

Adresse virtuelle:

numéro page+ déplacement

Adresse physique:

numéro frame+ déplacement

• Dans le processeur L’unité de gestion mémoire (MMU ou Memory Managment Unit) permet de complètement séparer les adressages physique et logique

• mappage mémoire est la correspondance entre l’adresse virtuel et physique :

71

Page 72: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

La mémoire :Gestion de mémoire 4/4

• La protection consiste à introduire la notion de privilège, généralement numérotés de 0 à 3. Le niveau 0 est le niveau de privilège le plus élevé et le niveau 3 le plus faible. La protection mémoire repose sur les segments (pas confondre avec protection partitions exemple C: en windows 7) : le matériel n’autorise pas à un programme qui s’exécute dans un segment, d’accéder aux segments de privilège supérieur.

• Un anneau de protection (ou ring) est l'un des niveaux de privilèges imposés par l'architecture d'un processeur (ou system exploitation).

• Le terme « anneau de protection » vient du fait que l'on peut voir les différents modes de privilège comme des cercles concentriques ou le mode le plus privilégié est à l'intérieur et les modes moins privilégiés vont vers l'extérieur.

• Exemple :Le Pentium , qui est dérivé du 80486, est un microprocesseur CISC capable d'exécuter un programme dans différents modes de fonctionnement :

• le mode protégé multitâche permet d'utiliser toute la puissance du processeur. Les registres sont des registres 32 bits.

• le mode virtuel permet à des applications 8086 (environnement DOS) de s'exécuter dans le mode protégé,

• le mode réel correspond au fonctionnement d'un 8086. Les registres 32 bits (EAX, ...) ne sont pas disponibles, on utilise des registres de 16 bits (AX, ...) et on ne peut accéder qu'à 1 Mo de mémoire

72

Page 73: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

L’unité centrale :CPU(Le processeur)Architecture de processeur:

• CISC (Complex Instruction Set Computer) : choix d'instructions aussi proches que possible d'un langage de haut niveau ;

• RISC (Reduced Instruction Set Computer : choix d'instructions plus simples et d'une structure permettant une exécution très rapide) ;

Generalement le processeur est construit autour de deux éléments principaux :

• Unité de Commande

• Unité de Traitement

73

Page 74: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

L’unité centrale :Schéma général du fonctionnement du CPU

74

Page 75: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

L’unité centrale :CPU(Unité de commande)• Unité de Traitement

Unité Arithmétique et Logique (UAL) Réalise effectivement les opérations arithmétiques (+,-,*,/) et logiques (NOT, AND, OR, XOR).

• Vue comme une fonction à 3 paramètres• 1 opération,

• 2 arguments.

• Elle renvoie un résultat.

• Un registre lui est associé• l' accumulateur (ACC) pour par exemple mémoriser un résultat intermédiaire.

75

Page 76: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

L’unité centrale :CPU(Unité de commande)

• Unité de commande

Ensemble des dispositifs coordonnant le fonctionnement de l'ordinateur afin de lui faire exécuter la suite d'Operations spéciales dans les instructions du programme unité de commande

• Compteur ordinal (CO IP) : registre contenant l'adresse en mémoire ou est stocker l'instruction a chercher ;

• Registre d'instruction (RI) : reçoit l'instruction (opération + opérande) qui doit être exécutée ;

• Décodeur : détermine qu'elle opération doit être exécutée, parmi toutes les opérations possibles ;

• Séquenceur : génère les signaux de commande

• Horloge : émet des impulsions électroniques régulières, synchronisant ainsi toutes les actions du CPU.

76

Page 77: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

Décodeur et Décodage d’adresses• La multiplication des périphériques autour du microprocesseur oblige la présence d’un décodeur d’adresse chargé

d’aiguiller les données présentes sur le bus de données.

• En effet, le microprocesseur peut communiquer avec les différentes mémoires et les différents boîtier d’interface. Ceux-ci sont tous reliés sur le même bus de données et afin d’éviter des conflits, un seul composant doit être sélectionné à la fois.

• Lorsqu’on réalise un système microprogrammé, on attribue donc à chaque périphérique une zone d’adresse et une fonction « décodage d’adresse » est donc nécessaire afin de fournir les signaux de sélection de chacun des composants.

• Remarque : lorsqu’un composant n’est pas sélectionné, ses sorties sont mises à l’état « haute impédance » afin de ne pas perturber les données circulant sur le bus. ( elle présente une impédance de sortie très élevée = circuit ouvert ).77

Page 78: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

Opérations logiques - Algèbre de Boole(table de vérité)• Les étapes à suivre pour construire une table de vérité sont les suivantes :

- Écrire sur une première ligne le nom des variables d'entrée et de la variable de sortie ;

- Diviser le tableau en un nombre de colonnes égal au total des entrées et de la sortie. Ainsi, la table de vérité d'une fonction logique à deux entrées aura trois colonnes (deux pour les entrées et une pour la sortie) ;

- Déterminer le nombre de combinaisons possibles à l'aide des variables d'entrées. Ce nombre est égal à deux exposant le nombre d'entrées. Par exemple, avec trois entrées, il y aura 23 = 8 combinaisons possibles ;

- Tracer des lignes horizontales dont le nombre est égal au nombre de combinaisons possibles. Chaque ligne correspond alors à une combinaison et à une seule des variables d'entrée ;

- Complétez chaque ligne par une combinaison possible des variables d'entrée. La meilleure manière d'énumérer toutes les combinaisons sans se tromper est de compter en binaire ;

- Inscrire dans la colonne "sortie" la valeur de la fonction pour chaque combinaison

- 1 ou 0 ou - si la valeur est indéterminé

Exemple: tables de vérité de addition

arithmétique a+b

78

a b F

0 0 0

0 1 1

1 0 1

1 1 0

Page 79: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

Opérations logiques - Algèbre de Boole (Représentation graphique symbole)

79

Page 80: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

Opérations logiques - Algèbre de Boole (Représentation graphique : logigramme )

Représenter une fonction logique sous la forme d'un logigramme revient à réaliser son schéma de câblage à l'aide des portes logiques.

• Exemple 1:

• Représenter le logigramme de la fonction Exemple1: f1=ab+cd

80

Page 81: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

Opérations logiques - Algèbre de Boole (résumé des propriétés ) • Associativité

Comme avec les opérations habituelles:

• Commutativité : L'ordre est sans importance:

• Distributivité

• Idempotence

• Éléments neutres

• Absorption

• Simplification

• Redondance

• Complémentarité

(« La lumière est allumée » = « la lumière n'est pas non allumée »)

(« VRAI » SI lumière_allumée OU SI lumière_non_allumée → c'est toujours le cas → vrai dans tous les cas → toujours VRAI, donc =1)

(«FAUX » SI lumière_allumée ET SI lumière_non_allumée → impossible → faux dans tous les cas → toujours FAUX, donc =0)• Prioritéla fonction ET (multiplication logique) est ainsi prioritaire par rapport à la fonction OU (somme logique) ;exemple pour

• Première loi de De Morgan (négation de la conjonction)s'exprime par l'égalité suivante

• Deuxième loi de De Morgan (négation de la disjonction)

81

Page 82: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

Opérations logiques - Algèbre de Boole (Simplification de l'écriture des fonctions logiques )

• Méthodes des minterms et des maxterms• A l'aide des théorèmes précédents, il est possible d'exprimer toute fonction logique a l'aide des

operateurs NON, ET, OU.

• L'expression algébrique obtenu est dite forme normale (ou canonique).

• Terme somme : fonction composée uniquement de sommes (A + B + C)

• Terme produit : fonction composée uniquement de produits (A . B . C)

• Maxterm : dans un terme somme où chaque variable est présente une fois exactement.

• Minterm : dans un terme produit où chaque variable est présente une fois exactement.

• Le minterm comporte exactement le nombre d'entrées du circuit. Le nombre de minterms pour un terme produit est 2 élevé à la puissance du nombre d'entrées du circuit.

82

Page 83: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

Opérations logiques - Algèbre de Boole (Simplification de l'écriture des fonctions logiques )

• Exemple Méthodes des minterms et des maxterms

83

Page 84: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

Opérations logiques - Algèbre de Boole (Simplification de l'écriture des fonctions logiques )

• Simplification algébrique

84

Page 85: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

Opérations logiques - Algèbre de Boole (Simplification de l'écriture des fonctions logiques )

• Simplification par la méthode de Karnaugh• Basée sur l'inspection visuelle de tables judicieusement construites (table de vérité a 2 dimensions).

• On attribue la valeur 1 aux cases correspondantes aux états d‘entrée ou la fonction est vraie, 0 si faux ou on laisse vide si c’est un cas indéterminé x (on considère que la valeur soit 1 ou 0 selon le besoin pour avoir le plus intéressant regroupement).

• Regroupement par blocs rectangulaires de 2, 4 ou 8 variables, des cases a 1 adjacentes.

• Attention la table se referme sur elle-même.

• Une case à 1 peut appartenir à plusieurs blocs.

• Blocs les plus gros possibles (on utilise un bloc une seule fois).

• Pour chaque bloc :

• Si une variable prend comme valeur 0 et 1, on ne la prend pas en compte.

• On garde les variables dont la valeur ne varie pas.

• Operateur = ET(*).

• OU (+)de tous les termes de tous les blocs.

85

Page 86: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

Opérations logiques - Algèbre de Boole (Simplification de l'écriture des fonctions logiques ) 1/4

86

• Exemple un circuit qui calcule d’addition

On a f(a,b)= aത𝑏 + ത𝑎𝑏 + 𝑎𝑏

avec simplification algébrique f(a,b)=aത𝑏 + ത𝑎𝑏 + 𝑎𝑏 + 𝑎𝑏 = 𝑎(b+ത𝑏) + 𝑏(𝑎 + ത𝑎)=a+b

Avec table de Karnaugh

f(a,b)=a+b

Page 87: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

Opérations logiques - Algèbre de Boole (Simplification de l'écriture des fonctions logiques ) 2/4

87

• Exemple un circuit qui a f(a,b,c)=ത𝑎ത𝑏𝑐 + 𝑎𝑏 ҧ𝑐 + abc +ത𝑎ത𝑏 ҧ𝑐 + aത𝑏𝑐

Simplification avec table de Karnaugh

f(a,b,c)=a+ത𝑏𝑐

Page 88: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

Opérations logiques - Algèbre de Boole (Simplification de l'écriture des fonctions logiques ) 3/4

88

Simplification table de vérité avec table de Karnaugh

f(a,b,c)=ab+ ҧ𝑐

Page 89: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

Opérations logiques - Algèbre de Boole (Simplification de l'écriture des fonctions logiques ) 4/4

89

Simplification avec table de Karnaugh

f(a,b,c)=ത𝑏 ҧ𝑑+cd+aത𝑏

Page 90: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

Opérations logiques - Algèbre de Boole(deuxième méthode regroupement des 0) • Regroupement par blocs rectangulaires de 2, 4 ou 8 variables, des cases a 0 adjacentes.

• Attention la table se referme sur elle-même.

• Une case à 0 peut appartenir à plusieurs blocs.

• Blocs les plus gros possibles (on utilise un bloc une seule fois).

• Pour chaque bloc :

• Si une variable prend comme valeur 0 et 1, on ne la prend pas en compte.

• On garde les variables dont la valeur ne varie pas.

• Operateur = OU(+).

• ET(*) de tous les termes de tous les blocs.

90

Page 91: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

Opérations logiques - Algèbre de Boole (deuxième méthode regroupement des 0) exemple

91

Simplification avec Groupement de 0

Simplification avec Groupement de 1

Page 92: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

Opérations logiques - Algèbre de Boole (avec cas indéterminé)

•Table de vérité table de Karnaugh- groupement des 1 - groupement des 0

f(a,b,c)=a

92

Page 93: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

Circuit logique• Représentation d'un circuit électronique. Exécute des opérations sur des variables logiques, transporte et traite des

signaux logiques.

• Les circuits des machines électroniques modernes ont 2 états d‘équilibre 0 et 1 (i.e., 2 niveaux de tension) ) signal logique

• Une ligne permet de transporter un signal logique

• L’échelle d’intégration actuel d’un transistor est 65 nanomètres, mais il y’a une technologie très prometteuse pour l’avenir le nanotransistors (nanotubes de carbone) dont la taille n’est que de quelques dizaines d’atomes – 500 fois plus petits que les transistors actuels !

93

Page 94: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

Circuit logique

• On distingue 2 catégorie de circuit logique:

• Un circuit combinatoire :état de ses sorties ne dépend que l’état des entrées table de vérité ou un tableau de Karnaugh,

• Un circuit séquentiel, il dépend non seulement des entrées, mais aussi de l’état précédant du sorties. Il est donc impossible de représenter avec un tableau de Karnaugh.

94

Page 95: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

Circuit logique• Il existe deux grandes familles de la logique :• la logique TTL et sa série 74XX. baser sur les transistor bipolaire

• la logique CMOS et sa série de circuits 4000.baser sur les transistor a effet de champ

• Fonctionnement de transistor équivalent à un interrupteur, il y a 2 types

95

Page 96: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

Fonctionnement: exemple inverseur

• décharge et charge de la capacité de sortie d’un inverseur

• Si E=0 S=5V après le temps de charge

• Si E=5V S=0V après le temps de décharge

96

Page 97: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

Structure interne de différentes portes de base• Pour des raisons électrique et de fabrications on utilise souvent les ports suivants:

• Structure interne de quelque port logique

• Remarque : Pour réaliser une porte OR ou AND, on utilisera une porte NOR ou NAND suivie d’un inverseur.97

Page 98: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

les principales sociétés réalisant design etfabrication de composants microélectronique

98

Page 99: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

circuit logique (séquentiels ): Point mémoire élémentaire

99

Les circuits séquentiels possèdent des rétroactions : les signaux de sortie ne dépendent pas uniquement des entrées mais aussi de leur séquence. Le circuit se rappelle des entrées et des états précédents : il a une mémoire du passe

Les bascules sont les circuits séquentiels élémentaires permettant de mémoriser une information binaire (bit) sur leur sortie. Elles constituent le point mémoire élémentaire. Elles peuvent être synchrones (si Ajout de la notion de temps (horloge))ou asynchrones mais toutes ont au minimum trois modes de fonctionnement (lecture, mémoriser 0, mémoriser 1)

Les éléments de base sont les bascules et une association de bascules nous permettront de construire des registres, des compteurs, de décompteurs et des diviseurs.

Plusieurs type de bascule flip-flop, RS, RSh, D, JK

Page 100: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

Éléments de logique séquentiels: La mémoire

100

Un automate fini est une machine abstraite qui est un outil fondamental en mathématiques discrètes et en informatique. On les retrouve dans la modélisation de processus, le contrôle, les protocoles de communication, la vérification de programmes, la théorie de la calculabilité, dans l'étude des langages formels et en compilation.

Un automate fini est caractérisé, entre un temps t et t + 1 par :

Un automate fini ou automate fini non déterministe (AFN) A sur un alphabet A est un quadruplet

Ou

Q est un ensemble fini d'états

est l'ensemble des transitions,

est l'ensemble des état initiaux,

est un ensemble d'états finals ou terminaux.

Diagrammes d‘états (représentation graphique : état=rond, transition=flèche )

Page 101: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

Éléments de logique séquentiels: La mémoire

101

Exemple d'automate finie mémoire binaire

On veut un automate ni qui soit capable de mémoriser la valeur d'un bit:

la sortie a t+1 ne dépend que de l‘état a t (opération de lecture)

l‘état a t+1 ne dépend que de l‘entrée a t (opération d‘écriture)

Fonctions de transfert

S(t + 1) = Q(t) : la sortie a t+1 est égale a l‘état a t

Q(t + 1) = E(t) : l‘état a t+1 est égal a l‘entrée a t

Table de transitions (i.e., Valeurs de Q(t + 1) et S(t + 1) en fonction de E(t) et Q(t))

,

Page 102: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

Éléments de logique séquentiels

102

Automate ayant 2 états stables.

Circuit permettant de mémoriser 1 bit.

Possède une variable codée sur 1 bit.

Valeur conservée et modifiable dans le temps.

Plusieurs types de bistables :

Asynchrone (bascule RS) : Les sorties sont recalculées a chaque changement des valeurs en entrées.

Synchrone (bascule RSh, D, flip-flop) : Les sorties sont recalculées en fonction d'un signal d'horloge en entrée (notée C ou ck pour clock).

Page 103: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

Éléments de logique séquentiels :Bascule RS 1/4

103

S R Qn /Qn

0 0 Qn-1 /Qn-1

0 1 0 1

1 0 1 0

1 1 1 1

Table de vérité

Qn-1 à Qn S R

0 à 0 0 X

0 à 1 1 0

1 à 0 0 1

1 à 1 X 0

Table de transition de Qn-1 à Qn

/Qn-1 à /Qn S R

0 à 0 X 0

0 à 1 0 1

1 à 0 1 0

1 à 1 0 X

Table de transition /Qn-1 à /Qn

Page 104: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

Éléments de logique séquentiels :Bascule RSh 2/4

• Dans une bascule R-S asynchrone, les ordres appliqués aux entrées R et S provoquent, immédiatement, le changement d’état correspondant. Par contre, dans une bascule R-S synchrone, l’exécution de l’ordre n’intervient qu'avec l’impulsion d’horloge.

104

Qn-1 à Qn S R H

0 à 0 0 X X

0 à 1 1 0 1

1 à 0 0 1 1

1 à 1 1 X X

Table de transition de Qn-1 à Qn

Page 105: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

Éléments de logique séquentiels : Bascule D 3/4

• La bascule D est dérivée de la bascule R.S.H. Elle possède, quant à elle, une seule entrée «D» pour positionner les sorties. Pour cela on place un inverseur entre l'entrée S et l'entrée R de la bascule R.S.H. L'entrée S devient l'entrée D de la bascule

• Selon la forme de H on distingue 2 type:

-verrou D (DLATCH) -Flip Flop

105

Page 106: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

Éléments de logique séquentiels : Bascule JK 4/4• Les bascules JK sont des bascules

RSH pour lesquelles la combinaison %SR=%11 n’est pas interdite

106

Page 107: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

Éléments fonctionnels d’un processeur 1/6: La mémoire (exemple memoire registre)• Plusieurs bistable en parallèle permettent de mémoriser plusieurs bits

d'information. Ce sont des registres. Ils sont utilises dans un processeur pour stocker des valeurs lors de l‘exécution d'un programme.

107

Page 108: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

Éléments fonctionnels d’un processeur 2/ 6:Multiplexeur

• X entrées, 1 sortie

• Selon une adresse s (n bits),

• la sortie f prend la valeur de l’une des entrées

108

Page 109: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

Éléments fonctionnels d’un processeur 3/6 :Demultiplexeur• Démultiplexeur

• 1entrée, X sorties

• Selon une adresse s (n bits), une seul des X sorties prend la valeur de l’entrée

109Application Demultiplexeur/ Multiplexeur : Conversion Série/Parallèle; Parallèle/Série

Page 110: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

Éléments fonctionnels d’un processeur 4/6 :décodeurDécodeur

• Active une des X sorties selon un code

• Entrée sur n bits

• Nombre de sorties: 2n

• Une seule sortie est mise à 1 selon la configuration des entrées

• Application: Sélection des circuits mémoire

110

Page 111: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

Éléments fonctionnels d’un processeur 5/6 encodeur• Encodeur

• Active un code selon l’une des X entrées actives

• 2n entrées, 1 entrée active (valeur 1), les autres sont toutes désactivées (valeur 0)

• Sortie : sur n bits

111

Page 112: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

Éléments fonctionnels d’un processeur 6/6: Autres circuits (Circuit de décalage – comparateur)

• Compteur binaires

• Circuit de décalage

• Décalage de position d’un bit (à droite ou à gauche) sur les n bits

• Circuit de rotation

• Rotation de position d’un bit (à droite ou à gauche) sur les n bits

• Comparateur

• Compare deux nombres de n bits, nommer généralement A et B

• 3 sorties

• Une seul sortie est mis à 1 E (si égale), G(si grand); P (si petit)

112

Page 113: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

Réalisation :additionneur 1bit• Un additionneur 1 bit à la table de vérité:

• S :la valeur de somme

• R :la valeur de retenu

• Som= ҧ𝐴𝐵 + 𝐴 ത𝐵=A xor B

• R= AB

113

Page 114: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

Exemple :demi Additionneur Un additionneur de 4 bit par exemple est un bloc de 4 additionneur de 1 bit dit demi additionneur qui

possède 3 entrées Ai,Bi,Ri-1 et 2 sortie Si et Ri (avec i varie de 1 à 4)

Avec Si=Ai xor Bi xor Ri-1 et Ri= Ai.Bi + Ri-1(Ai xor Bi)

Page 115: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

Exemple Simple UAL de 1bit• Simple UAL de 1bit qui fait les opérations logiques(ET,OU,NON) et une seul opération

arithmétique addition

• table des fonctions

115

F0 F1 Sortie

0 0 A.B (logique)

0 1 A ou B (logique)

1 0 ത𝐵 (logique)

1 1 A+B (arithmétique)

Page 116: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

Exemple réel: UAL 4 bits 74181 (TTL)1/2

116

Page 117: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

Exemple UAL 4 bits 74181 2/2• table des fonctions

117

Page 118: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

ArchitectureIntel x86

118

On peut distinguer :- Les registres généraux, Ils

servent principalement aux calculs :EAX, EBX, ECX, EDX

- Les registres d'adressage, Ils servent aux adressages d'opérandes :ESI, EDI, EBP

- Les registres de commande ESP, FLAGS, EIP (Pointeur d’instruction ), IR (Instruction registre)

- trois bus différents : • Bus d’adresses, MAR• Bus de données MDR• Bus de contrôle

Page 119: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

la programmation assembleur avec un vrai langage: intel x86

119

Présentation en mémoire et registre

4 accumulateurs :

16 bits : AX, BX, CX ,DX, par exemple AX=AH(8bits)+AL(8bits)

32 bits : EAX, EBX, ECX ,EDX

64 bits : RAX, RBX, RCX, RDX

Registres d’index :

Pointeur d’instruction (EIP)

Index source ou destination(ESI, EDI)

Pointeur de Pile ou de base (ESP, EBP)

3+1 registres segment :

Segment de code (CS) : contient le program en cours d’exécution

Segment data (DS) : contient les données du programme

Segment stack (SS) : Le registre SS pointe sur la pile : la pile est une zone

mémoire ou on peut sauvegarder les registres ou les adresses ou les

données pour les récupérer après l'exécution d'un sous programme

ou l'exécution d'un programme d'interruption, en général il est

conseillée de ne pas changer le contenu de ce registre car on risque

de perdre des informations très importantes (exemple les passages

d'arguments entre le programme principal et le sous programme)

Extra Segment (ES): utiliser lorsque l'accès aux autres registres est

devenu difficile ou impossible pour modifier des données, de même

ce segment est utilisé pour le stockage des chaînes de caractères

000000Données

(variables) DS

DS:EDI

DS:ESI

Code

(programme)

CS

CS:EIP

Pile non

utiliser

SS

SS:ESP

Pile

utiliser

SS:EBP

2 20Origine ESP

Page 120: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

Adresse physique (Segmentation de la mémoire)• Un segment mémoire est un espace d'adressage indépendant défini par deux valeurs :

• L'adresse où il commence (aussi appelée base, ou adresse de base)

• Sa taille ou son décalage (aussi appelée limite ou offset)

• Les adresses sont données sous la forme Segment : Offset

• Cette adresse de 20 bits est formée par la juxtaposition d'un registre segment (16 bits de poids fort) et d'un déplacement (offset, 16 bits de poids faible).

• Adresse physique = SEGMENT* 16+ OFFSET

• A partir de segments distincts on peut accéder à une même adresse mémoire en effet ces adresses sont identiques :

• segment : offset

0005h : 0001h ==> 5h* 16+ 1h = 80 + 1 = 81

0004h : 0011h ==> 4h* 16+ 11h = 64 + 17 = 81

0003h: 0021h ==> 3h* 16+ 21h = 48 + 33 = 81

0002h : 0031h ==> 2h* 16+ 31h = 32 + 49 = 81

0001h: 0041h ==> 1h* 16+ 41h = 16 + 65 = 81

0000h : 0051h ==> 0h* 16+ 51h = 0 + 81 = 81

SS:BP et SS:SP pour adresse de pile utiliser et non utiliser

120

000000Données

(variables) DS

DS:EDI

DS:ESI

Code

(programme)

CS

CS:EIP

Pile non

utiliser

SS

SS:ESP

Pile

utiliser

SS:EBP

2 20Origine ESP

Page 121: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

Les entrées/sorties dans l'architecture de Von Neumann

121

Unités d‘entrées-sorties

Transfèrent les informations entre l‘unité centrale et les unités périphériques.

Bus

Ensemble des lignes de liaison qui assurent les communications entre

les différents composants de l'ordinateur. (intérieur du processeur, carte mère, etc)

Unités périphériques

Unités d‘ échange de données avec le monde extérieur (écran, clavier, souris, imprimante, modem) et mémoires auxiliaires (disques) qui permettent de stocker de façon permanente. Chaque périphérique est associe a un contrôleur.

Page 122: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

Les entrées/sorties:Techniques d’échange de données

122

Il existe 2 modes d’échange d’information :

Le mode programmé par scrutation ou interruption où le microprocesseur sert d’intermédiaire entre la mémoire et le périphérique

Le mode en accès direct à la mémoire (DMA) où le microprocesseur ne se charge pas de l’échange de données.

Page 123: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

Les entrées/sorties:Techniques d’échange de données (mode interruption)

123

Lorsque le périphérique est prêt a effectuer un échange élémentaire, il envoi un signal au CPU pour "interrompre" l‘exécution en cours. Le contrôle du CPU est renvoyé a un programme de traitement de l‘évènement stocke en mémoire a partir d'une adresse liée a l'interruption.

Le CPU n'attends pas ;

Temps perdu a échanger les programmes et leur contexte.

Un dispositif, incorpore au niveau du séquenceur, qui enregistre et traite les signaux d'interruption envoyés au CPU

Cycle d’interruption

1. Arrêter le programme en cours ;

2. Sauvegarder l‘état de la machine ;

3. Exécuter le programme de service de l'interruption ;

4. Rétablir l‘état de la machine ;

5. Reprendre l‘exécution du programme interrompu.

Page 124: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

Les entrées/sorties:Techniques d’échange de données(mode Accès direct a la mémoire (DMA))

124

Le DMA est connecte entre un contrôleur de périphérique et le bus système, permettant ainsi au périphérique d‘accéder a la mémoire sans passer par le CPU.

• Transfère des blocs de données ;

• Prioritaire sur le CPU;

• Intégrité des données non vérifiée ;

• Possède son propre RA et RM ainsi qu'un compteur

(pour savoir quand signaler au CPU que les données

sont prêtes).

Page 125: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

Architecture logicielle du processeur

125

Objectifs du chapitre

1 Manipuler le langage de programmation le plus bas niveau qu'offre la machine.

2 Utiliser des jeux d'instructions pour écrire des mini-programmes.

3 Comprendre le mécanismes d'appel de procédure (sous-programme) et le fonctionnement de la pile et du tas.

4 Percevoir les principes de programmation universel (qq soit le langage).

5 Illustrer la programmation assembleur avec un vrai langage.

Page 126: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

Pourquoi ? [Strandth & Durand, 2005]

126

Le rôle d'un informaticien n'est pas de concevoir des architectures, en revanche il a besoin d'un modèle de fonctionnement de l'ordinateur qui lui donne une bonne idée de la performance de son programme et de l'impact que chaque modification du programme aura sur sa performance.

Assimiler un tel modèle suppose un certain nombre de connaissances sur le fonctionnement d'un ordinateur, notamment le mécanisme d'appel de fonction, la transmission des paramètres d'une fonction a l'autre, l'allocation ou la libération d'espace mémoire, etc.)

Apprendre l'architecture des ordinateurs et un langage machine qui permet cela.

Page 127: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

Niveaux de programmation

127

Langage machine

L'assembleur (i.e., langage d'assemblage) est le premier langage non binaire accessible au programmeur ;

Code mnémoniques et symboles ;

L'assembleur (i.e., programme traducteur) converti le langage d'assemblage en langage machine ;

Permet d'exploiter au maximum les ressources de la machine ;

Dépend de la machine.

Page 128: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

Structure des instructions niveau machine

128

Les ordinateurs sont capables de faire un certain nombre d‘opérations simples. Par exemples :

additionner 2 nombres ;

tester le signe d'une valeur numérique ;

copier le contenu d'un registre a un autre ;

stocker en mémoire un résultat.

Ces opérations de bases font l'objet d'instructions spécifiques, chaque famille de processeurs utilise un jeu d'instructions différent

Instruction

Une instruction doit fournir au CPU toutes les informations pour déclencher une opération :

Sous forme de codeOperation operand1 operand2 exemple pour faire A+B l’opération est ADD A,B

Code opération :

Opérande(s) : adresses + résultat + instruction suivante.

Exemple un processeur de la famille x86 reconnaît une instruction du type:

Langage Machine (binaire): 10110000 01100001

Langage Machine ( hexadécimal ): B0 61

En langage assembleur: mov AL,0x61

Page 129: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

Jeu instruction: opérations fondamentales

129

déplacement dans la mémoire :

chargement d'une valeur dans un registre ;

déplacement d'une valeur depuis un emplacement mémoire dans un registre, et inversement ;

calcul :

addition, ou soustraction des valeurs de deux registres et chargement du résultat dans un registre ;

combinaison de valeurs de deux registres suivant une opération booléenne (ou opération bit à bit) ;

modification du déroulement du programme :

saut à un autre emplacement dans le programme (normalement, les instructions sont exécutées séquentiellement, les unes après les autres)

saut à un autre emplacement, mais après avoir sauvegardé l'instruction suivante afin de pouvoir y revenir (point de retour) ;

retour au dernier point de retour ;

comparaison :

comparer les valeurs de deux registres.

Page 130: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

Jeu instruction: familles et opérations0 adressePile(stack)

à un seul registre(accumulateur)

registre - mémoire registre - registre mémoire - mémoire

PUSH B ; Empile B

PUSH C ; Empile C

ADD ; Additionne B

et C

POP A ; Stocke le

haut de la pile à

l'adresse A et dépile

LOAD B ; copie le

contenu de l'adresse B

dans accumulateur

ADD C ; ajoute le

contenu de l'adresse C

à celui de

accumulateur, et

stocke le résultat dans

l'accumulateur

STORE A ; stocke la

valeur de accumulateur

à l'adresse A

LOAD R0, B ; copie le

contenu de l'adresse B

dans le registre R0

ADD R1, R0, C ; R1

R0 + C

STORE R1, A ; stocke

la valeur de R1 à

l'adresse A

LOAD R0, B ; charge B

dans le registre R0

LOAD R1, C ; charge C

dans le registre R1

ADD R2, R0, R1 ; R2

← R0 + R1

STORE R2, A ; stocke

R2 à l'adresse A

ADD A, B, C ; Stocke a

l'adresse A la somme B

+ C

130

Page 131: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

Nombre et type d‘opérandesNombreadresse mémoire

Nombre max d’ opérandes

Type architecture Exemple

0 3 Registre-registre Alpha, ARM, MIPS, PowerPC, SPARC, SuperH,TM32

1 2 Registre- mémoire IBM 360/370, Intel 80x86, Motorola 6800, TI TMS320C54x

2 2 Mémoire - mémoire VAX

3 3 Mémoire - mémoire VAX

131

Page 132: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

Jeu instruction: Types d'architecture

132

Actuellement l’architecture des microprocesseurs se composent de deux grandes familles :

architecture CISC (Complex Instruction Set Computer)

architecture RISC (Reduced Instruction Set Computer)

Page 133: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

Jeu instruction: exemple types d'architecture

133

Page 134: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

PIPELINE (chaîne de traitement)• PIPELINE =plusieurs Cycle d’exécution des instructions parallèle

• Notation générale des phases de PIPLINE:1. IF (Instruction Fetch) charge l'instruction à exécuter dans le pipeline.2. ID (Instruction Decode) décode l'instruction et adresse les registres.3. EX (Execute) exécute l'instruction (par la ou les unités arithmétiques et logiques).4. MEM (Memory), dénote un transfert depuis un registre vers la mémoire dans le cas d'une instruction du type

STORE (accès en écriture) et de la mémoire vers un registre dans le cas d'un LOAD (accès en lecture).5. WB (Write Back) stocke le résultat dans un registre. La source peut être la mémoire ou bien un registre.

• Plusieurs types de pipline selon le processeur entre autre:

• micro-contrôleurs Atmel AVR et PIC

2 étapes: Fetch+ Exec (avec les accès à la mémoire et/ou aux registres)

• IBM Stretch

3 étapes :Fetch+ Decode+ Exec (avec les accès à la mémoire et/ou aux registres)

134

Page 135: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

PIPELINE :Microprogramme pour addition

135

Programme En mémoire À l'intérieur du CPU

X=X+Y Mettre Y dans l’accumulateur EAX:MOV EAX,X

MAREIP (partie destination EAX)

MARIR [adresse de X] EIP (partie source)

MDRvaleur de MAR

EAXMDR

EIPEIP + 1 (adresse instruction suivant)

Mettre dans l’accumulateur EAX:MOV EBX,Y

MAREIP (partie destination EBX)

MARIR [adresse de Y] EIP (partie source)

MDRvaleur de MAR

EBXMDR

EIPEIP + 1 (adresse instruction suivant)

Ajouter Z:ADD EAX,EBX MAREIP (partie destination EAX)MAREIP (partie source EBX)

TEMPEAX+EBX (dans UAL)

EAXTEMP

EIPEIP + 1 (adresse instruction suivant)

Page 136: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

Cycle d’exécution d’une instruction 1/3

136

Page 137: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

Cycle d’exécution d’une instruction 2/3

137

Page 138: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

Cycle d’exécution d’une instruction 3/3

138

Page 139: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

PIPELINE et cycle d'horloge• Classic RISC pipeline

• Par exemple si on veut exécuter 3 instructions dans un cycle de 5 phases

1. Séquençage des instructions dans un processeur sans pipeline en supposant que chaque étape met 1 cycle d'horloge pour s'exécuter, il faut normalement 5 cycles pour exécuter une instruction, 15 pour 3 instructions :

1. Séquençage des instructions dans un processeur doté d'un pipeline à 5 étages. Il faut 9 cycles pour exécuter 5 instructions. À t = 5, tous les étages du pipeline sont sollicités, et les 5 opérations ont lieu en même temps.

139

Page 140: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

la programmation assembleur avec un vrai langage: intel x86

140

Exemples Afficher Bonjouren syntaxe Intel x86, écrit pour l'assembleur NASM ,utilisant le jeu d'instructions i386 :section .data ; Variables initialisées

Buffer: db 'Bonjour', 10 ; En ascii, 10 = '\n'. La virgule sert à concaténer les chainesBufferSize: equ $-Buffer ; Taille de la chaine

section .text ; Le code source est écrit dans cette sectionglobal _start ; Définition de l'entrée du programme

_start: ; Entrée du programmemov eax, 4 ; Appel de sys_writemov ebx, 1 ; Sortie standard STDOUTmov ecx, Buffer ; Chaine à affichermov edx, BufferSize ; Taille de la chaineint 0x80 ; Interruption du kernel

mov eax, 1 ; Appel de sys_exitmov ebx, 0 ; Code de retourint 0x80 ; Interruption du kernel

Page 141: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

la programmation assembleur intel x86: syntaxes Il existe deux syntaxes très répandues pour l’assembleur x86-64.:

• La syntaxe Intel • la syntaxe AT&T utilisée par défaut par gcc (systèmes UNIX).

Syntaxe AT&T :

• Opérandes sources à gauche et destination à droite

• Constantes préfixées par $ (adressage immédiat)

• Constantes écrites avec syntaxe langage C (0x + valeur = hexadécimal)

• Registres préfixés par %

• Segmentation : [ds:20] devient %ds:20, [ss:bp] devient %ss:%bp …

• Adressage indirect [ebx] devient (%ebx), [ebx + 20h] devient 0x20(%ebx),

[ebx+ecx*2h-1Fh] devient -0x1F(%ebx,%ecx, 0x2) …

• Suffixes, b=byte=1o, w=word=2o, s=short=4o, l=long=4o, q=quad=8o, t=ten=10o, o=octo=16o=128bits (x64)

• ……141

Intel Syntaxe AT&T Syntaxe

MOV ebx,0FAh MOV $0xFA, %ebx

Page 142: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

la programmation assembleur avec syntaxe Intel x86• Les registres généraux, Ils servent principalement aux calculs :

• EAX, correspond à l'accumulateur

• EBX, au registre de base

• ECX, au compteur

• EDX, à l'extension de l'accumulateur

• Les registres d'adressage, Ils servent

aux adressages d'opérandes :

• ESI, index de source

• EDI, index de destination

• EBP, pointeur de base

• Les registres de commande

• ESP, pointeur de la pile

• EIP, pointeur d'instruction

• FLAGS, registre d'état

142

Page 143: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

la programmation assembleur avec syntaxe Intel x86 flag• Les fonctions des drapeaux de flag sont résumées dans le tableau ci-dessus :

143

De 21 à13

…. ………………. ……………………………………………………………….

14 NT Nested TaskMis à 1 lorsque la tâche courante est associée à la tâcheprécédente, 0 sinon.

12 & 13

IOPL I/O Privilege LevelContient un nombre qui indique le niveau de privilège duprogramme en cours d’exécution

11 OF Overflow Flag Mis à 1 si une opération provoque un dépassement de capacité

10 DF Direction FlagFixe le sens dans lequel seront effectuées les opérations detraitement de chaînes de caractères. STD le met à 1, CLD à 0.

9 IF Interrupt Enable Flag Mis à 1, il autorise les interruptions. S’il vaut 0, il les empêche.

8 TF Trap Flag Mis à 1, il force le processeur à fonctionner pas à pas.

7 SF Sign FlagPrend la valeur du bit de poids fort de l’accumulateur après uncalcul.

6 ZF Zero FlagMis à 1 si le résultat d’un calcul (i.e. le contenu de l’accumulateur)vaut 0.

4 AF Auxiliary Carry Flag Mis à 1 si un calcul en BCD non compacté produit une retenue.

2 PF Parity FlagMis à 1 si les 4 bits de poids faible du résultat contiennent unnombre pair de 1.

0 CF Carry Flag Mis à 1 si un calcul produit une retenue.

Page 144: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

la programmation assembleur intel x86: structure de programme 1/4

144

programme en assembleur = fichier texte (extension .asm)

organise en plusieurs SECTIONS (= segments)

sections différentes pour les données et le code

directives pour NASM≠FASM des instructions pour le processeur

NASM a deux sections des données : initialises ou non initialisées

une seule instruction par ligne

1 ligne de code = 4 champs (certains optionnels) :

étiquette: instruction opérandes ; commentaire

%include "io.inc"Section .data

; les données initialisés ici!Section .bss

; les données non initialisés ici!section .textglobal CMAINCMAIN:

; le code de programme icixor eax, eaxret

000000Données

(variables) DSCS

DS:EDI

DS:ESI

Code

(programme)CS:EIP

Pile non

utiliser

SS

SS:ESP

Pile

utiliser

SS:EBP

2 20Origine ESP

Page 145: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

la programmation assembleur intel x86: structure de programme 2/4

145

Données initialisées : SECTION .data

Utiliser une étiquette comme identificateur de donné

déclarer des données initialisées avec la directive : dX

X = b (1 octet), w (2 octets) ou d (4 octets = 1 mot).

Exemples :l1 db 0x55 ; l'octet 0x55msg db ‘abc’, ’$’ ;caractère ’$’ fin de chainetab1 dw 0x1234,0x5678 ; tableau de 2 entier chaque sur 2 octetF dd 0x12345678 ;réel sur 4 octet 0x123456 L2 db 'ab' ; 0x61 0x62 (caracteres)A dd 1.2 ;virgule flottant 0x3f99999a avec 0x9a,0x99,0x99,0x3fB dd 1.e+10 ;virgule flottantL3 dw 'abc' ; 0x61 0x62 0x63 0x00 (chaine)

Remarque : Etiquette = l’identificateur de la donnée (nom de variable).

on peut définir des constantes non modifiables avec la directive : equ

exemple : nblettres equ 26

Illustration :exemple avec gdb SASM (commande x/26xb &nomvariable)

AdresseData(8-bits)

Interprétation

0x00000

...

0x402000 0x55 Byte I1 octet 0x55

...

0x402001 ‘a'

String

msg[1] 0x61

0x402002 ‘b' msg[3] 0x62

0x402003 ‘c’ msg[2] 0x63

0x402004 ‘$’ 0x24

...

0x402005 0x34word

2x1tableauentierof 16-bitwords

0x402006 0x12

0x402007 0x78word

0x402008 0x56

...

0x402009 0x78

dword0x402010 0x56

0x402011 0x34

0x402012 0x12

...

0x505503 0xFEJE -2 Program

0x505003 opcode

...

0xFFFFF

Page 146: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

la programmation assembleur intel x86: structure de programme 3/4

146

Données non initialisées : SECTION .bss

déclarer des données non initialisées avec la directive : resX

X = b (1 octet), w (2 octets) ou d (4 octets = 1 mot).exemples (étiquettes obligatoires) :

Tableau resb 100 ; reserve 100 octetsNombreentier resw 1 ; reserve 2 octetsUncaractere resd 1 ; reserve 1 mot (4 octets)

Remarque : Etiquette = identificateur de la donnée (nom de variable).

Page 147: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

la programmation assembleur intel x86: structure de programme 4/4

147

Corps du programme : SECTION .text

commencer par déclarer global l‘étiquette de début de programme (CMAIN) pour qu'elle soit visible :

SECTION .textglobal CMAINCMAIN:

; le code de programme icixor eax, eaxRet

Illustration :exemple avec gdb SASM set disassembly-flavor intelset disassembly-flavor attpour voir le code Machine et source on utilise la commande disassemble /r main, +nombreavec nombre est le nombre d’instruction à afficher, exempledisassemble /r main,+10Notation : - en nasm L1 adresse de donnée L1 different de [L1] contenu adresse de donnée L1

exemple :%include "io.inc"segment .data

L1 dd 0x12 ; mot initialise a la valeur hexa 12section .textglobal CMAINCMAIN:

mov al, [L1] ; Copie l'octet situe en L1 dans ALmov eax, L1 ; EAX = adresse de l'octet en L1mov [L1], ah ; copie AH dans l'octet en L1xor eax, eaxret

Page 148: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

la programmation assembleur Intel x86 représentation des opérandes

une opérandes est :

• soit une donnée brute :

• adressage immédiat : valeur binaire, décimale ou hexadécimale

Exemples : MOV eax, 16 (decimal)

MOV eax, 0b11 (binaire)

MOV eax, 0x0725 (hexadécimal)

Attention au position partie bas (25)et haut (07), il Transfer d’abord la partie bas en adresse x puis la partie haut en adresse x+1

• adressage implicite : pas spécifie explicitement, par exemple l‘incrémentation (le 1 est implicite)

• soit une adresse : avec différents modes d'adressage.

! les types d‘opérandes autorises dépendent de l‘opération effectuée.

exemple :deplacer le contenu de l’adresse stocker en ebx vers ax

MOV ax, [ebx]

Notation des valeurs en NASM :

148

Page 149: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

la programmation assembleur Intel x86 mode adressage 1/4• adressage par registre :

Utilisation des noms des registres (ax, bx, cx, ...)

Exemples : MOV eax,ebx

MOV ax, bx

MOV al,bl

Illustration :avec gdb SASM

• adressage immédiat :

Utilisation d'une valeur donnée, d'une constante

Exemples : MOV eax,0x050000

MOV al,-32 ; Cà2 1110 0000 E0

Illustration :avec gdb SASM

149

CPU

eax cs

ebx ds

ecx es

edx ss

eip fs

gs

eflag

flag

mémoire

adr data

CS:EIP0x401390

89

D8

CPU

eax=0x0050000 cs

ebx ds

ecx es

edx ss

eip fs

gs

eflag

flag

mémoire

adr data

CS:EIP0x401390

B8

00

00

05

00

Page 150: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

la programmation Intel x86 mode adressage 2/4• adressage mémoire direct :

Utilisation de l'adresse mémoire où aller chercher la

donnée

Exemple :

MOV ax,[val]

le contenu de l’adresse 0x402000+0x402001

vers ax= 0x5566

Illustration :avec gdb SASM

MOV al,[val]

le contenu de l’adresse 0x402000 vers ax

150

CPU

eax=0x0000 5566 cs

ebx ds

ecx es

edx ss

eip fs

ip gs

eflag

flag

mémoire

adr data

0x402000 66

ds:val0x402001

55

CS:EIP0x401390

66

A1

00

20

40

00

1

2

Page 151: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

la programmation Intel x86 mode adressage 3/4• adressage mémoire indirect par registre :

Utilisation de l'adresse mémoire contenue

dans un registre (BX, BP, SI, DI)

• Exemple : MOV ebx, val

MOV ax,[ebx]

ebx=0x402000

ax=0x5566

Illustration :avec gdb SASM 151

CPU

eax=0x0000 5566 cs

ebx=0x402000 ds

ecx es

edx ss

eip fs

ip gs

eflag

flag

mémoire

adr data

0x4020000 66

ds:val0x4020001

55

CS:EIP0x401390

BB

00

20

40

00

66

8B

03

1

2

3

MOV ebx,val

MOV ax,[ebx]

Page 152: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

la programmation assembleur Intel x86 mode adressage 4/4• adressage relatif à une base( généralement utiliser pour les tableaux) :

Utilisation de l'adresse mémoire obtenue par la somme d'un registre de base (BX ou BP) et un déplacement (dep)

MOV ax, [ebx + dep]

Exemple :La sélection de TAB[2] le 2ième élément d’un tableau identifier par TAB déclarer comme suit:

TAB dw 0x5566,0x1133

Avec MOV ebx, TAB

MOV ax,[ebx+2]

Attention taille de chaque élément si byte dep=+1, si word dep=+2,….

• Exemple d'acces elements

array1 db 5, 4, 3, 2, 1 ; tableau d'octets

array2 dw 5, 4, 3, 2, 1 ; tableau de mots

• Voici quelques exemple ces tableaux :

mov al, [array1] ; al = array1[0]=5

mov al, [array1 + 1] ;al = array1[1]=4

mov [array1 + 3], al ; array1[3] = al

mov ax, [array2] ; ax = array2[0] Illustration :avec gdb SASM

mov ax, [array2 + 2] ; ax = array2[1] (PAS array2[2]!)

mov [array2 + 6], ax ; array2[3] = ax

mov ax, [array2 + 1] ; ax = ??

152

CPU

eax=0x00001133 cs

ebx=0x402001 ds

ecx es

edx ss

eip fs

ip gs

eflag

flag

mémoire

adr data

ds:TAB0x402001

66

ds:TAB+1 55

ds:TAB+2 33

11

CS:EIP0x401390

BB

01

20

40

00

66

8B

43

02

1

2

3

MOV ebx,TAB

MOV ax,[ebx+2]

4

Page 153: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

la programmation assembleur Intel x86 mode adressage 3/3• adressage direct indexé :

Utilisation de l'adresse mémoire obtenue par la somme d'un déplacement (déplacement) et un registre d'index (SI ou DI)

Exemple : MOV edi,10H

MOV ax,[2F0H+edi]

• adressage indexé par rapport à une base :

Utilisation de l'adresse mémoire obtenue par la somme d'un registre de base (BX ou BP), d'un registre d'index (SI ou DI) et d'un déplacement (déplacement).

Exemple : MOV edi,15H

MOV ebx,0BH

MOV ax,[ebx+edi+1E0H]

Remarque et résumer : on peut préciser la taille de chaque élément de tableau avec le mots suivants:

MOV ax, word [ebx+edi+1E0H] ;pour élément de 2 octets153

taille mots DéclarationDonnées initialisées

DéclarationDonnées non initialisées

1 byte (8 bit) byte DB RESB

2 bytes (16 bit) word DW RESW

4 bytes (32 bit) dword DD RESD

8 bytes (64 bit) qword DQ RESQ

Page 154: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

la programmation assembleur Intel x86 :Les instructions de Transfert de données 1/2

Exemple:

MOV eax,10 ; eax10MOV ebx,ecx ; ebxecxMOV edx,0A1h ; edx A1 en héxadécimal

;(soit 161 en décimal) MOV eax,[data1] ; copie de la valeur 32 bits

; stockée à l'adresse data1.MOV bl,[data2] ; copie de la valeur 8 bits

;stockée à l'adresse data2

MOV eax, data1; copie de la valeur 32 bits

; de l'adresse data1.

XCHG eax,ebx ; échange les contenus de eax et de ebx

• Remarque: On utilise la taille (byte,word,..)pour lever

l‘ambiguïté dans les instructions quand c'est nécessaire.

elle n'est pas réservé à l'instruction mov154

MOV dest, srcMOV taille dest, src

Délassement dest srcValeur de taille

byte 1 octet

word 2 octets ou 1 mot

dword 2 mots

qword 4 mots

XCHG dest,src Echanger dest src

LEA dest ,[op] destadresse de op(load efective address)

PUSH op décrémente esp et empileop

POP op dépile dans opet incrémente esp

PUSHA Emplie tous les registres

POPA Dépile tous les registres

Page 155: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

la programmation assembleur Intel x86 :Les instructions de Transfert de données(principe de la pile) 2/2

• PUSH source

Empiler un mot sur la pile

SP = SP – 2

(2 si word voir taille diapo précèdent)

(SP+1; SP) = source

• POP destination

Dépiler un mot sur la pile

destination = (SP+1; SP)

SP= SP + 2 (si word)

Exemple avec Illustration :avec gdb SASM

PUSH WORD 0x5566

PUSH WORD 0x1234

POP ax

POP ax

155

Etat initial

ax 5566

esp 0x22ff2c

SS

ESP

PUSH ax

ax 5566

esp 0x22ff2a

SS

ESP 66

55

pop ax

ax 5566

esp 0x22ff2c

SS

66

ESP 55

Etat initial

ax 0123

esp 0x22ff2a

SS

ESP 66

55

Etat initial

ax

esp 0x22ff2c

SS

ESP

PUSH 0x5566

ax

esp 0x22ff2a

SS

ESP 66

55

POP ax

ax 0123

esp 0x22ff2a

SS

34

12

ESP 66

55

PUSH 0x0123

ax

esp 0x22ff28

SS

ESP 34

12

66

55

Page 156: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

la programmation assembleur Intel x86 :Les instructions arithmétiques • MOV eax,10 ; On met 10 dans eax.

DEC eax ; Décrémentation de eax : eax <- eax - 1 .; Ici, eax vaut 9.INC eax ; Incrémentation de eax : eax <- eax + 1 .; Ici, eax vaut de noveaux 10.

• MOV eax,11ADD eax,5; Ici, eax vaut 16.

• ; FFFFFFFFFFh + 0000000002h = ?MOV eax,0xFFFFFFFF ; On met la partie basse dans eaxMOV ebx,0xFF ; On met la partie haute dans ebx.ADD eax,2 ; Première tranche de l'opération.; Ici, eax vaut 00000001h et carry vaut 1.ADC ebx,0 ; Deuxième tranche de l'opération partie haut

; Le résultat complet de l'opération est bien 10000000001h.

• MOV eax,5MOV ecx,3MUL ecx; Ici, eax vaut 15 et edx vaut 0 (et ecx vaut toujours 3).MOV eax,12345678hMOV ecx,256 ;256=100hMUL ecx ; Une multiplication par 256=162

2 décalage gauche

; Ici, eax vaut donc 34567800h et edx vaut 00000012h.

• MOV edx,0MOV eax,14MOV ecx,4DIV ecx ; Ici, eax vaut 3 et edx vaut 2.

156

DEC dest décrément nombre, destdest-1

INC dest incrément nombre destdest+1

ADD dest, src Addition de 2 nombre, destdest+src

ADC dest, src Addition de 2 nombre avec retenudestdest+src+CF(flag)

SUB dest, src Soustraction de 2 nombre, destdest-src

SBC dest, src Soustraction de 2 nombre avec retenu, destdest-src-+CF(flag)

MUL src Multiplication non signeredx.eaxeax*src (edx partie Haut, eaxpartie bas)

IMUL scr Idem Multiplication signer

DIV src unsigned integer divide, eaxeax/src le quotientedxedx mod src le reste

IDIV src Idem divisiov signer

NEG dest Complément à 2

CMP dest, src positionnement des indicateurs (flag ), sans modification de destination

Page 157: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

la programmation assembleur Intel x86 :Les Instructions logiques

• MOV eax, 10011010b

NOT eax ; Ici, eax vaut 10011010b.

NEG eax ; Ici, eax vaut 10011011b.

• MOV al,10101010bAND al,00111100b ; al vaut maintenant 00101000b

• MOV ax, 1b ;ax=00000001b

SHL ax, 2 ;ax=00000100b

SHR ax, 1 ;ax=00000010b

• MOV eax, 10111111b ;ax= 10111111b

ROL eax, 2 ;ax= 11111110b

ROR eax, 1 ;ax= 01111111b

• MOV eax, 11111111b ;ax= 11111111b

CLC ; CF=0

RCL eax, 2 ;ax= 11111101b et CF=1

RCR eax, 1 ;ax= 11111110b et CF=1

157

NOT dest Inverse (Complément à 1)

AND dest,src ET logique destdest ET src

OR dest, src OU logique destdest OU src

XOR dest, src XOU logique destdest OU src

SHL dest, src effectue un décalage vers la gauche de dest de srcbit

SHR dest, src effectue un décalage vers la droit de dest de src bit

ROL dest, src effectue une rotation vers la gauche de dest de srcbit

ROR dest, src effectue une rotation vers la droit de dest de src bit

RCL dest, src effectue une rotation vers la gauche de dest de srcbit incluant le CF

RCR dest, src effectue une rotation vers la droit de dest de src bit incluant le CF

NEG dest Complément à 2

CMP dest, src positionnement des indicateurs (flag ), sans modification de destination

CLC Met la retenue à CF(flag)0.

STC Met la retenue à CF(flag)1.

CMC Met le complément de la retenu CFNOT CF(flag)

Page 158: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

la programmation assembleur Intel x86 :Les Instructions branchements 1/5• JMP destination

Modification de EIP (Saut Intra-segment) pas besoin de RET

• Calcule la somme des valeurs d’un tableau

section .datatab dw 2, 4, 6, 3

section .textglobal CMAINCMAIN:

MOV ebp, esp ; for correct debuggingMOV eax, 0 ;eax=0MOV ebx,0 ; ebx indice iMOV ecx, 4 ; ecx la taille de tableau

pour: ADD ax,[tab+ebx] ;tab[i]ADD ebx,2 ;chaque élément est sur 2 octetLOOP pour ;ici eax= 15XOR eax, eaxRET

• Remarque : etqdest = identificateur de la ligne d’ instruction

158

CALL etqdest Appel de procédure etqdest (jusqu’à RET)

RET Retour d’une procédure

LEAVE Fixe le pointeur de pile du registre ESP à la valeur du registre EBP et «POP EBP»

JMP etqdest Saut inconditionnel à instruction etqdest

LOOP etqdest Bouclage Saut à instruction etqdesttant que ECX<>0 et ECXECX-1

Saut conditionnel utiliser généralement après un CMP destination, source

JE etqdest Saut conditionnel à instruction etqdestSi destination=source

JNE etqdest Saut conditionnel à instruction etqdestSi destination<>source

JG etqdest Saut conditionnel à instruction etqdestSi destination >source (entier signé)

JA etqdest Idem que JG mais pour entier non signé

JGE etqdest Saut conditionnel à instruction etqdestSi destination >=source (entier signé)

JAE etqdest Idem que JGE mais pour entier non signé

JL etqdest Saut conditionnel à instruction etqdestSi destination < source (entier signé)

JB etqdest Idem que JL mais pour entier non signé

JLE etqdest Saut conditionnel à instruction etqdestSi destination <=source (entier signé)

JBE etqdest Idem que JL mais pour entier non signé

mémoire

adr data

ds:TAB0x402000

02

ds:TAB+1 00

ds:TAB+2 04

00

06

00

03

00

Page 159: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

la programmation assembleur Intel x86 : Instruction branchement inconditionnel (notion de procédure)2/5

• Une procédure est un sous-programme appeler par CALL et retourner par RET

• Appelle de procédure: CALL destination

Sauvegarde de EIP dans la pile

EIP= nouvelle valeur

• Retour de procédure :RET

Restauration à partir de la pile des

anciennes valeurs de EIP

• L'exécution d'une procédure est déclenchée

par un programme appelant. Une procédure

peut elle-même appeler une autre procédure, et ainsi de suite.

Exemple :

Après l'instruction B, le processeur passe à

l'instruction C de la procédure, puis continue

jusqu'à rencontrer RET et revient à

l'instruction D.159

Page 160: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

la programmation assembleur Intel x86 :notion de procédure(passage de paramètres)3/5

Les paramètres peuvent être:

• Si les paramètres sont des valeurs passage des paramètres par valeur

MOV ax, [Data] ; adressage mémoire direct normal d'un mot

• Si les paramètres sont des adresses passage par adresse (aussi appelé par référence)

MOV ebx, Data ; ebx = & Data (adresse de Data) dit pointeur

MOV ax, [ebx] ; ax = *ebx

Pour un passage par valeur par exemple, on distingue soit:

1. Passage par registre : les valeurs des paramètres sont contenues dans des registres du processeur. C'est une méthode simple, mais qui ne convient que si le nombre de paramètres est petit (il y a peu de registres).

2. Passage par la pile : les valeurs paramètres sont empilés.

puis la procédure lit la pile.

Remarque:

Les pointeurs sont, entre autres, utilisés par les langages suivants (liste non exhaustive) : C, C++, Pascal, Ada, FreeBASIC, Fortran, C#, D, Modula-2, Oberon ..;

Dans la plupart des langages de programmation sans pointeurs, par exemple Python, Java ou Javascript/Actionscript, les variables sont toujours passés par valeur, mais l'accès aux champs de ces variables se fait par référence ou par adresse.(cas de chaine de caractères et tableau) 160

Page 161: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

la programmation assembleur Intel x86 :notion de procédure(Passage par registre) 4/5Exemple : -On va écrire une procédure (SOMME) qui calcule la somme de 2 nombres naturels de 16 bits.

-Convenons que les entiers sont passés par les registres AX et BX, et que le résultat sera placé dans le registre AX.

• La procédure s'écrit alors très simplement

SOMME :

ADD ax, bx ; EAX <-EAX + EBX

RET

et son appel, par exemple pour ajouter 6 à 2:

MOV ax, 6

MOV bx, 2

CALL SOMME

MOV sol, ax

• Rappel: Word pour indiquer à l'assembleur de stocker 2 dans le double mot qui commence

161

%include "io.inc"

SECTION .bss

num1 resw 1

num2 resw 1

sol resw 1

section .text

global CMAIN

CMAIN:

MOV ebp, esp;

;write your code here

MOV word [num1], 6

MOV word [num2], 2

MOV ax, [num1]

MOV bx, [num2]

CALL SOMME

MOV [sol],ax

XOR ax, ax

ret

SOMME :

ADD ax, bx ; AX <- AX + BX

RET

Page 162: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

la programmation assembleur x86 :notion de procédure (Passage par pile) 5/5Exemple le standard du langage C

Cette technique met en œuvre un nouveau registre, EBP (Base Pointer), qui permet de lire des valeurs sur la pile sans les dépiler ni modifier ESP. Le registre EBP permet un mode d'adressage indirect spécial, Ainsi, on lira le sommet de la pile avec:

MOV ax, [ebp] au lieu de MOV ax, [esp]

MaProcedure:PUSH ebpMOV ebp, esp

MOV ax, [ebp+8] ; 2iem paramètre.; ... du code sous programme

LEAVERET

Ou pour une fonction:

MaFonction: PUSH ebpMOV ebp, esp; ... du code sous programme

MOV eax, 1 ; la fonction retourne valeur 1LEAVERET 162

pile

ESP 2C

FF

22

00

ESP+4 AF

13

40

00

ESP+8 02

00

ESP+10 06

ESP ORIGINE 00

%include "io.inc"

SECTION .bss

num1 resw 1

num2 resw 1

sol resw 1

section .text

global CMAIN

CMAIN:

MOV ebp, esp ;write your code here

MOV word [num1], 6

MOV word [num2], 2

PUSH [num1]

PUSH [num2]

CALL SOMME2

XOR ax, ax

ret

SOMME2 :

PUSH ebp

MOV ebp, esp

MOV AX, word [esp+8]; charge argument 1

ADD AX, word [esp+10] ; ajoute argument 2

MOV [sol],ax ;retour de résultat

LEAVE ; restaure la pile

RET

Paramètre 1

Adresse retour IP

Paramètre 2

Adresse ancien EBP

Page 163: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

la programmation assembleur Intel x86 :Les Instructions de gestion d’interruption

• INT numéro

Appel d'une interruption

•Sauvegarde du registre d'état sur la pile

•Mise à 0 des indicateurs pas à pas (TF) et d'autorisation d'interruption (IF)

•Sauvegarde de CS sur la pile

•Calcul de l'adresse de la table d'interruption (numéro x 4)

•Chargement dans CS du second mot

•Sauvegarde de IP sur la pile

•Chargement du premier mot de la table dans IP donc Saut à l'adresse CS:IP

• IRET

Retour d'une interruption

Restauration de CS, IP et du registre d'état

Exemples d'interruptions :

•Interruption 0 : Division par 0

•Interruption 10H : Gestion d'écran

•Interruption 16H : Gestion clavier 163

Page 164: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

la programmation assembleur Intel x86 :Entrées/sorties 1/4

• Gestion par interruptions :

• permet de réagir rapidement a un changement en entrée.

• le périphérique prévient le processeur par une interruption,

• le processeur interrompt la tache en cours, effectue l'action prévue pour cette interruption et reprend l‘exécution du programme principal la ou il l'avait laissée.

• Gestion " haut-niveau" (détailler dans ce cours en TD et TP):

• Bibliothèques standards en C pour les E/S (pas en assembleur).

• MAIS, les conventions d'appels utilisées par C sont complexes...

164

Page 165: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

la programmation assembleur Intel x86 :Entrées/sorties (gestion interruption) 2/4

• Afficher un caractère à l’écran

MOV dl, ’a’

MOV ah, 2

INT 21h

IRET

• Afficher un message à l’écran

SECTION .data

msg db "Salut", 13, 10, '$'

SECTION .text

MOV ah, 9

MOV dx, msg

INT 21h

IRET

• Saisir une frappe au clavier

MOV ah, 1

INT 21h

IRET

renvoie dans le registre al le code du caractère en ASCII lu au clavier.165

Page 166: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

la programmation assembleur Intel x86 :Entrées/sorties (Gestion " haut-niveau") 3/4• Ecrire au début de fichier %include "io.inc"

• Pour chaque fonction d'affichage, il faut utiliser une des macro importer du langage C suivant :

166

Macro name DescriptionPRINT_UDEC size, data PRINT_DEC size, data

imprimer en représentation décimale data -nombre à imprimer. doivent être chiffre ou un symbole constant , le nom de la variable , size- nombre, donnant la taille des données en octets - 1 , 2 , 4 ou 8 (x64 ) .PRINT_UDEC pour numéro non signé, PRINT_DEC pour numéro signé .

PRINT_HEX size, data De même précédente , mais les données sont imprimées en représentation hexadécimale .

PRINT_CHAR ch Imprimer caractère ch . ch - chiffre ou un symbole constant , le nom de la variable

PRINT_STRING data Imprimer chaine jusqu’à NULL . data- chaîne constante , nom de variable

NEWLINE Imprimer saut de ligne ( '\ n' ) .GET_UDEC size, data GET_DEC size, data

Lire le données numériques d'entrée en représentation décimale à partir de stdin . size- nombre, donnant la taille des données en octets - 1 , 2 , 4 ou 8 (x64 ) . data- les données doivent être nom de variable GET_UDEC pour numéro non signé, GET_DEC - pour numéro signé .remarque Il utilise le registre esp alors interdit d'utiliser ce registre esp.

GET_HEX size, data De même précédente , mais les données sont lu en représentation hexadécimale .

GET_CHAR data De même précédente , mais la donnée lu est un seul caractère seulement.GET_STRING data, maxsz Lire une chaîne d'entrée avec une longueur inférieure à maxsz . Lecture arrêt sur EOF ou saut de ligne et "\ n ", écrit dans un

tampon . Dans la fin de la chaîne 0 caractère est ajouté à la fin data - nom de variable maxsz – nombre ou nombre constant .

Page 167: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

la programmation assembleur Intel x86 :Entrées /sorties (Gestion " haut-niveau") 4/4

• Saisir et Afficher une chaine à l’écran

%include "io.inc"

section .data

msg1 db 'entrer votre nom', 0

msg2 db 'bonjour ', 0

section .bss

nom resw 1

section .text

global CMAIN

CMAIN:

MOV ebp, esp

PRINT_STRING msg1

NEWLINE

GET_STRING nom, 20

PRINT_STRING msg2

PRINT_STRING nom

XOR eax, eax

RET

• Saisir et Afficher un nombre à l’écran

%include "io.inc"

section .data

msg1 db 'entrer un nombre', 0

msg2 db 'votre nombre est ', 0

section .bss

nbr resb 1

section .text

global CMAIN

CMAIN:

MOV ebp, esp

PRINT_STRING msg1

GET_DEC 2, nbr

NEWLINE

PRINT_STRING msg2

PRINT_DEC 2, nbr

XOR eax, eax

RET 167

Page 168: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

Jeux instructions complet x86 CPU

Architecture

Nom

extension

Instructions

8086

Original x86

AAA, AAD, AAM, AAS, ADC, ADD, AND, CALL, CBW, CLC, CLD, CLI, CMC, CMP, CMPSzz, CWD, DAA, DAS, DEC, DIV, ESC, HLT, IDIV,

IMUL, IN, INC, INT, INTO, IRET, Jcc, LAHF, LDS, LEA, LES, LOCK, LODSzz, LODSW, LOOPcc, MOV, MOVSzz, MUL, NEG, NOP, NOT,

OR, OUT, POP, POPF, PUSH, PUSHF, RCL, RCR, REPcc, RET, RETF, ROL, ROR, SAHF, SAL, SALC, SAR, SBB, SCASzz, SHL, SAL,

SHR, STC, STD, STI, STOSzz, SUB, TEST, WAIT, XCHG,XLAT, XOR

80186/80188 BOUND, ENTER, INSB, INSW, LEAVE, OUTSB, OUTSW, POPA, PUSHA, PUSHW

80286 ARPL, CLTS, LAR, LGDT, LIDT, LLDT, LMSW, LOADALL, LSL, LTR, SGDT, SIDT, SLDT, SMSW, STR, VERR, VERW

80386 BSF, BSR, BT, BTC, BTR, BTS, CDQ, CMPSD, CWDE, INSD, IRETD, IRETDF, IRETF, JECXZ, LFS, LGS, LSS, LODSD, LOOPD, LOOPED,

LOOPNED, LOOPNZD, LOOPZD, MOVSD, MOVSX, MOVZX, OUTSD, POPAD, POPFD, PUSHAD, PUSHD, PUSHFD, SCASD, SETA,

SETAE, SETB, SETBE, SETC, SETE, SETG, SETGE, SETL, SETLE, SETNA, SETNAE, SETNB, SETNBE, SETNC, SETNE, SETNG,

SETNGE, SETNL, SETNLE, SETNO, SETNP, SETNS, SETNZ, SETO, SETP, SETPE, SETPO, SETS, SETZ, SHLD, SHRD, STOSD

80486 BSWAP, CMPXCHG, INVD, INVLPG, WBINVD, XADD

Pentium CPUID, CMPXCHG8B, RDMSR, RDPMC,WRMSR, RSM

Pentium pro CMOVA, CMOVAE, CMOVB, CMOVB, CMOVE, CMOVG, CMOVGE, CMOVL, CMOVLE, CMOVNA, CMOVNAE, CMOVNB, CMOVNBE,

CMOVNC, CMOVNE, CMOVNG, CMOVNGE, CMOVNL, CMOVNLE, CMOVNO, CMOVNP, CMOVNS, CMOVNZ, CMOVO, CMOVP,

CMOVPE, CMOVPO, CMOVS, CMOVZ, RDPMC, SYSENTER, SYSEXIT,UD2

PentiumIII SSE MASKMOVQ, MOVNTPS, MOVNTQ, PREFETCH0, PREFETCH1, PREFETCH2, PREFETCHNTA, SFENCE

Pentium4 SSE2 CLFLUSH, LFENCE, MASKMOVDQU, MFENCE, MOVNTDQ, MOVNTI, MOVNTPD, PAUSE

Pentium4 SSE3 Hyper

Threading

LDDQU, MONITOR, MWAIT

Pentium4

6x2

VMX VMPTRLD, VMPTRST, VMCLEAR, VMREAD, VMWRITE, VMCALL, VMLAUNCH, VMRESUME, VMXOFF, VMXON

X86-64 CDQE, CQO, CMPSQ, CMPXCHG16B, IRETQ, JRCXZ, LODSQ, MOVSXD, POPFQ, PUSHFQ, RDTSC, SCASQ, STOSQ, SWAPGS

Pentium4 VT-x VMPTRLD, VMPTRST, VMCLEAR, VMREAD, VMWRITE, VMCALL, VMLAUNCH, VMRESUME, VMXOFF, VMXON168

Page 169: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

Différences des directives FASM et NASM

FASM

169

Jeux instruction x86ADD, SUB, CMP, AND, TEST, OR, XOR,MUL, IMUL, DIV, IDIVRCL, RCR, SAL, SAR, ROL, ROR INC, DEC, NOT, NEG JE, JNE,JA,JG,JAE,JGE,JB,JL, JBE,JLE…….

Les directives communsdd,dw,db

equ

Assume Data SEGMENTData ENDSCode SEGMENTCode ENDSOffsetWord PTR, Byte PTR

%include "io.inc"section.datasection.bsssection.textglobal cmaincmain: PRINT_UDEC size, data PRINT_DEC size, dataPRINT_HEX size, dataPRINT_CHAR chPRINT_STRING dataNEWLINE…….

NASM

Page 170: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

Équivalents des structures algorithmiques avancées (les tests avec si)1/4

• En algorithme

si( a = b) alors

<instructions-alors>

sinon

<instructions-sinon>

finsi

• En ASM

MOV eax,[a]

MOV ebx,[b]

Si: CMP eax, ebx

JNE Sinon

;a<>b --> saut vers sinon

Alors: <instructions-alors>

JMP Finsi

Sinon: <instructions-sinon>

Finsi:170

Boolean

Instruction alorsInstruction sinon

Instruction suivant

oui non

Page 171: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

Équivalents des structures algorithmiques avancées (les tests avec si)2/4

• En algorithme

selon v

cas 1:

<instruction 1>

cas 2:

<instruction 2>

Autres :

<instruction 3>

finselon

• En ASM

selon: CMP [v],1

JNE cas2

<instruction 1>

JMP finselon

cas2: CMP [v],2

JNE autres

<instruction 2>

JMP finselon

autres: <instruction 3>

finselon:171

v=1

Instruction 1

Instruction 2

V=2

Instruction3

Instruction suivant

oui

non

non

oui

Page 172: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

Équivalents des structures algorithmiques avancées (boucle tantque)3/4

• En algorithme

tantque( a = b)

<instructions>

fintantque

• En ASM

TantQue:

CMP eax, ebx ; eax=[a] et ebx=[b]

JNE FinTantQue;b<>a ---> saut vers FinTantQue

<instructions>

JMP TantQue

FinTantQue:

• En algorithme

répéter

<instructions>

Jusqu’à ( a=b )

• En ASM

repeter:

<instructions>

cmp eax, ebx ; eax=[a] et ebx=[b]

jne repeter ; b<>a --> boucle

jusqua:172

Booléen(vraie)

Instruction 1

relance

Instruction suivant

oui

non

Booléen(vraie)

Instruction 1

relance

ouinon

Instruction suivant

Page 173: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

Équivalents des structures algorithmiquesavancées (boucle pour)4/4

• En algorithme

Pour i0 a 10

<instructions>

finpour

• En ASM

mov ecx, 0

pour:

cmp ecx, 10 ;comparaison ecx, et 10

jae finpour ;si ecx>= 10 saute a finpour

<instructions>

inc ecx

jmp pour ;on boucle (saut inconditionnel)

finpour:173

Compteur0

compteur<=N

Instruction 1

Compteur Compteur+1

Instruction suivant

oui

non

Page 174: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

Structures Algorithmiques sous programme (Passage valeur par pile )Procédure sousProgramme1( réel var3)

Variable

Var4:entier

début

2.1 var4 sousProgramme2( 1 )

finprocédure

Fonction sousProgramme2( caractère var5) :entier

Variable

Var6:Entier

début

2.1.1 Var62

2.1.2 Valeur_retour var6

Finfonction

Variable

var1: caractère

var2 : réel

DEBUT

1. var22.0;

2. sousProgramme1(var2 )

FIN174

❶Pile ligne 2.

ESP EBP var4

EBP+2 @old ebp

@inst 2.

EBP+10

Var3=var2=2.0

❷Pile ligne 2.1

ESP EBP var6

EBP+2 @old ebp

@inst 2.1

EBP+10

Var5=1

var4

@old ebp

@inst 2.

Var3=var2=2.0

❸Pile ligne 2.1.1

ESP Var6=2

@old ebp

@inst 2.1

Var5=1

var4

@old ebp

@inst 2.

Var3=var2=2.0

❹Pile ligne 2.1

ESP EBP Var4=2

EBP+2 @old ebp

@inst 2.

EBP+10

Var3=var2=2.0

❺Pile ligne 2.

EBP=ESP

• Var2

• SousProgramme1(var2)

• Var4SousProgramme2(1)

•Var62

•Valeur_retour par registre

❷ ❹

Page 175: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

Structures algorithmiques autre représentation (automate finie)

• Machine de Moore avec actions et organigramme.

(a) : un état de machine de Moore avec actions (C est une condition booléenne et A une action) ;

(b) :une portion d’organigramme qui représente le même traitement.

175

Page 176: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

Structures algorithmiques autre représentation (automate finie)• Traduction des structures de contrôle

en machines séquentielles avec actions.

176

Page 177: Architecture des ordinateurs - cours, examenscours-examens.org/images/An-2018/Etudes-superieures/in... · 2018-02-22 · - Représentation des entiers - Représentation des réels

bibliographies

• Architecture des ordinateurs Note de cours (T.Dumartin)

• Architecture d’ordinateur (Jian-Yun Nie)

• Architecture des ordinateurs (Clement Jonquet)

• Architecture et technologie des ordinateurs, Paolo Zanella, Yves Ligier & Emmanuel Lazard, Dunod, 5eme edition, 2013.

• Architecture de l'ordinateur, Andrew Tanenbaum, Pearson, 5eme edition, 2009.

• fr.wikipedia.org

• fr.wikiversity.org

177