Я хотел бы знать, как микропроцессор (скажем, в архитектуре SandyBridge в длинном режиме) переключает данные из «кода L1» в кэш «данных L1» и наоборот?
Допустим, страница использовалась для хранения данных, поэтому она кэшируется в кеше L1. Затем во время выполнения ОС указатель инструкций переходит (выпуская инструкцию JMP) в область памяти, которая в данный момент кэшируется в кеше данных L1. Переносит ли процессор данные из данных L1 в кэш кода L1? Тот же вопрос, когда команда управления данными выдается по адресу, который хранится в кеше кода L1 (т.е. это означает, что адрес стал пригодным для хранения данных, а не для выполнения кода)
Как процессор справляется с этими проблемами?
Я спрашиваю об этом, потому что я изучаю самоизменяющийся код. Если у вас есть какая-либо дополнительная информация, где я мог бы прочитать подробности о кеше кода, пожалуйста, оставьте ссылку / ссылку.