As placas-mãe modernas permitem que um dispositivo PCI-E acesse o RAM sem envolver a CPU?

1

Estou pesquisando novas arquiteturas de computadores e preciso de uma imagem mais clara de como o Controle de Memória funciona em um PC.

Em suma, gostaria de saber se um dispositivo PCI-E, como uma GPU, pode acessar a RAM e gravar na RAM sem precisar entrar em contato com a CPU. Suponha que o sistema saiba onde é permitido gravar (como se fosse uma máquina virtual), para que seu sistema não se desvie.

Uma breve e clara descrição de como o controlador de memória e a CPU interagem e como os dispositivos da GPU ou PCI-E acessam a memória do sistema seria muito apreciada.

Obrigado antecipadamente, Geco

    
por Gecko 17.10.2015 / 23:00

2 respostas

2

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.

    
por 18.10.2015 / 04:13
1

I would like to know whether a PCI-E device, such as a GPU can access RAM and write to RAM without having to contact the CPU.

Sim, é chamado de masterização de ônibus .
O adaptador PCI / PCIe pode ganhar controle do barramento e competir por ciclos de memória. A CPU, o controlador de DMA e os mestres de barramento poderiam competir pelo acesso à memória. O árbitro de memória normalmente favorece a CPU, que normalmente é atribuída a maior prioridade.

    
por 19.10.2015 / 00:10