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