inf1600: architecture des micro-ordinateurs - moodle · architecture d'un microprocesseur tp1...

34
Mémoires INF1600: Architecture des micro-ordinateurs Mémoires Mémoire virtuelle 1 Génie informatique et génie logiciel H2013 Mémoire virtuelle Professeur: Giovanni Beltrame [email protected] Local: M-4109

Upload: vongoc

Post on 14-Sep-2018

245 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: INF1600: Architecture des micro-ordinateurs - Moodle · Architecture d'un microprocesseur TP1 Périphériques et architecture Micro-ordinateur et périphériques TP3 Programmation

Mémoires

INF1600: Architecture des micro-ordinateurs

Mémoires

Mémoire virtuelle

1Génie informatique et génie logiciel H2013

Mémoire virtuelle

Professeur: Giovanni Beltrame

[email protected]

Local: M-4109

Page 2: INF1600: Architecture des micro-ordinateurs - Moodle · Architecture d'un microprocesseur TP1 Périphériques et architecture Micro-ordinateur et périphériques TP3 Programmation

Mémoires

Programme du cours

IntroductionOrganisation interne du

microprocesseur

Hierarchie de mémoireTP0

Introduction aux outils

TP2

Architecture du microprocesseur

TP4

Lien entre C++ et assembleur

2Génie informatique et génie logiciel H2013

Programmation en assembleur

Architecture d'un microprocesseur

TP1

Périphériques et architecture

Micro-ordinateuret périphériques

TP3

Programmation en assembleur

TP5

Mémoires

C++ et assembleurThéorieTravaux Pratiques

Page 3: INF1600: Architecture des micro-ordinateurs - Moodle · Architecture d'un microprocesseur TP1 Périphériques et architecture Micro-ordinateur et périphériques TP3 Programmation

Mémoires

Objectifs de la leçon

1

3

2

Décrire le fonctionnement de la mémoire virtuelle

Expliquer le fonctionnement d'une mémoire segmentée

Expliquer le fonctionnement d'une mémoire paginée

3Génie informatique et génie logiciel H2013

5

Décrire l'utilisation d'un Translation Lookaside Buffer

Résumer la hiérarchie de mémoire

Expliquer la hiérarchie de mémoire pour les entrées et les sorties

4

6

Page 4: INF1600: Architecture des micro-ordinateurs - Moodle · Architecture d'un microprocesseur TP1 Périphériques et architecture Micro-ordinateur et périphériques TP3 Programmation

Mémoires

Agenda

• Mémoire virtuelle

• Entrées et sorties avec mémoire virtuelle

1 32

5

4

4Génie informatique et génie logiciel H2013

6• Résumé

Page 5: INF1600: Architecture des micro-ordinateurs - Moodle · Architecture d'un microprocesseur TP1 Périphériques et architecture Micro-ordinateur et périphériques TP3 Programmation

Mémoires

Mémoire virtuelle

- adresser la mémoire de point de vue logique sans considérer la quantité de mémoire physique disponible.

- un processus peut être exécuté dans la mémoire principale sans avoir toutes les instructions et données dans la mémoire en même temps.

- le champ d’adresse des instruction machine contient les adresses virtuelles (l’adresse calculée par le CPU est virtuelle).

5Génie informatique et génie logiciel H2013

virtuelles (l’adresse calculée par le CPU est virtuelle).

● MMU (Memory Management Unit)

– Circuit qui traduit l’adresse virtuelle/logique vers l’adresse physique

– Fait au niveau d’OS , en logiciel, MMU en matériel

Puce du processeur

CPUMMU

Table de

traduction

CacheMémoire

principaleDisqueAdresse

logique

Adresse

physique

Page 6: INF1600: Architecture des micro-ordinateurs - Moodle · Architecture d'un microprocesseur TP1 Périphériques et architecture Micro-ordinateur et périphériques TP3 Programmation

Mémoires

Mémoire virtuelle

● Routine de défaut de page (logiciel)

– Transfert les pages entre mémoire et disque

– Met à jour la table de traduction

● La cache voit l’adresse virtuelle ou physique (physique est plus courante):

● Virtuelle : bonne vitesse mais

même adresse virtuelle pour

1

6Génie informatique et génie logiciel H2013

même adresse virtuelle pour

deux application s aux deux

emplacements différentes.

Source William Stallings – Computer organization and Architecture

Page 7: INF1600: Architecture des micro-ordinateurs - Moodle · Architecture d'un microprocesseur TP1 Périphériques et architecture Micro-ordinateur et périphériques TP3 Programmation

Mémoires

Adresses

- Adresse effective (effective address) – l’adresse calculée par le processeur pendant l’ exécution. Même chose qu’adresse logique

- Adresse logique – une adresse vue a l’ extérieur du CPU

- Adresse effective – a l’ intérieur du CPU

- Adresse virtuelle – adresse générée de l’adresse logique (par MMU).

7Génie informatique et génie logiciel H2013

- Adresse virtuelle – adresse générée de l’adresse logique (par MMU).

- Un ensemble d’adresses virtuelles utilisées par un processus – l’espace

adresse virtuelle.

- Adresse physique – adresse présentée a la mémoire

Page 8: INF1600: Architecture des micro-ordinateurs - Moodle · Architecture d'un microprocesseur TP1 Périphériques et architecture Micro-ordinateur et périphériques TP3 Programmation

Mémoires

Avantage de la mémoire virtuelle● Programmation plus facile

- espace d'adresses est assez grand

● Pas besoin de recouvrement (« overlay » - le programme recouvre son propre code si plus de code est nécessaire – MM fait par le programmeur)

● Pas de fragmentation du programme

- pas de fragmentation externe

● Beaucoup de mémoire pas chère

1

8Génie informatique et génie logiciel H2013

● Beaucoup de mémoire pas chère

- disques beaucoup moins chères que la RAM

● Contrôle d'accès (vérification des privilèges)

- Peut aussi être fait par segmentation, sans nécessairement avoir de mémoire virtuelle – division de l’espace d’adresse en segments.

- Permet de protéger le système contre des bogues dans les programmes, ou contre des attaques intentionnelles i.e. segments protégés « read only » ou « execute only ».

- Le fameux « segmentation fault » -

● Inconvénient

- Mauvaise performance si mauvaise localité

Page 9: INF1600: Architecture des micro-ordinateurs - Moodle · Architecture d'un microprocesseur TP1 Périphériques et architecture Micro-ordinateur et périphériques TP3 Programmation

Mémoires

Allocation memoire pour MM effective

Permutation

9Génie informatique et génie logiciel H2013

Partitionnement (fixe ou dynamique)

Mémoire segmentée

Mémoire paginée

Source William Stallings – Computer organization and Architecture

Page 10: INF1600: Architecture des micro-ordinateurs - Moodle · Architecture d'un microprocesseur TP1 Périphériques et architecture Micro-ordinateur et périphériques TP3 Programmation

Mémoires

Mémoire segmentée

- Mémoire partitionnée en unités de données logiquement connectées

- Adresse virtuelle <segment#, offset>

- Les unités de mémoire sont vues de point de vue usager

10Génie informatique et génie logiciel H2013

Page 11: INF1600: Architecture des micro-ordinateurs - Moodle · Architecture d'un microprocesseur TP1 Périphériques et architecture Micro-ordinateur et périphériques TP3 Programmation

Mémoires

Mémoire segmentée

● Problème: fragmentation externe (déplacement

repetee de segments dans et de la mémoire )

– Trous se forment entre les segments

● Solution: compaction périodique

– Enlever les trous

Mémoire principale

… FFF

Adr.Adr.

Segment 5

Segment 1

Vide

0

0

2

11Génie informatique et génie logiciel H2013

– Enlever les trous

– En déplaçant les segments Adr.physique

… 000

Adr.virtuelle Segment 6

Segment 9

Segment 3

Vide

0

0

0

0

Page 12: INF1600: Architecture des micro-ordinateurs - Moodle · Architecture d'un microprocesseur TP1 Périphériques et architecture Micro-ordinateur et périphériques TP3 Programmation

Mémoires

Mémoire segmentée

2

12Génie informatique et génie logiciel H2013

Page 13: INF1600: Architecture des micro-ordinateurs - Moodle · Architecture d'un microprocesseur TP1 Périphériques et architecture Micro-ordinateur et périphériques TP3 Programmation

Mémoires

Mémoire paginée- Mémoire partitionnée en

morceaux ayant la même taille (secteurs - frames)

- Processus divisé en morceaux ayant une taille (pages).

13Génie informatique et génie logiciel H2013

- Les morceaux de programme (pages) peuvent être affectées aux secteurs de mémoire logiquement connectées.

- La liste de secteurs disponibles gérée par OS

avant après

Source William Stallings – Computer organization and Architecture

Page 14: INF1600: Architecture des micro-ordinateurs - Moodle · Architecture d'un microprocesseur TP1 Périphériques et architecture Micro-ordinateur et périphériques TP3 Programmation

Mémoires

14Génie informatique et génie logiciel H2013

Source William Stallings – Computer organization and Architecture

Page 15: INF1600: Architecture des micro-ordinateurs - Moodle · Architecture d'un microprocesseur TP1 Périphériques et architecture Micro-ordinateur et périphériques TP3 Programmation

Mémoires

Mémoire paginée● Le MMU gère la traduction de virtuelle à physique

– Interruption lorsque la traduction n’existe pas

● Les autres sont gérées par l’OS

Mémoire secondaire(disque)

Mémoire virtuelle

Pages

« Pages »(plusieurs secteurs

pour avoir la même

taille qu’une page)

3

15Génie informatique et génie logiciel H2013

● Problème:Fragmentation interne

– Espaces vide à la fin

des pages

Mémoire physique(principale)

Page 0

Page 1

Page 2

Page n – 1

Page 16: INF1600: Architecture des micro-ordinateurs - Moodle · Architecture d'un microprocesseur TP1 Périphériques et architecture Micro-ordinateur et périphériques TP3 Programmation

Mémoires

Exemple• Sur l’IA-32

• Adresse logique « seg⟨15..0⟩ # offset⟨31..0⟩ »

• L’« offset » est l’adresse que vous voyez dans vos programmes

• Adresse linéaire « TableSegments[seg] + offset »

• TableSegments[] = 0 sous Windows et Linux

• Adresse physique

• M[M[CR3 # linéaire⟨31..22⟩ # 00] # linéaire⟨21..12⟩ # 00] # linéaire⟨11..0⟩

31 22 21 12 11 0

Linear address

3

16Génie informatique et génie logiciel H2013

Directory Table Offset

31 22 21 12 11 0

Directory entry

Page directory

(1024 entées)

Page table entry

Page table

(1024 entrées

par table) Physical address

4kB physical page

CR3 (page directory base register)

Page 17: INF1600: Architecture des micro-ordinateurs - Moodle · Architecture d'un microprocesseur TP1 Périphériques et architecture Micro-ordinateur et périphériques TP3 Programmation

Mémoires

17Génie informatique et génie logiciel H2013

Source www.wikipedia.org

Page 18: INF1600: Architecture des micro-ordinateurs - Moodle · Architecture d'un microprocesseur TP1 Périphériques et architecture Micro-ordinateur et périphériques TP3 Programmation

Mémoires

Placement et remplacement de pages

● Aussi flexible que cache associative

● Moins de complexité, plus de mémoire

‒ Complexité de recherche associative remplacée par une table

‒ La table peut être relativement grosse

● Problème de taille de table

3

18Génie informatique et génie logiciel H2013

● Problème de taille de table

‒ Réduction avec table à plusieurs niveaux (comme exemple de l’IA-32)

● Problème de temps de traduction

‒ L’accès à la table demande des lectures mémoires

‒ Utilisation d’un tampon de traduction

‒ TLB – Translation Lookaside Buffer

‒ Genre de cache pour les traductions d’adresses

‒ Complètement associatif

Page 19: INF1600: Architecture des micro-ordinateurs - Moodle · Architecture d'un microprocesseur TP1 Périphériques et architecture Micro-ordinateur et périphériques TP3 Programmation

Mémoires

Page fault (défaut de page)

-le processus essaye d’ accéder une adresse virtuelle d’une page qui n’existe pas dans la mémoire physique

-si la page existe sur le disque

- le processus est suspendu

- si nécessaire libérer des pages

19Génie informatique et génie logiciel H2013

- si nécessaire libérer des pages

- la page dans la mémoire et résumer l’ exécution

-si la page n’existe pas sur le disque

- erreur ou une autre page et résumer l’ exécution

Page 20: INF1600: Architecture des micro-ordinateurs - Moodle · Architecture d'un microprocesseur TP1 Périphériques et architecture Micro-ordinateur et périphériques TP3 Programmation

Mémoires

TLB

# page virt. mot

Recherche associativedu # page

dans la TLB

# page phys. mot

Adresse virtuelle (CPU) Adresse physique

TLB

4

20Génie informatique et génie logiciel H2013

dans la TLB

Dans

TLB?

non

oui

Accès completà la table de pages

en mémoireprincipale

# pagevirtuelle

# pagephysique

Bits decontrôle:droits d’accès…

Page 21: INF1600: Architecture des micro-ordinateurs - Moodle · Architecture d'un microprocesseur TP1 Périphériques et architecture Micro-ordinateur et périphériques TP3 Programmation

Mémoires

#Bloc (#page) #Mot

Table de traduction

#Bloc (#seg) #Mot

Table de traduction

Source : Hennessy et Patterson – Computer Architecture A quantitative approach

21Génie informatique et génie logiciel H2013

Paginé

(blocs de taille fixe)

#Mot#Bloc (#page)

Adresse primaire

Segmenté

(blocs de taille variable)

#Mot

Adr. de base du segment

+

Adresse primaire

Page 22: INF1600: Architecture des micro-ordinateurs - Moodle · Architecture d'un microprocesseur TP1 Périphériques et architecture Micro-ordinateur et périphériques TP3 Programmation

Mémoires

Mémoire paginée vs mémoire segmentée

Paginée Segmentée

Mots/page Un Deux (segment et offset)

VisibilitéPas visible pour le

programmeur

Peut être visible pour le

programmeur

Remplacement Facile (toutes les pages ont la Difficile (trouver des blocs

contigües, taille variable, parties

22Génie informatique et génie logiciel H2013

Remplacement

blocs

Facile (toutes les pages ont la

même taille)contigües, taille variable, parties

mémoire principale non- utilisées)

Utilisation

inefficace de la

memoire

Fragmentation interne

(portions page non- utilisées)

Fragmentation externe (parties

mémoire principale non- utilisées)

Trafic disque

efficace

Oui Pas toujours (dans le cas de petits

segments on peut transférer

seulement quelques octets)

Source : Hennessy et Patterson – Computer Architecture A quantitative approach

Page 23: INF1600: Architecture des micro-ordinateurs - Moodle · Architecture d'un microprocesseur TP1 Périphériques et architecture Micro-ordinateur et périphériques TP3 Programmation

Mémoires

Sommaire de la hiérarchie

Vérifie TLB Vérifie cache

Dans

Adresse virtuelle

non Dans

Vérifietable de pages

Dansoui non

« page fault » :OS lit disque et

place en mémoire

CPU Cache Mémoire principale Mémoire secondaire(disque dur)

5

23Génie informatique et génie logiciel H2013

DansTLB?

non

Génère adressephysique

Génère adressephysique

Ajoute dansTLB

Danscache?

oui

Danstable?

non oui

oui non

Lit mémoire et place dans cache

Lit valeurde la cache

Met à jour cacheet table de pages

Page 24: INF1600: Architecture des micro-ordinateurs - Moodle · Architecture d'un microprocesseur TP1 Périphériques et architecture Micro-ordinateur et périphériques TP3 Programmation

Mémoires

Agenda

• Mémoire virtuelle

• Entrées et sorties avec mémoire virtuelle

1 32

5

4

24Génie informatique et génie logiciel H2013

6• Résumé

Page 25: INF1600: Architecture des micro-ordinateurs - Moodle · Architecture d'un microprocesseur TP1 Périphériques et architecture Micro-ordinateur et périphériques TP3 Programmation

Mémoires

Hiérarchie et entrées/sorties

● La cache est « transparente » et fait les accès mémoires

CPU CacheMémoire

Principale

DMA d’E/S

Disque

Autres

périphériques

E/S

programmées

Adresses non

« cachable »

6

25Génie informatique et génie logiciel H2013

● La cache est « transparente » et fait les accès mémoires

● La mémoire principale ne fait pas les accès disque

‒ CPU ordonne les accès

‒ En meilleur cas les données sont transmises par DMA

● DMA – Direct Memory Access

‒ CPU spécifie l’adresse et la taille (compteur)

‒ DMA place les données, incrémente l’adresse, décrémente le compteur

‒ Interruption lorsque compteur tombe à zéro

‒ Doit indiquer à la cache les modifications

Page 26: INF1600: Architecture des micro-ordinateurs - Moodle · Architecture d'un microprocesseur TP1 Périphériques et architecture Micro-ordinateur et périphériques TP3 Programmation

Mémoires

Agenda

• Mémoire virtuelle

• Entrées et sorties avec mémoire virtuelle

1 32

5

4

26Génie informatique et génie logiciel H2013

6• Résumé

Page 27: INF1600: Architecture des micro-ordinateurs - Moodle · Architecture d'un microprocesseur TP1 Périphériques et architecture Micro-ordinateur et périphériques TP3 Programmation

Mémoires

Sommaire Partie 3 : Memoires

● Mémoires (SRAM, DRAM, etc.)● Hiérarchie de mémoire● Caches

– Politiques de lecture– Politiques d'écriture

Remplacement

27Génie informatique et génie logiciel H2013

– Remplacement– Performances

● Mémoire virtuelle– Segments– Pagination– TLB– Entrées/Sorties

Page 28: INF1600: Architecture des micro-ordinateurs - Moodle · Architecture d'un microprocesseur TP1 Périphériques et architecture Micro-ordinateur et périphériques TP3 Programmation

Mémoires

● Un ordinateur possède une mémoire cache de 512 Kio. Chaque

bloc (ligne) en cache occupe 64 octets. Cette cache est

associative par ensembles de 4. La stratégie de remplacement

est LRU. En cas d’écriture, le bloc est copié en cache s’il n'y est

pas déjà (write allocate), puis éventuellement réécrit en mémoire

centrale avant d’être enlevé (write-back). La cache voit les

adresses physiques.

Exercice 1 : Cache

28Génie informatique et génie logiciel H2013

adresses physiques.

● Structure de l'adresse

– 19 bits pour adresser 512Kio

– 6 bits pour chaque bloc => 13 bits pour identifier la ligne

– 4 voies => 11 bit pour l'ensemble

– 15 bits pour le tag | 11 bits pour l'ensemble | 6 bits pour l'octe

Page 29: INF1600: Architecture des micro-ordinateurs - Moodle · Architecture d'un microprocesseur TP1 Périphériques et architecture Micro-ordinateur et périphériques TP3 Programmation

Mémoires

● Les accès suivants sont effectués (adresses physiques)alors que la cache est initialement vide : W0x020203,W0x200201, R0x10023D, R0x020211, W0x020404,W0x08022C, R0x180209, R0x100202, R0x20021A, R0x10022F

– Décomposez l’adresse tel que répondu dans la diapo

Exercice 1 : Cache

29Génie informatique et génie logiciel H2013

– Décomposez l’adresse tel que répondu dans la diapoprécédente

• W 1|8|03 W 10|8|01

• R 8|8|3D R 1|8|11

• W 1|10|04 W 4|8|2C

• R C|8|09 R 8|8|02

• R 10|8|1A R 8|8|2F

Page 30: INF1600: Architecture des micro-ordinateurs - Moodle · Architecture d'un microprocesseur TP1 Périphériques et architecture Micro-ordinateur et périphériques TP3 Programmation

Mémoires

● W0x020203, W0x200201, R0x10023D, R0x020211, W0x020404,W0x08022C, R0x180209, R0x100202, R0x20021A, R0x10022F

– Dites si c’est un succès d’accès en cache et indiquez s’il y a eulecture et/ou écriture en mémoire principale.

– Quel bloc de cache sera utilisé ? Étiquette (tag) ?

– Le contenu du bloc != de la mémoire principale?W 1|8|03 W 10|8|01 R 8|8|3D R 1|8|11 W 1|10|04 W 4|8|2C R C|8|09 R 8|8|02 R 10|8|1A R 8|8|2F

Exercice 1 : Cache

30Génie informatique et génie logiciel H2013

W 1|8|03 W 10|8|01 R 8|8|3D R 1|8|11 W 1|10|04 W 4|8|2C R C|8|09 R 8|8|02 R 10|8|1A R 8|8|2F

Succ. oui oui oui

Mem R R R R R W R W R FIN

Ens8 1x

10x

8

x

4x

C

.

10

.

10

C8

4x

Ens10 1x 1x

Page 31: INF1600: Architecture des micro-ordinateurs - Moodle · Architecture d'un microprocesseur TP1 Périphériques et architecture Micro-ordinateur et périphériques TP3 Programmation

Mémoires

● En supposant que le temps d’un accès en cache (lecture ou

écriture) est de 1ns et qu’une copie d’une ligne entre la mémoire

principale et la cache est de 10ns quel est le temps d’accès effectif

pour ces accès ?Succ. oui oui oui

Mem R R R R R W R W R FIN

Exercice 1 : Cache

31Génie informatique et génie logiciel H2013

3 succès, 9 copies (7 lectures, 2 écriture) : 9

3*1ns + 9*10ns = 93ns pour 10 accès = 9,3ns moyenne

FIN

Ens8 1x

10x

8

x

4x

C

.

10

.

10C84x

Ens10 1x 1x

Page 32: INF1600: Architecture des micro-ordinateurs - Moodle · Architecture d'un microprocesseur TP1 Périphériques et architecture Micro-ordinateur et périphériques TP3 Programmation

Mémoires

● Un programme accède séquentiellement aux 7 adresses suivantes :

1)0x00012340, 2)0x00023400, 3)0x00012800, 4)0x00410000, 5)0x00401000,

6)0x00400100, 7) 0x00400010. Ces données ne se trouvent pas initialement en

mémoire physique, mais les tables nécessaires à la traduction de ces adresses

sont déjà allouées. Le système détermine qu’un bloc de mémoire physique à

partir de l’adresse 0x00010000 pourrait être libéré au besoin

Exercice 2 : Mémoire virtuelle

31 22 21 12 11 0

Linear address

32Génie informatique et génie logiciel H2013

● Donnez les numéros desaccès qui causent des défauts de page1, 2, 4, 5, 6

Directory Table Offset

31 22 21 12 11 0

Directory entry

Page directory

(1024 entées)

Page table entry

Page table

(1024 entrées

par table) Physical address

4kB physical page

CR3 (page directory base register)

Page 33: INF1600: Architecture des micro-ordinateurs - Moodle · Architecture d'un microprocesseur TP1 Périphériques et architecture Micro-ordinateur et périphériques TP3 Programmation

Mémoires

● Un programme accède séquentiellement aux 7 adresses suivantes :

1)0x00012340, 2)0x00023400, 3)0x00012800, 4)0x00410000, 5)0x00401000,

6)0x00400100, 7) 0x00400010.

● Montrez l’état des tables de traduction d’adresses après ces accès (quelles

entrées seront utilisées et quelle sera la page physique associée à l’entrée).

● 0

Exercice 2 : Mémoire virtuelle

31 22 21 12 11 0

Linear address

33Génie informatique et génie logiciel H2013

● 0

– 0x12→0x10

– 0x23→0x11

● 1

– 0→0x14

– 1→0x13

– 0x10→0x12

Directory Table Offset

31 22 21 12 11 0

Directory entry

Page directory

(1024 entées)

Page table entry

Page table

(1024 entrées

par table) Physical address

4kB physical page

CR3 (page directory base register)

Page 34: INF1600: Architecture des micro-ordinateurs - Moodle · Architecture d'un microprocesseur TP1 Périphériques et architecture Micro-ordinateur et périphériques TP3 Programmation

Mémoires

Agenda

• Mémoire virtuelle

• Entrées et sorties avec mémoire virtuelle

1 32

5

4

34Génie informatique et génie logiciel H2013

6• Résumé