Tomemos como exemplo uma CPU capaz de alterar sua velocidade de clock, como uma CPU de computador moderna (Intel, AMD, qualquer que seja). Quando faz um certo cálculo em uma determinada velocidade do relógio, gera a mesma quantidade de calor que quando faz o mesmo cálculo em uma velocidade mais lenta? Eu sei que a dissipação de calor e o acúmulo de calor são questões diferentes, então vamos falar sobre o calor bruto gerado.
9
Respostas:
Além da velocidade do relógio, lembre-se de que em uma CPU "grande" real (uma que possui caches, uma MMU, TLBs, execução em pipeline, SIMD etc.), outro fator importante de quanto calor é gerado seria o quão bem o fluxo de instruções utiliza os recursos de CPU disponíveis. Se você executa um programa que consome muita memória, na maioria das vezes a CPU fica sem informações, sem fazer nada, portanto o calor produzido é relativamente baixo. Um código puramente computacional com loops apertados aqueceria mais. Ainda mais calor poderia ser gerado com um código altamente otimizado que incorre em quase nenhuma previsão incorreta de ramificação, usa intensamente as unidades SIMD, faz o uso ideal dos caches e assim por diante.
Existem programas projetados especificamente para operar a CPU nesse modo - enfatizando o máximo possível, sendo o Prime95 um exemplo proeminente para o PC.
De fato, se um PC já executa o Prime95 em todos os núcleos de CPU disponíveis e você inicia simultaneamente outro aplicativo com uso intenso de CPU (por exemplo, renderização em 3D), você perceberá que a CPU esfria . Isso ocorre porque é necessário compartilhar o código Prime95 muito pesado (que "acende todos os transistores" ) com o código de renderização de demanda relativamente menor (que provavelmente tem muitas falhas de cache e previsões incorretas de ramificações - que permitem que a CPU pare por um tempo e esfrie).
Outra coisa que você deve levar em consideração é que geralmente cada CPU possui uma tabela com velocidades de clock permitidas e tensões principais associadas a cada velocidade. Os relógios inferiores também são compatíveis com a voltagem mais baixa, pois o fabricante determinou que a CPU permanecerá estável nessa voltagem. O consumo de energia varia aproximadamente linearmente com a velocidade do relógio, mas quadraticamente com a tensão.
fonte
A energia consumida é proporcional à taxa de transição do relógio e às perdas de condução com a comutação dos portões efetivos do capacitor. O aumento da temperatura, no entanto, é proporcional à energia consumida vezes a resistência térmica efetiva, em graus C por watt e, portanto, é independente da energia, ou melhor, pode ficar mais frio ou mais quente, dependendo do consumo de energia e não espalhar essa energia por um longo período de tempo. Pode haver uma fórmula que mostre que o aumento da temperatura com a velocidade do relógio é uma potência fracionária maior que uma.
fonte
A potência será menor na frequência operacional mais baixa.
Na mesma tensão de núcleo, a energia total seria maior na freqüência de clock mais baixa.
Mas se a tensão do núcleo for ajustada para baixo com frequência, a energia total poderá ser menor.
Para algoritmos que passam a maior parte do tempo aguardando operações de E / S, o tempo de execução será aproximadamente constante, independentemente da frequência do clock principal. Portanto, a energia total necessária para o cálculo aumentará proporcionalmente à frequência do relógio.
O consumo de energia de uma CPU consiste em duas partes.
1) consumo de corrente estática (I_estatic). Para alguma tensão e temperatura de fornecimento em particular, esse consumo de corrente é constante, independentemente do que a CPU esteja fazendo.
Uma CPU feita usando a tecnologia CMOS consiste em milhares ou milhões de transistores MOSFET. O consumo de corrente estática deve-se principalmente à corrente combinada de fuga de milhões de transistores MOSFET.
O consumo de corrente estática geralmente aumenta à medida que a tensão de alimentação aumenta.
O consumo de corrente estática geralmente aumenta à medida que a temperatura da CPU aumenta.
O consumo de corrente estática é para muitos dispositivos muito menor que o consumo de corrente dinâmica.
2) consumo dinâmico de corrente. Para um processador construído usando processos CMOS, a corrente dinâmica ocorre quando os transistores alternam entre os estados liga / desliga.
Para uma tensão de alimentação especificada, o consumo de corrente dinâmica é geralmente diretamente proporcional à frequência.
O consumo dinâmico de corrente aumenta à medida que a tensão de alimentação aumenta.
O motivo é o seguinte. Cada transistor MOSFET na CPU possui uma certa quantidade de capacitância associada. Cada vez que um MOSFET muda; uma carga Q = C * V é necessária para carregar / descarregar essa capacitância.
O consumo dinâmico de corrente para cada transistor é I_dynamic = C * V * f.
Independentemente da frequência com que as instruções são executadas, um conjunto específico de operações em uma CPU específica (assumindo um comportamento idêntico do cache e da memória) consome uma certa quantidade de carga total (programa Q_) devido ao consumo dinâmico de corrente, independentemente da frequência que as instruções são executadas em.
Porém, se as instruções forem executadas mais lentamente, a carga total devido ao consumo de corrente estática será maior porque mais tempo se passou.
Matematicamente, pode-se escrever ...
W = (I_dynamic + I_estatic) * V_supply
E = W * time = Q_program * V_supply + I_static * V_supply * time
Podemos ver que, quando a frequência do relógio se aproxima de 0, a potência se aproxima de um valor fixo, mas a energia necessária para calcular o programa se aproxima do infinito.
Portanto, se (com base nas capacitâncias dos transistores da CPU) Q_program for fixado para uma tensão de alimentação específica e um conjunto de operações, como as CPUs modernas economizam energia diminuindo sua frequência de clock? A resposta é que a maioria das CPUs modernas inclui onboard (ou em um chip complementar) um regulador de tensão de núcleo ajustável. Quando eles abaixam a freqüência do relógio, eles também podem diminuir a tensão do núcleo. Q_program (e E_program) diminui proporcionalmente com a tensão de alimentação.
Observe que a CPU não pode usar a tensão mais baixa nas frequências mais altas, porque em tensões mais baixas o tempo de comutação do transistor aumenta.
A potência é proporcional à tensão (ao quadrado) e ao consumo de corrente. Portanto, se a tensão cair simultaneamente com a frequência, a potência cai com o cubo da frequência.
fonte
Os transistores usam energia que é desperdiçada como calor. Existem dois mecanismos: energia estática e dinâmica. A energia estática é constante e a energia dinâmica (de comutação) ocorre sempre que muda de estado (0-> 1 ou 1-> 0). A energia dinâmica (comutação) é geralmente a maior fonte de calor que a estática. O cálculo que você deseja executar terá o mesmo número de ciclos de clock e fará com que o mesmo número de bits do transistor seja invertido, independentemente da velocidade do clock. Portanto, o calor dinâmico é o mesmo para as duas situações. O calor estático é ... estático. Então, em resumo, supondo que a CPU SOMENTE esteja fazendo esse cálculo 1, o consumo de energia / calor é exatamente o mesmo quando a média é feita em um determinado período de tempo.
fonte
No cenário que você descreveu, a energia necessária para o cálculo não depende da velocidade do relógio. Mas calor pode ser um termo "mole". Digamos que o cálculo leva 1 Joule. Se você fizer isso em 1 segundo, isso significa 1 Joule / s = 1 Watt. Mas se levar 2 segundos, isso significa 1 Joule / 2seg = 0,5 Joule / s = 0,5 Watt.
O processador definitivamente alcançará uma temperatura mais alta se o cálculo for feito mais rapidamente, porque a energia é liberada mais rapidamente. Acho que não há muito sentido em dizer mais do que isso.
Ah, exceto que os números que eu lhe dei não são para ser realistas. É apenas o conceito.
fonte