Это относится к Руководству разработчика программного обеспечения InteI (номер заказа: 325384-039US, май 2011 г.), раздел 4.10.4.4 «Отложенная недействительность», описывает потенциальную задержку недействительности записей TLB, которая может привести к непредсказуемым результатам при доступе к памяти, чья подкачка-структура была изменена.
В руководстве говорится ... " Необходимые аннулирования могут быть отложены при некоторых обстоятельствах. Разработчики программного обеспечения должны понимать, что между модификацией записи структуры пейджинга иПри выполнении инструкции по аннулированию, рекомендованной в Разделе 4.10.4.2, процессор может использовать переводы, основанные либо на старом значении, либо на новом значении записи в структуре пейджинга. Следующие элементы описывают некоторые из потенциальных последствий отложенной аннулирования: Еслизапись в структуре пейджинга модифицируется для изменения флага R / W с 0 на 1, доступ для записи в линейные адреса, перевод которых управляется этой записью, может вызывать или не вызывать исключение ошибки страницы."
Давайте предположим простой случай, когда запись структуры страницы модифицируется (флаг r / w переключается с 0 на 1) для линейного адреса, и после этого вызывается соответствующая инструкция аннулирования TBLнемедленно.Мой вопрос - как следствие отсроченной аннулирования TLB s, возможно, что даже после вызова аннулирования TLB доступ на запись к линейному адресу, о котором идет речь , не является ошибкой (страницаошибка)?
Или «отложенная аннулирование» может привести к непредсказуемым результатам только в том случае, если не была выдана команда «аннулировать» для линейного адреса, структура страницы которого была изменена?