Un article de Wikipedia, l'encyclopedie libre.
Cette MMU MC68451 pouvait s'utiliser avec le
Motorola 68010
.
Une
unite de gestion memoire
(
MMU
pour
memory management unit
), parfois appelee unite de gestion de memoire paginee (
PMMU
pour
paged memory management unit
), est un composant permettant de controler les acces qu'un
processeur
fait a la memoire de l'ordinateur dans lequel il est place.
A l'epoque des premiers microprocesseurs, il s'agissait d'un circuit integre dedie.
Puis le MMU a ete integre aux microprocesseurs, a partir du
80286
pour la gamme
Intel x86
, a partir du
68030
pour la gamme
Motorola 680x0
. Par la suite, tous les
ordinateurs personnels
ont ete equipes d'un microprocesseur comprenant une unite de gestion de memoire.
Parmi les fonctions de tels dispositifs, on trouve :
- La traduction d'adresses logiques en adresses lineaires par l'unite de segmentation
(voir
Segmentation
)
;
- La traduction d'adresses lineaires en adresses physiques par l'unite de pagination
(voir
Pagination
)
;
- Le controle de tampon ;
- L'arbitrage du bus ;
- La protection de la memoire (generalement cette fonction est faite par le
MPU
(en)
(
memory protection unit
)) ;
- La commutation de banque (dans des architectures informatiques plus simples comme les systemes 8 bits).
L'utilisation la plus courante et connue d'un MMU est la protection de plages memoire. Un programme donne ne doit pas pouvoir acceder (en lecture ou ecriture) a la memoire utilisee par un autre programme, voire par le
systeme d'exploitation
lui-meme. D'une maniere simple, chaque programme execute par le systeme d'exploitation se voit attribuer une zone memoire protegee, dans laquelle aucun autre programme ne peut ecrire. Ce principe de protection memoire est la caracteristique la plus cruciale pour beneficier d'un systeme d'exploitation stable. Les anciens systemes d'exploitation qui n'en beneficiaient pas plantaient souvent, selon que les programmes executes comportaient des erreurs de conception ou non. Il fallait alors redemarrer toute la machine.
L'utilisation de traduction d'adresse (d'adresse virtuelle en adresse physique) est souvent utilisee conjointement a la protection memoire afin de permettre le placement du logiciel n'importe ou en memoire, y compris en le fractionnant. Ainsi, un systeme d'exploitation
multitache
peut charger plusieurs programmes simultanement dans la memoire physique libre a l'instant du chargement. Peu importe les plages de memoire physique libres, il peut donner les adresses virtuelles souhaitees par le programme charge. Et meme en cas de
fragmentation
de la memoire physique libre, il peut creer une plage d'adresses virtuelles d'un seul tenant.
Le systeme d'exploitation programme le MMU en declarant une zone memoire precise comme appartenant a un programme precis (une zone executable de la memoire). Si une tentative d'acces a de la memoire hors plage est detectee, une
interruption
est levee par le MMU. Celle-ci est interceptee par le processeur et cela a generalement pour effet de stopper le programme, qui recoit par exemple : un signal
SIGSEGV
(
signal de violation de segmentation
) sous
Unix
.