Mengapa CPU membutuhkan banyak arus?

37

Saya tahu bahwa CPU sederhana (seperti Intel atau AMD) dapat mengkonsumsi 45-140 W dan banyak CPU yang beroperasi pada 1,2 V, 1,25 V, dll.

Jadi, dengan asumsi CPU beroperasi pada 1,25 V dan memiliki TDP 80 W ... menggunakan 64 Amps (banyak amp).

  1. Mengapa CPU membutuhkan lebih dari 1 A di sirkuit mereka (dengan asumsi transistor FinFET)? Saya tahu bahwa sebagian besar waktu CPU idle, dan 60 A semuanya "pulsa" karena CPU memiliki jam, tetapi mengapa CPU tidak dapat beroperasi pada 1 V dan 1 A?

  2. Transistor FinFET yang kecil dan cepat, misalnya: 14 nm yang beroperasi pada 3,0 GHz membutuhkan berapa banyak amp (kira-kira)?

  3. Apakah arus yang lebih tinggi membuat transistor aktif dan / atau mati lebih cepat?

Leonardo Bosquett
sumber
27
CPU modern (tidak ada yang 'sederhana') membutuhkan beberapa voltase rel semua dengan kebutuhan daya mereka sendiri. Pertanyaan Anda membuat banyak asumsi dan memiliki banyak pernyataan yang salah. Anda harus mempertimbangkan semua persyaratan daya dan bukan hanya persyaratan untuk satu rel saja.
Wossname
8
Lakukan penghitungan transistor FinFET pada CPU modern. Tidak setiap FET melakukan arus dari Vdd ke ground, tetapi meskipun demikian, 64 A didistribusikan lebih dari * sejumlah besar * FET switching ini.
glen_geek
9
@EricLippert "harus menarik 64 amp dari dinding" - Saya curiga bahwa CPU tidak akan beroperasi pada 110 V.
Andrew Morton
6
Kuantitas yang dilestarikan adalah energi, dan rata-rata juga kekuatan. Jika CPU menarik 64 Watt, maka catu daya harus menarik setidaknya 64 Watt dari soket. Itu <1A bahkan pada 110V.
MSalters
6
@EricLippert Motherboard di komputer Anda berisi konverter DC ke DC multi-fase yang mengatur tegangan suplai (12V untuk casing desktop, mungkin 12-19V untuk laptop) ke voltase suplai inti. Ini dilakukan dengan DAYA konstan, sehingga arus keluaran menjadi 10-20 kali dari arus input. Belum lagi pasokan 12V di komputer desktop juga berasal dari catu daya switching yang juga dikonversi dengan daya konstan. CPU di komputer Anda mungkin memiliki setidaknya 100 pin daya dan ground untuk menangani arus.
alex.forencich

Jawaban:

70
  1. CPU tidak 'sederhana' oleh imajinasi apa pun. Karena mereka memiliki beberapa miliar transistor, masing-masing akan memiliki beberapa kebocoran kecil saat idle dan harus mengisi dan melepaskan gerbang dan kapasitansi interkoneksi di transistor lain ketika beralih. Ya, masing-masing menarik arus kecil, tetapi ketika Anda mengalikannya dengan jumlah transistor, Anda berakhir dengan jumlah yang sangat besar. 64A sudah menjadi arus rata-rata ... saat beralih, transistor dapat menarik lebih banyak dari rata-rata, dan ini diperhalus oleh kapasitor bypass. Ingatlah bahwa angka 64A Anda berasal dari bekerja mundur dari TDP, menjadikannya benar-benar 64A RMS, dan mungkin ada variasi signifikan di sekitarnya pada banyak skala waktu (variasi selama siklus jam, variasi selama operasi berbeda, variasi antara kondisi tidur, dll. ). Juga, Anda mungkin bisa lolos dengan menjalankan CPU yang dirancang untuk beroperasi pada 3 GHz pada 1,2 volt dan 64 amp pada 1 volt dan 1 amp .... mungkin saja pada 3 MHz. Walaupun pada saat itu Anda kemudian harus khawatir tentang apakah chip tersebut menggunakan logika dinamis yang memiliki frekuensi clock minimum, jadi mungkin Anda harus menjalankannya pada beberapa ratus MHz ke GHz dan menggantinya ke tidur nyenyak secara berkala untuk mendapatkan rata-rata arus bawah. Intinya adalah kekuatan itu = kinerja. Kinerja sebagian besar CPU modern sebenarnya terbatas secara termal. jadi mungkin Anda harus menjalankannya pada beberapa ratus MHz ke GHz dan siklus ke tidur nyenyak secara berkala untuk mendapatkan rata-rata arus turun. Intinya adalah kekuatan itu = kinerja. Kinerja sebagian besar CPU modern sebenarnya terbatas secara termal. jadi mungkin Anda harus menjalankannya pada beberapa ratus MHz ke GHz dan siklus ke tidur nyenyak secara berkala untuk mendapatkan rata-rata arus turun. Intinya adalah kekuatan itu = kinerja. Kinerja sebagian besar CPU modern sebenarnya terbatas secara termal.
  2. Ini relatif mudah untuk dihitung - , di mana adalah arus, adalah kapasitansi beban, adalah tegangan, adalah faktor aktivitas, dan adalah frekuensi switching. Saya akan melihat apakah saya bisa mendapatkan nomor rata-rata untuk kapasitansi gerbang FinFET dan mengedit. saya=CvαfsayaCvαf
  3. Semacam. Semakin cepat kapasitansi gerbang diisi atau dikosongkan, semakin cepat transistor akan beralih. Pengisian lebih cepat membutuhkan kapasitansi yang lebih kecil (ditentukan oleh geometri) atau arus yang lebih besar (ditentukan oleh resistansi interkoneksi dan tegangan suplai). Transistor individu beralih lebih cepat maka berarti mereka dapat beralih lebih sering, yang menghasilkan lebih banyak arus rata-rata (sebanding dengan frekuensi clock).

Sunting: jadi, http://www.synopsys.com/community/universityprogram/documents/article-iitk/25nmtriplegatefinfetswithraisedsourcedrain.pdf memiliki angka untuk gerbang kapasitansi FinFET 25nm. Saya hanya akan menyebutnya 0,1 fF demi menjaga hal-hal sederhana. Rupanya itu bervariasi dengan tegangan bias dan tentu saja akan bervariasi dengan ukuran transistor (transistor berukuran sesuai dengan tujuan mereka di sirkuit, tidak semua transistor akan memiliki ukuran yang sama! Transistor yang lebih besar 'lebih kuat' karena mereka dapat beralih lebih banyak arus, tetapi mereka juga memiliki kapasitansi gerbang yang lebih tinggi dan membutuhkan lebih banyak arus untuk mengemudi).

Mencolokkan 1,25 volt, 0,1 fF, 3 GHz, dan , hasilnya adalah . Lipat gandakan dengan 1 miliar dan Anda mendapatkan 375 A. Itulah arus gerbang rata-rata yang diperlukan (biaya per detik ke kapasitansi gerbang) untuk mengganti 1 miliar transistor ini pada 3 GHz. Itu tidak masuk hitungan 'shoot through,' yang akan terjadi selama pergantian logika CMOS. Ini juga rata-rata, sehingga arus sesaat dapat sangat bervariasi - pikirkan bagaimana arus yang berkurang asimtotik berkurang saat sirkuit RC mengisi daya. Lewati kapasitor pada media, paket, dan papan sirkuit dengan menghaluskan variasi ini. Jelas ini hanyalah angka rata-rata, tetapi tampaknya urutan besarnya tepat. Ini juga tidak mempertimbangkan arus bocor atau muatan yang disimpan dalam parasit lain (mis α=10,375μSEBUAH

Di sebagian besar perangkat, akan jauh lebih sedikit dari 1 karena banyak transistor akan menganggur pada setiap siklus clock. Ini akan bervariasi tergantung pada fungsi transistor. Sebagai contoh, transistor dalam jaringan distribusi jam akan memiliki karena mereka beralih dua kali pada setiap siklus jam. Untuk sesuatu seperti penghitung biner, LSB akan memiliki 0,5 karena ia beralih sekali per siklus clock, bit berikutnya akan memiliki karena ia beralih setengah sesering, dll. Namun, untuk sesuatu seperti memori cache,αα=1αα=0,25αbisa sangat kecil. Ambil cache 1 MB, misalnya. Memori cache 1 MB yang dibangun dengan sel SRT 6T memiliki 48 juta transistor hanya untuk menyimpan data. Ini akan memiliki lebih banyak untuk logika baca dan tulis, demultiplexer, dll. Namun, hanya segelintir yang akan beralih pada siklus jam tertentu. Katakanlah baris cache adalah 128 byte, dan baris baru ditulis pada setiap siklus. Itu 1024 bit. Dengan asumsi konten sel dan data baru bersifat acak, 512 bit diharapkan akan dibalik. Itu 3072 transistor dari 48 juta, atau . Perhatikan bahwa ini hanya untuk larik memori itu sendiri; sirkuit dukungan (decoder, logika baca / tulis, indera perasa, dll.) akan memiliki jauh lebih besarα=0,000061α. Oleh karena itu mengapa konsumsi daya memori cache biasanya didominasi oleh arus bocor - yaitu BANYAK transistor yang menganggur hanya duduk di sekitar bocor alih-alih beralih.

alex.forencich
sumber
4
1V 1A bukan target yang aneh, ARM CPU cukup umum disebut sebagai mW / MHz. Sebagai perbandingan, seluruh Raspberry Pi A + menggunakan 1Watt, termasuk CPU 700 Mhz - jauh lebih banyak daripada yang disarankan
3Mhz
2
Lebih bermanfaat untuk merujuk ke "MIPS per watt", karena jumlah pekerjaan yang dilakukan per siklus clock sangat bervariasi.
pjc50
1
Yah, itu tergantung pada apa chip dirancang untuk dilakukan. Sebuah chip dengan TDP 80W yang dirancang untuk berjalan pada 3 GHz pada 1,2 volt mungkin dapat berjalan pada 1V dan 1A ... tetapi pada 1V Anda harus menurunkan kecepatan secara signifikan, dan untuk membuatnya menggambar 1A Anda Aku harus menurunkan kecepatan lebih. Anda tidak akan mendekati 3 GHz dalam kasus itu. Saya tidak tahu apa yang sebenarnya dapat Anda capai, karena saya belum mencobanya sendiri. Mungkin 3 MHz agak pesimistis untuk i7 pada 1V dan 1A. Sekarang, tentu saja mungkin untuk merancang chip untuk berjalan pada level daya itu, seperti yang Anda sebutkan.
alex.forencich
6
Mereka tidak sederhana. Sebenarnya mereka adalah salah satu hal paling rumit yang pernah kami bangun.
joojaa
2
CPU Intel / AMD modern menggunakan setidaknya beberapa logika dinamis yang akan benar-benar gagal berfungsi jika clocknya terlalu rendah . Intel Skylake (misalnya) memiliki frekuensi / titik voltase efisien minimum. Untuk mencapai level throughput / daya yang lebih rendah untuk SoC, ia mengubah inti masuk dan keluar dari tidur pada siklus tugas variabel (> = 800us pada mungkin ~ 1GHz (paling efisien f), istirahat dalam tidur). Lihat Efraim Rotem IDF2015 Skylake power-mgmt talk, sekitar 53 menit dalam
Peter Cordes
17

Menurut Wikipedia , CPU teratas yang dirilis pada 2011 memiliki sekitar 0,5 hingga 2,5 miliar transistor. Dengan asumsi CPU dengan 1 miliar transistor mengkonsumsi arus 64A, arus rata-rata hanya 64nA per transistor. Mempertimbangkan frekuensi operasi beberapa GHz, sebenarnya sangat sedikit.

Dmitry Grigoryev
sumber
Apakah untuk frekuensi operasi CPU yang lebih tinggi diperlukan arus yang lebih tinggi?
Lu Ka
2
sayasaya0+kfCV2
4
Pada titik ini, kita dapat menempatkan lebih banyak transistor pada CPU daripada yang dapat kita gunakan pada saat yang sama tanpa meleburnya. Jadi pada waktu tertentu, sebagian besar chip adalah Dark Silicon : tidak dinyalakan, tetapi duduk di sana menunggu untuk digunakan sementara bagian lain dari chip (dengan fungsi khusus yang berbeda) dimatikan. misalnya perangkat keras floating point vektor, pengganda integer vektor, dan unit pengocok vektor tidak semuanya bisa jenuh sekaligus, tetapi masing-masing memiliki throughput tinggi ketika digunakan sendiri. Juga, cache besar tidak banyak berubah.
Peter Cordes
1
Ini adalah faktor besar dalam CPU yang mendapatkan semakin banyak perangkat keras khusus, seperti instruksi kripto AES dan SHA, dan BMI2 Intel (terutama bit-extract / deposit / deposit PEXT / PDEP ). Ada hubungannya dengan anggaran transistor yang dapat mempercepat beberapa beban kerja tetapi tidak harus dinyalakan ketika tidak digunakan.
Peter Cordes