DDR_Memory - Kasimashi/Systemes-embarques GitHub Wiki
Mémoire DDR (Double Data Rate)
La mémoire DDR est un type de mémoire vive (RAM) utilisée dans les ordinateurs et autres appareils électroniques pour stocker temporairement les données en cours d'utilisation. Elle est une évolution des mémoires SDR (Single Data Rate), offrant des performances accrues.
Types de DDR
| Type | Année d'introduction | Vitesse (MT/s) | Tension (V) | Remarques |
|---|---|---|---|---|
| DDR | 2000 | 200-400 | 2.5 | Première génération DDR |
| DDR2 | 2003 | 400-1066 | 1.8 | Plus rapide et moins énergivore que DDR |
| DDR3 | 2007 | 800-2133 | 1.5 | Latence améliorée, consommation réduite |
| DDR4 | 2014 | 1600-3200 | 1.2 | Plus haute densité et bande passante |
| DDR5 | 2020 | 4800-8400 | 1.1 | Supporte des vitesses très élevées et meilleure efficacité énergétique |
Caractéristiques principales
- Double Data Rate : Transfert de données sur les fronts montant et descendant de l'horloge, doublant ainsi le débit par rapport à SDR.
- Bande passante : Dépend de la fréquence et du bus mémoire.
- Latence CAS (CL) : Temps en cycles d’horloge pour accéder à une donnée spécifique.
- Tension : Réduction progressive pour diminuer la consommation énergétique.
- Facteur de forme : DIMM (ordinateurs de bureau), SO-DIMM (ordinateurs portables).
Différences clés entre les générations
- DDR vs DDR2 : DDR2 utilise des bus internes plus rapides et une tension plus basse.
- DDR2 vs DDR3 : DDR3 a une densité plus élevée et une latence légèrement augmentée mais un débit supérieur.
- DDR3 vs DDR4 : DDR4 augmente la fréquence et réduit la consommation, introduit des modules plus grands.
- DDR4 vs DDR5 : DDR5 offre un débit presque doublé, des canaux doubles par module et une meilleure gestion de l'énergie.
Conseils pratiques
- Vérifier la compatibilité avec la carte mère et le processeur.
- Plus la fréquence est élevée et la latence faible, meilleures sont les performances.
- DDR4 et DDR5 ne sont pas rétrocompatibles.
- Pour les jeux et applications exigeantes, privilégier la fréquence et la capacité plutôt que la latence seule.
Relier une mémoire DDR à un microcontrôleur
Relier une mémoire DDR à un microcontrôleur classique n’est pas trivial, car la DDR fonctionne à des vitesses très élevées et nécessite un contrôleur mémoire spécialisé.
1. Problèmes principaux
- Double Data Rate : transfert de données sur les fronts montant et descendant de l’horloge.
- Timing critique : setup/hold times, latence CAS, refresh, etc.
- Bus large : 16, 32 ou plus de bits de données + adresse + contrôle.
- Microcontrôleurs classiques (Arduino, STM32 classiques, ESP32) n’ont pas de contrôleur DDR intégré.
⚠️ Impossible de connecter une DDR “brute” directement à un MCU classique.
2. Solutions possibles
a) Microcontrôleur / SoC avec contrôleur DDR intégré
- Exemples : STM32H7, ESP32-S3, Raspberry Pi, FPGA avec IP DDR.
- Signaux principaux :
DQ[0..N]: bus de donnéesADDR[0..M]: bus d’adresseBA[0..2]: banquesCK,CK#: horloge différentielleCS#,RAS#,CAS#,WE#: contrôleDQS: strobe de données
- Recommandation : respecter scrupuleusement le datasheet pour le routage et la longueur des traces.
b) Module DDR avec interface mémoire prête à l’emploi
- DDR3 sur module breakout pour FPGA ou MCU avec contrôleur externe.
- Accessible via QSPI, FMC ou AXI.
c) Alternatives plus simples pour MCU classiques
| Type de mémoire | Facilité | Débit | Remarques |
|---|---|---|---|
| SDRAM / PSRAM | Facile | Moyen | Compatible avec MCU via contrôleur externe |
| SRAM parallèle | Très facile | Faible à moyen | Simple, pas besoin de timing complexe |
| QSPI / SPI Flash | Très facile | Faible | Bon pour stockage, pas pour traitement rapide |
3. Conclusion
- Les microcontrôleurs classiques ne peuvent pas gérer la DDR directement.
- Pour la DDR, il faut un contrôleur DDR intégré (MCU haut de gamme ou FPGA).
- Pour un MCU classique, privilégier SDRAM, PSRAM ou SRAM pour une intégration simple et fiable.
💡 Astuce : Pour un projet pratique, commencer par SDRAM sur STM32 avec FMC est beaucoup plus simple et pédagogique que de tenter une DDR brute.