Académique Documents
Professionnel Documents
Culture Documents
fonctionnement
des ordinateurs
I - Sources et documentations 5
II - Histoire de l'informatique 7
A. Codage......................................................................................................17
1. Notions de base..............................................................................................................17
2. Représentation d'un nombre dans une base........................................................................18
3. Détection d'erreur...........................................................................................................19
4. Standardisation des codages.............................................................................................22
B. Systèmes de numérotation...........................................................................22
1. Conversion décimale-binaire.............................................................................................22
2. Représentations des nombres négatifs...............................................................................23
3. Représentation des nombres réels.....................................................................................25
A. Généralités.................................................................................................27
1. Axiomes de l'algèbre de Boole...........................................................................................27
2. Théorèmes de l'algèbre de Boole.......................................................................................28
3. Algèbre de Boole et interprétation dans le monde binaire.....................................................29
C. Fonctions logiques.......................................................................................34
1. Écritures canoniques d'une fonction logique........................................................................35
2. Simplification de l'écriture des fonctions logiques.................................................................36
I
documentations
Quelques sources
Paolo Zanella et Yves Ligier. Architectures et technologie des ordinateurs
Andrew Tanenbaum. Architecture de l'ordinateur
http://www.blois.univ-tours.fr/˜marcel/
S. Tisserant – ESIL – Architecture et Technologie des Ordinateurs
Circuits et architecture des ordinateurs, Université Paris Diderot, Olivier
Carton
Electronique Numérique, 1er tome, Systèmes combinatoires. Etienne
Messerli, Yves Meyer
Wikipedia (IEEE754, Code de Hamming, ...)
Site du zéro (Système de numération)
Comment ça marche (Code CRC)
II
l'informatique
souris ;
écran ;
imprimante ;
disques ;
clés usb ;
Lecteur CD/DVD ;
...
1. Le calcul mécanique
2. Le calcul électromécanique
Le calcul électromécanique
En 1890, Hermann Hollerith construisit un calculateur de statistiques qui fut
utilisé pour le recensement américain. Il s'agissait d'une machine
électromécanique. Ce fût le premier exemple de l'imbrication d'une
architecture matérielle et d'une organisation des données. Hollerith fonda en
1896, la Tabulating Machine Company pour produire ses cartes et machines
mécanographiques qui devint en 1924, l'International Business Machines
Corporation (IBM);
En 1936 Alan Turing énonce le principe d'une machine (virtuelle), qui
pouvait en théorie réaliser tous les calculs mathématiques, avec en
particulier des instructions conditionnelles ;
En 1938, Claude Shannon reprenant les travaux de Leibniz et Boole, mis en
évidence une analogie entre l'algèbre binaire et les circuits électriques. Il
montra plus tard que tout calcul logique ou arithmétique peut être réalisé
avec uniquement les trois opérations logiques fondamentales : ET, OU et
NON. Il est également l'inventeur du terme bit pour binary digit pour
désigner le chiffre binaire ;
Le Mark 1 ou ASCC (Automatic Sequence Controlled Calculator) fût
développé en 1941 conjointement par IBM et Harward. Il s'agissait d'une
énorme machine de 5 tonnes, couvrant 25 m 2 et consommant 25 kW. Il
comptait 3000 relais et 760000 pièces mécaniques ;
En 1945, un insecte (bug) coince un relais, provoquant un
dysfonctionnement de l'ASCC et donnant naissance au terme bug pour
designer la panne informatique.
3. L'ère de l'électronique
L'ère de l'électronique
On peut découper cette période en 4 grandes phases :
Les évolutions de la première génération :
En 1945 l'ENIAC (Electronic Numerical Integrator And Calculator/Computer)
proposé en 1942 par Presper Eckert et John Mauchly est mis en service.
John von Neumann, consultant sur l'ENIAC, proposa de coder le programme
sous forme numérique et de l'enregistrer en mémoire, avec un gain en
souplesse et rapidité. Il jetait ainsi les bases de l'architecture de l'ordinateur
moderne qui portera son nom;
En 1947 Bell Telecom invente le transistor ;
Le transistor annonça la seconde génération des ordinateurs
En 1955 le premier ordinateur utilisant des transistors ( TRADIC de Bell) est
crée. A la même époque, IBM commercialisa le premier disque dur (5
disques de 61 cm de diamètre pour 5 Mo). Les mémoires à tore de ferrite
étaient également disponibles. Le PDP-8 de DEC fut le premier mini-
ordinateur à être diffusé en grande série (50000 exemplaires) ;
En 1958 le premier circuit intégré est crée par Texas Instrument
En 1964 il y a création du langage de programmation BASIC
En 1969 commencent les Systèmes d'exploitation par MULTICS puis UNIX de
Bell
La troisième génération, à partir de 1970, correspond à l'utilisation des circuits
intégrés.
En 1971 sort ARPANET (ancêtre d'internet). Cette même année il y a la
création du premier microprocesseur d'Intel nommé 4004. Il prenait 4 bits
et exécutait les tâches à 108 KHz et était composé de 2300 transistors en 10
microns. En 1972 Intel sort le processeur 8008 qui prenait 8 bits,
séquençait à 200 KHz, et comprenait 3500 transistors
En 1972 Bill Gate et Paul Allen fondent Traf-of-Data
En 1973 c'est l'Invention du C pour le développement d'UNIX
En 1974, Le français François Moreno invente la carte à puce
En 1974, Motorolla commercialise son premier processeur le 6800, qui
prenait 8 bits
En 1975 Traf-of-data devient Micro-Soft
En 1976 Steve Jobs et Steve Wozniak commercialisent l'Apple Computer
En 1978 Intel lance son 8086 de 16 bits et 4.7 Mhz comprenant 29000
transistors à 3 microns
En 1980 IBM confie le développement du système d'exploitation de sa future
machine, à base du processeur Intel 8086, à Micro-Soft, qui sera appelé
QDOS puis 86-DOS et enfin MS-DOS
A partir de 1980 le niveau d'intégration des puces ayant largement progressé en
surface et en densité on parle de 4ème génération
En 1982 Intel commercialise le 80286 de 16 bits, 6 MHz, et 134000
transistors
En 1984 Apple sort le MacIntosh avec une interface graphique conviviale
En 1985 Intel commercialise le processeur 80386 de 32 bits
En 1989 Tim BERNERS-LEE invente le HTML
En 1990 on voit les Pc en réseau, et le système d'exploitation Windows 3.0
En 1991 Linus TORVALDS invente Linuxente
En 1993 sort le premier processeur Pentium
En 1995 système d'exploitation le Windows 95 sort et est vendu en 1 million
d'exemplaires en 3 jours
En 1998 sort Windows 98 et iMac
En 2000 apparaît les premiers Pentium IV
1. Le modèle Neumann
Le modèle Neumann
En 1946, J. Von Neumann a décrit un modèle de machines universelles sur lequel
s'appuient les machines actuelles. Selon ce modèle un ordinateur est composé :
d'une mémoire qui contient les programmes et les données ;
d'une unité arithmétique et logique (UAL ou ALU) qui effectue les calculs ;
d'une unité d'entrées/sorties (E/S ou I/O pour Input/output) pour l'échange
d'informations avec les périphériques ;
et d'une unité de commande (UC) pour le contrôle,
2. Le modèle Harvard
A l'intérieur de l'unité centrale on a la carte mère qui assure la connexion entre les
périphériques internes et externes et l'ordinateur. C'est une sorte de matrice
constituée d'une carte comportant des circuits imprimés et sur laquelle viennent se
connecter les périphériques. Sur la carte mère on a le processeur, les connecteurs
de mémoire vive où viennent s'implanter les barrettes mémoires, de disques (IDE,
ATA) où viennent se connecter les lecteurs de disques/disquettes/CD/DVD et de
cartes additionnelles qui apportent d'autres fonctionnalités (carte vidéo, son,
réseau, modem, ...).
1. Le disque dur
Le disque dur
Le disque dur est une mémoire de masse qui est l‘élément de stockage de
l'ordinateur, que l'on peut appeler également la « mémoire à long terme ». C‘est lui
qui contient le système d‘exploitation, les programmes et les fichiers de données.
Le premier disque dur a été créé par IBM en 1950.
Le disque dur est composé de plusieurs disques de métal appelés plateaux. Ces
derniers sont eux-mêmes recouverts de matériaux magnétiques sur lesquels sont
stockées les données. Chaque face du plateau est composée de têtes de
lecture/écriture montées sur des bras de lecture.
Les principales caractéristiques d'un disque dur sont :
sa capacité qui est le volume de données pouvant être stocké sur celui-ci.
Aujourd'hui les capacités classiques vont de 500 Go à 1 To ;
sa vitesse de transfert qui est la vitesse d'échange des données avec
l'unité centrale ;
sa vitesse de rotation qui est la vitesse à laquelle tournent les plateaux.
La vitesse standard est de 7200 tours/mn. Certains disques plus
performants tournent à 15000 tours, ce qui donne une performance
supérieure.
son interface est le type de connecteur qui permet de le raccorder à l'unité
centrale. Le standard du moment est le SATA (Serial ATA) qui est représenté
par un connecteur à 7 broches. Mais il y a aussi le standard IDE (connecteur
à 34 broches) qui représente l'ancienne version.
Il existe des mémoires vives ou RAM (Random acces Memory) très rapides qui
servent de zones de transfert temporaire des données entre le disque dur et le
processeur et qui perdent les données lorsque l'ordinateur est éteint. Plus la
capacité de la mémoire RAM est grande plus l'ordinateur pourrait lancer des
programmes simultanément.
2. Les imprimantes
Les imprimantes
Il y a trois grandes familles d'imprimantes :
Les imprimantes matricielles : ce sont les anciens modèles encore
utilisés dans certaines entreprises pour l'édition de factures ou de bons de
livraison. L'impression est réalisée à l'aide d'aiguilles qui frappent le papier à
travers un ruban encreur. L'avantage de cette technique est qu'il est
Le disque externe
Il s'agit de disques durs qui sont intégrés dans une boîte et muni de connecteur le
plus souvent USB. Comme caractéristiques on peut citer:
le format qui correspond à la taille physique du disque dur: 2 pouces 1/2 ou
3 pouces 1/2;
la taille de données qu'il peut contenir. Les tailles les plus courantes
aujourd'hui étant :
- Entre 500 Go à plus du To pour les 3 pouces 1/2 ;
- Entre 300 Go jusqu'au To pour les 2 pouces 1/2.
Les petits disques 2 pouces 1/2 ont l'avantage d'être auto alimentés par le port
USB et ne nécessite donc pas de prises secteur contrairement aux disques 3 pouces
1/2.
* *
*
III
des nombres
Codage 17
Systèmes de numérotation 22
L'ordinateur ne comprend que les données binaires ; il est donc nécessaire d'établir
des codages qui permettent de transformer les données du monde réel en données
binaires et vice-et-versa. Il est également nécessaire de définir de nouvelles
méthodes de calcul sur ces données binaires afin de pouvoir effectuer les
traitements ordinaires du monde réel. Dans cette partie nous abordons la
représentation des données et les calculs de base qui sont faits par l'ordinateur.
A. Codage
1. Notions de base
12=1100 ;
15=1111 ;
...
Le code de Gray
Le code de Gray ou binaire réfléchi, est un type de codage binaire permettant de ne
modifier qu'un seul bit à la fois quand un nombre est augmenté d'une unité.
On part sur la base que 0 est codé 0 et 1 est codé 1 ;
Lorsqu'on a besoin d'un bit supplémentaire, on ajoute un 0 en début puis :
- si le nombre de 1 est pair, il faut inverser le dernier chiffre ;
- si le nombre de 1 est impair, il faut inverser le chiffre situé à gauche du
1 le plus à droite.
Ce code est surtout utilisé pour des capteurs de positions. Par exemple, si on utilise
le code binaire standard, lors du passage de la position un (01) à deux (10), qui
nécessite la permutation simultanée des 2 bits, il y a un risque de passage
transitoire par trois (11) ou zéro (00), ce qu'évite le code de Gray car ne
permettant pas le changement simultané de 2 bits.
3. Détection d'erreur
permet donc de détecter une erreur mais seulement une ; lorsqu'il y a un nombre
d'erreurs pair par exemple le bit de parité n'est plus efficace.
Par exemple si on reçoit des informations comme suit :
Code reçu : 0111 1001 1--> Pas d'erreur car 6 bits à 1
Code initial : 0101 1010 1--> Erreur car 5 bits à 1
d'un code de 32 bits). Le code CRC contient des éléments redondants vis-à-vis de
la trame, permettant de détecter les erreurs, mais aussi de les réparer.
Le principe du CRC consiste à traiter les séquences binaires comme des polynômes
binaires, c'est-à-dire qu'une séquence de n bits constitue un polynôme de degré
maximal n-1. Par exemple la séquence binaire 0110101001 peut être représentée
sous la forme polynomiale suivante :
M(X)=0*X9 + 1*X8 + 1*X7 + 0*X6 + 1*X5 + 0*X4 + 1*X3 + 0*X2 + 0*X1 +
1*X0
soit M(X)=X8 + X7 + X5 + X3 + X0
ou M(X)=X8 + X7 + X5 + 1
On définit ensuite un polynôme prédéfini appelé polynôme générateur et noté
G(X) connu de l'émetteur et du récepteur. Le choix du polynôme générateur est
fonction de la qualité recherchée : le plus simple est d'utiliser ceux qui sont déjà
définis :
CRC-12 : X12 + X11 + X3 + X2 + X + 1
CRC-16 : X16 + X15 + X2 + 1
CRC CCITT V41 : X16 + X12 + X5 + 1
CRC-32 (Ethernet) : = X32 + X26 + X23 + X22 + X16 + X12 + X11 + X10 + X8 +
X7 + X5 + X4 + X2 + X + 1
CRC ARPA : X24 + X23+ X17 + X16 + X15 + X13 + X11 + X10 + X9 + X8 + X5 + X3
+1
La détection d'erreur consiste pour l'émetteur à effectuer un algorithme sur les bits
de la trame afin de générer un CRC, et de transmettre ces deux éléments au
récepteur. Il suffit alors au récepteur d'effectuer le même calcul afin de vérifier que
le CRC est valide.
Le code CRC est égal au reste de la division polynomiale de M(X) (auquel on a
préalablement concaténé n bits nuls correspondant à la longueur du CRC) par G(X).
La standardisation du codage
Parce qu'il peut y avoir plusieurs codages possibles des organismes comme l'ISO
ont vu le jour et ont pour rôle de normaliser (édicter les règles et leurs évolutions)
le codage.
B. Systèmes de numérotation
L'ordinateur ne comprend que le codage binaire qui est lié au type d'impulsions qu'il
peut avoir. Comment arrive-t-il donc à représenter les nombres entiers naturels,
entiers relatifs, et réel. C'est ce que nous tâcherons de voir dans cette partie.
1. Conversion décimale-binaire
Complément à 1
Dans cette notation, on inverse (1 à 0 et 0 à 1) les bits de la partie "valeur absolue"
du nombre négatif tel que la somme (bit à bit) des codes du nombre négatif et de
sa valeur absolue est égale à 2n-1.
Avec n bits on peut représenter les nombres relatifs [-2n-1+1, 2n-1-1].
Complément à 2
Dans cette notation, on inverse (1 à 0 et 0 à 1) les bits de la partie "valeur absolue"
du nombre négatif tel que la somme (bit à bit) des codes du nombre négatif et de
sa valeur absolue est égale à 2n.
Avec n bits on peut représenter les nombres relatifs [-2n-, 2n-1-1].
Notation excédentaire
Dans cette notation sur n bits, on ajoute la valeur d'un excès N, généralement 2n-1,
de telle sorte que si A est négatif et B est sa valeur absolue A=N-B.
Les intervalles de valeurs qu'on peut représenter sont alors [-N, N-1] et pour
pouvoir représenter un nombre négatif A, il faut que A>=-N
Ainsi la notation excédentaire 2n-1 permet de représenter les nombres sur 3 bits
comme suit :
000=-4;
001=-3;
010=-2;
011=-1;
100=0;
101=1;
110=2;
111=3.
IV
et Portes logiques
Généralités 27
Portes logiques de base 29
Fonctions logiques 34
A. Généralités
Georges Boole (1815-1864) a définit les prémices de ce qui est aujourd'hui appelé
algèbre de Boole. Une algèbre de Boole est constituée :
d'un ensemble E
deux éléments particuliers de E : 0 et 1
deux opérations binaires sur E : + et
une opération unaire sur E : -
Définition : Commutativité
soient a,b deux caractères de E, l'addition et la multiplication sont commutatives
parce que :
a+b=b+a
ab=ba
Définition : Associativité
soient a,b et c trois caractères de E, l'addition et la multiplication sont associatives
parce que :
a+(b+c)=(a+b)+c
a(bc)=(ab)c
Définition : Distributivité
soient a,b et c trois caractères de E, l'addition est distributive par rapport à la
multiplication et vice et versa parce que :
a(b+c)=ab+ac
a+(bc)=(a+b)(a+c)
Définition : Complémentation
La somme d'un nombre et de son complément vaut 1 tandis que le produit d'un
nombre et de son complément vaut 0
Théorème de l'idempotence
Si a est un caractère de E, a+a=a et aa=a
Démonstration que aa=a
aa = aa + 0
aa = aa + aComplement(a)
aa = a(a + Complément(a))
aa = a1
aa = a
Démonstration que a+a=a
a+a = (a+a)1
a+a = (a+a) (a+ Complement(a))
a+a = a+(aComplément(a))
a+a = a + 0
a+a = a
Théorème de l'absorption
Si a et b sont deux caractères de E, a+ab=a et a(a+b)=a
Démonstration en montrant que a+ab=a(1+b)= a1 et que a(a+b)=aa+ab=a+ab
Éléments absorbants
Si a est un caractère de E alors, a+1=1 et a0=0. 1 est appelé élément absorbant
de l'addition et 0 celui de la multiplication.
Interprétation usuelle
E = {0,1} peut être interprétée comme suit
1 = Vrai
0 = Faux
+= OU (disjonction logique)
. = ET (conjonction logique)
– = NON (négation logique)
Interprétation électrique
On peut aussi interprété l'algèbre de Boole comme suit :
1 => le courant passe
0 => le courant ne passe pas
+ => le courant passe si au moins une des entrées est à 1
– => le courant passe si les 2 entrées sont à 1
– => le courant inverse
Une fonction logique est une fonction qui opère sur des données booléennes et qui
peut être représentée par une table de vérité ou par une expression booléenne.
Une table de vérité permet de donner pour toutes les combinaisons possibles des
variables logiques en entrée les résultats d'une fonction logique. Les différentes
opérations logiques de base sont représentés par des circuits électriques qu'on
appelle porte logique .
1. Porte NON
Porte NON
A Y
0 1
1 0
Notation : Complément(a)
2. Porte ET
Porte ET
A B Y
0 0 0
0 1 0
1 0 0
1 1 1
Notation : a et b ou a.b ou ab
3. Porte OU
Porte OU
A B Y
0 0 0
0 1 1
1 0 1
1 1 1
Notation : a ou b ou a+b
4. Porte NAND
Porte NAND
A B Y
0 0 1
0 1 1
1 0 1
1 1 0
Notation : Complément(a.b)
5. Porte NOR
Porte NOR
A B Y
0 0 1
0 1 0
1 0 0
1 1 0
6. Porte XOR
Porte XOR
A B Y
0 0 0
0 1 1
1 0 1
1 1 0
Notation : a (+) b
A C Y
0 1 0
1 1 0
X 0 Déconnectée
Lorsque la ligne C est à 0 la porte est pratiquement déconnectée. Les portes "3
états" sont utilisées aussi pour une amplification de puissance.
C. Fonctions logiques
Les portes logiques de base sont des fonctions logiques. Une fonction logique peut
être définie par une expression booléenne ou une table de vérité.
Une expression booléenne est un terme construit à partir de :
variables booléennes
d'opérateur booléens
Considérons par exemple la fonction majorité qui peut être définie par l'expression
booléenne : majorité(a, b, c) =Complément(a)bc + aComplément(b)c +
abComplément(c) + abc.
Sa table de vérité est :
A B C Y
0 0 0 0
0 0 1 0
0 1 0 0
0 1 1 1
1 0 0 0
1 0 1 1
1 1 0 1
1 1 1 1
Elle peut aussi être représentée à l'aide de portes logiques comme sur la figure
suivante :
Chaque produit Pi vaut 1 uniquement pour la combinaison Ciet 0 pour les autres
combinaisons.
Pour toute fonction logique de trois variables x, y et z, nous pouvons écrire sa table
de vérité .
Considérons, par exemple, la fonction majorité dont la table de vérité est déjà
donnée. Elle prend la valeur 1 pour les combinaison C 3, C5, C6 et C7 et la valeur 0
pour toutes les autres combinaisons comme les produits P 3, P5, P6 et P7 nous
pouvons donc écrire que majorité(x,y,z) = P3+ P5 + P6 + P7 =
Complément(x)yz + xComplément(y)z + xyComplément(z) + xyz.
Cette façon d'écrire une fonction booléenne est appelée somme canonique de
produits.
Nous constatons que chacune de ces fonctions prend la valeur 0 pour une et une
seule combinaison.
Considérons encore la fonction majorité ; Elle prend la valeur 0 pour les
combinaison C1, C2, C4 et C0 et la valeur 1 pour toutes les autres combinaisons
comme les sommes S0, S1, S2 et S4 nous pouvons donc écrire que majorité(x,y,z)
= S0. S1 . S2 . S4 =(x+y+z) . (x+y+Complément(z)) . (x+Complément(y)+z) +
(Complément(x)+y+z).
Cette façon d'écrire une fonction booléenne est appelée produit canonique de
sommes et est moins utilisée que la somme canonique de produits.
Simplification algébrique
On peut simplifier une fonction par manipulation algébrique en utilisant par
exemple les axiomes de l'algèbre de Boole. Considérons la fonction majorité définie
par sa somme canonique de produit majorité(x,y,z)= Complément(x)yz +
xComplément(y)z + xyComplément(z) + xyz.
Nous pouvons écrire :
majorité(x,y,z)=Complément(x)yz + xComplément(y)z + xyComplément(z) + xyz
majorité(x,y,z)=(Complément(x)yz + xyz) + (xComplément(y)z + xyz) +
(xyComplément(z) + xyz)
majorité(x,y,z)=yz (Complément(x)+ x) + xz(Complément(y) + y) +xy
(Complément(z) +z)
majorité(x,y,z)=xy + yz + xz
Par contre la simplification algébrique n'est pas toujours très aisée à mettre en
œuvre. Il existe une autre méthode très utile pour un nombre de variables inférieur
à 6.
Tableaux de Karnaugh
Si une fonction logique prend en entrées n variables il y a 2n minterms possibles. Le
tableau de Karnaugh permet de représenter chacun de ces minterms par une case
dans un tableau. Les figures suivantes donnent la structure des tableaux de
Karnaugh pour 2, 3, 4 et 5 variables
Une même case peut intervenir dans plusieurs groupements car C + C = C. Par
contre pour les cases isolées on ne peut éliminer aucune variable ; on conserve
donc le produit
caractérisant la case.
L'expression logique finale est la réunion des groupements après élimination des
variables qui changent d'état.
V
ordinateurs
L'addition et la soustraction se font bit à bit du bit de poids faible au bit de poids
fort en propageant la retenue.
La multiplication est une succession d'additions et la division une succession de
soustractions.
1. Addition
Addition
Soit a et b deux bits l'addition de a et b se fait comme suit :
somme (a + b) = a xor b ;
retenue (a + b) = a.b
Propagation de la retenue
La retenue se propage depuis les bits de poids faible aux bits de poids fort comme
suit :
2. Soustraction
Soustraction
Soit a et b deux bits la soustraction de a et b se fait comme suit :
reste (a - b) = a xor b ;
retenue (a - b) = Complément(a).b
3. Multiplication
Multiplication
La multiplication est la somme des produits du multiplicande par les bits du
multiplicateur. On commence par le produit avec le bit de poids faible du
multiplicateur et on décale d'une colonne à chaque autre bit comme dans l'exemple
suivant
4. Division
Division
La division (euclidienne) est une suite de soustractions du diviseur à la dividende
jusqu'à ce que le reste soit plus petit que le diviseur comme dans l'exemple
suivant :
1. Addition
Addition
Quatre cas sont possibles en fonction du signe des nombres:
1. Les deux nombres sont positifs : dans ce cas-là on effectue une addition binaire
classique ;
2. Le nombre positif est plus grand que la valeur absolue du nombre négatif :
On effectue une addition binaire classique
On ne prend pas en compte la dernière retenue sortante (à gauche sur les
bits de poids fort)
La somme est positive
3. La valeur absolue du nombre négatif est plus grande que le nombre positif :
On effectue une addition binaire classique
La somme est négative et représentée directement dans le système
complément à 2
4. Les deux nombres sont négatifs :
On effectue une addition binaire classique
On ne prend pas en compte la dernière retenue la plus à gauche
Le résultat est négatif et déjà représenté dans le système complément à 2
Exemple : Overflow
01111101
00111010
---------------------
10110111
2. Soustraction
Soustraction
La soustraction est considérée comme un cas particulier de l'addition :
A - B = A + (-B)
-A - B = (-A) + (-B)
Il suffit donc de représenter (-B) en complément à deux et effectuer directement
une addition.
3. Multiplication
Multiplication
Il faut considérer les valeurs absolues des deux nombres puis:
On effectue la multiplication
On décide du signe du résultat :
- si les opérandes sont de mêmes signes : le résultat est positif ;
- si les signes des opérandes sont différents : le résultat est négatif
lorsque le signe du résultat est négatif ; il faut le représenter avec son
complément à 2
4. Division
Division
On considère également les valeurs absolues des deux nombres puis :
1. Initialiser le quotient à zéro.
2. Soustraire le diviseur du dividende (en utilisant l'addition de la dividende
avec le complément à deux du diviseur) pour obtenir le premier reste partiel
;
3. incrémenter le quotient de 1 ;
4. Si le reste partiel est strictement positif aller à l'étape 5 ; Sinon (le reste
partiel est zéro ou négatif) la division est terminée ;
5. Soustraire le diviseur du reste partiel ;
6. incrémenter le quotient de 1. ;
7. Si le résultat est strictement positif, répéter l'opération pour le reste partiel
trouvé ; Sinon la division est terminée.
Si la dividende et le diviseur sont de signes différents il faut prendre le complément
à 2 du quotient.
Lors de calculs arithmétiques sur des nombres au format IEEE, le 1 (un) implicite
avant la virgule est rendu explicite.
1. Arrondi
Type d'arrondi
Il est facile de remarquer qu'avec une opération sur deux nombres flottants, le
résultat est généralement un nombre qui ne peut être exactement représenté
comme un autre nombre flottant. Par exemple, dans un système flottant utilisant la
base 10 6,1 × 0,5= 3,05. Si on veut arrondir cela à deux chiffres. Doit-on arrondir
à 3,0 ou 3,1 ? La norme IEEE arrondit vers le nombre dont le chiffre de poids faible
est pair, i.e. 3,05 est arrondi à 3,0 et non à 3,1. La norme définit quatre modes
d'arrondi :
1. Par défaut, on arrondit au plus proche, qui arrondit vers un nombre pair (Bit
de poids faible ou LSB =0) s'il y a deux valeurs proches;
2. Vers moins l'infini : arrondir à la plus proche valeur la plus petite ;
Comment arrondir
Soit un nombre binairepnpn-1...p1 anan-1...a1
Pour représenter ce nombre sur n bits il faut déterminer son arrondi. Pour cela
notons P=pnpn-1...p1et A= anan-1...a1 . On appelle bit de garde an (g) et bit
d'arrondian-1(r). Le bit persistant noté s est une disjonction logique des bits qui
seront éliminés pour avoir l'arrondi soit an-2...a1. Notons aussi p le bit de poids
faible du résultat. Le tableau suivant définit comment se fait l'arrondi :
Exemple : -5*10
En binaire avec p = 4, montrer comment l'algorithme de multiplication calcule le
produit -5 * 10 pour chacun des quatre modes d'arrondi.
- 5 = -1,010*2 2 et 10 = 1,010*23
La multiplication entière des mantisses (avec le 1 avant la virgule) donne
01,100100 soit P = 01,10, A = 0100, g = 0, r = 1 et s = 0.
Le bit de poids fort de P est 0 ; P devient donc 1,100 et puisque le résultat est
négatif, on aura les arrondis suivants:
vers - infini : 1,101
vers + infini : 1,100
vers 0 : 1,100
au plus proche : 1,100
2. Addition
Addition
On considère toute la mantisse et on suit les étapes suivantes :
1. Ramener les deux nombres au même exposant, le plus grand des deux. Pour
cela on décale les bits de la mantisse du nombre ayant le plus petit exposant
d'autant de bits vers la droite que la différence entre les exposants, sans oublier le
1 avant la virgule ;
2. On ajoute ensuite les deux mantisses, en tenant compte du signe (attention ici
les mantisses ne sont pas exprimées en complément à 2) ;
4. Renormaliser le résultat (arrondi, bit de poids fort, exposant)
Le premier bit écarté est r=1. Un OU des autres bits donne s=1. Il faut alors
arrondir à 1,10101.
Exemple : Soustraction
Considérons maintenant la soustraction par l'exemple suivant :
1,00000
-
0,00000101111
----------------------
La manière la plus simple de calculer cela est de convertir -0,00000101111 sous sa
forme en complément à deux, et la différence devient une somme :
1,00000
+
1,11111010001
----------------------
Le calcul sur 6 bits donne alors
1,00000
+
1,11111
---------------------
0,11111
Parce que le bit de tête est nul, le bit de garde doit être réinjecté dans le bit de
poids faible de la somme, qui devient 0,111110 , et le second bit écarté devient le
bit d'arrondi r=1 et le OU de tous les bits restants (0001) permet d'obtenir le bit
persistant s=1. Le résultat final doit être arrondi à 0,111111.
3. Multiplication
Multiplication
On suit les étapes suivantes :
1. Calculer le bit signe : s1 OUX S2 ;
2. L'exposant est la somme des deux exposants (E) moins une fois l'excédent;
3. Effectuer la multiplication des mantisses comme pour les entiers ;
4. Éventuellement, arrondir, ajuster l'exposant et renormaliser.
4. Division
Division
On suit les étapes suivantes :
1. Calculer le bit signe : s1 OUX S2 ;
2. L'exposant est la différence des deux exposants (plus excédent si E);
3. Effectuer la division des mantisses comme pour les entiers mais en ajoutant
2 bits supplémentaires (bits de garde et d'arrondi). Le reste permet de
définir le bit persistant
4. Éventuellement, arrondir, ajuster l'exposant et renormaliser.
Le résultat après normalisation est 1,010 × 21 et celui après arrondi est: 1,011 × 21