Em uma palavra, sim. Originalmente (no 8086) era chamado DMA, ou acesso direto à memória. Naquela época, havia um chip controlador de DMA dedicado que a CPU tinha que programar para transferir dados entre ram e periféricos, mas pelo menos desde os primeiros dias da PCI (e eu penso no barramento ISA original também, mas eu não sei de nenhum dispositivo que fez isso), os periféricos em si também poderiam ser mestres de barramento e transferir os próprios dados.
Eles ainda normalmente exigem que a CPU informe quais partes da memória devem acessar, mas alguns dispositivos mal comportados, como controladores firewire, abrem o acesso DMA a todo o RAM do sistema a pedido de algum dispositivo externo no sistema. ônibus firewire. Alguns sistemas PCIe modernos têm pontes PCIe inteligentes que podem ser programadas para executar restrições de acesso e conversão de endereço para que a CPU possa impedir que dispositivos conectados acessem a memória que não deveriam, mas isso atualmente parece restrito a placas-mãe de grandes servidores, não seu típico área de trabalho.
Quanto a como, o barramento PCI (e) permite que qualquer dispositivo realize leitura / gravação em qualquer endereço, seja no sistema principal (geralmente controlado diretamente pela CPU atualmente), ou em algum outro dispositivo no sistema. ônibus. Ou seja, um dispositivo PCI (e) pode acessar diretamente a memória ou os registros de outro dispositivo PCI (e) ou do sistema principal, independentemente de onde esteja localizado. As pontes PCI (e) encaminham a solicitação para o dispositivo apropriado, pois são configuradas (pelo firmware / bios do sistema e possivelmente posteriormente pelo kernel do SO) para saber quais intervalos de endereços são "de propriedade" de qual dispositivo.