ENSA Tétouan · Systèmes Embarqués · Chapitre 2

Composants & Mémoires
des Systèmes Embarqués

Un guide interactif pour comprendre les technologies mémoire, leur classification et leur architecture dans les systèmes embarqués.

VOLATILE NON-VOLATILE HYBRIDE
01 — Vue d'ensemble

Les 3 piliers d'un système embarqué

🔩
Matériel (Hardware)
Fournit les ressources physiques : processeur, mémoire, périphériques.

Impose des contraintes de puissance de calcul, de capacité mémoire et de consommation énergétique.
💾
Logiciel d'application
Implémente les fonctionnalités spécifiques. Traduit les exigences en algorithmes exécutables, tout en respectant les contraintes matérielles et temps-réel.
⏱️
RTOS
Orchestre l'ensemble via un scheduler (ordonnanceur). Garantit l'exécution des tâches dans des délais stricts. Fournit des mécanismes comme les sémaphores.

Composants matériels clés

🔋
Power Management
Gestion de l'alimentation avec différents modes (veille, power gating). Maintien de l'horloge RTC sur batterie.
🖥️
Processeur Embarqué
Optimisé pour taille réduite. Intègre souvent des fonctions DSP (multiplicateurs/diviseurs matériels).
📡
Périphériques & I/Os
Ports série (bit par bit) et parallèles (mot complet). Le µC surveille en permanence les entrées.
Timers & Watchdog
Le watchdog timer détecte les blocages (code runaway) et réinitialise le système.
🌡️
Capteurs & Analogique
ADC, DAC, amplificateurs opérationnels. Exemple : surveillance de la batterie via ADC avec interruption.
🔔
Contrôleur d'interruptions
Essentiel pour les systèmes temps réel. Assure une faible latence de réponse aux événements externes.
Note : Les systèmes embarqués n'ont généralement pas de mémoire secondaire (disque). Les programmes de taille réduite n'ont pas besoin de mémoire virtuelle.
02 — Critères fondamentaux

Classification des mémoires

🎯
Accessibilité
Accès aléatoire : adresse directe — RAM, SDRAM, Flash NOR

Accès sériel : lecture séquentielle — I2C PROM, SPI PROM

Accès par blocs : blocs accessibles en aléatoire, mots en sériel — Flash NAND, HDD
💡
Persistance
Volatile : perd ses données sans alimentation → RAM, SDRAM

Non-volatile : conserve les données → Flash, ROM, HDD, SD-MMC
📊
Densité & Coût
La densité = bits/unité de surface = indicateur de coût.

Haute densité (SDRAM) → moins chère
Faible densité (SRAM) → plus chère
Consommation
Critique pour les systèmes alimentés par batterie. Les SDRAM mobiles fonctionnent à très basses tensions pour économiser l'énergie.
🧲
Support de stockage
Électronique : RAM, SDRAM
Magnétique : Disques durs
Optique : CD, DVD

Arbre de classification

MÉMOIRE
💾 RAM
🔮 HYBRIDE
📀 ROM

DRAM SRAM NVRAM FLASH EEPROM EPROM PROM Masked ROM
03 — Technologies détaillées

Types de mémoires

VOLATILE · RAM STATIQUE
SRAM
Fabriquée en technologie CMOS, utilise 6 transistors par cellule (2 inverseurs couplés en croix + 2 transistors d'accès). Très rapide, faible consommation. Perd ses données sans alimentation.
Rapide Coût élevé Volatile
VOLATILE · RAM DYNAMIQUE
DRAM
1 transistor + 1 condensateur par cellule. Le condensateur se décharge → rafraîchissement périodique requis. Haute densité, coût par bit très faible. Accès par lignes, colonnes et pages.
Vitesse moyenne Coût faible Volatile
VOLATILE · DUAL PORT
DPRAM
RAM avec 2 ports I/O indépendants. Permet à 2 processeurs d'accéder simultanément. Défi : Data Corruption (accès simultané) et Data Coherency (cache). Solution : définir la zone comme Non-Cacheable.
Rapide Volatile
NON-VOLATILE · ROM
EPROM / EEPROM
OTP-EPROM : programmable une seule fois.
UV-EPROM : effacement par lumière UV.
EEPROM : effacement électrique, octet par octet. Durée de vie limitée en cycles.
Lecture rapide Écriture lente Non-volatile
NON-VOLATILE · FLASH NOR
NOR Flash
Similaire à EEPROM mais programmable en circuit (in-circuit). Moins chère. Accès aléatoire → exécution directe du code possible. Très utilisée pour le code de boot.
Lecture rapide Coût modéré Non-volatile
NON-VOLATILE · FLASH NAND
NAND Flash
Plus dense et économique que NOR. Accès par blocs → ne peut pas exécuter du code directement. Principalement pour le stockage de données (cartes SD, SSD...).
Accès par blocs Très dense Non-volatile
HYBRIDE · NON-VOLATILE RAM
NVRAM
SRAM avec batterie de sauvegarde. Fonctionne comme une SRAM classique. En cas de coupure, la batterie conserve les données. Coût élevé → réservée à quelques centaines d'octets critiques.
Rapide Coût élevé Non-volatile
NON-VOLATILE · STOCKAGE
SD-MMC / HDD
SD-MMC : stockage de masse compact, idéal systèmes portables (GigaBytes).
HDD : volumineuse, stockage magnétique. Non adapté aux systèmes embarqués portables.
Lent Coût faible/Go Non-volatile
04 — Tableau comparatif

Synthèse des types de mémoires

Astuce : Ce tableau résume les compromis fondamentaux. Chaque type a ses forces — aucun n'est universellement supérieur.
Type Volatile Inscriptible Effacement Cycles max Coût/octet Vitesse
SRAM Oui Oui Octet Illimité Élevé Rapide
DRAM Oui Oui Octet Illimité Modéré Moyenne
Masked ROM Non Non N/A N/A Faible Rapide
PROM Non Non¹ N/A N/A Modéré Rapide
EPROM Non Non¹ Mémoire complète Limité Modéré Rapide
EEPROM Non Oui Octet Limité Élevé Écriture lente
Flash Non Oui Secteur Limité Modéré Écriture lente
NVRAM Non Oui Octet Illimité Élevé Rapide

¹ Programmable une seule fois (OTP)

Comparaison vitesse relative

Registres CPU~1 ns
SRAM (Cache)~15–20 ns
DRAM (RAM principale)~50–70 ns
Flash NOR (lecture)~100 ns
SSD NAND Flash~0.1 ms
Disque dur (HDD)~5–10 ms
05 — Organisation système

Hiérarchie de la mémoire

Principe clé : Une hiérarchie bien conçue atteint simultanément les performances du composant le plus rapide, le coût du plus économique, et la consommation du plus sobre.
🔷 Registres CPU
Stockage interne du processeur. Plus rapide possible.
~1–10 ns
64–1024 B
🟢 Cache L1/L2
SRAM sur puce. Exploite la localité de référence.
~15–20 ns
8–512 KB
🟣 RAM principale
DRAM sur/hors puce. Stockage temporaire des données actives.
~50–70 ns
32 KB – 512 MB
🟠 Flash NOR/NAND
Mémoire non-volatile externe. Code et données persistantes.
~100 ns – 0.1 ms
MB – GB
⚫ HDD / Fichiers
Mémoire virtuelle et fichiers. Rarement présent en embarqué.
~5–10 ms
Jusqu'à TB

Localité de référence

📍
Localité spatiale
Si une adresse est accédée, les adresses voisines le seront probablement bientôt. Exemple : instructions consécutives dans un programme linéaire.
🔄
Localité temporelle
Une donnée récemment accédée sera probablement ré-accédée prochainement. Exemple : variable dans une boucle.
Important : La performance réelle ne vient pas d'un seul composant mais des interactions entre cache, RAM et DRAM. Optimiser chaque niveau séparément ne suffit pas.
06 — Perspective logicielle

La mémoire vue par le programmeur

Le programmeur s'intéresse uniquement à la suite d'adresses disponibles — pas à l'implémentation physique (décodeurs, circuits). La vue logique est une abstraction.
🔤
Mémoire adressée par octets
Chaque adresse stocke 8 bits. Le standard le plus répandu, même sur processeurs 64 bits. Raison : images, ASCII, chaînes de caractères sont naturellement en octets.
📝
Mots 32 / 64 bits
Les processeurs modernes traitent des mots de 32 ou 64 bits en interne. Un mot de 32 bits occupe 4 octets consécutifs. Les frontières de mots (word boundaries) sont à chaque multiple de 4.

Endianness : ordre des octets

Stockage de la valeur 0x00112233 à l'adresse 0x10010000

🔵 Big Endian — octet le plus significatif en premier
addr →
0x0010010000
0x1110010001
0x2210010002
0x3310010003

Utilisé par : Sun, Apple (ancien)

🟢 Little Endian — octet le moins significatif en premier
addr →
0x3310010000
0x2210010001
0x1110010002
0x0010010003

Utilisé par : Intel x86, ARM (défaut) — convention utilisée dans ce cours

Organisation physique de la mémoire

Une mémoire 1 Mbit est organisée en matrice 1024 × 1024 cellules.

Adresse 20 bits
10 bits poids fort → Décodeur Lignes (1024 sorties)
10 bits poids faible → Décodeur Colonnes (sélection bit)
Signaux de contrôle : CS (Chip Select) active/désactive le composant. RW=0 → écriture, RW=1 → lecture.