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

Sif-10531 Cours 6 n 3. Construction dun ordinateur F Les circuits arithmétiques F Lunité arithmétique et logique (UAL) F Travail pratique #2 Division entière.

Présentations similaires


Présentation au sujet: "Sif-10531 Cours 6 n 3. Construction dun ordinateur F Les circuits arithmétiques F Lunité arithmétique et logique (UAL) F Travail pratique #2 Division entière."— Transcription de la présentation:

1 sif-10531 Cours 6 n 3. Construction dun ordinateur F Les circuits arithmétiques F Lunité arithmétique et logique (UAL) F Travail pratique #2 Division entière positive n Le matériel u Chapitre 5 CSA u Chapitre 3 et 4 CSAPP u Synthèse du professeur

2 sif-10532 Les circuits arithmétiques n Nous allons voir, dans cette section, que des circuits logiques combinatoires (combinaison de circuits logiques) relativement simples (connexion de quelques portes) peuvent effectuer des additions. n Ce qui entraîne comme nous lavons vu au chapitre précédent, la possibilité de réaliser également des soustractions, des multiplications et des divisions.

3 sif-10533 Additionneur simple n Laddition de nombres binaires est une opération très simple que lon représente par une table de vérité à 2 variables. Les entrées à additionner sont A et B, la sortie somme est désignée par S et la colonne de retenue par Co (de langlais, Carry output).

4 sif-10534 n Ce qui est évidemment très simple, et qui nous fait comprendre lutilité de la porte XOU. Ce circuit additionneur (ou cellule daddition) porte le nom de demi- additionneur DA (pour des raisons qui deviendront compréhensibles dans quelques instants) et on le représente souvent par le schéma...

5 sif-10535 n Si on additionne deux nombres binaires qui contiennent plus dun chiffre binaire (ce qui est habituellement le cas), le DA ne nous permet pas de tenir compte des retenues produites. n En effet, si la première colonne de chiffre est 1+1, il nous faut transmettre la retenue au DA de la deuxième colonne pour quil puisse en tenir compte.

6 sif-10536 n Il nous faut donc une troisième entrée à notre circuit additionneur, afin de permettre laddition dune retenue générée par les chiffres de la colonne précédente. n La troisième entrée est identifiée Ci (de langlais, Carry input), le circuit porte le nom dadditionneur complet (AC).

7 sif-10537 n Le circuit additionneur complet peut être conçu avec des demi-additionneurs et une porte OU. S C

8 sif-10538

9 9

10 10 Un soustracteur n La soustraction représente dans les faits laddition du complément à deux du second terme impliqué dans la soustraction

11 sif-105311 Un soustracteur

12 sif-105312 Un soustracteur n Schématiquement, lUC doit fournir un signal pour indiquer quelle opération lALU doit effectuer et mettre lentrée Carry In à 1 1 Calcul du complément à un

13 sif-105313 Les circuits de décalage binaires n Décalage des bits dun nombre de positions vers la gauche (peut permettre une multiplication par des multiples de 2) SHL AL, 1 SHL BX, 25 ; 80286 11001011 AL 0 10000111

14 sif-105314 Les circuits de décalage binaires n Décalage des bits dun nombre de positions vers la droite (peut permettre une division par des multiples de 2) SHR AL, 1 SHR BX, 25 ; 80286 11001011 AL 0 01101001

15 sif-105315 Les circuits de décalage binaires

16 sif-105316 Les circuits de décalage binaires n Décalage des bits dun nombre de positions vers la gauche avec réinsertion par la droite ROL AL, 1 ROL BX, 25 ; 80286 11001011 AL 10001111

17 sif-105317 Les circuits de décalage binaires n Décalage des bits dun nombre de positions vers la droite avec réinsertion par la gauche ROR AL, 1 ROR BX, 25 ; 80286 11001011 AL 11101001

18 sif-105318 Les circuits de décalage binaires

19 sif-105319 Les circuits de décalage binaires

20 sif-105320 Les circuits de multiplication entière n Rappel sur le processus de multiplication décimale et binaire 173 10101101 Multiplicande 57 X 00111001 XMultiplicateur 1211 10101101 8650 00000000 9861 00000000 10101101 00000000 00000000_______ 0010011010000101 Produits partiels }

21 sif-105321 Les circuits de multiplication entière n Fonction en langage C qui permet deffectuer la multiplication entière de deux nombres entiers de 16 bits utilisant des opérations dadditions et de décalages Multiplicateur Multiplicande }

22 sif-105322 Les circuits de multiplication c * a = 45 * 57= 2565 2565

23 sif-105323 Les circuits de multiplication n Algorithme de multiplication binaire par accumulation des produits partiels

24 sif-105324 Les circuits de multiplication n Structure du dispositif de multiplication binaire par accumulation des produits partiels

25 sif-105325 Les circuits de multiplication n Autre exemple de multiplication binaire par accumulation des produits partiels + _ _ _ _ + + multiplicateurmultiplicande résultat

26 sif-105326 Les circuits de division entière n Exemple de division binaire crayon papier Dividende Diviseur Quotient Reste

27 sif-105327 Les circuits de division entière n Algorithme de division binaire par restauration des restes partiels (nombres entiers positifs de 4 bits) INPUT: a: DIVIDENDE, b: DIVISEUR OUTPUT: a: RESTE-QUOTIENT unsigned char division(unsigned char a, unsigned char b) DEBUT decalage de b de 4 bits à gauche (b = b << 4;) POUR i ALLANT DE 0 À 3 FAIRE decalage de a de 1 bit à gauche SI (a >= b) ALORS // DIVIDENDE >= DIVISEUR a = a-b a = a + 1 FINSI FIN POUR retourner a FIN

28 sif-105328 Les circuits de division entière n Algorithme de division binaire par restauration des restes partiels (nombres entiers positifs de 4 bits) u exemple: 9/4 00001100 00000010 a b Au début 00001100 01000000 a b Décalage de b de 4 bits à gauche 4

29 sif-105329 Les circuits de division entière n Algorithme de division binaire par restauration des restes partiels (nombres entiers positifs de 4 bits) u exemple: 9/4 00010001 01000000 a b Itération i = 0 00010001 01000000 a b 1 a>=b

30 sif-105330 Les circuits de division entière n Algorithme de division binaire par restauration des restes partiels (nombres entiers positifs de 4 bits) u exemple: 9/4 00100010 01000000 a b 1 a>=b 00100010 01000000 a b Itération i = 1

31 sif-105331 Les circuits de division entière n Algorithme de division binaire par restauration des restes partiels (nombres entiers positifs de 4 bits) u exemple: 9/4 1 a>=b 01000100 01000000 a b Itération i = 2 01000100 01000000 a b

32 sif-105332 Les circuits de division entière n Algorithme de division binaire par restauration des restes partiels (nombres entiers positifs de 4 bits) u exemple: 9/4 a = a - b 01000100 01000000 a b Itération i = 2 a = a + 1 00001100 01000000 a b

33 sif-105333 Les circuits de division entière n Algorithme de division binaire par restauration des restes partiels (nombres entiers positifs de 4 bits) u exemple: 9/4 1 a>=b Itération i = 3 00010001 01000000 a b 00010001 01000000 a b RESTE QUOTIENT

34 sif-105334 Les circuits de division entière n Travail pratique 2 (programme principal) Nom du fichier Mode douverture // arg1: pointeur du fichier destination // arg2: format daffichage des objets // arg3: liste des objets écrits Format de lobjet lu Pointeur sur lobjet en mémoire

35 sif-105335 Les circuits de division entière n Algorithme de division binaire par restauration des restes partiels

36 sif-105336 Les circuits de division entière n Structure du dispositif de division binaire par restauration des restes partiels

37 sif-105337 Les circuits de division entière n Exemple de division par l algorithme de division binaire par restauration des restes partiels + + + + + + + dividende diviseur quotient reste - - - -

38 sif-105338 Unité arithmétique et logique 1 0 1

39 sif-105339 Unité arithmétique et logique

40 sif-105340 Unité arithmétique et logique

41 sif-105341 Lunité point flottant (FPU) n Unité responsable du calcul en point flottant n Les nombres réels et les programmes en langage C

42 sif-105342 Lunité point flottant (FPU) n Norme IEEE-754

43 sif-105343 Lunité point flottant (FPU) n Exemple de programme en langage C qui emmagasine des objets réels dans un fichier binaire fclose(fp); Nom du fichier Mode douverture // arg1: pointeur sur les objets écrits // arg2: format des objets // arg3: nombre dobjets écrits // arg4: pointeur du fichier destination

44 sif-105344 Éléments fondamentaux de la programmation en langage C n Exemple dI/O // lecture dobjets au clavier Format de lobjet lu Pointeur sur lobjet en mémoire

45 sif-105345 Éléments fondamentaux de la programmation en langage C n Exemple dI/O

46 sif-105346 Éléments fondamentaux de la programmation en langage C n Fonctions et passage de paramètres u En langage C, nous pouvons passer des informations aux fonctions via son interface et ce de deux façons distinctes: F Passage par valeur: valeurs actuelles sont passées F Passage par référence (adresse): pointeurs sont passés

47 sif-105347 Éléments fondamentaux de la programmation en langage C n Fonctions et passage de paramètres (par valeur)

48 sif-105348 Éléments fondamentaux de la programmation en langage C n Fonctions et passage de paramètres (par référence)

49 sif-105349 Éléments fondamentaux de la programmation en langage C n Gestion de fichiers u Pour traiter un fichier en langage C il faut respecter les étapes suivantes: F Ouvrir le fichier par une fonction libc fopen() F Opérations sur les données du fichier: Lecture: fscanf(), fread(), getc() Écriture: fprintf(), fwrite(), putc() Positionnement: fseek() Fin de fichier: feof() F Fermeture du fichier: fclose()

50 sif-105350 Éléments fondamentaux de la programmation en langage C n Gestion de fichiers (ouverture) u Lors de louverture dun fichier il faut préciser le mode dutilisation du fichier: F r: ouverture en mode lecture seule F w: ouverture en mode écriture seule, écrase lancien fichier si il existait déjà F a: ouverture en mode écriture à la fin du fichier si il existe déjà, ou ouverture en mode écriture seule si le fichier est nouveau F r+: (read/modify) ouverture en mode lecture et modification

51 sif-105351 Éléments fondamentaux de la programmation en langage C n Gestion de fichiers (ouverture) u Lors de louverture dun fichier il faut préciser le mode dutilisation du fichier: F w+: (write/modify) création ou écrasement dun fichier pour écriture et modification F a+: (append/modify) ouverture en mode ajout et modification u Nous pouvons aussi spécifier le type de fichier: F t (text): le contenu du fichier est considéré comme des caractères F b (binary): le contenu est sous format binaire selon le type des données manipulées (données entières, float, structures etc)

52 sif-105352 Gestion de fichiers (exemple: ouverture et manupulation) Pointeur sur le fichier destination Format décriture dans le fichier Objets écrits Pointeur sur le fichier source

53 sif-105353 Gestion de fichiers (exemple: ouverture et manupulation) Ligne de commande

54 sif-105354 Éléments fondamentaux de la programmation en langage C n Gestion de fichiers (ouverture et manipulation) u Arguments passés à la fonction main() F Le premier argument représente le nombre darguments de la ligne de commande (int argc) F Le second paramètre est un vecteur de pointeurs sur des chaînes de caractères (char **argv ou char *argv[]) argv[0]: nom de lexécutable argv[1]: argument 1 argv[2]: argument 2. argv[argc-1]: argument argc-1


Télécharger ppt "Sif-10531 Cours 6 n 3. Construction dun ordinateur F Les circuits arithmétiques F Lunité arithmétique et logique (UAL) F Travail pratique #2 Division entière."

Présentations similaires


Annonces Google