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