If-Koubou

Mengapa CPU Cores Semua Memiliki Kecepatan yang Sama, Bukan Yang Berbeda?

Mengapa CPU Cores Semua Memiliki Kecepatan yang Sama, Bukan Yang Berbeda? (Bagaimana caranya)

Jika Anda pernah melakukan banyak perbandingan belanja untuk CPU baru, Anda mungkin telah memperhatikan bahwa inti semua tampaknya memiliki kecepatan daripada kombinasi yang berbeda. Mengapa demikian? Posting SuperUser Q & A saat ini memiliki jawaban untuk pertanyaan pembaca yang ingin tahu.

Sesi Tanya & Jawab hari ini hadir untuk memberi kami hak milik SuperUser-sub divisi Stack Exchange, pengelompokan situs web Q & A berbasis komunitas.

Pertanyaan

Pembaca SuperUser Jamie ingin tahu mengapa inti CPU memiliki kecepatan yang sama dan bukan yang berbeda:

Secara umum, jika Anda membeli komputer baru, Anda akan menentukan prosesor mana yang akan dibeli berdasarkan beban kerja yang diharapkan untuk komputer. Kinerja dalam gim video cenderung ditentukan oleh kecepatan inti tunggal, sedangkan aplikasi seperti pengeditan video ditentukan oleh jumlah inti. Dalam hal apa yang tersedia di pasar, semua CPU tampaknya memiliki kecepatan yang hampir sama dengan perbedaan utama menjadi lebih banyak benang atau lebih banyak inti.

Sebagai contoh:

  • Intel Core i5-7600K, frekuensi dasar 3,80 GHz, 4 core, 4 thread
  • Intel Core i7-7700K, frekuensi dasar 4,20 GHz, 4 core, 8 thread
  • AMD Ryzen 5 1600X, frekuensi dasar 3,60 GHz, 6 core, 12 thread
  • AMD Ryzen 7 1800X, frekuensi dasar 3,60 GHz, 8 core, 16 thread

Mengapa kita melihat pola peningkatan inti ini, namun semua core memiliki kecepatan clock yang sama? Mengapa tidak ada varian dengan kecepatan clock yang berbeda? Misalnya, dua inti "besar" dan banyak inti kecil.

Alih-alih, katakanlah, empat core pada 4,0 GHz (yaitu 4 × 4 GHz, 16 GHz maksimum), bagaimana dengan CPU dengan dua core yang berjalan pada 4,0 GHz dan empat core yang berjalan pada 2,0 GHz (yaitu 2 × 4,0 GHz + 4 × 2,0 GHz, maksimum 16 GHz)? Apakah pilihan kedua sama-sama baik dalam beban kerja berulir tunggal, tetapi berpotensi lebih baik pada beban kerja multi-berulir?

Saya menanyakan ini sebagai pertanyaan umum dan tidak secara khusus berkaitan dengan CPU yang tercantum di atas atau tentang satu beban kerja spesifik. Saya hanya ingin tahu mengapa polanya seperti itu.

Mengapa inti CPU memiliki kecepatan yang sama dan bukan yang berbeda?

Jawabannya

Kontributor SuperUser bwDraco memiliki jawaban untuk kami:

Ini dikenal sebagai multi-processing heterogen (HMP) dan secara luas diadopsi oleh perangkat mobile. Dalam perangkat berbasis ARM yang menerapkan big.LITTLE, prosesor berisi inti dengan kinerja dan profil daya yang berbeda, yaitu beberapa core berjalan cepat tetapi menarik banyak daya (arsitektur lebih cepat dan / atau jam lebih tinggi) sementara yang lain hemat energi tetapi lambat ( arsitektur yang lebih lambat dan / atau jam yang lebih rendah). Ini berguna karena penggunaan daya cenderung meningkat secara tidak proporsional saat Anda meningkatkan kinerja setelah melewati titik tertentu. Idenya di sini adalah untuk mendapatkan kinerja ketika Anda membutuhkannya dan daya tahan baterai saat Anda tidak.

Pada platform desktop, konsumsi daya jauh lebih sedikit dari masalah, jadi ini tidak benar-benar diperlukan. Sebagian besar aplikasi mengharapkan setiap inti memiliki karakteristik kinerja yang serupa, dan proses penjadwalan untuk sistem HMP jauh lebih kompleks daripada penjadwalan untuk sistem tradisional multi-pemrosesan (SMP) simetrik (secara teknis, Windows 10 memiliki dukungan untuk HMP, tetapi terutama ditujukan untuk seluler perangkat yang menggunakan ARM big.LITTLE).

Selain itu, sebagian besar prosesor desktop dan laptop saat ini tidak terbatas secara termal atau elektrik hingga titik di mana beberapa core harus berjalan lebih cepat daripada yang lain, bahkan untuk semburan singkat. Kami pada dasarnya membenturkan dinding pada seberapa cepat kami dapat membuat inti individual, jadi mengganti beberapa core dengan yang lebih lambat tidak akan memungkinkan core yang tersisa untuk berjalan lebih cepat.

Meskipun ada beberapa prosesor desktop yang memiliki satu atau dua core yang mampu berjalan lebih cepat daripada yang lain, kemampuan ini saat ini terbatas pada prosesor Intel sangat high-end (dikenal sebagai Turbo Boost Max Technology 3.0) dan hanya melibatkan sedikit keuntungan dalam kinerja untuk core yang dapat berjalan lebih cepat.

Meskipun tentu saja mungkin untuk merancang prosesor x86 tradisional dengan core besar, cepat dan core yang lebih kecil dan lebih lambat untuk mengoptimalkan beban kerja yang berat, hal ini akan menambah kerumitan yang cukup besar pada desain prosesor dan aplikasi tidak mungkin untuk mendukungnya dengan tepat.

Ambil prosesor hipotetis dengan dua inti Danau Kaby cepat (generasi ke-7) dan delapan Goldmont (Atom) yang lambat. Anda akan memiliki total 10 core, dan beban kerja berulir berat yang dioptimalkan untuk jenis prosesor ini dapat melihat peningkatan performa dan efisiensi dibandingkan prosesor Kaby Lake quad-core biasa. Namun, berbagai jenis core memiliki tingkat kinerja yang sangat berbeda, dan core yang lambat bahkan tidak mendukung beberapa instruksi yang didukung core cepat, seperti AVX (ARM menghindari masalah ini dengan mengharuskan core besar dan LITTLE untuk mendukung instruksi yang sama ).

Sekali lagi, sebagian besar aplikasi multi-threaded berbasis Windows berasumsi bahwa setiap inti memiliki tingkat kinerja yang sama atau hampir sama dan dapat mengeksekusi instruksi yang sama, sehingga jenis asimetri ini cenderung menghasilkan kinerja yang kurang ideal, bahkan mungkin crash jika menggunakan instruksi yang tidak didukung oleh core yang lebih lambat. Sementara Intel dapat memodifikasi core lambat untuk menambahkan dukungan instruksi lanjutan sehingga semua core dapat menjalankan semua instruksi, ini tidak akan menyelesaikan masalah dengan dukungan perangkat lunak untuk prosesor heterogen.

Sebuah pendekatan yang berbeda untuk desain aplikasi, lebih dekat dengan apa yang mungkin Anda pikirkan dalam pertanyaan Anda, akan menggunakan GPU untuk mempercepat bagian aplikasi yang sangat paralel. Ini dapat dilakukan menggunakan API seperti OpenCL dan CUDA. Sedangkan untuk solusi chip tunggal, AMD mempromosikan dukungan perangkat keras untuk akselerasi GPU dalam APU, yang menggabungkan CPU tradisional dan GPU terintegrasi berkinerja tinggi ke dalam chip yang sama, seperti Arsitektur Sistem Heterogen, meskipun ini belum melihat banyak serapan industri di luar dari beberapa aplikasi khusus.

Memiliki sesuatu untuk ditambahkan ke penjelasan? Bicaralah di komentar. Ingin membaca lebih banyak jawaban dari pengguna Stack Exchange yang paham teknologi lainnya? Lihat diskusi lengkap di sini.

Kredit Gambar: Mirko Waltermann (Flickr)