Systèmes électroniques
Fermer ×

Le processeur

Fonctionnement

Organigramme général

Le processeur exécute des codes binaires en permanence tant qu'aucun évènement physique vient perturber ce fonctionnement

Au démarrage, il exécute l'instruction à une adresse précise dans la mémoire de programme qui est, généralement, 0. Cette première instruction est une instruction de branchement ou saut à la première adresse du programme qui se fait en chargeant l'adresse dans le compteur de programme (CP).

Cela permet au processeur de se déplacer dans la mémoire de programme pour charger et décoder la première instruction.

Cette instruction est décodée, et en fonction du résultat du décodage, soit d'autres données sont chargées depuis la mémoire pour effectuer le traitement complet ou bien le processeur incrémente la valeur du compteur de programme pour aller chercher la nouvelle instruction en mémoire.

Le processeur exécute ce cycle en permanence.

Déroulement d'une instruction

Microprocesseur
Séquenceur

Microprocesseur

On va analyser le principe de traitement d'une instruction du processeur étape par étape.

Séquenceur

Le compteur de ce séquenceur est différent du compteur de programme.

Microprocesseur

Chargement du compteur de programme dans le registre d'adresse.

Séquenceur

Le compteur est à 0, la sortie 0 du décodeur active le chargement dans le registre

Microprocesseur

L'adresse apparaît en sortie du registre d'adresse, elle est disponible sur le bus d'adresse pour tous les circuits.

Simultanément le compteur d'adresse est augmenté pour passer à l'adresse suivante.

Séquenceur

Le compteur passe à 1, la sortie 1 du décodeur active le transfert sur le bus d'adresse.

Microprocesseur

La mémoire de programme positionne l'instruction sur le bus de données. L'instruction est chargée dans le registre d'instruction

Séquenceur

Le compteur passe à 2, la sortie 2 du décodeur active le chargement de l'instruction.

Microprocesseur

L'instruction est valide en sortie du registre d'instruction et disponible pour le décodeur d'instruction.

Séquenceur

Le compteur passe à 3, la sortie 3 du décodeur active le transfert de l'instruction au décodeur d'instruction.

Microprocesseur

Le cycle est terminé, on passe à l'instruction suivante.

Séquenceur

Le compteur repasse à 0, la sortie 0 du décodeur active le chargement dans le registre

On a 4 cycles d'horloge pour une instruction, ce n'est pas toujours le cas, ceci est un exemple. Ce qui fait que l'on ne mesure pas la rapidité d'un processeur avec la fréquence de l'horloge en MHz, mais avec le nombre d'instructions par seconde en MIPS (Million Instructions Per Seconde).

Unité de calculs

Traitements effectués

Elle composée de l'UAL et de registres de données pour stocker les opérandes ainsi que les calculs

Dans un processeur les calculs effectués sont :

Les décalages et rotations

Les décalages et rotations permettent d'effectuer des calculs en utilisant les puissances de 2.

Décalages et rotations à droite

Décalage logique

Il permet de réaliser une division par 2 pour des entiers non signés.

Décalage arithmétique

Il permet de réaliser une division par 2 pour des entiers signés en conservant le bit de signe (bit de poids fort).

Rotation

Décalages et rotations à gauche

Décalage logique

Il permet de réaliser une division par 2 pour des entiers non signés.

Décalage arithmétique

Il permet de réaliser une division par 2 pour des entiers signés. Ce décalage est identique au décalage logique. Sur certains processeurs, ce décalage et le précédent ne font qu'un.

Rotation

Les décalages et rotations dans l'atmega8

On trouve les fonctionnalités suivantes :

La multiplication

La multiplication peut être réalisée par programme, mais dans certains processeurs, elle est implémentée en matériel (portes logiques)

La multiplication non signée

On applique la multiplication binaire de deux nombres A et B non signés exprimés sur n bits en utilisant la formule : A = i = 0 n - 1 a i 2 i et B = j = 0 n - 1 b j 2 j

Le produit P donne :
P = A B = ( i = 0 n - 1 a i 2 i ) ( j = 0 n - 1 b j 2 j ) = i = 0 n - 1 j = 0 n - 1 a i b j 2 i + j

Exemple avec n = 4

a3a2a1a0
b3b2b1b0
a3b0a2b0a1b0a0b0
a3b1a2b1a1b1a0b1
a3b2a2b2a1b2a0b2
a3b3a2b3a1b3a0b3
p7p6p5p4p3p2p1p0

La multiplication signée

On applique la multiplication binaire de deux nombres A et B signés exprimés sur n bits en utilisant la formule : A = - a n - 1 2 n - 1 + i = 0 n - 2 a i 2 i et B = - b n - 1 2 n - 1 + j = 0 n - 2 b j 2 j

Le produit P donne :

P = A B = ( - a n - 1 2 n - 1 + i = 0 n - 2 a a 2 i ) ( - b n - 1 2 n - 1 + j = 0 n - 2 b j 2 j ) = a n - 1 b n - 1 2 2 n - 2 + i = 0 n - 2 j = 0 n - 2 a i b j 2 i + j - a n - 1 j = 0 n - 2 b j 2 n + j - 1 - b n - 1 i = 0 n - 2 a i 2 n + i - 1

Exemple avec n = 4

-a3a2a1a0
-b3b2b1b0
-a3b0a2b0a1b0a0b0
-a3b1a2b1a1b1a0b1
-a3b2a2b2a1b2a0b2
a3b3-a2b3-a1b3-a0b3
p7p6p5p4p3p2p1p0

Exemple avec n = 4 en utilisant l'extension de signe

a3a2a1a0
b3b2b1b0
+a3b0a3b0a3b0a3b0a3b0a2b0a1b0a0b0
+a3b1a3b1a3b1a3b1a2b1a1b1a0b1
+a3b2a3b2a3b2a2b2a1b2a0b2
-a3b3a3b3a2b3a1b3a0b3
p7p6p5p4p3p2p1p0

La multiplication dans l'atmega8

Elle est implémentée en matériel et permet de multiplier des entiers et réels signés et non signés

On peut en savoir plus sur la multiplication avec cette note d'application.

Architectures

Organisation interne

Architecture Von Neumann (1946)

RA : registre d’adresses, RI : registre d’instruction, CP : compteur de programme.

Les mémoires de données et d'instruction se partagent le même bus.

Architecture Harvard (1940)

Les bus des mémoires de données et d'instructions sont physiquement séparées.

Comparaison des deux organisations

L'architecture Harvard utilise moins de cycle d'horloges pour traiter une donnée.

Exemple de traitement :

  • A : stockage d'une donnée dans un registre
  • B : Calcul du produit de la 2ème donnée avec le contenu du registre
  • C : Accumulation avec le résultat précédent
  • D : passage au calcul suivant

Dans une architecture Harvard le fait que les bus de programmes et bus de données soient séparés permettent aux processeur de charger l'instruction suivante pendant qu'il traite la donnée de l'instruction courante.

CycleVon NeumannHarvard
1Recherche instruction ARecherche instruction A
2Exécution AExécution A, Recherche B
3Recherche BExécution B, Recherche C
4Exécution BExécution C, Recherche D
5Recherche CExécution D
6Exécution C
7Recherche D
8Exécution D

Architecture des instructions

CISC (Complex Instruction Set Computer)
Le jeu d'instructions est important car chaque instruction peut accéder aux données en mémoire. Ce qui complexifie le codage des instructions.

Le décodage des instructions dépend du mode d'accès à la mémoire, ce qui fait que chaque instruction nécessite un plus grand nombre de cycles d’horloge.

RISC (Reduced Instruction Set Computer)
Le jeu d'instructions est en nombre réduit. Ce la concerne les méthodes d'accès aux données en mémoire. Dans ce type d'architecture, il existe deux instructions qui permettent d'accéder à la mémoire. Les autres instructions utilisent uniquement les registres internes. Dans ce type d'architecture, il y a généralement beaucoup de registres internes.

Ce jeu réduit facilite le codage des instructions et améliore la rapidité du processeur. Toutes les instructions utilisent le même nombre de cycles d'horloge.

L'architecture de l'atmega8