Perbedaan antara inti dan prosesor

197

Apa perbedaan antara inti dan prosesor?

Saya sudah mencarinya di Google, tetapi saya hanya memiliki definisi multi-core dan multi-prosesor, tetapi tidak cocok dengan apa yang saya cari.

Saad Achemlal
sumber

Jawaban:

197

Inti biasanya merupakan unit komputasi dasar dari CPU - ia dapat menjalankan konteks program tunggal (atau beberapa konteks jika mendukung utas perangkat keras seperti hyperthreading pada CPU Intel), mempertahankan status program yang benar, register, dan urutan eksekusi yang benar, dan melakukan operasi melalui ALU . Untuk tujuan pengoptimalan, sebuah inti juga dapat menyimpan cache inti dengan salinan dari potongan memori yang sering digunakan.

CPU mungkin memiliki satu atau lebih inti untuk melakukan tugas pada waktu tertentu. Tugas-tugas ini biasanya proses perangkat lunak dan utas yang dijadwalkan OS. Perhatikan bahwa OS mungkin memiliki banyak utas untuk dijalankan, tetapi CPU hanya dapat menjalankan X tugas tersebut pada waktu tertentu, di mana X = jumlah inti * jumlah utas perangkat keras per inti. Selebihnya harus menunggu OS untuk menjadwalkan mereka apakah dengan mendahului tugas yang sedang berjalan atau cara lain.

Selain satu atau banyak inti, CPU akan menyertakan beberapa interkoneksi yang menghubungkan inti ke dunia luar, dan biasanya juga cache bersama "tingkat terakhir" yang besar. Ada beberapa elemen kunci lain yang diperlukan untuk membuat CPU bekerja, tetapi lokasi pastinya mungkin berbeda sesuai dengan desain. Anda akan memerlukan pengontrol memori untuk berbicara dengan memori, pengontrol I / O (tampilan, PCIe, USB, dll.). Di masa lalu elemen-elemen ini berada di luar CPU, dalam "chipset" yang saling melengkapi, tetapi sebagian besar desain modern telah mengintegrasikannya ke dalam CPU.

Selain itu, CPU mungkin memiliki GPU terintegrasi, dan hampir semua hal lain yang perancang ingin tetap dekat untuk pertimbangan kinerja, daya, dan manufaktur. Desain CPU sebagian besar tren ke apa yang disebut system on chip (SoC).

Ini adalah desain "klasik", yang digunakan oleh sebagian besar perangkat serba guna modern (PC klien, server, dan juga tablet dan smartphone). Anda dapat menemukan desain yang lebih rumit, biasanya di akademi, di mana perhitungannya tidak dilakukan dalam unit dasar "seperti inti".

Leeor
sumber
@Leeor jadi untuk mesin 4 cpu dan 2 core, jika saya menjalankan loop sibuk, haruskah tidak melibatkan hanya 1 cpu dan 1 core (yaitu 50%) dari hanya satu cpu? Pengamatan saya menunjukkan itu melibatkan semua CPU hingga 100% ... ada yang hilang dalam pemahaman saya ...
Nrj
2
@Nrj, jika Anda menjalankan satu aplikasi single-threaded, itu akan dialokasikan ke inti tunggal, dan hanya mengaktifkan satu thread HW di atasnya. Utas itu akan dapat memanfaatkan 100% inti itu karena tidak ada utas lain yang berjalan dengannya. Jika Anda mengaktifkan aplikasi lain, biasanya akan dialokasikan ke inti lain, dan seterusnya hingga Anda memenuhi jumlah inti. Di luar itu semua utas tambahan akan dijadwalkan ke inti yang sama lagi menggunakan SMT. Pada saat itu, pemanfaatan inti akan didistribusikan antara 2 utas (dan jika mereka berperilaku simetris, masing-masing kemungkinan akan mencapai ~ 50%)
Leeor
@Leeor rupanya ini adalah harapan saya tetapi bukan itu yang saya temukan. Saya melihat bahwa keempat CPU (dalam taskmanager) melompat untuk menunjukkan penggunaan 100%. Kode sederhana - untuk (int i = 0; i <Integer.MAX_VALUE; i ++) {System.out.println (k); }
Nrj
@Leeor saya pikir saya melakukan tes salah. itu tampak seperti ruang kerja online saya memiliki CPU virtual (4) tetapi prosesor tunggal. Itu sebabnya mereka semua sibuk. Ketika saya melakukan tes pada mesin fisik 2 cpu (dual core), saya dapat melihat bahwa pemanfaatan cpu adalah sekitar 25% yang sesuai dengan harapan.
Nrj
Perhatikan bahwa terminologi ini bervariasi, tergantung pada siapa yang Anda tanya. Sebagai contoh, pada sistem Debian saya, memeriksa /proc/cpuinfo, saya melihat enam belas processor:baris, meskipun dikatakan model: AMD Ryzen 7 2700X Eight-Core Processor. Jadi, setidaknya dalam kasus ini, masing-masing dari 8 "core" memiliki dua "prosesor", yang bertentangan dengan beberapa jawaban lain di sini.
jwd
130

Sebuah gambar mungkin mengatakan lebih dari seribu kata:

Sebuah gambar mungkin mengatakan lebih dari seribu kata

* Gambar yang menggambarkan kompleksitas sistem multi-prosesor, multi-core modern.

Sumber:

https://software.intel.com/en-us/articles/intel-performance-counter-monitor-a-better-way-to-measure-cpu-utilization

John Torugo
sumber
114
Mungkin mengatakan lebih dari seribu kata untuk makhluk kecil seperti semut.
Langit
12
Saya tidak menentang penggunaan gambar, tetapi setidaknya Anda dapat membuat penjelasan lebih lanjut, tidak hanya menyalin / menempelkan gambar.
Patricio Sard
1
@Sky Hati-hati dengan semut ... #hunter_x_hunter: 3
Saad Achemlal
Bagi mereka yang mengatakan itu terlalu kecil untuk dibaca, coba klik kanan padanya, Open images in new tablalu perbesar menggunakan cltr++
Ng Sek Long
28

Mari kita perjelas dulu apa itu CPU dan apa itu core, CPU unit pemrosesan pusat, dapat memiliki banyak unit inti, core itu adalah prosesor dengan sendirinya, mampu menjalankan suatu program tetapi itu sendiri terdapat pada chip yang sama.

Di masa lalu satu CPU didistribusikan di antara beberapa chip, tetapi ketika Hukum Moore berkembang mereka membuat memiliki CPU lengkap di dalam satu chip (mati), sejak 90-an pabrikan mulai memasukkan lebih banyak inti dalam cetakan yang sama, jadi itulah konsep multi-core.

Pada hari-hari ini dimungkinkan untuk memiliki ratusan core pada GPU CPU (chip atau die) yang sama, Intel Xeon. Teknik lain yang dikembangkan pada tahun 90-an adalah multi-threading simultan, pada dasarnya mereka menemukan bahwa ada kemungkinan untuk memiliki thread lain dalam CPU single core yang sama, karena sebagian besar sumber daya sudah digandakan sudah seperti ALU, register ganda.

Jadi pada dasarnya sebuah CPU dapat memiliki beberapa inti yang masing-masing mampu menjalankan satu utas atau lebih pada saat yang sama, kita mungkin berharap memiliki lebih banyak inti di masa depan, tetapi dengan lebih banyak kesulitan untuk dapat memprogram secara efisien.

Germán Alfaro
sumber
Bahkan " Intel E5-2697 v2 " hanya memiliki 12 core ... Mengapa Anda mengatakan "ratusan core pada CPU yang sama"? Apa yang membatasi jumlah core pada satu CPU?
Pacerier
2
Mereka adalah penelitian mikroprosesor dalam jumlah +100 core dan beberapa produksi berproduksi untuk: tomshardware.com/forum/318101-28-which-maximum-cores-cores
Germán Alfaro
9

CPU adalah unit pengolah pusat. Sejak tahun 2002 kami hanya memiliki satu prosesor inti yaitu kami hanya akan melakukan satu tugas atau program pada satu waktu.

Untuk menjalankan banyak program sekaligus, kami harus menggunakan beberapa prosesor untuk menjalankan banyak proses sekaligus sehingga kami memerlukan motherboard lain untuk itu dan itu sangat mahal.

Jadi, Intel memperkenalkan konsep hyper threading yaitu akan mengubah CPU tunggal menjadi dua CPU virtual yaitu kami memiliki dua core untuk tugas kami. Sekarang CPU itu tunggal, tetapi hanya berpura-pura (masqueraded) bahwa ia memiliki CPU ganda dan melakukan banyak tugas. Tetapi memiliki beberapa core nyata akan lebih baik dari itu sehingga orang mengembangkan membuat prosesor multi-core yaitu beberapa prosesor pada satu kotak yaitu meraih beberapa CPU pada satu CPU besar. Yaitu beberapa core.

Himanshu Gupta
sumber
12
Apa yang sebenarnya terjadi pada tahun 2002?
Peter Mortensen
1
Intel tidak menciptakan konsep multithreading simultan. Wikipedia mengatakan Alpha EV8 adalah implementasi komersial besar pertama .
Peter Cordes
3

Pada hari-hari awal ... seperti sebelum tahun 90-an ... prosesor tidak dapat melakukan banyak tugas yang efisien ... karena prosesor tunggal dapat menangani hanya satu tugas ... jadi ketika kami dulu mengatakan bahwa saya antivirus, kata microsoft, vlc, dll. perangkat lunak semuanya berjalan pada saat yang sama ... itu tidak benar. Ketika saya mengatakan prosesor dapat menangani satu proses pada satu waktu ... saya bersungguh-sungguh. Ini sebenarnya akan memproses satu tugas ... kemudian digunakan untuk menjeda tugas itu ... mengambil tugas lain ... menyelesaikannya jika yang pendek atau lagi menjeda dan menambahkannya ke antrian ... lalu yang berikutnya. Tapi 'jeda' yang saya sebutkan ini sangat kecil (appx. 1ns) sehingga Anda tidak mengerti bahwa tugas telah dijeda. Misalnya. Pada vlc sambil mendengarkan musik ada aplikasi lain yang berjalan secara bersamaan tetapi seperti yang saya katakan ... satu program pada satu waktu ...

Tapi ini tentang prosesor lama ...

Sekarang-a-hari prosesor yaitu pcs gen ke-3 memiliki prosesor multi-core. Sekarang 'core' dapat dibandingkan dengan prosesor gen 1 atau 2 itu sendiri ... tertanam ke dalam chip tunggal, prosesor tunggal. Jadi sekarang kita mengerti apa itu core yaitu mereka adalah prosesor mini yang bergabung untuk menjadi prosesor. Dan masing-masing inti dapat menangani satu proses pada satu waktu atau beberapa utas yang dirancang untuk OS. Dan mereka mengikuti langkah yang sama seperti yang saya sebutkan di atas tentang prosesor tunggal.

Misalnya. Prosesor i7 6gen memiliki 8 core ... yaitu 8 prosesor mini dalam 1 i7 ... yaitu kecepatannya 8x kali prosesor lama. Dan ini adalah bagaimana multi tasking dapat dilakukan.

Mungkin ada ratusan core dalam satu prosesor, Eg. Intel i128.

Saya harap saya menjelaskan ini dengan baik.

Hrishikesh Dabir
sumber
0

Gambar Intel sangat membantu, seperti yang ditunjukkan oleh jawaban terbaik Tortuga. Ini keterangan untuk itu.

Prosesor : Satu chip semikonduktor, CPU (central processing unit) yang duduk dalam satu soket, sekitar tahun 1950-an-2010an. Seiring waktu, lebih banyak fungsi telah dikemas ke dalam chip CPU. Sebelum rilis prosesor chip tunggal tahun 1950-an, satu prosesor mungkin telah tersebar di beberapa chip. Pada pertengahan 2010-an chip sistem-on-a-chip membuatnya sedikit lebih samar untuk menyamakan satu prosesor ke satu chip, meskipun itulah yang biasanya orang maksudkan dengan prosesor, seperti pada "komputer ini memiliki prosesor i7" atau "sistem komputer ini memiliki empat prosesor. "

Inti : Satu blok CPU, menjalankan satu instruksi pada satu waktu. (Anda akan melihat orang mengatakan satu instruksi per siklus clock, tetapi beberapa CPU menggunakan beberapa siklus clock untuk beberapa instruksi.)

Bennett Brown
sumber
1
Inti x86 secara logis mengeksekusi instruksi satu per satu, dalam urutan program, tetapi pada kenyataannya CPU modern menghabiskan banyak transistor untuk mempertahankan ilusi melakukan itu sementara sebenarnya menjadi eksekusi superscalar out-of-order 4-lebar. realworldtech.com/haswell-cpu . (Atau lebar 5 atau 6, untuk Ryzen). Lebih dari 3 instruksi per jam tidak jarang dalam praktek, untuk beberapa kode. Tetapi jauh di bawah 1 juga umum dalam kode lain yang bottleneck pada cache misses dan / atau mispredict cabang.
Peter Cordes
Juga, VLIW arsitektur seperti Itanium yang explicltly sejajar, dan logis serta fisik mengeksekusi beberapa instruksi secara paralel. BTW, titik sejarah yang menarik bahwa satu CPU mengambil lebih dari satu chip pada hari-hari awal.
Peter Cordes