На x86-64, атомарна ли команда movnti или movntdq при сбое системы?

При использовании постоянной памяти, такой как Intel optane DCPMM, можно ли увидеть частичный результат после перезагрузки, если система выйдет из строя (отключение питания) при выполнении инструкции movnt?

Для:

  • 4 или 8 байт movnti какой x86 гарантирует атомарность для других целей?
  • 16-байтовый SSE movntdq / которые не гарантируются атомарными, но на практике, вероятно, находятся на процессорах, поддерживающих постоянную память.
  • 32-байтовый AVX /
  • 64-байтный AVX512 vmovntdq / vmovntps полные магазины
  • бонусный вопрос: MOVDIR64Bкоторый гарантировал 64-байтовую атомарность записи на будущих процессорах, которые его поддерживают, и DC-PM. например, Сапфир Рапидс Ксеон / Тигровое озеро / Тремонт .

movntpd считается идентичным movntps.


Связанные вопросы:

1 ответ

Решение

Гарантии атомарности на x86 с точки зрения глобальной наблюдаемости и устойчивости одинаковы. Это означает, что следующие операции постоянно атомарны:

  • Uop магазина, который не пересекает 8-байтовую границу с местоположением любого эффективного типа памяти, и
  • MOVDIR64B.

Кроме того, следующие операции постоянно атомарны:

  • Сброс строки кэша ( CLFLUSH или же CLFLUSHOPT),
  • Обратная запись строки кэша ( CLWB), а также
  • Неархитектурное вытеснение строки кэша.
  • Полная очистка буфера комбинирования записи на процессорах Intel. Наличие и размер WCB, а также причины сброса зависят от реализации. См .: Размещение невременных хранилищ Intel в одной строке кэша .

Нет гарантии постоянной атомарности архитектуры для всего остального, включая 64-байтовый AVX512. vmovntdq / vmovntps полные магазины.

Эти гарантии применяются к платформам с асинхронным обновлением DRAM (ADR) и платформам с улучшенным асинхронным обновлением DRAM (eADR). (В eADR иерархия кэша находится в домене сохраняемости. См. Создание приложений постоянной памяти с надежной доступностью и удобством обслуживания. )

Этот ответ основан на моей личной переписке с Энди Рудоффом (Intel).

Другие вопросы по тегам