Vous êtes sur la page 1sur 51

Ministère de l’Enseignement Supérieur et République de Côte d’Ivoire

de la Recherche Scientifique Union-Discipline-Travail


--------------------------- ---------------------

Institut Universitaire d’Abidjan

L1 INGENIERIE

ARCHITECTURE DES
ORDINATEURS

Réalisé par Olivier PETEY


Enseignant
Pages
SOMMAIRE………………………………………………………………………………….. 2

PARTIE I : ARCHITECTURE DES SYSTEMES INFORMATIQUES………………. 3


CHAPITRE I : Généralités sur les systèmes informatiques…………………………………… 4
I- Définitions……………………………………………………………………… 4

II- Hardware (Partie Matérielle)………………………………………………………. 8

III- Software (Partie Logicielle)………………………………………………………... 10

CHAPTRE II : Système à processeur et les mémoires…………………………………… 12

I- Traitement des données : Les processeurs………………………………………… 12

II- Stockage d’informations : Les mémoires………………………………………….. 15

III- Transfert de données : les bus…………………………………………………….. 18

IV- Les mémoires de masses…………………………………………………………… 19


V- Représentation de l’information……………………………………………………. 24

PARTIE II : SYSTEME DE NUMERATION……………………………………….. 27

CHAPITRE III : Système de Numération …………………………………………… 28

I- Définitions ……………………………………………………………………...... 28

II- Systèmes de numération ………………………………………………………….. 29

III- Conversions…………………………………………………………………...... 33

CHAPITRE IV : Les opérations binaires………………………………………………… 35

I- Les nombres entiers……………………………………………………………........ 36

II- Les nombres négatifs…………………………………………………………… …. 38


III- Les nombres réels …………………………………………………………………... 42
CHAPITRE V : Les circuits combinatoires………………………………………...….. …. 46

BIBLIOGRAPHIE…………………………………………………………………………. 51

Cours Informatique – Olivier PETEY Enseignant


Page 2
PARTIE I :
ARCHITECTURE DES
SYSTEMES INFORMATIQUES

Cours Informatique – Olivier PETEY Enseignant


Page 3
CHAPITRE 1 : GENERALITES SUR LES SYSTEMES INFORMATIQUES

I- Définitions

1. Historique

Les machines à calculer jouèrent un rôle primordial dans le développement des ordinateurs
pour deux raisons tout à fait indépendantes. D'une part, pour leurs origines, c'est pendant le
développement d'une machine à calculer différentielle que Charles Babbage imagina l’ancêtre
des ordinateurs: une machine à calculer programmée par la lecture de cartes perforées
(identiques à celles du métier à tisser Jacquard) avec mémoires et imprimantes, qui inspirera
le développement des premiers ordinateurs cent ans plus tard (Z3, ABC, ENIAC, SSEM...) et
qui nous amènera aux mainframes des années 1960.

C'est dans les années 1970 et l'invention du premier microprocesseur, l'Intel-4004, qui est à
l'origine de l'explosion de la micro-informatique à partir de 1975. Aujourd'hui un, ou
plusieurs, microprocesseur réside au cœur de tous les microprocesseurs actuels quelles que
soient leurs tailles ou fonctions.

2. Définitions des notions de base

- L’Informatique

L'informatique, contraction d'information et automatique, est la science du traitement automatique et


rationnel de l'information à l’aide d’une machine électronique appelée ordinateur.

Apparue au milieu du 20ème siècle, elle a connu une évolution extrêmement rapide. A sa motivation
initiale qui était de faciliter et d'accélérer le calcul, se sont ajoutées de nombreuses fonctionnalités,
comme l'automatisation, le contrôle et la commande de processus, la communication ou le partage de
l'information.

- Définition de l’Association française de normalisation

C’est l’ensemble des disciplines scientifiques et des techniques spécifiquement applicables au


traitement de l’information effectué notamment par des moyens automatiques.

- Définition de l’académie française

C’est l’ensemble des traitements rationnels, notamment par des moyens automatiques, de
l’information considérée comme le support des connaissances et communications.

En sommes nous pouvons retenir que l’informatique est la science du traitement automatique et
rationnelle de l’information à l’aide d’un appareil électronique appelé ordinateur.

- L’ordinateur

C’est l’outil principal de l’informatique, il se définit comme étant une machine capable d’accepter les
données, de leur appliquer des transformations définies par un programme et de produire des résultats.

Il peut aussi se définir comme machine à traiter l’information par des moyens électroniques à l’aide de
programme enregistré.

Un ordinateur est une machine électronique qui fonctionne par la lecture séquentielle d'un ensemble
d'instructions qui lui font exécuter des opérations logiques et arithmétiques sur des chiffres binaires.

Cours Informatique – Olivier PETEY Enseignant


Page 4
- La donnée

Une donnée est une information codée sous une forme conventionnelle traitable par l’ordinateur.

Pour qu’une information puisse être traitée par un ordinateur, elle doit obéir à certaines règles de
représentation. Cette information ainsi représentée sous une forme conventionnelle constitue une
donnée. Le traitement des données par l’ordinateur peut-être décomposé en six (6) étapes qui sont les
suivants :

- La collecte des données à traiter

- La saisie des données collectées

- Le contrôle des données

- La modification des données saisies,

- La diffusion des résultats

- L’archivage

-Le programme

Un programme est un ensemble d’instructions écrites dans un langage compréhensible par


l’ordinateur.

En effet, un programme est une suite d’instructions élémentaires, qui vont être exécutées dans
l’ordre par le processeur. Ces instructions correspondent à des actions très simples, telles
qu’additionner deux nombres, lire ou écrire une case mémoire, etc. Chaque instruction est codée
(physiquement câblée) en mémoire sur quelques octets. Le processeur est capable d’exécuter des
programmes en langage machine, c’est-à-dire composés d’instructions très élémentaires suivant un
codage précis. Chaque type de processeurs est capable d’exécuter un certain ensemble
d’instructions, son jeu d’instructions.

Pour écrire un programme en langage machine, il faut donc connaître les détails du
fonctionnement du processeur qui va être utilisé. Les langages de programmation utilisés de nos
jours sont très largement plus évolués que le langage machine. Néanmoins ils reposent sur ce
dernier: après compilation ils sont transformés (traduits) en langage machine exécutable par le
processeur.

Cours Informatique – Olivier PETEY Enseignant


Page 5
- Le système Informatique
INFORMATIQUE

MATERIEL (HARDWARE) LOGICIEL (SOFTWARE)

Unité Centrale Périphériques Logiciel Système Logiciel d’application

Périphériques
Mémoire d’entrée
Centrale

Périphériques Progiciel Logiciel sur mesure


de stockage
Unité
arithmétique
et logique Périphériques
de Sortie

Unité de Périphériques de
Bureautique Gestion Industriel Utilitaires et Jeux
Contrôle et de communication et
commande de sécurité
Traitement de Antivirus
Texte et OCR
SGBD

Tableur et Comptabilité Gestionnaires de


graphiques GMAO réseaux et disques

Communication Gestion Multimédia Jeux


traditionnelle
3. Les différents types d’ordinateurs

On distingue plusieurs types d’ordinateurs selon le domaine d’application, la taille, et aussi


l’architecture.

Par domaine d'application

 Les ordinateurs de taille moyenne (midrange) (exemples : IBM AS/400-ISeries,


RS/6000...)
 Ordinateur personnel
 Serveur
 Système embarqué
 Ordinateur de bord

Par taille

 Ordinateur de poche : Assistant personnel, smartphone


 Ordinateur portable : Ultraportable, Tablette PC, Ordinateur portable
 Ordinateur de bureau : Mini PC, ordinateur de bureau, Station de travail
 Ordinateur intermédiaire : mini-ordinateur
 Ordinateur géant : Mainframe, Superordinateur

Par architecture

 Amiga
 Atari ST
 Compatible PC
 Macintosh
 stations SPARC
II- Le Hardware (partie Matérielle)

C’est l’ensemble de la composition matérielle de l’ordinateur (mémoire, carte mère, carte son,
moniteur, etc...). Il se décompose de la manière suivante :

-L’unité centrale

C’est la partie essentielle de l’ordinateur, celle ou sont effectués les traitements sous contrôle du
programme.

Elle est organisée autour d’un microprocesseur et regroupe trois organes principaux :

- La mémoire centrale où sont stockés les programmes et les données en cours de traitement.

- L’unité arithmétique et logique (UAL) chargée d’effectuer les calculs arithmétiques et


logiques :

L’unité arithmétique et logique ou UAL est l’élément qui réalise les opérations
élémentaires (additions, soustractions...), les opérateurs logiques (ET, OU, NI, etc.) et
les opérations de comparaison (par exemple la comparaison d’égalité entre deux zones
de mémoire). C’est l’UAL qui effectue les calculs de l’ordinateur.

- L’unité de contrôle et de commande (UCC) ayant pour rôle la mise œuvre des instructions de
programme :

L’unité de contrôle prend ses instructions dans la mémoire. Celles-ci lui indiquent ce
qu’elle doit ordonner à l’UAL et, comment elle devra éventuellement agir selon les
résultats que celle-ci lui fournira. Une fois l’opération terminée, l’unité de contrôle
passe soit à l’instruction suivante, soit à une autre instruction à laquelle le programme
lui ordonne de se brancher.

L'unité de contrôle facilite la communication entre l'unité arithmétique et logique, la


mémoire ainsi que les périphériques. Elle gère la plupart des exécutions des
instructions dans l'ordinateur.

-Les périphériques

Ce sont des organes extérieurs à l’Unité Centrale permettant de communiquer avec celle-ci.
On distingue :

Les périphériques d’entrée : Ils permettent de faire rentrer des informations dans le système.
Ce sont entre autres le clavier, le scanner, la souris, la webcam, etc ….

Les périphériques de sortie : Ils permettent de faire ressortir des informations du système. Ce
sont l’imprimante, l’écran, les baffes, etc…

Outre ces deux grandes catégories de périphériques on a aussi :

- Les périphériques de stockages : disques durs, clé usb, etc …

Cours Informatique – Olivier PETEY Enseignant


Page 8
- Les périphériques de communications : micro-casque, modem, routeur, etc.

Les périphériques de stockages et les périphériques de communications sont des


périphériques d’entrée-sortie.

- Les interfaces

Ils permettent de relier l’Unité Centrale à tous les périphériques.

L’architecture de von Neumann décomposait l’ordinateur en quatre parties distinctes :

1. l’unité arithmétique et logique (UAL) ou unité de traitement : son rôle est d’effectuer les
opérations de base, un peu comme le ferait une calculatrice ;
2. l’unité de contrôle. C’est l’équivalent des doigts qui actionneraient la calculatrice ;
3. la mémoire qui contient à la fois les données et le programme qui dira à l’unité de contrôle
quels calculs faire sur ces données. La mémoire se divise entre mémoire vive (programmes et
données en cours de fonctionnement) et mémoire permanente (programmes et données de base
de la machine) ;
4. les entrées-sorties : dispositifs qui permettent de communiquer avec le monde extérieur.

Photographie d’une carte mère

Schéma : Exemple de Hardware

Cours Informatique – Olivier PETEY Enseignant


Page 9
III- Le Software (partie Logicielle)

C’est l’ensemble des programmes (logiciels) et toutes autres données contenues dans les mémoires de
l’ordinateur (répertoire, fichiers).

Un fichier peut être considéré comme le support de l’information (à l’instar d’une feuille de papier
pour l’écriture).

Un répertoire c’est un emplacement qui peut contenir des fichiers.

Un logiciel est un ensemble d'informations relatives à un traitement automatisé. Le logiciel


peut être composé d'instructions et de données. Les instructions mettent en application les
algorithmes en rapport avec le traitement d'information voulu. Les données incluses dans un
logiciel sont les informations relatives à ce traitement ou exigées par lui (valeurs clés, textes,
images, etc.).

Le logiciel peut prendre une forme exécutable (c'est-à-dire directement compréhensible par le
micro-processeur) ou source, c'est-à-dire dont la représentation est composée d'une suite
d'instructions directement compréhensible par un individu. Ainsi donc, on peut considérer le
logiciel comme une abstraction qui peut prendre une multitude de formes: il peut être imprimé
sur du papier, conservé sous forme d'un fichier fichiers informatiques ou encore stocké dans
une mémoire (une disquette, une clé USB).

Un logiciel applicatif, le type de logiciel le plus courant, aussi appelé application informatique : un
logiciel dont les automatismes sont destinés à assister un utilisateur dans une de ses activités.

Un logiciel système (ou logiciel de base). C'est un logiciel dont les automatismes contrôlent
l'utilisation du matériel informatique par les logiciels applicatifs. Les automatismes du logiciel
système sont indépendants de l'activité pour laquelle l'appareil est utilisé.

Le système d'exploitation sert d'interface entre le matériel et les logiciels applicatifs. C'est l'ensemble
de logiciels système central qui contrôle l'utilisation de l'appareil informatique par les autres logiciels.

Cours Informatique – Olivier PETEY Enseignant


Page 10
Un logiciel est composé d'un ou plusieurs fichiers tels que des programmes, des scripts, des
bibliothèques logicielles, des fichiers de configuration, des fichiers de données, des
documents électroniques ou du code source.

Le logiciel peut être une application informatique complète, ou une pièce détachée telle qu'un
composant logiciel ou un plugin.

Les programmes, les scripts et les bibliothèques logicielles contiennent des suites
d'instructions en groupes appelés fonctions ou procédures. Dans une bibliothèque logicielle
chaque fonction ou procédure peut être exécutée séparément, tandis que dans un programme
ou un script l'exécution de l'instruction de départ provoque l'exécution en chaine de toutes les
autres instructions. L'exécution des instructions est rarement linéaire.

Dans un script, les instructions sont écrites sous une forme facile à lire pour un humain, et
exécutable par l'appareil informatique par l'intermédiaire d'un logiciel appelé interprète ou
interpréteur. Dans un fichier de code source les instructions sont écrites sous une forme facile
à lire pour un humain, un logiciel appelé compilateur le transformera en code machine -
exécutable par l'appareil informatique, ou en bytecode - facile à lire pour un logiciel
émulateur .

Cours Informatique – Olivier PETEY Enseignant


Page 11
CHAPITRE II : SYSTEME A PROCESSEUR ET LES MEMOIRES

I- Traitement des données : les processeurs

Le processeur, (ou CPU, Central Processing Unit,“ Unité centrale de Traitement ”en français) est le
composant essentiel d’un ordinateur qui interprète les instructions et traite les données d’un
programme.

Le processeur est un circuit électronique complexe (circuit intégré) qui exécute chaque instruction très
rapidement, en quelques cycles d’horloges. Toute l’activité de l’ordinateur est cadencée par une
horloge unique, de façon à ce que tous les circuits électroniques travaillent tous ensemble de façon
synchronisée. La fréquence de cette horloge s’exprime en MHz (millions de cyles par seconde) ou
GHz (milliards de cycles par secondes). Par exemple, un processeur “Intel Core 2 Duo P8400 ”
possède une horloge cadencée à 2,26GHz.

1- Principe de fonctionnement du processeur

Pour chaque instruction, le processeur effectue schématiquement les Opérations suivantes:

1- lire dans la mémoire principale l’instruction à exécuter;

2- effectuer le traitement correspondant à cette instruction;

3- passer à l’instruction suivante.

2- Caractéristiques d’un processeur

Un processeur est défini par:

1- la largeur de ses registres internes de manipulation de données (8, 16, 32, 64, 128bits);

2- la cadence de son horloge exprimée en MHz ou GHz;

3- le nombre de noyaux de calcul (core);

4- son jeu d’instructions (ISA en anglais, Instructions Set Architecture) dépendant de la famille
(CISC, RISC, etc);

5- sa finesse de gravure exprimée en nm (nanomètres, 10 9 mètres, Soit un milliardième de


mètre).

Ce qui caractérise principalement un processeur est la famille à laquelle, il appartient:

- CISC (Complex Instruction Set Computer ): choix d’instructions aussi proches que possible
d’un langage de haut niveau;

- RISC (Reduced Instruction Set Computer): choix d’instructions plus simples et d’une
structure permettant une exécution très rapide ;

- VLIW (Very Long Instruction Word);

- DSP (Digital Signal Processor). Même si cette dernière famille (DSP) est relativement
spécifique.

En effet un processeur est un composant programmable et est donc apriori capable de réaliser tout type
de programmes. Les DSP sont des processeurs Spécialisés pour les calculs liés au traitement de
signaux.

Cours Informatique – Olivier PETEY Enseignant


Page 12
3- Structure d’un processeur

Les parties essentielles d’un processeur sont:

- l’unité de contrôle est responsable de la lecture en mémoire Principale et du décodage des


instructions. L’unité de contrôle ou séquenceur permet de synchroniser Les différents
éléments du processeur. En particulier, il initialise Les registres lors du démarrage de la
machine et il gère les interruptions;

- l’unité de traitement, aussi appelée Unité Arithmétique et Logique (U.A.L.), exécute les
instructions qui manipulent les données. L’Unité Arithmétique et Logique (en anglais
Arithmetic And Logical Unit-ALU) prend en charge les calculs arithmétiques élémentaires et
les tests;

Schéma simplifié du processeur

- Les registres, qui sont des mémoires de petite taille (quelques octets), suffisamment rapides
pour que l’UAL puisse manipuler leur contenu à chaque cycle de l’horloge. Un certain nombre
de registres sont commun à la plupart des processeurs.

Remarque :

L’unité de traitement et l’unité de contrôle sont associées à des registres chargées de stocker
les différentes informations à traiter.

Il existe deux types de registres :

Les registres d'usage général permettent à l'unité de traitement de manipuler des données à
vitesse élevée. Ils sont connectés au bus de données interne au microprocesseur.

Les registres d'adresses (pointeurs) connectés sur le bus adresses.

Cours Informatique – Olivier PETEY Enseignant


Page 13
Schéma Fonctionnel du processeur

Ces deux unités (traitement et contrôle) communiquent avec la mémoire principale, la première pour
lire les instructions, la seconde pour recevoir/ transmettre des données binaires, mais ils
communiquent également avec les différents périphériques (clavier, souris, écran, etc.).

Le processeur est parfois appelé CPU ( de l’anglais “ Central Processing Unit ” ) ou encore MPU
(Micro-Processing Unit )pour les microprocesseurs. Un microprocesseur n’est rien d’autre qu’un
processeur dont tous les constituants sont réunis sur la même puce électronique (pastille de silicium),
afin de réduire les coûts de fabrication et d’augmenter la vitesse de traitement. Les micro-ordinateurs
(ordinateurs personnels) sont tous équipés de microprocesseurs. L’architecture de base des processeurs
équipant les gros ordinateurs est la même que celle des microprocesseurs.

4- Opérations du processeur

Le rôle fondamental de la plupart des unités centrales de traitement, indépendamment de la forme


physique qu’elles prennent, est d’exécuter une série d’instructions stockées appelées “programme”.
Les instructions et les données transmises au processeur sont exprimées en mots binaires (code
machine). Elles sont stockées dans la mémoire. Le séquenceur ordonne la lecture du contenu de la
mémoire et la constitution des mots présentés à l’UAL qui les interprète. L’ensemble des instructions
et des données constitue un programme. Le langage le plus proche du code machine tout en restant
lisible par des humains est le langage d’assemblage, aussi appelé langage assembleur (forme francisée
du mot anglais “ assembler ”). Toutefois, l’informatique a développé toute une série de langages, dits
de haut niveau (comme le BASIC, Pascal, C, C++), destinés à simplifier l’écriture des programmes.
Les opérations décrites ici sont conformes à l’architecture de Von Neumann.

Le programme est représenté par une série d’instructions qui réalisent des opérations en liaison avec la
mémoire vive de l’ordinateur. Il y a quatre étapes lors du traitement des instructions:

1- FETCH : Recherche de l’instruction;

2- DECODE : Décodage de l’instruction;

3- EXECUTE : Exécution des opérations;

4- WRITEBACK : Écriture du résultats.

Cours Informatique – Olivier PETEY Enseignant


Page 14
FETCH

La première étape, FETCH (recherche), consiste à rechercher une instruction dans la mémoire vive de
l’ordinateur. L’emplacement dans la mémoire est déterminé par le compteur de programme, qui stocke
l’adresse de la prochaine instruction dans la mémoire de programme.

Après qu’une instruction a été recherchée, le compteur de programme est incrémenté par la longueur
du mot d’instruction. L’instruction que le processeur recherche en mémoire est utilisée pour
déterminer ce que le CPU doit faire.

DECODE

Dans l’étape DECODE (décodage), l’instruction est découpée en plusieurs parties telles qu’elles
puissent être utilisées par d’autres parties du processeur. La façon dont la valeur de l’instruction est
Interprétée est définie par le jeu d’instructions du processeur. Souvent, une partie d’une instruction,
appelée op code (code d’opération), indique quelle opération est à faire, par exemple une addition. Les
parties restantes de l’instruction comportent habituellement les autres informations nécessaires à
l’exécution de l’instruction comme par exemple des valeurs pour l’addition.

EXECUTE

Après les étapes de recherche et de décodage arrive l’étape EXECUTE (exécution) de l’instruction. Au
cours de cette étape, différentes parties du processeur sont mises en relation pour réaliser l’opération
souhaitée. Par exemple, pour une addition, l’unité arithmétique et logique(UAL) sera connectée à des
entrées et des sorties. Les entrées présentent les nombres à additionner et les sorties contiennent la
somme finale. L’UAL contient le circuit électronique pour réaliser des opérations d’arithmétique et de
logique simples sur les entrées (addition, opération sur les bits). Si le résultat d’une addition est trop
grand pour être codé par le processeur, un signal de débordement est positionné dans un registre d’état.

WRITEBACK

La dernière étape WRITE BACK ( écriture du résultat), écrit tout simplement les résultats de l’étape
d’exécution en mémoire. Très souvent, les résultats sont écrits dans un registre interne au processeur
pour bénéficier de temps d’accès très courts pour les instructions suivantes. Dans d’autres cas, les
résultats sont écrits plus lentement dans des mémoires RAM, donc à moindre coût et acceptant des
codages de nombres plus grands.

II- Stockage des informations : les mémoires

La mémoire est divisée en emplacements (des cases mémoires contiguës) de taille fixe (par exemple
huit bits) utilisés pour stocker instructions et données. En principe, la taille d’un emplacement
mémoire pourrait être quelconque; en fait, la plupart des ordinateurs en service aujourd’hui utilisent
des emplacements mémoire d’un octet (“byte” en anglais, soit huit bits, unité pratique pour coder un
Caractère par exemple).

1- Adresse mémoire

Cours Informatique – Olivier PETEY Enseignant


Page 15
Dans une mémoire de taille N, on a N emplacements mémoires, Numérotés (ou adressés) de 0 à N - 1.
Chaque emplacement est repéré par un numéro unique, appelé adresse. L’adresse est le plus souvent
écrite en hexadécimal.

2- Opérations sur la mémoire

Seul le processeur peut modifier l’état de la mémoire. Chaque emplacement mémoire conserve les
informations que le processeur y ecrit jusqu’à coupure de l’alimentation électrique, où tout le contenu
est perdu (contrairement au contenu des mémoires externes comme Les disquettes et disques durs). On
parle de mémoire vive. Les seules opérations possibles sur la mémoire sont:

- écriture d’un emplacement: le processeur donne une valeur et une adresse, et la mémoire
range la valeur à l’emplacement indiqué par l’adresse;

- lecture d’un emplacement : le processeur demande à la mémoire la valeur contenue à


l’emplacement dont il indique l’adresse. Le contenu de l’emplacement auquel le processeur
accède en lecture demeure inchangé.

3- Caractéristiques d’une mémoire

- La capacité : nombre total de bits que contient la mémoire. Elle s’exprime aussi souvent en
octet;

- Le format des données : nombre de bits que l’on peut mémoriser par case mémoire. On parle
de la largeur du mot mémorisable;

- Le temps d’accès : temps qui s’écoule entre l’instant où a été lancée une opération de
lecture/écriture en mémoire et l’instant où la première information est disponible sur le bus de
données;

- Le temps de cycle : il représente l’intervalle minimum qui doit séparer deux demandes
successives de lecture ou d’écriture;

- Le débit : nombre maximum d’informations lues ou écrites par seconde;

- La volatilité : elle caractérise la permanence des informations dans la mémoire. L’information


stockée est volatile si elle risque d’être altérée par un défaut d’alimentation électrique et non
volatile dans le cas contraire.

4- RAM

Nous savons qu’il existe deux types distincts de mémoire : les mémoires vives et les mémoires mortes.
Une mémoire vive sert au stockage temporaire de données. Elle doit avoir un temps de cycle très court
pour ne pas ralentir le microprocesseur. Les mémoires vives sont en général volatiles : elles perdent
leurs informations en cas de coupure d’alimentation. (Certaines d’entre elles, ayant une faible
consommation, peuvent être rendues non volatiles par l’adjonction d’une batterie.) Il existe deux
grandes familles de mémoires RAM (Random Acces Memory: Mémoire à accès aléatoire):

- Les RAM statiques;

- Les RAM dynamiques.

RAM statique

Le bit mémoire d’une RAM statique (SRAM) est composé d’une bascule (composant électronique
élémentaire).Chaque bascule contient entre quatre et six transistors.

RAM dynamique

Cours Informatique – Olivier PETEY Enseignant


Page 16
Dans les RAM dynamiques (DRAM), l’information est mémorisée sous la forme d’une charge
électrique stockée dans un condensateur.

Avantages: Cette technique permet une plus grande densité d’intégration, car un point mémoire
nécessite environ quatre fois moins de transistors que dans une mémoire statique. Sa consommation
s’en retrouve donc aussi très réduite;

Inconvénient: La présence de courants de fuite dans le condensateur contribue à sa décharge. Ainsi,


l’information est perdue si on ne la régénère pas périodiquement (charge du condensateur). Les RAM
dynamiques doivent donc être rafraîchies régulièrement pour entre tenir la mémorisation: il s’agit de
lire l’information et de la recharger.

5- ROM

Pour certaines applications, il est nécessaire de pouvoir conserver des informations de façon
permanente même lorsque l’alimentation electrique est interrompue. On utilise alors des mémoires
mortes ou Mémoires à lecture seule (ROM: Read Only Memory). Ces mémoires sont non volatiles.
Ces mémoires, contrairement aux RAM, ne peuvent être que lue. L’inscription en mémoire des
données reste possible mais est appelée programmation. Suivant le type de ROM, la Méthode de
programmation changera. Il existe donc plusieurs types de ROM:

ROM; PROM; EPROM; EEPROM; FLASHEPROM.

6- Types de registres

Compteur de programme : ce registre contient l’adresse mémoire de l’instruction en cours


d’exécution;

Accumulateur : ce registre est utilisé pour stocker les données en cours de traitement par l’UAL;

Registre d’adresses : il contient toujours l’adresse de la prochaine information à lire par l’UAL: soit
la suite de l’instruction en cours, soit la prochaine instruction;

Registre d’instructions : il contient l’instruction en cours de traitement;

Registre d’état : il sert à stocker le contexte du processeur, ce qui veut dire que les différents bits de
ce registre sont des “ drapeaux ”(flags) servant à stocker des informations concernant le résultat de la
dernière instruction exécutée.

Pointeurs de pile : ce type de registre, dont le nombre varie en fonction du type de processeur,
contient l’adresse du sommet de La pile(ou des piles);

Registres généraux : ces registres sont disponibles pour les calculs;

L’horloge qui synchronise toutes les actions de l’unité centrale;

L’unité d’entrée-sortie, qui prend en charge la communication avec la mémoire de l’ordinateur,


permettant au processeur d’accéder aux périphériques de l’ordinateur.

Cours Informatique – Olivier PETEY Enseignant


Page 17
Schéma : Hiérarchie des mémoires

Type de mémoire au niveau de la mémoire centrale

III- Transfert des informations : les bus

Un bus est un ensemble de fils qui assure la transmission du même type d’information. On retrouve
trois types de bus véhiculant des informations en parallèle dans un système de traitement programmé
de l’information :

- un bus de données : bidirectionnel qui assure le transfert des informations entre le


microprocesseur et son environnement, et inversement. Son nombre de lignes est égal à la
capacité de traitement du microprocesseur.

- un bus d'adresses: unidirectionnel qui permet la sélection des informations à traiter dans un
espace mémoire (ou espace adressable) qui peut avoir 2n emplacements, avec n = nombre de
conducteurs du bus d'adresses.

- un bus de commande: constitué par quelques conducteurs qui assurent la synchronisation


des flux d'informations sur les bus des données et des adresses.

Décodage d’adresses

La multiplication des périphériques autour du microprocesseur oblige la présence d’un décodeur


d’adresse chargé d’aiguiller les données présentes sur le bus de données. En effet, le microprocesseur
peut communiquer avec les différentes mémoires et les différents boîtiers d’interface. Ceux-ci sont
tous reliés sur le même bus de données et afin d’éviter des conflits, un seul composant doit être
sélectionné à la fois.

Cours Informatique – Olivier PETEY Enseignant


Page 18
Lorsqu’on réalise un système microprogrammé, on attribue donc à chaque périphérique une zone
d’adresse et une fonction « décodage d’adresse » est donc nécessaire afin de fournir les signaux de
sélection de chacun des composants.

Liaisons processeur-mémoire:

Les informations échangées entre la mémoire et le processeur circulent sur des bus .Un bus est
simplement un ensemble de n fils conducteurs, utilisés pour transporter n signaux binaires. Le bus
d’adresse est un bus unidirectionnel : seul le processeur envoie des adresses. Il est composé de n fils;
on utilise donc des adresses de n bits. La mémoire peut posséder au maximum 2n emplacements
(adresses 0 à 2n 1). Le bus de données est un bus bidirectionnel. Lors d’une lecture, c’est la mémoire
qui envoie un mot sur le bus (le contenu de l’emplacement demandé); lors d’une écriture, c’est le
processeur qui envoie la donnée.

Remarque : lorsqu’un composant n’est pas sélectionné, ses sorties sont mises à l’état « haute
impédance » afin de ne pas perturber les données circulant sur le bus. ( elle présente une impédance de
sortie très élevée = circuit ouvert ).

IV- Les Mémoires de masse

Mémoire de masse : on les appelle ainsi pour leur grande capacité de stockage permanent. Ces
périphériques sont dotés d’un contrôleur permettant de les faire dialoguer avec le microprocesseur.
Actuellement, les plus répandus sont l’IDE et le SCSI. Le SCSI présente des débits plus importants
que l’IDE (160Mo/s contre 133Mo/s) et permet de connecter plus de périphériques sur le même
contrôleur (7 contre 4). Néanmoins, cette technologie étant plus onéreuse, on la retrouve surtout sur
des serveurs alors que l’IDE est présent dans tous les PC. A l’heure actuelle, ces deux types de
contrôleur sont en fin de vie et sont progressivement remplacés par des contrôleur de type Serial ATA.
Ce sont des contrôleurs série dérivés de l’interface IDE qui vont permettent d’atteindre des débits de
600 Mo/s.
Les périphériques internes de stockage sont principalement des périphériques utilisant des
supports magnétiques (disque dur) ou optiques (CDROM, DVDROM).

1- Le disque dur
Les disques durs sont capables de stocker des quantités impressionnantes d'informations, et surtout de
les ordonner et de les retrouver rapidement.

Principe :

Le disque dur est constitué de plusieurs plateaux empilés, entre lesquels se déplace un bras comptant
plusieurs têtes de lecture. Chaque plateau est recouvert d'une surface magnétique sur ses deux faces et

Cours Informatique – Olivier PETEY Enseignant


Page 19
tourne à une vitesse comprise entre 4000 et 15000 tr/min. La tête de lecture/écriture est composée par
un aimant autour duquel est enroulée une bobine.
Pour écrire, on fait passer un courant électrique dans la bobine ce qui crée un champ magnétique. Les
lignes de champ magnétique traversent la couche d'oxyde et orientent celui-ci en créant de petits
aimants dont le sens est donné par le sens du courant dans la bobine.
Pour lire, on fait passer la tête de lecture/écriture sur le support magnétisé qui crée un courant
induit dans la bobine dont le sens indique s'il s'agit d'un 0 ou d'un 1.

Le formatage :

Le formatage de bas niveau permet d'organiser la surface du disque en éléments simples (pistes et
secteurs) qui permettront de localiser l'information. Le nombre total de pistes dépend du type de
disque. Il est effectué en usine lors de la fabrication du disque. Chaque piste est découpée en secteurs.
Toutefois l'unité d'occupation d'un disque n'est pas le secteur, trop petit pour que le système puisse en
tenir compte. On utilise alors un groupe d'un certain nombre de secteurs (de 1 à 16) comme unité de
base. Ce groupe est appelé Bloc ou Cluster. C'est la taille minimale que peut occuper un fichier sur le
disque. Pour accéder à un secteur donné, il faudra donc déplacer l'ensemble des bras et attendre ensuite
que ce secteur se positionne sous les têtes. L’accès à un bloc est aléatoire alors que l’accès à un
secteur est séquentiel.

Une autre unité de lecture/écriture est le cylindre. Un cylindre est constitué par toutes les pistes
superposées verticalement qui se présentent simultanément sous les têtes de lecture/écriture. En effet,
il est plus simple d'écrire sur les mêmes pistes des plateaux superposés que de déplacer à nouveau
l'ensemble des bras.

Le formatage de haut niveau permet de créer un système de fichiers gérable par un système
d'exploitation (DOS, Windows, Linux, OS/2, etc ...).

La défragmentation : A mesure que l'on stocke et supprime des fichiers, la répartition des fichiers sur
les différents clusters est modifiée. L'idéal, pour accéder rapidement à un fichier, serait de pouvoir
stocker un fichier sur des clusters contigus sur le même cylindre. La défragmentation permet de
réorganiser le stockage des fichiers dans les clusters pour optimiser la lecture.

Cours Informatique – Olivier PETEY Enseignant


Page 20
Les caractéristiques sont : capacité en Go , vitesse de rotation en tours minutes , temps d'accès
exprimé en millisecondes interface (IDE, SCSI, SATA) , taux de transfert moyen exprimé en Mo
par seconde.

A noter que les disques durs actuels sont équipés de cache mémoire afin de diminuer les temps
d’accès.

2- Les disques optiques

Le disque optique numérique résulte du travail mené par de nombreux constructeurs depuis 1970. La
terminologie employée varie selon les technologies employées et l’on retrouve ainsi les abréviations
de CD (Compact Disk), CDROM (CD Read Only Memory), CDR, (CD Recordable), DVD (Digital
Video Disk), DVDROM (DVD Read Only Memory), etc… Le Compact Disc a été inventé par Sony et
Philips en 1981 dans le but de fournir un support audio et vidéo de haute qualité.

Principe CD-ROM:

Un CD-ROM est un disque de 12 cm de diamètre composé de plusieurs couches superposées : une


couche principale en polycarbonate, un plastique résistant et laissant passer la lumière une couche
métallique réfléchissante composée de plats et de creux une couche de vernis protecteur qui vient
protéger le métal de l'agression des UV .

Plusieurs technologies différentes existent en fonction du type de CD : CD-ROM, CD-R, CD-RW. Le


principe de lecture/écriture utilise un rayon infrarouge d'une longueur d'onde de 780 nm. Lors de la
lecture d'un CD, le faisceau laser traverse la couche de polycarbonate puis rencontre ou non un creux.
Lors d’un passage devant un creux, la lumière du laser est fortement réfractée, de telle sorte que la
quantité de lumière renvoyée par la couche réfléchissante est minime. Alors que pour un passage
devant un plat, la lumière est pratiquement entièrement réfléchie. Lorsque le signal réfléchi change, la
valeur binaire est 1. Lorsque la réflexion est constante, la valeur est 0. A noter que contrairement aux
disques durs, un CD n'a qu'une seule piste organisée en spirale.

Cette piste n’est pas régulière mais oscille autour de sa courbe moyenne. La fréquence de ces
oscillations est de 22,05 kHz. Cette oscillation permet à la tête de lecture de suivre la courbe et de
réguler la vitesse de rotation du CD.

Cours Informatique – Olivier PETEY Enseignant


Page 21
Pour l’écriture, il faut utiliser un graveur avec des supports adéquates (CD-R ou CD-RW). Les
techniques sont assez similaires qu'il s'agisse d'un CD-R ou d'un CD-RW. Dans le cas d'un CR-R, on
ajoute une couche de colorant organique pouvant être brûlé par un laser 10 fois plus puissant que le
laser requit pour lire un CD. Cette couche de colorant est photosensible. Lorsqu'elle est soumise à une
forte lumière, elle l'absorbe et sa température augmente à plus de 250°, ce qui fait qu'elle brûle
localement, et crée des plages brûlées et non brûlées. Les creux et bosses du CD classique sont donc
ici remplacés par le passage d'une zone brûlée à une zone non brûlée qui réfléchisse plus ou moins de
lumière. Pour les CD-RW, on utilise un alliage métallique qui possède la particularité de pouvoir
retrouver son état d’origine en utilisant un laser à 200 degrés (effacement).

Principe DVDROM :

Le DVD-ROM (Digital Versatile Disc - Read Only Memory) est apparu en 1997 et est
principalement dédié à la vidéo. C’est en fait un CD-ROM dont la capacité est bien plus grande. En
effet, la lecture/écriture est effectuée à partir d’un laser rouge (650 et 635 nm) et permet d’obtenir

des creux beaucoup plus petits et donc de stocker plus d’informations. Les deux longueurs d’ondes
utilisées permettent de lire/écrire sur des DVD "double couche". Ces disques sont constitués d'une
couche transparente et d'une couche réflexive et permettent donc de stocker encore plus
d’informations sur un seul CD.

Il existe 3 types de DVD réinscriptibles et incompatibles :

DVD-RAM : le disque simple face permet de stocker 2.6 Go. Il n’est pas compatible avec les lecteurs
de salon.

DVD-RW de Sony, Philips et HP permet de stocker 4.7Go par face. Il est entièrement compatible
avec les platines de salon.

DVD+RW est le nouveau standard concurrent au DVD-RW. Il est entièrement compatible avec les
platines de salon. Plusieurs marques ont formé une alliance et développent des graveurs DVD
présentant des temps d’accès plus faible et des vitesses de gravure plus importante.

Cours Informatique – Olivier PETEY Enseignant


Page 22
3- La disquette

Une disquette est un support de stockage de données informatiques amovible. La disquette


est aussi appelée disque souple (floppy disk en anglais) en raison de la souplesse de son
support et par opposition au disque dur.

Une disquette est composée d'un fin disque de plastique souple renforcé en son centre sur
lequel est apposé un substrat magnétique. Ce disque est enveloppé d'une coque de protection
en matière plastique comprenant une couche interne de ouatinage améliorant la rotation du
disque et son nettoyage et une couche externe rigide ou semi-rigide. Cette dernière couche
comprenant des dispositifs physiques à destination du lecteur permettant notamment la
protection contre l'écriture et des détrompeurs divers. Les formats de disquettes les plus
courants sont des dimensions de 8 pouces, 5,25 pouces et 3,5 pouces (1 pouce vaut 2,54 cm) ;
la dimension correspondant au diamètre du disque magnétique.

Disquette 3,5 pouces standard Lecteur de disquettes 3,5 pouces


4- Les clés USB et les cartes mémoires

Les Clé USB et les cartes mémoires sont aussi des mémoires de masse.

Schéma de carte mère présentant différents composants

Cours Informatique – Olivier PETEY Enseignant


Page 23
Carte mère

V- Représentation de l’information

Une information se définit comme suit : tout renseignement, tout fait, toute donnée
susceptible d’améliorer notre connaissance sur un sujet donné.
La représentation des données par un ordinateur consiste à associer chaque type d'information un
certain nombre d'octets. Pour un type d'information donnée, le domaine des valeurs possibles dépendra
bien entendu du nombre d'octets choisi pour sa représentation, mais également de l'utilisation faite de
cette suite d'octets.

Les informations traitées par un ordinateur peuvent être de différents types (texte, nombres, etc.) mais
elles sont toujours représentées et manipulées par l’ordinateur sous forme binaire. Toute information
sera traitée comme une suite de 0 et de 1. L’unité d’information est le chiffre binaire (0 ou 1), que l’on
appelle bit (pour binary digit, chiffre binaire). Le codage d’une information consiste à établir une
correspondance entre la représentation externe (habituelle) de l’information (le caractère A ou le
nombre 36 par exemple),et sa représentation interne dans la machine, qui est une suite de bits.

On utilise la représentation binaire car elle est simple, facile à réaliser techniquement à l’aide de
bistables (système à deux états réalisés à l’aide de transistors,

Notion de données

C’est une information codée sous forme conventionnelle traitable par l’ordinateur.

Dans les technologies de l'information, une donnée est une description élémentaire, souvent
codée, d'une réalité (chose, transaction, événement, etc.)

Le processus d'enregistrement des données dans une mémoire s'appelle la mémorisation.

Cours Informatique – Olivier PETEY Enseignant


Page 24
1- Structuration des données

On peut distinguer grosso modo les données selon :

 leur caractère structuré ou non :


o une base de données orientée objet est un ensemble de données structurées.
o les documents, images, sons, ne sont pas a priori structurés du point de vue du
système d'information (ils ont leur structure propre).
 leur place dans la hiérarchie ; on peut trouver :
o des données élémentaires : bits, propriétés d'entités (objets ou relations),
o des métadonnées.

La structuration des données joue un rôle clé dans la sécurité informatique, notamment dans la
gestion des certificats électroniques. Les principales données impliquées dans les certificats
sont les critères communs et les tiers de confiance.

2- Notion de fichier

En informatique, un fichier est une suite de données structurée (souvent sous la forme d'une liste
d'enregistrements suivant un même format), portant un nom et codé sur un support. Un système de
fichiers est la manière dont un ensemble de fichiers informatiques sont regroupés et rangés dans une
partition d'un support. Le système de fichiers se présente généralement comme une structure
arborescente de répertoires (ou dossiers) dont l'origine est appelée racine. Il est créé par une opération
de formatage du support.

3- Unité de mesure

Les unités de mesure suivantes sont utilisées en informatique pour quantifier la taille de la
mémoire d'un ordinateur, l'espace utilisable sur un disque dur, la taille d'un fichier, d'un
répertoire ou autre.
L’octet (symbole "o") est une unité de mesure en informatique indiquant une quantité de
données.

Nom Symbole Valeur

1 kilooctet 1 ko 210 octets = 1 024 octets

1 mégaoctet 1 Mo 220 octets = 1 024 Ko = 1 048 576 octets

1 gigaoctet 1 Go 230 octets = 1 024 Mo = 1 073 741 824 octets

1 téraoctet 1 To 240 octets = 1 024 Go = 1 099 511 627 776 octets

1 pétaoctet 1 Po 250 octets = 1 024 To = 1 125 899 906 842 624 octets

1 exaoctet 1 Eo 260 octets = 1 024 Po = 1 152 921 504 606 846 976 octets

1 zettaoctet 1 Zo 270 octets = 1 024 Eo = 1 180 591 620 717 411 303 424 octets

1 yottaoctet 1 Yo 280 octets = 1 024 Zo = 1 208 925 819 614 629 174 706 176 octets

Cours Informatique – Olivier PETEY Enseignant


Page 25
Bit : unité de mesure de base, son symbole est b ou bit. Le bit (anglais binary digit, « chiffre
binaire ») représente la plus petite unité de mémoire utilisable sur un ordinateur. Cette
mémoire ne peut prendre que deux valeurs, la plupart du temps interprétées comme 0 ou 1.
Les autres unités de mesure ne correspondent qu'à des regroupements de bits.
byte : l'unité d'allocation la plus petite qu'on puisse adresser, en général, sur une architecture
ou un compilateur. Sur la majorité des architectures sa taille est de un octet.

1 Byte = 8 bits = 1 caractère = 1 Octet

Cours Informatique – Olivier PETEY Enseignant


Page 26
PARTIE II:
SYSTEME DE NUMERATION

Cours Informatique – Olivier PETEY Enseignant


Page 27
CHAPITRE III : SYSTEME DE NUMERATION

I- Définitions

1- Nombres et codes

Nous manipulons tous les jours des nombres et des codes. Par exemple, les quantités sont exprimées
avec des nombres et la monnaie est une occasion fréquente de manipuler des nombres. Par contre, le
code secret d’une carte bancaire est fait de chiffres, mais ce n’est pas un nombre : c’est un code. Un
numéro de téléphone est aussi un code (pas un nombre), ainsi que le numéro de sécurité sociale. Dans
tous ces exemples, les chiffres sont à la base de l’expression des nombres ou des codes. Nous
acceptons assez naturellement l’usage des chiffres pour exprimer des choses de nature finalement
assez différentes (des nombres ou des codes). Les chiffres utilisés sont ceux de la base dix (0,1,
2,…8,9). Dans les ordinateurs, et plus particulièrement en électronique numérique, il se passe la même
chose ; on utilise les chiffres pour représenter des nombres et des codes ; la seule différence est qu’il
s’agit des chiffres de la base deux (0 et 1).

- Qu’est-ce qu’un code ?

Pour la carte bancaire, c’est un groupement de quatre chiffres (de la base dix). Pour le numéro de
téléphone, c’est un groupement de dix chiffres. Pour le numéro de sécurité sociale, on dispose de 13
chiffres.

Les chiffres composant le code sont ordonnés. Le nombre de chiffres est constant. Mais attention,
n’importe quel groupement de quatre chiffres ne donne pas un code valide pour une carte bancaire. Le
code est fabriqué en respectant une technique particulière.

Par exemple, le numéro de S.S. est composé de plusieurs codes ou nombres ayant une signification
particulière : code du sexe, année et mois de naissance, codes du département et du lieu de naissance,
numéro d’ordre de naissance. De même, les deux premiers chiffres d’un numéro de téléphone
correspondent à la zone géographique du correspondant ou au service.

On peut donc conclure que le code est une représentation signifiant quelque chose.

- Un code est la représentation d’une signification

La relation entre le code et le sens qui lui est attribué est l’affaire d’une convention. Quand on connaît
la convention de codage, il est possible de procéder à un décodage ou plus simplement vérifier au
moins si le code est valide. On sait par exemple que le numéro de téléphone 14.33.22.01.45 n’est pas
valide (les deux premiers chiffres ‘14’ ne correspondent à aucun code de zone ou de service valide).

En électronique numérique, on utilise beaucoup de codes. Chaque système, chaque constructeur (de
composant ou de matériel), chaque organisme de normalisation, etc. invente un ou plusieurs codages.
La seule chose à retenir, c’est qu’il faut avoir en sa possession les conventions de codage. Par
exemple, pour comprendre le langage de programmation d’un microprocesseur, il faut avoir à sa
disposition le manuel décrivant le jeu des instructions de ce composant.

- Qu’est-ce qu’un nombre ?

Un nombre représente une valeur. Notre culture est telle que la manipulation des nombres est quasi
naturelle.

Un nombre est la représentation d’une valeur La valeur est représentée au moyen de chiffres écrits de
façon ordonnée. La différence par rapport au code est que chaque chiffre composant le nombre est
porteur d’une valeur. Par exemple, le nombre 421 est composé du chiffre 4 qui représente la valeur
400, du chiffre 2 qui représente la valeur 20 et du chiffre 1 qui représente la valeur 1.

Cours Informatique – Olivier PETEY Enseignant


Page 28
La convention qui permet d’attribuer une valeur à un chiffre s’appelle la pondération. Le 4 est pondéré
par la valeur 100, le 2 par la valeur 10 et le 1 par la valeur 1. Les valeurs de pondération sont les
puissances entières positives successives d’un nombre de base (ici 10). Les nombres sont formés à
l’aide d’un code pondéré

Une même valeur peut être exprimée de différentes façons selon la base de pondération utilisée. On
note (421)10 une valeur exprimée en base 10. La même valeur exprimée en base 3 s’écrit (120121) 3. Il
s’agit bien de la même valeur. Si vous avez 421 € dans votre porte-monnaie, vous avez (421)10 euros,
bien sûr. Vous ne serez pas plus riche (malgré de trompeuses apparences) si vous décidez de compter
en base 3 ; certes vous compterez (120121)3, mais attention, il ne s’agit pas de cent vingt mille cent
vingt et un euros ... il faut plutôt dire « un deux un zéro deux un » euros en base 3.

II- Systèmes de numération des entiers

Un système de numération est muni d’une base et de règles de composition des nombres. Voici
quelques rappels de ces notions.

1- Les différentes bases numériques pour exprimer les entiers naturels

- La base décimale (base 10)

C’est la base de référence, car il suffit d’analyser comment nous gérons la base dix pour en déduire les
autres bases.

Un nombre est composé de chiffres (digit). Un chiffre est un symbole extrait d’un ensemble ordonné :
la base dix.

base dix = { 0,1,2,3,4,5,6,7,8,9 }

Par exemple, N=1989 est l’écriture d’un nombre en base 10, qui sous-entend la décomposition
suivante :

N10 = 1989 = 1x1000 + 9x100 + 8x10 + 9

De façon plus générale, les chiffres qui composent le nombre N dans la base 10 sont les coefficients
ai de la décomposition de N en somme de puissances de 10 (forme polynomiale) :

On peut constater que :

• le rang ‘i’ d’un coefficient ‘ai’ est l’exposant de la puissance de dix qui lui est associée. Dans
l’exemple avec N=1989, a3 = 1 car 1000=1 x 103

. • le chiffre de rang 0, c’est-à-dire le plus à droite, est appelé le chiffre (digit) de plus faible poids
(LSD : Least Significant Digit). Le chiffre le plus à gauche est le chiffre de plus fort poids (MSD :
Most Significant Digit).

- Généralisation à une base quelconque B

Soit la base B formée de : base B = {0, 1, ...., B-1} avec B ∈ IN

Tout nombre entier naturel N peut s’exprimer en base B avec n chiffres ordonnés, sous la forme :

Cours Informatique – Olivier PETEY Enseignant


Page 29
Cela signifie que le nombre N se décompose en somme de puissances de B (forme polynomiale), sous
la forme :

- Le code Binaire Naturel (base 2)

Aussi appelé « binaire pur ».

base 2 = { 0,1 }

Une remarque pour commencer : le code binaire naturel est utilisé partout dans les ordinateurs. Mais
attention, l’électronicien ou l’informaticien préfère la base 16 (ou hexadécimale) à la base 2 : on peut
dire que la base 16 est « presque équivalente », car on passe très facilement de la base 16 à la base 2 et
réciproquement (c’est dû au fait que 16 est une puissance de 2). Ce sera donc la base 16 qu’il faudra
manipuler, de préférence à la base 2.

Reprenons notre code binaire naturel, avec un exemple : N2= (1011001) 2. Que vaut ce nombre en
décimal ?

Les chiffres ‘0’ et ‘1’ sont ordonnés de gauche à droite, du MSD au LSD. Le développement de la
forme polynomiale associée fournit la valeur décimale du nombre écrit en binaire :

Remarque :

• la taille d’un nombre binaire (le nombre de chiffres qui le composent) est 3 à 4 fois plus grande qu’en
décimal.

D’où l’intérêt de la base hexadécimale, beaucoup plus compacte que la base binaire et qui s’en déduit
facilement.

• on va tellement utiliser le binaire qu’il faut connaître, au moins, les 10 premières puissances de 2, et
savoir retrouver très vite le code des 8 premiers entiers:

Vocabulaire :

Définition

Un nombre binaire composé de 8 bits s’appelle un octet et peut prendre des valeurs (décimales) de 0

Cours Informatique – Olivier PETEY Enseignant


Page 30
à 255. Cette taille a son importance car c’est ce que peut contenir une case mémoire. Deux cases

mémoire ensemble peuvent contenir 16 bits (permettant de stocker une valeur entre 0 et 65 535) et

s’appellent parfois « mot binaire », un long mot étant alors quatre cases mémoire, soit 4 octets.

• Les valeurs remarquables à connaître :

210 = 1024 se note k. Exemple : 1 ko (kilo octet) vaut 1024 octets.

220 = 1 048 576 se note M (mega).

230 = 1 073 741 824 se note G (giga).

• un chiffre binaire est appelé bit ("binary digit" en anglais) ; en français, "élément binaire" (eb), très
peu utilisé.

• le bit le plus à gauche est appelé le bit de poids fort ou MSB (Most Significant Bit) ; le bit le plus à
droite est le bit de poids faible ou LSB.

• un nombre binaire est souvent appelé "mot binaire" car on le trouve dans un format fixe.

• le format d’un mot binaire est sa taille en nombre de bits.

On peut avoir n’importe quel format, mais certains sont des classiques et possèdent même un nom :

Cette notion de format est très importante, car elle est associée à la taille réelle (physique) des mots
binaires que la machine manipule. C’est d’ailleurs le format qui est la caractéristique utilisée pour
classer les microprocesseurs.

Remarques sur le comptage binaire naturel :

• le format étant fixé (p bits par exemple), un nombre N issu d’un comptage, exprimé en binaire
naturel, évolue selon N modulo 2p. Cela signifie qu’il repasse à 0 après être arrivé à 2p -1.

• la séquence des nombres en binaire naturel possède une propriété utile pour sa composition : en
observant la colonne la plus à droite (le LSB, ou rang 0), on voit qu’il y a une alternance de ‘0’ et de
‘1’ ; au rang 1, on trouve une alternance de deux ‘0’ puis de deux ‘1’ ; ainsi de suite : au rang k, il y a
une alternance de 2k symboles ‘0’ et de 2k symboles ‘1’.

• on note aussi que d’une ligne de la séquence à la suivante, c’est lorsque le bit de rang ‘i’ passe de la
valeur ‘1’ à la valeur ‘0’ que le bit de rang ‘i+1’ change d’état.

- La base hexadécimale (base 16)

Ce sera la base la plus utilisée par la suite. On peut considérer que c’est une variante « compacte » du
binaire !

Cours Informatique – Olivier PETEY Enseignant


Page 31
C’est pourquoi les valeurs seront presque toujours exprimées en hexadécimal (en abrégé, hexa), même
si le contexte parle de code binaire. Cette interchangeabilité entre binaire et hexa vient du fait que 16
est une puissance de 2.

base 16 = hexadécimal = { 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F}

L’ordinateur ne sait calculer qu’en base 2. Malheureusement, l’écriture binaire n’est ni pratique (à
cause de la taille des écritures), ni intuitive (le cerveau humain ne calcule facilement qu’en base 10).
On doit donc souvent effectuer des changements de base entre la base 2 et les bases 8, 10 ou 16.

Le changement de base le plus simple est le passage entre la base 2 et les bases 8 ou 16. En effet, les
valeurs 8 et 16 étant des puissances de 2 (8 = 23 ; 16 = 24), chaque bloc de 3 ou 4 bits correspond à un
symbole octal ou hexadécimal.

- Intérêt de l’hexadécimal par rapport au binaire naturel:

• la réduction par 4 du nombre de symboles pour exprimer les nombres binaires (code hexa 4 fois plus
compact).

• les formats des nombres binaires dans les machines étant des multiples de quatre, on peut toujours
utiliser l’hexadécimal.

• le format d’un symbole hexa (4 bits) est aussi celui qui est nécessaire pour exprimer les chiffres
décimaux.

Nous avons parcouru rapidement les trois bases entières dont nous ferons l’usage. A présent, ce sont
les procédés de conversion que nous devons aborder. Encore une fois, l’hexadécimal aura une place de
choix.

Cours Informatique – Olivier PETEY Enseignant


Page 32
III -Conversion d’un entier naturel de la base 10 vers une autre base

L’ordinateur ne sait calculer qu’en base 2. Malheureusement, l’écriture binaire n’est ni pratique (à
cause de la taille des écritures), ni intuitive (le cerveau humain ne calcule facilement qu’en base 10).
On doit donc souvent effectuer des changements de base entre la base 2 et les bases 8, 10 ou 16. Le
changement de base le plus simple est le passage entre la base 2 et les bases 8 ou 16. En effet, les
valeurs 8 et 16 étant des puissances de 2 (8 = 23 ; 16 = 24), chaque bloc de 3 ou 4 bits correspond à un
symbole octal ou hexadécimal.

Pour convertir l’écriture d’un nombre entier naturel de la base 10 en une autre base B, on procède par
divisions entières successives par B. Le reste de chaque division fournit un des coefficients ai
recherchés, le quotient sert à la division entière suivante.

Prenons comme exemple le nombre décimal N=167957, à traduire en hexadécimal et en binaire.

On procède à une série de divisions par 16 ; tous calculs faits, il vient :

167957 = 10497 x 16 + 5 5 est le coefficient a0 (LSD)

10497 = 656 x 16 + 1 1 est le coefficient a1

656 = 41 x 16 + 0

41 = 2 x 16 + 9

2 = 0 x 16 + 2 2 est le coefficient a4 (les coefficients suivants sont tous nuls)

Ainsi :

N = (167957)10 = (29015)16 = 0x29015

Pour obtenir N en binaire, il suffit de faire la conversion (facile) hexadécimal->binaire : chaque digit
hexadécimal est converti en un groupe de quatre bits, d’où :

(29015)16 = (0010 1001 0000 0001 0101)2

N = (167957)10 = (101001000000010101)2

Remarque :

Cette technique de division entière marche aussi avec la base 2 pour obtenir directement le code
binaire de N. Ce n’est pas conseillé (car plus long !) : il est toujours préférable de passer par
l’hexadécimal, et de traduire ensuite (si nécessaire !) en binaire.

A l’usage, on se rend compte qu’on utilise très peu l’écriture binaire, car elle est lourde et peut
facilement être remplacée par l’hexadécimal. Dans les langages de programmation tel que le C, la
représentation des nombres en binaire n’existe pas : l’hexadécimal et le décimal sont les seules bases
disponibles.

Cours Informatique – Olivier PETEY Enseignant


Page 33
Si b est un nombre entier plus grand que 1, tout nombre N peut se mettre sous la forme

Codage en hexadécimal, en octal et en binaire des nombres de 0 à 15 :

Cours Informatique – Olivier PETEY Enseignant


Page 34
Conversion binaire → octal : nous séparons les chiffres en groupes de 3, en partant de la
virgule, et nous remplaçons chaque groupe par son équivalent en octal (voir les 8 premières
lignes du tableau précédent). Par exemple, pour 11010101001,01011 :

011 010 101 001, 010 110

3 2 5 1 , 2 6

donc (11010101001,01011)2 = (3251,26)8.

Conversion binaire → hexadécimal : nous séparons les chiffres en groupes de 4, en partant de la


virgule, et nous remplaçons chaque groupe par son équivalent en hexadécimal (voir le tableau
précédent). Par exemple, pour

11010101001,01011 : 0110 1010 1001, 0101 1000

6 A 9 , 5 8 donc (11010101001,01011)2 = (6A9,58)H

Codage des caractères

Les caractères, comme les nombres, doivent être représentés en vue d’être exploités par les
ordinateurs.

Comme on ne peut mettre que des bits dans les cases mémoire, on a associé un code numérique à
chaque caractère. Évidemment, pour pouvoir échanger des informations entre ordinateurs, il faut que
cette correspondance soit la même sur toutes les machines.

Code ASCII

La première tentative de standardisation date de la fin des années 60, avec la création du code ASCII
(American Standard Code for Information Interchange). Cette table définit les équivalents numériques
des caractères majuscules et minuscules de l’alphabet latin, des chiffres et de certains signes de
ponctuation. Elle donne également le code de nombreux caractères de contrôle, utilisés à l’époque
dans l’échange de données entre terminaux et ordinateurs ; non imprimables, ils servaient à régler les
paramètres de la communication.

Cours Informatique – Olivier PETEY Enseignant


Page 35
Compte tenu du nombre de caractères à représenter, un code à 7 bits est nécessaire, permettant cent
vingt-huit combinaisons différentes.

Chaque caractère est codé sur 1 octet par deux symboles hexadécimaux. Le numéro de la colonne
donne le symbole hexadécimal de poids fort et le numéro de ligne le symbole de poids faible. Ainsi, le
caractère 4 a pour code numérique 3416, L le code 4C16 et m le code 6d16.

1 Byte = 8 bits = 1 caractère = 1 Octet


Ce code est adapté à l’écriture anglo-saxonne : ni lettres accentuées ni lettres spéciales hors des vingt-
six classiques. L’unité de stockage étant l’octet, soit 8 bits, les fabricants d’ordinateurs ont décidé
d’utiliser le bit supplémentaire pour définir cent vingt-huit autres caractères, comme les lettres
accentuées, les lettres d’autres alphabets ou même des caractères graphiques à afficher. Évidemment,
chaque fabricant a construit sa propre table étendue et l’on a perdu la compatibilité entre ordinateurs,
d’où les problèmes de transfert de fichiers au format texte contenant des caractères accentués. Cela a
donné lieu à autre tentative de normalisation qui a aboutit à la norme ISO 8859 codifiant plusieurs
alphabets d’Europe occidentale. La norme définit une quinzaine de tables différentes, chacune codant
ses caractères sur 1 octet. Mais là encore, pour des raisons historiques de compatibilité, on emploie
d’autres tables de correspondance, ce qui rend les transferts d’informations parfois problématiques.

Code Unicode

À la fin des années 80 démarre un projet visant à codifier de manière unique tous les caractères de
toutes les langues écrites, en tenant compte du sens de lecture des langues (de gauche à droite ou
l’inverse), des ligatures, etc. Ce travail aboutit au codage Unicode dans lequel chaque symbole est
défini sur 2 octets. De portée mondiale, ce codage n’est pas encore universellement appliqué car de
nombreux systèmes et applications ne savent pas encore traiter ces caractères étendus. Le langage de
programmation C, ancien mais très utilisé, code ses caractères sur 1 octet alors que Java les code sur 2
octets et est donc compatible avec Unicode. Notez que dans un souci d’harmonisation, les deux cent
cinquante-cinq premiers caractères Unicode reproduisent les deux cent cinquante-cinq caractères du
codage ISO 8859–1 de l’alphabet latin.

Cours Informatique – Olivier PETEY Enseignant


Page 36
LEÇON II : OPERATIONS SUR LES BINAIRES

I . Les nombres entiers positifs

Maintenant que nous savons compter en binaire, nous allons étudier les opérations arithmétiques
classiques. Elles se réalisent de la même manière qu’en décimal.

I.1 Addition

De même que l’on additionne deux nombres décimaux chiffre à chiffre en obtenant un résultat et une
retenue à reporter, pour additionner deux nombres binaires, il faut définir l’addition de 2 bits. Il n’y a
que quatre cas à examiner :

• 0 + 0 donne 0 de résultat et 0 de retenue.

• 0 + 1 donne 1 de résultat et 0 de retenue.

• 1 + 0 donne 1 de résultat et 0 de retenue.

• 1 + 1 donne 0 de résultat et 1 de retenue (de même qu’il y a une retenue lors de l’addition de deux
chiffres décimaux quand le résultat est supérieur à 10).

On effectue ensuite l’addition binaire bit à bit, de droite à gauche, en reportant les retenues, comme
dans l’exemple suivant :

On peut vérifier le résultat en décimal : 43 + 110 = 153.

I.2 Soustraction

Le scénario est identique pour la soustraction de deux nombres binaires : la soustraction de 2 bits
donne un bit de résultat et un bit de retenue de report sur la colonne suivante :

• 0 – 0 donne 0 de résultat et 0 de retenue.

• 0 – 1 donne 1 de résultat et 1 de retenue.

• 1 – 0 donne 1 de résultat et 0 de retenue.

• 1 – 1 donne 0 de résultat et 0 de retenue.

On effectue la soustraction binaire bit à bit, de droite à gauche, en reportant les retenues, comme dans
l’exemple suivant :

Nous parlerons du problème des nombres négatifs dans la prochaine section.

Cours Informatique – Olivier PETEY Enseignant


Page 37
I.3 Multiplication

La multiplication binaire peut s’effectuer comme une suite d’additions successives des produits
partiels, comme une multiplication décimale. Cela dit, elle est plus simple à poser que la multiplication
décimale car les tables de multiplication sont réduites à leur plus simple expression ! On multiplie soit
par 0 (et le résultat est nul) soit par 1 (et on recopie le multiplicateur). Voici un exemple :

Cette manière d’opérer s’implémente facilement car elle consiste à ne faire que des décalages et des
additions, opérations classiques sur les processeurs. L’inconvénient de la multiplication est qu’elle
allonge fortement les nombres : multiplier deux nombres de n bits peut donner un résultat sur 2n bits.
Il faut donc faire attention lorsque ces nombres sont stockés dans une case mémoire car le résultat, de
taille double, peut ne plus tenir dans une case.

I.4 Division

La division binaire est l’opération la plus compliquée. On opère comme en décimal : on soustrait le
diviseur du dividende en commençant par les bits de poids fort. Elle nécessite une série de
soustractions et de décalages pour donner un quotient et un reste.

La division - exemple (dividende représenté sur 8 bits, diviseur sur 4 bits) :

II. Les nombres négatifs

Nous savons maintenant représenter en binaire des nombres entiers positifs. Mais comment faire pour
travailler avec des nombres négatifs ? Dans l’arithmétique classique, ces nombres sont précédés d’un
signe moins, mais c’est ici impossible car on ne peut mettre que des bits dans une case mémoire. Il
faut donc trouver une écriture, une représentation des nombres négatifs, utilisant les bits disponibles.

II.1 Représentation « signe et valeur absolue »

Cours Informatique – Olivier PETEY Enseignant


Page 38
La première idée est de reproduire le signe en utilisant le bit de poids fort du nombre pour le
représenter.

Définition

Sur n bits, le bit de poids fort (aussi appelé « bit de signe ») indique le signe du nombre (selon une
convention classique, ce bit est à 1 pour un nombre négatif) et les n – 1 bits restants donnent la valeur
absolue binaire du nombre. Les mots binaires 01011001 = 89 et 10110100 = –52 sont deux exemples
de nombres écrits dans cette représentation sur 8 bits.

Caractéristiques

Notez que l’on ne représente pas plus de nombres ainsi : sur n bits, on représente toujours au
maximum 2n valeurs différentes. Ce que l’on a fait est un décalage de la plage des nombres autorisés
en passant de l’intervalle [0, 2n – 1] à l’intervalle [–(2n – 1 – 1), 2n – 1 – 1]. Il n’y a plus que 2n – 1
nombres exprimés car le zéro peut s’écrire de deux manières différentes : +0, c’est-à-dire 00…0, et –0
qui s’écrit 10…0.

II.2 Représentation en complément à 2

C’est la représentation standard sur les ordinateurs pour exprimer les nombres entiers négatifs. Quand
on parle de représentation signée ou d’entiers signés, ces derniers sont toujours exprimés à l’aide de la
représentation en complément à 2.

Définition

Sur n bits, on exprime les nombres de l’intervalle [–2n – 1, 2n – 1 – 1]. On retrouve bien les 2n nombres
possibles. Un nombre positif est représenté de façon standard par son écriture binaire. On représente
un nombre négatif en ajoutant 1 à son complément à 1 (obtenu en inversant tous les bits) et en laissant
tomber une éventuelle retenue finale.

Si l’on reprend l’exemple précédent, 89 (positif) s’écrit toujours 01011001, mais –52 (négatif) s’écrit
maintenant 11001100. En effet, en binaire sur 8 bits, 52 s’écrit 00110100, ce qui donne un
complément à 1 égal à 11001011 et un complément à 2 égal à 11001100.

Dans le cas d’un nombre négatif, il est important d’indiquer sur combien de bits doit s’écrire le
nombre car on ne rajoute pas des zéros en tête mais des uns (suite à l’inversion obtenue lors du calcul
du complément à 1). La phrase « représentez –20 en complément à 2 » n’a pas de sens si l’on ne
précise pas le nombre de bits de la représentation. Cela peut tout aussi bien être 101100 sur 6 bits que
11101100 sur 8 bits ou 1111111111101100 sur 16 bits.

Cours Informatique – Olivier PETEY Enseignant


Page 39
Caractéristiques

Les nombres positifs se représentent tels quels, c’est-à-dire par une écriture binaire sur n bits : de 0 =
000…00 à 2n – 1 – 1 = 011…11. Les entiers négatifs correspondent au complément à 2 de ces nombres
: de –2n – 1 = 100…00 à –1 = 111…11. Il n’y a plus maintenant qu’une seule représentation de 0 ;
d’ailleurs, si l’on essaie de prendre l’opposé de 0 = 000…00 en faisant son complément à 2, on
retombe sur la même écriture binaire.

Notez que l’on peut représenter plus de nombres strictement négatifs que de nombres strictement
positifs, en l’occurrence un de plus. C’est parfaitement normal : avec 2 n possibilités sur n bits, si l’on
enlève le zéro, il reste un nombre impair d’écritures possibles ; on ne peut donc pas avoir autant de
nombres positifs que de nombres négatifs. On aurait pu décider, pour le nombre binaire 100…00, de
représenter 2n – 1 au lieu de –2n – 1, mais la convention choisie permet de considérer le bit de poids fort
d’un nombre comme un équivalent de bit de signe : tous les nombres négatifs (de –2n – 1 à –1) ont ce
bit de poids fort à 1 et tous les nombres positifs (de 0 à 2 n – 1 – 1) ont ce bit à 0. Cela permet de
déterminer facilement le signe d’un nombre en représentation signée.

Arithmétique en complément à 2

Le grand intérêt du complément à 2 est de simplifier les additions. Ainsi, on n’a plus à se préoccuper
du signe des nombres avant d’effectuer l’opération. Voici un exemple. Pour effectuer l’addition de 118
et de –36, il suffit d’exprimer chacun des nombres en complément à 2 et d’effectuer l’addition bit à bit
en laissant tomber une éventuelle retenue :

Soustraire un nombre revient à additionner son opposé, c’est-à-dire son complément à 2.

En revanche, la multiplication est plus délicate. La méthode la plus simple est de prendre la valeur
absolue des deux nombres, de les multiplier par l’algorithme standard et de prendre l’opposé du
résultat si les deux nombres étaient de signes contraires. Il existe un autre algorithme, appelé «
recodage de Booth », qui profite des spécificités de la multiplication binaire pour accélérer le calcul au
prix d’une circuiterie plus compliquée.

Pour diviser, il faut passer par la division des valeurs absolues et repositionner les signes du quotient et
du reste si nécessaire.

Note

La représentation en complément à 2 revient à lire un nombre binaire xn–1…x0 de la façon suivante :

Propriétés du complément à 2

On a la relation suivante, sur n bits : X + C2(X) = 2n (d’où son nom). Cela permet de calculer
facilement le complément à 2 d’un nombre en effectuant l’opération C2(X) = 2n– X. On a une autre
propriété intéressante : si l’on prend deux fois le complément à 2 d’un nombre, on retombe sur ce
nombre : C2(C2(X)) = X. Ainsi, pour calculer la valeur décimale d’un nombre binaire négatif, il suffit
de prendre son complément à 2 et l’on a son opposé :

C2(11001100) = 00110100 = 52 donc 11001100 = –52.

Cours Informatique – Olivier PETEY Enseignant


Page 40
Par ailleurs, on a une relation intéressante entre les lectures signée et non signée d’un nombre binaire
négatif sur n bits. Soit VS(X) la valeur d’un nombre binaire, lu comme un entier négatif dans la
représentation en complément à 2 ; soit VB(X) la valeur de ce même nombre binaire, mais lu comme
un entier positif (c’est-à dire en effectuant la simple somme des puissances de 2). On a alors l’égalité
VB(X) – VS(X) = 2n. Par exemple,

VB(10101010) = 170, VS(10101010) = –86 et l’on a bien 170 – (–86) = 256 = 28.

II.3 Extension de signe

Parfois, on a besoin d’étendre un nombre de n bits sur davantage de bits. Par exemple, pour
additionner un nombre écrit sur 1 octet et un nombre écrit sur 2 octets, il faut étendre le premier
nombre sur 16 bits avant d’effectuer l’addition. Un autre exemple est le chargement d’une case
mémoire de 1 octet dans un registre (une zone de stockage à l’intérieur du microprocesseur) de 4
octets (32 bits). Comment faire pour que le nombre étendu représente bien la même valeur ? On doit
effectuer ce que l’on appelle une extension de signe.

Nombres non signés

Si le nombre n’est pas signé, il suffit d’ajouter des zéros en tête du nombre à étendre : par exemple
11010011 devient 0000000011010011 sur 2 octets.

Représentation « signe et valeur absolue »

Si l’on travaille avec des nombres signés représentés avec la convention « signe et valeur absolue », il
suffit de reporter le bit de signe dans le nouveau bit de poids fort et de remplir les autres nouveaux bits
par des zéros.

01101000 devient 0000000001101000 et 11111011 devient 1000000001111011 lorsqu’on les étend


sur 2 octets.

Représentation en complément à 2

Pour les nombres signés standard, la règle est de recopier le bit de signe du nombre dans tous les
nouveaux bits. En effet, si le nombre est positif, son bit de signe est nul et on ajoute des zéros en tête :
00100110 devient 0000000000100110 ; si le nombre est négatif, le bit de signe (c’est-à-dire le bit de
poids fort) est égal à un et il faut le reporter : 10001111 devient 1111111110001111. Dans tous les cas,
lorsque l’on calcule la valeur des nombres en complément à 2, on obtient bien le même résultat.

II.4 Débordement

Lorsqu’ils sont stockés en mémoire dans un ordinateur, les nombres binaires ont une taille limitée :
souvent 1, 2 ou 4 octets. Parfois, le résultat d’une opération arithmétique, par exemple d’une addition,
ne peut pas tenir dans la taille imposée. On dit alors qu’il y a débordement (overflow). Comment le
détecter ? Cela dépend bien évidemment de la représentation des nombres.

Nombres non signés

Sur n bits, on représente les nombres de 0 à 2n – 1. Si la somme de deux nombres dépasse cette valeur,
il y a débordement. On peut facilement s’en apercevoir car cela est équivalent à la présence d’une
retenue finale lors de l’addition. Voici un exemple sur 8 bits :

Cours Informatique – Olivier PETEY Enseignant


Page 41
Le résultat de 156 + 168 dépasse 255 et ne peut donc pas s’exprimer sur 8 bits ; cela est matérialisé par
la retenue finale.

De la même façon, une soustraction peut amener à un résultat négatif, non représentable avec des
nombres non signés. Là encore, une retenue finale indique un débordement.

Dans les deux cas, le résultat obtenu n’est pas le résultat correct : il y a débordement. Il faut pouvoir le
détecter pour, par exemple, arrêter le calcul.

Nombre signés en complément à 2

À cause de la présence des nombres négatifs, une opération peut générer une retenue finale sans qu’il
y ait débordement. Ainsi, l’opération –60 + (–61) donne le résultat attendu :

Il y a bien retenue finale mais le résultat exprimé sur 8 bits est correct.

Inversement, l’absence de retenue finale ne garantit pas une opération correcte :

Il faut en fait comparer les signes des nombres additionnés et le signe du résultat. Les signes des
nombres additionnés correspondant aux bits de poids fort, leur addition génère la retenue finale ; le
signe du résultat est, quant à lui, généré par la dernière retenue (celle qui s’additionne aux bits de poids
fort justement). La règle est simple :

• Si les deux retenues générées par l’addition des deux derniers bits de chaque nombre (ceux de poids
fort) sont identiques (11 ou 00), il n’y a pas débordement.

• Si les deux retenues sont différentes (01 ou 10), il y a débordement.

Dans le premier exemple, les deux dernières retenues valent 1 ; il n’y a donc pas débordement (le
résultat exprimé sur 8 bits est correct). Dans le second, elles valent 0 et 1, ce qui est la preuve d’un
débordement (effectivement, –111 n’est pas le résultat correct de la somme de 77 et 68).

III. Les nombres réels

Dans de nombreuses applications, on ne peut se contenter de calculer avec les nombres entiers, soit
parce que l’on a besoin de nombres sortant de l’intervalle de représentation, soit parce que l’on utilise
des nombres décimaux. Comme un ordinateur ne sait manipuler que des bits, il faut définir une
représentation des nombres décimaux adaptée aux calculs. L’espace de stockage d’un nombre (son

Cours Informatique – Olivier PETEY Enseignant


Page 42
nombre de bits) étant limité, tous les nombres réels possibles ne sont pas représentables et il y a une
limite à la précision des calculs.

L’idée principale derrière la représentation des nombres décimaux est de définir l’emplacement d’une
virgule séparant la partie entière et la partie décimale et de considérer que les bits à droite de cette
virgule correspondent aux puissances négatives de 2 (de même qu’en décimal, les chiffres à droite de
la virgule sont des dixièmes, des centièmes…).

III.1 Représentation en virgule fixe

Historiquement la première, la représentation en virgule fixe est facile à comprendre. Au lieu de faire
commencer les puissances de 2 à 20 au bit de poids faible, comme pour les nombres entiers, on fixe un
bit, quelque part dans l’écriture du nombre, à droite duquel se place la virgule. Les bits à gauche de la
virgule correspondent alors aux puissances de 2 positives et les bits à droite de la virgule
correspondent aux puissances de 2 négatives.

Ainsi, sur n bits, on peut par exemple définir une virgule après les p bits de poids faible, ce qui donne,
pour le nombre xn -p–1xn–p–2 … x1x0x–1 … x–p, la valeur :

Le problème évident est que la plage des nombres représentables est assez limitée. On est entre 2 –p et
2n – p– 2–p, avec peu de précision après la virgule. Pour y remédier, on a développé une autre
représentation, appelée « représentation en virgule flottante ».

III.2 Représentation en virgule flottante IEEE 754

Il s’agit maintenant d’imiter ce que l’on appelle la notation scientifique. On va écrire le nombre voulu
sous la forme ±1,M × 2E, où 1,M s’appelle la mantisse du nombre et E l’exposant. Comme la mantisse
commence toujours par une partie entière égale à 1, on ne l’écrit pas et on n’exprime que la partie
fractionnaire, M, appelée « pseudo-mantisse ».

Puisqu’il y a plusieurs manières d’écrire les différents champs, une normalisation a été adoptée qui
définit deux principaux types de nombres en virgule flottante : la simple précision sur 32 bits et la
double précision sur 64 bits. Les nombres en simple précision possèdent une pseudo-mantisse sur 23
bits (correspondant aux puissances négatives de 2, de 2–1 à 2–23), un exposant sur 8 bits et un bit de
signe. Les nombres en double précision ont une pseudo-mantisse sur 52 bits, un exposant sur 11 bits et
un bit de signe.

Lire et écrire un nombre en virgule flottante

La pseudo-mantisse est la partie fractionnaire du nombre et il suffit d’additionner les puissances


négatives de 2 pour calculer le résultat. Afin que l’on puisse exprimer les exposants négatifs, la valeur
binaire dans le champ exposant est la valeur réelle décalée par excès d’un biais de 127 (1 023 pour les
nombres en double précision). Il faut donc retrancher ce biais de la valeur indiquée pour obtenir
l’exposant réel. Le bit de poids fort est un bit de signe, par convention à 1 quand le nombre est négatif.

Voici trois exemples : 500= 1,953125× 28 = (1+ 2−1+ 2−2+ 2−3+ 2−4+ 2−6)× 28

Cours Informatique – Olivier PETEY Enseignant


Page 43
Cela donne 0 10000111 11110100000000000000000. On a un bit de signe égal à 0, un exposant égal à
8 + 127 et les premiers bits de la pseudo-mantisse qui exprime 0,953125.

−3, 5= −1,75× 21= −(1+ 2−1+ 2−2)× 21

Cela donne 1 10000000 11000000000000000000000. On a un bit de signe égal à 1 car le nombre est
négatif, un exposant égal à 1 + 127 et les premiers bits de la pseudo-mantisse qui exprime 0,75.

0, 40625= 1,625× 2−2= (1+ 2−1+ 2−3)× 2−2

Cela donne 0 01111101 10100000000000000000000. On a un bit de signe égal à 0, un exposant égal à


–2 + 127 et les premiers bits de la pseudo-mantisse qui exprime 0,625.

Remarque

Par analogie avec les nombres entiers, on désigne souvent les « nombres représentés en virgule
flottante » comme des « nombres flottants ».

Valeurs spéciales

La plage de représentation est à peu près de 10–38 à 1038 en simple précision et de 10–308 à 10308 en
double précision. Certaines configurations de bits signifient des valeurs spéciales :

Les valeurs de plus ou moins l’infini peuvent apparaître dans les calculs, et les règles arithmétiques
correspondantes sont précisées dans la norme. Les nombres dénormalisés permettent d’exprimer un
nombre encore plus petit que 10–38 en écrivant la mantisse 0,M plutôt que 1,M. Enfin les NaN
signalent une erreur (division par zéro par exemple).

Arrondis

En raison du nombre limité de bits de la représentation, les calculs en virgule flottante ne peuvent pas
atteindre une précision infinie. Tous les nombres réels ne sont pas représentables et l’un des enjeux de
la normalisation a été que les calculs soient reproductibles d’une machine à une autre. Or, en raison de
la précision limitée, ceux-ci ne peuvent pas être systématiquement exacts. On a donc défini des
mécanismes standard d’arrondi pour être sûr de toujours parvenir au même résultat. Ces mécanismes
d’arrondi sont au nombre de quatre :

• arrondi à la valeur la plus proche (mécanisme par défaut) ;

• arrondi vers zéro ;

• arrondi vers plus l’infini ;

• arrondi vers moins l’infini.

Cours Informatique – Olivier PETEY Enseignant


Page 44
Arithmétique en virgule flottante

Les calculs sont ici beaucoup plus compliqués qu’en arithmétique entière. Du fait que les bits des
nombres ont des significations différentes suivant leur place, il faut traiter séparément les différents
champs. Voici à titre d’exemple les algorithmes pour la multiplication et l’addition.

Multiplication de deux nombres flottants

1. Multiplier les mantisses.

2. Additionner les exposants en soustrayant une fois le biais pour retomber sur un exposant biaisé.

3. Si nécessaire, renormaliser la mantisse sous la forme 1,M et décaler l’exposant.

4. Arrondir la mantisse (car la multiplication a généré plus de bits significatifs).

5. Ajuster le signe du résultat en fonction des signes des nombres à multiplier.

Par exemple, multiplions 1,75 par 2,5.

1,75 = 1,75 × 20, qui se représente ainsi : 0 01111111 11000000000000000000000.

2,5 = 1,25 × 21, qui se représente ainsi : 0 10000000 01000000000000000000000.

La multiplication des mantisses (il faut multiplier 1,112 par 1,012, et pas uniquement les pseudo-
mantisses) donne 10,00112 et l’addition des exposants aboutit à un exposant biaisé de 128. On décale
la mantisse vers la droite (en ajoutant 1 à l’exposant) pour renormaliser le nombre en 1,00011 2 × 22,
qui s’écrit alors 0 10000001 00011000000000000000000. Cela donne bien (1 + 2–4 + 2–5) × 22

= 4,375.

La division flottante s’effectue de façon semblable : on divise les mantisses et on soustrait les
exposants.

Addition de deux nombres flottants

L’addition de deux nombres flottants ne peut se faire que si les exposants sont égaux. L’algorithme est
le suivant :

1. Décaler la mantisse d’un des nombres pour aligner les exposants.

2. Additionner les mantisses (attention au signe).

3. Si nécessaire, renormaliser la mantisse sous la forme 1, M et décaler l’exposant.

4. Arrondir la mantisse (car, à cause du décalage initial, la mantisse peut être sur plus de bits que la
taille autorisée).

Par exemple, additionnons 1,75 et 2,5.

Comme précédemment, 1,75 se représente ainsi : 1,112 × 20, et 2,5 de la façon suivante : 1,012 × 21

. On décale le premier nombre en l’écrivant 0,1112 × 21 pour aligner les exposants. L’addition des
deux mantisses donne 1,012 + 0,1112 = 10,0012. On normalise en décalant vers la droite et en ajoutant
1 à l’exposant, ce qui amène à un résultat égal à 1,00012 × 22, soit 4,25.

On réalise la soustraction de façon identique, en établissant la différence les mantisses.

Cours Informatique – Olivier PETEY Enseignant


Page 45
CHAPITRE V : Circuits combinatoires

Le transistor, un interrupteur commandé par une tension, est le composant de base des circuits
électroniques au cœur de l’ordinateur. À l’aide des transistors, on construit des circuits logiques
élémentaires, des portes logiques, effectuant des opérations simples. Ces circuits sont analysés grâce à
l’algèbre de Boole, outil mathématique puissant qui permet de développer des circuits plus complexes.
Ces mêmes portes logiques sont utilisées pour réaliser des circuits séquentiels, faisant intervenir une
composante temporelle et introduisant ainsi la notion de mémorisation de valeurs dans les systèmes.

- Algèbre de Boole et opération combinatoire

1.2 Fonctions et portes logiques élémentaires

Ces fonctions de base peuvent être définies par leur table de vérité ou leur expression algébrique, mais
elles ont également été implémentées sous forme de circuits électroniques, appelés « portes logiques »
(de l’anglais gate), qui ont des symboles graphiques normalisés.

Cours Informatique – Olivier PETEY Enseignant


Page 46
Synthèse avec un circuit élémentaire (porte).

Deux principales normes existent pour représenter ces portes de base : la première, la plus ancienne,
affecte une forme géométrique différente à chacune des fonctions. La seconde dessine chacun des
circuits sous une forme rectangulaire et les distingue via un symbole placé à l’intérieur du rectangle ;
elle permet alors de représenter beaucoup plus de circuits différents. Nous présentons ici, pour chaque
porte, les deux symboles, mais nous utiliserons ensuite la nouvelle norme.

Propriétés des fonctions

Les fonctions et les circuits logiques étant souvent définis à partir d’expressions algébriques, il est
important de pouvoir simplifier celles-ci afin de réduire la complexité des circuits. À cet effet, un
certain nombre propriétés algébriques peuvent être obtenues à partir des définitions des fonctions.
Pour prouver ces égalités, il suffit d’écrire les tables de vérité de chaque expression et de constater
qu’elles sont identiques.

Remarque

Dans les expressions algébriques, l’opérateur ET est prioritaire sur l’opérateur OU. On peut donc
souvent enlever les parenthèses et écrire ab + c plutôt que (ab) + c.

Cours Informatique – Olivier PETEY Enseignant


Page 47
Conséquence de la loi de Morgan :

Les lois de De Morgan sont très importantes car elles permettent de transformer un opérateur en un
autre dans une expression algébrique. On peut donc, dans une expression, remplacer tous les
opérateurs OU par des opérateurs ET (ou vice-versa). L’intérêt est par exemple de pouvoir choisir
l’opérateur utilisé pour construire la fonction à partir de son expression, selon des portes logiques
disponibles.

La propriété d’associativité permet de définir les opérateurs ET, OU, NON-ET et NON-OU à plus de
deux entrées :

• La fonction OU donne un résultat égal à 1 si au moins une de ses entrées est à 1.

• La fonction ET donne un résultat égal à 1 si toutes ses entrées sont à 1.

• La fonction NON-OU donne un résultat égal à 1 si aucune de ses entrées n’est à 1.

• La fonction NON-ET donne un résultat égal à 1 si au moins une de ses entrées est à 0.

Les schémas des circuits sont comparables qu’il y ait deux entrées ou plus : on ajoute simplement
autant de lignes que de variables d’entrée supplémentaires.

Le OU-exclusif peut également se généraliser à plus de deux entrées mais cela est beaucoup moins
classique.

Un circuit OU-exclusif à n entrées fournit une sortie égale à 1 s’il y a un nombre impair d’entrées qui
ont la valeur 1.

Construction d’une fonction quelconque

Une fonction booléenne est entièrement définie par sa table de vérité mais cela n’est pas d’une grande
aide

Cours Informatique – Olivier PETEY Enseignant


Page 48
pour implémenter cette fonction sous forme de circuit combinatoire. En effet, les seuls circuits
élémentaires à disposition sont les portes logiques et celles-ci reproduisent les opérateurs de base
(NON, OU, ET…) qui sont dans l’expression algébrique d’une fonction. Il faut donc transformer la
table de vérité de la fonction en expression algébrique afin de pouvoir la calculer et surtout de pouvoir
physiquement l’implémenter à l’aide des portes logiques.

Mintermes et forme canonique disjonctive

Soit une fonction définie par sa table de vérité, par exemple la fonction de trois variables suivante :

1- Méthode algébrique

2- Méthode de Karnaught

Cours Informatique – Olivier PETEY Enseignant


Page 49
Cours Informatique – Olivier PETEY Enseignant
Page 50
BIBLIOGRAPHIE / WEBOGRAPHIE
 Architecture des ordinateurs (Université Bordeaux1) , 2007-2008,
 Cours“Architecture et Système” , Laurent Poinsot, UMR7030-Université Paris13-
Institut Galilée,
 Cours Architecture de l’ordinateur, Université d’Abobo-Adjamé, 1999,
 Cours Architecture de l’ordinateur, Michel CRUCIANU, MIAGE
 Formation Continue , Université de Paris-Sud, 1994-1995
 Architecture de l’ordinateur, Université de Paris-Dauphine, Emmanuel Lazard,
Mars 2011
 www.wikipedia.org,
 www.repaire.net,
 www.commentcamarche.net

Cours Informatique – Olivier PETEY Enseignant


Page 51