La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Architecture des ordinateurs BUS SYSTÈME Registres Unité de traitement Unité de traitement Unité flottante Unité de contrôle Unité de contrôle Décodeur.

Présentations similaires


Présentation au sujet: "Architecture des ordinateurs BUS SYSTÈME Registres Unité de traitement Unité de traitement Unité flottante Unité de contrôle Unité de contrôle Décodeur."— Transcription de la présentation:

1 Architecture des ordinateurs BUS SYSTÈME Registres Unité de traitement Unité de traitement Unité flottante Unité de contrôle Unité de contrôle Décodeur PC ALU CPU MÉMOIRE PRINCIPALE MÉMOIRE PRINCIPALE DD IO Cache données Cache instructions MMU TLB

2 Arithmétique des computers Opérations arithmétiques sur les données (datapath) Nombres entiers et flottants BUS SYSTÈME Registres Unité de traitement Unité de traitement Unité flottante Unité de contrôle Unité de contrôle Décodeur PC ALU CPU MÉMOIRE PRINCIPALE MÉMOIRE PRINCIPALE DD IO Cache données Cache instructions MMU TLB

3 = 1010 = Codage binaire Dans les systèmes numériques, toute information est codée en binaire: x = p n p n-1 …p 2 p 1 p 0 = p n 2 n + … + p p p par exemple: x = 0110 = 0x x x x2 0 = = 6 Un mot est lunité dinformation de base. Un mot est un ensemble de N bits qui représente une parmi 2 N valeurs. Dans le cas des nombres entiers non-signés, un mot de N bits peut donc représenter un nombre 0 x 2 N -1(p.ex. 0 x = 15) Si une opération engendre un débordement, ceci doit être traité.

4 Codage binaire - Nombres signés I Signe et valeur absolue = (+) + 0x x x x2 0 = = (-) + 0x x x x2 0 = -6 Précision (N bits): -2 N-1 -1 x 2 N-1 -1 {p.ex. -7 = -( ) x = 7} Zéro: 000…00 = 0100…00 = -0

5 Codage binaire - Nombres signés II Complément à un = + 0x x x x x2 0 = = - 1x x x x x2 0 = -6 Précision (N bits): -2 N-1 -1 x 2 N-1 -1 {p.ex. -7 = -( ) x = 7} Zéro: 000…00 = 0111…11 = -0

6 Codage binaire - Nombres signés III Complément à deux = + 0x x x x x2 0 = = - 1x x x x x = -6 Précision (N bits): -2 N-1 -1 x 2 N-1 -1 {p.ex. -7 = -( ) x = 7} Zéro: 000…00 = 0100…00 = ???

7 Codage binaire - Nombres signés IV Avec excès (2 N-1 -1) = 1x x x x x2 0 -(2 4 -1)= = 0x x x x x2 0 -(2 4 -1)=-6 Précision (N bits): -(2 N-1 -1) x 2 N-1 {p.ex. -7 = -( ) x = 8} Zéro: 011…11 = 0 (excès)

8 Codage binaire - Nombres fractionnaires Dans les codes binaires, le point binaire nest jamais explicitement indiqué (les nombres sont normalisés) Décimale: 5.23= 5x x x10 -2 Binaire: 1.011= 1x x x x2 -3 = = En plus, comme le chiffre à la gauche du point binaire est toujours 1, il nest pas représenté: Binaire: 011 = 1x x x x2 -3

9 Codage binaire - Nombres flottants Un nombre flottant est composé de 4 valeurs: une mantisse M un exposant E une base B un signe S En décimale:(-1) S x 10 E x M {p.ex. 1x5.3x10 3 = 5300 ; -1x2.7x10 -4 = } En binaire: (-1) S x 2 X x 1.F {p.ex. -1x1.011x2 6 = = -90} (-1) S x M x B E

10 Codage binaire - Nombres flottants Standard IEEE 754 (32 et 64 bits) SExposant E (excès 127) Partie fractionnaire F Exemple: = (-1) 1 x x 1.( ) = -1 x 2 2 x 1.25 = bits: 1 bit S + 8 bits E (excès 127) + 23 bits F 1.0 x X ( ) x x X 3.40 x (approx.) 64 bits: 1 bit S + 11 bits E (excès 1023) + 52 bits F (-1) S x 2 E-127 x 1.F

11 Pour les nombres entiers non-signés, laddition binaire est identique à laddition décimale: = = Étant donné que la taille des mots est normalement fixe, la possibilité dun débordement (overflow) existe = = Addition binaire Retenue Débordement? Signaler!

12 Addition binaire - Nombres signés Complément à deux Pour le complément à deux, la soustraction est identique à laddition. Les débordements doivent être traités différemment par rapport au nombres non-signés = = 7 = = = =- 7 = = = Débordement? No! Débordement? Oui!

13 Une solution pour éviter les débordements existe: on peut utiliser des mots plus grands (p.ex. 16 bits) pour stocker les résultat dune opération sur des mots plus petits (p.ex. 8 bits). Mais dans le cas des nombres signés, une extension du signe devient nécessaire pour obtenir un résultat correct = 0111 =- 7 = = (-4) (Err) (12) (-20) Lextension est calculée en fonction des signes des opérandes et de lopération effectuée. Nombre signés: Extension du signe

14 3 bits en entrée a,b,c e 1 bit de retenue c s = (a+b+c e ) div 2 = ab + ac e + bc e 1 bit de somme s = (a+b+c e ) mod 2 = abc e + abc e + abc e + abc e Additionneur complet cscs s ab cece s: ab c e c s : ab c

15 Addition à n bits : a + b Soustraction à n bits : a - b Addition à propagation simple de retenue c 0 =1 b n-1 a n-1 c n-1 S n-1 additionneur complet b1b1 a1a1 c1c1 c2c2 S1S1 additionneur complet b0b0 a0a0 S0S0 additionneur complet c 0 =0 b n-1 a n-1 c n-1 S n-1 additionneur complet b1b1 a1a1 c1c1 c2c2 S1S1 additionneur complet b0b0 a0a0 S0S0 additionneur complet D

16 Propagation de retenue: délai s0s0 a0a0 b0b0 c0c0 Délai de propagation:pour une porte AND = t and pour une porte OR = t or pour une porte XOR = t xor Délai de propagation pour un additionneur à n bits = t and x n + t or x n + t xor Délai: O(n)Espace: O(n) s1s1 a1a1 b1b1 s2s2 a2a2 b2b2 s3s3 a3a3 b3b3 c1c1 c2c2 c3c3 c4c4

17 Propagation de retenue: accélération c1c1 s0s0 a0a0 b0b0 c0c0 c i+1 = g i +p i ·c i = (a i ·b i )+(a i b i )·c i p = propagation: si p=1, la retenue c i est propagée par c i+1 g = génération: la retenue c i+1 est générée par la somme de a i et b i Donc: c i+2 =g i+1 +p i+1 ·c i+1 =g i+1 +p i+1 ·(g i +p i ·c i )=g i+1 +p i+1 ·g i +p i+1 · p i ·c i c2c2 s1s1 a1a1 b1b1 c3c3 s2s2 a2a2 b2b2 c4c4 s3s3 a3a3 b3b3 p0p0 p1p1 p2p2 p3p3 g0g0 g1g1 g2g2 g3g3

18 Propagation de retenue: accélération a0a0 b0b0 c0c0 c 2 =g 1 +p 1 ·c 1 =g 1 +p 1 ·(g 0 +p 0 ·c 0 )=g 1 +p 1 ·g 0 +p 1 · p 0 ·c 0 a1a1 b1b1 c1c1 s0s0 c2c2 s1s1 p0p0 p1p1 g0g0 g1g1 c3c3 s2s2 c4c4 s3s3 p2p2 p3p3 g2g2 g3g3 a2a2 b2b2 a3a3 b3b3 Délai de propagation (additionneur à n bits) = t and x n/2 + t or x n/2 + t xor c 4 =g 3 +p 3 ·c 3 =g 3 +p 3 ·(g 2 +p 2 ·c 2 )=g 3 +p 3 ·g 2 +p 3 · p 2 ·c 2

19 p2p2 c2c2 Mais nous ne sommes pas obligés à limiter le «blocs» à 2 bits: c 3 = g 2 +p 2 ·c 2 = g 2 +p 2 ·(g 1 +p 1 ·g 0 +p 1 ·p 0 ·c 0 )) = g 2 +p 2 ·g 1 +p 2 ·p 1 ·g 0 +p 2 ·p 1 ·p 0 ·c 0 Propagation de retenue: accélération a0a0 b0b0 c0c0 a1a1 b1b1 c1c1 s0s0 s1s1 p0p0 p1p1 g0g0 g1g1 c3c3 s2s2 g2g2 a2a2 b2b2 Délai de propagation (additionneur à n bits) = t and x n/3 + t or x n/3 + t xor

20 Si on continue, par applications successives: c i = g i-1 + p i-1 g i-2 + p i-1 p i-2 g i-3 + … + p i-1 p i-2 …p 1 g 0 + p i-1 p i-2 …p 1 p 0 c 0 Jusquà lextrême, pour en additionneur à n bits: c n = g n-1 + p n-1 g n-2 + p n-1 p n-2 g n-3 + … + p n-1 p n-2 …p 1 g 0 + p i-1 p i-2 …p 1 p 0 c 0 Cet « extrême » est ladditionneur à retenue anticipée (carry look-ahead) Délai de propagation (additionneur à n bits) = t and x n/n + t or x n/n + t xor Délai: cEspace: O(n 2 ) Retenue anticipée (carry look-ahead) …… … cici g i-1 p i-1 g i-2 p i-2 g i-3 p1p1 g0g0 p0p0 c0c0 …

21 Sélection de retenue (carry select) LOOK AHEAD c0c0 LOOK AHEAD a 3:0 b 3:0 a 7:4 b 7:4 a 11:8 b 11:8 c8c8 s 3:0 0 s 7:4 LOOK AHEAD c8c8 1 c4c4 LOOK AHEAD c 12 0 s 11:8 LOOK AHEAD c 12 1 Délai de propagation (additionneur à n bits, blocs de 4 bits) = (t and x 4/4 + t or x 4/4 + t xor ) + t and x n/4 + t or x n/4 Délai: O(n) / O(log n)Espace: O(n) / O(n · log n) Cest un additionneur à sélection de retenue (carry select)

22 Addition flottante Nettement plus compliquée que laddition entière: 9.999x x ) 1.610x10 -1 = x10 0 = x10 1 = 0.016x10 1 2) = )10.015x10 1 = x10 2 4) x10 2 = 1.002x10 2 Début (Sous-) Dépassement? Arrondir Normalisé ? OUINON Exception Aligner les exposants (décalage) Additionner les mantisses Normaliser la somme

23 Addition flottante - Implémentation Source: David A. Patterson and John L. Hennessy, Computer Organization and Design : The Hardware/Software Interface, Morgan Kaufmann, 2nd ed., 1997.

24 Larithmétique IEEE - Particularités Quand on arrondit un résultat « à mi-chemin » vers le nombre flottant le plus proche, on prend celui qui est pair. Elle possède des valeurs spéciales : NaN, et - (par exemple, la racine carrée dun nombre négatif est NaN). Elle utilise des nombres dénormalisés pour représenter les résultats de calculs dont la valeur est inférieure à 1.0x2 Emin (sous-dépassement progressif). Elle arrondit au plus proche par défaut, mais a aussi trois autres modes darrondi (vers 0, vers +, vers -). Elle a des supports sophistiqués pour gérer 5 exceptions: les deux débordements, la division par zéro, linvalide (valeurs spéciales) et linexacte (débordement ou arrondi).


Télécharger ppt "Architecture des ordinateurs BUS SYSTÈME Registres Unité de traitement Unité de traitement Unité flottante Unité de contrôle Unité de contrôle Décodeur."

Présentations similaires


Annonces Google