Когерентность кеша IOMMU
В современных материнских платах x86 / x64 можно найти IOMMU от Intel и AMD. Они позволяют периферийным устройствам выполнять операции DMA (прямой доступ к памяти) в системном ОЗУ, используя виртуальные адреса вместо физической памяти.
Теперь давайте предположим, что периферийное устройство, выполняющее операцию DMA с использованием IOMMU, содержит некоторую память для кэширования ОЗУ системы, чтобы оптимизировать обработку часто используемых данных. Как обеспечить согласованность памяти между кешем периферийного устройства и системной оперативной памятью в этом случае? Всякий раз, когда периферийное устройство изменяет некоторые данные в своем кэше, не записывая их обратно в системное ОЗУ, любой доступ к той же памяти из ЦП будет касаться устаревших данных.
Единственный эффективный вариант, который я вижу, заключается в том, что периферийное устройство сообщает IOMMU, что необходимо сделать недействительной каждую страницу, которую оно считывает из системного ОЗУ, поскольку эта страница с этого момента будет кэшироваться периферийным устройством. Всякий раз, когда ЦП получит доступ к любой странице, ранее прочитанной периферийным устройством, произойдет сбой страницы. Соответственно, обработчик сбоев страниц будет заботиться о том, чтобы сбросить страницу из кэша периферийного устройства и прочитать ее обратно в системную память.
Возможно ли что-то подобное вообще? В частности, будущая модель программирования HSA заставляет меня поверить в это, поскольку одной из ее основных функций является единое пространство памяти, которое распределяется между процессорами и периферийными вычислительными блоками. Поскольку эти вычислительные блоки, скорее всего, будут иметь кеши, проблема когерентности памяти должна быть уже решена каким-то образом.
Спасибо за помощь!
Дэвид
0 ответов на вопрос
Похожие вопросы
-
6
Нужно ли иметь 3 модуля памяти DIMM для использования DDR3 или даже иметь возможность запуска 3-кана...
-
5
Почему фанат моего процессора гонит видео или виртуальные машины?
-
4
Есть ли определенное или ощутимое преимущество использования ECC RAM на настольном ПК?
-
-
2
Использование памяти iTunes
-
5
Как определить, какие надстройки Firefox используют больше всего памяти
-
5
Что мне делать со своей старой памятью?
-
3
Как определить, можно ли увеличить объем оперативной памяти с 2 до 4 ГБ на материнской плате ASUS P5...
-
6
Почему оперативная память для новых macbooks такая дорогая?
-
8
«Установить память попарно» Как это работает для 3 ГБ?
-
7
Куда делись остальные 0,8 ГБ ОЗУ?