Apa yang membatasi kecepatan CPU?

102

Saya baru-baru ini berbicara dengan seorang teman tentang kompilasi LaTeX. LaTeX hanya dapat menggunakan satu inti untuk dikompilasi. Jadi untuk kecepatan kompilasi LaTeX, kecepatan clock CPU adalah yang paling penting (lihat Tips untuk memilih perangkat keras untuk kinerja kompilasi LaTeX terbaik )

Karena penasaran, saya telah mencari CPU dengan kecepatan clock tertinggi. Saya pikir itu adalah Intel Xeon X5698 dengan 4,4 GHz ( sumber ) yang memiliki kecepatan clock tertinggi.

Tetapi pertanyaan ini bukan tentang CPU yang dijual. Saya ingin tahu seberapa cepat bisa didapat jika Anda tidak peduli dengan harganya.

Jadi satu pertanyaan adalah: Apakah ada batasan fisik untuk kecepatan CPU? Seberapa tinggi?

Dan pertanyaan lainnya adalah: Berapa kecepatan CPU tertinggi yang dicapai sejauh ini?

Saya selalu berpikir bahwa kecepatan CPU terbatas karena pendinginan (jadi panas ) menjadi sangat sulit. Tetapi teman saya ragu bahwa ini adalah alasannya (ketika Anda tidak harus menggunakan sistem pendingin tradisional / murah, misalnya dalam percobaan ilmiah).

Dalam [2] Saya pernah membaca bahwa keterlambatan pengiriman menyebabkan keterbatasan kecepatan CPU. Namun, mereka tidak menyebutkan seberapa cepat itu bisa didapat.

Apa yang saya temukan

Tentang saya

Saya seorang mahasiswa ilmu komputer. Saya tahu sesuatu tentang CPU, tetapi tidak terlalu banyak. Dan lebih sedikit lagi tentang fisika yang mungkin penting untuk pertanyaan ini. Jadi harap ingat itu untuk jawaban Anda, jika memungkinkan.

Martin Thoma
sumber
10
Pertanyaan Anda bagus, mengharapkan jawaban yang sangat bagus dan berpendidikan. Dua sen saya: implikasi "hanya satu inti" -> "jam yang paling penting" tidak benar.
Vladimir Cravero
12
Rekor saat ini untuk CPU yang di-overclock adalah AMD Bulldozer, yang berjalan pada 8,4 GHz . Itu didinginkan menggunakan nitrogen cair.
tcrosley
2
Padahal judul pertanyaannya adalah "Apa yang membatasi kecepatan CPU?" Perlu dicatat bahwa pernyataan: "LaTeX hanya dapat menggunakan satu inti untuk dikompilasi. Jadi untuk kecepatan kompilasi LaTeX, kecepatan clock CPU adalah yang paling penting" belum tentu benar. Cache CPU dapat membuat perbedaan juga. Karena cara kerja CPU modern, dikombinasikan dengan fakta bahwa ada CPU yang berbeda memiliki frekuensi yang sama tetapi ukuran cache yang berbeda dan bagaimana perangkat lunak itu ditulis dan digunakan, cache CPU mungkin memiliki pengaruh yang lebih besar pada kecepatan eksekusi daripada Frekuensi CPU.
Shivan Dragon
2
Kinerja single-thread tidak berbanding lurus dengan kecepatan clock; hubungan lebih kompleks. Ini mungkin sebagian disembunyikan oleh kesamaan mikroarsitektur Intel x86 baru-baru ini dengan perbaikan mikroarsitektur yang mengkompensasi beberapa biaya dalam peningkatan frekuensi.
Paul A. Clayton
9
Saya sarankan membandingkan prosesor 2GHz 2004 dengan prosesor 2GHz 2014; Anda akan menemukan bahwa mereka tidak berada di stadion baseball yang sama bahkan pada tugas berulir tunggal, dan bahkan ketika keduanya mengimplementasikan set instruksi yang sama - instruksi CISC yang mereka berikan adalah satu hal, tetapi operasi mikro ini dipecah menjadi sangat lain.
Charles Duffy

Jawaban:

76

Secara praktis, apa yang membatasi kecepatan CPU adalah panas yang dihasilkan dan penundaan gerbang, tetapi biasanya, panas menjadi masalah yang jauh lebih besar sebelum yang terakhir dimulai.

Prosesor terbaru diproduksi menggunakan teknologi CMOS. Setiap kali ada siklus jam, daya hilang. Oleh karena itu, kecepatan prosesor yang lebih tinggi berarti lebih banyak pembuangan panas.

http://en.wikipedia.org/wiki/CMOS

Berikut ini beberapa gambar:

Core i7-860   (45 nm)        2.8 GHz     95 W
Core i7-965   (45 nm)        3.2 GHz    130 W
Core i7-3970X (32 nm)        3.5 GHz    150 W

masukkan deskripsi gambar di sini

Anda benar-benar dapat melihat bagaimana daya transisi CPU meningkat (secara eksponensial!).

Juga, ada beberapa efek kuantum yang menendang ketika ukuran transistor menyusut. Pada tingkat nanometer, gerbang transistor sebenarnya menjadi "bocor".

http://computer.howstuffworks.com/small-cpu2.htm

Saya tidak akan membahas bagaimana teknologi ini bekerja di sini, tetapi saya yakin Anda dapat menggunakan Google untuk mencari topik ini.

Oke, sekarang, untuk keterlambatan transmisi.

Setiap "kabel" di dalam CPU bertindak sebagai kapasitor kecil. Juga, basis transistor atau gerbang MOSFET bertindak sebagai kapasitor kecil. Untuk mengubah voltase pada koneksi, Anda harus mengisi daya kabel atau melepasnya. Ketika transistor menyusut, menjadi lebih sulit untuk melakukan itu. Inilah sebabnya mengapa SRAM memerlukan transistor amplifikasi, karena sebenarnya transistor array memori sangat kecil dan lemah.

Dalam desain IC yang khas, di mana kepadatan sangat penting, sel-bit memiliki transistor yang sangat kecil. Selain itu, mereka biasanya dibangun ke dalam array besar, yang memiliki kapasitansi bit-line yang sangat besar. Ini menghasilkan pelepasan bit-line yang sangat lambat (sedikit) oleh sel-bit.

Dari: Bagaimana menerapkan penguat rasa SRAM?

Pada dasarnya, intinya adalah bahwa lebih sulit untuk transistor kecil harus menggerakkan interkoneksi.

Juga, ada penundaan gerbang. CPU modern memiliki lebih dari sepuluh tahapan pipa, mungkin hingga dua puluh.

Masalah Kinerja di Pipelining

Ada juga efek induktif. Pada frekuensi microwave, mereka menjadi sangat signifikan. Anda dapat mencari crosstalk dan hal-hal semacam itu.

Sekarang, bahkan jika Anda berhasil membuat prosesor 3265810 THz bekerja, batas praktis lainnya adalah seberapa cepat sisa sistem dapat mendukungnya. Anda juga harus memiliki RAM, penyimpanan, logika lem, dan interkoneksi lain yang bekerja sama cepatnya, atau Anda memerlukan cache yang sangat besar.

Semoga ini membantu.

fuzzyhair2
sumber
1
Anda mungkin ingin menyertakan tautan ke diskusi ini untuk referensi yang bagus tentang bagaimana kecepatan clock dan konsumsi daya terkait: physics.stackexchange.com/questions/34766/…
Emiswelt
2
Ada juga kecepatan listrik untuk dipertimbangkan ketika berbicara tentang keterlambatan transmisi en.wikipedia.org/wiki/Speed_of_electricity
ryantm
Apakah ini benar-benar meningkat secara eksponensial, atau hanya secara kuadratis? Bahkan, video ini mengatakan itu Power = Frequency ^ 1.74.
Paul Manta
2
Poin baiknya, bagaimanapun, salah satu kesulitan utama dalam desain CPU adalah interkoneksi. Chip yang secara fisik besar mungkin, tetapi ingat bahwa ini berfungsi dalam kisaran gigahertz. Anda ingin membuat kabel pendek.
fuzzyhair2
2
Karena pertanyaannya adalah teori, dapat ditambahkan bahwa semikonduktor lain, seperti Gallium arsenide, memungkinkan frekuensi yang lebih tinggi.
Iacopo
32

Masalah panas ditutupi dengan baik oleh fuzzyhair. Untuk meringkas penundaan transmisi, pertimbangkan ini: Waktu yang diperlukan untuk sinyal listrik untuk melintasi motherboard sekarang lebih dari satu siklus clock dari CPU modern. Jadi membuat CPU lebih cepat tidak akan menghasilkan banyak.

Prosesor super cepat benar-benar hanya bermanfaat dalam proses angka-angka besar, dan hanya jika kode Anda dioptimalkan dengan hati-hati untuk melakukan itu bekerja pada chip. Jika sering harus pergi ke tempat lain untuk data semua kecepatan ekstra itu terbuang sia-sia. Dalam sistem saat ini, sebagian besar tugas dapat dijalankan secara paralel dan masalah besar terpecah pada beberapa inti.

Sepertinya proses kompilasi lateks Anda akan ditingkatkan dengan:

  • IO lebih cepat. Coba RAMdisk.
  • menjalankan berbagai dokumen pada inti yang berbeda
  • tidak mengharapkan pekerjaan intensif gambar 200 halaman dilakukan dalam 2 detik
paul
sumber
2
Sayang sekali saya hanya diizinkan satu upvote. Jawaban Anda layak lebih untuk menunjukkan bahwa laju jam mungkin bukan hambatan dalam masalah OP.
Solomon Slow
17

Ada tiga batasan fisik: Panas, penundaan gerbang dan kecepatan transmisi listrik.

Rekor dunia pada kecepatan clock tertinggi sejauh ini adalah (menurut tautan ini ) 8722,78 MHz

Kecepatan transmisi listrik (hampir sama dengan kecepatan cahaya) adalah batas fisik absolut, karena tidak ada data yang dapat ditransmisikan lebih cepat daripada mediumnya. Pada saat yang sama batas ini sangat tinggi, sehingga biasanya bukan merupakan faktor pembatas.

CPU terdiri dari sejumlah besar gerbang, yang beberapa diantaranya terhubung secara serial (satu demi satu). Peralihan dari kondisi tinggi (mis. 1) ke kondisi rendah (mis. 0) atau sebaliknya membutuhkan waktu. Ini adalah penundaan gerbang. Jadi, jika Anda memiliki 100 gerbang yang terhubung secara seri dan dibutuhkan 1 ns untuk beralih, Anda harus menunggu setidaknya 100 ns agar semuanya memberikan Anda hasil yang valid.

Sakelar ini adalah hal yang paling banyak memakan daya pada CPU. Ini berarti jika Anda meningkatkan kecepatan clock Anda mendapatkan lebih banyak switch sehingga menggunakan lebih banyak daya sehingga meningkatkan output panas.

Overvolting (=> memberikan lebih banyak daya) mengurangi sedikit keterlambatan gerbang, tetapi sekali lagi meningkatkan keluaran panas.

Di suatu tempat sekitar 3 GHz penggunaan daya untuk kecepatan clock meningkat sangat. Inilah sebabnya mengapa CPU 1,5 GHz dapat berjalan pada ponsel pintar sementara sebagian besar CPU 3-4 GHz bahkan tidak dapat dijalankan pada laptop.

Tetapi Clock Speed ​​bukan satu-satunya hal yang dapat mempercepat CPU, juga optimisasi pada pipeline atau arsitektur mikrokode dapat menyebabkan peningkatan yang signifikan. Inilah sebabnya mengapa 3 GHz Intel i5 (Dualcore) beberapa kali lebih cepat dari Intel Pentium D (Dualcore) 3 GHz.

Dakkaron
sumber
1
Overclocking saja meningkatkan penggunaan daya CPU secara linear. Jadi, gandakan kecepatan clock berarti penggunaan daya ganda. Tetapi pada kecepatan jam yang lebih tinggi, gerbang terlalu lambat untuk bekerja dengan kecepatan jam itu dan Anda mulai mendapatkan kesalahan perhitungan -> crash secara acak. Jadi, Anda perlu meningkatkan tegangan untuk mempercepat gerbang. Timbangan penggunaan daya dibandingkan dengan tegangan. Jadi gandakan voltase berarti empat kali penggunaan daya. Tambahkan itu untuk menggandakan jam dan Anda mendapatkan delapan kali penggunaan daya. Tegangan yang diperlukan juga meningkat secara eksponensial dengan kecepatan clock. en.wikipedia.org/wiki/CPU_power_dissipation
Dakkaron
1
Masalah lain di sini adalah bahwa overvolting hanya dapat menggoreng CPU Anda dan tidak ada yang bisa dilakukan untuk melawannya. Jika CPU Anda ditentukan untuk misalnya 3.3V Anda mungkin bisa naik ke 3,7 atau bahkan mungkin 4V tetapi jika Anda pergi ke tinggi itu hanya akan menghancurkan chip. Tautan lain yang layak dibaca: en.wikipedia.org/wiki/CPU_core_voltage
Dakkaron
3
Kecepatan transmisi adalah masalah: pada 3Ghz Anda hanya mendapatkan 10cm / siklus. Karena rata-rata prosesor saat ini memiliki 300m², saya percaya bahwa setelah 10 Ghz kita harus memikirkan kembali desain prosesor karena mungkin tidak semua bagian chip dapat dicapai dalam satu siklus.
Martin Schröder
1
@ MartinSchröder: Itu tidak terlalu menjadi masalah, karena (a) CPU mati karena panas dan penundaan gerbang sebelum 10 GHz tercapai dan (b) prosesor menjadi lebih kecil pada setiap generasi. Sebagai contoh, sebuah i7 6-core dengan hyperthreading memiliki ukuran yang sama dengan Pentium 4. SingleLecore. Tetapi i7 memiliki 6 core penuh dan 6 lebih "setengah-core" untuk hyperthreading. Juga ada cache. Juga inti ini dibagi menjadi fase-fase pipa. Hanya bagian-bagian dari CPU dalam satu inti dan satu fase pipa (dan mungkin L1-cache) yang perlu dicapai dalam satu siklus.
Dakkaron
1
@ com.prehensible Posting yang Anda tautkan sebenarnya berbicara secara spesifik tentang fakta, bahwa transistor 500GHz ini "hanya" merupakan transistor analog yang digunakan untuk pengadaan RF analog. Ini tidak berarti prosesor komputer.
Dakkaron
5

Jawaban atas pertanyaan Anda adalah: Ya , ada batas fisik untuk kecepatan CPU. Batas teoritis tertinggi akan ditentukan oleh seberapa cepat "sakelar" dapat berganti status. Jika kita menggunakan elektron sebagai dasar sakelar, kita menggunakan jari-jari Bohr dan kecepatan tercepat yang mungkin untuk menghitung frekuensi pada saat negara teknologi, batas sebenarnya adalah sekitar c = 3 × 10 8 , F = 1

r=5.291×1011
c=3×108,
8×109Hz
F=1t=c2πr=9.03×1017Hz
8×109Hz
Guill
sumber
Saya membuat beberapa suntingan ke LaTeX Anda. Bisakah Anda memeriksa apakah hasil edit ke frekuensi sudah benar?
Martin Thoma
Bagaimana Anda sampai pada batas teknologi saat ini?
Martin Thoma
Anda menulis bahwa batas saat ini adalah "8x 10 ^ 9 Hz". Apa itu x? Apakah Anda akhirnya ingin menulis sebuah titik perkalian?
Martin Thoma
1
Anda juga akan membangun komputer tercepat yang mungkin pada jari-jari Schwarzschild dari lubang hitam untuk efek maksimal. Jari-jari Bohr adalah cara untuk bekerja dengan kecepatan tinggi. :)
Goswin von Brederlow
3

Jadi satu pertanyaan adalah: Apakah ada batasan fisik untuk kecepatan CPU?

Itu sangat tergantung pada CPU itu sendiri. Toleransi manufaktur menghasilkan fakta bahwa batas fisik sedikit berbeda untuk setiap chip bahkan dari wafer yang sama.

keterlambatan transmisi menyebabkan batasan lain dalam kecepatan CPU. Namun, mereka tidak menyebutkan seberapa cepat itu bisa didapat.

Itu karena transmission delayatau speed path lengthmerupakan pilihan bagi perancang chip untuk membuat. Singkatnya, ini adalah seberapa banyak kerja yang dilakukan oleh logika dalam satu siklus clock tunggal . Logika yang lebih kompleks menghasilkan kecepatan clock maksimum yang lebih lambat, tetapi juga menggunakan daya yang lebih kecil.

Inilah mengapa Anda ingin menggunakan tolok ukur untuk membandingkan CPU. Angka kerja per siklus sangat berbeda, jadi membandingkan MHz mentah dapat memberikan Anda ide yang salah.

Turbo J
sumber
2

Secara praktis, definisi ini menentukan daya termal yang kira-kira sebanding dengan kuadrat tegangan: http://en.wikipedia.org/wiki/Thermal_design_power#Overview Setiap bahan memiliki kapasitas panas spesifik yang membatasi efisiensi pendinginan.
Tanpa mempertimbangkan masalah teknis pada pendinginan dan penundaan transmisi, Anda akan menemukan kecepatan cahaya yang membatasi jarak yang dapat dilalui sinyal dalam cpu kami per detik. Oleh karena itu, cpu harus mendapatkan lebih banyak lebih cepat operasinya. Akhirnya, itu beroperasi di luar frekuensi tertentu, cpu dapat menjadi transparan untuk fungsi gelombang elektronik (elektron dimodelkan sebagai fungsi gelombang mengikuti persamaan Schroedinger).
Pada 2007, beberapa fisikawan menghitung batas mendasar untuk kecepatan operasi:http://journals.aps.org/prl/abstract/10.1103/PhysRevLett.99.110502

Lars Hadidi
sumber
0

Selain semua jawaban lain, ada juga beberapa pertimbangan lain yang mungkin tidak mempengaruhi kecepatan CPU secara langsung tetapi membuat membangun apa pun di sekitar CPU itu cukup sulit;

Singkatnya, di atas DC, frekuensi radio menjadi masalah. Semakin cepat Anda pergi, semakin cenderung semuanya untuk bertindak sebagai radio raksasa. Ini berarti bahwa jejak PCB mengalami crosstalk, efek dari kapasitansi / induktansi yang melekat dengan trek / bidang tanah yang berdekatan, kebisingan, dll. Dll. Dll.

Semakin cepat Anda pergi, semakin buruk semua ini - komponen kaki dapat memperkenalkan induktansi yang tidak dapat diterima misalnya.

Jika Anda melihat pedoman untuk meletakkan "dasar" PCB dari jenis tingkat Raspberry Pi dengan beberapa RAM DDR, semua jejak untuk bus data dll harus sama panjang, memiliki pemutusan yang benar dll dan itu berjalan jauh di bawah 1GHz.

John U
sumber