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 Opérations arithmétiques sur les données (datapath) Nombres entiers et flottants BUS SYSTÈME Registres Unité de traitement Unité

Présentations similaires


Présentation au sujet: "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é"— Transcription de la présentation:

1 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

2 Multiplication - Nombres entiers Multiplication de deux nombres entiers de n bits: Décimal:Binaire: 1000 x 1000 x(8) (9) (72) Note: résultat -> 2n bits!

3 Multiplication - Implémentation I Début A[0] P P + B Décaler A (droite) Décaler B (gauche) Fin? 01 NO B 1000 x A P (2n) A(n) B(2n) 2n +[2n]

4 Multiplication - Implémentation I B 1000 x A Début A[0] P P+B Décaler A >> Décaler B << Fin? 01 NO

5 Multiplication - Implémentation II Début Décaler A (droite) Décaler P (droite) Fin? NO B 1000 x A A[0] P + P + + B 01 P + = moitié de poids fort du registre P P (2n) A(n) B(n) n +[n]

6 Multiplication - Implémentation II B 1000 x A Début A[0] P + P + +B Décaler A >> Décaler P >> Fin? 01 NO

7 Multiplication - Implémentation III B 1000 x A Début Décaler P|A (droite) Fin? NO A[0] P + P + + B 01 P + = moitié de poids fort du registre P P (2n) B(n) n +[n] A(n)

8 Multiplication - Implémentation III B 1000 x A Début A[0] P + P + +B Décaler P|A >> Fin? 01 NO

9 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 lalgorithme décimal pour accélérer la multiplication binaire, en particulier pour traiter les nombres signés comme sils étaient non-signés. Avantage: économe en ressources. Désavantage: conceptuellement assez compliqué.

10 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 1011 x B 1011 x A 0111 A (add) (sub) (add) (shift) (shift) (add) Même chose pour le nombres signés: A = -4 = 1100 A = -4 = 1100 = 12 = = = 0100

11 Recodage de Booth en pratique On observe deux bits de A, pour déterminer sil sagit du début, du milieu, ou de la fin dune séquence de 1 ou de 0: - si A i = 0 et A i-1 = 0, décaler P (milieu dune séquence de 0); - si A i = 0 et A i-1 = 1, ajouter B à P (fin dune séquence de 1); - si A i = 1 et A i-1 = 0, soustraire B de P (début dune séquence de 1); - si A i = 1 et A i-1 = 1, décaler P (milieu dune séquence de 1); Par exemple: A : sub, add, sub, shift, shift, add, shift, shift Rappel: soustraction = addition du complement à deux. Lalgorithme marche pour le nombres signés (attention quand-même: lalgorithme « papier » doit être modifié pour étendre le signe). Limplémentation est pratiquement identique à lapproche standard.

12 Multiplication - Recodage de Booth B 0101 x (5) A 1101 = (-3) [+(-5)] [+5] [+(-5)] = [+0] (-15) Début A[0] P + P + -B Décaler A >> Décaler P >> (extension du signe) Fin? 01 NO X Extension du signe A[-1] P + P + +B

13 Division - Nombres entiers Division dun nombre entier de n bits par un autre (A/B): Décimal: Binaire: | 0909 Q | 0101 (5) B 1100 | A[0] (12) 1100 | (68) [1] [0] [1] R 1000 (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

14 COMP 2n -[2n] Q(2n) R (2n) B(2n) Division - Implémentation R R - B Décaler Q (insérer 1) Début R-B Décaler B (droite) Fin? <00 NO Décaler Q (insérer 0) B est stockée dans la moitié de poids fort du registre B A est stockée dans le registre R | | On peut simplifier la machine comme pour la multiplication

15 Division - Implémentation Début R-B R R-B Q << [1] Décaler B >> Fin? <00 NO | | Q << [0] C C C C C C

16 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!

17 Multiplication flottante Nettement plus compliquée que la multiplication entière: 1.110x x ) Additionner les exposants: 10+(-5) = 5 Notation avec excès: = 259 ?????? = 132 = )Multiplier les mantisses:1.110 x = )Normaliser: x 10 5 = x )Arrondir: x 10 6 = x )Trouver le signe: x 10 6

18 Multiplication flottante - Algorithme Début (Sous-)Dépassement? Arrondir OUINON Exception Additionner les exposants Multiplier les mantisses Normaliser le produit Normalisé? Ajuster le signe du produit OUI


Télécharger ppt "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é"

Présentations similaires


Annonces Google