Недавно я тестировал модуль linux cpufreq и заметил, что независимо от того, выполнял ли я тест с интенсивным использованием процессора или тест с интенсивным использованием памяти, модуль cpufreq всегда выбирал максимальную частоту.
Я понимаю, что регулятор играет важную роль в определении настроек частоты. Таким образом, я протестировал его как с регулятором ondemand, так и с консервативными регуляторами, и обнаружил, что результаты практически одинаковы (консервативный метод незначительно поднимается до максимальной частоты, тогда как ondemand сразу выбирает максимальную частоту).
Это подняло вопрос относительно того, что процессор фактически делает во время загрузки / хранения. Мы все знаем, что память работает значительно медленнее, чем процессор, и инструкции загрузки / сохранения обычно занимают несколько циклов процессора.
редактировать: я понимаю, что многие такие инструкции загрузки / хранения, вероятно, попадут в кэш. А как насчет тех, которые этого не делают?
Что на самом деле делает процессор во время этих циклов? Это занято или ждет?