Eu não estou familiarizado com o hardware. Eu estou estudando o I / O de disco IDE e o DMA no x86. Eu quero saber que ao fazer uma E / S de disco IDE com DMA, outras CPUs podem acessar a memória (ou exatamente a mesma região de memória que o DMA)? Claro, assumimos que o sistema operacional é tão estúpido que não fornece mutex no software.
Aprendi com o wiki que existem três modos de operação, burst mode
, cycle stealing mode
e transparent mode
. E aprendi que é o hardware ou o software responsável por manter o cache coherence
.
Então, eu quero saber em específico com o disco I / O IDE no x86, ao fazer o disco DMA, outras CPUs podem acessar a memória? Por exemplo, um disco DMA deseja transferir dados para a região de memória 0x10 ~ 0x30 (ou seja, na minha opinião, o DMA inicia a transferência em 0x10 e gerará uma interrupção quando atingir o 0x30). Se agora o DMA transferiu 0x10 ~ 0x20, outras CPUs poderão modificar o 0x10 ~ 0x20 antes que todo o DMA seja concluído?
Muito obrigado!