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

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

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

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

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

1 ответ1

2

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

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .