Processeur

Mais que fait donc mon ordinateur?

En tant qu'êtres humains, nous sommes confrontés dès la venue au monde à une multitude d'événements extérieurs qui stimulent des réactions de notre part. L'expérience acquise au cours du développement permet de décider quelle sera la réaction.

Un ordinateur réagit, lui aussi, à des stimuli extérieurs, et doit entreprendre des actions en fonction de ce que nous lui avons inculqué.

Prenons un exemple :
Comment l'ordinateur affiche-t-il à l'écran ce que j'introduis en poussant sur les touches de mon clavier?

  1. La frappe du clavier génère un code clavier (Scan code).
  2. Le système scrute régulièrement le clavier, et saisit le code de la touche frappée.
  3. Ce code clavier, propre à chaque type de clavier (84, 101 touches, etc.), est converti en code système.
  4. Une demande d'interruption (IRQ1) signalant qu'une entrée clavier est prête est lancée au microprocesseur qui termine son travail en cours.
  5. Via le microprocesseur, le code système est sauvegardé en mémoire ou il occupe une certaine place.
  6. A ce moment, le microprocesseur pourrait passer à une tàche plus urgente.
  7. Le microprocesseur relit en mémoire la donnée stockée.
  8. Enfin, le microprocesseur affiche le caractère à l'écran en transcodant le code système en code ASCII via la carte graphique.

Les opérations 7 et 8 seront répétées à une fréquence minimum de 56 fois par seconde (56 Hz) pour que l'image soit stable (fréquence de rafraîchissement de l'écran).

Il devient donc évident que toute opération doit être décomposée en micro opérations, chaque opération nécessitant plusieurs moments (cycles d'horloge) du microprocesseur.

 

Le microprocesseur

A un niveau très bas, les stimuli et les réactions se font sous forme de signaux électriques (comme pour notre système nerveux), le principe général de ces signaux de communication étant très simple: le courant passe, ou ne passe pas. En pratique, 2 tensions différentes seront souvent utilisées, avec un seuil de tolérance pour chaque tension, et une zone neutre entre les deux pour éviter les confusions.

Ce principe se complique par le suite, mais cette dualité donnera lieu à ce que l'on appelle le langage binaire, qui est composé de un et de zéro.
Le langage binaire est donc idéal pour transformer une impulsion électrique en langage de communication, mais ralentit les calculs à cause du nombre très élevé d'opérations à effectuer. C'est pourquoi un microprocesseur les réunit dans des jeux d'instructions, qui composent le langage machine.

Chaque microprocesseur possède donc son propre langage, en fonction des opérations les plus fréquemment demandées.
Un apport dans les jeux d'instructions très remarqué fut l'apparition des instructions multimédia dans les années nonante.
T'as vu mon nouveau MMX ? ;-)

Mais revenons au microprocesseur, aussi appelé cpu (Central Process Unit), qui est un composant électronique sur un seul circuit de haute intégration.
Bien que complexe, il est en fait composé principalement d'un seul élément: le transistor. Bien entendu, un microprocesseur intègre des millions de ces transistors, combinés de manière à réaliser les opérations élémentaires telles que l'arithmétique binaire, les décisions logiques, les mouvements de données entre mémoires, organes d'entrées/sorties et le processeur.

Le microprocesseur travaille sur des données binaires. Le nombre maximum de bits de données pouvant être traité définit la taille du microprocesseur.
Nous parlons donc de microprocesseur à 16, 32, et 64 bits.

 

Architecture du microprocesseur

TYPELargeur du bus d'adresse (bit)Champ d'adressage mémoireLargeur du bus de données (bit)Largeur du registre (bit)Coprocesseur mathématiqueMémoire cacheFréquence interne (MHz)
8086201 MB8168087N4
802862416 MB161680287N12
80386sx2416 MB163280387N25
80386dx324 GB323280387N40
80486sx324 GB3232804878 KB50
80486dx324 GB3232interne8 KB100
PENTIUM324 GB6432interne16 KB200
MMX324 GB6432interne32 KB270

Ce tableau (quelques dinosaures de la préhistoire informatique me diront les plus jeunes d'entre-vous) nous montre certains des éléments qui conditionnent fortement les performances du traitement des données par le processeur.
Si vous désirez des informations détaillées relatives aux processeurs actuels, vous pouvez consulter les pages des comparaisons de processeurs.

Le microprocesseur est en fait composé de quatre unités distinctes:

  • L'unité de bus comprenant:
    • La commande des bus.
    • Le transmetteur de données à l'unité d'instructions.
  • L'unité d'instructions comprenant:
    • Le décodeur d'instructions.
    • La file d'attente d'instructions.
  • L'unité d'exécution (ou de traitement) comprenant:
    • L'unité arithmétique et logique (UAL).
    • Les registres (mémoires internes à l'unité centrale).
  • L'unité d'adresses comprenant:
    • L'additionneur pour convertir les adresses logiques en adresses physiques (segmentation).

Vous pouvez consulter les pages relatives à la micro machine et aux micro instructions pour mieux comprendre les principes de fonctionnement.

L'unité de bus

Cette unité gère trois types de bus et anticipe sur les chargements de données.

  • Le bus de données permet les échanges de données entre le microprocesseur et la mémoire ou les périphériques.
  • Le bus d'adresses transmet les adresses.
  • Le bus de contrôle véhicule les signaux contrôlant les états: lecture mémoire, occupé, prêt, interruption, horloge, etc.

L'unité de traitement

Voir la page relative à la machine Von Neuman.

 

Notes complémentaires

Mode rafale :
mode qui, par incrémentation automatique des adresses, lit ou écrit une suite de mémoires. Permet donc d'obtenir un transfert à la vitesse optimale d'un mot (de données) par cycle.

CISC :
Angl : Complex Instruction Set Computers.
Configuration d’un microprocesseur d’un ordinateur (surtout les type 80x86) qui utilise un jeu d’instructions complexe (difficiles à créer avec des instructions de base), directement câblées dans le processeur. Le coût d’une telle architecture est élevé, à cause justement du nombre élevé de circuits nécessaires.
C’est le choix adopté pour les PC actuels.

Opposé à RISC.

RISC :
Angl : Reduced Instruction Set Computer.
microprocesseur à jeu d'instruction réduit, plus rapide au niveau des instructions que les CISC car leur câblage est plus simple et parce qu'ils ont des vitesse d'horloge plus importante. En outre, les instructions sont simples, exécutées en un seul cycle d'horloge, et l’architecture RISC permet de traiter plusieurs instructions simultanément (en parallèle). Cependant, le coût en temps du traitement logiciel des instructions est nettement plus élevé car il est alors nécessaire de traduire tout en instructions simples.
Leur taille moindre et leur faible nombre de transistors entraînent une température de fonctionnement moins élevée.
Désigne aussi par extension, tout système utilisant cette technologie, même si ce n'est pas un ordinateur.

Opposé à CISC.

Superscalaire :
Angl : superscaling.
Architecture des processeurs capables d'exécuter plusieurs instructions simultanément, chacune dans un pipeline différent.
Généralement utilisé pour des éléments disposant de plusieurs unités de traitement. Ils sont donc capables d'exécuter plusieurs instructions en un cycle d'horloge.

Pipeline :
Terme utilisé dans l'architecture des ordinateurs.
Désigne un procédé qui accélère le traitement des instructions par une exécution en parallèle.
Les instructions sont exécutées selon certaines phases (principe du fetch-decode-execute), et sans pipeline les instructions placées dans une file d’attente peuvent attendre un nombre de cycles d’horloge élevé. Avec pipeline, le traitement des instructions est moindre car un circuit spécialisé existe pour chacune de ces phases.

 

Multitàche

Multitàche coopératif :
Système qui laisse aux applications le soin de libérer le microprocesseur. Les applications tournent en mode protégé.

Multitàche préemptif :
Utilisé par les applications DOS sous Windows en mode virtuel (plusieurs machines réelles). Il utilise un temps imparti pour chaque session mais permet à l’utilisateur de reprendre le contrôle à chaque instant.

 

Les interruptions

Interruptions: Utilitaires spécifiques et prioritaires qui arrêtent l'application en cours pour s'exécuter suite à un appel.
On distingue les interruptions logicielles qui sont appelées suite à un programme, et les interruptions matérielles qui sont provoquées par les composants électroniques.

Les interruptions matérielles

IRQ 00 | Horloge système |
IRQ 01 | Clavier |
IRQ 02 | [cascade pour un deuxième contrôleur IRQ] |
BrolPseudoTable-const-1 | Adaptateur bus souris 8 bits |
BrolPseudoTable-const-1 | Port MIDI |
BrolPseudoTable-const-1 | COM 3/4 |
BrolPseudoTable-const-1 | Anciennes cartes VGA |
IRQ 03 | COM2 |
BrolPseudoTable-const-1 | Configuration standard pour de nombreuses cartes réseau |
BrolPseudoTable-const-1 | Port MIDI |
IRQ 04 | COM1 |
IRQ 05 | LPT2 |
BrolPseudoTable-const-1 | IRQ de rechange pour carte Soundblaster |
BrolPseudoTable-const-1 | COM 3/4 |
IRQ 06 | Disquette |
IRQ 07 | LPT1 |
BrolPseudoTable-const-1 | Soundblaster et compatible |
BrolPseudoTable-const-1 | Adaptateur Token Ring |
BrolPseudoTable-const-1 | COM 3/4 |
IRQ 08 | Horloge temps réel |
IRQ 09 | Asservissement PIC1 |
IRQ 10 | Soundblaster 16 |
BrolPseudoTable-const-1 | Lecteur de cd-rom sur bus AT |
IRQ 11 |   |
IRQ 12 | PS2 souris |
IRQ 13 | Coprocesseur arithmétique |
IRQ 14 | Contrôleur primaire de disque dur |
IRQ 15 | Contrôleur secondaire de disque dur |

 

Les interruptions logicielles

Le tableau des interruptions logicielles comprend donc une partie des interruptions matérielles.

00h | Division par zéro |
01h | Pas à pas |
02h | Non masquable |
03h | Point d'arrêt |
04h | Débordement |
05h | Impression écran |
06h | op-code invalide |
07h | |
08h | IRQ 00 |
09h | IRQ 01 |
0Ah | IRQ 02 |
0Bh | IRQ 03 |
0Ch | IRQ 04 |
0Dh | IRQ 05 |
0Eh | IRQ 06 |
0Fh | IRQ 07 |
10h | Vidéo |
70h | IRQ 08 |
71h | IRQ 09 |
72h | IRQ 10 |
73h | IRQ 11 |
74h | IRQ 12 |
75h | IRQ 13 |
76h | IRQ 14 |
77h | IRQ 15 |

 

Document créé le 19/03/2002, dernière modification le 26/10/2018
Source du document imprimé : https://www.gaudry.be/processeur.html

L'infobrol est un site personnel dont le contenu n'engage que moi. Le texte est mis à disposition sous licence CreativeCommons(BY-NC-SA). Plus d'info sur les conditions d'utilisation et sur l'auteur.

Notes

  1.  operation code : correspond à « code opération » en français

  2.  op-code : “operation code” (en français, « code opération »)