I думаю ответ «не напрямую» - если смотреть на системное программирование AMD спецификация , поле ASID в блоке управления виртуальной машиной - это просто (до) 32-битный идентификатор для которого гипервизор устанавливает уникальное значение для каждого экземпляра виртуальной машины и используется в качестве дополнительного тега в поиске TLB.
Поскольку у вас нет прямого контроля над содержимым TLB в x86, вы не можете контролировать, какие записи заканчиваются в TLB - если процессор решит добавить запись в TLB, запись будет помечена текущим ASID , который по определению будет действительным при добавлении.
Это несколько окольным образом описано в разделе 15.15.1 ранее упомянутой спецификации системного программирования:
В реализациях, которые не обеспечивают способ выборочной очистки всех трансляций одного указанного ASID, программное обеспечение может эффективно сбрасывать записи TLB гостя, выделяя новый ASID для гостя и не повторно используя старый ASID, пока весь TLB не будет покраснел хотя бы один раз.
Это означает, что процессор не имеет понятия действительных или недействительных ASID - это просто число, текущее значение которого должно совпадать с ASID записей TLB, чтобы TLB достиг. Следовательно, если гипервизор некорректно сбрасывает ASID, прежде чем он его повторно использует, вы получите устаревшие хиты TLB.