ar mv7

8
La gestion de la mémoire sous ARMv7 & Androïd OS Préparé par : Lanasri Dihia 09/04/2013

Upload: dihiaselma

Post on 08-Aug-2015

21 views

Category:

Devices & Hardware


0 download

TRANSCRIPT

Page 1: Ar mv7

[Tapez un texte] Page 1

La gestion de la mémoire sous ARMv7

& Androïd OS

Préparé par : Lanasri Dihia

09/04/2013

Page 2: Ar mv7

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

Page 3: Ar mv7

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

Page 4: Ar mv7

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

Page 5: Ar mv7

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=232octet. 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 :

Page 6: Ar mv7

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.

Page 7: Ar mv7

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

Page 8: Ar mv7

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