Title: Aucun titre de diapositive
1Mé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
frederic.rousseau_at_imag.fr
2Intégration technologique
3Intégration technologique
- Complexité technologique ITRS 00
4Utilisation de la surface de silicium
- Evolution de l utilisation surfacique ITRS 00
5Plan 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
6Plan 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
7Conception des systèmes multiprocesseurs monopuces
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 ?
?
8La mémoire aux différents niveaux d'abstraction
- niveau système
- Mémorisation messages, variables locales,
variables globales.
M
VG
9Arbre de classification deséléments de
mémorisation
Arbre de classification des éléments de
mémorisation
Read-only (ROM, PLA)
Read/write
write-few (PROM, EEPROM)
volatile
non-volatile (flash)
accès aléatoire
adressage séquentiel
FIFO
LIFO
cache
adressage direct
10Arbre de classification destypes de mémoires
Arbre de classification des types de mémoire
double port
multi-port
Simple port
RAM
registres
statique
dynamique
SDRAM
11Les 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)
source http//developer.intel.com/design/flash/
12Né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
13Hiérarchie mémoire
- plus petit plus rapide
- Décodage adresse rapide
- Sortance plus faible
14Inté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
15Plan 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
16Architecture DRAM
- DRAM simple port, 220 mots, matrice (carrée) de
210 lignes et 210 colonnes
17Architecture DRAM Micron
18Cycle de lecture d'une DRAM
- Placer l'adresse de ligne sur le bus d'adresses
- Valider en activant le signal RAS, ce qui
- sélectionne la lignegt 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 tampongt 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
19Chronogrammes d'un cycle d'accès
20Modèle temporel d'accès mémoire
Adresse ligne
Etape1 Décodage de ligne
Adresse colonne
Etape 2 décodage de colonne
Data
Etape 3 Préchargement
Typique MICRON 256 Mbits à 133 MHz Etape 1
3 cycles Etape 1 2 cycles Etape 2 1 cycle
Etape 2 1 cycle Etape 3 3 cycles Etape 3
2 cycles
21Des 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).
22Des 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)
23Des 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)
pas supporté par Intel
24Des modes d'accès plus performants
- BEDO Pipeliné
- Lidée est dajouter une latch en entrée, ce qui
permet de positionner ladresse 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
25DRAM 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 dentré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 dautres 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
26Architecture SDRAM IBM 16 Mbits
27Cycle de lecture d'une SDRAM
28DDR 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.
29Encore 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
30Performance de la hiérarchie mémoire
processeur
Mémoire principale
Cache L1
Cache L2
registres
16 Ko - 64 Ko SRAM double port
512 Ko - 4 Mo S(D)RAM simple port
32 Mo - 512 Mo SDRAM simple port
Performance de la hiérarchie mémoire Pentium 2 Ã
233 MHz (donnée de 64 bits)
31Plan 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
32Amé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 ANN int l, c for (c
0 c lt N c) for (l 0 l lt N l)
f(Alc)
Organisation des données en mémoire
33Amé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 lt N i) r1 f1(ai)
s1 f2(bi) ci
a, b, c à des pages différentes
34Amé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 ?
35Amé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 !)
36Plan 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
37Et 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)
gt Dans ce cas, on peut supprimer les caches de
données
38Conclusion
- 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
39Bibliographie
- P.R. Panda, N. Dutt, A. NicolauMemory Issues in
Embedded Systems-on-Chip Optimizations and
ExplorationKluwer AP, 1999 - IEEE Design and Test of Computer, may-June 2001,
vol 18 n3The 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, N2 - 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