Что является микроархитектурной причиной ZombieLoad? - PullRequest
3 голосов
/ 17 мая 2019

Моя интерпретация заключается в том, что при промахе TLB PMH обходит таблицу страниц и выполняет заполненные загрузки в буфер загрузки;если он сталкивается с доступными или грязными битами, которые необходимо установить, он передает код исключения, который будет отмечать нагрузку для выхода на пенсию (предположительно, он также размещает виртуальный адрес, загрузка которого требует помощи где-то, что доступно для подпрограммы MSROM).

Когда он удаляется, это когда исключение срабатывает, что приводит к сбросу конвейера и определенному специальному мопу MSROM, чтобы проявить себя на этапе выделения, который будет повторять весь обход (не знаю, почему PMH не может выполнить заполненные записи самостоятельно).но это общее убеждение относительно того, что происходит).Это кажется странным, потому что это означает, что должен быть моп, указывающий, что хранилище находится по физическому адресу, и не было бы такого мопа, если бы PMH выполнял заполненные хранилища.Специальная проблема UR MSROM должна была бы перейти к процедуре исключения ошибки страницы, если она встречает недопустимый или защищенный бит.Если не нужно устанавливать грязные / доступные биты, то именно PMH сообщит код исключения ошибки страницы.

В документе предполагается, что загрузка просто продолжается, а контроллер кэша L1d просто возвращается - вместо фиктивногозначение или 0 с кодом исключения отмененной загрузки - содержимое буфера заполнения строки, которое все еще может содержать содержимое, заполненное другим логическим ядром (которое затем может быть использовано для временной модификации кэша для атак синхронизации кэша).

Это просто глупая ошибка со стороны Intel;беспрецедентный побочный эффект?

...