0% found this document useful (0 votes)
168 views

Cours Architecture GL1

Architecture des ordinateurs

Uploaded by

79bht7kp2t
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
168 views

Cours Architecture GL1

Architecture des ordinateurs

Uploaded by

79bht7kp2t
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 46

CYCLE DE FORMATION : BTS

FILIERE : GENIE LOGICIEL


NIVEAU 1

ARCHITECTURE DES
ORDINATEURS

SUPPORT DE COURS

M. Eric Vekout, M. Ing., PMP, Prince2, PSM2


ARCHITECTURE DES ORDINATEURS Eric Vekout, M. Ing.,

Table des matières


Introduction ................................................................................................................. 3
I. Introduction à l’architecture des ordinateurs ........................................................ 4
1. Système informatique ........................................................................................................... 4
2. Le hardware ........................................................................................................................... 4
II. Architecture d’un processeur de traitement .......................................................... 8
1. Éléments intervenant dans le séquencement des macro-instructions .......................... 9
2. Déroulement d’une instruction ......................................................................................... 11
III. La mémoire ...........................................................................................................15
1. Types et technologies ......................................................................................................... 15
2. Hiérarchie de la mémoire................................................................................................... 16
3. Implantation physique........................................................................................................ 17
4. Organisation et utilisation.................................................................................................. 17
5. Mécanismes d’adressages ................................................................................................... 18
IV. Le langage assembleur .........................................................................................19
1. C’est quoi le langage assembleur ?.................................................................................... 19
2. Architecture du microprocesseur x86 .............................................................................. 21
3. Jeu d’instructions du microprocesseur x86 ..................................................................... 23
4. Assembleur et désassembleur ........................................................................................... 28
5. Programmation en langage assembleur ........................................................................... 31
V. Techniques d’interfaçage .................................................................................... 34
1. Conversion des signaux ..................................................................................................... 34
2. Liaison parallèle ................................................................................................................... 35
3. Liaison série ......................................................................................................................... 35
VI. Technologie des périphériques ........................................................................... 36
1. Les périphériques d’entrée ................................................................................................. 36
2. Les périphériques de sortie ................................................................................................ 38
3. Les périphériques de stockage .......................................................................................... 40
VII. Les architectures nouvelles et spécialisées.................................................... 43

Page 2 sur 46
ARCHITECTURE DES ORDINATEURS Eric Vekout, M. Ing.,

Introduction
Ce module a pour but de vous faire découvrir les principes et les concepts fondamentaux de
l’architecture des ordinateurs, c’est-à-dire la façon dont les ordinateurs sont conçus, organisés
et fonctionnent. Vous allez apprendre à connaître les différents composants d’un système
informatique, tels que le processeur, la mémoire, les périphériques, les bus, etc. Vous allez
également apprendre à maîtriser le langage d’assemblage, qui est le langage de bas niveau
utilisé pour programmer directement le processeur. Enfin, vous allez découvrir les
architectures nouvelles et spécialisées, qui visent à optimiser les performances et les capacités
des ordinateurs.
Objectif général
L’objectif général de ce module est de vous donner les bases nécessaires pour comprendre et
analyser l’architecture des ordinateurs, ainsi que pour écrire des programmes en langage
d’assemblage.
Objectifs spécifiques
À la fin de ce module, vous serez capables de :
❖ Identifier les principaux éléments constitutifs d’un système informatique, et
comprendre le rôle et le fonctionnement de chaque composant.
❖ Décrire l’architecture interne d’un processeur et le déroulement d’une instruction.
❖ Distinguer les différents types et technologies de mémoire et les principes de la
hiérarchie et de l’organisation de la mémoire.
❖ Connaître les outils et les étapes de la programmation en langage d’assemblage.
❖ Savoir implémenter des structures de contrôle, des sous programmes et des
interruptions en langage d’assemblage.
❖ Comprendre les principes de la conversion de signaux et les caractéristiques de la
liaison série.
❖ Identifier les différents types de périphériques d’entrée/sortie et leurs modes de
fonctionnement.
❖ Connaître les différentes architectures nouvelles et spécialisées et leurs avantages,
inconvénients, applications et exemples.

Page 3 sur 46
ARCHITECTURE DES ORDINATEURS Eric Vekout, M. Ing.,

I. Introduction à l’architecture des ordinateurs


1. Système informatique
De façon générale, un système informatique est un ensemble de moyens d’acquisition,
de traitement, de stockage et de restitution de données, et de moyens de
télécommunication. Il combine une partie physique (matériel informatique et
électronique) et une partie immatérielle (logiciels, programmes, données). Il permet
d’effectuer des opérations complexes et variées sur les données et les informations.
Cependant, dans le cadre de ce cours, nous n’aborderons que la partie matérielle.

2. Le hardware
Le Hardware d’un système informatique représente l’ensemble des éléments
constitutifs de sa partie matérielle.
Dans le hardware on retrouve :
a) Les périphériques
Un périphérique informatique est un dispositif connecté à un système de traitement
de l’information central (ordinateur, console de jeu, etc.) et qui ajoute à ce dernier
des fonctionnalités. Les périphériques peuvent être internes ou externes, locaux
ou en réseau, selon leur mode de connexion et de fonctionnement. On peut
classer généralement les périphériques en quatre types :
❖ Les périphériques d’entrée sont des dispositifs qui permettent de saisir des
informations ou des données et de les transmettre à l’unité centrale. Par
exemple, le clavier, la souris, le scanner, le microphone, etc.
❖ Les périphériques de sortie sont des dispositifs qui permettent d’afficher
ou de restituer les informations ou les données traitées par l’unité centrale.
Par exemple, l’écran, l’imprimante, le haut-parleur, etc.
❖ Les périphériques de stockage sont des dispositifs qui permettent de
conserver les informations ou les données de façon permanente ou
temporaire. Par exemple, le disque dur, la clé USB, le CD-ROM, etc.
❖ Les périphériques d’entrée et sortie sont des dispositifs qui combinent les
fonctions d’entrée et de sortie. Par exemple, l’écran tactile, le modem, le
lecteur-graveur de CD-ROM, etc.

Page 4 sur 46
ARCHITECTURE DES ORDINATEURS Eric Vekout, M. Ing.,

b) L’unité centrale
L’unité centrale est le boîtier qui contient les principaux composants d’un
ordinateur, tels que le processeur, la mémoire, le disque dur, la carte mère, etc.
C’est l’élément essentiel d’un ordinateur de bureau, auquel sont reliés les
périphériques comme l’écran, le clavier, la souris, etc. L’unité centrale est
responsable du traitement des données et des instructions, ainsi que de la
communication avec les autres éléments du système.
L’unité centrale contient entre autres les composants essentiels suivants :
❖ La mémoire centrale ou principale qui est l’organe qui stocke les informations
ou les données pendant le fonctionnement de l’ordinateur. Elle est
composée de deux types de mémoires : la mémoire vive (RAM) et la
mémoire morte (ROM) :
❖ La mémoire vive (RAM) est une mémoire volatile, c’est-à-dire qu’elle perd
son contenu lorsque l’ordinateur est éteint. Elle sert à stocker
temporairement les données et les programmes en cours d’exécution.
❖ La mémoire morte (ROM) est une mémoire non volatile, c’est-à-dire qu’elle
conserve son contenu même lorsque l’ordinateur est éteint. Elle sert à
stocker des données et des programmes essentiels au démarrage et au
fonctionnement de l’ordinateur.
❖ Le microprocesseur est l’organe qui exécute les instructions des programmes
et effectue les opérations arithmétiques et logiques. Il est composé de trois
parties : l’unité arithmétique et logique (UAL), l’unité de contrôle (UC) et
les registres :
o L’unité arithmétique et logique (UAL) est la partie du
microprocesseur qui réalise les calculs et les comparaisons.
o L’unité de contrôle (UC) est la partie du microprocesseur qui
coordonne le fonctionnement des différents organes de l’ordinateur
et assure le déroulement des instructions des programmes.
o Les registres représentent les mémoires dans lesquelles sont
stockées les données du microprocesseur

Page 5 sur 46
ARCHITECTURE DES ORDINATEURS Eric Vekout, M. Ing.,

❖ Les ports sont des connecteurs qui permettent de relier l’unité centrale aux
périphériques ou à d’autres ordinateurs. Il existe différents types de ports
selon la nature et la vitesse du transfert des données. Par exemple, le port
USB, le port HDMI, le port Ethernet, etc.

Page 6 sur 46
ARCHITECTURE DES ORDINATEURS Eric Vekout, M. Ing.,

❖ La carte mère est le support principal sur lequel sont fixés ou connectés les
principaux composants de l’ordinateur, tels que le microprocesseur, la
mémoire centrale, les ports, etc.

❖ Le chipset est un ensemble de circuits intégrés qui assurent la liaison entre


le microprocesseur et les autres composants de l’ordinateur. Il gère
notamment les échanges de données entre la mémoire centrale, les
périphériques et le bus.

Page 7 sur 46
ARCHITECTURE DES ORDINATEURS Eric Vekout, M. Ing.,

❖ Le bus est un ensemble de fils ou de pistes qui assurent la circulation des


informations ou des données entre les différents organes de l’ordinateur.
Il existe trois types de bus (selon l’utilisation) :
o Le bus de données est le bus qui transporte les données entre la
mémoire centrale, le microprocesseur et les périphériques. Sa
largeur détermine la quantité de données qui peuvent être
transférées simultanément.
o Le bus de commande est le bus qui transporte les signaux de
contrôle entre l’unité de contrôle du microprocesseur et les autres
organes de l’ordinateur. Il permet notamment d’indiquer le sens du
transfert des données, le type d’opération à effectuer, etc.
o Le bus d’adresse est le bus qui transporte les adresses des
emplacements mémoire ou des périphériques où doivent être
envoyées ou reçues les données. Sa largeur détermine la capacité
d’adressage de l’ordinateur.
Toutefois, il existe d’autres classification de bus : selon la méthode d’envoi
des informations et selon la technologie utilisée.

II. Architecture d’un processeur de traitement


Un processeur de traitement est un composant essentiel d’un système informatique, qui
exécute les instructions du programme stockées dans la mémoire centrale. Le processeur
de traitement est composé de plusieurs éléments qui interviennent dans le séquencement
des macro-instructions, c’est-à-dire la suite d’opérations élémentaires qui réalisent une
instruction.

Page 8 sur 46
ARCHITECTURE DES ORDINATEURS Eric Vekout, M. Ing.,

1. Éléments intervenant dans le séquencement des macro-instructions


❖ Le compteur ordinal ou compteur de programme (CO ou PC) qui est un registre
interne qui contient l’adresse de la prochaine instruction à exécuter. Il est
incrémenté automatiquement après chaque instruction, sauf en cas de saut ou de
branchement conditionnel.
❖ Le registre d’instruction ou registre de commande (RI ou IR) qui est un registre
interne qui stocke temporairement l’instruction à exécuter. Il est chargé à partir de
la mémoire centrale à l’adresse indiquée par le compteur ordinal lors du cycle de
recherche. Il contient le code opération et les opérandes de l’instruction, qui sont
ensuite décodés et envoyés aux éléments appropriés du processeur lors du cycle de
décodage.
❖ Le registre d’état (ou registre de drapeaux) est un registre interne qui contient des
bits indiquant certaines conditions résultant de l’exécution des opérations
arithmétiques ou logiques par le processeur. Ces bits sont appelés des drapeaux ou
des indicateurs, et ils servent à déterminer le résultat des tests logiques ou des
branchements conditionnels. Par exemple, le bit Z (zéro) indique si le résultat de
la dernière opération est nul ou non, le bit C (carry) indique si un report a été généré
ou non, le bit N (négatif) indique si le résultat de la dernière opération est négatif
ou non, etc.
❖ Le registre accumulateur est un registre interne qui sert à stocker temporairement
les opérandes et les résultats des opérations arithmétiques ou logiques effectuées
par le processeur. Il fait partie de l’unité arithmétique et logique (UAL), qui est le
cœur du processeur. Le registre accumulateur est souvent utilisé comme source ou
destination des données, ce qui simplifie le codage et l’exécution des instructions.
Il existe différents types de registres accumulateurs, selon la taille et le nombre de
bits qu’ils peuvent contenir. Par exemple, sur les processeurs x86 32 bits, le registre
accumulateur principal est EAX, qui est un registre de 32 bits, composé de deux
registres de 16 bits : AX et AH/AL.
❖ Les autres registres internes sont des mémoires rapides qui stockent
temporairement les données utilisées par le processeur. Il existe différents types de
registres, tels que les registres d’index, les registres accumulateurs, les registres
d’état, etc.
❖ Le code opération (opcode ou OP) est la partie d’une instruction qui indique au
processeur quelle opération il doit effectuer. Il est généralement codé sur quelques

Page 9 sur 46
ARCHITECTURE DES ORDINATEURS Eric Vekout, M. Ing.,

bits et peut être suivi d’un ou plusieurs opérandes, qui sont les données sur
lesquelles l’opération s’applique
❖ Le micro-séquenceur, qui est une logique simple et câblée, chargée de dérouler le
microprogramme, c’est-à-dire la suite de micro-instructions correspondant à une
macro-instruction. Il interprète le code opération et les opérandes de la macro-
instruction et exécute le microcode.
❖ Le microcode, qui est l’ensemble des micro-instructions stockées dans une
mémoire interne au microprocesseur. Il existe différents types de microcode, tels
que le microcode horizontal, qui utilise un nombre très grand de bits pour contrôler
tous les éléments du processeur, ou le microcode vertical, qui utilise un nombre
réduit de bits pour coder des opérations plus complexes.
❖ Le séquenceur (ou unité de contrôle), qui est le cerveau du microprocesseur, qui
commande l’ensemble des organes du microprocesseur. Il génère les signaux de
contrôle nécessaires pour le déroulement des micro-instructions.
❖ L’unité arithmétique et logique (ou UAL) qui est le cœur du processeur, qui
effectue les opérations arithmétiques (addition, soustraction, multiplication,
division, etc.) et logiques (et, ou, non, etc.) sur les données provenant des registres
ou de la mémoire centrale.
❖ Le bus qui est un ensemble de fils qui relie le processeur aux autres composants
du système informatique, tels que la mémoire centrale, les périphériques
d’entrée/sortie, etc. Il permet le transfert des données, des adresses et des signaux
de contrôle. Il existe différents types de bus, tels que le bus d’adresses, le bus de
données, le bus de contrôle, etc.
❖ Le chemin de données (ou data path) est l’ensemble des circuits qui permettent le
transfert des données entre les différents éléments du processeur, tels que les
registres, l’UAL, le compteur ordinal, etc.
❖ La mémoire centrale (ou mémoire principale) qui stocke les données et les
programmes en cours d’exécution. Elle est organisée en unités adressables appelées
octets (ou bytes), qui sont généralement codés sur 8 bits. La mémoire centrale peut
être composée de différents types de technologies, telles que la RAM (Random
Access Memory), la ROM (Read Only Memory), etc.
❖ Les mécanismes d’adressage sont les règles qui permettent au processeur d’accéder
aux données stockées dans la mémoire centrale ou dans les registres internes. Il

Page 10 sur 46
ARCHITECTURE DES ORDINATEURS Eric Vekout, M. Ing.,

existe différents types de mécanismes d’adressage, tels que l’adressage immédiat,


l’adressage direct, l’adressage indirect, l’adressage relatif, etc.
❖ Les cycles d’instruction sont les étapes successives que le processeur suit pour
exécuter une instruction. Il existe généralement quatre cycles principaux : le cycle
de recherche (ou fetch), qui consiste à lire l’instruction à l’adresse indiquée par le
compteur ordinal ; le cycle de décodage (ou decode), qui consiste à analyser le code
opération et les opérandes de l’instruction ; le cycle d’exécution (ou execute), qui
consiste à effectuer l’opération demandée par l’instruction ; et le cycle d’écriture
(ou write), qui consiste à enregistrer le résultat de l’opération dans un registre ou
dans la mémoire centrale.

2. Déroulement d’une instruction


Les différentes étapes que le processeur suit pour exécuter une instruction sont les
suivantes :

❖ Le cycle de recherche (ou fetch) consiste à lire l’instruction à l’adresse indiquée par
le compteur ordinal (CO ou PC), qui est un registre interne qui contient l’adresse
de la prochaine instruction à exécuter. L’instruction est transférée du bus de
données, qui est un ensemble de fils qui relie le processeur aux autres composants
du système informatique, vers le registre d’instruction (RI), qui est un registre
interne qui stocke temporairement l’instruction à exécuter. Le compteur ordinal est
ensuite incrémenté de la taille de l’instruction, sauf en cas de saut ou de
branchement conditionnel.
❖ Le cycle de décodage (ou decode) consiste à analyser le code opération (ou opcode)
et les opérandes de l’instruction. Le code opération est la partie de l’instruction qui
indique au processeur quelle opération il doit effectuer. Il est généralement codé
sur quelques bits et peut être suivi d’un ou plusieurs opérandes, qui sont les données
sur lesquelles l’opération s’applique. Le code opération est envoyé à l’unité de
contrôle (UC), qui est le cerveau du processeur, qui génère les signaux de contrôle
nécessaires pour le déroulement de l’instruction. Les opérandes sont envoyés à
l’unité arithmétique et logique (UAL), qui est le cœur du processeur, qui effectue
les opérations arithmétiques et logiques sur les données. Les opérandes peuvent
provenir de la mémoire centrale (MC), qui est une mémoire volatile qui stocke les
programmes et les données utilisés par le processeur, ou des registres internes, qui
sont des mémoires rapides qui stockent temporairement les données utilisées par le
processeur. Il existe différents types de registres, tels que les registres d’index, les

Page 11 sur 46
ARCHITECTURE DES ORDINATEURS Eric Vekout, M. Ing.,

registres accumulateurs, les registres d’état, etc. Les opérandes peuvent être adressés
selon différents mécanismes d’adressage, qui sont les règles qui permettent au
processeur d’accéder aux données stockées dans la mémoire centrale ou dans les
registres internes. Il existe différents types de mécanismes d’adressage, tels que
l’adressage immédiat, l’adressage direct, l’adressage indirect, l’adressage relatif, etc.
❖ Le cycle d’exécution (ou execute) consiste à effectuer l’opération demandée par
l’instruction. L’opération est réalisée par l’UAL, qui reçoit les opérandes et produit
le résultat. L’UAL peut également modifier le contenu du registre d’état (RE), qui
est un registre interne qui contient des bits indiquant certaines conditions résultant
de l’exécution de l’instruction, telles que le dépassement de capacité, le zéro, le
signe, etc. Ces bits peuvent servir à déterminer le résultat des tests logiques ou des
branchements conditionnels.
❖ Le cycle d’écriture (ou write) consiste à enregistrer le résultat de l’opération dans un
registre ou dans la mémoire centrale. Le résultat est transféré depuis l’UAL vers le
bus de données, puis vers la destination choisie par l’instruction

Début
|
V
Cycle de recherche
|
V
Cycle de décodage
|
V
Cycle d'exécution
|
V
Cycle d'écriture
|
V
Fin

Page 12 sur 46
ARCHITECTURE DES ORDINATEURS Eric Vekout, M. Ing.,

Voici quelques exemples concrets d’instructions et de données pour montrer le


fonctionnement du processeur :
❖ ADD R1,R2 : Cette instruction signifie qu’il faut ajouter le contenu du registre R1
au contenu du registre R2 et stocker le résultat dans le registre R1. Le code
opération est ADD et les opérandes sont R1 et R2. L’UAL effectue l’addition et
modifie éventuellement le registre d’état. Le résultat est écrit dans le registre R1.

ADD R1,R2

Début
|
V
Cycle de recherche : lire l'instruction à l'adresse CO et la stocker dans RI, incrémenter CO
|
V
Cycle de décodage : envoyer le code opération ADD à l'UC, envoyer les opérandes R1 et R2 à l'UAL
|
V
Cycle d'exécution : effectuer l'addition R1 + R2 et stocker le résultat dans R1, modifier éventuellement
RE
|
V
Cycle d'écriture : pas d'écriture nécessaire dans ce cas
|
V
Fin

❖ LD R3,(100) : Cette instruction signifie qu’il faut charger dans le registre R3 la


donnée située à l’adresse 100 de la mémoire centrale. Le code opération est LD et
les opérandes sont R3 et (100). L’unité de contrôle envoie l’adresse 100 sur le bus
d’adresses, qui est un ensemble de fils qui relie le processeur à la mémoire centrale,
et reçoit la donnée correspondante sur le bus de données. La donnée est écrite dans
le registre R3

Page 13 sur 46
ARCHITECTURE DES ORDINATEURS Eric Vekout, M. Ing.,

LD R3,(100)
Début
|
V
Cycle de recherche : lire l'instruction à l'adresse CO et la stocker dans RI, incrémenter CO
|
V
Cycle de décodage : envoyer le code opération LD à l'UC, envoyer l'opérande R3 à l'UAL, envoyer
l'adresse 100 sur le bus d'adresses
|
V
Cycle d'exécution : pas d'exécution nécessaire dans ce cas
|
V
Cycle d'écriture : lire la donnée à l'adresse 100 sur le bus de données et la stocker dans R3
|
V
Fin

❖ JMP (R4) : Cette instruction signifie qu’il faut sauter à l’adresse contenue dans le
registre R4. Le code opération est JMP et l’opérande est (R4). L’unité de contrôle
envoie le contenu du registre R4 sur le bus d’adresses et modifie le compteur ordinal
avec cette valeur. Le processeur reprend alors le cycle de recherche à partir de cette
adresse.
JMP (R4)
Début
|
V
Cycle de recherche : lire l'instruction à l'adresse CO et la stocker dans RI, incrémenter CO
|
V
Cycle de décodage : envoyer le code opération JMP à l'UC, envoyer l'opérande (R4) à l'UAL
|
V
Cycle d'exécution : pas d'exécution nécessaire dans ce cas
|
V
Cycle d'écriture : envoyer le contenu du registre R4 sur le bus d'adresses et modifier CO avec cette valeur
|
V
Fin

Page 14 sur 46
ARCHITECTURE DES ORDINATEURS Eric Vekout, M. Ing.,

III. La mémoire
La mémoire est la capacité de stocker et de manipuler des informations dans un système
informatique. Il existe différents types et technologies de mémoire, qui se distinguent
par leur vitesse, leur capacité, leur coût et leur fonctionnement.

1. Types et technologies
Les types et technologies de mémoire sont les différentes catégories et caractéristiques
des mémoires informatiques, qui se distinguent par leur vitesse, leur capacité, leur coût,
leur fonctionnement et leur proximité avec le processeur. Parmi les types et
technologies de mémoire les plus courants, on peut citer :
❖ Les registres, qui sont des mémoires électroniques très rapides et de faible
capacité, intégrées au processeur. Ils servent à stocker temporairement les
données et les instructions utilisées par le processeur. Il existe différents types
de registres, tels que les registres d'index, les registres accumulateurs, les registres
d'état, etc.
❖ La mémoire cache, qui est une mémoire électronique rapide et de capacité
moyenne, située entre le processeur et la mémoire principale. Elle sert à stocker
temporairement les données et les instructions les plus fréquemment utilisées
par le processeur, afin de réduire le temps d'accès à la mémoire principale. Il
existe différents niveaux de mémoire cache, tels que la cache L1, la cache L2 ou
la cache L3.
❖ La mémoire centrale (ou mémoire principale) qui stocke les données et les
programmes en cours d’exécution., située sur la carte mère. La mémoire
principale est composée de deux parties :
o La plus courante est la mémoire vive ou RAM (Random Access Memory),
qui est une mémoire volatile permettant un accès rapide et aléatoire aux
informations. Il existe différents types de RAM, comme la DRAM
(Dynamic RAM), la SRAM (Static RAM) ou la DDR SDRAM (Double
Data Rate Synchronous Dynamic RAM), qui se différencient par leur
technologie, leur vitesse et leur consommation électrique.
o La ROM qui est une mémoire non volatile qui stocke des instructions et
des données permanentes, comme le BIOS (qui permet le démarrage de
l’ordinateur), mais elle est généralement de capacité plus faible que la
RAM et elle n’est pas accessible en écriture par le processeur. La ROM

Page 15 sur 46
ARCHITECTURE DES ORDINATEURS Eric Vekout, M. Ing.,

est donc moins utilisée que la RAM pour les programmes et les données
en cours d’exécution.
❖ La mémoire flash, qui est une mémoire électronique non volatile et de grande
capacité, située sur des supports amovibles ou internes. Elle sert à stocker des
données de façon permanente ou semi-permanente. La mémoire flash permet
un effacement et une réécriture rapides des données, contrairement aux
mémoires mortes ou ROM (Read Only Memory), qui ne peuvent être modifiées
qu'une seule fois ou pas du tout. La mémoire flash est utilisée pour les disques
SSD (Solid State Drive), les clés USB, les cartes mémoire, etc.
❖ La mémoire de masse, qui est une mémoire non volatile et de très grande
capacité, située sur des supports externes ou internes. Elle sert à stocker des
données de façon permanente ou semi-permanente. La mémoire de masse la
plus courante est le disque dur, qui utilise un support magnétique pour
enregistrer les informations. Il existe différents types de « disques durs », comme
les disques HDD (Hard Disk Drive), qui font physiquement tourner un plateau,
ou les disques SSD (Solid State Drive), qui utilisent de la mémoire flash. Il existe
aussi d'autres types de mémoires de masse, comme les disques optiques (CD-
ROM, DVD-ROM, etc.), qui utilisent un faisceau laser pour lire ou graver les
informations.

2. Hiérarchie de la mémoire
La hiérarchie de la mémoire désigne l’organisation des mémoires informatiques en
différents niveaux selon leur vitesse, leur capacité, leur coût et leur proximité avec le
processeur. Le processeur accède aux instructions et aux données depuis la mémoire,
mais tous les niveaux de mémoire ne sont pas égaux. Les mémoires les plus rapides
sont les plus chères et les plus proches du processeur, comme les registres, tandis que
les mémoires les plus lentes sont les moins chères et les plus éloignées du processeur,
comme le disque dur. La hiérarchie de la mémoire permet d’optimiser le temps d’accès
aux informations en utilisant des principes tels que la localité spatiale (les données
proches sont souvent accédées ensemble) ou la localité temporelle (les données
récemment accédées sont souvent réutilisées).

Page 16 sur 46
ARCHITECTURE DES ORDINATEURS Eric Vekout, M. Ing.,

Régistres

- Capacité de stockage +
Mémoire
cache
- Vitesse +

Mémoire principale

Mémoire flash

Mémoire de masse

3. Implantation physique
L’implantation physique de la mémoire désigne la façon dont les informations sont
représentées et stockées sur un support matériel. L’implantation physique dépend du
type et de la technologie de la mémoire utilisée. Par exemple, la RAM utilise des
condensateurs ou des bascules pour stocker les bits d’information sous forme de
charges électriques, tandis que le disque dur utilise des têtes de lecture/écriture pour
modifier le champ magnétique d’un disque rotatif. L’implantation physique de la
mémoire influe sur ses caractéristiques, comme sa capacité, sa vitesse, sa fiabilité ou sa
consommation électrique.

4. Organisation et utilisation
L’organisation et l’utilisation de la mémoire désignent la façon dont les informations
sont structurées et gérées dans un système informatique. L’organisation et l’utilisation
de la mémoire dépendent du système d’exploitation, du langage de programmation et
du type d’application utilisés. Par exemple, le système d’exploitation peut utiliser des
techniques comme la pagination ou la segmentation pour diviser l’espace mémoire en
unités logiques et gérer les accès aux différentes zones de la mémoire. Le langage de
programmation peut utiliser des concepts comme les variables, les tableaux ou les
pointeurs pour manipuler les données en mémoire. Le type d’application peut utiliser
des structures de données comme les listes, les piles ou les arbres pour organiser les
informations en fonction de leurs relations logiques.

Page 17 sur 46
ARCHITECTURE DES ORDINATEURS Eric Vekout, M. Ing.,

5. Mécanismes d’adressages
Les mécanismes d’adressage sont les moyens de désigner les différentes parties de la
mémoire dans un système informatique. Les mécanismes d’adressage dépendent du
processeur, du système d’exploitation et du langage de programmation utilisés. Il existe
différents modes d’adressage, qui se différencient par la façon dont l’adresse mémoire
est calculée à partir des éléments de l’instruction. Par exemple, les modes d’adressage
les plus courants sont :
❖ L’adressage direct, qui utilise une adresse mémoire explicite comme opérande.
Par exemple, l’instruction LOAD A, 100 signifie charger dans le registre A le
contenu de la mémoire à l’adresse 100.
❖ L’adressage indirect, qui utilise un registre ou une mémoire comme opérande,
dont le contenu est l’adresse mémoire effective. Par exemple, l’instruction
LOAD A, (B) signifie charger dans le registre A le contenu de la mémoire à
l’adresse contenue dans le registre B.
❖ L’adressage indexé, qui utilise un registre ou une constante comme opérande,
dont le contenu est ajouté à une adresse de base pour obtenir l’adresse mémoire
effective. Par exemple, l’instruction LOAD A, 100(X) signifie charger dans le
registre A le contenu de la mémoire à l’adresse 100 plus le contenu du registre
X.
❖ L’adressage relatif, qui utilise une constante comme opérande, dont le contenu
est ajouté au compteur ordinal pour obtenir l’adresse mémoire effective. Par
exemple, l’instruction LOAD A, 10 signifie charger dans le registre A le contenu
de la mémoire à l’adresse 10 plus le contenu du compteur ordinal.
❖ L’adressage absolu, qui utilise une adresse mémoire fixe comme opérande,
indépendamment du contexte d’exécution. Par exemple, l’instruction LOAD A,
#100 signifie charger dans le registre A le contenu de la mémoire à l’adresse
absolue 100.

Page 18 sur 46
ARCHITECTURE DES ORDINATEURS Eric Vekout, M. Ing.,

IV. Le langage assembleur


1. C’est quoi le langage assembleur ?
Le langage assembleur est un langage de programmation de bas niveau, qui permet de
contrôler directement le fonctionnement du microprocesseur. Le langage assembleur
est constitué d’instructions simples, appelées mnémoniques, qui correspondent aux
opérations élémentaires du microprocesseur. Chaque instruction assembleur est traduite
en une ou plusieurs instructions machine, qui sont des combinaisons de bits
compréhensibles par le microprocesseur. Le programme qui effectue cette traduction
s’appelle un assembleur.
Le langage assembleur présente des avantages et des inconvénients par rapport aux
langages de programmation de haut niveau, comme le C ou le Java. Parmi les avantages,
on peut citer :
❖ La rapidité d’exécution, car le langage assembleur est proche du langage machine et
ne nécessite pas d’interprétation ou de compilation complexe.
❖ La possibilité d’accéder directement aux ressources matérielles du système, comme
la mémoire, les ports d’entrée/sortie ou les interruptions.
❖ La possibilité d’optimiser le code en fonction des caractéristiques du
microprocesseur, comme le nombre et le type de registres, les modes d’adressage
ou les instructions spécifiques.
Parmi les inconvénients, on peut citer :
❖ La difficulté d’apprentissage et de compréhension, car le langage assembleur est peu
lisible et peu structuré.
❖ La faible portabilité du code, car le langage assembleur dépend du type de
microprocesseur utilisé et n’est pas compatible avec d’autres architectures.
❖ La complexité du développement et du débogage, car le langage assembleur
nécessite une connaissance approfondie du fonctionnement du microprocesseur et
ne dispose pas d’outils avancés comme les bibliothèques, les environnements de
développement intégrés ou les débogueurs.
Le langage assembleur est utilisé dans des domaines où la performance, la précision ou
le contrôle du matériel sont primordiaux. Par exemple, le langage assembleur est utilisé
pour :

Page 19 sur 46
ARCHITECTURE DES ORDINATEURS Eric Vekout, M. Ing.,

❖ Programmer des systèmes embarqués, comme les microcontrôleurs, les cartes à


puce ou les robots.
❖ Développer des pilotes de périphériques, qui assurent la communication entre le
système d’exploitation et les composants matériels.
❖ Optimiser des parties critiques de programmes écrits en langages de haut niveau,
comme les jeux vidéo, les applications graphiques ou les logiciels de cryptographie.
Le langage assembleur se rapporte au langage machine et au microprocesseur de la
manière suivante :
❖ Le langage machine est le langage natif du microprocesseur, qui est constitué de
séquences binaires représentant des opérations élémentaires. Le langage machine
est difficile à écrire et à lire par un humain, car il n’utilise que des 0 et des 1.
❖ Le langage assembleur est une représentation symbolique du langage machine, qui
utilise des mnémoniques pour désigner les opérations élémentaires. Le langage
assembleur est plus facile à écrire et à lire par un humain, car il utilise des mots et
des symboles.
❖ L’assembleur est le programme qui traduit le langage assembleur en langage
machine, en remplaçant chaque mnémonique par son équivalent binaire.
L’assembleur produit un fichier exécutable contenant le code machine.
Voici quelques exemples de programmes simples en langage assembleur et en langage
machine :
❖ Un programme qui affiche le caractère ‘A’ à l’écran :

; Langage assembleur
MOV AH, 0Eh ; Fonction d'affichage
MOV AL, 'A' ; Caractère à afficher
INT 10h ; Appel au BIOS

; Langage machine
B4 0E ; MOV AH, 0Eh
B0 41 ; MOV AL, 'A'
CD 10 ; INT 10h

❖ Un programme qui additionne deux nombres (5 et 7) et stocke le résultat dans le


registre AX :

Page 20 sur 46
ARCHITECTURE DES ORDINATEURS Eric Vekout, M. Ing.,

; Langage assembleur
MOV AX, 5 ; AX = 5
ADD AX, 7 ; AX = AX + 7

; Langage machine
B8 05 00 ; MOV AX, 5
05 07 00 ; ADD AX, 7

2. Architecture du microprocesseur x86


L’architecture du microprocesseur x86 est l’ensemble des éléments matériels et
logiciels qui définissent le fonctionnement du microprocesseur x86. Parmi ces
éléments, on peut distinguer les registres et l’unité arithmétique et logique (ALU).
a) Les registres
Comme nous l’avons déjà dit auparavant, les registres sont des mémoires internes
au microprocesseur, qui servent à stocker temporairement des données ou des
adresses. Les registres sont plus rapides que la mémoire externe, mais ils sont en
nombre limité. Les registres du microprocesseur x86 sont les suivants :
❖ Les registres généraux (AX, BX, CX, DX) sont des registres de 16 bits, qui
servent à stocker des données ou des opérandes. Chaque registre général
peut être divisé en deux registres de 8 bits : le registre de poids fort (AH,
BH, CH, DH) et le registre de poids faible (AL, BL, CL, DL). Les registres
généraux ont des rôles spécifiques selon les instructions utilisées. Par
exemple, le registre AX sert d’accumulateur pour les opérations
arithmétiques, le registre BX sert d’index pour l’adressage indirect, le
registre CX sert de compteur pour les boucles ou les décalages, et le registre
DX sert d’extension pour les opérations sur 32 bits.
❖ Les registres d’index (SI, DI) sont des registres de 16 bits, qui servent à
stocker des adresses ou des déplacements. Les registres d’index sont
utilisés pour l’adressage indexé ou basé, qui permet d’accéder à des
éléments d’un tableau ou d’une chaîne de caractères. Le registre SI sert
d’index source et le registre DI sert d’index destination pour les opérations
de copie ou de comparaison.
❖ Les registres de pointeurs (SP, BP) sont des registres de 16 bits, qui servent
à stocker des adresses relatives au segment de pile. La pile est une zone de
la mémoire qui sert à stocker temporairement des données lors des appels

Page 21 sur 46
ARCHITECTURE DES ORDINATEURS Eric Vekout, M. Ing.,

de procédures ou des interruptions. Le registre SP sert de pointeur de pile


et indique le sommet de la pile. Le registre BP sert de pointeur de base et
indique le début du cadre d’activation d’une procédure.
❖ Les registres de segments (CS, DS, SS, ES) sont des registres de 16 bits,
qui servent à stocker les adresses des segments de la mémoire. Un segment
est une zone contiguë de la mémoire qui peut contenir du code, des
données ou de la pile. Le microprocesseur x86 utilise un mode d’adressage
segmenté, qui permet d’accéder à plus de 64 Ko de mémoire en combinant
un registre de segment et un registre d’offset. Le registre CS sert de
segment de code et contient l’adresse du segment où se trouve le
programme en cours d’exécution. Le registre DS sert de segment de
données et contient l’adresse du segment où se trouvent les données du
programme. Le registre SS sert de segment de pile et contient l’adresse du
segment où se trouve la pile du programme. Le registre ES sert de segment
supplémentaire et contient l’adresse d’un segment supplémentaire utilisé
par certaines instructions.
❖ Le registre d’état (FLAGS) est un registre de 16 bits, qui contient des bits
indiquant certaines conditions résultant de l’exécution des opérations
arithmétiques ou logiques par le microprocesseur. Ces bits sont appelés
des drapeaux ou des indicateurs, et ils servent à déterminer le résultat des
tests logiques ou des branchements conditionnels. Par exemple, le bit Z
(zéro) indique si le résultat de la dernière opération est nul ou non, le bit C
(carry) indique si un report a été généré ou non, le bit N (négatif) indique
si le résultat de la dernière opération est négatif ou non, etc5.
❖ Les registres spéciaux (IP, EIP) sont des registres internes au
microprocesseur, qui ne sont pas directement accessibles par le
programmeur. Le registre IP (instruction pointer) est un registre de 16 bits,
qui contient l’adresse de la prochaine instruction à exécuter. Le registre IP
est combiné avec le registre CS pour former l’adresse effective de
l’instruction. Le registre EIP (extended instruction pointer) est un registre
de 32 bits, qui contient l’adresse de la prochaine instruction à exécuter en
mode protégé. Le mode protégé est un mode d’exécution du
microprocesseur x86 qui permet d’accéder à plus de 1 Mo de mémoire et
de gérer la protection des segments.

Page 22 sur 46
ARCHITECTURE DES ORDINATEURS Eric Vekout, M. Ing.,

b) L’unité Arithmétique et Logique (UAL ou ALU)


L’unité arithmétique et logique (ALU) est le cœur du microprocesseur, qui
effectue les opérations arithmétiques et logiques sur les données. L’ALU reçoit
les opérandes depuis les registres ou la mémoire et produit le résultat dans un
registre ou dans la mémoire. L’ALU peut également modifier le contenu du
registre d’état, qui contient des bits indiquant certaines conditions résultant de
l’exécution des opérations. L’ALU peut réaliser différentes opérations, telles que
:
❖ Les opérations arithmétiques, qui sont des opérations sur les nombres,
comme l’addition, la soustraction, la multiplication, la division,
l’incrémentation, la décrémentation, etc. Ces opérations peuvent être
effectuées sur des nombres entiers ou réels, signés ou non signés, selon le
type et le mode d’adressage des opérandes.
❖ Les opérations logiques, qui sont des opérations sur les bits, comme le ET,
le OU, le NON, le OU exclusif, le décalage à gauche, le décalage à droite,
la rotation à gauche, la rotation à droite, etc. Ces opérations peuvent être
effectuées sur des registres ou des mémoires de 8, 16 ou 32 bits.

3. Jeu d’instructions du microprocesseur x86


Le jeu d’instructions du microprocesseur x86 est l’ensemble des opérations
élémentaires que le microprocesseur x86 peut réaliser. Chaque opération est
représentée par une instruction en langage assembleur, qui correspond à une ou
plusieurs instructions en langage machine. Le jeu d’instructions du microprocesseur
x86 comprend plusieurs catégories d’instructions, telles que les instructions de transfert
de données, les instructions arithmétiques et logiques, les instructions de contrôle du
flux et les instructions d’entrée/sortie.
a) Les instructions de transfert de données
Les instructions de transfert de données sont des instructions qui permettent de
déplacer des données entre les registres, la mémoire ou les ports d’entrée/sortie.
La syntaxe générale des instructions de transfert de données est la suivante :
mnémonique destination, source
Où mnémonique est le nom de l’instruction, destination est l’opérande qui reçoit
la donnée et source est l’opérande qui fournit la donnée. La sémantique des
instructions de transfert de données est la suivante :

Page 23 sur 46
ARCHITECTURE DES ORDINATEURS Eric Vekout, M. Ing.,

❖ Le sens du transfert est toujours de la source vers la destination. La source


n’est pas modifiée par le transfert, tandis que la destination est écrasée par
la donnée provenant de la source.
❖ Les opérandes possibles sont des registres, des mémoires ou des ports
d’entrée/sortie, selon le type d’instruction. Les opérandes doivent être de
même taille (8, 16 ou 32 bits), sauf pour certaines instructions spéciales.
❖ Les restrictions éventuelles sont liées au mode d’adressage ou aux règles
d’utilisation des registres. Par exemple, il n’est pas possible de transférer
directement une donnée entre deux mémoires ou entre deux ports
d’entrée/sortie.
Les exemples d’utilisation des instructions de transfert de données sont les
suivants :
❖ Copier une valeur dans un registre ou une mémoire. Par exemple,
l’instruction MOV AX, 1234h copie la valeur hexadécimale 1234 dans le
registre AX, et l’instruction MOV [1000h], BX copie le contenu du registre
BX dans la mémoire à l’adresse 1000h.
❖ Échanger deux valeurs. Par exemple, l’instruction XCHG AX, CX échange
le contenu des registres AX et CX.
❖ Empiler ou dépiler une valeur sur la pile. Par exemple, l’instruction PUSH
AX empile le contenu du registre AX sur le sommet de la pile, et
l’instruction POP DX dépile le contenu du sommet de la pile dans le
registre DX.
b) Les instructions arithmétiques et logiques
Les instructions arithmétiques et logiques sont des instructions qui permettent
d’effectuer des opérations sur les nombres ou les bits. La syntaxe générale des
instructions arithmétiques et logiques est la suivante :
mnémonique destination, source
Où mnémonique est le nom de l’instruction, destination est l’opérande qui reçoit
le résultat de l’opération et source est l’opérande qui fournit un des termes de
l’opération. La sémantique des instructions arithmétiques et logiques est la
suivante :

Page 24 sur 46
ARCHITECTURE DES ORDINATEURS Eric Vekout, M. Ing.,

❖ Le résultat du calcul ou de l’opération logique est stocké dans la


destination. La destination est écrasée par le résultat provenant de
l’opération, tandis que la source n’est pas modifiée par l’opération.
❖ Les opérandes possibles sont des registres, des mémoires ou des
constantes, selon le type d’instruction. Les opérandes doivent être de
même taille (8, 16 ou 32 bits), sauf pour certaines instructions spéciales.
❖ Les restrictions éventuelles sont liées au mode d’adressage ou aux règles
d’utilisation des registres. Par exemple, il n’est pas possible d’effectuer une
opération entre deux mémoires ou entre deux constantes.
❖ Les drapeaux modifiés ou utilisés sont des bits du registre d’état qui
indiquent certaines conditions résultant de l’exécution des opérations
arithmétiques ou logiques. Par exemple, le bit Z (zéro) indique si le résultat
de la dernière opération est nul ou non, le bit C (carry) indique si un report
a été généré ou non, etc.
Les exemples d’utilisation des instructions arithmétiques et logiques sont les
suivants :
❖ Calculer une expression arithmétique ou logique. Par exemple,
l’instruction ADD AX, 10 ajoute la valeur 10 au contenu du registre AX,
et l’instruction OR AL, 0Fh effectue l’opération logique OU bit à bit entre
le contenu du registre AL et la valeur hexadécimale 0F.
❖ Manipuler des bits. Par exemple, l’instruction SHL AX, 1 décale le
contenu du registre AX d’un bit vers la gauche, et l’instruction NOT AL
inverse les bits du registre AL.
❖ Tester des conditions. Par exemple, l’instruction CMP AX, BX compare
le contenu des registres AX et BX et modifie les drapeaux du registre
d’état en fonction du résultat, et l’instruction TEST AL, 80h teste si le bit
de poids fort du registre AL est à 1 ou à 0.
c) Les instructions de contrôle de flux
Les instructions de contrôle du flux sont des instructions qui permettent de
modifier le pointeur d’instruction en fonction d’une condition ou d’une étiquette.
Le pointeur d’instruction est le registre interne qui contient l’adresse de la
prochaine instruction à exécuter. La syntaxe générale des instructions de contrôle
du flux est la suivante :

Page 25 sur 46
ARCHITECTURE DES ORDINATEURS Eric Vekout, M. Ing.,

mnémonique destination
Où mnémonique est le nom de l’instruction et destination est l’opérande qui
indique la nouvelle adresse du pointeur d’instruction. La sémantique des
instructions de contrôle du flux est la suivante :
❖ Le changement du pointeur d’instruction est effectué selon une condition
ou une étiquette. Une condition est une expression logique qui dépend des
drapeaux du registre d’état. Une étiquette est un nom symbolique qui
désigne une adresse dans le programme.
❖ Les opérandes possibles sont des registres, des mémoires, des constantes
ou des étiquettes, selon le type d’instruction. Les opérandes doivent être
de même taille que le pointeur d’instruction (16 ou 32 bits), sauf pour
certaines instructions spéciales.
❖ Les restrictions éventuelles sont liées au mode d’adressage ou aux règles
d’utilisation des registres. Par exemple, il n’est pas possible de sauter à une
adresse absolue en mode protégé ou à une adresse relative en mode réel.
❖ Les drapeaux utilisés sont des bits du registre d’état qui indiquent certaines
conditions résultant de l’exécution des opérations arithmétiques ou
logiques. Par exemple, le bit Z (zéro) indique si le résultat de la dernière
opération est nul ou non, le bit C (carry) indique si un report a été généré
ou non, etc.
Les exemples d’utilisation des instructions de contrôle du flux sont les suivants
:
❖ Réaliser des boucles. Par exemple, le code suivant affiche 10 fois le
caractère ‘A’ à l’écran :
MOV CX, 10 ; Initialiser le compteur à 10
BOUCLE: ; Début de la boucle
MOV AH, 0Eh ; Fonction d'affichage
MOV AL, 'A' ; Caractère à afficher
INT 10h ; Appel au BIOS
LOOP BOUCLE ; Décrémenter le compteur et sauter à BOUCLE si non nul

Page 26 sur 46
ARCHITECTURE DES ORDINATEURS Eric Vekout, M. Ing.,

❖ Réaliser des branchements conditionnels. Par exemple, le code suivant


compare deux nombres (5 et 7) et affiche ‘B’ si le premier est plus grand
que le second, ou ‘S’ sinon :
MOV AX, 5 ; AX = 5
MOV BX, 7 ; BX = 7
CMP AX, BX ; Comparer AX et BX
JA PLUS_GRAND ; Sauter à PLUS_GRAND si AX > BX
MOV AH, 0Eh ; Fonction d'affichage
MOV AL, 'S' ; Caractère à afficher
INT 10h ; Appel au BIOS
JMP FIN ; Sauter à FIN
PLUS_GRAND: ; Étiquette PLUS_GRAND
MOV AH, 0Eh ; Fonction d'affichage
MOV AL, 'B' ; Caractère à afficher
INT 10h ; Appel au BIOS
FIN: ; Étiquette FIN

❖ Réaliser des sauts inconditionnels. Par exemple, le code suivant saute à


l’adresse 1000h :
JMP 1000h

d) Les instructions d’entrée/sortie


Les instructions d’entrée/sortie sont des instructions qui permettent de transférer
des données entre les registres et les ports d’entrée/sortie. Les ports
d’entrée/sortie sont des interfaces qui permettent de communiquer avec les
périphériques externes, tels que le clavier, l’écran, l’imprimante, etc. La syntaxe
générale des instructions d’entrée/sortie est la suivante :
mnémonique destination, source
Où mnémonique est le nom de l’instruction, destination est l’opérande qui reçoit
la donnée et source est l’opérande qui fournit la donnée. La sémantique des
instructions d’entrée/sortie est la suivante :
❖ Le transfert des données est effectué entre les registres et les ports
d’entrée/sortie. La source ou la destination doit être un registre de 8 ou 16
bits (AL, AH, AX), et l’autre opérande doit être un port d’entrée/sortie de
8 ou 16 bits. Le sens du transfert dépend du type d’instruction.

Page 27 sur 46
ARCHITECTURE DES ORDINATEURS Eric Vekout, M. Ing.,

❖ Les opérandes possibles sont des registres ou des ports d’entrée/sortie,


selon le type d’instruction. Les opérandes doivent être de même taille (8
ou 16 bits), sauf pour certaines instructions spéciales.
❖ Les restrictions éventuelles sont liées au mode d’accès aux ports
d’entrée/sortie. Il existe deux modes d’accès : le mode direct et le mode
indirect. Le mode direct utilise une constante comme opérande pour
désigner le numéro du port d’entrée/sortie. Le mode indirect utilise le
registre DX comme opérande pour contenir le numéro du port
d’entrée/sortie.
Les exemples d’utilisation des instructions d’entrée/sortie sont les suivants :
❖ Lire une donnée sur un périphérique externe. Par exemple, l’instruction
IN AL, 60h lit une donnée sur le port 60h, qui correspond au clavier, et
la stocke dans le registre AL.
❖ Écrire une donnée sur un périphérique externe. Par exemple, l’instruction
OUT 378h, AL écrit la donnée contenue dans le registre AL sur le port
378h, qui correspond à l’imprimante.

4. Assembleur et désassembleur
a) Qu’est-ce qu’un assembleur ?
Un assembleur est un programme qui traduit un programme écrit en langage
assembleur en un programme écrit en langage machine. L’assembleur permet au
programmeur de manipuler directement les instructions du microprocesseur sans
avoir à connaître leur représentation binaire. Le processus d’assemblage consiste
à analyser le code source en langage assembleur et à générer le code objet en
langage machine correspondant. L’assembleur produit différents formats de
fichiers selon le type et le mode d’exécution du programme :
❖ Le format binaire est un fichier qui contient uniquement le code machine
du programme, sans aucune information supplémentaire. Le format
binaire est utilisé pour les programmes qui s’exécutent directement sur le
microprocesseur sans passer par un système d’exploitation.
❖ Le format hexadécimal est un fichier qui contient le code machine du
programme sous forme de caractères hexadécimaux, séparés par des
espaces ou des sauts de ligne. Le format hexadécimal est utilisé pour
visualiser ou modifier facilement le code machine du programme.

Page 28 sur 46
ARCHITECTURE DES ORDINATEURS Eric Vekout, M. Ing.,

❖ Le format objet est un fichier qui contient le code machine du programme


ainsi que des informations supplémentaires, telles que les adresses relatives,
les symboles externes ou les segments de mémoire. Le format objet est
utilisé pour les programmes qui doivent être liés à d’autres modules ou
bibliothèques avant de s’exécuter.
❖ Le format exécutable est un fichier qui contient le code machine du
programme ainsi que des informations supplémentaires, telles que les
adresses absolues, les symboles internes ou les ressources du système. Le
format exécutable est utilisé pour les programmes qui peuvent s’exécuter
directement sous un système d’exploitation.
b) Qu’est-ce qu’un désassembleur ?
Un désassembleur est un programme qui traduit un programme écrit en langage
machine en un programme écrit en langage assembleur. Le désassembleur permet
au programmeur de comprendre ou de modifier le fonctionnement d’un
programme dont il ne dispose pas du code source en langage assembleur. Le
processus de désassemblage consiste à analyser le code objet en langage machine
et à générer le code source en langage assembleur correspondant. Le
désassembleur accepte différents formats de fichiers selon le type et le mode
d’exécution du programme :
❖ Le format binaire : le désassembleur doit connaître l’adresse de départ du
programme et le type de microprocesseur utilisé pour générer le code
source en langage assembleur.
❖ Le format hexadécimal : comme précédemment, le désassembleur doit
connaître l’adresse de départ du programme et le type de microprocesseur
utilisé pour générer le code source en langage assembleur.
❖ Le format objet : le désassembleur utilise ces informations pour générer le
code source en langage assembleur avec les directives et les étiquettes
appropriées.
❖ Le format exécutable : comme précédemment, le désassembleur utilise ces
informations pour générer le code source en langage assembleur avec les
directives et les étiquettes appropriées.

Page 29 sur 46
ARCHITECTURE DES ORDINATEURS Eric Vekout, M. Ing.,

c) Comment utiliser un assembleur et un désassembleur ?


Pour utiliser un assembleur ou un désassembleur, il faut disposer d’un outil adapté
au type et au mode d’exécution du programme. Il existe plusieurs outils
disponibles pour assembler et désassembler des programmes, tels que :
❖ NASM (Netwide Assembler) est un assembleur gratuit et multiplateforme,
qui permet d’assembler des programmes en langage assembleur pour
différents types de microprocesseurs (x86, x86-64, etc.) et différents modes
d’exécution (réel, protégé, long, etc.). NASM produit différents formats de
fichiers (binaire, hexadécimal, objet, exécutable, etc.) selon les options
choisies.
❖ MASM (Microsoft Macro Assembler) est un assembleur payant et
propriétaire, qui permet d’assembler des programmes en langage
assembleur pour les microprocesseurs x86 et x86-64 sous Windows.
MASM produit des fichiers objet ou exécutables selon les options choisies.
❖ FASM (Flat Assembler) est un assembleur gratuit et multiplateforme, qui
permet d’assembler des programmes en langage assembleur pour les
microprocesseurs x86 et x86-64 sous différents systèmes d’exploitation
(Windows, Linux, DOS, etc.). FASM produit des fichiers binaire, objet ou
exécutable selon les options choisies.
❖ DEBUG est un débogueur intégré à DOS et Windows, qui permet
d’assembler et de désassembler des programmes en langage machine ou en
langage assembleur pour les microprocesseurs x86 en mode réel. DEBUG
accepte et produit des fichiers binaire ou hexadécimal selon les
commandes utilisées.
❖ IDA Pro (Interactive Disassembler Professional) est un désassembleur
payant et propriétaire, qui permet de désassembler des programmes en
langage machine pour différents types de microprocesseurs (x86, x86-64,
ARM, MIPS, etc.) et différents systèmes d’exploitation (Windows, Linux,
Mac OS X, etc.). IDA Pro accepte des fichiers objet ou exécutable et
produit des fichiers en langage assembleur avec des commentaires et des
annotations.
Les commandes et les options pour assembler et désassembler des programmes
avec ces outils sont différentes selon l’outil utilisé. Par exemple :

Page 30 sur 46
ARCHITECTURE DES ORDINATEURS Eric Vekout, M. Ing.,

❖ Pour assembler un programme avec NASM, il faut utiliser la commande


suivante :
nasm -f format source.asm -o destination

Où format est le format de fichier souhaité (bin, hex, obj, exe, etc.),
source.asm est le nom du fichier source en langage assembleur et
destination est le nom du fichier destination en langage machine.
❖ Pour désassembler un programme avec DEBUG, il faut utiliser la
commande suivante :
nasm -f format source.asm -o destination

Où nom est le nom du fichier à désassembler. Ensuite, il faut utiliser la


commande u pour afficher le code source en langage assembleur avec des
symboles et des adresses.
❖ Etc.

5. Programmation en langage assembleur


Pour programmer en langage assembleur, il faut respecter les règles de base pour écrire
un programme en langage assembleur. Les règles de base sont les suivantes :
❖ La structure du programme est composée de deux sections principales : la
section .data et la section .code ou .text. La section .data contient les données
du programme, comme les constantes, les variables ou les messages. La section
.code ou .text contient le code du programme, c’est-à-dire les instructions du
microprocesseur. Chaque section est déclarée par une directive, qui est un mot-
clé précédé d’un point. Par exemple :
.data ; Début de la section .data
msg db "Hello, world!", 0 ; Déclaration d'un message
.code ; Début de la section .code
main: ; Étiquette du point d'entrée du programme

❖ Les directives sont des mots-clés qui indiquent à l’assembleur comment traiter
le code source. Les directives ne sont pas traduites en langage machine, mais
elles servent à définir des propriétés du programme, comme le type et la taille
des données, l’adresse de départ du programme, l’alignement des segments de

Page 31 sur 46
ARCHITECTURE DES ORDINATEURS Eric Vekout, M. Ing.,

mémoire, etc. Les directives sont précédées d’un point et suivies d’un ou
plusieurs paramètres. Par exemple :
ORG 100h ; Définit l'adresse de départ du programme à 100h
DB 65 ; Définit un octet de valeur 65
DW 1234h ; Définit un mot de valeur hexadécimale 1234
DD 12345678h ; Définit un double mot de valeur hexadécimale 12345678
EQU 10 ; Définit une constante de valeur 10

❖ Les étiquettes sont des noms symboliques qui désignent une adresse dans le
programme. Les étiquettes servent à identifier les données ou les instructions du
programme, et à faciliter les références entre elles. Les étiquettes sont suivies
d’un deux-points et doivent être uniques dans le programme. Par exemple :
msg: db "Hello, world!", 0 ; Étiquette msg pour le message
main: ; Étiquette main pour le point d'entrée du programme
MOV AH, 0Eh ; Instruction pour afficher un caractère
MOV AL, [msg] ; Instruction pour charger le premier caractère du message dans AL

❖ Les commentaires sont des textes qui servent à expliquer ou à documenter le


code source. Les commentaires ne sont pas traduits en langage machine, mais
ils aident le programmeur à comprendre ou à modifier le code source. Les
commentaires sont précédés d’un point-virgule et peuvent être placés à la fin
d’une ligne ou sur une ligne séparée. Par exemple :
; Ceci est un commentaire sur une ligne séparée
MOV AX, BX ; Ceci est un commentaire à la fin d'une ligne

Pour utiliser les instructions du microprocesseur x86 pour réaliser des tâches simples,
il faut connaître la syntaxe, la sémantique et les exemples d’utilisation des instructions.
Voici quelques exemples de tâches simples réalisées avec les instructions du
microprocesseur x86 :
❖ Afficher un message à l’écran. Pour afficher un message à l’écran, il faut utiliser
les instructions MOV et INT 21h. L’instruction MOV sert à charger les
paramètres nécessaires pour appeler la fonction d’affichage du BIOS (Basic
Input Output System), qui est un ensemble de routines bas niveau qui gèrent les
périphériques externes. L’instruction INT 21h sert à appeler la fonction
d’affichage du BIOS en provoquant une interruption logicielle. Par exemple, le
code suivant affiche le message “Hello, world!” à l’écran :

Page 32 sur 46
ARCHITECTURE DES ORDINATEURS Eric Vekout, M. Ing.,

.data ; Début de la section .data


msg db "Hello, world!", 0 ; Déclaration du message avec un zéro terminal
.code ; Début de la section .code
main: ; Étiquette du point d'entrée du programme
MOV AH, 09h ; Charger le numéro de la fonction d'affichage du BIOS dans AH
INT 21h ; Appeler la fonction d'affichage du BIOS

❖ Lire une valeur au clavier et l’affiche à l’écran :


.code ; Début de la section .code
main: ; Étiquette du point d'entrée du programme
MOV AH, 00h ; Charger le numéro de la fonction de lecture du BIOS dans AH
INT 16h ; Appeler la fonction de lecture du BIOS
MOV AH, 0Eh ; Charger le numéro de la fonction d'affichage du BIOS dans AH
INT 10h ; Appeler la fonction d'affichage du BIOS

❖ Calculer une expression arithmétique ou logique. Pour calculer une expression


arithmétique ou logique, il faut utiliser les instructions ADD, SUB, MUL, DIV,
AND, OR, XOR, NOT. Ces instructions permettent d’effectuer des opérations
sur les nombres ou les bits. Par exemple, le code suivant calcule l’expression (5
+ 7) * 2 - 3 et stocke le résultat dans le registre AX :
.code ; Début de la section .code
main: ; Étiquette du point d'entrée du programme
MOV AX, 5 ; AX = 5
ADD AX, 7 ; AX = AX + 7
MUL BX, 2 ; AX = AX * 2
SUB AX, 3 ; AX = AX - 3

❖ Manipuler des bits. Pour manipuler des bits, il faut utiliser les instructions SHL,
SHR. Ces instructions permettent de décaler les bits d’un registre ou d’une
mémoire vers la gauche ou vers la droite. Par exemple, le code suivant décale le
contenu du registre AL de deux bits vers la droite et stocke le résultat dans le
registre AL :
.code ; Début de la section .code
main: ; Étiquette du point d'entrée du programme
MOV AL, 0Fh ; AL = 00001111b
SHR AL, 2 ; AL = AL >> 2 = 00000011b

Page 33 sur 46
ARCHITECTURE DES ORDINATEURS Eric Vekout, M. Ing.,

V. Techniques d’interfaçage
La technique d’interfaçage est l’ensemble des méthodes et des moyens qui permettent
de réaliser la communication entre deux systèmes ou deux composants. La
communication consiste à échanger des informations sous forme de signaux, qui
peuvent être de nature électrique, optique, acoustique, etc. La technique d’interfaçage
doit assurer la compatibilité entre les signaux émis et reçus par les systèmes ou les
composants, en tenant compte de leurs caractéristiques physiques, logiques et
temporelles.

1. Conversion des signaux


La conversion de signaux est une opération qui consiste à modifier la forme ou le
niveau d’un signal pour l’adapter à un autre système ou à un autre composant. La
conversion de signaux peut être de différents types, selon la nature du signal d’entrée
et du signal de sortie. Par exemple :
❖ La conversion analogique-numérique (CAN) transforme un signal analogique,
qui est une grandeur physique continue, en un signal numérique, qui est une
suite de bits discrets. La conversion analogique-numérique nécessite un
échantillonnage du signal analogique à une fréquence suffisante, puis une
quantification et un codage des échantillons en valeurs numériques.
❖ La conversion numérique-analogique (CNA) transforme un signal numérique,
qui est une suite de bits discrets, en un signal analogique, qui est une grandeur
physique continue. La conversion numérique-analogique nécessite un décodage
des valeurs numériques en niveaux de tension ou de courant, puis une
reconstruction du signal analogique à partir des niveaux obtenus.
❖ La conversion série-parallèle (CSP) transforme un signal série, qui est une suite
de bits transmis les uns après les autres sur un seul fil, en un signal parallèle, qui
est une suite de bits transmis simultanément sur plusieurs fils. La conversion
série-parallèle nécessite un registre à décalage qui reçoit les bits du signal série et
les décale vers la droite à chaque impulsion d’horloge, puis les transmet sur les
sorties parallèles.
❖ La conversion parallèle-série (CPS) transforme un signal parallèle, qui est une
suite de bits transmis simultanément sur plusieurs fils, en un signal série, qui est
une suite de bits transmis les uns après les autres sur un seul fil. La conversion
parallèle-série nécessite un registre à décalage qui reçoit les bits du signal

Page 34 sur 46
ARCHITECTURE DES ORDINATEURS Eric Vekout, M. Ing.,

parallèle sur les entrées parallèles et les décale vers la gauche à chaque impulsion
d’horloge, puis les transmet sur la sortie série.

2. Liaison parallèle
La liaison parallèle est une technique d’interfaçage qui consiste à transmettre plusieurs
bits simultanément sur plusieurs fils. La liaison parallèle permet d’augmenter le débit
de transmission des données, mais elle nécessite plus de fils et plus de synchronisation
entre l’émetteur et le récepteur. La liaison parallèle est utilisée pour connecter des
systèmes ou des composants proches géographiquement, comme des périphériques
internes à un ordinateur (disque dur, mémoire vive, etc.). Par exemple :
❖ Le bus PCI (Peripheral Component Interconnect) est un bus parallèle qui
permet de connecter des cartes d’extension à la carte mère d’un ordinateur. Le
bus PCI utilise 32 ou 64 fils pour transmettre les données et 5 fils pour
transmettre les signaux de contrôle et de synchronisation.
❖ Le port parallèle est un port d’entrée/sortie qui permet de connecter des
périphériques externes à un ordinateur, comme une imprimante ou un scanner.
Le port parallèle utilise 8 fils pour transmettre les données et 9 fils pour
transmettre les signaux de contrôle et de synchronisation.

3. Liaison série
La liaison série est une technique d’interfaçage qui consiste à transmettre un seul bit à
la fois sur un seul fil. La liaison série permet de réduire le nombre de fils et la complexité
du câblage, mais elle limite le débit de transmission des données. La liaison série est
utilisée pour connecter des systèmes ou des composants éloignés géographiquement,
comme des réseaux informatiques ou des communications sans fil. Par exemple :
❖ Le bus USB (Universal Serial Bus) est un bus série qui permet de connecter des
périphériques externes à un ordinateur, comme une souris, un clavier ou une clé
USB. Le bus USB utilise 2 fils pour transmettre les données et 2 fils pour
transmettre l’alimentation électrique.
❖ Le port série est un port d’entrée/sortie qui permet de connecter des
périphériques externes à un ordinateur, comme un modem, un terminal ou un
appareil de mesure. Le port série utilise 1 fil pour transmettre les données et 4
fils pour transmettre les signaux de contrôle et de synchronisation.

Page 35 sur 46
ARCHITECTURE DES ORDINATEURS Eric Vekout, M. Ing.,

VI. Technologie des périphériques


Les technologies des périphériques sont les méthodes et les moyens qui permettent de
concevoir, de fabriquer et de faire fonctionner les périphériques informatiques. Les
périphériques informatiques sont des dispositifs qui se connectent à un ordinateur pour
augmenter ses capacités de traitement, de communication ou d’interaction. On
distingue trois catégories de périphériques : les périphériques d’entrée, les
périphériques de sortie et les périphériques de stockage.

1. Les périphériques d’entrée


Les périphériques d’entrée sont des périphériques qui permettent à l’utilisateur ou à
l’environnement d’envoyer des informations à l’ordinateur. Ces informations peuvent
être des textes, des images, des sons, des mouvements, etc. Les périphériques d’entrée
transforment ces informations en signaux électriques ou numériques que l’ordinateur
peut traiter. Les principaux types de périphériques d’entrée sont :
❖ Le clavier : c’est un périphérique qui permet à l’utilisateur de saisir des caractères
alphanumériques ou des commandes à l’aide de touches. Le clavier est composé
de plusieurs zones : le pavé alphanumérique, le pavé numérique, le pavé
directionnel, les touches de fonction, etc. Le clavier peut être filaire ou sans fil,
et il existe différents types de claviers selon la disposition des touches ou la
langue utilisée.
❖ La souris : c’est un périphérique qui permet à l’utilisateur de déplacer un curseur
sur l’écran et de sélectionner des éléments à l’aide de boutons. La souris est
composée d’une boule ou d’un capteur optique qui détecte le mouvement sur
une surface, et d’un ou plusieurs boutons qui envoient des signaux à l’ordinateur.
La souris peut être filaire ou sans fil, et il existe différents types de souris selon
la forme, la taille ou le nombre de boutons.
❖ Le scanner : c’est un périphérique qui permet à l’utilisateur de numériser des
documents papier ou des objets en les transformant en images numériques. Le
scanner est composé d’une source lumineuse qui éclaire le document ou l’objet,
et d’un capteur optique qui enregistre les variations de lumière réfléchie. Le
scanner peut être plat ou à défilement, et il existe différents types de scanners
selon la résolution, la vitesse ou le mode couleur.
❖ La webcam : c’est un périphérique qui permet à l’utilisateur de capturer des
images ou des vidéos en direct et de les transmettre à l’ordinateur ou à un réseau.
La webcam est composée d’une caméra numérique qui enregistre les images ou
Page 36 sur 46
ARCHITECTURE DES ORDINATEURS Eric Vekout, M. Ing.,

les vidéos, et d’une interface de connexion qui les transmet à l’ordinateur. La


webcam peut être intégrée à l’écran ou externe, et il existe différents types de
webcams selon la résolution, la fréquence ou le champ de vision.
❖ Le micro : c’est un périphérique qui permet à l’utilisateur de capturer des sons
ou des voix et de les transmettre à l’ordinateur ou à un réseau. Le micro est
composé d’un transducteur qui convertit les ondes sonores en signaux
électriques, et d’une interface de connexion qui les transmet à l’ordinateur. Le
micro peut être intégré à l’écran ou externe, et il existe différents types de micros
selon la sensibilité, la directivité ou la qualité.
Les caractéristiques techniques des périphériques d’entrée sont les paramètres qui
définissent les performances et la qualité des périphériques d’entrée. Ces
caractéristiques techniques peuvent varier selon le type et le modèle du périphérique
d’entrée. Les principales caractéristiques techniques des périphériques d’entrée sont :
❖ La résolution : c’est le nombre de points (pixels) que le périphérique d’entrée
peut capturer ou détecter sur une surface donnée. La résolution s’exprime en
points par pouce (dpi) ou en mégapixels (MP). Plus la résolution est élevée, plus
le niveau de détail est important.
❖ La fréquence : c’est le nombre d’images ou de sons que le périphérique d’entrée
peut capturer ou détecter par seconde. La fréquence s’exprime en hertz (Hz) ou
en images par seconde (fps). Plus la fréquence est élevée, plus le rendu est fluide.
❖ La sensibilité : c’est la capacité du périphérique d’entrée à réagir à des variations
de lumière, de son ou de mouvement. La sensibilité s’exprime en lux (lx) pour
la lumière, en décibels (dB) pour le son ou en degrés par seconde (°/s) pour le
mouvement. Plus la sensibilité est élevée, plus le périphérique d’entrée est précis.
Les interfaces de connexion des périphériques d’entrée sont les moyens physiques ou
logiques qui permettent de relier les périphériques d’entrée à l’ordinateur ou à un
réseau. Les interfaces de connexion peuvent être filaires ou sans fil, et elles doivent
assurer la compatibilité et la fiabilité des échanges de données. Les principales
interfaces de connexion des périphériques d’entrée sont :
❖ L’USB (Universal Serial Bus) : c’est une interface filaire qui permet de connecter
des périphériques d’entrée à l’ordinateur à l’aide d’un câble et d’un connecteur
standard. L’USB assure une transmission série des données, c’est-à-dire bit par
bit, et il existe différents types d’USB selon la vitesse et la puissance de
transmission (USB 1.1, USB 2.0, USB 3.0, etc.).

Page 37 sur 46
ARCHITECTURE DES ORDINATEURS Eric Vekout, M. Ing.,

❖ Le PS/2 (Personal System/2) : c’est une interface filaire qui permet de connecter
des périphériques d’entrée à l’ordinateur à l’aide d’un câble et d’un connecteur
rond. Le PS/2 assure une transmission série des données, et il est principalement
utilisé pour les claviers et les souris.
❖ Le Bluetooth : c’est une interface sans fil qui permet de connecter des
périphériques d’entrée à l’ordinateur ou à un réseau à l’aide d’ondes radio. Le
Bluetooth assure une transmission série des données, et il existe différents types
de Bluetooth selon la portée et la vitesse de transmission (Bluetooth 1.0,
Bluetooth 2.0, Bluetooth 3.0, etc.).

2. Les périphériques de sortie


Les périphériques de sortie sont des périphériques qui permettent à l’ordinateur ou au
réseau d’envoyer des informations à l’utilisateur ou à l’environnement. Ces
informations peuvent être des textes, des images, des sons, des mouvements, etc. Les
périphériques de sortie transforment ces informations en signaux électriques ou
numériques que l’utilisateur ou l’environnement peut percevoir. Les principaux types
de périphériques de sortie sont :
❖ L’écran : c’est un périphérique qui permet à l’utilisateur de visualiser des
informations sous forme d’images ou de vidéos. L’écran est composé d’une
surface lumineuse qui affiche les images ou les vidéos, et d’une interface de
connexion qui reçoit les signaux provenant de l’ordinateur ou du réseau. L’écran
peut être intégré à l’ordinateur ou externe, et il existe différents types d’écrans
selon la technologie utilisée (LCD, LED, OLED, etc.) ou le format (4:3, 16:9,
etc.).
❖ L’imprimante : c’est un périphérique qui permet à l’utilisateur de produire des
documents papier à partir des informations numériques. L’imprimante est
composée d’un mécanisme qui imprime les informations sur le papier, et d’une
interface de connexion qui reçoit les signaux provenant de l’ordinateur ou du
réseau. L’imprimante peut être locale ou en réseau, et il existe différents types
d’imprimantes selon la technologie utilisée (jet d’encre, laser, thermique, etc.) ou
le mode couleur (noir et blanc, couleur, etc.).
❖ Le haut-parleur : c’est un périphérique qui permet à l’utilisateur d’écouter des
informations sous forme de sons ou de musiques. Le haut-parleur est composé
d’un transducteur qui convertit les signaux électriques en ondes sonores, et
d’une interface de connexion qui reçoit les signaux provenant de l’ordinateur ou

Page 38 sur 46
ARCHITECTURE DES ORDINATEURS Eric Vekout, M. Ing.,

du réseau. Le haut-parleur peut être intégré à l’écran ou externe, et il existe


différents types de haut-parleurs selon la puissance, la qualité ou le nombre de
canaux.
❖ Le casque : c’est un périphérique qui permet à l’utilisateur d’écouter des
informations sous forme de sons ou de musiques, mais de manière plus
personnelle et plus isolée. Le casque est composé de deux écouteurs qui se
placent sur les oreilles de l’utilisateur, et d’une interface de connexion qui reçoit
les signaux provenant de l’ordinateur ou du réseau. Le casque peut être filaire
ou sans fil, et il existe différents types de casques selon la qualité, la réduction
du bruit ou le confort.
Les caractéristiques techniques des périphériques de sortie sont les paramètres qui
définissent les performances et la qualité des périphériques de sortie. Ces
caractéristiques techniques peuvent varier selon le type et le modèle du périphérique
de sortie. Les principales caractéristiques techniques des périphériques de sortie sont :
❖ La taille : c’est la dimension du périphérique de sortie ou de la surface d’affichage
ou d’impression. La taille s’exprime en pouces (") ou en centimètres (cm). Plus
la taille est grande, plus le confort visuel ou le format du document est
important.
❖ La résolution : c’est le nombre de points (pixels) que le périphérique de sortie
peut afficher ou imprimer sur une surface donnée. La résolution s’exprime en
points par pouce (dpi) ou en pixels par pouce (ppi). Plus la résolution est élevée,
plus le niveau de détail est important.
❖ La couleur : c’est la capacité du périphérique de sortie à reproduire ou à restituer
les différentes nuances de couleurs. La couleur s’exprime en nombre de couleurs
(monochrome, 16 couleurs, 256 couleurs, etc.) ou en profondeur de couleur (8
bits, 16 bits, 24 bits, etc.). Plus la couleur est riche, plus le rendu est fidèle ou
attrayant.
❖ La vitesse : c’est le nombre d’images ou de pages que le périphérique de sortie
peut afficher ou imprimer par seconde ou par minute. La vitesse s’exprime en
images par seconde (fps) ou en pages par minute (ppm). Plus la vitesse est élevée,
plus le rendu est fluide ou rapide.
❖ La puissance : c’est la quantité d’énergie électrique que le périphérique de sortie
consomme ou délivre. La puissance s’exprime en watts (W) ou en décibels (dB).

Page 39 sur 46
ARCHITECTURE DES ORDINATEURS Eric Vekout, M. Ing.,

Plus la puissance est élevée, plus le périphérique de sortie est performant ou


sonore.
Les interfaces de connexion des périphériques de sortie sont les moyens physiques ou
logiques qui permettent de relier les périphériques de sortie à l’ordinateur ou à un
réseau. Les interfaces de connexion peuvent être filaires ou sans fil, et elles doivent
assurer la compatibilité et la fiabilité des échanges de données. Les principales
interfaces de connexion des périphériques de sortie sont :
❖ Le VGA (Video Graphics Array) : c’est une interface filaire qui permet de
connecter un écran à l’ordinateur à l’aide d’un câble et d’un connecteur à 15
broches. Le VGA assure une transmission analogique des données, c’est-à-dire
sous forme de signaux électriques continus, et il supporte une résolution
maximale de 640 x 480 pixels.
❖ Le HDMI (High Definition Multimedia Interface) : c’est une interface filaire qui
permet de connecter un écran à l’ordinateur à l’aide d’un câble et d’un
connecteur à 19 broches. Le HDMI assure une transmission numérique des
données, c’est-à-dire sous forme de signaux électriques discrets, et il supporte
une résolution maximale de 1920 x 1080 pixels.
❖ Le DVI (Digital Visual Interface) : c’est une interface filaire qui permet de
connecter un écran à l’ordinateur à l’aide d’un câble et d’un connecteur à 24
broches. Le DVI assure une transmission numérique des données, et il supporte
une résolution maximale de 2560 x 1600 pixels.
❖ L’USB (Universal Serial Bus) : c’est une interface filaire qui permet de connecter
des périphériques de sortie à l’ordinateur à l’aide d’un câble et d’un connecteur
standard. L’USB assure une transmission série des données, c’est-à-dire bit par
bit, et il existe différents types d’USB selon la vitesse et la puissance de
transmission (USB 1.1, USB 2.0, USB 3.0, etc.).

3. Les périphériques de stockage


Les périphériques de stockage sont des périphériques qui permettent à l’ordinateur ou
au réseau de conserver des informations sous forme numérique. Ces informations
peuvent être des données, des programmes, des documents, des images, des sons, etc.
Les périphériques de stockage enregistrent ces informations sur un support physique
ou logique, qui peut être magnétique, optique ou électronique. Les principaux types de
périphériques de stockage sont :

Page 40 sur 46
ARCHITECTURE DES ORDINATEURS Eric Vekout, M. Ing.,

❖ Le disque dur : c’est un périphérique de stockage qui utilise un support


magnétique pour enregistrer les informations. Le disque dur est composé d’un
ou plusieurs plateaux circulaires recouverts d’une couche magnétique, et d’une
ou plusieurs têtes de lecture/écriture qui se déplacent sur les plateaux. Le disque
dur peut être interne ou externe, et il existe différents types de disques durs selon
la capacité, la vitesse ou l’interface de connexion (SATA, IDE, USB, etc.).
❖ Le SSD (Solid State Drive) : c’est un périphérique de stockage qui utilise un
support électronique pour enregistrer les informations. Le SSD est composé de
plusieurs puces de mémoire flash, qui sont des composants électroniques
capables de stocker des données sans alimentation électrique. Le SSD peut être
interne ou externe, et il existe différents types de SSD selon la capacité, la vitesse
ou l’interface de connexion (SATA, PCI Express, USB, etc.).
❖ La clé USB (Universal Serial Bus) : c’est un périphérique de stockage qui utilise
un support électronique pour enregistrer les informations. La clé USB est
composée d’une puce de mémoire flash et d’un connecteur USB, qui permet de
la brancher à l’ordinateur ou à un réseau. La clé USB peut avoir différentes
formes et tailles, et elle existe différents types de clés USB selon la capacité, la
vitesse ou le type d’USB (USB 1.1, USB 2.0, USB 3.0, etc.).
❖ La carte mémoire : c’est un périphérique de stockage qui utilise un support
électronique pour enregistrer les informations. La carte mémoire est composée
d’une puce de mémoire flash et d’un connecteur spécifique, qui permet de la
brancher à un appareil compatible (appareil photo, téléphone portable, console
de jeu, etc.). La carte mémoire peut avoir différentes formes et tailles, et elle
existe différents types de cartes mémoire selon la capacité, la vitesse ou le format
(SD, micro SD, CF, etc.).
❖ Le CD-ROM (Compact Disc Read-Only Memory) : c’est un périphérique de
stockage qui utilise un support optique pour enregistrer les informations. Le
CD-ROM est composé d’un disque circulaire recouvert d’une couche
réfléchissante, et d’un lecteur optique qui lit les informations à l’aide d’un
faisceau laser. Le CD-ROM peut être lu mais pas modifié, et il existe différents
types de CD-ROM selon la capacité ou le mode d’enregistrement (CD-R, CD-
RW, etc.).
❖ Le DVD-ROM (Digital Versatile Disc Read-Only Memory) : c’est un
périphérique de stockage qui utilise un support optique pour enregistrer les
informations. Le DVD-ROM est composé d’un disque circulaire recouvert

Page 41 sur 46
ARCHITECTURE DES ORDINATEURS Eric Vekout, M. Ing.,

d’une couche réfléchissante, et d’un lecteur optique qui lit les informations à
l’aide d’un faisceau laser. Le DVD-ROM peut être lu mais pas modifié, et il
existe différents types de DVD-ROM selon la capacité ou le mode
d’enregistrement (DVD-R, DVD-RW, etc.).
Les caractéristiques techniques des périphériques de stockage sont les paramètres qui
définissent les performances et la qualité des périphériques de stockage. Ces
caractéristiques techniques peuvent varier selon le type et le modèle du périphérique
de stockage. Les principales caractéristiques techniques des périphériques de stockage
sont :
❖ La capacité : c’est la quantité d’informations que le périphérique de stockage
peut enregistrer sur son support. La capacité s’exprime en octets (o) ou en
multiples (kilo-octets (Ko), méga-octets (Mo), giga-octets (Go), téra-octets (To),
etc.). Plus la capacité est élevée, plus le périphérique de stockage peut stocker
plus d’informations.
❖ La vitesse : c'est le temps nécessaire au périphérique de stockage pour accéder,
lire ou écrire les informations sur son support. La vitesse s'exprime en
millisecondes (ms) pour le temps d'accès, en mégaoctets par seconde (Mo/s)
pour le débit de lecture ou d'écriture, ou en tours par minute (tpm) pour la
vitesse de rotation. Plus la vitesse est élevée, plus le périphérique de stockage est
rapide ou performant.
❖ La fiabilité : c'est la capacité du périphérique de stockage à conserver les
informations sans les altérer ou les perdre. La fiabilité s'exprime en taux d'erreur,
en nombre de cycles de lecture/écriture, ou en durée de vie. Plus la fiabilité est
élevée, plus le périphérique de stockage est sûr ou durable.
❖ La durée de vie : c'est le temps pendant lequel le périphérique de stockage peut
fonctionner sans panne ou sans dégradation. La durée de vie s'exprime en
heures, en jours, en années, ou en nombre d'utilisations. Plus la durée de vie est
longue, plus le périphérique de stockage est résistant ou économique.
Les interfaces de connexion des périphériques de stockage sont les moyens physiques
ou logiques qui permettent de relier les périphériques de stockage à l’ordinateur ou à
un réseau. Les interfaces de connexion peuvent être internes ou externes, et elles
doivent assurer la compatibilité et la fiabilité des échanges de données. Les principales
interfaces de connexion des périphériques de stockage sont :

Page 42 sur 46
ARCHITECTURE DES ORDINATEURS Eric Vekout, M. Ing.,

❖ Le SATA (Serial Advanced Technology Attachment) : c’est une interface interne


qui permet de connecter un disque dur ou un SSD à la carte mère de l’ordinateur
à l’aide d’un câble et d’un connecteur à 7 broches. Le SATA assure une
transmission série des données, et il existe différents types de SATA selon la
vitesse et la puissance de transmission (SATA I, SATA II, SATA III, etc.).
❖ L’IDE (Integrated Drive Electronics) : c’est une interface interne qui permet de
connecter un disque dur ou un CD-ROM à la carte mère de l’ordinateur à l’aide
d’un câble et d’un connecteur à 40 broches. L’IDE assure une transmission
parallèle des données, et il existe différents types d’IDE selon la vitesse et la
puissance de transmission (ATA, ATA-2, ATA-3, etc.).
❖ L’USB (Universal Serial Bus) : c’est une interface externe qui permet de
connecter un disque dur, un SSD, une clé USB ou une carte mémoire à
l’ordinateur ou à un réseau à l’aide d’un câble et d’un connecteur standard.
L’USB assure une transmission série des données, et il existe différents types
d’USB selon la vitesse et la puissance de transmission (USB 1.1, USB 2.0, USB
3.0, etc.).

VII. Les architectures nouvelles et spécialisées


Les architectures nouvelles et spécialisées sont des types d’architectures informatiques
qui visent à optimiser les performances, l’efficacité ou la flexibilité des systèmes
informatiques. Ces architectures se distinguent des architectures classiques, qui sont
basées sur le modèle de von Neumann, où un seul processeur exécute les instructions
séquentiellement à partir d’une mémoire commune. Parmi les architectures nouvelles
et spécialisées, on peut citer les architectures parallèles, distribuées, réparties,
multicœurs, multiprocesseurs, etc. :
❖ Les architectures parallèles sont des architectures qui utilisent plusieurs
processeurs ou plusieurs cœurs pour exécuter simultanément plusieurs
instructions ou plusieurs tâches. Le but est d’augmenter le débit de traitement
et de réduire le temps d’exécution. Les architectures parallèles peuvent être
classées selon le mode de partage de la mémoire (mémoire partagée ou mémoire
distribuée), selon le type de parallélisme (parallélisme de données ou parallélisme
de tâches), ou selon la taxonomie de Flynn (SISD, SIMD, MISD, MIMD). Les
avantages des architectures parallèles sont qu’elles permettent de résoudre des
problèmes complexes, de traiter de grandes quantités de données, ou de réaliser
des applications interactives. Les inconvénients sont qu’elles nécessitent des

Page 43 sur 46
ARCHITECTURE DES ORDINATEURS Eric Vekout, M. Ing.,

algorithmes et des logiciels adaptés, qu’elles sont plus difficiles à concevoir et à


programmer, et qu’elles sont limitées par les coûts de synchronisation et de
communication. Les applications des architectures parallèles sont nombreuses,
comme le calcul scientifique, la simulation, la modélisation, le traitement
d’images, le jeu vidéo, etc. Des exemples d’architectures parallèles sont les
supercalculateurs (comme le Tianhe-2), les processeurs vectoriels (comme le
Cray-1), les processeurs matriciels (comme le Connection Machine), les
processeurs graphiques (comme le NVIDIA GeForce RTX 3090), etc.
❖ Les architectures distribuées sont des architectures qui utilisent plusieurs
ordinateurs reliés par un réseau pour exécuter une application. Le but est de
répartir la charge de travail et les ressources entre les différents ordinateurs. Les
architectures distribuées peuvent être classées selon le mode d’organisation
(centralisé ou décentralisé), selon le mode de communication (synchrone ou
asynchrone), ou selon le mode de coopération (coopératif ou compétitif). Les
avantages des architectures distribuées sont qu’elles permettent d’augmenter la
fiabilité, la disponibilité, la scalabilité et la tolérance aux pannes des systèmes
informatiques. Les inconvénients sont qu’elles nécessitent des protocoles et des
services adaptés, qu’elles sont plus difficiles à gérer et à sécuriser, et qu’elles sont
limitées par les délais et les pertes du réseau. Les applications des architectures
distribuées sont nombreuses, comme le cloud computing, le web, les systèmes
pair-à-pair, les grilles de calcul, etc. Des exemples d’architectures distribuées
sont les clusters (comme le Google File System), les réseaux locaux (comme
l’Ethernet), les réseaux étendus (comme l’Internet), les réseaux mobiles (comme
le Wi-Fi), etc.
❖ Les architectures réparties sont des architectures qui utilisent plusieurs
ordinateurs reliés par un réseau pour exécuter une application, mais sans que
l’utilisateur ne perçoive la distribution. Le but est de fournir une abstraction qui
masque la complexité et l’hétérogénéité des systèmes distribués. Les
architectures réparties peuvent être classées selon le niveau d’abstraction
(système d’exploitation réparti, environnement d’exécution réparti, langage de
programmation réparti), selon le modèle d’interaction (appel de procédure à
distance, passage de messages, objet distribué), ou selon le modèle de cohérence
(cohérence forte, cohérence faible, cohérence éventuelle). Les avantages des
architectures réparties sont qu’elles permettent de simplifier le développement
et l’utilisation des applications distribuées, qu’elles offrent une transparence et
une portabilité accrues, et qu’elles facilitent l’adaptation et l’évolution des

Page 44 sur 46
ARCHITECTURE DES ORDINATEURS Eric Vekout, M. Ing.,

systèmes distribués. Les inconvénients sont qu’elles nécessitent des mécanismes


et des interfaces adaptés, qu’elles sont plus difficiles à tester et à déboguer, et
qu’elles sont limitées par les compromis entre la transparence et la performance.
Les applications des architectures réparties sont nombreuses, comme les
systèmes d’information, les systèmes collaboratifs, les systèmes ubiquitaires, etc.
Des exemples d’architectures réparties sont les systèmes d’exploitation répartis
(comme le Plan 9], les environnements d’exécution répartis (comme le Java
RMI), les langages de programmation répartis (comme le Erlang), etc.
❖ Les architectures multicœurs sont des architectures qui utilisent un ou plusieurs
processeurs contenant plusieurs cœurs. Un cœur est une unité de traitement
capable d’exécuter un flux d’instructions. Les architectures multicœurs peuvent
être classées selon le nombre de cœurs (double-cœur, quadruple-cœur, etc.),
selon le type de cœurs (homogènes ou hétérogènes), ou selon le mode de
communication entre les cœurs (partage de mémoire ou passage de messages).
Les avantages des architectures multicœurs sont qu’elles permettent de réduire
la consommation énergétique, d’augmenter la densité de traitement, et de
profiter du parallélisme au niveau des instructions, des données ou des tâches.
Les inconvénients sont qu’elles nécessitent des algorithmes et des logiciels
adaptés, qu’elles sont plus difficiles à concevoir et à programmer, et qu’elles sont
limitées par les coûts de synchronisation et de communication. Les applications
des architectures multicœurs sont nombreuses, comme le calcul scientifique, la
simulation, la modélisation, le traitement d’images, le jeu vidéo, etc. Des
exemples d’architectures multicœurs sont les processeurs multicœurs (comme
l’Intel Core i7), les processeurs manycores (comme l’Intel Xeon Phi), les
processeurs hétérogènes (comme l’AMD Fusion), etc.
❖ Les architectures multiprocesseurs sont des architectures qui utilisent plusieurs
processeurs connectés par un bus ou un réseau. Un processeur est une unité de
traitement capable d’exécuter un ou plusieurs flux d’instructions. Les
architectures multiprocesseurs peuvent être classées selon le nombre de
processeurs (SMP, MPP, etc.), selon le type de processeurs (homogènes ou
hétérogènes), ou selon le mode de partage de la mémoire (mémoire partagée ou
mémoire distribuée). Les avantages des architectures multiprocesseurs sont
qu’elles permettent d’augmenter la puissance de traitement, de réduire le temps
d’exécution, et de profiter du parallélisme au niveau des tâches. Les
inconvénients sont qu’elles nécessitent des algorithmes et des logiciels adaptés,
qu’elles sont plus difficiles à concevoir et à programmer, et qu’elles sont limitées

Page 45 sur 46
ARCHITECTURE DES ORDINATEURS Eric Vekout, M. Ing.,

par les coûts de synchronisation et de communication. Les applications des


architectures multiprocesseurs sont nombreuses, comme le calcul scientifique,
la simulation, la modélisation, le traitement d’images, le jeu vidéo, etc. Des
exemples d’architectures multiprocesseurs sont les ordinateurs multiprocesseurs
(comme l’IBM Power 795), les clusters (comme le Beowulf), les grilles de calcul
(comme le SETI@home), etc.

Page 46 sur 46

You might also like