Principais lições
- A E/S mapeada na memória (MMIO) trata os dispositivos de E/S como locais de memória, mapeando seus registros para endereços específicos no espaço de endereço da memória do sistema. Isso permite que a CPU use instruções load/store para acessar dispositivos de E/S, simplificando a programação e permitindo uma transferência de dados eficiente.
- I/O-mapped I/O (I/O-MMIO) usa um espaço de endereço separado para operações de I/O, distinto do espaço de endereço de memória regular. Instruções de E/S especiais se comunicam com dispositivos de E/S, fornecendo separação e flexibilidade.
- O MMIO se beneficia de mecanismos de proteção de memória e taxas de transferência de dados eficientes, mas tem limitações no endereçamento de espaço e possíveis conflitos. I/O-MMIO evita conflitos de memória e fornece um espaço de endereço maior, mas pode introduzir complexidade na programação e acesso potencialmente mais lento. A escolha depende dos requisitos do sistema e considerações de projeto.
O que é E/S mapeada em memória?
E/S mapeada em memória (entrada/saída) é uma técnica usada em sistemas de computador para permitir que periféricos, como dispositivos de hardware ou componentes externos, sejam acessados e controlados usando operações de memória. Envolve mapear o espaço de endereço dos dispositivos periféricos diretamente no espaço de endereço da memória do computador.
Em um sistema de E/S mapeado em memória, os endereços de memória reservados para operações de E/S são atribuídos aos dispositivos periféricos. Esses endereços são tratados como locais de memória normais e a CPU pode ler ou escrever neles usando instruções de carregamento e armazenamento, respectivamente. Isso significa que as operações de E/S são executadas pela manipulação de locais de memória em vez de usar instruções de E/S específicas.
O que é E/S mapeada para E/S?
A E/S mapeada por E/S (entrada/saída) é uma alternativa à E/S mapeada em memória para interface com dispositivos periféricos em um sistema de computador. Ao contrário da E/S mapeada na memória, que mapeia os dispositivos periféricos no espaço de endereço da memória, a E/S mapeada na memória atribui um espaço de endereço separado para operações de E/S.
Em um sistema de E/S mapeado, a CPU usa instruções específicas de entrada e saída para se comunicar com dispositivos periféricos. Essas instruções diferem das instruções normais de carregamento e armazenamento para acesso à memória. As instruções de E/S são projetadas para lidar com operações de E/S e são fornecidas pela arquitetura do conjunto de instruções da CPU.
Diferença entre E/S mapeada em memória e E/S mapeada por E/S
- Na E/S mapeada em memória, a memória e os endereços de E/S são compartilhados no mesmo espaço de endereço. Os dispositivos periféricos são mapeados para endereços de memória específicos e as instruções da CPU para acesso à memória são usadas para se comunicar com os dispositivos. Em contraste, a E/S mapeada por E/S atribui um espaço de endereço separado para operações de E/S, distinto do espaço de endereço de memória.
- A E/S mapeada em memória usa para carregar e armazenar instruções para ler ou gravar nos endereços mapeados em memória de dispositivos periféricos. Por outro lado, a E/S mapeada por E/S requer instruções dedicadas de entrada e saída especificamente projetadas para interagir com os endereços de E/S.
- Na E/S mapeada em memória, o espaço de memória disponível limita o intervalo de endereços. Os endereços de memória usados para operações de E/S podem estar espalhados por todo o espaço de endereço. Na E/S mapeada de E/S, o intervalo de endereços é dedicado exclusivamente a operações de E/S e não se sobrepõe aos endereços de memória.
- A E/S mapeada em memória oferece um modelo de programação mais simples, pois os dispositivos aparecem como parte da hierarquia de memória. Por outro lado, a E/S mapeada introduz complexidade adicional no desenvolvimento de software, pois os programadores precisam gerenciar instruções de E/S separadas e espaços de endereço.
- A E/S mapeada em memória pode ter segurança e proteção limitadas para operações de E/S, pois os dispositivos compartilham o mesmo espaço de endereço que a memória. O acesso não autorizado a locais de memória pode afetar os dispositivos conectados. Na E/S mapeada por E/S, o espaço de endereço de E/S separado fornece melhor isolamento e proteção, garantindo que o acesso não autorizado à memória não conceda acesso automaticamente aos dispositivos de E/S.
Comparação entre E/S mapeada em memória e E/S mapeada por E/S
Parâmetros de comparação | E/S mapeada em memória | E/S E/S mapeada |
---|---|---|
Endereçando | Endereços de memória são usados para operações de memória e E/S. | Endereços de E/S separados são usados exclusivamente para operações de E/S. |
Intervalo de endereços | Limitado pelo espaço de memória disponível. | Espaço de endereço dedicado exclusivamente para operações de E/S, distinto da memória. |
Instruções | E/S mapeada pela memória | Instruções de entrada/saída específicas projetadas para operações de E/S. |
interface de hardware | Os dispositivos aparecem como se fossem parte da hierarquia de memória. | Requer interface de E/S separada e sinais de controle para comunicação do dispositivo. |
Performance | As instruções de carregamento/armazenamento são usadas para acessar a memória e os endereços de E/S. | As instruções de E/S podem ter uma execução mais lenta em comparação com as instruções de acesso à memória, impactando o desempenho. |
- 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
Última atualização: 11 de agosto de 2023
Sandeep Bhandari é bacharel em Engenharia de Computação pela Thapar University (2006). Possui 20 anos de experiência na área de tecnologia. Ele tem grande interesse em vários campos técnicos, incluindo sistemas de banco de dados, redes de computadores e programação. Você pode ler mais sobre ele em seu página bio.