Ch.
8
Mémoire
Mounir Boukadoum
Traduit et adapté de l’anglais
sources anglaises
Plan
• Vue architecturale d’un ordinateur
• L’interface CPU‐Mémoire
• La mémoire et les différentes technologies
• CPU‐Bus‐E/S
• Protocoles de bus
Traduit et adapté de l’anglais
sources anglaises
1
Architecture fondamentale d’un ordinateur
• CPU + mémoire + périphériques
– Blocs/composants indépendants travaillant ensemble
sous le contrôle du processeur central
– Circuits d’interconnexion (glue circuits) et protocoles
de communication compris de tous
Traduit et adapté de l’anglais
sources anglaises
Lignes d’interconnexions
dans une carte‐mère
• Bus système (Front Side Bus) : relie
le uP au concentrateur de contrôle
mémoire (MCH ou north bridge)
• Bus graphique : relie le MCH à la
carte graphique
– Un contrôleur interne (IGE) prend le
relai en utilisant la mémoire vive locale
si la carte est absente
• Bus mémoire : relie le MCH à la
mémoire vive
• Bus d’extension d’E/S : relie le
concentrateur du contrôleur d’E/S
(ICH ou south bridge) aux connecteurs
d’E/S
– Ports USB , sériels, etc.
Traduit et adapté de l’anglais
sources anglaises
2
Mode étendu
Bus d'adresses
Bus de données
Mémoire
Alimentation Bus de contrôle
CPU
Horloge
Mémoire
Interrupt Port
Périphérique
Interrupt
Port
Périphérique
Traduit et adapté de l’anglais
sources anglaises
Interface CPU Memoire
• Comprend:
– Bus d`adresses unidirectionnel
address bus
– Bus de données bidirectionnel
– Ligne de commande de lecture (“read”) data bus
– Ligne de commande d’écriture (“write”)
Read*
– Ligne indicatrice d’état prêt (“ready”)
– Ligne(s) de commande indicatrice(s)
CPU Write* Memory
Ready
de taille (8, 16, 32 bit)
size
• L’accès à une adresse demande :
– Lecture :
(1) Générer l’adresse et l’indication de taille, * Peuvent être
combinées en R/W*
(2) Activer Read et copier les données si Ready ou fin de cycle et horloge
– Écriture:
(1) Générer l’adresse et l’indication de taille,
(2) Activer Write et attendre Ready ou fin de cycle
Traduit et adapté de l’anglais
sources anglaises
3
Organisation hiérarchique de la mémoire
• Le CPU et la mémoire n’opèrent pas à la même vitesse,
à moins d’utiliser des mémoires au coût élevé!
• L’usage d’une mémoire cache offre un compromis
Traduit et adapté de l’anglais
sources anglaises
• Si l'information cherchée ne se
trouve pas dans la cache
interne (appelée L1 pour
niveau 1), le CPU va chercher
plus loin
– la mémoire cache externe (L2,
quelque fois, elle est aussi interne)
est plus lente, mais offre plus de
capacité (jusqu’`a plusieurs Mo)
• Dans les architeures de Harvard,
l’usage d’une mémoire externe
ramène l’architecture à une de
Van Newman (pas de bus de
données et instructions
différenciés)
Traduit et adapté de l’anglais
sources anglaises
4
Types de mémoire
• Dépendent de l’usage
– Mémoire primaire : mémoire de travail, généralement volatile
– Mémoire secondaire : mémoire de sauvegarde; non volatile
• Variés en fonction de la taille, du format, et de la technologie
– Taille : 1, 4, 8 bits
– Format = capacité x taille (e.g., 1Gx1)
Traduit et adapté de l’anglais
sources anglaises
Circuits de mémoire
• Puces de mémoire + address bus
data bus
contrôleur d’accès
Read
• Chaque puce fournit un ou CPU Write Memory
plusieurs bits par adresse Ready
– Les puces peuvent être Size
groupées en parallèle pour
obtenir 8/16/32 bits
• Un contrôleur décode les 16x8‐bit memory array
adresse et génères les signaux 0000 1 0 1 1 0 0 1 0
de commande 0001 1 0 0 0 0 0 0 1
• Exemple: address 1‐of‐16
– 8 puces au format 16x1, decoder
fournissant chacune 1 bit pour
1111 0 1 0 1 0 0 1 1
former une mémoire de 16x8
D7 D6 D5 D4 D3 D2 D1 D0
Boîtiers de 16x1‐bit
Traduit et adapté de l’anglais
sources anglaises
5
La Mémoire RAM
• Mémoire à semiconducteurs volatile, à base d’un effet capacitif
– Le contenu doit être raffraichi régulièrement
• Le nom RAM (Random Access Mémory) vient du fait que les mémoires
étaient à accès séquentiel avant, pour des temps d’accès plus lents
• Puces souvent organisées en parallèle sur des barrettes de circuits imprimés
au format SIMM/DIMM (Single/Double Inline Memory Module)
Traduit et adapté de l’anglais
sources anglaises
Architecture d’implémentation d’une
mémoire RAM
• Le CPU voit la mémoire RAM
comme une suite linéaire
d’octets, mais l’organisation
physique des puces est
matricielle
– Bits individuels répartis dans une
matrice, auxquels on accède par
rangée (« word line) et colonne
(« bit line »)
Traduit et adapté de l’anglais
sources anglaises
6
Accès à une cellule RAM
• L’accès à une cellule se fait en divisant l’addess en un champs
de ligne et un autre de colonne
Bit lines
Word lines
Traduit et adapté de l’anglais
sources anglaises
Accès à une RAM dynamique
• Les broches d’adressage fournissent les coordonnées ligne/colonne
séquentiellement grâce à deux lignes d’echantillonnage
– Exemple: Un DRAM de 64K requiert 16 bits d’adresse (65 536= 216) mais le boitier
comporte seulement 8 lignes d’adresse, plus une ligne CAS/ et une autre RAS/.
RAS: Row Address Strobe
CAS: Column Address Strobe
Traduit et adapté de l’anglais
sources anglaises
7
Puce DRAM
• Les adresses des lignes et
colonnes sont multiplexées
• Deux lignes CAS et RAS servent au
démultiplexage (et jouent le rôle
de CS)
• Des amplificateurs détecteurs
(sens amps.) détectent et
amplifient les charges des cellules
• Un compteur de rafraichissement
peut exister à l`interne
Traduit et adapté de l’anglais
sources anglaises
Fonctionnement d’une puce DRAM
• Ex. d’une lecture
4 Data bus closed for input (read)
Traduit et adapté de l’anglais
sources anglaises
8
Diagramme des temps en lecture
d’une DRAM
n ns
Clock T1 T2 T3 T4 T1
Address Row Column
Address Address
RAS
CAS
Output
enable
Read/
Write
Data Hi-Z
output Data valid
N ns
Read cycle
Traduit et adapté de l’anglais
sources anglaises
Technologies de mémoire
• DRAM: Dynamic Random Access Memory
– Traits positifs : dense (1 transistor par bit) and peu coûteuse
– Traits négatifs : demande un circuit de rafraichissement du contenu et
relativement lente
– Commune comme mémoire primaire dand les PC
• SRAM: Static Random Access Memory
– Traits positifs : accès rapide et ne demandant pas de rafraichissement
– Traits négatifs : peu dense et relativement coûteuse (~RAM/8)
– Commune dans les systèmes embarqués et dans les mémoires caches
• ROM et Flash ROM: Read Only Memory
– Non volatile, non inscriptible (« Masked ROM ») ou temps d’écriture
très grand devant le temps de lecture (« Flash »)
– Commune dans les BIOS (programme de démarrage des PC) ou comme
mémoire secondaire (clés USB, caméras numériques, etc.)
Traduit et adapté de l’anglais
sources anglaises
9
DRAM versus SRAM
Word line
Bit Line
Cellule DRAM Cellule SRAM
• Lecture/Écriture : On active la ligne de mot et on lit/écrit dans
la ligne de bit
• Dans le cas de la DRAM, la lecture est destructive du contenu
qui doit être régénéré
Traduit et adapté de l’anglais
sources anglaises
DRAM versus SRAM
Cellule SRAM Cellule DRAM
• Stable après accès • Accès destructif, circuit de
• Gestion statique demandant rafraichissement requis !
seulement un courant de repos en • Gestion dynamique demandant plus
dehors des accès d’énergie
• Temps d’accès ralenti par les
différentes capacités
Traduit et adapté de l’anglais
sources anglaises
10
Mémoire ROM à masque
•Programmation à la fabrication
•Non réinscriptible une fois en opération
•Contenu non volatile
Traduit et adapté de l’anglais
sources anglaises
Mémoire Flash
• Contenu non volatile
• Réinscriptible
• À l’état effacé, les grilles sont • Pour programmer « 0 », deux tensions positives
isolées l’une de l’autre et le sont appliquées aux grilles pour trapper des
transistor ne conduit pas électrons entre elles (ce qui fait baisser vth)
(«1 »)
• L`effet persiste une fois les tensions enlevées, à
moins de déloger les électrons trappés avec un
champ électrique approprié (ou attendre une
dizaine d’années !)
Traduit et adapté de l’anglais
sources anglaises
11
Puces SRAM
• Généralement organisées en tailles de 1, 4 ou 8 bits
• Possèdent une entrée de validation appelée CS ou CE
• Peuvent avoir des lignes Din et Dout commune
Traduit et adapté de l’anglais
sources anglaises
Diagramme des temps en lecture
d’une SRAM
• Les lignes d’adresses et CS doivent être stables tAA avant les
données
• Dout fournit l`information demandée t RC
tAA
Address Bus Address
A11‐A0 old address new address
CS
2147H
Dout WE
A11‐A0
high undef
Dout Data Valid
impedance
DinWE CS tHz
tACS
tRC = Read cycle time
2147H High‐Speed 4096x1‐bit static RAM tAA = Address access time
tACS = Chip select access time
tHZ = Chip deselections to highZ out
Traduit et adapté de l’anglais
sources anglaises
12
Diagramme des temps en écriture
d’une SRAM
• Les adresses et les données doivent être stables tS avant
d’activer WE/
t
• Din lit les données t AA
WC
Address
A11‐A0 old address new address
tS
Address Bus CS
WE
2147H
Din Din old data new data
A11‐A0 tHz
tACS
DinWE CS tS = Signal setup time
tRC = Read cycle time
tAA = Address access time
2147H High‐Speed 4096X1‐bit static RAM tACS = Chip select access time
tHZ = Chip deselections to highZ out
Traduit et adapté de l’anglais
sources anglaises
Augmentation de la capacité
Data In
Decoder
A1 D-In
A0
R/W
• On branche plusieurs D3 CS D-Out
boîtiers en parallèle A1 D-In
(lignes d’adresses, de A0
R/W
données et R/W) en D2 CS D-Out
gardant les CS distincts
A1 D-In
• La validation de chaque A0
R/W
CS est achevée avec les D1 CS D-Out
bits d’adresse non utilisés
A1
par les boîtiers (bits de A0
D-In
poids fort). R/W
CS D-Out
A3 S1 D0
• Ex. : Mémoire 16x1 avec A2 S0
4 boîtiers 4x1 A1
Data Out
A0
R/W
Traduit et adapté de l’anglais
sources anglaises
13
Augmentation de la taille des mots
Data In 3210
A1 D-In
• On branche plusieurs A0
R/W
CS D-Out
boîtiers en parallèle
(lignes d’adresses, CS et A1 D-In
A0
R/W
R/W) en gardant les CS D-Out
lignes de données A1 D-In
A0
distinctes R/W
CS D-Out
• Ex. : Mémoire 4x4‐bit avec 4
A1
boîtiers 4x1 A0
A1 D-In
A0
R/W R/W
CS D-Out
CS
Data Out 3210
Traduit et adapté de l’anglais
sources anglaises
Performance d’une mémoire DRAM
• Indicateurs de performance
– Temps d’accès : temps requis pour lire une cellule (dépend
essentiellement de la technologie des semi‐conducteurs)
– Temps d’accès en mode page : temps d’accès à une cellule dans le
même page qu’une cellule précédemment sélectionnée (pas besoin de
répéter RAS)
– Fréquence du raffraîchissement
• Technologies d’amélioration
– Extended Data Out (EDO) : permet de charger la prochaine addresse
durant l’accès en cours
– SDRAM : Synchronous DRAM utilise un compteur automatique pour
accéder à plusieurs adresses en séquence, en synchronisation avec
l’horloge du CPU
– DDR SDRAM – Double Data Rate SDRAM permet des accès sur les
deux fronts de l’horloge
Traduit et adapté de l’anglais
sources anglaises
14
Passage de bits à
octets
Traduit et adapté de l’anglais
sources anglaises
Modules DRAM
• Intègrent plusieurs boîtiers DRAM
pour augmenter la taille
(quelquefois la capacité aussi)
• Se distinguent des SRAMs par le
besoin pour un contrôleur qui :
– Sépare le bus d’adresses en
adresses de rangées et de
colonnes
– Fournit les signaux RAS and CAS
– Rafraichit les boîtiers à
intervalles réguliers
– Fournit de signaux d’état (e.g.,
mémoire active en occupée
rafraichir les cellules)
Traduit et adapté de l’anglais
sources anglaises
15
Les différents Bus avec les mémoires : SRAM, DRAM, Mémo cache,…
Traduit et adapté de l’anglais
sources anglaises
Gestion de mémoire virtuelle
• Utile pour allouer et gérer la mémoire dans des
environnements à usagers multiples; à mémoire
fragementée, ou lorsque la ARM
capacité demandée
dépasse la physique
• Il s’agit d’établir un lien
entre les adresses
utilisées (virtuelles) et les
adresses physiques
– Fait par un MMU (Memory
Management Unit)
Traduit et adapté de l’anglais
sources anglaises
16
• Le MMU (Management Memory Unit) traduit les addresses
virtuelles en adresses physiques, via un cache appelé TLB
(Translation Lookaside Buffer).
– Les addresses sont groupées en pages suivant une structure en
tableau (page table)
Traduit et adapté de l’anglais
sources anglaises
Gestion de mémoire virtuelle
• Technique de pagination
– L’espace d’adressage physique
est divisé en un ensemble de
pages formant un page frame
et l’espace d’adressage virtuel
est fait de pages virtuelles
(virtual pages)
– Les espaces virtuel et physique
communiquent via le MMU
Traduit et adapté de l’anglais
sources anglaises
17
Traduit et adapté de l’anglais
sources anglaises
Fonctionnement du MMU
interprétation du schéma au diapo précédent
• L’adresse virtuelle est de 16 bits soit:
0010000000000100 = 213 + 22 = 8196
– 0010 = 4 bits utilisés pour le No de page, parmi 24 = 16 identificateurs de pages : page 0 à page
15
– 000000000100 = 12 bits de décalage (Offset) à l’intérieur de la page : 0–(212 ‐1)
• On a: index = la page virtuelle #2: code 110; P/A bit =1 (P/A signifie:
présence/absence)
• L’adresse phsyique est = [Link] correspondant + Offset= 110000000000100
ce qui donne: 214 + 213 + 22 = 16384+8192+4= 24580
NB: le bit de présence (P/A bit) ne rentre pas dans le compte !!
Pour avoir 16 bits dans l’adresse physique, il rajouter un ‘0’ en avant.
Traduit et adapté de l’anglais
sources anglaises
18
Gestion de mémoire virtuelle
• Le Swapping : technique de Pagination/segmentation
Concept : Sauver les programmes et données de données
inactifs (segments) dans la mémoire secondaire pour libérer de
l’espace.
Fonctionnement : le Swapping peut survenir pour des processus
dormant depuis longtemps, alors que le système d'exploitation a
besoin d'allouer de la mémoire aux processus actifs.
Traduit et adapté de l’anglais
sources anglaises
Le Swapping
Traduit et adapté de l’anglais
sources anglaises
19
Segmentation vs Pagination
• Le problème avec la segmentation est que
l’unité d’allocation de mémoire (le segment)
est de longueur variable
• La pagination utilise des unités d’allocation
de mémoire fixe, éliminant ce problème
Traduit et adapté de l’anglais
sources anglaises
Traduit et adapté de l’anglais
sources anglaises
20