Faits marquants
- Les E / S mappées en mémoire (MMIO) traitent les périphériques d'E / S comme des emplacements de mémoire, mappant leurs registres à des adresses spécifiques dans l'espace d'adressage mémoire du système. Cela permet au processeur d'utiliser des instructions de chargement/stockage pour accéder aux périphériques d'E/S, simplifiant la programmation et permettant un transfert de données efficace.
- Les E/S mappées en E/S (I/O-MMIO) utilisent un espace d'adressage séparé pour les opérations d'E/S, distinct de l'espace d'adressage de la mémoire ordinaire. Des instructions d'E/S spéciales communiquent avec les périphériques d'E/S, offrant séparation et flexibilité.
- MMIO bénéficie de mécanismes de protection de la mémoire et de taux de transfert de données efficaces, mais présente des limites en termes d'espace d'adressage et de conflits potentiels. I/O-MMIO évite les conflits de mémoire et fournit un espace d'adressage plus grand mais peut introduire de la complexité dans la programmation et un accès potentiellement plus lent. Le choix dépend des exigences du système et des considérations de conception.
Qu'est-ce qu'une E/S mappée en mémoire ?
Les E / S mappées en mémoire (entrée / sortie) sont une technique utilisée dans les systèmes informatiques pour permettre aux périphériques, tels que les périphériques matériels ou les composants externes, d'être accessibles et contrôlés à l'aide d'opérations de mémoire. Cela implique de mapper l'espace d'adressage des périphériques directement dans l'espace d'adressage de la mémoire de l'ordinateur.
Dans un système d'E/S mappé en mémoire, les adresses mémoire réservées aux opérations d'E/S sont attribuées aux périphériques. Ces adresses sont traitées comme des emplacements de mémoire normaux, et le CPU peut y lire ou y écrire en utilisant respectivement les instructions de chargement et de stockage. Cela signifie que les opérations d'E/S sont effectuées en manipulant des emplacements de mémoire plutôt qu'en utilisant des instructions d'E/S spécifiques.
Qu'est-ce qu'une E/S mappée par E/S ?
Les E/S mappées d'E/S (entrée/sortie) sont une alternative aux E/S mappées en mémoire pour l'interface avec les périphériques d'un système informatique. Contrairement aux E/S mappées en mémoire, qui mappent les périphériques dans l'espace d'adressage mémoire, les E/S mappées en E/S attribuent un espace d'adressage séparé pour les opérations d'E/S.
Dans un système d'E/S mappées par E/S, le processeur utilise des instructions d'entrée et de sortie spécifiques pour communiquer avec les périphériques. Ces instructions diffèrent des instructions normales de chargement et de stockage pour l'accès à la mémoire. Les instructions d'E/S sont conçues pour gérer les opérations d'E/S et sont fournies par l'architecture du jeu d'instructions du CPU.
Différence entre les E/S mappées en mémoire et les E/S mappées en E/S
- Dans les E/S mappées en mémoire, la mémoire et les adresses d'E/S sont partagées dans le même espace d'adressage. Les périphériques sont mappés à des adresses mémoire spécifiques et les instructions du processeur pour l'accès à la mémoire sont utilisées pour communiquer avec les périphériques. En revanche, les E/S mappées d'E/S attribuent un espace d'adressage séparé pour les opérations d'E/S, distinct de l'espace d'adressage mémoire.
- Les E/S mappées en mémoire permettent de charger et de stocker des instructions pour lire ou écrire sur les adresses mappées en mémoire des périphériques. D'autre part, les E/S mappées d'E/S nécessitent des instructions d'entrée et de sortie dédiées spécialement conçues pour interagir avec les adresses d'E/S.
- Dans les E/S mappées en mémoire, l'espace mémoire disponible limite la plage d'adresses. Les adresses mémoire utilisées pour les opérations d'E/S peuvent être dispersées dans tout l'espace d'adressage. Dans les E/S mappées par E/S, la plage d'adresses est dédiée uniquement aux opérations d'E/S et ne chevauche pas les adresses mémoire.
- Les E/S mappées en mémoire offrent un modèle de programmation plus simple, car les périphériques semblent faire partie de la hiérarchie de la mémoire. D'autre part, les E/S mappées d'E/S introduisent une complexité supplémentaire dans le développement logiciel, car les programmeurs doivent gérer des instructions d'E/S et des espaces d'adressage distincts.
- Les E/S mappées en mémoire peuvent avoir une sécurité et une protection limitées pour les opérations d'E/S, car les périphériques partagent le même espace d'adressage que la mémoire. L'accès non autorisé aux emplacements de mémoire peut potentiellement affecter les appareils connectés. Dans les E/S mappées, l'espace d'adressage d'E/S séparé offre une meilleure isolation et protection, garantissant qu'un accès non autorisé à la mémoire n'accorde pas automatiquement l'accès aux périphériques d'E/S.
Comparaison entre les E/S mappées en mémoire et les E/S mappées en E/S
Paramètres de comparaison | E/S mappées en mémoire | E/S E/S mappées |
---|---|---|
Adressage | Les adresses mémoire sont utilisées à la fois pour les opérations de mémoire et d'E/S. | Des adresses d'E/S séparées sont utilisées exclusivement pour les opérations d'E/S. |
Plage d'adresses | Limité par l'espace mémoire disponible. | Espace d'adressage dédié uniquement aux opérations d'E/S, distinct de la mémoire. |
Instructions | E/S mappées en mémoire | Instructions d'entrée/sortie spécifiques conçues pour les opérations d'E/S. |
Interface matérielle | Les périphériques apparaissent comme s'ils faisaient partie de la hiérarchie de la mémoire. | Nécessite une interface d'E/S et des signaux de commande séparés pour la communication de l'appareil. |
Performance | Les instructions de chargement/stockage sont utilisées pour accéder à la fois à la mémoire et aux adresses d'E/S. | Les instructions d'E/S peuvent avoir une exécution plus lente que les instructions d'accès à la mémoire, ce qui a un impact sur les performances. |
- https://arxiv.org/abs/2301.06689
- https://www.researchgate.net/profile/John-Mccalpin/publication/266375644_Low_Level_Microbenchmarks_of_Processor_to_FPGA_Memory-Mapped_IO/links/542dcd460cf27e39fa94b415/Low-Level-Microbenchmarks-of-Processor-to-FPGA-Memory-Mapped-IO.pdf
Dernière mise à jour : 11 août 2023
Sandeep Bhandari est titulaire d'un baccalauréat en génie informatique de l'Université Thapar (2006). Il a 20 ans d'expérience dans le domaine de la technologie. Il s'intéresse vivement à divers domaines techniques, notamment les systèmes de bases de données, les réseaux informatiques et la programmation. Vous pouvez en savoir plus sur lui sur son page bio.