0% ont trouvé ce document utile (0 vote)
5 vues28 pages

Cours 3

Le document traite des mémoires internes, en particulier de la mémoire RAM et de la communication entre le CPU et la RAM via des bus d'adresses et de données. Il explique également la segmentation de la mémoire pour une gestion efficace des programmes, ainsi que le fonctionnement de la pile et des différents types de mémoires comme la SRAM et la DRAM. Enfin, il aborde le principe de localité en mémoire cache, qui optimise l'accès aux données.

Transféré par

panachitr
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
5 vues28 pages

Cours 3

Le document traite des mémoires internes, en particulier de la mémoire RAM et de la communication entre le CPU et la RAM via des bus d'adresses et de données. Il explique également la segmentation de la mémoire pour une gestion efficace des programmes, ainsi que le fonctionnement de la pile et des différents types de mémoires comme la SRAM et la DRAM. Enfin, il aborde le principe de localité en mémoire cache, qui optimise l'accès aux données.

Transféré par

panachitr
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Les mémoires internes

Mémoire centrale RAM

Case Adresse N-1


0 0 0 1 1 1 1 0
Case
Case
Mot mémoire = Nombre de bits
(8 bits) .
.
Taille = Nombre de cases (en octets) .
.
Taille = Nb_cases × Mot_Memm (en .
octets
Case Adresse 2
Nb_case = 16, Mot_Mem = 8 bits
Taille_Mem = 16 × 8bits(1 octet) Case Adresse 1
= 16 octets Case Adresse 0
80
Les mémoires internes
Communication entre CPU & RAM

Bus adresse : Adresse 2 Case Adresse N-1


Case
Case

.
CPU .
.
.
10100110 .

10100110 Adresse 2

Case Adresse 1

Bus contrôle (Lecture) Case Adresse 0


81
Les mémoires internes
Communication entre CPU & RAM

Bus adresse : Adresse 1 Case Adresse N-1


Case
Case

.
CPU Bus donnée : 00001111 .
.
.
00001111 .

Case Adresse 2

00001111 Adresse 1

Bus contrôle (Ecriture) Case Adresse 0


82
Les mémoires internes
CALCUL INTUITIF !

Case 1111
Si l’adresse est sur n-bits, donc il est
possible de référencer 𝒏 cases Case
mémoire (Dans l’exemple c’est 16 Case
cases ou mots mémoire)
.
.
If the address is n-bit, then it is possible .
to reference 2^n memory locations .
(in the example, this is 16 memory .
locations or words).
Case 0010

Case 0001

Case 0000
83
Les mémoires internes
Segmentation de la mémoire
La segmentation est la subdivision
(logique et non pas physique) de la @Segment
RAM en plusieurs plages à taille
1 1 1 1
égales 1 1 1 0
Elle se fait par le découpage des 1 1 0 1
bits du bus d’adresses 1 1 0 0
1 0 1 1
1 0 1 0
Segmentation is the subdivision 1 0 0 1
1 0 0 0
(logical, not physical) of RAM into 0 1 1 1
several equally sized ranges. 0 1 1 0
This is done by dividing the bits 0 1 0 1
of the address bus. 0 1 0 0
0 0 1 1
0 0 1 0
0 0 0 1
0 0 0 0

84
Les mémoires internes
Segmentation de la mémoire

Ecriture @Segment @Offset


Segment:Offset (EA, Depl) 1 1 1 1
Segment 11 1 1 1 0
1 1 0 1
1 1 0 0
1 0 1 1
11:01 Segment 10 1 0 1 0
1 0 0 1
1 0 0 0
10:01 0 1 1 1
Segment 01 0 1 1 0
0 1 0 1
00:10 0 1 0 0
0 0 1 1
0 0 1 0
Segment 00 0 0 0 1
DS, ES: Segment:Offset 0 0 0 0
CS : CS:IP
SS : SS:SP 85
La segmentation d’un programme permet de séparer le code de ce programme de ses
données pour une utilisation plus rationnelle de la mémoire centrale
Program segmentation allows the Mémoire centrale Mémoire centrale
program code to be separated
from its data for more efficient Espace Espace
use of main memory. occupé occupé
Espace libre Espace libre
insuffisant insuffisant
Espace Espace
occupé occupé

Programme Programme
(Code+ (Code+
Données)
Espace Données)
Espace
libre et suffisant et
suffisant occupé

Espace Espace libre


occupé insuffisant

Chargement sans Problème de chargement


sans segmentation 86
segmentation
Mémoire centrale

Espace
occupé
Espace libre
et suffisant

Segment Espace
Programme
Segments Code occupé
(Code
Données) Segment
Données Espace
suffisant et
occupé

Espace libre
et
suffisant

87
Le registre CS
Segment
Code
64 Ko  L’adresse segment: elle est contenue dans le
registre segment correspondant sur 16 bits (64KO).
Le registre DS
 L’adresse Effective (EV, offset, déplacement, ‘’IP
Segment pour le CS’’): c’est l’adresse relative par rapport au
Données début d’un segment, sa taille est 16 bits. Les
64 Ko adresses effectives du premier Byte et du dernier
Byte de chaque segment sont respectivement
Le registre SS 0000H et FFFFH.
Segment
Pile  L’adresse Physique : cette adresse qui est sur 20
64 Ko bits est générée par le μP, elle est véhiculée via le
bus d’adresses (20 bits) pour pointer n’importe
quelle case mémoire dans l’espace de la mémoire
Le registre ES
Segment
centrale
Données
suppl
64 Ko
88
Segment
Code
64 Ko

Segment
Données
64 Ko

@_physique = @_segment × 16 + Offset


Segment
Pile
64 Ko Exemple:
CS=1234H @_p = CS × 16 + 0000H = 12340H

@_p = CS × 16 + A0ABH = 1C3EBH Segment


Segment
Code
Données
64 Ko
suppl
64 Ko
@_p = CS × 16 + FFFFH = 2233FH 89
Mémoire
00000H

CS × 16 = 123A0H
EA = 341BH

Code Segment
CS × 16 + 341BH = 157BBH Instruction (CS=123AH)

CS × 16 + FFFFH = 2239FH
223A0H

FFFFFH

90
CS × 16
Code segment

DS × 16
Data segment

SS × 16

Stack segment

ES × 16
Extra segment
91
Mémoire
00000H

CS × 16 = 02000H
EA = 0600H
Code Segment
CS × 16 + 0600H = 02600H (CS=0200H)
Instruction i

CS × 16 = 1A300H
EA = 0600H
Code Segment
CS × 16 + 0600H = 1A900H (CS=1A30H)
Instruction i
après relocation

FFFFFH 92
00000H

Data segment
64 K bytes Variables Utilisées

Code segment
64 K bytes

Pas chevauchement
des segments (No
FFFFFH segment overlapping) 93
00000H

Variables Utilisées

Data segment
64 K bytes

Code segment
64 K bytes

Pas chevauchement
des segments (No
FFFFFH segment overlapping) 94
00000H

Variables Utilisées

Data segment
64 K bytes

Code segment
64 K bytes

Chevauchement
des segments (segment
overlapping)
FFFFFH 95
Chevauchement
des segments (segment
00000H overlapping)

00200H
Variables Utilisées (7 octets)
00206H
DS
64 Kb

00210H

Code segment
64 K bytes

96
FILE D’INSTRUCTIONS (Instruction Queue)
Mémoire Centrale

7 0
6
B
y
t
e
s

UCC (Décodeur) Lors d’un branchement, la file est


remise à zéro (FLUSHED OUT)
97
La pile
Segmentation de la mémoire

@Segment @Offset
1 1 1 1
Ecriture Segment 11 1 1 1 0
Segment:Offset 1 1 0 1
1 1 0 0
1 0 1 1
11:01 Segment 10 1 0 1 0
1 0 0 1
1 0 0 0
10:01 0 1 1 1
Segment 01 0 1 1 0
0 1 0 1
00:10 0 1 0 0
0 0 1 1
0 0 1 0
Segment 00 0 0 0 1
0 0 0 0

98
La pile
La pile
 La pile est une structure de la
mémoire centrale
 Utilise le principe de LIFO (Last In
First Out) 1 1 1 1
1 1 1 0
 SP est un registre qui pointe au 1 1 0 1
sommet de la pile 1 1 0 0
 Manipulée par les instructions PUSH 1 0 1 1
et POP 1 0 1 0
1 0 0 1
 Sauvegarde l’adresses de retour lors 1 0 0 0
des appels des procédures 0 1 1 1
SS=01 0 1 1 0
0 1 0 1 SP
xxxxx 0 1 0 0
The stack is a structure of main memory 0 0 1 1
Uses the LIFO (Last In First Out) principle 0 0 1 0
SP is a register that points to the top of the stack 0 0 0 1
0 0 0 0
Controlled by the PUSH and POP instructions
Saves the return address when calling procedures
99
La pile
La pile
10: offset1: Ins 1
10: offset2: Ins 2
10: offset3: CALL PROC
10: offset4: Ins 4

PROC 1 1 1 1
10:offset: Inst 1 1 1 1 0
10:offset: Inst 2 1 1 0 1
RET
1 1 0 0
1 0 1 1
1 0 1 0
1 0 0 1
1 0 0 0
0 1 1 1
SS=01 0 1 1 0
0 1 0 1 SP
xxxxx 0 1 0 0
0 0 1 1
0 0 1 0
0 0 0 1
0 0 0 0

100
Les mémoires internes
RAM

SRAM DRAM
Random Access
Volatile Elle est de taille
Elle est de taille
réduite Lecture/Ecriture supérieure

Temps d’accès Temps d’accès


rapide important
Utilisée dans les Utilisée dans la
mémoires caches mémoire centrale

Consomme Consomme plus


moins d’énergie d’énergie
Chère Abordable 101
Mémoire cache

UNITES
D’ENTREE CPU UNITES DE
SORTIE

Mémoire cache Rapide + de


(SRAM) petite taille

MÉMOIRE MÉMOIRE
CENTRALE SECONDAIRE
102
Mémoire cache
UNITES UNITES DE
D’ENTREE SORTIE
CPU

2 1 1 4
Succès de cache Mémoire cache Echec de cache
(Hit) (SRAM) (Miss)

2 3
MÉMOIRE
MÉMOIRE
CENTRALE
SECONDAIRE
103
104
Laisser de coté le
bit de validité

105
Mémoire cache
Principe de localité
Le principe de localité affirme que les informations auxquelles va accéder le
processeur ont une forte probabilité d’être localisées dans une fenêtre
spatiale et une fenêtre temporelle

Localité Temporelle Localité Spatiale

Un programme qui a Un programme qui a manipulé


manipulé une information une information dans un passé
dans un passé proche à de proche à de très grandes
très grandes chances de la chances de manipuler des
manipuler à nouveau peu informations proches de
de temps après l’information de départ peu de
temps après
106
Mémoire cache
Localité Temporelle Localité Spatiale
Boucle Pour Tableau T
Index Contenu
- Instruction 1; (x)
T[1] Val 1
- Instruction 2; (x,y) BLOC T[2] Val 2
- Instruction 3;
- ….; MÉMOIRE T[3] Val 3
-
-
….;
….;
Bloc = k
- ….; mots
- Instruction N;
mémoires T[i] Val i

107

Vous aimerez peut-être aussi