Upload
marin-bureau
View
105
Download
0
Embed Size (px)
Citation preview
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]
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
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
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
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
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
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 ?
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
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
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
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/
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
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
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
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
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
Mémoires embarquées pour les systèmes monopuces - 17
Frédéric ROUSSEAU : TIMA
Architecture DRAM Micron
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
Mémoires embarquées pour les systèmes monopuces - 19
Frédéric ROUSSEAU : TIMA
Chronogrammes d'un cycle d'accès
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
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).
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)
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
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
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
Mémoires embarquées pour les systèmes monopuces - 26
Frédéric ROUSSEAU : TIMA
Architecture SDRAM : IBM 16 Mbits
Mémoires embarquées pour les systèmes monopuces - 27
Frédéric ROUSSEAU : TIMA
Cycle de lecture d'une SDRAM
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.
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
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)
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
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
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] = …; }
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 ?
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 !)
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
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)
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
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