Le Soir Multim�dia : HARDWARE
Le microprocesseur


Le microprocesseur, �l�ment le plus important de tout l'ordinateur, tire son nom de sa fonction. Il est l'une des seules entit�s de la machine (en tout cas la plus importante), capable d'ex�cuter des instructions. C'est lui qui lit vos programmes, et les ex�cute, en travaillant avec la m�moire...

Structure g�n�rale d'un processeur
Le c�ur d'un processeur est l'Unit� arithm�tique et logique (UAL) qui permet d'effectuer des op�rations arithm�tiques, logiques, ou d'op�rations sur la m�moire (par exemple l'addition, le ou binaire, ou la lecture du contenu de la m�moire). Pour un processeur � 2n bits (par exemple 32 pour les processeurs Pentium jusqu'a Pentium 4), chaque instruction est cod�e sur 2n bits; ce nombre de bits est aussi parfois appel� Largeur de bus : en effet, les instructions arrivent aux processeurs par 2n fils de s�lection (chaque fil pouvant coder soit 0 ou 1). Une partie du travail du processeur est de transf�rer les donn�es d'entr�es et de sortie, ainsi que de stocker les instructions � ex�cuter. Tous ces transferts depuis la m�moire vive sont assur�s par des BUS et des multiplexeurs (aiguilleurs, aussi not�s �mux�). Le r�le du processeur est d'ex�cuter les instructions qu'il a r�cup�r�es en m�moire (et qui sont stock�es temporairement dans la m�moire cache, m�moire � la vitesse du processeur, incluse dans celui-ci). Pour cela, l'instruction est r�cup�r�e suivant les informations contenues dans les registres d'instruction, puis l'instruction ainsi obtenue est d�compos�e en une s�quence, gr�ce � un d�codeur de s�quence. Ensuite le processeur r�cup�re, le cas �ch�ant, les donn�es contenues en m�moire vive au travers du contr�leur d'adresses. La m�moire vive �tant externe au processeur, et la r�cup�ration de donn�es �tant bien plus lente que lui, le processeur dispose de deux types de m�moires : D'une part, il a la m�moire cache, qui contient la liste des prochaines instructions � ex�cuter, ainsi que les donn�es auparavant en m�moire vive n�cessaires � l'ex�cution des ces instructions. La m�moire cache ayant des vitesses d'acc�s proches de la vitesse du processeur, la copie des prochaines instructions � ex�cuter am�liore grandement les performances. L'ordre de grandeur de la taille de cette m�moire est de 8ko pour la m�moire cache L1, cadenc�e � la vitesse du processeur, et 256ko, voir 512ko de cache L2, souvent cadenc�e � la moiti� de la vitesse du processeur. Il y a aussi un autre type de m�moire : les registres. Les registres sont une sorte de tiroirs pouvant contenir une puissance de 2 de bits, avec un maximum de 2n bits (soit 32 bits, c'est-�-dire 4 octets pour un processeur dit 32 bits). Ces registres sont accessibles directement lors de l'ex�cution des instructions, et ils gardent des informations sur l'instruction � venir... Ils sont de plusieurs types. Il y a tout d'abord les registres de donn�es (EAX, EBX, ECX, et EDX). Au nombre de quatre, ils contiennent chacun 4 octets. Ils servent � contenir (par exemple) le r�sultat d'une instruction, afin que celui-ci puisse �tre r�utilis� dans l'instruction suivante (exemple : une instruction tr�s courante est : add EAX, 0x87. Cette instruction ajoute le nombre hexad�cimal 0x87 au registre EAX. Toutes les instructions ex�cut�es par le processeur sont d'une simplicit� �quivalente...). Ensuite il y a les registres pointeurs. Lors de l'utilisation d'instruction de lecture/�criture en m�moire, les programmes commencent par mettre dans ces pointeurs l'adresse m�moire � laquelle on travaille. Il y a DS et ESI, ES et EDI, ainsi que les registres suppl�mentaires FS et GS. Puis il y a deux registres tr�s importants: les registres CS et EIP. Ces deux registres combin�s pointent sur l'adresse m�moire de la prochaine instruction � devoir �tre ex�cut�e. Enfin il y a les registres de r�sultats : les flags. Chaque flag (drapeau) contient 1 bit, et une information : ils indiquent les retenues, les erreurs... Enfin il y a BS, BP et SP qui servent � travailler sur la pile (une pile est une zone m�moire, o� l'on ne peut que poser un mot sur la pile (PUSH), ou bien r�cup�rer le dernier mot de la pile (POP). Vous aurez s�rement aussi remarqu� que certains registres commencent par un E. En r�alit�, les registres tels que ECX, ESI, et EIP sont des registres de 32 bits, alors que DS, et CS sont sur 16 bits. Cela tient aux anciens processeurs 16 bits : autrefois seuls CX, SI et IP existaient, et lorsque les 32 bits sont apparus, pour des raisons de compatibilit�, un E a �t� rajout� pour les diff�rencier (E= extended). Voici un sch�ma r�capitulatif du fonctionnement d'un processeur : Et voici une liste de ce que l'on peut principalement trouver dans un processeur :
- une UAL pour effectuer des op�rations arithm�tiques et logiques ;
- un registre d'instruction associ� � un d�codeur permettant de d�composer et d'organiser l'ex�cution de l'instruction.
- un certain nombre de registres internes, pour stocker temporairement des donn�es ou les bits de conditions ;
- un syst�me de gestion d'adresses, permettant la localisation des informations, qu'elles soient donn�es ou instructions ;
- un ensemble de Bus, permettant de v�hiculer soit des donn�es, Bus de donn�es, soit des adresses, Bus d'adresse, soit des informations permettant de contr�ler ces transferts, Bus de contr�le. Et tout cela est cadenc� par une horloge, dont la fr�quence est connue sous le nom de fr�quence du processeur. Voici quelques am�liorations apparues sur les processeurs les plus r�cents, et qui compliquent singuli�rement le principe de fonctionnement. Ces techniques sont destin�es ou bien � am�liorer les performances des processeurs (pipelining, superscaling, hyperthreading, et ex�cution dynamique), ou bien de permettre de r�pondre � des usages nouveaux (cryptographie, processeurs Mobile).
Le pipelining
Le processeur re�oit une instruction, qu'il traite en un certain nombre de cycles (fonction de la complexit� de l'op�ration, ainsi que des optimisations des instructions; l'instruction add registre, registre prends par exemple 1 cycle d�horloge � �tre calcul�). Cette instruction peut �tre d�velopp�e en plusieurs �tapes (d�codage, r�cup�ration ou non de donn�es, si oui � partir des registres ou de la m�moire...). Et toutes ces �tapes correspondent � des parties bien distinctes, qui sont ex�cut�es les unes apr�s les autres, �tape par �tape. Un peu comme une usine de voiture avec ses diff�rents postes. Normalement, il faut attendre que chaque instruction ait subi un traitement complet avant d'envoyer la suivante. Avec la technologie du pipelining, il est possible d'envoyer une premi�re instruction, de r�aliser l��tape 1, puis de passer � l��tape 2, en chargeant en m�me temps une nouvelle instruction dans l'�tape 1. C'est un mode de taylorisation. De cette mani�re, il est possible d'avoir une instruction termin�e quasiment � chaque cycle d'horloge. N�anmoins, certaines instructions longues, ou ayant besoin de r�sultats d'instructions pr�c�dentes peuvent retarder le pipeline. C'est pourquoi, dans une certaine limite, plus un pipeline comporte d'�tapes, plus il est efficace. Ainsi, les op�rations trait�es � chaque �tape sont �l�mentaires et donc susceptibles de ne consommer qu'un seul cycle. Ainsi Intel est pass� d'un pipeline � 5 niveaux pour les Pentium � 12 niveaux pour les processeurs Pentium PRO, Pentium II, Celeron, Pentium III, Pentium IV et Xeon.
La technologie superscalaire, l'hyperthreading
On peut placer plusieurs unit�s de calcul (les fameuses UAL) en parall�le pour acc�l�rer le traitement des donn�es. C'est-�-dire que l'on va ouvrir plusieurs usines dans l'exemple du Pipeline. Si on appelle n le nombre d'UAL, le processeur est dit superscalaire de rang n. Ainsi le Pentium permet d'utiliser deux pipelines simultan�ment, et fournit donc deux instructions par cycle. Dans les processeurs Pentium PRO, Pentium II, Celeron, Pentium III, Pentium IV et Xeon, Intel a plac� trois unit�s de calcul. Une autre technique assez proche est l'hyperthreading. Cela consiste � placer plusieurs c�urs (chaque c�ur contenant ses registres-set...). H�las ces deux m�thodes ont un �norme inconv�nient ; en effet, vu le petit nombre de registres de donn�es (4 sur un i386 jusqu'au Pentium IV), les programmes utilisent ces registres pour absolument tout. Ce qui signifie qu�un registre utilis� dans une instruction peut contenir le r�sultat d'une instruction pr�c�dente, ou bien �tre utilis� sans tenir compte des instructions pr�c�dentes. Et les processeurs ne savent pas bien d�terminer les d�pendances entre instructions successives : deux instructions qui se suivent peuvent �tre aussi bien li�es que s�par�es. Dans le premier cas, il est indispensable que la premi�re instruction soit totalement ex�cut�e avant que la seconde ne puisse l'�tre. Dans le deuxi�me cas, il est possible de partager les deux instructions entre deux pipelines. C'est pourquoi la technologie actuelle des processeurs AMD et Intel 32 bits n'est pas adapt�e � ce genre de technique, au contraire d'autres types de processeurs (Alpha, Sparc...).

L'ex�cution dynamique
-
L'ex�cution dynamique est utilis�e par tous les processeurs � architecture i686 (Pentium PRO, Pentium II, Celeron, Pentium III, Pentium IV et Xeon). Il s'agit d'une technologie d�velopp�e par Intel. Elle se compose de deux parties : l'ex�cution sp�culative et l'ordonnancement des micro-instructions.
- L'ex�cution sp�culative (ou �core out-oforder�) : l'id�e est d'utiliser le processeur lorsque il est inoccup�. Certaines instructions sont tr�s souvent suivies de la m�me instruction. Le processeur profite de son inactivit� sur un pipeline (par exemple) pour pr�calculer cette instruction qui a de si grandes chances d'arriver ensuite. Si effectivement l'instruction suivante est celle pr�calcul�e, alors le gain de temps est consid�rable, sinon, le processeur a juste fait un calcul pour rien.
- L'ordonnancement des micro-instructions : il s'agit de d�couper les instructions en petits morceaux, appel�s micro-ops ou microcodes. Une fois d�compos�es, le processeur r�arrange l'ordre de ces micro-ops pour optimiser un maximum le pipeline. On gagne donc du temps.

Les Pentium III et IV, et la cryptographie
Un des plus gros probl�me dans la cryptographie, c'est qu'il faut g�n�rer souvent et en grandes quantit�s des nombres les plus al�atoires possible. Or, dans un processeur o� tout est si logique, cr�er des nombres vraiment al�atoires est impossible. Intel a implant� dans ses Pentium III et IV une technologie bas�e sur le bruit thermique : un circuit �lectronique aussi complexe qu'un processeur, avec des fr�quences tr�s grandes, g�n�re un bruit thermique chaotique, et donc al�atoire. Un des composants du processeur num�rise alors ce bruit thermique et g�n�re ainsi des nombres plus al�atoires que tous ce que faisaient les autres processeurs auparavant.

Les processeurs Mobile
Un des plus gros d�faut des processeurs est qu'ils chauffent beaucoup (et donc doivent �tre refroidis), et qu'il consomme (avec le ventilateur) beaucoup de courant. Trop pour un ordinateur portable. Intel a sorti un nouveau type de processeur : les processeurs Mobile. Ce sont des processeurs normaux (majoritairement des Pentium IV), qui sortent plusieurs mois apr�s la sortie des normaux, mais qui chauffent tr�s peu (ils ont peu besoin d'�tre refroidis), et qui consomment peu. Leur vitesse est �galement modulable : par exemple, un Pentium IV Mobile � 1.7 GHz pourra tourner � 1.7 ou 1.2 Ghz suivant la demande. Ainsi, en cas d'alimentation par batteries, il est possible de r�duire encore plus la consommation du processeur, et si l'utilisateur demande beaucoup au processeur, alors celui repasse � 1.7 Ghz pour satisfaire les besoins.

Nombre de lectures :

Format imprimable  Format imprimable

  Options

Format imprimable  Format imprimable