Czy w procesorze szybkość obliczeń wpływa na wytwarzane ciepło?


9

Weźmy jako przykład procesor, który jest w stanie zmieniać prędkość taktowania, jak współczesny procesor komputera (Intel, AMD, cokolwiek). Kiedy wykonuje pewne obliczenia przy określonej prędkości zegara, czy generuje taką samą ilość ciepła jak wtedy, gdy wykonuje identyczne obliczenia przy wolniejszej częstotliwości zegara? Wiem, że rozpraszanie ciepła i gromadzenie ciepła to różne problemy, więc porozmawiajmy tylko o wytwarzanym surowym cieple.


Obliczenia wykonane z większą prędkością zajmują krócej.
Eugene Sh.

4
Myślę, że w komputerze idealnym w sensie Landauera obliczenia wytworzyłyby taką samą ilość energii cieplnej. Ale w rzeczywistych komputerach prawdopodobnie będzie inaczej. Zwłaszcza dlatego, że ilość ciepła, które już zostało wytworzone i jeszcze nie zostało rozproszone (tj. Temperatura półprzewodnika), wpłynie na jego właściwości, a tym samym na ciepło, które wytwarza.
Palenisko

Oczywiście, że tak, zaprojektowałem kilka układów FPGA i potrzebowaliśmy niskiej mocy. Dlatego użyliśmy źródła zegarowego 10 kHz zamiast źródła 1 MHz, ponieważ nie potrzebowaliśmy tak dużej mocy obliczeniowej.
lucas92

2
Dynamiczny pobór mocy jest proporcjonalny do kwadratu częstotliwości zegara w synchronicznych procesorach. Więc ciepło też powinno wzrosnąć.
Mitu Raj

1
@MITURAJ, dynamiczne zużycie energii jest proporcjonalne do prędkości zegara. Nie kwadrat prędkości zegara. Proporcjonalny do kwadratu napięcia.
mkeith,

Odpowiedzi:


14

Oprócz szybkości zegara należy pamiętać, że w prawdziwym „dużym” procesorze (takim, który ma pamięci podręczne, MMU, TLB, wykonywanie potokowe, SIMD itp.), Innym ważnym czynnikiem określającym ilość wytwarzanego ciepła byłoby to, jak dobrze przepływ instrukcji jest wykorzystywany dostępne zasoby procesora. Jeśli uruchomisz program, który wymaga dużej ilości pamięci, procesor głodowałby po prostu z powodu braku danych, nie robiąc nic, więc wytwarzane ciepło byłoby stosunkowo niskie. Czysto kod obliczeniowy z ciasnymi pętlami podgrzewałby więcej. Jeszcze więcej ciepła można wygenerować dzięki ściśle zoptymalizowanemu kodowi, który prawie nie powoduje nieprzewidzianych nieprzewidzianych oddziałów, intensywnie wykorzystuje jednostki SIMD, optymalnie wykorzystuje pamięci podręczne i tak dalej.

Istnieją programy specjalnie zaprojektowane do pracy z procesorem w tym trybie - podkreślając go w jak największym stopniu, Prime95 jest wybitnym przykładem na PC.

W rzeczywistości, jeśli komputer już działa Prime95 na wszystkich dostępnych rdzeniach procesora, a następnie jednocześnie uruchamiasz inną aplikację wymagającą dużej mocy procesora (np. Renderowanie 3D), zauważysz, że procesor się ochładza . Wynika to z faktu, że musi współdzielić bardzo ciężki kod Prime95 (który „zapala wszystkie tranzystory” ) z kodem renderującym o stosunkowo niskim zapotrzebowaniu (który prawdopodobnie ma wiele braków pamięci podręcznej i nieprzewidzianych rozgałęzień - te pozwalają procesorowi zatrzymać się na chwilę i uspokój się).

Kolejną rzeczą, którą powinieneś wziąć pod uwagę, jest to, że zwykle każdy procesor ma tabelę z dopuszczalnymi prędkościami zegara i napięciami rdzenia związanymi z każdą prędkością. Niższe zegary są również dopasowane do niższego napięcia, ponieważ producent stwierdził, że procesor będzie stabilny przy tym napięciu. Pobór mocy zmienia się mniej więcej liniowo w zależności od prędkości zegara, ale kwadratowo od napięcia.


1
Moc zmienia się kwadratowo w zależności od napięcia dla danej prędkości zegara . Zwykle używasz napięcia do liniowej zmiany częstotliwości taktowania. W rezultacie moc jest sześcienna względem napięcia, a prędkość zegara jest liniowa. Zatem zużycie energii jest kwadratowe w stosunku do prędkości zegara.
MooseBoys

SIMD może generować tyle ciepła, że ​​niektóre procesory przegrzewają się podczas intensywnego używania AVX512. +1 za wskazanie, że wzrost napięcia jest również istotny.
las

1
@MooseBoys, prawda, bardzo dobra uwaga. Warto jednak zauważyć, że w rzeczywistości, jeśli szybki procesor ma Vcore =
1,2 V

@anreiff Być może źle pamiętam, ale myślę, że niektóre nowoczesne układy Intela obniżą się do około 0,8 V w stanie bezczynności. W tym momencie mają one tylko ~ 700 MHz, a pamięć podręczna jest prawdopodobnie wyłączona.
mbrig

Chodzi o to, że nie zbliżają się do 0 V, jak można się spodziewać, jeśli szybkość zegara procesora i Vcore są proporcjonalne. To bardziej jak 3,5 GHz przy 1,2 V i 0,7 GHz przy 0,8 V. Zmniejszenie prędkości ma większy wpływ na rozpraszanie mocy niż napięcie, nawet jeśli to pierwsze wpływa na to „tylko” liniowo.
anrieff

5

Pobór mocy jest proporcjonalny do szybkości przejścia zegara i strat przewodzenia przy przełączaniu efektywnych bramek kondensatora. Wzrost temperatury jest jednak proporcjonalny do zużywanego czasu efektywnego oporu cieplnego, w stopniach C na wat, a zatem jest niezależny od energii, a raczej może działać chłodniej lub cieplej w zależności od zużycia energii i nie rozkładać tej mocy przez dłuższy okres czasu. Może istnieć wzór, który pokazuje, że wzrost temperatury wraz z prędkością zegara jest pewną ułamkową potęgą mocy większą niż jeden.


4
  • Moc będzie niższa przy niższej częstotliwości roboczej.

  • Przy tym samym napięciu rdzenia całkowita energia byłaby wyższa przy niższej częstotliwości zegara.

  • Ale jeśli napięcie rdzenia zostanie obniżone częstotliwościowo, całkowita energia może być mniejsza.

  • W przypadku algorytmów, które spędzają większość czasu na operacjach we / wy, czas wykonania będzie w przybliżeniu stały, niezależnie od częstotliwości taktowania rdzenia. Dlatego całkowita energia wymagana do obliczeń wzrośnie proporcjonalnie do częstotliwości zegara.


    Zużycie energii przez procesor składa się z dwóch części.

1) Pobór prądu statycznego (I_static). W przypadku określonego napięcia zasilania i temperatury ten pobór prądu jest stały, niezależnie od tego, co robi procesor.

Procesor wykonany w technologii CMOS składa się z tysięcy lub milionów tranzystorów MOSFET. Pobór prądu statycznego jest przede wszystkim spowodowany połączonym prądem upływu milionów tranzystorów MOSFET.

  • Pobór prądu statycznego zwykle wzrasta wraz ze wzrostem napięcia zasilania.

  • Pobór prądu statycznego zwykle wzrasta wraz ze wzrostem temperatury procesora.

  • Pobór prądu statycznego jest dla wielu urządzeń znacznie mniejszy niż pobór prądu dynamicznego.

2) Dynamiczny pobór prądu. W przypadku procesora zbudowanego z wykorzystaniem procesów CMOS prąd dynamiczny występuje, gdy tranzystory przełączają się między stanami włączenia / wyłączenia.

  • Dla określonego napięcia zasilania dynamiczny pobór prądu jest zwykle wprost proporcjonalny do częstotliwości.

  • Dynamiczny pobór prądu wzrasta wraz ze wzrostem napięcia zasilania.

Powód tego jest następujący. Każdy tranzystor MOSFET w CPU ma pewną związaną z nim pojemność. Za każdym razem, gdy przełącza się MOSFET; ładunek Q = C * V jest potrzebny do naładowania / rozładowania tej pojemności.

Dynamiczny pobór prądu dla każdego tranzystora wynosi I_dynamic = C * V * f.

Niezależnie od częstotliwości wykonywania instrukcji, określony zestaw operacji na konkretnym procesorze (przy założeniu identycznego zachowania z pamięci podręcznej i pamięci) zużywa określoną ilość całkowitego ładunku (program Q) z powodu dynamicznego poboru prądu, niezależnie od częstotliwości instrukcje są wykonywane w.

Ale jeśli instrukcje są wykonywane wolniej, całkowity ładunek z powodu poboru prądu statycznego będzie wyższy, ponieważ upłynęło więcej czasu.

Matematycznie można by napisać ...

W = (I_dynamic + I_static) * V_supply

E = W * czas = Q_program * V_supply + I_static * V_supply * time

Widzimy, że gdy częstotliwość zegara zbliża się do 0, moc zbliża się do stałej wartości, ale energia wymagana do obliczenia programu zbliża się do nieskończoności.

Jeśli więc (w oparciu o pojemności tranzystorów procesora) program Q_ jest ustalony dla określonego napięcia zasilania i zestawu operacji, w jaki sposób nowoczesne procesory oszczędzają energię, obniżając częstotliwość taktowania? Odpowiedź jest taka, że ​​większość współczesnych procesorów zawiera na pokładzie (lub w chipie towarzyszącym) regulowany regulator napięcia rdzenia. Gdy obniżą częstotliwość taktowania, mogą również obniżyć napięcie rdzenia. Q_program (i E_program) następnie obniża się proporcjonalnie do napięcia zasilania.

Należy zauważyć, że procesor nie może użyć niższego napięcia przy wyższych częstotliwościach, ponieważ przy niższych napięciach czas przełączania tranzystora rośnie.

Moc jest proporcjonalna do napięcia (do kwadratu) i poboru prądu. Jeśli więc napięcie spadnie jednocześnie z częstotliwością, wówczas moc spadnie wraz z sześcianem częstotliwości.


1

Tranzystory zużywają energię, która jest marnowana na ciepło. Istnieją dwa mechanizmy, energia statyczna i dynamiczna. Energia statyczna jest stała, a energia dynamiczna (przełączająca) występuje za każdym razem, gdy zmienia stan (0-> 1 lub 1-> 0). Energia dynamiczna (przełączająca) jest zwykle większym źródłem ciepła niż energia statyczna. Obliczenia, które chcesz wykonać, zajmą tę samą liczbę cykli zegara i spowodują, że ta sama liczba bitów tranzystora przełączy się niezależnie od prędkości zegara. Stąd dynamiczne ciepło jest takie samo dla obu sytuacji. Ciepło statyczne jest ... statyczne. Podsumowując, zakładając, że CPU wykonuje TYLKO 1 obliczenie, wówczas zużycie energii / ciepła jest dokładnie takie samo, gdy jest uśredniane dla danego okresu.


Zbliżasz się do krawędzi prawdy, ale pozwolę jej sobie poradzić. Poziom energii dla CMOS rośnie prawie w linii liniowej z częstotliwością pracy, ale podwajając napięcie i czterokrotnie energię. Paskudne równanie I2R, nie licząc prędkości.
Sparky256

OP zapytał wyłącznie o szybkość zegara, nie wspominając o zmniejszonym napięciu.
TopCat

W powyższej odpowiedzi wymieniono karę za napięcia rdzenia. Nie sugerowałem, że musisz odpowiedzieć na ten problem. Robiłem tylko komentarz - w polu komentarza.
Sparky256

Pytanie dotyczyło CIEPŁA (mierzonego w dżulach), a nie mocy lub temperatury. Ciepło jest formą energii. Z wyjątkiem niewielkiej ilości energii otrzymanej ze źródeł wejściowych i dostarczonej do odbiorników, cała energia zużywana przez urządzenie stanie się ciepłem i ostatecznie zostanie rozproszona. W logice CMOS zużycie energii generuje ciepło, gdy zmienia się stan maszyny - zwykle raz na cykl zegara w tym momencie, gdy bramki znajdują się w połowie między 0 a 1. W ten sposób CIEPŁO dla danego zadania powinno być niezależne od prędkości zegara i całkowicie zależne na liczbę cykli zegara.
richard1941

1

W opisanym scenariuszu energia wymagana do obliczeń nie zależy od prędkości zegara. Ale upał może być „miękkim” terminem. Powiedzmy, że obliczenie zajmuje 1 dżul. Jeśli zrobisz to w ciągu 1 sekundy, to jest 1 dżul / s = 1 wat. Ale jeśli zajmie to 2 sekundy, to jest 1 dżul / 2 s = 0,5 dżula / s = 0,5 wata.

Procesor na pewno osiągnie wyższą temperaturę, jeśli obliczenia zostaną wykonane szybciej, ponieważ energia jest uwalniana szybciej. Nie sądzę, żeby mówienie czegoś więcej było zbyteczne.

Och, poza tym, że liczby, które wam podałem, nie mają być realistyczne. To tylko koncepcja.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.