You are on page 1of 68

Circuits Logiques et Architectures de Machines

Informations pratiques
Cours : Ccile Germain-Renaud Page Web :
http://www.lri.fr/~cecile/ENSEIGNEMENT/LAM/LAM.html

Contact : cecile.germain@lri.fr Contrle des connaissances


Compte-rendus des TP : 0,1 Partiel : 0,3 Examen 0,6

Plan du cours
1. 2. 3. 4. 5. 6. 7. Reprsentation de linformation Circuits combinatoires Registres et automates Mmoire Architecture logicielle Micro-Architecture Introduction aux architectures avances

1. L'information

Plan
Dfinitions Support Reprsentation des entiers Reprsentation des rels

L'information
Analogique : grandeur continue ou Numrique (= digitale) :
Information = connaissance d'un tat parmi un nombre fini d'tats possibles Le cas le plus simple : 1 tat parmi 2

Support : grandeur physique continue - tension Le temps intervient pour obtenir une mesure pertinente de l'tat

L'information

V Etat haut 1 Etat Bas 0 t1 t2 t3 t Seuil haut

Seuil bas

Codage - dfinitions
1 bit = quantit d'information lie la connaissance d'1 tat parmi 2 -> codage par 0 et 1 Avec n bits, on peut coder 2n tats, donc la quantit d'information contenue dans la connaissance d'1 tat parmi N est

Log2 ( N ) bits
8

Codage - exemple

Etat France GB Al lema gne Espagne It alie Portug al Gr ce

B2 0 0 0 0 1 1 1

B1 0 0 1 1 0 0 1

B0 0 1 0 1 0 1 0

Notations
Binaire : 00101100
Peu pratique pour le traitement manuel

Hexadcimale : 1 digit hexa par quartet 0x2C La notation hexadcimale ne prjuge pas du contexte d'interprtation exemple : A' est cod par 0x41

10

Ordres de grandeurs
Ordre de grandeur Puissance de 2 Kilo Mega Giga Tera Peta 10 20 30 40 50 Puissance de 10 3 6 9 12 15
11

Quelle information ?
Tous les processeurs
Nombres
Entiers naturels et relatifs Rels

Caractres Instructions

Pourquoi pas d'autres ?

12

Quel codage?
Doit permettre de raliser des oprateurs matriels rapides

Code de 1

Code de 2

Additionneur Code de 3
13

Codage et oprateurs Sur un nombre fixe de bits


- caractristique du processeur et de la technologie des CI - typiquement 32 ou 64 bits pour le scalaire
Code de 1 Code de 2

Additionneur Code de 3
14

Quelle information ?
Certains processeurs reprsentent et traitent les vecteurs d'entiers et de rels
Processeurs multimdia Console de jeux

En gnral, pas les enregistrements (record), listes et autres types complexes

15

Codage des caractres ASCII


American Standard Code for Information

Interchange : 7 bits + 1 bit de parit Caractres alphanumriques latins non accentus + caractres spciaux

Latin -1 : 8 bits, standard ISO 8859-1. Caractres


alphanumriques latins accentus

Unicode : 16 bits, caractres d'alphabets varis

16

Plan
Dfinitions - Support Reprsentation des entiers Reprsentation des rels

17

Codage des entiers naturels


Sur n bits, criture en base 2 Codage : division par les puissances de 2 Dcodage : formule de dfinition Sur n bits, les nombres reprsentables sont [0.. 2n 1] Sur 8 bits : [0, 255]

18

L'additionneur
Additionneur : circuit matriel qui effectue l'addition nave des entiers naturels sur n bits et tronque ventuellement la retenue Symbole : # Nom de l'opration : additionnage
n r Additionneur n
19

L'additionneur
Le rsultat du calcul dans l'additionneur peut tre faux : retenue Sur 3 bits
001 # 001 = 010 001 # 111 = 000 Correct : 1 + 1 = 2 Faux : 1 + 7 0

L'additionnage est tout simplement l'addition modulo 2n , qui n'est dfinie que sur Z/ 2nZ.

20

Addition des naturels


Le rsultat du calcul dans l'additionneur peut tre faux Un programme de test simple :
entier_non_sign : val ; val=1; tant que val <> 0 faire val = val + 1; fin tant que afficher ( Quelle erreur !');

Le rsultat dpend - du langage de programmation - du compilateur et des options


21

Multiplication et division par 2


Multiplication par 2k : dcalage gauche de k positions
52 = 32 + 16 + 4 00110100 Dcalage gauche de 2 pos : 11010000 11010000 = 128 + 64 + 16 = 208 = 4x52

Division entire par 2k : dcalage droite de k positions Oprateur matriel trs simple
22

Codage des entiers relatifs


Codage en complment 2 sur n bits
Les nombres reprsents sont

[2 n1 2 n1 1]
Si N 0, N est cod comme un entier naturel Si N < 0, N est cod par la reprsentation en naturel de

2n + N
23

Codage en complment 2 sur 3 bits

Nombre 0 1 2 3 -1 -2 -3 -4

Code 000 001 010 011 De 8 -1 = 7, soit 111 De 8 - 2 = 6, soit 110 De 8 3 = 5, soit 101 De 8 4 = 4, soit 100

24

Proprits du codage en complment 2


1. Dcodage

an1a2a1a0 code

an1+ai2i
i=0

n2

2. Le bit de poids fort des positifs est 0, des ngatifs est 1 3. La reprsentation de -1 est le mot o tous les bits sont 1 : FF (8bits), FFFF (16bits) etc.

25

Oprations arithmtiques
L'oppos d'un relatif s'obtient en complmentant bit bit et en ajoutant 1
Code (-N) = Code (cpt(N) # 1) Ex. sur 8 bits, 2 est cod par 00000010 Complment bit bit : 11111101 # 1 = 11111110

26

Oprations arithmtiques
Le circuit additionneur peut effectuer aussi l'addition des relatifs s'ils sont cods en complment 2 : un seul circuit

Code de 1

Code de 2

Code de 1

Code de -2

Additionneur Code de 3

Additionneur Code de -1
27

Addition des relatifs Le rsultat du calcul dans l'additionneur peut tre faux : overflow
Sur 3 bits : 001 # 001 = 010 001 # 110 = 111 111 # 111 = 110 011 # 001 = 100 110 # 101 = 011 correct : 1 + 1 -> 2 correct : 1 + (-2) = -1 correct : -1 + -1 = -2 faux : 3 + 1 n'est pas codable faux :-2 + (-3) n'est pas codable

28

Addition des relatifs


1. L'additionnage des codes de deux relatifs N et M est gal N + M si et seulement si N + M est codable 2. L'additionnage des codes de deux relatifs N et M est gal N + M si et seulement si N et M sont de signes contraires Ou bien N et M sont de mme signe, et le bit de signe du rsultat est gal la retenue

29

Addition des relatifs

-2n

Ngatifs -2n-1 Rep.

Positifs Rep. Overflow pour les ngatifs r=0

Reprsentation des ngatifs

2n-1
Overflow pour les positifs r=1

2n

30

10

Codage des entiers naturels et relatifs : conclusion


Avec les codages choisis, l'additionneur peut effectuer l'addition des naturels et des relatifs On verra au ch. 2 qu'il suffit de l'tendre modrment pour effectuer la soustraction Mais le rsultat peut tre faux s'il n'appartient pas l'ensemble d'entiers reprsentables
Analyser l'application et le programme pour garantir que le rsultat reste codable Si ce n'est pas possible, spcifier le comportement sur overflow et utiliser les ressources de l'environnement pour le dtecter et raliser l'action spcifie.

31

Plan
Dfinitions Support Reprsentation des entiers Reprsentation des rels

32

Codage des rels


Problmes :
Arrondir Reprsenter quitablement des nombres trs grands et trs petits

Principe : reprsentation normalise par mantisse et exposant, avec un choix judicieux des valeurs de l'exposant

33

11

Mantisse et exposant x = m.Be


m est la mantisse, e l'exposant, B la base m est un nombre deux-cimal Si B est connu, x peut tre cod par (m, e) Exemple en notation dcimale 2,76 = 2,76 . 100 = 276 . 10-2 = 27,6 . 10-1 = Reprsentation normalise ( scientifique ) : 1 seul chiffre, diffrent de 0, avant la virgule
34

Mantisse-exposant en base 2
Le codage des rels utilise la reprsentation mantisse-exposant, avec B = 2 Nombres deucimaux : de la forme N/2p 1,100112 = 1 + 2-1 + 2-4 + 2-5 = 1100112 . 2-5 = 51 . 2-5
Dans la suite, on ne note plus l'indice 2

Normalisation : le chiffre avant la virgule est forcment un 1, qui sera implicite dans le codage de la mantisse pour conomiser un bit
35

Codage IEEE 754 simple prcision

31 30

23 22

s 1

E 8

f 23

E = interprtation en naturel Pour E 0 et 255, la valeur code est (-1)s . 2E-127 . 1,f Soit e = E -127. Alors -126 e 127

36

12

Codage IEEE 754 simple prcision

31 30

23

22

1 1

10010001 8

001000 23

Que reprsente 0xC8900000 ? 1100 1000 1001 0000 0


s = 1 ; E = 10010001 = 145 donc e = 18 f = 001 0000 0 donc m = 1 + 2-3 Le nombre cod est -218(1 + 2-3)
37

Codage IEEE 754 simple prcision


Codage de 2,5 2,5 = 5x2-1 = 1012x2-1 = 1,012x21 E = 127+1 = 128 f = 01 codage : 0 10000000 0100=0x40200000 Codage de 0,75 0,75 = 3x2-2 = (2+1)x2-2 = (1 + 2-1 ) 2-1 = 1,12x2-1 E = 127-1 = 126 f = 1 codage : 0 01111110 1000=0x3F400000
38

Laddition des flottants


1. Comparaison des exposants

2,5 = 21x1,012 0,75 = 2-1x1,12 Diffrence 2

2. Dcalage droite de la 0,75 = 21x0,0112 mantisse du plus petit nombre 3. Somme des mantisses 4. Normalisation du rsultat 5. Traitement cas exceptionnels overflow, underflow, zero 1,012 + 0,0112 = 1,1012 Normalis Non

Rsultat = 21x1,1012 = 3,25


39

13

Laddition des flottants


1. Comparaison des exposants

2,5 = 21x1,012 3,25 = 21x1,1012

Diffrence 0 2. Dcalage droite de la Pas de dcalage mantisse du plus petit nombre 3. Somme des mantisses 1,1012 + 1,012 = 10,1112

4. Normalisation du rsultat 10,1112 x21=1,01112 x22 5. Traitement cas exceptionnels overflow, underflow, zero Non

Rsultat = 22x1,01112 = 5,75


40

Laddition des flottants


1. Comparaison des exposants 2. Dcalage droite de la mantisse du plus petit nombre 3. Somme des mantisses 4. Normalisation du rsultat 5. Traitement cas exceptionnels overflow, underflow, zero

230 = 230x1,012 3,25 = 21x1,1012 Diffrence 29 Mantisse 0

1,1012 + 0,02 = 1,1012 Normalis Arrondi Rsultat = 230


41

Erreurs darrondi
Le rsultat dune addition est souvent faux Mais le standard impose que le rsultat soit le rsultat exact arrondi, avec des choix possibles
Au plus prs / Valeur Infrieure / Valeur suprieure Mais 230

+ 3,25 a pour rsultat 230

Ralis avec 3 bits supplmentaires seulement En langage de haut niveau, options de compilation

42

14

Erreurs darrondi
Laddition nest plus associative (-230 + 230) + 3,25 = 3,25 -230 + (230 + 3,25) = 0
Le traitement des erreurs darrondi dans les mthodes numriques est une composante essentielle de linformatique numrique
Trs bien connu pour lalgbre linaire et encapsul dans des bibliothques dont lutilisation est imprative Beaucoup moins bien en simulation

43

Codage IEEE 754 simple prcision


Les cas exceptionnels
31 30 23 22 0

s 1
Nom Dnormalis Zro Infini NaN

E 8
E 0 0 255 255 f Non 0 0 Non 0 0

f 23
valeur s -127 (-1) .2 .0,f 0 s (-1) . NaN

44

La norme IEEE 754


Codage simple prcision (32 bits), double prcision (64 bits), simple tendue et double tendue Spcification des arrondis suivant les oprations, de l'arithmtique tendue ; Objectif : reproductibilit Traitement des cas exceptionnels
David Goldberg. What every computer scientist should know about floating point arithmetic

45

15

Conclusion
L'interprtation d'une chane de bits dpend du contexte.
0xC8900000 -> -218(1 + 2-3) en flottant -> 12x167 + 8x166 + 9x165 en naturel sur 32 bits -> en relatif

Comment le matriel reconnat-il le contexte : voir deuxime partie La validit des calculs doit tre dmontre a priori
46

2. Circuits combinatoires

Plan
Algbre de Boole et portes logiques Reprsentations des fonctions boolennes
Formes normales Minimisation

Ralisations
Multiplexeurs et dcodeurs PLA Ladditionneur

48

16

Introduction
Information Etat Haut - Etat Bas Abstraction :
Etat Haut -> 1 Etat Bas -> 0

Proprits formelles de la reprsentation abstraite en vue d une ralisation matrielle

49

Algbre de Boole
Soit E un ensemble non vide, muni de deux oprations binaires + et ., dune opration unaire note -, et deux lments particuliers de E nots 0 et 1. (E, 0, 1, +, ., - ) est une algbre de Boole si (i) les oprations + et . sont commutatives et associatives (ii) 0 est neutre pour + et 1 pour . (iii) + et . sont distributives l'une sur lautre (iv) a E , a . a = 0 et a + a = 1
50

L'algbre de Boole des circuits logiques


E = {0, 1} et +, . ,

- sont dfinies formellement par : .


0 1 0 0 0 1 0 1 0 1 1 0

+ 0 1

0 0 1

1 1 1

Interprtation logique, au sens philosophique,

. = ET, + = OU, = NEGATION (NOT) Notation : priorit de . sur +

51

17

Proprits
Si (E, 0, 1, +, ., - ) est une algbre de Boole, (E, 1, 0, ., +, - ) est aussi une algbre de Boole. !!a = a a + a = a a.a = a a + 1 = 1 a.0 = 0 a + 0 = a a.1 = a Rgles de De Morgan

a, b E, a + b = a.b a, b E, a.b = a + b
52

D'autres algbres de Boole

P( E, , E, , )

Les n-uplets de boolens Dans la suite, on considre l'algbre 2 lments (B, 0,1, +, ., ).

53

Portes logiques
Porte logique : circuit qui ralise une fonction lmentaire

ET AND .

OU OR +

Inverseur NOT
_

54

18

Portes logiques et algbre de Boole


Les portes logiques ne ralisent les fonctions logiques qu' certains points dans le temps Le temps de propagation d'un circuit est le temps qui spare le positionnement des entres de celui de la sortie Ordres de grandeur
Lumire dans le vide : 4ns/m nano seconde 10-9 Temps de commutation: pico seconde ps 10-12

tp

E S t

55

Portes NAND et NOR


Les portes ET et OU ne sont pas les plus simples raliser en technologie CMOS Les vraies portes lmentaires sont les portes NAND, NOR et NOT

NAND(a, b) = a.b NOR(a, b) = a + b


56

Technologie CMOS
CMOS = Complementary Metal-oxide semiconductor Ici, transistor = interrupteur Le transistor P est ouvert si G=haut, ferm si G = bas Le transistor N est ouvert si G= bas, ferm si G = haut

Transistor N

Transistor P

57

19

Portes
a b E S S S b

Inverseur

Porte NOR

Porte NAND
58

Portes NAND et NOR


NAND et NOR sont fonctionnellement complets : on peut raliser ET, OU et NOT a partir de chacun d'entre eux

a = a.1 = NAND (a, 1) a = a.a = NAND (a, a) a.b = a.b = NOT(NAND(a, b)) a + b = a.b = NAND (NOT(a), NOT(b))
59

Portes NAND et NOR : la rgle de De Morgan

a, b E, a + b = a.b

=
a, b E, a.b = a + b

=
60

20

NANDk et NORk NANDk (x1, , xk) = x1.x2. .xk NORk (x1, , xk) = x1+ x2+ + xk

NOR4

NAND4

Mais les contraintes technologiques limitent un petit nombre d'entres.


61

Le OU exclusif - XOR
a 0 0 1 1 b 0 1 0 1 ab 0 1 1 0

a b = a.b + a.b

Porte XOR

62

Le multiplexeur
Dfinition : if c then e0 else e1 Expression logique : s = c.e0 + c.e1 Mais ralis directement
p p

e0

e1 c s
p
63

0 1

21

Plan
Algbre de Boole et portes logiques Reprsentations des fonctions boolennes
Formes normales Minimisation

Ralisations
Multiplexeurs et dcodeurs PLA Ladditionneur

64

Fonctions boolennes
Fonctions de {0,1}n vers {0,1} Reprsentations
En extension : tables de vrit Algbrique : f(a,b,c) = b + a.c La reprsentation algbrique n'est pas unique : a+a=a a 0 0 0 0 1 1 1 1 b 0 0 1 1 0 0 1 1 c 0 1 0 1 0 1 0 1 f 1 1 0 0 1 1 0 1
65

Exemples
Bit de parit c= !a+b +a.!b = XOR(a,b) Convertisseurs naturel-Gray Une fonction g de 4 variables qui est 1 ssi le nombre de 1 est gal au nombre de 0
66

22

Contexte : expressions boolennes


Toute expression de n variables boolennes Grce aux lois de De Morgan, on peut considrer que les ngations ne concernent que les variables individuelles Forme disjonctive normale (FDN) OU de ET a.!b + a.c.d Forme conjonctive normale (FCN) ET de OU (a + !b) . (a+c+d)

67

Contexte : expressions boolennes


FCN : chaque clause exprime une contrainte Question fondamentale : satisfiabilit Satisfiabilit dune expression en FDN au moins un ET ne contient pas une variable et son complment Le problme gnral de la satisfiabilit est NP complet

68

Circuits combinatoires
Dispositif matriel qui calcule = ralise une ou des fonctions boolennes
f0(e0, e1, en-1), , fp-1(e0, e1, en-1)

Synthse logique : mthodes de conception des circuits combinatoires Compromis temps de propagation / encombrement / facilit de conception

69

23

Reprsentation des fonctions boolennes


Deux reprsentations canoniques
Forme conjonctive normale et forme disjonctive normale Une fonction boolenne a une et une seule forme conjonctive normale, et une et une seule forme disjonctive normale Technologiquement utilisables

Formes minimises suivant des critres technologiques

70

Thorme de Shannon
f(x1, xn) = x1. f(0, x2, xn) + x1. f(1, x2, xn)
Les deux membres sont identiques pour x1 = 0 et x1 = 1

Applications
Ecrire la fonction comme un polynme aux xi et xi complments (FDN, FCN) Exprimer lexpression partir de fonctions multiplexeurs

71

Forme disjonctive normale


Un terme produit (minterm) est un produit de toutes les variables d'entres, complmentes ou non. Pour n variable d'entre, il y a 2n minterms Chaque minterm correspond une ligne de la table de vrit. Chaque variable est complmente si dans cette ligne sa valeur est 0, non complmente sinon

m0 = x1.x0 m1 = x1.x0 m2 = x1.x0 m3 = x1.x0

x0 0 0 1 1

x1 0 1 0 1

m3 0 0 0 1

m2 0 0 1 0

m1 0 1 0 0

m0 1 0 0 0
72

24

Forme disjonctive normale


La forme disjonctive normale d'une fonction est le OU des minterms pour lesquels la fonction vaut 1
a 0 0 0 0 1 1 1 1 b 0 0 1 1 0 0 1 1 c 0 1 0 1 0 1 0 1 f 1 1 0 0 1 1 0 1

f = a.b.c + a.b.c + a.b.c + a.b.c + a.b.c

73

Forme disjonctive normale


La forme disjonctive normale d'une fonction est le OU des minterms pour lesquels la fonction vaut 1

Notation : mi Exemple g = m3 + m5 + m6 + m9 +m10 +m12

74

Forme disjonctive normale et portes logiques


Logique 2 niveaux : OU (ET)

a b c

75

25

Forme disjonctive normale et portes logiques


La forme disjonctive normale peut aussi s'exprimer par un NAND de NAND, en utilisant ventuellement des portes NANDk
f = a.b.c + a.b.c + a.b.c + a.b.c + a.b.c = a.b.c + a.b.c + a.b.c + a.b.c + a.b.c = NAND4 (NAND3 (a.b.c), NAND3 (a.b.c), NAND3 (a.b.c), NAND3 (a.b.c),NAND3 (a.b.c))

76

Forme conjonctive normale


Un terme somme (maxterm) est une somme de toutes les variables d'entres, complmentes ou non. Chaque maxterm correspond une ligne de la table de vrit. Chaque variable est complmente si dans cette ligne sa valeur est 1, non complmente sinon La forme conjonctive normale d'une fonction est le ET des maxterms pour lesquels la fonction vaut 0. La forme conjonctive normale peut s'crire comme un NOR de NOR

77

Forme conjonctive normale

a 0 0 0 0 1 1 1 1

b 0 0 1 1 0 0 1 1

c 0 1 0 1 0 1 0 1

f 1 1 0 0 1 1 0 1

f = (a + b + c).(a + b + c).(a + b + c)

78

26

Minimisation
Contrainte : toujours logique 2 niveaux Moins de minterms : plus petit OU Moins de variables dans chaque minterm : plus petits ET

a 0 0 1 1

b 0 1 0 1

f 1 0 1 1

ab + ab + ab = a + b

79

Principe des tables de Karnaugh

Exploiter la proprit a + a = 1 par une reprsentation graphique


ab + ab + ab = ( ab + ab) + ( ab + ab ) = b+a

a
b
X

a
X X
80

Tables de Karnaugh : exemples de regroupements


Trois variables

b b

a a
xx

a a b b
xx xx

c c c
bc

c c c
c

a a b x xxx b x xxx c c c
1
81

27

Tables de Karnaugh : exemples


Quatre variables

a.b
x x x x d x x x x d

b a.b.d b

d
c

c
82

Tables de Karnaugh : exemples


a 0 0 0 0 1 1 1 1 b 0 0 1 1 0 0 1 1 c 0 1 0 1 0 1 0 1 f 0 1 0 1 1 1 0 1

b b

a a
xxx xxx

c c c

f=a+c

La fonction peut s'crire comme le OU des regroupements par puissances de 2

83

Tables de Karnaugh
Attention : grille torique

a a
x x

bx

f = a.c + b.c

c c c

84

28

Minimisation : dfinitions
Monme premier : qui n'est contenu dans aucun autre Base irredondante : ensemble de monmes premiers
(a) Dont la somme est gale la fonction (b) Telle que si on enlve un monme, (a) n'est plus vraie

Pas d'unicit

premiers
x x x x x x x x x x x x x x x x x x x x x

non premier

BI 4 monmes

BI 3 monmes

85

Minimisation : dfinitions
Base irredondante minimale : en nombre de monmes, puis en taille de monmes Algorithme :
Gnrer tous les monmes premiers Gnrer toutes les bases irredondantes par essais successifs Choisir une base minimale (pas unique)

Le problme est NP-complet

86

Bases irredondantes minimales

Pas d'unicit

x x x x x

x x x x x

x x x x x

Equivalentes

Plus gros monme Non optimale


87

29

Minimisation manuelle
Effectuer les regroupements par ordre dcroissant de taille Choisir les regroupements qui liminent le plus grand nombre de x sans redondance Tous les x doivent tre pris en compte

88

Afficheur 7-segments

9
89

Fonctions incompltement spcifies


La valeur de la fonction n'est pas significative pour certaines valeurs des variables d'entre. a Le segment a est allum pour 0, 2, 3, 5, 6, 7 ,8 ,9
e3
e2 1 x
5 0 2 3 7 6

e3
x x x x
10 11

d d

8 9 13

x x

e0

e2

15 14

x d
12

e0
e0

a = e1 + e3 + e2 .e0 + e2 .e0
90

d d

e1

e1

e1

30

Plan
Algbre de Boole et portes logiques Reprsentations des fonctions boolennes
Formes normales Minimisation

Ralisations
Multiplexeurs et dcodeurs PLA Ladditionneur

91

Les fonctions lmentaires


Les oprateurs logiques : par les portes ET, OU, NAND, NOR, XOR Portes complexes, dpendant de la technologie La slection : par le multiplexeur ou le dcodeur

92

Les Multiplexeurs
Fonction : slection
p p

Le + simple : 1 parmi 2
si c == 0 alors s = e0 sinon s = e1

e0 s
p

e1 c

0 1

93

31

Les Multiplexeurs
1 parmi 2n 2nxp entres de donnes, n entres de contrle, 1xp sortie

e0 e1 e2 e3 c s
p

S = ei si c n-1c0 = i

94

Multiplexeurs
Toute fonction Boolnne de n variables peut tre implemente avec un multiplexeur 1 parmi 2n-1.
a 0 0 0 0 1 1 1 1 b 0 0 1 1 0 0 1 1 c 0 1 0 1 0 1 0 1 f 1 1 1 0 0 0 0 1

S=1 S=c S=0 S=c

a b c 1 0

95

Multiplexeurs
Pour une fonction de n variables, par exemple f(A,B,C,D) Avec un MUX 1 parmi 2n-1 donc n-1 lignes de slection Dfinir un ordre des variables, par exemple e3 = A, e2 = B, e1 = C, e0 = D Les n-1 bits de poids fort vont vers les n-1 lignes de slection, par exemple A,B,C Pour deux lignes conscutives, les valeurs possibles de la sortie sont soit 0, soit 1, soit e0, soit !e0. Connecter 0, e0, !e0, ou 1 chaque entre daprs le rsultat de l tape prcdente.

96

32

Les dcodeurs
n entres de donnes, 2n sorties = les minterms Donc, 1 seule sortie active un instant donn Si = 1 si e n-1e0 = i Toute fonction boolenne peut tre gnre avec un dcodeur et un OR : FDN s0 s1 s2 s3 s4 s5 s6 s7 Exemple dutilisation : Fonction g

e0 e1 e2 A

S1 = e2 .e1.e0
97

Ralisation structure
Un dcodeur 3:8 partir de dcodeurs 2:4
e0 e1 e2

m0

m7

98

Les encodeurs
Fonction rciproque du dcodeur Une seule entre 1, criture binaire du numro de lentre

e0 e1 e2 e3 e4 e5 e6 e7

s0 s1 s2

99

33

Les encodeurs
Fonction rciproque du dcodeur Une seule entre 1, criture binaire du numro de lentre active Exemple : encodeur 4:2
e3 0 0 0 1 e2 0 0 1 0 e1 0 1 0 0 e0 1 0 0 0 s1 0 0 1 1 s0 0 1 0 1
100

Ralisation minimise s0 = e1 + e3 s1 = e2 + e3

Organisation matricielles

COL. 4-bit

Poids Faibles

0 4 8 C

1 5 9 D

2 6 A E

3 7 B F
ligne 4-bit

Poids Forts

101

Clavier hexadcimal

COL. 4-bit

1 4 7 0

2 5 8 A

3 6 9 B

F E D C
ligne 4-bit

Valeur 4-bit

102

34

Les encodeurs
La ralisation minimise prcdente nest informative que sous la contrainte 1 seule entre active Si toutes les entres 0, toutes les sorties sont 0, comme pour e0=1

e3 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1

e2 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1

e1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1

e0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

S1 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1

S0 0 0 1 1 0 0 1 1 1 1 1 1 1 1 1 1
103

Encodeur de priorit
Priorit au 1 de plus fort poids Bit de validit Encodeur de priorit 4:2
e3 0 0 0 0 1 e2 0 0 0 1 d e1 0 0 1 d d e0 0 1 d d d s1 X 0 0 1 1 s0 X 0 1 0 1 V 0 1 1 1 1
104

Encodeur de priorit / encodeur simple


e3 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 e2 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 e1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 e0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 S1 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 S0 0 0 1 1 0 0 1 1 1 1 1 1 1 1 1 1 P1 x 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 P0 x 0 1 1 0 0 0 0 1 1 1 1 1 1 1 1 105

35

Gestion dinterruption

Encodeur de priorit
Device A Device B Device C Device D IntRq #Requte

Microprocesseur

106

Fonctions boolennes quelconques


Une fonction de quelques variables, pas de rgularit : logique "anarchique" (a b +c) (d.e)

a b c d e
107

Fonctions boolennes quelconques


Plusieurs fonctions de plusieurs variables, pas de rgularit : Programmable Logic Array (PLA)

b minterms Matrice OU

Matrice ET a+b a.b a b


108

36

La structure PLA
Optimise la surface et la faisabilit
Existe comme circuit indpendant configurable par claquage des connexions ET et OU (PLA) ou seulement ET (PAL)

p entres fixes

q minterms, q minimiser Matrice OU

Matrice ET

n sorties fixes
109

La structure PLA
Minimisation globale sur l'ensemble des fonctions : la minimisation individuelle peut tre contre-productive

b Matrice OU Est moins bon que la ralisation prcdente

Matrice ET

a+b a.b a b
110

Logique en tranches nx1 fonction de plusieurs variables : logique en tranches


a cout - 1 tranche, optimise - dupliquer
a3 a COUT cout s s3 b3 b cin a2 a cout s s2 b2 b cin a1 a cout s s1 b1 b cin a0 a cout s s0
111

b cin s

b0 b cin CIN

37

L'additionneur
L'additionneur 1 bit
a cout b cin s

a 0 0 0 0 1 1 1 1

b 0 0 1 1 0 0 1 1

Cin 0 1 0 1 0 1 0 1

S 0 1 1 0 1 0 0 1

Cout 0 0 0 1 0 1 1 1

S = a.b.Cin + a.b.Cin + a.b.Cin + a.b.Cin

Cout = a.b + a.Cin + b.Cin

112

L'additionneur 1 bit en portes NANDk


S = a.b.Cin + a.b.Cin + a.b.Cin + a.b.Cin

Cout = a.b + a.Cin + b.Cin

a b Cin

113

Cout

L'additionneur 1 bit Hypothse : 1t par porte NANDk ou NORk


S = a.b.Cin + a.b.Cin + a.b.Cin + a.b.Cin

Temps de propagation : 3t
Cout = a.b + a.Cin + b.Cin

Temps de propagation : 2t

114

38

L'additionneur n bits propagation de retenue


a3 a COUT cout s s3 b3 b cin a2 a cout s s2 b2 b cin a1 a cout s s1 b1 b cin a0 a cout s s0 b0 b cin CIN

Problme : temps de propagation de la retenue 2nt pour COUT (2n + 1)t pour Sn
115

Chemin critique
Plus long chemin (en temps) des entres vers une sortie

a3 a COUT cout s s3

b3 b cin

a2 a cout s s2

b2 b cin

a1 a cout s s1

b1 b cin

a0 a cout s s0

b0 b cin CIN

116

Retenue anticipe
Acclrer le calcul de la retenue de sortie Soient P = a + b propager une retenue 1 G = a.b gnrer une retenue Alors Cout = G + P. Cin

ai+1 a cout

bi+1 b cin Couti

ai a cout

bi b cin Couti-1
117

Couti+1

39

Retenue anticipe
Si P = a + b et G = a.b alors Cout = G + P . Cin En effet Cout = a.b + a.Cin + b.Cin = G + P . Cin Remarque: vrai aussi pour P = a XOR b
118

Circuit anticipateur de retenue


Calcul en 2 couches logiques de la retenue sortante.
Exemple sur 4 bits Cout3 = G3 + P3 .Cout2 = G3 + P3 .(G2 + P2 .Cout1) = G3 + P3 .(G2 + P2 .(G1 + P1 .Cout0) = G3 + P3 .(G2 + P2 .(G1 + P1 .(G0 + P0 .Cout-1)

Cout3=G3+P3.G2+P3.P2.G1+P3.P2.P1.G0 + P3.P2.P1. P0 .Cout-1


119

Circuit anticipateur de retenue

a3 a p P3 COUT

b3 b g G3 a

a2

b2 b a

a1

b1 b a

a0

b0 b

p P2

g G2

p P1

g G1

p P0

g G0

2t
CIN

Circuit anticipateur
Cout =G3+P3.G2+P3.P2.G1+P3.P2.P1.G0 + P3.P2.P1. P0 .Cin

2t
120

40

Additionneur retenue anticipe Version 1


b7 a7 s7 b6 a6 s6 b5 a5 s5 b4 a4s4 b3 a3 s3 b2 a2 s2 b1 a1 s1 b0 a0 s0

Additionneur propagation plus calcul Gi, Pi


G7 P7 G6 P6 G5 P5 G4 P4

Additionneur propagation plus calcul Gi, Pi


G3 P3 G2 P2 G1 P1 G0 P0

Cin

Circuit anticipateur de retenue

Cout3

Circuit anticipateur de retenue

S3 9t, le calcul anticip ne change rien Cout3 2t pour Gi, Pi plus 2t pour le circuit anticipateur : 4t S7 temps de calcul de Cout3 plus additionneur propagation : 13t Au lieu de 17t dans l'additionneur propagation simple

121

Additionneur retenue anticipe Version 2


Calcul anticip de toutes les retenues

Toutes les retenues se calculent en 4t 2t pour les Gi, Pi 2t pour chaque retenue indpendamment Tous les Si en 7t : 4 pour les retenues et 3 pour le calcul de Si

Si = Gi .Pi Couti 1 Cout0 = G0 + P0 .Cout-1 Cout1 = G1 + P1.G0 + P1. P0 .Cout-1 Cout2 = G2 + P2.G1 + P2. P1 G0 + P2. P1 P0 .Cout-1 etc.

122

Additionneur retenue anticipe


Problme : l'hypothse 2 couches logiques = 2t n'est valide que pour un petit nombre d'entres, par exemple 4. Le mme principe peut s'appliquer rcursivement
Cout3=G3+P3.G2+P3.P2.G1+P3.P2.P1.G0 + P3.P2.P1.P0 .Cout-1 P3,0 G3,0
G3 P3 G2 P2 G1 P1 G0 P0

Circuit anticipateur GPA


P3,0 G3,0

123

41

Retenue anticipe par blocs

Cout3=G3+P3.G2+P3.P2.G1+P3.P2.P1.G0 + P3.P2.P1. P0 .Cout-1 Cout3=G3,0+P3,0. Cout-1 Cout7=G7+P7.G6+P7.P6.G5+P7.P6.P5.G4 + P7.P6.P5.P4 .Cout3 Cout7=G7,4+P7,4. Cout3 = G7,4+P7,4.(G3,0+P3,0. Cout-1) Cout15 = G15,12+P15,12.G11,8+ P15,12.P11,8 G7,4 + P15,12.P11,8 P7,4 G3,0 + P15,12.P11,8 P7,4 P3,0 Cout-1

124

Retenue anticipe par blocs


Cout15 = G15,12+P15,12.G11,8+ P15,12.P11,8 G7,4 + P15,12.P11,8 P7,4 G3,0 + P15,12.P11,8 P7,4 P3,0 Cout-1
G15 G14 G13G12 G11 G10 G9 G8 P15 P14 P13 P12 P11 P10 P9 P8 G7 G6 G5 G4 P7 P6 P5 P4 G3 G2 G1 G0 P3 P2 P1 P0

Circuit GPA
P15,12 G15,12

Circuit GPA
P11,8 G11,8

Circuit GPA
P7,4 G7,4

Circuit GPA
P3,0 G3,0

Cout

Circuit anticipateur

Cin

6t

125

Retenue anticipe par blocs


4 4 4 4

GPA GPA GPA GPA 2(n+1)t pour retenue sur 4n bits Temps logarithmique et non linaire GPA

Cout

Circuit anticipateur

Cin
126

42

L'UAL
Addition, soustraction, oprations logiques bit bit Implique entre de slection : commande

A
c1 0 0 1 1 c0 0 1 0 1 S A AND B A OR B A+B A-B
n n

c0 c1
n

127

Une tranche 1 bit de l'UAL


Soustraction = ajouter l'oppos = complment bit bit + 1 Choix : sur c0
Si c0 = 0, ajouter b Si c0 = 1, ajouter Not(b) Mais a XOR 0 = a A XOR 1 = !a a b

+
c0

s Cout

128

Une tranche 1 bit de l'UAL

Version nave, multiplexeurs et propagation de retenue


a b

+
Cout c0 c1
129

43

3. Circuits squentiels : registres et automates

Plan
Motivation Bascules et registres
Conception des circuits de mmorisation

Automates
Utilisation des circuits de mmorisation

131

Comportement temporel des circuits combinatoires


Les entres suivent les sorties - avec un temps de retard

s e temps
132

44

Objectif des circuits squentiels


Mmorisation en circuiterie logique Dfinir les valeurs observables dans les circuits en discrtisant le temps
e s

s e Temps continu
133

Conception
Bascule : unit de mmorisation 1 bit Principe : utiliser des circuits combinatoires reboucls dans un tat stable. Rserv l'intrieur des registres.

134

Plan
Motivation Bascules et registres
Conception des circuits de mmorisation

Automates
Utilisation des circuits de mmorisation

135

45

Le Bistable
2 points fixes stables, 1 point instable. Pas d'entres, irrversible.
Q

=
S1 S2

E = S2

S1

S2
136

La bascule RS
Positionnement ou mmorisation

Q S Q Q R

137

La bascule RS

Nand (x, 1) = !x

Nand (x, 0) = 1

R = S = 1 : Mmorisation de la valeur courante 1 1 Q !Q Q Q


Q !Q

R = 1 S = 0 : Q = 1 et !Q = 0 0 1 Q !Q Q 0

criture d'un 1 1 0 Q
Q
138

46

La bascule RS

Nand (x, 1) = !x

Nand (x, 0) = 1 0

R = 0 S = 1 : Q = 0 et !Q = 1 criture d'un 0 1 Q 1 Q

0 !Q Q 0 R = 0 S = 0 : configuration interdite, les deux sorties ne sont plus complmentaires 1, 1 1 0 0


139

La bascule RS
Ecriture d'un 0 : dtail du fonctionnement
1 1 Q 1 0 1 1 Q 1 0 1 0
Q

Q 0

A la fin de la deuxime tape, Q 0 verrouille le 1 sur !Q R peut changer ensuite : R doit tre maintenu 0 au moins 2tp De mme, pour l'criture d'un 1, S doit tre maintenu 0 au moins 2tp 140

La bascule RS
Ecriture d'un 0 : fonctionnement pathologique si non respect des tp 1 Etat initial 0 1 1

141

47

La bascule RS
Ecriture d'un 0 : fonctionnement pathologique si non respect des tp 1 S0 1

142

La bascule RS
Ecriture d'un 0 : fonctionnement pathologique si non respect des tp 1 1

1
Aprs 1 tp

143

La bascule RS
Ecriture d'un 0 : fonctionnement pathologique si non respect des tp 1 S repasse 1 prmaturment Etat aprs 2tp

1 1 1 0

144

48

La bascule RS
Ecriture d'un 0 : fonctionnement pathologique si non respect des tp

1 1 1

0 Etat initial

1 1 1 1

0 0

1 0 0 1

1 1

0 S0 Aprs 1 tp

S repasse 1 Etat final prmaturment incohrent


145

La bascule RS
Ecriture d'un 1 : S = 0, R = 1 Ecriture d'un 0 : S = 1, R = 0 Donnes et commande sont mlanges

146

La bascule latch

Bascule RS
R

Q D
Q

Bascule latch C

Q
Q

C C = 0 : S = R = 1, mmorisation ; tat opaque

C = 1 : S = !D , R = D, donc Q = D ; tat transparent


147

49

La bascule latch
D Bascule latch C Fonctionnement idal Transparent : Q suit D Opaque : tat prcdent de Q maintenu Q Q C = 0 : mmorisation -opaque C = 1 : tat transparent

Q D C
148

La bascule latch
Bascule latch Q Q C = 0 : mmorisation -opaque C = 1 : tat transparent

C Fonctionnement rel Transparent : Q suit D avec retard Opaque : tat prcdent de Q maintenu
tb tb tb

Q D C
149

La bascule latch

S R Bascule RS

Q
Q

C = 0 : S = R = 1, mmorisation ; tat opaque D Q=D C=1:S=! D , R = D, donc Q = D et tat transparent Temps d'tablissement (setup) C ne doit pas repasser 0 trop tt Equivalent : D doit tre stable assez longtemps avant que C passe 0
D C

tsu

150

50

La bascule latch
Les donnes sont cohrentes sur l'tat bas

Q=A
E C A B Q

Q A E C

Mais ne peut tre utilis pour x = f(x, y)


151

La bascule D
Bascule sur front
Enregistre l'tat de D sur la transition montante (0->1) de C. L'tat est recopi sur Q aprs tb. tb Q D C
152

tb

La bascule D
Contraintes : temps d'tablissement et de maintien

tsu th
D C

153

51

Ralisation de la bascule D

D C Bascule RS

!Q Q

Pour C = 0, la bascule RS est en mmorisation

154

Ralisation de la bascule D Ecriture d'un 0


1 D C 0 1 1 0 Bascule RS !Q Q 1 0 1 1 0 1 Q C 0 D qq 1 1 0 Bascule RS Q

!Q Q

Etat initial

Verrouillage
155

Registre
Un ensemble de bascules commandes par le mme signal : mmorisent simultanment n bits au lieu de 1.
Registre opaque : base de bascules D Registre transparent : base de bascules latch

156

52

Registre

D3

Q3

D2

Q2

D3 D2

Q3 Q2 Q1 Q0 C

D1

Q1

D1 D0

D0

Q0

157

Plan
Motivation Bascules et registres
Conception des circuits de mmorisation

Automates
Utilisation des circuits de mmorisation

158

Horloge
Signal priodique. Priode = Temps de cycle Tc Frquence F = 1/Tc Fournit une rfrence de temps discret commune un ensemble de circuits

Front montant Cycle n

Cycle n+1

clk Tc temps
159

53

Oprateurs synchrones
Yn+1 = G(Xn)

Bascule D Clk

Logique combinatoire

Bascule D

Cycle n Y F(X) X E Clk

Cycle n +1

160

Frquence de fonctionnement
Tc tb + t pl + t su = Tc min Fmax = 1 Tc min
Logique combinatoire Bascule D Y

Bascule D Clk

tb

tpl

tsu
161

Dcaleur
Q1n+1 = Q0n
D0 Clk
tb tsu th

Bascule D

Q0 = D1

Bascule D

Q1

Q1 Q0 D0 Clk
tsu th

tb

162

54

Compteurs synchrones
Xi+1 = (1+Xi ) mod N
Clk
Logique combinatoire

D = Etat Futur

Registre opaque

Q = Etat Courant

Ralisation = dfinir les fonctions de la logique combinatoire


163

Compteur par 2 synchrone

D0 = Q 0

Q0 D0
Q0

Clk

164

Compteur par 4
Clk D = Etat Futur Registre opaque

Logique Comb.

Q = Etat Courant

En code entier naturel


Etat Courant Val 0 1 2 3 Q1 0 0 1 1 Q0 0 1 0 1 Etat Futur D1 0 1 1 0 D0 1 0 1 0 Val 1 2 3 0

D0 = Q 0 D1 = Q1.Q 0 + Q1.Q 0 = Q1 Q0
165

55

Compteur par 4 synchrone


D0 = Q 0 D1 = Q1.Q 0 + Q1.Q 0 = Q1 Q0

En utilisant les deux sorties des bascules D, on rcupre directement les sorties complmentes.

Q1 D1 Clk D0

Q0

Q0
166

Compteur par 4 asynchrone


Q1 D1 D0 Q0

Q1

Q0
Clk

00
Q1 D0 Q0

01

10

11

00

Conception complexe : la commande n'est pas indpendante des bascules. 167

Automates synchrones
(qn+1, s) = f(qn, e) q : tat de l'automate e : entres s : sorties - commandes
Clk

Un compteur est un automate avec e absent, s = q

168

56

Application des automates synchrones

(qn+1, s) = f(qn, e) Circuits : de l'automate de machine laver au contrle de microprocesseurs Thorie et pratique des langages
e

Clk s

169

Automate de Moore Un automate de Moore est un sextuplet Exemple : compteur par 4 avec RAZ {Q, q0, T, E, S, f}
Q ensemble des tats q0 tat initial E ensemble des entres S ensemble des sorties T transitions, inclus dans QxExQ f :Q -> S = calcul des sorties r
r

r !r

r r !r r f (q) = q

1 !r 2

170

Automate de Moore Les sorties sont dtermines par l'tat

Exemple : compteur par 4 avec RAZ r


r r !r

r r !r r f (q) = q

1 !r 2

171

57

Ralisation d'un automate de Moore

Etat : registre opaque Transitions et sortie : logique combinatoire Raliser un automate :


Taille du registre d'tats Synthse des fonctions boolennes transition et sortie : PLA

e d
Registre opaque Clk

q
Logique transition Logique sorties

s
172

Compteur avec RAZ


Etat courant N 0 0 1 1 2 2 3 3 q1 0 0 0 0 1 1 1 1 q0 0 0 1 1 0 0 1 1 r 0 1 0 1 0 1 0 1 d1 0 0 1 0 1 0 0 0 Etat futur d0 1 0 0 0 1 0 0 0 N 1 0 2 0 3 0 0 0

r d1, d0 Registre opaque q1, q0 LT LS s

d0 = q0 .r d1 = q1.q0 .r + q1 .q0 .r s1 = q1 , s0 = q0
173

Automate de Mealy

Un automate de Moore est un quintuplet Exemple : compteur par 4 {Q, q0, T, E, S} avec RAZ et signal
Q ensemble des tats r, < c > q0 tat initial r,<c> 0 r,<c> 1 E ensemble des entres r,<c> r, < c > r, < c > r,<c> S ensemble des sorties T transitions, inclus dans QxExSxQ 3 r, < c > 2
174

58

Automate de Mealy
T transitions, inclus dans QxExSxQ

Les sorties sont dtermines par la transition

Exemple : compteur par 4 avec RAZ et signal r,<c>


r, < c > 0 r,<c> 1

r,<c> r, < c > r, < c > r,<c> 3


r, < c >

2
175

Ralisation d'un automate de Mealy

Etat : registre opaque Transitions et sortie : logique combinatoire Raliser un automate :


Taille du registre d'tats Synthse des fonctions boolennes transition et sortie : PLA

e d
Registre opaque Clk

q
Logique transition Logique sorties

s
176

Comparaison Moore-Mealy

e d
Registre opaque Clk

e d
Registre opaque Clk

q
Logique transition Logique sorties

q
Logique transition Logique sorties

s
177

59

Comparaison Moore-Mealy
Les deux modles sont quivalents : tant donn un automate de Mealy (resp Moore), on peut toujours construire un automate de Moore (resp Mealy) qui a la mme squence de sorties pour une squence d'entres donnes. Mais l'automate de Moore a toujours au moins autant (et souvent beaucoup plus) d'tats que l'automate de Mealy quivalent.

178

Exemple : contrle de croisement Contraintes : Sr et non bloquant chemin Rouge Route < Temps Long Au moins Temps Long entre dtection et Route Rouge Orange pendant Temps Court (exact) Signaux : a = 1 : dtection (donn) tl/tc = 1 : Temps Long/Court coul Contrle des feux

dtecteurs

Chemin

Route

Route

179

Exemple : contrle de croisement Sans temporisation RV : route vert, chemin rouge RO : route orange, chemin rouge CV : route rouge, chemin vert CO : route rouge, chemin orange Seuls tats possible pour la scurit Moore : la valeur des feux est associe l'tat

RV

RO

CO

CV a

180

60

Exemple : contrle de croisement

Avec temporisation : Aux instants adquats, RAZ d'un compteur

rl

Compteur
Comparateur TL

clk

rc

Compteur
Comparateur TC

clk

tl

tc
181

Exemple : contrle de croisement

a, < rl >

RV tc,<rl> CO
tc, < rc >

a.tl , < rl > a.tl, < rc >

tc, < rc >

RO tc,<rl>

a + tl, < rc >

CV
a.tl , < rl >

182

4. Hirarchie Mmoire

61

Hirarchie mmoire
Machine de Von-Neumann : mmoire RAM Un tableau linaire (1 dimension) N bits dadresse p bits de donnes 2N entits de P bits sont adressables une entit = un mot mmoire Adressable = lue/crite individuellement

p N A R/W D p

2N

184

Hirarchie mmoire
Machine de Von-Neumann : mmoire RAM, tableau doctets Ralisation matrielle

Vitesse Cot Capacit

Cache L1 Cache L2 Mmoire principale Disques

Mmoire Centrale Mmoire Virtuelle

185

Mmoire statique - SRAM


Technologie semiconducteurs logique 6 T par point mmoire
Un bistable plus deux interrupteurs

Evoluent en frquence comme les processeurs

186

62

Mmoire dynamique DRAM


Technologie non CMOS Equivalent 1,5 transistors Rsistance + capacit Demande un rafrachissement priodique (recriture) La lecture est destructrice -> Temps de cycle Le temps daccs volue moins vite que celui des processeurs
187

Faits technologiques (1)


Gap processeur mmoire 1 calcul = 3 oprandes Loi de Moore: densit dintgration X 2 / 18 mois
Joue plein pour les SRAM Effet plus complexe sur les processeurs

Performance des processeurs x 1,5 / an Dbit DRAM x 1,2 / an Dbit disques x 1,6 / an Les meilleures SRAM temps daccs = Tc processeur 1 ordre de grandeur SRAM -> DRAM 3 ordres de grandeur DRAM -> disques
188

Hirarchie mmoire
Vitesse Cot Capacit Cache L1 Cache L2 Mmoire principale Disques Mmoire Centrale Mmoire Virtuelle

A un instant donn, chaque niveau de la hirarchie contient un extrait du niveau infrieur Laccs tant plus rapide, la copie offre lillusion dune mmoire + rapide faible cot La gestion des copies et problmes relis doit tre transparente au niveau de lexcution des instructions
Cache : entirement en matriel Mmoire virtuelle : matriel et logiciel systme
189

63

Le principe de localit
Localit temporelle = Accs rpts une mme adresse
Boucles dans le code ventuellement en donnes Processeur
Premier accs Accs suivants

copie Cache

MP

190

Le principe de localit
Localit temporelle = Accs rpts une mme adresse
Boucles dans le code ventuellement en donnes Processeur
Premier accs Accs suivants

copie MP
191

Disque

Le principe de localit
Localit spatiale
Accs des adresses conscutives Le cot dun accs bloc est beaucoup moindre que le cot de n accs indpendants : T(bloc) = Ts + n Ti Processeur
Premier accs Accs suivants

X[0] X[1] X[2] X[3] MP

copie

X[0] X[1] X[2] X[3] Cache

Consquence Transferts blocs dadresses conscutives Unit Cache : Ligne


192

64

Le principe de localit
Localit spatiale
Accs des adresses conscutives Le cot dun accs bloc est beaucoup moindre que le cot de n accs indpendants : T(bloc) = Ts + n Ti

Processeur
Premier accs Accs suivants

copie MP

Consquence Transferts blocs dadresses conscutives Unit MV : page


193

Disque

Le produit Matrice-Vecteur

194

Le produit Matrice-Matrice

195

65

Consquences pour le programmeur


Attention aux conventions des compilateurs pour i= 1,N
... A[i] ...

fin pour Les accs par indirection peuvent coter TRES cher
Bon

pour i= 1,N
... A[L[i]] ...

fin pour

Mauvais
196

Consquences pour le programmeur


Des gains de performances importants peuvent tre obtenus en localisant les accs
Il existe des outils danalyse des performances processeur et mmoire
VTune pour Windows Associs des compilateurs commerciaux sous Linux/Unixes Quelques logiciels libres produits de recherche

Loptimisation automatique est un sujet de recherche

197

Organisation interne : 1D
Donne
BL

WL

0 A0 A1
WL

Mmoire 4x1bit Trs inefficace en exploitation de la surface

1
WL

BL

2 Dcodeur
WL

BL

BL

Cellule 1 bit
198

66

Organisation interne matricielle 16x 1bit

Adresses Lignes

A3 A2

Row Decoder

0 4 8 12

Amplificateurs
Column Decoder

Donnes

Adresses Colonnes

A0 A1

199

Organisation matricielle
Lorganisation matricielle concerne une mmoire 22mx1 bit Pour une mmoire 22mxp bits, la structure est rplique

200

Organisation des DRAM


!RAS et !CAS valident respectivement les parties hautes et basses des adresses

RAS CAS A0 AN-1 R/W Matrice mmoire et circuiterie

201

67

Chronogramme en lecture
Trac Tpc

RAS CAS Adresses Donnes


Ad Ligne

Tcac

Ad Col

Ad Col

Ad Col

202

Organisation matricielle + validation Justifie la localit spatiale


Les donnes dune mme ligne sont prsentes simultanment, puis slectionnes Possibilit daccs conscutifs aux donnes dune mme ligne plus rapides qu ceux de lignes distinctes

203

68

You might also like