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

Arithmétique des “computers”

Présentations similaires


Présentation au sujet: "Arithmétique des “computers”"— Transcription de la présentation:

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

2 Multiplication - Nombres entiers
Architecture et technologie des ordinateurs II Multiplication - Nombres entiers Multiplication de deux nombres entiers de n bits: Décimal: Binaire: 1000 x x (8) (9) (72) Note: résultat -> 2n bits! G. Tempesti 2

3 Multiplication - Implémentation I
Architecture et technologie des ordinateurs II Multiplication - Implémentation I Début P (2n) A(n) B(2n) 2n +[2n] A[0] 1 P  P + B B x A 1000 +  Décaler A (droite) Décaler B (gauche) Fin? NO G. Tempesti 3

4 Multiplication - Implémentation I
Architecture et technologie des ordinateurs II Multiplication - Implémentation I Début 1 2 1001 0100 0010 1 A[0] PP+B Décaler A >> + Décaler B << Fin? NO B x A 1000 +  3 4 0001 0000 + G. Tempesti 4

5 Multiplication - Implémentation II
Architecture et technologie des ordinateurs II Multiplication - Implémentation II Début P+= moitié de poids fort du registre P P (2n) A(n) B(n) n +[n] A[0] 1 P+  P+ + B B x A 1000 +  Décaler A (droite) Décaler P (droite) Fin? NO G. Tempesti 5

6 Multiplication - Implémentation II
Architecture et technologie des ordinateurs II Multiplication - Implémentation II Début 1 2 1001 0100 0010 1 A[0] 1000 1000 1000 P+P++B Décaler A >> + Décaler P >> 1000 Fin? NO B x A 1000 +  3 4 0001 0000 1000 1000 + 1001 G. Tempesti 6

7 Multiplication - Implémentation III
Architecture et technologie des ordinateurs II Multiplication - Implémentation III Début P+= moitié de poids fort du registre P A[0] 1 B(n) P+  P+ + B n B x A 1000 +  Décaler P|A (droite) +[n] P (2n) A(n) Fin? NO G. Tempesti 7

8 Multiplication - Implémentation III
Architecture et technologie des ordinateurs II Multiplication - Implémentation III Début 1 2 1 A[0] 1000 1000 1000 P+P++B Décaler P|A >> + 1000 Fin? NO 0000 1001 01000 100 001000 10 B x A 1000 +  3 4 1000 1000 + 1001 1 G. Tempesti 8

9 Multiplication - Nombres signés
Architecture et technologie des ordinateurs II Multiplication - Nombres signés Approche « standard »: convertir les nombres négatifs en positifs, multiplier, convertir au négatif si les signes sont différents. Avantage: conceptuellement simple. Désavantage: ressources supplémentaires. Deuxième approche: recodage de Booth Idée: abandonner l’algorithme décimal pour accélérer la multiplication binaire, en particulier pour traiter les nombres signés comme s’ils étaient non-signés. Avantage: économe en ressources. Désavantage: conceptuellement assez compliqué . G. Tempesti 9

10 Multiplication - Recodage de Booth
Architecture et technologie des ordinateurs II Multiplication - Recodage de Booth Multiplication « standard »: examiner A de droite à gauche A=7=0111  add B, add B, add B, add 0 Recodage de Booth: A=8-1= =1001  sub B, add 0, add 0, add B Standard: Booth: B x B x A A (add) (sub) (add) (shift) (add) (shift) (shift) (add) Même chose pour le nombres signés: A = -4 = 1100 A = -4 = 1100 = 12 = = = 0100 G. Tempesti 10

11 Recodage de Booth en pratique
Architecture et technologie des ordinateurs II Recodage de Booth en pratique On observe deux bits de A, pour déterminer s’il s’agit du début, du milieu, ou de la fin d’une séquence de 1 ou de 0: - si Ai = 0 et Ai-1 = 0, décaler P (milieu d’une séquence de 0); - si Ai = 0 et Ai-1 = 1, ajouter B à P (fin d’une séquence de 1); - si Ai = 1 et Ai-1 = 0, soustraire B de P (début d’une séquence de 1); - si Ai = 1 et Ai-1 = 1, décaler P (milieu d’une séquence de 1); Par exemple: A :  sub, add, sub, shift, shift, add, shift, shift Rappel: soustraction = addition du complement à deux. L’algorithme marche pour le nombres signés (attention quand-même: l’algorithme « papier » doit être modifié pour étendre le signe). L’implémentation est pratiquement identique à l’approche standard. G. Tempesti 11

12 Multiplication - Recodage de Booth
Architecture et technologie des ordinateurs II Multiplication - Recodage de Booth Début 1 2 1 A[0] 11010 01101 00110 A[-1] 1 A[-1] 1 0101 0101 0101 P+P+-B P+P++B - + - Décaler A >> 1011 0010 1100 Décaler P >> (extension du signe) NO 3 4 Fin? 00011 0000X B x (5) A = (-3) [+(-5)] [+5] [+(-5)] = [+0] (-15) 0101 0101 Extension du signe G. Tempesti 12

13 Division - Nombres entiers
Architecture et technologie des ordinateurs II Division - Nombres entiers Division d’un nombre entier de n bits par un autre (A/B): Décimal: Binaire: | Q | (5) B 1100 | A [0] (12) 1100 | (68) [1] [0] [1] 200 R (8) Note: résultat -> quotient + reste! Note: souvent le dividende A a une taille (nombre de bits) double par rapport à la taille de B et de Q ( > ) Note: il ne faut pas oublier de détecter la division par 0 G. Tempesti 13

14 Division - Implémentation
Architecture et technologie des ordinateurs II Division - Implémentation | 1100 | 01000 10001 1010 10100 1000 Début B est stockée dans la moitié de poids fort du registre B A est stockée dans le registre R COMP 2n -[2n] Q(2n) R (2n) B(2n) R-B ≥0 <0 R  R - B Décaler Q (insérer 1) Décaler Q (insérer 0) Décaler B (droite) Fin? NO On peut simplifier la machine comme pour la multiplication G. Tempesti 14

15 Division - Implémentation
Architecture et technologie des ordinateurs II Division - Implémentation Début 1 2 C C C ≥0 R-B <0 RR-B Q << [1] Q << [0] - Décaler B >> Fin? NO 3 4 5 C C C | 1100 | 01000 10001 1010 10100 1000 - G. Tempesti 15

16 Division - Nombres signés
Architecture et technologie des ordinateurs II Division - Nombres signés Approche « standard »: convertir les nombres négatifs en positifs, diviser, convertir au négatif si nécessaire. Pour déterminer le signe des résultats, la relation suivante doit toujours être vraie: Dividende = Quotient x Diviseur + Reste Règle: dividende et reste doivent avoir le même signe! +7 / +2: quotient = +3, reste = +1; +7 / -2: quotient = -3, reste = +1; -7 / +2: quotient = -3, reste = -1; -7 / -2: quotient = +3, reste = -1; Note: la valeur absolue reste la même! G. Tempesti 16

17 Multiplication flottante
Architecture et technologie des ordinateurs II Multiplication flottante Nettement plus compliquée que la multiplication entière: 1.110x1010  x 10-5 1) Additionner les exposants: 10+(-5) = 5 Notation avec excès: = ?????? = 132 = 2) Multiplier les mantisses: x = 3) Normaliser: x 105 = x 106 4) Arrondir: x 106 = x 106 5) Trouver le signe: x 106 G. Tempesti 17

18 Multiplication flottante - Algorithme
Architecture et technologie des ordinateurs II Multiplication flottante - Algorithme Début Additionner les exposants Multiplier les mantisses Normaliser le produit NON OUI (Sous-)Dépassement? Arrondir Exception NON OUI Normalisé? Ajuster le signe du produit G. Tempesti 18


Télécharger ppt "Arithmétique des “computers”"

Présentations similaires


Annonces Google