[Tapez un texte] Page 1
La gestion de la
mémoire sous ARMv7
& Androïd OS
Préparé par : Lanasri Dihia
09/04/2013
2
Sommaire
Introduction................................................................................................................................................3
Définition d’ARMv7 : ..................................................................................................................................3
Ses caractéristiques :..................................................................................................................................3
Familles d’ARM7 :.......................................................................................................................................3
Son architecture :.......................................................................................................................................4
Le jeu d’instruction :...................................................................................................................................4
L’OS Android :.............................................................................................................................................5
La gestion des processus par android ........................................................................................................5
L’organisation de la mémoire :...................................................................................................................5
Les nouveaux aspects de gestion mémoire................................................................................................7
Protection de la mémoire...........................................................................................................................7
Conclusion : ................................................................................................................................................8
Bibliographie :.............................................................................................................................................8
3
Introduction
Aujourd’hui les Smartphones, les iPhones ainsi que les iPads ont envahi notre vie quotidienne.
Et de plus en plus leurs performances connaissent une amélioration progressive grâce aux
microprocesseurs qui les équipent.
Parmi ces microprocesseurs, il y a le ARM qui depuis sa création ne cesse de connaitre de
nouvelles améliorations en termes de rapidité, taille ainsi que le mode de gestion de la
mémoire.
De plus, android a pris une place très importante dans la plupart de ces Smartphones
aujourd’hui et qui permet d’installer toute sorte d’applications.
Dans notre étude, on va s’intéresser au microprocesseur ARM version 7 et à android comme
OS, et on essaiera de comprendre comment se fait-il pour gérer la mémoire vive.
Définition d’ARMv7 :
L’ARMv7 (Acorn RISC - Reduced Instruction Set Computer - Machine) est un microprocesseur
de la famille ARM. Il a une architecture fondé sur les principes de conception RISC de 32 bits,
développé par l’entreprise ARM Ltd en 2005.
L’entreprise ne fabrique les processeurs mais vend la licence aux fabricants.
Il contient des registres généraux de 32 bits, son jeu d’instructions est sur 32 bits.
Ses caractéristiques :
 Il est de petite taille.
 Il consomme peu d’énergie.
 une très faible consommation et dissipation thermique.
 Il est adapté aux applications embarquées et aux téléphones mobiles ainsi que les
tablettes, les serveurs TCP/IP…
Figure1 : le processeur ARMv7
Dans ce circuit on utilise le cœur ARMv7 de taille 0,5mm2
en 180nm.
Familles d’ARM7 :
On peut dire qu’il y a les familles suivantes :
 ARMv7 coretex-M : sans protection de la mémoire
 ARMv7 coretex-R : utilise la segmentation pour l’organisation de la mémoire
4
 ARMv7 coretex-A : utilise la MMU pour la pagination
Son architecture :
Le processeur ARMv7 a 3 niveaux de pipeline (Fetch, Decode, Execute) ce qui permet
d’accélérer la vitesse d’exécution.
Figure2 : Les niveaux de pipeline
Il contient 16 registres de taille 32 bits :
o 13 registres généraux
o Un registre pointeur de pile SP
o Un compteur ordinal CO
o Registre des indicateurs CPSR
Figure3 : architecture d’ARMv7
A cette architecture est rajouté : 4 à 8 K octets de cache, une MMU (Management Memory
Unit), des Buffers et un coprocesseur
Le jeu d’instruction :
Il y a trois jeux d’instructions ARMv7
o ARM: c’est le jeu d’instruction par défaut sur 32 bits.
o Thumb : les instructions sont sur 16 bits. ce qui implique un gain en mémoire
o Jazelle : Exécution du byte code Java, les instructions sont sur 8 bits.
o Thumb-2 : « étend le jeu d'instructions limité 16 bits de Thumb par un
des instructions 32 bits additionnelles afin de donner plus de largesse
5
au jeu d'instruction. Il en résulte un jeu d'instructions de largeur
variable. Thumb-2 a pour visée d'atteindre une densité de code
proche de Thumb tout en conservant des performances similaires au
jeu d'instructions ARM en mémoire 32 bits. » (Wikipédia)
L’ARMv7 utilise le big et le little endian pour organiser les mots mémoire ie : que selon la
dernière approche il commence par stocker le poids le plus faible du mot mémoire ensuite le
poids fort dans la mémoire, et inversement pour le big endian.
L’OS Android :
Andoid est un système d’exploitation open source utilisant le noyau Linux, il était crée par la
PME Andoid en 2003 puis elle était rachetée par Google company en 2005. Il était conçu
initialement pour être déployé sur les Smartphones, tablettes… basés sur l’architecture ARM.
Il comporte une interface spécifique développée sous Java et les programme sont exécutés via
JIT interpréteur. Il utilise toutes les bibliothèques open source C utilisées par Linux ;
La gestion des processus par android
Android exécute tous ses programmes en processus, en suivant un certain ordre. Sous android
un processus est composé de un ou plusieurs threads ce qui permet leurs exécution en
parallèle donc ils doivent partager la mémoire entre eux.
L’organisation de la mémoire :
L’adressage mémoire se fait sur 32 bits se qui donne une mémoire de taille 4GO=232
octet.
Les données sont soit sur 8 bits, 16 bits ou de taille d’un mot mémoire =32 bits.
La mémoire peut être vue comme une ligne d’octets repliée en mots à partir de l’adresse
0.Deux façons d’organiser la mémoire sachant qu’on réserve 4 octets par mot :
6
Figure 4 : Organisation de la mémoire vive par ARM7
L’organisation de la mémoire sous ARMv7 -A
Avant que l’adresse virtuelle envoyée par le microprocesseur soit reçue par le registre
d’adresse mémoire, elle doit être d’abord convertie en adresse physique réelle comprise par
la mémoire.
Sachant que l’ARMv7-A supporte le principe de pagination alors la MMU (Memory Manager
Unit) permet cette conversion en transformant les numéros de pages qui sont logiques en
adresse début de cadre de pages physiques reconnus par la mémoire.
L’adresse logique=numéro d’hyperPAGE+ numéro de page + déplacement dans la page
La MMU assure que chaque processus aura son propre espace réservé en mémoire ;
La table des pages
L’ARM7-A utilise une table de pagination à deux niveaux ; la taille d’une page peut être :
Small pages: 4Kbits (12-bit offsets),
Large pages : 64Kbits (16-bit offsets),
Sections: 1Mbits (20-bit offsets),
Super section: 16Mbits (24-bit offsets).
Le nombre d’entrée dans la table de pages ne dépend pas de la taille de la page.
Chaque entrée de la table de page de premier niveau contient un pointeur vers une table de
2ème
niveau.
Donc pour assurer la translation d’une adresse virtuelle en adresse physique il faut :
Consulter la 1ère
table de pages qui se trouvent en mémoire centrale ; cette table en réalité est
décomposée en 2 tables, mais pour savoir à quelle table il faut accéder cela dépend des bits
de poids forts.
L’adresse de cette table est enregistrée dans l’un des registres suivants : TTBR0 ou TTBR1
L’entré de la 1 ère
table contient l’adresse physique de la 2ème
table de page. Et l’entrée de la
2èmè table de page représente l’adresse physique réelle de la page en mémoire vive.
Si la taille de la page est très grande (section ou super section) il y aura pas deux niveaux de
pagination, un seul suffit par contre l’adresse de la section est enregistré dans la 1 ère
table.
Donc pour trouver l’adresse physique il faut rajouter à l’adresse de début de page le
déplacement à l’intérieure de la page.
7
Les nouveaux aspects de gestion mémoire
Le système android avec l’ARM7 supportent la mémoire virtuelle et la gèrent. Pour réduire le
temps d’accès à la mémoire les processeurs ARM7 utilisent des mémoires caches de différents
niveaux L1, L2…qui sont intercalées entre le processeur et la mémoire.
Mais puisque android et ARM7 sont créés pour être exécutés sur des Smartphones cela veut
dire que la taille de la mémoire est réduite et ne peut pas atteindre les 4GO c’est la raison
pour laquelle dès que la mémoire n’est plus suffisante andoid opte à fermer quelque
applications sachant qu’il laisse plusieurs processus en cours d’exécution en arrière plan ce
qui consomme de la mémoire.
Figure5: Hiérarchie de la mémoire
Protection de la mémoire
L’accès à la mémoire est contrôlé selon les permissions définies, que ce soient aux blocs
mémoires (pages) ou bien aux tables de pages. Il existe plusieurs modes de permission et
chaque page peut avoir un mode différent que les autres.
On a :
 Execute never: elle n’autorise pas l’accès à la page mémoire pour lire un mot.
 Read-only, read/write, no access: These modes can be set for user-mode as well as
privileged (kernel) mode.
 Non-secure: elle identifie les régions mémoire.
 sharable: vérifie si une région est partageable ou non entre les processus
8
Conclusion :
Donc l’ARM7 est très puissant mais il y a d’autre version qui seront plus performants comme
l’ARMv8 qui sera sur 64 bits.
Bibliographie :
 Wikipedia
 http://encyclopedia2.thefreedictionary.com/ARM7 ;
 Les instructions d’ARM en mode utilisateur Anceau 2009 ;
 Présentation de la famille de Processeurs ARM Smail Niar IUP3/MASTER1 INEM
2006 ;
 Réunion SEN fonctionnement Dpt COMELEC / Groupe SEN 28 Mai 2008
 Document Number:ARM DDI 0029E Issued: August 1995 Copyright Advanced RISC
Machines Ltd (ARM) 1995
 ARM®v7-M Architecture Reference Manual Errata markup Copyright © 2006-2010
ARM Limited. ARM DDI 0403Derrata 2010_Q3 (ID100710)
 Mobileworld.com
 ARM7 Data Sheet Document Number: ARM DDI 0020C Issued: Dec 1994 Copyright
Advanced RISC Machines Ltd (ARM) 199
 Advanced Compilers and Architectures ARM MMU Overview Leiden University. The
university to discover Thursday, February 24, 2011

Ar mv7

  • 1.
    [Tapez un texte]Page 1 La gestion de la mémoire sous ARMv7 & Androïd OS Préparé par : Lanasri Dihia 09/04/2013
  • 2.
    2 Sommaire Introduction................................................................................................................................................3 Définition d’ARMv7 :..................................................................................................................................3 Ses caractéristiques :..................................................................................................................................3 Familles d’ARM7 :.......................................................................................................................................3 Son architecture :.......................................................................................................................................4 Le jeu d’instruction :...................................................................................................................................4 L’OS Android :.............................................................................................................................................5 La gestion des processus par android ........................................................................................................5 L’organisation de la mémoire :...................................................................................................................5 Les nouveaux aspects de gestion mémoire................................................................................................7 Protection de la mémoire...........................................................................................................................7 Conclusion : ................................................................................................................................................8 Bibliographie :.............................................................................................................................................8
  • 3.
    3 Introduction Aujourd’hui les Smartphones,les iPhones ainsi que les iPads ont envahi notre vie quotidienne. Et de plus en plus leurs performances connaissent une amélioration progressive grâce aux microprocesseurs qui les équipent. Parmi ces microprocesseurs, il y a le ARM qui depuis sa création ne cesse de connaitre de nouvelles améliorations en termes de rapidité, taille ainsi que le mode de gestion de la mémoire. De plus, android a pris une place très importante dans la plupart de ces Smartphones aujourd’hui et qui permet d’installer toute sorte d’applications. Dans notre étude, on va s’intéresser au microprocesseur ARM version 7 et à android comme OS, et on essaiera de comprendre comment se fait-il pour gérer la mémoire vive. Définition d’ARMv7 : L’ARMv7 (Acorn RISC - Reduced Instruction Set Computer - Machine) est un microprocesseur de la famille ARM. Il a une architecture fondé sur les principes de conception RISC de 32 bits, développé par l’entreprise ARM Ltd en 2005. L’entreprise ne fabrique les processeurs mais vend la licence aux fabricants. Il contient des registres généraux de 32 bits, son jeu d’instructions est sur 32 bits. Ses caractéristiques :  Il est de petite taille.  Il consomme peu d’énergie.  une très faible consommation et dissipation thermique.  Il est adapté aux applications embarquées et aux téléphones mobiles ainsi que les tablettes, les serveurs TCP/IP… Figure1 : le processeur ARMv7 Dans ce circuit on utilise le cœur ARMv7 de taille 0,5mm2 en 180nm. Familles d’ARM7 : On peut dire qu’il y a les familles suivantes :  ARMv7 coretex-M : sans protection de la mémoire  ARMv7 coretex-R : utilise la segmentation pour l’organisation de la mémoire
  • 4.
    4  ARMv7 coretex-A: utilise la MMU pour la pagination Son architecture : Le processeur ARMv7 a 3 niveaux de pipeline (Fetch, Decode, Execute) ce qui permet d’accélérer la vitesse d’exécution. Figure2 : Les niveaux de pipeline Il contient 16 registres de taille 32 bits : o 13 registres généraux o Un registre pointeur de pile SP o Un compteur ordinal CO o Registre des indicateurs CPSR Figure3 : architecture d’ARMv7 A cette architecture est rajouté : 4 à 8 K octets de cache, une MMU (Management Memory Unit), des Buffers et un coprocesseur Le jeu d’instruction : Il y a trois jeux d’instructions ARMv7 o ARM: c’est le jeu d’instruction par défaut sur 32 bits. o Thumb : les instructions sont sur 16 bits. ce qui implique un gain en mémoire o Jazelle : Exécution du byte code Java, les instructions sont sur 8 bits. o Thumb-2 : « étend le jeu d'instructions limité 16 bits de Thumb par un des instructions 32 bits additionnelles afin de donner plus de largesse
  • 5.
    5 au jeu d'instruction.Il en résulte un jeu d'instructions de largeur variable. Thumb-2 a pour visée d'atteindre une densité de code proche de Thumb tout en conservant des performances similaires au jeu d'instructions ARM en mémoire 32 bits. » (Wikipédia) L’ARMv7 utilise le big et le little endian pour organiser les mots mémoire ie : que selon la dernière approche il commence par stocker le poids le plus faible du mot mémoire ensuite le poids fort dans la mémoire, et inversement pour le big endian. L’OS Android : Andoid est un système d’exploitation open source utilisant le noyau Linux, il était crée par la PME Andoid en 2003 puis elle était rachetée par Google company en 2005. Il était conçu initialement pour être déployé sur les Smartphones, tablettes… basés sur l’architecture ARM. Il comporte une interface spécifique développée sous Java et les programme sont exécutés via JIT interpréteur. Il utilise toutes les bibliothèques open source C utilisées par Linux ; La gestion des processus par android Android exécute tous ses programmes en processus, en suivant un certain ordre. Sous android un processus est composé de un ou plusieurs threads ce qui permet leurs exécution en parallèle donc ils doivent partager la mémoire entre eux. L’organisation de la mémoire : L’adressage mémoire se fait sur 32 bits se qui donne une mémoire de taille 4GO=232 octet. Les données sont soit sur 8 bits, 16 bits ou de taille d’un mot mémoire =32 bits. La mémoire peut être vue comme une ligne d’octets repliée en mots à partir de l’adresse 0.Deux façons d’organiser la mémoire sachant qu’on réserve 4 octets par mot :
  • 6.
    6 Figure 4 :Organisation de la mémoire vive par ARM7 L’organisation de la mémoire sous ARMv7 -A Avant que l’adresse virtuelle envoyée par le microprocesseur soit reçue par le registre d’adresse mémoire, elle doit être d’abord convertie en adresse physique réelle comprise par la mémoire. Sachant que l’ARMv7-A supporte le principe de pagination alors la MMU (Memory Manager Unit) permet cette conversion en transformant les numéros de pages qui sont logiques en adresse début de cadre de pages physiques reconnus par la mémoire. L’adresse logique=numéro d’hyperPAGE+ numéro de page + déplacement dans la page La MMU assure que chaque processus aura son propre espace réservé en mémoire ; La table des pages L’ARM7-A utilise une table de pagination à deux niveaux ; la taille d’une page peut être : Small pages: 4Kbits (12-bit offsets), Large pages : 64Kbits (16-bit offsets), Sections: 1Mbits (20-bit offsets), Super section: 16Mbits (24-bit offsets). Le nombre d’entrée dans la table de pages ne dépend pas de la taille de la page. Chaque entrée de la table de page de premier niveau contient un pointeur vers une table de 2ème niveau. Donc pour assurer la translation d’une adresse virtuelle en adresse physique il faut : Consulter la 1ère table de pages qui se trouvent en mémoire centrale ; cette table en réalité est décomposée en 2 tables, mais pour savoir à quelle table il faut accéder cela dépend des bits de poids forts. L’adresse de cette table est enregistrée dans l’un des registres suivants : TTBR0 ou TTBR1 L’entré de la 1 ère table contient l’adresse physique de la 2ème table de page. Et l’entrée de la 2èmè table de page représente l’adresse physique réelle de la page en mémoire vive. Si la taille de la page est très grande (section ou super section) il y aura pas deux niveaux de pagination, un seul suffit par contre l’adresse de la section est enregistré dans la 1 ère table. Donc pour trouver l’adresse physique il faut rajouter à l’adresse de début de page le déplacement à l’intérieure de la page.
  • 7.
    7 Les nouveaux aspectsde gestion mémoire Le système android avec l’ARM7 supportent la mémoire virtuelle et la gèrent. Pour réduire le temps d’accès à la mémoire les processeurs ARM7 utilisent des mémoires caches de différents niveaux L1, L2…qui sont intercalées entre le processeur et la mémoire. Mais puisque android et ARM7 sont créés pour être exécutés sur des Smartphones cela veut dire que la taille de la mémoire est réduite et ne peut pas atteindre les 4GO c’est la raison pour laquelle dès que la mémoire n’est plus suffisante andoid opte à fermer quelque applications sachant qu’il laisse plusieurs processus en cours d’exécution en arrière plan ce qui consomme de la mémoire. Figure5: Hiérarchie de la mémoire Protection de la mémoire L’accès à la mémoire est contrôlé selon les permissions définies, que ce soient aux blocs mémoires (pages) ou bien aux tables de pages. Il existe plusieurs modes de permission et chaque page peut avoir un mode différent que les autres. On a :  Execute never: elle n’autorise pas l’accès à la page mémoire pour lire un mot.  Read-only, read/write, no access: These modes can be set for user-mode as well as privileged (kernel) mode.  Non-secure: elle identifie les régions mémoire.  sharable: vérifie si une région est partageable ou non entre les processus
  • 8.
    8 Conclusion : Donc l’ARM7est très puissant mais il y a d’autre version qui seront plus performants comme l’ARMv8 qui sera sur 64 bits. Bibliographie :  Wikipedia  http://encyclopedia2.thefreedictionary.com/ARM7 ;  Les instructions d’ARM en mode utilisateur Anceau 2009 ;  Présentation de la famille de Processeurs ARM Smail Niar IUP3/MASTER1 INEM 2006 ;  Réunion SEN fonctionnement Dpt COMELEC / Groupe SEN 28 Mai 2008  Document Number:ARM DDI 0029E Issued: August 1995 Copyright Advanced RISC Machines Ltd (ARM) 1995  ARM®v7-M Architecture Reference Manual Errata markup Copyright © 2006-2010 ARM Limited. ARM DDI 0403Derrata 2010_Q3 (ID100710)  Mobileworld.com  ARM7 Data Sheet Document Number: ARM DDI 0020C Issued: Dec 1994 Copyright Advanced RISC Machines Ltd (ARM) 199  Advanced Compilers and Architectures ARM MMU Overview Leiden University. The university to discover Thursday, February 24, 2011