При выполнении IDE DMA на x86, другие процессоры могут получить доступ к памяти?

343
tamlok

Я не знаком с оборудованием. Я изучаю дисковый ввод-вывод IDE и DMA на x86. Я хочу знать, что при выполнении дискового ввода-вывода IDE с DMA, могут ли другие процессоры получать доступ к памяти (или точно, в той же области памяти, что и DMA)? Конечно, мы предполагаем, что ОС настолько глупа, что не обеспечивает мьютекс в программном обеспечении.
Из вики я узнал, что есть три режима работы burst mode, cycle stealing modeи transparent mode. И я узнал, что за поддержку отвечает аппаратное или программное обеспечение cache coherence.
Итак, я хочу знать, в частности, с диском ввода-вывода IDE на x86, при выполнении диска DMA, могут ли другие процессоры получить доступ к памяти? Например, дисковый DMA хочет передать данные в область памяти 0x10 ~ 0x30 (то есть, по моему мнению, DMA начинает передачу в 0x10 и вызовет прерывание, когда достигнет 0x30). Если теперь DMA передал 0x10 ~ 0x20, могут ли другие процессоры изменить 0x10 ~ 0x20 до завершения всего DMA?
Спасибо большое!

0
"Другие процессоры"? О какой именно архитектуре вы думаете? Обратите внимание, что «x86» - это очень широкий ярлык, даже если мы ограничим его только до 80386, а позже мы увидим огромное разнообразие. В частности, есть ли у процессоров какая-либо поддержка XMP. MSalters 10 лет назад 0
@MSalters Я имею в виду обычные настольные архитектуры x86, которые являются SMP или многоядерными, например, настольные компьютеры, которые мы привезли для семейства с архитектурой Intel Hashwell. 10 лет назад 0
Обычный рабочий стол ** не ** имеет другие процессоры. MSalters 10 лет назад 0
@MSalters О, я не знал этого раньше. Тогда как насчет замены "других процессоров" на "другие ядра"? tamlok 10 лет назад 0
В этом случае ядра одного чипа в любом случае совместно используют шину памяти. MSalters 10 лет назад 0

0 ответов на вопрос

Похожие вопросы