Prosesor multicore adalah sirkuit terpadu yang memiliki dua atau lebih
inti prosesor yang terpasang untuk meningkatkan kinerja dan mengurangi konsumsi
daya. Prosesor ini juga memungkinkan pemrosesan simultan yang lebih efisien
untuk beberapa tugas, seperti pemrosesan
paralel dan multithreading .
Pengaturan inti ganda mirip dengan memasang beberapa prosesor terpisah di
komputer. Namun, karena kedua prosesor terpasang di soket yang sama, koneksi di
antara keduanya menjadi lebih cepat.
Penggunaan prosesor
multicore atau mikroprosesor merupakan salah satu pendekatan
untuk meningkatkan kinerja prosesor tanpa melampaui batasan praktis desain dan
fabrikasi semikonduktor. Penggunaan multicore juga memastikan operasi yang aman
di area seperti pembangkitan panas.
Bagaimana cara kerja prosesor multicore?
Inti dari setiap prosesor adalah mesin eksekusi, yang juga dikenal
sebagai inti. Inti dirancang untuk memproses instruksi dan data sesuai dengan
arahan program perangkat lunak dalam memori komputer. Selama bertahun-tahun,
para perancang menemukan bahwa setiap desain prosesor baru memiliki
keterbatasan. Banyak teknologi yang dikembangkan untuk mempercepat kinerja,
termasuk yang berikut ini:
·
Kecepatan clock. Salah satu pendekatannya adalah membuat clock
prosesor lebih cepat. Clock adalah "irama" yang digunakan untuk
menyinkronkan pemrosesan instruksi dan data melalui mesin pemrosesan. Kecepatan
clock telah meningkat dari beberapa megahertz menjadi beberapa
gigahertz (GHz) saat ini. Namun, transistor menggunakan daya setiap kali clock
berdetak. Akibatnya, kecepatan clock hampir mencapai batasnya mengingat teknik
fabrikasi semikonduktor dan manajemen panas saat ini.
·
Hyper-threading. Pendekatan lain melibatkan penanganan beberapa
utas instruksi. Intel menyebutnya
hyper-threading. Dengan hyper-threading, inti prosesor dirancang untuk
menangani dua utas instruksi terpisah pada saat yang bersamaan. Bila diaktifkan
dan didukung dengan benar oleh firmware dan sistem operasi (OS) komputer,
teknik hyper-threading memungkinkan satu inti fisik berfungsi sebagai dua inti
logis. Namun, prosesor hanya memiliki satu inti fisik. Abstraksi logis dari
prosesor fisik hanya menambahkan sedikit kinerja nyata ke prosesor selain
membantu merampingkan perilaku beberapa aplikasi simultan yang berjalan di
komputer.
·
Lebih banyak chip. Langkah selanjutnya adalah menambahkan chip
prosesor -- atau die -- ke paket prosesor, yang merupakan perangkat fisik yang
terpasang pada motherboard. Prosesor dual-core mencakup dua inti prosesor yang
terpisah. Prosesor
quad-core mencakup empat inti yang terpisah. Prosesor multicore
saat ini dapat dengan mudah mencakup 12, 24 atau bahkan lebih banyak inti
prosesor. Pendekatan multicore hampir identik dengan penggunaan motherboard
multiprosesor, yang memiliki dua atau empat soket prosesor yang terpisah.
Efeknya sama. Performa prosesor yang luar biasa saat ini melibatkan penggunaan
produk prosesor yang menggabungkan kecepatan clock yang cepat dan beberapa inti
hyper-threaded.
Prosesor multicore memiliki beberapa
unit pemrosesan yang tergabung di dalamnya. Prosesor ini terhubung langsung dengan
cache internal, serta dengan bus dan memori sistem.
Namun, chip multicore memiliki beberapa masalah
yang perlu dipertimbangkan. Pertama, penambahan lebih banyak inti prosesor
tidak secara otomatis meningkatkan kinerja komputer. OS dan aplikasi harus
mengarahkan instruksi program perangkat lunak untuk mengenali dan menggunakan
beberapa inti. Ini harus dilakukan secara paralel, menggunakan berbagai utas ke
inti yang berbeda dalam paket prosesor. Beberapa aplikasi perangkat lunak
mungkin perlu difaktorkan ulang untuk
mendukung dan menggunakan platform prosesor multicore. Jika tidak, hanya inti
prosesor pertama default yang digunakan, dan inti tambahan apa pun tidak
digunakan atau tidak digunakan.
Kedua, manfaat kinerja inti tambahan bukanlah
kelipatan langsung. Artinya, menambahkan inti kedua tidak menggandakan kinerja
prosesor, atau prosesor quad-core tidak melipatgandakan kinerja prosesor hingga
empat kali lipat. Hal ini terjadi karena elemen prosesor yang digunakan bersama,
seperti akses ke memori internal atau cache, bus eksternal
, dan memori sistem komputer.
Manfaat dari beberapa inti bisa sangat besar,
tetapi ada batasan praktis. Namun, akselerasinya biasanya lebih baik daripada
sistem multiprosesor tradisional karena hubungan antara inti dalam paket yang
sama lebih erat dan jaraknya lebih pendek serta komponen antar inti lebih
sedikit.
Coba bayangkan analogi mobil di jalan raya. Setiap
mobil mungkin merupakan prosesor, tetapi setiap mobil harus berbagi jalan dan
batasan lalu lintas yang sama. Lebih banyak mobil dapat mengangkut lebih banyak
orang dan barang dalam waktu tertentu, tetapi lebih banyak mobil juga
menyebabkan kemacetan dan masalah lainnya.
Untuk apa prosesor multicore digunakan?
Prosesor
multicore bekerja pada platform perangkat keras komputer modern apa pun. Hampir
semua PC dan laptop saat ini menggunakan beberapa model prosesor multicore.
Akan tetapi, kekuatan dan manfaat sebenarnya dari prosesor ini bergantung
pada aplikasi perangkat lunak yang dirancang untuk menekankan paralelisme .
Pendekatan paralel membagi pekerjaan aplikasi ke dalam sejumlah thread
pemrosesan, lalu mendistribusikan dan mengelola thread tersebut di dua atau
lebih inti prosesor.
Ada beberapa
kasus penggunaan utama untuk prosesor multicore, termasuk lima berikut ini:
1. Virtualisasi. Platform
virtualisasi, seperti VMware, dirancang untuk mengabstraksi lingkungan
perangkat lunak dari perangkat keras yang mendasarinya. Virtualisasi mampu
mengabstraksi inti prosesor fisik menjadi prosesor virtual atau unit pemrosesan
pusat ( vCPU ) yang kemudian ditetapkan ke mesin virtual ( VM ). Setiap VM menjadi server virtual yang mampu
menjalankan OS dan aplikasinya sendiri. Dimungkinkan untuk menetapkan lebih
dari satu vCPU ke setiap VM, yang memungkinkan setiap VM dan aplikasinya
menjalankan perangkat lunak pemrosesan paralel jika diinginkan.
2. Basis
data. Basis data adalah platform perangkat lunak kompleks yang
sering kali perlu menjalankan banyak tugas secara bersamaan seperti kueri.
Akibatnya, basis data sangat bergantung pada prosesor multicore untuk
mendistribusikan dan menangani banyak utas tugas ini. Penggunaan beberapa
prosesor dalam basis data sering kali dipadukan dengan kapasitas memori yang
sangat tinggi yang dapat mencapai 1 terabyte atau lebih pada server fisik.
3. Analisis
dan HPC. Analisis big data , seperti machine learning, dan
high-performance computing ( HPC ) keduanya memerlukan pemecahan tugas-tugas besar dan
kompleks menjadi bagian-bagian yang lebih kecil dan lebih mudah dikelola.
Setiap bagian dari upaya komputasi kemudian dapat diselesaikan dengan
mendistribusikan setiap bagian masalah ke prosesor yang berbeda. Pendekatan ini
memungkinkan setiap prosesor bekerja secara paralel untuk memecahkan masalah
menyeluruh dengan jauh lebih cepat dan lebih efisien daripada dengan satu
prosesor.
4. Awan. Organisasi
yang membangun awan hampir pasti akan mengadopsi prosesor multicore untuk
mendukung semua virtualisasi yang dibutuhkan untuk mengakomodasi tuntutan platform perangkat lunak awan yang sangat
scalable dan sangat transaksional seperti OpenStack. Seperangkat server dengan
prosesor multicore dapat memungkinkan awan untuk membuat dan meningkatkan skala
lebih banyak instans VM sesuai permintaan.
5. Visualisasi. Aplikasi
grafis, seperti game dan mesin perender data, memiliki persyaratan paralelisme
yang sama dengan aplikasi HPC lainnya. Perenderan visual membutuhkan banyak
matematika dan tugas, dan aplikasi visualisasi dapat menggunakan banyak
prosesor untuk mendistribusikan kalkulasi yang dibutuhkan. Banyak aplikasi
grafis mengandalkan unit pemrosesan grafis ( GPU ) dan bukan CPU. GPU dirancang khusus untuk
mengoptimalkan tugas yang berhubungan dengan grafis. Paket GPU sering kali
berisi beberapa inti GPU, yang pada prinsipnya mirip dengan prosesor multiinti.
Pro dan
kontra prosesor multicore
Teknologi prosesor multicore sudah matang dan
terdefinisi dengan baik. Namun, teknologi ini memiliki kelebihan dan
kekurangannya sendiri, yang harus dipertimbangkan saat membeli dan menggunakan
server baru.
Keunggulan multicore
Performa aplikasi yang lebih baik. Manfaat
utama prosesor multicore adalah kemampuan pemrosesan yang lebih potensial.
Setiap inti prosesor secara efektif merupakan prosesor terpisah yang dapat
digunakan oleh OS dan aplikasi. Dalam server virtual, setiap VM dapat
menggunakan satu atau beberapa inti prosesor virtual, yang memungkinkan banyak
VM untuk hidup berdampingan dan beroperasi secara bersamaan pada server fisik.
Demikian pula, aplikasi yang dirancang untuk tingkat paralelisme yang tinggi
dapat menggunakan sejumlah inti untuk memberikan performa
aplikasi yang tinggi yang tidak mungkin dilakukan dengan sistem
chip tunggal.
Performa perangkat keras yang lebih baik. Dengan
menempatkan dua atau lebih inti prosesor pada perangkat yang sama, perangkat
dapat menggunakan komponen bersama -- seperti bus internal dan cache prosesor
yang sama -- secara lebih efisien. Perangkat juga diuntungkan dengan performa
yang lebih unggul dibandingkan dengan sistem multiprosesor yang memiliki paket
prosesor terpisah pada motherboard yang sama.
Kekurangan Multicore
Bergantung pada perangkat lunak. Aplikasi
menggunakan prosesor -- bukan sebaliknya. Sistem operasi dan aplikasi akan
selalu menggunakan inti prosesor pertama, yang disebut inti 0. Setiap
inti tambahan dalam paket prosesor akan tetap tidak digunakan atau tidak
digunakan hingga aplikasi perangkat lunak diaktifkan untuk menggunakannya.
Aplikasi tersebut mencakup aplikasi basis data dan alat pemrosesan data besar
seperti Hadoop .
Sebuah bisnis harus mempertimbangkan untuk apa server akan digunakan dan
aplikasi yang akan digunakan sebelum melakukan investasi sistem multiinti untuk
memastikan bahwa sistem memberikan potensi komputasi yang optimal.
Peningkatan kinerja terbatas. Beberapa
prosesor dalam satu paket prosesor harus berbagi bus sistem dan cache prosesor
yang sama. Semakin banyak inti prosesor yang berbagi satu paket, semakin banyak
pula pembagian yang harus dilakukan di seluruh antarmuka dan sumber daya
prosesor yang sama. Hal ini mengakibatkan berkurangnya hasil kinerja saat inti
ditambahkan. Untuk sebagian besar situasi, manfaat kinerja dari memiliki
beberapa inti jauh lebih besar daripada kinerja yang hilang akibat pembagian
tersebut, tetapi ini merupakan faktor yang perlu dipertimbangkan saat menguji
kinerja aplikasi.
Pembatasan daya, panas, dan clock. Komputer
mungkin tidak dapat menjalankan prosesor dengan banyak inti sekeras prosesor
dengan lebih sedikit inti atau prosesor inti tunggal. Inti prosesor modern
mungkin berisi lebih dari 500 juta transistor. Setiap transistor menghasilkan
panas saat beralih, dan panas ini meningkat seiring peningkatan kecepatan clock.
Semua pembangkitan panas itu harus dihilangkan dengan aman dari inti melalui
paket prosesor. Ketika lebih banyak inti yang berjalan, panas ini dapat
berlipat ganda dan dengan cepat melampaui kemampuan pendinginan paket prosesor.
Dengan demikian, beberapa prosesor multicore sebenarnya dapat mengurangi
kecepatan clock -- misalnya, dari 3,5 GHz menjadi 3,0 GHz -- untuk membantu
mengelola panas. Ini mengurangi kinerja semua inti prosesor dalam paket. Prosesor
multicore kelas atas memerlukan sistem pendinginan yang kompleks dan
penyebaran serta pemantauan yang cermat untuk memastikan keandalan sistem
jangka panjang.
Arsitektur prosesor multicore
Untuk tujuan definisi ini, setiap
prosesor multiinti terdiri dari dua atau lebih inti beserta serangkaian cache.
·
Inti adalah komponen utama atau prosesor
multiinti. Inti berisi semua register dan sirkuit -- terkadang ratusan juta
transistor individual -- yang dibutuhkan untuk menjalankan tugas-tugas yang
disinkronkan dengan cermat, seperti menerima data dan instruksi, memproses konten tersebut,
dan mengeluarkan keputusan atau hasil yang logis.
·
Rangkaian pendukung prosesor mencakup berbagai
macam rangkaian kontrol dan manajemen input/output, seperti jam, konsistensi
cache, kontrol daya dan termal, serta akses bus eksternal.
·
Cache adalah area yang relatif kecil dari memori
yang sangat cepat. Cache menyimpan instruksi atau data yang sering digunakan,
membuat konten tersebut tersedia untuk inti tanpa perlu mengakses memori
sistem. Prosesor memeriksa cache terlebih dahulu. Jika konten yang diperlukan
tersedia, inti mengambil konten tersebut dari cache, meningkatkan manfaat
kinerja. Jika konten tidak ada, inti akan mengakses memori sistem untuk konten
yang diperlukan. Cache Level 1, atau L1 , adalah cache terkecil dan tercepat yang unik untuk
setiap inti. Cache Level 2, atau L2, adalah ruang penyimpanan yang lebih besar
yang dibagi di antara inti. Beberapa arsitektur prosesor multiinti dapat
mendedikasikan cache L1 dan L2.
Prosesor multicore homogen vs. heterogen
Inti-inti dalam prosesor multiinti bisa homogen atau heterogen. Prosesor
multiinti Intel dan AMD arus utama untuk arsitektur komputer X86 bersifat
homogen dan menyediakan inti-inti yang identik. Akibatnya, sebagian besar
pembahasan tentang prosesor multiinti adalah tentang prosesor homogen.
Namun, mendedikasikan perangkat yang rumit untuk
melakukan pekerjaan sederhana atau untuk mendapatkan efisiensi terbesar sering
kali merupakan pemborosan. Ada pasar prosesor multicore heterogen yang
menggunakan prosesor dengan core yang berbeda untuk tujuan yang berbeda. Core
heterogen umumnya ditemukan dalam prosesor tertanam atau Arm yang mungkin
mencampur core mikroprosesor dan mikrokontroler dalam
paket yang sama.
Ada tiga tujuan umum untuk prosesor multicore
heterogen:
1. Performa yang dioptimalkan. Sementara
prosesor multicore homogen biasanya ditujukan untuk menyediakan kemampuan
pemrosesan standar atau universal, banyak prosesor tidak ditujukan untuk kasus
penggunaan sistem generik tersebut. Sebaliknya, prosesor tersebut dirancang dan
dijual untuk digunakan dalam sistem tertanam -- khusus atau khusus tugas --
yang dapat memanfaatkan kekuatan unik prosesor yang berbeda. Misalnya, prosesor
yang ditujukan untuk perangkat pemrosesan sinyal dapat menggunakan
prosesor Arm yang
berisi prosesor serbaguna Cortex-A dengan inti Cortex-M untuk tugas pemrosesan
sinyal khusus.
2. Daya yang dioptimalkan. Menyediakan
inti prosesor yang lebih sederhana mengurangi jumlah transistor dan meringankan
kebutuhan daya. Hal ini membuat paket prosesor dan sistem secara keseluruhan
lebih dingin dan lebih hemat daya.
3. Keamanan yang dioptimalkan. Pekerjaan
atau proses dapat dibagi di antara berbagai jenis inti, yang memungkinkan
perancang untuk secara sengaja membangun tingkat isolasi tinggi yang secara
ketat mengendalikan akses di antara berbagai inti prosesor. Kontrol dan isolasi
yang lebih besar ini menawarkan stabilitas dan keamanan yang lebih baik untuk
keseluruhan sistem, meskipun dengan mengorbankan fleksibilitas umum.
Contoh prosesor multicore
Sebagian besar prosesor modern yang dirancang dan dijual untuk komputasi
x86 serbaguna memiliki beberapa inti prosesor. Berikut ini adalah beberapa
contoh prosesor
multiinti Intel generasi ke-12 terbaru:
·
Keluarga Intel Core i9 12900 menyediakan 8 inti dan 24 thread.
·
Keluarga Intel Core i7 12700 menyediakan 8 inti dan 20 thread.
·
Prosesor Intel Core i5 12600K teratas menawarkan 6 inti dan 16 thread.
Contoh prosesor multicore AMD Zen terbaru
meliputi:
·
Keluarga AMD Zen 3 menyediakan 4 hingga 16 inti.
·
Keluarga AMD Zen 2 menyediakan hingga 64 inti.
·
Keluarga AMD Zen+ menyediakan 4 hingga 32 inti.
Sumber : https://www.techtarget.com/searchdatacenter/definition/multi-core-processor