Aucun titre de diapositive

publicité
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]
Frédéric ROUSSEAU : TIMA
Mémoires embarquées pour les systèmes monopuces - 1
Intégration technologique
• Historique [ITRS ’00]
Logic
SRAM
Flash
e-DRAM
CMOS RF
FPGA
MEMS
FRAM
Chemical Sensors
Electro-optical
Electro-biological
98
Frédéric ROUSSEAU : TIMA
00
02
04
06
08
10
12
Mémoires embarquées pour les systèmes monopuces - 2
Intégration technologique
Logique
SRAM
Flash
DRAM
CMOS RF
FPGA
1-2
0
4
3-4
Elec.-opt.
Capt. Ch.
FRAM
0
4-5 3-4
7-9
3-5 5-9
6-9 6-10
2
2-4
0
0
4-6 3-7 5-7
0
2-10 3-12 6-14 6-15 5-15 4-12
FRAM
4-5 3-4
Electro-optique
MEMS
FPGA
CMOS RF
DRAM
Flash
0
MEMS
Capt. chimiques
Frédéric ROUSSEAU : TIMA
SRAM
Surcoûts
en niveaux de masque
Logique
• Complexité technologique [ITRS ’00]
0
7-9 2-3 7-10 6-7 9-15
0
2-6 3-7 6-10 6-11 5-11 4-8 4-16 6-11
0
5-8 6-9 9-12 9-13 8-12 7-10 7-18 9-13 7-14
0
Mémoires embarquées pour les systèmes monopuces - 3
Utilisation de la surface de silicium
• Evolution de l ’utilisation surfacique [ITRS ’00]
Area Usage
Mem
Reused
Specific
100%
80%
60%
40%
20%
0%
1999 0,18
µm
Frédéric ROUSSEAU : TIMA
2002 0,13
µm
2005 0,1 µm 2008 70 nm 2011 50 nm 2014 35 nm
Mémoires embarquées pour les systèmes monopuces - 4
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
Frédéric ROUSSEAU : TIMA
Mémoires embarquées pour les systèmes monopuces - 5
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
Frédéric ROUSSEAU : TIMA
Mémoires embarquées pour les systèmes monopuces - 6
Conception des systèmes multiprocesseurs monopuces
F2
F4
F1
F3
mémoire
mémoire
contrôleur
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 ?
ARM7
core
interface
de comm.
Mémoire
partagée
68K
core
contrôleur
adaptateur
mémoire
?
interface
de comm.
réseau de communication
Frédéric ROUSSEAU : TIMA
Mémoires embarquées pour les systèmes monopuces - 7
La mémoire aux différents niveaux d'abstraction
F2
• niveau système
–
M
Mémorisation : messages, variables
locales, variables globales.
F3
• niveau macro-architecture
–
Mémorisation : blocs mémoire
explicites, protocoles pas entièrement
définis.
F4
Mémoire
F1
VG
F4
F2
F3
F1
Communication
• niveau micro-architecture
–
Mémorisation : blocs mémoires
entièrement définis (SDRAM, …),
adaptateur mémoire synthétisé,
protocoles mis en œuvre
mémoire
mémoire
contrôleur
ARM7
core
interface
de comm.
Mémoire
partagée
contrôleur
adaptateur
mémoire
68K
core
interface
de comm.
réseau de communication
Frédéric ROUSSEAU : TIMA
Mémoires embarquées pour les systèmes monopuces - 8
Arbre de classification des
éléments de mémorisation
Arbre de classification
des éléments de mémorisation
write-few
(PROM, EEPROM)
Read-only
(ROM, PLA)
Read/write
volatile
adressage
séquentiel
FIFO
Frédéric ROUSSEAU : TIMA
LIFO
non-volatile
(flash)
accès
aléatoire
cache
adressage
direct
Mémoires embarquées pour les systèmes monopuces - 9
Arbre de classification des
types de mémoires
Arbre de classification
des types de mémoire
Simple port
double port
RAM
statique
Frédéric ROUSSEAU : TIMA
SDRAM
multi-port
registres
dynamique
Mémoires embarquées pour les systèmes monopuces - 10
Les mémoires dans les SoC
• Dans un SoC, on trouve
–
–
–
–
–
ROM, EEPROM
SRAM
DRAM, SDRAM
Flash
Scratch PAD
(code de l'application, …)
(Cache, …)
(la plus courante si besoin de beaucoup de mémoire)
(conserve la donnée, accès lent 66 MHz)
(SRAM embarquée)
source
http://developer.intel.com/design/flash/
Frédéric ROUSSEAU : TIMA
Mémoires embarquées pour les systèmes monopuces - 11
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
Frédéric ROUSSEAU : TIMA
Mémoires embarquées pour les systèmes monopuces - 12
Hiérarchie mémoire
• plus petit = plus rapide
– Décodage adresse + rapide
– Sortance plus faible
off-chip
processeur
Cache L1
Cache L2
Mémoire
principale
disque
16 Ko - 64 Ko
512 Ko - 4 Mo
32 Mo - 512 Mo
20 Go
SRAM
double port
S(D)RAM
simple port
SDRAM
simple port
1 ns
5 ns
50 ns
registres
Frédéric ROUSSEAU : TIMA
10 ms
Mémoires embarquées pour les systèmes monopuces - 13
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
Frédéric ROUSSEAU : TIMA
Mémoires embarquées pour les systèmes monopuces - 14
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
Frédéric ROUSSEAU : TIMA
Mémoires embarquées pour les systèmes monopuces - 15
Architecture DRAM
• DRAM simple port, 220 mots, matrice (carrée) de 210 lignes et 210 colonnes
Décodeur
ligne
210
1 page
Adresse ligne (10)
Bus d’adresses
210
Bus de
données
Tampon
Adresse colonne (10)
Frédéric ROUSSEAU : TIMA
Décodeur colonne
Mémoires embarquées pour les systèmes monopuces - 16
Architecture DRAM Micron
Frédéric ROUSSEAU : TIMA
Mémoires embarquées pour les systèmes monopuces - 17
Cycle de lecture d'une DRAM
Décodeur ligne
Bus d’adresse
Adresse
ligne(10)
210
1 page
210
Bus de
données
Tampon
Adresse colonne (10)Décodeur colonne
• 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
Frédéric ROUSSEAU : TIMA
Mémoires embarquées pour les systèmes monopuces - 18
Chronogrammes d'un cycle d'accès
Frédéric ROUSSEAU : TIMA
Mémoires embarquées pour les systèmes monopuces - 19
Modèle temporel d'accès mémoire
Adresse ligne
Etape1 :
Décodage de ligne
Etape 2 :
décodage de colonne
Etape 3 :
Préchargement
Frédéric ROUSSEAU : TIMA
Adresse colonne
Data
Typique
MICRON 256 Mbits
à 133 MHz
Etape 1 : 3 cycles
Etape 2 : 1 cycle
Etape 3 : 3 cycles
Etape 1 : 2 cycles
Etape 2 : 1 cycle
Etape 3 : 2 cycles
Mémoires embarquées pour les systèmes monopuces - 20
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).
Frédéric ROUSSEAU : TIMA
Mémoires embarquées pour les systèmes monopuces - 21
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 mp 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)
Frédéric ROUSSEAU : TIMA
Mémoires embarquées pour les systèmes monopuces - 22
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)
RAS
CAS
Adresses
Données
ligne
Col1
Data1
Data2
Data3
Data4
pas supporté par Intel
Frédéric ROUSSEAU : TIMA
Mémoires embarquées pour les systèmes monopuces - 23
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
Frédéric ROUSSEAU : TIMA
Mémoires embarquées pour les systèmes monopuces - 24
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
Frédéric ROUSSEAU : TIMA
Mémoires embarquées pour les systèmes monopuces - 25
Architecture SDRAM : IBM 16 Mbits
Frédéric ROUSSEAU : TIMA
Mémoires embarquées pour les systèmes monopuces - 26
Cycle de lecture d'une SDRAM
Frédéric ROUSSEAU : TIMA
Mémoires embarquées pour les systèmes monopuces - 27
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.
Frédéric ROUSSEAU : TIMA
Mémoires embarquées pour les systèmes monopuces - 28
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
Frédéric ROUSSEAU : TIMA
Mémoires embarquées pour les systèmes monopuces - 29
Performance de la hiérarchie mémoire
processeur
Cache L1
Cache L2
Mémoire
principale
16 Ko - 64 Ko
512 Ko - 4 Mo
32 Mo - 512 Mo
SRAM
double port
S(D)RAM
simple port
SDRAM
simple port
registres
Cache L1
Cache L2
Mémoire EDO
SDRAM
Cycles d'horloge
CPU
1–1–1–1
10 – 2 – 2 – 2
35 – 7 – 7 – 7
39 – 4 – 4 – 4
Total pour 1 ligne
de cache (256 bits)
4
16
56
51
Bande passante
(MO/s)
1.864
466
133
146
Performance de la hiérarchie mémoire Pentium 2 à 233 MHz (donnée de 64 bits)
Frédéric ROUSSEAU : TIMA
Mémoires embarquées pour les systèmes monopuces - 30
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
Frédéric ROUSSEAU : TIMA
Mémoires embarquées pour les systèmes monopuces - 31
Amélioration des performances
Favoriser 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[1][0]
…
A[N-1][0]
A[0][1]
A[1][1]
…
A[N-1][1]
…
…
…
…
A[0][N-1]
A[1][N-1]
…
A[N-1][N-1]
Organisation des données en mémoire
for (l = 0; l < N; l++) {
for (c = 0; c < N; c++) {
… = f(A[l][c]);
}
}
Frédéric ROUSSEAU : TIMA
Mémoires embarquées pour les systèmes monopuces - 32
Amélioration des performances
Favoriser 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
Frédéric ROUSSEAU : TIMA
...
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] = …;
}
Mémoires embarquées pour les systèmes monopuces - 33
Amélioration des performances
Relation 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 ?
Frédéric ROUSSEAU : TIMA
Mémoires embarquées pour les systèmes monopuces - 34
Amélioration des performances
Ré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 !)
Frédéric ROUSSEAU : TIMA
Mémoires embarquées pour les systèmes monopuces - 35
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
Frédéric ROUSSEAU : TIMA
Mémoires embarquées pour les systèmes monopuces - 36
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
• 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)
=> Dans ce cas, on peut supprimer les caches de données
Frédéric ROUSSEAU : TIMA
Mémoires embarquées pour les systèmes monopuces - 37
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
Frédéric ROUSSEAU : TIMA
Mémoires embarquées pour les systèmes monopuces - 38
Bibliographie
•
P.R. Panda, N. Dutt, A. Nicolau
Memory Issues in Embedded Systems-on-Chip: Optimizations and Exploration
Kluwer AP, 1999
•
IEEE Design and Test of Computer, may-June 2001, vol 18 n°3
The New World of Large Embedded Memories
•
P.R. Panda, F. Catthoor, N. Dutt and all
Data and Memory Optimization Techniques for Embedded Systems
ACM Transactions on Design Automation of Electronic Systems, Avril 2001, Vol. 6, N°2
•
F. Catthoor, S. Wuytack, and all
Custom Memory Management Methodology: Exploration of Memory Organization for
Embedded Multimedia System Design
Kluwer AP, 1998
•
Betty Prince
High Performances Memories: New architectures DRAMs and SRAMs,
Evolution and function
WILEY - ISBN 0 471 95646 5
Frédéric ROUSSEAU : TIMA
Mémoires embarquées pour les systèmes monopuces - 39
Téléchargement