Mengapa prosesor yang bekerja lebih keras menggunakan lebih banyak daya listrik?

16

Kembali di kabut waktu ketika saya mulai coding, setidaknya sejauh yang saya ketahui, prosesor semua menggunakan jumlah daya yang tetap. Tidak ada yang namanya prosesor "idle".

Saat ini ada berbagai macam teknologi untuk mengurangi penggunaan daya ketika prosesor tidak terlalu sibuk, sebagian besar dengan secara dinamis mengurangi laju jam.

Pertanyaan saya adalah mengapa menjalankan pada clock rate yang lebih rendah menggunakan daya yang lebih kecil?

Gambaran mental saya tentang prosesor adalah tegangan referensi (katakanlah 5V) mewakili biner 1, dan 0V mewakili 0. Oleh karena itu saya cenderung memikirkan 5V konstan yang diterapkan di seluruh chip, dengan berbagai gerbang logika yang melepaskan tegangan ini. ketika "mati", artinya jumlah daya konstan digunakan. Tingkat di mana gerbang ini dinyalakan dan dimatikan tampaknya tidak memiliki hubungan dengan daya yang digunakan.

Saya tidak ragu ini adalah gambar yang naif, tapi saya bukan insinyur listrik. Dapatkah seseorang menjelaskan apa yang sebenarnya terjadi dengan penskalaan frekuensi, dan bagaimana menghemat daya. Apakah ada cara lain bahwa prosesor menggunakan daya lebih atau kurang tergantung pada keadaan? mis. Apakah ia menggunakan lebih banyak daya jika lebih banyak gerbang terbuka?

Apa perbedaan prosesor seluler / daya rendah dengan sepupu desktop mereka? Apakah mereka lebih sederhana (lebih sedikit transistor?), Atau ada beberapa perbedaan desain mendasar lainnya?


sumber
8
Anda salah, prosesor tidak pernah menggunakan jumlah daya yang sama sepanjang waktu, selalu variabel. Menyederhanakan berbagai hal secara signifikan, orang dapat mengasumsikan bahwa daya hanya dihabiskan untuk mengganti nilai flip-flop tunggal. Oleh karena itu, semakin banyak perhitungan dilakukan per detik, semakin banyak register internal yang mengubah nilainya, semakin banyak daya yang dihabiskan.
2
Jika saya ingat barang elektronik saya dengan benar, sebagian besar energi "terbuang" (alias "panas") adalah kebocoran (alias (kecil) jumlah arus yang mengalir di mana tidak ada aliran yang harus terjadi). Itu terjadi lebih ketika Anda a.) Menggunakan tegangan yang lebih tinggi dan b.) Beralih pada frekuensi yang lebih tinggi. Sebagian besar CPU modern mengurangi baik tegangan maupun frekuensi dalam kondisi berdaya rendah (dan meskipun hanya mengurangi salah satu dari itu, itu masih merupakan keuntungan).
3
@ SK-logic: Banyak prosesor bersejarah menggunakan logika ECL, yang mengkonsumsi daya yang kira-kira sama, berapa pun clock rate-nya. Seymour Cray mendesain CDC 8600, Cray-1, Cray X-MP, Cray Y-MP, Cray T90 untuk menggunakan ECL. Artikel logika ECL Wikipedia mencantumkan beberapa lagi dari perusahaan lain. Apakah Anda mengatakan mesin-mesin itu tidak pernah ada, atau Anda mengatakan mereka tidak dihitung sebagai prosesor?
davidcary
Prosesor juga menghemat daya dengan menggunakan instruksi berhenti. Kernel sistem operasi dapat mengatur timer untuk membangunkan prosesor dan menjalankan instruksi itu untuk membuat prosesor tertidur.
Oskar Skog

Jawaban:

24

Tingkat di mana gerbang ini dinyalakan dan dimatikan tampaknya tidak memiliki hubungan dengan daya yang digunakan.

Di sinilah Anda salah. Pada dasarnya, setiap gerbang adalah kapasitor dengan kapasitansi yang sangat kecil. Mengaktifkan dan menonaktifkannya dengan "menghubungkan" dan "melepaskan" tegangan memindahkan muatan listrik yang sangat kecil ke dalam atau keluar dari gerbang - itulah yang membuatnya bertindak berbeda.

Dan muatan listrik yang bergerak adalah arus, yang menggunakan daya. Semua arus kecil dari miliaran gerbang yang diaktifkan miliaran kali per detik bertambah sedikit.

Michael Borgwardt
sumber
Itulah yang terjadi di memori - memori DRAM. Memori dari prosesor (cache) menggunakan SRAM yang tidak diimplementasikan dengan kapasitor ...
7
@ m3th0dman: Saya tidak berbicara tentang elemen yang dimaksudkan untuk menjadi kapasitor. Setiap transistor, setiap elemen di dalam CPU memiliki kapasitansi.
7

Seperti komentar SK-logika menunjukkan sebagian besar daya benar-benar dihabiskan untuk beralih flip-flop daripada kondisi mapan.

Untuk mengurangi secara dinamis ada dua hal utama yang dapat Anda lakukan IIRC.

  1. jika seluruh area chip tidak di-clock, Anda berpotensi mematikan daya untuk area tersebut sepenuhnya

  2. Pohon jam itu sendiri adalah salah satu saluran listrik terbesar dalam sistem, sebagian besar karena merupakan bagian peralihan tercepat dari suatu sistem. Jadi mengurangi kekuatan di pohon jam itu sendiri sangat penting.

jk.
sumber
Apa pohon jam itu?
akaltar
2
@akaltar total semua garis yang mendistribusikan sinyal jam ke setiap elemen prosesor yang perlu disinkronkan dengan jam.
Michael Borgwardt
6

Daya yang dikonsumsi oleh sirkuit elektronik memiliki dua komponen:

  • kebocoran, yang lebih atau kurang independen dari konstanta frekuensi dan akan tergantung pada teknologi dan tegangan kerja;
  • daya switching, yang tergantung pada frekuensi (itu karena memuat dan membongkar berbagai kapasitansi, transistor, dan kabel)

Untuk mengurangi konsumsi, desainer prosesor menggunakan beberapa teknik:

  • memodifikasi frekuensi tergantung pada beban (ini hanya akan bertindak pada daya switching)
  • mengurangi daya atau bahkan mematikan bagian dari sirkuit ketika mereka tidak diperlukan

Teknik-teknik ini memiliki akibat yang tergantung pada beban Anda, Anda mungkin lebih baik, dari konsumsi daya POV, baik mengurangi frekuensi atau melakukan "sprint" dengan kecepatan penuh dan kemudian memotong subset dari rangkaian.

Pemrogram
sumber
Mungkin juga mengurangi frekuensi memungkinkan untuk mengurangi tegangan operasi (karena transistor sedikit lebih lambat) untuk mengurangi kebocoran.
TEMLIB
0

Menjalankan dengan kecepatan clock yang lebih rendah tidak memengaruhi energi yang dibutuhkan untuk melakukan tugas tetap. Bahkan mungkin meningkatkan energi yang dibutuhkan jika Anda bertanggung jawab atas kebocoran, dan dapat dimatikan seluruhnya.

Di mana laju clock yang lebih rendah tidak menghemat energi juga mampu mengurangi tegangan pengoperasian. Mengurangi tegangan seringkali menghemat daya yang cukup untuk mengimbangi kebutuhan untuk tetap aktif lebih lama.

Sean Houlihane
sumber
Saya tidak setuju Sean. Menurunkan clock rate mengurangi semua kerugian switching parasit yang terlibat dalam seluruh rantai-jam, yang masif dalam CPU tipikal. Saya Atom netbook berjalan pada 1GHz, jika saya throttle CPU ke 500MHz berjalan lebih dingin dan tampak menarik daya kurang dari dari suplai, dan itu tidak mempengaruhi tugas - dibutuhkan dua kali lebih lama untuk selesai.
rdtsc
2
@rdtsc Hati-hati sekarang. Sean menulis energi , bukan kekuatan .
pipa
@rdtsc Anda membingungkan tenaga dan energi. Urutan pertama, tugas tertentu akan membutuhkan jumlah siklus clock tetap. Pikirkan tentang bagaimana baterai akan merespons tugas Anda di dua titik operasi yang berbeda.
Sean Houlihane
Ahh ya. Masih mengerjakan secangkir kopi pertama di sini. :) Saya harus mengukurnya, tapi saya pikir energi yang digunakan akan sedikit lebih banyak dengan clock rate yang lebih rendah, karena CPU modern memiliki begitu banyak peristiwa periodik untuk ditangani per detik. Akan ada lebih banyak dari ini untuk jam yang lebih lambat, dan lebih banyak berarti waktu yang lebih lama untuk penyelesaian tugas.
rdtsc
Beberapa latar belakang terkait membaca anandtech.com/show/9330/exynos-7420-deep-dive/6
Sean Houlihane