Зависящий от памяти предварительный выборщик данных ( DMP ) — это предварительный выборщик кэша , который просматривает содержимое кэш-памяти на предмет возможных значений указателей и предварительно извлекает данные из этих мест в кэш, если обнаруживает шаблоны доступа к памяти, которые предполагают, что следование этим указателям было бы полезным. [1] [2]
По состоянию на 2022 год предварительная выборка данных уже была обычной функцией в ЦП, [3], но большинство предварительных выборок не проверяют данные в кэше на наличие указателей, а работают, отслеживая шаблоны доступа к памяти. Предварительные выборки, зависящие от памяти данных, делают еще один шаг вперед.
DMP в архитектуре компьютера Apple M1 продемонстрировала возможность использования в качестве побочного канала памяти в атаке, опубликованной в начале 2024 года. На тот момент ее авторы не знали ни одного практического способа ее использования. [4] Впоследствии было обнаружено, что DMP еще более оппортунистический, чем считалось ранее, и теперь было продемонстрировано, что его можно использовать для эффективной атаки на различные криптографические алгоритмы в работе, названной ее авторами GoFetch . [5] [6]
Процессоры Intel Core также имеют функционал DMP (Intel использует термин «Data Dependent Prefetcher»), но Intel заявляет, что у них есть функции, предотвращающие использование их DMP для атак по сторонним каналам. [7] Авторы GoFetch заявляют, что им не удалось заставить свой эксплойт работать на процессорах Intel. [6]