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 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 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 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 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 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 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 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 Un soustracteur

12 sif 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 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 ; AL

14 sif 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 ; AL

15 sif Les circuits de décalage binaires

16 sif 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 ; AL

17 sif 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 ; AL

18 sif Les circuits de décalage binaires

19 sif Les circuits de décalage binaires

20 sif Les circuits de multiplication entière n Rappel sur le processus de multiplication décimale et binaire Multiplicande 57 X XMultiplicateur _______ Produits partiels }

21 sif 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 Les circuits de multiplication c * a = 45 * 57=

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

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

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

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

27 sif 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 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/ a b Au début a b Décalage de b de 4 bits à gauche 4

29 sif 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/ a b Itération i = a b 1 a>=b

30 sif 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/ a b 1 a>=b a b Itération i = 1

31 sif 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 a b Itération i = a b

32 sif 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 a b Itération i = 2 a = a a b

33 sif 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 = a b a b RESTE QUOTIENT

34 sif 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 Les circuits de division entière n Algorithme de division binaire par restauration des restes partiels

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

37 sif 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 Unité arithmétique et logique 1 0 1

39 sif Unité arithmétique et logique

40 sif Unité arithmétique et logique

41 sif 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 Lunité point flottant (FPU) n Norme IEEE-754

43 sif 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 É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 Éléments fondamentaux de la programmation en langage C n Exemple dI/O

46 sif É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 Éléments fondamentaux de la programmation en langage C n Fonctions et passage de paramètres (par valeur)

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

49 sif É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 É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 É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 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 Gestion de fichiers (exemple: ouverture et manupulation) Ligne de commande

54 sif É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