Upload
alayna-le-roy
View
108
Download
0
Embed Size (px)
Citation preview
Les processeurs
Avant-propos
processeur : élément fondamental en informatique
Histoire
Architecture de Von Neumann
Histoire – I
1949 : EDVAC utilisations de relais électromagnétiques ou de
tubes à vide années 50/60 : apparition des transistors =>
circuits plus fiables et plus compacts apparition du circuit imprimé intégration de portes NOR dans des circuits
intégrés
Histoire – II L'intégration se développe :
SSI (small scale integration) petite : inférieur à 12 ; MSI (medium scale integration) moyenne : 12 à 99 ; LSI (large scale integration) grande : 100 à 9 999 ; VLSI (very large scale integration) très grande : 10 000
à 99 999 ; ULSI (ultra large scale integration) ultra grande : 100
000 et plus. distinction plus très pertinente : intégration
exponentielle
Histoire – III
1964 : IBM System 360 – utilisation des microcodes
DEC : PDP8 PDP11 (LSI) : 4 circuits seulement
1970 : premier microprocesseur intégré : Intel 4004
1974 : Intel 8080 fabrication ULSI sur un seule circuit
Histoire – IV Loi de Moore (Gordon Moore - Fairchild Semi
Conductors – fondateur d'Intel) le nombre de transistor dans un processeur double tous les 18 mois
Loi de Rock : le coût d'une usine de fabrication de processeurs double tous les 4 ans (Arizona 2004 : 2 milliards $)
The Wall : limite physique : pas possible de fabriquer des transistors CMOS de moins de 20 nm....
Composition d'un processeur
Les parties essentielles d’un processeur sont : l’Unité Arithmétique et Logique (UAL,
Arithmetic and Logical Unit - ALU), qui prend en charge les calculs arithmétiques élémentaires et les tests ;
l'unité de contrôle (Control Unit);
Les registres - I
les registres, qui sont des mémoires de petite taille (quelques octets), très rapides que dont l'UAL manipule le contenu à chaque cycle de l’horloge. Un certain nombre de registres sont communs à la plupart des processeurs : compteur ordinal (Program Counter ou PC) : ce
registre contient l’adresse mémoire de l’instruction en cours d’exécution ;
Les registres - II
accumulateur : ce registre est utilisé pour stocker les données en cours de traitement par l’UAL ;
registre d’adresses : il contient toujours l’adresse de la prochaine information à lire par l’UAL, soit la suite de l’instruction en cours, soit la prochaine instruction ;
registre d’instructions : il contient l’instruction en cours de traitement ;
Les registres - III registre d’état : il sert à stocker le contexte du
processeur, il est constitué de drapeaux (flags) servant à stocker des informations concernant le résultat de la dernière instruction exécutée ;
pointeurs de pile : ce type de registre, dont le nombre varie en fonction du type de processeur, contient l’adresse du sommet de la pile (ou des piles) ;
registres généraux : ces registres sont disponibles pour les calculs ;
Processeur – Constitution
le séquenceur, qui permet de synchroniser les différents éléments du processeur. En particulier, il initialise les registres lors du démarrage de la machine et il gère les interruptions ; il émet les micro-commandes
l’horloge qui synchronise toutes les actions de l’unité centrale.
Processeur – Constitution
l'unité d’entrée-sortie, qui prend en charge la communication avec la mémoire de l’ordinateur ou la transmission des ordres destinés à piloter ses processeurs spécialisés, permettant au processeur d’accéder aux périphériques de l’ordinateur.
Processeur – Constitution -suite Les processeurs actuels intègrent également
des éléments plus complexes : plusieurs UAL, ce qui permet de traiter plusieurs
instructions en même temps. L'architecture superscalaire, en particulier, permet de disposer des UAL en parallèle, chaque UAL pouvant exécuter une instruction indépendamment de l'autre ;
l'architecture superpipeline permet de découper temporellement les traitements à effectuer. C’est une technique qui vient des gros systèmes ;
Processeur – Constitution
une unité de prédiction de saut, qui permet au processeur d’anticiper un saut dans le déroulement d’un programme, permettant d’éviter d’attendre la valeur définitive d’adresse du saut. permet de mieux remplir le pipeline ;
une unité de calcul en virgule flottante (en anglais Floating Point Unit - FPU), qui permet d’accélérer les calculs sur des nombres réels codés en virgule flottante ;
Processeur – Constitution la mémoire cache, qui permet d’accélérer les traitements,
en diminuant les temps d'accès à la mémoire. Ces mémoires tampons sont en effet beaucoup plus rapides que la RAM et ralentissent moins le CPU. Le cache instructions reçoit les prochaines instructions à exécuter, le cache données manipule les données. Parfois, un seul cache unifié est utilisé pour le code et les données. Plusieurs niveaux de caches peuvent coexister, on les désigne souvent sous les noms de L1, L2 ou L3. Dans les processeurs évolués, des unités spéciales du processeur sont dévolues à la recherche, par des moyens statistiques et/ou prédictifs, des prochains accès en mémoire centrale.
Processeur - caractéristiques Un processeur est caractérisé par :
la largeur de ses registres internes de manipulation de données (8, 16, 32, 64, 128 bits) ;
la cadence de son horloge exprimée en MHz ou GHz le nombre de noyaux de calcul (core) ; son jeu d'instructions (ISA en anglais, Instructions Set
Architecture) dépendant de la famille (CISC, RISC, etc) ;
sa finesse de gravure exprimée en nm (nanomètres) et sa microarchitecture.
Unité Arithmétique et logique
effectue les calculs
Unité de contrôle
gére le fonctionnement des différents organes
Fonctionnement du processeur cycle de base
FETCH (Recherche de l'instruction) ; le CO est ensuite incrémenté de la taille (fixe ou non) de l'intruction
DECODE (Décodage de l'instruction : opérations et opérandes) ;
EXECUTE (Exécution des opérations) ; WRITEBACK (Ecriture du résultat en mémoire).
Mémoire centrale
Unité de traitement
Cases mémoire
Décodeurd’adresse
Registre mot
Séquenceur
Décodeur
Codeopération Zone adresse
Registre instruction
Bus commandes
Hor
loge
UAL
Registred’état
Accumulateur
Compteur ordinal
Bus d’adresses
Bus de données
Adressesbasses000100020003
..
.
..
.FFFDFFFEFFFF
Adresseshautes
Autres registres
Registred’adressemémoire
22
Fonctionnement de l’unité centrale Exemple d’une suite d’instructions
Le programme en langage d’assemblage (proc. 6809) réalisant une telle suite d’instructions sera :
Code machine générés par le
programme assembleur
– STA $F820 B7 F8 20 Range à l’adresse F820 le contenu du registre A
– ADDA $F810 BB F8 10 Ajoute le contenu de l’adresse F810 à celui du registre A
– LDA $F800 B6 F8 00 Charge le contenu de l’adresse F800 dans le registre A
Unité de gestion mémoire circuit intégré faisant partie intégrante depuis quelques
années (80386)
assure : La translation d'adresses logiques en adresses linéaires
par l'unité de segmentation (Segmentation) La translation d'adresse linéaire en adresses physiques
par l'unité de pagination (Pagination) La protection mémoire et lève une interruption en cas
de problème => arrêt programme fautif Le contrôle de tampon L'arbitrage du bus
Pagination mémoire
utilisation de pages (4 Ko) chargées ou déchargées à la demande par un dispositif matériel (MMU) et/ou logiciel (SE)
permet d'obtenir un grand espace de pages sans disposer de la mémoire physique correspondante.
Segmentation mémoire segmentation : mécanisme utilisé par l'unité de
segmentation de la MMU, qui divise la mémoire physique (dans le cas de la segmentation pure) ou la mémoire virtuelle (dans le cas de la segmentation avec pagination) en segments caractérisés par leur adresse de début et leur taille (décalage ou offset).
elle permet la séparation des données et du programme (entre autres segments) dans des espaces logiquement indépendants facilitant alors la programmation, l'édition de liens et le partage interprocessus. La segmentation permet également d'offrir une plus grande protection grâce au niveau de privilège de chaque segment
Mémoire virtuelle
utilisée sur tous mes processeurs modernes. permet d'exécuter des programmes de taille supérieure à celle de la mémoire physique en utilisant le stockage disque
gérée par la MMU utilisation de pages (souvent 4 ko) échangées à
la demande par le système table des pages : corresp adr virtuelles adr phy
Mémoire virtuelle - II Ex : adr virtuelles sur 32 bits, (4 Go adressables)
taille page : 4 Ko. déplacement : 12 bits de poids faible, numéro de page : 20 bits de poids fort.
elle permet : d'augmenter le taux de multiprogrammation de mettre en place des mécanismes de protection de
la mémoire de partager la mémoire entre processus
Processeurs 32 bits
adressage : 4 Go premier processeur : Intel 80386
Processeurs 64 bits
disposent de registres de 64 bits peuvent adresser 264 octets (2 hexaoctets) intéressant pour les serveurs et applications
nécessitant beaucoup de calculs
Organisation du mot
processeur Big-Endian : poids fort en tête Motorola 68xxx Sparc (Sun)
processeur Little-Endian : poids faible en tête X86
processeur Bi-Endian : on peut choisir le mode
Codage
entier: complément à deux réels : nombre flottants 32, 64 ou 80 bits traités
par le FPU
Modes d'adressage Adressage implicite – concerne un registre (accu
ou la pile) Adressage registre ou inhérent : un processeur
dispose d'un certain nombre de registres de travail. De nombreuses instructions y font référence ; vu leur nombre peu élevé (8, par exemple), il suffit d'un petit nombre de bits pour spécifier le registre désiré (3 dans notre cas). On parle dans ce cas d'adressage registre ou inhérent.
Modes d'adressage - II
Adressage direct : on donne l'adresse de la donnée en mémoire (RAM, ROM ou port d'E/S ).
Adressage immédiat : la donnée suit tout simplement l'instruction.
Modes d'adressage - III
Adressage indirect à registre : ce mode d'adressage, l'adresse de la donnée se trouve dsans un registre spécial du processeur (du même nombre de bits que son bus d'adresses), le pointeur de données. L'avantage, par rapport à l'adressage direct, est que l'adresse peut être manipulée commodément, par exemple pour accéder à une suite de données consécutives en mémoire tableau
Modes d'adressage - IV
Adressage indexé :Ce mode est assez semblable à l'adressage indirect à registre. utilise un registre spécial appelé « registre d'index ». Deux registres d'index sont particulièrement bienvenus lorsqu'il s'agit de déplacer un bloc de données dans la mémoire RAM.
Parallélisme - I processeur sub-scalaire : une instruction. à la fois
pipeline et architecture superscalaire
Parallélisme – II
Pipeline superscalaire simple.
Parallélisme - III
parallélisme au niveau des threads (processus légers)
plusieurs coeurs plusieurs processeurs
SMP : Symétrical Multi Processing NUMA : Non Uniform Memory Architecture
Histoire
Intel 4004
1971 données 4bits/bus 4 bits 2300 transistors puissance: ?
Intel 8080/8085
1974 données 8 bits / 8bits bus 6000 transistors 2 Mhz 0,64 MIPS (Million d'instr./seconde) adressage 64 Ko
Zilog Z80
compatible avec les 8080/8085 très répandu à l'époque depuis utilisé uniquement sur les systèmes
embarqués et les divers contrôleurs
Intel 8086/8088
1979 données 16 bits / 16 bits bus 30000 transistors gravé en 3 µm 8 Mhz de 0,33 à 0,75 MIPS (Million d'instr./seconde) adressage 1 Mo utilisé sur l'IBM PC (8088 à 4,77 Mhz)
Intel 80286
1982 données 16 bits bus 16 bits, 16 Mo adressables 154 000 transistors gravé à 1,5 µm de 6 à 20 Mhz 1 MIPS dispose d'une MMU (Memory Managment Unit) mode réel et mode protégé => utilisables sur
les SE multitâches (XENIX, ...)
Intel 80386 (i386)
1985 données 32 bits/ bus 32 bits => adressage 4
Go 275 000 transistors gravés en 1,5 µm 25 Mhz – 5 MIPS unité de pagination (gestion mémoire virtuelle)
et MMU mode réel et mode protégé pour le multi-tâches
Intel 80486
1989 données 32 bits/ bus 32 bits => adressage 4
Go 1,2 million de transistors gravés en 1 µm de 25 à 75 Mhz Mhz – 20 MIPS unité de calcul flottant (FPU) pour les nombres
réels 486DX2 : fréq. proc = fréq. bus x 2, DX4 (x3)
Intel Pentium 1993 - données 32 bits/ bus 64 bits 3 millions de trans. gravés en 0,8 µm puis 0,6 µm de 50 à 233 Mhz Mhz – 100 MIPS alimentation de 5V à 1,8 V une mémoire cache d’instructions et une de données de
8 Kio ; architecture superscalaire : deux UAL permettent
d’accomplir plus d’une instruction par cycle ; 2 pipelines jeu d'instructions MMX : multimédia
Intel Pentium II 1997 - données 32 bits/ bus 64 bits 7,5 millions de trans. gravés en 0,35 µm de 233 à 450 Mhz – 300 MIPS slot 1
Intel Pentium III
1999 - données 32 bits/ bus 64 bits 9,5 millions de trans. gravés en 0,25 µm puis 0,13 µm de 450 Mhz à 1,4 Ghz – 510 MIPS cache L2 : 256 ou 512 Mo nouvelles instructions multimédia (SSE) version Xeon pour serveurs (taille cache supérieure)
Intel Pentium IV 2000 - données 32 bits/ bus 64 bits de 42 à 125 millions de trans. gravés en 0,130 µm ou
0,090 µm de 1,3 à 3,8 Ghz – de 1700 à 9000 MIPS cache L2 : 256 ou 512 Mo architecture de pipeline très complexe: 31 niveaux. fort dégagement de chaleur : TDP 115 W) Pentium D : premier double coeur Pentium M : proc. pour mobiles
Intel Core 2 Duo
2006 - données 64 bits/ bus 64 bits 291 millions de trans. gravés en 65 nm 2,4 Ghz – 22000 MIPS cache L1: 64 Ko, L2 : 4 Mo version XEON et mobiles
Intel Quad Core
2007 - données 64 bits/ bus 64 bits 2 x 291 millions de trans. gravés en 0,130 µm ou
0,065 µm 3 Ghz – 2 x 22000 MIPS ? cache L1: 64 Ko, L2 : 4 Mo Pentium D : premier double coeur Pentium M : proc. pour mobiles
Intel Core i7 Novembre 2008 - Architecture Nehalem 2 à 8 cores – 780 millions de transistors 2,6 à 3,2 Ghz GPU sur le même socket, en deux dies (selon versions) retour de l'Hyperthreading ( SMT deux voies) contrôleur mémoire DDR3 intégré QuickPath interconnect ou CSI, pendant de
l'hypertransport d'AMD apparition d'un cache L3 partagé de 8Mo ; les L2 (256
Ko)ne seront pas partagés – L1 : 2x32Ko Gravure en 45 puis 32nm
AMD
Actuellement processeurs 64 bits Athlon 64X2 Phenom (600 millions de transistors) Optéron pour les serveurs En retrait par rapport à Intel en terme de
performances
Les autres familles
x86, développée principalement par les compagnies Intel , AMD (Athlon), VIA
PowerPC d'IBM /Motorola (anciens MACs, serveurs IBM et PS/3) de Motorola équipaient jusqu'en 2006 les micro-ordinateurs Macintosh. utilisés dans les serveurs de la série p d'IBM et dans divers systèmes embarqués.
6502 (MOS Technology ) de l'Apple II.
Les autres familles - II Le microprocesseur Zilog Z80 . très utilisé dans les années
1980 dans la conception des premiers micro-ordinateurs personnels 8-bits comme le Radio Shack TRS-80, les Sinclair ZX80, ZX81, ZX Spectrum, le standard MSX, les Amstrad CPC et plus tard dans les systèmes embarqués.
La famille 6800 - Motorola. La famille 68000 de Motorola animait les anciens
Macintosh, les Megadrive, les Atari ST et les Commodore Amiga. Leurs dérivés (Dragonball, ColdFire) sont toujours utilisés dans des systèmes embarqués.
Les autres familles - III Parmi les familles moins connues du grand public : La famille Sparc anime la plus grande partie des serveurs et
stations de travail de Sun Microsystems.
La famille PA-RISC de HP et VLSI Technology, anciens serveurs et stations de travail HP,
La famille IA-64 de HP et Intel, apporte l'architecture 64 bits aux serveurs et stations de travail de HP
La famille MIPS anime les stations de travail de Silicon Graphics, des consoles de jeux comme les routeurs Cisco.
Les autres familles - IV
La famille StrongARM est de nos jours utilisée uniquement dans les systèmes embarqués, dont de nombreux PDA et Smartphones, elle a précédemment été utilisée par Acorn pour ses Archimedes et RiscPC.
La famille DEC Alpha animait les ordinateurs DEC, repris par Compaq puis par HP qui l'a définitivement arrêtée.
Architecture CISC Complex Instruction Set Computer (Processeur à jeu
d'instruction complexe) jeu d'instruction très élaboré nombreux modes d'adressage famille X86 Complexe (700 Mtr. Pour Intel Core) I7 code « dense » cher à fabriquer, investissement lourds (10 milliards $)
utilise de plus en plus les « recettes » du RISC
Architecture RISC Reduced Instruction Set Computer (Processeur à
jeu d'instruction réduit) jeu d'intruction réduit =>
décodage très rapide unité de contrôle très simple et processeur très
simple très compact basse consommation investissement limité => adapté aux petites séries utilisation de pipeline
Architecture RISC - II
nombre de modes d'adressages limités instructions peu « puissantes » pb de la compatibilité Ex: Sparc (Sun), Mips (routeurs Cisco, PS/2),
Power (IBM PS/3), PA-RISC (HP), ARM ... Utilisés sur les Ipod, Iphones, Nintendo DS, PDA
Palm, Xbox-360 Les frontières entre RISC et CISC sont devenues
poreuses => de nombreuses idées RISC on été mises en oeuvre en architecture CISC
Dissipation thermique Puissance dissipée :
P = k x V2 x f
V : diff. de potentiel, f : fréquence, k : coefficient Puissance dissipée = > 130 W utilisation de ventilrad (radiateur + ventilateur) refroidissement liquide
Surfréquençage - Overclocking• consiste à augmenter la fréquence de fonctionnement
d'un processeur permet d'augmenter (un peu) les performances d'un
processeur au prix d'une plus grande consommation électrique et d'une plus grande dissipation thermique
On peut overclocker de 2 façons :
– en jouant sur la fréq. externe, par exemple 66 MHz, portée à 75, 83, 100 MHz et plus s
en augmentant le multiplicateur de fréq. interne par rapport à la fréq. externe : 1.5, 2, 2.5, 3, 3.5, 4, 4.5, 5, 5.5, ...
il importe d'adapter le système de refroidissement stabilité et fiabilité du système peuvent être affectées
Architecture multi-thread
• Plusieurs processeurs logiques sur un processeur physique
• Amélioration des performances (entre 10 et 30%) pour un surcoût limité en matériel
Processeurs multi-coeurs
plusieurs processeurs sur un même support Permet d'augmenter la puissance sans
augmenter le fréquence Pas adapté à toutes les applications Multi-programmation => nécessité de
bibliothèques spécifiques pour le calcul parallèle (MPI, PVM...)
Les performances : évaluation
MIPS: millions d'instructions/seconde. plutôt déprécié
FLOPS : Floating Operation/Sec (TeraFlops) SPEC
SPECInt : pour les nombres entiers SPECFP : pour les flottants
Virtualisation
dispositifs matériels pour améliorer les performances de la virtualisation (AMD-V et Intel VT)
ring 0 : mode privilégié (noyau) Windows, Linux ring 3 : mode utilisateur – pas de privilèges ring 1 : pour la virtualisation
Les nouvelles tendances
• muti-core pour remédier aux problèmes posés par l'augmentation de la fréquence
basse consommation : jusqu'à 30 W ou en dessous fréquence variable utilisation d'un seul coeur Consommation des datacenters : 1 % de l'énergie
mondiale consommée l'est par Google !
Intel Atom
Exemple de nouveau processeur basse consommation
TDP (Thermic Dissipation power) : 2 W pour la série N
Compact : 25 mm2 – gravé en 45 nm 47 millions de transistors - 1,1 V Fréquence : de 0,8 Ghz à 2 Ghz Cache L2 512 Ko
Intel Atom - suite Utilisé sur les netbooks, smartphone,
ultraportables et les Asus EEEbox (20 W de consommation)
Compatibles X86 Version double coeur prévue Perspectives : System On a Chip (SOC) ou
système intégré comportant contrôleur graphique et contrôleur mémoire DDR2
Gravure en 32 nm
Intel 48 coeurs
• Single Chip Cloud Computer - 12/2009
• 45 nm
• 1,3 milliard de transistors
• 24 unité de 2 coeurs
• Chacun communique avec les autres coeurs par TCP/IP
• Réseau maillé (Mesh)
• Consommation 25/125W
Intel 48 coeurs
• Single Chip Cloud Computer - 12/2009
• 45 nm
• 1,3 milliard de transistors
• 24 unité de 2 coeurs
• Chacun communique avec les autres coeurs par TCP/IP
• Réseau maillé (Mesh)
• Consommation 25/125W