ROM double port : Accès simultané pour systèmes haut débit
Une ROM double port (Read-Only Memory) est un dispositif mémoire avec deux ports adresse/données indépendants pouvant lire le même réseau mémoire simultanément. Elle élimine goulot mémoire simple port dans systèmes où plusieurs agents (CPU, DMA, DSP, GPU) besoin accès lecture simultané.
Architecture
- Réseau mémoire partagé : Stockage physique unique (ROM masquée, OTP, ou Flash embarquée).
- Port A & Port B : Chacun avec Bus adresses, Bus données, Chip Enable, Output Enable, Horloge indépendants (si synchrone).
- Logique arbitrage : Gère demandes accès simultanées. Politiques : priorité fixe, round-robin, ou « dernier écriture gagne » (RAM). Pour ROM, lectures simultanées non conflictuelles — les deux ports sortent données même cycle.
Pourquoi ROM double port ? (Avantages)
- Lectures simultanées sans contention : CPU récupère instruction pendant DMA charge texture — pas états attente.
- Latence déterministe : Pas délai arbitrage lectures (contrairement RAM double port où conflits lecture/écriture existent).
- Design système simplifié : Pas besoin multiplexeurs bus externes, caches, ou RAM ombre partager ROM simple port.
- Sécurité : Un port démarrage sécurisé (immuable), autre application — séparation hardware-enforced.
Applications typiques
| Application | Port A | Port B |
|---|---|---|
| Graphique / Contrôleur affichage | GPU : Récupération textures/géométrie | Contrôleur affichage : Balayage framebuffer |
| DSP / Audio | Cœur : Recherche tables/coeff | DMA : Streaming échantillons |
| SoC Embarqué / IoT | MCU : Code démarrage + Firmware | Débogage / Trace / Hôte externe |
| Réseau / ASIC commutateur | Pipeline entrée : Tables recherche | Pipeline sortie : Règles réécriture |
| ECU Automobile | Cœur 0 verrouillé : Code | Cœur 1 verrouillé : Code (comparaison) |
| Configuration FPGA | Contrôleur config : Bitstream | Logique utilisateur : ROM constantes (init LUT) |
Limitations
- Surface & Coût : ~1,5–2× ROM simple port (décodeurs dupliqués, amplis sense, mux sorties, arbitrage).
- Densité : Capacité max par surface puce moindre.
- Consommation : Deux ports actifs → courant dynamique plus haut.
- Disponibilité : Moins courant composant discret ; majoritairement embarqué ASICs/SoCs/FPGAs. Double port NOR Flash/ROM discret existe (ex. Cypress/Infineon, Micron, Winbond) mais niche.
ROM double port vs RAM double port
- ROM : Lecture seule. Lectures simultanées toujours sûres. Utilisée constantes, firmware, LUTs, code démarrage.
- RAM : Lecture/Écriture. Requiert arbitrage accès simultanés (lecture/lecture OK, lecture/écriture ou écriture/écriture conflit). Utilisée tampons partagés, FIFOs, mémoires trames, boîtes lettres inter-cœurs.
Alternatives modernes
- Simple port + Cache : Cache L1/L2 absorbe plupart accès ; simple port ROM/Flash principal suffit.
- XIP (Execute-in-Place) Flash : Flash Quad/OctaSPI memory-mapped avec cache — évite ROM séparée.
- FPGA Block RAM (Vrai double port) : Configurable ROM (fichier init). Gratuit dans tissu.
Résumé
ROM double port fournit accès lecture simultané garanti hardware pour deux maîtres indépendants. Échange surface silicium pour débit déterministe, sans contention — critique graphique, DSP, verrouillé sécurité critique, réseautage haute vitesse. SoCs modernes souvent remplacent par Flash simple port cachée ou FPGA BRAM.
