Cours 6 3. Construction d’un ordinateur Le matériel Chapitre 5 CSA

Slides:



Advertisements
Présentations similaires
Électronique de base du processeur
Advertisements

ARCHITECTURE INTERNE d’un MICROPROCESSEUR
Algorithmique Résume.
C.
Architecture des Ordinateurs
Architecture des Ordinateurs
Enseigner l’arithmétique en série L
Paramètres et pointeurs
Suite à de nombreuses remarques concernant le projet de structures de données 'Gestion d'un Aéroport' , voici un polycopié de cours concernant la gestion.
INTRODUCTION.
FLSI602 Génie Informatique et Réseaux
Dossier TICE Excel.
Présentation Unité de codage
Chapitre 8 : L’architecture de base des ordinateurs
Partie 1 Etude de l'existant
Mémoire périphérique Stockage primaire: Mémoire principale (RAM)
Cours 8 5. Appels de fonctions Le matériel Concepts de pile
Création d’un programme :
LE MICROPROCESSEUR 8086/8088 Architecture externe du 8086
Le codage des nombres en informatique
Architecture des Ordinateurs
PROGRAMMATION SCIENTIFIQUE EN C PRO Généralités u Présentation du plan de cours –Disponibilité –Références u Environnement de travail –Langage C.
Outils de Programmation
FICHIERS.
Les fichiers binaires en C++
FICHIERS : Définition : Algorithme général:
Structures de données IFT-2000
Gei 431 Architecture des ordinateurs II – Frédéric Mailhot Systèmes Pipeline – opérations multicycles Nous avons vu jusquà maintenant comment faire un.
Cours 3 2. Représentation et traitement des informations Le matériel
Cours 1 1.Introduction Le matériel Introduction au langage C
Cours 4 3. Construction d’un ordinateur Le matériel Chapitre 3 CSA
Les Fichiers.
Cours 5 3. Construction d’un ordinateur Le matériel
Types de données fondamentaux
Les fichiers texte en C++
L’essentiel du langage C
Les pointeurs L'opérateur &.
Informatique, Ordinateur & Programme ...
Advanced Boolean Equation Language
Mémoire périphérique Stockage primaire: Mémoire principale (RAM)
SIF-1053 Architecture des ordinateurs
Un survol du language C.
Labo 4 : Les structures et les entrées et sorties
 Syntaxe du langage PHP
La programmation de l’interface FischerTechnik
La programmation de l’interface FischerTechnik
Microcontrôleurs PIC. 1ère séance Présentation du PIC16F876 Outils de programmation du PIC Le langage C Exemples d’applications simples 2ème séance Présentation.
1 INFOR 101 Chapitre 4 Marianne Morris. 2 Révision de chapitre 3 Algorithmes Sequential Search Selection Sort Binary Search Ordre de magnitude  (n) Mesurer.
1 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. tél Fax Cours Architecture des.
Les variables fichiers. Le type fichier On manipule les fichiers par l’intermédiaire de structures FILE décrites dans stdio.h FILE *monFichier; –Nom physique.
UE MAREP Cours 1 : Algèbre de Boole et entiers naturels
Les entrées-sorties élémentaires
Module algorithmique et programmation
Codage de l’information
8PRO107 Éléments de programmation Les adresses et les pointeurs.
1 PHP 5 Notions fondamentales (niveau 1 cours #3) Formation continue – Cégep de Sainte-Foy François G Couillard.
Chapitre 4 La représentation des nombres.
Comment améliorer les performances des élèves en calcul mental?
©Pierre Marchand, Unité 2: Représentation interne des informations Objectifs: À la fin de cette unité, -vous saurez comment les caractères et les.
Chapitre 4b La représentation des nombres.
Chapitre 9 Les caractères.
Objets et Actions Élémentaires.
CHAPITRE 5 Les nombres entiers 1. Les entiers 2 Les entiers signés représentations pour le 0.
Algorithmique et langage C
A. Lebrun. La base 2 Un nombre peut se représenter en base deux par une suite de 0 ou de 1. Chaque bit a un poids qui dépend de son rang Le format n impose.
Les bascules et registres
1 Objectifs Apprendre la structure de quelques circuits combinatoires souvent utilisés ( demi additionneur, additionneur complet,……..). Apprendre comment.
La place du calcul mental et du calcul réfléchi dans la résolution de problème. Qu’est-ce que chercher?
Informatique 2A Langage C 4ème séance
Transcription de la présentation:

Cours 6 3. Construction d’un ordinateur Le matériel Chapitre 5 CSA Les circuits arithmétiques L’unité arithmétique et logique (UAL) Travail pratique #2 Division entière positive Le matériel Chapitre 5 CSA Chapitre 3 et 4 CSAPP Synthèse du professeur sif-1053

Les circuits arithmétiques 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. Ce qui entraîne comme nous l’avons vu au chapitre précédent, la possibilité de réaliser également des soustractions, des multiplications et des divisions. sif-1053

Additionneur simple L’addition de nombres binaires est une opération très simple que l’on 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 l’anglais, Carry output). sif-1053

Ce qui est évidemment très simple, et qui nous fait comprendre l’utilité de la porte XOU. Ce circuit additionneur (ou cellule d’addition) 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 ... sif-1053

Si on additionne deux nombres binaires qui contiennent plus d’un chiffre binaire (ce qui est habituellement le cas), le DA ne nous permet pas de tenir compte des retenues produites. 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 qu’il puisse en tenir compte. sif-1053

Il nous faut donc une troisième entrée à notre circuit additionneur, afin de permettre l’addition d’une retenue générée par les chiffres de la colonne précédente. La troisième entrée est identifiée Ci (de l’anglais, Carry input), le circuit porte le nom d’additionneur complet (AC). sif-1053

Le circuit additionneur complet peut être conçu avec des demi-additionneurs et une porte OU. sif-1053

sif-1053

sif-1053

Un soustracteur La soustraction représente dans les faits l’addition du complément à deux du second terme impliqué dans la soustraction sif-1053

Un soustracteur sif-1053

Un soustracteur Schématiquement, l’UC doit fournir un signal pour indiquer quelle opération l’ALU doit effectuer et mettre l’entrée Carry In à 1 Calcul du complément à un 1 sif-1053

Les circuits de décalage binaires Décalage des bits d’un nombre de positions vers la gauche (peut permettre une multiplication par des multiples de 2) SHL AL, 1 SHL BX, 25 ; 80286 AL 1 1 1 1 1 1 1 1 1 sif-1053

Les circuits de décalage binaires Décalage des bits d’un nombre de positions vers la droite (peut permettre une division par des multiples de 2) SHR AL, 1 SHR BX, 25 ; 80286 AL 1 1 1 1 1 1 1 1 1 sif-1053

Les circuits de décalage binaires sif-1053

Les circuits de décalage binaires Décalage des bits d’un nombre de positions vers la gauche avec réinsertion par la droite ROL AL, 1 ROL BX, 25 ; 80286 AL 1 1 1 1 1 1 1 1 1 1 sif-1053

Les circuits de décalage binaires Décalage des bits d’un nombre de positions vers la droite avec réinsertion par la gauche ROR AL, 1 ROR BX, 25 ; 80286 AL 1 1 1 1 1 1 1 1 1 1 sif-1053

Les circuits de décalage binaires sif-1053

Les circuits de décalage binaires sif-1053

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

Les circuits de multiplication entière Fonction en langage C qui permet d’effectuer la multiplication entière de deux nombres entiers de 16 bits utilisant des opérations d’additions et de décalages Multiplicande Multiplicateur } sif-1053

Les circuits de multiplication 2565 sif-1053

Les circuits de multiplication  Algorithme de multiplication binaire par accumulation des produits partiels sif-1053

Les circuits de multiplication  Structure du dispositif de multiplication binaire par accumulation des produits partiels sif-1053

Les circuits de multiplication  Autre exemple de multiplication binaire par accumulation des produits partiels multiplicateur multiplicande _ + _ _ + _ + résultat sif-1053

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

Les circuits de division entière  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 sif-1053

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

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

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

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

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

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

Les circuits de division entière  Travail pratique 2 (programme principal) Nom du fichier Mode d’ouverture Format de l’objet lu Pointeur sur l’objet en mémoire // arg1: pointeur du fichier destination // arg2: format d’affichage des objets // arg3: liste des objets écrits sif-1053

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

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

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

Unité arithmétique et logique 1 1 sif-1053

Unité arithmétique et logique sif-1053

Unité arithmétique et logique sif-1053

L’unité point flottant (FPU)  Unité responsable du calcul en point flottant Les nombres réels et les programmes en langage C sif-1053

L’unité point flottant (FPU)  Norme IEEE-754 sif-1053

L’unité point flottant (FPU)  Exemple de programme en langage C qui emmagasine des objets réels dans un fichier binaire Nom du fichier Mode d’ouverture // arg1: pointeur sur les objets écrits // arg2: format des objets // arg3: nombre d’objets écrits // arg4: pointeur du fichier destination fclose(fp); sif-1053

Éléments fondamentaux de la programmation en langage C Exemple d’I/O Format de l’objet lu Pointeur sur l’objet en mémoire // lecture d’objets au clavier sif-1053

Éléments fondamentaux de la programmation en langage C Exemple d’I/O sif-1053

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

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

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

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

Éléments fondamentaux de la programmation en langage C Gestion de fichiers (ouverture) Lors de l’ouverture d’un fichier il faut préciser le mode d’utilisation du fichier: “r”: ouverture en mode lecture seule “w”: ouverture en mode écriture seule, écrase l’ancien fichier si il existait déjà “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 “r+”: (read/modify) ouverture en mode lecture et modification sif-1053

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

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

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

Éléments fondamentaux de la programmation en langage C Gestion de fichiers (ouverture et manipulation) Arguments passés à la fonction main() Le premier argument représente le nombre d’arguments de la ligne de commande (int argc) 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 l’exécutable argv[1]: argument 1 argv[2]: argument 2 . argv[argc-1]: argument argc-1 sif-1053