Согласно «Предварительная выборка данных в кэш данных L1» в руководстве по оптимизации архитектуры Intel 64-ia-32 (сентябрь 2019 г.), инструкция PREFETCHNTA работает, если «Загрузка выполняется из памяти с обратной записью».
Мой вопрос в том, применим ли «тип памяти с обратной записью» к обычной кучной памяти?
Согласно первому ответу на текущие архитектуры x86 поддерживать невременные нагрузки (из нормальной памяти)? (от BeeOnRope), «Да, последние массовые процессоры Intel поддерживают невременные нагрузки на обычную память, но только« косвенно »с помощью невременных инструкций предварительной выборки, а не напрямую с использованием невременных инструкций загрузки, таких как movntdqa. В отличие от невременных хранилищ, где вы можете просто напрямую использовать соответствующие невременные инструкции сохранения ".
Я задал аналогичный вопрос на странице Можно ли использовать невременные инструкции mov для памяти кучи? и ответ (Питера Кордеса) был: «Вы можете использовать NT-хранилища, такие как movntps, в обычной памяти WB (то есть в куче)». Этот вопрос касается невременных загрузок (не хранилищ) с PREFETCHNTA.
Из того, что я прочитал, похоже, что PREFETCHNTA работает с обычной памятью кучи, но мне интересно, почему он всегда квалифицируется как «должен быть тип памяти с обратной записью».