Mémoires embarquées pour les systèmes monopuces

Slides:



Advertisements
Présentations similaires
LES NOMBRES PREMIERS ET COMPOSÉS
Advertisements

[number 1-100].
Qualité du Premier Billot. 2 3 Défauts reliés à labattage.
1. Résumé 2 Présentation du créateur 3 Présentation du projet 4.
Page 1 Retour sur le e- tourisme. Page 2 Quelques chiffres…
LES MEMOIRES INTRODUCTION UN PEU D ’HISTOIRE LES DIFFERENTES MEMOIRES
Licence pro MPCQ : Cours
Distance inter-locuteur
Architecture de machines Les entrées sorties Cours
1 Plus loin dans lutilisation de Windows Vista ©Yves Roger Cornil - 2 août
Architecture des processeurs généralistes haute performance
LIRMM 1 Journée Deuxièmes années Département Microélectronique LIRMM.
Les numéros
Sud Ouest Est Nord Individuel 36 joueurs
Les identités remarquables
GEF 435 Principes des systèmes d’exploitation
Cours MIAGE « Architectures Orientées Services » Henry Boccon-Gibod 1 Architectures Orientées Services Composants de Service Exemple pratique de développement.
Page : 1 / 6 Conduite de projet Examen du 13 mai 2002 Durée : 3h30mn Le support de cours et les notes sont nécessaires La notation tiendra compte très.
Journées franciliennes 2006 Moussa ELKIHEL (LAAS-CNRS;UPS Toulouse )
Performances 1 Évolution : Performance. Performances 2 Évolution : Mémoire.
A abstraction b assembleur c nombre binaire d bit e cache f UC g puce h compilateur i famille dordinateurs j contrôle k chemin de données l défaut m dé
Les éléments de mémorisation
Architecture Systèmes
Architecture de machines La mémoire
Architecture de machines La mémoire
1 7 Langues niveaux débutant à avancé. 2 Allemand.
Mr: Lamloum Med LES NOMBRES PREMIERS ET COMPOSÉS Mr: Lamloum Med.
1 ARCHITECTURE DACCÈS la méthode générale modèle de données définitions module daccès / modules métiers construction des modèles les modules daccès, les.
ARCHITECTURE GLOBALE CAPTAGE Traitement DES des données GRANDEURS
Page 1 Introduction à ATEasy 3.0 Page 2 Quest ce quATEasy 3.0? n Ensemble de développement très simple demploi n Conçu pour développer des bancs de test.
Définition – Rôle Formes Composants Périphériques internes
1 Cours numéro 3 Graphes et informatique Définitions Exemple de modélisation Utilisation de ce document strictement réservée aux étudiants de l IFSIC.
Institut TELECOM / TELECOM Bretagne
Informatique générale
Gestion des Périphériques
1 Guide de lenseignant-concepteur Vincent Riff 27 mai 2003.
Les mémoires :. Mémoriser Enregistrer Conserver Restituer.
LES MEMOIRES.
Titre : Implémentation des éléments finis sous Matlab
1 TAL : une bibliothèque de cellules pour le design de circuits asynchrones QDI P. Maurine, J. B. Rigaud, F. Bouesse, G. Sicard, M. Renaudin.
LES NOMBRES PREMIERS ET COMPOSÉS
LES SYSTEMES AUTOMATISES
Introduction Objectifs du cours Évaluation Références
RACINES CARREES Définition Développer avec la distributivité Produit 1
Représentation des systèmes dynamiques dans l’espace d’état
Année universitaire Réalisé par: Dr. Aymen Ayari Cours Réseaux étendus LATRI 3 1.
MAGIE Réalisé par Mons. RITTER J-P Le 24 octobre 2004.
GIF-3002 SYSTÈMES MICRO- PROCESSEURS ET INTERFACES
Équipe 2626 Octobre 2011 Jean Lavoie ing. M.Sc.A.
MAGIE Réalisé par Mons. RITTER J-P Le 24 octobre 2004.
Informatique 1. Les applications de l’informatique
Lycée ELKHAWARIZMI De SAFI
ECOLE DES HAUTES ETUDES COMMERCIALES MARKETING FONDAMENTAL
Traitement de différentes préoccupations Le 28 octobre et 4 novembre 2010.
1/65 微距摄影 美丽的微距摄影 Encore une belle leçon de Macrophotographies venant du Soleil Levant Louis.
* Source : Étude sur la consommation de la Commission européenne, indicateur de GfK Anticipations.
CALENDRIER-PLAYBOY 2020.
Un capteur de vision CMOS pour la sécurité automobile.
LES PILES ET FILES.
Module 8 : Surveillance des performances de SQL Server
Les Chiffres Prêts?
Les systèmes mono-puce
Construction d'une hiérarchie mémoire faible consommation
Microprocesseur famille 68'000 Interface matériel
LES MEMOIRES.
Gestion des Périphériques
Un programme Algorithme permettant au processeur de s'alimenter:
Memoire.
LES MEMOIRES et le décodage d’adresses
Systèmes à microprocesseur Les mémoires
Transcription de la présentation:

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: frederic.rousseau@imag.fr

Intégration technologique Historique [ITRS ’00] Logic SRAM Flash e-DRAM CMOS RF FPGA MEMS FRAM Electro-optical Chemical Sensors Electro-biological 98 00 02 04 06 08 10 12

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 Capt. Ch. Elec.-opt. 1-2 4 4-5 3-5 2 2-10 2-6 5-8 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 6-15 2-3 6-10 9-12 6-14 7-9 9-15 6-9 4-6 3-7 5-7

Utilisation de la surface de silicium Evolution de l ’utilisation surfacique [ITRS ’00]

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

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

Conception 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 ? F2 F4 F1 F3 ARM7 core réseau de communication interface de comm. mémoire contrôleur 68K adaptateur Mémoire partagée ?

La mémoire aux différents niveaux d'abstraction niveau système Mémorisation : messages, variables locales, variables globales. M VG 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. mémoire contrôleur 68K adaptateur 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

Arbre de classification des éléments de mémorisation write-few (PROM, EEPROM) Read-only (ROM, PLA) Read/write volatile non-volatile (flash) adressage séquentiel accès aléatoire FIFO LIFO cache adressage direct

Arbre de classification des types de mémoires Simple port double port multi-port RAM registres statique SDRAM dynamique

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 http://developer.intel.com/design/flash/

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

Hiérarchie mémoire plus petit = plus rapide Décodage adresse + rapide Sortance plus faible off-chip processeur registres Cache L1 Cache 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 - 512 Mo SDRAM 50 ns 20 Go 10 ms

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

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

Architecture DRAM DRAM simple port, 220 mots, matrice (carrée) de 210 lignes et 210 colonnes Bus d’adresses Adresse ligne (10) 210 Bus de données Tampon Décodeur ligne Adresse colonne (10) Décodeur colonne 1 page

Architecture DRAM Micron

Cycle de lecture d'une DRAM Bus d’adresse Adresse ligne(10) 210 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

Chronogrammes d'un cycle d'accès

Modèle temporel d'accès mémoire Adresse ligne Etape1 : Décodage de ligne Etape 2 : décodage de colonne Adresse 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

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

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)

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

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

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

Architecture SDRAM : IBM 16 Mbits

Cycle de lecture d'une SDRAM

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.

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

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

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

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

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 = 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] = …; } ... for (i = 0; i < N; i++) { r1 = f1(a[i]); … s1 = f2(b[i]); c[i] = …; } a, b, c à des pages différentes

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 ?

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

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

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

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

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