Ambil contoh CPU yang mampu mengubah kecepatan clock-nya, seperti CPU komputer modern (Intel, AMD, apa pun). Ketika melakukan perhitungan tertentu pada kecepatan clock tertentu, apakah itu menghasilkan jumlah panas yang sama seperti ketika melakukan perhitungan yang sama pada kecepatan clock yang lebih lambat? Saya tahu bahwa pembuangan panas dan penumpukan panas adalah masalah yang berbeda, jadi mari kita bicara tentang panas mentah yang dihasilkan.
9
Jawaban:
Selain kecepatan clock, perlu diingat bahwa dalam CPU "besar" yang nyata (yang memiliki cache, MMU, TLBs, eksekusi jaringan pipa, SIMD, dll.) Faktor penting lain dari berapa banyak panas yang dihasilkan adalah seberapa baik aliran instruksi menggunakan sumber daya CPU yang tersedia. Jika Anda menjalankan program yang intensif-memori, sebagian besar waktu CPU hanya akan kelaparan untuk data, tidak melakukan apa-apa, sehingga panas yang dihasilkan akan relatif rendah. Kode komputasi murni dengan loop ketat akan memanaskan lebih banyak. Bahkan lebih banyak panas dapat dihasilkan dengan kode yang dioptimalkan dengan ketat yang hampir tidak menimbulkan kesalahan prediksi cabang, menggunakan unit SIMD secara intensif, membuat penggunaan cache yang optimal dan sebagainya.
Ada beberapa program yang dirancang khusus untuk mengoperasikan CPU dalam mode ini - menekankan sebanyak mungkin, Prime95 menjadi contoh utama untuk PC.
Bahkan, jika PC sudah menjalankan Prime95 pada semua core CPU yang tersedia, dan kemudian Anda secara bersamaan memulai aplikasi intensif CPU lainnya (mis., Rendering 3D), Anda akan melihat bahwa CPU menjadi dingin . Ini karena ia harus timeshare kode Prime95 yang sangat berat (yang "menerangi semua transistor" ) dengan kode rendering permintaan yang relatif lebih rendah (yang kemungkinan memiliki banyak cache yang hilang dan salah duga cabang - yang memungkinkan CPU berhenti untuk sebentar dan dinginkan).
Hal lain yang harus Anda perhatikan adalah bahwa biasanya setiap CPU memiliki tabel dengan kecepatan clock yang diijinkan, dan voltase inti yang terkait dengan setiap kecepatan. Jam yang lebih rendah juga cocok dengan tegangan yang lebih rendah, karena pabrikan telah menentukan bahwa CPU akan stabil pada tegangan itu. Konsumsi daya bervariasi secara linear dengan kecepatan clock, tetapi secara kuadratik dengan tegangan.
sumber
Daya yang dikonsumsi sebanding dengan laju transisi jam dan kerugian konduksi dengan mengganti gerbang kapasitor yang efektif. Namun kenaikan suhu sebanding dengan daya yang dikonsumsi kali tahan panas yang efektif, dalam derajat C per watt dan karenanya tidak bergantung pada energi, atau lebih tepatnya dapat berjalan lebih dingin atau lebih panas tergantung pada konsumsi daya dan tidak menyebarkan daya tersebut dalam periode waktu yang lebih lama. Mungkin ada rumus yang menunjukkan bahwa kenaikan suhu dengan kecepatan clock adalah beberapa kekuatan daya pecahan lebih besar dari satu.
sumber
Watt akan lebih rendah pada frekuensi operasi yang lebih rendah.
Pada tegangan inti yang sama energi total akan lebih tinggi pada frekuensi clock yang lebih rendah.
Tetapi jika tegangan inti disesuaikan ke bawah dengan frekuensi maka energi total mungkin lebih sedikit.
Untuk algoritma yang menghabiskan sebagian besar waktu mereka menunggu operasi I / O, waktu eksekusi akan mendekati konstan terlepas dari frekuensi clock inti. Oleh karena itu total energi yang diperlukan untuk perhitungan akan naik sebanding dengan frekuensi clock.
Konsumsi daya CPU terdiri dari dua bagian.
1) Gambar arus statis (I_static). Untuk beberapa tegangan dan suhu suplai tertentu, penarikan arus ini konstan terlepas dari apa yang dilakukan CPU.
CPU yang dibuat menggunakan teknologi CMOS terdiri dari ribuan atau jutaan transistor MOSFET. Penarikan arus statis terutama disebabkan oleh gabungan arus bocor dari jutaan transistor MOSFET.
Gambar arus statis biasanya meningkat dengan meningkatnya tegangan suplai.
Gambar arus statis biasanya meningkat dengan meningkatnya suhu CPU.
Undian arus statis untuk banyak perangkat jauh lebih kecil daripada undian arus dinamis.
2) Gambar arus dinamis. Untuk prosesor yang dibangun menggunakan proses CMOS, arus dinamis terjadi ketika transistor beralih antara kondisi on / off.
Untuk tegangan suplai yang ditentukan, gambar arus dinamis biasanya berbanding lurus dengan frekuensi.
Draw arus dinamis meningkat dengan meningkatnya tegangan suplai.
Alasannya adalah sebagai berikut. Setiap transistor MOSFET dalam CPU memiliki sejumlah kapasitansi yang terkait dengannya. Setiap kali MOSFET beralih; biaya Q = C * V diperlukan untuk mengisi / melepaskan kapasitansi itu.
Undian arus dinamis untuk setiap transistor adalah I_dynamic = C * V * f.
Terlepas dari frekuensi berapakah instruksi dieksekusi, serangkaian operasi tertentu pada CPU tertentu (dengan asumsi perilaku yang identik dari cache, dan memori) mengkonsumsi sejumlah total muatan (Q_program) karena penarikan arus dinamis, terlepas dari frekuensi bahwa instruksi dieksekusi pada.
Tetapi jika instruksi dieksekusi lebih lambat maka total muatan akibat arus statis akan lebih tinggi karena lebih banyak waktu telah berlalu.
Secara matematis orang bisa menulis ...
W = (I_dynamic + I_static) * V_supply
E = W * waktu = Q_program * V_supply + I_static * V_supply * waktu
Kita dapat melihat bahwa ketika frekuensi clock mendekati 0 watt akan mendekati nilai tetap, tetapi energi yang diperlukan untuk menghitung program mendekati tak terbatas.
Jadi jika (berdasarkan kapasitansi dari transistor CPU) Q_program diperbaiki untuk tegangan suplai tertentu dan serangkaian operasi, bagaimana CPU modern menghemat daya dengan menurunkan frekuensi clock mereka? Jawabannya adalah bahwa sebagian besar CPU modern termasuk onboard (atau dalam chip pendamping) pengatur tegangan inti yang dapat disesuaikan. Ketika mereka menurunkan frekuensi clock mereka, mereka juga dapat menurunkan tegangan inti mereka. Q_program (dan E_program) kemudian turun secara proporsional dengan tegangan suplai.
Perhatikan bahwa CPU tidak dapat menggunakan tegangan yang lebih rendah pada frekuensi yang lebih tinggi karena pada tegangan yang lebih rendah waktu switching transistor meningkat.
Watt sebanding dengan tegangan (kuadrat) dan arus yang mengalir. Jadi jika tegangan turun bersamaan dengan frekuensi maka watt turun dengan kubus frekuensi.
sumber
Transistor menggunakan energi, yang terbuang sebagai panas. Ada dua mekanisme, energi statis dan dinamis. Energi statis adalah konstan, dan energi dinamis (switching) terjadi setiap kali ia berubah keadaan (0 -> 1 atau 1 -> 0). Energi dinamis (switching) biasanya merupakan sumber panas yang lebih besar daripada energi statis. Perhitungan yang ingin Anda lakukan akan mengambil jumlah siklus clock yang sama, dan menyebabkan jumlah bit transistor yang sama untuk flip terlepas dari kecepatan clock. Karenanya panas dinamis adalah sama untuk kedua situasi. Panas statis adalah ... statis. Jadi secara ringkas, dengan asumsi CPU HANYA melakukan perhitungan 1 ini maka konsumsi energi / panas persis sama ketika dirata-rata selama periode waktu tertentu.
sumber
Dalam skenario yang Anda jelaskan, energi yang diperlukan untuk perhitungan tidak tergantung pada kecepatan jam. Tetapi panas bisa menjadi istilah "empuk". Katakanlah perhitungannya membutuhkan 1 Joule. Jika Anda melakukannya dalam 1 detik, itu adalah 1 Joule / detik = 1 Watt. Tetapi jika dibutuhkan 2 detik, itu adalah 1 Joule / 2sec = 0,5 Joule / detik = 0,5 Watt.
Prosesor pasti akan mencapai suhu yang lebih tinggi jika perhitungan dilakukan lebih cepat, karena energinya dilepaskan lebih cepat. Saya tidak berpikir ada banyak gunanya saya mengatakan lebih dari itu.
Oh, kecuali bahwa angka yang saya berikan kepada Anda tidak dimaksudkan untuk realistis. Itu hanya konsepnya.
sumber