Upload
el-oufir-el-mehdi
View
242
Download
0
Embed Size (px)
DESCRIPTION
MicroProcesseur Hicham ELKASMI
Citation preview
Hicham ELKASMI
MICROPROCESSEUR
Microprocesseur (définition)
Un microprocesseur ou CPU (Central Processor Unit) est un composant électronique
minuscule, fabriqué le plus souvent en silicium, qui regroupe un certain nombre de transistors
élémentaires interconnectés. Son rôle est d'interpréter les instructions et traiter les données
d'un programme. En informatique, le microprocesseur est l'élément le plus important
de l'ordinateur. Dès maintenant nous devons mettre en tête que dans un ordinateur, il n'y a
pas un seul processeur mais il existe de nombreux processeurs qui gèrent indépendamment :
la carte son, la carte graphique, la carte SCSI, etc... mais c'est le microprocesseur ou CPU
(Central Processor Unit) qui est chargé de traiter toutes les informations de ces composants.
Actuellement il existe deux grands fondeurs produisant des processeurs pour PC, INTEL et
AMD qui se partagent quasiment entièrement le marché avec environ 80% pour Intel et 20%
pour AMD. Ces chiffres sont ceux du marché global (OEM, entreprises...) mais dans le
segment qui nous intéresse, celui des particuliers qui achètent un processeur au détail, les
parts de marché sont d'environ 70/30. Il existe d'autres fondeurs comme IBM, Texas
Instrument ou VIA mais leurs produits sont surtout réservés à certaines niches du marché
(ultra basse consommation...) ou d'autres produits (consoles, téléphones etc...).
Caractéristiques principales du processeur
Les trois paramètres principaux qui contribuent à identifier un processeur. Les deux éléments
primordiaux à son identification est sa largeur et sa fréquence. La fréquence est une notion
relativement simple à appréhender. Elle se mesure en mégahertz (MHz) ou en gigahertz
(GHz) et correspond au nombre de millions ou de billions de cycles par seconde que le
processeur est capable d’effectuer. Bien entendu plus cette valeur est élevée, plus le
processeur sera rapide. La largeur de bande d’un processeur est un concept déjà plus
complexe, car le processeur possède en fait trois variables exprimés sous la forme d’une
largeur, nos trois paramètres :
1) Le bus d’entrées/sorties de données ;
2) Le bus d’adresses ;
3) Les registres internes ;
Bus d’entrées/sorties de données
Vous savez déjà que dans un ordinateur, les données sont envoyées sous forme d’informations
numériques, langage binaire. Dans un même laps de temps, l’ordinateur génère une tension de
3,5 Volt ou 5 Volt pour signaler un bit de donnée 1, et une tension de 0 Volt pour
communiquer un bit de données. Plus le nombre de fils est important, plus le nombre d’octets
(1 octet = 8 bits) transférés en intervalle de temps donné est grand. Tous les processeurs
modernes, depuis le Pentium jusqu’au dernier Core 2 Duo, et même Core i7, disposent d’un
bus de données d’une largeur de 64 bits, soit 8 octets (8 octets x 8 bits = 64 bits). Ils peuvent
ainsi transporter 64 bits de données en même temps vers ou depuis le chipset de la carte mère
ou la mémoire système.
Tableau depuis 1971 à 2008 des architectures avec largeur de bus de données
Date Nom Nombre de
transistors
Finesse de
gravure
(µm)
Fréquence
de l'horloge
Largeur
des
données
MIPS
1971 4004 2 300
108 kHz 4 bits/4
bits bus
1974 8080 6 000 6 2 MHz 8 bits/8
bits bus 0,64
1979 8088 29 000 3 5 MHz 16 bits/8
bits bus 0,33
1982 80286 134 000 1,5 6 MHz 16 bits/16
bits bus 1
1985 80386 275 000 1,5 16 à 40 MHz 32 bits/32
bits bus 5
1989 80486 1 200 000 1 25 à 100 MHz 32 bits/32
bits bus 20
1993 Pentium 3 100 000 0,8 à 0.28 60 à 233 MHz 32 bits/64
bits bus 100
1997 Pentium II 7 500 000 0,35 à 0.25 233 à 450 MHz 32 bits/64
bits bus 300
1999 Pentium III
9 500 000 0,25 à 0.13 450 à 1400 MHz 32 bits/64
510
« !!! » bits bus
2000 Pentium 4 42 000 000 0,18 à 0.065 1,3 à 3.8 GHz 32 bits/64
bits bus 1 700
2004 Pentium 4D
« Prescott »
125 000
000 0,09 à 0.065 2.66 à 3.6 GHz
32 bits/64
bits bus 9 000
2006 Core 2™ Duo 291 000
000 0,065 2,4 GHz (E6600)
64 bits/64
bits bus 22 000
2007 Core 2™
Quad
2*291 000
000 0,065 3 GHz (Q6850)
64 bits/64
bits bus
2*22
000 (?)
2008 Core 2™ Duo
(Penryn)
410 000
000 0,045 3,33 GHz (E8600)
64 bits/64
bits bus
~24
200
2008
Core 2™
Quad
(Penryn)
2*410 000
000 0,045 3,2 GHz (QX9770)
64 bits/64
bits bus
~2*24
200
2008 Intel Core i7
(Nehalem)
731 000
000
0,045
(2008) -
0,032
(2009)
2,93 GHz (Core i7
940) - 3,2 GHz (Core
i7 Extreme Edition
965)
64 bits/64
bits bus ?
Pour bien comprendre la manière dont les informations circulent, je vais prendre l’exemple le
plus utilisé par les analystes, celui de l’autoroute. Donc si une autoroute ne comprend qu’une
seule voie dans chaque sens, on peut en déduire qu’une seule voiture pourra se déplacer à la
fois dans un sens. Pour augmenter le trafic, il est possible d’ajouter une seconde voie ce qui
permettra d’avoir deux fois plus de véhicules qui pourront circuler dans le même laps de
temps. Le processeur 8 bits peut être comparé à une autoroute à une voie unique, puisque seul
un octet peut circuler sachant que un octet équivaut à 8 bits. Afin d’augmenter encore le
trafic, on peut décider de construire une autoroute à quatre voies dans chaque sens. Cet
exemple et le modèle type d’une architecture correspondant à un bus de données 32 bits,
capable de transférer 4 octets d’informations simultanément. Si l’on pousse un peu plus loin
notre exemple on obtiendra un bus de données de 64 bits que l’on peut comparer à une
autoroute à huit voies dans chaque sens.
On nomme ces données extrêmement importante que l’on vient d’expliquer, la largeur du bus
de données d’un processeur. Importante, car c’est cette valeur qui conditionne aussi la taille
d’un banc de mémoire vive. Les processeurs Pentium (dont le Pentium III, Celeron, Pentium
4, ainsi que les modèles Athlon et Duron) lisent et écrivent 64 bits de données à la fois dans la
mémoire. Logique étant données que les barrettes de mémoire de types SIMM (Single Inline
Memory Module, module de mémoire à rangée de contacts unique) à 72 broches ont une
largeur de 32 bits seulement. C’est pour cette raison qu’elles pouvaient être à l’époque
installées une par une sur la plupart des ordinateurs de type 486. Sur les ordinateurs de type
Pentium, elles devaient impérativement être installées par paire.
Ensuite sont arrivée les barrettes de mémoire DIMM (Dual Inline Memory Modules, modules
de mémoire à double rangée de contacts) avec une largeur de 64 bits. Elles peuvent donc être
installées dorénavant une par une sur les ordinateurs à partir de la classe Pentium III. Donc
chaque barrette DIMM correspondait à un banc de mémoire entier ce qui à l’époque a facilité
grandement la configuration des ordinateurs.
Ensuite avec une très courte durée de vie sont arrivée les nouvelles barrettes de mémoire
RIMM (Rambus Inline Memory Modules, modules de mémoire à rangée de contacts Rambus)
très onéreuse ce qui explique son manque de succès. Cette mémoire applique des règles de jeu
bien différent et disposera en principe que d’une largeur de 16 ou 32 bits. En fonction du type
de module et du type de mémoire, elles seront employées soit individuellement ou par paire.
Encore très utilisé de nos jours et avec l’arrivée du Pentium 4, les modules mémoire DIMM
DDR (Double Data Rate, modules de mémoire à double taux de transfert) vont faire table
rase sur tous les anciens modules. Son bus est comme pour les modules de mémoire DIMM
de 64 bits avec un connecteur de 184 broches à la différence qu’elle double le taux de
transfert de données en un cycle d’horloge (les données circulent dans un même laps de temps
dans un front montant et un front descendant du bus système).
Dernier modules de mémoire actuel, la DIMM DDR-II (Double Data Rate Two, modules de
mémoire à double taux de transfert à débit deux fois plus élevé) qui pour différence avec la
DDR de pouvoir augmenter le taux de transfert par deux et de traiter quatre mot de données
par cycle d’horloge.
Bus d’adresses
Le bus d’adresses est l’ensemble des fils qui transportent les informations d’adressage
utilisées pour d’écrire la zone de mémoire dans laquelle les données sont envoyées ou depuis
laquelle les données proviennent. Tout comme pour le bus de données, chaque fil transporte
un seul bit d’information. Ce bit est toujours un chiffre unique de l’adresse. Plus il y a de fils
(chiffres) utilisés pour calculer ces adresses, plus le nombre de zones d’adresses est important.
La taille ou largeur du bus d’adresses indique la quantité de RAM maximale que le processeur
peut adresser.
Pour reprendre l’exemple de notre autoroute, si le bus d’entrée/sortie de données est
représenté par l’autoroute et que sa taille correspond au nombre de voies, le bus d’adresses
correspond au numéro de maison ou plus simplement à l’adresse dans la rue. On peut que la
taille du bus d’adresse correspond au nombre de chiffres du numéro de la maison. Par
exemple, si vous habitez une rue où il n’y a que des adresses à deux chiffres (en informatique
binaire, base 10), il ne peut y avoir que cent adresses (00-99) distinctes dans votre rue que
l’on écrira 10 puissances 2. Si l’on ajoute un chiffre, le nombre d’adresses passera à mille
(000-999), soit 10 puissance 3.
La taille du bus de données est une indication de la capacité de déplacement d’informations
du processeur ; La taille du bus d’adresses indique la quantité de mémoire qui peut être gérée
par la puce. Il faut retenir que la taille des bus peut fournir de précieuses informations
concernant la puissance relative d’un processeur mesurée suivant deux méthodes
intéressantes.
Registres internes (bus de données internes)
La taille des registres internes d’un processeur est également un bon indicateur de la quantité
d’informations que celui-ci peut gérer en un temps données et de la façon dont il déplace les
données en interne. Il est quelquefois référencé par les techniciens sous l’appellation « bus de
données interne ». La taille des registres internes est sensiblement égale à celle du bus de
données interne. C’est quoi un registre ? Une cellule de stockage située à l’intérieur du
processeur. A titre d’exemple, le processeur peut additionner des nombres dans deux registres
différents, puis stocker le résultat dans un troisième registre. Il faut retenir que la taille d’un
registre détermine la quantité de données que le processeur peut traiter. Mais le plus important
cette taille décrira également les types de logiciels ou de commandes et d’instructions que le
processeur peut exécuter.
Presque tous les processeurs modernes utilisent des registres internes de 32 bits, ils peuvent
par conséquent faire fonctionner les systèmes d’exploitation identiques et les mêmes logiciels
32 bits. Certains processeurs comme par exemple le Core 2 Duo est compatible pour faires
fonctionner les logiciels et systèmes d’exploitations soit en 32 bits ou 64 bits car il intègre en
son cœur les deux variantes de registres internes. Si l’on prend des processeurs destinés aux
serveurs comme par exemple l’Intel Itanium a pour sa part des registres internes de 64 bits, ce
qui suppose qu’il ne pourra faire fonctionner que des systèmes d’exploitation et des logiciels
en 64 bits.
Les registres internes ont souvent une taille supérieure à la largeur du bus de données, ce qui
signifie que le processeur a besoin de deux cycles d’horloges pour remplir un registre avant
que celui-ci ne soit exploitable. Par exemple les anciens processeurs comme l’Intel 386SX et
386DX avaient tous deux des registres internes de 32 bits, mais les 386SX devaient s’y
reprendre à deux fois pour les remplir, alors que les 386DX pouvaient le faire en une seule
passe ou on dirait plutôt de nos jours en un seul cycle d’horloge. Il en était de même lorsque
les données quittaient les registres pour revenir dans le bus système.
Les Pentium par contre reposent sur une architecture inverse. Tous les pentiums remplacés
actuellement par l’architecture Core (Core 2 Duo, Core 2 Quad), possèdent un bus données 64
bits comme on a pu le voir plus haut, mais des registres de seulement 32 bits. Cette structure
était apparemment problématique pour Intel car le Pentium était équipé de deux pipelines
internes (sorte de tuyau ou sont traité les données) de 32 bits (2 x 32 bits = 64 bits) permettant
de gérer le flux d’informations. On disait à l’époque que le Pentium équivalait à deux puces
32 bits en une. Problématique car il fallait beaucoup plus de temps pour traiter les données par
rapport à un bus de données unique de 64 bits qui assurait un approvisionnement bien plus
efficace. On dit d’un processeur qui utilise plusieurs pipelines comme le Pentium, qu’il est
d’une architecture superscalaire.
Pour information les processeurs de sixième génération les plus avancés, tels le Pentium III ou
le Pentium 4 possèdent pas moins de six pipelines internes pour exécuter les instructions alors
que le Core de Duo possède des pipeliens plus court, plus large avec moins d’étages ce qui
explique ses excellentes performances. Certains de ces pipelines internes étaient aussi
réservés pour des fonctions spéciales afin de pouvoir exécuter trois instructions en un même
cycle d’horloge.
Dechiffrer les information d’un processeur
ONGLET CPU : Une fois exécutée vous allez pouvoir récupérer les données fondamentales
de votre machine. Le premier onglet d’information qui apparaît lors de son lancement est
celui nommé CPU, comme vous pouvez le voir sur la photo ci-dessus les premier champ
indique le nom de votre processeur (dans l’exemple Intel Core 2 Extreme QX6700), en
dessous son nom de code (dans l’exemple Kentsfield), ensuite le nom de son support (dans
l’exemple socket LGA 775), la technologie de gravure (dans l’exemple finesse de gravure
65 nanomètres), sa spécification (dans l’exemple Intel® Core™ 2 Quad CPU pur quatre
Core, fréquence réelle @2,66GHz), puis le famille des processeurs auquel il appartient
(dans notre exemple famille de génération 6 de la famille étendue , modèle F de la famille
étendue et le Stepping 7 qui spécifie le design de son enveloppe), la seconde ligne est du
même acabit dans l’exemple le paramètre très important à noter, est la révision du Core (dans
l’exemple B3), une indication très importante pour l’overclocking qui correspond au numéro
de révision de la fabrication du processeur. La ligne nommée instructions indique qu’elles
sont les instructions SIMD(8) intégrées au processeur, leurs classifications et leurs fonctions,
ça n’a pas beaucoup d’intérêt lors d’un overclocking dans notre exemple (MMX, SSE, SSE2,
SSE3, SSSE3) qui sont des instructions permettant d’accélérer les applications multimédia
qui les prennent en compte et la référence (EM64T) indique que ce processeur peut prendre
en charge les systèmes d’exploitations utilisant les instructions 64 bits. Core Speed 1600 MHz
(dans l’exemple correspond à la fréquence actuelle de fonctionnement en mode économie
d’énergie), Multiplier X6 et de 6-10 (vous donne le quotient multiplicateur actuel interne
du BUS et le quotient maximum 10), BUS Speed c’est sa vitesse réelle interne (dans notre
exemple 266 MHZ), Rated FSB (Freqency System Bus ici 1066 MHz), qui contrairement
au BUS est la vitesse de communication par le bus entre le processeur et le chipset, chez
INTEL sa technologie est en Quad Pump c'est-à-dire 266 MHz x 4 = 1066 MHz, on dit aussi
Quad DDR. La partie de droite concerne les différentes mémoires caches intégrées au cœur de
la puce. Dans notre exemple (L1 Data 4 x 32 KBytes) quantité de données que le cache L1
peut stocker, (L1 Code 4 x 32 KBytes) quantité d’instructions que le cache L1 peut stocker.
Pour le terme Kilobyte voir le dico KBytes supplément. Level L2 pour cache L2 ou niveau
deux, (dans notre exemple 2 x 4096 KBytes) ou 2 x 4 Mo = 8 Mo, est la mémoire cache de
second niveau, quand le cache L1 est plein, c’est le cache L2 qui sera sollicité et si celui-ci est
complet, le stockage passera vers la mémoire RAM et ainsi de suite, si la mémoire RAM est
pleine, les données seront stockés sur le disque dur en mode virtuel. On suit une logique
imparable, pour que le PC soit le plus réactif possible. On sollicite en premier la mémoire la
plus rapide en décroissant vers la plus lente. Dernier paramètre, (sélection Processor #1,
Core 4, Threads 4) cela veut dire que l’on a entre les mains 1 processeur intégrant 4 Core
ou cœur pouvant exécuter 4 processus ou taches indépendantes dans un même laps de
temps. On vient de terminer la première explication de l’onglet CPU, une explication un peu
longue, mais nécessaire pour la suite de notre expérience.
Fin du Core 2 Duo, nouveau Core i7
Si depuis 2006, année du lancement du Core 2 Duo, les nombreuses déclinaisons n’ont cessés
de dominer le marcher avec un succès incontestable, Intel ne compte pas s’arrêter en si bon
chemin et tient à garder son avance de leadership face à AMD en grande difficulté depuis le
rachat de la firme ATI accompagné du bug du TLB (contrôleur mémoire intégré) sur les
premiers Phenom. Lors du salon de l’IDF (Intel Developer Forum) Intel vient déjà de
présenter avec un test grandeur nature le remplaçant du Core 2 Duo malgré sont relatif jeune
âge. La toute nouvelle architecture, l’Intel Core i7 (voir les photos des logos ci-dessous) dont
la première gamme aura pour nom de code Nehalem va faire peau neuve. En effet on a affaire
cette fois à une toute nouvelle génération de puces qui rompt complètement avec
l’architecture Core 2 Duo.
Attention !, vous aller voir que vous n’êtes pas au bout de vos surprises, car les changements
et innovations sont bien réelles, et vont peut-être même en dérouter plus d’un ou d’une. Après
avoir regroupé diverses sources et informations, je vais tenter en avant première de vous
dévoiler le secret de cette nouvelle architecture, l’Intel Core i7 dont la première série devrait
voir le jour le quatrième trimestre 2008.
Pour info le premier exemplaire Core i7 Nehalem fonctionne déjà, il s’agit du premier
processeur d’Intel à intégrer lui-même un contrôleur de mémoire, à l’image de ce que nous
connaissons chez AMD depuis la sortie de l’Athlon 64. C’est également un véritable Quad
Core natif, contrairement au Core 2 Quad qui est un regroupement de deux die dual core,
c’est le retour aussi de la fonction améliorée de l’HyperThrading, le Nehalem propose donc
huit core au total. Suit forcément un changement de socket et de chipsets, nous parlons d’un
socket tenez vous bien de 1366 pins au format rectangulaire (voir la photo ci-dessous) et d’in
nouveau chipset X58, indispensable pour prendre en charge l’architecture Core i7.
Première photos publiées par le site chinois HardSpell du Core i7 et son Ventirad
Voyons en détail toutes ces innovations. C’est le haut de gamme au nom de code Nehalem
(pour info culturelle Nehalem à été emprunté au nom d’une rivière de l’Oregon), Core i7
Extreme Edition qui sera lancer le premier à 3.2 GHz, ensuite les autres Core i7 étant
prévus à 2,93 GHz et 2,66 GHz. En ce qui concerne la partie mémoire et son traitement, le
pipeline mémoire du Nehalem a fait l'objet de nombreuses évolutions en comparaison à Core
2, deux nouveautés frappent au premier abord : le contrôleur mémoire intégré au processeur,
et la présence d'un troisième niveau de cache.
Ce contrôleur porte le nom de IMC (Integrated Memory Controller) et il est capable de gérer
trois canaux à la fois de DDR3 1333 MHz, oui vous avez bien lu et aussi surement compris, il
faudra obligatoirement trois barrettes mémoires de DDR3 pour profiter des performances
(triple canal). Ce contrôleur mémoire offre ainsi une bande passante maximale théorique de
32 Go/s contre 21 Go/s auparavant. Cette intégration du contrôleur mémoire au cœur de la
puce va permettre une réduction sévère d’accès à la mémoire.
Une nouvelle hiérarchie du TLB (Translation Lookaside Buffers) à été complètement
revisitée. Les TLB sont les buffers (mémoires tampons) qui stockent les correspondances
entre les adresses virtuelles manipulées par les programmes, et les adresses physiques
auxquelles elles se réfèrent. On en a beaucoup entendu parler récemment à cause du fameux
bug du Phenom du TLB. La structure de TLB de Core 2 est très performante, de par la
présence, en plus d'un TLB classique de 288 entrées, d'une micro-TLB très petite, très rapide,
et dédiée aux seules lectures.
Pour le Core i7, Intel a du revoir sa copie, notamment à cause du SMT (Simultaneous Multi-
Threading), et la micro-TLB a du être abandonnée sur Nehalem au profit d'une TLB
classique, davantage capable de contenir les adresses de deux threads. En revanche, Nehalem
garde deux niveaux de TLB : deux buffers de premier niveau pour le code et les données (192
entrées en tout), et un buffer unifié offrant pas moins 512 entrées. Les cores du Nehalem
bénéficient donc également de la technologie SMT (Simultaneous Multi-Threading), apparue
avec les Pentium 4 équipés de l'HyperThreading (nom commercial du SMT sur Netburst), et
que l'on trouve également sur les premières générations de processeurs Atom. Sur ce coup là
on peut dire que Intel a fait du neuf avec du vieux avec un retour en arrière sur une
technologie pourtant abandonnée sur le Core 2 Duo.
Une nouvelle hiérarchie de la mémoire cache fait son apparition et l’on se retrouve
maintenant avec un cache L1, L2 et le tout nouveau L3