Apa itu Prosesor Multicore?

click fraud protection

Sejak pertengahan tahun, CPU desktop telah menawarkan beberapa inti CPU dalam satu paket. Ini adalah prosesor multicore. Sementara desain awal terbatas pada dua atau empat inti CPU, CPU modern menawarkan hingga 64 inti fisik pada satu CPU. Jumlah inti yang tinggi bukanlah standar untuk CPU desktop dan umumnya dicadangkan untuk workstation atau server kelas atas. Jumlah inti tipikal dalam CPU desktop modern adalah antara 4 dan 16. Tapi ada apa dengan CPU multicore yang membuatnya dominan di komputer modern?

Inti tunggal

Secara historis, CPU inti tunggal terbatas hanya melakukan satu tugas sekaligus. Ini datang dengan berbagai macam masalah. Misalnya, pada komputer modern, ada banyak sekali proses latar belakang yang berjalan. Jika CPU hanya dapat memproses satu hal pada satu waktu, itu berarti proses latar belakang ini harus mengambil waktu pemrosesan dari proses latar depan. Selain itu, cache miss berarti bahwa data perlu diambil dari – relatif – RAM yang lambat. Selama data diambil dari RAM, prosesor hanya diam, karena tidak dapat melakukan apa pun sampai mendapatkan data. Ini menahan proses yang sedang berjalan serta proses lain yang menunggu untuk diselesaikan.

Sementara prosesor single-core modern tidak benar-benar menjadi masalah berkat munculnya CPU multicore anggaran, mereka akan dapat menggunakan trik modern lainnya untuk beroperasi lebih cepat. Sebuah pipa akan memungkinkan setiap bagian penanganan instruksi yang berbeda untuk digunakan secara bersamaan, memberikan peningkatan kinerja yang signifikan dibandingkan hanya menggunakan satu tahap pipeline sama sekali per jam siklus. Sebuah pipa lebar akan melihat beberapa instruksi yang dapat ditangani di setiap tahap pipa per siklus clock. Pemrosesan Out Of Order akan memungkinkan instruksi dijadwalkan dengan cara yang lebih efisien waktu. Prediktor cabang akan dapat memprediksi hasil dari instruksi percabangan dan secara pre-emptive menjalankan jawaban yang diduga.

Semua faktor ini akan bekerja dengan baik dan memberikan beberapa kinerja. Menambahkan satu atau lebih inti, bagaimanapun, memungkinkan semua itu, dan sekaligus memungkinkan pemrosesan dua kali data sekaligus.

Multicore

Menambahkan inti kedua sepertinya akan menggandakan kinerja mentah. Sayangnya, banyak hal yang lebih rumit dari itu. Logika program sering kali memiliki utas tunggal yang berarti bahwa hanya ada satu hal yang coba dilakukan oleh suatu program pada satu waktu. Apa yang bisa terjadi, bagaimanapun, adalah bahwa proses lain dapat menggunakan inti lain pada waktu yang sama. Meskipun tidak ada peningkatan kinerja yang melekat pada sebagian besar program individual, ketentuan tambahan sumber daya pemrosesan, secara efektif mengurangi persaingan untuk sumber daya yang terbatas, yang memberikan peningkatan kinerja. Peningkatan kinerja ini, hanya dari mengurangi persaingan untuk waktu CPU paling terlihat ketika melompat dari satu ke CPU dual-core, ada pengembalian yang menurun dari peningkatan jumlah inti lebih lanjut, meskipun umumnya lebih banyak lebih baik.

Untuk mengambil keuntungan yang tepat dari sistem multicore dan benar-benar melihat peningkatan kinerja yang solid, program perlu diprogram untuk menggunakan beberapa utas pemrosesan. Logika multithreaded terkenal sulit dilakukan dengan andal karena seringkali sulit dipelajari dan ada banyak potensi jebakan. Salah satu contoh jebakan dikenal sebagai kondisi balapan. Dalam kondisi balapan, satu proses mengasumsikan bahwa proses lain yang dimulainya akan berjalan dengan lancar, kemudian mencoba melakukan sesuatu yang bergantung pada proses lain yang berjalan dengan lancar. Misalnya, bayangkan sebuah proses memulai proses lain untuk menutup satu dokumen dan membuka yang lain. Jika proses asli tidak memeriksa dengan benar apakah proses kedua telah selesai, ini dapat menghasilkan hasil yang tidak terduga. Jika ada masalah saat menutup dokumen pertama, misalnya, dokumen tersebut mungkin masih terbuka saat proses asli hanya menulis lebih banyak data ke dalamnya.

Dalam kondisi balapan ini, nilai suatu variabel dibaca untuk kedua kalinya sebelum nilai baru ditulis padanya, yang mengarah ke jawaban keseluruhan yang salah.

Masalah termal

Salah satu masalah terbesar yang dihadapi prosesor multicore adalah panas. Sementara satu inti CPU tidak menghasilkan banyak panas, dua mengeluarkan lebih banyak. Dalam CPU dengan jumlah inti tinggi, konsentrasi panas ini dapat menghasilkan clock boost yang lebih rendah, karena CPU mengatur suhunya. Boost clock yang lebih rendah akan menyebabkan kinerja yang lebih rendah dalam aplikasi single-threaded. Ini sering dapat dilihat pada tolok ukur kinerja game. Video game seringkali sangat bergantung pada satu utas. Dengan demikian, kinerja single-threaded seringkali penting untuk bermain game. CPU dengan jumlah inti tinggi seperti model jumlah 16 inti sering kali berasal dari tempat sampah berkinerja tinggi. Meskipun demikian, mereka secara teratur dapat ditemukan diungguli oleh CPU "lebih rendah" dengan jumlah inti yang lebih rendah dalam benchmark single-threaded. Masalah ini bahkan lebih jelas pada CPU dengan jumlah inti ultra-tinggi seperti AMD Threadripper 64-core di mana kecepatan clock terasa lebih rendah daripada CPU desktop kelas atas.

Sukses

Banyak aplikasi dapat menggunakan beberapa inti CPU dengan tepat. Misalnya, rendering CPU adalah tugas yang relatif mudah untuk diparalelkan. Peningkatan kinerja dapat dilihat hingga 64 core, dan lebih tinggi, meskipun tidak ada satu pun CPU yang menawarkan lebih dari 64 core saat ini. Banyak aplikasi tidak bisa multithreaded karena mereka bergantung pada logika sekuensial. Meskipun ini tidak melihat mendekati kecepatan program multithreaded, fakta bahwa program multithreaded dan program single-threaded lainnya dapat menggunakan core CPU lain yang membebaskan waktu prosesor, memungkinkan untuk lebih baik pertunjukan.

Pilihan arsitektur

Pada prosesor desktop, setiap inti CPU dalam CPU multicore umumnya identik. Homogenitas ini membuat penjadwalan bekerja pada inti menjadi sederhana. Menggunakan desain berulang yang sama juga membantu menekan biaya pengembangan. Prosesor seluler, bagaimanapun, telah lama menggunakan arsitektur inti yang heterogen. Dalam desain ini, ada dua atau bahkan tiga tingkatan inti CPU. Setiap tingkatan dapat menjalankan proses yang sama, namun, beberapa dirancang untuk efisiensi daya, dan yang lainnya disesuaikan untuk kinerja. Ini telah membuktikan resep sukses untuk perangkat bertenaga baterai karena banyak tugas dapat menggunakan lebih lambat inti hemat daya, meningkatkan masa pakai baterai, sementara proses berprioritas tinggi masih dapat dijalankan dengan kecepatan tinggi ketika diperlukan.

Arsitektur CPU desktop juga bergerak ke arah desain inti yang heterogen. Danau Alder Intel 12th generasi Core CPU line adalah CPU desktop pertama yang melakukan ini. Dalam hal ini, faktor pendorong utama dari inti yang lebih kecil belum tentu efisiensi daya tetapi efisiensi termal, meskipun itu adalah dua sisi mata uang yang sama. Memiliki beberapa inti yang kuat memberikan kinerja tinggi, sementara banyak inti yang efisien dapat menangani tugas latar belakang tanpa terlalu memengaruhi inti utama.

Kesimpulan

CPU multicore adalah CPU yang menampilkan beberapa inti pemrosesan dalam satu paket, sering kali, meskipun tidak secara eksklusif pada cetakan yang sama. CPU multicore tidak menawarkan banyak peningkatan kinerja langsung ke banyak program, namun, dengan meningkatkan jumlah core, program single-threaded tidak perlu bersaing banyak untuk waktu CPU. Beberapa program dapat mengambil keuntungan penuh dari banyak inti, memanfaatkan langsung sebanyak yang tersedia. Ini memberikan peningkatan kinerja yang besar, meskipun karena kendala termal dan daya, peningkatan ini tidak selalu merupakan penggandaan kinerja langsung dengan penggandaan inti.