MicroProcesseur Hicham ELKASMI

12
Hicham ELKASMI MICROPROCESSEUR

description

MicroProcesseur Hicham ELKASMI

Transcript of MicroProcesseur Hicham ELKASMI

Page 1: MicroProcesseur Hicham ELKASMI

Hicham ELKASMI

MICROPROCESSEUR

Page 2: MicroProcesseur Hicham ELKASMI

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

Page 3: MicroProcesseur Hicham ELKASMI

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

Page 4: MicroProcesseur Hicham ELKASMI

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

Page 5: MicroProcesseur Hicham ELKASMI

« !!! » 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

Page 6: MicroProcesseur Hicham ELKASMI

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.

Page 7: MicroProcesseur Hicham ELKASMI

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.

Page 8: MicroProcesseur Hicham ELKASMI

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

Page 9: MicroProcesseur Hicham ELKASMI

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

Page 10: MicroProcesseur Hicham ELKASMI

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.

Page 11: MicroProcesseur Hicham ELKASMI

Première photos publiées par le site chinois HardSpell du Core i7 et son Ventirad

Page 12: MicroProcesseur Hicham ELKASMI

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