#memory #operating-system #cpu #dma
#память #операционная система #процессор #dma
Вопрос:
(Я новичок в изучении операционных систем. Это может быть глупый вопрос)
Я узнал, что DMA позволяет устройствам ввода-вывода, таким как диски, взаимодействовать с основной памятью напрямую независимо от процессора. Во время передачи данных шина памяти остается занятой. Но как это влияет на процессор? Что, если процессор захочет использовать память в течение этого времени? Нужно ли ждать, даже если для передачи данных требуется очень много времени?
Спасибо.
Комментарии:
1. «Я узнал, что DMA позволяет использовать устройства ввода-вывода, такие как диски …» — Периферийное устройство должно быть подключено к системной шине, чтобы использовать DMA. Дисковод может быть внешним устройством и обычно подключается через интерфейс, такой как SATA или USB. Итак, источником / назначением DMA с памятью является (хост) контроллер SATA или USB.
Ответ №1:
Это зависит от особенностей реализации кэша шины и (процессора). В простом случае процессор остановится при загрузке / сохранении инструкции или извлечении команды, ожидая, пока шина станет неактивной.
Однако, поскольку большинство процессоров имеют кэш между основной шиной памяти и ядрами, этого часто избегают. Если доступ попадает в кеш, доступ к шине может быть закрыт. В качестве альтернативы, кэш может позволить отложить запись в основную память до тех пор, пока шина не будет неактивна, или запись может вообще никогда не выходить в основную память. Некоторые аппаратные средства кэширования «отслеживают» шину памяти, эффективно прослушивая доступ к памяти, который мог бы попасть в строку кэша в кэше, а затем автоматически обновляет кэш. Это избавляет процессор от необходимости обрабатывать отдельную транзакцию для получения данных DMA из ОЗУ в кэш.
Кроме того, некоторые шины поддерживают систему приоритетов для оборудования, которая позволяет приостанавливать DMA, если более приоритетное оборудование должно использовать шину, например, процессор.