한국   대만   중국   일본 
Unite de gestion de memoire ? Wikipedia Aller au contenu

Unite de gestion de memoire

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.

Historique [ modifier | modifier le code ]

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.

Fonction d’un MMU [ modifier | modifier le code ]

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).

Principe [ modifier | modifier le code ]

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.

Fonctionnement [ modifier | modifier le code ]

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 .

Voir aussi [ modifier | modifier le code ]