Epá, uma aplicação não exige em GHz nem em percentagens, uma aplicação quando manda o CPU executar uma tarefa, o CPU usa o máximo disponível para executar essa tarefa num dado instante. Mas reparem, se a aplicação está a mandar metade das instruçoes que o CPU era capaz de executar num segundo, diz-se que ele funciona a 50%.
Depois há outros factores que não me sinto ainda muito á vontade para falar como o tipo de instruçoes que o cpu executa, Int, Float, são 2 tipos de intruçoes diferentes que requerem diferentes capacidades do CPU.
É conforme a aplicação, por exemplo o SuperPI usa o máximo do CPU numa única thread porque executa a mesma instrução repetidas vezes sem parar, daí o CPU ficar a 100% no caso de um Core apenas. com dual core ficam ambos a 50% e não um a 0% e outro a 100%.
O facto de ele intrerpretar bem ou mal se deve subir o clock pro maximos julgo que é baseado num factor temporal.
Suponho que seja algo do tipo, se nos próximos 10ms eu (CPU) tiver que executar uma carrada de tarefas seguidas (ficar o a trabalhar a 100%) vou mazé aumentar o meu clock para executar as instruções dos 10ms seguintes mais depressa. Ou seja, deve haver um atraso que é quando o CPU faz o "raciocínio" mas é um atraso tão pequeno que é quase instantâneo.
Lembrem-se que estamos a falar de microprocessadores onde pode ser executadas 2.000.000 instruções em apenas um segundo.
Espero ter alumiado as vossas cabeças






