IUT Rouen - R´
eseaux & T´
el´
ecoms 1 2013-2014
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, due au difficult´
es tech-
nologiques de la finesse de gravure du Silicium.
1.1 Evolutions et perspectives
L’augmentation de la puissance de calcul des derni`
eres ann´
ees s’est faite principa-
lement 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.)
M1103 1 S. Kramm
IUT Rouen - R´
eseaux & T´
el´
ecoms 1 2013-2014
2 G´en´eralit´es
Tout syst`
eme µ-informatique contemporain peut-ˆ
etre r´
eduit au diagramme suivant :
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 souvent utilis´
ee en
pratique.
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 oppo-
sition `
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, une fois
sauvegard´
e en m´
emoire.
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
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
RS). Cette derni`
ere est cependant plus ch`
ere, et r´
eserv´
ee `
a des usages particu-
liers.
M1103 2 S. Kramm
IUT Rouen - R´
eseaux & T´
el´
ecoms 1 2013-2014
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´
esent un nombre de cycles d’´
ecritures
limit´e.
2.2.1 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.
Par exemple, 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.2.2 Adressage m´emoire
Les diff´
erents blocs ´
etant interconnect´
es, il faut un m´
ecanisme permettant de ne
s´
electionner que celui qui est effectivement adress´
e par le processeur. Ceci se fait
sur chaque boitier physique par un signal de validation (souvent appel´
eCS, pour
Chip Select). Il est en g´
en´
eral actif `
a 0, ce qui fait qu’il est d´
esign´
e alors par CS. Si ce si-
gnal n’est pas activ´
e, alors le boitier est automatiquement d´esactiv´e. L´
electronique
associ´
ee au CPU doit inclure un circuit d’adressage m´emoire qui va activer ou non
les diff´
erents boitiers de m´
emoire, selon l’adresse plac´
ee sur le bus par le CPU.
Par exemple, sur le plan m´
emoire pr´
ec´
edent, consid´
erons le bloc de 4KiB d’EE-
PROM situ´
e`
a l’adresse $0000. Il ne doit ˆ
etre activ´
eque si l’adresse pr´
esente sur
le bus a une valeur dans la plage $0000 `
a$0FFF.
On note que la condition commune sur toute cette plage est que les 4 premiers bits
soient `
a 0. On peut formaliser c¸a avec la phrase : ”SI les bits a15,a14,a13,a12 sont `
a
0, ALORS, CS soit ˆ
etre `
a 0”, et l’´
equation logique sera :
CS =a15 ·a14 ·a13 ·a12 Soit : CS =a15 ·a14 ·a13 ·a12
Ceci se simplifie en : CS =a15 +a14 +a13 +a12
Le circuit pour la s´
election de l’EEPROM est donc le suivant :
2.3 Structure d’un CPU
Un CPU r´
eduit `
a son niveau le plus ´
elementaire est constitu´
e`
a minima des ´
elements
suivants :
M1103 3 S. Kramm
IUT Rouen - R´
eseaux & T´
el´
ecoms 1 2013-2014
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 interpreter 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.
2.3.1 Typologie des architectures
Longtemps, deux approches se sont oppos´
ees :
Approche ”traditionnelle” CISC (Complex Instruction Set Computer)
jeu d’instruction de plus en plus ´
etoff´
e au fur et `
a mesure des ´
evolutions.
richesse fonctionnelle, mais complexit´
e du design, entraˆ
ınant une limitation
des performances.
Approche RISC (Reduced Instruction-Set Computer)
jeu d’instructions tr`
es r´
eduit (design plus simple),
chaque instruction s’ex´
ecute en 1 cycle d’horloge,
moins de transistors, donc plus de place pour d’autres fonctionnalit´
es
(m´
emoire cache, . . . )
ecriture du software plus complexe (plus d’instructions n´
ecessaires qu’avec
un CISC pour la mˆ
eme op´
eration).
Aujourd’hui, les architectures des CPU modernes rendent cette distinction moins
pertinente.
2.3.2 ALU : Arithmetic and Logic Unit
La caract´
eristique fondamentale d’une ALU est la taille des donn´
ees qu’elle mani-
pule (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.3 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”.
1. A noter que certaines op´
erations (d´
ecalages) ne font intervenir que une seule op´
erande.
M1103 4 S. Kramm
IUT Rouen - R´
eseaux & T´
el´
ecoms 1 2013-2014
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 ’n’ bits est un assemblage
de ’n’ bascules D, synchronis´
ees par un signal com-
mun.
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.4 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 :
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 :
Transfert de donn´
ees (m´
emoireregistre, registre registre, m´
emoire
m´
emoire).
— Op´
erations arithm´
etiques et logiques (ALU).
— Contrˆ
ole de s´
equence : branchements / sauts (d´
eroutement de l’ex´
ecution).
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.
2.4.1 Implantation d’une instruction en m´emoire
Sur les architectures CISC, le nombre d’octets occup´
e par une instruction peut ˆ
etre
variable. 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
d’octets.
M1103 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 !