Vous êtes sur la page 1sur 36

Gestion Mmoire

Informatique Embarque M2 / 2010 - 2011 Gestion Mmoire

Gestion Mmoire

Interaction CPU / mmoire

Bus d'adresses Bus de Donnes Bus de Contrle

CPU

Mmoire

2010

F1-M2-Info Emb.

Gestion Mmoire

Architecture Von Neumann


Bus d'adresses CPU Mmoire Bus de Donnes

Mmoire contient:
Instructions et Donnes CPU charge les instructions depuis la mmoire

CPU possde des registres


PC: instruction excuter, SP: sommet de pile registres gnraux
2010 F1-M2-Info Emb.
3

Gestion Mmoire

Architecture Harvard
Bus d'adresses Mmoire Programme Bus de Donnes CPU Bus d'adresses Bus de Donnes Mmoire Donnes

Deux types de mmoire


Instructions et Donnes Accs en parallle aux instructions et aux donnes
Donnes accdes plus frquemment que les instructions

CPU idem Von Neumann


2010 F1-M2-Info Emb.
4

Gestion Mmoire

Mmoire
Dans les systmes embarqus, requis pour stocker programmes et donnes:
Code, "firmware"
Permanent, en gnral jamais chang durant la vie de l'appareil

Donnes temporaires
variables, tas, pile,... Rapide et effaable

Donnes de Configuration
Changent, voluent, ne doivent pas tre volatiles Ex: rpertoire tlphone mobile
2010 F1-M2-Info Emb.
5

Gestion Mmoire

Types de Mmoires
Mmoire Random Access Memory (RAM) Dynamic RAM SDRAM DDRAM Static RAM Read Only Memory (ROM) PROM EPROM EEPROM NVRAM FLASH

SRAM: pas de rafrachissement DRAM: rafrachissement, Contrleur


F1-M2-Info Emb.

2010

Gestion Mmoire

Initialisation (ARM)
tat initial : "reset" et configure le matriel de telle manire que l'OS puisse s'excuter. Configuration:
contrleur mmoire, caches, quelques priphriques

Diagnostics:
Vrifie si le matriel fonctionne, identifie et isole les fautes

Boot:
charge une "image" [compresse] de l'OS.
2010 F1-M2-Info Emb.
7

Gestion Mmoire

Rorganisation Mmoire
0xFFFFFFFF I/O Regs Fast SRAM Boot ROM I/O Regs

DRAM: bloc contigu

DRAM: bloc contigu

0x00000000
2010

Boot ROM Avant


F1-M2-Info Emb.

Fast SRAM Aprs


8

Gestion Mmoire

Caches Mmoire
Processeur Accs mot, byte lent Rapide Cache Lent Rapide Write Buffer Lent Mmoire principale Mmoire principale

Processeur

Accs mot, byte lent

2010

F1-M2-Info Emb.

Gestion Mmoire

Cache et MMU
Bus d'adresses Base Traduction Processeur Cache Bus de Donnes

MMU

Mmoire principale

Cache Logique

2010

F1-M2-Info Emb.

10

Gestion Mmoire

Cache et MMU
Bus d'adresses Base Traduction Processeur Cache Bus de Donnes

MMU

Mmoire principale

Cache Physique

2010

F1-M2-Info Emb.

11

Gestion Mmoire

Cache
Le cache est charg avec des "blocs"
Zones contigus de mots mmoire Lignes Identifier ces lignes

tat:
Ligne valide ou non Ligne modifie ou non

2010

F1-M2-Info Emb.

12

Gestion Mmoire

Architecture d'un cache


31 T a g 12 I 11 n d e 4 x 3 0 Hit Compare Miss Cache-tag vd Mot3 Mot2 Mot 1 Mot 0 Cache-tag vd Mot3 Mot2 Mot 1 Mot 0 Cache-tag vd Mot3 Mot2 Mot 1 Mot 0 Cache-tag vd Cache-tag vd Cache-tag vd Cache-tag vd Mot3 Mot3 Mot3 Mot3 Mot2 Mot2 Mot2 Mot2 Mot Mot Mot Mot 1 1 1 1 Mot Mot Mot Mot 0 0 0 0

2010

F1-M2-Info Emb.

13

Gestion Mmoire

Caches Associatifs
31 T a g 12 I 11 n d e 4 x 3 0 Compare Hit Way 3 Cache-tag vd Mot3 Mot2 Mot 1 Way 2 Mot 0 Cache-tag vdvd Mot3 Mot2 Mot Mot 0 1 Cache-tag Mot3 Mot2 Mot 1 1 Way 0 Mot Cache-tag vdvdvd Mot3 Mot2 1 Mot 0 Way 0 Cache-tag Mot3 Mot2 Mot Mot Mot 0 0 Cache-tag Mot3 Mot2 Mot 1 1 Mot Cache-tag vdvdvd Mot3 Mot2 1 Mot 0 0 0 Cache-tag Mot3 Mot2 Mot Mot Mot Cache-tag Mot3 Mot2 Mot 1 1 Mot Cache-tag vdvd Mot3 Mot2 Mot Mot 0 0 Cache-tag Mot3 Mot2 Mot 1 1 Mot Cache-tag vd Mot3 Mot2 Mot 1 Mot 0 Mot 0 Cache-tag vd Mot3 Mot2 Mot 1 Cache-tag vdvd Mot3 Mot2 Mot Mot 0 0 Cache-tag Mot3 Mot2 Mot 1 1 Mot Cache-tag vdvdvd Mot3 Mot2 1 Mot 0 0 0 Cache-tag Mot3 Mot2 Mot Mot Mot Cache-tag Mot3 Mot2 Mot 1 1 Mot Cache-tag vdvdvdvd Mot2Mot2 1 Mot 0 0 0 0 Cache-tag Mot3Mot3 Mot Mot Mot Mot Cache-tag Mot3Mot3 Mot2 1 1 Mot Cache-tag Mot2 Mot Mot 1 Cache-tag vdvdvd Mot3 Mot2 1 Mot 0 0 0 Cache-tag Mot3 Mot2 Mot Mot Mot Cache-tag Mot3 Mot2 Mot 1 1 Mot Cache-tag vdvd Mot3 Mot2 Mot Mot 0 0 Cache-tag Mot3 Mot2 Mot 1 1 Mot Cache-tag vd Mot3 Mot2 Mot 1 Mot 0 Miss

2010

F1-M2-Info Emb.

14

Gestion Mmoire

Caches: Politique de gestion


Writethrough
Toute modification est immdiatement rpercute sur la mmoire centrale. Lent

Writeback (utilisation du dirty bit)


crit dans une ligne de cache valide Ligne de cache contient des donnes plus rcentes Ligne crite quand ncessit de remplacer la ligne

Politiques de remplacement:
Round-robin ou pseudo alatoire
2010 F1-M2-Info Emb.
15

Gestion Mmoire

Caches : contrle
Flush: vider tout le contenu Clean: pousser toutes les donnes modifies en mmoire Possibilit d'effectuer ces oprations par portion (granularit: la ligne) Oprations pour I caches et D caches Possibilit de verrouiller du code et des donnes en cache.
2010 F1-M2-Info Emb.
16

Gestion Mmoire

Memory Protection Unit


Dfinit au niveau matriel des "rgions"
Adresse de dpart et longueur Droits: lecture, lecture/criture, pas d'accs, cache et write buffer

Droits compars avec le mode du processeur lors d'un accs mmoire pour dterminer si l'accs est valide ou non.
Invalide: gnration d'une exception "abort"

2010

F1-M2-Info Emb.

17

Gestion Mmoire

MPU: rgions
Rgions peuvent se recouvrir A chaque rgion est attribu une priorit, indpendante de ses privilges En cas de recouvrement les droits de la rgion de plus haute priorit sont appliqus L'adresse de dpart d'une rgion est un multiple de sa taille La taille d'une rgion est une puissance de 2 entre 4KB et 4GB Accs hors rgion entrane un abort
2010 F1-M2-Info Emb.
18

Gestion Mmoire

Exemple rgions MPU


Tche 3 Tche 2 Tche 1 Rgion 3 Rgion 0 Tche 1 active Tche 3 Tche 2 Rgion 3 Tche 1 Rgion 0 Tche 2 active Tche 3 Rgion 3 Tche 2 Tche 1 Rgion 0 Tche 3 active

Rgion 0: accs privilgi seulement Rgion 3: redfinie chaque changement de tche, accs en mode utilisateur:
2010

une tche active ne peut pas corrompre les rgions dont elle n'a pas besoin
F1-M2-Info Emb.

19

Gestion Mmoire

Memory Management Unit


Mmoire virtuelle Adresse virtuelle Base 0x0400 Offset 00e3 Page frame Adresse physique 00e3 Registre de relocation MMU 0x0800 offset 0x0800 Adresse traduite Mmoire physique Rgion Tche 1

0x0400000e3 0x040000000

Page

Rgion Tche 1

Une autre tche avec la mme adresse virtuelle accdera une page physique diffrente
2010 F1-M2-Info Emb.
20

Gestion Mmoire

Mmoire Virtuelle: composants


Mmoire Virtuelle MMU Translation Lookaside Buffer Mmoire Physique Tables de Pages PTE

page

Registre de relocation
F1-M2-Info Emb.

page frame
21

2010

Gestion Mmoire

Exemple de "Mapping"
Mmoire Virtuelle Tables de Pages Mmoire Physique

Pile RAM Donnes

Code Flash

PTE
2010 F1-M2-Info Emb.

page frame

22

Gestion Mmoire

MMU et multi-tches
Mmoire Virtuelle Tables de Pages Tche3 Tche1 Tche2 Tche2 Tche1 0X400000 Tche 1 active
2010 F1-M2-Info Emb.

Mmoire Physique

Mmoire Virtuelle

Tables de Pages Tche3

Mmoire Physique

Tche3

Tche3

Tche2

Tche2 Tche2 Tche1

Tche1

0X400000 Tche 2 active

Tche1

23

Gestion Mmoire

MMU, systme et applications


Mmoire Virtuelle Zone adresses mmoire fixes OS Mmoire Physique OS Tables de Pages Tche3

MMU, TLB Tche

Tche1

Tche2

2010

F1-M2-Info Emb.

24

Gestion Mmoire

Tables de Pages
Conversion Virtuel => Physique Souvent, grandes zones non dfinies
=> beaucoup de "PTE", donc de place mmoire, pour rien

Comme souvent (i.e.: blocs de fichiers)


utilisation structure "arborescente" plusieurs niveaux ARM: 1 ou 2 niveaux (Level 1, Level 2)

2010

F1-M2-Info Emb.

25

Gestion Mmoire

MMU Intel
Adresse 31 virtuelle
22 21
10 bits 10 bits

12 11
12 bits

0 Page Offset
4KB page

Directory Index

Page Table Index

0 cr/st cr/st 1023


Directory Page
CR3 32-bit word

1023
cr/st
Page Table Entry (PTE)

Directory Address

cr/st = control & status Mmoire physique


26

Translation Lookaside Buffer (TLB) = cache for PTEs


2010 F1-M2-Info Emb.

Gestion Mmoire

Page Table Entry


Dcrit une page d'un espace virtuel Adresse de la page physique associe, si valide Bits de contrle
Page physique associe valide Droits d'accs (lecture, criture, excution)

Bits de status
Page accde Page modifie
2010 F1-M2-Info Emb.
27

Gestion Mmoire

Level 1 PTE
4096 entres (=> 4GB) Quatre types d'entres:
Description de zone de 1MB Entre de catalogue vers une table de pages L2 fines
(1024 * &, 4 ou 64 KB) (taille 4KB) (taille 16 KB)

Entre de catalogue vers une table de pages L2 grosses (256 * 4 ou 64 KB) (taille 1KB) Entre invalide gnrant un "abort"

Chargement adresse de la table L1 dans registre C2 du co-processeur C15


2010 F1-M2-Info Emb.
28

Gestion Mmoire

Level 1 PTE
31 Entre Section 31 Table page grosse 31 Table page fine 31 Faute Adresse de base Adresse de base 11 0 Adresse de base 20 19 0 11 9 8 5 4 3 2 1 0 AP 0 Domaine 1 C B 1 0 98 5 4 3 2 1 0 0 0 1

0 Domaine 1 98

5 4 3 2 1 0 0 1 1

Domaine 1

1 0 0 0

2010

F1-M2-Info Emb.

29

Gestion Mmoire

Level 2 PTE
31 Large Page 31 Petite Page 31 Trs Petite Page 31 Faute Adresse de base Adresse de base Adresse de base 16 15 0 4 3 2 1 0 AP3 AP2 AP1 AP0 C B 0 1

12 11

4 3 2 1 0

AP3 AP2 AP1 AP0 C B 1 0 10 9 0 4 3 2 1 0 AP C B 1 1 1 0 0 0

2010

F1-M2-Info Emb.

30

Gestion Mmoire

Conversion avec table L1


Adresse virtuelle 4095 5 4 3 2 1 0 31 Base 20 19 Offset 0

10

Page Table Entry

Adresse de la table L1 Adresse physique


2010

31 Base

20 19 Offset
F1-M2-Info Emb.

0 Copi vers le TLB

31

Gestion Mmoire

Conversion avec table L2


Adresse virtuelle 31 L1 offset 20 19 L2 offset 12 11 Page Offset 0

4095 5 4 3 2 1 0 31 Base L1 Page Table Entry

255 5 4 3 2 1 0 12 11 Offset Copi vers le TLB

10

L2 Page Table Entry

2010

F1-M2-Info Emb.

32

Gestion Mmoire

Memory Management
Based on notion of region
address, size, access modes (R,W,X) inheritance properties

Configurable memory management support


FLat Memory (FLM) PRotected Memory (PRM) Virtual Memory (VM)

Depends upon hardware support (MMU) Tradeoff performances/protection


2010 F1-M2-Info Emb.
33

Gestion Mmoire

Flat Memory (FLM)


Single Supervisor Memory Space Unprotected Shared by microkernel and all actors Basic MMU support
to enable memory cache(s) to setup non-cached memory regions (DMA) 1-to-1 mapping invalid address => unrecoverable system error
2010 F1-M2-Info Emb.
34

Gestion Mmoire

Protected Memory (PRM)


Multiple user address spaces Mutually protected No lazy on-demand page allocation Invalid user-level address error
impacted to faulting thread can be recovered by faulting application

Slightly impacts performances


system calls context switches
2010 F1-M2-Info Emb.
35

Gestion Mmoire

Virtual Memory (VM)


Includes PRM features Dynamic lazy physical page allocation
fill-zero option (bss region)

Copy-on-write optimization
page inheritance (init data region)

Optional page swapping


external swapper swap space accounted in available memory
2010 F1-M2-Info Emb.
36