IUT Rouen - GEII 2014-2015
Introduction aux microprocesseurs
1 Historique
1971 : Intel 4004 : premier microprocesseur, 4 bits, 2300 transistors, 108 kHz
1978 : Intel 8088/8086, 16 bits, architecture ”x86”, utilis´
e dans les ”IBM PC”
1985 : Intel 80386 (32 bits)
1989 : Intel 486 ( >1 million transistors)
taille r´
eelle : 12 x 7 mm
1993 : Intel Pentium
2000 : premier processeur x86-64 bits (AMD)
2002 : Intel Pentium 4 (Hyper-Threading)
2005 : AMD/Athlon 64 X2, premier processeur x86 dual-core.
Loi de Moore (1975) Gordon Moore, cofondateur d’Intel, ´
enonce en 1975 que `
a
l’avenir ”Le nombre de transistors va doubler tous les 2 ans
Cette loi empirique s’est r´
ev´
el´
ee ´
etonnament exacte pendant 40 ans, mˆ
eme si au-
jourd’hui, la croissance de la densit´
e d’int´
egration ralentit, du fait des difficult´
es
technologiques de la finesse de gravure du Silicium.
Evolutions et perspectives L’augmentation de la puissance de calcul des derni`
eres
ann´
ees s’est faite principalement sur deux axes :
Augmentation de la fr´
equence d’horloge. Aujourd’hui : 1GHz.
Augmentation de la densit´
e d’int´
egration (finesse de gravure). Aujourd’hui :
<40 nm
Le probl`
eme majeur aujourd’hui est celui de la dissipation de chaleur (100 W),
qui devient trop importante Comme on ne pourra pas repousser ind´
efiniment ces
limites physiques, les constructeurs s’orientent vers des ´
evolutions des architectures
(pipeline d’ex´
ecution, architecture multicœur, etc.)
2 G´en´eralit´es
Tout syst`
eme µ-informatique contemporain peut-ˆ
etre r´
eduit au diagramme suivant :
M2103 - Info 2 1 S. Kramm
IUT Rouen - GEII 2014-2015
On distingue trois ´
el´
ements fondamentaux :
le CPU : Central Processing Unit ;
la m´
emoire, qui contient le programme et les donn´
ees ;
les E/S, qui permettent l’interface avec l’ext´
erieur.
Ces trois ´
elements sont interconnect´
es par deux bus, chacun utilisant un certain
nombre de connexions, qui permettent de transf´
erer une valeur binaire.
Le bus d’adresse est unidirectionnel, et pilot´
e par le CPU.
Le bus de donn´
ees est bidirectionnel.
En sus (non-repr´
esent´
e ici), il y a un certain nombre de signaux de contrˆ
ole, permet-
tant la synchronisation des ´
echanges de donn´
ees entre ces ´
el´
ements.
2.1 Bus de communication
Chacun de ses bus peut avoir une largeur diff´
erente.
La taille du bus de donn´
ees d´
etermine la cat´egorie du processeur (8 bits, 16
bits, 32 bits, . . . ).
La taille du bus d’adresse d´
etermine l’espace m´emoire adressable, c’est-`
a-dire
combien de ”cases m´
emoire” pourront ˆ
etre adress´
ees (octets).
16 bits 216 = 65 536 octets = 65,5 ko (64 ×1024)
20 bits 220 = 1 048 576 octets = 1,04 Mo (1024 ×1024)
32 bits 232 = 4 294 967 296 octets = 4,29 Go
En g´
en´
eral, on aura cependant un bus d’adresse au moins ´
egal au bus de donn´
ees.
Attention : La notation 1024 octets = 1 ko est abusive, mais parfois encore utilis´
ee
en pratique.
L’humain ´
etant peu `
a l’aise pour manipuler des nombres exprim´
es en binaire, il est
d’usage d’utiliser l’hexad´
ecimal pour repr´
esenter les adresses. Ainsi sur un syst`
eme
`
a bus d’adresse de 32 bits, l’adresse 1000.0111.1111.0000.1111.1111.0000.0001 s’´
ecrira
$87F0FF01.
2.2 La m´emoire
La m´
emoire est un terme g´
en´
erique d´
esignant tout ce qui a une capacit´
e de
m´
emorisation. A noter que l’on ne parle ici que de m´emoire de travail, par opposi-
tion `
a la m´emoire de masse (de type ”disque dur”) qui est ici consid´
er´
ee comme un
p´
eriph´
erique auquel on acc`
ede via un controleur d´
edi´
e.
On distingue l’aspect logique et l’aspect physique.
D’un point de vue logique, la m´
emoire peut ˆ
etre vue comme une empile-
ment de ”cases m´
emoires”, qui sont toutes num´
erot´
ees (adresse). La quantit´
e
est fonction du bus d’adresse su syst`
eme consid´
er´
e. La valeur contenue dans
chaque case est (de fac¸on quasi-universelle) toujours un octet (8 bits).
Mˆ
eme sur un syst`
eme `
a bus de donn´
ees de 32 bits, chacun des 4 octets qui
composent un mot sur le bus se verra attribu´
e une adresse diff´
erente.
D’un point de vue physique, la m´
emoire peut ˆ
etre organis´
ee en mots de 8, 16,
32, ... 128 bits, quelle que soit la r´
ealit´
e logique derri`
ere.
Barette de DRAM
2.2.1 Aspect physique
On distingue aussi deux types de m´
emoire :
la m´
emoire ”vive”, dont le contenu est non persistant. On parle de RAM (Ran-
dom Access Memory). Ce type peut-ˆ
etre mis en œuvre `
a travers deux technolo-
gies, la DRAM (Dynamic RAM), dont l’´
element m´
emoire de base est un conden-
sateur, et la SRAM (Static RAM), dont l’´
element de base est une bascule (type
M2103 - Info 2 2 S. Kramm
IUT Rouen - GEII 2014-2015
RS). Cette derni`
ere est cependant plus ch`
ere, et r´
eserv´
ee `
a des usages particu-
liers.
la m´
emoire ”morte”, au contenu persistant (ROM : Read Only Memory). Elle est
la plupart du temps accessible en lecture seule (une op´
eration d’´
ecriture reste
sans aucun effet), bien que certains types peuvent ˆ
etre r´
e-´
ecrites, mais `
a des
vitesses toujours bien inf´
erieures `
a la RAM.
Il en existe de nombreux types (ROM, PROM, EPROM, EEPROM), mais la plus
utilis´
ee aujourd’hui est la m´emoire ”flash”, qui pr´
esente le prix `
a l’octet le plus
faible. A noter que ce type de m´
emoire pr´
esente un nombre de cycles d’´
ecritures
limit´e.
2.2.2 Plan m´emoire et E/S
Tr`
es fr´
equemment, les E/S sont souvent ”mapp´
ees” sur la m´
emoire : on acc`
ede aux
registres de contrˆ
oles des E/S comme `
a une case m´
emoire. Cela r´
eduit d’autant
l’espace m´
emoire adressable.
Par exemple, sur une architecture `
a bus d’adresse de 16 bits, si les E/S sont g´
er´
ees
via un bloc de 1024 adresses, au lieu de pouvoir implanter 216 = 65536 cases
m´
emoires, on ne pourra en utiliser que 65536 1024 = 64512.
Ci-dessous le plan m´
emoire d’un processeur `
a bus d’adresse de 16 bits montrant la
nature des diff´
erentes zones m´
emoires, ainsi que les registres d’E/S qui occupent
une part de cet espace m´
emoire.
2.3 Structure d’un CPU
Un CPU r´
eduit `
a son niveau le plus ´
elementaire est constitu´
e`
a minima des ´
elements
suivants :
une ALU ;
des registres-CPU ;
un bloc ”gestion des bus”, qui se charge de placer l’adresse d´
esir´
ee sur le bus
d’adresse, et qui va lire la valeur en m´
emoire via le bus de donn´
ees (en cas de
lecture en m´
emoire) ;
un bloc ”d´
ecodage” : ce bloc prend en entr´
ee une valeur binaire r´
ecup´
er´
ee de-
puis la m´
emoire, va interpr´
eter ce code comme une instruction, et va ensuite
configurer les connexions internes de fac¸on `
a permettre son ex´
ecution ;
un s´
equenceur, qui va piloter les diff´
erentes ´
etapes n´
ecessaires `
a l’ex´
ecution de
l’instruction en cours d’ex´
ecution.
Les diff´
erents ´
elements sont interconnectables.
M2103 - Info 2 3 S. Kramm
IUT Rouen - GEII 2014-2015
2.3.1 ALU : Arithmetic and Logic Unit
La caract´
eristique fondamentale d’une ALU est la taille des donn´
ees qu’elle mani-
pule (n : 8, 16, 32, . . . bits).
Une entr´
ee suppl´
ementaire permet de s´
electionner l’op´
eration `
a r´
ealiser entre
les deux op´
erandes 1. Les op´
erations classiques sont logiques (AND, OR, XOR,
compl´
ement `
a 1, `
a 2, d´
ecalages). ou arithm´etiques (+,-,×,/).
Toutes les ALU fournissent en plus du r´
esultat une information sur d’´
eventuels
d´
ebordements du calcul, sous la forme de bits d’´
etats. Il sont `
a minima au nombre
de 4 :
— N (Negative) : recopie du bit de poids fort, signale un nombre n´
egatif en
arithm´
etique sign´
ee
Z (Zero) : signale un r´
esultat = 0
V (oVerflow) : retenue (arithm´
etique sign´
ee)
C (Carry) : retenue (arithm´
etique non-sign´
ee)
2.3.2 Registres / CPU
Rappel Le fonctionnement d’une bascule D est
d´
ecrit par la phrase ”Q recopie D sur le front d’hor-
loge”. On peut donc consid´
erer cette bascule comme
une ”m´
emoire 1 bit”.
Si on assemble deux bascules synchronis´
ees par la
mˆ
eme horloge, on dispose d’une m´
emoire 2 bits. Par
g´
en´
eralisation, un registre nbits est un assemblage
de nbascules D synchronis´
ees par un signal com-
mun.
1. A noter que certaines op´
erations (d´
ecalages) ne font intervenir que une seule op´
erande.
Les registres sont utilis´
es dans le CPU pour m´
emoriser des donn´
ees temporaires,
notamment pour les op´
erandes et les r´
esultats de calculs faits par l’ALU. On dis-
tingue
les accumulateurs, utilis´
es pour les calculs,
les registres d’index, pour g´
erer des pointeurs (dont la valeur num´
erique conte-
nue repr´
esente une adresse),
les registres syst`
eme :
— PC Program Counter : contient l’adresse de l’instruction en cours
d’ex´
ecution,
Pointeur de Pile (SP : Stack Pointer),
d’autres registres syst`
eme.
Le nombre des registres d´
epend du CPU consid´
er´
e, typiquement on dispose de 2 `
a
16 registres utilisateurs sur un CPU 16 bits, plus sur des CPU 32 ou 64 bits.
2.3.3 Ex´ecution d’une instruction
L’ex´
ecution d’une instruction se fait en plusieurs cycles d’horloge : le s´equenceur
pilote son d´
eroulement. La dur´
ee d’ex´
ecution est fonction de la complexit´
e de
l’op´
eration, et peut-ˆ
etre variable. Elle s’exprime en cycles-d’horloge (3, 4, 5, 6 ...
cycles d’horloge, voire plus).
Ces diff´
erentes ´
etapes sont :
1. lecture en m´
emoire `
a l’adresse indiqu´
ee par PC du code op´
eratoire de l’instruc-
tion,
2. d´
ecodage et configuration des interconnexions internes,
3. ex´
ecution,
4. incr´
ementation compteur ordinal (PC), pour passer `
a l’ex´
ecution de l’instruc-
tion suivante.
Ceci peut ˆ
etre repr´
esent´
e par les connexions suivantes montrant le cheminement
des donn´
ees sur les bus :
M2103 - Info 2 4 S. Kramm
IUT Rouen - GEII 2014-2015
2.4 Jeu d’instructions
Il est d´
efini par le constructeur, et propre `
a la famille du processeur. Il y a quatre
cat´
egories d’instructions :
1. Transfert de donn´
ees (m´
emoireregistre, registre registre, m´
emoire
m´
emoire).
2. Op´
erations arithm´
etiques et logiques (impliquant l’ALU).
3. Contrˆ
ole de s´
equence : branchements / sauts (d´
eroutement de l’ex´
ecution).
4. Instructions syst`
eme diverses.
Attention Le processeur ne reconnaˆ
ıt que le code op´eratoire : valeur binaire
unique qui correspond au code de cette instruction. Pour rendre la lecture d’un
programme ´
ecrit en assembleur plus lisible, on d´
esigne les instructions par un mot
court, qu’on appelle un mn´emonique.
Exemple : Load Accumulator A, not´
eldaa : charge le registre-accumulateur A avec
une valeur.
Implantation d’une instruction en m´emoire Sur les architectures CISC, le nombre
d’octets occup´
e par une instruction peut ˆ
etre variable (1, 2, 3, ... octets). Certaines
instructions ont besoin d’une op´erande (donn´
ee sur laquelle travailler), qui peut
ˆ
etre fournie de diff´
erentes fac¸ons.
Par exemple, une instruction d’incr´
ementation d’un registre n’a pas besoin
d’op´
erande. A contrario, une instruction de chargement d’un registre avec une va-
leur ou le contenu d’une adresse m´
emoire doit connaˆ
ıtre la valeur ou l’adresse `
a
consid´
erer. Cette valeur doit donc ˆ
etre int´egr´ee dans l’instruction elle mˆ
eme, ce qui
occupe donc des octets suppl´
ementaires.
Sur architecture RISC, chaque instruction est en g´
en´
eral cod´
ee par le mˆ
eme nombre
de bits.
2.5 Microcontroleur vs. Microprocesseur
Ces deux ´
elements sont proches mais quelques d´
etails les s´
eparent.
Microprocesseur C’est un composant g´
en´
eraliste, optimis´
e pour la puissance de
calcul et la vitesse. Il ne peut fonctionner qu’accompagn´
e de son chipset. Sur archi-
tecture PC classique, ce chipset est compos´
e de de deux ´
elements principaux :
le NorthBridge, d´
edi´
e`
a la communica-
tion avec la RAM et les p´
eriph´
eriques
rapides (carte graphique) ;
— le SouthBridge, d´
edi´
e`
a la com-
munication avec tous les autres
p´
eriph´
eriques.
Microcontrˆoleur Il est sp´
ecialement adapt´
e aux applications embarqu´
ees et est
capable de fonctionnement autonome. Il int`
egre un CPU, plus :
de la m´
emoire
— RAM
ROM, EEPROM, Flash
et des gestionnaire de p´
eriph´
eriques :
— Communication
Acquisition (capteur, organe de commande, . . . )
Pilotage actionneurs et afficheurs
M2103 - Info 2 5 S. Kramm
1 / 6 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !