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]
Adaptateur bus souris 8 bits
Port MIDI
COM 3/4
Anciennes cartes VGA
IRQ 03 COM2
Configuration standard pour de nombreuses cartes réseau
Port MIDI
IRQ 04 COM1
IRQ 05 LPT2
IRQ de rechange pour carte Soundblaster
COM 3/4
IRQ 06 Disquette
IRQ 07 LPT1
Soundblaster et compatible
Adaptateur Token Ring
COM 3/4
IRQ 08 Horloge temps réel
IRQ 09 Asservissement PIC1
IRQ 10 Soundblaster 16
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/02 12:16, dernière modification le 15/11/16 15:06
Source du document imprimé : //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 »)