Quando uma CPU fala com um endereço de memória, não é a RAM que precisa responder. Pode ser um dispositivo de E / S. Na verdade, você pode pensar na RAM como um "dispositivo de E / S mapeado por memória especializado" cujo trabalho é apenas salvar e devolver dados, embora com CPUs atuais de hoje que têm armazenamento em cache e tal não seja fisicamente simples.
Eu não estou muito interessado nos detalhes de baixo nível do PCIe, mas você parece estar se perguntando como o próprio barramento PCIe se comunica com o processador. Faz como qualquer outra coisa que se comunica com a CPU:
- Mapeamento de memória - ou seja, um dispositivo é "mapeado", em que leituras e gravações em um intervalo de endereços não vão para a RAM, mas para um dispositivo ou controlador.
- DMA - um dispositivo externo ou controlador lê / grava uma seção da RAM, sem que a CPU esteja envolvida de forma alguma.
- Portas de E / S - este é apenas outro espaço de endereço (um recurso da família de CPUs Intel x86) que historicamente tem sido dedicado a dispositivos de E / S. Você nunca encontrará RAM aqui, mas funciona como um mapeamento de memória. A principal diferença entre as portas de E / S e o mapeamento de memória é que as instruções de porta de E / S sempre funcionam em série, sem "fora de ordem" ou "reordenação" das operações aqui, ao contrário da CPU tentando fazer isso com acessos ao principal memória.
- IRQs - um dispositivo externo envia uma interrupção para a CPU
As BARs e tais são "mapeadas" na memória e tomam o lugar de qualquer RAM que possa estar "abaixo". Com a MMU, acredito que é possível "remapear" a RAM abaixo dela para um endereço físico diferente.