Académique Documents
Professionnel Documents
Culture Documents
• Partie d’un système informatique qui exécute les instructions traitant des données
• Effectue des opérations arithmétique (+,-, *, /) , logique (and, or , xor, nand, nor,
décalage) et de contrôle (lecture / écriture en mémoire, branchements )
Architecture d’un processeur
Cœur du processeur : ALU ou UAL
ALU : Arithmethic and Logic Unit
UAL : Unité Arithmétique et Logique
Caractéristiques de l’ALU
Fonctions de base : Exécute les opérations arithmétiques
et logiques.
Opérations arithmétiques : Addition, soustraction,
multiplication, division.
Opérations logiques : ET, OU, NON, XOR, décalages, etc..
Registres d'entrée : Reçoit les opérandes.
Registre de sortie : Stocke le résultat.
Indicateurs de statut : Mise à jour selon les résultats
(retenue, zéro, signe, overflow).
Rôle dans le processeur : Élément clé pour l'exécution des
instructions.
Architecture Von Neuman
RAM
Memory
Circuit FLASH, ROM
(données)
horloge (Instructions)
Décodeur
CPU Bus adresses
Bus Données
Registres
Bus contrôle
Contrôle
d'alimentation, Entrées/Sorties (I/Os)
modes d'opération, USB/UART TIMERS ADC DAC GPIO
watchdog et reset
Architecture Harvard
RAM
FLASH, ROM Memory
(Instructions) Circuit (données)
horloge
Décodeur
Décodeur
CPU
Registres
Contrôle
d'alimentation,
modes d'opération, Entrées/Sorties (I/Os)
watchdog et reset USB/UART TIMERS ADC DAC GPIO
Architecture Harvard:
Bus séparés : Les instructions et données
Lecture simultanément : instructions et données
Accélération : Traitement de signal, MAC (Multiply Accumulate)
Jeu d’instructions
ISA : Instruction Set Architecture
Caractéristiques du Jeu d'Instructions (ISA)
Instructions de base : Ensemble des opérations que le
processeur peut exécuter.
Types de données : Types de données que le processeur
peut gérer (nombres entiers, nombres flottant, etc…)
Modèle de mémoire : Spécifie l'interaction processeur-
mémoire.
Registres : Nombre et type de registres pour le stockage
temporaire.
Modes d'adressage : Méthodes d'accès à la mémoire.
Instructions de contrôle : Gestion du flux d'exécution
(sauts, boucles).
Codage des instructions : Format binaire des instructions.
Exceptions et interruptions : Gestion des erreurs et des
interruptions.
Classification des Instructions d'un ISA
1. Instructions Arithmétiques : addition, soustraction,
multiplication, division
2. Instructions Logiques : AND, OR, NOT, XOR, etc
3. Instructions de Chargement/Stockage : Transfert de
données entre la mémoire et les registres.
4. Instructions de Contrôle : Modifient le flux de contrôle
(sauts, boucles, appels de fonctions).
5. Instructions de Comparaison : Comparaisons de valeurs
pour déterminer l'égalité, la supériorité ou l'infériorité.
6. Instructions d'Entrée/Sortie : transfert de données entre
le processeur et les périphériques d'entrée/sortie.
7. Instructions Système : Gèrent des opérations de bas
niveau liées au système d'exploitation et au matériel.
Exemple ISA du MIPS
Types d'Instructions MIPS
Instructions de type R : Utilisées pour les opérations arithmétiques et
logiques.
Exemples :
add $s1, $s2, $s3 (Addition),
sub $s1, $s2, $s3 (Soustraction),
and $s1, $s2, $s3 (Opération logique ET)
Instructions de type I : Utilisées pour les opérations arithmétiques, le
chargement et le stockage de données, et les sauts conditionnels.
Exemples :
addi $s1, $s2, 10 (Addition immédiate),
lw $s1, 20($s2) (Chargement de mots),
beq $s1, $s2, label (Saut conditionnel)
Instructions de type J : Utilisées pour les sauts inconditionnels et les
appels de fonction.
Exemples :
j label (Saut inconditionnel),
jal label (Appel de fonction)
Note : Les '$s1', '$s2', '$s3' représentent les registres, et 'label' est une
adresse d'instruction ou une étiquette.
Les microprocesseurs standards
qPerformances
Temps par tâche = I x C x T
I : nombre d’instructions par tâche
C : nombre de cycles machine par instructions (ou CPI)
T : temps d’un cycle machine (dépend de la technologie et de
l’efficacité de l’ALU)
q 2 types d’architectures
CISC (Complex Instruction Set Computer) : I faible, C grand
RISC (Reduce Instruction Set Computer) : I élevé, C faible
RISC vs CISC
RISC
Ensemble d’instructions réduit, simple et uniforme
Temps d’exécution de chaque instruction uniforme (CPI = 1)
Load /store sont les seules instructions qui permettent d’accéder à la mémoire.
Exemples de processeur RISC : ARM, MIPS, RISC-V
CISC
Grand nombre d’instructions qui peuvent être complexes
Les instructions peuvent nécessiter plus d’un cycle machine (CPI > 1)
Les instructions peuvent faire une opération arithmétique et en même temps
accéder à la mémoire.
Exemple de processeur CISC : Intel x86
section .text
global _start
_start:
movzx eax, byte [M1] ; Charger la valeur de M1 dans eax
imul eax, byte [M2] ; Multiplier la valeur dans eax par la valeur de M2
imul eax, byte [M3] ; Multiplier la valeur dans eax par la valeur de M3
mov [Result], eax ; Stocker le résultat de la multiplication dans Result
; Terminer le programme
Exemple RISC, processeur RISC-V
.data
M1: .word 5 ; Première valeur
M2: .word 7 ; Deuxième valeur
M3: .word 9 ; Troisième valeur
Result: .word 0 ; Variable pour stocker le résultat
.text
.globl _start
_start:
la a0, M1 ; Charger l'adresse de M1 dans a0
lw a1, 0(a0) ; Charger la valeur à l'adresse de M1 dans a1
la a0, M2 ; Charger l'adresse de M2 dans a0
lw a2, 0(a0) ; Charger la valeur à l'adresse de M2 dans a2
mul a1, a1, a2 ; Multiplier les valeurs dans a1 et a2, stocker dans a1
la a0, M3 ; Charger l'adresse de M3 dans a0
lw a2, 0(a0) ; Charger la valeur à l'adresse de M3 dans a2
mul a1, a1, a2 ; Multiplier les valeurs dans a1 et a2, stocker dans a1
la a0, Result ; Charger l'adresse de Result dans a0
sw a1, 0(a0) ; Stocker le résultat de la multiplication à l'adresse de Result
CISC RISC
Compiler
Compiler
Chip (Hardware)
Chip (Hardware)
Around 1990 (last century)
CISC RISC
Solaris
UNIX
AIX
UX
Windows
Others
SUN
IBM
HP
x86 (Intel)
Today
CISC RISC