Devoir de Philosophie

TPE SUR LES PROCESSEURS INFORMATIQUES

Publié le 04/09/2012

Extrait du document

Un registre est une case mémoire, à utilisation temporaire, intégrée dans le circuit du processeur. Il a pour fonction de stocker des variables utiles au fonctionnement du processeur et à l'exécution rapide du programm e. Les registres peuvent être à usage général (stockage d'un résultat) ou bien à usage spécifique. Ainsi il existe un nombre de registres spécialisés nécessaires au fonctionnement du processeur : registres de flags, adresse du segment de code, adresse du segment de données ...

« nombre formé par 8 bits est un odet (byte en anglais).

Les anciens processeurs traitaient les nombres par tranches de 4 bits.

Aujourd'hui, les processeurs les plus récents traitent des ensembles de 64 bits à la fois.

ARCHITECTURE SIMPLIFIÉE ET FONCTIONS ÉLÉMENTAIRES Le processeur est un circuit logique synchrone.

Un circuit logique est un circuit électroniq u e dont les composantes peuvent prendre l'un des 2 états, désignés par o ou 1, suivant la tension à leurs bornes.

Il est dit synchrone quand tous les composants attendent le prochain signal d'horloge pour passer à l'état suivant.

L:horloge est intégrée dans le processeur et fonctionne à une fréquence fixe pendant toute la durée de vie du processeur.

Elle oscille entre les 2 états, 0 et 1, de façon périodique et continue.

Bus Un bus, en informatique, est un ensemble de liaisons physiques (câb les, pistes de circuits imprimés , etc.) pouvant être exploitées en commun par plusieurs éléments matériels afin de communiquer entre eux.

L'unité arithmétique et logique (UAL) C'est l'organe de base du processeur.

Il est chargé des calcu l s et des opérations qu'on peut répartir comme suit : • Les opérations arithmétiques simp les telles que addi tion, soust raction et changement de signe.

• Les opérations logiques telles que NON (inversion des bits), ET (intersection) et OU (union) .

• Les comparaisons telles que les tests d'éga lité, de supériorité ou d 'infériorité .

• Éventuellement des décalages ou des rotations .

Les opérations plus complexes sont traitées au nive au logiciel par les compi lateur s.

Ainsi une multiplication est une suit e de plusieurs additions.

Toutefoi s, dans les nouveaux processeurs , les UAL peuvent effectuer des opérations plus complexes, comme des racines , des logarithme s, ou l'inverse d 'un nombre .

Typiquement , sous la forme la plus simp le, I'UAL possède une entrée par laqu elle elle reçoit l'ordre à exécuter, une ou plusieurs entrées où arrivent les variables à traiter, et une sortie où est récupéré le résultat.

Registres Un registre est une case mémoire , à utilisation temporaire, intégrée dans le circuit du processeur .

Il a pour fonction de stocker des variables utiles au fonctionnement du processeur et à l ' exécution rapide du programme .

Les registres peuvent être à usage général (stockage d'un résultat) ou bien à usage spécifique.

Ainsi il existe un nombre de registres spécia lisés néce ssaires au fonctionn ement du processeur : registres de flags , adresse du segment de code, adresse du segment de données ...

Mémoire cache Le proc esseur d'un ordinateur utilise la mémoire vive (RAM) pour les calcu ls, et les traitements .

Toutefois, dans certain s cas, il a besoin de stocker des variables de petite taille et d'y accéder répétitivement et rapidement.

La mémoire cache est une mémoire relativement petite, très rapide d'accès, de plus grande capacité que les registres, intégrée directement sur le processeur.

Elle sert à accélérer les traitements .

Adressage -Compteur ordinal ou pointeur d'instruction Le processeur doit accéder d'une part au code du programme à exécuter et d'autre part aux variab les à traiter.

Tout étant chargé en mémoire , il existe un système d'adressage permettant au processeur de bien récupérer toutes les données.

la mémoire est ainsi divisée en plusieurs parties appelées segments.

Le code est chargé dans un segment et les données dans un autre segment.

Chaque variable a une adresse spécifique dans la mémoire , qui reste la même pendant la durée de sa vie, et une valeu r qui change suivant les traitements effectués.

Si un calcul donné a besoin de cette variable, l'adresse de cette variable, qui se trouve dans l e code du programme , est chargée sur le bus d'adres ses.

À partir de cette indication , la valeur de cette variable se met sur le bus de données .

Un bit supplémentaire, dit flag, indique si l 'accès à la variable se fait en lecture ou en écriture.

Pour stocker un résu ltat d'un calcul donné en mémoire, dans une varia ble définie d'ava nce dans le code, le résultat doit être chargé sur l e bus de données , l'adres se de la variabl e sur le bus d'adresses et le flag doit indiquer l'écriture .

L:accès au code du programme , au cours de son exécution, se fait toujours en lecture.

Il est à remarquer que la progression dans le code n'est pas forcément linéaire :dans le cas d 'une condition à vérifier , il y a exécution d'un des deux blocs d'instructions , donc éventue llement un saut dans le code.

Il en est de même dans le cas d 'une « boucle» : répétition d'un bloc de code jusqu 'à satisfaction d'une certaine conditio n.

Jeu d'instruction -Registre d'instruction -Décodage de l'instruction Le processeur est conçu de façon à reconnaître, décoder et exécuter un ensemble déterminé d'in struction s.

Cet ensemble est dit jeu d 'instruction s.

Chaque ligne de code est traduite en langage machine par le compilateur.

Le processeur trouve l'instruction à exécu ter dans une case mémoire spécifiq ue dite registre d'in struction .

Ainsi à chaque instruction , correspond un code, dit code opérande, ou encore opcode, consista nt en un ou plusieur s octets de données .

Pour certains microcontrôleurs , tous les opcodes sont de longueur fixe, tandi s que pour les microprocesseur s utilisés dans les ordinateurs, les opcodes sont de longueur variable.

limer Tout processeur contient un module --------------'-------------_, limer, autre que l'horloge à quartz qui Le circu it élementaire de l'information interface registres ' t t registre d'instruction décodage • UAL définit sa vitesse.

Le limer est une horloge moins rapide , qui résulte de la division de la fréquence de l'horloge interne.

Il est utile pour les applications où le traitement n'a pas à être rapide , mais où l'utilisateur doit observer l'évolution du traitement.

Pour les ordinateurs, le limer a toujours la même fréquence: 18,2 périodes par seconde.

Ainsi , les applications du type animations graphiques utilisent généralement le limer pour simuler le mouvement : à chaque front montant du limer , une nouvelle image est envoyée à l'écran , simulant ainsi le mouvement à raison de 18,2 images par seconde.

Périphériques Le processeur est relié à l'exté rieur par des périphériques (comme l'écran, la souris ou le clavier ).

Dan s tout processeur , il existe des ports et des protocoles de communication permettant les liaison s.

La communication peut être en série (les bits arrivent à la suite les uns des autres) ou en parallèle ( les bits arrivent simultanément par paquets).

EXÉCUTION D'UNE INSTRUCTION Cette présentation simp lifiée de l'architecture et des fond ions élémentaires d 'un proces seur permet de comprendre son fonctionnement.

L'exéc ution d'une instruction se compose d'un cycle appelé généra lement « Fetch , Decode , Execute >>.

Chaque étape met en jeu des registre s et des bus spéci fiqu es.

Fetch C'est la lectu re de l'instruction.

L:adresse de la prochaine instruction à exécuter, présente dans le pointeur d 'instruction , est chargée sur le bus d'adres ses.

L:instrudion est alors récupérée sur le bus de données et chargée dans le registre d 'instruction .

Decode Le processeur décode l'opcode présent dans le registre d'instruction .

Les adresses des éventuels opérandes sont spécif iées dans l'opcode.

Les opérandes sont alors acheminés vers I'UAL.

Execute Ayant l'instruction et éventue llement les opérandes, le processus effectue l'instruction .

Writeback Il écrit ensuite le résultat en mémoire en mettant son adresse sur le bus d'adre sses, le résultat sur le bus de donnée s, le flag indiquant l'écriture.

INTERRUPTIONS Que ce soit par la pression d 'une touche, le mouvement d'une souris , la variation d'un capteur ou la fermetur e d'un interrupteur, le travail« normal >> du processeur est interrompu pour répondre à la sollicitation extérieure .

Les interruptions se manifestent par le passage de flags spécia lisés à l.

Ils indiquent le genre d'interruption et le processeur interrompt a lors son travail.

Pratiquement , cela revient à finir l'instruction en cours , sauvegarder l e pointeur d 'instruction, les adresses du segment de code et du segment de données ainsi que le registre de flags , sur une « pile » de données , exécuter la routine requise par l'interruption survenue, puis restituer le pointeur d'instruction et reprendre ses tâches .

Si deux ou plusieurs instructions survienne nt en même temps , un circuit logique est tenu de départager les priorité s.

IJJi!HlM ·@tJ Considérons un proces seur exécutant pour chaque instruction le cycle ci­ dessus (Fetch , Decode, Execute) en entier avant de passer à l'instruction suivante.

Les ressources sont en attente la plupart du temps .

Pour augmenter la performance, on a pensé à exécuter des instructions simultaném ent afin de bien profiter de toute s les resso urces du proce sseur.

LE PARA LLÉLISME D'INSTRUCTIONS L e premier exemp le de parallélisme apparu consiste à faire fonctionner les cycles Fetch , Decode , Execute en parallèle pour plusieurs instructions .

Ains i quand l'instruction 1 a passé le stade Fetch et arrive au stade Decode , l ' instruction 2 est au stade Fetch .

À l 'étape suivante, l'instruction 1 est au stade Execute, l'inst ruction 2 au stade Decode et l 'instruction 3 au stade Fetch, et ainsi de suite.

On a ainsi idéalement divisé l e temps d 'exécution d'un programme par 3, et les ressources du processeur fonctionnent à plein régime .

Ce type de fonctionnement est connu comme le fonctionnement en pipe line.

Le pipelining d'instructions n'est cependant pas toujours possible, à cause des dépendances : si une instruction a besoin d'un résultat de l'instruction précédente , il faut attendre que le cycle précédent se termine pour pouvoir accéder au résultat dans la mémoire .

LE PARALLÉLISME DE TÀCHES Il se fait par a rchitecture matérielle ou par méthode logicielle.

La première méthode consiste en la répartition des tâches sur plusieurs processeurs ou plusieurs cœurs de processeurs .

La deuxième méthode, logicielle , est une technique de programmation .

En addition de suppléments liés à l 'architecture (dup lication de portions du processeu r), il s'agit de l'exécution simultanée de plusieurs programmes , ou de plusieurs instructions du même programme.

Les processeurs atteignent des performances de plus en plus ambitieuses et fonctionnent à des vitesses toujours croissantes.

Une toute nouvelle voie de recherche s'ouvre avec une idée innovante : sans horloge , on gagne du temps.

D 'après le CNRS : « M ême dans le microprocesseur le plus rapide du monde , la plupart des composants passent le plus clair de leur temps à attendre qu'un signal d'horloge les invite à poursuivre le traitement des données>>.

Le laboratoire de Grenoble travaille depuis quelques années à mettre en place des processeurs asynchro nes, sans horloge .

L:avantage réside dans le fait que chaque bloc exécu t e la tâche assignée et n'attend qu'une réponse de ses voisins, et non pas un coup d'horloge.

Ce qui implique un gain considérable en temps , puisque la plupart des tâches dure beaucoup moins qu'une période d 'horloge .

En revanche , les puces asynchrones toutes nouvelles sont encore délicates et doivent être sujettes à des règles de programmation spécifiq ues.. »

↓↓↓ APERÇU DU DOCUMENT ↓↓↓

Liens utiles