vendredi 2 février 2007

Introduction

Présentation
Le processeur (CPU, pour Central Processing Unit, soit Unité Centrale de Traitement) est le cerveau de l'ordinateur. Il permet de manipuler des informations numériques, c'est-à-dire des informations codées sous forme binaire, et d'exécuter les instructions stockées en mémoire.
Le premier microprocesseur (Intel 4004) a été inventé en 1971. Il s'agissait d'une unité de calcul de 4 bits, cadencé à 108 kHz. Depuis, la puissance des microprocesseurs augmente exponentiellement. Quels sont donc ces petits morceaux de silicium qui dirigent nos ordinateurs?

Fonctionnement
Le processeur (noté CPU, pour Central Processing Unit) est un circuit électronique cadencé au rythme d'une horloge interne, grâce à un cristal de quartz qui, soumis à un courant électrique, envoie des impulsions, appelées « top ». La fréquence d'horloge (appelée également cycle, correspondant au nombre d'impulsions par seconde, s'exprime en Hertz (Hz). Ainsi, un ordinateur à 200 MHz possède une horloge envoyant 200 000 000 de battements par seconde. La fréquence d'horloge est généralement un multiple de la fréquence du système (FSB, Front-Side Bus), c'est-à-dire un multiple de la fréquence de la carte mère
A chaque top d'horloge le processeur exécute une action, correspondant à une instruction ou une partie d'instruction. L'indicateur appelé CPI (Cycles Par Instruction) permet de représenter le nombre moyen de cycles d’horloge nécessaire à l’exécution d’une instruction sur un microprocesseur. La puissance du processeur peut ainsi être caractérisée par le nombre d'instructions qu'il est capable de traiter par seconde. L'unité utilisée est le MIPS (Millions d'Instructions Par Seconde) correspondant à la fréquence du processeur que divise le CPI.

Instruction
Une instruction est l'opération élémentaire que le processeur peut accomplir. Les instructions sont stockées dans la mémoire principale, en vue d'être traitée par le processeur. Une instruction est composée de deux champs :
le code opération, représentant l'action que le processeur doit accomplir ;
le code opérande, définissant les paramètres de l'action. Le code opérande dépend de l'opération. Il peut s'agir d'une donnée ou bien d'une adresse mémoire.
Code opération
Champ opérande
Le nombre d'octets d'une instruction est variable selon le type de donnée (l'ordre de grandeur est de 1 à 4 octets).
Les instructions peuvent être classées en catégories dont les principales sont :
Accès à la mémoire : des accès à la mémoire ou transferts de données entre registres.
Opérations arithmétiques : opérations telles que les additions, soustractions, divisions ou multiplication.
Opérations logiques : opérations ET, OU, NON, NON exclusif, etc.
Contrôle : contrôles de séquence, branchements conditionnels, etc.

Registres
Lorsque le processeur exécute des instructions, les données sont temporairement stockées dans de petites mémoires rapides de 8, 16, 32 ou 64 bits que l'on appelle registres. Suivant le type de processeur le nombre global de registres peut varier d'une dizaine à plusieurs centaines.
Les registres principaux sont :
le registre accumulateur (ACC), stockant les résultats des opérations arithmétiques et logiques ;
le registre d'état (PSW, Processor Status Word), permettant de stocker des indicateurs sur l'état du système (retenue, dépassement, etc.) ;
le registre instruction (RI), contenant l'instruction en cours de traitement ;
le compteur ordinal (CO ou PC pour Program Counter), contenant l'adresse de la prochaine instruction à traiter ;
le registre tampon, stockant temporairement une donnée provenant de la mémoire.

Mémoire cache
La mémoire cache (également appelée antémémoire ou mémoire tampon) est une mémoire rapide permettant de réduire les délais d'attente des informations stockées en mémoire vive. En effet, la mémoire centrale de l'ordinateur possède une vitesse bien moins importante que le processeur. Il existe néanmoins des mémoires beaucoup plus rapides, mais dont le coût est très élevé. La solution consiste donc à inclure ce type de mémoire rapide à proximité du processeur et d'y stocker temporairement les principales données devant être traitées par le processeur. Les ordinateurs récents possèdent plusieurs niveaux de mémoire cache :
La mémoire cache de premier niveau (appelée L1 Cache, pour Level 1 Cache) est directement intégrée dans le processeur. Elle se subdivise en 2 parties :
La première est le cache d'instructions, qui contient les instructions issues de la mémoire vive décodées lors de passage dans les pipelines.
La seconde est le cache de données, qui contient des données issues de la mémoire vive et les données récement utilisées lors des opérations du processeur. Les caches du premier niveau sont très rapides d'accés. Leur délai d'accès tend à s'approcher de celui des registres internes aux processeurs.
La mémoire cache de second niveau (appelée L2 Cache, pour Level 2 Cache) est située au niveau du boîtier contenant le processeur (dans la puce). Le cache de second niveau vient s'intercaler entre le processeur avec son cache interne et la mémoire vive. Il est plus rapide d'accès que cette dernière mais moins rapide que le cache de premier niveau.
La mémoire cache de troisième niveau (appelée L3 Cache, pour Level 3 Cache) est située au niveau de la carte mère. Tous ces niveaux de cache permettent de réduire les temps de latence des différentes mémoires lors du traitement et du transfert des informations. Pendant que le processeur travaille, le contrôleur de cache de premier niveau peut s'interfacer avec celui de second niveau pour faire des transferts d'informations sans bloquer le processeur. De même, le cache de second niveau est interfacé avec celui de la mémoire vive (cache de troisième niveau), pour permettre des transferts sans bloquer le fonctionnement normal du processeur.

Signaux de commande
Les signaux de commande sont des signaux électriques permettant d'orchestrer les différentes unités du processeur participant à l'exécution d'une instruction. Les signaux de commandes sont distribués grâce à un élément appelé séquenceur. Le signal Read / Write, en français lecture / écriture, permet par exemple de signaler à la mémoire que le processeur désire lire ou écrire une information.

Unités fonctionnelles
Le processeur est constitué d'un ensemble d'unités fonctionnelles reliées entre elles. L'architecture d'un microprocesseur est très variable d'une architecture à une autre, cependant les principaux éléments d'un microprocesseur sont les suivants :
Une unité d'instruction (ou unité de commande, en anglais control unit) qui lit les données arrivant, les décode puis les envoie à l'unité d'exécution ; L'unité d'instruction est notamment constituée des éléments suivants :
séquenceur (ou bloc logique de commande) chargé de synchroniser l'exécution des instructions au rythme d'une horloge. Il est ainsi chargé de l'envoi des signaux de commande ;
compteur ordinal contenant l'adresse de l'instruction en cours ;
registre d'instruction contenant l'instruction suivante.
Une unité d'exécution (ou unité de traitement), qui accomplit les tâches que lui a données l'unité d'instruction. L'unité d'exécution est notamment composée des éléments suivants :
L'unité arithmétique et logique (notée UAL ou en anglais ALU pour Arithmetical and Logical Unit). L'UAL assure les fonctions basiques de calcul arithmétique et les opérations logiques (ET, OU, Ou exclusif, etc.) ;
L'unité de virgule flottante (notée FPU, pour Floating Point Unit), qui accomplit les calculs complexes non entiers que ne peut réaliser l'unité arithmétique et logique.
Le registre d'état ;
Le registre accumulateur.
Une unité de gestion des bus (ou unité d'entrées-sorties), qui gère les flux d'informations entrant et sortant, en interface avec la mémoire vive du système ;
Le schéma ci-dessous donne une représentation simplifiée des éléments constituant le processeur (l'organisation physique des éléments ne correspond pas à la réalité) :

Transistor
Pour effectuer le traitement de l'information, le microprocesseur possède un ensemble d'instructions, appelé « jeu d'instructions », réalisées grâce à des circuits électroniques. Plus exactement, le jeu d'instructions est réalisé à l'aide de semiconducteurs, « petits interrupteurs » utilisant l'effet transistor, découvert en 1947 par John Barden, Walter H. Brattain et William Shockley qui reçurent le prix Nobel en 1956 pour cette découverte.
Un transistor (contraction de transfer resistor, en français résistance de transfert) est un composant électronique semi-conducteur, possédant trois électrodes, capable de modifier le courant qui le traverse à l'aide d'une de ses électrodes (appelée électrode de commande). On parle ainsi de «composant actif», par opposition aux « composants passifs », tels que la résistance ou le condensateur, ne possédant que deux électrodes (on parle de « bipolaire »).
Le transistor MOS (métal, oxyde, silicium) est le type de transistor majoritairement utilisé pour la conception de circuits intégrés. Le transistor MOS est composé de deux zones chargées négativement, appelées respectivement source (possédant un potentiel quasi-nul) et drain (possédant un potentiel de 5V), séparées par une région chargée positivement, appelée substrat (en anglais substrate). Le substrat est surmonté d'une électrode de commande, appelée porte (en anglais gate, parfois également appelée grille), permettant d'appliquer une tension sur le substrat.

Lorsqu'aucune tension n'est appliquée à l'électrode de commande, le substrat chargé positivement agit telle une barrière et empêche les électrons d'aller de la source vers le drain. En revanche, lorsqu'une tension est appliquée à la porte, les charges positives du substrat sont repoussées et il s'établit un canal de communication, chargé négativement, reliant la source au drain.

Le transistor agit donc globalement comme un interrupteur programmable grâce à l'électrode de commande. Lorsqu'une tension est appliquée à l'électrode de commande, il agit comme un interrupteur fermé, dans le cas contraire comme un interrupteur ouvert.

Circuits intégrés
Assemblés, les transistors peuvent constituer des circuits logiques, qui, assemblés à leur tour, constituent des processeurs. Le premier circuit intégré date de 1958 et a été mis au point par la société Texas Instruments.
Les transistors MOS sont ainsi réalisés dans des tranches de silicium (appelées wafer, traduisez gaufres), obtenues après des traitements successifs. Ces tranches de silicium sont alors découpées en éléments rectangulaires, constituant ce que l'on appelle un « circuit ». Les circuits sont ensuite placés dans des boîtiers comportant des connecteurs d'entrée-sortie, le tout constituant un « circuit intégré ». La finesse de la gravure, exprimée en microns (micromètres, notés µm), définit le nombre de transistors par unité de surface. Il peut ainsi exister jusqu'à plusieurs millions de transistors sur un seul processeur.
La loi de Moore, édictée en 1965 par Gordon E. Moore, cofondateur de la société Intel, prévoyait que les performances des processeurs (par extension le nombre de transistors intégrés sur silicium) doubleraient tous les 12 mois. Cette loi a été révisée en 1975, portant le nombre de mois à 18. La loi de Moore se vérifie encore aujourd'hui.
Dans la mesure où le boîtier rectangulaire possède des broches d'entrée-sortie ressemblant à des pattes, le terme de « puce électronique » est couramment employé pour désigner les circuits intégrés.

Familles
Chaque type de processeur possède son propre jeu d'instruction. On distingue ainsi les familles de processeurs suivants, possédant chacun un jeu d'instruction qui leur est propre :
80x86 : le « x » représente la famille. On parle ainsi de 386, 486, 586, 686, etc.
ARM
IA-64
MIPS
Motorola 6800
PowerPC
SPARC
...
Cela explique qu'un programme réalisé pour un type de processeur ne puisse fonctionner directement sur un système possédant un autre type de processeur, à moins d'une traduction des instructions, appelée émulation. Le terme « émulateur » est utilisé pour désigner le programme réalisant cette traduction.

Jeu d'instruction
On appelle jeu d’instructions l’ensemble des opérations élémentaires qu'un processeur peut accomplir. Le jeu d'instruction d'un processeur détermine ainsi son architecture, sachant qu'une même architecture peut aboutir à des implémentations différentes selon les constructeurs.
Le processeur travaille effectivement grâce à un nombre limité de fonctions, directement câblées sur les circuits électroniques. La plupart des opérations peuvent être réalisé à l'aide de fonctions basiques. Certaines architectures incluent néanmoins des fonctions évoluées courante dans le processeur.

Architecture CISC
L'architecture CISC (Complex Instruction Set Computer, soit « ordinateur à jeu d'instruction complexe ») consiste à câbler dans le processeur des instructions complexes, difficiles à créer à partir des instructions de base.
L'architecture CISC est utilisée en particulier par les processeurs de type 80x86. Ce type d'architecture possède un coût élevé dû aux fonctions évoluées imprimées sur le silicium.
D'autre part, les instructions sont de longueurs variables et peuvent parfois nécessiter plus d'un cycle d'horloge. Or, un processeur basé sur l'architecture CISC ne peut traîter qu'une instruction à la fois, d'où un temps d'exécution conséquent.

Architecture RISC
Un processeur utilisant la technologie RISC (Reduced Instruction Set Computer, soit « ordinateur à jeu d'instructions réduit ») n'a pas de fonctions évoluées câblées.
Les programmes doivent ainsi être traduits en instructions simples, ce qui entraîne un développement plus difficile et/ou un compilateur plus puissant. Une telle architecture possède un coût de fabrication réduit par rapport aux processeurs CISC. De plus, les instructions, simples par nature, sont exécutées en un seul cycle d'horloge, ce qui rend l'exécution des programmes plus rapide qu'avec des processeurs basés sur une architecture CISC. Enfin, de tels processeurs sont capables de traîter plusieurs instructions simultanément en les traitant en parallèle.

Améliorations technologiques
Au cours des années, les constructeurs de microprocesseurs (appelés fondeurs), ont mis au point un certain nombre d'améliorations permettant d'optimiser le fonctionnement du processeur.

Le parallélisme
Le parallélisme consiste à exécuter simultanément, sur des processeurs différents, des instructions relatives à un même programme. Cela se traduit par le découpage d'un programme en plusieurs processus traités en parallèle afin de gagner en temps d'exécution.
Ce type de technologie nécessite toutefois une synchronisation et une communication entre les différents processus, à la manière du découpage des tâches dans une entreprise : le travail est divisé en petits processus distincts, traités par des services différents. Le fonctionnement d'une telle entreprise peut être très perturbé lorsque la communication entre les services ne fonctionne pas correctement.

Le pipeline
Le pipeline (ou pipelining) est une technologie visant à permettre une plus grande vitesse d'exécution des instructions en parallélisant des étapes.
Pour comprendre le mécanisme du pipeline, il est nécessaire au préalable de comprendre les phases d'exécution d'une instruction. Les phases d'exécution d'une instruction pour un processeur contenant un pipeline « classique » à 5 étages sont les suivantes :
LI : (Lecture de l'Instruction (en anglais FETCH instruction) depuis le cache ;
DI : Décodage de l'Instruction (DECODe instruction) et recherche des opérandes (Registre ou valeurs immédiate);
EX : Exécution de l'Instruction (EXECute instruction) (si ADD, on fait la somme, si SUB, on fait la soustraction, etc.);
MEM : Accès mémoire (MEMory access), écriture dans la mémoire si nécéssaire ou chargement depuis la mémoire ;
ER : Ecriture (Write instruction) de la valeur calculée dans les registres.
Les instructions sont organisées en file d'attente dans la mémoire, et sont chargées les unes après les autres.
Grâce au pipeline, le traitement des instructions nécessite au maximum les cinq étapes précédentes. Dans la mesure où l'ordre de ces étapes est invariable (LI, DI, EX, MEM et ER), il est possible de créer dans le processeur un certain nombre de circuits spécialisés pour chacune de ces phases.
L'objectif du pipeline est d'être capable de réaliser chaque étape en parallèle avec les étapes amont et aval, c'est-à-dire de pouvoir lire une instruction (LI) lorsque la précédente est en cours de décodage (DI), que celle d'avant est en cours d'exécution (EX), que celle située encore précédemment accède à la mémoire (MEM) et enfin que la première de la série est déjè en cours d'écriture dans les registres (ER).

Il faut compter en général 1 à 2 cycles d'horloge (rarement plus) pour chaque phase du pipeline, soit 10 cycles d'horloge maximum par instruction. Pour deux instructions, 12 cycles d'horloge maximum seront nécessaires (10+2=12 au lieu de 10*2=20), car la précédente instruction était déjà dans le pipeline. Les deux instructions sont donc en traitement dans le processeur, avec un décalage d'un ou deux cycles d'horloge). Pour 3 instructions, 14 cycles d'horloge seront ainsi nécessaires, etc.
Le principe du pipeline est ainsi comparable avec une chaîne de production de voitures. La voiture passe d'un poste de travail à un autre en suivant la chaîne de montage et sort complètement assemblée à la sortie du bâtiment. Pour bien comprendre le principe, il est nécessaire de regarder la chaîne dans son ensemble, et non pas véhicule par véhicule. Il faut ainsi 3 heures pour faire une voiture, mais pourtant une voiture est produite toute les minutes !
Il faut noter toutefois qu'il existe différents types de pipelines, de 2 à 40 étages, mais le principe reste le même.

Technologie superscalaire
La technologie superscalaire (en anglais superscaling) consiste à disposer plusieurs unités de traitement en parallèle afin de pouvoir traiter plusieurs instructions par cycle.

HyperThreading
La technologie HyperThreading (ou Hyper-Threading, noté HT, traduisez HyperFlots ou HyperFlux) consiste à définir deux processeurs logiques au sein d'un processeur physique. Ainsi, le système reconnaît deux processeurs physiques et se comporte en système multitâche en envoyant deux thréads simultanés, on parle alors de SMT (Simultaneous Multi Threading). Cette « supercherie » permet d'utiliser au mieux les ressources du processeur en garantissant que des données lui sont envoyées en masse.

Ce document intitulé « Ordinateur - Le processeur » issu de l'encyclopédie informatique Comment Ça Marche (http://www.commentcamarche.net/) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.

8 commentaires:

Anonyme a dit…

I've on all occasions liked things like sand clocks, lava lamps, and the like to kind of rightful fritter away in days of yore staring at it as a configuration of catharsis. In a opportunity, it helps me with meditation, to relieve stress and strain and just deem in the air nothing. That's why since I was a kid, in place of of dolls and cars I've in any case collected more of such pieces like sand clocks, lava lamps, dulcet boxes etc. So I was most delighted when I base the[url=http://www.dealtoworld.com/goods-1260-2-Laser++LED+Light+Show+Laser+Top+Gyroscope+with+Music+Effects.html] 2-Laser + LED Light Appear Laser Ace Gyroscope with Music Effects[/url] from DealtoWorld.com under the Toys section. It's like a musical belt, a spinning top, and a radiance verify all rolled into one. Which is capacious relaxation! The gyroscope will outing after about a minute. The laser explanation display with accompanying music makes this gyroscope a measure corresponding exactly bauble that my friends get also been most amused with.

My dogs are also beautiful intrusive around the laser gyroscope I got from DealtoWorld.com. They always cleave to the gyroscope as it spins, although at earliest they kept barking at the laser slight boast, and also because it produces music. But after they got employed it, they've stopped barking but due watch over following the gyroscope whenever I start spinning it. Kids are also unbelievably amused nearby it. Occasionally it's good to take diverting toys about the house so that you can desert the diminutive on while the kids are being amused or playing with it while you open to get up viands or sock changed. The gyroscope is one such fool with with this purpose.

The gyroscope I bought from DealtoWorld.com has a dragon as a map on it, and produces a taper exposition with red, blue, and common colours. Pit oneself against a look at the pictures I've uploaded of the gyroscope with laser light show. The music produced from the gyroscope is not that renowned but decorous enough to consider any redone visitor to the house. The gyroscope is red and jet-black, making it look particular cold, and to some virile with that dragon imprint.

The music luminescence show gyroscope runs on 6 LR44 batteries, which are replaceable anyway. I've also euphemistic pre-owned this gyroscope to surprise my girlfriend during our anniversary celebration. I did the cheesy terror of decorating the hotel cell with roses and when I led her in, I started up the gyroscope as rise so that the laser brighten clarify produces a dreamed-up effect. I also had some battery operated candles so all the light effects created a slightly romanticist atmosphere. She loved it, past the custom, to my relief. I also bought the candles from DealtoWorld.com. These days it seems to be my non-performance shopping put in return all gifts and ideas for fancied occasions.

Since Christmas is coming, this laser radiance playing gyroscope can maybe be a momentous Christmas contribution in behalf of the toddler or neutral the mollycoddle! Alternatively, the gyroscope can altogether be a nice addition to the established Christmas decorations. I can presume placing it adjoining the Christmas tree and maybe spinning it when guests succeed in the house. Looks like [url=http://www.dealtoworld.com]DealtoWorld.com[/url] is getting my function anyway again!

Anonyme a dit…

Hello. Facebook takes a [url=http://www.onlinecraps.gd]roulette[/url] wager move in reverse on 888 casino apportion: Facebook is expanding its efforts to launch real-money gaming to millions of British users after announcing a wrestle with with the online gambling toss 888 Holdings.And Bye.

Anonyme a dit…

What's up mates, how is all, and what you want to say concerning this paragraph, in my view its really awesome in support of me.
Feel free to visit my web blog ... muse-wiki.massey.ac.nz

Anonyme a dit…

What's up, yup this article is actually good and I have learned lot of things from it on the topic of blogging. thanks.
Here is my homepage ; shopping reviews

Anonyme a dit…

It is appropriate time to make a few plans for the longer term and it's time to be happy. I have learn this put up and if I may I desire to counsel you some attention-grabbing issues or suggestions. Perhaps you could write subsequent articles referring to this article. I want to learn more issues approximately it!
Also see my website: stop smoking

Anonyme a dit…

Hey there this is kind of of off topic but I was wanting to know if blogs use
WYSIWYG editors or if you have to manually code with
HTML. I'm starting a blog soon but have no coding knowledge so I wanted to get advice from someone with experience. Any help would be enormously appreciated!

Here is my web site - play jackpot 6000

Anonyme a dit…

Hi there, just became alert to your blog through
Google, and found that it's truly informative. I am going to watch out for brussels. I will appreciate if you continue this in future. Lots of people will be benefited from your writing. Cheers!

my weblog - jackpot 6000 tips **

Anonyme a dit…

Incredible! This blog looks just like my old
one! It's on a entirely different topic but it has pretty much the same page layout and design. Great choice of colors!

Here is my weblog :: online casino