Avantages et inconvénients de la mémoire I/O isolée
Les périphériques d'entrée/sortie (E/S ou I/O) sont les parties d'un système informatique (clavier, modem) qui envoient ou reçoivent des informations vers/depuis les processeurs. Dans les systèmes E/S mappés en mémoire (memory-mapped I/O), les périphériques E/S utilisent une partie de la mémoire comme adresse pour transmettre messages. Dans les ordinateurs à mémoire isolée (isolated-memory), E/S et mémoire ont des adresses différentes.
E/S (I/O)
Les systèmes peuvent mapper E/S à une adresse dans les banques mémoire car le processus de messagerie E/S ressemble à l'échange de données avec la mémoire. Le même bus (voie électronique pour transmettre infos vers/depuis processeurs) accède à la fois à la mémoire et aux périphériques E/S. Un inconvénient de la mémoire isolée : les systèmes memory-mapped sont plus simples pour le bus, utilisant le même jeu d'adresses pour opérations E/S et mémoire.
Mappage mémoire (Memory Map)
Dans un système memory-mapped, il devient difficile pour l'ordinateur de distinguer opérations E/S des autres logiciels accédant la mémoire ; les systèmes à mémoire isolée n'ont pas ce problème. Opérations E/S en memory-mapped n'utilisent qu'une partie de l'adresse mémoire complète pour rendre leur emplacement plus distinct. Systèmes à mémoire isolée sont plus complexes car, contrairement aux memory-mapped, ils ne peuvent pas utiliser les mêmes systèmes de décodage et contrôle pour mémoire et périphériques E/S. En memory-mapped, toute instruction sortant données de mémoire opère aussi sur périphériques E/S.
Programmation
En mémoire isolée, la programmation est plus propre : E/S a sa propre adresse séparée, l'ordinateur identifie par adresses si c'est mémoire ou E/S qu'un programme doit utiliser. Avec memory-mapping, toute instruction référençant la mémoire peut aussi instruire le système E/S. En mémoire isolée, programmes ont besoin d'instructions « In » et « Out » ajoutées pour extraire/envoyer données vers adresses mémoire ou E/S.
Espace mémoire (Memory Space)
Quand un ordinateur utilise memory-mapped I/O, une partie de l'espace mémoire est consacrée aux adresses E/S, laissant moins pour le stockage mémoire réel. Avec memory-mapping, adresses E/S doivent être écrites distinctement des banques mémoire autour ; assigner adresses E/S est plus simple en mémoire isolée. Comme périphériques E/S prennent moins d'espace qu'une adresse mémoire donnée, il est possible qu'une partie de l'espace mémoire à l'adresse E/S soit inutilisée et gaspillée.
