La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

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.

Présentations similaires


Présentation au sujet: "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."— Transcription de la présentation:

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 Avenue Félix Viallet Grenoble Cedex France Tel: Fax:

2 Mémoires embarquées pour les systèmes monopuces - 2 Frédéric ROUSSEAU : TIMA Intégration technologique Historique [ITRS 00] Logic SRAM Flash e-DRAM CMOS RF FPGA MEMS FRAM Electro-optical Chemical Sensors Electro-biological

3 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 LogiqueSRAM Flash DRAMCMOS RFFPGAMEMSFRAM Capt. Ch.Elec.-opt

4 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]

5 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

6 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

7 Mémoires embarquées pour les systèmes monopuces - 7 Frédéric ROUSSEAU : TIMA Conception des systèmes multiprocesseurs monopuces ? F2 F4 F1 F3 ARM7 core réseau de communication interface de comm. interface de comm. mémoire contrôleur 68K core mémoire contrôleur adaptateur mémoire Mémoire partagé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 ?

8 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. F2 F4 F1 F3 VG M F4 F2 F1 F3 Communication Mémoire niveau macro-architecture –Mémorisation : blocs mémoire explicites, protocoles pas entièrement définis. ARM7 core réseau de communication interface de comm. interface de comm. mémoire contrôleur 68K core mémoire contrôleur adaptateur mémoire Mémoire partagée niveau micro-architecture –Mémorisation : blocs mémoires entièrement définis (SDRAM, …), adaptateur mémoire synthétisé, protocoles mis en œuvre

9 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 classification des éléments de mémorisation Read-only (ROM, PLA) Read/writewrite-few (PROM, EEPROM) volatilenon-volatile (flash) adressage séquentiel accès aléatoire FIFOLIFOcacheadressage direct

10 Mémoires embarquées pour les systèmes monopuces - 10 Frédéric ROUSSEAU : TIMA Arbre de classification des types de mémoires Arbre de classification des types de mémoire double portmulti-port Simple port RAM registres statiquedynamiqueSDRAM

11 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) source

12 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

13 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 registres Cache L1Cache L2 Mémoire principale disque 16 Ko - 64 Ko SRAM double port 1 ns 512 Ko - 4 Mo S(D)RAM simple port 5 ns 32 Mo Mo SDRAM simple port 50 ns 20 Go 10 ms off-chip

14 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

15 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

16 Mémoires embarquées pour les systèmes monopuces - 16 Frédéric ROUSSEAU : TIMA Architecture DRAM DRAM simple port, 2 20 mots, matrice (carrée) de 2 10 lignes et 2 10 colonnes Bus dadresses Adresse ligne (10) 2 10 Bus de données Tampon Décodeur ligne Adresse colonne (10) Décodeur colonne 1 page

17 Mémoires embarquées pour les systèmes monopuces - 17 Frédéric ROUSSEAU : TIMA Architecture DRAM Micron

18 Mémoires embarquées pour les systèmes monopuces - 18 Frédéric ROUSSEAU : TIMA Cycle de lecture d'une DRAM Bus dadresse Adresse ligne(10) 2 10 Bus de donné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

19 Mémoires embarquées pour les systèmes monopuces - 19 Frédéric ROUSSEAU : TIMA Chronogrammes d'un cycle d'accès

20 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 TypiqueMICRON 256 Mbits à 133 MHz Etape 1 : 3 cycles Etape 1 : 2 cycles Etape 2 : 1 cycle Etape 3 : 3 cycles Etape 3 : 2 cycles

21 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 ( ).

22 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) ( )

23 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) ( ) ligne Col1 Data1 RAS CAS Adresses Données Data2Data3 Data4 pas supporté par Intel

24 Mémoires embarquées pour les systèmes monopuces - 24 Frédéric ROUSSEAU : TIMA Des 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

25 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 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) ( ) Topologie à base de bancs mémoire –Les données peuvent alternativement être lues (ou écrites) dans les différents bancs

26 Mémoires embarquées pour les systèmes monopuces - 26 Frédéric ROUSSEAU : TIMA Architecture SDRAM : IBM 16 Mbits

27 Mémoires embarquées pour les systèmes monopuces - 27 Frédéric ROUSSEAU : TIMA Cycle de lecture d'une SDRAM

28 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.

29 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

30 Mémoires embarquées pour les systèmes monopuces - 30 Frédéric ROUSSEAU : TIMA Performance de la hiérarchie mémoire processeur registres Cache L1Cache L2 Mémoire principale 16 Ko - 64 Ko SRAM double port 512 Ko - 4 Mo S(D)RAM simple port 32 Mo Mo SDRAM simple port Performance de la hiérarchie mémoire Pentium 2 à 233 MHz (donnée de 64 bits)

31 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

32 Mémoires embarquées pour les systèmes monopuces - 32 Frédéric ROUSSEAU : TIMA 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]); } for (l = 0; l < N; l++) { for (c = 0; c < N; c++) { … = f(A[l][c]); } Organisation des données en mémoire

33 Mémoires embarquées pour les systèmes monopuces - 33 Frédéric ROUSSEAU : TIMA 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... 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] = …; }

34 Mémoires embarquées pour les systèmes monopuces - 34 Frédéric ROUSSEAU : TIMA 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 ?

35 Mémoires embarquées pour les systèmes monopuces - 35 Frédéric ROUSSEAU : TIMA 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 !)

36 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

37 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)

38 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

39 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 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


Télécharger ppt "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."

Présentations similaires


Annonces Google