2010-10-08 7 views

Répondre

3

Sur x86, il existe deux espaces d'adressage différents, un pour la mémoire et un autre pour les ports d'E/S.

L'espace d'adressage de port est limité à 65536 ports et est accessible à l'aide des instructions IN/OUT.

À titre d'exemple, la fonctionnalité VGA d'une carte vidéo est accessible à l'aide de certains ports d'E/S, mais le tampon d'image est mappé en mémoire.

D'autres architectures de processeur n'ont qu'un seul espace d'adressage. Dans ces architectures, tous les périphériques sont mappés en mémoire.

7

Uhm, ... à moins que je mal compris, vous parlez de deux choses complètement différentes. Je vais vous donner deux explications très courtes pour que vous puissiez google up ce que vous devez maintenant. Les E/S mappées en mémoire permettent de mapper la mémoire des périphériques matériels E/S dans la carte mémoire principale. C'est-à-dire qu'il y aura dans la mémoire de l'ordinateur des adresses qui ne correspondront pas réellement à votre RAM, mais aux registres internes et à la mémoire des périphériques. C'est l'architecture de la machine dont parlait Pointy.

Il y a aussi des E/S mappées, ce qui signifie prendre (disons) un fichier, et que le système d'exploitation en charge des parties en mémoire pour un accès plus rapide par la suite. Dans Unix, cela peut être accompli par mmap().

J'espère que cela a aidé.

+0

Votre réponse est informative mais vous n'avez pas expliqué IO mappé IO. – JagsVG

+0

* "il y aura dans la mémoire de l'ordinateur des adresses qui ne correspondront pas réellement à votre RAM, mais aux registres internes et à la mémoire des périphériques." * Chaque périphérique possède-t-il ses propres registres internes et mémoire exemple: une imprimante peut-elle avoir 4 registres alors qu'une webcam a 7 registres), ou y a-t-il un nombre standard de registres et de mémoire que tous les périphériques doivent implémenter? – John

+0

Chaque périphérique est différent, à la fois en interne et en interface. Les mappages de mémoire peuvent être utilisés ou non. C'est fortement dépendant de l'appareil – slezica

1

J'ai une différence plus claire entre les deux. Le périphérique d'E/S mappé en mémoire est ce périphérique d'E/S qui répond lorsque IO/M est faible. Alors qu'un périphérique E/S mappé E/S (ou périphérique) est celui qui répond lorsque E/S est haut.

4

Les E/S mappées en mémoire sont mappées dans le même espace d'adressage que la mémoire programme et/ou la mémoire utilisateur et sont accessibles de la même manière.

Les E/S mappées sur port utilisent un espace d'adresse dédié distinct et sont accessibles via un ensemble d'instructions de microprocesseur dédié. Comme les processeurs 16 bits deviendront lentement obsolètes et seront remplacés par des applications 32 bits et 64 bits en général, réserver des plages d'espace mémoire pour les E/S est moins problématique, car l'espace d'adressage mémoire du Le processeur est généralement beaucoup plus grand que l'espace requis pour tous les périphériques de mémoire et d'E/S d'un système.

Par conséquent, il est devenu plus fréquent de tirer parti des avantages des E/S mappées en mémoire.

L'inconvénient de cette méthode est que le bus d'adresses entier doit être entièrement décodé pour chaque périphérique. Par exemple, une machine avec un bus d'adresse de 32 bits nécessiterait des portes logiques pour résoudre l'état des 32 lignes d'adresse afin de décoder correctement l'adresse spécifique de n'importe quel périphérique. Cela augmente le coût d'ajout de matériel à la machine. L'avantage du système d'E/S mappées IO est qu'il faut moins de logique pour décoder une adresse discrète et donc moins de coût pour ajouter des périphériques matériels à une machine. Cependant, plus d'instructions pourraient être nécessaires.

Ref: - Check This link