Vous êtes sur la page 1sur 17

Description (Introduction & définition d’un

Microprocesseur)
Jusqu’au début des années 1970, les différents composants électroniques, necessaires au
fonctionnement d'un processeur ne pouvaient pas tenir sur un seul circuit intégré, ce qui
nécessitait d'interconnecter de nombreux composants dont plusieurs circuits intégrés. En 1971,
la société américaine Intel réussit, pour la première fois, à placer tous les composants qui
constituent un processeur sur un seul circuit intégré donnant ainsi naissance au
microprocesseur2.
Cette miniaturisation a permis :

 d'augmenter les vitessesa de fonctionnement des processeurs, grâce à la réduction des


distances entre les composants ;
 de réduire les coûts, grâce au remplacement de plusieurs circuits par un seul ;
 d'augmenter la fiabilité : en supprimant les connexions entre les composants du processeur,
on supprime l'un des principaux vecteurs de panne ;
 de créer des ordinateurs bien plus petits : les micro-ordinateurs ;
 de réduire la consommation énergétiqueb.
Les principales caractéristiques d'un microprocesseur sont :
Le jeu d'instructions
qui varie avec le type de microprocesseur et le constructeur : additionner deux nombres,
comparer deux nombres pour déterminer s’ils sont égaux, comparer deux nombres pour
déterminer lequel est le plus grand, multiplier deux nombres... Un processeur peut
exécuter plusieurs dizaines, voire centaines ou milliers, d’instructions différentes.
La complexité de son architecture
Cette complexité se mesure par le nombre de transistors contenus dans le
microprocesseur. Plus le microprocesseur contient de transistors, plus il pourra effectuer
des opérations complexes, et/ou traiter des nombres de grande taille.
Le nombre de bits que le processeur peut traiter simultanément
Les premiers microprocesseurs ne pouvaient traiter plus de 4 bits d'un coup. Ils devaient
donc exécuter plusieurs instructions pour additionner des nombres de 32 ou 64 bits. En
2007 les microprocesseurs peuvent traiter des nombres sur 64 bits. Le nombre de bits
des bus, de la mémoire et du processeur est en rapport direct avec la capacité à traiter
de grands nombres rapidement, ou des nombres d'une grande précision (nombres de
décimales significatives).
La vitesse de l’horloge
Le rôle de l’horloge est de cadencer le rythme du travail du microprocesseur. Plus la
vitesse de l’horloge augmente, plus le microprocesseur effectue d'instructions en une
seconde.
Tout ceci est théorique car dans la pratique, selon l'architecture du processeur,
le nombre de cycles d'horloge pour réaliser une opération élémentaire peut
varier d'un cycle à plusieurs dizaines par unité d'exécution (typiquement une sur
un processeur classique)[réf. nécessaire].
Par exemple, un processeur A cadencé à 400 MHz peut exécuter certaines
instructions plus rapidement qu'un autre B cadencé à 1 GHz, tout dépend de
leurs architectures respectives.
La combinaison des caractéristiques précédentes détermine la puissance du
microprocesseur qui s’exprime en « millions d'instructions par seconde » (MIPS).
Dans les années 1970, les microprocesseurs effectuaient moins d’un million
d’instructions par seconde, mais en 2007, les processeurs pouvaient effectuer
plus de 10 milliards d’instructions par seconde.
Histoire Commented [P1]:

Illustration de la loi de Moore, une observation de l’évolution du nombre de


transistors d'un microprocesseur, de 1971 à 20113.

En 1969, le microprocesseur est inventé par un ingénieur et un physicien


d'Intel, Marcian Hoff (surnommé Ted Hoff)4,5, et Federico Faggin, qui venait de le
rejoindre, fort de recherches menées en Italie. Federico Faggin, ingénieur italien
est en 1968 chez Fairchild-SGS à Agrate Brianza6, puis à Palo
Alto avec Thomas Klein6, le concepteur du premier circuit intégré commercial à
grilles auto-alignées, le Fairchild 3708, puis chef de projet de la Technologie
Silicon Gate (TSG), la première méthode pratique pour la fabrication des circuits
intégrés MOS (semi-conducteur à oxyde de métal) avec grilles auto-alignés, qui
a remplacé la grille d'aluminium traditionnel d'un transistor MOS par une grille en
silicium, pour intégrer deux fois plus de transistors dans la même
surface. Federico Faggin est embauché par Intel en avril 19706, pour être le chef
de projet, le créateur de la méthodologie de conception et le concepteur
principal, en seulement quelques mois, avec Marcian Hoff, des quatre puces de
l'Intel 4004, qui servit initialement à fabriquer des contrôleurs graphiques en
mode texte puis devint un processeur d'usage général, avec une licence achetée
au japonais Busicom6.
Marcian Hoff a formulé l'architecture du microprocesseur (une architecture de
bloc et un jeu d'instructions). Le premier microprocesseur commercialisé,
le 15 novembre 1971, est l'Intel 4004 4 bits, suivi par l'Intel 8008 à 8 bits et qui
servit initialement à fabriquer des contrôleurs graphiques en mode texte. Jugé
trop lent par le client qui en avait demandé la conception, il devint un processeur
d'usage général.
Ces processeurs sont les précurseurs des Intel 8080, Zilog Z80, et de la future
famille des Intel x867. Federico Faggin est l'auteur d'une méthodologie de
conception nouvelle pour la puce et la logique, fondée pour la première fois sur
la technologie silicon gate développé par lui en 1968 chez Fairchild. Il a aussi
dirigé la conception du premier microprocesseur jusqu'à son introduction sur le
marché en 19718.
Presque à la même époque la société américaine, Motorola, effectue des
travaux et innovations similaires sous la direction de Chuck Peddle9, venu
de General Electric, où il avait conçu une caisse enregistreuse électronique,
mais qui décide en 1970 d'abandonner son activité informatique. Il participe au
développement du microprocesseur Motorola 6800, à 8 bits, vendu alors
300 US$, et qui va servir aux ordinateurs d'usage professionnel Goupil 1 et 2 de
la société SMT.
Dans les années 1970, apparaissent les concepts de datagramme et
d'informatique distribuée, avec Arpanet, le réseau Cyclades et la Distributed
System Architecture, devenue en 1978 le modèle « OSI-DSA ». Le
microprocesseur est très vite accueilli comme la pierre angulaire de
cette informatique distribuée, car il permet de décentraliser le calcul, avec
des machines moins coûteuses et moins encombrantes face au monopole IBM,
produites en plus grande série.
En 1990, Gilbert Hyatt revendique la paternité du microprocesseur en se basant
sur un brevet qu’il avait déposé en 197010. La reconnaissance de l’antériorité du
brevet de Hyatt aurait permis à ce dernier de réclamer des redevances sur tous
les microprocesseurs fabriqués de par le monde, mais le brevet de Hyatt a été
invalidé en 1995 par l’office américain des brevets, sur la base du fait que le
microprocesseur décrit dans la demande de brevet n'avait pas été réalisé, et
n'aurait d'ailleurs pas pu l'être avec la technologie disponible au moment du
dépôt du brevet11.
Le tableau suivant décrit les principales caractéristiques des microprocesseurs
fabriqués par Intel, et montre leur évolution en termes de nombre de transistors,
en miniaturisation des circuits, et en augmentation de puissance. Il faut garder à
l'esprit que si ce tableau décrit l'évolution des produits d'Intel, l'évolution des
produits des concurrents a suivi avec plus ou moins d'avance ou de retard la
même marche.
Un programme informatique est, par essence, un flux d'instructions exécutées
par un processeur. Chaque instruction nécessite un à plusieurs cycles d'horloge,
l'instruction est exécutée en autant d'étapes que de cycles nécessaires. Les
microprocesseurs séquentiels exécutent l'instruction suivante lorsqu'ils ont
terminé l'instruction en cours. Dans le cas du parallélisme d'instructions, le
microprocesseur pourra traiter plusieurs instructions dans le même cycle
d'horloge, à condition que ces instructions différentes ne mobilisent pas
simultanément une unique ressource interne. Autrement dit, le processeur
exécute des instructions qui se suivent, et ne sont pas dépendantes l'une de
l'autre, à différents stades d'achèvement. Cette file d'exécution à venir s'appelle
un pipeline. Ce mécanisme a été implémenté la première fois dans les années
1960 par IBM. Les processeurs plus évolués exécutent en même temps autant
d'instructions qu'ils ont de pipelines, ce à la condition que toutes les instructions
à exécuter parallèlement ne soient pas interdépendantes, c'est-à-dire que le
résultat de l'exécution de chacune d'entre elles ne modifie pas les conditions
d'exécution de l'une des autres. Les processeurs de ce type sont
appelés processeurs superscalaires. Le premier ordinateur à être équipé de ce
type de processeur était le Seymour Cray CDC 6600 en 1965. Le Pentium est le
premier des processeurs superscalaires pour compatible PC.
Les concepteurs de processeurs ne cherchent pas simplement à exécuter
plusieurs instructions indépendantes en même temps, ils cherchent à optimiser
le temps d'exécution de l'ensemble des instructions. Par exemple le processeur
peut trier les instructions de manière que tous ses pipelines contiennent des
instructions indépendantes. Ce mécanisme s'appelle l'exécution out-of-order. Ce
type de processeur s'est imposé pour les machines grand public des années
1980 et aux années 199012. L'exemple canonique de ce type de pipeline est celui
d'un processeur RISC, en cinq étapes. Le Intel Pentium 4 dispose de 35 étages
de pipeline13. Un compilateur optimisé pour ce genre de processeur fournira un
code qui sera exécuté plus rapidement.
Pour éviter une perte de temps liée à l'attente de nouvelles instructions, et
surtout au délai de rechargement du contexte entre chaque changement
de threads, les fondeursc ont ajouté à leurs processeurs des procédés
d'optimisation pour que les threads puissent partager les pipelines, les caches et
les registres. Ces procédés, regroupés sous l'appellation Simultaneous Multi
Threading, ont été mis au point dans les années 1950. Par contre, pour obtenir
une augmentation des performances, les compilateurs doivent prendre en
compte ces procédés, il faut donc re-compiler les programmes pour ces types de
processeurs. Intel a commencé à produire, début des années 2000, des
processeurs implémentant la technologie SMT à deux voies. Ces processeurs,
les Pentium 4, peuvent exécuter simultanément deux threads qui se partagent
les mêmes pipelines, caches et registres. Intel a appelé cette technologie SMT à
deux voies : l’Hyperthreading. Le Super-threading (en) est, quant à lui, une
technologie SMT dans laquelle plusieurs threads partagent aussi les mêmes
ressources, mais ces threads ne s'exécutent que l'un après l'autre et non
simultanément14.
Depuis longtemps déjà, existait l'idée de faire cohabiter plusieurs processeurs au
sein d'un même composant, par exemple les System on Chip. Cela consistait,
par exemple, à ajouter au processeur, un coprocesseur arithmétique, un DSP,
voire un cache mémoire, éventuellement même l'intégralité des composants que
l'on trouve sur une carte mère. Des processeurs utilisant deux ou
quatre cœurs sont donc apparus, comme le POWER4 d'IBM sorti en 2001. Ils
disposent des technologies citées préalablement. Les ordinateurs qui disposent
de ce type de processeurs coûtent moins cher que l'achat d'un nombre
équivalent de processeurs, cependant, les performances ne sont pas
directement comparables, cela dépend du problème traité. Des API spécialisées
ont été développées afin de tirer parti au mieux de ces technologies, comme
le Threading Building Blocks d'Intel.

Fines Large
Nombre
se de ur
Dat de Fréquence de
Nom gravu des MIPS
e transistor l'horloge
re donné
s
(nm) es

4
197 10 00 bits/4
Intel 4004 2 300 740 kHz 0,06
1 0 bits
bus

8
197 bits/8
Intel 8080 6 000 6 000 2 MHz 0,64
4 bits
bus

16
197 bits/8
Intel 8088 29 000 3 000 5 MHz 0,33
9 bits
bus

16
198 Intel 6 à 16 MHz (20 MH bits/16
134 000 1 500 1
2 80286 z chez AMD) bits
bus
32
198 Intel bits/32
275 000 1 500 16 à 40 MHz 5
5 80386 bits
bus

32
198 Intel 1 200 000 1 000 bits/32
16 à 100 MHz 20
9 80486 (800nm) à 800 bits
bus

32
199 Pentium (I 800 à bits/64
3 100 000 60 à 233 MHz 100
3 ntel P5) 250 bits
bus

32
199 350 à bits/64
Pentium II 7 500 000 233 à 450 MHz 300
7 250 bits
bus

32
199 250 à bits/64
Pentium III 9 500 000 450 à 1 400 MHz 510
9 130 bits
bus

32
200 180 à bits/64
Pentium 4 42 000 000 1,3 à 3,8 GHz 1 700
0 65 bits
bus

32
Pentium 4
200 125 000 00 90 à bits/64
D 2.66 à 3,6 GHz 9 000
4 0 65 bits
(Prescott)
bus

64
Core 2
200 291 000 00 bits/64
Duo 65 2,4 GHz (E6600) 22 000
6 0 bits
(Conroe)
bus

200 Core 2 2*291 000 64 2*22 00


65 3 GHz (Q6850)
7 Quad 000 bits/64 0 (?)
(Kentsfield bits
) bus

64
Core 2
200 410 000 00 bits/64 ~24 20
Duo 45 3,33 GHz (E8600)
8 0 bits 0
(Wolfdale)
bus

64
Core 2
200 2*410 000 bits/64 ~2*24 2
Quad 45 3,2 GHz (QX9770)
8 000 bits 00
(Yorkfield)
bus

Intel Core 64
200 i7 731 000 00 3,33 GHz (Core i7 bits/64
45 ?
8 (Bloomfiel 0 975X) bits
d) bus

64
Intel Core
200 774 000 00 bits/64
i5/i7 45 3,06 GHz (I7 880) 76 383
9 0 bits
(Lynnfield)
bus

64
Intel Core
201 1 170 000 3,47 GHz (Core i7 bits/64 147 60
i7 32
0 000 990X) bits 0
(Gulftown)
bus

Intel Core 64
201 i3/i5/i7 1 160 000 3,5 GHz (Core i7 bits/64
32
1 (Sandy 000 2700K) bits
Bridge) bus

Intel Core 64
201 i7/Xeon 2 270 000 3,5 GHz (Core i7 bits/64
32 1 ou 2
1 (Sandy 000 3970X) bits
Bridge-E) bus

64
Intel Core
201 1 400 000 3,5 GHz (Core i7 bits/64
i3/i5/i7 (Ivy 22
2 000 3770K) bits
Bridge)
bus

Intel Core 22 64
201 1 400 000 3,8 GHz (Core i7
i3/i5/i7 bits/64
3 (Haswell) 000 4770K) bits
bus

Intel Core 64
201 i3/i5/i7 1 400 000 3,8 GHz (Core i7 bits/64
14
4 (Broadwell 000 5775R) bits
) bus

64
Intel Core
201 1 750 000 4 GHz (Core i7 bits/64
i3/i5/i7 14
5 000 6700K) bits
(Skylake)
bus

64
Intel Core
201 4.2 GHz (Core i7 bits/64
i3/i5/i7 ? 14
6 7700K) bits
(Kabylake)
bus

Intel Core 64
201 i3/i5/i7 3.7 GHz ~ 4.7 GHz bits/64
? 14
7 (Coffe (Core i7 8700K) bits
Lake) bus

64
201 Intel Core bits/64
? 14
8 i3/i5/i7 (?) bits
bus

Intel Core
201
i3/i5/i7/i9 ? 10
8
(Ice Lake)

Intel Core
201
i3/i5/i7/i9 ? 10
9
(Tigerlake)

 Date : l’année de commercialisation du microprocesseur.


 Nom : le nom du microprocesseur.
 Nombre de transistors : le nombre de transistors contenus dans le
microprocesseur.
 Finesse de gravure (nm) : la largeur minimale possible (en nanomètres) du
canal des transistors, elle sert indirectement d'unité de base (lambda) dans
le dimensionnement des autres structure du circuit. En comparaison,
l'épaisseur d'un cheveu humain est de 100 microns = 100 000 nm. Le
diamètre d’un atome de silicium est de l’ordre de 100 pm=0,1 nm. En 2014,
à des finesses de gravure de l’ordre de 10 nm (pour la mémoire), on se
retrouve avec certaines structures (comme la couche d'isolation de la grille
des transistors) ayant une épaisseur de moins de 4 nm, ce qui fait quelque
dizaines d'atomes de silicium. En augmentant la finesse de gravure, on se
rapproche des limites en deçà desquelles le comportement électrique des
matériaux relève de moins en moins de la physique classique, mais de plus
en plus de la mécanique quantique (les électrons traversant la grille des
transistors par effet tunnel).
 Fréquence de l’horloge : la fréquence du signal d'horloge interne qui
cadence le microprocesseur. MHz = million(s) de cycles par seconde. GHz =
milliard(s) de cycles par seconde.
 Largeur des données : le premier nombre indique le nombre de bits sur
lequel une opération est faite. Le second nombre indique le nombre de bits
transférés à la fois entre la mémoire et le microprocesseur.
 MIPS : le nombre de millions d’instructions, sur des entiers, effectuées par le
microprocesseur en une seconde.
III-Architecture d'un micro-processeur :

Avant d'étudier l'architecture détaillée d'un micro-processeur précis, on aborde ici


l'architecture globale d'un micro-processeur. Tous les micro-processeurs conçus
jusqu'à aujourd'hui s'organisent globalement de même façon. Ils peuvent être
décomposés en quatre composants décrits par le modèle de von Neumann.

Modèle de von Neumann


Le modèle de von Neumann donne les quatre composants essentiels qui constituent
un micro-processeur. Il décrit également les interactions entre ces différents
composants.

Les quatre composants du modèle de von Neumann sont les suivants.

1. unité de contrôle
2. unité de traitement
3. mémoire
4. unité d'entrées/sorties

Modèle de von Neumann

Organisation interne des composants


Unité de contrôle

Unité de traitement

Mémoire

Le registre d'adresse (Memory Address Register) est le registre où est stocké


l'adresse de la case mémoire lue ou écrite lors d'un accès à la mémoire. La donnée
transite par le registre de donnée (Memory Data Register). Lors d'une lecture, la
donnée parvient au processeur dans ce registre. Lors d'une écriture, la donnée est
placée dans ce registre par le processeur avant d'être écrite dans la case mémoire.
Mémoire

Instructions
Cycle d'exécution
1. chargement de l'instruction
2. décodage de l'instruction
3. calcul des adresses des opérandes
4. chargement des opérandes
5. exécution
6. mise en place du résultat

Registres PC et IR
Le compteur de programme (PC pour Program counter) contient en permanence
l'adresse de la prochaine instruction à exécuter. À chaque début de cycle
d'exécution, l'instruction à exécuter est chargée dans le registre IR à partir de
l'adresse contenue dans le registre PC. Ensuite, le registre PC est incrémenté pour
pointer sur l'instruction suivante.

Le registre d'instruction (IR) contient l'instruction en cours d'exécution. Ce registre


est chargé au début du cycle d'exécution par l'instruction dont l'adresse est donnée
par le compteur de programme PC.

Codage des instructions


Les instructions exécutés par le processeur sont stockées en mémoire. Toutes les
instructions possibles sont représentées par des codes. Le code d'une instruction est
appelé op-code. Les op-code peuvent être de longueur fixe comme dans le LC-3 ou
de longueur variable comme dans le Pentium.
LA RAM & LA ROM
La RAM :

RAM signifie Random Access Memory, elle est également appelée mémoire vive ou mémoire
système. C’est la mémoire informatique dans laquelle un ordinateur place les données lors de leur
traitement. Les caractéristiques de cette mémoire sont : sa rapidité d'accès, qui est essentielle pour
fournir rapidement les données au processeur, sa volatilité, qui implique que toutes les données de
cette mémoire sont perdues dès que l'ordinateur cesse d'être alimenté en électricité. En effet, la
mémoire vive est dans un état indéterminé lors du démarrage. Le sens littéral des termes RAM et
mémoire vive peut prêter à confusion. En effet, le terme RAM implique la possibilité d'un accès
aléatoire aux données, c'est-à-dire un accès direct à n'importe quelle donnée n'importe quand. On
peut comparer cela à un livre, l’ordinateur n’est pas obligé de lire la totalité du livre pour savoir ce
qui se trouve à la page 35. Il peut s’y rendre directement. Comme expliqué lors du cours sur la carte
mère il existe plusieurs types de mémoire RAM. Deux critères permettent d’évaluer la puissance
d’une barrette de RAM, la première est sa bande passante. C’est-à-dire la vitesse avec laquelle elle
communique avec le processeur. Cette valeur s’exprime en MB/s. L’autre critère est sa fréquence de
fonctionnement. C’est le nombre de fois que des informations peuvent être écrites et effacées par
seconde. Cette valeur s’exprime en MégaHertz (MHZ), comme pour la « puissance » d’un processeur.
Le Changement de la forme des différent modèles de barrette est dû au nombre de contacte
changeant et aux incompatibilités matérielles. Celle-ci aillant évolué, nous obtenons les mémoires
suivantes : La SDRAM est d’ancienne génération. La DDR RAM disparait progressivement mais est
encore présente dans certaines machines fonctionnant sur Windows XP. Elle communique avec le
processeur avec un débit allant de 1600 à 4800 MB/s, sa fréquence est de 100 MHz à 300MHz. La
DDR2 RAM est encore très courante. Elle communique avec le processeur avec un débit allant de
3200 à 9600 MB/s, sa fréquence est de 200 MHz à 600MHz. La DDR3 RAM équipe les ordinateurs les
plus puissants. Elle communique avec le processeur avec un débit allant de 6400 à 17000 MB/s, sa
fréquence est de 400MHz à 1066MHz. La quantité de RAM embarquée par un ordinateur se calcule
en Octet (byte). Les préfixes sont les mêmes que pour la puissance des processeurs : Kilo, Méga,
Giga, etc. Cette quantité influence directement le type d’application pouvant être exécutée par
l’ordinateur ainsi que le nombre d’application exécutée en même temps sur la machine (sans
engendré de ralentissement majeur). Un ordinateur de bureau ne sera en générale pas équipé de
plus de 4Go de RAM. Les ordinateurs milieux de gamme auront généralement 8Go de RAM. Et les
ordinateurs professionnels (voir Gamer) seront équipés de 16 à 32 Go de RAM, ou plus. Le prix de la
RAM dépend de la quantité de mémoire, de sa fréquence de fonctionnement et de son débit/type.
L’installation et le remplacement d’une barrette de mémoire RAM est visible dans le cours sur la
carte mère. Problème avec la RAM Si une barrette de RAM est mal enfichée l’ordinateur diffusera
une série de bip. Il peut arriver qu’une barrette de RAM soit défectueuse. Seule une partie de la
barrette est endommagée, l’ordinateur démarre mais des erreurs et des redémarrages intempestifs
peuvent survenir. On dit à ce moment qu’un « secteur » de la RAM est défectueux. Afin de détecter
ces erreurs il est possible d’effectuer un « memtest ». La particularité de ce test est d’être exécuté au
démarrage de l’ordinateur à partir d’un CD/DVD bootable (sur lequel l’ordinateur démarre). En effet
la RAM doit être le plus vide possible afin de pouvoir tester correctement tous les secteurs.
Pour savoir la quantité de RAM installé sur l’ordinateur ordinateur il suffit de se rendre dans les
options du système. Par exemple sur Windows il faut aller dans le panneau de configuration et
choisir la zone système. Vous obtiendrez une fenêtre de ce type.

La ROM :

La ROM (Read Only Memory) ou mémoire morte est une mémoire non volatile, c’est-à-dire une
mémoire qui ne s’efface pas lorsque l’appareil qui la contient n’est plus alimenté en électricité.
Initialement cela désignait une mémoire qui ne pouvait être écrite qu'une seule fois et lue autant de
fois que nécessaire. Depuis, par simplicité, on a tendance à designer par le terme ROM toute
"mémoire morte" qui ne peut pas être facilement réécrite par l'utilisateur Installée sur la carte mère
la ROM contient le les informations nécessaires au démarrage d’un ordinateur. Appelé également
BIOS. Les modifications sur la ROM (BIOS) sont maintenues grâce à la pile présente sur la carte mère.
Si les modifications apportées au BIOS ne s’enregistrent pas il faut remplacer la pile du BIOS.

Programmation en assembleur
I ) Introduction :
Lorsque l'on doit lire ou écrire un programme en langage machine, il est
difficile d'utiliser la notation hexadécimale. On écrit les programmes à l'aide
des instructions en mnémonique comme MOV, ADD, etc. Les
concepteurs de processeurs, comme Intel, fournissent toujours une
documentation avec les codes des instructions de leurs processeurs, et les
symboles correspondantes.
L'assembleur est un utilitaire qui n'est pas interactif, (contrairement à l'utilitaire
comme debug : voir plus loin dans le cours). Le programme que l'on désire
traduire en langage machine (on dit assembler) doit être placé dans un fichier
texte (avec l'extension .ASM sous DOS).
La saisie du programme source au clavier nécessite un programme
appelé éditeur de texte.
L'opération d'assemblage traduit chaque instruction du programme source en
une instruction machine. Le résultat de l'assemblage est enregistré dans
un fichier avec l'extension .OBJ (fichier objet).
Le fichier .OBJ n'est pas directement exécutable. En effet, il arrive
fréquemment que l'on construise un programme exécutable à partir de
plusieurs fichiers sources. Il faut (relier) les fichiers objets à l'aide d'un utilitaire
nommé éditeur de lien (même si l'on a qu'un seul). L'éditeur de liens fabrique
un fichier exécutable, avec l'extension .EXE.
Le fichier .EXE est directement exécutable. Un utilitaire spécial du système
d'exploitation (DOS ici), le chargeur est responsable de la lecture du fichier
exécutable, de son implantation en mémoire principale, puis du
lancement du programme.
Donc en conclusion pour assembler un programme on doit passer par les
phases suivantes :
- Saisie du code source avec un éditeur de texte.
- Compiler le programme avec un compilateur.
- Editer les liens pour avoir un programme exécutable. Les trois phases sont
schématisées par la figure suivante :

Remarque 1 :

 On ne peut passer du code source vers le code objet que si le


programme source ne présente aucune erreur.
 La saisie se fait par des logiciels qui s'appellent éditeurs de texte, donc
on peut utiliser n'importe quel éditeur de textes (tel que EDLINE sous
MSDOS de Microsoft) sauf les éditeurs sous Windows car ces
éditeurs ajoutent dans le fichier des informations (la taille des
caractères, la police utilisée, la couleur etc...) que l'assembleur ne peut
pas comprendre .Pour utiliser les éditeurs sous Windows il est
conseiller d'enregistrer les fichiers sous forme RTF.

Editeur de lien :

 permet de lier plusieurs codes objets en un seul exécutable.


 permet d'inclure des fonctions prédéfinies dans des bibliothèques.

Plusieurs logiciels permettent le passage entre les trois phases présentée


dans la figure précédente on peut citer : MASM (Microsoft Assembler : avec
LINK comme éditeur de lien), TASM (Turbo assembler : avec TLINK
comme éditeur de lien) et NASM etc ...
Remarque 2 :
On peut générer à partir d'un fichier objet d'autres formes de fichier pour des
systèmes autres que l'ordinateur (compatible IBM). Les formes les plus
connues sont INTEL HEX, ASCII HEX etc ...
Remarque 3 :
L'assembleur est utilisé pour être plus prés de la machine, pour savoir
exactement les instructions générées (pour contrôler ou optimiser une
opération) On retrouve l'assembleur dans :
- la programmation des systèmes de base des machines (le pilotage du
clavier, de l'écran, etc...),
- certaines parties du système d'exploitation,
- le pilotage de nouveaux périphériques (imprimantes, scanners, etc..
- l'accès aux ressources du système,
L'avantage donc de l'assembleur est de générer des programmes efficaces et
rapides (à l'exécution) par contre ses inconvénients : développement et mise
au point long.
CONCLUSION :
Le microprocesseur est pour ainsi dire le cœur d’un appareil électronique : il
gère toutes les informations au sein de cet appareil.

Sa structure et son fonctionnement complexes et évolués font de lui un


composant essentiel : les transistors y jouent un rôle important afin de
maximiser la performance de ce dernier.

Son histoire nous montre à quel point il a révolutionné le monde informatique


et que sa progression ne semble pas s’arrêter.

La loi de Moore, véritable phénomène exponentiel trouvent aujourd’hui des


limites pratiques que les scientifiques essaient de repousser en améliorant
les systèmes. En effet ils sont confrontés à des problèmes tels que la
miniaturisation ou encore la surchauffe.

Chaque équipe de recherche tend à repousser les limites de la loi de Moore


afin de répondre à la demande des utilisateurs toujours plus exigeants.

Dans le monde d’aujourd’hui, on doit signaler l’utilisation croissante des


microprocesseurs (numérique, informatique, électroménager, circulation
routière, …).

Le passage du microprocesseur au nanoprocesseur révolutionnerait le monde


informatique, utilisant alors les molécules à la place des transistors.