Académique Documents
Professionnel Documents
Culture Documents
d’un microprocesseur
Cours 02
Plan de la séance
Vue d’ensemble d’un processeur
Assembleur et langage machine
Arithmétique des ordinateurs
Mémoire
Métriques de performance
Unité de
contrôle
Unité
Arithmétique et
Entrées Logique (UAL) Sorties
Unité de
Mémoire
31 0
R31 IR
31 0
Mémoire
A B
UAL 31 0
MD
C
Unité de 31
C
0
contrôle
Unité
Arithmétique et
Entrées Logique (UAL) Sorties
Unité de
Mémoire
31 0
R31 IR
31 0
A
31 0
MA
Mémoire
A B
UAL 31 0
MD
C
31 0
C
31 0
Registres
R31 IR
spécialisés
31 0
A
31 0
MA
Mémoire
A B
UAL 31 0
MD
C
31 0
C
31 0
R31 IR
31 0
A
31 0
MA
Mémoire
A B
UAL 31 0
MD
C
31 0
C
31 0
R31 IR
31 0
A
31 0
MA
Mémoire
A B
UAL 31 0
MD
C
31 0
C
forment un tableau: 31
IR
0
R31
R[0] à R[31] dans cet
exemple 31 0
A
31 0
MA
Mémoire
A B
UAL 31 0
MD
C
31 0
C
31 0
Registre d’adresse de la mémoire
R31 IR
Mémoire
A B
31 0
Mémoire
et les données du
UAL
C
MD
programme.
Données
31 0 Addr MAX • On le regardera comme un
C
tableau:
Registre de donnée M[0] à M[ADR MAX]
de la mémoire
Mise à jour: 2022/01/19 INF1600: Architecture des micro-ordinateurs 11
Vue d’ensemble d’un processeur
Il existe différent types d’instructions:
• Instructions arithmétiques (+, −, ×, ∕, √)
• Instructions logique (AND, OR, XOR, NOT)
• Instructions de décalage
• Instructions de déplacement de données
• Instruction de branchement
GPR
• R[2] R[0] + R[1] 32
31 0
R31 IR
31 0
A
31 0
MA
Memory
A B
ALU 31 0
MD
C
31 0
C
GPR
• R[2] R[0] + R[1] 32
31 0
R31 IR
Avant Après
R[0] 10 10 31 0
A
10 12 31 0
R[1] 12 12 MA
Memory
A B
ALU 31 0
R[2] 13 22 MD
C
31 22 0
C
GPR
• R[2] M[1] 32
31 0
R31 IR
31 0
A
31 0
MA
Memory
A B
ALU 31 0
MD
C
31 0
C
GPR
• R[2] M[1] 32
31 0
R31 IR
Avant Après Avant Après
12 13 31 0
R[1] 12 12 M[1] 122 122 MA
Memory
A B
ALU 31 0
R[2] 13 122 M[2] 123 123 MD
C
31 25 0
C
GPR
• PC #ADDR 03 INST #2 32
04 INST #3
31 0
ELSE R31 IR
Important pour réaliser: 05 INST #4
• Des structures conditionnelles 06 INST #5
31 0
07 INST #6
• Des boucles END IF
A
31 0
• Des fonctions 08 INST #7 MA
Memory
A B
01 IF CONDITION 01 IF CONDITION
02 INST #1 05 INST #4 ALU 31 0
03 INST #2 06 INST #5 MD
04 INST #3 07 INST #6 C
08 INST #7 08 INST #7
31 0
C
Condition Condition
remplie pas remplie
a = b + c;
a = b + c;
a = b + c;
ASM:
mov r0 [1] # copie M[1] vers R[0]
mov r1 [2] # copie M[2] vers R[1]
add r0 r1 # additionne R[0] et R[1] et mets le résultats dans R[0]
mov [0] r0 # copie R[0] vers M[0]
GPR 32
31 0
R31 IR
Memory
A B
ALU 31 0
MD
C
mov r0 [1] # déplace M[1] vers R[0]
mov r1 [2] # déplace M[2] vers R[1] 31 0
add r0 r1 # additionne R[0] et R[1] et mets le résultats dans R[0] C
mov [0] r0 # déplace R[0] vers M[0]
GPR 32
31 0
R31 IR
Memory
A B
ALU 31 0
MD
C
mov r0 [1] # déplace M[1] vers R[0]
mov r1 [2] # déplace M[2] vers R[1] 31 0
add r0 r1 # additionne R[0] et R[1] et mets le résultats dans R[0] C
mov [0] r0 # déplace R[0] vers M[0]
GPR 32
31 0
R31 IR
Memory
A B
ALU 31 0
MD
C
mov r0 [1] # déplace M[1] vers R[0]
mov r1 [2] # déplace M[2] vers R[1] 31 0
add r0 r1 # additionne R[0] et R[1] et mets le résultats dans R[0] C
mov [0] r0 # déplace R[0] vers M[0]
GPR 32
31 0
R31 IR
Memory
A B
ALU 31 0
MD
C
mov r0 [1] # déplace M[1] vers R[0]
mov r1 [2] # déplace M[2] vers R[1] 31 0
add r0 r1 # additionne R[0] et R[1] et mets le résultats dans R[0] C
mov [0] r0 # déplace R[0] vers M[0]
GPR 32
31 0
R31 IR
Memory
A B
ALU 31 0
MD
C
mov r0 [1] # déplace M[1] vers R[0]
mov r1 [2] # déplace M[2] vers R[1] 31 0
add r0 r1 # additionne R[0] et R[1] et mets le résultats dans R[0] C
mov [0] r0 # déplace R[0] vers M[0]
GPR 32
Memory
A B
ALU 31 0
MD
C
mov r0 [1] # déplace M[1] vers R[0]
mov r1 [2] # déplace M[2] vers R[1] 31 0
add r0 r1 # additionne R[0] et R[1] et mets le résultats dans R[0] C
mov [0] r0 # déplace R[0] vers M[0]
opcode r0 r1 r2
opcode ra rb rc ?
0x0007 << 13
0x0007 << 4
0x1000 >> 4
0x8000 >> 4