Что процессор * действительно * делает во время инструкций памяти?

Недавно я тестировал модуль linux cpufreq и заметил, что независимо от того, выполнял ли я тест с интенсивным использованием процессора или тест с интенсивным использованием памяти, модуль cpufreq всегда выбирал максимальную частоту.

Я понимаю, что регулятор играет важную роль в определении настроек частоты. Таким образом, я проверил это как с регуляторами по требованию, так и с консервативными регуляторами, и обнаружил, что результаты практически одинаковы (у консерваторов есть крошечный подъем до максимальной частоты, тогда как по запросу сразу же выбирается максимальная частота).

Это подняло вопрос относительно того, что процессор фактически делает во время загрузки / хранения. Все мы знаем, что память работает значительно медленнее, чем ЦП, и инструкции загрузки / сохранения обычно занимают несколько циклов ЦП.

редактировать: я понимаю, что многие такие инструкции загрузки / хранения, вероятно, попадут в кэш. А как насчет тех, которые этого не делают?

Что на самом деле делает процессор во время этих циклов? Это занято - в ожидании или в режиме ожидания?

1 ответ

Решение

Термины CPU, процессор и процессорное ядро ​​являются ключевыми в вашем вопросе. Вы, вероятно, хотите спросить, что на самом деле делает ядро процессора, пока оно ожидает память.

В большинстве современных процессоров Intel он начинает выполнять другую ветвь инструкций. Это называется гиперпоточностью.

В большинстве других процессоров он по существу проводит время в состоянии ожидания.

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