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.
9
Odpowiedzi:
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.
źródło
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.
źródło
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.
źródło
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.
źródło
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.
źródło