Académique Documents
Professionnel Documents
Culture Documents
n Référence
q Cours de Onur Mutlu, Carnegie Mellon University, PA, USA
q http://www.ece.cmu.edu/~ece447/s15/doku.php?id=schedule
n Travaux pratiques
q MARS (Mips Assembler and Runtime Simulator)
http://courses.missouristate.edu/KenVollmar/mars
q Installation au préalable de JRE (Java Runtime Environment)
n Travaux pratiques
q Dépôt dans Moodle
q Remise par groupe de 4 élèves choisis aléatoirement
II Concepts fondamentaux 22
IV Principes de ISA 46
V Microarchitecture 72
Contenu
Définition de l’architecture des ordinateurs
Niveaux d’abstraction
Problème de ralentissement
Matériel et logiciel
Mosquée Hassan II
Érigée en partie sur la mer, c'est un complexe religieux et culturel,
aménagé sur neuf hectares et comporte une salle de prières, une salle
d'ablutions, des bains, une école coranique (madrasa), une bibliothèque et
un musée.
(http://www.mosquee-hassan2.com/)
Problème
Algorithme
Pile de calcul
Programme
(computing stack)
Runtime System
(VM, OS, MM)
Objet de
ISA (Architecture) ce cours
Microarchitecture
Logic
Circuits
Electronique
L2 CACHE 1
L2 CACHE 0
SHARED L3 CACHE
DRAM INTERFACE
CORE 0 CORE 1
DRAM BANKS
DRAM MEMORY
CONTROLLER
L2 CACHE 2
L2 CACHE 3
CORE 2 CORE 3
(Core 0) (Core 1)
Moscibroda and Mutlu, “Memory performance attacks: Denial of memory service
in multi-core systems,” USENIX Security 2007.
Architecture des ordinateurs, nov. 2023 16
Pourquoi la différence des ralentissements ?
CORE
matlab1 gcc 2
CORE Multi-Core
Chip
L2 L2
CACHE CACHE
unfairness
INTERCONNECT
Shared DRAM
DRAM MEMORY CONTROLLER Memory System
Row decoder
(Row 1, Column 0)
Rows
Row address 0
1
Row 01
Row
Empty Row Buffer CONFLICT
HIT !
Column address 0
1
85 Column mux
Data
Contenu
Point de vue de l’utilisateur
Loi de Moore
Architecture des ordinateurs
Niveaux de transformation
n Point de vue de l'utilisateur : ordinateur conçu pour les
utilisateurs
Problème
Algorithme
Programme/Langage User
Runtime System
(VM, OS, MM)
ISA
Microarchitecture
Plusieurs nouvelles
Logic
Demandes issues du bas
Circuits
Electronique
n Programme enregistré
q Instructions du programme sont enregistrées dans la mémoire
(représentée par un tableau)
q Mémoire contient des instructions et des données. L'interprétation de la
valeur stockée dépend d'un signal de contrôle
RAM RDM
Unité de traitement
Unité (CPU) Unité
d'entrée de sortie
ALU Temp
out
Programme
PUSH 98
PUSH 12
PUSH 45
ADD
MUL
POP C
n Avantage et inconvénients ?
Architecture des ordinateurs, nov. 2023 52
Exercice
Considérons l’expression arithmétique suivante :
x = (5 + 4 * 3) / (5 + 2 * 3 – 1)
+ +
5 * 5 -
4 3 * 1
2 3
x = (5 + 4 * 3) / (5 + 2 * 3 – 1)
Représentation Postfix (GDR) : 5 4 3 * + 5 2 3 * 1 - + /
Architecture des ordinateurs, nov. 2023 54
programme d’une machine à pile
PUSH 5 # charger 5 dans la première position
PUSH 4 # charger 4 dans la deuxième position
PUSH 3 # charger 3 dans la troisième position
MUL # charger dans la deuxième position le produit 4*3=12
ADD # charger dans la première position la somme 5+12=17
PUSH 5 # charger 5 dans la deuxième position
PUSH 2 # charger 2 dans la troisième position
PUSH 3 # charger 3 dans la quatrième position
MUL # charger dans la troisième position le produit 2*3=6
PUSH 1 # charger 1 dans la quatrième position
SUB # charger dans la troisième position la soustraction 6-1=5
ADD # charger dans la deuxième position la somme 5+5=10
DIV # charger dans la première position la division 17/10=1,7
POP x # sauvegarder 1,7 dans l’dresse x
M[0]
M[1]
M[2]
M[3] Registres
M[4] -Localisés dans l’UCT
-Portent des noms dans une ISA
(par opposition aux adresses)
- général vs. dédié (spécial)
M[N-1]
Mémoire : Tableau de stockage PC
indexé par une adresse Adresse mémoire de
l’instruction courante
n Exemples :
q Etat de la microarchitecture
q Etat de la mémoire cache
q Registres du pipeline
q Registre de la pile
n Inconvénient:
q plus de tâches pour le compilateur
q Plus de tâches pour le microarchitecte
n Comparaison ?
q Quelle est la méthode la plus générale ?
Program/Language
Fossé sémantique
ISA (Architecture)
M[0]
M[1]
M[2]
M[3] Registres
M[4] -Localisés dans l’UCT
-Portent des noms dans une ISA
(par opposition aux adresses)
- général vs. dédié (spécial)
M[N-1]
Mémoire : Tableau de stockage PC
indexé par une adresse Adresse mémoire de
l’instruction courante
Traitement de l’instruction
EA’ EA
Logique Logique
combinatoire Séquentielle
n Machine Multi-cycle
q Traitement d’une instruction est divisée en des cycles/étages multiples
q Mises à jour peuvent se faire pendant le traitement de l’instruction
q EA est mis à jour seulement à la fin du traitement de l’instruction
q Avantage : le plus lent étage détermine la période du cycle d’horloge
Châssis M R P Voitures
Quel est le temps d’assemblage sans et avec pipeline sachant que le temps de
montage d'une voiture est 3h et que le temps d'un poste est 1h ?
Poste
V1 V2 V3 V4 V5
P
V1 V2 V3 V4 V5
R
V1 V2 V3 V4 V5
M
1 2 3 4 5 6 7 8 heure
Architecture des ordinateurs, nov. 2023 78
Pipeline de l’exécution d’un programme
q CI : Chercher l’instruction de la mémoire
q DI : Décoder l’instruction
q EA : Evaluer les adresses
q CO : Chercher les opérandes
q EI : Exécuter l’instruction
q ER : Enregistrer le résultat
Programme Résultats
CI DI EA CO EI ER
(instructions) (données)
Inconvénients :
• conflit d'accès à la mémoire (CI et CO et mémoire à une entrée par exemple)
• instructions de branchement ou d'interruption (BR ou INT)
Cas avantageux :
• exécution de la même instruction sur plusieurs données (traitement vectoriel)
n t(i) = C(i) * P
AS’ AS
Sequential
Combinational
Logic
Logic
(State)
RegWrite
Instruction
address
Address Read
PC data 16
Sign
Instruction Add Sum
extend
Write Data
Instruction
data memory
memory
MemRead
a. Instruction memory b. Program counter c. Adder
WB
IF Data
Register #
PC Address Instruction Registers ALU Address
Register #
Instruction
memory ID/RF Data
Register # EX/AG memory
Data
MEM
Architecture des ordinateurs, nov. 2023
**Based on original figure from [P&H CO&D, COPYRIGHT 2004 Elsevier. ALL RIGHTS RESERVED.]
86
What Is To Come: The Full MIPS Datapath
PCSrc1=Jump
Instruction [25– 0] Shift Jump address [31– 0]
left 2
26 28 0 1
Instruction [5– 0]
**Based on original figure from [P&H CO&D, COPYRIGHT 2004 Elsevier. Architecture des ordinateurs, nov. 2023 87
ALL RIGHTS RESERVED.] JAL, JR, JALR omitted
Single-Cycle Datapath for
Arithmetic and Logical Instructions
R-Type ALU Instructions
n Assembly (e.g., register-register signed addition)
ADD rdreg rsreg rtreg
n Machine encoding
0 rs rt rd 0 ADD R-type
6-bit 5-bit 5-bit 5-bit 5-bit 6-bit
n Semantics
if MEM[PC] == ADD rd rs rt
GPR[rd] ← GPR[rs] + GPR[rt]
PC ← PC + 4
Add
4
ALU operation
25:21 Read 3
Read register 1
PC address Read
20:16 Read data 1
register 2 Zero
Instruction
Instruction Registers ALU ALU
15:11 Write result
Instruction register
Read
memory data 2
Write
data
RegWrite
1
IF ID EX MEM WB
if MEM[PC] == ADD rd rs rt
GPR[rd] ← GPR[rs] + GPR[rt]
Combinational
PC ← PC + 4
**Based on original figure from [P&H CO&D, COPYRIGHT 2004 Elsevier. ALL RIGHTS RESERVED.]
state update logic
Architecture des ordinateurs, nov. 2023
**Based on original figure from [P&H CO&D, COPYRIGHT 2004 Elsevier. ALL RIGHTS RESERVED.] 90
I-Type ALU Instructions
n Assembly (e.g., register-immediate signed additions)
ADDI rtreg rsreg immediate16
n Machine encoding
n Semantics
if MEM[PC] == ADDI rt rs immediate
GPR[rt] ← GPR[rs] + sign-extend (immediate)
PC ← PC + 4
Add
4
3 ALU operation
Read
Read 25:21
PC register 1 Mem
address Read
data 1
Read
20:16 Zero
Instruction register 2
Instruction Registers ALU ALU
15:11
Write result Address
Instruction register
Read
memory data 2
Write Dat
RegDest data
mem
isItype RegWrite
ALUSrc
Write
data
116 32
Sign isItype Mem
extend
IF ID EX MEM WB
if MEM[PC] == ADDI rt rs immediate
GPR[rt] ← GPR[rs] + sign-extend (immediate) Combinational
PC ← PC + 4 Architecture des ordinateurs, nov. 2023 state update logic 92
**Based on original figure from [P&H CO&D, COPYRIGHT 2004 Elsevier. ALL RIGHTS RESERVED.]
Single-Cycle Datapath for
Data Movement Instructions
Load Instructions
n Assembly (e.g., load 4-byte word)
LW rtreg offset16 (basereg)
n Machine encoding
LW base rt offset I-type
6-bit 5-bit 5-bit 16-bit
n Semantics
if MEM[PC]==LW rt offset16 (base)
EA = sign-extend(offset) + GPR[base]
GPR[rt] ← MEM[ translate(EA) ]
PC ← PC + 4
Add
0
4 add
ALU operation MemWrite
Read 3
Read register 1 MemWrite
PC address Read
data 1
Read
Instruction register 2 Zero Address Read
Instruction Registers ALU ALU data 16
Write Read
result Address
Instruction register data
Read Data
memory data 2 Write
Write data Data memory
data
memory
RegDest RegWrite Write
isItype 1 16
ALUSrc data
MemRead
Sign
32
isItype MemRead
extend
1
a. Data memory unit b. S
n Machine encoding
n Semantics
if MEM[PC]==SW rt offset16 (base)
EA = sign-extend(offset) + GPR[base]
MEM[ translate(EA) ] ← GPR[rt]
PC ← PC + 4
Add
1
4 add
ALU operation MemWrite
Read 3
Read register 1 MemWrite
PC address Read
data 1
Read
Instruction register 2 Zero Address Read
Instruction Registers ALU ALU data 16
Write Read
result Address
Instruction register data
Read Data
memory data 2 Write
Write data Data memory
data
memory
RegDest RegWrite Write
isItype 016 ALUSrc
data
MemRead
Sign
32
isItype MemRead
extend
0
a. Data memory unit b. S
Add
4
addALU operation
Read 3 isStore
Read register 1 MemWrite
PC address Read
data 1
Read
Instruction register 2 Zero
Instruction Registers ALU ALU
Write Read
result Address
Instruction register data
Read
memory data 2
Write Data
data
memory
RegDest RegWrite Write
data
isItype !isStore
16 32
ALUSrc
Sign isItype MemRead
extend
isLoad
**Based on original figure from [P&H CO&D, COPYRIGHT Architecture des ordinateurs, nov. 2023 98
2004 Elsevier. ALL RIGHTS RESERVED.]
Datapath for Non-Control-Flow Insts.
Add
MemtoReg
isLoad
Architecture des ordinateurs, nov. 2023 99
**Based on original figure from [P&H CO&D, COPYRIGHT 2004 Elsevier. ALL RIGHTS RESERVED.]
Single-Cycle Datapath for
Control Flow Instructions
Unconditional Jump Instructions
n Assembly
J immediate26
n Machine encoding
J immediate J-type
6-bit 26-bit
n Semantics
if MEM[PC]==J immediate26
target = { PC[31:28], immediate26, 2’b00 }
PC ← target
isJ Add
PCSrc
4
X ALU operation
Read 3 0
Read register 1 MemWrite
PC address Read
data 1
Read
Instruction register 2 Zero
Instruction Registers ALU ALU
Write Read
result Address
Instruction register data
Read
memory data 2
concat Write Data
data
?
memory
RegWrite Write
data
ALUSrc
0 16 32
Sign X MemRead
extend
if MEM[PC]==J immediate26
PC = { PC[31:28], immediate26, 2’b00 }
Architecture des ordinateurs, nov. 2023
What about JR, JAL, JALR?
102
Conditional Branch Instructions
n Assembly (e.g., branch if equal)
BEQ rsreg rtreg immediate16
n Machine encoding
watch out
PC + 4 from instruction datapath
Add
PCSrc Add Sum Branch target
4
Shift
left 2
Read
PC address subALU operation
Read 3
Instruction register 1
Read
Instruction data 1
Read
Instruction register 2 To branch
memory Registers ALU bcond
Zero
concat Write control logic
register
Read
data 2
Write
data
RegWrite
16 0 Sign
32
extend
**Based on original figure from [P&H CO&D, COPYRIGHT 2004 Elsevier. ALL RIGHTS RESERVED.]
Instruction [5– 0]
**Based on original figure from [P&H CO&D, COPYRIGHT 2004 Elsevier. Architecture des ordinateurs, nov. 2023 105
ALL RIGHTS RESERVED.] JAL, JR, JALR omitted
Single-Cycle Control Logic
Single-Cycle Hardwired Control
n As combinational function of Inst=MEM[PC]
31 26 21 16 11 6 0
n Consider
q All R-type and I-type ALU instructions
q LW and SW
PCSrc1=Jump
Instruction [25– 0] Shift Jump address [31– 0]
left 2
26 28 0 1
1
RegWrite
0
Instruction [25– 21] Read
Read register 1
PC address Read
Instruction [20– 16] data 1
Read
register 2 bcond
Zero
Instruction 0 Registers Read ALU ALU
[31– 0] 0 Read
M Write data 2 result Address 1
Instruction u register M data
u M
memory Instruction [15– 11] x u
1 Write x Data
data x
1 memory 0
Write
data
16 32
Instruction [15– 0]
0
Sign
ALU operation
funct
extend ALU
control
Instruction [5– 0]
**Based on original figure from [P&H CO&D, COPYRIGHT Architecture des ordinateurs, nov. 2023 111
2004 Elsevier. ALL RIGHTS RESERVED.]
I-Type ALU
PCSrc1=Jump
Instruction [25– 0] Shift Jump address [31– 0]
left 2
26 28 0 1
1
RegWrite
0
Instruction [25– 21] Read
Read register 1
PC address Read
Instruction [20– 16] data 1
Read
register 2 bcond
Zero
Instruction 0 Registers Read ALU ALU
[31– 0] 0 Read
M Write data 2 result Address 1
Instruction u register M data
u M
memory Instruction [15– 11] x u
1 Write x Data
data x
1 memory 0
Write
data
16 32
Instruction [15– 0]
0
Sign
ALU operation
opcode
extend ALU
control
Instruction [5– 0]
**Based on original figure from [P&H CO&D, COPYRIGHT 2004 Architecture des ordinateurs, nov. 2023 112
Elsevier. ALL RIGHTS RESERVED.]
LW
PCSrc1=Jump
Instruction [25– 0] Shift Jump address [31– 0]
left 2
26 28 0 1
1
RegWrite
0
Instruction [25– 21] Read
Read register 1
PC address Read
Instruction [20– 16] data 1
Read
register 2 bcond
Zero
Instruction 0 Registers Read ALU ALU
[31– 0] 0 Read
M Write data 2 result Address 1
Instruction u register M data
u M
memory Instruction [15– 11] x u
1 Write x Data
data x
1 memory 0
Write
data
16 32
Instruction [15– 0]
1
Sign
ALU operation
Add
extend ALU
control
Instruction [5– 0]
**Based on original figure from [P&H CO&D, COPYRIGHT 2004 Architecture des ordinateurs, nov. 2023 113
Elsevier. ALL RIGHTS RESERVED.]
SW
PCSrc1=Jump
Instruction [25– 0] Shift Jump address [31– 0]
left 2
26 28 0 1
0
RegWrite
1
Instruction [25– 21] Read
Read register 1
PC address Read
Instruction [20– 16] data 1
Read
register 2 bcond
Zero
Instruction 0 Registers Read ALU ALU
[31– 0] 0 Read
X
M Write data 2 result Address 1
Instruction u register M data
M
X
memory x u
Instruction [15– 11] Write x u
1 data Data x
1 memory 0
Write
data
16 32
Instruction [15– 0]
0
Sign
ALU operation
Add
extend ALU
control
Instruction [5– 0]
**Based on original figure from [P&H CO&D, COPYRIGHT 2004 Architecture des ordinateurs, nov. 2023 114
Elsevier. ALL RIGHTS RESERVED.]
Branch (Not Taken)
Some control signals are dependent
on the processing of data
PCSrc1=Jump
Instruction [25– 0] Shift Jump address [31– 0]
left 2
26 28 0 1
0
RegWrite
0
Instruction [25– 21] Read
Read register 1
PC address Read
Instruction [20– 16] data 1
Read
register 2 bcond
Zero
Instruction 0 Registers Read ALU ALU
[31– 0] 0 Read
M Write data 2 result Address 1
X
Instruction u register M data
M
X
memory x u
Instruction [15– 11] Write x u
1 data Data x
1 memory 0
Write
data
16 32
Instruction [15– 0]
0
Sign
ALU operation
bcond
extend ALU
control
Instruction [5– 0]
**Based on original figure from [P&H CO&D, COPYRIGHT 2004 Architecture des ordinateurs, nov. 2023 115
Elsevier. ALL RIGHTS RESERVED.]
Branch (Taken)
Some control signals are dependent
on the processing of data
PCSrc1=Jump
Instruction [25– 0] Shift Jump address [31– 0]
left 2
26 28 0 1
0
RegWrite
0
Instruction [25– 21] Read
Read register 1
PC address Read
Instruction [20– 16] data 1
Read
register 2 bcond
Zero
Instruction 0 Registers Read ALU ALU
[31– 0] 0 Read
M Write data 2 result Address 1
X
Instruction u register M data
M
X
memory x u
Instruction [15– 11] Write x u
1 data Data x
1 memory 0
Write
data
16 32
Instruction [15– 0]
0
Sign
ALU operation
bcond
extend ALU
control
Instruction [5– 0]
**Based on original figure from [P&H CO&D, COPYRIGHT Architecture des ordinateurs, nov. 2023 116
2004 Elsevier. ALL RIGHTS RESERVED.]
Jump
Add
RegDst
Jump
Shift
left 2
ALU
Add result
X 1 0
4
PCSrc2=Br Taken
Branch
MemRead
Instruction [31– 26]
Control MemtoReg
ALUOp
MemWrite
ALUSrc
RegWrite
Read
Instruction [25– 21] Read
register 1 0
0
PC address Read
Instruction [20– 16] data 1
Read
register 2 Zero
Instruction 0 Registers Read ALUbcond
[31– 0] 0 ALU
M Write data 2 result Address Read 1
Instruction u register M data
u M
X
memory Instruction [15– 11] x u
X
Write x
X
1 data Data x
1 memory 0
Write
data
16 32
Instruction [15– 0] Sign
extend ALU
ALU operation
0
X
control
Instruction [5– 0]
**Based on original figure from [P&H CO&D, COPYRIGHT Architecture des ordinateurs, nov. 2023 117
2004 Elsevier. ALL RIGHTS RESERVED.]
What is in That Control Box?
n Combinational Logic à Hardwired Control
q Idea: Control signals generated combinationally based on
instruction
q Necessary in a single-cycle microarchitecture…
steps IF ID EX MEM WB
Delay
resources mem RF ALU mem RF
PCSrc1=Jump
Instruction [25– 0] Shift Jump address [31– 0]
left 2
26 28 0 1
Instruction [5– 0]
[Based on original figure from P&H CO&D, COPYRIGHT 2004 Architecture des ordinateurs, nov. 2023 124
Elsevier. ALL RIGHTS RESERVED.]
R-Type and I-Type ALU
PCSrc1=Jump
Instruction [25– 0] Shift Jump address [31– 0]
left 2
26 28 0 1
100ps
Add result 1 0
Add
RegDst Shift PCSrc2=Br Taken
Jump left 2
4 Branch
MemRead
Instruction [31– 26]
Control MemtoReg
ALUOp
100ps
MemWrite
ALUSrc
RegWrite
200ps
address
data 1
250ps
Instruction [20– 16] Read
register 2 bcond
Zero
Instruction 0 Registers Read ALU ALU
[31– 0] 0 Read
M Write data 2 result Address 1
Instruction register M data
400ps
u M
memory x u
Instruction [15– 11] u
350ps
1 Write x Data
data x
1 memory 0
Write
data
16 32
Instruction [15– 0] Sign
extend ALU ALU operation
control
Instruction [5– 0]
[Based on original figure from P&H CO&D, COPYRIGHT Architecture des ordinateurs, nov. 2023 125
2004 Elsevier. ALL RIGHTS RESERVED.]
LW
PCSrc1=Jump
Instruction [25– 0] Shift Jump address [31– 0]
left 2
26 28 0 1
100ps
Add result 1 0
Add
RegDst Shift PCSrc2=Br Taken
Jump left 2
4 Branch
MemRead
Instruction [31– 26]
Control MemtoReg
ALUOp
100ps
MemWrite
ALUSrc
RegWrite
200ps
address
data 1
250ps
Instruction [20– 16] Read
register 2 bcond
Zero
Instruction 0 Registers Read ALU ALU
[31– 0]
550ps
M Write data 2 0 Address Read
result data 1
Instruction u register M
u M
memory Instruction [15– 11] x u
600ps 350ps
1 Write x Data
data x
1 memory 0
Write
data
16 32
Instruction [15– 0] Sign
extend ALU ALU operation
control
Instruction [5– 0]
[Based on original figure from P&H CO&D, COPYRIGHT Architecture des ordinateurs, nov. 2023 126
2004 Elsevier. ALL RIGHTS RESERVED.]
SW
PCSrc1=Jump
Instruction [25– 0] Shift Jump address [31– 0]
left 2
26 28 0 1
100ps
Add result 1 0
Add
RegDst Shift PCSrc2=Br Taken
Jump left 2
4 Branch
MemRead
Instruction [31– 26]
Control MemtoReg
ALUOp
100ps
MemWrite
ALUSrc
RegWrite
200ps
address
data 1
250ps
Instruction [20– 16] Read
register 2 bcond
Zero
Instruction 0 Registers Read ALU ALU
[31– 0] 0 Read
M Write data 2 result Address 1
Instruction u register M data
u M
memory Instruction [15– 11] x u
350ps 550ps
1 Write x Data
data x
1 memory 0
Write
data
16 32
Instruction [15– 0] Sign
extend ALU ALU operation
control
Instruction [5– 0]
[Based on original figure from P&H CO&D, COPYRIGHT Architecture des ordinateurs, nov. 2023 127
2004 Elsevier. ALL RIGHTS RESERVED.]
Branch Taken
PCSrc1=Jump
Instruction [25– 0] Shift Jump address [31– 0]
left 2
26 28 0 1
200ps
PC+4 [31– 28] M M
u u
100ps ALU
Add result 1
x x
0
Add
RegDst Shift PCSrc2=Br Taken
Jump left 2
4 Branch
MemRead
Instruction [31– 26]
Control MemtoReg
ALUOp
350ps
MemWrite
ALUSrc
RegWrite
PC
Read
Instruction [25– 21] Read
register 1
Read
350ps
200ps
address
data 1
250ps
Instruction [20– 16] Read
register 2 bcond
Zero
Instruction 0 Registers Read ALU ALU
[31– 0] 0 Read
M Write data 2 result Address 1
Instruction u register M data
u M
memory Instruction [15– 11] x u
1 Write x Data
data x
1 memory 0
Write
data
16 32
Instruction [15– 0] Sign
extend ALU ALU operation
control
Instruction [5– 0]
[Based on original figure from P&H CO&D, COPYRIGHT Architecture des ordinateurs, nov. 2023 128
2004 Elsevier. ALL RIGHTS RESERVED.]
Jump
PCSrc1=Jump
Instruction [25– 0] Shift Jump address [31– 0]
left 2
26 28 0 1
100ps ALU
Add result 1
x x
0
Add
RegDst Shift PCSrc2=Br Taken
Jump left 2
4 Branch
MemRead
Instruction [31– 26]
Control MemtoReg
ALUOp
200ps
MemWrite
ALUSrc
RegWrite
200ps
address
Instruction [20– 16] data 1
Read
register 2 bcond
Zero
Instruction 0 Registers Read ALU ALU
[31– 0] 0 Read
M Write data 2 result Address 1
Instruction u register M data
u M
memory Instruction [15– 11] x u
1 Write x Data
data x
1 memory 0
Write
data
16 32
Instruction [15– 0] Sign
extend ALU ALU operation
control
Instruction [5– 0]
[Based on original figure from P&H CO&D, COPYRIGHT Architecture des ordinateurs, nov. 2023 129
2004 Elsevier. ALL RIGHTS RESERVED.]
Control Logic for MIPS FSM
[Based on original figure from P&H CO&D, COPYRIGHT Architecture des ordinateurs, nov. 2023 130
2004 Elsevier. ALL RIGHTS RESERVED.]
Microprogrammed Control for MIPS FSM
[Based on original figure from P&H CO&D, COPYRIGHT Architecture des ordinateurs, nov. 2023 131
2004 Elsevier. ALL RIGHTS RESERVED.]
Microprogrammed vs. Hardwired Control
n Advantages
n Disadvantages
Contenu
Mémoire d’un système moderne
Technologies des mémoires (SRAM, DRAM)
Hiérarchie mémoire
Mémoire cache
Mémoire dans un système moderne
L2 CACHE 1
L2 CACHE 0
SHARED L3 CACHE
DRAM INTERFACE
CORE 0 CORE 1
DRAM BANKS
DRAM MEMORY
CONTROLLER
L2 CACHE 2
L2 CACHE 3
CORE 2 CORE 3
_bitline
Architecture des ordinateurs, nov. 2023 137
Technologie mémoire : Cellule SRAM
n Static Random Access Memory
n Deux inverseurs permettent le stockage d’un bit
q Le chemin du retour permet de mémoriser la valeur dans la
cellule
q 4 transistors pour le stockage
q 2 transistors pour l’accès
row select
_bitline
bitline
Row Decoder
bit-cell array
Address 2n
n+m bits n
2n rows x 2m columns
(n≈m to minimize
overall latency)
2m
m-k
Column Decoder
2k
q DRAM
q SRAM
n SRAM
q Accès plus rapide (sans capacité)
q Densité plus faible (cellule = 6 transistors)
q Coût plus élevé
q Pas de rafraîchissement
q Processus de fabrication : transistors sans capacités
Architecture des ordinateurs, nov. 2023 141
Contraintes des mémoires
n Plus grande ⇒ Plus lente
q SRAM : 512 octets, ~ 100 ps (pico seconde)
q SRAM : 1K (Kilo) à 1M (Méga) octets, ~ 1 ns (nano seconde)
q DRAM : 1G (Giga) octets, ~ 50 ns
q Disque dur : 1T (Téra) Octets, ~ 10 ms (milli seconde)
n Idée :
q Avoir plusieurs niveaux de stockage (de plus en plus grands et
lents lorsqu’on s’éloigne du processeur)
q Garantir que la plupart des données référencées par le
processeur soient dans les niveaux les plus rapides
Architecture des ordinateurs, nov. 2023 143
Hiérarchie de la mémoire
Grande
Sauvegarder tout ici Lente
Architecture des ordinateurs, nov. 2023 144
Intérêt du cache
n Programme : instruction 1, 2, … et 200 (3 sections)
n Section 1 : instruction 1, 2, …, 90 1
n section 2 : instruction 91, 92,… et 100 (1000 itérations) Section 1
n Section 3 : instruction 101, 102, … et 200
90
boucle
Section 2
(1000 fois)
100
Main
Memory Hard
CPU Cache Disk
(DRAM)
RF
Main
Level 2 Memory
CPU Level1 Cache (DRAM)
RF Cache
L2 cache
512 KB ~ 1MB, many nsec Automatic
HW cache
L3 cache, management
.....
Contenu
Recherche d’une référence
Structure du cache
Correspondances
directe, associative et associative par ensemble
Stratégies de remplacement
aléatiire, FIFO, LRU, …
Cache : Rappel
n composant qui mémorise les résultats utilisés fréquemment
afin d’éviter le temps de latence dû à l’accès à la RAM
(exemple : cache web)
n Bloc : Unité of stockage dans le cache et RAM d’une taille
fixe
Bloc 0
Bloc 1
Bloc 0
Bloc 1
…
…
Bloc n
CPU
Cache
Bloc m
RAM
Architecture des ordinateurs, nov. 2023 154
Recherche d’une référence
n Lorsqu’une donnée est référencée par le CPU, le contenu de son
adresse est recherché dans la mémoire des étiquettes (Tag store):
1. Si la donnée n’est pas dans le cache (Miss) alors on transfère le
bloc qui la contient de la RAM vers le cache
2. Sinon
3. On accède à la donnée de la cache
Cache
Address
Tag Store Data Store
Hit/miss ? Data
n 3 types de correspondances :
q directe
q Associative
q Cache = 64 octets
hit rate
associativity
Architecture des ordinateurs, nov. 2023 166
Fréquence de l’utilisation du cache
n Lorsque le CPU fait référence à une adresse (donnée ou
instruction), il doit faire :
q une comparaison d’étiquettes (correspondance direct)
Registre/
Edit/Execute Coproc 1/
Coproc 0
.data
monMessage: .asciiz "Mon premier message"
.text
li $v0,4 # v0 ß4
la $a0,monMessage # a0 ß
monMessage
syscall # appel système
.data
nombre1: .word 15 # déclaration du premier terme entier
nombre2: .word 3 # déclaration du deuxième terme entier
message: .asciiz "Somme= " # déclaration du message
.text
lw $t0, nombre1 # t0 <-- (nombre 1)
lw $t1, nombre2 # t1 <-- (nombre 2)
add $t2, $t0, $t1 # t2 <-- (t0) + (t1)