39
Mémoires embarquées pour les systèmes monopuces - 1 Frédéric ROUSSEAU : TIMA Mémoires embarquées pour les systèmes monopuces Frédéric ROUSSEAU TIMA 46 Avenue Félix Viallet 38031 Grenoble Cedex France Tel: +33 476 57 46 41 Fax: +33 476 47 38 14 Email: [email protected]

Mémoires embarquées pour les systèmes monopuces - 1 Frédéric ROUSSEAU : TIMA Mémoires embarquées pour les systèmes monopuces Frédéric ROUSSEAU TIMA 46

Embed Size (px)

Citation preview

Page 1: Mémoires embarquées pour les systèmes monopuces - 1 Frédéric ROUSSEAU : TIMA Mémoires embarquées pour les systèmes monopuces Frédéric ROUSSEAU TIMA 46

Mémoires embarquées pour les systèmes monopuces - 1

Frédéric ROUSSEAU : TIMA

Mémoires embarquées pour les systèmes monopuces

Frédéric ROUSSEAU

TIMA 46 Avenue Félix Viallet38031 Grenoble Cedex France

Tel: +33 476 57 46 41Fax: +33 476 47 38 14

Email: [email protected]

Page 2: Mémoires embarquées pour les systèmes monopuces - 1 Frédéric ROUSSEAU : TIMA Mémoires embarquées pour les systèmes monopuces Frédéric ROUSSEAU TIMA 46

Mémoires embarquées pour les systèmes monopuces - 2

Frédéric ROUSSEAU : TIMA

Intégration technologique

• Historique [ITRS ’00]

LogicSRAM

Flashe-DRAM

CMOS RFFPGA

MEMSFRAM

Electro-opticalChemical Sensors

Electro-biological

98 00 02 04 06 08 10 12

Page 3: Mémoires embarquées pour les systèmes monopuces - 1 Frédéric ROUSSEAU : TIMA Mémoires embarquées pour les systèmes monopuces Frédéric ROUSSEAU TIMA 46

Mémoires embarquées pour les systèmes monopuces - 3

Frédéric ROUSSEAU : TIMA

Intégration technologique

• Complexité technologique [ITRS ’00]

Surcoûts en niveaux de masque

Logique

SRAM

Flash

DRAM

CMOS RF

FPGA

MEMS

FRAM

Capt. chimiques

Electro-optique

Log

ique

SRA

M

Fla

sh

DR

AM

CM

OS

RF

FP

GA

ME

MS

FR

AM

Cap

t. C

h.

Ele

c.-o

pt.

0

0

0

0

0

0

0

0

0

0

1-2

4

4-5

3-5

2

2-10

4-5

2-6

5-8

3-4

3-4

5-9

2-4

3-12

7-14

6-11

9-13

4-16

7-18

4-8

7-10

4-12

6-7

5-11

8-12

5-15

7-10

6-11

9-13

6-15

2-3

6-10

9-12

6-14

7-9 9-15

6-9

4-6

7-9

3-7

6-9

3-4

6-10

3-7 5-7

Page 4: Mémoires embarquées pour les systèmes monopuces - 1 Frédéric ROUSSEAU : TIMA Mémoires embarquées pour les systèmes monopuces Frédéric ROUSSEAU TIMA 46

Mémoires embarquées pour les systèmes monopuces - 4

Frédéric ROUSSEAU : TIMA

Utilisation de la surface de silicium

• Evolution de l ’utilisation surfacique [ITRS ’00]

Area Usage

0%20%40%60%80%

100%

1999 0,18µm

2002 0,13µm

2005 0,1 µm 2008 70 nm 2011 50 nm 2014 35 nm

MemReusedSpecific

Page 5: Mémoires embarquées pour les systèmes monopuces - 1 Frédéric ROUSSEAU : TIMA Mémoires embarquées pour les systèmes monopuces Frédéric ROUSSEAU TIMA 46

Mémoires embarquées pour les systèmes monopuces - 5

Frédéric ROUSSEAU : TIMA

Plan de l'exposé

• Quelles mémoires pour les systèmes multiprocesseurs monopuces ?

• Fonctionnement des (S)DRAMs– Fonctionnement général

– Modes d'accès rapides

– SDRAM et autres

• Améliorations des performances des SoC en utilisant les performances des mémoires– Amélioration de la qualité du code des applications

– Relation Mémoire-Architecture-Compilation-Système d'exploitation

• Et les caches ?

• Conclusion

• Bibliographie

Page 6: Mémoires embarquées pour les systèmes monopuces - 1 Frédéric ROUSSEAU : TIMA Mémoires embarquées pour les systèmes monopuces Frédéric ROUSSEAU TIMA 46

Mémoires embarquées pour les systèmes monopuces - 6

Frédéric ROUSSEAU : TIMA

Plan de l'exposé

• Quelles mémoires pour les systèmes multiprocesseurs monopuces ?

• Fonctionnement des (S)DRAMs– Fonctionnement général

– Modes d'accès rapides

– SDRAM et autres

• Améliorations des performances des SoC en utilisant les performances des mémoires– Amélioration de la qualité du code des applications

– Relation Mémoire-Architecture-Compilation-Système d'exploitation

• Et les caches ?

• Conclusion

• Bibliographie

Page 7: Mémoires embarquées pour les systèmes monopuces - 1 Frédéric ROUSSEAU : TIMA Mémoires embarquées pour les systèmes monopuces Frédéric ROUSSEAU TIMA 46

Mémoires embarquées pour les systèmes monopuces - 7

Frédéric ROUSSEAU : TIMA

Conception des systèmes multiprocesseurs monopuces

?

F2F4

F1F3

ARM7core

réseau de communication

interfacede comm.

interfacede comm.

mémoire

contrôleur

68Kcore

mémoire

contrôleur

adaptateurmémoire

Mémoirepartagée

Quelle architecture mémoire (partagée, distribuée) ?Combien de mémoires ?De quel type ?Quelles données en mémoire partagée ?A quelles adresses les placer ?Performances (estimations) ?Modifications du code ?Génération des interfaces ?

Page 8: Mémoires embarquées pour les systèmes monopuces - 1 Frédéric ROUSSEAU : TIMA Mémoires embarquées pour les systèmes monopuces Frédéric ROUSSEAU TIMA 46

Mémoires embarquées pour les systèmes monopuces - 8

Frédéric ROUSSEAU : TIMA

La mémoire aux différents niveaux d'abstraction

• niveau système– Mémorisation : messages, variables

locales, variables globales.

F2F4

F1F3VG

M

F4 F2

F1F3

Communication

Mémoire

• niveau macro-architecture– Mémorisation : blocs mémoire

explicites, protocoles pas entièrement définis.

ARM7core

réseau de communication

interfacede comm.

interfacede comm.

mémoire

contrôleur

68Kcore

mémoire

contrôleur

adaptateurmémoire

Mémoirepartagée

• niveau micro-architecture– Mémorisation : blocs mémoires entièrement

définis (SDRAM, …), adaptateur mémoire synthétisé, protocoles mis en œuvre

Page 9: Mémoires embarquées pour les systèmes monopuces - 1 Frédéric ROUSSEAU : TIMA Mémoires embarquées pour les systèmes monopuces Frédéric ROUSSEAU TIMA 46

Mémoires embarquées pour les systèmes monopuces - 9

Frédéric ROUSSEAU : TIMA

Arbre de classification deséléments de mémorisation

Arbre de classificationdes éléments de mémorisation

Read-only(ROM, PLA)

Read/writewrite-few(PROM, EEPROM)

volatile non-volatile(flash)

adressageséquentiel

accèsaléatoire

FIFO LIFO cache adressagedirect

Page 10: Mémoires embarquées pour les systèmes monopuces - 1 Frédéric ROUSSEAU : TIMA Mémoires embarquées pour les systèmes monopuces Frédéric ROUSSEAU TIMA 46

Mémoires embarquées pour les systèmes monopuces - 10

Frédéric ROUSSEAU : TIMA

Arbre de classification destypes de mémoires

Arbre de classificationdes types de mémoire

double port multi-portSimple port

RAM registres

statique dynamiqueSDRAM

Page 11: Mémoires embarquées pour les systèmes monopuces - 1 Frédéric ROUSSEAU : TIMA Mémoires embarquées pour les systèmes monopuces Frédéric ROUSSEAU TIMA 46

Mémoires embarquées pour les systèmes monopuces - 11

Frédéric ROUSSEAU : TIMA

Les mémoires dans les SoC

• Dans un SoC, on trouve– ROM, EEPROM (code de l'application, …)

– SRAM (Cache, …)

– DRAM, SDRAM (la plus courante si besoin de beaucoup de mémoire)

– Flash (conserve la donnée, accès lent 66 MHz)

– Scratch PAD (SRAM embarquée)

sourcehttp://developer.intel.com/design/flash/

Page 12: Mémoires embarquées pour les systèmes monopuces - 1 Frédéric ROUSSEAU : TIMA Mémoires embarquées pour les systèmes monopuces Frédéric ROUSSEAU TIMA 46

Mémoires embarquées pour les systèmes monopuces - 12

Frédéric ROUSSEAU : TIMA

Nécessité d'une hiérarchie mémoire

• Goulot d'étranglement– Taille de la mémoire principale

• Plusieurs centaines de Mbits

– Localisation de la mémoire principale• off chip jusqu'à maintenant, donc lent

• Solution pour améliorer les performances– Hiérarchie mémoire (mémoires cache)

– Embarquer la mémoire sur le SoC

Page 13: Mémoires embarquées pour les systèmes monopuces - 1 Frédéric ROUSSEAU : TIMA Mémoires embarquées pour les systèmes monopuces Frédéric ROUSSEAU TIMA 46

Mémoires embarquées pour les systèmes monopuces - 13

Frédéric ROUSSEAU : TIMA

Hiérarchie mémoire

• plus petit = plus rapide– Décodage adresse + rapide

– Sortance plus faible

processeur

registresCache L1 Cache L2

Mémoireprincipale disque

16 Ko - 64 Ko

SRAMdouble port

1 ns

512 Ko - 4 Mo

S(D)RAMsimple port

5 ns

32 Mo - 512 Mo

SDRAMsimple port

50 ns

20 Go

10 ms

off-chip

Page 14: Mémoires embarquées pour les systèmes monopuces - 1 Frédéric ROUSSEAU : TIMA Mémoires embarquées pour les systèmes monopuces Frédéric ROUSSEAU TIMA 46

Mémoires embarquées pour les systèmes monopuces - 14

Frédéric ROUSSEAU : TIMA

Intérêts des mémoires embarquées dans les SoC

• Réduction des coûts– taille adaptée aux besoins de l'application, peu de logique périphérique

• Réduction de la puissance dissipée– moins de capacités off-chip

– désactivation des bancs mémoires inutilisés, optimisation du rafraîchissement

– On réduit le coût global (packaging, fiabilité)

• Amélioration des performances– mémoire plus proche du processeur (temps de propagation réduit)

– bus rapide

• Fiabilité– nécessite d'intégrer un "embedded test and repair", redondance +

mécanisme de test

Page 15: Mémoires embarquées pour les systèmes monopuces - 1 Frédéric ROUSSEAU : TIMA Mémoires embarquées pour les systèmes monopuces Frédéric ROUSSEAU TIMA 46

Mémoires embarquées pour les systèmes monopuces - 15

Frédéric ROUSSEAU : TIMA

Plan de l'exposé

• Quelles mémoires pour les systèmes multiprocesseurs monopuces ?

• Fonctionnement des (S)DRAMs– Fonctionnement général

– Modes d'accès rapides

– SDRAM et autres

• Améliorations des performances des SoC en utilisant les performances des mémoires– Amélioration de la qualité du code des applications

– Relation Mémoire-Architecture-Compilation-Système d'exploitation

• Et les caches ?

• Conclusion

• Bibliographie

Page 16: Mémoires embarquées pour les systèmes monopuces - 1 Frédéric ROUSSEAU : TIMA Mémoires embarquées pour les systèmes monopuces Frédéric ROUSSEAU TIMA 46

Mémoires embarquées pour les systèmes monopuces - 16

Frédéric ROUSSEAU : TIMA

Architecture DRAM

• DRAM simple port, 220 mots, matrice (carrée) de 210 lignes et 210 colonnes

Bus d’adresses

Adresse ligne (10)

210

210

Bus dedonnées

Tampon

Décodeurligne

Adresse colonne (10) Décodeur colonne

1 page

Page 17: Mémoires embarquées pour les systèmes monopuces - 1 Frédéric ROUSSEAU : TIMA Mémoires embarquées pour les systèmes monopuces Frédéric ROUSSEAU TIMA 46

Mémoires embarquées pour les systèmes monopuces - 17

Frédéric ROUSSEAU : TIMA

Architecture DRAM Micron

Page 18: Mémoires embarquées pour les systèmes monopuces - 1 Frédéric ROUSSEAU : TIMA Mémoires embarquées pour les systèmes monopuces Frédéric ROUSSEAU TIMA 46

Mémoires embarquées pour les systèmes monopuces - 18

Frédéric ROUSSEAU : TIMA

Cycle de lecture d'une DRAM

Bus d’adresse

Adresse ligne(10)

210

210

Bus dedonnées

Tampon

Décodeur ligne

Adresse colonne (10)Décodeur colonne

1 page

• Placer l'adresse de ligne sur le bus d'adresses• Valider en activant le signal RAS, ce qui

sélectionne la ligne=> On recopie toute la ligne dans le tampon• Placer l'adresse de colonne sur le bus d'adresses• Valider en activant le signal CAS, ce qui

sélectionne la colonne dans le tampon=> Quand le CAS est stable, la donnée est placée sur

le bus de données• Désactiver RAS et CAS pour commencer un nouveau cycle

Page 19: Mémoires embarquées pour les systèmes monopuces - 1 Frédéric ROUSSEAU : TIMA Mémoires embarquées pour les systèmes monopuces Frédéric ROUSSEAU TIMA 46

Mémoires embarquées pour les systèmes monopuces - 19

Frédéric ROUSSEAU : TIMA

Chronogrammes d'un cycle d'accès

Page 20: Mémoires embarquées pour les systèmes monopuces - 1 Frédéric ROUSSEAU : TIMA Mémoires embarquées pour les systèmes monopuces Frédéric ROUSSEAU TIMA 46

Mémoires embarquées pour les systèmes monopuces - 20

Frédéric ROUSSEAU : TIMA

Modèle temporel d'accès mémoire

Adresse colonne

Etape1 :Décodage de ligne

Etape 2 :décodage de colonne

Etape 3 :Préchargement

Adresse ligne

Data

Typique MICRON 256 Mbitsà 133 MHz

Etape 1 : 3 cycles Etape 1 : 2 cyclesEtape 2 : 1 cycle Etape 2 : 1 cycleEtape 3 : 3 cycles Etape 3 : 2 cycles

Page 21: Mémoires embarquées pour les systèmes monopuces - 1 Frédéric ROUSSEAU : TIMA Mémoires embarquées pour les systèmes monopuces Frédéric ROUSSEAU TIMA 46

Mémoires embarquées pour les systèmes monopuces - 21

Frédéric ROUSSEAU : TIMA

Des modes d'accès plus performants

• FPM (Fast Page Mode)– Pour accéder à plusieurs données sur la même page, il suffit d'indiquer la

ligne (une seule fois), puis les adresses des colonnes. La donnée est disponible tant que CAS est active (5 - 3 - 3 - 3).

Page 22: Mémoires embarquées pour les systèmes monopuces - 1 Frédéric ROUSSEAU : TIMA Mémoires embarquées pour les systèmes monopuces Frédéric ROUSSEAU TIMA 46

Mémoires embarquées pour les systèmes monopuces - 22

Frédéric ROUSSEAU : TIMA

Des modes d'accès plus performants

• EDO (Extended Data-Out)– La donnée reste valide même si le signal CAS n'est plus actif (ce qui

permet au p de commencer autre chose sans se préoccuper de la validité de la donnée qui n'a pas été lue immédiatement) (5 - 2 - 2 - 2)

Page 23: Mémoires embarquées pour les systèmes monopuces - 1 Frédéric ROUSSEAU : TIMA Mémoires embarquées pour les systèmes monopuces Frédéric ROUSSEAU TIMA 46

Mémoires embarquées pour les systèmes monopuces - 23

Frédéric ROUSSEAU : TIMA

Des modes d'accès plus performants

• BEDO (Burst EDO)– L'idée est de ne plus adresser individuellement chaque donnée, mais de

donner l'adresse de départ et le nombre de données à lire (mode rafale) (5 - 1 - 1- 1)

ligne Col1

Data1

RAS

CAS

Adresses

Données Data2 Data3 Data4

pas supporté par Intel

Page 24: Mémoires embarquées pour les systèmes monopuces - 1 Frédéric ROUSSEAU : TIMA Mémoires embarquées pour les systèmes monopuces Frédéric ROUSSEAU TIMA 46

Mémoires embarquées pour les systèmes monopuces - 24

Frédéric ROUSSEAU : TIMA

Des modes d'accès plus performants

• BEDO Pipeliné

– L’idée est d’ajouter une latch en entrée, ce qui permet de positionner l’adresse suivante pendant la lecture (ou l’écriture) des données précédentes.

• Modifier la nature de la mémoire– SDRAM (DRAM Synchrone)

– DDR SDRAM

– RAMBUS DRAM

Page 25: Mémoires embarquées pour les systèmes monopuces - 1 Frédéric ROUSSEAU : TIMA Mémoires embarquées pour les systèmes monopuces Frédéric ROUSSEAU TIMA 46

Mémoires embarquées pour les systèmes monopuces - 25

Frédéric ROUSSEAU : TIMA

DRAM Synchrone (SDRAM)

• Les DRAMs étaient contrôlées par le processeur de façon asynchrone

• Une SDRAM est gérée par une horloge. – Les signaux d’entrées sont latches (adresses, données, signaux de

contrôle). Le temps de réponse de la mémoire étant connu, le processeur peut effectuer d’autres tâches en attendant la réponse

• Une SDRAM permet des accès en rafale à la vitesse de l'horloge (limitée à 100 ou 133 MHz) (5 - 1- 1 - 1)

• Topologie à base de bancs mémoire– Les données peuvent alternativement être lues (ou écrites) dans les

différents bancs

Page 26: Mémoires embarquées pour les systèmes monopuces - 1 Frédéric ROUSSEAU : TIMA Mémoires embarquées pour les systèmes monopuces Frédéric ROUSSEAU TIMA 46

Mémoires embarquées pour les systèmes monopuces - 26

Frédéric ROUSSEAU : TIMA

Architecture SDRAM : IBM 16 Mbits

Page 27: Mémoires embarquées pour les systèmes monopuces - 1 Frédéric ROUSSEAU : TIMA Mémoires embarquées pour les systèmes monopuces Frédéric ROUSSEAU TIMA 46

Mémoires embarquées pour les systèmes monopuces - 27

Frédéric ROUSSEAU : TIMA

Cycle de lecture d'une SDRAM

Page 28: Mémoires embarquées pour les systèmes monopuces - 1 Frédéric ROUSSEAU : TIMA Mémoires embarquées pour les systèmes monopuces Frédéric ROUSSEAU TIMA 46

Mémoires embarquées pour les systèmes monopuces - 28

Frédéric ROUSSEAU : TIMA

DDR SDRAM

• DDR SDRAM (Double Data Rate)– identique à la SDRAM, mais les données sont transmises sur front montant

et sur front descendant, ce qui augmente par 2 la bande passante.

Page 29: Mémoires embarquées pour les systèmes monopuces - 1 Frédéric ROUSSEAU : TIMA Mémoires embarquées pour les systèmes monopuces Frédéric ROUSSEAU TIMA 46

Mémoires embarquées pour les systèmes monopuces - 29

Frédéric ROUSSEAU : TIMA

Encore plus de performance

• Direct Rambus DRAM– Basé sur un bus interne 16 bits, 400 MHz, DDR

• Synchronous Link DRAM– Basé sur un bus interne 64 bits à 200 MHz, DDR

Page 30: Mémoires embarquées pour les systèmes monopuces - 1 Frédéric ROUSSEAU : TIMA Mémoires embarquées pour les systèmes monopuces Frédéric ROUSSEAU TIMA 46

Mémoires embarquées pour les systèmes monopuces - 30

Frédéric ROUSSEAU : TIMA

Performance de la hiérarchie mémoire

processeur

registresCache L1 Cache L2

Mémoireprincipale

16 Ko - 64 Ko

SRAMdouble port

512 Ko - 4 Mo

S(D)RAMsimple port

32 Mo - 512 Mo

SDRAMsimple port

Cycles d'horlogeCPU

Total pour 1 lignede cache (256 bits)

Bande passante(MO/s)

Cache L1 1 – 1 – 1 – 1 4 1.864Cache L2 10 – 2 – 2 – 2 16 466Mémoire EDO 35 – 7 – 7 – 7 56 133SDRAM 39 – 4 – 4 – 4 51 146

Performance de la hiérarchie mémoire Pentium 2 à 233 MHz (donnée de 64 bits)

Page 31: Mémoires embarquées pour les systèmes monopuces - 1 Frédéric ROUSSEAU : TIMA Mémoires embarquées pour les systèmes monopuces Frédéric ROUSSEAU TIMA 46

Mémoires embarquées pour les systèmes monopuces - 31

Frédéric ROUSSEAU : TIMA

Plan de l'exposé

• Quelles mémoires pour les systèmes multiprocesseurs monopuces ?

• Fonctionnement des (S)DRAMs– Fonctionnement général

– Modes d'accès rapides

– SDRAM et autres

• Améliorations des performances des SoC en utilisant les performances des mémoires– Amélioration de la qualité du code des applications

– Relation Mémoire-Architecture-Compilation-Système d'exploitation

• Et les caches ?

• Conclusion

• Bibliographie

Page 32: Mémoires embarquées pour les systèmes monopuces - 1 Frédéric ROUSSEAU : TIMA Mémoires embarquées pour les systèmes monopuces Frédéric ROUSSEAU TIMA 46

Mémoires embarquées pour les systèmes monopuces - 32

Frédéric ROUSSEAU : TIMA

Amélioration des performancesFavoriser les accès par page dans le code de l'application

• Considérons le bout de programme suivant

const int N = 128;int A[N][N];int l, c;for (c = 0; c < N; c++) { for (l = 0; l < N; l++) { … = f(A[l][c]); } }

A[0][0] A[0][1] … A[0][N-1]A[1][0] A[1][1] … A[1][N-1]

… … … …A[N-1][0] A[N-1][1] … A[N-1][N-1]

for (l = 0; l < N; l++) { for (c = 0; c < N; c++) { … = f(A[l][c]); } }

Organisation des données en mémoire

Page 33: Mémoires embarquées pour les systèmes monopuces - 1 Frédéric ROUSSEAU : TIMA Mémoires embarquées pour les systèmes monopuces Frédéric ROUSSEAU TIMA 46

Mémoires embarquées pour les systèmes monopuces - 33

Frédéric ROUSSEAU : TIMA

Amélioration des performancesFavoriser les accès par page dans le code de l'application

• Considérons le bout de programme suivant

...for (i = 0; i < N; i++) { r1 = f1(a[i]); … s1 = f2(b[i]); … c[i] = …; }

a, b, c à des pages différentes

...for (i = 0; i < N; i = i + 2) { r1 = f1(a[i]); r2 = f1(a[i+1]); … s1 = f2(b[i]); s1 = f2(b[i+1]); … c[i] = …; c[i+1] = …; }

Page 34: Mémoires embarquées pour les systèmes monopuces - 1 Frédéric ROUSSEAU : TIMA Mémoires embarquées pour les systèmes monopuces Frédéric ROUSSEAU TIMA 46

Mémoires embarquées pour les systèmes monopuces - 34

Frédéric ROUSSEAU : TIMA

Amélioration des performancesRelation Mémoire-Architecture-Compilation-Système d'exploitation

• Pour utiliser les modes d'accès rapides de la mémoire, il faut :

– Architecture• Choisir des processeurs qui supportent ces modes de transfert

• Mettre en œuvre ces protocoles (processeurs et interfaces)

• DMA ?

• Que fait on des données ? Cache, mémoire locale ?

– Compilateur• Reconnaître les données qui s'y prêtent et les placer sur les mêmes pages

• Reconnaître des transformations de code pour favoriser ces modes d'accès (pré-processeur ?)

– Système d'exploitation• A l'exécution, reconnaître ou anticiper les transferts de données

• Autoriser les changements de contexte pendant les transferts ? Et les ITs ?

Page 35: Mémoires embarquées pour les systèmes monopuces - 1 Frédéric ROUSSEAU : TIMA Mémoires embarquées pour les systèmes monopuces Frédéric ROUSSEAU TIMA 46

Mémoires embarquées pour les systèmes monopuces - 35

Frédéric ROUSSEAU : TIMA

Amélioration des performancesRéutilisation et Architecture

• On peut acheter des mémoires embarquées– vendeurs de eDRAM

– Générateurs de mémoires

• Pour quelle architecture mémoire ?– Partagée, distribuée ?

– Combien ?

– Type, caractéristiques ?

• Ce qui suppose au niveau de l'architecture– Insertion d'adaptateurs mémoire (attention aux performances !)

Page 36: Mémoires embarquées pour les systèmes monopuces - 1 Frédéric ROUSSEAU : TIMA Mémoires embarquées pour les systèmes monopuces Frédéric ROUSSEAU TIMA 46

Mémoires embarquées pour les systèmes monopuces - 36

Frédéric ROUSSEAU : TIMA

Plan de l'exposé

• Quelles mémoires pour les systèmes multiprocesseurs monopuces ?

• Fonctionnement des (S)DRAMs– Fonctionnement général

– Modes d'accès rapides

– SDRAM et autres

• Améliorations des performances des SoC en utilisant les performances des mémoires– Amélioration de la qualité du code des applications

– Relation Mémoire-Architecture-Compilation-Système d'exploitation

• Et les caches ?

• Conclusion

• Bibliographie

Page 37: Mémoires embarquées pour les systèmes monopuces - 1 Frédéric ROUSSEAU : TIMA Mémoires embarquées pour les systèmes monopuces Frédéric ROUSSEAU TIMA 46

Mémoires embarquées pour les systèmes monopuces - 37

Frédéric ROUSSEAU : TIMA

Et les caches ?• Les caches sont une des techniques permettant d'adapter l'architecture à

l'application– Ils rendent plus efficace l'architecture en profitant de la localité spatiale et

temporelle des données– L'architecture ignore les propriétés de l'application

=> Dans ce cas, on peut supprimer les caches de données

• Si on considère que le SoC est un ASIC particulier, cela signifie que l'architecture est taillée pour l'application– On connaît les échanges de données

– On peut construire une architecture efficace (plus efficace qu'une architecture générale), en matière d'accès aux données

– Utilisation de mémoire embarquée (dont l'accès est plus rapide qu'une mémoire off-chip)

– Utilisation d'une mémoire Scratch-PAD (SRAM)

Page 38: Mémoires embarquées pour les systèmes monopuces - 1 Frédéric ROUSSEAU : TIMA Mémoires embarquées pour les systèmes monopuces Frédéric ROUSSEAU TIMA 46

Mémoires embarquées pour les systèmes monopuces - 38

Frédéric ROUSSEAU : TIMA

Conclusion

• L'intérêt des mémoires embarquées est indiscutable– gain en performances, coût, consommation

• L'architecture mémoire est un problème complexe– partagée, distribuée, types, taille, ….

• Lien entre mémoire-architecture-compilateur-SE

• Problèmes à discuter– Consommation

– Caches

Page 39: Mémoires embarquées pour les systèmes monopuces - 1 Frédéric ROUSSEAU : TIMA Mémoires embarquées pour les systèmes monopuces Frédéric ROUSSEAU TIMA 46

Mémoires embarquées pour les systèmes monopuces - 39

Frédéric ROUSSEAU : TIMA

Bibliographie• P.R. Panda, N. Dutt, A. Nicolau

Memory Issues in Embedded Systems-on-Chip: Optimizations and ExplorationKluwer AP, 1999

• IEEE Design and Test of Computer, may-June 2001, vol 18 n°3The New World of Large Embedded Memories

• P.R. Panda, F. Catthoor, N. Dutt and allData and Memory Optimization Techniques for Embedded SystemsACM Transactions on Design Automation of Electronic Systems, Avril 2001, Vol. 6, N°2

• F. Catthoor, S. Wuytack, and allCustom Memory Management Methodology: Exploration of Memory Organization for Embedded Multimedia System DesignKluwer AP, 1998

• Betty PrinceHigh Performances Memories: New architectures DRAMs and SRAMs,

Evolution and functionWILEY - ISBN 0 471 95646 5